2025-06-13 09:00:06,992 [DEBUG][Thread-249294 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:00:10,077 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 09:00:10,078 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 09:00:10,078 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 09:00:10,080 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 09:00:10,567 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 8, 59, 47), 8.66, 54.17, 0.0, 18.88, 7.46, 0, 0, 0, 2, 0, 0),)
2025-06-13 09:00:10,567 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 08:59:47
2025-06-13 09:00:10,648 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 09:00:10,653 [DEBUG][       Thread-249295][   transport.py][1871] : starting thread (client mode): 0x863c9db0
2025-06-13 09:00:10,653 [DEBUG][       Thread-249295][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 09:00:10,673 [DEBUG][       Thread-249295][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 09:00:10,673 [ INFO][       Thread-249295][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 09:00:10,676 [DEBUG][       Thread-249295][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 09:00:10,676 [DEBUG][       Thread-249295][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 09:00:10,676 [DEBUG][       Thread-249295][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 09:00:10,676 [DEBUG][       Thread-249295][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:00:10,676 [DEBUG][       Thread-249295][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:00:10,676 [DEBUG][       Thread-249295][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:00:10,676 [DEBUG][       Thread-249295][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:00:10,676 [DEBUG][       Thread-249295][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 09:00:10,676 [DEBUG][       Thread-249295][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 09:00:10,676 [DEBUG][       Thread-249295][   transport.py][1871] : client lang: <none>
2025-06-13 09:00:10,676 [DEBUG][       Thread-249295][   transport.py][1871] : server lang: <none>
2025-06-13 09:00:10,676 [DEBUG][       Thread-249295][   transport.py][1871] : kex follows: False
2025-06-13 09:00:10,676 [DEBUG][       Thread-249295][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 09:00:10,676 [DEBUG][       Thread-249295][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 09:00:10,676 [DEBUG][       Thread-249295][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 09:00:10,676 [DEBUG][       Thread-249295][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 09:00:10,676 [DEBUG][       Thread-249295][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 09:00:10,676 [DEBUG][       Thread-249295][   transport.py][1871] : Compression: none
2025-06-13 09:00:10,676 [DEBUG][       Thread-249295][   transport.py][1871] : === End of kex handshake ===
2025-06-13 09:00:10,692 [DEBUG][       Thread-249295][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 09:00:10,692 [DEBUG][       Thread-249295][   transport.py][1871] : Switch to new keys ...
2025-06-13 09:00:10,692 [DEBUG][       Thread-249295][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 09:00:10,692 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 09:00:10,692 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 09:00:10,693 [DEBUG][       Thread-249295][   transport.py][1871] : userauth is OK
2025-06-13 09:00:10,705 [ INFO][       Thread-249295][   transport.py][1871] : Authentication (password) successful!
2025-06-13 09:00:10,705 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 09:00:14,072 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:00:14,072 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:00:15,667 [DEBUG][       Thread-249295][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 09:00:15,667 [DEBUG][       Thread-249295][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 09:00:15,708 [DEBUG][       Thread-249295][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 09:00:15,709 [DEBUG][       Thread-249295][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 09:00:15,711 [DEBUG][       Thread-249295][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 09:00:15,724 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 09:00:15,725 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 09:00:15,726 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 09:00:15,728 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 09:00:15,732 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 09:00:15,734 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 09:00:15,734 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 09:00:15,734 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 09:00:15,735 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.291261 -999.00   +7.10  25.34     59   -0.10 1 1 1 1 1   887    0 7.85 23.18 ----- 25.3 25.3 54.0 29.9 10.2 -27.4 9.2 -28.3 8.0 -27.1 -999.0 -999.0
2025-06-13 09:00:15,735 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 09:00:15,735 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 09:00:15,735 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.291261
2025-06-13 09:00:15,735 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 09:00:15,736 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 09:00:15,736 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 09:00:15,736 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 09:00:15,736 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 09:00:15,736 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T08:59:47', tmtdew=8.66, humidity=54.17, cloud=0.0, wind=18.88, temperature=7.46, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T06:59:24.950', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 09:00:15,736 [DEBUG][       Thread-249295][   transport.py][1871] : EOF in transport thread
2025-06-13 09:00:15,820 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 09:00:15,833 [DEBUG][       Thread-249298][   transport.py][1871] : starting thread (client mode): 0x863a4a60
2025-06-13 09:00:15,833 [DEBUG][       Thread-249298][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 09:00:15,848 [DEBUG][       Thread-249298][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 09:00:15,848 [ INFO][       Thread-249298][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 09:00:15,855 [DEBUG][       Thread-249298][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 09:00:15,855 [DEBUG][       Thread-249298][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 09:00:15,855 [DEBUG][       Thread-249298][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 09:00:15,856 [DEBUG][       Thread-249298][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:00:15,856 [DEBUG][       Thread-249298][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:00:15,856 [DEBUG][       Thread-249298][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:00:15,856 [DEBUG][       Thread-249298][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:00:15,856 [DEBUG][       Thread-249298][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 09:00:15,856 [DEBUG][       Thread-249298][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 09:00:15,856 [DEBUG][       Thread-249298][   transport.py][1871] : client lang: <none>
2025-06-13 09:00:15,856 [DEBUG][       Thread-249298][   transport.py][1871] : server lang: <none>
2025-06-13 09:00:15,856 [DEBUG][       Thread-249298][   transport.py][1871] : kex follows: False
2025-06-13 09:00:15,856 [DEBUG][       Thread-249298][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 09:00:15,856 [DEBUG][       Thread-249298][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 09:00:15,856 [DEBUG][       Thread-249298][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 09:00:15,856 [DEBUG][       Thread-249298][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 09:00:15,856 [DEBUG][       Thread-249298][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 09:00:15,856 [DEBUG][       Thread-249298][   transport.py][1871] : Compression: none
2025-06-13 09:00:15,856 [DEBUG][       Thread-249298][   transport.py][1871] : === End of kex handshake ===
2025-06-13 09:00:15,914 [DEBUG][       Thread-249298][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 09:00:15,914 [DEBUG][       Thread-249298][   transport.py][1871] : Switch to new keys ...
2025-06-13 09:00:15,915 [DEBUG][       Thread-249298][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 09:00:15,915 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 09:00:15,916 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 09:00:15,974 [DEBUG][       Thread-249298][   transport.py][1871] : userauth is OK
2025-06-13 09:00:15,974 [DEBUG][       Thread-249298][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 09:00:15,974 [DEBUG][       Thread-249298][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 09:00:15,975 [DEBUG][       Thread-249298][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 09:00:15,975 [DEBUG][       Thread-249298][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 09:00:15,995 [ INFO][       Thread-249298][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 09:00:15,996 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 09:00:15,996 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 09:00:16,019 [DEBUG][Thread-249300 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:00:17,030 [DEBUG][       Thread-249298][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 09:00:17,030 [DEBUG][       Thread-249298][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 09:00:17,079 [DEBUG][       Thread-249298][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 09:00:17,080 [DEBUG][       Thread-249298][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 09:00:17,088 [DEBUG][       Thread-249298][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 09:00:17,096 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 09:00:17,097 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 09:00:17,105 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 09:00:17,114 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 09:00:17,114 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 09:00:17,115 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 09:00:17,122 [DEBUG][       Thread-249298][   transport.py][1871] : EOF in transport thread
2025-06-13 09:00:25,036 [DEBUG][Thread-249301 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:00:27,125 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 09:00:27,125 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 09:00:27,125 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 09:00:27,128 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 09:00:27,606 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 9, 0, 19), 8.69, 54.06, 0.0, 20.73, 7.46, 0, 0, 0, 2, 0, 0),)
2025-06-13 09:00:27,606 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 09:00:19
2025-06-13 09:00:27,688 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 09:00:27,691 [DEBUG][       Thread-249302][   transport.py][1871] : starting thread (client mode): 0x863a5cc0
2025-06-13 09:00:27,691 [DEBUG][       Thread-249302][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 09:00:27,710 [DEBUG][       Thread-249302][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 09:00:27,711 [ INFO][       Thread-249302][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 09:00:27,714 [DEBUG][       Thread-249302][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 09:00:27,714 [DEBUG][       Thread-249302][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 09:00:27,714 [DEBUG][       Thread-249302][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 09:00:27,714 [DEBUG][       Thread-249302][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:00:27,714 [DEBUG][       Thread-249302][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:00:27,714 [DEBUG][       Thread-249302][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:00:27,714 [DEBUG][       Thread-249302][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:00:27,714 [DEBUG][       Thread-249302][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 09:00:27,714 [DEBUG][       Thread-249302][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 09:00:27,714 [DEBUG][       Thread-249302][   transport.py][1871] : client lang: <none>
2025-06-13 09:00:27,714 [DEBUG][       Thread-249302][   transport.py][1871] : server lang: <none>
2025-06-13 09:00:27,714 [DEBUG][       Thread-249302][   transport.py][1871] : kex follows: False
2025-06-13 09:00:27,714 [DEBUG][       Thread-249302][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 09:00:27,714 [DEBUG][       Thread-249302][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 09:00:27,714 [DEBUG][       Thread-249302][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 09:00:27,714 [DEBUG][       Thread-249302][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 09:00:27,714 [DEBUG][       Thread-249302][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 09:00:27,714 [DEBUG][       Thread-249302][   transport.py][1871] : Compression: none
2025-06-13 09:00:27,714 [DEBUG][       Thread-249302][   transport.py][1871] : === End of kex handshake ===
2025-06-13 09:00:27,730 [DEBUG][       Thread-249302][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 09:00:27,730 [DEBUG][       Thread-249302][   transport.py][1871] : Switch to new keys ...
2025-06-13 09:00:27,731 [DEBUG][       Thread-249302][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 09:00:27,731 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 09:00:27,731 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 09:00:27,732 [DEBUG][       Thread-249302][   transport.py][1871] : userauth is OK
2025-06-13 09:00:27,745 [ INFO][       Thread-249302][   transport.py][1871] : Authentication (password) successful!
2025-06-13 09:00:27,746 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 09:00:28,316 [DEBUG][       Thread-249302][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 09:00:28,316 [DEBUG][       Thread-249302][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 09:00:28,361 [DEBUG][       Thread-249302][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 09:00:28,361 [DEBUG][       Thread-249302][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 09:00:28,363 [DEBUG][       Thread-249302][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 09:00:28,377 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 09:00:28,378 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 09:00:28,379 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 09:00:28,380 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 09:00:28,386 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 09:00:28,387 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 09:00:28,387 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 09:00:28,388 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 09:00:28,388 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.291608 -999.00   +7.10  23.60     59   -0.20 1 1 1 1 1   887    0 7.86 24.67 ----- 23.6 23.6 47.6 30.4 10.2 -27.4 9.2 -27.8 8.0 -27.2 9.1 -26.2
2025-06-13 09:00:28,388 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 09:00:28,388 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 09:00:28,388 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.291608
2025-06-13 09:00:28,389 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 09:00:28,389 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 09:00:28,389 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 09:00:28,389 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 09:00:28,389 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 09:00:28,389 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T09:00:19', tmtdew=8.69, humidity=54.06, cloud=0.0, wind=20.73, temperature=7.46, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T06:59:54.931', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 09:00:28,390 [DEBUG][       Thread-249302][   transport.py][1871] : EOF in transport thread
2025-06-13 09:00:28,465 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 09:00:28,475 [DEBUG][       Thread-249305][   transport.py][1871] : starting thread (client mode): 0x863c8dc0
2025-06-13 09:00:28,475 [DEBUG][       Thread-249305][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 09:00:28,491 [DEBUG][       Thread-249305][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 09:00:28,491 [ INFO][       Thread-249305][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 09:00:28,499 [DEBUG][       Thread-249305][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 09:00:28,499 [DEBUG][       Thread-249305][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 09:00:28,499 [DEBUG][       Thread-249305][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 09:00:28,499 [DEBUG][       Thread-249305][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:00:28,499 [DEBUG][       Thread-249305][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:00:28,499 [DEBUG][       Thread-249305][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:00:28,499 [DEBUG][       Thread-249305][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:00:28,499 [DEBUG][       Thread-249305][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 09:00:28,499 [DEBUG][       Thread-249305][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 09:00:28,499 [DEBUG][       Thread-249305][   transport.py][1871] : client lang: <none>
2025-06-13 09:00:28,499 [DEBUG][       Thread-249305][   transport.py][1871] : server lang: <none>
2025-06-13 09:00:28,499 [DEBUG][       Thread-249305][   transport.py][1871] : kex follows: False
2025-06-13 09:00:28,499 [DEBUG][       Thread-249305][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 09:00:28,499 [DEBUG][       Thread-249305][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 09:00:28,499 [DEBUG][       Thread-249305][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 09:00:28,499 [DEBUG][       Thread-249305][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 09:00:28,499 [DEBUG][       Thread-249305][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 09:00:28,499 [DEBUG][       Thread-249305][   transport.py][1871] : Compression: none
2025-06-13 09:00:28,499 [DEBUG][       Thread-249305][   transport.py][1871] : === End of kex handshake ===
2025-06-13 09:00:28,558 [DEBUG][       Thread-249305][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 09:00:28,558 [DEBUG][       Thread-249305][   transport.py][1871] : Switch to new keys ...
2025-06-13 09:00:28,559 [DEBUG][       Thread-249305][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 09:00:28,559 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 09:00:28,560 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 09:00:28,615 [DEBUG][       Thread-249305][   transport.py][1871] : userauth is OK
2025-06-13 09:00:28,615 [DEBUG][       Thread-249305][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 09:00:28,615 [DEBUG][       Thread-249305][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 09:00:28,615 [DEBUG][       Thread-249305][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 09:00:28,615 [DEBUG][       Thread-249305][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 09:00:28,634 [ INFO][       Thread-249305][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 09:00:28,634 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 09:00:28,635 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 09:00:29,696 [DEBUG][       Thread-249305][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 09:00:29,696 [DEBUG][       Thread-249305][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 09:00:29,748 [DEBUG][       Thread-249305][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 09:00:29,748 [DEBUG][       Thread-249305][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 09:00:29,757 [DEBUG][       Thread-249305][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 09:00:29,765 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 09:00:29,765 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 09:00:29,778 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 09:00:29,786 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 09:00:29,787 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 09:00:29,787 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 09:00:29,798 [DEBUG][       Thread-249305][   transport.py][1871] : EOF in transport thread
2025-06-13 09:00:34,054 [DEBUG][Thread-249307 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:00:36,527 [DEBUG][Thread-249308 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:00:37,563 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:00:37,563 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:00:39,797 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 09:00:39,798 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 09:00:39,798 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 09:00:39,800 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 09:00:40,266 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 9, 0, 19), 8.69, 54.06, 0.0, 20.73, 7.46, 0, 0, 0, 2, 0, 0),)
2025-06-13 09:00:40,266 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 09:00:19
2025-06-13 09:00:40,347 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 09:00:40,353 [DEBUG][       Thread-249309][   transport.py][1871] : starting thread (client mode): 0x863ca2f0
2025-06-13 09:00:40,353 [DEBUG][       Thread-249309][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 09:00:40,374 [DEBUG][       Thread-249309][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 09:00:40,374 [ INFO][       Thread-249309][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 09:00:40,378 [DEBUG][       Thread-249309][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 09:00:40,378 [DEBUG][       Thread-249309][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 09:00:40,378 [DEBUG][       Thread-249309][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 09:00:40,378 [DEBUG][       Thread-249309][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:00:40,378 [DEBUG][       Thread-249309][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:00:40,378 [DEBUG][       Thread-249309][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:00:40,378 [DEBUG][       Thread-249309][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:00:40,378 [DEBUG][       Thread-249309][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 09:00:40,378 [DEBUG][       Thread-249309][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 09:00:40,378 [DEBUG][       Thread-249309][   transport.py][1871] : client lang: <none>
2025-06-13 09:00:40,378 [DEBUG][       Thread-249309][   transport.py][1871] : server lang: <none>
2025-06-13 09:00:40,378 [DEBUG][       Thread-249309][   transport.py][1871] : kex follows: False
2025-06-13 09:00:40,378 [DEBUG][       Thread-249309][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 09:00:40,378 [DEBUG][       Thread-249309][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 09:00:40,378 [DEBUG][       Thread-249309][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 09:00:40,379 [DEBUG][       Thread-249309][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 09:00:40,379 [DEBUG][       Thread-249309][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 09:00:40,379 [DEBUG][       Thread-249309][   transport.py][1871] : Compression: none
2025-06-13 09:00:40,379 [DEBUG][       Thread-249309][   transport.py][1871] : === End of kex handshake ===
2025-06-13 09:00:40,394 [DEBUG][       Thread-249309][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 09:00:40,395 [DEBUG][       Thread-249309][   transport.py][1871] : Switch to new keys ...
2025-06-13 09:00:40,395 [DEBUG][       Thread-249309][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 09:00:40,396 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 09:00:40,396 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 09:00:40,397 [DEBUG][       Thread-249309][   transport.py][1871] : userauth is OK
2025-06-13 09:00:40,422 [ INFO][       Thread-249309][   transport.py][1871] : Authentication (password) successful!
2025-06-13 09:00:40,422 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 09:00:41,042 [DEBUG][       Thread-249309][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 09:00:41,042 [DEBUG][       Thread-249309][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 09:00:41,085 [DEBUG][       Thread-249309][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 09:00:41,085 [DEBUG][       Thread-249309][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 09:00:41,088 [DEBUG][       Thread-249309][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 09:00:41,100 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 09:00:41,101 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 09:00:41,102 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 09:00:41,104 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 09:00:41,109 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 09:00:41,110 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 09:00:41,111 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 09:00:41,111 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 09:00:41,111 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.291608 -999.00   +7.10  23.60     59   -0.20 1 1 1 1 1   887    0 7.86 24.67 ----- 23.6 23.6 47.6 30.4 10.2 -27.4 9.2 -27.8 8.0 -27.2 9.1 -26.2
2025-06-13 09:00:41,111 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 09:00:41,111 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 09:00:41,111 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.291608
2025-06-13 09:00:41,112 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 09:00:41,112 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 09:00:41,112 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 09:00:41,112 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 09:00:41,113 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 09:00:41,113 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T09:00:19', tmtdew=8.69, humidity=54.06, cloud=0.0, wind=20.73, temperature=7.46, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T06:59:54.931', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 09:00:41,114 [DEBUG][       Thread-249309][   transport.py][1871] : EOF in transport thread
2025-06-13 09:00:41,196 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 09:00:41,208 [DEBUG][       Thread-249312][   transport.py][1871] : starting thread (client mode): 0x863ec850
2025-06-13 09:00:41,208 [DEBUG][       Thread-249312][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 09:00:41,223 [DEBUG][       Thread-249312][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 09:00:41,223 [ INFO][       Thread-249312][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 09:00:41,230 [DEBUG][       Thread-249312][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 09:00:41,231 [DEBUG][       Thread-249312][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 09:00:41,231 [DEBUG][       Thread-249312][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 09:00:41,231 [DEBUG][       Thread-249312][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:00:41,231 [DEBUG][       Thread-249312][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:00:41,231 [DEBUG][       Thread-249312][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:00:41,231 [DEBUG][       Thread-249312][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:00:41,231 [DEBUG][       Thread-249312][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 09:00:41,231 [DEBUG][       Thread-249312][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 09:00:41,231 [DEBUG][       Thread-249312][   transport.py][1871] : client lang: <none>
2025-06-13 09:00:41,231 [DEBUG][       Thread-249312][   transport.py][1871] : server lang: <none>
2025-06-13 09:00:41,231 [DEBUG][       Thread-249312][   transport.py][1871] : kex follows: False
2025-06-13 09:00:41,231 [DEBUG][       Thread-249312][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 09:00:41,231 [DEBUG][       Thread-249312][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 09:00:41,231 [DEBUG][       Thread-249312][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 09:00:41,231 [DEBUG][       Thread-249312][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 09:00:41,231 [DEBUG][       Thread-249312][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 09:00:41,231 [DEBUG][       Thread-249312][   transport.py][1871] : Compression: none
2025-06-13 09:00:41,231 [DEBUG][       Thread-249312][   transport.py][1871] : === End of kex handshake ===
2025-06-13 09:00:41,290 [DEBUG][       Thread-249312][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 09:00:41,290 [DEBUG][       Thread-249312][   transport.py][1871] : Switch to new keys ...
2025-06-13 09:00:41,291 [DEBUG][       Thread-249312][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 09:00:41,291 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 09:00:41,292 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 09:00:41,346 [DEBUG][       Thread-249312][   transport.py][1871] : userauth is OK
2025-06-13 09:00:41,347 [DEBUG][       Thread-249312][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 09:00:41,347 [DEBUG][       Thread-249312][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 09:00:41,347 [DEBUG][       Thread-249312][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 09:00:41,347 [DEBUG][       Thread-249312][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 09:00:41,366 [ INFO][       Thread-249312][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 09:00:41,366 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 09:00:41,366 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 09:00:42,398 [DEBUG][       Thread-249312][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 09:00:42,398 [DEBUG][       Thread-249312][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 09:00:42,447 [DEBUG][       Thread-249312][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 09:00:42,447 [DEBUG][       Thread-249312][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 09:00:42,456 [DEBUG][       Thread-249312][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 09:00:42,470 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 09:00:42,470 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 09:00:42,481 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 09:00:42,490 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 09:00:42,490 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 09:00:42,490 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 09:00:42,498 [DEBUG][       Thread-249312][   transport.py][1871] : EOF in transport thread
2025-06-13 09:00:43,086 [DEBUG][Thread-249314 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:00:52,103 [DEBUG][Thread-249315 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:00:52,500 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 09:00:52,500 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 09:00:52,500 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 09:00:52,501 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 09:00:53,010 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 9, 0, 19), 8.69, 54.06, 0.0, 20.73, 7.46, 0, 0, 0, 2, 0, 0),)
2025-06-13 09:00:53,010 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 09:00:19
2025-06-13 09:00:53,096 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 09:00:53,102 [DEBUG][       Thread-249316][   transport.py][1871] : starting thread (client mode): 0x863edd80
2025-06-13 09:00:53,102 [DEBUG][       Thread-249316][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 09:00:53,123 [DEBUG][       Thread-249316][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 09:00:53,123 [ INFO][       Thread-249316][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 09:00:53,127 [DEBUG][       Thread-249316][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 09:00:53,127 [DEBUG][       Thread-249316][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 09:00:53,127 [DEBUG][       Thread-249316][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 09:00:53,127 [DEBUG][       Thread-249316][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:00:53,127 [DEBUG][       Thread-249316][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:00:53,127 [DEBUG][       Thread-249316][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:00:53,127 [DEBUG][       Thread-249316][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:00:53,127 [DEBUG][       Thread-249316][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 09:00:53,127 [DEBUG][       Thread-249316][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 09:00:53,127 [DEBUG][       Thread-249316][   transport.py][1871] : client lang: <none>
2025-06-13 09:00:53,127 [DEBUG][       Thread-249316][   transport.py][1871] : server lang: <none>
2025-06-13 09:00:53,127 [DEBUG][       Thread-249316][   transport.py][1871] : kex follows: False
2025-06-13 09:00:53,127 [DEBUG][       Thread-249316][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 09:00:53,127 [DEBUG][       Thread-249316][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 09:00:53,127 [DEBUG][       Thread-249316][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 09:00:53,127 [DEBUG][       Thread-249316][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 09:00:53,127 [DEBUG][       Thread-249316][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 09:00:53,127 [DEBUG][       Thread-249316][   transport.py][1871] : Compression: none
2025-06-13 09:00:53,127 [DEBUG][       Thread-249316][   transport.py][1871] : === End of kex handshake ===
2025-06-13 09:00:53,141 [DEBUG][       Thread-249316][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 09:00:53,142 [DEBUG][       Thread-249316][   transport.py][1871] : Switch to new keys ...
2025-06-13 09:00:53,142 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 09:00:53,142 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 09:00:53,142 [DEBUG][       Thread-249316][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 09:00:53,143 [DEBUG][       Thread-249316][   transport.py][1871] : userauth is OK
2025-06-13 09:00:53,156 [ INFO][       Thread-249316][   transport.py][1871] : Authentication (password) successful!
2025-06-13 09:00:53,156 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 09:00:53,775 [DEBUG][       Thread-249316][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 09:00:53,775 [DEBUG][       Thread-249316][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 09:00:53,817 [DEBUG][       Thread-249316][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 09:00:53,817 [DEBUG][       Thread-249316][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 09:00:53,820 [DEBUG][       Thread-249316][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 09:00:53,833 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 09:00:53,833 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 09:00:53,835 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 09:00:53,836 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 09:00:53,841 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 09:00:53,843 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 09:00:53,843 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 09:00:53,844 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 09:00:53,844 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.291608 -999.00   +7.10  23.60     59   -0.20 1 1 1 1 1   887    0 7.86 24.67 ----- 23.6 23.6 47.6 30.4 10.2 -27.4 9.2 -27.8 8.0 -27.2 9.1 -26.2
2025-06-13 09:00:53,844 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 09:00:53,844 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 09:00:53,844 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.291608
2025-06-13 09:00:53,844 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 09:00:53,845 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 09:00:53,845 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 09:00:53,845 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 09:00:53,845 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 09:00:53,845 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T09:00:19', tmtdew=8.69, humidity=54.06, cloud=0.0, wind=20.73, temperature=7.46, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T06:59:54.931', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 09:00:53,846 [DEBUG][       Thread-249316][   transport.py][1871] : EOF in transport thread
2025-06-13 09:00:53,928 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 09:00:53,938 [DEBUG][       Thread-249319][   transport.py][1871] : starting thread (client mode): 0x863c9750
2025-06-13 09:00:53,938 [DEBUG][       Thread-249319][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 09:00:53,954 [DEBUG][       Thread-249319][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 09:00:53,954 [ INFO][       Thread-249319][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 09:00:53,962 [DEBUG][       Thread-249319][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 09:00:53,962 [DEBUG][       Thread-249319][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 09:00:53,962 [DEBUG][       Thread-249319][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 09:00:53,962 [DEBUG][       Thread-249319][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:00:53,962 [DEBUG][       Thread-249319][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:00:53,962 [DEBUG][       Thread-249319][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:00:53,962 [DEBUG][       Thread-249319][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:00:53,962 [DEBUG][       Thread-249319][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 09:00:53,962 [DEBUG][       Thread-249319][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 09:00:53,962 [DEBUG][       Thread-249319][   transport.py][1871] : client lang: <none>
2025-06-13 09:00:53,962 [DEBUG][       Thread-249319][   transport.py][1871] : server lang: <none>
2025-06-13 09:00:53,962 [DEBUG][       Thread-249319][   transport.py][1871] : kex follows: False
2025-06-13 09:00:53,962 [DEBUG][       Thread-249319][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 09:00:53,962 [DEBUG][       Thread-249319][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 09:00:53,962 [DEBUG][       Thread-249319][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 09:00:53,963 [DEBUG][       Thread-249319][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 09:00:53,963 [DEBUG][       Thread-249319][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 09:00:53,963 [DEBUG][       Thread-249319][   transport.py][1871] : Compression: none
2025-06-13 09:00:53,963 [DEBUG][       Thread-249319][   transport.py][1871] : === End of kex handshake ===
2025-06-13 09:00:54,018 [DEBUG][       Thread-249319][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 09:00:54,019 [DEBUG][       Thread-249319][   transport.py][1871] : Switch to new keys ...
2025-06-13 09:00:54,019 [DEBUG][       Thread-249319][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 09:00:54,019 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 09:00:54,020 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 09:00:54,075 [DEBUG][       Thread-249319][   transport.py][1871] : userauth is OK
2025-06-13 09:00:54,075 [DEBUG][       Thread-249319][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 09:00:54,075 [DEBUG][       Thread-249319][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 09:00:54,075 [DEBUG][       Thread-249319][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 09:00:54,075 [DEBUG][       Thread-249319][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 09:00:54,094 [ INFO][       Thread-249319][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 09:00:54,095 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 09:00:54,095 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 09:00:55,121 [DEBUG][       Thread-249319][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 09:00:55,121 [DEBUG][       Thread-249319][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 09:00:55,171 [DEBUG][       Thread-249319][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 09:00:55,172 [DEBUG][       Thread-249319][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 09:00:55,182 [DEBUG][       Thread-249319][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 09:00:55,190 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 09:00:55,190 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 09:00:55,199 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 09:00:55,207 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 09:00:55,208 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 09:00:55,208 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 09:00:55,216 [DEBUG][       Thread-249319][   transport.py][1871] : EOF in transport thread
2025-06-13 09:01:01,121 [DEBUG][Thread-249321 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:01:01,945 [DEBUG][Thread-249322 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:01:05,216 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 09:01:05,216 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 09:01:05,216 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 09:01:05,219 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 09:01:05,680 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 9, 0, 51), 8.72, 53.95, 0.0, 21.49, 7.46, 0, 0, 0, 2, 0, 0),)
2025-06-13 09:01:05,680 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 09:00:51
2025-06-13 09:01:05,761 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 09:01:05,764 [DEBUG][       Thread-249323][   transport.py][1871] : starting thread (client mode): 0x863edb70
2025-06-13 09:01:05,765 [DEBUG][       Thread-249323][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 09:01:05,786 [DEBUG][       Thread-249323][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 09:01:05,786 [ INFO][       Thread-249323][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 09:01:05,790 [DEBUG][       Thread-249323][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 09:01:05,790 [DEBUG][       Thread-249323][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 09:01:05,790 [DEBUG][       Thread-249323][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 09:01:05,790 [DEBUG][       Thread-249323][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:01:05,790 [DEBUG][       Thread-249323][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:01:05,790 [DEBUG][       Thread-249323][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:01:05,790 [DEBUG][       Thread-249323][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:01:05,790 [DEBUG][       Thread-249323][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 09:01:05,790 [DEBUG][       Thread-249323][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 09:01:05,790 [DEBUG][       Thread-249323][   transport.py][1871] : client lang: <none>
2025-06-13 09:01:05,790 [DEBUG][       Thread-249323][   transport.py][1871] : server lang: <none>
2025-06-13 09:01:05,790 [DEBUG][       Thread-249323][   transport.py][1871] : kex follows: False
2025-06-13 09:01:05,790 [DEBUG][       Thread-249323][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 09:01:05,790 [DEBUG][       Thread-249323][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 09:01:05,790 [DEBUG][       Thread-249323][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 09:01:05,790 [DEBUG][       Thread-249323][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 09:01:05,790 [DEBUG][       Thread-249323][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 09:01:05,790 [DEBUG][       Thread-249323][   transport.py][1871] : Compression: none
2025-06-13 09:01:05,790 [DEBUG][       Thread-249323][   transport.py][1871] : === End of kex handshake ===
2025-06-13 09:01:05,806 [DEBUG][       Thread-249323][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 09:01:05,806 [DEBUG][       Thread-249323][   transport.py][1871] : Switch to new keys ...
2025-06-13 09:01:05,806 [DEBUG][       Thread-249323][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 09:01:05,806 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 09:01:05,806 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 09:01:05,807 [DEBUG][       Thread-249323][   transport.py][1871] : userauth is OK
2025-06-13 09:01:05,820 [ INFO][       Thread-249323][   transport.py][1871] : Authentication (password) successful!
2025-06-13 09:01:05,820 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 09:01:06,460 [DEBUG][       Thread-249323][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 09:01:06,461 [DEBUG][       Thread-249323][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 09:01:06,505 [DEBUG][       Thread-249323][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 09:01:06,505 [DEBUG][       Thread-249323][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 09:01:06,508 [DEBUG][       Thread-249323][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 09:01:06,520 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 09:01:06,520 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 09:01:06,522 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 09:01:06,524 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 09:01:06,528 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 09:01:06,530 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 09:01:06,530 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 09:01:06,531 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 09:01:06,531 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.292292 -999.00   +7.20  25.37     59   -0.20 1 1 1 1 1   887    0 8.00 26.88 ----- 25.4 25.4 55.4 30.4 10.3 -27.2 9.3 -28.0 8.1 -27.2 9.1 -26.0
2025-06-13 09:01:06,531 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 09:01:06,531 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 09:01:06,531 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.292292
2025-06-13 09:01:06,532 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 09:01:06,532 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 09:01:06,532 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 09:01:06,532 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 09:01:06,532 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 09:01:06,533 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T09:00:51', tmtdew=8.72, humidity=53.95, cloud=0.0, wind=21.49, temperature=7.46, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T07:00:54.029', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 09:01:06,534 [DEBUG][       Thread-249323][   transport.py][1871] : EOF in transport thread
2025-06-13 09:01:06,617 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 09:01:06,632 [DEBUG][       Thread-249326][   transport.py][1871] : starting thread (client mode): 0x863a5540
2025-06-13 09:01:06,632 [DEBUG][       Thread-249326][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 09:01:06,651 [DEBUG][       Thread-249326][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 09:01:06,652 [ INFO][       Thread-249326][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 09:01:06,659 [DEBUG][       Thread-249326][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 09:01:06,659 [DEBUG][       Thread-249326][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 09:01:06,660 [DEBUG][       Thread-249326][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 09:01:06,660 [DEBUG][       Thread-249326][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:01:06,660 [DEBUG][       Thread-249326][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:01:06,660 [DEBUG][       Thread-249326][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:01:06,660 [DEBUG][       Thread-249326][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:01:06,660 [DEBUG][       Thread-249326][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 09:01:06,660 [DEBUG][       Thread-249326][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 09:01:06,660 [DEBUG][       Thread-249326][   transport.py][1871] : client lang: <none>
2025-06-13 09:01:06,660 [DEBUG][       Thread-249326][   transport.py][1871] : server lang: <none>
2025-06-13 09:01:06,660 [DEBUG][       Thread-249326][   transport.py][1871] : kex follows: False
2025-06-13 09:01:06,660 [DEBUG][       Thread-249326][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 09:01:06,660 [DEBUG][       Thread-249326][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 09:01:06,660 [DEBUG][       Thread-249326][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 09:01:06,660 [DEBUG][       Thread-249326][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 09:01:06,660 [DEBUG][       Thread-249326][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 09:01:06,660 [DEBUG][       Thread-249326][   transport.py][1871] : Compression: none
2025-06-13 09:01:06,660 [DEBUG][       Thread-249326][   transport.py][1871] : === End of kex handshake ===
2025-06-13 09:01:06,722 [DEBUG][       Thread-249326][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 09:01:06,723 [DEBUG][       Thread-249326][   transport.py][1871] : Switch to new keys ...
2025-06-13 09:01:06,723 [DEBUG][       Thread-249326][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 09:01:06,723 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 09:01:06,724 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 09:01:06,780 [DEBUG][       Thread-249326][   transport.py][1871] : userauth is OK
2025-06-13 09:01:06,781 [DEBUG][       Thread-249326][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 09:01:06,781 [DEBUG][       Thread-249326][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 09:01:06,781 [DEBUG][       Thread-249326][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 09:01:06,781 [DEBUG][       Thread-249326][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 09:01:06,803 [ INFO][       Thread-249326][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 09:01:06,804 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 09:01:06,804 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 09:01:07,873 [DEBUG][       Thread-249326][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 09:01:07,873 [DEBUG][       Thread-249326][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 09:01:07,924 [DEBUG][       Thread-249326][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 09:01:07,924 [DEBUG][       Thread-249326][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 09:01:07,933 [DEBUG][       Thread-249326][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 09:01:07,942 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 09:01:07,942 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 09:01:07,952 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 09:01:07,961 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 09:01:07,961 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 09:01:07,962 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 09:01:07,973 [DEBUG][       Thread-249326][   transport.py][1871] : EOF in transport thread
2025-06-13 09:01:10,141 [DEBUG][Thread-249328 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:01:14,208 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:01:14,208 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:01:17,972 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 09:01:17,972 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 09:01:17,972 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 09:01:17,975 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 09:01:18,432 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 9, 0, 51), 8.72, 53.95, 0.0, 21.49, 7.46, 0, 0, 0, 2, 0, 0),)
2025-06-13 09:01:18,432 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 09:00:51
2025-06-13 09:01:18,514 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 09:01:18,520 [DEBUG][       Thread-249329][   transport.py][1871] : starting thread (client mode): 0x863ee8f0
2025-06-13 09:01:18,520 [DEBUG][       Thread-249329][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 09:01:18,540 [DEBUG][       Thread-249329][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 09:01:18,540 [ INFO][       Thread-249329][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 09:01:18,541 [DEBUG][       Thread-249329][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 09:01:18,541 [DEBUG][       Thread-249329][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 09:01:18,541 [DEBUG][       Thread-249329][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 09:01:18,541 [DEBUG][       Thread-249329][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:01:18,541 [DEBUG][       Thread-249329][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:01:18,541 [DEBUG][       Thread-249329][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:01:18,541 [DEBUG][       Thread-249329][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:01:18,541 [DEBUG][       Thread-249329][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 09:01:18,541 [DEBUG][       Thread-249329][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 09:01:18,541 [DEBUG][       Thread-249329][   transport.py][1871] : client lang: <none>
2025-06-13 09:01:18,541 [DEBUG][       Thread-249329][   transport.py][1871] : server lang: <none>
2025-06-13 09:01:18,541 [DEBUG][       Thread-249329][   transport.py][1871] : kex follows: False
2025-06-13 09:01:18,541 [DEBUG][       Thread-249329][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 09:01:18,541 [DEBUG][       Thread-249329][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 09:01:18,541 [DEBUG][       Thread-249329][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 09:01:18,542 [DEBUG][       Thread-249329][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 09:01:18,542 [DEBUG][       Thread-249329][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 09:01:18,542 [DEBUG][       Thread-249329][   transport.py][1871] : Compression: none
2025-06-13 09:01:18,542 [DEBUG][       Thread-249329][   transport.py][1871] : === End of kex handshake ===
2025-06-13 09:01:18,558 [DEBUG][       Thread-249329][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 09:01:18,559 [DEBUG][       Thread-249329][   transport.py][1871] : Switch to new keys ...
2025-06-13 09:01:18,559 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 09:01:18,559 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 09:01:18,560 [DEBUG][       Thread-249329][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 09:01:18,561 [DEBUG][       Thread-249329][   transport.py][1871] : userauth is OK
2025-06-13 09:01:18,586 [ INFO][       Thread-249329][   transport.py][1871] : Authentication (password) successful!
2025-06-13 09:01:18,586 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 09:01:19,178 [DEBUG][Thread-249331 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:01:19,199 [DEBUG][       Thread-249329][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 09:01:19,200 [DEBUG][       Thread-249329][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 09:01:19,241 [DEBUG][       Thread-249329][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 09:01:19,241 [DEBUG][       Thread-249329][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 09:01:19,243 [DEBUG][       Thread-249329][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 09:01:19,249 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 09:01:19,249 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 09:01:19,251 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 09:01:19,252 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 09:01:19,257 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 09:01:19,259 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 09:01:19,259 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 09:01:19,260 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 09:01:19,260 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.292292 -999.00   +7.20  25.37     59   -0.20 1 1 1 1 1   887    0 8.00 26.88 ----- 25.4 25.4 55.4 30.4 10.3 -27.2 9.3 -28.0 8.1 -27.2 9.1 -26.0
2025-06-13 09:01:19,260 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 09:01:19,260 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 09:01:19,260 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.292292
2025-06-13 09:01:19,261 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 09:01:19,261 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 09:01:19,261 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 09:01:19,261 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 09:01:19,261 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 09:01:19,261 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T09:00:51', tmtdew=8.72, humidity=53.95, cloud=0.0, wind=21.49, temperature=7.46, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T07:00:54.029', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 09:01:19,262 [DEBUG][       Thread-249329][   transport.py][1871] : EOF in transport thread
2025-06-13 09:01:19,346 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 09:01:19,355 [DEBUG][       Thread-249333][   transport.py][1871] : starting thread (client mode): 0x863c9540
2025-06-13 09:01:19,356 [DEBUG][       Thread-249333][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 09:01:19,369 [DEBUG][       Thread-249333][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 09:01:19,369 [ INFO][       Thread-249333][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 09:01:19,378 [DEBUG][       Thread-249333][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 09:01:19,378 [DEBUG][       Thread-249333][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 09:01:19,378 [DEBUG][       Thread-249333][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 09:01:19,378 [DEBUG][       Thread-249333][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:01:19,378 [DEBUG][       Thread-249333][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:01:19,378 [DEBUG][       Thread-249333][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:01:19,378 [DEBUG][       Thread-249333][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:01:19,378 [DEBUG][       Thread-249333][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 09:01:19,378 [DEBUG][       Thread-249333][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 09:01:19,378 [DEBUG][       Thread-249333][   transport.py][1871] : client lang: <none>
2025-06-13 09:01:19,378 [DEBUG][       Thread-249333][   transport.py][1871] : server lang: <none>
2025-06-13 09:01:19,378 [DEBUG][       Thread-249333][   transport.py][1871] : kex follows: False
2025-06-13 09:01:19,378 [DEBUG][       Thread-249333][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 09:01:19,378 [DEBUG][       Thread-249333][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 09:01:19,378 [DEBUG][       Thread-249333][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 09:01:19,378 [DEBUG][       Thread-249333][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 09:01:19,378 [DEBUG][       Thread-249333][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 09:01:19,378 [DEBUG][       Thread-249333][   transport.py][1871] : Compression: none
2025-06-13 09:01:19,378 [DEBUG][       Thread-249333][   transport.py][1871] : === End of kex handshake ===
2025-06-13 09:01:19,438 [DEBUG][       Thread-249333][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 09:01:19,438 [DEBUG][       Thread-249333][   transport.py][1871] : Switch to new keys ...
2025-06-13 09:01:19,439 [DEBUG][       Thread-249333][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 09:01:19,439 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 09:01:19,440 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 09:01:19,501 [DEBUG][       Thread-249333][   transport.py][1871] : userauth is OK
2025-06-13 09:01:19,502 [DEBUG][       Thread-249333][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 09:01:19,502 [DEBUG][       Thread-249333][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 09:01:19,502 [DEBUG][       Thread-249333][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 09:01:19,502 [DEBUG][       Thread-249333][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 09:01:19,522 [ INFO][       Thread-249333][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 09:01:19,523 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 09:01:19,523 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 09:01:20,531 [DEBUG][       Thread-249333][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 09:01:20,531 [DEBUG][       Thread-249333][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 09:01:20,579 [DEBUG][       Thread-249333][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 09:01:20,579 [DEBUG][       Thread-249333][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 09:01:20,588 [DEBUG][       Thread-249333][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 09:01:20,597 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 09:01:20,597 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 09:01:20,609 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 09:01:20,617 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 09:01:20,618 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 09:01:20,618 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 09:01:20,626 [DEBUG][       Thread-249333][   transport.py][1871] : EOF in transport thread
2025-06-13 09:01:28,196 [DEBUG][Thread-249335 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:01:30,628 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 09:01:30,629 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 09:01:30,629 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 09:01:30,631 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 09:01:31,102 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 9, 1, 22), 8.75, 53.97, 0.0, 22.62, 7.46, 0, 0, 0, 2, 0, 0),)
2025-06-13 09:01:31,102 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 09:01:22
2025-06-13 09:01:31,184 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 09:01:31,188 [DEBUG][       Thread-249336][   transport.py][1871] : starting thread (client mode): 0x863ef700
2025-06-13 09:01:31,188 [DEBUG][       Thread-249336][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 09:01:31,209 [DEBUG][       Thread-249336][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 09:01:31,209 [ INFO][       Thread-249336][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 09:01:31,212 [DEBUG][       Thread-249336][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 09:01:31,212 [DEBUG][       Thread-249336][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 09:01:31,213 [DEBUG][       Thread-249336][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 09:01:31,213 [DEBUG][       Thread-249336][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:01:31,213 [DEBUG][       Thread-249336][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:01:31,213 [DEBUG][       Thread-249336][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:01:31,213 [DEBUG][       Thread-249336][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:01:31,213 [DEBUG][       Thread-249336][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 09:01:31,213 [DEBUG][       Thread-249336][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 09:01:31,213 [DEBUG][       Thread-249336][   transport.py][1871] : client lang: <none>
2025-06-13 09:01:31,213 [DEBUG][       Thread-249336][   transport.py][1871] : server lang: <none>
2025-06-13 09:01:31,213 [DEBUG][       Thread-249336][   transport.py][1871] : kex follows: False
2025-06-13 09:01:31,213 [DEBUG][       Thread-249336][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 09:01:31,213 [DEBUG][       Thread-249336][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 09:01:31,213 [DEBUG][       Thread-249336][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 09:01:31,213 [DEBUG][       Thread-249336][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 09:01:31,213 [DEBUG][       Thread-249336][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 09:01:31,213 [DEBUG][       Thread-249336][   transport.py][1871] : Compression: none
2025-06-13 09:01:31,213 [DEBUG][       Thread-249336][   transport.py][1871] : === End of kex handshake ===
2025-06-13 09:01:31,229 [DEBUG][       Thread-249336][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 09:01:31,230 [DEBUG][       Thread-249336][   transport.py][1871] : Switch to new keys ...
2025-06-13 09:01:31,230 [DEBUG][       Thread-249336][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 09:01:31,230 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 09:01:31,230 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 09:01:31,232 [DEBUG][       Thread-249336][   transport.py][1871] : userauth is OK
2025-06-13 09:01:31,245 [ INFO][       Thread-249336][   transport.py][1871] : Authentication (password) successful!
2025-06-13 09:01:31,245 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 09:01:31,881 [DEBUG][       Thread-249336][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 09:01:31,881 [DEBUG][       Thread-249336][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 09:01:31,925 [DEBUG][       Thread-249336][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 09:01:31,925 [DEBUG][       Thread-249336][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 09:01:31,928 [DEBUG][       Thread-249336][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 09:01:31,939 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 09:01:31,940 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 09:01:31,942 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 09:01:31,944 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 09:01:31,949 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 09:01:31,951 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 09:01:31,951 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 09:01:31,951 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 09:01:31,951 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.292292 -999.00   +7.20  25.37     59   -0.20 1 1 1 1 1   887    0 8.00 26.88 ----- 25.4 25.4 55.4 30.4 10.3 -27.2 9.3 -28.0 8.1 -27.2 9.1 -26.0
2025-06-13 09:01:31,952 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 09:01:31,952 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 09:01:31,952 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.292292
2025-06-13 09:01:31,952 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 09:01:31,952 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 09:01:31,953 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 09:01:31,953 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 09:01:31,953 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 09:01:31,953 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T09:01:22', tmtdew=8.75, humidity=53.97, cloud=0.0, wind=22.62, temperature=7.46, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T07:00:54.029', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 09:01:31,953 [DEBUG][       Thread-249336][   transport.py][1871] : EOF in transport thread
2025-06-13 09:01:32,036 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 09:01:32,050 [DEBUG][       Thread-249339][   transport.py][1871] : starting thread (client mode): 0x863c95d0
2025-06-13 09:01:32,050 [DEBUG][       Thread-249339][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 09:01:32,065 [DEBUG][       Thread-249339][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 09:01:32,065 [ INFO][       Thread-249339][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 09:01:32,072 [DEBUG][       Thread-249339][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 09:01:32,073 [DEBUG][       Thread-249339][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 09:01:32,073 [DEBUG][       Thread-249339][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 09:01:32,073 [DEBUG][       Thread-249339][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:01:32,073 [DEBUG][       Thread-249339][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:01:32,073 [DEBUG][       Thread-249339][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:01:32,073 [DEBUG][       Thread-249339][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:01:32,073 [DEBUG][       Thread-249339][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 09:01:32,073 [DEBUG][       Thread-249339][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 09:01:32,073 [DEBUG][       Thread-249339][   transport.py][1871] : client lang: <none>
2025-06-13 09:01:32,073 [DEBUG][       Thread-249339][   transport.py][1871] : server lang: <none>
2025-06-13 09:01:32,073 [DEBUG][       Thread-249339][   transport.py][1871] : kex follows: False
2025-06-13 09:01:32,073 [DEBUG][       Thread-249339][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 09:01:32,073 [DEBUG][       Thread-249339][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 09:01:32,073 [DEBUG][       Thread-249339][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 09:01:32,073 [DEBUG][       Thread-249339][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 09:01:32,073 [DEBUG][       Thread-249339][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 09:01:32,074 [DEBUG][       Thread-249339][   transport.py][1871] : Compression: none
2025-06-13 09:01:32,074 [DEBUG][       Thread-249339][   transport.py][1871] : === End of kex handshake ===
2025-06-13 09:01:32,130 [DEBUG][       Thread-249339][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 09:01:32,130 [DEBUG][       Thread-249339][   transport.py][1871] : Switch to new keys ...
2025-06-13 09:01:32,131 [DEBUG][       Thread-249339][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 09:01:32,131 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 09:01:32,132 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 09:01:32,187 [DEBUG][       Thread-249339][   transport.py][1871] : userauth is OK
2025-06-13 09:01:32,187 [DEBUG][       Thread-249339][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 09:01:32,187 [DEBUG][       Thread-249339][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 09:01:32,187 [DEBUG][       Thread-249339][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 09:01:32,187 [DEBUG][       Thread-249339][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 09:01:32,205 [ INFO][       Thread-249339][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 09:01:32,206 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 09:01:32,206 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 09:01:33,217 [DEBUG][       Thread-249339][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 09:01:33,217 [DEBUG][       Thread-249339][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 09:01:33,270 [DEBUG][       Thread-249339][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 09:01:33,270 [DEBUG][       Thread-249339][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 09:01:33,282 [DEBUG][       Thread-249339][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 09:01:33,293 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 09:01:33,293 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 09:01:33,302 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 09:01:33,315 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 09:01:33,315 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 09:01:33,316 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 09:01:33,327 [DEBUG][       Thread-249339][   transport.py][1871] : EOF in transport thread
2025-06-13 09:01:37,214 [DEBUG][Thread-249341 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:01:37,601 [DEBUG][Thread-249342 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:01:38,679 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:01:38,680 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:01:43,326 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 09:01:43,326 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 09:01:43,326 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 09:01:43,329 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 09:01:43,796 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 9, 1, 22), 8.75, 53.97, 0.0, 22.62, 7.46, 0, 0, 0, 2, 0, 0),)
2025-06-13 09:01:43,796 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 09:01:22
2025-06-13 09:01:43,878 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 09:01:43,884 [DEBUG][       Thread-249343][   transport.py][1871] : starting thread (client mode): 0x863cae60
2025-06-13 09:01:43,884 [DEBUG][       Thread-249343][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 09:01:43,904 [DEBUG][       Thread-249343][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 09:01:43,904 [ INFO][       Thread-249343][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 09:01:43,907 [DEBUG][       Thread-249343][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 09:01:43,908 [DEBUG][       Thread-249343][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 09:01:43,908 [DEBUG][       Thread-249343][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 09:01:43,908 [DEBUG][       Thread-249343][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:01:43,908 [DEBUG][       Thread-249343][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:01:43,908 [DEBUG][       Thread-249343][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:01:43,908 [DEBUG][       Thread-249343][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:01:43,908 [DEBUG][       Thread-249343][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 09:01:43,908 [DEBUG][       Thread-249343][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 09:01:43,908 [DEBUG][       Thread-249343][   transport.py][1871] : client lang: <none>
2025-06-13 09:01:43,908 [DEBUG][       Thread-249343][   transport.py][1871] : server lang: <none>
2025-06-13 09:01:43,908 [DEBUG][       Thread-249343][   transport.py][1871] : kex follows: False
2025-06-13 09:01:43,908 [DEBUG][       Thread-249343][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 09:01:43,908 [DEBUG][       Thread-249343][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 09:01:43,908 [DEBUG][       Thread-249343][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 09:01:43,908 [DEBUG][       Thread-249343][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 09:01:43,908 [DEBUG][       Thread-249343][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 09:01:43,908 [DEBUG][       Thread-249343][   transport.py][1871] : Compression: none
2025-06-13 09:01:43,908 [DEBUG][       Thread-249343][   transport.py][1871] : === End of kex handshake ===
2025-06-13 09:01:43,924 [DEBUG][       Thread-249343][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 09:01:43,924 [DEBUG][       Thread-249343][   transport.py][1871] : Switch to new keys ...
2025-06-13 09:01:43,925 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 09:01:43,925 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 09:01:43,925 [DEBUG][       Thread-249343][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 09:01:43,926 [DEBUG][       Thread-249343][   transport.py][1871] : userauth is OK
2025-06-13 09:01:43,951 [ INFO][       Thread-249343][   transport.py][1871] : Authentication (password) successful!
2025-06-13 09:01:43,951 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 09:01:44,606 [DEBUG][       Thread-249343][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 09:01:44,606 [DEBUG][       Thread-249343][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 09:01:44,649 [DEBUG][       Thread-249343][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 09:01:44,649 [DEBUG][       Thread-249343][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 09:01:44,652 [DEBUG][       Thread-249343][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 09:01:44,663 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 09:01:44,663 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 09:01:44,665 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 09:01:44,666 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 09:01:44,672 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 09:01:44,674 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 09:01:44,674 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 09:01:44,675 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 09:01:44,675 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.292650 -999.00   +7.20  22.77     58   -0.40 1 1 1 1 1   887    0 8.01 26.46 ----- 22.8 22.8 44.0 35.0 10.3 -27.3 9.3 -28.1 8.1 -27.3 9.2 -26.0
2025-06-13 09:01:44,675 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 09:01:44,675 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 09:01:44,675 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.292650
2025-06-13 09:01:44,675 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 09:01:44,676 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 09:01:44,676 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 09:01:44,676 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 09:01:44,676 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 09:01:44,676 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T09:01:22', tmtdew=8.75, humidity=53.97, cloud=0.0, wind=22.62, temperature=7.46, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T07:01:24.960', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 09:01:44,676 [DEBUG][       Thread-249343][   transport.py][1871] : EOF in transport thread
2025-06-13 09:01:44,760 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 09:01:44,774 [DEBUG][       Thread-249346][   transport.py][1871] : starting thread (client mode): 0x863edc30
2025-06-13 09:01:44,774 [DEBUG][       Thread-249346][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 09:01:44,790 [DEBUG][       Thread-249346][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 09:01:44,790 [ INFO][       Thread-249346][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 09:01:44,800 [DEBUG][       Thread-249346][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 09:01:44,800 [DEBUG][       Thread-249346][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 09:01:44,800 [DEBUG][       Thread-249346][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 09:01:44,800 [DEBUG][       Thread-249346][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:01:44,800 [DEBUG][       Thread-249346][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:01:44,800 [DEBUG][       Thread-249346][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:01:44,800 [DEBUG][       Thread-249346][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:01:44,800 [DEBUG][       Thread-249346][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 09:01:44,800 [DEBUG][       Thread-249346][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 09:01:44,800 [DEBUG][       Thread-249346][   transport.py][1871] : client lang: <none>
2025-06-13 09:01:44,800 [DEBUG][       Thread-249346][   transport.py][1871] : server lang: <none>
2025-06-13 09:01:44,801 [DEBUG][       Thread-249346][   transport.py][1871] : kex follows: False
2025-06-13 09:01:44,801 [DEBUG][       Thread-249346][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 09:01:44,801 [DEBUG][       Thread-249346][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 09:01:44,801 [DEBUG][       Thread-249346][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 09:01:44,801 [DEBUG][       Thread-249346][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 09:01:44,801 [DEBUG][       Thread-249346][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 09:01:44,801 [DEBUG][       Thread-249346][   transport.py][1871] : Compression: none
2025-06-13 09:01:44,801 [DEBUG][       Thread-249346][   transport.py][1871] : === End of kex handshake ===
2025-06-13 09:01:44,855 [DEBUG][       Thread-249346][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 09:01:44,855 [DEBUG][       Thread-249346][   transport.py][1871] : Switch to new keys ...
2025-06-13 09:01:44,856 [DEBUG][       Thread-249346][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 09:01:44,856 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 09:01:44,857 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 09:01:44,918 [DEBUG][       Thread-249346][   transport.py][1871] : userauth is OK
2025-06-13 09:01:44,918 [DEBUG][       Thread-249346][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 09:01:44,919 [DEBUG][       Thread-249346][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 09:01:44,919 [DEBUG][       Thread-249346][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 09:01:44,919 [DEBUG][       Thread-249346][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 09:01:44,937 [ INFO][       Thread-249346][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 09:01:44,938 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 09:01:44,938 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 09:01:45,990 [DEBUG][       Thread-249346][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 09:01:45,991 [DEBUG][       Thread-249346][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 09:01:46,039 [DEBUG][       Thread-249346][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 09:01:46,040 [DEBUG][       Thread-249346][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 09:01:46,048 [DEBUG][       Thread-249346][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 09:01:46,057 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 09:01:46,057 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 09:01:46,066 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 09:01:46,079 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 09:01:46,079 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 09:01:46,080 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 09:01:46,087 [DEBUG][       Thread-249346][   transport.py][1871] : EOF in transport thread
2025-06-13 09:01:46,246 [DEBUG][Thread-249348 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:01:55,261 [DEBUG][Thread-249349 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:01:56,088 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 09:01:56,088 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 09:01:56,088 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 09:01:56,088 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 09:01:56,579 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 9, 1, 22), 8.75, 53.97, 0.0, 22.62, 7.46, 0, 0, 0, 2, 0, 0),)
2025-06-13 09:01:56,579 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 09:01:22
2025-06-13 09:01:56,663 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 09:01:56,667 [DEBUG][       Thread-249350][   transport.py][1871] : starting thread (client mode): 0x863ec070
2025-06-13 09:01:56,667 [DEBUG][       Thread-249350][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 09:01:56,678 [DEBUG][       Thread-249350][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 09:01:56,678 [ INFO][       Thread-249350][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 09:01:56,681 [DEBUG][       Thread-249350][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 09:01:56,681 [DEBUG][       Thread-249350][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 09:01:56,681 [DEBUG][       Thread-249350][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 09:01:56,681 [DEBUG][       Thread-249350][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:01:56,681 [DEBUG][       Thread-249350][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:01:56,681 [DEBUG][       Thread-249350][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:01:56,681 [DEBUG][       Thread-249350][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:01:56,681 [DEBUG][       Thread-249350][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 09:01:56,681 [DEBUG][       Thread-249350][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 09:01:56,681 [DEBUG][       Thread-249350][   transport.py][1871] : client lang: <none>
2025-06-13 09:01:56,681 [DEBUG][       Thread-249350][   transport.py][1871] : server lang: <none>
2025-06-13 09:01:56,681 [DEBUG][       Thread-249350][   transport.py][1871] : kex follows: False
2025-06-13 09:01:56,681 [DEBUG][       Thread-249350][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 09:01:56,681 [DEBUG][       Thread-249350][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 09:01:56,681 [DEBUG][       Thread-249350][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 09:01:56,681 [DEBUG][       Thread-249350][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 09:01:56,681 [DEBUG][       Thread-249350][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 09:01:56,681 [DEBUG][       Thread-249350][   transport.py][1871] : Compression: none
2025-06-13 09:01:56,681 [DEBUG][       Thread-249350][   transport.py][1871] : === End of kex handshake ===
2025-06-13 09:01:56,694 [DEBUG][       Thread-249350][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 09:01:56,694 [DEBUG][       Thread-249350][   transport.py][1871] : Switch to new keys ...
2025-06-13 09:01:56,694 [DEBUG][       Thread-249350][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 09:01:56,694 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 09:01:56,694 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 09:01:56,695 [DEBUG][       Thread-249350][   transport.py][1871] : userauth is OK
2025-06-13 09:01:56,719 [ INFO][       Thread-249350][   transport.py][1871] : Authentication (password) successful!
2025-06-13 09:01:56,720 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 09:01:58,390 [DEBUG][       Thread-249350][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 09:01:58,390 [DEBUG][       Thread-249350][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 09:01:58,433 [DEBUG][       Thread-249350][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 09:01:58,433 [DEBUG][       Thread-249350][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 09:01:58,436 [DEBUG][       Thread-249350][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 09:01:58,449 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 09:01:58,449 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 09:01:58,451 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 09:01:58,453 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 09:01:58,458 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 09:01:58,460 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 09:01:58,460 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 09:01:58,461 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 09:01:58,461 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.292650 -999.00   +7.20  22.77     58   -0.40 1 1 1 1 1   887    0 8.01 26.46 ----- 22.8 22.8 44.0 35.0 10.3 -27.3 9.3 -28.1 8.1 -27.3 9.2 -26.0
2025-06-13 09:01:58,461 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 09:01:58,461 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 09:01:58,461 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.292650
2025-06-13 09:01:58,462 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 09:01:58,462 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 09:01:58,462 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 09:01:58,462 [DEBUG][       Thread-249350][   transport.py][1871] : EOF in transport thread
2025-06-13 09:01:58,463 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 09:01:58,463 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 09:01:58,463 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T09:01:22', tmtdew=8.75, humidity=53.97, cloud=0.0, wind=22.62, temperature=7.46, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T07:01:24.960', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 09:01:58,546 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 09:01:58,556 [DEBUG][       Thread-249353][   transport.py][1871] : starting thread (client mode): 0x863cb2e0
2025-06-13 09:01:58,556 [DEBUG][       Thread-249353][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 09:01:58,577 [DEBUG][       Thread-249353][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 09:01:58,578 [ INFO][       Thread-249353][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 09:01:58,585 [DEBUG][       Thread-249353][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 09:01:58,585 [DEBUG][       Thread-249353][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 09:01:58,585 [DEBUG][       Thread-249353][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 09:01:58,585 [DEBUG][       Thread-249353][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:01:58,585 [DEBUG][       Thread-249353][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:01:58,586 [DEBUG][       Thread-249353][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:01:58,586 [DEBUG][       Thread-249353][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:01:58,586 [DEBUG][       Thread-249353][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 09:01:58,586 [DEBUG][       Thread-249353][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 09:01:58,586 [DEBUG][       Thread-249353][   transport.py][1871] : client lang: <none>
2025-06-13 09:01:58,586 [DEBUG][       Thread-249353][   transport.py][1871] : server lang: <none>
2025-06-13 09:01:58,586 [DEBUG][       Thread-249353][   transport.py][1871] : kex follows: False
2025-06-13 09:01:58,586 [DEBUG][       Thread-249353][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 09:01:58,586 [DEBUG][       Thread-249353][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 09:01:58,586 [DEBUG][       Thread-249353][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 09:01:58,586 [DEBUG][       Thread-249353][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 09:01:58,586 [DEBUG][       Thread-249353][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 09:01:58,586 [DEBUG][       Thread-249353][   transport.py][1871] : Compression: none
2025-06-13 09:01:58,586 [DEBUG][       Thread-249353][   transport.py][1871] : === End of kex handshake ===
2025-06-13 09:01:58,642 [DEBUG][       Thread-249353][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 09:01:58,642 [DEBUG][       Thread-249353][   transport.py][1871] : Switch to new keys ...
2025-06-13 09:01:58,643 [DEBUG][       Thread-249353][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 09:01:58,643 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 09:01:58,644 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 09:01:58,703 [DEBUG][       Thread-249353][   transport.py][1871] : userauth is OK
2025-06-13 09:01:58,704 [DEBUG][       Thread-249353][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 09:01:58,704 [DEBUG][       Thread-249353][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 09:01:58,704 [DEBUG][       Thread-249353][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 09:01:58,704 [DEBUG][       Thread-249353][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 09:01:58,717 [ INFO][       Thread-249353][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 09:01:58,717 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 09:01:58,718 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 09:01:59,722 [DEBUG][       Thread-249353][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 09:01:59,722 [DEBUG][       Thread-249353][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 09:01:59,773 [DEBUG][       Thread-249353][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 09:01:59,773 [DEBUG][       Thread-249353][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 09:01:59,782 [DEBUG][       Thread-249353][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 09:01:59,791 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 09:01:59,791 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 09:01:59,800 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 09:01:59,809 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 09:01:59,809 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 09:01:59,809 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 09:01:59,817 [DEBUG][       Thread-249353][   transport.py][1871] : EOF in transport thread
2025-06-13 09:02:01,997 [DEBUG][Thread-249355 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:02:04,278 [DEBUG][Thread-249356 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:02:09,820 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 09:02:09,820 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 09:02:09,820 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 09:02:09,823 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 09:02:10,288 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 9, 1, 54), 8.71, 54.1, 0.0, 22.83, 7.41, 0, 0, 0, 2, 0, 0),)
2025-06-13 09:02:10,288 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 09:01:54
2025-06-13 09:02:10,369 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 09:02:10,374 [DEBUG][       Thread-249357][   transport.py][1871] : starting thread (client mode): 0x863ef9a0
2025-06-13 09:02:10,374 [DEBUG][       Thread-249357][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 09:02:10,399 [DEBUG][       Thread-249357][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 09:02:10,399 [ INFO][       Thread-249357][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 09:02:10,402 [DEBUG][       Thread-249357][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 09:02:10,402 [DEBUG][       Thread-249357][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 09:02:10,402 [DEBUG][       Thread-249357][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 09:02:10,402 [DEBUG][       Thread-249357][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:02:10,402 [DEBUG][       Thread-249357][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:02:10,402 [DEBUG][       Thread-249357][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:02:10,402 [DEBUG][       Thread-249357][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:02:10,402 [DEBUG][       Thread-249357][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 09:02:10,402 [DEBUG][       Thread-249357][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 09:02:10,403 [DEBUG][       Thread-249357][   transport.py][1871] : client lang: <none>
2025-06-13 09:02:10,403 [DEBUG][       Thread-249357][   transport.py][1871] : server lang: <none>
2025-06-13 09:02:10,403 [DEBUG][       Thread-249357][   transport.py][1871] : kex follows: False
2025-06-13 09:02:10,403 [DEBUG][       Thread-249357][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 09:02:10,403 [DEBUG][       Thread-249357][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 09:02:10,403 [DEBUG][       Thread-249357][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 09:02:10,403 [DEBUG][       Thread-249357][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 09:02:10,403 [DEBUG][       Thread-249357][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 09:02:10,403 [DEBUG][       Thread-249357][   transport.py][1871] : Compression: none
2025-06-13 09:02:10,403 [DEBUG][       Thread-249357][   transport.py][1871] : === End of kex handshake ===
2025-06-13 09:02:10,420 [DEBUG][       Thread-249357][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 09:02:10,421 [DEBUG][       Thread-249357][   transport.py][1871] : Switch to new keys ...
2025-06-13 09:02:10,421 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 09:02:10,421 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 09:02:10,422 [DEBUG][       Thread-249357][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 09:02:10,423 [DEBUG][       Thread-249357][   transport.py][1871] : userauth is OK
2025-06-13 09:02:10,436 [ INFO][       Thread-249357][   transport.py][1871] : Authentication (password) successful!
2025-06-13 09:02:10,436 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 09:02:11,040 [DEBUG][       Thread-249357][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 09:02:11,040 [DEBUG][       Thread-249357][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 09:02:11,085 [DEBUG][       Thread-249357][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 09:02:11,085 [DEBUG][       Thread-249357][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 09:02:11,088 [DEBUG][       Thread-249357][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 09:02:11,101 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 09:02:11,101 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 09:02:11,102 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 09:02:11,103 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 09:02:11,106 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 09:02:11,107 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 09:02:11,107 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 09:02:11,107 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 09:02:11,108 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.292997 -999.00   +7.20  23.33     58   -0.30 1 1 1 1 1   887    0 8.05 30.03 ----- 23.3 23.3 38.4 29.3 10.3 -27.4 9.3 -28.0 8.1 -27.6 9.2 -26.0
2025-06-13 09:02:11,108 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 09:02:11,108 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 09:02:11,108 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.292997
2025-06-13 09:02:11,108 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 09:02:11,108 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 09:02:11,108 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 09:02:11,108 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 09:02:11,108 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 09:02:11,108 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T09:01:54', tmtdew=8.71, humidity=54.1, cloud=0.0, wind=22.83, temperature=7.41, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T07:01:54.941', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 09:02:11,108 [DEBUG][       Thread-249357][   transport.py][1871] : EOF in transport thread
2025-06-13 09:02:11,180 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 09:02:11,193 [DEBUG][       Thread-249360][   transport.py][1871] : starting thread (client mode): 0x863a7340
2025-06-13 09:02:11,193 [DEBUG][       Thread-249360][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 09:02:11,208 [DEBUG][       Thread-249360][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 09:02:11,208 [ INFO][       Thread-249360][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 09:02:11,218 [DEBUG][       Thread-249360][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 09:02:11,218 [DEBUG][       Thread-249360][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 09:02:11,218 [DEBUG][       Thread-249360][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 09:02:11,218 [DEBUG][       Thread-249360][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:02:11,218 [DEBUG][       Thread-249360][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:02:11,218 [DEBUG][       Thread-249360][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:02:11,218 [DEBUG][       Thread-249360][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:02:11,218 [DEBUG][       Thread-249360][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 09:02:11,218 [DEBUG][       Thread-249360][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 09:02:11,218 [DEBUG][       Thread-249360][   transport.py][1871] : client lang: <none>
2025-06-13 09:02:11,218 [DEBUG][       Thread-249360][   transport.py][1871] : server lang: <none>
2025-06-13 09:02:11,218 [DEBUG][       Thread-249360][   transport.py][1871] : kex follows: False
2025-06-13 09:02:11,218 [DEBUG][       Thread-249360][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 09:02:11,218 [DEBUG][       Thread-249360][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 09:02:11,218 [DEBUG][       Thread-249360][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 09:02:11,218 [DEBUG][       Thread-249360][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 09:02:11,218 [DEBUG][       Thread-249360][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 09:02:11,219 [DEBUG][       Thread-249360][   transport.py][1871] : Compression: none
2025-06-13 09:02:11,219 [DEBUG][       Thread-249360][   transport.py][1871] : === End of kex handshake ===
2025-06-13 09:02:11,281 [DEBUG][       Thread-249360][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 09:02:11,281 [DEBUG][       Thread-249360][   transport.py][1871] : Switch to new keys ...
2025-06-13 09:02:11,282 [DEBUG][       Thread-249360][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 09:02:11,282 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 09:02:11,283 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 09:02:11,339 [DEBUG][       Thread-249360][   transport.py][1871] : userauth is OK
2025-06-13 09:02:11,339 [DEBUG][       Thread-249360][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 09:02:11,339 [DEBUG][       Thread-249360][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 09:02:11,339 [DEBUG][       Thread-249360][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 09:02:11,339 [DEBUG][       Thread-249360][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 09:02:11,359 [ INFO][       Thread-249360][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 09:02:11,359 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 09:02:11,359 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 09:02:12,403 [DEBUG][       Thread-249360][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 09:02:12,403 [DEBUG][       Thread-249360][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 09:02:12,451 [DEBUG][       Thread-249360][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 09:02:12,452 [DEBUG][       Thread-249360][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 09:02:12,460 [DEBUG][       Thread-249360][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 09:02:12,470 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 09:02:12,470 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 09:02:12,478 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 09:02:12,487 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 09:02:12,487 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 09:02:12,487 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 09:02:12,495 [DEBUG][       Thread-249360][   transport.py][1871] : EOF in transport thread
2025-06-13 09:02:13,304 [DEBUG][Thread-249362 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:02:14,344 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:02:14,345 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:02:22,335 [DEBUG][Thread-249363 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:02:22,490 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 09:02:22,490 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 09:02:22,490 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 09:02:22,493 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 09:02:22,952 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 9, 1, 54), 8.71, 54.1, 0.0, 22.83, 7.41, 0, 0, 0, 2, 0, 0),)
2025-06-13 09:02:22,952 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 09:01:54
2025-06-13 09:02:23,031 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 09:02:23,035 [DEBUG][       Thread-249364][   transport.py][1871] : starting thread (client mode): 0x863a5db0
2025-06-13 09:02:23,035 [DEBUG][       Thread-249364][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 09:02:23,056 [DEBUG][       Thread-249364][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 09:02:23,056 [ INFO][       Thread-249364][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 09:02:23,060 [DEBUG][       Thread-249364][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 09:02:23,060 [DEBUG][       Thread-249364][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 09:02:23,060 [DEBUG][       Thread-249364][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 09:02:23,060 [DEBUG][       Thread-249364][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:02:23,060 [DEBUG][       Thread-249364][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:02:23,060 [DEBUG][       Thread-249364][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:02:23,060 [DEBUG][       Thread-249364][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:02:23,060 [DEBUG][       Thread-249364][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 09:02:23,060 [DEBUG][       Thread-249364][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 09:02:23,060 [DEBUG][       Thread-249364][   transport.py][1871] : client lang: <none>
2025-06-13 09:02:23,060 [DEBUG][       Thread-249364][   transport.py][1871] : server lang: <none>
2025-06-13 09:02:23,060 [DEBUG][       Thread-249364][   transport.py][1871] : kex follows: False
2025-06-13 09:02:23,060 [DEBUG][       Thread-249364][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 09:02:23,060 [DEBUG][       Thread-249364][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 09:02:23,060 [DEBUG][       Thread-249364][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 09:02:23,060 [DEBUG][       Thread-249364][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 09:02:23,060 [DEBUG][       Thread-249364][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 09:02:23,060 [DEBUG][       Thread-249364][   transport.py][1871] : Compression: none
2025-06-13 09:02:23,060 [DEBUG][       Thread-249364][   transport.py][1871] : === End of kex handshake ===
2025-06-13 09:02:23,076 [DEBUG][       Thread-249364][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 09:02:23,076 [DEBUG][       Thread-249364][   transport.py][1871] : Switch to new keys ...
2025-06-13 09:02:23,077 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 09:02:23,077 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 09:02:23,077 [DEBUG][       Thread-249364][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 09:02:23,078 [DEBUG][       Thread-249364][   transport.py][1871] : userauth is OK
2025-06-13 09:02:23,103 [ INFO][       Thread-249364][   transport.py][1871] : Authentication (password) successful!
2025-06-13 09:02:23,103 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 09:02:23,743 [DEBUG][       Thread-249364][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 09:02:23,743 [DEBUG][       Thread-249364][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 09:02:23,785 [DEBUG][       Thread-249364][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 09:02:23,785 [DEBUG][       Thread-249364][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 09:02:23,788 [DEBUG][       Thread-249364][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 09:02:23,801 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 09:02:23,801 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 09:02:23,803 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 09:02:23,804 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 09:02:23,809 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 09:02:23,811 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 09:02:23,811 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 09:02:23,812 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 09:02:23,812 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.292997 -999.00   +7.20  23.33     58   -0.30 1 1 1 1 1   887    0 8.05 30.03 ----- 23.3 23.3 38.4 29.3 10.3 -27.4 9.3 -28.0 8.1 -27.6 9.2 -26.0
2025-06-13 09:02:23,812 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 09:02:23,812 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 09:02:23,812 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.292997
2025-06-13 09:02:23,812 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 09:02:23,813 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 09:02:23,813 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 09:02:23,813 [DEBUG][       Thread-249364][   transport.py][1871] : EOF in transport thread
2025-06-13 09:02:23,813 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 09:02:23,814 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 09:02:23,814 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T09:01:54', tmtdew=8.71, humidity=54.1, cloud=0.0, wind=22.83, temperature=7.41, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T07:01:54.941', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 09:02:23,897 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 09:02:23,906 [DEBUG][       Thread-249367][   transport.py][1871] : starting thread (client mode): 0x863ecfa0
2025-06-13 09:02:23,906 [DEBUG][       Thread-249367][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 09:02:23,923 [DEBUG][       Thread-249367][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 09:02:23,923 [ INFO][       Thread-249367][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 09:02:23,931 [DEBUG][       Thread-249367][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 09:02:23,931 [DEBUG][       Thread-249367][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 09:02:23,931 [DEBUG][       Thread-249367][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 09:02:23,931 [DEBUG][       Thread-249367][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:02:23,931 [DEBUG][       Thread-249367][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:02:23,931 [DEBUG][       Thread-249367][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:02:23,931 [DEBUG][       Thread-249367][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:02:23,931 [DEBUG][       Thread-249367][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 09:02:23,931 [DEBUG][       Thread-249367][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 09:02:23,931 [DEBUG][       Thread-249367][   transport.py][1871] : client lang: <none>
2025-06-13 09:02:23,931 [DEBUG][       Thread-249367][   transport.py][1871] : server lang: <none>
2025-06-13 09:02:23,931 [DEBUG][       Thread-249367][   transport.py][1871] : kex follows: False
2025-06-13 09:02:23,931 [DEBUG][       Thread-249367][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 09:02:23,931 [DEBUG][       Thread-249367][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 09:02:23,931 [DEBUG][       Thread-249367][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 09:02:23,931 [DEBUG][       Thread-249367][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 09:02:23,931 [DEBUG][       Thread-249367][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 09:02:23,931 [DEBUG][       Thread-249367][   transport.py][1871] : Compression: none
2025-06-13 09:02:23,931 [DEBUG][       Thread-249367][   transport.py][1871] : === End of kex handshake ===
2025-06-13 09:02:23,992 [DEBUG][       Thread-249367][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 09:02:23,993 [DEBUG][       Thread-249367][   transport.py][1871] : Switch to new keys ...
2025-06-13 09:02:23,993 [DEBUG][       Thread-249367][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 09:02:23,993 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 09:02:23,994 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 09:02:24,051 [DEBUG][       Thread-249367][   transport.py][1871] : userauth is OK
2025-06-13 09:02:24,051 [DEBUG][       Thread-249367][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 09:02:24,051 [DEBUG][       Thread-249367][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 09:02:24,051 [DEBUG][       Thread-249367][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 09:02:24,051 [DEBUG][       Thread-249367][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 09:02:24,074 [ INFO][       Thread-249367][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 09:02:24,074 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 09:02:24,075 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 09:02:25,107 [DEBUG][       Thread-249367][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 09:02:25,107 [DEBUG][       Thread-249367][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 09:02:25,156 [DEBUG][       Thread-249367][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 09:02:25,156 [DEBUG][       Thread-249367][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 09:02:25,165 [DEBUG][       Thread-249367][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 09:02:25,174 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 09:02:25,174 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 09:02:25,191 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 09:02:25,204 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 09:02:25,204 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 09:02:25,204 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 09:02:25,212 [DEBUG][       Thread-249367][   transport.py][1871] : EOF in transport thread
2025-06-13 09:02:31,351 [DEBUG][Thread-249369 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:02:35,215 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 09:02:35,215 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 09:02:35,215 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 09:02:35,218 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 09:02:35,690 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 9, 2, 26), 8.77, 53.69, 0.0, 21.26, 7.43, 0, 0, 0, 2, 0, 0),)
2025-06-13 09:02:35,690 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 09:02:26
2025-06-13 09:02:35,772 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 09:02:35,778 [DEBUG][       Thread-249370][   transport.py][1871] : starting thread (client mode): 0x867fd990
2025-06-13 09:02:35,778 [DEBUG][       Thread-249370][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 09:02:35,799 [DEBUG][       Thread-249370][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 09:02:35,799 [ INFO][       Thread-249370][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 09:02:35,802 [DEBUG][       Thread-249370][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 09:02:35,802 [DEBUG][       Thread-249370][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 09:02:35,802 [DEBUG][       Thread-249370][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 09:02:35,802 [DEBUG][       Thread-249370][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:02:35,802 [DEBUG][       Thread-249370][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:02:35,802 [DEBUG][       Thread-249370][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:02:35,802 [DEBUG][       Thread-249370][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:02:35,803 [DEBUG][       Thread-249370][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 09:02:35,803 [DEBUG][       Thread-249370][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 09:02:35,803 [DEBUG][       Thread-249370][   transport.py][1871] : client lang: <none>
2025-06-13 09:02:35,803 [DEBUG][       Thread-249370][   transport.py][1871] : server lang: <none>
2025-06-13 09:02:35,803 [DEBUG][       Thread-249370][   transport.py][1871] : kex follows: False
2025-06-13 09:02:35,803 [DEBUG][       Thread-249370][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 09:02:35,803 [DEBUG][       Thread-249370][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 09:02:35,803 [DEBUG][       Thread-249370][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 09:02:35,803 [DEBUG][       Thread-249370][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 09:02:35,803 [DEBUG][       Thread-249370][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 09:02:35,803 [DEBUG][       Thread-249370][   transport.py][1871] : Compression: none
2025-06-13 09:02:35,803 [DEBUG][       Thread-249370][   transport.py][1871] : === End of kex handshake ===
2025-06-13 09:02:35,819 [DEBUG][       Thread-249370][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 09:02:35,820 [DEBUG][       Thread-249370][   transport.py][1871] : Switch to new keys ...
2025-06-13 09:02:35,820 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 09:02:35,821 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 09:02:35,821 [DEBUG][       Thread-249370][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 09:02:35,822 [DEBUG][       Thread-249370][   transport.py][1871] : userauth is OK
2025-06-13 09:02:35,835 [ INFO][       Thread-249370][   transport.py][1871] : Authentication (password) successful!
2025-06-13 09:02:35,835 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 09:02:36,487 [DEBUG][       Thread-249370][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 09:02:36,487 [DEBUG][       Thread-249370][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 09:02:36,529 [DEBUG][       Thread-249370][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 09:02:36,529 [DEBUG][       Thread-249370][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 09:02:36,532 [DEBUG][       Thread-249370][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 09:02:36,544 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 09:02:36,545 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 09:02:36,547 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 09:02:36,548 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 09:02:36,553 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 09:02:36,555 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 09:02:36,555 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 09:02:36,556 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 09:02:36,556 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.292997 -999.00   +7.20  23.33     58   -0.30 1 1 1 1 1   887    0 8.05 30.03 ----- 23.3 23.3 38.4 29.3 10.3 -27.4 9.3 -28.0 8.1 -27.6 9.2 -26.0
2025-06-13 09:02:36,556 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 09:02:36,556 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 09:02:36,556 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.292997
2025-06-13 09:02:36,556 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 09:02:36,557 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 09:02:36,557 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 09:02:36,557 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 09:02:36,557 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 09:02:36,557 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T09:02:26', tmtdew=8.77, humidity=53.69, cloud=0.0, wind=21.26, temperature=7.43, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T07:01:54.941', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 09:02:36,558 [DEBUG][       Thread-249370][   transport.py][1871] : EOF in transport thread
2025-06-13 09:02:36,642 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 09:02:36,653 [DEBUG][       Thread-249373][   transport.py][1871] : starting thread (client mode): 0x863caa40
2025-06-13 09:02:36,653 [DEBUG][       Thread-249373][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 09:02:36,669 [DEBUG][       Thread-249373][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 09:02:36,669 [ INFO][       Thread-249373][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 09:02:36,677 [DEBUG][       Thread-249373][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 09:02:36,677 [DEBUG][       Thread-249373][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 09:02:36,677 [DEBUG][       Thread-249373][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 09:02:36,677 [DEBUG][       Thread-249373][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:02:36,677 [DEBUG][       Thread-249373][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:02:36,677 [DEBUG][       Thread-249373][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:02:36,677 [DEBUG][       Thread-249373][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:02:36,677 [DEBUG][       Thread-249373][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 09:02:36,677 [DEBUG][       Thread-249373][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 09:02:36,677 [DEBUG][       Thread-249373][   transport.py][1871] : client lang: <none>
2025-06-13 09:02:36,677 [DEBUG][       Thread-249373][   transport.py][1871] : server lang: <none>
2025-06-13 09:02:36,677 [DEBUG][       Thread-249373][   transport.py][1871] : kex follows: False
2025-06-13 09:02:36,678 [DEBUG][       Thread-249373][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 09:02:36,678 [DEBUG][       Thread-249373][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 09:02:36,678 [DEBUG][       Thread-249373][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 09:02:36,678 [DEBUG][       Thread-249373][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 09:02:36,678 [DEBUG][       Thread-249373][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 09:02:36,678 [DEBUG][       Thread-249373][   transport.py][1871] : Compression: none
2025-06-13 09:02:36,678 [DEBUG][       Thread-249373][   transport.py][1871] : === End of kex handshake ===
2025-06-13 09:02:36,738 [DEBUG][       Thread-249373][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 09:02:36,738 [DEBUG][       Thread-249373][   transport.py][1871] : Switch to new keys ...
2025-06-13 09:02:36,739 [DEBUG][       Thread-249373][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 09:02:36,739 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 09:02:36,740 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 09:02:36,794 [DEBUG][       Thread-249373][   transport.py][1871] : userauth is OK
2025-06-13 09:02:36,795 [DEBUG][       Thread-249373][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 09:02:36,795 [DEBUG][       Thread-249373][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 09:02:36,795 [DEBUG][       Thread-249373][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 09:02:36,795 [DEBUG][       Thread-249373][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 09:02:36,814 [ INFO][       Thread-249373][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 09:02:36,814 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 09:02:36,815 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 09:02:37,867 [DEBUG][       Thread-249373][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 09:02:37,867 [DEBUG][       Thread-249373][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 09:02:37,915 [DEBUG][       Thread-249373][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 09:02:37,916 [DEBUG][       Thread-249373][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 09:02:37,934 [DEBUG][       Thread-249373][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 09:02:37,949 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 09:02:37,950 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 09:02:37,964 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 09:02:37,972 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 09:02:37,972 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 09:02:37,973 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 09:02:37,981 [DEBUG][       Thread-249373][   transport.py][1871] : EOF in transport thread
2025-06-13 09:02:38,751 [DEBUG][Thread-249375 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:02:39,826 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:02:39,828 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:02:40,368 [DEBUG][Thread-249376 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:02:47,983 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 09:02:47,983 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 09:02:47,984 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 09:02:47,986 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 09:02:48,447 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 9, 2, 26), 8.77, 53.69, 0.0, 21.26, 7.43, 0, 0, 0, 2, 0, 0),)
2025-06-13 09:02:48,447 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 09:02:26
2025-06-13 09:02:48,529 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 09:02:48,537 [DEBUG][       Thread-249377][   transport.py][1871] : starting thread (client mode): 0x867fc370
2025-06-13 09:02:48,537 [DEBUG][       Thread-249377][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 09:02:48,558 [DEBUG][       Thread-249377][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 09:02:48,558 [ INFO][       Thread-249377][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 09:02:48,561 [DEBUG][       Thread-249377][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 09:02:48,561 [DEBUG][       Thread-249377][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 09:02:48,561 [DEBUG][       Thread-249377][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 09:02:48,561 [DEBUG][       Thread-249377][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:02:48,561 [DEBUG][       Thread-249377][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:02:48,561 [DEBUG][       Thread-249377][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:02:48,561 [DEBUG][       Thread-249377][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:02:48,561 [DEBUG][       Thread-249377][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 09:02:48,561 [DEBUG][       Thread-249377][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 09:02:48,561 [DEBUG][       Thread-249377][   transport.py][1871] : client lang: <none>
2025-06-13 09:02:48,561 [DEBUG][       Thread-249377][   transport.py][1871] : server lang: <none>
2025-06-13 09:02:48,561 [DEBUG][       Thread-249377][   transport.py][1871] : kex follows: False
2025-06-13 09:02:48,561 [DEBUG][       Thread-249377][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 09:02:48,561 [DEBUG][       Thread-249377][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 09:02:48,561 [DEBUG][       Thread-249377][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 09:02:48,561 [DEBUG][       Thread-249377][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 09:02:48,561 [DEBUG][       Thread-249377][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 09:02:48,561 [DEBUG][       Thread-249377][   transport.py][1871] : Compression: none
2025-06-13 09:02:48,561 [DEBUG][       Thread-249377][   transport.py][1871] : === End of kex handshake ===
2025-06-13 09:02:48,579 [DEBUG][       Thread-249377][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 09:02:48,579 [DEBUG][       Thread-249377][   transport.py][1871] : Switch to new keys ...
2025-06-13 09:02:48,579 [DEBUG][       Thread-249377][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 09:02:48,579 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 09:02:48,579 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 09:02:48,580 [DEBUG][       Thread-249377][   transport.py][1871] : userauth is OK
2025-06-13 09:02:48,604 [ INFO][       Thread-249377][   transport.py][1871] : Authentication (password) successful!
2025-06-13 09:02:48,604 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 09:02:49,275 [DEBUG][       Thread-249377][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 09:02:49,276 [DEBUG][       Thread-249377][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 09:02:49,317 [DEBUG][       Thread-249377][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 09:02:49,317 [DEBUG][       Thread-249377][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 09:02:49,320 [DEBUG][       Thread-249377][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 09:02:49,332 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 09:02:49,332 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 09:02:49,334 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 09:02:49,336 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 09:02:49,341 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 09:02:49,343 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 09:02:49,343 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 09:02:49,344 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 09:02:49,344 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.293344 -999.00   +7.20  28.25     58   -0.30 1 1 1 1 1   887    0 8.03 28.35 ----- 28.2 28.2 49.6 33.3 10.4 -27.6 9.4 -28.3 8.2 -27.1 9.2 -26.0
2025-06-13 09:02:49,344 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 09:02:49,344 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 09:02:49,344 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.293344
2025-06-13 09:02:49,344 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 09:02:49,345 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 09:02:49,345 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 09:02:49,345 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 09:02:49,345 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 09:02:49,345 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T09:02:26', tmtdew=8.77, humidity=53.69, cloud=0.0, wind=21.26, temperature=7.43, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T07:02:24.922', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 09:02:49,345 [DEBUG][       Thread-249377][   transport.py][1871] : EOF in transport thread
2025-06-13 09:02:49,401 [DEBUG][Thread-249380 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:02:49,431 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 09:02:49,444 [DEBUG][       Thread-249381][   transport.py][1871] : starting thread (client mode): 0x863ed9f0
2025-06-13 09:02:49,444 [DEBUG][       Thread-249381][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 09:02:49,458 [DEBUG][       Thread-249381][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 09:02:49,459 [ INFO][       Thread-249381][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 09:02:49,466 [DEBUG][       Thread-249381][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 09:02:49,466 [DEBUG][       Thread-249381][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 09:02:49,466 [DEBUG][       Thread-249381][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 09:02:49,466 [DEBUG][       Thread-249381][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:02:49,466 [DEBUG][       Thread-249381][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:02:49,466 [DEBUG][       Thread-249381][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:02:49,467 [DEBUG][       Thread-249381][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:02:49,467 [DEBUG][       Thread-249381][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 09:02:49,467 [DEBUG][       Thread-249381][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 09:02:49,467 [DEBUG][       Thread-249381][   transport.py][1871] : client lang: <none>
2025-06-13 09:02:49,467 [DEBUG][       Thread-249381][   transport.py][1871] : server lang: <none>
2025-06-13 09:02:49,467 [DEBUG][       Thread-249381][   transport.py][1871] : kex follows: False
2025-06-13 09:02:49,467 [DEBUG][       Thread-249381][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 09:02:49,467 [DEBUG][       Thread-249381][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 09:02:49,467 [DEBUG][       Thread-249381][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 09:02:49,467 [DEBUG][       Thread-249381][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 09:02:49,467 [DEBUG][       Thread-249381][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 09:02:49,467 [DEBUG][       Thread-249381][   transport.py][1871] : Compression: none
2025-06-13 09:02:49,467 [DEBUG][       Thread-249381][   transport.py][1871] : === End of kex handshake ===
2025-06-13 09:02:49,522 [DEBUG][       Thread-249381][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 09:02:49,523 [DEBUG][       Thread-249381][   transport.py][1871] : Switch to new keys ...
2025-06-13 09:02:49,523 [DEBUG][       Thread-249381][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 09:02:49,523 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 09:02:49,524 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 09:02:49,579 [DEBUG][       Thread-249381][   transport.py][1871] : userauth is OK
2025-06-13 09:02:49,579 [DEBUG][       Thread-249381][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 09:02:49,580 [DEBUG][       Thread-249381][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 09:02:49,580 [DEBUG][       Thread-249381][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 09:02:49,580 [DEBUG][       Thread-249381][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 09:02:49,600 [ INFO][       Thread-249381][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 09:02:49,601 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 09:02:49,601 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 09:02:50,666 [DEBUG][       Thread-249381][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 09:02:50,666 [DEBUG][       Thread-249381][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 09:02:50,718 [DEBUG][       Thread-249381][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 09:02:50,718 [DEBUG][       Thread-249381][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 09:02:50,729 [DEBUG][       Thread-249381][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 09:02:50,740 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 09:02:50,741 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 09:02:50,749 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 09:02:50,758 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 09:02:50,758 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 09:02:50,758 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 09:02:50,766 [DEBUG][       Thread-249381][   transport.py][1871] : EOF in transport thread
2025-06-13 09:02:58,419 [DEBUG][Thread-249383 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:03:00,769 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 09:03:00,769 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 09:03:00,769 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 09:03:00,771 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 09:03:01,239 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 9, 2, 58), 8.78, 53.65, 0.0, 19.94, 7.45, 0, 0, 0, 2, 0, 0),)
2025-06-13 09:03:01,239 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 09:02:58
2025-06-13 09:03:01,320 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 09:03:01,324 [DEBUG][       Thread-249384][   transport.py][1871] : starting thread (client mode): 0x867fe110
2025-06-13 09:03:01,325 [DEBUG][       Thread-249384][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 09:03:01,345 [DEBUG][       Thread-249384][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 09:03:01,345 [ INFO][       Thread-249384][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 09:03:01,347 [DEBUG][       Thread-249384][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 09:03:01,347 [DEBUG][       Thread-249384][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 09:03:01,347 [DEBUG][       Thread-249384][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 09:03:01,347 [DEBUG][       Thread-249384][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:03:01,347 [DEBUG][       Thread-249384][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:03:01,347 [DEBUG][       Thread-249384][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:03:01,347 [DEBUG][       Thread-249384][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:03:01,347 [DEBUG][       Thread-249384][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 09:03:01,347 [DEBUG][       Thread-249384][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 09:03:01,347 [DEBUG][       Thread-249384][   transport.py][1871] : client lang: <none>
2025-06-13 09:03:01,347 [DEBUG][       Thread-249384][   transport.py][1871] : server lang: <none>
2025-06-13 09:03:01,347 [DEBUG][       Thread-249384][   transport.py][1871] : kex follows: False
2025-06-13 09:03:01,347 [DEBUG][       Thread-249384][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 09:03:01,347 [DEBUG][       Thread-249384][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 09:03:01,347 [DEBUG][       Thread-249384][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 09:03:01,347 [DEBUG][       Thread-249384][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 09:03:01,347 [DEBUG][       Thread-249384][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 09:03:01,347 [DEBUG][       Thread-249384][   transport.py][1871] : Compression: none
2025-06-13 09:03:01,347 [DEBUG][       Thread-249384][   transport.py][1871] : === End of kex handshake ===
2025-06-13 09:03:01,359 [DEBUG][       Thread-249384][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 09:03:01,360 [DEBUG][       Thread-249384][   transport.py][1871] : Switch to new keys ...
2025-06-13 09:03:01,360 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 09:03:01,360 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 09:03:01,361 [DEBUG][       Thread-249384][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 09:03:01,361 [DEBUG][       Thread-249384][   transport.py][1871] : userauth is OK
2025-06-13 09:03:01,386 [ INFO][       Thread-249384][   transport.py][1871] : Authentication (password) successful!
2025-06-13 09:03:01,386 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 09:03:01,997 [DEBUG][       Thread-249384][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 09:03:01,998 [DEBUG][       Thread-249384][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 09:03:02,040 [DEBUG][       Thread-249384][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 09:03:02,041 [DEBUG][       Thread-249384][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 09:03:02,043 [DEBUG][       Thread-249384][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 09:03:02,046 [DEBUG][Thread-249386 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:03:02,058 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 09:03:02,058 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 09:03:02,059 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 09:03:02,060 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 09:03:02,064 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 09:03:02,065 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 09:03:02,065 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 09:03:02,065 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 09:03:02,065 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.293344 -999.00   +7.20  28.25     58   -0.30 1 1 1 1 1   887    0 8.03 28.35 ----- 28.2 28.2 49.6 33.3 10.4 -27.6 9.4 -28.3 8.2 -27.1 9.2 -26.0
2025-06-13 09:03:02,065 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 09:03:02,066 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 09:03:02,066 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.293344
2025-06-13 09:03:02,066 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 09:03:02,066 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 09:03:02,066 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 09:03:02,066 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 09:03:02,066 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 09:03:02,066 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T09:02:58', tmtdew=8.78, humidity=53.65, cloud=0.0, wind=19.94, temperature=7.45, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T07:02:24.922', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 09:03:02,067 [DEBUG][       Thread-249384][   transport.py][1871] : EOF in transport thread
2025-06-13 09:03:02,141 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 09:03:02,151 [DEBUG][       Thread-249388][   transport.py][1871] : starting thread (client mode): 0x863ece80
2025-06-13 09:03:02,151 [DEBUG][       Thread-249388][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 09:03:02,165 [DEBUG][       Thread-249388][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 09:03:02,165 [ INFO][       Thread-249388][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 09:03:02,173 [DEBUG][       Thread-249388][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 09:03:02,173 [DEBUG][       Thread-249388][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 09:03:02,173 [DEBUG][       Thread-249388][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 09:03:02,173 [DEBUG][       Thread-249388][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:03:02,173 [DEBUG][       Thread-249388][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:03:02,173 [DEBUG][       Thread-249388][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:03:02,173 [DEBUG][       Thread-249388][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:03:02,173 [DEBUG][       Thread-249388][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 09:03:02,173 [DEBUG][       Thread-249388][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 09:03:02,173 [DEBUG][       Thread-249388][   transport.py][1871] : client lang: <none>
2025-06-13 09:03:02,173 [DEBUG][       Thread-249388][   transport.py][1871] : server lang: <none>
2025-06-13 09:03:02,173 [DEBUG][       Thread-249388][   transport.py][1871] : kex follows: False
2025-06-13 09:03:02,173 [DEBUG][       Thread-249388][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 09:03:02,173 [DEBUG][       Thread-249388][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 09:03:02,173 [DEBUG][       Thread-249388][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 09:03:02,174 [DEBUG][       Thread-249388][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 09:03:02,174 [DEBUG][       Thread-249388][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 09:03:02,174 [DEBUG][       Thread-249388][   transport.py][1871] : Compression: none
2025-06-13 09:03:02,174 [DEBUG][       Thread-249388][   transport.py][1871] : === End of kex handshake ===
2025-06-13 09:03:02,230 [DEBUG][       Thread-249388][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 09:03:02,230 [DEBUG][       Thread-249388][   transport.py][1871] : Switch to new keys ...
2025-06-13 09:03:02,231 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 09:03:02,231 [DEBUG][       Thread-249388][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 09:03:02,232 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 09:03:02,286 [DEBUG][       Thread-249388][   transport.py][1871] : userauth is OK
2025-06-13 09:03:02,286 [DEBUG][       Thread-249388][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 09:03:02,287 [DEBUG][       Thread-249388][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 09:03:02,287 [DEBUG][       Thread-249388][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 09:03:02,287 [DEBUG][       Thread-249388][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 09:03:02,304 [ INFO][       Thread-249388][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 09:03:02,305 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 09:03:02,305 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 09:03:03,340 [DEBUG][       Thread-249388][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 09:03:03,340 [DEBUG][       Thread-249388][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 09:03:03,390 [DEBUG][       Thread-249388][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 09:03:03,390 [DEBUG][       Thread-249388][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 09:03:03,408 [DEBUG][       Thread-249388][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 09:03:03,416 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 09:03:03,417 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 09:03:03,425 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 09:03:03,434 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 09:03:03,434 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 09:03:03,434 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 09:03:03,442 [DEBUG][       Thread-249388][   transport.py][1871] : EOF in transport thread
2025-06-13 09:03:07,436 [DEBUG][Thread-249390 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:03:13,444 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 09:03:13,444 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 09:03:13,444 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 09:03:13,445 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 09:03:13,904 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 9, 2, 58), 8.78, 53.65, 0.0, 19.94, 7.45, 0, 0, 0, 2, 0, 0),)
2025-06-13 09:03:13,904 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 09:02:58
2025-06-13 09:03:13,986 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 09:03:13,992 [DEBUG][       Thread-249391][   transport.py][1871] : starting thread (client mode): 0x863ede70
2025-06-13 09:03:13,992 [DEBUG][       Thread-249391][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 09:03:14,012 [DEBUG][       Thread-249391][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 09:03:14,012 [ INFO][       Thread-249391][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 09:03:14,015 [DEBUG][       Thread-249391][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 09:03:14,015 [DEBUG][       Thread-249391][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 09:03:14,015 [DEBUG][       Thread-249391][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 09:03:14,016 [DEBUG][       Thread-249391][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:03:14,016 [DEBUG][       Thread-249391][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:03:14,016 [DEBUG][       Thread-249391][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:03:14,016 [DEBUG][       Thread-249391][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:03:14,016 [DEBUG][       Thread-249391][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 09:03:14,016 [DEBUG][       Thread-249391][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 09:03:14,016 [DEBUG][       Thread-249391][   transport.py][1871] : client lang: <none>
2025-06-13 09:03:14,016 [DEBUG][       Thread-249391][   transport.py][1871] : server lang: <none>
2025-06-13 09:03:14,016 [DEBUG][       Thread-249391][   transport.py][1871] : kex follows: False
2025-06-13 09:03:14,016 [DEBUG][       Thread-249391][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 09:03:14,016 [DEBUG][       Thread-249391][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 09:03:14,016 [DEBUG][       Thread-249391][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 09:03:14,016 [DEBUG][       Thread-249391][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 09:03:14,016 [DEBUG][       Thread-249391][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 09:03:14,016 [DEBUG][       Thread-249391][   transport.py][1871] : Compression: none
2025-06-13 09:03:14,016 [DEBUG][       Thread-249391][   transport.py][1871] : === End of kex handshake ===
2025-06-13 09:03:14,032 [DEBUG][       Thread-249391][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 09:03:14,033 [DEBUG][       Thread-249391][   transport.py][1871] : Switch to new keys ...
2025-06-13 09:03:14,033 [DEBUG][       Thread-249391][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 09:03:14,033 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 09:03:14,033 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 09:03:14,034 [DEBUG][       Thread-249391][   transport.py][1871] : userauth is OK
2025-06-13 09:03:14,047 [ INFO][       Thread-249391][   transport.py][1871] : Authentication (password) successful!
2025-06-13 09:03:14,048 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 09:03:14,500 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:03:14,501 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:03:14,798 [DEBUG][       Thread-249391][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 09:03:14,798 [DEBUG][       Thread-249391][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 09:03:14,841 [DEBUG][       Thread-249391][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 09:03:14,841 [DEBUG][       Thread-249391][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 09:03:14,843 [DEBUG][       Thread-249391][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 09:03:14,849 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 09:03:14,849 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 09:03:14,851 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 09:03:14,852 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 09:03:14,856 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 09:03:14,858 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 09:03:14,858 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 09:03:14,858 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 09:03:14,859 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.293344 -999.00   +7.20  28.25     58   -0.30 1 1 1 1 1   887    0 8.03 28.35 ----- 28.2 28.2 49.6 33.3 10.4 -27.6 9.4 -28.3 8.2 -27.1 9.2 -26.0
2025-06-13 09:03:14,859 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 09:03:14,859 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 09:03:14,859 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.293344
2025-06-13 09:03:14,859 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 09:03:14,860 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 09:03:14,860 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 09:03:14,860 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 09:03:14,860 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 09:03:14,860 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T09:02:58', tmtdew=8.78, humidity=53.65, cloud=0.0, wind=19.94, temperature=7.45, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T07:02:24.922', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 09:03:14,861 [DEBUG][       Thread-249391][   transport.py][1871] : EOF in transport thread
2025-06-13 09:03:14,949 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 09:03:14,959 [DEBUG][       Thread-249394][   transport.py][1871] : starting thread (client mode): 0x863a65f0
2025-06-13 09:03:14,959 [DEBUG][       Thread-249394][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 09:03:14,974 [DEBUG][       Thread-249394][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 09:03:14,974 [ INFO][       Thread-249394][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 09:03:14,981 [DEBUG][       Thread-249394][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 09:03:14,981 [DEBUG][       Thread-249394][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 09:03:14,981 [DEBUG][       Thread-249394][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 09:03:14,981 [DEBUG][       Thread-249394][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:03:14,982 [DEBUG][       Thread-249394][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:03:14,982 [DEBUG][       Thread-249394][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:03:14,982 [DEBUG][       Thread-249394][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:03:14,982 [DEBUG][       Thread-249394][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 09:03:14,982 [DEBUG][       Thread-249394][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 09:03:14,982 [DEBUG][       Thread-249394][   transport.py][1871] : client lang: <none>
2025-06-13 09:03:14,982 [DEBUG][       Thread-249394][   transport.py][1871] : server lang: <none>
2025-06-13 09:03:14,982 [DEBUG][       Thread-249394][   transport.py][1871] : kex follows: False
2025-06-13 09:03:14,982 [DEBUG][       Thread-249394][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 09:03:14,982 [DEBUG][       Thread-249394][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 09:03:14,982 [DEBUG][       Thread-249394][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 09:03:14,982 [DEBUG][       Thread-249394][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 09:03:14,982 [DEBUG][       Thread-249394][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 09:03:14,982 [DEBUG][       Thread-249394][   transport.py][1871] : Compression: none
2025-06-13 09:03:14,982 [DEBUG][       Thread-249394][   transport.py][1871] : === End of kex handshake ===
2025-06-13 09:03:15,048 [DEBUG][       Thread-249394][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 09:03:15,048 [DEBUG][       Thread-249394][   transport.py][1871] : Switch to new keys ...
2025-06-13 09:03:15,048 [DEBUG][       Thread-249394][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 09:03:15,049 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 09:03:15,049 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 09:03:15,120 [DEBUG][       Thread-249394][   transport.py][1871] : userauth is OK
2025-06-13 09:03:15,120 [DEBUG][       Thread-249394][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 09:03:15,120 [DEBUG][       Thread-249394][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 09:03:15,120 [DEBUG][       Thread-249394][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 09:03:15,120 [DEBUG][       Thread-249394][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 09:03:15,138 [ INFO][       Thread-249394][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 09:03:15,139 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 09:03:15,139 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 09:03:16,130 [DEBUG][       Thread-249394][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 09:03:16,130 [DEBUG][       Thread-249394][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 09:03:16,180 [DEBUG][       Thread-249394][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 09:03:16,180 [DEBUG][       Thread-249394][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 09:03:16,189 [DEBUG][       Thread-249394][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 09:03:16,197 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 09:03:16,197 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 09:03:16,206 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 09:03:16,214 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 09:03:16,215 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 09:03:16,215 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 09:03:16,223 [DEBUG][       Thread-249394][   transport.py][1871] : EOF in transport thread
2025-06-13 09:03:16,469 [DEBUG][Thread-249396 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:03:25,488 [DEBUG][Thread-249397 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:03:26,225 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 09:03:26,225 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 09:03:26,226 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 09:03:26,228 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 09:03:26,685 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 9, 2, 58), 8.78, 53.65, 0.0, 19.94, 7.45, 0, 0, 0, 2, 0, 0),)
2025-06-13 09:03:26,686 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 09:02:58
2025-06-13 09:03:26,767 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 09:03:26,771 [DEBUG][       Thread-249398][   transport.py][1871] : starting thread (client mode): 0x863a7670
2025-06-13 09:03:26,771 [DEBUG][       Thread-249398][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 09:03:26,792 [DEBUG][       Thread-249398][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 09:03:26,792 [ INFO][       Thread-249398][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 09:03:26,795 [DEBUG][       Thread-249398][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 09:03:26,795 [DEBUG][       Thread-249398][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 09:03:26,795 [DEBUG][       Thread-249398][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 09:03:26,795 [DEBUG][       Thread-249398][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:03:26,795 [DEBUG][       Thread-249398][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:03:26,795 [DEBUG][       Thread-249398][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:03:26,795 [DEBUG][       Thread-249398][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:03:26,795 [DEBUG][       Thread-249398][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 09:03:26,795 [DEBUG][       Thread-249398][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 09:03:26,795 [DEBUG][       Thread-249398][   transport.py][1871] : client lang: <none>
2025-06-13 09:03:26,795 [DEBUG][       Thread-249398][   transport.py][1871] : server lang: <none>
2025-06-13 09:03:26,796 [DEBUG][       Thread-249398][   transport.py][1871] : kex follows: False
2025-06-13 09:03:26,796 [DEBUG][       Thread-249398][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 09:03:26,796 [DEBUG][       Thread-249398][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 09:03:26,796 [DEBUG][       Thread-249398][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 09:03:26,796 [DEBUG][       Thread-249398][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 09:03:26,796 [DEBUG][       Thread-249398][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 09:03:26,796 [DEBUG][       Thread-249398][   transport.py][1871] : Compression: none
2025-06-13 09:03:26,796 [DEBUG][       Thread-249398][   transport.py][1871] : === End of kex handshake ===
2025-06-13 09:03:26,813 [DEBUG][       Thread-249398][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 09:03:26,813 [DEBUG][       Thread-249398][   transport.py][1871] : Switch to new keys ...
2025-06-13 09:03:26,814 [DEBUG][       Thread-249398][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 09:03:26,814 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 09:03:26,814 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 09:03:26,815 [DEBUG][       Thread-249398][   transport.py][1871] : userauth is OK
2025-06-13 09:03:26,839 [ INFO][       Thread-249398][   transport.py][1871] : Authentication (password) successful!
2025-06-13 09:03:26,840 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 09:03:27,462 [DEBUG][       Thread-249398][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 09:03:27,462 [DEBUG][       Thread-249398][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 09:03:27,505 [DEBUG][       Thread-249398][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 09:03:27,505 [DEBUG][       Thread-249398][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 09:03:27,507 [DEBUG][       Thread-249398][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 09:03:27,520 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 09:03:27,520 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 09:03:27,522 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 09:03:27,523 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 09:03:27,528 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 09:03:27,530 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 09:03:27,530 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 09:03:27,530 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 09:03:27,531 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.293692 -999.00   +7.20  24.66     58   -0.30 1 1 1 1 1   887    0 7.98 30.49 ----- 24.7 24.7 37.8 28.7 10.4 -27.5 9.4 -28.2 8.1 -27.1 9.2 -26.0
2025-06-13 09:03:27,531 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 09:03:27,531 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 09:03:27,531 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.293692
2025-06-13 09:03:27,531 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 09:03:27,532 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 09:03:27,532 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 09:03:27,532 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 09:03:27,532 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 09:03:27,532 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T09:02:58', tmtdew=8.78, humidity=53.65, cloud=0.0, wind=19.94, temperature=7.45, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T07:02:54.989', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 09:03:27,532 [DEBUG][       Thread-249398][   transport.py][1871] : EOF in transport thread
2025-06-13 09:03:27,616 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 09:03:27,625 [DEBUG][       Thread-249401][   transport.py][1871] : starting thread (client mode): 0x863ca3b0
2025-06-13 09:03:27,625 [DEBUG][       Thread-249401][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 09:03:27,640 [DEBUG][       Thread-249401][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 09:03:27,640 [ INFO][       Thread-249401][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 09:03:27,647 [DEBUG][       Thread-249401][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 09:03:27,647 [DEBUG][       Thread-249401][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 09:03:27,647 [DEBUG][       Thread-249401][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 09:03:27,647 [DEBUG][       Thread-249401][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:03:27,647 [DEBUG][       Thread-249401][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:03:27,647 [DEBUG][       Thread-249401][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:03:27,647 [DEBUG][       Thread-249401][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:03:27,647 [DEBUG][       Thread-249401][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 09:03:27,647 [DEBUG][       Thread-249401][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 09:03:27,647 [DEBUG][       Thread-249401][   transport.py][1871] : client lang: <none>
2025-06-13 09:03:27,648 [DEBUG][       Thread-249401][   transport.py][1871] : server lang: <none>
2025-06-13 09:03:27,648 [DEBUG][       Thread-249401][   transport.py][1871] : kex follows: False
2025-06-13 09:03:27,648 [DEBUG][       Thread-249401][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 09:03:27,648 [DEBUG][       Thread-249401][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 09:03:27,648 [DEBUG][       Thread-249401][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 09:03:27,648 [DEBUG][       Thread-249401][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 09:03:27,648 [DEBUG][       Thread-249401][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 09:03:27,648 [DEBUG][       Thread-249401][   transport.py][1871] : Compression: none
2025-06-13 09:03:27,648 [DEBUG][       Thread-249401][   transport.py][1871] : === End of kex handshake ===
2025-06-13 09:03:27,713 [DEBUG][       Thread-249401][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 09:03:27,714 [DEBUG][       Thread-249401][   transport.py][1871] : Switch to new keys ...
2025-06-13 09:03:27,714 [DEBUG][       Thread-249401][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 09:03:27,715 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 09:03:27,715 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 09:03:27,770 [DEBUG][       Thread-249401][   transport.py][1871] : userauth is OK
2025-06-13 09:03:27,771 [DEBUG][       Thread-249401][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 09:03:27,771 [DEBUG][       Thread-249401][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 09:03:27,771 [DEBUG][       Thread-249401][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 09:03:27,771 [DEBUG][       Thread-249401][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 09:03:27,793 [ INFO][       Thread-249401][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 09:03:27,794 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 09:03:27,794 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 09:03:28,870 [DEBUG][       Thread-249401][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 09:03:28,870 [DEBUG][       Thread-249401][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 09:03:28,922 [DEBUG][       Thread-249401][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 09:03:28,922 [DEBUG][       Thread-249401][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 09:03:28,933 [DEBUG][       Thread-249401][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 09:03:28,943 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 09:03:28,943 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 09:03:28,952 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 09:03:28,961 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 09:03:28,961 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 09:03:28,961 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 09:03:28,971 [DEBUG][       Thread-249401][   transport.py][1871] : EOF in transport thread
2025-06-13 09:03:34,507 [DEBUG][Thread-249403 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:03:38,969 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 09:03:38,969 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 09:03:38,969 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 09:03:38,971 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 09:03:39,434 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 9, 3, 29), 8.77, 53.68, 0.0, 22.04, 7.45, 0, 0, 0, 2, 0, 0),)
2025-06-13 09:03:39,434 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 09:03:29
2025-06-13 09:03:39,516 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 09:03:39,523 [DEBUG][       Thread-249404][   transport.py][1871] : starting thread (client mode): 0x863c9240
2025-06-13 09:03:39,525 [DEBUG][       Thread-249404][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 09:03:39,543 [DEBUG][       Thread-249404][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 09:03:39,543 [ INFO][       Thread-249404][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 09:03:39,546 [DEBUG][       Thread-249404][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 09:03:39,546 [DEBUG][       Thread-249404][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 09:03:39,546 [DEBUG][       Thread-249404][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 09:03:39,546 [DEBUG][       Thread-249404][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:03:39,546 [DEBUG][       Thread-249404][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:03:39,546 [DEBUG][       Thread-249404][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:03:39,546 [DEBUG][       Thread-249404][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:03:39,547 [DEBUG][       Thread-249404][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 09:03:39,547 [DEBUG][       Thread-249404][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 09:03:39,547 [DEBUG][       Thread-249404][   transport.py][1871] : client lang: <none>
2025-06-13 09:03:39,547 [DEBUG][       Thread-249404][   transport.py][1871] : server lang: <none>
2025-06-13 09:03:39,547 [DEBUG][       Thread-249404][   transport.py][1871] : kex follows: False
2025-06-13 09:03:39,547 [DEBUG][       Thread-249404][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 09:03:39,547 [DEBUG][       Thread-249404][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 09:03:39,547 [DEBUG][       Thread-249404][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 09:03:39,547 [DEBUG][       Thread-249404][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 09:03:39,547 [DEBUG][       Thread-249404][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 09:03:39,547 [DEBUG][       Thread-249404][   transport.py][1871] : Compression: none
2025-06-13 09:03:39,547 [DEBUG][       Thread-249404][   transport.py][1871] : === End of kex handshake ===
2025-06-13 09:03:39,564 [DEBUG][       Thread-249404][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 09:03:39,564 [DEBUG][       Thread-249404][   transport.py][1871] : Switch to new keys ...
2025-06-13 09:03:39,565 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 09:03:39,565 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 09:03:39,566 [DEBUG][       Thread-249404][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 09:03:39,566 [DEBUG][       Thread-249404][   transport.py][1871] : userauth is OK
2025-06-13 09:03:39,590 [ INFO][       Thread-249404][   transport.py][1871] : Authentication (password) successful!
2025-06-13 09:03:39,590 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 09:03:39,861 [DEBUG][Thread-249406 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:03:40,390 [DEBUG][       Thread-249404][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 09:03:40,390 [DEBUG][       Thread-249404][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 09:03:40,433 [DEBUG][       Thread-249404][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 09:03:40,433 [DEBUG][       Thread-249404][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 09:03:40,436 [DEBUG][       Thread-249404][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 09:03:40,447 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 09:03:40,447 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 09:03:40,449 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 09:03:40,451 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 09:03:40,456 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 09:03:40,458 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 09:03:40,458 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 09:03:40,458 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 09:03:40,458 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.293692 -999.00   +7.20  24.66     58   -0.30 1 1 1 1 1   887    0 7.98 30.49 ----- 24.7 24.7 37.8 28.7 10.4 -27.5 9.4 -28.2 8.1 -27.1 9.2 -26.0
2025-06-13 09:03:40,459 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 09:03:40,459 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 09:03:40,459 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.293692
2025-06-13 09:03:40,459 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 09:03:40,460 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 09:03:40,460 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 09:03:40,460 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 09:03:40,460 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 09:03:40,460 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T09:03:29', tmtdew=8.77, humidity=53.68, cloud=0.0, wind=22.04, temperature=7.45, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T07:02:54.989', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 09:03:40,461 [DEBUG][       Thread-249404][   transport.py][1871] : EOF in transport thread
2025-06-13 09:03:40,544 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 09:03:40,557 [DEBUG][       Thread-249408][   transport.py][1871] : starting thread (client mode): 0x863ef970
2025-06-13 09:03:40,557 [DEBUG][       Thread-249408][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 09:03:40,575 [DEBUG][       Thread-249408][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 09:03:40,575 [ INFO][       Thread-249408][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 09:03:40,586 [DEBUG][       Thread-249408][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 09:03:40,587 [DEBUG][       Thread-249408][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 09:03:40,587 [DEBUG][       Thread-249408][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 09:03:40,587 [DEBUG][       Thread-249408][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:03:40,587 [DEBUG][       Thread-249408][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:03:40,587 [DEBUG][       Thread-249408][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:03:40,587 [DEBUG][       Thread-249408][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:03:40,587 [DEBUG][       Thread-249408][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 09:03:40,587 [DEBUG][       Thread-249408][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 09:03:40,587 [DEBUG][       Thread-249408][   transport.py][1871] : client lang: <none>
2025-06-13 09:03:40,587 [DEBUG][       Thread-249408][   transport.py][1871] : server lang: <none>
2025-06-13 09:03:40,587 [DEBUG][       Thread-249408][   transport.py][1871] : kex follows: False
2025-06-13 09:03:40,587 [DEBUG][       Thread-249408][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 09:03:40,587 [DEBUG][       Thread-249408][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 09:03:40,587 [DEBUG][       Thread-249408][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 09:03:40,587 [DEBUG][       Thread-249408][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 09:03:40,587 [DEBUG][       Thread-249408][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 09:03:40,587 [DEBUG][       Thread-249408][   transport.py][1871] : Compression: none
2025-06-13 09:03:40,588 [DEBUG][       Thread-249408][   transport.py][1871] : === End of kex handshake ===
2025-06-13 09:03:40,643 [DEBUG][       Thread-249408][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 09:03:40,644 [DEBUG][       Thread-249408][   transport.py][1871] : Switch to new keys ...
2025-06-13 09:03:40,644 [DEBUG][       Thread-249408][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 09:03:40,644 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 09:03:40,645 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 09:03:40,708 [DEBUG][       Thread-249408][   transport.py][1871] : userauth is OK
2025-06-13 09:03:40,708 [DEBUG][       Thread-249408][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 09:03:40,708 [DEBUG][       Thread-249408][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 09:03:40,708 [DEBUG][       Thread-249408][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 09:03:40,708 [DEBUG][       Thread-249408][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 09:03:40,730 [ INFO][       Thread-249408][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 09:03:40,731 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 09:03:40,731 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 09:03:40,948 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:03:40,949 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:03:41,800 [DEBUG][       Thread-249408][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 09:03:41,800 [DEBUG][       Thread-249408][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 09:03:41,848 [DEBUG][       Thread-249408][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 09:03:41,848 [DEBUG][       Thread-249408][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 09:03:41,857 [DEBUG][       Thread-249408][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 09:03:41,867 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 09:03:41,867 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 09:03:41,876 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 09:03:41,887 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 09:03:41,887 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 09:03:41,888 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 09:03:41,895 [DEBUG][       Thread-249408][   transport.py][1871] : EOF in transport thread
2025-06-13 09:03:43,526 [DEBUG][Thread-249410 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:03:51,898 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 09:03:51,898 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 09:03:51,898 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 09:03:51,901 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 09:03:52,361 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 9, 3, 29), 8.77, 53.68, 0.0, 22.04, 7.45, 0, 0, 0, 2, 0, 0),)
2025-06-13 09:03:52,362 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 09:03:29
2025-06-13 09:03:52,443 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 09:03:52,449 [DEBUG][       Thread-249411][   transport.py][1871] : starting thread (client mode): 0x863ed570
2025-06-13 09:03:52,449 [DEBUG][       Thread-249411][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 09:03:52,469 [DEBUG][       Thread-249411][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 09:03:52,469 [ INFO][       Thread-249411][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 09:03:52,472 [DEBUG][       Thread-249411][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 09:03:52,472 [DEBUG][       Thread-249411][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 09:03:52,472 [DEBUG][       Thread-249411][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 09:03:52,472 [DEBUG][       Thread-249411][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:03:52,473 [DEBUG][       Thread-249411][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:03:52,473 [DEBUG][       Thread-249411][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:03:52,473 [DEBUG][       Thread-249411][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:03:52,473 [DEBUG][       Thread-249411][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 09:03:52,473 [DEBUG][       Thread-249411][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 09:03:52,473 [DEBUG][       Thread-249411][   transport.py][1871] : client lang: <none>
2025-06-13 09:03:52,473 [DEBUG][       Thread-249411][   transport.py][1871] : server lang: <none>
2025-06-13 09:03:52,473 [DEBUG][       Thread-249411][   transport.py][1871] : kex follows: False
2025-06-13 09:03:52,473 [DEBUG][       Thread-249411][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 09:03:52,473 [DEBUG][       Thread-249411][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 09:03:52,473 [DEBUG][       Thread-249411][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 09:03:52,473 [DEBUG][       Thread-249411][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 09:03:52,473 [DEBUG][       Thread-249411][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 09:03:52,473 [DEBUG][       Thread-249411][   transport.py][1871] : Compression: none
2025-06-13 09:03:52,473 [DEBUG][       Thread-249411][   transport.py][1871] : === End of kex handshake ===
2025-06-13 09:03:52,489 [DEBUG][       Thread-249411][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 09:03:52,490 [DEBUG][       Thread-249411][   transport.py][1871] : Switch to new keys ...
2025-06-13 09:03:52,490 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 09:03:52,491 [DEBUG][       Thread-249411][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 09:03:52,491 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 09:03:52,493 [DEBUG][       Thread-249411][   transport.py][1871] : userauth is OK
2025-06-13 09:03:52,517 [ INFO][       Thread-249411][   transport.py][1871] : Authentication (password) successful!
2025-06-13 09:03:52,517 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 09:03:52,564 [DEBUG][Thread-249413 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:03:53,144 [DEBUG][       Thread-249411][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 09:03:53,144 [DEBUG][       Thread-249411][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 09:03:53,185 [DEBUG][       Thread-249411][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 09:03:53,185 [DEBUG][       Thread-249411][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 09:03:53,188 [DEBUG][       Thread-249411][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 09:03:53,200 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 09:03:53,200 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 09:03:53,202 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 09:03:53,203 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 09:03:53,208 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 09:03:53,210 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 09:03:53,210 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 09:03:53,211 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 09:03:53,211 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.294039 -999.00   +7.20  24.36     58   -0.20 1 1 1 1 1   887    0 8.03 30.17 ----- 24.4 24.4 43.0 26.0 10.5 -27.4 9.4 -28.1 8.2 -27.4 9.2 -26.0
2025-06-13 09:03:53,211 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 09:03:53,211 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 09:03:53,211 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.294039
2025-06-13 09:03:53,212 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 09:03:53,212 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 09:03:53,212 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 09:03:53,212 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 09:03:53,212 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 09:03:53,212 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T09:03:29', tmtdew=8.77, humidity=53.68, cloud=0.0, wind=22.04, temperature=7.45, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T07:03:24.970', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 09:03:53,213 [DEBUG][       Thread-249411][   transport.py][1871] : EOF in transport thread
2025-06-13 09:03:53,296 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 09:03:53,308 [DEBUG][       Thread-249415][   transport.py][1871] : starting thread (client mode): 0x863ca260
2025-06-13 09:03:53,308 [DEBUG][       Thread-249415][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 09:03:53,323 [DEBUG][       Thread-249415][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 09:03:53,323 [ INFO][       Thread-249415][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 09:03:53,330 [DEBUG][       Thread-249415][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 09:03:53,330 [DEBUG][       Thread-249415][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 09:03:53,330 [DEBUG][       Thread-249415][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 09:03:53,330 [DEBUG][       Thread-249415][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:03:53,330 [DEBUG][       Thread-249415][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:03:53,331 [DEBUG][       Thread-249415][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:03:53,331 [DEBUG][       Thread-249415][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:03:53,331 [DEBUG][       Thread-249415][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 09:03:53,331 [DEBUG][       Thread-249415][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 09:03:53,331 [DEBUG][       Thread-249415][   transport.py][1871] : client lang: <none>
2025-06-13 09:03:53,331 [DEBUG][       Thread-249415][   transport.py][1871] : server lang: <none>
2025-06-13 09:03:53,331 [DEBUG][       Thread-249415][   transport.py][1871] : kex follows: False
2025-06-13 09:03:53,331 [DEBUG][       Thread-249415][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 09:03:53,331 [DEBUG][       Thread-249415][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 09:03:53,331 [DEBUG][       Thread-249415][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 09:03:53,331 [DEBUG][       Thread-249415][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 09:03:53,331 [DEBUG][       Thread-249415][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 09:03:53,331 [DEBUG][       Thread-249415][   transport.py][1871] : Compression: none
2025-06-13 09:03:53,331 [DEBUG][       Thread-249415][   transport.py][1871] : === End of kex handshake ===
2025-06-13 09:03:53,386 [DEBUG][       Thread-249415][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 09:03:53,387 [DEBUG][       Thread-249415][   transport.py][1871] : Switch to new keys ...
2025-06-13 09:03:53,387 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 09:03:53,387 [DEBUG][       Thread-249415][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 09:03:53,388 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 09:03:53,442 [DEBUG][       Thread-249415][   transport.py][1871] : userauth is OK
2025-06-13 09:03:53,443 [DEBUG][       Thread-249415][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 09:03:53,443 [DEBUG][       Thread-249415][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 09:03:53,443 [DEBUG][       Thread-249415][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 09:03:53,443 [DEBUG][       Thread-249415][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 09:03:53,462 [ INFO][       Thread-249415][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 09:03:53,462 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 09:03:53,462 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 09:03:54,515 [DEBUG][       Thread-249415][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 09:03:54,515 [DEBUG][       Thread-249415][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 09:03:54,564 [DEBUG][       Thread-249415][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 09:03:54,564 [DEBUG][       Thread-249415][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 09:03:54,573 [DEBUG][       Thread-249415][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 09:03:54,582 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 09:03:54,582 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 09:03:54,590 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 09:03:54,599 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 09:03:54,599 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 09:03:54,600 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 09:03:54,607 [DEBUG][       Thread-249415][   transport.py][1871] : EOF in transport thread
2025-06-13 09:04:01,583 [DEBUG][Thread-249417 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:04:02,097 [DEBUG][Thread-249418 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:04:04,610 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 09:04:04,610 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 09:04:04,610 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 09:04:04,613 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 09:04:05,070 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 9, 4, 1), 8.78, 53.64, 0.0, 24.1, 7.45, 0, 0, 0, 2, 0, 0),)
2025-06-13 09:04:05,070 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 09:04:01
2025-06-13 09:04:05,152 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 09:04:05,156 [DEBUG][       Thread-249419][   transport.py][1871] : starting thread (client mode): 0x863eda80
2025-06-13 09:04:05,156 [DEBUG][       Thread-249419][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 09:04:05,174 [DEBUG][       Thread-249419][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 09:04:05,174 [ INFO][       Thread-249419][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 09:04:05,176 [DEBUG][       Thread-249419][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 09:04:05,176 [DEBUG][       Thread-249419][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 09:04:05,176 [DEBUG][       Thread-249419][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 09:04:05,176 [DEBUG][       Thread-249419][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:04:05,176 [DEBUG][       Thread-249419][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:04:05,176 [DEBUG][       Thread-249419][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:04:05,176 [DEBUG][       Thread-249419][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:04:05,176 [DEBUG][       Thread-249419][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 09:04:05,176 [DEBUG][       Thread-249419][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 09:04:05,176 [DEBUG][       Thread-249419][   transport.py][1871] : client lang: <none>
2025-06-13 09:04:05,176 [DEBUG][       Thread-249419][   transport.py][1871] : server lang: <none>
2025-06-13 09:04:05,176 [DEBUG][       Thread-249419][   transport.py][1871] : kex follows: False
2025-06-13 09:04:05,176 [DEBUG][       Thread-249419][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 09:04:05,176 [DEBUG][       Thread-249419][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 09:04:05,177 [DEBUG][       Thread-249419][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 09:04:05,177 [DEBUG][       Thread-249419][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 09:04:05,177 [DEBUG][       Thread-249419][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 09:04:05,177 [DEBUG][       Thread-249419][   transport.py][1871] : Compression: none
2025-06-13 09:04:05,177 [DEBUG][       Thread-249419][   transport.py][1871] : === End of kex handshake ===
2025-06-13 09:04:05,188 [DEBUG][       Thread-249419][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 09:04:05,188 [DEBUG][       Thread-249419][   transport.py][1871] : Switch to new keys ...
2025-06-13 09:04:05,189 [DEBUG][       Thread-249419][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 09:04:05,189 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 09:04:05,189 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 09:04:05,190 [DEBUG][       Thread-249419][   transport.py][1871] : userauth is OK
2025-06-13 09:04:05,203 [ INFO][       Thread-249419][   transport.py][1871] : Authentication (password) successful!
2025-06-13 09:04:05,203 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 09:04:05,954 [DEBUG][       Thread-249419][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 09:04:05,955 [DEBUG][       Thread-249419][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 09:04:05,997 [DEBUG][       Thread-249419][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 09:04:05,997 [DEBUG][       Thread-249419][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 09:04:06,000 [DEBUG][       Thread-249419][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 09:04:06,012 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 09:04:06,012 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 09:04:06,014 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 09:04:06,016 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 09:04:06,021 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 09:04:06,023 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 09:04:06,023 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 09:04:06,023 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 09:04:06,024 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.294039 -999.00   +7.20  24.36     58   -0.20 1 1 1 1 1   887    0 8.03 30.17 ----- 24.4 24.4 43.0 26.0 10.5 -27.4 9.4 -28.1 8.2 -27.4 9.2 -26.0
2025-06-13 09:04:06,024 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 09:04:06,024 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 09:04:06,024 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.294039
2025-06-13 09:04:06,024 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 09:04:06,025 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 09:04:06,025 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 09:04:06,025 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 09:04:06,025 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 09:04:06,025 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T09:04:01', tmtdew=8.78, humidity=53.64, cloud=0.0, wind=24.1, temperature=7.45, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T07:03:24.970', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 09:04:06,026 [DEBUG][       Thread-249419][   transport.py][1871] : EOF in transport thread
2025-06-13 09:04:06,108 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 09:04:06,127 [DEBUG][       Thread-249422][   transport.py][1871] : starting thread (client mode): 0x863a4910
2025-06-13 09:04:06,127 [DEBUG][       Thread-249422][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 09:04:06,148 [DEBUG][       Thread-249422][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 09:04:06,148 [ INFO][       Thread-249422][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 09:04:06,162 [DEBUG][       Thread-249422][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 09:04:06,163 [DEBUG][       Thread-249422][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 09:04:06,163 [DEBUG][       Thread-249422][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 09:04:06,163 [DEBUG][       Thread-249422][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:04:06,163 [DEBUG][       Thread-249422][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:04:06,163 [DEBUG][       Thread-249422][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:04:06,163 [DEBUG][       Thread-249422][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:04:06,163 [DEBUG][       Thread-249422][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 09:04:06,163 [DEBUG][       Thread-249422][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 09:04:06,163 [DEBUG][       Thread-249422][   transport.py][1871] : client lang: <none>
2025-06-13 09:04:06,163 [DEBUG][       Thread-249422][   transport.py][1871] : server lang: <none>
2025-06-13 09:04:06,163 [DEBUG][       Thread-249422][   transport.py][1871] : kex follows: False
2025-06-13 09:04:06,163 [DEBUG][       Thread-249422][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 09:04:06,163 [DEBUG][       Thread-249422][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 09:04:06,163 [DEBUG][       Thread-249422][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 09:04:06,163 [DEBUG][       Thread-249422][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 09:04:06,164 [DEBUG][       Thread-249422][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 09:04:06,164 [DEBUG][       Thread-249422][   transport.py][1871] : Compression: none
2025-06-13 09:04:06,164 [DEBUG][       Thread-249422][   transport.py][1871] : === End of kex handshake ===
2025-06-13 09:04:06,229 [DEBUG][       Thread-249422][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 09:04:06,229 [DEBUG][       Thread-249422][   transport.py][1871] : Switch to new keys ...
2025-06-13 09:04:06,230 [DEBUG][       Thread-249422][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 09:04:06,230 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 09:04:06,230 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 09:04:06,303 [DEBUG][       Thread-249422][   transport.py][1871] : userauth is OK
2025-06-13 09:04:06,303 [DEBUG][       Thread-249422][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 09:04:06,303 [DEBUG][       Thread-249422][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 09:04:06,303 [DEBUG][       Thread-249422][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 09:04:06,304 [DEBUG][       Thread-249422][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 09:04:06,325 [ INFO][       Thread-249422][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 09:04:06,325 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 09:04:06,325 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 09:04:07,405 [DEBUG][       Thread-249422][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 09:04:07,405 [DEBUG][       Thread-249422][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 09:04:07,455 [DEBUG][       Thread-249422][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 09:04:07,456 [DEBUG][       Thread-249422][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 09:04:07,464 [DEBUG][       Thread-249422][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 09:04:07,473 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 09:04:07,473 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 09:04:07,481 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 09:04:07,492 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 09:04:07,492 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 09:04:07,493 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 09:04:07,510 [DEBUG][       Thread-249422][   transport.py][1871] : EOF in transport thread
2025-06-13 09:04:10,600 [DEBUG][Thread-249424 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:04:14,639 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:04:14,640 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:04:17,503 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 09:04:17,503 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 09:04:17,503 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 09:04:17,506 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 09:04:17,972 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 9, 4, 1), 8.78, 53.64, 0.0, 24.1, 7.45, 0, 0, 0, 2, 0, 0),)
2025-06-13 09:04:17,972 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 09:04:01
2025-06-13 09:04:18,054 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 09:04:18,060 [DEBUG][       Thread-249425][   transport.py][1871] : starting thread (client mode): 0x863eef50
2025-06-13 09:04:18,060 [DEBUG][       Thread-249425][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 09:04:18,080 [DEBUG][       Thread-249425][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 09:04:18,080 [ INFO][       Thread-249425][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 09:04:18,082 [DEBUG][       Thread-249425][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 09:04:18,082 [DEBUG][       Thread-249425][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 09:04:18,082 [DEBUG][       Thread-249425][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 09:04:18,082 [DEBUG][       Thread-249425][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:04:18,082 [DEBUG][       Thread-249425][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:04:18,082 [DEBUG][       Thread-249425][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:04:18,082 [DEBUG][       Thread-249425][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:04:18,083 [DEBUG][       Thread-249425][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 09:04:18,083 [DEBUG][       Thread-249425][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 09:04:18,083 [DEBUG][       Thread-249425][   transport.py][1871] : client lang: <none>
2025-06-13 09:04:18,083 [DEBUG][       Thread-249425][   transport.py][1871] : server lang: <none>
2025-06-13 09:04:18,083 [DEBUG][       Thread-249425][   transport.py][1871] : kex follows: False
2025-06-13 09:04:18,083 [DEBUG][       Thread-249425][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 09:04:18,083 [DEBUG][       Thread-249425][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 09:04:18,083 [DEBUG][       Thread-249425][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 09:04:18,083 [DEBUG][       Thread-249425][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 09:04:18,083 [DEBUG][       Thread-249425][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 09:04:18,083 [DEBUG][       Thread-249425][   transport.py][1871] : Compression: none
2025-06-13 09:04:18,083 [DEBUG][       Thread-249425][   transport.py][1871] : === End of kex handshake ===
2025-06-13 09:04:18,093 [DEBUG][       Thread-249425][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 09:04:18,093 [DEBUG][       Thread-249425][   transport.py][1871] : Switch to new keys ...
2025-06-13 09:04:18,093 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 09:04:18,094 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 09:04:18,094 [DEBUG][       Thread-249425][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 09:04:18,095 [DEBUG][       Thread-249425][   transport.py][1871] : userauth is OK
2025-06-13 09:04:18,107 [ INFO][       Thread-249425][   transport.py][1871] : Authentication (password) successful!
2025-06-13 09:04:18,108 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 09:04:18,847 [DEBUG][       Thread-249425][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 09:04:18,848 [DEBUG][       Thread-249425][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 09:04:18,889 [DEBUG][       Thread-249425][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 09:04:18,889 [DEBUG][       Thread-249425][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 09:04:18,892 [DEBUG][       Thread-249425][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 09:04:18,904 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 09:04:18,904 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 09:04:18,905 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 09:04:18,906 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 09:04:18,911 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 09:04:18,912 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 09:04:18,913 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 09:04:18,913 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 09:04:18,913 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.294039 -999.00   +7.20  24.36     58   -0.20 1 1 1 1 1   887    0 8.03 30.17 ----- 24.4 24.4 43.0 26.0 10.5 -27.4 9.4 -28.1 8.2 -27.4 9.2 -26.0
2025-06-13 09:04:18,913 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 09:04:18,913 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 09:04:18,913 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.294039
2025-06-13 09:04:18,914 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 09:04:18,914 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 09:04:18,914 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 09:04:18,915 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 09:04:18,915 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 09:04:18,915 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T09:04:01', tmtdew=8.78, humidity=53.64, cloud=0.0, wind=24.1, temperature=7.45, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T07:03:24.970', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 09:04:18,916 [DEBUG][       Thread-249425][   transport.py][1871] : EOF in transport thread
2025-06-13 09:04:18,998 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 09:04:19,009 [DEBUG][       Thread-249428][   transport.py][1871] : starting thread (client mode): 0x863c8670
2025-06-13 09:04:19,009 [DEBUG][       Thread-249428][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 09:04:19,024 [DEBUG][       Thread-249428][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 09:04:19,024 [ INFO][       Thread-249428][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 09:04:19,032 [DEBUG][       Thread-249428][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 09:04:19,032 [DEBUG][       Thread-249428][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 09:04:19,032 [DEBUG][       Thread-249428][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 09:04:19,032 [DEBUG][       Thread-249428][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:04:19,032 [DEBUG][       Thread-249428][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:04:19,032 [DEBUG][       Thread-249428][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:04:19,032 [DEBUG][       Thread-249428][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:04:19,032 [DEBUG][       Thread-249428][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 09:04:19,032 [DEBUG][       Thread-249428][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 09:04:19,032 [DEBUG][       Thread-249428][   transport.py][1871] : client lang: <none>
2025-06-13 09:04:19,032 [DEBUG][       Thread-249428][   transport.py][1871] : server lang: <none>
2025-06-13 09:04:19,032 [DEBUG][       Thread-249428][   transport.py][1871] : kex follows: False
2025-06-13 09:04:19,032 [DEBUG][       Thread-249428][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 09:04:19,032 [DEBUG][       Thread-249428][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 09:04:19,032 [DEBUG][       Thread-249428][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 09:04:19,032 [DEBUG][       Thread-249428][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 09:04:19,033 [DEBUG][       Thread-249428][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 09:04:19,033 [DEBUG][       Thread-249428][   transport.py][1871] : Compression: none
2025-06-13 09:04:19,033 [DEBUG][       Thread-249428][   transport.py][1871] : === End of kex handshake ===
2025-06-13 09:04:19,092 [DEBUG][       Thread-249428][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 09:04:19,093 [DEBUG][       Thread-249428][   transport.py][1871] : Switch to new keys ...
2025-06-13 09:04:19,093 [DEBUG][       Thread-249428][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 09:04:19,093 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 09:04:19,094 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 09:04:19,151 [DEBUG][       Thread-249428][   transport.py][1871] : userauth is OK
2025-06-13 09:04:19,151 [DEBUG][       Thread-249428][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 09:04:19,151 [DEBUG][       Thread-249428][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 09:04:19,151 [DEBUG][       Thread-249428][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 09:04:19,151 [DEBUG][       Thread-249428][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 09:04:19,165 [ INFO][       Thread-249428][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 09:04:19,166 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 09:04:19,166 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 09:04:19,631 [DEBUG][Thread-249430 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:04:20,185 [DEBUG][       Thread-249428][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 09:04:20,185 [DEBUG][       Thread-249428][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 09:04:20,236 [DEBUG][       Thread-249428][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 09:04:20,236 [DEBUG][       Thread-249428][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 09:04:20,245 [DEBUG][       Thread-249428][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 09:04:20,254 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 09:04:20,254 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 09:04:20,262 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 09:04:20,271 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 09:04:20,271 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 09:04:20,271 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 09:04:20,278 [DEBUG][       Thread-249428][   transport.py][1871] : EOF in transport thread
2025-06-13 09:04:28,654 [DEBUG][Thread-249431 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:04:30,280 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 09:04:30,280 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 09:04:30,280 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 09:04:30,283 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 09:04:30,745 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 9, 4, 1), 8.78, 53.64, 0.0, 24.1, 7.45, 0, 0, 0, 2, 0, 0),)
2025-06-13 09:04:30,745 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 09:04:01
2025-06-13 09:04:30,825 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 09:04:30,829 [DEBUG][       Thread-249432][   transport.py][1871] : starting thread (client mode): 0x863ec5b0
2025-06-13 09:04:30,829 [DEBUG][       Thread-249432][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 09:04:30,847 [DEBUG][       Thread-249432][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 09:04:30,847 [ INFO][       Thread-249432][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 09:04:30,849 [DEBUG][       Thread-249432][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 09:04:30,849 [DEBUG][       Thread-249432][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 09:04:30,849 [DEBUG][       Thread-249432][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 09:04:30,849 [DEBUG][       Thread-249432][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:04:30,849 [DEBUG][       Thread-249432][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:04:30,849 [DEBUG][       Thread-249432][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:04:30,849 [DEBUG][       Thread-249432][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:04:30,849 [DEBUG][       Thread-249432][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 09:04:30,849 [DEBUG][       Thread-249432][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 09:04:30,849 [DEBUG][       Thread-249432][   transport.py][1871] : client lang: <none>
2025-06-13 09:04:30,849 [DEBUG][       Thread-249432][   transport.py][1871] : server lang: <none>
2025-06-13 09:04:30,849 [DEBUG][       Thread-249432][   transport.py][1871] : kex follows: False
2025-06-13 09:04:30,849 [DEBUG][       Thread-249432][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 09:04:30,849 [DEBUG][       Thread-249432][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 09:04:30,849 [DEBUG][       Thread-249432][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 09:04:30,849 [DEBUG][       Thread-249432][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 09:04:30,849 [DEBUG][       Thread-249432][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 09:04:30,849 [DEBUG][       Thread-249432][   transport.py][1871] : Compression: none
2025-06-13 09:04:30,849 [DEBUG][       Thread-249432][   transport.py][1871] : === End of kex handshake ===
2025-06-13 09:04:30,863 [DEBUG][       Thread-249432][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 09:04:30,863 [DEBUG][       Thread-249432][   transport.py][1871] : Switch to new keys ...
2025-06-13 09:04:30,864 [DEBUG][       Thread-249432][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 09:04:30,864 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 09:04:30,864 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 09:04:30,865 [DEBUG][       Thread-249432][   transport.py][1871] : userauth is OK
2025-06-13 09:04:30,889 [ INFO][       Thread-249432][   transport.py][1871] : Authentication (password) successful!
2025-06-13 09:04:30,890 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 09:04:31,490 [DEBUG][       Thread-249432][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 09:04:31,490 [DEBUG][       Thread-249432][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 09:04:31,533 [DEBUG][       Thread-249432][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 09:04:31,533 [DEBUG][       Thread-249432][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 09:04:31,536 [DEBUG][       Thread-249432][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 09:04:31,547 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 09:04:31,548 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 09:04:31,549 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 09:04:31,551 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 09:04:31,556 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 09:04:31,558 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 09:04:31,558 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 09:04:31,558 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 09:04:31,558 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.294386 -999.00   +7.20  23.28     58   -0.30 1 1 1 1 1   887    0 8.02 28.05 ----- 23.3 23.3 49.4 35.6 10.4 -27.5 9.4 -28.0 8.2 -27.2 9.2 -26.0
2025-06-13 09:04:31,559 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 09:04:31,559 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 09:04:31,559 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.294386
2025-06-13 09:04:31,559 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 09:04:31,559 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 09:04:31,560 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 09:04:31,560 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 09:04:31,560 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 09:04:31,560 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T09:04:01', tmtdew=8.78, humidity=53.64, cloud=0.0, wind=24.1, temperature=7.45, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T07:03:54.950', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 09:04:31,560 [DEBUG][       Thread-249432][   transport.py][1871] : EOF in transport thread
2025-06-13 09:04:31,644 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 09:04:31,652 [DEBUG][       Thread-249435][   transport.py][1871] : starting thread (client mode): 0x863ef1c0
2025-06-13 09:04:31,653 [DEBUG][       Thread-249435][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 09:04:31,667 [DEBUG][       Thread-249435][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 09:04:31,667 [ INFO][       Thread-249435][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 09:04:31,674 [DEBUG][       Thread-249435][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 09:04:31,675 [DEBUG][       Thread-249435][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 09:04:31,675 [DEBUG][       Thread-249435][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 09:04:31,675 [DEBUG][       Thread-249435][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:04:31,675 [DEBUG][       Thread-249435][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:04:31,675 [DEBUG][       Thread-249435][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:04:31,675 [DEBUG][       Thread-249435][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:04:31,675 [DEBUG][       Thread-249435][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 09:04:31,675 [DEBUG][       Thread-249435][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 09:04:31,675 [DEBUG][       Thread-249435][   transport.py][1871] : client lang: <none>
2025-06-13 09:04:31,675 [DEBUG][       Thread-249435][   transport.py][1871] : server lang: <none>
2025-06-13 09:04:31,675 [DEBUG][       Thread-249435][   transport.py][1871] : kex follows: False
2025-06-13 09:04:31,675 [DEBUG][       Thread-249435][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 09:04:31,675 [DEBUG][       Thread-249435][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 09:04:31,675 [DEBUG][       Thread-249435][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 09:04:31,675 [DEBUG][       Thread-249435][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 09:04:31,675 [DEBUG][       Thread-249435][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 09:04:31,675 [DEBUG][       Thread-249435][   transport.py][1871] : Compression: none
2025-06-13 09:04:31,675 [DEBUG][       Thread-249435][   transport.py][1871] : === End of kex handshake ===
2025-06-13 09:04:31,735 [DEBUG][       Thread-249435][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 09:04:31,735 [DEBUG][       Thread-249435][   transport.py][1871] : Switch to new keys ...
2025-06-13 09:04:31,736 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 09:04:31,737 [DEBUG][       Thread-249435][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 09:04:31,737 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 09:04:31,792 [DEBUG][       Thread-249435][   transport.py][1871] : userauth is OK
2025-06-13 09:04:31,792 [DEBUG][       Thread-249435][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 09:04:31,792 [DEBUG][       Thread-249435][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 09:04:31,792 [DEBUG][       Thread-249435][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 09:04:31,793 [DEBUG][       Thread-249435][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 09:04:31,811 [ INFO][       Thread-249435][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 09:04:31,812 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 09:04:31,812 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 09:04:32,830 [DEBUG][       Thread-249435][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 09:04:32,830 [DEBUG][       Thread-249435][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 09:04:32,879 [DEBUG][       Thread-249435][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 09:04:32,880 [DEBUG][       Thread-249435][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 09:04:32,890 [DEBUG][       Thread-249435][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 09:04:32,898 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 09:04:32,899 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 09:04:32,909 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 09:04:32,920 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 09:04:32,920 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 09:04:32,920 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 09:04:32,928 [DEBUG][       Thread-249435][   transport.py][1871] : EOF in transport thread
2025-06-13 09:04:37,671 [DEBUG][Thread-249437 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:04:41,029 [DEBUG][Thread-249438 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:04:42,103 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:04:42,104 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:04:42,924 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 09:04:42,925 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 09:04:42,925 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 09:04:42,927 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 09:04:43,373 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 9, 4, 33), 8.8, 53.78, 0.0, 24.63, 7.43, 0, 0, 0, 2, 0, 0),)
2025-06-13 09:04:43,373 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 09:04:33
2025-06-13 09:04:43,454 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 09:04:43,460 [DEBUG][       Thread-249439][   transport.py][1871] : starting thread (client mode): 0x863eefb0
2025-06-13 09:04:43,460 [DEBUG][       Thread-249439][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 09:04:43,480 [DEBUG][       Thread-249439][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 09:04:43,480 [ INFO][       Thread-249439][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 09:04:43,484 [DEBUG][       Thread-249439][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 09:04:43,484 [DEBUG][       Thread-249439][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 09:04:43,484 [DEBUG][       Thread-249439][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 09:04:43,484 [DEBUG][       Thread-249439][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:04:43,484 [DEBUG][       Thread-249439][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:04:43,484 [DEBUG][       Thread-249439][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:04:43,484 [DEBUG][       Thread-249439][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:04:43,484 [DEBUG][       Thread-249439][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 09:04:43,484 [DEBUG][       Thread-249439][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 09:04:43,484 [DEBUG][       Thread-249439][   transport.py][1871] : client lang: <none>
2025-06-13 09:04:43,484 [DEBUG][       Thread-249439][   transport.py][1871] : server lang: <none>
2025-06-13 09:04:43,484 [DEBUG][       Thread-249439][   transport.py][1871] : kex follows: False
2025-06-13 09:04:43,484 [DEBUG][       Thread-249439][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 09:04:43,484 [DEBUG][       Thread-249439][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 09:04:43,484 [DEBUG][       Thread-249439][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 09:04:43,484 [DEBUG][       Thread-249439][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 09:04:43,484 [DEBUG][       Thread-249439][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 09:04:43,484 [DEBUG][       Thread-249439][   transport.py][1871] : Compression: none
2025-06-13 09:04:43,484 [DEBUG][       Thread-249439][   transport.py][1871] : === End of kex handshake ===
2025-06-13 09:04:43,500 [DEBUG][       Thread-249439][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 09:04:43,500 [DEBUG][       Thread-249439][   transport.py][1871] : Switch to new keys ...
2025-06-13 09:04:43,501 [DEBUG][       Thread-249439][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 09:04:43,501 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 09:04:43,501 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 09:04:43,502 [DEBUG][       Thread-249439][   transport.py][1871] : userauth is OK
2025-06-13 09:04:43,515 [ INFO][       Thread-249439][   transport.py][1871] : Authentication (password) successful!
2025-06-13 09:04:43,516 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 09:04:44,310 [DEBUG][       Thread-249439][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 09:04:44,310 [DEBUG][       Thread-249439][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 09:04:44,353 [DEBUG][       Thread-249439][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 09:04:44,353 [DEBUG][       Thread-249439][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 09:04:44,356 [DEBUG][       Thread-249439][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 09:04:44,368 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 09:04:44,369 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 09:04:44,370 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 09:04:44,371 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 09:04:44,376 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 09:04:44,378 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 09:04:44,378 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 09:04:44,379 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 09:04:44,379 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.294386 -999.00   +7.20  23.28     58   -0.30 1 1 1 1 1   887    0 8.02 28.05 ----- 23.3 23.3 49.4 35.6 10.4 -27.5 9.4 -28.0 8.2 -27.2 9.2 -26.0
2025-06-13 09:04:44,379 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 09:04:44,379 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 09:04:44,379 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.294386
2025-06-13 09:04:44,379 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 09:04:44,380 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 09:04:44,380 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 09:04:44,380 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 09:04:44,380 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 09:04:44,380 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T09:04:33', tmtdew=8.8, humidity=53.78, cloud=0.0, wind=24.63, temperature=7.43, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T07:03:54.950', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 09:04:44,381 [DEBUG][       Thread-249439][   transport.py][1871] : EOF in transport thread
2025-06-13 09:04:44,464 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 09:04:44,475 [DEBUG][       Thread-249442][   transport.py][1871] : starting thread (client mode): 0x863cad10
2025-06-13 09:04:44,475 [DEBUG][       Thread-249442][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 09:04:44,490 [DEBUG][       Thread-249442][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 09:04:44,490 [ INFO][       Thread-249442][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 09:04:44,498 [DEBUG][       Thread-249442][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 09:04:44,498 [DEBUG][       Thread-249442][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 09:04:44,498 [DEBUG][       Thread-249442][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 09:04:44,498 [DEBUG][       Thread-249442][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:04:44,498 [DEBUG][       Thread-249442][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:04:44,498 [DEBUG][       Thread-249442][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:04:44,498 [DEBUG][       Thread-249442][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:04:44,498 [DEBUG][       Thread-249442][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 09:04:44,498 [DEBUG][       Thread-249442][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 09:04:44,498 [DEBUG][       Thread-249442][   transport.py][1871] : client lang: <none>
2025-06-13 09:04:44,498 [DEBUG][       Thread-249442][   transport.py][1871] : server lang: <none>
2025-06-13 09:04:44,498 [DEBUG][       Thread-249442][   transport.py][1871] : kex follows: False
2025-06-13 09:04:44,498 [DEBUG][       Thread-249442][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 09:04:44,499 [DEBUG][       Thread-249442][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 09:04:44,499 [DEBUG][       Thread-249442][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 09:04:44,499 [DEBUG][       Thread-249442][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 09:04:44,499 [DEBUG][       Thread-249442][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 09:04:44,499 [DEBUG][       Thread-249442][   transport.py][1871] : Compression: none
2025-06-13 09:04:44,499 [DEBUG][       Thread-249442][   transport.py][1871] : === End of kex handshake ===
2025-06-13 09:04:44,554 [DEBUG][       Thread-249442][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 09:04:44,555 [DEBUG][       Thread-249442][   transport.py][1871] : Switch to new keys ...
2025-06-13 09:04:44,555 [DEBUG][       Thread-249442][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 09:04:44,555 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 09:04:44,556 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 09:04:44,611 [DEBUG][       Thread-249442][   transport.py][1871] : userauth is OK
2025-06-13 09:04:44,611 [DEBUG][       Thread-249442][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 09:04:44,611 [DEBUG][       Thread-249442][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 09:04:44,611 [DEBUG][       Thread-249442][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 09:04:44,611 [DEBUG][       Thread-249442][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 09:04:44,629 [ INFO][       Thread-249442][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 09:04:44,630 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 09:04:44,630 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 09:04:45,662 [DEBUG][       Thread-249442][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 09:04:45,663 [DEBUG][       Thread-249442][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 09:04:45,721 [DEBUG][       Thread-249442][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 09:04:45,721 [DEBUG][       Thread-249442][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 09:04:45,731 [DEBUG][       Thread-249442][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 09:04:45,740 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 09:04:45,740 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 09:04:45,748 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 09:04:45,757 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 09:04:45,757 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 09:04:45,758 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 09:04:45,766 [DEBUG][       Thread-249442][   transport.py][1871] : EOF in transport thread
2025-06-13 09:04:46,689 [DEBUG][Thread-249444 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:04:55,712 [DEBUG][Thread-249445 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:04:55,768 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 09:04:55,768 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 09:04:55,768 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 09:04:55,771 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 09:04:56,230 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 9, 4, 33), 8.8, 53.78, 0.0, 24.63, 7.43, 0, 0, 0, 2, 0, 0),)
2025-06-13 09:04:56,230 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 09:04:33
2025-06-13 09:04:56,313 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 09:04:56,316 [DEBUG][       Thread-249446][   transport.py][1871] : starting thread (client mode): 0x863a5600
2025-06-13 09:04:56,316 [DEBUG][       Thread-249446][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 09:04:56,327 [DEBUG][       Thread-249446][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 09:04:56,327 [ INFO][       Thread-249446][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 09:04:56,328 [DEBUG][       Thread-249446][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 09:04:56,328 [DEBUG][       Thread-249446][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 09:04:56,328 [DEBUG][       Thread-249446][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 09:04:56,328 [DEBUG][       Thread-249446][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:04:56,328 [DEBUG][       Thread-249446][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:04:56,328 [DEBUG][       Thread-249446][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:04:56,328 [DEBUG][       Thread-249446][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:04:56,328 [DEBUG][       Thread-249446][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 09:04:56,328 [DEBUG][       Thread-249446][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 09:04:56,328 [DEBUG][       Thread-249446][   transport.py][1871] : client lang: <none>
2025-06-13 09:04:56,328 [DEBUG][       Thread-249446][   transport.py][1871] : server lang: <none>
2025-06-13 09:04:56,328 [DEBUG][       Thread-249446][   transport.py][1871] : kex follows: False
2025-06-13 09:04:56,329 [DEBUG][       Thread-249446][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 09:04:56,329 [DEBUG][       Thread-249446][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 09:04:56,329 [DEBUG][       Thread-249446][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 09:04:56,329 [DEBUG][       Thread-249446][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 09:04:56,329 [DEBUG][       Thread-249446][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 09:04:56,329 [DEBUG][       Thread-249446][   transport.py][1871] : Compression: none
2025-06-13 09:04:56,329 [DEBUG][       Thread-249446][   transport.py][1871] : === End of kex handshake ===
2025-06-13 09:04:56,336 [DEBUG][       Thread-249446][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 09:04:56,337 [DEBUG][       Thread-249446][   transport.py][1871] : Switch to new keys ...
2025-06-13 09:04:56,337 [DEBUG][       Thread-249446][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 09:04:56,337 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 09:04:56,337 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 09:04:56,338 [DEBUG][       Thread-249446][   transport.py][1871] : userauth is OK
2025-06-13 09:04:56,363 [ INFO][       Thread-249446][   transport.py][1871] : Authentication (password) successful!
2025-06-13 09:04:56,363 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 09:04:57,077 [DEBUG][       Thread-249446][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 09:04:57,077 [DEBUG][       Thread-249446][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 09:04:57,121 [DEBUG][       Thread-249446][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 09:04:57,121 [DEBUG][       Thread-249446][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 09:04:57,124 [DEBUG][       Thread-249446][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 09:04:57,138 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 09:04:57,138 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 09:04:57,140 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 09:04:57,142 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 09:04:57,147 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 09:04:57,149 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 09:04:57,149 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 09:04:57,149 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 09:04:57,149 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.294386 -999.00   +7.20  23.28     58   -0.30 1 1 1 1 1   887    0 8.02 28.05 ----- 23.3 23.3 49.4 35.6 10.4 -27.5 9.4 -28.0 8.2 -27.2 9.2 -26.0
2025-06-13 09:04:57,150 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 09:04:57,150 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 09:04:57,150 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.294386
2025-06-13 09:04:57,150 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 09:04:57,150 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 09:04:57,151 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 09:04:57,151 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 09:04:57,151 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 09:04:57,151 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T09:04:33', tmtdew=8.8, humidity=53.78, cloud=0.0, wind=24.63, temperature=7.43, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T07:03:54.950', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 09:04:57,151 [DEBUG][       Thread-249446][   transport.py][1871] : EOF in transport thread
2025-06-13 09:04:57,233 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 09:04:57,243 [DEBUG][       Thread-249449][   transport.py][1871] : starting thread (client mode): 0x863cbac0
2025-06-13 09:04:57,243 [DEBUG][       Thread-249449][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 09:04:57,259 [DEBUG][       Thread-249449][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 09:04:57,259 [ INFO][       Thread-249449][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 09:04:57,266 [DEBUG][       Thread-249449][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 09:04:57,266 [DEBUG][       Thread-249449][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 09:04:57,266 [DEBUG][       Thread-249449][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 09:04:57,266 [DEBUG][       Thread-249449][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:04:57,266 [DEBUG][       Thread-249449][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:04:57,266 [DEBUG][       Thread-249449][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:04:57,266 [DEBUG][       Thread-249449][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:04:57,266 [DEBUG][       Thread-249449][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 09:04:57,266 [DEBUG][       Thread-249449][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 09:04:57,266 [DEBUG][       Thread-249449][   transport.py][1871] : client lang: <none>
2025-06-13 09:04:57,266 [DEBUG][       Thread-249449][   transport.py][1871] : server lang: <none>
2025-06-13 09:04:57,267 [DEBUG][       Thread-249449][   transport.py][1871] : kex follows: False
2025-06-13 09:04:57,267 [DEBUG][       Thread-249449][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 09:04:57,267 [DEBUG][       Thread-249449][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 09:04:57,267 [DEBUG][       Thread-249449][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 09:04:57,267 [DEBUG][       Thread-249449][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 09:04:57,267 [DEBUG][       Thread-249449][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 09:04:57,267 [DEBUG][       Thread-249449][   transport.py][1871] : Compression: none
2025-06-13 09:04:57,267 [DEBUG][       Thread-249449][   transport.py][1871] : === End of kex handshake ===
2025-06-13 09:04:57,322 [DEBUG][       Thread-249449][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 09:04:57,323 [DEBUG][       Thread-249449][   transport.py][1871] : Switch to new keys ...
2025-06-13 09:04:57,323 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 09:04:57,324 [DEBUG][       Thread-249449][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 09:04:57,324 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 09:04:57,382 [DEBUG][       Thread-249449][   transport.py][1871] : userauth is OK
2025-06-13 09:04:57,382 [DEBUG][       Thread-249449][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 09:04:57,382 [DEBUG][       Thread-249449][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 09:04:57,382 [DEBUG][       Thread-249449][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 09:04:57,382 [DEBUG][       Thread-249449][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 09:04:57,406 [ INFO][       Thread-249449][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 09:04:57,406 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 09:04:57,406 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 09:04:58,434 [DEBUG][       Thread-249449][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 09:04:58,434 [DEBUG][       Thread-249449][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 09:04:58,485 [DEBUG][       Thread-249449][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 09:04:58,486 [DEBUG][       Thread-249449][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 09:04:58,494 [DEBUG][       Thread-249449][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 09:04:58,503 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 09:04:58,503 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 09:04:58,512 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 09:04:58,526 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 09:04:58,527 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 09:04:58,527 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 09:04:58,535 [DEBUG][       Thread-249449][   transport.py][1871] : EOF in transport thread
2025-06-13 09:05:02,144 [DEBUG][Thread-249451 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:05:04,728 [DEBUG][Thread-249452 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:05:08,536 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 09:05:08,536 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 09:05:08,536 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 09:05:08,537 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 09:05:08,984 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 9, 5, 4), 8.85, 53.57, 0.0, 23.89, 7.46, 0, 0, 0, 2, 0, 0),)
2025-06-13 09:05:08,984 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 09:05:04
2025-06-13 09:05:09,066 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 09:05:09,071 [DEBUG][       Thread-249453][   transport.py][1871] : starting thread (client mode): 0x863ef790
2025-06-13 09:05:09,071 [DEBUG][       Thread-249453][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 09:05:09,093 [DEBUG][       Thread-249453][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 09:05:09,093 [ INFO][       Thread-249453][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 09:05:09,095 [DEBUG][       Thread-249453][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 09:05:09,095 [DEBUG][       Thread-249453][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 09:05:09,095 [DEBUG][       Thread-249453][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 09:05:09,095 [DEBUG][       Thread-249453][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:05:09,095 [DEBUG][       Thread-249453][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:05:09,095 [DEBUG][       Thread-249453][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:05:09,095 [DEBUG][       Thread-249453][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:05:09,095 [DEBUG][       Thread-249453][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 09:05:09,095 [DEBUG][       Thread-249453][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 09:05:09,095 [DEBUG][       Thread-249453][   transport.py][1871] : client lang: <none>
2025-06-13 09:05:09,095 [DEBUG][       Thread-249453][   transport.py][1871] : server lang: <none>
2025-06-13 09:05:09,095 [DEBUG][       Thread-249453][   transport.py][1871] : kex follows: False
2025-06-13 09:05:09,095 [DEBUG][       Thread-249453][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 09:05:09,095 [DEBUG][       Thread-249453][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 09:05:09,095 [DEBUG][       Thread-249453][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 09:05:09,095 [DEBUG][       Thread-249453][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 09:05:09,095 [DEBUG][       Thread-249453][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 09:05:09,095 [DEBUG][       Thread-249453][   transport.py][1871] : Compression: none
2025-06-13 09:05:09,095 [DEBUG][       Thread-249453][   transport.py][1871] : === End of kex handshake ===
2025-06-13 09:05:09,104 [DEBUG][       Thread-249453][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 09:05:09,105 [DEBUG][       Thread-249453][   transport.py][1871] : Switch to new keys ...
2025-06-13 09:05:09,105 [DEBUG][       Thread-249453][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 09:05:09,105 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 09:05:09,106 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 09:05:09,107 [DEBUG][       Thread-249453][   transport.py][1871] : userauth is OK
2025-06-13 09:05:09,119 [ INFO][       Thread-249453][   transport.py][1871] : Authentication (password) successful!
2025-06-13 09:05:09,120 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 09:05:13,743 [DEBUG][Thread-249455 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:05:14,780 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:05:14,781 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:05:20,797 [DEBUG][       Thread-249453][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 09:05:20,797 [DEBUG][       Thread-249453][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 09:05:20,841 [DEBUG][       Thread-249453][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 09:05:20,841 [DEBUG][       Thread-249453][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 09:05:20,844 [DEBUG][       Thread-249453][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 09:05:20,856 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 09:05:20,856 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 09:05:20,858 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 09:05:20,860 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 09:05:20,865 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 09:05:20,866 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 09:05:20,867 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 09:05:20,867 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 09:05:20,867 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.294733 -999.00   +7.20  27.33     58   -0.30 1 1 1 1 1   887    0 8.13 29.53 ----- 27.3 27.3 39.6 30.1 10.4 -27.7 9.5 -28.4 8.2 -27.4 9.3 -26.2
2025-06-13 09:05:20,867 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 09:05:20,867 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 09:05:20,867 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.294733
2025-06-13 09:05:20,868 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 09:05:20,868 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 09:05:20,868 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 09:05:20,869 [DEBUG][       Thread-249453][   transport.py][1871] : EOF in transport thread
2025-06-13 09:05:20,869 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 09:05:20,869 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 09:05:20,869 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T09:05:04', tmtdew=8.85, humidity=53.57, cloud=0.0, wind=23.89, temperature=7.46, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T07:04:24.931', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 09:05:20,953 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 09:05:20,964 [DEBUG][       Thread-249457][   transport.py][1871] : starting thread (client mode): 0x863a4f10
2025-06-13 09:05:20,964 [DEBUG][       Thread-249457][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 09:05:20,979 [DEBUG][       Thread-249457][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 09:05:20,979 [ INFO][       Thread-249457][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 09:05:20,987 [DEBUG][       Thread-249457][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 09:05:20,987 [DEBUG][       Thread-249457][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 09:05:20,987 [DEBUG][       Thread-249457][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 09:05:20,987 [DEBUG][       Thread-249457][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:05:20,987 [DEBUG][       Thread-249457][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:05:20,987 [DEBUG][       Thread-249457][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:05:20,987 [DEBUG][       Thread-249457][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:05:20,987 [DEBUG][       Thread-249457][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 09:05:20,987 [DEBUG][       Thread-249457][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 09:05:20,987 [DEBUG][       Thread-249457][   transport.py][1871] : client lang: <none>
2025-06-13 09:05:20,987 [DEBUG][       Thread-249457][   transport.py][1871] : server lang: <none>
2025-06-13 09:05:20,987 [DEBUG][       Thread-249457][   transport.py][1871] : kex follows: False
2025-06-13 09:05:20,987 [DEBUG][       Thread-249457][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 09:05:20,987 [DEBUG][       Thread-249457][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 09:05:20,987 [DEBUG][       Thread-249457][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 09:05:20,987 [DEBUG][       Thread-249457][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 09:05:20,987 [DEBUG][       Thread-249457][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 09:05:20,987 [DEBUG][       Thread-249457][   transport.py][1871] : Compression: none
2025-06-13 09:05:20,987 [DEBUG][       Thread-249457][   transport.py][1871] : === End of kex handshake ===
2025-06-13 09:05:21,045 [DEBUG][       Thread-249457][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 09:05:21,045 [DEBUG][       Thread-249457][   transport.py][1871] : Switch to new keys ...
2025-06-13 09:05:21,046 [DEBUG][       Thread-249457][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 09:05:21,046 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 09:05:21,046 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 09:05:21,103 [DEBUG][       Thread-249457][   transport.py][1871] : userauth is OK
2025-06-13 09:05:21,103 [DEBUG][       Thread-249457][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 09:05:21,103 [DEBUG][       Thread-249457][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 09:05:21,103 [DEBUG][       Thread-249457][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 09:05:21,103 [DEBUG][       Thread-249457][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 09:05:21,121 [ INFO][       Thread-249457][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 09:05:21,121 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 09:05:21,122 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 09:05:22,144 [DEBUG][       Thread-249457][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 09:05:22,144 [DEBUG][       Thread-249457][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 09:05:22,204 [DEBUG][       Thread-249457][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 09:05:22,204 [DEBUG][       Thread-249457][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 09:05:22,214 [DEBUG][       Thread-249457][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 09:05:22,223 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 09:05:22,223 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 09:05:22,231 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 09:05:22,241 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 09:05:22,241 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 09:05:22,241 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 09:05:22,250 [DEBUG][       Thread-249457][   transport.py][1871] : EOF in transport thread
2025-06-13 09:05:22,768 [DEBUG][Thread-249459 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:05:31,799 [DEBUG][Thread-249460 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:05:32,248 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 09:05:32,248 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 09:05:32,249 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 09:05:32,251 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 09:05:32,701 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 9, 5, 4), 8.85, 53.57, 0.0, 23.89, 7.46, 0, 0, 0, 2, 0, 0),)
2025-06-13 09:05:32,701 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 09:05:04
2025-06-13 09:05:32,783 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 09:05:32,789 [DEBUG][       Thread-249461][   transport.py][1871] : starting thread (client mode): 0x863a50c0
2025-06-13 09:05:32,789 [DEBUG][       Thread-249461][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 09:05:32,805 [DEBUG][       Thread-249461][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 09:05:32,805 [ INFO][       Thread-249461][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 09:05:32,806 [DEBUG][       Thread-249461][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 09:05:32,806 [DEBUG][       Thread-249461][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 09:05:32,806 [DEBUG][       Thread-249461][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 09:05:32,806 [DEBUG][       Thread-249461][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:05:32,806 [DEBUG][       Thread-249461][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:05:32,806 [DEBUG][       Thread-249461][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:05:32,806 [DEBUG][       Thread-249461][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:05:32,806 [DEBUG][       Thread-249461][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 09:05:32,806 [DEBUG][       Thread-249461][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 09:05:32,806 [DEBUG][       Thread-249461][   transport.py][1871] : client lang: <none>
2025-06-13 09:05:32,806 [DEBUG][       Thread-249461][   transport.py][1871] : server lang: <none>
2025-06-13 09:05:32,807 [DEBUG][       Thread-249461][   transport.py][1871] : kex follows: False
2025-06-13 09:05:32,807 [DEBUG][       Thread-249461][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 09:05:32,807 [DEBUG][       Thread-249461][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 09:05:32,807 [DEBUG][       Thread-249461][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 09:05:32,807 [DEBUG][       Thread-249461][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 09:05:32,807 [DEBUG][       Thread-249461][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 09:05:32,807 [DEBUG][       Thread-249461][   transport.py][1871] : Compression: none
2025-06-13 09:05:32,807 [DEBUG][       Thread-249461][   transport.py][1871] : === End of kex handshake ===
2025-06-13 09:05:32,816 [DEBUG][       Thread-249461][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 09:05:32,816 [DEBUG][       Thread-249461][   transport.py][1871] : Switch to new keys ...
2025-06-13 09:05:32,817 [DEBUG][       Thread-249461][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 09:05:32,817 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 09:05:32,817 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 09:05:32,818 [DEBUG][       Thread-249461][   transport.py][1871] : userauth is OK
2025-06-13 09:05:32,830 [ INFO][       Thread-249461][   transport.py][1871] : Authentication (password) successful!
2025-06-13 09:05:32,831 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 09:05:33,382 [DEBUG][       Thread-249461][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 09:05:33,382 [DEBUG][       Thread-249461][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 09:05:33,424 [DEBUG][       Thread-249461][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 09:05:33,424 [DEBUG][       Thread-249461][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 09:05:33,427 [DEBUG][       Thread-249461][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 09:05:33,439 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 09:05:33,439 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 09:05:33,440 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 09:05:33,441 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 09:05:33,443 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 09:05:33,444 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 09:05:33,444 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 09:05:33,444 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 09:05:33,444 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.295428 -999.00   +7.20  23.06     58   -0.40 1 1 1 1 1   887    0 8.28 33.78 ----- 23.1 23.1 42.6 33.5 10.5 -27.4 9.5 -28.2 8.2 -27.2 9.3 -26.2
2025-06-13 09:05:33,444 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 09:05:33,444 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 09:05:33,444 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.295428
2025-06-13 09:05:33,444 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 09:05:33,444 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 09:05:33,444 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 09:05:33,444 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 09:05:33,444 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 09:05:33,444 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T09:05:04', tmtdew=8.85, humidity=53.57, cloud=0.0, wind=23.89, temperature=7.46, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T07:05:24.979', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 09:05:33,445 [DEBUG][       Thread-249461][   transport.py][1871] : EOF in transport thread
2025-06-13 09:05:33,516 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 09:05:33,525 [DEBUG][       Thread-249464][   transport.py][1871] : starting thread (client mode): 0x863efbe0
2025-06-13 09:05:33,525 [DEBUG][       Thread-249464][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 09:05:33,541 [DEBUG][       Thread-249464][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 09:05:33,541 [ INFO][       Thread-249464][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 09:05:33,549 [DEBUG][       Thread-249464][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 09:05:33,549 [DEBUG][       Thread-249464][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 09:05:33,549 [DEBUG][       Thread-249464][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 09:05:33,549 [DEBUG][       Thread-249464][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:05:33,549 [DEBUG][       Thread-249464][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:05:33,549 [DEBUG][       Thread-249464][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:05:33,549 [DEBUG][       Thread-249464][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:05:33,549 [DEBUG][       Thread-249464][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 09:05:33,549 [DEBUG][       Thread-249464][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 09:05:33,549 [DEBUG][       Thread-249464][   transport.py][1871] : client lang: <none>
2025-06-13 09:05:33,549 [DEBUG][       Thread-249464][   transport.py][1871] : server lang: <none>
2025-06-13 09:05:33,549 [DEBUG][       Thread-249464][   transport.py][1871] : kex follows: False
2025-06-13 09:05:33,549 [DEBUG][       Thread-249464][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 09:05:33,549 [DEBUG][       Thread-249464][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 09:05:33,549 [DEBUG][       Thread-249464][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 09:05:33,549 [DEBUG][       Thread-249464][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 09:05:33,549 [DEBUG][       Thread-249464][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 09:05:33,550 [DEBUG][       Thread-249464][   transport.py][1871] : Compression: none
2025-06-13 09:05:33,550 [DEBUG][       Thread-249464][   transport.py][1871] : === End of kex handshake ===
2025-06-13 09:05:33,606 [DEBUG][       Thread-249464][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 09:05:33,606 [DEBUG][       Thread-249464][   transport.py][1871] : Switch to new keys ...
2025-06-13 09:05:33,607 [DEBUG][       Thread-249464][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 09:05:33,607 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 09:05:33,608 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 09:05:33,663 [DEBUG][       Thread-249464][   transport.py][1871] : userauth is OK
2025-06-13 09:05:33,663 [DEBUG][       Thread-249464][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 09:05:33,663 [DEBUG][       Thread-249464][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 09:05:33,663 [DEBUG][       Thread-249464][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 09:05:33,663 [DEBUG][       Thread-249464][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 09:05:33,681 [ INFO][       Thread-249464][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 09:05:33,682 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 09:05:33,682 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 09:05:34,720 [DEBUG][       Thread-249464][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 09:05:34,720 [DEBUG][       Thread-249464][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 09:05:34,776 [DEBUG][       Thread-249464][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 09:05:34,777 [DEBUG][       Thread-249464][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 09:05:34,787 [DEBUG][       Thread-249464][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 09:05:34,796 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 09:05:34,796 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 09:05:34,804 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 09:05:34,813 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 09:05:34,813 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 09:05:34,814 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 09:05:34,821 [DEBUG][       Thread-249464][   transport.py][1871] : EOF in transport thread
2025-06-13 09:05:40,815 [DEBUG][Thread-249466 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:05:42,184 [DEBUG][Thread-249467 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:05:43,265 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:05:43,266 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:05:44,824 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 09:05:44,824 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 09:05:44,824 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 09:05:44,827 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 09:05:45,292 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 9, 5, 36), 8.84, 53.28, 0.0, 24.01, 7.46, 0, 0, 0, 2, 0, 0),)
2025-06-13 09:05:45,292 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 09:05:36
2025-06-13 09:05:45,372 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 09:05:45,379 [DEBUG][       Thread-249468][   transport.py][1871] : starting thread (client mode): 0x867fc4c0
2025-06-13 09:05:45,379 [DEBUG][       Thread-249468][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 09:05:45,399 [DEBUG][       Thread-249468][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 09:05:45,399 [ INFO][       Thread-249468][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 09:05:45,402 [DEBUG][       Thread-249468][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 09:05:45,402 [DEBUG][       Thread-249468][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 09:05:45,402 [DEBUG][       Thread-249468][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 09:05:45,402 [DEBUG][       Thread-249468][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:05:45,402 [DEBUG][       Thread-249468][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:05:45,402 [DEBUG][       Thread-249468][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:05:45,402 [DEBUG][       Thread-249468][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:05:45,402 [DEBUG][       Thread-249468][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 09:05:45,402 [DEBUG][       Thread-249468][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 09:05:45,403 [DEBUG][       Thread-249468][   transport.py][1871] : client lang: <none>
2025-06-13 09:05:45,403 [DEBUG][       Thread-249468][   transport.py][1871] : server lang: <none>
2025-06-13 09:05:45,403 [DEBUG][       Thread-249468][   transport.py][1871] : kex follows: False
2025-06-13 09:05:45,403 [DEBUG][       Thread-249468][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 09:05:45,403 [DEBUG][       Thread-249468][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 09:05:45,403 [DEBUG][       Thread-249468][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 09:05:45,403 [DEBUG][       Thread-249468][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 09:05:45,403 [DEBUG][       Thread-249468][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 09:05:45,403 [DEBUG][       Thread-249468][   transport.py][1871] : Compression: none
2025-06-13 09:05:45,403 [DEBUG][       Thread-249468][   transport.py][1871] : === End of kex handshake ===
2025-06-13 09:05:45,420 [DEBUG][       Thread-249468][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 09:05:45,420 [DEBUG][       Thread-249468][   transport.py][1871] : Switch to new keys ...
2025-06-13 09:05:45,421 [DEBUG][       Thread-249468][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 09:05:45,421 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 09:05:45,421 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 09:05:45,422 [DEBUG][       Thread-249468][   transport.py][1871] : userauth is OK
2025-06-13 09:05:45,435 [ INFO][       Thread-249468][   transport.py][1871] : Authentication (password) successful!
2025-06-13 09:05:45,436 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 09:05:46,033 [DEBUG][       Thread-249468][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 09:05:46,033 [DEBUG][       Thread-249468][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 09:05:46,077 [DEBUG][       Thread-249468][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 09:05:46,077 [DEBUG][       Thread-249468][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 09:05:46,079 [DEBUG][       Thread-249468][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 09:05:46,084 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 09:05:46,085 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 09:05:46,086 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 09:05:46,087 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 09:05:46,091 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 09:05:46,093 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 09:05:46,093 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 09:05:46,094 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 09:05:46,094 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.295428 -999.00   +7.20  23.06     58   -0.40 1 1 1 1 1   887    0 8.28 33.78 ----- 23.1 23.1 42.6 33.5 10.5 -27.4 9.5 -28.2 8.2 -27.2 9.3 -26.2
2025-06-13 09:05:46,094 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 09:05:46,094 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 09:05:46,094 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.295428
2025-06-13 09:05:46,095 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 09:05:46,095 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 09:05:46,095 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 09:05:46,095 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 09:05:46,095 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 09:05:46,095 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T09:05:36', tmtdew=8.84, humidity=53.28, cloud=0.0, wind=24.01, temperature=7.46, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T07:05:24.979', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 09:05:46,096 [DEBUG][       Thread-249468][   transport.py][1871] : EOF in transport thread
2025-06-13 09:05:46,180 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 09:05:46,194 [DEBUG][       Thread-249471][   transport.py][1871] : starting thread (client mode): 0x863c9ed0
2025-06-13 09:05:46,194 [DEBUG][       Thread-249471][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 09:05:46,210 [DEBUG][       Thread-249471][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 09:05:46,210 [ INFO][       Thread-249471][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 09:05:46,218 [DEBUG][       Thread-249471][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 09:05:46,218 [DEBUG][       Thread-249471][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 09:05:46,218 [DEBUG][       Thread-249471][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 09:05:46,218 [DEBUG][       Thread-249471][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:05:46,218 [DEBUG][       Thread-249471][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:05:46,218 [DEBUG][       Thread-249471][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:05:46,218 [DEBUG][       Thread-249471][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:05:46,218 [DEBUG][       Thread-249471][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 09:05:46,218 [DEBUG][       Thread-249471][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 09:05:46,218 [DEBUG][       Thread-249471][   transport.py][1871] : client lang: <none>
2025-06-13 09:05:46,218 [DEBUG][       Thread-249471][   transport.py][1871] : server lang: <none>
2025-06-13 09:05:46,218 [DEBUG][       Thread-249471][   transport.py][1871] : kex follows: False
2025-06-13 09:05:46,218 [DEBUG][       Thread-249471][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 09:05:46,219 [DEBUG][       Thread-249471][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 09:05:46,219 [DEBUG][       Thread-249471][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 09:05:46,219 [DEBUG][       Thread-249471][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 09:05:46,219 [DEBUG][       Thread-249471][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 09:05:46,219 [DEBUG][       Thread-249471][   transport.py][1871] : Compression: none
2025-06-13 09:05:46,219 [DEBUG][       Thread-249471][   transport.py][1871] : === End of kex handshake ===
2025-06-13 09:05:46,274 [DEBUG][       Thread-249471][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 09:05:46,275 [DEBUG][       Thread-249471][   transport.py][1871] : Switch to new keys ...
2025-06-13 09:05:46,275 [DEBUG][       Thread-249471][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 09:05:46,275 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 09:05:46,276 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 09:05:46,335 [DEBUG][       Thread-249471][   transport.py][1871] : userauth is OK
2025-06-13 09:05:46,335 [DEBUG][       Thread-249471][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 09:05:46,335 [DEBUG][       Thread-249471][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 09:05:46,335 [DEBUG][       Thread-249471][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 09:05:46,335 [DEBUG][       Thread-249471][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 09:05:46,354 [ INFO][       Thread-249471][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 09:05:46,354 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 09:05:46,354 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 09:05:47,407 [DEBUG][       Thread-249471][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 09:05:47,407 [DEBUG][       Thread-249471][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 09:05:47,455 [DEBUG][       Thread-249471][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 09:05:47,455 [DEBUG][       Thread-249471][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 09:05:47,464 [DEBUG][       Thread-249471][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 09:05:47,473 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 09:05:47,473 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 09:05:47,482 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 09:05:47,491 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 09:05:47,491 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 09:05:47,492 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 09:05:47,499 [DEBUG][       Thread-249471][   transport.py][1871] : EOF in transport thread
2025-06-13 09:05:49,832 [DEBUG][Thread-249473 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:05:57,502 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 09:05:57,502 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 09:05:57,502 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 09:05:57,505 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 09:05:57,969 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 9, 5, 36), 8.84, 53.28, 0.0, 24.01, 7.46, 0, 0, 0, 2, 0, 0),)
2025-06-13 09:05:57,969 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 09:05:36
2025-06-13 09:05:58,051 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 09:05:58,055 [DEBUG][       Thread-249474][   transport.py][1871] : starting thread (client mode): 0x867fc4c0
2025-06-13 09:05:58,055 [DEBUG][       Thread-249474][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 09:05:58,072 [DEBUG][       Thread-249474][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 09:05:58,072 [ INFO][       Thread-249474][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 09:05:58,075 [DEBUG][       Thread-249474][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 09:05:58,075 [DEBUG][       Thread-249474][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 09:05:58,075 [DEBUG][       Thread-249474][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 09:05:58,075 [DEBUG][       Thread-249474][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:05:58,075 [DEBUG][       Thread-249474][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:05:58,075 [DEBUG][       Thread-249474][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:05:58,075 [DEBUG][       Thread-249474][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:05:58,075 [DEBUG][       Thread-249474][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 09:05:58,076 [DEBUG][       Thread-249474][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 09:05:58,076 [DEBUG][       Thread-249474][   transport.py][1871] : client lang: <none>
2025-06-13 09:05:58,076 [DEBUG][       Thread-249474][   transport.py][1871] : server lang: <none>
2025-06-13 09:05:58,076 [DEBUG][       Thread-249474][   transport.py][1871] : kex follows: False
2025-06-13 09:05:58,076 [DEBUG][       Thread-249474][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 09:05:58,076 [DEBUG][       Thread-249474][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 09:05:58,076 [DEBUG][       Thread-249474][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 09:05:58,076 [DEBUG][       Thread-249474][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 09:05:58,076 [DEBUG][       Thread-249474][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 09:05:58,076 [DEBUG][       Thread-249474][   transport.py][1871] : Compression: none
2025-06-13 09:05:58,076 [DEBUG][       Thread-249474][   transport.py][1871] : === End of kex handshake ===
2025-06-13 09:05:58,093 [DEBUG][       Thread-249474][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 09:05:58,093 [DEBUG][       Thread-249474][   transport.py][1871] : Switch to new keys ...
2025-06-13 09:05:58,094 [DEBUG][       Thread-249474][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 09:05:58,094 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 09:05:58,094 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 09:05:58,095 [DEBUG][       Thread-249474][   transport.py][1871] : userauth is OK
2025-06-13 09:05:58,108 [ INFO][       Thread-249474][   transport.py][1871] : Authentication (password) successful!
2025-06-13 09:05:58,109 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 09:05:58,743 [DEBUG][       Thread-249474][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 09:05:58,743 [DEBUG][       Thread-249474][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 09:05:58,785 [DEBUG][       Thread-249474][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 09:05:58,785 [DEBUG][       Thread-249474][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 09:05:58,788 [DEBUG][       Thread-249474][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 09:05:58,800 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 09:05:58,800 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 09:05:58,802 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 09:05:58,804 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 09:05:58,809 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 09:05:58,811 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 09:05:58,811 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 09:05:58,812 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 09:05:58,812 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.295428 -999.00   +7.20  23.06     58   -0.40 1 1 1 1 1   887    0 8.28 33.78 ----- 23.1 23.1 42.6 33.5 10.5 -27.4 9.5 -28.2 8.2 -27.2 9.3 -26.2
2025-06-13 09:05:58,812 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 09:05:58,812 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 09:05:58,812 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.295428
2025-06-13 09:05:58,813 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 09:05:58,813 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 09:05:58,813 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 09:05:58,813 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 09:05:58,813 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 09:05:58,813 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T09:05:36', tmtdew=8.84, humidity=53.28, cloud=0.0, wind=24.01, temperature=7.46, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T07:05:24.979', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 09:05:58,814 [DEBUG][       Thread-249474][   transport.py][1871] : EOF in transport thread
2025-06-13 09:05:58,870 [DEBUG][Thread-249477 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:05:58,897 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 09:05:58,906 [DEBUG][       Thread-249478][   transport.py][1871] : starting thread (client mode): 0x863a4cd0
2025-06-13 09:05:58,906 [DEBUG][       Thread-249478][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 09:05:58,922 [DEBUG][       Thread-249478][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 09:05:58,922 [ INFO][       Thread-249478][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 09:05:58,929 [DEBUG][       Thread-249478][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 09:05:58,929 [DEBUG][       Thread-249478][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 09:05:58,930 [DEBUG][       Thread-249478][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 09:05:58,930 [DEBUG][       Thread-249478][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:05:58,930 [DEBUG][       Thread-249478][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:05:58,930 [DEBUG][       Thread-249478][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:05:58,930 [DEBUG][       Thread-249478][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:05:58,930 [DEBUG][       Thread-249478][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 09:05:58,930 [DEBUG][       Thread-249478][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 09:05:58,930 [DEBUG][       Thread-249478][   transport.py][1871] : client lang: <none>
2025-06-13 09:05:58,930 [DEBUG][       Thread-249478][   transport.py][1871] : server lang: <none>
2025-06-13 09:05:58,930 [DEBUG][       Thread-249478][   transport.py][1871] : kex follows: False
2025-06-13 09:05:58,930 [DEBUG][       Thread-249478][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 09:05:58,930 [DEBUG][       Thread-249478][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 09:05:58,930 [DEBUG][       Thread-249478][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 09:05:58,930 [DEBUG][       Thread-249478][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 09:05:58,930 [DEBUG][       Thread-249478][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 09:05:58,930 [DEBUG][       Thread-249478][   transport.py][1871] : Compression: none
2025-06-13 09:05:58,930 [DEBUG][       Thread-249478][   transport.py][1871] : === End of kex handshake ===
2025-06-13 09:05:58,987 [DEBUG][       Thread-249478][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 09:05:58,987 [DEBUG][       Thread-249478][   transport.py][1871] : Switch to new keys ...
2025-06-13 09:05:58,988 [DEBUG][       Thread-249478][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 09:05:58,988 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 09:05:58,989 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 09:05:59,051 [DEBUG][       Thread-249478][   transport.py][1871] : userauth is OK
2025-06-13 09:05:59,051 [DEBUG][       Thread-249478][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 09:05:59,051 [DEBUG][       Thread-249478][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 09:05:59,051 [DEBUG][       Thread-249478][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 09:05:59,052 [DEBUG][       Thread-249478][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 09:05:59,070 [ INFO][       Thread-249478][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 09:05:59,071 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 09:05:59,071 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 09:06:00,123 [DEBUG][       Thread-249478][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 09:06:00,123 [DEBUG][       Thread-249478][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 09:06:00,172 [DEBUG][       Thread-249478][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 09:06:00,172 [DEBUG][       Thread-249478][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 09:06:00,185 [DEBUG][       Thread-249478][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 09:06:00,193 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 09:06:00,194 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 09:06:00,202 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 09:06:00,211 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 09:06:00,211 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 09:06:00,212 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 09:06:00,220 [DEBUG][       Thread-249478][   transport.py][1871] : EOF in transport thread
2025-06-13 09:06:02,198 [DEBUG][Thread-249480 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:06:07,887 [DEBUG][Thread-249481 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:06:10,220 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 09:06:10,220 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 09:06:10,220 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 09:06:10,221 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 09:06:10,689 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 9, 5, 36), 8.84, 53.28, 0.0, 24.01, 7.46, 0, 0, 0, 2, 0, 0),)
2025-06-13 09:06:10,689 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 09:05:36
2025-06-13 09:06:10,771 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 09:06:10,777 [DEBUG][       Thread-249482][   transport.py][1871] : starting thread (client mode): 0x867fdea0
2025-06-13 09:06:10,777 [DEBUG][       Thread-249482][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 09:06:10,798 [DEBUG][       Thread-249482][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 09:06:10,798 [ INFO][       Thread-249482][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 09:06:10,799 [DEBUG][       Thread-249482][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 09:06:10,800 [DEBUG][       Thread-249482][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 09:06:10,800 [DEBUG][       Thread-249482][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 09:06:10,800 [DEBUG][       Thread-249482][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:06:10,800 [DEBUG][       Thread-249482][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:06:10,800 [DEBUG][       Thread-249482][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:06:10,800 [DEBUG][       Thread-249482][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:06:10,800 [DEBUG][       Thread-249482][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 09:06:10,800 [DEBUG][       Thread-249482][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 09:06:10,800 [DEBUG][       Thread-249482][   transport.py][1871] : client lang: <none>
2025-06-13 09:06:10,800 [DEBUG][       Thread-249482][   transport.py][1871] : server lang: <none>
2025-06-13 09:06:10,800 [DEBUG][       Thread-249482][   transport.py][1871] : kex follows: False
2025-06-13 09:06:10,800 [DEBUG][       Thread-249482][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 09:06:10,800 [DEBUG][       Thread-249482][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 09:06:10,800 [DEBUG][       Thread-249482][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 09:06:10,800 [DEBUG][       Thread-249482][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 09:06:10,800 [DEBUG][       Thread-249482][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 09:06:10,800 [DEBUG][       Thread-249482][   transport.py][1871] : Compression: none
2025-06-13 09:06:10,800 [DEBUG][       Thread-249482][   transport.py][1871] : === End of kex handshake ===
2025-06-13 09:06:10,807 [DEBUG][       Thread-249482][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 09:06:10,807 [DEBUG][       Thread-249482][   transport.py][1871] : Switch to new keys ...
2025-06-13 09:06:10,807 [DEBUG][       Thread-249482][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 09:06:10,807 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 09:06:10,807 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 09:06:10,808 [DEBUG][       Thread-249482][   transport.py][1871] : userauth is OK
2025-06-13 09:06:10,820 [ INFO][       Thread-249482][   transport.py][1871] : Authentication (password) successful!
2025-06-13 09:06:10,820 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 09:06:11,449 [DEBUG][       Thread-249482][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 09:06:11,450 [DEBUG][       Thread-249482][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 09:06:11,492 [DEBUG][       Thread-249482][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 09:06:11,493 [DEBUG][       Thread-249482][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 09:06:11,495 [DEBUG][       Thread-249482][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 09:06:11,507 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 09:06:11,507 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 09:06:11,509 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 09:06:11,510 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 09:06:11,514 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 09:06:11,516 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 09:06:11,517 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 09:06:11,517 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 09:06:11,517 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.295775 -999.00   +7.20  21.56     58   -0.30 1 1 1 1 1   887    0 8.24 31.31 ----- 21.6 21.6 35.4 27.5 10.5 -27.8 9.6 -28.5 8.2 -27.4 9.3 -26.0
2025-06-13 09:06:11,517 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 09:06:11,517 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 09:06:11,517 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.295775
2025-06-13 09:06:11,518 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 09:06:11,518 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 09:06:11,518 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 09:06:11,518 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 09:06:11,519 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 09:06:11,519 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T09:05:36', tmtdew=8.84, humidity=53.28, cloud=0.0, wind=24.01, temperature=7.46, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T07:05:54.960', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 09:06:11,520 [DEBUG][       Thread-249482][   transport.py][1871] : EOF in transport thread
2025-06-13 09:06:11,607 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 09:06:11,619 [DEBUG][       Thread-249485][   transport.py][1871] : starting thread (client mode): 0x863cb7c0
2025-06-13 09:06:11,619 [DEBUG][       Thread-249485][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 09:06:11,633 [DEBUG][       Thread-249485][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 09:06:11,633 [ INFO][       Thread-249485][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 09:06:11,641 [DEBUG][       Thread-249485][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 09:06:11,641 [DEBUG][       Thread-249485][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 09:06:11,641 [DEBUG][       Thread-249485][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 09:06:11,641 [DEBUG][       Thread-249485][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:06:11,641 [DEBUG][       Thread-249485][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:06:11,641 [DEBUG][       Thread-249485][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:06:11,641 [DEBUG][       Thread-249485][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:06:11,641 [DEBUG][       Thread-249485][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 09:06:11,642 [DEBUG][       Thread-249485][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 09:06:11,642 [DEBUG][       Thread-249485][   transport.py][1871] : client lang: <none>
2025-06-13 09:06:11,642 [DEBUG][       Thread-249485][   transport.py][1871] : server lang: <none>
2025-06-13 09:06:11,642 [DEBUG][       Thread-249485][   transport.py][1871] : kex follows: False
2025-06-13 09:06:11,642 [DEBUG][       Thread-249485][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 09:06:11,642 [DEBUG][       Thread-249485][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 09:06:11,642 [DEBUG][       Thread-249485][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 09:06:11,642 [DEBUG][       Thread-249485][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 09:06:11,642 [DEBUG][       Thread-249485][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 09:06:11,642 [DEBUG][       Thread-249485][   transport.py][1871] : Compression: none
2025-06-13 09:06:11,642 [DEBUG][       Thread-249485][   transport.py][1871] : === End of kex handshake ===
2025-06-13 09:06:11,698 [DEBUG][       Thread-249485][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 09:06:11,698 [DEBUG][       Thread-249485][   transport.py][1871] : Switch to new keys ...
2025-06-13 09:06:11,699 [DEBUG][       Thread-249485][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 09:06:11,699 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 09:06:11,699 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 09:06:11,758 [DEBUG][       Thread-249485][   transport.py][1871] : userauth is OK
2025-06-13 09:06:11,758 [DEBUG][       Thread-249485][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 09:06:11,759 [DEBUG][       Thread-249485][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 09:06:11,759 [DEBUG][       Thread-249485][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 09:06:11,759 [DEBUG][       Thread-249485][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 09:06:11,777 [ INFO][       Thread-249485][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 09:06:11,777 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 09:06:11,777 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 09:06:12,792 [DEBUG][       Thread-249485][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 09:06:12,792 [DEBUG][       Thread-249485][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 09:06:12,844 [DEBUG][       Thread-249485][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 09:06:12,844 [DEBUG][       Thread-249485][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 09:06:12,853 [DEBUG][       Thread-249485][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 09:06:12,861 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 09:06:12,861 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 09:06:12,870 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 09:06:12,878 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 09:06:12,879 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 09:06:12,879 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 09:06:12,887 [DEBUG][       Thread-249485][   transport.py][1871] : EOF in transport thread
2025-06-13 09:06:14,917 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:06:14,918 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:06:16,904 [DEBUG][Thread-249487 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:06:22,889 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 09:06:22,890 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 09:06:22,890 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 09:06:22,892 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 09:06:23,360 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 9, 6, 8), 8.81, 53.37, 0.0, 25.13, 7.45, 0, 0, 0, 2, 0, 0),)
2025-06-13 09:06:23,360 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 09:06:08
2025-06-13 09:06:23,441 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 09:06:23,445 [DEBUG][       Thread-249488][   transport.py][1871] : starting thread (client mode): 0x863cb490
2025-06-13 09:06:23,445 [DEBUG][       Thread-249488][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 09:06:23,465 [DEBUG][       Thread-249488][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 09:06:23,466 [ INFO][       Thread-249488][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 09:06:23,469 [DEBUG][       Thread-249488][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 09:06:23,469 [DEBUG][       Thread-249488][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 09:06:23,469 [DEBUG][       Thread-249488][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 09:06:23,469 [DEBUG][       Thread-249488][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:06:23,469 [DEBUG][       Thread-249488][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:06:23,469 [DEBUG][       Thread-249488][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:06:23,469 [DEBUG][       Thread-249488][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:06:23,469 [DEBUG][       Thread-249488][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 09:06:23,469 [DEBUG][       Thread-249488][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 09:06:23,469 [DEBUG][       Thread-249488][   transport.py][1871] : client lang: <none>
2025-06-13 09:06:23,469 [DEBUG][       Thread-249488][   transport.py][1871] : server lang: <none>
2025-06-13 09:06:23,469 [DEBUG][       Thread-249488][   transport.py][1871] : kex follows: False
2025-06-13 09:06:23,469 [DEBUG][       Thread-249488][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 09:06:23,469 [DEBUG][       Thread-249488][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 09:06:23,469 [DEBUG][       Thread-249488][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 09:06:23,469 [DEBUG][       Thread-249488][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 09:06:23,469 [DEBUG][       Thread-249488][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 09:06:23,469 [DEBUG][       Thread-249488][   transport.py][1871] : Compression: none
2025-06-13 09:06:23,469 [DEBUG][       Thread-249488][   transport.py][1871] : === End of kex handshake ===
2025-06-13 09:06:23,486 [DEBUG][       Thread-249488][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 09:06:23,486 [DEBUG][       Thread-249488][   transport.py][1871] : Switch to new keys ...
2025-06-13 09:06:23,487 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 09:06:23,487 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 09:06:23,487 [DEBUG][       Thread-249488][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 09:06:23,488 [DEBUG][       Thread-249488][   transport.py][1871] : userauth is OK
2025-06-13 09:06:23,512 [ INFO][       Thread-249488][   transport.py][1871] : Authentication (password) successful!
2025-06-13 09:06:23,513 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 09:06:24,174 [DEBUG][       Thread-249488][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 09:06:24,174 [DEBUG][       Thread-249488][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 09:06:24,217 [DEBUG][       Thread-249488][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 09:06:24,217 [DEBUG][       Thread-249488][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 09:06:24,220 [DEBUG][       Thread-249488][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 09:06:24,231 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 09:06:24,231 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 09:06:24,233 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 09:06:24,234 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 09:06:24,238 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 09:06:24,240 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 09:06:24,240 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 09:06:24,240 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 09:06:24,241 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.295775 -999.00   +7.20  21.56     58   -0.30 1 1 1 1 1   887    0 8.24 31.31 ----- 21.6 21.6 35.4 27.5 10.5 -27.8 9.6 -28.5 8.2 -27.4 9.3 -26.0
2025-06-13 09:06:24,241 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 09:06:24,241 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 09:06:24,241 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.295775
2025-06-13 09:06:24,241 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 09:06:24,242 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 09:06:24,242 [DEBUG][       Thread-249488][   transport.py][1871] : EOF in transport thread
2025-06-13 09:06:24,242 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 09:06:24,242 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 09:06:24,243 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 09:06:24,243 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T09:06:08', tmtdew=8.81, humidity=53.37, cloud=0.0, wind=25.13, temperature=7.45, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T07:05:54.960', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 09:06:24,326 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 09:06:24,335 [DEBUG][       Thread-249491][   transport.py][1871] : starting thread (client mode): 0x867ffbe0
2025-06-13 09:06:24,335 [DEBUG][       Thread-249491][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 09:06:24,349 [DEBUG][       Thread-249491][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 09:06:24,350 [ INFO][       Thread-249491][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 09:06:24,357 [DEBUG][       Thread-249491][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 09:06:24,357 [DEBUG][       Thread-249491][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 09:06:24,357 [DEBUG][       Thread-249491][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 09:06:24,357 [DEBUG][       Thread-249491][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:06:24,357 [DEBUG][       Thread-249491][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:06:24,357 [DEBUG][       Thread-249491][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:06:24,357 [DEBUG][       Thread-249491][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:06:24,357 [DEBUG][       Thread-249491][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 09:06:24,357 [DEBUG][       Thread-249491][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 09:06:24,357 [DEBUG][       Thread-249491][   transport.py][1871] : client lang: <none>
2025-06-13 09:06:24,357 [DEBUG][       Thread-249491][   transport.py][1871] : server lang: <none>
2025-06-13 09:06:24,357 [DEBUG][       Thread-249491][   transport.py][1871] : kex follows: False
2025-06-13 09:06:24,357 [DEBUG][       Thread-249491][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 09:06:24,358 [DEBUG][       Thread-249491][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 09:06:24,358 [DEBUG][       Thread-249491][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 09:06:24,358 [DEBUG][       Thread-249491][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 09:06:24,358 [DEBUG][       Thread-249491][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 09:06:24,358 [DEBUG][       Thread-249491][   transport.py][1871] : Compression: none
2025-06-13 09:06:24,358 [DEBUG][       Thread-249491][   transport.py][1871] : === End of kex handshake ===
2025-06-13 09:06:24,418 [DEBUG][       Thread-249491][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 09:06:24,418 [DEBUG][       Thread-249491][   transport.py][1871] : Switch to new keys ...
2025-06-13 09:06:24,419 [DEBUG][       Thread-249491][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 09:06:24,419 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 09:06:24,420 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 09:06:24,474 [DEBUG][       Thread-249491][   transport.py][1871] : userauth is OK
2025-06-13 09:06:24,475 [DEBUG][       Thread-249491][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 09:06:24,475 [DEBUG][       Thread-249491][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 09:06:24,475 [DEBUG][       Thread-249491][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 09:06:24,475 [DEBUG][       Thread-249491][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 09:06:24,494 [ INFO][       Thread-249491][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 09:06:24,494 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 09:06:24,495 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 09:06:25,581 [DEBUG][       Thread-249491][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 09:06:25,582 [DEBUG][       Thread-249491][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 09:06:25,635 [DEBUG][       Thread-249491][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 09:06:25,636 [DEBUG][       Thread-249491][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 09:06:25,645 [DEBUG][       Thread-249491][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 09:06:25,653 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 09:06:25,653 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 09:06:25,662 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 09:06:25,671 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 09:06:25,671 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 09:06:25,672 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 09:06:25,679 [DEBUG][       Thread-249491][   transport.py][1871] : EOF in transport thread
2025-06-13 09:06:25,924 [DEBUG][Thread-249493 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:06:34,963 [DEBUG][Thread-249494 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:06:35,680 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 09:06:35,680 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 09:06:35,680 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 09:06:35,681 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 09:06:36,129 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 9, 6, 8), 8.81, 53.37, 0.0, 25.13, 7.45, 0, 0, 0, 2, 0, 0),)
2025-06-13 09:06:36,129 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 09:06:08
2025-06-13 09:06:36,210 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 09:06:36,215 [DEBUG][       Thread-249495][   transport.py][1871] : starting thread (client mode): 0x863ef970
2025-06-13 09:06:36,215 [DEBUG][       Thread-249495][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 09:06:36,234 [DEBUG][       Thread-249495][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 09:06:36,234 [ INFO][       Thread-249495][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 09:06:36,238 [DEBUG][       Thread-249495][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 09:06:36,238 [DEBUG][       Thread-249495][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 09:06:36,238 [DEBUG][       Thread-249495][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 09:06:36,238 [DEBUG][       Thread-249495][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:06:36,238 [DEBUG][       Thread-249495][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:06:36,238 [DEBUG][       Thread-249495][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:06:36,238 [DEBUG][       Thread-249495][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:06:36,238 [DEBUG][       Thread-249495][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 09:06:36,238 [DEBUG][       Thread-249495][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 09:06:36,238 [DEBUG][       Thread-249495][   transport.py][1871] : client lang: <none>
2025-06-13 09:06:36,238 [DEBUG][       Thread-249495][   transport.py][1871] : server lang: <none>
2025-06-13 09:06:36,238 [DEBUG][       Thread-249495][   transport.py][1871] : kex follows: False
2025-06-13 09:06:36,238 [DEBUG][       Thread-249495][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 09:06:36,238 [DEBUG][       Thread-249495][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 09:06:36,238 [DEBUG][       Thread-249495][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 09:06:36,238 [DEBUG][       Thread-249495][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 09:06:36,238 [DEBUG][       Thread-249495][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 09:06:36,238 [DEBUG][       Thread-249495][   transport.py][1871] : Compression: none
2025-06-13 09:06:36,238 [DEBUG][       Thread-249495][   transport.py][1871] : === End of kex handshake ===
2025-06-13 09:06:36,256 [DEBUG][       Thread-249495][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 09:06:36,256 [DEBUG][       Thread-249495][   transport.py][1871] : Switch to new keys ...
2025-06-13 09:06:36,257 [DEBUG][       Thread-249495][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 09:06:36,257 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 09:06:36,257 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 09:06:36,259 [DEBUG][       Thread-249495][   transport.py][1871] : userauth is OK
2025-06-13 09:06:36,284 [ INFO][       Thread-249495][   transport.py][1871] : Authentication (password) successful!
2025-06-13 09:06:36,285 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 09:06:36,915 [DEBUG][       Thread-249495][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 09:06:36,915 [DEBUG][       Thread-249495][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 09:06:36,957 [DEBUG][       Thread-249495][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 09:06:36,957 [DEBUG][       Thread-249495][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 09:06:36,959 [DEBUG][       Thread-249495][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 09:06:36,971 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 09:06:36,971 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 09:06:36,973 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 09:06:36,974 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 09:06:36,978 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 09:06:36,979 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 09:06:36,980 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 09:06:36,980 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 09:06:36,980 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.295775 -999.00   +7.20  21.56     58   -0.30 1 1 1 1 1   887    0 8.24 31.31 ----- 21.6 21.6 35.4 27.5 10.5 -27.8 9.6 -28.5 8.2 -27.4 9.3 -26.0
2025-06-13 09:06:36,980 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 09:06:36,980 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 09:06:36,980 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.295775
2025-06-13 09:06:36,981 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 09:06:36,981 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 09:06:36,981 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 09:06:36,982 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 09:06:36,982 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 09:06:36,982 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T09:06:08', tmtdew=8.81, humidity=53.37, cloud=0.0, wind=25.13, temperature=7.45, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T07:05:54.960', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 09:06:36,982 [DEBUG][       Thread-249495][   transport.py][1871] : EOF in transport thread
2025-06-13 09:06:37,066 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 09:06:37,078 [DEBUG][       Thread-249498][   transport.py][1871] : starting thread (client mode): 0x863cafb0
2025-06-13 09:06:37,078 [DEBUG][       Thread-249498][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 09:06:37,093 [DEBUG][       Thread-249498][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 09:06:37,093 [ INFO][       Thread-249498][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 09:06:37,101 [DEBUG][       Thread-249498][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 09:06:37,101 [DEBUG][       Thread-249498][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 09:06:37,101 [DEBUG][       Thread-249498][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 09:06:37,101 [DEBUG][       Thread-249498][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:06:37,101 [DEBUG][       Thread-249498][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:06:37,101 [DEBUG][       Thread-249498][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:06:37,101 [DEBUG][       Thread-249498][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:06:37,101 [DEBUG][       Thread-249498][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 09:06:37,101 [DEBUG][       Thread-249498][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 09:06:37,101 [DEBUG][       Thread-249498][   transport.py][1871] : client lang: <none>
2025-06-13 09:06:37,101 [DEBUG][       Thread-249498][   transport.py][1871] : server lang: <none>
2025-06-13 09:06:37,101 [DEBUG][       Thread-249498][   transport.py][1871] : kex follows: False
2025-06-13 09:06:37,101 [DEBUG][       Thread-249498][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 09:06:37,101 [DEBUG][       Thread-249498][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 09:06:37,101 [DEBUG][       Thread-249498][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 09:06:37,101 [DEBUG][       Thread-249498][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 09:06:37,101 [DEBUG][       Thread-249498][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 09:06:37,101 [DEBUG][       Thread-249498][   transport.py][1871] : Compression: none
2025-06-13 09:06:37,102 [DEBUG][       Thread-249498][   transport.py][1871] : === End of kex handshake ===
2025-06-13 09:06:37,158 [DEBUG][       Thread-249498][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 09:06:37,158 [DEBUG][       Thread-249498][   transport.py][1871] : Switch to new keys ...
2025-06-13 09:06:37,159 [DEBUG][       Thread-249498][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 09:06:37,159 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 09:06:37,160 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 09:06:37,216 [DEBUG][       Thread-249498][   transport.py][1871] : userauth is OK
2025-06-13 09:06:37,216 [DEBUG][       Thread-249498][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 09:06:37,216 [DEBUG][       Thread-249498][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 09:06:37,216 [DEBUG][       Thread-249498][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 09:06:37,216 [DEBUG][       Thread-249498][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 09:06:37,235 [ INFO][       Thread-249498][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 09:06:37,235 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 09:06:37,236 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 09:06:38,259 [DEBUG][       Thread-249498][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 09:06:38,259 [DEBUG][       Thread-249498][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 09:06:38,307 [DEBUG][       Thread-249498][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 09:06:38,308 [DEBUG][       Thread-249498][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 09:06:38,316 [DEBUG][       Thread-249498][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 09:06:38,326 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 09:06:38,326 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 09:06:38,334 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 09:06:38,343 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 09:06:38,343 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 09:06:38,343 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 09:06:38,351 [DEBUG][       Thread-249498][   transport.py][1871] : EOF in transport thread
2025-06-13 09:06:43,337 [DEBUG][Thread-249500 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:06:43,982 [DEBUG][Thread-249501 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:06:44,416 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:06:44,417 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:06:48,354 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 09:06:48,354 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 09:06:48,354 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 09:06:48,356 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 09:06:48,826 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 9, 6, 40), 8.82, 53.36, 0.0, 21.39, 7.46, 0, 0, 0, 2, 0, 0),)
2025-06-13 09:06:48,826 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 09:06:40
2025-06-13 09:06:48,907 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 09:06:48,913 [DEBUG][       Thread-249502][   transport.py][1871] : starting thread (client mode): 0x863c9510
2025-06-13 09:06:48,914 [DEBUG][       Thread-249502][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 09:06:48,933 [DEBUG][       Thread-249502][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 09:06:48,933 [ INFO][       Thread-249502][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 09:06:48,936 [DEBUG][       Thread-249502][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 09:06:48,936 [DEBUG][       Thread-249502][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 09:06:48,936 [DEBUG][       Thread-249502][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 09:06:48,937 [DEBUG][       Thread-249502][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:06:48,937 [DEBUG][       Thread-249502][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:06:48,937 [DEBUG][       Thread-249502][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:06:48,937 [DEBUG][       Thread-249502][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:06:48,937 [DEBUG][       Thread-249502][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 09:06:48,937 [DEBUG][       Thread-249502][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 09:06:48,937 [DEBUG][       Thread-249502][   transport.py][1871] : client lang: <none>
2025-06-13 09:06:48,937 [DEBUG][       Thread-249502][   transport.py][1871] : server lang: <none>
2025-06-13 09:06:48,937 [DEBUG][       Thread-249502][   transport.py][1871] : kex follows: False
2025-06-13 09:06:48,937 [DEBUG][       Thread-249502][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 09:06:48,937 [DEBUG][       Thread-249502][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 09:06:48,937 [DEBUG][       Thread-249502][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 09:06:48,937 [DEBUG][       Thread-249502][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 09:06:48,937 [DEBUG][       Thread-249502][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 09:06:48,937 [DEBUG][       Thread-249502][   transport.py][1871] : Compression: none
2025-06-13 09:06:48,937 [DEBUG][       Thread-249502][   transport.py][1871] : === End of kex handshake ===
2025-06-13 09:06:48,953 [DEBUG][       Thread-249502][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 09:06:48,953 [DEBUG][       Thread-249502][   transport.py][1871] : Switch to new keys ...
2025-06-13 09:06:48,954 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 09:06:48,954 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 09:06:48,954 [DEBUG][       Thread-249502][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 09:06:48,955 [DEBUG][       Thread-249502][   transport.py][1871] : userauth is OK
2025-06-13 09:06:48,979 [ INFO][       Thread-249502][   transport.py][1871] : Authentication (password) successful!
2025-06-13 09:06:48,979 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 09:06:49,555 [DEBUG][       Thread-249502][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 09:06:49,555 [DEBUG][       Thread-249502][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 09:06:49,597 [DEBUG][       Thread-249502][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 09:06:49,597 [DEBUG][       Thread-249502][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 09:06:49,600 [DEBUG][       Thread-249502][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 09:06:49,612 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 09:06:49,612 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 09:06:49,614 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 09:06:49,615 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 09:06:49,620 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 09:06:49,622 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 09:06:49,622 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 09:06:49,622 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 09:06:49,623 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.296122 -999.00   +7.20  28.48     59   -0.20 1 1 1 1 1   887    0 8.19 28.58 ----- 28.5 28.5 45.4 33.3 10.6 -27.8 9.5 -28.7 8.3 -27.5 9.3 -26.0
2025-06-13 09:06:49,623 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 09:06:49,623 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 09:06:49,623 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.296122
2025-06-13 09:06:49,623 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 09:06:49,624 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 09:06:49,624 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 09:06:49,624 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 09:06:49,624 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 09:06:49,624 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T09:06:40', tmtdew=8.82, humidity=53.36, cloud=0.0, wind=21.39, temperature=7.46, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T07:06:24.941', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 09:06:49,624 [DEBUG][       Thread-249502][   transport.py][1871] : EOF in transport thread
2025-06-13 09:06:49,708 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 09:06:49,724 [DEBUG][       Thread-249505][   transport.py][1871] : starting thread (client mode): 0x867fdae0
2025-06-13 09:06:49,724 [DEBUG][       Thread-249505][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 09:06:49,739 [DEBUG][       Thread-249505][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 09:06:49,739 [ INFO][       Thread-249505][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 09:06:49,747 [DEBUG][       Thread-249505][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 09:06:49,747 [DEBUG][       Thread-249505][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 09:06:49,747 [DEBUG][       Thread-249505][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 09:06:49,747 [DEBUG][       Thread-249505][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:06:49,747 [DEBUG][       Thread-249505][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:06:49,747 [DEBUG][       Thread-249505][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:06:49,747 [DEBUG][       Thread-249505][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:06:49,747 [DEBUG][       Thread-249505][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 09:06:49,747 [DEBUG][       Thread-249505][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 09:06:49,747 [DEBUG][       Thread-249505][   transport.py][1871] : client lang: <none>
2025-06-13 09:06:49,747 [DEBUG][       Thread-249505][   transport.py][1871] : server lang: <none>
2025-06-13 09:06:49,747 [DEBUG][       Thread-249505][   transport.py][1871] : kex follows: False
2025-06-13 09:06:49,747 [DEBUG][       Thread-249505][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 09:06:49,747 [DEBUG][       Thread-249505][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 09:06:49,747 [DEBUG][       Thread-249505][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 09:06:49,748 [DEBUG][       Thread-249505][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 09:06:49,748 [DEBUG][       Thread-249505][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 09:06:49,748 [DEBUG][       Thread-249505][   transport.py][1871] : Compression: none
2025-06-13 09:06:49,748 [DEBUG][       Thread-249505][   transport.py][1871] : === End of kex handshake ===
2025-06-13 09:06:49,806 [DEBUG][       Thread-249505][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 09:06:49,807 [DEBUG][       Thread-249505][   transport.py][1871] : Switch to new keys ...
2025-06-13 09:06:49,807 [DEBUG][       Thread-249505][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 09:06:49,807 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 09:06:49,808 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 09:06:49,863 [DEBUG][       Thread-249505][   transport.py][1871] : userauth is OK
2025-06-13 09:06:49,863 [DEBUG][       Thread-249505][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 09:06:49,863 [DEBUG][       Thread-249505][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 09:06:49,864 [DEBUG][       Thread-249505][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 09:06:49,864 [DEBUG][       Thread-249505][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 09:06:49,882 [ INFO][       Thread-249505][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 09:06:49,882 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 09:06:49,883 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 09:06:50,940 [DEBUG][       Thread-249505][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 09:06:50,941 [DEBUG][       Thread-249505][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 09:06:50,994 [DEBUG][       Thread-249505][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 09:06:50,994 [DEBUG][       Thread-249505][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 09:06:51,003 [DEBUG][       Thread-249505][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 09:06:51,011 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 09:06:51,011 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 09:06:51,020 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 09:06:51,030 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 09:06:51,030 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 09:06:51,030 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 09:06:51,038 [DEBUG][       Thread-249505][   transport.py][1871] : EOF in transport thread
2025-06-13 09:06:53,001 [DEBUG][Thread-249507 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:07:01,041 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 09:07:01,041 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 09:07:01,041 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 09:07:01,044 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 09:07:01,505 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 9, 6, 40), 8.82, 53.36, 0.0, 21.39, 7.46, 0, 0, 0, 2, 0, 0),)
2025-06-13 09:07:01,505 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 09:06:40
2025-06-13 09:07:01,587 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 09:07:01,591 [DEBUG][       Thread-249508][   transport.py][1871] : starting thread (client mode): 0x867fe320
2025-06-13 09:07:01,591 [DEBUG][       Thread-249508][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 09:07:01,611 [DEBUG][       Thread-249508][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 09:07:01,611 [ INFO][       Thread-249508][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 09:07:01,614 [DEBUG][       Thread-249508][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 09:07:01,614 [DEBUG][       Thread-249508][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 09:07:01,614 [DEBUG][       Thread-249508][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 09:07:01,614 [DEBUG][       Thread-249508][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:07:01,614 [DEBUG][       Thread-249508][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:07:01,614 [DEBUG][       Thread-249508][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:07:01,614 [DEBUG][       Thread-249508][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:07:01,614 [DEBUG][       Thread-249508][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 09:07:01,614 [DEBUG][       Thread-249508][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 09:07:01,614 [DEBUG][       Thread-249508][   transport.py][1871] : client lang: <none>
2025-06-13 09:07:01,614 [DEBUG][       Thread-249508][   transport.py][1871] : server lang: <none>
2025-06-13 09:07:01,614 [DEBUG][       Thread-249508][   transport.py][1871] : kex follows: False
2025-06-13 09:07:01,614 [DEBUG][       Thread-249508][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 09:07:01,615 [DEBUG][       Thread-249508][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 09:07:01,615 [DEBUG][       Thread-249508][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 09:07:01,615 [DEBUG][       Thread-249508][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 09:07:01,615 [DEBUG][       Thread-249508][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 09:07:01,615 [DEBUG][       Thread-249508][   transport.py][1871] : Compression: none
2025-06-13 09:07:01,615 [DEBUG][       Thread-249508][   transport.py][1871] : === End of kex handshake ===
2025-06-13 09:07:01,633 [DEBUG][       Thread-249508][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 09:07:01,633 [DEBUG][       Thread-249508][   transport.py][1871] : Switch to new keys ...
2025-06-13 09:07:01,634 [DEBUG][       Thread-249508][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 09:07:01,634 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 09:07:01,634 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 09:07:01,635 [DEBUG][       Thread-249508][   transport.py][1871] : userauth is OK
2025-06-13 09:07:01,649 [ INFO][       Thread-249508][   transport.py][1871] : Authentication (password) successful!
2025-06-13 09:07:01,649 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 09:07:02,031 [DEBUG][Thread-249510 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:07:02,246 [DEBUG][Thread-249511 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:07:03,157 [DEBUG][       Thread-249508][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 09:07:03,158 [DEBUG][       Thread-249508][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 09:07:03,201 [DEBUG][       Thread-249508][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 09:07:03,201 [DEBUG][       Thread-249508][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 09:07:03,204 [DEBUG][       Thread-249508][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 09:07:03,213 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 09:07:03,213 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 09:07:03,215 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 09:07:03,217 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 09:07:03,221 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 09:07:03,222 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 09:07:03,222 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 09:07:03,223 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 09:07:03,223 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.296122 -999.00   +7.20  28.48     59   -0.20 1 1 1 1 1   887    0 8.19 28.58 ----- 28.5 28.5 45.4 33.3 10.6 -27.8 9.5 -28.7 8.3 -27.5 9.3 -26.0
2025-06-13 09:07:03,223 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 09:07:03,223 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 09:07:03,223 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.296122
2025-06-13 09:07:03,224 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 09:07:03,224 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 09:07:03,224 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 09:07:03,224 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 09:07:03,224 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 09:07:03,225 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T09:06:40', tmtdew=8.82, humidity=53.36, cloud=0.0, wind=21.39, temperature=7.46, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T07:06:24.941', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 09:07:03,225 [DEBUG][       Thread-249508][   transport.py][1871] : EOF in transport thread
2025-06-13 09:07:03,308 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 09:07:03,317 [DEBUG][       Thread-249513][   transport.py][1871] : starting thread (client mode): 0x863ca260
2025-06-13 09:07:03,317 [DEBUG][       Thread-249513][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 09:07:03,332 [DEBUG][       Thread-249513][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 09:07:03,332 [ INFO][       Thread-249513][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 09:07:03,339 [DEBUG][       Thread-249513][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 09:07:03,339 [DEBUG][       Thread-249513][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 09:07:03,339 [DEBUG][       Thread-249513][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 09:07:03,339 [DEBUG][       Thread-249513][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:07:03,339 [DEBUG][       Thread-249513][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:07:03,339 [DEBUG][       Thread-249513][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:07:03,339 [DEBUG][       Thread-249513][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:07:03,340 [DEBUG][       Thread-249513][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 09:07:03,340 [DEBUG][       Thread-249513][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 09:07:03,340 [DEBUG][       Thread-249513][   transport.py][1871] : client lang: <none>
2025-06-13 09:07:03,340 [DEBUG][       Thread-249513][   transport.py][1871] : server lang: <none>
2025-06-13 09:07:03,340 [DEBUG][       Thread-249513][   transport.py][1871] : kex follows: False
2025-06-13 09:07:03,340 [DEBUG][       Thread-249513][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 09:07:03,340 [DEBUG][       Thread-249513][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 09:07:03,340 [DEBUG][       Thread-249513][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 09:07:03,340 [DEBUG][       Thread-249513][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 09:07:03,340 [DEBUG][       Thread-249513][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 09:07:03,340 [DEBUG][       Thread-249513][   transport.py][1871] : Compression: none
2025-06-13 09:07:03,340 [DEBUG][       Thread-249513][   transport.py][1871] : === End of kex handshake ===
2025-06-13 09:07:03,398 [DEBUG][       Thread-249513][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 09:07:03,399 [DEBUG][       Thread-249513][   transport.py][1871] : Switch to new keys ...
2025-06-13 09:07:03,399 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 09:07:03,400 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 09:07:03,400 [DEBUG][       Thread-249513][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 09:07:03,459 [DEBUG][       Thread-249513][   transport.py][1871] : userauth is OK
2025-06-13 09:07:03,459 [DEBUG][       Thread-249513][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 09:07:03,460 [DEBUG][       Thread-249513][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 09:07:03,460 [DEBUG][       Thread-249513][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 09:07:03,460 [DEBUG][       Thread-249513][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 09:07:03,478 [ INFO][       Thread-249513][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 09:07:03,479 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 09:07:03,479 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 09:07:04,528 [DEBUG][       Thread-249513][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 09:07:04,528 [DEBUG][       Thread-249513][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 09:07:04,575 [DEBUG][       Thread-249513][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 09:07:04,575 [DEBUG][       Thread-249513][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 09:07:04,584 [DEBUG][       Thread-249513][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 09:07:04,593 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 09:07:04,593 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 09:07:04,601 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 09:07:04,610 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 09:07:04,610 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 09:07:04,611 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 09:07:04,619 [DEBUG][       Thread-249513][   transport.py][1871] : EOF in transport thread
2025-06-13 09:07:11,050 [DEBUG][Thread-249515 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:07:14,621 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 09:07:14,621 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 09:07:14,621 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 09:07:14,623 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 09:07:15,057 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:07:15,057 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:07:15,078 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 9, 7, 11), 8.86, 53.55, 0.0, 22.02, 7.45, 0, 0, 0, 2, 0, 0),)
2025-06-13 09:07:15,078 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 09:07:11
2025-06-13 09:07:15,159 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 09:07:15,164 [DEBUG][       Thread-249516][   transport.py][1871] : starting thread (client mode): 0x867fc100
2025-06-13 09:07:15,164 [DEBUG][       Thread-249516][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 09:07:15,177 [DEBUG][       Thread-249516][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 09:07:15,177 [ INFO][       Thread-249516][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 09:07:15,186 [DEBUG][       Thread-249516][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 09:07:15,186 [DEBUG][       Thread-249516][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 09:07:15,186 [DEBUG][       Thread-249516][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 09:07:15,186 [DEBUG][       Thread-249516][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:07:15,187 [DEBUG][       Thread-249516][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:07:15,187 [DEBUG][       Thread-249516][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:07:15,187 [DEBUG][       Thread-249516][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:07:15,187 [DEBUG][       Thread-249516][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 09:07:15,187 [DEBUG][       Thread-249516][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 09:07:15,187 [DEBUG][       Thread-249516][   transport.py][1871] : client lang: <none>
2025-06-13 09:07:15,187 [DEBUG][       Thread-249516][   transport.py][1871] : server lang: <none>
2025-06-13 09:07:15,187 [DEBUG][       Thread-249516][   transport.py][1871] : kex follows: False
2025-06-13 09:07:15,187 [DEBUG][       Thread-249516][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 09:07:15,187 [DEBUG][       Thread-249516][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 09:07:15,187 [DEBUG][       Thread-249516][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 09:07:15,187 [DEBUG][       Thread-249516][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 09:07:15,187 [DEBUG][       Thread-249516][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 09:07:15,187 [DEBUG][       Thread-249516][   transport.py][1871] : Compression: none
2025-06-13 09:07:15,187 [DEBUG][       Thread-249516][   transport.py][1871] : === End of kex handshake ===
2025-06-13 09:07:15,197 [DEBUG][       Thread-249516][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 09:07:15,197 [DEBUG][       Thread-249516][   transport.py][1871] : Switch to new keys ...
2025-06-13 09:07:15,197 [DEBUG][       Thread-249516][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 09:07:15,198 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 09:07:15,198 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 09:07:15,199 [DEBUG][       Thread-249516][   transport.py][1871] : userauth is OK
2025-06-13 09:07:15,223 [ INFO][       Thread-249516][   transport.py][1871] : Authentication (password) successful!
2025-06-13 09:07:15,223 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 09:07:15,843 [DEBUG][       Thread-249516][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 09:07:15,843 [DEBUG][       Thread-249516][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 09:07:15,885 [DEBUG][       Thread-249516][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 09:07:15,885 [DEBUG][       Thread-249516][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 09:07:15,888 [DEBUG][       Thread-249516][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 09:07:15,894 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 09:07:15,895 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 09:07:15,896 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 09:07:15,898 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 09:07:15,902 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 09:07:15,903 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 09:07:15,903 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 09:07:15,904 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 09:07:15,904 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.296469 -999.00   +7.20  24.89     58   -0.30 1 1 1 1 1   887    0 8.12 25.90 ----- 24.9 24.9 39.8 32.3 10.6 -27.9 9.5 -28.2 8.2 -27.5 9.3 -26.2
2025-06-13 09:07:15,904 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 09:07:15,904 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 09:07:15,904 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.296469
2025-06-13 09:07:15,905 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 09:07:15,905 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 09:07:15,905 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 09:07:15,905 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 09:07:15,905 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 09:07:15,905 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T09:07:11', tmtdew=8.86, humidity=53.55, cloud=0.0, wind=22.02, temperature=7.45, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T07:06:54.922', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 09:07:15,906 [DEBUG][       Thread-249516][   transport.py][1871] : EOF in transport thread
2025-06-13 09:07:15,989 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 09:07:15,999 [DEBUG][       Thread-249519][   transport.py][1871] : starting thread (client mode): 0x863ec910
2025-06-13 09:07:16,000 [DEBUG][       Thread-249519][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 09:07:16,014 [DEBUG][       Thread-249519][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 09:07:16,015 [ INFO][       Thread-249519][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 09:07:16,022 [DEBUG][       Thread-249519][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 09:07:16,022 [DEBUG][       Thread-249519][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 09:07:16,022 [DEBUG][       Thread-249519][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 09:07:16,022 [DEBUG][       Thread-249519][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:07:16,022 [DEBUG][       Thread-249519][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:07:16,022 [DEBUG][       Thread-249519][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:07:16,022 [DEBUG][       Thread-249519][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:07:16,022 [DEBUG][       Thread-249519][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 09:07:16,022 [DEBUG][       Thread-249519][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 09:07:16,022 [DEBUG][       Thread-249519][   transport.py][1871] : client lang: <none>
2025-06-13 09:07:16,023 [DEBUG][       Thread-249519][   transport.py][1871] : server lang: <none>
2025-06-13 09:07:16,023 [DEBUG][       Thread-249519][   transport.py][1871] : kex follows: False
2025-06-13 09:07:16,023 [DEBUG][       Thread-249519][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 09:07:16,023 [DEBUG][       Thread-249519][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 09:07:16,023 [DEBUG][       Thread-249519][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 09:07:16,023 [DEBUG][       Thread-249519][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 09:07:16,023 [DEBUG][       Thread-249519][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 09:07:16,023 [DEBUG][       Thread-249519][   transport.py][1871] : Compression: none
2025-06-13 09:07:16,023 [DEBUG][       Thread-249519][   transport.py][1871] : === End of kex handshake ===
2025-06-13 09:07:16,078 [DEBUG][       Thread-249519][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 09:07:16,079 [DEBUG][       Thread-249519][   transport.py][1871] : Switch to new keys ...
2025-06-13 09:07:16,079 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 09:07:16,080 [DEBUG][       Thread-249519][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 09:07:16,080 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 09:07:16,135 [DEBUG][       Thread-249519][   transport.py][1871] : userauth is OK
2025-06-13 09:07:16,135 [DEBUG][       Thread-249519][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 09:07:16,135 [DEBUG][       Thread-249519][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 09:07:16,135 [DEBUG][       Thread-249519][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 09:07:16,135 [DEBUG][       Thread-249519][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 09:07:16,148 [ INFO][       Thread-249519][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 09:07:16,148 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 09:07:16,148 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 09:07:17,183 [DEBUG][       Thread-249519][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 09:07:17,183 [DEBUG][       Thread-249519][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 09:07:17,232 [DEBUG][       Thread-249519][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 09:07:17,232 [DEBUG][       Thread-249519][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 09:07:17,241 [DEBUG][       Thread-249519][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 09:07:17,251 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 09:07:17,252 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 09:07:17,260 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 09:07:17,272 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 09:07:17,272 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 09:07:17,272 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 09:07:17,280 [DEBUG][       Thread-249519][   transport.py][1871] : EOF in transport thread
2025-06-13 09:07:20,068 [DEBUG][Thread-249521 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:07:27,282 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 09:07:27,283 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 09:07:27,283 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 09:07:27,285 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 09:07:27,744 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 9, 7, 11), 8.86, 53.55, 0.0, 22.02, 7.45, 0, 0, 0, 2, 0, 0),)
2025-06-13 09:07:27,744 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 09:07:11
2025-06-13 09:07:27,826 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 09:07:27,830 [DEBUG][       Thread-249522][   transport.py][1871] : starting thread (client mode): 0x867fc310
2025-06-13 09:07:27,830 [DEBUG][       Thread-249522][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 09:07:27,851 [DEBUG][       Thread-249522][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 09:07:27,851 [ INFO][       Thread-249522][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 09:07:27,854 [DEBUG][       Thread-249522][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 09:07:27,855 [DEBUG][       Thread-249522][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 09:07:27,855 [DEBUG][       Thread-249522][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 09:07:27,855 [DEBUG][       Thread-249522][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:07:27,855 [DEBUG][       Thread-249522][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:07:27,855 [DEBUG][       Thread-249522][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:07:27,855 [DEBUG][       Thread-249522][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:07:27,855 [DEBUG][       Thread-249522][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 09:07:27,855 [DEBUG][       Thread-249522][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 09:07:27,855 [DEBUG][       Thread-249522][   transport.py][1871] : client lang: <none>
2025-06-13 09:07:27,855 [DEBUG][       Thread-249522][   transport.py][1871] : server lang: <none>
2025-06-13 09:07:27,855 [DEBUG][       Thread-249522][   transport.py][1871] : kex follows: False
2025-06-13 09:07:27,855 [DEBUG][       Thread-249522][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 09:07:27,855 [DEBUG][       Thread-249522][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 09:07:27,855 [DEBUG][       Thread-249522][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 09:07:27,856 [DEBUG][       Thread-249522][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 09:07:27,856 [DEBUG][       Thread-249522][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 09:07:27,856 [DEBUG][       Thread-249522][   transport.py][1871] : Compression: none
2025-06-13 09:07:27,856 [DEBUG][       Thread-249522][   transport.py][1871] : === End of kex handshake ===
2025-06-13 09:07:27,875 [DEBUG][       Thread-249522][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 09:07:27,876 [DEBUG][       Thread-249522][   transport.py][1871] : Switch to new keys ...
2025-06-13 09:07:27,876 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 09:07:27,876 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 09:07:27,877 [DEBUG][       Thread-249522][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 09:07:27,877 [DEBUG][       Thread-249522][   transport.py][1871] : userauth is OK
2025-06-13 09:07:27,901 [ INFO][       Thread-249522][   transport.py][1871] : Authentication (password) successful!
2025-06-13 09:07:27,902 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 09:07:28,532 [DEBUG][       Thread-249522][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 09:07:28,532 [DEBUG][       Thread-249522][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 09:07:28,572 [DEBUG][       Thread-249522][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 09:07:28,572 [DEBUG][       Thread-249522][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 09:07:28,575 [DEBUG][       Thread-249522][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 09:07:28,586 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 09:07:28,586 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 09:07:28,587 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 09:07:28,588 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 09:07:28,590 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 09:07:28,591 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 09:07:28,591 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 09:07:28,591 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 09:07:28,591 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.296469 -999.00   +7.20  24.89     58   -0.30 1 1 1 1 1   887    0 8.12 25.90 ----- 24.9 24.9 39.8 32.3 10.6 -27.9 9.5 -28.2 8.2 -27.5 9.3 -26.2
2025-06-13 09:07:28,591 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 09:07:28,591 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 09:07:28,591 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.296469
2025-06-13 09:07:28,591 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 09:07:28,591 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 09:07:28,591 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 09:07:28,591 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 09:07:28,591 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 09:07:28,591 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T09:07:11', tmtdew=8.86, humidity=53.55, cloud=0.0, wind=22.02, temperature=7.45, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T07:06:54.922', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 09:07:28,592 [DEBUG][       Thread-249522][   transport.py][1871] : EOF in transport thread
2025-06-13 09:07:28,663 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 09:07:28,673 [DEBUG][       Thread-249525][   transport.py][1871] : starting thread (client mode): 0x863a6830
2025-06-13 09:07:28,673 [DEBUG][       Thread-249525][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 09:07:28,688 [DEBUG][       Thread-249525][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 09:07:28,688 [ INFO][       Thread-249525][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 09:07:28,695 [DEBUG][       Thread-249525][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 09:07:28,696 [DEBUG][       Thread-249525][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 09:07:28,696 [DEBUG][       Thread-249525][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 09:07:28,696 [DEBUG][       Thread-249525][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:07:28,696 [DEBUG][       Thread-249525][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:07:28,696 [DEBUG][       Thread-249525][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:07:28,696 [DEBUG][       Thread-249525][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:07:28,696 [DEBUG][       Thread-249525][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 09:07:28,696 [DEBUG][       Thread-249525][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 09:07:28,696 [DEBUG][       Thread-249525][   transport.py][1871] : client lang: <none>
2025-06-13 09:07:28,696 [DEBUG][       Thread-249525][   transport.py][1871] : server lang: <none>
2025-06-13 09:07:28,696 [DEBUG][       Thread-249525][   transport.py][1871] : kex follows: False
2025-06-13 09:07:28,696 [DEBUG][       Thread-249525][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 09:07:28,696 [DEBUG][       Thread-249525][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 09:07:28,696 [DEBUG][       Thread-249525][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 09:07:28,696 [DEBUG][       Thread-249525][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 09:07:28,696 [DEBUG][       Thread-249525][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 09:07:28,696 [DEBUG][       Thread-249525][   transport.py][1871] : Compression: none
2025-06-13 09:07:28,696 [DEBUG][       Thread-249525][   transport.py][1871] : === End of kex handshake ===
2025-06-13 09:07:28,756 [DEBUG][       Thread-249525][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 09:07:28,756 [DEBUG][       Thread-249525][   transport.py][1871] : Switch to new keys ...
2025-06-13 09:07:28,757 [DEBUG][       Thread-249525][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 09:07:28,757 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 09:07:28,758 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 09:07:28,815 [DEBUG][       Thread-249525][   transport.py][1871] : userauth is OK
2025-06-13 09:07:28,815 [DEBUG][       Thread-249525][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 09:07:28,815 [DEBUG][       Thread-249525][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 09:07:28,815 [DEBUG][       Thread-249525][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 09:07:28,815 [DEBUG][       Thread-249525][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 09:07:28,834 [ INFO][       Thread-249525][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 09:07:28,834 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 09:07:28,834 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 09:07:29,098 [DEBUG][Thread-249527 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:07:29,872 [DEBUG][       Thread-249525][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 09:07:29,873 [DEBUG][       Thread-249525][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 09:07:29,923 [DEBUG][       Thread-249525][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 09:07:29,924 [DEBUG][       Thread-249525][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 09:07:29,932 [DEBUG][       Thread-249525][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 09:07:29,940 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 09:07:29,940 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 09:07:29,950 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 09:07:29,958 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 09:07:29,958 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 09:07:29,958 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 09:07:29,965 [DEBUG][       Thread-249525][   transport.py][1871] : EOF in transport thread
2025-06-13 09:07:38,115 [DEBUG][Thread-249528 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:07:39,968 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 09:07:39,968 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 09:07:39,968 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 09:07:39,970 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 09:07:40,429 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 9, 7, 11), 8.86, 53.55, 0.0, 22.02, 7.45, 0, 0, 0, 2, 0, 0),)
2025-06-13 09:07:40,430 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 09:07:11
2025-06-13 09:07:40,510 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 09:07:40,516 [DEBUG][       Thread-249529][   transport.py][1871] : starting thread (client mode): 0x867fc400
2025-06-13 09:07:40,516 [DEBUG][       Thread-249529][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 09:07:40,536 [DEBUG][       Thread-249529][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 09:07:40,536 [ INFO][       Thread-249529][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 09:07:40,540 [DEBUG][       Thread-249529][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 09:07:40,540 [DEBUG][       Thread-249529][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 09:07:40,540 [DEBUG][       Thread-249529][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 09:07:40,540 [DEBUG][       Thread-249529][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:07:40,540 [DEBUG][       Thread-249529][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:07:40,540 [DEBUG][       Thread-249529][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:07:40,540 [DEBUG][       Thread-249529][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:07:40,540 [DEBUG][       Thread-249529][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 09:07:40,540 [DEBUG][       Thread-249529][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 09:07:40,540 [DEBUG][       Thread-249529][   transport.py][1871] : client lang: <none>
2025-06-13 09:07:40,540 [DEBUG][       Thread-249529][   transport.py][1871] : server lang: <none>
2025-06-13 09:07:40,540 [DEBUG][       Thread-249529][   transport.py][1871] : kex follows: False
2025-06-13 09:07:40,540 [DEBUG][       Thread-249529][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 09:07:40,540 [DEBUG][       Thread-249529][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 09:07:40,540 [DEBUG][       Thread-249529][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 09:07:40,540 [DEBUG][       Thread-249529][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 09:07:40,540 [DEBUG][       Thread-249529][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 09:07:40,541 [DEBUG][       Thread-249529][   transport.py][1871] : Compression: none
2025-06-13 09:07:40,541 [DEBUG][       Thread-249529][   transport.py][1871] : === End of kex handshake ===
2025-06-13 09:07:40,556 [DEBUG][       Thread-249529][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 09:07:40,556 [DEBUG][       Thread-249529][   transport.py][1871] : Switch to new keys ...
2025-06-13 09:07:40,556 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 09:07:40,557 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 09:07:40,557 [DEBUG][       Thread-249529][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 09:07:40,557 [DEBUG][       Thread-249529][   transport.py][1871] : userauth is OK
2025-06-13 09:07:40,583 [ INFO][       Thread-249529][   transport.py][1871] : Authentication (password) successful!
2025-06-13 09:07:40,583 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 09:07:41,204 [DEBUG][       Thread-249529][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 09:07:41,205 [DEBUG][       Thread-249529][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 09:07:41,249 [DEBUG][       Thread-249529][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 09:07:41,249 [DEBUG][       Thread-249529][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 09:07:41,252 [DEBUG][       Thread-249529][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 09:07:41,263 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 09:07:41,263 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 09:07:41,264 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 09:07:41,265 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 09:07:41,270 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 09:07:41,272 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 09:07:41,272 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 09:07:41,273 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 09:07:41,273 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.296469 -999.00   +7.20  24.89     58   -0.30 1 1 1 1 1   887    0 8.12 25.90 ----- 24.9 24.9 39.8 32.3 10.6 -27.9 9.5 -28.2 8.2 -27.5 9.3 -26.2
2025-06-13 09:07:41,273 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 09:07:41,273 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 09:07:41,273 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.296469
2025-06-13 09:07:41,273 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 09:07:41,274 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 09:07:41,274 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 09:07:41,274 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 09:07:41,274 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 09:07:41,274 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T09:07:11', tmtdew=8.86, humidity=53.55, cloud=0.0, wind=22.02, temperature=7.45, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T07:06:54.922', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 09:07:41,274 [DEBUG][       Thread-249529][   transport.py][1871] : EOF in transport thread
2025-06-13 09:07:41,359 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 09:07:44,488 [DEBUG][Thread-249532 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:07:45,542 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:07:45,542 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:07:47,134 [DEBUG][Thread-249533 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:07:56,155 [DEBUG][Thread-249534 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:08:02,312 [DEBUG][Thread-249535 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:08:05,173 [DEBUG][Thread-249536 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:08:14,191 [DEBUG][Thread-249537 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:08:15,195 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:08:15,195 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:08:23,209 [DEBUG][Thread-249538 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:08:32,228 [DEBUG][Thread-249539 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:08:41,247 [DEBUG][Thread-249540 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:08:45,613 [DEBUG][Thread-249541 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:08:46,681 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:08:46,682 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:08:50,263 [DEBUG][Thread-249542 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:08:59,282 [DEBUG][Thread-249543 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:09:02,366 [DEBUG][Thread-249544 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:09:08,301 [DEBUG][Thread-249545 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:09:15,334 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:09:15,335 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:09:17,320 [DEBUG][Thread-249546 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:09:26,336 [DEBUG][Thread-249547 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:09:35,353 [DEBUG][Thread-249548 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:09:44,375 [DEBUG][Thread-249549 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:09:46,738 [DEBUG][Thread-249550 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:09:47,797 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:09:47,799 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:09:50,740 [WARNING][ poll_weather_worker][      driver.py][ 286] : Unable to open ssh connection for writing weather state to io.saao.ac.za: [Errno 110] Connection timed out
2025-06-13 09:09:53,393 [DEBUG][Thread-249551 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:10:00,750 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 09:10:00,751 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 09:10:00,751 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 09:10:00,753 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 09:10:01,230 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 9, 9, 50), 8.97, 53.05, 0.0, 24.67, 7.57, 0, 0, 0, 2, 0, 0),)
2025-06-13 09:10:01,230 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 09:09:50
2025-06-13 09:10:01,312 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 09:10:01,318 [DEBUG][       Thread-249552][   transport.py][1871] : starting thread (client mode): 0x8636b1c0
2025-06-13 09:10:01,318 [DEBUG][       Thread-249552][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 09:10:01,335 [DEBUG][       Thread-249552][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 09:10:01,335 [ INFO][       Thread-249552][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 09:10:01,339 [DEBUG][       Thread-249552][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 09:10:01,339 [DEBUG][       Thread-249552][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 09:10:01,339 [DEBUG][       Thread-249552][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 09:10:01,339 [DEBUG][       Thread-249552][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:10:01,339 [DEBUG][       Thread-249552][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:10:01,339 [DEBUG][       Thread-249552][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:10:01,339 [DEBUG][       Thread-249552][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:10:01,339 [DEBUG][       Thread-249552][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 09:10:01,339 [DEBUG][       Thread-249552][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 09:10:01,339 [DEBUG][       Thread-249552][   transport.py][1871] : client lang: <none>
2025-06-13 09:10:01,339 [DEBUG][       Thread-249552][   transport.py][1871] : server lang: <none>
2025-06-13 09:10:01,339 [DEBUG][       Thread-249552][   transport.py][1871] : kex follows: False
2025-06-13 09:10:01,339 [DEBUG][       Thread-249552][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 09:10:01,339 [DEBUG][       Thread-249552][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 09:10:01,339 [DEBUG][       Thread-249552][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 09:10:01,339 [DEBUG][       Thread-249552][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 09:10:01,339 [DEBUG][       Thread-249552][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 09:10:01,339 [DEBUG][       Thread-249552][   transport.py][1871] : Compression: none
2025-06-13 09:10:01,339 [DEBUG][       Thread-249552][   transport.py][1871] : === End of kex handshake ===
2025-06-13 09:10:01,357 [DEBUG][       Thread-249552][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 09:10:01,357 [DEBUG][       Thread-249552][   transport.py][1871] : Switch to new keys ...
2025-06-13 09:10:01,358 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 09:10:01,358 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 09:10:01,358 [DEBUG][       Thread-249552][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 09:10:01,360 [DEBUG][       Thread-249552][   transport.py][1871] : userauth is OK
2025-06-13 09:10:01,373 [ INFO][       Thread-249552][   transport.py][1871] : Authentication (password) successful!
2025-06-13 09:10:01,374 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 09:10:02,145 [DEBUG][       Thread-249552][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 09:10:02,145 [DEBUG][       Thread-249552][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 09:10:02,189 [DEBUG][       Thread-249552][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 09:10:02,189 [DEBUG][       Thread-249552][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 09:10:02,191 [DEBUG][       Thread-249552][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 09:10:02,195 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 09:10:02,196 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 09:10:02,197 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 09:10:02,198 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 09:10:02,202 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 09:10:02,203 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 09:10:02,204 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 09:10:02,204 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 09:10:02,204 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.298205 -999.00   +7.40  24.25     57   -0.30 1 1 1 1 1   887    0 8.24 28.00 ----- 24.2 24.2 49.4 33.2 10.6 -27.5 9.5 -28.0 8.3 -27.2 9.4 -26.0
2025-06-13 09:10:02,204 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 09:10:02,204 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 09:10:02,204 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.298205
2025-06-13 09:10:02,205 [DEBUG][       Thread-249552][   transport.py][1871] : EOF in transport thread
2025-06-13 09:10:02,205 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 09:10:02,206 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 09:10:02,206 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 09:10:02,206 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 09:10:02,206 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 09:10:02,207 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T09:09:50', tmtdew=8.97, humidity=53.05, cloud=0.0, wind=24.67, temperature=7.57, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T07:09:24.912', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 09:10:02,290 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 09:10:02,302 [DEBUG][       Thread-249555][   transport.py][1871] : starting thread (client mode): 0x867fc4f0
2025-06-13 09:10:02,302 [DEBUG][       Thread-249555][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 09:10:02,317 [DEBUG][       Thread-249555][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 09:10:02,317 [ INFO][       Thread-249555][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 09:10:02,326 [DEBUG][       Thread-249555][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 09:10:02,326 [DEBUG][       Thread-249555][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 09:10:02,326 [DEBUG][       Thread-249555][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 09:10:02,326 [DEBUG][       Thread-249555][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:10:02,326 [DEBUG][       Thread-249555][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:10:02,326 [DEBUG][       Thread-249555][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:10:02,326 [DEBUG][       Thread-249555][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:10:02,326 [DEBUG][       Thread-249555][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 09:10:02,326 [DEBUG][       Thread-249555][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 09:10:02,326 [DEBUG][       Thread-249555][   transport.py][1871] : client lang: <none>
2025-06-13 09:10:02,326 [DEBUG][       Thread-249555][   transport.py][1871] : server lang: <none>
2025-06-13 09:10:02,326 [DEBUG][       Thread-249555][   transport.py][1871] : kex follows: False
2025-06-13 09:10:02,326 [DEBUG][       Thread-249555][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 09:10:02,326 [DEBUG][       Thread-249555][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 09:10:02,326 [DEBUG][       Thread-249555][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 09:10:02,327 [DEBUG][       Thread-249555][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 09:10:02,327 [DEBUG][       Thread-249555][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 09:10:02,327 [DEBUG][       Thread-249555][   transport.py][1871] : Compression: none
2025-06-13 09:10:02,327 [DEBUG][       Thread-249555][   transport.py][1871] : === End of kex handshake ===
2025-06-13 09:10:02,387 [DEBUG][       Thread-249555][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 09:10:02,387 [DEBUG][       Thread-249555][   transport.py][1871] : Switch to new keys ...
2025-06-13 09:10:02,388 [DEBUG][       Thread-249555][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 09:10:02,388 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 09:10:02,388 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 09:10:02,398 [DEBUG][Thread-249557 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:10:02,411 [DEBUG][Thread-249558 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:10:02,453 [DEBUG][       Thread-249555][   transport.py][1871] : userauth is OK
2025-06-13 09:10:02,453 [DEBUG][       Thread-249555][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 09:10:02,453 [DEBUG][       Thread-249555][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 09:10:02,453 [DEBUG][       Thread-249555][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 09:10:02,453 [DEBUG][       Thread-249555][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 09:10:02,472 [ INFO][       Thread-249555][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 09:10:02,472 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 09:10:02,472 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 09:10:03,484 [DEBUG][       Thread-249555][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 09:10:03,484 [DEBUG][       Thread-249555][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 09:10:03,545 [DEBUG][       Thread-249555][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 09:10:03,545 [DEBUG][       Thread-249555][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 09:10:03,557 [DEBUG][       Thread-249555][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 09:10:03,565 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 09:10:03,565 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 09:10:03,573 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 09:10:03,581 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 09:10:03,581 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 09:10:03,581 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 09:10:03,592 [DEBUG][       Thread-249555][   transport.py][1871] : EOF in transport thread
2025-06-13 09:10:11,435 [DEBUG][Thread-249559 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:10:13,588 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 09:10:13,588 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 09:10:13,588 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 09:10:13,589 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 09:10:14,057 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 9, 9, 50), 8.97, 53.05, 0.0, 24.67, 7.57, 0, 0, 0, 2, 0, 0),)
2025-06-13 09:10:14,057 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 09:09:50
2025-06-13 09:10:14,139 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 09:10:14,142 [DEBUG][       Thread-249560][   transport.py][1871] : starting thread (client mode): 0x863a5c00
2025-06-13 09:10:14,142 [DEBUG][       Thread-249560][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 09:10:14,162 [DEBUG][       Thread-249560][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 09:10:14,162 [ INFO][       Thread-249560][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 09:10:14,165 [DEBUG][       Thread-249560][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 09:10:14,165 [DEBUG][       Thread-249560][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 09:10:14,165 [DEBUG][       Thread-249560][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 09:10:14,165 [DEBUG][       Thread-249560][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:10:14,165 [DEBUG][       Thread-249560][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:10:14,165 [DEBUG][       Thread-249560][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:10:14,165 [DEBUG][       Thread-249560][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:10:14,165 [DEBUG][       Thread-249560][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 09:10:14,165 [DEBUG][       Thread-249560][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 09:10:14,165 [DEBUG][       Thread-249560][   transport.py][1871] : client lang: <none>
2025-06-13 09:10:14,165 [DEBUG][       Thread-249560][   transport.py][1871] : server lang: <none>
2025-06-13 09:10:14,165 [DEBUG][       Thread-249560][   transport.py][1871] : kex follows: False
2025-06-13 09:10:14,165 [DEBUG][       Thread-249560][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 09:10:14,165 [DEBUG][       Thread-249560][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 09:10:14,165 [DEBUG][       Thread-249560][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 09:10:14,165 [DEBUG][       Thread-249560][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 09:10:14,166 [DEBUG][       Thread-249560][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 09:10:14,166 [DEBUG][       Thread-249560][   transport.py][1871] : Compression: none
2025-06-13 09:10:14,166 [DEBUG][       Thread-249560][   transport.py][1871] : === End of kex handshake ===
2025-06-13 09:10:14,176 [DEBUG][       Thread-249560][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 09:10:14,177 [DEBUG][       Thread-249560][   transport.py][1871] : Switch to new keys ...
2025-06-13 09:10:14,177 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 09:10:14,177 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 09:10:14,178 [DEBUG][       Thread-249560][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 09:10:14,178 [DEBUG][       Thread-249560][   transport.py][1871] : userauth is OK
2025-06-13 09:10:14,191 [ INFO][       Thread-249560][   transport.py][1871] : Authentication (password) successful!
2025-06-13 09:10:14,191 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 09:10:14,841 [DEBUG][       Thread-249560][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 09:10:14,841 [DEBUG][       Thread-249560][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 09:10:14,885 [DEBUG][       Thread-249560][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 09:10:14,885 [DEBUG][       Thread-249560][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 09:10:14,888 [DEBUG][       Thread-249560][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 09:10:14,898 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 09:10:14,898 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 09:10:14,903 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 09:10:14,904 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 09:10:14,909 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 09:10:14,911 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 09:10:14,911 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 09:10:14,912 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 09:10:14,912 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.298553 -999.00   +7.40  25.68     57   -0.40 1 1 1 1 1   887    0 8.25 27.67 ----- 25.7 25.7 44.2 36.3 10.7 -27.8 9.6 -28.3 8.3 -27.4 9.4 -26.0
2025-06-13 09:10:14,912 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 09:10:14,912 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 09:10:14,912 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.298553
2025-06-13 09:10:14,913 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 09:10:14,913 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 09:10:14,913 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 09:10:14,913 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 09:10:14,913 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 09:10:14,913 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T09:09:50', tmtdew=8.97, humidity=53.05, cloud=0.0, wind=24.67, temperature=7.57, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T07:09:54.979', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 09:10:14,914 [DEBUG][       Thread-249560][   transport.py][1871] : EOF in transport thread
2025-06-13 09:10:14,997 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 09:10:15,480 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:10:15,481 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:10:20,453 [DEBUG][Thread-249563 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:10:29,471 [DEBUG][Thread-249564 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:10:38,489 [DEBUG][Thread-249565 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:10:47,506 [DEBUG][Thread-249566 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:10:47,870 [DEBUG][Thread-249567 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:10:48,945 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:10:48,947 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:10:56,523 [DEBUG][Thread-249568 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:11:02,447 [DEBUG][Thread-249569 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:11:05,542 [DEBUG][Thread-249570 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:11:14,561 [DEBUG][Thread-249571 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:11:15,620 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:11:15,621 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:11:23,578 [DEBUG][Thread-249572 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:11:32,597 [DEBUG][Thread-249573 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:11:41,616 [DEBUG][Thread-249574 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:11:48,975 [DEBUG][Thread-249575 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:11:50,024 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:11:50,024 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:11:50,635 [DEBUG][Thread-249576 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:11:59,651 [DEBUG][Thread-249577 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:12:02,506 [DEBUG][Thread-249578 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:12:08,667 [DEBUG][Thread-249579 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:12:15,757 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:12:15,758 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:12:17,684 [DEBUG][Thread-249580 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:12:24,340 [WARNING][ poll_weather_worker][      driver.py][ 286] : Unable to open ssh connection for writing weather state to io.saao.ac.za: [Errno 110] Connection timed out
2025-06-13 09:12:26,704 [DEBUG][Thread-249581 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:12:34,344 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 09:12:34,344 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 09:12:34,344 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 09:12:34,345 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 09:12:34,852 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 9, 12, 28), 8.98, 53.14, 0.0, 25.99, 7.59, 0, 0, 0, 2, 0, 0),)
2025-06-13 09:12:34,852 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 09:12:28
2025-06-13 09:12:34,939 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 09:12:34,945 [DEBUG][       Thread-249582][   transport.py][1871] : starting thread (client mode): 0x8636b3a0
2025-06-13 09:12:34,946 [DEBUG][       Thread-249582][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 09:12:34,965 [DEBUG][       Thread-249582][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 09:12:34,965 [ INFO][       Thread-249582][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 09:12:34,968 [DEBUG][       Thread-249582][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 09:12:34,968 [DEBUG][       Thread-249582][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 09:12:34,968 [DEBUG][       Thread-249582][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 09:12:34,968 [DEBUG][       Thread-249582][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:12:34,968 [DEBUG][       Thread-249582][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:12:34,968 [DEBUG][       Thread-249582][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:12:34,968 [DEBUG][       Thread-249582][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:12:34,968 [DEBUG][       Thread-249582][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 09:12:34,968 [DEBUG][       Thread-249582][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 09:12:34,968 [DEBUG][       Thread-249582][   transport.py][1871] : client lang: <none>
2025-06-13 09:12:34,968 [DEBUG][       Thread-249582][   transport.py][1871] : server lang: <none>
2025-06-13 09:12:34,968 [DEBUG][       Thread-249582][   transport.py][1871] : kex follows: False
2025-06-13 09:12:34,968 [DEBUG][       Thread-249582][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 09:12:34,968 [DEBUG][       Thread-249582][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 09:12:34,968 [DEBUG][       Thread-249582][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 09:12:34,968 [DEBUG][       Thread-249582][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 09:12:34,968 [DEBUG][       Thread-249582][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 09:12:34,968 [DEBUG][       Thread-249582][   transport.py][1871] : Compression: none
2025-06-13 09:12:34,968 [DEBUG][       Thread-249582][   transport.py][1871] : === End of kex handshake ===
2025-06-13 09:12:34,980 [DEBUG][       Thread-249582][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 09:12:34,980 [DEBUG][       Thread-249582][   transport.py][1871] : Switch to new keys ...
2025-06-13 09:12:34,981 [DEBUG][       Thread-249582][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 09:12:34,981 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 09:12:34,981 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 09:12:34,981 [DEBUG][       Thread-249582][   transport.py][1871] : userauth is OK
2025-06-13 09:12:34,994 [ INFO][       Thread-249582][   transport.py][1871] : Authentication (password) successful!
2025-06-13 09:12:34,994 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 09:12:35,591 [DEBUG][       Thread-249582][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 09:12:35,591 [DEBUG][       Thread-249582][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 09:12:35,636 [DEBUG][       Thread-249582][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 09:12:35,636 [DEBUG][       Thread-249582][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 09:12:35,639 [DEBUG][       Thread-249582][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 09:12:35,646 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 09:12:35,647 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 09:12:35,647 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 09:12:35,648 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 09:12:35,650 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 09:12:35,651 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 09:12:35,651 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 09:12:35,651 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 09:12:35,651 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.300289 -999.00   +7.50  24.51     57   -0.30 1 1 1 1 1   887    0 8.34 28.69 ----- 24.5 24.5 45.6 33.0 10.7 -27.5 9.7 -28.4 8.4 -27.8 9.5 -26.1
2025-06-13 09:12:35,651 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 09:12:35,651 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 09:12:35,651 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.300289
2025-06-13 09:12:35,651 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 09:12:35,652 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 09:12:35,652 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 09:12:35,652 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 09:12:35,652 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 09:12:35,652 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T09:12:28', tmtdew=8.98, humidity=53.14, cloud=0.0, wind=25.99, temperature=7.59, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T07:12:24.970', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 09:12:35,652 [DEBUG][       Thread-249582][   transport.py][1871] : EOF in transport thread
2025-06-13 09:12:35,721 [DEBUG][Thread-249585 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:12:35,726 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 09:12:35,737 [DEBUG][       Thread-249586][   transport.py][1871] : starting thread (client mode): 0x863c8ac0
2025-06-13 09:12:35,737 [DEBUG][       Thread-249586][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 09:12:35,751 [DEBUG][       Thread-249586][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 09:12:35,751 [ INFO][       Thread-249586][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 09:12:35,759 [DEBUG][       Thread-249586][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 09:12:35,759 [DEBUG][       Thread-249586][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 09:12:35,759 [DEBUG][       Thread-249586][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 09:12:35,759 [DEBUG][       Thread-249586][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:12:35,759 [DEBUG][       Thread-249586][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:12:35,759 [DEBUG][       Thread-249586][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:12:35,759 [DEBUG][       Thread-249586][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:12:35,759 [DEBUG][       Thread-249586][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 09:12:35,759 [DEBUG][       Thread-249586][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 09:12:35,759 [DEBUG][       Thread-249586][   transport.py][1871] : client lang: <none>
2025-06-13 09:12:35,759 [DEBUG][       Thread-249586][   transport.py][1871] : server lang: <none>
2025-06-13 09:12:35,759 [DEBUG][       Thread-249586][   transport.py][1871] : kex follows: False
2025-06-13 09:12:35,759 [DEBUG][       Thread-249586][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 09:12:35,759 [DEBUG][       Thread-249586][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 09:12:35,759 [DEBUG][       Thread-249586][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 09:12:35,759 [DEBUG][       Thread-249586][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 09:12:35,759 [DEBUG][       Thread-249586][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 09:12:35,759 [DEBUG][       Thread-249586][   transport.py][1871] : Compression: none
2025-06-13 09:12:35,759 [DEBUG][       Thread-249586][   transport.py][1871] : === End of kex handshake ===
2025-06-13 09:12:35,813 [DEBUG][       Thread-249586][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 09:12:35,813 [DEBUG][       Thread-249586][   transport.py][1871] : Switch to new keys ...
2025-06-13 09:12:35,813 [DEBUG][       Thread-249586][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 09:12:35,813 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 09:12:35,813 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 09:12:35,874 [DEBUG][       Thread-249586][   transport.py][1871] : userauth is OK
2025-06-13 09:12:35,874 [DEBUG][       Thread-249586][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 09:12:35,874 [DEBUG][       Thread-249586][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 09:12:35,874 [DEBUG][       Thread-249586][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 09:12:35,874 [DEBUG][       Thread-249586][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 09:12:35,888 [ INFO][       Thread-249586][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 09:12:35,888 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 09:12:35,888 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 09:12:36,910 [DEBUG][       Thread-249586][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 09:12:36,910 [DEBUG][       Thread-249586][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 09:12:36,959 [DEBUG][       Thread-249586][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 09:12:36,959 [DEBUG][       Thread-249586][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 09:12:36,968 [DEBUG][       Thread-249586][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 09:12:36,976 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 09:12:36,976 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 09:12:36,987 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 09:12:36,999 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 09:12:36,999 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 09:12:37,000 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 09:12:37,009 [DEBUG][       Thread-249586][   transport.py][1871] : EOF in transport thread
2025-06-13 09:12:44,747 [DEBUG][Thread-249588 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:12:47,007 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 09:12:47,007 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 09:12:47,007 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 09:12:47,010 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 09:12:47,491 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 9, 12, 28), 8.98, 53.14, 0.0, 25.99, 7.59, 0, 0, 0, 2, 0, 0),)
2025-06-13 09:12:47,491 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 09:12:28
2025-06-13 09:12:47,573 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 09:12:47,580 [DEBUG][       Thread-249589][   transport.py][1871] : starting thread (client mode): 0x863ef6d0
2025-06-13 09:12:47,580 [DEBUG][       Thread-249589][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 09:12:47,601 [DEBUG][       Thread-249589][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 09:12:47,601 [ INFO][       Thread-249589][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 09:12:47,604 [DEBUG][       Thread-249589][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 09:12:47,605 [DEBUG][       Thread-249589][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 09:12:47,605 [DEBUG][       Thread-249589][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 09:12:47,605 [DEBUG][       Thread-249589][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:12:47,605 [DEBUG][       Thread-249589][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:12:47,605 [DEBUG][       Thread-249589][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:12:47,605 [DEBUG][       Thread-249589][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:12:47,605 [DEBUG][       Thread-249589][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 09:12:47,605 [DEBUG][       Thread-249589][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 09:12:47,605 [DEBUG][       Thread-249589][   transport.py][1871] : client lang: <none>
2025-06-13 09:12:47,605 [DEBUG][       Thread-249589][   transport.py][1871] : server lang: <none>
2025-06-13 09:12:47,605 [DEBUG][       Thread-249589][   transport.py][1871] : kex follows: False
2025-06-13 09:12:47,605 [DEBUG][       Thread-249589][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 09:12:47,605 [DEBUG][       Thread-249589][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 09:12:47,605 [DEBUG][       Thread-249589][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 09:12:47,605 [DEBUG][       Thread-249589][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 09:12:47,605 [DEBUG][       Thread-249589][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 09:12:47,605 [DEBUG][       Thread-249589][   transport.py][1871] : Compression: none
2025-06-13 09:12:47,605 [DEBUG][       Thread-249589][   transport.py][1871] : === End of kex handshake ===
2025-06-13 09:12:47,622 [DEBUG][       Thread-249589][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 09:12:47,622 [DEBUG][       Thread-249589][   transport.py][1871] : Switch to new keys ...
2025-06-13 09:12:47,623 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 09:12:47,623 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 09:12:47,624 [DEBUG][       Thread-249589][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 09:12:47,625 [DEBUG][       Thread-249589][   transport.py][1871] : userauth is OK
2025-06-13 09:12:47,649 [ INFO][       Thread-249589][   transport.py][1871] : Authentication (password) successful!
2025-06-13 09:12:47,650 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 09:12:48,444 [DEBUG][       Thread-249589][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 09:12:48,444 [DEBUG][       Thread-249589][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 09:12:48,485 [DEBUG][       Thread-249589][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 09:12:48,485 [DEBUG][       Thread-249589][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 09:12:48,488 [DEBUG][       Thread-249589][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 09:12:48,502 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 09:12:48,502 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 09:12:48,504 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 09:12:48,505 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 09:12:48,511 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 09:12:48,513 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 09:12:48,513 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 09:12:48,513 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 09:12:48,514 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.300289 -999.00   +7.50  24.51     57   -0.30 1 1 1 1 1   887    0 8.34 28.69 ----- 24.5 24.5 45.6 33.0 10.7 -27.5 9.7 -28.4 8.4 -27.8 9.5 -26.1
2025-06-13 09:12:48,514 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 09:12:48,514 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 09:12:48,514 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.300289
2025-06-13 09:12:48,514 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 09:12:48,515 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 09:12:48,515 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 09:12:48,515 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 09:12:48,515 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 09:12:48,515 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T09:12:28', tmtdew=8.98, humidity=53.14, cloud=0.0, wind=25.99, temperature=7.59, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T07:12:24.970', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 09:12:48,515 [DEBUG][       Thread-249589][   transport.py][1871] : EOF in transport thread
2025-06-13 09:12:48,592 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 09:12:48,605 [DEBUG][       Thread-249592][   transport.py][1871] : starting thread (client mode): 0x863cae90
2025-06-13 09:12:48,605 [DEBUG][       Thread-249592][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 09:12:48,619 [DEBUG][       Thread-249592][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 09:12:48,619 [ INFO][       Thread-249592][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 09:12:48,626 [DEBUG][       Thread-249592][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 09:12:48,626 [DEBUG][       Thread-249592][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 09:12:48,626 [DEBUG][       Thread-249592][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 09:12:48,626 [DEBUG][       Thread-249592][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:12:48,626 [DEBUG][       Thread-249592][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:12:48,626 [DEBUG][       Thread-249592][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:12:48,627 [DEBUG][       Thread-249592][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:12:48,627 [DEBUG][       Thread-249592][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 09:12:48,627 [DEBUG][       Thread-249592][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 09:12:48,627 [DEBUG][       Thread-249592][   transport.py][1871] : client lang: <none>
2025-06-13 09:12:48,627 [DEBUG][       Thread-249592][   transport.py][1871] : server lang: <none>
2025-06-13 09:12:48,627 [DEBUG][       Thread-249592][   transport.py][1871] : kex follows: False
2025-06-13 09:12:48,627 [DEBUG][       Thread-249592][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 09:12:48,627 [DEBUG][       Thread-249592][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 09:12:48,627 [DEBUG][       Thread-249592][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 09:12:48,627 [DEBUG][       Thread-249592][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 09:12:48,627 [DEBUG][       Thread-249592][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 09:12:48,627 [DEBUG][       Thread-249592][   transport.py][1871] : Compression: none
2025-06-13 09:12:48,627 [DEBUG][       Thread-249592][   transport.py][1871] : === End of kex handshake ===
2025-06-13 09:12:48,683 [DEBUG][       Thread-249592][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 09:12:48,684 [DEBUG][       Thread-249592][   transport.py][1871] : Switch to new keys ...
2025-06-13 09:12:48,684 [DEBUG][       Thread-249592][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 09:12:48,685 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 09:12:48,685 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 09:12:48,739 [DEBUG][       Thread-249592][   transport.py][1871] : userauth is OK
2025-06-13 09:12:48,739 [DEBUG][       Thread-249592][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 09:12:48,739 [DEBUG][       Thread-249592][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 09:12:48,739 [DEBUG][       Thread-249592][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 09:12:48,739 [DEBUG][       Thread-249592][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 09:12:48,758 [ INFO][       Thread-249592][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 09:12:48,758 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 09:12:48,758 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 09:12:49,779 [DEBUG][       Thread-249592][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 09:12:49,779 [DEBUG][       Thread-249592][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 09:12:49,827 [DEBUG][       Thread-249592][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 09:12:49,828 [DEBUG][       Thread-249592][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 09:12:49,836 [DEBUG][       Thread-249592][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 09:12:49,845 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 09:12:49,845 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 09:12:49,853 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 09:12:49,862 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 09:12:49,862 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 09:12:49,863 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 09:12:49,871 [DEBUG][       Thread-249592][   transport.py][1871] : EOF in transport thread
2025-06-13 09:12:50,072 [DEBUG][Thread-249594 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:12:51,148 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:12:51,149 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:12:53,766 [DEBUG][Thread-249595 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:12:59,872 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 09:12:59,872 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 09:12:59,872 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 09:12:59,875 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 09:13:00,360 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 9, 12, 28), 8.98, 53.14, 0.0, 25.99, 7.59, 0, 0, 0, 2, 0, 0),)
2025-06-13 09:13:00,360 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 09:12:28
2025-06-13 09:13:00,442 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 09:13:00,446 [DEBUG][       Thread-249596][   transport.py][1871] : starting thread (client mode): 0x867fefb0
2025-06-13 09:13:00,446 [DEBUG][       Thread-249596][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 09:13:00,467 [DEBUG][       Thread-249596][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 09:13:00,467 [ INFO][       Thread-249596][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 09:13:00,470 [DEBUG][       Thread-249596][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 09:13:00,470 [DEBUG][       Thread-249596][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 09:13:00,470 [DEBUG][       Thread-249596][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 09:13:00,470 [DEBUG][       Thread-249596][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:13:00,470 [DEBUG][       Thread-249596][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:13:00,470 [DEBUG][       Thread-249596][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:13:00,470 [DEBUG][       Thread-249596][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:13:00,470 [DEBUG][       Thread-249596][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 09:13:00,470 [DEBUG][       Thread-249596][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 09:13:00,470 [DEBUG][       Thread-249596][   transport.py][1871] : client lang: <none>
2025-06-13 09:13:00,470 [DEBUG][       Thread-249596][   transport.py][1871] : server lang: <none>
2025-06-13 09:13:00,470 [DEBUG][       Thread-249596][   transport.py][1871] : kex follows: False
2025-06-13 09:13:00,470 [DEBUG][       Thread-249596][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 09:13:00,471 [DEBUG][       Thread-249596][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 09:13:00,471 [DEBUG][       Thread-249596][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 09:13:00,471 [DEBUG][       Thread-249596][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 09:13:00,471 [DEBUG][       Thread-249596][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 09:13:00,471 [DEBUG][       Thread-249596][   transport.py][1871] : Compression: none
2025-06-13 09:13:00,471 [DEBUG][       Thread-249596][   transport.py][1871] : === End of kex handshake ===
2025-06-13 09:13:00,487 [DEBUG][       Thread-249596][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 09:13:00,488 [DEBUG][       Thread-249596][   transport.py][1871] : Switch to new keys ...
2025-06-13 09:13:00,488 [DEBUG][       Thread-249596][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 09:13:00,488 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 09:13:00,489 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 09:13:00,490 [DEBUG][       Thread-249596][   transport.py][1871] : userauth is OK
2025-06-13 09:13:00,514 [ INFO][       Thread-249596][   transport.py][1871] : Authentication (password) successful!
2025-06-13 09:13:00,514 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 09:13:01,269 [DEBUG][       Thread-249596][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 09:13:01,269 [DEBUG][       Thread-249596][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 09:13:01,312 [DEBUG][       Thread-249596][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 09:13:01,312 [DEBUG][       Thread-249596][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 09:13:01,315 [DEBUG][       Thread-249596][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 09:13:01,327 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 09:13:01,327 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 09:13:01,328 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 09:13:01,329 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 09:13:01,332 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 09:13:01,333 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 09:13:01,333 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 09:13:01,333 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 09:13:01,333 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.300289 -999.00   +7.50  24.51     57   -0.30 1 1 1 1 1   887    0 8.34 28.69 ----- 24.5 24.5 45.6 33.0 10.7 -27.5 9.7 -28.4 8.4 -27.8 9.5 -26.1
2025-06-13 09:13:01,333 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 09:13:01,333 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 09:13:01,333 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.300289
2025-06-13 09:13:01,333 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 09:13:01,334 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 09:13:01,334 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 09:13:01,334 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 09:13:01,334 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 09:13:01,334 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T09:12:28', tmtdew=8.98, humidity=53.14, cloud=0.0, wind=25.99, temperature=7.59, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T07:12:24.970', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 09:13:01,334 [DEBUG][       Thread-249596][   transport.py][1871] : EOF in transport thread
2025-06-13 09:13:01,406 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 09:13:01,415 [DEBUG][       Thread-249599][   transport.py][1871] : starting thread (client mode): 0x863a5de0
2025-06-13 09:13:01,416 [DEBUG][       Thread-249599][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 09:13:01,430 [DEBUG][       Thread-249599][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 09:13:01,430 [ INFO][       Thread-249599][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 09:13:01,439 [DEBUG][       Thread-249599][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 09:13:01,439 [DEBUG][       Thread-249599][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 09:13:01,439 [DEBUG][       Thread-249599][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 09:13:01,439 [DEBUG][       Thread-249599][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:13:01,439 [DEBUG][       Thread-249599][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:13:01,439 [DEBUG][       Thread-249599][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:13:01,439 [DEBUG][       Thread-249599][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:13:01,439 [DEBUG][       Thread-249599][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 09:13:01,439 [DEBUG][       Thread-249599][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 09:13:01,439 [DEBUG][       Thread-249599][   transport.py][1871] : client lang: <none>
2025-06-13 09:13:01,439 [DEBUG][       Thread-249599][   transport.py][1871] : server lang: <none>
2025-06-13 09:13:01,439 [DEBUG][       Thread-249599][   transport.py][1871] : kex follows: False
2025-06-13 09:13:01,439 [DEBUG][       Thread-249599][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 09:13:01,439 [DEBUG][       Thread-249599][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 09:13:01,439 [DEBUG][       Thread-249599][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 09:13:01,439 [DEBUG][       Thread-249599][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 09:13:01,439 [DEBUG][       Thread-249599][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 09:13:01,439 [DEBUG][       Thread-249599][   transport.py][1871] : Compression: none
2025-06-13 09:13:01,439 [DEBUG][       Thread-249599][   transport.py][1871] : === End of kex handshake ===
2025-06-13 09:13:01,497 [DEBUG][       Thread-249599][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 09:13:01,497 [DEBUG][       Thread-249599][   transport.py][1871] : Switch to new keys ...
2025-06-13 09:13:01,497 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 09:13:01,497 [DEBUG][       Thread-249599][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 09:13:01,498 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 09:13:01,554 [DEBUG][       Thread-249599][   transport.py][1871] : userauth is OK
2025-06-13 09:13:01,554 [DEBUG][       Thread-249599][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 09:13:01,555 [DEBUG][       Thread-249599][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 09:13:01,555 [DEBUG][       Thread-249599][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 09:13:01,555 [DEBUG][       Thread-249599][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 09:13:01,568 [ INFO][       Thread-249599][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 09:13:01,569 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 09:13:01,569 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 09:13:02,550 [DEBUG][Thread-249601 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:13:02,585 [DEBUG][       Thread-249599][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 09:13:02,585 [DEBUG][       Thread-249599][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 09:13:02,635 [DEBUG][       Thread-249599][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 09:13:02,635 [DEBUG][       Thread-249599][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 09:13:02,643 [DEBUG][       Thread-249599][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 09:13:02,651 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 09:13:02,651 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 09:13:02,659 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 09:13:02,667 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 09:13:02,667 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 09:13:02,667 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 09:13:02,675 [DEBUG][       Thread-249599][   transport.py][1871] : EOF in transport thread
2025-06-13 09:13:02,790 [DEBUG][Thread-249602 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:13:11,808 [DEBUG][Thread-249603 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:13:12,677 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 09:13:12,677 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 09:13:12,677 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 09:13:12,678 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 09:13:13,177 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 9, 13), 8.98, 53.14, 0.0, 23.77, 7.6, 0, 0, 0, 2, 0, 0),)
2025-06-13 09:13:13,177 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 09:13:00
2025-06-13 09:13:13,263 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 09:13:13,269 [DEBUG][       Thread-249604][   transport.py][1871] : starting thread (client mode): 0x863ec040
2025-06-13 09:13:13,269 [DEBUG][       Thread-249604][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 09:13:13,289 [DEBUG][       Thread-249604][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 09:13:13,289 [ INFO][       Thread-249604][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 09:13:13,292 [DEBUG][       Thread-249604][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 09:13:13,293 [DEBUG][       Thread-249604][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 09:13:13,293 [DEBUG][       Thread-249604][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 09:13:13,293 [DEBUG][       Thread-249604][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:13:13,293 [DEBUG][       Thread-249604][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:13:13,293 [DEBUG][       Thread-249604][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:13:13,293 [DEBUG][       Thread-249604][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:13:13,293 [DEBUG][       Thread-249604][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 09:13:13,293 [DEBUG][       Thread-249604][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 09:13:13,293 [DEBUG][       Thread-249604][   transport.py][1871] : client lang: <none>
2025-06-13 09:13:13,293 [DEBUG][       Thread-249604][   transport.py][1871] : server lang: <none>
2025-06-13 09:13:13,293 [DEBUG][       Thread-249604][   transport.py][1871] : kex follows: False
2025-06-13 09:13:13,293 [DEBUG][       Thread-249604][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 09:13:13,293 [DEBUG][       Thread-249604][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 09:13:13,293 [DEBUG][       Thread-249604][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 09:13:13,293 [DEBUG][       Thread-249604][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 09:13:13,293 [DEBUG][       Thread-249604][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 09:13:13,293 [DEBUG][       Thread-249604][   transport.py][1871] : Compression: none
2025-06-13 09:13:13,293 [DEBUG][       Thread-249604][   transport.py][1871] : === End of kex handshake ===
2025-06-13 09:13:13,308 [DEBUG][       Thread-249604][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 09:13:13,308 [DEBUG][       Thread-249604][   transport.py][1871] : Switch to new keys ...
2025-06-13 09:13:13,308 [DEBUG][       Thread-249604][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 09:13:13,308 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 09:13:13,308 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 09:13:13,309 [DEBUG][       Thread-249604][   transport.py][1871] : userauth is OK
2025-06-13 09:13:13,321 [ INFO][       Thread-249604][   transport.py][1871] : Authentication (password) successful!
2025-06-13 09:13:13,321 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 09:13:13,957 [DEBUG][       Thread-249604][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 09:13:13,957 [DEBUG][       Thread-249604][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 09:13:14,001 [DEBUG][       Thread-249604][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 09:13:14,001 [DEBUG][       Thread-249604][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 09:13:14,003 [DEBUG][       Thread-249604][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 09:13:14,016 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 09:13:14,016 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 09:13:14,017 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 09:13:14,019 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 09:13:14,022 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 09:13:14,023 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 09:13:14,023 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 09:13:14,023 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 09:13:14,023 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.300636 -999.00   +7.50  23.27     57   -0.20 1 1 1 1 1   887    0 8.34 29.55 ----- 23.3 23.3 26.6 27.5 10.7 -27.8 9.7 -28.3 8.5 -27.4 9.6 -26.2
2025-06-13 09:13:14,023 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 09:13:14,023 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 09:13:14,023 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.300636
2025-06-13 09:13:14,023 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 09:13:14,023 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 09:13:14,023 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 09:13:14,023 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 09:13:14,023 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 09:13:14,023 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T09:13:00', tmtdew=8.98, humidity=53.14, cloud=0.0, wind=23.77, temperature=7.6, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T07:12:54.950', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 09:13:14,024 [DEBUG][       Thread-249604][   transport.py][1871] : EOF in transport thread
2025-06-13 09:13:14,101 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 09:13:14,114 [DEBUG][       Thread-249607][   transport.py][1871] : starting thread (client mode): 0x863a6d40
2025-06-13 09:13:14,114 [DEBUG][       Thread-249607][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 09:13:14,129 [DEBUG][       Thread-249607][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 09:13:14,129 [ INFO][       Thread-249607][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 09:13:14,136 [DEBUG][       Thread-249607][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 09:13:14,137 [DEBUG][       Thread-249607][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 09:13:14,137 [DEBUG][       Thread-249607][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 09:13:14,137 [DEBUG][       Thread-249607][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:13:14,137 [DEBUG][       Thread-249607][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:13:14,137 [DEBUG][       Thread-249607][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:13:14,137 [DEBUG][       Thread-249607][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:13:14,137 [DEBUG][       Thread-249607][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 09:13:14,137 [DEBUG][       Thread-249607][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 09:13:14,137 [DEBUG][       Thread-249607][   transport.py][1871] : client lang: <none>
2025-06-13 09:13:14,137 [DEBUG][       Thread-249607][   transport.py][1871] : server lang: <none>
2025-06-13 09:13:14,137 [DEBUG][       Thread-249607][   transport.py][1871] : kex follows: False
2025-06-13 09:13:14,137 [DEBUG][       Thread-249607][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 09:13:14,137 [DEBUG][       Thread-249607][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 09:13:14,137 [DEBUG][       Thread-249607][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 09:13:14,137 [DEBUG][       Thread-249607][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 09:13:14,137 [DEBUG][       Thread-249607][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 09:13:14,137 [DEBUG][       Thread-249607][   transport.py][1871] : Compression: none
2025-06-13 09:13:14,137 [DEBUG][       Thread-249607][   transport.py][1871] : === End of kex handshake ===
2025-06-13 09:13:14,197 [DEBUG][       Thread-249607][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 09:13:14,197 [DEBUG][       Thread-249607][   transport.py][1871] : Switch to new keys ...
2025-06-13 09:13:14,198 [DEBUG][       Thread-249607][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 09:13:14,198 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 09:13:14,198 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 09:13:14,256 [DEBUG][       Thread-249607][   transport.py][1871] : userauth is OK
2025-06-13 09:13:14,256 [DEBUG][       Thread-249607][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 09:13:14,256 [DEBUG][       Thread-249607][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 09:13:14,256 [DEBUG][       Thread-249607][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 09:13:14,256 [DEBUG][       Thread-249607][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 09:13:14,275 [ INFO][       Thread-249607][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 09:13:14,275 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 09:13:14,275 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 09:13:15,281 [DEBUG][       Thread-249607][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 09:13:15,281 [DEBUG][       Thread-249607][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 09:13:15,331 [DEBUG][       Thread-249607][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 09:13:15,331 [DEBUG][       Thread-249607][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 09:13:15,340 [DEBUG][       Thread-249607][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 09:13:15,349 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 09:13:15,349 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 09:13:15,358 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 09:13:15,366 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 09:13:15,366 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 09:13:15,366 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 09:13:15,374 [DEBUG][       Thread-249607][   transport.py][1871] : EOF in transport thread
2025-06-13 09:13:15,917 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:13:15,918 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:13:20,826 [DEBUG][Thread-249609 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:13:25,372 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 09:13:25,372 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 09:13:25,372 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 09:13:25,374 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 09:13:25,854 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 9, 13), 8.98, 53.14, 0.0, 23.77, 7.6, 0, 0, 0, 2, 0, 0),)
2025-06-13 09:13:25,854 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 09:13:00
2025-06-13 09:13:25,937 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 09:13:25,941 [DEBUG][       Thread-249610][   transport.py][1871] : starting thread (client mode): 0x863a7070
2025-06-13 09:13:25,941 [DEBUG][       Thread-249610][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 09:13:25,961 [DEBUG][       Thread-249610][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 09:13:25,961 [ INFO][       Thread-249610][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 09:13:25,964 [DEBUG][       Thread-249610][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 09:13:25,964 [DEBUG][       Thread-249610][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 09:13:25,964 [DEBUG][       Thread-249610][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 09:13:25,964 [DEBUG][       Thread-249610][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:13:25,964 [DEBUG][       Thread-249610][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:13:25,964 [DEBUG][       Thread-249610][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:13:25,964 [DEBUG][       Thread-249610][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:13:25,964 [DEBUG][       Thread-249610][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 09:13:25,964 [DEBUG][       Thread-249610][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 09:13:25,964 [DEBUG][       Thread-249610][   transport.py][1871] : client lang: <none>
2025-06-13 09:13:25,964 [DEBUG][       Thread-249610][   transport.py][1871] : server lang: <none>
2025-06-13 09:13:25,964 [DEBUG][       Thread-249610][   transport.py][1871] : kex follows: False
2025-06-13 09:13:25,964 [DEBUG][       Thread-249610][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 09:13:25,964 [DEBUG][       Thread-249610][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 09:13:25,964 [DEBUG][       Thread-249610][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 09:13:25,964 [DEBUG][       Thread-249610][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 09:13:25,964 [DEBUG][       Thread-249610][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 09:13:25,964 [DEBUG][       Thread-249610][   transport.py][1871] : Compression: none
2025-06-13 09:13:25,964 [DEBUG][       Thread-249610][   transport.py][1871] : === End of kex handshake ===
2025-06-13 09:13:25,981 [DEBUG][       Thread-249610][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 09:13:25,982 [DEBUG][       Thread-249610][   transport.py][1871] : Switch to new keys ...
2025-06-13 09:13:25,982 [DEBUG][       Thread-249610][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 09:13:25,983 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 09:13:25,983 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 09:13:25,984 [DEBUG][       Thread-249610][   transport.py][1871] : userauth is OK
2025-06-13 09:13:26,008 [ INFO][       Thread-249610][   transport.py][1871] : Authentication (password) successful!
2025-06-13 09:13:26,008 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 09:13:26,775 [DEBUG][       Thread-249610][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 09:13:26,775 [DEBUG][       Thread-249610][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 09:13:26,817 [DEBUG][       Thread-249610][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 09:13:26,817 [DEBUG][       Thread-249610][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 09:13:26,820 [DEBUG][       Thread-249610][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 09:13:26,832 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 09:13:26,832 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 09:13:26,834 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 09:13:26,835 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 09:13:26,841 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 09:13:26,843 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 09:13:26,843 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 09:13:26,844 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 09:13:26,844 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.300636 -999.00   +7.50  23.27     57   -0.20 1 1 1 1 1   887    0 8.34 29.55 ----- 23.3 23.3 26.6 27.5 10.7 -27.8 9.7 -28.3 8.5 -27.4 9.6 -26.2
2025-06-13 09:13:26,844 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 09:13:26,844 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 09:13:26,844 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.300636
2025-06-13 09:13:26,845 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 09:13:26,845 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 09:13:26,845 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 09:13:26,845 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 09:13:26,845 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 09:13:26,845 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T09:13:00', tmtdew=8.98, humidity=53.14, cloud=0.0, wind=23.77, temperature=7.6, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T07:12:54.950', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 09:13:26,846 [DEBUG][       Thread-249610][   transport.py][1871] : EOF in transport thread
2025-06-13 09:13:26,930 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 09:13:26,939 [DEBUG][       Thread-249613][   transport.py][1871] : starting thread (client mode): 0x863ee410
2025-06-13 09:13:26,939 [DEBUG][       Thread-249613][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 09:13:26,955 [DEBUG][       Thread-249613][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 09:13:26,955 [ INFO][       Thread-249613][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 09:13:26,963 [DEBUG][       Thread-249613][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 09:13:26,964 [DEBUG][       Thread-249613][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 09:13:26,964 [DEBUG][       Thread-249613][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 09:13:26,964 [DEBUG][       Thread-249613][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:13:26,964 [DEBUG][       Thread-249613][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:13:26,964 [DEBUG][       Thread-249613][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:13:26,964 [DEBUG][       Thread-249613][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:13:26,964 [DEBUG][       Thread-249613][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 09:13:26,964 [DEBUG][       Thread-249613][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 09:13:26,964 [DEBUG][       Thread-249613][   transport.py][1871] : client lang: <none>
2025-06-13 09:13:26,964 [DEBUG][       Thread-249613][   transport.py][1871] : server lang: <none>
2025-06-13 09:13:26,964 [DEBUG][       Thread-249613][   transport.py][1871] : kex follows: False
2025-06-13 09:13:26,964 [DEBUG][       Thread-249613][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 09:13:26,964 [DEBUG][       Thread-249613][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 09:13:26,964 [DEBUG][       Thread-249613][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 09:13:26,964 [DEBUG][       Thread-249613][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 09:13:26,964 [DEBUG][       Thread-249613][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 09:13:26,965 [DEBUG][       Thread-249613][   transport.py][1871] : Compression: none
2025-06-13 09:13:26,965 [DEBUG][       Thread-249613][   transport.py][1871] : === End of kex handshake ===
2025-06-13 09:13:27,030 [DEBUG][       Thread-249613][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 09:13:27,031 [DEBUG][       Thread-249613][   transport.py][1871] : Switch to new keys ...
2025-06-13 09:13:27,031 [DEBUG][       Thread-249613][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 09:13:27,031 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 09:13:27,032 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 09:13:27,090 [DEBUG][       Thread-249613][   transport.py][1871] : userauth is OK
2025-06-13 09:13:27,090 [DEBUG][       Thread-249613][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 09:13:27,091 [DEBUG][       Thread-249613][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 09:13:27,091 [DEBUG][       Thread-249613][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 09:13:27,091 [DEBUG][       Thread-249613][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 09:13:27,111 [ INFO][       Thread-249613][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 09:13:27,111 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 09:13:27,111 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 09:13:28,130 [DEBUG][       Thread-249613][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 09:13:28,130 [DEBUG][       Thread-249613][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 09:13:28,180 [DEBUG][       Thread-249613][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 09:13:28,180 [DEBUG][       Thread-249613][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 09:13:28,188 [DEBUG][       Thread-249613][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 09:13:28,197 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 09:13:28,197 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 09:13:28,205 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 09:13:28,214 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 09:13:28,214 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 09:13:28,215 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 09:13:28,222 [DEBUG][       Thread-249613][   transport.py][1871] : EOF in transport thread
2025-06-13 09:13:29,856 [DEBUG][Thread-249615 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:13:38,218 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 09:13:38,219 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 09:13:38,219 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 09:13:38,221 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 09:13:38,702 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 9, 13, 32), 9.03, 53.09, 0.0, 23.42, 7.64, 0, 0, 0, 2, 0, 0),)
2025-06-13 09:13:38,702 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 09:13:32
2025-06-13 09:13:38,784 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 09:13:38,790 [DEBUG][       Thread-249616][   transport.py][1871] : starting thread (client mode): 0x8636b8e0
2025-06-13 09:13:38,790 [DEBUG][       Thread-249616][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 09:13:38,810 [DEBUG][       Thread-249616][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 09:13:38,810 [ INFO][       Thread-249616][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 09:13:38,812 [DEBUG][       Thread-249616][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 09:13:38,812 [DEBUG][       Thread-249616][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 09:13:38,812 [DEBUG][       Thread-249616][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 09:13:38,812 [DEBUG][       Thread-249616][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:13:38,812 [DEBUG][       Thread-249616][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:13:38,812 [DEBUG][       Thread-249616][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:13:38,812 [DEBUG][       Thread-249616][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:13:38,812 [DEBUG][       Thread-249616][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 09:13:38,812 [DEBUG][       Thread-249616][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 09:13:38,812 [DEBUG][       Thread-249616][   transport.py][1871] : client lang: <none>
2025-06-13 09:13:38,812 [DEBUG][       Thread-249616][   transport.py][1871] : server lang: <none>
2025-06-13 09:13:38,812 [DEBUG][       Thread-249616][   transport.py][1871] : kex follows: False
2025-06-13 09:13:38,812 [DEBUG][       Thread-249616][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 09:13:38,812 [DEBUG][       Thread-249616][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 09:13:38,812 [DEBUG][       Thread-249616][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 09:13:38,812 [DEBUG][       Thread-249616][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 09:13:38,812 [DEBUG][       Thread-249616][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 09:13:38,812 [DEBUG][       Thread-249616][   transport.py][1871] : Compression: none
2025-06-13 09:13:38,812 [DEBUG][       Thread-249616][   transport.py][1871] : === End of kex handshake ===
2025-06-13 09:13:38,820 [DEBUG][       Thread-249616][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 09:13:38,821 [DEBUG][       Thread-249616][   transport.py][1871] : Switch to new keys ...
2025-06-13 09:13:38,821 [DEBUG][       Thread-249616][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 09:13:38,821 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 09:13:38,822 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 09:13:38,822 [DEBUG][       Thread-249616][   transport.py][1871] : userauth is OK
2025-06-13 09:13:38,835 [ INFO][       Thread-249616][   transport.py][1871] : Authentication (password) successful!
2025-06-13 09:13:38,836 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 09:13:38,872 [DEBUG][Thread-249618 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:13:39,565 [DEBUG][       Thread-249616][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 09:13:39,565 [DEBUG][       Thread-249616][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 09:13:39,609 [DEBUG][       Thread-249616][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 09:13:39,609 [DEBUG][       Thread-249616][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 09:13:39,612 [DEBUG][       Thread-249616][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 09:13:39,624 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 09:13:39,625 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 09:13:39,626 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 09:13:39,628 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 09:13:39,633 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 09:13:39,634 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 09:13:39,635 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 09:13:39,635 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 09:13:39,635 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.300636 -999.00   +7.50  23.27     57   -0.20 1 1 1 1 1   887    0 8.34 29.55 ----- 23.3 23.3 26.6 27.5 10.7 -27.8 9.7 -28.3 8.5 -27.4 9.6 -26.2
2025-06-13 09:13:39,636 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 09:13:39,636 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 09:13:39,636 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.300636
2025-06-13 09:13:39,636 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 09:13:39,637 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 09:13:39,637 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 09:13:39,637 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 09:13:39,637 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 09:13:39,637 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T09:13:32', tmtdew=9.03, humidity=53.09, cloud=0.0, wind=23.42, temperature=7.64, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T07:12:54.950', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 09:13:39,638 [DEBUG][       Thread-249616][   transport.py][1871] : EOF in transport thread
2025-06-13 09:13:39,722 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 09:13:39,740 [DEBUG][       Thread-249620][   transport.py][1871] : starting thread (client mode): 0x863a4040
2025-06-13 09:13:39,740 [DEBUG][       Thread-249620][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 09:13:39,759 [DEBUG][       Thread-249620][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 09:13:39,759 [ INFO][       Thread-249620][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 09:13:39,766 [DEBUG][       Thread-249620][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 09:13:39,767 [DEBUG][       Thread-249620][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 09:13:39,767 [DEBUG][       Thread-249620][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 09:13:39,767 [DEBUG][       Thread-249620][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:13:39,767 [DEBUG][       Thread-249620][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:13:39,767 [DEBUG][       Thread-249620][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:13:39,767 [DEBUG][       Thread-249620][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:13:39,767 [DEBUG][       Thread-249620][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 09:13:39,767 [DEBUG][       Thread-249620][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 09:13:39,767 [DEBUG][       Thread-249620][   transport.py][1871] : client lang: <none>
2025-06-13 09:13:39,767 [DEBUG][       Thread-249620][   transport.py][1871] : server lang: <none>
2025-06-13 09:13:39,767 [DEBUG][       Thread-249620][   transport.py][1871] : kex follows: False
2025-06-13 09:13:39,767 [DEBUG][       Thread-249620][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 09:13:39,767 [DEBUG][       Thread-249620][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 09:13:39,767 [DEBUG][       Thread-249620][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 09:13:39,767 [DEBUG][       Thread-249620][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 09:13:39,767 [DEBUG][       Thread-249620][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 09:13:39,768 [DEBUG][       Thread-249620][   transport.py][1871] : Compression: none
2025-06-13 09:13:39,768 [DEBUG][       Thread-249620][   transport.py][1871] : === End of kex handshake ===
2025-06-13 09:13:39,831 [DEBUG][       Thread-249620][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 09:13:39,832 [DEBUG][       Thread-249620][   transport.py][1871] : Switch to new keys ...
2025-06-13 09:13:39,832 [DEBUG][       Thread-249620][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 09:13:39,833 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 09:13:39,833 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 09:13:39,892 [DEBUG][       Thread-249620][   transport.py][1871] : userauth is OK
2025-06-13 09:13:39,893 [DEBUG][       Thread-249620][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 09:13:39,893 [DEBUG][       Thread-249620][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 09:13:39,893 [DEBUG][       Thread-249620][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 09:13:39,893 [DEBUG][       Thread-249620][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 09:13:39,916 [ INFO][       Thread-249620][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 09:13:39,916 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 09:13:39,917 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 09:13:40,935 [DEBUG][       Thread-249620][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 09:13:40,935 [DEBUG][       Thread-249620][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 09:13:40,988 [DEBUG][       Thread-249620][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 09:13:40,989 [DEBUG][       Thread-249620][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 09:13:41,002 [DEBUG][       Thread-249620][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 09:13:41,017 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 09:13:41,017 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 09:13:41,034 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 09:13:41,051 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 09:13:41,051 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 09:13:41,052 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 09:13:41,067 [DEBUG][       Thread-249620][   transport.py][1871] : EOF in transport thread
2025-06-13 09:13:47,892 [DEBUG][Thread-249622 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:13:51,060 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 09:13:51,060 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 09:13:51,060 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 09:13:51,060 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 09:13:51,168 [DEBUG][Thread-249623 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:13:51,552 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 9, 13, 32), 9.03, 53.09, 0.0, 23.42, 7.64, 0, 0, 0, 2, 0, 0),)
2025-06-13 09:13:51,552 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 09:13:32
2025-06-13 09:13:51,639 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 09:13:51,644 [DEBUG][       Thread-249624][   transport.py][1871] : starting thread (client mode): 0x8636aa70
2025-06-13 09:13:51,644 [DEBUG][       Thread-249624][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 09:13:51,664 [DEBUG][       Thread-249624][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 09:13:51,664 [ INFO][       Thread-249624][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 09:13:51,667 [DEBUG][       Thread-249624][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 09:13:51,667 [DEBUG][       Thread-249624][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 09:13:51,667 [DEBUG][       Thread-249624][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 09:13:51,667 [DEBUG][       Thread-249624][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:13:51,667 [DEBUG][       Thread-249624][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:13:51,667 [DEBUG][       Thread-249624][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:13:51,667 [DEBUG][       Thread-249624][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:13:51,667 [DEBUG][       Thread-249624][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 09:13:51,667 [DEBUG][       Thread-249624][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 09:13:51,667 [DEBUG][       Thread-249624][   transport.py][1871] : client lang: <none>
2025-06-13 09:13:51,667 [DEBUG][       Thread-249624][   transport.py][1871] : server lang: <none>
2025-06-13 09:13:51,667 [DEBUG][       Thread-249624][   transport.py][1871] : kex follows: False
2025-06-13 09:13:51,667 [DEBUG][       Thread-249624][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 09:13:51,667 [DEBUG][       Thread-249624][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 09:13:51,667 [DEBUG][       Thread-249624][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 09:13:51,667 [DEBUG][       Thread-249624][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 09:13:51,667 [DEBUG][       Thread-249624][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 09:13:51,667 [DEBUG][       Thread-249624][   transport.py][1871] : Compression: none
2025-06-13 09:13:51,667 [DEBUG][       Thread-249624][   transport.py][1871] : === End of kex handshake ===
2025-06-13 09:13:51,683 [DEBUG][       Thread-249624][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 09:13:51,683 [DEBUG][       Thread-249624][   transport.py][1871] : Switch to new keys ...
2025-06-13 09:13:51,683 [DEBUG][       Thread-249624][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 09:13:51,683 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 09:13:51,683 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 09:13:51,684 [DEBUG][       Thread-249624][   transport.py][1871] : userauth is OK
2025-06-13 09:13:51,696 [ INFO][       Thread-249624][   transport.py][1871] : Authentication (password) successful!
2025-06-13 09:13:51,696 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 09:13:52,218 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:13:52,218 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:13:52,343 [DEBUG][       Thread-249624][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 09:13:52,343 [DEBUG][       Thread-249624][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 09:13:52,384 [DEBUG][       Thread-249624][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 09:13:52,385 [DEBUG][       Thread-249624][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 09:13:52,387 [DEBUG][       Thread-249624][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 09:13:52,398 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 09:13:52,399 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 09:13:52,399 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 09:13:52,400 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 09:13:52,403 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 09:13:52,404 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 09:13:52,404 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 09:13:52,404 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 09:13:52,404 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.300983 -999.00   +7.40  25.26     57   -0.20 1 1 1 1 1   887    0 8.22 29.17 ----- 25.3 25.3 42.0 33.7 10.8 -27.5 9.7 -28.4 8.5 -27.6 9.6 -26.1
2025-06-13 09:13:52,404 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 09:13:52,404 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 09:13:52,404 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.300983
2025-06-13 09:13:52,404 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 09:13:52,404 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 09:13:52,404 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 09:13:52,404 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 09:13:52,404 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 09:13:52,404 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T09:13:32', tmtdew=9.03, humidity=53.09, cloud=0.0, wind=23.42, temperature=7.64, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T07:13:24.931', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 09:13:52,404 [DEBUG][       Thread-249624][   transport.py][1871] : EOF in transport thread
2025-06-13 09:13:52,478 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 09:13:52,493 [DEBUG][       Thread-249627][   transport.py][1871] : starting thread (client mode): 0x867fe170
2025-06-13 09:13:52,493 [DEBUG][       Thread-249627][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 09:13:52,508 [DEBUG][       Thread-249627][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 09:13:52,508 [ INFO][       Thread-249627][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 09:13:52,520 [DEBUG][       Thread-249627][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 09:13:52,520 [DEBUG][       Thread-249627][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 09:13:52,520 [DEBUG][       Thread-249627][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 09:13:52,520 [DEBUG][       Thread-249627][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:13:52,520 [DEBUG][       Thread-249627][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:13:52,520 [DEBUG][       Thread-249627][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:13:52,520 [DEBUG][       Thread-249627][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:13:52,520 [DEBUG][       Thread-249627][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 09:13:52,520 [DEBUG][       Thread-249627][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 09:13:52,520 [DEBUG][       Thread-249627][   transport.py][1871] : client lang: <none>
2025-06-13 09:13:52,520 [DEBUG][       Thread-249627][   transport.py][1871] : server lang: <none>
2025-06-13 09:13:52,520 [DEBUG][       Thread-249627][   transport.py][1871] : kex follows: False
2025-06-13 09:13:52,520 [DEBUG][       Thread-249627][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 09:13:52,520 [DEBUG][       Thread-249627][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 09:13:52,520 [DEBUG][       Thread-249627][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 09:13:52,520 [DEBUG][       Thread-249627][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 09:13:52,520 [DEBUG][       Thread-249627][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 09:13:52,520 [DEBUG][       Thread-249627][   transport.py][1871] : Compression: none
2025-06-13 09:13:52,520 [DEBUG][       Thread-249627][   transport.py][1871] : === End of kex handshake ===
2025-06-13 09:13:52,575 [DEBUG][       Thread-249627][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 09:13:52,575 [DEBUG][       Thread-249627][   transport.py][1871] : Switch to new keys ...
2025-06-13 09:13:52,575 [DEBUG][       Thread-249627][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 09:13:52,575 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 09:13:52,575 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 09:13:52,631 [DEBUG][       Thread-249627][   transport.py][1871] : userauth is OK
2025-06-13 09:13:52,631 [DEBUG][       Thread-249627][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 09:13:52,631 [DEBUG][       Thread-249627][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 09:13:52,631 [DEBUG][       Thread-249627][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 09:13:52,631 [DEBUG][       Thread-249627][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 09:13:52,644 [ INFO][       Thread-249627][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 09:13:52,645 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 09:13:52,645 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 09:13:53,645 [DEBUG][       Thread-249627][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 09:13:53,645 [DEBUG][       Thread-249627][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 09:13:53,695 [DEBUG][       Thread-249627][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 09:13:53,695 [DEBUG][       Thread-249627][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 09:13:53,703 [DEBUG][       Thread-249627][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 09:13:53,711 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 09:13:53,711 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 09:13:53,719 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 09:13:53,727 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 09:13:53,727 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 09:13:53,728 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 09:13:53,735 [DEBUG][       Thread-249627][   transport.py][1871] : EOF in transport thread
2025-06-13 09:13:56,924 [DEBUG][Thread-249629 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:14:02,599 [DEBUG][Thread-249630 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:14:03,738 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 09:14:03,738 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 09:14:03,738 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 09:14:03,739 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 09:14:04,203 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 9, 13, 32), 9.03, 53.09, 0.0, 23.42, 7.64, 0, 0, 0, 2, 0, 0),)
2025-06-13 09:14:04,203 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 09:13:32
2025-06-13 09:14:04,283 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 09:14:04,287 [DEBUG][       Thread-249631][   transport.py][1871] : starting thread (client mode): 0x86368f70
2025-06-13 09:14:04,287 [DEBUG][       Thread-249631][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 09:14:04,297 [DEBUG][       Thread-249631][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 09:14:04,297 [ INFO][       Thread-249631][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 09:14:04,299 [DEBUG][       Thread-249631][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 09:14:04,299 [DEBUG][       Thread-249631][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 09:14:04,299 [DEBUG][       Thread-249631][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 09:14:04,299 [DEBUG][       Thread-249631][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:14:04,299 [DEBUG][       Thread-249631][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:14:04,299 [DEBUG][       Thread-249631][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:14:04,299 [DEBUG][       Thread-249631][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:14:04,299 [DEBUG][       Thread-249631][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 09:14:04,299 [DEBUG][       Thread-249631][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 09:14:04,299 [DEBUG][       Thread-249631][   transport.py][1871] : client lang: <none>
2025-06-13 09:14:04,299 [DEBUG][       Thread-249631][   transport.py][1871] : server lang: <none>
2025-06-13 09:14:04,299 [DEBUG][       Thread-249631][   transport.py][1871] : kex follows: False
2025-06-13 09:14:04,299 [DEBUG][       Thread-249631][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 09:14:04,299 [DEBUG][       Thread-249631][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 09:14:04,299 [DEBUG][       Thread-249631][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 09:14:04,299 [DEBUG][       Thread-249631][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 09:14:04,299 [DEBUG][       Thread-249631][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 09:14:04,299 [DEBUG][       Thread-249631][   transport.py][1871] : Compression: none
2025-06-13 09:14:04,299 [DEBUG][       Thread-249631][   transport.py][1871] : === End of kex handshake ===
2025-06-13 09:14:04,306 [DEBUG][       Thread-249631][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 09:14:04,306 [DEBUG][       Thread-249631][   transport.py][1871] : Switch to new keys ...
2025-06-13 09:14:04,306 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 09:14:04,306 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 09:14:04,307 [DEBUG][       Thread-249631][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 09:14:04,307 [DEBUG][       Thread-249631][   transport.py][1871] : userauth is OK
2025-06-13 09:14:04,319 [ INFO][       Thread-249631][   transport.py][1871] : Authentication (password) successful!
2025-06-13 09:14:04,320 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 09:14:05,047 [DEBUG][       Thread-249631][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 09:14:05,047 [DEBUG][       Thread-249631][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 09:14:05,088 [DEBUG][       Thread-249631][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 09:14:05,088 [DEBUG][       Thread-249631][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 09:14:05,091 [DEBUG][       Thread-249631][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 09:14:05,104 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 09:14:05,104 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 09:14:05,105 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 09:14:05,106 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 09:14:05,108 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 09:14:05,109 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 09:14:05,109 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 09:14:05,109 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 09:14:05,109 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.300983 -999.00   +7.40  25.26     57   -0.20 1 1 1 1 1   887    0 8.22 29.17 ----- 25.3 25.3 42.0 33.7 10.8 -27.5 9.7 -28.4 8.5 -27.6 9.6 -26.1
2025-06-13 09:14:05,109 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 09:14:05,109 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 09:14:05,109 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.300983
2025-06-13 09:14:05,109 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 09:14:05,110 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 09:14:05,110 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 09:14:05,110 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 09:14:05,110 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 09:14:05,110 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T09:13:32', tmtdew=9.03, humidity=53.09, cloud=0.0, wind=23.42, temperature=7.64, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T07:13:24.931', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 09:14:05,110 [DEBUG][       Thread-249631][   transport.py][1871] : EOF in transport thread
2025-06-13 09:14:05,184 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 09:14:05,195 [DEBUG][       Thread-249634][   transport.py][1871] : starting thread (client mode): 0x863a5780
2025-06-13 09:14:05,195 [DEBUG][       Thread-249634][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 09:14:05,213 [DEBUG][       Thread-249634][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 09:14:05,213 [ INFO][       Thread-249634][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 09:14:05,221 [DEBUG][       Thread-249634][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 09:14:05,221 [DEBUG][       Thread-249634][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 09:14:05,221 [DEBUG][       Thread-249634][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 09:14:05,221 [DEBUG][       Thread-249634][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:14:05,221 [DEBUG][       Thread-249634][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:14:05,221 [DEBUG][       Thread-249634][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:14:05,221 [DEBUG][       Thread-249634][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:14:05,221 [DEBUG][       Thread-249634][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 09:14:05,221 [DEBUG][       Thread-249634][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 09:14:05,221 [DEBUG][       Thread-249634][   transport.py][1871] : client lang: <none>
2025-06-13 09:14:05,221 [DEBUG][       Thread-249634][   transport.py][1871] : server lang: <none>
2025-06-13 09:14:05,221 [DEBUG][       Thread-249634][   transport.py][1871] : kex follows: False
2025-06-13 09:14:05,221 [DEBUG][       Thread-249634][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 09:14:05,221 [DEBUG][       Thread-249634][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 09:14:05,221 [DEBUG][       Thread-249634][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 09:14:05,221 [DEBUG][       Thread-249634][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 09:14:05,221 [DEBUG][       Thread-249634][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 09:14:05,221 [DEBUG][       Thread-249634][   transport.py][1871] : Compression: none
2025-06-13 09:14:05,221 [DEBUG][       Thread-249634][   transport.py][1871] : === End of kex handshake ===
2025-06-13 09:14:05,283 [DEBUG][       Thread-249634][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 09:14:05,283 [DEBUG][       Thread-249634][   transport.py][1871] : Switch to new keys ...
2025-06-13 09:14:05,283 [DEBUG][       Thread-249634][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 09:14:05,283 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 09:14:05,283 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 09:14:05,342 [DEBUG][       Thread-249634][   transport.py][1871] : userauth is OK
2025-06-13 09:14:05,343 [DEBUG][       Thread-249634][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 09:14:05,343 [DEBUG][       Thread-249634][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 09:14:05,343 [DEBUG][       Thread-249634][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 09:14:05,343 [DEBUG][       Thread-249634][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 09:14:05,361 [ INFO][       Thread-249634][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 09:14:05,362 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 09:14:05,362 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 09:14:05,942 [DEBUG][Thread-249636 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:14:06,389 [DEBUG][       Thread-249634][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 09:14:06,389 [DEBUG][       Thread-249634][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 09:14:06,442 [DEBUG][       Thread-249634][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 09:14:06,443 [DEBUG][       Thread-249634][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 09:14:06,460 [DEBUG][       Thread-249634][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 09:14:06,473 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 09:14:06,474 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 09:14:06,482 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 09:14:06,491 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 09:14:06,491 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 09:14:06,492 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 09:14:06,500 [DEBUG][       Thread-249634][   transport.py][1871] : EOF in transport thread
2025-06-13 09:14:14,962 [DEBUG][Thread-249637 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:14:16,061 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:14:16,062 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:14:16,502 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 09:14:16,502 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 09:14:16,502 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 09:14:16,505 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 09:14:16,980 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 9, 14, 3), 9.03, 53.09, 0.0, 23.22, 7.6, 0, 0, 0, 2, 0, 0),)
2025-06-13 09:14:16,980 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 09:14:03
2025-06-13 09:14:17,061 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 09:14:17,067 [DEBUG][       Thread-249638][   transport.py][1871] : starting thread (client mode): 0x863a4b50
2025-06-13 09:14:17,067 [DEBUG][       Thread-249638][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 09:14:17,086 [DEBUG][       Thread-249638][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 09:14:17,086 [ INFO][       Thread-249638][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 09:14:17,089 [DEBUG][       Thread-249638][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 09:14:17,089 [DEBUG][       Thread-249638][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 09:14:17,090 [DEBUG][       Thread-249638][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 09:14:17,090 [DEBUG][       Thread-249638][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:14:17,090 [DEBUG][       Thread-249638][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:14:17,090 [DEBUG][       Thread-249638][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:14:17,090 [DEBUG][       Thread-249638][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:14:17,090 [DEBUG][       Thread-249638][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 09:14:17,090 [DEBUG][       Thread-249638][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 09:14:17,090 [DEBUG][       Thread-249638][   transport.py][1871] : client lang: <none>
2025-06-13 09:14:17,090 [DEBUG][       Thread-249638][   transport.py][1871] : server lang: <none>
2025-06-13 09:14:17,090 [DEBUG][       Thread-249638][   transport.py][1871] : kex follows: False
2025-06-13 09:14:17,090 [DEBUG][       Thread-249638][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 09:14:17,090 [DEBUG][       Thread-249638][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 09:14:17,090 [DEBUG][       Thread-249638][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 09:14:17,090 [DEBUG][       Thread-249638][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 09:14:17,090 [DEBUG][       Thread-249638][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 09:14:17,090 [DEBUG][       Thread-249638][   transport.py][1871] : Compression: none
2025-06-13 09:14:17,090 [DEBUG][       Thread-249638][   transport.py][1871] : === End of kex handshake ===
2025-06-13 09:14:17,098 [DEBUG][       Thread-249638][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 09:14:17,099 [DEBUG][       Thread-249638][   transport.py][1871] : Switch to new keys ...
2025-06-13 09:14:17,099 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 09:14:17,099 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 09:14:17,100 [DEBUG][       Thread-249638][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 09:14:17,101 [DEBUG][       Thread-249638][   transport.py][1871] : userauth is OK
2025-06-13 09:14:17,114 [ INFO][       Thread-249638][   transport.py][1871] : Authentication (password) successful!
2025-06-13 09:14:17,114 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 09:14:17,737 [DEBUG][       Thread-249638][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 09:14:17,737 [DEBUG][       Thread-249638][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 09:14:17,781 [DEBUG][       Thread-249638][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 09:14:17,781 [DEBUG][       Thread-249638][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 09:14:17,783 [DEBUG][       Thread-249638][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 09:14:17,797 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 09:14:17,797 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 09:14:17,799 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 09:14:17,801 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 09:14:17,807 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 09:14:17,808 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 09:14:17,809 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 09:14:17,809 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 09:14:17,809 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.301330 -999.00   +7.50  24.41     57   -0.30 1 1 1 1 1   887    0 8.36 34.59 ----- 24.4 24.4 50.9 30.8 10.8 -27.9 9.7 -28.5 8.5 -27.5 9.5 -26.0
2025-06-13 09:14:17,809 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 09:14:17,809 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 09:14:17,809 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.301330
2025-06-13 09:14:17,810 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 09:14:17,810 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 09:14:17,810 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 09:14:17,810 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 09:14:17,811 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 09:14:17,811 [DEBUG][       Thread-249638][   transport.py][1871] : EOF in transport thread
2025-06-13 09:14:17,811 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T09:14:03', tmtdew=9.03, humidity=53.09, cloud=0.0, wind=23.22, temperature=7.6, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T07:13:54.912', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 09:14:17,895 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 09:14:17,906 [DEBUG][       Thread-249641][   transport.py][1871] : starting thread (client mode): 0x863ee920
2025-06-13 09:14:17,906 [DEBUG][       Thread-249641][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 09:14:17,921 [DEBUG][       Thread-249641][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 09:14:17,921 [ INFO][       Thread-249641][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 09:14:17,928 [DEBUG][       Thread-249641][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 09:14:17,929 [DEBUG][       Thread-249641][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 09:14:17,929 [DEBUG][       Thread-249641][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 09:14:17,929 [DEBUG][       Thread-249641][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:14:17,929 [DEBUG][       Thread-249641][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:14:17,929 [DEBUG][       Thread-249641][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:14:17,929 [DEBUG][       Thread-249641][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:14:17,929 [DEBUG][       Thread-249641][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 09:14:17,929 [DEBUG][       Thread-249641][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 09:14:17,929 [DEBUG][       Thread-249641][   transport.py][1871] : client lang: <none>
2025-06-13 09:14:17,929 [DEBUG][       Thread-249641][   transport.py][1871] : server lang: <none>
2025-06-13 09:14:17,929 [DEBUG][       Thread-249641][   transport.py][1871] : kex follows: False
2025-06-13 09:14:17,929 [DEBUG][       Thread-249641][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 09:14:17,929 [DEBUG][       Thread-249641][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 09:14:17,929 [DEBUG][       Thread-249641][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 09:14:17,929 [DEBUG][       Thread-249641][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 09:14:17,929 [DEBUG][       Thread-249641][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 09:14:17,929 [DEBUG][       Thread-249641][   transport.py][1871] : Compression: none
2025-06-13 09:14:17,929 [DEBUG][       Thread-249641][   transport.py][1871] : === End of kex handshake ===
2025-06-13 09:14:17,990 [DEBUG][       Thread-249641][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 09:14:17,990 [DEBUG][       Thread-249641][   transport.py][1871] : Switch to new keys ...
2025-06-13 09:14:17,991 [DEBUG][       Thread-249641][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 09:14:17,991 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 09:14:17,991 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 09:14:18,047 [DEBUG][       Thread-249641][   transport.py][1871] : userauth is OK
2025-06-13 09:14:18,047 [DEBUG][       Thread-249641][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 09:14:18,047 [DEBUG][       Thread-249641][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 09:14:18,047 [DEBUG][       Thread-249641][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 09:14:18,047 [DEBUG][       Thread-249641][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 09:14:18,065 [ INFO][       Thread-249641][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 09:14:18,066 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 09:14:18,066 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 09:14:19,044 [DEBUG][       Thread-249641][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 09:14:19,044 [DEBUG][       Thread-249641][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 09:14:19,095 [DEBUG][       Thread-249641][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 09:14:19,096 [DEBUG][       Thread-249641][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 09:14:19,104 [DEBUG][       Thread-249641][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 09:14:19,113 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 09:14:19,113 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 09:14:19,121 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 09:14:19,130 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 09:14:19,130 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 09:14:19,131 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 09:14:19,138 [DEBUG][       Thread-249641][   transport.py][1871] : EOF in transport thread
2025-06-13 09:14:23,982 [DEBUG][Thread-249643 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:14:29,141 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 09:14:29,141 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 09:14:29,141 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 09:14:29,142 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 09:14:29,612 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 9, 14, 3), 9.03, 53.09, 0.0, 23.22, 7.6, 0, 0, 0, 2, 0, 0),)
2025-06-13 09:14:29,612 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 09:14:03
2025-06-13 09:14:29,700 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 09:14:29,704 [DEBUG][       Thread-249644][   transport.py][1871] : starting thread (client mode): 0x863ee470
2025-06-13 09:14:29,704 [DEBUG][       Thread-249644][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 09:14:29,725 [DEBUG][       Thread-249644][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 09:14:29,725 [ INFO][       Thread-249644][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 09:14:29,728 [DEBUG][       Thread-249644][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 09:14:29,728 [DEBUG][       Thread-249644][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 09:14:29,728 [DEBUG][       Thread-249644][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 09:14:29,728 [DEBUG][       Thread-249644][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:14:29,728 [DEBUG][       Thread-249644][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:14:29,728 [DEBUG][       Thread-249644][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:14:29,728 [DEBUG][       Thread-249644][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:14:29,728 [DEBUG][       Thread-249644][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 09:14:29,728 [DEBUG][       Thread-249644][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 09:14:29,728 [DEBUG][       Thread-249644][   transport.py][1871] : client lang: <none>
2025-06-13 09:14:29,728 [DEBUG][       Thread-249644][   transport.py][1871] : server lang: <none>
2025-06-13 09:14:29,728 [DEBUG][       Thread-249644][   transport.py][1871] : kex follows: False
2025-06-13 09:14:29,728 [DEBUG][       Thread-249644][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 09:14:29,728 [DEBUG][       Thread-249644][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 09:14:29,729 [DEBUG][       Thread-249644][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 09:14:29,729 [DEBUG][       Thread-249644][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 09:14:29,729 [DEBUG][       Thread-249644][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 09:14:29,729 [DEBUG][       Thread-249644][   transport.py][1871] : Compression: none
2025-06-13 09:14:29,729 [DEBUG][       Thread-249644][   transport.py][1871] : === End of kex handshake ===
2025-06-13 09:14:29,743 [DEBUG][       Thread-249644][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 09:14:29,743 [DEBUG][       Thread-249644][   transport.py][1871] : Switch to new keys ...
2025-06-13 09:14:29,743 [DEBUG][       Thread-249644][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 09:14:29,744 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 09:14:29,744 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 09:14:29,744 [DEBUG][       Thread-249644][   transport.py][1871] : userauth is OK
2025-06-13 09:14:29,758 [ INFO][       Thread-249644][   transport.py][1871] : Authentication (password) successful!
2025-06-13 09:14:29,758 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 09:14:30,458 [DEBUG][       Thread-249644][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 09:14:30,458 [DEBUG][       Thread-249644][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 09:14:30,500 [DEBUG][       Thread-249644][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 09:14:30,500 [DEBUG][       Thread-249644][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 09:14:30,504 [DEBUG][       Thread-249644][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 09:14:30,518 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 09:14:30,518 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 09:14:30,519 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 09:14:30,519 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 09:14:30,522 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 09:14:30,523 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 09:14:30,523 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 09:14:30,523 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 09:14:30,523 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.301330 -999.00   +7.50  24.41     57   -0.30 1 1 1 1 1   887    0 8.36 34.59 ----- 24.4 24.4 50.9 30.8 10.8 -27.9 9.7 -28.5 8.5 -27.5 9.5 -26.0
2025-06-13 09:14:30,523 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 09:14:30,523 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 09:14:30,523 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.301330
2025-06-13 09:14:30,523 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 09:14:30,523 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 09:14:30,523 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 09:14:30,523 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 09:14:30,523 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 09:14:30,523 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T09:14:03', tmtdew=9.03, humidity=53.09, cloud=0.0, wind=23.22, temperature=7.6, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T07:13:54.912', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 09:14:30,524 [DEBUG][       Thread-249644][   transport.py][1871] : EOF in transport thread
2025-06-13 09:14:30,597 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 09:14:30,606 [DEBUG][       Thread-249647][   transport.py][1871] : starting thread (client mode): 0x863a43d0
2025-06-13 09:14:30,606 [DEBUG][       Thread-249647][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 09:14:30,621 [DEBUG][       Thread-249647][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 09:14:30,621 [ INFO][       Thread-249647][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 09:14:30,629 [DEBUG][       Thread-249647][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 09:14:30,629 [DEBUG][       Thread-249647][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 09:14:30,629 [DEBUG][       Thread-249647][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 09:14:30,629 [DEBUG][       Thread-249647][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:14:30,629 [DEBUG][       Thread-249647][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:14:30,629 [DEBUG][       Thread-249647][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:14:30,629 [DEBUG][       Thread-249647][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:14:30,629 [DEBUG][       Thread-249647][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 09:14:30,629 [DEBUG][       Thread-249647][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 09:14:30,629 [DEBUG][       Thread-249647][   transport.py][1871] : client lang: <none>
2025-06-13 09:14:30,629 [DEBUG][       Thread-249647][   transport.py][1871] : server lang: <none>
2025-06-13 09:14:30,629 [DEBUG][       Thread-249647][   transport.py][1871] : kex follows: False
2025-06-13 09:14:30,629 [DEBUG][       Thread-249647][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 09:14:30,629 [DEBUG][       Thread-249647][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 09:14:30,629 [DEBUG][       Thread-249647][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 09:14:30,629 [DEBUG][       Thread-249647][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 09:14:30,629 [DEBUG][       Thread-249647][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 09:14:30,629 [DEBUG][       Thread-249647][   transport.py][1871] : Compression: none
2025-06-13 09:14:30,629 [DEBUG][       Thread-249647][   transport.py][1871] : === End of kex handshake ===
2025-06-13 09:14:30,685 [DEBUG][       Thread-249647][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 09:14:30,685 [DEBUG][       Thread-249647][   transport.py][1871] : Switch to new keys ...
2025-06-13 09:14:30,685 [DEBUG][       Thread-249647][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 09:14:30,686 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 09:14:30,686 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 09:14:30,742 [DEBUG][       Thread-249647][   transport.py][1871] : userauth is OK
2025-06-13 09:14:30,742 [DEBUG][       Thread-249647][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 09:14:30,742 [DEBUG][       Thread-249647][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 09:14:30,743 [DEBUG][       Thread-249647][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 09:14:30,743 [DEBUG][       Thread-249647][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 09:14:30,756 [ INFO][       Thread-249647][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 09:14:30,757 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 09:14:30,757 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 09:14:31,771 [DEBUG][       Thread-249647][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 09:14:31,771 [DEBUG][       Thread-249647][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 09:14:31,820 [DEBUG][       Thread-249647][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 09:14:31,820 [DEBUG][       Thread-249647][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 09:14:31,829 [DEBUG][       Thread-249647][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 09:14:31,836 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 09:14:31,836 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 09:14:31,844 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 09:14:31,852 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 09:14:31,852 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 09:14:31,852 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 09:14:31,860 [DEBUG][       Thread-249647][   transport.py][1871] : EOF in transport thread
2025-06-13 09:14:33,012 [DEBUG][Thread-249649 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:14:41,862 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 09:14:41,863 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 09:14:41,863 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 09:14:41,865 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 09:14:42,029 [DEBUG][Thread-249650 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:14:42,325 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 9, 14, 35), 9.02, 52.79, 0.0, 22.9, 7.64, 0, 0, 0, 2, 0, 0),)
2025-06-13 09:14:42,325 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 09:14:35
2025-06-13 09:14:42,404 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 09:14:42,412 [DEBUG][       Thread-249651][   transport.py][1871] : starting thread (client mode): 0x863a6bf0
2025-06-13 09:14:42,412 [DEBUG][       Thread-249651][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 09:14:42,431 [DEBUG][       Thread-249651][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 09:14:42,431 [ INFO][       Thread-249651][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 09:14:42,434 [DEBUG][       Thread-249651][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 09:14:42,435 [DEBUG][       Thread-249651][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 09:14:42,435 [DEBUG][       Thread-249651][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 09:14:42,435 [DEBUG][       Thread-249651][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:14:42,435 [DEBUG][       Thread-249651][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:14:42,435 [DEBUG][       Thread-249651][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:14:42,435 [DEBUG][       Thread-249651][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:14:42,435 [DEBUG][       Thread-249651][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 09:14:42,435 [DEBUG][       Thread-249651][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 09:14:42,435 [DEBUG][       Thread-249651][   transport.py][1871] : client lang: <none>
2025-06-13 09:14:42,435 [DEBUG][       Thread-249651][   transport.py][1871] : server lang: <none>
2025-06-13 09:14:42,435 [DEBUG][       Thread-249651][   transport.py][1871] : kex follows: False
2025-06-13 09:14:42,435 [DEBUG][       Thread-249651][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 09:14:42,435 [DEBUG][       Thread-249651][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 09:14:42,435 [DEBUG][       Thread-249651][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 09:14:42,435 [DEBUG][       Thread-249651][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 09:14:42,435 [DEBUG][       Thread-249651][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 09:14:42,435 [DEBUG][       Thread-249651][   transport.py][1871] : Compression: none
2025-06-13 09:14:42,435 [DEBUG][       Thread-249651][   transport.py][1871] : === End of kex handshake ===
2025-06-13 09:14:42,453 [DEBUG][       Thread-249651][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 09:14:42,453 [DEBUG][       Thread-249651][   transport.py][1871] : Switch to new keys ...
2025-06-13 09:14:42,454 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 09:14:42,454 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 09:14:42,454 [DEBUG][       Thread-249651][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 09:14:42,455 [DEBUG][       Thread-249651][   transport.py][1871] : userauth is OK
2025-06-13 09:14:42,479 [ INFO][       Thread-249651][   transport.py][1871] : Authentication (password) successful!
2025-06-13 09:14:42,479 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 09:14:43,160 [DEBUG][       Thread-249651][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 09:14:43,160 [DEBUG][       Thread-249651][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 09:14:43,201 [DEBUG][       Thread-249651][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 09:14:43,201 [DEBUG][       Thread-249651][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 09:14:43,204 [DEBUG][       Thread-249651][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 09:14:43,215 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 09:14:43,216 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 09:14:43,218 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 09:14:43,219 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 09:14:43,224 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 09:14:43,226 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 09:14:43,226 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 09:14:43,227 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 09:14:43,227 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.301330 -999.00   +7.50  24.41     57   -0.30 1 1 1 1 1   887    0 8.36 34.59 ----- 24.4 24.4 50.9 30.8 10.8 -27.9 9.7 -28.5 8.5 -27.5 9.5 -26.0
2025-06-13 09:14:43,227 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 09:14:43,227 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 09:14:43,227 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.301330
2025-06-13 09:14:43,228 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 09:14:43,228 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 09:14:43,228 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 09:14:43,228 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 09:14:43,228 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 09:14:43,228 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T09:14:35', tmtdew=9.02, humidity=52.79, cloud=0.0, wind=22.9, temperature=7.64, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T07:13:54.912', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 09:14:43,229 [DEBUG][       Thread-249651][   transport.py][1871] : EOF in transport thread
2025-06-13 09:14:43,313 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 09:14:43,325 [DEBUG][       Thread-249654][   transport.py][1871] : starting thread (client mode): 0x863ec310
2025-06-13 09:14:43,325 [DEBUG][       Thread-249654][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 09:14:43,340 [DEBUG][       Thread-249654][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 09:14:43,340 [ INFO][       Thread-249654][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 09:14:43,348 [DEBUG][       Thread-249654][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 09:14:43,348 [DEBUG][       Thread-249654][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 09:14:43,348 [DEBUG][       Thread-249654][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 09:14:43,348 [DEBUG][       Thread-249654][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:14:43,348 [DEBUG][       Thread-249654][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:14:43,348 [DEBUG][       Thread-249654][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:14:43,348 [DEBUG][       Thread-249654][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:14:43,348 [DEBUG][       Thread-249654][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 09:14:43,348 [DEBUG][       Thread-249654][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 09:14:43,348 [DEBUG][       Thread-249654][   transport.py][1871] : client lang: <none>
2025-06-13 09:14:43,348 [DEBUG][       Thread-249654][   transport.py][1871] : server lang: <none>
2025-06-13 09:14:43,348 [DEBUG][       Thread-249654][   transport.py][1871] : kex follows: False
2025-06-13 09:14:43,348 [DEBUG][       Thread-249654][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 09:14:43,348 [DEBUG][       Thread-249654][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 09:14:43,348 [DEBUG][       Thread-249654][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 09:14:43,348 [DEBUG][       Thread-249654][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 09:14:43,348 [DEBUG][       Thread-249654][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 09:14:43,348 [DEBUG][       Thread-249654][   transport.py][1871] : Compression: none
2025-06-13 09:14:43,349 [DEBUG][       Thread-249654][   transport.py][1871] : === End of kex handshake ===
2025-06-13 09:14:43,406 [DEBUG][       Thread-249654][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 09:14:43,407 [DEBUG][       Thread-249654][   transport.py][1871] : Switch to new keys ...
2025-06-13 09:14:43,407 [DEBUG][       Thread-249654][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 09:14:43,408 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 09:14:43,408 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 09:14:43,463 [DEBUG][       Thread-249654][   transport.py][1871] : userauth is OK
2025-06-13 09:14:43,463 [DEBUG][       Thread-249654][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 09:14:43,463 [DEBUG][       Thread-249654][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 09:14:43,463 [DEBUG][       Thread-249654][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 09:14:43,463 [DEBUG][       Thread-249654][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 09:14:43,481 [ INFO][       Thread-249654][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 09:14:43,482 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 09:14:43,482 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 09:14:44,475 [DEBUG][       Thread-249654][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 09:14:44,476 [DEBUG][       Thread-249654][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 09:14:44,523 [DEBUG][       Thread-249654][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 09:14:44,524 [DEBUG][       Thread-249654][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 09:14:44,532 [DEBUG][       Thread-249654][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 09:14:44,541 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 09:14:44,541 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 09:14:44,550 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 09:14:44,561 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 09:14:44,561 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 09:14:44,562 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 09:14:44,569 [DEBUG][       Thread-249654][   transport.py][1871] : EOF in transport thread
2025-06-13 09:14:51,047 [DEBUG][Thread-249656 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:14:52,285 [DEBUG][Thread-249657 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:14:53,359 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:14:53,360 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:14:54,572 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 09:14:54,572 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 09:14:54,572 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 09:14:54,575 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 09:14:55,050 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 9, 14, 35), 9.02, 52.79, 0.0, 22.9, 7.64, 0, 0, 0, 2, 0, 0),)
2025-06-13 09:14:55,050 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 09:14:35
2025-06-13 09:14:55,128 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 09:14:55,132 [DEBUG][       Thread-249658][   transport.py][1871] : starting thread (client mode): 0x863ec910
2025-06-13 09:14:55,132 [DEBUG][       Thread-249658][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 09:14:55,152 [DEBUG][       Thread-249658][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 09:14:55,152 [ INFO][       Thread-249658][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 09:14:55,155 [DEBUG][       Thread-249658][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 09:14:55,155 [DEBUG][       Thread-249658][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 09:14:55,155 [DEBUG][       Thread-249658][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 09:14:55,155 [DEBUG][       Thread-249658][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:14:55,155 [DEBUG][       Thread-249658][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:14:55,155 [DEBUG][       Thread-249658][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:14:55,156 [DEBUG][       Thread-249658][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:14:55,156 [DEBUG][       Thread-249658][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 09:14:55,156 [DEBUG][       Thread-249658][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 09:14:55,156 [DEBUG][       Thread-249658][   transport.py][1871] : client lang: <none>
2025-06-13 09:14:55,156 [DEBUG][       Thread-249658][   transport.py][1871] : server lang: <none>
2025-06-13 09:14:55,156 [DEBUG][       Thread-249658][   transport.py][1871] : kex follows: False
2025-06-13 09:14:55,156 [DEBUG][       Thread-249658][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 09:14:55,156 [DEBUG][       Thread-249658][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 09:14:55,156 [DEBUG][       Thread-249658][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 09:14:55,156 [DEBUG][       Thread-249658][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 09:14:55,156 [DEBUG][       Thread-249658][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 09:14:55,156 [DEBUG][       Thread-249658][   transport.py][1871] : Compression: none
2025-06-13 09:14:55,156 [DEBUG][       Thread-249658][   transport.py][1871] : === End of kex handshake ===
2025-06-13 09:14:55,174 [DEBUG][       Thread-249658][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 09:14:55,174 [DEBUG][       Thread-249658][   transport.py][1871] : Switch to new keys ...
2025-06-13 09:14:55,175 [DEBUG][       Thread-249658][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 09:14:55,175 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 09:14:55,175 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 09:14:55,176 [DEBUG][       Thread-249658][   transport.py][1871] : userauth is OK
2025-06-13 09:14:55,201 [ INFO][       Thread-249658][   transport.py][1871] : Authentication (password) successful!
2025-06-13 09:14:55,201 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 09:14:55,853 [DEBUG][       Thread-249658][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 09:14:55,853 [DEBUG][       Thread-249658][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 09:14:55,901 [DEBUG][       Thread-249658][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 09:14:55,901 [DEBUG][       Thread-249658][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 09:14:55,903 [DEBUG][       Thread-249658][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 09:14:55,916 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 09:14:55,917 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 09:14:55,918 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 09:14:55,920 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 09:14:55,924 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 09:14:55,926 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 09:14:55,926 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 09:14:55,926 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 09:14:55,926 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.301677 -999.00   +7.50  24.37     57   -0.30 1 1 1 1 1   887    0 8.48 36.65 ----- 24.4 24.4 43.4 30.9 10.8 -27.7 9.7 -28.4 8.5 -27.2 9.6 -26.1
2025-06-13 09:14:55,927 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 09:14:55,927 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 09:14:55,927 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.301677
2025-06-13 09:14:55,927 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 09:14:55,927 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 09:14:55,928 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 09:14:55,928 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 09:14:55,928 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 09:14:55,928 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T09:14:35', tmtdew=9.02, humidity=52.79, cloud=0.0, wind=22.9, temperature=7.64, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T07:14:24.893', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 09:14:55,929 [DEBUG][       Thread-249658][   transport.py][1871] : EOF in transport thread
2025-06-13 09:14:56,012 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 09:14:56,022 [DEBUG][       Thread-249661][   transport.py][1871] : starting thread (client mode): 0x863a53f0
2025-06-13 09:14:56,022 [DEBUG][       Thread-249661][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 09:14:56,037 [DEBUG][       Thread-249661][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 09:14:56,037 [ INFO][       Thread-249661][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 09:14:56,044 [DEBUG][       Thread-249661][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 09:14:56,044 [DEBUG][       Thread-249661][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 09:14:56,044 [DEBUG][       Thread-249661][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 09:14:56,044 [DEBUG][       Thread-249661][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:14:56,044 [DEBUG][       Thread-249661][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:14:56,044 [DEBUG][       Thread-249661][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:14:56,044 [DEBUG][       Thread-249661][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:14:56,045 [DEBUG][       Thread-249661][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 09:14:56,045 [DEBUG][       Thread-249661][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 09:14:56,045 [DEBUG][       Thread-249661][   transport.py][1871] : client lang: <none>
2025-06-13 09:14:56,045 [DEBUG][       Thread-249661][   transport.py][1871] : server lang: <none>
2025-06-13 09:14:56,045 [DEBUG][       Thread-249661][   transport.py][1871] : kex follows: False
2025-06-13 09:14:56,045 [DEBUG][       Thread-249661][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 09:14:56,045 [DEBUG][       Thread-249661][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 09:14:56,045 [DEBUG][       Thread-249661][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 09:14:56,045 [DEBUG][       Thread-249661][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 09:14:56,045 [DEBUG][       Thread-249661][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 09:14:56,045 [DEBUG][       Thread-249661][   transport.py][1871] : Compression: none
2025-06-13 09:14:56,045 [DEBUG][       Thread-249661][   transport.py][1871] : === End of kex handshake ===
2025-06-13 09:14:56,103 [DEBUG][       Thread-249661][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 09:14:56,104 [DEBUG][       Thread-249661][   transport.py][1871] : Switch to new keys ...
2025-06-13 09:14:56,104 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 09:14:56,105 [DEBUG][       Thread-249661][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 09:14:56,105 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 09:14:56,159 [DEBUG][       Thread-249661][   transport.py][1871] : userauth is OK
2025-06-13 09:14:56,159 [DEBUG][       Thread-249661][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 09:14:56,159 [DEBUG][       Thread-249661][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 09:14:56,159 [DEBUG][       Thread-249661][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 09:14:56,159 [DEBUG][       Thread-249661][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 09:14:56,179 [ INFO][       Thread-249661][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 09:14:56,179 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 09:14:56,180 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 09:14:57,207 [DEBUG][       Thread-249661][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 09:14:57,207 [DEBUG][       Thread-249661][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 09:14:57,255 [DEBUG][       Thread-249661][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 09:14:57,256 [DEBUG][       Thread-249661][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 09:14:57,265 [DEBUG][       Thread-249661][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 09:14:57,275 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 09:14:57,275 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 09:14:57,283 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 09:14:57,292 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 09:14:57,292 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 09:14:57,302 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 09:14:57,309 [DEBUG][       Thread-249661][   transport.py][1871] : EOF in transport thread
2025-06-13 09:15:00,086 [DEBUG][Thread-249663 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:15:02,654 [DEBUG][Thread-249664 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:15:07,312 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 09:15:07,312 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 09:15:07,312 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 09:15:07,313 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 09:15:07,784 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 9, 14, 35), 9.02, 52.79, 0.0, 22.9, 7.64, 0, 0, 0, 2, 0, 0),)
2025-06-13 09:15:07,784 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 09:14:35
2025-06-13 09:15:07,869 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 09:15:07,874 [DEBUG][       Thread-249665][   transport.py][1871] : starting thread (client mode): 0x8636a500
2025-06-13 09:15:07,874 [DEBUG][       Thread-249665][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 09:15:07,897 [DEBUG][       Thread-249665][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 09:15:07,897 [ INFO][       Thread-249665][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 09:15:07,901 [DEBUG][       Thread-249665][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 09:15:07,901 [DEBUG][       Thread-249665][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 09:15:07,901 [DEBUG][       Thread-249665][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 09:15:07,901 [DEBUG][       Thread-249665][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:15:07,901 [DEBUG][       Thread-249665][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:15:07,901 [DEBUG][       Thread-249665][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:15:07,901 [DEBUG][       Thread-249665][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:15:07,901 [DEBUG][       Thread-249665][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 09:15:07,901 [DEBUG][       Thread-249665][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 09:15:07,901 [DEBUG][       Thread-249665][   transport.py][1871] : client lang: <none>
2025-06-13 09:15:07,901 [DEBUG][       Thread-249665][   transport.py][1871] : server lang: <none>
2025-06-13 09:15:07,901 [DEBUG][       Thread-249665][   transport.py][1871] : kex follows: False
2025-06-13 09:15:07,901 [DEBUG][       Thread-249665][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 09:15:07,901 [DEBUG][       Thread-249665][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 09:15:07,901 [DEBUG][       Thread-249665][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 09:15:07,901 [DEBUG][       Thread-249665][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 09:15:07,901 [DEBUG][       Thread-249665][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 09:15:07,901 [DEBUG][       Thread-249665][   transport.py][1871] : Compression: none
2025-06-13 09:15:07,901 [DEBUG][       Thread-249665][   transport.py][1871] : === End of kex handshake ===
2025-06-13 09:15:07,916 [DEBUG][       Thread-249665][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 09:15:07,917 [DEBUG][       Thread-249665][   transport.py][1871] : Switch to new keys ...
2025-06-13 09:15:07,917 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 09:15:07,917 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 09:15:07,917 [DEBUG][       Thread-249665][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 09:15:07,917 [DEBUG][       Thread-249665][   transport.py][1871] : userauth is OK
2025-06-13 09:15:07,944 [ INFO][       Thread-249665][   transport.py][1871] : Authentication (password) successful!
2025-06-13 09:15:07,944 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 09:15:09,103 [DEBUG][Thread-249667 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:15:16,203 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:15:16,204 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:15:18,122 [DEBUG][Thread-249668 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:15:22,144 [DEBUG][       Thread-249665][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 09:15:22,145 [DEBUG][       Thread-249665][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 09:15:22,188 [DEBUG][       Thread-249665][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 09:15:22,189 [DEBUG][       Thread-249665][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 09:15:22,191 [DEBUG][       Thread-249665][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 09:15:22,338 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 09:15:22,338 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 09:15:22,340 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 09:15:22,342 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 09:15:22,358 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 09:15:22,360 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 09:15:22,360 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 09:15:22,360 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 09:15:22,361 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.301677 -999.00   +7.50  24.37     57   -0.30 1 1 1 1 1   887    0 8.48 36.65 ----- 24.4 24.4 43.4 30.9 10.8 -27.7 9.7 -28.4 8.5 -27.2 9.6 -26.1
2025-06-13 09:15:22,361 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 09:15:22,361 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 09:15:22,361 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.301677
2025-06-13 09:15:22,361 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 09:15:22,362 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 09:15:22,362 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 09:15:22,362 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 09:15:22,362 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 09:15:22,362 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T09:14:35', tmtdew=9.02, humidity=52.79, cloud=0.0, wind=22.9, temperature=7.64, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T07:14:24.893', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 09:15:22,363 [DEBUG][       Thread-249665][   transport.py][1871] : EOF in transport thread
2025-06-13 09:15:22,446 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 09:15:22,457 [DEBUG][       Thread-249670][   transport.py][1871] : starting thread (client mode): 0x863ed120
2025-06-13 09:15:22,457 [DEBUG][       Thread-249670][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 09:15:22,473 [DEBUG][       Thread-249670][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 09:15:22,473 [ INFO][       Thread-249670][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 09:15:22,490 [DEBUG][       Thread-249670][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 09:15:22,490 [DEBUG][       Thread-249670][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 09:15:22,491 [DEBUG][       Thread-249670][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 09:15:22,491 [DEBUG][       Thread-249670][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:15:22,491 [DEBUG][       Thread-249670][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:15:22,491 [DEBUG][       Thread-249670][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:15:22,491 [DEBUG][       Thread-249670][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:15:22,491 [DEBUG][       Thread-249670][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 09:15:22,491 [DEBUG][       Thread-249670][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 09:15:22,491 [DEBUG][       Thread-249670][   transport.py][1871] : client lang: <none>
2025-06-13 09:15:22,491 [DEBUG][       Thread-249670][   transport.py][1871] : server lang: <none>
2025-06-13 09:15:22,491 [DEBUG][       Thread-249670][   transport.py][1871] : kex follows: False
2025-06-13 09:15:22,491 [DEBUG][       Thread-249670][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 09:15:22,491 [DEBUG][       Thread-249670][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 09:15:22,491 [DEBUG][       Thread-249670][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 09:15:22,491 [DEBUG][       Thread-249670][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 09:15:22,491 [DEBUG][       Thread-249670][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 09:15:22,491 [DEBUG][       Thread-249670][   transport.py][1871] : Compression: none
2025-06-13 09:15:22,491 [DEBUG][       Thread-249670][   transport.py][1871] : === End of kex handshake ===
2025-06-13 09:15:22,548 [DEBUG][       Thread-249670][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 09:15:22,549 [DEBUG][       Thread-249670][   transport.py][1871] : Switch to new keys ...
2025-06-13 09:15:22,549 [DEBUG][       Thread-249670][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 09:15:22,549 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 09:15:22,550 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 09:15:22,610 [DEBUG][       Thread-249670][   transport.py][1871] : userauth is OK
2025-06-13 09:15:22,610 [DEBUG][       Thread-249670][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 09:15:22,611 [DEBUG][       Thread-249670][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 09:15:22,611 [DEBUG][       Thread-249670][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 09:15:22,611 [DEBUG][       Thread-249670][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 09:15:22,629 [ INFO][       Thread-249670][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 09:15:22,629 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 09:15:22,631 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 09:15:23,653 [DEBUG][       Thread-249670][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 09:15:23,653 [DEBUG][       Thread-249670][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 09:15:23,706 [DEBUG][       Thread-249670][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 09:15:23,706 [DEBUG][       Thread-249670][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 09:15:23,715 [DEBUG][       Thread-249670][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 09:15:23,724 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 09:15:23,725 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 09:15:23,733 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 09:15:23,741 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 09:15:23,742 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 09:15:23,742 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 09:15:23,750 [DEBUG][       Thread-249670][   transport.py][1871] : EOF in transport thread
2025-06-13 09:15:27,143 [DEBUG][Thread-249672 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:15:33,752 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 09:15:33,753 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 09:15:33,753 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 09:15:33,755 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 09:15:34,216 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 9, 15, 7), 9.15, 52.27, 0.0, 24.46, 7.69, 0, 0, 0, 2, 0, 0),)
2025-06-13 09:15:34,216 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 09:15:07
2025-06-13 09:15:34,295 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 09:15:34,300 [DEBUG][       Thread-249673][   transport.py][1871] : starting thread (client mode): 0x86368940
2025-06-13 09:15:34,300 [DEBUG][       Thread-249673][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 09:15:34,322 [DEBUG][       Thread-249673][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 09:15:34,322 [ INFO][       Thread-249673][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 09:15:34,325 [DEBUG][       Thread-249673][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 09:15:34,325 [DEBUG][       Thread-249673][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 09:15:34,325 [DEBUG][       Thread-249673][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 09:15:34,325 [DEBUG][       Thread-249673][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:15:34,325 [DEBUG][       Thread-249673][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:15:34,325 [DEBUG][       Thread-249673][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:15:34,325 [DEBUG][       Thread-249673][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:15:34,325 [DEBUG][       Thread-249673][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 09:15:34,325 [DEBUG][       Thread-249673][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 09:15:34,325 [DEBUG][       Thread-249673][   transport.py][1871] : client lang: <none>
2025-06-13 09:15:34,325 [DEBUG][       Thread-249673][   transport.py][1871] : server lang: <none>
2025-06-13 09:15:34,325 [DEBUG][       Thread-249673][   transport.py][1871] : kex follows: False
2025-06-13 09:15:34,325 [DEBUG][       Thread-249673][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 09:15:34,325 [DEBUG][       Thread-249673][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 09:15:34,325 [DEBUG][       Thread-249673][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 09:15:34,325 [DEBUG][       Thread-249673][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 09:15:34,326 [DEBUG][       Thread-249673][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 09:15:34,326 [DEBUG][       Thread-249673][   transport.py][1871] : Compression: none
2025-06-13 09:15:34,326 [DEBUG][       Thread-249673][   transport.py][1871] : === End of kex handshake ===
2025-06-13 09:15:34,343 [DEBUG][       Thread-249673][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 09:15:34,344 [DEBUG][       Thread-249673][   transport.py][1871] : Switch to new keys ...
2025-06-13 09:15:34,344 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 09:15:34,345 [DEBUG][       Thread-249673][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 09:15:34,345 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 09:15:34,346 [DEBUG][       Thread-249673][   transport.py][1871] : userauth is OK
2025-06-13 09:15:34,371 [ INFO][       Thread-249673][   transport.py][1871] : Authentication (password) successful!
2025-06-13 09:15:34,371 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 09:15:34,952 [DEBUG][       Thread-249673][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 09:15:34,952 [DEBUG][       Thread-249673][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 09:15:34,993 [DEBUG][       Thread-249673][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 09:15:34,993 [DEBUG][       Thread-249673][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 09:15:34,996 [DEBUG][       Thread-249673][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 09:15:35,007 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 09:15:35,008 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 09:15:35,009 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 09:15:35,010 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 09:15:35,015 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 09:15:35,016 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 09:15:35,016 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 09:15:35,017 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 09:15:35,017 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.302025 -999.00   +7.40  23.82     57   -0.30 1 1 1 1 1   887    0 8.50 37.34 ----- 23.8 23.8 45.8 32.6 10.8 -28.0 9.8 -28.4 8.5 -27.4 9.6 -26.3
2025-06-13 09:15:35,017 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 09:15:35,017 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 09:15:35,017 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.302025
2025-06-13 09:15:35,018 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 09:15:35,018 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 09:15:35,018 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 09:15:35,018 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 09:15:35,018 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 09:15:35,018 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T09:15:07', tmtdew=9.15, humidity=52.27, cloud=0.0, wind=24.46, temperature=7.69, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T07:14:54.960', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 09:15:35,018 [DEBUG][       Thread-249673][   transport.py][1871] : EOF in transport thread
2025-06-13 09:15:35,102 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 09:15:35,111 [DEBUG][       Thread-249676][   transport.py][1871] : starting thread (client mode): 0x863a4c40
2025-06-13 09:15:35,111 [DEBUG][       Thread-249676][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 09:15:35,126 [DEBUG][       Thread-249676][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 09:15:35,126 [ INFO][       Thread-249676][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 09:15:35,134 [DEBUG][       Thread-249676][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 09:15:35,134 [DEBUG][       Thread-249676][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 09:15:35,134 [DEBUG][       Thread-249676][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 09:15:35,134 [DEBUG][       Thread-249676][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:15:35,134 [DEBUG][       Thread-249676][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:15:35,134 [DEBUG][       Thread-249676][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:15:35,134 [DEBUG][       Thread-249676][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:15:35,134 [DEBUG][       Thread-249676][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 09:15:35,134 [DEBUG][       Thread-249676][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 09:15:35,134 [DEBUG][       Thread-249676][   transport.py][1871] : client lang: <none>
2025-06-13 09:15:35,134 [DEBUG][       Thread-249676][   transport.py][1871] : server lang: <none>
2025-06-13 09:15:35,134 [DEBUG][       Thread-249676][   transport.py][1871] : kex follows: False
2025-06-13 09:15:35,134 [DEBUG][       Thread-249676][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 09:15:35,134 [DEBUG][       Thread-249676][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 09:15:35,134 [DEBUG][       Thread-249676][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 09:15:35,134 [DEBUG][       Thread-249676][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 09:15:35,134 [DEBUG][       Thread-249676][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 09:15:35,134 [DEBUG][       Thread-249676][   transport.py][1871] : Compression: none
2025-06-13 09:15:35,134 [DEBUG][       Thread-249676][   transport.py][1871] : === End of kex handshake ===
2025-06-13 09:15:35,190 [DEBUG][       Thread-249676][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 09:15:35,191 [DEBUG][       Thread-249676][   transport.py][1871] : Switch to new keys ...
2025-06-13 09:15:35,191 [DEBUG][       Thread-249676][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 09:15:35,191 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 09:15:35,192 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 09:15:35,247 [DEBUG][       Thread-249676][   transport.py][1871] : userauth is OK
2025-06-13 09:15:35,247 [DEBUG][       Thread-249676][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 09:15:35,247 [DEBUG][       Thread-249676][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 09:15:35,248 [DEBUG][       Thread-249676][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 09:15:35,248 [DEBUG][       Thread-249676][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 09:15:35,266 [ INFO][       Thread-249676][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 09:15:35,267 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 09:15:35,267 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 09:15:36,162 [DEBUG][Thread-249678 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:15:36,266 [DEBUG][       Thread-249676][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 09:15:36,266 [DEBUG][       Thread-249676][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 09:15:36,315 [DEBUG][       Thread-249676][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 09:15:36,316 [DEBUG][       Thread-249676][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 09:15:36,326 [DEBUG][       Thread-249676][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 09:15:36,334 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 09:15:36,334 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 09:15:36,343 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 09:15:36,352 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 09:15:36,352 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 09:15:36,352 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 09:15:36,360 [DEBUG][       Thread-249676][   transport.py][1871] : EOF in transport thread
2025-06-13 09:15:45,191 [DEBUG][Thread-249679 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:15:46,363 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 09:15:46,363 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 09:15:46,363 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 09:15:46,364 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 09:15:46,832 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 9, 15, 39), 9.14, 52.34, 0.0, 22.3, 7.72, 0, 0, 0, 2, 0, 0),)
2025-06-13 09:15:46,832 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 09:15:39
2025-06-13 09:15:46,919 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 09:15:46,925 [DEBUG][       Thread-249680][   transport.py][1871] : starting thread (client mode): 0x863694b0
2025-06-13 09:15:46,925 [DEBUG][       Thread-249680][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 09:15:46,945 [DEBUG][       Thread-249680][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 09:15:46,945 [ INFO][       Thread-249680][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 09:15:46,948 [DEBUG][       Thread-249680][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 09:15:46,948 [DEBUG][       Thread-249680][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 09:15:46,948 [DEBUG][       Thread-249680][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 09:15:46,948 [DEBUG][       Thread-249680][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:15:46,948 [DEBUG][       Thread-249680][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:15:46,948 [DEBUG][       Thread-249680][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:15:46,948 [DEBUG][       Thread-249680][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:15:46,948 [DEBUG][       Thread-249680][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 09:15:46,948 [DEBUG][       Thread-249680][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 09:15:46,948 [DEBUG][       Thread-249680][   transport.py][1871] : client lang: <none>
2025-06-13 09:15:46,948 [DEBUG][       Thread-249680][   transport.py][1871] : server lang: <none>
2025-06-13 09:15:46,948 [DEBUG][       Thread-249680][   transport.py][1871] : kex follows: False
2025-06-13 09:15:46,948 [DEBUG][       Thread-249680][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 09:15:46,948 [DEBUG][       Thread-249680][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 09:15:46,948 [DEBUG][       Thread-249680][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 09:15:46,948 [DEBUG][       Thread-249680][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 09:15:46,948 [DEBUG][       Thread-249680][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 09:15:46,948 [DEBUG][       Thread-249680][   transport.py][1871] : Compression: none
2025-06-13 09:15:46,948 [DEBUG][       Thread-249680][   transport.py][1871] : === End of kex handshake ===
2025-06-13 09:15:46,962 [DEBUG][       Thread-249680][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 09:15:46,962 [DEBUG][       Thread-249680][   transport.py][1871] : Switch to new keys ...
2025-06-13 09:15:46,962 [DEBUG][       Thread-249680][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 09:15:46,963 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 09:15:46,963 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 09:15:46,964 [DEBUG][       Thread-249680][   transport.py][1871] : userauth is OK
2025-06-13 09:15:46,977 [ INFO][       Thread-249680][   transport.py][1871] : Authentication (password) successful!
2025-06-13 09:15:46,977 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 09:15:47,585 [DEBUG][       Thread-249680][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 09:15:47,585 [DEBUG][       Thread-249680][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 09:15:47,628 [DEBUG][       Thread-249680][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 09:15:47,628 [DEBUG][       Thread-249680][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 09:15:47,630 [DEBUG][       Thread-249680][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 09:15:47,643 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 09:15:47,643 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 09:15:47,644 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 09:15:47,645 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 09:15:47,647 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 09:15:47,648 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 09:15:47,648 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 09:15:47,648 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 09:15:47,648 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.302025 -999.00   +7.40  23.82     57   -0.30 1 1 1 1 1   887    0 8.50 37.34 ----- 23.8 23.8 45.8 32.6 10.8 -28.0 9.8 -28.4 8.5 -27.4 9.6 -26.3
2025-06-13 09:15:47,648 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 09:15:47,648 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 09:15:47,648 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.302025
2025-06-13 09:15:47,648 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 09:15:47,648 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 09:15:47,648 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 09:15:47,648 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 09:15:47,648 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 09:15:47,648 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T09:15:39', tmtdew=9.14, humidity=52.34, cloud=0.0, wind=22.3, temperature=7.72, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T07:14:54.960', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 09:15:47,649 [DEBUG][       Thread-249680][   transport.py][1871] : EOF in transport thread
2025-06-13 09:15:47,723 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 09:15:53,389 [DEBUG][Thread-249683 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:15:54,208 [DEBUG][Thread-249684 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:15:54,459 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:15:54,461 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:16:02,686 [DEBUG][Thread-249685 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:16:03,239 [DEBUG][Thread-249686 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:16:12,257 [DEBUG][Thread-249687 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:16:16,340 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:16:16,341 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:16:21,274 [DEBUG][Thread-249688 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:16:30,291 [DEBUG][Thread-249689 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:16:39,310 [DEBUG][Thread-249690 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:16:48,329 [DEBUG][Thread-249691 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:16:54,538 [DEBUG][Thread-249692 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:16:55,614 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:16:55,616 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:16:57,348 [DEBUG][Thread-249693 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:17:02,714 [DEBUG][Thread-249694 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:17:06,365 [DEBUG][Thread-249695 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:17:15,383 [DEBUG][Thread-249696 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:17:16,479 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:17:16,480 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:17:24,400 [DEBUG][Thread-249697 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:17:33,419 [DEBUG][Thread-249698 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:17:42,438 [DEBUG][Thread-249699 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:17:51,455 [DEBUG][Thread-249700 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:17:55,687 [DEBUG][Thread-249701 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:17:56,116 [WARNING][ poll_weather_worker][      driver.py][ 286] : Unable to open ssh connection for writing weather state to io.saao.ac.za: [Errno 110] Connection timed out
2025-06-13 09:17:56,758 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:17:56,759 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:18:00,474 [DEBUG][Thread-249702 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:18:02,763 [DEBUG][Thread-249703 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:18:06,125 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 09:18:06,126 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 09:18:06,126 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 09:18:06,128 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 09:18:06,612 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 9, 17, 45), 9.15, 52.48, 0.0, 20.4, 7.75, 0, 0, 0, 2, 0, 0),)
2025-06-13 09:18:06,612 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 09:17:45
2025-06-13 09:18:06,694 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 09:18:06,699 [DEBUG][       Thread-249704][   transport.py][1871] : starting thread (client mode): 0x867ff8e0
2025-06-13 09:18:06,700 [DEBUG][       Thread-249704][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 09:18:06,719 [DEBUG][       Thread-249704][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 09:18:06,720 [ INFO][       Thread-249704][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 09:18:06,723 [DEBUG][       Thread-249704][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 09:18:06,723 [DEBUG][       Thread-249704][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 09:18:06,723 [DEBUG][       Thread-249704][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 09:18:06,723 [DEBUG][       Thread-249704][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:18:06,723 [DEBUG][       Thread-249704][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:18:06,723 [DEBUG][       Thread-249704][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:18:06,723 [DEBUG][       Thread-249704][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:18:06,723 [DEBUG][       Thread-249704][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 09:18:06,723 [DEBUG][       Thread-249704][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 09:18:06,723 [DEBUG][       Thread-249704][   transport.py][1871] : client lang: <none>
2025-06-13 09:18:06,723 [DEBUG][       Thread-249704][   transport.py][1871] : server lang: <none>
2025-06-13 09:18:06,723 [DEBUG][       Thread-249704][   transport.py][1871] : kex follows: False
2025-06-13 09:18:06,724 [DEBUG][       Thread-249704][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 09:18:06,724 [DEBUG][       Thread-249704][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 09:18:06,724 [DEBUG][       Thread-249704][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 09:18:06,724 [DEBUG][       Thread-249704][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 09:18:06,724 [DEBUG][       Thread-249704][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 09:18:06,724 [DEBUG][       Thread-249704][   transport.py][1871] : Compression: none
2025-06-13 09:18:06,724 [DEBUG][       Thread-249704][   transport.py][1871] : === End of kex handshake ===
2025-06-13 09:18:06,740 [DEBUG][       Thread-249704][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 09:18:06,741 [DEBUG][       Thread-249704][   transport.py][1871] : Switch to new keys ...
2025-06-13 09:18:06,741 [DEBUG][       Thread-249704][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 09:18:06,742 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 09:18:06,742 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 09:18:06,743 [DEBUG][       Thread-249704][   transport.py][1871] : userauth is OK
2025-06-13 09:18:06,756 [ INFO][       Thread-249704][   transport.py][1871] : Authentication (password) successful!
2025-06-13 09:18:06,756 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 09:18:07,553 [DEBUG][       Thread-249704][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 09:18:07,553 [DEBUG][       Thread-249704][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 09:18:07,597 [DEBUG][       Thread-249704][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 09:18:07,597 [DEBUG][       Thread-249704][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 09:18:07,600 [DEBUG][       Thread-249704][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 09:18:07,611 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 09:18:07,612 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 09:18:07,613 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 09:18:07,615 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 09:18:07,619 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 09:18:07,621 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 09:18:07,621 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 09:18:07,622 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 09:18:07,622 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.303761 -999.00   +7.50  25.05     57   -0.30 1 1 1 1 1   887    0 8.62 36.16 ----- 25.1 25.1 50.2 28.4 10.8 -27.9 9.8 -29.0 8.6 -27.7 9.6 -26.2
2025-06-13 09:18:07,622 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 09:18:07,622 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 09:18:07,622 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.303761
2025-06-13 09:18:07,622 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 09:18:07,622 [DEBUG][       Thread-249704][   transport.py][1871] : EOF in transport thread
2025-06-13 09:18:07,623 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 09:18:07,623 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 09:18:07,624 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 09:18:07,624 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 09:18:07,624 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T09:17:45', tmtdew=9.15, humidity=52.48, cloud=0.0, wind=20.4, temperature=7.75, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T07:17:24.950', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 09:18:07,708 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 09:18:07,719 [DEBUG][       Thread-249707][   transport.py][1871] : starting thread (client mode): 0x8636a770
2025-06-13 09:18:07,719 [DEBUG][       Thread-249707][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 09:18:07,735 [DEBUG][       Thread-249707][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 09:18:07,735 [ INFO][       Thread-249707][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 09:18:07,742 [DEBUG][       Thread-249707][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 09:18:07,742 [DEBUG][       Thread-249707][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 09:18:07,742 [DEBUG][       Thread-249707][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 09:18:07,742 [DEBUG][       Thread-249707][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:18:07,743 [DEBUG][       Thread-249707][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:18:07,743 [DEBUG][       Thread-249707][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:18:07,743 [DEBUG][       Thread-249707][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:18:07,743 [DEBUG][       Thread-249707][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 09:18:07,743 [DEBUG][       Thread-249707][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 09:18:07,743 [DEBUG][       Thread-249707][   transport.py][1871] : client lang: <none>
2025-06-13 09:18:07,743 [DEBUG][       Thread-249707][   transport.py][1871] : server lang: <none>
2025-06-13 09:18:07,743 [DEBUG][       Thread-249707][   transport.py][1871] : kex follows: False
2025-06-13 09:18:07,743 [DEBUG][       Thread-249707][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 09:18:07,743 [DEBUG][       Thread-249707][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 09:18:07,743 [DEBUG][       Thread-249707][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 09:18:07,743 [DEBUG][       Thread-249707][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 09:18:07,743 [DEBUG][       Thread-249707][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 09:18:07,743 [DEBUG][       Thread-249707][   transport.py][1871] : Compression: none
2025-06-13 09:18:07,743 [DEBUG][       Thread-249707][   transport.py][1871] : === End of kex handshake ===
2025-06-13 09:18:07,798 [DEBUG][       Thread-249707][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 09:18:07,799 [DEBUG][       Thread-249707][   transport.py][1871] : Switch to new keys ...
2025-06-13 09:18:07,799 [DEBUG][       Thread-249707][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 09:18:07,800 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 09:18:07,800 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 09:18:07,856 [DEBUG][       Thread-249707][   transport.py][1871] : userauth is OK
2025-06-13 09:18:07,856 [DEBUG][       Thread-249707][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 09:18:07,856 [DEBUG][       Thread-249707][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 09:18:07,856 [DEBUG][       Thread-249707][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 09:18:07,856 [DEBUG][       Thread-249707][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 09:18:07,875 [ INFO][       Thread-249707][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 09:18:07,875 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 09:18:07,876 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 09:18:08,955 [DEBUG][       Thread-249707][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 09:18:08,955 [DEBUG][       Thread-249707][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 09:18:09,004 [DEBUG][       Thread-249707][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 09:18:09,004 [DEBUG][       Thread-249707][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 09:18:09,013 [DEBUG][       Thread-249707][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 09:18:09,021 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 09:18:09,021 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 09:18:09,030 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 09:18:09,038 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 09:18:09,039 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 09:18:09,039 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 09:18:09,047 [DEBUG][       Thread-249707][   transport.py][1871] : EOF in transport thread
2025-06-13 09:18:09,495 [DEBUG][Thread-249709 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:18:16,618 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:18:16,619 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:18:18,533 [DEBUG][Thread-249710 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:18:19,048 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 09:18:19,048 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 09:18:19,048 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 09:18:19,048 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 09:18:19,586 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 9, 17, 45), 9.15, 52.48, 0.0, 20.4, 7.75, 0, 0, 0, 2, 0, 0),)
2025-06-13 09:18:19,587 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 09:17:45
2025-06-13 09:18:19,677 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 09:18:19,681 [DEBUG][       Thread-249711][   transport.py][1871] : starting thread (client mode): 0x8636b730
2025-06-13 09:18:19,681 [DEBUG][       Thread-249711][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 09:18:19,702 [DEBUG][       Thread-249711][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 09:18:19,702 [ INFO][       Thread-249711][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 09:18:19,705 [DEBUG][       Thread-249711][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 09:18:19,705 [DEBUG][       Thread-249711][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 09:18:19,706 [DEBUG][       Thread-249711][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 09:18:19,706 [DEBUG][       Thread-249711][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:18:19,706 [DEBUG][       Thread-249711][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:18:19,706 [DEBUG][       Thread-249711][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:18:19,706 [DEBUG][       Thread-249711][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:18:19,706 [DEBUG][       Thread-249711][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 09:18:19,706 [DEBUG][       Thread-249711][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 09:18:19,706 [DEBUG][       Thread-249711][   transport.py][1871] : client lang: <none>
2025-06-13 09:18:19,706 [DEBUG][       Thread-249711][   transport.py][1871] : server lang: <none>
2025-06-13 09:18:19,706 [DEBUG][       Thread-249711][   transport.py][1871] : kex follows: False
2025-06-13 09:18:19,706 [DEBUG][       Thread-249711][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 09:18:19,706 [DEBUG][       Thread-249711][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 09:18:19,706 [DEBUG][       Thread-249711][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 09:18:19,706 [DEBUG][       Thread-249711][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 09:18:19,706 [DEBUG][       Thread-249711][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 09:18:19,706 [DEBUG][       Thread-249711][   transport.py][1871] : Compression: none
2025-06-13 09:18:19,706 [DEBUG][       Thread-249711][   transport.py][1871] : === End of kex handshake ===
2025-06-13 09:18:19,719 [DEBUG][       Thread-249711][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 09:18:19,719 [DEBUG][       Thread-249711][   transport.py][1871] : Switch to new keys ...
2025-06-13 09:18:19,719 [DEBUG][       Thread-249711][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 09:18:19,719 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 09:18:19,719 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 09:18:19,720 [DEBUG][       Thread-249711][   transport.py][1871] : userauth is OK
2025-06-13 09:18:19,743 [ INFO][       Thread-249711][   transport.py][1871] : Authentication (password) successful!
2025-06-13 09:18:19,743 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 09:18:20,378 [DEBUG][       Thread-249711][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 09:18:20,378 [DEBUG][       Thread-249711][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 09:18:20,420 [DEBUG][       Thread-249711][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 09:18:20,420 [DEBUG][       Thread-249711][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 09:18:20,422 [DEBUG][       Thread-249711][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 09:18:20,434 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 09:18:20,434 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 09:18:20,435 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 09:18:20,436 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 09:18:20,438 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 09:18:20,439 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 09:18:20,439 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 09:18:20,439 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 09:18:20,439 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.304108 -999.00   +7.50  21.19     57   -0.20 1 1 1 1 1   887    0 8.57 36.68 ----- 21.2 21.2 39.0 28.0 10.8 -27.7 9.7 -28.6 8.6 -27.7 9.6 -26.4
2025-06-13 09:18:20,439 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 09:18:20,439 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 09:18:20,439 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.304108
2025-06-13 09:18:20,439 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 09:18:20,439 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 09:18:20,439 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 09:18:20,439 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 09:18:20,439 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 09:18:20,439 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T09:17:45', tmtdew=9.15, humidity=52.48, cloud=0.0, wind=20.4, temperature=7.75, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T07:17:54.931', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 09:18:20,440 [DEBUG][       Thread-249711][   transport.py][1871] : EOF in transport thread
2025-06-13 09:18:20,511 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 09:18:20,530 [DEBUG][       Thread-249714][   transport.py][1871] : starting thread (client mode): 0x867fd6c0
2025-06-13 09:18:20,530 [DEBUG][       Thread-249714][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 09:18:20,546 [DEBUG][       Thread-249714][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 09:18:20,546 [ INFO][       Thread-249714][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 09:18:20,556 [DEBUG][       Thread-249714][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 09:18:20,556 [DEBUG][       Thread-249714][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 09:18:20,556 [DEBUG][       Thread-249714][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 09:18:20,556 [DEBUG][       Thread-249714][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:18:20,556 [DEBUG][       Thread-249714][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:18:20,556 [DEBUG][       Thread-249714][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:18:20,556 [DEBUG][       Thread-249714][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:18:20,556 [DEBUG][       Thread-249714][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 09:18:20,556 [DEBUG][       Thread-249714][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 09:18:20,556 [DEBUG][       Thread-249714][   transport.py][1871] : client lang: <none>
2025-06-13 09:18:20,556 [DEBUG][       Thread-249714][   transport.py][1871] : server lang: <none>
2025-06-13 09:18:20,556 [DEBUG][       Thread-249714][   transport.py][1871] : kex follows: False
2025-06-13 09:18:20,556 [DEBUG][       Thread-249714][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 09:18:20,556 [DEBUG][       Thread-249714][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 09:18:20,556 [DEBUG][       Thread-249714][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 09:18:20,556 [DEBUG][       Thread-249714][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 09:18:20,556 [DEBUG][       Thread-249714][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 09:18:20,556 [DEBUG][       Thread-249714][   transport.py][1871] : Compression: none
2025-06-13 09:18:20,556 [DEBUG][       Thread-249714][   transport.py][1871] : === End of kex handshake ===
2025-06-13 09:18:20,614 [DEBUG][       Thread-249714][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 09:18:20,614 [DEBUG][       Thread-249714][   transport.py][1871] : Switch to new keys ...
2025-06-13 09:18:20,614 [DEBUG][       Thread-249714][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 09:18:20,614 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 09:18:20,614 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 09:18:20,677 [DEBUG][       Thread-249714][   transport.py][1871] : userauth is OK
2025-06-13 09:18:20,677 [DEBUG][       Thread-249714][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 09:18:20,677 [DEBUG][       Thread-249714][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 09:18:20,677 [DEBUG][       Thread-249714][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 09:18:20,677 [DEBUG][       Thread-249714][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 09:18:20,696 [ INFO][       Thread-249714][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 09:18:20,696 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 09:18:20,696 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 09:18:21,668 [DEBUG][       Thread-249714][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 09:18:21,668 [DEBUG][       Thread-249714][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 09:18:21,723 [DEBUG][       Thread-249714][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 09:18:21,723 [DEBUG][       Thread-249714][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 09:18:21,736 [DEBUG][       Thread-249714][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 09:18:21,746 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 09:18:21,746 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 09:18:21,759 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 09:18:21,767 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 09:18:21,767 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 09:18:21,767 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 09:18:21,781 [DEBUG][       Thread-249714][   transport.py][1871] : EOF in transport thread
2025-06-13 09:18:27,553 [DEBUG][Thread-249716 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:18:31,776 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 09:18:31,776 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 09:18:31,776 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 09:18:31,778 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 09:18:32,272 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 9, 18, 17), 9.13, 52.37, 0.0, 21.99, 7.71, 0, 0, 0, 2, 0, 0),)
2025-06-13 09:18:32,272 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 09:18:17
2025-06-13 09:18:32,353 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 09:18:32,359 [DEBUG][       Thread-249717][   transport.py][1871] : starting thread (client mode): 0x863ed5d0
2025-06-13 09:18:32,359 [DEBUG][       Thread-249717][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 09:18:32,380 [DEBUG][       Thread-249717][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 09:18:32,380 [ INFO][       Thread-249717][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 09:18:32,383 [DEBUG][       Thread-249717][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 09:18:32,383 [DEBUG][       Thread-249717][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 09:18:32,383 [DEBUG][       Thread-249717][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 09:18:32,383 [DEBUG][       Thread-249717][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:18:32,383 [DEBUG][       Thread-249717][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:18:32,384 [DEBUG][       Thread-249717][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:18:32,384 [DEBUG][       Thread-249717][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:18:32,384 [DEBUG][       Thread-249717][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 09:18:32,384 [DEBUG][       Thread-249717][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 09:18:32,384 [DEBUG][       Thread-249717][   transport.py][1871] : client lang: <none>
2025-06-13 09:18:32,384 [DEBUG][       Thread-249717][   transport.py][1871] : server lang: <none>
2025-06-13 09:18:32,384 [DEBUG][       Thread-249717][   transport.py][1871] : kex follows: False
2025-06-13 09:18:32,384 [DEBUG][       Thread-249717][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 09:18:32,384 [DEBUG][       Thread-249717][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 09:18:32,384 [DEBUG][       Thread-249717][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 09:18:32,384 [DEBUG][       Thread-249717][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 09:18:32,384 [DEBUG][       Thread-249717][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 09:18:32,384 [DEBUG][       Thread-249717][   transport.py][1871] : Compression: none
2025-06-13 09:18:32,384 [DEBUG][       Thread-249717][   transport.py][1871] : === End of kex handshake ===
2025-06-13 09:18:32,401 [DEBUG][       Thread-249717][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 09:18:32,401 [DEBUG][       Thread-249717][   transport.py][1871] : Switch to new keys ...
2025-06-13 09:18:32,402 [DEBUG][       Thread-249717][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 09:18:32,402 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 09:18:32,402 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 09:18:32,403 [DEBUG][       Thread-249717][   transport.py][1871] : userauth is OK
2025-06-13 09:18:32,416 [ INFO][       Thread-249717][   transport.py][1871] : Authentication (password) successful!
2025-06-13 09:18:32,417 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 09:18:33,064 [DEBUG][       Thread-249717][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 09:18:33,064 [DEBUG][       Thread-249717][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 09:18:33,105 [DEBUG][       Thread-249717][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 09:18:33,105 [DEBUG][       Thread-249717][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 09:18:33,108 [DEBUG][       Thread-249717][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 09:18:33,119 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 09:18:33,119 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 09:18:33,121 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 09:18:33,123 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 09:18:33,128 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 09:18:33,129 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 09:18:33,130 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 09:18:33,130 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 09:18:33,130 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.304108 -999.00   +7.50  21.19     57   -0.20 1 1 1 1 1   887    0 8.57 36.68 ----- 21.2 21.2 39.0 28.0 10.8 -27.7 9.7 -28.6 8.6 -27.7 9.6 -26.4
2025-06-13 09:18:33,130 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 09:18:33,130 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 09:18:33,131 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.304108
2025-06-13 09:18:33,131 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 09:18:33,131 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 09:18:33,131 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 09:18:33,132 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 09:18:33,132 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 09:18:33,132 [DEBUG][       Thread-249717][   transport.py][1871] : EOF in transport thread
2025-06-13 09:18:33,132 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T09:18:17', tmtdew=9.13, humidity=52.37, cloud=0.0, wind=21.99, temperature=7.71, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T07:17:54.931', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 09:18:33,216 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 09:18:33,230 [DEBUG][       Thread-249720][   transport.py][1871] : starting thread (client mode): 0x863c8be0
2025-06-13 09:18:33,230 [DEBUG][       Thread-249720][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 09:18:33,247 [DEBUG][       Thread-249720][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 09:18:33,248 [ INFO][       Thread-249720][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 09:18:33,255 [DEBUG][       Thread-249720][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 09:18:33,255 [DEBUG][       Thread-249720][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 09:18:33,255 [DEBUG][       Thread-249720][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 09:18:33,255 [DEBUG][       Thread-249720][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:18:33,255 [DEBUG][       Thread-249720][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:18:33,256 [DEBUG][       Thread-249720][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:18:33,256 [DEBUG][       Thread-249720][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:18:33,256 [DEBUG][       Thread-249720][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 09:18:33,256 [DEBUG][       Thread-249720][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 09:18:33,256 [DEBUG][       Thread-249720][   transport.py][1871] : client lang: <none>
2025-06-13 09:18:33,256 [DEBUG][       Thread-249720][   transport.py][1871] : server lang: <none>
2025-06-13 09:18:33,256 [DEBUG][       Thread-249720][   transport.py][1871] : kex follows: False
2025-06-13 09:18:33,256 [DEBUG][       Thread-249720][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 09:18:33,256 [DEBUG][       Thread-249720][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 09:18:33,256 [DEBUG][       Thread-249720][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 09:18:33,256 [DEBUG][       Thread-249720][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 09:18:33,256 [DEBUG][       Thread-249720][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 09:18:33,256 [DEBUG][       Thread-249720][   transport.py][1871] : Compression: none
2025-06-13 09:18:33,256 [DEBUG][       Thread-249720][   transport.py][1871] : === End of kex handshake ===
2025-06-13 09:18:33,314 [DEBUG][       Thread-249720][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 09:18:33,315 [DEBUG][       Thread-249720][   transport.py][1871] : Switch to new keys ...
2025-06-13 09:18:33,315 [DEBUG][       Thread-249720][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 09:18:33,316 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 09:18:33,316 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 09:18:33,375 [DEBUG][       Thread-249720][   transport.py][1871] : userauth is OK
2025-06-13 09:18:33,375 [DEBUG][       Thread-249720][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 09:18:33,375 [DEBUG][       Thread-249720][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 09:18:33,375 [DEBUG][       Thread-249720][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 09:18:33,375 [DEBUG][       Thread-249720][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 09:18:33,394 [ INFO][       Thread-249720][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 09:18:33,394 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 09:18:33,394 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 09:18:34,405 [DEBUG][       Thread-249720][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 09:18:34,406 [DEBUG][       Thread-249720][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 09:18:34,455 [DEBUG][       Thread-249720][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 09:18:34,456 [DEBUG][       Thread-249720][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 09:18:34,468 [DEBUG][       Thread-249720][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 09:18:34,477 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 09:18:34,477 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 09:18:34,485 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 09:18:34,494 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 09:18:34,494 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 09:18:34,494 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 09:18:34,501 [DEBUG][       Thread-249720][   transport.py][1871] : EOF in transport thread
2025-06-13 09:18:36,574 [DEBUG][Thread-249722 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:18:44,504 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 09:18:44,504 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 09:18:44,504 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 09:18:44,507 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 09:18:44,981 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 9, 18, 17), 9.13, 52.37, 0.0, 21.99, 7.71, 0, 0, 0, 2, 0, 0),)
2025-06-13 09:18:44,981 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 09:18:17
2025-06-13 09:18:45,063 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 09:18:45,068 [DEBUG][       Thread-249723][   transport.py][1871] : starting thread (client mode): 0x863a7ee0
2025-06-13 09:18:45,069 [DEBUG][       Thread-249723][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 09:18:45,089 [DEBUG][       Thread-249723][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 09:18:45,089 [ INFO][       Thread-249723][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 09:18:45,092 [DEBUG][       Thread-249723][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 09:18:45,092 [DEBUG][       Thread-249723][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 09:18:45,092 [DEBUG][       Thread-249723][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 09:18:45,092 [DEBUG][       Thread-249723][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:18:45,092 [DEBUG][       Thread-249723][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:18:45,092 [DEBUG][       Thread-249723][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:18:45,092 [DEBUG][       Thread-249723][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:18:45,092 [DEBUG][       Thread-249723][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 09:18:45,092 [DEBUG][       Thread-249723][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 09:18:45,092 [DEBUG][       Thread-249723][   transport.py][1871] : client lang: <none>
2025-06-13 09:18:45,092 [DEBUG][       Thread-249723][   transport.py][1871] : server lang: <none>
2025-06-13 09:18:45,093 [DEBUG][       Thread-249723][   transport.py][1871] : kex follows: False
2025-06-13 09:18:45,093 [DEBUG][       Thread-249723][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 09:18:45,093 [DEBUG][       Thread-249723][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 09:18:45,093 [DEBUG][       Thread-249723][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 09:18:45,093 [DEBUG][       Thread-249723][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 09:18:45,093 [DEBUG][       Thread-249723][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 09:18:45,093 [DEBUG][       Thread-249723][   transport.py][1871] : Compression: none
2025-06-13 09:18:45,093 [DEBUG][       Thread-249723][   transport.py][1871] : === End of kex handshake ===
2025-06-13 09:18:45,101 [DEBUG][       Thread-249723][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 09:18:45,101 [DEBUG][       Thread-249723][   transport.py][1871] : Switch to new keys ...
2025-06-13 09:18:45,102 [DEBUG][       Thread-249723][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 09:18:45,102 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 09:18:45,102 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 09:18:45,103 [DEBUG][       Thread-249723][   transport.py][1871] : userauth is OK
2025-06-13 09:18:45,117 [ INFO][       Thread-249723][   transport.py][1871] : Authentication (password) successful!
2025-06-13 09:18:45,118 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 09:18:45,606 [DEBUG][Thread-249725 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:18:45,718 [DEBUG][       Thread-249723][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 09:18:45,718 [DEBUG][       Thread-249723][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 09:18:45,761 [DEBUG][       Thread-249723][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 09:18:45,761 [DEBUG][       Thread-249723][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 09:18:45,764 [DEBUG][       Thread-249723][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 09:18:45,776 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 09:18:45,776 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 09:18:45,778 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 09:18:45,780 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 09:18:45,785 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 09:18:45,787 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 09:18:45,787 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 09:18:45,788 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 09:18:45,788 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.304108 -999.00   +7.50  21.19     57   -0.20 1 1 1 1 1   887    0 8.57 36.68 ----- 21.2 21.2 39.0 28.0 10.8 -27.7 9.7 -28.6 8.6 -27.7 9.6 -26.4
2025-06-13 09:18:45,788 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 09:18:45,788 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 09:18:45,788 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.304108
2025-06-13 09:18:45,788 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 09:18:45,789 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 09:18:45,789 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 09:18:45,789 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 09:18:45,789 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 09:18:45,789 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T09:18:17', tmtdew=9.13, humidity=52.37, cloud=0.0, wind=21.99, temperature=7.71, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T07:17:54.931', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 09:18:45,790 [DEBUG][       Thread-249723][   transport.py][1871] : EOF in transport thread
2025-06-13 09:18:45,873 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 09:18:45,884 [DEBUG][       Thread-249727][   transport.py][1871] : starting thread (client mode): 0x867ff820
2025-06-13 09:18:45,884 [DEBUG][       Thread-249727][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 09:18:45,899 [DEBUG][       Thread-249727][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 09:18:45,899 [ INFO][       Thread-249727][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 09:18:45,907 [DEBUG][       Thread-249727][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 09:18:45,907 [DEBUG][       Thread-249727][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 09:18:45,907 [DEBUG][       Thread-249727][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 09:18:45,907 [DEBUG][       Thread-249727][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:18:45,907 [DEBUG][       Thread-249727][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:18:45,907 [DEBUG][       Thread-249727][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:18:45,907 [DEBUG][       Thread-249727][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:18:45,907 [DEBUG][       Thread-249727][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 09:18:45,907 [DEBUG][       Thread-249727][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 09:18:45,907 [DEBUG][       Thread-249727][   transport.py][1871] : client lang: <none>
2025-06-13 09:18:45,907 [DEBUG][       Thread-249727][   transport.py][1871] : server lang: <none>
2025-06-13 09:18:45,907 [DEBUG][       Thread-249727][   transport.py][1871] : kex follows: False
2025-06-13 09:18:45,907 [DEBUG][       Thread-249727][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 09:18:45,907 [DEBUG][       Thread-249727][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 09:18:45,907 [DEBUG][       Thread-249727][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 09:18:45,907 [DEBUG][       Thread-249727][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 09:18:45,907 [DEBUG][       Thread-249727][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 09:18:45,907 [DEBUG][       Thread-249727][   transport.py][1871] : Compression: none
2025-06-13 09:18:45,908 [DEBUG][       Thread-249727][   transport.py][1871] : === End of kex handshake ===
2025-06-13 09:18:45,967 [DEBUG][       Thread-249727][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 09:18:45,967 [DEBUG][       Thread-249727][   transport.py][1871] : Switch to new keys ...
2025-06-13 09:18:45,967 [DEBUG][       Thread-249727][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 09:18:45,968 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 09:18:45,968 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 09:18:46,028 [DEBUG][       Thread-249727][   transport.py][1871] : userauth is OK
2025-06-13 09:18:46,029 [DEBUG][       Thread-249727][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 09:18:46,029 [DEBUG][       Thread-249727][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 09:18:46,029 [DEBUG][       Thread-249727][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 09:18:46,029 [DEBUG][       Thread-249727][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 09:18:46,049 [ INFO][       Thread-249727][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 09:18:46,049 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 09:18:46,049 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 09:18:47,075 [DEBUG][       Thread-249727][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 09:18:47,075 [DEBUG][       Thread-249727][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 09:18:47,127 [DEBUG][       Thread-249727][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 09:18:47,127 [DEBUG][       Thread-249727][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 09:18:47,137 [DEBUG][       Thread-249727][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 09:18:47,145 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 09:18:47,145 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 09:18:47,153 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 09:18:47,162 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 09:18:47,162 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 09:18:47,163 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 09:18:47,170 [DEBUG][       Thread-249727][   transport.py][1871] : EOF in transport thread
2025-06-13 09:18:54,624 [DEBUG][Thread-249729 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:18:56,828 [DEBUG][Thread-249730 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:18:57,173 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 09:18:57,173 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 09:18:57,173 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 09:18:57,174 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 09:18:57,655 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 9, 18, 49), 9.15, 52.29, 0.0, 24.77, 7.71, 0, 0, 0, 2, 0, 0),)
2025-06-13 09:18:57,655 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 09:18:49
2025-06-13 09:18:57,743 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 09:18:57,747 [DEBUG][       Thread-249731][   transport.py][1871] : starting thread (client mode): 0x867fe320
2025-06-13 09:18:57,747 [DEBUG][       Thread-249731][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 09:18:57,771 [DEBUG][       Thread-249731][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 09:18:57,771 [ INFO][       Thread-249731][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 09:18:57,774 [DEBUG][       Thread-249731][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 09:18:57,774 [DEBUG][       Thread-249731][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 09:18:57,774 [DEBUG][       Thread-249731][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 09:18:57,774 [DEBUG][       Thread-249731][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:18:57,774 [DEBUG][       Thread-249731][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:18:57,774 [DEBUG][       Thread-249731][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:18:57,774 [DEBUG][       Thread-249731][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:18:57,774 [DEBUG][       Thread-249731][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 09:18:57,775 [DEBUG][       Thread-249731][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 09:18:57,775 [DEBUG][       Thread-249731][   transport.py][1871] : client lang: <none>
2025-06-13 09:18:57,775 [DEBUG][       Thread-249731][   transport.py][1871] : server lang: <none>
2025-06-13 09:18:57,775 [DEBUG][       Thread-249731][   transport.py][1871] : kex follows: False
2025-06-13 09:18:57,775 [DEBUG][       Thread-249731][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 09:18:57,775 [DEBUG][       Thread-249731][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 09:18:57,775 [DEBUG][       Thread-249731][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 09:18:57,775 [DEBUG][       Thread-249731][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 09:18:57,775 [DEBUG][       Thread-249731][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 09:18:57,775 [DEBUG][       Thread-249731][   transport.py][1871] : Compression: none
2025-06-13 09:18:57,775 [DEBUG][       Thread-249731][   transport.py][1871] : === End of kex handshake ===
2025-06-13 09:18:57,788 [DEBUG][       Thread-249731][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 09:18:57,789 [DEBUG][       Thread-249731][   transport.py][1871] : Switch to new keys ...
2025-06-13 09:18:57,789 [DEBUG][       Thread-249731][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 09:18:57,789 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 09:18:57,789 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 09:18:57,789 [DEBUG][       Thread-249731][   transport.py][1871] : userauth is OK
2025-06-13 09:18:57,815 [ INFO][       Thread-249731][   transport.py][1871] : Authentication (password) successful!
2025-06-13 09:18:57,815 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 09:18:57,883 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:18:57,883 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:18:58,467 [DEBUG][       Thread-249731][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 09:18:58,467 [DEBUG][       Thread-249731][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 09:18:58,508 [DEBUG][       Thread-249731][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 09:18:58,508 [DEBUG][       Thread-249731][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 09:18:58,510 [DEBUG][       Thread-249731][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 09:18:58,518 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 09:18:58,518 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 09:18:58,519 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 09:18:58,520 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 09:18:58,523 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 09:18:58,523 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 09:18:58,524 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 09:18:58,524 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 09:18:58,524 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.304455 -999.00   +7.50  29.19     57   -0.10 1 1 1 1 1   887    0 8.51 33.10 ----- 29.2 29.2 43.8 32.5 10.8 -28.0 9.7 -28.9 8.6 -27.7 9.7 -26.3
2025-06-13 09:18:58,524 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 09:18:58,524 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 09:18:58,524 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.304455
2025-06-13 09:18:58,524 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 09:18:58,524 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 09:18:58,524 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 09:18:58,524 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 09:18:58,524 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 09:18:58,524 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T09:18:49', tmtdew=9.15, humidity=52.29, cloud=0.0, wind=24.77, temperature=7.71, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T07:18:24.912', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 09:18:58,524 [DEBUG][       Thread-249731][   transport.py][1871] : EOF in transport thread
2025-06-13 09:18:58,598 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 09:18:58,607 [DEBUG][       Thread-249734][   transport.py][1871] : starting thread (client mode): 0x863c9750
2025-06-13 09:18:58,607 [DEBUG][       Thread-249734][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 09:18:58,622 [DEBUG][       Thread-249734][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 09:18:58,622 [ INFO][       Thread-249734][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 09:18:58,629 [DEBUG][       Thread-249734][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 09:18:58,629 [DEBUG][       Thread-249734][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 09:18:58,629 [DEBUG][       Thread-249734][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 09:18:58,629 [DEBUG][       Thread-249734][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:18:58,629 [DEBUG][       Thread-249734][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:18:58,629 [DEBUG][       Thread-249734][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:18:58,630 [DEBUG][       Thread-249734][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:18:58,630 [DEBUG][       Thread-249734][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 09:18:58,630 [DEBUG][       Thread-249734][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 09:18:58,630 [DEBUG][       Thread-249734][   transport.py][1871] : client lang: <none>
2025-06-13 09:18:58,630 [DEBUG][       Thread-249734][   transport.py][1871] : server lang: <none>
2025-06-13 09:18:58,630 [DEBUG][       Thread-249734][   transport.py][1871] : kex follows: False
2025-06-13 09:18:58,630 [DEBUG][       Thread-249734][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 09:18:58,630 [DEBUG][       Thread-249734][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 09:18:58,630 [DEBUG][       Thread-249734][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 09:18:58,630 [DEBUG][       Thread-249734][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 09:18:58,630 [DEBUG][       Thread-249734][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 09:18:58,630 [DEBUG][       Thread-249734][   transport.py][1871] : Compression: none
2025-06-13 09:18:58,630 [DEBUG][       Thread-249734][   transport.py][1871] : === End of kex handshake ===
2025-06-13 09:18:58,685 [DEBUG][       Thread-249734][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 09:18:58,686 [DEBUG][       Thread-249734][   transport.py][1871] : Switch to new keys ...
2025-06-13 09:18:58,686 [DEBUG][       Thread-249734][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 09:18:58,686 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 09:18:58,686 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 09:18:58,743 [DEBUG][       Thread-249734][   transport.py][1871] : userauth is OK
2025-06-13 09:18:58,743 [DEBUG][       Thread-249734][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 09:18:58,743 [DEBUG][       Thread-249734][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 09:18:58,743 [DEBUG][       Thread-249734][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 09:18:58,743 [DEBUG][       Thread-249734][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 09:18:58,757 [ INFO][       Thread-249734][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 09:18:58,757 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 09:18:58,757 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 09:18:59,750 [DEBUG][       Thread-249734][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 09:18:59,750 [DEBUG][       Thread-249734][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 09:18:59,799 [DEBUG][       Thread-249734][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 09:18:59,799 [DEBUG][       Thread-249734][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 09:18:59,808 [DEBUG][       Thread-249734][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 09:18:59,816 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 09:18:59,816 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 09:18:59,826 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 09:18:59,834 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 09:18:59,834 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 09:18:59,834 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 09:18:59,847 [DEBUG][       Thread-249734][   transport.py][1871] : EOF in transport thread
2025-06-13 09:19:02,816 [DEBUG][Thread-249736 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:19:03,642 [DEBUG][Thread-249737 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:19:09,842 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 09:19:09,843 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 09:19:09,843 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 09:19:09,845 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 09:19:10,315 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 9, 18, 49), 9.15, 52.29, 0.0, 24.77, 7.71, 0, 0, 0, 2, 0, 0),)
2025-06-13 09:19:10,315 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 09:18:49
2025-06-13 09:19:10,396 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 09:19:10,402 [DEBUG][       Thread-249738][   transport.py][1871] : starting thread (client mode): 0x867b7be0
2025-06-13 09:19:10,402 [DEBUG][       Thread-249738][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 09:19:10,421 [DEBUG][       Thread-249738][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 09:19:10,421 [ INFO][       Thread-249738][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 09:19:10,425 [DEBUG][       Thread-249738][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 09:19:10,425 [DEBUG][       Thread-249738][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 09:19:10,425 [DEBUG][       Thread-249738][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 09:19:10,425 [DEBUG][       Thread-249738][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:19:10,425 [DEBUG][       Thread-249738][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:19:10,425 [DEBUG][       Thread-249738][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:19:10,425 [DEBUG][       Thread-249738][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:19:10,425 [DEBUG][       Thread-249738][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 09:19:10,425 [DEBUG][       Thread-249738][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 09:19:10,425 [DEBUG][       Thread-249738][   transport.py][1871] : client lang: <none>
2025-06-13 09:19:10,425 [DEBUG][       Thread-249738][   transport.py][1871] : server lang: <none>
2025-06-13 09:19:10,425 [DEBUG][       Thread-249738][   transport.py][1871] : kex follows: False
2025-06-13 09:19:10,425 [DEBUG][       Thread-249738][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 09:19:10,425 [DEBUG][       Thread-249738][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 09:19:10,425 [DEBUG][       Thread-249738][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 09:19:10,425 [DEBUG][       Thread-249738][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 09:19:10,425 [DEBUG][       Thread-249738][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 09:19:10,425 [DEBUG][       Thread-249738][   transport.py][1871] : Compression: none
2025-06-13 09:19:10,425 [DEBUG][       Thread-249738][   transport.py][1871] : === End of kex handshake ===
2025-06-13 09:19:10,441 [DEBUG][       Thread-249738][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 09:19:10,442 [DEBUG][       Thread-249738][   transport.py][1871] : Switch to new keys ...
2025-06-13 09:19:10,442 [DEBUG][       Thread-249738][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 09:19:10,442 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 09:19:10,443 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 09:19:10,444 [DEBUG][       Thread-249738][   transport.py][1871] : userauth is OK
2025-06-13 09:19:10,469 [ INFO][       Thread-249738][   transport.py][1871] : Authentication (password) successful!
2025-06-13 09:19:10,469 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 09:19:11,131 [DEBUG][       Thread-249738][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 09:19:11,132 [DEBUG][       Thread-249738][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 09:19:11,173 [DEBUG][       Thread-249738][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 09:19:11,173 [DEBUG][       Thread-249738][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 09:19:11,176 [DEBUG][       Thread-249738][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 09:19:11,189 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 09:19:11,189 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 09:19:11,191 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 09:19:11,193 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 09:19:11,198 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 09:19:11,200 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 09:19:11,200 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 09:19:11,201 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 09:19:11,201 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.304455 -999.00   +7.50  29.19     57   -0.10 1 1 1 1 1   887    0 8.51 33.10 ----- 29.2 29.2 43.8 32.5 10.8 -28.0 9.7 -28.9 8.6 -27.7 9.7 -26.3
2025-06-13 09:19:11,201 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 09:19:11,201 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 09:19:11,201 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.304455
2025-06-13 09:19:11,201 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 09:19:11,202 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 09:19:11,202 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 09:19:11,202 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 09:19:11,202 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 09:19:11,202 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T09:18:49', tmtdew=9.15, humidity=52.29, cloud=0.0, wind=24.77, temperature=7.71, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T07:18:24.912', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 09:19:11,203 [DEBUG][       Thread-249738][   transport.py][1871] : EOF in transport thread
2025-06-13 09:19:11,285 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 09:19:11,297 [DEBUG][       Thread-249741][   transport.py][1871] : starting thread (client mode): 0x8636b430
2025-06-13 09:19:11,297 [DEBUG][       Thread-249741][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 09:19:11,314 [DEBUG][       Thread-249741][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 09:19:11,314 [ INFO][       Thread-249741][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 09:19:11,321 [DEBUG][       Thread-249741][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 09:19:11,321 [DEBUG][       Thread-249741][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 09:19:11,322 [DEBUG][       Thread-249741][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 09:19:11,322 [DEBUG][       Thread-249741][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:19:11,322 [DEBUG][       Thread-249741][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:19:11,322 [DEBUG][       Thread-249741][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:19:11,322 [DEBUG][       Thread-249741][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:19:11,322 [DEBUG][       Thread-249741][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 09:19:11,322 [DEBUG][       Thread-249741][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 09:19:11,322 [DEBUG][       Thread-249741][   transport.py][1871] : client lang: <none>
2025-06-13 09:19:11,322 [DEBUG][       Thread-249741][   transport.py][1871] : server lang: <none>
2025-06-13 09:19:11,322 [DEBUG][       Thread-249741][   transport.py][1871] : kex follows: False
2025-06-13 09:19:11,322 [DEBUG][       Thread-249741][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 09:19:11,322 [DEBUG][       Thread-249741][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 09:19:11,322 [DEBUG][       Thread-249741][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 09:19:11,322 [DEBUG][       Thread-249741][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 09:19:11,322 [DEBUG][       Thread-249741][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 09:19:11,322 [DEBUG][       Thread-249741][   transport.py][1871] : Compression: none
2025-06-13 09:19:11,322 [DEBUG][       Thread-249741][   transport.py][1871] : === End of kex handshake ===
2025-06-13 09:19:11,379 [DEBUG][       Thread-249741][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 09:19:11,379 [DEBUG][       Thread-249741][   transport.py][1871] : Switch to new keys ...
2025-06-13 09:19:11,380 [DEBUG][       Thread-249741][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 09:19:11,380 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 09:19:11,380 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 09:19:11,435 [DEBUG][       Thread-249741][   transport.py][1871] : userauth is OK
2025-06-13 09:19:11,435 [DEBUG][       Thread-249741][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 09:19:11,435 [DEBUG][       Thread-249741][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 09:19:11,435 [DEBUG][       Thread-249741][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 09:19:11,435 [DEBUG][       Thread-249741][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 09:19:11,454 [ INFO][       Thread-249741][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 09:19:11,454 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 09:19:11,455 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 09:19:12,497 [DEBUG][       Thread-249741][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 09:19:12,497 [DEBUG][       Thread-249741][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 09:19:12,551 [DEBUG][       Thread-249741][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 09:19:12,552 [DEBUG][       Thread-249741][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 09:19:12,564 [DEBUG][       Thread-249741][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 09:19:12,577 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 09:19:12,577 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 09:19:12,586 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 09:19:12,594 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 09:19:12,595 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 09:19:12,595 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 09:19:12,603 [DEBUG][       Thread-249741][   transport.py][1871] : EOF in transport thread
2025-06-13 09:19:12,681 [DEBUG][Thread-249743 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:19:16,757 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:19:16,758 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:19:21,699 [DEBUG][Thread-249744 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:19:22,604 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 09:19:22,604 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 09:19:22,604 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 09:19:22,604 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 09:19:23,106 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 9, 18, 49), 9.15, 52.29, 0.0, 24.77, 7.71, 0, 0, 0, 2, 0, 0),)
2025-06-13 09:19:23,107 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 09:18:49
2025-06-13 09:19:23,192 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 09:19:23,196 [DEBUG][       Thread-249745][   transport.py][1871] : starting thread (client mode): 0x863c9c30
2025-06-13 09:19:23,196 [DEBUG][       Thread-249745][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 09:19:23,207 [DEBUG][       Thread-249745][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 09:19:23,207 [ INFO][       Thread-249745][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 09:19:23,210 [DEBUG][       Thread-249745][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 09:19:23,210 [DEBUG][       Thread-249745][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 09:19:23,210 [DEBUG][       Thread-249745][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 09:19:23,210 [DEBUG][       Thread-249745][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:19:23,210 [DEBUG][       Thread-249745][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:19:23,210 [DEBUG][       Thread-249745][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:19:23,210 [DEBUG][       Thread-249745][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:19:23,210 [DEBUG][       Thread-249745][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 09:19:23,210 [DEBUG][       Thread-249745][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 09:19:23,210 [DEBUG][       Thread-249745][   transport.py][1871] : client lang: <none>
2025-06-13 09:19:23,210 [DEBUG][       Thread-249745][   transport.py][1871] : server lang: <none>
2025-06-13 09:19:23,210 [DEBUG][       Thread-249745][   transport.py][1871] : kex follows: False
2025-06-13 09:19:23,210 [DEBUG][       Thread-249745][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 09:19:23,210 [DEBUG][       Thread-249745][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 09:19:23,211 [DEBUG][       Thread-249745][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 09:19:23,211 [DEBUG][       Thread-249745][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 09:19:23,211 [DEBUG][       Thread-249745][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 09:19:23,211 [DEBUG][       Thread-249745][   transport.py][1871] : Compression: none
2025-06-13 09:19:23,211 [DEBUG][       Thread-249745][   transport.py][1871] : === End of kex handshake ===
2025-06-13 09:19:23,225 [DEBUG][       Thread-249745][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 09:19:23,225 [DEBUG][       Thread-249745][   transport.py][1871] : Switch to new keys ...
2025-06-13 09:19:23,225 [DEBUG][       Thread-249745][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 09:19:23,225 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 09:19:23,225 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 09:19:23,226 [DEBUG][       Thread-249745][   transport.py][1871] : userauth is OK
2025-06-13 09:19:23,249 [ INFO][       Thread-249745][   transport.py][1871] : Authentication (password) successful!
2025-06-13 09:19:23,250 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 09:19:23,831 [DEBUG][       Thread-249745][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 09:19:23,831 [DEBUG][       Thread-249745][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 09:19:23,873 [DEBUG][       Thread-249745][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 09:19:23,873 [DEBUG][       Thread-249745][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 09:19:23,876 [DEBUG][       Thread-249745][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 09:19:23,888 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 09:19:23,889 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 09:19:23,890 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 09:19:23,892 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 09:19:23,897 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 09:19:23,898 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 09:19:23,898 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 09:19:23,899 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 09:19:23,899 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.304802 -999.00   +7.50  20.94     57   -0.20 1 1 1 1 1   887    0 8.42 32.33 ----- 20.9 20.9 33.4 31.0 10.8 -28.2 9.8 -28.1 8.6 -27.7 9.7 -26.2
2025-06-13 09:19:23,899 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 09:19:23,899 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 09:19:23,899 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.304802
2025-06-13 09:19:23,900 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 09:19:23,900 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 09:19:23,900 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 09:19:23,900 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 09:19:23,900 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 09:19:23,901 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T09:18:49', tmtdew=9.15, humidity=52.29, cloud=0.0, wind=24.77, temperature=7.71, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T07:18:54.893', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 09:19:23,901 [DEBUG][       Thread-249745][   transport.py][1871] : EOF in transport thread
2025-06-13 09:19:23,985 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 09:19:23,994 [DEBUG][       Thread-249748][   transport.py][1871] : starting thread (client mode): 0x863edd80
2025-06-13 09:19:23,994 [DEBUG][       Thread-249748][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 09:19:24,008 [DEBUG][       Thread-249748][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 09:19:24,008 [ INFO][       Thread-249748][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 09:19:24,016 [DEBUG][       Thread-249748][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 09:19:24,016 [DEBUG][       Thread-249748][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 09:19:24,016 [DEBUG][       Thread-249748][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 09:19:24,016 [DEBUG][       Thread-249748][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:19:24,016 [DEBUG][       Thread-249748][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:19:24,016 [DEBUG][       Thread-249748][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:19:24,016 [DEBUG][       Thread-249748][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:19:24,016 [DEBUG][       Thread-249748][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 09:19:24,017 [DEBUG][       Thread-249748][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 09:19:24,017 [DEBUG][       Thread-249748][   transport.py][1871] : client lang: <none>
2025-06-13 09:19:24,017 [DEBUG][       Thread-249748][   transport.py][1871] : server lang: <none>
2025-06-13 09:19:24,017 [DEBUG][       Thread-249748][   transport.py][1871] : kex follows: False
2025-06-13 09:19:24,017 [DEBUG][       Thread-249748][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 09:19:24,017 [DEBUG][       Thread-249748][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 09:19:24,017 [DEBUG][       Thread-249748][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 09:19:24,017 [DEBUG][       Thread-249748][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 09:19:24,017 [DEBUG][       Thread-249748][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 09:19:24,017 [DEBUG][       Thread-249748][   transport.py][1871] : Compression: none
2025-06-13 09:19:24,017 [DEBUG][       Thread-249748][   transport.py][1871] : === End of kex handshake ===
2025-06-13 09:19:24,077 [DEBUG][       Thread-249748][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 09:19:24,077 [DEBUG][       Thread-249748][   transport.py][1871] : Switch to new keys ...
2025-06-13 09:19:24,078 [DEBUG][       Thread-249748][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 09:19:24,078 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 09:19:24,079 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 09:19:24,144 [DEBUG][       Thread-249748][   transport.py][1871] : userauth is OK
2025-06-13 09:19:24,144 [DEBUG][       Thread-249748][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 09:19:24,144 [DEBUG][       Thread-249748][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 09:19:24,145 [DEBUG][       Thread-249748][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 09:19:24,145 [DEBUG][       Thread-249748][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 09:19:24,166 [ INFO][       Thread-249748][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 09:19:24,166 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 09:19:24,167 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 09:19:25,158 [DEBUG][       Thread-249748][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 09:19:25,158 [DEBUG][       Thread-249748][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 09:19:25,208 [DEBUG][       Thread-249748][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 09:19:25,208 [DEBUG][       Thread-249748][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 09:19:25,218 [DEBUG][       Thread-249748][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 09:19:25,231 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 09:19:25,231 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 09:19:25,240 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 09:19:25,249 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 09:19:25,249 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 09:19:25,250 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 09:19:25,261 [DEBUG][       Thread-249748][   transport.py][1871] : EOF in transport thread
2025-06-13 09:19:30,716 [DEBUG][Thread-249750 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:19:35,260 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 09:19:35,260 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 09:19:35,260 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 09:19:35,261 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 09:19:35,729 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 9, 19, 21), 9.1, 52.66, 0.0, 19.8, 7.69, 0, 0, 0, 2, 0, 0),)
2025-06-13 09:19:35,729 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 09:19:21
2025-06-13 09:19:35,816 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 09:19:35,822 [DEBUG][       Thread-249751][   transport.py][1871] : starting thread (client mode): 0x863c8f70
2025-06-13 09:19:35,825 [DEBUG][       Thread-249751][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 09:19:35,842 [DEBUG][       Thread-249751][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 09:19:35,842 [ INFO][       Thread-249751][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 09:19:35,844 [DEBUG][       Thread-249751][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 09:19:35,844 [DEBUG][       Thread-249751][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 09:19:35,844 [DEBUG][       Thread-249751][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 09:19:35,844 [DEBUG][       Thread-249751][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:19:35,844 [DEBUG][       Thread-249751][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:19:35,844 [DEBUG][       Thread-249751][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:19:35,844 [DEBUG][       Thread-249751][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:19:35,844 [DEBUG][       Thread-249751][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 09:19:35,844 [DEBUG][       Thread-249751][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 09:19:35,844 [DEBUG][       Thread-249751][   transport.py][1871] : client lang: <none>
2025-06-13 09:19:35,844 [DEBUG][       Thread-249751][   transport.py][1871] : server lang: <none>
2025-06-13 09:19:35,844 [DEBUG][       Thread-249751][   transport.py][1871] : kex follows: False
2025-06-13 09:19:35,844 [DEBUG][       Thread-249751][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 09:19:35,844 [DEBUG][       Thread-249751][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 09:19:35,844 [DEBUG][       Thread-249751][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 09:19:35,844 [DEBUG][       Thread-249751][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 09:19:35,844 [DEBUG][       Thread-249751][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 09:19:35,844 [DEBUG][       Thread-249751][   transport.py][1871] : Compression: none
2025-06-13 09:19:35,844 [DEBUG][       Thread-249751][   transport.py][1871] : === End of kex handshake ===
2025-06-13 09:19:35,851 [DEBUG][       Thread-249751][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 09:19:35,851 [DEBUG][       Thread-249751][   transport.py][1871] : Switch to new keys ...
2025-06-13 09:19:35,851 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 09:19:35,851 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 09:19:35,851 [DEBUG][       Thread-249751][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 09:19:35,852 [DEBUG][       Thread-249751][   transport.py][1871] : userauth is OK
2025-06-13 09:19:35,865 [ INFO][       Thread-249751][   transport.py][1871] : Authentication (password) successful!
2025-06-13 09:19:35,865 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 09:19:36,471 [DEBUG][       Thread-249751][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 09:19:36,471 [DEBUG][       Thread-249751][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 09:19:36,512 [DEBUG][       Thread-249751][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 09:19:36,512 [DEBUG][       Thread-249751][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 09:19:36,515 [DEBUG][       Thread-249751][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 09:19:36,527 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 09:19:36,528 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 09:19:36,529 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 09:19:36,530 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 09:19:36,533 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 09:19:36,534 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 09:19:36,534 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 09:19:36,534 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 09:19:36,534 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.304802 -999.00   +7.50  20.94     57   -0.20 1 1 1 1 1   887    0 8.42 32.33 ----- 20.9 20.9 33.4 31.0 10.8 -28.2 9.8 -28.1 8.6 -27.7 9.7 -26.2
2025-06-13 09:19:36,534 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 09:19:36,534 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 09:19:36,534 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.304802
2025-06-13 09:19:36,534 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 09:19:36,534 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 09:19:36,534 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 09:19:36,534 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 09:19:36,534 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 09:19:36,534 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T09:19:21', tmtdew=9.1, humidity=52.66, cloud=0.0, wind=19.8, temperature=7.69, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T07:18:54.893', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 09:19:36,535 [DEBUG][       Thread-249751][   transport.py][1871] : EOF in transport thread
2025-06-13 09:19:36,609 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 09:19:36,620 [DEBUG][       Thread-249754][   transport.py][1871] : starting thread (client mode): 0x863ee1a0
2025-06-13 09:19:36,620 [DEBUG][       Thread-249754][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 09:19:36,638 [DEBUG][       Thread-249754][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 09:19:36,638 [ INFO][       Thread-249754][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 09:19:36,651 [DEBUG][       Thread-249754][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 09:19:36,651 [DEBUG][       Thread-249754][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 09:19:36,652 [DEBUG][       Thread-249754][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 09:19:36,652 [DEBUG][       Thread-249754][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:19:36,652 [DEBUG][       Thread-249754][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:19:36,652 [DEBUG][       Thread-249754][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:19:36,652 [DEBUG][       Thread-249754][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:19:36,652 [DEBUG][       Thread-249754][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 09:19:36,652 [DEBUG][       Thread-249754][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 09:19:36,652 [DEBUG][       Thread-249754][   transport.py][1871] : client lang: <none>
2025-06-13 09:19:36,652 [DEBUG][       Thread-249754][   transport.py][1871] : server lang: <none>
2025-06-13 09:19:36,652 [DEBUG][       Thread-249754][   transport.py][1871] : kex follows: False
2025-06-13 09:19:36,652 [DEBUG][       Thread-249754][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 09:19:36,652 [DEBUG][       Thread-249754][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 09:19:36,652 [DEBUG][       Thread-249754][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 09:19:36,652 [DEBUG][       Thread-249754][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 09:19:36,652 [DEBUG][       Thread-249754][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 09:19:36,652 [DEBUG][       Thread-249754][   transport.py][1871] : Compression: none
2025-06-13 09:19:36,652 [DEBUG][       Thread-249754][   transport.py][1871] : === End of kex handshake ===
2025-06-13 09:19:36,710 [DEBUG][       Thread-249754][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 09:19:36,710 [DEBUG][       Thread-249754][   transport.py][1871] : Switch to new keys ...
2025-06-13 09:19:36,710 [DEBUG][       Thread-249754][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 09:19:36,710 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 09:19:36,710 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 09:19:36,770 [DEBUG][       Thread-249754][   transport.py][1871] : userauth is OK
2025-06-13 09:19:36,771 [DEBUG][       Thread-249754][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 09:19:36,771 [DEBUG][       Thread-249754][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 09:19:36,771 [DEBUG][       Thread-249754][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 09:19:36,771 [DEBUG][       Thread-249754][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 09:19:36,784 [ INFO][       Thread-249754][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 09:19:36,784 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 09:19:36,784 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 09:19:37,781 [DEBUG][       Thread-249754][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 09:19:37,781 [DEBUG][       Thread-249754][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 09:19:37,833 [DEBUG][       Thread-249754][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 09:19:37,833 [DEBUG][       Thread-249754][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 09:19:37,841 [DEBUG][       Thread-249754][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 09:19:37,850 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 09:19:37,850 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 09:19:37,857 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 09:19:37,866 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 09:19:37,866 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 09:19:37,866 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 09:19:37,873 [DEBUG][       Thread-249754][   transport.py][1871] : EOF in transport thread
2025-06-13 09:19:39,734 [DEBUG][Thread-249756 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:19:47,876 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 09:19:47,876 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 09:19:47,876 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 09:19:47,878 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 09:19:48,353 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 9, 19, 21), 9.1, 52.66, 0.0, 19.8, 7.69, 0, 0, 0, 2, 0, 0),)
2025-06-13 09:19:48,353 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 09:19:21
2025-06-13 09:19:48,435 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 09:19:48,442 [DEBUG][       Thread-249757][   transport.py][1871] : starting thread (client mode): 0x863a7220
2025-06-13 09:19:48,442 [DEBUG][       Thread-249757][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 09:19:48,463 [DEBUG][       Thread-249757][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 09:19:48,463 [ INFO][       Thread-249757][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 09:19:48,466 [DEBUG][       Thread-249757][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 09:19:48,466 [DEBUG][       Thread-249757][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 09:19:48,466 [DEBUG][       Thread-249757][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 09:19:48,466 [DEBUG][       Thread-249757][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:19:48,466 [DEBUG][       Thread-249757][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:19:48,466 [DEBUG][       Thread-249757][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:19:48,466 [DEBUG][       Thread-249757][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:19:48,466 [DEBUG][       Thread-249757][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 09:19:48,466 [DEBUG][       Thread-249757][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 09:19:48,466 [DEBUG][       Thread-249757][   transport.py][1871] : client lang: <none>
2025-06-13 09:19:48,466 [DEBUG][       Thread-249757][   transport.py][1871] : server lang: <none>
2025-06-13 09:19:48,466 [DEBUG][       Thread-249757][   transport.py][1871] : kex follows: False
2025-06-13 09:19:48,466 [DEBUG][       Thread-249757][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 09:19:48,466 [DEBUG][       Thread-249757][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 09:19:48,466 [DEBUG][       Thread-249757][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 09:19:48,466 [DEBUG][       Thread-249757][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 09:19:48,466 [DEBUG][       Thread-249757][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 09:19:48,466 [DEBUG][       Thread-249757][   transport.py][1871] : Compression: none
2025-06-13 09:19:48,466 [DEBUG][       Thread-249757][   transport.py][1871] : === End of kex handshake ===
2025-06-13 09:19:48,484 [DEBUG][       Thread-249757][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 09:19:48,484 [DEBUG][       Thread-249757][   transport.py][1871] : Switch to new keys ...
2025-06-13 09:19:48,485 [DEBUG][       Thread-249757][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 09:19:48,485 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 09:19:48,485 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 09:19:48,486 [DEBUG][       Thread-249757][   transport.py][1871] : userauth is OK
2025-06-13 09:19:48,511 [ INFO][       Thread-249757][   transport.py][1871] : Authentication (password) successful!
2025-06-13 09:19:48,512 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 09:19:48,764 [DEBUG][Thread-249759 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:19:49,104 [DEBUG][       Thread-249757][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 09:19:49,104 [DEBUG][       Thread-249757][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 09:19:49,149 [DEBUG][       Thread-249757][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 09:19:49,149 [DEBUG][       Thread-249757][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 09:19:49,152 [DEBUG][       Thread-249757][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 09:19:49,164 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 09:19:49,165 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 09:19:49,166 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 09:19:49,168 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 09:19:49,173 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 09:19:49,175 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 09:19:49,175 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 09:19:49,175 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 09:19:49,175 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.304802 -999.00   +7.50  20.94     57   -0.20 1 1 1 1 1   887    0 8.42 32.33 ----- 20.9 20.9 33.4 31.0 10.8 -28.2 9.8 -28.1 8.6 -27.7 9.7 -26.2
2025-06-13 09:19:49,175 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 09:19:49,176 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 09:19:49,176 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.304802
2025-06-13 09:19:49,176 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 09:19:49,176 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 09:19:49,177 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 09:19:49,177 [DEBUG][       Thread-249757][   transport.py][1871] : EOF in transport thread
2025-06-13 09:19:49,177 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 09:19:49,177 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 09:19:49,178 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T09:19:21', tmtdew=9.1, humidity=52.66, cloud=0.0, wind=19.8, temperature=7.69, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T07:18:54.893', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 09:19:49,253 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 09:19:49,268 [DEBUG][       Thread-249761][   transport.py][1871] : starting thread (client mode): 0x867ff640
2025-06-13 09:19:49,268 [DEBUG][       Thread-249761][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 09:19:49,293 [DEBUG][       Thread-249761][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 09:19:49,293 [ INFO][       Thread-249761][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 09:19:49,303 [DEBUG][       Thread-249761][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 09:19:49,303 [DEBUG][       Thread-249761][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 09:19:49,303 [DEBUG][       Thread-249761][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 09:19:49,303 [DEBUG][       Thread-249761][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:19:49,303 [DEBUG][       Thread-249761][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:19:49,303 [DEBUG][       Thread-249761][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:19:49,303 [DEBUG][       Thread-249761][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:19:49,303 [DEBUG][       Thread-249761][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 09:19:49,303 [DEBUG][       Thread-249761][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 09:19:49,303 [DEBUG][       Thread-249761][   transport.py][1871] : client lang: <none>
2025-06-13 09:19:49,303 [DEBUG][       Thread-249761][   transport.py][1871] : server lang: <none>
2025-06-13 09:19:49,303 [DEBUG][       Thread-249761][   transport.py][1871] : kex follows: False
2025-06-13 09:19:49,303 [DEBUG][       Thread-249761][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 09:19:49,303 [DEBUG][       Thread-249761][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 09:19:49,303 [DEBUG][       Thread-249761][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 09:19:49,303 [DEBUG][       Thread-249761][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 09:19:49,303 [DEBUG][       Thread-249761][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 09:19:49,303 [DEBUG][       Thread-249761][   transport.py][1871] : Compression: none
2025-06-13 09:19:49,303 [DEBUG][       Thread-249761][   transport.py][1871] : === End of kex handshake ===
2025-06-13 09:19:49,358 [DEBUG][       Thread-249761][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 09:19:49,358 [DEBUG][       Thread-249761][   transport.py][1871] : Switch to new keys ...
2025-06-13 09:19:49,359 [DEBUG][       Thread-249761][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 09:19:49,359 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 09:19:49,360 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 09:19:49,415 [DEBUG][       Thread-249761][   transport.py][1871] : userauth is OK
2025-06-13 09:19:49,415 [DEBUG][       Thread-249761][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 09:19:49,415 [DEBUG][       Thread-249761][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 09:19:49,415 [DEBUG][       Thread-249761][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 09:19:49,415 [DEBUG][       Thread-249761][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 09:19:49,434 [ INFO][       Thread-249761][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 09:19:49,434 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 09:19:49,435 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 09:19:50,466 [DEBUG][       Thread-249761][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 09:19:50,466 [DEBUG][       Thread-249761][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 09:19:50,515 [DEBUG][       Thread-249761][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 09:19:50,516 [DEBUG][       Thread-249761][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 09:19:50,525 [DEBUG][       Thread-249761][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 09:19:50,533 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 09:19:50,533 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 09:19:50,542 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 09:19:50,551 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 09:19:50,551 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 09:19:50,551 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 09:19:50,563 [DEBUG][       Thread-249761][   transport.py][1871] : EOF in transport thread
2025-06-13 09:19:57,783 [DEBUG][Thread-249763 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:19:57,949 [DEBUG][Thread-249764 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:19:59,034 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:19:59,035 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:20:00,562 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 09:20:00,562 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 09:20:00,562 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 09:20:00,564 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 09:20:01,033 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 9, 19, 52), 9.18, 52.37, 0.0, 17.73, 7.73, 0, 0, 0, 2, 0, 0),)
2025-06-13 09:20:01,033 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 09:19:52
2025-06-13 09:20:01,115 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 09:20:01,119 [DEBUG][       Thread-249765][   transport.py][1871] : starting thread (client mode): 0x86368520
2025-06-13 09:20:01,119 [DEBUG][       Thread-249765][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 09:20:01,140 [DEBUG][       Thread-249765][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 09:20:01,140 [ INFO][       Thread-249765][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 09:20:01,143 [DEBUG][       Thread-249765][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 09:20:01,143 [DEBUG][       Thread-249765][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 09:20:01,143 [DEBUG][       Thread-249765][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 09:20:01,143 [DEBUG][       Thread-249765][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:20:01,143 [DEBUG][       Thread-249765][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:20:01,143 [DEBUG][       Thread-249765][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:20:01,143 [DEBUG][       Thread-249765][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:20:01,143 [DEBUG][       Thread-249765][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 09:20:01,143 [DEBUG][       Thread-249765][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 09:20:01,143 [DEBUG][       Thread-249765][   transport.py][1871] : client lang: <none>
2025-06-13 09:20:01,143 [DEBUG][       Thread-249765][   transport.py][1871] : server lang: <none>
2025-06-13 09:20:01,143 [DEBUG][       Thread-249765][   transport.py][1871] : kex follows: False
2025-06-13 09:20:01,143 [DEBUG][       Thread-249765][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 09:20:01,143 [DEBUG][       Thread-249765][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 09:20:01,143 [DEBUG][       Thread-249765][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 09:20:01,143 [DEBUG][       Thread-249765][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 09:20:01,143 [DEBUG][       Thread-249765][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 09:20:01,143 [DEBUG][       Thread-249765][   transport.py][1871] : Compression: none
2025-06-13 09:20:01,143 [DEBUG][       Thread-249765][   transport.py][1871] : === End of kex handshake ===
2025-06-13 09:20:01,161 [DEBUG][       Thread-249765][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 09:20:01,161 [DEBUG][       Thread-249765][   transport.py][1871] : Switch to new keys ...
2025-06-13 09:20:01,162 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 09:20:01,162 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 09:20:01,162 [DEBUG][       Thread-249765][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 09:20:01,163 [DEBUG][       Thread-249765][   transport.py][1871] : userauth is OK
2025-06-13 09:20:01,187 [ INFO][       Thread-249765][   transport.py][1871] : Authentication (password) successful!
2025-06-13 09:20:01,188 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 09:20:01,793 [DEBUG][       Thread-249765][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 09:20:01,793 [DEBUG][       Thread-249765][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 09:20:01,840 [DEBUG][       Thread-249765][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 09:20:01,841 [DEBUG][       Thread-249765][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 09:20:01,842 [DEBUG][       Thread-249765][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 09:20:01,847 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 09:20:01,848 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 09:20:01,849 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 09:20:01,850 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 09:20:01,853 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 09:20:01,854 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 09:20:01,854 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 09:20:01,855 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 09:20:01,855 [DEBUG][       Thread-249765][   transport.py][1871] : EOF in transport thread
2025-06-13 09:20:01,855 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.305150 -999.00   +7.50  24.18     58   -0.10 1 1 1 1 1   887    0 8.45 30.78 ----- 24.2 24.2 47.0 27.8 10.8 -27.3 9.8 -28.3 8.6 -27.6 9.7 -26.1
2025-06-13 09:20:01,856 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 09:20:01,856 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 09:20:01,856 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.305150
2025-06-13 09:20:01,856 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 09:20:01,857 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 09:20:01,857 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 09:20:01,857 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 09:20:01,857 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 09:20:01,857 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T09:19:52', tmtdew=9.18, humidity=52.37, cloud=0.0, wind=17.73, temperature=7.73, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T07:19:24.960', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 09:20:01,939 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 09:20:01,951 [DEBUG][       Thread-249768][   transport.py][1871] : starting thread (client mode): 0x863ee2f0
2025-06-13 09:20:01,951 [DEBUG][       Thread-249768][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 09:20:01,966 [DEBUG][       Thread-249768][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 09:20:01,967 [ INFO][       Thread-249768][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 09:20:01,974 [DEBUG][       Thread-249768][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 09:20:01,974 [DEBUG][       Thread-249768][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 09:20:01,974 [DEBUG][       Thread-249768][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 09:20:01,974 [DEBUG][       Thread-249768][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:20:01,974 [DEBUG][       Thread-249768][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:20:01,974 [DEBUG][       Thread-249768][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:20:01,974 [DEBUG][       Thread-249768][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:20:01,974 [DEBUG][       Thread-249768][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 09:20:01,974 [DEBUG][       Thread-249768][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 09:20:01,974 [DEBUG][       Thread-249768][   transport.py][1871] : client lang: <none>
2025-06-13 09:20:01,974 [DEBUG][       Thread-249768][   transport.py][1871] : server lang: <none>
2025-06-13 09:20:01,974 [DEBUG][       Thread-249768][   transport.py][1871] : kex follows: False
2025-06-13 09:20:01,975 [DEBUG][       Thread-249768][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 09:20:01,975 [DEBUG][       Thread-249768][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 09:20:01,975 [DEBUG][       Thread-249768][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 09:20:01,975 [DEBUG][       Thread-249768][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 09:20:01,975 [DEBUG][       Thread-249768][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 09:20:01,975 [DEBUG][       Thread-249768][   transport.py][1871] : Compression: none
2025-06-13 09:20:01,975 [DEBUG][       Thread-249768][   transport.py][1871] : === End of kex handshake ===
2025-06-13 09:20:02,033 [DEBUG][       Thread-249768][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 09:20:02,033 [DEBUG][       Thread-249768][   transport.py][1871] : Switch to new keys ...
2025-06-13 09:20:02,034 [DEBUG][       Thread-249768][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 09:20:02,034 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 09:20:02,035 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 09:20:02,093 [DEBUG][       Thread-249768][   transport.py][1871] : userauth is OK
2025-06-13 09:20:02,093 [DEBUG][       Thread-249768][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 09:20:02,093 [DEBUG][       Thread-249768][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 09:20:02,094 [DEBUG][       Thread-249768][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 09:20:02,094 [DEBUG][       Thread-249768][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 09:20:02,115 [ INFO][       Thread-249768][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 09:20:02,115 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 09:20:02,115 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 09:20:02,865 [DEBUG][Thread-249770 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:20:03,152 [DEBUG][       Thread-249768][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 09:20:03,152 [DEBUG][       Thread-249768][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 09:20:03,200 [DEBUG][       Thread-249768][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 09:20:03,200 [DEBUG][       Thread-249768][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 09:20:03,209 [DEBUG][       Thread-249768][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 09:20:03,217 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 09:20:03,218 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 09:20:03,226 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 09:20:03,235 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 09:20:03,235 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 09:20:03,235 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 09:20:03,244 [DEBUG][       Thread-249768][   transport.py][1871] : EOF in transport thread
2025-06-13 09:20:06,801 [DEBUG][Thread-249771 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:20:13,244 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 09:20:13,244 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 09:20:13,244 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 09:20:13,244 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 09:20:13,734 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 9, 19, 52), 9.18, 52.37, 0.0, 17.73, 7.73, 0, 0, 0, 2, 0, 0),)
2025-06-13 09:20:13,734 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 09:19:52
2025-06-13 09:20:13,820 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 09:20:13,826 [DEBUG][       Thread-249772][   transport.py][1871] : starting thread (client mode): 0x863ee740
2025-06-13 09:20:13,826 [DEBUG][       Thread-249772][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 09:20:13,846 [DEBUG][       Thread-249772][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 09:20:13,847 [ INFO][       Thread-249772][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 09:20:13,850 [DEBUG][       Thread-249772][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 09:20:13,850 [DEBUG][       Thread-249772][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 09:20:13,850 [DEBUG][       Thread-249772][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 09:20:13,850 [DEBUG][       Thread-249772][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:20:13,850 [DEBUG][       Thread-249772][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:20:13,850 [DEBUG][       Thread-249772][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:20:13,850 [DEBUG][       Thread-249772][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:20:13,850 [DEBUG][       Thread-249772][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 09:20:13,850 [DEBUG][       Thread-249772][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 09:20:13,850 [DEBUG][       Thread-249772][   transport.py][1871] : client lang: <none>
2025-06-13 09:20:13,850 [DEBUG][       Thread-249772][   transport.py][1871] : server lang: <none>
2025-06-13 09:20:13,850 [DEBUG][       Thread-249772][   transport.py][1871] : kex follows: False
2025-06-13 09:20:13,850 [DEBUG][       Thread-249772][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 09:20:13,850 [DEBUG][       Thread-249772][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 09:20:13,850 [DEBUG][       Thread-249772][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 09:20:13,850 [DEBUG][       Thread-249772][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 09:20:13,850 [DEBUG][       Thread-249772][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 09:20:13,850 [DEBUG][       Thread-249772][   transport.py][1871] : Compression: none
2025-06-13 09:20:13,850 [DEBUG][       Thread-249772][   transport.py][1871] : === End of kex handshake ===
2025-06-13 09:20:13,868 [DEBUG][       Thread-249772][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 09:20:13,868 [DEBUG][       Thread-249772][   transport.py][1871] : Switch to new keys ...
2025-06-13 09:20:13,868 [DEBUG][       Thread-249772][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 09:20:13,868 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 09:20:13,869 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 09:20:13,869 [DEBUG][       Thread-249772][   transport.py][1871] : userauth is OK
2025-06-13 09:20:13,894 [ INFO][       Thread-249772][   transport.py][1871] : Authentication (password) successful!
2025-06-13 09:20:13,895 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 09:20:15,452 [DEBUG][       Thread-249772][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 09:20:15,452 [DEBUG][       Thread-249772][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 09:20:15,496 [DEBUG][       Thread-249772][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 09:20:15,496 [DEBUG][       Thread-249772][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 09:20:15,499 [DEBUG][       Thread-249772][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 09:20:15,510 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 09:20:15,510 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 09:20:15,511 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 09:20:15,512 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 09:20:15,575 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 09:20:15,576 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 09:20:15,576 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 09:20:15,576 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 09:20:15,576 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.305150 -999.00   +7.50  24.18     58   -0.10 1 1 1 1 1   887    0 8.45 30.78 ----- 24.2 24.2 47.0 27.8 10.8 -27.3 9.8 -28.3 8.6 -27.6 9.7 -26.1
2025-06-13 09:20:15,576 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 09:20:15,576 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 09:20:15,576 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.305150
2025-06-13 09:20:15,576 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 09:20:15,576 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 09:20:15,576 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 09:20:15,576 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 09:20:15,576 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 09:20:15,577 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T09:19:52', tmtdew=9.18, humidity=52.37, cloud=0.0, wind=17.73, temperature=7.73, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T07:19:24.960', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 09:20:15,577 [DEBUG][       Thread-249772][   transport.py][1871] : EOF in transport thread
2025-06-13 09:20:15,648 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 09:20:15,659 [DEBUG][       Thread-249775][   transport.py][1871] : starting thread (client mode): 0x863c8250
2025-06-13 09:20:15,659 [DEBUG][       Thread-249775][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 09:20:15,674 [DEBUG][       Thread-249775][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 09:20:15,674 [ INFO][       Thread-249775][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 09:20:15,682 [DEBUG][       Thread-249775][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 09:20:15,682 [DEBUG][       Thread-249775][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 09:20:15,682 [DEBUG][       Thread-249775][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 09:20:15,682 [DEBUG][       Thread-249775][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:20:15,682 [DEBUG][       Thread-249775][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:20:15,682 [DEBUG][       Thread-249775][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:20:15,682 [DEBUG][       Thread-249775][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:20:15,682 [DEBUG][       Thread-249775][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 09:20:15,682 [DEBUG][       Thread-249775][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 09:20:15,682 [DEBUG][       Thread-249775][   transport.py][1871] : client lang: <none>
2025-06-13 09:20:15,682 [DEBUG][       Thread-249775][   transport.py][1871] : server lang: <none>
2025-06-13 09:20:15,682 [DEBUG][       Thread-249775][   transport.py][1871] : kex follows: False
2025-06-13 09:20:15,682 [DEBUG][       Thread-249775][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 09:20:15,682 [DEBUG][       Thread-249775][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 09:20:15,682 [DEBUG][       Thread-249775][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 09:20:15,682 [DEBUG][       Thread-249775][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 09:20:15,682 [DEBUG][       Thread-249775][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 09:20:15,682 [DEBUG][       Thread-249775][   transport.py][1871] : Compression: none
2025-06-13 09:20:15,682 [DEBUG][       Thread-249775][   transport.py][1871] : === End of kex handshake ===
2025-06-13 09:20:15,737 [DEBUG][       Thread-249775][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 09:20:15,738 [DEBUG][       Thread-249775][   transport.py][1871] : Switch to new keys ...
2025-06-13 09:20:15,738 [DEBUG][       Thread-249775][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 09:20:15,738 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 09:20:15,738 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 09:20:15,795 [DEBUG][       Thread-249775][   transport.py][1871] : userauth is OK
2025-06-13 09:20:15,795 [DEBUG][       Thread-249775][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 09:20:15,795 [DEBUG][       Thread-249775][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 09:20:15,795 [DEBUG][       Thread-249775][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 09:20:15,795 [DEBUG][       Thread-249775][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 09:20:15,809 [ INFO][       Thread-249775][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 09:20:15,809 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 09:20:15,809 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 09:20:15,829 [DEBUG][Thread-249777 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:20:16,834 [DEBUG][       Thread-249775][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 09:20:16,834 [DEBUG][       Thread-249775][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 09:20:16,884 [DEBUG][       Thread-249775][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 09:20:16,884 [DEBUG][       Thread-249775][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 09:20:16,893 [DEBUG][       Thread-249775][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 09:20:16,896 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:20:16,897 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:20:16,902 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 09:20:16,902 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 09:20:16,911 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 09:20:16,919 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 09:20:16,920 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 09:20:16,920 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 09:20:16,928 [DEBUG][       Thread-249775][   transport.py][1871] : EOF in transport thread
2025-06-13 09:20:24,847 [DEBUG][Thread-249778 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:20:26,930 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 09:20:26,931 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 09:20:26,931 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 09:20:26,933 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 09:20:27,403 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 9, 20, 24), 9.11, 52.73, 0.0, 21.23, 7.75, 0, 0, 0, 2, 0, 0),)
2025-06-13 09:20:27,403 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 09:20:24
2025-06-13 09:20:27,486 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 09:20:27,489 [DEBUG][       Thread-249779][   transport.py][1871] : starting thread (client mode): 0x86368d30
2025-06-13 09:20:27,490 [DEBUG][       Thread-249779][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 09:20:27,510 [DEBUG][       Thread-249779][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 09:20:27,510 [ INFO][       Thread-249779][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 09:20:27,513 [DEBUG][       Thread-249779][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 09:20:27,513 [DEBUG][       Thread-249779][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 09:20:27,514 [DEBUG][       Thread-249779][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 09:20:27,514 [DEBUG][       Thread-249779][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:20:27,514 [DEBUG][       Thread-249779][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:20:27,514 [DEBUG][       Thread-249779][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:20:27,514 [DEBUG][       Thread-249779][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:20:27,514 [DEBUG][       Thread-249779][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 09:20:27,514 [DEBUG][       Thread-249779][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 09:20:27,514 [DEBUG][       Thread-249779][   transport.py][1871] : client lang: <none>
2025-06-13 09:20:27,514 [DEBUG][       Thread-249779][   transport.py][1871] : server lang: <none>
2025-06-13 09:20:27,514 [DEBUG][       Thread-249779][   transport.py][1871] : kex follows: False
2025-06-13 09:20:27,514 [DEBUG][       Thread-249779][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 09:20:27,514 [DEBUG][       Thread-249779][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 09:20:27,514 [DEBUG][       Thread-249779][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 09:20:27,514 [DEBUG][       Thread-249779][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 09:20:27,514 [DEBUG][       Thread-249779][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 09:20:27,514 [DEBUG][       Thread-249779][   transport.py][1871] : Compression: none
2025-06-13 09:20:27,514 [DEBUG][       Thread-249779][   transport.py][1871] : === End of kex handshake ===
2025-06-13 09:20:27,530 [DEBUG][       Thread-249779][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 09:20:27,530 [DEBUG][       Thread-249779][   transport.py][1871] : Switch to new keys ...
2025-06-13 09:20:27,531 [DEBUG][       Thread-249779][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 09:20:27,531 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 09:20:27,532 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 09:20:27,533 [DEBUG][       Thread-249779][   transport.py][1871] : userauth is OK
2025-06-13 09:20:27,546 [ INFO][       Thread-249779][   transport.py][1871] : Authentication (password) successful!
2025-06-13 09:20:27,546 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 09:20:28,184 [DEBUG][       Thread-249779][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 09:20:28,184 [DEBUG][       Thread-249779][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 09:20:28,225 [DEBUG][       Thread-249779][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 09:20:28,225 [DEBUG][       Thread-249779][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 09:20:28,228 [DEBUG][       Thread-249779][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 09:20:28,240 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 09:20:28,240 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 09:20:28,242 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 09:20:28,243 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 09:20:28,248 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 09:20:28,250 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 09:20:28,250 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 09:20:28,251 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 09:20:28,251 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.305150 -999.00   +7.50  24.18     58   -0.10 1 1 1 1 1   887    0 8.45 30.78 ----- 24.2 24.2 47.0 27.8 10.8 -27.3 9.8 -28.3 8.6 -27.6 9.7 -26.1
2025-06-13 09:20:28,251 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 09:20:28,251 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 09:20:28,251 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.305150
2025-06-13 09:20:28,251 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 09:20:28,252 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 09:20:28,252 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 09:20:28,252 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 09:20:28,252 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 09:20:28,252 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T09:20:24', tmtdew=9.11, humidity=52.73, cloud=0.0, wind=21.23, temperature=7.75, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T07:19:24.960', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 09:20:28,253 [DEBUG][       Thread-249779][   transport.py][1871] : EOF in transport thread
2025-06-13 09:20:28,336 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 09:20:28,347 [DEBUG][       Thread-249782][   transport.py][1871] : starting thread (client mode): 0x867fd300
2025-06-13 09:20:28,347 [DEBUG][       Thread-249782][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 09:20:28,364 [DEBUG][       Thread-249782][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 09:20:28,364 [ INFO][       Thread-249782][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 09:20:28,372 [DEBUG][       Thread-249782][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 09:20:28,372 [DEBUG][       Thread-249782][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 09:20:28,372 [DEBUG][       Thread-249782][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 09:20:28,372 [DEBUG][       Thread-249782][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:20:28,372 [DEBUG][       Thread-249782][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:20:28,372 [DEBUG][       Thread-249782][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:20:28,372 [DEBUG][       Thread-249782][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:20:28,372 [DEBUG][       Thread-249782][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 09:20:28,372 [DEBUG][       Thread-249782][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 09:20:28,372 [DEBUG][       Thread-249782][   transport.py][1871] : client lang: <none>
2025-06-13 09:20:28,372 [DEBUG][       Thread-249782][   transport.py][1871] : server lang: <none>
2025-06-13 09:20:28,372 [DEBUG][       Thread-249782][   transport.py][1871] : kex follows: False
2025-06-13 09:20:28,373 [DEBUG][       Thread-249782][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 09:20:28,373 [DEBUG][       Thread-249782][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 09:20:28,373 [DEBUG][       Thread-249782][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 09:20:28,373 [DEBUG][       Thread-249782][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 09:20:28,373 [DEBUG][       Thread-249782][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 09:20:28,373 [DEBUG][       Thread-249782][   transport.py][1871] : Compression: none
2025-06-13 09:20:28,373 [DEBUG][       Thread-249782][   transport.py][1871] : === End of kex handshake ===
2025-06-13 09:20:28,431 [DEBUG][       Thread-249782][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 09:20:28,432 [DEBUG][       Thread-249782][   transport.py][1871] : Switch to new keys ...
2025-06-13 09:20:28,432 [DEBUG][       Thread-249782][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 09:20:28,432 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 09:20:28,433 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 09:20:28,487 [DEBUG][       Thread-249782][   transport.py][1871] : userauth is OK
2025-06-13 09:20:28,487 [DEBUG][       Thread-249782][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 09:20:28,487 [DEBUG][       Thread-249782][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 09:20:28,487 [DEBUG][       Thread-249782][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 09:20:28,487 [DEBUG][       Thread-249782][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 09:20:28,508 [ INFO][       Thread-249782][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 09:20:28,509 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 09:20:28,509 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 09:20:29,526 [DEBUG][       Thread-249782][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 09:20:29,526 [DEBUG][       Thread-249782][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 09:20:29,576 [DEBUG][       Thread-249782][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 09:20:29,576 [DEBUG][       Thread-249782][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 09:20:29,586 [DEBUG][       Thread-249782][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 09:20:29,597 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 09:20:29,597 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 09:20:29,609 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 09:20:29,618 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 09:20:29,618 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 09:20:29,619 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 09:20:29,631 [DEBUG][       Thread-249782][   transport.py][1871] : EOF in transport thread
2025-06-13 09:20:33,864 [DEBUG][Thread-249784 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:20:39,629 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 09:20:39,629 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 09:20:39,629 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 09:20:39,632 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 09:20:40,104 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 9, 20, 24), 9.11, 52.73, 0.0, 21.23, 7.75, 0, 0, 0, 2, 0, 0),)
2025-06-13 09:20:40,104 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 09:20:24
2025-06-13 09:20:40,186 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 09:20:40,192 [DEBUG][       Thread-249785][   transport.py][1871] : starting thread (client mode): 0x86369990
2025-06-13 09:20:40,192 [DEBUG][       Thread-249785][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 09:20:40,213 [DEBUG][       Thread-249785][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 09:20:40,213 [ INFO][       Thread-249785][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 09:20:40,216 [DEBUG][       Thread-249785][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 09:20:40,216 [DEBUG][       Thread-249785][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 09:20:40,216 [DEBUG][       Thread-249785][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 09:20:40,216 [DEBUG][       Thread-249785][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:20:40,216 [DEBUG][       Thread-249785][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:20:40,216 [DEBUG][       Thread-249785][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:20:40,216 [DEBUG][       Thread-249785][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:20:40,216 [DEBUG][       Thread-249785][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 09:20:40,216 [DEBUG][       Thread-249785][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 09:20:40,216 [DEBUG][       Thread-249785][   transport.py][1871] : client lang: <none>
2025-06-13 09:20:40,216 [DEBUG][       Thread-249785][   transport.py][1871] : server lang: <none>
2025-06-13 09:20:40,217 [DEBUG][       Thread-249785][   transport.py][1871] : kex follows: False
2025-06-13 09:20:40,217 [DEBUG][       Thread-249785][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 09:20:40,217 [DEBUG][       Thread-249785][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 09:20:40,217 [DEBUG][       Thread-249785][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 09:20:40,217 [DEBUG][       Thread-249785][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 09:20:40,217 [DEBUG][       Thread-249785][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 09:20:40,217 [DEBUG][       Thread-249785][   transport.py][1871] : Compression: none
2025-06-13 09:20:40,217 [DEBUG][       Thread-249785][   transport.py][1871] : === End of kex handshake ===
2025-06-13 09:20:40,234 [DEBUG][       Thread-249785][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 09:20:40,235 [DEBUG][       Thread-249785][   transport.py][1871] : Switch to new keys ...
2025-06-13 09:20:40,235 [DEBUG][       Thread-249785][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 09:20:40,236 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 09:20:40,236 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 09:20:40,237 [DEBUG][       Thread-249785][   transport.py][1871] : userauth is OK
2025-06-13 09:20:40,250 [ INFO][       Thread-249785][   transport.py][1871] : Authentication (password) successful!
2025-06-13 09:20:40,250 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 09:20:40,842 [DEBUG][       Thread-249785][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 09:20:40,842 [DEBUG][       Thread-249785][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 09:20:40,885 [DEBUG][       Thread-249785][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 09:20:40,885 [DEBUG][       Thread-249785][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 09:20:40,888 [DEBUG][       Thread-249785][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 09:20:40,902 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 09:20:40,902 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 09:20:40,903 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 09:20:40,905 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 09:20:40,909 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 09:20:40,911 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 09:20:40,911 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 09:20:40,912 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 09:20:40,912 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.305844 -999.00   +7.50  29.96     57   -0.20 1 1 1 1 1   887    0 8.34 29.25 ----- 30.0 30.0 28.6 36.4 10.9 -27.5 9.8 -28.5 8.6 -27.4 9.8 -26.3
2025-06-13 09:20:40,912 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 09:20:40,912 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 09:20:40,912 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.305844
2025-06-13 09:20:40,912 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 09:20:40,913 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 09:20:40,913 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 09:20:40,913 [DEBUG][       Thread-249785][   transport.py][1871] : EOF in transport thread
2025-06-13 09:20:40,913 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 09:20:40,914 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 09:20:40,914 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T09:20:24', tmtdew=9.11, humidity=52.73, cloud=0.0, wind=21.23, temperature=7.75, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T07:20:24.922', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 09:20:40,997 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 09:20:41,012 [DEBUG][       Thread-249788][   transport.py][1871] : starting thread (client mode): 0x863cb610
2025-06-13 09:20:41,012 [DEBUG][       Thread-249788][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 09:20:41,027 [DEBUG][       Thread-249788][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 09:20:41,027 [ INFO][       Thread-249788][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 09:20:41,034 [DEBUG][       Thread-249788][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 09:20:41,034 [DEBUG][       Thread-249788][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 09:20:41,034 [DEBUG][       Thread-249788][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 09:20:41,035 [DEBUG][       Thread-249788][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:20:41,035 [DEBUG][       Thread-249788][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:20:41,035 [DEBUG][       Thread-249788][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:20:41,035 [DEBUG][       Thread-249788][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:20:41,035 [DEBUG][       Thread-249788][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 09:20:41,035 [DEBUG][       Thread-249788][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 09:20:41,035 [DEBUG][       Thread-249788][   transport.py][1871] : client lang: <none>
2025-06-13 09:20:41,035 [DEBUG][       Thread-249788][   transport.py][1871] : server lang: <none>
2025-06-13 09:20:41,035 [DEBUG][       Thread-249788][   transport.py][1871] : kex follows: False
2025-06-13 09:20:41,035 [DEBUG][       Thread-249788][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 09:20:41,035 [DEBUG][       Thread-249788][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 09:20:41,035 [DEBUG][       Thread-249788][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 09:20:41,035 [DEBUG][       Thread-249788][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 09:20:41,035 [DEBUG][       Thread-249788][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 09:20:41,035 [DEBUG][       Thread-249788][   transport.py][1871] : Compression: none
2025-06-13 09:20:41,035 [DEBUG][       Thread-249788][   transport.py][1871] : === End of kex handshake ===
2025-06-13 09:20:41,101 [DEBUG][       Thread-249788][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 09:20:41,102 [DEBUG][       Thread-249788][   transport.py][1871] : Switch to new keys ...
2025-06-13 09:20:41,102 [DEBUG][       Thread-249788][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 09:20:41,102 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 09:20:41,103 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 09:20:41,165 [DEBUG][       Thread-249788][   transport.py][1871] : userauth is OK
2025-06-13 09:20:41,165 [DEBUG][       Thread-249788][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 09:20:41,165 [DEBUG][       Thread-249788][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 09:20:41,165 [DEBUG][       Thread-249788][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 09:20:41,165 [DEBUG][       Thread-249788][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 09:20:41,183 [ INFO][       Thread-249788][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 09:20:41,184 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 09:20:41,184 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 09:20:42,189 [DEBUG][       Thread-249788][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 09:20:42,189 [DEBUG][       Thread-249788][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 09:20:42,239 [DEBUG][       Thread-249788][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 09:20:42,240 [DEBUG][       Thread-249788][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 09:20:42,249 [DEBUG][       Thread-249788][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 09:20:42,260 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 09:20:42,260 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 09:20:42,269 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 09:20:42,277 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 09:20:42,278 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 09:20:42,278 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 09:20:42,286 [DEBUG][       Thread-249788][   transport.py][1871] : EOF in transport thread
2025-06-13 09:20:42,897 [DEBUG][Thread-249790 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:20:51,913 [DEBUG][Thread-249791 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:20:52,284 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 09:20:52,284 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 09:20:52,284 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 09:20:52,285 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 09:20:52,756 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 9, 20, 24), 9.11, 52.73, 0.0, 21.23, 7.75, 0, 0, 0, 2, 0, 0),)
2025-06-13 09:20:52,757 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 09:20:24
2025-06-13 09:20:52,843 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 09:20:52,849 [DEBUG][       Thread-249792][   transport.py][1871] : starting thread (client mode): 0x867b7460
2025-06-13 09:20:52,849 [DEBUG][       Thread-249792][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 09:20:52,869 [DEBUG][       Thread-249792][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 09:20:52,869 [ INFO][       Thread-249792][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 09:20:52,873 [DEBUG][       Thread-249792][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 09:20:52,873 [DEBUG][       Thread-249792][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 09:20:52,873 [DEBUG][       Thread-249792][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 09:20:52,873 [DEBUG][       Thread-249792][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:20:52,873 [DEBUG][       Thread-249792][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:20:52,873 [DEBUG][       Thread-249792][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:20:52,873 [DEBUG][       Thread-249792][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:20:52,873 [DEBUG][       Thread-249792][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 09:20:52,873 [DEBUG][       Thread-249792][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 09:20:52,873 [DEBUG][       Thread-249792][   transport.py][1871] : client lang: <none>
2025-06-13 09:20:52,873 [DEBUG][       Thread-249792][   transport.py][1871] : server lang: <none>
2025-06-13 09:20:52,873 [DEBUG][       Thread-249792][   transport.py][1871] : kex follows: False
2025-06-13 09:20:52,873 [DEBUG][       Thread-249792][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 09:20:52,873 [DEBUG][       Thread-249792][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 09:20:52,873 [DEBUG][       Thread-249792][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 09:20:52,873 [DEBUG][       Thread-249792][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 09:20:52,873 [DEBUG][       Thread-249792][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 09:20:52,873 [DEBUG][       Thread-249792][   transport.py][1871] : Compression: none
2025-06-13 09:20:52,873 [DEBUG][       Thread-249792][   transport.py][1871] : === End of kex handshake ===
2025-06-13 09:20:52,894 [DEBUG][       Thread-249792][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 09:20:52,894 [DEBUG][       Thread-249792][   transport.py][1871] : Switch to new keys ...
2025-06-13 09:20:52,894 [DEBUG][       Thread-249792][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 09:20:52,894 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 09:20:52,894 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 09:20:52,895 [DEBUG][       Thread-249792][   transport.py][1871] : userauth is OK
2025-06-13 09:20:52,919 [ INFO][       Thread-249792][   transport.py][1871] : Authentication (password) successful!
2025-06-13 09:20:52,919 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 09:20:53,550 [DEBUG][       Thread-249792][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 09:20:53,550 [DEBUG][       Thread-249792][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 09:20:53,592 [DEBUG][       Thread-249792][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 09:20:53,592 [DEBUG][       Thread-249792][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 09:20:53,595 [DEBUG][       Thread-249792][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 09:20:53,606 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 09:20:53,607 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 09:20:53,608 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 09:20:53,608 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 09:20:53,611 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 09:20:53,612 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 09:20:53,612 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 09:20:53,612 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 09:20:53,612 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.305844 -999.00   +7.50  29.96     57   -0.20 1 1 1 1 1   887    0 8.34 29.25 ----- 30.0 30.0 28.6 36.4 10.9 -27.5 9.8 -28.5 8.6 -27.4 9.8 -26.3
2025-06-13 09:20:53,612 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 09:20:53,612 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 09:20:53,612 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.305844
2025-06-13 09:20:53,612 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 09:20:53,613 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 09:20:53,613 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 09:20:53,613 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 09:20:53,613 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 09:20:53,613 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T09:20:24', tmtdew=9.11, humidity=52.73, cloud=0.0, wind=21.23, temperature=7.75, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T07:20:24.922', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 09:20:53,613 [DEBUG][       Thread-249792][   transport.py][1871] : EOF in transport thread
2025-06-13 09:20:53,686 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 09:20:53,695 [DEBUG][       Thread-249795][   transport.py][1871] : starting thread (client mode): 0x867fd420
2025-06-13 09:20:53,695 [DEBUG][       Thread-249795][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 09:20:53,710 [DEBUG][       Thread-249795][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 09:20:53,710 [ INFO][       Thread-249795][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 09:20:53,717 [DEBUG][       Thread-249795][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 09:20:53,718 [DEBUG][       Thread-249795][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 09:20:53,718 [DEBUG][       Thread-249795][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 09:20:53,718 [DEBUG][       Thread-249795][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:20:53,718 [DEBUG][       Thread-249795][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:20:53,718 [DEBUG][       Thread-249795][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:20:53,718 [DEBUG][       Thread-249795][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:20:53,718 [DEBUG][       Thread-249795][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 09:20:53,718 [DEBUG][       Thread-249795][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 09:20:53,718 [DEBUG][       Thread-249795][   transport.py][1871] : client lang: <none>
2025-06-13 09:20:53,718 [DEBUG][       Thread-249795][   transport.py][1871] : server lang: <none>
2025-06-13 09:20:53,718 [DEBUG][       Thread-249795][   transport.py][1871] : kex follows: False
2025-06-13 09:20:53,718 [DEBUG][       Thread-249795][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 09:20:53,718 [DEBUG][       Thread-249795][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 09:20:53,718 [DEBUG][       Thread-249795][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 09:20:53,718 [DEBUG][       Thread-249795][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 09:20:53,718 [DEBUG][       Thread-249795][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 09:20:53,718 [DEBUG][       Thread-249795][   transport.py][1871] : Compression: none
2025-06-13 09:20:53,718 [DEBUG][       Thread-249795][   transport.py][1871] : === End of kex handshake ===
2025-06-13 09:20:53,778 [DEBUG][       Thread-249795][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 09:20:53,778 [DEBUG][       Thread-249795][   transport.py][1871] : Switch to new keys ...
2025-06-13 09:20:53,779 [DEBUG][       Thread-249795][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 09:20:53,779 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 09:20:53,779 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 09:20:53,839 [DEBUG][       Thread-249795][   transport.py][1871] : userauth is OK
2025-06-13 09:20:53,839 [DEBUG][       Thread-249795][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 09:20:53,839 [DEBUG][       Thread-249795][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 09:20:53,839 [DEBUG][       Thread-249795][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 09:20:53,839 [DEBUG][       Thread-249795][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 09:20:53,853 [ INFO][       Thread-249795][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 09:20:53,853 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 09:20:53,853 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 09:20:54,866 [DEBUG][       Thread-249795][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 09:20:54,867 [DEBUG][       Thread-249795][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 09:20:54,920 [DEBUG][       Thread-249795][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 09:20:54,920 [DEBUG][       Thread-249795][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 09:20:54,931 [DEBUG][       Thread-249795][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 09:20:54,942 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 09:20:54,942 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 09:20:54,952 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 09:20:54,962 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 09:20:54,963 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 09:20:54,963 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 09:20:54,974 [DEBUG][       Thread-249795][   transport.py][1871] : EOF in transport thread
2025-06-13 09:20:59,106 [DEBUG][Thread-249797 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:21:00,156 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:21:00,157 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:21:00,929 [DEBUG][Thread-249798 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:21:02,915 [DEBUG][Thread-249799 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:21:04,973 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 09:21:04,974 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 09:21:04,974 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 09:21:04,976 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 09:21:05,443 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 9, 20, 56), 9.09, 52.81, 0.0, 25.64, 7.77, 0, 0, 0, 2, 0, 0),)
2025-06-13 09:21:05,443 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 09:20:56
2025-06-13 09:21:05,525 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 09:21:05,530 [DEBUG][       Thread-249800][   transport.py][1871] : starting thread (client mode): 0x867b7d00
2025-06-13 09:21:05,530 [DEBUG][       Thread-249800][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 09:21:05,550 [DEBUG][       Thread-249800][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 09:21:05,550 [ INFO][       Thread-249800][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 09:21:05,553 [DEBUG][       Thread-249800][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 09:21:05,553 [DEBUG][       Thread-249800][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 09:21:05,553 [DEBUG][       Thread-249800][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 09:21:05,553 [DEBUG][       Thread-249800][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:21:05,553 [DEBUG][       Thread-249800][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:21:05,553 [DEBUG][       Thread-249800][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:21:05,553 [DEBUG][       Thread-249800][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:21:05,553 [DEBUG][       Thread-249800][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 09:21:05,553 [DEBUG][       Thread-249800][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 09:21:05,553 [DEBUG][       Thread-249800][   transport.py][1871] : client lang: <none>
2025-06-13 09:21:05,553 [DEBUG][       Thread-249800][   transport.py][1871] : server lang: <none>
2025-06-13 09:21:05,554 [DEBUG][       Thread-249800][   transport.py][1871] : kex follows: False
2025-06-13 09:21:05,554 [DEBUG][       Thread-249800][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 09:21:05,554 [DEBUG][       Thread-249800][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 09:21:05,554 [DEBUG][       Thread-249800][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 09:21:05,554 [DEBUG][       Thread-249800][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 09:21:05,554 [DEBUG][       Thread-249800][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 09:21:05,554 [DEBUG][       Thread-249800][   transport.py][1871] : Compression: none
2025-06-13 09:21:05,554 [DEBUG][       Thread-249800][   transport.py][1871] : === End of kex handshake ===
2025-06-13 09:21:05,563 [DEBUG][       Thread-249800][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 09:21:05,564 [DEBUG][       Thread-249800][   transport.py][1871] : Switch to new keys ...
2025-06-13 09:21:05,564 [DEBUG][       Thread-249800][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 09:21:05,565 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 09:21:05,565 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 09:21:05,566 [DEBUG][       Thread-249800][   transport.py][1871] : userauth is OK
2025-06-13 09:21:05,590 [ INFO][       Thread-249800][   transport.py][1871] : Authentication (password) successful!
2025-06-13 09:21:05,590 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 09:21:06,205 [DEBUG][       Thread-249800][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 09:21:06,205 [DEBUG][       Thread-249800][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 09:21:06,249 [DEBUG][       Thread-249800][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 09:21:06,249 [DEBUG][       Thread-249800][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 09:21:06,251 [DEBUG][       Thread-249800][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 09:21:06,257 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 09:21:06,257 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 09:21:06,259 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 09:21:06,260 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 09:21:06,264 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 09:21:06,266 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 09:21:06,266 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 09:21:06,267 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 09:21:06,267 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.306191 -999.00   +7.60  22.68     57   -0.20 1 1 1 1 1   887    0 8.37 27.48 ----- 22.7 22.7 36.2 28.2 10.9 -27.6 9.9 -28.3 8.7 -27.5 9.7 -26.1
2025-06-13 09:21:06,267 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 09:21:06,267 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 09:21:06,267 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.306191
2025-06-13 09:21:06,267 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 09:21:06,268 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 09:21:06,268 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 09:21:06,268 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 09:21:06,268 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 09:21:06,268 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T09:20:56', tmtdew=9.09, humidity=52.81, cloud=0.0, wind=25.64, temperature=7.77, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T07:20:54.902', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 09:21:06,268 [DEBUG][       Thread-249800][   transport.py][1871] : EOF in transport thread
2025-06-13 09:21:06,352 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 09:21:06,364 [DEBUG][       Thread-249803][   transport.py][1871] : starting thread (client mode): 0x863edb70
2025-06-13 09:21:06,364 [DEBUG][       Thread-249803][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 09:21:06,378 [DEBUG][       Thread-249803][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 09:21:06,378 [ INFO][       Thread-249803][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 09:21:06,386 [DEBUG][       Thread-249803][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 09:21:06,386 [DEBUG][       Thread-249803][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 09:21:06,386 [DEBUG][       Thread-249803][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 09:21:06,386 [DEBUG][       Thread-249803][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:21:06,386 [DEBUG][       Thread-249803][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:21:06,386 [DEBUG][       Thread-249803][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:21:06,386 [DEBUG][       Thread-249803][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:21:06,386 [DEBUG][       Thread-249803][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 09:21:06,386 [DEBUG][       Thread-249803][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 09:21:06,386 [DEBUG][       Thread-249803][   transport.py][1871] : client lang: <none>
2025-06-13 09:21:06,386 [DEBUG][       Thread-249803][   transport.py][1871] : server lang: <none>
2025-06-13 09:21:06,386 [DEBUG][       Thread-249803][   transport.py][1871] : kex follows: False
2025-06-13 09:21:06,386 [DEBUG][       Thread-249803][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 09:21:06,387 [DEBUG][       Thread-249803][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 09:21:06,387 [DEBUG][       Thread-249803][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 09:21:06,387 [DEBUG][       Thread-249803][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 09:21:06,387 [DEBUG][       Thread-249803][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 09:21:06,387 [DEBUG][       Thread-249803][   transport.py][1871] : Compression: none
2025-06-13 09:21:06,387 [DEBUG][       Thread-249803][   transport.py][1871] : === End of kex handshake ===
2025-06-13 09:21:06,444 [DEBUG][       Thread-249803][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 09:21:06,445 [DEBUG][       Thread-249803][   transport.py][1871] : Switch to new keys ...
2025-06-13 09:21:06,445 [DEBUG][       Thread-249803][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 09:21:06,445 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 09:21:06,446 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 09:21:06,507 [DEBUG][       Thread-249803][   transport.py][1871] : userauth is OK
2025-06-13 09:21:06,507 [DEBUG][       Thread-249803][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 09:21:06,507 [DEBUG][       Thread-249803][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 09:21:06,507 [DEBUG][       Thread-249803][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 09:21:06,507 [DEBUG][       Thread-249803][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 09:21:06,526 [ INFO][       Thread-249803][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 09:21:06,527 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 09:21:06,527 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 09:21:07,582 [DEBUG][       Thread-249803][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 09:21:07,583 [DEBUG][       Thread-249803][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 09:21:07,631 [DEBUG][       Thread-249803][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 09:21:07,632 [DEBUG][       Thread-249803][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 09:21:07,640 [DEBUG][       Thread-249803][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 09:21:07,649 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 09:21:07,649 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 09:21:07,658 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 09:21:07,667 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 09:21:07,667 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 09:21:07,668 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 09:21:07,676 [DEBUG][       Thread-249803][   transport.py][1871] : EOF in transport thread
2025-06-13 09:21:09,948 [DEBUG][Thread-249805 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:21:17,036 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:21:17,037 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:21:17,678 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 09:21:17,678 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 09:21:17,678 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 09:21:17,681 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 09:21:18,148 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 9, 20, 56), 9.09, 52.81, 0.0, 25.64, 7.77, 0, 0, 0, 2, 0, 0),)
2025-06-13 09:21:18,148 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 09:20:56
2025-06-13 09:21:18,231 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 09:21:18,237 [DEBUG][       Thread-249806][   transport.py][1871] : starting thread (client mode): 0x863a5240
2025-06-13 09:21:18,240 [DEBUG][       Thread-249806][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 09:21:18,257 [DEBUG][       Thread-249806][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 09:21:18,257 [ INFO][       Thread-249806][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 09:21:18,259 [DEBUG][       Thread-249806][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 09:21:18,259 [DEBUG][       Thread-249806][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 09:21:18,259 [DEBUG][       Thread-249806][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 09:21:18,259 [DEBUG][       Thread-249806][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:21:18,260 [DEBUG][       Thread-249806][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:21:18,260 [DEBUG][       Thread-249806][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:21:18,260 [DEBUG][       Thread-249806][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:21:18,260 [DEBUG][       Thread-249806][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 09:21:18,260 [DEBUG][       Thread-249806][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 09:21:18,260 [DEBUG][       Thread-249806][   transport.py][1871] : client lang: <none>
2025-06-13 09:21:18,260 [DEBUG][       Thread-249806][   transport.py][1871] : server lang: <none>
2025-06-13 09:21:18,260 [DEBUG][       Thread-249806][   transport.py][1871] : kex follows: False
2025-06-13 09:21:18,260 [DEBUG][       Thread-249806][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 09:21:18,260 [DEBUG][       Thread-249806][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 09:21:18,260 [DEBUG][       Thread-249806][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 09:21:18,260 [DEBUG][       Thread-249806][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 09:21:18,260 [DEBUG][       Thread-249806][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 09:21:18,260 [DEBUG][       Thread-249806][   transport.py][1871] : Compression: none
2025-06-13 09:21:18,260 [DEBUG][       Thread-249806][   transport.py][1871] : === End of kex handshake ===
2025-06-13 09:21:18,270 [DEBUG][       Thread-249806][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 09:21:18,271 [DEBUG][       Thread-249806][   transport.py][1871] : Switch to new keys ...
2025-06-13 09:21:18,271 [DEBUG][       Thread-249806][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 09:21:18,272 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 09:21:18,272 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 09:21:18,273 [DEBUG][       Thread-249806][   transport.py][1871] : userauth is OK
2025-06-13 09:21:18,297 [ INFO][       Thread-249806][   transport.py][1871] : Authentication (password) successful!
2025-06-13 09:21:18,298 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 09:21:18,905 [DEBUG][       Thread-249806][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 09:21:18,905 [DEBUG][       Thread-249806][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 09:21:18,949 [DEBUG][       Thread-249806][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 09:21:18,949 [DEBUG][       Thread-249806][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 09:21:18,951 [DEBUG][       Thread-249806][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 09:21:18,958 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 09:21:18,959 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 09:21:18,960 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 09:21:18,962 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 09:21:18,966 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 09:21:18,968 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 09:21:18,968 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 09:21:18,968 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 09:21:18,969 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.306191 -999.00   +7.60  22.68     57   -0.20 1 1 1 1 1   887    0 8.37 27.48 ----- 22.7 22.7 36.2 28.2 10.9 -27.6 9.9 -28.3 8.7 -27.5 9.7 -26.1
2025-06-13 09:21:18,969 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 09:21:18,969 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 09:21:18,969 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.306191
2025-06-13 09:21:18,969 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 09:21:18,970 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 09:21:18,970 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 09:21:18,970 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 09:21:18,970 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 09:21:18,970 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T09:20:56', tmtdew=9.09, humidity=52.81, cloud=0.0, wind=25.64, temperature=7.77, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T07:20:54.902', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 09:21:18,970 [DEBUG][       Thread-249806][   transport.py][1871] : EOF in transport thread
2025-06-13 09:21:18,977 [DEBUG][Thread-249809 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:21:19,044 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 09:21:19,059 [DEBUG][       Thread-249810][   transport.py][1871] : starting thread (client mode): 0x868c80a0
2025-06-13 09:21:19,059 [DEBUG][       Thread-249810][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 09:21:19,074 [DEBUG][       Thread-249810][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 09:21:19,074 [ INFO][       Thread-249810][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 09:21:19,087 [DEBUG][       Thread-249810][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 09:21:19,088 [DEBUG][       Thread-249810][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 09:21:19,088 [DEBUG][       Thread-249810][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 09:21:19,088 [DEBUG][       Thread-249810][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:21:19,088 [DEBUG][       Thread-249810][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:21:19,088 [DEBUG][       Thread-249810][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:21:19,088 [DEBUG][       Thread-249810][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:21:19,088 [DEBUG][       Thread-249810][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 09:21:19,088 [DEBUG][       Thread-249810][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 09:21:19,088 [DEBUG][       Thread-249810][   transport.py][1871] : client lang: <none>
2025-06-13 09:21:19,088 [DEBUG][       Thread-249810][   transport.py][1871] : server lang: <none>
2025-06-13 09:21:19,088 [DEBUG][       Thread-249810][   transport.py][1871] : kex follows: False
2025-06-13 09:21:19,088 [DEBUG][       Thread-249810][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 09:21:19,088 [DEBUG][       Thread-249810][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 09:21:19,088 [DEBUG][       Thread-249810][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 09:21:19,088 [DEBUG][       Thread-249810][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 09:21:19,089 [DEBUG][       Thread-249810][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 09:21:19,089 [DEBUG][       Thread-249810][   transport.py][1871] : Compression: none
2025-06-13 09:21:19,089 [DEBUG][       Thread-249810][   transport.py][1871] : === End of kex handshake ===
2025-06-13 09:21:19,150 [DEBUG][       Thread-249810][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 09:21:19,151 [DEBUG][       Thread-249810][   transport.py][1871] : Switch to new keys ...
2025-06-13 09:21:19,151 [DEBUG][       Thread-249810][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 09:21:19,152 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 09:21:19,152 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 09:21:19,207 [DEBUG][       Thread-249810][   transport.py][1871] : userauth is OK
2025-06-13 09:21:19,207 [DEBUG][       Thread-249810][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 09:21:19,207 [DEBUG][       Thread-249810][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 09:21:19,207 [DEBUG][       Thread-249810][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 09:21:19,207 [DEBUG][       Thread-249810][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 09:21:19,224 [ INFO][       Thread-249810][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 09:21:19,224 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 09:21:19,225 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 09:21:20,224 [DEBUG][       Thread-249810][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 09:21:20,224 [DEBUG][       Thread-249810][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 09:21:20,271 [DEBUG][       Thread-249810][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 09:21:20,271 [DEBUG][       Thread-249810][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 09:21:20,280 [DEBUG][       Thread-249810][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 09:21:20,288 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 09:21:20,288 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 09:21:20,296 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 09:21:20,304 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 09:21:20,304 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 09:21:20,304 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 09:21:20,312 [DEBUG][       Thread-249810][   transport.py][1871] : EOF in transport thread
2025-06-13 09:21:27,994 [DEBUG][Thread-249812 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:21:30,312 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 09:21:30,312 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 09:21:30,312 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 09:21:30,313 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 09:21:30,802 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 9, 21, 27), 9.21, 52.39, 0.0, 21.79, 7.76, 0, 0, 0, 2, 0, 0),)
2025-06-13 09:21:30,802 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 09:21:27
2025-06-13 09:21:30,889 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 09:21:30,892 [DEBUG][       Thread-249813][   transport.py][1871] : starting thread (client mode): 0x8636a7a0
2025-06-13 09:21:30,893 [DEBUG][       Thread-249813][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 09:21:30,914 [DEBUG][       Thread-249813][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 09:21:30,914 [ INFO][       Thread-249813][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 09:21:30,915 [DEBUG][       Thread-249813][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 09:21:30,915 [DEBUG][       Thread-249813][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 09:21:30,915 [DEBUG][       Thread-249813][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 09:21:30,915 [DEBUG][       Thread-249813][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:21:30,915 [DEBUG][       Thread-249813][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:21:30,915 [DEBUG][       Thread-249813][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:21:30,915 [DEBUG][       Thread-249813][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:21:30,915 [DEBUG][       Thread-249813][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 09:21:30,915 [DEBUG][       Thread-249813][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 09:21:30,915 [DEBUG][       Thread-249813][   transport.py][1871] : client lang: <none>
2025-06-13 09:21:30,915 [DEBUG][       Thread-249813][   transport.py][1871] : server lang: <none>
2025-06-13 09:21:30,916 [DEBUG][       Thread-249813][   transport.py][1871] : kex follows: False
2025-06-13 09:21:30,916 [DEBUG][       Thread-249813][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 09:21:30,916 [DEBUG][       Thread-249813][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 09:21:30,916 [DEBUG][       Thread-249813][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 09:21:30,916 [DEBUG][       Thread-249813][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 09:21:30,916 [DEBUG][       Thread-249813][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 09:21:30,916 [DEBUG][       Thread-249813][   transport.py][1871] : Compression: none
2025-06-13 09:21:30,916 [DEBUG][       Thread-249813][   transport.py][1871] : === End of kex handshake ===
2025-06-13 09:21:30,922 [DEBUG][       Thread-249813][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 09:21:30,922 [DEBUG][       Thread-249813][   transport.py][1871] : Switch to new keys ...
2025-06-13 09:21:30,922 [DEBUG][       Thread-249813][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 09:21:30,922 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 09:21:30,922 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 09:21:30,923 [DEBUG][       Thread-249813][   transport.py][1871] : userauth is OK
2025-06-13 09:21:30,935 [ INFO][       Thread-249813][   transport.py][1871] : Authentication (password) successful!
2025-06-13 09:21:30,935 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 09:21:31,581 [DEBUG][       Thread-249813][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 09:21:31,581 [DEBUG][       Thread-249813][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 09:21:31,624 [DEBUG][       Thread-249813][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 09:21:31,624 [DEBUG][       Thread-249813][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 09:21:31,627 [DEBUG][       Thread-249813][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 09:21:31,638 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 09:21:31,638 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 09:21:31,639 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 09:21:31,640 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 09:21:31,643 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 09:21:31,643 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 09:21:31,644 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 09:21:31,644 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 09:21:31,644 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.306191 -999.00   +7.60  22.68     57   -0.20 1 1 1 1 1   887    0 8.37 27.48 ----- 22.7 22.7 36.2 28.2 10.9 -27.6 9.9 -28.3 8.7 -27.5 9.7 -26.1
2025-06-13 09:21:31,644 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 09:21:31,644 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 09:21:31,644 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.306191
2025-06-13 09:21:31,644 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 09:21:31,644 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 09:21:31,644 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 09:21:31,644 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 09:21:31,644 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 09:21:31,644 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T09:21:27', tmtdew=9.21, humidity=52.39, cloud=0.0, wind=21.79, temperature=7.76, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T07:20:54.902', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 09:21:31,644 [DEBUG][       Thread-249813][   transport.py][1871] : EOF in transport thread
2025-06-13 09:21:31,728 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 09:21:31,740 [DEBUG][       Thread-249816][   transport.py][1871] : starting thread (client mode): 0x863a4820
2025-06-13 09:21:31,740 [DEBUG][       Thread-249816][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 09:21:31,756 [DEBUG][       Thread-249816][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 09:21:31,756 [ INFO][       Thread-249816][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 09:21:31,764 [DEBUG][       Thread-249816][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 09:21:31,764 [DEBUG][       Thread-249816][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 09:21:31,764 [DEBUG][       Thread-249816][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 09:21:31,764 [DEBUG][       Thread-249816][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:21:31,764 [DEBUG][       Thread-249816][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:21:31,764 [DEBUG][       Thread-249816][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:21:31,764 [DEBUG][       Thread-249816][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:21:31,764 [DEBUG][       Thread-249816][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 09:21:31,764 [DEBUG][       Thread-249816][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 09:21:31,764 [DEBUG][       Thread-249816][   transport.py][1871] : client lang: <none>
2025-06-13 09:21:31,764 [DEBUG][       Thread-249816][   transport.py][1871] : server lang: <none>
2025-06-13 09:21:31,764 [DEBUG][       Thread-249816][   transport.py][1871] : kex follows: False
2025-06-13 09:21:31,764 [DEBUG][       Thread-249816][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 09:21:31,764 [DEBUG][       Thread-249816][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 09:21:31,764 [DEBUG][       Thread-249816][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 09:21:31,764 [DEBUG][       Thread-249816][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 09:21:31,764 [DEBUG][       Thread-249816][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 09:21:31,764 [DEBUG][       Thread-249816][   transport.py][1871] : Compression: none
2025-06-13 09:21:31,764 [DEBUG][       Thread-249816][   transport.py][1871] : === End of kex handshake ===
2025-06-13 09:21:31,821 [DEBUG][       Thread-249816][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 09:21:31,822 [DEBUG][       Thread-249816][   transport.py][1871] : Switch to new keys ...
2025-06-13 09:21:31,822 [DEBUG][       Thread-249816][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 09:21:31,822 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 09:21:31,822 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 09:21:31,879 [DEBUG][       Thread-249816][   transport.py][1871] : userauth is OK
2025-06-13 09:21:31,879 [DEBUG][       Thread-249816][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 09:21:31,879 [DEBUG][       Thread-249816][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 09:21:31,879 [DEBUG][       Thread-249816][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 09:21:31,879 [DEBUG][       Thread-249816][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 09:21:31,896 [ INFO][       Thread-249816][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 09:21:31,897 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 09:21:31,897 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 09:21:32,924 [DEBUG][       Thread-249816][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 09:21:32,925 [DEBUG][       Thread-249816][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 09:21:32,979 [DEBUG][       Thread-249816][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 09:21:32,979 [DEBUG][       Thread-249816][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 09:21:32,988 [DEBUG][       Thread-249816][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 09:21:32,996 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 09:21:32,996 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 09:21:33,005 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 09:21:33,013 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 09:21:33,013 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 09:21:33,014 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 09:21:33,021 [DEBUG][       Thread-249816][   transport.py][1871] : EOF in transport thread
2025-06-13 09:21:37,011 [DEBUG][Thread-249818 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:21:43,024 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 09:21:43,024 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 09:21:43,024 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 09:21:43,027 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 09:21:43,496 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 9, 21, 27), 9.21, 52.39, 0.0, 21.79, 7.76, 0, 0, 0, 2, 0, 0),)
2025-06-13 09:21:43,496 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 09:21:27
2025-06-13 09:21:43,578 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 09:21:43,585 [DEBUG][       Thread-249819][   transport.py][1871] : starting thread (client mode): 0x863cb760
2025-06-13 09:21:43,585 [DEBUG][       Thread-249819][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 09:21:43,608 [DEBUG][       Thread-249819][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 09:21:43,608 [ INFO][       Thread-249819][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 09:21:43,612 [DEBUG][       Thread-249819][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 09:21:43,612 [DEBUG][       Thread-249819][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 09:21:43,612 [DEBUG][       Thread-249819][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 09:21:43,612 [DEBUG][       Thread-249819][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:21:43,613 [DEBUG][       Thread-249819][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:21:43,613 [DEBUG][       Thread-249819][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:21:43,613 [DEBUG][       Thread-249819][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:21:43,613 [DEBUG][       Thread-249819][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 09:21:43,613 [DEBUG][       Thread-249819][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 09:21:43,613 [DEBUG][       Thread-249819][   transport.py][1871] : client lang: <none>
2025-06-13 09:21:43,613 [DEBUG][       Thread-249819][   transport.py][1871] : server lang: <none>
2025-06-13 09:21:43,613 [DEBUG][       Thread-249819][   transport.py][1871] : kex follows: False
2025-06-13 09:21:43,613 [DEBUG][       Thread-249819][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 09:21:43,613 [DEBUG][       Thread-249819][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 09:21:43,613 [DEBUG][       Thread-249819][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 09:21:43,613 [DEBUG][       Thread-249819][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 09:21:43,613 [DEBUG][       Thread-249819][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 09:21:43,613 [DEBUG][       Thread-249819][   transport.py][1871] : Compression: none
2025-06-13 09:21:43,613 [DEBUG][       Thread-249819][   transport.py][1871] : === End of kex handshake ===
2025-06-13 09:21:43,629 [DEBUG][       Thread-249819][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 09:21:43,629 [DEBUG][       Thread-249819][   transport.py][1871] : Switch to new keys ...
2025-06-13 09:21:43,629 [DEBUG][       Thread-249819][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 09:21:43,630 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 09:21:43,630 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 09:21:43,631 [DEBUG][       Thread-249819][   transport.py][1871] : userauth is OK
2025-06-13 09:21:43,643 [ INFO][       Thread-249819][   transport.py][1871] : Authentication (password) successful!
2025-06-13 09:21:43,644 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 09:21:44,280 [DEBUG][       Thread-249819][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 09:21:44,280 [DEBUG][       Thread-249819][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 09:21:44,320 [DEBUG][       Thread-249819][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 09:21:44,320 [DEBUG][       Thread-249819][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 09:21:44,323 [DEBUG][       Thread-249819][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 09:21:44,336 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 09:21:44,336 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 09:21:44,337 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 09:21:44,338 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 09:21:44,340 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 09:21:44,341 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 09:21:44,341 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 09:21:44,341 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 09:21:44,341 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.306538 -999.00   +7.60  25.39     57   -0.10 1 1 1 1 1   887    0 8.34 27.23 ----- 25.4 25.4 22.8 27.7 10.9 -27.3 9.9 -28.3 8.7 -27.6 9.8 -26.0
2025-06-13 09:21:44,341 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 09:21:44,341 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 09:21:44,341 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.306538
2025-06-13 09:21:44,341 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 09:21:44,342 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 09:21:44,342 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 09:21:44,342 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 09:21:44,342 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 09:21:44,342 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T09:21:27', tmtdew=9.21, humidity=52.39, cloud=0.0, wind=21.79, temperature=7.76, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T07:21:24.883', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 09:21:44,342 [DEBUG][       Thread-249819][   transport.py][1871] : EOF in transport thread
2025-06-13 09:21:44,414 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 09:21:44,425 [DEBUG][       Thread-249822][   transport.py][1871] : starting thread (client mode): 0x8636a590
2025-06-13 09:21:44,425 [DEBUG][       Thread-249822][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 09:21:44,439 [DEBUG][       Thread-249822][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 09:21:44,439 [ INFO][       Thread-249822][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 09:21:44,446 [DEBUG][       Thread-249822][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 09:21:44,446 [DEBUG][       Thread-249822][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 09:21:44,447 [DEBUG][       Thread-249822][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 09:21:44,447 [DEBUG][       Thread-249822][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:21:44,447 [DEBUG][       Thread-249822][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:21:44,447 [DEBUG][       Thread-249822][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:21:44,447 [DEBUG][       Thread-249822][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:21:44,447 [DEBUG][       Thread-249822][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 09:21:44,447 [DEBUG][       Thread-249822][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 09:21:44,447 [DEBUG][       Thread-249822][   transport.py][1871] : client lang: <none>
2025-06-13 09:21:44,447 [DEBUG][       Thread-249822][   transport.py][1871] : server lang: <none>
2025-06-13 09:21:44,447 [DEBUG][       Thread-249822][   transport.py][1871] : kex follows: False
2025-06-13 09:21:44,447 [DEBUG][       Thread-249822][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 09:21:44,447 [DEBUG][       Thread-249822][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 09:21:44,447 [DEBUG][       Thread-249822][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 09:21:44,447 [DEBUG][       Thread-249822][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 09:21:44,447 [DEBUG][       Thread-249822][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 09:21:44,447 [DEBUG][       Thread-249822][   transport.py][1871] : Compression: none
2025-06-13 09:21:44,447 [DEBUG][       Thread-249822][   transport.py][1871] : === End of kex handshake ===
2025-06-13 09:21:44,503 [DEBUG][       Thread-249822][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 09:21:44,503 [DEBUG][       Thread-249822][   transport.py][1871] : Switch to new keys ...
2025-06-13 09:21:44,503 [DEBUG][       Thread-249822][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 09:21:44,504 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 09:21:44,504 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 09:21:44,563 [DEBUG][       Thread-249822][   transport.py][1871] : userauth is OK
2025-06-13 09:21:44,563 [DEBUG][       Thread-249822][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 09:21:44,563 [DEBUG][       Thread-249822][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 09:21:44,563 [DEBUG][       Thread-249822][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 09:21:44,563 [DEBUG][       Thread-249822][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 09:21:44,582 [ INFO][       Thread-249822][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 09:21:44,583 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 09:21:44,583 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 09:21:45,570 [DEBUG][       Thread-249822][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 09:21:45,570 [DEBUG][       Thread-249822][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 09:21:45,619 [DEBUG][       Thread-249822][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 09:21:45,619 [DEBUG][       Thread-249822][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 09:21:45,630 [DEBUG][       Thread-249822][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 09:21:45,640 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 09:21:45,640 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 09:21:45,650 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 09:21:45,659 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 09:21:45,659 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 09:21:45,659 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 09:21:45,670 [DEBUG][       Thread-249822][   transport.py][1871] : EOF in transport thread
2025-06-13 09:21:46,050 [DEBUG][Thread-249824 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:21:55,069 [DEBUG][Thread-249825 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:21:55,670 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 09:21:55,670 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 09:21:55,670 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 09:21:55,672 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 09:21:56,128 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 9, 21, 27), 9.21, 52.39, 0.0, 21.79, 7.76, 0, 0, 0, 2, 0, 0),)
2025-06-13 09:21:56,128 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 09:21:27
2025-06-13 09:21:56,210 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 09:21:56,214 [DEBUG][       Thread-249826][   transport.py][1871] : starting thread (client mode): 0x86368bb0
2025-06-13 09:21:56,214 [DEBUG][       Thread-249826][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 09:21:56,234 [DEBUG][       Thread-249826][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 09:21:56,234 [ INFO][       Thread-249826][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 09:21:56,238 [DEBUG][       Thread-249826][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 09:21:56,238 [DEBUG][       Thread-249826][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 09:21:56,238 [DEBUG][       Thread-249826][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 09:21:56,238 [DEBUG][       Thread-249826][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:21:56,238 [DEBUG][       Thread-249826][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:21:56,238 [DEBUG][       Thread-249826][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:21:56,238 [DEBUG][       Thread-249826][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:21:56,238 [DEBUG][       Thread-249826][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 09:21:56,238 [DEBUG][       Thread-249826][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 09:21:56,238 [DEBUG][       Thread-249826][   transport.py][1871] : client lang: <none>
2025-06-13 09:21:56,238 [DEBUG][       Thread-249826][   transport.py][1871] : server lang: <none>
2025-06-13 09:21:56,238 [DEBUG][       Thread-249826][   transport.py][1871] : kex follows: False
2025-06-13 09:21:56,238 [DEBUG][       Thread-249826][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 09:21:56,238 [DEBUG][       Thread-249826][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 09:21:56,238 [DEBUG][       Thread-249826][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 09:21:56,238 [DEBUG][       Thread-249826][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 09:21:56,238 [DEBUG][       Thread-249826][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 09:21:56,238 [DEBUG][       Thread-249826][   transport.py][1871] : Compression: none
2025-06-13 09:21:56,238 [DEBUG][       Thread-249826][   transport.py][1871] : === End of kex handshake ===
2025-06-13 09:21:56,255 [DEBUG][       Thread-249826][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 09:21:56,256 [DEBUG][       Thread-249826][   transport.py][1871] : Switch to new keys ...
2025-06-13 09:21:56,256 [DEBUG][       Thread-249826][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 09:21:56,257 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 09:21:56,257 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 09:21:56,258 [DEBUG][       Thread-249826][   transport.py][1871] : userauth is OK
2025-06-13 09:21:56,271 [ INFO][       Thread-249826][   transport.py][1871] : Authentication (password) successful!
2025-06-13 09:21:56,272 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 09:21:56,860 [DEBUG][       Thread-249826][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 09:21:56,860 [DEBUG][       Thread-249826][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 09:21:56,905 [DEBUG][       Thread-249826][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 09:21:56,905 [DEBUG][       Thread-249826][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 09:21:56,908 [DEBUG][       Thread-249826][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 09:21:56,919 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 09:21:56,920 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 09:21:56,921 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 09:21:56,923 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 09:21:56,927 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 09:21:56,928 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 09:21:56,928 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 09:21:56,929 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 09:21:56,929 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.306538 -999.00   +7.60  25.39     57   -0.10 1 1 1 1 1   887    0 8.34 27.23 ----- 25.4 25.4 22.8 27.7 10.9 -27.3 9.9 -28.3 8.7 -27.6 9.8 -26.0
2025-06-13 09:21:56,929 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 09:21:56,929 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 09:21:56,929 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.306538
2025-06-13 09:21:56,930 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 09:21:56,930 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 09:21:56,930 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 09:21:56,930 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 09:21:56,930 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 09:21:56,930 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T09:21:27', tmtdew=9.21, humidity=52.39, cloud=0.0, wind=21.79, temperature=7.76, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T07:21:24.883', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 09:21:56,931 [DEBUG][       Thread-249826][   transport.py][1871] : EOF in transport thread
2025-06-13 09:21:57,014 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 09:21:57,027 [DEBUG][       Thread-249829][   transport.py][1871] : starting thread (client mode): 0x863a5de0
2025-06-13 09:21:57,027 [DEBUG][       Thread-249829][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 09:21:57,042 [DEBUG][       Thread-249829][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 09:21:57,042 [ INFO][       Thread-249829][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 09:21:57,049 [DEBUG][       Thread-249829][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 09:21:57,050 [DEBUG][       Thread-249829][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 09:21:57,050 [DEBUG][       Thread-249829][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 09:21:57,050 [DEBUG][       Thread-249829][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:21:57,050 [DEBUG][       Thread-249829][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:21:57,050 [DEBUG][       Thread-249829][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:21:57,050 [DEBUG][       Thread-249829][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:21:57,050 [DEBUG][       Thread-249829][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 09:21:57,050 [DEBUG][       Thread-249829][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 09:21:57,050 [DEBUG][       Thread-249829][   transport.py][1871] : client lang: <none>
2025-06-13 09:21:57,050 [DEBUG][       Thread-249829][   transport.py][1871] : server lang: <none>
2025-06-13 09:21:57,050 [DEBUG][       Thread-249829][   transport.py][1871] : kex follows: False
2025-06-13 09:21:57,050 [DEBUG][       Thread-249829][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 09:21:57,050 [DEBUG][       Thread-249829][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 09:21:57,050 [DEBUG][       Thread-249829][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 09:21:57,050 [DEBUG][       Thread-249829][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 09:21:57,050 [DEBUG][       Thread-249829][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 09:21:57,050 [DEBUG][       Thread-249829][   transport.py][1871] : Compression: none
2025-06-13 09:21:57,050 [DEBUG][       Thread-249829][   transport.py][1871] : === End of kex handshake ===
2025-06-13 09:21:57,107 [DEBUG][       Thread-249829][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 09:21:57,107 [DEBUG][       Thread-249829][   transport.py][1871] : Switch to new keys ...
2025-06-13 09:21:57,107 [DEBUG][       Thread-249829][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 09:21:57,108 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 09:21:57,108 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 09:21:57,163 [DEBUG][       Thread-249829][   transport.py][1871] : userauth is OK
2025-06-13 09:21:57,163 [DEBUG][       Thread-249829][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 09:21:57,163 [DEBUG][       Thread-249829][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 09:21:57,163 [DEBUG][       Thread-249829][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 09:21:57,163 [DEBUG][       Thread-249829][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 09:21:57,185 [ INFO][       Thread-249829][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 09:21:57,185 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 09:21:57,185 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 09:21:58,205 [DEBUG][       Thread-249829][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 09:21:58,205 [DEBUG][       Thread-249829][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 09:21:58,256 [DEBUG][       Thread-249829][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 09:21:58,256 [DEBUG][       Thread-249829][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 09:21:58,265 [DEBUG][       Thread-249829][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 09:21:58,273 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 09:21:58,274 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 09:21:58,282 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 09:21:58,291 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 09:21:58,291 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 09:21:58,291 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 09:21:58,299 [DEBUG][       Thread-249829][   transport.py][1871] : EOF in transport thread
2025-06-13 09:22:00,226 [DEBUG][Thread-249831 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:22:01,262 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:22:01,262 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:22:02,964 [DEBUG][Thread-249832 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:22:04,087 [DEBUG][Thread-249833 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:22:08,300 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 09:22:08,300 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 09:22:08,300 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 09:22:08,301 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 09:22:08,795 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 9, 21, 59), 9.17, 52.54, 0.0, 22.48, 7.73, 0, 0, 0, 2, 0, 0),)
2025-06-13 09:22:08,795 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 09:21:59
2025-06-13 09:22:08,880 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 09:22:08,885 [DEBUG][       Thread-249834][   transport.py][1871] : starting thread (client mode): 0x867b71c0
2025-06-13 09:22:08,885 [DEBUG][       Thread-249834][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 09:22:08,904 [DEBUG][       Thread-249834][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 09:22:08,904 [ INFO][       Thread-249834][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 09:22:08,905 [DEBUG][       Thread-249834][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 09:22:08,905 [DEBUG][       Thread-249834][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 09:22:08,905 [DEBUG][       Thread-249834][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 09:22:08,905 [DEBUG][       Thread-249834][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:22:08,905 [DEBUG][       Thread-249834][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:22:08,905 [DEBUG][       Thread-249834][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:22:08,905 [DEBUG][       Thread-249834][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:22:08,905 [DEBUG][       Thread-249834][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 09:22:08,905 [DEBUG][       Thread-249834][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 09:22:08,905 [DEBUG][       Thread-249834][   transport.py][1871] : client lang: <none>
2025-06-13 09:22:08,905 [DEBUG][       Thread-249834][   transport.py][1871] : server lang: <none>
2025-06-13 09:22:08,905 [DEBUG][       Thread-249834][   transport.py][1871] : kex follows: False
2025-06-13 09:22:08,905 [DEBUG][       Thread-249834][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 09:22:08,905 [DEBUG][       Thread-249834][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 09:22:08,905 [DEBUG][       Thread-249834][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 09:22:08,905 [DEBUG][       Thread-249834][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 09:22:08,905 [DEBUG][       Thread-249834][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 09:22:08,906 [DEBUG][       Thread-249834][   transport.py][1871] : Compression: none
2025-06-13 09:22:08,906 [DEBUG][       Thread-249834][   transport.py][1871] : === End of kex handshake ===
2025-06-13 09:22:08,917 [DEBUG][       Thread-249834][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 09:22:08,917 [DEBUG][       Thread-249834][   transport.py][1871] : Switch to new keys ...
2025-06-13 09:22:08,917 [DEBUG][       Thread-249834][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 09:22:08,917 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 09:22:08,917 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 09:22:08,918 [DEBUG][       Thread-249834][   transport.py][1871] : userauth is OK
2025-06-13 09:22:08,930 [ INFO][       Thread-249834][   transport.py][1871] : Authentication (password) successful!
2025-06-13 09:22:08,930 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 09:22:09,517 [DEBUG][       Thread-249834][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 09:22:09,517 [DEBUG][       Thread-249834][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 09:22:09,560 [DEBUG][       Thread-249834][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 09:22:09,561 [DEBUG][       Thread-249834][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 09:22:09,563 [DEBUG][       Thread-249834][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 09:22:09,574 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 09:22:09,574 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 09:22:09,575 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 09:22:09,576 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 09:22:09,579 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 09:22:09,580 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 09:22:09,580 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 09:22:09,580 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 09:22:09,580 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.306538 -999.00   +7.60  25.39     57   -0.10 1 1 1 1 1   887    0 8.34 27.23 ----- 25.4 25.4 22.8 27.7 10.9 -27.3 9.9 -28.3 8.7 -27.6 9.8 -26.0
2025-06-13 09:22:09,580 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 09:22:09,580 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 09:22:09,580 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.306538
2025-06-13 09:22:09,580 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 09:22:09,580 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 09:22:09,580 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 09:22:09,580 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 09:22:09,580 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 09:22:09,580 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T09:21:59', tmtdew=9.17, humidity=52.54, cloud=0.0, wind=22.48, temperature=7.73, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T07:21:24.883', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 09:22:09,581 [DEBUG][       Thread-249834][   transport.py][1871] : EOF in transport thread
2025-06-13 09:22:09,652 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 09:22:09,664 [DEBUG][       Thread-249837][   transport.py][1871] : starting thread (client mode): 0x8636ae30
2025-06-13 09:22:09,664 [DEBUG][       Thread-249837][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 09:22:09,680 [DEBUG][       Thread-249837][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 09:22:09,680 [ INFO][       Thread-249837][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 09:22:09,687 [DEBUG][       Thread-249837][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 09:22:09,687 [DEBUG][       Thread-249837][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 09:22:09,687 [DEBUG][       Thread-249837][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 09:22:09,687 [DEBUG][       Thread-249837][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:22:09,687 [DEBUG][       Thread-249837][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:22:09,687 [DEBUG][       Thread-249837][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:22:09,687 [DEBUG][       Thread-249837][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:22:09,687 [DEBUG][       Thread-249837][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 09:22:09,687 [DEBUG][       Thread-249837][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 09:22:09,687 [DEBUG][       Thread-249837][   transport.py][1871] : client lang: <none>
2025-06-13 09:22:09,687 [DEBUG][       Thread-249837][   transport.py][1871] : server lang: <none>
2025-06-13 09:22:09,687 [DEBUG][       Thread-249837][   transport.py][1871] : kex follows: False
2025-06-13 09:22:09,687 [DEBUG][       Thread-249837][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 09:22:09,687 [DEBUG][       Thread-249837][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 09:22:09,687 [DEBUG][       Thread-249837][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 09:22:09,687 [DEBUG][       Thread-249837][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 09:22:09,687 [DEBUG][       Thread-249837][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 09:22:09,687 [DEBUG][       Thread-249837][   transport.py][1871] : Compression: none
2025-06-13 09:22:09,687 [DEBUG][       Thread-249837][   transport.py][1871] : === End of kex handshake ===
2025-06-13 09:22:09,745 [DEBUG][       Thread-249837][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 09:22:09,745 [DEBUG][       Thread-249837][   transport.py][1871] : Switch to new keys ...
2025-06-13 09:22:09,745 [DEBUG][       Thread-249837][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 09:22:09,746 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 09:22:09,746 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 09:22:09,811 [DEBUG][       Thread-249837][   transport.py][1871] : userauth is OK
2025-06-13 09:22:09,811 [DEBUG][       Thread-249837][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 09:22:09,811 [DEBUG][       Thread-249837][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 09:22:09,811 [DEBUG][       Thread-249837][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 09:22:09,811 [DEBUG][       Thread-249837][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 09:22:09,827 [ INFO][       Thread-249837][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 09:22:09,827 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 09:22:09,827 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 09:22:10,849 [DEBUG][       Thread-249837][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 09:22:10,849 [DEBUG][       Thread-249837][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 09:22:10,899 [DEBUG][       Thread-249837][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 09:22:10,899 [DEBUG][       Thread-249837][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 09:22:10,908 [DEBUG][       Thread-249837][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 09:22:10,916 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 09:22:10,917 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 09:22:10,925 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 09:22:10,934 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 09:22:10,934 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 09:22:10,934 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 09:22:10,942 [DEBUG][       Thread-249837][   transport.py][1871] : EOF in transport thread
2025-06-13 09:22:13,104 [DEBUG][Thread-249839 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:22:17,176 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:22:17,177 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:22:20,945 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 09:22:20,945 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 09:22:20,945 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 09:22:20,947 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 09:22:21,408 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 9, 21, 59), 9.17, 52.54, 0.0, 22.48, 7.73, 0, 0, 0, 2, 0, 0),)
2025-06-13 09:22:21,408 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 09:21:59
2025-06-13 09:22:21,489 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 09:22:21,493 [DEBUG][       Thread-249840][   transport.py][1871] : starting thread (client mode): 0x867b7430
2025-06-13 09:22:21,493 [DEBUG][       Thread-249840][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 09:22:21,513 [DEBUG][       Thread-249840][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 09:22:21,513 [ INFO][       Thread-249840][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 09:22:21,517 [DEBUG][       Thread-249840][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 09:22:21,517 [DEBUG][       Thread-249840][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 09:22:21,517 [DEBUG][       Thread-249840][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 09:22:21,517 [DEBUG][       Thread-249840][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:22:21,517 [DEBUG][       Thread-249840][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:22:21,517 [DEBUG][       Thread-249840][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:22:21,517 [DEBUG][       Thread-249840][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:22:21,517 [DEBUG][       Thread-249840][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 09:22:21,517 [DEBUG][       Thread-249840][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 09:22:21,517 [DEBUG][       Thread-249840][   transport.py][1871] : client lang: <none>
2025-06-13 09:22:21,517 [DEBUG][       Thread-249840][   transport.py][1871] : server lang: <none>
2025-06-13 09:22:21,517 [DEBUG][       Thread-249840][   transport.py][1871] : kex follows: False
2025-06-13 09:22:21,517 [DEBUG][       Thread-249840][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 09:22:21,517 [DEBUG][       Thread-249840][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 09:22:21,517 [DEBUG][       Thread-249840][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 09:22:21,517 [DEBUG][       Thread-249840][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 09:22:21,517 [DEBUG][       Thread-249840][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 09:22:21,517 [DEBUG][       Thread-249840][   transport.py][1871] : Compression: none
2025-06-13 09:22:21,517 [DEBUG][       Thread-249840][   transport.py][1871] : === End of kex handshake ===
2025-06-13 09:22:21,535 [DEBUG][       Thread-249840][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 09:22:21,535 [DEBUG][       Thread-249840][   transport.py][1871] : Switch to new keys ...
2025-06-13 09:22:21,536 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 09:22:21,536 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 09:22:21,537 [DEBUG][       Thread-249840][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 09:22:21,537 [DEBUG][       Thread-249840][   transport.py][1871] : userauth is OK
2025-06-13 09:22:21,550 [ INFO][       Thread-249840][   transport.py][1871] : Authentication (password) successful!
2025-06-13 09:22:21,550 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 09:22:22,143 [DEBUG][Thread-249842 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:22:22,206 [DEBUG][       Thread-249840][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 09:22:22,206 [DEBUG][       Thread-249840][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 09:22:22,249 [DEBUG][       Thread-249840][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 09:22:22,249 [DEBUG][       Thread-249840][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 09:22:22,252 [DEBUG][       Thread-249840][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 09:22:22,264 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 09:22:22,264 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 09:22:22,266 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 09:22:22,268 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 09:22:22,273 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 09:22:22,274 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 09:22:22,275 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 09:22:22,275 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 09:22:22,275 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.306886 -999.00   +7.60  25.66     57   -0.10 1 1 1 1 1   887    0 8.30 27.15 ----- 25.7 25.7 46.8 29.2 11.1 -27.5 9.9 -28.4 8.7 -27.7 9.8 -25.9
2025-06-13 09:22:22,275 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 09:22:22,275 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 09:22:22,275 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.306886
2025-06-13 09:22:22,276 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 09:22:22,276 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 09:22:22,276 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 09:22:22,277 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 09:22:22,277 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 09:22:22,277 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T09:21:59', tmtdew=9.17, humidity=52.54, cloud=0.0, wind=22.48, temperature=7.73, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T07:21:54.950', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 09:22:22,278 [DEBUG][       Thread-249840][   transport.py][1871] : EOF in transport thread
2025-06-13 09:22:22,361 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 09:22:22,370 [DEBUG][       Thread-249844][   transport.py][1871] : starting thread (client mode): 0x863ee410
2025-06-13 09:22:22,370 [DEBUG][       Thread-249844][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 09:22:22,388 [DEBUG][       Thread-249844][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 09:22:22,388 [ INFO][       Thread-249844][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 09:22:22,396 [DEBUG][       Thread-249844][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 09:22:22,396 [DEBUG][       Thread-249844][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 09:22:22,396 [DEBUG][       Thread-249844][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 09:22:22,396 [DEBUG][       Thread-249844][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:22:22,396 [DEBUG][       Thread-249844][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:22:22,396 [DEBUG][       Thread-249844][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:22:22,396 [DEBUG][       Thread-249844][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:22:22,396 [DEBUG][       Thread-249844][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 09:22:22,396 [DEBUG][       Thread-249844][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 09:22:22,396 [DEBUG][       Thread-249844][   transport.py][1871] : client lang: <none>
2025-06-13 09:22:22,396 [DEBUG][       Thread-249844][   transport.py][1871] : server lang: <none>
2025-06-13 09:22:22,396 [DEBUG][       Thread-249844][   transport.py][1871] : kex follows: False
2025-06-13 09:22:22,396 [DEBUG][       Thread-249844][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 09:22:22,396 [DEBUG][       Thread-249844][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 09:22:22,397 [DEBUG][       Thread-249844][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 09:22:22,397 [DEBUG][       Thread-249844][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 09:22:22,397 [DEBUG][       Thread-249844][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 09:22:22,397 [DEBUG][       Thread-249844][   transport.py][1871] : Compression: none
2025-06-13 09:22:22,397 [DEBUG][       Thread-249844][   transport.py][1871] : === End of kex handshake ===
2025-06-13 09:22:22,459 [DEBUG][       Thread-249844][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 09:22:22,459 [DEBUG][       Thread-249844][   transport.py][1871] : Switch to new keys ...
2025-06-13 09:22:22,460 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 09:22:22,460 [DEBUG][       Thread-249844][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 09:22:22,461 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 09:22:22,515 [DEBUG][       Thread-249844][   transport.py][1871] : userauth is OK
2025-06-13 09:22:22,515 [DEBUG][       Thread-249844][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 09:22:22,515 [DEBUG][       Thread-249844][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 09:22:22,515 [DEBUG][       Thread-249844][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 09:22:22,515 [DEBUG][       Thread-249844][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 09:22:22,534 [ INFO][       Thread-249844][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 09:22:22,535 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 09:22:22,535 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 09:22:23,597 [DEBUG][       Thread-249844][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 09:22:23,597 [DEBUG][       Thread-249844][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 09:22:23,647 [DEBUG][       Thread-249844][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 09:22:23,648 [DEBUG][       Thread-249844][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 09:22:23,657 [DEBUG][       Thread-249844][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 09:22:23,665 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 09:22:23,665 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 09:22:23,674 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 09:22:23,683 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 09:22:23,683 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 09:22:23,683 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 09:22:23,691 [DEBUG][       Thread-249844][   transport.py][1871] : EOF in transport thread
2025-06-13 09:22:31,162 [DEBUG][Thread-249846 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:22:33,694 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 09:22:33,694 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 09:22:33,694 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 09:22:33,696 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 09:22:34,155 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 9, 22, 31), 9.16, 52.11, 0.0, 21.77, 7.66, 0, 0, 0, 2, 0, 0),)
2025-06-13 09:22:34,155 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 09:22:31
2025-06-13 09:22:34,238 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 09:22:34,244 [DEBUG][       Thread-249847][   transport.py][1871] : starting thread (client mode): 0x86369000
2025-06-13 09:22:34,244 [DEBUG][       Thread-249847][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 09:22:34,265 [DEBUG][       Thread-249847][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 09:22:34,265 [ INFO][       Thread-249847][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 09:22:34,269 [DEBUG][       Thread-249847][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 09:22:34,269 [DEBUG][       Thread-249847][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 09:22:34,269 [DEBUG][       Thread-249847][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 09:22:34,269 [DEBUG][       Thread-249847][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:22:34,269 [DEBUG][       Thread-249847][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:22:34,269 [DEBUG][       Thread-249847][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:22:34,269 [DEBUG][       Thread-249847][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:22:34,269 [DEBUG][       Thread-249847][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 09:22:34,269 [DEBUG][       Thread-249847][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 09:22:34,269 [DEBUG][       Thread-249847][   transport.py][1871] : client lang: <none>
2025-06-13 09:22:34,269 [DEBUG][       Thread-249847][   transport.py][1871] : server lang: <none>
2025-06-13 09:22:34,269 [DEBUG][       Thread-249847][   transport.py][1871] : kex follows: False
2025-06-13 09:22:34,269 [DEBUG][       Thread-249847][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 09:22:34,269 [DEBUG][       Thread-249847][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 09:22:34,269 [DEBUG][       Thread-249847][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 09:22:34,269 [DEBUG][       Thread-249847][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 09:22:34,269 [DEBUG][       Thread-249847][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 09:22:34,269 [DEBUG][       Thread-249847][   transport.py][1871] : Compression: none
2025-06-13 09:22:34,269 [DEBUG][       Thread-249847][   transport.py][1871] : === End of kex handshake ===
2025-06-13 09:22:34,285 [DEBUG][       Thread-249847][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 09:22:34,285 [DEBUG][       Thread-249847][   transport.py][1871] : Switch to new keys ...
2025-06-13 09:22:34,286 [DEBUG][       Thread-249847][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 09:22:34,286 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 09:22:34,286 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 09:22:34,288 [DEBUG][       Thread-249847][   transport.py][1871] : userauth is OK
2025-06-13 09:22:34,301 [ INFO][       Thread-249847][   transport.py][1871] : Authentication (password) successful!
2025-06-13 09:22:34,301 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 09:22:34,928 [DEBUG][       Thread-249847][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 09:22:34,928 [DEBUG][       Thread-249847][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 09:22:34,969 [DEBUG][       Thread-249847][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 09:22:34,969 [DEBUG][       Thread-249847][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 09:22:34,972 [DEBUG][       Thread-249847][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 09:22:34,984 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 09:22:34,984 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 09:22:34,986 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 09:22:34,987 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 09:22:34,993 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 09:22:34,995 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 09:22:34,995 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 09:22:34,996 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 09:22:34,996 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.306886 -999.00   +7.60  25.66     57   -0.10 1 1 1 1 1   887    0 8.30 27.15 ----- 25.7 25.7 46.8 29.2 11.1 -27.5 9.9 -28.4 8.7 -27.7 9.8 -25.9
2025-06-13 09:22:34,996 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 09:22:34,996 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 09:22:34,996 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.306886
2025-06-13 09:22:34,997 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 09:22:34,997 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 09:22:34,997 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 09:22:34,997 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 09:22:34,997 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 09:22:34,997 [DEBUG][       Thread-249847][   transport.py][1871] : EOF in transport thread
2025-06-13 09:22:34,998 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T09:22:31', tmtdew=9.16, humidity=52.11, cloud=0.0, wind=21.77, temperature=7.66, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T07:21:54.950', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 09:22:35,082 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 09:22:35,094 [DEBUG][       Thread-249850][   transport.py][1871] : starting thread (client mode): 0x86369f30
2025-06-13 09:22:35,094 [DEBUG][       Thread-249850][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 09:22:35,109 [DEBUG][       Thread-249850][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 09:22:35,109 [ INFO][       Thread-249850][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 09:22:35,122 [DEBUG][       Thread-249850][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 09:22:35,122 [DEBUG][       Thread-249850][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 09:22:35,122 [DEBUG][       Thread-249850][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 09:22:35,122 [DEBUG][       Thread-249850][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:22:35,122 [DEBUG][       Thread-249850][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:22:35,123 [DEBUG][       Thread-249850][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:22:35,123 [DEBUG][       Thread-249850][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:22:35,123 [DEBUG][       Thread-249850][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 09:22:35,123 [DEBUG][       Thread-249850][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 09:22:35,123 [DEBUG][       Thread-249850][   transport.py][1871] : client lang: <none>
2025-06-13 09:22:35,123 [DEBUG][       Thread-249850][   transport.py][1871] : server lang: <none>
2025-06-13 09:22:35,123 [DEBUG][       Thread-249850][   transport.py][1871] : kex follows: False
2025-06-13 09:22:35,123 [DEBUG][       Thread-249850][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 09:22:35,123 [DEBUG][       Thread-249850][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 09:22:35,123 [DEBUG][       Thread-249850][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 09:22:35,123 [DEBUG][       Thread-249850][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 09:22:35,123 [DEBUG][       Thread-249850][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 09:22:35,123 [DEBUG][       Thread-249850][   transport.py][1871] : Compression: none
2025-06-13 09:22:35,123 [DEBUG][       Thread-249850][   transport.py][1871] : === End of kex handshake ===
2025-06-13 09:22:35,178 [DEBUG][       Thread-249850][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 09:22:35,179 [DEBUG][       Thread-249850][   transport.py][1871] : Switch to new keys ...
2025-06-13 09:22:35,179 [DEBUG][       Thread-249850][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 09:22:35,179 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 09:22:35,180 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 09:22:35,242 [DEBUG][       Thread-249850][   transport.py][1871] : userauth is OK
2025-06-13 09:22:35,242 [DEBUG][       Thread-249850][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 09:22:35,242 [DEBUG][       Thread-249850][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 09:22:35,242 [DEBUG][       Thread-249850][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 09:22:35,242 [DEBUG][       Thread-249850][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 09:22:35,263 [ INFO][       Thread-249850][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 09:22:35,263 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 09:22:35,264 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 09:22:36,249 [DEBUG][       Thread-249850][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 09:22:36,249 [DEBUG][       Thread-249850][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 09:22:36,305 [DEBUG][       Thread-249850][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 09:22:36,305 [DEBUG][       Thread-249850][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 09:22:36,323 [DEBUG][       Thread-249850][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 09:22:36,339 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 09:22:36,340 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 09:22:36,353 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 09:22:36,370 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 09:22:36,370 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 09:22:36,371 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 09:22:36,387 [DEBUG][       Thread-249850][   transport.py][1871] : EOF in transport thread
2025-06-13 09:22:40,180 [DEBUG][Thread-249852 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:22:46,380 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 09:22:46,380 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 09:22:46,380 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 09:22:46,381 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 09:22:46,859 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 9, 22, 31), 9.16, 52.11, 0.0, 21.77, 7.66, 0, 0, 0, 2, 0, 0),)
2025-06-13 09:22:46,859 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 09:22:31
2025-06-13 09:22:46,946 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 09:22:46,952 [DEBUG][       Thread-249853][   transport.py][1871] : starting thread (client mode): 0x8636b640
2025-06-13 09:22:46,952 [DEBUG][       Thread-249853][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 09:22:46,971 [DEBUG][       Thread-249853][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 09:22:46,971 [ INFO][       Thread-249853][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 09:22:46,975 [DEBUG][       Thread-249853][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 09:22:46,975 [DEBUG][       Thread-249853][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 09:22:46,975 [DEBUG][       Thread-249853][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 09:22:46,975 [DEBUG][       Thread-249853][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:22:46,975 [DEBUG][       Thread-249853][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:22:46,975 [DEBUG][       Thread-249853][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:22:46,975 [DEBUG][       Thread-249853][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:22:46,975 [DEBUG][       Thread-249853][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 09:22:46,975 [DEBUG][       Thread-249853][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 09:22:46,975 [DEBUG][       Thread-249853][   transport.py][1871] : client lang: <none>
2025-06-13 09:22:46,975 [DEBUG][       Thread-249853][   transport.py][1871] : server lang: <none>
2025-06-13 09:22:46,975 [DEBUG][       Thread-249853][   transport.py][1871] : kex follows: False
2025-06-13 09:22:46,975 [DEBUG][       Thread-249853][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 09:22:46,975 [DEBUG][       Thread-249853][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 09:22:46,975 [DEBUG][       Thread-249853][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 09:22:46,975 [DEBUG][       Thread-249853][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 09:22:46,975 [DEBUG][       Thread-249853][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 09:22:46,975 [DEBUG][       Thread-249853][   transport.py][1871] : Compression: none
2025-06-13 09:22:46,975 [DEBUG][       Thread-249853][   transport.py][1871] : === End of kex handshake ===
2025-06-13 09:22:46,991 [DEBUG][       Thread-249853][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 09:22:46,991 [DEBUG][       Thread-249853][   transport.py][1871] : Switch to new keys ...
2025-06-13 09:22:46,991 [DEBUG][       Thread-249853][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 09:22:46,991 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 09:22:46,991 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 09:22:46,992 [DEBUG][       Thread-249853][   transport.py][1871] : userauth is OK
2025-06-13 09:22:47,015 [ INFO][       Thread-249853][   transport.py][1871] : Authentication (password) successful!
2025-06-13 09:22:47,015 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 09:22:47,624 [DEBUG][       Thread-249853][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 09:22:47,624 [DEBUG][       Thread-249853][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 09:22:47,668 [DEBUG][       Thread-249853][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 09:22:47,668 [DEBUG][       Thread-249853][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 09:22:47,670 [DEBUG][       Thread-249853][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 09:22:47,682 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 09:22:47,682 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 09:22:47,683 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 09:22:47,684 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 09:22:47,686 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 09:22:47,687 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 09:22:47,687 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 09:22:47,687 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 09:22:47,687 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.307233 -999.00   +7.60  23.77     57   -0.20 1 1 1 1 1   887    0 8.39 26.51 ----- 23.8 23.8 41.8 26.9 11.1 -27.8 9.9 -28.6 8.7 -27.7 9.8 -26.3
2025-06-13 09:22:47,687 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 09:22:47,687 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 09:22:47,687 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.307233
2025-06-13 09:22:47,687 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 09:22:47,687 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 09:22:47,687 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 09:22:47,687 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 09:22:47,687 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 09:22:47,687 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T09:22:31', tmtdew=9.16, humidity=52.11, cloud=0.0, wind=21.77, temperature=7.66, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T07:22:24.931', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 09:22:47,687 [DEBUG][       Thread-249853][   transport.py][1871] : EOF in transport thread
2025-06-13 09:22:47,762 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 09:22:47,775 [DEBUG][       Thread-249856][   transport.py][1871] : starting thread (client mode): 0x867ff460
2025-06-13 09:22:47,775 [DEBUG][       Thread-249856][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 09:22:47,790 [DEBUG][       Thread-249856][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 09:22:47,790 [ INFO][       Thread-249856][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 09:22:47,797 [DEBUG][       Thread-249856][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 09:22:47,797 [DEBUG][       Thread-249856][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 09:22:47,798 [DEBUG][       Thread-249856][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 09:22:47,798 [DEBUG][       Thread-249856][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:22:47,798 [DEBUG][       Thread-249856][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:22:47,798 [DEBUG][       Thread-249856][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:22:47,798 [DEBUG][       Thread-249856][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:22:47,798 [DEBUG][       Thread-249856][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 09:22:47,798 [DEBUG][       Thread-249856][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 09:22:47,798 [DEBUG][       Thread-249856][   transport.py][1871] : client lang: <none>
2025-06-13 09:22:47,798 [DEBUG][       Thread-249856][   transport.py][1871] : server lang: <none>
2025-06-13 09:22:47,798 [DEBUG][       Thread-249856][   transport.py][1871] : kex follows: False
2025-06-13 09:22:47,798 [DEBUG][       Thread-249856][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 09:22:47,798 [DEBUG][       Thread-249856][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 09:22:47,798 [DEBUG][       Thread-249856][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 09:22:47,798 [DEBUG][       Thread-249856][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 09:22:47,798 [DEBUG][       Thread-249856][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 09:22:47,798 [DEBUG][       Thread-249856][   transport.py][1871] : Compression: none
2025-06-13 09:22:47,798 [DEBUG][       Thread-249856][   transport.py][1871] : === End of kex handshake ===
2025-06-13 09:22:47,854 [DEBUG][       Thread-249856][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 09:22:47,854 [DEBUG][       Thread-249856][   transport.py][1871] : Switch to new keys ...
2025-06-13 09:22:47,854 [DEBUG][       Thread-249856][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 09:22:47,854 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 09:22:47,854 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 09:22:47,914 [DEBUG][       Thread-249856][   transport.py][1871] : userauth is OK
2025-06-13 09:22:47,914 [DEBUG][       Thread-249856][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 09:22:47,914 [DEBUG][       Thread-249856][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 09:22:47,914 [DEBUG][       Thread-249856][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 09:22:47,914 [DEBUG][       Thread-249856][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 09:22:47,928 [ INFO][       Thread-249856][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 09:22:47,928 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 09:22:47,928 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 09:22:48,928 [DEBUG][       Thread-249856][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 09:22:48,928 [DEBUG][       Thread-249856][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 09:22:48,976 [DEBUG][       Thread-249856][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 09:22:48,976 [DEBUG][       Thread-249856][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 09:22:48,985 [DEBUG][       Thread-249856][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 09:22:48,993 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 09:22:48,993 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 09:22:49,002 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 09:22:49,011 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 09:22:49,011 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 09:22:49,011 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 09:22:49,024 [DEBUG][       Thread-249856][   transport.py][1871] : EOF in transport thread
2025-06-13 09:22:49,218 [DEBUG][Thread-249858 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:22:58,237 [DEBUG][Thread-249859 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:22:59,022 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 09:22:59,022 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 09:22:59,022 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 09:22:59,023 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 09:22:59,478 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 9, 22, 31), 9.16, 52.11, 0.0, 21.77, 7.66, 0, 0, 0, 2, 0, 0),)
2025-06-13 09:22:59,478 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 09:22:31
2025-06-13 09:22:59,560 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 09:22:59,564 [DEBUG][       Thread-249860][   transport.py][1871] : starting thread (client mode): 0x863a5e70
2025-06-13 09:22:59,564 [DEBUG][       Thread-249860][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 09:22:59,586 [DEBUG][       Thread-249860][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 09:22:59,586 [ INFO][       Thread-249860][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 09:22:59,589 [DEBUG][       Thread-249860][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 09:22:59,589 [DEBUG][       Thread-249860][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 09:22:59,589 [DEBUG][       Thread-249860][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 09:22:59,589 [DEBUG][       Thread-249860][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:22:59,589 [DEBUG][       Thread-249860][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:22:59,589 [DEBUG][       Thread-249860][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:22:59,589 [DEBUG][       Thread-249860][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:22:59,589 [DEBUG][       Thread-249860][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 09:22:59,589 [DEBUG][       Thread-249860][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 09:22:59,589 [DEBUG][       Thread-249860][   transport.py][1871] : client lang: <none>
2025-06-13 09:22:59,589 [DEBUG][       Thread-249860][   transport.py][1871] : server lang: <none>
2025-06-13 09:22:59,589 [DEBUG][       Thread-249860][   transport.py][1871] : kex follows: False
2025-06-13 09:22:59,589 [DEBUG][       Thread-249860][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 09:22:59,590 [DEBUG][       Thread-249860][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 09:22:59,590 [DEBUG][       Thread-249860][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 09:22:59,590 [DEBUG][       Thread-249860][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 09:22:59,590 [DEBUG][       Thread-249860][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 09:22:59,590 [DEBUG][       Thread-249860][   transport.py][1871] : Compression: none
2025-06-13 09:22:59,590 [DEBUG][       Thread-249860][   transport.py][1871] : === End of kex handshake ===
2025-06-13 09:22:59,605 [DEBUG][       Thread-249860][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 09:22:59,605 [DEBUG][       Thread-249860][   transport.py][1871] : Switch to new keys ...
2025-06-13 09:22:59,606 [DEBUG][       Thread-249860][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 09:22:59,606 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 09:22:59,607 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 09:22:59,608 [DEBUG][       Thread-249860][   transport.py][1871] : userauth is OK
2025-06-13 09:22:59,621 [ INFO][       Thread-249860][   transport.py][1871] : Authentication (password) successful!
2025-06-13 09:22:59,621 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 09:23:00,255 [DEBUG][       Thread-249860][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 09:23:00,255 [DEBUG][       Thread-249860][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 09:23:00,297 [DEBUG][       Thread-249860][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 09:23:00,297 [DEBUG][       Thread-249860][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 09:23:00,300 [DEBUG][       Thread-249860][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 09:23:00,313 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 09:23:00,313 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 09:23:00,315 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 09:23:00,317 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 09:23:00,322 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 09:23:00,323 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 09:23:00,324 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 09:23:00,324 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 09:23:00,324 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.307233 -999.00   +7.60  23.77     57   -0.20 1 1 1 1 1   887    0 8.39 26.51 ----- 23.8 23.8 41.8 26.9 11.1 -27.8 9.9 -28.6 8.7 -27.7 9.8 -26.3
2025-06-13 09:23:00,324 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 09:23:00,324 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 09:23:00,324 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.307233
2025-06-13 09:23:00,325 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 09:23:00,325 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 09:23:00,325 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 09:23:00,326 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 09:23:00,326 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 09:23:00,326 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T09:22:31', tmtdew=9.16, humidity=52.11, cloud=0.0, wind=21.77, temperature=7.66, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T07:22:24.931', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 09:23:00,327 [DEBUG][       Thread-249860][   transport.py][1871] : EOF in transport thread
2025-06-13 09:23:00,409 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 09:23:00,419 [DEBUG][       Thread-249863][   transport.py][1871] : starting thread (client mode): 0x863c8880
2025-06-13 09:23:00,419 [DEBUG][       Thread-249863][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 09:23:00,437 [DEBUG][       Thread-249863][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 09:23:00,437 [ INFO][       Thread-249863][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 09:23:00,445 [DEBUG][       Thread-249863][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 09:23:00,445 [DEBUG][       Thread-249863][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 09:23:00,446 [DEBUG][       Thread-249863][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 09:23:00,446 [DEBUG][       Thread-249863][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:23:00,446 [DEBUG][       Thread-249863][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:23:00,446 [DEBUG][       Thread-249863][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:23:00,446 [DEBUG][       Thread-249863][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:23:00,446 [DEBUG][       Thread-249863][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 09:23:00,446 [DEBUG][       Thread-249863][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 09:23:00,446 [DEBUG][       Thread-249863][   transport.py][1871] : client lang: <none>
2025-06-13 09:23:00,446 [DEBUG][       Thread-249863][   transport.py][1871] : server lang: <none>
2025-06-13 09:23:00,446 [DEBUG][       Thread-249863][   transport.py][1871] : kex follows: False
2025-06-13 09:23:00,446 [DEBUG][       Thread-249863][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 09:23:00,446 [DEBUG][       Thread-249863][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 09:23:00,446 [DEBUG][       Thread-249863][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 09:23:00,446 [DEBUG][       Thread-249863][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 09:23:00,446 [DEBUG][       Thread-249863][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 09:23:00,446 [DEBUG][       Thread-249863][   transport.py][1871] : Compression: none
2025-06-13 09:23:00,446 [DEBUG][       Thread-249863][   transport.py][1871] : === End of kex handshake ===
2025-06-13 09:23:00,503 [DEBUG][       Thread-249863][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 09:23:00,503 [DEBUG][       Thread-249863][   transport.py][1871] : Switch to new keys ...
2025-06-13 09:23:00,504 [DEBUG][       Thread-249863][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 09:23:00,504 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 09:23:00,505 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 09:23:00,559 [DEBUG][       Thread-249863][   transport.py][1871] : userauth is OK
2025-06-13 09:23:00,559 [DEBUG][       Thread-249863][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 09:23:00,559 [DEBUG][       Thread-249863][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 09:23:00,559 [DEBUG][       Thread-249863][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 09:23:00,559 [DEBUG][       Thread-249863][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 09:23:00,578 [ INFO][       Thread-249863][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 09:23:00,578 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 09:23:00,579 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 09:23:01,329 [DEBUG][Thread-249865 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:23:01,573 [DEBUG][       Thread-249863][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 09:23:01,573 [DEBUG][       Thread-249863][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 09:23:01,625 [DEBUG][       Thread-249863][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 09:23:01,625 [DEBUG][       Thread-249863][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 09:23:01,634 [DEBUG][       Thread-249863][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 09:23:01,644 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 09:23:01,644 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 09:23:01,654 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 09:23:01,662 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 09:23:01,663 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 09:23:01,663 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 09:23:01,671 [DEBUG][       Thread-249863][   transport.py][1871] : EOF in transport thread
2025-06-13 09:23:02,407 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:23:02,408 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:23:03,014 [DEBUG][Thread-249866 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:23:07,256 [DEBUG][Thread-249867 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:23:11,668 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 09:23:11,668 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 09:23:11,668 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 09:23:11,671 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 09:23:12,134 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 9, 23, 3), 9.14, 52.19, 0.0, 22.81, 7.68, 0, 0, 0, 2, 0, 0),)
2025-06-13 09:23:12,134 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 09:23:03
2025-06-13 09:23:12,216 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 09:23:12,221 [DEBUG][       Thread-249868][   transport.py][1871] : starting thread (client mode): 0x86368280
2025-06-13 09:23:12,221 [DEBUG][       Thread-249868][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 09:23:12,243 [DEBUG][       Thread-249868][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 09:23:12,243 [ INFO][       Thread-249868][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 09:23:12,246 [DEBUG][       Thread-249868][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 09:23:12,246 [DEBUG][       Thread-249868][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 09:23:12,246 [DEBUG][       Thread-249868][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 09:23:12,246 [DEBUG][       Thread-249868][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:23:12,246 [DEBUG][       Thread-249868][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:23:12,246 [DEBUG][       Thread-249868][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:23:12,247 [DEBUG][       Thread-249868][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:23:12,247 [DEBUG][       Thread-249868][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 09:23:12,247 [DEBUG][       Thread-249868][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 09:23:12,247 [DEBUG][       Thread-249868][   transport.py][1871] : client lang: <none>
2025-06-13 09:23:12,247 [DEBUG][       Thread-249868][   transport.py][1871] : server lang: <none>
2025-06-13 09:23:12,247 [DEBUG][       Thread-249868][   transport.py][1871] : kex follows: False
2025-06-13 09:23:12,247 [DEBUG][       Thread-249868][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 09:23:12,247 [DEBUG][       Thread-249868][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 09:23:12,247 [DEBUG][       Thread-249868][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 09:23:12,247 [DEBUG][       Thread-249868][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 09:23:12,247 [DEBUG][       Thread-249868][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 09:23:12,247 [DEBUG][       Thread-249868][   transport.py][1871] : Compression: none
2025-06-13 09:23:12,247 [DEBUG][       Thread-249868][   transport.py][1871] : === End of kex handshake ===
2025-06-13 09:23:12,264 [DEBUG][       Thread-249868][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 09:23:12,265 [DEBUG][       Thread-249868][   transport.py][1871] : Switch to new keys ...
2025-06-13 09:23:12,274 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 09:23:12,274 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 09:23:12,275 [DEBUG][       Thread-249868][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 09:23:12,275 [DEBUG][       Thread-249868][   transport.py][1871] : userauth is OK
2025-06-13 09:23:12,303 [ INFO][       Thread-249868][   transport.py][1871] : Authentication (password) successful!
2025-06-13 09:23:12,303 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 09:23:12,953 [DEBUG][       Thread-249868][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 09:23:12,953 [DEBUG][       Thread-249868][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 09:23:12,997 [DEBUG][       Thread-249868][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 09:23:12,997 [DEBUG][       Thread-249868][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 09:23:13,000 [DEBUG][       Thread-249868][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 09:23:13,013 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 09:23:13,013 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 09:23:13,015 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 09:23:13,017 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 09:23:13,023 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 09:23:13,025 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 09:23:13,025 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 09:23:13,025 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 09:23:13,026 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.307233 -999.00   +7.60  23.77     57   -0.20 1 1 1 1 1   887    0 8.39 26.51 ----- 23.8 23.8 41.8 26.9 11.1 -27.8 9.9 -28.6 8.7 -27.7 9.8 -26.3
2025-06-13 09:23:13,026 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 09:23:13,026 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 09:23:13,026 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.307233
2025-06-13 09:23:13,026 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 09:23:13,027 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 09:23:13,027 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 09:23:13,027 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 09:23:13,027 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 09:23:13,027 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T09:23:03', tmtdew=9.14, humidity=52.19, cloud=0.0, wind=22.81, temperature=7.68, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T07:22:24.931', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 09:23:13,027 [DEBUG][       Thread-249868][   transport.py][1871] : EOF in transport thread
2025-06-13 09:23:13,112 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 09:23:13,125 [DEBUG][       Thread-249871][   transport.py][1871] : starting thread (client mode): 0x867fe2c0
2025-06-13 09:23:13,125 [DEBUG][       Thread-249871][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 09:23:13,140 [DEBUG][       Thread-249871][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 09:23:13,140 [ INFO][       Thread-249871][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 09:23:13,147 [DEBUG][       Thread-249871][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 09:23:13,148 [DEBUG][       Thread-249871][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 09:23:13,148 [DEBUG][       Thread-249871][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 09:23:13,148 [DEBUG][       Thread-249871][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:23:13,148 [DEBUG][       Thread-249871][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:23:13,148 [DEBUG][       Thread-249871][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:23:13,148 [DEBUG][       Thread-249871][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:23:13,148 [DEBUG][       Thread-249871][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 09:23:13,148 [DEBUG][       Thread-249871][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 09:23:13,148 [DEBUG][       Thread-249871][   transport.py][1871] : client lang: <none>
2025-06-13 09:23:13,148 [DEBUG][       Thread-249871][   transport.py][1871] : server lang: <none>
2025-06-13 09:23:13,148 [DEBUG][       Thread-249871][   transport.py][1871] : kex follows: False
2025-06-13 09:23:13,148 [DEBUG][       Thread-249871][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 09:23:13,148 [DEBUG][       Thread-249871][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 09:23:13,148 [DEBUG][       Thread-249871][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 09:23:13,148 [DEBUG][       Thread-249871][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 09:23:13,148 [DEBUG][       Thread-249871][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 09:23:13,148 [DEBUG][       Thread-249871][   transport.py][1871] : Compression: none
2025-06-13 09:23:13,148 [DEBUG][       Thread-249871][   transport.py][1871] : === End of kex handshake ===
2025-06-13 09:23:13,215 [DEBUG][       Thread-249871][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 09:23:13,216 [DEBUG][       Thread-249871][   transport.py][1871] : Switch to new keys ...
2025-06-13 09:23:13,216 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 09:23:13,217 [DEBUG][       Thread-249871][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 09:23:13,217 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 09:23:13,275 [DEBUG][       Thread-249871][   transport.py][1871] : userauth is OK
2025-06-13 09:23:13,275 [DEBUG][       Thread-249871][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 09:23:13,276 [DEBUG][       Thread-249871][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 09:23:13,276 [DEBUG][       Thread-249871][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 09:23:13,276 [DEBUG][       Thread-249871][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 09:23:13,294 [ INFO][       Thread-249871][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 09:23:13,294 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 09:23:13,295 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 09:23:14,266 [DEBUG][       Thread-249871][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 09:23:14,266 [DEBUG][       Thread-249871][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 09:23:14,315 [DEBUG][       Thread-249871][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 09:23:14,316 [DEBUG][       Thread-249871][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 09:23:14,325 [DEBUG][       Thread-249871][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 09:23:14,333 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 09:23:14,333 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 09:23:14,342 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 09:23:14,351 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 09:23:14,351 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 09:23:14,351 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 09:23:14,359 [DEBUG][       Thread-249871][   transport.py][1871] : EOF in transport thread
2025-06-13 09:23:16,274 [DEBUG][Thread-249873 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:23:17,312 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:23:17,312 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:23:24,361 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 09:23:24,362 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 09:23:24,362 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 09:23:24,362 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 09:23:24,852 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 9, 23, 3), 9.14, 52.19, 0.0, 22.81, 7.68, 0, 0, 0, 2, 0, 0),)
2025-06-13 09:23:24,853 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 09:23:03
2025-06-13 09:23:24,936 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 09:23:24,940 [DEBUG][       Thread-249874][   transport.py][1871] : starting thread (client mode): 0x863eea10
2025-06-13 09:23:24,940 [DEBUG][       Thread-249874][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 09:23:24,961 [DEBUG][       Thread-249874][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 09:23:24,961 [ INFO][       Thread-249874][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 09:23:24,965 [DEBUG][       Thread-249874][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 09:23:24,965 [DEBUG][       Thread-249874][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 09:23:24,965 [DEBUG][       Thread-249874][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 09:23:24,965 [DEBUG][       Thread-249874][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:23:24,965 [DEBUG][       Thread-249874][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:23:24,965 [DEBUG][       Thread-249874][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:23:24,965 [DEBUG][       Thread-249874][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:23:24,965 [DEBUG][       Thread-249874][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 09:23:24,965 [DEBUG][       Thread-249874][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 09:23:24,965 [DEBUG][       Thread-249874][   transport.py][1871] : client lang: <none>
2025-06-13 09:23:24,965 [DEBUG][       Thread-249874][   transport.py][1871] : server lang: <none>
2025-06-13 09:23:24,965 [DEBUG][       Thread-249874][   transport.py][1871] : kex follows: False
2025-06-13 09:23:24,965 [DEBUG][       Thread-249874][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 09:23:24,965 [DEBUG][       Thread-249874][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 09:23:24,965 [DEBUG][       Thread-249874][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 09:23:24,965 [DEBUG][       Thread-249874][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 09:23:24,965 [DEBUG][       Thread-249874][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 09:23:24,965 [DEBUG][       Thread-249874][   transport.py][1871] : Compression: none
2025-06-13 09:23:24,965 [DEBUG][       Thread-249874][   transport.py][1871] : === End of kex handshake ===
2025-06-13 09:23:24,982 [DEBUG][       Thread-249874][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 09:23:24,982 [DEBUG][       Thread-249874][   transport.py][1871] : Switch to new keys ...
2025-06-13 09:23:24,982 [DEBUG][       Thread-249874][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 09:23:24,982 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 09:23:24,982 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 09:23:24,983 [DEBUG][       Thread-249874][   transport.py][1871] : userauth is OK
2025-06-13 09:23:25,007 [ INFO][       Thread-249874][   transport.py][1871] : Authentication (password) successful!
2025-06-13 09:23:25,007 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 09:23:25,303 [DEBUG][Thread-249876 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:23:25,650 [DEBUG][       Thread-249874][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 09:23:25,650 [DEBUG][       Thread-249874][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 09:23:25,692 [DEBUG][       Thread-249874][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 09:23:25,692 [DEBUG][       Thread-249874][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 09:23:25,695 [DEBUG][       Thread-249874][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 09:23:25,707 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 09:23:25,707 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 09:23:25,708 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 09:23:25,709 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 09:23:25,712 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 09:23:25,713 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 09:23:25,713 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 09:23:25,714 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 09:23:25,714 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.307580 -999.00   +7.60  23.31     57   -0.20 1 1 1 1 1   887    0 8.29 24.17 ----- 23.3 23.3 33.6 27.8 11.1 -27.7 10.0 -28.5 8.7 -27.8 9.9 -26.0
2025-06-13 09:23:25,714 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 09:23:25,714 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 09:23:25,714 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.307580
2025-06-13 09:23:25,714 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 09:23:25,714 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 09:23:25,714 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 09:23:25,714 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 09:23:25,714 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 09:23:25,714 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T09:23:03', tmtdew=9.14, humidity=52.19, cloud=0.0, wind=22.81, temperature=7.68, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T07:22:54.912', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 09:23:25,715 [DEBUG][       Thread-249874][   transport.py][1871] : EOF in transport thread
2025-06-13 09:23:25,786 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 09:23:25,795 [DEBUG][       Thread-249878][   transport.py][1871] : starting thread (client mode): 0x863c9750
2025-06-13 09:23:25,795 [DEBUG][       Thread-249878][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 09:23:25,810 [DEBUG][       Thread-249878][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 09:23:25,810 [ INFO][       Thread-249878][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 09:23:25,817 [DEBUG][       Thread-249878][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 09:23:25,818 [DEBUG][       Thread-249878][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 09:23:25,818 [DEBUG][       Thread-249878][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 09:23:25,818 [DEBUG][       Thread-249878][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:23:25,818 [DEBUG][       Thread-249878][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:23:25,818 [DEBUG][       Thread-249878][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:23:25,818 [DEBUG][       Thread-249878][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:23:25,818 [DEBUG][       Thread-249878][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 09:23:25,818 [DEBUG][       Thread-249878][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 09:23:25,818 [DEBUG][       Thread-249878][   transport.py][1871] : client lang: <none>
2025-06-13 09:23:25,818 [DEBUG][       Thread-249878][   transport.py][1871] : server lang: <none>
2025-06-13 09:23:25,818 [DEBUG][       Thread-249878][   transport.py][1871] : kex follows: False
2025-06-13 09:23:25,818 [DEBUG][       Thread-249878][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 09:23:25,818 [DEBUG][       Thread-249878][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 09:23:25,818 [DEBUG][       Thread-249878][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 09:23:25,818 [DEBUG][       Thread-249878][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 09:23:25,818 [DEBUG][       Thread-249878][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 09:23:25,818 [DEBUG][       Thread-249878][   transport.py][1871] : Compression: none
2025-06-13 09:23:25,818 [DEBUG][       Thread-249878][   transport.py][1871] : === End of kex handshake ===
2025-06-13 09:23:25,876 [DEBUG][       Thread-249878][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 09:23:25,876 [DEBUG][       Thread-249878][   transport.py][1871] : Switch to new keys ...
2025-06-13 09:23:25,876 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 09:23:25,876 [DEBUG][       Thread-249878][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 09:23:25,876 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 09:23:25,939 [DEBUG][       Thread-249878][   transport.py][1871] : userauth is OK
2025-06-13 09:23:25,939 [DEBUG][       Thread-249878][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 09:23:25,939 [DEBUG][       Thread-249878][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 09:23:25,939 [DEBUG][       Thread-249878][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 09:23:25,939 [DEBUG][       Thread-249878][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 09:23:25,953 [ INFO][       Thread-249878][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 09:23:25,953 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 09:23:25,953 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 09:23:26,973 [DEBUG][       Thread-249878][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 09:23:26,973 [DEBUG][       Thread-249878][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 09:23:27,027 [DEBUG][       Thread-249878][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 09:23:27,027 [DEBUG][       Thread-249878][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 09:23:27,036 [DEBUG][       Thread-249878][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 09:23:27,044 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 09:23:27,044 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 09:23:27,060 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 09:23:27,068 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 09:23:27,068 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 09:23:27,068 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 09:23:27,076 [DEBUG][       Thread-249878][   transport.py][1871] : EOF in transport thread
2025-06-13 09:23:34,319 [DEBUG][Thread-249880 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:23:37,079 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 09:23:37,079 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 09:23:37,079 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 09:23:37,082 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 09:23:37,545 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 9, 23, 34), 9.12, 52.6, 0.0, 20.91, 7.71, 0, 0, 0, 2, 0, 0),)
2025-06-13 09:23:37,545 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 09:23:34
2025-06-13 09:23:37,627 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 09:23:37,633 [DEBUG][       Thread-249881][   transport.py][1871] : starting thread (client mode): 0x867fee30
2025-06-13 09:23:37,633 [DEBUG][       Thread-249881][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 09:23:37,653 [DEBUG][       Thread-249881][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 09:23:37,653 [ INFO][       Thread-249881][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 09:23:37,656 [DEBUG][       Thread-249881][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 09:23:37,656 [DEBUG][       Thread-249881][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 09:23:37,656 [DEBUG][       Thread-249881][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 09:23:37,657 [DEBUG][       Thread-249881][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:23:37,657 [DEBUG][       Thread-249881][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:23:37,657 [DEBUG][       Thread-249881][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:23:37,657 [DEBUG][       Thread-249881][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:23:37,657 [DEBUG][       Thread-249881][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 09:23:37,657 [DEBUG][       Thread-249881][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 09:23:37,657 [DEBUG][       Thread-249881][   transport.py][1871] : client lang: <none>
2025-06-13 09:23:37,657 [DEBUG][       Thread-249881][   transport.py][1871] : server lang: <none>
2025-06-13 09:23:37,657 [DEBUG][       Thread-249881][   transport.py][1871] : kex follows: False
2025-06-13 09:23:37,657 [DEBUG][       Thread-249881][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 09:23:37,657 [DEBUG][       Thread-249881][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 09:23:37,657 [DEBUG][       Thread-249881][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 09:23:37,657 [DEBUG][       Thread-249881][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 09:23:37,657 [DEBUG][       Thread-249881][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 09:23:37,657 [DEBUG][       Thread-249881][   transport.py][1871] : Compression: none
2025-06-13 09:23:37,657 [DEBUG][       Thread-249881][   transport.py][1871] : === End of kex handshake ===
2025-06-13 09:23:37,674 [DEBUG][       Thread-249881][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 09:23:37,675 [DEBUG][       Thread-249881][   transport.py][1871] : Switch to new keys ...
2025-06-13 09:23:37,675 [DEBUG][       Thread-249881][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 09:23:37,675 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 09:23:37,676 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 09:23:37,677 [DEBUG][       Thread-249881][   transport.py][1871] : userauth is OK
2025-06-13 09:23:37,701 [ INFO][       Thread-249881][   transport.py][1871] : Authentication (password) successful!
2025-06-13 09:23:37,702 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 09:23:38,340 [DEBUG][       Thread-249881][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 09:23:38,340 [DEBUG][       Thread-249881][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 09:23:38,381 [DEBUG][       Thread-249881][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 09:23:38,381 [DEBUG][       Thread-249881][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 09:23:38,384 [DEBUG][       Thread-249881][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 09:23:38,397 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 09:23:38,397 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 09:23:38,399 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 09:23:38,401 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 09:23:38,406 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 09:23:38,407 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 09:23:38,407 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 09:23:38,408 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 09:23:38,408 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.307580 -999.00   +7.60  23.31     57   -0.20 1 1 1 1 1   887    0 8.29 24.17 ----- 23.3 23.3 33.6 27.8 11.1 -27.7 10.0 -28.5 8.7 -27.8 9.9 -26.0
2025-06-13 09:23:38,408 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 09:23:38,408 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 09:23:38,408 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.307580
2025-06-13 09:23:38,409 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 09:23:38,409 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 09:23:38,409 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 09:23:38,409 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 09:23:38,409 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 09:23:38,409 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T09:23:34', tmtdew=9.12, humidity=52.6, cloud=0.0, wind=20.91, temperature=7.71, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T07:22:54.912', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 09:23:38,410 [DEBUG][       Thread-249881][   transport.py][1871] : EOF in transport thread
2025-06-13 09:23:38,491 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 09:23:38,505 [DEBUG][       Thread-249884][   transport.py][1871] : starting thread (client mode): 0x863efbe0
2025-06-13 09:23:38,505 [DEBUG][       Thread-249884][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 09:23:38,520 [DEBUG][       Thread-249884][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 09:23:38,520 [ INFO][       Thread-249884][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 09:23:38,528 [DEBUG][       Thread-249884][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 09:23:38,528 [DEBUG][       Thread-249884][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 09:23:38,528 [DEBUG][       Thread-249884][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 09:23:38,528 [DEBUG][       Thread-249884][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:23:38,528 [DEBUG][       Thread-249884][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:23:38,528 [DEBUG][       Thread-249884][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:23:38,528 [DEBUG][       Thread-249884][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:23:38,528 [DEBUG][       Thread-249884][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 09:23:38,528 [DEBUG][       Thread-249884][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 09:23:38,528 [DEBUG][       Thread-249884][   transport.py][1871] : client lang: <none>
2025-06-13 09:23:38,528 [DEBUG][       Thread-249884][   transport.py][1871] : server lang: <none>
2025-06-13 09:23:38,529 [DEBUG][       Thread-249884][   transport.py][1871] : kex follows: False
2025-06-13 09:23:38,529 [DEBUG][       Thread-249884][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 09:23:38,529 [DEBUG][       Thread-249884][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 09:23:38,529 [DEBUG][       Thread-249884][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 09:23:38,529 [DEBUG][       Thread-249884][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 09:23:38,529 [DEBUG][       Thread-249884][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 09:23:38,529 [DEBUG][       Thread-249884][   transport.py][1871] : Compression: none
2025-06-13 09:23:38,529 [DEBUG][       Thread-249884][   transport.py][1871] : === End of kex handshake ===
2025-06-13 09:23:38,587 [DEBUG][       Thread-249884][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 09:23:38,588 [DEBUG][       Thread-249884][   transport.py][1871] : Switch to new keys ...
2025-06-13 09:23:38,588 [DEBUG][       Thread-249884][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 09:23:38,588 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 09:23:38,589 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 09:23:38,656 [DEBUG][       Thread-249884][   transport.py][1871] : userauth is OK
2025-06-13 09:23:38,656 [DEBUG][       Thread-249884][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 09:23:38,656 [DEBUG][       Thread-249884][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 09:23:38,656 [DEBUG][       Thread-249884][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 09:23:38,656 [DEBUG][       Thread-249884][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 09:23:38,677 [ INFO][       Thread-249884][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 09:23:38,677 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 09:23:38,677 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 09:23:39,682 [DEBUG][       Thread-249884][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 09:23:39,682 [DEBUG][       Thread-249884][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 09:23:39,735 [DEBUG][       Thread-249884][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 09:23:39,735 [DEBUG][       Thread-249884][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 09:23:39,747 [DEBUG][       Thread-249884][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 09:23:39,759 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 09:23:39,759 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 09:23:39,771 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 09:23:39,780 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 09:23:39,780 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 09:23:39,781 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 09:23:39,789 [DEBUG][       Thread-249884][   transport.py][1871] : EOF in transport thread
2025-06-13 09:23:43,340 [DEBUG][Thread-249886 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:23:49,787 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 09:23:49,787 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 09:23:49,787 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 09:23:49,789 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 09:23:50,249 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 9, 23, 34), 9.12, 52.6, 0.0, 20.91, 7.71, 0, 0, 0, 2, 0, 0),)
2025-06-13 09:23:50,250 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 09:23:34
2025-06-13 09:23:50,331 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 09:23:50,339 [DEBUG][       Thread-249887][   transport.py][1871] : starting thread (client mode): 0x863caa70
2025-06-13 09:23:50,339 [DEBUG][       Thread-249887][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 09:23:50,358 [DEBUG][       Thread-249887][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 09:23:50,359 [ INFO][       Thread-249887][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 09:23:50,362 [DEBUG][       Thread-249887][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 09:23:50,362 [DEBUG][       Thread-249887][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 09:23:50,362 [DEBUG][       Thread-249887][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 09:23:50,362 [DEBUG][       Thread-249887][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:23:50,362 [DEBUG][       Thread-249887][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:23:50,362 [DEBUG][       Thread-249887][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:23:50,362 [DEBUG][       Thread-249887][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:23:50,362 [DEBUG][       Thread-249887][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 09:23:50,362 [DEBUG][       Thread-249887][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 09:23:50,362 [DEBUG][       Thread-249887][   transport.py][1871] : client lang: <none>
2025-06-13 09:23:50,362 [DEBUG][       Thread-249887][   transport.py][1871] : server lang: <none>
2025-06-13 09:23:50,362 [DEBUG][       Thread-249887][   transport.py][1871] : kex follows: False
2025-06-13 09:23:50,362 [DEBUG][       Thread-249887][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 09:23:50,362 [DEBUG][       Thread-249887][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 09:23:50,362 [DEBUG][       Thread-249887][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 09:23:50,362 [DEBUG][       Thread-249887][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 09:23:50,362 [DEBUG][       Thread-249887][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 09:23:50,362 [DEBUG][       Thread-249887][   transport.py][1871] : Compression: none
2025-06-13 09:23:50,362 [DEBUG][       Thread-249887][   transport.py][1871] : === End of kex handshake ===
2025-06-13 09:23:50,378 [DEBUG][       Thread-249887][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 09:23:50,379 [DEBUG][       Thread-249887][   transport.py][1871] : Switch to new keys ...
2025-06-13 09:23:50,379 [DEBUG][       Thread-249887][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 09:23:50,380 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 09:23:50,380 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 09:23:50,381 [DEBUG][       Thread-249887][   transport.py][1871] : userauth is OK
2025-06-13 09:23:50,405 [ INFO][       Thread-249887][   transport.py][1871] : Authentication (password) successful!
2025-06-13 09:23:50,406 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 09:23:50,994 [DEBUG][       Thread-249887][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 09:23:50,994 [DEBUG][       Thread-249887][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 09:23:51,037 [DEBUG][       Thread-249887][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 09:23:51,037 [DEBUG][       Thread-249887][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 09:23:51,040 [DEBUG][       Thread-249887][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 09:23:51,051 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 09:23:51,051 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 09:23:51,053 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 09:23:51,055 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 09:23:51,060 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 09:23:51,061 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 09:23:51,062 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 09:23:51,062 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 09:23:51,062 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.307580 -999.00   +7.60  23.31     57   -0.20 1 1 1 1 1   887    0 8.29 24.17 ----- 23.3 23.3 33.6 27.8 11.1 -27.7 10.0 -28.5 8.7 -27.8 9.9 -26.0
2025-06-13 09:23:51,062 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 09:23:51,062 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 09:23:51,062 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.307580
2025-06-13 09:23:51,063 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 09:23:51,063 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 09:23:51,063 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 09:23:51,063 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 09:23:51,063 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 09:23:51,064 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T09:23:34', tmtdew=9.12, humidity=52.6, cloud=0.0, wind=20.91, temperature=7.71, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T07:22:54.912', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 09:23:51,064 [DEBUG][       Thread-249887][   transport.py][1871] : EOF in transport thread
2025-06-13 09:23:51,147 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 09:23:51,158 [DEBUG][       Thread-249890][   transport.py][1871] : starting thread (client mode): 0x867b6470
2025-06-13 09:23:51,158 [DEBUG][       Thread-249890][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 09:23:51,173 [DEBUG][       Thread-249890][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 09:23:51,173 [ INFO][       Thread-249890][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 09:23:51,181 [DEBUG][       Thread-249890][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 09:23:51,181 [DEBUG][       Thread-249890][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 09:23:51,181 [DEBUG][       Thread-249890][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 09:23:51,181 [DEBUG][       Thread-249890][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:23:51,181 [DEBUG][       Thread-249890][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:23:51,181 [DEBUG][       Thread-249890][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:23:51,181 [DEBUG][       Thread-249890][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:23:51,181 [DEBUG][       Thread-249890][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 09:23:51,181 [DEBUG][       Thread-249890][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 09:23:51,181 [DEBUG][       Thread-249890][   transport.py][1871] : client lang: <none>
2025-06-13 09:23:51,181 [DEBUG][       Thread-249890][   transport.py][1871] : server lang: <none>
2025-06-13 09:23:51,181 [DEBUG][       Thread-249890][   transport.py][1871] : kex follows: False
2025-06-13 09:23:51,181 [DEBUG][       Thread-249890][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 09:23:51,181 [DEBUG][       Thread-249890][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 09:23:51,181 [DEBUG][       Thread-249890][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 09:23:51,181 [DEBUG][       Thread-249890][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 09:23:51,181 [DEBUG][       Thread-249890][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 09:23:51,181 [DEBUG][       Thread-249890][   transport.py][1871] : Compression: none
2025-06-13 09:23:51,182 [DEBUG][       Thread-249890][   transport.py][1871] : === End of kex handshake ===
2025-06-13 09:23:51,238 [DEBUG][       Thread-249890][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 09:23:51,239 [DEBUG][       Thread-249890][   transport.py][1871] : Switch to new keys ...
2025-06-13 09:23:51,239 [DEBUG][       Thread-249890][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 09:23:51,239 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 09:23:51,240 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 09:23:51,309 [DEBUG][       Thread-249890][   transport.py][1871] : userauth is OK
2025-06-13 09:23:51,309 [DEBUG][       Thread-249890][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 09:23:51,309 [DEBUG][       Thread-249890][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 09:23:51,309 [DEBUG][       Thread-249890][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 09:23:51,309 [DEBUG][       Thread-249890][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 09:23:51,338 [ INFO][       Thread-249890][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 09:23:51,338 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 09:23:51,339 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 09:23:52,362 [DEBUG][       Thread-249890][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 09:23:52,362 [DEBUG][       Thread-249890][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 09:23:52,370 [DEBUG][Thread-249892 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:23:52,411 [DEBUG][       Thread-249890][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 09:23:52,412 [DEBUG][       Thread-249890][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 09:23:52,421 [DEBUG][       Thread-249890][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 09:23:52,434 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 09:23:52,435 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 09:23:52,443 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 09:23:52,452 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 09:23:52,452 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 09:23:52,453 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 09:23:52,460 [DEBUG][       Thread-249890][   transport.py][1871] : EOF in transport thread
2025-06-13 09:24:01,388 [DEBUG][Thread-249893 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:24:02,463 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 09:24:02,463 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 09:24:02,463 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 09:24:02,464 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 09:24:02,488 [DEBUG][Thread-249894 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:24:02,948 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 9, 23, 34), 9.12, 52.6, 0.0, 20.91, 7.71, 0, 0, 0, 2, 0, 0),)
2025-06-13 09:24:02,948 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 09:23:34
2025-06-13 09:24:03,032 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 09:24:03,036 [DEBUG][       Thread-249895][   transport.py][1871] : starting thread (client mode): 0x8636be80
2025-06-13 09:24:03,036 [DEBUG][       Thread-249895][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 09:24:03,042 [DEBUG][Thread-249896 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:24:03,057 [DEBUG][       Thread-249895][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 09:24:03,057 [ INFO][       Thread-249895][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 09:24:03,060 [DEBUG][       Thread-249895][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 09:24:03,060 [DEBUG][       Thread-249895][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 09:24:03,060 [DEBUG][       Thread-249895][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 09:24:03,060 [DEBUG][       Thread-249895][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:24:03,060 [DEBUG][       Thread-249895][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:24:03,060 [DEBUG][       Thread-249895][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:24:03,060 [DEBUG][       Thread-249895][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:24:03,060 [DEBUG][       Thread-249895][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 09:24:03,060 [DEBUG][       Thread-249895][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 09:24:03,060 [DEBUG][       Thread-249895][   transport.py][1871] : client lang: <none>
2025-06-13 09:24:03,060 [DEBUG][       Thread-249895][   transport.py][1871] : server lang: <none>
2025-06-13 09:24:03,060 [DEBUG][       Thread-249895][   transport.py][1871] : kex follows: False
2025-06-13 09:24:03,060 [DEBUG][       Thread-249895][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 09:24:03,060 [DEBUG][       Thread-249895][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 09:24:03,060 [DEBUG][       Thread-249895][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 09:24:03,060 [DEBUG][       Thread-249895][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 09:24:03,060 [DEBUG][       Thread-249895][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 09:24:03,060 [DEBUG][       Thread-249895][   transport.py][1871] : Compression: none
2025-06-13 09:24:03,060 [DEBUG][       Thread-249895][   transport.py][1871] : === End of kex handshake ===
2025-06-13 09:24:03,074 [DEBUG][       Thread-249895][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 09:24:03,074 [DEBUG][       Thread-249895][   transport.py][1871] : Switch to new keys ...
2025-06-13 09:24:03,074 [DEBUG][       Thread-249895][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 09:24:03,074 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 09:24:03,074 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 09:24:03,075 [DEBUG][       Thread-249895][   transport.py][1871] : userauth is OK
2025-06-13 09:24:03,087 [ INFO][       Thread-249895][   transport.py][1871] : Authentication (password) successful!
2025-06-13 09:24:03,087 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 09:24:03,545 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:24:03,545 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:24:03,734 [DEBUG][       Thread-249895][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 09:24:03,734 [DEBUG][       Thread-249895][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 09:24:03,776 [DEBUG][       Thread-249895][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 09:24:03,777 [DEBUG][       Thread-249895][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 09:24:03,779 [DEBUG][       Thread-249895][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 09:24:03,792 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 09:24:03,792 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 09:24:03,794 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 09:24:03,795 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 09:24:03,798 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 09:24:03,799 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 09:24:03,799 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 09:24:03,800 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 09:24:03,800 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.307927 -999.00   +7.60  24.97     57   -0.30 1 1 1 1 1   887    0 8.34 23.83 ----- 25.0 25.0 52.4 33.9 11.1 -27.7 9.9 -28.4 8.7 -28.0 9.9 -26.2
2025-06-13 09:24:03,800 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 09:24:03,800 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 09:24:03,800 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.307927
2025-06-13 09:24:03,800 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 09:24:03,800 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 09:24:03,800 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 09:24:03,800 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 09:24:03,800 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 09:24:03,800 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T09:23:34', tmtdew=9.12, humidity=52.6, cloud=0.0, wind=20.91, temperature=7.71, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T07:23:24.893', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 09:24:03,801 [DEBUG][       Thread-249895][   transport.py][1871] : EOF in transport thread
2025-06-13 09:24:03,873 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 09:24:03,882 [DEBUG][       Thread-249899][   transport.py][1871] : starting thread (client mode): 0x863ed5d0
2025-06-13 09:24:03,882 [DEBUG][       Thread-249899][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 09:24:03,898 [DEBUG][       Thread-249899][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 09:24:03,898 [ INFO][       Thread-249899][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 09:24:03,906 [DEBUG][       Thread-249899][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 09:24:03,906 [DEBUG][       Thread-249899][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 09:24:03,906 [DEBUG][       Thread-249899][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 09:24:03,906 [DEBUG][       Thread-249899][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:24:03,906 [DEBUG][       Thread-249899][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:24:03,906 [DEBUG][       Thread-249899][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:24:03,906 [DEBUG][       Thread-249899][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:24:03,906 [DEBUG][       Thread-249899][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 09:24:03,906 [DEBUG][       Thread-249899][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 09:24:03,906 [DEBUG][       Thread-249899][   transport.py][1871] : client lang: <none>
2025-06-13 09:24:03,906 [DEBUG][       Thread-249899][   transport.py][1871] : server lang: <none>
2025-06-13 09:24:03,906 [DEBUG][       Thread-249899][   transport.py][1871] : kex follows: False
2025-06-13 09:24:03,906 [DEBUG][       Thread-249899][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 09:24:03,906 [DEBUG][       Thread-249899][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 09:24:03,906 [DEBUG][       Thread-249899][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 09:24:03,906 [DEBUG][       Thread-249899][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 09:24:03,906 [DEBUG][       Thread-249899][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 09:24:03,906 [DEBUG][       Thread-249899][   transport.py][1871] : Compression: none
2025-06-13 09:24:03,906 [DEBUG][       Thread-249899][   transport.py][1871] : === End of kex handshake ===
2025-06-13 09:24:03,962 [DEBUG][       Thread-249899][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 09:24:03,962 [DEBUG][       Thread-249899][   transport.py][1871] : Switch to new keys ...
2025-06-13 09:24:03,962 [DEBUG][       Thread-249899][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 09:24:03,962 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 09:24:03,962 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 09:24:04,026 [DEBUG][       Thread-249899][   transport.py][1871] : userauth is OK
2025-06-13 09:24:04,026 [DEBUG][       Thread-249899][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 09:24:04,026 [DEBUG][       Thread-249899][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 09:24:04,026 [DEBUG][       Thread-249899][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 09:24:04,026 [DEBUG][       Thread-249899][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 09:24:04,041 [ INFO][       Thread-249899][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 09:24:04,041 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 09:24:04,042 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 09:24:05,080 [DEBUG][       Thread-249899][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 09:24:05,080 [DEBUG][       Thread-249899][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 09:24:05,131 [DEBUG][       Thread-249899][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 09:24:05,132 [DEBUG][       Thread-249899][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 09:24:05,140 [DEBUG][       Thread-249899][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 09:24:05,149 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 09:24:05,149 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 09:24:05,158 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 09:24:05,168 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 09:24:05,168 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 09:24:05,168 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 09:24:05,176 [DEBUG][       Thread-249899][   transport.py][1871] : EOF in transport thread
2025-06-13 09:24:10,405 [DEBUG][Thread-249901 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:24:15,179 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 09:24:15,179 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 09:24:15,179 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 09:24:15,182 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 09:24:15,639 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 9, 24, 6), 9.14, 52.55, 0.0, 20.43, 7.76, 0, 0, 0, 2, 0, 0),)
2025-06-13 09:24:15,639 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 09:24:06
2025-06-13 09:24:15,721 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 09:24:15,727 [DEBUG][       Thread-249902][   transport.py][1871] : starting thread (client mode): 0x867b7cd0
2025-06-13 09:24:15,727 [DEBUG][       Thread-249902][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 09:24:15,747 [DEBUG][       Thread-249902][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 09:24:15,747 [ INFO][       Thread-249902][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 09:24:15,749 [DEBUG][       Thread-249902][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 09:24:15,749 [DEBUG][       Thread-249902][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 09:24:15,749 [DEBUG][       Thread-249902][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 09:24:15,749 [DEBUG][       Thread-249902][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:24:15,749 [DEBUG][       Thread-249902][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:24:15,749 [DEBUG][       Thread-249902][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:24:15,749 [DEBUG][       Thread-249902][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:24:15,749 [DEBUG][       Thread-249902][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 09:24:15,749 [DEBUG][       Thread-249902][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 09:24:15,749 [DEBUG][       Thread-249902][   transport.py][1871] : client lang: <none>
2025-06-13 09:24:15,749 [DEBUG][       Thread-249902][   transport.py][1871] : server lang: <none>
2025-06-13 09:24:15,749 [DEBUG][       Thread-249902][   transport.py][1871] : kex follows: False
2025-06-13 09:24:15,749 [DEBUG][       Thread-249902][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 09:24:15,749 [DEBUG][       Thread-249902][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 09:24:15,749 [DEBUG][       Thread-249902][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 09:24:15,749 [DEBUG][       Thread-249902][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 09:24:15,749 [DEBUG][       Thread-249902][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 09:24:15,749 [DEBUG][       Thread-249902][   transport.py][1871] : Compression: none
2025-06-13 09:24:15,749 [DEBUG][       Thread-249902][   transport.py][1871] : === End of kex handshake ===
2025-06-13 09:24:15,758 [DEBUG][       Thread-249902][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 09:24:15,758 [DEBUG][       Thread-249902][   transport.py][1871] : Switch to new keys ...
2025-06-13 09:24:15,759 [DEBUG][       Thread-249902][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 09:24:15,759 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 09:24:15,759 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 09:24:15,760 [DEBUG][       Thread-249902][   transport.py][1871] : userauth is OK
2025-06-13 09:24:15,774 [ INFO][       Thread-249902][   transport.py][1871] : Authentication (password) successful!
2025-06-13 09:24:15,774 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 09:24:16,385 [DEBUG][       Thread-249902][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 09:24:16,385 [DEBUG][       Thread-249902][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 09:24:16,433 [DEBUG][       Thread-249902][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 09:24:16,433 [DEBUG][       Thread-249902][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 09:24:16,435 [DEBUG][       Thread-249902][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 09:24:16,443 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 09:24:16,443 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 09:24:16,445 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 09:24:16,446 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 09:24:16,450 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 09:24:16,452 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 09:24:16,452 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 09:24:16,453 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 09:24:16,453 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.307927 -999.00   +7.60  24.97     57   -0.30 1 1 1 1 1   887    0 8.34 23.83 ----- 25.0 25.0 52.4 33.9 11.1 -27.7 9.9 -28.4 8.7 -28.0 9.9 -26.2
2025-06-13 09:24:16,453 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 09:24:16,453 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 09:24:16,453 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.307927
2025-06-13 09:24:16,454 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 09:24:16,454 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 09:24:16,454 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 09:24:16,454 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 09:24:16,454 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 09:24:16,454 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T09:24:06', tmtdew=9.14, humidity=52.55, cloud=0.0, wind=20.43, temperature=7.76, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T07:23:24.893', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 09:24:16,455 [DEBUG][       Thread-249902][   transport.py][1871] : EOF in transport thread
2025-06-13 09:24:16,538 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 09:24:16,549 [DEBUG][       Thread-249905][   transport.py][1871] : starting thread (client mode): 0x863a53f0
2025-06-13 09:24:16,550 [DEBUG][       Thread-249905][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 09:24:16,565 [DEBUG][       Thread-249905][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 09:24:16,565 [ INFO][       Thread-249905][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 09:24:16,573 [DEBUG][       Thread-249905][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 09:24:16,573 [DEBUG][       Thread-249905][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 09:24:16,573 [DEBUG][       Thread-249905][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 09:24:16,573 [DEBUG][       Thread-249905][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:24:16,573 [DEBUG][       Thread-249905][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:24:16,573 [DEBUG][       Thread-249905][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:24:16,573 [DEBUG][       Thread-249905][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:24:16,573 [DEBUG][       Thread-249905][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 09:24:16,573 [DEBUG][       Thread-249905][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 09:24:16,573 [DEBUG][       Thread-249905][   transport.py][1871] : client lang: <none>
2025-06-13 09:24:16,573 [DEBUG][       Thread-249905][   transport.py][1871] : server lang: <none>
2025-06-13 09:24:16,573 [DEBUG][       Thread-249905][   transport.py][1871] : kex follows: False
2025-06-13 09:24:16,573 [DEBUG][       Thread-249905][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 09:24:16,573 [DEBUG][       Thread-249905][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 09:24:16,573 [DEBUG][       Thread-249905][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 09:24:16,573 [DEBUG][       Thread-249905][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 09:24:16,573 [DEBUG][       Thread-249905][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 09:24:16,573 [DEBUG][       Thread-249905][   transport.py][1871] : Compression: none
2025-06-13 09:24:16,573 [DEBUG][       Thread-249905][   transport.py][1871] : === End of kex handshake ===
2025-06-13 09:24:16,632 [DEBUG][       Thread-249905][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 09:24:16,632 [DEBUG][       Thread-249905][   transport.py][1871] : Switch to new keys ...
2025-06-13 09:24:16,632 [DEBUG][       Thread-249905][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 09:24:16,633 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 09:24:16,633 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 09:24:16,691 [DEBUG][       Thread-249905][   transport.py][1871] : userauth is OK
2025-06-13 09:24:16,691 [DEBUG][       Thread-249905][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 09:24:16,691 [DEBUG][       Thread-249905][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 09:24:16,691 [DEBUG][       Thread-249905][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 09:24:16,691 [DEBUG][       Thread-249905][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 09:24:16,714 [ INFO][       Thread-249905][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 09:24:16,714 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 09:24:16,714 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 09:24:17,463 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:24:17,463 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:24:17,734 [DEBUG][       Thread-249905][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 09:24:17,734 [DEBUG][       Thread-249905][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 09:24:17,784 [DEBUG][       Thread-249905][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 09:24:17,784 [DEBUG][       Thread-249905][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 09:24:17,793 [DEBUG][       Thread-249905][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 09:24:17,801 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 09:24:17,802 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 09:24:17,815 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 09:24:17,824 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 09:24:17,824 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 09:24:17,825 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 09:24:17,833 [DEBUG][       Thread-249905][   transport.py][1871] : EOF in transport thread
2025-06-13 09:24:19,424 [DEBUG][Thread-249907 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:24:27,828 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 09:24:27,828 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 09:24:27,828 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 09:24:27,831 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 09:24:28,295 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 9, 24, 6), 9.14, 52.55, 0.0, 20.43, 7.76, 0, 0, 0, 2, 0, 0),)
2025-06-13 09:24:28,295 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 09:24:06
2025-06-13 09:24:28,377 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 09:24:28,382 [DEBUG][       Thread-249908][   transport.py][1871] : starting thread (client mode): 0x86368220
2025-06-13 09:24:28,382 [DEBUG][       Thread-249908][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 09:24:28,403 [DEBUG][       Thread-249908][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 09:24:28,403 [ INFO][       Thread-249908][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 09:24:28,405 [DEBUG][       Thread-249908][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 09:24:28,405 [DEBUG][       Thread-249908][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 09:24:28,405 [DEBUG][       Thread-249908][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 09:24:28,405 [DEBUG][       Thread-249908][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:24:28,405 [DEBUG][       Thread-249908][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:24:28,405 [DEBUG][       Thread-249908][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:24:28,405 [DEBUG][       Thread-249908][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:24:28,405 [DEBUG][       Thread-249908][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 09:24:28,405 [DEBUG][       Thread-249908][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 09:24:28,405 [DEBUG][       Thread-249908][   transport.py][1871] : client lang: <none>
2025-06-13 09:24:28,405 [DEBUG][       Thread-249908][   transport.py][1871] : server lang: <none>
2025-06-13 09:24:28,405 [DEBUG][       Thread-249908][   transport.py][1871] : kex follows: False
2025-06-13 09:24:28,405 [DEBUG][       Thread-249908][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 09:24:28,405 [DEBUG][       Thread-249908][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 09:24:28,405 [DEBUG][       Thread-249908][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 09:24:28,405 [DEBUG][       Thread-249908][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 09:24:28,405 [DEBUG][       Thread-249908][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 09:24:28,405 [DEBUG][       Thread-249908][   transport.py][1871] : Compression: none
2025-06-13 09:24:28,405 [DEBUG][       Thread-249908][   transport.py][1871] : === End of kex handshake ===
2025-06-13 09:24:28,416 [DEBUG][       Thread-249908][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 09:24:28,416 [DEBUG][       Thread-249908][   transport.py][1871] : Switch to new keys ...
2025-06-13 09:24:28,417 [DEBUG][       Thread-249908][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 09:24:28,417 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 09:24:28,417 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 09:24:28,418 [DEBUG][       Thread-249908][   transport.py][1871] : userauth is OK
2025-06-13 09:24:28,431 [ INFO][       Thread-249908][   transport.py][1871] : Authentication (password) successful!
2025-06-13 09:24:28,432 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 09:24:28,456 [DEBUG][Thread-249910 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:24:29,092 [DEBUG][       Thread-249908][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 09:24:29,092 [DEBUG][       Thread-249908][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 09:24:29,133 [DEBUG][       Thread-249908][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 09:24:29,133 [DEBUG][       Thread-249908][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 09:24:29,136 [DEBUG][       Thread-249908][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 09:24:29,142 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 09:24:29,143 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 09:24:29,144 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 09:24:29,146 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 09:24:29,150 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 09:24:29,152 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 09:24:29,152 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 09:24:29,153 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 09:24:29,153 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.308274 -999.00   +7.60  27.04     57   -0.30 1 1 1 1 1   887    0 8.23 25.27 ----- 27.0 27.0 30.8 31.3 11.1 -27.8 10.0 -28.7 8.7 -27.7 9.9 -26.2
2025-06-13 09:24:29,153 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 09:24:29,153 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 09:24:29,153 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.308274
2025-06-13 09:24:29,153 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 09:24:29,154 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 09:24:29,154 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 09:24:29,154 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 09:24:29,154 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 09:24:29,154 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T09:24:06', tmtdew=9.14, humidity=52.55, cloud=0.0, wind=20.43, temperature=7.76, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T07:23:54.874', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 09:24:29,154 [DEBUG][       Thread-249908][   transport.py][1871] : EOF in transport thread
2025-06-13 09:24:29,236 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 09:24:29,248 [DEBUG][       Thread-249912][   transport.py][1871] : starting thread (client mode): 0x863c95d0
2025-06-13 09:24:29,248 [DEBUG][       Thread-249912][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 09:24:29,269 [DEBUG][       Thread-249912][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 09:24:29,269 [ INFO][       Thread-249912][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 09:24:29,279 [DEBUG][       Thread-249912][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 09:24:29,279 [DEBUG][       Thread-249912][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 09:24:29,279 [DEBUG][       Thread-249912][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 09:24:29,279 [DEBUG][       Thread-249912][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:24:29,279 [DEBUG][       Thread-249912][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:24:29,279 [DEBUG][       Thread-249912][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:24:29,279 [DEBUG][       Thread-249912][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:24:29,279 [DEBUG][       Thread-249912][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 09:24:29,279 [DEBUG][       Thread-249912][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 09:24:29,279 [DEBUG][       Thread-249912][   transport.py][1871] : client lang: <none>
2025-06-13 09:24:29,279 [DEBUG][       Thread-249912][   transport.py][1871] : server lang: <none>
2025-06-13 09:24:29,279 [DEBUG][       Thread-249912][   transport.py][1871] : kex follows: False
2025-06-13 09:24:29,279 [DEBUG][       Thread-249912][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 09:24:29,279 [DEBUG][       Thread-249912][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 09:24:29,279 [DEBUG][       Thread-249912][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 09:24:29,279 [DEBUG][       Thread-249912][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 09:24:29,279 [DEBUG][       Thread-249912][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 09:24:29,279 [DEBUG][       Thread-249912][   transport.py][1871] : Compression: none
2025-06-13 09:24:29,279 [DEBUG][       Thread-249912][   transport.py][1871] : === End of kex handshake ===
2025-06-13 09:24:29,338 [DEBUG][       Thread-249912][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 09:24:29,338 [DEBUG][       Thread-249912][   transport.py][1871] : Switch to new keys ...
2025-06-13 09:24:29,338 [DEBUG][       Thread-249912][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 09:24:29,338 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 09:24:29,338 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 09:24:29,399 [DEBUG][       Thread-249912][   transport.py][1871] : userauth is OK
2025-06-13 09:24:29,399 [DEBUG][       Thread-249912][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 09:24:29,399 [DEBUG][       Thread-249912][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 09:24:29,399 [DEBUG][       Thread-249912][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 09:24:29,399 [DEBUG][       Thread-249912][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 09:24:29,418 [ INFO][       Thread-249912][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 09:24:29,419 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 09:24:29,419 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 09:24:30,493 [DEBUG][       Thread-249912][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 09:24:30,493 [DEBUG][       Thread-249912][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 09:24:30,547 [DEBUG][       Thread-249912][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 09:24:30,547 [DEBUG][       Thread-249912][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 09:24:30,556 [DEBUG][       Thread-249912][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 09:24:30,564 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 09:24:30,565 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 09:24:30,573 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 09:24:30,582 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 09:24:30,582 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 09:24:30,582 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 09:24:30,590 [DEBUG][       Thread-249912][   transport.py][1871] : EOF in transport thread
2025-06-13 09:24:37,477 [DEBUG][Thread-249914 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:24:40,592 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 09:24:40,592 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 09:24:40,592 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 09:24:40,593 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 09:24:41,051 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 9, 24, 38), 9.13, 52.58, 0.0, 22.06, 7.73, 0, 0, 0, 2, 0, 0),)
2025-06-13 09:24:41,051 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 09:24:38
2025-06-13 09:24:41,139 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 09:24:41,145 [DEBUG][       Thread-249915][   transport.py][1871] : starting thread (client mode): 0x867b54b0
2025-06-13 09:24:41,145 [DEBUG][       Thread-249915][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 09:24:41,166 [DEBUG][       Thread-249915][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 09:24:41,166 [ INFO][       Thread-249915][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 09:24:41,170 [DEBUG][       Thread-249915][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 09:24:41,170 [DEBUG][       Thread-249915][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 09:24:41,170 [DEBUG][       Thread-249915][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 09:24:41,170 [DEBUG][       Thread-249915][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:24:41,170 [DEBUG][       Thread-249915][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:24:41,170 [DEBUG][       Thread-249915][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:24:41,170 [DEBUG][       Thread-249915][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:24:41,170 [DEBUG][       Thread-249915][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 09:24:41,170 [DEBUG][       Thread-249915][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 09:24:41,170 [DEBUG][       Thread-249915][   transport.py][1871] : client lang: <none>
2025-06-13 09:24:41,170 [DEBUG][       Thread-249915][   transport.py][1871] : server lang: <none>
2025-06-13 09:24:41,170 [DEBUG][       Thread-249915][   transport.py][1871] : kex follows: False
2025-06-13 09:24:41,170 [DEBUG][       Thread-249915][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 09:24:41,170 [DEBUG][       Thread-249915][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 09:24:41,170 [DEBUG][       Thread-249915][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 09:24:41,170 [DEBUG][       Thread-249915][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 09:24:41,170 [DEBUG][       Thread-249915][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 09:24:41,170 [DEBUG][       Thread-249915][   transport.py][1871] : Compression: none
2025-06-13 09:24:41,170 [DEBUG][       Thread-249915][   transport.py][1871] : === End of kex handshake ===
2025-06-13 09:24:41,187 [DEBUG][       Thread-249915][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 09:24:41,188 [DEBUG][       Thread-249915][   transport.py][1871] : Switch to new keys ...
2025-06-13 09:24:41,188 [DEBUG][       Thread-249915][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 09:24:41,188 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 09:24:41,188 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 09:24:41,189 [DEBUG][       Thread-249915][   transport.py][1871] : userauth is OK
2025-06-13 09:24:41,202 [ INFO][       Thread-249915][   transport.py][1871] : Authentication (password) successful!
2025-06-13 09:24:41,202 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 09:24:41,840 [DEBUG][       Thread-249915][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 09:24:41,840 [DEBUG][       Thread-249915][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 09:24:41,880 [DEBUG][       Thread-249915][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 09:24:41,880 [DEBUG][       Thread-249915][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 09:24:41,883 [DEBUG][       Thread-249915][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 09:24:41,894 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 09:24:41,894 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 09:24:41,895 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 09:24:41,896 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 09:24:41,899 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 09:24:41,900 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 09:24:41,900 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 09:24:41,900 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 09:24:41,900 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.308274 -999.00   +7.60  27.04     57   -0.30 1 1 1 1 1   887    0 8.23 25.27 ----- 27.0 27.0 30.8 31.3 11.1 -27.8 10.0 -28.7 8.7 -27.7 9.9 -26.2
2025-06-13 09:24:41,900 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 09:24:41,900 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 09:24:41,900 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.308274
2025-06-13 09:24:41,900 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 09:24:41,900 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 09:24:41,900 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 09:24:41,900 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 09:24:41,900 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 09:24:41,900 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T09:24:38', tmtdew=9.13, humidity=52.58, cloud=0.0, wind=22.06, temperature=7.73, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T07:23:54.874', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 09:24:41,900 [DEBUG][       Thread-249915][   transport.py][1871] : EOF in transport thread
2025-06-13 09:24:41,975 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 09:24:41,986 [DEBUG][       Thread-249918][   transport.py][1871] : starting thread (client mode): 0x863a6bf0
2025-06-13 09:24:41,986 [DEBUG][       Thread-249918][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 09:24:42,001 [DEBUG][       Thread-249918][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 09:24:42,001 [ INFO][       Thread-249918][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 09:24:42,018 [DEBUG][       Thread-249918][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 09:24:42,018 [DEBUG][       Thread-249918][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 09:24:42,018 [DEBUG][       Thread-249918][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 09:24:42,018 [DEBUG][       Thread-249918][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:24:42,018 [DEBUG][       Thread-249918][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:24:42,018 [DEBUG][       Thread-249918][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:24:42,018 [DEBUG][       Thread-249918][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:24:42,018 [DEBUG][       Thread-249918][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 09:24:42,018 [DEBUG][       Thread-249918][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 09:24:42,018 [DEBUG][       Thread-249918][   transport.py][1871] : client lang: <none>
2025-06-13 09:24:42,018 [DEBUG][       Thread-249918][   transport.py][1871] : server lang: <none>
2025-06-13 09:24:42,018 [DEBUG][       Thread-249918][   transport.py][1871] : kex follows: False
2025-06-13 09:24:42,018 [DEBUG][       Thread-249918][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 09:24:42,018 [DEBUG][       Thread-249918][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 09:24:42,018 [DEBUG][       Thread-249918][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 09:24:42,018 [DEBUG][       Thread-249918][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 09:24:42,018 [DEBUG][       Thread-249918][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 09:24:42,018 [DEBUG][       Thread-249918][   transport.py][1871] : Compression: none
2025-06-13 09:24:42,018 [DEBUG][       Thread-249918][   transport.py][1871] : === End of kex handshake ===
2025-06-13 09:24:42,076 [DEBUG][       Thread-249918][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 09:24:42,077 [DEBUG][       Thread-249918][   transport.py][1871] : Switch to new keys ...
2025-06-13 09:24:42,077 [DEBUG][       Thread-249918][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 09:24:42,077 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 09:24:42,077 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 09:24:42,134 [DEBUG][       Thread-249918][   transport.py][1871] : userauth is OK
2025-06-13 09:24:42,135 [DEBUG][       Thread-249918][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 09:24:42,135 [DEBUG][       Thread-249918][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 09:24:42,135 [DEBUG][       Thread-249918][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 09:24:42,135 [DEBUG][       Thread-249918][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 09:24:42,154 [ INFO][       Thread-249918][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 09:24:42,155 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 09:24:42,155 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 09:24:43,181 [DEBUG][       Thread-249918][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 09:24:43,181 [DEBUG][       Thread-249918][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 09:24:43,232 [DEBUG][       Thread-249918][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 09:24:43,232 [DEBUG][       Thread-249918][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 09:24:43,246 [DEBUG][       Thread-249918][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 09:24:43,256 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 09:24:43,256 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 09:24:43,264 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 09:24:43,272 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 09:24:43,272 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 09:24:43,272 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 09:24:43,280 [DEBUG][       Thread-249918][   transport.py][1871] : EOF in transport thread
2025-06-13 09:24:46,496 [DEBUG][Thread-249920 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:24:53,282 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 09:24:53,283 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 09:24:53,283 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 09:24:53,285 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 09:24:53,744 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 9, 24, 38), 9.13, 52.58, 0.0, 22.06, 7.73, 0, 0, 0, 2, 0, 0),)
2025-06-13 09:24:53,744 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 09:24:38
2025-06-13 09:24:53,825 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 09:24:53,831 [DEBUG][       Thread-249921][   transport.py][1871] : starting thread (client mode): 0x863a4f10
2025-06-13 09:24:53,832 [DEBUG][       Thread-249921][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 09:24:53,852 [DEBUG][       Thread-249921][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 09:24:53,852 [ INFO][       Thread-249921][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 09:24:53,854 [DEBUG][       Thread-249921][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 09:24:53,855 [DEBUG][       Thread-249921][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 09:24:53,855 [DEBUG][       Thread-249921][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 09:24:53,855 [DEBUG][       Thread-249921][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:24:53,855 [DEBUG][       Thread-249921][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:24:53,855 [DEBUG][       Thread-249921][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:24:53,855 [DEBUG][       Thread-249921][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:24:53,855 [DEBUG][       Thread-249921][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 09:24:53,855 [DEBUG][       Thread-249921][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 09:24:53,855 [DEBUG][       Thread-249921][   transport.py][1871] : client lang: <none>
2025-06-13 09:24:53,855 [DEBUG][       Thread-249921][   transport.py][1871] : server lang: <none>
2025-06-13 09:24:53,855 [DEBUG][       Thread-249921][   transport.py][1871] : kex follows: False
2025-06-13 09:24:53,855 [DEBUG][       Thread-249921][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 09:24:53,855 [DEBUG][       Thread-249921][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 09:24:53,855 [DEBUG][       Thread-249921][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 09:24:53,855 [DEBUG][       Thread-249921][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 09:24:53,855 [DEBUG][       Thread-249921][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 09:24:53,855 [DEBUG][       Thread-249921][   transport.py][1871] : Compression: none
2025-06-13 09:24:53,855 [DEBUG][       Thread-249921][   transport.py][1871] : === End of kex handshake ===
2025-06-13 09:24:53,865 [DEBUG][       Thread-249921][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 09:24:53,866 [DEBUG][       Thread-249921][   transport.py][1871] : Switch to new keys ...
2025-06-13 09:24:53,866 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 09:24:53,866 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 09:24:53,867 [DEBUG][       Thread-249921][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 09:24:53,867 [DEBUG][       Thread-249921][   transport.py][1871] : userauth is OK
2025-06-13 09:24:53,893 [ INFO][       Thread-249921][   transport.py][1871] : Authentication (password) successful!
2025-06-13 09:24:53,893 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 09:24:54,511 [DEBUG][       Thread-249921][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 09:24:54,511 [DEBUG][       Thread-249921][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 09:24:54,553 [DEBUG][       Thread-249921][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 09:24:54,553 [DEBUG][       Thread-249921][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 09:24:54,556 [DEBUG][       Thread-249921][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 09:24:54,569 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 09:24:54,570 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 09:24:54,571 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 09:24:54,573 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 09:24:54,577 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 09:24:54,579 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 09:24:54,579 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 09:24:54,580 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 09:24:54,580 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.308274 -999.00   +7.60  27.04     57   -0.30 1 1 1 1 1   887    0 8.23 25.27 ----- 27.0 27.0 30.8 31.3 11.1 -27.8 10.0 -28.7 8.7 -27.7 9.9 -26.2
2025-06-13 09:24:54,580 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 09:24:54,580 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 09:24:54,580 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.308274
2025-06-13 09:24:54,580 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 09:24:54,581 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 09:24:54,581 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 09:24:54,581 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 09:24:54,581 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 09:24:54,581 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T09:24:38', tmtdew=9.13, humidity=52.58, cloud=0.0, wind=22.06, temperature=7.73, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T07:23:54.874', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 09:24:54,582 [DEBUG][       Thread-249921][   transport.py][1871] : EOF in transport thread
2025-06-13 09:24:54,665 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 09:24:54,675 [DEBUG][       Thread-249924][   transport.py][1871] : starting thread (client mode): 0x863ec9d0
2025-06-13 09:24:54,675 [DEBUG][       Thread-249924][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 09:24:54,690 [DEBUG][       Thread-249924][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 09:24:54,690 [ INFO][       Thread-249924][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 09:24:54,700 [DEBUG][       Thread-249924][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 09:24:54,700 [DEBUG][       Thread-249924][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 09:24:54,701 [DEBUG][       Thread-249924][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 09:24:54,701 [DEBUG][       Thread-249924][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:24:54,701 [DEBUG][       Thread-249924][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:24:54,701 [DEBUG][       Thread-249924][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:24:54,701 [DEBUG][       Thread-249924][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:24:54,701 [DEBUG][       Thread-249924][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 09:24:54,701 [DEBUG][       Thread-249924][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 09:24:54,701 [DEBUG][       Thread-249924][   transport.py][1871] : client lang: <none>
2025-06-13 09:24:54,701 [DEBUG][       Thread-249924][   transport.py][1871] : server lang: <none>
2025-06-13 09:24:54,701 [DEBUG][       Thread-249924][   transport.py][1871] : kex follows: False
2025-06-13 09:24:54,701 [DEBUG][       Thread-249924][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 09:24:54,701 [DEBUG][       Thread-249924][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 09:24:54,701 [DEBUG][       Thread-249924][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 09:24:54,701 [DEBUG][       Thread-249924][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 09:24:54,701 [DEBUG][       Thread-249924][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 09:24:54,701 [DEBUG][       Thread-249924][   transport.py][1871] : Compression: none
2025-06-13 09:24:54,701 [DEBUG][       Thread-249924][   transport.py][1871] : === End of kex handshake ===
2025-06-13 09:24:54,763 [DEBUG][       Thread-249924][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 09:24:54,763 [DEBUG][       Thread-249924][   transport.py][1871] : Switch to new keys ...
2025-06-13 09:24:54,764 [DEBUG][       Thread-249924][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 09:24:54,764 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 09:24:54,765 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 09:24:54,824 [DEBUG][       Thread-249924][   transport.py][1871] : userauth is OK
2025-06-13 09:24:54,824 [DEBUG][       Thread-249924][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 09:24:54,824 [DEBUG][       Thread-249924][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 09:24:54,824 [DEBUG][       Thread-249924][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 09:24:54,824 [DEBUG][       Thread-249924][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 09:24:54,843 [ INFO][       Thread-249924][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 09:24:54,844 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 09:24:54,844 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 09:24:55,529 [DEBUG][Thread-249926 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:24:55,822 [DEBUG][       Thread-249924][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 09:24:55,822 [DEBUG][       Thread-249924][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 09:24:55,872 [DEBUG][       Thread-249924][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 09:24:55,872 [DEBUG][       Thread-249924][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 09:24:55,880 [DEBUG][       Thread-249924][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 09:24:55,901 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 09:24:55,901 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 09:24:55,913 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 09:24:55,921 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 09:24:55,921 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 09:24:55,921 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 09:24:55,929 [DEBUG][       Thread-249924][   transport.py][1871] : EOF in transport thread
2025-06-13 09:25:03,096 [DEBUG][Thread-249927 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:25:03,609 [DEBUG][Thread-249928 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:25:04,550 [DEBUG][Thread-249929 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:25:04,658 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:25:04,660 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:25:05,928 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 09:25:05,928 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 09:25:05,928 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 09:25:05,931 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 09:25:06,380 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 9, 24, 38), 9.13, 52.58, 0.0, 22.06, 7.73, 0, 0, 0, 2, 0, 0),)
2025-06-13 09:25:06,380 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 09:24:38
2025-06-13 09:25:06,461 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 09:25:06,465 [DEBUG][       Thread-249930][   transport.py][1871] : starting thread (client mode): 0x863bc490
2025-06-13 09:25:06,465 [DEBUG][       Thread-249930][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 09:25:06,484 [DEBUG][       Thread-249930][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 09:25:06,484 [ INFO][       Thread-249930][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 09:25:06,488 [DEBUG][       Thread-249930][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 09:25:06,488 [DEBUG][       Thread-249930][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 09:25:06,488 [DEBUG][       Thread-249930][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 09:25:06,488 [DEBUG][       Thread-249930][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:25:06,488 [DEBUG][       Thread-249930][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:25:06,488 [DEBUG][       Thread-249930][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:25:06,488 [DEBUG][       Thread-249930][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:25:06,488 [DEBUG][       Thread-249930][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 09:25:06,488 [DEBUG][       Thread-249930][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 09:25:06,488 [DEBUG][       Thread-249930][   transport.py][1871] : client lang: <none>
2025-06-13 09:25:06,488 [DEBUG][       Thread-249930][   transport.py][1871] : server lang: <none>
2025-06-13 09:25:06,488 [DEBUG][       Thread-249930][   transport.py][1871] : kex follows: False
2025-06-13 09:25:06,488 [DEBUG][       Thread-249930][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 09:25:06,488 [DEBUG][       Thread-249930][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 09:25:06,488 [DEBUG][       Thread-249930][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 09:25:06,488 [DEBUG][       Thread-249930][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 09:25:06,488 [DEBUG][       Thread-249930][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 09:25:06,488 [DEBUG][       Thread-249930][   transport.py][1871] : Compression: none
2025-06-13 09:25:06,488 [DEBUG][       Thread-249930][   transport.py][1871] : === End of kex handshake ===
2025-06-13 09:25:06,496 [DEBUG][       Thread-249930][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 09:25:06,496 [DEBUG][       Thread-249930][   transport.py][1871] : Switch to new keys ...
2025-06-13 09:25:06,497 [DEBUG][       Thread-249930][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 09:25:06,497 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 09:25:06,497 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 09:25:06,498 [DEBUG][       Thread-249930][   transport.py][1871] : userauth is OK
2025-06-13 09:25:06,511 [ INFO][       Thread-249930][   transport.py][1871] : Authentication (password) successful!
2025-06-13 09:25:06,512 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 09:25:10,659 [DEBUG][       Thread-249930][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 09:25:10,660 [DEBUG][       Thread-249930][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 09:25:10,701 [DEBUG][       Thread-249930][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 09:25:10,701 [DEBUG][       Thread-249930][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 09:25:10,704 [DEBUG][       Thread-249930][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 09:25:10,717 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 09:25:10,717 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 09:25:10,718 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 09:25:10,719 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 09:25:10,740 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 09:25:10,741 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 09:25:10,741 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 09:25:10,741 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 09:25:10,741 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.308969 -999.00   +7.50  21.52     57   -0.10 1 1 1 1 1   887    0 8.32 22.51 ----- 21.5 21.5 31.0 32.2 11.2 -27.6 10.0 -28.7 8.8 -28.0 9.9 -26.0
2025-06-13 09:25:10,741 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 09:25:10,741 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 09:25:10,741 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.308969
2025-06-13 09:25:10,741 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 09:25:10,741 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 09:25:10,741 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 09:25:10,741 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 09:25:10,741 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 09:25:10,741 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T09:24:38', tmtdew=9.13, humidity=52.58, cloud=0.0, wind=22.06, temperature=7.73, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T07:24:54.922', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 09:25:10,742 [DEBUG][       Thread-249930][   transport.py][1871] : EOF in transport thread
2025-06-13 09:25:10,816 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 09:25:10,827 [DEBUG][       Thread-249933][   transport.py][1871] : starting thread (client mode): 0x863a45e0
2025-06-13 09:25:10,827 [DEBUG][       Thread-249933][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 09:25:10,842 [DEBUG][       Thread-249933][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 09:25:10,842 [ INFO][       Thread-249933][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 09:25:10,850 [DEBUG][       Thread-249933][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 09:25:10,850 [DEBUG][       Thread-249933][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 09:25:10,850 [DEBUG][       Thread-249933][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 09:25:10,850 [DEBUG][       Thread-249933][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:25:10,850 [DEBUG][       Thread-249933][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:25:10,850 [DEBUG][       Thread-249933][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:25:10,850 [DEBUG][       Thread-249933][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:25:10,850 [DEBUG][       Thread-249933][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 09:25:10,850 [DEBUG][       Thread-249933][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 09:25:10,850 [DEBUG][       Thread-249933][   transport.py][1871] : client lang: <none>
2025-06-13 09:25:10,850 [DEBUG][       Thread-249933][   transport.py][1871] : server lang: <none>
2025-06-13 09:25:10,850 [DEBUG][       Thread-249933][   transport.py][1871] : kex follows: False
2025-06-13 09:25:10,850 [DEBUG][       Thread-249933][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 09:25:10,850 [DEBUG][       Thread-249933][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 09:25:10,850 [DEBUG][       Thread-249933][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 09:25:10,850 [DEBUG][       Thread-249933][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 09:25:10,850 [DEBUG][       Thread-249933][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 09:25:10,850 [DEBUG][       Thread-249933][   transport.py][1871] : Compression: none
2025-06-13 09:25:10,850 [DEBUG][       Thread-249933][   transport.py][1871] : === End of kex handshake ===
2025-06-13 09:25:10,910 [DEBUG][       Thread-249933][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 09:25:10,910 [DEBUG][       Thread-249933][   transport.py][1871] : Switch to new keys ...
2025-06-13 09:25:10,910 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 09:25:10,910 [DEBUG][       Thread-249933][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 09:25:10,910 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 09:25:10,967 [DEBUG][       Thread-249933][   transport.py][1871] : userauth is OK
2025-06-13 09:25:10,967 [DEBUG][       Thread-249933][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 09:25:10,967 [DEBUG][       Thread-249933][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 09:25:10,967 [DEBUG][       Thread-249933][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 09:25:10,967 [DEBUG][       Thread-249933][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 09:25:10,981 [ INFO][       Thread-249933][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 09:25:10,981 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 09:25:10,981 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 09:25:12,046 [DEBUG][       Thread-249933][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 09:25:12,046 [DEBUG][       Thread-249933][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 09:25:12,096 [DEBUG][       Thread-249933][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 09:25:12,096 [DEBUG][       Thread-249933][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 09:25:12,105 [DEBUG][       Thread-249933][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 09:25:12,113 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 09:25:12,113 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 09:25:12,121 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 09:25:12,130 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 09:25:12,131 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 09:25:12,131 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 09:25:12,142 [DEBUG][       Thread-249933][   transport.py][1871] : EOF in transport thread
2025-06-13 09:25:13,577 [DEBUG][Thread-249935 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:25:17,611 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:25:17,612 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:25:22,140 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 09:25:22,140 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 09:25:22,140 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 09:25:22,143 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 09:25:22,595 [DEBUG][Thread-249936 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:25:22,595 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 9, 25, 10), 9.1, 52.7, 0.0, 19.37, 7.8, 0, 0, 0, 2, 0, 0),)
2025-06-13 09:25:22,595 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 09:25:10
2025-06-13 09:25:22,677 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 09:25:22,684 [DEBUG][       Thread-249937][   transport.py][1871] : starting thread (client mode): 0x863bca60
2025-06-13 09:25:22,684 [DEBUG][       Thread-249937][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 09:25:22,703 [DEBUG][       Thread-249937][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 09:25:22,704 [ INFO][       Thread-249937][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 09:25:22,707 [DEBUG][       Thread-249937][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 09:25:22,707 [DEBUG][       Thread-249937][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 09:25:22,707 [DEBUG][       Thread-249937][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 09:25:22,707 [DEBUG][       Thread-249937][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:25:22,707 [DEBUG][       Thread-249937][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:25:22,707 [DEBUG][       Thread-249937][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:25:22,707 [DEBUG][       Thread-249937][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:25:22,707 [DEBUG][       Thread-249937][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 09:25:22,707 [DEBUG][       Thread-249937][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 09:25:22,707 [DEBUG][       Thread-249937][   transport.py][1871] : client lang: <none>
2025-06-13 09:25:22,707 [DEBUG][       Thread-249937][   transport.py][1871] : server lang: <none>
2025-06-13 09:25:22,707 [DEBUG][       Thread-249937][   transport.py][1871] : kex follows: False
2025-06-13 09:25:22,707 [DEBUG][       Thread-249937][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 09:25:22,707 [DEBUG][       Thread-249937][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 09:25:22,707 [DEBUG][       Thread-249937][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 09:25:22,707 [DEBUG][       Thread-249937][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 09:25:22,707 [DEBUG][       Thread-249937][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 09:25:22,708 [DEBUG][       Thread-249937][   transport.py][1871] : Compression: none
2025-06-13 09:25:22,708 [DEBUG][       Thread-249937][   transport.py][1871] : === End of kex handshake ===
2025-06-13 09:25:22,724 [DEBUG][       Thread-249937][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 09:25:22,725 [DEBUG][       Thread-249937][   transport.py][1871] : Switch to new keys ...
2025-06-13 09:25:22,725 [DEBUG][       Thread-249937][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 09:25:22,725 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 09:25:22,725 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 09:25:22,727 [DEBUG][       Thread-249937][   transport.py][1871] : userauth is OK
2025-06-13 09:25:22,751 [ INFO][       Thread-249937][   transport.py][1871] : Authentication (password) successful!
2025-06-13 09:25:22,752 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 09:25:23,395 [DEBUG][       Thread-249937][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 09:25:23,395 [DEBUG][       Thread-249937][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 09:25:23,437 [DEBUG][       Thread-249937][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 09:25:23,437 [DEBUG][       Thread-249937][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 09:25:23,440 [DEBUG][       Thread-249937][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 09:25:23,453 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 09:25:23,453 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 09:25:23,455 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 09:25:23,457 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 09:25:23,463 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 09:25:23,465 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 09:25:23,465 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 09:25:23,465 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 09:25:23,466 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.308969 -999.00   +7.50  21.52     57   -0.10 1 1 1 1 1   887    0 8.32 22.51 ----- 21.5 21.5 31.0 32.2 11.2 -27.6 10.0 -28.7 8.8 -28.0 9.9 -26.0
2025-06-13 09:25:23,466 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 09:25:23,466 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 09:25:23,466 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.308969
2025-06-13 09:25:23,466 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 09:25:23,467 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 09:25:23,467 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 09:25:23,467 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 09:25:23,467 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 09:25:23,467 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T09:25:10', tmtdew=9.1, humidity=52.7, cloud=0.0, wind=19.37, temperature=7.8, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T07:24:54.922', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 09:25:23,467 [DEBUG][       Thread-249937][   transport.py][1871] : EOF in transport thread
2025-06-13 09:25:23,551 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 09:25:23,560 [DEBUG][       Thread-249940][   transport.py][1871] : starting thread (client mode): 0x8636a2c0
2025-06-13 09:25:23,560 [DEBUG][       Thread-249940][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 09:25:23,581 [DEBUG][       Thread-249940][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 09:25:23,581 [ INFO][       Thread-249940][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 09:25:23,588 [DEBUG][       Thread-249940][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 09:25:23,588 [DEBUG][       Thread-249940][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 09:25:23,589 [DEBUG][       Thread-249940][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 09:25:23,589 [DEBUG][       Thread-249940][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:25:23,589 [DEBUG][       Thread-249940][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:25:23,589 [DEBUG][       Thread-249940][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:25:23,589 [DEBUG][       Thread-249940][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:25:23,589 [DEBUG][       Thread-249940][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 09:25:23,589 [DEBUG][       Thread-249940][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 09:25:23,589 [DEBUG][       Thread-249940][   transport.py][1871] : client lang: <none>
2025-06-13 09:25:23,589 [DEBUG][       Thread-249940][   transport.py][1871] : server lang: <none>
2025-06-13 09:25:23,589 [DEBUG][       Thread-249940][   transport.py][1871] : kex follows: False
2025-06-13 09:25:23,589 [DEBUG][       Thread-249940][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 09:25:23,589 [DEBUG][       Thread-249940][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 09:25:23,589 [DEBUG][       Thread-249940][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 09:25:23,589 [DEBUG][       Thread-249940][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 09:25:23,589 [DEBUG][       Thread-249940][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 09:25:23,589 [DEBUG][       Thread-249940][   transport.py][1871] : Compression: none
2025-06-13 09:25:23,589 [DEBUG][       Thread-249940][   transport.py][1871] : === End of kex handshake ===
2025-06-13 09:25:23,650 [DEBUG][       Thread-249940][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 09:25:23,651 [DEBUG][       Thread-249940][   transport.py][1871] : Switch to new keys ...
2025-06-13 09:25:23,651 [DEBUG][       Thread-249940][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 09:25:23,652 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 09:25:23,652 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 09:25:23,707 [DEBUG][       Thread-249940][   transport.py][1871] : userauth is OK
2025-06-13 09:25:23,707 [DEBUG][       Thread-249940][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 09:25:23,707 [DEBUG][       Thread-249940][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 09:25:23,707 [DEBUG][       Thread-249940][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 09:25:23,707 [DEBUG][       Thread-249940][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 09:25:23,726 [ INFO][       Thread-249940][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 09:25:23,726 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 09:25:23,726 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 09:25:24,768 [DEBUG][       Thread-249940][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 09:25:24,768 [DEBUG][       Thread-249940][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 09:25:24,819 [DEBUG][       Thread-249940][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 09:25:24,820 [DEBUG][       Thread-249940][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 09:25:24,828 [DEBUG][       Thread-249940][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 09:25:24,837 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 09:25:24,837 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 09:25:24,845 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 09:25:24,854 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 09:25:24,854 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 09:25:24,854 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 09:25:24,864 [DEBUG][       Thread-249940][   transport.py][1871] : EOF in transport thread
2025-06-13 09:25:31,614 [DEBUG][Thread-249942 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:25:34,864 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 09:25:34,864 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 09:25:34,864 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 09:25:34,867 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 09:25:35,320 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 9, 25, 10), 9.1, 52.7, 0.0, 19.37, 7.8, 0, 0, 0, 2, 0, 0),)
2025-06-13 09:25:35,320 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 09:25:10
2025-06-13 09:25:35,402 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 09:25:35,406 [DEBUG][       Thread-249943][   transport.py][1871] : starting thread (client mode): 0x863bfc10
2025-06-13 09:25:35,406 [DEBUG][       Thread-249943][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 09:25:35,427 [DEBUG][       Thread-249943][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 09:25:35,427 [ INFO][       Thread-249943][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 09:25:35,431 [DEBUG][       Thread-249943][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 09:25:35,431 [DEBUG][       Thread-249943][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 09:25:35,431 [DEBUG][       Thread-249943][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 09:25:35,431 [DEBUG][       Thread-249943][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:25:35,431 [DEBUG][       Thread-249943][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:25:35,431 [DEBUG][       Thread-249943][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:25:35,431 [DEBUG][       Thread-249943][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:25:35,431 [DEBUG][       Thread-249943][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 09:25:35,431 [DEBUG][       Thread-249943][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 09:25:35,431 [DEBUG][       Thread-249943][   transport.py][1871] : client lang: <none>
2025-06-13 09:25:35,431 [DEBUG][       Thread-249943][   transport.py][1871] : server lang: <none>
2025-06-13 09:25:35,431 [DEBUG][       Thread-249943][   transport.py][1871] : kex follows: False
2025-06-13 09:25:35,431 [DEBUG][       Thread-249943][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 09:25:35,431 [DEBUG][       Thread-249943][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 09:25:35,431 [DEBUG][       Thread-249943][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 09:25:35,431 [DEBUG][       Thread-249943][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 09:25:35,431 [DEBUG][       Thread-249943][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 09:25:35,431 [DEBUG][       Thread-249943][   transport.py][1871] : Compression: none
2025-06-13 09:25:35,431 [DEBUG][       Thread-249943][   transport.py][1871] : === End of kex handshake ===
2025-06-13 09:25:35,454 [DEBUG][       Thread-249943][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 09:25:35,454 [DEBUG][       Thread-249943][   transport.py][1871] : Switch to new keys ...
2025-06-13 09:25:35,454 [DEBUG][       Thread-249943][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 09:25:35,455 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 09:25:35,455 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 09:25:35,456 [DEBUG][       Thread-249943][   transport.py][1871] : userauth is OK
2025-06-13 09:25:35,481 [ INFO][       Thread-249943][   transport.py][1871] : Authentication (password) successful!
2025-06-13 09:25:35,481 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 09:25:36,121 [DEBUG][       Thread-249943][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 09:25:36,121 [DEBUG][       Thread-249943][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 09:25:36,165 [DEBUG][       Thread-249943][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 09:25:36,165 [DEBUG][       Thread-249943][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 09:25:36,168 [DEBUG][       Thread-249943][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 09:25:36,179 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 09:25:36,180 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 09:25:36,181 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 09:25:36,183 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 09:25:36,188 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 09:25:36,189 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 09:25:36,190 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 09:25:36,190 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 09:25:36,190 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.308969 -999.00   +7.50  21.52     57   -0.10 1 1 1 1 1   887    0 8.32 22.51 ----- 21.5 21.5 31.0 32.2 11.2 -27.6 10.0 -28.7 8.8 -28.0 9.9 -26.0
2025-06-13 09:25:36,190 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 09:25:36,190 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 09:25:36,190 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.308969
2025-06-13 09:25:36,191 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 09:25:36,191 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 09:25:36,191 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 09:25:36,191 [DEBUG][       Thread-249943][   transport.py][1871] : EOF in transport thread
2025-06-13 09:25:36,192 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 09:25:36,192 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 09:25:36,192 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T09:25:10', tmtdew=9.1, humidity=52.7, cloud=0.0, wind=19.37, temperature=7.8, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T07:24:54.922', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 09:25:36,274 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 09:25:36,287 [DEBUG][       Thread-249946][   transport.py][1871] : starting thread (client mode): 0x863a7220
2025-06-13 09:25:36,287 [DEBUG][       Thread-249946][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 09:25:36,302 [DEBUG][       Thread-249946][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 09:25:36,302 [ INFO][       Thread-249946][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 09:25:36,309 [DEBUG][       Thread-249946][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 09:25:36,309 [DEBUG][       Thread-249946][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 09:25:36,309 [DEBUG][       Thread-249946][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 09:25:36,310 [DEBUG][       Thread-249946][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:25:36,310 [DEBUG][       Thread-249946][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:25:36,310 [DEBUG][       Thread-249946][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:25:36,310 [DEBUG][       Thread-249946][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:25:36,310 [DEBUG][       Thread-249946][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 09:25:36,310 [DEBUG][       Thread-249946][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 09:25:36,310 [DEBUG][       Thread-249946][   transport.py][1871] : client lang: <none>
2025-06-13 09:25:36,310 [DEBUG][       Thread-249946][   transport.py][1871] : server lang: <none>
2025-06-13 09:25:36,310 [DEBUG][       Thread-249946][   transport.py][1871] : kex follows: False
2025-06-13 09:25:36,310 [DEBUG][       Thread-249946][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 09:25:36,310 [DEBUG][       Thread-249946][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 09:25:36,310 [DEBUG][       Thread-249946][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 09:25:36,310 [DEBUG][       Thread-249946][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 09:25:36,310 [DEBUG][       Thread-249946][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 09:25:36,310 [DEBUG][       Thread-249946][   transport.py][1871] : Compression: none
2025-06-13 09:25:36,310 [DEBUG][       Thread-249946][   transport.py][1871] : === End of kex handshake ===
2025-06-13 09:25:36,366 [DEBUG][       Thread-249946][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 09:25:36,367 [DEBUG][       Thread-249946][   transport.py][1871] : Switch to new keys ...
2025-06-13 09:25:36,367 [DEBUG][       Thread-249946][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 09:25:36,367 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 09:25:36,368 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 09:25:36,423 [DEBUG][       Thread-249946][   transport.py][1871] : userauth is OK
2025-06-13 09:25:36,423 [DEBUG][       Thread-249946][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 09:25:36,423 [DEBUG][       Thread-249946][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 09:25:36,423 [DEBUG][       Thread-249946][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 09:25:36,423 [DEBUG][       Thread-249946][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 09:25:36,442 [ INFO][       Thread-249946][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 09:25:36,442 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 09:25:36,442 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 09:25:37,463 [DEBUG][       Thread-249946][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 09:25:37,463 [DEBUG][       Thread-249946][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 09:25:37,511 [DEBUG][       Thread-249946][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 09:25:37,512 [DEBUG][       Thread-249946][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 09:25:37,520 [DEBUG][       Thread-249946][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 09:25:37,529 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 09:25:37,529 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 09:25:37,538 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 09:25:37,546 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 09:25:37,547 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 09:25:37,547 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 09:25:37,555 [DEBUG][       Thread-249946][   transport.py][1871] : EOF in transport thread
2025-06-13 09:25:40,645 [DEBUG][Thread-249948 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:25:47,556 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 09:25:47,556 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 09:25:47,556 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 09:25:47,559 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 09:25:48,029 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 9, 25, 41), 9.06, 52.85, 0.0, 20.04, 7.77, 0, 0, 0, 2, 0, 0),)
2025-06-13 09:25:48,029 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 09:25:41
2025-06-13 09:25:48,111 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 09:25:48,116 [DEBUG][       Thread-249949][   transport.py][1871] : starting thread (client mode): 0x863686d0
2025-06-13 09:25:48,116 [DEBUG][       Thread-249949][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 09:25:48,137 [DEBUG][       Thread-249949][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 09:25:48,137 [ INFO][       Thread-249949][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 09:25:48,140 [DEBUG][       Thread-249949][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 09:25:48,140 [DEBUG][       Thread-249949][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 09:25:48,140 [DEBUG][       Thread-249949][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 09:25:48,140 [DEBUG][       Thread-249949][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:25:48,140 [DEBUG][       Thread-249949][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:25:48,140 [DEBUG][       Thread-249949][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:25:48,140 [DEBUG][       Thread-249949][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:25:48,140 [DEBUG][       Thread-249949][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 09:25:48,140 [DEBUG][       Thread-249949][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 09:25:48,140 [DEBUG][       Thread-249949][   transport.py][1871] : client lang: <none>
2025-06-13 09:25:48,140 [DEBUG][       Thread-249949][   transport.py][1871] : server lang: <none>
2025-06-13 09:25:48,140 [DEBUG][       Thread-249949][   transport.py][1871] : kex follows: False
2025-06-13 09:25:48,140 [DEBUG][       Thread-249949][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 09:25:48,140 [DEBUG][       Thread-249949][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 09:25:48,140 [DEBUG][       Thread-249949][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 09:25:48,140 [DEBUG][       Thread-249949][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 09:25:48,140 [DEBUG][       Thread-249949][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 09:25:48,140 [DEBUG][       Thread-249949][   transport.py][1871] : Compression: none
2025-06-13 09:25:48,140 [DEBUG][       Thread-249949][   transport.py][1871] : === End of kex handshake ===
2025-06-13 09:25:48,157 [DEBUG][       Thread-249949][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 09:25:48,158 [DEBUG][       Thread-249949][   transport.py][1871] : Switch to new keys ...
2025-06-13 09:25:48,158 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 09:25:48,158 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 09:25:48,159 [DEBUG][       Thread-249949][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 09:25:48,159 [DEBUG][       Thread-249949][   transport.py][1871] : userauth is OK
2025-06-13 09:25:48,171 [ INFO][       Thread-249949][   transport.py][1871] : Authentication (password) successful!
2025-06-13 09:25:48,172 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 09:25:48,832 [DEBUG][       Thread-249949][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 09:25:48,832 [DEBUG][       Thread-249949][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 09:25:48,873 [DEBUG][       Thread-249949][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 09:25:48,873 [DEBUG][       Thread-249949][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 09:25:48,876 [DEBUG][       Thread-249949][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 09:25:48,888 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 09:25:48,889 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 09:25:48,891 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 09:25:48,893 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 09:25:48,898 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 09:25:48,899 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 09:25:48,899 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 09:25:48,900 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 09:25:48,901 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.309316 -999.00   +7.60  20.46     58   +0.00 1 1 1 1 1   887    0 8.23 21.28 ----- 20.5 20.5 41.6 26.2 11.2 -27.8 10.1 -28.9 8.8 -27.3 9.9 -25.9
2025-06-13 09:25:48,901 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 09:25:48,901 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 09:25:48,901 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.309316
2025-06-13 09:25:48,901 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 09:25:48,902 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 09:25:48,902 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 09:25:48,902 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 09:25:48,902 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 09:25:48,903 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T09:25:41', tmtdew=9.06, humidity=52.85, cloud=0.0, wind=20.04, temperature=7.77, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T07:25:24.902', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 09:25:48,904 [DEBUG][       Thread-249949][   transport.py][1871] : EOF in transport thread
2025-06-13 09:25:48,994 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 09:25:49,005 [DEBUG][       Thread-249952][   transport.py][1871] : starting thread (client mode): 0x867b46a0
2025-06-13 09:25:49,005 [DEBUG][       Thread-249952][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 09:25:49,023 [DEBUG][       Thread-249952][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 09:25:49,023 [ INFO][       Thread-249952][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 09:25:49,032 [DEBUG][       Thread-249952][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 09:25:49,032 [DEBUG][       Thread-249952][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 09:25:49,032 [DEBUG][       Thread-249952][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 09:25:49,032 [DEBUG][       Thread-249952][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:25:49,032 [DEBUG][       Thread-249952][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:25:49,032 [DEBUG][       Thread-249952][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:25:49,032 [DEBUG][       Thread-249952][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:25:49,032 [DEBUG][       Thread-249952][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 09:25:49,032 [DEBUG][       Thread-249952][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 09:25:49,032 [DEBUG][       Thread-249952][   transport.py][1871] : client lang: <none>
2025-06-13 09:25:49,032 [DEBUG][       Thread-249952][   transport.py][1871] : server lang: <none>
2025-06-13 09:25:49,032 [DEBUG][       Thread-249952][   transport.py][1871] : kex follows: False
2025-06-13 09:25:49,032 [DEBUG][       Thread-249952][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 09:25:49,032 [DEBUG][       Thread-249952][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 09:25:49,033 [DEBUG][       Thread-249952][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 09:25:49,033 [DEBUG][       Thread-249952][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 09:25:49,033 [DEBUG][       Thread-249952][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 09:25:49,033 [DEBUG][       Thread-249952][   transport.py][1871] : Compression: none
2025-06-13 09:25:49,033 [DEBUG][       Thread-249952][   transport.py][1871] : === End of kex handshake ===
2025-06-13 09:25:49,086 [DEBUG][       Thread-249952][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 09:25:49,086 [DEBUG][       Thread-249952][   transport.py][1871] : Switch to new keys ...
2025-06-13 09:25:49,086 [DEBUG][       Thread-249952][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 09:25:49,087 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 09:25:49,087 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 09:25:49,142 [DEBUG][       Thread-249952][   transport.py][1871] : userauth is OK
2025-06-13 09:25:49,142 [DEBUG][       Thread-249952][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 09:25:49,142 [DEBUG][       Thread-249952][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 09:25:49,143 [DEBUG][       Thread-249952][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 09:25:49,143 [DEBUG][       Thread-249952][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 09:25:49,162 [ INFO][       Thread-249952][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 09:25:49,162 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 09:25:49,162 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 09:25:49,662 [DEBUG][Thread-249954 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:25:50,234 [DEBUG][       Thread-249952][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 09:25:50,234 [DEBUG][       Thread-249952][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 09:25:50,292 [DEBUG][       Thread-249952][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 09:25:50,293 [DEBUG][       Thread-249952][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 09:25:50,309 [DEBUG][       Thread-249952][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 09:25:50,320 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 09:25:50,321 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 09:25:50,331 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 09:25:50,343 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 09:25:50,344 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 09:25:50,344 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 09:25:50,356 [DEBUG][       Thread-249952][   transport.py][1871] : EOF in transport thread
2025-06-13 09:25:58,699 [DEBUG][Thread-249955 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:26:00,353 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 09:26:00,354 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 09:26:00,354 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 09:26:00,356 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 09:26:00,808 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 9, 25, 41), 9.06, 52.85, 0.0, 20.04, 7.77, 0, 0, 0, 2, 0, 0),)
2025-06-13 09:26:00,808 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 09:25:41
2025-06-13 09:26:00,888 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 09:26:00,892 [DEBUG][       Thread-249956][   transport.py][1871] : starting thread (client mode): 0x867b70d0
2025-06-13 09:26:00,892 [DEBUG][       Thread-249956][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 09:26:00,914 [DEBUG][       Thread-249956][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 09:26:00,914 [ INFO][       Thread-249956][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 09:26:00,918 [DEBUG][       Thread-249956][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 09:26:00,918 [DEBUG][       Thread-249956][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 09:26:00,918 [DEBUG][       Thread-249956][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 09:26:00,918 [DEBUG][       Thread-249956][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:26:00,918 [DEBUG][       Thread-249956][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:26:00,918 [DEBUG][       Thread-249956][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:26:00,918 [DEBUG][       Thread-249956][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:26:00,918 [DEBUG][       Thread-249956][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 09:26:00,918 [DEBUG][       Thread-249956][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 09:26:00,918 [DEBUG][       Thread-249956][   transport.py][1871] : client lang: <none>
2025-06-13 09:26:00,918 [DEBUG][       Thread-249956][   transport.py][1871] : server lang: <none>
2025-06-13 09:26:00,918 [DEBUG][       Thread-249956][   transport.py][1871] : kex follows: False
2025-06-13 09:26:00,918 [DEBUG][       Thread-249956][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 09:26:00,918 [DEBUG][       Thread-249956][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 09:26:00,918 [DEBUG][       Thread-249956][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 09:26:00,918 [DEBUG][       Thread-249956][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 09:26:00,918 [DEBUG][       Thread-249956][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 09:26:00,919 [DEBUG][       Thread-249956][   transport.py][1871] : Compression: none
2025-06-13 09:26:00,919 [DEBUG][       Thread-249956][   transport.py][1871] : === End of kex handshake ===
2025-06-13 09:26:00,934 [DEBUG][       Thread-249956][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 09:26:00,935 [DEBUG][       Thread-249956][   transport.py][1871] : Switch to new keys ...
2025-06-13 09:26:00,936 [DEBUG][       Thread-249956][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 09:26:00,936 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 09:26:00,936 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 09:26:00,937 [DEBUG][       Thread-249956][   transport.py][1871] : userauth is OK
2025-06-13 09:26:00,951 [ INFO][       Thread-249956][   transport.py][1871] : Authentication (password) successful!
2025-06-13 09:26:00,952 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 09:26:01,617 [DEBUG][       Thread-249956][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 09:26:01,617 [DEBUG][       Thread-249956][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 09:26:01,661 [DEBUG][       Thread-249956][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 09:26:01,661 [DEBUG][       Thread-249956][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 09:26:01,664 [DEBUG][       Thread-249956][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 09:26:01,675 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 09:26:01,676 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 09:26:01,677 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 09:26:01,679 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 09:26:01,685 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 09:26:01,686 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 09:26:01,687 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 09:26:01,687 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 09:26:01,687 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.309316 -999.00   +7.60  20.46     58   +0.00 1 1 1 1 1   887    0 8.23 21.28 ----- 20.5 20.5 41.6 26.2 11.2 -27.8 10.1 -28.9 8.8 -27.3 9.9 -25.9
2025-06-13 09:26:01,687 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 09:26:01,687 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 09:26:01,688 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.309316
2025-06-13 09:26:01,688 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 09:26:01,689 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 09:26:01,689 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 09:26:01,689 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 09:26:01,689 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 09:26:01,689 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T09:25:41', tmtdew=9.06, humidity=52.85, cloud=0.0, wind=20.04, temperature=7.77, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T07:25:24.902', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 09:26:01,689 [DEBUG][       Thread-249956][   transport.py][1871] : EOF in transport thread
2025-06-13 09:26:01,773 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 09:26:01,784 [DEBUG][       Thread-249959][   transport.py][1871] : starting thread (client mode): 0x863ec9d0
2025-06-13 09:26:01,784 [DEBUG][       Thread-249959][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 09:26:01,800 [DEBUG][       Thread-249959][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 09:26:01,800 [ INFO][       Thread-249959][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 09:26:01,807 [DEBUG][       Thread-249959][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 09:26:01,808 [DEBUG][       Thread-249959][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 09:26:01,808 [DEBUG][       Thread-249959][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 09:26:01,808 [DEBUG][       Thread-249959][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:26:01,808 [DEBUG][       Thread-249959][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:26:01,808 [DEBUG][       Thread-249959][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:26:01,808 [DEBUG][       Thread-249959][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:26:01,808 [DEBUG][       Thread-249959][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 09:26:01,808 [DEBUG][       Thread-249959][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 09:26:01,808 [DEBUG][       Thread-249959][   transport.py][1871] : client lang: <none>
2025-06-13 09:26:01,808 [DEBUG][       Thread-249959][   transport.py][1871] : server lang: <none>
2025-06-13 09:26:01,808 [DEBUG][       Thread-249959][   transport.py][1871] : kex follows: False
2025-06-13 09:26:01,808 [DEBUG][       Thread-249959][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 09:26:01,808 [DEBUG][       Thread-249959][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 09:26:01,808 [DEBUG][       Thread-249959][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 09:26:01,808 [DEBUG][       Thread-249959][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 09:26:01,808 [DEBUG][       Thread-249959][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 09:26:01,808 [DEBUG][       Thread-249959][   transport.py][1871] : Compression: none
2025-06-13 09:26:01,808 [DEBUG][       Thread-249959][   transport.py][1871] : === End of kex handshake ===
2025-06-13 09:26:01,866 [DEBUG][       Thread-249959][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 09:26:01,867 [DEBUG][       Thread-249959][   transport.py][1871] : Switch to new keys ...
2025-06-13 09:26:01,867 [DEBUG][       Thread-249959][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 09:26:01,868 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 09:26:01,868 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 09:26:01,923 [DEBUG][       Thread-249959][   transport.py][1871] : userauth is OK
2025-06-13 09:26:01,923 [DEBUG][       Thread-249959][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 09:26:01,923 [DEBUG][       Thread-249959][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 09:26:01,923 [DEBUG][       Thread-249959][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 09:26:01,923 [DEBUG][       Thread-249959][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 09:26:01,945 [ INFO][       Thread-249959][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 09:26:01,945 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 09:26:01,946 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 09:26:02,968 [DEBUG][       Thread-249959][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 09:26:02,968 [DEBUG][       Thread-249959][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 09:26:03,023 [DEBUG][       Thread-249959][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 09:26:03,023 [DEBUG][       Thread-249959][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 09:26:03,032 [DEBUG][       Thread-249959][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 09:26:03,041 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 09:26:03,041 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 09:26:03,049 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 09:26:03,058 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 09:26:03,058 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 09:26:03,059 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 09:26:03,069 [DEBUG][       Thread-249959][   transport.py][1871] : EOF in transport thread
2025-06-13 09:26:03,151 [DEBUG][Thread-249961 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:26:04,737 [DEBUG][Thread-249962 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:26:05,813 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:26:05,813 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:26:07,716 [DEBUG][Thread-249963 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:26:13,069 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 09:26:13,069 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 09:26:13,078 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 09:26:13,081 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 09:26:13,529 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 9, 25, 41), 9.06, 52.85, 0.0, 20.04, 7.77, 0, 0, 0, 2, 0, 0),)
2025-06-13 09:26:13,529 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 09:25:41
2025-06-13 09:26:13,604 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 09:26:13,611 [DEBUG][       Thread-249964][   transport.py][1871] : starting thread (client mode): 0x867b7550
2025-06-13 09:26:13,611 [DEBUG][       Thread-249964][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 09:26:13,633 [DEBUG][       Thread-249964][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 09:26:13,633 [ INFO][       Thread-249964][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 09:26:13,637 [DEBUG][       Thread-249964][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 09:26:13,637 [DEBUG][       Thread-249964][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 09:26:13,637 [DEBUG][       Thread-249964][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 09:26:13,637 [DEBUG][       Thread-249964][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:26:13,637 [DEBUG][       Thread-249964][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:26:13,637 [DEBUG][       Thread-249964][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:26:13,637 [DEBUG][       Thread-249964][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:26:13,637 [DEBUG][       Thread-249964][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 09:26:13,637 [DEBUG][       Thread-249964][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 09:26:13,637 [DEBUG][       Thread-249964][   transport.py][1871] : client lang: <none>
2025-06-13 09:26:13,637 [DEBUG][       Thread-249964][   transport.py][1871] : server lang: <none>
2025-06-13 09:26:13,637 [DEBUG][       Thread-249964][   transport.py][1871] : kex follows: False
2025-06-13 09:26:13,637 [DEBUG][       Thread-249964][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 09:26:13,637 [DEBUG][       Thread-249964][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 09:26:13,637 [DEBUG][       Thread-249964][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 09:26:13,637 [DEBUG][       Thread-249964][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 09:26:13,637 [DEBUG][       Thread-249964][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 09:26:13,637 [DEBUG][       Thread-249964][   transport.py][1871] : Compression: none
2025-06-13 09:26:13,637 [DEBUG][       Thread-249964][   transport.py][1871] : === End of kex handshake ===
2025-06-13 09:26:13,654 [DEBUG][       Thread-249964][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 09:26:13,655 [DEBUG][       Thread-249964][   transport.py][1871] : Switch to new keys ...
2025-06-13 09:26:13,655 [DEBUG][       Thread-249964][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 09:26:13,656 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 09:26:13,656 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 09:26:13,657 [DEBUG][       Thread-249964][   transport.py][1871] : userauth is OK
2025-06-13 09:26:13,682 [ INFO][       Thread-249964][   transport.py][1871] : Authentication (password) successful!
2025-06-13 09:26:13,682 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 09:26:14,288 [DEBUG][       Thread-249964][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 09:26:14,288 [DEBUG][       Thread-249964][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 09:26:14,328 [DEBUG][       Thread-249964][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 09:26:14,328 [DEBUG][       Thread-249964][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 09:26:14,331 [DEBUG][       Thread-249964][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 09:26:14,343 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 09:26:14,343 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 09:26:14,344 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 09:26:14,345 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 09:26:14,348 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 09:26:14,349 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 09:26:14,349 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 09:26:14,349 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 09:26:14,349 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.309316 -999.00   +7.60  20.46     58   +0.00 1 1 1 1 1   887    0 8.23 21.28 ----- 20.5 20.5 41.6 26.2 11.2 -27.8 10.1 -28.9 8.8 -27.3 9.9 -25.9
2025-06-13 09:26:14,349 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 09:26:14,349 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 09:26:14,349 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.309316
2025-06-13 09:26:14,349 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 09:26:14,350 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 09:26:14,350 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 09:26:14,350 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 09:26:14,350 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 09:26:14,350 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T09:25:41', tmtdew=9.06, humidity=52.85, cloud=0.0, wind=20.04, temperature=7.77, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T07:25:24.902', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 09:26:14,350 [DEBUG][       Thread-249964][   transport.py][1871] : EOF in transport thread
2025-06-13 09:26:14,424 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 09:26:14,435 [DEBUG][       Thread-249967][   transport.py][1871] : starting thread (client mode): 0x867fce50
2025-06-13 09:26:14,435 [DEBUG][       Thread-249967][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 09:26:14,451 [DEBUG][       Thread-249967][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 09:26:14,451 [ INFO][       Thread-249967][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 09:26:14,462 [DEBUG][       Thread-249967][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 09:26:14,462 [DEBUG][       Thread-249967][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 09:26:14,462 [DEBUG][       Thread-249967][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 09:26:14,462 [DEBUG][       Thread-249967][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:26:14,462 [DEBUG][       Thread-249967][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:26:14,462 [DEBUG][       Thread-249967][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:26:14,462 [DEBUG][       Thread-249967][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:26:14,462 [DEBUG][       Thread-249967][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 09:26:14,462 [DEBUG][       Thread-249967][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 09:26:14,462 [DEBUG][       Thread-249967][   transport.py][1871] : client lang: <none>
2025-06-13 09:26:14,462 [DEBUG][       Thread-249967][   transport.py][1871] : server lang: <none>
2025-06-13 09:26:14,462 [DEBUG][       Thread-249967][   transport.py][1871] : kex follows: False
2025-06-13 09:26:14,462 [DEBUG][       Thread-249967][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 09:26:14,462 [DEBUG][       Thread-249967][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 09:26:14,462 [DEBUG][       Thread-249967][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 09:26:14,462 [DEBUG][       Thread-249967][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 09:26:14,462 [DEBUG][       Thread-249967][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 09:26:14,462 [DEBUG][       Thread-249967][   transport.py][1871] : Compression: none
2025-06-13 09:26:14,462 [DEBUG][       Thread-249967][   transport.py][1871] : === End of kex handshake ===
2025-06-13 09:26:14,522 [DEBUG][       Thread-249967][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 09:26:14,522 [DEBUG][       Thread-249967][   transport.py][1871] : Switch to new keys ...
2025-06-13 09:26:14,522 [DEBUG][       Thread-249967][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 09:26:14,522 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 09:26:14,522 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 09:26:14,578 [DEBUG][       Thread-249967][   transport.py][1871] : userauth is OK
2025-06-13 09:26:14,578 [DEBUG][       Thread-249967][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 09:26:14,578 [DEBUG][       Thread-249967][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 09:26:14,579 [DEBUG][       Thread-249967][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 09:26:14,579 [DEBUG][       Thread-249967][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 09:26:14,593 [ INFO][       Thread-249967][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 09:26:14,593 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 09:26:14,593 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 09:26:15,593 [DEBUG][       Thread-249967][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 09:26:15,593 [DEBUG][       Thread-249967][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 09:26:15,643 [DEBUG][       Thread-249967][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 09:26:15,644 [DEBUG][       Thread-249967][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 09:26:15,657 [DEBUG][       Thread-249967][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 09:26:15,670 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 09:26:15,670 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 09:26:15,680 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 09:26:15,689 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 09:26:15,689 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 09:26:15,689 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 09:26:15,697 [DEBUG][       Thread-249967][   transport.py][1871] : EOF in transport thread
2025-06-13 09:26:16,734 [DEBUG][Thread-249969 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:26:17,748 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:26:17,749 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:26:25,699 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 09:26:25,700 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 09:26:25,700 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 09:26:25,703 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 09:26:25,752 [DEBUG][Thread-249970 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:26:26,160 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 9, 26, 13), 9.04, 52.69, 0.0, 21.58, 7.8, 0, 0, 0, 2, 0, 0),)
2025-06-13 09:26:26,160 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 09:26:13
2025-06-13 09:26:26,235 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 09:26:26,239 [DEBUG][       Thread-249971][   transport.py][1871] : starting thread (client mode): 0x867ffac0
2025-06-13 09:26:26,239 [DEBUG][       Thread-249971][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 09:26:26,260 [DEBUG][       Thread-249971][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 09:26:26,260 [ INFO][       Thread-249971][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 09:26:26,262 [DEBUG][       Thread-249971][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 09:26:26,262 [DEBUG][       Thread-249971][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 09:26:26,262 [DEBUG][       Thread-249971][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 09:26:26,262 [DEBUG][       Thread-249971][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:26:26,262 [DEBUG][       Thread-249971][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:26:26,262 [DEBUG][       Thread-249971][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:26:26,262 [DEBUG][       Thread-249971][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:26:26,262 [DEBUG][       Thread-249971][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 09:26:26,262 [DEBUG][       Thread-249971][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 09:26:26,262 [DEBUG][       Thread-249971][   transport.py][1871] : client lang: <none>
2025-06-13 09:26:26,262 [DEBUG][       Thread-249971][   transport.py][1871] : server lang: <none>
2025-06-13 09:26:26,262 [DEBUG][       Thread-249971][   transport.py][1871] : kex follows: False
2025-06-13 09:26:26,262 [DEBUG][       Thread-249971][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 09:26:26,262 [DEBUG][       Thread-249971][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 09:26:26,262 [DEBUG][       Thread-249971][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 09:26:26,262 [DEBUG][       Thread-249971][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 09:26:26,262 [DEBUG][       Thread-249971][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 09:26:26,262 [DEBUG][       Thread-249971][   transport.py][1871] : Compression: none
2025-06-13 09:26:26,262 [DEBUG][       Thread-249971][   transport.py][1871] : === End of kex handshake ===
2025-06-13 09:26:26,270 [DEBUG][       Thread-249971][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 09:26:26,270 [DEBUG][       Thread-249971][   transport.py][1871] : Switch to new keys ...
2025-06-13 09:26:26,271 [DEBUG][       Thread-249971][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 09:26:26,271 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 09:26:26,271 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 09:26:26,272 [DEBUG][       Thread-249971][   transport.py][1871] : userauth is OK
2025-06-13 09:26:26,285 [ INFO][       Thread-249971][   transport.py][1871] : Authentication (password) successful!
2025-06-13 09:26:26,286 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 09:26:26,925 [DEBUG][       Thread-249971][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 09:26:26,925 [DEBUG][       Thread-249971][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 09:26:26,969 [DEBUG][       Thread-249971][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 09:26:26,969 [DEBUG][       Thread-249971][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 09:26:26,972 [DEBUG][       Thread-249971][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 09:26:26,984 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 09:26:26,985 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 09:26:26,987 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 09:26:26,988 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 09:26:26,993 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 09:26:26,995 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 09:26:26,995 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 09:26:26,996 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 09:26:26,996 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.309663 -999.00   +7.60  25.93     57   -0.10 1 1 1 1 1   887    0 8.23 19.91 ----- 25.9 25.9 40.6 32.9 11.2 -28.1 10.1 -28.8 8.8 -27.6 9.9 -26.2
2025-06-13 09:26:26,996 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 09:26:26,996 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 09:26:26,996 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.309663
2025-06-13 09:26:26,997 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 09:26:26,997 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 09:26:26,997 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 09:26:26,997 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 09:26:26,997 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 09:26:26,997 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T09:26:13', tmtdew=9.04, humidity=52.69, cloud=0.0, wind=21.58, temperature=7.8, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T07:25:54.883', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 09:26:26,998 [DEBUG][       Thread-249971][   transport.py][1871] : EOF in transport thread
2025-06-13 09:26:27,081 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 09:26:27,091 [DEBUG][       Thread-249974][   transport.py][1871] : starting thread (client mode): 0x867b48e0
2025-06-13 09:26:27,091 [DEBUG][       Thread-249974][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 09:26:27,106 [DEBUG][       Thread-249974][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 09:26:27,106 [ INFO][       Thread-249974][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 09:26:27,113 [DEBUG][       Thread-249974][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 09:26:27,113 [DEBUG][       Thread-249974][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 09:26:27,113 [DEBUG][       Thread-249974][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 09:26:27,114 [DEBUG][       Thread-249974][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:26:27,114 [DEBUG][       Thread-249974][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:26:27,114 [DEBUG][       Thread-249974][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:26:27,114 [DEBUG][       Thread-249974][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:26:27,114 [DEBUG][       Thread-249974][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 09:26:27,114 [DEBUG][       Thread-249974][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 09:26:27,114 [DEBUG][       Thread-249974][   transport.py][1871] : client lang: <none>
2025-06-13 09:26:27,114 [DEBUG][       Thread-249974][   transport.py][1871] : server lang: <none>
2025-06-13 09:26:27,114 [DEBUG][       Thread-249974][   transport.py][1871] : kex follows: False
2025-06-13 09:26:27,114 [DEBUG][       Thread-249974][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 09:26:27,114 [DEBUG][       Thread-249974][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 09:26:27,114 [DEBUG][       Thread-249974][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 09:26:27,114 [DEBUG][       Thread-249974][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 09:26:27,114 [DEBUG][       Thread-249974][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 09:26:27,114 [DEBUG][       Thread-249974][   transport.py][1871] : Compression: none
2025-06-13 09:26:27,114 [DEBUG][       Thread-249974][   transport.py][1871] : === End of kex handshake ===
2025-06-13 09:26:27,170 [DEBUG][       Thread-249974][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 09:26:27,171 [DEBUG][       Thread-249974][   transport.py][1871] : Switch to new keys ...
2025-06-13 09:26:27,171 [DEBUG][       Thread-249974][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 09:26:27,172 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 09:26:27,172 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 09:26:27,227 [DEBUG][       Thread-249974][   transport.py][1871] : userauth is OK
2025-06-13 09:26:27,227 [DEBUG][       Thread-249974][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 09:26:27,227 [DEBUG][       Thread-249974][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 09:26:27,227 [DEBUG][       Thread-249974][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 09:26:27,227 [DEBUG][       Thread-249974][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 09:26:27,246 [ INFO][       Thread-249974][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 09:26:27,246 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 09:26:27,246 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 09:26:28,291 [DEBUG][       Thread-249974][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 09:26:28,291 [DEBUG][       Thread-249974][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 09:26:28,348 [DEBUG][       Thread-249974][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 09:26:28,348 [DEBUG][       Thread-249974][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 09:26:28,361 [DEBUG][       Thread-249974][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 09:26:28,372 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 09:26:28,373 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 09:26:28,383 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 09:26:28,395 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 09:26:28,395 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 09:26:28,396 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 09:26:28,403 [DEBUG][       Thread-249974][   transport.py][1871] : EOF in transport thread
2025-06-13 09:26:34,767 [DEBUG][Thread-249976 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:26:38,406 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 09:26:38,406 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 09:26:38,406 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 09:26:38,409 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 09:26:38,854 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 9, 26, 13), 9.04, 52.69, 0.0, 21.58, 7.8, 0, 0, 0, 2, 0, 0),)
2025-06-13 09:26:38,854 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 09:26:13
2025-06-13 09:26:38,930 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 09:26:38,936 [DEBUG][       Thread-249977][   transport.py][1871] : starting thread (client mode): 0x867b7130
2025-06-13 09:26:38,936 [DEBUG][       Thread-249977][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 09:26:38,957 [DEBUG][       Thread-249977][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 09:26:38,957 [ INFO][       Thread-249977][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 09:26:38,961 [DEBUG][       Thread-249977][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 09:26:38,961 [DEBUG][       Thread-249977][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 09:26:38,961 [DEBUG][       Thread-249977][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 09:26:38,961 [DEBUG][       Thread-249977][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:26:38,961 [DEBUG][       Thread-249977][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:26:38,961 [DEBUG][       Thread-249977][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:26:38,961 [DEBUG][       Thread-249977][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:26:38,961 [DEBUG][       Thread-249977][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 09:26:38,961 [DEBUG][       Thread-249977][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 09:26:38,961 [DEBUG][       Thread-249977][   transport.py][1871] : client lang: <none>
2025-06-13 09:26:38,961 [DEBUG][       Thread-249977][   transport.py][1871] : server lang: <none>
2025-06-13 09:26:38,961 [DEBUG][       Thread-249977][   transport.py][1871] : kex follows: False
2025-06-13 09:26:38,961 [DEBUG][       Thread-249977][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 09:26:38,961 [DEBUG][       Thread-249977][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 09:26:38,961 [DEBUG][       Thread-249977][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 09:26:38,961 [DEBUG][       Thread-249977][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 09:26:38,961 [DEBUG][       Thread-249977][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 09:26:38,962 [DEBUG][       Thread-249977][   transport.py][1871] : Compression: none
2025-06-13 09:26:38,962 [DEBUG][       Thread-249977][   transport.py][1871] : === End of kex handshake ===
2025-06-13 09:26:38,978 [DEBUG][       Thread-249977][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 09:26:38,979 [DEBUG][       Thread-249977][   transport.py][1871] : Switch to new keys ...
2025-06-13 09:26:38,979 [DEBUG][       Thread-249977][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 09:26:38,979 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 09:26:38,980 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 09:26:38,981 [DEBUG][       Thread-249977][   transport.py][1871] : userauth is OK
2025-06-13 09:26:39,005 [ INFO][       Thread-249977][   transport.py][1871] : Authentication (password) successful!
2025-06-13 09:26:39,005 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 09:26:39,657 [DEBUG][       Thread-249977][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 09:26:39,657 [DEBUG][       Thread-249977][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 09:26:39,701 [DEBUG][       Thread-249977][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 09:26:39,701 [DEBUG][       Thread-249977][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 09:26:39,704 [DEBUG][       Thread-249977][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 09:26:39,716 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 09:26:39,717 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 09:26:39,718 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 09:26:39,720 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 09:26:39,725 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 09:26:39,727 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 09:26:39,727 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 09:26:39,728 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 09:26:39,728 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.309663 -999.00   +7.60  25.93     57   -0.10 1 1 1 1 1   887    0 8.23 19.91 ----- 25.9 25.9 40.6 32.9 11.2 -28.1 10.1 -28.8 8.8 -27.6 9.9 -26.2
2025-06-13 09:26:39,728 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 09:26:39,728 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 09:26:39,728 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.309663
2025-06-13 09:26:39,728 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 09:26:39,729 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 09:26:39,729 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 09:26:39,729 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 09:26:39,729 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 09:26:39,729 [DEBUG][       Thread-249977][   transport.py][1871] : EOF in transport thread
2025-06-13 09:26:39,729 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T09:26:13', tmtdew=9.04, humidity=52.69, cloud=0.0, wind=21.58, temperature=7.8, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T07:25:54.883', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 09:26:39,813 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 09:26:39,824 [DEBUG][       Thread-249980][   transport.py][1871] : starting thread (client mode): 0x863a5e70
2025-06-13 09:26:39,824 [DEBUG][       Thread-249980][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 09:26:39,838 [DEBUG][       Thread-249980][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 09:26:39,838 [ INFO][       Thread-249980][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 09:26:39,846 [DEBUG][       Thread-249980][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 09:26:39,846 [DEBUG][       Thread-249980][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 09:26:39,846 [DEBUG][       Thread-249980][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 09:26:39,846 [DEBUG][       Thread-249980][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:26:39,846 [DEBUG][       Thread-249980][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:26:39,846 [DEBUG][       Thread-249980][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:26:39,846 [DEBUG][       Thread-249980][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:26:39,846 [DEBUG][       Thread-249980][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 09:26:39,846 [DEBUG][       Thread-249980][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 09:26:39,846 [DEBUG][       Thread-249980][   transport.py][1871] : client lang: <none>
2025-06-13 09:26:39,846 [DEBUG][       Thread-249980][   transport.py][1871] : server lang: <none>
2025-06-13 09:26:39,847 [DEBUG][       Thread-249980][   transport.py][1871] : kex follows: False
2025-06-13 09:26:39,847 [DEBUG][       Thread-249980][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 09:26:39,847 [DEBUG][       Thread-249980][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 09:26:39,847 [DEBUG][       Thread-249980][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 09:26:39,847 [DEBUG][       Thread-249980][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 09:26:39,847 [DEBUG][       Thread-249980][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 09:26:39,847 [DEBUG][       Thread-249980][   transport.py][1871] : Compression: none
2025-06-13 09:26:39,847 [DEBUG][       Thread-249980][   transport.py][1871] : === End of kex handshake ===
2025-06-13 09:26:39,902 [DEBUG][       Thread-249980][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 09:26:39,902 [DEBUG][       Thread-249980][   transport.py][1871] : Switch to new keys ...
2025-06-13 09:26:39,903 [DEBUG][       Thread-249980][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 09:26:39,903 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 09:26:39,904 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 09:26:39,959 [DEBUG][       Thread-249980][   transport.py][1871] : userauth is OK
2025-06-13 09:26:39,960 [DEBUG][       Thread-249980][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 09:26:39,960 [DEBUG][       Thread-249980][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 09:26:39,960 [DEBUG][       Thread-249980][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 09:26:39,960 [DEBUG][       Thread-249980][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 09:26:39,976 [ INFO][       Thread-249980][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 09:26:39,977 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 09:26:39,977 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 09:26:40,979 [DEBUG][       Thread-249980][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 09:26:40,979 [DEBUG][       Thread-249980][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 09:26:41,029 [DEBUG][       Thread-249980][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 09:26:41,029 [DEBUG][       Thread-249980][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 09:26:41,043 [DEBUG][       Thread-249980][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 09:26:41,055 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 09:26:41,055 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 09:26:41,063 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 09:26:41,072 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 09:26:41,072 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 09:26:41,072 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 09:26:41,080 [DEBUG][       Thread-249980][   transport.py][1871] : EOF in transport thread
2025-06-13 09:26:43,795 [DEBUG][Thread-249982 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:26:51,081 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 09:26:51,081 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 09:26:51,081 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 09:26:51,084 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 09:26:51,546 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 9, 26, 45), 9.09, 52.49, 0.0, 23.96, 7.79, 0, 0, 0, 2, 0, 0),)
2025-06-13 09:26:51,546 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 09:26:45
2025-06-13 09:26:51,623 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 09:26:51,629 [DEBUG][       Thread-249983][   transport.py][1871] : starting thread (client mode): 0x863bf4f0
2025-06-13 09:26:51,629 [DEBUG][       Thread-249983][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 09:26:51,649 [DEBUG][       Thread-249983][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 09:26:51,649 [ INFO][       Thread-249983][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 09:26:51,653 [DEBUG][       Thread-249983][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 09:26:51,653 [DEBUG][       Thread-249983][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 09:26:51,653 [DEBUG][       Thread-249983][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 09:26:51,653 [DEBUG][       Thread-249983][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:26:51,653 [DEBUG][       Thread-249983][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:26:51,653 [DEBUG][       Thread-249983][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:26:51,653 [DEBUG][       Thread-249983][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:26:51,653 [DEBUG][       Thread-249983][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 09:26:51,653 [DEBUG][       Thread-249983][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 09:26:51,653 [DEBUG][       Thread-249983][   transport.py][1871] : client lang: <none>
2025-06-13 09:26:51,653 [DEBUG][       Thread-249983][   transport.py][1871] : server lang: <none>
2025-06-13 09:26:51,653 [DEBUG][       Thread-249983][   transport.py][1871] : kex follows: False
2025-06-13 09:26:51,653 [DEBUG][       Thread-249983][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 09:26:51,653 [DEBUG][       Thread-249983][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 09:26:51,653 [DEBUG][       Thread-249983][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 09:26:51,653 [DEBUG][       Thread-249983][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 09:26:51,653 [DEBUG][       Thread-249983][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 09:26:51,653 [DEBUG][       Thread-249983][   transport.py][1871] : Compression: none
2025-06-13 09:26:51,653 [DEBUG][       Thread-249983][   transport.py][1871] : === End of kex handshake ===
2025-06-13 09:26:51,664 [DEBUG][       Thread-249983][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 09:26:51,665 [DEBUG][       Thread-249983][   transport.py][1871] : Switch to new keys ...
2025-06-13 09:26:51,665 [DEBUG][       Thread-249983][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 09:26:51,666 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 09:26:51,666 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 09:26:51,667 [DEBUG][       Thread-249983][   transport.py][1871] : userauth is OK
2025-06-13 09:26:51,680 [ INFO][       Thread-249983][   transport.py][1871] : Authentication (password) successful!
2025-06-13 09:26:51,681 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 09:26:52,246 [DEBUG][       Thread-249983][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 09:26:52,246 [DEBUG][       Thread-249983][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 09:26:52,289 [DEBUG][       Thread-249983][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 09:26:52,289 [DEBUG][       Thread-249983][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 09:26:52,292 [DEBUG][       Thread-249983][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 09:26:52,303 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 09:26:52,304 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 09:26:52,305 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 09:26:52,307 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 09:26:52,312 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 09:26:52,314 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 09:26:52,315 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 09:26:52,315 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 09:26:52,315 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.310011 -999.00   +7.60  25.27     57   -0.20 1 1 1 1 1   887    0 8.15 18.82 ----- 25.3 25.3 40.8 32.6 11.2 -27.9 10.1 -28.4 8.8 -28.1 9.9 -26.3
2025-06-13 09:26:52,315 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 09:26:52,315 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 09:26:52,315 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.310011
2025-06-13 09:26:52,316 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 09:26:52,316 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 09:26:52,316 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 09:26:52,317 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 09:26:52,317 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 09:26:52,317 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T09:26:45', tmtdew=9.09, humidity=52.49, cloud=0.0, wind=23.96, temperature=7.79, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T07:26:24.950', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 09:26:52,320 [DEBUG][       Thread-249983][   transport.py][1871] : EOF in transport thread
2025-06-13 09:26:52,401 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 09:26:52,412 [DEBUG][       Thread-249986][   transport.py][1871] : starting thread (client mode): 0x863caa70
2025-06-13 09:26:52,412 [DEBUG][       Thread-249986][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 09:26:52,427 [DEBUG][       Thread-249986][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 09:26:52,427 [ INFO][       Thread-249986][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 09:26:52,434 [DEBUG][       Thread-249986][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 09:26:52,434 [DEBUG][       Thread-249986][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 09:26:52,434 [DEBUG][       Thread-249986][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 09:26:52,434 [DEBUG][       Thread-249986][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:26:52,434 [DEBUG][       Thread-249986][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:26:52,434 [DEBUG][       Thread-249986][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:26:52,434 [DEBUG][       Thread-249986][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:26:52,434 [DEBUG][       Thread-249986][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 09:26:52,434 [DEBUG][       Thread-249986][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 09:26:52,434 [DEBUG][       Thread-249986][   transport.py][1871] : client lang: <none>
2025-06-13 09:26:52,434 [DEBUG][       Thread-249986][   transport.py][1871] : server lang: <none>
2025-06-13 09:26:52,434 [DEBUG][       Thread-249986][   transport.py][1871] : kex follows: False
2025-06-13 09:26:52,434 [DEBUG][       Thread-249986][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 09:26:52,434 [DEBUG][       Thread-249986][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 09:26:52,434 [DEBUG][       Thread-249986][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 09:26:52,434 [DEBUG][       Thread-249986][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 09:26:52,434 [DEBUG][       Thread-249986][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 09:26:52,434 [DEBUG][       Thread-249986][   transport.py][1871] : Compression: none
2025-06-13 09:26:52,434 [DEBUG][       Thread-249986][   transport.py][1871] : === End of kex handshake ===
2025-06-13 09:26:52,493 [DEBUG][       Thread-249986][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 09:26:52,493 [DEBUG][       Thread-249986][   transport.py][1871] : Switch to new keys ...
2025-06-13 09:26:52,494 [DEBUG][       Thread-249986][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 09:26:52,494 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 09:26:52,494 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 09:26:52,555 [DEBUG][       Thread-249986][   transport.py][1871] : userauth is OK
2025-06-13 09:26:52,555 [DEBUG][       Thread-249986][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 09:26:52,555 [DEBUG][       Thread-249986][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 09:26:52,555 [DEBUG][       Thread-249986][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 09:26:52,555 [DEBUG][       Thread-249986][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 09:26:52,574 [ INFO][       Thread-249986][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 09:26:52,574 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 09:26:52,575 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 09:26:52,813 [DEBUG][Thread-249988 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:26:53,587 [DEBUG][       Thread-249986][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 09:26:53,587 [DEBUG][       Thread-249986][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 09:26:53,636 [DEBUG][       Thread-249986][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 09:26:53,636 [DEBUG][       Thread-249986][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 09:26:53,645 [DEBUG][       Thread-249986][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 09:26:53,654 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 09:26:53,654 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 09:26:53,664 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 09:26:53,673 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 09:26:53,673 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 09:26:53,673 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 09:26:53,681 [DEBUG][       Thread-249986][   transport.py][1871] : EOF in transport thread
2025-06-13 09:27:01,843 [DEBUG][Thread-249989 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:27:03,202 [DEBUG][Thread-249990 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:27:03,683 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 09:27:03,684 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 09:27:03,684 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 09:27:03,686 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 09:27:04,136 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 9, 26, 45), 9.09, 52.49, 0.0, 23.96, 7.79, 0, 0, 0, 2, 0, 0),)
2025-06-13 09:27:04,136 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 09:26:45
2025-06-13 09:27:04,213 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 09:27:04,217 [DEBUG][       Thread-249991][   transport.py][1871] : starting thread (client mode): 0x863be4a0
2025-06-13 09:27:04,217 [DEBUG][       Thread-249991][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 09:27:04,244 [DEBUG][       Thread-249991][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 09:27:04,244 [ INFO][       Thread-249991][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 09:27:04,247 [DEBUG][       Thread-249991][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 09:27:04,247 [DEBUG][       Thread-249991][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 09:27:04,248 [DEBUG][       Thread-249991][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 09:27:04,248 [DEBUG][       Thread-249991][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:27:04,248 [DEBUG][       Thread-249991][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:27:04,248 [DEBUG][       Thread-249991][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:27:04,248 [DEBUG][       Thread-249991][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:27:04,248 [DEBUG][       Thread-249991][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 09:27:04,248 [DEBUG][       Thread-249991][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 09:27:04,248 [DEBUG][       Thread-249991][   transport.py][1871] : client lang: <none>
2025-06-13 09:27:04,248 [DEBUG][       Thread-249991][   transport.py][1871] : server lang: <none>
2025-06-13 09:27:04,248 [DEBUG][       Thread-249991][   transport.py][1871] : kex follows: False
2025-06-13 09:27:04,248 [DEBUG][       Thread-249991][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 09:27:04,248 [DEBUG][       Thread-249991][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 09:27:04,248 [DEBUG][       Thread-249991][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 09:27:04,248 [DEBUG][       Thread-249991][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 09:27:04,248 [DEBUG][       Thread-249991][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 09:27:04,248 [DEBUG][       Thread-249991][   transport.py][1871] : Compression: none
2025-06-13 09:27:04,248 [DEBUG][       Thread-249991][   transport.py][1871] : === End of kex handshake ===
2025-06-13 09:27:04,269 [DEBUG][       Thread-249991][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 09:27:04,270 [DEBUG][       Thread-249991][   transport.py][1871] : Switch to new keys ...
2025-06-13 09:27:04,270 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 09:27:04,271 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 09:27:04,271 [DEBUG][       Thread-249991][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 09:27:04,271 [DEBUG][       Thread-249991][   transport.py][1871] : userauth is OK
2025-06-13 09:27:04,296 [ INFO][       Thread-249991][   transport.py][1871] : Authentication (password) successful!
2025-06-13 09:27:04,297 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 09:27:04,902 [DEBUG][       Thread-249991][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 09:27:04,902 [DEBUG][       Thread-249991][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 09:27:04,948 [DEBUG][       Thread-249991][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 09:27:04,948 [DEBUG][       Thread-249991][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 09:27:04,950 [DEBUG][       Thread-249991][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 09:27:04,962 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 09:27:04,962 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 09:27:04,964 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 09:27:04,965 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 09:27:04,969 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 09:27:04,970 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 09:27:04,970 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 09:27:04,970 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 09:27:04,970 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.310011 -999.00   +7.60  25.27     57   -0.20 1 1 1 1 1   887    0 8.15 18.82 ----- 25.3 25.3 40.8 32.6 11.2 -27.9 10.1 -28.4 8.8 -28.1 9.9 -26.3
2025-06-13 09:27:04,970 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 09:27:04,970 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 09:27:04,970 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.310011
2025-06-13 09:27:04,970 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 09:27:04,970 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 09:27:04,970 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 09:27:04,970 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 09:27:04,970 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 09:27:04,970 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T09:26:45', tmtdew=9.09, humidity=52.49, cloud=0.0, wind=23.96, temperature=7.79, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T07:26:24.950', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 09:27:04,971 [DEBUG][       Thread-249991][   transport.py][1871] : EOF in transport thread
2025-06-13 09:27:05,046 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 09:27:05,062 [DEBUG][       Thread-249994][   transport.py][1871] : starting thread (client mode): 0x867fc4c0
2025-06-13 09:27:05,062 [DEBUG][       Thread-249994][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 09:27:05,082 [DEBUG][       Thread-249994][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 09:27:05,082 [ INFO][       Thread-249994][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 09:27:05,090 [DEBUG][       Thread-249994][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 09:27:05,090 [DEBUG][       Thread-249994][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 09:27:05,090 [DEBUG][       Thread-249994][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 09:27:05,090 [DEBUG][       Thread-249994][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:27:05,090 [DEBUG][       Thread-249994][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:27:05,090 [DEBUG][       Thread-249994][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:27:05,090 [DEBUG][       Thread-249994][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:27:05,090 [DEBUG][       Thread-249994][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 09:27:05,090 [DEBUG][       Thread-249994][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 09:27:05,090 [DEBUG][       Thread-249994][   transport.py][1871] : client lang: <none>
2025-06-13 09:27:05,090 [DEBUG][       Thread-249994][   transport.py][1871] : server lang: <none>
2025-06-13 09:27:05,090 [DEBUG][       Thread-249994][   transport.py][1871] : kex follows: False
2025-06-13 09:27:05,090 [DEBUG][       Thread-249994][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 09:27:05,091 [DEBUG][       Thread-249994][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 09:27:05,091 [DEBUG][       Thread-249994][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 09:27:05,091 [DEBUG][       Thread-249994][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 09:27:05,091 [DEBUG][       Thread-249994][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 09:27:05,091 [DEBUG][       Thread-249994][   transport.py][1871] : Compression: none
2025-06-13 09:27:05,091 [DEBUG][       Thread-249994][   transport.py][1871] : === End of kex handshake ===
2025-06-13 09:27:05,162 [DEBUG][       Thread-249994][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 09:27:05,162 [DEBUG][       Thread-249994][   transport.py][1871] : Switch to new keys ...
2025-06-13 09:27:05,163 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 09:27:05,163 [DEBUG][       Thread-249994][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 09:27:05,164 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 09:27:05,223 [DEBUG][       Thread-249994][   transport.py][1871] : userauth is OK
2025-06-13 09:27:05,223 [DEBUG][       Thread-249994][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 09:27:05,223 [DEBUG][       Thread-249994][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 09:27:05,223 [DEBUG][       Thread-249994][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 09:27:05,223 [DEBUG][       Thread-249994][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 09:27:05,242 [ INFO][       Thread-249994][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 09:27:05,242 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 09:27:05,243 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 09:27:05,853 [DEBUG][Thread-249996 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:27:06,279 [DEBUG][       Thread-249994][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 09:27:06,279 [DEBUG][       Thread-249994][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 09:27:06,327 [DEBUG][       Thread-249994][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 09:27:06,328 [DEBUG][       Thread-249994][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 09:27:06,338 [DEBUG][       Thread-249994][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 09:27:06,346 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 09:27:06,346 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 09:27:06,355 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 09:27:06,364 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 09:27:06,364 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 09:27:06,364 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 09:27:06,372 [DEBUG][       Thread-249994][   transport.py][1871] : EOF in transport thread
2025-06-13 09:27:06,930 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:27:06,931 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:27:10,861 [DEBUG][Thread-249997 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:27:16,375 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 09:27:16,375 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 09:27:16,375 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 09:27:16,378 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 09:27:16,847 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 9, 26, 45), 9.09, 52.49, 0.0, 23.96, 7.79, 0, 0, 0, 2, 0, 0),)
2025-06-13 09:27:16,848 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 09:26:45
2025-06-13 09:27:16,925 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 09:27:16,931 [DEBUG][       Thread-249998][   transport.py][1871] : starting thread (client mode): 0x867b6b90
2025-06-13 09:27:16,931 [DEBUG][       Thread-249998][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 09:27:16,952 [DEBUG][       Thread-249998][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 09:27:16,952 [ INFO][       Thread-249998][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 09:27:16,955 [DEBUG][       Thread-249998][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 09:27:16,955 [DEBUG][       Thread-249998][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 09:27:16,955 [DEBUG][       Thread-249998][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 09:27:16,955 [DEBUG][       Thread-249998][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:27:16,955 [DEBUG][       Thread-249998][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:27:16,955 [DEBUG][       Thread-249998][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:27:16,955 [DEBUG][       Thread-249998][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:27:16,955 [DEBUG][       Thread-249998][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 09:27:16,955 [DEBUG][       Thread-249998][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 09:27:16,955 [DEBUG][       Thread-249998][   transport.py][1871] : client lang: <none>
2025-06-13 09:27:16,955 [DEBUG][       Thread-249998][   transport.py][1871] : server lang: <none>
2025-06-13 09:27:16,955 [DEBUG][       Thread-249998][   transport.py][1871] : kex follows: False
2025-06-13 09:27:16,955 [DEBUG][       Thread-249998][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 09:27:16,956 [DEBUG][       Thread-249998][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 09:27:16,956 [DEBUG][       Thread-249998][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 09:27:16,956 [DEBUG][       Thread-249998][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 09:27:16,956 [DEBUG][       Thread-249998][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 09:27:16,956 [DEBUG][       Thread-249998][   transport.py][1871] : Compression: none
2025-06-13 09:27:16,956 [DEBUG][       Thread-249998][   transport.py][1871] : === End of kex handshake ===
2025-06-13 09:27:16,972 [DEBUG][       Thread-249998][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 09:27:16,973 [DEBUG][       Thread-249998][   transport.py][1871] : Switch to new keys ...
2025-06-13 09:27:16,973 [DEBUG][       Thread-249998][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 09:27:16,973 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 09:27:16,974 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 09:27:16,975 [DEBUG][       Thread-249998][   transport.py][1871] : userauth is OK
2025-06-13 09:27:16,987 [ INFO][       Thread-249998][   transport.py][1871] : Authentication (password) successful!
2025-06-13 09:27:16,988 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 09:27:17,650 [DEBUG][       Thread-249998][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 09:27:17,651 [DEBUG][       Thread-249998][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 09:27:17,692 [DEBUG][       Thread-249998][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 09:27:17,692 [DEBUG][       Thread-249998][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 09:27:17,695 [DEBUG][       Thread-249998][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 09:27:17,706 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 09:27:17,706 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 09:27:17,707 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 09:27:17,708 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 09:27:17,710 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 09:27:17,711 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 09:27:17,711 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 09:27:17,711 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 09:27:17,711 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.310011 -999.00   +7.60  25.27     57   -0.20 1 1 1 1 1   887    0 8.15 18.82 ----- 25.3 25.3 40.8 32.6 11.2 -27.9 10.1 -28.4 8.8 -28.1 9.9 -26.3
2025-06-13 09:27:17,711 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 09:27:17,711 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 09:27:17,711 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.310011
2025-06-13 09:27:17,711 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 09:27:17,712 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 09:27:17,712 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 09:27:17,712 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 09:27:17,712 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 09:27:17,712 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T09:26:45', tmtdew=9.09, humidity=52.49, cloud=0.0, wind=23.96, temperature=7.79, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T07:26:24.950', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 09:27:17,712 [DEBUG][       Thread-249998][   transport.py][1871] : EOF in transport thread
2025-06-13 09:27:17,795 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 09:27:17,807 [DEBUG][       Thread-250001][   transport.py][1871] : starting thread (client mode): 0x863ed150
2025-06-13 09:27:17,807 [DEBUG][       Thread-250001][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 09:27:17,824 [DEBUG][       Thread-250001][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 09:27:17,824 [ INFO][       Thread-250001][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 09:27:17,831 [DEBUG][       Thread-250001][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 09:27:17,831 [DEBUG][       Thread-250001][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 09:27:17,831 [DEBUG][       Thread-250001][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 09:27:17,831 [DEBUG][       Thread-250001][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:27:17,831 [DEBUG][       Thread-250001][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:27:17,831 [DEBUG][       Thread-250001][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:27:17,831 [DEBUG][       Thread-250001][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:27:17,831 [DEBUG][       Thread-250001][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 09:27:17,831 [DEBUG][       Thread-250001][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 09:27:17,832 [DEBUG][       Thread-250001][   transport.py][1871] : client lang: <none>
2025-06-13 09:27:17,832 [DEBUG][       Thread-250001][   transport.py][1871] : server lang: <none>
2025-06-13 09:27:17,832 [DEBUG][       Thread-250001][   transport.py][1871] : kex follows: False
2025-06-13 09:27:17,832 [DEBUG][       Thread-250001][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 09:27:17,832 [DEBUG][       Thread-250001][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 09:27:17,832 [DEBUG][       Thread-250001][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 09:27:17,832 [DEBUG][       Thread-250001][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 09:27:17,832 [DEBUG][       Thread-250001][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 09:27:17,832 [DEBUG][       Thread-250001][   transport.py][1871] : Compression: none
2025-06-13 09:27:17,832 [DEBUG][       Thread-250001][   transport.py][1871] : === End of kex handshake ===
2025-06-13 09:27:17,887 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:27:17,887 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:27:17,894 [DEBUG][       Thread-250001][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 09:27:17,894 [DEBUG][       Thread-250001][   transport.py][1871] : Switch to new keys ...
2025-06-13 09:27:17,894 [DEBUG][       Thread-250001][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 09:27:17,895 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 09:27:17,895 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 09:27:17,957 [DEBUG][       Thread-250001][   transport.py][1871] : userauth is OK
2025-06-13 09:27:17,957 [DEBUG][       Thread-250001][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 09:27:17,957 [DEBUG][       Thread-250001][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 09:27:17,957 [DEBUG][       Thread-250001][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 09:27:17,957 [DEBUG][       Thread-250001][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 09:27:17,972 [ INFO][       Thread-250001][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 09:27:17,972 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 09:27:17,972 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 09:27:18,983 [DEBUG][       Thread-250001][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 09:27:18,983 [DEBUG][       Thread-250001][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 09:27:19,031 [DEBUG][       Thread-250001][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 09:27:19,031 [DEBUG][       Thread-250001][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 09:27:19,042 [DEBUG][       Thread-250001][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 09:27:19,050 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 09:27:19,050 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 09:27:19,058 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 09:27:19,066 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 09:27:19,066 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 09:27:19,067 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 09:27:19,080 [DEBUG][       Thread-250001][   transport.py][1871] : EOF in transport thread
2025-06-13 09:27:19,879 [DEBUG][Thread-250003 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:27:28,898 [DEBUG][Thread-250004 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:27:29,077 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 09:27:29,077 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 09:27:29,077 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 09:27:29,080 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 09:27:29,551 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 9, 27, 16), 9.09, 52.49, 0.0, 24.63, 7.83, 0, 0, 0, 2, 0, 0),)
2025-06-13 09:27:29,551 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 09:27:16
2025-06-13 09:27:29,628 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 09:27:29,631 [DEBUG][       Thread-250005][   transport.py][1871] : starting thread (client mode): 0x86368940
2025-06-13 09:27:29,632 [DEBUG][       Thread-250005][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 09:27:29,652 [DEBUG][       Thread-250005][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 09:27:29,652 [ INFO][       Thread-250005][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 09:27:29,656 [DEBUG][       Thread-250005][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 09:27:29,656 [DEBUG][       Thread-250005][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 09:27:29,656 [DEBUG][       Thread-250005][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 09:27:29,656 [DEBUG][       Thread-250005][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:27:29,656 [DEBUG][       Thread-250005][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:27:29,656 [DEBUG][       Thread-250005][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:27:29,656 [DEBUG][       Thread-250005][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:27:29,656 [DEBUG][       Thread-250005][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 09:27:29,656 [DEBUG][       Thread-250005][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 09:27:29,656 [DEBUG][       Thread-250005][   transport.py][1871] : client lang: <none>
2025-06-13 09:27:29,656 [DEBUG][       Thread-250005][   transport.py][1871] : server lang: <none>
2025-06-13 09:27:29,656 [DEBUG][       Thread-250005][   transport.py][1871] : kex follows: False
2025-06-13 09:27:29,656 [DEBUG][       Thread-250005][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 09:27:29,656 [DEBUG][       Thread-250005][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 09:27:29,656 [DEBUG][       Thread-250005][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 09:27:29,656 [DEBUG][       Thread-250005][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 09:27:29,656 [DEBUG][       Thread-250005][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 09:27:29,656 [DEBUG][       Thread-250005][   transport.py][1871] : Compression: none
2025-06-13 09:27:29,656 [DEBUG][       Thread-250005][   transport.py][1871] : === End of kex handshake ===
2025-06-13 09:27:29,674 [DEBUG][       Thread-250005][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 09:27:29,675 [DEBUG][       Thread-250005][   transport.py][1871] : Switch to new keys ...
2025-06-13 09:27:29,675 [DEBUG][       Thread-250005][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 09:27:29,676 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 09:27:29,676 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 09:27:29,677 [DEBUG][       Thread-250005][   transport.py][1871] : userauth is OK
2025-06-13 09:27:29,702 [ INFO][       Thread-250005][   transport.py][1871] : Authentication (password) successful!
2025-06-13 09:27:29,703 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 09:27:30,287 [DEBUG][       Thread-250005][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 09:27:30,287 [DEBUG][       Thread-250005][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 09:27:30,329 [DEBUG][       Thread-250005][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 09:27:30,329 [DEBUG][       Thread-250005][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 09:27:30,332 [DEBUG][       Thread-250005][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 09:27:30,345 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 09:27:30,346 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 09:27:30,347 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 09:27:30,349 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 09:27:30,353 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 09:27:30,355 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 09:27:30,355 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 09:27:30,355 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 09:27:30,356 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.310358 -999.00   +7.60  20.53     57   -0.20 1 1 1 1 1   887    0 8.25 18.86 ----- 20.5 20.5 47.6 30.9 11.2 -28.0 10.1 -28.5 8.8 -27.8 10.0 -26.1
2025-06-13 09:27:30,356 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 09:27:30,356 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 09:27:30,356 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.310358
2025-06-13 09:27:30,356 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 09:27:30,357 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 09:27:30,357 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 09:27:30,357 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 09:27:30,357 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 09:27:30,357 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T09:27:16', tmtdew=9.09, humidity=52.49, cloud=0.0, wind=24.63, temperature=7.83, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T07:26:54.931', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 09:27:30,358 [DEBUG][       Thread-250005][   transport.py][1871] : EOF in transport thread
2025-06-13 09:27:30,438 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 09:27:30,448 [DEBUG][       Thread-250008][   transport.py][1871] : starting thread (client mode): 0x863a6920
2025-06-13 09:27:30,448 [DEBUG][       Thread-250008][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 09:27:30,463 [DEBUG][       Thread-250008][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 09:27:30,463 [ INFO][       Thread-250008][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 09:27:30,472 [DEBUG][       Thread-250008][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 09:27:30,472 [DEBUG][       Thread-250008][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 09:27:30,472 [DEBUG][       Thread-250008][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 09:27:30,472 [DEBUG][       Thread-250008][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:27:30,472 [DEBUG][       Thread-250008][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:27:30,472 [DEBUG][       Thread-250008][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:27:30,472 [DEBUG][       Thread-250008][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:27:30,472 [DEBUG][       Thread-250008][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 09:27:30,472 [DEBUG][       Thread-250008][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 09:27:30,472 [DEBUG][       Thread-250008][   transport.py][1871] : client lang: <none>
2025-06-13 09:27:30,472 [DEBUG][       Thread-250008][   transport.py][1871] : server lang: <none>
2025-06-13 09:27:30,472 [DEBUG][       Thread-250008][   transport.py][1871] : kex follows: False
2025-06-13 09:27:30,472 [DEBUG][       Thread-250008][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 09:27:30,472 [DEBUG][       Thread-250008][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 09:27:30,472 [DEBUG][       Thread-250008][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 09:27:30,472 [DEBUG][       Thread-250008][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 09:27:30,472 [DEBUG][       Thread-250008][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 09:27:30,472 [DEBUG][       Thread-250008][   transport.py][1871] : Compression: none
2025-06-13 09:27:30,472 [DEBUG][       Thread-250008][   transport.py][1871] : === End of kex handshake ===
2025-06-13 09:27:30,535 [DEBUG][       Thread-250008][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 09:27:30,536 [DEBUG][       Thread-250008][   transport.py][1871] : Switch to new keys ...
2025-06-13 09:27:30,536 [DEBUG][       Thread-250008][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 09:27:30,537 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 09:27:30,537 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 09:27:30,604 [DEBUG][       Thread-250008][   transport.py][1871] : userauth is OK
2025-06-13 09:27:30,604 [DEBUG][       Thread-250008][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 09:27:30,604 [DEBUG][       Thread-250008][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 09:27:30,604 [DEBUG][       Thread-250008][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 09:27:30,604 [DEBUG][       Thread-250008][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 09:27:30,624 [ INFO][       Thread-250008][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 09:27:30,625 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 09:27:30,625 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 09:27:31,687 [DEBUG][       Thread-250008][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 09:27:31,688 [DEBUG][       Thread-250008][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 09:27:31,735 [DEBUG][       Thread-250008][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 09:27:31,736 [DEBUG][       Thread-250008][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 09:27:31,745 [DEBUG][       Thread-250008][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 09:27:31,756 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 09:27:31,756 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 09:27:31,764 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 09:27:31,777 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 09:27:31,777 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 09:27:31,777 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 09:27:31,789 [DEBUG][       Thread-250008][   transport.py][1871] : EOF in transport thread
2025-06-13 09:27:37,917 [DEBUG][Thread-250010 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:27:41,788 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 09:27:41,788 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 09:27:41,788 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 09:27:41,791 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 09:27:42,251 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 9, 27, 16), 9.09, 52.49, 0.0, 24.63, 7.83, 0, 0, 0, 2, 0, 0),)
2025-06-13 09:27:42,251 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 09:27:16
2025-06-13 09:27:42,329 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 09:27:42,335 [DEBUG][       Thread-250011][   transport.py][1871] : starting thread (client mode): 0x867b5c30
2025-06-13 09:27:42,335 [DEBUG][       Thread-250011][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 09:27:42,347 [DEBUG][       Thread-250011][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 09:27:42,347 [ INFO][       Thread-250011][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 09:27:42,351 [DEBUG][       Thread-250011][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 09:27:42,351 [DEBUG][       Thread-250011][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 09:27:42,351 [DEBUG][       Thread-250011][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 09:27:42,351 [DEBUG][       Thread-250011][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:27:42,351 [DEBUG][       Thread-250011][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:27:42,351 [DEBUG][       Thread-250011][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:27:42,351 [DEBUG][       Thread-250011][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:27:42,351 [DEBUG][       Thread-250011][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 09:27:42,351 [DEBUG][       Thread-250011][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 09:27:42,351 [DEBUG][       Thread-250011][   transport.py][1871] : client lang: <none>
2025-06-13 09:27:42,351 [DEBUG][       Thread-250011][   transport.py][1871] : server lang: <none>
2025-06-13 09:27:42,351 [DEBUG][       Thread-250011][   transport.py][1871] : kex follows: False
2025-06-13 09:27:42,351 [DEBUG][       Thread-250011][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 09:27:42,351 [DEBUG][       Thread-250011][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 09:27:42,351 [DEBUG][       Thread-250011][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 09:27:42,351 [DEBUG][       Thread-250011][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 09:27:42,351 [DEBUG][       Thread-250011][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 09:27:42,351 [DEBUG][       Thread-250011][   transport.py][1871] : Compression: none
2025-06-13 09:27:42,351 [DEBUG][       Thread-250011][   transport.py][1871] : === End of kex handshake ===
2025-06-13 09:27:42,369 [DEBUG][       Thread-250011][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 09:27:42,370 [DEBUG][       Thread-250011][   transport.py][1871] : Switch to new keys ...
2025-06-13 09:27:42,370 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 09:27:42,371 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 09:27:42,371 [DEBUG][       Thread-250011][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 09:27:42,372 [DEBUG][       Thread-250011][   transport.py][1871] : userauth is OK
2025-06-13 09:27:42,396 [ INFO][       Thread-250011][   transport.py][1871] : Authentication (password) successful!
2025-06-13 09:27:42,397 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 09:27:43,058 [DEBUG][       Thread-250011][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 09:27:43,058 [DEBUG][       Thread-250011][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 09:27:43,101 [DEBUG][       Thread-250011][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 09:27:43,101 [DEBUG][       Thread-250011][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 09:27:43,104 [DEBUG][       Thread-250011][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 09:27:43,115 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 09:27:43,116 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 09:27:43,117 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 09:27:43,119 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 09:27:43,124 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 09:27:43,126 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 09:27:43,126 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 09:27:43,127 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 09:27:43,127 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.310358 -999.00   +7.60  20.53     57   -0.20 1 1 1 1 1   887    0 8.25 18.86 ----- 20.5 20.5 47.6 30.9 11.2 -28.0 10.1 -28.5 8.8 -27.8 10.0 -26.1
2025-06-13 09:27:43,127 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 09:27:43,127 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 09:27:43,127 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.310358
2025-06-13 09:27:43,127 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 09:27:43,128 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 09:27:43,128 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 09:27:43,128 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 09:27:43,128 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 09:27:43,128 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T09:27:16', tmtdew=9.09, humidity=52.49, cloud=0.0, wind=24.63, temperature=7.83, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T07:26:54.931', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 09:27:43,129 [DEBUG][       Thread-250011][   transport.py][1871] : EOF in transport thread
2025-06-13 09:27:43,214 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 09:27:43,227 [DEBUG][       Thread-250014][   transport.py][1871] : starting thread (client mode): 0x863ef010
2025-06-13 09:27:43,227 [DEBUG][       Thread-250014][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 09:27:43,244 [DEBUG][       Thread-250014][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 09:27:43,244 [ INFO][       Thread-250014][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 09:27:43,251 [DEBUG][       Thread-250014][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 09:27:43,251 [DEBUG][       Thread-250014][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 09:27:43,251 [DEBUG][       Thread-250014][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 09:27:43,252 [DEBUG][       Thread-250014][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:27:43,252 [DEBUG][       Thread-250014][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:27:43,252 [DEBUG][       Thread-250014][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:27:43,252 [DEBUG][       Thread-250014][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:27:43,252 [DEBUG][       Thread-250014][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 09:27:43,252 [DEBUG][       Thread-250014][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 09:27:43,252 [DEBUG][       Thread-250014][   transport.py][1871] : client lang: <none>
2025-06-13 09:27:43,252 [DEBUG][       Thread-250014][   transport.py][1871] : server lang: <none>
2025-06-13 09:27:43,252 [DEBUG][       Thread-250014][   transport.py][1871] : kex follows: False
2025-06-13 09:27:43,252 [DEBUG][       Thread-250014][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 09:27:43,252 [DEBUG][       Thread-250014][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 09:27:43,252 [DEBUG][       Thread-250014][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 09:27:43,252 [DEBUG][       Thread-250014][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 09:27:43,252 [DEBUG][       Thread-250014][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 09:27:43,252 [DEBUG][       Thread-250014][   transport.py][1871] : Compression: none
2025-06-13 09:27:43,252 [DEBUG][       Thread-250014][   transport.py][1871] : === End of kex handshake ===
2025-06-13 09:27:43,310 [DEBUG][       Thread-250014][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 09:27:43,311 [DEBUG][       Thread-250014][   transport.py][1871] : Switch to new keys ...
2025-06-13 09:27:43,311 [DEBUG][       Thread-250014][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 09:27:43,311 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 09:27:43,312 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 09:27:43,376 [DEBUG][       Thread-250014][   transport.py][1871] : userauth is OK
2025-06-13 09:27:43,376 [DEBUG][       Thread-250014][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 09:27:43,376 [DEBUG][       Thread-250014][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 09:27:43,376 [DEBUG][       Thread-250014][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 09:27:43,376 [DEBUG][       Thread-250014][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 09:27:43,400 [ INFO][       Thread-250014][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 09:27:43,401 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 09:27:43,401 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 09:27:44,411 [DEBUG][       Thread-250014][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 09:27:44,411 [DEBUG][       Thread-250014][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 09:27:44,461 [DEBUG][       Thread-250014][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 09:27:44,461 [DEBUG][       Thread-250014][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 09:27:44,470 [DEBUG][       Thread-250014][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 09:27:44,479 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 09:27:44,479 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 09:27:44,488 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 09:27:44,500 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 09:27:44,500 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 09:27:44,500 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 09:27:44,508 [DEBUG][       Thread-250014][   transport.py][1871] : EOF in transport thread
2025-06-13 09:27:46,945 [DEBUG][Thread-250016 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:27:54,511 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 09:27:54,511 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 09:27:54,511 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 09:27:54,513 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 09:27:54,992 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 9, 27, 48), 9.08, 52.55, 0.0, 23.1, 7.87, 0, 0, 0, 2, 0, 0),)
2025-06-13 09:27:54,992 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 09:27:48
2025-06-13 09:27:55,071 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 09:27:55,075 [DEBUG][       Thread-250017][   transport.py][1871] : starting thread (client mode): 0x863a46a0
2025-06-13 09:27:55,075 [DEBUG][       Thread-250017][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 09:27:55,097 [DEBUG][       Thread-250017][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 09:27:55,097 [ INFO][       Thread-250017][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 09:27:55,101 [DEBUG][       Thread-250017][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 09:27:55,101 [DEBUG][       Thread-250017][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 09:27:55,101 [DEBUG][       Thread-250017][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 09:27:55,101 [DEBUG][       Thread-250017][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:27:55,101 [DEBUG][       Thread-250017][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:27:55,101 [DEBUG][       Thread-250017][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:27:55,101 [DEBUG][       Thread-250017][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:27:55,101 [DEBUG][       Thread-250017][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 09:27:55,101 [DEBUG][       Thread-250017][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 09:27:55,101 [DEBUG][       Thread-250017][   transport.py][1871] : client lang: <none>
2025-06-13 09:27:55,101 [DEBUG][       Thread-250017][   transport.py][1871] : server lang: <none>
2025-06-13 09:27:55,101 [DEBUG][       Thread-250017][   transport.py][1871] : kex follows: False
2025-06-13 09:27:55,101 [DEBUG][       Thread-250017][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 09:27:55,101 [DEBUG][       Thread-250017][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 09:27:55,101 [DEBUG][       Thread-250017][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 09:27:55,101 [DEBUG][       Thread-250017][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 09:27:55,102 [DEBUG][       Thread-250017][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 09:27:55,102 [DEBUG][       Thread-250017][   transport.py][1871] : Compression: none
2025-06-13 09:27:55,102 [DEBUG][       Thread-250017][   transport.py][1871] : === End of kex handshake ===
2025-06-13 09:27:55,120 [DEBUG][       Thread-250017][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 09:27:55,121 [DEBUG][       Thread-250017][   transport.py][1871] : Switch to new keys ...
2025-06-13 09:27:55,121 [DEBUG][       Thread-250017][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 09:27:55,121 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 09:27:55,122 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 09:27:55,123 [DEBUG][       Thread-250017][   transport.py][1871] : userauth is OK
2025-06-13 09:27:55,147 [ INFO][       Thread-250017][   transport.py][1871] : Authentication (password) successful!
2025-06-13 09:27:55,147 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 09:27:55,807 [DEBUG][       Thread-250017][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 09:27:55,808 [DEBUG][       Thread-250017][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 09:27:55,849 [DEBUG][       Thread-250017][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 09:27:55,849 [DEBUG][       Thread-250017][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 09:27:55,852 [DEBUG][       Thread-250017][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 09:27:55,864 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 09:27:55,864 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 09:27:55,865 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 09:27:55,866 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 09:27:55,870 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 09:27:55,871 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 09:27:55,871 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 09:27:55,871 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 09:27:55,871 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.310358 -999.00   +7.60  20.53     57   -0.20 1 1 1 1 1   887    0 8.25 18.86 ----- 20.5 20.5 47.6 30.9 11.2 -28.0 10.1 -28.5 8.8 -27.8 10.0 -26.1
2025-06-13 09:27:55,871 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 09:27:55,871 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 09:27:55,871 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.310358
2025-06-13 09:27:55,871 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 09:27:55,872 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 09:27:55,872 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 09:27:55,872 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 09:27:55,872 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 09:27:55,872 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T09:27:48', tmtdew=9.08, humidity=52.55, cloud=0.0, wind=23.1, temperature=7.87, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T07:26:54.931', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 09:27:55,872 [DEBUG][       Thread-250017][   transport.py][1871] : EOF in transport thread
2025-06-13 09:27:55,944 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 09:27:55,960 [DEBUG][Thread-250020 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:28:03,250 [DEBUG][Thread-250021 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:28:04,985 [DEBUG][Thread-250022 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:28:06,968 [DEBUG][Thread-250023 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:28:08,015 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:28:08,016 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:28:14,004 [DEBUG][Thread-250024 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:28:18,026 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:28:18,027 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:28:23,022 [DEBUG][Thread-250025 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:28:32,038 [DEBUG][Thread-250026 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:28:41,056 [DEBUG][Thread-250027 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:28:50,075 [DEBUG][Thread-250028 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:28:59,093 [DEBUG][Thread-250029 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:29:03,316 [DEBUG][Thread-250030 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:29:08,092 [DEBUG][Thread-250031 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:29:08,109 [DEBUG][Thread-250032 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:29:09,128 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:29:09,129 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:29:17,126 [DEBUG][Thread-250033 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:29:18,164 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:29:18,165 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:29:26,144 [DEBUG][Thread-250034 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:29:35,163 [DEBUG][Thread-250035 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:29:44,182 [DEBUG][Thread-250036 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:29:53,199 [DEBUG][Thread-250037 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:30:02,216 [DEBUG][Thread-250038 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:30:03,374 [DEBUG][Thread-250039 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:30:05,204 [WARNING][ poll_weather_worker][      driver.py][ 286] : Unable to open ssh connection for writing weather state to io.saao.ac.za: [Errno 110] Connection timed out
2025-06-13 09:30:09,193 [DEBUG][Thread-250040 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:30:10,274 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:30:10,275 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:30:11,234 [DEBUG][Thread-250041 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:30:15,212 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 09:30:15,212 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 09:30:15,212 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 09:30:15,215 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 09:30:15,700 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 9, 29, 55), 9.11, 52.55, 0.0, 20.22, 7.81, 0, 0, 0, 2, 0, 0),)
2025-06-13 09:30:15,700 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 09:29:55
2025-06-13 09:30:15,782 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 09:30:15,787 [DEBUG][       Thread-250042][   transport.py][1871] : starting thread (client mode): 0x863bdd80
2025-06-13 09:30:15,788 [DEBUG][       Thread-250042][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 09:30:15,807 [DEBUG][       Thread-250042][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 09:30:15,807 [ INFO][       Thread-250042][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 09:30:15,812 [DEBUG][       Thread-250042][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 09:30:15,812 [DEBUG][       Thread-250042][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 09:30:15,812 [DEBUG][       Thread-250042][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 09:30:15,812 [DEBUG][       Thread-250042][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:30:15,812 [DEBUG][       Thread-250042][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:30:15,812 [DEBUG][       Thread-250042][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:30:15,812 [DEBUG][       Thread-250042][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:30:15,812 [DEBUG][       Thread-250042][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 09:30:15,812 [DEBUG][       Thread-250042][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 09:30:15,812 [DEBUG][       Thread-250042][   transport.py][1871] : client lang: <none>
2025-06-13 09:30:15,812 [DEBUG][       Thread-250042][   transport.py][1871] : server lang: <none>
2025-06-13 09:30:15,812 [DEBUG][       Thread-250042][   transport.py][1871] : kex follows: False
2025-06-13 09:30:15,812 [DEBUG][       Thread-250042][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 09:30:15,812 [DEBUG][       Thread-250042][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 09:30:15,812 [DEBUG][       Thread-250042][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 09:30:15,812 [DEBUG][       Thread-250042][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 09:30:15,812 [DEBUG][       Thread-250042][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 09:30:15,812 [DEBUG][       Thread-250042][   transport.py][1871] : Compression: none
2025-06-13 09:30:15,812 [DEBUG][       Thread-250042][   transport.py][1871] : === End of kex handshake ===
2025-06-13 09:30:15,829 [DEBUG][       Thread-250042][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 09:30:15,829 [DEBUG][       Thread-250042][   transport.py][1871] : Switch to new keys ...
2025-06-13 09:30:15,830 [DEBUG][       Thread-250042][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 09:30:15,830 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 09:30:15,830 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 09:30:15,831 [DEBUG][       Thread-250042][   transport.py][1871] : userauth is OK
2025-06-13 09:30:15,856 [ INFO][       Thread-250042][   transport.py][1871] : Authentication (password) successful!
2025-06-13 09:30:15,856 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 09:30:18,300 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:30:18,301 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:30:20,252 [DEBUG][Thread-250044 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:30:20,411 [DEBUG][       Thread-250042][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 09:30:20,412 [DEBUG][       Thread-250042][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 09:30:20,452 [DEBUG][       Thread-250042][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 09:30:20,453 [DEBUG][       Thread-250042][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 09:30:20,455 [DEBUG][       Thread-250042][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 09:30:20,538 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 09:30:20,538 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 09:30:20,540 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 09:30:20,542 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 09:30:20,546 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 09:30:20,547 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 09:30:20,547 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 09:30:20,547 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 09:30:20,547 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.312441 -999.00   +7.60  24.17     57   -0.10 1 1 1 1 1   887    0 8.20 16.75 ----- 24.2 24.2 48.6 27.6 11.3 -27.7 10.1 -28.2 8.9 -27.9 10.0 -26.3
2025-06-13 09:30:20,547 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 09:30:20,547 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 09:30:20,547 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.312441
2025-06-13 09:30:20,547 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 09:30:20,548 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 09:30:20,548 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 09:30:20,548 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 09:30:20,548 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 09:30:20,548 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T09:29:55', tmtdew=9.11, humidity=52.55, cloud=0.0, wind=20.22, temperature=7.81, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T07:29:54.902', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 09:30:20,549 [DEBUG][       Thread-250042][   transport.py][1871] : EOF in transport thread
2025-06-13 09:30:20,634 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 09:30:20,647 [DEBUG][       Thread-250046][   transport.py][1871] : starting thread (client mode): 0x867fcdf0
2025-06-13 09:30:20,647 [DEBUG][       Thread-250046][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 09:30:20,661 [DEBUG][       Thread-250046][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 09:30:20,661 [ INFO][       Thread-250046][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 09:30:20,669 [DEBUG][       Thread-250046][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 09:30:20,670 [DEBUG][       Thread-250046][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 09:30:20,670 [DEBUG][       Thread-250046][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 09:30:20,670 [DEBUG][       Thread-250046][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:30:20,670 [DEBUG][       Thread-250046][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:30:20,670 [DEBUG][       Thread-250046][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:30:20,670 [DEBUG][       Thread-250046][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:30:20,670 [DEBUG][       Thread-250046][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 09:30:20,670 [DEBUG][       Thread-250046][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 09:30:20,670 [DEBUG][       Thread-250046][   transport.py][1871] : client lang: <none>
2025-06-13 09:30:20,670 [DEBUG][       Thread-250046][   transport.py][1871] : server lang: <none>
2025-06-13 09:30:20,670 [DEBUG][       Thread-250046][   transport.py][1871] : kex follows: False
2025-06-13 09:30:20,670 [DEBUG][       Thread-250046][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 09:30:20,670 [DEBUG][       Thread-250046][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 09:30:20,670 [DEBUG][       Thread-250046][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 09:30:20,670 [DEBUG][       Thread-250046][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 09:30:20,670 [DEBUG][       Thread-250046][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 09:30:20,671 [DEBUG][       Thread-250046][   transport.py][1871] : Compression: none
2025-06-13 09:30:20,671 [DEBUG][       Thread-250046][   transport.py][1871] : === End of kex handshake ===
2025-06-13 09:30:20,726 [DEBUG][       Thread-250046][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 09:30:20,727 [DEBUG][       Thread-250046][   transport.py][1871] : Switch to new keys ...
2025-06-13 09:30:20,727 [DEBUG][       Thread-250046][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 09:30:20,727 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 09:30:20,728 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 09:30:20,783 [DEBUG][       Thread-250046][   transport.py][1871] : userauth is OK
2025-06-13 09:30:20,783 [DEBUG][       Thread-250046][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 09:30:20,783 [DEBUG][       Thread-250046][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 09:30:20,783 [DEBUG][       Thread-250046][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 09:30:20,783 [DEBUG][       Thread-250046][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 09:30:20,802 [ INFO][       Thread-250046][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 09:30:20,802 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 09:30:20,803 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 09:30:21,821 [DEBUG][       Thread-250046][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 09:30:21,821 [DEBUG][       Thread-250046][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 09:30:21,872 [DEBUG][       Thread-250046][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 09:30:21,873 [DEBUG][       Thread-250046][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 09:30:21,881 [DEBUG][       Thread-250046][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 09:30:21,891 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 09:30:21,891 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 09:30:21,899 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 09:30:21,910 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 09:30:21,910 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 09:30:21,910 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 09:30:21,918 [DEBUG][       Thread-250046][   transport.py][1871] : EOF in transport thread
2025-06-13 09:30:29,267 [DEBUG][Thread-250048 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:30:31,920 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 09:30:31,921 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 09:30:31,921 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 09:30:31,923 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 09:30:32,418 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 9, 30, 27), 9.14, 52.55, 0.0, 20.68, 7.89, 0, 0, 0, 2, 0, 0),)
2025-06-13 09:30:32,418 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 09:30:27
2025-06-13 09:30:32,500 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 09:30:32,503 [DEBUG][       Thread-250049][   transport.py][1871] : starting thread (client mode): 0x867fc430
2025-06-13 09:30:32,503 [DEBUG][       Thread-250049][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 09:30:32,526 [DEBUG][       Thread-250049][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 09:30:32,526 [ INFO][       Thread-250049][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 09:30:32,529 [DEBUG][       Thread-250049][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 09:30:32,529 [DEBUG][       Thread-250049][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 09:30:32,529 [DEBUG][       Thread-250049][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 09:30:32,529 [DEBUG][       Thread-250049][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:30:32,529 [DEBUG][       Thread-250049][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:30:32,529 [DEBUG][       Thread-250049][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:30:32,529 [DEBUG][       Thread-250049][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:30:32,529 [DEBUG][       Thread-250049][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 09:30:32,529 [DEBUG][       Thread-250049][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 09:30:32,529 [DEBUG][       Thread-250049][   transport.py][1871] : client lang: <none>
2025-06-13 09:30:32,529 [DEBUG][       Thread-250049][   transport.py][1871] : server lang: <none>
2025-06-13 09:30:32,529 [DEBUG][       Thread-250049][   transport.py][1871] : kex follows: False
2025-06-13 09:30:32,529 [DEBUG][       Thread-250049][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 09:30:32,529 [DEBUG][       Thread-250049][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 09:30:32,529 [DEBUG][       Thread-250049][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 09:30:32,529 [DEBUG][       Thread-250049][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 09:30:32,529 [DEBUG][       Thread-250049][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 09:30:32,529 [DEBUG][       Thread-250049][   transport.py][1871] : Compression: none
2025-06-13 09:30:32,529 [DEBUG][       Thread-250049][   transport.py][1871] : === End of kex handshake ===
2025-06-13 09:30:32,541 [DEBUG][       Thread-250049][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 09:30:32,542 [DEBUG][       Thread-250049][   transport.py][1871] : Switch to new keys ...
2025-06-13 09:30:32,542 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 09:30:32,542 [DEBUG][       Thread-250049][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 09:30:32,542 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 09:30:32,543 [DEBUG][       Thread-250049][   transport.py][1871] : userauth is OK
2025-06-13 09:30:32,567 [ INFO][       Thread-250049][   transport.py][1871] : Authentication (password) successful!
2025-06-13 09:30:32,568 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 09:30:33,203 [DEBUG][       Thread-250049][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 09:30:33,203 [DEBUG][       Thread-250049][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 09:30:33,245 [DEBUG][       Thread-250049][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 09:30:33,245 [DEBUG][       Thread-250049][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 09:30:33,248 [DEBUG][       Thread-250049][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 09:30:33,257 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 09:30:33,257 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 09:30:33,259 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 09:30:33,260 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 09:30:33,264 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 09:30:33,266 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 09:30:33,266 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 09:30:33,267 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 09:30:33,267 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.312441 -999.00   +7.60  24.17     57   -0.10 1 1 1 1 1   887    0 8.20 16.75 ----- 24.2 24.2 48.6 27.6 11.3 -27.7 10.1 -28.2 8.9 -27.9 10.0 -26.3
2025-06-13 09:30:33,267 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 09:30:33,267 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 09:30:33,267 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.312441
2025-06-13 09:30:33,267 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 09:30:33,268 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 09:30:33,268 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 09:30:33,268 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 09:30:33,268 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 09:30:33,268 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T09:30:27', tmtdew=9.14, humidity=52.55, cloud=0.0, wind=20.68, temperature=7.89, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T07:29:54.902', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 09:30:33,269 [DEBUG][       Thread-250049][   transport.py][1871] : EOF in transport thread
2025-06-13 09:30:33,352 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 09:30:33,361 [DEBUG][       Thread-250052][   transport.py][1871] : starting thread (client mode): 0x863cae60
2025-06-13 09:30:33,362 [DEBUG][       Thread-250052][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 09:30:33,376 [DEBUG][       Thread-250052][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 09:30:33,376 [ INFO][       Thread-250052][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 09:30:33,384 [DEBUG][       Thread-250052][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 09:30:33,384 [DEBUG][       Thread-250052][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 09:30:33,384 [DEBUG][       Thread-250052][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 09:30:33,384 [DEBUG][       Thread-250052][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:30:33,384 [DEBUG][       Thread-250052][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:30:33,384 [DEBUG][       Thread-250052][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:30:33,384 [DEBUG][       Thread-250052][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:30:33,384 [DEBUG][       Thread-250052][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 09:30:33,384 [DEBUG][       Thread-250052][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 09:30:33,384 [DEBUG][       Thread-250052][   transport.py][1871] : client lang: <none>
2025-06-13 09:30:33,384 [DEBUG][       Thread-250052][   transport.py][1871] : server lang: <none>
2025-06-13 09:30:33,384 [DEBUG][       Thread-250052][   transport.py][1871] : kex follows: False
2025-06-13 09:30:33,384 [DEBUG][       Thread-250052][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 09:30:33,384 [DEBUG][       Thread-250052][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 09:30:33,384 [DEBUG][       Thread-250052][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 09:30:33,384 [DEBUG][       Thread-250052][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 09:30:33,384 [DEBUG][       Thread-250052][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 09:30:33,384 [DEBUG][       Thread-250052][   transport.py][1871] : Compression: none
2025-06-13 09:30:33,384 [DEBUG][       Thread-250052][   transport.py][1871] : === End of kex handshake ===
2025-06-13 09:30:33,445 [DEBUG][       Thread-250052][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 09:30:33,445 [DEBUG][       Thread-250052][   transport.py][1871] : Switch to new keys ...
2025-06-13 09:30:33,445 [DEBUG][       Thread-250052][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 09:30:33,446 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 09:30:33,446 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 09:30:33,503 [DEBUG][       Thread-250052][   transport.py][1871] : userauth is OK
2025-06-13 09:30:33,503 [DEBUG][       Thread-250052][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 09:30:33,503 [DEBUG][       Thread-250052][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 09:30:33,504 [DEBUG][       Thread-250052][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 09:30:33,504 [DEBUG][       Thread-250052][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 09:30:33,529 [ INFO][       Thread-250052][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 09:30:33,529 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 09:30:33,529 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 09:30:34,531 [DEBUG][       Thread-250052][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 09:30:34,532 [DEBUG][       Thread-250052][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 09:30:34,580 [DEBUG][       Thread-250052][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 09:30:34,580 [DEBUG][       Thread-250052][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 09:30:34,589 [DEBUG][       Thread-250052][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 09:30:34,605 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 09:30:34,606 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 09:30:34,614 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 09:30:34,623 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 09:30:34,623 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 09:30:34,624 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 09:30:34,631 [DEBUG][       Thread-250052][   transport.py][1871] : EOF in transport thread
2025-06-13 09:30:38,299 [DEBUG][Thread-250054 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:30:44,634 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 09:30:44,635 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 09:30:44,635 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 09:30:44,637 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 09:30:45,122 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 9, 30, 27), 9.14, 52.55, 0.0, 20.68, 7.89, 0, 0, 0, 2, 0, 0),)
2025-06-13 09:30:45,122 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 09:30:27
2025-06-13 09:30:45,202 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 09:30:45,208 [DEBUG][       Thread-250055][   transport.py][1871] : starting thread (client mode): 0x863ed1e0
2025-06-13 09:30:45,208 [DEBUG][       Thread-250055][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 09:30:45,228 [DEBUG][       Thread-250055][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 09:30:45,228 [ INFO][       Thread-250055][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 09:30:45,230 [DEBUG][       Thread-250055][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 09:30:45,230 [DEBUG][       Thread-250055][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 09:30:45,230 [DEBUG][       Thread-250055][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 09:30:45,230 [DEBUG][       Thread-250055][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:30:45,230 [DEBUG][       Thread-250055][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:30:45,230 [DEBUG][       Thread-250055][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:30:45,230 [DEBUG][       Thread-250055][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:30:45,230 [DEBUG][       Thread-250055][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 09:30:45,230 [DEBUG][       Thread-250055][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 09:30:45,230 [DEBUG][       Thread-250055][   transport.py][1871] : client lang: <none>
2025-06-13 09:30:45,230 [DEBUG][       Thread-250055][   transport.py][1871] : server lang: <none>
2025-06-13 09:30:45,230 [DEBUG][       Thread-250055][   transport.py][1871] : kex follows: False
2025-06-13 09:30:45,230 [DEBUG][       Thread-250055][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 09:30:45,230 [DEBUG][       Thread-250055][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 09:30:45,230 [DEBUG][       Thread-250055][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 09:30:45,230 [DEBUG][       Thread-250055][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 09:30:45,230 [DEBUG][       Thread-250055][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 09:30:45,230 [DEBUG][       Thread-250055][   transport.py][1871] : Compression: none
2025-06-13 09:30:45,230 [DEBUG][       Thread-250055][   transport.py][1871] : === End of kex handshake ===
2025-06-13 09:30:45,247 [DEBUG][       Thread-250055][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 09:30:45,248 [DEBUG][       Thread-250055][   transport.py][1871] : Switch to new keys ...
2025-06-13 09:30:45,248 [DEBUG][       Thread-250055][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 09:30:45,249 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 09:30:45,249 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 09:30:45,250 [DEBUG][       Thread-250055][   transport.py][1871] : userauth is OK
2025-06-13 09:30:45,263 [ INFO][       Thread-250055][   transport.py][1871] : Authentication (password) successful!
2025-06-13 09:30:45,263 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 09:30:45,877 [DEBUG][       Thread-250055][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 09:30:45,877 [DEBUG][       Thread-250055][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 09:30:45,921 [DEBUG][       Thread-250055][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 09:30:45,921 [DEBUG][       Thread-250055][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 09:30:45,923 [DEBUG][       Thread-250055][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 09:30:45,936 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 09:30:45,937 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 09:30:45,938 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 09:30:45,939 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 09:30:45,943 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 09:30:45,945 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 09:30:45,945 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 09:30:45,946 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 09:30:45,946 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.312441 -999.00   +7.60  24.17     57   -0.10 1 1 1 1 1   887    0 8.20 16.75 ----- 24.2 24.2 48.6 27.6 11.3 -27.7 10.1 -28.2 8.9 -27.9 10.0 -26.3
2025-06-13 09:30:45,946 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 09:30:45,946 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 09:30:45,946 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.312441
2025-06-13 09:30:45,947 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 09:30:45,947 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 09:30:45,947 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 09:30:45,947 [DEBUG][       Thread-250055][   transport.py][1871] : EOF in transport thread
2025-06-13 09:30:45,947 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 09:30:45,948 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 09:30:45,948 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T09:30:27', tmtdew=9.14, humidity=52.55, cloud=0.0, wind=20.68, temperature=7.89, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T07:29:54.902', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 09:30:46,032 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 09:30:46,043 [DEBUG][       Thread-250058][   transport.py][1871] : starting thread (client mode): 0x867ff010
2025-06-13 09:30:46,043 [DEBUG][       Thread-250058][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 09:30:46,063 [DEBUG][       Thread-250058][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 09:30:46,063 [ INFO][       Thread-250058][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 09:30:46,070 [DEBUG][       Thread-250058][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 09:30:46,071 [DEBUG][       Thread-250058][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 09:30:46,071 [DEBUG][       Thread-250058][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 09:30:46,071 [DEBUG][       Thread-250058][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:30:46,071 [DEBUG][       Thread-250058][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:30:46,071 [DEBUG][       Thread-250058][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:30:46,071 [DEBUG][       Thread-250058][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:30:46,071 [DEBUG][       Thread-250058][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 09:30:46,071 [DEBUG][       Thread-250058][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 09:30:46,071 [DEBUG][       Thread-250058][   transport.py][1871] : client lang: <none>
2025-06-13 09:30:46,071 [DEBUG][       Thread-250058][   transport.py][1871] : server lang: <none>
2025-06-13 09:30:46,071 [DEBUG][       Thread-250058][   transport.py][1871] : kex follows: False
2025-06-13 09:30:46,071 [DEBUG][       Thread-250058][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 09:30:46,071 [DEBUG][       Thread-250058][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 09:30:46,071 [DEBUG][       Thread-250058][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 09:30:46,071 [DEBUG][       Thread-250058][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 09:30:46,071 [DEBUG][       Thread-250058][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 09:30:46,072 [DEBUG][       Thread-250058][   transport.py][1871] : Compression: none
2025-06-13 09:30:46,072 [DEBUG][       Thread-250058][   transport.py][1871] : === End of kex handshake ===
2025-06-13 09:30:46,135 [DEBUG][       Thread-250058][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 09:30:46,135 [DEBUG][       Thread-250058][   transport.py][1871] : Switch to new keys ...
2025-06-13 09:30:46,136 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 09:30:46,136 [DEBUG][       Thread-250058][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 09:30:46,137 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 09:30:46,191 [DEBUG][       Thread-250058][   transport.py][1871] : userauth is OK
2025-06-13 09:30:46,191 [DEBUG][       Thread-250058][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 09:30:46,191 [DEBUG][       Thread-250058][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 09:30:46,191 [DEBUG][       Thread-250058][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 09:30:46,191 [DEBUG][       Thread-250058][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 09:30:46,210 [ INFO][       Thread-250058][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 09:30:46,210 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 09:30:46,210 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 09:30:47,264 [DEBUG][       Thread-250058][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 09:30:47,264 [DEBUG][       Thread-250058][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 09:30:47,312 [DEBUG][       Thread-250058][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 09:30:47,312 [DEBUG][       Thread-250058][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 09:30:47,321 [DEBUG][       Thread-250058][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 09:30:47,329 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 09:30:47,330 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 09:30:47,331 [DEBUG][Thread-250060 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:30:47,338 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 09:30:47,346 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 09:30:47,347 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 09:30:47,347 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 09:30:47,355 [DEBUG][       Thread-250058][   transport.py][1871] : EOF in transport thread
2025-06-13 09:30:56,350 [DEBUG][Thread-250061 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:30:57,354 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 09:30:57,354 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 09:30:57,355 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 09:30:57,357 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 09:30:57,838 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 9, 30, 27), 9.14, 52.55, 0.0, 20.68, 7.89, 0, 0, 0, 2, 0, 0),)
2025-06-13 09:30:57,838 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 09:30:27
2025-06-13 09:30:57,919 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 09:30:57,923 [DEBUG][       Thread-250062][   transport.py][1871] : starting thread (client mode): 0x863bd540
2025-06-13 09:30:57,923 [DEBUG][       Thread-250062][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 09:30:57,942 [DEBUG][       Thread-250062][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 09:30:57,942 [ INFO][       Thread-250062][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 09:30:57,944 [DEBUG][       Thread-250062][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 09:30:57,944 [DEBUG][       Thread-250062][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 09:30:57,944 [DEBUG][       Thread-250062][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 09:30:57,944 [DEBUG][       Thread-250062][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:30:57,944 [DEBUG][       Thread-250062][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:30:57,944 [DEBUG][       Thread-250062][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:30:57,944 [DEBUG][       Thread-250062][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:30:57,944 [DEBUG][       Thread-250062][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 09:30:57,944 [DEBUG][       Thread-250062][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 09:30:57,944 [DEBUG][       Thread-250062][   transport.py][1871] : client lang: <none>
2025-06-13 09:30:57,944 [DEBUG][       Thread-250062][   transport.py][1871] : server lang: <none>
2025-06-13 09:30:57,944 [DEBUG][       Thread-250062][   transport.py][1871] : kex follows: False
2025-06-13 09:30:57,944 [DEBUG][       Thread-250062][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 09:30:57,944 [DEBUG][       Thread-250062][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 09:30:57,944 [DEBUG][       Thread-250062][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 09:30:57,944 [DEBUG][       Thread-250062][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 09:30:57,944 [DEBUG][       Thread-250062][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 09:30:57,944 [DEBUG][       Thread-250062][   transport.py][1871] : Compression: none
2025-06-13 09:30:57,945 [DEBUG][       Thread-250062][   transport.py][1871] : === End of kex handshake ===
2025-06-13 09:30:57,961 [DEBUG][       Thread-250062][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 09:30:57,962 [DEBUG][       Thread-250062][   transport.py][1871] : Switch to new keys ...
2025-06-13 09:30:57,962 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 09:30:57,962 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 09:30:57,963 [DEBUG][       Thread-250062][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 09:30:57,963 [DEBUG][       Thread-250062][   transport.py][1871] : userauth is OK
2025-06-13 09:30:57,987 [ INFO][       Thread-250062][   transport.py][1871] : Authentication (password) successful!
2025-06-13 09:30:57,988 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 09:30:58,609 [DEBUG][       Thread-250062][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 09:30:58,609 [DEBUG][       Thread-250062][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 09:30:58,653 [DEBUG][       Thread-250062][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 09:30:58,653 [DEBUG][       Thread-250062][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 09:30:58,656 [DEBUG][       Thread-250062][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 09:30:58,669 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 09:30:58,669 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 09:30:58,671 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 09:30:58,673 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 09:30:58,678 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 09:30:58,680 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 09:30:58,680 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 09:30:58,681 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 09:30:58,681 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.312788 -999.00   +7.70  22.59     56   -0.30 1 1 1 1 1   887    0 8.18 15.32 ----- 22.6 22.6 37.0 30.4 11.3 -28.3 10.2 -28.8 8.9 -28.0 10.1 -26.3
2025-06-13 09:30:58,681 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 09:30:58,681 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 09:30:58,681 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.312788
2025-06-13 09:30:58,681 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 09:30:58,682 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 09:30:58,682 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 09:30:58,682 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 09:30:58,682 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 09:30:58,682 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T09:30:27', tmtdew=9.14, humidity=52.55, cloud=0.0, wind=20.68, temperature=7.89, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T07:30:24.883', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 09:30:58,683 [DEBUG][       Thread-250062][   transport.py][1871] : EOF in transport thread
2025-06-13 09:30:58,766 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 09:30:58,775 [DEBUG][       Thread-250065][   transport.py][1871] : starting thread (client mode): 0x863a5030
2025-06-13 09:30:58,775 [DEBUG][       Thread-250065][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 09:30:58,791 [DEBUG][       Thread-250065][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 09:30:58,791 [ INFO][       Thread-250065][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 09:30:58,800 [DEBUG][       Thread-250065][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 09:30:58,800 [DEBUG][       Thread-250065][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 09:30:58,800 [DEBUG][       Thread-250065][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 09:30:58,800 [DEBUG][       Thread-250065][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:30:58,800 [DEBUG][       Thread-250065][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:30:58,800 [DEBUG][       Thread-250065][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:30:58,800 [DEBUG][       Thread-250065][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:30:58,800 [DEBUG][       Thread-250065][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 09:30:58,800 [DEBUG][       Thread-250065][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 09:30:58,800 [DEBUG][       Thread-250065][   transport.py][1871] : client lang: <none>
2025-06-13 09:30:58,800 [DEBUG][       Thread-250065][   transport.py][1871] : server lang: <none>
2025-06-13 09:30:58,800 [DEBUG][       Thread-250065][   transport.py][1871] : kex follows: False
2025-06-13 09:30:58,800 [DEBUG][       Thread-250065][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 09:30:58,800 [DEBUG][       Thread-250065][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 09:30:58,800 [DEBUG][       Thread-250065][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 09:30:58,801 [DEBUG][       Thread-250065][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 09:30:58,801 [DEBUG][       Thread-250065][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 09:30:58,801 [DEBUG][       Thread-250065][   transport.py][1871] : Compression: none
2025-06-13 09:30:58,801 [DEBUG][       Thread-250065][   transport.py][1871] : === End of kex handshake ===
2025-06-13 09:30:58,854 [DEBUG][       Thread-250065][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 09:30:58,854 [DEBUG][       Thread-250065][   transport.py][1871] : Switch to new keys ...
2025-06-13 09:30:58,855 [DEBUG][       Thread-250065][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 09:30:58,855 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 09:30:58,856 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 09:30:58,911 [DEBUG][       Thread-250065][   transport.py][1871] : userauth is OK
2025-06-13 09:30:58,911 [DEBUG][       Thread-250065][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 09:30:58,911 [DEBUG][       Thread-250065][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 09:30:58,911 [DEBUG][       Thread-250065][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 09:30:58,911 [DEBUG][       Thread-250065][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 09:30:58,929 [ INFO][       Thread-250065][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 09:30:58,930 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 09:30:58,930 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 09:30:59,950 [DEBUG][       Thread-250065][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 09:30:59,950 [DEBUG][       Thread-250065][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 09:31:00,003 [DEBUG][       Thread-250065][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 09:31:00,003 [DEBUG][       Thread-250065][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 09:31:00,017 [DEBUG][       Thread-250065][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 09:31:00,026 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 09:31:00,026 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 09:31:00,034 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 09:31:00,042 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 09:31:00,042 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 09:31:00,042 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 09:31:00,050 [DEBUG][       Thread-250065][   transport.py][1871] : EOF in transport thread
2025-06-13 09:31:03,423 [DEBUG][Thread-250067 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:31:05,368 [DEBUG][Thread-250068 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:31:10,053 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 09:31:10,053 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 09:31:10,053 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 09:31:10,055 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 09:31:10,344 [DEBUG][Thread-250069 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:31:10,521 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 9, 30, 58), 9.16, 52.51, 0.0, 22.6, 7.93, 0, 0, 0, 2, 0, 0),)
2025-06-13 09:31:10,521 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 09:30:58
2025-06-13 09:31:10,603 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 09:31:10,609 [DEBUG][       Thread-250070][   transport.py][1871] : starting thread (client mode): 0x863bcac0
2025-06-13 09:31:10,609 [DEBUG][       Thread-250070][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 09:31:10,630 [DEBUG][       Thread-250070][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 09:31:10,630 [ INFO][       Thread-250070][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 09:31:10,634 [DEBUG][       Thread-250070][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 09:31:10,634 [DEBUG][       Thread-250070][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 09:31:10,634 [DEBUG][       Thread-250070][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 09:31:10,634 [DEBUG][       Thread-250070][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:31:10,634 [DEBUG][       Thread-250070][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:31:10,634 [DEBUG][       Thread-250070][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:31:10,634 [DEBUG][       Thread-250070][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:31:10,634 [DEBUG][       Thread-250070][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 09:31:10,634 [DEBUG][       Thread-250070][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 09:31:10,634 [DEBUG][       Thread-250070][   transport.py][1871] : client lang: <none>
2025-06-13 09:31:10,634 [DEBUG][       Thread-250070][   transport.py][1871] : server lang: <none>
2025-06-13 09:31:10,634 [DEBUG][       Thread-250070][   transport.py][1871] : kex follows: False
2025-06-13 09:31:10,634 [DEBUG][       Thread-250070][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 09:31:10,634 [DEBUG][       Thread-250070][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 09:31:10,634 [DEBUG][       Thread-250070][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 09:31:10,634 [DEBUG][       Thread-250070][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 09:31:10,634 [DEBUG][       Thread-250070][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 09:31:10,634 [DEBUG][       Thread-250070][   transport.py][1871] : Compression: none
2025-06-13 09:31:10,634 [DEBUG][       Thread-250070][   transport.py][1871] : === End of kex handshake ===
2025-06-13 09:31:10,651 [DEBUG][       Thread-250070][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 09:31:10,651 [DEBUG][       Thread-250070][   transport.py][1871] : Switch to new keys ...
2025-06-13 09:31:10,652 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 09:31:10,652 [DEBUG][       Thread-250070][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 09:31:10,653 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 09:31:10,654 [DEBUG][       Thread-250070][   transport.py][1871] : userauth is OK
2025-06-13 09:31:10,667 [ INFO][       Thread-250070][   transport.py][1871] : Authentication (password) successful!
2025-06-13 09:31:10,667 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 09:31:11,263 [DEBUG][       Thread-250070][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 09:31:11,263 [DEBUG][       Thread-250070][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 09:31:11,305 [DEBUG][       Thread-250070][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 09:31:11,305 [DEBUG][       Thread-250070][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 09:31:11,308 [DEBUG][       Thread-250070][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 09:31:11,320 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 09:31:11,320 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 09:31:11,322 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 09:31:11,323 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 09:31:11,327 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 09:31:11,329 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 09:31:11,329 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 09:31:11,330 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 09:31:11,330 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.312788 -999.00   +7.70  22.59     56   -0.30 1 1 1 1 1   887    0 8.18 15.32 ----- 22.6 22.6 37.0 30.4 11.3 -28.3 10.2 -28.8 8.9 -28.0 10.1 -26.3
2025-06-13 09:31:11,330 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 09:31:11,330 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 09:31:11,330 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.312788
2025-06-13 09:31:11,331 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 09:31:11,331 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 09:31:11,331 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 09:31:11,331 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 09:31:11,331 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 09:31:11,331 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T09:30:58', tmtdew=9.16, humidity=52.51, cloud=0.0, wind=22.6, temperature=7.93, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T07:30:24.883', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 09:31:11,332 [DEBUG][       Thread-250070][   transport.py][1871] : EOF in transport thread
2025-06-13 09:31:11,399 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:31:11,399 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:31:11,416 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 09:31:11,428 [DEBUG][       Thread-250073][   transport.py][1871] : starting thread (client mode): 0x867fe3b0
2025-06-13 09:31:11,428 [DEBUG][       Thread-250073][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 09:31:11,444 [DEBUG][       Thread-250073][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 09:31:11,444 [ INFO][       Thread-250073][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 09:31:11,455 [DEBUG][       Thread-250073][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 09:31:11,455 [DEBUG][       Thread-250073][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 09:31:11,455 [DEBUG][       Thread-250073][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 09:31:11,455 [DEBUG][       Thread-250073][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:31:11,455 [DEBUG][       Thread-250073][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:31:11,455 [DEBUG][       Thread-250073][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:31:11,455 [DEBUG][       Thread-250073][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:31:11,455 [DEBUG][       Thread-250073][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 09:31:11,455 [DEBUG][       Thread-250073][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 09:31:11,455 [DEBUG][       Thread-250073][   transport.py][1871] : client lang: <none>
2025-06-13 09:31:11,455 [DEBUG][       Thread-250073][   transport.py][1871] : server lang: <none>
2025-06-13 09:31:11,455 [DEBUG][       Thread-250073][   transport.py][1871] : kex follows: False
2025-06-13 09:31:11,456 [DEBUG][       Thread-250073][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 09:31:11,456 [DEBUG][       Thread-250073][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 09:31:11,456 [DEBUG][       Thread-250073][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 09:31:11,456 [DEBUG][       Thread-250073][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 09:31:11,456 [DEBUG][       Thread-250073][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 09:31:11,456 [DEBUG][       Thread-250073][   transport.py][1871] : Compression: none
2025-06-13 09:31:11,456 [DEBUG][       Thread-250073][   transport.py][1871] : === End of kex handshake ===
2025-06-13 09:31:11,510 [DEBUG][       Thread-250073][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 09:31:11,511 [DEBUG][       Thread-250073][   transport.py][1871] : Switch to new keys ...
2025-06-13 09:31:11,511 [DEBUG][       Thread-250073][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 09:31:11,511 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 09:31:11,512 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 09:31:11,566 [DEBUG][       Thread-250073][   transport.py][1871] : userauth is OK
2025-06-13 09:31:11,567 [DEBUG][       Thread-250073][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 09:31:11,567 [DEBUG][       Thread-250073][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 09:31:11,567 [DEBUG][       Thread-250073][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 09:31:11,567 [DEBUG][       Thread-250073][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 09:31:11,586 [ INFO][       Thread-250073][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 09:31:11,586 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 09:31:11,586 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 09:31:12,624 [DEBUG][       Thread-250073][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 09:31:12,624 [DEBUG][       Thread-250073][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 09:31:12,672 [DEBUG][       Thread-250073][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 09:31:12,673 [DEBUG][       Thread-250073][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 09:31:12,681 [DEBUG][       Thread-250073][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 09:31:12,691 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 09:31:12,691 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 09:31:12,703 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 09:31:12,711 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 09:31:12,712 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 09:31:12,712 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 09:31:12,720 [DEBUG][       Thread-250073][   transport.py][1871] : EOF in transport thread
2025-06-13 09:31:14,387 [DEBUG][Thread-250075 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:31:18,436 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:31:18,437 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:31:22,722 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 09:31:22,722 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 09:31:22,722 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 09:31:22,725 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 09:31:23,202 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 9, 30, 58), 9.16, 52.51, 0.0, 22.6, 7.93, 0, 0, 0, 2, 0, 0),)
2025-06-13 09:31:23,202 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 09:30:58
2025-06-13 09:31:23,284 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 09:31:23,288 [DEBUG][       Thread-250076][   transport.py][1871] : starting thread (client mode): 0x863bf580
2025-06-13 09:31:23,288 [DEBUG][       Thread-250076][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 09:31:23,310 [DEBUG][       Thread-250076][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 09:31:23,310 [ INFO][       Thread-250076][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 09:31:23,313 [DEBUG][       Thread-250076][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 09:31:23,314 [DEBUG][       Thread-250076][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 09:31:23,314 [DEBUG][       Thread-250076][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 09:31:23,314 [DEBUG][       Thread-250076][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:31:23,314 [DEBUG][       Thread-250076][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:31:23,314 [DEBUG][       Thread-250076][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:31:23,314 [DEBUG][       Thread-250076][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:31:23,314 [DEBUG][       Thread-250076][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 09:31:23,314 [DEBUG][       Thread-250076][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 09:31:23,314 [DEBUG][       Thread-250076][   transport.py][1871] : client lang: <none>
2025-06-13 09:31:23,314 [DEBUG][       Thread-250076][   transport.py][1871] : server lang: <none>
2025-06-13 09:31:23,314 [DEBUG][       Thread-250076][   transport.py][1871] : kex follows: False
2025-06-13 09:31:23,314 [DEBUG][       Thread-250076][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 09:31:23,314 [DEBUG][       Thread-250076][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 09:31:23,314 [DEBUG][       Thread-250076][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 09:31:23,314 [DEBUG][       Thread-250076][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 09:31:23,314 [DEBUG][       Thread-250076][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 09:31:23,314 [DEBUG][       Thread-250076][   transport.py][1871] : Compression: none
2025-06-13 09:31:23,314 [DEBUG][       Thread-250076][   transport.py][1871] : === End of kex handshake ===
2025-06-13 09:31:23,331 [DEBUG][       Thread-250076][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 09:31:23,331 [DEBUG][       Thread-250076][   transport.py][1871] : Switch to new keys ...
2025-06-13 09:31:23,332 [DEBUG][       Thread-250076][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 09:31:23,332 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 09:31:23,332 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 09:31:23,333 [DEBUG][       Thread-250076][   transport.py][1871] : userauth is OK
2025-06-13 09:31:23,346 [ INFO][       Thread-250076][   transport.py][1871] : Authentication (password) successful!
2025-06-13 09:31:23,346 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 09:31:23,426 [DEBUG][Thread-250078 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:31:23,964 [DEBUG][       Thread-250076][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 09:31:23,964 [DEBUG][       Thread-250076][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 09:31:24,005 [DEBUG][       Thread-250076][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 09:31:24,005 [DEBUG][       Thread-250076][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 09:31:24,007 [DEBUG][       Thread-250076][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 09:31:24,020 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 09:31:24,020 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 09:31:24,022 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 09:31:24,023 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 09:31:24,028 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 09:31:24,030 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 09:31:24,030 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 09:31:24,030 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 09:31:24,031 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.312788 -999.00   +7.70  22.59     56   -0.30 1 1 1 1 1   887    0 8.18 15.32 ----- 22.6 22.6 37.0 30.4 11.3 -28.3 10.2 -28.8 8.9 -28.0 10.1 -26.3
2025-06-13 09:31:24,031 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 09:31:24,031 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 09:31:24,031 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.312788
2025-06-13 09:31:24,031 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 09:31:24,032 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 09:31:24,032 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 09:31:24,032 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 09:31:24,032 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 09:31:24,032 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T09:30:58', tmtdew=9.16, humidity=52.51, cloud=0.0, wind=22.6, temperature=7.93, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T07:30:24.883', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 09:31:24,032 [DEBUG][       Thread-250076][   transport.py][1871] : EOF in transport thread
2025-06-13 09:31:24,116 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 09:31:24,127 [DEBUG][       Thread-250080][   transport.py][1871] : starting thread (client mode): 0x863cae60
2025-06-13 09:31:24,127 [DEBUG][       Thread-250080][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 09:31:24,145 [DEBUG][       Thread-250080][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 09:31:24,146 [ INFO][       Thread-250080][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 09:31:24,155 [DEBUG][       Thread-250080][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 09:31:24,155 [DEBUG][       Thread-250080][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 09:31:24,155 [DEBUG][       Thread-250080][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 09:31:24,155 [DEBUG][       Thread-250080][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:31:24,155 [DEBUG][       Thread-250080][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:31:24,155 [DEBUG][       Thread-250080][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:31:24,155 [DEBUG][       Thread-250080][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:31:24,155 [DEBUG][       Thread-250080][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 09:31:24,156 [DEBUG][       Thread-250080][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 09:31:24,156 [DEBUG][       Thread-250080][   transport.py][1871] : client lang: <none>
2025-06-13 09:31:24,156 [DEBUG][       Thread-250080][   transport.py][1871] : server lang: <none>
2025-06-13 09:31:24,156 [DEBUG][       Thread-250080][   transport.py][1871] : kex follows: False
2025-06-13 09:31:24,156 [DEBUG][       Thread-250080][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 09:31:24,156 [DEBUG][       Thread-250080][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 09:31:24,156 [DEBUG][       Thread-250080][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 09:31:24,156 [DEBUG][       Thread-250080][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 09:31:24,156 [DEBUG][       Thread-250080][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 09:31:24,156 [DEBUG][       Thread-250080][   transport.py][1871] : Compression: none
2025-06-13 09:31:24,156 [DEBUG][       Thread-250080][   transport.py][1871] : === End of kex handshake ===
2025-06-13 09:31:24,217 [DEBUG][       Thread-250080][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 09:31:24,218 [DEBUG][       Thread-250080][   transport.py][1871] : Switch to new keys ...
2025-06-13 09:31:24,218 [DEBUG][       Thread-250080][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 09:31:24,219 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 09:31:24,219 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 09:31:24,279 [DEBUG][       Thread-250080][   transport.py][1871] : userauth is OK
2025-06-13 09:31:24,279 [DEBUG][       Thread-250080][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 09:31:24,279 [DEBUG][       Thread-250080][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 09:31:24,279 [DEBUG][       Thread-250080][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 09:31:24,279 [DEBUG][       Thread-250080][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 09:31:24,299 [ INFO][       Thread-250080][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 09:31:24,299 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 09:31:24,300 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 09:31:25,329 [DEBUG][       Thread-250080][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 09:31:25,329 [DEBUG][       Thread-250080][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 09:31:25,383 [DEBUG][       Thread-250080][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 09:31:25,384 [DEBUG][       Thread-250080][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 09:31:25,392 [DEBUG][       Thread-250080][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 09:31:25,401 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 09:31:25,401 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 09:31:25,409 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 09:31:25,418 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 09:31:25,418 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 09:31:25,419 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 09:31:25,426 [DEBUG][       Thread-250080][   transport.py][1871] : EOF in transport thread
2025-06-13 09:31:32,443 [DEBUG][Thread-250082 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:31:35,429 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 09:31:35,429 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 09:31:35,429 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 09:31:35,432 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 09:31:35,912 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 9, 31, 30), 9.3, 52.11, 0.0, 19.34, 7.96, 0, 0, 0, 2, 0, 0),)
2025-06-13 09:31:35,912 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 09:31:30
2025-06-13 09:31:35,994 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 09:31:36,000 [DEBUG][       Thread-250083][   transport.py][1871] : starting thread (client mode): 0x863bcbb0
2025-06-13 09:31:36,000 [DEBUG][       Thread-250083][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 09:31:36,023 [DEBUG][       Thread-250083][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 09:31:36,023 [ INFO][       Thread-250083][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 09:31:36,026 [DEBUG][       Thread-250083][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 09:31:36,026 [DEBUG][       Thread-250083][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 09:31:36,026 [DEBUG][       Thread-250083][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 09:31:36,027 [DEBUG][       Thread-250083][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:31:36,027 [DEBUG][       Thread-250083][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:31:36,027 [DEBUG][       Thread-250083][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:31:36,027 [DEBUG][       Thread-250083][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:31:36,027 [DEBUG][       Thread-250083][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 09:31:36,027 [DEBUG][       Thread-250083][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 09:31:36,027 [DEBUG][       Thread-250083][   transport.py][1871] : client lang: <none>
2025-06-13 09:31:36,027 [DEBUG][       Thread-250083][   transport.py][1871] : server lang: <none>
2025-06-13 09:31:36,027 [DEBUG][       Thread-250083][   transport.py][1871] : kex follows: False
2025-06-13 09:31:36,027 [DEBUG][       Thread-250083][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 09:31:36,027 [DEBUG][       Thread-250083][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 09:31:36,027 [DEBUG][       Thread-250083][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 09:31:36,027 [DEBUG][       Thread-250083][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 09:31:36,027 [DEBUG][       Thread-250083][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 09:31:36,027 [DEBUG][       Thread-250083][   transport.py][1871] : Compression: none
2025-06-13 09:31:36,027 [DEBUG][       Thread-250083][   transport.py][1871] : === End of kex handshake ===
2025-06-13 09:31:36,043 [DEBUG][       Thread-250083][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 09:31:36,044 [DEBUG][       Thread-250083][   transport.py][1871] : Switch to new keys ...
2025-06-13 09:31:36,045 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 09:31:36,045 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 09:31:36,046 [DEBUG][       Thread-250083][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 09:31:36,046 [DEBUG][       Thread-250083][   transport.py][1871] : userauth is OK
2025-06-13 09:31:36,059 [ INFO][       Thread-250083][   transport.py][1871] : Authentication (password) successful!
2025-06-13 09:31:36,060 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 09:31:36,713 [DEBUG][       Thread-250083][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 09:31:36,713 [DEBUG][       Thread-250083][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 09:31:36,756 [DEBUG][       Thread-250083][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 09:31:36,757 [DEBUG][       Thread-250083][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 09:31:36,759 [DEBUG][       Thread-250083][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 09:31:36,772 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 09:31:36,772 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 09:31:36,773 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 09:31:36,774 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 09:31:36,776 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 09:31:36,777 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 09:31:36,777 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 09:31:36,777 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 09:31:36,777 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.313483 -999.00   +7.70  24.75     56   -0.30 1 1 1 1 1   887    0 8.21 15.82 ----- 24.8 24.8 35.8 29.3 11.3 -28.2 10.2 -28.6 8.9 -27.9 10.1 -26.0
2025-06-13 09:31:36,777 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 09:31:36,777 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 09:31:36,777 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.313483
2025-06-13 09:31:36,777 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 09:31:36,777 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 09:31:36,777 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 09:31:36,777 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 09:31:36,777 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 09:31:36,777 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T09:31:30', tmtdew=9.3, humidity=52.11, cloud=0.0, wind=19.34, temperature=7.96, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T07:31:24.931', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 09:31:36,778 [DEBUG][       Thread-250083][   transport.py][1871] : EOF in transport thread
2025-06-13 09:31:36,848 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 09:31:36,860 [DEBUG][       Thread-250086][   transport.py][1871] : starting thread (client mode): 0x863a5030
2025-06-13 09:31:36,860 [DEBUG][       Thread-250086][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 09:31:36,876 [DEBUG][       Thread-250086][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 09:31:36,876 [ INFO][       Thread-250086][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 09:31:36,883 [DEBUG][       Thread-250086][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 09:31:36,884 [DEBUG][       Thread-250086][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 09:31:36,884 [DEBUG][       Thread-250086][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 09:31:36,884 [DEBUG][       Thread-250086][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:31:36,884 [DEBUG][       Thread-250086][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:31:36,884 [DEBUG][       Thread-250086][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:31:36,884 [DEBUG][       Thread-250086][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:31:36,884 [DEBUG][       Thread-250086][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 09:31:36,884 [DEBUG][       Thread-250086][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 09:31:36,884 [DEBUG][       Thread-250086][   transport.py][1871] : client lang: <none>
2025-06-13 09:31:36,884 [DEBUG][       Thread-250086][   transport.py][1871] : server lang: <none>
2025-06-13 09:31:36,884 [DEBUG][       Thread-250086][   transport.py][1871] : kex follows: False
2025-06-13 09:31:36,884 [DEBUG][       Thread-250086][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 09:31:36,884 [DEBUG][       Thread-250086][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 09:31:36,884 [DEBUG][       Thread-250086][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 09:31:36,884 [DEBUG][       Thread-250086][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 09:31:36,884 [DEBUG][       Thread-250086][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 09:31:36,884 [DEBUG][       Thread-250086][   transport.py][1871] : Compression: none
2025-06-13 09:31:36,884 [DEBUG][       Thread-250086][   transport.py][1871] : === End of kex handshake ===
2025-06-13 09:31:36,942 [DEBUG][       Thread-250086][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 09:31:36,942 [DEBUG][       Thread-250086][   transport.py][1871] : Switch to new keys ...
2025-06-13 09:31:36,943 [DEBUG][       Thread-250086][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 09:31:36,943 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 09:31:36,943 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 09:31:36,999 [DEBUG][       Thread-250086][   transport.py][1871] : userauth is OK
2025-06-13 09:31:36,999 [DEBUG][       Thread-250086][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 09:31:36,999 [DEBUG][       Thread-250086][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 09:31:36,999 [DEBUG][       Thread-250086][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 09:31:36,999 [DEBUG][       Thread-250086][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 09:31:37,022 [ INFO][       Thread-250086][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 09:31:37,022 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 09:31:37,022 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 09:31:38,048 [DEBUG][       Thread-250086][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 09:31:38,048 [DEBUG][       Thread-250086][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 09:31:38,095 [DEBUG][       Thread-250086][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 09:31:38,096 [DEBUG][       Thread-250086][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 09:31:38,105 [DEBUG][       Thread-250086][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 09:31:38,113 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 09:31:38,114 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 09:31:38,125 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 09:31:38,143 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 09:31:38,144 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 09:31:38,144 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 09:31:38,152 [DEBUG][       Thread-250086][   transport.py][1871] : EOF in transport thread
2025-06-13 09:31:41,458 [DEBUG][Thread-250088 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:31:48,152 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 09:31:48,152 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 09:31:48,152 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 09:31:48,153 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 09:31:48,608 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 9, 31, 30), 9.3, 52.11, 0.0, 19.34, 7.96, 0, 0, 0, 2, 0, 0),)
2025-06-13 09:31:48,608 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 09:31:30
2025-06-13 09:31:48,689 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 09:31:48,695 [DEBUG][       Thread-250089][   transport.py][1871] : starting thread (client mode): 0x867ffdc0
2025-06-13 09:31:48,695 [DEBUG][       Thread-250089][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 09:31:48,716 [DEBUG][       Thread-250089][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 09:31:48,716 [ INFO][       Thread-250089][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 09:31:48,719 [DEBUG][       Thread-250089][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 09:31:48,719 [DEBUG][       Thread-250089][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 09:31:48,719 [DEBUG][       Thread-250089][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 09:31:48,719 [DEBUG][       Thread-250089][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:31:48,719 [DEBUG][       Thread-250089][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:31:48,719 [DEBUG][       Thread-250089][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:31:48,719 [DEBUG][       Thread-250089][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:31:48,719 [DEBUG][       Thread-250089][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 09:31:48,719 [DEBUG][       Thread-250089][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 09:31:48,719 [DEBUG][       Thread-250089][   transport.py][1871] : client lang: <none>
2025-06-13 09:31:48,719 [DEBUG][       Thread-250089][   transport.py][1871] : server lang: <none>
2025-06-13 09:31:48,719 [DEBUG][       Thread-250089][   transport.py][1871] : kex follows: False
2025-06-13 09:31:48,719 [DEBUG][       Thread-250089][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 09:31:48,719 [DEBUG][       Thread-250089][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 09:31:48,719 [DEBUG][       Thread-250089][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 09:31:48,719 [DEBUG][       Thread-250089][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 09:31:48,720 [DEBUG][       Thread-250089][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 09:31:48,720 [DEBUG][       Thread-250089][   transport.py][1871] : Compression: none
2025-06-13 09:31:48,720 [DEBUG][       Thread-250089][   transport.py][1871] : === End of kex handshake ===
2025-06-13 09:31:48,736 [DEBUG][       Thread-250089][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 09:31:48,737 [DEBUG][       Thread-250089][   transport.py][1871] : Switch to new keys ...
2025-06-13 09:31:48,737 [DEBUG][       Thread-250089][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 09:31:48,737 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 09:31:48,737 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 09:31:48,739 [DEBUG][       Thread-250089][   transport.py][1871] : userauth is OK
2025-06-13 09:31:48,752 [ INFO][       Thread-250089][   transport.py][1871] : Authentication (password) successful!
2025-06-13 09:31:48,752 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 09:31:49,340 [DEBUG][       Thread-250089][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 09:31:49,340 [DEBUG][       Thread-250089][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 09:31:49,385 [DEBUG][       Thread-250089][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 09:31:49,385 [DEBUG][       Thread-250089][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 09:31:49,388 [DEBUG][       Thread-250089][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 09:31:49,400 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 09:31:49,400 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 09:31:49,402 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 09:31:49,403 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 09:31:49,408 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 09:31:49,410 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 09:31:49,410 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 09:31:49,410 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 09:31:49,410 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.313483 -999.00   +7.70  24.75     56   -0.30 1 1 1 1 1   887    0 8.21 15.82 ----- 24.8 24.8 35.8 29.3 11.3 -28.2 10.2 -28.6 8.9 -27.9 10.1 -26.0
2025-06-13 09:31:49,410 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 09:31:49,411 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 09:31:49,411 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.313483
2025-06-13 09:31:49,411 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 09:31:49,411 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 09:31:49,412 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 09:31:49,412 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 09:31:49,412 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 09:31:49,412 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T09:31:30', tmtdew=9.3, humidity=52.11, cloud=0.0, wind=19.34, temperature=7.96, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T07:31:24.931', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 09:31:49,412 [DEBUG][       Thread-250089][   transport.py][1871] : EOF in transport thread
2025-06-13 09:31:49,495 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 09:31:49,507 [DEBUG][       Thread-250092][   transport.py][1871] : starting thread (client mode): 0x863bca60
2025-06-13 09:31:49,507 [DEBUG][       Thread-250092][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 09:31:49,526 [DEBUG][       Thread-250092][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 09:31:49,526 [ INFO][       Thread-250092][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 09:31:49,533 [DEBUG][       Thread-250092][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 09:31:49,533 [DEBUG][       Thread-250092][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 09:31:49,533 [DEBUG][       Thread-250092][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 09:31:49,534 [DEBUG][       Thread-250092][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:31:49,534 [DEBUG][       Thread-250092][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:31:49,534 [DEBUG][       Thread-250092][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:31:49,534 [DEBUG][       Thread-250092][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:31:49,534 [DEBUG][       Thread-250092][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 09:31:49,534 [DEBUG][       Thread-250092][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 09:31:49,534 [DEBUG][       Thread-250092][   transport.py][1871] : client lang: <none>
2025-06-13 09:31:49,534 [DEBUG][       Thread-250092][   transport.py][1871] : server lang: <none>
2025-06-13 09:31:49,534 [DEBUG][       Thread-250092][   transport.py][1871] : kex follows: False
2025-06-13 09:31:49,534 [DEBUG][       Thread-250092][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 09:31:49,534 [DEBUG][       Thread-250092][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 09:31:49,534 [DEBUG][       Thread-250092][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 09:31:49,534 [DEBUG][       Thread-250092][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 09:31:49,534 [DEBUG][       Thread-250092][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 09:31:49,534 [DEBUG][       Thread-250092][   transport.py][1871] : Compression: none
2025-06-13 09:31:49,534 [DEBUG][       Thread-250092][   transport.py][1871] : === End of kex handshake ===
2025-06-13 09:31:49,591 [DEBUG][       Thread-250092][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 09:31:49,592 [DEBUG][       Thread-250092][   transport.py][1871] : Switch to new keys ...
2025-06-13 09:31:49,592 [DEBUG][       Thread-250092][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 09:31:49,592 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 09:31:49,593 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 09:31:49,654 [DEBUG][       Thread-250092][   transport.py][1871] : userauth is OK
2025-06-13 09:31:49,655 [DEBUG][       Thread-250092][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 09:31:49,655 [DEBUG][       Thread-250092][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 09:31:49,655 [DEBUG][       Thread-250092][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 09:31:49,655 [DEBUG][       Thread-250092][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 09:31:49,676 [ INFO][       Thread-250092][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 09:31:49,677 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 09:31:49,677 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 09:31:50,483 [DEBUG][Thread-250094 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:31:50,687 [DEBUG][       Thread-250092][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 09:31:50,687 [DEBUG][       Thread-250092][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 09:31:50,735 [DEBUG][       Thread-250092][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 09:31:50,736 [DEBUG][       Thread-250092][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 09:31:50,744 [DEBUG][       Thread-250092][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 09:31:50,753 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 09:31:50,753 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 09:31:50,761 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 09:31:50,773 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 09:31:50,774 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 09:31:50,774 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 09:31:50,782 [DEBUG][       Thread-250092][   transport.py][1871] : EOF in transport thread
2025-06-13 09:31:59,502 [DEBUG][Thread-250095 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:32:00,784 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 09:32:00,784 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 09:32:00,784 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 09:32:00,787 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 09:32:01,240 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 9, 31, 30), 9.3, 52.11, 0.0, 19.34, 7.96, 0, 0, 0, 2, 0, 0),)
2025-06-13 09:32:01,240 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 09:31:30
2025-06-13 09:32:01,322 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 09:32:01,326 [DEBUG][       Thread-250096][   transport.py][1871] : starting thread (client mode): 0x863bc7f0
2025-06-13 09:32:01,326 [DEBUG][       Thread-250096][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 09:32:01,347 [DEBUG][       Thread-250096][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 09:32:01,348 [ INFO][       Thread-250096][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 09:32:01,351 [DEBUG][       Thread-250096][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 09:32:01,351 [DEBUG][       Thread-250096][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 09:32:01,351 [DEBUG][       Thread-250096][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 09:32:01,351 [DEBUG][       Thread-250096][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:32:01,351 [DEBUG][       Thread-250096][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:32:01,352 [DEBUG][       Thread-250096][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:32:01,352 [DEBUG][       Thread-250096][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:32:01,352 [DEBUG][       Thread-250096][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 09:32:01,352 [DEBUG][       Thread-250096][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 09:32:01,352 [DEBUG][       Thread-250096][   transport.py][1871] : client lang: <none>
2025-06-13 09:32:01,352 [DEBUG][       Thread-250096][   transport.py][1871] : server lang: <none>
2025-06-13 09:32:01,352 [DEBUG][       Thread-250096][   transport.py][1871] : kex follows: False
2025-06-13 09:32:01,352 [DEBUG][       Thread-250096][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 09:32:01,352 [DEBUG][       Thread-250096][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 09:32:01,352 [DEBUG][       Thread-250096][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 09:32:01,352 [DEBUG][       Thread-250096][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 09:32:01,352 [DEBUG][       Thread-250096][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 09:32:01,352 [DEBUG][       Thread-250096][   transport.py][1871] : Compression: none
2025-06-13 09:32:01,352 [DEBUG][       Thread-250096][   transport.py][1871] : === End of kex handshake ===
2025-06-13 09:32:01,369 [DEBUG][       Thread-250096][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 09:32:01,369 [DEBUG][       Thread-250096][   transport.py][1871] : Switch to new keys ...
2025-06-13 09:32:01,370 [DEBUG][       Thread-250096][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 09:32:01,370 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 09:32:01,370 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 09:32:01,372 [DEBUG][       Thread-250096][   transport.py][1871] : userauth is OK
2025-06-13 09:32:01,397 [ INFO][       Thread-250096][   transport.py][1871] : Authentication (password) successful!
2025-06-13 09:32:01,398 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 09:32:02,059 [DEBUG][       Thread-250096][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 09:32:02,059 [DEBUG][       Thread-250096][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 09:32:02,101 [DEBUG][       Thread-250096][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 09:32:02,101 [DEBUG][       Thread-250096][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 09:32:02,104 [DEBUG][       Thread-250096][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 09:32:02,118 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 09:32:02,118 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 09:32:02,120 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 09:32:02,121 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 09:32:02,126 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 09:32:02,128 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 09:32:02,128 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 09:32:02,129 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 09:32:02,129 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.313483 -999.00   +7.70  24.75     56   -0.30 1 1 1 1 1   887    0 8.21 15.82 ----- 24.8 24.8 35.8 29.3 11.3 -28.2 10.2 -28.6 8.9 -27.9 10.1 -26.0
2025-06-13 09:32:02,129 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 09:32:02,129 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 09:32:02,129 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.313483
2025-06-13 09:32:02,130 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 09:32:02,130 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 09:32:02,130 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 09:32:02,130 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 09:32:02,130 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 09:32:02,131 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T09:31:30', tmtdew=9.3, humidity=52.11, cloud=0.0, wind=19.34, temperature=7.96, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T07:31:24.931', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 09:32:02,132 [DEBUG][       Thread-250096][   transport.py][1871] : EOF in transport thread
2025-06-13 09:32:02,216 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 09:32:03,473 [DEBUG][Thread-250099 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:32:08,520 [DEBUG][Thread-250100 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:32:11,465 [DEBUG][Thread-250101 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:32:12,551 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:32:12,552 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:32:17,536 [DEBUG][Thread-250102 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:32:18,580 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:32:18,580 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:32:26,555 [DEBUG][Thread-250103 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:32:35,574 [DEBUG][Thread-250104 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:32:44,596 [DEBUG][Thread-250105 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:32:53,617 [DEBUG][Thread-250106 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:33:02,635 [DEBUG][Thread-250107 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:33:03,525 [DEBUG][Thread-250108 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:33:11,654 [DEBUG][Thread-250109 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:33:12,630 [DEBUG][Thread-250110 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:33:13,700 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:33:13,701 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:33:18,723 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:33:18,724 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:33:20,672 [DEBUG][Thread-250111 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:33:29,692 [DEBUG][Thread-250112 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:33:38,707 [DEBUG][Thread-250113 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:33:47,726 [DEBUG][Thread-250114 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:33:56,746 [DEBUG][Thread-250115 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:34:03,577 [DEBUG][Thread-250116 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:34:05,764 [DEBUG][Thread-250117 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:34:10,968 [WARNING][ poll_weather_worker][      driver.py][ 286] : Unable to open ssh connection for writing weather state to io.saao.ac.za: [Errno 110] Connection timed out
2025-06-13 09:34:13,777 [DEBUG][Thread-250118 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:34:14,779 [DEBUG][Thread-250119 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:34:14,830 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:34:14,830 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:34:18,862 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:34:18,863 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:34:20,978 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 09:34:20,978 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 09:34:20,978 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 09:34:20,981 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 09:34:21,466 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 9, 34, 9), 9.18, 52.22, 0.0, 17.79, 7.94, 0, 0, 0, 2, 0, 0),)
2025-06-13 09:34:21,466 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 09:34:09
2025-06-13 09:34:21,548 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 09:34:21,553 [DEBUG][       Thread-250120][   transport.py][1871] : starting thread (client mode): 0x863685e0
2025-06-13 09:34:21,554 [DEBUG][       Thread-250120][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 09:34:21,574 [DEBUG][       Thread-250120][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 09:34:21,574 [ INFO][       Thread-250120][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 09:34:21,577 [DEBUG][       Thread-250120][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 09:34:21,577 [DEBUG][       Thread-250120][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 09:34:21,577 [DEBUG][       Thread-250120][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 09:34:21,577 [DEBUG][       Thread-250120][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:34:21,577 [DEBUG][       Thread-250120][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:34:21,577 [DEBUG][       Thread-250120][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:34:21,577 [DEBUG][       Thread-250120][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:34:21,577 [DEBUG][       Thread-250120][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 09:34:21,577 [DEBUG][       Thread-250120][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 09:34:21,577 [DEBUG][       Thread-250120][   transport.py][1871] : client lang: <none>
2025-06-13 09:34:21,577 [DEBUG][       Thread-250120][   transport.py][1871] : server lang: <none>
2025-06-13 09:34:21,577 [DEBUG][       Thread-250120][   transport.py][1871] : kex follows: False
2025-06-13 09:34:21,577 [DEBUG][       Thread-250120][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 09:34:21,577 [DEBUG][       Thread-250120][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 09:34:21,577 [DEBUG][       Thread-250120][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 09:34:21,577 [DEBUG][       Thread-250120][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 09:34:21,577 [DEBUG][       Thread-250120][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 09:34:21,577 [DEBUG][       Thread-250120][   transport.py][1871] : Compression: none
2025-06-13 09:34:21,578 [DEBUG][       Thread-250120][   transport.py][1871] : === End of kex handshake ===
2025-06-13 09:34:21,587 [DEBUG][       Thread-250120][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 09:34:21,588 [DEBUG][       Thread-250120][   transport.py][1871] : Switch to new keys ...
2025-06-13 09:34:21,588 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 09:34:21,589 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 09:34:21,589 [DEBUG][       Thread-250120][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 09:34:21,590 [DEBUG][       Thread-250120][   transport.py][1871] : userauth is OK
2025-06-13 09:34:21,614 [ INFO][       Thread-250120][   transport.py][1871] : Authentication (password) successful!
2025-06-13 09:34:21,615 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 09:34:22,270 [DEBUG][       Thread-250120][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 09:34:22,270 [DEBUG][       Thread-250120][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 09:34:22,313 [DEBUG][       Thread-250120][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 09:34:22,313 [DEBUG][       Thread-250120][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 09:34:22,315 [DEBUG][       Thread-250120][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 09:34:22,327 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 09:34:22,327 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 09:34:22,329 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 09:34:22,330 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 09:34:22,335 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 09:34:22,337 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 09:34:22,337 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 09:34:22,338 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 09:34:22,338 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.315219 -999.00   +7.80  20.28     57   +0.00 1 1 1 1 1   887    0 8.18 17.63 ----- 20.3 20.3 40.0 26.8 11.4 -27.9 10.3 -28.5 9.0 -28.1 10.2 -26.2
2025-06-13 09:34:22,338 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 09:34:22,338 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 09:34:22,338 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.315219
2025-06-13 09:34:22,338 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 09:34:22,339 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 09:34:22,339 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 09:34:22,339 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 09:34:22,339 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 09:34:22,339 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T09:34:09', tmtdew=9.18, humidity=52.22, cloud=0.0, wind=17.79, temperature=7.94, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T07:33:54.922', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 09:34:22,339 [DEBUG][       Thread-250120][   transport.py][1871] : EOF in transport thread
2025-06-13 09:34:22,420 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 09:34:22,431 [DEBUG][       Thread-250123][   transport.py][1871] : starting thread (client mode): 0x867fceb0
2025-06-13 09:34:22,431 [DEBUG][       Thread-250123][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 09:34:22,450 [DEBUG][       Thread-250123][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 09:34:22,450 [ INFO][       Thread-250123][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 09:34:22,459 [DEBUG][       Thread-250123][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 09:34:22,459 [DEBUG][       Thread-250123][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 09:34:22,459 [DEBUG][       Thread-250123][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 09:34:22,459 [DEBUG][       Thread-250123][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:34:22,459 [DEBUG][       Thread-250123][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:34:22,459 [DEBUG][       Thread-250123][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:34:22,459 [DEBUG][       Thread-250123][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:34:22,460 [DEBUG][       Thread-250123][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 09:34:22,460 [DEBUG][       Thread-250123][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 09:34:22,460 [DEBUG][       Thread-250123][   transport.py][1871] : client lang: <none>
2025-06-13 09:34:22,460 [DEBUG][       Thread-250123][   transport.py][1871] : server lang: <none>
2025-06-13 09:34:22,460 [DEBUG][       Thread-250123][   transport.py][1871] : kex follows: False
2025-06-13 09:34:22,460 [DEBUG][       Thread-250123][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 09:34:22,460 [DEBUG][       Thread-250123][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 09:34:22,460 [DEBUG][       Thread-250123][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 09:34:22,460 [DEBUG][       Thread-250123][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 09:34:22,460 [DEBUG][       Thread-250123][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 09:34:22,460 [DEBUG][       Thread-250123][   transport.py][1871] : Compression: none
2025-06-13 09:34:22,460 [DEBUG][       Thread-250123][   transport.py][1871] : === End of kex handshake ===
2025-06-13 09:34:22,514 [DEBUG][       Thread-250123][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 09:34:22,514 [DEBUG][       Thread-250123][   transport.py][1871] : Switch to new keys ...
2025-06-13 09:34:22,515 [DEBUG][       Thread-250123][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 09:34:22,515 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 09:34:22,515 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 09:34:22,570 [DEBUG][       Thread-250123][   transport.py][1871] : userauth is OK
2025-06-13 09:34:22,570 [DEBUG][       Thread-250123][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 09:34:22,571 [DEBUG][       Thread-250123][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 09:34:22,571 [DEBUG][       Thread-250123][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 09:34:22,571 [DEBUG][       Thread-250123][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 09:34:22,590 [ INFO][       Thread-250123][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 09:34:22,591 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 09:34:22,591 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 09:34:23,596 [DEBUG][       Thread-250123][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 09:34:23,597 [DEBUG][       Thread-250123][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 09:34:23,647 [DEBUG][       Thread-250123][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 09:34:23,647 [DEBUG][       Thread-250123][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 09:34:23,656 [DEBUG][       Thread-250123][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 09:34:23,664 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 09:34:23,664 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 09:34:23,672 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 09:34:23,680 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 09:34:23,680 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 09:34:23,680 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 09:34:23,692 [DEBUG][       Thread-250123][   transport.py][1871] : EOF in transport thread
2025-06-13 09:34:23,796 [DEBUG][Thread-250125 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:34:32,826 [DEBUG][Thread-250126 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:34:33,687 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 09:34:33,688 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 09:34:33,688 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 09:34:33,691 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 09:34:34,178 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 9, 34, 9), 9.18, 52.22, 0.0, 17.79, 7.94, 0, 0, 0, 2, 0, 0),)
2025-06-13 09:34:34,178 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 09:34:09
2025-06-13 09:34:34,259 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 09:34:34,263 [DEBUG][       Thread-250127][   transport.py][1871] : starting thread (client mode): 0x867b62f0
2025-06-13 09:34:34,263 [DEBUG][       Thread-250127][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 09:34:34,283 [DEBUG][       Thread-250127][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 09:34:34,283 [ INFO][       Thread-250127][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 09:34:34,287 [DEBUG][       Thread-250127][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 09:34:34,287 [DEBUG][       Thread-250127][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 09:34:34,287 [DEBUG][       Thread-250127][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 09:34:34,287 [DEBUG][       Thread-250127][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:34:34,287 [DEBUG][       Thread-250127][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:34:34,287 [DEBUG][       Thread-250127][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:34:34,287 [DEBUG][       Thread-250127][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:34:34,287 [DEBUG][       Thread-250127][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 09:34:34,287 [DEBUG][       Thread-250127][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 09:34:34,287 [DEBUG][       Thread-250127][   transport.py][1871] : client lang: <none>
2025-06-13 09:34:34,287 [DEBUG][       Thread-250127][   transport.py][1871] : server lang: <none>
2025-06-13 09:34:34,287 [DEBUG][       Thread-250127][   transport.py][1871] : kex follows: False
2025-06-13 09:34:34,287 [DEBUG][       Thread-250127][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 09:34:34,287 [DEBUG][       Thread-250127][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 09:34:34,287 [DEBUG][       Thread-250127][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 09:34:34,287 [DEBUG][       Thread-250127][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 09:34:34,287 [DEBUG][       Thread-250127][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 09:34:34,287 [DEBUG][       Thread-250127][   transport.py][1871] : Compression: none
2025-06-13 09:34:34,287 [DEBUG][       Thread-250127][   transport.py][1871] : === End of kex handshake ===
2025-06-13 09:34:34,304 [DEBUG][       Thread-250127][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 09:34:34,304 [DEBUG][       Thread-250127][   transport.py][1871] : Switch to new keys ...
2025-06-13 09:34:34,304 [DEBUG][       Thread-250127][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 09:34:34,305 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 09:34:34,305 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 09:34:34,306 [DEBUG][       Thread-250127][   transport.py][1871] : userauth is OK
2025-06-13 09:34:34,320 [ INFO][       Thread-250127][   transport.py][1871] : Authentication (password) successful!
2025-06-13 09:34:34,320 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 09:34:34,937 [DEBUG][       Thread-250127][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 09:34:34,937 [DEBUG][       Thread-250127][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 09:34:34,981 [DEBUG][       Thread-250127][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 09:34:34,981 [DEBUG][       Thread-250127][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 09:34:34,984 [DEBUG][       Thread-250127][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 09:34:34,997 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 09:34:34,997 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 09:34:34,999 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 09:34:35,000 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 09:34:35,006 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 09:34:35,008 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 09:34:35,008 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 09:34:35,009 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 09:34:35,009 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.315219 -999.00   +7.80  20.28     57   +0.00 1 1 1 1 1   887    0 8.18 17.63 ----- 20.3 20.3 40.0 26.8 11.4 -27.9 10.3 -28.5 9.0 -28.1 10.2 -26.2
2025-06-13 09:34:35,009 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 09:34:35,009 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 09:34:35,009 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.315219
2025-06-13 09:34:35,010 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 09:34:35,010 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 09:34:35,010 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 09:34:35,010 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 09:34:35,010 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 09:34:35,010 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T09:34:09', tmtdew=9.18, humidity=52.22, cloud=0.0, wind=17.79, temperature=7.94, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T07:33:54.922', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 09:34:35,011 [DEBUG][       Thread-250127][   transport.py][1871] : EOF in transport thread
2025-06-13 09:34:35,094 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 09:34:35,103 [DEBUG][       Thread-250130][   transport.py][1871] : starting thread (client mode): 0x863a6e60
2025-06-13 09:34:35,103 [DEBUG][       Thread-250130][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 09:34:35,118 [DEBUG][       Thread-250130][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 09:34:35,118 [ INFO][       Thread-250130][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 09:34:35,126 [DEBUG][       Thread-250130][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 09:34:35,126 [DEBUG][       Thread-250130][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 09:34:35,126 [DEBUG][       Thread-250130][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 09:34:35,126 [DEBUG][       Thread-250130][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:34:35,126 [DEBUG][       Thread-250130][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:34:35,126 [DEBUG][       Thread-250130][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:34:35,126 [DEBUG][       Thread-250130][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:34:35,126 [DEBUG][       Thread-250130][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 09:34:35,126 [DEBUG][       Thread-250130][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 09:34:35,126 [DEBUG][       Thread-250130][   transport.py][1871] : client lang: <none>
2025-06-13 09:34:35,126 [DEBUG][       Thread-250130][   transport.py][1871] : server lang: <none>
2025-06-13 09:34:35,126 [DEBUG][       Thread-250130][   transport.py][1871] : kex follows: False
2025-06-13 09:34:35,126 [DEBUG][       Thread-250130][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 09:34:35,126 [DEBUG][       Thread-250130][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 09:34:35,126 [DEBUG][       Thread-250130][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 09:34:35,126 [DEBUG][       Thread-250130][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 09:34:35,127 [DEBUG][       Thread-250130][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 09:34:35,127 [DEBUG][       Thread-250130][   transport.py][1871] : Compression: none
2025-06-13 09:34:35,127 [DEBUG][       Thread-250130][   transport.py][1871] : === End of kex handshake ===
2025-06-13 09:34:35,182 [DEBUG][       Thread-250130][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 09:34:35,183 [DEBUG][       Thread-250130][   transport.py][1871] : Switch to new keys ...
2025-06-13 09:34:35,183 [DEBUG][       Thread-250130][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 09:34:35,183 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 09:34:35,184 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 09:34:35,239 [DEBUG][       Thread-250130][   transport.py][1871] : userauth is OK
2025-06-13 09:34:35,239 [DEBUG][       Thread-250130][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 09:34:35,239 [DEBUG][       Thread-250130][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 09:34:35,239 [DEBUG][       Thread-250130][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 09:34:35,239 [DEBUG][       Thread-250130][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 09:34:35,258 [ INFO][       Thread-250130][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 09:34:35,259 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 09:34:35,259 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 09:34:36,292 [DEBUG][       Thread-250130][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 09:34:36,293 [DEBUG][       Thread-250130][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 09:34:36,344 [DEBUG][       Thread-250130][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 09:34:36,344 [DEBUG][       Thread-250130][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 09:34:36,353 [DEBUG][       Thread-250130][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 09:34:36,362 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 09:34:36,362 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 09:34:36,371 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 09:34:36,379 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 09:34:36,380 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 09:34:36,380 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 09:34:36,388 [DEBUG][       Thread-250130][   transport.py][1871] : EOF in transport thread
2025-06-13 09:34:41,845 [DEBUG][Thread-250132 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:34:46,388 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 09:34:46,389 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 09:34:46,389 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 09:34:46,391 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 09:34:46,881 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 9, 34, 40), 9.21, 52.1, 0.0, 17.87, 7.93, 0, 0, 0, 2, 0, 0),)
2025-06-13 09:34:46,881 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 09:34:40
2025-06-13 09:34:46,962 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 09:34:46,968 [DEBUG][       Thread-250133][   transport.py][1871] : starting thread (client mode): 0x8636b280
2025-06-13 09:34:46,968 [DEBUG][       Thread-250133][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 09:34:46,987 [DEBUG][       Thread-250133][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 09:34:46,987 [ INFO][       Thread-250133][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 09:34:46,990 [DEBUG][       Thread-250133][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 09:34:46,990 [DEBUG][       Thread-250133][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 09:34:46,990 [DEBUG][       Thread-250133][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 09:34:46,990 [DEBUG][       Thread-250133][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:34:46,990 [DEBUG][       Thread-250133][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:34:46,990 [DEBUG][       Thread-250133][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:34:46,990 [DEBUG][       Thread-250133][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:34:46,990 [DEBUG][       Thread-250133][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 09:34:46,990 [DEBUG][       Thread-250133][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 09:34:46,990 [DEBUG][       Thread-250133][   transport.py][1871] : client lang: <none>
2025-06-13 09:34:46,990 [DEBUG][       Thread-250133][   transport.py][1871] : server lang: <none>
2025-06-13 09:34:46,990 [DEBUG][       Thread-250133][   transport.py][1871] : kex follows: False
2025-06-13 09:34:46,990 [DEBUG][       Thread-250133][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 09:34:46,990 [DEBUG][       Thread-250133][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 09:34:46,990 [DEBUG][       Thread-250133][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 09:34:46,990 [DEBUG][       Thread-250133][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 09:34:46,990 [DEBUG][       Thread-250133][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 09:34:46,990 [DEBUG][       Thread-250133][   transport.py][1871] : Compression: none
2025-06-13 09:34:46,990 [DEBUG][       Thread-250133][   transport.py][1871] : === End of kex handshake ===
2025-06-13 09:34:47,006 [DEBUG][       Thread-250133][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 09:34:47,006 [DEBUG][       Thread-250133][   transport.py][1871] : Switch to new keys ...
2025-06-13 09:34:47,006 [DEBUG][       Thread-250133][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 09:34:47,007 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 09:34:47,007 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 09:34:47,008 [DEBUG][       Thread-250133][   transport.py][1871] : userauth is OK
2025-06-13 09:34:47,021 [ INFO][       Thread-250133][   transport.py][1871] : Authentication (password) successful!
2025-06-13 09:34:47,022 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 09:34:47,646 [DEBUG][       Thread-250133][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 09:34:47,646 [DEBUG][       Thread-250133][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 09:34:47,689 [DEBUG][       Thread-250133][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 09:34:47,689 [DEBUG][       Thread-250133][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 09:34:47,692 [DEBUG][       Thread-250133][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 09:34:47,704 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 09:34:47,704 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 09:34:47,706 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 09:34:47,708 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 09:34:47,714 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 09:34:47,715 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 09:34:47,716 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 09:34:47,716 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 09:34:47,716 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.315219 -999.00   +7.80  20.28     57   +0.00 1 1 1 1 1   887    0 8.18 17.63 ----- 20.3 20.3 40.0 26.8 11.4 -27.9 10.3 -28.5 9.0 -28.1 10.2 -26.2
2025-06-13 09:34:47,716 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 09:34:47,717 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 09:34:47,717 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.315219
2025-06-13 09:34:47,717 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 09:34:47,717 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 09:34:47,718 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 09:34:47,718 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 09:34:47,718 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 09:34:47,718 [DEBUG][       Thread-250133][   transport.py][1871] : EOF in transport thread
2025-06-13 09:34:47,718 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T09:34:40', tmtdew=9.21, humidity=52.1, cloud=0.0, wind=17.87, temperature=7.93, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T07:33:54.922', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 09:34:47,801 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 09:34:47,813 [DEBUG][       Thread-250136][   transport.py][1871] : starting thread (client mode): 0x867ff250
2025-06-13 09:34:47,814 [DEBUG][       Thread-250136][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 09:34:47,829 [DEBUG][       Thread-250136][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 09:34:47,829 [ INFO][       Thread-250136][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 09:34:47,836 [DEBUG][       Thread-250136][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 09:34:47,837 [DEBUG][       Thread-250136][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 09:34:47,837 [DEBUG][       Thread-250136][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 09:34:47,837 [DEBUG][       Thread-250136][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:34:47,837 [DEBUG][       Thread-250136][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:34:47,837 [DEBUG][       Thread-250136][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:34:47,837 [DEBUG][       Thread-250136][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:34:47,837 [DEBUG][       Thread-250136][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 09:34:47,837 [DEBUG][       Thread-250136][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 09:34:47,837 [DEBUG][       Thread-250136][   transport.py][1871] : client lang: <none>
2025-06-13 09:34:47,837 [DEBUG][       Thread-250136][   transport.py][1871] : server lang: <none>
2025-06-13 09:34:47,837 [DEBUG][       Thread-250136][   transport.py][1871] : kex follows: False
2025-06-13 09:34:47,837 [DEBUG][       Thread-250136][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 09:34:47,837 [DEBUG][       Thread-250136][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 09:34:47,837 [DEBUG][       Thread-250136][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 09:34:47,837 [DEBUG][       Thread-250136][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 09:34:47,837 [DEBUG][       Thread-250136][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 09:34:47,837 [DEBUG][       Thread-250136][   transport.py][1871] : Compression: none
2025-06-13 09:34:47,837 [DEBUG][       Thread-250136][   transport.py][1871] : === End of kex handshake ===
2025-06-13 09:34:47,896 [DEBUG][       Thread-250136][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 09:34:47,896 [DEBUG][       Thread-250136][   transport.py][1871] : Switch to new keys ...
2025-06-13 09:34:47,897 [DEBUG][       Thread-250136][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 09:34:47,897 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 09:34:47,898 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 09:34:47,956 [DEBUG][       Thread-250136][   transport.py][1871] : userauth is OK
2025-06-13 09:34:47,957 [DEBUG][       Thread-250136][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 09:34:47,957 [DEBUG][       Thread-250136][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 09:34:47,957 [DEBUG][       Thread-250136][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 09:34:47,957 [DEBUG][       Thread-250136][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 09:34:47,979 [ INFO][       Thread-250136][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 09:34:47,980 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 09:34:47,980 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 09:34:49,467 [DEBUG][       Thread-250136][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 09:34:49,467 [DEBUG][       Thread-250136][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 09:34:49,517 [DEBUG][       Thread-250136][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 09:34:49,517 [DEBUG][       Thread-250136][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 09:34:49,526 [DEBUG][       Thread-250136][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 09:34:49,535 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 09:34:49,535 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 09:34:49,544 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 09:34:49,552 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 09:34:49,552 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 09:34:49,552 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 09:34:49,566 [DEBUG][       Thread-250136][   transport.py][1871] : EOF in transport thread
2025-06-13 09:34:50,859 [DEBUG][Thread-250138 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:34:59,558 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 09:34:59,559 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 09:34:59,559 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 09:34:59,562 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 09:34:59,881 [DEBUG][Thread-250139 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:35:00,038 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 9, 34, 40), 9.21, 52.1, 0.0, 17.87, 7.93, 0, 0, 0, 2, 0, 0),)
2025-06-13 09:35:00,038 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 09:34:40
2025-06-13 09:35:00,118 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 09:35:00,122 [DEBUG][       Thread-250140][   transport.py][1871] : starting thread (client mode): 0x867b7010
2025-06-13 09:35:00,122 [DEBUG][       Thread-250140][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 09:35:00,143 [DEBUG][       Thread-250140][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 09:35:00,143 [ INFO][       Thread-250140][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 09:35:00,147 [DEBUG][       Thread-250140][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 09:35:00,147 [DEBUG][       Thread-250140][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 09:35:00,147 [DEBUG][       Thread-250140][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 09:35:00,147 [DEBUG][       Thread-250140][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:35:00,147 [DEBUG][       Thread-250140][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:35:00,147 [DEBUG][       Thread-250140][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:35:00,147 [DEBUG][       Thread-250140][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:35:00,147 [DEBUG][       Thread-250140][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 09:35:00,147 [DEBUG][       Thread-250140][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 09:35:00,147 [DEBUG][       Thread-250140][   transport.py][1871] : client lang: <none>
2025-06-13 09:35:00,147 [DEBUG][       Thread-250140][   transport.py][1871] : server lang: <none>
2025-06-13 09:35:00,147 [DEBUG][       Thread-250140][   transport.py][1871] : kex follows: False
2025-06-13 09:35:00,147 [DEBUG][       Thread-250140][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 09:35:00,147 [DEBUG][       Thread-250140][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 09:35:00,147 [DEBUG][       Thread-250140][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 09:35:00,147 [DEBUG][       Thread-250140][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 09:35:00,147 [DEBUG][       Thread-250140][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 09:35:00,147 [DEBUG][       Thread-250140][   transport.py][1871] : Compression: none
2025-06-13 09:35:00,147 [DEBUG][       Thread-250140][   transport.py][1871] : === End of kex handshake ===
2025-06-13 09:35:00,168 [DEBUG][       Thread-250140][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 09:35:00,168 [DEBUG][       Thread-250140][   transport.py][1871] : Switch to new keys ...
2025-06-13 09:35:00,169 [DEBUG][       Thread-250140][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 09:35:00,169 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 09:35:00,169 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 09:35:00,170 [DEBUG][       Thread-250140][   transport.py][1871] : userauth is OK
2025-06-13 09:35:00,194 [ INFO][       Thread-250140][   transport.py][1871] : Authentication (password) successful!
2025-06-13 09:35:00,195 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 09:35:00,841 [DEBUG][       Thread-250140][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 09:35:00,841 [DEBUG][       Thread-250140][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 09:35:00,885 [DEBUG][       Thread-250140][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 09:35:00,885 [DEBUG][       Thread-250140][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 09:35:00,888 [DEBUG][       Thread-250140][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 09:35:00,900 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 09:35:00,900 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 09:35:00,902 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 09:35:00,903 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 09:35:00,909 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 09:35:00,911 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 09:35:00,911 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 09:35:00,912 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 09:35:00,912 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.315566 -999.00   +7.80  19.97     57   -0.10 1 1 1 1 1   887    0 8.25 17.16 ----- 20.0 20.0 42.2 26.4 11.5 -27.9 10.3 -28.5 9.0 -28.2 10.2 -26.1
2025-06-13 09:35:00,912 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 09:35:00,912 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 09:35:00,912 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.315566
2025-06-13 09:35:00,912 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 09:35:00,913 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 09:35:00,913 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 09:35:00,913 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 09:35:00,913 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 09:35:00,913 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T09:34:40', tmtdew=9.21, humidity=52.1, cloud=0.0, wind=17.87, temperature=7.93, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T07:34:24.902', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 09:35:00,914 [DEBUG][       Thread-250140][   transport.py][1871] : EOF in transport thread
2025-06-13 09:35:00,998 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 09:35:01,007 [DEBUG][       Thread-250143][   transport.py][1871] : starting thread (client mode): 0x867fe5f0
2025-06-13 09:35:01,007 [DEBUG][       Thread-250143][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 09:35:01,023 [DEBUG][       Thread-250143][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 09:35:01,023 [ INFO][       Thread-250143][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 09:35:01,031 [DEBUG][       Thread-250143][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 09:35:01,031 [DEBUG][       Thread-250143][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 09:35:01,031 [DEBUG][       Thread-250143][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 09:35:01,031 [DEBUG][       Thread-250143][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:35:01,031 [DEBUG][       Thread-250143][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:35:01,031 [DEBUG][       Thread-250143][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:35:01,031 [DEBUG][       Thread-250143][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:35:01,031 [DEBUG][       Thread-250143][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 09:35:01,031 [DEBUG][       Thread-250143][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 09:35:01,031 [DEBUG][       Thread-250143][   transport.py][1871] : client lang: <none>
2025-06-13 09:35:01,031 [DEBUG][       Thread-250143][   transport.py][1871] : server lang: <none>
2025-06-13 09:35:01,031 [DEBUG][       Thread-250143][   transport.py][1871] : kex follows: False
2025-06-13 09:35:01,031 [DEBUG][       Thread-250143][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 09:35:01,031 [DEBUG][       Thread-250143][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 09:35:01,031 [DEBUG][       Thread-250143][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 09:35:01,031 [DEBUG][       Thread-250143][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 09:35:01,031 [DEBUG][       Thread-250143][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 09:35:01,031 [DEBUG][       Thread-250143][   transport.py][1871] : Compression: none
2025-06-13 09:35:01,031 [DEBUG][       Thread-250143][   transport.py][1871] : === End of kex handshake ===
2025-06-13 09:35:01,091 [DEBUG][       Thread-250143][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 09:35:01,091 [DEBUG][       Thread-250143][   transport.py][1871] : Switch to new keys ...
2025-06-13 09:35:01,091 [DEBUG][       Thread-250143][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 09:35:01,091 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 09:35:01,092 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 09:35:01,146 [DEBUG][       Thread-250143][   transport.py][1871] : userauth is OK
2025-06-13 09:35:01,146 [DEBUG][       Thread-250143][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 09:35:01,146 [DEBUG][       Thread-250143][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 09:35:01,146 [DEBUG][       Thread-250143][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 09:35:01,146 [DEBUG][       Thread-250143][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 09:35:01,160 [ INFO][       Thread-250143][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 09:35:01,160 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 09:35:01,160 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 09:35:02,200 [DEBUG][       Thread-250143][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 09:35:02,200 [DEBUG][       Thread-250143][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 09:35:02,248 [DEBUG][       Thread-250143][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 09:35:02,248 [DEBUG][       Thread-250143][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 09:35:02,257 [DEBUG][       Thread-250143][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 09:35:02,266 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 09:35:02,266 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 09:35:02,275 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 09:35:02,283 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 09:35:02,284 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 09:35:02,284 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 09:35:02,292 [DEBUG][       Thread-250143][   transport.py][1871] : EOF in transport thread
2025-06-13 09:35:03,626 [DEBUG][Thread-250145 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:35:08,901 [DEBUG][Thread-250146 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:35:12,294 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 09:35:12,294 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 09:35:12,294 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 09:35:12,296 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 09:35:12,774 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 9, 34, 40), 9.21, 52.1, 0.0, 17.87, 7.93, 0, 0, 0, 2, 0, 0),)
2025-06-13 09:35:12,774 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 09:34:40
2025-06-13 09:35:12,854 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 09:35:12,859 [DEBUG][       Thread-250147][   transport.py][1871] : starting thread (client mode): 0x8636a620
2025-06-13 09:35:12,859 [DEBUG][       Thread-250147][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 09:35:12,881 [DEBUG][       Thread-250147][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 09:35:12,881 [ INFO][       Thread-250147][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 09:35:12,885 [DEBUG][       Thread-250147][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 09:35:12,885 [DEBUG][       Thread-250147][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 09:35:12,885 [DEBUG][       Thread-250147][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 09:35:12,885 [DEBUG][       Thread-250147][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:35:12,885 [DEBUG][       Thread-250147][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:35:12,885 [DEBUG][       Thread-250147][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:35:12,885 [DEBUG][       Thread-250147][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:35:12,885 [DEBUG][       Thread-250147][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 09:35:12,886 [DEBUG][       Thread-250147][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 09:35:12,886 [DEBUG][       Thread-250147][   transport.py][1871] : client lang: <none>
2025-06-13 09:35:12,886 [DEBUG][       Thread-250147][   transport.py][1871] : server lang: <none>
2025-06-13 09:35:12,886 [DEBUG][       Thread-250147][   transport.py][1871] : kex follows: False
2025-06-13 09:35:12,886 [DEBUG][       Thread-250147][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 09:35:12,886 [DEBUG][       Thread-250147][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 09:35:12,886 [DEBUG][       Thread-250147][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 09:35:12,886 [DEBUG][       Thread-250147][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 09:35:12,886 [DEBUG][       Thread-250147][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 09:35:12,886 [DEBUG][       Thread-250147][   transport.py][1871] : Compression: none
2025-06-13 09:35:12,886 [DEBUG][       Thread-250147][   transport.py][1871] : === End of kex handshake ===
2025-06-13 09:35:12,902 [DEBUG][       Thread-250147][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 09:35:12,903 [DEBUG][       Thread-250147][   transport.py][1871] : Switch to new keys ...
2025-06-13 09:35:12,903 [DEBUG][       Thread-250147][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 09:35:12,904 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 09:35:12,904 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 09:35:12,905 [DEBUG][       Thread-250147][   transport.py][1871] : userauth is OK
2025-06-13 09:35:12,918 [ INFO][       Thread-250147][   transport.py][1871] : Authentication (password) successful!
2025-06-13 09:35:12,919 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 09:35:14,838 [DEBUG][Thread-250149 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:35:15,919 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:35:15,921 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:35:16,395 [DEBUG][       Thread-250147][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 09:35:16,395 [DEBUG][       Thread-250147][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 09:35:16,437 [DEBUG][       Thread-250147][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 09:35:16,437 [DEBUG][       Thread-250147][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 09:35:16,440 [DEBUG][       Thread-250147][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 09:35:16,484 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 09:35:16,485 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 09:35:16,487 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 09:35:16,488 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 09:35:16,518 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 09:35:16,520 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 09:35:16,520 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 09:35:16,521 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 09:35:16,521 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.315566 -999.00   +7.80  19.97     57   -0.10 1 1 1 1 1   887    0 8.25 17.16 ----- 20.0 20.0 42.2 26.4 11.5 -27.9 10.3 -28.5 9.0 -28.2 10.2 -26.1
2025-06-13 09:35:16,521 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 09:35:16,521 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 09:35:16,521 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.315566
2025-06-13 09:35:16,521 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 09:35:16,522 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 09:35:16,522 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 09:35:16,522 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 09:35:16,522 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 09:35:16,522 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T09:34:40', tmtdew=9.21, humidity=52.1, cloud=0.0, wind=17.87, temperature=7.93, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T07:34:24.902', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 09:35:16,522 [DEBUG][       Thread-250147][   transport.py][1871] : EOF in transport thread
2025-06-13 09:35:16,599 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 09:35:16,611 [DEBUG][       Thread-250151][   transport.py][1871] : starting thread (client mode): 0x863bec20
2025-06-13 09:35:16,611 [DEBUG][       Thread-250151][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 09:35:16,630 [DEBUG][       Thread-250151][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 09:35:16,630 [ INFO][       Thread-250151][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 09:35:16,638 [DEBUG][       Thread-250151][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 09:35:16,638 [DEBUG][       Thread-250151][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 09:35:16,638 [DEBUG][       Thread-250151][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 09:35:16,638 [DEBUG][       Thread-250151][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:35:16,638 [DEBUG][       Thread-250151][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:35:16,638 [DEBUG][       Thread-250151][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:35:16,638 [DEBUG][       Thread-250151][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:35:16,638 [DEBUG][       Thread-250151][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 09:35:16,638 [DEBUG][       Thread-250151][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 09:35:16,638 [DEBUG][       Thread-250151][   transport.py][1871] : client lang: <none>
2025-06-13 09:35:16,638 [DEBUG][       Thread-250151][   transport.py][1871] : server lang: <none>
2025-06-13 09:35:16,638 [DEBUG][       Thread-250151][   transport.py][1871] : kex follows: False
2025-06-13 09:35:16,638 [DEBUG][       Thread-250151][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 09:35:16,638 [DEBUG][       Thread-250151][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 09:35:16,638 [DEBUG][       Thread-250151][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 09:35:16,638 [DEBUG][       Thread-250151][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 09:35:16,638 [DEBUG][       Thread-250151][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 09:35:16,638 [DEBUG][       Thread-250151][   transport.py][1871] : Compression: none
2025-06-13 09:35:16,638 [DEBUG][       Thread-250151][   transport.py][1871] : === End of kex handshake ===
2025-06-13 09:35:16,695 [DEBUG][       Thread-250151][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 09:35:16,696 [DEBUG][       Thread-250151][   transport.py][1871] : Switch to new keys ...
2025-06-13 09:35:16,696 [DEBUG][       Thread-250151][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 09:35:16,696 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 09:35:16,697 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 09:35:16,750 [DEBUG][       Thread-250151][   transport.py][1871] : userauth is OK
2025-06-13 09:35:16,751 [DEBUG][       Thread-250151][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 09:35:16,751 [DEBUG][       Thread-250151][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 09:35:16,751 [DEBUG][       Thread-250151][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 09:35:16,751 [DEBUG][       Thread-250151][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 09:35:16,770 [ INFO][       Thread-250151][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 09:35:16,770 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 09:35:16,770 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 09:35:17,794 [DEBUG][       Thread-250151][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 09:35:17,794 [DEBUG][       Thread-250151][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 09:35:17,846 [DEBUG][       Thread-250151][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 09:35:17,846 [DEBUG][       Thread-250151][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 09:35:17,855 [DEBUG][       Thread-250151][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 09:35:17,865 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 09:35:17,865 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 09:35:17,874 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 09:35:17,887 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 09:35:17,887 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 09:35:17,888 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 09:35:17,898 [DEBUG][       Thread-250151][   transport.py][1871] : EOF in transport thread
2025-06-13 09:35:17,919 [DEBUG][Thread-250153 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:35:18,996 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:35:18,997 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:35:26,936 [DEBUG][Thread-250154 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:35:27,896 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 09:35:27,896 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 09:35:27,896 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 09:35:27,896 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 09:35:28,399 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 9, 35, 12), 9.24, 51.98, 0.0, 17.89, 8.0, 0, 0, 0, 2, 0, 0),)
2025-06-13 09:35:28,399 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 09:35:12
2025-06-13 09:35:28,484 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 09:35:28,488 [DEBUG][       Thread-250155][   transport.py][1871] : starting thread (client mode): 0x863bd540
2025-06-13 09:35:28,488 [DEBUG][       Thread-250155][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 09:35:28,507 [DEBUG][       Thread-250155][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 09:35:28,507 [ INFO][       Thread-250155][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 09:35:28,511 [DEBUG][       Thread-250155][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 09:35:28,511 [DEBUG][       Thread-250155][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 09:35:28,511 [DEBUG][       Thread-250155][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 09:35:28,511 [DEBUG][       Thread-250155][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:35:28,511 [DEBUG][       Thread-250155][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:35:28,511 [DEBUG][       Thread-250155][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:35:28,511 [DEBUG][       Thread-250155][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:35:28,511 [DEBUG][       Thread-250155][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 09:35:28,511 [DEBUG][       Thread-250155][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 09:35:28,511 [DEBUG][       Thread-250155][   transport.py][1871] : client lang: <none>
2025-06-13 09:35:28,511 [DEBUG][       Thread-250155][   transport.py][1871] : server lang: <none>
2025-06-13 09:35:28,511 [DEBUG][       Thread-250155][   transport.py][1871] : kex follows: False
2025-06-13 09:35:28,511 [DEBUG][       Thread-250155][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 09:35:28,511 [DEBUG][       Thread-250155][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 09:35:28,511 [DEBUG][       Thread-250155][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 09:35:28,511 [DEBUG][       Thread-250155][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 09:35:28,511 [DEBUG][       Thread-250155][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 09:35:28,511 [DEBUG][       Thread-250155][   transport.py][1871] : Compression: none
2025-06-13 09:35:28,511 [DEBUG][       Thread-250155][   transport.py][1871] : === End of kex handshake ===
2025-06-13 09:35:28,526 [DEBUG][       Thread-250155][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 09:35:28,526 [DEBUG][       Thread-250155][   transport.py][1871] : Switch to new keys ...
2025-06-13 09:35:28,526 [DEBUG][       Thread-250155][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 09:35:28,526 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 09:35:28,526 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 09:35:28,527 [DEBUG][       Thread-250155][   transport.py][1871] : userauth is OK
2025-06-13 09:35:28,575 [ INFO][       Thread-250155][   transport.py][1871] : Authentication (password) successful!
2025-06-13 09:35:28,575 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 09:35:29,144 [DEBUG][       Thread-250155][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 09:35:29,144 [DEBUG][       Thread-250155][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 09:35:29,184 [DEBUG][       Thread-250155][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 09:35:29,184 [DEBUG][       Thread-250155][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 09:35:29,186 [DEBUG][       Thread-250155][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 09:35:29,195 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 09:35:29,195 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 09:35:29,196 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 09:35:29,196 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 09:35:29,198 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 09:35:29,199 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 09:35:29,199 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 09:35:29,199 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 09:35:29,199 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.315913 -999.00   +7.80  23.40     57   -0.10 1 1 1 1 1   887    0 8.28 17.38 ----- 23.4 23.4 55.0 27.2 11.6 -27.9 10.3 -28.7 9.0 -28.0 10.2 -26.2
2025-06-13 09:35:29,199 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 09:35:29,199 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 09:35:29,199 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.315913
2025-06-13 09:35:29,199 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 09:35:29,199 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 09:35:29,199 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 09:35:29,199 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 09:35:29,199 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 09:35:29,199 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T09:35:12', tmtdew=9.24, humidity=51.98, cloud=0.0, wind=17.89, temperature=8.0, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T07:34:54.883', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 09:35:29,199 [DEBUG][       Thread-250155][   transport.py][1871] : EOF in transport thread
2025-06-13 09:35:29,274 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 09:35:29,285 [DEBUG][       Thread-250158][   transport.py][1871] : starting thread (client mode): 0x868c80a0
2025-06-13 09:35:29,285 [DEBUG][       Thread-250158][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 09:35:29,309 [DEBUG][       Thread-250158][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 09:35:29,309 [ INFO][       Thread-250158][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 09:35:29,317 [DEBUG][       Thread-250158][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 09:35:29,317 [DEBUG][       Thread-250158][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 09:35:29,317 [DEBUG][       Thread-250158][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 09:35:29,317 [DEBUG][       Thread-250158][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:35:29,317 [DEBUG][       Thread-250158][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:35:29,317 [DEBUG][       Thread-250158][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:35:29,317 [DEBUG][       Thread-250158][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:35:29,317 [DEBUG][       Thread-250158][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 09:35:29,317 [DEBUG][       Thread-250158][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 09:35:29,317 [DEBUG][       Thread-250158][   transport.py][1871] : client lang: <none>
2025-06-13 09:35:29,317 [DEBUG][       Thread-250158][   transport.py][1871] : server lang: <none>
2025-06-13 09:35:29,317 [DEBUG][       Thread-250158][   transport.py][1871] : kex follows: False
2025-06-13 09:35:29,317 [DEBUG][       Thread-250158][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 09:35:29,317 [DEBUG][       Thread-250158][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 09:35:29,317 [DEBUG][       Thread-250158][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 09:35:29,317 [DEBUG][       Thread-250158][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 09:35:29,317 [DEBUG][       Thread-250158][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 09:35:29,317 [DEBUG][       Thread-250158][   transport.py][1871] : Compression: none
2025-06-13 09:35:29,317 [DEBUG][       Thread-250158][   transport.py][1871] : === End of kex handshake ===
2025-06-13 09:35:29,380 [DEBUG][       Thread-250158][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 09:35:29,380 [DEBUG][       Thread-250158][   transport.py][1871] : Switch to new keys ...
2025-06-13 09:35:29,381 [DEBUG][       Thread-250158][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 09:35:29,381 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 09:35:29,381 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 09:35:29,438 [DEBUG][       Thread-250158][   transport.py][1871] : userauth is OK
2025-06-13 09:35:29,438 [DEBUG][       Thread-250158][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 09:35:29,438 [DEBUG][       Thread-250158][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 09:35:29,438 [DEBUG][       Thread-250158][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 09:35:29,438 [DEBUG][       Thread-250158][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 09:35:29,456 [ INFO][       Thread-250158][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 09:35:29,456 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 09:35:29,456 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 09:35:30,507 [DEBUG][       Thread-250158][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 09:35:30,507 [DEBUG][       Thread-250158][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 09:35:30,556 [DEBUG][       Thread-250158][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 09:35:30,556 [DEBUG][       Thread-250158][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 09:35:30,564 [DEBUG][       Thread-250158][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 09:35:30,574 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 09:35:30,574 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 09:35:30,582 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 09:35:30,590 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 09:35:30,590 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 09:35:30,590 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 09:35:30,598 [DEBUG][       Thread-250158][   transport.py][1871] : EOF in transport thread
2025-06-13 09:35:35,953 [DEBUG][Thread-250160 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:35:40,600 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 09:35:40,600 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 09:35:40,600 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 09:35:40,603 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 09:35:41,086 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 9, 35, 12), 9.24, 51.98, 0.0, 17.89, 8.0, 0, 0, 0, 2, 0, 0),)
2025-06-13 09:35:41,086 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 09:35:12
2025-06-13 09:35:41,167 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 09:35:41,172 [DEBUG][       Thread-250161][   transport.py][1871] : starting thread (client mode): 0x863bf9a0
2025-06-13 09:35:41,172 [DEBUG][       Thread-250161][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 09:35:41,192 [DEBUG][       Thread-250161][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 09:35:41,192 [ INFO][       Thread-250161][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 09:35:41,195 [DEBUG][       Thread-250161][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 09:35:41,196 [DEBUG][       Thread-250161][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 09:35:41,196 [DEBUG][       Thread-250161][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 09:35:41,196 [DEBUG][       Thread-250161][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:35:41,196 [DEBUG][       Thread-250161][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:35:41,196 [DEBUG][       Thread-250161][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:35:41,196 [DEBUG][       Thread-250161][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:35:41,196 [DEBUG][       Thread-250161][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 09:35:41,196 [DEBUG][       Thread-250161][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 09:35:41,196 [DEBUG][       Thread-250161][   transport.py][1871] : client lang: <none>
2025-06-13 09:35:41,196 [DEBUG][       Thread-250161][   transport.py][1871] : server lang: <none>
2025-06-13 09:35:41,196 [DEBUG][       Thread-250161][   transport.py][1871] : kex follows: False
2025-06-13 09:35:41,196 [DEBUG][       Thread-250161][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 09:35:41,196 [DEBUG][       Thread-250161][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 09:35:41,196 [DEBUG][       Thread-250161][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 09:35:41,196 [DEBUG][       Thread-250161][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 09:35:41,196 [DEBUG][       Thread-250161][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 09:35:41,196 [DEBUG][       Thread-250161][   transport.py][1871] : Compression: none
2025-06-13 09:35:41,196 [DEBUG][       Thread-250161][   transport.py][1871] : === End of kex handshake ===
2025-06-13 09:35:41,213 [DEBUG][       Thread-250161][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 09:35:41,214 [DEBUG][       Thread-250161][   transport.py][1871] : Switch to new keys ...
2025-06-13 09:35:41,214 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 09:35:41,215 [DEBUG][       Thread-250161][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 09:35:41,215 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 09:35:41,216 [DEBUG][       Thread-250161][   transport.py][1871] : userauth is OK
2025-06-13 09:35:41,229 [ INFO][       Thread-250161][   transport.py][1871] : Authentication (password) successful!
2025-06-13 09:35:41,230 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 09:35:41,822 [DEBUG][       Thread-250161][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 09:35:41,822 [DEBUG][       Thread-250161][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 09:35:41,865 [DEBUG][       Thread-250161][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 09:35:41,865 [DEBUG][       Thread-250161][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 09:35:41,868 [DEBUG][       Thread-250161][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 09:35:41,879 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 09:35:41,879 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 09:35:41,881 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 09:35:41,883 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 09:35:41,888 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 09:35:41,889 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 09:35:41,890 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 09:35:41,890 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 09:35:41,890 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.315913 -999.00   +7.80  23.40     57   -0.10 1 1 1 1 1   887    0 8.28 17.38 ----- 23.4 23.4 55.0 27.2 11.6 -27.9 10.3 -28.7 9.0 -28.0 10.2 -26.2
2025-06-13 09:35:41,890 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 09:35:41,890 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 09:35:41,890 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.315913
2025-06-13 09:35:41,891 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 09:35:41,891 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 09:35:41,891 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 09:35:41,891 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 09:35:41,892 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 09:35:41,892 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T09:35:12', tmtdew=9.24, humidity=51.98, cloud=0.0, wind=17.89, temperature=8.0, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T07:34:54.883', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 09:35:41,892 [DEBUG][       Thread-250161][   transport.py][1871] : EOF in transport thread
2025-06-13 09:35:41,975 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 09:35:41,986 [DEBUG][       Thread-250164][   transport.py][1871] : starting thread (client mode): 0x863ed1e0
2025-06-13 09:35:41,986 [DEBUG][       Thread-250164][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 09:35:42,001 [DEBUG][       Thread-250164][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 09:35:42,001 [ INFO][       Thread-250164][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 09:35:42,009 [DEBUG][       Thread-250164][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 09:35:42,009 [DEBUG][       Thread-250164][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 09:35:42,009 [DEBUG][       Thread-250164][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 09:35:42,009 [DEBUG][       Thread-250164][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:35:42,009 [DEBUG][       Thread-250164][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:35:42,009 [DEBUG][       Thread-250164][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:35:42,009 [DEBUG][       Thread-250164][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:35:42,009 [DEBUG][       Thread-250164][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 09:35:42,009 [DEBUG][       Thread-250164][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 09:35:42,009 [DEBUG][       Thread-250164][   transport.py][1871] : client lang: <none>
2025-06-13 09:35:42,009 [DEBUG][       Thread-250164][   transport.py][1871] : server lang: <none>
2025-06-13 09:35:42,009 [DEBUG][       Thread-250164][   transport.py][1871] : kex follows: False
2025-06-13 09:35:42,009 [DEBUG][       Thread-250164][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 09:35:42,009 [DEBUG][       Thread-250164][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 09:35:42,009 [DEBUG][       Thread-250164][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 09:35:42,010 [DEBUG][       Thread-250164][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 09:35:42,010 [DEBUG][       Thread-250164][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 09:35:42,010 [DEBUG][       Thread-250164][   transport.py][1871] : Compression: none
2025-06-13 09:35:42,010 [DEBUG][       Thread-250164][   transport.py][1871] : === End of kex handshake ===
2025-06-13 09:35:42,067 [DEBUG][       Thread-250164][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 09:35:42,067 [DEBUG][       Thread-250164][   transport.py][1871] : Switch to new keys ...
2025-06-13 09:35:42,067 [DEBUG][       Thread-250164][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 09:35:42,068 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 09:35:42,068 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 09:35:42,126 [DEBUG][       Thread-250164][   transport.py][1871] : userauth is OK
2025-06-13 09:35:42,127 [DEBUG][       Thread-250164][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 09:35:42,127 [DEBUG][       Thread-250164][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 09:35:42,127 [DEBUG][       Thread-250164][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 09:35:42,127 [DEBUG][       Thread-250164][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 09:35:42,146 [ INFO][       Thread-250164][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 09:35:42,146 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 09:35:42,147 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 09:35:43,184 [DEBUG][       Thread-250164][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 09:35:43,184 [DEBUG][       Thread-250164][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 09:35:43,231 [DEBUG][       Thread-250164][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 09:35:43,232 [DEBUG][       Thread-250164][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 09:35:43,241 [DEBUG][       Thread-250164][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 09:35:43,249 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 09:35:43,250 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 09:35:43,259 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 09:35:43,267 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 09:35:43,268 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 09:35:43,268 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 09:35:43,276 [DEBUG][       Thread-250164][   transport.py][1871] : EOF in transport thread
2025-06-13 09:35:44,984 [DEBUG][Thread-250166 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:35:53,279 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 09:35:53,279 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 09:35:53,279 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 09:35:53,281 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 09:35:53,756 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 9, 35, 44), 9.24, 51.98, 0.0, 19.62, 8.0, 0, 0, 0, 2, 0, 0),)
2025-06-13 09:35:53,756 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 09:35:44
2025-06-13 09:35:53,836 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 09:35:53,842 [DEBUG][       Thread-250167][   transport.py][1871] : starting thread (client mode): 0x863bda50
2025-06-13 09:35:53,842 [DEBUG][       Thread-250167][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 09:35:53,862 [DEBUG][       Thread-250167][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 09:35:53,862 [ INFO][       Thread-250167][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 09:35:53,865 [DEBUG][       Thread-250167][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 09:35:53,865 [DEBUG][       Thread-250167][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 09:35:53,865 [DEBUG][       Thread-250167][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 09:35:53,866 [DEBUG][       Thread-250167][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:35:53,866 [DEBUG][       Thread-250167][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:35:53,866 [DEBUG][       Thread-250167][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:35:53,866 [DEBUG][       Thread-250167][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:35:53,866 [DEBUG][       Thread-250167][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 09:35:53,866 [DEBUG][       Thread-250167][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 09:35:53,866 [DEBUG][       Thread-250167][   transport.py][1871] : client lang: <none>
2025-06-13 09:35:53,866 [DEBUG][       Thread-250167][   transport.py][1871] : server lang: <none>
2025-06-13 09:35:53,866 [DEBUG][       Thread-250167][   transport.py][1871] : kex follows: False
2025-06-13 09:35:53,866 [DEBUG][       Thread-250167][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 09:35:53,866 [DEBUG][       Thread-250167][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 09:35:53,866 [DEBUG][       Thread-250167][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 09:35:53,866 [DEBUG][       Thread-250167][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 09:35:53,866 [DEBUG][       Thread-250167][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 09:35:53,866 [DEBUG][       Thread-250167][   transport.py][1871] : Compression: none
2025-06-13 09:35:53,866 [DEBUG][       Thread-250167][   transport.py][1871] : === End of kex handshake ===
2025-06-13 09:35:53,880 [DEBUG][       Thread-250167][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 09:35:53,880 [DEBUG][       Thread-250167][   transport.py][1871] : Switch to new keys ...
2025-06-13 09:35:53,880 [DEBUG][       Thread-250167][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 09:35:53,880 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 09:35:53,881 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 09:35:53,923 [DEBUG][       Thread-250167][   transport.py][1871] : userauth is OK
2025-06-13 09:35:53,947 [ INFO][       Thread-250167][   transport.py][1871] : Authentication (password) successful!
2025-06-13 09:35:53,947 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 09:35:54,000 [DEBUG][Thread-250169 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:35:54,609 [DEBUG][       Thread-250167][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 09:35:54,609 [DEBUG][       Thread-250167][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 09:35:54,653 [DEBUG][       Thread-250167][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 09:35:54,653 [DEBUG][       Thread-250167][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 09:35:54,656 [DEBUG][       Thread-250167][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 09:35:54,668 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 09:35:54,669 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 09:35:54,670 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 09:35:54,672 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 09:35:54,676 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 09:35:54,678 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 09:35:54,678 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 09:35:54,679 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 09:35:54,679 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.315913 -999.00   +7.80  23.40     57   -0.10 1 1 1 1 1   887    0 8.28 17.38 ----- 23.4 23.4 55.0 27.2 11.6 -27.9 10.3 -28.7 9.0 -28.0 10.2 -26.2
2025-06-13 09:35:54,679 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 09:35:54,679 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 09:35:54,679 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.315913
2025-06-13 09:35:54,680 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 09:35:54,680 [DEBUG][       Thread-250167][   transport.py][1871] : EOF in transport thread
2025-06-13 09:35:54,680 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 09:35:54,681 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 09:35:54,681 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 09:35:54,681 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 09:35:54,681 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T09:35:44', tmtdew=9.24, humidity=51.98, cloud=0.0, wind=19.62, temperature=8.0, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T07:34:54.883', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 09:35:54,765 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 09:35:54,775 [DEBUG][       Thread-250171][   transport.py][1871] : starting thread (client mode): 0x863a5e70
2025-06-13 09:35:54,775 [DEBUG][       Thread-250171][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 09:35:54,791 [DEBUG][       Thread-250171][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 09:35:54,791 [ INFO][       Thread-250171][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 09:35:54,798 [DEBUG][       Thread-250171][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 09:35:54,798 [DEBUG][       Thread-250171][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 09:35:54,798 [DEBUG][       Thread-250171][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 09:35:54,798 [DEBUG][       Thread-250171][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:35:54,799 [DEBUG][       Thread-250171][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:35:54,799 [DEBUG][       Thread-250171][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:35:54,799 [DEBUG][       Thread-250171][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:35:54,799 [DEBUG][       Thread-250171][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 09:35:54,799 [DEBUG][       Thread-250171][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 09:35:54,799 [DEBUG][       Thread-250171][   transport.py][1871] : client lang: <none>
2025-06-13 09:35:54,799 [DEBUG][       Thread-250171][   transport.py][1871] : server lang: <none>
2025-06-13 09:35:54,799 [DEBUG][       Thread-250171][   transport.py][1871] : kex follows: False
2025-06-13 09:35:54,799 [DEBUG][       Thread-250171][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 09:35:54,799 [DEBUG][       Thread-250171][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 09:35:54,799 [DEBUG][       Thread-250171][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 09:35:54,799 [DEBUG][       Thread-250171][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 09:35:54,799 [DEBUG][       Thread-250171][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 09:35:54,799 [DEBUG][       Thread-250171][   transport.py][1871] : Compression: none
2025-06-13 09:35:54,799 [DEBUG][       Thread-250171][   transport.py][1871] : === End of kex handshake ===
2025-06-13 09:35:54,857 [DEBUG][       Thread-250171][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 09:35:54,858 [DEBUG][       Thread-250171][   transport.py][1871] : Switch to new keys ...
2025-06-13 09:35:54,858 [DEBUG][       Thread-250171][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 09:35:54,859 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 09:35:54,859 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 09:35:54,920 [DEBUG][       Thread-250171][   transport.py][1871] : userauth is OK
2025-06-13 09:35:54,920 [DEBUG][       Thread-250171][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 09:35:54,920 [DEBUG][       Thread-250171][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 09:35:54,920 [DEBUG][       Thread-250171][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 09:35:54,920 [DEBUG][       Thread-250171][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 09:35:54,940 [ INFO][       Thread-250171][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 09:35:54,941 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 09:35:54,941 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 09:35:55,957 [DEBUG][       Thread-250171][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 09:35:55,958 [DEBUG][       Thread-250171][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 09:35:56,010 [DEBUG][       Thread-250171][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 09:35:56,010 [DEBUG][       Thread-250171][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 09:35:56,020 [DEBUG][       Thread-250171][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 09:35:56,031 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 09:35:56,031 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 09:35:56,041 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 09:35:56,052 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 09:35:56,052 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 09:35:56,052 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 09:35:56,061 [DEBUG][       Thread-250171][   transport.py][1871] : EOF in transport thread
2025-06-13 09:36:03,016 [DEBUG][Thread-250173 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:36:03,676 [DEBUG][Thread-250174 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:36:06,060 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 09:36:06,060 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 09:36:06,060 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 09:36:06,061 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 09:36:06,551 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 9, 35, 44), 9.24, 51.98, 0.0, 19.62, 8.0, 0, 0, 0, 2, 0, 0),)
2025-06-13 09:36:06,551 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 09:35:44
2025-06-13 09:36:06,635 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 09:36:06,639 [DEBUG][       Thread-250175][   transport.py][1871] : starting thread (client mode): 0x863bcd60
2025-06-13 09:36:06,639 [DEBUG][       Thread-250175][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 09:36:06,660 [DEBUG][       Thread-250175][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 09:36:06,661 [ INFO][       Thread-250175][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 09:36:06,664 [DEBUG][       Thread-250175][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 09:36:06,664 [DEBUG][       Thread-250175][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 09:36:06,664 [DEBUG][       Thread-250175][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 09:36:06,664 [DEBUG][       Thread-250175][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:36:06,664 [DEBUG][       Thread-250175][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:36:06,664 [DEBUG][       Thread-250175][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:36:06,664 [DEBUG][       Thread-250175][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:36:06,664 [DEBUG][       Thread-250175][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 09:36:06,664 [DEBUG][       Thread-250175][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 09:36:06,664 [DEBUG][       Thread-250175][   transport.py][1871] : client lang: <none>
2025-06-13 09:36:06,664 [DEBUG][       Thread-250175][   transport.py][1871] : server lang: <none>
2025-06-13 09:36:06,664 [DEBUG][       Thread-250175][   transport.py][1871] : kex follows: False
2025-06-13 09:36:06,664 [DEBUG][       Thread-250175][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 09:36:06,664 [DEBUG][       Thread-250175][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 09:36:06,664 [DEBUG][       Thread-250175][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 09:36:06,664 [DEBUG][       Thread-250175][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 09:36:06,664 [DEBUG][       Thread-250175][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 09:36:06,664 [DEBUG][       Thread-250175][   transport.py][1871] : Compression: none
2025-06-13 09:36:06,664 [DEBUG][       Thread-250175][   transport.py][1871] : === End of kex handshake ===
2025-06-13 09:36:06,679 [DEBUG][       Thread-250175][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 09:36:06,679 [DEBUG][       Thread-250175][   transport.py][1871] : Switch to new keys ...
2025-06-13 09:36:06,679 [DEBUG][       Thread-250175][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 09:36:06,679 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 09:36:06,679 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 09:36:06,680 [DEBUG][       Thread-250175][   transport.py][1871] : userauth is OK
2025-06-13 09:36:06,704 [ INFO][       Thread-250175][   transport.py][1871] : Authentication (password) successful!
2025-06-13 09:36:06,704 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 09:36:07,311 [DEBUG][       Thread-250175][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 09:36:07,311 [DEBUG][       Thread-250175][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 09:36:07,353 [DEBUG][       Thread-250175][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 09:36:07,353 [DEBUG][       Thread-250175][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 09:36:07,355 [DEBUG][       Thread-250175][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 09:36:07,368 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 09:36:07,368 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 09:36:07,369 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 09:36:07,370 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 09:36:07,372 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 09:36:07,373 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 09:36:07,373 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 09:36:07,373 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 09:36:07,373 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.316608 -999.00   +7.80  19.71     57   -0.10 1 1 1 1 1   887    0 8.18 16.68 ----- 19.7 19.7 30.4 25.7 11.6 -28.0 10.4 -28.9 9.1 -27.8 10.3 -26.1
2025-06-13 09:36:07,373 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 09:36:07,373 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 09:36:07,373 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.316608
2025-06-13 09:36:07,373 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 09:36:07,374 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 09:36:07,374 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 09:36:07,374 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 09:36:07,374 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 09:36:07,374 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T09:35:44', tmtdew=9.24, humidity=51.98, cloud=0.0, wind=19.62, temperature=8.0, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T07:35:54.931', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 09:36:07,374 [DEBUG][       Thread-250175][   transport.py][1871] : EOF in transport thread
2025-06-13 09:36:07,448 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 09:36:12,046 [DEBUG][Thread-250178 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:36:15,993 [DEBUG][Thread-250179 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:36:17,077 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:36:17,077 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:36:19,156 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:36:19,156 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:36:21,064 [DEBUG][Thread-250180 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:36:30,083 [DEBUG][Thread-250181 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:36:39,103 [DEBUG][Thread-250182 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:36:48,124 [DEBUG][Thread-250183 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:36:57,143 [DEBUG][Thread-250184 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:37:03,729 [DEBUG][Thread-250185 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:37:06,163 [DEBUG][Thread-250186 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:37:15,182 [DEBUG][Thread-250187 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:37:17,109 [DEBUG][Thread-250188 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:37:18,182 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:37:18,183 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:37:19,292 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:37:19,293 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:37:24,198 [DEBUG][Thread-250189 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:37:33,216 [DEBUG][Thread-250190 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:37:42,237 [DEBUG][Thread-250191 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:37:51,256 [DEBUG][Thread-250192 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:38:00,272 [DEBUG][Thread-250193 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:38:03,780 [DEBUG][Thread-250194 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:38:09,291 [DEBUG][Thread-250195 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:38:16,724 [WARNING][ poll_weather_worker][      driver.py][ 286] : Unable to open ssh connection for writing weather state to io.saao.ac.za: [Errno 110] Connection timed out
2025-06-13 09:38:18,255 [DEBUG][Thread-250196 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:38:18,309 [DEBUG][Thread-250197 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:38:19,334 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:38:19,335 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:38:19,429 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:38:19,430 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:38:26,734 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 09:38:26,735 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 09:38:26,735 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 09:38:26,737 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 09:38:27,208 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 9, 38, 22), 9.22, 52.18, 0.0, 18.67, 8.01, 0, 0, 0, 2, 0, 0),)
2025-06-13 09:38:27,208 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 09:38:22
2025-06-13 09:38:27,288 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 09:38:27,294 [DEBUG][       Thread-250198][   transport.py][1871] : starting thread (client mode): 0x863cbf40
2025-06-13 09:38:27,294 [DEBUG][       Thread-250198][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 09:38:27,315 [DEBUG][       Thread-250198][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 09:38:27,315 [ INFO][       Thread-250198][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 09:38:27,318 [DEBUG][       Thread-250198][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 09:38:27,318 [DEBUG][       Thread-250198][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 09:38:27,318 [DEBUG][       Thread-250198][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 09:38:27,318 [DEBUG][       Thread-250198][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:38:27,318 [DEBUG][       Thread-250198][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:38:27,318 [DEBUG][       Thread-250198][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:38:27,318 [DEBUG][       Thread-250198][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:38:27,318 [DEBUG][       Thread-250198][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 09:38:27,318 [DEBUG][       Thread-250198][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 09:38:27,318 [DEBUG][       Thread-250198][   transport.py][1871] : client lang: <none>
2025-06-13 09:38:27,318 [DEBUG][       Thread-250198][   transport.py][1871] : server lang: <none>
2025-06-13 09:38:27,318 [DEBUG][       Thread-250198][   transport.py][1871] : kex follows: False
2025-06-13 09:38:27,318 [DEBUG][       Thread-250198][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 09:38:27,318 [DEBUG][       Thread-250198][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 09:38:27,319 [DEBUG][       Thread-250198][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 09:38:27,319 [DEBUG][       Thread-250198][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 09:38:27,319 [DEBUG][       Thread-250198][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 09:38:27,319 [DEBUG][       Thread-250198][   transport.py][1871] : Compression: none
2025-06-13 09:38:27,319 [DEBUG][       Thread-250198][   transport.py][1871] : === End of kex handshake ===
2025-06-13 09:38:27,326 [DEBUG][Thread-250200 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:38:27,336 [DEBUG][       Thread-250198][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 09:38:27,337 [DEBUG][       Thread-250198][   transport.py][1871] : Switch to new keys ...
2025-06-13 09:38:27,337 [DEBUG][       Thread-250198][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 09:38:27,337 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 09:38:27,338 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 09:38:27,339 [DEBUG][       Thread-250198][   transport.py][1871] : userauth is OK
2025-06-13 09:38:27,351 [ INFO][       Thread-250198][   transport.py][1871] : Authentication (password) successful!
2025-06-13 09:38:27,352 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 09:38:28,015 [DEBUG][       Thread-250198][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 09:38:28,015 [DEBUG][       Thread-250198][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 09:38:28,057 [DEBUG][       Thread-250198][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 09:38:28,057 [DEBUG][       Thread-250198][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 09:38:28,060 [DEBUG][       Thread-250198][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 09:38:28,072 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 09:38:28,072 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 09:38:28,074 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 09:38:28,075 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 09:38:28,081 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 09:38:28,082 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 09:38:28,083 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 09:38:28,083 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 09:38:28,083 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.317996 -999.00   +7.90  18.44     57   +0.00 1 1 1 1 1   887    0 8.39 16.39 ----- 18.4 18.4 50.0 24.3 11.7 -27.6 10.4 -28.6 9.2 -28.2 10.4 -26.1
2025-06-13 09:38:28,083 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 09:38:28,083 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 09:38:28,083 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.317996
2025-06-13 09:38:28,084 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 09:38:28,084 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 09:38:28,084 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 09:38:28,084 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 09:38:28,085 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 09:38:28,085 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T09:38:22', tmtdew=9.22, humidity=52.18, cloud=0.0, wind=18.67, temperature=8.01, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T07:37:54.854', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 09:38:28,086 [DEBUG][       Thread-250198][   transport.py][1871] : EOF in transport thread
2025-06-13 09:38:28,169 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 09:38:28,189 [DEBUG][       Thread-250202][   transport.py][1871] : starting thread (client mode): 0x867fc0d0
2025-06-13 09:38:28,189 [DEBUG][       Thread-250202][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 09:38:28,204 [DEBUG][       Thread-250202][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 09:38:28,204 [ INFO][       Thread-250202][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 09:38:28,214 [DEBUG][       Thread-250202][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 09:38:28,214 [DEBUG][       Thread-250202][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 09:38:28,214 [DEBUG][       Thread-250202][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 09:38:28,214 [DEBUG][       Thread-250202][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:38:28,214 [DEBUG][       Thread-250202][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:38:28,214 [DEBUG][       Thread-250202][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:38:28,214 [DEBUG][       Thread-250202][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:38:28,214 [DEBUG][       Thread-250202][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 09:38:28,214 [DEBUG][       Thread-250202][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 09:38:28,214 [DEBUG][       Thread-250202][   transport.py][1871] : client lang: <none>
2025-06-13 09:38:28,214 [DEBUG][       Thread-250202][   transport.py][1871] : server lang: <none>
2025-06-13 09:38:28,214 [DEBUG][       Thread-250202][   transport.py][1871] : kex follows: False
2025-06-13 09:38:28,214 [DEBUG][       Thread-250202][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 09:38:28,215 [DEBUG][       Thread-250202][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 09:38:28,215 [DEBUG][       Thread-250202][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 09:38:28,215 [DEBUG][       Thread-250202][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 09:38:28,215 [DEBUG][       Thread-250202][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 09:38:28,215 [DEBUG][       Thread-250202][   transport.py][1871] : Compression: none
2025-06-13 09:38:28,215 [DEBUG][       Thread-250202][   transport.py][1871] : === End of kex handshake ===
2025-06-13 09:38:28,277 [DEBUG][       Thread-250202][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 09:38:28,277 [DEBUG][       Thread-250202][   transport.py][1871] : Switch to new keys ...
2025-06-13 09:38:28,277 [DEBUG][       Thread-250202][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 09:38:28,278 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 09:38:28,278 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 09:38:28,338 [DEBUG][       Thread-250202][   transport.py][1871] : userauth is OK
2025-06-13 09:38:28,339 [DEBUG][       Thread-250202][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 09:38:28,339 [DEBUG][       Thread-250202][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 09:38:28,339 [DEBUG][       Thread-250202][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 09:38:28,339 [DEBUG][       Thread-250202][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 09:38:28,358 [ INFO][       Thread-250202][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 09:38:28,358 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 09:38:28,359 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 09:38:29,413 [DEBUG][       Thread-250202][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 09:38:29,413 [DEBUG][       Thread-250202][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 09:38:29,467 [DEBUG][       Thread-250202][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 09:38:29,468 [DEBUG][       Thread-250202][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 09:38:29,477 [DEBUG][       Thread-250202][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 09:38:29,489 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 09:38:29,489 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 09:38:29,497 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 09:38:29,506 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 09:38:29,506 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 09:38:29,506 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 09:38:29,519 [DEBUG][       Thread-250202][   transport.py][1871] : EOF in transport thread
2025-06-13 09:38:36,344 [DEBUG][Thread-250204 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:38:39,516 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 09:38:39,516 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 09:38:39,516 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 09:38:39,516 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 09:38:40,012 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 9, 38, 22), 9.22, 52.18, 0.0, 18.67, 8.01, 0, 0, 0, 2, 0, 0),)
2025-06-13 09:38:40,012 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 09:38:22
2025-06-13 09:38:40,094 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 09:38:40,098 [DEBUG][       Thread-250205][   transport.py][1871] : starting thread (client mode): 0x867b6e90
2025-06-13 09:38:40,098 [DEBUG][       Thread-250205][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 09:38:40,119 [DEBUG][       Thread-250205][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 09:38:40,119 [ INFO][       Thread-250205][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 09:38:40,122 [DEBUG][       Thread-250205][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 09:38:40,122 [DEBUG][       Thread-250205][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 09:38:40,122 [DEBUG][       Thread-250205][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 09:38:40,122 [DEBUG][       Thread-250205][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:38:40,122 [DEBUG][       Thread-250205][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:38:40,122 [DEBUG][       Thread-250205][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:38:40,122 [DEBUG][       Thread-250205][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:38:40,122 [DEBUG][       Thread-250205][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 09:38:40,122 [DEBUG][       Thread-250205][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 09:38:40,122 [DEBUG][       Thread-250205][   transport.py][1871] : client lang: <none>
2025-06-13 09:38:40,122 [DEBUG][       Thread-250205][   transport.py][1871] : server lang: <none>
2025-06-13 09:38:40,122 [DEBUG][       Thread-250205][   transport.py][1871] : kex follows: False
2025-06-13 09:38:40,122 [DEBUG][       Thread-250205][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 09:38:40,122 [DEBUG][       Thread-250205][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 09:38:40,122 [DEBUG][       Thread-250205][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 09:38:40,122 [DEBUG][       Thread-250205][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 09:38:40,122 [DEBUG][       Thread-250205][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 09:38:40,122 [DEBUG][       Thread-250205][   transport.py][1871] : Compression: none
2025-06-13 09:38:40,122 [DEBUG][       Thread-250205][   transport.py][1871] : === End of kex handshake ===
2025-06-13 09:38:40,140 [DEBUG][       Thread-250205][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 09:38:40,140 [DEBUG][       Thread-250205][   transport.py][1871] : Switch to new keys ...
2025-06-13 09:38:40,140 [DEBUG][       Thread-250205][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 09:38:40,140 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 09:38:40,140 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 09:38:40,141 [DEBUG][       Thread-250205][   transport.py][1871] : userauth is OK
2025-06-13 09:38:40,165 [ INFO][       Thread-250205][   transport.py][1871] : Authentication (password) successful!
2025-06-13 09:38:40,165 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 09:38:40,800 [DEBUG][       Thread-250205][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 09:38:40,800 [DEBUG][       Thread-250205][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 09:38:40,844 [DEBUG][       Thread-250205][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 09:38:40,844 [DEBUG][       Thread-250205][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 09:38:40,846 [DEBUG][       Thread-250205][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 09:38:40,859 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 09:38:40,859 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 09:38:40,860 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 09:38:40,861 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 09:38:40,864 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 09:38:40,865 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 09:38:40,865 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 09:38:40,865 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 09:38:40,865 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.317996 -999.00   +7.90  18.44     57   +0.00 1 1 1 1 1   887    0 8.39 16.39 ----- 18.4 18.4 50.0 24.3 11.7 -27.6 10.4 -28.6 9.2 -28.2 10.4 -26.1
2025-06-13 09:38:40,865 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 09:38:40,865 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 09:38:40,865 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.317996
2025-06-13 09:38:40,865 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 09:38:40,866 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 09:38:40,866 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 09:38:40,866 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 09:38:40,866 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 09:38:40,866 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T09:38:22', tmtdew=9.22, humidity=52.18, cloud=0.0, wind=18.67, temperature=8.01, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T07:37:54.854', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 09:38:40,866 [DEBUG][       Thread-250205][   transport.py][1871] : EOF in transport thread
2025-06-13 09:38:40,940 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 09:38:40,949 [DEBUG][       Thread-250208][   transport.py][1871] : starting thread (client mode): 0x8636bb50
2025-06-13 09:38:40,949 [DEBUG][       Thread-250208][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 09:38:40,964 [DEBUG][       Thread-250208][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 09:38:40,964 [ INFO][       Thread-250208][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 09:38:40,971 [DEBUG][       Thread-250208][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 09:38:40,971 [DEBUG][       Thread-250208][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 09:38:40,971 [DEBUG][       Thread-250208][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 09:38:40,971 [DEBUG][       Thread-250208][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:38:40,971 [DEBUG][       Thread-250208][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:38:40,971 [DEBUG][       Thread-250208][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:38:40,971 [DEBUG][       Thread-250208][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:38:40,971 [DEBUG][       Thread-250208][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 09:38:40,971 [DEBUG][       Thread-250208][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 09:38:40,971 [DEBUG][       Thread-250208][   transport.py][1871] : client lang: <none>
2025-06-13 09:38:40,971 [DEBUG][       Thread-250208][   transport.py][1871] : server lang: <none>
2025-06-13 09:38:40,971 [DEBUG][       Thread-250208][   transport.py][1871] : kex follows: False
2025-06-13 09:38:40,971 [DEBUG][       Thread-250208][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 09:38:40,971 [DEBUG][       Thread-250208][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 09:38:40,971 [DEBUG][       Thread-250208][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 09:38:40,971 [DEBUG][       Thread-250208][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 09:38:40,971 [DEBUG][       Thread-250208][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 09:38:40,971 [DEBUG][       Thread-250208][   transport.py][1871] : Compression: none
2025-06-13 09:38:40,971 [DEBUG][       Thread-250208][   transport.py][1871] : === End of kex handshake ===
2025-06-13 09:38:41,031 [DEBUG][       Thread-250208][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 09:38:41,032 [DEBUG][       Thread-250208][   transport.py][1871] : Switch to new keys ...
2025-06-13 09:38:41,032 [DEBUG][       Thread-250208][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 09:38:41,032 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 09:38:41,032 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 09:38:41,090 [DEBUG][       Thread-250208][   transport.py][1871] : userauth is OK
2025-06-13 09:38:41,090 [DEBUG][       Thread-250208][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 09:38:41,090 [DEBUG][       Thread-250208][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 09:38:41,090 [DEBUG][       Thread-250208][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 09:38:41,090 [DEBUG][       Thread-250208][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 09:38:41,104 [ INFO][       Thread-250208][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 09:38:41,104 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 09:38:41,104 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 09:38:42,117 [DEBUG][       Thread-250208][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 09:38:42,118 [DEBUG][       Thread-250208][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 09:38:42,173 [DEBUG][       Thread-250208][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 09:38:42,173 [DEBUG][       Thread-250208][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 09:38:42,186 [DEBUG][       Thread-250208][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 09:38:42,195 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 09:38:42,195 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 09:38:42,203 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 09:38:42,212 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 09:38:42,212 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 09:38:42,212 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 09:38:42,220 [DEBUG][       Thread-250208][   transport.py][1871] : EOF in transport thread
2025-06-13 09:38:45,383 [DEBUG][Thread-250210 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:38:52,223 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 09:38:52,223 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 09:38:52,223 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 09:38:52,225 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 09:38:52,692 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 9, 38, 22), 9.22, 52.18, 0.0, 18.67, 8.01, 0, 0, 0, 2, 0, 0),)
2025-06-13 09:38:52,692 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 09:38:22
2025-06-13 09:38:52,771 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 09:38:52,778 [DEBUG][       Thread-250211][   transport.py][1871] : starting thread (client mode): 0x863bf7c0
2025-06-13 09:38:52,778 [DEBUG][       Thread-250211][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 09:38:52,798 [DEBUG][       Thread-250211][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 09:38:52,798 [ INFO][       Thread-250211][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 09:38:52,801 [DEBUG][       Thread-250211][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 09:38:52,801 [DEBUG][       Thread-250211][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 09:38:52,801 [DEBUG][       Thread-250211][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 09:38:52,801 [DEBUG][       Thread-250211][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:38:52,801 [DEBUG][       Thread-250211][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:38:52,801 [DEBUG][       Thread-250211][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:38:52,801 [DEBUG][       Thread-250211][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:38:52,801 [DEBUG][       Thread-250211][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 09:38:52,801 [DEBUG][       Thread-250211][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 09:38:52,801 [DEBUG][       Thread-250211][   transport.py][1871] : client lang: <none>
2025-06-13 09:38:52,801 [DEBUG][       Thread-250211][   transport.py][1871] : server lang: <none>
2025-06-13 09:38:52,801 [DEBUG][       Thread-250211][   transport.py][1871] : kex follows: False
2025-06-13 09:38:52,801 [DEBUG][       Thread-250211][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 09:38:52,801 [DEBUG][       Thread-250211][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 09:38:52,801 [DEBUG][       Thread-250211][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 09:38:52,801 [DEBUG][       Thread-250211][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 09:38:52,801 [DEBUG][       Thread-250211][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 09:38:52,801 [DEBUG][       Thread-250211][   transport.py][1871] : Compression: none
2025-06-13 09:38:52,801 [DEBUG][       Thread-250211][   transport.py][1871] : === End of kex handshake ===
2025-06-13 09:38:52,818 [DEBUG][       Thread-250211][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 09:38:52,818 [DEBUG][       Thread-250211][   transport.py][1871] : Switch to new keys ...
2025-06-13 09:38:52,819 [DEBUG][       Thread-250211][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 09:38:52,819 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 09:38:52,819 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 09:38:52,863 [DEBUG][       Thread-250211][   transport.py][1871] : userauth is OK
2025-06-13 09:38:52,887 [ INFO][       Thread-250211][   transport.py][1871] : Authentication (password) successful!
2025-06-13 09:38:52,888 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 09:38:53,473 [DEBUG][       Thread-250211][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 09:38:53,473 [DEBUG][       Thread-250211][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 09:38:53,517 [DEBUG][       Thread-250211][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 09:38:53,517 [DEBUG][       Thread-250211][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 09:38:53,519 [DEBUG][       Thread-250211][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 09:38:53,531 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 09:38:53,531 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 09:38:53,535 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 09:38:53,536 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 09:38:53,547 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 09:38:53,551 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 09:38:53,551 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 09:38:53,552 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 09:38:53,552 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.318344 -999.00   +7.90  25.11     56   -0.00 1 1 1 1 1   887    0 8.15 14.54 ----- 25.1 25.1 42.2 27.8 11.8 -27.9 10.5 -28.5 9.2 -28.4 10.4 -26.1
2025-06-13 09:38:53,552 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 09:38:53,552 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 09:38:53,552 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.318344
2025-06-13 09:38:53,553 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 09:38:53,553 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 09:38:53,553 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 09:38:53,553 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 09:38:53,553 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 09:38:53,553 [DEBUG][       Thread-250211][   transport.py][1871] : EOF in transport thread
2025-06-13 09:38:53,554 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T09:38:22', tmtdew=9.22, humidity=52.18, cloud=0.0, wind=18.67, temperature=8.01, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T07:38:24.922', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 09:38:53,638 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 09:38:53,651 [DEBUG][       Thread-250214][   transport.py][1871] : starting thread (client mode): 0x867fefb0
2025-06-13 09:38:53,651 [DEBUG][       Thread-250214][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 09:38:53,669 [DEBUG][       Thread-250214][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 09:38:53,669 [ INFO][       Thread-250214][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 09:38:53,680 [DEBUG][       Thread-250214][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 09:38:53,680 [DEBUG][       Thread-250214][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 09:38:53,680 [DEBUG][       Thread-250214][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 09:38:53,680 [DEBUG][       Thread-250214][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:38:53,680 [DEBUG][       Thread-250214][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:38:53,680 [DEBUG][       Thread-250214][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:38:53,680 [DEBUG][       Thread-250214][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:38:53,680 [DEBUG][       Thread-250214][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 09:38:53,680 [DEBUG][       Thread-250214][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 09:38:53,680 [DEBUG][       Thread-250214][   transport.py][1871] : client lang: <none>
2025-06-13 09:38:53,680 [DEBUG][       Thread-250214][   transport.py][1871] : server lang: <none>
2025-06-13 09:38:53,680 [DEBUG][       Thread-250214][   transport.py][1871] : kex follows: False
2025-06-13 09:38:53,680 [DEBUG][       Thread-250214][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 09:38:53,680 [DEBUG][       Thread-250214][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 09:38:53,681 [DEBUG][       Thread-250214][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 09:38:53,681 [DEBUG][       Thread-250214][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 09:38:53,681 [DEBUG][       Thread-250214][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 09:38:53,681 [DEBUG][       Thread-250214][   transport.py][1871] : Compression: none
2025-06-13 09:38:53,681 [DEBUG][       Thread-250214][   transport.py][1871] : === End of kex handshake ===
2025-06-13 09:38:53,738 [DEBUG][       Thread-250214][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 09:38:53,738 [DEBUG][       Thread-250214][   transport.py][1871] : Switch to new keys ...
2025-06-13 09:38:53,739 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 09:38:53,739 [DEBUG][       Thread-250214][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 09:38:53,740 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 09:38:53,798 [DEBUG][       Thread-250214][   transport.py][1871] : userauth is OK
2025-06-13 09:38:53,798 [DEBUG][       Thread-250214][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 09:38:53,798 [DEBUG][       Thread-250214][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 09:38:53,798 [DEBUG][       Thread-250214][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 09:38:53,798 [DEBUG][       Thread-250214][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 09:38:53,820 [ INFO][       Thread-250214][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 09:38:53,821 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 09:38:53,821 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 09:38:54,401 [DEBUG][Thread-250216 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:38:54,827 [DEBUG][       Thread-250214][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 09:38:54,827 [DEBUG][       Thread-250214][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 09:38:54,878 [DEBUG][       Thread-250214][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 09:38:54,878 [DEBUG][       Thread-250214][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 09:38:54,891 [DEBUG][       Thread-250214][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 09:38:54,903 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 09:38:54,903 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 09:38:54,916 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 09:38:54,933 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 09:38:54,933 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 09:38:54,933 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 09:38:54,950 [DEBUG][       Thread-250214][   transport.py][1871] : EOF in transport thread
2025-06-13 09:39:03,418 [DEBUG][Thread-250217 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:39:03,823 [DEBUG][Thread-250218 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:39:04,944 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 09:39:04,944 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 09:39:04,944 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 09:39:04,946 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 09:39:05,405 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 9, 38, 54), 9.25, 52.08, 0.0, 18.65, 8.02, 0, 0, 0, 2, 0, 0),)
2025-06-13 09:39:05,406 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 09:38:54
2025-06-13 09:39:05,484 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 09:39:05,488 [DEBUG][       Thread-250219][   transport.py][1871] : starting thread (client mode): 0x867b7250
2025-06-13 09:39:05,488 [DEBUG][       Thread-250219][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 09:39:05,509 [DEBUG][       Thread-250219][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 09:39:05,509 [ INFO][       Thread-250219][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 09:39:05,513 [DEBUG][       Thread-250219][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 09:39:05,513 [DEBUG][       Thread-250219][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 09:39:05,513 [DEBUG][       Thread-250219][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 09:39:05,513 [DEBUG][       Thread-250219][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:39:05,513 [DEBUG][       Thread-250219][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:39:05,513 [DEBUG][       Thread-250219][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:39:05,513 [DEBUG][       Thread-250219][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:39:05,513 [DEBUG][       Thread-250219][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 09:39:05,513 [DEBUG][       Thread-250219][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 09:39:05,513 [DEBUG][       Thread-250219][   transport.py][1871] : client lang: <none>
2025-06-13 09:39:05,513 [DEBUG][       Thread-250219][   transport.py][1871] : server lang: <none>
2025-06-13 09:39:05,513 [DEBUG][       Thread-250219][   transport.py][1871] : kex follows: False
2025-06-13 09:39:05,513 [DEBUG][       Thread-250219][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 09:39:05,513 [DEBUG][       Thread-250219][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 09:39:05,513 [DEBUG][       Thread-250219][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 09:39:05,513 [DEBUG][       Thread-250219][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 09:39:05,513 [DEBUG][       Thread-250219][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 09:39:05,513 [DEBUG][       Thread-250219][   transport.py][1871] : Compression: none
2025-06-13 09:39:05,513 [DEBUG][       Thread-250219][   transport.py][1871] : === End of kex handshake ===
2025-06-13 09:39:05,529 [DEBUG][       Thread-250219][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 09:39:05,530 [DEBUG][       Thread-250219][   transport.py][1871] : Switch to new keys ...
2025-06-13 09:39:05,530 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 09:39:05,531 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 09:39:05,531 [DEBUG][       Thread-250219][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 09:39:05,531 [DEBUG][       Thread-250219][   transport.py][1871] : userauth is OK
2025-06-13 09:39:05,544 [ INFO][       Thread-250219][   transport.py][1871] : Authentication (password) successful!
2025-06-13 09:39:05,545 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 09:39:06,123 [DEBUG][       Thread-250219][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 09:39:06,123 [DEBUG][       Thread-250219][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 09:39:06,165 [DEBUG][       Thread-250219][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 09:39:06,165 [DEBUG][       Thread-250219][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 09:39:06,168 [DEBUG][       Thread-250219][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 09:39:06,181 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 09:39:06,182 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 09:39:06,183 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 09:39:06,184 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 09:39:06,189 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 09:39:06,191 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 09:39:06,191 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 09:39:06,192 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 09:39:06,192 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.318344 -999.00   +7.90  25.11     56   -0.00 1 1 1 1 1   887    0 8.15 14.54 ----- 25.1 25.1 42.2 27.8 11.8 -27.9 10.5 -28.5 9.2 -28.4 10.4 -26.1
2025-06-13 09:39:06,192 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 09:39:06,192 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 09:39:06,192 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.318344
2025-06-13 09:39:06,192 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 09:39:06,193 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 09:39:06,193 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 09:39:06,193 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 09:39:06,193 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 09:39:06,193 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T09:38:54', tmtdew=9.25, humidity=52.08, cloud=0.0, wind=18.65, temperature=8.02, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T07:38:24.922', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 09:39:06,193 [DEBUG][       Thread-250219][   transport.py][1871] : EOF in transport thread
2025-06-13 09:39:06,276 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 09:39:06,303 [DEBUG][       Thread-250222][   transport.py][1871] : starting thread (client mode): 0x863686d0
2025-06-13 09:39:06,303 [DEBUG][       Thread-250222][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 09:39:06,318 [DEBUG][       Thread-250222][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 09:39:06,318 [ INFO][       Thread-250222][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 09:39:06,326 [DEBUG][       Thread-250222][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 09:39:06,326 [DEBUG][       Thread-250222][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 09:39:06,326 [DEBUG][       Thread-250222][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 09:39:06,326 [DEBUG][       Thread-250222][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:39:06,326 [DEBUG][       Thread-250222][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:39:06,326 [DEBUG][       Thread-250222][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:39:06,326 [DEBUG][       Thread-250222][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:39:06,326 [DEBUG][       Thread-250222][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 09:39:06,326 [DEBUG][       Thread-250222][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 09:39:06,326 [DEBUG][       Thread-250222][   transport.py][1871] : client lang: <none>
2025-06-13 09:39:06,327 [DEBUG][       Thread-250222][   transport.py][1871] : server lang: <none>
2025-06-13 09:39:06,327 [DEBUG][       Thread-250222][   transport.py][1871] : kex follows: False
2025-06-13 09:39:06,327 [DEBUG][       Thread-250222][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 09:39:06,327 [DEBUG][       Thread-250222][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 09:39:06,327 [DEBUG][       Thread-250222][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 09:39:06,327 [DEBUG][       Thread-250222][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 09:39:06,327 [DEBUG][       Thread-250222][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 09:39:06,327 [DEBUG][       Thread-250222][   transport.py][1871] : Compression: none
2025-06-13 09:39:06,327 [DEBUG][       Thread-250222][   transport.py][1871] : === End of kex handshake ===
2025-06-13 09:39:06,388 [DEBUG][       Thread-250222][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 09:39:06,389 [DEBUG][       Thread-250222][   transport.py][1871] : Switch to new keys ...
2025-06-13 09:39:06,389 [DEBUG][       Thread-250222][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 09:39:06,389 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 09:39:06,390 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 09:39:06,446 [DEBUG][       Thread-250222][   transport.py][1871] : userauth is OK
2025-06-13 09:39:06,447 [DEBUG][       Thread-250222][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 09:39:06,447 [DEBUG][       Thread-250222][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 09:39:06,447 [DEBUG][       Thread-250222][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 09:39:06,447 [DEBUG][       Thread-250222][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 09:39:06,466 [ INFO][       Thread-250222][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 09:39:06,466 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 09:39:06,467 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 09:39:07,542 [DEBUG][       Thread-250222][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 09:39:07,543 [DEBUG][       Thread-250222][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 09:39:07,591 [DEBUG][       Thread-250222][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 09:39:07,592 [DEBUG][       Thread-250222][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 09:39:07,602 [DEBUG][       Thread-250222][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 09:39:07,611 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 09:39:07,611 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 09:39:07,620 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 09:39:07,629 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 09:39:07,629 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 09:39:07,630 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 09:39:07,638 [DEBUG][       Thread-250222][   transport.py][1871] : EOF in transport thread
2025-06-13 09:39:12,436 [DEBUG][Thread-250224 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:39:17,640 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 09:39:17,640 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 09:39:17,640 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 09:39:17,641 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 09:39:18,108 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 9, 38, 54), 9.25, 52.08, 0.0, 18.65, 8.02, 0, 0, 0, 2, 0, 0),)
2025-06-13 09:39:18,108 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 09:38:54
2025-06-13 09:39:18,192 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 09:39:18,197 [DEBUG][       Thread-250225][   transport.py][1871] : starting thread (client mode): 0x86369ff0
2025-06-13 09:39:18,197 [DEBUG][       Thread-250225][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 09:39:18,218 [DEBUG][       Thread-250225][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 09:39:18,218 [ INFO][       Thread-250225][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 09:39:18,221 [DEBUG][       Thread-250225][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 09:39:18,221 [DEBUG][       Thread-250225][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 09:39:18,221 [DEBUG][       Thread-250225][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 09:39:18,221 [DEBUG][       Thread-250225][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:39:18,221 [DEBUG][       Thread-250225][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:39:18,221 [DEBUG][       Thread-250225][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:39:18,221 [DEBUG][       Thread-250225][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:39:18,221 [DEBUG][       Thread-250225][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 09:39:18,221 [DEBUG][       Thread-250225][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 09:39:18,221 [DEBUG][       Thread-250225][   transport.py][1871] : client lang: <none>
2025-06-13 09:39:18,221 [DEBUG][       Thread-250225][   transport.py][1871] : server lang: <none>
2025-06-13 09:39:18,221 [DEBUG][       Thread-250225][   transport.py][1871] : kex follows: False
2025-06-13 09:39:18,221 [DEBUG][       Thread-250225][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 09:39:18,221 [DEBUG][       Thread-250225][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 09:39:18,221 [DEBUG][       Thread-250225][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 09:39:18,221 [DEBUG][       Thread-250225][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 09:39:18,221 [DEBUG][       Thread-250225][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 09:39:18,221 [DEBUG][       Thread-250225][   transport.py][1871] : Compression: none
2025-06-13 09:39:18,221 [DEBUG][       Thread-250225][   transport.py][1871] : === End of kex handshake ===
2025-06-13 09:39:18,238 [DEBUG][       Thread-250225][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 09:39:18,238 [DEBUG][       Thread-250225][   transport.py][1871] : Switch to new keys ...
2025-06-13 09:39:18,238 [DEBUG][       Thread-250225][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 09:39:18,238 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 09:39:18,238 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 09:39:18,239 [DEBUG][       Thread-250225][   transport.py][1871] : userauth is OK
2025-06-13 09:39:18,252 [ INFO][       Thread-250225][   transport.py][1871] : Authentication (password) successful!
2025-06-13 09:39:18,252 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 09:39:18,891 [DEBUG][       Thread-250225][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 09:39:18,891 [DEBUG][       Thread-250225][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 09:39:18,933 [DEBUG][       Thread-250225][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 09:39:18,933 [DEBUG][       Thread-250225][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 09:39:18,935 [DEBUG][       Thread-250225][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 09:39:18,955 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 09:39:18,955 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 09:39:18,956 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 09:39:18,957 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 09:39:18,959 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 09:39:18,960 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 09:39:18,960 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 09:39:18,960 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 09:39:18,960 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.318344 -999.00   +7.90  25.11     56   -0.00 1 1 1 1 1   887    0 8.15 14.54 ----- 25.1 25.1 42.2 27.8 11.8 -27.9 10.5 -28.5 9.2 -28.4 10.4 -26.1
2025-06-13 09:39:18,960 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 09:39:18,960 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 09:39:18,960 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.318344
2025-06-13 09:39:18,960 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 09:39:18,960 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 09:39:18,960 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 09:39:18,960 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 09:39:18,960 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 09:39:18,960 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T09:38:54', tmtdew=9.25, humidity=52.08, cloud=0.0, wind=18.65, temperature=8.02, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T07:38:24.922', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 09:39:18,961 [DEBUG][       Thread-250225][   transport.py][1871] : EOF in transport thread
2025-06-13 09:39:19,032 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 09:39:19,048 [DEBUG][       Thread-250228][   transport.py][1871] : starting thread (client mode): 0x863a7220
2025-06-13 09:39:19,048 [DEBUG][       Thread-250228][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 09:39:19,067 [DEBUG][       Thread-250228][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 09:39:19,067 [ INFO][       Thread-250228][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 09:39:19,077 [DEBUG][       Thread-250228][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 09:39:19,078 [DEBUG][       Thread-250228][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 09:39:19,078 [DEBUG][       Thread-250228][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 09:39:19,078 [DEBUG][       Thread-250228][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:39:19,078 [DEBUG][       Thread-250228][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:39:19,078 [DEBUG][       Thread-250228][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:39:19,078 [DEBUG][       Thread-250228][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:39:19,078 [DEBUG][       Thread-250228][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 09:39:19,078 [DEBUG][       Thread-250228][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 09:39:19,078 [DEBUG][       Thread-250228][   transport.py][1871] : client lang: <none>
2025-06-13 09:39:19,078 [DEBUG][       Thread-250228][   transport.py][1871] : server lang: <none>
2025-06-13 09:39:19,078 [DEBUG][       Thread-250228][   transport.py][1871] : kex follows: False
2025-06-13 09:39:19,078 [DEBUG][       Thread-250228][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 09:39:19,078 [DEBUG][       Thread-250228][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 09:39:19,078 [DEBUG][       Thread-250228][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 09:39:19,078 [DEBUG][       Thread-250228][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 09:39:19,078 [DEBUG][       Thread-250228][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 09:39:19,078 [DEBUG][       Thread-250228][   transport.py][1871] : Compression: none
2025-06-13 09:39:19,078 [DEBUG][       Thread-250228][   transport.py][1871] : === End of kex handshake ===
2025-06-13 09:39:19,134 [DEBUG][       Thread-250228][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 09:39:19,135 [DEBUG][       Thread-250228][   transport.py][1871] : Switch to new keys ...
2025-06-13 09:39:19,135 [DEBUG][       Thread-250228][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 09:39:19,135 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 09:39:19,135 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 09:39:19,198 [DEBUG][       Thread-250228][   transport.py][1871] : userauth is OK
2025-06-13 09:39:19,198 [DEBUG][       Thread-250228][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 09:39:19,198 [DEBUG][       Thread-250228][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 09:39:19,198 [DEBUG][       Thread-250228][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 09:39:19,198 [DEBUG][       Thread-250228][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 09:39:19,219 [ INFO][       Thread-250228][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 09:39:19,219 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 09:39:19,219 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 09:39:19,404 [DEBUG][Thread-250230 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:39:19,569 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:39:19,569 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:39:20,287 [DEBUG][       Thread-250228][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 09:39:20,287 [DEBUG][       Thread-250228][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 09:39:20,339 [DEBUG][       Thread-250228][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 09:39:20,339 [DEBUG][       Thread-250228][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 09:39:20,348 [DEBUG][       Thread-250228][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 09:39:20,356 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 09:39:20,356 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 09:39:20,364 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 09:39:20,374 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 09:39:20,374 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 09:39:20,374 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 09:39:20,385 [DEBUG][       Thread-250228][   transport.py][1871] : EOF in transport thread
2025-06-13 09:39:20,461 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:39:20,462 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:39:21,465 [DEBUG][Thread-250231 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:39:30,378 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 09:39:30,378 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 09:39:30,378 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 09:39:30,381 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 09:39:30,482 [DEBUG][Thread-250232 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:39:30,839 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 9, 39, 26), 9.23, 52.13, 0.0, 19.67, 8.0, 0, 0, 0, 2, 0, 0),)
2025-06-13 09:39:30,839 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 09:39:26
2025-06-13 09:39:30,921 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 09:39:30,925 [DEBUG][       Thread-250233][   transport.py][1871] : starting thread (client mode): 0x867b6770
2025-06-13 09:39:30,925 [DEBUG][       Thread-250233][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 09:39:30,946 [DEBUG][       Thread-250233][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 09:39:30,946 [ INFO][       Thread-250233][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 09:39:30,950 [DEBUG][       Thread-250233][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 09:39:30,950 [DEBUG][       Thread-250233][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 09:39:30,950 [DEBUG][       Thread-250233][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 09:39:30,950 [DEBUG][       Thread-250233][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:39:30,950 [DEBUG][       Thread-250233][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:39:30,950 [DEBUG][       Thread-250233][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:39:30,950 [DEBUG][       Thread-250233][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:39:30,950 [DEBUG][       Thread-250233][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 09:39:30,950 [DEBUG][       Thread-250233][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 09:39:30,950 [DEBUG][       Thread-250233][   transport.py][1871] : client lang: <none>
2025-06-13 09:39:30,950 [DEBUG][       Thread-250233][   transport.py][1871] : server lang: <none>
2025-06-13 09:39:30,950 [DEBUG][       Thread-250233][   transport.py][1871] : kex follows: False
2025-06-13 09:39:30,950 [DEBUG][       Thread-250233][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 09:39:30,950 [DEBUG][       Thread-250233][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 09:39:30,950 [DEBUG][       Thread-250233][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 09:39:30,951 [DEBUG][       Thread-250233][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 09:39:30,951 [DEBUG][       Thread-250233][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 09:39:30,951 [DEBUG][       Thread-250233][   transport.py][1871] : Compression: none
2025-06-13 09:39:30,951 [DEBUG][       Thread-250233][   transport.py][1871] : === End of kex handshake ===
2025-06-13 09:39:30,967 [DEBUG][       Thread-250233][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 09:39:30,967 [DEBUG][       Thread-250233][   transport.py][1871] : Switch to new keys ...
2025-06-13 09:39:30,968 [DEBUG][       Thread-250233][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 09:39:30,968 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 09:39:30,968 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 09:39:30,970 [DEBUG][       Thread-250233][   transport.py][1871] : userauth is OK
2025-06-13 09:39:30,994 [ INFO][       Thread-250233][   transport.py][1871] : Authentication (password) successful!
2025-06-13 09:39:30,994 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 09:39:31,636 [DEBUG][       Thread-250233][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 09:39:31,636 [DEBUG][       Thread-250233][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 09:39:31,676 [DEBUG][       Thread-250233][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 09:39:31,676 [DEBUG][       Thread-250233][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 09:39:31,679 [DEBUG][       Thread-250233][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 09:39:31,691 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 09:39:31,691 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 09:39:31,693 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 09:39:31,693 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 09:39:31,696 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 09:39:31,696 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 09:39:31,696 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 09:39:31,697 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 09:39:31,697 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.318691 -999.00   +7.90  17.85     56   -0.10 1 1 1 1 1   887    0 8.28 14.25 ----- 17.9 17.9 40.4 23.5 11.8 -27.7 10.6 -29.0 9.3 -28.1 10.5 -26.1
2025-06-13 09:39:31,697 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 09:39:31,697 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 09:39:31,697 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.318691
2025-06-13 09:39:31,697 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 09:39:31,697 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 09:39:31,697 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 09:39:31,697 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 09:39:31,697 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 09:39:31,697 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T09:39:26', tmtdew=9.23, humidity=52.13, cloud=0.0, wind=19.67, temperature=8.0, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T07:38:54.902', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 09:39:31,698 [DEBUG][       Thread-250233][   transport.py][1871] : EOF in transport thread
2025-06-13 09:39:31,773 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 09:39:31,783 [DEBUG][       Thread-250236][   transport.py][1871] : starting thread (client mode): 0x8636a530
2025-06-13 09:39:31,783 [DEBUG][       Thread-250236][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 09:39:31,797 [DEBUG][       Thread-250236][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 09:39:31,797 [ INFO][       Thread-250236][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 09:39:31,805 [DEBUG][       Thread-250236][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 09:39:31,805 [DEBUG][       Thread-250236][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 09:39:31,805 [DEBUG][       Thread-250236][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 09:39:31,805 [DEBUG][       Thread-250236][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:39:31,805 [DEBUG][       Thread-250236][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:39:31,805 [DEBUG][       Thread-250236][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:39:31,805 [DEBUG][       Thread-250236][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:39:31,805 [DEBUG][       Thread-250236][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 09:39:31,805 [DEBUG][       Thread-250236][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 09:39:31,805 [DEBUG][       Thread-250236][   transport.py][1871] : client lang: <none>
2025-06-13 09:39:31,805 [DEBUG][       Thread-250236][   transport.py][1871] : server lang: <none>
2025-06-13 09:39:31,805 [DEBUG][       Thread-250236][   transport.py][1871] : kex follows: False
2025-06-13 09:39:31,805 [DEBUG][       Thread-250236][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 09:39:31,805 [DEBUG][       Thread-250236][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 09:39:31,805 [DEBUG][       Thread-250236][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 09:39:31,805 [DEBUG][       Thread-250236][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 09:39:31,805 [DEBUG][       Thread-250236][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 09:39:31,805 [DEBUG][       Thread-250236][   transport.py][1871] : Compression: none
2025-06-13 09:39:31,805 [DEBUG][       Thread-250236][   transport.py][1871] : === End of kex handshake ===
2025-06-13 09:39:31,861 [DEBUG][       Thread-250236][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 09:39:31,861 [DEBUG][       Thread-250236][   transport.py][1871] : Switch to new keys ...
2025-06-13 09:39:31,861 [DEBUG][       Thread-250236][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 09:39:31,861 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 09:39:31,861 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 09:39:31,931 [DEBUG][       Thread-250236][   transport.py][1871] : userauth is OK
2025-06-13 09:39:31,931 [DEBUG][       Thread-250236][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 09:39:31,931 [DEBUG][       Thread-250236][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 09:39:31,931 [DEBUG][       Thread-250236][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 09:39:31,931 [DEBUG][       Thread-250236][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 09:39:31,950 [ INFO][       Thread-250236][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 09:39:31,950 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 09:39:31,951 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 09:39:32,964 [DEBUG][       Thread-250236][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 09:39:32,964 [DEBUG][       Thread-250236][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 09:39:33,015 [DEBUG][       Thread-250236][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 09:39:33,016 [DEBUG][       Thread-250236][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 09:39:33,025 [DEBUG][       Thread-250236][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 09:39:33,033 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 09:39:33,033 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 09:39:33,042 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 09:39:33,051 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 09:39:33,051 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 09:39:33,051 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 09:39:33,059 [DEBUG][       Thread-250236][   transport.py][1871] : EOF in transport thread
2025-06-13 09:39:39,500 [DEBUG][Thread-250238 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:39:43,062 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 09:39:43,062 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 09:39:43,062 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 09:39:43,064 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 09:39:43,530 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 9, 39, 26), 9.23, 52.13, 0.0, 19.67, 8.0, 0, 0, 0, 2, 0, 0),)
2025-06-13 09:39:43,530 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 09:39:26
2025-06-13 09:39:43,612 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 09:39:43,617 [DEBUG][       Thread-250239][   transport.py][1871] : starting thread (client mode): 0x84205ba0
2025-06-13 09:39:43,618 [DEBUG][       Thread-250239][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 09:39:43,638 [DEBUG][       Thread-250239][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 09:39:43,638 [ INFO][       Thread-250239][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 09:39:43,641 [DEBUG][       Thread-250239][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 09:39:43,641 [DEBUG][       Thread-250239][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 09:39:43,641 [DEBUG][       Thread-250239][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 09:39:43,641 [DEBUG][       Thread-250239][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:39:43,641 [DEBUG][       Thread-250239][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:39:43,642 [DEBUG][       Thread-250239][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:39:43,642 [DEBUG][       Thread-250239][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:39:43,642 [DEBUG][       Thread-250239][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 09:39:43,642 [DEBUG][       Thread-250239][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 09:39:43,642 [DEBUG][       Thread-250239][   transport.py][1871] : client lang: <none>
2025-06-13 09:39:43,642 [DEBUG][       Thread-250239][   transport.py][1871] : server lang: <none>
2025-06-13 09:39:43,642 [DEBUG][       Thread-250239][   transport.py][1871] : kex follows: False
2025-06-13 09:39:43,642 [DEBUG][       Thread-250239][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 09:39:43,642 [DEBUG][       Thread-250239][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 09:39:43,642 [DEBUG][       Thread-250239][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 09:39:43,642 [DEBUG][       Thread-250239][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 09:39:43,642 [DEBUG][       Thread-250239][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 09:39:43,642 [DEBUG][       Thread-250239][   transport.py][1871] : Compression: none
2025-06-13 09:39:43,642 [DEBUG][       Thread-250239][   transport.py][1871] : === End of kex handshake ===
2025-06-13 09:39:43,661 [DEBUG][       Thread-250239][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 09:39:43,661 [DEBUG][       Thread-250239][   transport.py][1871] : Switch to new keys ...
2025-06-13 09:39:43,662 [DEBUG][       Thread-250239][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 09:39:43,662 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 09:39:43,662 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 09:39:43,663 [DEBUG][       Thread-250239][   transport.py][1871] : userauth is OK
2025-06-13 09:39:43,676 [ INFO][       Thread-250239][   transport.py][1871] : Authentication (password) successful!
2025-06-13 09:39:43,677 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 09:39:44,324 [DEBUG][       Thread-250239][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 09:39:44,324 [DEBUG][       Thread-250239][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 09:39:44,369 [DEBUG][       Thread-250239][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 09:39:44,369 [DEBUG][       Thread-250239][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 09:39:44,372 [DEBUG][       Thread-250239][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 09:39:44,386 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 09:39:44,386 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 09:39:44,388 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 09:39:44,389 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 09:39:44,393 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 09:39:44,395 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 09:39:44,395 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 09:39:44,395 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 09:39:44,396 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.318691 -999.00   +7.90  17.85     56   -0.10 1 1 1 1 1   887    0 8.28 14.25 ----- 17.9 17.9 40.4 23.5 11.8 -27.7 10.6 -29.0 9.3 -28.1 10.5 -26.1
2025-06-13 09:39:44,396 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 09:39:44,396 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 09:39:44,396 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.318691
2025-06-13 09:39:44,396 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 09:39:44,397 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 09:39:44,397 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 09:39:44,397 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 09:39:44,397 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 09:39:44,397 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T09:39:26', tmtdew=9.23, humidity=52.13, cloud=0.0, wind=19.67, temperature=8.0, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T07:38:54.902', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 09:39:44,397 [DEBUG][       Thread-250239][   transport.py][1871] : EOF in transport thread
2025-06-13 09:39:44,482 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 09:39:44,492 [DEBUG][       Thread-250242][   transport.py][1871] : starting thread (client mode): 0x863a46a0
2025-06-13 09:39:44,492 [DEBUG][       Thread-250242][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 09:39:44,508 [DEBUG][       Thread-250242][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 09:39:44,508 [ INFO][       Thread-250242][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 09:39:44,520 [DEBUG][       Thread-250242][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 09:39:44,520 [DEBUG][       Thread-250242][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 09:39:44,520 [DEBUG][       Thread-250242][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 09:39:44,520 [DEBUG][       Thread-250242][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:39:44,520 [DEBUG][       Thread-250242][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:39:44,520 [DEBUG][       Thread-250242][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:39:44,520 [DEBUG][       Thread-250242][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:39:44,520 [DEBUG][       Thread-250242][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 09:39:44,520 [DEBUG][       Thread-250242][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 09:39:44,520 [DEBUG][       Thread-250242][   transport.py][1871] : client lang: <none>
2025-06-13 09:39:44,520 [DEBUG][       Thread-250242][   transport.py][1871] : server lang: <none>
2025-06-13 09:39:44,521 [DEBUG][       Thread-250242][   transport.py][1871] : kex follows: False
2025-06-13 09:39:44,521 [DEBUG][       Thread-250242][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 09:39:44,521 [DEBUG][       Thread-250242][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 09:39:44,521 [DEBUG][       Thread-250242][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 09:39:44,521 [DEBUG][       Thread-250242][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 09:39:44,521 [DEBUG][       Thread-250242][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 09:39:44,521 [DEBUG][       Thread-250242][   transport.py][1871] : Compression: none
2025-06-13 09:39:44,521 [DEBUG][       Thread-250242][   transport.py][1871] : === End of kex handshake ===
2025-06-13 09:39:44,574 [DEBUG][       Thread-250242][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 09:39:44,575 [DEBUG][       Thread-250242][   transport.py][1871] : Switch to new keys ...
2025-06-13 09:39:44,575 [DEBUG][       Thread-250242][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 09:39:44,576 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 09:39:44,576 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 09:39:44,633 [DEBUG][       Thread-250242][   transport.py][1871] : userauth is OK
2025-06-13 09:39:44,633 [DEBUG][       Thread-250242][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 09:39:44,633 [DEBUG][       Thread-250242][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 09:39:44,633 [DEBUG][       Thread-250242][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 09:39:44,633 [DEBUG][       Thread-250242][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 09:39:44,652 [ INFO][       Thread-250242][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 09:39:44,652 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 09:39:44,653 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 09:39:45,660 [DEBUG][       Thread-250242][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 09:39:45,660 [DEBUG][       Thread-250242][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 09:39:45,714 [DEBUG][       Thread-250242][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 09:39:45,714 [DEBUG][       Thread-250242][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 09:39:45,727 [DEBUG][       Thread-250242][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 09:39:45,739 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 09:39:45,739 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 09:39:45,751 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 09:39:45,760 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 09:39:45,760 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 09:39:45,761 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 09:39:45,769 [DEBUG][       Thread-250242][   transport.py][1871] : EOF in transport thread
2025-06-13 09:39:48,533 [DEBUG][Thread-250244 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:39:55,762 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 09:39:55,762 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 09:39:55,762 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 09:39:55,763 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 09:39:56,224 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 9, 39, 26), 9.23, 52.13, 0.0, 19.67, 8.0, 0, 0, 0, 2, 0, 0),)
2025-06-13 09:39:56,224 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 09:39:26
2025-06-13 09:39:56,312 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 09:39:56,316 [DEBUG][       Thread-250245][   transport.py][1871] : starting thread (client mode): 0x84205cc0
2025-06-13 09:39:56,316 [DEBUG][       Thread-250245][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 09:39:56,336 [DEBUG][       Thread-250245][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 09:39:56,336 [ INFO][       Thread-250245][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 09:39:56,340 [DEBUG][       Thread-250245][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 09:39:56,340 [DEBUG][       Thread-250245][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 09:39:56,340 [DEBUG][       Thread-250245][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 09:39:56,340 [DEBUG][       Thread-250245][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:39:56,340 [DEBUG][       Thread-250245][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:39:56,340 [DEBUG][       Thread-250245][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:39:56,340 [DEBUG][       Thread-250245][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:39:56,340 [DEBUG][       Thread-250245][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 09:39:56,340 [DEBUG][       Thread-250245][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 09:39:56,340 [DEBUG][       Thread-250245][   transport.py][1871] : client lang: <none>
2025-06-13 09:39:56,340 [DEBUG][       Thread-250245][   transport.py][1871] : server lang: <none>
2025-06-13 09:39:56,340 [DEBUG][       Thread-250245][   transport.py][1871] : kex follows: False
2025-06-13 09:39:56,340 [DEBUG][       Thread-250245][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 09:39:56,340 [DEBUG][       Thread-250245][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 09:39:56,340 [DEBUG][       Thread-250245][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 09:39:56,340 [DEBUG][       Thread-250245][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 09:39:56,340 [DEBUG][       Thread-250245][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 09:39:56,340 [DEBUG][       Thread-250245][   transport.py][1871] : Compression: none
2025-06-13 09:39:56,340 [DEBUG][       Thread-250245][   transport.py][1871] : === End of kex handshake ===
2025-06-13 09:39:56,354 [DEBUG][       Thread-250245][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 09:39:56,354 [DEBUG][       Thread-250245][   transport.py][1871] : Switch to new keys ...
2025-06-13 09:39:56,354 [DEBUG][       Thread-250245][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 09:39:56,354 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 09:39:56,354 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 09:39:56,355 [DEBUG][       Thread-250245][   transport.py][1871] : userauth is OK
2025-06-13 09:39:56,367 [ INFO][       Thread-250245][   transport.py][1871] : Authentication (password) successful!
2025-06-13 09:39:56,367 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 09:39:56,957 [DEBUG][       Thread-250245][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 09:39:56,957 [DEBUG][       Thread-250245][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 09:39:57,000 [DEBUG][       Thread-250245][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 09:39:57,001 [DEBUG][       Thread-250245][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 09:39:57,003 [DEBUG][       Thread-250245][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 09:39:57,018 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 09:39:57,018 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 09:39:57,019 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 09:39:57,020 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 09:39:57,022 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 09:39:57,023 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 09:39:57,023 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 09:39:57,023 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 09:39:57,023 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.318691 -999.00   +7.90  17.85     56   -0.10 1 1 1 1 1   887    0 8.28 14.25 ----- 17.9 17.9 40.4 23.5 11.8 -27.7 10.6 -29.0 9.3 -28.1 10.5 -26.1
2025-06-13 09:39:57,023 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 09:39:57,023 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 09:39:57,023 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.318691
2025-06-13 09:39:57,024 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 09:39:57,024 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 09:39:57,024 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 09:39:57,024 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 09:39:57,024 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 09:39:57,024 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T09:39:26', tmtdew=9.23, humidity=52.13, cloud=0.0, wind=19.67, temperature=8.0, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T07:38:54.902', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 09:39:57,024 [DEBUG][       Thread-250245][   transport.py][1871] : EOF in transport thread
2025-06-13 09:39:57,096 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 09:39:57,106 [DEBUG][       Thread-250248][   transport.py][1871] : starting thread (client mode): 0x863a55d0
2025-06-13 09:39:57,106 [DEBUG][       Thread-250248][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 09:39:57,121 [DEBUG][       Thread-250248][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 09:39:57,121 [ INFO][       Thread-250248][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 09:39:57,129 [DEBUG][       Thread-250248][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 09:39:57,129 [DEBUG][       Thread-250248][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 09:39:57,129 [DEBUG][       Thread-250248][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 09:39:57,129 [DEBUG][       Thread-250248][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:39:57,129 [DEBUG][       Thread-250248][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:39:57,129 [DEBUG][       Thread-250248][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:39:57,129 [DEBUG][       Thread-250248][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:39:57,129 [DEBUG][       Thread-250248][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 09:39:57,129 [DEBUG][       Thread-250248][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 09:39:57,129 [DEBUG][       Thread-250248][   transport.py][1871] : client lang: <none>
2025-06-13 09:39:57,129 [DEBUG][       Thread-250248][   transport.py][1871] : server lang: <none>
2025-06-13 09:39:57,129 [DEBUG][       Thread-250248][   transport.py][1871] : kex follows: False
2025-06-13 09:39:57,129 [DEBUG][       Thread-250248][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 09:39:57,129 [DEBUG][       Thread-250248][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 09:39:57,129 [DEBUG][       Thread-250248][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 09:39:57,129 [DEBUG][       Thread-250248][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 09:39:57,129 [DEBUG][       Thread-250248][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 09:39:57,129 [DEBUG][       Thread-250248][   transport.py][1871] : Compression: none
2025-06-13 09:39:57,129 [DEBUG][       Thread-250248][   transport.py][1871] : === End of kex handshake ===
2025-06-13 09:39:57,186 [DEBUG][       Thread-250248][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 09:39:57,186 [DEBUG][       Thread-250248][   transport.py][1871] : Switch to new keys ...
2025-06-13 09:39:57,186 [DEBUG][       Thread-250248][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 09:39:57,186 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 09:39:57,186 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 09:39:57,246 [DEBUG][       Thread-250248][   transport.py][1871] : userauth is OK
2025-06-13 09:39:57,246 [DEBUG][       Thread-250248][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 09:39:57,246 [DEBUG][       Thread-250248][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 09:39:57,246 [DEBUG][       Thread-250248][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 09:39:57,246 [DEBUG][       Thread-250248][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 09:39:57,265 [ INFO][       Thread-250248][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 09:39:57,265 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 09:39:57,265 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 09:39:57,549 [DEBUG][Thread-250250 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:39:58,954 [DEBUG][       Thread-250248][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 09:39:58,954 [DEBUG][       Thread-250248][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 09:39:59,004 [DEBUG][       Thread-250248][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 09:39:59,004 [DEBUG][       Thread-250248][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 09:39:59,012 [DEBUG][       Thread-250248][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 09:39:59,020 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 09:39:59,020 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 09:39:59,028 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 09:39:59,037 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 09:39:59,037 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 09:39:59,037 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 09:39:59,045 [DEBUG][       Thread-250248][   transport.py][1871] : EOF in transport thread
2025-06-13 09:40:03,875 [DEBUG][Thread-250251 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:40:06,567 [DEBUG][Thread-250252 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:40:09,047 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 09:40:09,047 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 09:40:09,047 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 09:40:09,050 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 09:40:09,521 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 9, 39, 57), 9.24, 52.11, 0.0, 19.82, 8.03, 0, 0, 0, 2, 0, 0),)
2025-06-13 09:40:09,521 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 09:39:57
2025-06-13 09:40:09,602 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 09:40:09,608 [DEBUG][       Thread-250253][   transport.py][1871] : starting thread (client mode): 0x86369000
2025-06-13 09:40:09,608 [DEBUG][       Thread-250253][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 09:40:09,625 [DEBUG][       Thread-250253][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 09:40:09,625 [ INFO][       Thread-250253][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 09:40:09,629 [DEBUG][       Thread-250253][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 09:40:09,629 [DEBUG][       Thread-250253][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 09:40:09,629 [DEBUG][       Thread-250253][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 09:40:09,629 [DEBUG][       Thread-250253][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:40:09,629 [DEBUG][       Thread-250253][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:40:09,629 [DEBUG][       Thread-250253][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:40:09,629 [DEBUG][       Thread-250253][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:40:09,629 [DEBUG][       Thread-250253][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 09:40:09,629 [DEBUG][       Thread-250253][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 09:40:09,629 [DEBUG][       Thread-250253][   transport.py][1871] : client lang: <none>
2025-06-13 09:40:09,629 [DEBUG][       Thread-250253][   transport.py][1871] : server lang: <none>
2025-06-13 09:40:09,629 [DEBUG][       Thread-250253][   transport.py][1871] : kex follows: False
2025-06-13 09:40:09,629 [DEBUG][       Thread-250253][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 09:40:09,629 [DEBUG][       Thread-250253][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 09:40:09,629 [DEBUG][       Thread-250253][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 09:40:09,629 [DEBUG][       Thread-250253][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 09:40:09,629 [DEBUG][       Thread-250253][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 09:40:09,629 [DEBUG][       Thread-250253][   transport.py][1871] : Compression: none
2025-06-13 09:40:09,629 [DEBUG][       Thread-250253][   transport.py][1871] : === End of kex handshake ===
2025-06-13 09:40:09,646 [DEBUG][       Thread-250253][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 09:40:09,646 [DEBUG][       Thread-250253][   transport.py][1871] : Switch to new keys ...
2025-06-13 09:40:09,647 [DEBUG][       Thread-250253][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 09:40:09,647 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 09:40:09,647 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 09:40:09,649 [DEBUG][       Thread-250253][   transport.py][1871] : userauth is OK
2025-06-13 09:40:09,661 [ INFO][       Thread-250253][   transport.py][1871] : Authentication (password) successful!
2025-06-13 09:40:09,662 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 09:40:10,959 [DEBUG][       Thread-250253][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 09:40:10,959 [DEBUG][       Thread-250253][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 09:40:11,000 [DEBUG][       Thread-250253][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 09:40:11,001 [DEBUG][       Thread-250253][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 09:40:11,003 [DEBUG][       Thread-250253][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 09:40:11,015 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 09:40:11,015 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 09:40:11,017 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 09:40:11,019 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 09:40:11,041 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 09:40:11,042 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 09:40:11,042 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 09:40:11,043 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 09:40:11,043 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.319385 -999.00   +7.90  22.90     57   +0.00 1 1 1 1 1   887    0 8.34 16.54 ----- 22.9 22.9 32.6 24.1 11.8 -27.8 10.6 -28.9 9.2 -28.0 10.6 -26.3
2025-06-13 09:40:11,043 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 09:40:11,043 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 09:40:11,043 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.319385
2025-06-13 09:40:11,044 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 09:40:11,044 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 09:40:11,044 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 09:40:11,044 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 09:40:11,044 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 09:40:11,044 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T09:39:57', tmtdew=9.24, humidity=52.11, cloud=0.0, wind=19.82, temperature=8.03, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T07:39:54.864', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 09:40:11,045 [DEBUG][       Thread-250253][   transport.py][1871] : EOF in transport thread
2025-06-13 09:40:11,129 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 09:40:11,139 [DEBUG][       Thread-250256][   transport.py][1871] : starting thread (client mode): 0x867fe230
2025-06-13 09:40:11,139 [DEBUG][       Thread-250256][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 09:40:11,154 [DEBUG][       Thread-250256][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 09:40:11,154 [ INFO][       Thread-250256][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 09:40:11,161 [DEBUG][       Thread-250256][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 09:40:11,162 [DEBUG][       Thread-250256][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 09:40:11,162 [DEBUG][       Thread-250256][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 09:40:11,162 [DEBUG][       Thread-250256][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:40:11,162 [DEBUG][       Thread-250256][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:40:11,162 [DEBUG][       Thread-250256][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:40:11,162 [DEBUG][       Thread-250256][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:40:11,162 [DEBUG][       Thread-250256][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 09:40:11,162 [DEBUG][       Thread-250256][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 09:40:11,162 [DEBUG][       Thread-250256][   transport.py][1871] : client lang: <none>
2025-06-13 09:40:11,162 [DEBUG][       Thread-250256][   transport.py][1871] : server lang: <none>
2025-06-13 09:40:11,162 [DEBUG][       Thread-250256][   transport.py][1871] : kex follows: False
2025-06-13 09:40:11,162 [DEBUG][       Thread-250256][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 09:40:11,162 [DEBUG][       Thread-250256][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 09:40:11,162 [DEBUG][       Thread-250256][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 09:40:11,162 [DEBUG][       Thread-250256][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 09:40:11,162 [DEBUG][       Thread-250256][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 09:40:11,162 [DEBUG][       Thread-250256][   transport.py][1871] : Compression: none
2025-06-13 09:40:11,162 [DEBUG][       Thread-250256][   transport.py][1871] : === End of kex handshake ===
2025-06-13 09:40:11,225 [DEBUG][       Thread-250256][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 09:40:11,225 [DEBUG][       Thread-250256][   transport.py][1871] : Switch to new keys ...
2025-06-13 09:40:11,226 [DEBUG][       Thread-250256][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 09:40:11,226 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 09:40:11,227 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 09:40:11,286 [DEBUG][       Thread-250256][   transport.py][1871] : userauth is OK
2025-06-13 09:40:11,287 [DEBUG][       Thread-250256][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 09:40:11,287 [DEBUG][       Thread-250256][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 09:40:11,287 [DEBUG][       Thread-250256][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 09:40:11,287 [DEBUG][       Thread-250256][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 09:40:11,305 [ INFO][       Thread-250256][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 09:40:11,306 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 09:40:11,306 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 09:40:12,288 [DEBUG][       Thread-250256][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 09:40:12,288 [DEBUG][       Thread-250256][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 09:40:12,345 [DEBUG][       Thread-250256][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 09:40:12,345 [DEBUG][       Thread-250256][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 09:40:12,354 [DEBUG][       Thread-250256][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 09:40:12,362 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 09:40:12,362 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 09:40:12,371 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 09:40:12,380 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 09:40:12,380 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 09:40:12,381 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 09:40:12,389 [DEBUG][       Thread-250256][   transport.py][1871] : EOF in transport thread
2025-06-13 09:40:15,586 [DEBUG][Thread-250258 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:40:19,708 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:40:19,709 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:40:20,542 [DEBUG][Thread-250259 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:40:21,613 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:40:21,614 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:40:22,391 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 09:40:22,391 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 09:40:22,391 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 09:40:22,394 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 09:40:22,860 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 9, 39, 57), 9.24, 52.11, 0.0, 19.82, 8.03, 0, 0, 0, 2, 0, 0),)
2025-06-13 09:40:22,860 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 09:39:57
2025-06-13 09:40:22,942 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 09:40:22,946 [DEBUG][       Thread-250260][   transport.py][1871] : starting thread (client mode): 0x863bc3d0
2025-06-13 09:40:22,946 [DEBUG][       Thread-250260][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 09:40:22,966 [DEBUG][       Thread-250260][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 09:40:22,967 [ INFO][       Thread-250260][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 09:40:22,970 [DEBUG][       Thread-250260][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 09:40:22,970 [DEBUG][       Thread-250260][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 09:40:22,970 [DEBUG][       Thread-250260][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 09:40:22,970 [DEBUG][       Thread-250260][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:40:22,970 [DEBUG][       Thread-250260][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:40:22,970 [DEBUG][       Thread-250260][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:40:22,970 [DEBUG][       Thread-250260][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:40:22,970 [DEBUG][       Thread-250260][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 09:40:22,970 [DEBUG][       Thread-250260][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 09:40:22,970 [DEBUG][       Thread-250260][   transport.py][1871] : client lang: <none>
2025-06-13 09:40:22,970 [DEBUG][       Thread-250260][   transport.py][1871] : server lang: <none>
2025-06-13 09:40:22,970 [DEBUG][       Thread-250260][   transport.py][1871] : kex follows: False
2025-06-13 09:40:22,970 [DEBUG][       Thread-250260][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 09:40:22,970 [DEBUG][       Thread-250260][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 09:40:22,970 [DEBUG][       Thread-250260][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 09:40:22,970 [DEBUG][       Thread-250260][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 09:40:22,970 [DEBUG][       Thread-250260][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 09:40:22,970 [DEBUG][       Thread-250260][   transport.py][1871] : Compression: none
2025-06-13 09:40:22,970 [DEBUG][       Thread-250260][   transport.py][1871] : === End of kex handshake ===
2025-06-13 09:40:22,987 [DEBUG][       Thread-250260][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 09:40:22,987 [DEBUG][       Thread-250260][   transport.py][1871] : Switch to new keys ...
2025-06-13 09:40:22,988 [DEBUG][       Thread-250260][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 09:40:22,988 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 09:40:22,988 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 09:40:22,989 [DEBUG][       Thread-250260][   transport.py][1871] : userauth is OK
2025-06-13 09:40:23,002 [ INFO][       Thread-250260][   transport.py][1871] : Authentication (password) successful!
2025-06-13 09:40:23,003 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 09:40:23,665 [DEBUG][       Thread-250260][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 09:40:23,665 [DEBUG][       Thread-250260][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 09:40:23,709 [DEBUG][       Thread-250260][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 09:40:23,709 [DEBUG][       Thread-250260][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 09:40:23,712 [DEBUG][       Thread-250260][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 09:40:23,726 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 09:40:23,726 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 09:40:23,728 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 09:40:23,729 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 09:40:23,734 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 09:40:23,736 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 09:40:23,736 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 09:40:23,736 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 09:40:23,737 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.319385 -999.00   +7.90  22.90     57   +0.00 1 1 1 1 1   887    0 8.34 16.54 ----- 22.9 22.9 32.6 24.1 11.8 -27.8 10.6 -28.9 9.2 -28.0 10.6 -26.3
2025-06-13 09:40:23,737 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 09:40:23,737 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 09:40:23,737 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.319385
2025-06-13 09:40:23,737 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 09:40:23,738 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 09:40:23,738 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 09:40:23,738 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 09:40:23,738 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 09:40:23,738 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T09:39:57', tmtdew=9.24, humidity=52.11, cloud=0.0, wind=19.82, temperature=8.03, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T07:39:54.864', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 09:40:23,739 [DEBUG][       Thread-250260][   transport.py][1871] : EOF in transport thread
2025-06-13 09:40:23,832 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 09:40:23,841 [DEBUG][       Thread-250263][   transport.py][1871] : starting thread (client mode): 0x863efe50
2025-06-13 09:40:23,841 [DEBUG][       Thread-250263][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 09:40:23,856 [DEBUG][       Thread-250263][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 09:40:23,856 [ INFO][       Thread-250263][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 09:40:23,863 [DEBUG][       Thread-250263][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 09:40:23,863 [DEBUG][       Thread-250263][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 09:40:23,863 [DEBUG][       Thread-250263][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 09:40:23,863 [DEBUG][       Thread-250263][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:40:23,863 [DEBUG][       Thread-250263][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:40:23,863 [DEBUG][       Thread-250263][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:40:23,863 [DEBUG][       Thread-250263][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:40:23,863 [DEBUG][       Thread-250263][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 09:40:23,864 [DEBUG][       Thread-250263][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 09:40:23,864 [DEBUG][       Thread-250263][   transport.py][1871] : client lang: <none>
2025-06-13 09:40:23,864 [DEBUG][       Thread-250263][   transport.py][1871] : server lang: <none>
2025-06-13 09:40:23,864 [DEBUG][       Thread-250263][   transport.py][1871] : kex follows: False
2025-06-13 09:40:23,864 [DEBUG][       Thread-250263][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 09:40:23,864 [DEBUG][       Thread-250263][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 09:40:23,864 [DEBUG][       Thread-250263][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 09:40:23,864 [DEBUG][       Thread-250263][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 09:40:23,864 [DEBUG][       Thread-250263][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 09:40:23,864 [DEBUG][       Thread-250263][   transport.py][1871] : Compression: none
2025-06-13 09:40:23,864 [DEBUG][       Thread-250263][   transport.py][1871] : === End of kex handshake ===
2025-06-13 09:40:23,928 [DEBUG][       Thread-250263][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 09:40:23,929 [DEBUG][       Thread-250263][   transport.py][1871] : Switch to new keys ...
2025-06-13 09:40:23,929 [DEBUG][       Thread-250263][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 09:40:23,930 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 09:40:23,930 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 09:40:23,987 [DEBUG][       Thread-250263][   transport.py][1871] : userauth is OK
2025-06-13 09:40:23,987 [DEBUG][       Thread-250263][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 09:40:23,987 [DEBUG][       Thread-250263][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 09:40:23,987 [DEBUG][       Thread-250263][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 09:40:23,987 [DEBUG][       Thread-250263][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 09:40:24,006 [ INFO][       Thread-250263][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 09:40:24,006 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 09:40:24,006 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 09:40:24,625 [DEBUG][Thread-250265 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:40:25,115 [DEBUG][       Thread-250263][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 09:40:25,116 [DEBUG][       Thread-250263][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 09:40:25,164 [DEBUG][       Thread-250263][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 09:40:25,165 [DEBUG][       Thread-250263][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 09:40:25,174 [DEBUG][       Thread-250263][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 09:40:25,183 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 09:40:25,183 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 09:40:25,192 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 09:40:25,201 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 09:40:25,201 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 09:40:25,201 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 09:40:25,210 [DEBUG][       Thread-250263][   transport.py][1871] : EOF in transport thread
2025-06-13 09:40:33,641 [DEBUG][Thread-250266 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:40:35,208 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 09:40:35,208 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 09:40:35,208 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 09:40:35,209 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 09:40:35,657 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 9, 40, 29), 9.27, 52.0, 0.0, 21.62, 8.04, 0, 0, 0, 2, 0, 0),)
2025-06-13 09:40:35,657 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 09:40:29
2025-06-13 09:40:35,739 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 09:40:35,745 [DEBUG][       Thread-250267][   transport.py][1871] : starting thread (client mode): 0x8636b940
2025-06-13 09:40:35,745 [DEBUG][       Thread-250267][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 09:40:35,764 [DEBUG][       Thread-250267][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 09:40:35,764 [ INFO][       Thread-250267][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 09:40:35,767 [DEBUG][       Thread-250267][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 09:40:35,767 [DEBUG][       Thread-250267][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 09:40:35,767 [DEBUG][       Thread-250267][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 09:40:35,767 [DEBUG][       Thread-250267][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:40:35,767 [DEBUG][       Thread-250267][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:40:35,767 [DEBUG][       Thread-250267][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:40:35,767 [DEBUG][       Thread-250267][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:40:35,767 [DEBUG][       Thread-250267][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 09:40:35,767 [DEBUG][       Thread-250267][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 09:40:35,767 [DEBUG][       Thread-250267][   transport.py][1871] : client lang: <none>
2025-06-13 09:40:35,768 [DEBUG][       Thread-250267][   transport.py][1871] : server lang: <none>
2025-06-13 09:40:35,768 [DEBUG][       Thread-250267][   transport.py][1871] : kex follows: False
2025-06-13 09:40:35,768 [DEBUG][       Thread-250267][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 09:40:35,768 [DEBUG][       Thread-250267][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 09:40:35,768 [DEBUG][       Thread-250267][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 09:40:35,768 [DEBUG][       Thread-250267][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 09:40:35,768 [DEBUG][       Thread-250267][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 09:40:35,768 [DEBUG][       Thread-250267][   transport.py][1871] : Compression: none
2025-06-13 09:40:35,768 [DEBUG][       Thread-250267][   transport.py][1871] : === End of kex handshake ===
2025-06-13 09:40:35,782 [DEBUG][       Thread-250267][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 09:40:35,782 [DEBUG][       Thread-250267][   transport.py][1871] : Switch to new keys ...
2025-06-13 09:40:35,782 [DEBUG][       Thread-250267][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 09:40:35,782 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 09:40:35,782 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 09:40:35,783 [DEBUG][       Thread-250267][   transport.py][1871] : userauth is OK
2025-06-13 09:40:35,796 [ INFO][       Thread-250267][   transport.py][1871] : Authentication (password) successful!
2025-06-13 09:40:35,796 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 09:40:36,400 [DEBUG][       Thread-250267][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 09:40:36,400 [DEBUG][       Thread-250267][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 09:40:36,445 [DEBUG][       Thread-250267][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 09:40:36,445 [DEBUG][       Thread-250267][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 09:40:36,448 [DEBUG][       Thread-250267][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 09:40:36,456 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 09:40:36,457 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 09:40:36,458 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 09:40:36,460 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 09:40:36,466 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 09:40:36,468 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 09:40:36,468 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 09:40:36,469 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 09:40:36,469 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.319732 -999.00   +7.90  17.60     56   +0.00 1 1 1 1 1   887    0 8.38 15.62 ----- 17.6 17.6 47.0 27.2 11.9 -28.1 10.7 -28.8 9.3 -27.9 10.5 -26.3
2025-06-13 09:40:36,469 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 09:40:36,469 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 09:40:36,469 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.319732
2025-06-13 09:40:36,469 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 09:40:36,470 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 09:40:36,470 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 09:40:36,470 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 09:40:36,470 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 09:40:36,470 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T09:40:29', tmtdew=9.27, humidity=52.0, cloud=0.0, wind=21.62, temperature=8.04, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T07:40:24.845', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 09:40:36,471 [DEBUG][       Thread-250267][   transport.py][1871] : EOF in transport thread
2025-06-13 09:40:36,548 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 09:40:36,559 [DEBUG][       Thread-250270][   transport.py][1871] : starting thread (client mode): 0x867ff010
2025-06-13 09:40:36,559 [DEBUG][       Thread-250270][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 09:40:36,574 [DEBUG][       Thread-250270][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 09:40:36,574 [ INFO][       Thread-250270][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 09:40:36,581 [DEBUG][       Thread-250270][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 09:40:36,581 [DEBUG][       Thread-250270][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 09:40:36,582 [DEBUG][       Thread-250270][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 09:40:36,582 [DEBUG][       Thread-250270][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:40:36,582 [DEBUG][       Thread-250270][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:40:36,582 [DEBUG][       Thread-250270][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:40:36,582 [DEBUG][       Thread-250270][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:40:36,582 [DEBUG][       Thread-250270][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 09:40:36,582 [DEBUG][       Thread-250270][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 09:40:36,582 [DEBUG][       Thread-250270][   transport.py][1871] : client lang: <none>
2025-06-13 09:40:36,582 [DEBUG][       Thread-250270][   transport.py][1871] : server lang: <none>
2025-06-13 09:40:36,582 [DEBUG][       Thread-250270][   transport.py][1871] : kex follows: False
2025-06-13 09:40:36,582 [DEBUG][       Thread-250270][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 09:40:36,582 [DEBUG][       Thread-250270][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 09:40:36,582 [DEBUG][       Thread-250270][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 09:40:36,582 [DEBUG][       Thread-250270][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 09:40:36,582 [DEBUG][       Thread-250270][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 09:40:36,582 [DEBUG][       Thread-250270][   transport.py][1871] : Compression: none
2025-06-13 09:40:36,582 [DEBUG][       Thread-250270][   transport.py][1871] : === End of kex handshake ===
2025-06-13 09:40:36,638 [DEBUG][       Thread-250270][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 09:40:36,639 [DEBUG][       Thread-250270][   transport.py][1871] : Switch to new keys ...
2025-06-13 09:40:36,639 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 09:40:36,640 [DEBUG][       Thread-250270][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 09:40:36,641 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 09:40:36,695 [DEBUG][       Thread-250270][   transport.py][1871] : userauth is OK
2025-06-13 09:40:36,695 [DEBUG][       Thread-250270][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 09:40:36,695 [DEBUG][       Thread-250270][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 09:40:36,695 [DEBUG][       Thread-250270][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 09:40:36,695 [DEBUG][       Thread-250270][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 09:40:36,713 [ INFO][       Thread-250270][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 09:40:36,714 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 09:40:36,714 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 09:40:37,696 [DEBUG][       Thread-250270][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 09:40:37,696 [DEBUG][       Thread-250270][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 09:40:37,744 [DEBUG][       Thread-250270][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 09:40:37,744 [DEBUG][       Thread-250270][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 09:40:37,753 [DEBUG][       Thread-250270][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 09:40:37,763 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 09:40:37,763 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 09:40:37,774 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 09:40:37,786 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 09:40:37,787 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 09:40:37,787 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 09:40:37,795 [DEBUG][       Thread-250270][   transport.py][1871] : EOF in transport thread
2025-06-13 09:40:42,663 [DEBUG][Thread-250272 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:40:47,794 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 09:40:47,795 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 09:40:47,795 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 09:40:47,797 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 09:40:48,252 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 9, 40, 29), 9.27, 52.0, 0.0, 21.62, 8.04, 0, 0, 0, 2, 0, 0),)
2025-06-13 09:40:48,252 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 09:40:29
2025-06-13 09:40:48,334 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 09:40:48,340 [DEBUG][       Thread-250273][   transport.py][1871] : starting thread (client mode): 0x863bcbe0
2025-06-13 09:40:48,341 [DEBUG][       Thread-250273][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 09:40:48,361 [DEBUG][       Thread-250273][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 09:40:48,361 [ INFO][       Thread-250273][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 09:40:48,365 [DEBUG][       Thread-250273][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 09:40:48,365 [DEBUG][       Thread-250273][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 09:40:48,365 [DEBUG][       Thread-250273][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 09:40:48,365 [DEBUG][       Thread-250273][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:40:48,365 [DEBUG][       Thread-250273][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:40:48,365 [DEBUG][       Thread-250273][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:40:48,365 [DEBUG][       Thread-250273][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:40:48,365 [DEBUG][       Thread-250273][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 09:40:48,365 [DEBUG][       Thread-250273][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 09:40:48,365 [DEBUG][       Thread-250273][   transport.py][1871] : client lang: <none>
2025-06-13 09:40:48,365 [DEBUG][       Thread-250273][   transport.py][1871] : server lang: <none>
2025-06-13 09:40:48,365 [DEBUG][       Thread-250273][   transport.py][1871] : kex follows: False
2025-06-13 09:40:48,365 [DEBUG][       Thread-250273][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 09:40:48,365 [DEBUG][       Thread-250273][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 09:40:48,365 [DEBUG][       Thread-250273][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 09:40:48,365 [DEBUG][       Thread-250273][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 09:40:48,365 [DEBUG][       Thread-250273][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 09:40:48,365 [DEBUG][       Thread-250273][   transport.py][1871] : Compression: none
2025-06-13 09:40:48,365 [DEBUG][       Thread-250273][   transport.py][1871] : === End of kex handshake ===
2025-06-13 09:40:48,383 [DEBUG][       Thread-250273][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 09:40:48,383 [DEBUG][       Thread-250273][   transport.py][1871] : Switch to new keys ...
2025-06-13 09:40:48,384 [DEBUG][       Thread-250273][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 09:40:48,384 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 09:40:48,384 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 09:40:48,385 [DEBUG][       Thread-250273][   transport.py][1871] : userauth is OK
2025-06-13 09:40:48,410 [ INFO][       Thread-250273][   transport.py][1871] : Authentication (password) successful!
2025-06-13 09:40:48,410 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 09:40:49,082 [DEBUG][       Thread-250273][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 09:40:49,083 [DEBUG][       Thread-250273][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 09:40:49,125 [DEBUG][       Thread-250273][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 09:40:49,125 [DEBUG][       Thread-250273][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 09:40:49,128 [DEBUG][       Thread-250273][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 09:40:49,143 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 09:40:49,143 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 09:40:49,144 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 09:40:49,146 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 09:40:49,151 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 09:40:49,152 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 09:40:49,152 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 09:40:49,153 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 09:40:49,153 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.319732 -999.00   +7.90  17.60     56   +0.00 1 1 1 1 1   887    0 8.38 15.62 ----- 17.6 17.6 47.0 27.2 11.9 -28.1 10.7 -28.8 9.3 -27.9 10.5 -26.3
2025-06-13 09:40:49,153 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 09:40:49,153 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 09:40:49,153 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.319732
2025-06-13 09:40:49,154 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 09:40:49,154 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 09:40:49,154 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 09:40:49,154 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 09:40:49,154 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 09:40:49,155 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T09:40:29', tmtdew=9.27, humidity=52.0, cloud=0.0, wind=21.62, temperature=8.04, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T07:40:24.845', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 09:40:49,155 [DEBUG][       Thread-250273][   transport.py][1871] : EOF in transport thread
2025-06-13 09:40:49,239 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 09:40:49,253 [DEBUG][       Thread-250276][   transport.py][1871] : starting thread (client mode): 0x84206b00
2025-06-13 09:40:49,253 [DEBUG][       Thread-250276][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 09:40:49,272 [DEBUG][       Thread-250276][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 09:40:49,272 [ INFO][       Thread-250276][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 09:40:49,281 [DEBUG][       Thread-250276][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 09:40:49,281 [DEBUG][       Thread-250276][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 09:40:49,281 [DEBUG][       Thread-250276][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 09:40:49,281 [DEBUG][       Thread-250276][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:40:49,281 [DEBUG][       Thread-250276][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:40:49,281 [DEBUG][       Thread-250276][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:40:49,281 [DEBUG][       Thread-250276][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:40:49,281 [DEBUG][       Thread-250276][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 09:40:49,282 [DEBUG][       Thread-250276][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 09:40:49,282 [DEBUG][       Thread-250276][   transport.py][1871] : client lang: <none>
2025-06-13 09:40:49,282 [DEBUG][       Thread-250276][   transport.py][1871] : server lang: <none>
2025-06-13 09:40:49,282 [DEBUG][       Thread-250276][   transport.py][1871] : kex follows: False
2025-06-13 09:40:49,282 [DEBUG][       Thread-250276][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 09:40:49,282 [DEBUG][       Thread-250276][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 09:40:49,282 [DEBUG][       Thread-250276][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 09:40:49,282 [DEBUG][       Thread-250276][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 09:40:49,282 [DEBUG][       Thread-250276][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 09:40:49,282 [DEBUG][       Thread-250276][   transport.py][1871] : Compression: none
2025-06-13 09:40:49,282 [DEBUG][       Thread-250276][   transport.py][1871] : === End of kex handshake ===
2025-06-13 09:40:49,347 [DEBUG][       Thread-250276][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 09:40:49,347 [DEBUG][       Thread-250276][   transport.py][1871] : Switch to new keys ...
2025-06-13 09:40:49,348 [DEBUG][       Thread-250276][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 09:40:49,348 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 09:40:49,349 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 09:40:49,404 [DEBUG][       Thread-250276][   transport.py][1871] : userauth is OK
2025-06-13 09:40:49,404 [DEBUG][       Thread-250276][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 09:40:49,404 [DEBUG][       Thread-250276][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 09:40:49,404 [DEBUG][       Thread-250276][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 09:40:49,404 [DEBUG][       Thread-250276][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 09:40:49,424 [ INFO][       Thread-250276][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 09:40:49,425 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 09:40:49,425 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 09:40:50,475 [DEBUG][       Thread-250276][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 09:40:50,475 [DEBUG][       Thread-250276][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 09:40:50,524 [DEBUG][       Thread-250276][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 09:40:50,524 [DEBUG][       Thread-250276][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 09:40:50,533 [DEBUG][       Thread-250276][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 09:40:50,541 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 09:40:50,542 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 09:40:50,552 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 09:40:50,561 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 09:40:50,561 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 09:40:50,561 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 09:40:50,569 [DEBUG][       Thread-250276][   transport.py][1871] : EOF in transport thread
2025-06-13 09:40:51,702 [DEBUG][Thread-250278 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:41:00,572 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 09:41:00,572 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 09:41:00,572 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 09:41:00,575 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 09:41:00,720 [DEBUG][Thread-250279 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:41:01,035 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 9, 40, 29), 9.27, 52.0, 0.0, 21.62, 8.04, 0, 0, 0, 2, 0, 0),)
2025-06-13 09:41:01,035 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 09:40:29
2025-06-13 09:41:01,116 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 09:41:01,120 [DEBUG][       Thread-250280][   transport.py][1871] : starting thread (client mode): 0x84207280
2025-06-13 09:41:01,120 [DEBUG][       Thread-250280][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 09:41:01,140 [DEBUG][       Thread-250280][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 09:41:01,140 [ INFO][       Thread-250280][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 09:41:01,143 [DEBUG][       Thread-250280][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 09:41:01,143 [DEBUG][       Thread-250280][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 09:41:01,143 [DEBUG][       Thread-250280][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 09:41:01,143 [DEBUG][       Thread-250280][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:41:01,143 [DEBUG][       Thread-250280][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:41:01,143 [DEBUG][       Thread-250280][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:41:01,143 [DEBUG][       Thread-250280][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:41:01,143 [DEBUG][       Thread-250280][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 09:41:01,144 [DEBUG][       Thread-250280][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 09:41:01,144 [DEBUG][       Thread-250280][   transport.py][1871] : client lang: <none>
2025-06-13 09:41:01,144 [DEBUG][       Thread-250280][   transport.py][1871] : server lang: <none>
2025-06-13 09:41:01,144 [DEBUG][       Thread-250280][   transport.py][1871] : kex follows: False
2025-06-13 09:41:01,144 [DEBUG][       Thread-250280][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 09:41:01,144 [DEBUG][       Thread-250280][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 09:41:01,144 [DEBUG][       Thread-250280][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 09:41:01,144 [DEBUG][       Thread-250280][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 09:41:01,144 [DEBUG][       Thread-250280][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 09:41:01,144 [DEBUG][       Thread-250280][   transport.py][1871] : Compression: none
2025-06-13 09:41:01,144 [DEBUG][       Thread-250280][   transport.py][1871] : === End of kex handshake ===
2025-06-13 09:41:01,160 [DEBUG][       Thread-250280][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 09:41:01,161 [DEBUG][       Thread-250280][   transport.py][1871] : Switch to new keys ...
2025-06-13 09:41:01,161 [DEBUG][       Thread-250280][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 09:41:01,161 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 09:41:01,162 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 09:41:01,163 [DEBUG][       Thread-250280][   transport.py][1871] : userauth is OK
2025-06-13 09:41:01,176 [ INFO][       Thread-250280][   transport.py][1871] : Authentication (password) successful!
2025-06-13 09:41:01,176 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 09:41:01,829 [DEBUG][       Thread-250280][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 09:41:01,830 [DEBUG][       Thread-250280][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 09:41:01,873 [DEBUG][       Thread-250280][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 09:41:01,873 [DEBUG][       Thread-250280][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 09:41:01,875 [DEBUG][       Thread-250280][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 09:41:01,888 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 09:41:01,888 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 09:41:01,889 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 09:41:01,890 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 09:41:01,892 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 09:41:01,893 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 09:41:01,893 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 09:41:01,893 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 09:41:01,893 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.319732 -999.00   +7.90  17.60     56   +0.00 1 1 1 1 1   887    0 8.38 15.62 ----- 17.6 17.6 47.0 27.2 11.9 -28.1 10.7 -28.8 9.3 -27.9 10.5 -26.3
2025-06-13 09:41:01,893 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 09:41:01,893 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 09:41:01,893 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.319732
2025-06-13 09:41:01,893 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 09:41:01,893 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 09:41:01,893 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 09:41:01,893 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 09:41:01,893 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 09:41:01,893 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T09:40:29', tmtdew=9.27, humidity=52.0, cloud=0.0, wind=21.62, temperature=8.04, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T07:40:24.845', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 09:41:01,894 [DEBUG][       Thread-250280][   transport.py][1871] : EOF in transport thread
2025-06-13 09:41:01,966 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 09:41:01,975 [DEBUG][       Thread-250283][   transport.py][1871] : starting thread (client mode): 0x863c8250
2025-06-13 09:41:01,975 [DEBUG][       Thread-250283][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 09:41:01,990 [DEBUG][       Thread-250283][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 09:41:01,990 [ INFO][       Thread-250283][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 09:41:02,002 [DEBUG][       Thread-250283][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 09:41:02,002 [DEBUG][       Thread-250283][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 09:41:02,002 [DEBUG][       Thread-250283][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 09:41:02,002 [DEBUG][       Thread-250283][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:41:02,002 [DEBUG][       Thread-250283][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:41:02,002 [DEBUG][       Thread-250283][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:41:02,002 [DEBUG][       Thread-250283][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:41:02,002 [DEBUG][       Thread-250283][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 09:41:02,002 [DEBUG][       Thread-250283][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 09:41:02,002 [DEBUG][       Thread-250283][   transport.py][1871] : client lang: <none>
2025-06-13 09:41:02,002 [DEBUG][       Thread-250283][   transport.py][1871] : server lang: <none>
2025-06-13 09:41:02,002 [DEBUG][       Thread-250283][   transport.py][1871] : kex follows: False
2025-06-13 09:41:02,002 [DEBUG][       Thread-250283][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 09:41:02,002 [DEBUG][       Thread-250283][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 09:41:02,002 [DEBUG][       Thread-250283][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 09:41:02,002 [DEBUG][       Thread-250283][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 09:41:02,002 [DEBUG][       Thread-250283][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 09:41:02,002 [DEBUG][       Thread-250283][   transport.py][1871] : Compression: none
2025-06-13 09:41:02,002 [DEBUG][       Thread-250283][   transport.py][1871] : === End of kex handshake ===
2025-06-13 09:41:02,057 [DEBUG][       Thread-250283][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 09:41:02,057 [DEBUG][       Thread-250283][   transport.py][1871] : Switch to new keys ...
2025-06-13 09:41:02,057 [DEBUG][       Thread-250283][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 09:41:02,057 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 09:41:02,057 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 09:41:02,115 [DEBUG][       Thread-250283][   transport.py][1871] : userauth is OK
2025-06-13 09:41:02,115 [DEBUG][       Thread-250283][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 09:41:02,115 [DEBUG][       Thread-250283][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 09:41:02,115 [DEBUG][       Thread-250283][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 09:41:02,115 [DEBUG][       Thread-250283][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 09:41:02,129 [ INFO][       Thread-250283][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 09:41:02,129 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 09:41:02,129 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 09:41:03,190 [DEBUG][       Thread-250283][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 09:41:03,190 [DEBUG][       Thread-250283][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 09:41:03,239 [DEBUG][       Thread-250283][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 09:41:03,240 [DEBUG][       Thread-250283][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 09:41:03,251 [DEBUG][       Thread-250283][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 09:41:03,267 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 09:41:03,267 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 09:41:03,275 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 09:41:03,283 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 09:41:03,283 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 09:41:03,284 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 09:41:03,291 [DEBUG][       Thread-250283][   transport.py][1871] : EOF in transport thread
2025-06-13 09:41:03,923 [DEBUG][Thread-250285 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:41:09,740 [DEBUG][Thread-250286 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:41:13,294 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 09:41:13,294 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 09:41:13,294 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 09:41:13,295 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 09:41:13,764 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 9, 41, 1), 9.3, 51.9, 0.0, 22.3, 8.03, 0, 0, 0, 2, 0, 0),)
2025-06-13 09:41:13,764 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 09:41:01
2025-06-13 09:41:13,847 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 09:41:13,852 [DEBUG][       Thread-250287][   transport.py][1871] : starting thread (client mode): 0x84207e50
2025-06-13 09:41:13,852 [DEBUG][       Thread-250287][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 09:41:13,872 [DEBUG][       Thread-250287][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 09:41:13,872 [ INFO][       Thread-250287][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 09:41:13,875 [DEBUG][       Thread-250287][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 09:41:13,875 [DEBUG][       Thread-250287][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 09:41:13,875 [DEBUG][       Thread-250287][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 09:41:13,875 [DEBUG][       Thread-250287][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:41:13,875 [DEBUG][       Thread-250287][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:41:13,875 [DEBUG][       Thread-250287][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:41:13,875 [DEBUG][       Thread-250287][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:41:13,875 [DEBUG][       Thread-250287][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 09:41:13,875 [DEBUG][       Thread-250287][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 09:41:13,875 [DEBUG][       Thread-250287][   transport.py][1871] : client lang: <none>
2025-06-13 09:41:13,875 [DEBUG][       Thread-250287][   transport.py][1871] : server lang: <none>
2025-06-13 09:41:13,876 [DEBUG][       Thread-250287][   transport.py][1871] : kex follows: False
2025-06-13 09:41:13,876 [DEBUG][       Thread-250287][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 09:41:13,876 [DEBUG][       Thread-250287][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 09:41:13,876 [DEBUG][       Thread-250287][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 09:41:13,876 [DEBUG][       Thread-250287][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 09:41:13,876 [DEBUG][       Thread-250287][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 09:41:13,876 [DEBUG][       Thread-250287][   transport.py][1871] : Compression: none
2025-06-13 09:41:13,876 [DEBUG][       Thread-250287][   transport.py][1871] : === End of kex handshake ===
2025-06-13 09:41:13,892 [DEBUG][       Thread-250287][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 09:41:13,892 [DEBUG][       Thread-250287][   transport.py][1871] : Switch to new keys ...
2025-06-13 09:41:13,893 [DEBUG][       Thread-250287][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 09:41:13,893 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 09:41:13,893 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 09:41:13,893 [DEBUG][       Thread-250287][   transport.py][1871] : userauth is OK
2025-06-13 09:41:13,917 [ INFO][       Thread-250287][   transport.py][1871] : Authentication (password) successful!
2025-06-13 09:41:13,917 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 09:41:14,574 [DEBUG][       Thread-250287][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 09:41:14,574 [DEBUG][       Thread-250287][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 09:41:14,617 [DEBUG][       Thread-250287][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 09:41:14,617 [DEBUG][       Thread-250287][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 09:41:14,620 [DEBUG][       Thread-250287][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 09:41:14,632 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 09:41:14,633 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 09:41:14,634 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 09:41:14,636 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 09:41:14,643 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 09:41:14,645 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 09:41:14,645 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 09:41:14,646 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 09:41:14,646 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.320080 -999.00   +7.90  19.43     56   -0.10 1 1 1 1 1   887    0 8.25 15.15 ----- 19.4 19.4 45.0 25.4 11.9 -28.0 10.7 -28.7 9.3 -28.1 10.6 -26.3
2025-06-13 09:41:14,646 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 09:41:14,646 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 09:41:14,646 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.320080
2025-06-13 09:41:14,646 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 09:41:14,647 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 09:41:14,647 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 09:41:14,647 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 09:41:14,647 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 09:41:14,647 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T09:41:01', tmtdew=9.3, humidity=51.9, cloud=0.0, wind=22.3, temperature=8.03, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T07:40:54.912', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 09:41:14,648 [DEBUG][       Thread-250287][   transport.py][1871] : EOF in transport thread
2025-06-13 09:41:14,733 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 09:41:14,743 [DEBUG][       Thread-250290][   transport.py][1871] : starting thread (client mode): 0x863699c0
2025-06-13 09:41:14,743 [DEBUG][       Thread-250290][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 09:41:14,758 [DEBUG][       Thread-250290][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 09:41:14,758 [ INFO][       Thread-250290][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 09:41:14,765 [DEBUG][       Thread-250290][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 09:41:14,766 [DEBUG][       Thread-250290][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 09:41:14,766 [DEBUG][       Thread-250290][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 09:41:14,766 [DEBUG][       Thread-250290][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:41:14,766 [DEBUG][       Thread-250290][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:41:14,766 [DEBUG][       Thread-250290][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:41:14,766 [DEBUG][       Thread-250290][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:41:14,766 [DEBUG][       Thread-250290][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 09:41:14,766 [DEBUG][       Thread-250290][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 09:41:14,766 [DEBUG][       Thread-250290][   transport.py][1871] : client lang: <none>
2025-06-13 09:41:14,766 [DEBUG][       Thread-250290][   transport.py][1871] : server lang: <none>
2025-06-13 09:41:14,766 [DEBUG][       Thread-250290][   transport.py][1871] : kex follows: False
2025-06-13 09:41:14,766 [DEBUG][       Thread-250290][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 09:41:14,766 [DEBUG][       Thread-250290][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 09:41:14,766 [DEBUG][       Thread-250290][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 09:41:14,766 [DEBUG][       Thread-250290][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 09:41:14,766 [DEBUG][       Thread-250290][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 09:41:14,766 [DEBUG][       Thread-250290][   transport.py][1871] : Compression: none
2025-06-13 09:41:14,766 [DEBUG][       Thread-250290][   transport.py][1871] : === End of kex handshake ===
2025-06-13 09:41:14,825 [DEBUG][       Thread-250290][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 09:41:14,825 [DEBUG][       Thread-250290][   transport.py][1871] : Switch to new keys ...
2025-06-13 09:41:14,826 [DEBUG][       Thread-250290][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 09:41:14,826 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 09:41:14,827 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 09:41:14,883 [DEBUG][       Thread-250290][   transport.py][1871] : userauth is OK
2025-06-13 09:41:14,883 [DEBUG][       Thread-250290][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 09:41:14,883 [DEBUG][       Thread-250290][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 09:41:14,883 [DEBUG][       Thread-250290][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 09:41:14,883 [DEBUG][       Thread-250290][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 09:41:14,903 [ INFO][       Thread-250290][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 09:41:14,903 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 09:41:14,904 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 09:41:15,877 [DEBUG][       Thread-250290][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 09:41:15,878 [DEBUG][       Thread-250290][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 09:41:15,928 [DEBUG][       Thread-250290][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 09:41:15,928 [DEBUG][       Thread-250290][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 09:41:15,937 [DEBUG][       Thread-250290][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 09:41:15,945 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 09:41:15,945 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 09:41:15,959 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 09:41:15,968 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 09:41:15,968 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 09:41:15,969 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 09:41:15,977 [DEBUG][       Thread-250290][   transport.py][1871] : EOF in transport thread
2025-06-13 09:41:18,760 [DEBUG][Thread-250292 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:41:19,847 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:41:19,848 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:41:21,680 [DEBUG][Thread-250293 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:41:22,759 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:41:22,760 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:41:25,979 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 09:41:25,980 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 09:41:25,980 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 09:41:25,982 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 09:41:26,437 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 9, 41, 1), 9.3, 51.9, 0.0, 22.3, 8.03, 0, 0, 0, 2, 0, 0),)
2025-06-13 09:41:26,437 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 09:41:01
2025-06-13 09:41:26,518 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 09:41:26,523 [DEBUG][       Thread-250294][   transport.py][1871] : starting thread (client mode): 0x842074c0
2025-06-13 09:41:26,523 [DEBUG][       Thread-250294][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 09:41:26,544 [DEBUG][       Thread-250294][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 09:41:26,544 [ INFO][       Thread-250294][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 09:41:26,547 [DEBUG][       Thread-250294][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 09:41:26,547 [DEBUG][       Thread-250294][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 09:41:26,547 [DEBUG][       Thread-250294][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 09:41:26,547 [DEBUG][       Thread-250294][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:41:26,547 [DEBUG][       Thread-250294][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:41:26,547 [DEBUG][       Thread-250294][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:41:26,547 [DEBUG][       Thread-250294][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:41:26,547 [DEBUG][       Thread-250294][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 09:41:26,547 [DEBUG][       Thread-250294][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 09:41:26,547 [DEBUG][       Thread-250294][   transport.py][1871] : client lang: <none>
2025-06-13 09:41:26,547 [DEBUG][       Thread-250294][   transport.py][1871] : server lang: <none>
2025-06-13 09:41:26,547 [DEBUG][       Thread-250294][   transport.py][1871] : kex follows: False
2025-06-13 09:41:26,547 [DEBUG][       Thread-250294][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 09:41:26,547 [DEBUG][       Thread-250294][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 09:41:26,547 [DEBUG][       Thread-250294][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 09:41:26,548 [DEBUG][       Thread-250294][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 09:41:26,548 [DEBUG][       Thread-250294][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 09:41:26,548 [DEBUG][       Thread-250294][   transport.py][1871] : Compression: none
2025-06-13 09:41:26,548 [DEBUG][       Thread-250294][   transport.py][1871] : === End of kex handshake ===
2025-06-13 09:41:26,565 [DEBUG][       Thread-250294][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 09:41:26,565 [DEBUG][       Thread-250294][   transport.py][1871] : Switch to new keys ...
2025-06-13 09:41:26,566 [DEBUG][       Thread-250294][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 09:41:26,566 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 09:41:26,566 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 09:41:26,567 [DEBUG][       Thread-250294][   transport.py][1871] : userauth is OK
2025-06-13 09:41:26,592 [ INFO][       Thread-250294][   transport.py][1871] : Authentication (password) successful!
2025-06-13 09:41:26,593 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 09:41:27,254 [DEBUG][       Thread-250294][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 09:41:27,254 [DEBUG][       Thread-250294][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 09:41:27,297 [DEBUG][       Thread-250294][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 09:41:27,297 [DEBUG][       Thread-250294][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 09:41:27,300 [DEBUG][       Thread-250294][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 09:41:27,314 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 09:41:27,314 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 09:41:27,316 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 09:41:27,317 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 09:41:27,322 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 09:41:27,323 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 09:41:27,323 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 09:41:27,324 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 09:41:27,324 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.320080 -999.00   +7.90  19.43     56   -0.10 1 1 1 1 1   887    0 8.25 15.15 ----- 19.4 19.4 45.0 25.4 11.9 -28.0 10.7 -28.7 9.3 -28.1 10.6 -26.3
2025-06-13 09:41:27,324 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 09:41:27,324 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 09:41:27,324 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.320080
2025-06-13 09:41:27,325 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 09:41:27,325 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 09:41:27,325 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 09:41:27,325 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 09:41:27,325 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 09:41:27,325 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T09:41:01', tmtdew=9.3, humidity=51.9, cloud=0.0, wind=22.3, temperature=8.03, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T07:40:54.912', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 09:41:27,326 [DEBUG][       Thread-250294][   transport.py][1871] : EOF in transport thread
2025-06-13 09:41:27,409 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 09:41:27,418 [DEBUG][       Thread-250297][   transport.py][1871] : starting thread (client mode): 0x863c82b0
2025-06-13 09:41:27,418 [DEBUG][       Thread-250297][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 09:41:27,434 [DEBUG][       Thread-250297][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 09:41:27,434 [ INFO][       Thread-250297][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 09:41:27,441 [DEBUG][       Thread-250297][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 09:41:27,441 [DEBUG][       Thread-250297][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 09:41:27,441 [DEBUG][       Thread-250297][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 09:41:27,441 [DEBUG][       Thread-250297][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:41:27,441 [DEBUG][       Thread-250297][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:41:27,442 [DEBUG][       Thread-250297][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:41:27,442 [DEBUG][       Thread-250297][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:41:27,442 [DEBUG][       Thread-250297][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 09:41:27,442 [DEBUG][       Thread-250297][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 09:41:27,442 [DEBUG][       Thread-250297][   transport.py][1871] : client lang: <none>
2025-06-13 09:41:27,442 [DEBUG][       Thread-250297][   transport.py][1871] : server lang: <none>
2025-06-13 09:41:27,442 [DEBUG][       Thread-250297][   transport.py][1871] : kex follows: False
2025-06-13 09:41:27,442 [DEBUG][       Thread-250297][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 09:41:27,442 [DEBUG][       Thread-250297][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 09:41:27,442 [DEBUG][       Thread-250297][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 09:41:27,442 [DEBUG][       Thread-250297][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 09:41:27,442 [DEBUG][       Thread-250297][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 09:41:27,442 [DEBUG][       Thread-250297][   transport.py][1871] : Compression: none
2025-06-13 09:41:27,442 [DEBUG][       Thread-250297][   transport.py][1871] : === End of kex handshake ===
2025-06-13 09:41:27,499 [DEBUG][       Thread-250297][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 09:41:27,499 [DEBUG][       Thread-250297][   transport.py][1871] : Switch to new keys ...
2025-06-13 09:41:27,499 [DEBUG][       Thread-250297][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 09:41:27,500 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 09:41:27,500 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 09:41:27,556 [DEBUG][       Thread-250297][   transport.py][1871] : userauth is OK
2025-06-13 09:41:27,556 [DEBUG][       Thread-250297][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 09:41:27,556 [DEBUG][       Thread-250297][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 09:41:27,556 [DEBUG][       Thread-250297][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 09:41:27,557 [DEBUG][       Thread-250297][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 09:41:27,576 [ INFO][       Thread-250297][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 09:41:27,576 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 09:41:27,577 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 09:41:27,792 [DEBUG][Thread-250299 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:41:28,586 [DEBUG][       Thread-250297][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 09:41:28,586 [DEBUG][       Thread-250297][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 09:41:28,635 [DEBUG][       Thread-250297][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 09:41:28,636 [DEBUG][       Thread-250297][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 09:41:28,644 [DEBUG][       Thread-250297][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 09:41:28,653 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 09:41:28,653 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 09:41:28,661 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 09:41:28,670 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 09:41:28,670 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 09:41:28,671 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 09:41:28,679 [DEBUG][       Thread-250297][   transport.py][1871] : EOF in transport thread
2025-06-13 09:41:36,810 [DEBUG][Thread-250300 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:41:38,680 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 09:41:38,680 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 09:41:38,680 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 09:41:38,683 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 09:41:39,137 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 9, 41, 33), 9.28, 51.98, 0.0, 19.52, 8.01, 0, 0, 0, 2, 0, 0),)
2025-06-13 09:41:39,137 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 09:41:33
2025-06-13 09:41:39,218 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 09:41:39,224 [DEBUG][       Thread-250301][   transport.py][1871] : starting thread (client mode): 0x84207d00
2025-06-13 09:41:39,224 [DEBUG][       Thread-250301][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 09:41:39,243 [DEBUG][       Thread-250301][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 09:41:39,244 [ INFO][       Thread-250301][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 09:41:39,247 [DEBUG][       Thread-250301][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 09:41:39,247 [DEBUG][       Thread-250301][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 09:41:39,247 [DEBUG][       Thread-250301][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 09:41:39,247 [DEBUG][       Thread-250301][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:41:39,247 [DEBUG][       Thread-250301][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:41:39,247 [DEBUG][       Thread-250301][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:41:39,247 [DEBUG][       Thread-250301][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:41:39,247 [DEBUG][       Thread-250301][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 09:41:39,247 [DEBUG][       Thread-250301][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 09:41:39,247 [DEBUG][       Thread-250301][   transport.py][1871] : client lang: <none>
2025-06-13 09:41:39,247 [DEBUG][       Thread-250301][   transport.py][1871] : server lang: <none>
2025-06-13 09:41:39,247 [DEBUG][       Thread-250301][   transport.py][1871] : kex follows: False
2025-06-13 09:41:39,247 [DEBUG][       Thread-250301][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 09:41:39,247 [DEBUG][       Thread-250301][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 09:41:39,247 [DEBUG][       Thread-250301][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 09:41:39,247 [DEBUG][       Thread-250301][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 09:41:39,247 [DEBUG][       Thread-250301][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 09:41:39,247 [DEBUG][       Thread-250301][   transport.py][1871] : Compression: none
2025-06-13 09:41:39,247 [DEBUG][       Thread-250301][   transport.py][1871] : === End of kex handshake ===
2025-06-13 09:41:39,263 [DEBUG][       Thread-250301][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 09:41:39,264 [DEBUG][       Thread-250301][   transport.py][1871] : Switch to new keys ...
2025-06-13 09:41:39,264 [DEBUG][       Thread-250301][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 09:41:39,264 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 09:41:39,265 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 09:41:39,266 [DEBUG][       Thread-250301][   transport.py][1871] : userauth is OK
2025-06-13 09:41:39,290 [ INFO][       Thread-250301][   transport.py][1871] : Authentication (password) successful!
2025-06-13 09:41:39,290 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 09:41:39,912 [DEBUG][       Thread-250301][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 09:41:39,912 [DEBUG][       Thread-250301][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 09:41:39,953 [DEBUG][       Thread-250301][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 09:41:39,953 [DEBUG][       Thread-250301][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 09:41:39,956 [DEBUG][       Thread-250301][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 09:41:39,968 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 09:41:39,969 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 09:41:39,970 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 09:41:39,972 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 09:41:39,977 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 09:41:39,979 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 09:41:39,979 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 09:41:39,979 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 09:41:39,980 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.320080 -999.00   +7.90  19.43     56   -0.10 1 1 1 1 1   887    0 8.25 15.15 ----- 19.4 19.4 45.0 25.4 11.9 -28.0 10.7 -28.7 9.3 -28.1 10.6 -26.3
2025-06-13 09:41:39,980 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 09:41:39,980 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 09:41:39,980 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.320080
2025-06-13 09:41:39,980 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 09:41:39,981 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 09:41:39,981 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 09:41:39,981 [DEBUG][       Thread-250301][   transport.py][1871] : EOF in transport thread
2025-06-13 09:41:39,981 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 09:41:39,982 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 09:41:39,982 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T09:41:33', tmtdew=9.28, humidity=51.98, cloud=0.0, wind=19.52, temperature=8.01, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T07:40:54.912', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 09:41:40,065 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 09:41:40,083 [DEBUG][       Thread-250304][   transport.py][1871] : starting thread (client mode): 0x863ef010
2025-06-13 09:41:40,084 [DEBUG][       Thread-250304][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 09:41:40,105 [DEBUG][       Thread-250304][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 09:41:40,105 [ INFO][       Thread-250304][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 09:41:40,125 [DEBUG][       Thread-250304][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 09:41:40,125 [DEBUG][       Thread-250304][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 09:41:40,125 [DEBUG][       Thread-250304][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 09:41:40,125 [DEBUG][       Thread-250304][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:41:40,125 [DEBUG][       Thread-250304][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:41:40,125 [DEBUG][       Thread-250304][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:41:40,125 [DEBUG][       Thread-250304][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:41:40,125 [DEBUG][       Thread-250304][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 09:41:40,125 [DEBUG][       Thread-250304][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 09:41:40,125 [DEBUG][       Thread-250304][   transport.py][1871] : client lang: <none>
2025-06-13 09:41:40,125 [DEBUG][       Thread-250304][   transport.py][1871] : server lang: <none>
2025-06-13 09:41:40,126 [DEBUG][       Thread-250304][   transport.py][1871] : kex follows: False
2025-06-13 09:41:40,126 [DEBUG][       Thread-250304][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 09:41:40,126 [DEBUG][       Thread-250304][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 09:41:40,126 [DEBUG][       Thread-250304][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 09:41:40,126 [DEBUG][       Thread-250304][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 09:41:40,126 [DEBUG][       Thread-250304][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 09:41:40,126 [DEBUG][       Thread-250304][   transport.py][1871] : Compression: none
2025-06-13 09:41:40,126 [DEBUG][       Thread-250304][   transport.py][1871] : === End of kex handshake ===
2025-06-13 09:41:40,196 [DEBUG][       Thread-250304][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 09:41:40,196 [DEBUG][       Thread-250304][   transport.py][1871] : Switch to new keys ...
2025-06-13 09:41:40,197 [DEBUG][       Thread-250304][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 09:41:40,197 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 09:41:40,198 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 09:41:40,265 [DEBUG][       Thread-250304][   transport.py][1871] : userauth is OK
2025-06-13 09:41:40,265 [DEBUG][       Thread-250304][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 09:41:40,266 [DEBUG][       Thread-250304][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 09:41:40,266 [DEBUG][       Thread-250304][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 09:41:40,266 [DEBUG][       Thread-250304][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 09:41:40,295 [ INFO][       Thread-250304][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 09:41:40,295 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 09:41:40,295 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 09:41:41,273 [DEBUG][       Thread-250304][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 09:41:41,274 [DEBUG][       Thread-250304][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 09:41:41,323 [DEBUG][       Thread-250304][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 09:41:41,324 [DEBUG][       Thread-250304][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 09:41:41,333 [DEBUG][       Thread-250304][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 09:41:41,341 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 09:41:41,342 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 09:41:41,354 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 09:41:41,374 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 09:41:41,374 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 09:41:41,374 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 09:41:41,382 [DEBUG][       Thread-250304][   transport.py][1871] : EOF in transport thread
2025-06-13 09:41:45,831 [DEBUG][Thread-250306 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:41:51,377 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 09:41:51,377 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 09:41:51,377 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 09:41:51,378 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 09:41:51,840 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 9, 41, 33), 9.28, 51.98, 0.0, 19.52, 8.01, 0, 0, 0, 2, 0, 0),)
2025-06-13 09:41:51,840 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 09:41:33
2025-06-13 09:41:51,923 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 09:41:51,929 [DEBUG][       Thread-250307][   transport.py][1871] : starting thread (client mode): 0x867b56f0
2025-06-13 09:41:51,929 [DEBUG][       Thread-250307][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 09:41:51,949 [DEBUG][       Thread-250307][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 09:41:51,950 [ INFO][       Thread-250307][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 09:41:51,953 [DEBUG][       Thread-250307][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 09:41:51,953 [DEBUG][       Thread-250307][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 09:41:51,953 [DEBUG][       Thread-250307][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 09:41:51,953 [DEBUG][       Thread-250307][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:41:51,953 [DEBUG][       Thread-250307][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:41:51,953 [DEBUG][       Thread-250307][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:41:51,953 [DEBUG][       Thread-250307][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:41:51,953 [DEBUG][       Thread-250307][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 09:41:51,953 [DEBUG][       Thread-250307][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 09:41:51,953 [DEBUG][       Thread-250307][   transport.py][1871] : client lang: <none>
2025-06-13 09:41:51,953 [DEBUG][       Thread-250307][   transport.py][1871] : server lang: <none>
2025-06-13 09:41:51,953 [DEBUG][       Thread-250307][   transport.py][1871] : kex follows: False
2025-06-13 09:41:51,953 [DEBUG][       Thread-250307][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 09:41:51,953 [DEBUG][       Thread-250307][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 09:41:51,953 [DEBUG][       Thread-250307][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 09:41:51,953 [DEBUG][       Thread-250307][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 09:41:51,953 [DEBUG][       Thread-250307][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 09:41:51,953 [DEBUG][       Thread-250307][   transport.py][1871] : Compression: none
2025-06-13 09:41:51,953 [DEBUG][       Thread-250307][   transport.py][1871] : === End of kex handshake ===
2025-06-13 09:41:51,970 [DEBUG][       Thread-250307][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 09:41:51,970 [DEBUG][       Thread-250307][   transport.py][1871] : Switch to new keys ...
2025-06-13 09:41:51,970 [DEBUG][       Thread-250307][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 09:41:51,970 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 09:41:51,971 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 09:41:51,971 [DEBUG][       Thread-250307][   transport.py][1871] : userauth is OK
2025-06-13 09:41:51,984 [ INFO][       Thread-250307][   transport.py][1871] : Authentication (password) successful!
2025-06-13 09:41:51,984 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 09:41:52,572 [DEBUG][       Thread-250307][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 09:41:52,572 [DEBUG][       Thread-250307][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 09:41:52,616 [DEBUG][       Thread-250307][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 09:41:52,617 [DEBUG][       Thread-250307][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 09:41:52,619 [DEBUG][       Thread-250307][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 09:41:52,633 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 09:41:52,633 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 09:41:52,634 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 09:41:52,635 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 09:41:52,639 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 09:41:52,640 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 09:41:52,640 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 09:41:52,640 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 09:41:52,640 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.320427 -999.00   +7.90  21.27     56   -0.10 1 1 1 1 1   887    0 8.33 14.74 ----- 21.3 21.3 40.4 27.2 11.9 -28.0 10.6 -28.6 9.3 -28.4 10.6 -26.3
2025-06-13 09:41:52,640 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 09:41:52,640 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 09:41:52,640 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.320427
2025-06-13 09:41:52,640 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 09:41:52,640 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 09:41:52,640 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 09:41:52,640 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 09:41:52,640 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 09:41:52,640 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T09:41:33', tmtdew=9.28, humidity=51.98, cloud=0.0, wind=19.52, temperature=8.01, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T07:41:24.893', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 09:41:52,641 [DEBUG][       Thread-250307][   transport.py][1871] : EOF in transport thread
2025-06-13 09:41:52,714 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 09:41:52,727 [DEBUG][       Thread-250310][   transport.py][1871] : starting thread (client mode): 0x863ed6c0
2025-06-13 09:41:52,727 [DEBUG][       Thread-250310][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 09:41:52,747 [DEBUG][       Thread-250310][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 09:41:52,747 [ INFO][       Thread-250310][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 09:41:52,758 [DEBUG][       Thread-250310][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 09:41:52,758 [DEBUG][       Thread-250310][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 09:41:52,758 [DEBUG][       Thread-250310][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 09:41:52,758 [DEBUG][       Thread-250310][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:41:52,758 [DEBUG][       Thread-250310][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:41:52,758 [DEBUG][       Thread-250310][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:41:52,759 [DEBUG][       Thread-250310][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:41:52,759 [DEBUG][       Thread-250310][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 09:41:52,759 [DEBUG][       Thread-250310][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 09:41:52,759 [DEBUG][       Thread-250310][   transport.py][1871] : client lang: <none>
2025-06-13 09:41:52,759 [DEBUG][       Thread-250310][   transport.py][1871] : server lang: <none>
2025-06-13 09:41:52,759 [DEBUG][       Thread-250310][   transport.py][1871] : kex follows: False
2025-06-13 09:41:52,759 [DEBUG][       Thread-250310][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 09:41:52,759 [DEBUG][       Thread-250310][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 09:41:52,759 [DEBUG][       Thread-250310][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 09:41:52,759 [DEBUG][       Thread-250310][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 09:41:52,759 [DEBUG][       Thread-250310][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 09:41:52,759 [DEBUG][       Thread-250310][   transport.py][1871] : Compression: none
2025-06-13 09:41:52,759 [DEBUG][       Thread-250310][   transport.py][1871] : === End of kex handshake ===
2025-06-13 09:41:52,816 [DEBUG][       Thread-250310][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 09:41:52,817 [DEBUG][       Thread-250310][   transport.py][1871] : Switch to new keys ...
2025-06-13 09:41:52,817 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 09:41:52,818 [DEBUG][       Thread-250310][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 09:41:52,819 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 09:41:52,875 [DEBUG][       Thread-250310][   transport.py][1871] : userauth is OK
2025-06-13 09:41:52,875 [DEBUG][       Thread-250310][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 09:41:52,875 [DEBUG][       Thread-250310][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 09:41:52,875 [DEBUG][       Thread-250310][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 09:41:52,875 [DEBUG][       Thread-250310][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 09:41:52,894 [ INFO][       Thread-250310][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 09:41:52,894 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 09:41:52,895 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 09:41:53,948 [DEBUG][       Thread-250310][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 09:41:53,948 [DEBUG][       Thread-250310][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 09:41:54,002 [DEBUG][       Thread-250310][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 09:41:54,002 [DEBUG][       Thread-250310][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 09:41:54,011 [DEBUG][       Thread-250310][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 09:41:54,025 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 09:41:54,026 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 09:41:54,034 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 09:41:54,043 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 09:41:54,043 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 09:41:54,043 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 09:41:54,051 [DEBUG][       Thread-250310][   transport.py][1871] : EOF in transport thread
2025-06-13 09:41:54,860 [DEBUG][Thread-250312 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:42:03,879 [DEBUG][Thread-250313 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:42:03,973 [DEBUG][Thread-250314 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:42:04,054 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 09:42:04,054 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 09:42:04,054 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 09:42:04,056 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 09:42:04,524 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 9, 41, 33), 9.28, 51.98, 0.0, 19.52, 8.01, 0, 0, 0, 2, 0, 0),)
2025-06-13 09:42:04,524 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 09:41:33
2025-06-13 09:42:04,606 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 09:42:04,610 [DEBUG][       Thread-250315][   transport.py][1871] : starting thread (client mode): 0x8636a920
2025-06-13 09:42:04,610 [DEBUG][       Thread-250315][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 09:42:04,630 [DEBUG][       Thread-250315][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 09:42:04,631 [ INFO][       Thread-250315][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 09:42:04,634 [DEBUG][       Thread-250315][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 09:42:04,634 [DEBUG][       Thread-250315][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 09:42:04,635 [DEBUG][       Thread-250315][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 09:42:04,635 [DEBUG][       Thread-250315][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:42:04,635 [DEBUG][       Thread-250315][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:42:04,635 [DEBUG][       Thread-250315][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:42:04,635 [DEBUG][       Thread-250315][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:42:04,635 [DEBUG][       Thread-250315][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 09:42:04,635 [DEBUG][       Thread-250315][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 09:42:04,635 [DEBUG][       Thread-250315][   transport.py][1871] : client lang: <none>
2025-06-13 09:42:04,635 [DEBUG][       Thread-250315][   transport.py][1871] : server lang: <none>
2025-06-13 09:42:04,635 [DEBUG][       Thread-250315][   transport.py][1871] : kex follows: False
2025-06-13 09:42:04,635 [DEBUG][       Thread-250315][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 09:42:04,635 [DEBUG][       Thread-250315][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 09:42:04,635 [DEBUG][       Thread-250315][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 09:42:04,635 [DEBUG][       Thread-250315][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 09:42:04,635 [DEBUG][       Thread-250315][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 09:42:04,635 [DEBUG][       Thread-250315][   transport.py][1871] : Compression: none
2025-06-13 09:42:04,635 [DEBUG][       Thread-250315][   transport.py][1871] : === End of kex handshake ===
2025-06-13 09:42:04,651 [DEBUG][       Thread-250315][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 09:42:04,652 [DEBUG][       Thread-250315][   transport.py][1871] : Switch to new keys ...
2025-06-13 09:42:04,652 [DEBUG][       Thread-250315][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 09:42:04,653 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 09:42:04,653 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 09:42:04,654 [DEBUG][       Thread-250315][   transport.py][1871] : userauth is OK
2025-06-13 09:42:04,667 [ INFO][       Thread-250315][   transport.py][1871] : Authentication (password) successful!
2025-06-13 09:42:04,667 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 09:42:05,301 [DEBUG][       Thread-250315][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 09:42:05,301 [DEBUG][       Thread-250315][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 09:42:05,345 [DEBUG][       Thread-250315][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 09:42:05,345 [DEBUG][       Thread-250315][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 09:42:05,348 [DEBUG][       Thread-250315][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 09:42:05,358 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 09:42:05,358 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 09:42:05,359 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 09:42:05,360 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 09:42:05,363 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 09:42:05,364 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 09:42:05,364 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 09:42:05,364 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 09:42:05,364 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.320427 -999.00   +7.90  21.27     56   -0.10 1 1 1 1 1   887    0 8.33 14.74 ----- 21.3 21.3 40.4 27.2 11.9 -28.0 10.6 -28.6 9.3 -28.4 10.6 -26.3
2025-06-13 09:42:05,364 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 09:42:05,364 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 09:42:05,364 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.320427
2025-06-13 09:42:05,364 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 09:42:05,365 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 09:42:05,365 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 09:42:05,365 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 09:42:05,365 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 09:42:05,365 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T09:41:33', tmtdew=9.28, humidity=51.98, cloud=0.0, wind=19.52, temperature=8.01, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T07:41:24.893', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 09:42:05,365 [DEBUG][       Thread-250315][   transport.py][1871] : EOF in transport thread
2025-06-13 09:42:05,438 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 09:42:05,448 [DEBUG][       Thread-250318][   transport.py][1871] : starting thread (client mode): 0x863ed6c0
2025-06-13 09:42:05,448 [DEBUG][       Thread-250318][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 09:42:05,462 [DEBUG][       Thread-250318][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 09:42:05,462 [ INFO][       Thread-250318][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 09:42:05,470 [DEBUG][       Thread-250318][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 09:42:05,470 [DEBUG][       Thread-250318][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 09:42:05,470 [DEBUG][       Thread-250318][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 09:42:05,470 [DEBUG][       Thread-250318][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:42:05,470 [DEBUG][       Thread-250318][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:42:05,470 [DEBUG][       Thread-250318][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:42:05,470 [DEBUG][       Thread-250318][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:42:05,470 [DEBUG][       Thread-250318][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 09:42:05,470 [DEBUG][       Thread-250318][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 09:42:05,470 [DEBUG][       Thread-250318][   transport.py][1871] : client lang: <none>
2025-06-13 09:42:05,470 [DEBUG][       Thread-250318][   transport.py][1871] : server lang: <none>
2025-06-13 09:42:05,470 [DEBUG][       Thread-250318][   transport.py][1871] : kex follows: False
2025-06-13 09:42:05,470 [DEBUG][       Thread-250318][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 09:42:05,470 [DEBUG][       Thread-250318][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 09:42:05,470 [DEBUG][       Thread-250318][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 09:42:05,470 [DEBUG][       Thread-250318][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 09:42:05,470 [DEBUG][       Thread-250318][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 09:42:05,470 [DEBUG][       Thread-250318][   transport.py][1871] : Compression: none
2025-06-13 09:42:05,470 [DEBUG][       Thread-250318][   transport.py][1871] : === End of kex handshake ===
2025-06-13 09:42:05,529 [DEBUG][       Thread-250318][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 09:42:05,529 [DEBUG][       Thread-250318][   transport.py][1871] : Switch to new keys ...
2025-06-13 09:42:05,529 [DEBUG][       Thread-250318][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 09:42:05,529 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 09:42:05,529 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 09:42:05,592 [DEBUG][       Thread-250318][   transport.py][1871] : userauth is OK
2025-06-13 09:42:05,592 [DEBUG][       Thread-250318][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 09:42:05,592 [DEBUG][       Thread-250318][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 09:42:05,592 [DEBUG][       Thread-250318][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 09:42:05,592 [DEBUG][       Thread-250318][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 09:42:05,607 [ INFO][       Thread-250318][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 09:42:05,607 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 09:42:05,608 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 09:42:06,648 [DEBUG][       Thread-250318][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 09:42:06,648 [DEBUG][       Thread-250318][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 09:42:06,699 [DEBUG][       Thread-250318][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 09:42:06,699 [DEBUG][       Thread-250318][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 09:42:06,708 [DEBUG][       Thread-250318][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 09:42:06,715 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 09:42:06,715 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 09:42:06,723 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 09:42:06,731 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 09:42:06,731 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 09:42:06,731 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 09:42:06,743 [DEBUG][       Thread-250318][   transport.py][1871] : EOF in transport thread
2025-06-13 09:42:12,897 [DEBUG][Thread-250320 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:42:16,740 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 09:42:16,740 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 09:42:16,740 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 09:42:16,741 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 09:42:17,186 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 9, 42, 4), 9.28, 51.96, 0.0, 19.99, 8.0, 0, 0, 0, 2, 0, 0),)
2025-06-13 09:42:17,186 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 09:42:04
2025-06-13 09:42:17,268 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 09:42:17,274 [DEBUG][       Thread-250321][   transport.py][1871] : starting thread (client mode): 0x867fe3b0
2025-06-13 09:42:17,274 [DEBUG][       Thread-250321][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 09:42:17,294 [DEBUG][       Thread-250321][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 09:42:17,294 [ INFO][       Thread-250321][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 09:42:17,298 [DEBUG][       Thread-250321][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 09:42:17,298 [DEBUG][       Thread-250321][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 09:42:17,298 [DEBUG][       Thread-250321][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 09:42:17,298 [DEBUG][       Thread-250321][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:42:17,298 [DEBUG][       Thread-250321][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:42:17,298 [DEBUG][       Thread-250321][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:42:17,298 [DEBUG][       Thread-250321][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:42:17,298 [DEBUG][       Thread-250321][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 09:42:17,298 [DEBUG][       Thread-250321][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 09:42:17,298 [DEBUG][       Thread-250321][   transport.py][1871] : client lang: <none>
2025-06-13 09:42:17,298 [DEBUG][       Thread-250321][   transport.py][1871] : server lang: <none>
2025-06-13 09:42:17,298 [DEBUG][       Thread-250321][   transport.py][1871] : kex follows: False
2025-06-13 09:42:17,298 [DEBUG][       Thread-250321][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 09:42:17,298 [DEBUG][       Thread-250321][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 09:42:17,298 [DEBUG][       Thread-250321][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 09:42:17,298 [DEBUG][       Thread-250321][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 09:42:17,298 [DEBUG][       Thread-250321][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 09:42:17,298 [DEBUG][       Thread-250321][   transport.py][1871] : Compression: none
2025-06-13 09:42:17,298 [DEBUG][       Thread-250321][   transport.py][1871] : === End of kex handshake ===
2025-06-13 09:42:17,309 [DEBUG][       Thread-250321][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 09:42:17,310 [DEBUG][       Thread-250321][   transport.py][1871] : Switch to new keys ...
2025-06-13 09:42:17,310 [DEBUG][       Thread-250321][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 09:42:17,311 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 09:42:17,311 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 09:42:17,312 [DEBUG][       Thread-250321][   transport.py][1871] : userauth is OK
2025-06-13 09:42:17,336 [ INFO][       Thread-250321][   transport.py][1871] : Authentication (password) successful!
2025-06-13 09:42:17,337 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 09:42:17,885 [DEBUG][       Thread-250321][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 09:42:17,885 [DEBUG][       Thread-250321][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 09:42:17,929 [DEBUG][       Thread-250321][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 09:42:17,929 [DEBUG][       Thread-250321][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 09:42:17,931 [DEBUG][       Thread-250321][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 09:42:17,945 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 09:42:17,946 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 09:42:17,951 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 09:42:17,952 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 09:42:17,956 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 09:42:17,957 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 09:42:17,957 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 09:42:17,958 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 09:42:17,958 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.320774 -999.00   +7.90  20.92     56   +0.00 1 1 1 1 1   887    0 8.35 14.62 ----- 20.9 20.9 43.4 25.4 11.9 -27.6 10.7 -28.8 9.3 -28.1 10.6 -26.3
2025-06-13 09:42:17,958 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 09:42:17,958 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 09:42:17,958 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.320774
2025-06-13 09:42:17,958 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 09:42:17,959 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 09:42:17,959 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 09:42:17,959 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 09:42:17,959 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 09:42:17,959 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T09:42:04', tmtdew=9.28, humidity=51.96, cloud=0.0, wind=19.99, temperature=8.0, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T07:41:54.874', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 09:42:17,959 [DEBUG][       Thread-250321][   transport.py][1871] : EOF in transport thread
2025-06-13 09:42:18,044 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 09:42:18,055 [DEBUG][       Thread-250324][   transport.py][1871] : starting thread (client mode): 0x863cb820
2025-06-13 09:42:18,055 [DEBUG][       Thread-250324][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 09:42:18,070 [DEBUG][       Thread-250324][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 09:42:18,070 [ INFO][       Thread-250324][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 09:42:18,077 [DEBUG][       Thread-250324][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 09:42:18,077 [DEBUG][       Thread-250324][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 09:42:18,077 [DEBUG][       Thread-250324][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 09:42:18,077 [DEBUG][       Thread-250324][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:42:18,077 [DEBUG][       Thread-250324][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:42:18,078 [DEBUG][       Thread-250324][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:42:18,078 [DEBUG][       Thread-250324][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:42:18,078 [DEBUG][       Thread-250324][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 09:42:18,078 [DEBUG][       Thread-250324][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 09:42:18,078 [DEBUG][       Thread-250324][   transport.py][1871] : client lang: <none>
2025-06-13 09:42:18,078 [DEBUG][       Thread-250324][   transport.py][1871] : server lang: <none>
2025-06-13 09:42:18,078 [DEBUG][       Thread-250324][   transport.py][1871] : kex follows: False
2025-06-13 09:42:18,078 [DEBUG][       Thread-250324][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 09:42:18,078 [DEBUG][       Thread-250324][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 09:42:18,078 [DEBUG][       Thread-250324][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 09:42:18,078 [DEBUG][       Thread-250324][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 09:42:18,078 [DEBUG][       Thread-250324][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 09:42:18,078 [DEBUG][       Thread-250324][   transport.py][1871] : Compression: none
2025-06-13 09:42:18,078 [DEBUG][       Thread-250324][   transport.py][1871] : === End of kex handshake ===
2025-06-13 09:42:18,134 [DEBUG][       Thread-250324][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 09:42:18,135 [DEBUG][       Thread-250324][   transport.py][1871] : Switch to new keys ...
2025-06-13 09:42:18,135 [DEBUG][       Thread-250324][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 09:42:18,135 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 09:42:18,136 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 09:42:18,192 [DEBUG][       Thread-250324][   transport.py][1871] : userauth is OK
2025-06-13 09:42:18,192 [DEBUG][       Thread-250324][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 09:42:18,192 [DEBUG][       Thread-250324][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 09:42:18,192 [DEBUG][       Thread-250324][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 09:42:18,192 [DEBUG][       Thread-250324][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 09:42:18,210 [ INFO][       Thread-250324][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 09:42:18,211 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 09:42:18,211 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 09:42:19,199 [DEBUG][       Thread-250324][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 09:42:19,199 [DEBUG][       Thread-250324][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 09:42:19,248 [DEBUG][       Thread-250324][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 09:42:19,248 [DEBUG][       Thread-250324][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 09:42:19,257 [DEBUG][       Thread-250324][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 09:42:19,270 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 09:42:19,270 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 09:42:19,282 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 09:42:19,296 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 09:42:19,296 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 09:42:19,296 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 09:42:19,311 [DEBUG][       Thread-250324][   transport.py][1871] : EOF in transport thread
2025-06-13 09:42:19,985 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:42:19,986 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:42:21,917 [DEBUG][Thread-250326 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:42:22,836 [DEBUG][Thread-250327 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:42:23,900 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:42:23,901 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:42:29,306 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 09:42:29,307 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 09:42:29,307 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 09:42:29,307 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 09:42:29,770 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 9, 42, 4), 9.28, 51.96, 0.0, 19.99, 8.0, 0, 0, 0, 2, 0, 0),)
2025-06-13 09:42:29,770 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 09:42:04
2025-06-13 09:42:29,856 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 09:42:29,860 [DEBUG][       Thread-250328][   transport.py][1871] : starting thread (client mode): 0x84207d30
2025-06-13 09:42:29,860 [DEBUG][       Thread-250328][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 09:42:29,883 [DEBUG][       Thread-250328][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 09:42:29,883 [ INFO][       Thread-250328][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 09:42:29,887 [DEBUG][       Thread-250328][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 09:42:29,887 [DEBUG][       Thread-250328][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 09:42:29,887 [DEBUG][       Thread-250328][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 09:42:29,887 [DEBUG][       Thread-250328][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:42:29,887 [DEBUG][       Thread-250328][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:42:29,887 [DEBUG][       Thread-250328][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:42:29,887 [DEBUG][       Thread-250328][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:42:29,887 [DEBUG][       Thread-250328][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 09:42:29,887 [DEBUG][       Thread-250328][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 09:42:29,887 [DEBUG][       Thread-250328][   transport.py][1871] : client lang: <none>
2025-06-13 09:42:29,887 [DEBUG][       Thread-250328][   transport.py][1871] : server lang: <none>
2025-06-13 09:42:29,887 [DEBUG][       Thread-250328][   transport.py][1871] : kex follows: False
2025-06-13 09:42:29,887 [DEBUG][       Thread-250328][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 09:42:29,887 [DEBUG][       Thread-250328][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 09:42:29,887 [DEBUG][       Thread-250328][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 09:42:29,887 [DEBUG][       Thread-250328][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 09:42:29,887 [DEBUG][       Thread-250328][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 09:42:29,887 [DEBUG][       Thread-250328][   transport.py][1871] : Compression: none
2025-06-13 09:42:29,887 [DEBUG][       Thread-250328][   transport.py][1871] : === End of kex handshake ===
2025-06-13 09:42:29,904 [DEBUG][       Thread-250328][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 09:42:29,904 [DEBUG][       Thread-250328][   transport.py][1871] : Switch to new keys ...
2025-06-13 09:42:29,904 [DEBUG][       Thread-250328][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 09:42:29,904 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 09:42:29,904 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 09:42:29,905 [DEBUG][       Thread-250328][   transport.py][1871] : userauth is OK
2025-06-13 09:42:29,929 [ INFO][       Thread-250328][   transport.py][1871] : Authentication (password) successful!
2025-06-13 09:42:29,929 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 09:42:30,583 [DEBUG][       Thread-250328][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 09:42:30,583 [DEBUG][       Thread-250328][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 09:42:30,624 [DEBUG][       Thread-250328][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 09:42:30,624 [DEBUG][       Thread-250328][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 09:42:30,627 [DEBUG][       Thread-250328][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 09:42:30,639 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 09:42:30,640 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 09:42:30,641 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 09:42:30,642 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 09:42:30,644 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 09:42:30,645 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 09:42:30,645 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 09:42:30,645 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 09:42:30,645 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.320774 -999.00   +7.90  20.92     56   +0.00 1 1 1 1 1   887    0 8.35 14.62 ----- 20.9 20.9 43.4 25.4 11.9 -27.6 10.7 -28.8 9.3 -28.1 10.6 -26.3
2025-06-13 09:42:30,645 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 09:42:30,645 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 09:42:30,645 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.320774
2025-06-13 09:42:30,646 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 09:42:30,646 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 09:42:30,646 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 09:42:30,646 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 09:42:30,646 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 09:42:30,646 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T09:42:04', tmtdew=9.28, humidity=51.96, cloud=0.0, wind=19.99, temperature=8.0, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T07:41:54.874', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 09:42:30,647 [DEBUG][       Thread-250328][   transport.py][1871] : EOF in transport thread
2025-06-13 09:42:30,719 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 09:42:30,728 [DEBUG][       Thread-250331][   transport.py][1871] : starting thread (client mode): 0x863eec80
2025-06-13 09:42:30,728 [DEBUG][       Thread-250331][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 09:42:30,745 [DEBUG][       Thread-250331][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 09:42:30,745 [ INFO][       Thread-250331][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 09:42:30,752 [DEBUG][       Thread-250331][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 09:42:30,752 [DEBUG][       Thread-250331][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 09:42:30,752 [DEBUG][       Thread-250331][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 09:42:30,752 [DEBUG][       Thread-250331][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:42:30,752 [DEBUG][       Thread-250331][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:42:30,752 [DEBUG][       Thread-250331][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:42:30,752 [DEBUG][       Thread-250331][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:42:30,752 [DEBUG][       Thread-250331][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 09:42:30,752 [DEBUG][       Thread-250331][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 09:42:30,752 [DEBUG][       Thread-250331][   transport.py][1871] : client lang: <none>
2025-06-13 09:42:30,753 [DEBUG][       Thread-250331][   transport.py][1871] : server lang: <none>
2025-06-13 09:42:30,753 [DEBUG][       Thread-250331][   transport.py][1871] : kex follows: False
2025-06-13 09:42:30,753 [DEBUG][       Thread-250331][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 09:42:30,753 [DEBUG][       Thread-250331][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 09:42:30,753 [DEBUG][       Thread-250331][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 09:42:30,753 [DEBUG][       Thread-250331][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 09:42:30,753 [DEBUG][       Thread-250331][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 09:42:30,753 [DEBUG][       Thread-250331][   transport.py][1871] : Compression: none
2025-06-13 09:42:30,753 [DEBUG][       Thread-250331][   transport.py][1871] : === End of kex handshake ===
2025-06-13 09:42:30,810 [DEBUG][       Thread-250331][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 09:42:30,810 [DEBUG][       Thread-250331][   transport.py][1871] : Switch to new keys ...
2025-06-13 09:42:30,811 [DEBUG][       Thread-250331][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 09:42:30,811 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 09:42:30,812 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 09:42:30,868 [DEBUG][       Thread-250331][   transport.py][1871] : userauth is OK
2025-06-13 09:42:30,868 [DEBUG][       Thread-250331][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 09:42:30,868 [DEBUG][       Thread-250331][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 09:42:30,868 [DEBUG][       Thread-250331][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 09:42:30,868 [DEBUG][       Thread-250331][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 09:42:30,887 [ INFO][       Thread-250331][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 09:42:30,887 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 09:42:30,888 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 09:42:30,951 [DEBUG][Thread-250333 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:42:31,894 [DEBUG][       Thread-250331][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 09:42:31,894 [DEBUG][       Thread-250331][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 09:42:31,951 [DEBUG][       Thread-250331][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 09:42:31,951 [DEBUG][       Thread-250331][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 09:42:31,960 [DEBUG][       Thread-250331][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 09:42:31,969 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 09:42:31,969 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 09:42:31,977 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 09:42:31,986 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 09:42:31,986 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 09:42:31,987 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 09:42:31,995 [DEBUG][       Thread-250331][   transport.py][1871] : EOF in transport thread
2025-06-13 09:42:39,969 [DEBUG][Thread-250334 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:42:41,997 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 09:42:41,997 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 09:42:41,997 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 09:42:42,000 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 09:42:42,452 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 9, 42, 36), 9.32, 51.94, 0.0, 19.52, 7.98, 0, 0, 0, 2, 0, 0),)
2025-06-13 09:42:42,452 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 09:42:36
2025-06-13 09:42:42,533 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 09:42:42,542 [DEBUG][       Thread-250335][   transport.py][1871] : starting thread (client mode): 0x84204d60
2025-06-13 09:42:42,542 [DEBUG][       Thread-250335][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 09:42:42,562 [DEBUG][       Thread-250335][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 09:42:42,562 [ INFO][       Thread-250335][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 09:42:42,565 [DEBUG][       Thread-250335][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 09:42:42,566 [DEBUG][       Thread-250335][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 09:42:42,566 [DEBUG][       Thread-250335][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 09:42:42,566 [DEBUG][       Thread-250335][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:42:42,566 [DEBUG][       Thread-250335][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:42:42,566 [DEBUG][       Thread-250335][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:42:42,566 [DEBUG][       Thread-250335][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:42:42,566 [DEBUG][       Thread-250335][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 09:42:42,566 [DEBUG][       Thread-250335][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 09:42:42,566 [DEBUG][       Thread-250335][   transport.py][1871] : client lang: <none>
2025-06-13 09:42:42,566 [DEBUG][       Thread-250335][   transport.py][1871] : server lang: <none>
2025-06-13 09:42:42,566 [DEBUG][       Thread-250335][   transport.py][1871] : kex follows: False
2025-06-13 09:42:42,566 [DEBUG][       Thread-250335][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 09:42:42,566 [DEBUG][       Thread-250335][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 09:42:42,566 [DEBUG][       Thread-250335][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 09:42:42,566 [DEBUG][       Thread-250335][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 09:42:42,566 [DEBUG][       Thread-250335][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 09:42:42,566 [DEBUG][       Thread-250335][   transport.py][1871] : Compression: none
2025-06-13 09:42:42,566 [DEBUG][       Thread-250335][   transport.py][1871] : === End of kex handshake ===
2025-06-13 09:42:42,582 [DEBUG][       Thread-250335][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 09:42:42,582 [DEBUG][       Thread-250335][   transport.py][1871] : Switch to new keys ...
2025-06-13 09:42:42,583 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 09:42:42,583 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 09:42:42,584 [DEBUG][       Thread-250335][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 09:42:42,585 [DEBUG][       Thread-250335][   transport.py][1871] : userauth is OK
2025-06-13 09:42:42,609 [ INFO][       Thread-250335][   transport.py][1871] : Authentication (password) successful!
2025-06-13 09:42:42,610 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 09:42:43,233 [DEBUG][       Thread-250335][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 09:42:43,234 [DEBUG][       Thread-250335][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 09:42:43,277 [DEBUG][       Thread-250335][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 09:42:43,277 [DEBUG][       Thread-250335][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 09:42:43,280 [DEBUG][       Thread-250335][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 09:42:43,291 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 09:42:43,291 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 09:42:43,293 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 09:42:43,295 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 09:42:43,300 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 09:42:43,302 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 09:42:43,302 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 09:42:43,303 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 09:42:43,303 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.320774 -999.00   +7.90  20.92     56   +0.00 1 1 1 1 1   887    0 8.35 14.62 ----- 20.9 20.9 43.4 25.4 11.9 -27.6 10.7 -28.8 9.3 -28.1 10.6 -26.3
2025-06-13 09:42:43,303 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 09:42:43,303 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 09:42:43,303 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.320774
2025-06-13 09:42:43,303 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 09:42:43,304 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 09:42:43,304 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 09:42:43,304 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 09:42:43,304 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 09:42:43,305 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T09:42:36', tmtdew=9.32, humidity=51.94, cloud=0.0, wind=19.52, temperature=7.98, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T07:41:54.874', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 09:42:43,305 [DEBUG][       Thread-250335][   transport.py][1871] : EOF in transport thread
2025-06-13 09:42:43,390 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 09:42:43,404 [DEBUG][       Thread-250338][   transport.py][1871] : starting thread (client mode): 0x863c95d0
2025-06-13 09:42:43,404 [DEBUG][       Thread-250338][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 09:42:43,418 [DEBUG][       Thread-250338][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 09:42:43,418 [ INFO][       Thread-250338][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 09:42:43,426 [DEBUG][       Thread-250338][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 09:42:43,426 [DEBUG][       Thread-250338][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 09:42:43,426 [DEBUG][       Thread-250338][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 09:42:43,426 [DEBUG][       Thread-250338][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:42:43,426 [DEBUG][       Thread-250338][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:42:43,426 [DEBUG][       Thread-250338][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:42:43,426 [DEBUG][       Thread-250338][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:42:43,426 [DEBUG][       Thread-250338][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 09:42:43,426 [DEBUG][       Thread-250338][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 09:42:43,426 [DEBUG][       Thread-250338][   transport.py][1871] : client lang: <none>
2025-06-13 09:42:43,427 [DEBUG][       Thread-250338][   transport.py][1871] : server lang: <none>
2025-06-13 09:42:43,427 [DEBUG][       Thread-250338][   transport.py][1871] : kex follows: False
2025-06-13 09:42:43,427 [DEBUG][       Thread-250338][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 09:42:43,427 [DEBUG][       Thread-250338][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 09:42:43,427 [DEBUG][       Thread-250338][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 09:42:43,427 [DEBUG][       Thread-250338][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 09:42:43,427 [DEBUG][       Thread-250338][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 09:42:43,427 [DEBUG][       Thread-250338][   transport.py][1871] : Compression: none
2025-06-13 09:42:43,427 [DEBUG][       Thread-250338][   transport.py][1871] : === End of kex handshake ===
2025-06-13 09:42:43,487 [DEBUG][       Thread-250338][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 09:42:43,487 [DEBUG][       Thread-250338][   transport.py][1871] : Switch to new keys ...
2025-06-13 09:42:43,488 [DEBUG][       Thread-250338][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 09:42:43,488 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 09:42:43,489 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 09:42:43,546 [DEBUG][       Thread-250338][   transport.py][1871] : userauth is OK
2025-06-13 09:42:43,547 [DEBUG][       Thread-250338][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 09:42:43,547 [DEBUG][       Thread-250338][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 09:42:43,547 [DEBUG][       Thread-250338][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 09:42:43,547 [DEBUG][       Thread-250338][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 09:42:43,564 [ INFO][       Thread-250338][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 09:42:43,565 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 09:42:43,565 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 09:42:44,558 [DEBUG][       Thread-250338][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 09:42:44,559 [DEBUG][       Thread-250338][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 09:42:44,607 [DEBUG][       Thread-250338][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 09:42:44,607 [DEBUG][       Thread-250338][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 09:42:44,616 [DEBUG][       Thread-250338][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 09:42:44,625 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 09:42:44,625 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 09:42:44,633 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 09:42:44,642 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 09:42:44,642 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 09:42:44,643 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 09:42:44,651 [DEBUG][       Thread-250338][   transport.py][1871] : EOF in transport thread
2025-06-13 09:42:48,990 [DEBUG][Thread-250340 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:42:54,652 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 09:42:54,652 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 09:42:54,652 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 09:42:54,655 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 09:42:55,118 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 9, 42, 36), 9.32, 51.94, 0.0, 19.52, 7.98, 0, 0, 0, 2, 0, 0),)
2025-06-13 09:42:55,118 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 09:42:36
2025-06-13 09:42:55,200 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 09:42:55,203 [DEBUG][       Thread-250341][   transport.py][1871] : starting thread (client mode): 0x84206950
2025-06-13 09:42:55,203 [DEBUG][       Thread-250341][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 09:42:55,224 [DEBUG][       Thread-250341][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 09:42:55,224 [ INFO][       Thread-250341][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 09:42:55,227 [DEBUG][       Thread-250341][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 09:42:55,227 [DEBUG][       Thread-250341][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 09:42:55,227 [DEBUG][       Thread-250341][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 09:42:55,227 [DEBUG][       Thread-250341][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:42:55,228 [DEBUG][       Thread-250341][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:42:55,228 [DEBUG][       Thread-250341][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:42:55,228 [DEBUG][       Thread-250341][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:42:55,228 [DEBUG][       Thread-250341][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 09:42:55,228 [DEBUG][       Thread-250341][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 09:42:55,228 [DEBUG][       Thread-250341][   transport.py][1871] : client lang: <none>
2025-06-13 09:42:55,228 [DEBUG][       Thread-250341][   transport.py][1871] : server lang: <none>
2025-06-13 09:42:55,228 [DEBUG][       Thread-250341][   transport.py][1871] : kex follows: False
2025-06-13 09:42:55,228 [DEBUG][       Thread-250341][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 09:42:55,228 [DEBUG][       Thread-250341][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 09:42:55,228 [DEBUG][       Thread-250341][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 09:42:55,228 [DEBUG][       Thread-250341][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 09:42:55,228 [DEBUG][       Thread-250341][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 09:42:55,228 [DEBUG][       Thread-250341][   transport.py][1871] : Compression: none
2025-06-13 09:42:55,228 [DEBUG][       Thread-250341][   transport.py][1871] : === End of kex handshake ===
2025-06-13 09:42:55,243 [DEBUG][       Thread-250341][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 09:42:55,244 [DEBUG][       Thread-250341][   transport.py][1871] : Switch to new keys ...
2025-06-13 09:42:55,244 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 09:42:55,245 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 09:42:55,245 [DEBUG][       Thread-250341][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 09:42:55,246 [DEBUG][       Thread-250341][   transport.py][1871] : userauth is OK
2025-06-13 09:42:55,270 [ INFO][       Thread-250341][   transport.py][1871] : Authentication (password) successful!
2025-06-13 09:42:55,270 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 09:42:55,883 [DEBUG][       Thread-250341][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 09:42:55,883 [DEBUG][       Thread-250341][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 09:42:55,929 [DEBUG][       Thread-250341][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 09:42:55,929 [DEBUG][       Thread-250341][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 09:42:55,931 [DEBUG][       Thread-250341][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 09:42:55,942 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 09:42:55,943 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 09:42:55,944 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 09:42:55,945 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 09:42:55,949 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 09:42:55,951 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 09:42:55,951 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 09:42:55,952 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 09:42:55,952 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.321121 -999.00   +7.90  18.83     56   -0.10 1 1 1 1 1   887    0 8.36 14.56 ----- 18.8 18.8 43.9 23.6 11.9 -27.8 10.7 -28.7 9.4 -28.2 10.7 -26.4
2025-06-13 09:42:55,952 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 09:42:55,952 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 09:42:55,952 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.321121
2025-06-13 09:42:55,952 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 09:42:55,953 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 09:42:55,953 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 09:42:55,953 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 09:42:55,953 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 09:42:55,953 [DEBUG][       Thread-250341][   transport.py][1871] : EOF in transport thread
2025-06-13 09:42:55,953 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T09:42:36', tmtdew=9.32, humidity=51.94, cloud=0.0, wind=19.52, temperature=7.98, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T07:42:24.854', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 09:42:56,037 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 09:42:56,047 [DEBUG][       Thread-250344][   transport.py][1871] : starting thread (client mode): 0x863a5030
2025-06-13 09:42:56,048 [DEBUG][       Thread-250344][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 09:42:56,063 [DEBUG][       Thread-250344][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 09:42:56,063 [ INFO][       Thread-250344][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 09:42:56,070 [DEBUG][       Thread-250344][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 09:42:56,070 [DEBUG][       Thread-250344][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 09:42:56,070 [DEBUG][       Thread-250344][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 09:42:56,070 [DEBUG][       Thread-250344][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:42:56,070 [DEBUG][       Thread-250344][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:42:56,070 [DEBUG][       Thread-250344][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:42:56,070 [DEBUG][       Thread-250344][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:42:56,070 [DEBUG][       Thread-250344][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 09:42:56,070 [DEBUG][       Thread-250344][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 09:42:56,070 [DEBUG][       Thread-250344][   transport.py][1871] : client lang: <none>
2025-06-13 09:42:56,071 [DEBUG][       Thread-250344][   transport.py][1871] : server lang: <none>
2025-06-13 09:42:56,071 [DEBUG][       Thread-250344][   transport.py][1871] : kex follows: False
2025-06-13 09:42:56,071 [DEBUG][       Thread-250344][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 09:42:56,071 [DEBUG][       Thread-250344][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 09:42:56,071 [DEBUG][       Thread-250344][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 09:42:56,071 [DEBUG][       Thread-250344][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 09:42:56,071 [DEBUG][       Thread-250344][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 09:42:56,071 [DEBUG][       Thread-250344][   transport.py][1871] : Compression: none
2025-06-13 09:42:56,071 [DEBUG][       Thread-250344][   transport.py][1871] : === End of kex handshake ===
2025-06-13 09:42:56,126 [DEBUG][       Thread-250344][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 09:42:56,126 [DEBUG][       Thread-250344][   transport.py][1871] : Switch to new keys ...
2025-06-13 09:42:56,127 [DEBUG][       Thread-250344][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 09:42:56,127 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 09:42:56,127 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 09:42:56,182 [DEBUG][       Thread-250344][   transport.py][1871] : userauth is OK
2025-06-13 09:42:56,182 [DEBUG][       Thread-250344][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 09:42:56,183 [DEBUG][       Thread-250344][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 09:42:56,183 [DEBUG][       Thread-250344][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 09:42:56,183 [DEBUG][       Thread-250344][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 09:42:56,201 [ INFO][       Thread-250344][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 09:42:56,201 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 09:42:56,201 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 09:42:57,225 [DEBUG][       Thread-250344][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 09:42:57,225 [DEBUG][       Thread-250344][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 09:42:57,279 [DEBUG][       Thread-250344][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 09:42:57,280 [DEBUG][       Thread-250344][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 09:42:57,288 [DEBUG][       Thread-250344][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 09:42:57,297 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 09:42:57,297 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 09:42:57,305 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 09:42:57,314 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 09:42:57,314 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 09:42:57,314 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 09:42:57,322 [DEBUG][       Thread-250344][   transport.py][1871] : EOF in transport thread
2025-06-13 09:42:58,021 [DEBUG][Thread-250346 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:43:04,023 [DEBUG][Thread-250347 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:43:07,038 [DEBUG][Thread-250348 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:43:07,324 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 09:43:07,324 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 09:43:07,324 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 09:43:07,324 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 09:43:07,790 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 9, 42, 36), 9.32, 51.94, 0.0, 19.52, 7.98, 0, 0, 0, 2, 0, 0),)
2025-06-13 09:43:07,791 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 09:42:36
2025-06-13 09:43:07,877 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 09:43:07,883 [DEBUG][       Thread-250349][   transport.py][1871] : starting thread (client mode): 0x8636b700
2025-06-13 09:43:07,883 [DEBUG][       Thread-250349][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 09:43:07,904 [DEBUG][       Thread-250349][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 09:43:07,904 [ INFO][       Thread-250349][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 09:43:07,905 [DEBUG][       Thread-250349][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 09:43:07,905 [DEBUG][       Thread-250349][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 09:43:07,905 [DEBUG][       Thread-250349][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 09:43:07,906 [DEBUG][       Thread-250349][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:43:07,906 [DEBUG][       Thread-250349][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:43:07,906 [DEBUG][       Thread-250349][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:43:07,906 [DEBUG][       Thread-250349][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:43:07,906 [DEBUG][       Thread-250349][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 09:43:07,906 [DEBUG][       Thread-250349][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 09:43:07,906 [DEBUG][       Thread-250349][   transport.py][1871] : client lang: <none>
2025-06-13 09:43:07,906 [DEBUG][       Thread-250349][   transport.py][1871] : server lang: <none>
2025-06-13 09:43:07,906 [DEBUG][       Thread-250349][   transport.py][1871] : kex follows: False
2025-06-13 09:43:07,906 [DEBUG][       Thread-250349][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 09:43:07,906 [DEBUG][       Thread-250349][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 09:43:07,906 [DEBUG][       Thread-250349][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 09:43:07,906 [DEBUG][       Thread-250349][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 09:43:07,906 [DEBUG][       Thread-250349][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 09:43:07,906 [DEBUG][       Thread-250349][   transport.py][1871] : Compression: none
2025-06-13 09:43:07,906 [DEBUG][       Thread-250349][   transport.py][1871] : === End of kex handshake ===
2025-06-13 09:43:07,922 [DEBUG][       Thread-250349][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 09:43:07,922 [DEBUG][       Thread-250349][   transport.py][1871] : Switch to new keys ...
2025-06-13 09:43:07,923 [DEBUG][       Thread-250349][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 09:43:07,923 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 09:43:07,923 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 09:43:07,923 [DEBUG][       Thread-250349][   transport.py][1871] : userauth is OK
2025-06-13 09:43:07,936 [ INFO][       Thread-250349][   transport.py][1871] : Authentication (password) successful!
2025-06-13 09:43:07,936 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 09:43:08,595 [DEBUG][       Thread-250349][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 09:43:08,595 [DEBUG][       Thread-250349][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 09:43:08,636 [DEBUG][       Thread-250349][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 09:43:08,636 [DEBUG][       Thread-250349][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 09:43:08,638 [DEBUG][       Thread-250349][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 09:43:08,651 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 09:43:08,651 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 09:43:08,652 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 09:43:08,653 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 09:43:08,656 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 09:43:08,657 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 09:43:08,657 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 09:43:08,657 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 09:43:08,657 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.321121 -999.00   +7.90  18.83     56   -0.10 1 1 1 1 1   887    0 8.36 14.56 ----- 18.8 18.8 43.9 23.6 11.9 -27.8 10.7 -28.7 9.4 -28.2 10.7 -26.4
2025-06-13 09:43:08,657 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 09:43:08,657 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 09:43:08,657 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.321121
2025-06-13 09:43:08,657 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 09:43:08,657 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 09:43:08,657 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 09:43:08,657 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 09:43:08,657 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 09:43:08,657 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T09:42:36', tmtdew=9.32, humidity=51.94, cloud=0.0, wind=19.52, temperature=7.98, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T07:42:24.854', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 09:43:08,658 [DEBUG][       Thread-250349][   transport.py][1871] : EOF in transport thread
2025-06-13 09:43:08,732 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 09:43:08,743 [DEBUG][       Thread-250352][   transport.py][1871] : starting thread (client mode): 0x84205510
2025-06-13 09:43:08,743 [DEBUG][       Thread-250352][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 09:43:08,759 [DEBUG][       Thread-250352][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 09:43:08,759 [ INFO][       Thread-250352][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 09:43:08,766 [DEBUG][       Thread-250352][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 09:43:08,766 [DEBUG][       Thread-250352][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 09:43:08,766 [DEBUG][       Thread-250352][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 09:43:08,766 [DEBUG][       Thread-250352][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:43:08,766 [DEBUG][       Thread-250352][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:43:08,766 [DEBUG][       Thread-250352][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:43:08,766 [DEBUG][       Thread-250352][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:43:08,766 [DEBUG][       Thread-250352][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 09:43:08,766 [DEBUG][       Thread-250352][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 09:43:08,766 [DEBUG][       Thread-250352][   transport.py][1871] : client lang: <none>
2025-06-13 09:43:08,766 [DEBUG][       Thread-250352][   transport.py][1871] : server lang: <none>
2025-06-13 09:43:08,766 [DEBUG][       Thread-250352][   transport.py][1871] : kex follows: False
2025-06-13 09:43:08,766 [DEBUG][       Thread-250352][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 09:43:08,766 [DEBUG][       Thread-250352][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 09:43:08,766 [DEBUG][       Thread-250352][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 09:43:08,766 [DEBUG][       Thread-250352][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 09:43:08,766 [DEBUG][       Thread-250352][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 09:43:08,766 [DEBUG][       Thread-250352][   transport.py][1871] : Compression: none
2025-06-13 09:43:08,766 [DEBUG][       Thread-250352][   transport.py][1871] : === End of kex handshake ===
2025-06-13 09:43:08,832 [DEBUG][       Thread-250352][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 09:43:08,832 [DEBUG][       Thread-250352][   transport.py][1871] : Switch to new keys ...
2025-06-13 09:43:08,832 [DEBUG][       Thread-250352][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 09:43:08,833 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 09:43:08,833 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 09:43:08,891 [DEBUG][       Thread-250352][   transport.py][1871] : userauth is OK
2025-06-13 09:43:08,891 [DEBUG][       Thread-250352][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 09:43:08,891 [DEBUG][       Thread-250352][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 09:43:08,891 [DEBUG][       Thread-250352][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 09:43:08,891 [DEBUG][       Thread-250352][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 09:43:08,905 [ INFO][       Thread-250352][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 09:43:08,905 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 09:43:08,905 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 09:43:09,895 [DEBUG][       Thread-250352][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 09:43:09,895 [DEBUG][       Thread-250352][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 09:43:09,944 [DEBUG][       Thread-250352][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 09:43:09,944 [DEBUG][       Thread-250352][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 09:43:09,952 [DEBUG][       Thread-250352][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 09:43:09,960 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 09:43:09,960 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 09:43:09,968 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 09:43:09,977 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 09:43:09,977 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 09:43:09,977 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 09:43:09,985 [DEBUG][       Thread-250352][   transport.py][1871] : EOF in transport thread
2025-06-13 09:43:16,055 [DEBUG][Thread-250354 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:43:19,983 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 09:43:19,984 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 09:43:19,984 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 09:43:19,986 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 09:43:20,125 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:43:20,125 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:43:20,447 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 9, 43, 8), 9.32, 51.96, 0.0, 17.66, 8.0, 0, 0, 0, 2, 0, 0),)
2025-06-13 09:43:20,448 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 09:43:08
2025-06-13 09:43:20,529 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 09:43:20,533 [DEBUG][       Thread-250355][   transport.py][1871] : starting thread (client mode): 0x842069e0
2025-06-13 09:43:20,533 [DEBUG][       Thread-250355][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 09:43:20,549 [DEBUG][       Thread-250355][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 09:43:20,549 [ INFO][       Thread-250355][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 09:43:20,552 [DEBUG][       Thread-250355][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 09:43:20,552 [DEBUG][       Thread-250355][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 09:43:20,552 [DEBUG][       Thread-250355][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 09:43:20,552 [DEBUG][       Thread-250355][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:43:20,552 [DEBUG][       Thread-250355][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:43:20,552 [DEBUG][       Thread-250355][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:43:20,552 [DEBUG][       Thread-250355][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:43:20,552 [DEBUG][       Thread-250355][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 09:43:20,552 [DEBUG][       Thread-250355][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 09:43:20,552 [DEBUG][       Thread-250355][   transport.py][1871] : client lang: <none>
2025-06-13 09:43:20,552 [DEBUG][       Thread-250355][   transport.py][1871] : server lang: <none>
2025-06-13 09:43:20,552 [DEBUG][       Thread-250355][   transport.py][1871] : kex follows: False
2025-06-13 09:43:20,552 [DEBUG][       Thread-250355][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 09:43:20,552 [DEBUG][       Thread-250355][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 09:43:20,552 [DEBUG][       Thread-250355][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 09:43:20,552 [DEBUG][       Thread-250355][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 09:43:20,552 [DEBUG][       Thread-250355][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 09:43:20,552 [DEBUG][       Thread-250355][   transport.py][1871] : Compression: none
2025-06-13 09:43:20,552 [DEBUG][       Thread-250355][   transport.py][1871] : === End of kex handshake ===
2025-06-13 09:43:20,569 [DEBUG][       Thread-250355][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 09:43:20,569 [DEBUG][       Thread-250355][   transport.py][1871] : Switch to new keys ...
2025-06-13 09:43:20,570 [DEBUG][       Thread-250355][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 09:43:20,570 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 09:43:20,570 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 09:43:20,571 [DEBUG][       Thread-250355][   transport.py][1871] : userauth is OK
2025-06-13 09:43:20,584 [ INFO][       Thread-250355][   transport.py][1871] : Authentication (password) successful!
2025-06-13 09:43:20,585 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 09:43:21,140 [DEBUG][       Thread-250355][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 09:43:21,140 [DEBUG][       Thread-250355][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 09:43:21,181 [DEBUG][       Thread-250355][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 09:43:21,181 [DEBUG][       Thread-250355][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 09:43:21,184 [DEBUG][       Thread-250355][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 09:43:21,190 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 09:43:21,190 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 09:43:21,191 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 09:43:21,193 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 09:43:21,197 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 09:43:21,199 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 09:43:21,199 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 09:43:21,199 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 09:43:21,200 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.321121 -999.00   +7.90  18.83     56   -0.10 1 1 1 1 1   887    0 8.36 14.56 ----- 18.8 18.8 43.9 23.6 11.9 -27.8 10.7 -28.7 9.4 -28.2 10.7 -26.4
2025-06-13 09:43:21,200 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 09:43:21,200 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 09:43:21,200 [DEBUG][       Thread-250355][   transport.py][1871] : EOF in transport thread
2025-06-13 09:43:21,200 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.321121
2025-06-13 09:43:21,201 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 09:43:21,202 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 09:43:21,202 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 09:43:21,202 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 09:43:21,202 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 09:43:21,202 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T09:43:08', tmtdew=9.32, humidity=51.96, cloud=0.0, wind=17.66, temperature=8.0, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T07:42:24.854', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 09:43:21,276 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 09:43:21,287 [DEBUG][       Thread-250358][   transport.py][1871] : starting thread (client mode): 0x863c8880
2025-06-13 09:43:21,287 [DEBUG][       Thread-250358][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 09:43:21,303 [DEBUG][       Thread-250358][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 09:43:21,303 [ INFO][       Thread-250358][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 09:43:21,311 [DEBUG][       Thread-250358][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 09:43:21,311 [DEBUG][       Thread-250358][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 09:43:21,311 [DEBUG][       Thread-250358][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 09:43:21,311 [DEBUG][       Thread-250358][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:43:21,311 [DEBUG][       Thread-250358][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:43:21,311 [DEBUG][       Thread-250358][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:43:21,311 [DEBUG][       Thread-250358][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:43:21,311 [DEBUG][       Thread-250358][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 09:43:21,311 [DEBUG][       Thread-250358][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 09:43:21,311 [DEBUG][       Thread-250358][   transport.py][1871] : client lang: <none>
2025-06-13 09:43:21,311 [DEBUG][       Thread-250358][   transport.py][1871] : server lang: <none>
2025-06-13 09:43:21,312 [DEBUG][       Thread-250358][   transport.py][1871] : kex follows: False
2025-06-13 09:43:21,312 [DEBUG][       Thread-250358][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 09:43:21,312 [DEBUG][       Thread-250358][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 09:43:21,312 [DEBUG][       Thread-250358][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 09:43:21,312 [DEBUG][       Thread-250358][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 09:43:21,312 [DEBUG][       Thread-250358][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 09:43:21,312 [DEBUG][       Thread-250358][   transport.py][1871] : Compression: none
2025-06-13 09:43:21,312 [DEBUG][       Thread-250358][   transport.py][1871] : === End of kex handshake ===
2025-06-13 09:43:21,370 [DEBUG][       Thread-250358][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 09:43:21,370 [DEBUG][       Thread-250358][   transport.py][1871] : Switch to new keys ...
2025-06-13 09:43:21,371 [DEBUG][       Thread-250358][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 09:43:21,371 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 09:43:21,372 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 09:43:21,427 [DEBUG][       Thread-250358][   transport.py][1871] : userauth is OK
2025-06-13 09:43:21,427 [DEBUG][       Thread-250358][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 09:43:21,427 [DEBUG][       Thread-250358][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 09:43:21,427 [DEBUG][       Thread-250358][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 09:43:21,427 [DEBUG][       Thread-250358][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 09:43:21,446 [ INFO][       Thread-250358][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 09:43:21,446 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 09:43:21,447 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 09:43:22,445 [DEBUG][       Thread-250358][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 09:43:22,445 [DEBUG][       Thread-250358][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 09:43:22,499 [DEBUG][       Thread-250358][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 09:43:22,500 [DEBUG][       Thread-250358][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 09:43:22,508 [DEBUG][       Thread-250358][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 09:43:22,519 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 09:43:22,519 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 09:43:22,531 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 09:43:22,542 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 09:43:22,542 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 09:43:22,542 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 09:43:22,550 [DEBUG][       Thread-250358][   transport.py][1871] : EOF in transport thread
2025-06-13 09:43:23,972 [DEBUG][Thread-250360 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:43:25,050 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:43:25,051 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:43:25,073 [DEBUG][Thread-250361 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:43:32,552 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 09:43:32,552 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 09:43:32,552 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 09:43:32,554 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 09:43:33,020 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 9, 43, 8), 9.32, 51.96, 0.0, 17.66, 8.0, 0, 0, 0, 2, 0, 0),)
2025-06-13 09:43:33,020 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 09:43:08
2025-06-13 09:43:33,102 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 09:43:33,107 [DEBUG][       Thread-250362][   transport.py][1871] : starting thread (client mode): 0x863cae60
2025-06-13 09:43:33,107 [DEBUG][       Thread-250362][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 09:43:33,129 [DEBUG][       Thread-250362][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 09:43:33,129 [ INFO][       Thread-250362][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 09:43:33,133 [DEBUG][       Thread-250362][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 09:43:33,133 [DEBUG][       Thread-250362][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 09:43:33,133 [DEBUG][       Thread-250362][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 09:43:33,133 [DEBUG][       Thread-250362][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:43:33,133 [DEBUG][       Thread-250362][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:43:33,133 [DEBUG][       Thread-250362][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:43:33,133 [DEBUG][       Thread-250362][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:43:33,133 [DEBUG][       Thread-250362][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 09:43:33,133 [DEBUG][       Thread-250362][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 09:43:33,133 [DEBUG][       Thread-250362][   transport.py][1871] : client lang: <none>
2025-06-13 09:43:33,133 [DEBUG][       Thread-250362][   transport.py][1871] : server lang: <none>
2025-06-13 09:43:33,133 [DEBUG][       Thread-250362][   transport.py][1871] : kex follows: False
2025-06-13 09:43:33,133 [DEBUG][       Thread-250362][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 09:43:33,133 [DEBUG][       Thread-250362][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 09:43:33,133 [DEBUG][       Thread-250362][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 09:43:33,133 [DEBUG][       Thread-250362][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 09:43:33,133 [DEBUG][       Thread-250362][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 09:43:33,133 [DEBUG][       Thread-250362][   transport.py][1871] : Compression: none
2025-06-13 09:43:33,133 [DEBUG][       Thread-250362][   transport.py][1871] : === End of kex handshake ===
2025-06-13 09:43:33,141 [DEBUG][       Thread-250362][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 09:43:33,142 [DEBUG][       Thread-250362][   transport.py][1871] : Switch to new keys ...
2025-06-13 09:43:33,142 [DEBUG][       Thread-250362][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 09:43:33,142 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 09:43:33,142 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 09:43:33,143 [DEBUG][       Thread-250362][   transport.py][1871] : userauth is OK
2025-06-13 09:43:33,168 [ INFO][       Thread-250362][   transport.py][1871] : Authentication (password) successful!
2025-06-13 09:43:33,169 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 09:43:33,810 [DEBUG][       Thread-250362][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 09:43:33,810 [DEBUG][       Thread-250362][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 09:43:33,853 [DEBUG][       Thread-250362][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 09:43:33,853 [DEBUG][       Thread-250362][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 09:43:33,856 [DEBUG][       Thread-250362][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 09:43:33,870 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 09:43:33,870 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 09:43:33,872 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 09:43:33,874 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 09:43:33,880 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 09:43:33,882 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 09:43:33,882 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 09:43:33,883 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 09:43:33,883 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.321469 -999.00   +7.90  19.30     56   -0.10 1 1 1 1 1   887    0 8.23 14.78 ----- 19.3 19.3 30.4 23.9 11.9 -27.9 10.7 -29.0 9.4 -28.2 10.7 -26.3
2025-06-13 09:43:33,883 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 09:43:33,883 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 09:43:33,883 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.321469
2025-06-13 09:43:33,883 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 09:43:33,884 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 09:43:33,884 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 09:43:33,884 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 09:43:33,884 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 09:43:33,884 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T09:43:08', tmtdew=9.32, humidity=51.96, cloud=0.0, wind=17.66, temperature=8.0, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T07:42:54.922', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 09:43:33,885 [DEBUG][       Thread-250362][   transport.py][1871] : EOF in transport thread
2025-06-13 09:43:33,969 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 09:43:33,982 [DEBUG][       Thread-250365][   transport.py][1871] : starting thread (client mode): 0x868c85b0
2025-06-13 09:43:33,982 [DEBUG][       Thread-250365][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 09:43:33,998 [DEBUG][       Thread-250365][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 09:43:33,998 [ INFO][       Thread-250365][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 09:43:34,005 [DEBUG][       Thread-250365][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 09:43:34,006 [DEBUG][       Thread-250365][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 09:43:34,006 [DEBUG][       Thread-250365][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 09:43:34,006 [DEBUG][       Thread-250365][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:43:34,006 [DEBUG][       Thread-250365][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:43:34,006 [DEBUG][       Thread-250365][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:43:34,006 [DEBUG][       Thread-250365][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:43:34,006 [DEBUG][       Thread-250365][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 09:43:34,006 [DEBUG][       Thread-250365][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 09:43:34,006 [DEBUG][       Thread-250365][   transport.py][1871] : client lang: <none>
2025-06-13 09:43:34,006 [DEBUG][       Thread-250365][   transport.py][1871] : server lang: <none>
2025-06-13 09:43:34,006 [DEBUG][       Thread-250365][   transport.py][1871] : kex follows: False
2025-06-13 09:43:34,006 [DEBUG][       Thread-250365][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 09:43:34,006 [DEBUG][       Thread-250365][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 09:43:34,006 [DEBUG][       Thread-250365][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 09:43:34,006 [DEBUG][       Thread-250365][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 09:43:34,006 [DEBUG][       Thread-250365][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 09:43:34,007 [DEBUG][       Thread-250365][   transport.py][1871] : Compression: none
2025-06-13 09:43:34,007 [DEBUG][       Thread-250365][   transport.py][1871] : === End of kex handshake ===
2025-06-13 09:43:34,064 [DEBUG][       Thread-250365][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 09:43:34,065 [DEBUG][       Thread-250365][   transport.py][1871] : Switch to new keys ...
2025-06-13 09:43:34,065 [DEBUG][       Thread-250365][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 09:43:34,066 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 09:43:34,066 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 09:43:34,102 [DEBUG][Thread-250367 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:43:34,123 [DEBUG][       Thread-250365][   transport.py][1871] : userauth is OK
2025-06-13 09:43:34,123 [DEBUG][       Thread-250365][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 09:43:34,123 [DEBUG][       Thread-250365][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 09:43:34,123 [DEBUG][       Thread-250365][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 09:43:34,123 [DEBUG][       Thread-250365][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 09:43:34,144 [ INFO][       Thread-250365][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 09:43:34,145 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 09:43:34,145 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 09:43:35,136 [DEBUG][       Thread-250365][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 09:43:35,136 [DEBUG][       Thread-250365][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 09:43:35,188 [DEBUG][       Thread-250365][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 09:43:35,189 [DEBUG][       Thread-250365][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 09:43:35,197 [DEBUG][       Thread-250365][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 09:43:35,211 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 09:43:35,212 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 09:43:35,220 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 09:43:35,229 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 09:43:35,229 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 09:43:35,229 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 09:43:35,237 [DEBUG][       Thread-250365][   transport.py][1871] : EOF in transport thread
2025-06-13 09:43:43,120 [DEBUG][Thread-250368 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:43:45,240 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 09:43:45,240 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 09:43:45,240 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 09:43:45,241 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 09:43:45,720 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 9, 43, 39), 9.33, 51.92, 0.0, 16.43, 8.04, 0, 0, 0, 2, 0, 0),)
2025-06-13 09:43:45,720 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 09:43:39
2025-06-13 09:43:45,804 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 09:43:45,809 [DEBUG][       Thread-250369][   transport.py][1871] : starting thread (client mode): 0x84205cf0
2025-06-13 09:43:45,809 [DEBUG][       Thread-250369][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 09:43:45,829 [DEBUG][       Thread-250369][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 09:43:45,829 [ INFO][       Thread-250369][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 09:43:45,833 [DEBUG][       Thread-250369][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 09:43:45,833 [DEBUG][       Thread-250369][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 09:43:45,833 [DEBUG][       Thread-250369][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 09:43:45,833 [DEBUG][       Thread-250369][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:43:45,833 [DEBUG][       Thread-250369][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:43:45,833 [DEBUG][       Thread-250369][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:43:45,833 [DEBUG][       Thread-250369][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:43:45,833 [DEBUG][       Thread-250369][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 09:43:45,833 [DEBUG][       Thread-250369][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 09:43:45,833 [DEBUG][       Thread-250369][   transport.py][1871] : client lang: <none>
2025-06-13 09:43:45,833 [DEBUG][       Thread-250369][   transport.py][1871] : server lang: <none>
2025-06-13 09:43:45,833 [DEBUG][       Thread-250369][   transport.py][1871] : kex follows: False
2025-06-13 09:43:45,833 [DEBUG][       Thread-250369][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 09:43:45,833 [DEBUG][       Thread-250369][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 09:43:45,833 [DEBUG][       Thread-250369][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 09:43:45,833 [DEBUG][       Thread-250369][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 09:43:45,833 [DEBUG][       Thread-250369][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 09:43:45,833 [DEBUG][       Thread-250369][   transport.py][1871] : Compression: none
2025-06-13 09:43:45,833 [DEBUG][       Thread-250369][   transport.py][1871] : === End of kex handshake ===
2025-06-13 09:43:45,848 [DEBUG][       Thread-250369][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 09:43:45,848 [DEBUG][       Thread-250369][   transport.py][1871] : Switch to new keys ...
2025-06-13 09:43:45,848 [DEBUG][       Thread-250369][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 09:43:45,848 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 09:43:45,848 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 09:43:45,849 [DEBUG][       Thread-250369][   transport.py][1871] : userauth is OK
2025-06-13 09:43:45,873 [ INFO][       Thread-250369][   transport.py][1871] : Authentication (password) successful!
2025-06-13 09:43:45,873 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 09:43:46,506 [DEBUG][       Thread-250369][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 09:43:46,506 [DEBUG][       Thread-250369][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 09:43:46,548 [DEBUG][       Thread-250369][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 09:43:46,548 [DEBUG][       Thread-250369][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 09:43:46,551 [DEBUG][       Thread-250369][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 09:43:46,563 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 09:43:46,563 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 09:43:46,564 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 09:43:46,565 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 09:43:46,569 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 09:43:46,569 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 09:43:46,569 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 09:43:46,570 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 09:43:46,570 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.321469 -999.00   +7.90  19.30     56   -0.10 1 1 1 1 1   887    0 8.23 14.78 ----- 19.3 19.3 30.4 23.9 11.9 -27.9 10.7 -29.0 9.4 -28.2 10.7 -26.3
2025-06-13 09:43:46,570 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 09:43:46,570 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 09:43:46,570 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.321469
2025-06-13 09:43:46,570 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 09:43:46,570 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 09:43:46,570 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 09:43:46,570 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 09:43:46,570 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 09:43:46,570 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T09:43:39', tmtdew=9.33, humidity=51.92, cloud=0.0, wind=16.43, temperature=8.04, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T07:42:54.922', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 09:43:46,571 [DEBUG][       Thread-250369][   transport.py][1871] : EOF in transport thread
2025-06-13 09:43:46,643 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 09:43:46,668 [DEBUG][       Thread-250372][   transport.py][1871] : starting thread (client mode): 0x863ece20
2025-06-13 09:43:46,668 [DEBUG][       Thread-250372][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 09:43:46,698 [DEBUG][       Thread-250372][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 09:43:46,698 [ INFO][       Thread-250372][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 09:43:46,721 [DEBUG][       Thread-250372][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 09:43:46,721 [DEBUG][       Thread-250372][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 09:43:46,721 [DEBUG][       Thread-250372][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 09:43:46,722 [DEBUG][       Thread-250372][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:43:46,722 [DEBUG][       Thread-250372][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:43:46,722 [DEBUG][       Thread-250372][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:43:46,722 [DEBUG][       Thread-250372][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:43:46,722 [DEBUG][       Thread-250372][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 09:43:46,722 [DEBUG][       Thread-250372][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 09:43:46,722 [DEBUG][       Thread-250372][   transport.py][1871] : client lang: <none>
2025-06-13 09:43:46,722 [DEBUG][       Thread-250372][   transport.py][1871] : server lang: <none>
2025-06-13 09:43:46,722 [DEBUG][       Thread-250372][   transport.py][1871] : kex follows: False
2025-06-13 09:43:46,722 [DEBUG][       Thread-250372][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 09:43:46,722 [DEBUG][       Thread-250372][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 09:43:46,722 [DEBUG][       Thread-250372][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 09:43:46,722 [DEBUG][       Thread-250372][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 09:43:46,722 [DEBUG][       Thread-250372][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 09:43:46,722 [DEBUG][       Thread-250372][   transport.py][1871] : Compression: none
2025-06-13 09:43:46,722 [DEBUG][       Thread-250372][   transport.py][1871] : === End of kex handshake ===
2025-06-13 09:43:46,789 [DEBUG][       Thread-250372][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 09:43:46,789 [DEBUG][       Thread-250372][   transport.py][1871] : Switch to new keys ...
2025-06-13 09:43:46,789 [DEBUG][       Thread-250372][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 09:43:46,789 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 09:43:46,789 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 09:43:46,873 [DEBUG][       Thread-250372][   transport.py][1871] : userauth is OK
2025-06-13 09:43:46,873 [DEBUG][       Thread-250372][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 09:43:46,873 [DEBUG][       Thread-250372][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 09:43:46,873 [DEBUG][       Thread-250372][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 09:43:46,873 [DEBUG][       Thread-250372][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 09:43:46,907 [ INFO][       Thread-250372][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 09:43:46,908 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 09:43:46,908 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 09:43:47,939 [DEBUG][       Thread-250372][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 09:43:47,939 [DEBUG][       Thread-250372][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 09:43:47,992 [DEBUG][       Thread-250372][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 09:43:47,992 [DEBUG][       Thread-250372][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 09:43:48,001 [DEBUG][       Thread-250372][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 09:43:48,010 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 09:43:48,010 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 09:43:48,019 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 09:43:48,028 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 09:43:48,028 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 09:43:48,028 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 09:43:48,036 [DEBUG][       Thread-250372][   transport.py][1871] : EOF in transport thread
2025-06-13 09:43:52,137 [DEBUG][Thread-250374 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:43:58,039 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 09:43:58,039 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 09:43:58,039 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 09:43:58,042 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 09:43:58,505 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 9, 43, 39), 9.33, 51.92, 0.0, 16.43, 8.04, 0, 0, 0, 2, 0, 0),)
2025-06-13 09:43:58,505 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 09:43:39
2025-06-13 09:43:58,586 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 09:43:58,589 [DEBUG][       Thread-250375][   transport.py][1871] : starting thread (client mode): 0x84207940
2025-06-13 09:43:58,590 [DEBUG][       Thread-250375][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 09:43:58,612 [DEBUG][       Thread-250375][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 09:43:58,612 [ INFO][       Thread-250375][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 09:43:58,614 [DEBUG][       Thread-250375][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 09:43:58,614 [DEBUG][       Thread-250375][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 09:43:58,614 [DEBUG][       Thread-250375][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 09:43:58,614 [DEBUG][       Thread-250375][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:43:58,614 [DEBUG][       Thread-250375][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:43:58,614 [DEBUG][       Thread-250375][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:43:58,614 [DEBUG][       Thread-250375][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:43:58,614 [DEBUG][       Thread-250375][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 09:43:58,614 [DEBUG][       Thread-250375][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 09:43:58,614 [DEBUG][       Thread-250375][   transport.py][1871] : client lang: <none>
2025-06-13 09:43:58,614 [DEBUG][       Thread-250375][   transport.py][1871] : server lang: <none>
2025-06-13 09:43:58,614 [DEBUG][       Thread-250375][   transport.py][1871] : kex follows: False
2025-06-13 09:43:58,614 [DEBUG][       Thread-250375][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 09:43:58,614 [DEBUG][       Thread-250375][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 09:43:58,614 [DEBUG][       Thread-250375][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 09:43:58,615 [DEBUG][       Thread-250375][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 09:43:58,615 [DEBUG][       Thread-250375][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 09:43:58,615 [DEBUG][       Thread-250375][   transport.py][1871] : Compression: none
2025-06-13 09:43:58,615 [DEBUG][       Thread-250375][   transport.py][1871] : === End of kex handshake ===
2025-06-13 09:43:58,623 [DEBUG][       Thread-250375][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 09:43:58,624 [DEBUG][       Thread-250375][   transport.py][1871] : Switch to new keys ...
2025-06-13 09:43:58,624 [DEBUG][       Thread-250375][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 09:43:58,624 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 09:43:58,625 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 09:43:58,626 [DEBUG][       Thread-250375][   transport.py][1871] : userauth is OK
2025-06-13 09:43:58,638 [ INFO][       Thread-250375][   transport.py][1871] : Authentication (password) successful!
2025-06-13 09:43:58,639 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 09:43:59,246 [DEBUG][       Thread-250375][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 09:43:59,246 [DEBUG][       Thread-250375][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 09:43:59,289 [DEBUG][       Thread-250375][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 09:43:59,289 [DEBUG][       Thread-250375][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 09:43:59,291 [DEBUG][       Thread-250375][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 09:43:59,297 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 09:43:59,298 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 09:43:59,299 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 09:43:59,301 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 09:43:59,304 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 09:43:59,306 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 09:43:59,306 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 09:43:59,307 [DEBUG][       Thread-250375][   transport.py][1871] : EOF in transport thread
2025-06-13 09:43:59,307 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 09:43:59,307 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.321816 -999.00   +8.00  19.25     57   +0.00 1 1 1 1 1   887    0 8.15 13.97 ----- 19.2 19.2 32.0 20.6 12.1 -28.0 10.7 -28.6 9.5 -28.0 10.7 -26.2
2025-06-13 09:43:59,307 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 09:43:59,308 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 09:43:59,308 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.321816
2025-06-13 09:43:59,308 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 09:43:59,309 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 09:43:59,309 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 09:43:59,309 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 09:43:59,309 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 09:43:59,309 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T09:43:39', tmtdew=9.33, humidity=51.92, cloud=0.0, wind=16.43, temperature=8.04, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T07:43:24.902', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 09:43:59,395 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 09:43:59,408 [DEBUG][       Thread-250378][   transport.py][1871] : starting thread (client mode): 0x867fefb0
2025-06-13 09:43:59,408 [DEBUG][       Thread-250378][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 09:43:59,424 [DEBUG][       Thread-250378][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 09:43:59,424 [ INFO][       Thread-250378][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 09:43:59,431 [DEBUG][       Thread-250378][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 09:43:59,431 [DEBUG][       Thread-250378][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 09:43:59,431 [DEBUG][       Thread-250378][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 09:43:59,431 [DEBUG][       Thread-250378][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:43:59,431 [DEBUG][       Thread-250378][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:43:59,431 [DEBUG][       Thread-250378][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:43:59,431 [DEBUG][       Thread-250378][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:43:59,431 [DEBUG][       Thread-250378][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 09:43:59,431 [DEBUG][       Thread-250378][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 09:43:59,431 [DEBUG][       Thread-250378][   transport.py][1871] : client lang: <none>
2025-06-13 09:43:59,431 [DEBUG][       Thread-250378][   transport.py][1871] : server lang: <none>
2025-06-13 09:43:59,431 [DEBUG][       Thread-250378][   transport.py][1871] : kex follows: False
2025-06-13 09:43:59,431 [DEBUG][       Thread-250378][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 09:43:59,431 [DEBUG][       Thread-250378][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 09:43:59,431 [DEBUG][       Thread-250378][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 09:43:59,431 [DEBUG][       Thread-250378][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 09:43:59,431 [DEBUG][       Thread-250378][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 09:43:59,431 [DEBUG][       Thread-250378][   transport.py][1871] : Compression: none
2025-06-13 09:43:59,431 [DEBUG][       Thread-250378][   transport.py][1871] : === End of kex handshake ===
2025-06-13 09:43:59,496 [DEBUG][       Thread-250378][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 09:43:59,496 [DEBUG][       Thread-250378][   transport.py][1871] : Switch to new keys ...
2025-06-13 09:43:59,496 [DEBUG][       Thread-250378][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 09:43:59,497 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 09:43:59,497 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 09:43:59,551 [DEBUG][       Thread-250378][   transport.py][1871] : userauth is OK
2025-06-13 09:43:59,551 [DEBUG][       Thread-250378][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 09:43:59,551 [DEBUG][       Thread-250378][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 09:43:59,551 [DEBUG][       Thread-250378][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 09:43:59,551 [DEBUG][       Thread-250378][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 09:43:59,569 [ INFO][       Thread-250378][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 09:43:59,570 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 09:43:59,570 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 09:44:00,604 [DEBUG][       Thread-250378][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 09:44:00,604 [DEBUG][       Thread-250378][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 09:44:00,655 [DEBUG][       Thread-250378][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 09:44:00,656 [DEBUG][       Thread-250378][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 09:44:00,668 [DEBUG][       Thread-250378][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 09:44:00,677 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 09:44:00,677 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 09:44:00,685 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 09:44:00,694 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 09:44:00,694 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 09:44:00,695 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 09:44:00,703 [DEBUG][       Thread-250378][   transport.py][1871] : EOF in transport thread
2025-06-13 09:44:01,176 [DEBUG][Thread-250380 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:44:04,075 [DEBUG][Thread-250381 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:44:10,197 [DEBUG][Thread-250382 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:44:10,705 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 09:44:10,705 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 09:44:10,705 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 09:44:10,708 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 09:44:11,164 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 9, 43, 39), 9.33, 51.92, 0.0, 16.43, 8.04, 0, 0, 0, 2, 0, 0),)
2025-06-13 09:44:11,164 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 09:43:39
2025-06-13 09:44:11,245 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 09:44:11,250 [DEBUG][       Thread-250383][   transport.py][1871] : starting thread (client mode): 0x84205810
2025-06-13 09:44:11,251 [DEBUG][       Thread-250383][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 09:44:11,266 [DEBUG][       Thread-250383][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 09:44:11,266 [ INFO][       Thread-250383][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 09:44:11,268 [DEBUG][       Thread-250383][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 09:44:11,268 [DEBUG][       Thread-250383][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 09:44:11,268 [DEBUG][       Thread-250383][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 09:44:11,268 [DEBUG][       Thread-250383][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:44:11,268 [DEBUG][       Thread-250383][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:44:11,268 [DEBUG][       Thread-250383][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:44:11,268 [DEBUG][       Thread-250383][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:44:11,268 [DEBUG][       Thread-250383][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 09:44:11,268 [DEBUG][       Thread-250383][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 09:44:11,268 [DEBUG][       Thread-250383][   transport.py][1871] : client lang: <none>
2025-06-13 09:44:11,268 [DEBUG][       Thread-250383][   transport.py][1871] : server lang: <none>
2025-06-13 09:44:11,268 [DEBUG][       Thread-250383][   transport.py][1871] : kex follows: False
2025-06-13 09:44:11,268 [DEBUG][       Thread-250383][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 09:44:11,268 [DEBUG][       Thread-250383][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 09:44:11,268 [DEBUG][       Thread-250383][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 09:44:11,268 [DEBUG][       Thread-250383][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 09:44:11,268 [DEBUG][       Thread-250383][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 09:44:11,268 [DEBUG][       Thread-250383][   transport.py][1871] : Compression: none
2025-06-13 09:44:11,268 [DEBUG][       Thread-250383][   transport.py][1871] : === End of kex handshake ===
2025-06-13 09:44:11,285 [DEBUG][       Thread-250383][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 09:44:11,285 [DEBUG][       Thread-250383][   transport.py][1871] : Switch to new keys ...
2025-06-13 09:44:11,286 [DEBUG][       Thread-250383][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 09:44:11,286 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 09:44:11,286 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 09:44:11,287 [DEBUG][       Thread-250383][   transport.py][1871] : userauth is OK
2025-06-13 09:44:11,300 [ INFO][       Thread-250383][   transport.py][1871] : Authentication (password) successful!
2025-06-13 09:44:11,301 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 09:44:11,928 [DEBUG][       Thread-250383][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 09:44:11,928 [DEBUG][       Thread-250383][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 09:44:11,973 [DEBUG][       Thread-250383][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 09:44:11,973 [DEBUG][       Thread-250383][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 09:44:11,976 [DEBUG][       Thread-250383][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 09:44:11,988 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 09:44:11,988 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 09:44:11,989 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 09:44:11,991 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 09:44:11,996 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 09:44:11,998 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 09:44:11,998 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 09:44:11,998 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 09:44:11,998 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.321816 -999.00   +8.00  19.25     57   +0.00 1 1 1 1 1   887    0 8.15 13.97 ----- 19.2 19.2 32.0 20.6 12.1 -28.0 10.7 -28.6 9.5 -28.0 10.7 -26.2
2025-06-13 09:44:11,998 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 09:44:11,999 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 09:44:11,999 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.321816
2025-06-13 09:44:11,999 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 09:44:11,999 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 09:44:12,000 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 09:44:12,000 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 09:44:12,000 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 09:44:12,000 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T09:43:39', tmtdew=9.33, humidity=51.92, cloud=0.0, wind=16.43, temperature=8.04, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T07:43:24.902', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 09:44:12,001 [DEBUG][       Thread-250383][   transport.py][1871] : EOF in transport thread
2025-06-13 09:44:12,084 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 09:44:12,095 [DEBUG][       Thread-250386][   transport.py][1871] : starting thread (client mode): 0x863eff70
2025-06-13 09:44:12,095 [DEBUG][       Thread-250386][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 09:44:12,113 [DEBUG][       Thread-250386][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 09:44:12,113 [ INFO][       Thread-250386][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 09:44:12,121 [DEBUG][       Thread-250386][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 09:44:12,121 [DEBUG][       Thread-250386][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 09:44:12,121 [DEBUG][       Thread-250386][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 09:44:12,121 [DEBUG][       Thread-250386][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:44:12,121 [DEBUG][       Thread-250386][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:44:12,121 [DEBUG][       Thread-250386][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:44:12,121 [DEBUG][       Thread-250386][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:44:12,121 [DEBUG][       Thread-250386][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 09:44:12,121 [DEBUG][       Thread-250386][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 09:44:12,121 [DEBUG][       Thread-250386][   transport.py][1871] : client lang: <none>
2025-06-13 09:44:12,121 [DEBUG][       Thread-250386][   transport.py][1871] : server lang: <none>
2025-06-13 09:44:12,121 [DEBUG][       Thread-250386][   transport.py][1871] : kex follows: False
2025-06-13 09:44:12,121 [DEBUG][       Thread-250386][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 09:44:12,121 [DEBUG][       Thread-250386][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 09:44:12,121 [DEBUG][       Thread-250386][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 09:44:12,121 [DEBUG][       Thread-250386][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 09:44:12,121 [DEBUG][       Thread-250386][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 09:44:12,121 [DEBUG][       Thread-250386][   transport.py][1871] : Compression: none
2025-06-13 09:44:12,121 [DEBUG][       Thread-250386][   transport.py][1871] : === End of kex handshake ===
2025-06-13 09:44:12,177 [DEBUG][       Thread-250386][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 09:44:12,177 [DEBUG][       Thread-250386][   transport.py][1871] : Switch to new keys ...
2025-06-13 09:44:12,178 [DEBUG][       Thread-250386][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 09:44:12,178 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 09:44:12,178 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 09:44:12,234 [DEBUG][       Thread-250386][   transport.py][1871] : userauth is OK
2025-06-13 09:44:12,234 [DEBUG][       Thread-250386][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 09:44:12,234 [DEBUG][       Thread-250386][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 09:44:12,234 [DEBUG][       Thread-250386][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 09:44:12,234 [DEBUG][       Thread-250386][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 09:44:12,252 [ INFO][       Thread-250386][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 09:44:12,252 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 09:44:12,252 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 09:44:13,232 [DEBUG][       Thread-250386][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 09:44:13,232 [DEBUG][       Thread-250386][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 09:44:13,280 [DEBUG][       Thread-250386][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 09:44:13,280 [DEBUG][       Thread-250386][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 09:44:13,295 [DEBUG][       Thread-250386][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 09:44:13,313 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 09:44:13,313 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 09:44:13,328 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 09:44:13,336 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 09:44:13,336 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 09:44:13,336 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 09:44:13,344 [DEBUG][       Thread-250386][   transport.py][1871] : EOF in transport thread
2025-06-13 09:44:19,214 [DEBUG][Thread-250388 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:44:20,260 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:44:20,261 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:44:23,344 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 09:44:23,344 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 09:44:23,344 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 09:44:23,344 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 09:44:23,824 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 9, 44, 11), 9.27, 52.11, 0.0, 19.66, 8.03, 0, 0, 0, 2, 0, 0),)
2025-06-13 09:44:23,824 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 09:44:11
2025-06-13 09:44:23,908 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 09:44:23,912 [DEBUG][       Thread-250389][   transport.py][1871] : starting thread (client mode): 0x84206770
2025-06-13 09:44:23,912 [DEBUG][       Thread-250389][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 09:44:23,932 [DEBUG][       Thread-250389][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 09:44:23,932 [ INFO][       Thread-250389][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 09:44:23,935 [DEBUG][       Thread-250389][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 09:44:23,936 [DEBUG][       Thread-250389][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 09:44:23,936 [DEBUG][       Thread-250389][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 09:44:23,936 [DEBUG][       Thread-250389][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:44:23,936 [DEBUG][       Thread-250389][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:44:23,936 [DEBUG][       Thread-250389][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:44:23,936 [DEBUG][       Thread-250389][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:44:23,936 [DEBUG][       Thread-250389][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 09:44:23,936 [DEBUG][       Thread-250389][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 09:44:23,936 [DEBUG][       Thread-250389][   transport.py][1871] : client lang: <none>
2025-06-13 09:44:23,936 [DEBUG][       Thread-250389][   transport.py][1871] : server lang: <none>
2025-06-13 09:44:23,936 [DEBUG][       Thread-250389][   transport.py][1871] : kex follows: False
2025-06-13 09:44:23,936 [DEBUG][       Thread-250389][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 09:44:23,936 [DEBUG][       Thread-250389][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 09:44:23,936 [DEBUG][       Thread-250389][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 09:44:23,936 [DEBUG][       Thread-250389][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 09:44:23,936 [DEBUG][       Thread-250389][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 09:44:23,936 [DEBUG][       Thread-250389][   transport.py][1871] : Compression: none
2025-06-13 09:44:23,936 [DEBUG][       Thread-250389][   transport.py][1871] : === End of kex handshake ===
2025-06-13 09:44:23,951 [DEBUG][       Thread-250389][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 09:44:23,951 [DEBUG][       Thread-250389][   transport.py][1871] : Switch to new keys ...
2025-06-13 09:44:23,952 [DEBUG][       Thread-250389][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 09:44:23,952 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 09:44:23,952 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 09:44:23,952 [DEBUG][       Thread-250389][   transport.py][1871] : userauth is OK
2025-06-13 09:44:23,965 [ INFO][       Thread-250389][   transport.py][1871] : Authentication (password) successful!
2025-06-13 09:44:23,965 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 09:44:24,597 [DEBUG][       Thread-250389][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 09:44:24,597 [DEBUG][       Thread-250389][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 09:44:24,640 [DEBUG][       Thread-250389][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 09:44:24,640 [DEBUG][       Thread-250389][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 09:44:24,643 [DEBUG][       Thread-250389][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 09:44:24,655 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 09:44:24,655 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 09:44:24,656 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 09:44:24,658 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 09:44:24,661 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 09:44:24,662 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 09:44:24,662 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 09:44:24,662 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 09:44:24,662 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.321816 -999.00   +8.00  19.25     57   +0.00 1 1 1 1 1   887    0 8.15 13.97 ----- 19.2 19.2 32.0 20.6 12.1 -28.0 10.7 -28.6 9.5 -28.0 10.7 -26.2
2025-06-13 09:44:24,662 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 09:44:24,662 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 09:44:24,662 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.321816
2025-06-13 09:44:24,662 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 09:44:24,662 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 09:44:24,663 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 09:44:24,663 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 09:44:24,663 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 09:44:24,663 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T09:44:11', tmtdew=9.27, humidity=52.11, cloud=0.0, wind=19.66, temperature=8.03, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T07:43:24.902', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 09:44:24,663 [DEBUG][       Thread-250389][   transport.py][1871] : EOF in transport thread
2025-06-13 09:44:24,735 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 09:44:24,744 [DEBUG][       Thread-250392][   transport.py][1871] : starting thread (client mode): 0x863ece20
2025-06-13 09:44:24,744 [DEBUG][       Thread-250392][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 09:44:24,759 [DEBUG][       Thread-250392][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 09:44:24,759 [ INFO][       Thread-250392][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 09:44:24,766 [DEBUG][       Thread-250392][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 09:44:24,766 [DEBUG][       Thread-250392][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 09:44:24,766 [DEBUG][       Thread-250392][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 09:44:24,766 [DEBUG][       Thread-250392][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:44:24,766 [DEBUG][       Thread-250392][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:44:24,766 [DEBUG][       Thread-250392][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:44:24,766 [DEBUG][       Thread-250392][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:44:24,766 [DEBUG][       Thread-250392][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 09:44:24,766 [DEBUG][       Thread-250392][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 09:44:24,766 [DEBUG][       Thread-250392][   transport.py][1871] : client lang: <none>
2025-06-13 09:44:24,766 [DEBUG][       Thread-250392][   transport.py][1871] : server lang: <none>
2025-06-13 09:44:24,766 [DEBUG][       Thread-250392][   transport.py][1871] : kex follows: False
2025-06-13 09:44:24,766 [DEBUG][       Thread-250392][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 09:44:24,767 [DEBUG][       Thread-250392][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 09:44:24,767 [DEBUG][       Thread-250392][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 09:44:24,767 [DEBUG][       Thread-250392][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 09:44:24,767 [DEBUG][       Thread-250392][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 09:44:24,767 [DEBUG][       Thread-250392][   transport.py][1871] : Compression: none
2025-06-13 09:44:24,767 [DEBUG][       Thread-250392][   transport.py][1871] : === End of kex handshake ===
2025-06-13 09:44:24,821 [DEBUG][       Thread-250392][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 09:44:24,821 [DEBUG][       Thread-250392][   transport.py][1871] : Switch to new keys ...
2025-06-13 09:44:24,821 [DEBUG][       Thread-250392][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 09:44:24,821 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 09:44:24,822 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 09:44:24,878 [DEBUG][       Thread-250392][   transport.py][1871] : userauth is OK
2025-06-13 09:44:24,878 [DEBUG][       Thread-250392][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 09:44:24,878 [DEBUG][       Thread-250392][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 09:44:24,878 [DEBUG][       Thread-250392][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 09:44:24,878 [DEBUG][       Thread-250392][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 09:44:24,892 [ INFO][       Thread-250392][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 09:44:24,892 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 09:44:24,892 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 09:44:25,131 [DEBUG][Thread-250394 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:44:25,945 [DEBUG][       Thread-250392][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 09:44:25,945 [DEBUG][       Thread-250392][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 09:44:25,995 [DEBUG][       Thread-250392][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 09:44:25,996 [DEBUG][       Thread-250392][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 09:44:26,004 [DEBUG][       Thread-250392][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 09:44:26,013 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 09:44:26,013 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 09:44:26,022 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 09:44:26,034 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 09:44:26,035 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 09:44:26,035 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 09:44:26,043 [DEBUG][       Thread-250392][   transport.py][1871] : EOF in transport thread
2025-06-13 09:44:26,181 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:44:26,182 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:44:28,230 [DEBUG][Thread-250395 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:44:36,045 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 09:44:36,046 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 09:44:36,046 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 09:44:36,048 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 09:44:36,505 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 9, 44, 11), 9.27, 52.11, 0.0, 19.66, 8.03, 0, 0, 0, 2, 0, 0),)
2025-06-13 09:44:36,505 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 09:44:11
2025-06-13 09:44:36,585 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 09:44:36,591 [DEBUG][       Thread-250396][   transport.py][1871] : starting thread (client mode): 0x863bca30
2025-06-13 09:44:36,591 [DEBUG][       Thread-250396][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 09:44:36,612 [DEBUG][       Thread-250396][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 09:44:36,612 [ INFO][       Thread-250396][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 09:44:36,615 [DEBUG][       Thread-250396][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 09:44:36,615 [DEBUG][       Thread-250396][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 09:44:36,616 [DEBUG][       Thread-250396][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 09:44:36,616 [DEBUG][       Thread-250396][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:44:36,616 [DEBUG][       Thread-250396][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:44:36,616 [DEBUG][       Thread-250396][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:44:36,616 [DEBUG][       Thread-250396][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:44:36,616 [DEBUG][       Thread-250396][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 09:44:36,616 [DEBUG][       Thread-250396][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 09:44:36,616 [DEBUG][       Thread-250396][   transport.py][1871] : client lang: <none>
2025-06-13 09:44:36,616 [DEBUG][       Thread-250396][   transport.py][1871] : server lang: <none>
2025-06-13 09:44:36,616 [DEBUG][       Thread-250396][   transport.py][1871] : kex follows: False
2025-06-13 09:44:36,616 [DEBUG][       Thread-250396][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 09:44:36,616 [DEBUG][       Thread-250396][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 09:44:36,616 [DEBUG][       Thread-250396][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 09:44:36,616 [DEBUG][       Thread-250396][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 09:44:36,616 [DEBUG][       Thread-250396][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 09:44:36,616 [DEBUG][       Thread-250396][   transport.py][1871] : Compression: none
2025-06-13 09:44:36,616 [DEBUG][       Thread-250396][   transport.py][1871] : === End of kex handshake ===
2025-06-13 09:44:36,632 [DEBUG][       Thread-250396][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 09:44:36,633 [DEBUG][       Thread-250396][   transport.py][1871] : Switch to new keys ...
2025-06-13 09:44:36,634 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 09:44:36,634 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 09:44:36,634 [DEBUG][       Thread-250396][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 09:44:36,635 [DEBUG][       Thread-250396][   transport.py][1871] : userauth is OK
2025-06-13 09:44:36,648 [ INFO][       Thread-250396][   transport.py][1871] : Authentication (password) successful!
2025-06-13 09:44:36,648 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 09:44:37,268 [DEBUG][Thread-250398 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:44:37,304 [DEBUG][       Thread-250396][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 09:44:37,304 [DEBUG][       Thread-250396][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 09:44:37,345 [DEBUG][       Thread-250396][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 09:44:37,345 [DEBUG][       Thread-250396][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 09:44:37,348 [DEBUG][       Thread-250396][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 09:44:37,360 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 09:44:37,360 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 09:44:37,362 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 09:44:37,364 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 09:44:37,370 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 09:44:37,372 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 09:44:37,372 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 09:44:37,373 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 09:44:37,374 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.322510 -999.00   +8.00  19.32     56   +0.00 1 1 1 1 1   887    0 8.35 16.35 ----- 19.3 19.3 40.8 25.2 12.1 -27.9 10.8 -28.7 9.5 -28.3 10.8 -26.3
2025-06-13 09:44:37,374 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 09:44:37,374 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 09:44:37,374 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.322510
2025-06-13 09:44:37,374 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 09:44:37,375 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 09:44:37,375 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 09:44:37,375 [DEBUG][       Thread-250396][   transport.py][1871] : EOF in transport thread
2025-06-13 09:44:37,376 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 09:44:37,376 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 09:44:37,377 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T09:44:11', tmtdew=9.27, humidity=52.11, cloud=0.0, wind=19.66, temperature=8.03, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T07:44:24.864', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 09:44:37,464 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 09:44:37,474 [DEBUG][       Thread-250400][   transport.py][1871] : starting thread (client mode): 0x84204790
2025-06-13 09:44:37,474 [DEBUG][       Thread-250400][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 09:44:37,491 [DEBUG][       Thread-250400][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 09:44:37,491 [ INFO][       Thread-250400][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 09:44:37,502 [DEBUG][       Thread-250400][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 09:44:37,502 [DEBUG][       Thread-250400][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 09:44:37,502 [DEBUG][       Thread-250400][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 09:44:37,502 [DEBUG][       Thread-250400][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:44:37,503 [DEBUG][       Thread-250400][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:44:37,503 [DEBUG][       Thread-250400][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:44:37,503 [DEBUG][       Thread-250400][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:44:37,503 [DEBUG][       Thread-250400][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 09:44:37,503 [DEBUG][       Thread-250400][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 09:44:37,503 [DEBUG][       Thread-250400][   transport.py][1871] : client lang: <none>
2025-06-13 09:44:37,503 [DEBUG][       Thread-250400][   transport.py][1871] : server lang: <none>
2025-06-13 09:44:37,503 [DEBUG][       Thread-250400][   transport.py][1871] : kex follows: False
2025-06-13 09:44:37,503 [DEBUG][       Thread-250400][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 09:44:37,503 [DEBUG][       Thread-250400][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 09:44:37,503 [DEBUG][       Thread-250400][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 09:44:37,503 [DEBUG][       Thread-250400][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 09:44:37,503 [DEBUG][       Thread-250400][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 09:44:37,503 [DEBUG][       Thread-250400][   transport.py][1871] : Compression: none
2025-06-13 09:44:37,503 [DEBUG][       Thread-250400][   transport.py][1871] : === End of kex handshake ===
2025-06-13 09:44:37,558 [DEBUG][       Thread-250400][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 09:44:37,559 [DEBUG][       Thread-250400][   transport.py][1871] : Switch to new keys ...
2025-06-13 09:44:37,559 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 09:44:37,560 [DEBUG][       Thread-250400][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 09:44:37,561 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 09:44:37,619 [DEBUG][       Thread-250400][   transport.py][1871] : userauth is OK
2025-06-13 09:44:37,619 [DEBUG][       Thread-250400][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 09:44:37,619 [DEBUG][       Thread-250400][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 09:44:37,619 [DEBUG][       Thread-250400][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 09:44:37,619 [DEBUG][       Thread-250400][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 09:44:37,641 [ INFO][       Thread-250400][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 09:44:37,641 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 09:44:37,641 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 09:44:38,653 [DEBUG][       Thread-250400][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 09:44:38,653 [DEBUG][       Thread-250400][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 09:44:38,703 [DEBUG][       Thread-250400][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 09:44:38,704 [DEBUG][       Thread-250400][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 09:44:38,713 [DEBUG][       Thread-250400][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 09:44:38,722 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 09:44:38,722 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 09:44:38,731 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 09:44:38,740 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 09:44:38,740 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 09:44:38,740 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 09:44:38,748 [DEBUG][       Thread-250400][   transport.py][1871] : EOF in transport thread
2025-06-13 09:44:46,294 [DEBUG][Thread-250402 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:44:48,748 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 09:44:48,748 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 09:44:48,748 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 09:44:48,751 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 09:44:49,209 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 9, 44, 43), 9.33, 51.9, 0.0, 22.04, 8.07, 0, 0, 0, 2, 0, 0),)
2025-06-13 09:44:49,209 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 09:44:43
2025-06-13 09:44:49,291 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 09:44:49,297 [DEBUG][       Thread-250403][   transport.py][1871] : starting thread (client mode): 0x84207310
2025-06-13 09:44:49,297 [DEBUG][       Thread-250403][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 09:44:49,319 [DEBUG][       Thread-250403][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 09:44:49,319 [ INFO][       Thread-250403][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 09:44:49,323 [DEBUG][       Thread-250403][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 09:44:49,323 [DEBUG][       Thread-250403][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 09:44:49,323 [DEBUG][       Thread-250403][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 09:44:49,323 [DEBUG][       Thread-250403][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:44:49,323 [DEBUG][       Thread-250403][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:44:49,323 [DEBUG][       Thread-250403][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:44:49,323 [DEBUG][       Thread-250403][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:44:49,323 [DEBUG][       Thread-250403][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 09:44:49,323 [DEBUG][       Thread-250403][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 09:44:49,323 [DEBUG][       Thread-250403][   transport.py][1871] : client lang: <none>
2025-06-13 09:44:49,323 [DEBUG][       Thread-250403][   transport.py][1871] : server lang: <none>
2025-06-13 09:44:49,323 [DEBUG][       Thread-250403][   transport.py][1871] : kex follows: False
2025-06-13 09:44:49,323 [DEBUG][       Thread-250403][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 09:44:49,324 [DEBUG][       Thread-250403][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 09:44:49,324 [DEBUG][       Thread-250403][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 09:44:49,324 [DEBUG][       Thread-250403][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 09:44:49,324 [DEBUG][       Thread-250403][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 09:44:49,324 [DEBUG][       Thread-250403][   transport.py][1871] : Compression: none
2025-06-13 09:44:49,324 [DEBUG][       Thread-250403][   transport.py][1871] : === End of kex handshake ===
2025-06-13 09:44:49,340 [DEBUG][       Thread-250403][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 09:44:49,341 [DEBUG][       Thread-250403][   transport.py][1871] : Switch to new keys ...
2025-06-13 09:44:49,341 [DEBUG][       Thread-250403][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 09:44:49,341 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 09:44:49,342 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 09:44:49,343 [DEBUG][       Thread-250403][   transport.py][1871] : userauth is OK
2025-06-13 09:44:49,367 [ INFO][       Thread-250403][   transport.py][1871] : Authentication (password) successful!
2025-06-13 09:44:49,368 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 09:44:50,003 [DEBUG][       Thread-250403][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 09:44:50,004 [DEBUG][       Thread-250403][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 09:44:50,045 [DEBUG][       Thread-250403][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 09:44:50,045 [DEBUG][       Thread-250403][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 09:44:50,048 [DEBUG][       Thread-250403][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 09:44:50,060 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 09:44:50,060 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 09:44:50,062 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 09:44:50,064 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 09:44:50,068 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 09:44:50,070 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 09:44:50,070 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 09:44:50,071 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 09:44:50,071 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.322510 -999.00   +8.00  19.32     56   +0.00 1 1 1 1 1   887    0 8.35 16.35 ----- 19.3 19.3 40.8 25.2 12.1 -27.9 10.8 -28.7 9.5 -28.3 10.8 -26.3
2025-06-13 09:44:50,071 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 09:44:50,071 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 09:44:50,071 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.322510
2025-06-13 09:44:50,071 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 09:44:50,072 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 09:44:50,072 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 09:44:50,072 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 09:44:50,072 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 09:44:50,072 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T09:44:43', tmtdew=9.33, humidity=51.9, cloud=0.0, wind=22.04, temperature=8.07, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T07:44:24.864', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 09:44:50,073 [DEBUG][       Thread-250403][   transport.py][1871] : EOF in transport thread
2025-06-13 09:44:50,156 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 09:44:50,167 [DEBUG][       Thread-250406][   transport.py][1871] : starting thread (client mode): 0x8636a950
2025-06-13 09:44:50,167 [DEBUG][       Thread-250406][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 09:44:50,182 [DEBUG][       Thread-250406][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 09:44:50,182 [ INFO][       Thread-250406][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 09:44:50,189 [DEBUG][       Thread-250406][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 09:44:50,190 [DEBUG][       Thread-250406][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 09:44:50,190 [DEBUG][       Thread-250406][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 09:44:50,190 [DEBUG][       Thread-250406][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:44:50,190 [DEBUG][       Thread-250406][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:44:50,190 [DEBUG][       Thread-250406][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:44:50,190 [DEBUG][       Thread-250406][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:44:50,190 [DEBUG][       Thread-250406][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 09:44:50,190 [DEBUG][       Thread-250406][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 09:44:50,190 [DEBUG][       Thread-250406][   transport.py][1871] : client lang: <none>
2025-06-13 09:44:50,190 [DEBUG][       Thread-250406][   transport.py][1871] : server lang: <none>
2025-06-13 09:44:50,190 [DEBUG][       Thread-250406][   transport.py][1871] : kex follows: False
2025-06-13 09:44:50,190 [DEBUG][       Thread-250406][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 09:44:50,190 [DEBUG][       Thread-250406][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 09:44:50,190 [DEBUG][       Thread-250406][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 09:44:50,190 [DEBUG][       Thread-250406][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 09:44:50,190 [DEBUG][       Thread-250406][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 09:44:50,190 [DEBUG][       Thread-250406][   transport.py][1871] : Compression: none
2025-06-13 09:44:50,190 [DEBUG][       Thread-250406][   transport.py][1871] : === End of kex handshake ===
2025-06-13 09:44:50,248 [DEBUG][       Thread-250406][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 09:44:50,249 [DEBUG][       Thread-250406][   transport.py][1871] : Switch to new keys ...
2025-06-13 09:44:50,249 [DEBUG][       Thread-250406][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 09:44:50,249 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 09:44:50,250 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 09:44:50,307 [DEBUG][       Thread-250406][   transport.py][1871] : userauth is OK
2025-06-13 09:44:50,307 [DEBUG][       Thread-250406][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 09:44:50,307 [DEBUG][       Thread-250406][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 09:44:50,307 [DEBUG][       Thread-250406][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 09:44:50,307 [DEBUG][       Thread-250406][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 09:44:50,325 [ INFO][       Thread-250406][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 09:44:50,325 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 09:44:50,326 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 09:44:51,305 [DEBUG][       Thread-250406][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 09:44:51,305 [DEBUG][       Thread-250406][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 09:44:51,365 [DEBUG][       Thread-250406][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 09:44:51,365 [DEBUG][       Thread-250406][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 09:44:51,378 [DEBUG][       Thread-250406][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 09:44:51,386 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 09:44:51,386 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 09:44:51,395 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 09:44:51,403 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 09:44:51,404 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 09:44:51,404 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 09:44:51,412 [DEBUG][       Thread-250406][   transport.py][1871] : EOF in transport thread
2025-06-13 09:44:55,313 [DEBUG][Thread-250408 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:45:01,414 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 09:45:01,415 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 09:45:01,415 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 09:45:01,415 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 09:45:01,936 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 9, 44, 43), 9.33, 51.9, 0.0, 22.04, 8.07, 0, 0, 0, 2, 0, 0),)
2025-06-13 09:45:01,936 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 09:44:43
2025-06-13 09:45:02,021 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 09:45:02,024 [DEBUG][       Thread-250409][   transport.py][1871] : starting thread (client mode): 0x86369cf0
2025-06-13 09:45:02,024 [DEBUG][       Thread-250409][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 09:45:02,038 [DEBUG][       Thread-250409][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 09:45:02,038 [ INFO][       Thread-250409][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 09:45:02,040 [DEBUG][       Thread-250409][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 09:45:02,040 [DEBUG][       Thread-250409][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 09:45:02,040 [DEBUG][       Thread-250409][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 09:45:02,040 [DEBUG][       Thread-250409][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:45:02,040 [DEBUG][       Thread-250409][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:45:02,040 [DEBUG][       Thread-250409][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:45:02,040 [DEBUG][       Thread-250409][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:45:02,040 [DEBUG][       Thread-250409][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 09:45:02,040 [DEBUG][       Thread-250409][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 09:45:02,040 [DEBUG][       Thread-250409][   transport.py][1871] : client lang: <none>
2025-06-13 09:45:02,040 [DEBUG][       Thread-250409][   transport.py][1871] : server lang: <none>
2025-06-13 09:45:02,040 [DEBUG][       Thread-250409][   transport.py][1871] : kex follows: False
2025-06-13 09:45:02,040 [DEBUG][       Thread-250409][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 09:45:02,040 [DEBUG][       Thread-250409][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 09:45:02,040 [DEBUG][       Thread-250409][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 09:45:02,040 [DEBUG][       Thread-250409][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 09:45:02,040 [DEBUG][       Thread-250409][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 09:45:02,040 [DEBUG][       Thread-250409][   transport.py][1871] : Compression: none
2025-06-13 09:45:02,040 [DEBUG][       Thread-250409][   transport.py][1871] : === End of kex handshake ===
2025-06-13 09:45:02,050 [DEBUG][       Thread-250409][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 09:45:02,050 [DEBUG][       Thread-250409][   transport.py][1871] : Switch to new keys ...
2025-06-13 09:45:02,050 [DEBUG][       Thread-250409][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 09:45:02,050 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 09:45:02,050 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 09:45:02,050 [DEBUG][       Thread-250409][   transport.py][1871] : userauth is OK
2025-06-13 09:45:02,074 [ INFO][       Thread-250409][   transport.py][1871] : Authentication (password) successful!
2025-06-13 09:45:02,074 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 09:45:02,640 [DEBUG][       Thread-250409][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 09:45:02,640 [DEBUG][       Thread-250409][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 09:45:02,680 [DEBUG][       Thread-250409][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 09:45:02,680 [DEBUG][       Thread-250409][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 09:45:02,682 [DEBUG][       Thread-250409][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 09:45:02,694 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 09:45:02,694 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 09:45:02,695 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 09:45:02,696 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 09:45:02,698 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 09:45:02,699 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 09:45:02,699 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 09:45:02,699 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 09:45:02,699 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.322510 -999.00   +8.00  19.32     56   +0.00 1 1 1 1 1   887    0 8.35 16.35 ----- 19.3 19.3 40.8 25.2 12.1 -27.9 10.8 -28.7 9.5 -28.3 10.8 -26.3
2025-06-13 09:45:02,699 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 09:45:02,699 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 09:45:02,699 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.322510
2025-06-13 09:45:02,700 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 09:45:02,700 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 09:45:02,700 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 09:45:02,700 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 09:45:02,700 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 09:45:02,700 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T09:44:43', tmtdew=9.33, humidity=51.9, cloud=0.0, wind=22.04, temperature=8.07, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T07:44:24.864', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 09:45:02,700 [DEBUG][       Thread-250409][   transport.py][1871] : EOF in transport thread
2025-06-13 09:45:02,774 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 09:45:02,786 [DEBUG][       Thread-250412][   transport.py][1871] : starting thread (client mode): 0x863c82b0
2025-06-13 09:45:02,786 [DEBUG][       Thread-250412][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 09:45:02,805 [DEBUG][       Thread-250412][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 09:45:02,805 [ INFO][       Thread-250412][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 09:45:02,815 [DEBUG][       Thread-250412][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 09:45:02,815 [DEBUG][       Thread-250412][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 09:45:02,815 [DEBUG][       Thread-250412][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 09:45:02,815 [DEBUG][       Thread-250412][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:45:02,815 [DEBUG][       Thread-250412][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:45:02,815 [DEBUG][       Thread-250412][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:45:02,815 [DEBUG][       Thread-250412][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:45:02,815 [DEBUG][       Thread-250412][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 09:45:02,815 [DEBUG][       Thread-250412][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 09:45:02,815 [DEBUG][       Thread-250412][   transport.py][1871] : client lang: <none>
2025-06-13 09:45:02,815 [DEBUG][       Thread-250412][   transport.py][1871] : server lang: <none>
2025-06-13 09:45:02,815 [DEBUG][       Thread-250412][   transport.py][1871] : kex follows: False
2025-06-13 09:45:02,815 [DEBUG][       Thread-250412][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 09:45:02,815 [DEBUG][       Thread-250412][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 09:45:02,815 [DEBUG][       Thread-250412][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 09:45:02,815 [DEBUG][       Thread-250412][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 09:45:02,815 [DEBUG][       Thread-250412][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 09:45:02,815 [DEBUG][       Thread-250412][   transport.py][1871] : Compression: none
2025-06-13 09:45:02,815 [DEBUG][       Thread-250412][   transport.py][1871] : === End of kex handshake ===
2025-06-13 09:45:02,873 [DEBUG][       Thread-250412][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 09:45:02,873 [DEBUG][       Thread-250412][   transport.py][1871] : Switch to new keys ...
2025-06-13 09:45:02,873 [DEBUG][       Thread-250412][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 09:45:02,873 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 09:45:02,874 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 09:45:02,931 [DEBUG][       Thread-250412][   transport.py][1871] : userauth is OK
2025-06-13 09:45:02,931 [DEBUG][       Thread-250412][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 09:45:02,931 [DEBUG][       Thread-250412][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 09:45:02,931 [DEBUG][       Thread-250412][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 09:45:02,931 [DEBUG][       Thread-250412][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 09:45:02,945 [ INFO][       Thread-250412][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 09:45:02,945 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 09:45:02,945 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 09:45:03,959 [DEBUG][       Thread-250412][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 09:45:03,959 [DEBUG][       Thread-250412][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 09:45:04,007 [DEBUG][       Thread-250412][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 09:45:04,007 [DEBUG][       Thread-250412][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 09:45:04,016 [DEBUG][       Thread-250412][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 09:45:04,025 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 09:45:04,025 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 09:45:04,034 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 09:45:04,043 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 09:45:04,043 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 09:45:04,044 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 09:45:04,056 [DEBUG][       Thread-250412][   transport.py][1871] : EOF in transport thread
2025-06-13 09:45:04,124 [DEBUG][Thread-250414 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:45:04,342 [DEBUG][Thread-250415 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:45:13,360 [DEBUG][Thread-250416 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:45:14,052 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 09:45:14,052 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 09:45:14,052 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 09:45:14,054 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 09:45:14,503 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 9, 44, 43), 9.33, 51.9, 0.0, 22.04, 8.07, 0, 0, 0, 2, 0, 0),)
2025-06-13 09:45:14,503 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 09:44:43
2025-06-13 09:45:14,583 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 09:45:14,588 [DEBUG][       Thread-250417][   transport.py][1871] : starting thread (client mode): 0x842040a0
2025-06-13 09:45:14,588 [DEBUG][       Thread-250417][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 09:45:14,608 [DEBUG][       Thread-250417][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 09:45:14,608 [ INFO][       Thread-250417][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 09:45:14,612 [DEBUG][       Thread-250417][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 09:45:14,612 [DEBUG][       Thread-250417][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 09:45:14,612 [DEBUG][       Thread-250417][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 09:45:14,612 [DEBUG][       Thread-250417][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:45:14,612 [DEBUG][       Thread-250417][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:45:14,612 [DEBUG][       Thread-250417][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:45:14,612 [DEBUG][       Thread-250417][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:45:14,612 [DEBUG][       Thread-250417][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 09:45:14,612 [DEBUG][       Thread-250417][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 09:45:14,612 [DEBUG][       Thread-250417][   transport.py][1871] : client lang: <none>
2025-06-13 09:45:14,612 [DEBUG][       Thread-250417][   transport.py][1871] : server lang: <none>
2025-06-13 09:45:14,612 [DEBUG][       Thread-250417][   transport.py][1871] : kex follows: False
2025-06-13 09:45:14,612 [DEBUG][       Thread-250417][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 09:45:14,612 [DEBUG][       Thread-250417][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 09:45:14,612 [DEBUG][       Thread-250417][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 09:45:14,612 [DEBUG][       Thread-250417][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 09:45:14,612 [DEBUG][       Thread-250417][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 09:45:14,613 [DEBUG][       Thread-250417][   transport.py][1871] : Compression: none
2025-06-13 09:45:14,613 [DEBUG][       Thread-250417][   transport.py][1871] : === End of kex handshake ===
2025-06-13 09:45:14,627 [DEBUG][       Thread-250417][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 09:45:14,627 [DEBUG][       Thread-250417][   transport.py][1871] : Switch to new keys ...
2025-06-13 09:45:14,628 [DEBUG][       Thread-250417][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 09:45:14,628 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 09:45:14,628 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 09:45:14,629 [DEBUG][       Thread-250417][   transport.py][1871] : userauth is OK
2025-06-13 09:45:14,654 [ INFO][       Thread-250417][   transport.py][1871] : Authentication (password) successful!
2025-06-13 09:45:14,655 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 09:45:15,307 [DEBUG][       Thread-250417][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 09:45:15,307 [DEBUG][       Thread-250417][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 09:45:15,349 [DEBUG][       Thread-250417][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 09:45:15,349 [DEBUG][       Thread-250417][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 09:45:15,352 [DEBUG][       Thread-250417][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 09:45:15,364 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 09:45:15,364 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 09:45:15,366 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 09:45:15,368 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 09:45:15,373 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 09:45:15,375 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 09:45:15,375 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 09:45:15,375 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 09:45:15,376 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.322857 -999.00   +8.00  22.98     56   -0.10 1 1 1 1 1   887    0 8.35 15.61 ----- 23.0 23.0 34.0 25.0 12.1 -28.5 10.8 -28.9 9.5 -28.2 10.8 -26.4
2025-06-13 09:45:15,376 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 09:45:15,376 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 09:45:15,376 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.322857
2025-06-13 09:45:15,376 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 09:45:15,377 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 09:45:15,377 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 09:45:15,377 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 09:45:15,377 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 09:45:15,377 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T09:44:43', tmtdew=9.33, humidity=51.9, cloud=0.0, wind=22.04, temperature=8.07, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T07:44:54.845', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 09:45:15,377 [DEBUG][       Thread-250417][   transport.py][1871] : EOF in transport thread
2025-06-13 09:45:15,463 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 09:45:15,479 [DEBUG][       Thread-250420][   transport.py][1871] : starting thread (client mode): 0x8636a4d0
2025-06-13 09:45:15,479 [DEBUG][       Thread-250420][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 09:45:15,494 [DEBUG][       Thread-250420][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 09:45:15,494 [ INFO][       Thread-250420][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 09:45:15,502 [DEBUG][       Thread-250420][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 09:45:15,502 [DEBUG][       Thread-250420][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 09:45:15,502 [DEBUG][       Thread-250420][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 09:45:15,502 [DEBUG][       Thread-250420][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:45:15,502 [DEBUG][       Thread-250420][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:45:15,502 [DEBUG][       Thread-250420][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:45:15,502 [DEBUG][       Thread-250420][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:45:15,502 [DEBUG][       Thread-250420][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 09:45:15,502 [DEBUG][       Thread-250420][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 09:45:15,502 [DEBUG][       Thread-250420][   transport.py][1871] : client lang: <none>
2025-06-13 09:45:15,502 [DEBUG][       Thread-250420][   transport.py][1871] : server lang: <none>
2025-06-13 09:45:15,502 [DEBUG][       Thread-250420][   transport.py][1871] : kex follows: False
2025-06-13 09:45:15,502 [DEBUG][       Thread-250420][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 09:45:15,502 [DEBUG][       Thread-250420][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 09:45:15,502 [DEBUG][       Thread-250420][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 09:45:15,502 [DEBUG][       Thread-250420][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 09:45:15,502 [DEBUG][       Thread-250420][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 09:45:15,502 [DEBUG][       Thread-250420][   transport.py][1871] : Compression: none
2025-06-13 09:45:15,502 [DEBUG][       Thread-250420][   transport.py][1871] : === End of kex handshake ===
2025-06-13 09:45:15,579 [DEBUG][       Thread-250420][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 09:45:15,579 [DEBUG][       Thread-250420][   transport.py][1871] : Switch to new keys ...
2025-06-13 09:45:15,579 [DEBUG][       Thread-250420][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 09:45:15,579 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 09:45:15,579 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 09:45:15,642 [DEBUG][       Thread-250420][   transport.py][1871] : userauth is OK
2025-06-13 09:45:15,642 [DEBUG][       Thread-250420][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 09:45:15,642 [DEBUG][       Thread-250420][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 09:45:15,642 [DEBUG][       Thread-250420][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 09:45:15,642 [DEBUG][       Thread-250420][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 09:45:15,658 [ INFO][       Thread-250420][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 09:45:15,658 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 09:45:15,658 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 09:45:16,662 [DEBUG][       Thread-250420][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 09:45:16,662 [DEBUG][       Thread-250420][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 09:45:16,711 [DEBUG][       Thread-250420][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 09:45:16,711 [DEBUG][       Thread-250420][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 09:45:16,720 [DEBUG][       Thread-250420][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 09:45:16,728 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 09:45:16,728 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 09:45:16,736 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 09:45:16,744 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 09:45:16,744 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 09:45:16,744 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 09:45:16,752 [DEBUG][       Thread-250420][   transport.py][1871] : EOF in transport thread
2025-06-13 09:45:20,402 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:45:20,403 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:45:22,379 [DEBUG][Thread-250422 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:45:26,252 [DEBUG][Thread-250423 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:45:26,754 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 09:45:26,754 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 09:45:26,754 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 09:45:26,757 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 09:45:27,219 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 9, 45, 14), 9.41, 51.49, 0.0, 21.44, 8.17, 0, 0, 0, 2, 0, 0),)
2025-06-13 09:45:27,219 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 09:45:14
2025-06-13 09:45:27,298 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 09:45:27,302 [DEBUG][       Thread-250424][   transport.py][1871] : starting thread (client mode): 0x84204c40
2025-06-13 09:45:27,302 [DEBUG][       Thread-250424][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 09:45:27,322 [DEBUG][       Thread-250424][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 09:45:27,323 [ INFO][       Thread-250424][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 09:45:27,326 [DEBUG][       Thread-250424][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 09:45:27,326 [DEBUG][       Thread-250424][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 09:45:27,326 [DEBUG][       Thread-250424][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 09:45:27,326 [DEBUG][       Thread-250424][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:45:27,326 [DEBUG][       Thread-250424][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:45:27,326 [DEBUG][       Thread-250424][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:45:27,326 [DEBUG][       Thread-250424][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:45:27,326 [DEBUG][       Thread-250424][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 09:45:27,326 [DEBUG][       Thread-250424][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 09:45:27,326 [DEBUG][       Thread-250424][   transport.py][1871] : client lang: <none>
2025-06-13 09:45:27,326 [DEBUG][       Thread-250424][   transport.py][1871] : server lang: <none>
2025-06-13 09:45:27,326 [DEBUG][       Thread-250424][   transport.py][1871] : kex follows: False
2025-06-13 09:45:27,326 [DEBUG][       Thread-250424][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 09:45:27,326 [DEBUG][       Thread-250424][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 09:45:27,326 [DEBUG][       Thread-250424][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 09:45:27,327 [DEBUG][       Thread-250424][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 09:45:27,327 [DEBUG][       Thread-250424][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 09:45:27,327 [DEBUG][       Thread-250424][   transport.py][1871] : Compression: none
2025-06-13 09:45:27,327 [DEBUG][       Thread-250424][   transport.py][1871] : === End of kex handshake ===
2025-06-13 09:45:27,332 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:45:27,333 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:45:27,345 [DEBUG][       Thread-250424][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 09:45:27,345 [DEBUG][       Thread-250424][   transport.py][1871] : Switch to new keys ...
2025-06-13 09:45:27,345 [DEBUG][       Thread-250424][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 09:45:27,345 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 09:45:27,345 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 09:45:27,346 [DEBUG][       Thread-250424][   transport.py][1871] : userauth is OK
2025-06-13 09:45:27,371 [ INFO][       Thread-250424][   transport.py][1871] : Authentication (password) successful!
2025-06-13 09:45:27,372 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 09:45:28,019 [DEBUG][       Thread-250424][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 09:45:28,019 [DEBUG][       Thread-250424][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 09:45:28,065 [DEBUG][       Thread-250424][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 09:45:28,065 [DEBUG][       Thread-250424][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 09:45:28,068 [DEBUG][       Thread-250424][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 09:45:28,079 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 09:45:28,079 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 09:45:28,081 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 09:45:28,082 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 09:45:28,088 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 09:45:28,090 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 09:45:28,090 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 09:45:28,090 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 09:45:28,090 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.322857 -999.00   +8.00  22.98     56   -0.10 1 1 1 1 1   887    0 8.35 15.61 ----- 23.0 23.0 34.0 25.0 12.1 -28.5 10.8 -28.9 9.5 -28.2 10.8 -26.4
2025-06-13 09:45:28,091 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 09:45:28,091 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 09:45:28,091 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.322857
2025-06-13 09:45:28,091 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 09:45:28,091 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 09:45:28,092 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 09:45:28,092 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 09:45:28,092 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 09:45:28,092 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T09:45:14', tmtdew=9.41, humidity=51.49, cloud=0.0, wind=21.44, temperature=8.17, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T07:44:54.845', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 09:45:28,092 [DEBUG][       Thread-250424][   transport.py][1871] : EOF in transport thread
2025-06-13 09:45:28,175 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 09:45:31,398 [DEBUG][Thread-250427 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:45:40,426 [DEBUG][Thread-250428 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:45:49,445 [DEBUG][Thread-250429 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:45:58,465 [DEBUG][Thread-250430 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:46:04,173 [DEBUG][Thread-250431 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:46:07,484 [DEBUG][Thread-250432 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:46:16,501 [DEBUG][Thread-250433 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:46:20,543 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:46:20,544 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:46:25,517 [DEBUG][Thread-250434 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:46:27,406 [DEBUG][Thread-250435 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:46:28,484 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:46:28,485 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:46:34,536 [DEBUG][Thread-250436 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:46:43,557 [DEBUG][Thread-250437 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:46:52,575 [DEBUG][Thread-250438 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:47:01,592 [DEBUG][Thread-250439 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:47:04,224 [DEBUG][Thread-250440 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:47:10,612 [DEBUG][Thread-250441 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:47:19,629 [DEBUG][Thread-250442 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:47:20,684 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:47:20,685 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:47:28,533 [DEBUG][Thread-250443 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:47:28,647 [DEBUG][Thread-250444 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:47:29,607 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:47:29,609 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:47:37,665 [DEBUG][Thread-250445 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:47:37,876 [WARNING][ poll_weather_worker][      driver.py][ 286] : Unable to open ssh connection for writing weather state to io.saao.ac.za: [Errno 110] Connection timed out
2025-06-13 09:47:46,688 [DEBUG][Thread-250446 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:47:47,886 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 09:47:47,887 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 09:47:47,887 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 09:47:47,889 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 09:47:48,377 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 9, 47, 21), 9.45, 51.27, 0.0, 21.26, 8.24, 0, 0, 0, 2, 0, 0),)
2025-06-13 09:47:48,377 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 09:47:21
2025-06-13 09:47:48,459 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 09:47:48,464 [DEBUG][       Thread-250447][   transport.py][1871] : starting thread (client mode): 0x84206140
2025-06-13 09:47:48,464 [DEBUG][       Thread-250447][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 09:47:48,485 [DEBUG][       Thread-250447][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 09:47:48,485 [ INFO][       Thread-250447][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 09:47:48,488 [DEBUG][       Thread-250447][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 09:47:48,488 [DEBUG][       Thread-250447][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 09:47:48,489 [DEBUG][       Thread-250447][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 09:47:48,489 [DEBUG][       Thread-250447][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:47:48,489 [DEBUG][       Thread-250447][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:47:48,489 [DEBUG][       Thread-250447][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:47:48,489 [DEBUG][       Thread-250447][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:47:48,489 [DEBUG][       Thread-250447][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 09:47:48,489 [DEBUG][       Thread-250447][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 09:47:48,489 [DEBUG][       Thread-250447][   transport.py][1871] : client lang: <none>
2025-06-13 09:47:48,489 [DEBUG][       Thread-250447][   transport.py][1871] : server lang: <none>
2025-06-13 09:47:48,489 [DEBUG][       Thread-250447][   transport.py][1871] : kex follows: False
2025-06-13 09:47:48,489 [DEBUG][       Thread-250447][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 09:47:48,489 [DEBUG][       Thread-250447][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 09:47:48,489 [DEBUG][       Thread-250447][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 09:47:48,489 [DEBUG][       Thread-250447][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 09:47:48,489 [DEBUG][       Thread-250447][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 09:47:48,489 [DEBUG][       Thread-250447][   transport.py][1871] : Compression: none
2025-06-13 09:47:48,489 [DEBUG][       Thread-250447][   transport.py][1871] : === End of kex handshake ===
2025-06-13 09:47:48,506 [DEBUG][       Thread-250447][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 09:47:48,506 [DEBUG][       Thread-250447][   transport.py][1871] : Switch to new keys ...
2025-06-13 09:47:48,507 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 09:47:48,507 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 09:47:48,508 [DEBUG][       Thread-250447][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 09:47:48,509 [DEBUG][       Thread-250447][   transport.py][1871] : userauth is OK
2025-06-13 09:47:48,534 [ INFO][       Thread-250447][   transport.py][1871] : Authentication (password) successful!
2025-06-13 09:47:48,534 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 09:47:49,350 [DEBUG][       Thread-250447][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 09:47:49,351 [DEBUG][       Thread-250447][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 09:47:49,393 [DEBUG][       Thread-250447][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 09:47:49,393 [DEBUG][       Thread-250447][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 09:47:49,396 [DEBUG][       Thread-250447][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 09:47:49,407 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 09:47:49,407 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 09:47:49,409 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 09:47:49,411 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 09:47:49,416 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 09:47:49,418 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 09:47:49,418 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 09:47:49,419 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 09:47:49,419 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.324246 -999.00   +8.00  20.57     56   +0.00 1 1 1 1 1   887    0 8.32 17.02 ----- 20.6 20.6 38.0 27.6 12.1 -28.5 10.8 -29.2 9.6 -27.8 10.8 -26.4
2025-06-13 09:47:49,419 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 09:47:49,419 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 09:47:49,419 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.324246
2025-06-13 09:47:49,419 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 09:47:49,420 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 09:47:49,420 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 09:47:49,420 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 09:47:49,420 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 09:47:49,420 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T09:47:21', tmtdew=9.45, humidity=51.27, cloud=0.0, wind=21.26, temperature=8.24, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T07:46:54.854', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 09:47:49,421 [DEBUG][       Thread-250447][   transport.py][1871] : EOF in transport thread
2025-06-13 09:47:49,504 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 09:47:49,516 [DEBUG][       Thread-250450][   transport.py][1871] : starting thread (client mode): 0x867ffdc0
2025-06-13 09:47:49,516 [DEBUG][       Thread-250450][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 09:47:49,536 [DEBUG][       Thread-250450][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 09:47:49,537 [ INFO][       Thread-250450][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 09:47:49,553 [DEBUG][       Thread-250450][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 09:47:49,553 [DEBUG][       Thread-250450][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 09:47:49,553 [DEBUG][       Thread-250450][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 09:47:49,553 [DEBUG][       Thread-250450][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:47:49,553 [DEBUG][       Thread-250450][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:47:49,554 [DEBUG][       Thread-250450][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:47:49,554 [DEBUG][       Thread-250450][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:47:49,554 [DEBUG][       Thread-250450][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 09:47:49,554 [DEBUG][       Thread-250450][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 09:47:49,554 [DEBUG][       Thread-250450][   transport.py][1871] : client lang: <none>
2025-06-13 09:47:49,554 [DEBUG][       Thread-250450][   transport.py][1871] : server lang: <none>
2025-06-13 09:47:49,554 [DEBUG][       Thread-250450][   transport.py][1871] : kex follows: False
2025-06-13 09:47:49,554 [DEBUG][       Thread-250450][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 09:47:49,554 [DEBUG][       Thread-250450][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 09:47:49,554 [DEBUG][       Thread-250450][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 09:47:49,554 [DEBUG][       Thread-250450][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 09:47:49,554 [DEBUG][       Thread-250450][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 09:47:49,554 [DEBUG][       Thread-250450][   transport.py][1871] : Compression: none
2025-06-13 09:47:49,554 [DEBUG][       Thread-250450][   transport.py][1871] : === End of kex handshake ===
2025-06-13 09:47:49,608 [DEBUG][       Thread-250450][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 09:47:49,608 [DEBUG][       Thread-250450][   transport.py][1871] : Switch to new keys ...
2025-06-13 09:47:49,609 [DEBUG][       Thread-250450][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 09:47:49,609 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 09:47:49,609 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 09:47:49,676 [DEBUG][       Thread-250450][   transport.py][1871] : userauth is OK
2025-06-13 09:47:49,676 [DEBUG][       Thread-250450][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 09:47:49,676 [DEBUG][       Thread-250450][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 09:47:49,676 [DEBUG][       Thread-250450][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 09:47:49,676 [DEBUG][       Thread-250450][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 09:47:49,693 [ INFO][       Thread-250450][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 09:47:49,693 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 09:47:49,693 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 09:47:50,745 [DEBUG][       Thread-250450][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 09:47:50,745 [DEBUG][       Thread-250450][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 09:47:50,795 [DEBUG][       Thread-250450][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 09:47:50,796 [DEBUG][       Thread-250450][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 09:47:50,805 [DEBUG][       Thread-250450][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 09:47:50,813 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 09:47:50,813 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 09:47:50,823 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 09:47:50,835 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 09:47:50,835 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 09:47:50,835 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 09:47:50,843 [DEBUG][       Thread-250450][   transport.py][1871] : EOF in transport thread
2025-06-13 09:47:55,705 [DEBUG][Thread-250452 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:48:00,846 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 09:48:00,846 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 09:48:00,846 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 09:48:00,848 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 09:48:01,328 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 9, 47, 53), 9.47, 51.2, 0.0, 18.85, 8.21, 0, 0, 0, 2, 0, 0),)
2025-06-13 09:48:01,328 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 09:47:53
2025-06-13 09:48:01,411 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 09:48:01,416 [DEBUG][       Thread-250453][   transport.py][1871] : starting thread (client mode): 0x84205cc0
2025-06-13 09:48:01,416 [DEBUG][       Thread-250453][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 09:48:01,438 [DEBUG][       Thread-250453][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 09:48:01,438 [ INFO][       Thread-250453][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 09:48:01,441 [DEBUG][       Thread-250453][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 09:48:01,442 [DEBUG][       Thread-250453][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 09:48:01,442 [DEBUG][       Thread-250453][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 09:48:01,442 [DEBUG][       Thread-250453][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:48:01,442 [DEBUG][       Thread-250453][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:48:01,442 [DEBUG][       Thread-250453][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:48:01,442 [DEBUG][       Thread-250453][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:48:01,442 [DEBUG][       Thread-250453][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 09:48:01,442 [DEBUG][       Thread-250453][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 09:48:01,442 [DEBUG][       Thread-250453][   transport.py][1871] : client lang: <none>
2025-06-13 09:48:01,442 [DEBUG][       Thread-250453][   transport.py][1871] : server lang: <none>
2025-06-13 09:48:01,442 [DEBUG][       Thread-250453][   transport.py][1871] : kex follows: False
2025-06-13 09:48:01,442 [DEBUG][       Thread-250453][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 09:48:01,442 [DEBUG][       Thread-250453][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 09:48:01,442 [DEBUG][       Thread-250453][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 09:48:01,442 [DEBUG][       Thread-250453][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 09:48:01,442 [DEBUG][       Thread-250453][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 09:48:01,442 [DEBUG][       Thread-250453][   transport.py][1871] : Compression: none
2025-06-13 09:48:01,442 [DEBUG][       Thread-250453][   transport.py][1871] : === End of kex handshake ===
2025-06-13 09:48:01,460 [DEBUG][       Thread-250453][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 09:48:01,460 [DEBUG][       Thread-250453][   transport.py][1871] : Switch to new keys ...
2025-06-13 09:48:01,460 [DEBUG][       Thread-250453][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 09:48:01,460 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 09:48:01,460 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 09:48:01,461 [DEBUG][       Thread-250453][   transport.py][1871] : userauth is OK
2025-06-13 09:48:01,485 [ INFO][       Thread-250453][   transport.py][1871] : Authentication (password) successful!
2025-06-13 09:48:01,486 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 09:48:02,065 [DEBUG][       Thread-250453][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 09:48:02,065 [DEBUG][       Thread-250453][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 09:48:02,108 [DEBUG][       Thread-250453][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 09:48:02,108 [DEBUG][       Thread-250453][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 09:48:02,111 [DEBUG][       Thread-250453][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 09:48:02,124 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 09:48:02,124 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 09:48:02,125 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 09:48:02,126 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 09:48:02,128 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 09:48:02,129 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 09:48:02,129 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 09:48:02,130 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 09:48:02,130 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.324941 -999.00   +8.10  18.84     56   -0.10 1 1 1 1 1   887    0 8.42 16.80 ----- 18.8 18.8 47.4 23.9 12.1 -28.3 10.9 -28.6 9.6 -27.5 10.9 -26.3
2025-06-13 09:48:02,130 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 09:48:02,130 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 09:48:02,130 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.324941
2025-06-13 09:48:02,130 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 09:48:02,130 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 09:48:02,130 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 09:48:02,130 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 09:48:02,130 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 09:48:02,130 [DEBUG][       Thread-250453][   transport.py][1871] : EOF in transport thread
2025-06-13 09:48:02,130 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T09:47:53', tmtdew=9.47, humidity=51.2, cloud=0.0, wind=18.85, temperature=8.21, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T07:47:54.902', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 09:48:02,203 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 09:48:02,213 [DEBUG][       Thread-250456][   transport.py][1871] : starting thread (client mode): 0x84206bc0
2025-06-13 09:48:02,213 [DEBUG][       Thread-250456][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 09:48:02,227 [DEBUG][       Thread-250456][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 09:48:02,227 [ INFO][       Thread-250456][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 09:48:02,235 [DEBUG][       Thread-250456][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 09:48:02,235 [DEBUG][       Thread-250456][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 09:48:02,235 [DEBUG][       Thread-250456][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 09:48:02,235 [DEBUG][       Thread-250456][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:48:02,235 [DEBUG][       Thread-250456][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:48:02,235 [DEBUG][       Thread-250456][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:48:02,235 [DEBUG][       Thread-250456][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:48:02,235 [DEBUG][       Thread-250456][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 09:48:02,235 [DEBUG][       Thread-250456][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 09:48:02,235 [DEBUG][       Thread-250456][   transport.py][1871] : client lang: <none>
2025-06-13 09:48:02,235 [DEBUG][       Thread-250456][   transport.py][1871] : server lang: <none>
2025-06-13 09:48:02,235 [DEBUG][       Thread-250456][   transport.py][1871] : kex follows: False
2025-06-13 09:48:02,235 [DEBUG][       Thread-250456][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 09:48:02,236 [DEBUG][       Thread-250456][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 09:48:02,236 [DEBUG][       Thread-250456][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 09:48:02,236 [DEBUG][       Thread-250456][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 09:48:02,236 [DEBUG][       Thread-250456][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 09:48:02,236 [DEBUG][       Thread-250456][   transport.py][1871] : Compression: none
2025-06-13 09:48:02,236 [DEBUG][       Thread-250456][   transport.py][1871] : === End of kex handshake ===
2025-06-13 09:48:02,294 [DEBUG][       Thread-250456][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 09:48:02,295 [DEBUG][       Thread-250456][   transport.py][1871] : Switch to new keys ...
2025-06-13 09:48:02,295 [DEBUG][       Thread-250456][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 09:48:02,295 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 09:48:02,296 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 09:48:02,364 [DEBUG][       Thread-250456][   transport.py][1871] : userauth is OK
2025-06-13 09:48:02,364 [DEBUG][       Thread-250456][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 09:48:02,364 [DEBUG][       Thread-250456][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 09:48:02,364 [DEBUG][       Thread-250456][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 09:48:02,364 [DEBUG][       Thread-250456][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 09:48:02,384 [ INFO][       Thread-250456][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 09:48:02,385 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 09:48:02,385 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 09:48:03,389 [DEBUG][       Thread-250456][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 09:48:03,389 [DEBUG][       Thread-250456][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 09:48:03,439 [DEBUG][       Thread-250456][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 09:48:03,440 [DEBUG][       Thread-250456][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 09:48:03,448 [DEBUG][       Thread-250456][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 09:48:03,457 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 09:48:03,457 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 09:48:03,468 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 09:48:03,477 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 09:48:03,477 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 09:48:03,477 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 09:48:03,485 [DEBUG][       Thread-250456][   transport.py][1871] : EOF in transport thread
2025-06-13 09:48:04,293 [DEBUG][Thread-250458 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:48:04,734 [DEBUG][Thread-250459 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:48:13,484 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 09:48:13,484 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 09:48:13,484 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 09:48:13,485 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 09:48:13,762 [DEBUG][Thread-250460 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:48:13,965 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 9, 47, 53), 9.47, 51.2, 0.0, 18.85, 8.21, 0, 0, 0, 2, 0, 0),)
2025-06-13 09:48:13,965 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 09:47:53
2025-06-13 09:48:14,049 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 09:48:14,056 [DEBUG][       Thread-250461][   transport.py][1871] : starting thread (client mode): 0x84204b80
2025-06-13 09:48:14,056 [DEBUG][       Thread-250461][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 09:48:14,077 [DEBUG][       Thread-250461][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 09:48:14,077 [ INFO][       Thread-250461][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 09:48:14,080 [DEBUG][       Thread-250461][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 09:48:14,080 [DEBUG][       Thread-250461][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 09:48:14,080 [DEBUG][       Thread-250461][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 09:48:14,080 [DEBUG][       Thread-250461][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:48:14,080 [DEBUG][       Thread-250461][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:48:14,080 [DEBUG][       Thread-250461][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:48:14,080 [DEBUG][       Thread-250461][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:48:14,080 [DEBUG][       Thread-250461][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 09:48:14,080 [DEBUG][       Thread-250461][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 09:48:14,080 [DEBUG][       Thread-250461][   transport.py][1871] : client lang: <none>
2025-06-13 09:48:14,080 [DEBUG][       Thread-250461][   transport.py][1871] : server lang: <none>
2025-06-13 09:48:14,080 [DEBUG][       Thread-250461][   transport.py][1871] : kex follows: False
2025-06-13 09:48:14,080 [DEBUG][       Thread-250461][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 09:48:14,080 [DEBUG][       Thread-250461][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 09:48:14,080 [DEBUG][       Thread-250461][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 09:48:14,080 [DEBUG][       Thread-250461][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 09:48:14,080 [DEBUG][       Thread-250461][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 09:48:14,080 [DEBUG][       Thread-250461][   transport.py][1871] : Compression: none
2025-06-13 09:48:14,080 [DEBUG][       Thread-250461][   transport.py][1871] : === End of kex handshake ===
2025-06-13 09:48:14,096 [DEBUG][       Thread-250461][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 09:48:14,096 [DEBUG][       Thread-250461][   transport.py][1871] : Switch to new keys ...
2025-06-13 09:48:14,096 [DEBUG][       Thread-250461][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 09:48:14,096 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 09:48:14,096 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 09:48:14,097 [DEBUG][       Thread-250461][   transport.py][1871] : userauth is OK
2025-06-13 09:48:14,110 [ INFO][       Thread-250461][   transport.py][1871] : Authentication (password) successful!
2025-06-13 09:48:14,110 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 09:48:14,736 [DEBUG][       Thread-250461][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 09:48:14,737 [DEBUG][       Thread-250461][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 09:48:14,785 [DEBUG][       Thread-250461][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 09:48:14,785 [DEBUG][       Thread-250461][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 09:48:14,788 [DEBUG][       Thread-250461][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 09:48:14,799 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 09:48:14,799 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 09:48:14,801 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 09:48:14,803 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 09:48:14,808 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 09:48:14,810 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 09:48:14,810 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 09:48:14,811 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 09:48:14,811 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.324941 -999.00   +8.10  18.84     56   -0.10 1 1 1 1 1   887    0 8.42 16.80 ----- 18.8 18.8 47.4 23.9 12.1 -28.3 10.9 -28.6 9.6 -27.5 10.9 -26.3
2025-06-13 09:48:14,811 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 09:48:14,811 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 09:48:14,811 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.324941
2025-06-13 09:48:14,812 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 09:48:14,812 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 09:48:14,812 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 09:48:14,813 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 09:48:14,813 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 09:48:14,813 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T09:47:53', tmtdew=9.47, humidity=51.2, cloud=0.0, wind=18.85, temperature=8.21, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T07:47:54.902', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 09:48:14,814 [DEBUG][       Thread-250461][   transport.py][1871] : EOF in transport thread
2025-06-13 09:48:14,894 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 09:48:14,905 [DEBUG][       Thread-250464][   transport.py][1871] : starting thread (client mode): 0x867ff250
2025-06-13 09:48:14,905 [DEBUG][       Thread-250464][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 09:48:14,920 [DEBUG][       Thread-250464][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 09:48:14,920 [ INFO][       Thread-250464][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 09:48:14,928 [DEBUG][       Thread-250464][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 09:48:14,928 [DEBUG][       Thread-250464][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 09:48:14,928 [DEBUG][       Thread-250464][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 09:48:14,928 [DEBUG][       Thread-250464][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:48:14,928 [DEBUG][       Thread-250464][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:48:14,928 [DEBUG][       Thread-250464][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:48:14,928 [DEBUG][       Thread-250464][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:48:14,928 [DEBUG][       Thread-250464][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 09:48:14,928 [DEBUG][       Thread-250464][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 09:48:14,928 [DEBUG][       Thread-250464][   transport.py][1871] : client lang: <none>
2025-06-13 09:48:14,928 [DEBUG][       Thread-250464][   transport.py][1871] : server lang: <none>
2025-06-13 09:48:14,928 [DEBUG][       Thread-250464][   transport.py][1871] : kex follows: False
2025-06-13 09:48:14,928 [DEBUG][       Thread-250464][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 09:48:14,928 [DEBUG][       Thread-250464][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 09:48:14,929 [DEBUG][       Thread-250464][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 09:48:14,929 [DEBUG][       Thread-250464][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 09:48:14,929 [DEBUG][       Thread-250464][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 09:48:14,929 [DEBUG][       Thread-250464][   transport.py][1871] : Compression: none
2025-06-13 09:48:14,929 [DEBUG][       Thread-250464][   transport.py][1871] : === End of kex handshake ===
2025-06-13 09:48:14,992 [DEBUG][       Thread-250464][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 09:48:14,993 [DEBUG][       Thread-250464][   transport.py][1871] : Switch to new keys ...
2025-06-13 09:48:14,993 [DEBUG][       Thread-250464][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 09:48:14,993 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 09:48:14,994 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 09:48:15,058 [DEBUG][       Thread-250464][   transport.py][1871] : userauth is OK
2025-06-13 09:48:15,058 [DEBUG][       Thread-250464][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 09:48:15,059 [DEBUG][       Thread-250464][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 09:48:15,059 [DEBUG][       Thread-250464][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 09:48:15,059 [DEBUG][       Thread-250464][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 09:48:15,077 [ INFO][       Thread-250464][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 09:48:15,077 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 09:48:15,077 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 09:48:16,084 [DEBUG][       Thread-250464][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 09:48:16,084 [DEBUG][       Thread-250464][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 09:48:16,140 [DEBUG][       Thread-250464][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 09:48:16,140 [DEBUG][       Thread-250464][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 09:48:16,149 [DEBUG][       Thread-250464][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 09:48:16,158 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 09:48:16,158 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 09:48:16,166 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 09:48:16,175 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 09:48:16,175 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 09:48:16,176 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 09:48:16,183 [DEBUG][       Thread-250464][   transport.py][1871] : EOF in transport thread
2025-06-13 09:48:20,824 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:48:20,824 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:48:22,778 [DEBUG][Thread-250466 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:48:26,186 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 09:48:26,186 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 09:48:26,186 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 09:48:26,187 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 09:48:26,688 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 9, 47, 53), 9.47, 51.2, 0.0, 18.85, 8.21, 0, 0, 0, 2, 0, 0),)
2025-06-13 09:48:26,688 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 09:47:53
2025-06-13 09:48:26,775 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 09:48:26,779 [DEBUG][       Thread-250467][   transport.py][1871] : starting thread (client mode): 0x84205e40
2025-06-13 09:48:26,779 [DEBUG][       Thread-250467][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 09:48:26,796 [DEBUG][       Thread-250467][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 09:48:26,796 [ INFO][       Thread-250467][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 09:48:26,797 [DEBUG][       Thread-250467][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 09:48:26,797 [DEBUG][       Thread-250467][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 09:48:26,797 [DEBUG][       Thread-250467][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 09:48:26,797 [DEBUG][       Thread-250467][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:48:26,797 [DEBUG][       Thread-250467][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:48:26,797 [DEBUG][       Thread-250467][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:48:26,797 [DEBUG][       Thread-250467][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:48:26,797 [DEBUG][       Thread-250467][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 09:48:26,797 [DEBUG][       Thread-250467][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 09:48:26,797 [DEBUG][       Thread-250467][   transport.py][1871] : client lang: <none>
2025-06-13 09:48:26,797 [DEBUG][       Thread-250467][   transport.py][1871] : server lang: <none>
2025-06-13 09:48:26,797 [DEBUG][       Thread-250467][   transport.py][1871] : kex follows: False
2025-06-13 09:48:26,797 [DEBUG][       Thread-250467][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 09:48:26,797 [DEBUG][       Thread-250467][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 09:48:26,797 [DEBUG][       Thread-250467][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 09:48:26,797 [DEBUG][       Thread-250467][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 09:48:26,797 [DEBUG][       Thread-250467][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 09:48:26,797 [DEBUG][       Thread-250467][   transport.py][1871] : Compression: none
2025-06-13 09:48:26,797 [DEBUG][       Thread-250467][   transport.py][1871] : === End of kex handshake ===
2025-06-13 09:48:26,804 [DEBUG][       Thread-250467][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 09:48:26,804 [DEBUG][       Thread-250467][   transport.py][1871] : Switch to new keys ...
2025-06-13 09:48:26,804 [DEBUG][       Thread-250467][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 09:48:26,804 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 09:48:26,804 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 09:48:26,805 [DEBUG][       Thread-250467][   transport.py][1871] : userauth is OK
2025-06-13 09:48:26,828 [ INFO][       Thread-250467][   transport.py][1871] : Authentication (password) successful!
2025-06-13 09:48:26,829 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 09:48:27,635 [DEBUG][       Thread-250467][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 09:48:27,636 [DEBUG][       Thread-250467][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 09:48:27,677 [DEBUG][       Thread-250467][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 09:48:27,677 [DEBUG][       Thread-250467][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 09:48:27,679 [DEBUG][       Thread-250467][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 09:48:27,691 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 09:48:27,692 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 09:48:27,693 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 09:48:27,695 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 09:48:27,701 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 09:48:27,702 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 09:48:27,703 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 09:48:27,703 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 09:48:27,703 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.324941 -999.00   +8.10  18.84     56   -0.10 1 1 1 1 1   887    0 8.42 16.80 ----- 18.8 18.8 47.4 23.9 12.1 -28.3 10.9 -28.6 9.6 -27.5 10.9 -26.3
2025-06-13 09:48:27,704 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 09:48:27,704 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 09:48:27,704 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.324941
2025-06-13 09:48:27,704 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 09:48:27,705 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 09:48:27,705 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 09:48:27,705 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 09:48:27,705 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 09:48:27,705 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T09:47:53', tmtdew=9.47, humidity=51.2, cloud=0.0, wind=18.85, temperature=8.21, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T07:47:54.902', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 09:48:27,706 [DEBUG][       Thread-250467][   transport.py][1871] : EOF in transport thread
2025-06-13 09:48:27,790 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 09:48:27,800 [DEBUG][       Thread-250470][   transport.py][1871] : starting thread (client mode): 0x863bd600
2025-06-13 09:48:27,800 [DEBUG][       Thread-250470][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 09:48:27,819 [DEBUG][       Thread-250470][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 09:48:27,819 [ INFO][       Thread-250470][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 09:48:27,829 [DEBUG][       Thread-250470][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 09:48:27,829 [DEBUG][       Thread-250470][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 09:48:27,829 [DEBUG][       Thread-250470][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 09:48:27,829 [DEBUG][       Thread-250470][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:48:27,830 [DEBUG][       Thread-250470][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:48:27,830 [DEBUG][       Thread-250470][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:48:27,830 [DEBUG][       Thread-250470][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:48:27,830 [DEBUG][       Thread-250470][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 09:48:27,830 [DEBUG][       Thread-250470][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 09:48:27,830 [DEBUG][       Thread-250470][   transport.py][1871] : client lang: <none>
2025-06-13 09:48:27,830 [DEBUG][       Thread-250470][   transport.py][1871] : server lang: <none>
2025-06-13 09:48:27,830 [DEBUG][       Thread-250470][   transport.py][1871] : kex follows: False
2025-06-13 09:48:27,830 [DEBUG][       Thread-250470][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 09:48:27,830 [DEBUG][       Thread-250470][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 09:48:27,830 [DEBUG][       Thread-250470][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 09:48:27,830 [DEBUG][       Thread-250470][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 09:48:27,830 [DEBUG][       Thread-250470][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 09:48:27,830 [DEBUG][       Thread-250470][   transport.py][1871] : Compression: none
2025-06-13 09:48:27,830 [DEBUG][       Thread-250470][   transport.py][1871] : === End of kex handshake ===
2025-06-13 09:48:27,886 [DEBUG][       Thread-250470][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 09:48:27,887 [DEBUG][       Thread-250470][   transport.py][1871] : Switch to new keys ...
2025-06-13 09:48:27,887 [DEBUG][       Thread-250470][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 09:48:27,887 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 09:48:27,888 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 09:48:27,945 [DEBUG][       Thread-250470][   transport.py][1871] : userauth is OK
2025-06-13 09:48:27,945 [DEBUG][       Thread-250470][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 09:48:27,945 [DEBUG][       Thread-250470][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 09:48:27,945 [DEBUG][       Thread-250470][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 09:48:27,946 [DEBUG][       Thread-250470][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 09:48:27,964 [ INFO][       Thread-250470][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 09:48:27,965 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 09:48:27,965 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 09:48:29,071 [DEBUG][       Thread-250470][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 09:48:29,071 [DEBUG][       Thread-250470][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 09:48:29,122 [DEBUG][       Thread-250470][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 09:48:29,122 [DEBUG][       Thread-250470][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 09:48:29,131 [DEBUG][       Thread-250470][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 09:48:29,139 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 09:48:29,139 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 09:48:29,160 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 09:48:29,168 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 09:48:29,168 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 09:48:29,169 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 09:48:29,177 [DEBUG][       Thread-250470][   transport.py][1871] : EOF in transport thread
2025-06-13 09:48:29,688 [DEBUG][Thread-250472 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:48:30,764 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:48:30,765 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:48:31,795 [DEBUG][Thread-250473 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:48:39,178 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 09:48:39,178 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 09:48:39,178 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 09:48:39,181 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 09:48:39,649 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 9, 48, 25), 9.39, 51.71, 0.0, 15.97, 8.25, 0, 0, 0, 2, 0, 0),)
2025-06-13 09:48:39,650 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 09:48:25
2025-06-13 09:48:39,732 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 09:48:39,738 [DEBUG][       Thread-250474][   transport.py][1871] : starting thread (client mode): 0x84206350
2025-06-13 09:48:39,739 [DEBUG][       Thread-250474][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 09:48:39,757 [DEBUG][       Thread-250474][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 09:48:39,757 [ INFO][       Thread-250474][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 09:48:39,760 [DEBUG][       Thread-250474][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 09:48:39,760 [DEBUG][       Thread-250474][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 09:48:39,760 [DEBUG][       Thread-250474][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 09:48:39,760 [DEBUG][       Thread-250474][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:48:39,760 [DEBUG][       Thread-250474][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:48:39,760 [DEBUG][       Thread-250474][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:48:39,760 [DEBUG][       Thread-250474][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:48:39,760 [DEBUG][       Thread-250474][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 09:48:39,760 [DEBUG][       Thread-250474][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 09:48:39,760 [DEBUG][       Thread-250474][   transport.py][1871] : client lang: <none>
2025-06-13 09:48:39,760 [DEBUG][       Thread-250474][   transport.py][1871] : server lang: <none>
2025-06-13 09:48:39,760 [DEBUG][       Thread-250474][   transport.py][1871] : kex follows: False
2025-06-13 09:48:39,761 [DEBUG][       Thread-250474][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 09:48:39,761 [DEBUG][       Thread-250474][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 09:48:39,761 [DEBUG][       Thread-250474][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 09:48:39,761 [DEBUG][       Thread-250474][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 09:48:39,761 [DEBUG][       Thread-250474][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 09:48:39,761 [DEBUG][       Thread-250474][   transport.py][1871] : Compression: none
2025-06-13 09:48:39,761 [DEBUG][       Thread-250474][   transport.py][1871] : === End of kex handshake ===
2025-06-13 09:48:39,777 [DEBUG][       Thread-250474][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 09:48:39,778 [DEBUG][       Thread-250474][   transport.py][1871] : Switch to new keys ...
2025-06-13 09:48:39,778 [DEBUG][       Thread-250474][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 09:48:39,778 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 09:48:39,779 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 09:48:39,780 [DEBUG][       Thread-250474][   transport.py][1871] : userauth is OK
2025-06-13 09:48:39,793 [ INFO][       Thread-250474][   transport.py][1871] : Authentication (password) successful!
2025-06-13 09:48:39,793 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 09:48:40,451 [DEBUG][       Thread-250474][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 09:48:40,451 [DEBUG][       Thread-250474][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 09:48:40,493 [DEBUG][       Thread-250474][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 09:48:40,493 [DEBUG][       Thread-250474][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 09:48:40,496 [DEBUG][       Thread-250474][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 09:48:40,509 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 09:48:40,509 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 09:48:40,511 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 09:48:40,513 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 09:48:40,518 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 09:48:40,520 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 09:48:40,520 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 09:48:40,521 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 09:48:40,521 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.325288 -999.00   +8.10  20.57     56   -0.10 1 1 1 1 1   887    0 8.33 17.38 ----- 20.2 20.6 50.8 26.2 12.2 -28.2 10.9 -28.9 9.7 -27.9 10.9 -26.2
2025-06-13 09:48:40,521 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 09:48:40,521 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 09:48:40,521 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.325288
2025-06-13 09:48:40,521 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 09:48:40,522 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 09:48:40,522 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 09:48:40,522 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 09:48:40,522 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 09:48:40,522 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T09:48:25', tmtdew=9.39, humidity=51.71, cloud=0.0, wind=15.97, temperature=8.25, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T07:48:24.883', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 09:48:40,523 [DEBUG][       Thread-250474][   transport.py][1871] : EOF in transport thread
2025-06-13 09:48:40,606 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 09:48:40,617 [DEBUG][       Thread-250477][   transport.py][1871] : starting thread (client mode): 0x863cb820
2025-06-13 09:48:40,617 [DEBUG][       Thread-250477][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 09:48:40,631 [DEBUG][       Thread-250477][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 09:48:40,631 [ INFO][       Thread-250477][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 09:48:40,639 [DEBUG][       Thread-250477][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 09:48:40,639 [DEBUG][       Thread-250477][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 09:48:40,639 [DEBUG][       Thread-250477][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 09:48:40,640 [DEBUG][       Thread-250477][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:48:40,640 [DEBUG][       Thread-250477][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:48:40,640 [DEBUG][       Thread-250477][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:48:40,640 [DEBUG][       Thread-250477][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:48:40,640 [DEBUG][       Thread-250477][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 09:48:40,640 [DEBUG][       Thread-250477][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 09:48:40,640 [DEBUG][       Thread-250477][   transport.py][1871] : client lang: <none>
2025-06-13 09:48:40,640 [DEBUG][       Thread-250477][   transport.py][1871] : server lang: <none>
2025-06-13 09:48:40,640 [DEBUG][       Thread-250477][   transport.py][1871] : kex follows: False
2025-06-13 09:48:40,640 [DEBUG][       Thread-250477][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 09:48:40,640 [DEBUG][       Thread-250477][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 09:48:40,640 [DEBUG][       Thread-250477][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 09:48:40,640 [DEBUG][       Thread-250477][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 09:48:40,640 [DEBUG][       Thread-250477][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 09:48:40,640 [DEBUG][       Thread-250477][   transport.py][1871] : Compression: none
2025-06-13 09:48:40,640 [DEBUG][       Thread-250477][   transport.py][1871] : === End of kex handshake ===
2025-06-13 09:48:40,699 [DEBUG][       Thread-250477][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 09:48:40,699 [DEBUG][       Thread-250477][   transport.py][1871] : Switch to new keys ...
2025-06-13 09:48:40,700 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 09:48:40,700 [DEBUG][       Thread-250477][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 09:48:40,701 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 09:48:40,755 [DEBUG][       Thread-250477][   transport.py][1871] : userauth is OK
2025-06-13 09:48:40,755 [DEBUG][       Thread-250477][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 09:48:40,755 [DEBUG][       Thread-250477][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 09:48:40,755 [DEBUG][       Thread-250477][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 09:48:40,755 [DEBUG][       Thread-250477][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 09:48:40,778 [ INFO][       Thread-250477][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 09:48:40,778 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 09:48:40,778 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 09:48:40,814 [DEBUG][Thread-250479 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:48:41,777 [DEBUG][       Thread-250477][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 09:48:41,777 [DEBUG][       Thread-250477][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 09:48:41,827 [DEBUG][       Thread-250477][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 09:48:41,828 [DEBUG][       Thread-250477][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 09:48:41,837 [DEBUG][       Thread-250477][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 09:48:41,845 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 09:48:41,845 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 09:48:41,854 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 09:48:41,863 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 09:48:41,863 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 09:48:41,863 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 09:48:41,871 [DEBUG][       Thread-250477][   transport.py][1871] : EOF in transport thread
2025-06-13 09:48:49,843 [DEBUG][Thread-250480 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:48:51,873 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 09:48:51,873 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 09:48:51,873 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 09:48:51,874 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 09:48:52,341 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 9, 48, 25), 9.39, 51.71, 0.0, 15.97, 8.25, 0, 0, 0, 2, 0, 0),)
2025-06-13 09:48:52,341 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 09:48:25
2025-06-13 09:48:52,421 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 09:48:52,430 [DEBUG][       Thread-250481][   transport.py][1871] : starting thread (client mode): 0x84207760
2025-06-13 09:48:52,430 [DEBUG][       Thread-250481][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 09:48:52,448 [DEBUG][       Thread-250481][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 09:48:52,448 [ INFO][       Thread-250481][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 09:48:52,450 [DEBUG][       Thread-250481][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 09:48:52,450 [DEBUG][       Thread-250481][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 09:48:52,450 [DEBUG][       Thread-250481][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 09:48:52,450 [DEBUG][       Thread-250481][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:48:52,450 [DEBUG][       Thread-250481][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:48:52,450 [DEBUG][       Thread-250481][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:48:52,450 [DEBUG][       Thread-250481][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:48:52,450 [DEBUG][       Thread-250481][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 09:48:52,451 [DEBUG][       Thread-250481][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 09:48:52,451 [DEBUG][       Thread-250481][   transport.py][1871] : client lang: <none>
2025-06-13 09:48:52,451 [DEBUG][       Thread-250481][   transport.py][1871] : server lang: <none>
2025-06-13 09:48:52,451 [DEBUG][       Thread-250481][   transport.py][1871] : kex follows: False
2025-06-13 09:48:52,451 [DEBUG][       Thread-250481][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 09:48:52,451 [DEBUG][       Thread-250481][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 09:48:52,451 [DEBUG][       Thread-250481][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 09:48:52,451 [DEBUG][       Thread-250481][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 09:48:52,451 [DEBUG][       Thread-250481][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 09:48:52,451 [DEBUG][       Thread-250481][   transport.py][1871] : Compression: none
2025-06-13 09:48:52,451 [DEBUG][       Thread-250481][   transport.py][1871] : === End of kex handshake ===
2025-06-13 09:48:52,463 [DEBUG][       Thread-250481][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 09:48:52,463 [DEBUG][       Thread-250481][   transport.py][1871] : Switch to new keys ...
2025-06-13 09:48:52,463 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 09:48:52,464 [DEBUG][       Thread-250481][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 09:48:52,464 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 09:48:52,466 [DEBUG][       Thread-250481][   transport.py][1871] : userauth is OK
2025-06-13 09:48:52,478 [ INFO][       Thread-250481][   transport.py][1871] : Authentication (password) successful!
2025-06-13 09:48:52,479 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 09:48:53,220 [DEBUG][       Thread-250481][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 09:48:53,221 [DEBUG][       Thread-250481][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 09:48:53,265 [DEBUG][       Thread-250481][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 09:48:53,265 [DEBUG][       Thread-250481][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 09:48:53,268 [DEBUG][       Thread-250481][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 09:48:53,282 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 09:48:53,282 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 09:48:53,284 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 09:48:53,286 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 09:48:53,291 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 09:48:53,293 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 09:48:53,293 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 09:48:53,294 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 09:48:53,294 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.325288 -999.00   +8.10  20.57     56   -0.10 1 1 1 1 1   887    0 8.33 17.38 ----- 20.2 20.6 50.8 26.2 12.2 -28.2 10.9 -28.9 9.7 -27.9 10.9 -26.2
2025-06-13 09:48:53,294 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 09:48:53,294 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 09:48:53,294 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.325288
2025-06-13 09:48:53,294 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 09:48:53,295 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 09:48:53,295 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 09:48:53,295 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 09:48:53,295 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 09:48:53,295 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T09:48:25', tmtdew=9.39, humidity=51.71, cloud=0.0, wind=15.97, temperature=8.25, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T07:48:24.883', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 09:48:53,295 [DEBUG][       Thread-250481][   transport.py][1871] : EOF in transport thread
2025-06-13 09:48:53,378 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 09:48:53,390 [DEBUG][       Thread-250484][   transport.py][1871] : starting thread (client mode): 0x867b6c50
2025-06-13 09:48:53,390 [DEBUG][       Thread-250484][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 09:48:53,405 [DEBUG][       Thread-250484][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 09:48:53,405 [ INFO][       Thread-250484][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 09:48:53,413 [DEBUG][       Thread-250484][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 09:48:53,413 [DEBUG][       Thread-250484][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 09:48:53,413 [DEBUG][       Thread-250484][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 09:48:53,413 [DEBUG][       Thread-250484][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:48:53,414 [DEBUG][       Thread-250484][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:48:53,414 [DEBUG][       Thread-250484][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:48:53,414 [DEBUG][       Thread-250484][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:48:53,414 [DEBUG][       Thread-250484][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 09:48:53,414 [DEBUG][       Thread-250484][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 09:48:53,414 [DEBUG][       Thread-250484][   transport.py][1871] : client lang: <none>
2025-06-13 09:48:53,414 [DEBUG][       Thread-250484][   transport.py][1871] : server lang: <none>
2025-06-13 09:48:53,414 [DEBUG][       Thread-250484][   transport.py][1871] : kex follows: False
2025-06-13 09:48:53,415 [DEBUG][       Thread-250484][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 09:48:53,415 [DEBUG][       Thread-250484][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 09:48:53,415 [DEBUG][       Thread-250484][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 09:48:53,415 [DEBUG][       Thread-250484][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 09:48:53,415 [DEBUG][       Thread-250484][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 09:48:53,415 [DEBUG][       Thread-250484][   transport.py][1871] : Compression: none
2025-06-13 09:48:53,415 [DEBUG][       Thread-250484][   transport.py][1871] : === End of kex handshake ===
2025-06-13 09:48:53,473 [DEBUG][       Thread-250484][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 09:48:53,474 [DEBUG][       Thread-250484][   transport.py][1871] : Switch to new keys ...
2025-06-13 09:48:53,475 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 09:48:53,475 [DEBUG][       Thread-250484][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 09:48:53,476 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 09:48:53,534 [DEBUG][       Thread-250484][   transport.py][1871] : userauth is OK
2025-06-13 09:48:53,534 [DEBUG][       Thread-250484][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 09:48:53,535 [DEBUG][       Thread-250484][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 09:48:53,535 [DEBUG][       Thread-250484][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 09:48:53,535 [DEBUG][       Thread-250484][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 09:48:53,558 [ INFO][       Thread-250484][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 09:48:53,559 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 09:48:53,559 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 09:48:54,588 [DEBUG][       Thread-250484][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 09:48:54,588 [DEBUG][       Thread-250484][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 09:48:54,635 [DEBUG][       Thread-250484][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 09:48:54,636 [DEBUG][       Thread-250484][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 09:48:54,645 [DEBUG][       Thread-250484][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 09:48:54,653 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 09:48:54,654 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 09:48:54,662 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 09:48:54,671 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 09:48:54,671 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 09:48:54,671 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 09:48:54,679 [DEBUG][       Thread-250484][   transport.py][1871] : EOF in transport thread
2025-06-13 09:48:58,859 [DEBUG][Thread-250486 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:49:04,340 [DEBUG][Thread-250487 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:49:04,682 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 09:49:04,682 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 09:49:04,682 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 09:49:04,684 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 09:49:05,146 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 9, 48, 56), 9.36, 51.83, 0.0, 17.57, 8.28, 0, 0, 0, 2, 0, 0),)
2025-06-13 09:49:05,146 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 09:48:56
2025-06-13 09:49:05,228 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 09:49:05,232 [DEBUG][       Thread-250488][   transport.py][1871] : starting thread (client mode): 0x863695d0
2025-06-13 09:49:05,232 [DEBUG][       Thread-250488][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 09:49:05,251 [DEBUG][       Thread-250488][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 09:49:05,251 [ INFO][       Thread-250488][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 09:49:05,252 [DEBUG][       Thread-250488][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 09:49:05,253 [DEBUG][       Thread-250488][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 09:49:05,253 [DEBUG][       Thread-250488][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 09:49:05,253 [DEBUG][       Thread-250488][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:49:05,253 [DEBUG][       Thread-250488][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:49:05,253 [DEBUG][       Thread-250488][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:49:05,253 [DEBUG][       Thread-250488][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:49:05,253 [DEBUG][       Thread-250488][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 09:49:05,253 [DEBUG][       Thread-250488][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 09:49:05,253 [DEBUG][       Thread-250488][   transport.py][1871] : client lang: <none>
2025-06-13 09:49:05,253 [DEBUG][       Thread-250488][   transport.py][1871] : server lang: <none>
2025-06-13 09:49:05,253 [DEBUG][       Thread-250488][   transport.py][1871] : kex follows: False
2025-06-13 09:49:05,253 [DEBUG][       Thread-250488][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 09:49:05,253 [DEBUG][       Thread-250488][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 09:49:05,253 [DEBUG][       Thread-250488][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 09:49:05,253 [DEBUG][       Thread-250488][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 09:49:05,253 [DEBUG][       Thread-250488][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 09:49:05,253 [DEBUG][       Thread-250488][   transport.py][1871] : Compression: none
2025-06-13 09:49:05,253 [DEBUG][       Thread-250488][   transport.py][1871] : === End of kex handshake ===
2025-06-13 09:49:05,261 [DEBUG][       Thread-250488][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 09:49:05,261 [DEBUG][       Thread-250488][   transport.py][1871] : Switch to new keys ...
2025-06-13 09:49:05,261 [DEBUG][       Thread-250488][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 09:49:05,261 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 09:49:05,261 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 09:49:05,262 [DEBUG][       Thread-250488][   transport.py][1871] : userauth is OK
2025-06-13 09:49:05,275 [ INFO][       Thread-250488][   transport.py][1871] : Authentication (password) successful!
2025-06-13 09:49:05,275 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 09:49:06,034 [DEBUG][       Thread-250488][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 09:49:06,034 [DEBUG][       Thread-250488][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 09:49:06,077 [DEBUG][       Thread-250488][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 09:49:06,077 [DEBUG][       Thread-250488][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 09:49:06,080 [DEBUG][       Thread-250488][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 09:49:06,092 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 09:49:06,092 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 09:49:06,094 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 09:49:06,096 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 09:49:06,101 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 09:49:06,103 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 09:49:06,103 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 09:49:06,104 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 09:49:06,104 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.325288 -999.00   +8.10  20.57     56   -0.10 1 1 1 1 1   887    0 8.33 17.38 ----- 20.2 20.6 50.8 26.2 12.2 -28.2 10.9 -28.9 9.7 -27.9 10.9 -26.2
2025-06-13 09:49:06,104 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 09:49:06,104 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 09:49:06,104 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.325288
2025-06-13 09:49:06,105 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 09:49:06,105 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 09:49:06,105 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 09:49:06,105 [DEBUG][       Thread-250488][   transport.py][1871] : EOF in transport thread
2025-06-13 09:49:06,105 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 09:49:06,106 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 09:49:06,106 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T09:48:56', tmtdew=9.36, humidity=51.83, cloud=0.0, wind=17.57, temperature=8.28, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T07:48:24.883', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 09:49:06,189 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 09:49:06,198 [DEBUG][       Thread-250491][   transport.py][1871] : starting thread (client mode): 0x867fceb0
2025-06-13 09:49:06,198 [DEBUG][       Thread-250491][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 09:49:06,222 [DEBUG][       Thread-250491][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 09:49:06,223 [ INFO][       Thread-250491][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 09:49:06,230 [DEBUG][       Thread-250491][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 09:49:06,231 [DEBUG][       Thread-250491][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 09:49:06,231 [DEBUG][       Thread-250491][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 09:49:06,231 [DEBUG][       Thread-250491][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:49:06,231 [DEBUG][       Thread-250491][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:49:06,231 [DEBUG][       Thread-250491][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:49:06,231 [DEBUG][       Thread-250491][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:49:06,231 [DEBUG][       Thread-250491][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 09:49:06,231 [DEBUG][       Thread-250491][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 09:49:06,231 [DEBUG][       Thread-250491][   transport.py][1871] : client lang: <none>
2025-06-13 09:49:06,231 [DEBUG][       Thread-250491][   transport.py][1871] : server lang: <none>
2025-06-13 09:49:06,231 [DEBUG][       Thread-250491][   transport.py][1871] : kex follows: False
2025-06-13 09:49:06,231 [DEBUG][       Thread-250491][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 09:49:06,231 [DEBUG][       Thread-250491][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 09:49:06,231 [DEBUG][       Thread-250491][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 09:49:06,231 [DEBUG][       Thread-250491][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 09:49:06,231 [DEBUG][       Thread-250491][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 09:49:06,231 [DEBUG][       Thread-250491][   transport.py][1871] : Compression: none
2025-06-13 09:49:06,231 [DEBUG][       Thread-250491][   transport.py][1871] : === End of kex handshake ===
2025-06-13 09:49:06,286 [DEBUG][       Thread-250491][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 09:49:06,287 [DEBUG][       Thread-250491][   transport.py][1871] : Switch to new keys ...
2025-06-13 09:49:06,287 [DEBUG][       Thread-250491][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 09:49:06,288 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 09:49:06,288 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 09:49:06,343 [DEBUG][       Thread-250491][   transport.py][1871] : userauth is OK
2025-06-13 09:49:06,343 [DEBUG][       Thread-250491][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 09:49:06,343 [DEBUG][       Thread-250491][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 09:49:06,343 [DEBUG][       Thread-250491][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 09:49:06,343 [DEBUG][       Thread-250491][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 09:49:06,364 [ INFO][       Thread-250491][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 09:49:06,365 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 09:49:06,365 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 09:49:07,395 [DEBUG][       Thread-250491][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 09:49:07,395 [DEBUG][       Thread-250491][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 09:49:07,443 [DEBUG][       Thread-250491][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 09:49:07,443 [DEBUG][       Thread-250491][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 09:49:07,452 [DEBUG][       Thread-250491][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 09:49:07,465 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 09:49:07,465 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 09:49:07,473 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 09:49:07,481 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 09:49:07,481 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 09:49:07,481 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 09:49:07,493 [DEBUG][       Thread-250491][   transport.py][1871] : EOF in transport thread
2025-06-13 09:49:07,875 [DEBUG][Thread-250493 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:49:16,903 [DEBUG][Thread-250494 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:49:17,489 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 09:49:17,490 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 09:49:17,490 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 09:49:17,492 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 09:49:17,965 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 9, 48, 56), 9.36, 51.83, 0.0, 17.57, 8.28, 0, 0, 0, 2, 0, 0),)
2025-06-13 09:49:17,965 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 09:48:56
2025-06-13 09:49:18,047 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 09:49:18,053 [DEBUG][       Thread-250495][   transport.py][1871] : starting thread (client mode): 0x863cae60
2025-06-13 09:49:18,053 [DEBUG][       Thread-250495][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 09:49:18,071 [DEBUG][       Thread-250495][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 09:49:18,071 [ INFO][       Thread-250495][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 09:49:18,074 [DEBUG][       Thread-250495][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 09:49:18,074 [DEBUG][       Thread-250495][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 09:49:18,074 [DEBUG][       Thread-250495][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 09:49:18,074 [DEBUG][       Thread-250495][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:49:18,074 [DEBUG][       Thread-250495][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:49:18,074 [DEBUG][       Thread-250495][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:49:18,074 [DEBUG][       Thread-250495][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:49:18,074 [DEBUG][       Thread-250495][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 09:49:18,074 [DEBUG][       Thread-250495][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 09:49:18,074 [DEBUG][       Thread-250495][   transport.py][1871] : client lang: <none>
2025-06-13 09:49:18,074 [DEBUG][       Thread-250495][   transport.py][1871] : server lang: <none>
2025-06-13 09:49:18,074 [DEBUG][       Thread-250495][   transport.py][1871] : kex follows: False
2025-06-13 09:49:18,074 [DEBUG][       Thread-250495][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 09:49:18,074 [DEBUG][       Thread-250495][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 09:49:18,074 [DEBUG][       Thread-250495][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 09:49:18,074 [DEBUG][       Thread-250495][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 09:49:18,074 [DEBUG][       Thread-250495][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 09:49:18,074 [DEBUG][       Thread-250495][   transport.py][1871] : Compression: none
2025-06-13 09:49:18,074 [DEBUG][       Thread-250495][   transport.py][1871] : === End of kex handshake ===
2025-06-13 09:49:18,088 [DEBUG][       Thread-250495][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 09:49:18,089 [DEBUG][       Thread-250495][   transport.py][1871] : Switch to new keys ...
2025-06-13 09:49:18,089 [DEBUG][       Thread-250495][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 09:49:18,089 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 09:49:18,089 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 09:49:18,090 [DEBUG][       Thread-250495][   transport.py][1871] : userauth is OK
2025-06-13 09:49:18,103 [ INFO][       Thread-250495][   transport.py][1871] : Authentication (password) successful!
2025-06-13 09:49:18,104 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 09:49:18,728 [DEBUG][       Thread-250495][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 09:49:18,728 [DEBUG][       Thread-250495][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 09:49:18,769 [DEBUG][       Thread-250495][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 09:49:18,769 [DEBUG][       Thread-250495][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 09:49:18,772 [DEBUG][       Thread-250495][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 09:49:18,783 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 09:49:18,784 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 09:49:18,785 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 09:49:18,786 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 09:49:18,791 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 09:49:18,792 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 09:49:18,792 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 09:49:18,793 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 09:49:18,793 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.325635 -999.00   +8.10  23.12     56   -0.00 1 1 1 1 1   887    0 8.49 18.37 ----- 23.1 23.1 49.2 25.4 12.2 -28.5 11.0 -29.1 9.7 -27.6 10.9 -26.2
2025-06-13 09:49:18,793 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 09:49:18,793 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 09:49:18,793 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.325635
2025-06-13 09:49:18,794 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 09:49:18,794 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 09:49:18,794 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 09:49:18,794 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 09:49:18,794 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 09:49:18,795 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T09:48:56', tmtdew=9.36, humidity=51.83, cloud=0.0, wind=17.57, temperature=8.28, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T07:48:54.864', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 09:49:18,795 [DEBUG][       Thread-250495][   transport.py][1871] : EOF in transport thread
2025-06-13 09:49:18,879 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 09:49:18,890 [DEBUG][       Thread-250498][   transport.py][1871] : starting thread (client mode): 0x863bd090
2025-06-13 09:49:18,890 [DEBUG][       Thread-250498][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 09:49:18,904 [DEBUG][       Thread-250498][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 09:49:18,904 [ INFO][       Thread-250498][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 09:49:18,911 [DEBUG][       Thread-250498][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 09:49:18,911 [DEBUG][       Thread-250498][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 09:49:18,911 [DEBUG][       Thread-250498][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 09:49:18,912 [DEBUG][       Thread-250498][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:49:18,912 [DEBUG][       Thread-250498][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:49:18,912 [DEBUG][       Thread-250498][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:49:18,912 [DEBUG][       Thread-250498][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:49:18,912 [DEBUG][       Thread-250498][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 09:49:18,912 [DEBUG][       Thread-250498][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 09:49:18,912 [DEBUG][       Thread-250498][   transport.py][1871] : client lang: <none>
2025-06-13 09:49:18,912 [DEBUG][       Thread-250498][   transport.py][1871] : server lang: <none>
2025-06-13 09:49:18,912 [DEBUG][       Thread-250498][   transport.py][1871] : kex follows: False
2025-06-13 09:49:18,912 [DEBUG][       Thread-250498][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 09:49:18,912 [DEBUG][       Thread-250498][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 09:49:18,912 [DEBUG][       Thread-250498][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 09:49:18,912 [DEBUG][       Thread-250498][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 09:49:18,912 [DEBUG][       Thread-250498][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 09:49:18,912 [DEBUG][       Thread-250498][   transport.py][1871] : Compression: none
2025-06-13 09:49:18,912 [DEBUG][       Thread-250498][   transport.py][1871] : === End of kex handshake ===
2025-06-13 09:49:18,970 [DEBUG][       Thread-250498][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 09:49:18,970 [DEBUG][       Thread-250498][   transport.py][1871] : Switch to new keys ...
2025-06-13 09:49:18,971 [DEBUG][       Thread-250498][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 09:49:18,971 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 09:49:18,971 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 09:49:19,030 [DEBUG][       Thread-250498][   transport.py][1871] : userauth is OK
2025-06-13 09:49:19,030 [DEBUG][       Thread-250498][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 09:49:19,030 [DEBUG][       Thread-250498][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 09:49:19,030 [DEBUG][       Thread-250498][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 09:49:19,030 [DEBUG][       Thread-250498][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 09:49:19,049 [ INFO][       Thread-250498][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 09:49:19,049 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 09:49:19,050 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 09:49:20,059 [DEBUG][       Thread-250498][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 09:49:20,059 [DEBUG][       Thread-250498][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 09:49:20,108 [DEBUG][       Thread-250498][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 09:49:20,108 [DEBUG][       Thread-250498][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 09:49:20,117 [DEBUG][       Thread-250498][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 09:49:20,126 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 09:49:20,126 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 09:49:20,135 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 09:49:20,144 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 09:49:20,144 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 09:49:20,145 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 09:49:20,153 [DEBUG][       Thread-250498][   transport.py][1871] : EOF in transport thread
2025-06-13 09:49:20,965 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:49:20,966 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:49:25,920 [DEBUG][Thread-250500 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:49:30,152 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 09:49:30,152 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 09:49:30,152 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 09:49:30,153 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 09:49:30,646 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 9, 48, 56), 9.36, 51.83, 0.0, 17.57, 8.28, 0, 0, 0, 2, 0, 0),)
2025-06-13 09:49:30,647 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 09:48:56
2025-06-13 09:49:30,733 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 09:49:30,738 [DEBUG][       Thread-250501][   transport.py][1871] : starting thread (client mode): 0x863be230
2025-06-13 09:49:30,738 [DEBUG][       Thread-250501][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 09:49:30,760 [DEBUG][       Thread-250501][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 09:49:30,760 [ INFO][       Thread-250501][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 09:49:30,763 [DEBUG][       Thread-250501][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 09:49:30,763 [DEBUG][       Thread-250501][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 09:49:30,763 [DEBUG][       Thread-250501][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 09:49:30,764 [DEBUG][       Thread-250501][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:49:30,764 [DEBUG][       Thread-250501][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:49:30,764 [DEBUG][       Thread-250501][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:49:30,764 [DEBUG][       Thread-250501][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:49:30,764 [DEBUG][       Thread-250501][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 09:49:30,764 [DEBUG][       Thread-250501][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 09:49:30,764 [DEBUG][       Thread-250501][   transport.py][1871] : client lang: <none>
2025-06-13 09:49:30,764 [DEBUG][       Thread-250501][   transport.py][1871] : server lang: <none>
2025-06-13 09:49:30,764 [DEBUG][       Thread-250501][   transport.py][1871] : kex follows: False
2025-06-13 09:49:30,764 [DEBUG][       Thread-250501][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 09:49:30,764 [DEBUG][       Thread-250501][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 09:49:30,764 [DEBUG][       Thread-250501][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 09:49:30,764 [DEBUG][       Thread-250501][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 09:49:30,764 [DEBUG][       Thread-250501][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 09:49:30,764 [DEBUG][       Thread-250501][   transport.py][1871] : Compression: none
2025-06-13 09:49:30,764 [DEBUG][       Thread-250501][   transport.py][1871] : === End of kex handshake ===
2025-06-13 09:49:30,781 [DEBUG][       Thread-250501][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 09:49:30,781 [DEBUG][       Thread-250501][   transport.py][1871] : Switch to new keys ...
2025-06-13 09:49:30,782 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 09:49:30,782 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 09:49:30,783 [DEBUG][       Thread-250501][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 09:49:30,783 [DEBUG][       Thread-250501][   transport.py][1871] : userauth is OK
2025-06-13 09:49:30,796 [ INFO][       Thread-250501][   transport.py][1871] : Authentication (password) successful!
2025-06-13 09:49:30,796 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 09:49:30,845 [DEBUG][Thread-250503 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:49:31,558 [DEBUG][       Thread-250501][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 09:49:31,558 [DEBUG][       Thread-250501][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 09:49:31,601 [DEBUG][       Thread-250501][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 09:49:31,601 [DEBUG][       Thread-250501][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 09:49:31,604 [DEBUG][       Thread-250501][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 09:49:31,611 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 09:49:31,611 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 09:49:31,613 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 09:49:31,615 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 09:49:31,620 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 09:49:31,622 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 09:49:31,622 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 09:49:31,623 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 09:49:31,623 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.325635 -999.00   +8.10  23.12     56   -0.00 1 1 1 1 1   887    0 8.49 18.37 ----- 23.1 23.1 49.2 25.4 12.2 -28.5 11.0 -29.1 9.7 -27.6 10.9 -26.2
2025-06-13 09:49:31,623 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 09:49:31,623 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 09:49:31,623 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.325635
2025-06-13 09:49:31,624 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 09:49:31,624 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 09:49:31,624 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 09:49:31,624 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 09:49:31,624 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 09:49:31,624 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T09:48:56', tmtdew=9.36, humidity=51.83, cloud=0.0, wind=17.57, temperature=8.28, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T07:48:54.864', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 09:49:31,625 [DEBUG][       Thread-250501][   transport.py][1871] : EOF in transport thread
2025-06-13 09:49:31,708 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 09:49:31,718 [DEBUG][       Thread-250505][   transport.py][1871] : starting thread (client mode): 0x863a5b70
2025-06-13 09:49:31,718 [DEBUG][       Thread-250505][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 09:49:31,732 [DEBUG][       Thread-250505][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 09:49:31,732 [ INFO][       Thread-250505][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 09:49:31,745 [DEBUG][       Thread-250505][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 09:49:31,745 [DEBUG][       Thread-250505][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 09:49:31,745 [DEBUG][       Thread-250505][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 09:49:31,745 [DEBUG][       Thread-250505][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:49:31,746 [DEBUG][       Thread-250505][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:49:31,746 [DEBUG][       Thread-250505][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:49:31,746 [DEBUG][       Thread-250505][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:49:31,746 [DEBUG][       Thread-250505][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 09:49:31,746 [DEBUG][       Thread-250505][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 09:49:31,746 [DEBUG][       Thread-250505][   transport.py][1871] : client lang: <none>
2025-06-13 09:49:31,746 [DEBUG][       Thread-250505][   transport.py][1871] : server lang: <none>
2025-06-13 09:49:31,746 [DEBUG][       Thread-250505][   transport.py][1871] : kex follows: False
2025-06-13 09:49:31,746 [DEBUG][       Thread-250505][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 09:49:31,746 [DEBUG][       Thread-250505][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 09:49:31,746 [DEBUG][       Thread-250505][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 09:49:31,746 [DEBUG][       Thread-250505][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 09:49:31,746 [DEBUG][       Thread-250505][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 09:49:31,746 [DEBUG][       Thread-250505][   transport.py][1871] : Compression: none
2025-06-13 09:49:31,746 [DEBUG][       Thread-250505][   transport.py][1871] : === End of kex handshake ===
2025-06-13 09:49:31,798 [DEBUG][       Thread-250505][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 09:49:31,799 [DEBUG][       Thread-250505][   transport.py][1871] : Switch to new keys ...
2025-06-13 09:49:31,799 [DEBUG][       Thread-250505][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 09:49:31,799 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 09:49:31,800 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 09:49:31,855 [DEBUG][       Thread-250505][   transport.py][1871] : userauth is OK
2025-06-13 09:49:31,855 [DEBUG][       Thread-250505][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 09:49:31,855 [DEBUG][       Thread-250505][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 09:49:31,855 [DEBUG][       Thread-250505][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 09:49:31,855 [DEBUG][       Thread-250505][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 09:49:31,874 [ INFO][       Thread-250505][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 09:49:31,874 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 09:49:31,875 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 09:49:31,919 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:49:31,920 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:49:32,886 [DEBUG][       Thread-250505][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 09:49:32,887 [DEBUG][       Thread-250505][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 09:49:32,935 [DEBUG][       Thread-250505][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 09:49:32,936 [DEBUG][       Thread-250505][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 09:49:32,944 [DEBUG][       Thread-250505][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 09:49:32,953 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 09:49:32,953 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 09:49:32,962 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 09:49:32,975 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 09:49:32,975 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 09:49:32,976 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 09:49:32,983 [DEBUG][       Thread-250505][   transport.py][1871] : EOF in transport thread
2025-06-13 09:49:34,938 [DEBUG][Thread-250507 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:49:42,986 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 09:49:42,986 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 09:49:42,986 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 09:49:42,989 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 09:49:43,443 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 9, 49, 28), 9.41, 51.56, 0.0, 19.53, 8.27, 0, 0, 0, 2, 0, 0),)
2025-06-13 09:49:43,443 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 09:49:28
2025-06-13 09:49:43,523 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 09:49:43,530 [DEBUG][       Thread-250508][   transport.py][1871] : starting thread (client mode): 0x8636a860
2025-06-13 09:49:43,530 [DEBUG][       Thread-250508][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 09:49:43,548 [DEBUG][       Thread-250508][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 09:49:43,548 [ INFO][       Thread-250508][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 09:49:43,552 [DEBUG][       Thread-250508][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 09:49:43,552 [DEBUG][       Thread-250508][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 09:49:43,552 [DEBUG][       Thread-250508][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 09:49:43,552 [DEBUG][       Thread-250508][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:49:43,552 [DEBUG][       Thread-250508][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:49:43,552 [DEBUG][       Thread-250508][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:49:43,552 [DEBUG][       Thread-250508][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:49:43,552 [DEBUG][       Thread-250508][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 09:49:43,552 [DEBUG][       Thread-250508][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 09:49:43,552 [DEBUG][       Thread-250508][   transport.py][1871] : client lang: <none>
2025-06-13 09:49:43,552 [DEBUG][       Thread-250508][   transport.py][1871] : server lang: <none>
2025-06-13 09:49:43,552 [DEBUG][       Thread-250508][   transport.py][1871] : kex follows: False
2025-06-13 09:49:43,552 [DEBUG][       Thread-250508][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 09:49:43,552 [DEBUG][       Thread-250508][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 09:49:43,552 [DEBUG][       Thread-250508][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 09:49:43,552 [DEBUG][       Thread-250508][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 09:49:43,552 [DEBUG][       Thread-250508][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 09:49:43,552 [DEBUG][       Thread-250508][   transport.py][1871] : Compression: none
2025-06-13 09:49:43,552 [DEBUG][       Thread-250508][   transport.py][1871] : === End of kex handshake ===
2025-06-13 09:49:43,565 [DEBUG][       Thread-250508][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 09:49:43,565 [DEBUG][       Thread-250508][   transport.py][1871] : Switch to new keys ...
2025-06-13 09:49:43,566 [DEBUG][       Thread-250508][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 09:49:43,566 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 09:49:43,566 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 09:49:43,567 [DEBUG][       Thread-250508][   transport.py][1871] : userauth is OK
2025-06-13 09:49:43,580 [ INFO][       Thread-250508][   transport.py][1871] : Authentication (password) successful!
2025-06-13 09:49:43,580 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 09:49:43,958 [DEBUG][Thread-250510 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:49:44,129 [DEBUG][       Thread-250508][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 09:49:44,129 [DEBUG][       Thread-250508][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 09:49:44,173 [DEBUG][       Thread-250508][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 09:49:44,173 [DEBUG][       Thread-250508][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 09:49:44,175 [DEBUG][       Thread-250508][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 09:49:44,183 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 09:49:44,184 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 09:49:44,185 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 09:49:44,187 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 09:49:44,192 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 09:49:44,194 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 09:49:44,194 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 09:49:44,195 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 09:49:44,195 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.325982 -999.00   +8.00  26.90     56   +0.00 1 1 1 1 1   887    0 8.58 19.88 ----- 26.9 26.9 33.4 28.7 12.2 -28.3 10.9 -28.7 9.7 -27.9 10.9 -26.3
2025-06-13 09:49:44,195 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 09:49:44,195 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 09:49:44,195 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.325982
2025-06-13 09:49:44,195 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 09:49:44,196 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 09:49:44,196 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 09:49:44,196 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 09:49:44,196 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 09:49:44,196 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T09:49:28', tmtdew=9.41, humidity=51.56, cloud=0.0, wind=19.53, temperature=8.27, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T07:49:24.845', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 09:49:44,197 [DEBUG][       Thread-250508][   transport.py][1871] : EOF in transport thread
2025-06-13 09:49:44,280 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 09:49:44,292 [DEBUG][       Thread-250512][   transport.py][1871] : starting thread (client mode): 0x863efbe0
2025-06-13 09:49:44,292 [DEBUG][       Thread-250512][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 09:49:44,308 [DEBUG][       Thread-250512][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 09:49:44,308 [ INFO][       Thread-250512][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 09:49:44,317 [DEBUG][       Thread-250512][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 09:49:44,317 [DEBUG][       Thread-250512][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 09:49:44,318 [DEBUG][       Thread-250512][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 09:49:44,318 [DEBUG][       Thread-250512][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:49:44,318 [DEBUG][       Thread-250512][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:49:44,318 [DEBUG][       Thread-250512][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:49:44,318 [DEBUG][       Thread-250512][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:49:44,318 [DEBUG][       Thread-250512][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 09:49:44,318 [DEBUG][       Thread-250512][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 09:49:44,318 [DEBUG][       Thread-250512][   transport.py][1871] : client lang: <none>
2025-06-13 09:49:44,318 [DEBUG][       Thread-250512][   transport.py][1871] : server lang: <none>
2025-06-13 09:49:44,318 [DEBUG][       Thread-250512][   transport.py][1871] : kex follows: False
2025-06-13 09:49:44,318 [DEBUG][       Thread-250512][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 09:49:44,318 [DEBUG][       Thread-250512][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 09:49:44,318 [DEBUG][       Thread-250512][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 09:49:44,318 [DEBUG][       Thread-250512][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 09:49:44,318 [DEBUG][       Thread-250512][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 09:49:44,318 [DEBUG][       Thread-250512][   transport.py][1871] : Compression: none
2025-06-13 09:49:44,318 [DEBUG][       Thread-250512][   transport.py][1871] : === End of kex handshake ===
2025-06-13 09:49:44,375 [DEBUG][       Thread-250512][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 09:49:44,375 [DEBUG][       Thread-250512][   transport.py][1871] : Switch to new keys ...
2025-06-13 09:49:44,376 [DEBUG][       Thread-250512][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 09:49:44,376 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 09:49:44,377 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 09:49:44,431 [DEBUG][       Thread-250512][   transport.py][1871] : userauth is OK
2025-06-13 09:49:44,432 [DEBUG][       Thread-250512][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 09:49:44,432 [DEBUG][       Thread-250512][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 09:49:44,432 [DEBUG][       Thread-250512][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 09:49:44,432 [DEBUG][       Thread-250512][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 09:49:44,451 [ INFO][       Thread-250512][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 09:49:44,452 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 09:49:44,452 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 09:49:45,432 [DEBUG][       Thread-250512][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 09:49:45,432 [DEBUG][       Thread-250512][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 09:49:45,479 [DEBUG][       Thread-250512][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 09:49:45,480 [DEBUG][       Thread-250512][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 09:49:45,489 [DEBUG][       Thread-250512][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 09:49:45,498 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 09:49:45,498 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 09:49:45,513 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 09:49:45,521 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 09:49:45,521 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 09:49:45,522 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 09:49:45,529 [DEBUG][       Thread-250512][   transport.py][1871] : EOF in transport thread
2025-06-13 09:49:52,977 [DEBUG][Thread-250514 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:49:55,532 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 09:49:55,532 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 09:49:55,532 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 09:49:55,535 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 09:49:55,986 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 9, 49, 28), 9.41, 51.56, 0.0, 19.53, 8.27, 0, 0, 0, 2, 0, 0),)
2025-06-13 09:49:55,987 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 09:49:28
2025-06-13 09:49:56,067 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 09:49:56,071 [DEBUG][       Thread-250515][   transport.py][1871] : starting thread (client mode): 0x84205b70
2025-06-13 09:49:56,071 [DEBUG][       Thread-250515][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 09:49:56,092 [DEBUG][       Thread-250515][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 09:49:56,092 [ INFO][       Thread-250515][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 09:49:56,095 [DEBUG][       Thread-250515][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 09:49:56,095 [DEBUG][       Thread-250515][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 09:49:56,096 [DEBUG][       Thread-250515][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 09:49:56,096 [DEBUG][       Thread-250515][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:49:56,096 [DEBUG][       Thread-250515][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:49:56,096 [DEBUG][       Thread-250515][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:49:56,096 [DEBUG][       Thread-250515][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:49:56,096 [DEBUG][       Thread-250515][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 09:49:56,096 [DEBUG][       Thread-250515][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 09:49:56,096 [DEBUG][       Thread-250515][   transport.py][1871] : client lang: <none>
2025-06-13 09:49:56,096 [DEBUG][       Thread-250515][   transport.py][1871] : server lang: <none>
2025-06-13 09:49:56,096 [DEBUG][       Thread-250515][   transport.py][1871] : kex follows: False
2025-06-13 09:49:56,096 [DEBUG][       Thread-250515][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 09:49:56,096 [DEBUG][       Thread-250515][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 09:49:56,096 [DEBUG][       Thread-250515][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 09:49:56,096 [DEBUG][       Thread-250515][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 09:49:56,096 [DEBUG][       Thread-250515][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 09:49:56,096 [DEBUG][       Thread-250515][   transport.py][1871] : Compression: none
2025-06-13 09:49:56,096 [DEBUG][       Thread-250515][   transport.py][1871] : === End of kex handshake ===
2025-06-13 09:49:56,112 [DEBUG][       Thread-250515][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 09:49:56,113 [DEBUG][       Thread-250515][   transport.py][1871] : Switch to new keys ...
2025-06-13 09:49:56,113 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 09:49:56,113 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 09:49:56,114 [DEBUG][       Thread-250515][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 09:49:56,115 [DEBUG][       Thread-250515][   transport.py][1871] : userauth is OK
2025-06-13 09:49:56,139 [ INFO][       Thread-250515][   transport.py][1871] : Authentication (password) successful!
2025-06-13 09:49:56,139 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 09:49:56,772 [DEBUG][       Thread-250515][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 09:49:56,772 [DEBUG][       Thread-250515][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 09:49:56,817 [DEBUG][       Thread-250515][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 09:49:56,817 [DEBUG][       Thread-250515][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 09:49:56,819 [DEBUG][       Thread-250515][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 09:49:56,825 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 09:49:56,826 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 09:49:56,827 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 09:49:56,829 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 09:49:56,833 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 09:49:56,835 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 09:49:56,835 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 09:49:56,836 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 09:49:56,836 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.325982 -999.00   +8.00  26.90     56   +0.00 1 1 1 1 1   887    0 8.58 19.88 ----- 26.9 26.9 33.4 28.7 12.2 -28.3 10.9 -28.7 9.7 -27.9 10.9 -26.3
2025-06-13 09:49:56,836 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 09:49:56,836 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 09:49:56,836 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.325982
2025-06-13 09:49:56,836 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 09:49:56,837 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 09:49:56,837 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 09:49:56,837 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 09:49:56,837 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 09:49:56,837 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T09:49:28', tmtdew=9.41, humidity=51.56, cloud=0.0, wind=19.53, temperature=8.27, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T07:49:24.845', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 09:49:56,837 [DEBUG][       Thread-250515][   transport.py][1871] : EOF in transport thread
2025-06-13 09:49:56,920 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 09:49:56,936 [DEBUG][       Thread-250518][   transport.py][1871] : starting thread (client mode): 0x867fcb80
2025-06-13 09:49:56,936 [DEBUG][       Thread-250518][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 09:49:56,952 [DEBUG][       Thread-250518][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 09:49:56,952 [ INFO][       Thread-250518][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 09:49:56,959 [DEBUG][       Thread-250518][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 09:49:56,960 [DEBUG][       Thread-250518][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 09:49:56,960 [DEBUG][       Thread-250518][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 09:49:56,960 [DEBUG][       Thread-250518][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:49:56,960 [DEBUG][       Thread-250518][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:49:56,960 [DEBUG][       Thread-250518][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:49:56,960 [DEBUG][       Thread-250518][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:49:56,960 [DEBUG][       Thread-250518][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 09:49:56,960 [DEBUG][       Thread-250518][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 09:49:56,960 [DEBUG][       Thread-250518][   transport.py][1871] : client lang: <none>
2025-06-13 09:49:56,960 [DEBUG][       Thread-250518][   transport.py][1871] : server lang: <none>
2025-06-13 09:49:56,960 [DEBUG][       Thread-250518][   transport.py][1871] : kex follows: False
2025-06-13 09:49:56,960 [DEBUG][       Thread-250518][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 09:49:56,960 [DEBUG][       Thread-250518][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 09:49:56,960 [DEBUG][       Thread-250518][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 09:49:56,961 [DEBUG][       Thread-250518][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 09:49:56,961 [DEBUG][       Thread-250518][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 09:49:56,961 [DEBUG][       Thread-250518][   transport.py][1871] : Compression: none
2025-06-13 09:49:56,961 [DEBUG][       Thread-250518][   transport.py][1871] : === End of kex handshake ===
2025-06-13 09:49:57,018 [DEBUG][       Thread-250518][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 09:49:57,019 [DEBUG][       Thread-250518][   transport.py][1871] : Switch to new keys ...
2025-06-13 09:49:57,019 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 09:49:57,020 [DEBUG][       Thread-250518][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 09:49:57,021 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 09:49:57,080 [DEBUG][       Thread-250518][   transport.py][1871] : userauth is OK
2025-06-13 09:49:57,080 [DEBUG][       Thread-250518][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 09:49:57,081 [DEBUG][       Thread-250518][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 09:49:57,081 [DEBUG][       Thread-250518][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 09:49:57,081 [DEBUG][       Thread-250518][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 09:49:57,100 [ INFO][       Thread-250518][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 09:49:57,100 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 09:49:57,101 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 09:49:58,168 [DEBUG][       Thread-250518][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 09:49:58,168 [DEBUG][       Thread-250518][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 09:49:58,217 [DEBUG][       Thread-250518][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 09:49:58,217 [DEBUG][       Thread-250518][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 09:49:58,228 [DEBUG][       Thread-250518][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 09:49:58,236 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 09:49:58,237 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 09:49:58,245 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 09:49:58,254 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 09:49:58,254 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 09:49:58,254 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 09:49:58,262 [DEBUG][       Thread-250518][   transport.py][1871] : EOF in transport thread
2025-06-13 09:50:02,015 [DEBUG][Thread-250520 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:50:04,387 [DEBUG][Thread-250521 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:50:08,264 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 09:50:08,264 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 09:50:08,264 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 09:50:08,265 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 09:50:08,728 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 9, 49, 28), 9.41, 51.56, 0.0, 19.53, 8.27, 0, 0, 0, 2, 0, 0),)
2025-06-13 09:50:08,728 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 09:49:28
2025-06-13 09:50:08,810 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 09:50:08,817 [DEBUG][       Thread-250522][   transport.py][1871] : starting thread (client mode): 0x842078e0
2025-06-13 09:50:08,817 [DEBUG][       Thread-250522][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 09:50:08,838 [DEBUG][       Thread-250522][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 09:50:08,838 [ INFO][       Thread-250522][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 09:50:08,841 [DEBUG][       Thread-250522][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 09:50:08,841 [DEBUG][       Thread-250522][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 09:50:08,841 [DEBUG][       Thread-250522][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 09:50:08,841 [DEBUG][       Thread-250522][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:50:08,841 [DEBUG][       Thread-250522][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:50:08,841 [DEBUG][       Thread-250522][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:50:08,842 [DEBUG][       Thread-250522][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:50:08,842 [DEBUG][       Thread-250522][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 09:50:08,842 [DEBUG][       Thread-250522][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 09:50:08,842 [DEBUG][       Thread-250522][   transport.py][1871] : client lang: <none>
2025-06-13 09:50:08,842 [DEBUG][       Thread-250522][   transport.py][1871] : server lang: <none>
2025-06-13 09:50:08,842 [DEBUG][       Thread-250522][   transport.py][1871] : kex follows: False
2025-06-13 09:50:08,842 [DEBUG][       Thread-250522][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 09:50:08,842 [DEBUG][       Thread-250522][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 09:50:08,842 [DEBUG][       Thread-250522][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 09:50:08,842 [DEBUG][       Thread-250522][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 09:50:08,842 [DEBUG][       Thread-250522][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 09:50:08,842 [DEBUG][       Thread-250522][   transport.py][1871] : Compression: none
2025-06-13 09:50:08,842 [DEBUG][       Thread-250522][   transport.py][1871] : === End of kex handshake ===
2025-06-13 09:50:08,859 [DEBUG][       Thread-250522][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 09:50:08,860 [DEBUG][       Thread-250522][   transport.py][1871] : Switch to new keys ...
2025-06-13 09:50:08,860 [DEBUG][       Thread-250522][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 09:50:08,861 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 09:50:08,861 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 09:50:08,862 [DEBUG][       Thread-250522][   transport.py][1871] : userauth is OK
2025-06-13 09:50:08,875 [ INFO][       Thread-250522][   transport.py][1871] : Authentication (password) successful!
2025-06-13 09:50:08,876 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 09:50:11,031 [DEBUG][Thread-250524 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:50:13,529 [DEBUG][       Thread-250522][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 09:50:13,529 [DEBUG][       Thread-250522][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 09:50:13,573 [DEBUG][       Thread-250522][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 09:50:13,573 [DEBUG][       Thread-250522][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 09:50:13,576 [DEBUG][       Thread-250522][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 09:50:13,624 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 09:50:13,625 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 09:50:13,626 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 09:50:13,628 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 09:50:13,641 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 09:50:13,643 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 09:50:13,643 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 09:50:13,644 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 09:50:13,644 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.325982 -999.00   +8.00  26.90     56   +0.00 1 1 1 1 1   887    0 8.58 19.88 ----- 26.9 26.9 33.4 28.7 12.2 -28.3 10.9 -28.7 9.7 -27.9 10.9 -26.3
2025-06-13 09:50:13,644 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 09:50:13,644 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 09:50:13,644 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.325982
2025-06-13 09:50:13,644 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 09:50:13,645 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 09:50:13,645 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 09:50:13,645 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 09:50:13,645 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 09:50:13,645 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T09:49:28', tmtdew=9.41, humidity=51.56, cloud=0.0, wind=19.53, temperature=8.27, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T07:49:24.845', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 09:50:13,646 [DEBUG][       Thread-250522][   transport.py][1871] : EOF in transport thread
2025-06-13 09:50:13,729 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 09:50:13,740 [DEBUG][       Thread-250526][   transport.py][1871] : starting thread (client mode): 0x863ef010
2025-06-13 09:50:13,740 [DEBUG][       Thread-250526][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 09:50:13,755 [DEBUG][       Thread-250526][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 09:50:13,755 [ INFO][       Thread-250526][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 09:50:13,763 [DEBUG][       Thread-250526][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 09:50:13,763 [DEBUG][       Thread-250526][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 09:50:13,763 [DEBUG][       Thread-250526][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 09:50:13,763 [DEBUG][       Thread-250526][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:50:13,763 [DEBUG][       Thread-250526][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:50:13,763 [DEBUG][       Thread-250526][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:50:13,763 [DEBUG][       Thread-250526][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:50:13,763 [DEBUG][       Thread-250526][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 09:50:13,763 [DEBUG][       Thread-250526][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 09:50:13,763 [DEBUG][       Thread-250526][   transport.py][1871] : client lang: <none>
2025-06-13 09:50:13,763 [DEBUG][       Thread-250526][   transport.py][1871] : server lang: <none>
2025-06-13 09:50:13,763 [DEBUG][       Thread-250526][   transport.py][1871] : kex follows: False
2025-06-13 09:50:13,763 [DEBUG][       Thread-250526][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 09:50:13,763 [DEBUG][       Thread-250526][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 09:50:13,763 [DEBUG][       Thread-250526][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 09:50:13,763 [DEBUG][       Thread-250526][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 09:50:13,763 [DEBUG][       Thread-250526][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 09:50:13,763 [DEBUG][       Thread-250526][   transport.py][1871] : Compression: none
2025-06-13 09:50:13,763 [DEBUG][       Thread-250526][   transport.py][1871] : === End of kex handshake ===
2025-06-13 09:50:13,822 [DEBUG][       Thread-250526][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 09:50:13,823 [DEBUG][       Thread-250526][   transport.py][1871] : Switch to new keys ...
2025-06-13 09:50:13,823 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 09:50:13,824 [DEBUG][       Thread-250526][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 09:50:13,824 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 09:50:13,878 [DEBUG][       Thread-250526][   transport.py][1871] : userauth is OK
2025-06-13 09:50:13,878 [DEBUG][       Thread-250526][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 09:50:13,878 [DEBUG][       Thread-250526][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 09:50:13,878 [DEBUG][       Thread-250526][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 09:50:13,878 [DEBUG][       Thread-250526][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 09:50:13,892 [ INFO][       Thread-250526][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 09:50:13,892 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 09:50:13,893 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 09:50:14,886 [DEBUG][       Thread-250526][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 09:50:14,886 [DEBUG][       Thread-250526][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 09:50:14,935 [DEBUG][       Thread-250526][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 09:50:14,936 [DEBUG][       Thread-250526][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 09:50:14,945 [DEBUG][       Thread-250526][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 09:50:14,953 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 09:50:14,953 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 09:50:14,962 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 09:50:14,973 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 09:50:14,973 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 09:50:14,974 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 09:50:14,986 [DEBUG][       Thread-250526][   transport.py][1871] : EOF in transport thread
2025-06-13 09:50:20,050 [DEBUG][Thread-250528 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:50:21,102 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:50:21,103 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:50:24,984 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 09:50:24,984 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 09:50:24,993 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 09:50:24,995 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 09:50:25,470 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 9, 49, 28), 9.41, 51.56, 0.0, 19.53, 8.27, 0, 0, 0, 2, 0, 0),)
2025-06-13 09:50:25,470 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 09:49:28
2025-06-13 09:50:25,552 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 09:50:25,556 [DEBUG][       Thread-250529][   transport.py][1871] : starting thread (client mode): 0x867b6380
2025-06-13 09:50:25,556 [DEBUG][       Thread-250529][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 09:50:25,577 [DEBUG][       Thread-250529][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 09:50:25,578 [ INFO][       Thread-250529][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 09:50:25,581 [DEBUG][       Thread-250529][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 09:50:25,581 [DEBUG][       Thread-250529][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 09:50:25,581 [DEBUG][       Thread-250529][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 09:50:25,581 [DEBUG][       Thread-250529][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:50:25,581 [DEBUG][       Thread-250529][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:50:25,581 [DEBUG][       Thread-250529][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:50:25,581 [DEBUG][       Thread-250529][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:50:25,581 [DEBUG][       Thread-250529][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 09:50:25,581 [DEBUG][       Thread-250529][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 09:50:25,581 [DEBUG][       Thread-250529][   transport.py][1871] : client lang: <none>
2025-06-13 09:50:25,581 [DEBUG][       Thread-250529][   transport.py][1871] : server lang: <none>
2025-06-13 09:50:25,581 [DEBUG][       Thread-250529][   transport.py][1871] : kex follows: False
2025-06-13 09:50:25,581 [DEBUG][       Thread-250529][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 09:50:25,581 [DEBUG][       Thread-250529][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 09:50:25,581 [DEBUG][       Thread-250529][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 09:50:25,581 [DEBUG][       Thread-250529][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 09:50:25,581 [DEBUG][       Thread-250529][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 09:50:25,581 [DEBUG][       Thread-250529][   transport.py][1871] : Compression: none
2025-06-13 09:50:25,581 [DEBUG][       Thread-250529][   transport.py][1871] : === End of kex handshake ===
2025-06-13 09:50:25,600 [DEBUG][       Thread-250529][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 09:50:25,601 [DEBUG][       Thread-250529][   transport.py][1871] : Switch to new keys ...
2025-06-13 09:50:25,601 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 09:50:25,602 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 09:50:25,602 [DEBUG][       Thread-250529][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 09:50:25,602 [DEBUG][       Thread-250529][   transport.py][1871] : userauth is OK
2025-06-13 09:50:25,616 [ INFO][       Thread-250529][   transport.py][1871] : Authentication (password) successful!
2025-06-13 09:50:25,616 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 09:50:26,218 [DEBUG][       Thread-250529][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 09:50:26,218 [DEBUG][       Thread-250529][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 09:50:26,261 [DEBUG][       Thread-250529][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 09:50:26,261 [DEBUG][       Thread-250529][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 09:50:26,263 [DEBUG][       Thread-250529][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 09:50:26,269 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 09:50:26,269 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 09:50:26,271 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 09:50:26,272 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 09:50:26,277 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 09:50:26,279 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 09:50:26,279 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 09:50:26,280 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 09:50:26,280 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.326329 -999.00   +8.00  17.81     56   +0.00 1 1 1 1 1   887    0 8.57 19.05 ----- 20.4 17.8 31.8 28.4 12.2 -28.2 10.9 -29.3 9.7 -27.5 10.9 -26.5
2025-06-13 09:50:26,280 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 09:50:26,280 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 09:50:26,280 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.326329
2025-06-13 09:50:26,280 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 09:50:26,281 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 09:50:26,281 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 09:50:26,281 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 09:50:26,281 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 09:50:26,281 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T09:49:28', tmtdew=9.41, humidity=51.56, cloud=0.0, wind=19.53, temperature=8.27, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T07:49:54.826', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 09:50:26,282 [DEBUG][       Thread-250529][   transport.py][1871] : EOF in transport thread
2025-06-13 09:50:26,366 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 09:50:26,375 [DEBUG][       Thread-250532][   transport.py][1871] : starting thread (client mode): 0x863c9750
2025-06-13 09:50:26,375 [DEBUG][       Thread-250532][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 09:50:26,390 [DEBUG][       Thread-250532][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 09:50:26,391 [ INFO][       Thread-250532][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 09:50:26,398 [DEBUG][       Thread-250532][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 09:50:26,398 [DEBUG][       Thread-250532][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 09:50:26,398 [DEBUG][       Thread-250532][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 09:50:26,398 [DEBUG][       Thread-250532][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:50:26,398 [DEBUG][       Thread-250532][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:50:26,398 [DEBUG][       Thread-250532][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:50:26,398 [DEBUG][       Thread-250532][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:50:26,398 [DEBUG][       Thread-250532][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 09:50:26,399 [DEBUG][       Thread-250532][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 09:50:26,399 [DEBUG][       Thread-250532][   transport.py][1871] : client lang: <none>
2025-06-13 09:50:26,399 [DEBUG][       Thread-250532][   transport.py][1871] : server lang: <none>
2025-06-13 09:50:26,399 [DEBUG][       Thread-250532][   transport.py][1871] : kex follows: False
2025-06-13 09:50:26,399 [DEBUG][       Thread-250532][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 09:50:26,399 [DEBUG][       Thread-250532][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 09:50:26,399 [DEBUG][       Thread-250532][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 09:50:26,399 [DEBUG][       Thread-250532][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 09:50:26,399 [DEBUG][       Thread-250532][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 09:50:26,399 [DEBUG][       Thread-250532][   transport.py][1871] : Compression: none
2025-06-13 09:50:26,399 [DEBUG][       Thread-250532][   transport.py][1871] : === End of kex handshake ===
2025-06-13 09:50:26,454 [DEBUG][       Thread-250532][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 09:50:26,455 [DEBUG][       Thread-250532][   transport.py][1871] : Switch to new keys ...
2025-06-13 09:50:26,455 [DEBUG][       Thread-250532][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 09:50:26,456 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 09:50:26,456 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 09:50:26,517 [DEBUG][       Thread-250532][   transport.py][1871] : userauth is OK
2025-06-13 09:50:26,517 [DEBUG][       Thread-250532][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 09:50:26,517 [DEBUG][       Thread-250532][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 09:50:26,517 [DEBUG][       Thread-250532][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 09:50:26,517 [DEBUG][       Thread-250532][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 09:50:26,537 [ INFO][       Thread-250532][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 09:50:26,537 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 09:50:26,538 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 09:50:27,560 [DEBUG][       Thread-250532][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 09:50:27,560 [DEBUG][       Thread-250532][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 09:50:27,607 [DEBUG][       Thread-250532][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 09:50:27,608 [DEBUG][       Thread-250532][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 09:50:27,616 [DEBUG][       Thread-250532][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 09:50:27,625 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 09:50:27,625 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 09:50:27,634 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 09:50:27,643 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 09:50:27,643 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 09:50:27,643 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 09:50:27,651 [DEBUG][       Thread-250532][   transport.py][1871] : EOF in transport thread
2025-06-13 09:50:29,068 [DEBUG][Thread-250534 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:50:31,957 [DEBUG][Thread-250535 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:50:33,001 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:50:33,001 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:50:37,654 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 09:50:37,654 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 09:50:37,654 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 09:50:37,656 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 09:50:38,085 [DEBUG][Thread-250536 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:50:38,122 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 9, 50, 32), 9.36, 51.64, 0.0, 17.51, 8.33, 0, 0, 0, 2, 0, 0),)
2025-06-13 09:50:38,122 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 09:50:32
2025-06-13 09:50:38,204 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 09:50:38,210 [DEBUG][       Thread-250537][   transport.py][1871] : starting thread (client mode): 0x867b7520
2025-06-13 09:50:38,210 [DEBUG][       Thread-250537][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 09:50:38,230 [DEBUG][       Thread-250537][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 09:50:38,230 [ INFO][       Thread-250537][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 09:50:38,234 [DEBUG][       Thread-250537][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 09:50:38,234 [DEBUG][       Thread-250537][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 09:50:38,234 [DEBUG][       Thread-250537][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 09:50:38,234 [DEBUG][       Thread-250537][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:50:38,234 [DEBUG][       Thread-250537][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:50:38,234 [DEBUG][       Thread-250537][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:50:38,234 [DEBUG][       Thread-250537][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:50:38,234 [DEBUG][       Thread-250537][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 09:50:38,234 [DEBUG][       Thread-250537][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 09:50:38,234 [DEBUG][       Thread-250537][   transport.py][1871] : client lang: <none>
2025-06-13 09:50:38,234 [DEBUG][       Thread-250537][   transport.py][1871] : server lang: <none>
2025-06-13 09:50:38,234 [DEBUG][       Thread-250537][   transport.py][1871] : kex follows: False
2025-06-13 09:50:38,234 [DEBUG][       Thread-250537][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 09:50:38,234 [DEBUG][       Thread-250537][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 09:50:38,234 [DEBUG][       Thread-250537][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 09:50:38,234 [DEBUG][       Thread-250537][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 09:50:38,234 [DEBUG][       Thread-250537][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 09:50:38,234 [DEBUG][       Thread-250537][   transport.py][1871] : Compression: none
2025-06-13 09:50:38,234 [DEBUG][       Thread-250537][   transport.py][1871] : === End of kex handshake ===
2025-06-13 09:50:38,250 [DEBUG][       Thread-250537][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 09:50:38,251 [DEBUG][       Thread-250537][   transport.py][1871] : Switch to new keys ...
2025-06-13 09:50:38,251 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 09:50:38,252 [DEBUG][       Thread-250537][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 09:50:38,252 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 09:50:38,254 [DEBUG][       Thread-250537][   transport.py][1871] : userauth is OK
2025-06-13 09:50:38,278 [ INFO][       Thread-250537][   transport.py][1871] : Authentication (password) successful!
2025-06-13 09:50:38,278 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 09:50:38,907 [DEBUG][       Thread-250537][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 09:50:38,907 [DEBUG][       Thread-250537][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 09:50:38,948 [DEBUG][       Thread-250537][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 09:50:38,948 [DEBUG][       Thread-250537][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 09:50:38,951 [DEBUG][       Thread-250537][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 09:50:38,961 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 09:50:38,962 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 09:50:38,963 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 09:50:38,964 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 09:50:38,966 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 09:50:38,967 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 09:50:38,967 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 09:50:38,967 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 09:50:38,968 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.326329 -999.00   +8.00  17.81     56   +0.00 1 1 1 1 1   887    0 8.57 19.05 ----- 20.4 17.8 31.8 28.4 12.2 -28.2 10.9 -29.3 9.7 -27.5 10.9 -26.5
2025-06-13 09:50:38,968 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 09:50:38,968 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 09:50:38,968 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.326329
2025-06-13 09:50:38,968 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 09:50:38,968 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 09:50:38,968 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 09:50:38,968 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 09:50:38,968 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 09:50:38,968 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T09:50:32', tmtdew=9.36, humidity=51.64, cloud=0.0, wind=17.51, temperature=8.33, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T07:49:54.826', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 09:50:38,969 [DEBUG][       Thread-250537][   transport.py][1871] : EOF in transport thread
2025-06-13 09:50:39,042 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 09:50:39,055 [DEBUG][       Thread-250540][   transport.py][1871] : starting thread (client mode): 0x863ef700
2025-06-13 09:50:39,055 [DEBUG][       Thread-250540][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 09:50:39,070 [DEBUG][       Thread-250540][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 09:50:39,070 [ INFO][       Thread-250540][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 09:50:39,077 [DEBUG][       Thread-250540][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 09:50:39,078 [DEBUG][       Thread-250540][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 09:50:39,078 [DEBUG][       Thread-250540][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 09:50:39,078 [DEBUG][       Thread-250540][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:50:39,078 [DEBUG][       Thread-250540][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:50:39,078 [DEBUG][       Thread-250540][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:50:39,078 [DEBUG][       Thread-250540][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:50:39,078 [DEBUG][       Thread-250540][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 09:50:39,078 [DEBUG][       Thread-250540][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 09:50:39,078 [DEBUG][       Thread-250540][   transport.py][1871] : client lang: <none>
2025-06-13 09:50:39,078 [DEBUG][       Thread-250540][   transport.py][1871] : server lang: <none>
2025-06-13 09:50:39,078 [DEBUG][       Thread-250540][   transport.py][1871] : kex follows: False
2025-06-13 09:50:39,078 [DEBUG][       Thread-250540][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 09:50:39,078 [DEBUG][       Thread-250540][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 09:50:39,078 [DEBUG][       Thread-250540][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 09:50:39,078 [DEBUG][       Thread-250540][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 09:50:39,078 [DEBUG][       Thread-250540][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 09:50:39,078 [DEBUG][       Thread-250540][   transport.py][1871] : Compression: none
2025-06-13 09:50:39,078 [DEBUG][       Thread-250540][   transport.py][1871] : === End of kex handshake ===
2025-06-13 09:50:39,137 [DEBUG][       Thread-250540][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 09:50:39,138 [DEBUG][       Thread-250540][   transport.py][1871] : Switch to new keys ...
2025-06-13 09:50:39,138 [DEBUG][       Thread-250540][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 09:50:39,138 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 09:50:39,139 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 09:50:39,195 [DEBUG][       Thread-250540][   transport.py][1871] : userauth is OK
2025-06-13 09:50:39,195 [DEBUG][       Thread-250540][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 09:50:39,195 [DEBUG][       Thread-250540][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 09:50:39,195 [DEBUG][       Thread-250540][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 09:50:39,195 [DEBUG][       Thread-250540][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 09:50:39,217 [ INFO][       Thread-250540][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 09:50:39,217 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 09:50:39,217 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 09:50:40,215 [DEBUG][       Thread-250540][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 09:50:40,215 [DEBUG][       Thread-250540][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 09:50:40,268 [DEBUG][       Thread-250540][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 09:50:40,268 [DEBUG][       Thread-250540][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 09:50:40,277 [DEBUG][       Thread-250540][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 09:50:40,289 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 09:50:40,290 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 09:50:40,298 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 09:50:40,308 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 09:50:40,308 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 09:50:40,308 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 09:50:40,320 [DEBUG][       Thread-250540][   transport.py][1871] : EOF in transport thread
2025-06-13 09:50:47,102 [DEBUG][Thread-250542 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:50:50,319 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 09:50:50,319 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 09:50:50,319 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 09:50:50,321 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 09:50:50,785 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 9, 50, 32), 9.36, 51.64, 0.0, 17.51, 8.33, 0, 0, 0, 2, 0, 0),)
2025-06-13 09:50:50,785 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 09:50:32
2025-06-13 09:50:50,866 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 09:50:50,874 [DEBUG][       Thread-250543][   transport.py][1871] : starting thread (client mode): 0x867b7010
2025-06-13 09:50:50,874 [DEBUG][       Thread-250543][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 09:50:50,893 [DEBUG][       Thread-250543][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 09:50:50,893 [ INFO][       Thread-250543][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 09:50:50,895 [DEBUG][       Thread-250543][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 09:50:50,895 [DEBUG][       Thread-250543][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 09:50:50,895 [DEBUG][       Thread-250543][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 09:50:50,895 [DEBUG][       Thread-250543][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:50:50,895 [DEBUG][       Thread-250543][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:50:50,895 [DEBUG][       Thread-250543][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:50:50,895 [DEBUG][       Thread-250543][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:50:50,895 [DEBUG][       Thread-250543][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 09:50:50,895 [DEBUG][       Thread-250543][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 09:50:50,895 [DEBUG][       Thread-250543][   transport.py][1871] : client lang: <none>
2025-06-13 09:50:50,895 [DEBUG][       Thread-250543][   transport.py][1871] : server lang: <none>
2025-06-13 09:50:50,895 [DEBUG][       Thread-250543][   transport.py][1871] : kex follows: False
2025-06-13 09:50:50,895 [DEBUG][       Thread-250543][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 09:50:50,895 [DEBUG][       Thread-250543][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 09:50:50,895 [DEBUG][       Thread-250543][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 09:50:50,895 [DEBUG][       Thread-250543][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 09:50:50,895 [DEBUG][       Thread-250543][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 09:50:50,895 [DEBUG][       Thread-250543][   transport.py][1871] : Compression: none
2025-06-13 09:50:50,895 [DEBUG][       Thread-250543][   transport.py][1871] : === End of kex handshake ===
2025-06-13 09:50:50,907 [DEBUG][       Thread-250543][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 09:50:50,907 [DEBUG][       Thread-250543][   transport.py][1871] : Switch to new keys ...
2025-06-13 09:50:50,908 [DEBUG][       Thread-250543][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 09:50:50,908 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 09:50:50,908 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 09:50:50,910 [DEBUG][       Thread-250543][   transport.py][1871] : userauth is OK
2025-06-13 09:50:50,934 [ INFO][       Thread-250543][   transport.py][1871] : Authentication (password) successful!
2025-06-13 09:50:50,934 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 09:50:51,515 [DEBUG][       Thread-250543][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 09:50:51,515 [DEBUG][       Thread-250543][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 09:50:51,556 [DEBUG][       Thread-250543][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 09:50:51,557 [DEBUG][       Thread-250543][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 09:50:51,559 [DEBUG][       Thread-250543][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 09:50:51,572 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 09:50:51,572 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 09:50:51,575 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 09:50:51,577 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 09:50:51,583 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 09:50:51,587 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 09:50:51,587 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 09:50:51,588 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 09:50:51,588 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.326677 -999.00   +8.10  21.13     56   +0.00 1 1 1 1 1   887    0 8.42 17.07 ----- 21.1 21.1 41.0 24.6 12.2 -28.2 11.0 -29.1 9.8 -27.9 10.9 -26.2
2025-06-13 09:50:51,588 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 09:50:51,588 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 09:50:51,588 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.326677
2025-06-13 09:50:51,589 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 09:50:51,589 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 09:50:51,589 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 09:50:51,589 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 09:50:51,589 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 09:50:51,589 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T09:50:32', tmtdew=9.36, humidity=51.64, cloud=0.0, wind=17.51, temperature=8.33, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T07:50:24.893', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 09:50:51,591 [DEBUG][       Thread-250543][   transport.py][1871] : EOF in transport thread
2025-06-13 09:50:51,673 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 09:50:51,690 [DEBUG][       Thread-250546][   transport.py][1871] : starting thread (client mode): 0x863bc3d0
2025-06-13 09:50:51,690 [DEBUG][       Thread-250546][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 09:50:51,707 [DEBUG][       Thread-250546][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 09:50:51,708 [ INFO][       Thread-250546][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 09:50:51,715 [DEBUG][       Thread-250546][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 09:50:51,715 [DEBUG][       Thread-250546][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 09:50:51,715 [DEBUG][       Thread-250546][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 09:50:51,715 [DEBUG][       Thread-250546][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:50:51,715 [DEBUG][       Thread-250546][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:50:51,716 [DEBUG][       Thread-250546][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:50:51,716 [DEBUG][       Thread-250546][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:50:51,716 [DEBUG][       Thread-250546][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 09:50:51,716 [DEBUG][       Thread-250546][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 09:50:51,716 [DEBUG][       Thread-250546][   transport.py][1871] : client lang: <none>
2025-06-13 09:50:51,716 [DEBUG][       Thread-250546][   transport.py][1871] : server lang: <none>
2025-06-13 09:50:51,716 [DEBUG][       Thread-250546][   transport.py][1871] : kex follows: False
2025-06-13 09:50:51,716 [DEBUG][       Thread-250546][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 09:50:51,716 [DEBUG][       Thread-250546][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 09:50:51,716 [DEBUG][       Thread-250546][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 09:50:51,716 [DEBUG][       Thread-250546][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 09:50:51,716 [DEBUG][       Thread-250546][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 09:50:51,716 [DEBUG][       Thread-250546][   transport.py][1871] : Compression: none
2025-06-13 09:50:51,716 [DEBUG][       Thread-250546][   transport.py][1871] : === End of kex handshake ===
2025-06-13 09:50:51,779 [DEBUG][       Thread-250546][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 09:50:51,779 [DEBUG][       Thread-250546][   transport.py][1871] : Switch to new keys ...
2025-06-13 09:50:51,779 [DEBUG][       Thread-250546][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 09:50:51,780 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 09:50:51,780 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 09:50:51,835 [DEBUG][       Thread-250546][   transport.py][1871] : userauth is OK
2025-06-13 09:50:51,835 [DEBUG][       Thread-250546][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 09:50:51,835 [DEBUG][       Thread-250546][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 09:50:51,835 [DEBUG][       Thread-250546][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 09:50:51,835 [DEBUG][       Thread-250546][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 09:50:51,854 [ INFO][       Thread-250546][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 09:50:51,854 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 09:50:51,854 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 09:50:52,878 [DEBUG][       Thread-250546][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 09:50:52,878 [DEBUG][       Thread-250546][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 09:50:52,931 [DEBUG][       Thread-250546][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 09:50:52,931 [DEBUG][       Thread-250546][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 09:50:52,940 [DEBUG][       Thread-250546][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 09:50:52,950 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 09:50:52,950 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 09:50:52,959 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 09:50:52,971 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 09:50:52,971 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 09:50:52,972 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 09:50:52,980 [DEBUG][       Thread-250546][   transport.py][1871] : EOF in transport thread
2025-06-13 09:50:56,126 [DEBUG][Thread-250548 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:51:02,982 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 09:51:02,983 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 09:51:02,983 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 09:51:02,985 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 09:51:03,457 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 9, 50, 32), 9.36, 51.64, 0.0, 17.51, 8.33, 0, 0, 0, 2, 0, 0),)
2025-06-13 09:51:03,457 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 09:50:32
2025-06-13 09:51:03,540 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 09:51:03,544 [DEBUG][       Thread-250549][   transport.py][1871] : starting thread (client mode): 0x863bd360
2025-06-13 09:51:03,544 [DEBUG][       Thread-250549][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 09:51:03,565 [DEBUG][       Thread-250549][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 09:51:03,566 [ INFO][       Thread-250549][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 09:51:03,570 [DEBUG][       Thread-250549][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 09:51:03,570 [DEBUG][       Thread-250549][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 09:51:03,570 [DEBUG][       Thread-250549][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 09:51:03,570 [DEBUG][       Thread-250549][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:51:03,570 [DEBUG][       Thread-250549][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:51:03,570 [DEBUG][       Thread-250549][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:51:03,570 [DEBUG][       Thread-250549][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:51:03,570 [DEBUG][       Thread-250549][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 09:51:03,570 [DEBUG][       Thread-250549][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 09:51:03,570 [DEBUG][       Thread-250549][   transport.py][1871] : client lang: <none>
2025-06-13 09:51:03,570 [DEBUG][       Thread-250549][   transport.py][1871] : server lang: <none>
2025-06-13 09:51:03,570 [DEBUG][       Thread-250549][   transport.py][1871] : kex follows: False
2025-06-13 09:51:03,570 [DEBUG][       Thread-250549][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 09:51:03,570 [DEBUG][       Thread-250549][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 09:51:03,570 [DEBUG][       Thread-250549][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 09:51:03,570 [DEBUG][       Thread-250549][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 09:51:03,570 [DEBUG][       Thread-250549][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 09:51:03,570 [DEBUG][       Thread-250549][   transport.py][1871] : Compression: none
2025-06-13 09:51:03,570 [DEBUG][       Thread-250549][   transport.py][1871] : === End of kex handshake ===
2025-06-13 09:51:03,587 [DEBUG][       Thread-250549][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 09:51:03,587 [DEBUG][       Thread-250549][   transport.py][1871] : Switch to new keys ...
2025-06-13 09:51:03,588 [DEBUG][       Thread-250549][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 09:51:03,588 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 09:51:03,588 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 09:51:03,589 [DEBUG][       Thread-250549][   transport.py][1871] : userauth is OK
2025-06-13 09:51:03,602 [ INFO][       Thread-250549][   transport.py][1871] : Authentication (password) successful!
2025-06-13 09:51:03,603 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 09:51:04,258 [DEBUG][       Thread-250549][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 09:51:04,258 [DEBUG][       Thread-250549][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 09:51:04,301 [DEBUG][       Thread-250549][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 09:51:04,301 [DEBUG][       Thread-250549][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 09:51:04,303 [DEBUG][       Thread-250549][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 09:51:04,315 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 09:51:04,315 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 09:51:04,316 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 09:51:04,317 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 09:51:04,320 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 09:51:04,322 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 09:51:04,322 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 09:51:04,322 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 09:51:04,322 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.326677 -999.00   +8.10  21.13     56   +0.00 1 1 1 1 1   887    0 8.42 17.07 ----- 21.1 21.1 41.0 24.6 12.2 -28.2 11.0 -29.1 9.8 -27.9 10.9 -26.2
2025-06-13 09:51:04,322 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 09:51:04,322 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 09:51:04,322 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.326677
2025-06-13 09:51:04,322 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 09:51:04,323 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 09:51:04,323 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 09:51:04,323 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 09:51:04,323 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 09:51:04,323 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T09:50:32', tmtdew=9.36, humidity=51.64, cloud=0.0, wind=17.51, temperature=8.33, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T07:50:24.893', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 09:51:04,323 [DEBUG][       Thread-250549][   transport.py][1871] : EOF in transport thread
2025-06-13 09:51:04,407 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 09:51:04,417 [DEBUG][       Thread-250552][   transport.py][1871] : starting thread (client mode): 0x863cbf40
2025-06-13 09:51:04,417 [DEBUG][       Thread-250552][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 09:51:04,432 [DEBUG][       Thread-250552][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 09:51:04,433 [ INFO][       Thread-250552][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 09:51:04,435 [DEBUG][Thread-250554 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:51:04,440 [DEBUG][       Thread-250552][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 09:51:04,440 [DEBUG][       Thread-250552][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 09:51:04,440 [DEBUG][       Thread-250552][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 09:51:04,440 [DEBUG][       Thread-250552][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:51:04,440 [DEBUG][       Thread-250552][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:51:04,440 [DEBUG][       Thread-250552][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:51:04,440 [DEBUG][       Thread-250552][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:51:04,440 [DEBUG][       Thread-250552][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 09:51:04,440 [DEBUG][       Thread-250552][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 09:51:04,440 [DEBUG][       Thread-250552][   transport.py][1871] : client lang: <none>
2025-06-13 09:51:04,440 [DEBUG][       Thread-250552][   transport.py][1871] : server lang: <none>
2025-06-13 09:51:04,440 [DEBUG][       Thread-250552][   transport.py][1871] : kex follows: False
2025-06-13 09:51:04,440 [DEBUG][       Thread-250552][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 09:51:04,440 [DEBUG][       Thread-250552][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 09:51:04,440 [DEBUG][       Thread-250552][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 09:51:04,440 [DEBUG][       Thread-250552][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 09:51:04,440 [DEBUG][       Thread-250552][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 09:51:04,440 [DEBUG][       Thread-250552][   transport.py][1871] : Compression: none
2025-06-13 09:51:04,440 [DEBUG][       Thread-250552][   transport.py][1871] : === End of kex handshake ===
2025-06-13 09:51:04,501 [DEBUG][       Thread-250552][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 09:51:04,501 [DEBUG][       Thread-250552][   transport.py][1871] : Switch to new keys ...
2025-06-13 09:51:04,501 [DEBUG][       Thread-250552][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 09:51:04,501 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 09:51:04,502 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 09:51:04,558 [DEBUG][       Thread-250552][   transport.py][1871] : userauth is OK
2025-06-13 09:51:04,558 [DEBUG][       Thread-250552][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 09:51:04,558 [DEBUG][       Thread-250552][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 09:51:04,559 [DEBUG][       Thread-250552][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 09:51:04,559 [DEBUG][       Thread-250552][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 09:51:04,572 [ INFO][       Thread-250552][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 09:51:04,572 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 09:51:04,572 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 09:51:05,143 [DEBUG][Thread-250555 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:51:05,600 [DEBUG][       Thread-250552][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 09:51:05,600 [DEBUG][       Thread-250552][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 09:51:05,647 [DEBUG][       Thread-250552][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 09:51:05,647 [DEBUG][       Thread-250552][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 09:51:05,658 [DEBUG][       Thread-250552][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 09:51:05,670 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 09:51:05,670 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 09:51:05,678 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 09:51:05,686 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 09:51:05,686 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 09:51:05,686 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 09:51:05,694 [DEBUG][       Thread-250552][   transport.py][1871] : EOF in transport thread
2025-06-13 09:51:14,161 [DEBUG][Thread-250556 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:51:15,690 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 09:51:15,690 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 09:51:15,690 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 09:51:15,693 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 09:51:16,152 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 9, 51, 3), 9.42, 51.4, 0.0, 18.72, 8.33, 0, 0, 0, 2, 0, 0),)
2025-06-13 09:51:16,152 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 09:51:03
2025-06-13 09:51:16,233 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 09:51:16,239 [DEBUG][       Thread-250557][   transport.py][1871] : starting thread (client mode): 0x867b77f0
2025-06-13 09:51:16,239 [DEBUG][       Thread-250557][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 09:51:16,259 [DEBUG][       Thread-250557][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 09:51:16,260 [ INFO][       Thread-250557][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 09:51:16,263 [DEBUG][       Thread-250557][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 09:51:16,263 [DEBUG][       Thread-250557][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 09:51:16,263 [DEBUG][       Thread-250557][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 09:51:16,263 [DEBUG][       Thread-250557][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:51:16,263 [DEBUG][       Thread-250557][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:51:16,263 [DEBUG][       Thread-250557][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:51:16,263 [DEBUG][       Thread-250557][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:51:16,263 [DEBUG][       Thread-250557][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 09:51:16,263 [DEBUG][       Thread-250557][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 09:51:16,263 [DEBUG][       Thread-250557][   transport.py][1871] : client lang: <none>
2025-06-13 09:51:16,264 [DEBUG][       Thread-250557][   transport.py][1871] : server lang: <none>
2025-06-13 09:51:16,264 [DEBUG][       Thread-250557][   transport.py][1871] : kex follows: False
2025-06-13 09:51:16,264 [DEBUG][       Thread-250557][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 09:51:16,264 [DEBUG][       Thread-250557][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 09:51:16,264 [DEBUG][       Thread-250557][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 09:51:16,264 [DEBUG][       Thread-250557][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 09:51:16,264 [DEBUG][       Thread-250557][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 09:51:16,264 [DEBUG][       Thread-250557][   transport.py][1871] : Compression: none
2025-06-13 09:51:16,264 [DEBUG][       Thread-250557][   transport.py][1871] : === End of kex handshake ===
2025-06-13 09:51:16,279 [DEBUG][       Thread-250557][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 09:51:16,280 [DEBUG][       Thread-250557][   transport.py][1871] : Switch to new keys ...
2025-06-13 09:51:16,280 [DEBUG][       Thread-250557][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 09:51:16,280 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 09:51:16,280 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 09:51:16,282 [DEBUG][       Thread-250557][   transport.py][1871] : userauth is OK
2025-06-13 09:51:16,306 [ INFO][       Thread-250557][   transport.py][1871] : Authentication (password) successful!
2025-06-13 09:51:16,306 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 09:51:16,953 [DEBUG][       Thread-250557][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 09:51:16,953 [DEBUG][       Thread-250557][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 09:51:17,000 [DEBUG][       Thread-250557][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 09:51:17,000 [DEBUG][       Thread-250557][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 09:51:17,003 [DEBUG][       Thread-250557][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 09:51:17,015 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 09:51:17,015 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 09:51:17,016 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 09:51:17,017 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 09:51:17,019 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 09:51:17,020 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 09:51:17,020 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 09:51:17,020 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 09:51:17,020 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.326677 -999.00   +8.10  21.13     56   +0.00 1 1 1 1 1   887    0 8.42 17.07 ----- 21.1 21.1 41.0 24.6 12.2 -28.2 11.0 -29.1 9.8 -27.9 10.9 -26.2
2025-06-13 09:51:17,020 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 09:51:17,020 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 09:51:17,020 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.326677
2025-06-13 09:51:17,020 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 09:51:17,021 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 09:51:17,021 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 09:51:17,021 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 09:51:17,021 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 09:51:17,021 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T09:51:03', tmtdew=9.42, humidity=51.4, cloud=0.0, wind=18.72, temperature=8.33, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T07:50:24.893', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 09:51:17,021 [DEBUG][       Thread-250557][   transport.py][1871] : EOF in transport thread
2025-06-13 09:51:17,093 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 09:51:17,103 [DEBUG][       Thread-250560][   transport.py][1871] : starting thread (client mode): 0x863ed5d0
2025-06-13 09:51:17,103 [DEBUG][       Thread-250560][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 09:51:17,117 [DEBUG][       Thread-250560][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 09:51:17,117 [ INFO][       Thread-250560][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 09:51:17,125 [DEBUG][       Thread-250560][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 09:51:17,125 [DEBUG][       Thread-250560][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 09:51:17,125 [DEBUG][       Thread-250560][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 09:51:17,125 [DEBUG][       Thread-250560][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:51:17,125 [DEBUG][       Thread-250560][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:51:17,125 [DEBUG][       Thread-250560][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:51:17,125 [DEBUG][       Thread-250560][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:51:17,125 [DEBUG][       Thread-250560][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 09:51:17,125 [DEBUG][       Thread-250560][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 09:51:17,125 [DEBUG][       Thread-250560][   transport.py][1871] : client lang: <none>
2025-06-13 09:51:17,125 [DEBUG][       Thread-250560][   transport.py][1871] : server lang: <none>
2025-06-13 09:51:17,126 [DEBUG][       Thread-250560][   transport.py][1871] : kex follows: False
2025-06-13 09:51:17,126 [DEBUG][       Thread-250560][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 09:51:17,126 [DEBUG][       Thread-250560][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 09:51:17,126 [DEBUG][       Thread-250560][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 09:51:17,126 [DEBUG][       Thread-250560][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 09:51:17,126 [DEBUG][       Thread-250560][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 09:51:17,126 [DEBUG][       Thread-250560][   transport.py][1871] : Compression: none
2025-06-13 09:51:17,126 [DEBUG][       Thread-250560][   transport.py][1871] : === End of kex handshake ===
2025-06-13 09:51:17,186 [DEBUG][       Thread-250560][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 09:51:17,187 [DEBUG][       Thread-250560][   transport.py][1871] : Switch to new keys ...
2025-06-13 09:51:17,187 [DEBUG][       Thread-250560][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 09:51:17,188 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 09:51:17,188 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 09:51:17,243 [DEBUG][       Thread-250560][   transport.py][1871] : userauth is OK
2025-06-13 09:51:17,243 [DEBUG][       Thread-250560][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 09:51:17,243 [DEBUG][       Thread-250560][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 09:51:17,243 [DEBUG][       Thread-250560][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 09:51:17,243 [DEBUG][       Thread-250560][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 09:51:17,262 [ INFO][       Thread-250560][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 09:51:17,262 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 09:51:17,263 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 09:51:18,272 [DEBUG][       Thread-250560][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 09:51:18,273 [DEBUG][       Thread-250560][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 09:51:18,328 [DEBUG][       Thread-250560][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 09:51:18,329 [DEBUG][       Thread-250560][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 09:51:18,347 [DEBUG][       Thread-250560][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 09:51:18,363 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 09:51:18,363 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 09:51:18,380 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 09:51:18,392 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 09:51:18,393 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 09:51:18,393 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 09:51:18,404 [DEBUG][       Thread-250560][   transport.py][1871] : EOF in transport thread
2025-06-13 09:51:21,242 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:51:21,242 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:51:23,178 [DEBUG][Thread-250562 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:51:28,403 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 09:51:28,404 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 09:51:28,404 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 09:51:28,406 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 09:51:28,874 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 9, 51, 3), 9.42, 51.4, 0.0, 18.72, 8.33, 0, 0, 0, 2, 0, 0),)
2025-06-13 09:51:28,874 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 09:51:03
2025-06-13 09:51:28,956 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 09:51:28,960 [DEBUG][       Thread-250563][   transport.py][1871] : starting thread (client mode): 0x842079a0
2025-06-13 09:51:28,960 [DEBUG][       Thread-250563][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 09:51:28,981 [DEBUG][       Thread-250563][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 09:51:28,981 [ INFO][       Thread-250563][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 09:51:28,984 [DEBUG][       Thread-250563][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 09:51:28,984 [DEBUG][       Thread-250563][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 09:51:28,984 [DEBUG][       Thread-250563][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 09:51:28,984 [DEBUG][       Thread-250563][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:51:28,984 [DEBUG][       Thread-250563][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:51:28,984 [DEBUG][       Thread-250563][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:51:28,984 [DEBUG][       Thread-250563][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:51:28,984 [DEBUG][       Thread-250563][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 09:51:28,984 [DEBUG][       Thread-250563][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 09:51:28,984 [DEBUG][       Thread-250563][   transport.py][1871] : client lang: <none>
2025-06-13 09:51:28,984 [DEBUG][       Thread-250563][   transport.py][1871] : server lang: <none>
2025-06-13 09:51:28,984 [DEBUG][       Thread-250563][   transport.py][1871] : kex follows: False
2025-06-13 09:51:28,984 [DEBUG][       Thread-250563][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 09:51:28,984 [DEBUG][       Thread-250563][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 09:51:28,984 [DEBUG][       Thread-250563][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 09:51:28,984 [DEBUG][       Thread-250563][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 09:51:28,984 [DEBUG][       Thread-250563][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 09:51:28,984 [DEBUG][       Thread-250563][   transport.py][1871] : Compression: none
2025-06-13 09:51:28,984 [DEBUG][       Thread-250563][   transport.py][1871] : === End of kex handshake ===
2025-06-13 09:51:29,003 [DEBUG][       Thread-250563][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 09:51:29,004 [DEBUG][       Thread-250563][   transport.py][1871] : Switch to new keys ...
2025-06-13 09:51:29,005 [DEBUG][       Thread-250563][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 09:51:29,005 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 09:51:29,005 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 09:51:29,006 [DEBUG][       Thread-250563][   transport.py][1871] : userauth is OK
2025-06-13 09:51:29,019 [ INFO][       Thread-250563][   transport.py][1871] : Authentication (password) successful!
2025-06-13 09:51:29,020 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 09:51:29,620 [DEBUG][       Thread-250563][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 09:51:29,621 [DEBUG][       Thread-250563][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 09:51:29,665 [DEBUG][       Thread-250563][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 09:51:29,665 [DEBUG][       Thread-250563][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 09:51:29,668 [DEBUG][       Thread-250563][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 09:51:29,679 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 09:51:29,680 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 09:51:29,681 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 09:51:29,683 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 09:51:29,688 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 09:51:29,689 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 09:51:29,690 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 09:51:29,690 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 09:51:29,690 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.327024 -999.00   +8.10  18.86     56   +0.00 1 1 1 1 1   887    0 8.44 17.20 ----- 18.5 18.9 39.2 28.0 12.3 -28.0 10.9 -29.2 9.8 -27.6 11.1 -26.2
2025-06-13 09:51:29,690 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 09:51:29,690 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 09:51:29,690 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.327024
2025-06-13 09:51:29,691 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 09:51:29,691 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 09:51:29,691 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 09:51:29,691 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 09:51:29,692 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 09:51:29,692 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T09:51:03', tmtdew=9.42, humidity=51.4, cloud=0.0, wind=18.72, temperature=8.33, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T07:50:54.874', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 09:51:29,692 [DEBUG][       Thread-250563][   transport.py][1871] : EOF in transport thread
2025-06-13 09:51:29,785 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 09:51:29,795 [DEBUG][       Thread-250566][   transport.py][1871] : starting thread (client mode): 0x867b5870
2025-06-13 09:51:29,795 [DEBUG][       Thread-250566][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 09:51:29,810 [DEBUG][       Thread-250566][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 09:51:29,811 [ INFO][       Thread-250566][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 09:51:29,818 [DEBUG][       Thread-250566][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 09:51:29,818 [DEBUG][       Thread-250566][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 09:51:29,818 [DEBUG][       Thread-250566][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 09:51:29,818 [DEBUG][       Thread-250566][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:51:29,818 [DEBUG][       Thread-250566][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:51:29,818 [DEBUG][       Thread-250566][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:51:29,819 [DEBUG][       Thread-250566][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:51:29,819 [DEBUG][       Thread-250566][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 09:51:29,819 [DEBUG][       Thread-250566][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 09:51:29,819 [DEBUG][       Thread-250566][   transport.py][1871] : client lang: <none>
2025-06-13 09:51:29,819 [DEBUG][       Thread-250566][   transport.py][1871] : server lang: <none>
2025-06-13 09:51:29,819 [DEBUG][       Thread-250566][   transport.py][1871] : kex follows: False
2025-06-13 09:51:29,819 [DEBUG][       Thread-250566][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 09:51:29,819 [DEBUG][       Thread-250566][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 09:51:29,819 [DEBUG][       Thread-250566][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 09:51:29,819 [DEBUG][       Thread-250566][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 09:51:29,819 [DEBUG][       Thread-250566][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 09:51:29,819 [DEBUG][       Thread-250566][   transport.py][1871] : Compression: none
2025-06-13 09:51:29,819 [DEBUG][       Thread-250566][   transport.py][1871] : === End of kex handshake ===
2025-06-13 09:51:29,879 [DEBUG][       Thread-250566][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 09:51:29,879 [DEBUG][       Thread-250566][   transport.py][1871] : Switch to new keys ...
2025-06-13 09:51:29,880 [DEBUG][       Thread-250566][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 09:51:29,880 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 09:51:29,880 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 09:51:29,943 [DEBUG][       Thread-250566][   transport.py][1871] : userauth is OK
2025-06-13 09:51:29,943 [DEBUG][       Thread-250566][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 09:51:29,943 [DEBUG][       Thread-250566][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 09:51:29,943 [DEBUG][       Thread-250566][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 09:51:29,943 [DEBUG][       Thread-250566][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 09:51:29,962 [ INFO][       Thread-250566][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 09:51:29,963 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 09:51:29,963 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 09:51:30,996 [DEBUG][       Thread-250566][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 09:51:30,996 [DEBUG][       Thread-250566][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 09:51:31,052 [DEBUG][       Thread-250566][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 09:51:31,052 [DEBUG][       Thread-250566][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 09:51:31,061 [DEBUG][       Thread-250566][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 09:51:31,070 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 09:51:31,070 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 09:51:31,080 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 09:51:31,089 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 09:51:31,089 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 09:51:31,089 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 09:51:31,097 [DEBUG][       Thread-250566][   transport.py][1871] : EOF in transport thread
2025-06-13 09:51:32,200 [DEBUG][Thread-250568 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:51:33,045 [DEBUG][Thread-250569 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:51:34,131 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:51:34,132 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:51:41,096 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 09:51:41,096 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 09:51:41,096 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 09:51:41,099 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 09:51:41,216 [DEBUG][Thread-250570 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:51:41,555 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 9, 51, 35), 9.52, 51.04, 0.0, 16.94, 8.34, 0, 0, 0, 2, 0, 0),)
2025-06-13 09:51:41,555 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 09:51:35
2025-06-13 09:51:41,637 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 09:51:41,643 [DEBUG][       Thread-250571][   transport.py][1871] : starting thread (client mode): 0x84206aa0
2025-06-13 09:51:41,643 [DEBUG][       Thread-250571][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 09:51:41,654 [DEBUG][       Thread-250571][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 09:51:41,654 [ INFO][       Thread-250571][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 09:51:41,656 [DEBUG][       Thread-250571][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 09:51:41,656 [DEBUG][       Thread-250571][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 09:51:41,656 [DEBUG][       Thread-250571][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 09:51:41,656 [DEBUG][       Thread-250571][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:51:41,656 [DEBUG][       Thread-250571][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:51:41,656 [DEBUG][       Thread-250571][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:51:41,656 [DEBUG][       Thread-250571][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:51:41,656 [DEBUG][       Thread-250571][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 09:51:41,656 [DEBUG][       Thread-250571][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 09:51:41,656 [DEBUG][       Thread-250571][   transport.py][1871] : client lang: <none>
2025-06-13 09:51:41,657 [DEBUG][       Thread-250571][   transport.py][1871] : server lang: <none>
2025-06-13 09:51:41,657 [DEBUG][       Thread-250571][   transport.py][1871] : kex follows: False
2025-06-13 09:51:41,657 [DEBUG][       Thread-250571][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 09:51:41,657 [DEBUG][       Thread-250571][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 09:51:41,657 [DEBUG][       Thread-250571][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 09:51:41,657 [DEBUG][       Thread-250571][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 09:51:41,657 [DEBUG][       Thread-250571][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 09:51:41,657 [DEBUG][       Thread-250571][   transport.py][1871] : Compression: none
2025-06-13 09:51:41,657 [DEBUG][       Thread-250571][   transport.py][1871] : === End of kex handshake ===
2025-06-13 09:51:41,668 [DEBUG][       Thread-250571][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 09:51:41,668 [DEBUG][       Thread-250571][   transport.py][1871] : Switch to new keys ...
2025-06-13 09:51:41,669 [DEBUG][       Thread-250571][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 09:51:41,669 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 09:51:41,669 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 09:51:41,670 [DEBUG][       Thread-250571][   transport.py][1871] : userauth is OK
2025-06-13 09:51:41,683 [ INFO][       Thread-250571][   transport.py][1871] : Authentication (password) successful!
2025-06-13 09:51:41,683 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 09:51:42,320 [DEBUG][       Thread-250571][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 09:51:42,320 [DEBUG][       Thread-250571][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 09:51:42,361 [DEBUG][       Thread-250571][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 09:51:42,361 [DEBUG][       Thread-250571][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 09:51:42,364 [DEBUG][       Thread-250571][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 09:51:42,369 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 09:51:42,370 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 09:51:42,371 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 09:51:42,373 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 09:51:42,377 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 09:51:42,379 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 09:51:42,379 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 09:51:42,379 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 09:51:42,380 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.327024 -999.00   +8.10  18.86     56   +0.00 1 1 1 1 1   887    0 8.44 17.20 ----- 18.5 18.9 39.2 28.0 12.3 -28.0 10.9 -29.2 9.8 -27.6 11.1 -26.2
2025-06-13 09:51:42,380 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 09:51:42,380 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 09:51:42,380 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.327024
2025-06-13 09:51:42,380 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 09:51:42,381 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 09:51:42,381 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 09:51:42,381 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 09:51:42,381 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 09:51:42,381 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T09:51:35', tmtdew=9.52, humidity=51.04, cloud=0.0, wind=16.94, temperature=8.34, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T07:50:54.874', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 09:51:42,381 [DEBUG][       Thread-250571][   transport.py][1871] : EOF in transport thread
2025-06-13 09:51:42,464 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 09:51:42,475 [DEBUG][       Thread-250574][   transport.py][1871] : starting thread (client mode): 0x863c82b0
2025-06-13 09:51:42,475 [DEBUG][       Thread-250574][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 09:51:42,494 [DEBUG][       Thread-250574][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 09:51:42,494 [ INFO][       Thread-250574][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 09:51:42,502 [DEBUG][       Thread-250574][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 09:51:42,502 [DEBUG][       Thread-250574][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 09:51:42,502 [DEBUG][       Thread-250574][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 09:51:42,502 [DEBUG][       Thread-250574][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:51:42,502 [DEBUG][       Thread-250574][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:51:42,502 [DEBUG][       Thread-250574][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:51:42,502 [DEBUG][       Thread-250574][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:51:42,502 [DEBUG][       Thread-250574][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 09:51:42,502 [DEBUG][       Thread-250574][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 09:51:42,502 [DEBUG][       Thread-250574][   transport.py][1871] : client lang: <none>
2025-06-13 09:51:42,502 [DEBUG][       Thread-250574][   transport.py][1871] : server lang: <none>
2025-06-13 09:51:42,502 [DEBUG][       Thread-250574][   transport.py][1871] : kex follows: False
2025-06-13 09:51:42,502 [DEBUG][       Thread-250574][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 09:51:42,502 [DEBUG][       Thread-250574][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 09:51:42,503 [DEBUG][       Thread-250574][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 09:51:42,503 [DEBUG][       Thread-250574][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 09:51:42,503 [DEBUG][       Thread-250574][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 09:51:42,503 [DEBUG][       Thread-250574][   transport.py][1871] : Compression: none
2025-06-13 09:51:42,503 [DEBUG][       Thread-250574][   transport.py][1871] : === End of kex handshake ===
2025-06-13 09:51:42,562 [DEBUG][       Thread-250574][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 09:51:42,562 [DEBUG][       Thread-250574][   transport.py][1871] : Switch to new keys ...
2025-06-13 09:51:42,562 [DEBUG][       Thread-250574][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 09:51:42,563 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 09:51:42,563 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 09:51:42,624 [DEBUG][       Thread-250574][   transport.py][1871] : userauth is OK
2025-06-13 09:51:42,624 [DEBUG][       Thread-250574][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 09:51:42,624 [DEBUG][       Thread-250574][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 09:51:42,624 [DEBUG][       Thread-250574][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 09:51:42,624 [DEBUG][       Thread-250574][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 09:51:42,643 [ INFO][       Thread-250574][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 09:51:42,643 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 09:51:42,643 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 09:51:43,668 [DEBUG][       Thread-250574][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 09:51:43,668 [DEBUG][       Thread-250574][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 09:51:43,716 [DEBUG][       Thread-250574][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 09:51:43,717 [DEBUG][       Thread-250574][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 09:51:43,727 [DEBUG][       Thread-250574][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 09:51:43,738 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 09:51:43,738 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 09:51:43,746 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 09:51:43,755 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 09:51:43,755 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 09:51:43,756 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 09:51:43,764 [DEBUG][       Thread-250574][   transport.py][1871] : EOF in transport thread
2025-06-13 09:51:50,237 [DEBUG][Thread-250576 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:51:53,766 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 09:51:53,766 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 09:51:53,766 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 09:51:53,769 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 09:51:54,233 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 9, 51, 35), 9.52, 51.04, 0.0, 16.94, 8.34, 0, 0, 0, 2, 0, 0),)
2025-06-13 09:51:54,233 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 09:51:35
2025-06-13 09:51:54,314 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 09:51:54,319 [DEBUG][       Thread-250577][   transport.py][1871] : starting thread (client mode): 0x84207e50
2025-06-13 09:51:54,320 [DEBUG][       Thread-250577][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 09:51:54,344 [DEBUG][       Thread-250577][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 09:51:54,344 [ INFO][       Thread-250577][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 09:51:54,347 [DEBUG][       Thread-250577][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 09:51:54,347 [DEBUG][       Thread-250577][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 09:51:54,347 [DEBUG][       Thread-250577][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 09:51:54,347 [DEBUG][       Thread-250577][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:51:54,347 [DEBUG][       Thread-250577][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:51:54,347 [DEBUG][       Thread-250577][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:51:54,348 [DEBUG][       Thread-250577][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:51:54,348 [DEBUG][       Thread-250577][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 09:51:54,348 [DEBUG][       Thread-250577][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 09:51:54,348 [DEBUG][       Thread-250577][   transport.py][1871] : client lang: <none>
2025-06-13 09:51:54,348 [DEBUG][       Thread-250577][   transport.py][1871] : server lang: <none>
2025-06-13 09:51:54,348 [DEBUG][       Thread-250577][   transport.py][1871] : kex follows: False
2025-06-13 09:51:54,348 [DEBUG][       Thread-250577][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 09:51:54,348 [DEBUG][       Thread-250577][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 09:51:54,348 [DEBUG][       Thread-250577][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 09:51:54,348 [DEBUG][       Thread-250577][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 09:51:54,348 [DEBUG][       Thread-250577][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 09:51:54,348 [DEBUG][       Thread-250577][   transport.py][1871] : Compression: none
2025-06-13 09:51:54,348 [DEBUG][       Thread-250577][   transport.py][1871] : === End of kex handshake ===
2025-06-13 09:51:54,367 [DEBUG][       Thread-250577][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 09:51:54,367 [DEBUG][       Thread-250577][   transport.py][1871] : Switch to new keys ...
2025-06-13 09:51:54,368 [DEBUG][       Thread-250577][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 09:51:54,368 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 09:51:54,368 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 09:51:54,370 [DEBUG][       Thread-250577][   transport.py][1871] : userauth is OK
2025-06-13 09:51:54,394 [ INFO][       Thread-250577][   transport.py][1871] : Authentication (password) successful!
2025-06-13 09:51:54,394 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 09:51:55,055 [DEBUG][       Thread-250577][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 09:51:55,055 [DEBUG][       Thread-250577][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 09:51:55,097 [DEBUG][       Thread-250577][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 09:51:55,097 [DEBUG][       Thread-250577][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 09:51:55,100 [DEBUG][       Thread-250577][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 09:51:55,112 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 09:51:55,113 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 09:51:55,114 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 09:51:55,116 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 09:51:55,120 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 09:51:55,122 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 09:51:55,122 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 09:51:55,123 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 09:51:55,123 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.327024 -999.00   +8.10  18.86     56   +0.00 1 1 1 1 1   887    0 8.44 17.20 ----- 18.5 18.9 39.2 28.0 12.3 -28.0 10.9 -29.2 9.8 -27.6 11.1 -26.2
2025-06-13 09:51:55,123 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 09:51:55,123 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 09:51:55,123 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.327024
2025-06-13 09:51:55,123 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 09:51:55,124 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 09:51:55,124 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 09:51:55,124 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 09:51:55,124 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 09:51:55,124 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T09:51:35', tmtdew=9.52, humidity=51.04, cloud=0.0, wind=16.94, temperature=8.34, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T07:50:54.874', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 09:51:55,125 [DEBUG][       Thread-250577][   transport.py][1871] : EOF in transport thread
2025-06-13 09:51:55,207 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 09:51:55,217 [DEBUG][       Thread-250580][   transport.py][1871] : starting thread (client mode): 0x867fcb80
2025-06-13 09:51:55,217 [DEBUG][       Thread-250580][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 09:51:55,232 [DEBUG][       Thread-250580][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 09:51:55,232 [ INFO][       Thread-250580][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 09:51:55,240 [DEBUG][       Thread-250580][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 09:51:55,240 [DEBUG][       Thread-250580][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 09:51:55,240 [DEBUG][       Thread-250580][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 09:51:55,240 [DEBUG][       Thread-250580][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:51:55,240 [DEBUG][       Thread-250580][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:51:55,240 [DEBUG][       Thread-250580][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:51:55,240 [DEBUG][       Thread-250580][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:51:55,240 [DEBUG][       Thread-250580][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 09:51:55,240 [DEBUG][       Thread-250580][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 09:51:55,240 [DEBUG][       Thread-250580][   transport.py][1871] : client lang: <none>
2025-06-13 09:51:55,240 [DEBUG][       Thread-250580][   transport.py][1871] : server lang: <none>
2025-06-13 09:51:55,240 [DEBUG][       Thread-250580][   transport.py][1871] : kex follows: False
2025-06-13 09:51:55,240 [DEBUG][       Thread-250580][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 09:51:55,240 [DEBUG][       Thread-250580][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 09:51:55,240 [DEBUG][       Thread-250580][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 09:51:55,240 [DEBUG][       Thread-250580][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 09:51:55,240 [DEBUG][       Thread-250580][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 09:51:55,240 [DEBUG][       Thread-250580][   transport.py][1871] : Compression: none
2025-06-13 09:51:55,240 [DEBUG][       Thread-250580][   transport.py][1871] : === End of kex handshake ===
2025-06-13 09:51:55,300 [DEBUG][       Thread-250580][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 09:51:55,301 [DEBUG][       Thread-250580][   transport.py][1871] : Switch to new keys ...
2025-06-13 09:51:55,301 [DEBUG][       Thread-250580][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 09:51:55,302 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 09:51:55,302 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 09:51:55,366 [DEBUG][       Thread-250580][   transport.py][1871] : userauth is OK
2025-06-13 09:51:55,366 [DEBUG][       Thread-250580][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 09:51:55,366 [DEBUG][       Thread-250580][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 09:51:55,366 [DEBUG][       Thread-250580][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 09:51:55,366 [DEBUG][       Thread-250580][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 09:51:55,385 [ INFO][       Thread-250580][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 09:51:55,385 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 09:51:55,385 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 09:51:56,419 [DEBUG][       Thread-250580][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 09:51:56,419 [DEBUG][       Thread-250580][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 09:51:56,468 [DEBUG][       Thread-250580][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 09:51:56,468 [DEBUG][       Thread-250580][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 09:51:56,477 [DEBUG][       Thread-250580][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 09:51:56,486 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 09:51:56,486 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 09:51:56,495 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 09:51:56,503 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 09:51:56,504 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 09:51:56,504 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 09:51:56,514 [DEBUG][       Thread-250580][   transport.py][1871] : EOF in transport thread
2025-06-13 09:51:59,266 [DEBUG][Thread-250582 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:52:04,484 [DEBUG][Thread-250583 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:52:06,514 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 09:52:06,515 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 09:52:06,515 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 09:52:06,517 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 09:52:06,974 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 9, 51, 35), 9.52, 51.04, 0.0, 16.94, 8.34, 0, 0, 0, 2, 0, 0),)
2025-06-13 09:52:06,974 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 09:51:35
2025-06-13 09:52:07,055 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 09:52:07,059 [DEBUG][       Thread-250584][   transport.py][1871] : starting thread (client mode): 0x867b7520
2025-06-13 09:52:07,059 [DEBUG][       Thread-250584][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 09:52:07,070 [DEBUG][       Thread-250584][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 09:52:07,070 [ INFO][       Thread-250584][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 09:52:07,073 [DEBUG][       Thread-250584][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 09:52:07,074 [DEBUG][       Thread-250584][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 09:52:07,074 [DEBUG][       Thread-250584][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 09:52:07,074 [DEBUG][       Thread-250584][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:52:07,074 [DEBUG][       Thread-250584][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:52:07,074 [DEBUG][       Thread-250584][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:52:07,074 [DEBUG][       Thread-250584][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:52:07,074 [DEBUG][       Thread-250584][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 09:52:07,074 [DEBUG][       Thread-250584][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 09:52:07,074 [DEBUG][       Thread-250584][   transport.py][1871] : client lang: <none>
2025-06-13 09:52:07,074 [DEBUG][       Thread-250584][   transport.py][1871] : server lang: <none>
2025-06-13 09:52:07,074 [DEBUG][       Thread-250584][   transport.py][1871] : kex follows: False
2025-06-13 09:52:07,074 [DEBUG][       Thread-250584][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 09:52:07,074 [DEBUG][       Thread-250584][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 09:52:07,074 [DEBUG][       Thread-250584][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 09:52:07,074 [DEBUG][       Thread-250584][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 09:52:07,074 [DEBUG][       Thread-250584][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 09:52:07,074 [DEBUG][       Thread-250584][   transport.py][1871] : Compression: none
2025-06-13 09:52:07,074 [DEBUG][       Thread-250584][   transport.py][1871] : === End of kex handshake ===
2025-06-13 09:52:07,090 [DEBUG][       Thread-250584][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 09:52:07,091 [DEBUG][       Thread-250584][   transport.py][1871] : Switch to new keys ...
2025-06-13 09:52:07,091 [DEBUG][       Thread-250584][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 09:52:07,091 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 09:52:07,092 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 09:52:07,093 [DEBUG][       Thread-250584][   transport.py][1871] : userauth is OK
2025-06-13 09:52:07,106 [ INFO][       Thread-250584][   transport.py][1871] : Authentication (password) successful!
2025-06-13 09:52:07,106 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 09:52:07,712 [DEBUG][       Thread-250584][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 09:52:07,712 [DEBUG][       Thread-250584][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 09:52:07,757 [DEBUG][       Thread-250584][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 09:52:07,757 [DEBUG][       Thread-250584][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 09:52:07,759 [DEBUG][       Thread-250584][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 09:52:07,773 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 09:52:07,773 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 09:52:07,775 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 09:52:07,776 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 09:52:07,781 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 09:52:07,782 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 09:52:07,782 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 09:52:07,783 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 09:52:07,783 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.327718 -999.00   +8.20  19.74     56   +0.00 1 1 1 1 1   887    0 8.55 18.04 ----- 20.0 19.7 47.2 25.0 12.4 -28.3 11.1 -29.4 9.9 -27.8 11.1 -26.2
2025-06-13 09:52:07,783 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 09:52:07,783 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 09:52:07,783 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.327718
2025-06-13 09:52:07,784 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 09:52:07,784 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 09:52:07,784 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 09:52:07,784 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 09:52:07,784 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 09:52:07,785 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T09:51:35', tmtdew=9.52, humidity=51.04, cloud=0.0, wind=16.94, temperature=8.34, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T07:51:54.835', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 09:52:07,785 [DEBUG][       Thread-250584][   transport.py][1871] : EOF in transport thread
2025-06-13 09:52:07,870 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 09:52:07,883 [DEBUG][       Thread-250587][   transport.py][1871] : starting thread (client mode): 0x84207fd0
2025-06-13 09:52:07,883 [DEBUG][       Thread-250587][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 09:52:07,899 [DEBUG][       Thread-250587][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 09:52:07,899 [ INFO][       Thread-250587][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 09:52:07,906 [DEBUG][       Thread-250587][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 09:52:07,906 [DEBUG][       Thread-250587][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 09:52:07,906 [DEBUG][       Thread-250587][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 09:52:07,906 [DEBUG][       Thread-250587][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:52:07,906 [DEBUG][       Thread-250587][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:52:07,906 [DEBUG][       Thread-250587][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:52:07,906 [DEBUG][       Thread-250587][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:52:07,906 [DEBUG][       Thread-250587][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 09:52:07,906 [DEBUG][       Thread-250587][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 09:52:07,906 [DEBUG][       Thread-250587][   transport.py][1871] : client lang: <none>
2025-06-13 09:52:07,906 [DEBUG][       Thread-250587][   transport.py][1871] : server lang: <none>
2025-06-13 09:52:07,906 [DEBUG][       Thread-250587][   transport.py][1871] : kex follows: False
2025-06-13 09:52:07,906 [DEBUG][       Thread-250587][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 09:52:07,906 [DEBUG][       Thread-250587][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 09:52:07,906 [DEBUG][       Thread-250587][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 09:52:07,906 [DEBUG][       Thread-250587][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 09:52:07,906 [DEBUG][       Thread-250587][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 09:52:07,906 [DEBUG][       Thread-250587][   transport.py][1871] : Compression: none
2025-06-13 09:52:07,906 [DEBUG][       Thread-250587][   transport.py][1871] : === End of kex handshake ===
2025-06-13 09:52:07,962 [DEBUG][       Thread-250587][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 09:52:07,962 [DEBUG][       Thread-250587][   transport.py][1871] : Switch to new keys ...
2025-06-13 09:52:07,962 [DEBUG][       Thread-250587][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 09:52:07,962 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 09:52:07,962 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 09:52:08,018 [DEBUG][       Thread-250587][   transport.py][1871] : userauth is OK
2025-06-13 09:52:08,019 [DEBUG][       Thread-250587][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 09:52:08,019 [DEBUG][       Thread-250587][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 09:52:08,019 [DEBUG][       Thread-250587][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 09:52:08,019 [DEBUG][       Thread-250587][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 09:52:08,033 [ INFO][       Thread-250587][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 09:52:08,033 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 09:52:08,033 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 09:52:08,281 [DEBUG][Thread-250589 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:52:09,036 [DEBUG][       Thread-250587][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 09:52:09,036 [DEBUG][       Thread-250587][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 09:52:09,087 [DEBUG][       Thread-250587][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 09:52:09,087 [DEBUG][       Thread-250587][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 09:52:09,096 [DEBUG][       Thread-250587][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 09:52:09,104 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 09:52:09,104 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 09:52:09,111 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 09:52:09,119 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 09:52:09,119 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 09:52:09,119 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 09:52:09,127 [DEBUG][       Thread-250587][   transport.py][1871] : EOF in transport thread
2025-06-13 09:52:17,297 [DEBUG][Thread-250590 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:52:19,130 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 09:52:19,130 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 09:52:19,130 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 09:52:19,132 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 09:52:19,590 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 9, 52, 7), 9.54, 50.96, 0.0, 17.42, 8.31, 0, 0, 0, 2, 0, 0),)
2025-06-13 09:52:19,590 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 09:52:07
2025-06-13 09:52:19,672 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 09:52:19,678 [DEBUG][       Thread-250591][   transport.py][1871] : starting thread (client mode): 0x84206f20
2025-06-13 09:52:19,678 [DEBUG][       Thread-250591][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 09:52:19,698 [DEBUG][       Thread-250591][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 09:52:19,698 [ INFO][       Thread-250591][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 09:52:19,701 [DEBUG][       Thread-250591][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 09:52:19,701 [DEBUG][       Thread-250591][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 09:52:19,701 [DEBUG][       Thread-250591][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 09:52:19,701 [DEBUG][       Thread-250591][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:52:19,701 [DEBUG][       Thread-250591][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:52:19,701 [DEBUG][       Thread-250591][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:52:19,701 [DEBUG][       Thread-250591][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:52:19,701 [DEBUG][       Thread-250591][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 09:52:19,701 [DEBUG][       Thread-250591][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 09:52:19,701 [DEBUG][       Thread-250591][   transport.py][1871] : client lang: <none>
2025-06-13 09:52:19,702 [DEBUG][       Thread-250591][   transport.py][1871] : server lang: <none>
2025-06-13 09:52:19,702 [DEBUG][       Thread-250591][   transport.py][1871] : kex follows: False
2025-06-13 09:52:19,702 [DEBUG][       Thread-250591][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 09:52:19,702 [DEBUG][       Thread-250591][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 09:52:19,702 [DEBUG][       Thread-250591][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 09:52:19,702 [DEBUG][       Thread-250591][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 09:52:19,702 [DEBUG][       Thread-250591][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 09:52:19,702 [DEBUG][       Thread-250591][   transport.py][1871] : Compression: none
2025-06-13 09:52:19,702 [DEBUG][       Thread-250591][   transport.py][1871] : === End of kex handshake ===
2025-06-13 09:52:19,715 [DEBUG][       Thread-250591][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 09:52:19,716 [DEBUG][       Thread-250591][   transport.py][1871] : Switch to new keys ...
2025-06-13 09:52:19,716 [DEBUG][       Thread-250591][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 09:52:19,716 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 09:52:19,717 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 09:52:19,759 [DEBUG][       Thread-250591][   transport.py][1871] : userauth is OK
2025-06-13 09:52:19,783 [ INFO][       Thread-250591][   transport.py][1871] : Authentication (password) successful!
2025-06-13 09:52:19,784 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 09:52:20,409 [DEBUG][       Thread-250591][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 09:52:20,409 [DEBUG][       Thread-250591][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 09:52:20,452 [DEBUG][       Thread-250591][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 09:52:20,452 [DEBUG][       Thread-250591][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 09:52:20,455 [DEBUG][       Thread-250591][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 09:52:20,465 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 09:52:20,465 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 09:52:20,466 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 09:52:20,467 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 09:52:20,469 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 09:52:20,470 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 09:52:20,470 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 09:52:20,471 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 09:52:20,471 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.327718 -999.00   +8.20  19.74     56   +0.00 1 1 1 1 1   887    0 8.55 18.04 ----- 20.0 19.7 47.2 25.0 12.4 -28.3 11.1 -29.4 9.9 -27.8 11.1 -26.2
2025-06-13 09:52:20,471 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 09:52:20,471 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 09:52:20,471 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.327718
2025-06-13 09:52:20,471 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 09:52:20,471 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 09:52:20,471 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 09:52:20,471 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 09:52:20,471 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 09:52:20,471 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T09:52:07', tmtdew=9.54, humidity=50.96, cloud=0.0, wind=17.42, temperature=8.31, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T07:51:54.835', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 09:52:20,471 [DEBUG][       Thread-250591][   transport.py][1871] : EOF in transport thread
2025-06-13 09:52:20,554 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 09:52:20,563 [DEBUG][       Thread-250594][   transport.py][1871] : starting thread (client mode): 0x8636b580
2025-06-13 09:52:20,563 [DEBUG][       Thread-250594][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 09:52:20,577 [DEBUG][       Thread-250594][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 09:52:20,577 [ INFO][       Thread-250594][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 09:52:20,584 [DEBUG][       Thread-250594][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 09:52:20,584 [DEBUG][       Thread-250594][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 09:52:20,584 [DEBUG][       Thread-250594][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 09:52:20,584 [DEBUG][       Thread-250594][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:52:20,584 [DEBUG][       Thread-250594][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:52:20,584 [DEBUG][       Thread-250594][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:52:20,584 [DEBUG][       Thread-250594][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:52:20,584 [DEBUG][       Thread-250594][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 09:52:20,584 [DEBUG][       Thread-250594][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 09:52:20,584 [DEBUG][       Thread-250594][   transport.py][1871] : client lang: <none>
2025-06-13 09:52:20,584 [DEBUG][       Thread-250594][   transport.py][1871] : server lang: <none>
2025-06-13 09:52:20,584 [DEBUG][       Thread-250594][   transport.py][1871] : kex follows: False
2025-06-13 09:52:20,585 [DEBUG][       Thread-250594][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 09:52:20,585 [DEBUG][       Thread-250594][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 09:52:20,585 [DEBUG][       Thread-250594][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 09:52:20,585 [DEBUG][       Thread-250594][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 09:52:20,585 [DEBUG][       Thread-250594][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 09:52:20,585 [DEBUG][       Thread-250594][   transport.py][1871] : Compression: none
2025-06-13 09:52:20,585 [DEBUG][       Thread-250594][   transport.py][1871] : === End of kex handshake ===
2025-06-13 09:52:20,643 [DEBUG][       Thread-250594][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 09:52:20,643 [DEBUG][       Thread-250594][   transport.py][1871] : Switch to new keys ...
2025-06-13 09:52:20,644 [DEBUG][       Thread-250594][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 09:52:20,644 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 09:52:20,645 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 09:52:20,699 [DEBUG][       Thread-250594][   transport.py][1871] : userauth is OK
2025-06-13 09:52:20,699 [DEBUG][       Thread-250594][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 09:52:20,699 [DEBUG][       Thread-250594][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 09:52:20,699 [DEBUG][       Thread-250594][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 09:52:20,699 [DEBUG][       Thread-250594][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 09:52:20,722 [ INFO][       Thread-250594][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 09:52:20,723 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 09:52:20,723 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 09:52:21,381 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:52:21,382 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:52:21,912 [DEBUG][       Thread-250594][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 09:52:21,913 [DEBUG][       Thread-250594][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 09:52:21,965 [DEBUG][       Thread-250594][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 09:52:21,966 [DEBUG][       Thread-250594][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 09:52:21,982 [DEBUG][       Thread-250594][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 09:52:21,990 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 09:52:21,990 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 09:52:21,999 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 09:52:22,007 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 09:52:22,008 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 09:52:22,008 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 09:52:22,019 [DEBUG][       Thread-250594][   transport.py][1871] : EOF in transport thread
2025-06-13 09:52:26,315 [DEBUG][Thread-250596 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:52:32,018 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 09:52:32,019 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 09:52:32,019 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 09:52:32,021 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 09:52:32,476 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 9, 52, 7), 9.54, 50.96, 0.0, 17.42, 8.31, 0, 0, 0, 2, 0, 0),)
2025-06-13 09:52:32,476 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 09:52:07
2025-06-13 09:52:32,558 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 09:52:32,561 [DEBUG][       Thread-250597][   transport.py][1871] : starting thread (client mode): 0x86369300
2025-06-13 09:52:32,561 [DEBUG][       Thread-250597][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 09:52:32,572 [DEBUG][       Thread-250597][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 09:52:32,572 [ INFO][       Thread-250597][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 09:52:32,575 [DEBUG][       Thread-250597][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 09:52:32,575 [DEBUG][       Thread-250597][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 09:52:32,575 [DEBUG][       Thread-250597][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 09:52:32,575 [DEBUG][       Thread-250597][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:52:32,575 [DEBUG][       Thread-250597][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:52:32,575 [DEBUG][       Thread-250597][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:52:32,575 [DEBUG][       Thread-250597][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:52:32,575 [DEBUG][       Thread-250597][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 09:52:32,575 [DEBUG][       Thread-250597][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 09:52:32,575 [DEBUG][       Thread-250597][   transport.py][1871] : client lang: <none>
2025-06-13 09:52:32,575 [DEBUG][       Thread-250597][   transport.py][1871] : server lang: <none>
2025-06-13 09:52:32,575 [DEBUG][       Thread-250597][   transport.py][1871] : kex follows: False
2025-06-13 09:52:32,575 [DEBUG][       Thread-250597][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 09:52:32,575 [DEBUG][       Thread-250597][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 09:52:32,575 [DEBUG][       Thread-250597][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 09:52:32,575 [DEBUG][       Thread-250597][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 09:52:32,575 [DEBUG][       Thread-250597][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 09:52:32,575 [DEBUG][       Thread-250597][   transport.py][1871] : Compression: none
2025-06-13 09:52:32,575 [DEBUG][       Thread-250597][   transport.py][1871] : === End of kex handshake ===
2025-06-13 09:52:32,590 [DEBUG][       Thread-250597][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 09:52:32,590 [DEBUG][       Thread-250597][   transport.py][1871] : Switch to new keys ...
2025-06-13 09:52:32,590 [DEBUG][       Thread-250597][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 09:52:32,590 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 09:52:32,590 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 09:52:32,591 [DEBUG][       Thread-250597][   transport.py][1871] : userauth is OK
2025-06-13 09:52:32,603 [ INFO][       Thread-250597][   transport.py][1871] : Authentication (password) successful!
2025-06-13 09:52:32,604 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 09:52:33,154 [DEBUG][       Thread-250597][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 09:52:33,154 [DEBUG][       Thread-250597][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 09:52:33,197 [DEBUG][       Thread-250597][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 09:52:33,197 [DEBUG][       Thread-250597][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 09:52:33,199 [DEBUG][       Thread-250597][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 09:52:33,206 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 09:52:33,207 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 09:52:33,208 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 09:52:33,209 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 09:52:33,213 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 09:52:33,215 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 09:52:33,215 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 09:52:33,216 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 09:52:33,216 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.328066 -999.00   +8.20  20.89     56   +0.00 1 1 1 1 1   887    0 8.53 19.95 ----- 20.9 20.9 52.6 23.8 12.4 -27.4 11.2 -28.6 9.9 -27.4 11.1 -26.5
2025-06-13 09:52:33,216 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 09:52:33,216 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 09:52:33,216 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.328066
2025-06-13 09:52:33,217 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 09:52:33,217 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 09:52:33,217 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 09:52:33,217 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 09:52:33,217 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 09:52:33,217 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T09:52:07', tmtdew=9.54, humidity=50.96, cloud=0.0, wind=17.42, temperature=8.31, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T07:52:24.902', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 09:52:33,218 [DEBUG][       Thread-250597][   transport.py][1871] : EOF in transport thread
2025-06-13 09:52:33,301 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 09:52:33,312 [DEBUG][       Thread-250600][   transport.py][1871] : starting thread (client mode): 0x863a46a0
2025-06-13 09:52:33,312 [DEBUG][       Thread-250600][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 09:52:33,327 [DEBUG][       Thread-250600][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 09:52:33,327 [ INFO][       Thread-250600][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 09:52:33,334 [DEBUG][       Thread-250600][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 09:52:33,334 [DEBUG][       Thread-250600][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 09:52:33,334 [DEBUG][       Thread-250600][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 09:52:33,334 [DEBUG][       Thread-250600][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:52:33,334 [DEBUG][       Thread-250600][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:52:33,334 [DEBUG][       Thread-250600][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:52:33,334 [DEBUG][       Thread-250600][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:52:33,334 [DEBUG][       Thread-250600][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 09:52:33,334 [DEBUG][       Thread-250600][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 09:52:33,335 [DEBUG][       Thread-250600][   transport.py][1871] : client lang: <none>
2025-06-13 09:52:33,335 [DEBUG][       Thread-250600][   transport.py][1871] : server lang: <none>
2025-06-13 09:52:33,335 [DEBUG][       Thread-250600][   transport.py][1871] : kex follows: False
2025-06-13 09:52:33,335 [DEBUG][       Thread-250600][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 09:52:33,335 [DEBUG][       Thread-250600][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 09:52:33,335 [DEBUG][       Thread-250600][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 09:52:33,335 [DEBUG][       Thread-250600][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 09:52:33,335 [DEBUG][       Thread-250600][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 09:52:33,335 [DEBUG][       Thread-250600][   transport.py][1871] : Compression: none
2025-06-13 09:52:33,335 [DEBUG][       Thread-250600][   transport.py][1871] : === End of kex handshake ===
2025-06-13 09:52:33,390 [DEBUG][       Thread-250600][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 09:52:33,390 [DEBUG][       Thread-250600][   transport.py][1871] : Switch to new keys ...
2025-06-13 09:52:33,391 [DEBUG][       Thread-250600][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 09:52:33,391 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 09:52:33,392 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 09:52:33,457 [DEBUG][       Thread-250600][   transport.py][1871] : userauth is OK
2025-06-13 09:52:33,458 [DEBUG][       Thread-250600][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 09:52:33,458 [DEBUG][       Thread-250600][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 09:52:33,458 [DEBUG][       Thread-250600][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 09:52:33,458 [DEBUG][       Thread-250600][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 09:52:33,477 [ INFO][       Thread-250600][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 09:52:33,477 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 09:52:33,478 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 09:52:34,211 [DEBUG][Thread-250602 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:52:34,481 [DEBUG][       Thread-250600][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 09:52:34,481 [DEBUG][       Thread-250600][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 09:52:34,532 [DEBUG][       Thread-250600][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 09:52:34,532 [DEBUG][       Thread-250600][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 09:52:34,541 [DEBUG][       Thread-250600][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 09:52:34,550 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 09:52:34,550 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 09:52:34,559 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 09:52:34,567 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 09:52:34,567 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 09:52:34,568 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 09:52:34,576 [DEBUG][       Thread-250600][   transport.py][1871] : EOF in transport thread
2025-06-13 09:52:35,294 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:52:35,294 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:52:35,345 [DEBUG][Thread-250603 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:52:44,363 [DEBUG][Thread-250604 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:52:44,576 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 09:52:44,576 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 09:52:44,576 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 09:52:44,579 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 09:52:45,036 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 9, 52, 38), 9.49, 51.35, 0.0, 13.64, 8.34, 0, 0, 0, 2, 0, 0),)
2025-06-13 09:52:45,036 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 09:52:38
2025-06-13 09:52:45,118 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 09:52:45,124 [DEBUG][       Thread-250605][   transport.py][1871] : starting thread (client mode): 0x842060e0
2025-06-13 09:52:45,124 [DEBUG][       Thread-250605][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 09:52:45,145 [DEBUG][       Thread-250605][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 09:52:45,145 [ INFO][       Thread-250605][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 09:52:45,148 [DEBUG][       Thread-250605][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 09:52:45,148 [DEBUG][       Thread-250605][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 09:52:45,148 [DEBUG][       Thread-250605][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 09:52:45,148 [DEBUG][       Thread-250605][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:52:45,148 [DEBUG][       Thread-250605][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:52:45,148 [DEBUG][       Thread-250605][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:52:45,148 [DEBUG][       Thread-250605][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:52:45,149 [DEBUG][       Thread-250605][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 09:52:45,149 [DEBUG][       Thread-250605][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 09:52:45,149 [DEBUG][       Thread-250605][   transport.py][1871] : client lang: <none>
2025-06-13 09:52:45,149 [DEBUG][       Thread-250605][   transport.py][1871] : server lang: <none>
2025-06-13 09:52:45,149 [DEBUG][       Thread-250605][   transport.py][1871] : kex follows: False
2025-06-13 09:52:45,149 [DEBUG][       Thread-250605][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 09:52:45,149 [DEBUG][       Thread-250605][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 09:52:45,149 [DEBUG][       Thread-250605][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 09:52:45,149 [DEBUG][       Thread-250605][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 09:52:45,149 [DEBUG][       Thread-250605][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 09:52:45,149 [DEBUG][       Thread-250605][   transport.py][1871] : Compression: none
2025-06-13 09:52:45,149 [DEBUG][       Thread-250605][   transport.py][1871] : === End of kex handshake ===
2025-06-13 09:52:45,166 [DEBUG][       Thread-250605][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 09:52:45,166 [DEBUG][       Thread-250605][   transport.py][1871] : Switch to new keys ...
2025-06-13 09:52:45,167 [DEBUG][       Thread-250605][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 09:52:45,167 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 09:52:45,167 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 09:52:45,168 [DEBUG][       Thread-250605][   transport.py][1871] : userauth is OK
2025-06-13 09:52:45,193 [ INFO][       Thread-250605][   transport.py][1871] : Authentication (password) successful!
2025-06-13 09:52:45,194 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 09:52:45,837 [DEBUG][       Thread-250605][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 09:52:45,837 [DEBUG][       Thread-250605][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 09:52:45,881 [DEBUG][       Thread-250605][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 09:52:45,881 [DEBUG][       Thread-250605][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 09:52:45,884 [DEBUG][       Thread-250605][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 09:52:45,896 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 09:52:45,897 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 09:52:45,899 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 09:52:45,900 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 09:52:45,905 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 09:52:45,907 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 09:52:45,907 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 09:52:45,908 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 09:52:45,908 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.328066 -999.00   +8.20  20.89     56   +0.00 1 1 1 1 1   887    0 8.53 19.95 ----- 20.9 20.9 52.6 23.8 12.4 -27.4 11.2 -28.6 9.9 -27.4 11.1 -26.5
2025-06-13 09:52:45,908 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 09:52:45,908 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 09:52:45,908 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.328066
2025-06-13 09:52:45,908 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 09:52:45,909 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 09:52:45,909 [DEBUG][       Thread-250605][   transport.py][1871] : EOF in transport thread
2025-06-13 09:52:45,909 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 09:52:45,910 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 09:52:45,910 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 09:52:45,910 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T09:52:38', tmtdew=9.49, humidity=51.35, cloud=0.0, wind=13.64, temperature=8.34, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T07:52:24.902', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 09:52:45,993 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 09:52:46,005 [DEBUG][       Thread-250608][   transport.py][1871] : starting thread (client mode): 0x863eea10
2025-06-13 09:52:46,005 [DEBUG][       Thread-250608][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 09:52:46,020 [DEBUG][       Thread-250608][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 09:52:46,020 [ INFO][       Thread-250608][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 09:52:46,028 [DEBUG][       Thread-250608][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 09:52:46,028 [DEBUG][       Thread-250608][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 09:52:46,028 [DEBUG][       Thread-250608][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 09:52:46,028 [DEBUG][       Thread-250608][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:52:46,028 [DEBUG][       Thread-250608][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:52:46,028 [DEBUG][       Thread-250608][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:52:46,028 [DEBUG][       Thread-250608][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:52:46,028 [DEBUG][       Thread-250608][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 09:52:46,028 [DEBUG][       Thread-250608][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 09:52:46,028 [DEBUG][       Thread-250608][   transport.py][1871] : client lang: <none>
2025-06-13 09:52:46,028 [DEBUG][       Thread-250608][   transport.py][1871] : server lang: <none>
2025-06-13 09:52:46,028 [DEBUG][       Thread-250608][   transport.py][1871] : kex follows: False
2025-06-13 09:52:46,028 [DEBUG][       Thread-250608][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 09:52:46,028 [DEBUG][       Thread-250608][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 09:52:46,028 [DEBUG][       Thread-250608][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 09:52:46,029 [DEBUG][       Thread-250608][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 09:52:46,029 [DEBUG][       Thread-250608][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 09:52:46,029 [DEBUG][       Thread-250608][   transport.py][1871] : Compression: none
2025-06-13 09:52:46,029 [DEBUG][       Thread-250608][   transport.py][1871] : === End of kex handshake ===
2025-06-13 09:52:46,086 [DEBUG][       Thread-250608][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 09:52:46,087 [DEBUG][       Thread-250608][   transport.py][1871] : Switch to new keys ...
2025-06-13 09:52:46,087 [DEBUG][       Thread-250608][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 09:52:46,087 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 09:52:46,088 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 09:52:46,143 [DEBUG][       Thread-250608][   transport.py][1871] : userauth is OK
2025-06-13 09:52:46,143 [DEBUG][       Thread-250608][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 09:52:46,143 [DEBUG][       Thread-250608][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 09:52:46,143 [DEBUG][       Thread-250608][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 09:52:46,143 [DEBUG][       Thread-250608][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 09:52:46,161 [ INFO][       Thread-250608][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 09:52:46,162 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 09:52:46,162 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 09:52:47,171 [DEBUG][       Thread-250608][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 09:52:47,171 [DEBUG][       Thread-250608][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 09:52:47,219 [DEBUG][       Thread-250608][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 09:52:47,219 [DEBUG][       Thread-250608][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 09:52:47,228 [DEBUG][       Thread-250608][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 09:52:47,244 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 09:52:47,244 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 09:52:47,252 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 09:52:47,261 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 09:52:47,261 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 09:52:47,262 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 09:52:47,269 [DEBUG][       Thread-250608][   transport.py][1871] : EOF in transport thread
2025-06-13 09:52:53,382 [DEBUG][Thread-250610 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:52:57,272 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 09:52:57,272 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 09:52:57,272 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 09:52:57,275 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 09:52:57,723 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 9, 52, 38), 9.49, 51.35, 0.0, 13.64, 8.34, 0, 0, 0, 2, 0, 0),)
2025-06-13 09:52:57,723 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 09:52:38
2025-06-13 09:52:57,805 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 09:52:57,809 [DEBUG][       Thread-250611][   transport.py][1871] : starting thread (client mode): 0x84204f70
2025-06-13 09:52:57,809 [DEBUG][       Thread-250611][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 09:52:57,829 [DEBUG][       Thread-250611][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 09:52:57,830 [ INFO][       Thread-250611][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 09:52:57,833 [DEBUG][       Thread-250611][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 09:52:57,833 [DEBUG][       Thread-250611][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 09:52:57,833 [DEBUG][       Thread-250611][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 09:52:57,833 [DEBUG][       Thread-250611][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:52:57,833 [DEBUG][       Thread-250611][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:52:57,833 [DEBUG][       Thread-250611][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:52:57,833 [DEBUG][       Thread-250611][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:52:57,833 [DEBUG][       Thread-250611][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 09:52:57,833 [DEBUG][       Thread-250611][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 09:52:57,833 [DEBUG][       Thread-250611][   transport.py][1871] : client lang: <none>
2025-06-13 09:52:57,834 [DEBUG][       Thread-250611][   transport.py][1871] : server lang: <none>
2025-06-13 09:52:57,834 [DEBUG][       Thread-250611][   transport.py][1871] : kex follows: False
2025-06-13 09:52:57,834 [DEBUG][       Thread-250611][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 09:52:57,834 [DEBUG][       Thread-250611][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 09:52:57,834 [DEBUG][       Thread-250611][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 09:52:57,834 [DEBUG][       Thread-250611][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 09:52:57,834 [DEBUG][       Thread-250611][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 09:52:57,834 [DEBUG][       Thread-250611][   transport.py][1871] : Compression: none
2025-06-13 09:52:57,834 [DEBUG][       Thread-250611][   transport.py][1871] : === End of kex handshake ===
2025-06-13 09:52:57,852 [DEBUG][       Thread-250611][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 09:52:57,853 [DEBUG][       Thread-250611][   transport.py][1871] : Switch to new keys ...
2025-06-13 09:52:57,853 [DEBUG][       Thread-250611][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 09:52:57,853 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 09:52:57,854 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 09:52:57,855 [DEBUG][       Thread-250611][   transport.py][1871] : userauth is OK
2025-06-13 09:52:57,867 [ INFO][       Thread-250611][   transport.py][1871] : Authentication (password) successful!
2025-06-13 09:52:57,868 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 09:52:58,513 [DEBUG][       Thread-250611][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 09:52:58,513 [DEBUG][       Thread-250611][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 09:52:58,557 [DEBUG][       Thread-250611][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 09:52:58,557 [DEBUG][       Thread-250611][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 09:52:58,560 [DEBUG][       Thread-250611][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 09:52:58,571 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 09:52:58,572 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 09:52:58,574 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 09:52:58,575 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 09:52:58,580 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 09:52:58,582 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 09:52:58,582 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 09:52:58,582 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 09:52:58,582 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.328066 -999.00   +8.20  20.89     56   +0.00 1 1 1 1 1   887    0 8.53 19.95 ----- 20.9 20.9 52.6 23.8 12.4 -27.4 11.2 -28.6 9.9 -27.4 11.1 -26.5
2025-06-13 09:52:58,583 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 09:52:58,583 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 09:52:58,583 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.328066
2025-06-13 09:52:58,583 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 09:52:58,583 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 09:52:58,584 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 09:52:58,584 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 09:52:58,584 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 09:52:58,584 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T09:52:38', tmtdew=9.49, humidity=51.35, cloud=0.0, wind=13.64, temperature=8.34, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T07:52:24.902', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 09:52:58,584 [DEBUG][       Thread-250611][   transport.py][1871] : EOF in transport thread
2025-06-13 09:52:58,667 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 09:52:58,676 [DEBUG][       Thread-250614][   transport.py][1871] : starting thread (client mode): 0x867fcdf0
2025-06-13 09:52:58,676 [DEBUG][       Thread-250614][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 09:52:58,691 [DEBUG][       Thread-250614][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 09:52:58,691 [ INFO][       Thread-250614][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 09:52:58,702 [DEBUG][       Thread-250614][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 09:52:58,702 [DEBUG][       Thread-250614][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 09:52:58,702 [DEBUG][       Thread-250614][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 09:52:58,702 [DEBUG][       Thread-250614][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:52:58,702 [DEBUG][       Thread-250614][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:52:58,702 [DEBUG][       Thread-250614][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:52:58,702 [DEBUG][       Thread-250614][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:52:58,702 [DEBUG][       Thread-250614][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 09:52:58,702 [DEBUG][       Thread-250614][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 09:52:58,702 [DEBUG][       Thread-250614][   transport.py][1871] : client lang: <none>
2025-06-13 09:52:58,702 [DEBUG][       Thread-250614][   transport.py][1871] : server lang: <none>
2025-06-13 09:52:58,702 [DEBUG][       Thread-250614][   transport.py][1871] : kex follows: False
2025-06-13 09:52:58,703 [DEBUG][       Thread-250614][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 09:52:58,703 [DEBUG][       Thread-250614][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 09:52:58,703 [DEBUG][       Thread-250614][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 09:52:58,703 [DEBUG][       Thread-250614][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 09:52:58,703 [DEBUG][       Thread-250614][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 09:52:58,703 [DEBUG][       Thread-250614][   transport.py][1871] : Compression: none
2025-06-13 09:52:58,703 [DEBUG][       Thread-250614][   transport.py][1871] : === End of kex handshake ===
2025-06-13 09:52:58,758 [DEBUG][       Thread-250614][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 09:52:58,759 [DEBUG][       Thread-250614][   transport.py][1871] : Switch to new keys ...
2025-06-13 09:52:58,759 [DEBUG][       Thread-250614][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 09:52:58,759 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 09:52:58,760 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 09:52:58,815 [DEBUG][       Thread-250614][   transport.py][1871] : userauth is OK
2025-06-13 09:52:58,815 [DEBUG][       Thread-250614][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 09:52:58,815 [DEBUG][       Thread-250614][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 09:52:58,815 [DEBUG][       Thread-250614][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 09:52:58,815 [DEBUG][       Thread-250614][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 09:52:58,833 [ INFO][       Thread-250614][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 09:52:58,834 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 09:52:58,834 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 09:52:59,810 [DEBUG][       Thread-250614][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 09:52:59,811 [DEBUG][       Thread-250614][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 09:52:59,860 [DEBUG][       Thread-250614][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 09:52:59,860 [DEBUG][       Thread-250614][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 09:52:59,869 [DEBUG][       Thread-250614][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 09:52:59,878 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 09:52:59,878 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 09:52:59,886 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 09:52:59,895 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 09:52:59,895 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 09:52:59,896 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 09:52:59,903 [DEBUG][       Thread-250614][   transport.py][1871] : EOF in transport thread
2025-06-13 09:53:02,412 [DEBUG][Thread-250616 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:53:04,536 [DEBUG][Thread-250617 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:53:09,906 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 09:53:09,906 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 09:53:09,906 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 09:53:09,909 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 09:53:10,370 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 9, 52, 38), 9.49, 51.35, 0.0, 13.64, 8.34, 0, 0, 0, 2, 0, 0),)
2025-06-13 09:53:10,370 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 09:52:38
2025-06-13 09:53:10,452 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 09:53:10,458 [DEBUG][       Thread-250618][   transport.py][1871] : starting thread (client mode): 0x84205ae0
2025-06-13 09:53:10,458 [DEBUG][       Thread-250618][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 09:53:10,479 [DEBUG][       Thread-250618][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 09:53:10,480 [ INFO][       Thread-250618][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 09:53:10,483 [DEBUG][       Thread-250618][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 09:53:10,484 [DEBUG][       Thread-250618][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 09:53:10,484 [DEBUG][       Thread-250618][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 09:53:10,484 [DEBUG][       Thread-250618][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:53:10,484 [DEBUG][       Thread-250618][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:53:10,484 [DEBUG][       Thread-250618][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:53:10,484 [DEBUG][       Thread-250618][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:53:10,484 [DEBUG][       Thread-250618][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 09:53:10,484 [DEBUG][       Thread-250618][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 09:53:10,484 [DEBUG][       Thread-250618][   transport.py][1871] : client lang: <none>
2025-06-13 09:53:10,484 [DEBUG][       Thread-250618][   transport.py][1871] : server lang: <none>
2025-06-13 09:53:10,484 [DEBUG][       Thread-250618][   transport.py][1871] : kex follows: False
2025-06-13 09:53:10,484 [DEBUG][       Thread-250618][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 09:53:10,484 [DEBUG][       Thread-250618][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 09:53:10,484 [DEBUG][       Thread-250618][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 09:53:10,484 [DEBUG][       Thread-250618][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 09:53:10,484 [DEBUG][       Thread-250618][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 09:53:10,484 [DEBUG][       Thread-250618][   transport.py][1871] : Compression: none
2025-06-13 09:53:10,484 [DEBUG][       Thread-250618][   transport.py][1871] : === End of kex handshake ===
2025-06-13 09:53:10,504 [DEBUG][       Thread-250618][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 09:53:10,504 [DEBUG][       Thread-250618][   transport.py][1871] : Switch to new keys ...
2025-06-13 09:53:10,505 [DEBUG][       Thread-250618][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 09:53:10,505 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 09:53:10,505 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 09:53:10,506 [DEBUG][       Thread-250618][   transport.py][1871] : userauth is OK
2025-06-13 09:53:10,531 [ INFO][       Thread-250618][   transport.py][1871] : Authentication (password) successful!
2025-06-13 09:53:10,531 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 09:53:11,143 [DEBUG][       Thread-250618][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 09:53:11,143 [DEBUG][       Thread-250618][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 09:53:11,185 [DEBUG][       Thread-250618][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 09:53:11,185 [DEBUG][       Thread-250618][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 09:53:11,187 [DEBUG][       Thread-250618][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 09:53:11,202 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 09:53:11,202 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 09:53:11,203 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 09:53:11,205 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 09:53:11,210 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 09:53:11,211 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 09:53:11,211 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 09:53:11,212 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 09:53:11,212 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.328413 -999.00   +8.30  18.43     56   +0.00 1 1 1 1 1   887    0 8.61 21.47 ----- 19.8 18.4 42.6 23.8 12.4 -28.0 11.2 -29.0 9.9 -27.9 11.1 -26.4
2025-06-13 09:53:11,212 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 09:53:11,212 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 09:53:11,212 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.328413
2025-06-13 09:53:11,213 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 09:53:11,213 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 09:53:11,213 [DEBUG][       Thread-250618][   transport.py][1871] : EOF in transport thread
2025-06-13 09:53:11,213 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 09:53:11,214 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 09:53:11,214 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 09:53:11,214 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T09:52:38', tmtdew=9.49, humidity=51.35, cloud=0.0, wind=13.64, temperature=8.34, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T07:52:54.883', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 09:53:11,297 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 09:53:11,308 [DEBUG][       Thread-250621][   transport.py][1871] : starting thread (client mode): 0x863ca1a0
2025-06-13 09:53:11,308 [DEBUG][       Thread-250621][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 09:53:11,324 [DEBUG][       Thread-250621][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 09:53:11,324 [ INFO][       Thread-250621][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 09:53:11,332 [DEBUG][       Thread-250621][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 09:53:11,332 [DEBUG][       Thread-250621][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 09:53:11,332 [DEBUG][       Thread-250621][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 09:53:11,332 [DEBUG][       Thread-250621][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:53:11,332 [DEBUG][       Thread-250621][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:53:11,332 [DEBUG][       Thread-250621][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:53:11,332 [DEBUG][       Thread-250621][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:53:11,332 [DEBUG][       Thread-250621][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 09:53:11,332 [DEBUG][       Thread-250621][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 09:53:11,332 [DEBUG][       Thread-250621][   transport.py][1871] : client lang: <none>
2025-06-13 09:53:11,332 [DEBUG][       Thread-250621][   transport.py][1871] : server lang: <none>
2025-06-13 09:53:11,332 [DEBUG][       Thread-250621][   transport.py][1871] : kex follows: False
2025-06-13 09:53:11,332 [DEBUG][       Thread-250621][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 09:53:11,332 [DEBUG][       Thread-250621][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 09:53:11,332 [DEBUG][       Thread-250621][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 09:53:11,332 [DEBUG][       Thread-250621][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 09:53:11,332 [DEBUG][       Thread-250621][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 09:53:11,332 [DEBUG][       Thread-250621][   transport.py][1871] : Compression: none
2025-06-13 09:53:11,332 [DEBUG][       Thread-250621][   transport.py][1871] : === End of kex handshake ===
2025-06-13 09:53:11,389 [DEBUG][       Thread-250621][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 09:53:11,389 [DEBUG][       Thread-250621][   transport.py][1871] : Switch to new keys ...
2025-06-13 09:53:11,389 [DEBUG][       Thread-250621][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 09:53:11,389 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 09:53:11,390 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 09:53:11,432 [DEBUG][Thread-250623 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:53:11,446 [DEBUG][       Thread-250621][   transport.py][1871] : userauth is OK
2025-06-13 09:53:11,447 [DEBUG][       Thread-250621][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 09:53:11,447 [DEBUG][       Thread-250621][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 09:53:11,447 [DEBUG][       Thread-250621][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 09:53:11,447 [DEBUG][       Thread-250621][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 09:53:11,461 [ INFO][       Thread-250621][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 09:53:11,461 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 09:53:11,461 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 09:53:12,499 [DEBUG][       Thread-250621][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 09:53:12,499 [DEBUG][       Thread-250621][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 09:53:12,551 [DEBUG][       Thread-250621][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 09:53:12,551 [DEBUG][       Thread-250621][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 09:53:12,559 [DEBUG][       Thread-250621][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 09:53:12,567 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 09:53:12,567 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 09:53:12,575 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 09:53:12,583 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 09:53:12,583 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 09:53:12,583 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 09:53:12,590 [DEBUG][       Thread-250621][   transport.py][1871] : EOF in transport thread
2025-06-13 09:53:20,447 [DEBUG][Thread-250624 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:53:21,521 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:53:21,521 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:53:22,592 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 09:53:22,592 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 09:53:22,592 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 09:53:22,593 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 09:53:23,047 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 9, 53, 10), 9.47, 51.21, 0.0, 18.81, 8.35, 0, 0, 0, 2, 0, 0),)
2025-06-13 09:53:23,047 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 09:53:10
2025-06-13 09:53:23,129 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 09:53:23,133 [DEBUG][       Thread-250625][   transport.py][1871] : starting thread (client mode): 0x84204ca0
2025-06-13 09:53:23,133 [DEBUG][       Thread-250625][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 09:53:23,153 [DEBUG][       Thread-250625][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 09:53:23,153 [ INFO][       Thread-250625][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 09:53:23,155 [DEBUG][       Thread-250625][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 09:53:23,155 [DEBUG][       Thread-250625][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 09:53:23,155 [DEBUG][       Thread-250625][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 09:53:23,155 [DEBUG][       Thread-250625][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:53:23,155 [DEBUG][       Thread-250625][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:53:23,155 [DEBUG][       Thread-250625][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:53:23,155 [DEBUG][       Thread-250625][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:53:23,155 [DEBUG][       Thread-250625][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 09:53:23,155 [DEBUG][       Thread-250625][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 09:53:23,155 [DEBUG][       Thread-250625][   transport.py][1871] : client lang: <none>
2025-06-13 09:53:23,155 [DEBUG][       Thread-250625][   transport.py][1871] : server lang: <none>
2025-06-13 09:53:23,155 [DEBUG][       Thread-250625][   transport.py][1871] : kex follows: False
2025-06-13 09:53:23,155 [DEBUG][       Thread-250625][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 09:53:23,155 [DEBUG][       Thread-250625][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 09:53:23,155 [DEBUG][       Thread-250625][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 09:53:23,155 [DEBUG][       Thread-250625][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 09:53:23,156 [DEBUG][       Thread-250625][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 09:53:23,156 [DEBUG][       Thread-250625][   transport.py][1871] : Compression: none
2025-06-13 09:53:23,156 [DEBUG][       Thread-250625][   transport.py][1871] : === End of kex handshake ===
2025-06-13 09:53:23,165 [DEBUG][       Thread-250625][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 09:53:23,166 [DEBUG][       Thread-250625][   transport.py][1871] : Switch to new keys ...
2025-06-13 09:53:23,166 [DEBUG][       Thread-250625][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 09:53:23,166 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 09:53:23,166 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 09:53:23,167 [DEBUG][       Thread-250625][   transport.py][1871] : userauth is OK
2025-06-13 09:53:23,192 [ INFO][       Thread-250625][   transport.py][1871] : Authentication (password) successful!
2025-06-13 09:53:23,192 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 09:53:23,817 [DEBUG][       Thread-250625][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 09:53:23,817 [DEBUG][       Thread-250625][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 09:53:23,861 [DEBUG][       Thread-250625][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 09:53:23,861 [DEBUG][       Thread-250625][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 09:53:23,864 [DEBUG][       Thread-250625][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 09:53:23,878 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 09:53:23,878 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 09:53:23,880 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 09:53:23,882 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 09:53:23,887 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 09:53:23,889 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 09:53:23,889 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 09:53:23,890 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 09:53:23,890 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.328413 -999.00   +8.30  18.43     56   +0.00 1 1 1 1 1   887    0 8.61 21.47 ----- 19.8 18.4 42.6 23.8 12.4 -28.0 11.2 -29.0 9.9 -27.9 11.1 -26.4
2025-06-13 09:53:23,890 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 09:53:23,890 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 09:53:23,890 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.328413
2025-06-13 09:53:23,890 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 09:53:23,891 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 09:53:23,891 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 09:53:23,891 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 09:53:23,891 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 09:53:23,891 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T09:53:10', tmtdew=9.47, humidity=51.21, cloud=0.0, wind=18.81, temperature=8.35, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T07:52:54.883', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 09:53:23,891 [DEBUG][       Thread-250625][   transport.py][1871] : EOF in transport thread
2025-06-13 09:53:23,974 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 09:53:23,984 [DEBUG][       Thread-250628][   transport.py][1871] : starting thread (client mode): 0x863eec20
2025-06-13 09:53:23,984 [DEBUG][       Thread-250628][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 09:53:23,998 [DEBUG][       Thread-250628][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 09:53:23,998 [ INFO][       Thread-250628][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 09:53:24,006 [DEBUG][       Thread-250628][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 09:53:24,006 [DEBUG][       Thread-250628][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 09:53:24,006 [DEBUG][       Thread-250628][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 09:53:24,006 [DEBUG][       Thread-250628][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:53:24,006 [DEBUG][       Thread-250628][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:53:24,006 [DEBUG][       Thread-250628][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:53:24,006 [DEBUG][       Thread-250628][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:53:24,006 [DEBUG][       Thread-250628][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 09:53:24,006 [DEBUG][       Thread-250628][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 09:53:24,006 [DEBUG][       Thread-250628][   transport.py][1871] : client lang: <none>
2025-06-13 09:53:24,006 [DEBUG][       Thread-250628][   transport.py][1871] : server lang: <none>
2025-06-13 09:53:24,006 [DEBUG][       Thread-250628][   transport.py][1871] : kex follows: False
2025-06-13 09:53:24,006 [DEBUG][       Thread-250628][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 09:53:24,006 [DEBUG][       Thread-250628][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 09:53:24,006 [DEBUG][       Thread-250628][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 09:53:24,006 [DEBUG][       Thread-250628][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 09:53:24,006 [DEBUG][       Thread-250628][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 09:53:24,006 [DEBUG][       Thread-250628][   transport.py][1871] : Compression: none
2025-06-13 09:53:24,006 [DEBUG][       Thread-250628][   transport.py][1871] : === End of kex handshake ===
2025-06-13 09:53:24,077 [DEBUG][       Thread-250628][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 09:53:24,077 [DEBUG][       Thread-250628][   transport.py][1871] : Switch to new keys ...
2025-06-13 09:53:24,078 [DEBUG][       Thread-250628][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 09:53:24,078 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 09:53:24,078 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 09:53:24,139 [DEBUG][       Thread-250628][   transport.py][1871] : userauth is OK
2025-06-13 09:53:24,139 [DEBUG][       Thread-250628][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 09:53:24,139 [DEBUG][       Thread-250628][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 09:53:24,139 [DEBUG][       Thread-250628][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 09:53:24,139 [DEBUG][       Thread-250628][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 09:53:24,159 [ INFO][       Thread-250628][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 09:53:24,160 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 09:53:24,160 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 09:53:25,157 [DEBUG][       Thread-250628][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 09:53:25,157 [DEBUG][       Thread-250628][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 09:53:25,207 [DEBUG][       Thread-250628][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 09:53:25,208 [DEBUG][       Thread-250628][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 09:53:25,216 [DEBUG][       Thread-250628][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 09:53:25,227 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 09:53:25,227 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 09:53:25,238 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 09:53:25,248 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 09:53:25,249 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 09:53:25,249 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 09:53:25,261 [DEBUG][       Thread-250628][   transport.py][1871] : EOF in transport thread
2025-06-13 09:53:29,466 [DEBUG][Thread-250630 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:53:35,256 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 09:53:35,256 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 09:53:35,256 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 09:53:35,259 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 09:53:35,338 [DEBUG][Thread-250631 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:53:35,726 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 9, 53, 10), 9.47, 51.21, 0.0, 18.81, 8.35, 0, 0, 0, 2, 0, 0),)
2025-06-13 09:53:35,726 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 09:53:10
2025-06-13 09:53:35,809 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 09:53:35,814 [DEBUG][       Thread-250632][   transport.py][1871] : starting thread (client mode): 0x867b7d30
2025-06-13 09:53:35,815 [DEBUG][       Thread-250632][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 09:53:35,835 [DEBUG][       Thread-250632][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 09:53:35,835 [ INFO][       Thread-250632][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 09:53:35,839 [DEBUG][       Thread-250632][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 09:53:35,839 [DEBUG][       Thread-250632][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 09:53:35,839 [DEBUG][       Thread-250632][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 09:53:35,839 [DEBUG][       Thread-250632][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:53:35,839 [DEBUG][       Thread-250632][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:53:35,839 [DEBUG][       Thread-250632][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:53:35,839 [DEBUG][       Thread-250632][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:53:35,839 [DEBUG][       Thread-250632][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 09:53:35,839 [DEBUG][       Thread-250632][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 09:53:35,839 [DEBUG][       Thread-250632][   transport.py][1871] : client lang: <none>
2025-06-13 09:53:35,839 [DEBUG][       Thread-250632][   transport.py][1871] : server lang: <none>
2025-06-13 09:53:35,839 [DEBUG][       Thread-250632][   transport.py][1871] : kex follows: False
2025-06-13 09:53:35,839 [DEBUG][       Thread-250632][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 09:53:35,839 [DEBUG][       Thread-250632][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 09:53:35,839 [DEBUG][       Thread-250632][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 09:53:35,839 [DEBUG][       Thread-250632][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 09:53:35,839 [DEBUG][       Thread-250632][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 09:53:35,839 [DEBUG][       Thread-250632][   transport.py][1871] : Compression: none
2025-06-13 09:53:35,839 [DEBUG][       Thread-250632][   transport.py][1871] : === End of kex handshake ===
2025-06-13 09:53:35,854 [DEBUG][       Thread-250632][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 09:53:35,855 [DEBUG][       Thread-250632][   transport.py][1871] : Switch to new keys ...
2025-06-13 09:53:35,855 [DEBUG][       Thread-250632][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 09:53:35,855 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 09:53:35,856 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 09:53:35,857 [DEBUG][       Thread-250632][   transport.py][1871] : userauth is OK
2025-06-13 09:53:35,881 [ INFO][       Thread-250632][   transport.py][1871] : Authentication (password) successful!
2025-06-13 09:53:35,882 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 09:53:36,395 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:53:36,396 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:53:36,511 [DEBUG][       Thread-250632][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 09:53:36,511 [DEBUG][       Thread-250632][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 09:53:36,553 [DEBUG][       Thread-250632][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 09:53:36,553 [DEBUG][       Thread-250632][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 09:53:36,556 [DEBUG][       Thread-250632][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 09:53:36,569 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 09:53:36,569 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 09:53:36,571 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 09:53:36,573 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 09:53:36,578 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 09:53:36,580 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 09:53:36,580 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 09:53:36,581 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 09:53:36,581 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.328413 -999.00   +8.30  18.43     56   +0.00 1 1 1 1 1   887    0 8.61 21.47 ----- 19.8 18.4 42.6 23.8 12.4 -28.0 11.2 -29.0 9.9 -27.9 11.1 -26.4
2025-06-13 09:53:36,581 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 09:53:36,581 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 09:53:36,581 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.328413
2025-06-13 09:53:36,581 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 09:53:36,582 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 09:53:36,582 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 09:53:36,582 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 09:53:36,582 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 09:53:36,582 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T09:53:10', tmtdew=9.47, humidity=51.21, cloud=0.0, wind=18.81, temperature=8.35, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T07:52:54.883', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 09:53:36,583 [DEBUG][       Thread-250632][   transport.py][1871] : EOF in transport thread
2025-06-13 09:53:36,666 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 09:53:36,678 [DEBUG][       Thread-250635][   transport.py][1871] : starting thread (client mode): 0x84204880
2025-06-13 09:53:36,678 [DEBUG][       Thread-250635][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 09:53:36,697 [DEBUG][       Thread-250635][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 09:53:36,697 [ INFO][       Thread-250635][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 09:53:36,708 [DEBUG][       Thread-250635][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 09:53:36,708 [DEBUG][       Thread-250635][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 09:53:36,708 [DEBUG][       Thread-250635][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 09:53:36,708 [DEBUG][       Thread-250635][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:53:36,708 [DEBUG][       Thread-250635][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:53:36,709 [DEBUG][       Thread-250635][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:53:36,709 [DEBUG][       Thread-250635][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:53:36,709 [DEBUG][       Thread-250635][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 09:53:36,709 [DEBUG][       Thread-250635][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 09:53:36,709 [DEBUG][       Thread-250635][   transport.py][1871] : client lang: <none>
2025-06-13 09:53:36,709 [DEBUG][       Thread-250635][   transport.py][1871] : server lang: <none>
2025-06-13 09:53:36,709 [DEBUG][       Thread-250635][   transport.py][1871] : kex follows: False
2025-06-13 09:53:36,709 [DEBUG][       Thread-250635][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 09:53:36,709 [DEBUG][       Thread-250635][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 09:53:36,709 [DEBUG][       Thread-250635][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 09:53:36,709 [DEBUG][       Thread-250635][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 09:53:36,709 [DEBUG][       Thread-250635][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 09:53:36,709 [DEBUG][       Thread-250635][   transport.py][1871] : Compression: none
2025-06-13 09:53:36,709 [DEBUG][       Thread-250635][   transport.py][1871] : === End of kex handshake ===
2025-06-13 09:53:36,783 [DEBUG][       Thread-250635][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 09:53:36,783 [DEBUG][       Thread-250635][   transport.py][1871] : Switch to new keys ...
2025-06-13 09:53:36,784 [DEBUG][       Thread-250635][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 09:53:36,784 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 09:53:36,785 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 09:53:36,839 [DEBUG][       Thread-250635][   transport.py][1871] : userauth is OK
2025-06-13 09:53:36,839 [DEBUG][       Thread-250635][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 09:53:36,839 [DEBUG][       Thread-250635][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 09:53:36,839 [DEBUG][       Thread-250635][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 09:53:36,839 [DEBUG][       Thread-250635][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 09:53:36,857 [ INFO][       Thread-250635][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 09:53:36,857 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 09:53:36,858 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 09:53:37,886 [DEBUG][       Thread-250635][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 09:53:37,886 [DEBUG][       Thread-250635][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 09:53:37,938 [DEBUG][       Thread-250635][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 09:53:37,938 [DEBUG][       Thread-250635][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 09:53:37,947 [DEBUG][       Thread-250635][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 09:53:37,956 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 09:53:37,956 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 09:53:37,965 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 09:53:37,973 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 09:53:37,973 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 09:53:37,974 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 09:53:37,982 [DEBUG][       Thread-250635][   transport.py][1871] : EOF in transport thread
2025-06-13 09:53:38,496 [DEBUG][Thread-250637 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:53:47,516 [DEBUG][Thread-250638 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:53:47,978 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 09:53:47,978 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 09:53:47,978 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 09:53:47,981 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 09:53:48,454 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 9, 53, 42), 9.46, 51.25, 0.0, 19.36, 8.36, 0, 0, 0, 2, 0, 0),)
2025-06-13 09:53:48,454 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 09:53:42
2025-06-13 09:53:48,536 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 09:53:48,543 [DEBUG][       Thread-250639][   transport.py][1871] : starting thread (client mode): 0x863bc1c0
2025-06-13 09:53:48,543 [DEBUG][       Thread-250639][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 09:53:48,564 [DEBUG][       Thread-250639][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 09:53:48,564 [ INFO][       Thread-250639][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 09:53:48,567 [DEBUG][       Thread-250639][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 09:53:48,568 [DEBUG][       Thread-250639][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 09:53:48,568 [DEBUG][       Thread-250639][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 09:53:48,568 [DEBUG][       Thread-250639][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:53:48,568 [DEBUG][       Thread-250639][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:53:48,568 [DEBUG][       Thread-250639][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:53:48,568 [DEBUG][       Thread-250639][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:53:48,568 [DEBUG][       Thread-250639][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 09:53:48,568 [DEBUG][       Thread-250639][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 09:53:48,568 [DEBUG][       Thread-250639][   transport.py][1871] : client lang: <none>
2025-06-13 09:53:48,568 [DEBUG][       Thread-250639][   transport.py][1871] : server lang: <none>
2025-06-13 09:53:48,568 [DEBUG][       Thread-250639][   transport.py][1871] : kex follows: False
2025-06-13 09:53:48,568 [DEBUG][       Thread-250639][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 09:53:48,568 [DEBUG][       Thread-250639][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 09:53:48,568 [DEBUG][       Thread-250639][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 09:53:48,568 [DEBUG][       Thread-250639][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 09:53:48,568 [DEBUG][       Thread-250639][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 09:53:48,568 [DEBUG][       Thread-250639][   transport.py][1871] : Compression: none
2025-06-13 09:53:48,568 [DEBUG][       Thread-250639][   transport.py][1871] : === End of kex handshake ===
2025-06-13 09:53:48,584 [DEBUG][       Thread-250639][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 09:53:48,585 [DEBUG][       Thread-250639][   transport.py][1871] : Switch to new keys ...
2025-06-13 09:53:48,585 [DEBUG][       Thread-250639][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 09:53:48,585 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 09:53:48,586 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 09:53:48,587 [DEBUG][       Thread-250639][   transport.py][1871] : userauth is OK
2025-06-13 09:53:48,611 [ INFO][       Thread-250639][   transport.py][1871] : Authentication (password) successful!
2025-06-13 09:53:48,612 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 09:53:49,264 [DEBUG][       Thread-250639][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 09:53:49,264 [DEBUG][       Thread-250639][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 09:53:49,309 [DEBUG][       Thread-250639][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 09:53:49,309 [DEBUG][       Thread-250639][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 09:53:49,311 [DEBUG][       Thread-250639][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 09:53:49,323 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 09:53:49,323 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 09:53:49,324 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 09:53:49,325 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 09:53:49,328 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 09:53:49,328 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 09:53:49,329 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 09:53:49,329 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 09:53:49,329 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.328760 -999.00   +8.30  14.31     56   +0.00 1 1 1 1 1   887    0 8.68 21.86 ----- 17.7 14.3 38.0 23.0 12.5 -27.8 11.2 -29.1 10.0 -27.1 11.2 -26.1
2025-06-13 09:53:49,329 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 09:53:49,329 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 09:53:49,329 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.328760
2025-06-13 09:53:49,329 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 09:53:49,329 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 09:53:49,329 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 09:53:49,329 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 09:53:49,329 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 09:53:49,329 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T09:53:42', tmtdew=9.46, humidity=51.25, cloud=0.0, wind=19.36, temperature=8.36, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T07:53:24.864', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 09:53:49,330 [DEBUG][       Thread-250639][   transport.py][1871] : EOF in transport thread
2025-06-13 09:53:49,407 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 09:53:49,419 [DEBUG][       Thread-250642][   transport.py][1871] : starting thread (client mode): 0x863c9750
2025-06-13 09:53:49,419 [DEBUG][       Thread-250642][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 09:53:49,438 [DEBUG][       Thread-250642][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 09:53:49,439 [ INFO][       Thread-250642][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 09:53:49,446 [DEBUG][       Thread-250642][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 09:53:49,446 [DEBUG][       Thread-250642][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 09:53:49,446 [DEBUG][       Thread-250642][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 09:53:49,446 [DEBUG][       Thread-250642][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:53:49,446 [DEBUG][       Thread-250642][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:53:49,446 [DEBUG][       Thread-250642][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:53:49,446 [DEBUG][       Thread-250642][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:53:49,446 [DEBUG][       Thread-250642][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 09:53:49,446 [DEBUG][       Thread-250642][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 09:53:49,446 [DEBUG][       Thread-250642][   transport.py][1871] : client lang: <none>
2025-06-13 09:53:49,447 [DEBUG][       Thread-250642][   transport.py][1871] : server lang: <none>
2025-06-13 09:53:49,447 [DEBUG][       Thread-250642][   transport.py][1871] : kex follows: False
2025-06-13 09:53:49,447 [DEBUG][       Thread-250642][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 09:53:49,447 [DEBUG][       Thread-250642][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 09:53:49,447 [DEBUG][       Thread-250642][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 09:53:49,447 [DEBUG][       Thread-250642][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 09:53:49,447 [DEBUG][       Thread-250642][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 09:53:49,447 [DEBUG][       Thread-250642][   transport.py][1871] : Compression: none
2025-06-13 09:53:49,447 [DEBUG][       Thread-250642][   transport.py][1871] : === End of kex handshake ===
2025-06-13 09:53:49,507 [DEBUG][       Thread-250642][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 09:53:49,507 [DEBUG][       Thread-250642][   transport.py][1871] : Switch to new keys ...
2025-06-13 09:53:49,507 [DEBUG][       Thread-250642][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 09:53:49,508 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 09:53:49,508 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 09:53:49,563 [DEBUG][       Thread-250642][   transport.py][1871] : userauth is OK
2025-06-13 09:53:49,563 [DEBUG][       Thread-250642][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 09:53:49,563 [DEBUG][       Thread-250642][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 09:53:49,563 [DEBUG][       Thread-250642][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 09:53:49,563 [DEBUG][       Thread-250642][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 09:53:49,584 [ INFO][       Thread-250642][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 09:53:49,584 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 09:53:49,585 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 09:53:50,638 [DEBUG][       Thread-250642][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 09:53:50,638 [DEBUG][       Thread-250642][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 09:53:50,695 [DEBUG][       Thread-250642][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 09:53:50,695 [DEBUG][       Thread-250642][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 09:53:50,711 [DEBUG][       Thread-250642][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 09:53:50,719 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 09:53:50,719 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 09:53:50,727 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 09:53:50,735 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 09:53:50,735 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 09:53:50,736 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 09:53:50,744 [DEBUG][       Thread-250642][   transport.py][1871] : EOF in transport thread
2025-06-13 09:53:56,535 [DEBUG][Thread-250644 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:54:00,746 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 09:54:00,746 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 09:54:00,747 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 09:54:00,749 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 09:54:01,209 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 9, 53, 42), 9.46, 51.25, 0.0, 19.36, 8.36, 0, 0, 0, 2, 0, 0),)
2025-06-13 09:54:01,209 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 09:53:42
2025-06-13 09:54:01,292 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 09:54:01,296 [DEBUG][       Thread-250645][   transport.py][1871] : starting thread (client mode): 0x8636bdf0
2025-06-13 09:54:01,296 [DEBUG][       Thread-250645][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 09:54:01,317 [DEBUG][       Thread-250645][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 09:54:01,317 [ INFO][       Thread-250645][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 09:54:01,320 [DEBUG][       Thread-250645][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 09:54:01,320 [DEBUG][       Thread-250645][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 09:54:01,320 [DEBUG][       Thread-250645][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 09:54:01,320 [DEBUG][       Thread-250645][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:54:01,320 [DEBUG][       Thread-250645][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:54:01,320 [DEBUG][       Thread-250645][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:54:01,320 [DEBUG][       Thread-250645][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:54:01,320 [DEBUG][       Thread-250645][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 09:54:01,320 [DEBUG][       Thread-250645][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 09:54:01,320 [DEBUG][       Thread-250645][   transport.py][1871] : client lang: <none>
2025-06-13 09:54:01,320 [DEBUG][       Thread-250645][   transport.py][1871] : server lang: <none>
2025-06-13 09:54:01,320 [DEBUG][       Thread-250645][   transport.py][1871] : kex follows: False
2025-06-13 09:54:01,321 [DEBUG][       Thread-250645][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 09:54:01,321 [DEBUG][       Thread-250645][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 09:54:01,321 [DEBUG][       Thread-250645][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 09:54:01,321 [DEBUG][       Thread-250645][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 09:54:01,321 [DEBUG][       Thread-250645][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 09:54:01,321 [DEBUG][       Thread-250645][   transport.py][1871] : Compression: none
2025-06-13 09:54:01,321 [DEBUG][       Thread-250645][   transport.py][1871] : === End of kex handshake ===
2025-06-13 09:54:01,338 [DEBUG][       Thread-250645][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 09:54:01,338 [DEBUG][       Thread-250645][   transport.py][1871] : Switch to new keys ...
2025-06-13 09:54:01,339 [DEBUG][       Thread-250645][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 09:54:01,339 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 09:54:01,339 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 09:54:01,340 [DEBUG][       Thread-250645][   transport.py][1871] : userauth is OK
2025-06-13 09:54:01,364 [ INFO][       Thread-250645][   transport.py][1871] : Authentication (password) successful!
2025-06-13 09:54:01,365 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 09:54:01,934 [DEBUG][       Thread-250645][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 09:54:01,934 [DEBUG][       Thread-250645][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 09:54:01,977 [DEBUG][       Thread-250645][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 09:54:01,977 [DEBUG][       Thread-250645][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 09:54:01,980 [DEBUG][       Thread-250645][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 09:54:01,994 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 09:54:01,994 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 09:54:01,996 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 09:54:01,998 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 09:54:02,003 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 09:54:02,005 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 09:54:02,005 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 09:54:02,006 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 09:54:02,006 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.328760 -999.00   +8.30  14.31     56   +0.00 1 1 1 1 1   887    0 8.68 21.86 ----- 17.7 14.3 38.0 23.0 12.5 -27.8 11.2 -29.1 10.0 -27.1 11.2 -26.1
2025-06-13 09:54:02,006 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 09:54:02,006 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 09:54:02,006 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.328760
2025-06-13 09:54:02,007 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 09:54:02,007 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 09:54:02,007 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 09:54:02,007 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 09:54:02,007 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 09:54:02,008 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T09:53:42', tmtdew=9.46, humidity=51.25, cloud=0.0, wind=19.36, temperature=8.36, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T07:53:24.864', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 09:54:02,008 [DEBUG][       Thread-250645][   transport.py][1871] : EOF in transport thread
2025-06-13 09:54:02,087 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 09:54:02,097 [DEBUG][       Thread-250648][   transport.py][1871] : starting thread (client mode): 0x863a5240
2025-06-13 09:54:02,097 [DEBUG][       Thread-250648][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 09:54:02,111 [DEBUG][       Thread-250648][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 09:54:02,111 [ INFO][       Thread-250648][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 09:54:02,122 [DEBUG][       Thread-250648][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 09:54:02,122 [DEBUG][       Thread-250648][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 09:54:02,122 [DEBUG][       Thread-250648][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 09:54:02,122 [DEBUG][       Thread-250648][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:54:02,122 [DEBUG][       Thread-250648][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:54:02,122 [DEBUG][       Thread-250648][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:54:02,122 [DEBUG][       Thread-250648][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:54:02,122 [DEBUG][       Thread-250648][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 09:54:02,122 [DEBUG][       Thread-250648][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 09:54:02,122 [DEBUG][       Thread-250648][   transport.py][1871] : client lang: <none>
2025-06-13 09:54:02,122 [DEBUG][       Thread-250648][   transport.py][1871] : server lang: <none>
2025-06-13 09:54:02,122 [DEBUG][       Thread-250648][   transport.py][1871] : kex follows: False
2025-06-13 09:54:02,122 [DEBUG][       Thread-250648][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 09:54:02,122 [DEBUG][       Thread-250648][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 09:54:02,122 [DEBUG][       Thread-250648][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 09:54:02,122 [DEBUG][       Thread-250648][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 09:54:02,122 [DEBUG][       Thread-250648][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 09:54:02,122 [DEBUG][       Thread-250648][   transport.py][1871] : Compression: none
2025-06-13 09:54:02,123 [DEBUG][       Thread-250648][   transport.py][1871] : === End of kex handshake ===
2025-06-13 09:54:02,182 [DEBUG][       Thread-250648][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 09:54:02,183 [DEBUG][       Thread-250648][   transport.py][1871] : Switch to new keys ...
2025-06-13 09:54:02,183 [DEBUG][       Thread-250648][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 09:54:02,184 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 09:54:02,184 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 09:54:02,239 [DEBUG][       Thread-250648][   transport.py][1871] : userauth is OK
2025-06-13 09:54:02,239 [DEBUG][       Thread-250648][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 09:54:02,239 [DEBUG][       Thread-250648][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 09:54:02,239 [DEBUG][       Thread-250648][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 09:54:02,239 [DEBUG][       Thread-250648][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 09:54:02,257 [ INFO][       Thread-250648][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 09:54:02,258 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 09:54:02,258 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 09:54:03,318 [DEBUG][       Thread-250648][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 09:54:03,318 [DEBUG][       Thread-250648][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 09:54:03,373 [DEBUG][       Thread-250648][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 09:54:03,374 [DEBUG][       Thread-250648][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 09:54:03,383 [DEBUG][       Thread-250648][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 09:54:03,391 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 09:54:03,391 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 09:54:03,400 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 09:54:03,408 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 09:54:03,409 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 09:54:03,409 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 09:54:03,417 [DEBUG][       Thread-250648][   transport.py][1871] : EOF in transport thread
2025-06-13 09:54:04,589 [DEBUG][Thread-250650 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:54:05,566 [DEBUG][Thread-250651 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:54:13,419 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 09:54:13,420 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 09:54:13,420 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 09:54:13,422 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 09:54:13,888 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 9, 53, 42), 9.46, 51.25, 0.0, 19.36, 8.36, 0, 0, 0, 2, 0, 0),)
2025-06-13 09:54:13,888 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 09:53:42
2025-06-13 09:54:13,970 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 09:54:13,975 [DEBUG][       Thread-250652][   transport.py][1871] : starting thread (client mode): 0x84204370
2025-06-13 09:54:13,975 [DEBUG][       Thread-250652][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 09:54:13,996 [DEBUG][       Thread-250652][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 09:54:13,996 [ INFO][       Thread-250652][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 09:54:13,998 [DEBUG][       Thread-250652][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 09:54:13,999 [DEBUG][       Thread-250652][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 09:54:13,999 [DEBUG][       Thread-250652][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 09:54:13,999 [DEBUG][       Thread-250652][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:54:13,999 [DEBUG][       Thread-250652][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:54:13,999 [DEBUG][       Thread-250652][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:54:13,999 [DEBUG][       Thread-250652][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:54:13,999 [DEBUG][       Thread-250652][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 09:54:13,999 [DEBUG][       Thread-250652][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 09:54:13,999 [DEBUG][       Thread-250652][   transport.py][1871] : client lang: <none>
2025-06-13 09:54:13,999 [DEBUG][       Thread-250652][   transport.py][1871] : server lang: <none>
2025-06-13 09:54:13,999 [DEBUG][       Thread-250652][   transport.py][1871] : kex follows: False
2025-06-13 09:54:13,999 [DEBUG][       Thread-250652][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 09:54:13,999 [DEBUG][       Thread-250652][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 09:54:13,999 [DEBUG][       Thread-250652][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 09:54:13,999 [DEBUG][       Thread-250652][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 09:54:13,999 [DEBUG][       Thread-250652][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 09:54:13,999 [DEBUG][       Thread-250652][   transport.py][1871] : Compression: none
2025-06-13 09:54:13,999 [DEBUG][       Thread-250652][   transport.py][1871] : === End of kex handshake ===
2025-06-13 09:54:14,012 [DEBUG][       Thread-250652][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 09:54:14,013 [DEBUG][       Thread-250652][   transport.py][1871] : Switch to new keys ...
2025-06-13 09:54:14,013 [DEBUG][       Thread-250652][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 09:54:14,014 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 09:54:14,014 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 09:54:14,015 [DEBUG][       Thread-250652][   transport.py][1871] : userauth is OK
2025-06-13 09:54:14,027 [ INFO][       Thread-250652][   transport.py][1871] : Authentication (password) successful!
2025-06-13 09:54:14,028 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 09:54:14,581 [DEBUG][       Thread-250652][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 09:54:14,581 [DEBUG][       Thread-250652][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 09:54:14,584 [DEBUG][Thread-250654 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:54:14,624 [DEBUG][       Thread-250652][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 09:54:14,624 [DEBUG][       Thread-250652][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 09:54:14,626 [DEBUG][       Thread-250652][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 09:54:14,631 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 09:54:14,631 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 09:54:14,632 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 09:54:14,633 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 09:54:14,635 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 09:54:14,635 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 09:54:14,635 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 09:54:14,635 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 09:54:14,636 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.329107 -999.00   +8.30  25.87     55   -0.10 1 1 1 1 1   887    0 8.70 23.39 ----- 22.0 25.9 47.0 28.3 12.5 -28.4 11.2 -28.7 10.0 -28.3 11.2 -26.6
2025-06-13 09:54:14,636 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 09:54:14,636 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 09:54:14,636 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.329107
2025-06-13 09:54:14,636 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 09:54:14,636 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 09:54:14,636 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 09:54:14,636 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 09:54:14,636 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 09:54:14,636 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T09:53:42', tmtdew=9.46, humidity=51.25, cloud=0.0, wind=19.36, temperature=8.36, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T07:53:54.845', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 09:54:14,636 [DEBUG][       Thread-250652][   transport.py][1871] : EOF in transport thread
2025-06-13 09:54:14,715 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 09:54:14,728 [DEBUG][       Thread-250656][   transport.py][1871] : starting thread (client mode): 0x867fce20
2025-06-13 09:54:14,728 [DEBUG][       Thread-250656][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 09:54:14,746 [DEBUG][       Thread-250656][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 09:54:14,746 [ INFO][       Thread-250656][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 09:54:14,753 [DEBUG][       Thread-250656][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 09:54:14,753 [DEBUG][       Thread-250656][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 09:54:14,753 [DEBUG][       Thread-250656][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 09:54:14,753 [DEBUG][       Thread-250656][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:54:14,753 [DEBUG][       Thread-250656][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:54:14,754 [DEBUG][       Thread-250656][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:54:14,754 [DEBUG][       Thread-250656][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:54:14,754 [DEBUG][       Thread-250656][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 09:54:14,754 [DEBUG][       Thread-250656][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 09:54:14,754 [DEBUG][       Thread-250656][   transport.py][1871] : client lang: <none>
2025-06-13 09:54:14,754 [DEBUG][       Thread-250656][   transport.py][1871] : server lang: <none>
2025-06-13 09:54:14,754 [DEBUG][       Thread-250656][   transport.py][1871] : kex follows: False
2025-06-13 09:54:14,754 [DEBUG][       Thread-250656][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 09:54:14,754 [DEBUG][       Thread-250656][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 09:54:14,754 [DEBUG][       Thread-250656][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 09:54:14,754 [DEBUG][       Thread-250656][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 09:54:14,754 [DEBUG][       Thread-250656][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 09:54:14,754 [DEBUG][       Thread-250656][   transport.py][1871] : Compression: none
2025-06-13 09:54:14,754 [DEBUG][       Thread-250656][   transport.py][1871] : === End of kex handshake ===
2025-06-13 09:54:14,810 [DEBUG][       Thread-250656][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 09:54:14,810 [DEBUG][       Thread-250656][   transport.py][1871] : Switch to new keys ...
2025-06-13 09:54:14,810 [DEBUG][       Thread-250656][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 09:54:14,810 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 09:54:14,810 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 09:54:14,867 [DEBUG][       Thread-250656][   transport.py][1871] : userauth is OK
2025-06-13 09:54:14,867 [DEBUG][       Thread-250656][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 09:54:14,867 [DEBUG][       Thread-250656][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 09:54:14,867 [DEBUG][       Thread-250656][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 09:54:14,867 [DEBUG][       Thread-250656][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 09:54:14,885 [ INFO][       Thread-250656][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 09:54:14,885 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 09:54:14,885 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 09:54:15,915 [DEBUG][       Thread-250656][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 09:54:15,915 [DEBUG][       Thread-250656][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 09:54:15,963 [DEBUG][       Thread-250656][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 09:54:15,963 [DEBUG][       Thread-250656][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 09:54:15,972 [DEBUG][       Thread-250656][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 09:54:15,987 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 09:54:15,987 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 09:54:15,997 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 09:54:16,005 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 09:54:16,005 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 09:54:16,005 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 09:54:16,013 [DEBUG][       Thread-250656][   transport.py][1871] : EOF in transport thread
2025-06-13 09:54:21,674 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:54:21,675 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:54:23,601 [DEBUG][Thread-250658 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:54:26,015 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 09:54:26,015 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 09:54:26,015 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 09:54:26,018 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 09:54:26,478 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 9, 54, 14), 9.54, 51.08, 0.0, 18.17, 8.33, 0, 0, 0, 2, 0, 0),)
2025-06-13 09:54:26,479 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 09:54:14
2025-06-13 09:54:26,560 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 09:54:26,564 [DEBUG][       Thread-250659][   transport.py][1871] : starting thread (client mode): 0x84205cc0
2025-06-13 09:54:26,564 [DEBUG][       Thread-250659][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 09:54:26,585 [DEBUG][       Thread-250659][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 09:54:26,585 [ INFO][       Thread-250659][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 09:54:26,589 [DEBUG][       Thread-250659][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 09:54:26,589 [DEBUG][       Thread-250659][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 09:54:26,589 [DEBUG][       Thread-250659][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 09:54:26,589 [DEBUG][       Thread-250659][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:54:26,589 [DEBUG][       Thread-250659][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:54:26,589 [DEBUG][       Thread-250659][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:54:26,589 [DEBUG][       Thread-250659][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:54:26,589 [DEBUG][       Thread-250659][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 09:54:26,589 [DEBUG][       Thread-250659][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 09:54:26,589 [DEBUG][       Thread-250659][   transport.py][1871] : client lang: <none>
2025-06-13 09:54:26,589 [DEBUG][       Thread-250659][   transport.py][1871] : server lang: <none>
2025-06-13 09:54:26,589 [DEBUG][       Thread-250659][   transport.py][1871] : kex follows: False
2025-06-13 09:54:26,589 [DEBUG][       Thread-250659][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 09:54:26,589 [DEBUG][       Thread-250659][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 09:54:26,589 [DEBUG][       Thread-250659][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 09:54:26,589 [DEBUG][       Thread-250659][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 09:54:26,589 [DEBUG][       Thread-250659][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 09:54:26,589 [DEBUG][       Thread-250659][   transport.py][1871] : Compression: none
2025-06-13 09:54:26,589 [DEBUG][       Thread-250659][   transport.py][1871] : === End of kex handshake ===
2025-06-13 09:54:26,606 [DEBUG][       Thread-250659][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 09:54:26,606 [DEBUG][       Thread-250659][   transport.py][1871] : Switch to new keys ...
2025-06-13 09:54:26,607 [DEBUG][       Thread-250659][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 09:54:26,607 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 09:54:26,607 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 09:54:26,608 [DEBUG][       Thread-250659][   transport.py][1871] : userauth is OK
2025-06-13 09:54:26,621 [ INFO][       Thread-250659][   transport.py][1871] : Authentication (password) successful!
2025-06-13 09:54:26,621 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 09:54:27,234 [DEBUG][       Thread-250659][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 09:54:27,235 [DEBUG][       Thread-250659][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 09:54:27,281 [DEBUG][       Thread-250659][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 09:54:27,281 [DEBUG][       Thread-250659][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 09:54:27,284 [DEBUG][       Thread-250659][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 09:54:27,296 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 09:54:27,296 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 09:54:27,298 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 09:54:27,299 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 09:54:27,304 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 09:54:27,306 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 09:54:27,306 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 09:54:27,307 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 09:54:27,307 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.329107 -999.00   +8.30  25.87     55   -0.10 1 1 1 1 1   887    0 8.70 23.39 ----- 22.0 25.9 47.0 28.3 12.5 -28.4 11.2 -28.7 10.0 -28.3 11.2 -26.6
2025-06-13 09:54:27,307 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 09:54:27,307 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 09:54:27,307 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.329107
2025-06-13 09:54:27,308 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 09:54:27,308 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 09:54:27,308 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 09:54:27,308 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 09:54:27,308 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 09:54:27,308 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T09:54:14', tmtdew=9.54, humidity=51.08, cloud=0.0, wind=18.17, temperature=8.33, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T07:53:54.845', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 09:54:27,309 [DEBUG][       Thread-250659][   transport.py][1871] : EOF in transport thread
2025-06-13 09:54:27,392 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 09:54:27,409 [DEBUG][       Thread-250662][   transport.py][1871] : starting thread (client mode): 0x863a4c70
2025-06-13 09:54:27,409 [DEBUG][       Thread-250662][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 09:54:27,424 [DEBUG][       Thread-250662][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 09:54:27,424 [ INFO][       Thread-250662][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 09:54:27,432 [DEBUG][       Thread-250662][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 09:54:27,432 [DEBUG][       Thread-250662][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 09:54:27,432 [DEBUG][       Thread-250662][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 09:54:27,433 [DEBUG][       Thread-250662][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:54:27,433 [DEBUG][       Thread-250662][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:54:27,433 [DEBUG][       Thread-250662][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:54:27,433 [DEBUG][       Thread-250662][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:54:27,433 [DEBUG][       Thread-250662][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 09:54:27,433 [DEBUG][       Thread-250662][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 09:54:27,433 [DEBUG][       Thread-250662][   transport.py][1871] : client lang: <none>
2025-06-13 09:54:27,433 [DEBUG][       Thread-250662][   transport.py][1871] : server lang: <none>
2025-06-13 09:54:27,433 [DEBUG][       Thread-250662][   transport.py][1871] : kex follows: False
2025-06-13 09:54:27,433 [DEBUG][       Thread-250662][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 09:54:27,433 [DEBUG][       Thread-250662][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 09:54:27,433 [DEBUG][       Thread-250662][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 09:54:27,433 [DEBUG][       Thread-250662][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 09:54:27,433 [DEBUG][       Thread-250662][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 09:54:27,433 [DEBUG][       Thread-250662][   transport.py][1871] : Compression: none
2025-06-13 09:54:27,433 [DEBUG][       Thread-250662][   transport.py][1871] : === End of kex handshake ===
2025-06-13 09:54:27,497 [DEBUG][       Thread-250662][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 09:54:27,497 [DEBUG][       Thread-250662][   transport.py][1871] : Switch to new keys ...
2025-06-13 09:54:27,497 [DEBUG][       Thread-250662][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 09:54:27,497 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 09:54:27,497 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 09:54:27,563 [DEBUG][       Thread-250662][   transport.py][1871] : userauth is OK
2025-06-13 09:54:27,563 [DEBUG][       Thread-250662][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 09:54:27,563 [DEBUG][       Thread-250662][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 09:54:27,563 [DEBUG][       Thread-250662][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 09:54:27,564 [DEBUG][       Thread-250662][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 09:54:27,584 [ INFO][       Thread-250662][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 09:54:27,584 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 09:54:27,585 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 09:54:28,603 [DEBUG][       Thread-250662][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 09:54:28,603 [DEBUG][       Thread-250662][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 09:54:28,655 [DEBUG][       Thread-250662][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 09:54:28,655 [DEBUG][       Thread-250662][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 09:54:28,664 [DEBUG][       Thread-250662][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 09:54:28,674 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 09:54:28,674 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 09:54:28,690 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 09:54:28,709 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 09:54:28,709 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 09:54:28,709 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 09:54:28,717 [DEBUG][       Thread-250662][   transport.py][1871] : EOF in transport thread
2025-06-13 09:54:32,618 [DEBUG][Thread-250664 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:54:36,453 [DEBUG][Thread-250665 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:54:37,534 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:54:37,535 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:54:38,717 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 09:54:38,717 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 09:54:38,717 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 09:54:38,720 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 09:54:39,184 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 9, 54, 14), 9.54, 51.08, 0.0, 18.17, 8.33, 0, 0, 0, 2, 0, 0),)
2025-06-13 09:54:39,184 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 09:54:14
2025-06-13 09:54:39,266 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 09:54:39,272 [DEBUG][       Thread-250666][   transport.py][1871] : starting thread (client mode): 0x842060e0
2025-06-13 09:54:39,272 [DEBUG][       Thread-250666][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 09:54:39,291 [DEBUG][       Thread-250666][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 09:54:39,291 [ INFO][       Thread-250666][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 09:54:39,295 [DEBUG][       Thread-250666][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 09:54:39,295 [DEBUG][       Thread-250666][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 09:54:39,295 [DEBUG][       Thread-250666][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 09:54:39,295 [DEBUG][       Thread-250666][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:54:39,295 [DEBUG][       Thread-250666][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:54:39,295 [DEBUG][       Thread-250666][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:54:39,295 [DEBUG][       Thread-250666][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:54:39,295 [DEBUG][       Thread-250666][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 09:54:39,295 [DEBUG][       Thread-250666][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 09:54:39,295 [DEBUG][       Thread-250666][   transport.py][1871] : client lang: <none>
2025-06-13 09:54:39,295 [DEBUG][       Thread-250666][   transport.py][1871] : server lang: <none>
2025-06-13 09:54:39,295 [DEBUG][       Thread-250666][   transport.py][1871] : kex follows: False
2025-06-13 09:54:39,295 [DEBUG][       Thread-250666][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 09:54:39,295 [DEBUG][       Thread-250666][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 09:54:39,295 [DEBUG][       Thread-250666][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 09:54:39,295 [DEBUG][       Thread-250666][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 09:54:39,295 [DEBUG][       Thread-250666][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 09:54:39,295 [DEBUG][       Thread-250666][   transport.py][1871] : Compression: none
2025-06-13 09:54:39,295 [DEBUG][       Thread-250666][   transport.py][1871] : === End of kex handshake ===
2025-06-13 09:54:39,311 [DEBUG][       Thread-250666][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 09:54:39,312 [DEBUG][       Thread-250666][   transport.py][1871] : Switch to new keys ...
2025-06-13 09:54:39,312 [DEBUG][       Thread-250666][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 09:54:39,313 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 09:54:39,313 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 09:54:39,314 [DEBUG][       Thread-250666][   transport.py][1871] : userauth is OK
2025-06-13 09:54:39,326 [ INFO][       Thread-250666][   transport.py][1871] : Authentication (password) successful!
2025-06-13 09:54:39,327 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 09:54:39,918 [DEBUG][       Thread-250666][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 09:54:39,918 [DEBUG][       Thread-250666][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 09:54:39,961 [DEBUG][       Thread-250666][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 09:54:39,961 [DEBUG][       Thread-250666][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 09:54:39,964 [DEBUG][       Thread-250666][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 09:54:39,975 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 09:54:39,976 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 09:54:39,977 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 09:54:39,979 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 09:54:39,984 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 09:54:39,986 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 09:54:39,986 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 09:54:39,987 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 09:54:39,987 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.329107 -999.00   +8.30  25.87     55   -0.10 1 1 1 1 1   887    0 8.70 23.39 ----- 22.0 25.9 47.0 28.3 12.5 -28.4 11.2 -28.7 10.0 -28.3 11.2 -26.6
2025-06-13 09:54:39,987 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 09:54:39,987 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 09:54:39,987 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.329107
2025-06-13 09:54:39,988 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 09:54:39,988 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 09:54:39,988 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 09:54:39,988 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 09:54:39,988 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 09:54:39,988 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T09:54:14', tmtdew=9.54, humidity=51.08, cloud=0.0, wind=18.17, temperature=8.33, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T07:53:54.845', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 09:54:39,989 [DEBUG][       Thread-250666][   transport.py][1871] : EOF in transport thread
2025-06-13 09:54:40,072 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 09:54:40,086 [DEBUG][       Thread-250669][   transport.py][1871] : starting thread (client mode): 0x867fce20
2025-06-13 09:54:40,086 [DEBUG][       Thread-250669][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 09:54:40,102 [DEBUG][       Thread-250669][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 09:54:40,103 [ INFO][       Thread-250669][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 09:54:40,113 [DEBUG][       Thread-250669][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 09:54:40,113 [DEBUG][       Thread-250669][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 09:54:40,113 [DEBUG][       Thread-250669][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 09:54:40,113 [DEBUG][       Thread-250669][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:54:40,113 [DEBUG][       Thread-250669][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:54:40,113 [DEBUG][       Thread-250669][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:54:40,113 [DEBUG][       Thread-250669][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:54:40,113 [DEBUG][       Thread-250669][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 09:54:40,113 [DEBUG][       Thread-250669][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 09:54:40,113 [DEBUG][       Thread-250669][   transport.py][1871] : client lang: <none>
2025-06-13 09:54:40,114 [DEBUG][       Thread-250669][   transport.py][1871] : server lang: <none>
2025-06-13 09:54:40,114 [DEBUG][       Thread-250669][   transport.py][1871] : kex follows: False
2025-06-13 09:54:40,114 [DEBUG][       Thread-250669][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 09:54:40,114 [DEBUG][       Thread-250669][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 09:54:40,114 [DEBUG][       Thread-250669][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 09:54:40,114 [DEBUG][       Thread-250669][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 09:54:40,114 [DEBUG][       Thread-250669][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 09:54:40,114 [DEBUG][       Thread-250669][   transport.py][1871] : Compression: none
2025-06-13 09:54:40,114 [DEBUG][       Thread-250669][   transport.py][1871] : === End of kex handshake ===
2025-06-13 09:54:40,173 [DEBUG][       Thread-250669][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 09:54:40,173 [DEBUG][       Thread-250669][   transport.py][1871] : Switch to new keys ...
2025-06-13 09:54:40,174 [DEBUG][       Thread-250669][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 09:54:40,174 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 09:54:40,174 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 09:54:40,235 [DEBUG][       Thread-250669][   transport.py][1871] : userauth is OK
2025-06-13 09:54:40,235 [DEBUG][       Thread-250669][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 09:54:40,235 [DEBUG][       Thread-250669][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 09:54:40,236 [DEBUG][       Thread-250669][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 09:54:40,236 [DEBUG][       Thread-250669][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 09:54:40,254 [ INFO][       Thread-250669][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 09:54:40,254 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 09:54:40,254 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 09:54:41,265 [DEBUG][       Thread-250669][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 09:54:41,266 [DEBUG][       Thread-250669][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 09:54:41,316 [DEBUG][       Thread-250669][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 09:54:41,316 [DEBUG][       Thread-250669][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 09:54:41,328 [DEBUG][       Thread-250669][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 09:54:41,336 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 09:54:41,337 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 09:54:41,345 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 09:54:41,354 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 09:54:41,354 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 09:54:41,354 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 09:54:41,363 [DEBUG][       Thread-250669][   transport.py][1871] : EOF in transport thread
2025-06-13 09:54:41,643 [DEBUG][Thread-250671 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:54:50,665 [DEBUG][Thread-250672 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:54:51,365 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 09:54:51,365 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 09:54:51,365 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 09:54:51,367 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 09:54:51,818 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 9, 54, 45), 9.52, 51.17, 0.0, 18.14, 8.35, 0, 0, 0, 2, 0, 0),)
2025-06-13 09:54:51,818 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 09:54:45
2025-06-13 09:54:51,898 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 09:54:51,905 [DEBUG][       Thread-250673][   transport.py][1871] : starting thread (client mode): 0x84205390
2025-06-13 09:54:51,905 [DEBUG][       Thread-250673][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 09:54:51,925 [DEBUG][       Thread-250673][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 09:54:51,925 [ INFO][       Thread-250673][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 09:54:51,928 [DEBUG][       Thread-250673][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 09:54:51,928 [DEBUG][       Thread-250673][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 09:54:51,928 [DEBUG][       Thread-250673][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 09:54:51,928 [DEBUG][       Thread-250673][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:54:51,928 [DEBUG][       Thread-250673][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:54:51,928 [DEBUG][       Thread-250673][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:54:51,928 [DEBUG][       Thread-250673][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:54:51,928 [DEBUG][       Thread-250673][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 09:54:51,928 [DEBUG][       Thread-250673][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 09:54:51,928 [DEBUG][       Thread-250673][   transport.py][1871] : client lang: <none>
2025-06-13 09:54:51,928 [DEBUG][       Thread-250673][   transport.py][1871] : server lang: <none>
2025-06-13 09:54:51,928 [DEBUG][       Thread-250673][   transport.py][1871] : kex follows: False
2025-06-13 09:54:51,928 [DEBUG][       Thread-250673][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 09:54:51,928 [DEBUG][       Thread-250673][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 09:54:51,928 [DEBUG][       Thread-250673][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 09:54:51,928 [DEBUG][       Thread-250673][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 09:54:51,928 [DEBUG][       Thread-250673][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 09:54:51,929 [DEBUG][       Thread-250673][   transport.py][1871] : Compression: none
2025-06-13 09:54:51,929 [DEBUG][       Thread-250673][   transport.py][1871] : === End of kex handshake ===
2025-06-13 09:54:51,946 [DEBUG][       Thread-250673][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 09:54:51,946 [DEBUG][       Thread-250673][   transport.py][1871] : Switch to new keys ...
2025-06-13 09:54:51,947 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 09:54:51,947 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 09:54:51,947 [DEBUG][       Thread-250673][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 09:54:51,948 [DEBUG][       Thread-250673][   transport.py][1871] : userauth is OK
2025-06-13 09:54:51,962 [ INFO][       Thread-250673][   transport.py][1871] : Authentication (password) successful!
2025-06-13 09:54:51,963 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 09:54:52,627 [DEBUG][       Thread-250673][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 09:54:52,627 [DEBUG][       Thread-250673][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 09:54:52,669 [DEBUG][       Thread-250673][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 09:54:52,669 [DEBUG][       Thread-250673][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 09:54:52,672 [DEBUG][       Thread-250673][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 09:54:52,685 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 09:54:52,685 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 09:54:52,687 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 09:54:52,688 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 09:54:52,694 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 09:54:52,695 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 09:54:52,695 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 09:54:52,696 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 09:54:52,696 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.329454 -999.00   +8.20  22.91     55   -0.10 1 1 1 1 1   887    0 8.94 25.57 ----- 21.0 22.9 31.4 26.2 12.5 -28.1 11.1 -29.2 10.0 -28.2 11.2 -26.4
2025-06-13 09:54:52,696 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 09:54:52,696 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 09:54:52,696 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.329454
2025-06-13 09:54:52,697 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 09:54:52,697 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 09:54:52,697 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 09:54:52,697 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 09:54:52,697 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 09:54:52,698 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T09:54:45', tmtdew=9.52, humidity=51.17, cloud=0.0, wind=18.14, temperature=8.35, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T07:54:24.826', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 09:54:52,698 [DEBUG][       Thread-250673][   transport.py][1871] : EOF in transport thread
2025-06-13 09:54:52,781 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 09:54:52,793 [DEBUG][       Thread-250676][   transport.py][1871] : starting thread (client mode): 0x84205450
2025-06-13 09:54:52,793 [DEBUG][       Thread-250676][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 09:54:52,807 [DEBUG][       Thread-250676][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 09:54:52,807 [ INFO][       Thread-250676][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 09:54:52,821 [DEBUG][       Thread-250676][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 09:54:52,821 [DEBUG][       Thread-250676][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 09:54:52,821 [DEBUG][       Thread-250676][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 09:54:52,821 [DEBUG][       Thread-250676][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:54:52,821 [DEBUG][       Thread-250676][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:54:52,822 [DEBUG][       Thread-250676][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:54:52,822 [DEBUG][       Thread-250676][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:54:52,822 [DEBUG][       Thread-250676][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 09:54:52,822 [DEBUG][       Thread-250676][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 09:54:52,822 [DEBUG][       Thread-250676][   transport.py][1871] : client lang: <none>
2025-06-13 09:54:52,822 [DEBUG][       Thread-250676][   transport.py][1871] : server lang: <none>
2025-06-13 09:54:52,822 [DEBUG][       Thread-250676][   transport.py][1871] : kex follows: False
2025-06-13 09:54:52,822 [DEBUG][       Thread-250676][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 09:54:52,822 [DEBUG][       Thread-250676][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 09:54:52,822 [DEBUG][       Thread-250676][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 09:54:52,822 [DEBUG][       Thread-250676][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 09:54:52,822 [DEBUG][       Thread-250676][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 09:54:52,822 [DEBUG][       Thread-250676][   transport.py][1871] : Compression: none
2025-06-13 09:54:52,822 [DEBUG][       Thread-250676][   transport.py][1871] : === End of kex handshake ===
2025-06-13 09:54:52,877 [DEBUG][       Thread-250676][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 09:54:52,877 [DEBUG][       Thread-250676][   transport.py][1871] : Switch to new keys ...
2025-06-13 09:54:52,877 [DEBUG][       Thread-250676][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 09:54:52,878 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 09:54:52,878 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 09:54:52,935 [DEBUG][       Thread-250676][   transport.py][1871] : userauth is OK
2025-06-13 09:54:52,935 [DEBUG][       Thread-250676][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 09:54:52,935 [DEBUG][       Thread-250676][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 09:54:52,935 [DEBUG][       Thread-250676][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 09:54:52,935 [DEBUG][       Thread-250676][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 09:54:52,949 [ INFO][       Thread-250676][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 09:54:52,949 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 09:54:52,949 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 09:54:53,929 [DEBUG][       Thread-250676][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 09:54:53,929 [DEBUG][       Thread-250676][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 09:54:53,979 [DEBUG][       Thread-250676][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 09:54:53,980 [DEBUG][       Thread-250676][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 09:54:53,988 [DEBUG][       Thread-250676][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 09:54:54,001 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 09:54:54,001 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 09:54:54,013 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 09:54:54,025 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 09:54:54,025 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 09:54:54,025 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 09:54:54,033 [DEBUG][       Thread-250676][   transport.py][1871] : EOF in transport thread
2025-06-13 09:54:59,684 [DEBUG][Thread-250678 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:55:04,027 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 09:55:04,027 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 09:55:04,027 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 09:55:04,030 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 09:55:04,492 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 9, 54, 45), 9.52, 51.17, 0.0, 18.14, 8.35, 0, 0, 0, 2, 0, 0),)
2025-06-13 09:55:04,492 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 09:54:45
2025-06-13 09:55:04,574 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 09:55:04,578 [DEBUG][       Thread-250679][   transport.py][1871] : starting thread (client mode): 0x863bf3d0
2025-06-13 09:55:04,578 [DEBUG][       Thread-250679][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 09:55:04,599 [DEBUG][       Thread-250679][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 09:55:04,599 [ INFO][       Thread-250679][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 09:55:04,603 [DEBUG][       Thread-250679][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 09:55:04,603 [DEBUG][       Thread-250679][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 09:55:04,603 [DEBUG][       Thread-250679][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 09:55:04,603 [DEBUG][       Thread-250679][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:55:04,603 [DEBUG][       Thread-250679][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:55:04,603 [DEBUG][       Thread-250679][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:55:04,603 [DEBUG][       Thread-250679][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:55:04,603 [DEBUG][       Thread-250679][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 09:55:04,603 [DEBUG][       Thread-250679][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 09:55:04,603 [DEBUG][       Thread-250679][   transport.py][1871] : client lang: <none>
2025-06-13 09:55:04,603 [DEBUG][       Thread-250679][   transport.py][1871] : server lang: <none>
2025-06-13 09:55:04,603 [DEBUG][       Thread-250679][   transport.py][1871] : kex follows: False
2025-06-13 09:55:04,603 [DEBUG][       Thread-250679][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 09:55:04,603 [DEBUG][       Thread-250679][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 09:55:04,603 [DEBUG][       Thread-250679][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 09:55:04,603 [DEBUG][       Thread-250679][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 09:55:04,603 [DEBUG][       Thread-250679][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 09:55:04,603 [DEBUG][       Thread-250679][   transport.py][1871] : Compression: none
2025-06-13 09:55:04,603 [DEBUG][       Thread-250679][   transport.py][1871] : === End of kex handshake ===
2025-06-13 09:55:04,618 [DEBUG][       Thread-250679][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 09:55:04,618 [DEBUG][       Thread-250679][   transport.py][1871] : Switch to new keys ...
2025-06-13 09:55:04,618 [DEBUG][       Thread-250679][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 09:55:04,618 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 09:55:04,618 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 09:55:04,619 [DEBUG][       Thread-250679][   transport.py][1871] : userauth is OK
2025-06-13 09:55:04,640 [DEBUG][Thread-250681 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:55:04,643 [ INFO][       Thread-250679][   transport.py][1871] : Authentication (password) successful!
2025-06-13 09:55:04,643 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 09:55:08,712 [DEBUG][Thread-250682 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:55:13,160 [DEBUG][       Thread-250679][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 09:55:13,160 [DEBUG][       Thread-250679][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 09:55:13,200 [DEBUG][       Thread-250679][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 09:55:13,201 [DEBUG][       Thread-250679][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 09:55:13,204 [DEBUG][       Thread-250679][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 09:55:13,217 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 09:55:13,217 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 09:55:13,219 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 09:55:13,221 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 09:55:13,250 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 09:55:13,252 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 09:55:13,253 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 09:55:13,254 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 09:55:13,254 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.329454 -999.00   +8.20  22.91     55   -0.10 1 1 1 1 1   887    0 8.94 25.57 ----- 21.0 22.9 31.4 26.2 12.5 -28.1 11.1 -29.2 10.0 -28.2 11.2 -26.4
2025-06-13 09:55:13,254 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 09:55:13,254 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 09:55:13,254 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.329454
2025-06-13 09:55:13,255 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 09:55:13,255 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 09:55:13,255 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 09:55:13,255 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 09:55:13,256 [DEBUG][       Thread-250679][   transport.py][1871] : EOF in transport thread
2025-06-13 09:55:13,256 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 09:55:13,257 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T09:54:45', tmtdew=9.52, humidity=51.17, cloud=0.0, wind=18.14, temperature=8.35, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T07:54:24.826', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 09:55:13,348 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 09:55:13,359 [DEBUG][       Thread-250684][   transport.py][1871] : starting thread (client mode): 0x863caa10
2025-06-13 09:55:13,359 [DEBUG][       Thread-250684][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 09:55:13,375 [DEBUG][       Thread-250684][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 09:55:13,375 [ INFO][       Thread-250684][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 09:55:13,383 [DEBUG][       Thread-250684][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 09:55:13,383 [DEBUG][       Thread-250684][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 09:55:13,383 [DEBUG][       Thread-250684][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 09:55:13,383 [DEBUG][       Thread-250684][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:55:13,383 [DEBUG][       Thread-250684][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:55:13,383 [DEBUG][       Thread-250684][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:55:13,383 [DEBUG][       Thread-250684][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:55:13,383 [DEBUG][       Thread-250684][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 09:55:13,383 [DEBUG][       Thread-250684][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 09:55:13,383 [DEBUG][       Thread-250684][   transport.py][1871] : client lang: <none>
2025-06-13 09:55:13,383 [DEBUG][       Thread-250684][   transport.py][1871] : server lang: <none>
2025-06-13 09:55:13,383 [DEBUG][       Thread-250684][   transport.py][1871] : kex follows: False
2025-06-13 09:55:13,383 [DEBUG][       Thread-250684][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 09:55:13,383 [DEBUG][       Thread-250684][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 09:55:13,383 [DEBUG][       Thread-250684][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 09:55:13,383 [DEBUG][       Thread-250684][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 09:55:13,383 [DEBUG][       Thread-250684][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 09:55:13,383 [DEBUG][       Thread-250684][   transport.py][1871] : Compression: none
2025-06-13 09:55:13,384 [DEBUG][       Thread-250684][   transport.py][1871] : === End of kex handshake ===
2025-06-13 09:55:13,442 [DEBUG][       Thread-250684][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 09:55:13,443 [DEBUG][       Thread-250684][   transport.py][1871] : Switch to new keys ...
2025-06-13 09:55:13,443 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 09:55:13,444 [DEBUG][       Thread-250684][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 09:55:13,444 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 09:55:13,499 [DEBUG][       Thread-250684][   transport.py][1871] : userauth is OK
2025-06-13 09:55:13,499 [DEBUG][       Thread-250684][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 09:55:13,499 [DEBUG][       Thread-250684][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 09:55:13,499 [DEBUG][       Thread-250684][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 09:55:13,499 [DEBUG][       Thread-250684][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 09:55:13,518 [ INFO][       Thread-250684][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 09:55:13,519 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 09:55:13,519 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 09:55:14,587 [DEBUG][       Thread-250684][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 09:55:14,587 [DEBUG][       Thread-250684][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 09:55:14,635 [DEBUG][       Thread-250684][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 09:55:14,635 [DEBUG][       Thread-250684][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 09:55:14,643 [DEBUG][       Thread-250684][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 09:55:14,653 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 09:55:14,654 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 09:55:14,661 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 09:55:14,670 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 09:55:14,670 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 09:55:14,670 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 09:55:14,678 [DEBUG][       Thread-250684][   transport.py][1871] : EOF in transport thread
2025-06-13 09:55:17,728 [DEBUG][Thread-250686 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:55:21,840 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:55:21,841 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:55:24,672 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 09:55:24,672 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 09:55:24,672 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 09:55:24,675 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 09:55:25,135 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 9, 55, 17), 9.5, 51.27, 0.0, 17.01, 8.45, 0, 0, 0, 2, 0, 0),)
2025-06-13 09:55:25,135 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 09:55:17
2025-06-13 09:55:25,217 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 09:55:25,222 [DEBUG][       Thread-250687][   transport.py][1871] : starting thread (client mode): 0x86369300
2025-06-13 09:55:25,222 [DEBUG][       Thread-250687][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 09:55:25,242 [DEBUG][       Thread-250687][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 09:55:25,242 [ INFO][       Thread-250687][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 09:55:25,243 [DEBUG][       Thread-250687][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 09:55:25,244 [DEBUG][       Thread-250687][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 09:55:25,244 [DEBUG][       Thread-250687][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 09:55:25,244 [DEBUG][       Thread-250687][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:55:25,244 [DEBUG][       Thread-250687][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:55:25,244 [DEBUG][       Thread-250687][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:55:25,244 [DEBUG][       Thread-250687][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:55:25,244 [DEBUG][       Thread-250687][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 09:55:25,244 [DEBUG][       Thread-250687][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 09:55:25,244 [DEBUG][       Thread-250687][   transport.py][1871] : client lang: <none>
2025-06-13 09:55:25,244 [DEBUG][       Thread-250687][   transport.py][1871] : server lang: <none>
2025-06-13 09:55:25,244 [DEBUG][       Thread-250687][   transport.py][1871] : kex follows: False
2025-06-13 09:55:25,244 [DEBUG][       Thread-250687][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 09:55:25,244 [DEBUG][       Thread-250687][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 09:55:25,244 [DEBUG][       Thread-250687][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 09:55:25,244 [DEBUG][       Thread-250687][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 09:55:25,244 [DEBUG][       Thread-250687][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 09:55:25,244 [DEBUG][       Thread-250687][   transport.py][1871] : Compression: none
2025-06-13 09:55:25,244 [DEBUG][       Thread-250687][   transport.py][1871] : === End of kex handshake ===
2025-06-13 09:55:25,252 [DEBUG][       Thread-250687][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 09:55:25,252 [DEBUG][       Thread-250687][   transport.py][1871] : Switch to new keys ...
2025-06-13 09:55:25,253 [DEBUG][       Thread-250687][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 09:55:25,253 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 09:55:25,253 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 09:55:25,254 [DEBUG][       Thread-250687][   transport.py][1871] : userauth is OK
2025-06-13 09:55:25,267 [ INFO][       Thread-250687][   transport.py][1871] : Authentication (password) successful!
2025-06-13 09:55:25,267 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 09:55:25,819 [DEBUG][       Thread-250687][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 09:55:25,819 [DEBUG][       Thread-250687][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 09:55:25,861 [DEBUG][       Thread-250687][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 09:55:25,861 [DEBUG][       Thread-250687][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 09:55:25,863 [DEBUG][       Thread-250687][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 09:55:25,876 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 09:55:25,876 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 09:55:25,878 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 09:55:25,879 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 09:55:25,884 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 09:55:25,886 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 09:55:25,886 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 09:55:25,887 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 09:55:25,887 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.329802 -999.00   +8.20  21.65     55   -0.20 1 1 1 1 1   887    0 8.83 24.32 ----- 21.5 21.6 35.6 24.6 12.5 -28.3 11.2 -29.1 10.0 -28.0 11.2 -26.5
2025-06-13 09:55:25,887 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 09:55:25,887 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 09:55:25,887 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.329802
2025-06-13 09:55:25,888 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 09:55:25,888 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 09:55:25,888 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 09:55:25,888 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 09:55:25,888 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 09:55:25,888 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T09:55:17', tmtdew=9.5, humidity=51.27, cloud=0.0, wind=17.01, temperature=8.45, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T07:54:54.893', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 09:55:25,889 [DEBUG][       Thread-250687][   transport.py][1871] : EOF in transport thread
2025-06-13 09:55:25,973 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 09:55:25,982 [DEBUG][       Thread-250690][   transport.py][1871] : starting thread (client mode): 0x867fcb80
2025-06-13 09:55:25,982 [DEBUG][       Thread-250690][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 09:55:25,997 [DEBUG][       Thread-250690][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 09:55:25,998 [ INFO][       Thread-250690][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 09:55:26,005 [DEBUG][       Thread-250690][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 09:55:26,005 [DEBUG][       Thread-250690][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 09:55:26,005 [DEBUG][       Thread-250690][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 09:55:26,005 [DEBUG][       Thread-250690][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:55:26,005 [DEBUG][       Thread-250690][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:55:26,005 [DEBUG][       Thread-250690][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:55:26,005 [DEBUG][       Thread-250690][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:55:26,005 [DEBUG][       Thread-250690][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 09:55:26,005 [DEBUG][       Thread-250690][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 09:55:26,005 [DEBUG][       Thread-250690][   transport.py][1871] : client lang: <none>
2025-06-13 09:55:26,005 [DEBUG][       Thread-250690][   transport.py][1871] : server lang: <none>
2025-06-13 09:55:26,005 [DEBUG][       Thread-250690][   transport.py][1871] : kex follows: False
2025-06-13 09:55:26,006 [DEBUG][       Thread-250690][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 09:55:26,006 [DEBUG][       Thread-250690][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 09:55:26,006 [DEBUG][       Thread-250690][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 09:55:26,006 [DEBUG][       Thread-250690][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 09:55:26,006 [DEBUG][       Thread-250690][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 09:55:26,006 [DEBUG][       Thread-250690][   transport.py][1871] : Compression: none
2025-06-13 09:55:26,006 [DEBUG][       Thread-250690][   transport.py][1871] : === End of kex handshake ===
2025-06-13 09:55:26,072 [DEBUG][       Thread-250690][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 09:55:26,073 [DEBUG][       Thread-250690][   transport.py][1871] : Switch to new keys ...
2025-06-13 09:55:26,073 [DEBUG][       Thread-250690][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 09:55:26,073 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 09:55:26,074 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 09:55:26,135 [DEBUG][       Thread-250690][   transport.py][1871] : userauth is OK
2025-06-13 09:55:26,135 [DEBUG][       Thread-250690][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 09:55:26,135 [DEBUG][       Thread-250690][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 09:55:26,135 [DEBUG][       Thread-250690][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 09:55:26,135 [DEBUG][       Thread-250690][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 09:55:26,154 [ INFO][       Thread-250690][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 09:55:26,154 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 09:55:26,155 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 09:55:26,746 [DEBUG][Thread-250692 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:55:27,835 [DEBUG][       Thread-250690][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 09:55:27,835 [DEBUG][       Thread-250690][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 09:55:27,883 [DEBUG][       Thread-250690][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 09:55:27,884 [DEBUG][       Thread-250690][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 09:55:27,893 [DEBUG][       Thread-250690][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 09:55:27,907 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 09:55:27,907 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 09:55:27,924 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 09:55:27,936 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 09:55:27,937 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 09:55:27,937 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 09:55:27,945 [DEBUG][       Thread-250690][   transport.py][1871] : EOF in transport thread
2025-06-13 09:55:35,786 [DEBUG][Thread-250693 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:55:37,607 [DEBUG][Thread-250694 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:55:37,942 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 09:55:37,942 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 09:55:37,942 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 09:55:37,945 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 09:55:38,413 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 9, 55, 17), 9.5, 51.27, 0.0, 17.01, 8.45, 0, 0, 0, 2, 0, 0),)
2025-06-13 09:55:38,413 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 09:55:17
2025-06-13 09:55:38,495 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 09:55:38,499 [DEBUG][       Thread-250695][   transport.py][1871] : starting thread (client mode): 0x863bc940
2025-06-13 09:55:38,499 [DEBUG][       Thread-250695][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 09:55:38,519 [DEBUG][       Thread-250695][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 09:55:38,520 [ INFO][       Thread-250695][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 09:55:38,523 [DEBUG][       Thread-250695][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 09:55:38,523 [DEBUG][       Thread-250695][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 09:55:38,523 [DEBUG][       Thread-250695][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 09:55:38,523 [DEBUG][       Thread-250695][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:55:38,523 [DEBUG][       Thread-250695][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:55:38,523 [DEBUG][       Thread-250695][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:55:38,523 [DEBUG][       Thread-250695][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:55:38,523 [DEBUG][       Thread-250695][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 09:55:38,523 [DEBUG][       Thread-250695][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 09:55:38,523 [DEBUG][       Thread-250695][   transport.py][1871] : client lang: <none>
2025-06-13 09:55:38,523 [DEBUG][       Thread-250695][   transport.py][1871] : server lang: <none>
2025-06-13 09:55:38,523 [DEBUG][       Thread-250695][   transport.py][1871] : kex follows: False
2025-06-13 09:55:38,523 [DEBUG][       Thread-250695][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 09:55:38,523 [DEBUG][       Thread-250695][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 09:55:38,523 [DEBUG][       Thread-250695][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 09:55:38,523 [DEBUG][       Thread-250695][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 09:55:38,523 [DEBUG][       Thread-250695][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 09:55:38,523 [DEBUG][       Thread-250695][   transport.py][1871] : Compression: none
2025-06-13 09:55:38,523 [DEBUG][       Thread-250695][   transport.py][1871] : === End of kex handshake ===
2025-06-13 09:55:38,539 [DEBUG][       Thread-250695][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 09:55:38,540 [DEBUG][       Thread-250695][   transport.py][1871] : Switch to new keys ...
2025-06-13 09:55:38,540 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 09:55:38,540 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 09:55:38,541 [DEBUG][       Thread-250695][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 09:55:38,541 [DEBUG][       Thread-250695][   transport.py][1871] : userauth is OK
2025-06-13 09:55:38,554 [ INFO][       Thread-250695][   transport.py][1871] : Authentication (password) successful!
2025-06-13 09:55:38,554 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 09:55:38,657 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:55:38,658 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:55:40,321 [DEBUG][       Thread-250695][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 09:55:40,321 [DEBUG][       Thread-250695][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 09:55:40,365 [DEBUG][       Thread-250695][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 09:55:40,365 [DEBUG][       Thread-250695][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 09:55:40,368 [DEBUG][       Thread-250695][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 09:55:40,382 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 09:55:40,382 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 09:55:40,384 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 09:55:40,386 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 09:55:40,391 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 09:55:40,393 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 09:55:40,393 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 09:55:40,394 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 09:55:40,394 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.329802 -999.00   +8.20  21.65     55   -0.20 1 1 1 1 1   887    0 8.83 24.32 ----- 21.5 21.6 35.6 24.6 12.5 -28.3 11.2 -29.1 10.0 -28.0 11.2 -26.5
2025-06-13 09:55:40,394 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 09:55:40,394 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 09:55:40,394 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.329802
2025-06-13 09:55:40,395 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 09:55:40,395 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 09:55:40,395 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 09:55:40,395 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 09:55:40,395 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 09:55:40,395 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T09:55:17', tmtdew=9.5, humidity=51.27, cloud=0.0, wind=17.01, temperature=8.45, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T07:54:54.893', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 09:55:40,396 [DEBUG][       Thread-250695][   transport.py][1871] : EOF in transport thread
2025-06-13 09:55:40,479 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 09:55:40,492 [DEBUG][       Thread-250698][   transport.py][1871] : starting thread (client mode): 0x868c85b0
2025-06-13 09:55:40,492 [DEBUG][       Thread-250698][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 09:55:40,511 [DEBUG][       Thread-250698][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 09:55:40,511 [ INFO][       Thread-250698][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 09:55:40,519 [DEBUG][       Thread-250698][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 09:55:40,519 [DEBUG][       Thread-250698][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 09:55:40,519 [DEBUG][       Thread-250698][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 09:55:40,519 [DEBUG][       Thread-250698][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:55:40,519 [DEBUG][       Thread-250698][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:55:40,519 [DEBUG][       Thread-250698][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:55:40,519 [DEBUG][       Thread-250698][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:55:40,519 [DEBUG][       Thread-250698][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 09:55:40,519 [DEBUG][       Thread-250698][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 09:55:40,519 [DEBUG][       Thread-250698][   transport.py][1871] : client lang: <none>
2025-06-13 09:55:40,519 [DEBUG][       Thread-250698][   transport.py][1871] : server lang: <none>
2025-06-13 09:55:40,519 [DEBUG][       Thread-250698][   transport.py][1871] : kex follows: False
2025-06-13 09:55:40,519 [DEBUG][       Thread-250698][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 09:55:40,519 [DEBUG][       Thread-250698][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 09:55:40,519 [DEBUG][       Thread-250698][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 09:55:40,520 [DEBUG][       Thread-250698][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 09:55:40,520 [DEBUG][       Thread-250698][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 09:55:40,520 [DEBUG][       Thread-250698][   transport.py][1871] : Compression: none
2025-06-13 09:55:40,520 [DEBUG][       Thread-250698][   transport.py][1871] : === End of kex handshake ===
2025-06-13 09:55:40,575 [DEBUG][       Thread-250698][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 09:55:40,575 [DEBUG][       Thread-250698][   transport.py][1871] : Switch to new keys ...
2025-06-13 09:55:40,576 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 09:55:40,576 [DEBUG][       Thread-250698][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 09:55:40,577 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 09:55:40,635 [DEBUG][       Thread-250698][   transport.py][1871] : userauth is OK
2025-06-13 09:55:40,635 [DEBUG][       Thread-250698][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 09:55:40,635 [DEBUG][       Thread-250698][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 09:55:40,635 [DEBUG][       Thread-250698][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 09:55:40,635 [DEBUG][       Thread-250698][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 09:55:40,654 [ INFO][       Thread-250698][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 09:55:40,654 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 09:55:40,655 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 09:55:41,690 [DEBUG][       Thread-250698][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 09:55:41,690 [DEBUG][       Thread-250698][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 09:55:41,743 [DEBUG][       Thread-250698][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 09:55:41,743 [DEBUG][       Thread-250698][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 09:55:41,756 [DEBUG][       Thread-250698][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 09:55:41,769 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 09:55:41,769 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 09:55:41,782 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 09:55:41,791 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 09:55:41,791 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 09:55:41,792 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 09:55:41,800 [DEBUG][       Thread-250698][   transport.py][1871] : EOF in transport thread
2025-06-13 09:55:44,807 [DEBUG][Thread-250700 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:55:51,802 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 09:55:51,802 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 09:55:51,802 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 09:55:51,804 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 09:55:52,262 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 9, 55, 49), 9.5, 51.26, 0.0, 16.71, 8.43, 0, 0, 0, 2, 0, 0),)
2025-06-13 09:55:52,262 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 09:55:49
2025-06-13 09:55:52,343 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 09:55:52,349 [DEBUG][       Thread-250701][   transport.py][1871] : starting thread (client mode): 0x867b7340
2025-06-13 09:55:52,350 [DEBUG][       Thread-250701][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 09:55:52,370 [DEBUG][       Thread-250701][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 09:55:52,370 [ INFO][       Thread-250701][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 09:55:52,374 [DEBUG][       Thread-250701][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 09:55:52,374 [DEBUG][       Thread-250701][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 09:55:52,374 [DEBUG][       Thread-250701][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 09:55:52,374 [DEBUG][       Thread-250701][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:55:52,374 [DEBUG][       Thread-250701][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:55:52,374 [DEBUG][       Thread-250701][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:55:52,374 [DEBUG][       Thread-250701][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:55:52,374 [DEBUG][       Thread-250701][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 09:55:52,374 [DEBUG][       Thread-250701][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 09:55:52,374 [DEBUG][       Thread-250701][   transport.py][1871] : client lang: <none>
2025-06-13 09:55:52,374 [DEBUG][       Thread-250701][   transport.py][1871] : server lang: <none>
2025-06-13 09:55:52,374 [DEBUG][       Thread-250701][   transport.py][1871] : kex follows: False
2025-06-13 09:55:52,374 [DEBUG][       Thread-250701][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 09:55:52,375 [DEBUG][       Thread-250701][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 09:55:52,375 [DEBUG][       Thread-250701][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 09:55:52,375 [DEBUG][       Thread-250701][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 09:55:52,375 [DEBUG][       Thread-250701][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 09:55:52,375 [DEBUG][       Thread-250701][   transport.py][1871] : Compression: none
2025-06-13 09:55:52,375 [DEBUG][       Thread-250701][   transport.py][1871] : === End of kex handshake ===
2025-06-13 09:55:52,396 [DEBUG][       Thread-250701][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 09:55:52,397 [DEBUG][       Thread-250701][   transport.py][1871] : Switch to new keys ...
2025-06-13 09:55:52,397 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 09:55:52,397 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 09:55:52,398 [DEBUG][       Thread-250701][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 09:55:52,398 [DEBUG][       Thread-250701][   transport.py][1871] : userauth is OK
2025-06-13 09:55:52,423 [ INFO][       Thread-250701][   transport.py][1871] : Authentication (password) successful!
2025-06-13 09:55:52,423 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 09:55:53,177 [DEBUG][       Thread-250701][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 09:55:53,177 [DEBUG][       Thread-250701][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 09:55:53,221 [DEBUG][       Thread-250701][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 09:55:53,221 [DEBUG][       Thread-250701][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 09:55:53,223 [DEBUG][       Thread-250701][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 09:55:53,235 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 09:55:53,236 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 09:55:53,237 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 09:55:53,239 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 09:55:53,244 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 09:55:53,246 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 09:55:53,246 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 09:55:53,246 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 09:55:53,247 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.329802 -999.00   +8.20  21.65     55   -0.20 1 1 1 1 1   887    0 8.83 24.32 ----- 21.5 21.6 35.6 24.6 12.5 -28.3 11.2 -29.1 10.0 -28.0 11.2 -26.5
2025-06-13 09:55:53,247 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 09:55:53,247 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 09:55:53,247 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.329802
2025-06-13 09:55:53,247 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 09:55:53,248 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 09:55:53,248 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 09:55:53,248 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 09:55:53,248 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 09:55:53,248 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T09:55:49', tmtdew=9.5, humidity=51.26, cloud=0.0, wind=16.71, temperature=8.43, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T07:54:54.893', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 09:55:53,249 [DEBUG][       Thread-250701][   transport.py][1871] : EOF in transport thread
2025-06-13 09:55:53,333 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 09:55:53,347 [DEBUG][       Thread-250704][   transport.py][1871] : starting thread (client mode): 0x867ff310
2025-06-13 09:55:53,347 [DEBUG][       Thread-250704][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 09:55:53,369 [DEBUG][       Thread-250704][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 09:55:53,369 [ INFO][       Thread-250704][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 09:55:53,376 [DEBUG][       Thread-250704][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 09:55:53,376 [DEBUG][       Thread-250704][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 09:55:53,377 [DEBUG][       Thread-250704][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 09:55:53,377 [DEBUG][       Thread-250704][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:55:53,377 [DEBUG][       Thread-250704][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:55:53,377 [DEBUG][       Thread-250704][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:55:53,377 [DEBUG][       Thread-250704][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:55:53,377 [DEBUG][       Thread-250704][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 09:55:53,377 [DEBUG][       Thread-250704][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 09:55:53,377 [DEBUG][       Thread-250704][   transport.py][1871] : client lang: <none>
2025-06-13 09:55:53,377 [DEBUG][       Thread-250704][   transport.py][1871] : server lang: <none>
2025-06-13 09:55:53,377 [DEBUG][       Thread-250704][   transport.py][1871] : kex follows: False
2025-06-13 09:55:53,377 [DEBUG][       Thread-250704][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 09:55:53,377 [DEBUG][       Thread-250704][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 09:55:53,377 [DEBUG][       Thread-250704][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 09:55:53,377 [DEBUG][       Thread-250704][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 09:55:53,377 [DEBUG][       Thread-250704][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 09:55:53,377 [DEBUG][       Thread-250704][   transport.py][1871] : Compression: none
2025-06-13 09:55:53,377 [DEBUG][       Thread-250704][   transport.py][1871] : === End of kex handshake ===
2025-06-13 09:55:53,436 [DEBUG][       Thread-250704][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 09:55:53,436 [DEBUG][       Thread-250704][   transport.py][1871] : Switch to new keys ...
2025-06-13 09:55:53,436 [DEBUG][       Thread-250704][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 09:55:53,437 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 09:55:53,437 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 09:55:53,494 [DEBUG][       Thread-250704][   transport.py][1871] : userauth is OK
2025-06-13 09:55:53,494 [DEBUG][       Thread-250704][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 09:55:53,494 [DEBUG][       Thread-250704][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 09:55:53,494 [DEBUG][       Thread-250704][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 09:55:53,494 [DEBUG][       Thread-250704][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 09:55:53,513 [ INFO][       Thread-250704][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 09:55:53,514 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 09:55:53,514 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 09:55:53,824 [DEBUG][Thread-250706 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:55:54,529 [DEBUG][       Thread-250704][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 09:55:54,529 [DEBUG][       Thread-250704][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 09:55:54,579 [DEBUG][       Thread-250704][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 09:55:54,580 [DEBUG][       Thread-250704][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 09:55:54,588 [DEBUG][       Thread-250704][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 09:55:54,597 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 09:55:54,597 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 09:55:54,606 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 09:55:54,614 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 09:55:54,615 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 09:55:54,615 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 09:55:54,623 [DEBUG][       Thread-250704][   transport.py][1871] : EOF in transport thread
2025-06-13 09:56:02,854 [DEBUG][Thread-250707 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:56:04,625 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 09:56:04,625 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 09:56:04,626 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 09:56:04,628 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 09:56:04,689 [DEBUG][Thread-250708 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:56:05,093 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 9, 55, 49), 9.5, 51.26, 0.0, 16.71, 8.43, 0, 0, 0, 2, 0, 0),)
2025-06-13 09:56:05,093 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 09:55:49
2025-06-13 09:56:05,174 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 09:56:05,178 [DEBUG][       Thread-250709][   transport.py][1871] : starting thread (client mode): 0x84206800
2025-06-13 09:56:05,178 [DEBUG][       Thread-250709][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 09:56:05,198 [DEBUG][       Thread-250709][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 09:56:05,198 [ INFO][       Thread-250709][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 09:56:05,201 [DEBUG][       Thread-250709][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 09:56:05,201 [DEBUG][       Thread-250709][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 09:56:05,201 [DEBUG][       Thread-250709][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 09:56:05,201 [DEBUG][       Thread-250709][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:56:05,201 [DEBUG][       Thread-250709][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:56:05,201 [DEBUG][       Thread-250709][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:56:05,201 [DEBUG][       Thread-250709][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:56:05,201 [DEBUG][       Thread-250709][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 09:56:05,201 [DEBUG][       Thread-250709][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 09:56:05,201 [DEBUG][       Thread-250709][   transport.py][1871] : client lang: <none>
2025-06-13 09:56:05,201 [DEBUG][       Thread-250709][   transport.py][1871] : server lang: <none>
2025-06-13 09:56:05,201 [DEBUG][       Thread-250709][   transport.py][1871] : kex follows: False
2025-06-13 09:56:05,201 [DEBUG][       Thread-250709][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 09:56:05,202 [DEBUG][       Thread-250709][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 09:56:05,202 [DEBUG][       Thread-250709][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 09:56:05,202 [DEBUG][       Thread-250709][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 09:56:05,202 [DEBUG][       Thread-250709][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 09:56:05,202 [DEBUG][       Thread-250709][   transport.py][1871] : Compression: none
2025-06-13 09:56:05,202 [DEBUG][       Thread-250709][   transport.py][1871] : === End of kex handshake ===
2025-06-13 09:56:05,217 [DEBUG][       Thread-250709][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 09:56:05,217 [DEBUG][       Thread-250709][   transport.py][1871] : Switch to new keys ...
2025-06-13 09:56:05,218 [DEBUG][       Thread-250709][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 09:56:05,218 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 09:56:05,218 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 09:56:05,219 [DEBUG][       Thread-250709][   transport.py][1871] : userauth is OK
2025-06-13 09:56:05,244 [ INFO][       Thread-250709][   transport.py][1871] : Authentication (password) successful!
2025-06-13 09:56:05,244 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 09:56:05,861 [DEBUG][       Thread-250709][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 09:56:05,861 [DEBUG][       Thread-250709][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 09:56:05,905 [DEBUG][       Thread-250709][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 09:56:05,905 [DEBUG][       Thread-250709][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 09:56:05,908 [DEBUG][       Thread-250709][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 09:56:05,920 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 09:56:05,920 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 09:56:05,922 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 09:56:05,924 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 09:56:05,928 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 09:56:05,929 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 09:56:05,930 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 09:56:05,930 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 09:56:05,930 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.330149 -999.00   +8.20  15.88     55   -0.00 1 1 1 1 1   887    0 8.68 25.55 ----- 17.0 15.9 29.6 24.3 12.5 -27.8 11.2 -29.5 10.1 -27.5 11.2 -26.2
2025-06-13 09:56:05,930 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 09:56:05,930 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 09:56:05,930 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.330149
2025-06-13 09:56:05,931 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 09:56:05,931 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 09:56:05,931 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 09:56:05,931 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 09:56:05,932 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 09:56:05,932 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T09:55:49', tmtdew=9.5, humidity=51.26, cloud=0.0, wind=16.71, temperature=8.43, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T07:55:24.874', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 09:56:05,932 [DEBUG][       Thread-250709][   transport.py][1871] : EOF in transport thread
2025-06-13 09:56:06,015 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 09:56:06,025 [DEBUG][       Thread-250712][   transport.py][1871] : starting thread (client mode): 0x863cbf40
2025-06-13 09:56:06,025 [DEBUG][       Thread-250712][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 09:56:06,040 [DEBUG][       Thread-250712][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 09:56:06,040 [ INFO][       Thread-250712][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 09:56:06,048 [DEBUG][       Thread-250712][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 09:56:06,048 [DEBUG][       Thread-250712][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 09:56:06,048 [DEBUG][       Thread-250712][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 09:56:06,048 [DEBUG][       Thread-250712][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:56:06,048 [DEBUG][       Thread-250712][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:56:06,048 [DEBUG][       Thread-250712][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:56:06,048 [DEBUG][       Thread-250712][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:56:06,048 [DEBUG][       Thread-250712][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 09:56:06,048 [DEBUG][       Thread-250712][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 09:56:06,048 [DEBUG][       Thread-250712][   transport.py][1871] : client lang: <none>
2025-06-13 09:56:06,048 [DEBUG][       Thread-250712][   transport.py][1871] : server lang: <none>
2025-06-13 09:56:06,048 [DEBUG][       Thread-250712][   transport.py][1871] : kex follows: False
2025-06-13 09:56:06,048 [DEBUG][       Thread-250712][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 09:56:06,048 [DEBUG][       Thread-250712][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 09:56:06,048 [DEBUG][       Thread-250712][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 09:56:06,049 [DEBUG][       Thread-250712][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 09:56:06,049 [DEBUG][       Thread-250712][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 09:56:06,049 [DEBUG][       Thread-250712][   transport.py][1871] : Compression: none
2025-06-13 09:56:06,049 [DEBUG][       Thread-250712][   transport.py][1871] : === End of kex handshake ===
2025-06-13 09:56:06,108 [DEBUG][       Thread-250712][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 09:56:06,108 [DEBUG][       Thread-250712][   transport.py][1871] : Switch to new keys ...
2025-06-13 09:56:06,109 [DEBUG][       Thread-250712][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 09:56:06,109 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 09:56:06,110 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 09:56:06,167 [DEBUG][       Thread-250712][   transport.py][1871] : userauth is OK
2025-06-13 09:56:06,167 [DEBUG][       Thread-250712][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 09:56:06,167 [DEBUG][       Thread-250712][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 09:56:06,167 [DEBUG][       Thread-250712][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 09:56:06,167 [DEBUG][       Thread-250712][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 09:56:06,185 [ INFO][       Thread-250712][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 09:56:06,186 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 09:56:06,186 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 09:56:07,217 [DEBUG][       Thread-250712][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 09:56:07,217 [DEBUG][       Thread-250712][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 09:56:07,271 [DEBUG][       Thread-250712][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 09:56:07,272 [DEBUG][       Thread-250712][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 09:56:07,281 [DEBUG][       Thread-250712][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 09:56:07,290 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 09:56:07,290 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 09:56:07,298 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 09:56:07,307 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 09:56:07,307 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 09:56:07,308 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 09:56:07,315 [DEBUG][       Thread-250712][   transport.py][1871] : EOF in transport thread
2025-06-13 09:56:11,874 [DEBUG][Thread-250714 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:56:17,318 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 09:56:17,318 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 09:56:17,318 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 09:56:17,320 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 09:56:17,772 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 9, 55, 49), 9.5, 51.26, 0.0, 16.71, 8.43, 0, 0, 0, 2, 0, 0),)
2025-06-13 09:56:17,772 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 09:55:49
2025-06-13 09:56:17,853 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 09:56:17,858 [DEBUG][       Thread-250715][   transport.py][1871] : starting thread (client mode): 0x84207460
2025-06-13 09:56:17,859 [DEBUG][       Thread-250715][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 09:56:17,876 [DEBUG][       Thread-250715][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 09:56:17,876 [ INFO][       Thread-250715][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 09:56:17,877 [DEBUG][       Thread-250715][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 09:56:17,877 [DEBUG][       Thread-250715][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 09:56:17,877 [DEBUG][       Thread-250715][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 09:56:17,877 [DEBUG][       Thread-250715][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:56:17,877 [DEBUG][       Thread-250715][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:56:17,877 [DEBUG][       Thread-250715][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:56:17,877 [DEBUG][       Thread-250715][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:56:17,877 [DEBUG][       Thread-250715][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 09:56:17,877 [DEBUG][       Thread-250715][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 09:56:17,877 [DEBUG][       Thread-250715][   transport.py][1871] : client lang: <none>
2025-06-13 09:56:17,877 [DEBUG][       Thread-250715][   transport.py][1871] : server lang: <none>
2025-06-13 09:56:17,877 [DEBUG][       Thread-250715][   transport.py][1871] : kex follows: False
2025-06-13 09:56:17,877 [DEBUG][       Thread-250715][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 09:56:17,877 [DEBUG][       Thread-250715][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 09:56:17,877 [DEBUG][       Thread-250715][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 09:56:17,877 [DEBUG][       Thread-250715][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 09:56:17,877 [DEBUG][       Thread-250715][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 09:56:17,877 [DEBUG][       Thread-250715][   transport.py][1871] : Compression: none
2025-06-13 09:56:17,877 [DEBUG][       Thread-250715][   transport.py][1871] : === End of kex handshake ===
2025-06-13 09:56:17,886 [DEBUG][       Thread-250715][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 09:56:17,886 [DEBUG][       Thread-250715][   transport.py][1871] : Switch to new keys ...
2025-06-13 09:56:17,886 [DEBUG][       Thread-250715][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 09:56:17,887 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 09:56:17,887 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 09:56:17,888 [DEBUG][       Thread-250715][   transport.py][1871] : userauth is OK
2025-06-13 09:56:17,912 [ INFO][       Thread-250715][   transport.py][1871] : Authentication (password) successful!
2025-06-13 09:56:17,913 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 09:56:18,627 [DEBUG][       Thread-250715][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 09:56:18,628 [DEBUG][       Thread-250715][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 09:56:18,673 [DEBUG][       Thread-250715][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 09:56:18,673 [DEBUG][       Thread-250715][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 09:56:18,676 [DEBUG][       Thread-250715][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 09:56:18,688 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 09:56:18,689 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 09:56:18,691 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 09:56:18,692 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 09:56:18,697 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 09:56:18,699 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 09:56:18,699 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 09:56:18,700 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 09:56:18,700 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.330149 -999.00   +8.20  15.88     55   -0.00 1 1 1 1 1   887    0 8.68 25.55 ----- 17.0 15.9 29.6 24.3 12.5 -27.8 11.2 -29.5 10.1 -27.5 11.2 -26.2
2025-06-13 09:56:18,700 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 09:56:18,700 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 09:56:18,700 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.330149
2025-06-13 09:56:18,701 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 09:56:18,701 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 09:56:18,701 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 09:56:18,701 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 09:56:18,701 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 09:56:18,701 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T09:55:49', tmtdew=9.5, humidity=51.26, cloud=0.0, wind=16.71, temperature=8.43, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T07:55:24.874', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 09:56:18,702 [DEBUG][       Thread-250715][   transport.py][1871] : EOF in transport thread
2025-06-13 09:56:18,785 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 09:56:18,796 [DEBUG][       Thread-250718][   transport.py][1871] : starting thread (client mode): 0x863a46a0
2025-06-13 09:56:18,796 [DEBUG][       Thread-250718][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 09:56:18,811 [DEBUG][       Thread-250718][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 09:56:18,811 [ INFO][       Thread-250718][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 09:56:18,818 [DEBUG][       Thread-250718][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 09:56:18,818 [DEBUG][       Thread-250718][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 09:56:18,818 [DEBUG][       Thread-250718][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 09:56:18,818 [DEBUG][       Thread-250718][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:56:18,818 [DEBUG][       Thread-250718][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:56:18,818 [DEBUG][       Thread-250718][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:56:18,818 [DEBUG][       Thread-250718][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:56:18,818 [DEBUG][       Thread-250718][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 09:56:18,818 [DEBUG][       Thread-250718][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 09:56:18,819 [DEBUG][       Thread-250718][   transport.py][1871] : client lang: <none>
2025-06-13 09:56:18,819 [DEBUG][       Thread-250718][   transport.py][1871] : server lang: <none>
2025-06-13 09:56:18,819 [DEBUG][       Thread-250718][   transport.py][1871] : kex follows: False
2025-06-13 09:56:18,819 [DEBUG][       Thread-250718][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 09:56:18,819 [DEBUG][       Thread-250718][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 09:56:18,819 [DEBUG][       Thread-250718][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 09:56:18,819 [DEBUG][       Thread-250718][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 09:56:18,819 [DEBUG][       Thread-250718][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 09:56:18,819 [DEBUG][       Thread-250718][   transport.py][1871] : Compression: none
2025-06-13 09:56:18,819 [DEBUG][       Thread-250718][   transport.py][1871] : === End of kex handshake ===
2025-06-13 09:56:18,884 [DEBUG][       Thread-250718][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 09:56:18,884 [DEBUG][       Thread-250718][   transport.py][1871] : Switch to new keys ...
2025-06-13 09:56:18,884 [DEBUG][       Thread-250718][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 09:56:18,885 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 09:56:18,885 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 09:56:18,947 [DEBUG][       Thread-250718][   transport.py][1871] : userauth is OK
2025-06-13 09:56:18,947 [DEBUG][       Thread-250718][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 09:56:18,947 [DEBUG][       Thread-250718][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 09:56:18,947 [DEBUG][       Thread-250718][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 09:56:18,947 [DEBUG][       Thread-250718][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 09:56:18,967 [ INFO][       Thread-250718][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 09:56:18,968 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 09:56:18,968 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 09:56:19,974 [DEBUG][       Thread-250718][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 09:56:19,974 [DEBUG][       Thread-250718][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 09:56:20,027 [DEBUG][       Thread-250718][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 09:56:20,027 [DEBUG][       Thread-250718][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 09:56:20,041 [DEBUG][       Thread-250718][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 09:56:20,049 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 09:56:20,049 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 09:56:20,056 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 09:56:20,072 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 09:56:20,072 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 09:56:20,072 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 09:56:20,080 [DEBUG][       Thread-250718][   transport.py][1871] : EOF in transport thread
2025-06-13 09:56:20,893 [DEBUG][Thread-250720 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:56:22,000 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:56:22,000 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:56:29,909 [DEBUG][Thread-250721 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:56:30,074 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 09:56:30,075 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 09:56:30,075 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 09:56:30,077 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 09:56:30,532 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 9, 56, 20), 9.49, 51.41, 0.0, 14.88, 8.43, 0, 0, 0, 2, 0, 0),)
2025-06-13 09:56:30,532 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 09:56:20
2025-06-13 09:56:30,614 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 09:56:30,618 [DEBUG][       Thread-250722][   transport.py][1871] : starting thread (client mode): 0x84204bb0
2025-06-13 09:56:30,618 [DEBUG][       Thread-250722][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 09:56:30,628 [DEBUG][       Thread-250722][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 09:56:30,628 [ INFO][       Thread-250722][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 09:56:30,631 [DEBUG][       Thread-250722][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 09:56:30,631 [DEBUG][       Thread-250722][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 09:56:30,631 [DEBUG][       Thread-250722][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 09:56:30,631 [DEBUG][       Thread-250722][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:56:30,631 [DEBUG][       Thread-250722][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:56:30,631 [DEBUG][       Thread-250722][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:56:30,631 [DEBUG][       Thread-250722][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:56:30,631 [DEBUG][       Thread-250722][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 09:56:30,631 [DEBUG][       Thread-250722][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 09:56:30,631 [DEBUG][       Thread-250722][   transport.py][1871] : client lang: <none>
2025-06-13 09:56:30,631 [DEBUG][       Thread-250722][   transport.py][1871] : server lang: <none>
2025-06-13 09:56:30,631 [DEBUG][       Thread-250722][   transport.py][1871] : kex follows: False
2025-06-13 09:56:30,631 [DEBUG][       Thread-250722][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 09:56:30,631 [DEBUG][       Thread-250722][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 09:56:30,631 [DEBUG][       Thread-250722][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 09:56:30,631 [DEBUG][       Thread-250722][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 09:56:30,631 [DEBUG][       Thread-250722][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 09:56:30,631 [DEBUG][       Thread-250722][   transport.py][1871] : Compression: none
2025-06-13 09:56:30,631 [DEBUG][       Thread-250722][   transport.py][1871] : === End of kex handshake ===
2025-06-13 09:56:30,645 [DEBUG][       Thread-250722][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 09:56:30,645 [DEBUG][       Thread-250722][   transport.py][1871] : Switch to new keys ...
2025-06-13 09:56:30,646 [DEBUG][       Thread-250722][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 09:56:30,646 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 09:56:30,646 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 09:56:30,647 [DEBUG][       Thread-250722][   transport.py][1871] : userauth is OK
2025-06-13 09:56:30,671 [ INFO][       Thread-250722][   transport.py][1871] : Authentication (password) successful!
2025-06-13 09:56:30,671 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 09:56:31,303 [DEBUG][       Thread-250722][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 09:56:31,303 [DEBUG][       Thread-250722][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 09:56:31,345 [DEBUG][       Thread-250722][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 09:56:31,345 [DEBUG][       Thread-250722][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 09:56:31,348 [DEBUG][       Thread-250722][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 09:56:31,360 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 09:56:31,361 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 09:56:31,362 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 09:56:31,364 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 09:56:31,369 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 09:56:31,371 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 09:56:31,371 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 09:56:31,372 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 09:56:31,372 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.330843 -999.00   +8.20  18.79     56   +0.00 1 1 1 1 1   887    0 8.75 23.73 ----- 17.8 18.8 55.0 20.6 12.6 -28.2 11.2 -29.0 10.1 -27.9 11.3 -26.6
2025-06-13 09:56:31,372 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 09:56:31,372 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 09:56:31,373 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.330843
2025-06-13 09:56:31,373 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 09:56:31,373 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 09:56:31,374 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 09:56:31,374 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 09:56:31,374 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 09:56:31,374 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T09:56:20', tmtdew=9.49, humidity=51.41, cloud=0.0, wind=14.88, temperature=8.43, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T07:56:24.835', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 09:56:31,375 [DEBUG][       Thread-250722][   transport.py][1871] : EOF in transport thread
2025-06-13 09:56:31,450 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 09:56:31,471 [DEBUG][       Thread-250725][   transport.py][1871] : starting thread (client mode): 0x8636b580
2025-06-13 09:56:31,471 [DEBUG][       Thread-250725][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 09:56:31,485 [DEBUG][       Thread-250725][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 09:56:31,485 [ INFO][       Thread-250725][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 09:56:31,497 [DEBUG][       Thread-250725][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 09:56:31,497 [DEBUG][       Thread-250725][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 09:56:31,497 [DEBUG][       Thread-250725][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 09:56:31,497 [DEBUG][       Thread-250725][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:56:31,497 [DEBUG][       Thread-250725][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:56:31,497 [DEBUG][       Thread-250725][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:56:31,498 [DEBUG][       Thread-250725][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:56:31,498 [DEBUG][       Thread-250725][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 09:56:31,498 [DEBUG][       Thread-250725][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 09:56:31,498 [DEBUG][       Thread-250725][   transport.py][1871] : client lang: <none>
2025-06-13 09:56:31,498 [DEBUG][       Thread-250725][   transport.py][1871] : server lang: <none>
2025-06-13 09:56:31,498 [DEBUG][       Thread-250725][   transport.py][1871] : kex follows: False
2025-06-13 09:56:31,498 [DEBUG][       Thread-250725][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 09:56:31,498 [DEBUG][       Thread-250725][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 09:56:31,498 [DEBUG][       Thread-250725][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 09:56:31,498 [DEBUG][       Thread-250725][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 09:56:31,498 [DEBUG][       Thread-250725][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 09:56:31,498 [DEBUG][       Thread-250725][   transport.py][1871] : Compression: none
2025-06-13 09:56:31,498 [DEBUG][       Thread-250725][   transport.py][1871] : === End of kex handshake ===
2025-06-13 09:56:31,555 [DEBUG][       Thread-250725][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 09:56:31,556 [DEBUG][       Thread-250725][   transport.py][1871] : Switch to new keys ...
2025-06-13 09:56:31,556 [DEBUG][       Thread-250725][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 09:56:31,556 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 09:56:31,557 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 09:56:31,615 [DEBUG][       Thread-250725][   transport.py][1871] : userauth is OK
2025-06-13 09:56:31,615 [DEBUG][       Thread-250725][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 09:56:31,615 [DEBUG][       Thread-250725][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 09:56:31,615 [DEBUG][       Thread-250725][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 09:56:31,615 [DEBUG][       Thread-250725][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 09:56:31,634 [ INFO][       Thread-250725][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 09:56:31,634 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 09:56:31,634 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 09:56:32,655 [DEBUG][       Thread-250725][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 09:56:32,655 [DEBUG][       Thread-250725][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 09:56:32,703 [DEBUG][       Thread-250725][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 09:56:32,704 [DEBUG][       Thread-250725][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 09:56:32,712 [DEBUG][       Thread-250725][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 09:56:32,721 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 09:56:32,721 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 09:56:32,730 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 09:56:32,739 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 09:56:32,739 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 09:56:32,740 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 09:56:32,752 [DEBUG][       Thread-250725][   transport.py][1871] : EOF in transport thread
2025-06-13 09:56:38,739 [DEBUG][Thread-250727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:56:38,927 [DEBUG][Thread-250728 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:56:39,804 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:56:39,805 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:56:42,750 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 09:56:42,750 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 09:56:42,750 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 09:56:42,753 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 09:56:43,225 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 9, 56, 20), 9.49, 51.41, 0.0, 14.88, 8.43, 0, 0, 0, 2, 0, 0),)
2025-06-13 09:56:43,225 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 09:56:20
2025-06-13 09:56:43,307 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 09:56:43,314 [DEBUG][       Thread-250729][   transport.py][1871] : starting thread (client mode): 0x867b6770
2025-06-13 09:56:43,314 [DEBUG][       Thread-250729][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 09:56:43,335 [DEBUG][       Thread-250729][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 09:56:43,335 [ INFO][       Thread-250729][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 09:56:43,339 [DEBUG][       Thread-250729][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 09:56:43,339 [DEBUG][       Thread-250729][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 09:56:43,339 [DEBUG][       Thread-250729][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 09:56:43,339 [DEBUG][       Thread-250729][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:56:43,339 [DEBUG][       Thread-250729][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:56:43,339 [DEBUG][       Thread-250729][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:56:43,339 [DEBUG][       Thread-250729][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:56:43,339 [DEBUG][       Thread-250729][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 09:56:43,339 [DEBUG][       Thread-250729][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 09:56:43,339 [DEBUG][       Thread-250729][   transport.py][1871] : client lang: <none>
2025-06-13 09:56:43,339 [DEBUG][       Thread-250729][   transport.py][1871] : server lang: <none>
2025-06-13 09:56:43,339 [DEBUG][       Thread-250729][   transport.py][1871] : kex follows: False
2025-06-13 09:56:43,339 [DEBUG][       Thread-250729][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 09:56:43,339 [DEBUG][       Thread-250729][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 09:56:43,339 [DEBUG][       Thread-250729][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 09:56:43,339 [DEBUG][       Thread-250729][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 09:56:43,340 [DEBUG][       Thread-250729][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 09:56:43,340 [DEBUG][       Thread-250729][   transport.py][1871] : Compression: none
2025-06-13 09:56:43,340 [DEBUG][       Thread-250729][   transport.py][1871] : === End of kex handshake ===
2025-06-13 09:56:43,356 [DEBUG][       Thread-250729][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 09:56:43,357 [DEBUG][       Thread-250729][   transport.py][1871] : Switch to new keys ...
2025-06-13 09:56:43,357 [DEBUG][       Thread-250729][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 09:56:43,357 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 09:56:43,357 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 09:56:43,358 [DEBUG][       Thread-250729][   transport.py][1871] : userauth is OK
2025-06-13 09:56:43,371 [ INFO][       Thread-250729][   transport.py][1871] : Authentication (password) successful!
2025-06-13 09:56:43,372 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 09:56:43,999 [DEBUG][       Thread-250729][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 09:56:43,999 [DEBUG][       Thread-250729][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 09:56:44,041 [DEBUG][       Thread-250729][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 09:56:44,041 [DEBUG][       Thread-250729][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 09:56:44,044 [DEBUG][       Thread-250729][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 09:56:44,057 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 09:56:44,057 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 09:56:44,059 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 09:56:44,061 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 09:56:44,066 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 09:56:44,068 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 09:56:44,068 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 09:56:44,069 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 09:56:44,069 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.330843 -999.00   +8.20  18.79     56   +0.00 1 1 1 1 1   887    0 8.75 23.73 ----- 17.8 18.8 55.0 20.6 12.6 -28.2 11.2 -29.0 10.1 -27.9 11.3 -26.6
2025-06-13 09:56:44,069 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 09:56:44,069 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 09:56:44,069 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.330843
2025-06-13 09:56:44,069 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 09:56:44,070 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 09:56:44,070 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 09:56:44,070 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 09:56:44,070 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 09:56:44,070 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T09:56:20', tmtdew=9.49, humidity=51.41, cloud=0.0, wind=14.88, temperature=8.43, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T07:56:24.835', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 09:56:44,070 [DEBUG][       Thread-250729][   transport.py][1871] : EOF in transport thread
2025-06-13 09:56:44,154 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 09:56:44,169 [DEBUG][       Thread-250732][   transport.py][1871] : starting thread (client mode): 0x867fceb0
2025-06-13 09:56:44,169 [DEBUG][       Thread-250732][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 09:56:44,186 [DEBUG][       Thread-250732][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 09:56:44,186 [ INFO][       Thread-250732][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 09:56:44,194 [DEBUG][       Thread-250732][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 09:56:44,194 [DEBUG][       Thread-250732][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 09:56:44,194 [DEBUG][       Thread-250732][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 09:56:44,194 [DEBUG][       Thread-250732][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:56:44,195 [DEBUG][       Thread-250732][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:56:44,195 [DEBUG][       Thread-250732][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:56:44,195 [DEBUG][       Thread-250732][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:56:44,195 [DEBUG][       Thread-250732][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 09:56:44,195 [DEBUG][       Thread-250732][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 09:56:44,195 [DEBUG][       Thread-250732][   transport.py][1871] : client lang: <none>
2025-06-13 09:56:44,195 [DEBUG][       Thread-250732][   transport.py][1871] : server lang: <none>
2025-06-13 09:56:44,195 [DEBUG][       Thread-250732][   transport.py][1871] : kex follows: False
2025-06-13 09:56:44,195 [DEBUG][       Thread-250732][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 09:56:44,195 [DEBUG][       Thread-250732][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 09:56:44,195 [DEBUG][       Thread-250732][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 09:56:44,195 [DEBUG][       Thread-250732][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 09:56:44,195 [DEBUG][       Thread-250732][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 09:56:44,195 [DEBUG][       Thread-250732][   transport.py][1871] : Compression: none
2025-06-13 09:56:44,195 [DEBUG][       Thread-250732][   transport.py][1871] : === End of kex handshake ===
2025-06-13 09:56:44,250 [DEBUG][       Thread-250732][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 09:56:44,251 [DEBUG][       Thread-250732][   transport.py][1871] : Switch to new keys ...
2025-06-13 09:56:44,251 [DEBUG][       Thread-250732][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 09:56:44,252 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 09:56:44,252 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 09:56:44,310 [DEBUG][       Thread-250732][   transport.py][1871] : userauth is OK
2025-06-13 09:56:44,311 [DEBUG][       Thread-250732][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 09:56:44,311 [DEBUG][       Thread-250732][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 09:56:44,311 [DEBUG][       Thread-250732][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 09:56:44,311 [DEBUG][       Thread-250732][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 09:56:44,330 [ INFO][       Thread-250732][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 09:56:44,330 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 09:56:44,330 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 09:56:45,321 [DEBUG][       Thread-250732][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 09:56:45,321 [DEBUG][       Thread-250732][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 09:56:45,375 [DEBUG][       Thread-250732][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 09:56:45,375 [DEBUG][       Thread-250732][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 09:56:45,394 [DEBUG][       Thread-250732][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 09:56:45,406 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 09:56:45,407 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 09:56:45,426 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 09:56:45,435 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 09:56:45,435 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 09:56:45,436 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 09:56:45,444 [DEBUG][       Thread-250732][   transport.py][1871] : EOF in transport thread
2025-06-13 09:56:47,968 [DEBUG][Thread-250734 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:56:55,446 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 09:56:55,446 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 09:56:55,447 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 09:56:55,449 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 09:56:55,913 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 9, 56, 52), 9.51, 51.35, 0.0, 17.87, 8.41, 0, 0, 0, 2, 0, 0),)
2025-06-13 09:56:55,913 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 09:56:52
2025-06-13 09:56:55,994 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 09:56:55,998 [DEBUG][       Thread-250735][   transport.py][1871] : starting thread (client mode): 0x863bdfc0
2025-06-13 09:56:55,998 [DEBUG][       Thread-250735][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 09:56:56,008 [DEBUG][       Thread-250735][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 09:56:56,008 [ INFO][       Thread-250735][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 09:56:56,009 [DEBUG][       Thread-250735][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 09:56:56,009 [DEBUG][       Thread-250735][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 09:56:56,009 [DEBUG][       Thread-250735][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 09:56:56,009 [DEBUG][       Thread-250735][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:56:56,009 [DEBUG][       Thread-250735][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:56:56,009 [DEBUG][       Thread-250735][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:56:56,009 [DEBUG][       Thread-250735][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:56:56,009 [DEBUG][       Thread-250735][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 09:56:56,009 [DEBUG][       Thread-250735][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 09:56:56,009 [DEBUG][       Thread-250735][   transport.py][1871] : client lang: <none>
2025-06-13 09:56:56,010 [DEBUG][       Thread-250735][   transport.py][1871] : server lang: <none>
2025-06-13 09:56:56,010 [DEBUG][       Thread-250735][   transport.py][1871] : kex follows: False
2025-06-13 09:56:56,010 [DEBUG][       Thread-250735][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 09:56:56,010 [DEBUG][       Thread-250735][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 09:56:56,010 [DEBUG][       Thread-250735][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 09:56:56,010 [DEBUG][       Thread-250735][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 09:56:56,010 [DEBUG][       Thread-250735][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 09:56:56,010 [DEBUG][       Thread-250735][   transport.py][1871] : Compression: none
2025-06-13 09:56:56,010 [DEBUG][       Thread-250735][   transport.py][1871] : === End of kex handshake ===
2025-06-13 09:56:56,016 [DEBUG][       Thread-250735][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 09:56:56,017 [DEBUG][       Thread-250735][   transport.py][1871] : Switch to new keys ...
2025-06-13 09:56:56,017 [DEBUG][       Thread-250735][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 09:56:56,017 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 09:56:56,017 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 09:56:56,017 [DEBUG][       Thread-250735][   transport.py][1871] : userauth is OK
2025-06-13 09:56:56,031 [ INFO][       Thread-250735][   transport.py][1871] : Authentication (password) successful!
2025-06-13 09:56:56,031 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 09:56:56,781 [DEBUG][       Thread-250735][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 09:56:56,781 [DEBUG][       Thread-250735][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 09:56:56,825 [DEBUG][       Thread-250735][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 09:56:56,825 [DEBUG][       Thread-250735][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 09:56:56,828 [DEBUG][       Thread-250735][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 09:56:56,846 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 09:56:56,846 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 09:56:56,848 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 09:56:56,849 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 09:56:56,854 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 09:56:56,856 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 09:56:56,857 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 09:56:56,857 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 09:56:56,857 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.330843 -999.00   +8.20  18.79     56   +0.00 1 1 1 1 1   887    0 8.75 23.73 ----- 17.8 18.8 55.0 20.6 12.6 -28.2 11.2 -29.0 10.1 -27.9 11.3 -26.6
2025-06-13 09:56:56,857 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 09:56:56,857 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 09:56:56,857 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.330843
2025-06-13 09:56:56,858 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 09:56:56,858 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 09:56:56,858 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 09:56:56,858 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 09:56:56,858 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 09:56:56,859 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T09:56:52', tmtdew=9.51, humidity=51.35, cloud=0.0, wind=17.87, temperature=8.41, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T07:56:24.835', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 09:56:56,860 [DEBUG][       Thread-250735][   transport.py][1871] : EOF in transport thread
2025-06-13 09:56:56,936 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 09:56:56,945 [DEBUG][       Thread-250738][   transport.py][1871] : starting thread (client mode): 0x868c80a0
2025-06-13 09:56:56,945 [DEBUG][       Thread-250738][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 09:56:56,961 [DEBUG][       Thread-250738][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 09:56:56,961 [ INFO][       Thread-250738][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 09:56:56,969 [DEBUG][       Thread-250738][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 09:56:56,969 [DEBUG][       Thread-250738][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 09:56:56,969 [DEBUG][       Thread-250738][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 09:56:56,969 [DEBUG][       Thread-250738][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:56:56,969 [DEBUG][       Thread-250738][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:56:56,969 [DEBUG][       Thread-250738][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:56:56,969 [DEBUG][       Thread-250738][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:56:56,969 [DEBUG][       Thread-250738][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 09:56:56,969 [DEBUG][       Thread-250738][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 09:56:56,969 [DEBUG][       Thread-250738][   transport.py][1871] : client lang: <none>
2025-06-13 09:56:56,969 [DEBUG][       Thread-250738][   transport.py][1871] : server lang: <none>
2025-06-13 09:56:56,969 [DEBUG][       Thread-250738][   transport.py][1871] : kex follows: False
2025-06-13 09:56:56,969 [DEBUG][       Thread-250738][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 09:56:56,969 [DEBUG][       Thread-250738][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 09:56:56,970 [DEBUG][       Thread-250738][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 09:56:56,970 [DEBUG][       Thread-250738][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 09:56:56,970 [DEBUG][       Thread-250738][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 09:56:56,970 [DEBUG][       Thread-250738][   transport.py][1871] : Compression: none
2025-06-13 09:56:56,970 [DEBUG][       Thread-250738][   transport.py][1871] : === End of kex handshake ===
2025-06-13 09:56:56,986 [DEBUG][Thread-250740 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:56:57,030 [DEBUG][       Thread-250738][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 09:56:57,030 [DEBUG][       Thread-250738][   transport.py][1871] : Switch to new keys ...
2025-06-13 09:56:57,031 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 09:56:57,031 [DEBUG][       Thread-250738][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 09:56:57,032 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 09:56:57,097 [DEBUG][       Thread-250738][   transport.py][1871] : userauth is OK
2025-06-13 09:56:57,097 [DEBUG][       Thread-250738][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 09:56:57,098 [DEBUG][       Thread-250738][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 09:56:57,098 [DEBUG][       Thread-250738][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 09:56:57,098 [DEBUG][       Thread-250738][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 09:56:57,116 [ INFO][       Thread-250738][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 09:56:57,117 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 09:56:57,117 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 09:56:58,151 [DEBUG][       Thread-250738][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 09:56:58,151 [DEBUG][       Thread-250738][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 09:56:58,200 [DEBUG][       Thread-250738][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 09:56:58,200 [DEBUG][       Thread-250738][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 09:56:58,209 [DEBUG][       Thread-250738][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 09:56:58,218 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 09:56:58,218 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 09:56:58,227 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 09:56:58,236 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 09:56:58,236 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 09:56:58,237 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 09:56:58,247 [DEBUG][       Thread-250738][   transport.py][1871] : EOF in transport thread
2025-06-13 09:57:04,734 [DEBUG][Thread-250741 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:57:06,015 [DEBUG][Thread-250742 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:57:08,247 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 09:57:08,247 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 09:57:08,247 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 09:57:08,250 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 09:57:08,722 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 9, 56, 52), 9.51, 51.35, 0.0, 17.87, 8.41, 0, 0, 0, 2, 0, 0),)
2025-06-13 09:57:08,722 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 09:56:52
2025-06-13 09:57:08,811 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 09:57:08,817 [DEBUG][       Thread-250743][   transport.py][1871] : starting thread (client mode): 0x84205030
2025-06-13 09:57:08,817 [DEBUG][       Thread-250743][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 09:57:08,837 [DEBUG][       Thread-250743][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 09:57:08,838 [ INFO][       Thread-250743][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 09:57:08,841 [DEBUG][       Thread-250743][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 09:57:08,841 [DEBUG][       Thread-250743][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 09:57:08,841 [DEBUG][       Thread-250743][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 09:57:08,841 [DEBUG][       Thread-250743][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:57:08,841 [DEBUG][       Thread-250743][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:57:08,841 [DEBUG][       Thread-250743][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:57:08,841 [DEBUG][       Thread-250743][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:57:08,841 [DEBUG][       Thread-250743][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 09:57:08,841 [DEBUG][       Thread-250743][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 09:57:08,841 [DEBUG][       Thread-250743][   transport.py][1871] : client lang: <none>
2025-06-13 09:57:08,841 [DEBUG][       Thread-250743][   transport.py][1871] : server lang: <none>
2025-06-13 09:57:08,841 [DEBUG][       Thread-250743][   transport.py][1871] : kex follows: False
2025-06-13 09:57:08,842 [DEBUG][       Thread-250743][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 09:57:08,842 [DEBUG][       Thread-250743][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 09:57:08,842 [DEBUG][       Thread-250743][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 09:57:08,842 [DEBUG][       Thread-250743][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 09:57:08,842 [DEBUG][       Thread-250743][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 09:57:08,842 [DEBUG][       Thread-250743][   transport.py][1871] : Compression: none
2025-06-13 09:57:08,842 [DEBUG][       Thread-250743][   transport.py][1871] : === End of kex handshake ===
2025-06-13 09:57:08,859 [DEBUG][       Thread-250743][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 09:57:08,859 [DEBUG][       Thread-250743][   transport.py][1871] : Switch to new keys ...
2025-06-13 09:57:08,860 [DEBUG][       Thread-250743][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 09:57:08,860 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 09:57:08,860 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 09:57:08,861 [DEBUG][       Thread-250743][   transport.py][1871] : userauth is OK
2025-06-13 09:57:08,874 [ INFO][       Thread-250743][   transport.py][1871] : Authentication (password) successful!
2025-06-13 09:57:08,874 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 09:57:09,457 [DEBUG][       Thread-250743][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 09:57:09,457 [DEBUG][       Thread-250743][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 09:57:09,501 [DEBUG][       Thread-250743][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 09:57:09,501 [DEBUG][       Thread-250743][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 09:57:09,503 [DEBUG][       Thread-250743][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 09:57:09,507 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 09:57:09,508 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 09:57:09,509 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 09:57:09,511 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 09:57:09,515 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 09:57:09,516 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 09:57:09,516 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 09:57:09,517 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 09:57:09,517 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.331190 -999.00   +8.20  20.04     55   -0.20 1 1 1 1 1   887    0 8.79 25.91 ----- 17.8 20.0 36.6 21.9 12.7 -28.8 11.3 -29.3 10.1 -27.9 11.3 -26.6
2025-06-13 09:57:09,517 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 09:57:09,517 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 09:57:09,517 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.331190
2025-06-13 09:57:09,518 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 09:57:09,518 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 09:57:09,518 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 09:57:09,518 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 09:57:09,518 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 09:57:09,518 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T09:56:52', tmtdew=9.51, humidity=51.35, cloud=0.0, wind=17.87, temperature=8.41, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T07:56:54.816', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 09:57:09,519 [DEBUG][       Thread-250743][   transport.py][1871] : EOF in transport thread
2025-06-13 09:57:09,602 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 09:57:09,613 [DEBUG][       Thread-250746][   transport.py][1871] : starting thread (client mode): 0x863ca1a0
2025-06-13 09:57:09,613 [DEBUG][       Thread-250746][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 09:57:09,632 [DEBUG][       Thread-250746][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 09:57:09,632 [ INFO][       Thread-250746][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 09:57:09,640 [DEBUG][       Thread-250746][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 09:57:09,640 [DEBUG][       Thread-250746][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 09:57:09,640 [DEBUG][       Thread-250746][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 09:57:09,640 [DEBUG][       Thread-250746][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:57:09,640 [DEBUG][       Thread-250746][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:57:09,640 [DEBUG][       Thread-250746][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:57:09,640 [DEBUG][       Thread-250746][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:57:09,640 [DEBUG][       Thread-250746][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 09:57:09,640 [DEBUG][       Thread-250746][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 09:57:09,640 [DEBUG][       Thread-250746][   transport.py][1871] : client lang: <none>
2025-06-13 09:57:09,640 [DEBUG][       Thread-250746][   transport.py][1871] : server lang: <none>
2025-06-13 09:57:09,641 [DEBUG][       Thread-250746][   transport.py][1871] : kex follows: False
2025-06-13 09:57:09,641 [DEBUG][       Thread-250746][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 09:57:09,641 [DEBUG][       Thread-250746][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 09:57:09,641 [DEBUG][       Thread-250746][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 09:57:09,641 [DEBUG][       Thread-250746][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 09:57:09,641 [DEBUG][       Thread-250746][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 09:57:09,641 [DEBUG][       Thread-250746][   transport.py][1871] : Compression: none
2025-06-13 09:57:09,641 [DEBUG][       Thread-250746][   transport.py][1871] : === End of kex handshake ===
2025-06-13 09:57:09,701 [DEBUG][       Thread-250746][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 09:57:09,702 [DEBUG][       Thread-250746][   transport.py][1871] : Switch to new keys ...
2025-06-13 09:57:09,702 [DEBUG][       Thread-250746][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 09:57:09,702 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 09:57:09,703 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 09:57:09,758 [DEBUG][       Thread-250746][   transport.py][1871] : userauth is OK
2025-06-13 09:57:09,759 [DEBUG][       Thread-250746][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 09:57:09,759 [DEBUG][       Thread-250746][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 09:57:09,759 [DEBUG][       Thread-250746][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 09:57:09,759 [DEBUG][       Thread-250746][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 09:57:09,778 [ INFO][       Thread-250746][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 09:57:09,778 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 09:57:09,778 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 09:57:10,803 [DEBUG][       Thread-250746][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 09:57:10,804 [DEBUG][       Thread-250746][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 09:57:10,852 [DEBUG][       Thread-250746][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 09:57:10,852 [DEBUG][       Thread-250746][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 09:57:10,861 [DEBUG][       Thread-250746][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 09:57:10,875 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 09:57:10,876 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 09:57:10,884 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 09:57:10,896 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 09:57:10,896 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 09:57:10,896 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 09:57:10,906 [DEBUG][       Thread-250746][   transport.py][1871] : EOF in transport thread
2025-06-13 09:57:15,032 [DEBUG][Thread-250748 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:57:20,907 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 09:57:20,907 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 09:57:20,907 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 09:57:20,910 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 09:57:21,372 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 9, 56, 52), 9.51, 51.35, 0.0, 17.87, 8.41, 0, 0, 0, 2, 0, 0),)
2025-06-13 09:57:21,372 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 09:56:52
2025-06-13 09:57:21,454 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 09:57:21,458 [DEBUG][       Thread-250749][   transport.py][1871] : starting thread (client mode): 0x842073a0
2025-06-13 09:57:21,458 [DEBUG][       Thread-250749][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 09:57:21,478 [DEBUG][       Thread-250749][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 09:57:21,479 [ INFO][       Thread-250749][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 09:57:21,482 [DEBUG][       Thread-250749][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 09:57:21,482 [DEBUG][       Thread-250749][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 09:57:21,482 [DEBUG][       Thread-250749][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 09:57:21,482 [DEBUG][       Thread-250749][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:57:21,482 [DEBUG][       Thread-250749][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:57:21,482 [DEBUG][       Thread-250749][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:57:21,482 [DEBUG][       Thread-250749][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:57:21,482 [DEBUG][       Thread-250749][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 09:57:21,482 [DEBUG][       Thread-250749][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 09:57:21,482 [DEBUG][       Thread-250749][   transport.py][1871] : client lang: <none>
2025-06-13 09:57:21,482 [DEBUG][       Thread-250749][   transport.py][1871] : server lang: <none>
2025-06-13 09:57:21,482 [DEBUG][       Thread-250749][   transport.py][1871] : kex follows: False
2025-06-13 09:57:21,482 [DEBUG][       Thread-250749][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 09:57:21,482 [DEBUG][       Thread-250749][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 09:57:21,483 [DEBUG][       Thread-250749][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 09:57:21,483 [DEBUG][       Thread-250749][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 09:57:21,483 [DEBUG][       Thread-250749][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 09:57:21,483 [DEBUG][       Thread-250749][   transport.py][1871] : Compression: none
2025-06-13 09:57:21,483 [DEBUG][       Thread-250749][   transport.py][1871] : === End of kex handshake ===
2025-06-13 09:57:21,495 [DEBUG][       Thread-250749][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 09:57:21,495 [DEBUG][       Thread-250749][   transport.py][1871] : Switch to new keys ...
2025-06-13 09:57:21,496 [DEBUG][       Thread-250749][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 09:57:21,496 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 09:57:21,496 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 09:57:21,497 [DEBUG][       Thread-250749][   transport.py][1871] : userauth is OK
2025-06-13 09:57:21,521 [ INFO][       Thread-250749][   transport.py][1871] : Authentication (password) successful!
2025-06-13 09:57:21,522 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 09:57:22,150 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:57:22,151 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:57:22,167 [DEBUG][       Thread-250749][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 09:57:22,167 [DEBUG][       Thread-250749][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 09:57:22,208 [DEBUG][       Thread-250749][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 09:57:22,209 [DEBUG][       Thread-250749][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 09:57:22,211 [DEBUG][       Thread-250749][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 09:57:22,217 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 09:57:22,218 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 09:57:22,219 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 09:57:22,219 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 09:57:22,222 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 09:57:22,223 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 09:57:22,223 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 09:57:22,223 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 09:57:22,223 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.331190 -999.00   +8.20  20.04     55   -0.20 1 1 1 1 1   887    0 8.79 25.91 ----- 17.8 20.0 36.6 21.9 12.7 -28.8 11.3 -29.3 10.1 -27.9 11.3 -26.6
2025-06-13 09:57:22,223 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 09:57:22,223 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 09:57:22,223 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.331190
2025-06-13 09:57:22,223 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 09:57:22,223 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 09:57:22,223 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 09:57:22,223 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 09:57:22,223 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 09:57:22,223 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T09:56:52', tmtdew=9.51, humidity=51.35, cloud=0.0, wind=17.87, temperature=8.41, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T07:56:54.816', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 09:57:22,224 [DEBUG][       Thread-250749][   transport.py][1871] : EOF in transport thread
2025-06-13 09:57:22,295 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 09:57:22,305 [DEBUG][       Thread-250752][   transport.py][1871] : starting thread (client mode): 0x863a7220
2025-06-13 09:57:22,305 [DEBUG][       Thread-250752][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 09:57:22,324 [DEBUG][       Thread-250752][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 09:57:22,324 [ INFO][       Thread-250752][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 09:57:22,331 [DEBUG][       Thread-250752][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 09:57:22,331 [DEBUG][       Thread-250752][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 09:57:22,331 [DEBUG][       Thread-250752][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 09:57:22,331 [DEBUG][       Thread-250752][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:57:22,331 [DEBUG][       Thread-250752][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:57:22,331 [DEBUG][       Thread-250752][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:57:22,331 [DEBUG][       Thread-250752][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:57:22,331 [DEBUG][       Thread-250752][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 09:57:22,331 [DEBUG][       Thread-250752][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 09:57:22,331 [DEBUG][       Thread-250752][   transport.py][1871] : client lang: <none>
2025-06-13 09:57:22,331 [DEBUG][       Thread-250752][   transport.py][1871] : server lang: <none>
2025-06-13 09:57:22,331 [DEBUG][       Thread-250752][   transport.py][1871] : kex follows: False
2025-06-13 09:57:22,331 [DEBUG][       Thread-250752][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 09:57:22,331 [DEBUG][       Thread-250752][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 09:57:22,331 [DEBUG][       Thread-250752][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 09:57:22,332 [DEBUG][       Thread-250752][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 09:57:22,332 [DEBUG][       Thread-250752][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 09:57:22,332 [DEBUG][       Thread-250752][   transport.py][1871] : Compression: none
2025-06-13 09:57:22,332 [DEBUG][       Thread-250752][   transport.py][1871] : === End of kex handshake ===
2025-06-13 09:57:22,391 [DEBUG][       Thread-250752][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 09:57:22,392 [DEBUG][       Thread-250752][   transport.py][1871] : Switch to new keys ...
2025-06-13 09:57:22,392 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 09:57:22,393 [DEBUG][       Thread-250752][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 09:57:22,393 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 09:57:22,446 [DEBUG][       Thread-250752][   transport.py][1871] : userauth is OK
2025-06-13 09:57:22,447 [DEBUG][       Thread-250752][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 09:57:22,447 [DEBUG][       Thread-250752][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 09:57:22,447 [DEBUG][       Thread-250752][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 09:57:22,447 [DEBUG][       Thread-250752][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 09:57:22,465 [ INFO][       Thread-250752][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 09:57:22,465 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 09:57:22,465 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 09:57:23,505 [DEBUG][       Thread-250752][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 09:57:23,505 [DEBUG][       Thread-250752][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 09:57:23,556 [DEBUG][       Thread-250752][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 09:57:23,556 [DEBUG][       Thread-250752][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 09:57:23,565 [DEBUG][       Thread-250752][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 09:57:23,574 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 09:57:23,575 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 09:57:23,583 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 09:57:23,591 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 09:57:23,592 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 09:57:23,592 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 09:57:23,600 [DEBUG][       Thread-250752][   transport.py][1871] : EOF in transport thread
2025-06-13 09:57:24,050 [DEBUG][Thread-250754 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:57:33,068 [DEBUG][Thread-250755 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:57:33,594 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 09:57:33,594 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 09:57:33,594 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 09:57:33,596 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 09:57:34,060 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 9, 57, 24), 9.44, 51.49, 0.0, 14.91, 8.39, 0, 0, 0, 2, 0, 0),)
2025-06-13 09:57:34,060 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 09:57:24
2025-06-13 09:57:34,142 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 09:57:34,147 [DEBUG][       Thread-250756][   transport.py][1871] : starting thread (client mode): 0x84205ba0
2025-06-13 09:57:34,147 [DEBUG][       Thread-250756][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 09:57:34,168 [DEBUG][       Thread-250756][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 09:57:34,168 [ INFO][       Thread-250756][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 09:57:34,171 [DEBUG][       Thread-250756][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 09:57:34,171 [DEBUG][       Thread-250756][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 09:57:34,171 [DEBUG][       Thread-250756][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 09:57:34,171 [DEBUG][       Thread-250756][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:57:34,171 [DEBUG][       Thread-250756][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:57:34,171 [DEBUG][       Thread-250756][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:57:34,171 [DEBUG][       Thread-250756][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:57:34,171 [DEBUG][       Thread-250756][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 09:57:34,172 [DEBUG][       Thread-250756][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 09:57:34,172 [DEBUG][       Thread-250756][   transport.py][1871] : client lang: <none>
2025-06-13 09:57:34,172 [DEBUG][       Thread-250756][   transport.py][1871] : server lang: <none>
2025-06-13 09:57:34,172 [DEBUG][       Thread-250756][   transport.py][1871] : kex follows: False
2025-06-13 09:57:34,172 [DEBUG][       Thread-250756][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 09:57:34,172 [DEBUG][       Thread-250756][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 09:57:34,172 [DEBUG][       Thread-250756][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 09:57:34,172 [DEBUG][       Thread-250756][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 09:57:34,172 [DEBUG][       Thread-250756][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 09:57:34,172 [DEBUG][       Thread-250756][   transport.py][1871] : Compression: none
2025-06-13 09:57:34,172 [DEBUG][       Thread-250756][   transport.py][1871] : === End of kex handshake ===
2025-06-13 09:57:34,189 [DEBUG][       Thread-250756][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 09:57:34,189 [DEBUG][       Thread-250756][   transport.py][1871] : Switch to new keys ...
2025-06-13 09:57:34,190 [DEBUG][       Thread-250756][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 09:57:34,190 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 09:57:34,190 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 09:57:34,191 [DEBUG][       Thread-250756][   transport.py][1871] : userauth is OK
2025-06-13 09:57:34,215 [ INFO][       Thread-250756][   transport.py][1871] : Authentication (password) successful!
2025-06-13 09:57:34,216 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 09:57:34,859 [DEBUG][       Thread-250756][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 09:57:34,859 [DEBUG][       Thread-250756][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 09:57:34,900 [DEBUG][       Thread-250756][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 09:57:34,900 [DEBUG][       Thread-250756][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 09:57:34,903 [DEBUG][       Thread-250756][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 09:57:34,916 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 09:57:34,916 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 09:57:34,917 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 09:57:34,918 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 09:57:34,921 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 09:57:34,923 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 09:57:34,923 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 09:57:34,923 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 09:57:34,923 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.331190 -999.00   +8.20  20.04     55   -0.20 1 1 1 1 1   887    0 8.79 25.91 ----- 17.8 20.0 36.6 21.9 12.7 -28.8 11.3 -29.3 10.1 -27.9 11.3 -26.6
2025-06-13 09:57:34,924 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 09:57:34,924 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 09:57:34,924 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.331190
2025-06-13 09:57:34,924 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 09:57:34,925 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 09:57:34,925 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 09:57:34,925 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 09:57:34,925 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 09:57:34,925 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T09:57:24', tmtdew=9.44, humidity=51.49, cloud=0.0, wind=14.91, temperature=8.39, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T07:56:54.816', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 09:57:34,925 [DEBUG][       Thread-250756][   transport.py][1871] : EOF in transport thread
2025-06-13 09:57:35,010 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 09:57:35,022 [DEBUG][       Thread-250759][   transport.py][1871] : starting thread (client mode): 0x863a5210
2025-06-13 09:57:35,022 [DEBUG][       Thread-250759][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 09:57:35,040 [DEBUG][       Thread-250759][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 09:57:35,040 [ INFO][       Thread-250759][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 09:57:35,048 [DEBUG][       Thread-250759][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 09:57:35,048 [DEBUG][       Thread-250759][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 09:57:35,048 [DEBUG][       Thread-250759][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 09:57:35,049 [DEBUG][       Thread-250759][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:57:35,049 [DEBUG][       Thread-250759][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:57:35,049 [DEBUG][       Thread-250759][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:57:35,049 [DEBUG][       Thread-250759][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:57:35,049 [DEBUG][       Thread-250759][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 09:57:35,049 [DEBUG][       Thread-250759][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 09:57:35,049 [DEBUG][       Thread-250759][   transport.py][1871] : client lang: <none>
2025-06-13 09:57:35,049 [DEBUG][       Thread-250759][   transport.py][1871] : server lang: <none>
2025-06-13 09:57:35,049 [DEBUG][       Thread-250759][   transport.py][1871] : kex follows: False
2025-06-13 09:57:35,049 [DEBUG][       Thread-250759][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 09:57:35,049 [DEBUG][       Thread-250759][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 09:57:35,049 [DEBUG][       Thread-250759][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 09:57:35,049 [DEBUG][       Thread-250759][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 09:57:35,049 [DEBUG][       Thread-250759][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 09:57:35,049 [DEBUG][       Thread-250759][   transport.py][1871] : Compression: none
2025-06-13 09:57:35,049 [DEBUG][       Thread-250759][   transport.py][1871] : === End of kex handshake ===
2025-06-13 09:57:35,106 [DEBUG][       Thread-250759][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 09:57:35,107 [DEBUG][       Thread-250759][   transport.py][1871] : Switch to new keys ...
2025-06-13 09:57:35,107 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 09:57:35,108 [DEBUG][       Thread-250759][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 09:57:35,109 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 09:57:35,162 [DEBUG][       Thread-250759][   transport.py][1871] : userauth is OK
2025-06-13 09:57:35,163 [DEBUG][       Thread-250759][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 09:57:35,163 [DEBUG][       Thread-250759][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 09:57:35,163 [DEBUG][       Thread-250759][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 09:57:35,163 [DEBUG][       Thread-250759][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 09:57:35,182 [ INFO][       Thread-250759][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 09:57:35,183 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 09:57:35,183 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 09:57:36,202 [DEBUG][       Thread-250759][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 09:57:36,202 [DEBUG][       Thread-250759][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 09:57:36,255 [DEBUG][       Thread-250759][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 09:57:36,256 [DEBUG][       Thread-250759][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 09:57:36,267 [DEBUG][       Thread-250759][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 09:57:36,275 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 09:57:36,275 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 09:57:36,284 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 09:57:36,293 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 09:57:36,293 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 09:57:36,294 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 09:57:36,304 [DEBUG][       Thread-250759][   transport.py][1871] : EOF in transport thread
2025-06-13 09:57:39,876 [DEBUG][Thread-250761 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:57:40,951 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:57:40,951 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:57:42,086 [DEBUG][Thread-250762 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:57:46,300 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 09:57:46,300 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 09:57:46,300 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 09:57:46,303 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 09:57:46,759 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 9, 57, 24), 9.44, 51.49, 0.0, 14.91, 8.39, 0, 0, 0, 2, 0, 0),)
2025-06-13 09:57:46,760 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 09:57:24
2025-06-13 09:57:46,842 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 09:57:46,848 [DEBUG][       Thread-250763][   transport.py][1871] : starting thread (client mode): 0x84204eb0
2025-06-13 09:57:46,848 [DEBUG][       Thread-250763][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 09:57:46,869 [DEBUG][       Thread-250763][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 09:57:46,869 [ INFO][       Thread-250763][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 09:57:46,873 [DEBUG][       Thread-250763][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 09:57:46,873 [DEBUG][       Thread-250763][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 09:57:46,873 [DEBUG][       Thread-250763][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 09:57:46,873 [DEBUG][       Thread-250763][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:57:46,873 [DEBUG][       Thread-250763][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:57:46,873 [DEBUG][       Thread-250763][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:57:46,873 [DEBUG][       Thread-250763][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:57:46,873 [DEBUG][       Thread-250763][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 09:57:46,873 [DEBUG][       Thread-250763][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 09:57:46,873 [DEBUG][       Thread-250763][   transport.py][1871] : client lang: <none>
2025-06-13 09:57:46,873 [DEBUG][       Thread-250763][   transport.py][1871] : server lang: <none>
2025-06-13 09:57:46,873 [DEBUG][       Thread-250763][   transport.py][1871] : kex follows: False
2025-06-13 09:57:46,873 [DEBUG][       Thread-250763][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 09:57:46,873 [DEBUG][       Thread-250763][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 09:57:46,873 [DEBUG][       Thread-250763][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 09:57:46,873 [DEBUG][       Thread-250763][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 09:57:46,873 [DEBUG][       Thread-250763][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 09:57:46,873 [DEBUG][       Thread-250763][   transport.py][1871] : Compression: none
2025-06-13 09:57:46,873 [DEBUG][       Thread-250763][   transport.py][1871] : === End of kex handshake ===
2025-06-13 09:57:46,889 [DEBUG][       Thread-250763][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 09:57:46,890 [DEBUG][       Thread-250763][   transport.py][1871] : Switch to new keys ...
2025-06-13 09:57:46,890 [DEBUG][       Thread-250763][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 09:57:46,890 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 09:57:46,891 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 09:57:46,891 [DEBUG][       Thread-250763][   transport.py][1871] : userauth is OK
2025-06-13 09:57:46,916 [ INFO][       Thread-250763][   transport.py][1871] : Authentication (password) successful!
2025-06-13 09:57:46,916 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 09:57:47,541 [DEBUG][       Thread-250763][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 09:57:47,541 [DEBUG][       Thread-250763][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 09:57:47,585 [DEBUG][       Thread-250763][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 09:57:47,585 [DEBUG][       Thread-250763][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 09:57:47,588 [DEBUG][       Thread-250763][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 09:57:47,598 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 09:57:47,599 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 09:57:47,600 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 09:57:47,602 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 09:57:47,607 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 09:57:47,609 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 09:57:47,610 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 09:57:47,610 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 09:57:47,610 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.331538 -999.00   +8.20  19.40     55   -0.10 1 1 1 1 1   887    0 8.86 26.53 ----- 20.3 19.4 47.4 26.0 12.6 -28.3 11.3 -29.7 10.1 -28.2 11.3 -26.6
2025-06-13 09:57:47,610 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 09:57:47,610 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 09:57:47,610 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.331538
2025-06-13 09:57:47,611 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 09:57:47,611 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 09:57:47,611 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 09:57:47,611 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 09:57:47,612 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 09:57:47,612 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T09:57:24', tmtdew=9.44, humidity=51.49, cloud=0.0, wind=14.91, temperature=8.39, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T07:57:24.883', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 09:57:47,612 [DEBUG][       Thread-250763][   transport.py][1871] : EOF in transport thread
2025-06-13 09:57:47,697 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 09:57:47,708 [DEBUG][       Thread-250766][   transport.py][1871] : starting thread (client mode): 0x863a5240
2025-06-13 09:57:47,708 [DEBUG][       Thread-250766][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 09:57:47,729 [DEBUG][       Thread-250766][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 09:57:47,729 [ INFO][       Thread-250766][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 09:57:47,737 [DEBUG][       Thread-250766][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 09:57:47,737 [DEBUG][       Thread-250766][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 09:57:47,737 [DEBUG][       Thread-250766][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 09:57:47,737 [DEBUG][       Thread-250766][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:57:47,737 [DEBUG][       Thread-250766][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:57:47,737 [DEBUG][       Thread-250766][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:57:47,737 [DEBUG][       Thread-250766][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:57:47,737 [DEBUG][       Thread-250766][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 09:57:47,737 [DEBUG][       Thread-250766][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 09:57:47,737 [DEBUG][       Thread-250766][   transport.py][1871] : client lang: <none>
2025-06-13 09:57:47,737 [DEBUG][       Thread-250766][   transport.py][1871] : server lang: <none>
2025-06-13 09:57:47,737 [DEBUG][       Thread-250766][   transport.py][1871] : kex follows: False
2025-06-13 09:57:47,737 [DEBUG][       Thread-250766][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 09:57:47,737 [DEBUG][       Thread-250766][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 09:57:47,738 [DEBUG][       Thread-250766][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 09:57:47,738 [DEBUG][       Thread-250766][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 09:57:47,738 [DEBUG][       Thread-250766][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 09:57:47,738 [DEBUG][       Thread-250766][   transport.py][1871] : Compression: none
2025-06-13 09:57:47,738 [DEBUG][       Thread-250766][   transport.py][1871] : === End of kex handshake ===
2025-06-13 09:57:47,795 [DEBUG][       Thread-250766][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 09:57:47,795 [DEBUG][       Thread-250766][   transport.py][1871] : Switch to new keys ...
2025-06-13 09:57:47,795 [DEBUG][       Thread-250766][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 09:57:47,796 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 09:57:47,797 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 09:57:47,851 [DEBUG][       Thread-250766][   transport.py][1871] : userauth is OK
2025-06-13 09:57:47,851 [DEBUG][       Thread-250766][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 09:57:47,851 [DEBUG][       Thread-250766][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 09:57:47,851 [DEBUG][       Thread-250766][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 09:57:47,851 [DEBUG][       Thread-250766][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 09:57:47,873 [ INFO][       Thread-250766][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 09:57:47,873 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 09:57:47,873 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 09:57:48,916 [DEBUG][       Thread-250766][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 09:57:48,916 [DEBUG][       Thread-250766][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 09:57:48,967 [DEBUG][       Thread-250766][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 09:57:48,967 [DEBUG][       Thread-250766][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 09:57:48,980 [DEBUG][       Thread-250766][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 09:57:48,988 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 09:57:48,989 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 09:57:48,997 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 09:57:49,009 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 09:57:49,010 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 09:57:49,010 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 09:57:49,018 [DEBUG][       Thread-250766][   transport.py][1871] : EOF in transport thread
2025-06-13 09:57:51,110 [DEBUG][Thread-250768 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:57:59,020 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 09:57:59,021 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 09:57:59,021 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 09:57:59,023 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 09:57:59,490 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 9, 57, 56), 9.44, 51.48, 0.0, 15.55, 8.36, 0, 0, 0, 2, 0, 0),)
2025-06-13 09:57:59,490 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 09:57:56
2025-06-13 09:57:59,569 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 09:57:59,573 [DEBUG][       Thread-250769][   transport.py][1871] : starting thread (client mode): 0x84207190
2025-06-13 09:57:59,573 [DEBUG][       Thread-250769][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 09:57:59,593 [DEBUG][       Thread-250769][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 09:57:59,593 [ INFO][       Thread-250769][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 09:57:59,596 [DEBUG][       Thread-250769][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 09:57:59,596 [DEBUG][       Thread-250769][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 09:57:59,596 [DEBUG][       Thread-250769][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 09:57:59,596 [DEBUG][       Thread-250769][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:57:59,596 [DEBUG][       Thread-250769][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:57:59,596 [DEBUG][       Thread-250769][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:57:59,596 [DEBUG][       Thread-250769][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:57:59,596 [DEBUG][       Thread-250769][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 09:57:59,596 [DEBUG][       Thread-250769][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 09:57:59,596 [DEBUG][       Thread-250769][   transport.py][1871] : client lang: <none>
2025-06-13 09:57:59,596 [DEBUG][       Thread-250769][   transport.py][1871] : server lang: <none>
2025-06-13 09:57:59,596 [DEBUG][       Thread-250769][   transport.py][1871] : kex follows: False
2025-06-13 09:57:59,596 [DEBUG][       Thread-250769][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 09:57:59,596 [DEBUG][       Thread-250769][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 09:57:59,596 [DEBUG][       Thread-250769][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 09:57:59,596 [DEBUG][       Thread-250769][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 09:57:59,596 [DEBUG][       Thread-250769][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 09:57:59,596 [DEBUG][       Thread-250769][   transport.py][1871] : Compression: none
2025-06-13 09:57:59,596 [DEBUG][       Thread-250769][   transport.py][1871] : === End of kex handshake ===
2025-06-13 09:57:59,610 [DEBUG][       Thread-250769][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 09:57:59,610 [DEBUG][       Thread-250769][   transport.py][1871] : Switch to new keys ...
2025-06-13 09:57:59,611 [DEBUG][       Thread-250769][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 09:57:59,611 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 09:57:59,611 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 09:57:59,611 [DEBUG][       Thread-250769][   transport.py][1871] : userauth is OK
2025-06-13 09:57:59,624 [ INFO][       Thread-250769][   transport.py][1871] : Authentication (password) successful!
2025-06-13 09:57:59,624 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 09:58:00,128 [DEBUG][Thread-250771 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:58:00,276 [DEBUG][       Thread-250769][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 09:58:00,276 [DEBUG][       Thread-250769][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 09:58:00,317 [DEBUG][       Thread-250769][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 09:58:00,317 [DEBUG][       Thread-250769][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 09:58:00,320 [DEBUG][       Thread-250769][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 09:58:00,331 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 09:58:00,332 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 09:58:00,333 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 09:58:00,335 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 09:58:00,339 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 09:58:00,341 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 09:58:00,341 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 09:58:00,342 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 09:58:00,342 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.331538 -999.00   +8.20  19.40     55   -0.10 1 1 1 1 1   887    0 8.86 26.53 ----- 20.3 19.4 47.4 26.0 12.6 -28.3 11.3 -29.7 10.1 -28.2 11.3 -26.6
2025-06-13 09:58:00,342 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 09:58:00,342 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 09:58:00,342 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.331538
2025-06-13 09:58:00,343 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 09:58:00,343 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 09:58:00,343 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 09:58:00,343 [DEBUG][       Thread-250769][   transport.py][1871] : EOF in transport thread
2025-06-13 09:58:00,343 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 09:58:00,344 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 09:58:00,344 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T09:57:56', tmtdew=9.44, humidity=51.48, cloud=0.0, wind=15.55, temperature=8.36, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T07:57:24.883', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 09:58:00,427 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 09:58:00,436 [DEBUG][       Thread-250773][   transport.py][1871] : starting thread (client mode): 0x867fceb0
2025-06-13 09:58:00,436 [DEBUG][       Thread-250773][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 09:58:00,453 [DEBUG][       Thread-250773][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 09:58:00,453 [ INFO][       Thread-250773][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 09:58:00,460 [DEBUG][       Thread-250773][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 09:58:00,460 [DEBUG][       Thread-250773][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 09:58:00,460 [DEBUG][       Thread-250773][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 09:58:00,460 [DEBUG][       Thread-250773][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:58:00,460 [DEBUG][       Thread-250773][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:58:00,460 [DEBUG][       Thread-250773][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:58:00,460 [DEBUG][       Thread-250773][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:58:00,460 [DEBUG][       Thread-250773][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 09:58:00,460 [DEBUG][       Thread-250773][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 09:58:00,460 [DEBUG][       Thread-250773][   transport.py][1871] : client lang: <none>
2025-06-13 09:58:00,460 [DEBUG][       Thread-250773][   transport.py][1871] : server lang: <none>
2025-06-13 09:58:00,460 [DEBUG][       Thread-250773][   transport.py][1871] : kex follows: False
2025-06-13 09:58:00,461 [DEBUG][       Thread-250773][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 09:58:00,461 [DEBUG][       Thread-250773][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 09:58:00,461 [DEBUG][       Thread-250773][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 09:58:00,461 [DEBUG][       Thread-250773][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 09:58:00,461 [DEBUG][       Thread-250773][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 09:58:00,461 [DEBUG][       Thread-250773][   transport.py][1871] : Compression: none
2025-06-13 09:58:00,461 [DEBUG][       Thread-250773][   transport.py][1871] : === End of kex handshake ===
2025-06-13 09:58:00,524 [DEBUG][       Thread-250773][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 09:58:00,525 [DEBUG][       Thread-250773][   transport.py][1871] : Switch to new keys ...
2025-06-13 09:58:00,525 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 09:58:00,526 [DEBUG][       Thread-250773][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 09:58:00,526 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 09:58:00,582 [DEBUG][       Thread-250773][   transport.py][1871] : userauth is OK
2025-06-13 09:58:00,583 [DEBUG][       Thread-250773][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 09:58:00,583 [DEBUG][       Thread-250773][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 09:58:00,583 [DEBUG][       Thread-250773][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 09:58:00,583 [DEBUG][       Thread-250773][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 09:58:00,605 [ INFO][       Thread-250773][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 09:58:00,606 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 09:58:00,606 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 09:58:01,660 [DEBUG][       Thread-250773][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 09:58:01,660 [DEBUG][       Thread-250773][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 09:58:01,712 [DEBUG][       Thread-250773][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 09:58:01,712 [DEBUG][       Thread-250773][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 09:58:01,725 [DEBUG][       Thread-250773][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 09:58:01,738 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 09:58:01,738 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 09:58:01,750 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 09:58:01,759 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 09:58:01,759 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 09:58:01,759 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 09:58:01,767 [DEBUG][       Thread-250773][   transport.py][1871] : EOF in transport thread
2025-06-13 09:58:04,783 [DEBUG][Thread-250775 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:58:09,149 [DEBUG][Thread-250776 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:58:11,769 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 09:58:11,770 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 09:58:11,770 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 09:58:11,772 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 09:58:12,231 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 9, 57, 56), 9.44, 51.48, 0.0, 15.55, 8.36, 0, 0, 0, 2, 0, 0),)
2025-06-13 09:58:12,231 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 09:57:56
2025-06-13 09:58:12,310 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 09:58:12,316 [DEBUG][       Thread-250777][   transport.py][1871] : starting thread (client mode): 0x863bcc40
2025-06-13 09:58:12,316 [DEBUG][       Thread-250777][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 09:58:12,333 [DEBUG][       Thread-250777][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 09:58:12,333 [ INFO][       Thread-250777][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 09:58:12,336 [DEBUG][       Thread-250777][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 09:58:12,336 [DEBUG][       Thread-250777][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 09:58:12,336 [DEBUG][       Thread-250777][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 09:58:12,336 [DEBUG][       Thread-250777][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:58:12,336 [DEBUG][       Thread-250777][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:58:12,336 [DEBUG][       Thread-250777][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:58:12,336 [DEBUG][       Thread-250777][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:58:12,336 [DEBUG][       Thread-250777][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 09:58:12,336 [DEBUG][       Thread-250777][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 09:58:12,337 [DEBUG][       Thread-250777][   transport.py][1871] : client lang: <none>
2025-06-13 09:58:12,337 [DEBUG][       Thread-250777][   transport.py][1871] : server lang: <none>
2025-06-13 09:58:12,337 [DEBUG][       Thread-250777][   transport.py][1871] : kex follows: False
2025-06-13 09:58:12,337 [DEBUG][       Thread-250777][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 09:58:12,337 [DEBUG][       Thread-250777][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 09:58:12,337 [DEBUG][       Thread-250777][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 09:58:12,337 [DEBUG][       Thread-250777][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 09:58:12,337 [DEBUG][       Thread-250777][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 09:58:12,337 [DEBUG][       Thread-250777][   transport.py][1871] : Compression: none
2025-06-13 09:58:12,337 [DEBUG][       Thread-250777][   transport.py][1871] : === End of kex handshake ===
2025-06-13 09:58:12,352 [DEBUG][       Thread-250777][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 09:58:12,353 [DEBUG][       Thread-250777][   transport.py][1871] : Switch to new keys ...
2025-06-13 09:58:12,353 [DEBUG][       Thread-250777][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 09:58:12,353 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 09:58:12,353 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 09:58:12,354 [DEBUG][       Thread-250777][   transport.py][1871] : userauth is OK
2025-06-13 09:58:12,367 [ INFO][       Thread-250777][   transport.py][1871] : Authentication (password) successful!
2025-06-13 09:58:12,368 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 09:58:12,957 [DEBUG][       Thread-250777][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 09:58:12,958 [DEBUG][       Thread-250777][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 09:58:13,001 [DEBUG][       Thread-250777][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 09:58:13,001 [DEBUG][       Thread-250777][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 09:58:13,003 [DEBUG][       Thread-250777][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 09:58:13,014 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 09:58:13,014 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 09:58:13,016 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 09:58:13,017 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 09:58:13,021 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 09:58:13,023 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 09:58:13,023 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 09:58:13,024 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 09:58:13,024 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.331885 -999.00   +8.30  19.12     55   +0.00 1 1 1 1 1   887    0 8.79 24.76 ----- 17.6 19.1 49.4 23.6 12.7 -27.9 11.3 -29.0 10.1 -27.5 11.3 -26.6
2025-06-13 09:58:13,024 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 09:58:13,024 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 09:58:13,024 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.331885
2025-06-13 09:58:13,024 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 09:58:13,025 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 09:58:13,025 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 09:58:13,025 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 09:58:13,025 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 09:58:13,025 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T09:57:56', tmtdew=9.44, humidity=51.48, cloud=0.0, wind=15.55, temperature=8.36, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T07:57:54.864', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 09:58:13,025 [DEBUG][       Thread-250777][   transport.py][1871] : EOF in transport thread
2025-06-13 09:58:13,108 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 09:58:13,120 [DEBUG][       Thread-250780][   transport.py][1871] : starting thread (client mode): 0x863a4c70
2025-06-13 09:58:13,120 [DEBUG][       Thread-250780][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 09:58:13,135 [DEBUG][       Thread-250780][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 09:58:13,135 [ INFO][       Thread-250780][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 09:58:13,142 [DEBUG][       Thread-250780][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 09:58:13,142 [DEBUG][       Thread-250780][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 09:58:13,142 [DEBUG][       Thread-250780][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 09:58:13,142 [DEBUG][       Thread-250780][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:58:13,142 [DEBUG][       Thread-250780][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:58:13,142 [DEBUG][       Thread-250780][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:58:13,142 [DEBUG][       Thread-250780][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:58:13,142 [DEBUG][       Thread-250780][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 09:58:13,143 [DEBUG][       Thread-250780][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 09:58:13,143 [DEBUG][       Thread-250780][   transport.py][1871] : client lang: <none>
2025-06-13 09:58:13,143 [DEBUG][       Thread-250780][   transport.py][1871] : server lang: <none>
2025-06-13 09:58:13,143 [DEBUG][       Thread-250780][   transport.py][1871] : kex follows: False
2025-06-13 09:58:13,143 [DEBUG][       Thread-250780][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 09:58:13,143 [DEBUG][       Thread-250780][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 09:58:13,143 [DEBUG][       Thread-250780][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 09:58:13,143 [DEBUG][       Thread-250780][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 09:58:13,143 [DEBUG][       Thread-250780][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 09:58:13,143 [DEBUG][       Thread-250780][   transport.py][1871] : Compression: none
2025-06-13 09:58:13,143 [DEBUG][       Thread-250780][   transport.py][1871] : === End of kex handshake ===
2025-06-13 09:58:13,202 [DEBUG][       Thread-250780][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 09:58:13,202 [DEBUG][       Thread-250780][   transport.py][1871] : Switch to new keys ...
2025-06-13 09:58:13,203 [DEBUG][       Thread-250780][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 09:58:13,203 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 09:58:13,203 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 09:58:13,261 [DEBUG][       Thread-250780][   transport.py][1871] : userauth is OK
2025-06-13 09:58:13,261 [DEBUG][       Thread-250780][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 09:58:13,261 [DEBUG][       Thread-250780][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 09:58:13,261 [DEBUG][       Thread-250780][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 09:58:13,261 [DEBUG][       Thread-250780][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 09:58:13,282 [ INFO][       Thread-250780][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 09:58:13,282 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 09:58:13,282 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 09:58:14,295 [DEBUG][       Thread-250780][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 09:58:14,296 [DEBUG][       Thread-250780][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 09:58:14,343 [DEBUG][       Thread-250780][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 09:58:14,344 [DEBUG][       Thread-250780][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 09:58:14,354 [DEBUG][       Thread-250780][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 09:58:14,367 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 09:58:14,367 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 09:58:14,375 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 09:58:14,389 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 09:58:14,390 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 09:58:14,390 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 09:58:14,398 [DEBUG][       Thread-250780][   transport.py][1871] : EOF in transport thread
2025-06-13 09:58:18,180 [DEBUG][Thread-250782 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:58:22,288 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:58:22,289 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:58:24,400 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 09:58:24,400 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 09:58:24,401 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 09:58:24,403 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 09:58:24,874 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 9, 57, 56), 9.44, 51.48, 0.0, 15.55, 8.36, 0, 0, 0, 2, 0, 0),)
2025-06-13 09:58:24,874 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 09:57:56
2025-06-13 09:58:24,953 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 09:58:24,957 [DEBUG][       Thread-250783][   transport.py][1871] : starting thread (client mode): 0x84206a10
2025-06-13 09:58:24,957 [DEBUG][       Thread-250783][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 09:58:24,977 [DEBUG][       Thread-250783][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 09:58:24,977 [ INFO][       Thread-250783][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 09:58:24,980 [DEBUG][       Thread-250783][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 09:58:24,980 [DEBUG][       Thread-250783][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 09:58:24,980 [DEBUG][       Thread-250783][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 09:58:24,981 [DEBUG][       Thread-250783][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:58:24,981 [DEBUG][       Thread-250783][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:58:24,981 [DEBUG][       Thread-250783][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:58:24,981 [DEBUG][       Thread-250783][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:58:24,981 [DEBUG][       Thread-250783][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 09:58:24,981 [DEBUG][       Thread-250783][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 09:58:24,981 [DEBUG][       Thread-250783][   transport.py][1871] : client lang: <none>
2025-06-13 09:58:24,981 [DEBUG][       Thread-250783][   transport.py][1871] : server lang: <none>
2025-06-13 09:58:24,981 [DEBUG][       Thread-250783][   transport.py][1871] : kex follows: False
2025-06-13 09:58:24,981 [DEBUG][       Thread-250783][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 09:58:24,981 [DEBUG][       Thread-250783][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 09:58:24,981 [DEBUG][       Thread-250783][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 09:58:24,981 [DEBUG][       Thread-250783][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 09:58:24,981 [DEBUG][       Thread-250783][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 09:58:24,981 [DEBUG][       Thread-250783][   transport.py][1871] : Compression: none
2025-06-13 09:58:24,981 [DEBUG][       Thread-250783][   transport.py][1871] : === End of kex handshake ===
2025-06-13 09:58:24,999 [DEBUG][       Thread-250783][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 09:58:25,000 [DEBUG][       Thread-250783][   transport.py][1871] : Switch to new keys ...
2025-06-13 09:58:25,000 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 09:58:25,000 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 09:58:25,001 [DEBUG][       Thread-250783][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 09:58:25,001 [DEBUG][       Thread-250783][   transport.py][1871] : userauth is OK
2025-06-13 09:58:25,026 [ INFO][       Thread-250783][   transport.py][1871] : Authentication (password) successful!
2025-06-13 09:58:25,026 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 09:58:25,670 [DEBUG][       Thread-250783][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 09:58:25,671 [DEBUG][       Thread-250783][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 09:58:25,713 [DEBUG][       Thread-250783][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 09:58:25,713 [DEBUG][       Thread-250783][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 09:58:25,716 [DEBUG][       Thread-250783][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 09:58:25,727 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 09:58:25,728 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 09:58:25,729 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 09:58:25,731 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 09:58:25,737 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 09:58:25,738 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 09:58:25,739 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 09:58:25,739 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 09:58:25,739 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.331885 -999.00   +8.30  19.12     55   +0.00 1 1 1 1 1   887    0 8.79 24.76 ----- 17.6 19.1 49.4 23.6 12.7 -27.9 11.3 -29.0 10.1 -27.5 11.3 -26.6
2025-06-13 09:58:25,739 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 09:58:25,739 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 09:58:25,739 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.331885
2025-06-13 09:58:25,740 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 09:58:25,740 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 09:58:25,740 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 09:58:25,740 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 09:58:25,741 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 09:58:25,741 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T09:57:56', tmtdew=9.44, humidity=51.48, cloud=0.0, wind=15.55, temperature=8.36, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T07:57:54.864', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 09:58:25,741 [DEBUG][       Thread-250783][   transport.py][1871] : EOF in transport thread
2025-06-13 09:58:25,824 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 09:58:25,834 [DEBUG][       Thread-250786][   transport.py][1871] : starting thread (client mode): 0x8636a860
2025-06-13 09:58:25,834 [DEBUG][       Thread-250786][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 09:58:25,850 [DEBUG][       Thread-250786][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 09:58:25,850 [ INFO][       Thread-250786][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 09:58:25,860 [DEBUG][       Thread-250786][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 09:58:25,860 [DEBUG][       Thread-250786][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 09:58:25,860 [DEBUG][       Thread-250786][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 09:58:25,860 [DEBUG][       Thread-250786][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:58:25,860 [DEBUG][       Thread-250786][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:58:25,860 [DEBUG][       Thread-250786][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:58:25,860 [DEBUG][       Thread-250786][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:58:25,860 [DEBUG][       Thread-250786][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 09:58:25,860 [DEBUG][       Thread-250786][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 09:58:25,861 [DEBUG][       Thread-250786][   transport.py][1871] : client lang: <none>
2025-06-13 09:58:25,861 [DEBUG][       Thread-250786][   transport.py][1871] : server lang: <none>
2025-06-13 09:58:25,861 [DEBUG][       Thread-250786][   transport.py][1871] : kex follows: False
2025-06-13 09:58:25,861 [DEBUG][       Thread-250786][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 09:58:25,861 [DEBUG][       Thread-250786][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 09:58:25,861 [DEBUG][       Thread-250786][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 09:58:25,861 [DEBUG][       Thread-250786][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 09:58:25,861 [DEBUG][       Thread-250786][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 09:58:25,861 [DEBUG][       Thread-250786][   transport.py][1871] : Compression: none
2025-06-13 09:58:25,861 [DEBUG][       Thread-250786][   transport.py][1871] : === End of kex handshake ===
2025-06-13 09:58:25,925 [DEBUG][       Thread-250786][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 09:58:25,926 [DEBUG][       Thread-250786][   transport.py][1871] : Switch to new keys ...
2025-06-13 09:58:25,926 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 09:58:25,927 [DEBUG][       Thread-250786][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 09:58:25,927 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 09:58:25,988 [DEBUG][       Thread-250786][   transport.py][1871] : userauth is OK
2025-06-13 09:58:25,988 [DEBUG][       Thread-250786][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 09:58:25,988 [DEBUG][       Thread-250786][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 09:58:25,988 [DEBUG][       Thread-250786][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 09:58:25,988 [DEBUG][       Thread-250786][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 09:58:26,007 [ INFO][       Thread-250786][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 09:58:26,008 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 09:58:26,008 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 09:58:27,050 [DEBUG][       Thread-250786][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 09:58:27,050 [DEBUG][       Thread-250786][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 09:58:27,105 [DEBUG][       Thread-250786][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 09:58:27,106 [DEBUG][       Thread-250786][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 09:58:27,116 [DEBUG][       Thread-250786][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 09:58:27,128 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 09:58:27,128 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 09:58:27,142 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 09:58:27,154 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 09:58:27,155 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 09:58:27,155 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 09:58:27,163 [DEBUG][       Thread-250786][   transport.py][1871] : EOF in transport thread
2025-06-13 09:58:27,197 [DEBUG][Thread-250788 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:58:36,216 [DEBUG][Thread-250789 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:58:37,165 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 09:58:37,166 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 09:58:37,166 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 09:58:37,168 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 09:58:37,625 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 9, 58, 27), 9.45, 51.42, 0.0, 16.36, 8.4, 0, 0, 0, 2, 0, 0),)
2025-06-13 09:58:37,625 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 09:58:27
2025-06-13 09:58:37,705 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 09:58:37,711 [DEBUG][       Thread-250790][   transport.py][1871] : starting thread (client mode): 0x8636ada0
2025-06-13 09:58:37,711 [DEBUG][       Thread-250790][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 09:58:37,732 [DEBUG][       Thread-250790][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 09:58:37,732 [ INFO][       Thread-250790][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 09:58:37,735 [DEBUG][       Thread-250790][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 09:58:37,735 [DEBUG][       Thread-250790][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 09:58:37,735 [DEBUG][       Thread-250790][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 09:58:37,735 [DEBUG][       Thread-250790][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:58:37,735 [DEBUG][       Thread-250790][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:58:37,735 [DEBUG][       Thread-250790][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:58:37,736 [DEBUG][       Thread-250790][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:58:37,736 [DEBUG][       Thread-250790][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 09:58:37,736 [DEBUG][       Thread-250790][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 09:58:37,736 [DEBUG][       Thread-250790][   transport.py][1871] : client lang: <none>
2025-06-13 09:58:37,736 [DEBUG][       Thread-250790][   transport.py][1871] : server lang: <none>
2025-06-13 09:58:37,736 [DEBUG][       Thread-250790][   transport.py][1871] : kex follows: False
2025-06-13 09:58:37,736 [DEBUG][       Thread-250790][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 09:58:37,736 [DEBUG][       Thread-250790][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 09:58:37,736 [DEBUG][       Thread-250790][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 09:58:37,736 [DEBUG][       Thread-250790][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 09:58:37,736 [DEBUG][       Thread-250790][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 09:58:37,736 [DEBUG][       Thread-250790][   transport.py][1871] : Compression: none
2025-06-13 09:58:37,736 [DEBUG][       Thread-250790][   transport.py][1871] : === End of kex handshake ===
2025-06-13 09:58:37,753 [DEBUG][       Thread-250790][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 09:58:37,753 [DEBUG][       Thread-250790][   transport.py][1871] : Switch to new keys ...
2025-06-13 09:58:37,754 [DEBUG][       Thread-250790][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 09:58:37,754 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 09:58:37,754 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 09:58:37,755 [DEBUG][       Thread-250790][   transport.py][1871] : userauth is OK
2025-06-13 09:58:37,768 [ INFO][       Thread-250790][   transport.py][1871] : Authentication (password) successful!
2025-06-13 09:58:37,769 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 09:58:38,438 [DEBUG][       Thread-250790][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 09:58:38,438 [DEBUG][       Thread-250790][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 09:58:38,481 [DEBUG][       Thread-250790][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 09:58:38,481 [DEBUG][       Thread-250790][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 09:58:38,484 [DEBUG][       Thread-250790][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 09:58:38,495 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 09:58:38,495 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 09:58:38,497 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 09:58:38,498 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 09:58:38,503 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 09:58:38,504 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 09:58:38,505 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 09:58:38,505 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 09:58:38,505 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.331885 -999.00   +8.30  19.12     55   +0.00 1 1 1 1 1   887    0 8.79 24.76 ----- 17.6 19.1 49.4 23.6 12.7 -27.9 11.3 -29.0 10.1 -27.5 11.3 -26.6
2025-06-13 09:58:38,505 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 09:58:38,506 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 09:58:38,506 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.331885
2025-06-13 09:58:38,506 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 09:58:38,506 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 09:58:38,507 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 09:58:38,507 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 09:58:38,507 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 09:58:38,507 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T09:58:27', tmtdew=9.45, humidity=51.42, cloud=0.0, wind=16.36, temperature=8.4, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T07:57:54.864', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 09:58:38,507 [DEBUG][       Thread-250790][   transport.py][1871] : EOF in transport thread
2025-06-13 09:58:38,591 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 09:58:38,604 [DEBUG][       Thread-250793][   transport.py][1871] : starting thread (client mode): 0x863cae60
2025-06-13 09:58:38,604 [DEBUG][       Thread-250793][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 09:58:38,618 [DEBUG][       Thread-250793][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 09:58:38,619 [ INFO][       Thread-250793][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 09:58:38,626 [DEBUG][       Thread-250793][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 09:58:38,626 [DEBUG][       Thread-250793][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 09:58:38,626 [DEBUG][       Thread-250793][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 09:58:38,626 [DEBUG][       Thread-250793][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:58:38,626 [DEBUG][       Thread-250793][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:58:38,626 [DEBUG][       Thread-250793][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:58:38,626 [DEBUG][       Thread-250793][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:58:38,626 [DEBUG][       Thread-250793][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 09:58:38,626 [DEBUG][       Thread-250793][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 09:58:38,626 [DEBUG][       Thread-250793][   transport.py][1871] : client lang: <none>
2025-06-13 09:58:38,626 [DEBUG][       Thread-250793][   transport.py][1871] : server lang: <none>
2025-06-13 09:58:38,627 [DEBUG][       Thread-250793][   transport.py][1871] : kex follows: False
2025-06-13 09:58:38,627 [DEBUG][       Thread-250793][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 09:58:38,627 [DEBUG][       Thread-250793][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 09:58:38,627 [DEBUG][       Thread-250793][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 09:58:38,627 [DEBUG][       Thread-250793][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 09:58:38,627 [DEBUG][       Thread-250793][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 09:58:38,627 [DEBUG][       Thread-250793][   transport.py][1871] : Compression: none
2025-06-13 09:58:38,627 [DEBUG][       Thread-250793][   transport.py][1871] : === End of kex handshake ===
2025-06-13 09:58:38,691 [DEBUG][       Thread-250793][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 09:58:38,692 [DEBUG][       Thread-250793][   transport.py][1871] : Switch to new keys ...
2025-06-13 09:58:38,692 [DEBUG][       Thread-250793][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 09:58:38,692 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 09:58:38,693 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 09:58:38,750 [DEBUG][       Thread-250793][   transport.py][1871] : userauth is OK
2025-06-13 09:58:38,751 [DEBUG][       Thread-250793][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 09:58:38,751 [DEBUG][       Thread-250793][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 09:58:38,751 [DEBUG][       Thread-250793][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 09:58:38,751 [DEBUG][       Thread-250793][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 09:58:38,770 [ INFO][       Thread-250793][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 09:58:38,770 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 09:58:38,770 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 09:58:39,787 [DEBUG][       Thread-250793][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 09:58:39,787 [DEBUG][       Thread-250793][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 09:58:39,835 [DEBUG][       Thread-250793][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 09:58:39,836 [DEBUG][       Thread-250793][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 09:58:39,847 [DEBUG][       Thread-250793][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 09:58:39,858 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 09:58:39,859 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 09:58:39,867 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 09:58:39,876 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 09:58:39,876 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 09:58:39,876 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 09:58:39,884 [DEBUG][       Thread-250793][   transport.py][1871] : EOF in transport thread
2025-06-13 09:58:40,977 [DEBUG][Thread-250795 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:58:42,053 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:58:42,054 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:58:45,236 [DEBUG][Thread-250796 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:58:49,887 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 09:58:49,887 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 09:58:49,887 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 09:58:49,889 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 09:58:50,355 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 9, 58, 27), 9.45, 51.42, 0.0, 16.36, 8.4, 0, 0, 0, 2, 0, 0),)
2025-06-13 09:58:50,355 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 09:58:27
2025-06-13 09:58:50,434 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 09:58:50,440 [DEBUG][       Thread-250797][   transport.py][1871] : starting thread (client mode): 0x84204c70
2025-06-13 09:58:50,440 [DEBUG][       Thread-250797][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 09:58:50,463 [DEBUG][       Thread-250797][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 09:58:50,463 [ INFO][       Thread-250797][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 09:58:50,467 [DEBUG][       Thread-250797][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 09:58:50,467 [DEBUG][       Thread-250797][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 09:58:50,467 [DEBUG][       Thread-250797][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 09:58:50,467 [DEBUG][       Thread-250797][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:58:50,467 [DEBUG][       Thread-250797][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:58:50,467 [DEBUG][       Thread-250797][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:58:50,467 [DEBUG][       Thread-250797][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:58:50,467 [DEBUG][       Thread-250797][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 09:58:50,467 [DEBUG][       Thread-250797][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 09:58:50,467 [DEBUG][       Thread-250797][   transport.py][1871] : client lang: <none>
2025-06-13 09:58:50,467 [DEBUG][       Thread-250797][   transport.py][1871] : server lang: <none>
2025-06-13 09:58:50,467 [DEBUG][       Thread-250797][   transport.py][1871] : kex follows: False
2025-06-13 09:58:50,467 [DEBUG][       Thread-250797][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 09:58:50,467 [DEBUG][       Thread-250797][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 09:58:50,467 [DEBUG][       Thread-250797][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 09:58:50,467 [DEBUG][       Thread-250797][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 09:58:50,467 [DEBUG][       Thread-250797][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 09:58:50,467 [DEBUG][       Thread-250797][   transport.py][1871] : Compression: none
2025-06-13 09:58:50,467 [DEBUG][       Thread-250797][   transport.py][1871] : === End of kex handshake ===
2025-06-13 09:58:50,485 [DEBUG][       Thread-250797][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 09:58:50,486 [DEBUG][       Thread-250797][   transport.py][1871] : Switch to new keys ...
2025-06-13 09:58:50,486 [DEBUG][       Thread-250797][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 09:58:50,486 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 09:58:50,487 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 09:58:50,488 [DEBUG][       Thread-250797][   transport.py][1871] : userauth is OK
2025-06-13 09:58:50,501 [ INFO][       Thread-250797][   transport.py][1871] : Authentication (password) successful!
2025-06-13 09:58:50,501 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 09:58:51,150 [DEBUG][       Thread-250797][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 09:58:51,151 [DEBUG][       Thread-250797][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 09:58:51,193 [DEBUG][       Thread-250797][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 09:58:51,193 [DEBUG][       Thread-250797][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 09:58:51,196 [DEBUG][       Thread-250797][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 09:58:51,209 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 09:58:51,209 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 09:58:51,211 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 09:58:51,212 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 09:58:51,217 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 09:58:51,219 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 09:58:51,219 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 09:58:51,220 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 09:58:51,220 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.332232 -999.00   +8.20  18.99     55   +0.00 1 1 1 1 1   887    0 8.90 24.89 ----- 15.1 19.0 45.2 22.0 12.7 -28.2 11.4 -29.1 10.1 -28.2 11.3 -26.4
2025-06-13 09:58:51,220 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 09:58:51,220 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 09:58:51,220 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.332232
2025-06-13 09:58:51,220 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 09:58:51,221 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 09:58:51,221 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 09:58:51,221 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 09:58:51,221 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 09:58:51,221 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T09:58:27', tmtdew=9.45, humidity=51.42, cloud=0.0, wind=16.36, temperature=8.4, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T07:58:24.845', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 09:58:51,221 [DEBUG][       Thread-250797][   transport.py][1871] : EOF in transport thread
2025-06-13 09:58:51,306 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 09:58:51,317 [DEBUG][       Thread-250800][   transport.py][1871] : starting thread (client mode): 0x8636a2c0
2025-06-13 09:58:51,317 [DEBUG][       Thread-250800][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 09:58:51,332 [DEBUG][       Thread-250800][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 09:58:51,332 [ INFO][       Thread-250800][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 09:58:51,339 [DEBUG][       Thread-250800][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 09:58:51,339 [DEBUG][       Thread-250800][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 09:58:51,339 [DEBUG][       Thread-250800][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 09:58:51,340 [DEBUG][       Thread-250800][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:58:51,340 [DEBUG][       Thread-250800][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:58:51,340 [DEBUG][       Thread-250800][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:58:51,340 [DEBUG][       Thread-250800][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:58:51,340 [DEBUG][       Thread-250800][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 09:58:51,340 [DEBUG][       Thread-250800][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 09:58:51,340 [DEBUG][       Thread-250800][   transport.py][1871] : client lang: <none>
2025-06-13 09:58:51,340 [DEBUG][       Thread-250800][   transport.py][1871] : server lang: <none>
2025-06-13 09:58:51,340 [DEBUG][       Thread-250800][   transport.py][1871] : kex follows: False
2025-06-13 09:58:51,340 [DEBUG][       Thread-250800][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 09:58:51,340 [DEBUG][       Thread-250800][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 09:58:51,340 [DEBUG][       Thread-250800][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 09:58:51,340 [DEBUG][       Thread-250800][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 09:58:51,340 [DEBUG][       Thread-250800][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 09:58:51,340 [DEBUG][       Thread-250800][   transport.py][1871] : Compression: none
2025-06-13 09:58:51,340 [DEBUG][       Thread-250800][   transport.py][1871] : === End of kex handshake ===
2025-06-13 09:58:51,401 [DEBUG][       Thread-250800][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 09:58:51,401 [DEBUG][       Thread-250800][   transport.py][1871] : Switch to new keys ...
2025-06-13 09:58:51,402 [DEBUG][       Thread-250800][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 09:58:51,402 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 09:58:51,403 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 09:58:51,459 [DEBUG][       Thread-250800][   transport.py][1871] : userauth is OK
2025-06-13 09:58:51,459 [DEBUG][       Thread-250800][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 09:58:51,459 [DEBUG][       Thread-250800][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 09:58:51,459 [DEBUG][       Thread-250800][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 09:58:51,459 [DEBUG][       Thread-250800][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 09:58:51,478 [ INFO][       Thread-250800][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 09:58:51,479 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 09:58:51,479 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 09:58:52,541 [DEBUG][       Thread-250800][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 09:58:52,541 [DEBUG][       Thread-250800][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 09:58:52,593 [DEBUG][       Thread-250800][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 09:58:52,594 [DEBUG][       Thread-250800][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 09:58:52,603 [DEBUG][       Thread-250800][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 09:58:52,612 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 09:58:52,612 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 09:58:52,621 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 09:58:52,630 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 09:58:52,630 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 09:58:52,630 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 09:58:52,639 [DEBUG][       Thread-250800][   transport.py][1871] : EOF in transport thread
2025-06-13 09:58:54,268 [DEBUG][Thread-250802 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:59:02,641 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 09:59:02,641 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 09:59:02,641 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 09:59:02,643 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 09:59:03,100 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 9, 58, 59), 9.44, 51.49, 0.0, 15.21, 8.42, 0, 0, 0, 2, 0, 0),)
2025-06-13 09:59:03,100 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 09:58:59
2025-06-13 09:59:03,179 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 09:59:03,183 [DEBUG][       Thread-250803][   transport.py][1871] : starting thread (client mode): 0x842079d0
2025-06-13 09:59:03,183 [DEBUG][       Thread-250803][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 09:59:03,205 [DEBUG][       Thread-250803][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 09:59:03,205 [ INFO][       Thread-250803][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 09:59:03,209 [DEBUG][       Thread-250803][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 09:59:03,209 [DEBUG][       Thread-250803][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 09:59:03,209 [DEBUG][       Thread-250803][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 09:59:03,209 [DEBUG][       Thread-250803][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:59:03,209 [DEBUG][       Thread-250803][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:59:03,209 [DEBUG][       Thread-250803][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:59:03,209 [DEBUG][       Thread-250803][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:59:03,209 [DEBUG][       Thread-250803][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 09:59:03,209 [DEBUG][       Thread-250803][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 09:59:03,209 [DEBUG][       Thread-250803][   transport.py][1871] : client lang: <none>
2025-06-13 09:59:03,209 [DEBUG][       Thread-250803][   transport.py][1871] : server lang: <none>
2025-06-13 09:59:03,209 [DEBUG][       Thread-250803][   transport.py][1871] : kex follows: False
2025-06-13 09:59:03,209 [DEBUG][       Thread-250803][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 09:59:03,209 [DEBUG][       Thread-250803][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 09:59:03,209 [DEBUG][       Thread-250803][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 09:59:03,209 [DEBUG][       Thread-250803][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 09:59:03,209 [DEBUG][       Thread-250803][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 09:59:03,209 [DEBUG][       Thread-250803][   transport.py][1871] : Compression: none
2025-06-13 09:59:03,209 [DEBUG][       Thread-250803][   transport.py][1871] : === End of kex handshake ===
2025-06-13 09:59:03,225 [DEBUG][       Thread-250803][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 09:59:03,226 [DEBUG][       Thread-250803][   transport.py][1871] : Switch to new keys ...
2025-06-13 09:59:03,226 [DEBUG][       Thread-250803][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 09:59:03,226 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 09:59:03,227 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 09:59:03,228 [DEBUG][       Thread-250803][   transport.py][1871] : userauth is OK
2025-06-13 09:59:03,252 [ INFO][       Thread-250803][   transport.py][1871] : Authentication (password) successful!
2025-06-13 09:59:03,253 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 09:59:03,285 [DEBUG][Thread-250805 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:59:03,872 [DEBUG][       Thread-250803][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 09:59:03,872 [DEBUG][       Thread-250803][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 09:59:03,917 [DEBUG][       Thread-250803][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 09:59:03,917 [DEBUG][       Thread-250803][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 09:59:03,920 [DEBUG][       Thread-250803][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 09:59:03,934 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 09:59:03,934 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 09:59:03,936 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 09:59:03,938 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 09:59:03,943 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 09:59:03,945 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 09:59:03,945 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 09:59:03,946 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 09:59:03,946 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.332232 -999.00   +8.20  18.99     55   +0.00 1 1 1 1 1   887    0 8.90 24.89 ----- 15.1 19.0 45.2 22.0 12.7 -28.2 11.4 -29.1 10.1 -28.2 11.3 -26.4
2025-06-13 09:59:03,946 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 09:59:03,946 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 09:59:03,946 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.332232
2025-06-13 09:59:03,946 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 09:59:03,947 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 09:59:03,947 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 09:59:03,947 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 09:59:03,947 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 09:59:03,947 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T09:58:59', tmtdew=9.44, humidity=51.49, cloud=0.0, wind=15.21, temperature=8.42, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T07:58:24.845', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 09:59:03,947 [DEBUG][       Thread-250803][   transport.py][1871] : EOF in transport thread
2025-06-13 09:59:04,031 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 09:59:04,040 [DEBUG][       Thread-250807][   transport.py][1871] : starting thread (client mode): 0x863cbf40
2025-06-13 09:59:04,040 [DEBUG][       Thread-250807][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 09:59:04,057 [DEBUG][       Thread-250807][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 09:59:04,057 [ INFO][       Thread-250807][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 09:59:04,068 [DEBUG][       Thread-250807][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 09:59:04,068 [DEBUG][       Thread-250807][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 09:59:04,068 [DEBUG][       Thread-250807][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 09:59:04,068 [DEBUG][       Thread-250807][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:59:04,068 [DEBUG][       Thread-250807][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:59:04,068 [DEBUG][       Thread-250807][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:59:04,068 [DEBUG][       Thread-250807][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:59:04,068 [DEBUG][       Thread-250807][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 09:59:04,069 [DEBUG][       Thread-250807][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 09:59:04,069 [DEBUG][       Thread-250807][   transport.py][1871] : client lang: <none>
2025-06-13 09:59:04,069 [DEBUG][       Thread-250807][   transport.py][1871] : server lang: <none>
2025-06-13 09:59:04,069 [DEBUG][       Thread-250807][   transport.py][1871] : kex follows: False
2025-06-13 09:59:04,069 [DEBUG][       Thread-250807][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 09:59:04,069 [DEBUG][       Thread-250807][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 09:59:04,069 [DEBUG][       Thread-250807][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 09:59:04,069 [DEBUG][       Thread-250807][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 09:59:04,069 [DEBUG][       Thread-250807][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 09:59:04,069 [DEBUG][       Thread-250807][   transport.py][1871] : Compression: none
2025-06-13 09:59:04,069 [DEBUG][       Thread-250807][   transport.py][1871] : === End of kex handshake ===
2025-06-13 09:59:04,127 [DEBUG][       Thread-250807][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 09:59:04,127 [DEBUG][       Thread-250807][   transport.py][1871] : Switch to new keys ...
2025-06-13 09:59:04,128 [DEBUG][       Thread-250807][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 09:59:04,128 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 09:59:04,129 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 09:59:04,186 [DEBUG][       Thread-250807][   transport.py][1871] : userauth is OK
2025-06-13 09:59:04,187 [DEBUG][       Thread-250807][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 09:59:04,187 [DEBUG][       Thread-250807][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 09:59:04,187 [DEBUG][       Thread-250807][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 09:59:04,187 [DEBUG][       Thread-250807][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 09:59:04,209 [ INFO][       Thread-250807][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 09:59:04,209 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 09:59:04,210 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 09:59:04,832 [DEBUG][Thread-250809 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:59:05,332 [DEBUG][       Thread-250807][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 09:59:05,332 [DEBUG][       Thread-250807][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 09:59:05,384 [DEBUG][       Thread-250807][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 09:59:05,384 [DEBUG][       Thread-250807][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 09:59:05,393 [DEBUG][       Thread-250807][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 09:59:05,407 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 09:59:05,407 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 09:59:05,419 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 09:59:05,431 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 09:59:05,431 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 09:59:05,432 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 09:59:05,439 [DEBUG][       Thread-250807][   transport.py][1871] : EOF in transport thread
2025-06-13 09:59:12,308 [DEBUG][Thread-250810 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:59:15,441 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 09:59:15,442 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 09:59:15,450 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 09:59:15,453 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 09:59:15,908 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 9, 58, 59), 9.44, 51.49, 0.0, 15.21, 8.42, 0, 0, 0, 2, 0, 0),)
2025-06-13 09:59:15,908 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 09:58:59
2025-06-13 09:59:15,985 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 09:59:15,991 [DEBUG][       Thread-250811][   transport.py][1871] : starting thread (client mode): 0x84205de0
2025-06-13 09:59:15,991 [DEBUG][       Thread-250811][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 09:59:16,011 [DEBUG][       Thread-250811][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 09:59:16,011 [ INFO][       Thread-250811][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 09:59:16,014 [DEBUG][       Thread-250811][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 09:59:16,014 [DEBUG][       Thread-250811][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 09:59:16,014 [DEBUG][       Thread-250811][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 09:59:16,014 [DEBUG][       Thread-250811][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:59:16,015 [DEBUG][       Thread-250811][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:59:16,015 [DEBUG][       Thread-250811][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:59:16,015 [DEBUG][       Thread-250811][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:59:16,015 [DEBUG][       Thread-250811][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 09:59:16,015 [DEBUG][       Thread-250811][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 09:59:16,015 [DEBUG][       Thread-250811][   transport.py][1871] : client lang: <none>
2025-06-13 09:59:16,015 [DEBUG][       Thread-250811][   transport.py][1871] : server lang: <none>
2025-06-13 09:59:16,015 [DEBUG][       Thread-250811][   transport.py][1871] : kex follows: False
2025-06-13 09:59:16,015 [DEBUG][       Thread-250811][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 09:59:16,015 [DEBUG][       Thread-250811][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 09:59:16,015 [DEBUG][       Thread-250811][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 09:59:16,015 [DEBUG][       Thread-250811][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 09:59:16,015 [DEBUG][       Thread-250811][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 09:59:16,015 [DEBUG][       Thread-250811][   transport.py][1871] : Compression: none
2025-06-13 09:59:16,015 [DEBUG][       Thread-250811][   transport.py][1871] : === End of kex handshake ===
2025-06-13 09:59:16,033 [DEBUG][       Thread-250811][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 09:59:16,034 [DEBUG][       Thread-250811][   transport.py][1871] : Switch to new keys ...
2025-06-13 09:59:16,034 [DEBUG][       Thread-250811][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 09:59:16,035 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 09:59:16,035 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 09:59:16,036 [DEBUG][       Thread-250811][   transport.py][1871] : userauth is OK
2025-06-13 09:59:16,060 [ INFO][       Thread-250811][   transport.py][1871] : Authentication (password) successful!
2025-06-13 09:59:16,060 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 09:59:16,678 [DEBUG][       Thread-250811][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 09:59:16,678 [DEBUG][       Thread-250811][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 09:59:16,721 [DEBUG][       Thread-250811][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 09:59:16,721 [DEBUG][       Thread-250811][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 09:59:16,724 [DEBUG][       Thread-250811][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 09:59:16,736 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 09:59:16,736 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 09:59:16,738 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 09:59:16,739 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 09:59:16,744 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 09:59:16,746 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 09:59:16,746 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 09:59:16,747 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 09:59:16,747 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.332232 -999.00   +8.20  18.99     55   +0.00 1 1 1 1 1   887    0 8.90 24.89 ----- 15.1 19.0 45.2 22.0 12.7 -28.2 11.4 -29.1 10.1 -28.2 11.3 -26.4
2025-06-13 09:59:16,747 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 09:59:16,747 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 09:59:16,747 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.332232
2025-06-13 09:59:16,747 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 09:59:16,748 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 09:59:16,748 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 09:59:16,748 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 09:59:16,748 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 09:59:16,748 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T09:58:59', tmtdew=9.44, humidity=51.49, cloud=0.0, wind=15.21, temperature=8.42, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T07:58:24.845', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 09:59:16,749 [DEBUG][       Thread-250811][   transport.py][1871] : EOF in transport thread
2025-06-13 09:59:16,833 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 09:59:16,844 [DEBUG][       Thread-250814][   transport.py][1871] : starting thread (client mode): 0x863c82b0
2025-06-13 09:59:16,844 [DEBUG][       Thread-250814][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 09:59:16,858 [DEBUG][       Thread-250814][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 09:59:16,859 [ INFO][       Thread-250814][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 09:59:16,866 [DEBUG][       Thread-250814][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 09:59:16,866 [DEBUG][       Thread-250814][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 09:59:16,866 [DEBUG][       Thread-250814][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 09:59:16,866 [DEBUG][       Thread-250814][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:59:16,866 [DEBUG][       Thread-250814][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:59:16,866 [DEBUG][       Thread-250814][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:59:16,866 [DEBUG][       Thread-250814][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:59:16,866 [DEBUG][       Thread-250814][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 09:59:16,866 [DEBUG][       Thread-250814][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 09:59:16,867 [DEBUG][       Thread-250814][   transport.py][1871] : client lang: <none>
2025-06-13 09:59:16,867 [DEBUG][       Thread-250814][   transport.py][1871] : server lang: <none>
2025-06-13 09:59:16,867 [DEBUG][       Thread-250814][   transport.py][1871] : kex follows: False
2025-06-13 09:59:16,867 [DEBUG][       Thread-250814][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 09:59:16,867 [DEBUG][       Thread-250814][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 09:59:16,867 [DEBUG][       Thread-250814][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 09:59:16,867 [DEBUG][       Thread-250814][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 09:59:16,867 [DEBUG][       Thread-250814][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 09:59:16,867 [DEBUG][       Thread-250814][   transport.py][1871] : Compression: none
2025-06-13 09:59:16,867 [DEBUG][       Thread-250814][   transport.py][1871] : === End of kex handshake ===
2025-06-13 09:59:16,931 [DEBUG][       Thread-250814][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 09:59:16,932 [DEBUG][       Thread-250814][   transport.py][1871] : Switch to new keys ...
2025-06-13 09:59:16,932 [DEBUG][       Thread-250814][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 09:59:16,932 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 09:59:16,933 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 09:59:16,990 [DEBUG][       Thread-250814][   transport.py][1871] : userauth is OK
2025-06-13 09:59:16,990 [DEBUG][       Thread-250814][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 09:59:16,991 [DEBUG][       Thread-250814][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 09:59:16,991 [DEBUG][       Thread-250814][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 09:59:16,991 [DEBUG][       Thread-250814][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 09:59:17,017 [ INFO][       Thread-250814][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 09:59:17,018 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 09:59:17,018 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 09:59:18,010 [DEBUG][       Thread-250814][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 09:59:18,010 [DEBUG][       Thread-250814][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 09:59:18,059 [DEBUG][       Thread-250814][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 09:59:18,060 [DEBUG][       Thread-250814][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 09:59:18,069 [DEBUG][       Thread-250814][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 09:59:18,077 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 09:59:18,077 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 09:59:18,086 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 09:59:18,095 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 09:59:18,095 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 09:59:18,095 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 09:59:18,103 [DEBUG][       Thread-250814][   transport.py][1871] : EOF in transport thread
2025-06-13 09:59:21,339 [DEBUG][Thread-250816 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:59:22,432 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:59:22,433 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:59:28,104 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 09:59:28,104 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 09:59:28,104 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 09:59:28,106 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 09:59:28,574 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 9, 58, 59), 9.44, 51.49, 0.0, 15.21, 8.42, 0, 0, 0, 2, 0, 0),)
2025-06-13 09:59:28,574 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 09:58:59
2025-06-13 09:59:28,651 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 09:59:28,655 [DEBUG][       Thread-250817][   transport.py][1871] : starting thread (client mode): 0x842056c0
2025-06-13 09:59:28,655 [DEBUG][       Thread-250817][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 09:59:28,677 [DEBUG][       Thread-250817][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 09:59:28,677 [ INFO][       Thread-250817][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 09:59:28,680 [DEBUG][       Thread-250817][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 09:59:28,681 [DEBUG][       Thread-250817][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 09:59:28,681 [DEBUG][       Thread-250817][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 09:59:28,681 [DEBUG][       Thread-250817][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:59:28,681 [DEBUG][       Thread-250817][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:59:28,681 [DEBUG][       Thread-250817][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:59:28,681 [DEBUG][       Thread-250817][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:59:28,681 [DEBUG][       Thread-250817][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 09:59:28,681 [DEBUG][       Thread-250817][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 09:59:28,681 [DEBUG][       Thread-250817][   transport.py][1871] : client lang: <none>
2025-06-13 09:59:28,681 [DEBUG][       Thread-250817][   transport.py][1871] : server lang: <none>
2025-06-13 09:59:28,681 [DEBUG][       Thread-250817][   transport.py][1871] : kex follows: False
2025-06-13 09:59:28,681 [DEBUG][       Thread-250817][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 09:59:28,681 [DEBUG][       Thread-250817][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 09:59:28,681 [DEBUG][       Thread-250817][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 09:59:28,681 [DEBUG][       Thread-250817][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 09:59:28,681 [DEBUG][       Thread-250817][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 09:59:28,681 [DEBUG][       Thread-250817][   transport.py][1871] : Compression: none
2025-06-13 09:59:28,681 [DEBUG][       Thread-250817][   transport.py][1871] : === End of kex handshake ===
2025-06-13 09:59:28,697 [DEBUG][       Thread-250817][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 09:59:28,698 [DEBUG][       Thread-250817][   transport.py][1871] : Switch to new keys ...
2025-06-13 09:59:28,698 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 09:59:28,699 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 09:59:28,699 [DEBUG][       Thread-250817][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 09:59:28,699 [DEBUG][       Thread-250817][   transport.py][1871] : userauth is OK
2025-06-13 09:59:28,724 [ INFO][       Thread-250817][   transport.py][1871] : Authentication (password) successful!
2025-06-13 09:59:28,724 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 09:59:29,347 [DEBUG][       Thread-250817][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 09:59:29,347 [DEBUG][       Thread-250817][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 09:59:29,389 [DEBUG][       Thread-250817][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 09:59:29,389 [DEBUG][       Thread-250817][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 09:59:29,392 [DEBUG][       Thread-250817][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 09:59:29,405 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 09:59:29,405 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 09:59:29,407 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 09:59:29,409 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 09:59:29,414 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 09:59:29,416 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 09:59:29,416 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 09:59:29,417 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 09:59:29,417 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.332579 -999.00   +8.30  17.01     56   +0.20 1 1 1 1 1   887    0 8.81 22.58 ----- 14.2 17.0 60.2 20.9 12.7 -27.6 11.3 -29.2 10.2 -27.3 11.4 -26.3
2025-06-13 09:59:29,417 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 09:59:29,417 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 09:59:29,417 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.332579
2025-06-13 09:59:29,418 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 09:59:29,418 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 09:59:29,418 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 09:59:29,418 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 09:59:29,418 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 09:59:29,419 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T09:58:59', tmtdew=9.44, humidity=51.49, cloud=0.0, wind=15.21, temperature=8.42, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T07:58:54.826', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 09:59:29,419 [DEBUG][       Thread-250817][   transport.py][1871] : EOF in transport thread
2025-06-13 09:59:29,502 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 09:59:29,514 [DEBUG][       Thread-250820][   transport.py][1871] : starting thread (client mode): 0x863ed4e0
2025-06-13 09:59:29,514 [DEBUG][       Thread-250820][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 09:59:29,532 [DEBUG][       Thread-250820][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 09:59:29,532 [ INFO][       Thread-250820][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 09:59:29,540 [DEBUG][       Thread-250820][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 09:59:29,540 [DEBUG][       Thread-250820][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 09:59:29,540 [DEBUG][       Thread-250820][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 09:59:29,540 [DEBUG][       Thread-250820][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:59:29,540 [DEBUG][       Thread-250820][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:59:29,541 [DEBUG][       Thread-250820][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:59:29,541 [DEBUG][       Thread-250820][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:59:29,541 [DEBUG][       Thread-250820][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 09:59:29,541 [DEBUG][       Thread-250820][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 09:59:29,541 [DEBUG][       Thread-250820][   transport.py][1871] : client lang: <none>
2025-06-13 09:59:29,541 [DEBUG][       Thread-250820][   transport.py][1871] : server lang: <none>
2025-06-13 09:59:29,541 [DEBUG][       Thread-250820][   transport.py][1871] : kex follows: False
2025-06-13 09:59:29,541 [DEBUG][       Thread-250820][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 09:59:29,541 [DEBUG][       Thread-250820][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 09:59:29,541 [DEBUG][       Thread-250820][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 09:59:29,541 [DEBUG][       Thread-250820][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 09:59:29,541 [DEBUG][       Thread-250820][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 09:59:29,541 [DEBUG][       Thread-250820][   transport.py][1871] : Compression: none
2025-06-13 09:59:29,541 [DEBUG][       Thread-250820][   transport.py][1871] : === End of kex handshake ===
2025-06-13 09:59:29,604 [DEBUG][       Thread-250820][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 09:59:29,605 [DEBUG][       Thread-250820][   transport.py][1871] : Switch to new keys ...
2025-06-13 09:59:29,605 [DEBUG][       Thread-250820][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 09:59:29,605 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 09:59:29,606 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 09:59:29,668 [DEBUG][       Thread-250820][   transport.py][1871] : userauth is OK
2025-06-13 09:59:29,668 [DEBUG][       Thread-250820][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 09:59:29,668 [DEBUG][       Thread-250820][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 09:59:29,669 [DEBUG][       Thread-250820][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 09:59:29,669 [DEBUG][       Thread-250820][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 09:59:29,693 [ INFO][       Thread-250820][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 09:59:29,694 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 09:59:29,694 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 09:59:30,357 [DEBUG][Thread-250822 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:59:30,748 [DEBUG][       Thread-250820][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 09:59:30,749 [DEBUG][       Thread-250820][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 09:59:30,800 [DEBUG][       Thread-250820][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 09:59:30,800 [DEBUG][       Thread-250820][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 09:59:30,815 [DEBUG][       Thread-250820][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 09:59:30,830 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 09:59:30,830 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 09:59:30,839 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 09:59:30,849 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 09:59:30,849 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 09:59:30,849 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 09:59:30,857 [DEBUG][       Thread-250820][   transport.py][1871] : EOF in transport thread
2025-06-13 09:59:39,375 [DEBUG][Thread-250823 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:59:40,860 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 09:59:40,860 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 09:59:40,860 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 09:59:40,863 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 09:59:41,315 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 9, 59, 31), 9.41, 51.68, 0.0, 12.99, 8.41, 0, 0, 0, 2, 0, 0),)
2025-06-13 09:59:41,315 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 09:59:31
2025-06-13 09:59:41,391 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 09:59:41,397 [DEBUG][       Thread-250824][   transport.py][1871] : starting thread (client mode): 0x84206a70
2025-06-13 09:59:41,397 [DEBUG][       Thread-250824][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 09:59:41,418 [DEBUG][       Thread-250824][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 09:59:41,418 [ INFO][       Thread-250824][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 09:59:41,421 [DEBUG][       Thread-250824][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 09:59:41,421 [DEBUG][       Thread-250824][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 09:59:41,421 [DEBUG][       Thread-250824][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 09:59:41,421 [DEBUG][       Thread-250824][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:59:41,421 [DEBUG][       Thread-250824][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:59:41,421 [DEBUG][       Thread-250824][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:59:41,421 [DEBUG][       Thread-250824][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:59:41,421 [DEBUG][       Thread-250824][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 09:59:41,421 [DEBUG][       Thread-250824][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 09:59:41,421 [DEBUG][       Thread-250824][   transport.py][1871] : client lang: <none>
2025-06-13 09:59:41,421 [DEBUG][       Thread-250824][   transport.py][1871] : server lang: <none>
2025-06-13 09:59:41,421 [DEBUG][       Thread-250824][   transport.py][1871] : kex follows: False
2025-06-13 09:59:41,421 [DEBUG][       Thread-250824][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 09:59:41,421 [DEBUG][       Thread-250824][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 09:59:41,421 [DEBUG][       Thread-250824][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 09:59:41,421 [DEBUG][       Thread-250824][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 09:59:41,421 [DEBUG][       Thread-250824][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 09:59:41,422 [DEBUG][       Thread-250824][   transport.py][1871] : Compression: none
2025-06-13 09:59:41,422 [DEBUG][       Thread-250824][   transport.py][1871] : === End of kex handshake ===
2025-06-13 09:59:41,438 [DEBUG][       Thread-250824][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 09:59:41,439 [DEBUG][       Thread-250824][   transport.py][1871] : Switch to new keys ...
2025-06-13 09:59:41,439 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 09:59:41,439 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 09:59:41,440 [DEBUG][       Thread-250824][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 09:59:41,441 [DEBUG][       Thread-250824][   transport.py][1871] : userauth is OK
2025-06-13 09:59:41,454 [ INFO][       Thread-250824][   transport.py][1871] : Authentication (password) successful!
2025-06-13 09:59:41,454 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 09:59:42,110 [DEBUG][       Thread-250824][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 09:59:42,119 [DEBUG][       Thread-250824][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 09:59:42,129 [DEBUG][Thread-250826 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:59:42,153 [DEBUG][       Thread-250824][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 09:59:42,153 [DEBUG][       Thread-250824][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 09:59:42,156 [DEBUG][       Thread-250824][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 09:59:42,170 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 09:59:42,170 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 09:59:42,171 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 09:59:42,172 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 09:59:42,175 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 09:59:42,176 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 09:59:42,176 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 09:59:42,176 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 09:59:42,176 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.332579 -999.00   +8.30  17.01     56   +0.20 1 1 1 1 1   887    0 8.81 22.58 ----- 14.2 17.0 60.2 20.9 12.7 -27.6 11.3 -29.2 10.2 -27.3 11.4 -26.3
2025-06-13 09:59:42,176 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 09:59:42,177 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 09:59:42,177 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.332579
2025-06-13 09:59:42,177 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 09:59:42,177 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 09:59:42,177 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 09:59:42,177 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 09:59:42,177 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 09:59:42,177 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T09:59:31', tmtdew=9.41, humidity=51.68, cloud=0.0, wind=12.99, temperature=8.41, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T07:58:54.826', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 09:59:42,177 [DEBUG][       Thread-250824][   transport.py][1871] : EOF in transport thread
2025-06-13 09:59:42,248 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 09:59:42,261 [DEBUG][       Thread-250828][   transport.py][1871] : starting thread (client mode): 0x863cbf40
2025-06-13 09:59:42,261 [DEBUG][       Thread-250828][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 09:59:42,280 [DEBUG][       Thread-250828][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 09:59:42,280 [ INFO][       Thread-250828][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 09:59:42,288 [DEBUG][       Thread-250828][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 09:59:42,288 [DEBUG][       Thread-250828][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 09:59:42,288 [DEBUG][       Thread-250828][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 09:59:42,288 [DEBUG][       Thread-250828][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:59:42,288 [DEBUG][       Thread-250828][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:59:42,288 [DEBUG][       Thread-250828][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:59:42,288 [DEBUG][       Thread-250828][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:59:42,288 [DEBUG][       Thread-250828][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 09:59:42,288 [DEBUG][       Thread-250828][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 09:59:42,288 [DEBUG][       Thread-250828][   transport.py][1871] : client lang: <none>
2025-06-13 09:59:42,288 [DEBUG][       Thread-250828][   transport.py][1871] : server lang: <none>
2025-06-13 09:59:42,288 [DEBUG][       Thread-250828][   transport.py][1871] : kex follows: False
2025-06-13 09:59:42,288 [DEBUG][       Thread-250828][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 09:59:42,288 [DEBUG][       Thread-250828][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 09:59:42,288 [DEBUG][       Thread-250828][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 09:59:42,288 [DEBUG][       Thread-250828][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 09:59:42,288 [DEBUG][       Thread-250828][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 09:59:42,288 [DEBUG][       Thread-250828][   transport.py][1871] : Compression: none
2025-06-13 09:59:42,288 [DEBUG][       Thread-250828][   transport.py][1871] : === End of kex handshake ===
2025-06-13 09:59:42,347 [DEBUG][       Thread-250828][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 09:59:42,347 [DEBUG][       Thread-250828][   transport.py][1871] : Switch to new keys ...
2025-06-13 09:59:42,347 [DEBUG][       Thread-250828][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 09:59:42,347 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 09:59:42,348 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 09:59:42,406 [DEBUG][       Thread-250828][   transport.py][1871] : userauth is OK
2025-06-13 09:59:42,407 [DEBUG][       Thread-250828][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 09:59:42,407 [DEBUG][       Thread-250828][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 09:59:42,407 [DEBUG][       Thread-250828][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 09:59:42,407 [DEBUG][       Thread-250828][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 09:59:42,425 [ INFO][       Thread-250828][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 09:59:42,425 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 09:59:42,426 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 09:59:43,204 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:59:43,204 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:59:43,420 [DEBUG][       Thread-250828][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 09:59:43,420 [DEBUG][       Thread-250828][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 09:59:43,467 [DEBUG][       Thread-250828][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 09:59:43,468 [DEBUG][       Thread-250828][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 09:59:43,477 [DEBUG][       Thread-250828][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 09:59:43,485 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 09:59:43,486 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 09:59:43,494 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 09:59:43,506 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 09:59:43,506 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 09:59:43,507 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 09:59:43,515 [DEBUG][       Thread-250828][   transport.py][1871] : EOF in transport thread
2025-06-13 09:59:48,396 [DEBUG][Thread-250830 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 09:59:53,517 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 09:59:53,518 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 09:59:53,518 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 09:59:53,521 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 09:59:53,985 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 9, 59, 31), 9.41, 51.68, 0.0, 12.99, 8.41, 0, 0, 0, 2, 0, 0),)
2025-06-13 09:59:53,985 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 09:59:31
2025-06-13 09:59:54,063 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 09:59:54,069 [DEBUG][       Thread-250831][   transport.py][1871] : starting thread (client mode): 0x86369060
2025-06-13 09:59:54,069 [DEBUG][       Thread-250831][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 09:59:54,088 [DEBUG][       Thread-250831][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 09:59:54,088 [ INFO][       Thread-250831][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 09:59:54,091 [DEBUG][       Thread-250831][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 09:59:54,091 [DEBUG][       Thread-250831][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 09:59:54,091 [DEBUG][       Thread-250831][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 09:59:54,091 [DEBUG][       Thread-250831][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:59:54,091 [DEBUG][       Thread-250831][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:59:54,091 [DEBUG][       Thread-250831][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:59:54,091 [DEBUG][       Thread-250831][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:59:54,091 [DEBUG][       Thread-250831][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 09:59:54,091 [DEBUG][       Thread-250831][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 09:59:54,091 [DEBUG][       Thread-250831][   transport.py][1871] : client lang: <none>
2025-06-13 09:59:54,091 [DEBUG][       Thread-250831][   transport.py][1871] : server lang: <none>
2025-06-13 09:59:54,091 [DEBUG][       Thread-250831][   transport.py][1871] : kex follows: False
2025-06-13 09:59:54,091 [DEBUG][       Thread-250831][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 09:59:54,091 [DEBUG][       Thread-250831][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 09:59:54,091 [DEBUG][       Thread-250831][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 09:59:54,091 [DEBUG][       Thread-250831][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 09:59:54,091 [DEBUG][       Thread-250831][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 09:59:54,091 [DEBUG][       Thread-250831][   transport.py][1871] : Compression: none
2025-06-13 09:59:54,091 [DEBUG][       Thread-250831][   transport.py][1871] : === End of kex handshake ===
2025-06-13 09:59:54,109 [DEBUG][       Thread-250831][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 09:59:54,109 [DEBUG][       Thread-250831][   transport.py][1871] : Switch to new keys ...
2025-06-13 09:59:54,110 [DEBUG][       Thread-250831][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 09:59:54,110 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 09:59:54,110 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 09:59:54,111 [DEBUG][       Thread-250831][   transport.py][1871] : userauth is OK
2025-06-13 09:59:54,124 [ INFO][       Thread-250831][   transport.py][1871] : Authentication (password) successful!
2025-06-13 09:59:54,124 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 09:59:54,718 [DEBUG][       Thread-250831][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 09:59:54,718 [DEBUG][       Thread-250831][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 09:59:54,760 [DEBUG][       Thread-250831][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 09:59:54,761 [DEBUG][       Thread-250831][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 09:59:54,762 [DEBUG][       Thread-250831][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 09:59:54,774 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 09:59:54,774 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 09:59:54,775 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 09:59:54,776 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 09:59:54,779 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 09:59:54,779 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 09:59:54,779 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 09:59:54,780 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 09:59:54,780 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.332927 -999.00   +8.40  14.52     55   +0.00 1 1 1 1 1   887    0 8.73 21.54 ----- 16.8 14.5 41.8 18.8 12.7 -28.2 11.4 -29.5 10.2 -27.7 11.5 -26.6
2025-06-13 09:59:54,780 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 09:59:54,780 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 09:59:54,780 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.332927
2025-06-13 09:59:54,780 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 09:59:54,780 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 09:59:54,780 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 09:59:54,780 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 09:59:54,780 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 09:59:54,780 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T09:59:31', tmtdew=9.41, humidity=51.68, cloud=0.0, wind=12.99, temperature=8.41, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T07:59:24.893', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 09:59:54,780 [DEBUG][       Thread-250831][   transport.py][1871] : EOF in transport thread
2025-06-13 09:59:54,851 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 09:59:54,860 [DEBUG][       Thread-250834][   transport.py][1871] : starting thread (client mode): 0x863a4c70
2025-06-13 09:59:54,860 [DEBUG][       Thread-250834][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 09:59:54,876 [DEBUG][       Thread-250834][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 09:59:54,876 [ INFO][       Thread-250834][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 09:59:54,884 [DEBUG][       Thread-250834][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 09:59:54,884 [DEBUG][       Thread-250834][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 09:59:54,884 [DEBUG][       Thread-250834][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 09:59:54,884 [DEBUG][       Thread-250834][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:59:54,884 [DEBUG][       Thread-250834][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 09:59:54,884 [DEBUG][       Thread-250834][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:59:54,884 [DEBUG][       Thread-250834][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 09:59:54,884 [DEBUG][       Thread-250834][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 09:59:54,884 [DEBUG][       Thread-250834][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 09:59:54,884 [DEBUG][       Thread-250834][   transport.py][1871] : client lang: <none>
2025-06-13 09:59:54,884 [DEBUG][       Thread-250834][   transport.py][1871] : server lang: <none>
2025-06-13 09:59:54,885 [DEBUG][       Thread-250834][   transport.py][1871] : kex follows: False
2025-06-13 09:59:54,885 [DEBUG][       Thread-250834][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 09:59:54,885 [DEBUG][       Thread-250834][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 09:59:54,885 [DEBUG][       Thread-250834][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 09:59:54,885 [DEBUG][       Thread-250834][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 09:59:54,885 [DEBUG][       Thread-250834][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 09:59:54,885 [DEBUG][       Thread-250834][   transport.py][1871] : Compression: none
2025-06-13 09:59:54,885 [DEBUG][       Thread-250834][   transport.py][1871] : === End of kex handshake ===
2025-06-13 09:59:54,948 [DEBUG][       Thread-250834][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 09:59:54,948 [DEBUG][       Thread-250834][   transport.py][1871] : Switch to new keys ...
2025-06-13 09:59:54,949 [DEBUG][       Thread-250834][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 09:59:54,949 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 09:59:54,949 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 09:59:55,012 [DEBUG][       Thread-250834][   transport.py][1871] : userauth is OK
2025-06-13 09:59:55,012 [DEBUG][       Thread-250834][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 09:59:55,012 [DEBUG][       Thread-250834][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 09:59:55,012 [DEBUG][       Thread-250834][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 09:59:55,012 [DEBUG][       Thread-250834][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 09:59:55,037 [ INFO][       Thread-250834][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 09:59:55,037 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 09:59:55,037 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 09:59:56,049 [DEBUG][       Thread-250834][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 09:59:56,049 [DEBUG][       Thread-250834][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 09:59:56,099 [DEBUG][       Thread-250834][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 09:59:56,100 [DEBUG][       Thread-250834][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 09:59:56,110 [DEBUG][       Thread-250834][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 09:59:56,127 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 09:59:56,127 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 09:59:56,136 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 09:59:56,146 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 09:59:56,147 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 09:59:56,147 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 09:59:56,159 [DEBUG][       Thread-250834][   transport.py][1871] : EOF in transport thread
2025-06-13 09:59:57,427 [DEBUG][Thread-250836 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:00:04,876 [DEBUG][Thread-250837 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:00:06,156 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 10:00:06,156 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 10:00:06,156 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 10:00:06,158 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 10:00:06,442 [DEBUG][Thread-250838 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:00:06,616 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 10, 0, 3), 9.4, 51.73, 0.0, 12.25, 8.44, 0, 0, 0, 2, 0, 0),)
2025-06-13 10:00:06,616 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 10:00:03
2025-06-13 10:00:06,692 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 10:00:06,696 [DEBUG][       Thread-250839][   transport.py][1871] : starting thread (client mode): 0x863bd690
2025-06-13 10:00:06,696 [DEBUG][       Thread-250839][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 10:00:06,718 [DEBUG][       Thread-250839][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 10:00:06,718 [ INFO][       Thread-250839][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 10:00:06,722 [DEBUG][       Thread-250839][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 10:00:06,723 [DEBUG][       Thread-250839][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 10:00:06,723 [DEBUG][       Thread-250839][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 10:00:06,723 [DEBUG][       Thread-250839][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:00:06,723 [DEBUG][       Thread-250839][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:00:06,723 [DEBUG][       Thread-250839][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:00:06,723 [DEBUG][       Thread-250839][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:00:06,723 [DEBUG][       Thread-250839][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 10:00:06,723 [DEBUG][       Thread-250839][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 10:00:06,723 [DEBUG][       Thread-250839][   transport.py][1871] : client lang: <none>
2025-06-13 10:00:06,723 [DEBUG][       Thread-250839][   transport.py][1871] : server lang: <none>
2025-06-13 10:00:06,723 [DEBUG][       Thread-250839][   transport.py][1871] : kex follows: False
2025-06-13 10:00:06,723 [DEBUG][       Thread-250839][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 10:00:06,723 [DEBUG][       Thread-250839][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 10:00:06,723 [DEBUG][       Thread-250839][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 10:00:06,723 [DEBUG][       Thread-250839][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 10:00:06,723 [DEBUG][       Thread-250839][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 10:00:06,723 [DEBUG][       Thread-250839][   transport.py][1871] : Compression: none
2025-06-13 10:00:06,723 [DEBUG][       Thread-250839][   transport.py][1871] : === End of kex handshake ===
2025-06-13 10:00:06,742 [DEBUG][       Thread-250839][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 10:00:06,742 [DEBUG][       Thread-250839][   transport.py][1871] : Switch to new keys ...
2025-06-13 10:00:06,743 [DEBUG][       Thread-250839][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 10:00:06,743 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 10:00:06,743 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 10:00:06,744 [DEBUG][       Thread-250839][   transport.py][1871] : userauth is OK
2025-06-13 10:00:06,769 [ INFO][       Thread-250839][   transport.py][1871] : Authentication (password) successful!
2025-06-13 10:00:06,769 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 10:00:14,898 [DEBUG][       Thread-250839][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 10:00:14,898 [DEBUG][       Thread-250839][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 10:00:14,940 [DEBUG][       Thread-250839][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 10:00:14,940 [DEBUG][       Thread-250839][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 10:00:14,943 [DEBUG][       Thread-250839][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 10:00:14,984 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 10:00:14,984 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 10:00:14,986 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 10:00:14,986 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 10:00:15,092 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 10:00:15,093 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 10:00:15,093 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 10:00:15,093 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 10:00:15,093 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.332927 -999.00   +8.40  14.52     55   +0.00 1 1 1 1 1   887    0 8.73 21.54 ----- 16.8 14.5 41.8 18.8 12.7 -28.2 11.4 -29.5 10.2 -27.7 11.5 -26.6
2025-06-13 10:00:15,093 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 10:00:15,093 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 10:00:15,093 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.332927
2025-06-13 10:00:15,093 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 10:00:15,093 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 10:00:15,093 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 10:00:15,093 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 10:00:15,093 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 10:00:15,093 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T10:00:03', tmtdew=9.4, humidity=51.73, cloud=0.0, wind=12.25, temperature=8.44, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T07:59:24.893', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 10:00:15,094 [DEBUG][       Thread-250839][   transport.py][1871] : EOF in transport thread
2025-06-13 10:00:15,165 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 10:00:15,176 [DEBUG][       Thread-250842][   transport.py][1871] : starting thread (client mode): 0x867ffdc0
2025-06-13 10:00:15,176 [DEBUG][       Thread-250842][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 10:00:15,190 [DEBUG][       Thread-250842][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 10:00:15,190 [ INFO][       Thread-250842][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 10:00:15,200 [DEBUG][       Thread-250842][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 10:00:15,200 [DEBUG][       Thread-250842][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 10:00:15,200 [DEBUG][       Thread-250842][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 10:00:15,200 [DEBUG][       Thread-250842][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:00:15,200 [DEBUG][       Thread-250842][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:00:15,200 [DEBUG][       Thread-250842][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:00:15,200 [DEBUG][       Thread-250842][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:00:15,200 [DEBUG][       Thread-250842][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 10:00:15,200 [DEBUG][       Thread-250842][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 10:00:15,200 [DEBUG][       Thread-250842][   transport.py][1871] : client lang: <none>
2025-06-13 10:00:15,200 [DEBUG][       Thread-250842][   transport.py][1871] : server lang: <none>
2025-06-13 10:00:15,200 [DEBUG][       Thread-250842][   transport.py][1871] : kex follows: False
2025-06-13 10:00:15,200 [DEBUG][       Thread-250842][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 10:00:15,200 [DEBUG][       Thread-250842][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 10:00:15,200 [DEBUG][       Thread-250842][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 10:00:15,200 [DEBUG][       Thread-250842][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 10:00:15,200 [DEBUG][       Thread-250842][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 10:00:15,200 [DEBUG][       Thread-250842][   transport.py][1871] : Compression: none
2025-06-13 10:00:15,200 [DEBUG][       Thread-250842][   transport.py][1871] : === End of kex handshake ===
2025-06-13 10:00:15,258 [DEBUG][       Thread-250842][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 10:00:15,258 [DEBUG][       Thread-250842][   transport.py][1871] : Switch to new keys ...
2025-06-13 10:00:15,258 [DEBUG][       Thread-250842][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 10:00:15,258 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 10:00:15,258 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 10:00:15,314 [DEBUG][       Thread-250842][   transport.py][1871] : userauth is OK
2025-06-13 10:00:15,314 [DEBUG][       Thread-250842][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 10:00:15,314 [DEBUG][       Thread-250842][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 10:00:15,314 [DEBUG][       Thread-250842][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 10:00:15,314 [DEBUG][       Thread-250842][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 10:00:15,329 [ INFO][       Thread-250842][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 10:00:15,329 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 10:00:15,329 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 10:00:15,458 [DEBUG][Thread-250844 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:00:16,330 [DEBUG][       Thread-250842][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 10:00:16,331 [DEBUG][       Thread-250842][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 10:00:16,380 [DEBUG][       Thread-250842][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 10:00:16,380 [DEBUG][       Thread-250842][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 10:00:16,389 [DEBUG][       Thread-250842][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 10:00:16,398 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 10:00:16,398 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 10:00:16,407 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 10:00:16,416 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 10:00:16,416 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 10:00:16,417 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 10:00:16,425 [DEBUG][       Thread-250842][   transport.py][1871] : EOF in transport thread
2025-06-13 10:00:22,572 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:00:22,573 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:00:24,481 [DEBUG][Thread-250845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:00:26,420 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 10:00:26,420 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 10:00:26,420 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 10:00:26,423 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 10:00:26,875 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 10, 0, 3), 9.4, 51.73, 0.0, 12.25, 8.44, 0, 0, 0, 2, 0, 0),)
2025-06-13 10:00:26,875 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 10:00:03
2025-06-13 10:00:26,955 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 10:00:26,961 [DEBUG][       Thread-250846][   transport.py][1871] : starting thread (client mode): 0x867b48e0
2025-06-13 10:00:26,961 [DEBUG][       Thread-250846][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 10:00:26,982 [DEBUG][       Thread-250846][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 10:00:26,982 [ INFO][       Thread-250846][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 10:00:26,985 [DEBUG][       Thread-250846][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 10:00:26,985 [DEBUG][       Thread-250846][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 10:00:26,985 [DEBUG][       Thread-250846][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 10:00:26,985 [DEBUG][       Thread-250846][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:00:26,985 [DEBUG][       Thread-250846][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:00:26,985 [DEBUG][       Thread-250846][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:00:26,985 [DEBUG][       Thread-250846][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:00:26,985 [DEBUG][       Thread-250846][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 10:00:26,985 [DEBUG][       Thread-250846][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 10:00:26,985 [DEBUG][       Thread-250846][   transport.py][1871] : client lang: <none>
2025-06-13 10:00:26,985 [DEBUG][       Thread-250846][   transport.py][1871] : server lang: <none>
2025-06-13 10:00:26,985 [DEBUG][       Thread-250846][   transport.py][1871] : kex follows: False
2025-06-13 10:00:26,985 [DEBUG][       Thread-250846][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 10:00:26,985 [DEBUG][       Thread-250846][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 10:00:26,985 [DEBUG][       Thread-250846][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 10:00:26,985 [DEBUG][       Thread-250846][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 10:00:26,985 [DEBUG][       Thread-250846][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 10:00:26,985 [DEBUG][       Thread-250846][   transport.py][1871] : Compression: none
2025-06-13 10:00:26,985 [DEBUG][       Thread-250846][   transport.py][1871] : === End of kex handshake ===
2025-06-13 10:00:26,998 [DEBUG][       Thread-250846][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 10:00:26,998 [DEBUG][       Thread-250846][   transport.py][1871] : Switch to new keys ...
2025-06-13 10:00:26,998 [DEBUG][       Thread-250846][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 10:00:26,999 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 10:00:26,999 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 10:00:27,000 [DEBUG][       Thread-250846][   transport.py][1871] : userauth is OK
2025-06-13 10:00:27,012 [ INFO][       Thread-250846][   transport.py][1871] : Authentication (password) successful!
2025-06-13 10:00:27,013 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 10:00:28,500 [DEBUG][       Thread-250846][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 10:00:28,500 [DEBUG][       Thread-250846][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 10:00:28,545 [DEBUG][       Thread-250846][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 10:00:28,545 [DEBUG][       Thread-250846][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 10:00:28,548 [DEBUG][       Thread-250846][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 10:00:28,559 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 10:00:28,559 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 10:00:28,561 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 10:00:28,563 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 10:00:28,567 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 10:00:28,568 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 10:00:28,568 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 10:00:28,569 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 10:00:28,569 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.333274 -999.00   +8.40  16.05     56   +0.20 1 1 1 1 1   887    0 8.75 20.85 ----- 16.5 16.1 49.4 20.9 12.8 -28.3 11.4 -29.0 10.3 -27.2 11.5 -26.7
2025-06-13 10:00:28,569 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 10:00:28,569 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 10:00:28,569 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.333274
2025-06-13 10:00:28,570 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 10:00:28,570 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 10:00:28,570 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 10:00:28,570 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 10:00:28,570 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 10:00:28,570 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T10:00:03', tmtdew=9.4, humidity=51.73, cloud=0.0, wind=12.25, temperature=8.44, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T07:59:54.874', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 10:00:28,571 [DEBUG][       Thread-250846][   transport.py][1871] : EOF in transport thread
2025-06-13 10:00:28,654 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 10:00:28,663 [DEBUG][       Thread-250849][   transport.py][1871] : starting thread (client mode): 0x863c8be0
2025-06-13 10:00:28,663 [DEBUG][       Thread-250849][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 10:00:28,681 [DEBUG][       Thread-250849][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 10:00:28,681 [ INFO][       Thread-250849][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 10:00:28,689 [DEBUG][       Thread-250849][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 10:00:28,689 [DEBUG][       Thread-250849][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 10:00:28,689 [DEBUG][       Thread-250849][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 10:00:28,689 [DEBUG][       Thread-250849][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:00:28,689 [DEBUG][       Thread-250849][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:00:28,689 [DEBUG][       Thread-250849][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:00:28,689 [DEBUG][       Thread-250849][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:00:28,689 [DEBUG][       Thread-250849][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 10:00:28,689 [DEBUG][       Thread-250849][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 10:00:28,689 [DEBUG][       Thread-250849][   transport.py][1871] : client lang: <none>
2025-06-13 10:00:28,689 [DEBUG][       Thread-250849][   transport.py][1871] : server lang: <none>
2025-06-13 10:00:28,689 [DEBUG][       Thread-250849][   transport.py][1871] : kex follows: False
2025-06-13 10:00:28,689 [DEBUG][       Thread-250849][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 10:00:28,689 [DEBUG][       Thread-250849][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 10:00:28,689 [DEBUG][       Thread-250849][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 10:00:28,689 [DEBUG][       Thread-250849][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 10:00:28,690 [DEBUG][       Thread-250849][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 10:00:28,690 [DEBUG][       Thread-250849][   transport.py][1871] : Compression: none
2025-06-13 10:00:28,690 [DEBUG][       Thread-250849][   transport.py][1871] : === End of kex handshake ===
2025-06-13 10:00:28,746 [DEBUG][       Thread-250849][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 10:00:28,747 [DEBUG][       Thread-250849][   transport.py][1871] : Switch to new keys ...
2025-06-13 10:00:28,747 [DEBUG][       Thread-250849][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 10:00:28,748 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 10:00:28,748 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 10:00:28,802 [DEBUG][       Thread-250849][   transport.py][1871] : userauth is OK
2025-06-13 10:00:28,803 [DEBUG][       Thread-250849][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 10:00:28,803 [DEBUG][       Thread-250849][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 10:00:28,803 [DEBUG][       Thread-250849][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 10:00:28,803 [DEBUG][       Thread-250849][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 10:00:28,825 [ INFO][       Thread-250849][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 10:00:28,825 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 10:00:28,826 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 10:00:29,872 [DEBUG][       Thread-250849][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 10:00:29,873 [DEBUG][       Thread-250849][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 10:00:29,926 [DEBUG][       Thread-250849][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 10:00:29,926 [DEBUG][       Thread-250849][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 10:00:29,935 [DEBUG][       Thread-250849][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 10:00:29,944 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 10:00:29,944 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 10:00:29,953 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 10:00:29,961 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 10:00:29,962 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 10:00:29,962 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 10:00:29,970 [DEBUG][       Thread-250849][   transport.py][1871] : EOF in transport thread
2025-06-13 10:00:33,499 [DEBUG][Thread-250851 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:00:39,972 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 10:00:39,973 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 10:00:39,973 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 10:00:39,975 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 10:00:40,445 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 10, 0, 34), 9.45, 51.57, 0.0, 10.96, 8.42, 0, 0, 0, 2, 0, 0),)
2025-06-13 10:00:40,445 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 10:00:34
2025-06-13 10:00:40,526 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 10:00:40,530 [DEBUG][       Thread-250852][   transport.py][1871] : starting thread (client mode): 0x84205240
2025-06-13 10:00:40,530 [DEBUG][       Thread-250852][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 10:00:40,551 [DEBUG][       Thread-250852][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 10:00:40,551 [ INFO][       Thread-250852][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 10:00:40,555 [DEBUG][       Thread-250852][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 10:00:40,555 [DEBUG][       Thread-250852][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 10:00:40,555 [DEBUG][       Thread-250852][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 10:00:40,555 [DEBUG][       Thread-250852][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:00:40,555 [DEBUG][       Thread-250852][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:00:40,555 [DEBUG][       Thread-250852][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:00:40,555 [DEBUG][       Thread-250852][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:00:40,555 [DEBUG][       Thread-250852][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 10:00:40,555 [DEBUG][       Thread-250852][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 10:00:40,555 [DEBUG][       Thread-250852][   transport.py][1871] : client lang: <none>
2025-06-13 10:00:40,555 [DEBUG][       Thread-250852][   transport.py][1871] : server lang: <none>
2025-06-13 10:00:40,555 [DEBUG][       Thread-250852][   transport.py][1871] : kex follows: False
2025-06-13 10:00:40,555 [DEBUG][       Thread-250852][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 10:00:40,555 [DEBUG][       Thread-250852][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 10:00:40,555 [DEBUG][       Thread-250852][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 10:00:40,555 [DEBUG][       Thread-250852][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 10:00:40,555 [DEBUG][       Thread-250852][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 10:00:40,555 [DEBUG][       Thread-250852][   transport.py][1871] : Compression: none
2025-06-13 10:00:40,555 [DEBUG][       Thread-250852][   transport.py][1871] : === End of kex handshake ===
2025-06-13 10:00:40,574 [DEBUG][       Thread-250852][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 10:00:40,575 [DEBUG][       Thread-250852][   transport.py][1871] : Switch to new keys ...
2025-06-13 10:00:40,575 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 10:00:40,575 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 10:00:40,576 [DEBUG][       Thread-250852][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 10:00:40,576 [DEBUG][       Thread-250852][   transport.py][1871] : userauth is OK
2025-06-13 10:00:40,589 [ INFO][       Thread-250852][   transport.py][1871] : Authentication (password) successful!
2025-06-13 10:00:40,590 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 10:00:41,157 [DEBUG][       Thread-250852][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 10:00:41,157 [DEBUG][       Thread-250852][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 10:00:41,201 [DEBUG][       Thread-250852][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 10:00:41,201 [DEBUG][       Thread-250852][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 10:00:41,204 [DEBUG][       Thread-250852][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 10:00:41,211 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 10:00:41,212 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 10:00:41,213 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 10:00:41,214 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 10:00:41,219 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 10:00:41,220 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 10:00:41,221 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 10:00:41,221 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 10:00:41,221 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.333274 -999.00   +8.40  16.05     56   +0.20 1 1 1 1 1   887    0 8.75 20.85 ----- 16.5 16.1 49.4 20.9 12.8 -28.3 11.4 -29.0 10.3 -27.2 11.5 -26.7
2025-06-13 10:00:41,221 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 10:00:41,221 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 10:00:41,222 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.333274
2025-06-13 10:00:41,222 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 10:00:41,222 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 10:00:41,222 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 10:00:41,223 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 10:00:41,223 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 10:00:41,223 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T10:00:34', tmtdew=9.45, humidity=51.57, cloud=0.0, wind=10.96, temperature=8.42, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T07:59:54.874', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 10:00:41,223 [DEBUG][       Thread-250852][   transport.py][1871] : EOF in transport thread
2025-06-13 10:00:41,307 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 10:00:41,317 [DEBUG][       Thread-250855][   transport.py][1871] : starting thread (client mode): 0x867ff100
2025-06-13 10:00:41,317 [DEBUG][       Thread-250855][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 10:00:41,332 [DEBUG][       Thread-250855][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 10:00:41,332 [ INFO][       Thread-250855][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 10:00:41,343 [DEBUG][       Thread-250855][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 10:00:41,343 [DEBUG][       Thread-250855][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 10:00:41,343 [DEBUG][       Thread-250855][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 10:00:41,343 [DEBUG][       Thread-250855][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:00:41,343 [DEBUG][       Thread-250855][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:00:41,344 [DEBUG][       Thread-250855][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:00:41,344 [DEBUG][       Thread-250855][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:00:41,344 [DEBUG][       Thread-250855][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 10:00:41,344 [DEBUG][       Thread-250855][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 10:00:41,344 [DEBUG][       Thread-250855][   transport.py][1871] : client lang: <none>
2025-06-13 10:00:41,344 [DEBUG][       Thread-250855][   transport.py][1871] : server lang: <none>
2025-06-13 10:00:41,344 [DEBUG][       Thread-250855][   transport.py][1871] : kex follows: False
2025-06-13 10:00:41,344 [DEBUG][       Thread-250855][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 10:00:41,344 [DEBUG][       Thread-250855][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 10:00:41,344 [DEBUG][       Thread-250855][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 10:00:41,344 [DEBUG][       Thread-250855][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 10:00:41,344 [DEBUG][       Thread-250855][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 10:00:41,344 [DEBUG][       Thread-250855][   transport.py][1871] : Compression: none
2025-06-13 10:00:41,344 [DEBUG][       Thread-250855][   transport.py][1871] : === End of kex handshake ===
2025-06-13 10:00:41,401 [DEBUG][       Thread-250855][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 10:00:41,401 [DEBUG][       Thread-250855][   transport.py][1871] : Switch to new keys ...
2025-06-13 10:00:41,401 [DEBUG][       Thread-250855][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 10:00:41,401 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 10:00:41,401 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 10:00:41,465 [DEBUG][       Thread-250855][   transport.py][1871] : userauth is OK
2025-06-13 10:00:41,465 [DEBUG][       Thread-250855][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 10:00:41,465 [DEBUG][       Thread-250855][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 10:00:41,465 [DEBUG][       Thread-250855][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 10:00:41,465 [DEBUG][       Thread-250855][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 10:00:41,480 [ INFO][       Thread-250855][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 10:00:41,480 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 10:00:41,480 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 10:00:42,515 [DEBUG][       Thread-250855][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 10:00:42,515 [DEBUG][       Thread-250855][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 10:00:42,520 [DEBUG][Thread-250857 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:00:42,563 [DEBUG][       Thread-250855][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 10:00:42,564 [DEBUG][       Thread-250855][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 10:00:42,572 [DEBUG][       Thread-250855][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 10:00:42,581 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 10:00:42,581 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 10:00:42,590 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 10:00:42,598 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 10:00:42,599 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 10:00:42,599 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 10:00:42,607 [DEBUG][       Thread-250855][   transport.py][1871] : EOF in transport thread
2025-06-13 10:00:43,275 [DEBUG][Thread-250858 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:00:44,319 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:00:44,320 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:00:51,548 [DEBUG][Thread-250859 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:00:52,608 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 10:00:52,608 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 10:00:52,608 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 10:00:52,608 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 10:00:53,085 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 10, 0, 34), 9.45, 51.57, 0.0, 10.96, 8.42, 0, 0, 0, 2, 0, 0),)
2025-06-13 10:00:53,085 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 10:00:34
2025-06-13 10:00:53,169 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 10:00:53,175 [DEBUG][       Thread-250860][   transport.py][1871] : starting thread (client mode): 0x84205900
2025-06-13 10:00:53,175 [DEBUG][       Thread-250860][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 10:00:53,198 [DEBUG][       Thread-250860][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 10:00:53,198 [ INFO][       Thread-250860][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 10:00:53,201 [DEBUG][       Thread-250860][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 10:00:53,201 [DEBUG][       Thread-250860][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 10:00:53,201 [DEBUG][       Thread-250860][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 10:00:53,201 [DEBUG][       Thread-250860][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:00:53,201 [DEBUG][       Thread-250860][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:00:53,201 [DEBUG][       Thread-250860][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:00:53,201 [DEBUG][       Thread-250860][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:00:53,201 [DEBUG][       Thread-250860][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 10:00:53,201 [DEBUG][       Thread-250860][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 10:00:53,201 [DEBUG][       Thread-250860][   transport.py][1871] : client lang: <none>
2025-06-13 10:00:53,201 [DEBUG][       Thread-250860][   transport.py][1871] : server lang: <none>
2025-06-13 10:00:53,201 [DEBUG][       Thread-250860][   transport.py][1871] : kex follows: False
2025-06-13 10:00:53,201 [DEBUG][       Thread-250860][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 10:00:53,201 [DEBUG][       Thread-250860][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 10:00:53,201 [DEBUG][       Thread-250860][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 10:00:53,201 [DEBUG][       Thread-250860][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 10:00:53,201 [DEBUG][       Thread-250860][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 10:00:53,201 [DEBUG][       Thread-250860][   transport.py][1871] : Compression: none
2025-06-13 10:00:53,201 [DEBUG][       Thread-250860][   transport.py][1871] : === End of kex handshake ===
2025-06-13 10:00:53,217 [DEBUG][       Thread-250860][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 10:00:53,217 [DEBUG][       Thread-250860][   transport.py][1871] : Switch to new keys ...
2025-06-13 10:00:53,217 [DEBUG][       Thread-250860][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 10:00:53,217 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 10:00:53,217 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 10:00:53,218 [DEBUG][       Thread-250860][   transport.py][1871] : userauth is OK
2025-06-13 10:00:53,242 [ INFO][       Thread-250860][   transport.py][1871] : Authentication (password) successful!
2025-06-13 10:00:53,242 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 10:00:53,872 [DEBUG][       Thread-250860][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 10:00:53,872 [DEBUG][       Thread-250860][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 10:00:53,917 [DEBUG][       Thread-250860][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 10:00:53,917 [DEBUG][       Thread-250860][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 10:00:53,919 [DEBUG][       Thread-250860][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 10:00:53,930 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 10:00:53,930 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 10:00:53,931 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 10:00:53,932 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 10:00:53,934 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 10:00:53,935 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 10:00:53,935 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 10:00:53,935 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 10:00:53,935 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.333274 -999.00   +8.40  16.05     56   +0.20 1 1 1 1 1   887    0 8.75 20.85 ----- 16.5 16.1 49.4 20.9 12.8 -28.3 11.4 -29.0 10.3 -27.2 11.5 -26.7
2025-06-13 10:00:53,935 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 10:00:53,935 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 10:00:53,935 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.333274
2025-06-13 10:00:53,935 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 10:00:53,935 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 10:00:53,935 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 10:00:53,935 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 10:00:53,935 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 10:00:53,936 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T10:00:34', tmtdew=9.45, humidity=51.57, cloud=0.0, wind=10.96, temperature=8.42, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T07:59:54.874', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 10:00:53,936 [DEBUG][       Thread-250860][   transport.py][1871] : EOF in transport thread
2025-06-13 10:00:54,009 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 10:00:54,018 [DEBUG][       Thread-250863][   transport.py][1871] : starting thread (client mode): 0x863c82b0
2025-06-13 10:00:54,018 [DEBUG][       Thread-250863][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 10:00:54,036 [DEBUG][       Thread-250863][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 10:00:54,036 [ INFO][       Thread-250863][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 10:00:54,046 [DEBUG][       Thread-250863][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 10:00:54,046 [DEBUG][       Thread-250863][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 10:00:54,046 [DEBUG][       Thread-250863][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 10:00:54,046 [DEBUG][       Thread-250863][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:00:54,046 [DEBUG][       Thread-250863][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:00:54,046 [DEBUG][       Thread-250863][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:00:54,046 [DEBUG][       Thread-250863][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:00:54,046 [DEBUG][       Thread-250863][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 10:00:54,046 [DEBUG][       Thread-250863][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 10:00:54,046 [DEBUG][       Thread-250863][   transport.py][1871] : client lang: <none>
2025-06-13 10:00:54,046 [DEBUG][       Thread-250863][   transport.py][1871] : server lang: <none>
2025-06-13 10:00:54,046 [DEBUG][       Thread-250863][   transport.py][1871] : kex follows: False
2025-06-13 10:00:54,046 [DEBUG][       Thread-250863][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 10:00:54,046 [DEBUG][       Thread-250863][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 10:00:54,046 [DEBUG][       Thread-250863][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 10:00:54,046 [DEBUG][       Thread-250863][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 10:00:54,046 [DEBUG][       Thread-250863][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 10:00:54,046 [DEBUG][       Thread-250863][   transport.py][1871] : Compression: none
2025-06-13 10:00:54,046 [DEBUG][       Thread-250863][   transport.py][1871] : === End of kex handshake ===
2025-06-13 10:00:54,105 [DEBUG][       Thread-250863][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 10:00:54,105 [DEBUG][       Thread-250863][   transport.py][1871] : Switch to new keys ...
2025-06-13 10:00:54,106 [DEBUG][       Thread-250863][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 10:00:54,106 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 10:00:54,106 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 10:00:54,162 [DEBUG][       Thread-250863][   transport.py][1871] : userauth is OK
2025-06-13 10:00:54,162 [DEBUG][       Thread-250863][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 10:00:54,162 [DEBUG][       Thread-250863][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 10:00:54,162 [DEBUG][       Thread-250863][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 10:00:54,162 [DEBUG][       Thread-250863][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 10:00:54,183 [ INFO][       Thread-250863][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 10:00:54,184 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 10:00:54,184 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 10:00:55,217 [DEBUG][       Thread-250863][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 10:00:55,217 [DEBUG][       Thread-250863][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 10:00:55,269 [DEBUG][       Thread-250863][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 10:00:55,269 [DEBUG][       Thread-250863][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 10:00:55,278 [DEBUG][       Thread-250863][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 10:00:55,287 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 10:00:55,287 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 10:00:55,296 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 10:00:55,306 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 10:00:55,307 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 10:00:55,307 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 10:00:55,315 [DEBUG][       Thread-250863][   transport.py][1871] : EOF in transport thread
2025-06-13 10:01:00,567 [DEBUG][Thread-250865 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:01:04,926 [DEBUG][Thread-250866 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:01:05,309 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 10:01:05,309 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 10:01:05,309 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 10:01:05,311 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 10:01:05,765 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 10, 0, 34), 9.45, 51.57, 0.0, 10.96, 8.42, 0, 0, 0, 2, 0, 0),)
2025-06-13 10:01:05,765 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 10:00:34
2025-06-13 10:01:05,847 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 10:01:05,851 [DEBUG][       Thread-250867][   transport.py][1871] : starting thread (client mode): 0x84207be0
2025-06-13 10:01:05,851 [DEBUG][       Thread-250867][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 10:01:05,871 [DEBUG][       Thread-250867][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 10:01:05,871 [ INFO][       Thread-250867][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 10:01:05,874 [DEBUG][       Thread-250867][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 10:01:05,874 [DEBUG][       Thread-250867][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 10:01:05,874 [DEBUG][       Thread-250867][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 10:01:05,874 [DEBUG][       Thread-250867][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:01:05,874 [DEBUG][       Thread-250867][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:01:05,874 [DEBUG][       Thread-250867][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:01:05,874 [DEBUG][       Thread-250867][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:01:05,874 [DEBUG][       Thread-250867][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 10:01:05,874 [DEBUG][       Thread-250867][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 10:01:05,875 [DEBUG][       Thread-250867][   transport.py][1871] : client lang: <none>
2025-06-13 10:01:05,875 [DEBUG][       Thread-250867][   transport.py][1871] : server lang: <none>
2025-06-13 10:01:05,875 [DEBUG][       Thread-250867][   transport.py][1871] : kex follows: False
2025-06-13 10:01:05,875 [DEBUG][       Thread-250867][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 10:01:05,875 [DEBUG][       Thread-250867][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 10:01:05,875 [DEBUG][       Thread-250867][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 10:01:05,875 [DEBUG][       Thread-250867][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 10:01:05,875 [DEBUG][       Thread-250867][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 10:01:05,875 [DEBUG][       Thread-250867][   transport.py][1871] : Compression: none
2025-06-13 10:01:05,875 [DEBUG][       Thread-250867][   transport.py][1871] : === End of kex handshake ===
2025-06-13 10:01:05,890 [DEBUG][       Thread-250867][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 10:01:05,891 [DEBUG][       Thread-250867][   transport.py][1871] : Switch to new keys ...
2025-06-13 10:01:05,891 [DEBUG][       Thread-250867][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 10:01:05,891 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 10:01:05,891 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 10:01:05,893 [DEBUG][       Thread-250867][   transport.py][1871] : userauth is OK
2025-06-13 10:01:05,906 [ INFO][       Thread-250867][   transport.py][1871] : Authentication (password) successful!
2025-06-13 10:01:05,907 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 10:01:06,516 [DEBUG][       Thread-250867][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 10:01:06,516 [DEBUG][       Thread-250867][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 10:01:06,557 [DEBUG][       Thread-250867][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 10:01:06,557 [DEBUG][       Thread-250867][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 10:01:06,560 [DEBUG][       Thread-250867][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 10:01:06,571 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 10:01:06,571 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 10:01:06,573 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 10:01:06,575 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 10:01:06,580 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 10:01:06,582 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 10:01:06,582 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 10:01:06,583 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 10:01:06,583 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.333968 -999.00   +8.40  22.13     56   +0.20 1 1 1 1 1   887    0 8.67 21.48 ----- 19.4 22.1 58.2 26.2 12.8 -28.0 11.5 -29.0 10.2 -27.8 11.5 -26.8
2025-06-13 10:01:06,583 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 10:01:06,583 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 10:01:06,583 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.333968
2025-06-13 10:01:06,584 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 10:01:06,584 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 10:01:06,584 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 10:01:06,584 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 10:01:06,584 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 10:01:06,584 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T10:00:34', tmtdew=9.45, humidity=51.57, cloud=0.0, wind=10.96, temperature=8.42, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T08:00:54.835', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 10:01:06,585 [DEBUG][       Thread-250867][   transport.py][1871] : EOF in transport thread
2025-06-13 10:01:06,667 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 10:01:06,678 [DEBUG][       Thread-250870][   transport.py][1871] : starting thread (client mode): 0x863a5b70
2025-06-13 10:01:06,678 [DEBUG][       Thread-250870][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 10:01:06,696 [DEBUG][       Thread-250870][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 10:01:06,696 [ INFO][       Thread-250870][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 10:01:06,703 [DEBUG][       Thread-250870][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 10:01:06,703 [DEBUG][       Thread-250870][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 10:01:06,703 [DEBUG][       Thread-250870][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 10:01:06,703 [DEBUG][       Thread-250870][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:01:06,704 [DEBUG][       Thread-250870][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:01:06,704 [DEBUG][       Thread-250870][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:01:06,704 [DEBUG][       Thread-250870][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:01:06,704 [DEBUG][       Thread-250870][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 10:01:06,704 [DEBUG][       Thread-250870][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 10:01:06,704 [DEBUG][       Thread-250870][   transport.py][1871] : client lang: <none>
2025-06-13 10:01:06,704 [DEBUG][       Thread-250870][   transport.py][1871] : server lang: <none>
2025-06-13 10:01:06,704 [DEBUG][       Thread-250870][   transport.py][1871] : kex follows: False
2025-06-13 10:01:06,704 [DEBUG][       Thread-250870][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 10:01:06,704 [DEBUG][       Thread-250870][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 10:01:06,704 [DEBUG][       Thread-250870][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 10:01:06,704 [DEBUG][       Thread-250870][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 10:01:06,704 [DEBUG][       Thread-250870][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 10:01:06,704 [DEBUG][       Thread-250870][   transport.py][1871] : Compression: none
2025-06-13 10:01:06,704 [DEBUG][       Thread-250870][   transport.py][1871] : === End of kex handshake ===
2025-06-13 10:01:06,766 [DEBUG][       Thread-250870][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 10:01:06,767 [DEBUG][       Thread-250870][   transport.py][1871] : Switch to new keys ...
2025-06-13 10:01:06,767 [DEBUG][       Thread-250870][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 10:01:06,767 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 10:01:06,768 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 10:01:06,822 [DEBUG][       Thread-250870][   transport.py][1871] : userauth is OK
2025-06-13 10:01:06,822 [DEBUG][       Thread-250870][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 10:01:06,823 [DEBUG][       Thread-250870][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 10:01:06,823 [DEBUG][       Thread-250870][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 10:01:06,823 [DEBUG][       Thread-250870][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 10:01:06,845 [ INFO][       Thread-250870][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 10:01:06,846 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 10:01:06,846 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 10:01:07,899 [DEBUG][       Thread-250870][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 10:01:07,900 [DEBUG][       Thread-250870][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 10:01:07,947 [DEBUG][       Thread-250870][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 10:01:07,948 [DEBUG][       Thread-250870][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 10:01:07,961 [DEBUG][       Thread-250870][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 10:01:07,969 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 10:01:07,969 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 10:01:07,977 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 10:01:07,985 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 10:01:07,985 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 10:01:07,985 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 10:01:07,993 [DEBUG][       Thread-250870][   transport.py][1871] : EOF in transport thread
2025-06-13 10:01:09,586 [DEBUG][Thread-250872 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:01:17,996 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 10:01:17,996 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 10:01:17,996 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 10:01:17,999 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 10:01:18,452 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 10, 1, 6), 9.47, 51.5, 0.0, 12.92, 8.41, 0, 0, 0, 2, 0, 0),)
2025-06-13 10:01:18,452 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 10:01:06
2025-06-13 10:01:18,532 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 10:01:18,537 [DEBUG][       Thread-250873][   transport.py][1871] : starting thread (client mode): 0x863bd900
2025-06-13 10:01:18,538 [DEBUG][       Thread-250873][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 10:01:18,558 [DEBUG][       Thread-250873][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 10:01:18,559 [ INFO][       Thread-250873][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 10:01:18,562 [DEBUG][       Thread-250873][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 10:01:18,562 [DEBUG][       Thread-250873][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 10:01:18,562 [DEBUG][       Thread-250873][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 10:01:18,562 [DEBUG][       Thread-250873][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:01:18,562 [DEBUG][       Thread-250873][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:01:18,562 [DEBUG][       Thread-250873][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:01:18,562 [DEBUG][       Thread-250873][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:01:18,562 [DEBUG][       Thread-250873][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 10:01:18,562 [DEBUG][       Thread-250873][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 10:01:18,562 [DEBUG][       Thread-250873][   transport.py][1871] : client lang: <none>
2025-06-13 10:01:18,562 [DEBUG][       Thread-250873][   transport.py][1871] : server lang: <none>
2025-06-13 10:01:18,562 [DEBUG][       Thread-250873][   transport.py][1871] : kex follows: False
2025-06-13 10:01:18,562 [DEBUG][       Thread-250873][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 10:01:18,562 [DEBUG][       Thread-250873][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 10:01:18,562 [DEBUG][       Thread-250873][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 10:01:18,562 [DEBUG][       Thread-250873][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 10:01:18,562 [DEBUG][       Thread-250873][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 10:01:18,562 [DEBUG][       Thread-250873][   transport.py][1871] : Compression: none
2025-06-13 10:01:18,562 [DEBUG][       Thread-250873][   transport.py][1871] : === End of kex handshake ===
2025-06-13 10:01:18,579 [DEBUG][       Thread-250873][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 10:01:18,579 [DEBUG][       Thread-250873][   transport.py][1871] : Switch to new keys ...
2025-06-13 10:01:18,580 [DEBUG][       Thread-250873][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 10:01:18,580 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 10:01:18,580 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 10:01:18,581 [DEBUG][       Thread-250873][   transport.py][1871] : userauth is OK
2025-06-13 10:01:18,606 [DEBUG][Thread-250875 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:01:18,606 [ INFO][       Thread-250873][   transport.py][1871] : Authentication (password) successful!
2025-06-13 10:01:18,607 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 10:01:19,250 [DEBUG][       Thread-250873][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 10:01:19,250 [DEBUG][       Thread-250873][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 10:01:19,293 [DEBUG][       Thread-250873][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 10:01:19,293 [DEBUG][       Thread-250873][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 10:01:19,295 [DEBUG][       Thread-250873][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 10:01:19,308 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 10:01:19,309 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 10:01:19,310 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 10:01:19,312 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 10:01:19,317 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 10:01:19,319 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 10:01:19,319 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 10:01:19,319 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 10:01:19,320 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.333968 -999.00   +8.40  22.13     56   +0.20 1 1 1 1 1   887    0 8.67 21.48 ----- 19.4 22.1 58.2 26.2 12.8 -28.0 11.5 -29.0 10.2 -27.8 11.5 -26.8
2025-06-13 10:01:19,320 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 10:01:19,320 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 10:01:19,320 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.333968
2025-06-13 10:01:19,320 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 10:01:19,321 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 10:01:19,321 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 10:01:19,321 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 10:01:19,321 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 10:01:19,321 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T10:01:06', tmtdew=9.47, humidity=51.5, cloud=0.0, wind=12.92, temperature=8.41, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T08:00:54.835', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 10:01:19,322 [DEBUG][       Thread-250873][   transport.py][1871] : EOF in transport thread
2025-06-13 10:01:19,407 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 10:01:19,416 [DEBUG][       Thread-250877][   transport.py][1871] : starting thread (client mode): 0x8636ada0
2025-06-13 10:01:19,416 [DEBUG][       Thread-250877][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 10:01:19,431 [DEBUG][       Thread-250877][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 10:01:19,431 [ INFO][       Thread-250877][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 10:01:19,438 [DEBUG][       Thread-250877][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 10:01:19,439 [DEBUG][       Thread-250877][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 10:01:19,439 [DEBUG][       Thread-250877][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 10:01:19,439 [DEBUG][       Thread-250877][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:01:19,439 [DEBUG][       Thread-250877][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:01:19,439 [DEBUG][       Thread-250877][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:01:19,439 [DEBUG][       Thread-250877][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:01:19,439 [DEBUG][       Thread-250877][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 10:01:19,439 [DEBUG][       Thread-250877][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 10:01:19,439 [DEBUG][       Thread-250877][   transport.py][1871] : client lang: <none>
2025-06-13 10:01:19,439 [DEBUG][       Thread-250877][   transport.py][1871] : server lang: <none>
2025-06-13 10:01:19,439 [DEBUG][       Thread-250877][   transport.py][1871] : kex follows: False
2025-06-13 10:01:19,439 [DEBUG][       Thread-250877][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 10:01:19,439 [DEBUG][       Thread-250877][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 10:01:19,439 [DEBUG][       Thread-250877][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 10:01:19,439 [DEBUG][       Thread-250877][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 10:01:19,439 [DEBUG][       Thread-250877][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 10:01:19,439 [DEBUG][       Thread-250877][   transport.py][1871] : Compression: none
2025-06-13 10:01:19,439 [DEBUG][       Thread-250877][   transport.py][1871] : === End of kex handshake ===
2025-06-13 10:01:19,500 [DEBUG][       Thread-250877][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 10:01:19,500 [DEBUG][       Thread-250877][   transport.py][1871] : Switch to new keys ...
2025-06-13 10:01:19,500 [DEBUG][       Thread-250877][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 10:01:19,501 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 10:01:19,501 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 10:01:19,560 [DEBUG][       Thread-250877][   transport.py][1871] : userauth is OK
2025-06-13 10:01:19,561 [DEBUG][       Thread-250877][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 10:01:19,561 [DEBUG][       Thread-250877][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 10:01:19,561 [DEBUG][       Thread-250877][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 10:01:19,561 [DEBUG][       Thread-250877][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 10:01:19,588 [ INFO][       Thread-250877][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 10:01:19,588 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 10:01:19,589 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 10:01:20,599 [DEBUG][       Thread-250877][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 10:01:20,599 [DEBUG][       Thread-250877][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 10:01:20,647 [DEBUG][       Thread-250877][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 10:01:20,648 [DEBUG][       Thread-250877][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 10:01:20,658 [DEBUG][       Thread-250877][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 10:01:20,666 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 10:01:20,666 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 10:01:20,675 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 10:01:20,683 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 10:01:20,683 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 10:01:20,684 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 10:01:20,695 [DEBUG][       Thread-250877][   transport.py][1871] : EOF in transport thread
2025-06-13 10:01:22,716 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:01:22,717 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:01:27,626 [DEBUG][Thread-250879 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:01:30,688 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 10:01:30,688 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 10:01:30,688 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 10:01:30,689 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 10:01:31,162 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 10, 1, 6), 9.47, 51.5, 0.0, 12.92, 8.41, 0, 0, 0, 2, 0, 0),)
2025-06-13 10:01:31,162 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 10:01:06
2025-06-13 10:01:31,245 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 10:01:31,249 [DEBUG][       Thread-250880][   transport.py][1871] : starting thread (client mode): 0x84206cb0
2025-06-13 10:01:31,249 [DEBUG][       Thread-250880][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 10:01:31,271 [DEBUG][       Thread-250880][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 10:01:31,271 [ INFO][       Thread-250880][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 10:01:31,274 [DEBUG][       Thread-250880][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 10:01:31,274 [DEBUG][       Thread-250880][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 10:01:31,274 [DEBUG][       Thread-250880][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 10:01:31,274 [DEBUG][       Thread-250880][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:01:31,274 [DEBUG][       Thread-250880][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:01:31,274 [DEBUG][       Thread-250880][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:01:31,274 [DEBUG][       Thread-250880][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:01:31,274 [DEBUG][       Thread-250880][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 10:01:31,274 [DEBUG][       Thread-250880][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 10:01:31,274 [DEBUG][       Thread-250880][   transport.py][1871] : client lang: <none>
2025-06-13 10:01:31,274 [DEBUG][       Thread-250880][   transport.py][1871] : server lang: <none>
2025-06-13 10:01:31,274 [DEBUG][       Thread-250880][   transport.py][1871] : kex follows: False
2025-06-13 10:01:31,274 [DEBUG][       Thread-250880][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 10:01:31,274 [DEBUG][       Thread-250880][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 10:01:31,274 [DEBUG][       Thread-250880][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 10:01:31,274 [DEBUG][       Thread-250880][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 10:01:31,274 [DEBUG][       Thread-250880][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 10:01:31,274 [DEBUG][       Thread-250880][   transport.py][1871] : Compression: none
2025-06-13 10:01:31,274 [DEBUG][       Thread-250880][   transport.py][1871] : === End of kex handshake ===
2025-06-13 10:01:31,289 [DEBUG][       Thread-250880][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 10:01:31,289 [DEBUG][       Thread-250880][   transport.py][1871] : Switch to new keys ...
2025-06-13 10:01:31,289 [DEBUG][       Thread-250880][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 10:01:31,289 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 10:01:31,289 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 10:01:31,289 [DEBUG][       Thread-250880][   transport.py][1871] : userauth is OK
2025-06-13 10:01:31,303 [ INFO][       Thread-250880][   transport.py][1871] : Authentication (password) successful!
2025-06-13 10:01:31,303 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 10:01:31,973 [DEBUG][       Thread-250880][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 10:01:31,973 [DEBUG][       Thread-250880][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 10:01:32,016 [DEBUG][       Thread-250880][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 10:01:32,016 [DEBUG][       Thread-250880][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 10:01:32,019 [DEBUG][       Thread-250880][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 10:01:32,030 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 10:01:32,030 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 10:01:32,031 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 10:01:32,032 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 10:01:32,034 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 10:01:32,035 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 10:01:32,035 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 10:01:32,035 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 10:01:32,035 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.333968 -999.00   +8.40  22.13     56   +0.20 1 1 1 1 1   887    0 8.67 21.48 ----- 19.4 22.1 58.2 26.2 12.8 -28.0 11.5 -29.0 10.2 -27.8 11.5 -26.8
2025-06-13 10:01:32,035 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 10:01:32,035 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 10:01:32,035 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.333968
2025-06-13 10:01:32,036 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 10:01:32,036 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 10:01:32,036 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 10:01:32,036 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 10:01:32,036 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 10:01:32,036 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T10:01:06', tmtdew=9.47, humidity=51.5, cloud=0.0, wind=12.92, temperature=8.41, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T08:00:54.835', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 10:01:32,037 [DEBUG][       Thread-250880][   transport.py][1871] : EOF in transport thread
2025-06-13 10:01:32,110 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 10:01:32,122 [DEBUG][       Thread-250883][   transport.py][1871] : starting thread (client mode): 0x863efbe0
2025-06-13 10:01:32,122 [DEBUG][       Thread-250883][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 10:01:32,137 [DEBUG][       Thread-250883][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 10:01:32,137 [ INFO][       Thread-250883][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 10:01:32,145 [DEBUG][       Thread-250883][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 10:01:32,145 [DEBUG][       Thread-250883][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 10:01:32,145 [DEBUG][       Thread-250883][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 10:01:32,145 [DEBUG][       Thread-250883][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:01:32,145 [DEBUG][       Thread-250883][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:01:32,145 [DEBUG][       Thread-250883][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:01:32,145 [DEBUG][       Thread-250883][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:01:32,145 [DEBUG][       Thread-250883][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 10:01:32,145 [DEBUG][       Thread-250883][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 10:01:32,145 [DEBUG][       Thread-250883][   transport.py][1871] : client lang: <none>
2025-06-13 10:01:32,145 [DEBUG][       Thread-250883][   transport.py][1871] : server lang: <none>
2025-06-13 10:01:32,145 [DEBUG][       Thread-250883][   transport.py][1871] : kex follows: False
2025-06-13 10:01:32,145 [DEBUG][       Thread-250883][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 10:01:32,145 [DEBUG][       Thread-250883][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 10:01:32,145 [DEBUG][       Thread-250883][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 10:01:32,145 [DEBUG][       Thread-250883][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 10:01:32,145 [DEBUG][       Thread-250883][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 10:01:32,145 [DEBUG][       Thread-250883][   transport.py][1871] : Compression: none
2025-06-13 10:01:32,145 [DEBUG][       Thread-250883][   transport.py][1871] : === End of kex handshake ===
2025-06-13 10:01:32,208 [DEBUG][       Thread-250883][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 10:01:32,208 [DEBUG][       Thread-250883][   transport.py][1871] : Switch to new keys ...
2025-06-13 10:01:32,208 [DEBUG][       Thread-250883][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 10:01:32,208 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 10:01:32,208 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 10:01:32,269 [DEBUG][       Thread-250883][   transport.py][1871] : userauth is OK
2025-06-13 10:01:32,269 [DEBUG][       Thread-250883][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 10:01:32,269 [DEBUG][       Thread-250883][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 10:01:32,269 [DEBUG][       Thread-250883][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 10:01:32,269 [DEBUG][       Thread-250883][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 10:01:32,283 [ INFO][       Thread-250883][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 10:01:32,284 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 10:01:32,284 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 10:01:33,336 [DEBUG][       Thread-250883][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 10:01:33,336 [DEBUG][       Thread-250883][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 10:01:33,384 [DEBUG][       Thread-250883][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 10:01:33,384 [DEBUG][       Thread-250883][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 10:01:33,394 [DEBUG][       Thread-250883][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 10:01:33,402 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 10:01:33,402 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 10:01:33,414 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 10:01:33,427 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 10:01:33,427 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 10:01:33,428 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 10:01:33,440 [DEBUG][       Thread-250883][   transport.py][1871] : EOF in transport thread
2025-06-13 10:01:36,665 [DEBUG][Thread-250885 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:01:43,438 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 10:01:43,438 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 10:01:43,439 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 10:01:43,441 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 10:01:43,910 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 10, 1, 38), 9.39, 51.54, 0.0, 15.12, 8.42, 0, 0, 0, 2, 0, 0),)
2025-06-13 10:01:43,910 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 10:01:38
2025-06-13 10:01:43,991 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 10:01:43,999 [DEBUG][       Thread-250886][   transport.py][1871] : starting thread (client mode): 0x863bd420
2025-06-13 10:01:43,999 [DEBUG][       Thread-250886][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 10:01:44,027 [DEBUG][       Thread-250886][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 10:01:44,027 [ INFO][       Thread-250886][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 10:01:44,030 [DEBUG][       Thread-250886][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 10:01:44,031 [DEBUG][       Thread-250886][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 10:01:44,031 [DEBUG][       Thread-250886][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 10:01:44,031 [DEBUG][       Thread-250886][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:01:44,031 [DEBUG][       Thread-250886][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:01:44,031 [DEBUG][       Thread-250886][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:01:44,031 [DEBUG][       Thread-250886][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:01:44,031 [DEBUG][       Thread-250886][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 10:01:44,031 [DEBUG][       Thread-250886][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 10:01:44,031 [DEBUG][       Thread-250886][   transport.py][1871] : client lang: <none>
2025-06-13 10:01:44,031 [DEBUG][       Thread-250886][   transport.py][1871] : server lang: <none>
2025-06-13 10:01:44,031 [DEBUG][       Thread-250886][   transport.py][1871] : kex follows: False
2025-06-13 10:01:44,031 [DEBUG][       Thread-250886][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 10:01:44,031 [DEBUG][       Thread-250886][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 10:01:44,031 [DEBUG][       Thread-250886][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 10:01:44,031 [DEBUG][       Thread-250886][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 10:01:44,031 [DEBUG][       Thread-250886][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 10:01:44,031 [DEBUG][       Thread-250886][   transport.py][1871] : Compression: none
2025-06-13 10:01:44,031 [DEBUG][       Thread-250886][   transport.py][1871] : === End of kex handshake ===
2025-06-13 10:01:44,049 [DEBUG][       Thread-250886][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 10:01:44,050 [DEBUG][       Thread-250886][   transport.py][1871] : Switch to new keys ...
2025-06-13 10:01:44,050 [DEBUG][       Thread-250886][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 10:01:44,051 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 10:01:44,051 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 10:01:44,052 [DEBUG][       Thread-250886][   transport.py][1871] : userauth is OK
2025-06-13 10:01:44,066 [ INFO][       Thread-250886][   transport.py][1871] : Authentication (password) successful!
2025-06-13 10:01:44,066 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 10:01:44,368 [DEBUG][Thread-250888 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:01:44,712 [DEBUG][       Thread-250886][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 10:01:44,712 [DEBUG][       Thread-250886][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 10:01:44,753 [DEBUG][       Thread-250886][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 10:01:44,753 [DEBUG][       Thread-250886][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 10:01:44,756 [DEBUG][       Thread-250886][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 10:01:44,769 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 10:01:44,769 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 10:01:44,771 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 10:01:44,772 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 10:01:44,777 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 10:01:44,779 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 10:01:44,779 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 10:01:44,780 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 10:01:44,780 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.334315 -999.00   +8.40  16.47     55   +0.00 1 1 1 1 1   887    0 8.77 19.69 ----- 16.3 16.5 41.8 20.4 12.9 -28.5 11.5 -29.3 10.3 -28.0 11.6 -26.6
2025-06-13 10:01:44,780 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 10:01:44,780 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 10:01:44,780 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.334315
2025-06-13 10:01:44,780 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 10:01:44,781 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 10:01:44,781 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 10:01:44,781 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 10:01:44,781 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 10:01:44,781 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T10:01:38', tmtdew=9.39, humidity=51.54, cloud=0.0, wind=15.12, temperature=8.42, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T08:01:24.816', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 10:01:44,782 [DEBUG][       Thread-250886][   transport.py][1871] : EOF in transport thread
2025-06-13 10:01:44,864 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 10:01:44,875 [DEBUG][       Thread-250890][   transport.py][1871] : starting thread (client mode): 0x867ff010
2025-06-13 10:01:44,875 [DEBUG][       Thread-250890][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 10:01:44,890 [DEBUG][       Thread-250890][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 10:01:44,890 [ INFO][       Thread-250890][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 10:01:44,898 [DEBUG][       Thread-250890][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 10:01:44,898 [DEBUG][       Thread-250890][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 10:01:44,898 [DEBUG][       Thread-250890][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 10:01:44,898 [DEBUG][       Thread-250890][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:01:44,898 [DEBUG][       Thread-250890][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:01:44,898 [DEBUG][       Thread-250890][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:01:44,898 [DEBUG][       Thread-250890][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:01:44,898 [DEBUG][       Thread-250890][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 10:01:44,898 [DEBUG][       Thread-250890][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 10:01:44,898 [DEBUG][       Thread-250890][   transport.py][1871] : client lang: <none>
2025-06-13 10:01:44,898 [DEBUG][       Thread-250890][   transport.py][1871] : server lang: <none>
2025-06-13 10:01:44,898 [DEBUG][       Thread-250890][   transport.py][1871] : kex follows: False
2025-06-13 10:01:44,898 [DEBUG][       Thread-250890][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 10:01:44,898 [DEBUG][       Thread-250890][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 10:01:44,898 [DEBUG][       Thread-250890][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 10:01:44,899 [DEBUG][       Thread-250890][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 10:01:44,899 [DEBUG][       Thread-250890][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 10:01:44,899 [DEBUG][       Thread-250890][   transport.py][1871] : Compression: none
2025-06-13 10:01:44,899 [DEBUG][       Thread-250890][   transport.py][1871] : === End of kex handshake ===
2025-06-13 10:01:44,954 [DEBUG][       Thread-250890][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 10:01:44,954 [DEBUG][       Thread-250890][   transport.py][1871] : Switch to new keys ...
2025-06-13 10:01:44,955 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 10:01:44,955 [DEBUG][       Thread-250890][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 10:01:44,956 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 10:01:45,010 [DEBUG][       Thread-250890][   transport.py][1871] : userauth is OK
2025-06-13 10:01:45,011 [DEBUG][       Thread-250890][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 10:01:45,011 [DEBUG][       Thread-250890][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 10:01:45,011 [DEBUG][       Thread-250890][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 10:01:45,011 [DEBUG][       Thread-250890][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 10:01:45,030 [ INFO][       Thread-250890][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 10:01:45,030 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 10:01:45,030 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 10:01:45,447 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:01:45,448 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:01:45,682 [DEBUG][Thread-250892 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:01:46,076 [DEBUG][       Thread-250890][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 10:01:46,077 [DEBUG][       Thread-250890][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 10:01:46,128 [DEBUG][       Thread-250890][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 10:01:46,128 [DEBUG][       Thread-250890][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 10:01:46,142 [DEBUG][       Thread-250890][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 10:01:46,151 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 10:01:46,151 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 10:01:46,161 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 10:01:46,172 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 10:01:46,172 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 10:01:46,172 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 10:01:46,181 [DEBUG][       Thread-250890][   transport.py][1871] : EOF in transport thread
2025-06-13 10:01:54,720 [DEBUG][Thread-250893 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:01:56,183 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 10:01:56,183 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 10:01:56,183 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 10:01:56,185 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 10:01:56,645 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 10, 1, 38), 9.39, 51.54, 0.0, 15.12, 8.42, 0, 0, 0, 2, 0, 0),)
2025-06-13 10:01:56,645 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 10:01:38
2025-06-13 10:01:56,727 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 10:01:56,731 [DEBUG][       Thread-250894][   transport.py][1871] : starting thread (client mode): 0x84204640
2025-06-13 10:01:56,731 [DEBUG][       Thread-250894][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 10:01:56,752 [DEBUG][       Thread-250894][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 10:01:56,752 [ INFO][       Thread-250894][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 10:01:56,755 [DEBUG][       Thread-250894][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 10:01:56,756 [DEBUG][       Thread-250894][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 10:01:56,756 [DEBUG][       Thread-250894][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 10:01:56,756 [DEBUG][       Thread-250894][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:01:56,756 [DEBUG][       Thread-250894][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:01:56,756 [DEBUG][       Thread-250894][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:01:56,756 [DEBUG][       Thread-250894][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:01:56,756 [DEBUG][       Thread-250894][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 10:01:56,756 [DEBUG][       Thread-250894][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 10:01:56,756 [DEBUG][       Thread-250894][   transport.py][1871] : client lang: <none>
2025-06-13 10:01:56,756 [DEBUG][       Thread-250894][   transport.py][1871] : server lang: <none>
2025-06-13 10:01:56,756 [DEBUG][       Thread-250894][   transport.py][1871] : kex follows: False
2025-06-13 10:01:56,756 [DEBUG][       Thread-250894][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 10:01:56,756 [DEBUG][       Thread-250894][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 10:01:56,756 [DEBUG][       Thread-250894][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 10:01:56,756 [DEBUG][       Thread-250894][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 10:01:56,756 [DEBUG][       Thread-250894][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 10:01:56,756 [DEBUG][       Thread-250894][   transport.py][1871] : Compression: none
2025-06-13 10:01:56,756 [DEBUG][       Thread-250894][   transport.py][1871] : === End of kex handshake ===
2025-06-13 10:01:56,772 [DEBUG][       Thread-250894][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 10:01:56,773 [DEBUG][       Thread-250894][   transport.py][1871] : Switch to new keys ...
2025-06-13 10:01:56,773 [DEBUG][       Thread-250894][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 10:01:56,773 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 10:01:56,774 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 10:01:56,775 [DEBUG][       Thread-250894][   transport.py][1871] : userauth is OK
2025-06-13 10:01:56,788 [ INFO][       Thread-250894][   transport.py][1871] : Authentication (password) successful!
2025-06-13 10:01:56,788 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 10:01:57,448 [DEBUG][       Thread-250894][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 10:01:57,449 [DEBUG][       Thread-250894][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 10:01:57,493 [DEBUG][       Thread-250894][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 10:01:57,493 [DEBUG][       Thread-250894][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 10:01:57,496 [DEBUG][       Thread-250894][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 10:01:57,508 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 10:01:57,508 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 10:01:57,510 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 10:01:57,512 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 10:01:57,517 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 10:01:57,518 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 10:01:57,519 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 10:01:57,519 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 10:01:57,519 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.334315 -999.00   +8.40  16.47     55   +0.00 1 1 1 1 1   887    0 8.77 19.69 ----- 16.3 16.5 41.8 20.4 12.9 -28.5 11.5 -29.3 10.3 -28.0 11.6 -26.6
2025-06-13 10:01:57,519 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 10:01:57,520 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 10:01:57,520 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.334315
2025-06-13 10:01:57,520 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 10:01:57,520 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 10:01:57,521 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 10:01:57,521 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 10:01:57,521 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 10:01:57,521 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T10:01:38', tmtdew=9.39, humidity=51.54, cloud=0.0, wind=15.12, temperature=8.42, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T08:01:24.816', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 10:01:57,521 [DEBUG][       Thread-250894][   transport.py][1871] : EOF in transport thread
2025-06-13 10:01:57,604 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 10:02:03,739 [DEBUG][Thread-250897 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:02:04,973 [DEBUG][Thread-250898 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:02:12,758 [DEBUG][Thread-250899 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:02:21,779 [DEBUG][Thread-250900 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:02:22,857 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:02:22,859 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:02:30,798 [DEBUG][Thread-250901 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:02:39,817 [DEBUG][Thread-250902 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:02:45,524 [DEBUG][Thread-250903 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:02:46,579 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:02:46,579 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:02:48,834 [DEBUG][Thread-250904 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:02:57,853 [DEBUG][Thread-250905 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:03:05,026 [DEBUG][Thread-250906 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:03:06,872 [DEBUG][Thread-250907 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:03:15,897 [DEBUG][Thread-250908 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:03:23,018 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:03:23,019 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:03:24,911 [DEBUG][Thread-250909 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:03:33,929 [DEBUG][Thread-250910 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:03:42,949 [DEBUG][Thread-250911 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:03:46,644 [DEBUG][Thread-250912 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:03:47,696 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:03:47,697 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:03:51,969 [DEBUG][Thread-250913 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:04:00,991 [DEBUG][Thread-250914 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:04:05,074 [DEBUG][Thread-250915 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:04:07,060 [WARNING][ poll_weather_worker][      driver.py][ 286] : Unable to open ssh connection for writing weather state to io.saao.ac.za: [Errno 110] Connection timed out
2025-06-13 10:04:10,009 [DEBUG][Thread-250916 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:04:17,068 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 10:04:17,068 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 10:04:17,068 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 10:04:17,071 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 10:04:17,544 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 10, 3, 45), 9.36, 51.9, 0.0, 17.79, 8.51, 0, 0, 0, 2, 0, 0),)
2025-06-13 10:04:17,544 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 10:03:45
2025-06-13 10:04:17,626 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 10:04:17,633 [DEBUG][       Thread-250917][   transport.py][1871] : starting thread (client mode): 0x867b5a20
2025-06-13 10:04:17,633 [DEBUG][       Thread-250917][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 10:04:17,655 [DEBUG][       Thread-250917][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 10:04:17,655 [ INFO][       Thread-250917][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 10:04:17,656 [DEBUG][       Thread-250917][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 10:04:17,657 [DEBUG][       Thread-250917][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 10:04:17,657 [DEBUG][       Thread-250917][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 10:04:17,657 [DEBUG][       Thread-250917][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:04:17,657 [DEBUG][       Thread-250917][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:04:17,657 [DEBUG][       Thread-250917][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:04:17,657 [DEBUG][       Thread-250917][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:04:17,657 [DEBUG][       Thread-250917][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 10:04:17,657 [DEBUG][       Thread-250917][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 10:04:17,657 [DEBUG][       Thread-250917][   transport.py][1871] : client lang: <none>
2025-06-13 10:04:17,657 [DEBUG][       Thread-250917][   transport.py][1871] : server lang: <none>
2025-06-13 10:04:17,657 [DEBUG][       Thread-250917][   transport.py][1871] : kex follows: False
2025-06-13 10:04:17,657 [DEBUG][       Thread-250917][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 10:04:17,657 [DEBUG][       Thread-250917][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 10:04:17,657 [DEBUG][       Thread-250917][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 10:04:17,657 [DEBUG][       Thread-250917][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 10:04:17,657 [DEBUG][       Thread-250917][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 10:04:17,657 [DEBUG][       Thread-250917][   transport.py][1871] : Compression: none
2025-06-13 10:04:17,657 [DEBUG][       Thread-250917][   transport.py][1871] : === End of kex handshake ===
2025-06-13 10:04:17,674 [DEBUG][       Thread-250917][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 10:04:17,675 [DEBUG][       Thread-250917][   transport.py][1871] : Switch to new keys ...
2025-06-13 10:04:17,675 [DEBUG][       Thread-250917][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 10:04:17,676 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 10:04:17,676 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 10:04:17,677 [DEBUG][       Thread-250917][   transport.py][1871] : userauth is OK
2025-06-13 10:04:17,701 [ INFO][       Thread-250917][   transport.py][1871] : Authentication (password) successful!
2025-06-13 10:04:17,701 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 10:04:18,498 [DEBUG][       Thread-250917][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 10:04:18,498 [DEBUG][       Thread-250917][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 10:04:18,540 [DEBUG][       Thread-250917][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 10:04:18,540 [DEBUG][       Thread-250917][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 10:04:18,543 [DEBUG][       Thread-250917][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 10:04:18,556 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 10:04:18,557 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 10:04:18,558 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 10:04:18,558 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 10:04:18,561 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 10:04:18,562 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 10:04:18,562 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 10:04:18,562 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 10:04:18,562 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.335704 -999.00   +8.50  17.97     55   +0.20 1 1 1 1 1   887    0 8.90 20.54 ----- 18.7 18.0 50.8 23.8 12.9 -28.1 11.7 -29.6 10.4 -28.3 11.7 -26.5
2025-06-13 10:04:18,562 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 10:04:18,562 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 10:04:18,562 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.335704
2025-06-13 10:04:18,562 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 10:04:18,562 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 10:04:18,562 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 10:04:18,562 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 10:04:18,562 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 10:04:18,562 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T10:03:45', tmtdew=9.36, humidity=51.9, cloud=0.0, wind=17.79, temperature=8.51, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T08:03:24.826', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 10:04:18,563 [DEBUG][       Thread-250917][   transport.py][1871] : EOF in transport thread
2025-06-13 10:04:18,637 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 10:04:18,648 [DEBUG][       Thread-250920][   transport.py][1871] : starting thread (client mode): 0x8636ab60
2025-06-13 10:04:18,648 [DEBUG][       Thread-250920][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 10:04:18,663 [DEBUG][       Thread-250920][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 10:04:18,663 [ INFO][       Thread-250920][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 10:04:18,671 [DEBUG][       Thread-250920][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 10:04:18,671 [DEBUG][       Thread-250920][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 10:04:18,671 [DEBUG][       Thread-250920][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 10:04:18,671 [DEBUG][       Thread-250920][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:04:18,671 [DEBUG][       Thread-250920][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:04:18,671 [DEBUG][       Thread-250920][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:04:18,671 [DEBUG][       Thread-250920][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:04:18,671 [DEBUG][       Thread-250920][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 10:04:18,671 [DEBUG][       Thread-250920][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 10:04:18,671 [DEBUG][       Thread-250920][   transport.py][1871] : client lang: <none>
2025-06-13 10:04:18,671 [DEBUG][       Thread-250920][   transport.py][1871] : server lang: <none>
2025-06-13 10:04:18,671 [DEBUG][       Thread-250920][   transport.py][1871] : kex follows: False
2025-06-13 10:04:18,671 [DEBUG][       Thread-250920][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 10:04:18,671 [DEBUG][       Thread-250920][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 10:04:18,671 [DEBUG][       Thread-250920][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 10:04:18,671 [DEBUG][       Thread-250920][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 10:04:18,671 [DEBUG][       Thread-250920][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 10:04:18,671 [DEBUG][       Thread-250920][   transport.py][1871] : Compression: none
2025-06-13 10:04:18,671 [DEBUG][       Thread-250920][   transport.py][1871] : === End of kex handshake ===
2025-06-13 10:04:18,728 [DEBUG][       Thread-250920][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 10:04:18,729 [DEBUG][       Thread-250920][   transport.py][1871] : Switch to new keys ...
2025-06-13 10:04:18,729 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 10:04:18,729 [DEBUG][       Thread-250920][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 10:04:18,729 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 10:04:18,795 [DEBUG][       Thread-250920][   transport.py][1871] : userauth is OK
2025-06-13 10:04:18,796 [DEBUG][       Thread-250920][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 10:04:18,796 [DEBUG][       Thread-250920][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 10:04:18,796 [DEBUG][       Thread-250920][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 10:04:18,796 [DEBUG][       Thread-250920][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 10:04:18,809 [ INFO][       Thread-250920][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 10:04:18,809 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 10:04:18,809 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 10:04:19,026 [DEBUG][Thread-250922 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:04:19,793 [DEBUG][       Thread-250920][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 10:04:19,793 [DEBUG][       Thread-250920][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 10:04:19,845 [DEBUG][       Thread-250920][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 10:04:19,845 [DEBUG][       Thread-250920][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 10:04:19,856 [DEBUG][       Thread-250920][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 10:04:19,867 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 10:04:19,868 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 10:04:19,879 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 10:04:19,888 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 10:04:19,888 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 10:04:19,888 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 10:04:19,901 [DEBUG][       Thread-250920][   transport.py][1871] : EOF in transport thread
2025-06-13 10:04:23,156 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:04:23,158 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:04:28,050 [DEBUG][Thread-250923 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:04:29,899 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 10:04:29,899 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 10:04:29,899 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 10:04:29,901 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 10:04:30,386 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 10, 4, 17), 9.39, 51.55, 0.0, 15.16, 8.54, 0, 0, 0, 2, 0, 0),)
2025-06-13 10:04:30,386 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 10:04:17
2025-06-13 10:04:30,469 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 10:04:30,473 [DEBUG][       Thread-250924][   transport.py][1871] : starting thread (client mode): 0x863bdd80
2025-06-13 10:04:30,473 [DEBUG][       Thread-250924][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 10:04:30,493 [DEBUG][       Thread-250924][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 10:04:30,493 [ INFO][       Thread-250924][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 10:04:30,496 [DEBUG][       Thread-250924][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 10:04:30,496 [DEBUG][       Thread-250924][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 10:04:30,496 [DEBUG][       Thread-250924][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 10:04:30,496 [DEBUG][       Thread-250924][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:04:30,496 [DEBUG][       Thread-250924][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:04:30,496 [DEBUG][       Thread-250924][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:04:30,496 [DEBUG][       Thread-250924][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:04:30,496 [DEBUG][       Thread-250924][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 10:04:30,496 [DEBUG][       Thread-250924][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 10:04:30,496 [DEBUG][       Thread-250924][   transport.py][1871] : client lang: <none>
2025-06-13 10:04:30,496 [DEBUG][       Thread-250924][   transport.py][1871] : server lang: <none>
2025-06-13 10:04:30,496 [DEBUG][       Thread-250924][   transport.py][1871] : kex follows: False
2025-06-13 10:04:30,496 [DEBUG][       Thread-250924][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 10:04:30,496 [DEBUG][       Thread-250924][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 10:04:30,497 [DEBUG][       Thread-250924][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 10:04:30,497 [DEBUG][       Thread-250924][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 10:04:30,497 [DEBUG][       Thread-250924][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 10:04:30,497 [DEBUG][       Thread-250924][   transport.py][1871] : Compression: none
2025-06-13 10:04:30,497 [DEBUG][       Thread-250924][   transport.py][1871] : === End of kex handshake ===
2025-06-13 10:04:30,516 [DEBUG][       Thread-250924][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 10:04:30,516 [DEBUG][       Thread-250924][   transport.py][1871] : Switch to new keys ...
2025-06-13 10:04:30,517 [DEBUG][       Thread-250924][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 10:04:30,517 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 10:04:30,517 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 10:04:30,518 [DEBUG][       Thread-250924][   transport.py][1871] : userauth is OK
2025-06-13 10:04:30,531 [ INFO][       Thread-250924][   transport.py][1871] : Authentication (password) successful!
2025-06-13 10:04:30,532 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 10:04:31,163 [DEBUG][       Thread-250924][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 10:04:31,163 [DEBUG][       Thread-250924][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 10:04:31,205 [DEBUG][       Thread-250924][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 10:04:31,205 [DEBUG][       Thread-250924][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 10:04:31,208 [DEBUG][       Thread-250924][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 10:04:31,219 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 10:04:31,220 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 10:04:31,222 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 10:04:31,223 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 10:04:31,229 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 10:04:31,231 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 10:04:31,231 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 10:04:31,231 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 10:04:31,232 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.336051 -999.00   +8.40  17.19     55   +0.00 1 1 1 1 1   887    0 8.79 19.88 ----- 17.5 17.2 49.0 23.5 13.0 -28.3 11.7 -29.5 10.4 -28.5 11.7 -27.4
2025-06-13 10:04:31,232 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 10:04:31,232 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 10:04:31,232 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.336051
2025-06-13 10:04:31,232 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 10:04:31,233 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 10:04:31,233 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 10:04:31,233 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 10:04:31,233 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 10:04:31,233 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T10:04:17', tmtdew=9.39, humidity=51.55, cloud=0.0, wind=15.16, temperature=8.54, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T08:03:54.806', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 10:04:31,233 [DEBUG][       Thread-250924][   transport.py][1871] : EOF in transport thread
2025-06-13 10:04:31,317 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 10:04:31,326 [DEBUG][       Thread-250927][   transport.py][1871] : starting thread (client mode): 0x863a5210
2025-06-13 10:04:31,326 [DEBUG][       Thread-250927][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 10:04:31,343 [DEBUG][       Thread-250927][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 10:04:31,343 [ INFO][       Thread-250927][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 10:04:31,350 [DEBUG][       Thread-250927][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 10:04:31,350 [DEBUG][       Thread-250927][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 10:04:31,350 [DEBUG][       Thread-250927][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 10:04:31,350 [DEBUG][       Thread-250927][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:04:31,350 [DEBUG][       Thread-250927][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:04:31,350 [DEBUG][       Thread-250927][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:04:31,350 [DEBUG][       Thread-250927][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:04:31,350 [DEBUG][       Thread-250927][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 10:04:31,350 [DEBUG][       Thread-250927][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 10:04:31,350 [DEBUG][       Thread-250927][   transport.py][1871] : client lang: <none>
2025-06-13 10:04:31,351 [DEBUG][       Thread-250927][   transport.py][1871] : server lang: <none>
2025-06-13 10:04:31,351 [DEBUG][       Thread-250927][   transport.py][1871] : kex follows: False
2025-06-13 10:04:31,351 [DEBUG][       Thread-250927][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 10:04:31,351 [DEBUG][       Thread-250927][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 10:04:31,351 [DEBUG][       Thread-250927][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 10:04:31,351 [DEBUG][       Thread-250927][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 10:04:31,351 [DEBUG][       Thread-250927][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 10:04:31,351 [DEBUG][       Thread-250927][   transport.py][1871] : Compression: none
2025-06-13 10:04:31,351 [DEBUG][       Thread-250927][   transport.py][1871] : === End of kex handshake ===
2025-06-13 10:04:31,410 [DEBUG][       Thread-250927][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 10:04:31,410 [DEBUG][       Thread-250927][   transport.py][1871] : Switch to new keys ...
2025-06-13 10:04:31,411 [DEBUG][       Thread-250927][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 10:04:31,411 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 10:04:31,412 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 10:04:31,473 [DEBUG][       Thread-250927][   transport.py][1871] : userauth is OK
2025-06-13 10:04:31,473 [DEBUG][       Thread-250927][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 10:04:31,473 [DEBUG][       Thread-250927][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 10:04:31,473 [DEBUG][       Thread-250927][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 10:04:31,473 [DEBUG][       Thread-250927][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 10:04:31,506 [ INFO][       Thread-250927][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 10:04:31,506 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 10:04:31,507 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 10:04:32,509 [DEBUG][       Thread-250927][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 10:04:32,510 [DEBUG][       Thread-250927][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 10:04:32,559 [DEBUG][       Thread-250927][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 10:04:32,560 [DEBUG][       Thread-250927][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 10:04:32,572 [DEBUG][       Thread-250927][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 10:04:32,580 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 10:04:32,581 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 10:04:32,589 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 10:04:32,598 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 10:04:32,598 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 10:04:32,599 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 10:04:32,609 [DEBUG][       Thread-250927][   transport.py][1871] : EOF in transport thread
2025-06-13 10:04:37,069 [DEBUG][Thread-250929 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:04:42,603 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 10:04:42,604 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 10:04:42,604 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 10:04:42,605 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 10:04:43,070 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 10, 4, 17), 9.39, 51.55, 0.0, 15.16, 8.54, 0, 0, 0, 2, 0, 0),)
2025-06-13 10:04:43,070 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 10:04:17
2025-06-13 10:04:43,155 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 10:04:43,161 [DEBUG][       Thread-250930][   transport.py][1871] : starting thread (client mode): 0x867b6a40
2025-06-13 10:04:43,161 [DEBUG][       Thread-250930][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 10:04:43,182 [DEBUG][       Thread-250930][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 10:04:43,182 [ INFO][       Thread-250930][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 10:04:43,185 [DEBUG][       Thread-250930][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 10:04:43,185 [DEBUG][       Thread-250930][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 10:04:43,185 [DEBUG][       Thread-250930][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 10:04:43,185 [DEBUG][       Thread-250930][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:04:43,185 [DEBUG][       Thread-250930][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:04:43,185 [DEBUG][       Thread-250930][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:04:43,185 [DEBUG][       Thread-250930][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:04:43,185 [DEBUG][       Thread-250930][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 10:04:43,185 [DEBUG][       Thread-250930][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 10:04:43,185 [DEBUG][       Thread-250930][   transport.py][1871] : client lang: <none>
2025-06-13 10:04:43,185 [DEBUG][       Thread-250930][   transport.py][1871] : server lang: <none>
2025-06-13 10:04:43,185 [DEBUG][       Thread-250930][   transport.py][1871] : kex follows: False
2025-06-13 10:04:43,185 [DEBUG][       Thread-250930][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 10:04:43,185 [DEBUG][       Thread-250930][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 10:04:43,185 [DEBUG][       Thread-250930][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 10:04:43,185 [DEBUG][       Thread-250930][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 10:04:43,185 [DEBUG][       Thread-250930][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 10:04:43,185 [DEBUG][       Thread-250930][   transport.py][1871] : Compression: none
2025-06-13 10:04:43,185 [DEBUG][       Thread-250930][   transport.py][1871] : === End of kex handshake ===
2025-06-13 10:04:43,200 [DEBUG][       Thread-250930][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 10:04:43,200 [DEBUG][       Thread-250930][   transport.py][1871] : Switch to new keys ...
2025-06-13 10:04:43,200 [DEBUG][       Thread-250930][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 10:04:43,200 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 10:04:43,200 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 10:04:43,201 [DEBUG][       Thread-250930][   transport.py][1871] : userauth is OK
2025-06-13 10:04:43,225 [ INFO][       Thread-250930][   transport.py][1871] : Authentication (password) successful!
2025-06-13 10:04:43,225 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 10:04:43,897 [DEBUG][       Thread-250930][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 10:04:43,897 [DEBUG][       Thread-250930][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 10:04:43,940 [DEBUG][       Thread-250930][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 10:04:43,940 [DEBUG][       Thread-250930][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 10:04:43,943 [DEBUG][       Thread-250930][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 10:04:43,954 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 10:04:43,954 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 10:04:43,956 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 10:04:43,957 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 10:04:43,960 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 10:04:43,962 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 10:04:43,962 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 10:04:43,962 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 10:04:43,962 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.336051 -999.00   +8.40  17.19     55   +0.00 1 1 1 1 1   887    0 8.79 19.88 ----- 17.5 17.2 49.0 23.5 13.0 -28.3 11.7 -29.5 10.4 -28.5 11.7 -27.4
2025-06-13 10:04:43,962 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 10:04:43,962 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 10:04:43,962 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.336051
2025-06-13 10:04:43,962 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 10:04:43,962 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 10:04:43,962 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 10:04:43,962 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 10:04:43,962 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 10:04:43,962 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T10:04:17', tmtdew=9.39, humidity=51.55, cloud=0.0, wind=15.16, temperature=8.54, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T08:03:54.806', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 10:04:43,963 [DEBUG][       Thread-250930][   transport.py][1871] : EOF in transport thread
2025-06-13 10:04:44,038 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 10:04:44,051 [DEBUG][       Thread-250933][   transport.py][1871] : starting thread (client mode): 0x863c82b0
2025-06-13 10:04:44,051 [DEBUG][       Thread-250933][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 10:04:44,070 [DEBUG][       Thread-250933][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 10:04:44,070 [ INFO][       Thread-250933][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 10:04:44,082 [DEBUG][       Thread-250933][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 10:04:44,082 [DEBUG][       Thread-250933][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 10:04:44,082 [DEBUG][       Thread-250933][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 10:04:44,082 [DEBUG][       Thread-250933][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:04:44,082 [DEBUG][       Thread-250933][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:04:44,082 [DEBUG][       Thread-250933][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:04:44,082 [DEBUG][       Thread-250933][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:04:44,083 [DEBUG][       Thread-250933][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 10:04:44,083 [DEBUG][       Thread-250933][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 10:04:44,083 [DEBUG][       Thread-250933][   transport.py][1871] : client lang: <none>
2025-06-13 10:04:44,083 [DEBUG][       Thread-250933][   transport.py][1871] : server lang: <none>
2025-06-13 10:04:44,083 [DEBUG][       Thread-250933][   transport.py][1871] : kex follows: False
2025-06-13 10:04:44,083 [DEBUG][       Thread-250933][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 10:04:44,083 [DEBUG][       Thread-250933][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 10:04:44,083 [DEBUG][       Thread-250933][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 10:04:44,083 [DEBUG][       Thread-250933][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 10:04:44,083 [DEBUG][       Thread-250933][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 10:04:44,083 [DEBUG][       Thread-250933][   transport.py][1871] : Compression: none
2025-06-13 10:04:44,083 [DEBUG][       Thread-250933][   transport.py][1871] : === End of kex handshake ===
2025-06-13 10:04:44,138 [DEBUG][       Thread-250933][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 10:04:44,138 [DEBUG][       Thread-250933][   transport.py][1871] : Switch to new keys ...
2025-06-13 10:04:44,138 [DEBUG][       Thread-250933][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 10:04:44,138 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 10:04:44,138 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 10:04:44,196 [DEBUG][       Thread-250933][   transport.py][1871] : userauth is OK
2025-06-13 10:04:44,196 [DEBUG][       Thread-250933][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 10:04:44,196 [DEBUG][       Thread-250933][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 10:04:44,196 [DEBUG][       Thread-250933][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 10:04:44,196 [DEBUG][       Thread-250933][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 10:04:44,216 [ INFO][       Thread-250933][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 10:04:44,216 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 10:04:44,216 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 10:04:45,228 [DEBUG][       Thread-250933][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 10:04:45,228 [DEBUG][       Thread-250933][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 10:04:45,276 [DEBUG][       Thread-250933][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 10:04:45,276 [DEBUG][       Thread-250933][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 10:04:45,285 [DEBUG][       Thread-250933][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 10:04:45,294 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 10:04:45,294 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 10:04:45,303 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 10:04:45,312 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 10:04:45,312 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 10:04:45,312 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 10:04:45,325 [DEBUG][       Thread-250933][   transport.py][1871] : EOF in transport thread
2025-06-13 10:04:46,102 [DEBUG][Thread-250935 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:04:47,768 [DEBUG][Thread-250936 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:04:48,846 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:04:48,847 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:04:55,120 [DEBUG][Thread-250937 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:04:55,323 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 10:04:55,323 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 10:04:55,323 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 10:04:55,325 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 10:04:55,798 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 10, 4, 48), 9.43, 51.42, 0.0, 13.15, 8.56, 0, 0, 0, 2, 0, 0),)
2025-06-13 10:04:55,798 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 10:04:48
2025-06-13 10:04:55,880 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 10:04:55,885 [DEBUG][       Thread-250938][   transport.py][1871] : starting thread (client mode): 0x863bfdf0
2025-06-13 10:04:55,885 [DEBUG][       Thread-250938][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 10:04:55,904 [DEBUG][       Thread-250938][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 10:04:55,904 [ INFO][       Thread-250938][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 10:04:55,908 [DEBUG][       Thread-250938][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 10:04:55,908 [DEBUG][       Thread-250938][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 10:04:55,908 [DEBUG][       Thread-250938][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 10:04:55,908 [DEBUG][       Thread-250938][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:04:55,908 [DEBUG][       Thread-250938][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:04:55,908 [DEBUG][       Thread-250938][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:04:55,908 [DEBUG][       Thread-250938][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:04:55,908 [DEBUG][       Thread-250938][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 10:04:55,908 [DEBUG][       Thread-250938][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 10:04:55,908 [DEBUG][       Thread-250938][   transport.py][1871] : client lang: <none>
2025-06-13 10:04:55,908 [DEBUG][       Thread-250938][   transport.py][1871] : server lang: <none>
2025-06-13 10:04:55,908 [DEBUG][       Thread-250938][   transport.py][1871] : kex follows: False
2025-06-13 10:04:55,908 [DEBUG][       Thread-250938][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 10:04:55,908 [DEBUG][       Thread-250938][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 10:04:55,908 [DEBUG][       Thread-250938][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 10:04:55,908 [DEBUG][       Thread-250938][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 10:04:55,908 [DEBUG][       Thread-250938][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 10:04:55,908 [DEBUG][       Thread-250938][   transport.py][1871] : Compression: none
2025-06-13 10:04:55,908 [DEBUG][       Thread-250938][   transport.py][1871] : === End of kex handshake ===
2025-06-13 10:04:55,929 [DEBUG][       Thread-250938][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 10:04:55,930 [DEBUG][       Thread-250938][   transport.py][1871] : Switch to new keys ...
2025-06-13 10:04:55,930 [DEBUG][       Thread-250938][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 10:04:55,931 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 10:04:55,931 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 10:04:55,932 [DEBUG][       Thread-250938][   transport.py][1871] : userauth is OK
2025-06-13 10:04:55,958 [ INFO][       Thread-250938][   transport.py][1871] : Authentication (password) successful!
2025-06-13 10:04:55,958 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 10:04:56,618 [DEBUG][       Thread-250938][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 10:04:56,618 [DEBUG][       Thread-250938][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 10:04:56,661 [DEBUG][       Thread-250938][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 10:04:56,661 [DEBUG][       Thread-250938][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 10:04:56,663 [DEBUG][       Thread-250938][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 10:04:56,674 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 10:04:56,674 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 10:04:56,676 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 10:04:56,677 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 10:04:56,681 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 10:04:56,682 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 10:04:56,682 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 10:04:56,682 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 10:04:56,683 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.336051 -999.00   +8.40  17.19     55   +0.00 1 1 1 1 1   887    0 8.79 19.88 ----- 17.5 17.2 49.0 23.5 13.0 -28.3 11.7 -29.5 10.4 -28.5 11.7 -27.4
2025-06-13 10:04:56,683 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 10:04:56,683 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 10:04:56,683 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.336051
2025-06-13 10:04:56,683 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 10:04:56,683 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 10:04:56,683 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 10:04:56,683 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 10:04:56,683 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 10:04:56,683 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T10:04:48', tmtdew=9.43, humidity=51.42, cloud=0.0, wind=13.15, temperature=8.56, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T08:03:54.806', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 10:04:56,684 [DEBUG][       Thread-250938][   transport.py][1871] : EOF in transport thread
2025-06-13 10:04:56,768 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 10:04:56,777 [DEBUG][       Thread-250941][   transport.py][1871] : starting thread (client mode): 0x863cbf40
2025-06-13 10:04:56,777 [DEBUG][       Thread-250941][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 10:04:56,792 [DEBUG][       Thread-250941][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 10:04:56,792 [ INFO][       Thread-250941][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 10:04:56,799 [DEBUG][       Thread-250941][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 10:04:56,799 [DEBUG][       Thread-250941][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 10:04:56,800 [DEBUG][       Thread-250941][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 10:04:56,800 [DEBUG][       Thread-250941][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:04:56,800 [DEBUG][       Thread-250941][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:04:56,800 [DEBUG][       Thread-250941][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:04:56,800 [DEBUG][       Thread-250941][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:04:56,800 [DEBUG][       Thread-250941][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 10:04:56,800 [DEBUG][       Thread-250941][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 10:04:56,800 [DEBUG][       Thread-250941][   transport.py][1871] : client lang: <none>
2025-06-13 10:04:56,800 [DEBUG][       Thread-250941][   transport.py][1871] : server lang: <none>
2025-06-13 10:04:56,800 [DEBUG][       Thread-250941][   transport.py][1871] : kex follows: False
2025-06-13 10:04:56,800 [DEBUG][       Thread-250941][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 10:04:56,800 [DEBUG][       Thread-250941][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 10:04:56,800 [DEBUG][       Thread-250941][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 10:04:56,800 [DEBUG][       Thread-250941][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 10:04:56,800 [DEBUG][       Thread-250941][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 10:04:56,800 [DEBUG][       Thread-250941][   transport.py][1871] : Compression: none
2025-06-13 10:04:56,800 [DEBUG][       Thread-250941][   transport.py][1871] : === End of kex handshake ===
2025-06-13 10:04:56,859 [DEBUG][       Thread-250941][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 10:04:56,859 [DEBUG][       Thread-250941][   transport.py][1871] : Switch to new keys ...
2025-06-13 10:04:56,860 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 10:04:56,860 [DEBUG][       Thread-250941][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 10:04:56,861 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 10:04:56,918 [DEBUG][       Thread-250941][   transport.py][1871] : userauth is OK
2025-06-13 10:04:56,918 [DEBUG][       Thread-250941][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 10:04:56,919 [DEBUG][       Thread-250941][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 10:04:56,919 [DEBUG][       Thread-250941][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 10:04:56,919 [DEBUG][       Thread-250941][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 10:04:56,942 [ INFO][       Thread-250941][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 10:04:56,942 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 10:04:56,942 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 10:04:57,969 [DEBUG][       Thread-250941][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 10:04:57,969 [DEBUG][       Thread-250941][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 10:04:58,020 [DEBUG][       Thread-250941][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 10:04:58,020 [DEBUG][       Thread-250941][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 10:04:58,031 [DEBUG][       Thread-250941][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 10:04:58,040 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 10:04:58,040 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 10:04:58,050 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 10:04:58,061 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 10:04:58,061 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 10:04:58,062 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 10:04:58,070 [DEBUG][       Thread-250941][   transport.py][1871] : EOF in transport thread
2025-06-13 10:05:04,140 [DEBUG][Thread-250943 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:05:05,128 [DEBUG][Thread-250944 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:05:08,072 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 10:05:08,072 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 10:05:08,072 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 10:05:08,075 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 10:05:08,543 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 10, 4, 48), 9.43, 51.42, 0.0, 13.15, 8.56, 0, 0, 0, 2, 0, 0),)
2025-06-13 10:05:08,544 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 10:04:48
2025-06-13 10:05:08,625 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 10:05:08,631 [DEBUG][       Thread-250945][   transport.py][1871] : starting thread (client mode): 0x863ec760
2025-06-13 10:05:08,631 [DEBUG][       Thread-250945][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 10:05:08,652 [DEBUG][       Thread-250945][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 10:05:08,652 [ INFO][       Thread-250945][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 10:05:08,656 [DEBUG][       Thread-250945][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 10:05:08,656 [DEBUG][       Thread-250945][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 10:05:08,656 [DEBUG][       Thread-250945][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 10:05:08,656 [DEBUG][       Thread-250945][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:05:08,656 [DEBUG][       Thread-250945][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:05:08,656 [DEBUG][       Thread-250945][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:05:08,656 [DEBUG][       Thread-250945][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:05:08,656 [DEBUG][       Thread-250945][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 10:05:08,656 [DEBUG][       Thread-250945][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 10:05:08,656 [DEBUG][       Thread-250945][   transport.py][1871] : client lang: <none>
2025-06-13 10:05:08,656 [DEBUG][       Thread-250945][   transport.py][1871] : server lang: <none>
2025-06-13 10:05:08,656 [DEBUG][       Thread-250945][   transport.py][1871] : kex follows: False
2025-06-13 10:05:08,656 [DEBUG][       Thread-250945][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 10:05:08,656 [DEBUG][       Thread-250945][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 10:05:08,657 [DEBUG][       Thread-250945][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 10:05:08,657 [DEBUG][       Thread-250945][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 10:05:08,657 [DEBUG][       Thread-250945][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 10:05:08,657 [DEBUG][       Thread-250945][   transport.py][1871] : Compression: none
2025-06-13 10:05:08,657 [DEBUG][       Thread-250945][   transport.py][1871] : === End of kex handshake ===
2025-06-13 10:05:08,671 [DEBUG][       Thread-250945][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 10:05:08,671 [DEBUG][       Thread-250945][   transport.py][1871] : Switch to new keys ...
2025-06-13 10:05:08,672 [DEBUG][       Thread-250945][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 10:05:08,672 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 10:05:08,672 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 10:05:08,673 [DEBUG][       Thread-250945][   transport.py][1871] : userauth is OK
2025-06-13 10:05:08,687 [ INFO][       Thread-250945][   transport.py][1871] : Authentication (password) successful!
2025-06-13 10:05:08,688 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 10:05:13,177 [DEBUG][Thread-250947 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:05:17,967 [DEBUG][       Thread-250945][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 10:05:17,967 [DEBUG][       Thread-250945][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 10:05:18,009 [DEBUG][       Thread-250945][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 10:05:18,009 [DEBUG][       Thread-250945][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 10:05:18,012 [DEBUG][       Thread-250945][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 10:05:18,089 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 10:05:18,089 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 10:05:18,091 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 10:05:18,092 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 10:05:18,113 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 10:05:18,114 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 10:05:18,115 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 10:05:18,115 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 10:05:18,115 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.336746 -999.00   +8.60  13.09     56   +0.40 1 1 1 1 1   887    0 8.72 19.70 ----- 14.9 13.1 60.8 16.9 13.1 -27.8 11.7 -29.0 10.6 -27.7 11.8 -26.8
2025-06-13 10:05:18,115 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 10:05:18,115 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 10:05:18,115 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.336746
2025-06-13 10:05:18,116 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 10:05:18,116 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 10:05:18,116 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 10:05:18,116 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 10:05:18,116 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 10:05:18,117 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T10:04:48', tmtdew=9.43, humidity=51.42, cloud=0.0, wind=13.15, temperature=8.56, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T08:04:54.854', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 10:05:18,118 [DEBUG][       Thread-250945][   transport.py][1871] : EOF in transport thread
2025-06-13 10:05:18,201 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 10:05:18,216 [DEBUG][       Thread-250949][   transport.py][1871] : starting thread (client mode): 0x8636a2f0
2025-06-13 10:05:18,216 [DEBUG][       Thread-250949][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 10:05:18,235 [DEBUG][       Thread-250949][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 10:05:18,236 [ INFO][       Thread-250949][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 10:05:18,245 [DEBUG][       Thread-250949][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 10:05:18,245 [DEBUG][       Thread-250949][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 10:05:18,245 [DEBUG][       Thread-250949][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 10:05:18,245 [DEBUG][       Thread-250949][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:05:18,245 [DEBUG][       Thread-250949][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:05:18,245 [DEBUG][       Thread-250949][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:05:18,245 [DEBUG][       Thread-250949][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:05:18,246 [DEBUG][       Thread-250949][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 10:05:18,246 [DEBUG][       Thread-250949][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 10:05:18,246 [DEBUG][       Thread-250949][   transport.py][1871] : client lang: <none>
2025-06-13 10:05:18,246 [DEBUG][       Thread-250949][   transport.py][1871] : server lang: <none>
2025-06-13 10:05:18,246 [DEBUG][       Thread-250949][   transport.py][1871] : kex follows: False
2025-06-13 10:05:18,246 [DEBUG][       Thread-250949][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 10:05:18,246 [DEBUG][       Thread-250949][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 10:05:18,246 [DEBUG][       Thread-250949][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 10:05:18,246 [DEBUG][       Thread-250949][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 10:05:18,246 [DEBUG][       Thread-250949][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 10:05:18,246 [DEBUG][       Thread-250949][   transport.py][1871] : Compression: none
2025-06-13 10:05:18,246 [DEBUG][       Thread-250949][   transport.py][1871] : === End of kex handshake ===
2025-06-13 10:05:18,303 [DEBUG][       Thread-250949][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 10:05:18,303 [DEBUG][       Thread-250949][   transport.py][1871] : Switch to new keys ...
2025-06-13 10:05:18,304 [DEBUG][       Thread-250949][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 10:05:18,304 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 10:05:18,305 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 10:05:18,367 [DEBUG][       Thread-250949][   transport.py][1871] : userauth is OK
2025-06-13 10:05:18,367 [DEBUG][       Thread-250949][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 10:05:18,367 [DEBUG][       Thread-250949][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 10:05:18,368 [DEBUG][       Thread-250949][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 10:05:18,368 [DEBUG][       Thread-250949][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 10:05:18,384 [ INFO][       Thread-250949][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 10:05:18,384 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 10:05:18,384 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 10:05:19,422 [DEBUG][       Thread-250949][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 10:05:19,423 [DEBUG][       Thread-250949][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 10:05:19,474 [DEBUG][       Thread-250949][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 10:05:19,474 [DEBUG][       Thread-250949][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 10:05:19,486 [DEBUG][       Thread-250949][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 10:05:19,497 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 10:05:19,498 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 10:05:19,509 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 10:05:19,521 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 10:05:19,521 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 10:05:19,521 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 10:05:19,533 [DEBUG][       Thread-250949][   transport.py][1871] : EOF in transport thread
2025-06-13 10:05:22,196 [DEBUG][Thread-250951 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:05:23,294 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:05:23,295 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:05:29,528 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 10:05:29,528 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 10:05:29,529 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 10:05:29,531 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 10:05:29,998 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 10, 5, 20), 9.81, 50.13, 0.0, 15.86, 8.74, 0, 0, 0, 2, 0, 0),)
2025-06-13 10:05:29,998 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 10:05:20
2025-06-13 10:05:30,080 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 10:05:30,085 [DEBUG][       Thread-250952][   transport.py][1871] : starting thread (client mode): 0x863691b0
2025-06-13 10:05:30,085 [DEBUG][       Thread-250952][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 10:05:30,105 [DEBUG][       Thread-250952][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 10:05:30,105 [ INFO][       Thread-250952][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 10:05:30,109 [DEBUG][       Thread-250952][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 10:05:30,109 [DEBUG][       Thread-250952][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 10:05:30,109 [DEBUG][       Thread-250952][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 10:05:30,109 [DEBUG][       Thread-250952][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:05:30,109 [DEBUG][       Thread-250952][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:05:30,109 [DEBUG][       Thread-250952][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:05:30,109 [DEBUG][       Thread-250952][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:05:30,109 [DEBUG][       Thread-250952][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 10:05:30,109 [DEBUG][       Thread-250952][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 10:05:30,109 [DEBUG][       Thread-250952][   transport.py][1871] : client lang: <none>
2025-06-13 10:05:30,109 [DEBUG][       Thread-250952][   transport.py][1871] : server lang: <none>
2025-06-13 10:05:30,109 [DEBUG][       Thread-250952][   transport.py][1871] : kex follows: False
2025-06-13 10:05:30,109 [DEBUG][       Thread-250952][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 10:05:30,109 [DEBUG][       Thread-250952][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 10:05:30,109 [DEBUG][       Thread-250952][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 10:05:30,109 [DEBUG][       Thread-250952][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 10:05:30,109 [DEBUG][       Thread-250952][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 10:05:30,109 [DEBUG][       Thread-250952][   transport.py][1871] : Compression: none
2025-06-13 10:05:30,109 [DEBUG][       Thread-250952][   transport.py][1871] : === End of kex handshake ===
2025-06-13 10:05:30,124 [DEBUG][       Thread-250952][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 10:05:30,125 [DEBUG][       Thread-250952][   transport.py][1871] : Switch to new keys ...
2025-06-13 10:05:30,125 [DEBUG][       Thread-250952][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 10:05:30,126 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 10:05:30,126 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 10:05:30,127 [DEBUG][       Thread-250952][   transport.py][1871] : userauth is OK
2025-06-13 10:05:30,139 [ INFO][       Thread-250952][   transport.py][1871] : Authentication (password) successful!
2025-06-13 10:05:30,140 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 10:05:30,781 [DEBUG][       Thread-250952][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 10:05:30,781 [DEBUG][       Thread-250952][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 10:05:30,824 [DEBUG][       Thread-250952][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 10:05:30,825 [DEBUG][       Thread-250952][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 10:05:30,827 [DEBUG][       Thread-250952][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 10:05:30,840 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 10:05:30,840 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 10:05:30,841 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 10:05:30,842 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 10:05:30,845 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 10:05:30,846 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 10:05:30,846 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 10:05:30,846 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 10:05:30,846 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.336746 -999.00   +8.60  13.09     56   +0.40 1 1 1 1 1   887    0 8.72 19.70 ----- 14.9 13.1 60.8 16.9 13.1 -27.8 11.7 -29.0 10.6 -27.7 11.8 -26.8
2025-06-13 10:05:30,846 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 10:05:30,846 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 10:05:30,846 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.336746
2025-06-13 10:05:30,846 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 10:05:30,846 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 10:05:30,846 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 10:05:30,846 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 10:05:30,846 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 10:05:30,846 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T10:05:20', tmtdew=9.81, humidity=50.13, cloud=0.0, wind=15.86, temperature=8.74, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T08:04:54.854', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 10:05:30,847 [DEBUG][       Thread-250952][   transport.py][1871] : EOF in transport thread
2025-06-13 10:05:30,918 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 10:05:30,927 [DEBUG][       Thread-250955][   transport.py][1871] : starting thread (client mode): 0x863a6bf0
2025-06-13 10:05:30,927 [DEBUG][       Thread-250955][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 10:05:30,941 [DEBUG][       Thread-250955][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 10:05:30,941 [ INFO][       Thread-250955][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 10:05:30,949 [DEBUG][       Thread-250955][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 10:05:30,949 [DEBUG][       Thread-250955][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 10:05:30,949 [DEBUG][       Thread-250955][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 10:05:30,949 [DEBUG][       Thread-250955][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:05:30,949 [DEBUG][       Thread-250955][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:05:30,949 [DEBUG][       Thread-250955][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:05:30,949 [DEBUG][       Thread-250955][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:05:30,949 [DEBUG][       Thread-250955][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 10:05:30,950 [DEBUG][       Thread-250955][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 10:05:30,950 [DEBUG][       Thread-250955][   transport.py][1871] : client lang: <none>
2025-06-13 10:05:30,950 [DEBUG][       Thread-250955][   transport.py][1871] : server lang: <none>
2025-06-13 10:05:30,950 [DEBUG][       Thread-250955][   transport.py][1871] : kex follows: False
2025-06-13 10:05:30,950 [DEBUG][       Thread-250955][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 10:05:30,950 [DEBUG][       Thread-250955][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 10:05:30,950 [DEBUG][       Thread-250955][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 10:05:30,950 [DEBUG][       Thread-250955][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 10:05:30,950 [DEBUG][       Thread-250955][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 10:05:30,950 [DEBUG][       Thread-250955][   transport.py][1871] : Compression: none
2025-06-13 10:05:30,950 [DEBUG][       Thread-250955][   transport.py][1871] : === End of kex handshake ===
2025-06-13 10:05:31,006 [DEBUG][       Thread-250955][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 10:05:31,006 [DEBUG][       Thread-250955][   transport.py][1871] : Switch to new keys ...
2025-06-13 10:05:31,007 [DEBUG][       Thread-250955][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 10:05:31,007 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 10:05:31,007 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 10:05:31,062 [DEBUG][       Thread-250955][   transport.py][1871] : userauth is OK
2025-06-13 10:05:31,062 [DEBUG][       Thread-250955][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 10:05:31,063 [DEBUG][       Thread-250955][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 10:05:31,063 [DEBUG][       Thread-250955][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 10:05:31,063 [DEBUG][       Thread-250955][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 10:05:31,081 [ INFO][       Thread-250955][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 10:05:31,081 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 10:05:31,082 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 10:05:31,215 [DEBUG][Thread-250957 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:05:32,110 [DEBUG][       Thread-250955][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 10:05:32,110 [DEBUG][       Thread-250955][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 10:05:32,160 [DEBUG][       Thread-250955][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 10:05:32,160 [DEBUG][       Thread-250955][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 10:05:32,169 [DEBUG][       Thread-250955][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 10:05:32,178 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 10:05:32,178 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 10:05:32,187 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 10:05:32,196 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 10:05:32,197 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 10:05:32,197 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 10:05:32,206 [DEBUG][       Thread-250955][   transport.py][1871] : EOF in transport thread
2025-06-13 10:05:40,246 [DEBUG][Thread-250958 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:05:42,207 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 10:05:42,208 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 10:05:42,208 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 10:05:42,210 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 10:05:42,680 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 10, 5, 20), 9.81, 50.13, 0.0, 15.86, 8.74, 0, 0, 0, 2, 0, 0),)
2025-06-13 10:05:42,680 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 10:05:20
2025-06-13 10:05:42,762 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 10:05:42,769 [DEBUG][       Thread-250959][   transport.py][1871] : starting thread (client mode): 0x84207c40
2025-06-13 10:05:42,769 [DEBUG][       Thread-250959][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 10:05:42,789 [DEBUG][       Thread-250959][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 10:05:42,789 [ INFO][       Thread-250959][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 10:05:42,793 [DEBUG][       Thread-250959][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 10:05:42,793 [DEBUG][       Thread-250959][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 10:05:42,793 [DEBUG][       Thread-250959][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 10:05:42,793 [DEBUG][       Thread-250959][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:05:42,793 [DEBUG][       Thread-250959][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:05:42,793 [DEBUG][       Thread-250959][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:05:42,793 [DEBUG][       Thread-250959][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:05:42,793 [DEBUG][       Thread-250959][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 10:05:42,793 [DEBUG][       Thread-250959][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 10:05:42,793 [DEBUG][       Thread-250959][   transport.py][1871] : client lang: <none>
2025-06-13 10:05:42,793 [DEBUG][       Thread-250959][   transport.py][1871] : server lang: <none>
2025-06-13 10:05:42,793 [DEBUG][       Thread-250959][   transport.py][1871] : kex follows: False
2025-06-13 10:05:42,793 [DEBUG][       Thread-250959][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 10:05:42,793 [DEBUG][       Thread-250959][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 10:05:42,793 [DEBUG][       Thread-250959][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 10:05:42,793 [DEBUG][       Thread-250959][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 10:05:42,793 [DEBUG][       Thread-250959][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 10:05:42,793 [DEBUG][       Thread-250959][   transport.py][1871] : Compression: none
2025-06-13 10:05:42,794 [DEBUG][       Thread-250959][   transport.py][1871] : === End of kex handshake ===
2025-06-13 10:05:42,814 [DEBUG][       Thread-250959][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 10:05:42,814 [DEBUG][       Thread-250959][   transport.py][1871] : Switch to new keys ...
2025-06-13 10:05:42,815 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 10:05:42,815 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 10:05:42,815 [DEBUG][       Thread-250959][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 10:05:42,816 [DEBUG][       Thread-250959][   transport.py][1871] : userauth is OK
2025-06-13 10:05:42,840 [ INFO][       Thread-250959][   transport.py][1871] : Authentication (password) successful!
2025-06-13 10:05:42,840 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 10:05:43,504 [DEBUG][       Thread-250959][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 10:05:43,504 [DEBUG][       Thread-250959][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 10:05:43,549 [DEBUG][       Thread-250959][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 10:05:43,549 [DEBUG][       Thread-250959][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 10:05:43,552 [DEBUG][       Thread-250959][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 10:05:43,565 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 10:05:43,565 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 10:05:43,567 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 10:05:43,569 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 10:05:43,575 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 10:05:43,576 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 10:05:43,577 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 10:05:43,577 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 10:05:43,577 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.337093 -999.00   +8.60  15.80     56   +0.50 1 1 1 1 1   887    0 8.76 18.79 ----- 15.5 15.8 58.6 17.8 13.1 -28.0 11.8 -29.0 10.6 -27.7 11.9 -26.6
2025-06-13 10:05:43,577 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 10:05:43,578 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 10:05:43,578 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.337093
2025-06-13 10:05:43,578 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 10:05:43,578 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 10:05:43,579 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 10:05:43,579 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 10:05:43,579 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 10:05:43,579 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T10:05:20', tmtdew=9.81, humidity=50.13, cloud=0.0, wind=15.86, temperature=8.74, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T08:05:24.835', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 10:05:43,579 [DEBUG][       Thread-250959][   transport.py][1871] : EOF in transport thread
2025-06-13 10:05:43,662 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 10:05:43,676 [DEBUG][       Thread-250962][   transport.py][1871] : starting thread (client mode): 0x8636a7a0
2025-06-13 10:05:43,676 [DEBUG][       Thread-250962][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 10:05:43,692 [DEBUG][       Thread-250962][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 10:05:43,692 [ INFO][       Thread-250962][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 10:05:43,700 [DEBUG][       Thread-250962][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 10:05:43,700 [DEBUG][       Thread-250962][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 10:05:43,700 [DEBUG][       Thread-250962][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 10:05:43,700 [DEBUG][       Thread-250962][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:05:43,700 [DEBUG][       Thread-250962][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:05:43,700 [DEBUG][       Thread-250962][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:05:43,700 [DEBUG][       Thread-250962][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:05:43,700 [DEBUG][       Thread-250962][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 10:05:43,700 [DEBUG][       Thread-250962][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 10:05:43,700 [DEBUG][       Thread-250962][   transport.py][1871] : client lang: <none>
2025-06-13 10:05:43,701 [DEBUG][       Thread-250962][   transport.py][1871] : server lang: <none>
2025-06-13 10:05:43,701 [DEBUG][       Thread-250962][   transport.py][1871] : kex follows: False
2025-06-13 10:05:43,701 [DEBUG][       Thread-250962][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 10:05:43,701 [DEBUG][       Thread-250962][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 10:05:43,701 [DEBUG][       Thread-250962][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 10:05:43,701 [DEBUG][       Thread-250962][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 10:05:43,701 [DEBUG][       Thread-250962][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 10:05:43,701 [DEBUG][       Thread-250962][   transport.py][1871] : Compression: none
2025-06-13 10:05:43,701 [DEBUG][       Thread-250962][   transport.py][1871] : === End of kex handshake ===
2025-06-13 10:05:43,761 [DEBUG][       Thread-250962][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 10:05:43,762 [DEBUG][       Thread-250962][   transport.py][1871] : Switch to new keys ...
2025-06-13 10:05:43,762 [DEBUG][       Thread-250962][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 10:05:43,762 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 10:05:43,763 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 10:05:43,833 [DEBUG][       Thread-250962][   transport.py][1871] : userauth is OK
2025-06-13 10:05:43,833 [DEBUG][       Thread-250962][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 10:05:43,833 [DEBUG][       Thread-250962][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 10:05:43,833 [DEBUG][       Thread-250962][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 10:05:43,833 [DEBUG][       Thread-250962][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 10:05:43,852 [ INFO][       Thread-250962][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 10:05:43,853 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 10:05:43,853 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 10:05:44,898 [DEBUG][       Thread-250962][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 10:05:44,898 [DEBUG][       Thread-250962][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 10:05:44,948 [DEBUG][       Thread-250962][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 10:05:44,948 [DEBUG][       Thread-250962][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 10:05:44,957 [DEBUG][       Thread-250962][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 10:05:44,970 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 10:05:44,970 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 10:05:44,979 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 10:05:44,988 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 10:05:44,988 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 10:05:44,988 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 10:05:44,999 [DEBUG][       Thread-250962][   transport.py][1871] : EOF in transport thread
2025-06-13 10:05:48,877 [DEBUG][Thread-250964 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:05:49,264 [DEBUG][Thread-250965 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:05:49,953 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:05:49,954 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:05:54,989 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 10:05:54,990 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 10:05:54,990 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 10:05:54,992 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 10:05:55,458 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 10, 5, 52), 9.8, 50.2, 0.0, 14.31, 8.8, 0, 0, 0, 2, 0, 0),)
2025-06-13 10:05:55,458 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 10:05:52
2025-06-13 10:05:55,539 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 10:05:55,543 [DEBUG][       Thread-250966][   transport.py][1871] : starting thread (client mode): 0x842062f0
2025-06-13 10:05:55,543 [DEBUG][       Thread-250966][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 10:05:55,563 [DEBUG][       Thread-250966][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 10:05:55,563 [ INFO][       Thread-250966][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 10:05:55,566 [DEBUG][       Thread-250966][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 10:05:55,566 [DEBUG][       Thread-250966][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 10:05:55,566 [DEBUG][       Thread-250966][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 10:05:55,566 [DEBUG][       Thread-250966][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:05:55,566 [DEBUG][       Thread-250966][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:05:55,566 [DEBUG][       Thread-250966][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:05:55,566 [DEBUG][       Thread-250966][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:05:55,567 [DEBUG][       Thread-250966][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 10:05:55,567 [DEBUG][       Thread-250966][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 10:05:55,567 [DEBUG][       Thread-250966][   transport.py][1871] : client lang: <none>
2025-06-13 10:05:55,567 [DEBUG][       Thread-250966][   transport.py][1871] : server lang: <none>
2025-06-13 10:05:55,567 [DEBUG][       Thread-250966][   transport.py][1871] : kex follows: False
2025-06-13 10:05:55,567 [DEBUG][       Thread-250966][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 10:05:55,567 [DEBUG][       Thread-250966][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 10:05:55,567 [DEBUG][       Thread-250966][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 10:05:55,567 [DEBUG][       Thread-250966][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 10:05:55,567 [DEBUG][       Thread-250966][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 10:05:55,567 [DEBUG][       Thread-250966][   transport.py][1871] : Compression: none
2025-06-13 10:05:55,567 [DEBUG][       Thread-250966][   transport.py][1871] : === End of kex handshake ===
2025-06-13 10:05:55,586 [DEBUG][       Thread-250966][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 10:05:55,586 [DEBUG][       Thread-250966][   transport.py][1871] : Switch to new keys ...
2025-06-13 10:05:55,587 [DEBUG][       Thread-250966][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 10:05:55,587 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 10:05:55,587 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 10:05:55,589 [DEBUG][       Thread-250966][   transport.py][1871] : userauth is OK
2025-06-13 10:05:55,614 [ INFO][       Thread-250966][   transport.py][1871] : Authentication (password) successful!
2025-06-13 10:05:55,614 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 10:05:56,287 [DEBUG][       Thread-250966][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 10:05:56,287 [DEBUG][       Thread-250966][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 10:05:56,329 [DEBUG][       Thread-250966][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 10:05:56,329 [DEBUG][       Thread-250966][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 10:05:56,332 [DEBUG][       Thread-250966][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 10:05:56,346 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 10:05:56,346 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 10:05:56,348 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 10:05:56,349 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 10:05:56,354 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 10:05:56,356 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 10:05:56,356 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 10:05:56,357 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 10:05:56,357 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.337093 -999.00   +8.60  15.80     56   +0.50 1 1 1 1 1   887    0 8.76 18.79 ----- 15.5 15.8 58.6 17.8 13.1 -28.0 11.8 -29.0 10.6 -27.7 11.9 -26.6
2025-06-13 10:05:56,357 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 10:05:56,357 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 10:05:56,357 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.337093
2025-06-13 10:05:56,358 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 10:05:56,358 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 10:05:56,358 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 10:05:56,358 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 10:05:56,358 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 10:05:56,358 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T10:05:52', tmtdew=9.8, humidity=50.2, cloud=0.0, wind=14.31, temperature=8.8, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T08:05:24.835', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 10:05:56,359 [DEBUG][       Thread-250966][   transport.py][1871] : EOF in transport thread
2025-06-13 10:05:56,442 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 10:05:56,451 [DEBUG][       Thread-250969][   transport.py][1871] : starting thread (client mode): 0x863c8250
2025-06-13 10:05:56,451 [DEBUG][       Thread-250969][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 10:05:56,466 [DEBUG][       Thread-250969][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 10:05:56,466 [ INFO][       Thread-250969][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 10:05:56,474 [DEBUG][       Thread-250969][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 10:05:56,474 [DEBUG][       Thread-250969][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 10:05:56,474 [DEBUG][       Thread-250969][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 10:05:56,474 [DEBUG][       Thread-250969][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:05:56,474 [DEBUG][       Thread-250969][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:05:56,474 [DEBUG][       Thread-250969][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:05:56,474 [DEBUG][       Thread-250969][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:05:56,474 [DEBUG][       Thread-250969][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 10:05:56,474 [DEBUG][       Thread-250969][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 10:05:56,474 [DEBUG][       Thread-250969][   transport.py][1871] : client lang: <none>
2025-06-13 10:05:56,474 [DEBUG][       Thread-250969][   transport.py][1871] : server lang: <none>
2025-06-13 10:05:56,474 [DEBUG][       Thread-250969][   transport.py][1871] : kex follows: False
2025-06-13 10:05:56,474 [DEBUG][       Thread-250969][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 10:05:56,475 [DEBUG][       Thread-250969][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 10:05:56,475 [DEBUG][       Thread-250969][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 10:05:56,475 [DEBUG][       Thread-250969][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 10:05:56,475 [DEBUG][       Thread-250969][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 10:05:56,475 [DEBUG][       Thread-250969][   transport.py][1871] : Compression: none
2025-06-13 10:05:56,475 [DEBUG][       Thread-250969][   transport.py][1871] : === End of kex handshake ===
2025-06-13 10:05:56,533 [DEBUG][       Thread-250969][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 10:05:56,534 [DEBUG][       Thread-250969][   transport.py][1871] : Switch to new keys ...
2025-06-13 10:05:56,534 [DEBUG][       Thread-250969][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 10:05:56,534 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 10:05:56,535 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 10:05:56,593 [DEBUG][       Thread-250969][   transport.py][1871] : userauth is OK
2025-06-13 10:05:56,593 [DEBUG][       Thread-250969][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 10:05:56,593 [DEBUG][       Thread-250969][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 10:05:56,593 [DEBUG][       Thread-250969][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 10:05:56,593 [DEBUG][       Thread-250969][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 10:05:56,613 [ INFO][       Thread-250969][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 10:05:56,613 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 10:05:56,613 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 10:05:57,604 [DEBUG][       Thread-250969][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 10:05:57,604 [DEBUG][       Thread-250969][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 10:05:57,651 [DEBUG][       Thread-250969][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 10:05:57,652 [DEBUG][       Thread-250969][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 10:05:57,661 [DEBUG][       Thread-250969][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 10:05:57,669 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 10:05:57,670 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 10:05:57,678 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 10:05:57,687 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 10:05:57,687 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 10:05:57,688 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 10:05:57,696 [DEBUG][       Thread-250969][   transport.py][1871] : EOF in transport thread
2025-06-13 10:05:58,281 [DEBUG][Thread-250971 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:06:05,178 [DEBUG][Thread-250972 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:06:07,311 [DEBUG][Thread-250973 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:06:07,698 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 10:06:07,698 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 10:06:07,698 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 10:06:07,701 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 10:06:08,168 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 10, 5, 52), 9.8, 50.2, 0.0, 14.31, 8.8, 0, 0, 0, 2, 0, 0),)
2025-06-13 10:06:08,169 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 10:05:52
2025-06-13 10:06:08,250 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 10:06:08,256 [DEBUG][       Thread-250974][   transport.py][1871] : starting thread (client mode): 0x84204460
2025-06-13 10:06:08,256 [DEBUG][       Thread-250974][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 10:06:08,271 [DEBUG][       Thread-250974][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 10:06:08,272 [ INFO][       Thread-250974][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 10:06:08,286 [DEBUG][       Thread-250974][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 10:06:08,286 [DEBUG][       Thread-250974][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 10:06:08,286 [DEBUG][       Thread-250974][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 10:06:08,286 [DEBUG][       Thread-250974][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:06:08,286 [DEBUG][       Thread-250974][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:06:08,286 [DEBUG][       Thread-250974][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:06:08,286 [DEBUG][       Thread-250974][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:06:08,286 [DEBUG][       Thread-250974][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 10:06:08,286 [DEBUG][       Thread-250974][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 10:06:08,286 [DEBUG][       Thread-250974][   transport.py][1871] : client lang: <none>
2025-06-13 10:06:08,286 [DEBUG][       Thread-250974][   transport.py][1871] : server lang: <none>
2025-06-13 10:06:08,286 [DEBUG][       Thread-250974][   transport.py][1871] : kex follows: False
2025-06-13 10:06:08,286 [DEBUG][       Thread-250974][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 10:06:08,286 [DEBUG][       Thread-250974][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 10:06:08,286 [DEBUG][       Thread-250974][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 10:06:08,286 [DEBUG][       Thread-250974][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 10:06:08,286 [DEBUG][       Thread-250974][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 10:06:08,286 [DEBUG][       Thread-250974][   transport.py][1871] : Compression: none
2025-06-13 10:06:08,287 [DEBUG][       Thread-250974][   transport.py][1871] : === End of kex handshake ===
2025-06-13 10:06:08,297 [DEBUG][       Thread-250974][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 10:06:08,297 [DEBUG][       Thread-250974][   transport.py][1871] : Switch to new keys ...
2025-06-13 10:06:08,298 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 10:06:08,298 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 10:06:08,298 [DEBUG][       Thread-250974][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 10:06:08,299 [DEBUG][       Thread-250974][   transport.py][1871] : userauth is OK
2025-06-13 10:06:08,346 [ INFO][       Thread-250974][   transport.py][1871] : Authentication (password) successful!
2025-06-13 10:06:08,347 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 10:06:08,902 [DEBUG][       Thread-250974][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 10:06:08,902 [DEBUG][       Thread-250974][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 10:06:08,945 [DEBUG][       Thread-250974][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 10:06:08,945 [DEBUG][       Thread-250974][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 10:06:08,947 [DEBUG][       Thread-250974][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 10:06:08,958 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 10:06:08,959 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 10:06:08,960 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 10:06:08,962 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 10:06:08,967 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 10:06:08,969 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 10:06:08,969 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 10:06:08,969 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 10:06:08,969 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.337440 -999.00   +8.60  25.20     54   +0.00 1 1 1 1 1   887    0 8.80 19.58 ----- 21.0 25.2 62.0 28.2 13.1 -28.8 11.7 -29.7 10.6 -28.6 11.8 -26.7
2025-06-13 10:06:08,969 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 10:06:08,970 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 10:06:08,970 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.337440
2025-06-13 10:06:08,970 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 10:06:08,970 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 10:06:08,971 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 10:06:08,971 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 10:06:08,971 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 10:06:08,971 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T10:05:52', tmtdew=9.8, humidity=50.2, cloud=0.0, wind=14.31, temperature=8.8, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T08:05:54.816', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 10:06:08,971 [DEBUG][       Thread-250974][   transport.py][1871] : EOF in transport thread
2025-06-13 10:06:09,055 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 10:06:09,066 [DEBUG][       Thread-250977][   transport.py][1871] : starting thread (client mode): 0x867ff310
2025-06-13 10:06:09,066 [DEBUG][       Thread-250977][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 10:06:09,083 [DEBUG][       Thread-250977][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 10:06:09,083 [ INFO][       Thread-250977][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 10:06:09,091 [DEBUG][       Thread-250977][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 10:06:09,092 [DEBUG][       Thread-250977][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 10:06:09,092 [DEBUG][       Thread-250977][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 10:06:09,092 [DEBUG][       Thread-250977][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:06:09,092 [DEBUG][       Thread-250977][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:06:09,092 [DEBUG][       Thread-250977][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:06:09,092 [DEBUG][       Thread-250977][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:06:09,092 [DEBUG][       Thread-250977][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 10:06:09,092 [DEBUG][       Thread-250977][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 10:06:09,092 [DEBUG][       Thread-250977][   transport.py][1871] : client lang: <none>
2025-06-13 10:06:09,092 [DEBUG][       Thread-250977][   transport.py][1871] : server lang: <none>
2025-06-13 10:06:09,092 [DEBUG][       Thread-250977][   transport.py][1871] : kex follows: False
2025-06-13 10:06:09,092 [DEBUG][       Thread-250977][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 10:06:09,092 [DEBUG][       Thread-250977][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 10:06:09,092 [DEBUG][       Thread-250977][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 10:06:09,092 [DEBUG][       Thread-250977][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 10:06:09,092 [DEBUG][       Thread-250977][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 10:06:09,092 [DEBUG][       Thread-250977][   transport.py][1871] : Compression: none
2025-06-13 10:06:09,092 [DEBUG][       Thread-250977][   transport.py][1871] : === End of kex handshake ===
2025-06-13 10:06:09,152 [DEBUG][       Thread-250977][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 10:06:09,153 [DEBUG][       Thread-250977][   transport.py][1871] : Switch to new keys ...
2025-06-13 10:06:09,153 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 10:06:09,154 [DEBUG][       Thread-250977][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 10:06:09,154 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 10:06:09,216 [DEBUG][       Thread-250977][   transport.py][1871] : userauth is OK
2025-06-13 10:06:09,216 [DEBUG][       Thread-250977][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 10:06:09,216 [DEBUG][       Thread-250977][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 10:06:09,216 [DEBUG][       Thread-250977][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 10:06:09,217 [DEBUG][       Thread-250977][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 10:06:09,236 [ INFO][       Thread-250977][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 10:06:09,236 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 10:06:09,236 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 10:06:10,286 [DEBUG][       Thread-250977][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 10:06:10,286 [DEBUG][       Thread-250977][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 10:06:10,335 [DEBUG][       Thread-250977][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 10:06:10,336 [DEBUG][       Thread-250977][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 10:06:10,344 [DEBUG][       Thread-250977][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 10:06:10,353 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 10:06:10,353 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 10:06:10,362 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 10:06:10,371 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 10:06:10,371 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 10:06:10,371 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 10:06:10,379 [DEBUG][       Thread-250977][   transport.py][1871] : EOF in transport thread
2025-06-13 10:06:16,330 [DEBUG][Thread-250979 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:06:20,381 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 10:06:20,381 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 10:06:20,382 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 10:06:20,383 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 10:06:20,840 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 10, 5, 52), 9.8, 50.2, 0.0, 14.31, 8.8, 0, 0, 0, 2, 0, 0),)
2025-06-13 10:06:20,840 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 10:05:52
2025-06-13 10:06:20,921 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 10:06:20,925 [DEBUG][       Thread-250980][   transport.py][1871] : starting thread (client mode): 0x863bcd60
2025-06-13 10:06:20,925 [DEBUG][       Thread-250980][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 10:06:20,946 [DEBUG][       Thread-250980][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 10:06:20,947 [ INFO][       Thread-250980][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 10:06:20,950 [DEBUG][       Thread-250980][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 10:06:20,950 [DEBUG][       Thread-250980][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 10:06:20,950 [DEBUG][       Thread-250980][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 10:06:20,950 [DEBUG][       Thread-250980][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:06:20,950 [DEBUG][       Thread-250980][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:06:20,950 [DEBUG][       Thread-250980][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:06:20,950 [DEBUG][       Thread-250980][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:06:20,950 [DEBUG][       Thread-250980][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 10:06:20,950 [DEBUG][       Thread-250980][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 10:06:20,950 [DEBUG][       Thread-250980][   transport.py][1871] : client lang: <none>
2025-06-13 10:06:20,950 [DEBUG][       Thread-250980][   transport.py][1871] : server lang: <none>
2025-06-13 10:06:20,950 [DEBUG][       Thread-250980][   transport.py][1871] : kex follows: False
2025-06-13 10:06:20,950 [DEBUG][       Thread-250980][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 10:06:20,950 [DEBUG][       Thread-250980][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 10:06:20,950 [DEBUG][       Thread-250980][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 10:06:20,950 [DEBUG][       Thread-250980][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 10:06:20,950 [DEBUG][       Thread-250980][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 10:06:20,950 [DEBUG][       Thread-250980][   transport.py][1871] : Compression: none
2025-06-13 10:06:20,950 [DEBUG][       Thread-250980][   transport.py][1871] : === End of kex handshake ===
2025-06-13 10:06:20,968 [DEBUG][       Thread-250980][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 10:06:20,968 [DEBUG][       Thread-250980][   transport.py][1871] : Switch to new keys ...
2025-06-13 10:06:20,969 [DEBUG][       Thread-250980][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 10:06:20,969 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 10:06:20,969 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 10:06:20,970 [DEBUG][       Thread-250980][   transport.py][1871] : userauth is OK
2025-06-13 10:06:20,983 [ INFO][       Thread-250980][   transport.py][1871] : Authentication (password) successful!
2025-06-13 10:06:20,984 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 10:06:21,641 [DEBUG][       Thread-250980][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 10:06:21,641 [DEBUG][       Thread-250980][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 10:06:21,685 [DEBUG][       Thread-250980][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 10:06:21,685 [DEBUG][       Thread-250980][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 10:06:21,688 [DEBUG][       Thread-250980][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 10:06:21,699 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 10:06:21,700 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 10:06:21,701 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 10:06:21,703 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 10:06:21,707 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 10:06:21,708 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 10:06:21,708 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 10:06:21,709 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 10:06:21,709 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.337440 -999.00   +8.60  25.20     54   +0.00 1 1 1 1 1   887    0 8.80 19.58 ----- 21.0 25.2 62.0 28.2 13.1 -28.8 11.7 -29.7 10.6 -28.6 11.8 -26.7
2025-06-13 10:06:21,709 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 10:06:21,709 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 10:06:21,709 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.337440
2025-06-13 10:06:21,710 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 10:06:21,710 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 10:06:21,710 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 10:06:21,710 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 10:06:21,710 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 10:06:21,710 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T10:05:52', tmtdew=9.8, humidity=50.2, cloud=0.0, wind=14.31, temperature=8.8, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T08:05:54.816', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 10:06:21,711 [DEBUG][       Thread-250980][   transport.py][1871] : EOF in transport thread
2025-06-13 10:06:21,784 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 10:06:21,793 [DEBUG][       Thread-250983][   transport.py][1871] : starting thread (client mode): 0x84207310
2025-06-13 10:06:21,794 [DEBUG][       Thread-250983][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 10:06:21,809 [DEBUG][       Thread-250983][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 10:06:21,809 [ INFO][       Thread-250983][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 10:06:21,816 [DEBUG][       Thread-250983][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 10:06:21,817 [DEBUG][       Thread-250983][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 10:06:21,817 [DEBUG][       Thread-250983][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 10:06:21,817 [DEBUG][       Thread-250983][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:06:21,817 [DEBUG][       Thread-250983][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:06:21,817 [DEBUG][       Thread-250983][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:06:21,817 [DEBUG][       Thread-250983][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:06:21,817 [DEBUG][       Thread-250983][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 10:06:21,817 [DEBUG][       Thread-250983][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 10:06:21,817 [DEBUG][       Thread-250983][   transport.py][1871] : client lang: <none>
2025-06-13 10:06:21,817 [DEBUG][       Thread-250983][   transport.py][1871] : server lang: <none>
2025-06-13 10:06:21,817 [DEBUG][       Thread-250983][   transport.py][1871] : kex follows: False
2025-06-13 10:06:21,817 [DEBUG][       Thread-250983][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 10:06:21,817 [DEBUG][       Thread-250983][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 10:06:21,817 [DEBUG][       Thread-250983][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 10:06:21,817 [DEBUG][       Thread-250983][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 10:06:21,817 [DEBUG][       Thread-250983][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 10:06:21,817 [DEBUG][       Thread-250983][   transport.py][1871] : Compression: none
2025-06-13 10:06:21,817 [DEBUG][       Thread-250983][   transport.py][1871] : === End of kex handshake ===
2025-06-13 10:06:21,876 [DEBUG][       Thread-250983][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 10:06:21,877 [DEBUG][       Thread-250983][   transport.py][1871] : Switch to new keys ...
2025-06-13 10:06:21,877 [DEBUG][       Thread-250983][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 10:06:21,878 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 10:06:21,878 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 10:06:21,935 [DEBUG][       Thread-250983][   transport.py][1871] : userauth is OK
2025-06-13 10:06:21,935 [DEBUG][       Thread-250983][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 10:06:21,935 [DEBUG][       Thread-250983][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 10:06:21,935 [DEBUG][       Thread-250983][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 10:06:21,935 [DEBUG][       Thread-250983][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 10:06:21,954 [ INFO][       Thread-250983][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 10:06:21,954 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 10:06:21,954 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 10:06:23,015 [DEBUG][       Thread-250983][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 10:06:23,015 [DEBUG][       Thread-250983][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 10:06:23,070 [DEBUG][       Thread-250983][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 10:06:23,071 [DEBUG][       Thread-250983][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 10:06:23,081 [DEBUG][       Thread-250983][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 10:06:23,090 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 10:06:23,090 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 10:06:23,098 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 10:06:23,107 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 10:06:23,107 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 10:06:23,107 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 10:06:23,115 [DEBUG][       Thread-250983][   transport.py][1871] : EOF in transport thread
2025-06-13 10:06:23,433 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:06:23,434 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:06:25,346 [DEBUG][Thread-250985 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:06:33,116 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 10:06:33,116 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 10:06:33,116 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 10:06:33,117 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 10:06:33,578 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 10, 6, 24), 9.73, 50.64, 0.0, 13.2, 8.84, 0, 0, 0, 2, 0, 0),)
2025-06-13 10:06:33,578 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 10:06:24
2025-06-13 10:06:33,659 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 10:06:33,665 [DEBUG][       Thread-250986][   transport.py][1871] : starting thread (client mode): 0x84207490
2025-06-13 10:06:33,665 [DEBUG][       Thread-250986][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 10:06:33,686 [DEBUG][       Thread-250986][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 10:06:33,686 [ INFO][       Thread-250986][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 10:06:33,689 [DEBUG][       Thread-250986][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 10:06:33,689 [DEBUG][       Thread-250986][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 10:06:33,689 [DEBUG][       Thread-250986][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 10:06:33,689 [DEBUG][       Thread-250986][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:06:33,689 [DEBUG][       Thread-250986][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:06:33,689 [DEBUG][       Thread-250986][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:06:33,689 [DEBUG][       Thread-250986][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:06:33,689 [DEBUG][       Thread-250986][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 10:06:33,689 [DEBUG][       Thread-250986][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 10:06:33,689 [DEBUG][       Thread-250986][   transport.py][1871] : client lang: <none>
2025-06-13 10:06:33,689 [DEBUG][       Thread-250986][   transport.py][1871] : server lang: <none>
2025-06-13 10:06:33,689 [DEBUG][       Thread-250986][   transport.py][1871] : kex follows: False
2025-06-13 10:06:33,689 [DEBUG][       Thread-250986][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 10:06:33,690 [DEBUG][       Thread-250986][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 10:06:33,690 [DEBUG][       Thread-250986][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 10:06:33,690 [DEBUG][       Thread-250986][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 10:06:33,690 [DEBUG][       Thread-250986][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 10:06:33,690 [DEBUG][       Thread-250986][   transport.py][1871] : Compression: none
2025-06-13 10:06:33,690 [DEBUG][       Thread-250986][   transport.py][1871] : === End of kex handshake ===
2025-06-13 10:06:33,707 [DEBUG][       Thread-250986][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 10:06:33,708 [DEBUG][       Thread-250986][   transport.py][1871] : Switch to new keys ...
2025-06-13 10:06:33,708 [DEBUG][       Thread-250986][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 10:06:33,708 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 10:06:33,709 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 10:06:33,710 [DEBUG][       Thread-250986][   transport.py][1871] : userauth is OK
2025-06-13 10:06:33,723 [ INFO][       Thread-250986][   transport.py][1871] : Authentication (password) successful!
2025-06-13 10:06:33,723 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 10:06:34,363 [DEBUG][Thread-250988 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:06:34,364 [DEBUG][       Thread-250986][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 10:06:34,369 [DEBUG][       Thread-250986][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 10:06:34,405 [DEBUG][       Thread-250986][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 10:06:34,405 [DEBUG][       Thread-250986][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 10:06:34,408 [DEBUG][       Thread-250986][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 10:06:34,420 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 10:06:34,420 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 10:06:34,422 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 10:06:34,423 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 10:06:34,427 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 10:06:34,429 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 10:06:34,429 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 10:06:34,430 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 10:06:34,430 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.337440 -999.00   +8.60  25.20     54   +0.00 1 1 1 1 1   887    0 8.80 19.58 ----- 21.0 25.2 62.0 28.2 13.1 -28.8 11.7 -29.7 10.6 -28.6 11.8 -26.7
2025-06-13 10:06:34,430 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 10:06:34,430 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 10:06:34,430 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.337440
2025-06-13 10:06:34,431 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 10:06:34,431 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 10:06:34,431 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 10:06:34,431 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 10:06:34,431 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 10:06:34,431 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T10:06:24', tmtdew=9.73, humidity=50.64, cloud=0.0, wind=13.2, temperature=8.84, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T08:05:54.816', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 10:06:34,432 [DEBUG][       Thread-250986][   transport.py][1871] : EOF in transport thread
2025-06-13 10:06:34,517 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 10:06:34,529 [DEBUG][       Thread-250990][   transport.py][1871] : starting thread (client mode): 0x863a55d0
2025-06-13 10:06:34,529 [DEBUG][       Thread-250990][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 10:06:34,546 [DEBUG][       Thread-250990][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 10:06:34,546 [ INFO][       Thread-250990][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 10:06:34,556 [DEBUG][       Thread-250990][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 10:06:34,556 [DEBUG][       Thread-250990][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 10:06:34,556 [DEBUG][       Thread-250990][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 10:06:34,556 [DEBUG][       Thread-250990][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:06:34,556 [DEBUG][       Thread-250990][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:06:34,556 [DEBUG][       Thread-250990][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:06:34,556 [DEBUG][       Thread-250990][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:06:34,556 [DEBUG][       Thread-250990][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 10:06:34,556 [DEBUG][       Thread-250990][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 10:06:34,556 [DEBUG][       Thread-250990][   transport.py][1871] : client lang: <none>
2025-06-13 10:06:34,556 [DEBUG][       Thread-250990][   transport.py][1871] : server lang: <none>
2025-06-13 10:06:34,556 [DEBUG][       Thread-250990][   transport.py][1871] : kex follows: False
2025-06-13 10:06:34,556 [DEBUG][       Thread-250990][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 10:06:34,556 [DEBUG][       Thread-250990][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 10:06:34,556 [DEBUG][       Thread-250990][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 10:06:34,556 [DEBUG][       Thread-250990][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 10:06:34,556 [DEBUG][       Thread-250990][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 10:06:34,556 [DEBUG][       Thread-250990][   transport.py][1871] : Compression: none
2025-06-13 10:06:34,556 [DEBUG][       Thread-250990][   transport.py][1871] : === End of kex handshake ===
2025-06-13 10:06:34,614 [DEBUG][       Thread-250990][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 10:06:34,614 [DEBUG][       Thread-250990][   transport.py][1871] : Switch to new keys ...
2025-06-13 10:06:34,614 [DEBUG][       Thread-250990][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 10:06:34,614 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 10:06:34,615 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 10:06:34,677 [DEBUG][       Thread-250990][   transport.py][1871] : userauth is OK
2025-06-13 10:06:34,677 [DEBUG][       Thread-250990][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 10:06:34,677 [DEBUG][       Thread-250990][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 10:06:34,677 [DEBUG][       Thread-250990][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 10:06:34,677 [DEBUG][       Thread-250990][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 10:06:34,693 [ INFO][       Thread-250990][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 10:06:34,693 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 10:06:34,693 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 10:06:35,734 [DEBUG][       Thread-250990][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 10:06:35,734 [DEBUG][       Thread-250990][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 10:06:35,785 [DEBUG][       Thread-250990][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 10:06:35,785 [DEBUG][       Thread-250990][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 10:06:35,793 [DEBUG][       Thread-250990][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 10:06:35,801 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 10:06:35,801 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 10:06:35,809 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 10:06:35,817 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 10:06:35,817 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 10:06:35,817 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 10:06:35,825 [DEBUG][       Thread-250990][   transport.py][1871] : EOF in transport thread
2025-06-13 10:06:43,388 [DEBUG][Thread-250992 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:06:45,827 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 10:06:45,827 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 10:06:45,827 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 10:06:45,830 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 10:06:46,296 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 10, 6, 24), 9.73, 50.64, 0.0, 13.2, 8.84, 0, 0, 0, 2, 0, 0),)
2025-06-13 10:06:46,296 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 10:06:24
2025-06-13 10:06:46,378 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 10:06:46,385 [DEBUG][       Thread-250993][   transport.py][1871] : starting thread (client mode): 0x867b5a20
2025-06-13 10:06:46,385 [DEBUG][       Thread-250993][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 10:06:46,405 [DEBUG][       Thread-250993][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 10:06:46,405 [ INFO][       Thread-250993][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 10:06:46,409 [DEBUG][       Thread-250993][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 10:06:46,409 [DEBUG][       Thread-250993][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 10:06:46,409 [DEBUG][       Thread-250993][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 10:06:46,409 [DEBUG][       Thread-250993][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:06:46,409 [DEBUG][       Thread-250993][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:06:46,409 [DEBUG][       Thread-250993][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:06:46,409 [DEBUG][       Thread-250993][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:06:46,409 [DEBUG][       Thread-250993][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 10:06:46,409 [DEBUG][       Thread-250993][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 10:06:46,409 [DEBUG][       Thread-250993][   transport.py][1871] : client lang: <none>
2025-06-13 10:06:46,409 [DEBUG][       Thread-250993][   transport.py][1871] : server lang: <none>
2025-06-13 10:06:46,409 [DEBUG][       Thread-250993][   transport.py][1871] : kex follows: False
2025-06-13 10:06:46,409 [DEBUG][       Thread-250993][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 10:06:46,409 [DEBUG][       Thread-250993][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 10:06:46,409 [DEBUG][       Thread-250993][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 10:06:46,409 [DEBUG][       Thread-250993][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 10:06:46,410 [DEBUG][       Thread-250993][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 10:06:46,410 [DEBUG][       Thread-250993][   transport.py][1871] : Compression: none
2025-06-13 10:06:46,410 [DEBUG][       Thread-250993][   transport.py][1871] : === End of kex handshake ===
2025-06-13 10:06:46,426 [DEBUG][       Thread-250993][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 10:06:46,426 [DEBUG][       Thread-250993][   transport.py][1871] : Switch to new keys ...
2025-06-13 10:06:46,427 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 10:06:46,427 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 10:06:46,428 [DEBUG][       Thread-250993][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 10:06:46,428 [DEBUG][       Thread-250993][   transport.py][1871] : userauth is OK
2025-06-13 10:06:46,441 [ INFO][       Thread-250993][   transport.py][1871] : Authentication (password) successful!
2025-06-13 10:06:46,442 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 10:06:47,051 [DEBUG][       Thread-250993][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 10:06:47,051 [DEBUG][       Thread-250993][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 10:06:47,092 [DEBUG][       Thread-250993][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 10:06:47,093 [DEBUG][       Thread-250993][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 10:06:47,095 [DEBUG][       Thread-250993][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 10:06:47,108 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 10:06:47,108 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 10:06:47,110 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 10:06:47,111 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 10:06:47,116 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 10:06:47,117 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 10:06:47,117 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 10:06:47,118 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 10:06:47,118 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.337788 -999.00   +8.50  16.95     54   +0.00 1 1 1 1 1   887    0 8.87 21.48 ----- 17.6 16.9 41.4 23.4 13.1 -28.2 11.8 -29.4 10.6 -28.0 11.9 -26.7
2025-06-13 10:06:47,118 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 10:06:47,118 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 10:06:47,118 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.337788
2025-06-13 10:06:47,119 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 10:06:47,119 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 10:06:47,119 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 10:06:47,119 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 10:06:47,119 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 10:06:47,119 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T10:06:24', tmtdew=9.73, humidity=50.64, cloud=0.0, wind=13.2, temperature=8.84, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T08:06:24.883', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 10:06:47,119 [DEBUG][       Thread-250993][   transport.py][1871] : EOF in transport thread
2025-06-13 10:06:47,203 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 10:06:50,028 [DEBUG][Thread-250996 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:06:51,105 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:06:51,115 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:06:52,420 [DEBUG][Thread-250997 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:07:01,436 [DEBUG][Thread-250998 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:07:05,229 [DEBUG][Thread-250999 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:07:10,453 [DEBUG][Thread-251000 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:07:19,470 [DEBUG][Thread-251001 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:07:23,572 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:07:23,573 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:07:28,487 [DEBUG][Thread-251002 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:07:37,505 [DEBUG][Thread-251003 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:07:46,526 [DEBUG][Thread-251004 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:07:51,187 [DEBUG][Thread-251005 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:07:52,259 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:07:52,260 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:07:55,542 [DEBUG][Thread-251006 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:08:04,559 [DEBUG][Thread-251007 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:08:05,281 [DEBUG][Thread-251008 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:08:13,578 [DEBUG][Thread-251009 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:08:22,597 [DEBUG][Thread-251010 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:08:23,710 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:08:23,712 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:08:31,615 [DEBUG][Thread-251011 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:08:40,630 [DEBUG][Thread-251012 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:08:49,648 [DEBUG][Thread-251013 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:08:52,313 [DEBUG][Thread-251014 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:08:53,398 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:08:53,399 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:08:55,828 [WARNING][ poll_weather_worker][      driver.py][ 286] : Unable to open ssh connection for writing weather state to io.saao.ac.za: [Errno 110] Connection timed out
2025-06-13 10:08:58,666 [DEBUG][Thread-251015 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:09:05,339 [DEBUG][Thread-251016 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:09:05,838 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 10:09:05,839 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 10:09:05,839 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 10:09:05,841 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 10:09:06,323 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 10, 9, 2), 9.92, 49.66, 0.0, 16.85, 8.83, 0, 0, 0, 2, 0, 0),)
2025-06-13 10:09:06,323 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 10:09:02
2025-06-13 10:09:06,405 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 10:09:06,411 [DEBUG][       Thread-251017][   transport.py][1871] : starting thread (client mode): 0x867b62f0
2025-06-13 10:09:06,411 [DEBUG][       Thread-251017][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 10:09:06,431 [DEBUG][       Thread-251017][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 10:09:06,431 [ INFO][       Thread-251017][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 10:09:06,435 [DEBUG][       Thread-251017][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 10:09:06,435 [DEBUG][       Thread-251017][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 10:09:06,435 [DEBUG][       Thread-251017][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 10:09:06,435 [DEBUG][       Thread-251017][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:09:06,435 [DEBUG][       Thread-251017][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:09:06,435 [DEBUG][       Thread-251017][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:09:06,435 [DEBUG][       Thread-251017][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:09:06,435 [DEBUG][       Thread-251017][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 10:09:06,435 [DEBUG][       Thread-251017][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 10:09:06,435 [DEBUG][       Thread-251017][   transport.py][1871] : client lang: <none>
2025-06-13 10:09:06,435 [DEBUG][       Thread-251017][   transport.py][1871] : server lang: <none>
2025-06-13 10:09:06,435 [DEBUG][       Thread-251017][   transport.py][1871] : kex follows: False
2025-06-13 10:09:06,435 [DEBUG][       Thread-251017][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 10:09:06,435 [DEBUG][       Thread-251017][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 10:09:06,435 [DEBUG][       Thread-251017][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 10:09:06,435 [DEBUG][       Thread-251017][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 10:09:06,435 [DEBUG][       Thread-251017][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 10:09:06,435 [DEBUG][       Thread-251017][   transport.py][1871] : Compression: none
2025-06-13 10:09:06,435 [DEBUG][       Thread-251017][   transport.py][1871] : === End of kex handshake ===
2025-06-13 10:09:06,452 [DEBUG][       Thread-251017][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 10:09:06,452 [DEBUG][       Thread-251017][   transport.py][1871] : Switch to new keys ...
2025-06-13 10:09:06,453 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 10:09:06,453 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 10:09:06,453 [DEBUG][       Thread-251017][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 10:09:06,454 [DEBUG][       Thread-251017][   transport.py][1871] : userauth is OK
2025-06-13 10:09:06,478 [ INFO][       Thread-251017][   transport.py][1871] : Authentication (password) successful!
2025-06-13 10:09:06,479 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 10:09:07,066 [DEBUG][       Thread-251017][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 10:09:07,066 [DEBUG][       Thread-251017][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 10:09:07,109 [DEBUG][       Thread-251017][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 10:09:07,109 [DEBUG][       Thread-251017][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 10:09:07,112 [DEBUG][       Thread-251017][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 10:09:07,125 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 10:09:07,126 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 10:09:07,127 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 10:09:07,128 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 10:09:07,133 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 10:09:07,135 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 10:09:07,135 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 10:09:07,136 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 10:09:07,136 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.339176 -999.00   +8.60  17.68     54   +0.10 1 1 1 1 1   887    0 8.91 24.56 ----- 17.2 17.7 38.8 21.5 13.2 -28.8 11.8 -29.0 10.7 -27.7 12.0 -26.4
2025-06-13 10:09:07,136 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 10:09:07,136 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 10:09:07,136 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.339176
2025-06-13 10:09:07,136 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 10:09:07,137 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 10:09:07,137 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 10:09:07,137 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 10:09:07,137 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 10:09:07,137 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T10:09:02', tmtdew=9.92, humidity=49.66, cloud=0.0, wind=16.85, temperature=8.83, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T08:08:24.806', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 10:09:07,137 [DEBUG][       Thread-251017][   transport.py][1871] : EOF in transport thread
2025-06-13 10:09:07,221 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 10:09:07,232 [DEBUG][       Thread-251020][   transport.py][1871] : starting thread (client mode): 0x863c9750
2025-06-13 10:09:07,232 [DEBUG][       Thread-251020][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 10:09:07,252 [DEBUG][       Thread-251020][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 10:09:07,252 [ INFO][       Thread-251020][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 10:09:07,259 [DEBUG][       Thread-251020][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 10:09:07,259 [DEBUG][       Thread-251020][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 10:09:07,260 [DEBUG][       Thread-251020][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 10:09:07,260 [DEBUG][       Thread-251020][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:09:07,260 [DEBUG][       Thread-251020][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:09:07,260 [DEBUG][       Thread-251020][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:09:07,260 [DEBUG][       Thread-251020][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:09:07,260 [DEBUG][       Thread-251020][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 10:09:07,260 [DEBUG][       Thread-251020][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 10:09:07,260 [DEBUG][       Thread-251020][   transport.py][1871] : client lang: <none>
2025-06-13 10:09:07,260 [DEBUG][       Thread-251020][   transport.py][1871] : server lang: <none>
2025-06-13 10:09:07,260 [DEBUG][       Thread-251020][   transport.py][1871] : kex follows: False
2025-06-13 10:09:07,260 [DEBUG][       Thread-251020][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 10:09:07,260 [DEBUG][       Thread-251020][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 10:09:07,260 [DEBUG][       Thread-251020][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 10:09:07,260 [DEBUG][       Thread-251020][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 10:09:07,260 [DEBUG][       Thread-251020][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 10:09:07,260 [DEBUG][       Thread-251020][   transport.py][1871] : Compression: none
2025-06-13 10:09:07,261 [DEBUG][       Thread-251020][   transport.py][1871] : === End of kex handshake ===
2025-06-13 10:09:07,318 [DEBUG][       Thread-251020][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 10:09:07,319 [DEBUG][       Thread-251020][   transport.py][1871] : Switch to new keys ...
2025-06-13 10:09:07,319 [DEBUG][       Thread-251020][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 10:09:07,320 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 10:09:07,320 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 10:09:07,374 [DEBUG][       Thread-251020][   transport.py][1871] : userauth is OK
2025-06-13 10:09:07,375 [DEBUG][       Thread-251020][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 10:09:07,375 [DEBUG][       Thread-251020][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 10:09:07,375 [DEBUG][       Thread-251020][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 10:09:07,375 [DEBUG][       Thread-251020][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 10:09:07,397 [ INFO][       Thread-251020][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 10:09:07,398 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 10:09:07,398 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 10:09:07,684 [DEBUG][Thread-251022 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:09:08,513 [DEBUG][       Thread-251020][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 10:09:08,513 [DEBUG][       Thread-251020][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 10:09:08,563 [DEBUG][       Thread-251020][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 10:09:08,564 [DEBUG][       Thread-251020][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 10:09:08,572 [DEBUG][       Thread-251020][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 10:09:08,580 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 10:09:08,580 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 10:09:08,588 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 10:09:08,596 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 10:09:08,596 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 10:09:08,596 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 10:09:08,604 [DEBUG][       Thread-251020][   transport.py][1871] : EOF in transport thread
2025-06-13 10:09:16,713 [DEBUG][Thread-251023 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:09:18,606 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 10:09:18,607 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 10:09:18,607 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 10:09:18,609 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 10:09:19,074 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 10, 9, 2), 9.92, 49.66, 0.0, 16.85, 8.83, 0, 0, 0, 2, 0, 0),)
2025-06-13 10:09:19,074 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 10:09:02
2025-06-13 10:09:19,156 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 10:09:19,160 [DEBUG][       Thread-251024][   transport.py][1871] : starting thread (client mode): 0x863bde40
2025-06-13 10:09:19,160 [DEBUG][       Thread-251024][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 10:09:19,181 [DEBUG][       Thread-251024][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 10:09:19,181 [ INFO][       Thread-251024][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 10:09:19,184 [DEBUG][       Thread-251024][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 10:09:19,184 [DEBUG][       Thread-251024][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 10:09:19,184 [DEBUG][       Thread-251024][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 10:09:19,184 [DEBUG][       Thread-251024][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:09:19,184 [DEBUG][       Thread-251024][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:09:19,184 [DEBUG][       Thread-251024][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:09:19,184 [DEBUG][       Thread-251024][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:09:19,184 [DEBUG][       Thread-251024][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 10:09:19,184 [DEBUG][       Thread-251024][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 10:09:19,184 [DEBUG][       Thread-251024][   transport.py][1871] : client lang: <none>
2025-06-13 10:09:19,184 [DEBUG][       Thread-251024][   transport.py][1871] : server lang: <none>
2025-06-13 10:09:19,184 [DEBUG][       Thread-251024][   transport.py][1871] : kex follows: False
2025-06-13 10:09:19,184 [DEBUG][       Thread-251024][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 10:09:19,184 [DEBUG][       Thread-251024][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 10:09:19,184 [DEBUG][       Thread-251024][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 10:09:19,184 [DEBUG][       Thread-251024][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 10:09:19,184 [DEBUG][       Thread-251024][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 10:09:19,184 [DEBUG][       Thread-251024][   transport.py][1871] : Compression: none
2025-06-13 10:09:19,184 [DEBUG][       Thread-251024][   transport.py][1871] : === End of kex handshake ===
2025-06-13 10:09:19,201 [DEBUG][       Thread-251024][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 10:09:19,201 [DEBUG][       Thread-251024][   transport.py][1871] : Switch to new keys ...
2025-06-13 10:09:19,202 [DEBUG][       Thread-251024][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 10:09:19,202 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 10:09:19,202 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 10:09:19,203 [DEBUG][       Thread-251024][   transport.py][1871] : userauth is OK
2025-06-13 10:09:19,227 [ INFO][       Thread-251024][   transport.py][1871] : Authentication (password) successful!
2025-06-13 10:09:19,227 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 10:09:19,872 [DEBUG][       Thread-251024][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 10:09:19,872 [DEBUG][       Thread-251024][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 10:09:19,913 [DEBUG][       Thread-251024][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 10:09:19,913 [DEBUG][       Thread-251024][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 10:09:19,915 [DEBUG][       Thread-251024][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 10:09:19,929 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 10:09:19,929 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 10:09:19,931 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 10:09:19,932 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 10:09:19,937 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 10:09:19,939 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 10:09:19,939 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 10:09:19,939 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 10:09:19,939 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.339176 -999.00   +8.60  17.68     54   +0.10 1 1 1 1 1   887    0 8.91 24.56 ----- 17.2 17.7 38.8 21.5 13.2 -28.8 11.8 -29.0 10.7 -27.7 12.0 -26.4
2025-06-13 10:09:19,939 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 10:09:19,940 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 10:09:19,940 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.339176
2025-06-13 10:09:19,940 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 10:09:19,940 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 10:09:19,941 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 10:09:19,941 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 10:09:19,941 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 10:09:19,941 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T10:09:02', tmtdew=9.92, humidity=49.66, cloud=0.0, wind=16.85, temperature=8.83, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T08:08:24.806', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 10:09:19,942 [DEBUG][       Thread-251024][   transport.py][1871] : EOF in transport thread
2025-06-13 10:09:20,024 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 10:09:20,034 [DEBUG][       Thread-251027][   transport.py][1871] : starting thread (client mode): 0x863a5210
2025-06-13 10:09:20,034 [DEBUG][       Thread-251027][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 10:09:20,056 [DEBUG][       Thread-251027][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 10:09:20,056 [ INFO][       Thread-251027][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 10:09:20,069 [DEBUG][       Thread-251027][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 10:09:20,069 [DEBUG][       Thread-251027][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 10:09:20,069 [DEBUG][       Thread-251027][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 10:09:20,069 [DEBUG][       Thread-251027][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:09:20,069 [DEBUG][       Thread-251027][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:09:20,069 [DEBUG][       Thread-251027][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:09:20,069 [DEBUG][       Thread-251027][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:09:20,069 [DEBUG][       Thread-251027][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 10:09:20,069 [DEBUG][       Thread-251027][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 10:09:20,069 [DEBUG][       Thread-251027][   transport.py][1871] : client lang: <none>
2025-06-13 10:09:20,069 [DEBUG][       Thread-251027][   transport.py][1871] : server lang: <none>
2025-06-13 10:09:20,069 [DEBUG][       Thread-251027][   transport.py][1871] : kex follows: False
2025-06-13 10:09:20,070 [DEBUG][       Thread-251027][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 10:09:20,070 [DEBUG][       Thread-251027][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 10:09:20,070 [DEBUG][       Thread-251027][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 10:09:20,070 [DEBUG][       Thread-251027][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 10:09:20,070 [DEBUG][       Thread-251027][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 10:09:20,070 [DEBUG][       Thread-251027][   transport.py][1871] : Compression: none
2025-06-13 10:09:20,070 [DEBUG][       Thread-251027][   transport.py][1871] : === End of kex handshake ===
2025-06-13 10:09:20,121 [DEBUG][       Thread-251027][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 10:09:20,122 [DEBUG][       Thread-251027][   transport.py][1871] : Switch to new keys ...
2025-06-13 10:09:20,122 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 10:09:20,123 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 10:09:20,123 [DEBUG][       Thread-251027][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 10:09:20,178 [DEBUG][       Thread-251027][   transport.py][1871] : userauth is OK
2025-06-13 10:09:20,178 [DEBUG][       Thread-251027][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 10:09:20,178 [DEBUG][       Thread-251027][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 10:09:20,178 [DEBUG][       Thread-251027][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 10:09:20,179 [DEBUG][       Thread-251027][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 10:09:20,198 [ INFO][       Thread-251027][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 10:09:20,199 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 10:09:20,199 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 10:09:21,193 [DEBUG][       Thread-251027][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 10:09:21,194 [DEBUG][       Thread-251027][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 10:09:21,247 [DEBUG][       Thread-251027][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 10:09:21,248 [DEBUG][       Thread-251027][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 10:09:21,257 [DEBUG][       Thread-251027][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 10:09:21,268 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 10:09:21,268 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 10:09:21,280 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 10:09:21,289 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 10:09:21,289 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 10:09:21,290 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 10:09:21,301 [DEBUG][       Thread-251027][   transport.py][1871] : EOF in transport thread
2025-06-13 10:09:23,850 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:09:23,852 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:09:25,732 [DEBUG][Thread-251029 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:09:31,300 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 10:09:31,300 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 10:09:31,300 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 10:09:31,303 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 10:09:31,765 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 10, 9, 2), 9.92, 49.66, 0.0, 16.85, 8.83, 0, 0, 0, 2, 0, 0),)
2025-06-13 10:09:31,765 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 10:09:02
2025-06-13 10:09:31,846 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 10:09:31,853 [DEBUG][       Thread-251030][   transport.py][1871] : starting thread (client mode): 0x8636a830
2025-06-13 10:09:31,853 [DEBUG][       Thread-251030][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 10:09:31,872 [DEBUG][       Thread-251030][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 10:09:31,872 [ INFO][       Thread-251030][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 10:09:31,875 [DEBUG][       Thread-251030][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 10:09:31,875 [DEBUG][       Thread-251030][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 10:09:31,875 [DEBUG][       Thread-251030][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 10:09:31,875 [DEBUG][       Thread-251030][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:09:31,875 [DEBUG][       Thread-251030][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:09:31,875 [DEBUG][       Thread-251030][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:09:31,875 [DEBUG][       Thread-251030][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:09:31,875 [DEBUG][       Thread-251030][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 10:09:31,875 [DEBUG][       Thread-251030][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 10:09:31,875 [DEBUG][       Thread-251030][   transport.py][1871] : client lang: <none>
2025-06-13 10:09:31,875 [DEBUG][       Thread-251030][   transport.py][1871] : server lang: <none>
2025-06-13 10:09:31,875 [DEBUG][       Thread-251030][   transport.py][1871] : kex follows: False
2025-06-13 10:09:31,875 [DEBUG][       Thread-251030][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 10:09:31,876 [DEBUG][       Thread-251030][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 10:09:31,876 [DEBUG][       Thread-251030][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 10:09:31,876 [DEBUG][       Thread-251030][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 10:09:31,876 [DEBUG][       Thread-251030][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 10:09:31,876 [DEBUG][       Thread-251030][   transport.py][1871] : Compression: none
2025-06-13 10:09:31,876 [DEBUG][       Thread-251030][   transport.py][1871] : === End of kex handshake ===
2025-06-13 10:09:31,894 [DEBUG][       Thread-251030][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 10:09:31,894 [DEBUG][       Thread-251030][   transport.py][1871] : Switch to new keys ...
2025-06-13 10:09:31,895 [DEBUG][       Thread-251030][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 10:09:31,895 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 10:09:31,895 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 10:09:31,896 [DEBUG][       Thread-251030][   transport.py][1871] : userauth is OK
2025-06-13 10:09:31,909 [ INFO][       Thread-251030][   transport.py][1871] : Authentication (password) successful!
2025-06-13 10:09:31,910 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 10:09:32,497 [DEBUG][       Thread-251030][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 10:09:32,497 [DEBUG][       Thread-251030][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 10:09:32,541 [DEBUG][       Thread-251030][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 10:09:32,541 [DEBUG][       Thread-251030][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 10:09:32,544 [DEBUG][       Thread-251030][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 10:09:32,556 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 10:09:32,557 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 10:09:32,558 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 10:09:32,560 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 10:09:32,565 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 10:09:32,566 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 10:09:32,566 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 10:09:32,567 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 10:09:32,567 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.339871 -999.00   +8.70  19.47     55   +0.10 1 1 1 1 1   887    0 8.82 26.18 ----- 18.5 19.5 50.2 24.9 13.2 -28.5 11.9 -29.4 10.8 -27.2 12.0 -26.5
2025-06-13 10:09:32,567 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 10:09:32,567 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 10:09:32,567 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.339871
2025-06-13 10:09:32,568 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 10:09:32,568 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 10:09:32,568 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 10:09:32,568 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 10:09:32,568 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 10:09:32,569 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T10:09:02', tmtdew=9.92, humidity=49.66, cloud=0.0, wind=16.85, temperature=8.83, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T08:09:24.854', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 10:09:32,569 [DEBUG][       Thread-251030][   transport.py][1871] : EOF in transport thread
2025-06-13 10:09:32,652 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 10:09:32,663 [DEBUG][       Thread-251033][   transport.py][1871] : starting thread (client mode): 0x863c8be0
2025-06-13 10:09:32,663 [DEBUG][       Thread-251033][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 10:09:32,679 [DEBUG][       Thread-251033][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 10:09:32,679 [ INFO][       Thread-251033][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 10:09:32,687 [DEBUG][       Thread-251033][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 10:09:32,688 [DEBUG][       Thread-251033][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 10:09:32,688 [DEBUG][       Thread-251033][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 10:09:32,688 [DEBUG][       Thread-251033][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:09:32,688 [DEBUG][       Thread-251033][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:09:32,688 [DEBUG][       Thread-251033][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:09:32,688 [DEBUG][       Thread-251033][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:09:32,688 [DEBUG][       Thread-251033][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 10:09:32,688 [DEBUG][       Thread-251033][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 10:09:32,688 [DEBUG][       Thread-251033][   transport.py][1871] : client lang: <none>
2025-06-13 10:09:32,688 [DEBUG][       Thread-251033][   transport.py][1871] : server lang: <none>
2025-06-13 10:09:32,688 [DEBUG][       Thread-251033][   transport.py][1871] : kex follows: False
2025-06-13 10:09:32,688 [DEBUG][       Thread-251033][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 10:09:32,688 [DEBUG][       Thread-251033][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 10:09:32,688 [DEBUG][       Thread-251033][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 10:09:32,688 [DEBUG][       Thread-251033][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 10:09:32,688 [DEBUG][       Thread-251033][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 10:09:32,688 [DEBUG][       Thread-251033][   transport.py][1871] : Compression: none
2025-06-13 10:09:32,688 [DEBUG][       Thread-251033][   transport.py][1871] : === End of kex handshake ===
2025-06-13 10:09:32,755 [DEBUG][       Thread-251033][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 10:09:32,755 [DEBUG][       Thread-251033][   transport.py][1871] : Switch to new keys ...
2025-06-13 10:09:32,756 [DEBUG][       Thread-251033][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 10:09:32,756 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 10:09:32,757 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 10:09:32,817 [DEBUG][       Thread-251033][   transport.py][1871] : userauth is OK
2025-06-13 10:09:32,818 [DEBUG][       Thread-251033][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 10:09:32,818 [DEBUG][       Thread-251033][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 10:09:32,818 [DEBUG][       Thread-251033][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 10:09:32,818 [DEBUG][       Thread-251033][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 10:09:32,837 [ INFO][       Thread-251033][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 10:09:32,837 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 10:09:32,837 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 10:09:33,919 [DEBUG][       Thread-251033][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 10:09:33,919 [DEBUG][       Thread-251033][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 10:09:33,968 [DEBUG][       Thread-251033][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 10:09:33,968 [DEBUG][       Thread-251033][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 10:09:33,977 [DEBUG][       Thread-251033][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 10:09:33,986 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 10:09:33,986 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 10:09:33,995 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 10:09:34,004 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 10:09:34,004 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 10:09:34,005 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 10:09:34,013 [DEBUG][       Thread-251033][   transport.py][1871] : EOF in transport thread
2025-06-13 10:09:34,752 [DEBUG][Thread-251035 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:09:43,771 [DEBUG][Thread-251036 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:09:44,013 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 10:09:44,014 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 10:09:44,014 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 10:09:44,016 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 10:09:44,496 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 10, 9, 34), 9.92, 49.78, 0.0, 14.77, 8.83, 0, 0, 0, 2, 0, 0),)
2025-06-13 10:09:44,496 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 10:09:34
2025-06-13 10:09:44,577 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 10:09:44,584 [DEBUG][       Thread-251037][   transport.py][1871] : starting thread (client mode): 0x863bf9a0
2025-06-13 10:09:44,584 [DEBUG][       Thread-251037][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 10:09:44,604 [DEBUG][       Thread-251037][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 10:09:44,604 [ INFO][       Thread-251037][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 10:09:44,608 [DEBUG][       Thread-251037][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 10:09:44,608 [DEBUG][       Thread-251037][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 10:09:44,608 [DEBUG][       Thread-251037][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 10:09:44,608 [DEBUG][       Thread-251037][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:09:44,608 [DEBUG][       Thread-251037][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:09:44,608 [DEBUG][       Thread-251037][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:09:44,608 [DEBUG][       Thread-251037][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:09:44,608 [DEBUG][       Thread-251037][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 10:09:44,608 [DEBUG][       Thread-251037][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 10:09:44,608 [DEBUG][       Thread-251037][   transport.py][1871] : client lang: <none>
2025-06-13 10:09:44,608 [DEBUG][       Thread-251037][   transport.py][1871] : server lang: <none>
2025-06-13 10:09:44,608 [DEBUG][       Thread-251037][   transport.py][1871] : kex follows: False
2025-06-13 10:09:44,608 [DEBUG][       Thread-251037][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 10:09:44,608 [DEBUG][       Thread-251037][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 10:09:44,608 [DEBUG][       Thread-251037][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 10:09:44,608 [DEBUG][       Thread-251037][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 10:09:44,608 [DEBUG][       Thread-251037][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 10:09:44,608 [DEBUG][       Thread-251037][   transport.py][1871] : Compression: none
2025-06-13 10:09:44,608 [DEBUG][       Thread-251037][   transport.py][1871] : === End of kex handshake ===
2025-06-13 10:09:44,625 [DEBUG][       Thread-251037][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 10:09:44,625 [DEBUG][       Thread-251037][   transport.py][1871] : Switch to new keys ...
2025-06-13 10:09:44,626 [DEBUG][       Thread-251037][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 10:09:44,626 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 10:09:44,626 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 10:09:44,627 [DEBUG][       Thread-251037][   transport.py][1871] : userauth is OK
2025-06-13 10:09:44,652 [ INFO][       Thread-251037][   transport.py][1871] : Authentication (password) successful!
2025-06-13 10:09:44,653 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 10:09:45,292 [DEBUG][       Thread-251037][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 10:09:45,292 [DEBUG][       Thread-251037][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 10:09:45,337 [DEBUG][       Thread-251037][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 10:09:45,337 [DEBUG][       Thread-251037][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 10:09:45,340 [DEBUG][       Thread-251037][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 10:09:45,352 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 10:09:45,352 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 10:09:45,354 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 10:09:45,355 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 10:09:45,359 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 10:09:45,361 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 10:09:45,361 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 10:09:45,361 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 10:09:45,361 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.339871 -999.00   +8.70  19.47     55   +0.10 1 1 1 1 1   887    0 8.82 26.18 ----- 18.5 19.5 50.2 24.9 13.2 -28.5 11.9 -29.4 10.8 -27.2 12.0 -26.5
2025-06-13 10:09:45,362 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 10:09:45,362 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 10:09:45,362 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.339871
2025-06-13 10:09:45,362 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 10:09:45,362 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 10:09:45,362 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 10:09:45,363 [DEBUG][       Thread-251037][   transport.py][1871] : EOF in transport thread
2025-06-13 10:09:45,363 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 10:09:45,363 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 10:09:45,364 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T10:09:34', tmtdew=9.92, humidity=49.78, cloud=0.0, wind=14.77, temperature=8.83, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T08:09:24.854', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 10:09:45,445 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 10:09:45,457 [DEBUG][       Thread-251040][   transport.py][1871] : starting thread (client mode): 0x863ec760
2025-06-13 10:09:45,457 [DEBUG][       Thread-251040][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 10:09:45,472 [DEBUG][       Thread-251040][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 10:09:45,472 [ INFO][       Thread-251040][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 10:09:45,480 [DEBUG][       Thread-251040][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 10:09:45,480 [DEBUG][       Thread-251040][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 10:09:45,480 [DEBUG][       Thread-251040][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 10:09:45,480 [DEBUG][       Thread-251040][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:09:45,480 [DEBUG][       Thread-251040][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:09:45,480 [DEBUG][       Thread-251040][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:09:45,480 [DEBUG][       Thread-251040][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:09:45,480 [DEBUG][       Thread-251040][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 10:09:45,480 [DEBUG][       Thread-251040][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 10:09:45,480 [DEBUG][       Thread-251040][   transport.py][1871] : client lang: <none>
2025-06-13 10:09:45,480 [DEBUG][       Thread-251040][   transport.py][1871] : server lang: <none>
2025-06-13 10:09:45,480 [DEBUG][       Thread-251040][   transport.py][1871] : kex follows: False
2025-06-13 10:09:45,480 [DEBUG][       Thread-251040][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 10:09:45,480 [DEBUG][       Thread-251040][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 10:09:45,480 [DEBUG][       Thread-251040][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 10:09:45,480 [DEBUG][       Thread-251040][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 10:09:45,481 [DEBUG][       Thread-251040][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 10:09:45,481 [DEBUG][       Thread-251040][   transport.py][1871] : Compression: none
2025-06-13 10:09:45,481 [DEBUG][       Thread-251040][   transport.py][1871] : === End of kex handshake ===
2025-06-13 10:09:45,538 [DEBUG][       Thread-251040][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 10:09:45,538 [DEBUG][       Thread-251040][   transport.py][1871] : Switch to new keys ...
2025-06-13 10:09:45,539 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 10:09:45,540 [DEBUG][       Thread-251040][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 10:09:45,540 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 10:09:45,601 [DEBUG][       Thread-251040][   transport.py][1871] : userauth is OK
2025-06-13 10:09:45,601 [DEBUG][       Thread-251040][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 10:09:45,602 [DEBUG][       Thread-251040][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 10:09:45,602 [DEBUG][       Thread-251040][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 10:09:45,602 [DEBUG][       Thread-251040][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 10:09:45,621 [ INFO][       Thread-251040][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 10:09:45,621 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 10:09:45,622 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 10:09:46,720 [DEBUG][       Thread-251040][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 10:09:46,720 [DEBUG][       Thread-251040][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 10:09:46,770 [DEBUG][       Thread-251040][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 10:09:46,770 [DEBUG][       Thread-251040][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 10:09:46,779 [DEBUG][       Thread-251040][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 10:09:46,787 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 10:09:46,787 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 10:09:46,795 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 10:09:46,803 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 10:09:46,803 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 10:09:46,803 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 10:09:46,811 [DEBUG][       Thread-251040][   transport.py][1871] : EOF in transport thread
2025-06-13 10:09:52,788 [DEBUG][Thread-251042 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:09:53,479 [DEBUG][Thread-251043 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:09:54,554 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:09:54,554 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:09:56,805 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 10:09:56,805 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 10:09:56,805 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 10:09:56,807 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 10:09:57,278 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 10, 9, 34), 9.92, 49.78, 0.0, 14.77, 8.83, 0, 0, 0, 2, 0, 0),)
2025-06-13 10:09:57,279 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 10:09:34
2025-06-13 10:09:57,360 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 10:09:57,364 [DEBUG][       Thread-251044][   transport.py][1871] : starting thread (client mode): 0x8636b100
2025-06-13 10:09:57,364 [DEBUG][       Thread-251044][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 10:09:57,388 [DEBUG][       Thread-251044][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 10:09:57,388 [ INFO][       Thread-251044][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 10:09:57,391 [DEBUG][       Thread-251044][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 10:09:57,392 [DEBUG][       Thread-251044][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 10:09:57,392 [DEBUG][       Thread-251044][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 10:09:57,392 [DEBUG][       Thread-251044][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:09:57,392 [DEBUG][       Thread-251044][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:09:57,392 [DEBUG][       Thread-251044][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:09:57,392 [DEBUG][       Thread-251044][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:09:57,392 [DEBUG][       Thread-251044][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 10:09:57,392 [DEBUG][       Thread-251044][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 10:09:57,392 [DEBUG][       Thread-251044][   transport.py][1871] : client lang: <none>
2025-06-13 10:09:57,392 [DEBUG][       Thread-251044][   transport.py][1871] : server lang: <none>
2025-06-13 10:09:57,392 [DEBUG][       Thread-251044][   transport.py][1871] : kex follows: False
2025-06-13 10:09:57,392 [DEBUG][       Thread-251044][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 10:09:57,392 [DEBUG][       Thread-251044][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 10:09:57,392 [DEBUG][       Thread-251044][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 10:09:57,392 [DEBUG][       Thread-251044][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 10:09:57,392 [DEBUG][       Thread-251044][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 10:09:57,392 [DEBUG][       Thread-251044][   transport.py][1871] : Compression: none
2025-06-13 10:09:57,392 [DEBUG][       Thread-251044][   transport.py][1871] : === End of kex handshake ===
2025-06-13 10:09:57,407 [DEBUG][       Thread-251044][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 10:09:57,408 [DEBUG][       Thread-251044][   transport.py][1871] : Switch to new keys ...
2025-06-13 10:09:57,408 [DEBUG][       Thread-251044][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 10:09:57,409 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 10:09:57,409 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 10:09:57,410 [DEBUG][       Thread-251044][   transport.py][1871] : userauth is OK
2025-06-13 10:09:57,437 [ INFO][       Thread-251044][   transport.py][1871] : Authentication (password) successful!
2025-06-13 10:09:57,438 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 10:09:58,106 [DEBUG][       Thread-251044][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 10:09:58,106 [DEBUG][       Thread-251044][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 10:09:58,149 [DEBUG][       Thread-251044][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 10:09:58,149 [DEBUG][       Thread-251044][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 10:09:58,152 [DEBUG][       Thread-251044][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 10:09:58,166 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 10:09:58,166 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 10:09:58,168 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 10:09:58,170 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 10:09:58,175 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 10:09:58,177 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 10:09:58,177 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 10:09:58,178 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 10:09:58,178 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.339871 -999.00   +8.70  19.47     55   +0.10 1 1 1 1 1   887    0 8.82 26.18 ----- 18.5 19.5 50.2 24.9 13.2 -28.5 11.9 -29.4 10.8 -27.2 12.0 -26.5
2025-06-13 10:09:58,178 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 10:09:58,178 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 10:09:58,178 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.339871
2025-06-13 10:09:58,179 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 10:09:58,179 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 10:09:58,179 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 10:09:58,179 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 10:09:58,179 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 10:09:58,179 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T10:09:34', tmtdew=9.92, humidity=49.78, cloud=0.0, wind=14.77, temperature=8.83, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T08:09:24.854', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 10:09:58,180 [DEBUG][       Thread-251044][   transport.py][1871] : EOF in transport thread
2025-06-13 10:09:58,257 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 10:09:58,266 [DEBUG][       Thread-251047][   transport.py][1871] : starting thread (client mode): 0x863a55d0
2025-06-13 10:09:58,266 [DEBUG][       Thread-251047][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 10:09:58,281 [DEBUG][       Thread-251047][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 10:09:58,281 [ INFO][       Thread-251047][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 10:09:58,289 [DEBUG][       Thread-251047][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 10:09:58,289 [DEBUG][       Thread-251047][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 10:09:58,289 [DEBUG][       Thread-251047][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 10:09:58,289 [DEBUG][       Thread-251047][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:09:58,289 [DEBUG][       Thread-251047][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:09:58,289 [DEBUG][       Thread-251047][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:09:58,289 [DEBUG][       Thread-251047][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:09:58,289 [DEBUG][       Thread-251047][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 10:09:58,289 [DEBUG][       Thread-251047][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 10:09:58,289 [DEBUG][       Thread-251047][   transport.py][1871] : client lang: <none>
2025-06-13 10:09:58,289 [DEBUG][       Thread-251047][   transport.py][1871] : server lang: <none>
2025-06-13 10:09:58,289 [DEBUG][       Thread-251047][   transport.py][1871] : kex follows: False
2025-06-13 10:09:58,289 [DEBUG][       Thread-251047][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 10:09:58,289 [DEBUG][       Thread-251047][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 10:09:58,289 [DEBUG][       Thread-251047][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 10:09:58,290 [DEBUG][       Thread-251047][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 10:09:58,290 [DEBUG][       Thread-251047][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 10:09:58,290 [DEBUG][       Thread-251047][   transport.py][1871] : Compression: none
2025-06-13 10:09:58,290 [DEBUG][       Thread-251047][   transport.py][1871] : === End of kex handshake ===
2025-06-13 10:09:58,348 [DEBUG][       Thread-251047][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 10:09:58,348 [DEBUG][       Thread-251047][   transport.py][1871] : Switch to new keys ...
2025-06-13 10:09:58,349 [DEBUG][       Thread-251047][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 10:09:58,349 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 10:09:58,350 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 10:09:58,406 [DEBUG][       Thread-251047][   transport.py][1871] : userauth is OK
2025-06-13 10:09:58,406 [DEBUG][       Thread-251047][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 10:09:58,406 [DEBUG][       Thread-251047][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 10:09:58,406 [DEBUG][       Thread-251047][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 10:09:58,406 [DEBUG][       Thread-251047][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 10:09:58,420 [ INFO][       Thread-251047][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 10:09:58,420 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 10:09:58,420 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 10:09:59,434 [DEBUG][       Thread-251047][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 10:09:59,434 [DEBUG][       Thread-251047][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 10:09:59,483 [DEBUG][       Thread-251047][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 10:09:59,484 [DEBUG][       Thread-251047][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 10:09:59,492 [DEBUG][       Thread-251047][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 10:09:59,501 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 10:09:59,501 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 10:09:59,509 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 10:09:59,519 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 10:09:59,519 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 10:09:59,519 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 10:09:59,528 [DEBUG][       Thread-251047][   transport.py][1871] : EOF in transport thread
2025-06-13 10:10:01,821 [DEBUG][Thread-251049 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:10:05,392 [DEBUG][Thread-251050 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:10:09,530 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 10:10:09,530 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 10:10:09,530 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 10:10:09,532 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 10:10:09,992 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 10, 10, 6), 9.92, 49.76, 0.0, 15.77, 8.83, 0, 0, 0, 2, 0, 0),)
2025-06-13 10:10:09,992 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 10:10:06
2025-06-13 10:10:10,074 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 10:10:10,080 [DEBUG][       Thread-251051][   transport.py][1871] : starting thread (client mode): 0x867fc0d0
2025-06-13 10:10:10,080 [DEBUG][       Thread-251051][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 10:10:10,092 [DEBUG][       Thread-251051][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 10:10:10,092 [ INFO][       Thread-251051][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 10:10:10,095 [DEBUG][       Thread-251051][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 10:10:10,095 [DEBUG][       Thread-251051][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 10:10:10,095 [DEBUG][       Thread-251051][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 10:10:10,095 [DEBUG][       Thread-251051][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:10:10,095 [DEBUG][       Thread-251051][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:10:10,095 [DEBUG][       Thread-251051][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:10:10,095 [DEBUG][       Thread-251051][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:10:10,095 [DEBUG][       Thread-251051][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 10:10:10,095 [DEBUG][       Thread-251051][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 10:10:10,095 [DEBUG][       Thread-251051][   transport.py][1871] : client lang: <none>
2025-06-13 10:10:10,095 [DEBUG][       Thread-251051][   transport.py][1871] : server lang: <none>
2025-06-13 10:10:10,095 [DEBUG][       Thread-251051][   transport.py][1871] : kex follows: False
2025-06-13 10:10:10,095 [DEBUG][       Thread-251051][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 10:10:10,095 [DEBUG][       Thread-251051][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 10:10:10,095 [DEBUG][       Thread-251051][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 10:10:10,095 [DEBUG][       Thread-251051][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 10:10:10,095 [DEBUG][       Thread-251051][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 10:10:10,095 [DEBUG][       Thread-251051][   transport.py][1871] : Compression: none
2025-06-13 10:10:10,095 [DEBUG][       Thread-251051][   transport.py][1871] : === End of kex handshake ===
2025-06-13 10:10:10,117 [DEBUG][       Thread-251051][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 10:10:10,118 [DEBUG][       Thread-251051][   transport.py][1871] : Switch to new keys ...
2025-06-13 10:10:10,118 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 10:10:10,118 [DEBUG][       Thread-251051][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 10:10:10,119 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 10:10:10,120 [DEBUG][       Thread-251051][   transport.py][1871] : userauth is OK
2025-06-13 10:10:10,133 [ INFO][       Thread-251051][   transport.py][1871] : Authentication (password) successful!
2025-06-13 10:10:10,133 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 10:10:10,837 [DEBUG][Thread-251053 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:10:11,551 [DEBUG][       Thread-251051][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 10:10:11,551 [DEBUG][       Thread-251051][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 10:10:11,593 [DEBUG][       Thread-251051][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 10:10:11,593 [DEBUG][       Thread-251051][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 10:10:11,596 [DEBUG][       Thread-251051][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 10:10:11,609 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 10:10:11,610 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 10:10:11,612 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 10:10:11,613 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 10:10:11,618 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 10:10:11,620 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 10:10:11,620 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 10:10:11,621 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 10:10:11,621 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.340218 -999.00   +8.70  16.70     54   +0.00 1 1 1 1 1   887    0 9.10 26.37 ----- 19.8 16.7 44.4 22.6 13.3 -28.4 11.9 -29.1 10.8 -27.6 12.0 -26.5
2025-06-13 10:10:11,621 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 10:10:11,621 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 10:10:11,621 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.340218
2025-06-13 10:10:11,621 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 10:10:11,622 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 10:10:11,622 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 10:10:11,622 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 10:10:11,622 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 10:10:11,622 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T10:10:06', tmtdew=9.92, humidity=49.76, cloud=0.0, wind=15.77, temperature=8.83, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T08:09:54.835', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 10:10:11,622 [DEBUG][       Thread-251051][   transport.py][1871] : EOF in transport thread
2025-06-13 10:10:11,707 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 10:10:11,718 [DEBUG][       Thread-251055][   transport.py][1871] : starting thread (client mode): 0x8636a500
2025-06-13 10:10:11,718 [DEBUG][       Thread-251055][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 10:10:11,733 [DEBUG][       Thread-251055][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 10:10:11,733 [ INFO][       Thread-251055][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 10:10:11,743 [DEBUG][       Thread-251055][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 10:10:11,743 [DEBUG][       Thread-251055][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 10:10:11,743 [DEBUG][       Thread-251055][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 10:10:11,743 [DEBUG][       Thread-251055][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:10:11,743 [DEBUG][       Thread-251055][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:10:11,743 [DEBUG][       Thread-251055][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:10:11,743 [DEBUG][       Thread-251055][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:10:11,743 [DEBUG][       Thread-251055][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 10:10:11,743 [DEBUG][       Thread-251055][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 10:10:11,743 [DEBUG][       Thread-251055][   transport.py][1871] : client lang: <none>
2025-06-13 10:10:11,743 [DEBUG][       Thread-251055][   transport.py][1871] : server lang: <none>
2025-06-13 10:10:11,743 [DEBUG][       Thread-251055][   transport.py][1871] : kex follows: False
2025-06-13 10:10:11,743 [DEBUG][       Thread-251055][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 10:10:11,743 [DEBUG][       Thread-251055][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 10:10:11,743 [DEBUG][       Thread-251055][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 10:10:11,743 [DEBUG][       Thread-251055][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 10:10:11,743 [DEBUG][       Thread-251055][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 10:10:11,743 [DEBUG][       Thread-251055][   transport.py][1871] : Compression: none
2025-06-13 10:10:11,743 [DEBUG][       Thread-251055][   transport.py][1871] : === End of kex handshake ===
2025-06-13 10:10:11,798 [DEBUG][       Thread-251055][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 10:10:11,798 [DEBUG][       Thread-251055][   transport.py][1871] : Switch to new keys ...
2025-06-13 10:10:11,799 [DEBUG][       Thread-251055][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 10:10:11,799 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 10:10:11,799 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 10:10:11,855 [DEBUG][       Thread-251055][   transport.py][1871] : userauth is OK
2025-06-13 10:10:11,855 [DEBUG][       Thread-251055][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 10:10:11,855 [DEBUG][       Thread-251055][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 10:10:11,855 [DEBUG][       Thread-251055][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 10:10:11,855 [DEBUG][       Thread-251055][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 10:10:11,874 [ INFO][       Thread-251055][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 10:10:11,874 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 10:10:11,875 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 10:10:12,897 [DEBUG][       Thread-251055][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 10:10:12,897 [DEBUG][       Thread-251055][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 10:10:12,947 [DEBUG][       Thread-251055][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 10:10:12,948 [DEBUG][       Thread-251055][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 10:10:12,957 [DEBUG][       Thread-251055][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 10:10:12,965 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 10:10:12,965 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 10:10:12,974 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 10:10:12,983 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 10:10:12,983 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 10:10:12,983 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 10:10:12,991 [DEBUG][       Thread-251055][   transport.py][1871] : EOF in transport thread
2025-06-13 10:10:19,855 [DEBUG][Thread-251057 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:10:22,993 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 10:10:22,993 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 10:10:22,994 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 10:10:22,996 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 10:10:23,455 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 10, 10, 6), 9.92, 49.76, 0.0, 15.77, 8.83, 0, 0, 0, 2, 0, 0),)
2025-06-13 10:10:23,455 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 10:10:06
2025-06-13 10:10:23,535 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 10:10:23,539 [DEBUG][       Thread-251058][   transport.py][1871] : starting thread (client mode): 0x8636a7a0
2025-06-13 10:10:23,539 [DEBUG][       Thread-251058][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 10:10:23,563 [DEBUG][       Thread-251058][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 10:10:23,563 [ INFO][       Thread-251058][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 10:10:23,566 [DEBUG][       Thread-251058][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 10:10:23,566 [DEBUG][       Thread-251058][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 10:10:23,566 [DEBUG][       Thread-251058][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 10:10:23,566 [DEBUG][       Thread-251058][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:10:23,566 [DEBUG][       Thread-251058][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:10:23,566 [DEBUG][       Thread-251058][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:10:23,566 [DEBUG][       Thread-251058][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:10:23,566 [DEBUG][       Thread-251058][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 10:10:23,566 [DEBUG][       Thread-251058][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 10:10:23,566 [DEBUG][       Thread-251058][   transport.py][1871] : client lang: <none>
2025-06-13 10:10:23,566 [DEBUG][       Thread-251058][   transport.py][1871] : server lang: <none>
2025-06-13 10:10:23,566 [DEBUG][       Thread-251058][   transport.py][1871] : kex follows: False
2025-06-13 10:10:23,566 [DEBUG][       Thread-251058][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 10:10:23,566 [DEBUG][       Thread-251058][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 10:10:23,566 [DEBUG][       Thread-251058][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 10:10:23,566 [DEBUG][       Thread-251058][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 10:10:23,566 [DEBUG][       Thread-251058][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 10:10:23,566 [DEBUG][       Thread-251058][   transport.py][1871] : Compression: none
2025-06-13 10:10:23,566 [DEBUG][       Thread-251058][   transport.py][1871] : === End of kex handshake ===
2025-06-13 10:10:23,577 [DEBUG][       Thread-251058][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 10:10:23,577 [DEBUG][       Thread-251058][   transport.py][1871] : Switch to new keys ...
2025-06-13 10:10:23,578 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 10:10:23,578 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 10:10:23,578 [DEBUG][       Thread-251058][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 10:10:23,579 [DEBUG][       Thread-251058][   transport.py][1871] : userauth is OK
2025-06-13 10:10:23,592 [ INFO][       Thread-251058][   transport.py][1871] : Authentication (password) successful!
2025-06-13 10:10:23,592 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 10:10:23,988 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:10:23,989 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:10:24,214 [DEBUG][       Thread-251058][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 10:10:24,214 [DEBUG][       Thread-251058][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 10:10:24,257 [DEBUG][       Thread-251058][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 10:10:24,257 [DEBUG][       Thread-251058][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 10:10:24,260 [DEBUG][       Thread-251058][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 10:10:24,272 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 10:10:24,272 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 10:10:24,274 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 10:10:24,276 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 10:10:24,280 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 10:10:24,282 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 10:10:24,282 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 10:10:24,282 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 10:10:24,282 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.340218 -999.00   +8.70  16.70     54   +0.00 1 1 1 1 1   887    0 9.10 26.37 ----- 19.8 16.7 44.4 22.6 13.3 -28.4 11.9 -29.1 10.8 -27.6 12.0 -26.5
2025-06-13 10:10:24,283 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 10:10:24,283 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 10:10:24,283 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.340218
2025-06-13 10:10:24,283 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 10:10:24,283 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 10:10:24,284 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 10:10:24,284 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 10:10:24,284 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 10:10:24,284 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T10:10:06', tmtdew=9.92, humidity=49.76, cloud=0.0, wind=15.77, temperature=8.83, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T08:09:54.835', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 10:10:24,284 [DEBUG][       Thread-251058][   transport.py][1871] : EOF in transport thread
2025-06-13 10:10:24,367 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 10:10:24,377 [DEBUG][       Thread-251061][   transport.py][1871] : starting thread (client mode): 0x867b56f0
2025-06-13 10:10:24,377 [DEBUG][       Thread-251061][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 10:10:24,393 [DEBUG][       Thread-251061][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 10:10:24,393 [ INFO][       Thread-251061][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 10:10:24,401 [DEBUG][       Thread-251061][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 10:10:24,401 [DEBUG][       Thread-251061][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 10:10:24,401 [DEBUG][       Thread-251061][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 10:10:24,401 [DEBUG][       Thread-251061][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:10:24,401 [DEBUG][       Thread-251061][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:10:24,401 [DEBUG][       Thread-251061][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:10:24,401 [DEBUG][       Thread-251061][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:10:24,401 [DEBUG][       Thread-251061][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 10:10:24,401 [DEBUG][       Thread-251061][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 10:10:24,401 [DEBUG][       Thread-251061][   transport.py][1871] : client lang: <none>
2025-06-13 10:10:24,401 [DEBUG][       Thread-251061][   transport.py][1871] : server lang: <none>
2025-06-13 10:10:24,401 [DEBUG][       Thread-251061][   transport.py][1871] : kex follows: False
2025-06-13 10:10:24,401 [DEBUG][       Thread-251061][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 10:10:24,401 [DEBUG][       Thread-251061][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 10:10:24,402 [DEBUG][       Thread-251061][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 10:10:24,402 [DEBUG][       Thread-251061][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 10:10:24,402 [DEBUG][       Thread-251061][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 10:10:24,402 [DEBUG][       Thread-251061][   transport.py][1871] : Compression: none
2025-06-13 10:10:24,402 [DEBUG][       Thread-251061][   transport.py][1871] : === End of kex handshake ===
2025-06-13 10:10:24,458 [DEBUG][       Thread-251061][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 10:10:24,458 [DEBUG][       Thread-251061][   transport.py][1871] : Switch to new keys ...
2025-06-13 10:10:24,458 [DEBUG][       Thread-251061][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 10:10:24,459 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 10:10:24,459 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 10:10:24,514 [DEBUG][       Thread-251061][   transport.py][1871] : userauth is OK
2025-06-13 10:10:24,514 [DEBUG][       Thread-251061][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 10:10:24,514 [DEBUG][       Thread-251061][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 10:10:24,514 [DEBUG][       Thread-251061][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 10:10:24,514 [DEBUG][       Thread-251061][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 10:10:24,534 [ INFO][       Thread-251061][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 10:10:24,535 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 10:10:24,535 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 10:10:25,633 [DEBUG][       Thread-251061][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 10:10:25,633 [DEBUG][       Thread-251061][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 10:10:25,683 [DEBUG][       Thread-251061][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 10:10:25,683 [DEBUG][       Thread-251061][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 10:10:25,695 [DEBUG][       Thread-251061][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 10:10:25,717 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 10:10:25,717 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 10:10:25,724 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 10:10:25,732 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 10:10:25,732 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 10:10:25,732 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 10:10:25,740 [DEBUG][       Thread-251061][   transport.py][1871] : EOF in transport thread
2025-06-13 10:10:28,884 [DEBUG][Thread-251063 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:10:35,743 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 10:10:35,743 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 10:10:35,743 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 10:10:35,743 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 10:10:36,197 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 10, 10, 6), 9.92, 49.76, 0.0, 15.77, 8.83, 0, 0, 0, 2, 0, 0),)
2025-06-13 10:10:36,197 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 10:10:06
2025-06-13 10:10:36,277 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 10:10:36,283 [DEBUG][       Thread-251064][   transport.py][1871] : starting thread (client mode): 0x842054b0
2025-06-13 10:10:36,283 [DEBUG][       Thread-251064][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 10:10:36,307 [DEBUG][       Thread-251064][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 10:10:36,307 [ INFO][       Thread-251064][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 10:10:36,311 [DEBUG][       Thread-251064][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 10:10:36,311 [DEBUG][       Thread-251064][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 10:10:36,311 [DEBUG][       Thread-251064][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 10:10:36,311 [DEBUG][       Thread-251064][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:10:36,311 [DEBUG][       Thread-251064][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:10:36,311 [DEBUG][       Thread-251064][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:10:36,311 [DEBUG][       Thread-251064][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:10:36,311 [DEBUG][       Thread-251064][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 10:10:36,311 [DEBUG][       Thread-251064][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 10:10:36,311 [DEBUG][       Thread-251064][   transport.py][1871] : client lang: <none>
2025-06-13 10:10:36,311 [DEBUG][       Thread-251064][   transport.py][1871] : server lang: <none>
2025-06-13 10:10:36,311 [DEBUG][       Thread-251064][   transport.py][1871] : kex follows: False
2025-06-13 10:10:36,311 [DEBUG][       Thread-251064][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 10:10:36,311 [DEBUG][       Thread-251064][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 10:10:36,311 [DEBUG][       Thread-251064][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 10:10:36,311 [DEBUG][       Thread-251064][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 10:10:36,311 [DEBUG][       Thread-251064][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 10:10:36,311 [DEBUG][       Thread-251064][   transport.py][1871] : Compression: none
2025-06-13 10:10:36,311 [DEBUG][       Thread-251064][   transport.py][1871] : === End of kex handshake ===
2025-06-13 10:10:36,325 [DEBUG][       Thread-251064][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 10:10:36,326 [DEBUG][       Thread-251064][   transport.py][1871] : Switch to new keys ...
2025-06-13 10:10:36,326 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 10:10:36,327 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 10:10:36,327 [DEBUG][       Thread-251064][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 10:10:36,328 [DEBUG][       Thread-251064][   transport.py][1871] : userauth is OK
2025-06-13 10:10:36,340 [ INFO][       Thread-251064][   transport.py][1871] : Authentication (password) successful!
2025-06-13 10:10:36,341 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 10:10:37,903 [DEBUG][Thread-251066 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:10:37,934 [DEBUG][       Thread-251064][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 10:10:37,934 [DEBUG][       Thread-251064][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 10:10:37,977 [DEBUG][       Thread-251064][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 10:10:37,977 [DEBUG][       Thread-251064][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 10:10:37,980 [DEBUG][       Thread-251064][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 10:10:37,993 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 10:10:37,994 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 10:10:37,995 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 10:10:37,996 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 10:10:38,001 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 10:10:38,003 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 10:10:38,003 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 10:10:38,004 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 10:10:38,004 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.340218 -999.00   +8.70  16.70     54   +0.00 1 1 1 1 1   887    0 9.10 26.37 ----- 19.8 16.7 44.4 22.6 13.3 -28.4 11.9 -29.1 10.8 -27.6 12.0 -26.5
2025-06-13 10:10:38,004 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 10:10:38,004 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 10:10:38,004 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.340218
2025-06-13 10:10:38,004 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 10:10:38,005 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 10:10:38,005 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 10:10:38,005 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 10:10:38,005 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 10:10:38,005 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T10:10:06', tmtdew=9.92, humidity=49.76, cloud=0.0, wind=15.77, temperature=8.83, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T08:09:54.835', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 10:10:38,005 [DEBUG][       Thread-251064][   transport.py][1871] : EOF in transport thread
2025-06-13 10:10:38,089 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 10:10:38,101 [DEBUG][       Thread-251068][   transport.py][1871] : starting thread (client mode): 0x86369030
2025-06-13 10:10:38,101 [DEBUG][       Thread-251068][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 10:10:38,116 [DEBUG][       Thread-251068][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 10:10:38,116 [ INFO][       Thread-251068][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 10:10:38,132 [DEBUG][       Thread-251068][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 10:10:38,133 [DEBUG][       Thread-251068][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 10:10:38,133 [DEBUG][       Thread-251068][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 10:10:38,133 [DEBUG][       Thread-251068][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:10:38,133 [DEBUG][       Thread-251068][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:10:38,133 [DEBUG][       Thread-251068][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:10:38,133 [DEBUG][       Thread-251068][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:10:38,133 [DEBUG][       Thread-251068][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 10:10:38,133 [DEBUG][       Thread-251068][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 10:10:38,133 [DEBUG][       Thread-251068][   transport.py][1871] : client lang: <none>
2025-06-13 10:10:38,133 [DEBUG][       Thread-251068][   transport.py][1871] : server lang: <none>
2025-06-13 10:10:38,133 [DEBUG][       Thread-251068][   transport.py][1871] : kex follows: False
2025-06-13 10:10:38,133 [DEBUG][       Thread-251068][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 10:10:38,133 [DEBUG][       Thread-251068][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 10:10:38,133 [DEBUG][       Thread-251068][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 10:10:38,133 [DEBUG][       Thread-251068][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 10:10:38,133 [DEBUG][       Thread-251068][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 10:10:38,133 [DEBUG][       Thread-251068][   transport.py][1871] : Compression: none
2025-06-13 10:10:38,133 [DEBUG][       Thread-251068][   transport.py][1871] : === End of kex handshake ===
2025-06-13 10:10:38,193 [DEBUG][       Thread-251068][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 10:10:38,194 [DEBUG][       Thread-251068][   transport.py][1871] : Switch to new keys ...
2025-06-13 10:10:38,194 [DEBUG][       Thread-251068][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 10:10:38,195 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 10:10:38,195 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 10:10:38,251 [DEBUG][       Thread-251068][   transport.py][1871] : userauth is OK
2025-06-13 10:10:38,251 [DEBUG][       Thread-251068][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 10:10:38,251 [DEBUG][       Thread-251068][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 10:10:38,252 [DEBUG][       Thread-251068][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 10:10:38,252 [DEBUG][       Thread-251068][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 10:10:38,269 [ INFO][       Thread-251068][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 10:10:38,269 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 10:10:38,269 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 10:10:39,300 [DEBUG][       Thread-251068][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 10:10:39,300 [DEBUG][       Thread-251068][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 10:10:39,347 [DEBUG][       Thread-251068][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 10:10:39,347 [DEBUG][       Thread-251068][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 10:10:39,356 [DEBUG][       Thread-251068][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 10:10:39,363 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 10:10:39,363 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 10:10:39,371 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 10:10:39,379 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 10:10:39,379 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 10:10:39,379 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 10:10:39,387 [DEBUG][       Thread-251068][   transport.py][1871] : EOF in transport thread
2025-06-13 10:10:46,923 [DEBUG][Thread-251070 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:10:49,389 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 10:10:49,390 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 10:10:49,390 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 10:10:49,392 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 10:10:49,851 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 10, 10, 37), 9.91, 49.82, 0.0, 19.85, 8.86, 0, 0, 0, 2, 0, 0),)
2025-06-13 10:10:49,851 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 10:10:37
2025-06-13 10:10:49,933 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 10:10:49,940 [DEBUG][       Thread-251071][   transport.py][1871] : starting thread (client mode): 0x84206bc0
2025-06-13 10:10:49,940 [DEBUG][       Thread-251071][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 10:10:49,959 [DEBUG][       Thread-251071][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 10:10:49,959 [ INFO][       Thread-251071][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 10:10:49,963 [DEBUG][       Thread-251071][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 10:10:49,963 [DEBUG][       Thread-251071][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 10:10:49,963 [DEBUG][       Thread-251071][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 10:10:49,963 [DEBUG][       Thread-251071][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:10:49,963 [DEBUG][       Thread-251071][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:10:49,963 [DEBUG][       Thread-251071][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:10:49,963 [DEBUG][       Thread-251071][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:10:49,963 [DEBUG][       Thread-251071][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 10:10:49,963 [DEBUG][       Thread-251071][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 10:10:49,963 [DEBUG][       Thread-251071][   transport.py][1871] : client lang: <none>
2025-06-13 10:10:49,963 [DEBUG][       Thread-251071][   transport.py][1871] : server lang: <none>
2025-06-13 10:10:49,963 [DEBUG][       Thread-251071][   transport.py][1871] : kex follows: False
2025-06-13 10:10:49,963 [DEBUG][       Thread-251071][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 10:10:49,963 [DEBUG][       Thread-251071][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 10:10:49,963 [DEBUG][       Thread-251071][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 10:10:49,963 [DEBUG][       Thread-251071][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 10:10:49,963 [DEBUG][       Thread-251071][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 10:10:49,963 [DEBUG][       Thread-251071][   transport.py][1871] : Compression: none
2025-06-13 10:10:49,963 [DEBUG][       Thread-251071][   transport.py][1871] : === End of kex handshake ===
2025-06-13 10:10:49,979 [DEBUG][       Thread-251071][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 10:10:49,980 [DEBUG][       Thread-251071][   transport.py][1871] : Switch to new keys ...
2025-06-13 10:10:49,980 [DEBUG][       Thread-251071][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 10:10:49,981 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 10:10:49,981 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 10:10:49,982 [DEBUG][       Thread-251071][   transport.py][1871] : userauth is OK
2025-06-13 10:10:50,006 [ INFO][       Thread-251071][   transport.py][1871] : Authentication (password) successful!
2025-06-13 10:10:50,007 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 10:10:50,641 [DEBUG][       Thread-251071][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 10:10:50,641 [DEBUG][       Thread-251071][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 10:10:50,685 [DEBUG][       Thread-251071][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 10:10:50,685 [DEBUG][       Thread-251071][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 10:10:50,688 [DEBUG][       Thread-251071][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 10:10:50,699 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 10:10:50,699 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 10:10:50,701 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 10:10:50,702 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 10:10:50,707 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 10:10:50,708 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 10:10:50,708 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 10:10:50,709 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 10:10:50,709 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.340565 -999.00   +8.70  19.53     54   +0.00 1 1 1 1 1   887    0 9.14 25.24 ----- 17.6 19.5 37.4 22.6 13.3 -28.4 11.9 -29.3 10.8 -27.6 12.0 -26.5
2025-06-13 10:10:50,709 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 10:10:50,709 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 10:10:50,709 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.340565
2025-06-13 10:10:50,710 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 10:10:50,710 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 10:10:50,710 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 10:10:50,710 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 10:10:50,710 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 10:10:50,710 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T10:10:37', tmtdew=9.91, humidity=49.82, cloud=0.0, wind=19.85, temperature=8.86, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T08:10:24.816', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 10:10:50,711 [DEBUG][       Thread-251071][   transport.py][1871] : EOF in transport thread
2025-06-13 10:10:50,793 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 10:10:50,805 [DEBUG][       Thread-251074][   transport.py][1871] : starting thread (client mode): 0x867b49a0
2025-06-13 10:10:50,805 [DEBUG][       Thread-251074][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 10:10:50,820 [DEBUG][       Thread-251074][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 10:10:50,820 [ INFO][       Thread-251074][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 10:10:50,828 [DEBUG][       Thread-251074][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 10:10:50,828 [DEBUG][       Thread-251074][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 10:10:50,828 [DEBUG][       Thread-251074][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 10:10:50,828 [DEBUG][       Thread-251074][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:10:50,828 [DEBUG][       Thread-251074][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:10:50,828 [DEBUG][       Thread-251074][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:10:50,828 [DEBUG][       Thread-251074][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:10:50,828 [DEBUG][       Thread-251074][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 10:10:50,828 [DEBUG][       Thread-251074][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 10:10:50,828 [DEBUG][       Thread-251074][   transport.py][1871] : client lang: <none>
2025-06-13 10:10:50,828 [DEBUG][       Thread-251074][   transport.py][1871] : server lang: <none>
2025-06-13 10:10:50,828 [DEBUG][       Thread-251074][   transport.py][1871] : kex follows: False
2025-06-13 10:10:50,828 [DEBUG][       Thread-251074][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 10:10:50,828 [DEBUG][       Thread-251074][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 10:10:50,828 [DEBUG][       Thread-251074][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 10:10:50,828 [DEBUG][       Thread-251074][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 10:10:50,829 [DEBUG][       Thread-251074][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 10:10:50,829 [DEBUG][       Thread-251074][   transport.py][1871] : Compression: none
2025-06-13 10:10:50,829 [DEBUG][       Thread-251074][   transport.py][1871] : === End of kex handshake ===
2025-06-13 10:10:50,889 [DEBUG][       Thread-251074][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 10:10:50,889 [DEBUG][       Thread-251074][   transport.py][1871] : Switch to new keys ...
2025-06-13 10:10:50,890 [DEBUG][       Thread-251074][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 10:10:50,890 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 10:10:50,891 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 10:10:50,950 [DEBUG][       Thread-251074][   transport.py][1871] : userauth is OK
2025-06-13 10:10:50,950 [DEBUG][       Thread-251074][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 10:10:50,950 [DEBUG][       Thread-251074][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 10:10:50,951 [DEBUG][       Thread-251074][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 10:10:50,951 [DEBUG][       Thread-251074][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 10:10:50,970 [ INFO][       Thread-251074][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 10:10:50,970 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 10:10:50,971 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 10:10:51,991 [DEBUG][       Thread-251074][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 10:10:51,991 [DEBUG][       Thread-251074][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 10:10:52,044 [DEBUG][       Thread-251074][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 10:10:52,044 [DEBUG][       Thread-251074][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 10:10:52,054 [DEBUG][       Thread-251074][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 10:10:52,066 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 10:10:52,066 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 10:10:52,075 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 10:10:52,087 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 10:10:52,087 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 10:10:52,087 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 10:10:52,097 [DEBUG][       Thread-251074][   transport.py][1871] : EOF in transport thread
2025-06-13 10:10:54,570 [DEBUG][Thread-251076 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:10:55,647 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:10:55,648 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:10:55,942 [DEBUG][Thread-251077 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:11:02,098 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 10:11:02,098 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 10:11:02,098 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 10:11:02,101 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 10:11:02,576 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 10, 10, 37), 9.91, 49.82, 0.0, 19.85, 8.86, 0, 0, 0, 2, 0, 0),)
2025-06-13 10:11:02,576 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 10:10:37
2025-06-13 10:11:02,658 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 10:11:02,662 [DEBUG][       Thread-251078][   transport.py][1871] : starting thread (client mode): 0x842061d0
2025-06-13 10:11:02,662 [DEBUG][       Thread-251078][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 10:11:02,681 [DEBUG][       Thread-251078][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 10:11:02,681 [ INFO][       Thread-251078][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 10:11:02,684 [DEBUG][       Thread-251078][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 10:11:02,684 [DEBUG][       Thread-251078][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 10:11:02,684 [DEBUG][       Thread-251078][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 10:11:02,684 [DEBUG][       Thread-251078][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:11:02,684 [DEBUG][       Thread-251078][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:11:02,684 [DEBUG][       Thread-251078][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:11:02,684 [DEBUG][       Thread-251078][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:11:02,684 [DEBUG][       Thread-251078][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 10:11:02,684 [DEBUG][       Thread-251078][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 10:11:02,684 [DEBUG][       Thread-251078][   transport.py][1871] : client lang: <none>
2025-06-13 10:11:02,684 [DEBUG][       Thread-251078][   transport.py][1871] : server lang: <none>
2025-06-13 10:11:02,684 [DEBUG][       Thread-251078][   transport.py][1871] : kex follows: False
2025-06-13 10:11:02,684 [DEBUG][       Thread-251078][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 10:11:02,684 [DEBUG][       Thread-251078][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 10:11:02,684 [DEBUG][       Thread-251078][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 10:11:02,684 [DEBUG][       Thread-251078][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 10:11:02,684 [DEBUG][       Thread-251078][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 10:11:02,684 [DEBUG][       Thread-251078][   transport.py][1871] : Compression: none
2025-06-13 10:11:02,684 [DEBUG][       Thread-251078][   transport.py][1871] : === End of kex handshake ===
2025-06-13 10:11:02,700 [DEBUG][       Thread-251078][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 10:11:02,700 [DEBUG][       Thread-251078][   transport.py][1871] : Switch to new keys ...
2025-06-13 10:11:02,701 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 10:11:02,701 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 10:11:02,702 [DEBUG][       Thread-251078][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 10:11:02,702 [DEBUG][       Thread-251078][   transport.py][1871] : userauth is OK
2025-06-13 10:11:02,726 [ INFO][       Thread-251078][   transport.py][1871] : Authentication (password) successful!
2025-06-13 10:11:02,727 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 10:11:03,478 [DEBUG][       Thread-251078][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 10:11:03,478 [DEBUG][       Thread-251078][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 10:11:03,520 [DEBUG][       Thread-251078][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 10:11:03,520 [DEBUG][       Thread-251078][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 10:11:03,523 [DEBUG][       Thread-251078][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 10:11:03,534 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 10:11:03,535 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 10:11:03,536 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 10:11:03,536 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 10:11:03,539 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 10:11:03,540 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 10:11:03,540 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 10:11:03,540 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 10:11:03,540 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.340565 -999.00   +8.70  19.53     54   +0.00 1 1 1 1 1   887    0 9.14 25.24 ----- 17.6 19.5 37.4 22.6 13.3 -28.4 11.9 -29.3 10.8 -27.6 12.0 -26.5
2025-06-13 10:11:03,540 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 10:11:03,540 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 10:11:03,540 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.340565
2025-06-13 10:11:03,540 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 10:11:03,540 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 10:11:03,540 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 10:11:03,540 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 10:11:03,540 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 10:11:03,540 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T10:10:37', tmtdew=9.91, humidity=49.82, cloud=0.0, wind=19.85, temperature=8.86, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T08:10:24.816', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 10:11:03,541 [DEBUG][       Thread-251078][   transport.py][1871] : EOF in transport thread
2025-06-13 10:11:03,614 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 10:11:03,634 [DEBUG][       Thread-251081][   transport.py][1871] : starting thread (client mode): 0x867fcf70
2025-06-13 10:11:03,634 [DEBUG][       Thread-251081][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 10:11:03,648 [DEBUG][       Thread-251081][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 10:11:03,648 [ INFO][       Thread-251081][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 10:11:03,657 [DEBUG][       Thread-251081][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 10:11:03,657 [DEBUG][       Thread-251081][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 10:11:03,657 [DEBUG][       Thread-251081][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 10:11:03,657 [DEBUG][       Thread-251081][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:11:03,657 [DEBUG][       Thread-251081][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:11:03,657 [DEBUG][       Thread-251081][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:11:03,657 [DEBUG][       Thread-251081][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:11:03,657 [DEBUG][       Thread-251081][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 10:11:03,657 [DEBUG][       Thread-251081][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 10:11:03,657 [DEBUG][       Thread-251081][   transport.py][1871] : client lang: <none>
2025-06-13 10:11:03,657 [DEBUG][       Thread-251081][   transport.py][1871] : server lang: <none>
2025-06-13 10:11:03,657 [DEBUG][       Thread-251081][   transport.py][1871] : kex follows: False
2025-06-13 10:11:03,657 [DEBUG][       Thread-251081][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 10:11:03,657 [DEBUG][       Thread-251081][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 10:11:03,657 [DEBUG][       Thread-251081][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 10:11:03,657 [DEBUG][       Thread-251081][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 10:11:03,657 [DEBUG][       Thread-251081][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 10:11:03,657 [DEBUG][       Thread-251081][   transport.py][1871] : Compression: none
2025-06-13 10:11:03,657 [DEBUG][       Thread-251081][   transport.py][1871] : === End of kex handshake ===
2025-06-13 10:11:03,716 [DEBUG][       Thread-251081][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 10:11:03,716 [DEBUG][       Thread-251081][   transport.py][1871] : Switch to new keys ...
2025-06-13 10:11:03,716 [DEBUG][       Thread-251081][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 10:11:03,716 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 10:11:03,717 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 10:11:03,778 [DEBUG][       Thread-251081][   transport.py][1871] : userauth is OK
2025-06-13 10:11:03,778 [DEBUG][       Thread-251081][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 10:11:03,778 [DEBUG][       Thread-251081][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 10:11:03,778 [DEBUG][       Thread-251081][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 10:11:03,778 [DEBUG][       Thread-251081][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 10:11:03,796 [ INFO][       Thread-251081][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 10:11:03,796 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 10:11:03,796 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 10:11:04,850 [DEBUG][       Thread-251081][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 10:11:04,850 [DEBUG][       Thread-251081][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 10:11:04,899 [DEBUG][       Thread-251081][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 10:11:04,899 [DEBUG][       Thread-251081][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 10:11:04,907 [DEBUG][       Thread-251081][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 10:11:04,915 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 10:11:04,915 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 10:11:04,923 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 10:11:04,930 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 10:11:04,930 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 10:11:04,930 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 10:11:04,938 [DEBUG][       Thread-251081][   transport.py][1871] : EOF in transport thread
2025-06-13 10:11:04,977 [DEBUG][Thread-251083 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:11:05,440 [DEBUG][Thread-251084 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:11:13,993 [DEBUG][Thread-251085 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:11:14,938 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 10:11:14,938 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 10:11:14,938 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 10:11:14,941 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 10:11:15,406 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 10, 11, 9), 9.91, 49.81, 0.0, 20.4, 8.91, 0, 0, 0, 2, 0, 0),)
2025-06-13 10:11:15,406 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 10:11:09
2025-06-13 10:11:15,489 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 10:11:15,496 [DEBUG][       Thread-251086][   transport.py][1871] : starting thread (client mode): 0x863bcac0
2025-06-13 10:11:15,496 [DEBUG][       Thread-251086][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 10:11:15,516 [DEBUG][       Thread-251086][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 10:11:15,516 [ INFO][       Thread-251086][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 10:11:15,518 [DEBUG][       Thread-251086][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 10:11:15,519 [DEBUG][       Thread-251086][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 10:11:15,519 [DEBUG][       Thread-251086][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 10:11:15,519 [DEBUG][       Thread-251086][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:11:15,519 [DEBUG][       Thread-251086][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:11:15,519 [DEBUG][       Thread-251086][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:11:15,519 [DEBUG][       Thread-251086][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:11:15,519 [DEBUG][       Thread-251086][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 10:11:15,519 [DEBUG][       Thread-251086][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 10:11:15,519 [DEBUG][       Thread-251086][   transport.py][1871] : client lang: <none>
2025-06-13 10:11:15,519 [DEBUG][       Thread-251086][   transport.py][1871] : server lang: <none>
2025-06-13 10:11:15,519 [DEBUG][       Thread-251086][   transport.py][1871] : kex follows: False
2025-06-13 10:11:15,519 [DEBUG][       Thread-251086][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 10:11:15,519 [DEBUG][       Thread-251086][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 10:11:15,519 [DEBUG][       Thread-251086][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 10:11:15,519 [DEBUG][       Thread-251086][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 10:11:15,519 [DEBUG][       Thread-251086][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 10:11:15,519 [DEBUG][       Thread-251086][   transport.py][1871] : Compression: none
2025-06-13 10:11:15,519 [DEBUG][       Thread-251086][   transport.py][1871] : === End of kex handshake ===
2025-06-13 10:11:15,535 [DEBUG][       Thread-251086][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 10:11:15,535 [DEBUG][       Thread-251086][   transport.py][1871] : Switch to new keys ...
2025-06-13 10:11:15,536 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 10:11:15,536 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 10:11:15,536 [DEBUG][       Thread-251086][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 10:11:15,537 [DEBUG][       Thread-251086][   transport.py][1871] : userauth is OK
2025-06-13 10:11:15,561 [ INFO][       Thread-251086][   transport.py][1871] : Authentication (password) successful!
2025-06-13 10:11:15,562 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 10:11:16,372 [DEBUG][       Thread-251086][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 10:11:16,372 [DEBUG][       Thread-251086][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 10:11:16,413 [DEBUG][       Thread-251086][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 10:11:16,413 [DEBUG][       Thread-251086][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 10:11:16,416 [DEBUG][       Thread-251086][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 10:11:16,427 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 10:11:16,427 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 10:11:16,429 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 10:11:16,431 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 10:11:16,435 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 10:11:16,437 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 10:11:16,437 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 10:11:16,438 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 10:11:16,438 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.340565 -999.00   +8.70  19.53     54   +0.00 1 1 1 1 1   887    0 9.14 25.24 ----- 17.6 19.5 37.4 22.6 13.3 -28.4 11.9 -29.3 10.8 -27.6 12.0 -26.5
2025-06-13 10:11:16,438 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 10:11:16,438 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 10:11:16,438 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.340565
2025-06-13 10:11:16,439 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 10:11:16,439 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 10:11:16,439 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 10:11:16,439 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 10:11:16,439 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 10:11:16,440 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T10:11:09', tmtdew=9.91, humidity=49.81, cloud=0.0, wind=20.4, temperature=8.91, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T08:10:24.816', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 10:11:16,440 [DEBUG][       Thread-251086][   transport.py][1871] : EOF in transport thread
2025-06-13 10:11:16,536 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 10:11:16,547 [DEBUG][       Thread-251089][   transport.py][1871] : starting thread (client mode): 0x867b49a0
2025-06-13 10:11:16,547 [DEBUG][       Thread-251089][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 10:11:16,563 [DEBUG][       Thread-251089][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 10:11:16,563 [ INFO][       Thread-251089][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 10:11:16,579 [DEBUG][       Thread-251089][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 10:11:16,580 [DEBUG][       Thread-251089][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 10:11:16,580 [DEBUG][       Thread-251089][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 10:11:16,580 [DEBUG][       Thread-251089][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:11:16,580 [DEBUG][       Thread-251089][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:11:16,580 [DEBUG][       Thread-251089][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:11:16,580 [DEBUG][       Thread-251089][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:11:16,580 [DEBUG][       Thread-251089][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 10:11:16,580 [DEBUG][       Thread-251089][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 10:11:16,580 [DEBUG][       Thread-251089][   transport.py][1871] : client lang: <none>
2025-06-13 10:11:16,580 [DEBUG][       Thread-251089][   transport.py][1871] : server lang: <none>
2025-06-13 10:11:16,580 [DEBUG][       Thread-251089][   transport.py][1871] : kex follows: False
2025-06-13 10:11:16,580 [DEBUG][       Thread-251089][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 10:11:16,580 [DEBUG][       Thread-251089][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 10:11:16,580 [DEBUG][       Thread-251089][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 10:11:16,580 [DEBUG][       Thread-251089][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 10:11:16,580 [DEBUG][       Thread-251089][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 10:11:16,581 [DEBUG][       Thread-251089][   transport.py][1871] : Compression: none
2025-06-13 10:11:16,581 [DEBUG][       Thread-251089][   transport.py][1871] : === End of kex handshake ===
2025-06-13 10:11:16,636 [DEBUG][       Thread-251089][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 10:11:16,637 [DEBUG][       Thread-251089][   transport.py][1871] : Switch to new keys ...
2025-06-13 10:11:16,637 [DEBUG][       Thread-251089][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 10:11:16,638 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 10:11:16,638 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 10:11:16,694 [DEBUG][       Thread-251089][   transport.py][1871] : userauth is OK
2025-06-13 10:11:16,694 [DEBUG][       Thread-251089][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 10:11:16,694 [DEBUG][       Thread-251089][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 10:11:16,694 [DEBUG][       Thread-251089][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 10:11:16,694 [DEBUG][       Thread-251089][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 10:11:16,713 [ INFO][       Thread-251089][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 10:11:16,713 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 10:11:16,714 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 10:11:17,716 [DEBUG][       Thread-251089][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 10:11:17,716 [DEBUG][       Thread-251089][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 10:11:17,767 [DEBUG][       Thread-251089][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 10:11:17,767 [DEBUG][       Thread-251089][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 10:11:17,776 [DEBUG][       Thread-251089][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 10:11:17,785 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 10:11:17,785 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 10:11:17,794 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 10:11:17,803 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 10:11:17,803 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 10:11:17,804 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 10:11:17,811 [DEBUG][       Thread-251089][   transport.py][1871] : EOF in transport thread
2025-06-13 10:11:23,012 [DEBUG][Thread-251091 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:11:24,128 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:11:24,129 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:11:27,814 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 10:11:27,814 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 10:11:27,814 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 10:11:27,817 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 10:11:28,276 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 10, 11, 9), 9.91, 49.81, 0.0, 20.4, 8.91, 0, 0, 0, 2, 0, 0),)
2025-06-13 10:11:28,276 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 10:11:09
2025-06-13 10:11:28,357 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 10:11:28,361 [DEBUG][       Thread-251092][   transport.py][1871] : starting thread (client mode): 0x863bd690
2025-06-13 10:11:28,361 [DEBUG][       Thread-251092][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 10:11:28,374 [DEBUG][       Thread-251092][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 10:11:28,374 [ INFO][       Thread-251092][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 10:11:28,377 [DEBUG][       Thread-251092][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 10:11:28,377 [DEBUG][       Thread-251092][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 10:11:28,377 [DEBUG][       Thread-251092][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 10:11:28,377 [DEBUG][       Thread-251092][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:11:28,377 [DEBUG][       Thread-251092][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:11:28,377 [DEBUG][       Thread-251092][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:11:28,377 [DEBUG][       Thread-251092][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:11:28,377 [DEBUG][       Thread-251092][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 10:11:28,377 [DEBUG][       Thread-251092][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 10:11:28,377 [DEBUG][       Thread-251092][   transport.py][1871] : client lang: <none>
2025-06-13 10:11:28,377 [DEBUG][       Thread-251092][   transport.py][1871] : server lang: <none>
2025-06-13 10:11:28,377 [DEBUG][       Thread-251092][   transport.py][1871] : kex follows: False
2025-06-13 10:11:28,377 [DEBUG][       Thread-251092][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 10:11:28,377 [DEBUG][       Thread-251092][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 10:11:28,377 [DEBUG][       Thread-251092][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 10:11:28,377 [DEBUG][       Thread-251092][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 10:11:28,377 [DEBUG][       Thread-251092][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 10:11:28,377 [DEBUG][       Thread-251092][   transport.py][1871] : Compression: none
2025-06-13 10:11:28,377 [DEBUG][       Thread-251092][   transport.py][1871] : === End of kex handshake ===
2025-06-13 10:11:28,394 [DEBUG][       Thread-251092][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 10:11:28,394 [DEBUG][       Thread-251092][   transport.py][1871] : Switch to new keys ...
2025-06-13 10:11:28,395 [DEBUG][       Thread-251092][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 10:11:28,395 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 10:11:28,395 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 10:11:28,396 [DEBUG][       Thread-251092][   transport.py][1871] : userauth is OK
2025-06-13 10:11:28,409 [ INFO][       Thread-251092][   transport.py][1871] : Authentication (password) successful!
2025-06-13 10:11:28,409 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 10:11:29,009 [DEBUG][       Thread-251092][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 10:11:29,009 [DEBUG][       Thread-251092][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 10:11:29,053 [DEBUG][       Thread-251092][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 10:11:29,053 [DEBUG][       Thread-251092][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 10:11:29,056 [DEBUG][       Thread-251092][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 10:11:29,069 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 10:11:29,069 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 10:11:29,070 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 10:11:29,072 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 10:11:29,077 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 10:11:29,078 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 10:11:29,078 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 10:11:29,079 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 10:11:29,079 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.340912 -999.00   +8.70  17.42     54   +0.10 1 1 1 1 1   887    0 8.95 25.52 ----- 19.6 17.4 45.6 20.5 13.3 -28.4 12.0 -29.4 10.8 -28.7 12.0 -26.5
2025-06-13 10:11:29,079 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 10:11:29,079 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 10:11:29,079 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.340912
2025-06-13 10:11:29,080 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 10:11:29,080 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 10:11:29,080 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 10:11:29,081 [DEBUG][       Thread-251092][   transport.py][1871] : EOF in transport thread
2025-06-13 10:11:29,081 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 10:11:29,081 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 10:11:29,081 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T10:11:09', tmtdew=9.91, humidity=49.81, cloud=0.0, wind=20.4, temperature=8.91, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T08:10:54.797', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 10:11:29,165 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 10:11:29,176 [DEBUG][       Thread-251095][   transport.py][1871] : starting thread (client mode): 0x863eea10
2025-06-13 10:11:29,176 [DEBUG][       Thread-251095][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 10:11:29,193 [DEBUG][       Thread-251095][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 10:11:29,194 [ INFO][       Thread-251095][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 10:11:29,205 [DEBUG][       Thread-251095][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 10:11:29,205 [DEBUG][       Thread-251095][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 10:11:29,205 [DEBUG][       Thread-251095][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 10:11:29,205 [DEBUG][       Thread-251095][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:11:29,205 [DEBUG][       Thread-251095][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:11:29,205 [DEBUG][       Thread-251095][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:11:29,205 [DEBUG][       Thread-251095][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:11:29,205 [DEBUG][       Thread-251095][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 10:11:29,205 [DEBUG][       Thread-251095][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 10:11:29,205 [DEBUG][       Thread-251095][   transport.py][1871] : client lang: <none>
2025-06-13 10:11:29,205 [DEBUG][       Thread-251095][   transport.py][1871] : server lang: <none>
2025-06-13 10:11:29,205 [DEBUG][       Thread-251095][   transport.py][1871] : kex follows: False
2025-06-13 10:11:29,205 [DEBUG][       Thread-251095][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 10:11:29,206 [DEBUG][       Thread-251095][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 10:11:29,206 [DEBUG][       Thread-251095][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 10:11:29,206 [DEBUG][       Thread-251095][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 10:11:29,206 [DEBUG][       Thread-251095][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 10:11:29,206 [DEBUG][       Thread-251095][   transport.py][1871] : Compression: none
2025-06-13 10:11:29,206 [DEBUG][       Thread-251095][   transport.py][1871] : === End of kex handshake ===
2025-06-13 10:11:29,264 [DEBUG][       Thread-251095][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 10:11:29,264 [DEBUG][       Thread-251095][   transport.py][1871] : Switch to new keys ...
2025-06-13 10:11:29,265 [DEBUG][       Thread-251095][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 10:11:29,265 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 10:11:29,266 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 10:11:29,322 [DEBUG][       Thread-251095][   transport.py][1871] : userauth is OK
2025-06-13 10:11:29,322 [DEBUG][       Thread-251095][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 10:11:29,322 [DEBUG][       Thread-251095][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 10:11:29,322 [DEBUG][       Thread-251095][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 10:11:29,323 [DEBUG][       Thread-251095][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 10:11:29,345 [ INFO][       Thread-251095][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 10:11:29,345 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 10:11:29,345 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 10:11:30,398 [DEBUG][       Thread-251095][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 10:11:30,398 [DEBUG][       Thread-251095][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 10:11:30,457 [DEBUG][       Thread-251095][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 10:11:30,457 [DEBUG][       Thread-251095][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 10:11:30,470 [DEBUG][       Thread-251095][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 10:11:30,482 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 10:11:30,483 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 10:11:30,491 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 10:11:30,500 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 10:11:30,500 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 10:11:30,501 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 10:11:30,509 [DEBUG][       Thread-251095][   transport.py][1871] : EOF in transport thread
2025-06-13 10:11:32,052 [DEBUG][Thread-251097 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:11:40,510 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 10:11:40,511 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 10:11:40,511 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 10:11:40,513 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 10:11:40,989 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 10, 11, 9), 9.91, 49.81, 0.0, 20.4, 8.91, 0, 0, 0, 2, 0, 0),)
2025-06-13 10:11:40,989 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 10:11:09
2025-06-13 10:11:41,069 [DEBUG][Thread-251098 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:11:41,072 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 10:11:41,077 [DEBUG][       Thread-251099][   transport.py][1871] : starting thread (client mode): 0x863be4d0
2025-06-13 10:11:41,077 [DEBUG][       Thread-251099][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 10:11:41,097 [DEBUG][       Thread-251099][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 10:11:41,097 [ INFO][       Thread-251099][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 10:11:41,099 [DEBUG][       Thread-251099][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 10:11:41,099 [DEBUG][       Thread-251099][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 10:11:41,099 [DEBUG][       Thread-251099][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 10:11:41,099 [DEBUG][       Thread-251099][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:11:41,099 [DEBUG][       Thread-251099][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:11:41,099 [DEBUG][       Thread-251099][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:11:41,099 [DEBUG][       Thread-251099][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:11:41,099 [DEBUG][       Thread-251099][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 10:11:41,099 [DEBUG][       Thread-251099][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 10:11:41,099 [DEBUG][       Thread-251099][   transport.py][1871] : client lang: <none>
2025-06-13 10:11:41,099 [DEBUG][       Thread-251099][   transport.py][1871] : server lang: <none>
2025-06-13 10:11:41,099 [DEBUG][       Thread-251099][   transport.py][1871] : kex follows: False
2025-06-13 10:11:41,099 [DEBUG][       Thread-251099][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 10:11:41,099 [DEBUG][       Thread-251099][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 10:11:41,099 [DEBUG][       Thread-251099][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 10:11:41,099 [DEBUG][       Thread-251099][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 10:11:41,099 [DEBUG][       Thread-251099][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 10:11:41,099 [DEBUG][       Thread-251099][   transport.py][1871] : Compression: none
2025-06-13 10:11:41,099 [DEBUG][       Thread-251099][   transport.py][1871] : === End of kex handshake ===
2025-06-13 10:11:41,112 [DEBUG][       Thread-251099][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 10:11:41,112 [DEBUG][       Thread-251099][   transport.py][1871] : Switch to new keys ...
2025-06-13 10:11:41,112 [DEBUG][       Thread-251099][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 10:11:41,112 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 10:11:41,112 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 10:11:41,113 [DEBUG][       Thread-251099][   transport.py][1871] : userauth is OK
2025-06-13 10:11:41,126 [ INFO][       Thread-251099][   transport.py][1871] : Authentication (password) successful!
2025-06-13 10:11:41,126 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 10:11:41,934 [DEBUG][       Thread-251099][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 10:11:41,934 [DEBUG][       Thread-251099][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 10:11:41,977 [DEBUG][       Thread-251099][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 10:11:41,977 [DEBUG][       Thread-251099][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 10:11:41,979 [DEBUG][       Thread-251099][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 10:11:41,991 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 10:11:41,992 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 10:11:41,993 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 10:11:41,994 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 10:11:41,996 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 10:11:41,997 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 10:11:41,997 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 10:11:41,997 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 10:11:41,997 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.340912 -999.00   +8.70  17.42     54   +0.10 1 1 1 1 1   887    0 8.95 25.52 ----- 19.6 17.4 45.6 20.5 13.3 -28.4 12.0 -29.4 10.8 -28.7 12.0 -26.5
2025-06-13 10:11:41,997 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 10:11:41,997 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 10:11:41,997 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.340912
2025-06-13 10:11:41,997 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 10:11:41,997 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 10:11:41,997 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 10:11:41,997 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 10:11:41,997 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 10:11:41,997 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T10:11:09', tmtdew=9.91, humidity=49.81, cloud=0.0, wind=20.4, temperature=8.91, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T08:10:54.797', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 10:11:41,997 [DEBUG][       Thread-251099][   transport.py][1871] : EOF in transport thread
2025-06-13 10:11:42,072 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 10:11:42,084 [DEBUG][       Thread-251102][   transport.py][1871] : starting thread (client mode): 0x867b5870
2025-06-13 10:11:42,084 [DEBUG][       Thread-251102][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 10:11:42,101 [DEBUG][       Thread-251102][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 10:11:42,101 [ INFO][       Thread-251102][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 10:11:42,108 [DEBUG][       Thread-251102][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 10:11:42,108 [DEBUG][       Thread-251102][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 10:11:42,108 [DEBUG][       Thread-251102][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 10:11:42,108 [DEBUG][       Thread-251102][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:11:42,108 [DEBUG][       Thread-251102][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:11:42,108 [DEBUG][       Thread-251102][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:11:42,108 [DEBUG][       Thread-251102][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:11:42,108 [DEBUG][       Thread-251102][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 10:11:42,108 [DEBUG][       Thread-251102][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 10:11:42,108 [DEBUG][       Thread-251102][   transport.py][1871] : client lang: <none>
2025-06-13 10:11:42,108 [DEBUG][       Thread-251102][   transport.py][1871] : server lang: <none>
2025-06-13 10:11:42,108 [DEBUG][       Thread-251102][   transport.py][1871] : kex follows: False
2025-06-13 10:11:42,108 [DEBUG][       Thread-251102][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 10:11:42,109 [DEBUG][       Thread-251102][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 10:11:42,109 [DEBUG][       Thread-251102][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 10:11:42,109 [DEBUG][       Thread-251102][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 10:11:42,109 [DEBUG][       Thread-251102][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 10:11:42,109 [DEBUG][       Thread-251102][   transport.py][1871] : Compression: none
2025-06-13 10:11:42,109 [DEBUG][       Thread-251102][   transport.py][1871] : === End of kex handshake ===
2025-06-13 10:11:42,169 [DEBUG][       Thread-251102][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 10:11:42,170 [DEBUG][       Thread-251102][   transport.py][1871] : Switch to new keys ...
2025-06-13 10:11:42,170 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 10:11:42,170 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 10:11:42,170 [DEBUG][       Thread-251102][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 10:11:42,231 [DEBUG][       Thread-251102][   transport.py][1871] : userauth is OK
2025-06-13 10:11:42,231 [DEBUG][       Thread-251102][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 10:11:42,231 [DEBUG][       Thread-251102][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 10:11:42,231 [DEBUG][       Thread-251102][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 10:11:42,231 [DEBUG][       Thread-251102][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 10:11:42,249 [ INFO][       Thread-251102][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 10:11:42,249 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 10:11:42,249 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 10:11:43,220 [DEBUG][       Thread-251102][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 10:11:43,221 [DEBUG][       Thread-251102][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 10:11:43,271 [DEBUG][       Thread-251102][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 10:11:43,271 [DEBUG][       Thread-251102][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 10:11:43,280 [DEBUG][       Thread-251102][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 10:11:43,288 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 10:11:43,288 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 10:11:43,296 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 10:11:43,304 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 10:11:43,304 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 10:11:43,304 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 10:11:43,318 [DEBUG][       Thread-251102][   transport.py][1871] : EOF in transport thread
2025-06-13 10:11:50,086 [DEBUG][Thread-251104 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:11:53,314 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 10:11:53,314 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 10:11:53,314 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 10:11:53,317 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 10:11:53,778 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 10, 11, 41), 9.9, 49.86, 0.0, 16.15, 8.91, 0, 0, 0, 2, 0, 0),)
2025-06-13 10:11:53,779 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 10:11:41
2025-06-13 10:11:53,859 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 10:11:53,865 [DEBUG][       Thread-251105][   transport.py][1871] : starting thread (client mode): 0x86369030
2025-06-13 10:11:53,865 [DEBUG][       Thread-251105][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 10:11:53,876 [DEBUG][       Thread-251105][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 10:11:53,876 [ INFO][       Thread-251105][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 10:11:53,877 [DEBUG][       Thread-251105][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 10:11:53,877 [DEBUG][       Thread-251105][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 10:11:53,877 [DEBUG][       Thread-251105][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 10:11:53,877 [DEBUG][       Thread-251105][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:11:53,877 [DEBUG][       Thread-251105][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:11:53,877 [DEBUG][       Thread-251105][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:11:53,877 [DEBUG][       Thread-251105][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:11:53,877 [DEBUG][       Thread-251105][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 10:11:53,877 [DEBUG][       Thread-251105][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 10:11:53,877 [DEBUG][       Thread-251105][   transport.py][1871] : client lang: <none>
2025-06-13 10:11:53,877 [DEBUG][       Thread-251105][   transport.py][1871] : server lang: <none>
2025-06-13 10:11:53,877 [DEBUG][       Thread-251105][   transport.py][1871] : kex follows: False
2025-06-13 10:11:53,877 [DEBUG][       Thread-251105][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 10:11:53,877 [DEBUG][       Thread-251105][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 10:11:53,877 [DEBUG][       Thread-251105][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 10:11:53,877 [DEBUG][       Thread-251105][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 10:11:53,877 [DEBUG][       Thread-251105][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 10:11:53,877 [DEBUG][       Thread-251105][   transport.py][1871] : Compression: none
2025-06-13 10:11:53,877 [DEBUG][       Thread-251105][   transport.py][1871] : === End of kex handshake ===
2025-06-13 10:11:53,886 [DEBUG][       Thread-251105][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 10:11:53,887 [DEBUG][       Thread-251105][   transport.py][1871] : Switch to new keys ...
2025-06-13 10:11:53,887 [DEBUG][       Thread-251105][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 10:11:53,887 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 10:11:53,887 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 10:11:53,888 [DEBUG][       Thread-251105][   transport.py][1871] : userauth is OK
2025-06-13 10:11:53,900 [ INFO][       Thread-251105][   transport.py][1871] : Authentication (password) successful!
2025-06-13 10:11:53,901 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 10:11:54,487 [DEBUG][       Thread-251105][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 10:11:54,487 [DEBUG][       Thread-251105][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 10:11:54,529 [DEBUG][       Thread-251105][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 10:11:54,529 [DEBUG][       Thread-251105][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 10:11:54,531 [DEBUG][       Thread-251105][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 10:11:54,541 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 10:11:54,541 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 10:11:54,543 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 10:11:54,545 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 10:11:54,550 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 10:11:54,551 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 10:11:54,551 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 10:11:54,552 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 10:11:54,552 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.341260 -999.00   +8.70  22.87     54   +0.00 1 1 1 1 1   887    0 9.06 25.75 ----- 19.9 22.9 55.6 26.9 13.3 -29.2 12.0 -29.4 10.8 -28.3 12.0 -26.7
2025-06-13 10:11:54,552 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 10:11:54,552 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 10:11:54,552 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.341260
2025-06-13 10:11:54,553 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 10:11:54,553 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 10:11:54,553 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 10:11:54,553 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 10:11:54,553 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 10:11:54,554 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T10:11:41', tmtdew=9.9, humidity=49.86, cloud=0.0, wind=16.15, temperature=8.91, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T08:11:24.864', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 10:11:54,554 [DEBUG][       Thread-251105][   transport.py][1871] : EOF in transport thread
2025-06-13 10:11:54,637 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 10:11:54,647 [DEBUG][       Thread-251108][   transport.py][1871] : starting thread (client mode): 0x863ec760
2025-06-13 10:11:54,647 [DEBUG][       Thread-251108][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 10:11:54,661 [DEBUG][       Thread-251108][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 10:11:54,661 [ INFO][       Thread-251108][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 10:11:54,669 [DEBUG][       Thread-251108][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 10:11:54,669 [DEBUG][       Thread-251108][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 10:11:54,669 [DEBUG][       Thread-251108][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 10:11:54,669 [DEBUG][       Thread-251108][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:11:54,669 [DEBUG][       Thread-251108][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:11:54,669 [DEBUG][       Thread-251108][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:11:54,669 [DEBUG][       Thread-251108][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:11:54,669 [DEBUG][       Thread-251108][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 10:11:54,669 [DEBUG][       Thread-251108][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 10:11:54,669 [DEBUG][       Thread-251108][   transport.py][1871] : client lang: <none>
2025-06-13 10:11:54,669 [DEBUG][       Thread-251108][   transport.py][1871] : server lang: <none>
2025-06-13 10:11:54,669 [DEBUG][       Thread-251108][   transport.py][1871] : kex follows: False
2025-06-13 10:11:54,669 [DEBUG][       Thread-251108][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 10:11:54,669 [DEBUG][       Thread-251108][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 10:11:54,669 [DEBUG][       Thread-251108][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 10:11:54,669 [DEBUG][       Thread-251108][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 10:11:54,670 [DEBUG][       Thread-251108][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 10:11:54,670 [DEBUG][       Thread-251108][   transport.py][1871] : Compression: none
2025-06-13 10:11:54,670 [DEBUG][       Thread-251108][   transport.py][1871] : === End of kex handshake ===
2025-06-13 10:11:54,730 [DEBUG][       Thread-251108][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 10:11:54,731 [DEBUG][       Thread-251108][   transport.py][1871] : Switch to new keys ...
2025-06-13 10:11:54,731 [DEBUG][       Thread-251108][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 10:11:54,731 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 10:11:54,732 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 10:11:54,788 [DEBUG][       Thread-251108][   transport.py][1871] : userauth is OK
2025-06-13 10:11:54,789 [DEBUG][       Thread-251108][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 10:11:54,789 [DEBUG][       Thread-251108][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 10:11:54,789 [DEBUG][       Thread-251108][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 10:11:54,789 [DEBUG][       Thread-251108][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 10:11:54,807 [ INFO][       Thread-251108][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 10:11:54,807 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 10:11:54,808 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 10:11:55,719 [DEBUG][Thread-251110 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:11:55,815 [DEBUG][       Thread-251108][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 10:11:55,815 [DEBUG][       Thread-251108][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 10:11:55,863 [DEBUG][       Thread-251108][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 10:11:55,864 [DEBUG][       Thread-251108][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 10:11:55,872 [DEBUG][       Thread-251108][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 10:11:55,881 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 10:11:55,881 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 10:11:55,890 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 10:11:55,908 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 10:11:55,909 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 10:11:55,909 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 10:11:55,918 [DEBUG][       Thread-251108][   transport.py][1871] : EOF in transport thread
2025-06-13 10:11:56,768 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:11:56,769 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:11:59,105 [DEBUG][Thread-251111 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:12:05,490 [DEBUG][Thread-251112 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:12:05,919 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 10:12:05,920 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 10:12:05,920 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 10:12:05,922 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 10:12:06,380 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 10, 11, 41), 9.9, 49.86, 0.0, 16.15, 8.91, 0, 0, 0, 2, 0, 0),)
2025-06-13 10:12:06,380 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 10:11:41
2025-06-13 10:12:06,462 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 10:12:06,466 [DEBUG][       Thread-251113][   transport.py][1871] : starting thread (client mode): 0x863a5b70
2025-06-13 10:12:06,466 [DEBUG][       Thread-251113][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 10:12:06,488 [DEBUG][       Thread-251113][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 10:12:06,488 [ INFO][       Thread-251113][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 10:12:06,492 [DEBUG][       Thread-251113][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 10:12:06,492 [DEBUG][       Thread-251113][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 10:12:06,492 [DEBUG][       Thread-251113][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 10:12:06,492 [DEBUG][       Thread-251113][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:12:06,492 [DEBUG][       Thread-251113][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:12:06,492 [DEBUG][       Thread-251113][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:12:06,492 [DEBUG][       Thread-251113][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:12:06,492 [DEBUG][       Thread-251113][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 10:12:06,492 [DEBUG][       Thread-251113][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 10:12:06,492 [DEBUG][       Thread-251113][   transport.py][1871] : client lang: <none>
2025-06-13 10:12:06,492 [DEBUG][       Thread-251113][   transport.py][1871] : server lang: <none>
2025-06-13 10:12:06,492 [DEBUG][       Thread-251113][   transport.py][1871] : kex follows: False
2025-06-13 10:12:06,492 [DEBUG][       Thread-251113][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 10:12:06,492 [DEBUG][       Thread-251113][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 10:12:06,492 [DEBUG][       Thread-251113][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 10:12:06,492 [DEBUG][       Thread-251113][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 10:12:06,492 [DEBUG][       Thread-251113][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 10:12:06,493 [DEBUG][       Thread-251113][   transport.py][1871] : Compression: none
2025-06-13 10:12:06,493 [DEBUG][       Thread-251113][   transport.py][1871] : === End of kex handshake ===
2025-06-13 10:12:06,509 [DEBUG][       Thread-251113][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 10:12:06,509 [DEBUG][       Thread-251113][   transport.py][1871] : Switch to new keys ...
2025-06-13 10:12:06,509 [DEBUG][       Thread-251113][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 10:12:06,509 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 10:12:06,510 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 10:12:06,510 [DEBUG][       Thread-251113][   transport.py][1871] : userauth is OK
2025-06-13 10:12:06,524 [ INFO][       Thread-251113][   transport.py][1871] : Authentication (password) successful!
2025-06-13 10:12:06,524 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 10:12:07,195 [DEBUG][       Thread-251113][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 10:12:07,195 [DEBUG][       Thread-251113][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 10:12:07,236 [DEBUG][       Thread-251113][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 10:12:07,237 [DEBUG][       Thread-251113][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 10:12:07,239 [DEBUG][       Thread-251113][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 10:12:07,247 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 10:12:07,247 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 10:12:07,248 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 10:12:07,250 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 10:12:07,253 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 10:12:07,255 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 10:12:07,255 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 10:12:07,256 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 10:12:07,256 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.341260 -999.00   +8.70  22.87     54   +0.00 1 1 1 1 1   887    0 9.06 25.75 ----- 19.9 22.9 55.6 26.9 13.3 -29.2 12.0 -29.4 10.8 -28.3 12.0 -26.7
2025-06-13 10:12:07,256 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 10:12:07,256 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 10:12:07,256 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.341260
2025-06-13 10:12:07,256 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 10:12:07,257 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 10:12:07,257 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 10:12:07,257 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 10:12:07,257 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 10:12:07,257 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T10:11:41', tmtdew=9.9, humidity=49.86, cloud=0.0, wind=16.15, temperature=8.91, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T08:11:24.864', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 10:12:07,257 [DEBUG][       Thread-251113][   transport.py][1871] : EOF in transport thread
2025-06-13 10:12:07,340 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 10:12:07,351 [DEBUG][       Thread-251116][   transport.py][1871] : starting thread (client mode): 0x863c9750
2025-06-13 10:12:07,352 [DEBUG][       Thread-251116][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 10:12:07,367 [DEBUG][       Thread-251116][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 10:12:07,367 [ INFO][       Thread-251116][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 10:12:07,376 [DEBUG][       Thread-251116][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 10:12:07,376 [DEBUG][       Thread-251116][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 10:12:07,376 [DEBUG][       Thread-251116][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 10:12:07,376 [DEBUG][       Thread-251116][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:12:07,376 [DEBUG][       Thread-251116][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:12:07,376 [DEBUG][       Thread-251116][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:12:07,376 [DEBUG][       Thread-251116][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:12:07,376 [DEBUG][       Thread-251116][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 10:12:07,376 [DEBUG][       Thread-251116][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 10:12:07,376 [DEBUG][       Thread-251116][   transport.py][1871] : client lang: <none>
2025-06-13 10:12:07,376 [DEBUG][       Thread-251116][   transport.py][1871] : server lang: <none>
2025-06-13 10:12:07,377 [DEBUG][       Thread-251116][   transport.py][1871] : kex follows: False
2025-06-13 10:12:07,377 [DEBUG][       Thread-251116][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 10:12:07,377 [DEBUG][       Thread-251116][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 10:12:07,377 [DEBUG][       Thread-251116][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 10:12:07,377 [DEBUG][       Thread-251116][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 10:12:07,377 [DEBUG][       Thread-251116][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 10:12:07,377 [DEBUG][       Thread-251116][   transport.py][1871] : Compression: none
2025-06-13 10:12:07,377 [DEBUG][       Thread-251116][   transport.py][1871] : === End of kex handshake ===
2025-06-13 10:12:07,440 [DEBUG][       Thread-251116][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 10:12:07,440 [DEBUG][       Thread-251116][   transport.py][1871] : Switch to new keys ...
2025-06-13 10:12:07,441 [DEBUG][       Thread-251116][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 10:12:07,441 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 10:12:07,442 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 10:12:07,500 [DEBUG][       Thread-251116][   transport.py][1871] : userauth is OK
2025-06-13 10:12:07,500 [DEBUG][       Thread-251116][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 10:12:07,500 [DEBUG][       Thread-251116][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 10:12:07,501 [DEBUG][       Thread-251116][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 10:12:07,501 [DEBUG][       Thread-251116][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 10:12:07,519 [ INFO][       Thread-251116][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 10:12:07,519 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 10:12:07,520 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 10:12:08,136 [DEBUG][Thread-251118 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:12:08,569 [DEBUG][       Thread-251116][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 10:12:08,569 [DEBUG][       Thread-251116][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 10:12:08,623 [DEBUG][       Thread-251116][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 10:12:08,624 [DEBUG][       Thread-251116][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 10:12:08,635 [DEBUG][       Thread-251116][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 10:12:08,644 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 10:12:08,644 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 10:12:08,652 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 10:12:08,666 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 10:12:08,666 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 10:12:08,666 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 10:12:08,674 [DEBUG][       Thread-251116][   transport.py][1871] : EOF in transport thread
2025-06-13 10:12:17,155 [DEBUG][Thread-251119 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:12:18,677 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 10:12:18,677 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 10:12:18,677 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 10:12:18,679 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 10:12:19,148 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 10, 12, 12), 10.04, 49.47, 0.0, 18.69, 9.02, 0, 0, 0, 2, 0, 0),)
2025-06-13 10:12:19,148 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 10:12:12
2025-06-13 10:12:19,230 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 10:12:19,236 [DEBUG][       Thread-251120][   transport.py][1871] : starting thread (client mode): 0x863c8250
2025-06-13 10:12:19,236 [DEBUG][       Thread-251120][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 10:12:19,256 [DEBUG][       Thread-251120][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 10:12:19,256 [ INFO][       Thread-251120][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 10:12:19,258 [DEBUG][       Thread-251120][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 10:12:19,258 [DEBUG][       Thread-251120][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 10:12:19,258 [DEBUG][       Thread-251120][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 10:12:19,258 [DEBUG][       Thread-251120][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:12:19,258 [DEBUG][       Thread-251120][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:12:19,258 [DEBUG][       Thread-251120][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:12:19,258 [DEBUG][       Thread-251120][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:12:19,258 [DEBUG][       Thread-251120][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 10:12:19,258 [DEBUG][       Thread-251120][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 10:12:19,258 [DEBUG][       Thread-251120][   transport.py][1871] : client lang: <none>
2025-06-13 10:12:19,258 [DEBUG][       Thread-251120][   transport.py][1871] : server lang: <none>
2025-06-13 10:12:19,258 [DEBUG][       Thread-251120][   transport.py][1871] : kex follows: False
2025-06-13 10:12:19,258 [DEBUG][       Thread-251120][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 10:12:19,258 [DEBUG][       Thread-251120][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 10:12:19,258 [DEBUG][       Thread-251120][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 10:12:19,258 [DEBUG][       Thread-251120][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 10:12:19,258 [DEBUG][       Thread-251120][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 10:12:19,259 [DEBUG][       Thread-251120][   transport.py][1871] : Compression: none
2025-06-13 10:12:19,259 [DEBUG][       Thread-251120][   transport.py][1871] : === End of kex handshake ===
2025-06-13 10:12:19,266 [DEBUG][       Thread-251120][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 10:12:19,267 [DEBUG][       Thread-251120][   transport.py][1871] : Switch to new keys ...
2025-06-13 10:12:19,267 [DEBUG][       Thread-251120][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 10:12:19,267 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 10:12:19,267 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 10:12:19,268 [DEBUG][       Thread-251120][   transport.py][1871] : userauth is OK
2025-06-13 10:12:19,292 [ INFO][       Thread-251120][   transport.py][1871] : Authentication (password) successful!
2025-06-13 10:12:19,293 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 10:12:19,935 [DEBUG][       Thread-251120][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 10:12:19,935 [DEBUG][       Thread-251120][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 10:12:19,977 [DEBUG][       Thread-251120][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 10:12:19,977 [DEBUG][       Thread-251120][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 10:12:19,979 [DEBUG][       Thread-251120][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 10:12:19,989 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 10:12:19,990 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 10:12:19,991 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 10:12:19,991 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 10:12:19,994 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 10:12:19,995 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 10:12:19,995 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 10:12:19,995 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 10:12:19,995 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.341260 -999.00   +8.70  22.87     54   +0.00 1 1 1 1 1   887    0 9.06 25.75 ----- 19.9 22.9 55.6 26.9 13.3 -29.2 12.0 -29.4 10.8 -28.3 12.0 -26.7
2025-06-13 10:12:19,995 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 10:12:19,995 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 10:12:19,995 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.341260
2025-06-13 10:12:19,995 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 10:12:19,996 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 10:12:19,996 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 10:12:19,996 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 10:12:19,996 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 10:12:19,996 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T10:12:12', tmtdew=10.04, humidity=49.47, cloud=0.0, wind=18.69, temperature=9.02, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T08:11:24.864', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 10:12:19,996 [DEBUG][       Thread-251120][   transport.py][1871] : EOF in transport thread
2025-06-13 10:12:20,070 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 10:12:20,084 [DEBUG][       Thread-251123][   transport.py][1871] : starting thread (client mode): 0x867b5c60
2025-06-13 10:12:20,084 [DEBUG][       Thread-251123][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 10:12:20,100 [DEBUG][       Thread-251123][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 10:12:20,100 [ INFO][       Thread-251123][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 10:12:20,109 [DEBUG][       Thread-251123][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 10:12:20,109 [DEBUG][       Thread-251123][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 10:12:20,109 [DEBUG][       Thread-251123][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 10:12:20,109 [DEBUG][       Thread-251123][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:12:20,109 [DEBUG][       Thread-251123][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:12:20,109 [DEBUG][       Thread-251123][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:12:20,109 [DEBUG][       Thread-251123][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:12:20,109 [DEBUG][       Thread-251123][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 10:12:20,109 [DEBUG][       Thread-251123][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 10:12:20,109 [DEBUG][       Thread-251123][   transport.py][1871] : client lang: <none>
2025-06-13 10:12:20,109 [DEBUG][       Thread-251123][   transport.py][1871] : server lang: <none>
2025-06-13 10:12:20,109 [DEBUG][       Thread-251123][   transport.py][1871] : kex follows: False
2025-06-13 10:12:20,109 [DEBUG][       Thread-251123][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 10:12:20,109 [DEBUG][       Thread-251123][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 10:12:20,109 [DEBUG][       Thread-251123][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 10:12:20,109 [DEBUG][       Thread-251123][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 10:12:20,109 [DEBUG][       Thread-251123][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 10:12:20,109 [DEBUG][       Thread-251123][   transport.py][1871] : Compression: none
2025-06-13 10:12:20,109 [DEBUG][       Thread-251123][   transport.py][1871] : === End of kex handshake ===
2025-06-13 10:12:20,168 [DEBUG][       Thread-251123][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 10:12:20,168 [DEBUG][       Thread-251123][   transport.py][1871] : Switch to new keys ...
2025-06-13 10:12:20,168 [DEBUG][       Thread-251123][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 10:12:20,168 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 10:12:20,168 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 10:12:20,230 [DEBUG][       Thread-251123][   transport.py][1871] : userauth is OK
2025-06-13 10:12:20,230 [DEBUG][       Thread-251123][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 10:12:20,230 [DEBUG][       Thread-251123][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 10:12:20,230 [DEBUG][       Thread-251123][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 10:12:20,230 [DEBUG][       Thread-251123][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 10:12:20,247 [ INFO][       Thread-251123][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 10:12:20,247 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 10:12:20,247 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 10:12:21,256 [DEBUG][       Thread-251123][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 10:12:21,257 [DEBUG][       Thread-251123][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 10:12:21,307 [DEBUG][       Thread-251123][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 10:12:21,307 [DEBUG][       Thread-251123][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 10:12:21,316 [DEBUG][       Thread-251123][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 10:12:21,324 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 10:12:21,324 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 10:12:21,332 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 10:12:21,340 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 10:12:21,340 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 10:12:21,340 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 10:12:21,347 [DEBUG][       Thread-251123][   transport.py][1871] : EOF in transport thread
2025-06-13 10:12:24,276 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:12:24,277 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:12:26,172 [DEBUG][Thread-251125 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:12:31,341 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 10:12:31,342 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 10:12:31,342 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 10:12:31,345 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 10:12:31,800 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 10, 12, 12), 10.04, 49.47, 0.0, 18.69, 9.02, 0, 0, 0, 2, 0, 0),)
2025-06-13 10:12:31,800 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 10:12:12
2025-06-13 10:12:31,881 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 10:12:31,885 [DEBUG][       Thread-251126][   transport.py][1871] : starting thread (client mode): 0x84205390
2025-06-13 10:12:31,885 [DEBUG][       Thread-251126][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 10:12:31,907 [DEBUG][       Thread-251126][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 10:12:31,907 [ INFO][       Thread-251126][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 10:12:31,911 [DEBUG][       Thread-251126][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 10:12:31,911 [DEBUG][       Thread-251126][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 10:12:31,911 [DEBUG][       Thread-251126][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 10:12:31,911 [DEBUG][       Thread-251126][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:12:31,911 [DEBUG][       Thread-251126][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:12:31,911 [DEBUG][       Thread-251126][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:12:31,911 [DEBUG][       Thread-251126][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:12:31,911 [DEBUG][       Thread-251126][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 10:12:31,911 [DEBUG][       Thread-251126][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 10:12:31,911 [DEBUG][       Thread-251126][   transport.py][1871] : client lang: <none>
2025-06-13 10:12:31,911 [DEBUG][       Thread-251126][   transport.py][1871] : server lang: <none>
2025-06-13 10:12:31,911 [DEBUG][       Thread-251126][   transport.py][1871] : kex follows: False
2025-06-13 10:12:31,911 [DEBUG][       Thread-251126][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 10:12:31,911 [DEBUG][       Thread-251126][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 10:12:31,911 [DEBUG][       Thread-251126][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 10:12:31,911 [DEBUG][       Thread-251126][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 10:12:31,911 [DEBUG][       Thread-251126][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 10:12:31,911 [DEBUG][       Thread-251126][   transport.py][1871] : Compression: none
2025-06-13 10:12:31,911 [DEBUG][       Thread-251126][   transport.py][1871] : === End of kex handshake ===
2025-06-13 10:12:31,928 [DEBUG][       Thread-251126][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 10:12:31,928 [DEBUG][       Thread-251126][   transport.py][1871] : Switch to new keys ...
2025-06-13 10:12:31,929 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 10:12:31,929 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 10:12:31,929 [DEBUG][       Thread-251126][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 10:12:31,930 [DEBUG][       Thread-251126][   transport.py][1871] : userauth is OK
2025-06-13 10:12:31,942 [ INFO][       Thread-251126][   transport.py][1871] : Authentication (password) successful!
2025-06-13 10:12:31,943 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 10:12:32,562 [DEBUG][       Thread-251126][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 10:12:32,562 [DEBUG][       Thread-251126][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 10:12:32,605 [DEBUG][       Thread-251126][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 10:12:32,605 [DEBUG][       Thread-251126][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 10:12:32,617 [DEBUG][       Thread-251126][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 10:12:32,625 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 10:12:32,625 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 10:12:32,627 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 10:12:32,628 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 10:12:32,633 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 10:12:32,635 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 10:12:32,635 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 10:12:32,635 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 10:12:32,636 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.341607 -999.00   +8.70  17.05     54   +0.00 1 1 1 1 1   887    0 9.19 27.81 ----- 19.1 17.1 34.6 25.1 13.3 -28.2 12.0 -29.6 10.8 -27.8 12.0 -26.6
2025-06-13 10:12:32,636 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 10:12:32,636 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 10:12:32,636 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.341607
2025-06-13 10:12:32,636 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 10:12:32,637 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 10:12:32,637 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 10:12:32,637 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 10:12:32,637 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 10:12:32,637 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T10:12:12', tmtdew=10.04, humidity=49.47, cloud=0.0, wind=18.69, temperature=9.02, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T08:11:54.845', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 10:12:32,637 [DEBUG][       Thread-251126][   transport.py][1871] : EOF in transport thread
2025-06-13 10:12:32,720 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 10:12:33,742 [DEBUG][       Thread-251129][   transport.py][1871] : starting thread (client mode): 0x863c9750
2025-06-13 10:12:33,742 [DEBUG][       Thread-251129][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 10:12:33,759 [DEBUG][       Thread-251129][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 10:12:33,759 [ INFO][       Thread-251129][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 10:12:33,767 [DEBUG][       Thread-251129][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 10:12:33,767 [DEBUG][       Thread-251129][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 10:12:33,767 [DEBUG][       Thread-251129][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 10:12:33,767 [DEBUG][       Thread-251129][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:12:33,767 [DEBUG][       Thread-251129][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:12:33,767 [DEBUG][       Thread-251129][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:12:33,767 [DEBUG][       Thread-251129][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:12:33,768 [DEBUG][       Thread-251129][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 10:12:33,768 [DEBUG][       Thread-251129][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 10:12:33,768 [DEBUG][       Thread-251129][   transport.py][1871] : client lang: <none>
2025-06-13 10:12:33,768 [DEBUG][       Thread-251129][   transport.py][1871] : server lang: <none>
2025-06-13 10:12:33,768 [DEBUG][       Thread-251129][   transport.py][1871] : kex follows: False
2025-06-13 10:12:33,768 [DEBUG][       Thread-251129][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 10:12:33,768 [DEBUG][       Thread-251129][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 10:12:33,768 [DEBUG][       Thread-251129][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 10:12:33,768 [DEBUG][       Thread-251129][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 10:12:33,768 [DEBUG][       Thread-251129][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 10:12:33,768 [DEBUG][       Thread-251129][   transport.py][1871] : Compression: none
2025-06-13 10:12:33,768 [DEBUG][       Thread-251129][   transport.py][1871] : === End of kex handshake ===
2025-06-13 10:12:33,827 [DEBUG][       Thread-251129][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 10:12:33,827 [DEBUG][       Thread-251129][   transport.py][1871] : Switch to new keys ...
2025-06-13 10:12:33,828 [DEBUG][       Thread-251129][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 10:12:33,828 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 10:12:33,829 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 10:12:33,883 [DEBUG][       Thread-251129][   transport.py][1871] : userauth is OK
2025-06-13 10:12:33,883 [DEBUG][       Thread-251129][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 10:12:33,883 [DEBUG][       Thread-251129][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 10:12:33,883 [DEBUG][       Thread-251129][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 10:12:33,884 [DEBUG][       Thread-251129][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 10:12:33,903 [ INFO][       Thread-251129][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 10:12:33,904 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 10:12:33,904 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 10:12:34,944 [DEBUG][       Thread-251129][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 10:12:34,945 [DEBUG][       Thread-251129][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 10:12:34,996 [DEBUG][       Thread-251129][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 10:12:34,996 [DEBUG][       Thread-251129][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 10:12:35,007 [DEBUG][       Thread-251129][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 10:12:35,021 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 10:12:35,021 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 10:12:35,031 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 10:12:35,040 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 10:12:35,040 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 10:12:35,041 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 10:12:35,052 [DEBUG][       Thread-251129][   transport.py][1871] : EOF in transport thread
2025-06-13 10:12:35,202 [DEBUG][Thread-251131 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:12:44,224 [DEBUG][Thread-251132 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:12:45,049 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 10:12:45,049 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 10:12:45,049 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 10:12:45,051 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 10:12:45,547 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 10, 12, 12), 10.04, 49.47, 0.0, 18.69, 9.02, 0, 0, 0, 2, 0, 0),)
2025-06-13 10:12:45,547 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 10:12:12
2025-06-13 10:12:45,634 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 10:12:45,640 [DEBUG][       Thread-251133][   transport.py][1871] : starting thread (client mode): 0x84205ed0
2025-06-13 10:12:45,640 [DEBUG][       Thread-251133][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 10:12:45,660 [DEBUG][       Thread-251133][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 10:12:45,660 [ INFO][       Thread-251133][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 10:12:45,664 [DEBUG][       Thread-251133][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 10:12:45,664 [DEBUG][       Thread-251133][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 10:12:45,664 [DEBUG][       Thread-251133][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 10:12:45,664 [DEBUG][       Thread-251133][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:12:45,664 [DEBUG][       Thread-251133][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:12:45,664 [DEBUG][       Thread-251133][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:12:45,664 [DEBUG][       Thread-251133][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:12:45,664 [DEBUG][       Thread-251133][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 10:12:45,664 [DEBUG][       Thread-251133][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 10:12:45,664 [DEBUG][       Thread-251133][   transport.py][1871] : client lang: <none>
2025-06-13 10:12:45,664 [DEBUG][       Thread-251133][   transport.py][1871] : server lang: <none>
2025-06-13 10:12:45,664 [DEBUG][       Thread-251133][   transport.py][1871] : kex follows: False
2025-06-13 10:12:45,664 [DEBUG][       Thread-251133][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 10:12:45,664 [DEBUG][       Thread-251133][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 10:12:45,664 [DEBUG][       Thread-251133][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 10:12:45,664 [DEBUG][       Thread-251133][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 10:12:45,664 [DEBUG][       Thread-251133][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 10:12:45,664 [DEBUG][       Thread-251133][   transport.py][1871] : Compression: none
2025-06-13 10:12:45,664 [DEBUG][       Thread-251133][   transport.py][1871] : === End of kex handshake ===
2025-06-13 10:12:45,681 [DEBUG][       Thread-251133][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 10:12:45,681 [DEBUG][       Thread-251133][   transport.py][1871] : Switch to new keys ...
2025-06-13 10:12:45,681 [DEBUG][       Thread-251133][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 10:12:45,681 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 10:12:45,681 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 10:12:45,682 [DEBUG][       Thread-251133][   transport.py][1871] : userauth is OK
2025-06-13 10:12:45,695 [ INFO][       Thread-251133][   transport.py][1871] : Authentication (password) successful!
2025-06-13 10:12:45,695 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 10:12:46,291 [DEBUG][       Thread-251133][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 10:12:46,291 [DEBUG][       Thread-251133][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 10:12:46,332 [DEBUG][       Thread-251133][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 10:12:46,332 [DEBUG][       Thread-251133][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 10:12:46,334 [DEBUG][       Thread-251133][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 10:12:46,340 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 10:12:46,340 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 10:12:46,341 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 10:12:46,341 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 10:12:46,344 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 10:12:46,344 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 10:12:46,344 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 10:12:46,345 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 10:12:46,345 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.341607 -999.00   +8.70  17.05     54   +0.00 1 1 1 1 1   887    0 9.19 27.81 ----- 19.1 17.1 34.6 25.1 13.3 -28.2 12.0 -29.6 10.8 -27.8 12.0 -26.6
2025-06-13 10:12:46,345 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 10:12:46,345 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 10:12:46,345 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.341607
2025-06-13 10:12:46,345 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 10:12:46,345 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 10:12:46,345 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 10:12:46,345 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 10:12:46,345 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 10:12:46,345 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T10:12:12', tmtdew=10.04, humidity=49.47, cloud=0.0, wind=18.69, temperature=9.02, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T08:11:54.845', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 10:12:46,345 [DEBUG][       Thread-251133][   transport.py][1871] : EOF in transport thread
2025-06-13 10:12:46,420 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 10:12:46,431 [DEBUG][       Thread-251136][   transport.py][1871] : starting thread (client mode): 0x863caa10
2025-06-13 10:12:46,432 [DEBUG][       Thread-251136][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 10:12:46,446 [DEBUG][       Thread-251136][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 10:12:46,446 [ INFO][       Thread-251136][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 10:12:46,454 [DEBUG][       Thread-251136][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 10:12:46,454 [DEBUG][       Thread-251136][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 10:12:46,454 [DEBUG][       Thread-251136][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 10:12:46,454 [DEBUG][       Thread-251136][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:12:46,454 [DEBUG][       Thread-251136][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:12:46,454 [DEBUG][       Thread-251136][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:12:46,454 [DEBUG][       Thread-251136][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:12:46,454 [DEBUG][       Thread-251136][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 10:12:46,454 [DEBUG][       Thread-251136][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 10:12:46,454 [DEBUG][       Thread-251136][   transport.py][1871] : client lang: <none>
2025-06-13 10:12:46,454 [DEBUG][       Thread-251136][   transport.py][1871] : server lang: <none>
2025-06-13 10:12:46,454 [DEBUG][       Thread-251136][   transport.py][1871] : kex follows: False
2025-06-13 10:12:46,454 [DEBUG][       Thread-251136][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 10:12:46,454 [DEBUG][       Thread-251136][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 10:12:46,454 [DEBUG][       Thread-251136][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 10:12:46,454 [DEBUG][       Thread-251136][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 10:12:46,454 [DEBUG][       Thread-251136][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 10:12:46,454 [DEBUG][       Thread-251136][   transport.py][1871] : Compression: none
2025-06-13 10:12:46,454 [DEBUG][       Thread-251136][   transport.py][1871] : === End of kex handshake ===
2025-06-13 10:12:46,517 [DEBUG][       Thread-251136][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 10:12:46,517 [DEBUG][       Thread-251136][   transport.py][1871] : Switch to new keys ...
2025-06-13 10:12:46,517 [DEBUG][       Thread-251136][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 10:12:46,518 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 10:12:46,518 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 10:12:46,574 [DEBUG][       Thread-251136][   transport.py][1871] : userauth is OK
2025-06-13 10:12:46,574 [DEBUG][       Thread-251136][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 10:12:46,574 [DEBUG][       Thread-251136][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 10:12:46,574 [DEBUG][       Thread-251136][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 10:12:46,574 [DEBUG][       Thread-251136][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 10:12:46,588 [ INFO][       Thread-251136][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 10:12:46,588 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 10:12:46,589 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 10:12:47,728 [DEBUG][       Thread-251136][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 10:12:47,729 [DEBUG][       Thread-251136][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 10:12:47,780 [DEBUG][       Thread-251136][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 10:12:47,780 [DEBUG][       Thread-251136][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 10:12:47,792 [DEBUG][       Thread-251136][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 10:12:47,801 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 10:12:47,801 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 10:12:47,809 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 10:12:47,818 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 10:12:47,818 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 10:12:47,819 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 10:12:47,827 [DEBUG][       Thread-251136][   transport.py][1871] : EOF in transport thread
2025-06-13 10:12:53,242 [DEBUG][Thread-251138 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:12:56,842 [DEBUG][Thread-251139 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:12:57,828 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 10:12:57,828 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 10:12:57,828 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 10:12:57,831 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 10:12:57,912 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:12:57,912 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:12:58,332 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 10, 12, 44), 10.02, 49.55, 0.0, 17.13, 9.04, 0, 0, 0, 2, 0, 0),)
2025-06-13 10:12:58,332 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 10:12:44
2025-06-13 10:12:58,416 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 10:12:58,420 [DEBUG][       Thread-251140][   transport.py][1871] : starting thread (client mode): 0x863bd720
2025-06-13 10:12:58,421 [DEBUG][       Thread-251140][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 10:12:58,442 [DEBUG][       Thread-251140][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 10:12:58,442 [ INFO][       Thread-251140][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 10:12:58,445 [DEBUG][       Thread-251140][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 10:12:58,445 [DEBUG][       Thread-251140][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 10:12:58,445 [DEBUG][       Thread-251140][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 10:12:58,445 [DEBUG][       Thread-251140][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:12:58,445 [DEBUG][       Thread-251140][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:12:58,445 [DEBUG][       Thread-251140][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:12:58,445 [DEBUG][       Thread-251140][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:12:58,445 [DEBUG][       Thread-251140][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 10:12:58,445 [DEBUG][       Thread-251140][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 10:12:58,445 [DEBUG][       Thread-251140][   transport.py][1871] : client lang: <none>
2025-06-13 10:12:58,445 [DEBUG][       Thread-251140][   transport.py][1871] : server lang: <none>
2025-06-13 10:12:58,445 [DEBUG][       Thread-251140][   transport.py][1871] : kex follows: False
2025-06-13 10:12:58,445 [DEBUG][       Thread-251140][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 10:12:58,445 [DEBUG][       Thread-251140][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 10:12:58,445 [DEBUG][       Thread-251140][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 10:12:58,445 [DEBUG][       Thread-251140][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 10:12:58,445 [DEBUG][       Thread-251140][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 10:12:58,445 [DEBUG][       Thread-251140][   transport.py][1871] : Compression: none
2025-06-13 10:12:58,445 [DEBUG][       Thread-251140][   transport.py][1871] : === End of kex handshake ===
2025-06-13 10:12:58,460 [DEBUG][       Thread-251140][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 10:12:58,460 [DEBUG][       Thread-251140][   transport.py][1871] : Switch to new keys ...
2025-06-13 10:12:58,460 [DEBUG][       Thread-251140][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 10:12:58,460 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 10:12:58,460 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 10:12:58,461 [DEBUG][       Thread-251140][   transport.py][1871] : userauth is OK
2025-06-13 10:12:58,473 [ INFO][       Thread-251140][   transport.py][1871] : Authentication (password) successful!
2025-06-13 10:12:58,473 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 10:12:59,140 [DEBUG][       Thread-251140][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 10:12:59,140 [DEBUG][       Thread-251140][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 10:12:59,184 [DEBUG][       Thread-251140][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 10:12:59,184 [DEBUG][       Thread-251140][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 10:12:59,186 [DEBUG][       Thread-251140][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 10:12:59,192 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 10:12:59,192 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 10:12:59,193 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 10:12:59,194 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 10:12:59,196 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 10:12:59,197 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 10:12:59,197 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 10:12:59,197 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 10:12:59,197 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.341607 -999.00   +8.70  17.05     54   +0.00 1 1 1 1 1   887    0 9.19 27.81 ----- 19.1 17.1 34.6 25.1 13.3 -28.2 12.0 -29.6 10.8 -27.8 12.0 -26.6
2025-06-13 10:12:59,197 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 10:12:59,197 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 10:12:59,197 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.341607
2025-06-13 10:12:59,197 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 10:12:59,197 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 10:12:59,197 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 10:12:59,197 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 10:12:59,197 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 10:12:59,197 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T10:12:44', tmtdew=10.02, humidity=49.55, cloud=0.0, wind=17.13, temperature=9.04, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T08:11:54.845', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 10:12:59,197 [DEBUG][       Thread-251140][   transport.py][1871] : EOF in transport thread
2025-06-13 10:12:59,271 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 10:12:59,281 [DEBUG][       Thread-251143][   transport.py][1871] : starting thread (client mode): 0x863efbe0
2025-06-13 10:12:59,281 [DEBUG][       Thread-251143][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 10:12:59,296 [DEBUG][       Thread-251143][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 10:12:59,296 [ INFO][       Thread-251143][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 10:12:59,303 [DEBUG][       Thread-251143][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 10:12:59,303 [DEBUG][       Thread-251143][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 10:12:59,303 [DEBUG][       Thread-251143][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 10:12:59,303 [DEBUG][       Thread-251143][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:12:59,303 [DEBUG][       Thread-251143][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:12:59,303 [DEBUG][       Thread-251143][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:12:59,303 [DEBUG][       Thread-251143][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:12:59,303 [DEBUG][       Thread-251143][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 10:12:59,303 [DEBUG][       Thread-251143][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 10:12:59,303 [DEBUG][       Thread-251143][   transport.py][1871] : client lang: <none>
2025-06-13 10:12:59,303 [DEBUG][       Thread-251143][   transport.py][1871] : server lang: <none>
2025-06-13 10:12:59,303 [DEBUG][       Thread-251143][   transport.py][1871] : kex follows: False
2025-06-13 10:12:59,303 [DEBUG][       Thread-251143][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 10:12:59,303 [DEBUG][       Thread-251143][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 10:12:59,303 [DEBUG][       Thread-251143][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 10:12:59,304 [DEBUG][       Thread-251143][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 10:12:59,304 [DEBUG][       Thread-251143][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 10:12:59,304 [DEBUG][       Thread-251143][   transport.py][1871] : Compression: none
2025-06-13 10:12:59,304 [DEBUG][       Thread-251143][   transport.py][1871] : === End of kex handshake ===
2025-06-13 10:12:59,361 [DEBUG][       Thread-251143][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 10:12:59,361 [DEBUG][       Thread-251143][   transport.py][1871] : Switch to new keys ...
2025-06-13 10:12:59,361 [DEBUG][       Thread-251143][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 10:12:59,361 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 10:12:59,361 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 10:12:59,418 [DEBUG][       Thread-251143][   transport.py][1871] : userauth is OK
2025-06-13 10:12:59,418 [DEBUG][       Thread-251143][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 10:12:59,418 [DEBUG][       Thread-251143][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 10:12:59,418 [DEBUG][       Thread-251143][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 10:12:59,418 [DEBUG][       Thread-251143][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 10:12:59,432 [ INFO][       Thread-251143][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 10:12:59,433 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 10:12:59,433 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 10:13:00,421 [DEBUG][       Thread-251143][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 10:13:00,421 [DEBUG][       Thread-251143][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 10:13:00,471 [DEBUG][       Thread-251143][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 10:13:00,472 [DEBUG][       Thread-251143][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 10:13:00,480 [DEBUG][       Thread-251143][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 10:13:00,488 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 10:13:00,488 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 10:13:00,496 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 10:13:00,504 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 10:13:00,504 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 10:13:00,504 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 10:13:00,512 [DEBUG][       Thread-251143][   transport.py][1871] : EOF in transport thread
2025-06-13 10:13:02,260 [DEBUG][Thread-251145 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:13:05,549 [DEBUG][Thread-251146 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:13:10,508 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 10:13:10,508 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 10:13:10,508 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 10:13:10,511 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 10:13:10,980 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 10, 12, 44), 10.02, 49.55, 0.0, 17.13, 9.04, 0, 0, 0, 2, 0, 0),)
2025-06-13 10:13:10,980 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 10:12:44
2025-06-13 10:13:11,062 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 10:13:11,068 [DEBUG][       Thread-251147][   transport.py][1871] : starting thread (client mode): 0x8636b040
2025-06-13 10:13:11,068 [DEBUG][       Thread-251147][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 10:13:11,089 [DEBUG][       Thread-251147][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 10:13:11,089 [ INFO][       Thread-251147][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 10:13:11,092 [DEBUG][       Thread-251147][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 10:13:11,092 [DEBUG][       Thread-251147][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 10:13:11,092 [DEBUG][       Thread-251147][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 10:13:11,092 [DEBUG][       Thread-251147][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:13:11,092 [DEBUG][       Thread-251147][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:13:11,092 [DEBUG][       Thread-251147][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:13:11,092 [DEBUG][       Thread-251147][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:13:11,092 [DEBUG][       Thread-251147][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 10:13:11,092 [DEBUG][       Thread-251147][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 10:13:11,092 [DEBUG][       Thread-251147][   transport.py][1871] : client lang: <none>
2025-06-13 10:13:11,092 [DEBUG][       Thread-251147][   transport.py][1871] : server lang: <none>
2025-06-13 10:13:11,092 [DEBUG][       Thread-251147][   transport.py][1871] : kex follows: False
2025-06-13 10:13:11,092 [DEBUG][       Thread-251147][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 10:13:11,092 [DEBUG][       Thread-251147][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 10:13:11,092 [DEBUG][       Thread-251147][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 10:13:11,092 [DEBUG][       Thread-251147][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 10:13:11,093 [DEBUG][       Thread-251147][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 10:13:11,093 [DEBUG][       Thread-251147][   transport.py][1871] : Compression: none
2025-06-13 10:13:11,093 [DEBUG][       Thread-251147][   transport.py][1871] : === End of kex handshake ===
2025-06-13 10:13:11,109 [DEBUG][       Thread-251147][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 10:13:11,109 [DEBUG][       Thread-251147][   transport.py][1871] : Switch to new keys ...
2025-06-13 10:13:11,110 [DEBUG][       Thread-251147][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 10:13:11,110 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 10:13:11,110 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 10:13:11,111 [DEBUG][       Thread-251147][   transport.py][1871] : userauth is OK
2025-06-13 10:13:11,125 [ INFO][       Thread-251147][   transport.py][1871] : Authentication (password) successful!
2025-06-13 10:13:11,125 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 10:13:11,291 [DEBUG][Thread-251149 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:13:11,757 [DEBUG][       Thread-251147][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 10:13:11,758 [DEBUG][       Thread-251147][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 10:13:11,801 [DEBUG][       Thread-251147][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 10:13:11,801 [DEBUG][       Thread-251147][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 10:13:11,803 [DEBUG][       Thread-251147][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 10:13:11,815 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 10:13:11,815 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 10:13:11,817 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 10:13:11,818 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 10:13:11,822 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 10:13:11,824 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 10:13:11,824 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 10:13:11,824 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 10:13:11,824 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.342301 -999.00   +8.60  19.84     53   -0.20 1 1 1 1 1   887    0 9.19 28.28 ----- 19.0 19.8 48.0 26.0 13.3 -29.0 12.0 -29.9 10.8 -27.6 12.1 -26.7
2025-06-13 10:13:11,825 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 10:13:11,825 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 10:13:11,825 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.342301
2025-06-13 10:13:11,825 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 10:13:11,826 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 10:13:11,826 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 10:13:11,826 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 10:13:11,826 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 10:13:11,826 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T10:12:44', tmtdew=10.02, humidity=49.55, cloud=0.0, wind=17.13, temperature=9.04, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T08:12:54.806', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 10:13:11,827 [DEBUG][       Thread-251147][   transport.py][1871] : EOF in transport thread
2025-06-13 10:13:11,909 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 10:13:11,920 [DEBUG][       Thread-251151][   transport.py][1871] : starting thread (client mode): 0x867b5450
2025-06-13 10:13:11,920 [DEBUG][       Thread-251151][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 10:13:11,935 [DEBUG][       Thread-251151][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 10:13:11,935 [ INFO][       Thread-251151][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 10:13:11,948 [DEBUG][       Thread-251151][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 10:13:11,948 [DEBUG][       Thread-251151][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 10:13:11,948 [DEBUG][       Thread-251151][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 10:13:11,948 [DEBUG][       Thread-251151][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:13:11,948 [DEBUG][       Thread-251151][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:13:11,948 [DEBUG][       Thread-251151][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:13:11,948 [DEBUG][       Thread-251151][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:13:11,949 [DEBUG][       Thread-251151][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 10:13:11,949 [DEBUG][       Thread-251151][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 10:13:11,949 [DEBUG][       Thread-251151][   transport.py][1871] : client lang: <none>
2025-06-13 10:13:11,949 [DEBUG][       Thread-251151][   transport.py][1871] : server lang: <none>
2025-06-13 10:13:11,949 [DEBUG][       Thread-251151][   transport.py][1871] : kex follows: False
2025-06-13 10:13:11,949 [DEBUG][       Thread-251151][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 10:13:11,949 [DEBUG][       Thread-251151][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 10:13:11,949 [DEBUG][       Thread-251151][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 10:13:11,949 [DEBUG][       Thread-251151][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 10:13:11,949 [DEBUG][       Thread-251151][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 10:13:11,949 [DEBUG][       Thread-251151][   transport.py][1871] : Compression: none
2025-06-13 10:13:11,949 [DEBUG][       Thread-251151][   transport.py][1871] : === End of kex handshake ===
2025-06-13 10:13:12,002 [DEBUG][       Thread-251151][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 10:13:12,002 [DEBUG][       Thread-251151][   transport.py][1871] : Switch to new keys ...
2025-06-13 10:13:12,011 [DEBUG][       Thread-251151][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 10:13:12,012 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 10:13:12,012 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 10:13:12,058 [DEBUG][       Thread-251151][   transport.py][1871] : userauth is OK
2025-06-13 10:13:12,059 [DEBUG][       Thread-251151][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 10:13:12,059 [DEBUG][       Thread-251151][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 10:13:12,059 [DEBUG][       Thread-251151][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 10:13:12,059 [DEBUG][       Thread-251151][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 10:13:12,078 [ INFO][       Thread-251151][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 10:13:12,078 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 10:13:12,078 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 10:13:13,135 [DEBUG][       Thread-251151][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 10:13:13,135 [DEBUG][       Thread-251151][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 10:13:13,184 [DEBUG][       Thread-251151][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 10:13:13,184 [DEBUG][       Thread-251151][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 10:13:13,193 [DEBUG][       Thread-251151][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 10:13:13,201 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 10:13:13,201 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 10:13:13,216 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 10:13:13,228 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 10:13:13,229 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 10:13:13,229 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 10:13:13,240 [DEBUG][       Thread-251151][   transport.py][1871] : EOF in transport thread
2025-06-13 10:13:20,309 [DEBUG][Thread-251153 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:13:23,239 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 10:13:23,240 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 10:13:23,240 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 10:13:23,242 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 10:13:23,713 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 10, 13, 16), 10.16, 48.88, 0.0, 17.75, 8.92, 0, 0, 0, 2, 0, 0),)
2025-06-13 10:13:23,713 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 10:13:16
2025-06-13 10:13:23,796 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 10:13:23,800 [DEBUG][       Thread-251154][   transport.py][1871] : starting thread (client mode): 0x867b7c40
2025-06-13 10:13:23,800 [DEBUG][       Thread-251154][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 10:13:23,823 [DEBUG][       Thread-251154][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 10:13:23,823 [ INFO][       Thread-251154][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 10:13:23,826 [DEBUG][       Thread-251154][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 10:13:23,826 [DEBUG][       Thread-251154][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 10:13:23,826 [DEBUG][       Thread-251154][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 10:13:23,826 [DEBUG][       Thread-251154][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:13:23,826 [DEBUG][       Thread-251154][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:13:23,826 [DEBUG][       Thread-251154][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:13:23,826 [DEBUG][       Thread-251154][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:13:23,826 [DEBUG][       Thread-251154][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 10:13:23,826 [DEBUG][       Thread-251154][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 10:13:23,826 [DEBUG][       Thread-251154][   transport.py][1871] : client lang: <none>
2025-06-13 10:13:23,826 [DEBUG][       Thread-251154][   transport.py][1871] : server lang: <none>
2025-06-13 10:13:23,826 [DEBUG][       Thread-251154][   transport.py][1871] : kex follows: False
2025-06-13 10:13:23,826 [DEBUG][       Thread-251154][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 10:13:23,826 [DEBUG][       Thread-251154][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 10:13:23,826 [DEBUG][       Thread-251154][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 10:13:23,826 [DEBUG][       Thread-251154][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 10:13:23,826 [DEBUG][       Thread-251154][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 10:13:23,826 [DEBUG][       Thread-251154][   transport.py][1871] : Compression: none
2025-06-13 10:13:23,826 [DEBUG][       Thread-251154][   transport.py][1871] : === End of kex handshake ===
2025-06-13 10:13:23,833 [DEBUG][       Thread-251154][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 10:13:23,833 [DEBUG][       Thread-251154][   transport.py][1871] : Switch to new keys ...
2025-06-13 10:13:23,833 [DEBUG][       Thread-251154][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 10:13:23,833 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 10:13:23,833 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 10:13:23,834 [DEBUG][       Thread-251154][   transport.py][1871] : userauth is OK
2025-06-13 10:13:23,846 [ INFO][       Thread-251154][   transport.py][1871] : Authentication (password) successful!
2025-06-13 10:13:23,846 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 10:13:24,412 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:13:24,413 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:13:24,507 [DEBUG][       Thread-251154][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 10:13:24,508 [DEBUG][       Thread-251154][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 10:13:24,549 [DEBUG][       Thread-251154][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 10:13:24,549 [DEBUG][       Thread-251154][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 10:13:24,552 [DEBUG][       Thread-251154][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 10:13:24,564 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 10:13:24,564 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 10:13:24,566 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 10:13:24,567 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 10:13:24,572 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 10:13:24,573 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 10:13:24,574 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 10:13:24,574 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 10:13:24,574 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.342301 -999.00   +8.60  19.84     53   -0.20 1 1 1 1 1   887    0 9.19 28.28 ----- 19.0 19.8 48.0 26.0 13.3 -29.0 12.0 -29.9 10.8 -27.6 12.1 -26.7
2025-06-13 10:13:24,574 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 10:13:24,575 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 10:13:24,575 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.342301
2025-06-13 10:13:24,575 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 10:13:24,576 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 10:13:24,576 [DEBUG][       Thread-251154][   transport.py][1871] : EOF in transport thread
2025-06-13 10:13:24,576 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 10:13:24,576 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 10:13:24,577 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 10:13:24,577 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T10:13:16', tmtdew=10.16, humidity=48.88, cloud=0.0, wind=17.75, temperature=8.92, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T08:12:54.806', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 10:13:24,661 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 10:13:24,676 [DEBUG][       Thread-251157][   transport.py][1871] : starting thread (client mode): 0x863a5210
2025-06-13 10:13:24,676 [DEBUG][       Thread-251157][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 10:13:24,691 [DEBUG][       Thread-251157][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 10:13:24,691 [ INFO][       Thread-251157][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 10:13:24,698 [DEBUG][       Thread-251157][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 10:13:24,698 [DEBUG][       Thread-251157][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 10:13:24,699 [DEBUG][       Thread-251157][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 10:13:24,699 [DEBUG][       Thread-251157][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:13:24,699 [DEBUG][       Thread-251157][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:13:24,699 [DEBUG][       Thread-251157][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:13:24,699 [DEBUG][       Thread-251157][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:13:24,699 [DEBUG][       Thread-251157][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 10:13:24,699 [DEBUG][       Thread-251157][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 10:13:24,699 [DEBUG][       Thread-251157][   transport.py][1871] : client lang: <none>
2025-06-13 10:13:24,699 [DEBUG][       Thread-251157][   transport.py][1871] : server lang: <none>
2025-06-13 10:13:24,699 [DEBUG][       Thread-251157][   transport.py][1871] : kex follows: False
2025-06-13 10:13:24,699 [DEBUG][       Thread-251157][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 10:13:24,699 [DEBUG][       Thread-251157][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 10:13:24,699 [DEBUG][       Thread-251157][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 10:13:24,699 [DEBUG][       Thread-251157][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 10:13:24,699 [DEBUG][       Thread-251157][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 10:13:24,699 [DEBUG][       Thread-251157][   transport.py][1871] : Compression: none
2025-06-13 10:13:24,699 [DEBUG][       Thread-251157][   transport.py][1871] : === End of kex handshake ===
2025-06-13 10:13:24,762 [DEBUG][       Thread-251157][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 10:13:24,762 [DEBUG][       Thread-251157][   transport.py][1871] : Switch to new keys ...
2025-06-13 10:13:24,763 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 10:13:24,763 [DEBUG][       Thread-251157][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 10:13:24,764 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 10:13:24,822 [DEBUG][       Thread-251157][   transport.py][1871] : userauth is OK
2025-06-13 10:13:24,822 [DEBUG][       Thread-251157][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 10:13:24,822 [DEBUG][       Thread-251157][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 10:13:24,822 [DEBUG][       Thread-251157][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 10:13:24,822 [DEBUG][       Thread-251157][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 10:13:24,841 [ INFO][       Thread-251157][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 10:13:24,841 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 10:13:24,841 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 10:13:25,855 [DEBUG][       Thread-251157][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 10:13:25,855 [DEBUG][       Thread-251157][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 10:13:25,905 [DEBUG][       Thread-251157][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 10:13:25,905 [DEBUG][       Thread-251157][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 10:13:25,914 [DEBUG][       Thread-251157][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 10:13:25,923 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 10:13:25,923 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 10:13:25,933 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 10:13:25,945 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 10:13:25,945 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 10:13:25,946 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 10:13:25,954 [DEBUG][       Thread-251157][   transport.py][1871] : EOF in transport thread
2025-06-13 10:13:29,328 [DEBUG][Thread-251159 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:13:35,956 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 10:13:35,956 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 10:13:35,956 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 10:13:35,958 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 10:13:36,434 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 10, 13, 16), 10.16, 48.88, 0.0, 17.75, 8.92, 0, 0, 0, 2, 0, 0),)
2025-06-13 10:13:36,434 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 10:13:16
2025-06-13 10:13:36,522 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 10:13:36,527 [DEBUG][       Thread-251160][   transport.py][1871] : starting thread (client mode): 0x863bf400
2025-06-13 10:13:36,527 [DEBUG][       Thread-251160][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 10:13:36,544 [DEBUG][       Thread-251160][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 10:13:36,544 [ INFO][       Thread-251160][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 10:13:36,548 [DEBUG][       Thread-251160][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 10:13:36,548 [DEBUG][       Thread-251160][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 10:13:36,548 [DEBUG][       Thread-251160][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 10:13:36,548 [DEBUG][       Thread-251160][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:13:36,548 [DEBUG][       Thread-251160][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:13:36,548 [DEBUG][       Thread-251160][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:13:36,548 [DEBUG][       Thread-251160][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:13:36,548 [DEBUG][       Thread-251160][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 10:13:36,548 [DEBUG][       Thread-251160][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 10:13:36,548 [DEBUG][       Thread-251160][   transport.py][1871] : client lang: <none>
2025-06-13 10:13:36,548 [DEBUG][       Thread-251160][   transport.py][1871] : server lang: <none>
2025-06-13 10:13:36,548 [DEBUG][       Thread-251160][   transport.py][1871] : kex follows: False
2025-06-13 10:13:36,548 [DEBUG][       Thread-251160][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 10:13:36,548 [DEBUG][       Thread-251160][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 10:13:36,548 [DEBUG][       Thread-251160][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 10:13:36,548 [DEBUG][       Thread-251160][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 10:13:36,548 [DEBUG][       Thread-251160][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 10:13:36,548 [DEBUG][       Thread-251160][   transport.py][1871] : Compression: none
2025-06-13 10:13:36,548 [DEBUG][       Thread-251160][   transport.py][1871] : === End of kex handshake ===
2025-06-13 10:13:36,556 [DEBUG][       Thread-251160][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 10:13:36,556 [DEBUG][       Thread-251160][   transport.py][1871] : Switch to new keys ...
2025-06-13 10:13:36,556 [DEBUG][       Thread-251160][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 10:13:36,556 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 10:13:36,557 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 10:13:36,557 [DEBUG][       Thread-251160][   transport.py][1871] : userauth is OK
2025-06-13 10:13:36,569 [ INFO][       Thread-251160][   transport.py][1871] : Authentication (password) successful!
2025-06-13 10:13:36,570 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 10:13:37,115 [DEBUG][       Thread-251160][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 10:13:37,115 [DEBUG][       Thread-251160][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 10:13:37,156 [DEBUG][       Thread-251160][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 10:13:37,156 [DEBUG][       Thread-251160][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 10:13:37,158 [DEBUG][       Thread-251160][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 10:13:37,169 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 10:13:37,169 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 10:13:37,170 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 10:13:37,171 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 10:13:37,173 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 10:13:37,174 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 10:13:37,174 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 10:13:37,174 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 10:13:37,174 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.342649 -999.00   +8.80  14.77     54   +0.10 1 1 1 1 1   887    0 9.17 27.39 ----- 17.4 14.8 44.6 21.7 13.3 -28.0 11.9 -29.1 10.8 -27.9 12.1 -26.7
2025-06-13 10:13:37,174 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 10:13:37,174 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 10:13:37,174 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.342649
2025-06-13 10:13:37,174 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 10:13:37,174 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 10:13:37,174 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 10:13:37,174 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 10:13:37,174 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 10:13:37,174 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T10:13:16', tmtdew=10.16, humidity=48.88, cloud=0.0, wind=17.75, temperature=8.92, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T08:13:24.874', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 10:13:37,175 [DEBUG][       Thread-251160][   transport.py][1871] : EOF in transport thread
2025-06-13 10:13:37,248 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 10:13:37,267 [DEBUG][       Thread-251163][   transport.py][1871] : starting thread (client mode): 0x863ece20
2025-06-13 10:13:37,267 [DEBUG][       Thread-251163][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 10:13:37,291 [DEBUG][       Thread-251163][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 10:13:37,291 [ INFO][       Thread-251163][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 10:13:37,304 [DEBUG][       Thread-251163][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 10:13:37,304 [DEBUG][       Thread-251163][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 10:13:37,304 [DEBUG][       Thread-251163][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 10:13:37,304 [DEBUG][       Thread-251163][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:13:37,304 [DEBUG][       Thread-251163][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:13:37,304 [DEBUG][       Thread-251163][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:13:37,304 [DEBUG][       Thread-251163][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:13:37,304 [DEBUG][       Thread-251163][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 10:13:37,304 [DEBUG][       Thread-251163][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 10:13:37,304 [DEBUG][       Thread-251163][   transport.py][1871] : client lang: <none>
2025-06-13 10:13:37,304 [DEBUG][       Thread-251163][   transport.py][1871] : server lang: <none>
2025-06-13 10:13:37,304 [DEBUG][       Thread-251163][   transport.py][1871] : kex follows: False
2025-06-13 10:13:37,304 [DEBUG][       Thread-251163][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 10:13:37,304 [DEBUG][       Thread-251163][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 10:13:37,304 [DEBUG][       Thread-251163][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 10:13:37,304 [DEBUG][       Thread-251163][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 10:13:37,304 [DEBUG][       Thread-251163][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 10:13:37,304 [DEBUG][       Thread-251163][   transport.py][1871] : Compression: none
2025-06-13 10:13:37,304 [DEBUG][       Thread-251163][   transport.py][1871] : === End of kex handshake ===
2025-06-13 10:13:37,361 [DEBUG][       Thread-251163][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 10:13:37,361 [DEBUG][       Thread-251163][   transport.py][1871] : Switch to new keys ...
2025-06-13 10:13:37,361 [DEBUG][       Thread-251163][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 10:13:37,361 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 10:13:37,362 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 10:13:37,422 [DEBUG][       Thread-251163][   transport.py][1871] : userauth is OK
2025-06-13 10:13:37,422 [DEBUG][       Thread-251163][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 10:13:37,422 [DEBUG][       Thread-251163][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 10:13:37,422 [DEBUG][       Thread-251163][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 10:13:37,422 [DEBUG][       Thread-251163][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 10:13:37,436 [ INFO][       Thread-251163][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 10:13:37,436 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 10:13:37,436 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 10:13:38,356 [DEBUG][Thread-251165 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:13:38,454 [DEBUG][       Thread-251163][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 10:13:38,454 [DEBUG][       Thread-251163][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 10:13:38,503 [DEBUG][       Thread-251163][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 10:13:38,503 [DEBUG][       Thread-251163][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 10:13:38,512 [DEBUG][       Thread-251163][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 10:13:38,520 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 10:13:38,520 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 10:13:38,528 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 10:13:38,536 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 10:13:38,536 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 10:13:38,536 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 10:13:38,543 [DEBUG][       Thread-251163][   transport.py][1871] : EOF in transport thread
2025-06-13 10:13:47,375 [DEBUG][Thread-251166 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:13:48,544 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 10:13:48,544 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 10:13:48,544 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 10:13:48,545 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 10:13:49,020 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 10, 13, 16), 10.16, 48.88, 0.0, 17.75, 8.92, 0, 0, 0, 2, 0, 0),)
2025-06-13 10:13:49,020 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 10:13:16
2025-06-13 10:13:49,106 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 10:13:49,112 [DEBUG][       Thread-251167][   transport.py][1871] : starting thread (client mode): 0x867b4940
2025-06-13 10:13:49,112 [DEBUG][       Thread-251167][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 10:13:49,123 [DEBUG][       Thread-251167][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 10:13:49,123 [ INFO][       Thread-251167][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 10:13:49,125 [DEBUG][       Thread-251167][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 10:13:49,125 [DEBUG][       Thread-251167][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 10:13:49,125 [DEBUG][       Thread-251167][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 10:13:49,125 [DEBUG][       Thread-251167][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:13:49,125 [DEBUG][       Thread-251167][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:13:49,125 [DEBUG][       Thread-251167][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:13:49,125 [DEBUG][       Thread-251167][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:13:49,125 [DEBUG][       Thread-251167][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 10:13:49,125 [DEBUG][       Thread-251167][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 10:13:49,125 [DEBUG][       Thread-251167][   transport.py][1871] : client lang: <none>
2025-06-13 10:13:49,125 [DEBUG][       Thread-251167][   transport.py][1871] : server lang: <none>
2025-06-13 10:13:49,125 [DEBUG][       Thread-251167][   transport.py][1871] : kex follows: False
2025-06-13 10:13:49,125 [DEBUG][       Thread-251167][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 10:13:49,125 [DEBUG][       Thread-251167][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 10:13:49,125 [DEBUG][       Thread-251167][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 10:13:49,125 [DEBUG][       Thread-251167][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 10:13:49,125 [DEBUG][       Thread-251167][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 10:13:49,125 [DEBUG][       Thread-251167][   transport.py][1871] : Compression: none
2025-06-13 10:13:49,125 [DEBUG][       Thread-251167][   transport.py][1871] : === End of kex handshake ===
2025-06-13 10:13:49,142 [DEBUG][       Thread-251167][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 10:13:49,142 [DEBUG][       Thread-251167][   transport.py][1871] : Switch to new keys ...
2025-06-13 10:13:49,142 [DEBUG][       Thread-251167][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 10:13:49,142 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 10:13:49,142 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 10:13:49,143 [DEBUG][       Thread-251167][   transport.py][1871] : userauth is OK
2025-06-13 10:13:49,167 [ INFO][       Thread-251167][   transport.py][1871] : Authentication (password) successful!
2025-06-13 10:13:49,167 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 10:13:49,819 [DEBUG][       Thread-251167][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 10:13:49,820 [DEBUG][       Thread-251167][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 10:13:49,860 [DEBUG][       Thread-251167][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 10:13:49,860 [DEBUG][       Thread-251167][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 10:13:49,863 [DEBUG][       Thread-251167][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 10:13:49,876 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 10:13:49,876 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 10:13:49,877 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 10:13:49,878 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 10:13:49,880 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 10:13:49,881 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 10:13:49,881 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 10:13:49,881 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 10:13:49,881 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.342649 -999.00   +8.80  14.77     54   +0.10 1 1 1 1 1   887    0 9.17 27.39 ----- 17.4 14.8 44.6 21.7 13.3 -28.0 11.9 -29.1 10.8 -27.9 12.1 -26.7
2025-06-13 10:13:49,881 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 10:13:49,881 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 10:13:49,881 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.342649
2025-06-13 10:13:49,881 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 10:13:49,881 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 10:13:49,881 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 10:13:49,881 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 10:13:49,881 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 10:13:49,881 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T10:13:16', tmtdew=10.16, humidity=48.88, cloud=0.0, wind=17.75, temperature=8.92, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T08:13:24.874', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 10:13:49,882 [DEBUG][       Thread-251167][   transport.py][1871] : EOF in transport thread
2025-06-13 10:13:49,956 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 10:13:49,967 [DEBUG][       Thread-251170][   transport.py][1871] : starting thread (client mode): 0x863efbe0
2025-06-13 10:13:49,967 [DEBUG][       Thread-251170][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 10:13:49,983 [DEBUG][       Thread-251170][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 10:13:49,983 [ INFO][       Thread-251170][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 10:13:49,990 [DEBUG][       Thread-251170][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 10:13:49,990 [DEBUG][       Thread-251170][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 10:13:49,990 [DEBUG][       Thread-251170][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 10:13:49,990 [DEBUG][       Thread-251170][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:13:49,990 [DEBUG][       Thread-251170][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:13:49,990 [DEBUG][       Thread-251170][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:13:49,990 [DEBUG][       Thread-251170][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:13:49,990 [DEBUG][       Thread-251170][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 10:13:49,990 [DEBUG][       Thread-251170][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 10:13:49,990 [DEBUG][       Thread-251170][   transport.py][1871] : client lang: <none>
2025-06-13 10:13:49,990 [DEBUG][       Thread-251170][   transport.py][1871] : server lang: <none>
2025-06-13 10:13:49,990 [DEBUG][       Thread-251170][   transport.py][1871] : kex follows: False
2025-06-13 10:13:49,990 [DEBUG][       Thread-251170][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 10:13:49,990 [DEBUG][       Thread-251170][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 10:13:49,990 [DEBUG][       Thread-251170][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 10:13:49,991 [DEBUG][       Thread-251170][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 10:13:49,991 [DEBUG][       Thread-251170][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 10:13:49,991 [DEBUG][       Thread-251170][   transport.py][1871] : Compression: none
2025-06-13 10:13:49,991 [DEBUG][       Thread-251170][   transport.py][1871] : === End of kex handshake ===
2025-06-13 10:13:50,050 [DEBUG][       Thread-251170][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 10:13:50,050 [DEBUG][       Thread-251170][   transport.py][1871] : Switch to new keys ...
2025-06-13 10:13:50,050 [DEBUG][       Thread-251170][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 10:13:50,050 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 10:13:50,050 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 10:13:50,110 [DEBUG][       Thread-251170][   transport.py][1871] : userauth is OK
2025-06-13 10:13:50,110 [DEBUG][       Thread-251170][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 10:13:50,110 [DEBUG][       Thread-251170][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 10:13:50,110 [DEBUG][       Thread-251170][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 10:13:50,110 [DEBUG][       Thread-251170][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 10:13:50,125 [ INFO][       Thread-251170][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 10:13:50,125 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 10:13:50,125 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 10:13:51,172 [DEBUG][       Thread-251170][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 10:13:51,172 [DEBUG][       Thread-251170][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 10:13:51,219 [DEBUG][       Thread-251170][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 10:13:51,220 [DEBUG][       Thread-251170][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 10:13:51,229 [DEBUG][       Thread-251170][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 10:13:51,237 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 10:13:51,238 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 10:13:51,247 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 10:13:51,256 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 10:13:51,257 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 10:13:51,257 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 10:13:51,265 [DEBUG][       Thread-251170][   transport.py][1871] : EOF in transport thread
2025-06-13 10:13:56,395 [DEBUG][Thread-251172 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:13:57,976 [DEBUG][Thread-251173 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:13:59,041 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:13:59,042 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:14:01,267 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 10:14:01,268 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 10:14:01,268 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 10:14:01,270 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 10:14:01,724 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 10, 13, 48), 10.2, 48.74, 0.0, 18.07, 8.91, 0, 0, 0, 2, 0, 0),)
2025-06-13 10:14:01,724 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 10:13:48
2025-06-13 10:14:01,811 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 10:14:01,815 [DEBUG][       Thread-251174][   transport.py][1871] : starting thread (client mode): 0x84205fc0
2025-06-13 10:14:01,815 [DEBUG][       Thread-251174][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 10:14:01,835 [DEBUG][       Thread-251174][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 10:14:01,835 [ INFO][       Thread-251174][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 10:14:01,839 [DEBUG][       Thread-251174][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 10:14:01,839 [DEBUG][       Thread-251174][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 10:14:01,839 [DEBUG][       Thread-251174][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 10:14:01,839 [DEBUG][       Thread-251174][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:14:01,839 [DEBUG][       Thread-251174][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:14:01,839 [DEBUG][       Thread-251174][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:14:01,839 [DEBUG][       Thread-251174][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:14:01,839 [DEBUG][       Thread-251174][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 10:14:01,839 [DEBUG][       Thread-251174][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 10:14:01,839 [DEBUG][       Thread-251174][   transport.py][1871] : client lang: <none>
2025-06-13 10:14:01,839 [DEBUG][       Thread-251174][   transport.py][1871] : server lang: <none>
2025-06-13 10:14:01,839 [DEBUG][       Thread-251174][   transport.py][1871] : kex follows: False
2025-06-13 10:14:01,839 [DEBUG][       Thread-251174][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 10:14:01,839 [DEBUG][       Thread-251174][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 10:14:01,839 [DEBUG][       Thread-251174][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 10:14:01,839 [DEBUG][       Thread-251174][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 10:14:01,839 [DEBUG][       Thread-251174][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 10:14:01,839 [DEBUG][       Thread-251174][   transport.py][1871] : Compression: none
2025-06-13 10:14:01,839 [DEBUG][       Thread-251174][   transport.py][1871] : === End of kex handshake ===
2025-06-13 10:14:01,855 [DEBUG][       Thread-251174][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 10:14:01,855 [DEBUG][       Thread-251174][   transport.py][1871] : Switch to new keys ...
2025-06-13 10:14:01,855 [DEBUG][       Thread-251174][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 10:14:01,855 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 10:14:01,855 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 10:14:01,856 [DEBUG][       Thread-251174][   transport.py][1871] : userauth is OK
2025-06-13 10:14:01,869 [ INFO][       Thread-251174][   transport.py][1871] : Authentication (password) successful!
2025-06-13 10:14:01,869 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 10:14:02,523 [DEBUG][       Thread-251174][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 10:14:02,523 [DEBUG][       Thread-251174][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 10:14:02,565 [DEBUG][       Thread-251174][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 10:14:02,565 [DEBUG][       Thread-251174][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 10:14:02,568 [DEBUG][       Thread-251174][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 10:14:02,575 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 10:14:02,575 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 10:14:02,576 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 10:14:02,578 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 10:14:02,582 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 10:14:02,583 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 10:14:02,583 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 10:14:02,584 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 10:14:02,584 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.342649 -999.00   +8.80  14.77     54   +0.10 1 1 1 1 1   887    0 9.17 27.39 ----- 17.4 14.8 44.6 21.7 13.3 -28.0 11.9 -29.1 10.8 -27.9 12.1 -26.7
2025-06-13 10:14:02,584 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 10:14:02,584 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 10:14:02,584 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.342649
2025-06-13 10:14:02,585 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 10:14:02,585 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 10:14:02,585 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 10:14:02,585 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 10:14:02,585 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 10:14:02,585 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T10:13:48', tmtdew=10.2, humidity=48.74, cloud=0.0, wind=18.07, temperature=8.91, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T08:13:24.874', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 10:14:02,586 [DEBUG][       Thread-251174][   transport.py][1871] : EOF in transport thread
2025-06-13 10:14:02,670 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 10:14:02,679 [DEBUG][       Thread-251177][   transport.py][1871] : starting thread (client mode): 0x867b62f0
2025-06-13 10:14:02,679 [DEBUG][       Thread-251177][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 10:14:02,694 [DEBUG][       Thread-251177][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 10:14:02,694 [ INFO][       Thread-251177][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 10:14:02,702 [DEBUG][       Thread-251177][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 10:14:02,702 [DEBUG][       Thread-251177][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 10:14:02,702 [DEBUG][       Thread-251177][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 10:14:02,702 [DEBUG][       Thread-251177][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:14:02,702 [DEBUG][       Thread-251177][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:14:02,702 [DEBUG][       Thread-251177][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:14:02,702 [DEBUG][       Thread-251177][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:14:02,702 [DEBUG][       Thread-251177][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 10:14:02,702 [DEBUG][       Thread-251177][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 10:14:02,702 [DEBUG][       Thread-251177][   transport.py][1871] : client lang: <none>
2025-06-13 10:14:02,703 [DEBUG][       Thread-251177][   transport.py][1871] : server lang: <none>
2025-06-13 10:14:02,703 [DEBUG][       Thread-251177][   transport.py][1871] : kex follows: False
2025-06-13 10:14:02,703 [DEBUG][       Thread-251177][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 10:14:02,703 [DEBUG][       Thread-251177][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 10:14:02,703 [DEBUG][       Thread-251177][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 10:14:02,703 [DEBUG][       Thread-251177][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 10:14:02,703 [DEBUG][       Thread-251177][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 10:14:02,703 [DEBUG][       Thread-251177][   transport.py][1871] : Compression: none
2025-06-13 10:14:02,703 [DEBUG][       Thread-251177][   transport.py][1871] : === End of kex handshake ===
2025-06-13 10:14:02,766 [DEBUG][       Thread-251177][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 10:14:02,766 [DEBUG][       Thread-251177][   transport.py][1871] : Switch to new keys ...
2025-06-13 10:14:02,776 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 10:14:02,776 [DEBUG][       Thread-251177][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 10:14:02,777 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 10:14:02,822 [DEBUG][       Thread-251177][   transport.py][1871] : userauth is OK
2025-06-13 10:14:02,822 [DEBUG][       Thread-251177][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 10:14:02,822 [DEBUG][       Thread-251177][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 10:14:02,822 [DEBUG][       Thread-251177][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 10:14:02,822 [DEBUG][       Thread-251177][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 10:14:02,845 [ INFO][       Thread-251177][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 10:14:02,845 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 10:14:02,845 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 10:14:03,870 [DEBUG][       Thread-251177][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 10:14:03,870 [DEBUG][       Thread-251177][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 10:14:03,919 [DEBUG][       Thread-251177][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 10:14:03,920 [DEBUG][       Thread-251177][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 10:14:03,929 [DEBUG][       Thread-251177][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 10:14:03,937 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 10:14:03,937 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 10:14:03,946 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 10:14:03,954 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 10:14:03,955 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 10:14:03,955 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 10:14:03,963 [DEBUG][       Thread-251177][   transport.py][1871] : EOF in transport thread
2025-06-13 10:14:05,413 [DEBUG][Thread-251179 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:14:05,601 [DEBUG][Thread-251180 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:14:13,965 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 10:14:13,965 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 10:14:13,966 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 10:14:13,968 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 10:14:14,427 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 10, 13, 48), 10.2, 48.74, 0.0, 18.07, 8.91, 0, 0, 0, 2, 0, 0),)
2025-06-13 10:14:14,427 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 10:13:48
2025-06-13 10:14:14,443 [DEBUG][Thread-251181 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:14:14,508 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 10:14:14,513 [DEBUG][       Thread-251182][   transport.py][1871] : starting thread (client mode): 0x84204e20
2025-06-13 10:14:14,513 [DEBUG][       Thread-251182][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 10:14:14,533 [DEBUG][       Thread-251182][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 10:14:14,533 [ INFO][       Thread-251182][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 10:14:14,536 [DEBUG][       Thread-251182][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 10:14:14,536 [DEBUG][       Thread-251182][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 10:14:14,536 [DEBUG][       Thread-251182][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 10:14:14,536 [DEBUG][       Thread-251182][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:14:14,536 [DEBUG][       Thread-251182][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:14:14,536 [DEBUG][       Thread-251182][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:14:14,536 [DEBUG][       Thread-251182][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:14:14,536 [DEBUG][       Thread-251182][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 10:14:14,536 [DEBUG][       Thread-251182][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 10:14:14,536 [DEBUG][       Thread-251182][   transport.py][1871] : client lang: <none>
2025-06-13 10:14:14,536 [DEBUG][       Thread-251182][   transport.py][1871] : server lang: <none>
2025-06-13 10:14:14,536 [DEBUG][       Thread-251182][   transport.py][1871] : kex follows: False
2025-06-13 10:14:14,536 [DEBUG][       Thread-251182][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 10:14:14,537 [DEBUG][       Thread-251182][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 10:14:14,537 [DEBUG][       Thread-251182][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 10:14:14,537 [DEBUG][       Thread-251182][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 10:14:14,537 [DEBUG][       Thread-251182][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 10:14:14,537 [DEBUG][       Thread-251182][   transport.py][1871] : Compression: none
2025-06-13 10:14:14,537 [DEBUG][       Thread-251182][   transport.py][1871] : === End of kex handshake ===
2025-06-13 10:14:14,547 [DEBUG][       Thread-251182][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 10:14:14,547 [DEBUG][       Thread-251182][   transport.py][1871] : Switch to new keys ...
2025-06-13 10:14:14,547 [DEBUG][       Thread-251182][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 10:14:14,547 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 10:14:14,547 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 10:14:14,548 [DEBUG][       Thread-251182][   transport.py][1871] : userauth is OK
2025-06-13 10:14:14,572 [ INFO][       Thread-251182][   transport.py][1871] : Authentication (password) successful!
2025-06-13 10:14:14,572 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 10:14:15,222 [DEBUG][       Thread-251182][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 10:14:15,222 [DEBUG][       Thread-251182][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 10:14:15,264 [DEBUG][       Thread-251182][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 10:14:15,264 [DEBUG][       Thread-251182][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 10:14:15,267 [DEBUG][       Thread-251182][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 10:14:15,280 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 10:14:15,280 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 10:14:15,281 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 10:14:15,282 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 10:14:15,285 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 10:14:15,286 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 10:14:15,286 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 10:14:15,286 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 10:14:15,286 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.342996 -999.00   +8.80  18.78     54   +0.10 1 1 1 1 1   887    0 9.22 28.12 ----- 22.0 18.8 51.6 22.7 13.4 -28.3 12.1 -29.2 10.8 -28.4 12.1 -26.4
2025-06-13 10:14:15,286 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 10:14:15,286 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 10:14:15,286 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.342996
2025-06-13 10:14:15,286 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 10:14:15,287 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 10:14:15,287 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 10:14:15,287 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 10:14:15,287 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 10:14:15,287 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T10:13:48', tmtdew=10.2, humidity=48.74, cloud=0.0, wind=18.07, temperature=8.91, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T08:13:54.854', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 10:14:15,287 [DEBUG][       Thread-251182][   transport.py][1871] : EOF in transport thread
2025-06-13 10:14:15,361 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 10:14:15,373 [DEBUG][       Thread-251185][   transport.py][1871] : starting thread (client mode): 0x863c82b0
2025-06-13 10:14:15,373 [DEBUG][       Thread-251185][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 10:14:15,388 [DEBUG][       Thread-251185][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 10:14:15,388 [ INFO][       Thread-251185][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 10:14:15,395 [DEBUG][       Thread-251185][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 10:14:15,395 [DEBUG][       Thread-251185][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 10:14:15,395 [DEBUG][       Thread-251185][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 10:14:15,395 [DEBUG][       Thread-251185][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:14:15,395 [DEBUG][       Thread-251185][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:14:15,395 [DEBUG][       Thread-251185][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:14:15,395 [DEBUG][       Thread-251185][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:14:15,395 [DEBUG][       Thread-251185][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 10:14:15,395 [DEBUG][       Thread-251185][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 10:14:15,395 [DEBUG][       Thread-251185][   transport.py][1871] : client lang: <none>
2025-06-13 10:14:15,395 [DEBUG][       Thread-251185][   transport.py][1871] : server lang: <none>
2025-06-13 10:14:15,395 [DEBUG][       Thread-251185][   transport.py][1871] : kex follows: False
2025-06-13 10:14:15,395 [DEBUG][       Thread-251185][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 10:14:15,395 [DEBUG][       Thread-251185][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 10:14:15,395 [DEBUG][       Thread-251185][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 10:14:15,395 [DEBUG][       Thread-251185][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 10:14:15,395 [DEBUG][       Thread-251185][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 10:14:15,395 [DEBUG][       Thread-251185][   transport.py][1871] : Compression: none
2025-06-13 10:14:15,395 [DEBUG][       Thread-251185][   transport.py][1871] : === End of kex handshake ===
2025-06-13 10:14:15,452 [DEBUG][       Thread-251185][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 10:14:15,452 [DEBUG][       Thread-251185][   transport.py][1871] : Switch to new keys ...
2025-06-13 10:14:15,452 [DEBUG][       Thread-251185][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 10:14:15,453 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 10:14:15,453 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 10:14:15,510 [DEBUG][       Thread-251185][   transport.py][1871] : userauth is OK
2025-06-13 10:14:15,510 [DEBUG][       Thread-251185][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 10:14:15,510 [DEBUG][       Thread-251185][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 10:14:15,511 [DEBUG][       Thread-251185][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 10:14:15,511 [DEBUG][       Thread-251185][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 10:14:15,525 [ INFO][       Thread-251185][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 10:14:15,525 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 10:14:15,525 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 10:14:16,547 [DEBUG][       Thread-251185][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 10:14:16,547 [DEBUG][       Thread-251185][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 10:14:16,597 [DEBUG][       Thread-251185][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 10:14:16,597 [DEBUG][       Thread-251185][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 10:14:16,616 [DEBUG][       Thread-251185][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 10:14:16,624 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 10:14:16,624 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 10:14:16,633 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 10:14:16,642 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 10:14:16,642 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 10:14:16,642 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 10:14:16,650 [DEBUG][       Thread-251185][   transport.py][1871] : EOF in transport thread
2025-06-13 10:14:23,458 [DEBUG][Thread-251187 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:14:24,550 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:14:24,552 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:14:26,652 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 10:14:26,652 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 10:14:26,652 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 10:14:26,655 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 10:14:27,104 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 10, 14, 19), 9.98, 49.49, 0.0, 14.89, 8.93, 0, 0, 0, 2, 0, 0),)
2025-06-13 10:14:27,104 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 10:14:19
2025-06-13 10:14:27,184 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 10:14:27,188 [DEBUG][       Thread-251188][   transport.py][1871] : starting thread (client mode): 0x84207670
2025-06-13 10:14:27,188 [DEBUG][       Thread-251188][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 10:14:27,208 [DEBUG][       Thread-251188][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 10:14:27,208 [ INFO][       Thread-251188][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 10:14:27,210 [DEBUG][       Thread-251188][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 10:14:27,210 [DEBUG][       Thread-251188][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 10:14:27,210 [DEBUG][       Thread-251188][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 10:14:27,210 [DEBUG][       Thread-251188][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:14:27,210 [DEBUG][       Thread-251188][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:14:27,210 [DEBUG][       Thread-251188][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:14:27,210 [DEBUG][       Thread-251188][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:14:27,210 [DEBUG][       Thread-251188][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 10:14:27,210 [DEBUG][       Thread-251188][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 10:14:27,210 [DEBUG][       Thread-251188][   transport.py][1871] : client lang: <none>
2025-06-13 10:14:27,210 [DEBUG][       Thread-251188][   transport.py][1871] : server lang: <none>
2025-06-13 10:14:27,210 [DEBUG][       Thread-251188][   transport.py][1871] : kex follows: False
2025-06-13 10:14:27,210 [DEBUG][       Thread-251188][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 10:14:27,210 [DEBUG][       Thread-251188][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 10:14:27,210 [DEBUG][       Thread-251188][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 10:14:27,210 [DEBUG][       Thread-251188][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 10:14:27,210 [DEBUG][       Thread-251188][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 10:14:27,210 [DEBUG][       Thread-251188][   transport.py][1871] : Compression: none
2025-06-13 10:14:27,210 [DEBUG][       Thread-251188][   transport.py][1871] : === End of kex handshake ===
2025-06-13 10:14:27,223 [DEBUG][       Thread-251188][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 10:14:27,223 [DEBUG][       Thread-251188][   transport.py][1871] : Switch to new keys ...
2025-06-13 10:14:27,224 [DEBUG][       Thread-251188][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 10:14:27,224 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 10:14:27,224 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 10:14:27,225 [DEBUG][       Thread-251188][   transport.py][1871] : userauth is OK
2025-06-13 10:14:27,250 [ INFO][       Thread-251188][   transport.py][1871] : Authentication (password) successful!
2025-06-13 10:14:27,250 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 10:14:27,799 [DEBUG][       Thread-251188][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 10:14:27,799 [DEBUG][       Thread-251188][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 10:14:27,841 [DEBUG][       Thread-251188][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 10:14:27,841 [DEBUG][       Thread-251188][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 10:14:27,843 [DEBUG][       Thread-251188][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 10:14:27,854 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 10:14:27,855 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 10:14:27,856 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 10:14:27,857 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 10:14:27,862 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 10:14:27,863 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 10:14:27,864 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 10:14:27,864 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 10:14:27,864 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.342996 -999.00   +8.80  18.78     54   +0.10 1 1 1 1 1   887    0 9.22 28.12 ----- 22.0 18.8 51.6 22.7 13.4 -28.3 12.1 -29.2 10.8 -28.4 12.1 -26.4
2025-06-13 10:14:27,864 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 10:14:27,864 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 10:14:27,864 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.342996
2025-06-13 10:14:27,865 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 10:14:27,865 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 10:14:27,865 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 10:14:27,865 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 10:14:27,865 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 10:14:27,866 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T10:14:19', tmtdew=9.98, humidity=49.49, cloud=0.0, wind=14.89, temperature=8.93, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T08:13:54.854', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 10:14:27,867 [DEBUG][       Thread-251188][   transport.py][1871] : EOF in transport thread
2025-06-13 10:14:27,947 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 10:14:27,961 [DEBUG][       Thread-251191][   transport.py][1871] : starting thread (client mode): 0x867b56f0
2025-06-13 10:14:27,961 [DEBUG][       Thread-251191][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 10:14:27,979 [DEBUG][       Thread-251191][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 10:14:27,979 [ INFO][       Thread-251191][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 10:14:27,987 [DEBUG][       Thread-251191][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 10:14:27,987 [DEBUG][       Thread-251191][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 10:14:27,987 [DEBUG][       Thread-251191][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 10:14:27,987 [DEBUG][       Thread-251191][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:14:27,987 [DEBUG][       Thread-251191][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:14:27,987 [DEBUG][       Thread-251191][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:14:27,987 [DEBUG][       Thread-251191][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:14:27,987 [DEBUG][       Thread-251191][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 10:14:27,987 [DEBUG][       Thread-251191][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 10:14:27,987 [DEBUG][       Thread-251191][   transport.py][1871] : client lang: <none>
2025-06-13 10:14:27,987 [DEBUG][       Thread-251191][   transport.py][1871] : server lang: <none>
2025-06-13 10:14:27,987 [DEBUG][       Thread-251191][   transport.py][1871] : kex follows: False
2025-06-13 10:14:27,987 [DEBUG][       Thread-251191][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 10:14:27,987 [DEBUG][       Thread-251191][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 10:14:27,988 [DEBUG][       Thread-251191][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 10:14:27,988 [DEBUG][       Thread-251191][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 10:14:27,988 [DEBUG][       Thread-251191][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 10:14:27,988 [DEBUG][       Thread-251191][   transport.py][1871] : Compression: none
2025-06-13 10:14:27,988 [DEBUG][       Thread-251191][   transport.py][1871] : === End of kex handshake ===
2025-06-13 10:14:28,045 [DEBUG][       Thread-251191][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 10:14:28,046 [DEBUG][       Thread-251191][   transport.py][1871] : Switch to new keys ...
2025-06-13 10:14:28,046 [DEBUG][       Thread-251191][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 10:14:28,047 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 10:14:28,047 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 10:14:28,114 [DEBUG][       Thread-251191][   transport.py][1871] : userauth is OK
2025-06-13 10:14:28,114 [DEBUG][       Thread-251191][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 10:14:28,114 [DEBUG][       Thread-251191][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 10:14:28,114 [DEBUG][       Thread-251191][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 10:14:28,114 [DEBUG][       Thread-251191][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 10:14:28,134 [ INFO][       Thread-251191][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 10:14:28,134 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 10:14:28,135 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 10:14:29,188 [DEBUG][       Thread-251191][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 10:14:29,188 [DEBUG][       Thread-251191][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 10:14:29,239 [DEBUG][       Thread-251191][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 10:14:29,240 [DEBUG][       Thread-251191][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 10:14:29,249 [DEBUG][       Thread-251191][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 10:14:29,257 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 10:14:29,258 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 10:14:29,266 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 10:14:29,276 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 10:14:29,276 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 10:14:29,276 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 10:14:29,284 [DEBUG][       Thread-251191][   transport.py][1871] : EOF in transport thread
2025-06-13 10:14:32,477 [DEBUG][Thread-251193 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:14:39,283 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 10:14:39,283 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 10:14:39,283 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 10:14:39,286 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 10:14:39,740 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 10, 14, 19), 9.98, 49.49, 0.0, 14.89, 8.93, 0, 0, 0, 2, 0, 0),)
2025-06-13 10:14:39,740 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 10:14:19
2025-06-13 10:14:39,821 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 10:14:39,827 [DEBUG][       Thread-251194][   transport.py][1871] : starting thread (client mode): 0x867fce20
2025-06-13 10:14:39,827 [DEBUG][       Thread-251194][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 10:14:39,846 [DEBUG][       Thread-251194][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 10:14:39,846 [ INFO][       Thread-251194][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 10:14:39,848 [DEBUG][       Thread-251194][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 10:14:39,848 [DEBUG][       Thread-251194][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 10:14:39,848 [DEBUG][       Thread-251194][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 10:14:39,848 [DEBUG][       Thread-251194][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:14:39,848 [DEBUG][       Thread-251194][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:14:39,848 [DEBUG][       Thread-251194][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:14:39,848 [DEBUG][       Thread-251194][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:14:39,848 [DEBUG][       Thread-251194][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 10:14:39,848 [DEBUG][       Thread-251194][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 10:14:39,848 [DEBUG][       Thread-251194][   transport.py][1871] : client lang: <none>
2025-06-13 10:14:39,848 [DEBUG][       Thread-251194][   transport.py][1871] : server lang: <none>
2025-06-13 10:14:39,848 [DEBUG][       Thread-251194][   transport.py][1871] : kex follows: False
2025-06-13 10:14:39,848 [DEBUG][       Thread-251194][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 10:14:39,848 [DEBUG][       Thread-251194][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 10:14:39,848 [DEBUG][       Thread-251194][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 10:14:39,849 [DEBUG][       Thread-251194][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 10:14:39,849 [DEBUG][       Thread-251194][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 10:14:39,849 [DEBUG][       Thread-251194][   transport.py][1871] : Compression: none
2025-06-13 10:14:39,849 [DEBUG][       Thread-251194][   transport.py][1871] : === End of kex handshake ===
2025-06-13 10:14:39,861 [DEBUG][       Thread-251194][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 10:14:39,862 [DEBUG][       Thread-251194][   transport.py][1871] : Switch to new keys ...
2025-06-13 10:14:39,862 [DEBUG][       Thread-251194][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 10:14:39,863 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 10:14:39,863 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 10:14:39,864 [DEBUG][       Thread-251194][   transport.py][1871] : userauth is OK
2025-06-13 10:14:39,888 [ INFO][       Thread-251194][   transport.py][1871] : Authentication (password) successful!
2025-06-13 10:14:39,889 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 10:14:40,527 [DEBUG][       Thread-251194][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 10:14:40,528 [DEBUG][       Thread-251194][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 10:14:40,569 [DEBUG][       Thread-251194][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 10:14:40,569 [DEBUG][       Thread-251194][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 10:14:40,572 [DEBUG][       Thread-251194][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 10:14:40,583 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 10:14:40,584 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 10:14:40,586 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 10:14:40,587 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 10:14:40,592 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 10:14:40,594 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 10:14:40,594 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 10:14:40,595 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 10:14:40,595 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.342996 -999.00   +8.80  18.78     54   +0.10 1 1 1 1 1   887    0 9.22 28.12 ----- 22.0 18.8 51.6 22.7 13.4 -28.3 12.1 -29.2 10.8 -28.4 12.1 -26.4
2025-06-13 10:14:40,595 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 10:14:40,595 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 10:14:40,595 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.342996
2025-06-13 10:14:40,596 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 10:14:40,596 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 10:14:40,596 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 10:14:40,596 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 10:14:40,596 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 10:14:40,596 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T10:14:19', tmtdew=9.98, humidity=49.49, cloud=0.0, wind=14.89, temperature=8.93, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T08:13:54.854', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 10:14:40,597 [DEBUG][       Thread-251194][   transport.py][1871] : EOF in transport thread
2025-06-13 10:14:40,679 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 10:14:40,695 [DEBUG][       Thread-251197][   transport.py][1871] : starting thread (client mode): 0x84204850
2025-06-13 10:14:40,695 [DEBUG][       Thread-251197][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 10:14:40,714 [DEBUG][       Thread-251197][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 10:14:40,714 [ INFO][       Thread-251197][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 10:14:40,722 [DEBUG][       Thread-251197][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 10:14:40,723 [DEBUG][       Thread-251197][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 10:14:40,723 [DEBUG][       Thread-251197][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 10:14:40,723 [DEBUG][       Thread-251197][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:14:40,723 [DEBUG][       Thread-251197][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:14:40,723 [DEBUG][       Thread-251197][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:14:40,723 [DEBUG][       Thread-251197][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:14:40,723 [DEBUG][       Thread-251197][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 10:14:40,723 [DEBUG][       Thread-251197][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 10:14:40,723 [DEBUG][       Thread-251197][   transport.py][1871] : client lang: <none>
2025-06-13 10:14:40,723 [DEBUG][       Thread-251197][   transport.py][1871] : server lang: <none>
2025-06-13 10:14:40,723 [DEBUG][       Thread-251197][   transport.py][1871] : kex follows: False
2025-06-13 10:14:40,723 [DEBUG][       Thread-251197][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 10:14:40,723 [DEBUG][       Thread-251197][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 10:14:40,723 [DEBUG][       Thread-251197][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 10:14:40,723 [DEBUG][       Thread-251197][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 10:14:40,723 [DEBUG][       Thread-251197][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 10:14:40,724 [DEBUG][       Thread-251197][   transport.py][1871] : Compression: none
2025-06-13 10:14:40,724 [DEBUG][       Thread-251197][   transport.py][1871] : === End of kex handshake ===
2025-06-13 10:14:40,788 [DEBUG][       Thread-251197][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 10:14:40,788 [DEBUG][       Thread-251197][   transport.py][1871] : Switch to new keys ...
2025-06-13 10:14:40,789 [DEBUG][       Thread-251197][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 10:14:40,789 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 10:14:40,789 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 10:14:40,846 [DEBUG][       Thread-251197][   transport.py][1871] : userauth is OK
2025-06-13 10:14:40,846 [DEBUG][       Thread-251197][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 10:14:40,846 [DEBUG][       Thread-251197][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 10:14:40,847 [DEBUG][       Thread-251197][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 10:14:40,847 [DEBUG][       Thread-251197][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 10:14:40,867 [ INFO][       Thread-251197][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 10:14:40,868 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 10:14:40,868 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 10:14:41,512 [DEBUG][Thread-251199 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:14:41,936 [DEBUG][       Thread-251197][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 10:14:41,936 [DEBUG][       Thread-251197][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 10:14:41,983 [DEBUG][       Thread-251197][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 10:14:41,984 [DEBUG][       Thread-251197][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 10:14:41,992 [DEBUG][       Thread-251197][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 10:14:42,001 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 10:14:42,002 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 10:14:42,010 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 10:14:42,019 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 10:14:42,019 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 10:14:42,020 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 10:14:42,028 [DEBUG][       Thread-251197][   transport.py][1871] : EOF in transport thread
2025-06-13 10:14:50,530 [DEBUG][Thread-251200 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:14:52,028 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 10:14:52,028 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 10:14:52,028 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 10:14:52,029 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 10:14:52,511 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 10, 14, 19), 9.98, 49.49, 0.0, 14.89, 8.93, 0, 0, 0, 2, 0, 0),)
2025-06-13 10:14:52,511 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 10:14:19
2025-06-13 10:14:52,600 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 10:14:52,606 [DEBUG][       Thread-251201][   transport.py][1871] : starting thread (client mode): 0x8636b700
2025-06-13 10:14:52,606 [DEBUG][       Thread-251201][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 10:14:52,627 [DEBUG][       Thread-251201][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 10:14:52,627 [ INFO][       Thread-251201][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 10:14:52,629 [DEBUG][       Thread-251201][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 10:14:52,629 [DEBUG][       Thread-251201][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 10:14:52,629 [DEBUG][       Thread-251201][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 10:14:52,629 [DEBUG][       Thread-251201][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:14:52,629 [DEBUG][       Thread-251201][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:14:52,629 [DEBUG][       Thread-251201][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:14:52,629 [DEBUG][       Thread-251201][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:14:52,629 [DEBUG][       Thread-251201][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 10:14:52,629 [DEBUG][       Thread-251201][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 10:14:52,629 [DEBUG][       Thread-251201][   transport.py][1871] : client lang: <none>
2025-06-13 10:14:52,629 [DEBUG][       Thread-251201][   transport.py][1871] : server lang: <none>
2025-06-13 10:14:52,629 [DEBUG][       Thread-251201][   transport.py][1871] : kex follows: False
2025-06-13 10:14:52,629 [DEBUG][       Thread-251201][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 10:14:52,629 [DEBUG][       Thread-251201][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 10:14:52,629 [DEBUG][       Thread-251201][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 10:14:52,629 [DEBUG][       Thread-251201][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 10:14:52,629 [DEBUG][       Thread-251201][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 10:14:52,629 [DEBUG][       Thread-251201][   transport.py][1871] : Compression: none
2025-06-13 10:14:52,629 [DEBUG][       Thread-251201][   transport.py][1871] : === End of kex handshake ===
2025-06-13 10:14:52,646 [DEBUG][       Thread-251201][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 10:14:52,646 [DEBUG][       Thread-251201][   transport.py][1871] : Switch to new keys ...
2025-06-13 10:14:52,646 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 10:14:52,646 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 10:14:52,646 [DEBUG][       Thread-251201][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 10:14:52,647 [DEBUG][       Thread-251201][   transport.py][1871] : userauth is OK
2025-06-13 10:14:52,671 [ INFO][       Thread-251201][   transport.py][1871] : Authentication (password) successful!
2025-06-13 10:14:52,671 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 10:14:53,329 [DEBUG][       Thread-251201][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 10:14:53,329 [DEBUG][       Thread-251201][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 10:14:53,372 [DEBUG][       Thread-251201][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 10:14:53,373 [DEBUG][       Thread-251201][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 10:14:53,375 [DEBUG][       Thread-251201][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 10:14:53,387 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 10:14:53,387 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 10:14:53,388 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 10:14:53,390 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 10:14:53,393 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 10:14:53,393 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 10:14:53,394 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 10:14:53,394 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 10:14:53,394 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.343343 -999.00   +8.80  18.51     54   +0.00 1 1 1 1 1   887    0 9.31 28.87 ----- 15.8 18.5 28.8 24.3 13.3 -28.5 12.0 -29.7 10.9 -27.9 12.1 -26.9
2025-06-13 10:14:53,394 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 10:14:53,394 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 10:14:53,394 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.343343
2025-06-13 10:14:53,394 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 10:14:53,394 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 10:14:53,394 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 10:14:53,394 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 10:14:53,394 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 10:14:53,394 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T10:14:19', tmtdew=9.98, humidity=49.49, cloud=0.0, wind=14.89, temperature=8.93, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T08:14:24.835', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 10:14:53,395 [DEBUG][       Thread-251201][   transport.py][1871] : EOF in transport thread
2025-06-13 10:14:53,475 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 10:14:53,487 [DEBUG][       Thread-251204][   transport.py][1871] : starting thread (client mode): 0x8636a2f0
2025-06-13 10:14:53,487 [DEBUG][       Thread-251204][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 10:14:53,503 [DEBUG][       Thread-251204][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 10:14:53,503 [ INFO][       Thread-251204][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 10:14:53,516 [DEBUG][       Thread-251204][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 10:14:53,516 [DEBUG][       Thread-251204][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 10:14:53,516 [DEBUG][       Thread-251204][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 10:14:53,516 [DEBUG][       Thread-251204][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:14:53,516 [DEBUG][       Thread-251204][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:14:53,516 [DEBUG][       Thread-251204][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:14:53,516 [DEBUG][       Thread-251204][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:14:53,516 [DEBUG][       Thread-251204][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 10:14:53,516 [DEBUG][       Thread-251204][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 10:14:53,516 [DEBUG][       Thread-251204][   transport.py][1871] : client lang: <none>
2025-06-13 10:14:53,516 [DEBUG][       Thread-251204][   transport.py][1871] : server lang: <none>
2025-06-13 10:14:53,516 [DEBUG][       Thread-251204][   transport.py][1871] : kex follows: False
2025-06-13 10:14:53,516 [DEBUG][       Thread-251204][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 10:14:53,516 [DEBUG][       Thread-251204][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 10:14:53,516 [DEBUG][       Thread-251204][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 10:14:53,516 [DEBUG][       Thread-251204][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 10:14:53,516 [DEBUG][       Thread-251204][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 10:14:53,516 [DEBUG][       Thread-251204][   transport.py][1871] : Compression: none
2025-06-13 10:14:53,516 [DEBUG][       Thread-251204][   transport.py][1871] : === End of kex handshake ===
2025-06-13 10:14:53,572 [DEBUG][       Thread-251204][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 10:14:53,573 [DEBUG][       Thread-251204][   transport.py][1871] : Switch to new keys ...
2025-06-13 10:14:53,573 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 10:14:53,573 [DEBUG][       Thread-251204][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 10:14:53,573 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 10:14:53,632 [DEBUG][       Thread-251204][   transport.py][1871] : userauth is OK
2025-06-13 10:14:53,632 [DEBUG][       Thread-251204][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 10:14:53,632 [DEBUG][       Thread-251204][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 10:14:53,632 [DEBUG][       Thread-251204][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 10:14:53,632 [DEBUG][       Thread-251204][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 10:14:53,649 [ INFO][       Thread-251204][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 10:14:53,649 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 10:14:53,649 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 10:14:54,694 [DEBUG][       Thread-251204][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 10:14:54,694 [DEBUG][       Thread-251204][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 10:14:54,743 [DEBUG][       Thread-251204][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 10:14:54,743 [DEBUG][       Thread-251204][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 10:14:54,751 [DEBUG][       Thread-251204][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 10:14:54,759 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 10:14:54,759 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 10:14:54,768 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 10:14:54,780 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 10:14:54,780 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 10:14:54,781 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 10:14:54,796 [DEBUG][       Thread-251204][   transport.py][1871] : EOF in transport thread
2025-06-13 10:14:59,113 [DEBUG][Thread-251206 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:14:59,547 [DEBUG][Thread-251207 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:15:00,199 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:15:00,200 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:15:04,791 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 10:15:04,791 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 10:15:04,791 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 10:15:04,794 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 10:15:05,257 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 10, 14, 51), 9.87, 49.84, 0.0, 12.55, 8.9, 0, 0, 0, 2, 0, 0),)
2025-06-13 10:15:05,257 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 10:14:51
2025-06-13 10:15:05,338 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 10:15:05,342 [DEBUG][       Thread-251208][   transport.py][1871] : starting thread (client mode): 0x863691b0
2025-06-13 10:15:05,342 [DEBUG][       Thread-251208][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 10:15:05,363 [DEBUG][       Thread-251208][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 10:15:05,363 [ INFO][       Thread-251208][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 10:15:05,364 [DEBUG][       Thread-251208][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 10:15:05,365 [DEBUG][       Thread-251208][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 10:15:05,365 [DEBUG][       Thread-251208][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 10:15:05,365 [DEBUG][       Thread-251208][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:15:05,365 [DEBUG][       Thread-251208][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:15:05,365 [DEBUG][       Thread-251208][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:15:05,365 [DEBUG][       Thread-251208][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:15:05,365 [DEBUG][       Thread-251208][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 10:15:05,365 [DEBUG][       Thread-251208][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 10:15:05,365 [DEBUG][       Thread-251208][   transport.py][1871] : client lang: <none>
2025-06-13 10:15:05,365 [DEBUG][       Thread-251208][   transport.py][1871] : server lang: <none>
2025-06-13 10:15:05,365 [DEBUG][       Thread-251208][   transport.py][1871] : kex follows: False
2025-06-13 10:15:05,365 [DEBUG][       Thread-251208][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 10:15:05,365 [DEBUG][       Thread-251208][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 10:15:05,365 [DEBUG][       Thread-251208][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 10:15:05,365 [DEBUG][       Thread-251208][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 10:15:05,365 [DEBUG][       Thread-251208][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 10:15:05,365 [DEBUG][       Thread-251208][   transport.py][1871] : Compression: none
2025-06-13 10:15:05,365 [DEBUG][       Thread-251208][   transport.py][1871] : === End of kex handshake ===
2025-06-13 10:15:05,373 [DEBUG][       Thread-251208][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 10:15:05,373 [DEBUG][       Thread-251208][   transport.py][1871] : Switch to new keys ...
2025-06-13 10:15:05,374 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 10:15:05,374 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 10:15:05,374 [DEBUG][       Thread-251208][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 10:15:05,375 [DEBUG][       Thread-251208][   transport.py][1871] : userauth is OK
2025-06-13 10:15:05,400 [ INFO][       Thread-251208][   transport.py][1871] : Authentication (password) successful!
2025-06-13 10:15:05,400 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 10:15:05,652 [DEBUG][Thread-251210 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:15:08,565 [DEBUG][Thread-251211 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:15:13,974 [DEBUG][       Thread-251208][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 10:15:13,974 [DEBUG][       Thread-251208][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 10:15:14,017 [DEBUG][       Thread-251208][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 10:15:14,017 [DEBUG][       Thread-251208][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 10:15:14,020 [DEBUG][       Thread-251208][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 10:15:14,081 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 10:15:14,082 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 10:15:14,084 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 10:15:14,085 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 10:15:14,140 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 10:15:14,142 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 10:15:14,142 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 10:15:14,143 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 10:15:14,143 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.343343 -999.00   +8.80  18.51     54   +0.00 1 1 1 1 1   887    0 9.31 28.87 ----- 15.8 18.5 28.8 24.3 13.3 -28.5 12.0 -29.7 10.9 -27.9 12.1 -26.9
2025-06-13 10:15:14,143 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 10:15:14,143 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 10:15:14,143 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.343343
2025-06-13 10:15:14,143 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 10:15:14,144 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 10:15:14,144 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 10:15:14,144 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 10:15:14,144 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 10:15:14,144 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T10:14:51', tmtdew=9.87, humidity=49.84, cloud=0.0, wind=12.55, temperature=8.9, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T08:14:24.835', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 10:15:14,144 [DEBUG][       Thread-251208][   transport.py][1871] : EOF in transport thread
2025-06-13 10:15:14,229 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 10:15:14,240 [DEBUG][       Thread-251213][   transport.py][1871] : starting thread (client mode): 0x863c8250
2025-06-13 10:15:14,240 [DEBUG][       Thread-251213][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 10:15:14,256 [DEBUG][       Thread-251213][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 10:15:14,256 [ INFO][       Thread-251213][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 10:15:14,264 [DEBUG][       Thread-251213][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 10:15:14,264 [DEBUG][       Thread-251213][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 10:15:14,264 [DEBUG][       Thread-251213][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 10:15:14,264 [DEBUG][       Thread-251213][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:15:14,264 [DEBUG][       Thread-251213][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:15:14,264 [DEBUG][       Thread-251213][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:15:14,264 [DEBUG][       Thread-251213][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:15:14,264 [DEBUG][       Thread-251213][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 10:15:14,264 [DEBUG][       Thread-251213][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 10:15:14,264 [DEBUG][       Thread-251213][   transport.py][1871] : client lang: <none>
2025-06-13 10:15:14,264 [DEBUG][       Thread-251213][   transport.py][1871] : server lang: <none>
2025-06-13 10:15:14,264 [DEBUG][       Thread-251213][   transport.py][1871] : kex follows: False
2025-06-13 10:15:14,264 [DEBUG][       Thread-251213][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 10:15:14,264 [DEBUG][       Thread-251213][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 10:15:14,264 [DEBUG][       Thread-251213][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 10:15:14,265 [DEBUG][       Thread-251213][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 10:15:14,265 [DEBUG][       Thread-251213][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 10:15:14,265 [DEBUG][       Thread-251213][   transport.py][1871] : Compression: none
2025-06-13 10:15:14,265 [DEBUG][       Thread-251213][   transport.py][1871] : === End of kex handshake ===
2025-06-13 10:15:14,325 [DEBUG][       Thread-251213][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 10:15:14,325 [DEBUG][       Thread-251213][   transport.py][1871] : Switch to new keys ...
2025-06-13 10:15:14,325 [DEBUG][       Thread-251213][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 10:15:14,326 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 10:15:14,326 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 10:15:14,382 [DEBUG][       Thread-251213][   transport.py][1871] : userauth is OK
2025-06-13 10:15:14,382 [DEBUG][       Thread-251213][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 10:15:14,383 [DEBUG][       Thread-251213][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 10:15:14,383 [DEBUG][       Thread-251213][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 10:15:14,383 [DEBUG][       Thread-251213][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 10:15:14,401 [ INFO][       Thread-251213][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 10:15:14,402 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 10:15:14,402 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 10:15:15,382 [DEBUG][       Thread-251213][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 10:15:15,383 [DEBUG][       Thread-251213][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 10:15:15,432 [DEBUG][       Thread-251213][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 10:15:15,432 [DEBUG][       Thread-251213][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 10:15:15,440 [DEBUG][       Thread-251213][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 10:15:15,449 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 10:15:15,449 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 10:15:15,458 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 10:15:15,466 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 10:15:15,467 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 10:15:15,467 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 10:15:15,475 [DEBUG][       Thread-251213][   transport.py][1871] : EOF in transport thread
2025-06-13 10:15:17,585 [DEBUG][Thread-251215 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:15:24,688 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:15:24,688 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:15:25,476 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 10:15:25,476 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 10:15:25,476 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 10:15:25,477 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 10:15:25,928 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 10, 15, 23), 10.06, 49.34, 0.0, 17.4, 9.04, 0, 0, 0, 2, 0, 0),)
2025-06-13 10:15:25,928 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 10:15:23
2025-06-13 10:15:26,010 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 10:15:26,016 [DEBUG][       Thread-251216][   transport.py][1871] : starting thread (client mode): 0x863be4a0
2025-06-13 10:15:26,016 [DEBUG][       Thread-251216][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 10:15:26,035 [DEBUG][       Thread-251216][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 10:15:26,035 [ INFO][       Thread-251216][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 10:15:26,038 [DEBUG][       Thread-251216][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 10:15:26,038 [DEBUG][       Thread-251216][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 10:15:26,039 [DEBUG][       Thread-251216][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 10:15:26,039 [DEBUG][       Thread-251216][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:15:26,039 [DEBUG][       Thread-251216][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:15:26,039 [DEBUG][       Thread-251216][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:15:26,039 [DEBUG][       Thread-251216][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:15:26,039 [DEBUG][       Thread-251216][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 10:15:26,039 [DEBUG][       Thread-251216][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 10:15:26,039 [DEBUG][       Thread-251216][   transport.py][1871] : client lang: <none>
2025-06-13 10:15:26,039 [DEBUG][       Thread-251216][   transport.py][1871] : server lang: <none>
2025-06-13 10:15:26,039 [DEBUG][       Thread-251216][   transport.py][1871] : kex follows: False
2025-06-13 10:15:26,039 [DEBUG][       Thread-251216][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 10:15:26,039 [DEBUG][       Thread-251216][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 10:15:26,039 [DEBUG][       Thread-251216][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 10:15:26,039 [DEBUG][       Thread-251216][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 10:15:26,039 [DEBUG][       Thread-251216][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 10:15:26,039 [DEBUG][       Thread-251216][   transport.py][1871] : Compression: none
2025-06-13 10:15:26,039 [DEBUG][       Thread-251216][   transport.py][1871] : === End of kex handshake ===
2025-06-13 10:15:26,047 [DEBUG][       Thread-251216][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 10:15:26,048 [DEBUG][       Thread-251216][   transport.py][1871] : Switch to new keys ...
2025-06-13 10:15:26,048 [DEBUG][       Thread-251216][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 10:15:26,049 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 10:15:26,049 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 10:15:26,050 [DEBUG][       Thread-251216][   transport.py][1871] : userauth is OK
2025-06-13 10:15:26,075 [ INFO][       Thread-251216][   transport.py][1871] : Authentication (password) successful!
2025-06-13 10:15:26,075 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 10:15:26,614 [DEBUG][Thread-251218 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:15:26,687 [DEBUG][       Thread-251216][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 10:15:26,687 [DEBUG][       Thread-251216][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 10:15:26,729 [DEBUG][       Thread-251216][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 10:15:26,729 [DEBUG][       Thread-251216][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 10:15:26,732 [DEBUG][       Thread-251216][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 10:15:26,737 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 10:15:26,738 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 10:15:26,739 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 10:15:26,741 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 10:15:26,746 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 10:15:26,747 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 10:15:26,748 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 10:15:26,748 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 10:15:26,748 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.343690 -999.00   +8.80  18.86     54   +0.10 1 1 1 1 1   887    0 9.21 28.16 ----- 16.5 18.9 39.0 24.9 13.4 -28.4 12.0 -29.4 10.9 -28.2 12.2 -26.5
2025-06-13 10:15:26,748 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 10:15:26,748 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 10:15:26,749 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.343690
2025-06-13 10:15:26,749 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 10:15:26,749 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 10:15:26,749 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 10:15:26,750 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 10:15:26,750 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 10:15:26,750 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T10:15:23', tmtdew=10.06, humidity=49.34, cloud=0.0, wind=17.4, temperature=9.04, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T08:14:54.816', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 10:15:26,751 [DEBUG][       Thread-251216][   transport.py][1871] : EOF in transport thread
2025-06-13 10:15:26,843 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 10:15:26,852 [DEBUG][       Thread-251220][   transport.py][1871] : starting thread (client mode): 0x867fe1a0
2025-06-13 10:15:26,852 [DEBUG][       Thread-251220][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 10:15:26,867 [DEBUG][       Thread-251220][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 10:15:26,867 [ INFO][       Thread-251220][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 10:15:26,875 [DEBUG][       Thread-251220][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 10:15:26,875 [DEBUG][       Thread-251220][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 10:15:26,875 [DEBUG][       Thread-251220][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 10:15:26,875 [DEBUG][       Thread-251220][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:15:26,875 [DEBUG][       Thread-251220][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:15:26,875 [DEBUG][       Thread-251220][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:15:26,875 [DEBUG][       Thread-251220][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:15:26,875 [DEBUG][       Thread-251220][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 10:15:26,875 [DEBUG][       Thread-251220][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 10:15:26,875 [DEBUG][       Thread-251220][   transport.py][1871] : client lang: <none>
2025-06-13 10:15:26,875 [DEBUG][       Thread-251220][   transport.py][1871] : server lang: <none>
2025-06-13 10:15:26,875 [DEBUG][       Thread-251220][   transport.py][1871] : kex follows: False
2025-06-13 10:15:26,875 [DEBUG][       Thread-251220][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 10:15:26,875 [DEBUG][       Thread-251220][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 10:15:26,875 [DEBUG][       Thread-251220][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 10:15:26,875 [DEBUG][       Thread-251220][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 10:15:26,875 [DEBUG][       Thread-251220][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 10:15:26,875 [DEBUG][       Thread-251220][   transport.py][1871] : Compression: none
2025-06-13 10:15:26,875 [DEBUG][       Thread-251220][   transport.py][1871] : === End of kex handshake ===
2025-06-13 10:15:26,934 [DEBUG][       Thread-251220][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 10:15:26,934 [DEBUG][       Thread-251220][   transport.py][1871] : Switch to new keys ...
2025-06-13 10:15:26,935 [DEBUG][       Thread-251220][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 10:15:26,935 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 10:15:26,935 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 10:15:26,993 [DEBUG][       Thread-251220][   transport.py][1871] : userauth is OK
2025-06-13 10:15:26,994 [DEBUG][       Thread-251220][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 10:15:26,994 [DEBUG][       Thread-251220][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 10:15:26,994 [DEBUG][       Thread-251220][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 10:15:26,994 [DEBUG][       Thread-251220][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 10:15:27,012 [ INFO][       Thread-251220][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 10:15:27,013 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 10:15:27,013 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 10:15:28,049 [DEBUG][       Thread-251220][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 10:15:28,049 [DEBUG][       Thread-251220][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 10:15:28,099 [DEBUG][       Thread-251220][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 10:15:28,100 [DEBUG][       Thread-251220][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 10:15:28,109 [DEBUG][       Thread-251220][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 10:15:28,121 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 10:15:28,122 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 10:15:28,130 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 10:15:28,139 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 10:15:28,139 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 10:15:28,139 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 10:15:28,147 [DEBUG][       Thread-251220][   transport.py][1871] : EOF in transport thread
2025-06-13 10:15:35,630 [DEBUG][Thread-251222 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:15:38,148 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 10:15:38,149 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 10:15:38,149 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 10:15:38,151 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 10:15:38,616 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 10, 15, 23), 10.06, 49.34, 0.0, 17.4, 9.04, 0, 0, 0, 2, 0, 0),)
2025-06-13 10:15:38,616 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 10:15:23
2025-06-13 10:15:38,697 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 10:15:38,701 [DEBUG][       Thread-251223][   transport.py][1871] : starting thread (client mode): 0x867fceb0
2025-06-13 10:15:38,701 [DEBUG][       Thread-251223][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 10:15:38,722 [DEBUG][       Thread-251223][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 10:15:38,722 [ INFO][       Thread-251223][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 10:15:38,727 [DEBUG][       Thread-251223][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 10:15:38,727 [DEBUG][       Thread-251223][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 10:15:38,727 [DEBUG][       Thread-251223][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 10:15:38,727 [DEBUG][       Thread-251223][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:15:38,727 [DEBUG][       Thread-251223][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:15:38,727 [DEBUG][       Thread-251223][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:15:38,727 [DEBUG][       Thread-251223][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:15:38,727 [DEBUG][       Thread-251223][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 10:15:38,727 [DEBUG][       Thread-251223][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 10:15:38,727 [DEBUG][       Thread-251223][   transport.py][1871] : client lang: <none>
2025-06-13 10:15:38,727 [DEBUG][       Thread-251223][   transport.py][1871] : server lang: <none>
2025-06-13 10:15:38,727 [DEBUG][       Thread-251223][   transport.py][1871] : kex follows: False
2025-06-13 10:15:38,727 [DEBUG][       Thread-251223][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 10:15:38,727 [DEBUG][       Thread-251223][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 10:15:38,728 [DEBUG][       Thread-251223][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 10:15:38,728 [DEBUG][       Thread-251223][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 10:15:38,728 [DEBUG][       Thread-251223][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 10:15:38,728 [DEBUG][       Thread-251223][   transport.py][1871] : Compression: none
2025-06-13 10:15:38,728 [DEBUG][       Thread-251223][   transport.py][1871] : === End of kex handshake ===
2025-06-13 10:15:38,748 [DEBUG][       Thread-251223][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 10:15:38,748 [DEBUG][       Thread-251223][   transport.py][1871] : Switch to new keys ...
2025-06-13 10:15:38,749 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 10:15:38,749 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 10:15:38,749 [DEBUG][       Thread-251223][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 10:15:38,750 [DEBUG][       Thread-251223][   transport.py][1871] : userauth is OK
2025-06-13 10:15:38,775 [ INFO][       Thread-251223][   transport.py][1871] : Authentication (password) successful!
2025-06-13 10:15:38,775 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 10:15:39,359 [DEBUG][       Thread-251223][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 10:15:39,359 [DEBUG][       Thread-251223][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 10:15:39,401 [DEBUG][       Thread-251223][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 10:15:39,401 [DEBUG][       Thread-251223][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 10:15:39,404 [DEBUG][       Thread-251223][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 10:15:39,418 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 10:15:39,418 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 10:15:39,419 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 10:15:39,421 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 10:15:39,427 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 10:15:39,428 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 10:15:39,429 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 10:15:39,429 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 10:15:39,429 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.343690 -999.00   +8.80  18.86     54   +0.10 1 1 1 1 1   887    0 9.21 28.16 ----- 16.5 18.9 39.0 24.9 13.4 -28.4 12.0 -29.4 10.9 -28.2 12.2 -26.5
2025-06-13 10:15:39,429 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 10:15:39,429 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 10:15:39,429 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.343690
2025-06-13 10:15:39,430 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 10:15:39,430 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 10:15:39,430 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 10:15:39,430 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 10:15:39,430 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 10:15:39,431 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T10:15:23', tmtdew=10.06, humidity=49.34, cloud=0.0, wind=17.4, temperature=9.04, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T08:14:54.816', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 10:15:39,431 [DEBUG][       Thread-251223][   transport.py][1871] : EOF in transport thread
2025-06-13 10:15:39,515 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 10:15:39,526 [DEBUG][       Thread-251226][   transport.py][1871] : starting thread (client mode): 0x842048b0
2025-06-13 10:15:39,526 [DEBUG][       Thread-251226][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 10:15:39,540 [DEBUG][       Thread-251226][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 10:15:39,541 [ INFO][       Thread-251226][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 10:15:39,548 [DEBUG][       Thread-251226][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 10:15:39,548 [DEBUG][       Thread-251226][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 10:15:39,548 [DEBUG][       Thread-251226][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 10:15:39,548 [DEBUG][       Thread-251226][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:15:39,549 [DEBUG][       Thread-251226][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:15:39,549 [DEBUG][       Thread-251226][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:15:39,549 [DEBUG][       Thread-251226][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:15:39,549 [DEBUG][       Thread-251226][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 10:15:39,549 [DEBUG][       Thread-251226][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 10:15:39,549 [DEBUG][       Thread-251226][   transport.py][1871] : client lang: <none>
2025-06-13 10:15:39,549 [DEBUG][       Thread-251226][   transport.py][1871] : server lang: <none>
2025-06-13 10:15:39,549 [DEBUG][       Thread-251226][   transport.py][1871] : kex follows: False
2025-06-13 10:15:39,549 [DEBUG][       Thread-251226][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 10:15:39,549 [DEBUG][       Thread-251226][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 10:15:39,549 [DEBUG][       Thread-251226][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 10:15:39,549 [DEBUG][       Thread-251226][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 10:15:39,549 [DEBUG][       Thread-251226][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 10:15:39,549 [DEBUG][       Thread-251226][   transport.py][1871] : Compression: none
2025-06-13 10:15:39,549 [DEBUG][       Thread-251226][   transport.py][1871] : === End of kex handshake ===
2025-06-13 10:15:39,610 [DEBUG][       Thread-251226][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 10:15:39,610 [DEBUG][       Thread-251226][   transport.py][1871] : Switch to new keys ...
2025-06-13 10:15:39,611 [DEBUG][       Thread-251226][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 10:15:39,611 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 10:15:39,611 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 10:15:39,674 [DEBUG][       Thread-251226][   transport.py][1871] : userauth is OK
2025-06-13 10:15:39,674 [DEBUG][       Thread-251226][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 10:15:39,674 [DEBUG][       Thread-251226][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 10:15:39,674 [DEBUG][       Thread-251226][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 10:15:39,674 [DEBUG][       Thread-251226][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 10:15:39,693 [ INFO][       Thread-251226][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 10:15:39,693 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 10:15:39,694 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 10:15:40,693 [DEBUG][       Thread-251226][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 10:15:40,693 [DEBUG][       Thread-251226][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 10:15:40,753 [DEBUG][       Thread-251226][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 10:15:40,753 [DEBUG][       Thread-251226][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 10:15:40,766 [DEBUG][       Thread-251226][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 10:15:40,778 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 10:15:40,778 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 10:15:40,789 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 10:15:40,800 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 10:15:40,800 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 10:15:40,800 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 10:15:40,811 [DEBUG][       Thread-251226][   transport.py][1871] : EOF in transport thread
2025-06-13 10:15:44,657 [DEBUG][Thread-251228 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:15:50,811 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 10:15:50,811 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 10:15:50,811 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 10:15:50,813 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 10:15:51,278 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 10, 15, 23), 10.06, 49.34, 0.0, 17.4, 9.04, 0, 0, 0, 2, 0, 0),)
2025-06-13 10:15:51,278 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 10:15:23
2025-06-13 10:15:51,360 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 10:15:51,365 [DEBUG][       Thread-251229][   transport.py][1871] : starting thread (client mode): 0x84206950
2025-06-13 10:15:51,366 [DEBUG][       Thread-251229][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 10:15:51,387 [DEBUG][       Thread-251229][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 10:15:51,387 [ INFO][       Thread-251229][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 10:15:51,390 [DEBUG][       Thread-251229][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 10:15:51,390 [DEBUG][       Thread-251229][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 10:15:51,390 [DEBUG][       Thread-251229][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 10:15:51,391 [DEBUG][       Thread-251229][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:15:51,391 [DEBUG][       Thread-251229][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:15:51,391 [DEBUG][       Thread-251229][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:15:51,391 [DEBUG][       Thread-251229][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:15:51,391 [DEBUG][       Thread-251229][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 10:15:51,391 [DEBUG][       Thread-251229][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 10:15:51,391 [DEBUG][       Thread-251229][   transport.py][1871] : client lang: <none>
2025-06-13 10:15:51,391 [DEBUG][       Thread-251229][   transport.py][1871] : server lang: <none>
2025-06-13 10:15:51,391 [DEBUG][       Thread-251229][   transport.py][1871] : kex follows: False
2025-06-13 10:15:51,391 [DEBUG][       Thread-251229][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 10:15:51,391 [DEBUG][       Thread-251229][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 10:15:51,391 [DEBUG][       Thread-251229][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 10:15:51,391 [DEBUG][       Thread-251229][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 10:15:51,391 [DEBUG][       Thread-251229][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 10:15:51,391 [DEBUG][       Thread-251229][   transport.py][1871] : Compression: none
2025-06-13 10:15:51,391 [DEBUG][       Thread-251229][   transport.py][1871] : === End of kex handshake ===
2025-06-13 10:15:51,400 [DEBUG][       Thread-251229][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 10:15:51,400 [DEBUG][       Thread-251229][   transport.py][1871] : Switch to new keys ...
2025-06-13 10:15:51,400 [DEBUG][       Thread-251229][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 10:15:51,401 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 10:15:51,401 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 10:15:51,402 [DEBUG][       Thread-251229][   transport.py][1871] : userauth is OK
2025-06-13 10:15:51,426 [ INFO][       Thread-251229][   transport.py][1871] : Authentication (password) successful!
2025-06-13 10:15:51,426 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 10:15:52,027 [DEBUG][       Thread-251229][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 10:15:52,027 [DEBUG][       Thread-251229][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 10:15:52,069 [DEBUG][       Thread-251229][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 10:15:52,069 [DEBUG][       Thread-251229][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 10:15:52,072 [DEBUG][       Thread-251229][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 10:15:52,084 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 10:15:52,084 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 10:15:52,085 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 10:15:52,087 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 10:15:52,092 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 10:15:52,093 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 10:15:52,093 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 10:15:52,094 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 10:15:52,094 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.344038 -999.00   +8.90  16.47     54   +0.20 1 1 1 1 1   887    0 9.35 30.56 ----- 16.6 16.5 55.0 19.6 13.5 -28.0 12.1 -29.4 10.9 -28.0 12.2 -26.3
2025-06-13 10:15:52,094 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 10:15:52,094 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 10:15:52,094 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.344038
2025-06-13 10:15:52,095 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 10:15:52,095 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 10:15:52,095 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 10:15:52,095 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 10:15:52,095 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 10:15:52,096 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T10:15:23', tmtdew=10.06, humidity=49.34, cloud=0.0, wind=17.4, temperature=9.04, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T08:15:24.883', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 10:15:52,096 [DEBUG][       Thread-251229][   transport.py][1871] : EOF in transport thread
2025-06-13 10:15:52,178 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 10:15:52,190 [DEBUG][       Thread-251232][   transport.py][1871] : starting thread (client mode): 0x863a55d0
2025-06-13 10:15:52,191 [DEBUG][       Thread-251232][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 10:15:52,206 [DEBUG][       Thread-251232][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 10:15:52,206 [ INFO][       Thread-251232][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 10:15:52,213 [DEBUG][       Thread-251232][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 10:15:52,214 [DEBUG][       Thread-251232][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 10:15:52,214 [DEBUG][       Thread-251232][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 10:15:52,214 [DEBUG][       Thread-251232][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:15:52,214 [DEBUG][       Thread-251232][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:15:52,214 [DEBUG][       Thread-251232][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:15:52,214 [DEBUG][       Thread-251232][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:15:52,214 [DEBUG][       Thread-251232][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 10:15:52,214 [DEBUG][       Thread-251232][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 10:15:52,214 [DEBUG][       Thread-251232][   transport.py][1871] : client lang: <none>
2025-06-13 10:15:52,214 [DEBUG][       Thread-251232][   transport.py][1871] : server lang: <none>
2025-06-13 10:15:52,214 [DEBUG][       Thread-251232][   transport.py][1871] : kex follows: False
2025-06-13 10:15:52,214 [DEBUG][       Thread-251232][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 10:15:52,214 [DEBUG][       Thread-251232][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 10:15:52,214 [DEBUG][       Thread-251232][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 10:15:52,214 [DEBUG][       Thread-251232][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 10:15:52,214 [DEBUG][       Thread-251232][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 10:15:52,214 [DEBUG][       Thread-251232][   transport.py][1871] : Compression: none
2025-06-13 10:15:52,214 [DEBUG][       Thread-251232][   transport.py][1871] : === End of kex handshake ===
2025-06-13 10:15:52,272 [DEBUG][       Thread-251232][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 10:15:52,272 [DEBUG][       Thread-251232][   transport.py][1871] : Switch to new keys ...
2025-06-13 10:15:52,273 [DEBUG][       Thread-251232][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 10:15:52,273 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 10:15:52,273 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 10:15:52,330 [DEBUG][       Thread-251232][   transport.py][1871] : userauth is OK
2025-06-13 10:15:52,330 [DEBUG][       Thread-251232][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 10:15:52,330 [DEBUG][       Thread-251232][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 10:15:52,330 [DEBUG][       Thread-251232][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 10:15:52,330 [DEBUG][       Thread-251232][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 10:15:52,349 [ INFO][       Thread-251232][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 10:15:52,350 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 10:15:52,350 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 10:15:53,365 [DEBUG][       Thread-251232][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 10:15:53,365 [DEBUG][       Thread-251232][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 10:15:53,415 [DEBUG][       Thread-251232][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 10:15:53,416 [DEBUG][       Thread-251232][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 10:15:53,427 [DEBUG][       Thread-251232][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 10:15:53,440 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 10:15:53,440 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 10:15:53,448 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 10:15:53,459 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 10:15:53,459 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 10:15:53,460 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 10:15:53,468 [DEBUG][       Thread-251232][   transport.py][1871] : EOF in transport thread
2025-06-13 10:15:53,675 [DEBUG][Thread-251234 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:16:00,265 [DEBUG][Thread-251235 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:16:01,314 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:16:01,315 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:16:02,693 [DEBUG][Thread-251236 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:16:03,470 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 10:16:03,470 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 10:16:03,470 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 10:16:03,473 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 10:16:03,923 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 10, 15, 55), 10.18, 48.92, 0.0, 17.79, 9.04, 0, 0, 0, 2, 0, 0),)
2025-06-13 10:16:03,923 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 10:15:55
2025-06-13 10:16:04,003 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 10:16:04,007 [DEBUG][       Thread-251237][   transport.py][1871] : starting thread (client mode): 0x84206e60
2025-06-13 10:16:04,007 [DEBUG][       Thread-251237][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 10:16:04,027 [DEBUG][       Thread-251237][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 10:16:04,027 [ INFO][       Thread-251237][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 10:16:04,030 [DEBUG][       Thread-251237][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 10:16:04,030 [DEBUG][       Thread-251237][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 10:16:04,030 [DEBUG][       Thread-251237][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 10:16:04,030 [DEBUG][       Thread-251237][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:16:04,030 [DEBUG][       Thread-251237][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:16:04,030 [DEBUG][       Thread-251237][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:16:04,030 [DEBUG][       Thread-251237][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:16:04,030 [DEBUG][       Thread-251237][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 10:16:04,030 [DEBUG][       Thread-251237][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 10:16:04,031 [DEBUG][       Thread-251237][   transport.py][1871] : client lang: <none>
2025-06-13 10:16:04,031 [DEBUG][       Thread-251237][   transport.py][1871] : server lang: <none>
2025-06-13 10:16:04,031 [DEBUG][       Thread-251237][   transport.py][1871] : kex follows: False
2025-06-13 10:16:04,031 [DEBUG][       Thread-251237][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 10:16:04,031 [DEBUG][       Thread-251237][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 10:16:04,031 [DEBUG][       Thread-251237][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 10:16:04,031 [DEBUG][       Thread-251237][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 10:16:04,031 [DEBUG][       Thread-251237][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 10:16:04,031 [DEBUG][       Thread-251237][   transport.py][1871] : Compression: none
2025-06-13 10:16:04,031 [DEBUG][       Thread-251237][   transport.py][1871] : === End of kex handshake ===
2025-06-13 10:16:04,047 [DEBUG][       Thread-251237][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 10:16:04,048 [DEBUG][       Thread-251237][   transport.py][1871] : Switch to new keys ...
2025-06-13 10:16:04,048 [DEBUG][       Thread-251237][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 10:16:04,049 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 10:16:04,049 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 10:16:04,050 [DEBUG][       Thread-251237][   transport.py][1871] : userauth is OK
2025-06-13 10:16:04,063 [ INFO][       Thread-251237][   transport.py][1871] : Authentication (password) successful!
2025-06-13 10:16:04,064 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 10:16:04,737 [DEBUG][       Thread-251237][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 10:16:04,737 [DEBUG][       Thread-251237][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 10:16:04,781 [DEBUG][       Thread-251237][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 10:16:04,781 [DEBUG][       Thread-251237][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 10:16:04,784 [DEBUG][       Thread-251237][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 10:16:04,795 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 10:16:04,796 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 10:16:04,797 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 10:16:04,799 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 10:16:04,803 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 10:16:04,804 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 10:16:04,805 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 10:16:04,805 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 10:16:04,805 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.344038 -999.00   +8.90  16.47     54   +0.20 1 1 1 1 1   887    0 9.35 30.56 ----- 16.6 16.5 55.0 19.6 13.5 -28.0 12.1 -29.4 10.9 -28.0 12.2 -26.3
2025-06-13 10:16:04,805 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 10:16:04,805 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 10:16:04,806 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.344038
2025-06-13 10:16:04,806 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 10:16:04,806 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 10:16:04,806 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 10:16:04,807 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 10:16:04,807 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 10:16:04,807 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T10:15:55', tmtdew=10.18, humidity=48.92, cloud=0.0, wind=17.79, temperature=9.04, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T08:15:24.883', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 10:16:04,807 [DEBUG][       Thread-251237][   transport.py][1871] : EOF in transport thread
2025-06-13 10:16:04,890 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 10:16:04,903 [DEBUG][       Thread-251240][   transport.py][1871] : starting thread (client mode): 0x867ffe80
2025-06-13 10:16:04,903 [DEBUG][       Thread-251240][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 10:16:04,917 [DEBUG][       Thread-251240][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 10:16:04,917 [ INFO][       Thread-251240][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 10:16:04,925 [DEBUG][       Thread-251240][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 10:16:04,925 [DEBUG][       Thread-251240][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 10:16:04,925 [DEBUG][       Thread-251240][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 10:16:04,925 [DEBUG][       Thread-251240][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:16:04,925 [DEBUG][       Thread-251240][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:16:04,925 [DEBUG][       Thread-251240][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:16:04,925 [DEBUG][       Thread-251240][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:16:04,925 [DEBUG][       Thread-251240][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 10:16:04,925 [DEBUG][       Thread-251240][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 10:16:04,925 [DEBUG][       Thread-251240][   transport.py][1871] : client lang: <none>
2025-06-13 10:16:04,925 [DEBUG][       Thread-251240][   transport.py][1871] : server lang: <none>
2025-06-13 10:16:04,925 [DEBUG][       Thread-251240][   transport.py][1871] : kex follows: False
2025-06-13 10:16:04,925 [DEBUG][       Thread-251240][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 10:16:04,925 [DEBUG][       Thread-251240][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 10:16:04,925 [DEBUG][       Thread-251240][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 10:16:04,926 [DEBUG][       Thread-251240][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 10:16:04,926 [DEBUG][       Thread-251240][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 10:16:04,926 [DEBUG][       Thread-251240][   transport.py][1871] : Compression: none
2025-06-13 10:16:04,926 [DEBUG][       Thread-251240][   transport.py][1871] : === End of kex handshake ===
2025-06-13 10:16:04,999 [DEBUG][       Thread-251240][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 10:16:05,000 [DEBUG][       Thread-251240][   transport.py][1871] : Switch to new keys ...
2025-06-13 10:16:05,000 [DEBUG][       Thread-251240][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 10:16:05,000 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 10:16:05,001 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 10:16:05,065 [DEBUG][       Thread-251240][   transport.py][1871] : userauth is OK
2025-06-13 10:16:05,065 [DEBUG][       Thread-251240][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 10:16:05,065 [DEBUG][       Thread-251240][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 10:16:05,065 [DEBUG][       Thread-251240][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 10:16:05,065 [DEBUG][       Thread-251240][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 10:16:05,084 [ INFO][       Thread-251240][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 10:16:05,084 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 10:16:05,085 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 10:16:05,700 [DEBUG][Thread-251242 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:16:06,126 [DEBUG][       Thread-251240][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 10:16:06,127 [DEBUG][       Thread-251240][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 10:16:06,176 [DEBUG][       Thread-251240][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 10:16:06,176 [DEBUG][       Thread-251240][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 10:16:06,189 [DEBUG][       Thread-251240][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 10:16:06,201 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 10:16:06,201 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 10:16:06,209 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 10:16:06,218 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 10:16:06,219 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 10:16:06,219 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 10:16:06,227 [DEBUG][       Thread-251240][   transport.py][1871] : EOF in transport thread
2025-06-13 10:16:11,711 [DEBUG][Thread-251243 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:16:16,229 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 10:16:16,230 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 10:16:16,230 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 10:16:16,232 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 10:16:16,687 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 10, 15, 55), 10.18, 48.92, 0.0, 17.79, 9.04, 0, 0, 0, 2, 0, 0),)
2025-06-13 10:16:16,687 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 10:15:55
2025-06-13 10:16:16,769 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 10:16:16,775 [DEBUG][       Thread-251244][   transport.py][1871] : starting thread (client mode): 0x84206050
2025-06-13 10:16:16,775 [DEBUG][       Thread-251244][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 10:16:16,796 [DEBUG][       Thread-251244][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 10:16:16,796 [ INFO][       Thread-251244][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 10:16:16,799 [DEBUG][       Thread-251244][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 10:16:16,800 [DEBUG][       Thread-251244][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 10:16:16,800 [DEBUG][       Thread-251244][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 10:16:16,800 [DEBUG][       Thread-251244][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:16:16,800 [DEBUG][       Thread-251244][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:16:16,800 [DEBUG][       Thread-251244][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:16:16,800 [DEBUG][       Thread-251244][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:16:16,800 [DEBUG][       Thread-251244][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 10:16:16,800 [DEBUG][       Thread-251244][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 10:16:16,800 [DEBUG][       Thread-251244][   transport.py][1871] : client lang: <none>
2025-06-13 10:16:16,800 [DEBUG][       Thread-251244][   transport.py][1871] : server lang: <none>
2025-06-13 10:16:16,800 [DEBUG][       Thread-251244][   transport.py][1871] : kex follows: False
2025-06-13 10:16:16,800 [DEBUG][       Thread-251244][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 10:16:16,800 [DEBUG][       Thread-251244][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 10:16:16,800 [DEBUG][       Thread-251244][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 10:16:16,800 [DEBUG][       Thread-251244][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 10:16:16,800 [DEBUG][       Thread-251244][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 10:16:16,800 [DEBUG][       Thread-251244][   transport.py][1871] : Compression: none
2025-06-13 10:16:16,800 [DEBUG][       Thread-251244][   transport.py][1871] : === End of kex handshake ===
2025-06-13 10:16:16,817 [DEBUG][       Thread-251244][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 10:16:16,818 [DEBUG][       Thread-251244][   transport.py][1871] : Switch to new keys ...
2025-06-13 10:16:16,818 [DEBUG][       Thread-251244][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 10:16:16,819 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 10:16:16,819 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 10:16:16,820 [DEBUG][       Thread-251244][   transport.py][1871] : userauth is OK
2025-06-13 10:16:16,832 [ INFO][       Thread-251244][   transport.py][1871] : Authentication (password) successful!
2025-06-13 10:16:16,833 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 10:16:17,452 [DEBUG][       Thread-251244][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 10:16:17,452 [DEBUG][       Thread-251244][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 10:16:17,497 [DEBUG][       Thread-251244][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 10:16:17,497 [DEBUG][       Thread-251244][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 10:16:17,500 [DEBUG][       Thread-251244][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 10:16:17,506 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 10:16:17,506 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 10:16:17,508 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 10:16:17,509 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 10:16:17,514 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 10:16:17,516 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 10:16:17,516 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 10:16:17,517 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 10:16:17,517 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.344038 -999.00   +8.90  16.47     54   +0.20 1 1 1 1 1   887    0 9.35 30.56 ----- 16.6 16.5 55.0 19.6 13.5 -28.0 12.1 -29.4 10.9 -28.0 12.2 -26.3
2025-06-13 10:16:17,517 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 10:16:17,517 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 10:16:17,517 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.344038
2025-06-13 10:16:17,517 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 10:16:17,518 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 10:16:17,518 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 10:16:17,518 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 10:16:17,518 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 10:16:17,518 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T10:15:55', tmtdew=10.18, humidity=48.92, cloud=0.0, wind=17.79, temperature=9.04, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T08:15:24.883', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 10:16:17,519 [DEBUG][       Thread-251244][   transport.py][1871] : EOF in transport thread
2025-06-13 10:16:17,603 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 10:16:17,615 [DEBUG][       Thread-251247][   transport.py][1871] : starting thread (client mode): 0x863ee410
2025-06-13 10:16:17,615 [DEBUG][       Thread-251247][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 10:16:17,636 [DEBUG][       Thread-251247][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 10:16:17,636 [ INFO][       Thread-251247][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 10:16:17,650 [DEBUG][       Thread-251247][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 10:16:17,650 [DEBUG][       Thread-251247][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 10:16:17,650 [DEBUG][       Thread-251247][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 10:16:17,650 [DEBUG][       Thread-251247][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:16:17,650 [DEBUG][       Thread-251247][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:16:17,650 [DEBUG][       Thread-251247][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:16:17,650 [DEBUG][       Thread-251247][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:16:17,650 [DEBUG][       Thread-251247][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 10:16:17,650 [DEBUG][       Thread-251247][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 10:16:17,651 [DEBUG][       Thread-251247][   transport.py][1871] : client lang: <none>
2025-06-13 10:16:17,651 [DEBUG][       Thread-251247][   transport.py][1871] : server lang: <none>
2025-06-13 10:16:17,651 [DEBUG][       Thread-251247][   transport.py][1871] : kex follows: False
2025-06-13 10:16:17,651 [DEBUG][       Thread-251247][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 10:16:17,651 [DEBUG][       Thread-251247][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 10:16:17,651 [DEBUG][       Thread-251247][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 10:16:17,651 [DEBUG][       Thread-251247][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 10:16:17,651 [DEBUG][       Thread-251247][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 10:16:17,651 [DEBUG][       Thread-251247][   transport.py][1871] : Compression: none
2025-06-13 10:16:17,651 [DEBUG][       Thread-251247][   transport.py][1871] : === End of kex handshake ===
2025-06-13 10:16:17,708 [DEBUG][       Thread-251247][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 10:16:17,708 [DEBUG][       Thread-251247][   transport.py][1871] : Switch to new keys ...
2025-06-13 10:16:17,709 [DEBUG][       Thread-251247][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 10:16:17,709 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 10:16:17,710 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 10:16:17,772 [DEBUG][       Thread-251247][   transport.py][1871] : userauth is OK
2025-06-13 10:16:17,772 [DEBUG][       Thread-251247][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 10:16:17,772 [DEBUG][       Thread-251247][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 10:16:17,772 [DEBUG][       Thread-251247][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 10:16:17,772 [DEBUG][       Thread-251247][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 10:16:17,791 [ INFO][       Thread-251247][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 10:16:17,792 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 10:16:17,792 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 10:16:18,833 [DEBUG][       Thread-251247][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 10:16:18,833 [DEBUG][       Thread-251247][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 10:16:18,883 [DEBUG][       Thread-251247][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 10:16:18,884 [DEBUG][       Thread-251247][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 10:16:18,892 [DEBUG][       Thread-251247][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 10:16:18,901 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 10:16:18,901 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 10:16:18,909 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 10:16:18,918 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 10:16:18,918 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 10:16:18,919 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 10:16:18,927 [DEBUG][       Thread-251247][   transport.py][1871] : EOF in transport thread
2025-06-13 10:16:20,734 [DEBUG][Thread-251249 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:16:24,824 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:16:24,825 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:16:28,928 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 10:16:28,928 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 10:16:28,928 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 10:16:28,928 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 10:16:29,391 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 10, 15, 55), 10.18, 48.92, 0.0, 17.79, 9.04, 0, 0, 0, 2, 0, 0),)
2025-06-13 10:16:29,391 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 10:15:55
2025-06-13 10:16:29,472 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 10:16:29,476 [DEBUG][       Thread-251250][   transport.py][1871] : starting thread (client mode): 0x863be110
2025-06-13 10:16:29,476 [DEBUG][       Thread-251250][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 10:16:29,498 [DEBUG][       Thread-251250][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 10:16:29,498 [ INFO][       Thread-251250][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 10:16:29,502 [DEBUG][       Thread-251250][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 10:16:29,502 [DEBUG][       Thread-251250][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 10:16:29,502 [DEBUG][       Thread-251250][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 10:16:29,502 [DEBUG][       Thread-251250][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:16:29,502 [DEBUG][       Thread-251250][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:16:29,502 [DEBUG][       Thread-251250][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:16:29,502 [DEBUG][       Thread-251250][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:16:29,502 [DEBUG][       Thread-251250][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 10:16:29,502 [DEBUG][       Thread-251250][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 10:16:29,502 [DEBUG][       Thread-251250][   transport.py][1871] : client lang: <none>
2025-06-13 10:16:29,502 [DEBUG][       Thread-251250][   transport.py][1871] : server lang: <none>
2025-06-13 10:16:29,502 [DEBUG][       Thread-251250][   transport.py][1871] : kex follows: False
2025-06-13 10:16:29,502 [DEBUG][       Thread-251250][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 10:16:29,502 [DEBUG][       Thread-251250][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 10:16:29,502 [DEBUG][       Thread-251250][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 10:16:29,502 [DEBUG][       Thread-251250][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 10:16:29,502 [DEBUG][       Thread-251250][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 10:16:29,502 [DEBUG][       Thread-251250][   transport.py][1871] : Compression: none
2025-06-13 10:16:29,502 [DEBUG][       Thread-251250][   transport.py][1871] : === End of kex handshake ===
2025-06-13 10:16:29,519 [DEBUG][       Thread-251250][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 10:16:29,520 [DEBUG][       Thread-251250][   transport.py][1871] : Switch to new keys ...
2025-06-13 10:16:29,520 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 10:16:29,521 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 10:16:29,521 [DEBUG][       Thread-251250][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 10:16:29,522 [DEBUG][       Thread-251250][   transport.py][1871] : userauth is OK
2025-06-13 10:16:29,546 [ INFO][       Thread-251250][   transport.py][1871] : Authentication (password) successful!
2025-06-13 10:16:29,547 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 10:16:29,751 [DEBUG][Thread-251252 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:16:30,227 [DEBUG][       Thread-251250][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 10:16:30,227 [DEBUG][       Thread-251250][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 10:16:30,273 [DEBUG][       Thread-251250][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 10:16:30,273 [DEBUG][       Thread-251250][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 10:16:30,276 [DEBUG][       Thread-251250][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 10:16:30,289 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 10:16:30,290 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 10:16:30,292 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 10:16:30,294 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 10:16:30,299 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 10:16:30,301 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 10:16:30,301 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 10:16:30,302 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 10:16:30,302 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.344385 -999.00   +9.00  21.66     54   +0.20 1 1 1 1 1   887    0 9.50 33.98 ----- 21.0 21.7 61.4 25.7 13.4 -28.0 12.2 -29.6 10.9 -28.3 12.2 -26.2
2025-06-13 10:16:30,302 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 10:16:30,302 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 10:16:30,302 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.344385
2025-06-13 10:16:30,303 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 10:16:30,303 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 10:16:30,304 [DEBUG][       Thread-251250][   transport.py][1871] : EOF in transport thread
2025-06-13 10:16:30,304 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 10:16:30,304 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 10:16:30,305 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 10:16:30,305 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T10:15:55', tmtdew=10.18, humidity=48.92, cloud=0.0, wind=17.79, temperature=9.04, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T08:15:54.864', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 10:16:30,396 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 10:16:30,410 [DEBUG][       Thread-251254][   transport.py][1871] : starting thread (client mode): 0x84204f40
2025-06-13 10:16:30,410 [DEBUG][       Thread-251254][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 10:16:30,428 [DEBUG][       Thread-251254][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 10:16:30,428 [ INFO][       Thread-251254][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 10:16:30,438 [DEBUG][       Thread-251254][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 10:16:30,439 [DEBUG][       Thread-251254][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 10:16:30,439 [DEBUG][       Thread-251254][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 10:16:30,439 [DEBUG][       Thread-251254][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:16:30,439 [DEBUG][       Thread-251254][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:16:30,439 [DEBUG][       Thread-251254][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:16:30,439 [DEBUG][       Thread-251254][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:16:30,439 [DEBUG][       Thread-251254][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 10:16:30,439 [DEBUG][       Thread-251254][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 10:16:30,439 [DEBUG][       Thread-251254][   transport.py][1871] : client lang: <none>
2025-06-13 10:16:30,439 [DEBUG][       Thread-251254][   transport.py][1871] : server lang: <none>
2025-06-13 10:16:30,439 [DEBUG][       Thread-251254][   transport.py][1871] : kex follows: False
2025-06-13 10:16:30,439 [DEBUG][       Thread-251254][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 10:16:30,439 [DEBUG][       Thread-251254][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 10:16:30,439 [DEBUG][       Thread-251254][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 10:16:30,439 [DEBUG][       Thread-251254][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 10:16:30,439 [DEBUG][       Thread-251254][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 10:16:30,440 [DEBUG][       Thread-251254][   transport.py][1871] : Compression: none
2025-06-13 10:16:30,440 [DEBUG][       Thread-251254][   transport.py][1871] : === End of kex handshake ===
2025-06-13 10:16:30,502 [DEBUG][       Thread-251254][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 10:16:30,503 [DEBUG][       Thread-251254][   transport.py][1871] : Switch to new keys ...
2025-06-13 10:16:30,503 [DEBUG][       Thread-251254][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 10:16:30,503 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 10:16:30,503 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 10:16:30,564 [DEBUG][       Thread-251254][   transport.py][1871] : userauth is OK
2025-06-13 10:16:30,564 [DEBUG][       Thread-251254][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 10:16:30,565 [DEBUG][       Thread-251254][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 10:16:30,565 [DEBUG][       Thread-251254][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 10:16:30,565 [DEBUG][       Thread-251254][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 10:16:30,580 [ INFO][       Thread-251254][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 10:16:30,580 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 10:16:30,580 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 10:16:31,603 [DEBUG][       Thread-251254][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 10:16:31,603 [DEBUG][       Thread-251254][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 10:16:31,657 [DEBUG][       Thread-251254][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 10:16:31,657 [DEBUG][       Thread-251254][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 10:16:31,666 [DEBUG][       Thread-251254][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 10:16:31,674 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 10:16:31,675 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 10:16:31,683 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 10:16:31,692 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 10:16:31,692 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 10:16:31,692 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 10:16:31,700 [DEBUG][       Thread-251254][   transport.py][1871] : EOF in transport thread
2025-06-13 10:16:38,770 [DEBUG][Thread-251256 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:16:41,703 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 10:16:41,703 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 10:16:41,703 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 10:16:41,705 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 10:16:42,172 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 10, 16, 26), 10.03, 49.4, 0.0, 15.25, 8.98, 0, 0, 0, 2, 0, 0),)
2025-06-13 10:16:42,172 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 10:16:26
2025-06-13 10:16:42,253 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 10:16:42,259 [DEBUG][       Thread-251257][   transport.py][1871] : starting thread (client mode): 0x863bd690
2025-06-13 10:16:42,259 [DEBUG][       Thread-251257][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 10:16:42,282 [DEBUG][       Thread-251257][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 10:16:42,283 [ INFO][       Thread-251257][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 10:16:42,286 [DEBUG][       Thread-251257][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 10:16:42,287 [DEBUG][       Thread-251257][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 10:16:42,287 [DEBUG][       Thread-251257][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 10:16:42,287 [DEBUG][       Thread-251257][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:16:42,287 [DEBUG][       Thread-251257][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:16:42,287 [DEBUG][       Thread-251257][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:16:42,287 [DEBUG][       Thread-251257][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:16:42,287 [DEBUG][       Thread-251257][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 10:16:42,287 [DEBUG][       Thread-251257][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 10:16:42,287 [DEBUG][       Thread-251257][   transport.py][1871] : client lang: <none>
2025-06-13 10:16:42,287 [DEBUG][       Thread-251257][   transport.py][1871] : server lang: <none>
2025-06-13 10:16:42,287 [DEBUG][       Thread-251257][   transport.py][1871] : kex follows: False
2025-06-13 10:16:42,287 [DEBUG][       Thread-251257][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 10:16:42,287 [DEBUG][       Thread-251257][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 10:16:42,287 [DEBUG][       Thread-251257][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 10:16:42,287 [DEBUG][       Thread-251257][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 10:16:42,287 [DEBUG][       Thread-251257][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 10:16:42,287 [DEBUG][       Thread-251257][   transport.py][1871] : Compression: none
2025-06-13 10:16:42,287 [DEBUG][       Thread-251257][   transport.py][1871] : === End of kex handshake ===
2025-06-13 10:16:42,306 [DEBUG][       Thread-251257][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 10:16:42,306 [DEBUG][       Thread-251257][   transport.py][1871] : Switch to new keys ...
2025-06-13 10:16:42,307 [DEBUG][       Thread-251257][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 10:16:42,307 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 10:16:42,307 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 10:16:42,308 [DEBUG][       Thread-251257][   transport.py][1871] : userauth is OK
2025-06-13 10:16:42,321 [ INFO][       Thread-251257][   transport.py][1871] : Authentication (password) successful!
2025-06-13 10:16:42,321 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 10:16:42,991 [DEBUG][       Thread-251257][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 10:16:42,991 [DEBUG][       Thread-251257][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 10:16:43,033 [DEBUG][       Thread-251257][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 10:16:43,033 [DEBUG][       Thread-251257][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 10:16:43,035 [DEBUG][       Thread-251257][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 10:16:43,050 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 10:16:43,050 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 10:16:43,052 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 10:16:43,053 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 10:16:43,058 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 10:16:43,060 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 10:16:43,060 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 10:16:43,061 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 10:16:43,061 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.344385 -999.00   +9.00  21.66     54   +0.20 1 1 1 1 1   887    0 9.50 33.98 ----- 21.0 21.7 61.4 25.7 13.4 -28.0 12.2 -29.6 10.9 -28.3 12.2 -26.2
2025-06-13 10:16:43,061 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 10:16:43,061 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 10:16:43,061 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.344385
2025-06-13 10:16:43,062 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 10:16:43,062 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 10:16:43,062 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 10:16:43,062 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 10:16:43,062 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 10:16:43,062 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T10:16:26', tmtdew=10.03, humidity=49.4, cloud=0.0, wind=15.25, temperature=8.98, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T08:15:54.864', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 10:16:43,063 [DEBUG][       Thread-251257][   transport.py][1871] : EOF in transport thread
2025-06-13 10:16:43,147 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 10:16:43,161 [DEBUG][       Thread-251260][   transport.py][1871] : starting thread (client mode): 0x86369960
2025-06-13 10:16:43,161 [DEBUG][       Thread-251260][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 10:16:43,176 [DEBUG][       Thread-251260][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 10:16:43,176 [ INFO][       Thread-251260][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 10:16:43,184 [DEBUG][       Thread-251260][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 10:16:43,185 [DEBUG][       Thread-251260][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 10:16:43,185 [DEBUG][       Thread-251260][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 10:16:43,185 [DEBUG][       Thread-251260][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:16:43,185 [DEBUG][       Thread-251260][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:16:43,185 [DEBUG][       Thread-251260][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:16:43,185 [DEBUG][       Thread-251260][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:16:43,185 [DEBUG][       Thread-251260][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 10:16:43,185 [DEBUG][       Thread-251260][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 10:16:43,185 [DEBUG][       Thread-251260][   transport.py][1871] : client lang: <none>
2025-06-13 10:16:43,185 [DEBUG][       Thread-251260][   transport.py][1871] : server lang: <none>
2025-06-13 10:16:43,185 [DEBUG][       Thread-251260][   transport.py][1871] : kex follows: False
2025-06-13 10:16:43,185 [DEBUG][       Thread-251260][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 10:16:43,185 [DEBUG][       Thread-251260][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 10:16:43,185 [DEBUG][       Thread-251260][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 10:16:43,185 [DEBUG][       Thread-251260][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 10:16:43,185 [DEBUG][       Thread-251260][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 10:16:43,185 [DEBUG][       Thread-251260][   transport.py][1871] : Compression: none
2025-06-13 10:16:43,185 [DEBUG][       Thread-251260][   transport.py][1871] : === End of kex handshake ===
2025-06-13 10:16:43,244 [DEBUG][       Thread-251260][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 10:16:43,244 [DEBUG][       Thread-251260][   transport.py][1871] : Switch to new keys ...
2025-06-13 10:16:43,245 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 10:16:43,245 [DEBUG][       Thread-251260][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 10:16:43,246 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 10:16:43,310 [DEBUG][       Thread-251260][   transport.py][1871] : userauth is OK
2025-06-13 10:16:43,310 [DEBUG][       Thread-251260][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 10:16:43,310 [DEBUG][       Thread-251260][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 10:16:43,310 [DEBUG][       Thread-251260][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 10:16:43,310 [DEBUG][       Thread-251260][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 10:16:43,329 [ INFO][       Thread-251260][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 10:16:43,329 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 10:16:43,330 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 10:16:44,321 [DEBUG][       Thread-251260][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 10:16:44,321 [DEBUG][       Thread-251260][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 10:16:44,376 [DEBUG][       Thread-251260][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 10:16:44,376 [DEBUG][       Thread-251260][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 10:16:44,389 [DEBUG][       Thread-251260][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 10:16:44,404 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 10:16:44,404 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 10:16:44,416 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 10:16:44,432 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 10:16:44,432 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 10:16:44,432 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 10:16:44,444 [DEBUG][       Thread-251260][   transport.py][1871] : EOF in transport thread
2025-06-13 10:16:47,790 [DEBUG][Thread-251262 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:16:54,443 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 10:16:54,443 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 10:16:54,443 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 10:16:54,445 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 10:16:54,898 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 10, 16, 26), 10.03, 49.4, 0.0, 15.25, 8.98, 0, 0, 0, 2, 0, 0),)
2025-06-13 10:16:54,899 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 10:16:26
2025-06-13 10:16:54,979 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 10:16:54,986 [DEBUG][       Thread-251263][   transport.py][1871] : starting thread (client mode): 0x863691b0
2025-06-13 10:16:54,986 [DEBUG][       Thread-251263][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 10:16:55,006 [DEBUG][       Thread-251263][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 10:16:55,006 [ INFO][       Thread-251263][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 10:16:55,009 [DEBUG][       Thread-251263][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 10:16:55,009 [DEBUG][       Thread-251263][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 10:16:55,010 [DEBUG][       Thread-251263][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 10:16:55,010 [DEBUG][       Thread-251263][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:16:55,010 [DEBUG][       Thread-251263][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:16:55,010 [DEBUG][       Thread-251263][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:16:55,010 [DEBUG][       Thread-251263][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:16:55,010 [DEBUG][       Thread-251263][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 10:16:55,010 [DEBUG][       Thread-251263][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 10:16:55,010 [DEBUG][       Thread-251263][   transport.py][1871] : client lang: <none>
2025-06-13 10:16:55,010 [DEBUG][       Thread-251263][   transport.py][1871] : server lang: <none>
2025-06-13 10:16:55,010 [DEBUG][       Thread-251263][   transport.py][1871] : kex follows: False
2025-06-13 10:16:55,010 [DEBUG][       Thread-251263][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 10:16:55,010 [DEBUG][       Thread-251263][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 10:16:55,010 [DEBUG][       Thread-251263][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 10:16:55,010 [DEBUG][       Thread-251263][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 10:16:55,010 [DEBUG][       Thread-251263][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 10:16:55,010 [DEBUG][       Thread-251263][   transport.py][1871] : Compression: none
2025-06-13 10:16:55,010 [DEBUG][       Thread-251263][   transport.py][1871] : === End of kex handshake ===
2025-06-13 10:16:55,026 [DEBUG][       Thread-251263][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 10:16:55,026 [DEBUG][       Thread-251263][   transport.py][1871] : Switch to new keys ...
2025-06-13 10:16:55,027 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 10:16:55,027 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 10:16:55,027 [DEBUG][       Thread-251263][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 10:16:55,028 [DEBUG][       Thread-251263][   transport.py][1871] : userauth is OK
2025-06-13 10:16:55,041 [ INFO][       Thread-251263][   transport.py][1871] : Authentication (password) successful!
2025-06-13 10:16:55,042 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 10:16:55,655 [DEBUG][       Thread-251263][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 10:16:55,655 [DEBUG][       Thread-251263][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 10:16:55,697 [DEBUG][       Thread-251263][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 10:16:55,698 [DEBUG][       Thread-251263][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 10:16:55,700 [DEBUG][       Thread-251263][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 10:16:55,714 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 10:16:55,714 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 10:16:55,716 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 10:16:55,717 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 10:16:55,723 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 10:16:55,725 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 10:16:55,725 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 10:16:55,725 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 10:16:55,725 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.344385 -999.00   +9.00  21.66     54   +0.20 1 1 1 1 1   887    0 9.50 33.98 ----- 21.0 21.7 61.4 25.7 13.4 -28.0 12.2 -29.6 10.9 -28.3 12.2 -26.2
2025-06-13 10:16:55,726 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 10:16:55,726 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 10:16:55,726 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.344385
2025-06-13 10:16:55,726 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 10:16:55,726 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 10:16:55,727 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 10:16:55,727 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 10:16:55,727 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 10:16:55,727 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T10:16:26', tmtdew=10.03, humidity=49.4, cloud=0.0, wind=15.25, temperature=8.98, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T08:15:54.864', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 10:16:55,728 [DEBUG][       Thread-251263][   transport.py][1871] : EOF in transport thread
2025-06-13 10:16:55,810 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 10:16:55,820 [DEBUG][       Thread-251266][   transport.py][1871] : starting thread (client mode): 0x867fce50
2025-06-13 10:16:55,820 [DEBUG][       Thread-251266][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 10:16:55,839 [DEBUG][       Thread-251266][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 10:16:55,839 [ INFO][       Thread-251266][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 10:16:55,846 [DEBUG][       Thread-251266][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 10:16:55,847 [DEBUG][       Thread-251266][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 10:16:55,847 [DEBUG][       Thread-251266][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 10:16:55,847 [DEBUG][       Thread-251266][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:16:55,847 [DEBUG][       Thread-251266][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:16:55,847 [DEBUG][       Thread-251266][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:16:55,847 [DEBUG][       Thread-251266][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:16:55,847 [DEBUG][       Thread-251266][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 10:16:55,847 [DEBUG][       Thread-251266][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 10:16:55,847 [DEBUG][       Thread-251266][   transport.py][1871] : client lang: <none>
2025-06-13 10:16:55,847 [DEBUG][       Thread-251266][   transport.py][1871] : server lang: <none>
2025-06-13 10:16:55,847 [DEBUG][       Thread-251266][   transport.py][1871] : kex follows: False
2025-06-13 10:16:55,847 [DEBUG][       Thread-251266][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 10:16:55,847 [DEBUG][       Thread-251266][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 10:16:55,847 [DEBUG][       Thread-251266][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 10:16:55,847 [DEBUG][       Thread-251266][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 10:16:55,847 [DEBUG][       Thread-251266][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 10:16:55,847 [DEBUG][       Thread-251266][   transport.py][1871] : Compression: none
2025-06-13 10:16:55,848 [DEBUG][       Thread-251266][   transport.py][1871] : === End of kex handshake ===
2025-06-13 10:16:55,905 [DEBUG][       Thread-251266][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 10:16:55,906 [DEBUG][       Thread-251266][   transport.py][1871] : Switch to new keys ...
2025-06-13 10:16:55,906 [DEBUG][       Thread-251266][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 10:16:55,907 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 10:16:55,907 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 10:16:55,969 [DEBUG][       Thread-251266][   transport.py][1871] : userauth is OK
2025-06-13 10:16:55,969 [DEBUG][       Thread-251266][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 10:16:55,969 [DEBUG][       Thread-251266][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 10:16:55,969 [DEBUG][       Thread-251266][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 10:16:55,970 [DEBUG][       Thread-251266][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 10:16:55,994 [ INFO][       Thread-251266][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 10:16:55,995 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 10:16:55,995 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 10:16:56,822 [DEBUG][Thread-251268 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:16:56,977 [DEBUG][       Thread-251266][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 10:16:56,977 [DEBUG][       Thread-251266][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 10:16:57,035 [DEBUG][       Thread-251266][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 10:16:57,035 [DEBUG][       Thread-251266][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 10:16:57,051 [DEBUG][       Thread-251266][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 10:16:57,065 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 10:16:57,065 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 10:16:57,074 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 10:16:57,084 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 10:16:57,084 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 10:16:57,084 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 10:16:57,094 [DEBUG][       Thread-251266][   transport.py][1871] : EOF in transport thread
2025-06-13 10:17:01,386 [DEBUG][Thread-251269 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:17:02,463 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:17:02,464 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:17:05,760 [DEBUG][Thread-251270 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:17:05,840 [DEBUG][Thread-251271 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:17:07,094 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 10:17:07,095 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 10:17:07,095 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 10:17:07,097 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 10:17:07,565 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 10, 16, 58), 10.01, 49.5, 0.0, 14.79, 9.02, 0, 0, 0, 2, 0, 0),)
2025-06-13 10:17:07,565 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 10:16:58
2025-06-13 10:17:07,646 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 10:17:07,650 [DEBUG][       Thread-251272][   transport.py][1871] : starting thread (client mode): 0x863bc2b0
2025-06-13 10:17:07,650 [DEBUG][       Thread-251272][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 10:17:07,663 [DEBUG][       Thread-251272][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 10:17:07,663 [ INFO][       Thread-251272][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 10:17:07,666 [DEBUG][       Thread-251272][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 10:17:07,666 [DEBUG][       Thread-251272][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 10:17:07,666 [DEBUG][       Thread-251272][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 10:17:07,666 [DEBUG][       Thread-251272][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:17:07,666 [DEBUG][       Thread-251272][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:17:07,666 [DEBUG][       Thread-251272][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:17:07,666 [DEBUG][       Thread-251272][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:17:07,666 [DEBUG][       Thread-251272][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 10:17:07,666 [DEBUG][       Thread-251272][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 10:17:07,666 [DEBUG][       Thread-251272][   transport.py][1871] : client lang: <none>
2025-06-13 10:17:07,666 [DEBUG][       Thread-251272][   transport.py][1871] : server lang: <none>
2025-06-13 10:17:07,666 [DEBUG][       Thread-251272][   transport.py][1871] : kex follows: False
2025-06-13 10:17:07,666 [DEBUG][       Thread-251272][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 10:17:07,667 [DEBUG][       Thread-251272][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 10:17:07,667 [DEBUG][       Thread-251272][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 10:17:07,667 [DEBUG][       Thread-251272][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 10:17:07,667 [DEBUG][       Thread-251272][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 10:17:07,667 [DEBUG][       Thread-251272][   transport.py][1871] : Compression: none
2025-06-13 10:17:07,667 [DEBUG][       Thread-251272][   transport.py][1871] : === End of kex handshake ===
2025-06-13 10:17:07,683 [DEBUG][       Thread-251272][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 10:17:07,683 [DEBUG][       Thread-251272][   transport.py][1871] : Switch to new keys ...
2025-06-13 10:17:07,684 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 10:17:07,684 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 10:17:07,684 [DEBUG][       Thread-251272][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 10:17:07,685 [DEBUG][       Thread-251272][   transport.py][1871] : userauth is OK
2025-06-13 10:17:07,709 [ INFO][       Thread-251272][   transport.py][1871] : Authentication (password) successful!
2025-06-13 10:17:07,710 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 10:17:08,333 [DEBUG][       Thread-251272][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 10:17:08,333 [DEBUG][       Thread-251272][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 10:17:08,377 [DEBUG][       Thread-251272][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 10:17:08,377 [DEBUG][       Thread-251272][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 10:17:08,380 [DEBUG][       Thread-251272][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 10:17:08,393 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 10:17:08,393 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 10:17:08,395 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 10:17:08,397 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 10:17:08,403 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 10:17:08,404 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 10:17:08,404 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 10:17:08,405 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 10:17:08,405 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.345079 -999.00   +8.90  18.52     53   +0.00 1 1 1 1 1   887    0 9.75 40.89 ----- 17.1 18.5 43.0 20.8 13.4 -27.9 12.2 -29.7 11.0 -28.5 12.2 -26.9
2025-06-13 10:17:08,405 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 10:17:08,405 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 10:17:08,405 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.345079
2025-06-13 10:17:08,406 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 10:17:08,406 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 10:17:08,406 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 10:17:08,406 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 10:17:08,406 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 10:17:08,407 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T10:16:58', tmtdew=10.01, humidity=49.5, cloud=0.0, wind=14.79, temperature=9.02, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T08:16:54.826', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 10:17:08,407 [DEBUG][       Thread-251272][   transport.py][1871] : EOF in transport thread
2025-06-13 10:17:08,490 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 10:17:08,504 [DEBUG][       Thread-251275][   transport.py][1871] : starting thread (client mode): 0x842064a0
2025-06-13 10:17:08,504 [DEBUG][       Thread-251275][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 10:17:08,524 [DEBUG][       Thread-251275][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 10:17:08,524 [ INFO][       Thread-251275][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 10:17:08,532 [DEBUG][       Thread-251275][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 10:17:08,532 [DEBUG][       Thread-251275][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 10:17:08,532 [DEBUG][       Thread-251275][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 10:17:08,532 [DEBUG][       Thread-251275][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:17:08,532 [DEBUG][       Thread-251275][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:17:08,532 [DEBUG][       Thread-251275][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:17:08,532 [DEBUG][       Thread-251275][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:17:08,532 [DEBUG][       Thread-251275][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 10:17:08,532 [DEBUG][       Thread-251275][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 10:17:08,533 [DEBUG][       Thread-251275][   transport.py][1871] : client lang: <none>
2025-06-13 10:17:08,533 [DEBUG][       Thread-251275][   transport.py][1871] : server lang: <none>
2025-06-13 10:17:08,533 [DEBUG][       Thread-251275][   transport.py][1871] : kex follows: False
2025-06-13 10:17:08,533 [DEBUG][       Thread-251275][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 10:17:08,533 [DEBUG][       Thread-251275][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 10:17:08,533 [DEBUG][       Thread-251275][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 10:17:08,533 [DEBUG][       Thread-251275][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 10:17:08,533 [DEBUG][       Thread-251275][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 10:17:08,533 [DEBUG][       Thread-251275][   transport.py][1871] : Compression: none
2025-06-13 10:17:08,533 [DEBUG][       Thread-251275][   transport.py][1871] : === End of kex handshake ===
2025-06-13 10:17:08,594 [DEBUG][       Thread-251275][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 10:17:08,594 [DEBUG][       Thread-251275][   transport.py][1871] : Switch to new keys ...
2025-06-13 10:17:08,594 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 10:17:08,595 [DEBUG][       Thread-251275][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 10:17:08,596 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 10:17:08,651 [DEBUG][       Thread-251275][   transport.py][1871] : userauth is OK
2025-06-13 10:17:08,651 [DEBUG][       Thread-251275][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 10:17:08,652 [DEBUG][       Thread-251275][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 10:17:08,652 [DEBUG][       Thread-251275][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 10:17:08,652 [DEBUG][       Thread-251275][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 10:17:08,678 [ INFO][       Thread-251275][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 10:17:08,678 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 10:17:08,678 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 10:17:09,680 [DEBUG][       Thread-251275][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 10:17:09,680 [DEBUG][       Thread-251275][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 10:17:09,727 [DEBUG][       Thread-251275][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 10:17:09,728 [DEBUG][       Thread-251275][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 10:17:09,739 [DEBUG][       Thread-251275][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 10:17:09,752 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 10:17:09,752 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 10:17:09,760 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 10:17:09,769 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 10:17:09,770 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 10:17:09,770 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 10:17:09,778 [DEBUG][       Thread-251275][   transport.py][1871] : EOF in transport thread
2025-06-13 10:17:14,859 [DEBUG][Thread-251277 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:17:19,780 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 10:17:19,780 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 10:17:19,781 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 10:17:19,783 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 10:17:20,249 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 10, 16, 58), 10.01, 49.5, 0.0, 14.79, 9.02, 0, 0, 0, 2, 0, 0),)
2025-06-13 10:17:20,249 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 10:16:58
2025-06-13 10:17:20,347 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 10:17:20,352 [DEBUG][       Thread-251278][   transport.py][1871] : starting thread (client mode): 0x84205450
2025-06-13 10:17:20,352 [DEBUG][       Thread-251278][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 10:17:20,372 [DEBUG][       Thread-251278][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 10:17:20,372 [ INFO][       Thread-251278][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 10:17:20,376 [DEBUG][       Thread-251278][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 10:17:20,376 [DEBUG][       Thread-251278][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 10:17:20,376 [DEBUG][       Thread-251278][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 10:17:20,376 [DEBUG][       Thread-251278][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:17:20,376 [DEBUG][       Thread-251278][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:17:20,376 [DEBUG][       Thread-251278][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:17:20,376 [DEBUG][       Thread-251278][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:17:20,376 [DEBUG][       Thread-251278][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 10:17:20,376 [DEBUG][       Thread-251278][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 10:17:20,376 [DEBUG][       Thread-251278][   transport.py][1871] : client lang: <none>
2025-06-13 10:17:20,376 [DEBUG][       Thread-251278][   transport.py][1871] : server lang: <none>
2025-06-13 10:17:20,376 [DEBUG][       Thread-251278][   transport.py][1871] : kex follows: False
2025-06-13 10:17:20,376 [DEBUG][       Thread-251278][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 10:17:20,376 [DEBUG][       Thread-251278][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 10:17:20,376 [DEBUG][       Thread-251278][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 10:17:20,376 [DEBUG][       Thread-251278][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 10:17:20,376 [DEBUG][       Thread-251278][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 10:17:20,376 [DEBUG][       Thread-251278][   transport.py][1871] : Compression: none
2025-06-13 10:17:20,376 [DEBUG][       Thread-251278][   transport.py][1871] : === End of kex handshake ===
2025-06-13 10:17:20,390 [DEBUG][       Thread-251278][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 10:17:20,390 [DEBUG][       Thread-251278][   transport.py][1871] : Switch to new keys ...
2025-06-13 10:17:20,390 [DEBUG][       Thread-251278][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 10:17:20,390 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 10:17:20,390 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 10:17:20,391 [DEBUG][       Thread-251278][   transport.py][1871] : userauth is OK
2025-06-13 10:17:20,415 [ INFO][       Thread-251278][   transport.py][1871] : Authentication (password) successful!
2025-06-13 10:17:20,415 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 10:17:21,009 [DEBUG][       Thread-251278][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 10:17:21,009 [DEBUG][       Thread-251278][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 10:17:21,053 [DEBUG][       Thread-251278][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 10:17:21,053 [DEBUG][       Thread-251278][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 10:17:21,056 [DEBUG][       Thread-251278][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 10:17:21,069 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 10:17:21,069 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 10:17:21,071 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 10:17:21,073 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 10:17:21,077 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 10:17:21,079 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 10:17:21,079 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 10:17:21,080 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 10:17:21,080 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.345079 -999.00   +8.90  18.52     53   +0.00 1 1 1 1 1   887    0 9.75 40.89 ----- 17.1 18.5 43.0 20.8 13.4 -27.9 12.2 -29.7 11.0 -28.5 12.2 -26.9
2025-06-13 10:17:21,080 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 10:17:21,080 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 10:17:21,080 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.345079
2025-06-13 10:17:21,080 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 10:17:21,081 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 10:17:21,081 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 10:17:21,081 [DEBUG][       Thread-251278][   transport.py][1871] : EOF in transport thread
2025-06-13 10:17:21,081 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 10:17:21,082 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 10:17:21,082 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T10:16:58', tmtdew=10.01, humidity=49.5, cloud=0.0, wind=14.79, temperature=9.02, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T08:16:54.826', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 10:17:21,166 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 10:17:21,180 [DEBUG][       Thread-251281][   transport.py][1871] : starting thread (client mode): 0x863ec880
2025-06-13 10:17:21,180 [DEBUG][       Thread-251281][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 10:17:21,195 [DEBUG][       Thread-251281][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 10:17:21,196 [ INFO][       Thread-251281][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 10:17:21,203 [DEBUG][       Thread-251281][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 10:17:21,203 [DEBUG][       Thread-251281][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 10:17:21,203 [DEBUG][       Thread-251281][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 10:17:21,203 [DEBUG][       Thread-251281][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:17:21,203 [DEBUG][       Thread-251281][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:17:21,203 [DEBUG][       Thread-251281][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:17:21,203 [DEBUG][       Thread-251281][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:17:21,203 [DEBUG][       Thread-251281][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 10:17:21,203 [DEBUG][       Thread-251281][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 10:17:21,203 [DEBUG][       Thread-251281][   transport.py][1871] : client lang: <none>
2025-06-13 10:17:21,203 [DEBUG][       Thread-251281][   transport.py][1871] : server lang: <none>
2025-06-13 10:17:21,203 [DEBUG][       Thread-251281][   transport.py][1871] : kex follows: False
2025-06-13 10:17:21,203 [DEBUG][       Thread-251281][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 10:17:21,204 [DEBUG][       Thread-251281][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 10:17:21,204 [DEBUG][       Thread-251281][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 10:17:21,204 [DEBUG][       Thread-251281][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 10:17:21,204 [DEBUG][       Thread-251281][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 10:17:21,204 [DEBUG][       Thread-251281][   transport.py][1871] : Compression: none
2025-06-13 10:17:21,204 [DEBUG][       Thread-251281][   transport.py][1871] : === End of kex handshake ===
2025-06-13 10:17:21,261 [DEBUG][       Thread-251281][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 10:17:21,262 [DEBUG][       Thread-251281][   transport.py][1871] : Switch to new keys ...
2025-06-13 10:17:21,262 [DEBUG][       Thread-251281][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 10:17:21,263 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 10:17:21,263 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 10:17:21,318 [DEBUG][       Thread-251281][   transport.py][1871] : userauth is OK
2025-06-13 10:17:21,318 [DEBUG][       Thread-251281][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 10:17:21,318 [DEBUG][       Thread-251281][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 10:17:21,318 [DEBUG][       Thread-251281][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 10:17:21,318 [DEBUG][       Thread-251281][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 10:17:21,337 [ INFO][       Thread-251281][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 10:17:21,337 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 10:17:21,338 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 10:17:22,367 [DEBUG][       Thread-251281][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 10:17:22,368 [DEBUG][       Thread-251281][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 10:17:22,416 [DEBUG][       Thread-251281][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 10:17:22,416 [DEBUG][       Thread-251281][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 10:17:22,430 [DEBUG][       Thread-251281][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 10:17:22,438 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 10:17:22,438 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 10:17:22,449 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 10:17:22,461 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 10:17:22,461 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 10:17:22,462 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 10:17:22,472 [DEBUG][       Thread-251281][   transport.py][1871] : EOF in transport thread
2025-06-13 10:17:23,889 [DEBUG][Thread-251283 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:17:24,972 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:17:24,972 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:17:32,472 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 10:17:32,472 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 10:17:32,472 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 10:17:32,475 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 10:17:32,905 [DEBUG][Thread-251284 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:17:32,951 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 10, 17, 30), 10.16, 49.1, 0.0, 18.58, 9.06, 0, 0, 0, 2, 0, 0),)
2025-06-13 10:17:32,951 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 10:17:30
2025-06-13 10:17:33,033 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 10:17:33,037 [DEBUG][       Thread-251285][   transport.py][1871] : starting thread (client mode): 0x842046d0
2025-06-13 10:17:33,037 [DEBUG][       Thread-251285][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 10:17:33,057 [DEBUG][       Thread-251285][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 10:17:33,057 [ INFO][       Thread-251285][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 10:17:33,058 [DEBUG][       Thread-251285][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 10:17:33,058 [DEBUG][       Thread-251285][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 10:17:33,058 [DEBUG][       Thread-251285][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 10:17:33,058 [DEBUG][       Thread-251285][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:17:33,058 [DEBUG][       Thread-251285][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:17:33,058 [DEBUG][       Thread-251285][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:17:33,058 [DEBUG][       Thread-251285][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:17:33,058 [DEBUG][       Thread-251285][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 10:17:33,058 [DEBUG][       Thread-251285][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 10:17:33,058 [DEBUG][       Thread-251285][   transport.py][1871] : client lang: <none>
2025-06-13 10:17:33,058 [DEBUG][       Thread-251285][   transport.py][1871] : server lang: <none>
2025-06-13 10:17:33,058 [DEBUG][       Thread-251285][   transport.py][1871] : kex follows: False
2025-06-13 10:17:33,058 [DEBUG][       Thread-251285][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 10:17:33,058 [DEBUG][       Thread-251285][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 10:17:33,058 [DEBUG][       Thread-251285][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 10:17:33,059 [DEBUG][       Thread-251285][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 10:17:33,059 [DEBUG][       Thread-251285][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 10:17:33,059 [DEBUG][       Thread-251285][   transport.py][1871] : Compression: none
2025-06-13 10:17:33,059 [DEBUG][       Thread-251285][   transport.py][1871] : === End of kex handshake ===
2025-06-13 10:17:33,066 [DEBUG][       Thread-251285][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 10:17:33,067 [DEBUG][       Thread-251285][   transport.py][1871] : Switch to new keys ...
2025-06-13 10:17:33,067 [DEBUG][       Thread-251285][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 10:17:33,067 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 10:17:33,067 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 10:17:33,068 [DEBUG][       Thread-251285][   transport.py][1871] : userauth is OK
2025-06-13 10:17:33,081 [ INFO][       Thread-251285][   transport.py][1871] : Authentication (password) successful!
2025-06-13 10:17:33,082 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 10:17:33,666 [DEBUG][       Thread-251285][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 10:17:33,666 [DEBUG][       Thread-251285][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 10:17:33,709 [DEBUG][       Thread-251285][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 10:17:33,709 [DEBUG][       Thread-251285][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 10:17:33,712 [DEBUG][       Thread-251285][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 10:17:33,716 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 10:17:33,717 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 10:17:33,718 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 10:17:33,720 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 10:17:33,724 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 10:17:33,726 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 10:17:33,726 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 10:17:33,727 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 10:17:33,727 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.345426 -999.00   +8.90  18.53     53   +0.00 1 1 1 1 1   887    0 9.70 43.76 ----- 17.9 18.5 50.8 19.4 13.4 -28.1 12.1 -29.1 11.0 -28.0 12.2 -27.0
2025-06-13 10:17:33,727 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 10:17:33,727 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 10:17:33,727 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.345426
2025-06-13 10:17:33,728 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 10:17:33,728 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 10:17:33,728 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 10:17:33,728 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 10:17:33,728 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 10:17:33,728 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T10:17:30', tmtdew=10.16, humidity=49.1, cloud=0.0, wind=18.58, temperature=9.06, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T08:17:24.806', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 10:17:33,729 [DEBUG][       Thread-251285][   transport.py][1871] : EOF in transport thread
2025-06-13 10:17:33,812 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 10:17:33,823 [DEBUG][       Thread-251288][   transport.py][1871] : starting thread (client mode): 0x863a5030
2025-06-13 10:17:33,823 [DEBUG][       Thread-251288][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 10:17:33,839 [DEBUG][       Thread-251288][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 10:17:33,839 [ INFO][       Thread-251288][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 10:17:33,847 [DEBUG][       Thread-251288][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 10:17:33,847 [DEBUG][       Thread-251288][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 10:17:33,847 [DEBUG][       Thread-251288][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 10:17:33,847 [DEBUG][       Thread-251288][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:17:33,847 [DEBUG][       Thread-251288][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:17:33,847 [DEBUG][       Thread-251288][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:17:33,847 [DEBUG][       Thread-251288][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:17:33,847 [DEBUG][       Thread-251288][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 10:17:33,847 [DEBUG][       Thread-251288][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 10:17:33,847 [DEBUG][       Thread-251288][   transport.py][1871] : client lang: <none>
2025-06-13 10:17:33,847 [DEBUG][       Thread-251288][   transport.py][1871] : server lang: <none>
2025-06-13 10:17:33,847 [DEBUG][       Thread-251288][   transport.py][1871] : kex follows: False
2025-06-13 10:17:33,847 [DEBUG][       Thread-251288][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 10:17:33,848 [DEBUG][       Thread-251288][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 10:17:33,848 [DEBUG][       Thread-251288][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 10:17:33,848 [DEBUG][       Thread-251288][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 10:17:33,848 [DEBUG][       Thread-251288][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 10:17:33,848 [DEBUG][       Thread-251288][   transport.py][1871] : Compression: none
2025-06-13 10:17:33,848 [DEBUG][       Thread-251288][   transport.py][1871] : === End of kex handshake ===
2025-06-13 10:17:33,906 [DEBUG][       Thread-251288][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 10:17:33,906 [DEBUG][       Thread-251288][   transport.py][1871] : Switch to new keys ...
2025-06-13 10:17:33,907 [DEBUG][       Thread-251288][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 10:17:33,907 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 10:17:33,907 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 10:17:33,967 [DEBUG][       Thread-251288][   transport.py][1871] : userauth is OK
2025-06-13 10:17:33,967 [DEBUG][       Thread-251288][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 10:17:33,967 [DEBUG][       Thread-251288][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 10:17:33,968 [DEBUG][       Thread-251288][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 10:17:33,968 [DEBUG][       Thread-251288][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 10:17:33,992 [ INFO][       Thread-251288][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 10:17:33,992 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 10:17:33,993 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 10:17:34,991 [DEBUG][       Thread-251288][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 10:17:34,991 [DEBUG][       Thread-251288][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 10:17:35,042 [DEBUG][       Thread-251288][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 10:17:35,042 [DEBUG][       Thread-251288][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 10:17:35,051 [DEBUG][       Thread-251288][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 10:17:35,061 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 10:17:35,062 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 10:17:35,070 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 10:17:35,079 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 10:17:35,079 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 10:17:35,079 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 10:17:35,092 [DEBUG][       Thread-251288][   transport.py][1871] : EOF in transport thread
2025-06-13 10:17:41,926 [DEBUG][Thread-251290 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:17:45,090 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 10:17:45,090 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 10:17:45,090 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 10:17:45,092 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 10:17:45,566 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 10, 17, 30), 10.16, 49.1, 0.0, 18.58, 9.06, 0, 0, 0, 2, 0, 0),)
2025-06-13 10:17:45,567 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 10:17:30
2025-06-13 10:17:45,648 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 10:17:45,654 [DEBUG][       Thread-251291][   transport.py][1871] : starting thread (client mode): 0x84204b20
2025-06-13 10:17:45,654 [DEBUG][       Thread-251291][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 10:17:45,674 [DEBUG][       Thread-251291][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 10:17:45,674 [ INFO][       Thread-251291][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 10:17:45,677 [DEBUG][       Thread-251291][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 10:17:45,677 [DEBUG][       Thread-251291][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 10:17:45,678 [DEBUG][       Thread-251291][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 10:17:45,678 [DEBUG][       Thread-251291][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:17:45,678 [DEBUG][       Thread-251291][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:17:45,678 [DEBUG][       Thread-251291][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:17:45,678 [DEBUG][       Thread-251291][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:17:45,678 [DEBUG][       Thread-251291][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 10:17:45,678 [DEBUG][       Thread-251291][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 10:17:45,678 [DEBUG][       Thread-251291][   transport.py][1871] : client lang: <none>
2025-06-13 10:17:45,678 [DEBUG][       Thread-251291][   transport.py][1871] : server lang: <none>
2025-06-13 10:17:45,678 [DEBUG][       Thread-251291][   transport.py][1871] : kex follows: False
2025-06-13 10:17:45,678 [DEBUG][       Thread-251291][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 10:17:45,678 [DEBUG][       Thread-251291][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 10:17:45,678 [DEBUG][       Thread-251291][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 10:17:45,678 [DEBUG][       Thread-251291][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 10:17:45,678 [DEBUG][       Thread-251291][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 10:17:45,678 [DEBUG][       Thread-251291][   transport.py][1871] : Compression: none
2025-06-13 10:17:45,678 [DEBUG][       Thread-251291][   transport.py][1871] : === End of kex handshake ===
2025-06-13 10:17:45,697 [DEBUG][       Thread-251291][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 10:17:45,697 [DEBUG][       Thread-251291][   transport.py][1871] : Switch to new keys ...
2025-06-13 10:17:45,698 [DEBUG][       Thread-251291][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 10:17:45,698 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 10:17:45,698 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 10:17:45,739 [DEBUG][       Thread-251291][   transport.py][1871] : userauth is OK
2025-06-13 10:17:45,763 [ INFO][       Thread-251291][   transport.py][1871] : Authentication (password) successful!
2025-06-13 10:17:45,764 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 10:17:46,437 [DEBUG][       Thread-251291][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 10:17:46,438 [DEBUG][       Thread-251291][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 10:17:46,481 [DEBUG][       Thread-251291][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 10:17:46,481 [DEBUG][       Thread-251291][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 10:17:46,484 [DEBUG][       Thread-251291][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 10:17:46,495 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 10:17:46,495 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 10:17:46,497 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 10:17:46,499 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 10:17:46,504 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 10:17:46,505 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 10:17:46,505 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 10:17:46,506 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 10:17:46,506 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.345426 -999.00   +8.90  18.53     53   +0.00 1 1 1 1 1   887    0 9.70 43.76 ----- 17.9 18.5 50.8 19.4 13.4 -28.1 12.1 -29.1 11.0 -28.0 12.2 -27.0
2025-06-13 10:17:46,506 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 10:17:46,506 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 10:17:46,506 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.345426
2025-06-13 10:17:46,507 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 10:17:46,507 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 10:17:46,507 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 10:17:46,507 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 10:17:46,507 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 10:17:46,507 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T10:17:30', tmtdew=10.16, humidity=49.1, cloud=0.0, wind=18.58, temperature=9.06, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T08:17:24.806', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 10:17:46,508 [DEBUG][       Thread-251291][   transport.py][1871] : EOF in transport thread
2025-06-13 10:17:46,591 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 10:17:46,603 [DEBUG][       Thread-251294][   transport.py][1871] : starting thread (client mode): 0x863eff70
2025-06-13 10:17:46,603 [DEBUG][       Thread-251294][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 10:17:46,618 [DEBUG][       Thread-251294][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 10:17:46,618 [ INFO][       Thread-251294][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 10:17:46,626 [DEBUG][       Thread-251294][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 10:17:46,626 [DEBUG][       Thread-251294][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 10:17:46,626 [DEBUG][       Thread-251294][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 10:17:46,626 [DEBUG][       Thread-251294][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:17:46,626 [DEBUG][       Thread-251294][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:17:46,626 [DEBUG][       Thread-251294][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:17:46,626 [DEBUG][       Thread-251294][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:17:46,626 [DEBUG][       Thread-251294][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 10:17:46,626 [DEBUG][       Thread-251294][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 10:17:46,626 [DEBUG][       Thread-251294][   transport.py][1871] : client lang: <none>
2025-06-13 10:17:46,626 [DEBUG][       Thread-251294][   transport.py][1871] : server lang: <none>
2025-06-13 10:17:46,626 [DEBUG][       Thread-251294][   transport.py][1871] : kex follows: False
2025-06-13 10:17:46,626 [DEBUG][       Thread-251294][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 10:17:46,626 [DEBUG][       Thread-251294][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 10:17:46,626 [DEBUG][       Thread-251294][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 10:17:46,626 [DEBUG][       Thread-251294][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 10:17:46,626 [DEBUG][       Thread-251294][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 10:17:46,626 [DEBUG][       Thread-251294][   transport.py][1871] : Compression: none
2025-06-13 10:17:46,627 [DEBUG][       Thread-251294][   transport.py][1871] : === End of kex handshake ===
2025-06-13 10:17:46,681 [DEBUG][       Thread-251294][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 10:17:46,681 [DEBUG][       Thread-251294][   transport.py][1871] : Switch to new keys ...
2025-06-13 10:17:46,681 [DEBUG][       Thread-251294][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 10:17:46,681 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 10:17:46,681 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 10:17:46,748 [DEBUG][       Thread-251294][   transport.py][1871] : userauth is OK
2025-06-13 10:17:46,748 [DEBUG][       Thread-251294][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 10:17:46,748 [DEBUG][       Thread-251294][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 10:17:46,748 [DEBUG][       Thread-251294][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 10:17:46,748 [DEBUG][       Thread-251294][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 10:17:46,765 [ INFO][       Thread-251294][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 10:17:46,765 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 10:17:46,765 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 10:17:47,816 [DEBUG][       Thread-251294][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 10:17:47,816 [DEBUG][       Thread-251294][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 10:17:47,867 [DEBUG][       Thread-251294][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 10:17:47,867 [DEBUG][       Thread-251294][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 10:17:47,878 [DEBUG][       Thread-251294][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 10:17:47,888 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 10:17:47,889 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 10:17:47,897 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 10:17:47,909 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 10:17:47,909 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 10:17:47,909 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 10:17:47,918 [DEBUG][       Thread-251294][   transport.py][1871] : EOF in transport thread
2025-06-13 10:17:50,966 [DEBUG][Thread-251296 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:17:57,920 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 10:17:57,920 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 10:17:57,920 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 10:17:57,923 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 10:17:58,381 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 10, 17, 30), 10.16, 49.1, 0.0, 18.58, 9.06, 0, 0, 0, 2, 0, 0),)
2025-06-13 10:17:58,381 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 10:17:30
2025-06-13 10:17:58,462 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 10:17:58,466 [DEBUG][       Thread-251297][   transport.py][1871] : starting thread (client mode): 0x84204700
2025-06-13 10:17:58,467 [DEBUG][       Thread-251297][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 10:17:58,481 [DEBUG][       Thread-251297][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 10:17:58,481 [ INFO][       Thread-251297][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 10:17:58,485 [DEBUG][       Thread-251297][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 10:17:58,485 [DEBUG][       Thread-251297][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 10:17:58,485 [DEBUG][       Thread-251297][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 10:17:58,485 [DEBUG][       Thread-251297][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:17:58,485 [DEBUG][       Thread-251297][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:17:58,485 [DEBUG][       Thread-251297][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:17:58,485 [DEBUG][       Thread-251297][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:17:58,485 [DEBUG][       Thread-251297][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 10:17:58,485 [DEBUG][       Thread-251297][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 10:17:58,485 [DEBUG][       Thread-251297][   transport.py][1871] : client lang: <none>
2025-06-13 10:17:58,485 [DEBUG][       Thread-251297][   transport.py][1871] : server lang: <none>
2025-06-13 10:17:58,485 [DEBUG][       Thread-251297][   transport.py][1871] : kex follows: False
2025-06-13 10:17:58,485 [DEBUG][       Thread-251297][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 10:17:58,485 [DEBUG][       Thread-251297][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 10:17:58,485 [DEBUG][       Thread-251297][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 10:17:58,485 [DEBUG][       Thread-251297][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 10:17:58,485 [DEBUG][       Thread-251297][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 10:17:58,485 [DEBUG][       Thread-251297][   transport.py][1871] : Compression: none
2025-06-13 10:17:58,485 [DEBUG][       Thread-251297][   transport.py][1871] : === End of kex handshake ===
2025-06-13 10:17:58,502 [DEBUG][       Thread-251297][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 10:17:58,502 [DEBUG][       Thread-251297][   transport.py][1871] : Switch to new keys ...
2025-06-13 10:17:58,503 [DEBUG][       Thread-251297][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 10:17:58,503 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 10:17:58,503 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 10:17:58,504 [DEBUG][       Thread-251297][   transport.py][1871] : userauth is OK
2025-06-13 10:17:58,528 [ INFO][       Thread-251297][   transport.py][1871] : Authentication (password) successful!
2025-06-13 10:17:58,529 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 10:17:59,101 [DEBUG][       Thread-251297][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 10:17:59,101 [DEBUG][       Thread-251297][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 10:17:59,145 [DEBUG][       Thread-251297][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 10:17:59,145 [DEBUG][       Thread-251297][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 10:17:59,148 [DEBUG][       Thread-251297][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 10:17:59,162 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 10:17:59,163 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 10:17:59,164 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 10:17:59,165 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 10:17:59,170 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 10:17:59,172 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 10:17:59,172 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 10:17:59,172 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 10:17:59,172 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.345426 -999.00   +8.90  18.53     53   +0.00 1 1 1 1 1   887    0 9.70 43.76 ----- 17.9 18.5 50.8 19.4 13.4 -28.1 12.1 -29.1 11.0 -28.0 12.2 -27.0
2025-06-13 10:17:59,173 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 10:17:59,173 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 10:17:59,173 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.345426
2025-06-13 10:17:59,173 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 10:17:59,174 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 10:17:59,174 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 10:17:59,174 [DEBUG][       Thread-251297][   transport.py][1871] : EOF in transport thread
2025-06-13 10:17:59,174 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 10:17:59,175 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 10:17:59,175 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T10:17:30', tmtdew=10.16, humidity=49.1, cloud=0.0, wind=18.58, temperature=9.06, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T08:17:24.806', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 10:17:59,257 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 10:17:59,267 [DEBUG][       Thread-251300][   transport.py][1871] : starting thread (client mode): 0x84206e90
2025-06-13 10:17:59,267 [DEBUG][       Thread-251300][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 10:17:59,288 [DEBUG][       Thread-251300][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 10:17:59,288 [ INFO][       Thread-251300][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 10:17:59,295 [DEBUG][       Thread-251300][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 10:17:59,295 [DEBUG][       Thread-251300][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 10:17:59,295 [DEBUG][       Thread-251300][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 10:17:59,295 [DEBUG][       Thread-251300][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:17:59,295 [DEBUG][       Thread-251300][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:17:59,296 [DEBUG][       Thread-251300][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:17:59,296 [DEBUG][       Thread-251300][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:17:59,296 [DEBUG][       Thread-251300][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 10:17:59,296 [DEBUG][       Thread-251300][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 10:17:59,296 [DEBUG][       Thread-251300][   transport.py][1871] : client lang: <none>
2025-06-13 10:17:59,296 [DEBUG][       Thread-251300][   transport.py][1871] : server lang: <none>
2025-06-13 10:17:59,296 [DEBUG][       Thread-251300][   transport.py][1871] : kex follows: False
2025-06-13 10:17:59,296 [DEBUG][       Thread-251300][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 10:17:59,296 [DEBUG][       Thread-251300][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 10:17:59,296 [DEBUG][       Thread-251300][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 10:17:59,296 [DEBUG][       Thread-251300][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 10:17:59,296 [DEBUG][       Thread-251300][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 10:17:59,296 [DEBUG][       Thread-251300][   transport.py][1871] : Compression: none
2025-06-13 10:17:59,296 [DEBUG][       Thread-251300][   transport.py][1871] : === End of kex handshake ===
2025-06-13 10:17:59,358 [DEBUG][       Thread-251300][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 10:17:59,358 [DEBUG][       Thread-251300][   transport.py][1871] : Switch to new keys ...
2025-06-13 10:17:59,359 [DEBUG][       Thread-251300][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 10:17:59,359 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 10:17:59,359 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 10:17:59,414 [DEBUG][       Thread-251300][   transport.py][1871] : userauth is OK
2025-06-13 10:17:59,414 [DEBUG][       Thread-251300][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 10:17:59,414 [DEBUG][       Thread-251300][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 10:17:59,414 [DEBUG][       Thread-251300][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 10:17:59,414 [DEBUG][       Thread-251300][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 10:17:59,433 [ INFO][       Thread-251300][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 10:17:59,433 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 10:17:59,433 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 10:17:59,985 [DEBUG][Thread-251302 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:18:00,488 [DEBUG][       Thread-251300][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 10:18:00,488 [DEBUG][       Thread-251300][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 10:18:00,539 [DEBUG][       Thread-251300][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 10:18:00,540 [DEBUG][       Thread-251300][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 10:18:00,549 [DEBUG][       Thread-251300][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 10:18:00,557 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 10:18:00,557 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 10:18:00,566 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 10:18:00,575 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 10:18:00,575 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 10:18:00,575 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 10:18:00,583 [DEBUG][       Thread-251300][   transport.py][1871] : EOF in transport thread
2025-06-13 10:18:02,533 [DEBUG][Thread-251303 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:18:03,610 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:18:03,611 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:18:05,807 [DEBUG][Thread-251304 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:18:09,002 [DEBUG][Thread-251305 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:18:10,586 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 10:18:10,586 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 10:18:10,586 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 10:18:10,588 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 10:18:11,040 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 10, 18, 1), 10.13, 49.22, 0.0, 16.3, 9.06, 0, 0, 0, 2, 0, 0),)
2025-06-13 10:18:11,040 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 10:18:01
2025-06-13 10:18:11,120 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 10:18:11,125 [DEBUG][       Thread-251306][   transport.py][1871] : starting thread (client mode): 0x867fceb0
2025-06-13 10:18:11,125 [DEBUG][       Thread-251306][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 10:18:11,147 [DEBUG][       Thread-251306][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 10:18:11,147 [ INFO][       Thread-251306][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 10:18:11,149 [DEBUG][       Thread-251306][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 10:18:11,150 [DEBUG][       Thread-251306][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 10:18:11,150 [DEBUG][       Thread-251306][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 10:18:11,150 [DEBUG][       Thread-251306][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:18:11,150 [DEBUG][       Thread-251306][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:18:11,150 [DEBUG][       Thread-251306][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:18:11,150 [DEBUG][       Thread-251306][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:18:11,150 [DEBUG][       Thread-251306][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 10:18:11,150 [DEBUG][       Thread-251306][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 10:18:11,150 [DEBUG][       Thread-251306][   transport.py][1871] : client lang: <none>
2025-06-13 10:18:11,150 [DEBUG][       Thread-251306][   transport.py][1871] : server lang: <none>
2025-06-13 10:18:11,150 [DEBUG][       Thread-251306][   transport.py][1871] : kex follows: False
2025-06-13 10:18:11,150 [DEBUG][       Thread-251306][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 10:18:11,150 [DEBUG][       Thread-251306][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 10:18:11,150 [DEBUG][       Thread-251306][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 10:18:11,150 [DEBUG][       Thread-251306][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 10:18:11,150 [DEBUG][       Thread-251306][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 10:18:11,150 [DEBUG][       Thread-251306][   transport.py][1871] : Compression: none
2025-06-13 10:18:11,150 [DEBUG][       Thread-251306][   transport.py][1871] : === End of kex handshake ===
2025-06-13 10:18:11,163 [DEBUG][       Thread-251306][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 10:18:11,164 [DEBUG][       Thread-251306][   transport.py][1871] : Switch to new keys ...
2025-06-13 10:18:11,164 [DEBUG][       Thread-251306][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 10:18:11,165 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 10:18:11,165 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 10:18:11,166 [DEBUG][       Thread-251306][   transport.py][1871] : userauth is OK
2025-06-13 10:18:11,190 [ INFO][       Thread-251306][   transport.py][1871] : Authentication (password) successful!
2025-06-13 10:18:11,190 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 10:18:11,849 [DEBUG][       Thread-251306][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 10:18:11,849 [DEBUG][       Thread-251306][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 10:18:11,893 [DEBUG][       Thread-251306][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 10:18:11,893 [DEBUG][       Thread-251306][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 10:18:11,896 [DEBUG][       Thread-251306][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 10:18:11,907 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 10:18:11,907 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 10:18:11,909 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 10:18:11,910 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 10:18:11,915 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 10:18:11,917 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 10:18:11,917 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 10:18:11,918 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 10:18:11,918 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.345773 -999.00   +8.90  21.16     54   +0.10 1 1 1 1 1   887    0 9.88 47.66 ----- 21.5 21.2 55.2 22.9 13.5 -28.4 12.3 -29.5 11.0 -28.1 12.3 -26.3
2025-06-13 10:18:11,918 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 10:18:11,918 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 10:18:11,918 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.345773
2025-06-13 10:18:11,919 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 10:18:11,919 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 10:18:11,919 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 10:18:11,919 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 10:18:11,919 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 10:18:11,919 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T10:18:01', tmtdew=10.13, humidity=49.22, cloud=0.0, wind=16.3, temperature=9.06, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T08:17:54.787', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 10:18:11,920 [DEBUG][       Thread-251306][   transport.py][1871] : EOF in transport thread
2025-06-13 10:18:11,996 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 10:18:12,008 [DEBUG][       Thread-251309][   transport.py][1871] : starting thread (client mode): 0x867b70d0
2025-06-13 10:18:12,008 [DEBUG][       Thread-251309][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 10:18:12,028 [DEBUG][       Thread-251309][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 10:18:12,028 [ INFO][       Thread-251309][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 10:18:12,035 [DEBUG][       Thread-251309][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 10:18:12,036 [DEBUG][       Thread-251309][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 10:18:12,036 [DEBUG][       Thread-251309][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 10:18:12,036 [DEBUG][       Thread-251309][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:18:12,036 [DEBUG][       Thread-251309][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:18:12,036 [DEBUG][       Thread-251309][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:18:12,036 [DEBUG][       Thread-251309][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:18:12,036 [DEBUG][       Thread-251309][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 10:18:12,036 [DEBUG][       Thread-251309][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 10:18:12,036 [DEBUG][       Thread-251309][   transport.py][1871] : client lang: <none>
2025-06-13 10:18:12,036 [DEBUG][       Thread-251309][   transport.py][1871] : server lang: <none>
2025-06-13 10:18:12,036 [DEBUG][       Thread-251309][   transport.py][1871] : kex follows: False
2025-06-13 10:18:12,036 [DEBUG][       Thread-251309][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 10:18:12,036 [DEBUG][       Thread-251309][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 10:18:12,036 [DEBUG][       Thread-251309][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 10:18:12,036 [DEBUG][       Thread-251309][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 10:18:12,036 [DEBUG][       Thread-251309][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 10:18:12,037 [DEBUG][       Thread-251309][   transport.py][1871] : Compression: none
2025-06-13 10:18:12,037 [DEBUG][       Thread-251309][   transport.py][1871] : === End of kex handshake ===
2025-06-13 10:18:12,096 [DEBUG][       Thread-251309][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 10:18:12,097 [DEBUG][       Thread-251309][   transport.py][1871] : Switch to new keys ...
2025-06-13 10:18:12,097 [DEBUG][       Thread-251309][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 10:18:12,098 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 10:18:12,098 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 10:18:12,154 [DEBUG][       Thread-251309][   transport.py][1871] : userauth is OK
2025-06-13 10:18:12,154 [DEBUG][       Thread-251309][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 10:18:12,154 [DEBUG][       Thread-251309][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 10:18:12,154 [DEBUG][       Thread-251309][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 10:18:12,155 [DEBUG][       Thread-251309][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 10:18:12,173 [ INFO][       Thread-251309][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 10:18:12,173 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 10:18:12,174 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 10:18:13,182 [DEBUG][       Thread-251309][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 10:18:13,182 [DEBUG][       Thread-251309][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 10:18:13,236 [DEBUG][       Thread-251309][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 10:18:13,236 [DEBUG][       Thread-251309][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 10:18:13,244 [DEBUG][       Thread-251309][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 10:18:13,255 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 10:18:13,255 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 10:18:13,267 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 10:18:13,279 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 10:18:13,279 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 10:18:13,279 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 10:18:13,290 [DEBUG][       Thread-251309][   transport.py][1871] : EOF in transport thread
2025-06-13 10:18:18,021 [DEBUG][Thread-251311 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:18:23,289 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 10:18:23,289 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 10:18:23,289 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 10:18:23,292 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 10:18:23,754 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 10, 18, 1), 10.13, 49.22, 0.0, 16.3, 9.06, 0, 0, 0, 2, 0, 0),)
2025-06-13 10:18:23,754 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 10:18:01
2025-06-13 10:18:23,836 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 10:18:23,840 [DEBUG][       Thread-251312][   transport.py][1871] : starting thread (client mode): 0x8636b100
2025-06-13 10:18:23,840 [DEBUG][       Thread-251312][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 10:18:23,860 [DEBUG][       Thread-251312][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 10:18:23,860 [ INFO][       Thread-251312][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 10:18:23,863 [DEBUG][       Thread-251312][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 10:18:23,863 [DEBUG][       Thread-251312][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 10:18:23,864 [DEBUG][       Thread-251312][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 10:18:23,864 [DEBUG][       Thread-251312][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:18:23,864 [DEBUG][       Thread-251312][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:18:23,864 [DEBUG][       Thread-251312][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:18:23,864 [DEBUG][       Thread-251312][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:18:23,864 [DEBUG][       Thread-251312][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 10:18:23,864 [DEBUG][       Thread-251312][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 10:18:23,864 [DEBUG][       Thread-251312][   transport.py][1871] : client lang: <none>
2025-06-13 10:18:23,864 [DEBUG][       Thread-251312][   transport.py][1871] : server lang: <none>
2025-06-13 10:18:23,864 [DEBUG][       Thread-251312][   transport.py][1871] : kex follows: False
2025-06-13 10:18:23,864 [DEBUG][       Thread-251312][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 10:18:23,864 [DEBUG][       Thread-251312][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 10:18:23,864 [DEBUG][       Thread-251312][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 10:18:23,864 [DEBUG][       Thread-251312][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 10:18:23,864 [DEBUG][       Thread-251312][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 10:18:23,864 [DEBUG][       Thread-251312][   transport.py][1871] : Compression: none
2025-06-13 10:18:23,864 [DEBUG][       Thread-251312][   transport.py][1871] : === End of kex handshake ===
2025-06-13 10:18:23,882 [DEBUG][       Thread-251312][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 10:18:23,882 [DEBUG][       Thread-251312][   transport.py][1871] : Switch to new keys ...
2025-06-13 10:18:23,883 [DEBUG][       Thread-251312][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 10:18:23,883 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 10:18:23,883 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 10:18:23,884 [DEBUG][       Thread-251312][   transport.py][1871] : userauth is OK
2025-06-13 10:18:23,909 [ INFO][       Thread-251312][   transport.py][1871] : Authentication (password) successful!
2025-06-13 10:18:23,909 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 10:18:24,531 [DEBUG][       Thread-251312][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 10:18:24,531 [DEBUG][       Thread-251312][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 10:18:24,573 [DEBUG][       Thread-251312][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 10:18:24,573 [DEBUG][       Thread-251312][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 10:18:24,576 [DEBUG][       Thread-251312][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 10:18:24,587 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 10:18:24,587 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 10:18:24,589 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 10:18:24,591 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 10:18:24,596 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 10:18:24,598 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 10:18:24,598 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 10:18:24,598 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 10:18:24,599 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.345773 -999.00   +8.90  21.16     54   +0.10 1 1 1 1 1   887    0 9.88 47.66 ----- 21.5 21.2 55.2 22.9 13.5 -28.4 12.3 -29.5 11.0 -28.1 12.3 -26.3
2025-06-13 10:18:24,599 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 10:18:24,599 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 10:18:24,599 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.345773
2025-06-13 10:18:24,599 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 10:18:24,600 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 10:18:24,600 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 10:18:24,600 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 10:18:24,600 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 10:18:24,600 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T10:18:01', tmtdew=10.13, humidity=49.22, cloud=0.0, wind=16.3, temperature=9.06, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T08:17:54.787', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 10:18:24,600 [DEBUG][       Thread-251312][   transport.py][1871] : EOF in transport thread
2025-06-13 10:18:24,684 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 10:18:24,703 [DEBUG][       Thread-251315][   transport.py][1871] : starting thread (client mode): 0x863a45e0
2025-06-13 10:18:24,703 [DEBUG][       Thread-251315][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 10:18:24,718 [DEBUG][       Thread-251315][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 10:18:24,718 [ INFO][       Thread-251315][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 10:18:24,726 [DEBUG][       Thread-251315][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 10:18:24,726 [DEBUG][       Thread-251315][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 10:18:24,726 [DEBUG][       Thread-251315][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 10:18:24,726 [DEBUG][       Thread-251315][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:18:24,726 [DEBUG][       Thread-251315][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:18:24,726 [DEBUG][       Thread-251315][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:18:24,726 [DEBUG][       Thread-251315][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:18:24,726 [DEBUG][       Thread-251315][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 10:18:24,726 [DEBUG][       Thread-251315][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 10:18:24,726 [DEBUG][       Thread-251315][   transport.py][1871] : client lang: <none>
2025-06-13 10:18:24,726 [DEBUG][       Thread-251315][   transport.py][1871] : server lang: <none>
2025-06-13 10:18:24,726 [DEBUG][       Thread-251315][   transport.py][1871] : kex follows: False
2025-06-13 10:18:24,726 [DEBUG][       Thread-251315][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 10:18:24,727 [DEBUG][       Thread-251315][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 10:18:24,727 [DEBUG][       Thread-251315][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 10:18:24,727 [DEBUG][       Thread-251315][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 10:18:24,727 [DEBUG][       Thread-251315][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 10:18:24,727 [DEBUG][       Thread-251315][   transport.py][1871] : Compression: none
2025-06-13 10:18:24,727 [DEBUG][       Thread-251315][   transport.py][1871] : === End of kex handshake ===
2025-06-13 10:18:24,790 [DEBUG][       Thread-251315][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 10:18:24,790 [DEBUG][       Thread-251315][   transport.py][1871] : Switch to new keys ...
2025-06-13 10:18:24,791 [DEBUG][       Thread-251315][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 10:18:24,791 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 10:18:24,791 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 10:18:24,850 [DEBUG][       Thread-251315][   transport.py][1871] : userauth is OK
2025-06-13 10:18:24,850 [DEBUG][       Thread-251315][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 10:18:24,850 [DEBUG][       Thread-251315][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 10:18:24,850 [DEBUG][       Thread-251315][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 10:18:24,850 [DEBUG][       Thread-251315][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 10:18:24,879 [ INFO][       Thread-251315][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 10:18:24,879 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 10:18:24,879 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 10:18:25,141 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:18:25,142 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:18:25,884 [DEBUG][       Thread-251315][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 10:18:25,884 [DEBUG][       Thread-251315][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 10:18:25,934 [DEBUG][       Thread-251315][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 10:18:25,934 [DEBUG][       Thread-251315][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 10:18:25,946 [DEBUG][       Thread-251315][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 10:18:25,954 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 10:18:25,955 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 10:18:25,963 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 10:18:25,972 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 10:18:25,972 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 10:18:25,972 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 10:18:25,981 [DEBUG][       Thread-251315][   transport.py][1871] : EOF in transport thread
2025-06-13 10:18:27,051 [DEBUG][Thread-251317 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:18:35,983 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 10:18:35,983 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 10:18:35,983 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 10:18:35,985 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 10:18:36,068 [DEBUG][Thread-251318 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:18:36,466 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 10, 18, 33), 10.1, 49.18, 0.0, 16.41, 9.03, 0, 0, 0, 2, 0, 0),)
2025-06-13 10:18:36,466 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 10:18:33
2025-06-13 10:18:36,546 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 10:18:36,552 [DEBUG][       Thread-251319][   transport.py][1871] : starting thread (client mode): 0x863be500
2025-06-13 10:18:36,552 [DEBUG][       Thread-251319][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 10:18:36,573 [DEBUG][       Thread-251319][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 10:18:36,573 [ INFO][       Thread-251319][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 10:18:36,576 [DEBUG][       Thread-251319][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 10:18:36,576 [DEBUG][       Thread-251319][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 10:18:36,576 [DEBUG][       Thread-251319][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 10:18:36,576 [DEBUG][       Thread-251319][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:18:36,576 [DEBUG][       Thread-251319][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:18:36,576 [DEBUG][       Thread-251319][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:18:36,576 [DEBUG][       Thread-251319][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:18:36,576 [DEBUG][       Thread-251319][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 10:18:36,576 [DEBUG][       Thread-251319][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 10:18:36,576 [DEBUG][       Thread-251319][   transport.py][1871] : client lang: <none>
2025-06-13 10:18:36,576 [DEBUG][       Thread-251319][   transport.py][1871] : server lang: <none>
2025-06-13 10:18:36,576 [DEBUG][       Thread-251319][   transport.py][1871] : kex follows: False
2025-06-13 10:18:36,576 [DEBUG][       Thread-251319][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 10:18:36,576 [DEBUG][       Thread-251319][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 10:18:36,576 [DEBUG][       Thread-251319][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 10:18:36,576 [DEBUG][       Thread-251319][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 10:18:36,576 [DEBUG][       Thread-251319][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 10:18:36,576 [DEBUG][       Thread-251319][   transport.py][1871] : Compression: none
2025-06-13 10:18:36,576 [DEBUG][       Thread-251319][   transport.py][1871] : === End of kex handshake ===
2025-06-13 10:18:36,595 [DEBUG][       Thread-251319][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 10:18:36,596 [DEBUG][       Thread-251319][   transport.py][1871] : Switch to new keys ...
2025-06-13 10:18:36,596 [DEBUG][       Thread-251319][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 10:18:36,596 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 10:18:36,597 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 10:18:36,598 [DEBUG][       Thread-251319][   transport.py][1871] : userauth is OK
2025-06-13 10:18:36,611 [ INFO][       Thread-251319][   transport.py][1871] : Authentication (password) successful!
2025-06-13 10:18:36,611 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 10:18:37,282 [DEBUG][       Thread-251319][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 10:18:37,282 [DEBUG][       Thread-251319][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 10:18:37,325 [DEBUG][       Thread-251319][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 10:18:37,325 [DEBUG][       Thread-251319][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 10:18:37,328 [DEBUG][       Thread-251319][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 10:18:37,340 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 10:18:37,340 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 10:18:37,342 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 10:18:37,344 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 10:18:37,349 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 10:18:37,350 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 10:18:37,350 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 10:18:37,351 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 10:18:37,351 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.345773 -999.00   +8.90  21.16     54   +0.10 1 1 1 1 1   887    0 9.88 47.66 ----- 21.5 21.2 55.2 22.9 13.5 -28.4 12.3 -29.5 11.0 -28.1 12.3 -26.3
2025-06-13 10:18:37,351 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 10:18:37,351 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 10:18:37,351 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.345773
2025-06-13 10:18:37,352 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 10:18:37,352 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 10:18:37,352 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 10:18:37,352 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 10:18:37,352 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 10:18:37,352 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T10:18:33', tmtdew=10.1, humidity=49.18, cloud=0.0, wind=16.41, temperature=9.03, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T08:17:54.787', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 10:18:37,353 [DEBUG][       Thread-251319][   transport.py][1871] : EOF in transport thread
2025-06-13 10:18:37,435 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 10:18:37,449 [DEBUG][       Thread-251322][   transport.py][1871] : starting thread (client mode): 0x863cae60
2025-06-13 10:18:37,449 [DEBUG][       Thread-251322][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 10:18:37,464 [DEBUG][       Thread-251322][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 10:18:37,464 [ INFO][       Thread-251322][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 10:18:37,472 [DEBUG][       Thread-251322][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 10:18:37,472 [DEBUG][       Thread-251322][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 10:18:37,473 [DEBUG][       Thread-251322][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 10:18:37,473 [DEBUG][       Thread-251322][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:18:37,473 [DEBUG][       Thread-251322][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:18:37,473 [DEBUG][       Thread-251322][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:18:37,473 [DEBUG][       Thread-251322][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:18:37,473 [DEBUG][       Thread-251322][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 10:18:37,473 [DEBUG][       Thread-251322][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 10:18:37,473 [DEBUG][       Thread-251322][   transport.py][1871] : client lang: <none>
2025-06-13 10:18:37,473 [DEBUG][       Thread-251322][   transport.py][1871] : server lang: <none>
2025-06-13 10:18:37,473 [DEBUG][       Thread-251322][   transport.py][1871] : kex follows: False
2025-06-13 10:18:37,473 [DEBUG][       Thread-251322][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 10:18:37,473 [DEBUG][       Thread-251322][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 10:18:37,473 [DEBUG][       Thread-251322][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 10:18:37,473 [DEBUG][       Thread-251322][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 10:18:37,473 [DEBUG][       Thread-251322][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 10:18:37,473 [DEBUG][       Thread-251322][   transport.py][1871] : Compression: none
2025-06-13 10:18:37,473 [DEBUG][       Thread-251322][   transport.py][1871] : === End of kex handshake ===
2025-06-13 10:18:37,535 [DEBUG][       Thread-251322][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 10:18:37,536 [DEBUG][       Thread-251322][   transport.py][1871] : Switch to new keys ...
2025-06-13 10:18:37,536 [DEBUG][       Thread-251322][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 10:18:37,537 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 10:18:37,537 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 10:18:37,602 [DEBUG][       Thread-251322][   transport.py][1871] : userauth is OK
2025-06-13 10:18:37,603 [DEBUG][       Thread-251322][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 10:18:37,603 [DEBUG][       Thread-251322][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 10:18:37,603 [DEBUG][       Thread-251322][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 10:18:37,603 [DEBUG][       Thread-251322][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 10:18:37,627 [ INFO][       Thread-251322][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 10:18:37,627 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 10:18:37,628 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 10:18:38,646 [DEBUG][       Thread-251322][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 10:18:38,646 [DEBUG][       Thread-251322][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 10:18:38,696 [DEBUG][       Thread-251322][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 10:18:38,696 [DEBUG][       Thread-251322][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 10:18:38,705 [DEBUG][       Thread-251322][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 10:18:38,714 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 10:18:38,714 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 10:18:38,722 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 10:18:38,731 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 10:18:38,731 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 10:18:38,732 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 10:18:38,740 [DEBUG][       Thread-251322][   transport.py][1871] : EOF in transport thread
2025-06-13 10:18:45,084 [DEBUG][Thread-251324 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:18:48,742 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 10:18:48,742 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 10:18:48,743 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 10:18:48,745 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 10:18:49,198 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 10, 18, 33), 10.1, 49.18, 0.0, 16.41, 9.03, 0, 0, 0, 2, 0, 0),)
2025-06-13 10:18:49,198 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 10:18:33
2025-06-13 10:18:49,280 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 10:18:49,380 [DEBUG][       Thread-251325][   transport.py][1871] : starting thread (client mode): 0x86368d90
2025-06-13 10:18:49,380 [DEBUG][       Thread-251325][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 10:18:49,395 [DEBUG][       Thread-251325][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 10:18:49,395 [ INFO][       Thread-251325][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 10:18:49,398 [DEBUG][       Thread-251325][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 10:18:49,399 [DEBUG][       Thread-251325][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 10:18:49,399 [DEBUG][       Thread-251325][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 10:18:49,399 [DEBUG][       Thread-251325][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:18:49,399 [DEBUG][       Thread-251325][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:18:49,399 [DEBUG][       Thread-251325][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:18:49,399 [DEBUG][       Thread-251325][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:18:49,399 [DEBUG][       Thread-251325][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 10:18:49,399 [DEBUG][       Thread-251325][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 10:18:49,399 [DEBUG][       Thread-251325][   transport.py][1871] : client lang: <none>
2025-06-13 10:18:49,399 [DEBUG][       Thread-251325][   transport.py][1871] : server lang: <none>
2025-06-13 10:18:49,399 [DEBUG][       Thread-251325][   transport.py][1871] : kex follows: False
2025-06-13 10:18:49,399 [DEBUG][       Thread-251325][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 10:18:49,399 [DEBUG][       Thread-251325][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 10:18:49,399 [DEBUG][       Thread-251325][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 10:18:49,400 [DEBUG][       Thread-251325][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 10:18:49,400 [DEBUG][       Thread-251325][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 10:18:49,400 [DEBUG][       Thread-251325][   transport.py][1871] : Compression: none
2025-06-13 10:18:49,400 [DEBUG][       Thread-251325][   transport.py][1871] : === End of kex handshake ===
2025-06-13 10:18:49,416 [DEBUG][       Thread-251325][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 10:18:49,417 [DEBUG][       Thread-251325][   transport.py][1871] : Switch to new keys ...
2025-06-13 10:18:49,417 [DEBUG][       Thread-251325][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 10:18:49,417 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 10:18:49,418 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 10:18:49,419 [DEBUG][       Thread-251325][   transport.py][1871] : userauth is OK
2025-06-13 10:18:49,443 [ INFO][       Thread-251325][   transport.py][1871] : Authentication (password) successful!
2025-06-13 10:18:49,443 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 10:18:50,020 [DEBUG][       Thread-251325][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 10:18:50,020 [DEBUG][       Thread-251325][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 10:18:50,061 [DEBUG][       Thread-251325][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 10:18:50,061 [DEBUG][       Thread-251325][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 10:18:50,064 [DEBUG][       Thread-251325][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 10:18:50,075 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 10:18:50,076 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 10:18:50,077 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 10:18:50,079 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 10:18:50,083 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 10:18:50,085 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 10:18:50,085 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 10:18:50,086 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 10:18:50,086 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.346121 -999.00   +8.90  17.58     54   +0.10 1 1 1 1 1   887    0 10.01 52.56 ----- 17.0 17.6 50.6 25.3 13.5 -28.2 12.1 -30.1 11.0 -28.1 12.3 -26.9
2025-06-13 10:18:50,086 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 10:18:50,086 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 10:18:50,086 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.346121
2025-06-13 10:18:50,086 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 10:18:50,087 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 10:18:50,087 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 10:18:50,087 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 10:18:50,087 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 10:18:50,087 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T10:18:33', tmtdew=10.1, humidity=49.18, cloud=0.0, wind=16.41, temperature=9.03, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T08:18:24.854', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 10:18:50,088 [DEBUG][       Thread-251325][   transport.py][1871] : EOF in transport thread
2025-06-13 10:18:50,171 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 10:18:50,185 [DEBUG][       Thread-251328][   transport.py][1871] : starting thread (client mode): 0x863a7220
2025-06-13 10:18:50,185 [DEBUG][       Thread-251328][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 10:18:50,200 [DEBUG][       Thread-251328][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 10:18:50,200 [ INFO][       Thread-251328][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 10:18:50,208 [DEBUG][       Thread-251328][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 10:18:50,208 [DEBUG][       Thread-251328][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 10:18:50,208 [DEBUG][       Thread-251328][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 10:18:50,208 [DEBUG][       Thread-251328][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:18:50,208 [DEBUG][       Thread-251328][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:18:50,208 [DEBUG][       Thread-251328][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:18:50,208 [DEBUG][       Thread-251328][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:18:50,208 [DEBUG][       Thread-251328][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 10:18:50,208 [DEBUG][       Thread-251328][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 10:18:50,208 [DEBUG][       Thread-251328][   transport.py][1871] : client lang: <none>
2025-06-13 10:18:50,208 [DEBUG][       Thread-251328][   transport.py][1871] : server lang: <none>
2025-06-13 10:18:50,209 [DEBUG][       Thread-251328][   transport.py][1871] : kex follows: False
2025-06-13 10:18:50,209 [DEBUG][       Thread-251328][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 10:18:50,209 [DEBUG][       Thread-251328][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 10:18:50,209 [DEBUG][       Thread-251328][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 10:18:50,209 [DEBUG][       Thread-251328][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 10:18:50,209 [DEBUG][       Thread-251328][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 10:18:50,209 [DEBUG][       Thread-251328][   transport.py][1871] : Compression: none
2025-06-13 10:18:50,209 [DEBUG][       Thread-251328][   transport.py][1871] : === End of kex handshake ===
2025-06-13 10:18:50,273 [DEBUG][       Thread-251328][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 10:18:50,273 [DEBUG][       Thread-251328][   transport.py][1871] : Switch to new keys ...
2025-06-13 10:18:50,274 [DEBUG][       Thread-251328][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 10:18:50,274 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 10:18:50,275 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 10:18:50,330 [DEBUG][       Thread-251328][   transport.py][1871] : userauth is OK
2025-06-13 10:18:50,330 [DEBUG][       Thread-251328][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 10:18:50,330 [DEBUG][       Thread-251328][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 10:18:50,330 [DEBUG][       Thread-251328][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 10:18:50,330 [DEBUG][       Thread-251328][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 10:18:50,348 [ INFO][       Thread-251328][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 10:18:50,349 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 10:18:50,349 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 10:18:51,362 [DEBUG][       Thread-251328][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 10:18:51,362 [DEBUG][       Thread-251328][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 10:18:51,412 [DEBUG][       Thread-251328][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 10:18:51,412 [DEBUG][       Thread-251328][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 10:18:51,422 [DEBUG][       Thread-251328][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 10:18:51,438 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 10:18:51,438 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 10:18:51,447 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 10:18:51,457 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 10:18:51,457 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 10:18:51,458 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 10:18:51,468 [DEBUG][       Thread-251328][   transport.py][1871] : EOF in transport thread
2025-06-13 10:18:54,108 [DEBUG][Thread-251330 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:19:01,468 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 10:19:01,468 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 10:19:01,468 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 10:19:01,471 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 10:19:01,939 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 10, 18, 33), 10.1, 49.18, 0.0, 16.41, 9.03, 0, 0, 0, 2, 0, 0),)
2025-06-13 10:19:01,939 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 10:18:33
2025-06-13 10:19:02,020 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 10:19:02,024 [DEBUG][       Thread-251331][   transport.py][1871] : starting thread (client mode): 0x863be4a0
2025-06-13 10:19:02,024 [DEBUG][       Thread-251331][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 10:19:02,044 [DEBUG][       Thread-251331][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 10:19:02,044 [ INFO][       Thread-251331][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 10:19:02,047 [DEBUG][       Thread-251331][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 10:19:02,048 [DEBUG][       Thread-251331][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 10:19:02,048 [DEBUG][       Thread-251331][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 10:19:02,048 [DEBUG][       Thread-251331][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:19:02,048 [DEBUG][       Thread-251331][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:19:02,048 [DEBUG][       Thread-251331][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:19:02,048 [DEBUG][       Thread-251331][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:19:02,048 [DEBUG][       Thread-251331][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 10:19:02,048 [DEBUG][       Thread-251331][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 10:19:02,048 [DEBUG][       Thread-251331][   transport.py][1871] : client lang: <none>
2025-06-13 10:19:02,048 [DEBUG][       Thread-251331][   transport.py][1871] : server lang: <none>
2025-06-13 10:19:02,048 [DEBUG][       Thread-251331][   transport.py][1871] : kex follows: False
2025-06-13 10:19:02,048 [DEBUG][       Thread-251331][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 10:19:02,048 [DEBUG][       Thread-251331][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 10:19:02,048 [DEBUG][       Thread-251331][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 10:19:02,048 [DEBUG][       Thread-251331][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 10:19:02,048 [DEBUG][       Thread-251331][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 10:19:02,048 [DEBUG][       Thread-251331][   transport.py][1871] : Compression: none
2025-06-13 10:19:02,048 [DEBUG][       Thread-251331][   transport.py][1871] : === End of kex handshake ===
2025-06-13 10:19:02,064 [DEBUG][       Thread-251331][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 10:19:02,064 [DEBUG][       Thread-251331][   transport.py][1871] : Switch to new keys ...
2025-06-13 10:19:02,065 [DEBUG][       Thread-251331][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 10:19:02,065 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 10:19:02,065 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 10:19:02,066 [DEBUG][       Thread-251331][   transport.py][1871] : userauth is OK
2025-06-13 10:19:02,080 [ INFO][       Thread-251331][   transport.py][1871] : Authentication (password) successful!
2025-06-13 10:19:02,080 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 10:19:02,672 [DEBUG][       Thread-251331][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 10:19:02,672 [DEBUG][       Thread-251331][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 10:19:02,713 [DEBUG][       Thread-251331][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 10:19:02,713 [DEBUG][       Thread-251331][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 10:19:02,716 [DEBUG][       Thread-251331][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 10:19:02,727 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 10:19:02,727 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 10:19:02,729 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 10:19:02,730 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 10:19:02,734 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 10:19:02,735 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 10:19:02,736 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 10:19:02,736 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 10:19:02,736 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.346121 -999.00   +8.90  17.58     54   +0.10 1 1 1 1 1   887    0 10.01 52.56 ----- 17.0 17.6 50.6 25.3 13.5 -28.2 12.1 -30.1 11.0 -28.1 12.3 -26.9
2025-06-13 10:19:02,736 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 10:19:02,736 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 10:19:02,736 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.346121
2025-06-13 10:19:02,737 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 10:19:02,737 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 10:19:02,737 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 10:19:02,737 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 10:19:02,738 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 10:19:02,738 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T10:18:33', tmtdew=10.1, humidity=49.18, cloud=0.0, wind=16.41, temperature=9.03, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T08:18:24.854', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 10:19:02,739 [DEBUG][       Thread-251331][   transport.py][1871] : EOF in transport thread
2025-06-13 10:19:02,821 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 10:19:02,831 [DEBUG][       Thread-251334][   transport.py][1871] : starting thread (client mode): 0x863eec20
2025-06-13 10:19:02,831 [DEBUG][       Thread-251334][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 10:19:02,846 [DEBUG][       Thread-251334][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 10:19:02,846 [ INFO][       Thread-251334][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 10:19:02,854 [DEBUG][       Thread-251334][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 10:19:02,854 [DEBUG][       Thread-251334][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 10:19:02,854 [DEBUG][       Thread-251334][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 10:19:02,854 [DEBUG][       Thread-251334][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:19:02,854 [DEBUG][       Thread-251334][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:19:02,854 [DEBUG][       Thread-251334][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:19:02,854 [DEBUG][       Thread-251334][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:19:02,854 [DEBUG][       Thread-251334][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 10:19:02,854 [DEBUG][       Thread-251334][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 10:19:02,854 [DEBUG][       Thread-251334][   transport.py][1871] : client lang: <none>
2025-06-13 10:19:02,854 [DEBUG][       Thread-251334][   transport.py][1871] : server lang: <none>
2025-06-13 10:19:02,854 [DEBUG][       Thread-251334][   transport.py][1871] : kex follows: False
2025-06-13 10:19:02,854 [DEBUG][       Thread-251334][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 10:19:02,854 [DEBUG][       Thread-251334][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 10:19:02,854 [DEBUG][       Thread-251334][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 10:19:02,854 [DEBUG][       Thread-251334][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 10:19:02,855 [DEBUG][       Thread-251334][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 10:19:02,855 [DEBUG][       Thread-251334][   transport.py][1871] : Compression: none
2025-06-13 10:19:02,855 [DEBUG][       Thread-251334][   transport.py][1871] : === End of kex handshake ===
2025-06-13 10:19:02,914 [DEBUG][       Thread-251334][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 10:19:02,914 [DEBUG][       Thread-251334][   transport.py][1871] : Switch to new keys ...
2025-06-13 10:19:02,915 [DEBUG][       Thread-251334][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 10:19:02,915 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 10:19:02,915 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 10:19:02,982 [DEBUG][       Thread-251334][   transport.py][1871] : userauth is OK
2025-06-13 10:19:02,982 [DEBUG][       Thread-251334][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 10:19:02,982 [DEBUG][       Thread-251334][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 10:19:02,982 [DEBUG][       Thread-251334][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 10:19:02,982 [DEBUG][       Thread-251334][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 10:19:02,996 [ INFO][       Thread-251334][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 10:19:02,996 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 10:19:02,996 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 10:19:03,127 [DEBUG][Thread-251336 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:19:03,659 [DEBUG][Thread-251337 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:19:04,073 [DEBUG][       Thread-251334][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 10:19:04,074 [DEBUG][       Thread-251334][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 10:19:04,125 [DEBUG][       Thread-251334][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 10:19:04,125 [DEBUG][       Thread-251334][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 10:19:04,139 [DEBUG][       Thread-251334][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 10:19:04,155 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 10:19:04,155 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 10:19:04,163 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 10:19:04,172 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 10:19:04,172 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 10:19:04,173 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 10:19:04,181 [DEBUG][       Thread-251334][   transport.py][1871] : EOF in transport thread
2025-06-13 10:19:04,743 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:19:04,744 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:19:05,839 [DEBUG][Thread-251338 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:19:12,145 [DEBUG][Thread-251339 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:19:14,180 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 10:19:14,180 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 10:19:14,189 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 10:19:14,191 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 10:19:14,668 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 10, 19, 5), 10.04, 49.4, 0.0, 14.7, 9.04, 0, 0, 0, 2, 0, 0),)
2025-06-13 10:19:14,668 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 10:19:05
2025-06-13 10:19:14,750 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 10:19:14,756 [DEBUG][       Thread-251340][   transport.py][1871] : starting thread (client mode): 0x84206620
2025-06-13 10:19:14,756 [DEBUG][       Thread-251340][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 10:19:14,776 [DEBUG][       Thread-251340][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 10:19:14,776 [ INFO][       Thread-251340][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 10:19:14,777 [DEBUG][       Thread-251340][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 10:19:14,777 [DEBUG][       Thread-251340][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 10:19:14,777 [DEBUG][       Thread-251340][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 10:19:14,777 [DEBUG][       Thread-251340][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:19:14,777 [DEBUG][       Thread-251340][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:19:14,777 [DEBUG][       Thread-251340][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:19:14,777 [DEBUG][       Thread-251340][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:19:14,778 [DEBUG][       Thread-251340][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 10:19:14,778 [DEBUG][       Thread-251340][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 10:19:14,778 [DEBUG][       Thread-251340][   transport.py][1871] : client lang: <none>
2025-06-13 10:19:14,778 [DEBUG][       Thread-251340][   transport.py][1871] : server lang: <none>
2025-06-13 10:19:14,778 [DEBUG][       Thread-251340][   transport.py][1871] : kex follows: False
2025-06-13 10:19:14,778 [DEBUG][       Thread-251340][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 10:19:14,778 [DEBUG][       Thread-251340][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 10:19:14,778 [DEBUG][       Thread-251340][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 10:19:14,778 [DEBUG][       Thread-251340][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 10:19:14,778 [DEBUG][       Thread-251340][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 10:19:14,778 [DEBUG][       Thread-251340][   transport.py][1871] : Compression: none
2025-06-13 10:19:14,778 [DEBUG][       Thread-251340][   transport.py][1871] : === End of kex handshake ===
2025-06-13 10:19:14,790 [DEBUG][       Thread-251340][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 10:19:14,790 [DEBUG][       Thread-251340][   transport.py][1871] : Switch to new keys ...
2025-06-13 10:19:14,791 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 10:19:14,791 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 10:19:14,792 [DEBUG][       Thread-251340][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 10:19:14,792 [DEBUG][       Thread-251340][   transport.py][1871] : userauth is OK
2025-06-13 10:19:14,805 [ INFO][       Thread-251340][   transport.py][1871] : Authentication (password) successful!
2025-06-13 10:19:14,805 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 10:19:15,399 [DEBUG][       Thread-251340][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 10:19:15,399 [DEBUG][       Thread-251340][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 10:19:15,444 [DEBUG][       Thread-251340][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 10:19:15,444 [DEBUG][       Thread-251340][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 10:19:15,447 [DEBUG][       Thread-251340][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 10:19:15,457 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 10:19:15,457 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 10:19:15,458 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 10:19:15,459 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 10:19:15,462 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 10:19:15,462 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 10:19:15,462 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 10:19:15,462 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 10:19:15,463 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.346468 -999.00   +8.90  21.64     54   +0.10 1 1 1 1 1   887    0 10.02 48.31 ----- 18.7 21.6 38.0 24.2 13.5 -28.5 12.1 -30.3 11.0 -27.9 12.3 -26.5
2025-06-13 10:19:15,463 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 10:19:15,463 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 10:19:15,463 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.346468
2025-06-13 10:19:15,463 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 10:19:15,463 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 10:19:15,463 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 10:19:15,463 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 10:19:15,463 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 10:19:15,463 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T10:19:05', tmtdew=10.04, humidity=49.4, cloud=0.0, wind=14.7, temperature=9.04, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T08:18:54.835', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 10:19:15,463 [DEBUG][       Thread-251340][   transport.py][1871] : EOF in transport thread
2025-06-13 10:19:15,535 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 10:19:15,547 [DEBUG][       Thread-251343][   transport.py][1871] : starting thread (client mode): 0x867ffe80
2025-06-13 10:19:15,547 [DEBUG][       Thread-251343][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 10:19:15,563 [DEBUG][       Thread-251343][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 10:19:15,563 [ INFO][       Thread-251343][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 10:19:15,570 [DEBUG][       Thread-251343][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 10:19:15,570 [DEBUG][       Thread-251343][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 10:19:15,570 [DEBUG][       Thread-251343][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 10:19:15,570 [DEBUG][       Thread-251343][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:19:15,570 [DEBUG][       Thread-251343][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:19:15,570 [DEBUG][       Thread-251343][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:19:15,570 [DEBUG][       Thread-251343][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:19:15,571 [DEBUG][       Thread-251343][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 10:19:15,571 [DEBUG][       Thread-251343][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 10:19:15,571 [DEBUG][       Thread-251343][   transport.py][1871] : client lang: <none>
2025-06-13 10:19:15,571 [DEBUG][       Thread-251343][   transport.py][1871] : server lang: <none>
2025-06-13 10:19:15,571 [DEBUG][       Thread-251343][   transport.py][1871] : kex follows: False
2025-06-13 10:19:15,571 [DEBUG][       Thread-251343][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 10:19:15,571 [DEBUG][       Thread-251343][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 10:19:15,571 [DEBUG][       Thread-251343][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 10:19:15,571 [DEBUG][       Thread-251343][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 10:19:15,571 [DEBUG][       Thread-251343][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 10:19:15,571 [DEBUG][       Thread-251343][   transport.py][1871] : Compression: none
2025-06-13 10:19:15,571 [DEBUG][       Thread-251343][   transport.py][1871] : === End of kex handshake ===
2025-06-13 10:19:15,634 [DEBUG][       Thread-251343][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 10:19:15,634 [DEBUG][       Thread-251343][   transport.py][1871] : Switch to new keys ...
2025-06-13 10:19:15,635 [DEBUG][       Thread-251343][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 10:19:15,635 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 10:19:15,636 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 10:19:15,693 [DEBUG][       Thread-251343][   transport.py][1871] : userauth is OK
2025-06-13 10:19:15,693 [DEBUG][       Thread-251343][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 10:19:15,693 [DEBUG][       Thread-251343][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 10:19:15,694 [DEBUG][       Thread-251343][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 10:19:15,694 [DEBUG][       Thread-251343][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 10:19:15,716 [ INFO][       Thread-251343][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 10:19:15,716 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 10:19:15,717 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 10:19:16,739 [DEBUG][       Thread-251343][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 10:19:16,739 [DEBUG][       Thread-251343][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 10:19:16,787 [DEBUG][       Thread-251343][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 10:19:16,788 [DEBUG][       Thread-251343][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 10:19:16,796 [DEBUG][       Thread-251343][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 10:19:16,808 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 10:19:16,808 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 10:19:16,817 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 10:19:16,825 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 10:19:16,825 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 10:19:16,826 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 10:19:16,833 [DEBUG][       Thread-251343][   transport.py][1871] : EOF in transport thread
2025-06-13 10:19:21,160 [DEBUG][Thread-251345 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:19:25,298 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:19:25,299 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:19:26,836 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 10:19:26,836 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 10:19:26,836 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 10:19:26,839 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 10:19:27,308 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 10, 19, 5), 10.04, 49.4, 0.0, 14.7, 9.04, 0, 0, 0, 2, 0, 0),)
2025-06-13 10:19:27,308 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 10:19:05
2025-06-13 10:19:27,390 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 10:19:27,394 [DEBUG][       Thread-251346][   transport.py][1871] : starting thread (client mode): 0x842077c0
2025-06-13 10:19:27,394 [DEBUG][       Thread-251346][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 10:19:27,415 [DEBUG][       Thread-251346][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 10:19:27,415 [ INFO][       Thread-251346][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 10:19:27,419 [DEBUG][       Thread-251346][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 10:19:27,419 [DEBUG][       Thread-251346][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 10:19:27,419 [DEBUG][       Thread-251346][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 10:19:27,419 [DEBUG][       Thread-251346][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:19:27,419 [DEBUG][       Thread-251346][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:19:27,419 [DEBUG][       Thread-251346][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:19:27,419 [DEBUG][       Thread-251346][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:19:27,419 [DEBUG][       Thread-251346][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 10:19:27,419 [DEBUG][       Thread-251346][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 10:19:27,419 [DEBUG][       Thread-251346][   transport.py][1871] : client lang: <none>
2025-06-13 10:19:27,419 [DEBUG][       Thread-251346][   transport.py][1871] : server lang: <none>
2025-06-13 10:19:27,419 [DEBUG][       Thread-251346][   transport.py][1871] : kex follows: False
2025-06-13 10:19:27,419 [DEBUG][       Thread-251346][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 10:19:27,419 [DEBUG][       Thread-251346][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 10:19:27,419 [DEBUG][       Thread-251346][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 10:19:27,419 [DEBUG][       Thread-251346][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 10:19:27,419 [DEBUG][       Thread-251346][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 10:19:27,419 [DEBUG][       Thread-251346][   transport.py][1871] : Compression: none
2025-06-13 10:19:27,419 [DEBUG][       Thread-251346][   transport.py][1871] : === End of kex handshake ===
2025-06-13 10:19:27,435 [DEBUG][       Thread-251346][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 10:19:27,436 [DEBUG][       Thread-251346][   transport.py][1871] : Switch to new keys ...
2025-06-13 10:19:27,436 [DEBUG][       Thread-251346][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 10:19:27,436 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 10:19:27,436 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 10:19:27,437 [DEBUG][       Thread-251346][   transport.py][1871] : userauth is OK
2025-06-13 10:19:27,462 [ INFO][       Thread-251346][   transport.py][1871] : Authentication (password) successful!
2025-06-13 10:19:27,462 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 10:19:28,106 [DEBUG][       Thread-251346][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 10:19:28,106 [DEBUG][       Thread-251346][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 10:19:28,149 [DEBUG][       Thread-251346][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 10:19:28,149 [DEBUG][       Thread-251346][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 10:19:28,152 [DEBUG][       Thread-251346][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 10:19:28,165 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 10:19:28,165 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 10:19:28,167 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 10:19:28,169 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 10:19:28,174 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 10:19:28,176 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 10:19:28,176 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 10:19:28,177 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 10:19:28,177 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.346468 -999.00   +8.90  21.64     54   +0.10 1 1 1 1 1   887    0 10.02 48.31 ----- 18.7 21.6 38.0 24.2 13.5 -28.5 12.1 -30.3 11.0 -27.9 12.3 -26.5
2025-06-13 10:19:28,177 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 10:19:28,177 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 10:19:28,177 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.346468
2025-06-13 10:19:28,177 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 10:19:28,178 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 10:19:28,178 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 10:19:28,178 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 10:19:28,178 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 10:19:28,178 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T10:19:05', tmtdew=10.04, humidity=49.4, cloud=0.0, wind=14.7, temperature=9.04, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T08:18:54.835', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 10:19:28,178 [DEBUG][       Thread-251346][   transport.py][1871] : EOF in transport thread
2025-06-13 10:19:28,262 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 10:19:28,277 [DEBUG][       Thread-251349][   transport.py][1871] : starting thread (client mode): 0x863eec80
2025-06-13 10:19:28,277 [DEBUG][       Thread-251349][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 10:19:28,292 [DEBUG][       Thread-251349][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 10:19:28,292 [ INFO][       Thread-251349][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 10:19:28,300 [DEBUG][       Thread-251349][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 10:19:28,300 [DEBUG][       Thread-251349][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 10:19:28,300 [DEBUG][       Thread-251349][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 10:19:28,300 [DEBUG][       Thread-251349][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:19:28,300 [DEBUG][       Thread-251349][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:19:28,300 [DEBUG][       Thread-251349][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:19:28,300 [DEBUG][       Thread-251349][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:19:28,300 [DEBUG][       Thread-251349][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 10:19:28,300 [DEBUG][       Thread-251349][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 10:19:28,300 [DEBUG][       Thread-251349][   transport.py][1871] : client lang: <none>
2025-06-13 10:19:28,300 [DEBUG][       Thread-251349][   transport.py][1871] : server lang: <none>
2025-06-13 10:19:28,301 [DEBUG][       Thread-251349][   transport.py][1871] : kex follows: False
2025-06-13 10:19:28,301 [DEBUG][       Thread-251349][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 10:19:28,301 [DEBUG][       Thread-251349][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 10:19:28,301 [DEBUG][       Thread-251349][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 10:19:28,301 [DEBUG][       Thread-251349][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 10:19:28,301 [DEBUG][       Thread-251349][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 10:19:28,301 [DEBUG][       Thread-251349][   transport.py][1871] : Compression: none
2025-06-13 10:19:28,301 [DEBUG][       Thread-251349][   transport.py][1871] : === End of kex handshake ===
2025-06-13 10:19:28,358 [DEBUG][       Thread-251349][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 10:19:28,359 [DEBUG][       Thread-251349][   transport.py][1871] : Switch to new keys ...
2025-06-13 10:19:28,359 [DEBUG][       Thread-251349][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 10:19:28,359 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 10:19:28,360 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 10:19:28,417 [DEBUG][       Thread-251349][   transport.py][1871] : userauth is OK
2025-06-13 10:19:28,418 [DEBUG][       Thread-251349][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 10:19:28,418 [DEBUG][       Thread-251349][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 10:19:28,418 [DEBUG][       Thread-251349][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 10:19:28,418 [DEBUG][       Thread-251349][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 10:19:28,439 [ INFO][       Thread-251349][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 10:19:28,440 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 10:19:28,440 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 10:19:29,495 [DEBUG][       Thread-251349][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 10:19:29,495 [DEBUG][       Thread-251349][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 10:19:29,543 [DEBUG][       Thread-251349][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 10:19:29,544 [DEBUG][       Thread-251349][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 10:19:29,554 [DEBUG][       Thread-251349][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 10:19:29,565 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 10:19:29,565 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 10:19:29,574 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 10:19:29,582 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 10:19:29,583 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 10:19:29,583 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 10:19:29,591 [DEBUG][       Thread-251349][   transport.py][1871] : EOF in transport thread
2025-06-13 10:19:30,192 [DEBUG][Thread-251351 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:19:39,209 [DEBUG][Thread-251352 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:19:39,593 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 10:19:39,594 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 10:19:39,594 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 10:19:39,596 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 10:19:40,053 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 10, 19, 37), 10.08, 49.16, 0.0, 16.82, 9.1, 0, 0, 0, 2, 0, 0),)
2025-06-13 10:19:40,053 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 10:19:37
2025-06-13 10:19:40,134 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 10:19:40,140 [DEBUG][       Thread-251353][   transport.py][1871] : starting thread (client mode): 0x84205540
2025-06-13 10:19:40,140 [DEBUG][       Thread-251353][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 10:19:40,162 [DEBUG][       Thread-251353][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 10:19:40,162 [ INFO][       Thread-251353][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 10:19:40,164 [DEBUG][       Thread-251353][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 10:19:40,165 [DEBUG][       Thread-251353][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 10:19:40,165 [DEBUG][       Thread-251353][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 10:19:40,165 [DEBUG][       Thread-251353][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:19:40,165 [DEBUG][       Thread-251353][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:19:40,165 [DEBUG][       Thread-251353][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:19:40,165 [DEBUG][       Thread-251353][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:19:40,165 [DEBUG][       Thread-251353][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 10:19:40,165 [DEBUG][       Thread-251353][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 10:19:40,165 [DEBUG][       Thread-251353][   transport.py][1871] : client lang: <none>
2025-06-13 10:19:40,165 [DEBUG][       Thread-251353][   transport.py][1871] : server lang: <none>
2025-06-13 10:19:40,165 [DEBUG][       Thread-251353][   transport.py][1871] : kex follows: False
2025-06-13 10:19:40,165 [DEBUG][       Thread-251353][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 10:19:40,165 [DEBUG][       Thread-251353][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 10:19:40,165 [DEBUG][       Thread-251353][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 10:19:40,165 [DEBUG][       Thread-251353][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 10:19:40,165 [DEBUG][       Thread-251353][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 10:19:40,165 [DEBUG][       Thread-251353][   transport.py][1871] : Compression: none
2025-06-13 10:19:40,165 [DEBUG][       Thread-251353][   transport.py][1871] : === End of kex handshake ===
2025-06-13 10:19:40,174 [DEBUG][       Thread-251353][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 10:19:40,174 [DEBUG][       Thread-251353][   transport.py][1871] : Switch to new keys ...
2025-06-13 10:19:40,174 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 10:19:40,175 [DEBUG][       Thread-251353][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 10:19:40,175 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 10:19:40,176 [DEBUG][       Thread-251353][   transport.py][1871] : userauth is OK
2025-06-13 10:19:40,203 [ INFO][       Thread-251353][   transport.py][1871] : Authentication (password) successful!
2025-06-13 10:19:40,203 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 10:19:40,864 [DEBUG][       Thread-251353][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 10:19:40,864 [DEBUG][       Thread-251353][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 10:19:40,905 [DEBUG][       Thread-251353][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 10:19:40,905 [DEBUG][       Thread-251353][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 10:19:40,908 [DEBUG][       Thread-251353][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 10:19:40,920 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 10:19:40,921 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 10:19:40,922 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 10:19:40,924 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 10:19:40,929 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 10:19:40,931 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 10:19:40,931 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 10:19:40,932 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 10:19:40,932 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.346468 -999.00   +8.90  21.64     54   +0.10 1 1 1 1 1   887    0 10.02 48.31 ----- 18.7 21.6 38.0 24.2 13.5 -28.5 12.1 -30.3 11.0 -27.9 12.3 -26.5
2025-06-13 10:19:40,932 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 10:19:40,932 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 10:19:40,932 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.346468
2025-06-13 10:19:40,932 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 10:19:40,933 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 10:19:40,933 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 10:19:40,933 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 10:19:40,933 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 10:19:40,933 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T10:19:37', tmtdew=10.08, humidity=49.16, cloud=0.0, wind=16.82, temperature=9.1, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T08:18:54.835', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 10:19:40,934 [DEBUG][       Thread-251353][   transport.py][1871] : EOF in transport thread
2025-06-13 10:19:41,017 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 10:19:41,029 [DEBUG][       Thread-251356][   transport.py][1871] : starting thread (client mode): 0x863a5b70
2025-06-13 10:19:41,029 [DEBUG][       Thread-251356][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 10:19:41,045 [DEBUG][       Thread-251356][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 10:19:41,045 [ INFO][       Thread-251356][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 10:19:41,057 [DEBUG][       Thread-251356][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 10:19:41,058 [DEBUG][       Thread-251356][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 10:19:41,058 [DEBUG][       Thread-251356][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 10:19:41,058 [DEBUG][       Thread-251356][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:19:41,058 [DEBUG][       Thread-251356][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:19:41,058 [DEBUG][       Thread-251356][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:19:41,058 [DEBUG][       Thread-251356][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:19:41,058 [DEBUG][       Thread-251356][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 10:19:41,058 [DEBUG][       Thread-251356][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 10:19:41,058 [DEBUG][       Thread-251356][   transport.py][1871] : client lang: <none>
2025-06-13 10:19:41,058 [DEBUG][       Thread-251356][   transport.py][1871] : server lang: <none>
2025-06-13 10:19:41,058 [DEBUG][       Thread-251356][   transport.py][1871] : kex follows: False
2025-06-13 10:19:41,058 [DEBUG][       Thread-251356][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 10:19:41,058 [DEBUG][       Thread-251356][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 10:19:41,058 [DEBUG][       Thread-251356][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 10:19:41,058 [DEBUG][       Thread-251356][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 10:19:41,058 [DEBUG][       Thread-251356][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 10:19:41,058 [DEBUG][       Thread-251356][   transport.py][1871] : Compression: none
2025-06-13 10:19:41,059 [DEBUG][       Thread-251356][   transport.py][1871] : === End of kex handshake ===
2025-06-13 10:19:41,115 [DEBUG][       Thread-251356][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 10:19:41,115 [DEBUG][       Thread-251356][   transport.py][1871] : Switch to new keys ...
2025-06-13 10:19:41,116 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 10:19:41,116 [DEBUG][       Thread-251356][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 10:19:41,117 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 10:19:41,170 [DEBUG][       Thread-251356][   transport.py][1871] : userauth is OK
2025-06-13 10:19:41,171 [DEBUG][       Thread-251356][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 10:19:41,171 [DEBUG][       Thread-251356][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 10:19:41,171 [DEBUG][       Thread-251356][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 10:19:41,171 [DEBUG][       Thread-251356][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 10:19:41,191 [ INFO][       Thread-251356][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 10:19:41,191 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 10:19:41,192 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 10:19:42,230 [DEBUG][       Thread-251356][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 10:19:42,231 [DEBUG][       Thread-251356][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 10:19:42,290 [DEBUG][       Thread-251356][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 10:19:42,290 [DEBUG][       Thread-251356][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 10:19:42,305 [DEBUG][       Thread-251356][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 10:19:42,314 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 10:19:42,314 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 10:19:42,323 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 10:19:42,332 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 10:19:42,332 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 10:19:42,333 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 10:19:42,340 [DEBUG][       Thread-251356][   transport.py][1871] : EOF in transport thread
2025-06-13 10:19:48,230 [DEBUG][Thread-251358 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:19:52,342 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 10:19:52,343 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 10:19:52,352 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 10:19:52,354 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 10:19:52,825 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 10, 19, 37), 10.08, 49.16, 0.0, 16.82, 9.1, 0, 0, 0, 2, 0, 0),)
2025-06-13 10:19:52,825 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 10:19:37
2025-06-13 10:19:52,907 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 10:19:52,914 [DEBUG][       Thread-251359][   transport.py][1871] : starting thread (client mode): 0x84206290
2025-06-13 10:19:52,914 [DEBUG][       Thread-251359][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 10:19:52,933 [DEBUG][       Thread-251359][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 10:19:52,933 [ INFO][       Thread-251359][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 10:19:52,936 [DEBUG][       Thread-251359][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 10:19:52,936 [DEBUG][       Thread-251359][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 10:19:52,937 [DEBUG][       Thread-251359][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 10:19:52,937 [DEBUG][       Thread-251359][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:19:52,937 [DEBUG][       Thread-251359][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:19:52,937 [DEBUG][       Thread-251359][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:19:52,937 [DEBUG][       Thread-251359][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:19:52,937 [DEBUG][       Thread-251359][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 10:19:52,937 [DEBUG][       Thread-251359][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 10:19:52,937 [DEBUG][       Thread-251359][   transport.py][1871] : client lang: <none>
2025-06-13 10:19:52,937 [DEBUG][       Thread-251359][   transport.py][1871] : server lang: <none>
2025-06-13 10:19:52,937 [DEBUG][       Thread-251359][   transport.py][1871] : kex follows: False
2025-06-13 10:19:52,937 [DEBUG][       Thread-251359][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 10:19:52,937 [DEBUG][       Thread-251359][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 10:19:52,937 [DEBUG][       Thread-251359][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 10:19:52,937 [DEBUG][       Thread-251359][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 10:19:52,937 [DEBUG][       Thread-251359][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 10:19:52,937 [DEBUG][       Thread-251359][   transport.py][1871] : Compression: none
2025-06-13 10:19:52,937 [DEBUG][       Thread-251359][   transport.py][1871] : === End of kex handshake ===
2025-06-13 10:19:52,945 [DEBUG][       Thread-251359][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 10:19:52,945 [DEBUG][       Thread-251359][   transport.py][1871] : Switch to new keys ...
2025-06-13 10:19:52,946 [DEBUG][       Thread-251359][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 10:19:52,946 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 10:19:52,946 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 10:19:52,987 [DEBUG][       Thread-251359][   transport.py][1871] : userauth is OK
2025-06-13 10:19:53,011 [ INFO][       Thread-251359][   transport.py][1871] : Authentication (password) successful!
2025-06-13 10:19:53,012 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 10:19:53,624 [DEBUG][       Thread-251359][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 10:19:53,625 [DEBUG][       Thread-251359][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 10:19:53,669 [DEBUG][       Thread-251359][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 10:19:53,669 [DEBUG][       Thread-251359][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 10:19:53,672 [DEBUG][       Thread-251359][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 10:19:53,683 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 10:19:53,683 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 10:19:53,685 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 10:19:53,687 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 10:19:53,692 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 10:19:53,694 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 10:19:53,695 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 10:19:53,695 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 10:19:53,695 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.346815 -999.00   +8.80  19.81     54   +0.10 1 1 1 1 1   887    0 9.91 47.30 ----- 19.0 19.8 48.6 23.0 13.5 -28.4 12.2 -29.5 11.1 -27.7 12.3 -26.5
2025-06-13 10:19:53,695 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 10:19:53,695 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 10:19:53,695 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.346815
2025-06-13 10:19:53,696 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 10:19:53,696 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 10:19:53,696 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 10:19:53,696 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 10:19:53,696 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 10:19:53,697 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T10:19:37', tmtdew=10.08, humidity=49.16, cloud=0.0, wind=16.82, temperature=9.1, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T08:19:24.816', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 10:19:53,697 [DEBUG][       Thread-251359][   transport.py][1871] : EOF in transport thread
2025-06-13 10:19:53,781 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 10:19:53,792 [DEBUG][       Thread-251362][   transport.py][1871] : starting thread (client mode): 0x867b6110
2025-06-13 10:19:53,792 [DEBUG][       Thread-251362][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 10:19:53,807 [DEBUG][       Thread-251362][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 10:19:53,807 [ INFO][       Thread-251362][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 10:19:53,815 [DEBUG][       Thread-251362][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 10:19:53,815 [DEBUG][       Thread-251362][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 10:19:53,815 [DEBUG][       Thread-251362][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 10:19:53,815 [DEBUG][       Thread-251362][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:19:53,815 [DEBUG][       Thread-251362][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:19:53,815 [DEBUG][       Thread-251362][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:19:53,815 [DEBUG][       Thread-251362][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:19:53,815 [DEBUG][       Thread-251362][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 10:19:53,815 [DEBUG][       Thread-251362][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 10:19:53,815 [DEBUG][       Thread-251362][   transport.py][1871] : client lang: <none>
2025-06-13 10:19:53,815 [DEBUG][       Thread-251362][   transport.py][1871] : server lang: <none>
2025-06-13 10:19:53,815 [DEBUG][       Thread-251362][   transport.py][1871] : kex follows: False
2025-06-13 10:19:53,815 [DEBUG][       Thread-251362][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 10:19:53,815 [DEBUG][       Thread-251362][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 10:19:53,815 [DEBUG][       Thread-251362][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 10:19:53,816 [DEBUG][       Thread-251362][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 10:19:53,816 [DEBUG][       Thread-251362][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 10:19:53,816 [DEBUG][       Thread-251362][   transport.py][1871] : Compression: none
2025-06-13 10:19:53,816 [DEBUG][       Thread-251362][   transport.py][1871] : === End of kex handshake ===
2025-06-13 10:19:53,874 [DEBUG][       Thread-251362][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 10:19:53,874 [DEBUG][       Thread-251362][   transport.py][1871] : Switch to new keys ...
2025-06-13 10:19:53,875 [DEBUG][       Thread-251362][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 10:19:53,875 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 10:19:53,876 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 10:19:53,930 [DEBUG][       Thread-251362][   transport.py][1871] : userauth is OK
2025-06-13 10:19:53,930 [DEBUG][       Thread-251362][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 10:19:53,930 [DEBUG][       Thread-251362][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 10:19:53,930 [DEBUG][       Thread-251362][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 10:19:53,930 [DEBUG][       Thread-251362][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 10:19:53,949 [ INFO][       Thread-251362][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 10:19:53,949 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 10:19:53,949 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 10:19:54,937 [DEBUG][       Thread-251362][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 10:19:54,938 [DEBUG][       Thread-251362][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 10:19:54,988 [DEBUG][       Thread-251362][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 10:19:54,988 [DEBUG][       Thread-251362][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 10:19:54,996 [DEBUG][       Thread-251362][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 10:19:55,005 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 10:19:55,005 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 10:19:55,014 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 10:19:55,023 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 10:19:55,023 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 10:19:55,023 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 10:19:55,039 [DEBUG][       Thread-251362][   transport.py][1871] : EOF in transport thread
2025-06-13 10:19:57,269 [DEBUG][Thread-251364 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:20:04,816 [DEBUG][Thread-251365 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:20:05,032 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 10:20:05,033 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 10:20:05,033 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 10:20:05,035 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 10:20:05,489 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 10, 19, 37), 10.08, 49.16, 0.0, 16.82, 9.1, 0, 0, 0, 2, 0, 0),)
2025-06-13 10:20:05,489 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 10:19:37
2025-06-13 10:20:05,571 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 10:20:05,575 [DEBUG][       Thread-251366][   transport.py][1871] : starting thread (client mode): 0x867fe1a0
2025-06-13 10:20:05,575 [DEBUG][       Thread-251366][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 10:20:05,595 [DEBUG][       Thread-251366][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 10:20:05,595 [ INFO][       Thread-251366][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 10:20:05,596 [DEBUG][       Thread-251366][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 10:20:05,596 [DEBUG][       Thread-251366][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 10:20:05,596 [DEBUG][       Thread-251366][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 10:20:05,596 [DEBUG][       Thread-251366][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:20:05,596 [DEBUG][       Thread-251366][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:20:05,596 [DEBUG][       Thread-251366][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:20:05,596 [DEBUG][       Thread-251366][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:20:05,596 [DEBUG][       Thread-251366][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 10:20:05,596 [DEBUG][       Thread-251366][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 10:20:05,596 [DEBUG][       Thread-251366][   transport.py][1871] : client lang: <none>
2025-06-13 10:20:05,596 [DEBUG][       Thread-251366][   transport.py][1871] : server lang: <none>
2025-06-13 10:20:05,596 [DEBUG][       Thread-251366][   transport.py][1871] : kex follows: False
2025-06-13 10:20:05,596 [DEBUG][       Thread-251366][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 10:20:05,597 [DEBUG][       Thread-251366][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 10:20:05,597 [DEBUG][       Thread-251366][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 10:20:05,597 [DEBUG][       Thread-251366][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 10:20:05,597 [DEBUG][       Thread-251366][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 10:20:05,597 [DEBUG][       Thread-251366][   transport.py][1871] : Compression: none
2025-06-13 10:20:05,597 [DEBUG][       Thread-251366][   transport.py][1871] : === End of kex handshake ===
2025-06-13 10:20:05,607 [DEBUG][       Thread-251366][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 10:20:05,608 [DEBUG][       Thread-251366][   transport.py][1871] : Switch to new keys ...
2025-06-13 10:20:05,608 [DEBUG][       Thread-251366][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 10:20:05,609 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 10:20:05,609 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 10:20:05,610 [DEBUG][       Thread-251366][   transport.py][1871] : userauth is OK
2025-06-13 10:20:05,635 [ INFO][       Thread-251366][   transport.py][1871] : Authentication (password) successful!
2025-06-13 10:20:05,635 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 10:20:05,868 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:20:05,868 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:20:05,890 [DEBUG][Thread-251368 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:20:06,288 [DEBUG][Thread-251369 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:20:15,306 [DEBUG][Thread-251370 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:20:15,890 [DEBUG][       Thread-251366][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 10:20:15,890 [DEBUG][       Thread-251366][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 10:20:15,933 [DEBUG][       Thread-251366][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 10:20:15,933 [DEBUG][       Thread-251366][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 10:20:15,935 [DEBUG][       Thread-251366][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 10:20:16,045 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 10:20:16,046 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 10:20:16,047 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 10:20:16,049 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 10:20:16,097 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 10:20:16,099 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 10:20:16,099 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 10:20:16,099 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 10:20:16,099 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.346815 -999.00   +8.80  19.81     54   +0.10 1 1 1 1 1   887    0 9.91 47.30 ----- 19.0 19.8 48.6 23.0 13.5 -28.4 12.2 -29.5 11.1 -27.7 12.3 -26.5
2025-06-13 10:20:16,100 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 10:20:16,100 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 10:20:16,100 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.346815
2025-06-13 10:20:16,100 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 10:20:16,101 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 10:20:16,101 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 10:20:16,101 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 10:20:16,101 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 10:20:16,101 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T10:19:37', tmtdew=10.08, humidity=49.16, cloud=0.0, wind=16.82, temperature=9.1, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T08:19:24.816', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 10:20:16,101 [DEBUG][       Thread-251366][   transport.py][1871] : EOF in transport thread
2025-06-13 10:20:16,186 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 10:20:16,196 [DEBUG][       Thread-251372][   transport.py][1871] : starting thread (client mode): 0x84205030
2025-06-13 10:20:16,196 [DEBUG][       Thread-251372][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 10:20:16,221 [DEBUG][       Thread-251372][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 10:20:16,221 [ INFO][       Thread-251372][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 10:20:16,228 [DEBUG][       Thread-251372][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 10:20:16,229 [DEBUG][       Thread-251372][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 10:20:16,229 [DEBUG][       Thread-251372][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 10:20:16,229 [DEBUG][       Thread-251372][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:20:16,229 [DEBUG][       Thread-251372][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:20:16,229 [DEBUG][       Thread-251372][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:20:16,229 [DEBUG][       Thread-251372][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:20:16,229 [DEBUG][       Thread-251372][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 10:20:16,229 [DEBUG][       Thread-251372][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 10:20:16,229 [DEBUG][       Thread-251372][   transport.py][1871] : client lang: <none>
2025-06-13 10:20:16,229 [DEBUG][       Thread-251372][   transport.py][1871] : server lang: <none>
2025-06-13 10:20:16,229 [DEBUG][       Thread-251372][   transport.py][1871] : kex follows: False
2025-06-13 10:20:16,229 [DEBUG][       Thread-251372][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 10:20:16,229 [DEBUG][       Thread-251372][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 10:20:16,229 [DEBUG][       Thread-251372][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 10:20:16,229 [DEBUG][       Thread-251372][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 10:20:16,229 [DEBUG][       Thread-251372][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 10:20:16,229 [DEBUG][       Thread-251372][   transport.py][1871] : Compression: none
2025-06-13 10:20:16,229 [DEBUG][       Thread-251372][   transport.py][1871] : === End of kex handshake ===
2025-06-13 10:20:16,287 [DEBUG][       Thread-251372][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 10:20:16,288 [DEBUG][       Thread-251372][   transport.py][1871] : Switch to new keys ...
2025-06-13 10:20:16,288 [DEBUG][       Thread-251372][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 10:20:16,288 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 10:20:16,289 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 10:20:16,352 [DEBUG][       Thread-251372][   transport.py][1871] : userauth is OK
2025-06-13 10:20:16,352 [DEBUG][       Thread-251372][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 10:20:16,352 [DEBUG][       Thread-251372][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 10:20:16,352 [DEBUG][       Thread-251372][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 10:20:16,352 [DEBUG][       Thread-251372][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 10:20:16,371 [ INFO][       Thread-251372][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 10:20:16,371 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 10:20:16,372 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 10:20:17,379 [DEBUG][       Thread-251372][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 10:20:17,379 [DEBUG][       Thread-251372][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 10:20:17,435 [DEBUG][       Thread-251372][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 10:20:17,435 [DEBUG][       Thread-251372][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 10:20:17,447 [DEBUG][       Thread-251372][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 10:20:17,455 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 10:20:17,455 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 10:20:17,469 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 10:20:17,480 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 10:20:17,480 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 10:20:17,480 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 10:20:17,488 [DEBUG][       Thread-251372][   transport.py][1871] : EOF in transport thread
2025-06-13 10:20:24,325 [DEBUG][Thread-251374 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:20:25,438 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:20:25,439 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:20:27,488 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 10:20:27,488 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 10:20:27,488 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 10:20:27,490 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 10:20:27,955 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 10, 20, 8), 10.12, 49.0, 0.0, 14.35, 9.04, 0, 0, 0, 2, 0, 0),)
2025-06-13 10:20:27,955 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 10:20:08
2025-06-13 10:20:28,036 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 10:20:28,041 [DEBUG][       Thread-251375][   transport.py][1871] : starting thread (client mode): 0x84206b90
2025-06-13 10:20:28,041 [DEBUG][       Thread-251375][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 10:20:28,062 [DEBUG][       Thread-251375][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 10:20:28,062 [ INFO][       Thread-251375][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 10:20:28,065 [DEBUG][       Thread-251375][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 10:20:28,065 [DEBUG][       Thread-251375][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 10:20:28,065 [DEBUG][       Thread-251375][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 10:20:28,065 [DEBUG][       Thread-251375][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:20:28,065 [DEBUG][       Thread-251375][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:20:28,065 [DEBUG][       Thread-251375][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:20:28,065 [DEBUG][       Thread-251375][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:20:28,065 [DEBUG][       Thread-251375][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 10:20:28,065 [DEBUG][       Thread-251375][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 10:20:28,065 [DEBUG][       Thread-251375][   transport.py][1871] : client lang: <none>
2025-06-13 10:20:28,065 [DEBUG][       Thread-251375][   transport.py][1871] : server lang: <none>
2025-06-13 10:20:28,065 [DEBUG][       Thread-251375][   transport.py][1871] : kex follows: False
2025-06-13 10:20:28,065 [DEBUG][       Thread-251375][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 10:20:28,065 [DEBUG][       Thread-251375][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 10:20:28,066 [DEBUG][       Thread-251375][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 10:20:28,066 [DEBUG][       Thread-251375][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 10:20:28,066 [DEBUG][       Thread-251375][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 10:20:28,066 [DEBUG][       Thread-251375][   transport.py][1871] : Compression: none
2025-06-13 10:20:28,066 [DEBUG][       Thread-251375][   transport.py][1871] : === End of kex handshake ===
2025-06-13 10:20:28,085 [DEBUG][       Thread-251375][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 10:20:28,085 [DEBUG][       Thread-251375][   transport.py][1871] : Switch to new keys ...
2025-06-13 10:20:28,086 [DEBUG][       Thread-251375][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 10:20:28,086 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 10:20:28,086 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 10:20:28,087 [DEBUG][       Thread-251375][   transport.py][1871] : userauth is OK
2025-06-13 10:20:28,112 [ INFO][       Thread-251375][   transport.py][1871] : Authentication (password) successful!
2025-06-13 10:20:28,112 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 10:20:28,714 [DEBUG][       Thread-251375][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 10:20:28,714 [DEBUG][       Thread-251375][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 10:20:28,757 [DEBUG][       Thread-251375][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 10:20:28,757 [DEBUG][       Thread-251375][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 10:20:28,760 [DEBUG][       Thread-251375][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 10:20:28,774 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 10:20:28,775 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 10:20:28,776 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 10:20:28,778 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 10:20:28,782 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 10:20:28,784 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 10:20:28,784 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 10:20:28,785 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 10:20:28,785 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.347162 -999.00   +8.90  20.45     54   +0.20 1 1 1 1 1   887    0 9.95 45.87 ----- 20.9 20.4 56.4 24.1 13.6 -27.6 12.2 -28.9 11.1 -28.3 12.3 -26.8
2025-06-13 10:20:28,785 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 10:20:28,785 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 10:20:28,785 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.347162
2025-06-13 10:20:28,785 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 10:20:28,786 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 10:20:28,786 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 10:20:28,786 [DEBUG][       Thread-251375][   transport.py][1871] : EOF in transport thread
2025-06-13 10:20:28,786 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 10:20:28,787 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 10:20:28,787 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T10:20:08', tmtdew=10.12, humidity=49.0, cloud=0.0, wind=14.35, temperature=9.04, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T08:19:54.797', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 10:20:28,871 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 10:20:28,881 [DEBUG][       Thread-251378][   transport.py][1871] : starting thread (client mode): 0x8636bca0
2025-06-13 10:20:28,881 [DEBUG][       Thread-251378][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 10:20:28,898 [DEBUG][       Thread-251378][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 10:20:28,898 [ INFO][       Thread-251378][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 10:20:28,906 [DEBUG][       Thread-251378][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 10:20:28,906 [DEBUG][       Thread-251378][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 10:20:28,906 [DEBUG][       Thread-251378][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 10:20:28,906 [DEBUG][       Thread-251378][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:20:28,906 [DEBUG][       Thread-251378][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:20:28,906 [DEBUG][       Thread-251378][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:20:28,906 [DEBUG][       Thread-251378][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:20:28,906 [DEBUG][       Thread-251378][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 10:20:28,906 [DEBUG][       Thread-251378][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 10:20:28,906 [DEBUG][       Thread-251378][   transport.py][1871] : client lang: <none>
2025-06-13 10:20:28,906 [DEBUG][       Thread-251378][   transport.py][1871] : server lang: <none>
2025-06-13 10:20:28,906 [DEBUG][       Thread-251378][   transport.py][1871] : kex follows: False
2025-06-13 10:20:28,906 [DEBUG][       Thread-251378][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 10:20:28,907 [DEBUG][       Thread-251378][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 10:20:28,907 [DEBUG][       Thread-251378][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 10:20:28,907 [DEBUG][       Thread-251378][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 10:20:28,907 [DEBUG][       Thread-251378][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 10:20:28,907 [DEBUG][       Thread-251378][   transport.py][1871] : Compression: none
2025-06-13 10:20:28,907 [DEBUG][       Thread-251378][   transport.py][1871] : === End of kex handshake ===
2025-06-13 10:20:28,969 [DEBUG][       Thread-251378][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 10:20:28,969 [DEBUG][       Thread-251378][   transport.py][1871] : Switch to new keys ...
2025-06-13 10:20:28,970 [DEBUG][       Thread-251378][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 10:20:28,970 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 10:20:28,970 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 10:20:29,028 [DEBUG][       Thread-251378][   transport.py][1871] : userauth is OK
2025-06-13 10:20:29,028 [DEBUG][       Thread-251378][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 10:20:29,028 [DEBUG][       Thread-251378][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 10:20:29,028 [DEBUG][       Thread-251378][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 10:20:29,028 [DEBUG][       Thread-251378][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 10:20:29,048 [ INFO][       Thread-251378][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 10:20:29,048 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 10:20:29,048 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 10:20:30,054 [DEBUG][       Thread-251378][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 10:20:30,054 [DEBUG][       Thread-251378][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 10:20:30,103 [DEBUG][       Thread-251378][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 10:20:30,104 [DEBUG][       Thread-251378][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 10:20:30,112 [DEBUG][       Thread-251378][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 10:20:30,120 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 10:20:30,120 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 10:20:30,129 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 10:20:30,137 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 10:20:30,137 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 10:20:30,137 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 10:20:30,145 [DEBUG][       Thread-251378][   transport.py][1871] : EOF in transport thread
2025-06-13 10:20:33,342 [DEBUG][Thread-251380 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:20:40,144 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 10:20:40,144 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 10:20:40,144 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 10:20:40,145 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 10:20:40,599 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 10, 20, 8), 10.12, 49.0, 0.0, 14.35, 9.04, 0, 0, 0, 2, 0, 0),)
2025-06-13 10:20:40,599 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 10:20:08
2025-06-13 10:20:40,681 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 10:20:40,686 [DEBUG][       Thread-251381][   transport.py][1871] : starting thread (client mode): 0x86369cf0
2025-06-13 10:20:40,686 [DEBUG][       Thread-251381][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 10:20:40,702 [DEBUG][       Thread-251381][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 10:20:40,702 [ INFO][       Thread-251381][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 10:20:40,705 [DEBUG][       Thread-251381][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 10:20:40,705 [DEBUG][       Thread-251381][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 10:20:40,705 [DEBUG][       Thread-251381][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 10:20:40,705 [DEBUG][       Thread-251381][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:20:40,705 [DEBUG][       Thread-251381][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:20:40,705 [DEBUG][       Thread-251381][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:20:40,705 [DEBUG][       Thread-251381][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:20:40,705 [DEBUG][       Thread-251381][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 10:20:40,705 [DEBUG][       Thread-251381][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 10:20:40,705 [DEBUG][       Thread-251381][   transport.py][1871] : client lang: <none>
2025-06-13 10:20:40,705 [DEBUG][       Thread-251381][   transport.py][1871] : server lang: <none>
2025-06-13 10:20:40,705 [DEBUG][       Thread-251381][   transport.py][1871] : kex follows: False
2025-06-13 10:20:40,705 [DEBUG][       Thread-251381][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 10:20:40,705 [DEBUG][       Thread-251381][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 10:20:40,705 [DEBUG][       Thread-251381][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 10:20:40,705 [DEBUG][       Thread-251381][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 10:20:40,705 [DEBUG][       Thread-251381][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 10:20:40,705 [DEBUG][       Thread-251381][   transport.py][1871] : Compression: none
2025-06-13 10:20:40,705 [DEBUG][       Thread-251381][   transport.py][1871] : === End of kex handshake ===
2025-06-13 10:20:40,719 [DEBUG][       Thread-251381][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 10:20:40,719 [DEBUG][       Thread-251381][   transport.py][1871] : Switch to new keys ...
2025-06-13 10:20:40,719 [DEBUG][       Thread-251381][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 10:20:40,719 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 10:20:40,719 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 10:20:40,720 [DEBUG][       Thread-251381][   transport.py][1871] : userauth is OK
2025-06-13 10:20:40,744 [ INFO][       Thread-251381][   transport.py][1871] : Authentication (password) successful!
2025-06-13 10:20:40,744 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 10:20:41,349 [DEBUG][       Thread-251381][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 10:20:41,349 [DEBUG][       Thread-251381][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 10:20:41,392 [DEBUG][       Thread-251381][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 10:20:41,392 [DEBUG][       Thread-251381][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 10:20:41,394 [DEBUG][       Thread-251381][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 10:20:41,408 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 10:20:41,409 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 10:20:41,410 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 10:20:41,412 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 10:20:41,418 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 10:20:41,420 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 10:20:41,420 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 10:20:41,421 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 10:20:41,421 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.347162 -999.00   +8.90  20.45     54   +0.20 1 1 1 1 1   887    0 9.95 45.87 ----- 20.9 20.4 56.4 24.1 13.6 -27.6 12.2 -28.9 11.1 -28.3 12.3 -26.8
2025-06-13 10:20:41,421 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 10:20:41,421 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 10:20:41,421 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.347162
2025-06-13 10:20:41,421 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 10:20:41,422 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 10:20:41,422 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 10:20:41,422 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 10:20:41,422 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 10:20:41,422 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T10:20:08', tmtdew=10.12, humidity=49.0, cloud=0.0, wind=14.35, temperature=9.04, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T08:19:54.797', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 10:20:41,422 [DEBUG][       Thread-251381][   transport.py][1871] : EOF in transport thread
2025-06-13 10:20:41,506 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 10:20:41,517 [DEBUG][       Thread-251384][   transport.py][1871] : starting thread (client mode): 0x863a5240
2025-06-13 10:20:41,517 [DEBUG][       Thread-251384][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 10:20:41,534 [DEBUG][       Thread-251384][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 10:20:41,534 [ INFO][       Thread-251384][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 10:20:41,541 [DEBUG][       Thread-251384][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 10:20:41,541 [DEBUG][       Thread-251384][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 10:20:41,541 [DEBUG][       Thread-251384][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 10:20:41,541 [DEBUG][       Thread-251384][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:20:41,542 [DEBUG][       Thread-251384][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:20:41,542 [DEBUG][       Thread-251384][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:20:41,542 [DEBUG][       Thread-251384][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:20:41,542 [DEBUG][       Thread-251384][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 10:20:41,542 [DEBUG][       Thread-251384][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 10:20:41,542 [DEBUG][       Thread-251384][   transport.py][1871] : client lang: <none>
2025-06-13 10:20:41,542 [DEBUG][       Thread-251384][   transport.py][1871] : server lang: <none>
2025-06-13 10:20:41,542 [DEBUG][       Thread-251384][   transport.py][1871] : kex follows: False
2025-06-13 10:20:41,542 [DEBUG][       Thread-251384][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 10:20:41,542 [DEBUG][       Thread-251384][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 10:20:41,542 [DEBUG][       Thread-251384][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 10:20:41,542 [DEBUG][       Thread-251384][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 10:20:41,542 [DEBUG][       Thread-251384][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 10:20:41,542 [DEBUG][       Thread-251384][   transport.py][1871] : Compression: none
2025-06-13 10:20:41,542 [DEBUG][       Thread-251384][   transport.py][1871] : === End of kex handshake ===
2025-06-13 10:20:41,609 [DEBUG][       Thread-251384][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 10:20:41,609 [DEBUG][       Thread-251384][   transport.py][1871] : Switch to new keys ...
2025-06-13 10:20:41,610 [DEBUG][       Thread-251384][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 10:20:41,610 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 10:20:41,611 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 10:20:41,672 [DEBUG][       Thread-251384][   transport.py][1871] : userauth is OK
2025-06-13 10:20:41,673 [DEBUG][       Thread-251384][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 10:20:41,673 [DEBUG][       Thread-251384][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 10:20:41,673 [DEBUG][       Thread-251384][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 10:20:41,673 [DEBUG][       Thread-251384][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 10:20:41,691 [ INFO][       Thread-251384][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 10:20:41,692 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 10:20:41,692 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 10:20:42,368 [DEBUG][Thread-251386 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:20:42,716 [DEBUG][       Thread-251384][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 10:20:42,716 [DEBUG][       Thread-251384][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 10:20:42,768 [DEBUG][       Thread-251384][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 10:20:42,768 [DEBUG][       Thread-251384][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 10:20:42,778 [DEBUG][       Thread-251384][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 10:20:42,789 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 10:20:42,789 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 10:20:42,802 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 10:20:42,814 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 10:20:42,814 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 10:20:42,814 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 10:20:42,824 [DEBUG][       Thread-251384][   transport.py][1871] : EOF in transport thread
2025-06-13 10:20:51,387 [DEBUG][Thread-251387 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:20:52,825 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 10:20:52,825 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 10:20:52,825 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 10:20:52,827 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 10:20:53,300 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 10, 20, 42), 10.1, 49.07, 0.0, 16.8, 9.06, 0, 0, 0, 2, 0, 0),)
2025-06-13 10:20:53,300 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 10:20:42
2025-06-13 10:20:53,382 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 10:20:53,388 [DEBUG][       Thread-251388][   transport.py][1871] : starting thread (client mode): 0x863bdbd0
2025-06-13 10:20:53,388 [DEBUG][       Thread-251388][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 10:20:53,404 [DEBUG][       Thread-251388][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 10:20:53,404 [ INFO][       Thread-251388][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 10:20:53,408 [DEBUG][       Thread-251388][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 10:20:53,408 [DEBUG][       Thread-251388][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 10:20:53,408 [DEBUG][       Thread-251388][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 10:20:53,408 [DEBUG][       Thread-251388][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:20:53,408 [DEBUG][       Thread-251388][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:20:53,408 [DEBUG][       Thread-251388][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:20:53,408 [DEBUG][       Thread-251388][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:20:53,408 [DEBUG][       Thread-251388][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 10:20:53,408 [DEBUG][       Thread-251388][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 10:20:53,408 [DEBUG][       Thread-251388][   transport.py][1871] : client lang: <none>
2025-06-13 10:20:53,408 [DEBUG][       Thread-251388][   transport.py][1871] : server lang: <none>
2025-06-13 10:20:53,408 [DEBUG][       Thread-251388][   transport.py][1871] : kex follows: False
2025-06-13 10:20:53,408 [DEBUG][       Thread-251388][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 10:20:53,408 [DEBUG][       Thread-251388][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 10:20:53,408 [DEBUG][       Thread-251388][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 10:20:53,408 [DEBUG][       Thread-251388][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 10:20:53,408 [DEBUG][       Thread-251388][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 10:20:53,408 [DEBUG][       Thread-251388][   transport.py][1871] : Compression: none
2025-06-13 10:20:53,408 [DEBUG][       Thread-251388][   transport.py][1871] : === End of kex handshake ===
2025-06-13 10:20:53,424 [DEBUG][       Thread-251388][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 10:20:53,424 [DEBUG][       Thread-251388][   transport.py][1871] : Switch to new keys ...
2025-06-13 10:20:53,425 [DEBUG][       Thread-251388][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 10:20:53,425 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 10:20:53,425 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 10:20:53,426 [DEBUG][       Thread-251388][   transport.py][1871] : userauth is OK
2025-06-13 10:20:53,439 [ INFO][       Thread-251388][   transport.py][1871] : Authentication (password) successful!
2025-06-13 10:20:53,440 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 10:20:54,123 [DEBUG][       Thread-251388][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 10:20:54,123 [DEBUG][       Thread-251388][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 10:20:54,165 [DEBUG][       Thread-251388][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 10:20:54,165 [DEBUG][       Thread-251388][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 10:20:54,168 [DEBUG][       Thread-251388][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 10:20:54,181 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 10:20:54,181 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 10:20:54,183 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 10:20:54,184 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 10:20:54,190 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 10:20:54,191 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 10:20:54,191 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 10:20:54,192 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 10:20:54,192 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.347162 -999.00   +8.90  20.45     54   +0.20 1 1 1 1 1   887    0 9.95 45.87 ----- 20.9 20.4 56.4 24.1 13.6 -27.6 12.2 -28.9 11.1 -28.3 12.3 -26.8
2025-06-13 10:20:54,192 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 10:20:54,192 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 10:20:54,192 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.347162
2025-06-13 10:20:54,193 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 10:20:54,193 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 10:20:54,193 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 10:20:54,193 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 10:20:54,193 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 10:20:54,194 [DEBUG][       Thread-251388][   transport.py][1871] : EOF in transport thread
2025-06-13 10:20:54,194 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T10:20:42', tmtdew=10.1, humidity=49.07, cloud=0.0, wind=16.8, temperature=9.06, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T08:19:54.797', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 10:20:54,278 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 10:20:54,287 [DEBUG][       Thread-251391][   transport.py][1871] : starting thread (client mode): 0x8636a2c0
2025-06-13 10:20:54,287 [DEBUG][       Thread-251391][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 10:20:54,302 [DEBUG][       Thread-251391][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 10:20:54,302 [ INFO][       Thread-251391][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 10:20:54,311 [DEBUG][       Thread-251391][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 10:20:54,311 [DEBUG][       Thread-251391][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 10:20:54,311 [DEBUG][       Thread-251391][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 10:20:54,311 [DEBUG][       Thread-251391][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:20:54,311 [DEBUG][       Thread-251391][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:20:54,311 [DEBUG][       Thread-251391][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:20:54,311 [DEBUG][       Thread-251391][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:20:54,311 [DEBUG][       Thread-251391][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 10:20:54,311 [DEBUG][       Thread-251391][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 10:20:54,311 [DEBUG][       Thread-251391][   transport.py][1871] : client lang: <none>
2025-06-13 10:20:54,311 [DEBUG][       Thread-251391][   transport.py][1871] : server lang: <none>
2025-06-13 10:20:54,311 [DEBUG][       Thread-251391][   transport.py][1871] : kex follows: False
2025-06-13 10:20:54,311 [DEBUG][       Thread-251391][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 10:20:54,312 [DEBUG][       Thread-251391][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 10:20:54,312 [DEBUG][       Thread-251391][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 10:20:54,312 [DEBUG][       Thread-251391][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 10:20:54,312 [DEBUG][       Thread-251391][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 10:20:54,312 [DEBUG][       Thread-251391][   transport.py][1871] : Compression: none
2025-06-13 10:20:54,312 [DEBUG][       Thread-251391][   transport.py][1871] : === End of kex handshake ===
2025-06-13 10:20:54,378 [DEBUG][       Thread-251391][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 10:20:54,379 [DEBUG][       Thread-251391][   transport.py][1871] : Switch to new keys ...
2025-06-13 10:20:54,379 [DEBUG][       Thread-251391][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 10:20:54,380 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 10:20:54,380 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 10:20:54,435 [DEBUG][       Thread-251391][   transport.py][1871] : userauth is OK
2025-06-13 10:20:54,436 [DEBUG][       Thread-251391][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 10:20:54,436 [DEBUG][       Thread-251391][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 10:20:54,436 [DEBUG][       Thread-251391][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 10:20:54,436 [DEBUG][       Thread-251391][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 10:20:54,454 [ INFO][       Thread-251391][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 10:20:54,454 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 10:20:54,455 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 10:20:55,456 [DEBUG][       Thread-251391][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 10:20:55,456 [DEBUG][       Thread-251391][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 10:20:55,504 [DEBUG][       Thread-251391][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 10:20:55,504 [DEBUG][       Thread-251391][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 10:20:55,513 [DEBUG][       Thread-251391][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 10:20:55,523 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 10:20:55,523 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 10:20:55,532 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 10:20:55,541 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 10:20:55,541 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 10:20:55,542 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 10:20:55,549 [DEBUG][       Thread-251391][   transport.py][1871] : EOF in transport thread
2025-06-13 10:21:00,406 [DEBUG][Thread-251393 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:21:05,552 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 10:21:05,552 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 10:21:05,552 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 10:21:05,555 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 10:21:05,932 [DEBUG][Thread-251394 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:21:05,937 [DEBUG][Thread-251395 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:21:06,015 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 10, 20, 42), 10.1, 49.07, 0.0, 16.8, 9.06, 0, 0, 0, 2, 0, 0),)
2025-06-13 10:21:06,015 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 10:20:42
2025-06-13 10:21:06,097 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 10:21:06,101 [DEBUG][       Thread-251396][   transport.py][1871] : starting thread (client mode): 0x8636a950
2025-06-13 10:21:06,101 [DEBUG][       Thread-251396][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 10:21:06,123 [DEBUG][       Thread-251396][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 10:21:06,123 [ INFO][       Thread-251396][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 10:21:06,127 [DEBUG][       Thread-251396][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 10:21:06,127 [DEBUG][       Thread-251396][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 10:21:06,127 [DEBUG][       Thread-251396][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 10:21:06,127 [DEBUG][       Thread-251396][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:21:06,128 [DEBUG][       Thread-251396][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:21:06,128 [DEBUG][       Thread-251396][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:21:06,128 [DEBUG][       Thread-251396][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:21:06,128 [DEBUG][       Thread-251396][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 10:21:06,128 [DEBUG][       Thread-251396][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 10:21:06,128 [DEBUG][       Thread-251396][   transport.py][1871] : client lang: <none>
2025-06-13 10:21:06,128 [DEBUG][       Thread-251396][   transport.py][1871] : server lang: <none>
2025-06-13 10:21:06,128 [DEBUG][       Thread-251396][   transport.py][1871] : kex follows: False
2025-06-13 10:21:06,128 [DEBUG][       Thread-251396][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 10:21:06,128 [DEBUG][       Thread-251396][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 10:21:06,128 [DEBUG][       Thread-251396][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 10:21:06,128 [DEBUG][       Thread-251396][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 10:21:06,128 [DEBUG][       Thread-251396][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 10:21:06,128 [DEBUG][       Thread-251396][   transport.py][1871] : Compression: none
2025-06-13 10:21:06,128 [DEBUG][       Thread-251396][   transport.py][1871] : === End of kex handshake ===
2025-06-13 10:21:06,144 [DEBUG][       Thread-251396][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 10:21:06,145 [DEBUG][       Thread-251396][   transport.py][1871] : Switch to new keys ...
2025-06-13 10:21:06,145 [DEBUG][       Thread-251396][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 10:21:06,145 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 10:21:06,145 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 10:21:06,146 [DEBUG][       Thread-251396][   transport.py][1871] : userauth is OK
2025-06-13 10:21:06,171 [ INFO][       Thread-251396][   transport.py][1871] : Authentication (password) successful!
2025-06-13 10:21:06,171 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 10:21:06,793 [DEBUG][       Thread-251396][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 10:21:06,793 [DEBUG][       Thread-251396][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 10:21:06,837 [DEBUG][       Thread-251396][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 10:21:06,837 [DEBUG][       Thread-251396][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 10:21:06,840 [DEBUG][       Thread-251396][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 10:21:06,853 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 10:21:06,853 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 10:21:06,855 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 10:21:06,856 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 10:21:06,861 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 10:21:06,863 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 10:21:06,863 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 10:21:06,863 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 10:21:06,863 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.347509 -999.00   +9.00  19.14     54   +0.40 1 1 1 1 1   887    0 9.79 47.07 ----- 21.4 19.1 66.6 27.2 13.5 -28.2 12.2 -30.0 11.1 -28.2 12.4 -26.6
2025-06-13 10:21:06,864 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 10:21:06,864 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 10:21:06,864 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.347509
2025-06-13 10:21:06,864 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 10:21:06,865 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 10:21:06,865 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 10:21:06,865 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 10:21:06,865 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 10:21:06,865 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T10:20:42', tmtdew=10.1, humidity=49.07, cloud=0.0, wind=16.8, temperature=9.06, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T08:20:24.778', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 10:21:06,866 [DEBUG][       Thread-251396][   transport.py][1871] : EOF in transport thread
2025-06-13 10:21:06,948 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 10:21:06,958 [DEBUG][       Thread-251399][   transport.py][1871] : starting thread (client mode): 0x863cb820
2025-06-13 10:21:06,958 [DEBUG][       Thread-251399][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 10:21:06,969 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:21:06,969 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:21:06,974 [DEBUG][       Thread-251399][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 10:21:06,974 [ INFO][       Thread-251399][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 10:21:06,981 [DEBUG][       Thread-251399][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 10:21:06,982 [DEBUG][       Thread-251399][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 10:21:06,982 [DEBUG][       Thread-251399][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 10:21:06,982 [DEBUG][       Thread-251399][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:21:06,982 [DEBUG][       Thread-251399][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:21:06,982 [DEBUG][       Thread-251399][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:21:06,982 [DEBUG][       Thread-251399][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:21:06,982 [DEBUG][       Thread-251399][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 10:21:06,982 [DEBUG][       Thread-251399][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 10:21:06,982 [DEBUG][       Thread-251399][   transport.py][1871] : client lang: <none>
2025-06-13 10:21:06,982 [DEBUG][       Thread-251399][   transport.py][1871] : server lang: <none>
2025-06-13 10:21:06,983 [DEBUG][       Thread-251399][   transport.py][1871] : kex follows: False
2025-06-13 10:21:06,983 [DEBUG][       Thread-251399][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 10:21:06,983 [DEBUG][       Thread-251399][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 10:21:06,983 [DEBUG][       Thread-251399][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 10:21:06,983 [DEBUG][       Thread-251399][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 10:21:06,983 [DEBUG][       Thread-251399][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 10:21:06,983 [DEBUG][       Thread-251399][   transport.py][1871] : Compression: none
2025-06-13 10:21:06,983 [DEBUG][       Thread-251399][   transport.py][1871] : === End of kex handshake ===
2025-06-13 10:21:07,040 [DEBUG][       Thread-251399][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 10:21:07,041 [DEBUG][       Thread-251399][   transport.py][1871] : Switch to new keys ...
2025-06-13 10:21:07,041 [DEBUG][       Thread-251399][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 10:21:07,041 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 10:21:07,042 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 10:21:07,101 [DEBUG][       Thread-251399][   transport.py][1871] : userauth is OK
2025-06-13 10:21:07,101 [DEBUG][       Thread-251399][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 10:21:07,101 [DEBUG][       Thread-251399][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 10:21:07,101 [DEBUG][       Thread-251399][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 10:21:07,101 [DEBUG][       Thread-251399][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 10:21:07,134 [ INFO][       Thread-251399][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 10:21:07,134 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 10:21:07,134 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 10:21:08,178 [DEBUG][       Thread-251399][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 10:21:08,178 [DEBUG][       Thread-251399][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 10:21:08,228 [DEBUG][       Thread-251399][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 10:21:08,228 [DEBUG][       Thread-251399][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 10:21:08,237 [DEBUG][       Thread-251399][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 10:21:08,245 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 10:21:08,246 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 10:21:08,254 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 10:21:08,263 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 10:21:08,263 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 10:21:08,263 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 10:21:08,271 [DEBUG][       Thread-251399][   transport.py][1871] : EOF in transport thread
2025-06-13 10:21:09,437 [DEBUG][Thread-251401 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:21:18,272 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 10:21:18,272 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 10:21:18,272 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 10:21:18,273 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 10:21:18,453 [DEBUG][Thread-251402 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:21:18,742 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 10, 21, 14), 10.22, 48.8, 0.0, 17.45, 9.17, 0, 0, 0, 2, 0, 0),)
2025-06-13 10:21:18,742 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 10:21:14
2025-06-13 10:21:18,825 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 10:21:18,830 [DEBUG][       Thread-251403][   transport.py][1871] : starting thread (client mode): 0x84205270
2025-06-13 10:21:18,830 [DEBUG][       Thread-251403][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 10:21:18,850 [DEBUG][       Thread-251403][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 10:21:18,850 [ INFO][       Thread-251403][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 10:21:18,853 [DEBUG][       Thread-251403][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 10:21:18,853 [DEBUG][       Thread-251403][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 10:21:18,853 [DEBUG][       Thread-251403][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 10:21:18,853 [DEBUG][       Thread-251403][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:21:18,854 [DEBUG][       Thread-251403][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:21:18,854 [DEBUG][       Thread-251403][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:21:18,854 [DEBUG][       Thread-251403][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:21:18,854 [DEBUG][       Thread-251403][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 10:21:18,854 [DEBUG][       Thread-251403][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 10:21:18,854 [DEBUG][       Thread-251403][   transport.py][1871] : client lang: <none>
2025-06-13 10:21:18,854 [DEBUG][       Thread-251403][   transport.py][1871] : server lang: <none>
2025-06-13 10:21:18,854 [DEBUG][       Thread-251403][   transport.py][1871] : kex follows: False
2025-06-13 10:21:18,854 [DEBUG][       Thread-251403][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 10:21:18,854 [DEBUG][       Thread-251403][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 10:21:18,854 [DEBUG][       Thread-251403][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 10:21:18,854 [DEBUG][       Thread-251403][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 10:21:18,854 [DEBUG][       Thread-251403][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 10:21:18,854 [DEBUG][       Thread-251403][   transport.py][1871] : Compression: none
2025-06-13 10:21:18,854 [DEBUG][       Thread-251403][   transport.py][1871] : === End of kex handshake ===
2025-06-13 10:21:18,869 [DEBUG][       Thread-251403][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 10:21:18,869 [DEBUG][       Thread-251403][   transport.py][1871] : Switch to new keys ...
2025-06-13 10:21:18,869 [DEBUG][       Thread-251403][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 10:21:18,869 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 10:21:18,869 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 10:21:18,870 [DEBUG][       Thread-251403][   transport.py][1871] : userauth is OK
2025-06-13 10:21:18,883 [ INFO][       Thread-251403][   transport.py][1871] : Authentication (password) successful!
2025-06-13 10:21:18,883 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 10:21:19,556 [DEBUG][       Thread-251403][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 10:21:19,556 [DEBUG][       Thread-251403][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 10:21:19,597 [DEBUG][       Thread-251403][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 10:21:19,597 [DEBUG][       Thread-251403][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 10:21:19,600 [DEBUG][       Thread-251403][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 10:21:19,614 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 10:21:19,614 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 10:21:19,616 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 10:21:19,618 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 10:21:19,622 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 10:21:19,625 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 10:21:19,625 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 10:21:19,626 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 10:21:19,626 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.347509 -999.00   +9.00  19.14     54   +0.40 1 1 1 1 1   887    0 9.79 47.07 ----- 21.4 19.1 66.6 27.2 13.5 -28.2 12.2 -30.0 11.1 -28.2 12.4 -26.6
2025-06-13 10:21:19,626 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 10:21:19,626 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 10:21:19,626 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.347509
2025-06-13 10:21:19,627 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 10:21:19,627 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 10:21:19,627 [DEBUG][       Thread-251403][   transport.py][1871] : EOF in transport thread
2025-06-13 10:21:19,628 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 10:21:19,628 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 10:21:19,628 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 10:21:19,628 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T10:21:14', tmtdew=10.22, humidity=48.8, cloud=0.0, wind=17.45, temperature=9.17, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T08:20:24.778', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 10:21:19,715 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 10:21:19,725 [DEBUG][       Thread-251406][   transport.py][1871] : starting thread (client mode): 0x86369300
2025-06-13 10:21:19,725 [DEBUG][       Thread-251406][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 10:21:19,740 [DEBUG][       Thread-251406][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 10:21:19,740 [ INFO][       Thread-251406][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 10:21:19,748 [DEBUG][       Thread-251406][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 10:21:19,748 [DEBUG][       Thread-251406][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 10:21:19,748 [DEBUG][       Thread-251406][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 10:21:19,748 [DEBUG][       Thread-251406][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:21:19,748 [DEBUG][       Thread-251406][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:21:19,748 [DEBUG][       Thread-251406][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:21:19,748 [DEBUG][       Thread-251406][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:21:19,748 [DEBUG][       Thread-251406][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 10:21:19,748 [DEBUG][       Thread-251406][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 10:21:19,748 [DEBUG][       Thread-251406][   transport.py][1871] : client lang: <none>
2025-06-13 10:21:19,748 [DEBUG][       Thread-251406][   transport.py][1871] : server lang: <none>
2025-06-13 10:21:19,748 [DEBUG][       Thread-251406][   transport.py][1871] : kex follows: False
2025-06-13 10:21:19,748 [DEBUG][       Thread-251406][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 10:21:19,749 [DEBUG][       Thread-251406][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 10:21:19,749 [DEBUG][       Thread-251406][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 10:21:19,749 [DEBUG][       Thread-251406][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 10:21:19,749 [DEBUG][       Thread-251406][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 10:21:19,749 [DEBUG][       Thread-251406][   transport.py][1871] : Compression: none
2025-06-13 10:21:19,749 [DEBUG][       Thread-251406][   transport.py][1871] : === End of kex handshake ===
2025-06-13 10:21:19,806 [DEBUG][       Thread-251406][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 10:21:19,806 [DEBUG][       Thread-251406][   transport.py][1871] : Switch to new keys ...
2025-06-13 10:21:19,807 [DEBUG][       Thread-251406][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 10:21:19,807 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 10:21:19,808 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 10:21:19,883 [DEBUG][       Thread-251406][   transport.py][1871] : userauth is OK
2025-06-13 10:21:19,883 [DEBUG][       Thread-251406][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 10:21:19,883 [DEBUG][       Thread-251406][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 10:21:19,883 [DEBUG][       Thread-251406][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 10:21:19,883 [DEBUG][       Thread-251406][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 10:21:19,902 [ INFO][       Thread-251406][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 10:21:19,902 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 10:21:19,903 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 10:21:20,926 [DEBUG][       Thread-251406][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 10:21:20,926 [DEBUG][       Thread-251406][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 10:21:20,980 [DEBUG][       Thread-251406][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 10:21:20,980 [DEBUG][       Thread-251406][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 10:21:20,989 [DEBUG][       Thread-251406][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 10:21:20,998 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 10:21:20,998 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 10:21:21,006 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 10:21:21,016 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 10:21:21,016 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 10:21:21,017 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 10:21:21,024 [DEBUG][       Thread-251406][   transport.py][1871] : EOF in transport thread
2025-06-13 10:21:25,584 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:21:25,585 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:21:27,470 [DEBUG][Thread-251408 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:21:31,024 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 10:21:31,024 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 10:21:31,024 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 10:21:31,027 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 10:21:31,482 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 10, 21, 14), 10.22, 48.8, 0.0, 17.45, 9.17, 0, 0, 0, 2, 0, 0),)
2025-06-13 10:21:31,483 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 10:21:14
2025-06-13 10:21:31,563 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 10:21:31,567 [DEBUG][       Thread-251409][   transport.py][1871] : starting thread (client mode): 0x84206c80
2025-06-13 10:21:31,567 [DEBUG][       Thread-251409][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 10:21:31,586 [DEBUG][       Thread-251409][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 10:21:31,587 [ INFO][       Thread-251409][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 10:21:31,590 [DEBUG][       Thread-251409][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 10:21:31,590 [DEBUG][       Thread-251409][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 10:21:31,590 [DEBUG][       Thread-251409][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 10:21:31,590 [DEBUG][       Thread-251409][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:21:31,590 [DEBUG][       Thread-251409][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:21:31,590 [DEBUG][       Thread-251409][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:21:31,590 [DEBUG][       Thread-251409][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:21:31,590 [DEBUG][       Thread-251409][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 10:21:31,590 [DEBUG][       Thread-251409][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 10:21:31,590 [DEBUG][       Thread-251409][   transport.py][1871] : client lang: <none>
2025-06-13 10:21:31,590 [DEBUG][       Thread-251409][   transport.py][1871] : server lang: <none>
2025-06-13 10:21:31,590 [DEBUG][       Thread-251409][   transport.py][1871] : kex follows: False
2025-06-13 10:21:31,590 [DEBUG][       Thread-251409][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 10:21:31,590 [DEBUG][       Thread-251409][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 10:21:31,590 [DEBUG][       Thread-251409][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 10:21:31,590 [DEBUG][       Thread-251409][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 10:21:31,590 [DEBUG][       Thread-251409][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 10:21:31,590 [DEBUG][       Thread-251409][   transport.py][1871] : Compression: none
2025-06-13 10:21:31,590 [DEBUG][       Thread-251409][   transport.py][1871] : === End of kex handshake ===
2025-06-13 10:21:31,606 [DEBUG][       Thread-251409][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 10:21:31,607 [DEBUG][       Thread-251409][   transport.py][1871] : Switch to new keys ...
2025-06-13 10:21:31,607 [DEBUG][       Thread-251409][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 10:21:31,607 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 10:21:31,608 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 10:21:31,609 [DEBUG][       Thread-251409][   transport.py][1871] : userauth is OK
2025-06-13 10:21:31,633 [ INFO][       Thread-251409][   transport.py][1871] : Authentication (password) successful!
2025-06-13 10:21:31,634 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 10:21:32,264 [DEBUG][       Thread-251409][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 10:21:32,264 [DEBUG][       Thread-251409][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 10:21:32,309 [DEBUG][       Thread-251409][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 10:21:32,309 [DEBUG][       Thread-251409][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 10:21:32,311 [DEBUG][       Thread-251409][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 10:21:32,326 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 10:21:32,327 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 10:21:32,328 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 10:21:32,330 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 10:21:32,335 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 10:21:32,337 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 10:21:32,337 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 10:21:32,337 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 10:21:32,338 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.348204 -999.00   +9.00  20.73     53   +0.00 1 1 1 1 1   887    0 9.92 46.58 ----- 22.6 20.7 50.4 26.4 13.5 -28.6 12.2 -30.1 11.1 -28.1 12.4 -27.0
2025-06-13 10:21:32,338 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 10:21:32,338 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 10:21:32,338 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.348204
2025-06-13 10:21:32,338 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 10:21:32,339 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 10:21:32,339 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 10:21:32,339 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 10:21:32,339 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 10:21:32,339 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T10:21:14', tmtdew=10.22, humidity=48.8, cloud=0.0, wind=17.45, temperature=9.17, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T08:21:24.826', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 10:21:32,339 [DEBUG][       Thread-251409][   transport.py][1871] : EOF in transport thread
2025-06-13 10:21:32,423 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 10:21:32,433 [DEBUG][       Thread-251412][   transport.py][1871] : starting thread (client mode): 0x863a6bf0
2025-06-13 10:21:32,433 [DEBUG][       Thread-251412][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 10:21:32,451 [DEBUG][       Thread-251412][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 10:21:32,451 [ INFO][       Thread-251412][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 10:21:32,468 [DEBUG][       Thread-251412][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 10:21:32,468 [DEBUG][       Thread-251412][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 10:21:32,468 [DEBUG][       Thread-251412][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 10:21:32,468 [DEBUG][       Thread-251412][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:21:32,468 [DEBUG][       Thread-251412][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:21:32,468 [DEBUG][       Thread-251412][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:21:32,468 [DEBUG][       Thread-251412][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:21:32,468 [DEBUG][       Thread-251412][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 10:21:32,468 [DEBUG][       Thread-251412][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 10:21:32,468 [DEBUG][       Thread-251412][   transport.py][1871] : client lang: <none>
2025-06-13 10:21:32,468 [DEBUG][       Thread-251412][   transport.py][1871] : server lang: <none>
2025-06-13 10:21:32,468 [DEBUG][       Thread-251412][   transport.py][1871] : kex follows: False
2025-06-13 10:21:32,469 [DEBUG][       Thread-251412][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 10:21:32,469 [DEBUG][       Thread-251412][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 10:21:32,469 [DEBUG][       Thread-251412][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 10:21:32,469 [DEBUG][       Thread-251412][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 10:21:32,469 [DEBUG][       Thread-251412][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 10:21:32,469 [DEBUG][       Thread-251412][   transport.py][1871] : Compression: none
2025-06-13 10:21:32,469 [DEBUG][       Thread-251412][   transport.py][1871] : === End of kex handshake ===
2025-06-13 10:21:32,533 [DEBUG][       Thread-251412][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 10:21:32,534 [DEBUG][       Thread-251412][   transport.py][1871] : Switch to new keys ...
2025-06-13 10:21:32,534 [DEBUG][       Thread-251412][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 10:21:32,534 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 10:21:32,535 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 10:21:32,590 [DEBUG][       Thread-251412][   transport.py][1871] : userauth is OK
2025-06-13 10:21:32,590 [DEBUG][       Thread-251412][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 10:21:32,590 [DEBUG][       Thread-251412][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 10:21:32,590 [DEBUG][       Thread-251412][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 10:21:32,590 [DEBUG][       Thread-251412][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 10:21:32,608 [ INFO][       Thread-251412][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 10:21:32,609 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 10:21:32,609 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 10:21:33,583 [DEBUG][       Thread-251412][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 10:21:33,584 [DEBUG][       Thread-251412][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 10:21:33,640 [DEBUG][       Thread-251412][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 10:21:33,640 [DEBUG][       Thread-251412][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 10:21:33,649 [DEBUG][       Thread-251412][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 10:21:33,658 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 10:21:33,658 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 10:21:33,667 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 10:21:33,675 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 10:21:33,676 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 10:21:33,676 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 10:21:33,684 [DEBUG][       Thread-251412][   transport.py][1871] : EOF in transport thread
2025-06-13 10:21:36,502 [DEBUG][Thread-251414 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:21:43,684 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 10:21:43,684 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 10:21:43,684 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 10:21:43,687 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 10:21:44,141 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 10, 21, 14), 10.22, 48.8, 0.0, 17.45, 9.17, 0, 0, 0, 2, 0, 0),)
2025-06-13 10:21:44,141 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 10:21:14
2025-06-13 10:21:44,222 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 10:21:44,228 [DEBUG][       Thread-251415][   transport.py][1871] : starting thread (client mode): 0x842069e0
2025-06-13 10:21:44,228 [DEBUG][       Thread-251415][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 10:21:44,248 [DEBUG][       Thread-251415][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 10:21:44,248 [ INFO][       Thread-251415][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 10:21:44,251 [DEBUG][       Thread-251415][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 10:21:44,251 [DEBUG][       Thread-251415][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 10:21:44,251 [DEBUG][       Thread-251415][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 10:21:44,251 [DEBUG][       Thread-251415][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:21:44,251 [DEBUG][       Thread-251415][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:21:44,251 [DEBUG][       Thread-251415][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:21:44,251 [DEBUG][       Thread-251415][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:21:44,251 [DEBUG][       Thread-251415][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 10:21:44,251 [DEBUG][       Thread-251415][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 10:21:44,251 [DEBUG][       Thread-251415][   transport.py][1871] : client lang: <none>
2025-06-13 10:21:44,251 [DEBUG][       Thread-251415][   transport.py][1871] : server lang: <none>
2025-06-13 10:21:44,251 [DEBUG][       Thread-251415][   transport.py][1871] : kex follows: False
2025-06-13 10:21:44,251 [DEBUG][       Thread-251415][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 10:21:44,251 [DEBUG][       Thread-251415][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 10:21:44,251 [DEBUG][       Thread-251415][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 10:21:44,251 [DEBUG][       Thread-251415][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 10:21:44,251 [DEBUG][       Thread-251415][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 10:21:44,251 [DEBUG][       Thread-251415][   transport.py][1871] : Compression: none
2025-06-13 10:21:44,251 [DEBUG][       Thread-251415][   transport.py][1871] : === End of kex handshake ===
2025-06-13 10:21:44,268 [DEBUG][       Thread-251415][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 10:21:44,268 [DEBUG][       Thread-251415][   transport.py][1871] : Switch to new keys ...
2025-06-13 10:21:44,269 [DEBUG][       Thread-251415][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 10:21:44,269 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 10:21:44,269 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 10:21:44,270 [DEBUG][       Thread-251415][   transport.py][1871] : userauth is OK
2025-06-13 10:21:44,283 [ INFO][       Thread-251415][   transport.py][1871] : Authentication (password) successful!
2025-06-13 10:21:44,283 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 10:21:44,906 [DEBUG][       Thread-251415][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 10:21:44,906 [DEBUG][       Thread-251415][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 10:21:44,949 [DEBUG][       Thread-251415][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 10:21:44,949 [DEBUG][       Thread-251415][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 10:21:44,952 [DEBUG][       Thread-251415][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 10:21:44,965 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 10:21:44,966 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 10:21:44,968 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 10:21:44,969 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 10:21:44,975 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 10:21:44,976 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 10:21:44,977 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 10:21:44,977 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 10:21:44,977 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.348204 -999.00   +9.00  20.73     53   +0.00 1 1 1 1 1   887    0 9.92 46.58 ----- 22.6 20.7 50.4 26.4 13.5 -28.6 12.2 -30.1 11.1 -28.1 12.4 -27.0
2025-06-13 10:21:44,977 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 10:21:44,977 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 10:21:44,978 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.348204
2025-06-13 10:21:44,978 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 10:21:44,978 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 10:21:44,978 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 10:21:44,979 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 10:21:44,979 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 10:21:44,979 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T10:21:14', tmtdew=10.22, humidity=48.8, cloud=0.0, wind=17.45, temperature=9.17, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T08:21:24.826', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 10:21:44,980 [DEBUG][       Thread-251415][   transport.py][1871] : EOF in transport thread
2025-06-13 10:21:45,069 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 10:21:45,085 [DEBUG][       Thread-251418][   transport.py][1871] : starting thread (client mode): 0x863ee6b0
2025-06-13 10:21:45,085 [DEBUG][       Thread-251418][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 10:21:45,099 [DEBUG][       Thread-251418][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 10:21:45,099 [ INFO][       Thread-251418][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 10:21:45,107 [DEBUG][       Thread-251418][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 10:21:45,107 [DEBUG][       Thread-251418][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 10:21:45,107 [DEBUG][       Thread-251418][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 10:21:45,107 [DEBUG][       Thread-251418][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:21:45,107 [DEBUG][       Thread-251418][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:21:45,107 [DEBUG][       Thread-251418][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:21:45,107 [DEBUG][       Thread-251418][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:21:45,107 [DEBUG][       Thread-251418][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 10:21:45,107 [DEBUG][       Thread-251418][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 10:21:45,108 [DEBUG][       Thread-251418][   transport.py][1871] : client lang: <none>
2025-06-13 10:21:45,108 [DEBUG][       Thread-251418][   transport.py][1871] : server lang: <none>
2025-06-13 10:21:45,108 [DEBUG][       Thread-251418][   transport.py][1871] : kex follows: False
2025-06-13 10:21:45,108 [DEBUG][       Thread-251418][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 10:21:45,108 [DEBUG][       Thread-251418][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 10:21:45,108 [DEBUG][       Thread-251418][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 10:21:45,108 [DEBUG][       Thread-251418][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 10:21:45,108 [DEBUG][       Thread-251418][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 10:21:45,108 [DEBUG][       Thread-251418][   transport.py][1871] : Compression: none
2025-06-13 10:21:45,108 [DEBUG][       Thread-251418][   transport.py][1871] : === End of kex handshake ===
2025-06-13 10:21:45,166 [DEBUG][       Thread-251418][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 10:21:45,166 [DEBUG][       Thread-251418][   transport.py][1871] : Switch to new keys ...
2025-06-13 10:21:45,166 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 10:21:45,167 [DEBUG][       Thread-251418][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 10:21:45,168 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 10:21:45,222 [DEBUG][       Thread-251418][   transport.py][1871] : userauth is OK
2025-06-13 10:21:45,222 [DEBUG][       Thread-251418][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 10:21:45,222 [DEBUG][       Thread-251418][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 10:21:45,222 [DEBUG][       Thread-251418][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 10:21:45,222 [DEBUG][       Thread-251418][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 10:21:45,241 [ INFO][       Thread-251418][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 10:21:45,242 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 10:21:45,242 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 10:21:45,523 [DEBUG][Thread-251420 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:21:46,299 [DEBUG][       Thread-251418][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 10:21:46,300 [DEBUG][       Thread-251418][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 10:21:46,352 [DEBUG][       Thread-251418][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 10:21:46,352 [DEBUG][       Thread-251418][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 10:21:46,362 [DEBUG][       Thread-251418][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 10:21:46,379 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 10:21:46,380 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 10:21:46,389 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 10:21:46,401 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 10:21:46,401 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 10:21:46,402 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 10:21:46,411 [DEBUG][       Thread-251418][   transport.py][1871] : EOF in transport thread
2025-06-13 10:21:54,541 [DEBUG][Thread-251421 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:21:56,412 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 10:21:56,412 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 10:21:56,412 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 10:21:56,413 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 10:21:56,900 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 10, 21, 45), 10.16, 48.99, 0.0, 16.68, 9.18, 0, 0, 0, 2, 0, 0),)
2025-06-13 10:21:56,900 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 10:21:45
2025-06-13 10:21:56,984 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 10:21:56,988 [DEBUG][       Thread-251422][   transport.py][1871] : starting thread (client mode): 0x86368970
2025-06-13 10:21:56,988 [DEBUG][       Thread-251422][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 10:21:57,010 [DEBUG][       Thread-251422][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 10:21:57,010 [ INFO][       Thread-251422][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 10:21:57,014 [DEBUG][       Thread-251422][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 10:21:57,014 [DEBUG][       Thread-251422][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 10:21:57,014 [DEBUG][       Thread-251422][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 10:21:57,014 [DEBUG][       Thread-251422][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:21:57,014 [DEBUG][       Thread-251422][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:21:57,014 [DEBUG][       Thread-251422][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:21:57,014 [DEBUG][       Thread-251422][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:21:57,014 [DEBUG][       Thread-251422][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 10:21:57,014 [DEBUG][       Thread-251422][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 10:21:57,014 [DEBUG][       Thread-251422][   transport.py][1871] : client lang: <none>
2025-06-13 10:21:57,014 [DEBUG][       Thread-251422][   transport.py][1871] : server lang: <none>
2025-06-13 10:21:57,014 [DEBUG][       Thread-251422][   transport.py][1871] : kex follows: False
2025-06-13 10:21:57,014 [DEBUG][       Thread-251422][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 10:21:57,014 [DEBUG][       Thread-251422][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 10:21:57,014 [DEBUG][       Thread-251422][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 10:21:57,014 [DEBUG][       Thread-251422][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 10:21:57,014 [DEBUG][       Thread-251422][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 10:21:57,014 [DEBUG][       Thread-251422][   transport.py][1871] : Compression: none
2025-06-13 10:21:57,014 [DEBUG][       Thread-251422][   transport.py][1871] : === End of kex handshake ===
2025-06-13 10:21:57,030 [DEBUG][       Thread-251422][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 10:21:57,030 [DEBUG][       Thread-251422][   transport.py][1871] : Switch to new keys ...
2025-06-13 10:21:57,030 [DEBUG][       Thread-251422][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 10:21:57,030 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 10:21:57,030 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 10:21:57,030 [DEBUG][       Thread-251422][   transport.py][1871] : userauth is OK
2025-06-13 10:21:57,054 [ INFO][       Thread-251422][   transport.py][1871] : Authentication (password) successful!
2025-06-13 10:21:57,054 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 10:21:57,662 [DEBUG][       Thread-251422][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 10:21:57,662 [DEBUG][       Thread-251422][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 10:21:57,705 [DEBUG][       Thread-251422][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 10:21:57,705 [DEBUG][       Thread-251422][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 10:21:57,708 [DEBUG][       Thread-251422][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 10:21:57,720 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 10:21:57,720 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 10:21:57,721 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 10:21:57,723 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 10:21:57,729 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 10:21:57,731 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 10:21:57,731 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 10:21:57,732 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 10:21:57,732 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.348204 -999.00   +9.00  20.73     53   +0.00 1 1 1 1 1   887    0 9.92 46.58 ----- 22.6 20.7 50.4 26.4 13.5 -28.6 12.2 -30.1 11.1 -28.1 12.4 -27.0
2025-06-13 10:21:57,732 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 10:21:57,732 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 10:21:57,732 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.348204
2025-06-13 10:21:57,732 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 10:21:57,733 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 10:21:57,733 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 10:21:57,733 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 10:21:57,733 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 10:21:57,733 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T10:21:45', tmtdew=10.16, humidity=48.99, cloud=0.0, wind=16.68, temperature=9.18, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T08:21:24.826', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 10:21:57,734 [DEBUG][       Thread-251422][   transport.py][1871] : EOF in transport thread
2025-06-13 10:21:57,818 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 10:21:57,827 [DEBUG][       Thread-251425][   transport.py][1871] : starting thread (client mode): 0x842047c0
2025-06-13 10:21:57,827 [DEBUG][       Thread-251425][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 10:21:57,841 [DEBUG][       Thread-251425][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 10:21:57,842 [ INFO][       Thread-251425][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 10:21:57,849 [DEBUG][       Thread-251425][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 10:21:57,849 [DEBUG][       Thread-251425][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 10:21:57,849 [DEBUG][       Thread-251425][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 10:21:57,849 [DEBUG][       Thread-251425][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:21:57,849 [DEBUG][       Thread-251425][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:21:57,849 [DEBUG][       Thread-251425][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:21:57,849 [DEBUG][       Thread-251425][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:21:57,849 [DEBUG][       Thread-251425][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 10:21:57,849 [DEBUG][       Thread-251425][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 10:21:57,849 [DEBUG][       Thread-251425][   transport.py][1871] : client lang: <none>
2025-06-13 10:21:57,849 [DEBUG][       Thread-251425][   transport.py][1871] : server lang: <none>
2025-06-13 10:21:57,849 [DEBUG][       Thread-251425][   transport.py][1871] : kex follows: False
2025-06-13 10:21:57,849 [DEBUG][       Thread-251425][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 10:21:57,850 [DEBUG][       Thread-251425][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 10:21:57,850 [DEBUG][       Thread-251425][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 10:21:57,850 [DEBUG][       Thread-251425][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 10:21:57,850 [DEBUG][       Thread-251425][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 10:21:57,850 [DEBUG][       Thread-251425][   transport.py][1871] : Compression: none
2025-06-13 10:21:57,850 [DEBUG][       Thread-251425][   transport.py][1871] : === End of kex handshake ===
2025-06-13 10:21:57,905 [DEBUG][       Thread-251425][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 10:21:57,906 [DEBUG][       Thread-251425][   transport.py][1871] : Switch to new keys ...
2025-06-13 10:21:57,906 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 10:21:57,907 [DEBUG][       Thread-251425][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 10:21:57,907 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 10:21:57,962 [DEBUG][       Thread-251425][   transport.py][1871] : userauth is OK
2025-06-13 10:21:57,962 [DEBUG][       Thread-251425][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 10:21:57,962 [DEBUG][       Thread-251425][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 10:21:57,962 [DEBUG][       Thread-251425][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 10:21:57,962 [DEBUG][       Thread-251425][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 10:21:57,981 [ INFO][       Thread-251425][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 10:21:57,981 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 10:21:57,981 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 10:21:58,984 [DEBUG][       Thread-251425][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 10:21:58,984 [DEBUG][       Thread-251425][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 10:21:59,036 [DEBUG][       Thread-251425][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 10:21:59,036 [DEBUG][       Thread-251425][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 10:21:59,049 [DEBUG][       Thread-251425][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 10:21:59,058 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 10:21:59,058 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 10:21:59,066 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 10:21:59,075 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 10:21:59,075 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 10:21:59,076 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 10:21:59,083 [DEBUG][       Thread-251425][   transport.py][1871] : EOF in transport thread
2025-06-13 10:22:03,556 [DEBUG][Thread-251427 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:22:05,989 [DEBUG][Thread-251428 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:22:07,025 [DEBUG][Thread-251429 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:22:08,097 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:22:08,098 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:22:09,086 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 10:22:09,086 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 10:22:09,086 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 10:22:09,088 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 10:22:09,556 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 10, 21, 45), 10.16, 48.99, 0.0, 16.68, 9.18, 0, 0, 0, 2, 0, 0),)
2025-06-13 10:22:09,556 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 10:21:45
2025-06-13 10:22:09,637 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 10:22:09,642 [DEBUG][       Thread-251430][   transport.py][1871] : starting thread (client mode): 0x842047f0
2025-06-13 10:22:09,642 [DEBUG][       Thread-251430][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 10:22:09,662 [DEBUG][       Thread-251430][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 10:22:09,662 [ INFO][       Thread-251430][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 10:22:09,666 [DEBUG][       Thread-251430][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 10:22:09,666 [DEBUG][       Thread-251430][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 10:22:09,666 [DEBUG][       Thread-251430][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 10:22:09,666 [DEBUG][       Thread-251430][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:22:09,666 [DEBUG][       Thread-251430][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:22:09,666 [DEBUG][       Thread-251430][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:22:09,666 [DEBUG][       Thread-251430][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:22:09,666 [DEBUG][       Thread-251430][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 10:22:09,666 [DEBUG][       Thread-251430][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 10:22:09,666 [DEBUG][       Thread-251430][   transport.py][1871] : client lang: <none>
2025-06-13 10:22:09,666 [DEBUG][       Thread-251430][   transport.py][1871] : server lang: <none>
2025-06-13 10:22:09,666 [DEBUG][       Thread-251430][   transport.py][1871] : kex follows: False
2025-06-13 10:22:09,666 [DEBUG][       Thread-251430][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 10:22:09,666 [DEBUG][       Thread-251430][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 10:22:09,666 [DEBUG][       Thread-251430][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 10:22:09,666 [DEBUG][       Thread-251430][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 10:22:09,666 [DEBUG][       Thread-251430][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 10:22:09,666 [DEBUG][       Thread-251430][   transport.py][1871] : Compression: none
2025-06-13 10:22:09,666 [DEBUG][       Thread-251430][   transport.py][1871] : === End of kex handshake ===
2025-06-13 10:22:09,675 [DEBUG][       Thread-251430][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 10:22:09,676 [DEBUG][       Thread-251430][   transport.py][1871] : Switch to new keys ...
2025-06-13 10:22:09,676 [DEBUG][       Thread-251430][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 10:22:09,676 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 10:22:09,677 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 10:22:09,678 [DEBUG][       Thread-251430][   transport.py][1871] : userauth is OK
2025-06-13 10:22:09,702 [ INFO][       Thread-251430][   transport.py][1871] : Authentication (password) successful!
2025-06-13 10:22:09,702 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 10:22:10,367 [DEBUG][       Thread-251430][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 10:22:10,367 [DEBUG][       Thread-251430][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 10:22:10,409 [DEBUG][       Thread-251430][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 10:22:10,409 [DEBUG][       Thread-251430][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 10:22:10,412 [DEBUG][       Thread-251430][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 10:22:10,427 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 10:22:10,427 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 10:22:10,428 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 10:22:10,430 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 10:22:10,435 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 10:22:10,437 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 10:22:10,437 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 10:22:10,437 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 10:22:10,437 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.348551 -999.00   +8.90  20.24     53   +0.00 1 1 1 1 1   887    0 9.92 42.83 ----- 21.0 20.2 42.0 25.0 13.5 -28.6 12.2 -29.7 11.2 -28.4 12.4 -26.6
2025-06-13 10:22:10,438 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 10:22:10,438 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 10:22:10,438 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.348551
2025-06-13 10:22:10,438 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 10:22:10,438 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 10:22:10,439 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 10:22:10,439 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 10:22:10,439 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 10:22:10,439 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T10:21:45', tmtdew=10.16, humidity=48.99, cloud=0.0, wind=16.68, temperature=9.18, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T08:21:54.806', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 10:22:10,439 [DEBUG][       Thread-251430][   transport.py][1871] : EOF in transport thread
2025-06-13 10:22:10,515 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 10:22:10,529 [DEBUG][       Thread-251433][   transport.py][1871] : starting thread (client mode): 0x867b6770
2025-06-13 10:22:10,529 [DEBUG][       Thread-251433][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 10:22:10,544 [DEBUG][       Thread-251433][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 10:22:10,545 [ INFO][       Thread-251433][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 10:22:10,552 [DEBUG][       Thread-251433][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 10:22:10,552 [DEBUG][       Thread-251433][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 10:22:10,552 [DEBUG][       Thread-251433][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 10:22:10,552 [DEBUG][       Thread-251433][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:22:10,552 [DEBUG][       Thread-251433][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:22:10,552 [DEBUG][       Thread-251433][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:22:10,552 [DEBUG][       Thread-251433][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:22:10,552 [DEBUG][       Thread-251433][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 10:22:10,552 [DEBUG][       Thread-251433][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 10:22:10,553 [DEBUG][       Thread-251433][   transport.py][1871] : client lang: <none>
2025-06-13 10:22:10,553 [DEBUG][       Thread-251433][   transport.py][1871] : server lang: <none>
2025-06-13 10:22:10,553 [DEBUG][       Thread-251433][   transport.py][1871] : kex follows: False
2025-06-13 10:22:10,553 [DEBUG][       Thread-251433][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 10:22:10,553 [DEBUG][       Thread-251433][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 10:22:10,553 [DEBUG][       Thread-251433][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 10:22:10,553 [DEBUG][       Thread-251433][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 10:22:10,553 [DEBUG][       Thread-251433][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 10:22:10,553 [DEBUG][       Thread-251433][   transport.py][1871] : Compression: none
2025-06-13 10:22:10,553 [DEBUG][       Thread-251433][   transport.py][1871] : === End of kex handshake ===
2025-06-13 10:22:10,612 [DEBUG][       Thread-251433][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 10:22:10,612 [DEBUG][       Thread-251433][   transport.py][1871] : Switch to new keys ...
2025-06-13 10:22:10,612 [DEBUG][       Thread-251433][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 10:22:10,613 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 10:22:10,613 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 10:22:10,673 [DEBUG][       Thread-251433][   transport.py][1871] : userauth is OK
2025-06-13 10:22:10,673 [DEBUG][       Thread-251433][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 10:22:10,673 [DEBUG][       Thread-251433][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 10:22:10,674 [DEBUG][       Thread-251433][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 10:22:10,674 [DEBUG][       Thread-251433][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 10:22:10,702 [ INFO][       Thread-251433][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 10:22:10,703 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 10:22:10,703 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 10:22:11,723 [DEBUG][       Thread-251433][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 10:22:11,723 [DEBUG][       Thread-251433][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 10:22:11,771 [DEBUG][       Thread-251433][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 10:22:11,772 [DEBUG][       Thread-251433][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 10:22:11,780 [DEBUG][       Thread-251433][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 10:22:11,789 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 10:22:11,790 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 10:22:11,801 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 10:22:11,817 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 10:22:11,817 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 10:22:11,817 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 10:22:11,825 [DEBUG][       Thread-251433][   transport.py][1871] : EOF in transport thread
2025-06-13 10:22:12,593 [DEBUG][Thread-251435 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:22:21,613 [DEBUG][Thread-251436 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:22:21,826 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 10:22:21,826 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 10:22:21,826 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 10:22:21,828 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 10:22:22,285 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 10, 22, 17), 10.26, 48.66, 0.0, 17.34, 9.09, 0, 0, 0, 2, 0, 0),)
2025-06-13 10:22:22,285 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 10:22:17
2025-06-13 10:22:22,365 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 10:22:22,369 [DEBUG][       Thread-251437][   transport.py][1871] : starting thread (client mode): 0x867b5450
2025-06-13 10:22:22,370 [DEBUG][       Thread-251437][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 10:22:22,391 [DEBUG][       Thread-251437][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 10:22:22,392 [ INFO][       Thread-251437][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 10:22:22,396 [DEBUG][       Thread-251437][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 10:22:22,396 [DEBUG][       Thread-251437][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 10:22:22,396 [DEBUG][       Thread-251437][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 10:22:22,396 [DEBUG][       Thread-251437][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:22:22,396 [DEBUG][       Thread-251437][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:22:22,396 [DEBUG][       Thread-251437][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:22:22,396 [DEBUG][       Thread-251437][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:22:22,396 [DEBUG][       Thread-251437][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 10:22:22,396 [DEBUG][       Thread-251437][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 10:22:22,396 [DEBUG][       Thread-251437][   transport.py][1871] : client lang: <none>
2025-06-13 10:22:22,396 [DEBUG][       Thread-251437][   transport.py][1871] : server lang: <none>
2025-06-13 10:22:22,396 [DEBUG][       Thread-251437][   transport.py][1871] : kex follows: False
2025-06-13 10:22:22,396 [DEBUG][       Thread-251437][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 10:22:22,396 [DEBUG][       Thread-251437][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 10:22:22,396 [DEBUG][       Thread-251437][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 10:22:22,397 [DEBUG][       Thread-251437][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 10:22:22,397 [DEBUG][       Thread-251437][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 10:22:22,397 [DEBUG][       Thread-251437][   transport.py][1871] : Compression: none
2025-06-13 10:22:22,397 [DEBUG][       Thread-251437][   transport.py][1871] : === End of kex handshake ===
2025-06-13 10:22:22,413 [DEBUG][       Thread-251437][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 10:22:22,414 [DEBUG][       Thread-251437][   transport.py][1871] : Switch to new keys ...
2025-06-13 10:22:22,414 [DEBUG][       Thread-251437][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 10:22:22,414 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 10:22:22,415 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 10:22:22,416 [DEBUG][       Thread-251437][   transport.py][1871] : userauth is OK
2025-06-13 10:22:22,428 [ INFO][       Thread-251437][   transport.py][1871] : Authentication (password) successful!
2025-06-13 10:22:22,429 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 10:22:23,051 [DEBUG][       Thread-251437][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 10:22:23,051 [DEBUG][       Thread-251437][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 10:22:23,093 [DEBUG][       Thread-251437][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 10:22:23,093 [DEBUG][       Thread-251437][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 10:22:23,096 [DEBUG][       Thread-251437][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 10:22:23,107 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 10:22:23,107 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 10:22:23,108 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 10:22:23,110 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 10:22:23,114 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 10:22:23,116 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 10:22:23,116 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 10:22:23,116 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 10:22:23,117 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.348551 -999.00   +8.90  20.24     53   +0.00 1 1 1 1 1   887    0 9.92 42.83 ----- 21.0 20.2 42.0 25.0 13.5 -28.6 12.2 -29.7 11.2 -28.4 12.4 -26.6
2025-06-13 10:22:23,117 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 10:22:23,117 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 10:22:23,117 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.348551
2025-06-13 10:22:23,117 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 10:22:23,118 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 10:22:23,118 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 10:22:23,118 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 10:22:23,118 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 10:22:23,118 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T10:22:17', tmtdew=10.26, humidity=48.66, cloud=0.0, wind=17.34, temperature=9.09, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T08:21:54.806', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 10:22:23,118 [DEBUG][       Thread-251437][   transport.py][1871] : EOF in transport thread
2025-06-13 10:22:23,202 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 10:22:23,211 [DEBUG][       Thread-251440][   transport.py][1871] : starting thread (client mode): 0x863be500
2025-06-13 10:22:23,212 [DEBUG][       Thread-251440][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 10:22:23,229 [DEBUG][       Thread-251440][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 10:22:23,229 [ INFO][       Thread-251440][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 10:22:23,237 [DEBUG][       Thread-251440][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 10:22:23,237 [DEBUG][       Thread-251440][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 10:22:23,237 [DEBUG][       Thread-251440][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 10:22:23,237 [DEBUG][       Thread-251440][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:22:23,237 [DEBUG][       Thread-251440][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:22:23,237 [DEBUG][       Thread-251440][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:22:23,237 [DEBUG][       Thread-251440][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:22:23,237 [DEBUG][       Thread-251440][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 10:22:23,237 [DEBUG][       Thread-251440][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 10:22:23,237 [DEBUG][       Thread-251440][   transport.py][1871] : client lang: <none>
2025-06-13 10:22:23,237 [DEBUG][       Thread-251440][   transport.py][1871] : server lang: <none>
2025-06-13 10:22:23,237 [DEBUG][       Thread-251440][   transport.py][1871] : kex follows: False
2025-06-13 10:22:23,238 [DEBUG][       Thread-251440][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 10:22:23,238 [DEBUG][       Thread-251440][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 10:22:23,238 [DEBUG][       Thread-251440][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 10:22:23,238 [DEBUG][       Thread-251440][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 10:22:23,238 [DEBUG][       Thread-251440][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 10:22:23,238 [DEBUG][       Thread-251440][   transport.py][1871] : Compression: none
2025-06-13 10:22:23,238 [DEBUG][       Thread-251440][   transport.py][1871] : === End of kex handshake ===
2025-06-13 10:22:23,296 [DEBUG][       Thread-251440][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 10:22:23,297 [DEBUG][       Thread-251440][   transport.py][1871] : Switch to new keys ...
2025-06-13 10:22:23,297 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 10:22:23,298 [DEBUG][       Thread-251440][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 10:22:23,298 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 10:22:23,361 [DEBUG][       Thread-251440][   transport.py][1871] : userauth is OK
2025-06-13 10:22:23,361 [DEBUG][       Thread-251440][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 10:22:23,361 [DEBUG][       Thread-251440][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 10:22:23,361 [DEBUG][       Thread-251440][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 10:22:23,361 [DEBUG][       Thread-251440][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 10:22:23,380 [ INFO][       Thread-251440][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 10:22:23,380 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 10:22:23,380 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 10:22:24,428 [DEBUG][       Thread-251440][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 10:22:24,428 [DEBUG][       Thread-251440][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 10:22:24,478 [DEBUG][       Thread-251440][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 10:22:24,479 [DEBUG][       Thread-251440][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 10:22:24,487 [DEBUG][       Thread-251440][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 10:22:24,496 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 10:22:24,496 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 10:22:24,505 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 10:22:24,514 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 10:22:24,514 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 10:22:24,514 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 10:22:24,525 [DEBUG][       Thread-251440][   transport.py][1871] : EOF in transport thread
2025-06-13 10:22:25,725 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:22:25,726 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:22:30,633 [DEBUG][Thread-251442 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:22:34,524 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 10:22:34,524 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 10:22:34,524 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 10:22:34,525 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 10:22:34,995 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 10, 22, 17), 10.26, 48.66, 0.0, 17.34, 9.09, 0, 0, 0, 2, 0, 0),)
2025-06-13 10:22:34,995 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 10:22:17
2025-06-13 10:22:35,080 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 10:22:35,086 [DEBUG][       Thread-251443][   transport.py][1871] : starting thread (client mode): 0x863bce50
2025-06-13 10:22:35,086 [DEBUG][       Thread-251443][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 10:22:35,096 [DEBUG][       Thread-251443][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 10:22:35,096 [ INFO][       Thread-251443][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 10:22:35,100 [DEBUG][       Thread-251443][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 10:22:35,100 [DEBUG][       Thread-251443][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 10:22:35,100 [DEBUG][       Thread-251443][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 10:22:35,100 [DEBUG][       Thread-251443][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:22:35,100 [DEBUG][       Thread-251443][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:22:35,100 [DEBUG][       Thread-251443][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:22:35,100 [DEBUG][       Thread-251443][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:22:35,100 [DEBUG][       Thread-251443][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 10:22:35,100 [DEBUG][       Thread-251443][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 10:22:35,100 [DEBUG][       Thread-251443][   transport.py][1871] : client lang: <none>
2025-06-13 10:22:35,100 [DEBUG][       Thread-251443][   transport.py][1871] : server lang: <none>
2025-06-13 10:22:35,100 [DEBUG][       Thread-251443][   transport.py][1871] : kex follows: False
2025-06-13 10:22:35,100 [DEBUG][       Thread-251443][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 10:22:35,100 [DEBUG][       Thread-251443][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 10:22:35,100 [DEBUG][       Thread-251443][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 10:22:35,100 [DEBUG][       Thread-251443][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 10:22:35,100 [DEBUG][       Thread-251443][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 10:22:35,100 [DEBUG][       Thread-251443][   transport.py][1871] : Compression: none
2025-06-13 10:22:35,100 [DEBUG][       Thread-251443][   transport.py][1871] : === End of kex handshake ===
2025-06-13 10:22:35,114 [DEBUG][       Thread-251443][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 10:22:35,114 [DEBUG][       Thread-251443][   transport.py][1871] : Switch to new keys ...
2025-06-13 10:22:35,114 [DEBUG][       Thread-251443][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 10:22:35,114 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 10:22:35,114 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 10:22:35,115 [DEBUG][       Thread-251443][   transport.py][1871] : userauth is OK
2025-06-13 10:22:35,127 [ INFO][       Thread-251443][   transport.py][1871] : Authentication (password) successful!
2025-06-13 10:22:35,128 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 10:22:35,748 [DEBUG][       Thread-251443][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 10:22:35,748 [DEBUG][       Thread-251443][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 10:22:35,793 [DEBUG][       Thread-251443][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 10:22:35,793 [DEBUG][       Thread-251443][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 10:22:35,796 [DEBUG][       Thread-251443][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 10:22:35,808 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 10:22:35,808 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 10:22:35,810 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 10:22:35,812 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 10:22:35,818 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 10:22:35,820 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 10:22:35,820 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 10:22:35,821 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 10:22:35,821 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.348551 -999.00   +8.90  20.24     53   +0.00 1 1 1 1 1   887    0 9.92 42.83 ----- 21.0 20.2 42.0 25.0 13.5 -28.6 12.2 -29.7 11.2 -28.4 12.4 -26.6
2025-06-13 10:22:35,821 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 10:22:35,821 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 10:22:35,821 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.348551
2025-06-13 10:22:35,821 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 10:22:35,822 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 10:22:35,822 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 10:22:35,822 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 10:22:35,822 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 10:22:35,822 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T10:22:17', tmtdew=10.26, humidity=48.66, cloud=0.0, wind=17.34, temperature=9.09, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T08:21:54.806', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 10:22:35,823 [DEBUG][       Thread-251443][   transport.py][1871] : EOF in transport thread
2025-06-13 10:22:35,907 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 10:22:35,918 [DEBUG][       Thread-251446][   transport.py][1871] : starting thread (client mode): 0x842074c0
2025-06-13 10:22:35,918 [DEBUG][       Thread-251446][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 10:22:35,933 [DEBUG][       Thread-251446][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 10:22:35,933 [ INFO][       Thread-251446][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 10:22:35,941 [DEBUG][       Thread-251446][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 10:22:35,941 [DEBUG][       Thread-251446][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 10:22:35,941 [DEBUG][       Thread-251446][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 10:22:35,941 [DEBUG][       Thread-251446][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:22:35,941 [DEBUG][       Thread-251446][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:22:35,941 [DEBUG][       Thread-251446][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:22:35,941 [DEBUG][       Thread-251446][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:22:35,941 [DEBUG][       Thread-251446][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 10:22:35,941 [DEBUG][       Thread-251446][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 10:22:35,941 [DEBUG][       Thread-251446][   transport.py][1871] : client lang: <none>
2025-06-13 10:22:35,941 [DEBUG][       Thread-251446][   transport.py][1871] : server lang: <none>
2025-06-13 10:22:35,941 [DEBUG][       Thread-251446][   transport.py][1871] : kex follows: False
2025-06-13 10:22:35,941 [DEBUG][       Thread-251446][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 10:22:35,941 [DEBUG][       Thread-251446][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 10:22:35,941 [DEBUG][       Thread-251446][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 10:22:35,941 [DEBUG][       Thread-251446][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 10:22:35,942 [DEBUG][       Thread-251446][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 10:22:35,942 [DEBUG][       Thread-251446][   transport.py][1871] : Compression: none
2025-06-13 10:22:35,942 [DEBUG][       Thread-251446][   transport.py][1871] : === End of kex handshake ===
2025-06-13 10:22:35,997 [DEBUG][       Thread-251446][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 10:22:35,997 [DEBUG][       Thread-251446][   transport.py][1871] : Switch to new keys ...
2025-06-13 10:22:35,997 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 10:22:35,997 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 10:22:35,998 [DEBUG][       Thread-251446][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 10:22:36,054 [DEBUG][       Thread-251446][   transport.py][1871] : userauth is OK
2025-06-13 10:22:36,054 [DEBUG][       Thread-251446][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 10:22:36,054 [DEBUG][       Thread-251446][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 10:22:36,054 [DEBUG][       Thread-251446][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 10:22:36,054 [DEBUG][       Thread-251446][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 10:22:36,070 [ INFO][       Thread-251446][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 10:22:36,071 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 10:22:36,071 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 10:22:37,103 [DEBUG][       Thread-251446][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 10:22:37,103 [DEBUG][       Thread-251446][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 10:22:37,152 [DEBUG][       Thread-251446][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 10:22:37,152 [DEBUG][       Thread-251446][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 10:22:37,162 [DEBUG][       Thread-251446][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 10:22:37,173 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 10:22:37,173 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 10:22:37,184 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 10:22:37,194 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 10:22:37,195 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 10:22:37,195 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 10:22:37,203 [DEBUG][       Thread-251446][   transport.py][1871] : EOF in transport thread
2025-06-13 10:22:39,672 [DEBUG][Thread-251448 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:22:47,204 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 10:22:47,204 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 10:22:47,204 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 10:22:47,207 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 10:22:47,665 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 10, 22, 17), 10.26, 48.66, 0.0, 17.34, 9.09, 0, 0, 0, 2, 0, 0),)
2025-06-13 10:22:47,665 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 10:22:17
2025-06-13 10:22:47,746 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 10:22:47,752 [DEBUG][       Thread-251449][   transport.py][1871] : starting thread (client mode): 0x84205750
2025-06-13 10:22:47,752 [DEBUG][       Thread-251449][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 10:22:47,773 [DEBUG][       Thread-251449][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 10:22:47,773 [ INFO][       Thread-251449][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 10:22:47,774 [DEBUG][       Thread-251449][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 10:22:47,774 [DEBUG][       Thread-251449][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 10:22:47,774 [DEBUG][       Thread-251449][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 10:22:47,774 [DEBUG][       Thread-251449][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:22:47,774 [DEBUG][       Thread-251449][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:22:47,774 [DEBUG][       Thread-251449][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:22:47,774 [DEBUG][       Thread-251449][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:22:47,774 [DEBUG][       Thread-251449][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 10:22:47,774 [DEBUG][       Thread-251449][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 10:22:47,774 [DEBUG][       Thread-251449][   transport.py][1871] : client lang: <none>
2025-06-13 10:22:47,774 [DEBUG][       Thread-251449][   transport.py][1871] : server lang: <none>
2025-06-13 10:22:47,774 [DEBUG][       Thread-251449][   transport.py][1871] : kex follows: False
2025-06-13 10:22:47,775 [DEBUG][       Thread-251449][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 10:22:47,775 [DEBUG][       Thread-251449][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 10:22:47,775 [DEBUG][       Thread-251449][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 10:22:47,775 [DEBUG][       Thread-251449][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 10:22:47,775 [DEBUG][       Thread-251449][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 10:22:47,775 [DEBUG][       Thread-251449][   transport.py][1871] : Compression: none
2025-06-13 10:22:47,775 [DEBUG][       Thread-251449][   transport.py][1871] : === End of kex handshake ===
2025-06-13 10:22:47,794 [DEBUG][       Thread-251449][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 10:22:47,795 [DEBUG][       Thread-251449][   transport.py][1871] : Switch to new keys ...
2025-06-13 10:22:47,796 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 10:22:47,796 [DEBUG][       Thread-251449][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 10:22:47,796 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 10:22:47,798 [DEBUG][       Thread-251449][   transport.py][1871] : userauth is OK
2025-06-13 10:22:47,822 [ INFO][       Thread-251449][   transport.py][1871] : Authentication (password) successful!
2025-06-13 10:22:47,823 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 10:22:48,445 [DEBUG][       Thread-251449][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 10:22:48,445 [DEBUG][       Thread-251449][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 10:22:48,489 [DEBUG][       Thread-251449][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 10:22:48,489 [DEBUG][       Thread-251449][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 10:22:48,493 [DEBUG][       Thread-251449][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 10:22:48,506 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 10:22:48,506 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 10:22:48,508 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 10:22:48,509 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 10:22:48,515 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 10:22:48,517 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 10:22:48,517 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 10:22:48,518 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 10:22:48,518 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.348899 -999.00   +9.00  20.11     53   +0.10 1 1 1 1 1   887    0 9.86 41.09 ----- 16.8 20.1 51.0 23.9 13.6 -28.2 12.2 -29.5 11.2 -27.5 12.4 -26.6
2025-06-13 10:22:48,518 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 10:22:48,518 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 10:22:48,518 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.348899
2025-06-13 10:22:48,518 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 10:22:48,519 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 10:22:48,519 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 10:22:48,519 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 10:22:48,519 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 10:22:48,519 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T10:22:17', tmtdew=10.26, humidity=48.66, cloud=0.0, wind=17.34, temperature=9.09, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T08:22:24.874', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 10:22:48,520 [DEBUG][       Thread-251449][   transport.py][1871] : EOF in transport thread
2025-06-13 10:22:48,596 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 10:22:48,608 [DEBUG][       Thread-251452][   transport.py][1871] : starting thread (client mode): 0x8636a830
2025-06-13 10:22:48,608 [DEBUG][       Thread-251452][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 10:22:48,624 [DEBUG][       Thread-251452][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 10:22:48,624 [ INFO][       Thread-251452][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 10:22:48,632 [DEBUG][       Thread-251452][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 10:22:48,632 [DEBUG][       Thread-251452][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 10:22:48,632 [DEBUG][       Thread-251452][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 10:22:48,632 [DEBUG][       Thread-251452][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:22:48,632 [DEBUG][       Thread-251452][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:22:48,632 [DEBUG][       Thread-251452][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:22:48,632 [DEBUG][       Thread-251452][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:22:48,632 [DEBUG][       Thread-251452][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 10:22:48,632 [DEBUG][       Thread-251452][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 10:22:48,632 [DEBUG][       Thread-251452][   transport.py][1871] : client lang: <none>
2025-06-13 10:22:48,632 [DEBUG][       Thread-251452][   transport.py][1871] : server lang: <none>
2025-06-13 10:22:48,632 [DEBUG][       Thread-251452][   transport.py][1871] : kex follows: False
2025-06-13 10:22:48,632 [DEBUG][       Thread-251452][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 10:22:48,632 [DEBUG][       Thread-251452][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 10:22:48,632 [DEBUG][       Thread-251452][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 10:22:48,633 [DEBUG][       Thread-251452][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 10:22:48,633 [DEBUG][       Thread-251452][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 10:22:48,633 [DEBUG][       Thread-251452][   transport.py][1871] : Compression: none
2025-06-13 10:22:48,633 [DEBUG][       Thread-251452][   transport.py][1871] : === End of kex handshake ===
2025-06-13 10:22:48,690 [DEBUG][Thread-251454 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:22:48,691 [DEBUG][       Thread-251452][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 10:22:48,692 [DEBUG][       Thread-251452][   transport.py][1871] : Switch to new keys ...
2025-06-13 10:22:48,693 [DEBUG][       Thread-251452][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 10:22:48,693 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 10:22:48,694 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 10:22:48,750 [DEBUG][       Thread-251452][   transport.py][1871] : userauth is OK
2025-06-13 10:22:48,750 [DEBUG][       Thread-251452][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 10:22:48,750 [DEBUG][       Thread-251452][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 10:22:48,750 [DEBUG][       Thread-251452][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 10:22:48,750 [DEBUG][       Thread-251452][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 10:22:48,770 [ INFO][       Thread-251452][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 10:22:48,770 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 10:22:48,770 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 10:22:49,807 [DEBUG][       Thread-251452][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 10:22:49,808 [DEBUG][       Thread-251452][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 10:22:49,859 [DEBUG][       Thread-251452][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 10:22:49,860 [DEBUG][       Thread-251452][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 10:22:49,869 [DEBUG][       Thread-251452][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 10:22:49,877 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 10:22:49,877 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 10:22:49,886 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 10:22:49,894 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 10:22:49,895 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 10:22:49,895 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 10:22:49,903 [DEBUG][       Thread-251452][   transport.py][1871] : EOF in transport thread
2025-06-13 10:22:57,708 [DEBUG][Thread-251455 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:22:59,905 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 10:22:59,905 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 10:22:59,906 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 10:22:59,908 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 10:23:00,366 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 10, 22, 49), 10.32, 48.45, 0.0, 15.32, 9.09, 0, 0, 0, 2, 0, 0),)
2025-06-13 10:23:00,366 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 10:22:49
2025-06-13 10:23:00,448 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 10:23:00,452 [DEBUG][       Thread-251456][   transport.py][1871] : starting thread (client mode): 0x842056c0
2025-06-13 10:23:00,452 [DEBUG][       Thread-251456][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 10:23:00,471 [DEBUG][       Thread-251456][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 10:23:00,471 [ INFO][       Thread-251456][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 10:23:00,475 [DEBUG][       Thread-251456][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 10:23:00,475 [DEBUG][       Thread-251456][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 10:23:00,475 [DEBUG][       Thread-251456][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 10:23:00,475 [DEBUG][       Thread-251456][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:23:00,475 [DEBUG][       Thread-251456][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:23:00,475 [DEBUG][       Thread-251456][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:23:00,475 [DEBUG][       Thread-251456][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:23:00,475 [DEBUG][       Thread-251456][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 10:23:00,475 [DEBUG][       Thread-251456][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 10:23:00,475 [DEBUG][       Thread-251456][   transport.py][1871] : client lang: <none>
2025-06-13 10:23:00,475 [DEBUG][       Thread-251456][   transport.py][1871] : server lang: <none>
2025-06-13 10:23:00,475 [DEBUG][       Thread-251456][   transport.py][1871] : kex follows: False
2025-06-13 10:23:00,475 [DEBUG][       Thread-251456][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 10:23:00,475 [DEBUG][       Thread-251456][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 10:23:00,475 [DEBUG][       Thread-251456][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 10:23:00,475 [DEBUG][       Thread-251456][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 10:23:00,475 [DEBUG][       Thread-251456][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 10:23:00,475 [DEBUG][       Thread-251456][   transport.py][1871] : Compression: none
2025-06-13 10:23:00,475 [DEBUG][       Thread-251456][   transport.py][1871] : === End of kex handshake ===
2025-06-13 10:23:00,493 [DEBUG][       Thread-251456][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 10:23:00,493 [DEBUG][       Thread-251456][   transport.py][1871] : Switch to new keys ...
2025-06-13 10:23:00,494 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 10:23:00,494 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 10:23:00,495 [DEBUG][       Thread-251456][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 10:23:00,495 [DEBUG][       Thread-251456][   transport.py][1871] : userauth is OK
2025-06-13 10:23:00,520 [ INFO][       Thread-251456][   transport.py][1871] : Authentication (password) successful!
2025-06-13 10:23:00,520 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 10:23:01,141 [DEBUG][       Thread-251456][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 10:23:01,142 [DEBUG][       Thread-251456][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 10:23:01,185 [DEBUG][       Thread-251456][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 10:23:01,185 [DEBUG][       Thread-251456][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 10:23:01,188 [DEBUG][       Thread-251456][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 10:23:01,199 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 10:23:01,199 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 10:23:01,201 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 10:23:01,203 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 10:23:01,208 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 10:23:01,210 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 10:23:01,210 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 10:23:01,211 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 10:23:01,211 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.348899 -999.00   +9.00  20.11     53   +0.10 1 1 1 1 1   887    0 9.86 41.09 ----- 16.8 20.1 51.0 23.9 13.6 -28.2 12.2 -29.5 11.2 -27.5 12.4 -26.6
2025-06-13 10:23:01,211 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 10:23:01,211 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 10:23:01,211 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.348899
2025-06-13 10:23:01,211 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 10:23:01,212 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 10:23:01,212 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 10:23:01,212 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 10:23:01,212 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 10:23:01,212 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T10:22:49', tmtdew=10.32, humidity=48.45, cloud=0.0, wind=15.32, temperature=9.09, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T08:22:24.874', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 10:23:01,213 [DEBUG][       Thread-251456][   transport.py][1871] : EOF in transport thread
2025-06-13 10:23:01,295 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 10:23:01,307 [DEBUG][       Thread-251459][   transport.py][1871] : starting thread (client mode): 0x867fefb0
2025-06-13 10:23:01,308 [DEBUG][       Thread-251459][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 10:23:01,325 [DEBUG][       Thread-251459][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 10:23:01,326 [ INFO][       Thread-251459][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 10:23:01,337 [DEBUG][       Thread-251459][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 10:23:01,337 [DEBUG][       Thread-251459][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 10:23:01,337 [DEBUG][       Thread-251459][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 10:23:01,337 [DEBUG][       Thread-251459][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:23:01,337 [DEBUG][       Thread-251459][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:23:01,337 [DEBUG][       Thread-251459][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:23:01,337 [DEBUG][       Thread-251459][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:23:01,337 [DEBUG][       Thread-251459][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 10:23:01,337 [DEBUG][       Thread-251459][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 10:23:01,337 [DEBUG][       Thread-251459][   transport.py][1871] : client lang: <none>
2025-06-13 10:23:01,337 [DEBUG][       Thread-251459][   transport.py][1871] : server lang: <none>
2025-06-13 10:23:01,337 [DEBUG][       Thread-251459][   transport.py][1871] : kex follows: False
2025-06-13 10:23:01,337 [DEBUG][       Thread-251459][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 10:23:01,337 [DEBUG][       Thread-251459][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 10:23:01,338 [DEBUG][       Thread-251459][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 10:23:01,338 [DEBUG][       Thread-251459][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 10:23:01,338 [DEBUG][       Thread-251459][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 10:23:01,338 [DEBUG][       Thread-251459][   transport.py][1871] : Compression: none
2025-06-13 10:23:01,338 [DEBUG][       Thread-251459][   transport.py][1871] : === End of kex handshake ===
2025-06-13 10:23:01,390 [DEBUG][       Thread-251459][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 10:23:01,390 [DEBUG][       Thread-251459][   transport.py][1871] : Switch to new keys ...
2025-06-13 10:23:01,391 [DEBUG][       Thread-251459][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 10:23:01,391 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 10:23:01,391 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 10:23:01,446 [DEBUG][       Thread-251459][   transport.py][1871] : userauth is OK
2025-06-13 10:23:01,446 [DEBUG][       Thread-251459][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 10:23:01,446 [DEBUG][       Thread-251459][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 10:23:01,446 [DEBUG][       Thread-251459][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 10:23:01,446 [DEBUG][       Thread-251459][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 10:23:01,469 [ INFO][       Thread-251459][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 10:23:01,470 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 10:23:01,470 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 10:23:02,488 [DEBUG][       Thread-251459][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 10:23:02,489 [DEBUG][       Thread-251459][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 10:23:02,541 [DEBUG][       Thread-251459][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 10:23:02,542 [DEBUG][       Thread-251459][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 10:23:02,554 [DEBUG][       Thread-251459][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 10:23:02,564 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 10:23:02,564 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 10:23:02,572 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 10:23:02,583 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 10:23:02,583 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 10:23:02,583 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 10:23:02,596 [DEBUG][       Thread-251459][   transport.py][1871] : EOF in transport thread
2025-06-13 10:23:06,037 [DEBUG][Thread-251461 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:23:06,727 [DEBUG][Thread-251462 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:23:08,110 [DEBUG][Thread-251463 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:23:09,190 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:23:09,191 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:23:12,592 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 10:23:12,592 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 10:23:12,592 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 10:23:12,592 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 10:23:13,056 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 10, 22, 49), 10.32, 48.45, 0.0, 15.32, 9.09, 0, 0, 0, 2, 0, 0),)
2025-06-13 10:23:13,056 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 10:22:49
2025-06-13 10:23:13,137 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 10:23:13,142 [DEBUG][       Thread-251464][   transport.py][1871] : starting thread (client mode): 0x84206230
2025-06-13 10:23:13,142 [DEBUG][       Thread-251464][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 10:23:13,163 [DEBUG][       Thread-251464][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 10:23:13,163 [ INFO][       Thread-251464][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 10:23:13,166 [DEBUG][       Thread-251464][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 10:23:13,166 [DEBUG][       Thread-251464][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 10:23:13,166 [DEBUG][       Thread-251464][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 10:23:13,166 [DEBUG][       Thread-251464][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:23:13,166 [DEBUG][       Thread-251464][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:23:13,166 [DEBUG][       Thread-251464][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:23:13,166 [DEBUG][       Thread-251464][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:23:13,166 [DEBUG][       Thread-251464][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 10:23:13,166 [DEBUG][       Thread-251464][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 10:23:13,166 [DEBUG][       Thread-251464][   transport.py][1871] : client lang: <none>
2025-06-13 10:23:13,166 [DEBUG][       Thread-251464][   transport.py][1871] : server lang: <none>
2025-06-13 10:23:13,166 [DEBUG][       Thread-251464][   transport.py][1871] : kex follows: False
2025-06-13 10:23:13,166 [DEBUG][       Thread-251464][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 10:23:13,166 [DEBUG][       Thread-251464][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 10:23:13,166 [DEBUG][       Thread-251464][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 10:23:13,166 [DEBUG][       Thread-251464][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 10:23:13,166 [DEBUG][       Thread-251464][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 10:23:13,166 [DEBUG][       Thread-251464][   transport.py][1871] : Compression: none
2025-06-13 10:23:13,166 [DEBUG][       Thread-251464][   transport.py][1871] : === End of kex handshake ===
2025-06-13 10:23:13,182 [DEBUG][       Thread-251464][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 10:23:13,182 [DEBUG][       Thread-251464][   transport.py][1871] : Switch to new keys ...
2025-06-13 10:23:13,182 [DEBUG][       Thread-251464][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 10:23:13,182 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 10:23:13,182 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 10:23:13,183 [DEBUG][       Thread-251464][   transport.py][1871] : userauth is OK
2025-06-13 10:23:13,195 [ INFO][       Thread-251464][   transport.py][1871] : Authentication (password) successful!
2025-06-13 10:23:13,195 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 10:23:13,803 [DEBUG][       Thread-251464][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 10:23:13,803 [DEBUG][       Thread-251464][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 10:23:13,845 [DEBUG][       Thread-251464][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 10:23:13,845 [DEBUG][       Thread-251464][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 10:23:13,847 [DEBUG][       Thread-251464][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 10:23:13,858 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 10:23:13,859 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 10:23:13,860 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 10:23:13,861 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 10:23:13,864 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 10:23:13,865 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 10:23:13,865 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 10:23:13,866 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 10:23:13,866 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.349246 -999.00   +9.10  22.74     53   +0.10 1 1 1 1 1   887    0 9.65 38.29 ----- 20.0 22.7 36.8 25.8 13.6 -28.2 12.2 -29.6 11.2 -28.0 12.4 -26.6
2025-06-13 10:23:13,866 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 10:23:13,866 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 10:23:13,866 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.349246
2025-06-13 10:23:13,866 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 10:23:13,866 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 10:23:13,866 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 10:23:13,866 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 10:23:13,866 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 10:23:13,866 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T10:22:49', tmtdew=10.32, humidity=48.45, cloud=0.0, wind=15.32, temperature=9.09, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T08:22:54.854', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 10:23:13,867 [DEBUG][       Thread-251464][   transport.py][1871] : EOF in transport thread
2025-06-13 10:23:13,951 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 10:23:13,961 [DEBUG][       Thread-251467][   transport.py][1871] : starting thread (client mode): 0x863bcd60
2025-06-13 10:23:13,961 [DEBUG][       Thread-251467][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 10:23:13,977 [DEBUG][       Thread-251467][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 10:23:13,977 [ INFO][       Thread-251467][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 10:23:13,984 [DEBUG][       Thread-251467][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 10:23:13,984 [DEBUG][       Thread-251467][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 10:23:13,984 [DEBUG][       Thread-251467][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 10:23:13,984 [DEBUG][       Thread-251467][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:23:13,985 [DEBUG][       Thread-251467][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:23:13,985 [DEBUG][       Thread-251467][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:23:13,985 [DEBUG][       Thread-251467][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:23:13,985 [DEBUG][       Thread-251467][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 10:23:13,985 [DEBUG][       Thread-251467][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 10:23:13,985 [DEBUG][       Thread-251467][   transport.py][1871] : client lang: <none>
2025-06-13 10:23:13,985 [DEBUG][       Thread-251467][   transport.py][1871] : server lang: <none>
2025-06-13 10:23:13,985 [DEBUG][       Thread-251467][   transport.py][1871] : kex follows: False
2025-06-13 10:23:13,985 [DEBUG][       Thread-251467][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 10:23:13,985 [DEBUG][       Thread-251467][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 10:23:13,985 [DEBUG][       Thread-251467][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 10:23:13,985 [DEBUG][       Thread-251467][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 10:23:13,985 [DEBUG][       Thread-251467][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 10:23:13,985 [DEBUG][       Thread-251467][   transport.py][1871] : Compression: none
2025-06-13 10:23:13,985 [DEBUG][       Thread-251467][   transport.py][1871] : === End of kex handshake ===
2025-06-13 10:23:14,050 [DEBUG][       Thread-251467][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 10:23:14,051 [DEBUG][       Thread-251467][   transport.py][1871] : Switch to new keys ...
2025-06-13 10:23:14,051 [DEBUG][       Thread-251467][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 10:23:14,051 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 10:23:14,052 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 10:23:14,110 [DEBUG][       Thread-251467][   transport.py][1871] : userauth is OK
2025-06-13 10:23:14,110 [DEBUG][       Thread-251467][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 10:23:14,111 [DEBUG][       Thread-251467][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 10:23:14,111 [DEBUG][       Thread-251467][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 10:23:14,111 [DEBUG][       Thread-251467][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 10:23:14,130 [ INFO][       Thread-251467][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 10:23:14,130 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 10:23:14,131 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 10:23:15,157 [DEBUG][       Thread-251467][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 10:23:15,157 [DEBUG][       Thread-251467][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 10:23:15,207 [DEBUG][       Thread-251467][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 10:23:15,208 [DEBUG][       Thread-251467][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 10:23:15,217 [DEBUG][       Thread-251467][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 10:23:15,229 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 10:23:15,230 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 10:23:15,238 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 10:23:15,247 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 10:23:15,247 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 10:23:15,248 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 10:23:15,255 [DEBUG][       Thread-251467][   transport.py][1871] : EOF in transport thread
2025-06-13 10:23:15,757 [DEBUG][Thread-251469 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:23:24,774 [DEBUG][Thread-251470 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:23:25,258 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 10:23:25,258 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 10:23:25,258 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 10:23:25,260 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 10:23:25,729 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 10, 23, 21), 10.25, 48.79, 0.0, 18.35, 9.11, 0, 0, 0, 2, 0, 0),)
2025-06-13 10:23:25,729 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 10:23:21
2025-06-13 10:23:25,811 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 10:23:25,815 [DEBUG][       Thread-251471][   transport.py][1871] : starting thread (client mode): 0x84204730
2025-06-13 10:23:25,815 [DEBUG][       Thread-251471][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 10:23:25,835 [DEBUG][       Thread-251471][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 10:23:25,835 [ INFO][       Thread-251471][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 10:23:25,839 [DEBUG][       Thread-251471][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 10:23:25,839 [DEBUG][       Thread-251471][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 10:23:25,839 [DEBUG][       Thread-251471][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 10:23:25,839 [DEBUG][       Thread-251471][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:23:25,839 [DEBUG][       Thread-251471][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:23:25,839 [DEBUG][       Thread-251471][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:23:25,839 [DEBUG][       Thread-251471][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:23:25,839 [DEBUG][       Thread-251471][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 10:23:25,839 [DEBUG][       Thread-251471][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 10:23:25,839 [DEBUG][       Thread-251471][   transport.py][1871] : client lang: <none>
2025-06-13 10:23:25,839 [DEBUG][       Thread-251471][   transport.py][1871] : server lang: <none>
2025-06-13 10:23:25,839 [DEBUG][       Thread-251471][   transport.py][1871] : kex follows: False
2025-06-13 10:23:25,839 [DEBUG][       Thread-251471][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 10:23:25,839 [DEBUG][       Thread-251471][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 10:23:25,839 [DEBUG][       Thread-251471][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 10:23:25,839 [DEBUG][       Thread-251471][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 10:23:25,839 [DEBUG][       Thread-251471][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 10:23:25,839 [DEBUG][       Thread-251471][   transport.py][1871] : Compression: none
2025-06-13 10:23:25,839 [DEBUG][       Thread-251471][   transport.py][1871] : === End of kex handshake ===
2025-06-13 10:23:25,855 [DEBUG][       Thread-251471][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 10:23:25,856 [DEBUG][       Thread-251471][   transport.py][1871] : Switch to new keys ...
2025-06-13 10:23:25,857 [DEBUG][       Thread-251471][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 10:23:25,857 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 10:23:25,857 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 10:23:25,858 [DEBUG][       Thread-251471][   transport.py][1871] : userauth is OK
2025-06-13 10:23:25,865 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:23:25,865 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:23:25,883 [ INFO][       Thread-251471][   transport.py][1871] : Authentication (password) successful!
2025-06-13 10:23:25,883 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 10:23:26,498 [DEBUG][       Thread-251471][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 10:23:26,498 [DEBUG][       Thread-251471][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 10:23:26,541 [DEBUG][       Thread-251471][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 10:23:26,541 [DEBUG][       Thread-251471][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 10:23:26,544 [DEBUG][       Thread-251471][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 10:23:26,556 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 10:23:26,556 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 10:23:26,558 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 10:23:26,560 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 10:23:26,565 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 10:23:26,567 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 10:23:26,567 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 10:23:26,568 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 10:23:26,568 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.349246 -999.00   +9.10  22.74     53   +0.10 1 1 1 1 1   887    0 9.65 38.29 ----- 20.0 22.7 36.8 25.8 13.6 -28.2 12.2 -29.6 11.2 -28.0 12.4 -26.6
2025-06-13 10:23:26,568 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 10:23:26,568 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 10:23:26,568 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.349246
2025-06-13 10:23:26,569 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 10:23:26,569 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 10:23:26,569 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 10:23:26,569 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 10:23:26,569 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 10:23:26,569 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T10:23:21', tmtdew=10.25, humidity=48.79, cloud=0.0, wind=18.35, temperature=9.11, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T08:22:54.854', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 10:23:26,570 [DEBUG][       Thread-251471][   transport.py][1871] : EOF in transport thread
2025-06-13 10:23:26,653 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 10:23:26,668 [DEBUG][       Thread-251474][   transport.py][1871] : starting thread (client mode): 0x863ed5d0
2025-06-13 10:23:26,668 [DEBUG][       Thread-251474][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 10:23:26,684 [DEBUG][       Thread-251474][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 10:23:26,684 [ INFO][       Thread-251474][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 10:23:26,691 [DEBUG][       Thread-251474][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 10:23:26,691 [DEBUG][       Thread-251474][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 10:23:26,691 [DEBUG][       Thread-251474][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 10:23:26,691 [DEBUG][       Thread-251474][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:23:26,691 [DEBUG][       Thread-251474][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:23:26,692 [DEBUG][       Thread-251474][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:23:26,692 [DEBUG][       Thread-251474][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:23:26,692 [DEBUG][       Thread-251474][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 10:23:26,692 [DEBUG][       Thread-251474][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 10:23:26,692 [DEBUG][       Thread-251474][   transport.py][1871] : client lang: <none>
2025-06-13 10:23:26,692 [DEBUG][       Thread-251474][   transport.py][1871] : server lang: <none>
2025-06-13 10:23:26,692 [DEBUG][       Thread-251474][   transport.py][1871] : kex follows: False
2025-06-13 10:23:26,692 [DEBUG][       Thread-251474][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 10:23:26,692 [DEBUG][       Thread-251474][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 10:23:26,692 [DEBUG][       Thread-251474][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 10:23:26,692 [DEBUG][       Thread-251474][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 10:23:26,692 [DEBUG][       Thread-251474][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 10:23:26,692 [DEBUG][       Thread-251474][   transport.py][1871] : Compression: none
2025-06-13 10:23:26,692 [DEBUG][       Thread-251474][   transport.py][1871] : === End of kex handshake ===
2025-06-13 10:23:26,752 [DEBUG][       Thread-251474][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 10:23:26,752 [DEBUG][       Thread-251474][   transport.py][1871] : Switch to new keys ...
2025-06-13 10:23:26,753 [DEBUG][       Thread-251474][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 10:23:26,753 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 10:23:26,754 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 10:23:26,810 [DEBUG][       Thread-251474][   transport.py][1871] : userauth is OK
2025-06-13 10:23:26,810 [DEBUG][       Thread-251474][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 10:23:26,810 [DEBUG][       Thread-251474][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 10:23:26,810 [DEBUG][       Thread-251474][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 10:23:26,810 [DEBUG][       Thread-251474][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 10:23:26,829 [ INFO][       Thread-251474][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 10:23:26,829 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 10:23:26,829 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 10:23:27,851 [DEBUG][       Thread-251474][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 10:23:27,852 [DEBUG][       Thread-251474][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 10:23:27,899 [DEBUG][       Thread-251474][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 10:23:27,900 [DEBUG][       Thread-251474][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 10:23:27,915 [DEBUG][       Thread-251474][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 10:23:27,924 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 10:23:27,924 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 10:23:27,936 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 10:23:27,947 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 10:23:27,947 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 10:23:27,948 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 10:23:27,956 [DEBUG][       Thread-251474][   transport.py][1871] : EOF in transport thread
2025-06-13 10:23:33,790 [DEBUG][Thread-251476 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:23:37,957 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 10:23:37,957 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 10:23:37,957 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 10:23:37,960 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 10:23:38,416 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 10, 23, 21), 10.25, 48.79, 0.0, 18.35, 9.11, 0, 0, 0, 2, 0, 0),)
2025-06-13 10:23:38,416 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 10:23:21
2025-06-13 10:23:38,498 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 10:23:38,503 [DEBUG][       Thread-251477][   transport.py][1871] : starting thread (client mode): 0x8636b280
2025-06-13 10:23:38,503 [DEBUG][       Thread-251477][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 10:23:38,524 [DEBUG][       Thread-251477][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 10:23:38,524 [ INFO][       Thread-251477][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 10:23:38,527 [DEBUG][       Thread-251477][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 10:23:38,527 [DEBUG][       Thread-251477][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 10:23:38,527 [DEBUG][       Thread-251477][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 10:23:38,527 [DEBUG][       Thread-251477][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:23:38,527 [DEBUG][       Thread-251477][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:23:38,527 [DEBUG][       Thread-251477][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:23:38,527 [DEBUG][       Thread-251477][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:23:38,527 [DEBUG][       Thread-251477][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 10:23:38,527 [DEBUG][       Thread-251477][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 10:23:38,527 [DEBUG][       Thread-251477][   transport.py][1871] : client lang: <none>
2025-06-13 10:23:38,527 [DEBUG][       Thread-251477][   transport.py][1871] : server lang: <none>
2025-06-13 10:23:38,528 [DEBUG][       Thread-251477][   transport.py][1871] : kex follows: False
2025-06-13 10:23:38,528 [DEBUG][       Thread-251477][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 10:23:38,528 [DEBUG][       Thread-251477][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 10:23:38,528 [DEBUG][       Thread-251477][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 10:23:38,528 [DEBUG][       Thread-251477][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 10:23:38,528 [DEBUG][       Thread-251477][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 10:23:38,528 [DEBUG][       Thread-251477][   transport.py][1871] : Compression: none
2025-06-13 10:23:38,528 [DEBUG][       Thread-251477][   transport.py][1871] : === End of kex handshake ===
2025-06-13 10:23:38,545 [DEBUG][       Thread-251477][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 10:23:38,545 [DEBUG][       Thread-251477][   transport.py][1871] : Switch to new keys ...
2025-06-13 10:23:38,546 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 10:23:38,546 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 10:23:38,546 [DEBUG][       Thread-251477][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 10:23:38,547 [DEBUG][       Thread-251477][   transport.py][1871] : userauth is OK
2025-06-13 10:23:38,559 [ INFO][       Thread-251477][   transport.py][1871] : Authentication (password) successful!
2025-06-13 10:23:38,560 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 10:23:39,188 [DEBUG][       Thread-251477][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 10:23:39,188 [DEBUG][       Thread-251477][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 10:23:39,233 [DEBUG][       Thread-251477][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 10:23:39,233 [DEBUG][       Thread-251477][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 10:23:39,236 [DEBUG][       Thread-251477][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 10:23:39,247 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 10:23:39,247 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 10:23:39,249 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 10:23:39,251 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 10:23:39,256 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 10:23:39,258 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 10:23:39,259 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 10:23:39,259 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 10:23:39,259 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.349246 -999.00   +9.10  22.74     53   +0.10 1 1 1 1 1   887    0 9.65 38.29 ----- 20.0 22.7 36.8 25.8 13.6 -28.2 12.2 -29.6 11.2 -28.0 12.4 -26.6
2025-06-13 10:23:39,259 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 10:23:39,259 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 10:23:39,259 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.349246
2025-06-13 10:23:39,260 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 10:23:39,260 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 10:23:39,260 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 10:23:39,260 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 10:23:39,261 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 10:23:39,261 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T10:23:21', tmtdew=10.25, humidity=48.79, cloud=0.0, wind=18.35, temperature=9.11, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T08:22:54.854', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 10:23:39,262 [DEBUG][       Thread-251477][   transport.py][1871] : EOF in transport thread
2025-06-13 10:23:39,342 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 10:23:39,353 [DEBUG][       Thread-251480][   transport.py][1871] : starting thread (client mode): 0x863a5030
2025-06-13 10:23:39,353 [DEBUG][       Thread-251480][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 10:23:39,368 [DEBUG][       Thread-251480][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 10:23:39,368 [ INFO][       Thread-251480][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 10:23:39,376 [DEBUG][       Thread-251480][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 10:23:39,376 [DEBUG][       Thread-251480][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 10:23:39,376 [DEBUG][       Thread-251480][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 10:23:39,376 [DEBUG][       Thread-251480][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:23:39,376 [DEBUG][       Thread-251480][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:23:39,376 [DEBUG][       Thread-251480][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:23:39,376 [DEBUG][       Thread-251480][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:23:39,376 [DEBUG][       Thread-251480][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 10:23:39,376 [DEBUG][       Thread-251480][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 10:23:39,376 [DEBUG][       Thread-251480][   transport.py][1871] : client lang: <none>
2025-06-13 10:23:39,376 [DEBUG][       Thread-251480][   transport.py][1871] : server lang: <none>
2025-06-13 10:23:39,376 [DEBUG][       Thread-251480][   transport.py][1871] : kex follows: False
2025-06-13 10:23:39,376 [DEBUG][       Thread-251480][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 10:23:39,376 [DEBUG][       Thread-251480][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 10:23:39,376 [DEBUG][       Thread-251480][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 10:23:39,376 [DEBUG][       Thread-251480][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 10:23:39,376 [DEBUG][       Thread-251480][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 10:23:39,376 [DEBUG][       Thread-251480][   transport.py][1871] : Compression: none
2025-06-13 10:23:39,376 [DEBUG][       Thread-251480][   transport.py][1871] : === End of kex handshake ===
2025-06-13 10:23:39,433 [DEBUG][       Thread-251480][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 10:23:39,434 [DEBUG][       Thread-251480][   transport.py][1871] : Switch to new keys ...
2025-06-13 10:23:39,434 [DEBUG][       Thread-251480][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 10:23:39,434 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 10:23:39,435 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 10:23:39,490 [DEBUG][       Thread-251480][   transport.py][1871] : userauth is OK
2025-06-13 10:23:39,490 [DEBUG][       Thread-251480][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 10:23:39,491 [DEBUG][       Thread-251480][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 10:23:39,491 [DEBUG][       Thread-251480][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 10:23:39,491 [DEBUG][       Thread-251480][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 10:23:39,510 [ INFO][       Thread-251480][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 10:23:39,511 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 10:23:39,511 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 10:23:40,535 [DEBUG][       Thread-251480][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 10:23:40,535 [DEBUG][       Thread-251480][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 10:23:40,588 [DEBUG][       Thread-251480][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 10:23:40,588 [DEBUG][       Thread-251480][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 10:23:40,596 [DEBUG][       Thread-251480][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 10:23:40,604 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 10:23:40,605 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 10:23:40,613 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 10:23:40,621 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 10:23:40,622 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 10:23:40,622 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 10:23:40,630 [DEBUG][       Thread-251480][   transport.py][1871] : EOF in transport thread
2025-06-13 10:23:42,815 [DEBUG][Thread-251482 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:23:50,632 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 10:23:50,633 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 10:23:50,633 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 10:23:50,633 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 10:23:51,096 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 10, 23, 21), 10.25, 48.79, 0.0, 18.35, 9.11, 0, 0, 0, 2, 0, 0),)
2025-06-13 10:23:51,096 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 10:23:21
2025-06-13 10:23:51,177 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 10:23:51,183 [DEBUG][       Thread-251483][   transport.py][1871] : starting thread (client mode): 0x863a55d0
2025-06-13 10:23:51,183 [DEBUG][       Thread-251483][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 10:23:51,204 [DEBUG][       Thread-251483][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 10:23:51,204 [ INFO][       Thread-251483][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 10:23:51,208 [DEBUG][       Thread-251483][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 10:23:51,208 [DEBUG][       Thread-251483][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 10:23:51,208 [DEBUG][       Thread-251483][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 10:23:51,208 [DEBUG][       Thread-251483][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:23:51,208 [DEBUG][       Thread-251483][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:23:51,208 [DEBUG][       Thread-251483][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:23:51,208 [DEBUG][       Thread-251483][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:23:51,208 [DEBUG][       Thread-251483][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 10:23:51,208 [DEBUG][       Thread-251483][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 10:23:51,208 [DEBUG][       Thread-251483][   transport.py][1871] : client lang: <none>
2025-06-13 10:23:51,208 [DEBUG][       Thread-251483][   transport.py][1871] : server lang: <none>
2025-06-13 10:23:51,208 [DEBUG][       Thread-251483][   transport.py][1871] : kex follows: False
2025-06-13 10:23:51,208 [DEBUG][       Thread-251483][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 10:23:51,208 [DEBUG][       Thread-251483][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 10:23:51,208 [DEBUG][       Thread-251483][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 10:23:51,209 [DEBUG][       Thread-251483][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 10:23:51,209 [DEBUG][       Thread-251483][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 10:23:51,209 [DEBUG][       Thread-251483][   transport.py][1871] : Compression: none
2025-06-13 10:23:51,209 [DEBUG][       Thread-251483][   transport.py][1871] : === End of kex handshake ===
2025-06-13 10:23:51,226 [DEBUG][       Thread-251483][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 10:23:51,227 [DEBUG][       Thread-251483][   transport.py][1871] : Switch to new keys ...
2025-06-13 10:23:51,227 [DEBUG][       Thread-251483][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 10:23:51,228 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 10:23:51,228 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 10:23:51,229 [DEBUG][       Thread-251483][   transport.py][1871] : userauth is OK
2025-06-13 10:23:51,253 [ INFO][       Thread-251483][   transport.py][1871] : Authentication (password) successful!
2025-06-13 10:23:51,254 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 10:23:51,833 [DEBUG][Thread-251485 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:23:51,878 [DEBUG][       Thread-251483][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 10:23:51,878 [DEBUG][       Thread-251483][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 10:23:51,921 [DEBUG][       Thread-251483][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 10:23:51,921 [DEBUG][       Thread-251483][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 10:23:51,923 [DEBUG][       Thread-251483][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 10:23:51,936 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 10:23:51,937 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 10:23:51,938 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 10:23:51,939 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 10:23:51,944 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 10:23:51,946 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 10:23:51,946 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 10:23:51,947 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 10:23:51,947 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.349593 -999.00   +9.00  22.00     53   +0.00 1 1 1 1 1   887    0 9.71 38.29 ----- 22.2 22.0 49.6 25.4 13.6 -28.6 12.2 -29.6 11.2 -28.5 12.4 -26.9
2025-06-13 10:23:51,947 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 10:23:51,947 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 10:23:51,947 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.349593
2025-06-13 10:23:51,947 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 10:23:51,948 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 10:23:51,948 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 10:23:51,948 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 10:23:51,948 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 10:23:51,948 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T10:23:21', tmtdew=10.25, humidity=48.79, cloud=0.0, wind=18.35, temperature=9.11, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T08:23:24.835', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 10:23:51,949 [DEBUG][       Thread-251483][   transport.py][1871] : EOF in transport thread
2025-06-13 10:23:52,032 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 10:23:52,044 [DEBUG][       Thread-251487][   transport.py][1871] : starting thread (client mode): 0x867b6380
2025-06-13 10:23:52,044 [DEBUG][       Thread-251487][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 10:23:52,059 [DEBUG][       Thread-251487][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 10:23:52,059 [ INFO][       Thread-251487][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 10:23:52,067 [DEBUG][       Thread-251487][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 10:23:52,067 [DEBUG][       Thread-251487][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 10:23:52,067 [DEBUG][       Thread-251487][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 10:23:52,067 [DEBUG][       Thread-251487][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:23:52,067 [DEBUG][       Thread-251487][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:23:52,067 [DEBUG][       Thread-251487][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:23:52,067 [DEBUG][       Thread-251487][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:23:52,067 [DEBUG][       Thread-251487][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 10:23:52,067 [DEBUG][       Thread-251487][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 10:23:52,067 [DEBUG][       Thread-251487][   transport.py][1871] : client lang: <none>
2025-06-13 10:23:52,067 [DEBUG][       Thread-251487][   transport.py][1871] : server lang: <none>
2025-06-13 10:23:52,067 [DEBUG][       Thread-251487][   transport.py][1871] : kex follows: False
2025-06-13 10:23:52,067 [DEBUG][       Thread-251487][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 10:23:52,067 [DEBUG][       Thread-251487][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 10:23:52,067 [DEBUG][       Thread-251487][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 10:23:52,068 [DEBUG][       Thread-251487][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 10:23:52,068 [DEBUG][       Thread-251487][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 10:23:52,068 [DEBUG][       Thread-251487][   transport.py][1871] : Compression: none
2025-06-13 10:23:52,068 [DEBUG][       Thread-251487][   transport.py][1871] : === End of kex handshake ===
2025-06-13 10:23:52,129 [DEBUG][       Thread-251487][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 10:23:52,130 [DEBUG][       Thread-251487][   transport.py][1871] : Switch to new keys ...
2025-06-13 10:23:52,130 [DEBUG][       Thread-251487][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 10:23:52,131 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 10:23:52,131 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 10:23:52,186 [DEBUG][       Thread-251487][   transport.py][1871] : userauth is OK
2025-06-13 10:23:52,186 [DEBUG][       Thread-251487][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 10:23:52,186 [DEBUG][       Thread-251487][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 10:23:52,186 [DEBUG][       Thread-251487][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 10:23:52,186 [DEBUG][       Thread-251487][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 10:23:52,206 [ INFO][       Thread-251487][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 10:23:52,206 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 10:23:52,206 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 10:23:53,221 [DEBUG][       Thread-251487][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 10:23:53,221 [DEBUG][       Thread-251487][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 10:23:53,282 [DEBUG][       Thread-251487][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 10:23:53,282 [DEBUG][       Thread-251487][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 10:23:53,291 [DEBUG][       Thread-251487][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 10:23:53,300 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 10:23:53,301 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 10:23:53,309 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 10:23:53,318 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 10:23:53,318 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 10:23:53,319 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 10:23:53,326 [DEBUG][       Thread-251487][   transport.py][1871] : EOF in transport thread
2025-06-13 10:24:00,853 [DEBUG][Thread-251489 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:24:03,329 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 10:24:03,329 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 10:24:03,329 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 10:24:03,332 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 10:24:03,787 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 10, 23, 52), 10.24, 48.86, 0.0, 18.93, 9.13, 0, 0, 0, 2, 0, 0),)
2025-06-13 10:24:03,787 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 10:23:52
2025-06-13 10:24:03,868 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 10:24:03,872 [DEBUG][       Thread-251490][   transport.py][1871] : starting thread (client mode): 0x867b6950
2025-06-13 10:24:03,872 [DEBUG][       Thread-251490][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 10:24:03,893 [DEBUG][       Thread-251490][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 10:24:03,893 [ INFO][       Thread-251490][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 10:24:03,896 [DEBUG][       Thread-251490][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 10:24:03,896 [DEBUG][       Thread-251490][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 10:24:03,896 [DEBUG][       Thread-251490][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 10:24:03,896 [DEBUG][       Thread-251490][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:24:03,897 [DEBUG][       Thread-251490][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:24:03,897 [DEBUG][       Thread-251490][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:24:03,897 [DEBUG][       Thread-251490][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:24:03,897 [DEBUG][       Thread-251490][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 10:24:03,897 [DEBUG][       Thread-251490][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 10:24:03,897 [DEBUG][       Thread-251490][   transport.py][1871] : client lang: <none>
2025-06-13 10:24:03,897 [DEBUG][       Thread-251490][   transport.py][1871] : server lang: <none>
2025-06-13 10:24:03,897 [DEBUG][       Thread-251490][   transport.py][1871] : kex follows: False
2025-06-13 10:24:03,897 [DEBUG][       Thread-251490][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 10:24:03,897 [DEBUG][       Thread-251490][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 10:24:03,897 [DEBUG][       Thread-251490][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 10:24:03,897 [DEBUG][       Thread-251490][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 10:24:03,897 [DEBUG][       Thread-251490][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 10:24:03,897 [DEBUG][       Thread-251490][   transport.py][1871] : Compression: none
2025-06-13 10:24:03,897 [DEBUG][       Thread-251490][   transport.py][1871] : === End of kex handshake ===
2025-06-13 10:24:03,913 [DEBUG][       Thread-251490][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 10:24:03,914 [DEBUG][       Thread-251490][   transport.py][1871] : Switch to new keys ...
2025-06-13 10:24:03,914 [DEBUG][       Thread-251490][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 10:24:03,914 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 10:24:03,915 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 10:24:03,916 [DEBUG][       Thread-251490][   transport.py][1871] : userauth is OK
2025-06-13 10:24:03,928 [ INFO][       Thread-251490][   transport.py][1871] : Authentication (password) successful!
2025-06-13 10:24:03,929 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 10:24:04,571 [DEBUG][       Thread-251490][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 10:24:04,571 [DEBUG][       Thread-251490][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 10:24:04,613 [DEBUG][       Thread-251490][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 10:24:04,613 [DEBUG][       Thread-251490][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 10:24:04,616 [DEBUG][       Thread-251490][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 10:24:04,627 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 10:24:04,627 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 10:24:04,629 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 10:24:04,631 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 10:24:04,637 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 10:24:04,638 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 10:24:04,639 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 10:24:04,639 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 10:24:04,639 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.349593 -999.00   +9.00  22.00     53   +0.00 1 1 1 1 1   887    0 9.71 38.29 ----- 22.2 22.0 49.6 25.4 13.6 -28.6 12.2 -29.6 11.2 -28.5 12.4 -26.9
2025-06-13 10:24:04,639 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 10:24:04,639 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 10:24:04,640 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.349593
2025-06-13 10:24:04,640 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 10:24:04,640 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 10:24:04,640 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 10:24:04,641 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 10:24:04,641 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 10:24:04,641 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T10:23:52', tmtdew=10.24, humidity=48.86, cloud=0.0, wind=18.93, temperature=9.13, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T08:23:24.835', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 10:24:04,641 [DEBUG][       Thread-251490][   transport.py][1871] : EOF in transport thread
2025-06-13 10:24:04,725 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 10:24:04,736 [DEBUG][       Thread-251493][   transport.py][1871] : starting thread (client mode): 0x863a7220
2025-06-13 10:24:04,736 [DEBUG][       Thread-251493][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 10:24:04,752 [DEBUG][       Thread-251493][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 10:24:04,752 [ INFO][       Thread-251493][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 10:24:04,759 [DEBUG][       Thread-251493][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 10:24:04,759 [DEBUG][       Thread-251493][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 10:24:04,759 [DEBUG][       Thread-251493][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 10:24:04,759 [DEBUG][       Thread-251493][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:24:04,759 [DEBUG][       Thread-251493][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:24:04,759 [DEBUG][       Thread-251493][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:24:04,759 [DEBUG][       Thread-251493][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:24:04,759 [DEBUG][       Thread-251493][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 10:24:04,759 [DEBUG][       Thread-251493][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 10:24:04,760 [DEBUG][       Thread-251493][   transport.py][1871] : client lang: <none>
2025-06-13 10:24:04,760 [DEBUG][       Thread-251493][   transport.py][1871] : server lang: <none>
2025-06-13 10:24:04,760 [DEBUG][       Thread-251493][   transport.py][1871] : kex follows: False
2025-06-13 10:24:04,760 [DEBUG][       Thread-251493][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 10:24:04,760 [DEBUG][       Thread-251493][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 10:24:04,760 [DEBUG][       Thread-251493][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 10:24:04,760 [DEBUG][       Thread-251493][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 10:24:04,760 [DEBUG][       Thread-251493][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 10:24:04,760 [DEBUG][       Thread-251493][   transport.py][1871] : Compression: none
2025-06-13 10:24:04,760 [DEBUG][       Thread-251493][   transport.py][1871] : === End of kex handshake ===
2025-06-13 10:24:04,818 [DEBUG][       Thread-251493][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 10:24:04,819 [DEBUG][       Thread-251493][   transport.py][1871] : Switch to new keys ...
2025-06-13 10:24:04,819 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 10:24:04,820 [DEBUG][       Thread-251493][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 10:24:04,820 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 10:24:04,886 [DEBUG][       Thread-251493][   transport.py][1871] : userauth is OK
2025-06-13 10:24:04,886 [DEBUG][       Thread-251493][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 10:24:04,886 [DEBUG][       Thread-251493][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 10:24:04,886 [DEBUG][       Thread-251493][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 10:24:04,886 [DEBUG][       Thread-251493][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 10:24:04,908 [ INFO][       Thread-251493][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 10:24:04,908 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 10:24:04,908 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 10:24:05,940 [DEBUG][       Thread-251493][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 10:24:05,940 [DEBUG][       Thread-251493][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 10:24:05,992 [DEBUG][       Thread-251493][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 10:24:05,992 [DEBUG][       Thread-251493][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 10:24:06,002 [DEBUG][       Thread-251493][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 10:24:06,011 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 10:24:06,011 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 10:24:06,020 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 10:24:06,030 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 10:24:06,030 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 10:24:06,030 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 10:24:06,038 [DEBUG][       Thread-251493][   transport.py][1871] : EOF in transport thread
2025-06-13 10:24:06,096 [DEBUG][Thread-251495 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:24:09,222 [DEBUG][Thread-251496 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:24:09,873 [DEBUG][Thread-251497 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:24:10,302 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:24:10,303 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:24:16,041 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 10:24:16,041 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 10:24:16,041 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 10:24:16,043 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 10:24:16,501 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 10, 23, 52), 10.24, 48.86, 0.0, 18.93, 9.13, 0, 0, 0, 2, 0, 0),)
2025-06-13 10:24:16,501 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 10:23:52
2025-06-13 10:24:16,583 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 10:24:16,589 [DEBUG][       Thread-251498][   transport.py][1871] : starting thread (client mode): 0x867fceb0
2025-06-13 10:24:16,590 [DEBUG][       Thread-251498][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 10:24:16,605 [DEBUG][       Thread-251498][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 10:24:16,605 [ INFO][       Thread-251498][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 10:24:16,608 [DEBUG][       Thread-251498][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 10:24:16,608 [DEBUG][       Thread-251498][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 10:24:16,608 [DEBUG][       Thread-251498][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 10:24:16,608 [DEBUG][       Thread-251498][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:24:16,608 [DEBUG][       Thread-251498][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:24:16,608 [DEBUG][       Thread-251498][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:24:16,608 [DEBUG][       Thread-251498][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:24:16,608 [DEBUG][       Thread-251498][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 10:24:16,608 [DEBUG][       Thread-251498][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 10:24:16,608 [DEBUG][       Thread-251498][   transport.py][1871] : client lang: <none>
2025-06-13 10:24:16,608 [DEBUG][       Thread-251498][   transport.py][1871] : server lang: <none>
2025-06-13 10:24:16,608 [DEBUG][       Thread-251498][   transport.py][1871] : kex follows: False
2025-06-13 10:24:16,608 [DEBUG][       Thread-251498][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 10:24:16,608 [DEBUG][       Thread-251498][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 10:24:16,608 [DEBUG][       Thread-251498][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 10:24:16,608 [DEBUG][       Thread-251498][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 10:24:16,608 [DEBUG][       Thread-251498][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 10:24:16,608 [DEBUG][       Thread-251498][   transport.py][1871] : Compression: none
2025-06-13 10:24:16,608 [DEBUG][       Thread-251498][   transport.py][1871] : === End of kex handshake ===
2025-06-13 10:24:16,626 [DEBUG][       Thread-251498][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 10:24:16,626 [DEBUG][       Thread-251498][   transport.py][1871] : Switch to new keys ...
2025-06-13 10:24:16,627 [DEBUG][       Thread-251498][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 10:24:16,627 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 10:24:16,627 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 10:24:16,628 [DEBUG][       Thread-251498][   transport.py][1871] : userauth is OK
2025-06-13 10:24:16,652 [ INFO][       Thread-251498][   transport.py][1871] : Authentication (password) successful!
2025-06-13 10:24:16,652 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 10:24:17,311 [DEBUG][       Thread-251498][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 10:24:17,311 [DEBUG][       Thread-251498][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 10:24:17,356 [DEBUG][       Thread-251498][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 10:24:17,356 [DEBUG][       Thread-251498][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 10:24:17,359 [DEBUG][       Thread-251498][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 10:24:17,373 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 10:24:17,373 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 10:24:17,374 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 10:24:17,375 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 10:24:17,377 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 10:24:17,378 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 10:24:17,378 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 10:24:17,378 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 10:24:17,378 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.349593 -999.00   +9.00  22.00     53   +0.00 1 1 1 1 1   887    0 9.71 38.29 ----- 22.2 22.0 49.6 25.4 13.6 -28.6 12.2 -29.6 11.2 -28.5 12.4 -26.9
2025-06-13 10:24:17,378 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 10:24:17,378 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 10:24:17,378 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.349593
2025-06-13 10:24:17,379 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 10:24:17,379 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 10:24:17,379 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 10:24:17,379 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 10:24:17,379 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 10:24:17,379 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T10:23:52', tmtdew=10.24, humidity=48.86, cloud=0.0, wind=18.93, temperature=9.13, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T08:23:24.835', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 10:24:17,379 [DEBUG][       Thread-251498][   transport.py][1871] : EOF in transport thread
2025-06-13 10:24:17,452 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 10:24:17,463 [DEBUG][       Thread-251501][   transport.py][1871] : starting thread (client mode): 0x84207310
2025-06-13 10:24:17,463 [DEBUG][       Thread-251501][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 10:24:17,478 [DEBUG][       Thread-251501][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 10:24:17,478 [ INFO][       Thread-251501][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 10:24:17,485 [DEBUG][       Thread-251501][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 10:24:17,486 [DEBUG][       Thread-251501][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 10:24:17,486 [DEBUG][       Thread-251501][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 10:24:17,486 [DEBUG][       Thread-251501][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:24:17,486 [DEBUG][       Thread-251501][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:24:17,486 [DEBUG][       Thread-251501][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:24:17,486 [DEBUG][       Thread-251501][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:24:17,486 [DEBUG][       Thread-251501][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 10:24:17,486 [DEBUG][       Thread-251501][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 10:24:17,486 [DEBUG][       Thread-251501][   transport.py][1871] : client lang: <none>
2025-06-13 10:24:17,486 [DEBUG][       Thread-251501][   transport.py][1871] : server lang: <none>
2025-06-13 10:24:17,486 [DEBUG][       Thread-251501][   transport.py][1871] : kex follows: False
2025-06-13 10:24:17,486 [DEBUG][       Thread-251501][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 10:24:17,486 [DEBUG][       Thread-251501][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 10:24:17,486 [DEBUG][       Thread-251501][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 10:24:17,486 [DEBUG][       Thread-251501][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 10:24:17,486 [DEBUG][       Thread-251501][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 10:24:17,486 [DEBUG][       Thread-251501][   transport.py][1871] : Compression: none
2025-06-13 10:24:17,486 [DEBUG][       Thread-251501][   transport.py][1871] : === End of kex handshake ===
2025-06-13 10:24:17,546 [DEBUG][       Thread-251501][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 10:24:17,546 [DEBUG][       Thread-251501][   transport.py][1871] : Switch to new keys ...
2025-06-13 10:24:17,547 [DEBUG][       Thread-251501][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 10:24:17,547 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 10:24:17,547 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 10:24:17,602 [DEBUG][       Thread-251501][   transport.py][1871] : userauth is OK
2025-06-13 10:24:17,602 [DEBUG][       Thread-251501][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 10:24:17,602 [DEBUG][       Thread-251501][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 10:24:17,602 [DEBUG][       Thread-251501][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 10:24:17,602 [DEBUG][       Thread-251501][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 10:24:17,621 [ INFO][       Thread-251501][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 10:24:17,621 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 10:24:17,622 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 10:24:18,619 [DEBUG][       Thread-251501][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 10:24:18,619 [DEBUG][       Thread-251501][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 10:24:18,668 [DEBUG][       Thread-251501][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 10:24:18,668 [DEBUG][       Thread-251501][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 10:24:18,677 [DEBUG][       Thread-251501][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 10:24:18,686 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 10:24:18,686 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 10:24:18,694 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 10:24:18,706 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 10:24:18,706 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 10:24:18,707 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 10:24:18,720 [DEBUG][       Thread-251501][   transport.py][1871] : EOF in transport thread
2025-06-13 10:24:18,904 [DEBUG][Thread-251503 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:24:26,005 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:24:26,005 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:24:27,920 [DEBUG][Thread-251504 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:24:28,716 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 10:24:28,716 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 10:24:28,716 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 10:24:28,717 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 10:24:29,190 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 10, 24, 24), 10.27, 48.84, 0.0, 15.88, 9.18, 0, 0, 0, 2, 0, 0),)
2025-06-13 10:24:29,190 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 10:24:24
2025-06-13 10:24:29,275 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 10:24:29,279 [DEBUG][       Thread-251505][   transport.py][1871] : starting thread (client mode): 0x84204640
2025-06-13 10:24:29,279 [DEBUG][       Thread-251505][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 10:24:29,298 [DEBUG][       Thread-251505][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 10:24:29,298 [ INFO][       Thread-251505][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 10:24:29,301 [DEBUG][       Thread-251505][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 10:24:29,301 [DEBUG][       Thread-251505][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 10:24:29,301 [DEBUG][       Thread-251505][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 10:24:29,302 [DEBUG][       Thread-251505][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:24:29,302 [DEBUG][       Thread-251505][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:24:29,302 [DEBUG][       Thread-251505][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:24:29,302 [DEBUG][       Thread-251505][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:24:29,302 [DEBUG][       Thread-251505][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 10:24:29,302 [DEBUG][       Thread-251505][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 10:24:29,302 [DEBUG][       Thread-251505][   transport.py][1871] : client lang: <none>
2025-06-13 10:24:29,302 [DEBUG][       Thread-251505][   transport.py][1871] : server lang: <none>
2025-06-13 10:24:29,302 [DEBUG][       Thread-251505][   transport.py][1871] : kex follows: False
2025-06-13 10:24:29,302 [DEBUG][       Thread-251505][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 10:24:29,302 [DEBUG][       Thread-251505][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 10:24:29,302 [DEBUG][       Thread-251505][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 10:24:29,302 [DEBUG][       Thread-251505][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 10:24:29,302 [DEBUG][       Thread-251505][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 10:24:29,302 [DEBUG][       Thread-251505][   transport.py][1871] : Compression: none
2025-06-13 10:24:29,302 [DEBUG][       Thread-251505][   transport.py][1871] : === End of kex handshake ===
2025-06-13 10:24:29,316 [DEBUG][       Thread-251505][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 10:24:29,316 [DEBUG][       Thread-251505][   transport.py][1871] : Switch to new keys ...
2025-06-13 10:24:29,316 [DEBUG][       Thread-251505][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 10:24:29,316 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 10:24:29,316 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 10:24:29,317 [DEBUG][       Thread-251505][   transport.py][1871] : userauth is OK
2025-06-13 10:24:29,341 [ INFO][       Thread-251505][   transport.py][1871] : Authentication (password) successful!
2025-06-13 10:24:29,341 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 10:24:29,984 [DEBUG][       Thread-251505][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 10:24:29,984 [DEBUG][       Thread-251505][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 10:24:30,025 [DEBUG][       Thread-251505][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 10:24:30,025 [DEBUG][       Thread-251505][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 10:24:30,028 [DEBUG][       Thread-251505][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 10:24:30,039 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 10:24:30,040 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 10:24:30,042 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 10:24:30,043 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 10:24:30,050 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 10:24:30,052 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 10:24:30,053 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 10:24:30,053 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 10:24:30,054 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.349940 -999.00   +9.00  19.19     53   +0.10 1 1 1 1 1   887    0 9.87 40.58 ----- 19.0 19.2 45.8 24.2 13.6 -28.3 12.2 -29.9 11.2 -27.8 12.4 -26.6
2025-06-13 10:24:30,054 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 10:24:30,054 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 10:24:30,054 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.349940
2025-06-13 10:24:30,055 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 10:24:30,055 [DEBUG][       Thread-251505][   transport.py][1871] : EOF in transport thread
2025-06-13 10:24:30,056 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 10:24:30,056 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 10:24:30,056 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 10:24:30,056 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 10:24:30,057 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T10:24:24', tmtdew=10.27, humidity=48.84, cloud=0.0, wind=15.88, temperature=9.18, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T08:23:54.816', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 10:24:30,157 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 10:24:30,166 [DEBUG][       Thread-251508][   transport.py][1871] : starting thread (client mode): 0x86368790
2025-06-13 10:24:30,166 [DEBUG][       Thread-251508][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 10:24:30,183 [DEBUG][       Thread-251508][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 10:24:30,183 [ INFO][       Thread-251508][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 10:24:30,190 [DEBUG][       Thread-251508][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 10:24:30,190 [DEBUG][       Thread-251508][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 10:24:30,190 [DEBUG][       Thread-251508][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 10:24:30,190 [DEBUG][       Thread-251508][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:24:30,190 [DEBUG][       Thread-251508][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:24:30,190 [DEBUG][       Thread-251508][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:24:30,190 [DEBUG][       Thread-251508][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:24:30,190 [DEBUG][       Thread-251508][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 10:24:30,190 [DEBUG][       Thread-251508][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 10:24:30,190 [DEBUG][       Thread-251508][   transport.py][1871] : client lang: <none>
2025-06-13 10:24:30,190 [DEBUG][       Thread-251508][   transport.py][1871] : server lang: <none>
2025-06-13 10:24:30,190 [DEBUG][       Thread-251508][   transport.py][1871] : kex follows: False
2025-06-13 10:24:30,190 [DEBUG][       Thread-251508][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 10:24:30,190 [DEBUG][       Thread-251508][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 10:24:30,191 [DEBUG][       Thread-251508][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 10:24:30,191 [DEBUG][       Thread-251508][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 10:24:30,191 [DEBUG][       Thread-251508][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 10:24:30,191 [DEBUG][       Thread-251508][   transport.py][1871] : Compression: none
2025-06-13 10:24:30,191 [DEBUG][       Thread-251508][   transport.py][1871] : === End of kex handshake ===
2025-06-13 10:24:30,249 [DEBUG][       Thread-251508][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 10:24:30,250 [DEBUG][       Thread-251508][   transport.py][1871] : Switch to new keys ...
2025-06-13 10:24:30,250 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 10:24:30,251 [DEBUG][       Thread-251508][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 10:24:30,251 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 10:24:30,317 [DEBUG][       Thread-251508][   transport.py][1871] : userauth is OK
2025-06-13 10:24:30,317 [DEBUG][       Thread-251508][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 10:24:30,317 [DEBUG][       Thread-251508][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 10:24:30,317 [DEBUG][       Thread-251508][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 10:24:30,317 [DEBUG][       Thread-251508][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 10:24:30,340 [ INFO][       Thread-251508][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 10:24:30,340 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 10:24:30,340 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 10:24:31,372 [DEBUG][       Thread-251508][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 10:24:31,372 [DEBUG][       Thread-251508][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 10:24:31,422 [DEBUG][       Thread-251508][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 10:24:31,422 [DEBUG][       Thread-251508][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 10:24:31,432 [DEBUG][       Thread-251508][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 10:24:31,441 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 10:24:31,441 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 10:24:31,452 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 10:24:31,462 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 10:24:31,462 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 10:24:31,463 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 10:24:31,472 [DEBUG][       Thread-251508][   transport.py][1871] : EOF in transport thread
2025-06-13 10:24:36,937 [DEBUG][Thread-251510 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:24:41,473 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 10:24:41,473 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 10:24:41,473 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 10:24:41,476 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 10:24:41,932 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 10, 24, 24), 10.27, 48.84, 0.0, 15.88, 9.18, 0, 0, 0, 2, 0, 0),)
2025-06-13 10:24:41,932 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 10:24:24
2025-06-13 10:24:42,014 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 10:24:42,020 [DEBUG][       Thread-251511][   transport.py][1871] : starting thread (client mode): 0x84205db0
2025-06-13 10:24:42,020 [DEBUG][       Thread-251511][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 10:24:42,041 [DEBUG][       Thread-251511][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 10:24:42,041 [ INFO][       Thread-251511][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 10:24:42,044 [DEBUG][       Thread-251511][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 10:24:42,044 [DEBUG][       Thread-251511][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 10:24:42,045 [DEBUG][       Thread-251511][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 10:24:42,045 [DEBUG][       Thread-251511][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:24:42,045 [DEBUG][       Thread-251511][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:24:42,045 [DEBUG][       Thread-251511][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:24:42,045 [DEBUG][       Thread-251511][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:24:42,045 [DEBUG][       Thread-251511][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 10:24:42,045 [DEBUG][       Thread-251511][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 10:24:42,045 [DEBUG][       Thread-251511][   transport.py][1871] : client lang: <none>
2025-06-13 10:24:42,045 [DEBUG][       Thread-251511][   transport.py][1871] : server lang: <none>
2025-06-13 10:24:42,045 [DEBUG][       Thread-251511][   transport.py][1871] : kex follows: False
2025-06-13 10:24:42,045 [DEBUG][       Thread-251511][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 10:24:42,045 [DEBUG][       Thread-251511][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 10:24:42,045 [DEBUG][       Thread-251511][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 10:24:42,045 [DEBUG][       Thread-251511][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 10:24:42,045 [DEBUG][       Thread-251511][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 10:24:42,045 [DEBUG][       Thread-251511][   transport.py][1871] : Compression: none
2025-06-13 10:24:42,045 [DEBUG][       Thread-251511][   transport.py][1871] : === End of kex handshake ===
2025-06-13 10:24:42,064 [DEBUG][       Thread-251511][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 10:24:42,065 [DEBUG][       Thread-251511][   transport.py][1871] : Switch to new keys ...
2025-06-13 10:24:42,065 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 10:24:42,065 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 10:24:42,066 [DEBUG][       Thread-251511][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 10:24:42,066 [DEBUG][       Thread-251511][   transport.py][1871] : userauth is OK
2025-06-13 10:24:42,090 [ INFO][       Thread-251511][   transport.py][1871] : Authentication (password) successful!
2025-06-13 10:24:42,091 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 10:24:42,783 [DEBUG][       Thread-251511][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 10:24:42,783 [DEBUG][       Thread-251511][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 10:24:42,825 [DEBUG][       Thread-251511][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 10:24:42,825 [DEBUG][       Thread-251511][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 10:24:42,828 [DEBUG][       Thread-251511][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 10:24:42,840 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 10:24:42,840 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 10:24:42,841 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 10:24:42,843 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 10:24:42,847 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 10:24:42,849 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 10:24:42,849 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 10:24:42,850 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 10:24:42,850 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.349940 -999.00   +9.00  19.19     53   +0.10 1 1 1 1 1   887    0 9.87 40.58 ----- 19.0 19.2 45.8 24.2 13.6 -28.3 12.2 -29.9 11.2 -27.8 12.4 -26.6
2025-06-13 10:24:42,850 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 10:24:42,850 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 10:24:42,850 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.349940
2025-06-13 10:24:42,850 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 10:24:42,851 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 10:24:42,851 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 10:24:42,851 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 10:24:42,851 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 10:24:42,851 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T10:24:24', tmtdew=10.27, humidity=48.84, cloud=0.0, wind=15.88, temperature=9.18, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T08:23:54.816', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 10:24:42,851 [DEBUG][       Thread-251511][   transport.py][1871] : EOF in transport thread
2025-06-13 10:24:42,935 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 10:24:42,947 [DEBUG][       Thread-251514][   transport.py][1871] : starting thread (client mode): 0x867b6800
2025-06-13 10:24:42,947 [DEBUG][       Thread-251514][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 10:24:42,961 [DEBUG][       Thread-251514][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 10:24:42,961 [ INFO][       Thread-251514][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 10:24:42,969 [DEBUG][       Thread-251514][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 10:24:42,969 [DEBUG][       Thread-251514][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 10:24:42,969 [DEBUG][       Thread-251514][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 10:24:42,969 [DEBUG][       Thread-251514][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:24:42,969 [DEBUG][       Thread-251514][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:24:42,969 [DEBUG][       Thread-251514][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:24:42,969 [DEBUG][       Thread-251514][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:24:42,969 [DEBUG][       Thread-251514][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 10:24:42,969 [DEBUG][       Thread-251514][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 10:24:42,969 [DEBUG][       Thread-251514][   transport.py][1871] : client lang: <none>
2025-06-13 10:24:42,969 [DEBUG][       Thread-251514][   transport.py][1871] : server lang: <none>
2025-06-13 10:24:42,969 [DEBUG][       Thread-251514][   transport.py][1871] : kex follows: False
2025-06-13 10:24:42,969 [DEBUG][       Thread-251514][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 10:24:42,969 [DEBUG][       Thread-251514][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 10:24:42,969 [DEBUG][       Thread-251514][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 10:24:42,969 [DEBUG][       Thread-251514][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 10:24:42,970 [DEBUG][       Thread-251514][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 10:24:42,970 [DEBUG][       Thread-251514][   transport.py][1871] : Compression: none
2025-06-13 10:24:42,970 [DEBUG][       Thread-251514][   transport.py][1871] : === End of kex handshake ===
2025-06-13 10:24:43,025 [DEBUG][       Thread-251514][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 10:24:43,026 [DEBUG][       Thread-251514][   transport.py][1871] : Switch to new keys ...
2025-06-13 10:24:43,026 [DEBUG][       Thread-251514][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 10:24:43,027 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 10:24:43,027 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 10:24:43,083 [DEBUG][       Thread-251514][   transport.py][1871] : userauth is OK
2025-06-13 10:24:43,083 [DEBUG][       Thread-251514][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 10:24:43,083 [DEBUG][       Thread-251514][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 10:24:43,084 [DEBUG][       Thread-251514][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 10:24:43,084 [DEBUG][       Thread-251514][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 10:24:43,101 [ INFO][       Thread-251514][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 10:24:43,102 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 10:24:43,102 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 10:24:44,104 [DEBUG][       Thread-251514][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 10:24:44,104 [DEBUG][       Thread-251514][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 10:24:44,151 [DEBUG][       Thread-251514][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 10:24:44,152 [DEBUG][       Thread-251514][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 10:24:44,161 [DEBUG][       Thread-251514][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 10:24:44,169 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 10:24:44,170 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 10:24:44,178 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 10:24:44,186 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 10:24:44,186 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 10:24:44,186 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 10:24:44,199 [DEBUG][       Thread-251514][   transport.py][1871] : EOF in transport thread
2025-06-13 10:24:45,969 [DEBUG][Thread-251516 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:24:54,194 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 10:24:54,194 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 10:24:54,194 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 10:24:54,197 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 10:24:54,651 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 10, 24, 24), 10.27, 48.84, 0.0, 15.88, 9.18, 0, 0, 0, 2, 0, 0),)
2025-06-13 10:24:54,651 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 10:24:24
2025-06-13 10:24:54,732 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 10:24:54,736 [DEBUG][       Thread-251517][   transport.py][1871] : starting thread (client mode): 0x84206a10
2025-06-13 10:24:54,737 [DEBUG][       Thread-251517][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 10:24:54,766 [DEBUG][       Thread-251517][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 10:24:54,766 [ INFO][       Thread-251517][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 10:24:54,769 [DEBUG][       Thread-251517][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 10:24:54,770 [DEBUG][       Thread-251517][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 10:24:54,770 [DEBUG][       Thread-251517][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 10:24:54,770 [DEBUG][       Thread-251517][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:24:54,770 [DEBUG][       Thread-251517][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:24:54,770 [DEBUG][       Thread-251517][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:24:54,770 [DEBUG][       Thread-251517][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:24:54,770 [DEBUG][       Thread-251517][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 10:24:54,770 [DEBUG][       Thread-251517][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 10:24:54,770 [DEBUG][       Thread-251517][   transport.py][1871] : client lang: <none>
2025-06-13 10:24:54,770 [DEBUG][       Thread-251517][   transport.py][1871] : server lang: <none>
2025-06-13 10:24:54,770 [DEBUG][       Thread-251517][   transport.py][1871] : kex follows: False
2025-06-13 10:24:54,770 [DEBUG][       Thread-251517][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 10:24:54,770 [DEBUG][       Thread-251517][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 10:24:54,770 [DEBUG][       Thread-251517][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 10:24:54,770 [DEBUG][       Thread-251517][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 10:24:54,770 [DEBUG][       Thread-251517][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 10:24:54,771 [DEBUG][       Thread-251517][   transport.py][1871] : Compression: none
2025-06-13 10:24:54,771 [DEBUG][       Thread-251517][   transport.py][1871] : === End of kex handshake ===
2025-06-13 10:24:54,788 [DEBUG][       Thread-251517][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 10:24:54,788 [DEBUG][       Thread-251517][   transport.py][1871] : Switch to new keys ...
2025-06-13 10:24:54,789 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 10:24:54,789 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 10:24:54,789 [DEBUG][       Thread-251517][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 10:24:54,790 [DEBUG][       Thread-251517][   transport.py][1871] : userauth is OK
2025-06-13 10:24:54,802 [ INFO][       Thread-251517][   transport.py][1871] : Authentication (password) successful!
2025-06-13 10:24:54,803 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 10:24:54,987 [DEBUG][Thread-251519 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:24:55,418 [DEBUG][       Thread-251517][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 10:24:55,418 [DEBUG][       Thread-251517][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 10:24:55,460 [DEBUG][       Thread-251517][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 10:24:55,461 [DEBUG][       Thread-251517][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 10:24:55,463 [DEBUG][       Thread-251517][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 10:24:55,474 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 10:24:55,474 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 10:24:55,475 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 10:24:55,477 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 10:24:55,482 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 10:24:55,484 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 10:24:55,484 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 10:24:55,484 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 10:24:55,484 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.350287 -999.00   +9.10  20.53     53   +0.00 1 1 1 1 1   887    0 9.93 40.38 ----- 23.8 20.5 39.8 23.9 13.6 -28.6 12.4 -29.6 11.2 -28.2 12.5 -26.5
2025-06-13 10:24:55,485 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 10:24:55,485 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 10:24:55,485 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.350287
2025-06-13 10:24:55,485 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 10:24:55,486 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 10:24:55,486 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 10:24:55,486 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 10:24:55,486 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 10:24:55,486 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T10:24:24', tmtdew=10.27, humidity=48.84, cloud=0.0, wind=15.88, temperature=9.18, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T08:24:24.797', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 10:24:55,487 [DEBUG][       Thread-251517][   transport.py][1871] : EOF in transport thread
2025-06-13 10:24:55,570 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 10:24:55,579 [DEBUG][       Thread-251521][   transport.py][1871] : starting thread (client mode): 0x863bda50
2025-06-13 10:24:55,579 [DEBUG][       Thread-251521][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 10:24:55,594 [DEBUG][       Thread-251521][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 10:24:55,594 [ INFO][       Thread-251521][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 10:24:55,601 [DEBUG][       Thread-251521][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 10:24:55,601 [DEBUG][       Thread-251521][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 10:24:55,601 [DEBUG][       Thread-251521][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 10:24:55,601 [DEBUG][       Thread-251521][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:24:55,601 [DEBUG][       Thread-251521][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:24:55,601 [DEBUG][       Thread-251521][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:24:55,601 [DEBUG][       Thread-251521][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:24:55,602 [DEBUG][       Thread-251521][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 10:24:55,602 [DEBUG][       Thread-251521][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 10:24:55,602 [DEBUG][       Thread-251521][   transport.py][1871] : client lang: <none>
2025-06-13 10:24:55,602 [DEBUG][       Thread-251521][   transport.py][1871] : server lang: <none>
2025-06-13 10:24:55,602 [DEBUG][       Thread-251521][   transport.py][1871] : kex follows: False
2025-06-13 10:24:55,602 [DEBUG][       Thread-251521][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 10:24:55,602 [DEBUG][       Thread-251521][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 10:24:55,602 [DEBUG][       Thread-251521][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 10:24:55,602 [DEBUG][       Thread-251521][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 10:24:55,602 [DEBUG][       Thread-251521][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 10:24:55,602 [DEBUG][       Thread-251521][   transport.py][1871] : Compression: none
2025-06-13 10:24:55,602 [DEBUG][       Thread-251521][   transport.py][1871] : === End of kex handshake ===
2025-06-13 10:24:55,657 [DEBUG][       Thread-251521][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 10:24:55,658 [DEBUG][       Thread-251521][   transport.py][1871] : Switch to new keys ...
2025-06-13 10:24:55,658 [DEBUG][       Thread-251521][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 10:24:55,659 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 10:24:55,659 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 10:24:55,716 [DEBUG][       Thread-251521][   transport.py][1871] : userauth is OK
2025-06-13 10:24:55,716 [DEBUG][       Thread-251521][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 10:24:55,717 [DEBUG][       Thread-251521][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 10:24:55,717 [DEBUG][       Thread-251521][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 10:24:55,717 [DEBUG][       Thread-251521][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 10:24:55,735 [ INFO][       Thread-251521][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 10:24:55,735 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 10:24:55,736 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 10:24:56,738 [DEBUG][       Thread-251521][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 10:24:56,738 [DEBUG][       Thread-251521][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 10:24:56,794 [DEBUG][       Thread-251521][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 10:24:56,794 [DEBUG][       Thread-251521][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 10:24:56,804 [DEBUG][       Thread-251521][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 10:24:56,818 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 10:24:56,818 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 10:24:56,831 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 10:24:56,846 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 10:24:56,846 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 10:24:56,846 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 10:24:56,859 [DEBUG][       Thread-251521][   transport.py][1871] : EOF in transport thread
2025-06-13 10:25:04,003 [DEBUG][Thread-251523 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:25:06,143 [DEBUG][Thread-251524 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:25:06,856 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 10:25:06,856 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 10:25:06,856 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 10:25:06,859 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 10:25:07,327 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 10, 24, 56), 10.2, 49.1, 0.0, 16.57, 9.17, 0, 0, 0, 2, 0, 0),)
2025-06-13 10:25:07,327 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 10:24:56
2025-06-13 10:25:07,407 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 10:25:07,413 [DEBUG][       Thread-251525][   transport.py][1871] : starting thread (client mode): 0x84205120
2025-06-13 10:25:07,413 [DEBUG][       Thread-251525][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 10:25:07,434 [DEBUG][       Thread-251525][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 10:25:07,434 [ INFO][       Thread-251525][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 10:25:07,437 [DEBUG][       Thread-251525][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 10:25:07,437 [DEBUG][       Thread-251525][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 10:25:07,437 [DEBUG][       Thread-251525][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 10:25:07,437 [DEBUG][       Thread-251525][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:25:07,437 [DEBUG][       Thread-251525][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:25:07,437 [DEBUG][       Thread-251525][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:25:07,437 [DEBUG][       Thread-251525][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:25:07,437 [DEBUG][       Thread-251525][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 10:25:07,437 [DEBUG][       Thread-251525][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 10:25:07,437 [DEBUG][       Thread-251525][   transport.py][1871] : client lang: <none>
2025-06-13 10:25:07,437 [DEBUG][       Thread-251525][   transport.py][1871] : server lang: <none>
2025-06-13 10:25:07,437 [DEBUG][       Thread-251525][   transport.py][1871] : kex follows: False
2025-06-13 10:25:07,437 [DEBUG][       Thread-251525][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 10:25:07,437 [DEBUG][       Thread-251525][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 10:25:07,438 [DEBUG][       Thread-251525][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 10:25:07,438 [DEBUG][       Thread-251525][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 10:25:07,438 [DEBUG][       Thread-251525][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 10:25:07,438 [DEBUG][       Thread-251525][   transport.py][1871] : Compression: none
2025-06-13 10:25:07,438 [DEBUG][       Thread-251525][   transport.py][1871] : === End of kex handshake ===
2025-06-13 10:25:07,454 [DEBUG][       Thread-251525][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 10:25:07,455 [DEBUG][       Thread-251525][   transport.py][1871] : Switch to new keys ...
2025-06-13 10:25:07,455 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 10:25:07,456 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 10:25:07,456 [DEBUG][       Thread-251525][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 10:25:07,457 [DEBUG][       Thread-251525][   transport.py][1871] : userauth is OK
2025-06-13 10:25:07,481 [ INFO][       Thread-251525][   transport.py][1871] : Authentication (password) successful!
2025-06-13 10:25:07,482 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 10:25:10,376 [DEBUG][Thread-251527 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:25:11,455 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:25:11,456 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:25:13,020 [DEBUG][Thread-251528 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:25:17,383 [DEBUG][       Thread-251525][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 10:25:17,383 [DEBUG][       Thread-251525][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 10:25:17,425 [DEBUG][       Thread-251525][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 10:25:17,425 [DEBUG][       Thread-251525][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 10:25:17,428 [DEBUG][       Thread-251525][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 10:25:17,532 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 10:25:17,532 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 10:25:17,534 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 10:25:17,536 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 10:25:17,541 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 10:25:17,543 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 10:25:17,543 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 10:25:17,544 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 10:25:17,544 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.350287 -999.00   +9.10  20.53     53   +0.00 1 1 1 1 1   887    0 9.93 40.38 ----- 23.8 20.5 39.8 23.9 13.6 -28.6 12.4 -29.6 11.2 -28.2 12.5 -26.5
2025-06-13 10:25:17,544 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 10:25:17,544 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 10:25:17,544 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.350287
2025-06-13 10:25:17,544 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 10:25:17,545 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 10:25:17,545 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 10:25:17,545 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 10:25:17,545 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 10:25:17,545 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T10:24:56', tmtdew=10.2, humidity=49.1, cloud=0.0, wind=16.57, temperature=9.17, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T08:24:24.797', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 10:25:17,546 [DEBUG][       Thread-251525][   transport.py][1871] : EOF in transport thread
2025-06-13 10:25:17,628 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 10:25:17,644 [DEBUG][       Thread-251530][   transport.py][1871] : starting thread (client mode): 0x867b46a0
2025-06-13 10:25:17,644 [DEBUG][       Thread-251530][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 10:25:17,663 [DEBUG][       Thread-251530][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 10:25:17,663 [ INFO][       Thread-251530][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 10:25:17,671 [DEBUG][       Thread-251530][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 10:25:17,671 [DEBUG][       Thread-251530][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 10:25:17,671 [DEBUG][       Thread-251530][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 10:25:17,671 [DEBUG][       Thread-251530][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:25:17,672 [DEBUG][       Thread-251530][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:25:17,672 [DEBUG][       Thread-251530][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:25:17,672 [DEBUG][       Thread-251530][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:25:17,672 [DEBUG][       Thread-251530][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 10:25:17,672 [DEBUG][       Thread-251530][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 10:25:17,672 [DEBUG][       Thread-251530][   transport.py][1871] : client lang: <none>
2025-06-13 10:25:17,672 [DEBUG][       Thread-251530][   transport.py][1871] : server lang: <none>
2025-06-13 10:25:17,672 [DEBUG][       Thread-251530][   transport.py][1871] : kex follows: False
2025-06-13 10:25:17,672 [DEBUG][       Thread-251530][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 10:25:17,672 [DEBUG][       Thread-251530][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 10:25:17,672 [DEBUG][       Thread-251530][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 10:25:17,672 [DEBUG][       Thread-251530][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 10:25:17,672 [DEBUG][       Thread-251530][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 10:25:17,672 [DEBUG][       Thread-251530][   transport.py][1871] : Compression: none
2025-06-13 10:25:17,672 [DEBUG][       Thread-251530][   transport.py][1871] : === End of kex handshake ===
2025-06-13 10:25:17,730 [DEBUG][       Thread-251530][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 10:25:17,731 [DEBUG][       Thread-251530][   transport.py][1871] : Switch to new keys ...
2025-06-13 10:25:17,731 [DEBUG][       Thread-251530][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 10:25:17,731 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 10:25:17,732 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 10:25:17,786 [DEBUG][       Thread-251530][   transport.py][1871] : userauth is OK
2025-06-13 10:25:17,786 [DEBUG][       Thread-251530][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 10:25:17,786 [DEBUG][       Thread-251530][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 10:25:17,787 [DEBUG][       Thread-251530][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 10:25:17,787 [DEBUG][       Thread-251530][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 10:25:17,806 [ INFO][       Thread-251530][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 10:25:17,806 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 10:25:17,806 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 10:25:18,813 [DEBUG][       Thread-251530][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 10:25:18,814 [DEBUG][       Thread-251530][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 10:25:18,863 [DEBUG][       Thread-251530][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 10:25:18,864 [DEBUG][       Thread-251530][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 10:25:18,872 [DEBUG][       Thread-251530][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 10:25:18,884 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 10:25:18,884 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 10:25:18,892 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 10:25:18,900 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 10:25:18,900 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 10:25:18,900 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 10:25:18,908 [DEBUG][       Thread-251530][   transport.py][1871] : EOF in transport thread
2025-06-13 10:25:22,038 [DEBUG][Thread-251532 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:25:26,145 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:25:26,146 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:25:28,911 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 10:25:28,911 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 10:25:28,911 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 10:25:28,911 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 10:25:29,435 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 10, 24, 56), 10.2, 49.1, 0.0, 16.57, 9.17, 0, 0, 0, 2, 0, 0),)
2025-06-13 10:25:29,435 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 10:24:56
2025-06-13 10:25:29,517 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 10:25:29,523 [DEBUG][       Thread-251533][   transport.py][1871] : starting thread (client mode): 0x86368d90
2025-06-13 10:25:29,523 [DEBUG][       Thread-251533][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 10:25:29,543 [DEBUG][       Thread-251533][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 10:25:29,543 [ INFO][       Thread-251533][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 10:25:29,546 [DEBUG][       Thread-251533][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 10:25:29,546 [DEBUG][       Thread-251533][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 10:25:29,546 [DEBUG][       Thread-251533][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 10:25:29,546 [DEBUG][       Thread-251533][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:25:29,546 [DEBUG][       Thread-251533][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:25:29,546 [DEBUG][       Thread-251533][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:25:29,546 [DEBUG][       Thread-251533][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:25:29,546 [DEBUG][       Thread-251533][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 10:25:29,546 [DEBUG][       Thread-251533][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 10:25:29,546 [DEBUG][       Thread-251533][   transport.py][1871] : client lang: <none>
2025-06-13 10:25:29,546 [DEBUG][       Thread-251533][   transport.py][1871] : server lang: <none>
2025-06-13 10:25:29,546 [DEBUG][       Thread-251533][   transport.py][1871] : kex follows: False
2025-06-13 10:25:29,546 [DEBUG][       Thread-251533][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 10:25:29,546 [DEBUG][       Thread-251533][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 10:25:29,546 [DEBUG][       Thread-251533][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 10:25:29,546 [DEBUG][       Thread-251533][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 10:25:29,546 [DEBUG][       Thread-251533][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 10:25:29,546 [DEBUG][       Thread-251533][   transport.py][1871] : Compression: none
2025-06-13 10:25:29,546 [DEBUG][       Thread-251533][   transport.py][1871] : === End of kex handshake ===
2025-06-13 10:25:29,561 [DEBUG][       Thread-251533][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 10:25:29,561 [DEBUG][       Thread-251533][   transport.py][1871] : Switch to new keys ...
2025-06-13 10:25:29,561 [DEBUG][       Thread-251533][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 10:25:29,561 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 10:25:29,561 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 10:25:29,562 [DEBUG][       Thread-251533][   transport.py][1871] : userauth is OK
2025-06-13 10:25:29,575 [ INFO][       Thread-251533][   transport.py][1871] : Authentication (password) successful!
2025-06-13 10:25:29,575 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 10:25:30,614 [DEBUG][       Thread-251533][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 10:25:30,614 [DEBUG][       Thread-251533][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 10:25:30,657 [DEBUG][       Thread-251533][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 10:25:30,657 [DEBUG][       Thread-251533][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 10:25:30,660 [DEBUG][       Thread-251533][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 10:25:30,671 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 10:25:30,672 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 10:25:30,674 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 10:25:30,675 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 10:25:30,681 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 10:25:30,682 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 10:25:30,683 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 10:25:30,683 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 10:25:30,683 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.350982 -999.00   +9.00  23.77     52   -0.10 1 1 1 1 1   887    0 9.78 38.88 ----- 20.5 23.8 47.0 25.8 13.6 -28.3 12.3 -29.8 11.3 -27.9 12.5 -26.5
2025-06-13 10:25:30,683 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 10:25:30,683 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 10:25:30,683 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.350982
2025-06-13 10:25:30,684 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 10:25:30,684 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 10:25:30,685 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 10:25:30,685 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 10:25:30,685 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 10:25:30,685 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T10:24:56', tmtdew=10.2, humidity=49.1, cloud=0.0, wind=16.57, temperature=9.17, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T08:25:24.845', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 10:25:30,686 [DEBUG][       Thread-251533][   transport.py][1871] : EOF in transport thread
2025-06-13 10:25:30,770 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 10:25:30,779 [DEBUG][       Thread-251536][   transport.py][1871] : starting thread (client mode): 0x867ff0d0
2025-06-13 10:25:30,779 [DEBUG][       Thread-251536][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 10:25:30,795 [DEBUG][       Thread-251536][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 10:25:30,795 [ INFO][       Thread-251536][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 10:25:30,806 [DEBUG][       Thread-251536][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 10:25:30,806 [DEBUG][       Thread-251536][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 10:25:30,806 [DEBUG][       Thread-251536][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 10:25:30,806 [DEBUG][       Thread-251536][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:25:30,806 [DEBUG][       Thread-251536][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:25:30,806 [DEBUG][       Thread-251536][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:25:30,806 [DEBUG][       Thread-251536][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:25:30,806 [DEBUG][       Thread-251536][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 10:25:30,806 [DEBUG][       Thread-251536][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 10:25:30,807 [DEBUG][       Thread-251536][   transport.py][1871] : client lang: <none>
2025-06-13 10:25:30,807 [DEBUG][       Thread-251536][   transport.py][1871] : server lang: <none>
2025-06-13 10:25:30,807 [DEBUG][       Thread-251536][   transport.py][1871] : kex follows: False
2025-06-13 10:25:30,807 [DEBUG][       Thread-251536][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 10:25:30,807 [DEBUG][       Thread-251536][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 10:25:30,807 [DEBUG][       Thread-251536][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 10:25:30,807 [DEBUG][       Thread-251536][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 10:25:30,807 [DEBUG][       Thread-251536][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 10:25:30,807 [DEBUG][       Thread-251536][   transport.py][1871] : Compression: none
2025-06-13 10:25:30,807 [DEBUG][       Thread-251536][   transport.py][1871] : === End of kex handshake ===
2025-06-13 10:25:30,861 [DEBUG][       Thread-251536][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 10:25:30,862 [DEBUG][       Thread-251536][   transport.py][1871] : Switch to new keys ...
2025-06-13 10:25:30,862 [DEBUG][       Thread-251536][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 10:25:30,863 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 10:25:30,863 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 10:25:30,918 [DEBUG][       Thread-251536][   transport.py][1871] : userauth is OK
2025-06-13 10:25:30,918 [DEBUG][       Thread-251536][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 10:25:30,918 [DEBUG][       Thread-251536][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 10:25:30,918 [DEBUG][       Thread-251536][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 10:25:30,918 [DEBUG][       Thread-251536][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 10:25:30,937 [ INFO][       Thread-251536][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 10:25:30,937 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 10:25:30,937 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 10:25:31,074 [DEBUG][Thread-251538 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:25:31,984 [DEBUG][       Thread-251536][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 10:25:31,985 [DEBUG][       Thread-251536][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 10:25:32,035 [DEBUG][       Thread-251536][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 10:25:32,035 [DEBUG][       Thread-251536][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 10:25:32,044 [DEBUG][       Thread-251536][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 10:25:32,052 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 10:25:32,052 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 10:25:32,060 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 10:25:32,073 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 10:25:32,073 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 10:25:32,073 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 10:25:32,081 [DEBUG][       Thread-251536][   transport.py][1871] : EOF in transport thread
2025-06-13 10:25:40,092 [DEBUG][Thread-251539 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:25:42,084 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 10:25:42,084 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 10:25:42,084 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 10:25:42,085 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 10:25:42,565 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 10, 25, 28), 10.37, 48.32, 0.0, 18.25, 9.36, 0, 0, 0, 2, 0, 0),)
2025-06-13 10:25:42,565 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 10:25:28
2025-06-13 10:25:42,650 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 10:25:42,660 [DEBUG][       Thread-251540][   transport.py][1871] : starting thread (client mode): 0x842060e0
2025-06-13 10:25:42,660 [DEBUG][       Thread-251540][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 10:25:42,682 [DEBUG][       Thread-251540][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 10:25:42,682 [ INFO][       Thread-251540][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 10:25:42,687 [DEBUG][       Thread-251540][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 10:25:42,687 [DEBUG][       Thread-251540][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 10:25:42,687 [DEBUG][       Thread-251540][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 10:25:42,687 [DEBUG][       Thread-251540][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:25:42,687 [DEBUG][       Thread-251540][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:25:42,687 [DEBUG][       Thread-251540][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:25:42,687 [DEBUG][       Thread-251540][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:25:42,687 [DEBUG][       Thread-251540][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 10:25:42,687 [DEBUG][       Thread-251540][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 10:25:42,687 [DEBUG][       Thread-251540][   transport.py][1871] : client lang: <none>
2025-06-13 10:25:42,687 [DEBUG][       Thread-251540][   transport.py][1871] : server lang: <none>
2025-06-13 10:25:42,687 [DEBUG][       Thread-251540][   transport.py][1871] : kex follows: False
2025-06-13 10:25:42,687 [DEBUG][       Thread-251540][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 10:25:42,687 [DEBUG][       Thread-251540][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 10:25:42,687 [DEBUG][       Thread-251540][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 10:25:42,687 [DEBUG][       Thread-251540][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 10:25:42,687 [DEBUG][       Thread-251540][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 10:25:42,687 [DEBUG][       Thread-251540][   transport.py][1871] : Compression: none
2025-06-13 10:25:42,687 [DEBUG][       Thread-251540][   transport.py][1871] : === End of kex handshake ===
2025-06-13 10:25:42,701 [DEBUG][       Thread-251540][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 10:25:42,701 [DEBUG][       Thread-251540][   transport.py][1871] : Switch to new keys ...
2025-06-13 10:25:42,701 [DEBUG][       Thread-251540][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 10:25:42,701 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 10:25:42,701 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 10:25:42,702 [DEBUG][       Thread-251540][   transport.py][1871] : userauth is OK
2025-06-13 10:25:42,726 [ INFO][       Thread-251540][   transport.py][1871] : Authentication (password) successful!
2025-06-13 10:25:42,727 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 10:25:43,310 [DEBUG][       Thread-251540][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 10:25:43,310 [DEBUG][       Thread-251540][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 10:25:43,352 [DEBUG][       Thread-251540][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 10:25:43,352 [DEBUG][       Thread-251540][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 10:25:43,355 [DEBUG][       Thread-251540][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 10:25:43,367 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 10:25:43,367 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 10:25:43,368 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 10:25:43,369 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 10:25:43,371 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 10:25:43,372 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 10:25:43,372 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 10:25:43,372 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 10:25:43,372 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.350982 -999.00   +9.00  23.77     52   -0.10 1 1 1 1 1   887    0 9.78 38.88 ----- 20.5 23.8 47.0 25.8 13.6 -28.3 12.3 -29.8 11.3 -27.9 12.5 -26.5
2025-06-13 10:25:43,372 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 10:25:43,372 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 10:25:43,372 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.350982
2025-06-13 10:25:43,372 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 10:25:43,373 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 10:25:43,373 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 10:25:43,373 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 10:25:43,373 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 10:25:43,373 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T10:25:28', tmtdew=10.37, humidity=48.32, cloud=0.0, wind=18.25, temperature=9.36, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T08:25:24.845', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 10:25:43,373 [DEBUG][       Thread-251540][   transport.py][1871] : EOF in transport thread
2025-06-13 10:25:43,447 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 10:25:43,461 [DEBUG][       Thread-251543][   transport.py][1871] : starting thread (client mode): 0x867b6020
2025-06-13 10:25:43,461 [DEBUG][       Thread-251543][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 10:25:43,480 [DEBUG][       Thread-251543][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 10:25:43,480 [ INFO][       Thread-251543][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 10:25:43,489 [DEBUG][       Thread-251543][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 10:25:43,489 [DEBUG][       Thread-251543][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 10:25:43,489 [DEBUG][       Thread-251543][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 10:25:43,489 [DEBUG][       Thread-251543][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:25:43,489 [DEBUG][       Thread-251543][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:25:43,489 [DEBUG][       Thread-251543][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:25:43,489 [DEBUG][       Thread-251543][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:25:43,489 [DEBUG][       Thread-251543][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 10:25:43,489 [DEBUG][       Thread-251543][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 10:25:43,489 [DEBUG][       Thread-251543][   transport.py][1871] : client lang: <none>
2025-06-13 10:25:43,489 [DEBUG][       Thread-251543][   transport.py][1871] : server lang: <none>
2025-06-13 10:25:43,489 [DEBUG][       Thread-251543][   transport.py][1871] : kex follows: False
2025-06-13 10:25:43,489 [DEBUG][       Thread-251543][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 10:25:43,489 [DEBUG][       Thread-251543][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 10:25:43,489 [DEBUG][       Thread-251543][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 10:25:43,489 [DEBUG][       Thread-251543][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 10:25:43,489 [DEBUG][       Thread-251543][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 10:25:43,489 [DEBUG][       Thread-251543][   transport.py][1871] : Compression: none
2025-06-13 10:25:43,489 [DEBUG][       Thread-251543][   transport.py][1871] : === End of kex handshake ===
2025-06-13 10:25:43,547 [DEBUG][       Thread-251543][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 10:25:43,547 [DEBUG][       Thread-251543][   transport.py][1871] : Switch to new keys ...
2025-06-13 10:25:43,547 [DEBUG][       Thread-251543][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 10:25:43,547 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 10:25:43,547 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 10:25:43,607 [DEBUG][       Thread-251543][   transport.py][1871] : userauth is OK
2025-06-13 10:25:43,607 [DEBUG][       Thread-251543][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 10:25:43,607 [DEBUG][       Thread-251543][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 10:25:43,607 [DEBUG][       Thread-251543][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 10:25:43,607 [DEBUG][       Thread-251543][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 10:25:43,627 [ INFO][       Thread-251543][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 10:25:43,627 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 10:25:43,627 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 10:25:44,664 [DEBUG][       Thread-251543][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 10:25:44,664 [DEBUG][       Thread-251543][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 10:25:44,711 [DEBUG][       Thread-251543][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 10:25:44,711 [DEBUG][       Thread-251543][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 10:25:44,719 [DEBUG][       Thread-251543][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 10:25:44,727 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 10:25:44,727 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 10:25:44,735 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 10:25:44,743 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 10:25:44,743 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 10:25:44,743 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 10:25:44,751 [DEBUG][       Thread-251543][   transport.py][1871] : EOF in transport thread
2025-06-13 10:25:49,113 [DEBUG][Thread-251545 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:25:54,753 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 10:25:54,754 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 10:25:54,754 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 10:25:54,756 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 10:25:55,224 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 10, 25, 28), 10.37, 48.32, 0.0, 18.25, 9.36, 0, 0, 0, 2, 0, 0),)
2025-06-13 10:25:55,224 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 10:25:28
2025-06-13 10:25:55,302 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 10:25:55,306 [DEBUG][       Thread-251546][   transport.py][1871] : starting thread (client mode): 0x867b6320
2025-06-13 10:25:55,306 [DEBUG][       Thread-251546][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 10:25:55,323 [DEBUG][       Thread-251546][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 10:25:55,323 [ INFO][       Thread-251546][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 10:25:55,326 [DEBUG][       Thread-251546][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 10:25:55,327 [DEBUG][       Thread-251546][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 10:25:55,327 [DEBUG][       Thread-251546][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 10:25:55,327 [DEBUG][       Thread-251546][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:25:55,327 [DEBUG][       Thread-251546][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:25:55,327 [DEBUG][       Thread-251546][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:25:55,327 [DEBUG][       Thread-251546][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:25:55,327 [DEBUG][       Thread-251546][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 10:25:55,327 [DEBUG][       Thread-251546][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 10:25:55,327 [DEBUG][       Thread-251546][   transport.py][1871] : client lang: <none>
2025-06-13 10:25:55,327 [DEBUG][       Thread-251546][   transport.py][1871] : server lang: <none>
2025-06-13 10:25:55,327 [DEBUG][       Thread-251546][   transport.py][1871] : kex follows: False
2025-06-13 10:25:55,327 [DEBUG][       Thread-251546][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 10:25:55,327 [DEBUG][       Thread-251546][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 10:25:55,327 [DEBUG][       Thread-251546][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 10:25:55,327 [DEBUG][       Thread-251546][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 10:25:55,327 [DEBUG][       Thread-251546][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 10:25:55,327 [DEBUG][       Thread-251546][   transport.py][1871] : Compression: none
2025-06-13 10:25:55,327 [DEBUG][       Thread-251546][   transport.py][1871] : === End of kex handshake ===
2025-06-13 10:25:55,344 [DEBUG][       Thread-251546][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 10:25:55,344 [DEBUG][       Thread-251546][   transport.py][1871] : Switch to new keys ...
2025-06-13 10:25:55,345 [DEBUG][       Thread-251546][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 10:25:55,345 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 10:25:55,345 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 10:25:55,346 [DEBUG][       Thread-251546][   transport.py][1871] : userauth is OK
2025-06-13 10:25:55,359 [ INFO][       Thread-251546][   transport.py][1871] : Authentication (password) successful!
2025-06-13 10:25:55,359 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 10:25:56,005 [DEBUG][       Thread-251546][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 10:25:56,005 [DEBUG][       Thread-251546][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 10:25:56,048 [DEBUG][       Thread-251546][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 10:25:56,049 [DEBUG][       Thread-251546][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 10:25:56,052 [DEBUG][       Thread-251546][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 10:25:56,058 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 10:25:56,058 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 10:25:56,059 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 10:25:56,061 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 10:25:56,065 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 10:25:56,066 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 10:25:56,067 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 10:25:56,067 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 10:25:56,067 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.350982 -999.00   +9.00  23.77     52   -0.10 1 1 1 1 1   887    0 9.78 38.88 ----- 20.5 23.8 47.0 25.8 13.6 -28.3 12.3 -29.8 11.3 -27.9 12.5 -26.5
2025-06-13 10:25:56,067 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 10:25:56,067 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 10:25:56,067 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.350982
2025-06-13 10:25:56,068 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 10:25:56,068 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 10:25:56,068 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 10:25:56,069 [DEBUG][       Thread-251546][   transport.py][1871] : EOF in transport thread
2025-06-13 10:25:56,069 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 10:25:56,069 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 10:25:56,070 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T10:25:28', tmtdew=10.37, humidity=48.32, cloud=0.0, wind=18.25, temperature=9.36, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T08:25:24.845', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 10:25:56,152 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 10:25:56,167 [DEBUG][       Thread-251549][   transport.py][1871] : starting thread (client mode): 0x863a5030
2025-06-13 10:25:56,167 [DEBUG][       Thread-251549][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 10:25:56,187 [DEBUG][       Thread-251549][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 10:25:56,187 [ INFO][       Thread-251549][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 10:25:56,200 [DEBUG][       Thread-251549][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 10:25:56,200 [DEBUG][       Thread-251549][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 10:25:56,200 [DEBUG][       Thread-251549][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 10:25:56,200 [DEBUG][       Thread-251549][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:25:56,200 [DEBUG][       Thread-251549][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:25:56,200 [DEBUG][       Thread-251549][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:25:56,200 [DEBUG][       Thread-251549][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:25:56,200 [DEBUG][       Thread-251549][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 10:25:56,200 [DEBUG][       Thread-251549][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 10:25:56,200 [DEBUG][       Thread-251549][   transport.py][1871] : client lang: <none>
2025-06-13 10:25:56,201 [DEBUG][       Thread-251549][   transport.py][1871] : server lang: <none>
2025-06-13 10:25:56,201 [DEBUG][       Thread-251549][   transport.py][1871] : kex follows: False
2025-06-13 10:25:56,201 [DEBUG][       Thread-251549][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 10:25:56,201 [DEBUG][       Thread-251549][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 10:25:56,201 [DEBUG][       Thread-251549][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 10:25:56,201 [DEBUG][       Thread-251549][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 10:25:56,201 [DEBUG][       Thread-251549][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 10:25:56,201 [DEBUG][       Thread-251549][   transport.py][1871] : Compression: none
2025-06-13 10:25:56,201 [DEBUG][       Thread-251549][   transport.py][1871] : === End of kex handshake ===
2025-06-13 10:25:56,259 [DEBUG][       Thread-251549][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 10:25:56,259 [DEBUG][       Thread-251549][   transport.py][1871] : Switch to new keys ...
2025-06-13 10:25:56,260 [DEBUG][       Thread-251549][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 10:25:56,260 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 10:25:56,261 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 10:25:56,328 [DEBUG][       Thread-251549][   transport.py][1871] : userauth is OK
2025-06-13 10:25:56,328 [DEBUG][       Thread-251549][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 10:25:56,328 [DEBUG][       Thread-251549][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 10:25:56,328 [DEBUG][       Thread-251549][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 10:25:56,328 [DEBUG][       Thread-251549][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 10:25:56,353 [ INFO][       Thread-251549][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 10:25:56,353 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 10:25:56,354 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 10:25:57,392 [DEBUG][       Thread-251549][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 10:25:57,393 [DEBUG][       Thread-251549][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 10:25:57,450 [DEBUG][       Thread-251549][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 10:25:57,450 [DEBUG][       Thread-251549][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 10:25:57,468 [DEBUG][       Thread-251549][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 10:25:57,484 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 10:25:57,484 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 10:25:57,494 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 10:25:57,505 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 10:25:57,506 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 10:25:57,506 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 10:25:57,516 [DEBUG][       Thread-251549][   transport.py][1871] : EOF in transport thread
2025-06-13 10:25:58,143 [DEBUG][Thread-251551 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:26:06,210 [DEBUG][Thread-251552 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:26:07,167 [DEBUG][Thread-251553 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:26:07,516 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 10:26:07,517 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 10:26:07,517 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 10:26:07,519 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 10:26:08,005 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 10, 25, 59), 10.4, 48.2, 0.0, 19.0, 9.35, 0, 0, 0, 2, 0, 0),)
2025-06-13 10:26:08,005 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 10:25:59
2025-06-13 10:26:08,084 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 10:26:08,089 [DEBUG][       Thread-251554][   transport.py][1871] : starting thread (client mode): 0x863be9b0
2025-06-13 10:26:08,089 [DEBUG][       Thread-251554][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 10:26:08,109 [DEBUG][       Thread-251554][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 10:26:08,109 [ INFO][       Thread-251554][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 10:26:08,113 [DEBUG][       Thread-251554][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 10:26:08,113 [DEBUG][       Thread-251554][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 10:26:08,113 [DEBUG][       Thread-251554][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 10:26:08,113 [DEBUG][       Thread-251554][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:26:08,113 [DEBUG][       Thread-251554][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:26:08,113 [DEBUG][       Thread-251554][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:26:08,113 [DEBUG][       Thread-251554][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:26:08,113 [DEBUG][       Thread-251554][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 10:26:08,113 [DEBUG][       Thread-251554][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 10:26:08,113 [DEBUG][       Thread-251554][   transport.py][1871] : client lang: <none>
2025-06-13 10:26:08,113 [DEBUG][       Thread-251554][   transport.py][1871] : server lang: <none>
2025-06-13 10:26:08,113 [DEBUG][       Thread-251554][   transport.py][1871] : kex follows: False
2025-06-13 10:26:08,113 [DEBUG][       Thread-251554][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 10:26:08,113 [DEBUG][       Thread-251554][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 10:26:08,114 [DEBUG][       Thread-251554][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 10:26:08,114 [DEBUG][       Thread-251554][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 10:26:08,114 [DEBUG][       Thread-251554][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 10:26:08,114 [DEBUG][       Thread-251554][   transport.py][1871] : Compression: none
2025-06-13 10:26:08,114 [DEBUG][       Thread-251554][   transport.py][1871] : === End of kex handshake ===
2025-06-13 10:26:08,129 [DEBUG][       Thread-251554][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 10:26:08,129 [DEBUG][       Thread-251554][   transport.py][1871] : Switch to new keys ...
2025-06-13 10:26:08,130 [DEBUG][       Thread-251554][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 10:26:08,130 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 10:26:08,130 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 10:26:08,131 [DEBUG][       Thread-251554][   transport.py][1871] : userauth is OK
2025-06-13 10:26:08,144 [ INFO][       Thread-251554][   transport.py][1871] : Authentication (password) successful!
2025-06-13 10:26:08,145 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 10:26:08,789 [DEBUG][       Thread-251554][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 10:26:08,789 [DEBUG][       Thread-251554][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 10:26:08,833 [DEBUG][       Thread-251554][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 10:26:08,833 [DEBUG][       Thread-251554][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 10:26:08,836 [DEBUG][       Thread-251554][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 10:26:08,848 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 10:26:08,848 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 10:26:08,850 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 10:26:08,852 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 10:26:08,856 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 10:26:08,858 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 10:26:08,858 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 10:26:08,859 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 10:26:08,859 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.351329 -999.00   +9.10  24.27     52   -0.10 1 1 1 1 1   887    0 10.05 44.19 ----- 25.1 24.3 49.4 27.0 13.7 -28.5 12.3 -29.5 11.2 -29.0 12.5 -26.6
2025-06-13 10:26:08,859 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 10:26:08,859 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 10:26:08,859 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.351329
2025-06-13 10:26:08,859 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 10:26:08,860 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 10:26:08,860 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 10:26:08,860 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 10:26:08,860 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 10:26:08,860 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T10:25:59', tmtdew=10.4, humidity=48.2, cloud=0.0, wind=19.0, temperature=9.35, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T08:25:54.826', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 10:26:08,861 [DEBUG][       Thread-251554][   transport.py][1871] : EOF in transport thread
2025-06-13 10:26:08,943 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 10:26:08,955 [DEBUG][       Thread-251557][   transport.py][1871] : starting thread (client mode): 0x867fc0d0
2025-06-13 10:26:08,955 [DEBUG][       Thread-251557][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 10:26:08,972 [DEBUG][       Thread-251557][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 10:26:08,972 [ INFO][       Thread-251557][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 10:26:08,979 [DEBUG][       Thread-251557][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 10:26:08,979 [DEBUG][       Thread-251557][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 10:26:08,980 [DEBUG][       Thread-251557][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 10:26:08,980 [DEBUG][       Thread-251557][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:26:08,980 [DEBUG][       Thread-251557][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:26:08,980 [DEBUG][       Thread-251557][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:26:08,980 [DEBUG][       Thread-251557][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:26:08,980 [DEBUG][       Thread-251557][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 10:26:08,980 [DEBUG][       Thread-251557][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 10:26:08,980 [DEBUG][       Thread-251557][   transport.py][1871] : client lang: <none>
2025-06-13 10:26:08,980 [DEBUG][       Thread-251557][   transport.py][1871] : server lang: <none>
2025-06-13 10:26:08,980 [DEBUG][       Thread-251557][   transport.py][1871] : kex follows: False
2025-06-13 10:26:08,980 [DEBUG][       Thread-251557][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 10:26:08,980 [DEBUG][       Thread-251557][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 10:26:08,980 [DEBUG][       Thread-251557][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 10:26:08,980 [DEBUG][       Thread-251557][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 10:26:08,980 [DEBUG][       Thread-251557][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 10:26:08,980 [DEBUG][       Thread-251557][   transport.py][1871] : Compression: none
2025-06-13 10:26:08,980 [DEBUG][       Thread-251557][   transport.py][1871] : === End of kex handshake ===
2025-06-13 10:26:09,042 [DEBUG][       Thread-251557][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 10:26:09,042 [DEBUG][       Thread-251557][   transport.py][1871] : Switch to new keys ...
2025-06-13 10:26:09,043 [DEBUG][       Thread-251557][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 10:26:09,043 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 10:26:09,044 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 10:26:09,098 [DEBUG][       Thread-251557][   transport.py][1871] : userauth is OK
2025-06-13 10:26:09,098 [DEBUG][       Thread-251557][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 10:26:09,098 [DEBUG][       Thread-251557][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 10:26:09,098 [DEBUG][       Thread-251557][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 10:26:09,099 [DEBUG][       Thread-251557][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 10:26:09,117 [ INFO][       Thread-251557][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 10:26:09,117 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 10:26:09,117 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 10:26:10,143 [DEBUG][       Thread-251557][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 10:26:10,143 [DEBUG][       Thread-251557][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 10:26:10,195 [DEBUG][       Thread-251557][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 10:26:10,195 [DEBUG][       Thread-251557][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 10:26:10,214 [DEBUG][       Thread-251557][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 10:26:10,225 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 10:26:10,226 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 10:26:10,238 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 10:26:10,246 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 10:26:10,246 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 10:26:10,247 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 10:26:10,255 [DEBUG][       Thread-251557][   transport.py][1871] : EOF in transport thread
2025-06-13 10:26:11,526 [DEBUG][Thread-251559 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:26:12,605 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:26:12,606 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:26:16,186 [DEBUG][Thread-251560 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:26:20,256 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 10:26:20,256 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 10:26:20,256 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 10:26:20,256 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 10:26:20,756 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 10, 25, 59), 10.4, 48.2, 0.0, 19.0, 9.35, 0, 0, 0, 2, 0, 0),)
2025-06-13 10:26:20,756 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 10:25:59
2025-06-13 10:26:20,839 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 10:26:20,843 [DEBUG][       Thread-251561][   transport.py][1871] : starting thread (client mode): 0x867ffdc0
2025-06-13 10:26:20,843 [DEBUG][       Thread-251561][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 10:26:20,861 [DEBUG][       Thread-251561][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 10:26:20,861 [ INFO][       Thread-251561][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 10:26:20,864 [DEBUG][       Thread-251561][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 10:26:20,864 [DEBUG][       Thread-251561][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 10:26:20,864 [DEBUG][       Thread-251561][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 10:26:20,864 [DEBUG][       Thread-251561][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:26:20,864 [DEBUG][       Thread-251561][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:26:20,864 [DEBUG][       Thread-251561][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:26:20,864 [DEBUG][       Thread-251561][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:26:20,864 [DEBUG][       Thread-251561][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 10:26:20,864 [DEBUG][       Thread-251561][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 10:26:20,864 [DEBUG][       Thread-251561][   transport.py][1871] : client lang: <none>
2025-06-13 10:26:20,864 [DEBUG][       Thread-251561][   transport.py][1871] : server lang: <none>
2025-06-13 10:26:20,864 [DEBUG][       Thread-251561][   transport.py][1871] : kex follows: False
2025-06-13 10:26:20,864 [DEBUG][       Thread-251561][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 10:26:20,864 [DEBUG][       Thread-251561][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 10:26:20,864 [DEBUG][       Thread-251561][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 10:26:20,864 [DEBUG][       Thread-251561][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 10:26:20,864 [DEBUG][       Thread-251561][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 10:26:20,864 [DEBUG][       Thread-251561][   transport.py][1871] : Compression: none
2025-06-13 10:26:20,865 [DEBUG][       Thread-251561][   transport.py][1871] : === End of kex handshake ===
2025-06-13 10:26:20,878 [DEBUG][       Thread-251561][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 10:26:20,878 [DEBUG][       Thread-251561][   transport.py][1871] : Switch to new keys ...
2025-06-13 10:26:20,878 [DEBUG][       Thread-251561][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 10:26:20,878 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 10:26:20,878 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 10:26:20,879 [DEBUG][       Thread-251561][   transport.py][1871] : userauth is OK
2025-06-13 10:26:20,891 [ INFO][       Thread-251561][   transport.py][1871] : Authentication (password) successful!
2025-06-13 10:26:20,891 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 10:26:21,498 [DEBUG][       Thread-251561][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 10:26:21,498 [DEBUG][       Thread-251561][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 10:26:21,540 [DEBUG][       Thread-251561][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 10:26:21,540 [DEBUG][       Thread-251561][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 10:26:21,542 [DEBUG][       Thread-251561][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 10:26:21,557 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 10:26:21,557 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 10:26:21,558 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 10:26:21,559 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 10:26:21,561 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 10:26:21,562 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 10:26:21,562 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 10:26:21,562 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 10:26:21,562 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.351329 -999.00   +9.10  24.27     52   -0.10 1 1 1 1 1   887    0 10.05 44.19 ----- 25.1 24.3 49.4 27.0 13.7 -28.5 12.3 -29.5 11.2 -29.0 12.5 -26.6
2025-06-13 10:26:21,562 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 10:26:21,562 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 10:26:21,562 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.351329
2025-06-13 10:26:21,562 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 10:26:21,563 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 10:26:21,563 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 10:26:21,563 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 10:26:21,563 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 10:26:21,563 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T10:25:59', tmtdew=10.4, humidity=48.2, cloud=0.0, wind=19.0, temperature=9.35, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T08:25:54.826', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 10:26:21,563 [DEBUG][       Thread-251561][   transport.py][1871] : EOF in transport thread
2025-06-13 10:26:21,635 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 10:26:21,645 [DEBUG][       Thread-251564][   transport.py][1871] : starting thread (client mode): 0x84204400
2025-06-13 10:26:21,646 [DEBUG][       Thread-251564][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 10:26:21,661 [DEBUG][       Thread-251564][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 10:26:21,661 [ INFO][       Thread-251564][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 10:26:21,668 [DEBUG][       Thread-251564][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 10:26:21,668 [DEBUG][       Thread-251564][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 10:26:21,668 [DEBUG][       Thread-251564][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 10:26:21,668 [DEBUG][       Thread-251564][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:26:21,668 [DEBUG][       Thread-251564][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:26:21,668 [DEBUG][       Thread-251564][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:26:21,668 [DEBUG][       Thread-251564][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:26:21,668 [DEBUG][       Thread-251564][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 10:26:21,668 [DEBUG][       Thread-251564][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 10:26:21,668 [DEBUG][       Thread-251564][   transport.py][1871] : client lang: <none>
2025-06-13 10:26:21,668 [DEBUG][       Thread-251564][   transport.py][1871] : server lang: <none>
2025-06-13 10:26:21,668 [DEBUG][       Thread-251564][   transport.py][1871] : kex follows: False
2025-06-13 10:26:21,668 [DEBUG][       Thread-251564][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 10:26:21,668 [DEBUG][       Thread-251564][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 10:26:21,668 [DEBUG][       Thread-251564][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 10:26:21,668 [DEBUG][       Thread-251564][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 10:26:21,668 [DEBUG][       Thread-251564][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 10:26:21,668 [DEBUG][       Thread-251564][   transport.py][1871] : Compression: none
2025-06-13 10:26:21,668 [DEBUG][       Thread-251564][   transport.py][1871] : === End of kex handshake ===
2025-06-13 10:26:21,728 [DEBUG][       Thread-251564][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 10:26:21,728 [DEBUG][       Thread-251564][   transport.py][1871] : Switch to new keys ...
2025-06-13 10:26:21,728 [DEBUG][       Thread-251564][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 10:26:21,728 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 10:26:21,728 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 10:26:21,788 [DEBUG][       Thread-251564][   transport.py][1871] : userauth is OK
2025-06-13 10:26:21,788 [DEBUG][       Thread-251564][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 10:26:21,788 [DEBUG][       Thread-251564][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 10:26:21,788 [DEBUG][       Thread-251564][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 10:26:21,788 [DEBUG][       Thread-251564][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 10:26:21,802 [ INFO][       Thread-251564][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 10:26:21,803 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 10:26:21,803 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 10:26:22,821 [DEBUG][       Thread-251564][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 10:26:22,821 [DEBUG][       Thread-251564][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 10:26:22,871 [DEBUG][       Thread-251564][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 10:26:22,871 [DEBUG][       Thread-251564][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 10:26:22,880 [DEBUG][       Thread-251564][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 10:26:22,888 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 10:26:22,888 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 10:26:22,896 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 10:26:22,904 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 10:26:22,904 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 10:26:22,904 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 10:26:22,912 [DEBUG][       Thread-251564][   transport.py][1871] : EOF in transport thread
2025-06-13 10:26:25,215 [DEBUG][Thread-251566 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:26:26,284 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:26:26,285 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:26:32,913 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 10:26:32,913 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 10:26:32,913 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 10:26:32,914 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 10:26:33,419 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 10, 25, 59), 10.4, 48.2, 0.0, 19.0, 9.35, 0, 0, 0, 2, 0, 0),)
2025-06-13 10:26:33,419 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 10:25:59
2025-06-13 10:26:33,503 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 10:26:33,508 [DEBUG][       Thread-251567][   transport.py][1871] : starting thread (client mode): 0x84205630
2025-06-13 10:26:33,508 [DEBUG][       Thread-251567][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 10:26:33,529 [DEBUG][       Thread-251567][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 10:26:33,529 [ INFO][       Thread-251567][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 10:26:33,532 [DEBUG][       Thread-251567][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 10:26:33,532 [DEBUG][       Thread-251567][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 10:26:33,532 [DEBUG][       Thread-251567][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 10:26:33,532 [DEBUG][       Thread-251567][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:26:33,532 [DEBUG][       Thread-251567][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:26:33,532 [DEBUG][       Thread-251567][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:26:33,532 [DEBUG][       Thread-251567][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:26:33,532 [DEBUG][       Thread-251567][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 10:26:33,532 [DEBUG][       Thread-251567][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 10:26:33,532 [DEBUG][       Thread-251567][   transport.py][1871] : client lang: <none>
2025-06-13 10:26:33,532 [DEBUG][       Thread-251567][   transport.py][1871] : server lang: <none>
2025-06-13 10:26:33,532 [DEBUG][       Thread-251567][   transport.py][1871] : kex follows: False
2025-06-13 10:26:33,533 [DEBUG][       Thread-251567][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 10:26:33,533 [DEBUG][       Thread-251567][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 10:26:33,533 [DEBUG][       Thread-251567][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 10:26:33,533 [DEBUG][       Thread-251567][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 10:26:33,533 [DEBUG][       Thread-251567][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 10:26:33,533 [DEBUG][       Thread-251567][   transport.py][1871] : Compression: none
2025-06-13 10:26:33,533 [DEBUG][       Thread-251567][   transport.py][1871] : === End of kex handshake ===
2025-06-13 10:26:33,547 [DEBUG][       Thread-251567][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 10:26:33,547 [DEBUG][       Thread-251567][   transport.py][1871] : Switch to new keys ...
2025-06-13 10:26:33,547 [DEBUG][       Thread-251567][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 10:26:33,547 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 10:26:33,547 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 10:26:33,548 [DEBUG][       Thread-251567][   transport.py][1871] : userauth is OK
2025-06-13 10:26:33,560 [ INFO][       Thread-251567][   transport.py][1871] : Authentication (password) successful!
2025-06-13 10:26:33,560 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 10:26:34,198 [DEBUG][       Thread-251567][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 10:26:34,198 [DEBUG][       Thread-251567][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 10:26:34,232 [DEBUG][Thread-251569 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:26:34,244 [DEBUG][       Thread-251567][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 10:26:34,244 [DEBUG][       Thread-251567][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 10:26:34,247 [DEBUG][       Thread-251567][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 10:26:34,259 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 10:26:34,259 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 10:26:34,260 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 10:26:34,261 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 10:26:34,264 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 10:26:34,265 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 10:26:34,265 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 10:26:34,265 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 10:26:34,265 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.351329 -999.00   +9.10  24.27     52   -0.10 1 1 1 1 1   887    0 10.05 44.19 ----- 25.1 24.3 49.4 27.0 13.7 -28.5 12.3 -29.5 11.2 -29.0 12.5 -26.6
2025-06-13 10:26:34,265 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 10:26:34,265 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 10:26:34,265 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.351329
2025-06-13 10:26:34,265 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 10:26:34,266 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 10:26:34,266 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 10:26:34,266 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 10:26:34,266 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 10:26:34,266 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T10:25:59', tmtdew=10.4, humidity=48.2, cloud=0.0, wind=19.0, temperature=9.35, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T08:25:54.826', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 10:26:34,266 [DEBUG][       Thread-251567][   transport.py][1871] : EOF in transport thread
2025-06-13 10:26:34,338 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 10:26:43,251 [DEBUG][Thread-251571 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:26:52,270 [DEBUG][Thread-251572 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:27:01,288 [DEBUG][Thread-251573 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:27:06,259 [DEBUG][Thread-251574 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:27:10,305 [DEBUG][Thread-251575 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:27:12,675 [DEBUG][Thread-251576 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:27:13,756 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:27:13,757 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:27:19,323 [DEBUG][Thread-251577 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:27:26,423 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:27:26,425 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:27:28,342 [DEBUG][Thread-251578 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:27:37,360 [DEBUG][Thread-251579 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:27:46,379 [DEBUG][Thread-251580 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:27:55,398 [DEBUG][Thread-251581 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:28:04,416 [DEBUG][Thread-251582 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:28:06,308 [DEBUG][Thread-251583 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:28:13,434 [DEBUG][Thread-251584 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:28:13,832 [DEBUG][Thread-251585 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:28:14,885 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:28:14,886 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:28:22,452 [DEBUG][Thread-251586 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:28:26,562 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:28:26,564 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:28:31,471 [DEBUG][Thread-251587 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:28:40,487 [DEBUG][Thread-251588 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:28:43,668 [WARNING][ poll_weather_worker][      driver.py][ 286] : Unable to open ssh connection for writing weather state to io.saao.ac.za: [Errno 110] Connection timed out
2025-06-13 10:28:49,508 [DEBUG][Thread-251589 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:28:53,676 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 10:28:53,676 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 10:28:53,676 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 10:28:53,677 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 10:28:54,156 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 10, 28, 38), 10.31, 48.63, 0.0, 21.21, 9.31, 0, 0, 0, 2, 0, 0),)
2025-06-13 10:28:54,156 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 10:28:38
2025-06-13 10:28:54,243 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 10:28:54,248 [DEBUG][       Thread-251590][   transport.py][1871] : starting thread (client mode): 0x84205c90
2025-06-13 10:28:54,248 [DEBUG][       Thread-251590][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 10:28:54,263 [DEBUG][       Thread-251590][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 10:28:54,263 [ INFO][       Thread-251590][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 10:28:54,267 [DEBUG][       Thread-251590][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 10:28:54,267 [DEBUG][       Thread-251590][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 10:28:54,267 [DEBUG][       Thread-251590][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 10:28:54,267 [DEBUG][       Thread-251590][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:28:54,267 [DEBUG][       Thread-251590][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:28:54,267 [DEBUG][       Thread-251590][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:28:54,267 [DEBUG][       Thread-251590][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:28:54,267 [DEBUG][       Thread-251590][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 10:28:54,267 [DEBUG][       Thread-251590][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 10:28:54,267 [DEBUG][       Thread-251590][   transport.py][1871] : client lang: <none>
2025-06-13 10:28:54,267 [DEBUG][       Thread-251590][   transport.py][1871] : server lang: <none>
2025-06-13 10:28:54,267 [DEBUG][       Thread-251590][   transport.py][1871] : kex follows: False
2025-06-13 10:28:54,267 [DEBUG][       Thread-251590][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 10:28:54,267 [DEBUG][       Thread-251590][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 10:28:54,267 [DEBUG][       Thread-251590][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 10:28:54,267 [DEBUG][       Thread-251590][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 10:28:54,267 [DEBUG][       Thread-251590][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 10:28:54,267 [DEBUG][       Thread-251590][   transport.py][1871] : Compression: none
2025-06-13 10:28:54,267 [DEBUG][       Thread-251590][   transport.py][1871] : === End of kex handshake ===
2025-06-13 10:28:54,276 [DEBUG][       Thread-251590][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 10:28:54,276 [DEBUG][       Thread-251590][   transport.py][1871] : Switch to new keys ...
2025-06-13 10:28:54,277 [DEBUG][       Thread-251590][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 10:28:54,277 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 10:28:54,277 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 10:28:54,277 [DEBUG][       Thread-251590][   transport.py][1871] : userauth is OK
2025-06-13 10:28:54,301 [ INFO][       Thread-251590][   transport.py][1871] : Authentication (password) successful!
2025-06-13 10:28:54,301 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 10:28:54,913 [DEBUG][       Thread-251590][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 10:28:54,913 [DEBUG][       Thread-251590][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 10:28:54,956 [DEBUG][       Thread-251590][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 10:28:54,956 [DEBUG][       Thread-251590][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 10:28:54,959 [DEBUG][       Thread-251590][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 10:28:54,965 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 10:28:54,965 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 10:28:54,966 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 10:28:54,967 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 10:28:54,969 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 10:28:54,970 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 10:28:54,970 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 10:28:54,970 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 10:28:54,970 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.353065 -999.00   +9.20  16.11     53   +0.20 1 1 1 1 1   887    0 9.68 33.69 ----- 19.2 16.1 42.2 23.4 13.8 -29.0 12.4 -29.4 11.4 -27.8 12.6 -26.6
2025-06-13 10:28:54,970 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 10:28:54,970 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 10:28:54,970 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.353065
2025-06-13 10:28:54,970 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 10:28:54,970 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 10:28:54,970 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 10:28:54,970 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 10:28:54,970 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 10:28:54,970 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T10:28:38', tmtdew=10.31, humidity=48.63, cloud=0.0, wind=21.21, temperature=9.31, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T08:28:24.816', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 10:28:54,970 [DEBUG][       Thread-251590][   transport.py][1871] : EOF in transport thread
2025-06-13 10:28:55,045 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 10:28:58,529 [DEBUG][Thread-251593 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:29:06,357 [DEBUG][Thread-251594 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:29:07,562 [DEBUG][Thread-251595 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:29:14,952 [DEBUG][Thread-251596 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:29:16,024 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:29:16,024 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:29:16,581 [DEBUG][Thread-251597 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:29:25,600 [DEBUG][Thread-251598 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:29:26,700 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:29:26,701 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:29:34,617 [DEBUG][Thread-251599 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:29:43,645 [DEBUG][Thread-251600 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:29:52,663 [DEBUG][Thread-251601 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:30:01,680 [DEBUG][Thread-251602 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:30:06,411 [DEBUG][Thread-251603 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:30:10,694 [DEBUG][Thread-251604 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:30:16,088 [DEBUG][Thread-251605 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:30:17,150 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:30:17,151 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:30:19,711 [DEBUG][Thread-251606 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:30:26,840 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:30:26,841 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:30:28,730 [DEBUG][Thread-251607 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:30:37,749 [DEBUG][Thread-251608 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:30:46,767 [DEBUG][Thread-251609 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:30:55,784 [DEBUG][Thread-251610 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:31:04,803 [DEBUG][Thread-251611 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:31:04,980 [WARNING][ poll_weather_worker][      driver.py][ 286] : Unable to open ssh connection for writing weather state to io.saao.ac.za: [Errno 110] Connection timed out
2025-06-13 10:31:06,464 [DEBUG][Thread-251612 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:31:13,822 [DEBUG][Thread-251613 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:31:14,990 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 10:31:14,990 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 10:31:14,990 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 10:31:14,993 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 10:31:15,480 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 10, 30, 45), 10.27, 48.57, 0.0, 16.59, 9.34, 0, 0, 0, 2, 0, 0),)
2025-06-13 10:31:15,480 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 10:30:45
2025-06-13 10:31:15,563 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 10:31:15,569 [DEBUG][       Thread-251614][   transport.py][1871] : starting thread (client mode): 0x867fce20
2025-06-13 10:31:15,569 [DEBUG][       Thread-251614][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 10:31:15,587 [DEBUG][       Thread-251614][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 10:31:15,587 [ INFO][       Thread-251614][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 10:31:15,589 [DEBUG][       Thread-251614][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 10:31:15,589 [DEBUG][       Thread-251614][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 10:31:15,589 [DEBUG][       Thread-251614][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 10:31:15,589 [DEBUG][       Thread-251614][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:31:15,589 [DEBUG][       Thread-251614][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:31:15,589 [DEBUG][       Thread-251614][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:31:15,589 [DEBUG][       Thread-251614][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:31:15,589 [DEBUG][       Thread-251614][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 10:31:15,589 [DEBUG][       Thread-251614][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 10:31:15,589 [DEBUG][       Thread-251614][   transport.py][1871] : client lang: <none>
2025-06-13 10:31:15,589 [DEBUG][       Thread-251614][   transport.py][1871] : server lang: <none>
2025-06-13 10:31:15,589 [DEBUG][       Thread-251614][   transport.py][1871] : kex follows: False
2025-06-13 10:31:15,589 [DEBUG][       Thread-251614][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 10:31:15,589 [DEBUG][       Thread-251614][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 10:31:15,589 [DEBUG][       Thread-251614][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 10:31:15,589 [DEBUG][       Thread-251614][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 10:31:15,589 [DEBUG][       Thread-251614][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 10:31:15,589 [DEBUG][       Thread-251614][   transport.py][1871] : Compression: none
2025-06-13 10:31:15,589 [DEBUG][       Thread-251614][   transport.py][1871] : === End of kex handshake ===
2025-06-13 10:31:15,597 [DEBUG][       Thread-251614][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 10:31:15,597 [DEBUG][       Thread-251614][   transport.py][1871] : Switch to new keys ...
2025-06-13 10:31:15,597 [DEBUG][       Thread-251614][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 10:31:15,598 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 10:31:15,598 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 10:31:15,599 [DEBUG][       Thread-251614][   transport.py][1871] : userauth is OK
2025-06-13 10:31:15,623 [ INFO][       Thread-251614][   transport.py][1871] : Authentication (password) successful!
2025-06-13 10:31:15,624 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 10:31:16,227 [DEBUG][       Thread-251614][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 10:31:16,227 [DEBUG][       Thread-251614][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 10:31:16,269 [DEBUG][       Thread-251614][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 10:31:16,269 [DEBUG][       Thread-251614][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 10:31:16,272 [DEBUG][       Thread-251614][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 10:31:16,285 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 10:31:16,285 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 10:31:16,287 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 10:31:16,288 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 10:31:16,293 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 10:31:16,294 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 10:31:16,295 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 10:31:16,295 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 10:31:16,295 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.354801 -999.00   +9.30  19.10     53   +0.30 1 1 1 1 1   887    0 9.81 32.11 ----- 22.7 19.1 58.4 23.1 13.8 -28.4 12.5 -29.3 11.3 -28.5 12.6 -27.1
2025-06-13 10:31:16,295 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 10:31:16,295 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 10:31:16,295 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.354801
2025-06-13 10:31:16,296 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 10:31:16,296 [DEBUG][       Thread-251614][   transport.py][1871] : EOF in transport thread
2025-06-13 10:31:16,297 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 10:31:16,297 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 10:31:16,297 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 10:31:16,297 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 10:31:16,297 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T10:30:45', tmtdew=10.27, humidity=48.57, cloud=0.0, wind=16.59, temperature=9.34, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T08:30:54.806', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 10:31:16,381 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 10:31:16,393 [DEBUG][       Thread-251617][   transport.py][1871] : starting thread (client mode): 0x867fcf70
2025-06-13 10:31:16,393 [DEBUG][       Thread-251617][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 10:31:16,407 [DEBUG][       Thread-251617][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 10:31:16,407 [ INFO][       Thread-251617][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 10:31:16,415 [DEBUG][       Thread-251617][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 10:31:16,415 [DEBUG][       Thread-251617][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 10:31:16,415 [DEBUG][       Thread-251617][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 10:31:16,415 [DEBUG][       Thread-251617][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:31:16,415 [DEBUG][       Thread-251617][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:31:16,415 [DEBUG][       Thread-251617][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:31:16,415 [DEBUG][       Thread-251617][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:31:16,415 [DEBUG][       Thread-251617][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 10:31:16,415 [DEBUG][       Thread-251617][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 10:31:16,415 [DEBUG][       Thread-251617][   transport.py][1871] : client lang: <none>
2025-06-13 10:31:16,415 [DEBUG][       Thread-251617][   transport.py][1871] : server lang: <none>
2025-06-13 10:31:16,415 [DEBUG][       Thread-251617][   transport.py][1871] : kex follows: False
2025-06-13 10:31:16,415 [DEBUG][       Thread-251617][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 10:31:16,415 [DEBUG][       Thread-251617][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 10:31:16,416 [DEBUG][       Thread-251617][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 10:31:16,416 [DEBUG][       Thread-251617][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 10:31:16,416 [DEBUG][       Thread-251617][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 10:31:16,416 [DEBUG][       Thread-251617][   transport.py][1871] : Compression: none
2025-06-13 10:31:16,416 [DEBUG][       Thread-251617][   transport.py][1871] : === End of kex handshake ===
2025-06-13 10:31:16,478 [DEBUG][       Thread-251617][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 10:31:16,479 [DEBUG][       Thread-251617][   transport.py][1871] : Switch to new keys ...
2025-06-13 10:31:16,479 [DEBUG][       Thread-251617][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 10:31:16,480 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 10:31:16,480 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 10:31:16,535 [DEBUG][       Thread-251617][   transport.py][1871] : userauth is OK
2025-06-13 10:31:16,535 [DEBUG][       Thread-251617][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 10:31:16,535 [DEBUG][       Thread-251617][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 10:31:16,535 [DEBUG][       Thread-251617][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 10:31:16,535 [DEBUG][       Thread-251617][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 10:31:16,553 [ INFO][       Thread-251617][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 10:31:16,553 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 10:31:16,554 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 10:31:17,230 [DEBUG][Thread-251619 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:31:17,535 [DEBUG][       Thread-251617][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 10:31:17,535 [DEBUG][       Thread-251617][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 10:31:17,583 [DEBUG][       Thread-251617][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 10:31:17,584 [DEBUG][       Thread-251617][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 10:31:17,592 [DEBUG][       Thread-251617][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 10:31:17,601 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 10:31:17,601 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 10:31:17,610 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 10:31:17,618 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 10:31:17,618 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 10:31:17,619 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 10:31:17,632 [DEBUG][       Thread-251617][   transport.py][1871] : EOF in transport thread
2025-06-13 10:31:18,306 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:31:18,307 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:31:22,839 [DEBUG][Thread-251620 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:31:26,979 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:31:26,979 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:31:27,628 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 10:31:27,628 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 10:31:27,628 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 10:31:27,628 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 10:31:28,121 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 10, 31, 17), 10.18, 49.1, 0.0, 14.19, 9.39, 0, 0, 0, 2, 0, 0),)
2025-06-13 10:31:28,121 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 10:31:17
2025-06-13 10:31:28,206 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 10:31:28,210 [DEBUG][       Thread-251621][   transport.py][1871] : starting thread (client mode): 0x867b51e0
2025-06-13 10:31:28,210 [DEBUG][       Thread-251621][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 10:31:28,230 [DEBUG][       Thread-251621][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 10:31:28,230 [ INFO][       Thread-251621][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 10:31:28,233 [DEBUG][       Thread-251621][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 10:31:28,233 [DEBUG][       Thread-251621][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 10:31:28,233 [DEBUG][       Thread-251621][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 10:31:28,233 [DEBUG][       Thread-251621][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:31:28,234 [DEBUG][       Thread-251621][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:31:28,234 [DEBUG][       Thread-251621][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:31:28,234 [DEBUG][       Thread-251621][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:31:28,234 [DEBUG][       Thread-251621][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 10:31:28,234 [DEBUG][       Thread-251621][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 10:31:28,234 [DEBUG][       Thread-251621][   transport.py][1871] : client lang: <none>
2025-06-13 10:31:28,234 [DEBUG][       Thread-251621][   transport.py][1871] : server lang: <none>
2025-06-13 10:31:28,234 [DEBUG][       Thread-251621][   transport.py][1871] : kex follows: False
2025-06-13 10:31:28,234 [DEBUG][       Thread-251621][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 10:31:28,234 [DEBUG][       Thread-251621][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 10:31:28,234 [DEBUG][       Thread-251621][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 10:31:28,234 [DEBUG][       Thread-251621][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 10:31:28,234 [DEBUG][       Thread-251621][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 10:31:28,234 [DEBUG][       Thread-251621][   transport.py][1871] : Compression: none
2025-06-13 10:31:28,234 [DEBUG][       Thread-251621][   transport.py][1871] : === End of kex handshake ===
2025-06-13 10:31:28,249 [DEBUG][       Thread-251621][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 10:31:28,249 [DEBUG][       Thread-251621][   transport.py][1871] : Switch to new keys ...
2025-06-13 10:31:28,249 [DEBUG][       Thread-251621][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 10:31:28,249 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 10:31:28,249 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 10:31:28,250 [DEBUG][       Thread-251621][   transport.py][1871] : userauth is OK
2025-06-13 10:31:28,262 [ INFO][       Thread-251621][   transport.py][1871] : Authentication (password) successful!
2025-06-13 10:31:28,263 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 10:31:28,882 [DEBUG][       Thread-251621][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 10:31:28,882 [DEBUG][       Thread-251621][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 10:31:28,925 [DEBUG][       Thread-251621][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 10:31:28,925 [DEBUG][       Thread-251621][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 10:31:28,928 [DEBUG][       Thread-251621][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 10:31:28,940 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 10:31:28,940 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 10:31:28,942 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 10:31:28,944 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 10:31:28,949 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 10:31:28,951 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 10:31:28,951 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 10:31:28,952 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 10:31:28,952 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.354801 -999.00   +9.30  19.10     53   +0.30 1 1 1 1 1   887    0 9.81 32.11 ----- 22.7 19.1 58.4 23.1 13.8 -28.4 12.5 -29.3 11.3 -28.5 12.6 -27.1
2025-06-13 10:31:28,952 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 10:31:28,952 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 10:31:28,952 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.354801
2025-06-13 10:31:28,952 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 10:31:28,953 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 10:31:28,953 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 10:31:28,953 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 10:31:28,953 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 10:31:28,953 [DEBUG][       Thread-251621][   transport.py][1871] : EOF in transport thread
2025-06-13 10:31:28,953 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T10:31:17', tmtdew=10.18, humidity=49.1, cloud=0.0, wind=14.19, temperature=9.39, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T08:30:54.806', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 10:31:29,037 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 10:31:29,056 [DEBUG][       Thread-251624][   transport.py][1871] : starting thread (client mode): 0x863a6bf0
2025-06-13 10:31:29,056 [DEBUG][       Thread-251624][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 10:31:29,079 [DEBUG][       Thread-251624][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 10:31:29,079 [ INFO][       Thread-251624][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 10:31:29,100 [DEBUG][       Thread-251624][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 10:31:29,101 [DEBUG][       Thread-251624][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 10:31:29,101 [DEBUG][       Thread-251624][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 10:31:29,101 [DEBUG][       Thread-251624][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:31:29,101 [DEBUG][       Thread-251624][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:31:29,101 [DEBUG][       Thread-251624][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:31:29,101 [DEBUG][       Thread-251624][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:31:29,101 [DEBUG][       Thread-251624][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 10:31:29,101 [DEBUG][       Thread-251624][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 10:31:29,101 [DEBUG][       Thread-251624][   transport.py][1871] : client lang: <none>
2025-06-13 10:31:29,101 [DEBUG][       Thread-251624][   transport.py][1871] : server lang: <none>
2025-06-13 10:31:29,101 [DEBUG][       Thread-251624][   transport.py][1871] : kex follows: False
2025-06-13 10:31:29,101 [DEBUG][       Thread-251624][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 10:31:29,101 [DEBUG][       Thread-251624][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 10:31:29,101 [DEBUG][       Thread-251624][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 10:31:29,101 [DEBUG][       Thread-251624][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 10:31:29,101 [DEBUG][       Thread-251624][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 10:31:29,101 [DEBUG][       Thread-251624][   transport.py][1871] : Compression: none
2025-06-13 10:31:29,102 [DEBUG][       Thread-251624][   transport.py][1871] : === End of kex handshake ===
2025-06-13 10:31:29,164 [DEBUG][       Thread-251624][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 10:31:29,164 [DEBUG][       Thread-251624][   transport.py][1871] : Switch to new keys ...
2025-06-13 10:31:29,165 [DEBUG][       Thread-251624][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 10:31:29,165 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 10:31:29,166 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 10:31:29,251 [DEBUG][       Thread-251624][   transport.py][1871] : userauth is OK
2025-06-13 10:31:29,251 [DEBUG][       Thread-251624][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 10:31:29,251 [DEBUG][       Thread-251624][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 10:31:29,251 [DEBUG][       Thread-251624][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 10:31:29,252 [DEBUG][       Thread-251624][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 10:31:29,283 [ INFO][       Thread-251624][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 10:31:29,284 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 10:31:29,284 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 10:31:30,327 [DEBUG][       Thread-251624][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 10:31:30,327 [DEBUG][       Thread-251624][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 10:31:30,378 [DEBUG][       Thread-251624][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 10:31:30,378 [DEBUG][       Thread-251624][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 10:31:30,387 [DEBUG][       Thread-251624][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 10:31:30,395 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 10:31:30,396 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 10:31:30,404 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 10:31:30,413 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 10:31:30,413 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 10:31:30,414 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 10:31:30,422 [DEBUG][       Thread-251624][   transport.py][1871] : EOF in transport thread
2025-06-13 10:31:31,869 [DEBUG][Thread-251626 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:31:40,424 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 10:31:40,424 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 10:31:40,424 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 10:31:40,427 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 10:31:40,896 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 10, 31, 17), 10.18, 49.1, 0.0, 14.19, 9.39, 0, 0, 0, 2, 0, 0),)
2025-06-13 10:31:40,896 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 10:31:17
2025-06-13 10:31:40,897 [DEBUG][Thread-251627 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:31:40,977 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 10:31:40,982 [DEBUG][       Thread-251628][   transport.py][1871] : starting thread (client mode): 0x863bcbe0
2025-06-13 10:31:40,982 [DEBUG][       Thread-251628][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 10:31:41,002 [DEBUG][       Thread-251628][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 10:31:41,002 [ INFO][       Thread-251628][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 10:31:41,005 [DEBUG][       Thread-251628][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 10:31:41,005 [DEBUG][       Thread-251628][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 10:31:41,005 [DEBUG][       Thread-251628][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 10:31:41,005 [DEBUG][       Thread-251628][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:31:41,005 [DEBUG][       Thread-251628][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:31:41,006 [DEBUG][       Thread-251628][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:31:41,006 [DEBUG][       Thread-251628][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:31:41,006 [DEBUG][       Thread-251628][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 10:31:41,006 [DEBUG][       Thread-251628][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 10:31:41,006 [DEBUG][       Thread-251628][   transport.py][1871] : client lang: <none>
2025-06-13 10:31:41,006 [DEBUG][       Thread-251628][   transport.py][1871] : server lang: <none>
2025-06-13 10:31:41,006 [DEBUG][       Thread-251628][   transport.py][1871] : kex follows: False
2025-06-13 10:31:41,006 [DEBUG][       Thread-251628][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 10:31:41,006 [DEBUG][       Thread-251628][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 10:31:41,006 [DEBUG][       Thread-251628][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 10:31:41,006 [DEBUG][       Thread-251628][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 10:31:41,006 [DEBUG][       Thread-251628][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 10:31:41,006 [DEBUG][       Thread-251628][   transport.py][1871] : Compression: none
2025-06-13 10:31:41,006 [DEBUG][       Thread-251628][   transport.py][1871] : === End of kex handshake ===
2025-06-13 10:31:41,023 [DEBUG][       Thread-251628][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 10:31:41,024 [DEBUG][       Thread-251628][   transport.py][1871] : Switch to new keys ...
2025-06-13 10:31:41,025 [DEBUG][       Thread-251628][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 10:31:41,025 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 10:31:41,025 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 10:31:41,026 [DEBUG][       Thread-251628][   transport.py][1871] : userauth is OK
2025-06-13 10:31:41,052 [ INFO][       Thread-251628][   transport.py][1871] : Authentication (password) successful!
2025-06-13 10:31:41,053 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 10:31:41,682 [DEBUG][       Thread-251628][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 10:31:41,682 [DEBUG][       Thread-251628][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 10:31:41,725 [DEBUG][       Thread-251628][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 10:31:41,725 [DEBUG][       Thread-251628][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 10:31:41,728 [DEBUG][       Thread-251628][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 10:31:41,739 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 10:31:41,740 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 10:31:41,741 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 10:31:41,743 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 10:31:41,748 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 10:31:41,750 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 10:31:41,750 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 10:31:41,751 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 10:31:41,751 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.354801 -999.00   +9.30  19.10     53   +0.30 1 1 1 1 1   887    0 9.81 32.11 ----- 22.7 19.1 58.4 23.1 13.8 -28.4 12.5 -29.3 11.3 -28.5 12.6 -27.1
2025-06-13 10:31:41,751 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 10:31:41,751 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 10:31:41,751 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.354801
2025-06-13 10:31:41,751 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 10:31:41,752 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 10:31:41,752 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 10:31:41,752 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 10:31:41,752 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 10:31:41,752 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T10:31:17', tmtdew=10.18, humidity=49.1, cloud=0.0, wind=14.19, temperature=9.39, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T08:30:54.806', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 10:31:41,753 [DEBUG][       Thread-251628][   transport.py][1871] : EOF in transport thread
2025-06-13 10:31:41,836 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 10:31:41,847 [DEBUG][       Thread-251631][   transport.py][1871] : starting thread (client mode): 0x863a5240
2025-06-13 10:31:41,847 [DEBUG][       Thread-251631][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 10:31:41,866 [DEBUG][       Thread-251631][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 10:31:41,866 [ INFO][       Thread-251631][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 10:31:41,874 [DEBUG][       Thread-251631][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 10:31:41,874 [DEBUG][       Thread-251631][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 10:31:41,874 [DEBUG][       Thread-251631][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 10:31:41,874 [DEBUG][       Thread-251631][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:31:41,874 [DEBUG][       Thread-251631][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:31:41,874 [DEBUG][       Thread-251631][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:31:41,874 [DEBUG][       Thread-251631][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:31:41,874 [DEBUG][       Thread-251631][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 10:31:41,874 [DEBUG][       Thread-251631][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 10:31:41,874 [DEBUG][       Thread-251631][   transport.py][1871] : client lang: <none>
2025-06-13 10:31:41,875 [DEBUG][       Thread-251631][   transport.py][1871] : server lang: <none>
2025-06-13 10:31:41,875 [DEBUG][       Thread-251631][   transport.py][1871] : kex follows: False
2025-06-13 10:31:41,875 [DEBUG][       Thread-251631][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 10:31:41,875 [DEBUG][       Thread-251631][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 10:31:41,875 [DEBUG][       Thread-251631][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 10:31:41,875 [DEBUG][       Thread-251631][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 10:31:41,875 [DEBUG][       Thread-251631][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 10:31:41,875 [DEBUG][       Thread-251631][   transport.py][1871] : Compression: none
2025-06-13 10:31:41,875 [DEBUG][       Thread-251631][   transport.py][1871] : === End of kex handshake ===
2025-06-13 10:31:41,930 [DEBUG][       Thread-251631][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 10:31:41,931 [DEBUG][       Thread-251631][   transport.py][1871] : Switch to new keys ...
2025-06-13 10:31:41,931 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 10:31:41,932 [DEBUG][       Thread-251631][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 10:31:41,933 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 10:31:41,987 [DEBUG][       Thread-251631][   transport.py][1871] : userauth is OK
2025-06-13 10:31:41,987 [DEBUG][       Thread-251631][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 10:31:41,987 [DEBUG][       Thread-251631][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 10:31:41,987 [DEBUG][       Thread-251631][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 10:31:41,987 [DEBUG][       Thread-251631][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 10:31:42,006 [ INFO][       Thread-251631][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 10:31:42,006 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 10:31:42,007 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 10:31:43,015 [DEBUG][       Thread-251631][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 10:31:43,016 [DEBUG][       Thread-251631][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 10:31:43,064 [DEBUG][       Thread-251631][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 10:31:43,064 [DEBUG][       Thread-251631][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 10:31:43,073 [DEBUG][       Thread-251631][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 10:31:43,081 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 10:31:43,082 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 10:31:43,091 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 10:31:43,103 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 10:31:43,103 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 10:31:43,104 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 10:31:43,120 [DEBUG][       Thread-251631][   transport.py][1871] : EOF in transport thread
2025-06-13 10:31:49,918 [DEBUG][Thread-251633 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:31:53,114 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 10:31:53,114 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 10:31:53,114 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 10:31:53,117 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 10:31:53,586 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 10, 31, 17), 10.18, 49.1, 0.0, 14.19, 9.39, 0, 0, 0, 2, 0, 0),)
2025-06-13 10:31:53,586 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 10:31:17
2025-06-13 10:31:53,668 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 10:31:53,674 [DEBUG][       Thread-251634][   transport.py][1871] : starting thread (client mode): 0x863699c0
2025-06-13 10:31:53,674 [DEBUG][       Thread-251634][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 10:31:53,695 [DEBUG][       Thread-251634][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 10:31:53,695 [ INFO][       Thread-251634][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 10:31:53,698 [DEBUG][       Thread-251634][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 10:31:53,699 [DEBUG][       Thread-251634][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 10:31:53,699 [DEBUG][       Thread-251634][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 10:31:53,699 [DEBUG][       Thread-251634][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:31:53,699 [DEBUG][       Thread-251634][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:31:53,699 [DEBUG][       Thread-251634][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:31:53,699 [DEBUG][       Thread-251634][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:31:53,699 [DEBUG][       Thread-251634][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 10:31:53,699 [DEBUG][       Thread-251634][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 10:31:53,699 [DEBUG][       Thread-251634][   transport.py][1871] : client lang: <none>
2025-06-13 10:31:53,699 [DEBUG][       Thread-251634][   transport.py][1871] : server lang: <none>
2025-06-13 10:31:53,699 [DEBUG][       Thread-251634][   transport.py][1871] : kex follows: False
2025-06-13 10:31:53,699 [DEBUG][       Thread-251634][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 10:31:53,699 [DEBUG][       Thread-251634][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 10:31:53,699 [DEBUG][       Thread-251634][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 10:31:53,699 [DEBUG][       Thread-251634][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 10:31:53,699 [DEBUG][       Thread-251634][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 10:31:53,699 [DEBUG][       Thread-251634][   transport.py][1871] : Compression: none
2025-06-13 10:31:53,699 [DEBUG][       Thread-251634][   transport.py][1871] : === End of kex handshake ===
2025-06-13 10:31:53,717 [DEBUG][       Thread-251634][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 10:31:53,717 [DEBUG][       Thread-251634][   transport.py][1871] : Switch to new keys ...
2025-06-13 10:31:53,718 [DEBUG][       Thread-251634][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 10:31:53,718 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 10:31:53,718 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 10:31:53,720 [DEBUG][       Thread-251634][   transport.py][1871] : userauth is OK
2025-06-13 10:31:53,733 [ INFO][       Thread-251634][   transport.py][1871] : Authentication (password) successful!
2025-06-13 10:31:53,733 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 10:31:54,368 [DEBUG][       Thread-251634][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 10:31:54,368 [DEBUG][       Thread-251634][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 10:31:54,409 [DEBUG][       Thread-251634][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 10:31:54,409 [DEBUG][       Thread-251634][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 10:31:54,412 [DEBUG][       Thread-251634][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 10:31:54,423 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 10:31:54,423 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 10:31:54,425 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 10:31:54,427 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 10:31:54,432 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 10:31:54,434 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 10:31:54,434 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 10:31:54,435 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 10:31:54,435 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.355148 -999.00   +9.20  17.11     54   +0.60 1 1 1 1 1   887    0 9.84 32.02 ----- 19.2 17.1 44.2 25.4 13.8 -28.0 12.4 -29.7 11.5 -27.5 12.7 -26.5
2025-06-13 10:31:54,435 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 10:31:54,435 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 10:31:54,435 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.355148
2025-06-13 10:31:54,435 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 10:31:54,436 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 10:31:54,436 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 10:31:54,436 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 10:31:54,436 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 10:31:54,436 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T10:31:17', tmtdew=10.18, humidity=49.1, cloud=0.0, wind=14.19, temperature=9.39, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T08:31:24.787', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 10:31:54,437 [DEBUG][       Thread-251634][   transport.py][1871] : EOF in transport thread
2025-06-13 10:31:54,520 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 10:31:54,529 [DEBUG][       Thread-251637][   transport.py][1871] : starting thread (client mode): 0x84204970
2025-06-13 10:31:54,529 [DEBUG][       Thread-251637][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 10:31:54,544 [DEBUG][       Thread-251637][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 10:31:54,544 [ INFO][       Thread-251637][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 10:31:54,552 [DEBUG][       Thread-251637][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 10:31:54,553 [DEBUG][       Thread-251637][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 10:31:54,553 [DEBUG][       Thread-251637][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 10:31:54,553 [DEBUG][       Thread-251637][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:31:54,553 [DEBUG][       Thread-251637][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:31:54,553 [DEBUG][       Thread-251637][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:31:54,553 [DEBUG][       Thread-251637][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:31:54,553 [DEBUG][       Thread-251637][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 10:31:54,553 [DEBUG][       Thread-251637][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 10:31:54,553 [DEBUG][       Thread-251637][   transport.py][1871] : client lang: <none>
2025-06-13 10:31:54,553 [DEBUG][       Thread-251637][   transport.py][1871] : server lang: <none>
2025-06-13 10:31:54,553 [DEBUG][       Thread-251637][   transport.py][1871] : kex follows: False
2025-06-13 10:31:54,553 [DEBUG][       Thread-251637][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 10:31:54,553 [DEBUG][       Thread-251637][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 10:31:54,553 [DEBUG][       Thread-251637][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 10:31:54,553 [DEBUG][       Thread-251637][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 10:31:54,553 [DEBUG][       Thread-251637][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 10:31:54,553 [DEBUG][       Thread-251637][   transport.py][1871] : Compression: none
2025-06-13 10:31:54,553 [DEBUG][       Thread-251637][   transport.py][1871] : === End of kex handshake ===
2025-06-13 10:31:54,610 [DEBUG][       Thread-251637][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 10:31:54,611 [DEBUG][       Thread-251637][   transport.py][1871] : Switch to new keys ...
2025-06-13 10:31:54,611 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 10:31:54,611 [DEBUG][       Thread-251637][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 10:31:54,612 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 10:31:54,667 [DEBUG][       Thread-251637][   transport.py][1871] : userauth is OK
2025-06-13 10:31:54,667 [DEBUG][       Thread-251637][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 10:31:54,667 [DEBUG][       Thread-251637][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 10:31:54,667 [DEBUG][       Thread-251637][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 10:31:54,667 [DEBUG][       Thread-251637][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 10:31:54,689 [ INFO][       Thread-251637][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 10:31:54,689 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 10:31:54,689 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 10:31:55,699 [DEBUG][       Thread-251637][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 10:31:55,700 [DEBUG][       Thread-251637][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 10:31:55,747 [DEBUG][       Thread-251637][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 10:31:55,748 [DEBUG][       Thread-251637][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 10:31:55,757 [DEBUG][       Thread-251637][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 10:31:55,767 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 10:31:55,768 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 10:31:55,776 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 10:31:55,785 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 10:31:55,785 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 10:31:55,786 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 10:31:55,794 [DEBUG][       Thread-251637][   transport.py][1871] : EOF in transport thread
2025-06-13 10:31:58,936 [DEBUG][Thread-251639 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:32:05,796 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 10:32:05,796 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 10:32:05,796 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 10:32:05,797 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 10:32:06,308 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 10, 31, 17), 10.18, 49.1, 0.0, 14.19, 9.39, 0, 0, 0, 2, 0, 0),)
2025-06-13 10:32:06,308 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 10:31:17
2025-06-13 10:32:06,397 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 10:32:06,401 [DEBUG][       Thread-251640][   transport.py][1871] : starting thread (client mode): 0x84206650
2025-06-13 10:32:06,401 [DEBUG][       Thread-251640][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 10:32:06,421 [DEBUG][       Thread-251640][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 10:32:06,421 [ INFO][       Thread-251640][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 10:32:06,424 [DEBUG][       Thread-251640][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 10:32:06,424 [DEBUG][       Thread-251640][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 10:32:06,424 [DEBUG][       Thread-251640][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 10:32:06,424 [DEBUG][       Thread-251640][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:32:06,424 [DEBUG][       Thread-251640][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:32:06,424 [DEBUG][       Thread-251640][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:32:06,424 [DEBUG][       Thread-251640][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:32:06,424 [DEBUG][       Thread-251640][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 10:32:06,424 [DEBUG][       Thread-251640][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 10:32:06,424 [DEBUG][       Thread-251640][   transport.py][1871] : client lang: <none>
2025-06-13 10:32:06,424 [DEBUG][       Thread-251640][   transport.py][1871] : server lang: <none>
2025-06-13 10:32:06,424 [DEBUG][       Thread-251640][   transport.py][1871] : kex follows: False
2025-06-13 10:32:06,424 [DEBUG][       Thread-251640][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 10:32:06,424 [DEBUG][       Thread-251640][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 10:32:06,425 [DEBUG][       Thread-251640][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 10:32:06,425 [DEBUG][       Thread-251640][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 10:32:06,425 [DEBUG][       Thread-251640][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 10:32:06,425 [DEBUG][       Thread-251640][   transport.py][1871] : Compression: none
2025-06-13 10:32:06,425 [DEBUG][       Thread-251640][   transport.py][1871] : === End of kex handshake ===
2025-06-13 10:32:06,438 [DEBUG][       Thread-251640][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 10:32:06,438 [DEBUG][       Thread-251640][   transport.py][1871] : Switch to new keys ...
2025-06-13 10:32:06,438 [DEBUG][       Thread-251640][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 10:32:06,438 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 10:32:06,439 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 10:32:06,439 [DEBUG][       Thread-251640][   transport.py][1871] : userauth is OK
2025-06-13 10:32:06,452 [ INFO][       Thread-251640][   transport.py][1871] : Authentication (password) successful!
2025-06-13 10:32:06,452 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 10:32:06,511 [DEBUG][Thread-251642 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:32:07,100 [DEBUG][       Thread-251640][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 10:32:07,100 [DEBUG][       Thread-251640][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 10:32:07,140 [DEBUG][       Thread-251640][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 10:32:07,141 [DEBUG][       Thread-251640][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 10:32:07,143 [DEBUG][       Thread-251640][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 10:32:07,157 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 10:32:07,157 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 10:32:07,158 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 10:32:07,159 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 10:32:07,162 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 10:32:07,163 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 10:32:07,163 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 10:32:07,164 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 10:32:07,164 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.355148 -999.00   +9.20  17.11     54   +0.60 1 1 1 1 1   887    0 9.84 32.02 ----- 19.2 17.1 44.2 25.4 13.8 -28.0 12.4 -29.7 11.5 -27.5 12.7 -26.5
2025-06-13 10:32:07,164 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 10:32:07,164 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 10:32:07,164 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.355148
2025-06-13 10:32:07,164 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 10:32:07,164 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 10:32:07,164 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 10:32:07,164 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 10:32:07,164 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 10:32:07,164 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T10:31:17', tmtdew=10.18, humidity=49.1, cloud=0.0, wind=14.19, temperature=9.39, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T08:31:24.787', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 10:32:07,165 [DEBUG][       Thread-251640][   transport.py][1871] : EOF in transport thread
2025-06-13 10:32:07,238 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 10:32:07,248 [DEBUG][       Thread-251644][   transport.py][1871] : starting thread (client mode): 0x863a6bf0
2025-06-13 10:32:07,248 [DEBUG][       Thread-251644][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 10:32:07,265 [DEBUG][       Thread-251644][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 10:32:07,265 [ INFO][       Thread-251644][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 10:32:07,277 [DEBUG][       Thread-251644][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 10:32:07,277 [DEBUG][       Thread-251644][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 10:32:07,277 [DEBUG][       Thread-251644][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 10:32:07,277 [DEBUG][       Thread-251644][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:32:07,277 [DEBUG][       Thread-251644][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:32:07,278 [DEBUG][       Thread-251644][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:32:07,278 [DEBUG][       Thread-251644][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:32:07,278 [DEBUG][       Thread-251644][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 10:32:07,278 [DEBUG][       Thread-251644][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 10:32:07,278 [DEBUG][       Thread-251644][   transport.py][1871] : client lang: <none>
2025-06-13 10:32:07,278 [DEBUG][       Thread-251644][   transport.py][1871] : server lang: <none>
2025-06-13 10:32:07,278 [DEBUG][       Thread-251644][   transport.py][1871] : kex follows: False
2025-06-13 10:32:07,278 [DEBUG][       Thread-251644][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 10:32:07,278 [DEBUG][       Thread-251644][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 10:32:07,278 [DEBUG][       Thread-251644][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 10:32:07,278 [DEBUG][       Thread-251644][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 10:32:07,278 [DEBUG][       Thread-251644][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 10:32:07,278 [DEBUG][       Thread-251644][   transport.py][1871] : Compression: none
2025-06-13 10:32:07,278 [DEBUG][       Thread-251644][   transport.py][1871] : === End of kex handshake ===
2025-06-13 10:32:07,330 [DEBUG][       Thread-251644][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 10:32:07,330 [DEBUG][       Thread-251644][   transport.py][1871] : Switch to new keys ...
2025-06-13 10:32:07,331 [DEBUG][       Thread-251644][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 10:32:07,331 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 10:32:07,331 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 10:32:07,387 [DEBUG][       Thread-251644][   transport.py][1871] : userauth is OK
2025-06-13 10:32:07,387 [DEBUG][       Thread-251644][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 10:32:07,387 [DEBUG][       Thread-251644][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 10:32:07,387 [DEBUG][       Thread-251644][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 10:32:07,387 [DEBUG][       Thread-251644][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 10:32:07,408 [ INFO][       Thread-251644][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 10:32:07,409 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 10:32:07,409 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 10:32:07,953 [DEBUG][Thread-251646 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:32:08,411 [DEBUG][       Thread-251644][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 10:32:08,412 [DEBUG][       Thread-251644][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 10:32:08,459 [DEBUG][       Thread-251644][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 10:32:08,460 [DEBUG][       Thread-251644][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 10:32:08,469 [DEBUG][       Thread-251644][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 10:32:08,477 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 10:32:08,477 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 10:32:08,488 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 10:32:08,497 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 10:32:08,497 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 10:32:08,498 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 10:32:08,506 [DEBUG][       Thread-251644][   transport.py][1871] : EOF in transport thread
2025-06-13 10:32:16,972 [DEBUG][Thread-251647 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:32:18,395 [DEBUG][Thread-251648 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:32:18,508 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 10:32:18,508 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 10:32:18,508 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 10:32:18,511 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 10:32:18,975 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 10, 31, 49), 10.18, 49.11, 0.0, 13.76, 9.43, 0, 0, 0, 2, 0, 0),)
2025-06-13 10:32:18,975 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 10:31:49
2025-06-13 10:32:19,056 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 10:32:19,062 [DEBUG][       Thread-251649][   transport.py][1871] : starting thread (client mode): 0x867b7c40
2025-06-13 10:32:19,062 [DEBUG][       Thread-251649][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 10:32:19,082 [DEBUG][       Thread-251649][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 10:32:19,082 [ INFO][       Thread-251649][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 10:32:19,085 [DEBUG][       Thread-251649][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 10:32:19,085 [DEBUG][       Thread-251649][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 10:32:19,085 [DEBUG][       Thread-251649][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 10:32:19,086 [DEBUG][       Thread-251649][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:32:19,086 [DEBUG][       Thread-251649][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:32:19,086 [DEBUG][       Thread-251649][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:32:19,086 [DEBUG][       Thread-251649][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:32:19,086 [DEBUG][       Thread-251649][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 10:32:19,086 [DEBUG][       Thread-251649][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 10:32:19,086 [DEBUG][       Thread-251649][   transport.py][1871] : client lang: <none>
2025-06-13 10:32:19,086 [DEBUG][       Thread-251649][   transport.py][1871] : server lang: <none>
2025-06-13 10:32:19,086 [DEBUG][       Thread-251649][   transport.py][1871] : kex follows: False
2025-06-13 10:32:19,086 [DEBUG][       Thread-251649][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 10:32:19,086 [DEBUG][       Thread-251649][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 10:32:19,086 [DEBUG][       Thread-251649][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 10:32:19,086 [DEBUG][       Thread-251649][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 10:32:19,086 [DEBUG][       Thread-251649][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 10:32:19,086 [DEBUG][       Thread-251649][   transport.py][1871] : Compression: none
2025-06-13 10:32:19,086 [DEBUG][       Thread-251649][   transport.py][1871] : === End of kex handshake ===
2025-06-13 10:32:19,101 [DEBUG][       Thread-251649][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 10:32:19,102 [DEBUG][       Thread-251649][   transport.py][1871] : Switch to new keys ...
2025-06-13 10:32:19,102 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 10:32:19,102 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 10:32:19,103 [DEBUG][       Thread-251649][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 10:32:19,103 [DEBUG][       Thread-251649][   transport.py][1871] : userauth is OK
2025-06-13 10:32:19,128 [ INFO][       Thread-251649][   transport.py][1871] : Authentication (password) successful!
2025-06-13 10:32:19,129 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 10:32:19,470 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:32:19,471 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:32:19,688 [DEBUG][       Thread-251649][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 10:32:19,688 [DEBUG][       Thread-251649][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 10:32:19,729 [DEBUG][       Thread-251649][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 10:32:19,729 [DEBUG][       Thread-251649][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 10:32:19,732 [DEBUG][       Thread-251649][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 10:32:19,743 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 10:32:19,743 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 10:32:19,745 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 10:32:19,746 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 10:32:19,751 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 10:32:19,753 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 10:32:19,753 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 10:32:19,754 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 10:32:19,754 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.355148 -999.00   +9.20  17.11     54   +0.60 1 1 1 1 1   887    0 9.84 32.02 ----- 19.2 17.1 44.2 25.4 13.8 -28.0 12.4 -29.7 11.5 -27.5 12.7 -26.5
2025-06-13 10:32:19,754 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 10:32:19,754 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 10:32:19,754 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.355148
2025-06-13 10:32:19,754 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 10:32:19,755 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 10:32:19,755 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 10:32:19,755 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 10:32:19,755 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 10:32:19,755 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T10:31:49', tmtdew=10.18, humidity=49.11, cloud=0.0, wind=13.76, temperature=9.43, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T08:31:24.787', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 10:32:19,755 [DEBUG][       Thread-251649][   transport.py][1871] : EOF in transport thread
2025-06-13 10:32:19,840 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 10:32:19,849 [DEBUG][       Thread-251652][   transport.py][1871] : starting thread (client mode): 0x863c8880
2025-06-13 10:32:19,849 [DEBUG][       Thread-251652][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 10:32:19,863 [DEBUG][       Thread-251652][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 10:32:19,863 [ INFO][       Thread-251652][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 10:32:19,871 [DEBUG][       Thread-251652][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 10:32:19,871 [DEBUG][       Thread-251652][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 10:32:19,871 [DEBUG][       Thread-251652][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 10:32:19,871 [DEBUG][       Thread-251652][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:32:19,871 [DEBUG][       Thread-251652][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:32:19,871 [DEBUG][       Thread-251652][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:32:19,871 [DEBUG][       Thread-251652][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:32:19,871 [DEBUG][       Thread-251652][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 10:32:19,871 [DEBUG][       Thread-251652][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 10:32:19,871 [DEBUG][       Thread-251652][   transport.py][1871] : client lang: <none>
2025-06-13 10:32:19,871 [DEBUG][       Thread-251652][   transport.py][1871] : server lang: <none>
2025-06-13 10:32:19,871 [DEBUG][       Thread-251652][   transport.py][1871] : kex follows: False
2025-06-13 10:32:19,871 [DEBUG][       Thread-251652][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 10:32:19,871 [DEBUG][       Thread-251652][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 10:32:19,871 [DEBUG][       Thread-251652][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 10:32:19,871 [DEBUG][       Thread-251652][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 10:32:19,872 [DEBUG][       Thread-251652][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 10:32:19,872 [DEBUG][       Thread-251652][   transport.py][1871] : Compression: none
2025-06-13 10:32:19,872 [DEBUG][       Thread-251652][   transport.py][1871] : === End of kex handshake ===
2025-06-13 10:32:19,931 [DEBUG][       Thread-251652][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 10:32:19,931 [DEBUG][       Thread-251652][   transport.py][1871] : Switch to new keys ...
2025-06-13 10:32:19,932 [DEBUG][       Thread-251652][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 10:32:19,932 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 10:32:19,933 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 10:32:19,987 [DEBUG][       Thread-251652][   transport.py][1871] : userauth is OK
2025-06-13 10:32:19,987 [DEBUG][       Thread-251652][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 10:32:19,987 [DEBUG][       Thread-251652][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 10:32:19,987 [DEBUG][       Thread-251652][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 10:32:19,987 [DEBUG][       Thread-251652][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 10:32:20,006 [ INFO][       Thread-251652][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 10:32:20,006 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 10:32:20,007 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 10:32:21,024 [DEBUG][       Thread-251652][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 10:32:21,024 [DEBUG][       Thread-251652][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 10:32:21,071 [DEBUG][       Thread-251652][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 10:32:21,072 [DEBUG][       Thread-251652][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 10:32:21,080 [DEBUG][       Thread-251652][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 10:32:21,089 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 10:32:21,089 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 10:32:21,098 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 10:32:21,109 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 10:32:21,109 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 10:32:21,110 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 10:32:21,121 [DEBUG][       Thread-251652][   transport.py][1871] : EOF in transport thread
2025-06-13 10:32:25,992 [DEBUG][Thread-251654 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:32:27,115 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:32:27,116 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:32:31,120 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 10:32:31,120 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 10:32:31,121 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 10:32:31,123 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 10:32:31,593 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 10, 31, 49), 10.18, 49.11, 0.0, 13.76, 9.43, 0, 0, 0, 2, 0, 0),)
2025-06-13 10:32:31,593 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 10:31:49
2025-06-13 10:32:31,675 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 10:32:31,678 [DEBUG][       Thread-251655][   transport.py][1871] : starting thread (client mode): 0x867b6800
2025-06-13 10:32:31,679 [DEBUG][       Thread-251655][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 10:32:31,699 [DEBUG][       Thread-251655][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 10:32:31,699 [ INFO][       Thread-251655][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 10:32:31,702 [DEBUG][       Thread-251655][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 10:32:31,702 [DEBUG][       Thread-251655][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 10:32:31,702 [DEBUG][       Thread-251655][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 10:32:31,702 [DEBUG][       Thread-251655][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:32:31,702 [DEBUG][       Thread-251655][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:32:31,702 [DEBUG][       Thread-251655][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:32:31,702 [DEBUG][       Thread-251655][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:32:31,702 [DEBUG][       Thread-251655][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 10:32:31,702 [DEBUG][       Thread-251655][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 10:32:31,702 [DEBUG][       Thread-251655][   transport.py][1871] : client lang: <none>
2025-06-13 10:32:31,702 [DEBUG][       Thread-251655][   transport.py][1871] : server lang: <none>
2025-06-13 10:32:31,702 [DEBUG][       Thread-251655][   transport.py][1871] : kex follows: False
2025-06-13 10:32:31,702 [DEBUG][       Thread-251655][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 10:32:31,702 [DEBUG][       Thread-251655][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 10:32:31,702 [DEBUG][       Thread-251655][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 10:32:31,702 [DEBUG][       Thread-251655][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 10:32:31,702 [DEBUG][       Thread-251655][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 10:32:31,702 [DEBUG][       Thread-251655][   transport.py][1871] : Compression: none
2025-06-13 10:32:31,702 [DEBUG][       Thread-251655][   transport.py][1871] : === End of kex handshake ===
2025-06-13 10:32:31,720 [DEBUG][       Thread-251655][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 10:32:31,720 [DEBUG][       Thread-251655][   transport.py][1871] : Switch to new keys ...
2025-06-13 10:32:31,721 [DEBUG][       Thread-251655][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 10:32:31,721 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 10:32:31,721 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 10:32:31,723 [DEBUG][       Thread-251655][   transport.py][1871] : userauth is OK
2025-06-13 10:32:31,736 [ INFO][       Thread-251655][   transport.py][1871] : Authentication (password) successful!
2025-06-13 10:32:31,736 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 10:32:32,392 [DEBUG][       Thread-251655][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 10:32:32,392 [DEBUG][       Thread-251655][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 10:32:32,437 [DEBUG][       Thread-251655][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 10:32:32,437 [DEBUG][       Thread-251655][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 10:32:32,440 [DEBUG][       Thread-251655][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 10:32:32,452 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 10:32:32,452 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 10:32:32,454 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 10:32:32,456 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 10:32:32,461 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 10:32:32,463 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 10:32:32,463 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 10:32:32,464 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 10:32:32,464 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.355495 -999.00   +9.40  14.08     53   +0.50 1 1 1 1 1   887    0 9.59 28.50 ----- 17.5 14.1 39.0 21.7 13.9 -27.8 12.5 -29.5 11.5 -28.5 12.7 -26.6
2025-06-13 10:32:32,464 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 10:32:32,464 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 10:32:32,464 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.355495
2025-06-13 10:32:32,464 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 10:32:32,465 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 10:32:32,465 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 10:32:32,465 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 10:32:32,465 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 10:32:32,465 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T10:31:49', tmtdew=10.18, humidity=49.11, cloud=0.0, wind=13.76, temperature=9.43, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T08:31:54.768', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 10:32:32,466 [DEBUG][       Thread-251655][   transport.py][1871] : EOF in transport thread
2025-06-13 10:32:32,549 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 10:32:32,560 [DEBUG][       Thread-251658][   transport.py][1871] : starting thread (client mode): 0x863bdb70
2025-06-13 10:32:32,560 [DEBUG][       Thread-251658][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 10:32:32,575 [DEBUG][       Thread-251658][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 10:32:32,575 [ INFO][       Thread-251658][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 10:32:32,583 [DEBUG][       Thread-251658][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 10:32:32,583 [DEBUG][       Thread-251658][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 10:32:32,583 [DEBUG][       Thread-251658][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 10:32:32,583 [DEBUG][       Thread-251658][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:32:32,583 [DEBUG][       Thread-251658][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:32:32,583 [DEBUG][       Thread-251658][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:32:32,583 [DEBUG][       Thread-251658][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:32:32,583 [DEBUG][       Thread-251658][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 10:32:32,583 [DEBUG][       Thread-251658][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 10:32:32,583 [DEBUG][       Thread-251658][   transport.py][1871] : client lang: <none>
2025-06-13 10:32:32,583 [DEBUG][       Thread-251658][   transport.py][1871] : server lang: <none>
2025-06-13 10:32:32,583 [DEBUG][       Thread-251658][   transport.py][1871] : kex follows: False
2025-06-13 10:32:32,583 [DEBUG][       Thread-251658][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 10:32:32,583 [DEBUG][       Thread-251658][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 10:32:32,583 [DEBUG][       Thread-251658][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 10:32:32,583 [DEBUG][       Thread-251658][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 10:32:32,583 [DEBUG][       Thread-251658][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 10:32:32,584 [DEBUG][       Thread-251658][   transport.py][1871] : Compression: none
2025-06-13 10:32:32,584 [DEBUG][       Thread-251658][   transport.py][1871] : === End of kex handshake ===
2025-06-13 10:32:32,639 [DEBUG][       Thread-251658][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 10:32:32,639 [DEBUG][       Thread-251658][   transport.py][1871] : Switch to new keys ...
2025-06-13 10:32:32,640 [DEBUG][       Thread-251658][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 10:32:32,640 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 10:32:32,641 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 10:32:32,703 [DEBUG][       Thread-251658][   transport.py][1871] : userauth is OK
2025-06-13 10:32:32,704 [DEBUG][       Thread-251658][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 10:32:32,704 [DEBUG][       Thread-251658][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 10:32:32,704 [DEBUG][       Thread-251658][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 10:32:32,704 [DEBUG][       Thread-251658][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 10:32:32,723 [ INFO][       Thread-251658][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 10:32:32,724 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 10:32:32,724 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 10:32:33,759 [DEBUG][       Thread-251658][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 10:32:33,759 [DEBUG][       Thread-251658][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 10:32:33,807 [DEBUG][       Thread-251658][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 10:32:33,808 [DEBUG][       Thread-251658][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 10:32:33,816 [DEBUG][       Thread-251658][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 10:32:33,825 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 10:32:33,825 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 10:32:33,834 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 10:32:33,843 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 10:32:33,843 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 10:32:33,843 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 10:32:33,851 [DEBUG][       Thread-251658][   transport.py][1871] : EOF in transport thread
2025-06-13 10:32:35,022 [DEBUG][Thread-251660 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:32:43,852 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 10:32:43,852 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 10:32:43,852 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 10:32:43,852 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 10:32:44,040 [DEBUG][Thread-251661 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:32:44,343 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 10, 32, 36), 10.08, 49.36, 0.0, 17.1, 9.58, 0, 0, 0, 2, 0, 0),)
2025-06-13 10:32:44,343 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 10:32:36
2025-06-13 10:32:44,428 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 10:32:44,434 [DEBUG][       Thread-251662][   transport.py][1871] : starting thread (client mode): 0x842050c0
2025-06-13 10:32:44,434 [DEBUG][       Thread-251662][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 10:32:44,456 [DEBUG][       Thread-251662][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 10:32:44,456 [ INFO][       Thread-251662][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 10:32:44,459 [DEBUG][       Thread-251662][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 10:32:44,459 [DEBUG][       Thread-251662][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 10:32:44,459 [DEBUG][       Thread-251662][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 10:32:44,459 [DEBUG][       Thread-251662][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:32:44,459 [DEBUG][       Thread-251662][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:32:44,459 [DEBUG][       Thread-251662][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:32:44,459 [DEBUG][       Thread-251662][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:32:44,459 [DEBUG][       Thread-251662][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 10:32:44,459 [DEBUG][       Thread-251662][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 10:32:44,459 [DEBUG][       Thread-251662][   transport.py][1871] : client lang: <none>
2025-06-13 10:32:44,459 [DEBUG][       Thread-251662][   transport.py][1871] : server lang: <none>
2025-06-13 10:32:44,459 [DEBUG][       Thread-251662][   transport.py][1871] : kex follows: False
2025-06-13 10:32:44,459 [DEBUG][       Thread-251662][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 10:32:44,459 [DEBUG][       Thread-251662][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 10:32:44,459 [DEBUG][       Thread-251662][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 10:32:44,459 [DEBUG][       Thread-251662][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 10:32:44,459 [DEBUG][       Thread-251662][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 10:32:44,459 [DEBUG][       Thread-251662][   transport.py][1871] : Compression: none
2025-06-13 10:32:44,459 [DEBUG][       Thread-251662][   transport.py][1871] : === End of kex handshake ===
2025-06-13 10:32:44,474 [DEBUG][       Thread-251662][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 10:32:44,474 [DEBUG][       Thread-251662][   transport.py][1871] : Switch to new keys ...
2025-06-13 10:32:44,474 [DEBUG][       Thread-251662][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 10:32:44,474 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 10:32:44,474 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 10:32:44,475 [DEBUG][       Thread-251662][   transport.py][1871] : userauth is OK
2025-06-13 10:32:44,488 [ INFO][       Thread-251662][   transport.py][1871] : Authentication (password) successful!
2025-06-13 10:32:44,488 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 10:32:45,150 [DEBUG][       Thread-251662][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 10:32:45,150 [DEBUG][       Thread-251662][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 10:32:45,192 [DEBUG][       Thread-251662][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 10:32:45,192 [DEBUG][       Thread-251662][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 10:32:45,195 [DEBUG][       Thread-251662][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 10:32:45,207 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 10:32:45,207 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 10:32:45,208 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 10:32:45,210 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 10:32:45,213 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 10:32:45,214 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 10:32:45,214 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 10:32:45,214 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 10:32:45,214 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.355495 -999.00   +9.40  14.08     53   +0.50 1 1 1 1 1   887    0 9.59 28.50 ----- 17.5 14.1 39.0 21.7 13.9 -27.8 12.5 -29.5 11.5 -28.5 12.7 -26.6
2025-06-13 10:32:45,214 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 10:32:45,214 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 10:32:45,214 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.355495
2025-06-13 10:32:45,214 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 10:32:45,214 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 10:32:45,214 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 10:32:45,214 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 10:32:45,214 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 10:32:45,214 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T10:32:36', tmtdew=10.08, humidity=49.36, cloud=0.0, wind=17.1, temperature=9.58, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T08:31:54.768', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 10:32:45,215 [DEBUG][       Thread-251662][   transport.py][1871] : EOF in transport thread
2025-06-13 10:32:45,287 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 10:32:45,297 [DEBUG][       Thread-251665][   transport.py][1871] : starting thread (client mode): 0x863a5240
2025-06-13 10:32:45,297 [DEBUG][       Thread-251665][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 10:32:45,312 [DEBUG][       Thread-251665][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 10:32:45,312 [ INFO][       Thread-251665][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 10:32:45,319 [DEBUG][       Thread-251665][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 10:32:45,319 [DEBUG][       Thread-251665][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 10:32:45,319 [DEBUG][       Thread-251665][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 10:32:45,319 [DEBUG][       Thread-251665][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:32:45,319 [DEBUG][       Thread-251665][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:32:45,319 [DEBUG][       Thread-251665][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:32:45,319 [DEBUG][       Thread-251665][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:32:45,319 [DEBUG][       Thread-251665][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 10:32:45,319 [DEBUG][       Thread-251665][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 10:32:45,319 [DEBUG][       Thread-251665][   transport.py][1871] : client lang: <none>
2025-06-13 10:32:45,319 [DEBUG][       Thread-251665][   transport.py][1871] : server lang: <none>
2025-06-13 10:32:45,319 [DEBUG][       Thread-251665][   transport.py][1871] : kex follows: False
2025-06-13 10:32:45,319 [DEBUG][       Thread-251665][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 10:32:45,319 [DEBUG][       Thread-251665][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 10:32:45,319 [DEBUG][       Thread-251665][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 10:32:45,319 [DEBUG][       Thread-251665][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 10:32:45,319 [DEBUG][       Thread-251665][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 10:32:45,319 [DEBUG][       Thread-251665][   transport.py][1871] : Compression: none
2025-06-13 10:32:45,319 [DEBUG][       Thread-251665][   transport.py][1871] : === End of kex handshake ===
2025-06-13 10:32:45,377 [DEBUG][       Thread-251665][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 10:32:45,378 [DEBUG][       Thread-251665][   transport.py][1871] : Switch to new keys ...
2025-06-13 10:32:45,378 [DEBUG][       Thread-251665][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 10:32:45,378 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 10:32:45,378 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 10:32:45,436 [DEBUG][       Thread-251665][   transport.py][1871] : userauth is OK
2025-06-13 10:32:45,437 [DEBUG][       Thread-251665][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 10:32:45,437 [DEBUG][       Thread-251665][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 10:32:45,437 [DEBUG][       Thread-251665][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 10:32:45,437 [DEBUG][       Thread-251665][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 10:32:45,454 [ INFO][       Thread-251665][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 10:32:45,454 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 10:32:45,455 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 10:32:46,465 [DEBUG][       Thread-251665][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 10:32:46,465 [DEBUG][       Thread-251665][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 10:32:46,516 [DEBUG][       Thread-251665][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 10:32:46,516 [DEBUG][       Thread-251665][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 10:32:46,525 [DEBUG][       Thread-251665][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 10:32:46,534 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 10:32:46,534 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 10:32:46,544 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 10:32:46,553 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 10:32:46,553 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 10:32:46,554 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 10:32:46,563 [DEBUG][       Thread-251665][   transport.py][1871] : EOF in transport thread
2025-06-13 10:32:53,058 [DEBUG][Thread-251667 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:32:56,564 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 10:32:56,564 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 10:32:56,565 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 10:32:56,568 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 10:32:57,032 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 10, 32, 36), 10.08, 49.36, 0.0, 17.1, 9.58, 0, 0, 0, 2, 0, 0),)
2025-06-13 10:32:57,032 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 10:32:36
2025-06-13 10:32:57,114 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 10:32:57,118 [DEBUG][       Thread-251668][   transport.py][1871] : starting thread (client mode): 0x84207670
2025-06-13 10:32:57,118 [DEBUG][       Thread-251668][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 10:32:57,137 [DEBUG][       Thread-251668][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 10:32:57,137 [ INFO][       Thread-251668][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 10:32:57,141 [DEBUG][       Thread-251668][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 10:32:57,141 [DEBUG][       Thread-251668][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 10:32:57,141 [DEBUG][       Thread-251668][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 10:32:57,141 [DEBUG][       Thread-251668][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:32:57,141 [DEBUG][       Thread-251668][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:32:57,141 [DEBUG][       Thread-251668][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:32:57,141 [DEBUG][       Thread-251668][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:32:57,141 [DEBUG][       Thread-251668][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 10:32:57,141 [DEBUG][       Thread-251668][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 10:32:57,141 [DEBUG][       Thread-251668][   transport.py][1871] : client lang: <none>
2025-06-13 10:32:57,141 [DEBUG][       Thread-251668][   transport.py][1871] : server lang: <none>
2025-06-13 10:32:57,141 [DEBUG][       Thread-251668][   transport.py][1871] : kex follows: False
2025-06-13 10:32:57,141 [DEBUG][       Thread-251668][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 10:32:57,141 [DEBUG][       Thread-251668][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 10:32:57,141 [DEBUG][       Thread-251668][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 10:32:57,141 [DEBUG][       Thread-251668][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 10:32:57,141 [DEBUG][       Thread-251668][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 10:32:57,141 [DEBUG][       Thread-251668][   transport.py][1871] : Compression: none
2025-06-13 10:32:57,141 [DEBUG][       Thread-251668][   transport.py][1871] : === End of kex handshake ===
2025-06-13 10:32:57,157 [DEBUG][       Thread-251668][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 10:32:57,157 [DEBUG][       Thread-251668][   transport.py][1871] : Switch to new keys ...
2025-06-13 10:32:57,158 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 10:32:57,158 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 10:32:57,158 [DEBUG][       Thread-251668][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 10:32:57,159 [DEBUG][       Thread-251668][   transport.py][1871] : userauth is OK
2025-06-13 10:32:57,172 [ INFO][       Thread-251668][   transport.py][1871] : Authentication (password) successful!
2025-06-13 10:32:57,173 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 10:32:57,822 [DEBUG][       Thread-251668][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 10:32:57,823 [DEBUG][       Thread-251668][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 10:32:57,865 [DEBUG][       Thread-251668][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 10:32:57,865 [DEBUG][       Thread-251668][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 10:32:57,868 [DEBUG][       Thread-251668][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 10:32:57,879 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 10:32:57,879 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 10:32:57,881 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 10:32:57,882 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 10:32:57,887 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 10:32:57,888 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 10:32:57,888 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 10:32:57,889 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 10:32:57,889 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.355843 -999.00   +9.40  17.65     52   +0.20 1 1 1 1 1   887    0 9.66 29.12 ----- 23.1 17.6 35.6 22.1 13.9 -28.7 12.6 -29.6 11.6 -27.7 12.8 -26.8
2025-06-13 10:32:57,889 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 10:32:57,889 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 10:32:57,889 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.355843
2025-06-13 10:32:57,890 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 10:32:57,890 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 10:32:57,890 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 10:32:57,890 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 10:32:57,890 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 10:32:57,890 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T10:32:36', tmtdew=10.08, humidity=49.36, cloud=0.0, wind=17.1, temperature=9.58, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T08:32:24.835', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 10:32:57,891 [DEBUG][       Thread-251668][   transport.py][1871] : EOF in transport thread
2025-06-13 10:32:57,978 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 10:32:57,988 [DEBUG][       Thread-251671][   transport.py][1871] : starting thread (client mode): 0x84207610
2025-06-13 10:32:57,988 [DEBUG][       Thread-251671][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 10:32:58,003 [DEBUG][       Thread-251671][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 10:32:58,003 [ INFO][       Thread-251671][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 10:32:58,011 [DEBUG][       Thread-251671][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 10:32:58,011 [DEBUG][       Thread-251671][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 10:32:58,011 [DEBUG][       Thread-251671][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 10:32:58,011 [DEBUG][       Thread-251671][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:32:58,011 [DEBUG][       Thread-251671][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:32:58,011 [DEBUG][       Thread-251671][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:32:58,011 [DEBUG][       Thread-251671][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:32:58,011 [DEBUG][       Thread-251671][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 10:32:58,011 [DEBUG][       Thread-251671][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 10:32:58,011 [DEBUG][       Thread-251671][   transport.py][1871] : client lang: <none>
2025-06-13 10:32:58,011 [DEBUG][       Thread-251671][   transport.py][1871] : server lang: <none>
2025-06-13 10:32:58,011 [DEBUG][       Thread-251671][   transport.py][1871] : kex follows: False
2025-06-13 10:32:58,011 [DEBUG][       Thread-251671][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 10:32:58,011 [DEBUG][       Thread-251671][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 10:32:58,011 [DEBUG][       Thread-251671][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 10:32:58,011 [DEBUG][       Thread-251671][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 10:32:58,011 [DEBUG][       Thread-251671][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 10:32:58,011 [DEBUG][       Thread-251671][   transport.py][1871] : Compression: none
2025-06-13 10:32:58,011 [DEBUG][       Thread-251671][   transport.py][1871] : === End of kex handshake ===
2025-06-13 10:32:58,067 [DEBUG][       Thread-251671][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 10:32:58,067 [DEBUG][       Thread-251671][   transport.py][1871] : Switch to new keys ...
2025-06-13 10:32:58,077 [DEBUG][       Thread-251671][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 10:32:58,077 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 10:32:58,077 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 10:32:58,123 [DEBUG][       Thread-251671][   transport.py][1871] : userauth is OK
2025-06-13 10:32:58,123 [DEBUG][       Thread-251671][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 10:32:58,123 [DEBUG][       Thread-251671][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 10:32:58,123 [DEBUG][       Thread-251671][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 10:32:58,124 [DEBUG][       Thread-251671][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 10:32:58,142 [ INFO][       Thread-251671][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 10:32:58,142 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 10:32:58,142 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 10:32:59,143 [DEBUG][       Thread-251671][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 10:32:59,143 [DEBUG][       Thread-251671][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 10:32:59,196 [DEBUG][       Thread-251671][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 10:32:59,197 [DEBUG][       Thread-251671][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 10:32:59,206 [DEBUG][       Thread-251671][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 10:32:59,217 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 10:32:59,217 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 10:32:59,226 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 10:32:59,238 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 10:32:59,239 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 10:32:59,239 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 10:32:59,249 [DEBUG][       Thread-251671][   transport.py][1871] : EOF in transport thread
2025-06-13 10:33:02,088 [DEBUG][Thread-251673 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:33:06,563 [DEBUG][Thread-251674 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:33:09,248 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 10:33:09,248 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 10:33:09,248 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 10:33:09,248 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 10:33:09,749 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 10, 32, 36), 10.08, 49.36, 0.0, 17.1, 9.58, 0, 0, 0, 2, 0, 0),)
2025-06-13 10:33:09,749 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 10:32:36
2025-06-13 10:33:09,835 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 10:33:09,841 [DEBUG][       Thread-251675][   transport.py][1871] : starting thread (client mode): 0x84206ef0
2025-06-13 10:33:09,841 [DEBUG][       Thread-251675][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 10:33:09,862 [DEBUG][       Thread-251675][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 10:33:09,862 [ INFO][       Thread-251675][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 10:33:09,865 [DEBUG][       Thread-251675][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 10:33:09,865 [DEBUG][       Thread-251675][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 10:33:09,865 [DEBUG][       Thread-251675][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 10:33:09,865 [DEBUG][       Thread-251675][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:33:09,865 [DEBUG][       Thread-251675][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:33:09,865 [DEBUG][       Thread-251675][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:33:09,865 [DEBUG][       Thread-251675][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:33:09,865 [DEBUG][       Thread-251675][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 10:33:09,865 [DEBUG][       Thread-251675][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 10:33:09,865 [DEBUG][       Thread-251675][   transport.py][1871] : client lang: <none>
2025-06-13 10:33:09,865 [DEBUG][       Thread-251675][   transport.py][1871] : server lang: <none>
2025-06-13 10:33:09,865 [DEBUG][       Thread-251675][   transport.py][1871] : kex follows: False
2025-06-13 10:33:09,865 [DEBUG][       Thread-251675][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 10:33:09,865 [DEBUG][       Thread-251675][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 10:33:09,866 [DEBUG][       Thread-251675][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 10:33:09,866 [DEBUG][       Thread-251675][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 10:33:09,866 [DEBUG][       Thread-251675][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 10:33:09,866 [DEBUG][       Thread-251675][   transport.py][1871] : Compression: none
2025-06-13 10:33:09,866 [DEBUG][       Thread-251675][   transport.py][1871] : === End of kex handshake ===
2025-06-13 10:33:09,880 [DEBUG][       Thread-251675][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 10:33:09,880 [DEBUG][       Thread-251675][   transport.py][1871] : Switch to new keys ...
2025-06-13 10:33:09,880 [DEBUG][       Thread-251675][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 10:33:09,880 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 10:33:09,880 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 10:33:09,881 [DEBUG][       Thread-251675][   transport.py][1871] : userauth is OK
2025-06-13 10:33:09,894 [ INFO][       Thread-251675][   transport.py][1871] : Authentication (password) successful!
2025-06-13 10:33:09,894 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 10:33:10,553 [DEBUG][       Thread-251675][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 10:33:10,553 [DEBUG][       Thread-251675][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 10:33:10,601 [DEBUG][       Thread-251675][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 10:33:10,601 [DEBUG][       Thread-251675][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 10:33:10,604 [DEBUG][       Thread-251675][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 10:33:10,615 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 10:33:10,615 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 10:33:10,617 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 10:33:10,619 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 10:33:10,623 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 10:33:10,625 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 10:33:10,625 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 10:33:10,626 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 10:33:10,626 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.355843 -999.00   +9.40  17.65     52   +0.20 1 1 1 1 1   887    0 9.66 29.12 ----- 23.1 17.6 35.6 22.1 13.9 -28.7 12.6 -29.6 11.6 -27.7 12.8 -26.8
2025-06-13 10:33:10,626 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 10:33:10,626 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 10:33:10,626 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.355843
2025-06-13 10:33:10,627 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 10:33:10,627 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 10:33:10,628 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 10:33:10,628 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 10:33:10,628 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 10:33:10,628 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T10:32:36', tmtdew=10.08, humidity=49.36, cloud=0.0, wind=17.1, temperature=9.58, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T08:32:24.835', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 10:33:10,629 [DEBUG][       Thread-251675][   transport.py][1871] : EOF in transport thread
2025-06-13 10:33:10,711 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 10:33:10,725 [DEBUG][       Thread-251678][   transport.py][1871] : starting thread (client mode): 0x867b7340
2025-06-13 10:33:10,725 [DEBUG][       Thread-251678][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 10:33:10,743 [DEBUG][       Thread-251678][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 10:33:10,743 [ INFO][       Thread-251678][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 10:33:10,756 [DEBUG][       Thread-251678][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 10:33:10,756 [DEBUG][       Thread-251678][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 10:33:10,756 [DEBUG][       Thread-251678][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 10:33:10,756 [DEBUG][       Thread-251678][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:33:10,756 [DEBUG][       Thread-251678][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:33:10,756 [DEBUG][       Thread-251678][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:33:10,756 [DEBUG][       Thread-251678][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:33:10,756 [DEBUG][       Thread-251678][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 10:33:10,756 [DEBUG][       Thread-251678][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 10:33:10,756 [DEBUG][       Thread-251678][   transport.py][1871] : client lang: <none>
2025-06-13 10:33:10,756 [DEBUG][       Thread-251678][   transport.py][1871] : server lang: <none>
2025-06-13 10:33:10,756 [DEBUG][       Thread-251678][   transport.py][1871] : kex follows: False
2025-06-13 10:33:10,757 [DEBUG][       Thread-251678][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 10:33:10,757 [DEBUG][       Thread-251678][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 10:33:10,757 [DEBUG][       Thread-251678][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 10:33:10,757 [DEBUG][       Thread-251678][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 10:33:10,757 [DEBUG][       Thread-251678][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 10:33:10,757 [DEBUG][       Thread-251678][   transport.py][1871] : Compression: none
2025-06-13 10:33:10,757 [DEBUG][       Thread-251678][   transport.py][1871] : === End of kex handshake ===
2025-06-13 10:33:10,820 [DEBUG][       Thread-251678][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 10:33:10,821 [DEBUG][       Thread-251678][   transport.py][1871] : Switch to new keys ...
2025-06-13 10:33:10,821 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 10:33:10,822 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 10:33:10,823 [DEBUG][       Thread-251678][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 10:33:10,888 [DEBUG][       Thread-251678][   transport.py][1871] : userauth is OK
2025-06-13 10:33:10,888 [DEBUG][       Thread-251678][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 10:33:10,889 [DEBUG][       Thread-251678][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 10:33:10,889 [DEBUG][       Thread-251678][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 10:33:10,889 [DEBUG][       Thread-251678][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 10:33:10,912 [ INFO][       Thread-251678][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 10:33:10,913 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 10:33:10,913 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 10:33:11,108 [DEBUG][Thread-251680 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:33:11,927 [DEBUG][       Thread-251678][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 10:33:11,928 [DEBUG][       Thread-251678][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 10:33:11,983 [DEBUG][       Thread-251678][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 10:33:11,983 [DEBUG][       Thread-251678][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 10:33:11,996 [DEBUG][       Thread-251678][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 10:33:12,009 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 10:33:12,010 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 10:33:12,019 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 10:33:12,035 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 10:33:12,035 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 10:33:12,035 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 10:33:12,052 [DEBUG][       Thread-251678][   transport.py][1871] : EOF in transport thread
2025-06-13 10:33:19,543 [DEBUG][Thread-251681 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:33:20,125 [DEBUG][Thread-251682 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:33:20,586 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:33:20,587 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:33:22,044 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 10:33:22,044 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 10:33:22,044 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 10:33:22,045 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 10:33:22,526 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 10, 33, 7), 10.29, 48.66, 0.0, 18.84, 9.65, 0, 0, 0, 2, 0, 0),)
2025-06-13 10:33:22,526 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 10:33:07
2025-06-13 10:33:22,610 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 10:33:22,614 [DEBUG][       Thread-251683][   transport.py][1871] : starting thread (client mode): 0x863be110
2025-06-13 10:33:22,614 [DEBUG][       Thread-251683][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 10:33:22,633 [DEBUG][       Thread-251683][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 10:33:22,634 [ INFO][       Thread-251683][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 10:33:22,637 [DEBUG][       Thread-251683][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 10:33:22,637 [DEBUG][       Thread-251683][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 10:33:22,637 [DEBUG][       Thread-251683][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 10:33:22,637 [DEBUG][       Thread-251683][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:33:22,637 [DEBUG][       Thread-251683][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:33:22,637 [DEBUG][       Thread-251683][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:33:22,637 [DEBUG][       Thread-251683][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:33:22,637 [DEBUG][       Thread-251683][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 10:33:22,637 [DEBUG][       Thread-251683][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 10:33:22,637 [DEBUG][       Thread-251683][   transport.py][1871] : client lang: <none>
2025-06-13 10:33:22,637 [DEBUG][       Thread-251683][   transport.py][1871] : server lang: <none>
2025-06-13 10:33:22,637 [DEBUG][       Thread-251683][   transport.py][1871] : kex follows: False
2025-06-13 10:33:22,637 [DEBUG][       Thread-251683][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 10:33:22,637 [DEBUG][       Thread-251683][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 10:33:22,637 [DEBUG][       Thread-251683][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 10:33:22,637 [DEBUG][       Thread-251683][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 10:33:22,637 [DEBUG][       Thread-251683][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 10:33:22,637 [DEBUG][       Thread-251683][   transport.py][1871] : Compression: none
2025-06-13 10:33:22,637 [DEBUG][       Thread-251683][   transport.py][1871] : === End of kex handshake ===
2025-06-13 10:33:22,651 [DEBUG][       Thread-251683][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 10:33:22,651 [DEBUG][       Thread-251683][   transport.py][1871] : Switch to new keys ...
2025-06-13 10:33:22,652 [DEBUG][       Thread-251683][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 10:33:22,652 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 10:33:22,652 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 10:33:22,652 [DEBUG][       Thread-251683][   transport.py][1871] : userauth is OK
2025-06-13 10:33:22,676 [ INFO][       Thread-251683][   transport.py][1871] : Authentication (password) successful!
2025-06-13 10:33:22,677 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 10:33:23,293 [DEBUG][       Thread-251683][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 10:33:23,293 [DEBUG][       Thread-251683][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 10:33:23,336 [DEBUG][       Thread-251683][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 10:33:23,337 [DEBUG][       Thread-251683][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 10:33:23,339 [DEBUG][       Thread-251683][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 10:33:23,352 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 10:33:23,352 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 10:33:23,353 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 10:33:23,354 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 10:33:23,357 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 10:33:23,358 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 10:33:23,358 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 10:33:23,358 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 10:33:23,358 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.355843 -999.00   +9.40  17.65     52   +0.20 1 1 1 1 1   887    0 9.66 29.12 ----- 23.1 17.6 35.6 22.1 13.9 -28.7 12.6 -29.6 11.6 -27.7 12.8 -26.8
2025-06-13 10:33:23,358 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 10:33:23,358 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 10:33:23,358 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.355843
2025-06-13 10:33:23,359 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 10:33:23,359 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 10:33:23,359 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 10:33:23,359 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 10:33:23,359 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 10:33:23,359 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T10:33:07', tmtdew=10.29, humidity=48.66, cloud=0.0, wind=18.84, temperature=9.65, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T08:32:24.835', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 10:33:23,360 [DEBUG][       Thread-251683][   transport.py][1871] : EOF in transport thread
2025-06-13 10:33:23,432 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 10:33:23,441 [DEBUG][       Thread-251686][   transport.py][1871] : starting thread (client mode): 0x867ff0d0
2025-06-13 10:33:23,441 [DEBUG][       Thread-251686][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 10:33:23,456 [DEBUG][       Thread-251686][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 10:33:23,456 [ INFO][       Thread-251686][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 10:33:23,463 [DEBUG][       Thread-251686][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 10:33:23,463 [DEBUG][       Thread-251686][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 10:33:23,463 [DEBUG][       Thread-251686][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 10:33:23,463 [DEBUG][       Thread-251686][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:33:23,463 [DEBUG][       Thread-251686][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:33:23,463 [DEBUG][       Thread-251686][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:33:23,463 [DEBUG][       Thread-251686][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:33:23,463 [DEBUG][       Thread-251686][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 10:33:23,463 [DEBUG][       Thread-251686][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 10:33:23,463 [DEBUG][       Thread-251686][   transport.py][1871] : client lang: <none>
2025-06-13 10:33:23,463 [DEBUG][       Thread-251686][   transport.py][1871] : server lang: <none>
2025-06-13 10:33:23,463 [DEBUG][       Thread-251686][   transport.py][1871] : kex follows: False
2025-06-13 10:33:23,463 [DEBUG][       Thread-251686][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 10:33:23,463 [DEBUG][       Thread-251686][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 10:33:23,463 [DEBUG][       Thread-251686][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 10:33:23,463 [DEBUG][       Thread-251686][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 10:33:23,463 [DEBUG][       Thread-251686][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 10:33:23,463 [DEBUG][       Thread-251686][   transport.py][1871] : Compression: none
2025-06-13 10:33:23,463 [DEBUG][       Thread-251686][   transport.py][1871] : === End of kex handshake ===
2025-06-13 10:33:23,521 [DEBUG][       Thread-251686][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 10:33:23,521 [DEBUG][       Thread-251686][   transport.py][1871] : Switch to new keys ...
2025-06-13 10:33:23,521 [DEBUG][       Thread-251686][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 10:33:23,521 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 10:33:23,521 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 10:33:23,585 [DEBUG][       Thread-251686][   transport.py][1871] : userauth is OK
2025-06-13 10:33:23,585 [DEBUG][       Thread-251686][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 10:33:23,585 [DEBUG][       Thread-251686][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 10:33:23,585 [DEBUG][       Thread-251686][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 10:33:23,585 [DEBUG][       Thread-251686][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 10:33:23,602 [ INFO][       Thread-251686][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 10:33:23,602 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 10:33:23,602 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 10:33:24,615 [DEBUG][       Thread-251686][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 10:33:24,616 [DEBUG][       Thread-251686][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 10:33:24,664 [DEBUG][       Thread-251686][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 10:33:24,664 [DEBUG][       Thread-251686][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 10:33:24,673 [DEBUG][       Thread-251686][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 10:33:24,682 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 10:33:24,682 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 10:33:24,691 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 10:33:24,700 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 10:33:24,701 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 10:33:24,701 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 10:33:24,711 [DEBUG][       Thread-251686][   transport.py][1871] : EOF in transport thread
2025-06-13 10:33:27,256 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:33:27,257 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:33:29,143 [DEBUG][Thread-251688 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:33:34,712 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 10:33:34,712 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 10:33:34,712 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 10:33:34,715 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 10:33:35,172 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 10, 33, 7), 10.29, 48.66, 0.0, 18.84, 9.65, 0, 0, 0, 2, 0, 0),)
2025-06-13 10:33:35,172 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 10:33:07
2025-06-13 10:33:35,253 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 10:33:35,259 [DEBUG][       Thread-251689][   transport.py][1871] : starting thread (client mode): 0x863bce50
2025-06-13 10:33:35,259 [DEBUG][       Thread-251689][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 10:33:35,280 [DEBUG][       Thread-251689][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 10:33:35,280 [ INFO][       Thread-251689][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 10:33:35,283 [DEBUG][       Thread-251689][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 10:33:35,283 [DEBUG][       Thread-251689][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 10:33:35,283 [DEBUG][       Thread-251689][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 10:33:35,284 [DEBUG][       Thread-251689][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:33:35,284 [DEBUG][       Thread-251689][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:33:35,284 [DEBUG][       Thread-251689][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:33:35,284 [DEBUG][       Thread-251689][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:33:35,284 [DEBUG][       Thread-251689][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 10:33:35,284 [DEBUG][       Thread-251689][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 10:33:35,284 [DEBUG][       Thread-251689][   transport.py][1871] : client lang: <none>
2025-06-13 10:33:35,284 [DEBUG][       Thread-251689][   transport.py][1871] : server lang: <none>
2025-06-13 10:33:35,284 [DEBUG][       Thread-251689][   transport.py][1871] : kex follows: False
2025-06-13 10:33:35,284 [DEBUG][       Thread-251689][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 10:33:35,284 [DEBUG][       Thread-251689][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 10:33:35,284 [DEBUG][       Thread-251689][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 10:33:35,284 [DEBUG][       Thread-251689][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 10:33:35,284 [DEBUG][       Thread-251689][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 10:33:35,284 [DEBUG][       Thread-251689][   transport.py][1871] : Compression: none
2025-06-13 10:33:35,284 [DEBUG][       Thread-251689][   transport.py][1871] : === End of kex handshake ===
2025-06-13 10:33:35,305 [DEBUG][       Thread-251689][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 10:33:35,305 [DEBUG][       Thread-251689][   transport.py][1871] : Switch to new keys ...
2025-06-13 10:33:35,306 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 10:33:35,306 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 10:33:35,306 [DEBUG][       Thread-251689][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 10:33:35,307 [DEBUG][       Thread-251689][   transport.py][1871] : userauth is OK
2025-06-13 10:33:35,332 [ INFO][       Thread-251689][   transport.py][1871] : Authentication (password) successful!
2025-06-13 10:33:35,333 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 10:33:35,961 [DEBUG][       Thread-251689][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 10:33:35,962 [DEBUG][       Thread-251689][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 10:33:36,005 [DEBUG][       Thread-251689][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 10:33:36,005 [DEBUG][       Thread-251689][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 10:33:36,008 [DEBUG][       Thread-251689][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 10:33:36,021 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 10:33:36,022 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 10:33:36,023 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 10:33:36,025 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 10:33:36,030 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 10:33:36,032 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 10:33:36,032 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 10:33:36,033 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 10:33:36,033 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.356190 -999.00   +9.40  17.54     52   +0.20 1 1 1 1 1   887    0 9.66 28.87 ----- 19.3 17.5 47.6 27.8 14.0 -28.1 12.6 -29.9 11.6 -28.2 12.8 -26.6
2025-06-13 10:33:36,033 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 10:33:36,033 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 10:33:36,033 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.356190
2025-06-13 10:33:36,034 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 10:33:36,034 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 10:33:36,034 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 10:33:36,034 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 10:33:36,034 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 10:33:36,035 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T10:33:07', tmtdew=10.29, humidity=48.66, cloud=0.0, wind=18.84, temperature=9.65, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T08:32:54.816', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 10:33:36,035 [DEBUG][       Thread-251689][   transport.py][1871] : EOF in transport thread
2025-06-13 10:33:36,118 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 10:33:36,128 [DEBUG][       Thread-251692][   transport.py][1871] : starting thread (client mode): 0x867b7d30
2025-06-13 10:33:36,128 [DEBUG][       Thread-251692][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 10:33:36,143 [DEBUG][       Thread-251692][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 10:33:36,143 [ INFO][       Thread-251692][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 10:33:36,151 [DEBUG][       Thread-251692][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 10:33:36,151 [DEBUG][       Thread-251692][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 10:33:36,151 [DEBUG][       Thread-251692][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 10:33:36,151 [DEBUG][       Thread-251692][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:33:36,151 [DEBUG][       Thread-251692][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:33:36,151 [DEBUG][       Thread-251692][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:33:36,151 [DEBUG][       Thread-251692][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:33:36,151 [DEBUG][       Thread-251692][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 10:33:36,151 [DEBUG][       Thread-251692][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 10:33:36,151 [DEBUG][       Thread-251692][   transport.py][1871] : client lang: <none>
2025-06-13 10:33:36,151 [DEBUG][       Thread-251692][   transport.py][1871] : server lang: <none>
2025-06-13 10:33:36,151 [DEBUG][       Thread-251692][   transport.py][1871] : kex follows: False
2025-06-13 10:33:36,151 [DEBUG][       Thread-251692][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 10:33:36,151 [DEBUG][       Thread-251692][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 10:33:36,151 [DEBUG][       Thread-251692][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 10:33:36,151 [DEBUG][       Thread-251692][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 10:33:36,152 [DEBUG][       Thread-251692][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 10:33:36,152 [DEBUG][       Thread-251692][   transport.py][1871] : Compression: none
2025-06-13 10:33:36,152 [DEBUG][       Thread-251692][   transport.py][1871] : === End of kex handshake ===
2025-06-13 10:33:36,207 [DEBUG][       Thread-251692][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 10:33:36,207 [DEBUG][       Thread-251692][   transport.py][1871] : Switch to new keys ...
2025-06-13 10:33:36,208 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 10:33:36,208 [DEBUG][       Thread-251692][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 10:33:36,209 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 10:33:36,271 [DEBUG][       Thread-251692][   transport.py][1871] : userauth is OK
2025-06-13 10:33:36,271 [DEBUG][       Thread-251692][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 10:33:36,271 [DEBUG][       Thread-251692][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 10:33:36,271 [DEBUG][       Thread-251692][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 10:33:36,271 [DEBUG][       Thread-251692][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 10:33:36,291 [ INFO][       Thread-251692][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 10:33:36,292 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 10:33:36,292 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 10:33:37,309 [DEBUG][       Thread-251692][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 10:33:37,310 [DEBUG][       Thread-251692][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 10:33:37,359 [DEBUG][       Thread-251692][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 10:33:37,360 [DEBUG][       Thread-251692][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 10:33:37,368 [DEBUG][       Thread-251692][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 10:33:37,377 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 10:33:37,377 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 10:33:37,385 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 10:33:37,394 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 10:33:37,394 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 10:33:37,394 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 10:33:37,401 [DEBUG][       Thread-251692][   transport.py][1871] : EOF in transport thread
2025-06-13 10:33:38,173 [DEBUG][Thread-251694 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:33:47,191 [DEBUG][Thread-251695 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:33:47,404 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 10:33:47,404 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 10:33:47,404 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 10:33:47,406 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 10:33:47,888 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 10, 33, 39), 10.41, 48.24, 0.0, 16.73, 9.58, 0, 0, 0, 2, 0, 0),)
2025-06-13 10:33:47,888 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 10:33:39
2025-06-13 10:33:47,970 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 10:33:47,975 [DEBUG][       Thread-251696][   transport.py][1871] : starting thread (client mode): 0x86369cf0
2025-06-13 10:33:47,975 [DEBUG][       Thread-251696][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 10:33:47,995 [DEBUG][       Thread-251696][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 10:33:47,995 [ INFO][       Thread-251696][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 10:33:47,999 [DEBUG][       Thread-251696][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 10:33:47,999 [DEBUG][       Thread-251696][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 10:33:47,999 [DEBUG][       Thread-251696][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 10:33:47,999 [DEBUG][       Thread-251696][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:33:47,999 [DEBUG][       Thread-251696][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:33:47,999 [DEBUG][       Thread-251696][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:33:47,999 [DEBUG][       Thread-251696][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:33:47,999 [DEBUG][       Thread-251696][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 10:33:47,999 [DEBUG][       Thread-251696][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 10:33:47,999 [DEBUG][       Thread-251696][   transport.py][1871] : client lang: <none>
2025-06-13 10:33:47,999 [DEBUG][       Thread-251696][   transport.py][1871] : server lang: <none>
2025-06-13 10:33:47,999 [DEBUG][       Thread-251696][   transport.py][1871] : kex follows: False
2025-06-13 10:33:47,999 [DEBUG][       Thread-251696][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 10:33:47,999 [DEBUG][       Thread-251696][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 10:33:47,999 [DEBUG][       Thread-251696][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 10:33:47,999 [DEBUG][       Thread-251696][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 10:33:48,000 [DEBUG][       Thread-251696][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 10:33:48,000 [DEBUG][       Thread-251696][   transport.py][1871] : Compression: none
2025-06-13 10:33:48,000 [DEBUG][       Thread-251696][   transport.py][1871] : === End of kex handshake ===
2025-06-13 10:33:48,023 [DEBUG][       Thread-251696][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 10:33:48,024 [DEBUG][       Thread-251696][   transport.py][1871] : Switch to new keys ...
2025-06-13 10:33:48,024 [DEBUG][       Thread-251696][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 10:33:48,024 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 10:33:48,025 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 10:33:48,026 [DEBUG][       Thread-251696][   transport.py][1871] : userauth is OK
2025-06-13 10:33:48,050 [ INFO][       Thread-251696][   transport.py][1871] : Authentication (password) successful!
2025-06-13 10:33:48,051 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 10:33:48,694 [DEBUG][       Thread-251696][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 10:33:48,694 [DEBUG][       Thread-251696][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 10:33:48,737 [DEBUG][       Thread-251696][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 10:33:48,737 [DEBUG][       Thread-251696][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 10:33:48,739 [DEBUG][       Thread-251696][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 10:33:48,753 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 10:33:48,753 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 10:33:48,755 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 10:33:48,756 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 10:33:48,761 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 10:33:48,763 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 10:33:48,763 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 10:33:48,764 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 10:33:48,764 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.356190 -999.00   +9.40  17.54     52   +0.20 1 1 1 1 1   887    0 9.66 28.87 ----- 19.3 17.5 47.6 27.8 14.0 -28.1 12.6 -29.9 11.6 -28.2 12.8 -26.6
2025-06-13 10:33:48,764 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 10:33:48,764 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 10:33:48,764 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.356190
2025-06-13 10:33:48,764 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 10:33:48,765 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 10:33:48,765 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 10:33:48,765 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 10:33:48,765 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 10:33:48,765 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T10:33:39', tmtdew=10.41, humidity=48.24, cloud=0.0, wind=16.73, temperature=9.58, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T08:32:54.816', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 10:33:48,766 [DEBUG][       Thread-251696][   transport.py][1871] : EOF in transport thread
2025-06-13 10:33:48,850 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 10:33:48,861 [DEBUG][       Thread-251699][   transport.py][1871] : starting thread (client mode): 0x863bdb70
2025-06-13 10:33:48,861 [DEBUG][       Thread-251699][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 10:33:48,876 [DEBUG][       Thread-251699][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 10:33:48,876 [ INFO][       Thread-251699][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 10:33:48,883 [DEBUG][       Thread-251699][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 10:33:48,884 [DEBUG][       Thread-251699][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 10:33:48,884 [DEBUG][       Thread-251699][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 10:33:48,884 [DEBUG][       Thread-251699][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:33:48,884 [DEBUG][       Thread-251699][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:33:48,884 [DEBUG][       Thread-251699][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:33:48,884 [DEBUG][       Thread-251699][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:33:48,884 [DEBUG][       Thread-251699][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 10:33:48,884 [DEBUG][       Thread-251699][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 10:33:48,884 [DEBUG][       Thread-251699][   transport.py][1871] : client lang: <none>
2025-06-13 10:33:48,884 [DEBUG][       Thread-251699][   transport.py][1871] : server lang: <none>
2025-06-13 10:33:48,884 [DEBUG][       Thread-251699][   transport.py][1871] : kex follows: False
2025-06-13 10:33:48,884 [DEBUG][       Thread-251699][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 10:33:48,884 [DEBUG][       Thread-251699][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 10:33:48,884 [DEBUG][       Thread-251699][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 10:33:48,884 [DEBUG][       Thread-251699][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 10:33:48,884 [DEBUG][       Thread-251699][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 10:33:48,884 [DEBUG][       Thread-251699][   transport.py][1871] : Compression: none
2025-06-13 10:33:48,884 [DEBUG][       Thread-251699][   transport.py][1871] : === End of kex handshake ===
2025-06-13 10:33:48,939 [DEBUG][       Thread-251699][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 10:33:48,939 [DEBUG][       Thread-251699][   transport.py][1871] : Switch to new keys ...
2025-06-13 10:33:48,940 [DEBUG][       Thread-251699][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 10:33:48,940 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 10:33:48,941 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 10:33:48,995 [DEBUG][       Thread-251699][   transport.py][1871] : userauth is OK
2025-06-13 10:33:48,996 [DEBUG][       Thread-251699][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 10:33:48,996 [DEBUG][       Thread-251699][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 10:33:48,996 [DEBUG][       Thread-251699][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 10:33:48,996 [DEBUG][       Thread-251699][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 10:33:49,014 [ INFO][       Thread-251699][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 10:33:49,015 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 10:33:49,015 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 10:33:50,078 [DEBUG][       Thread-251699][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 10:33:50,078 [DEBUG][       Thread-251699][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 10:33:50,128 [DEBUG][       Thread-251699][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 10:33:50,128 [DEBUG][       Thread-251699][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 10:33:50,137 [DEBUG][       Thread-251699][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 10:33:50,146 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 10:33:50,146 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 10:33:50,156 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 10:33:50,170 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 10:33:50,170 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 10:33:50,171 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 10:33:50,180 [DEBUG][       Thread-251699][   transport.py][1871] : EOF in transport thread
2025-06-13 10:33:56,209 [DEBUG][Thread-251701 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:34:00,180 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 10:34:00,180 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 10:34:00,180 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 10:34:00,181 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 10:34:00,645 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 10, 33, 39), 10.41, 48.24, 0.0, 16.73, 9.58, 0, 0, 0, 2, 0, 0),)
2025-06-13 10:34:00,645 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 10:33:39
2025-06-13 10:34:00,731 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 10:34:00,735 [DEBUG][       Thread-251702][   transport.py][1871] : starting thread (client mode): 0x863be020
2025-06-13 10:34:00,735 [DEBUG][       Thread-251702][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 10:34:00,756 [DEBUG][       Thread-251702][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 10:34:00,756 [ INFO][       Thread-251702][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 10:34:00,759 [DEBUG][       Thread-251702][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 10:34:00,759 [DEBUG][       Thread-251702][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 10:34:00,759 [DEBUG][       Thread-251702][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 10:34:00,759 [DEBUG][       Thread-251702][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:34:00,759 [DEBUG][       Thread-251702][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:34:00,759 [DEBUG][       Thread-251702][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:34:00,759 [DEBUG][       Thread-251702][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:34:00,759 [DEBUG][       Thread-251702][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 10:34:00,759 [DEBUG][       Thread-251702][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 10:34:00,759 [DEBUG][       Thread-251702][   transport.py][1871] : client lang: <none>
2025-06-13 10:34:00,759 [DEBUG][       Thread-251702][   transport.py][1871] : server lang: <none>
2025-06-13 10:34:00,759 [DEBUG][       Thread-251702][   transport.py][1871] : kex follows: False
2025-06-13 10:34:00,759 [DEBUG][       Thread-251702][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 10:34:00,759 [DEBUG][       Thread-251702][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 10:34:00,759 [DEBUG][       Thread-251702][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 10:34:00,760 [DEBUG][       Thread-251702][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 10:34:00,760 [DEBUG][       Thread-251702][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 10:34:00,760 [DEBUG][       Thread-251702][   transport.py][1871] : Compression: none
2025-06-13 10:34:00,760 [DEBUG][       Thread-251702][   transport.py][1871] : === End of kex handshake ===
2025-06-13 10:34:00,774 [DEBUG][       Thread-251702][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 10:34:00,774 [DEBUG][       Thread-251702][   transport.py][1871] : Switch to new keys ...
2025-06-13 10:34:00,775 [DEBUG][       Thread-251702][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 10:34:00,775 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 10:34:00,775 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 10:34:00,775 [DEBUG][       Thread-251702][   transport.py][1871] : userauth is OK
2025-06-13 10:34:00,788 [ INFO][       Thread-251702][   transport.py][1871] : Authentication (password) successful!
2025-06-13 10:34:00,788 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 10:34:01,353 [DEBUG][       Thread-251702][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 10:34:01,353 [DEBUG][       Thread-251702][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 10:34:01,396 [DEBUG][       Thread-251702][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 10:34:01,396 [DEBUG][       Thread-251702][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 10:34:01,399 [DEBUG][       Thread-251702][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 10:34:01,412 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 10:34:01,412 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 10:34:01,413 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 10:34:01,414 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 10:34:01,417 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 10:34:01,418 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 10:34:01,418 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 10:34:01,418 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 10:34:01,418 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.356190 -999.00   +9.40  17.54     52   +0.20 1 1 1 1 1   887    0 9.66 28.87 ----- 19.3 17.5 47.6 27.8 14.0 -28.1 12.6 -29.9 11.6 -28.2 12.8 -26.6
2025-06-13 10:34:01,418 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 10:34:01,418 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 10:34:01,418 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.356190
2025-06-13 10:34:01,418 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 10:34:01,418 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 10:34:01,418 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 10:34:01,418 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 10:34:01,418 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 10:34:01,418 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T10:33:39', tmtdew=10.41, humidity=48.24, cloud=0.0, wind=16.73, temperature=9.58, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T08:32:54.816', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 10:34:01,420 [DEBUG][       Thread-251702][   transport.py][1871] : EOF in transport thread
2025-06-13 10:34:01,492 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 10:34:01,501 [DEBUG][       Thread-251705][   transport.py][1871] : starting thread (client mode): 0x863c8be0
2025-06-13 10:34:01,501 [DEBUG][       Thread-251705][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 10:34:01,517 [DEBUG][       Thread-251705][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 10:34:01,517 [ INFO][       Thread-251705][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 10:34:01,524 [DEBUG][       Thread-251705][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 10:34:01,524 [DEBUG][       Thread-251705][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 10:34:01,524 [DEBUG][       Thread-251705][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 10:34:01,524 [DEBUG][       Thread-251705][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:34:01,524 [DEBUG][       Thread-251705][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:34:01,524 [DEBUG][       Thread-251705][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:34:01,524 [DEBUG][       Thread-251705][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:34:01,524 [DEBUG][       Thread-251705][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 10:34:01,524 [DEBUG][       Thread-251705][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 10:34:01,524 [DEBUG][       Thread-251705][   transport.py][1871] : client lang: <none>
2025-06-13 10:34:01,524 [DEBUG][       Thread-251705][   transport.py][1871] : server lang: <none>
2025-06-13 10:34:01,524 [DEBUG][       Thread-251705][   transport.py][1871] : kex follows: False
2025-06-13 10:34:01,524 [DEBUG][       Thread-251705][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 10:34:01,524 [DEBUG][       Thread-251705][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 10:34:01,524 [DEBUG][       Thread-251705][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 10:34:01,524 [DEBUG][       Thread-251705][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 10:34:01,524 [DEBUG][       Thread-251705][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 10:34:01,524 [DEBUG][       Thread-251705][   transport.py][1871] : Compression: none
2025-06-13 10:34:01,524 [DEBUG][       Thread-251705][   transport.py][1871] : === End of kex handshake ===
2025-06-13 10:34:01,582 [DEBUG][       Thread-251705][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 10:34:01,583 [DEBUG][       Thread-251705][   transport.py][1871] : Switch to new keys ...
2025-06-13 10:34:01,583 [DEBUG][       Thread-251705][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 10:34:01,583 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 10:34:01,583 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 10:34:01,639 [DEBUG][       Thread-251705][   transport.py][1871] : userauth is OK
2025-06-13 10:34:01,639 [DEBUG][       Thread-251705][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 10:34:01,639 [DEBUG][       Thread-251705][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 10:34:01,639 [DEBUG][       Thread-251705][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 10:34:01,639 [DEBUG][       Thread-251705][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 10:34:01,653 [ INFO][       Thread-251705][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 10:34:01,654 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 10:34:01,654 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 10:34:02,692 [DEBUG][       Thread-251705][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 10:34:02,692 [DEBUG][       Thread-251705][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 10:34:02,744 [DEBUG][       Thread-251705][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 10:34:02,744 [DEBUG][       Thread-251705][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 10:34:02,755 [DEBUG][       Thread-251705][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 10:34:02,767 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 10:34:02,767 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 10:34:02,777 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 10:34:02,787 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 10:34:02,787 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 10:34:02,787 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 10:34:02,799 [DEBUG][       Thread-251705][   transport.py][1871] : EOF in transport thread
2025-06-13 10:34:05,241 [DEBUG][Thread-251707 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:34:06,625 [DEBUG][Thread-251708 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:34:12,798 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 10:34:12,798 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 10:34:12,798 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 10:34:12,799 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 10:34:13,297 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 10, 33, 39), 10.41, 48.24, 0.0, 16.73, 9.58, 0, 0, 0, 2, 0, 0),)
2025-06-13 10:34:13,297 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 10:33:39
2025-06-13 10:34:13,384 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 10:34:13,391 [DEBUG][       Thread-251709][   transport.py][1871] : starting thread (client mode): 0x867b64a0
2025-06-13 10:34:13,391 [DEBUG][       Thread-251709][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 10:34:13,411 [DEBUG][       Thread-251709][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 10:34:13,411 [ INFO][       Thread-251709][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 10:34:13,415 [DEBUG][       Thread-251709][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 10:34:13,415 [DEBUG][       Thread-251709][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 10:34:13,415 [DEBUG][       Thread-251709][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 10:34:13,415 [DEBUG][       Thread-251709][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:34:13,415 [DEBUG][       Thread-251709][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:34:13,415 [DEBUG][       Thread-251709][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:34:13,415 [DEBUG][       Thread-251709][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:34:13,415 [DEBUG][       Thread-251709][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 10:34:13,415 [DEBUG][       Thread-251709][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 10:34:13,415 [DEBUG][       Thread-251709][   transport.py][1871] : client lang: <none>
2025-06-13 10:34:13,415 [DEBUG][       Thread-251709][   transport.py][1871] : server lang: <none>
2025-06-13 10:34:13,415 [DEBUG][       Thread-251709][   transport.py][1871] : kex follows: False
2025-06-13 10:34:13,415 [DEBUG][       Thread-251709][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 10:34:13,415 [DEBUG][       Thread-251709][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 10:34:13,415 [DEBUG][       Thread-251709][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 10:34:13,415 [DEBUG][       Thread-251709][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 10:34:13,415 [DEBUG][       Thread-251709][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 10:34:13,415 [DEBUG][       Thread-251709][   transport.py][1871] : Compression: none
2025-06-13 10:34:13,415 [DEBUG][       Thread-251709][   transport.py][1871] : === End of kex handshake ===
2025-06-13 10:34:13,430 [DEBUG][       Thread-251709][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 10:34:13,430 [DEBUG][       Thread-251709][   transport.py][1871] : Switch to new keys ...
2025-06-13 10:34:13,431 [DEBUG][       Thread-251709][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 10:34:13,431 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 10:34:13,431 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 10:34:13,431 [DEBUG][       Thread-251709][   transport.py][1871] : userauth is OK
2025-06-13 10:34:13,443 [ INFO][       Thread-251709][   transport.py][1871] : Authentication (password) successful!
2025-06-13 10:34:13,443 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 10:34:14,077 [DEBUG][       Thread-251709][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 10:34:14,077 [DEBUG][       Thread-251709][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 10:34:14,121 [DEBUG][       Thread-251709][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 10:34:14,121 [DEBUG][       Thread-251709][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 10:34:14,124 [DEBUG][       Thread-251709][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 10:34:14,137 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 10:34:14,138 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 10:34:14,139 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 10:34:14,141 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 10:34:14,145 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 10:34:14,147 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 10:34:14,147 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 10:34:14,148 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 10:34:14,148 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.356884 -999.00   +9.30  20.12     53   +0.20 1 1 1 1 1   887    0 9.70 28.88 ----- 20.4 20.1 46.2 24.4 14.0 -28.4 12.6 -30.1 11.6 -28.2 12.8 -26.8
2025-06-13 10:34:14,148 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 10:34:14,149 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 10:34:14,149 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.356884
2025-06-13 10:34:14,149 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 10:34:14,149 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 10:34:14,150 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 10:34:14,150 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 10:34:14,150 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 10:34:14,150 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T10:33:39', tmtdew=10.41, humidity=48.24, cloud=0.0, wind=16.73, temperature=9.58, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T08:33:54.778', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 10:34:14,150 [DEBUG][       Thread-251709][   transport.py][1871] : EOF in transport thread
2025-06-13 10:34:14,237 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 10:34:14,248 [DEBUG][       Thread-251712][   transport.py][1871] : starting thread (client mode): 0x863bd8d0
2025-06-13 10:34:14,248 [DEBUG][       Thread-251712][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 10:34:14,258 [DEBUG][Thread-251713 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:34:14,263 [DEBUG][       Thread-251712][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 10:34:14,264 [ INFO][       Thread-251712][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 10:34:14,271 [DEBUG][       Thread-251712][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 10:34:14,271 [DEBUG][       Thread-251712][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 10:34:14,271 [DEBUG][       Thread-251712][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 10:34:14,271 [DEBUG][       Thread-251712][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:34:14,271 [DEBUG][       Thread-251712][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:34:14,271 [DEBUG][       Thread-251712][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:34:14,271 [DEBUG][       Thread-251712][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:34:14,271 [DEBUG][       Thread-251712][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 10:34:14,271 [DEBUG][       Thread-251712][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 10:34:14,271 [DEBUG][       Thread-251712][   transport.py][1871] : client lang: <none>
2025-06-13 10:34:14,271 [DEBUG][       Thread-251712][   transport.py][1871] : server lang: <none>
2025-06-13 10:34:14,271 [DEBUG][       Thread-251712][   transport.py][1871] : kex follows: False
2025-06-13 10:34:14,271 [DEBUG][       Thread-251712][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 10:34:14,272 [DEBUG][       Thread-251712][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 10:34:14,272 [DEBUG][       Thread-251712][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 10:34:14,272 [DEBUG][       Thread-251712][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 10:34:14,272 [DEBUG][       Thread-251712][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 10:34:14,272 [DEBUG][       Thread-251712][   transport.py][1871] : Compression: none
2025-06-13 10:34:14,272 [DEBUG][       Thread-251712][   transport.py][1871] : === End of kex handshake ===
2025-06-13 10:34:14,332 [DEBUG][       Thread-251712][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 10:34:14,333 [DEBUG][       Thread-251712][   transport.py][1871] : Switch to new keys ...
2025-06-13 10:34:14,333 [DEBUG][       Thread-251712][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 10:34:14,334 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 10:34:14,334 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 10:34:14,395 [DEBUG][       Thread-251712][   transport.py][1871] : userauth is OK
2025-06-13 10:34:14,395 [DEBUG][       Thread-251712][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 10:34:14,395 [DEBUG][       Thread-251712][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 10:34:14,395 [DEBUG][       Thread-251712][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 10:34:14,395 [DEBUG][       Thread-251712][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 10:34:14,414 [ INFO][       Thread-251712][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 10:34:14,415 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 10:34:14,415 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 10:34:15,452 [DEBUG][       Thread-251712][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 10:34:15,452 [DEBUG][       Thread-251712][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 10:34:15,503 [DEBUG][       Thread-251712][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 10:34:15,504 [DEBUG][       Thread-251712][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 10:34:15,512 [DEBUG][       Thread-251712][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 10:34:15,521 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 10:34:15,521 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 10:34:15,530 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 10:34:15,538 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 10:34:15,539 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 10:34:15,539 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 10:34:15,547 [DEBUG][       Thread-251712][   transport.py][1871] : EOF in transport thread
2025-06-13 10:34:20,653 [DEBUG][Thread-251715 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:34:21,729 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:34:21,730 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:34:23,278 [DEBUG][Thread-251716 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:34:25,549 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 10:34:25,550 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 10:34:25,550 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 10:34:25,552 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 10:34:26,012 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 10, 34, 11), 10.35, 48.35, 0.0, 16.71, 9.68, 0, 0, 0, 2, 0, 0),)
2025-06-13 10:34:26,012 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 10:34:11
2025-06-13 10:34:26,094 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 10:34:26,098 [DEBUG][       Thread-251717][   transport.py][1871] : starting thread (client mode): 0x84206d10
2025-06-13 10:34:26,098 [DEBUG][       Thread-251717][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 10:34:26,118 [DEBUG][       Thread-251717][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 10:34:26,118 [ INFO][       Thread-251717][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 10:34:26,119 [DEBUG][       Thread-251717][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 10:34:26,119 [DEBUG][       Thread-251717][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 10:34:26,119 [DEBUG][       Thread-251717][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 10:34:26,119 [DEBUG][       Thread-251717][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:34:26,119 [DEBUG][       Thread-251717][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:34:26,120 [DEBUG][       Thread-251717][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:34:26,120 [DEBUG][       Thread-251717][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:34:26,120 [DEBUG][       Thread-251717][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 10:34:26,120 [DEBUG][       Thread-251717][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 10:34:26,120 [DEBUG][       Thread-251717][   transport.py][1871] : client lang: <none>
2025-06-13 10:34:26,120 [DEBUG][       Thread-251717][   transport.py][1871] : server lang: <none>
2025-06-13 10:34:26,120 [DEBUG][       Thread-251717][   transport.py][1871] : kex follows: False
2025-06-13 10:34:26,120 [DEBUG][       Thread-251717][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 10:34:26,120 [DEBUG][       Thread-251717][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 10:34:26,120 [DEBUG][       Thread-251717][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 10:34:26,120 [DEBUG][       Thread-251717][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 10:34:26,120 [DEBUG][       Thread-251717][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 10:34:26,120 [DEBUG][       Thread-251717][   transport.py][1871] : Compression: none
2025-06-13 10:34:26,120 [DEBUG][       Thread-251717][   transport.py][1871] : === End of kex handshake ===
2025-06-13 10:34:26,137 [DEBUG][       Thread-251717][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 10:34:26,137 [DEBUG][       Thread-251717][   transport.py][1871] : Switch to new keys ...
2025-06-13 10:34:26,138 [DEBUG][       Thread-251717][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 10:34:26,138 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 10:34:26,138 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 10:34:26,139 [DEBUG][       Thread-251717][   transport.py][1871] : userauth is OK
2025-06-13 10:34:26,164 [ INFO][       Thread-251717][   transport.py][1871] : Authentication (password) successful!
2025-06-13 10:34:26,164 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 10:34:26,727 [DEBUG][       Thread-251717][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 10:34:26,727 [DEBUG][       Thread-251717][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 10:34:26,769 [DEBUG][       Thread-251717][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 10:34:26,769 [DEBUG][       Thread-251717][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 10:34:26,772 [DEBUG][       Thread-251717][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 10:34:26,786 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 10:34:26,786 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 10:34:26,788 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 10:34:26,790 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 10:34:26,795 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 10:34:26,797 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 10:34:26,797 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 10:34:26,798 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 10:34:26,798 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.356884 -999.00   +9.30  20.12     53   +0.20 1 1 1 1 1   887    0 9.70 28.88 ----- 20.4 20.1 46.2 24.4 14.0 -28.4 12.6 -30.1 11.6 -28.2 12.8 -26.8
2025-06-13 10:34:26,798 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 10:34:26,798 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 10:34:26,798 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.356884
2025-06-13 10:34:26,798 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 10:34:26,799 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 10:34:26,799 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 10:34:26,799 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 10:34:26,799 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 10:34:26,799 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T10:34:11', tmtdew=10.35, humidity=48.35, cloud=0.0, wind=16.71, temperature=9.68, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T08:33:54.778', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 10:34:26,799 [DEBUG][       Thread-251717][   transport.py][1871] : EOF in transport thread
2025-06-13 10:34:26,883 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 10:34:26,893 [DEBUG][       Thread-251720][   transport.py][1871] : starting thread (client mode): 0x8636bdf0
2025-06-13 10:34:26,893 [DEBUG][       Thread-251720][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 10:34:26,908 [DEBUG][       Thread-251720][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 10:34:26,908 [ INFO][       Thread-251720][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 10:34:26,915 [DEBUG][       Thread-251720][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 10:34:26,916 [DEBUG][       Thread-251720][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 10:34:26,916 [DEBUG][       Thread-251720][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 10:34:26,916 [DEBUG][       Thread-251720][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:34:26,916 [DEBUG][       Thread-251720][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:34:26,916 [DEBUG][       Thread-251720][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:34:26,916 [DEBUG][       Thread-251720][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:34:26,916 [DEBUG][       Thread-251720][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 10:34:26,916 [DEBUG][       Thread-251720][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 10:34:26,916 [DEBUG][       Thread-251720][   transport.py][1871] : client lang: <none>
2025-06-13 10:34:26,916 [DEBUG][       Thread-251720][   transport.py][1871] : server lang: <none>
2025-06-13 10:34:26,916 [DEBUG][       Thread-251720][   transport.py][1871] : kex follows: False
2025-06-13 10:34:26,916 [DEBUG][       Thread-251720][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 10:34:26,916 [DEBUG][       Thread-251720][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 10:34:26,916 [DEBUG][       Thread-251720][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 10:34:26,916 [DEBUG][       Thread-251720][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 10:34:26,916 [DEBUG][       Thread-251720][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 10:34:26,916 [DEBUG][       Thread-251720][   transport.py][1871] : Compression: none
2025-06-13 10:34:26,916 [DEBUG][       Thread-251720][   transport.py][1871] : === End of kex handshake ===
2025-06-13 10:34:26,971 [DEBUG][       Thread-251720][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 10:34:26,972 [DEBUG][       Thread-251720][   transport.py][1871] : Switch to new keys ...
2025-06-13 10:34:26,972 [DEBUG][       Thread-251720][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 10:34:26,973 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 10:34:26,973 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 10:34:27,028 [DEBUG][       Thread-251720][   transport.py][1871] : userauth is OK
2025-06-13 10:34:27,028 [DEBUG][       Thread-251720][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 10:34:27,028 [DEBUG][       Thread-251720][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 10:34:27,028 [DEBUG][       Thread-251720][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 10:34:27,028 [DEBUG][       Thread-251720][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 10:34:27,047 [ INFO][       Thread-251720][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 10:34:27,047 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 10:34:27,047 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 10:34:27,395 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:34:27,396 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:34:28,071 [DEBUG][       Thread-251720][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 10:34:28,072 [DEBUG][       Thread-251720][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 10:34:28,123 [DEBUG][       Thread-251720][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 10:34:28,123 [DEBUG][       Thread-251720][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 10:34:28,132 [DEBUG][       Thread-251720][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 10:34:28,142 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 10:34:28,142 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 10:34:28,154 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 10:34:28,164 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 10:34:28,164 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 10:34:28,164 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 10:34:28,172 [DEBUG][       Thread-251720][   transport.py][1871] : EOF in transport thread
2025-06-13 10:34:32,297 [DEBUG][Thread-251722 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:34:38,174 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 10:34:38,175 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 10:34:38,175 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 10:34:38,175 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 10:34:38,658 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 10, 34, 11), 10.35, 48.35, 0.0, 16.71, 9.68, 0, 0, 0, 2, 0, 0),)
2025-06-13 10:34:38,658 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 10:34:11
2025-06-13 10:34:38,744 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 10:34:38,750 [DEBUG][       Thread-251723][   transport.py][1871] : starting thread (client mode): 0x84206bc0
2025-06-13 10:34:38,750 [DEBUG][       Thread-251723][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 10:34:38,770 [DEBUG][       Thread-251723][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 10:34:38,770 [ INFO][       Thread-251723][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 10:34:38,772 [DEBUG][       Thread-251723][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 10:34:38,772 [DEBUG][       Thread-251723][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 10:34:38,772 [DEBUG][       Thread-251723][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 10:34:38,772 [DEBUG][       Thread-251723][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:34:38,772 [DEBUG][       Thread-251723][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:34:38,772 [DEBUG][       Thread-251723][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:34:38,772 [DEBUG][       Thread-251723][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:34:38,772 [DEBUG][       Thread-251723][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 10:34:38,772 [DEBUG][       Thread-251723][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 10:34:38,772 [DEBUG][       Thread-251723][   transport.py][1871] : client lang: <none>
2025-06-13 10:34:38,772 [DEBUG][       Thread-251723][   transport.py][1871] : server lang: <none>
2025-06-13 10:34:38,772 [DEBUG][       Thread-251723][   transport.py][1871] : kex follows: False
2025-06-13 10:34:38,772 [DEBUG][       Thread-251723][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 10:34:38,772 [DEBUG][       Thread-251723][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 10:34:38,772 [DEBUG][       Thread-251723][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 10:34:38,772 [DEBUG][       Thread-251723][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 10:34:38,772 [DEBUG][       Thread-251723][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 10:34:38,772 [DEBUG][       Thread-251723][   transport.py][1871] : Compression: none
2025-06-13 10:34:38,772 [DEBUG][       Thread-251723][   transport.py][1871] : === End of kex handshake ===
2025-06-13 10:34:38,783 [DEBUG][       Thread-251723][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 10:34:38,783 [DEBUG][       Thread-251723][   transport.py][1871] : Switch to new keys ...
2025-06-13 10:34:38,783 [DEBUG][       Thread-251723][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 10:34:38,783 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 10:34:38,783 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 10:34:38,784 [DEBUG][       Thread-251723][   transport.py][1871] : userauth is OK
2025-06-13 10:34:38,797 [ INFO][       Thread-251723][   transport.py][1871] : Authentication (password) successful!
2025-06-13 10:34:38,797 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 10:34:39,407 [DEBUG][       Thread-251723][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 10:34:39,407 [DEBUG][       Thread-251723][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 10:34:39,448 [DEBUG][       Thread-251723][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 10:34:39,449 [DEBUG][       Thread-251723][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 10:34:39,451 [DEBUG][       Thread-251723][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 10:34:39,462 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 10:34:39,462 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 10:34:39,463 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 10:34:39,464 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 10:34:39,467 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 10:34:39,468 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 10:34:39,468 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 10:34:39,468 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 10:34:39,468 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.357231 -999.00   +9.30  15.85     53   +0.20 1 1 1 1 1   887    0 9.57 28.39 ----- 22.5 15.8 50.6 21.6 14.0 -28.1 12.6 -30.2 11.6 -28.9 12.8 -26.8
2025-06-13 10:34:39,468 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 10:34:39,468 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 10:34:39,468 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.357231
2025-06-13 10:34:39,468 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 10:34:39,469 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 10:34:39,469 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 10:34:39,469 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 10:34:39,469 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 10:34:39,469 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T10:34:11', tmtdew=10.35, humidity=48.35, cloud=0.0, wind=16.71, temperature=9.68, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T08:34:24.758', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 10:34:39,469 [DEBUG][       Thread-251723][   transport.py][1871] : EOF in transport thread
2025-06-13 10:34:39,542 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 10:34:39,557 [DEBUG][       Thread-251726][   transport.py][1871] : starting thread (client mode): 0x867b6350
2025-06-13 10:34:39,557 [DEBUG][       Thread-251726][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 10:34:39,576 [DEBUG][       Thread-251726][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 10:34:39,576 [ INFO][       Thread-251726][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 10:34:39,588 [DEBUG][       Thread-251726][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 10:34:39,589 [DEBUG][       Thread-251726][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 10:34:39,589 [DEBUG][       Thread-251726][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 10:34:39,589 [DEBUG][       Thread-251726][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:34:39,589 [DEBUG][       Thread-251726][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:34:39,589 [DEBUG][       Thread-251726][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:34:39,589 [DEBUG][       Thread-251726][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:34:39,589 [DEBUG][       Thread-251726][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 10:34:39,589 [DEBUG][       Thread-251726][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 10:34:39,589 [DEBUG][       Thread-251726][   transport.py][1871] : client lang: <none>
2025-06-13 10:34:39,589 [DEBUG][       Thread-251726][   transport.py][1871] : server lang: <none>
2025-06-13 10:34:39,589 [DEBUG][       Thread-251726][   transport.py][1871] : kex follows: False
2025-06-13 10:34:39,589 [DEBUG][       Thread-251726][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 10:34:39,589 [DEBUG][       Thread-251726][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 10:34:39,589 [DEBUG][       Thread-251726][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 10:34:39,589 [DEBUG][       Thread-251726][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 10:34:39,589 [DEBUG][       Thread-251726][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 10:34:39,589 [DEBUG][       Thread-251726][   transport.py][1871] : Compression: none
2025-06-13 10:34:39,589 [DEBUG][       Thread-251726][   transport.py][1871] : === End of kex handshake ===
2025-06-13 10:34:39,646 [DEBUG][       Thread-251726][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 10:34:39,646 [DEBUG][       Thread-251726][   transport.py][1871] : Switch to new keys ...
2025-06-13 10:34:39,646 [DEBUG][       Thread-251726][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 10:34:39,646 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 10:34:39,646 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 10:34:39,703 [DEBUG][       Thread-251726][   transport.py][1871] : userauth is OK
2025-06-13 10:34:39,703 [DEBUG][       Thread-251726][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 10:34:39,704 [DEBUG][       Thread-251726][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 10:34:39,704 [DEBUG][       Thread-251726][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 10:34:39,704 [DEBUG][       Thread-251726][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 10:34:39,718 [ INFO][       Thread-251726][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 10:34:39,718 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 10:34:39,718 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 10:34:40,700 [DEBUG][       Thread-251726][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 10:34:40,700 [DEBUG][       Thread-251726][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 10:34:40,748 [DEBUG][       Thread-251726][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 10:34:40,748 [DEBUG][       Thread-251726][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 10:34:40,761 [DEBUG][       Thread-251726][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 10:34:40,773 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 10:34:40,773 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 10:34:40,781 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 10:34:40,789 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 10:34:40,789 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 10:34:40,789 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 10:34:40,797 [DEBUG][       Thread-251726][   transport.py][1871] : EOF in transport thread
2025-06-13 10:34:41,322 [DEBUG][Thread-251728 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:34:50,344 [DEBUG][Thread-251729 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:34:50,799 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 10:34:50,799 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 10:34:50,799 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 10:34:50,802 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 10:34:51,263 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 10, 34, 43), 10.4, 48.16, 0.0, 16.9, 9.63, 0, 0, 0, 2, 0, 0),)
2025-06-13 10:34:51,263 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 10:34:43
2025-06-13 10:34:51,345 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 10:34:51,351 [DEBUG][       Thread-251730][   transport.py][1871] : starting thread (client mode): 0x86369390
2025-06-13 10:34:51,352 [DEBUG][       Thread-251730][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 10:34:51,371 [DEBUG][       Thread-251730][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 10:34:51,371 [ INFO][       Thread-251730][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 10:34:51,375 [DEBUG][       Thread-251730][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 10:34:51,375 [DEBUG][       Thread-251730][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 10:34:51,375 [DEBUG][       Thread-251730][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 10:34:51,375 [DEBUG][       Thread-251730][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:34:51,375 [DEBUG][       Thread-251730][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:34:51,375 [DEBUG][       Thread-251730][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:34:51,375 [DEBUG][       Thread-251730][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:34:51,375 [DEBUG][       Thread-251730][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 10:34:51,375 [DEBUG][       Thread-251730][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 10:34:51,375 [DEBUG][       Thread-251730][   transport.py][1871] : client lang: <none>
2025-06-13 10:34:51,375 [DEBUG][       Thread-251730][   transport.py][1871] : server lang: <none>
2025-06-13 10:34:51,375 [DEBUG][       Thread-251730][   transport.py][1871] : kex follows: False
2025-06-13 10:34:51,375 [DEBUG][       Thread-251730][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 10:34:51,375 [DEBUG][       Thread-251730][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 10:34:51,375 [DEBUG][       Thread-251730][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 10:34:51,376 [DEBUG][       Thread-251730][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 10:34:51,376 [DEBUG][       Thread-251730][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 10:34:51,376 [DEBUG][       Thread-251730][   transport.py][1871] : Compression: none
2025-06-13 10:34:51,376 [DEBUG][       Thread-251730][   transport.py][1871] : === End of kex handshake ===
2025-06-13 10:34:51,392 [DEBUG][       Thread-251730][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 10:34:51,392 [DEBUG][       Thread-251730][   transport.py][1871] : Switch to new keys ...
2025-06-13 10:34:51,393 [DEBUG][       Thread-251730][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 10:34:51,393 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 10:34:51,393 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 10:34:51,394 [DEBUG][       Thread-251730][   transport.py][1871] : userauth is OK
2025-06-13 10:34:51,419 [ INFO][       Thread-251730][   transport.py][1871] : Authentication (password) successful!
2025-06-13 10:34:51,419 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 10:34:52,056 [DEBUG][       Thread-251730][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 10:34:52,056 [DEBUG][       Thread-251730][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 10:34:52,100 [DEBUG][       Thread-251730][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 10:34:52,100 [DEBUG][       Thread-251730][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 10:34:52,103 [DEBUG][       Thread-251730][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 10:34:52,114 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 10:34:52,114 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 10:34:52,116 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 10:34:52,117 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 10:34:52,120 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 10:34:52,121 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 10:34:52,121 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 10:34:52,121 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 10:34:52,121 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.357231 -999.00   +9.30  15.85     53   +0.20 1 1 1 1 1   887    0 9.57 28.39 ----- 22.5 15.8 50.6 21.6 14.0 -28.1 12.6 -30.2 11.6 -28.9 12.8 -26.8
2025-06-13 10:34:52,121 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 10:34:52,121 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 10:34:52,121 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.357231
2025-06-13 10:34:52,121 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 10:34:52,121 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 10:34:52,121 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 10:34:52,121 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 10:34:52,121 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 10:34:52,121 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T10:34:43', tmtdew=10.4, humidity=48.16, cloud=0.0, wind=16.9, temperature=9.63, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T08:34:24.758', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 10:34:52,122 [DEBUG][       Thread-251730][   transport.py][1871] : EOF in transport thread
2025-06-13 10:34:52,192 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 10:34:52,207 [DEBUG][       Thread-251733][   transport.py][1871] : starting thread (client mode): 0x863a5e70
2025-06-13 10:34:52,207 [DEBUG][       Thread-251733][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 10:34:52,223 [DEBUG][       Thread-251733][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 10:34:52,223 [ INFO][       Thread-251733][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 10:34:52,231 [DEBUG][       Thread-251733][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 10:34:52,231 [DEBUG][       Thread-251733][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 10:34:52,231 [DEBUG][       Thread-251733][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 10:34:52,231 [DEBUG][       Thread-251733][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:34:52,231 [DEBUG][       Thread-251733][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:34:52,231 [DEBUG][       Thread-251733][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:34:52,232 [DEBUG][       Thread-251733][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:34:52,232 [DEBUG][       Thread-251733][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 10:34:52,232 [DEBUG][       Thread-251733][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 10:34:52,232 [DEBUG][       Thread-251733][   transport.py][1871] : client lang: <none>
2025-06-13 10:34:52,232 [DEBUG][       Thread-251733][   transport.py][1871] : server lang: <none>
2025-06-13 10:34:52,232 [DEBUG][       Thread-251733][   transport.py][1871] : kex follows: False
2025-06-13 10:34:52,232 [DEBUG][       Thread-251733][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 10:34:52,232 [DEBUG][       Thread-251733][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 10:34:52,232 [DEBUG][       Thread-251733][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 10:34:52,232 [DEBUG][       Thread-251733][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 10:34:52,232 [DEBUG][       Thread-251733][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 10:34:52,232 [DEBUG][       Thread-251733][   transport.py][1871] : Compression: none
2025-06-13 10:34:52,232 [DEBUG][       Thread-251733][   transport.py][1871] : === End of kex handshake ===
2025-06-13 10:34:52,287 [DEBUG][       Thread-251733][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 10:34:52,288 [DEBUG][       Thread-251733][   transport.py][1871] : Switch to new keys ...
2025-06-13 10:34:52,288 [DEBUG][       Thread-251733][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 10:34:52,288 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 10:34:52,289 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 10:34:52,351 [DEBUG][       Thread-251733][   transport.py][1871] : userauth is OK
2025-06-13 10:34:52,351 [DEBUG][       Thread-251733][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 10:34:52,352 [DEBUG][       Thread-251733][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 10:34:52,352 [DEBUG][       Thread-251733][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 10:34:52,352 [DEBUG][       Thread-251733][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 10:34:52,372 [ INFO][       Thread-251733][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 10:34:52,373 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 10:34:52,373 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 10:34:53,406 [DEBUG][       Thread-251733][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 10:34:53,406 [DEBUG][       Thread-251733][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 10:34:53,458 [DEBUG][       Thread-251733][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 10:34:53,459 [DEBUG][       Thread-251733][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 10:34:53,468 [DEBUG][       Thread-251733][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 10:34:53,480 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 10:34:53,480 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 10:34:53,492 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 10:34:53,503 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 10:34:53,503 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 10:34:53,503 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 10:34:53,513 [DEBUG][       Thread-251733][   transport.py][1871] : EOF in transport thread
2025-06-13 10:34:59,365 [DEBUG][Thread-251735 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:35:03,512 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 10:35:03,513 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 10:35:03,513 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 10:35:03,515 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 10:35:03,972 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 10, 34, 43), 10.4, 48.16, 0.0, 16.9, 9.63, 0, 0, 0, 2, 0, 0),)
2025-06-13 10:35:03,972 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 10:34:43
2025-06-13 10:35:04,054 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 10:35:04,058 [DEBUG][       Thread-251736][   transport.py][1871] : starting thread (client mode): 0x84207970
2025-06-13 10:35:04,063 [DEBUG][       Thread-251736][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 10:35:04,078 [DEBUG][       Thread-251736][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 10:35:04,078 [ INFO][       Thread-251736][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 10:35:04,082 [DEBUG][       Thread-251736][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 10:35:04,082 [DEBUG][       Thread-251736][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 10:35:04,082 [DEBUG][       Thread-251736][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 10:35:04,082 [DEBUG][       Thread-251736][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:35:04,082 [DEBUG][       Thread-251736][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:35:04,082 [DEBUG][       Thread-251736][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:35:04,082 [DEBUG][       Thread-251736][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:35:04,082 [DEBUG][       Thread-251736][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 10:35:04,082 [DEBUG][       Thread-251736][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 10:35:04,082 [DEBUG][       Thread-251736][   transport.py][1871] : client lang: <none>
2025-06-13 10:35:04,082 [DEBUG][       Thread-251736][   transport.py][1871] : server lang: <none>
2025-06-13 10:35:04,082 [DEBUG][       Thread-251736][   transport.py][1871] : kex follows: False
2025-06-13 10:35:04,082 [DEBUG][       Thread-251736][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 10:35:04,082 [DEBUG][       Thread-251736][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 10:35:04,082 [DEBUG][       Thread-251736][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 10:35:04,082 [DEBUG][       Thread-251736][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 10:35:04,082 [DEBUG][       Thread-251736][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 10:35:04,082 [DEBUG][       Thread-251736][   transport.py][1871] : Compression: none
2025-06-13 10:35:04,082 [DEBUG][       Thread-251736][   transport.py][1871] : === End of kex handshake ===
2025-06-13 10:35:04,090 [DEBUG][       Thread-251736][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 10:35:04,090 [DEBUG][       Thread-251736][   transport.py][1871] : Switch to new keys ...
2025-06-13 10:35:04,091 [DEBUG][       Thread-251736][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 10:35:04,091 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 10:35:04,091 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 10:35:04,092 [DEBUG][       Thread-251736][   transport.py][1871] : userauth is OK
2025-06-13 10:35:04,105 [ INFO][       Thread-251736][   transport.py][1871] : Authentication (password) successful!
2025-06-13 10:35:04,105 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 10:35:06,678 [DEBUG][Thread-251738 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:35:08,399 [DEBUG][Thread-251739 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:35:12,279 [DEBUG][       Thread-251736][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 10:35:12,280 [DEBUG][       Thread-251736][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 10:35:12,325 [DEBUG][       Thread-251736][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 10:35:12,325 [DEBUG][       Thread-251736][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 10:35:12,328 [DEBUG][       Thread-251736][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 10:35:12,341 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 10:35:12,342 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 10:35:12,343 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 10:35:12,345 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 10:35:12,372 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 10:35:12,374 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 10:35:12,375 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 10:35:12,375 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 10:35:12,375 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.357231 -999.00   +9.30  15.85     53   +0.20 1 1 1 1 1   887    0 9.57 28.39 ----- 22.5 15.8 50.6 21.6 14.0 -28.1 12.6 -30.2 11.6 -28.9 12.8 -26.8
2025-06-13 10:35:12,375 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 10:35:12,375 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 10:35:12,375 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.357231
2025-06-13 10:35:12,376 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 10:35:12,376 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 10:35:12,376 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 10:35:12,377 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 10:35:12,377 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 10:35:12,377 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T10:34:43', tmtdew=10.4, humidity=48.16, cloud=0.0, wind=16.9, temperature=9.63, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T08:34:24.758', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 10:35:12,378 [DEBUG][       Thread-251736][   transport.py][1871] : EOF in transport thread
2025-06-13 10:35:12,462 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 10:35:12,473 [DEBUG][       Thread-251741][   transport.py][1871] : starting thread (client mode): 0x867b6800
2025-06-13 10:35:12,473 [DEBUG][       Thread-251741][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 10:35:12,489 [DEBUG][       Thread-251741][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 10:35:12,489 [ INFO][       Thread-251741][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 10:35:12,497 [DEBUG][       Thread-251741][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 10:35:12,497 [DEBUG][       Thread-251741][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 10:35:12,497 [DEBUG][       Thread-251741][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 10:35:12,497 [DEBUG][       Thread-251741][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:35:12,497 [DEBUG][       Thread-251741][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:35:12,497 [DEBUG][       Thread-251741][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:35:12,497 [DEBUG][       Thread-251741][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:35:12,497 [DEBUG][       Thread-251741][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 10:35:12,498 [DEBUG][       Thread-251741][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 10:35:12,498 [DEBUG][       Thread-251741][   transport.py][1871] : client lang: <none>
2025-06-13 10:35:12,498 [DEBUG][       Thread-251741][   transport.py][1871] : server lang: <none>
2025-06-13 10:35:12,498 [DEBUG][       Thread-251741][   transport.py][1871] : kex follows: False
2025-06-13 10:35:12,498 [DEBUG][       Thread-251741][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 10:35:12,498 [DEBUG][       Thread-251741][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 10:35:12,498 [DEBUG][       Thread-251741][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 10:35:12,498 [DEBUG][       Thread-251741][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 10:35:12,498 [DEBUG][       Thread-251741][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 10:35:12,498 [DEBUG][       Thread-251741][   transport.py][1871] : Compression: none
2025-06-13 10:35:12,498 [DEBUG][       Thread-251741][   transport.py][1871] : === End of kex handshake ===
2025-06-13 10:35:12,558 [DEBUG][       Thread-251741][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 10:35:12,558 [DEBUG][       Thread-251741][   transport.py][1871] : Switch to new keys ...
2025-06-13 10:35:12,559 [DEBUG][       Thread-251741][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 10:35:12,559 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 10:35:12,560 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 10:35:12,616 [DEBUG][       Thread-251741][   transport.py][1871] : userauth is OK
2025-06-13 10:35:12,616 [DEBUG][       Thread-251741][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 10:35:12,616 [DEBUG][       Thread-251741][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 10:35:12,616 [DEBUG][       Thread-251741][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 10:35:12,616 [DEBUG][       Thread-251741][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 10:35:12,643 [ INFO][       Thread-251741][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 10:35:12,643 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 10:35:12,643 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 10:35:13,633 [DEBUG][       Thread-251741][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 10:35:13,633 [DEBUG][       Thread-251741][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 10:35:13,688 [DEBUG][       Thread-251741][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 10:35:13,689 [DEBUG][       Thread-251741][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 10:35:13,701 [DEBUG][       Thread-251741][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 10:35:13,710 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 10:35:13,710 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 10:35:13,718 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 10:35:13,727 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 10:35:13,728 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 10:35:13,728 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 10:35:13,736 [DEBUG][       Thread-251741][   transport.py][1871] : EOF in transport thread
2025-06-13 10:35:17,416 [DEBUG][Thread-251743 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:35:21,802 [DEBUG][Thread-251744 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:35:22,875 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:35:22,876 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:35:23,738 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 10:35:23,739 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 10:35:23,739 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 10:35:23,742 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 10:35:24,196 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 10, 35, 14), 10.34, 48.37, 0.0, 17.08, 9.63, 0, 0, 0, 2, 0, 0),)
2025-06-13 10:35:24,197 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 10:35:14
2025-06-13 10:35:24,279 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 10:35:24,286 [DEBUG][       Thread-251745][   transport.py][1871] : starting thread (client mode): 0x867b5990
2025-06-13 10:35:24,286 [DEBUG][       Thread-251745][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 10:35:24,307 [DEBUG][       Thread-251745][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 10:35:24,307 [ INFO][       Thread-251745][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 10:35:24,310 [DEBUG][       Thread-251745][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 10:35:24,310 [DEBUG][       Thread-251745][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 10:35:24,310 [DEBUG][       Thread-251745][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 10:35:24,310 [DEBUG][       Thread-251745][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:35:24,310 [DEBUG][       Thread-251745][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:35:24,310 [DEBUG][       Thread-251745][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:35:24,310 [DEBUG][       Thread-251745][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:35:24,310 [DEBUG][       Thread-251745][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 10:35:24,310 [DEBUG][       Thread-251745][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 10:35:24,310 [DEBUG][       Thread-251745][   transport.py][1871] : client lang: <none>
2025-06-13 10:35:24,310 [DEBUG][       Thread-251745][   transport.py][1871] : server lang: <none>
2025-06-13 10:35:24,310 [DEBUG][       Thread-251745][   transport.py][1871] : kex follows: False
2025-06-13 10:35:24,310 [DEBUG][       Thread-251745][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 10:35:24,310 [DEBUG][       Thread-251745][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 10:35:24,310 [DEBUG][       Thread-251745][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 10:35:24,310 [DEBUG][       Thread-251745][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 10:35:24,311 [DEBUG][       Thread-251745][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 10:35:24,311 [DEBUG][       Thread-251745][   transport.py][1871] : Compression: none
2025-06-13 10:35:24,311 [DEBUG][       Thread-251745][   transport.py][1871] : === End of kex handshake ===
2025-06-13 10:35:24,328 [DEBUG][       Thread-251745][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 10:35:24,329 [DEBUG][       Thread-251745][   transport.py][1871] : Switch to new keys ...
2025-06-13 10:35:24,329 [DEBUG][       Thread-251745][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 10:35:24,329 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 10:35:24,330 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 10:35:24,331 [DEBUG][       Thread-251745][   transport.py][1871] : userauth is OK
2025-06-13 10:35:24,355 [ INFO][       Thread-251745][   transport.py][1871] : Authentication (password) successful!
2025-06-13 10:35:24,355 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 10:35:24,945 [DEBUG][       Thread-251745][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 10:35:24,945 [DEBUG][       Thread-251745][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 10:35:24,989 [DEBUG][       Thread-251745][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 10:35:24,989 [DEBUG][       Thread-251745][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 10:35:24,992 [DEBUG][       Thread-251745][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 10:35:25,006 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 10:35:25,006 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 10:35:25,008 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 10:35:25,010 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 10:35:25,015 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 10:35:25,017 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 10:35:25,017 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 10:35:25,018 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 10:35:25,018 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.357579 -999.00   +9.30  19.86     52   +0.10 1 1 1 1 1   887    0 9.63 27.32 ----- 19.1 19.9 53.6 25.5 14.1 -28.2 12.6 -29.7 11.6 -29.0 12.9 -26.8
2025-06-13 10:35:25,018 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 10:35:25,018 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 10:35:25,018 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.357579
2025-06-13 10:35:25,019 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 10:35:25,019 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 10:35:25,020 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 10:35:25,020 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 10:35:25,020 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 10:35:25,020 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T10:35:14', tmtdew=10.34, humidity=48.37, cloud=0.0, wind=17.08, temperature=9.63, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T08:34:54.826', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 10:35:25,020 [DEBUG][       Thread-251745][   transport.py][1871] : EOF in transport thread
2025-06-13 10:35:25,105 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 10:35:25,114 [DEBUG][       Thread-251748][   transport.py][1871] : starting thread (client mode): 0x842045e0
2025-06-13 10:35:25,114 [DEBUG][       Thread-251748][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 10:35:25,129 [DEBUG][       Thread-251748][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 10:35:25,129 [ INFO][       Thread-251748][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 10:35:25,137 [DEBUG][       Thread-251748][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 10:35:25,137 [DEBUG][       Thread-251748][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 10:35:25,137 [DEBUG][       Thread-251748][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 10:35:25,137 [DEBUG][       Thread-251748][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:35:25,137 [DEBUG][       Thread-251748][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:35:25,137 [DEBUG][       Thread-251748][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:35:25,137 [DEBUG][       Thread-251748][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:35:25,137 [DEBUG][       Thread-251748][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 10:35:25,137 [DEBUG][       Thread-251748][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 10:35:25,137 [DEBUG][       Thread-251748][   transport.py][1871] : client lang: <none>
2025-06-13 10:35:25,137 [DEBUG][       Thread-251748][   transport.py][1871] : server lang: <none>
2025-06-13 10:35:25,137 [DEBUG][       Thread-251748][   transport.py][1871] : kex follows: False
2025-06-13 10:35:25,137 [DEBUG][       Thread-251748][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 10:35:25,137 [DEBUG][       Thread-251748][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 10:35:25,138 [DEBUG][       Thread-251748][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 10:35:25,138 [DEBUG][       Thread-251748][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 10:35:25,138 [DEBUG][       Thread-251748][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 10:35:25,138 [DEBUG][       Thread-251748][   transport.py][1871] : Compression: none
2025-06-13 10:35:25,138 [DEBUG][       Thread-251748][   transport.py][1871] : === End of kex handshake ===
2025-06-13 10:35:25,196 [DEBUG][       Thread-251748][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 10:35:25,196 [DEBUG][       Thread-251748][   transport.py][1871] : Switch to new keys ...
2025-06-13 10:35:25,197 [DEBUG][       Thread-251748][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 10:35:25,197 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 10:35:25,198 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 10:35:25,252 [DEBUG][       Thread-251748][   transport.py][1871] : userauth is OK
2025-06-13 10:35:25,252 [DEBUG][       Thread-251748][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 10:35:25,252 [DEBUG][       Thread-251748][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 10:35:25,252 [DEBUG][       Thread-251748][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 10:35:25,252 [DEBUG][       Thread-251748][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 10:35:25,271 [ INFO][       Thread-251748][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 10:35:25,271 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 10:35:25,271 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 10:35:26,278 [DEBUG][       Thread-251748][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 10:35:26,278 [DEBUG][       Thread-251748][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 10:35:26,327 [DEBUG][       Thread-251748][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 10:35:26,327 [DEBUG][       Thread-251748][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 10:35:26,336 [DEBUG][       Thread-251748][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 10:35:26,344 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 10:35:26,344 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 10:35:26,352 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 10:35:26,359 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 10:35:26,360 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 10:35:26,360 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 10:35:26,368 [DEBUG][       Thread-251748][   transport.py][1871] : EOF in transport thread
2025-06-13 10:35:26,433 [DEBUG][Thread-251750 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:35:27,532 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:35:27,533 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:35:35,465 [DEBUG][Thread-251751 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:35:36,370 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 10:35:36,370 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 10:35:36,370 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 10:35:36,372 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 10:35:36,825 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 10, 35, 14), 10.34, 48.37, 0.0, 17.08, 9.63, 0, 0, 0, 2, 0, 0),)
2025-06-13 10:35:36,825 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 10:35:14
2025-06-13 10:35:36,907 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 10:35:36,911 [DEBUG][       Thread-251752][   transport.py][1871] : starting thread (client mode): 0x84205930
2025-06-13 10:35:36,911 [DEBUG][       Thread-251752][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 10:35:36,932 [DEBUG][       Thread-251752][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 10:35:36,932 [ INFO][       Thread-251752][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 10:35:36,935 [DEBUG][       Thread-251752][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 10:35:36,936 [DEBUG][       Thread-251752][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 10:35:36,936 [DEBUG][       Thread-251752][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 10:35:36,936 [DEBUG][       Thread-251752][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:35:36,936 [DEBUG][       Thread-251752][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:35:36,936 [DEBUG][       Thread-251752][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:35:36,936 [DEBUG][       Thread-251752][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:35:36,936 [DEBUG][       Thread-251752][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 10:35:36,936 [DEBUG][       Thread-251752][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 10:35:36,936 [DEBUG][       Thread-251752][   transport.py][1871] : client lang: <none>
2025-06-13 10:35:36,936 [DEBUG][       Thread-251752][   transport.py][1871] : server lang: <none>
2025-06-13 10:35:36,936 [DEBUG][       Thread-251752][   transport.py][1871] : kex follows: False
2025-06-13 10:35:36,936 [DEBUG][       Thread-251752][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 10:35:36,936 [DEBUG][       Thread-251752][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 10:35:36,936 [DEBUG][       Thread-251752][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 10:35:36,936 [DEBUG][       Thread-251752][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 10:35:36,936 [DEBUG][       Thread-251752][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 10:35:36,936 [DEBUG][       Thread-251752][   transport.py][1871] : Compression: none
2025-06-13 10:35:36,936 [DEBUG][       Thread-251752][   transport.py][1871] : === End of kex handshake ===
2025-06-13 10:35:36,952 [DEBUG][       Thread-251752][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 10:35:36,952 [DEBUG][       Thread-251752][   transport.py][1871] : Switch to new keys ...
2025-06-13 10:35:36,953 [DEBUG][       Thread-251752][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 10:35:36,953 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 10:35:36,953 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 10:35:36,954 [DEBUG][       Thread-251752][   transport.py][1871] : userauth is OK
2025-06-13 10:35:36,979 [ INFO][       Thread-251752][   transport.py][1871] : Authentication (password) successful!
2025-06-13 10:35:36,980 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 10:35:37,613 [DEBUG][       Thread-251752][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 10:35:37,613 [DEBUG][       Thread-251752][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 10:35:37,657 [DEBUG][       Thread-251752][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 10:35:37,657 [DEBUG][       Thread-251752][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 10:35:37,660 [DEBUG][       Thread-251752][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 10:35:37,673 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 10:35:37,673 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 10:35:37,675 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 10:35:37,677 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 10:35:37,683 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 10:35:37,684 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 10:35:37,685 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 10:35:37,685 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 10:35:37,685 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.357579 -999.00   +9.30  19.86     52   +0.10 1 1 1 1 1   887    0 9.63 27.32 ----- 19.1 19.9 53.6 25.5 14.1 -28.2 12.6 -29.7 11.6 -29.0 12.9 -26.8
2025-06-13 10:35:37,685 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 10:35:37,686 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 10:35:37,686 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.357579
2025-06-13 10:35:37,686 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 10:35:37,686 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 10:35:37,687 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 10:35:37,687 [DEBUG][       Thread-251752][   transport.py][1871] : EOF in transport thread
2025-06-13 10:35:37,687 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 10:35:37,687 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 10:35:37,688 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T10:35:14', tmtdew=10.34, humidity=48.37, cloud=0.0, wind=17.08, temperature=9.63, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T08:34:54.826', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 10:35:37,771 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 10:35:37,782 [DEBUG][       Thread-251755][   transport.py][1871] : starting thread (client mode): 0x867b5ae0
2025-06-13 10:35:37,782 [DEBUG][       Thread-251755][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 10:35:37,797 [DEBUG][       Thread-251755][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 10:35:37,797 [ INFO][       Thread-251755][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 10:35:37,804 [DEBUG][       Thread-251755][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 10:35:37,805 [DEBUG][       Thread-251755][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 10:35:37,805 [DEBUG][       Thread-251755][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 10:35:37,805 [DEBUG][       Thread-251755][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:35:37,805 [DEBUG][       Thread-251755][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:35:37,805 [DEBUG][       Thread-251755][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:35:37,805 [DEBUG][       Thread-251755][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:35:37,805 [DEBUG][       Thread-251755][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 10:35:37,805 [DEBUG][       Thread-251755][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 10:35:37,805 [DEBUG][       Thread-251755][   transport.py][1871] : client lang: <none>
2025-06-13 10:35:37,805 [DEBUG][       Thread-251755][   transport.py][1871] : server lang: <none>
2025-06-13 10:35:37,805 [DEBUG][       Thread-251755][   transport.py][1871] : kex follows: False
2025-06-13 10:35:37,805 [DEBUG][       Thread-251755][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 10:35:37,805 [DEBUG][       Thread-251755][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 10:35:37,805 [DEBUG][       Thread-251755][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 10:35:37,805 [DEBUG][       Thread-251755][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 10:35:37,805 [DEBUG][       Thread-251755][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 10:35:37,805 [DEBUG][       Thread-251755][   transport.py][1871] : Compression: none
2025-06-13 10:35:37,805 [DEBUG][       Thread-251755][   transport.py][1871] : === End of kex handshake ===
2025-06-13 10:35:37,871 [DEBUG][       Thread-251755][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 10:35:37,872 [DEBUG][       Thread-251755][   transport.py][1871] : Switch to new keys ...
2025-06-13 10:35:37,872 [DEBUG][       Thread-251755][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 10:35:37,873 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 10:35:37,873 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 10:35:37,928 [DEBUG][       Thread-251755][   transport.py][1871] : userauth is OK
2025-06-13 10:35:37,928 [DEBUG][       Thread-251755][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 10:35:37,929 [DEBUG][       Thread-251755][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 10:35:37,929 [DEBUG][       Thread-251755][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 10:35:37,929 [DEBUG][       Thread-251755][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 10:35:37,951 [ INFO][       Thread-251755][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 10:35:37,952 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 10:35:37,952 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 10:35:38,933 [DEBUG][       Thread-251755][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 10:35:38,934 [DEBUG][       Thread-251755][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 10:35:38,984 [DEBUG][       Thread-251755][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 10:35:38,984 [DEBUG][       Thread-251755][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 10:35:38,993 [DEBUG][       Thread-251755][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 10:35:39,002 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 10:35:39,002 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 10:35:39,012 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 10:35:39,021 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 10:35:39,021 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 10:35:39,022 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 10:35:39,030 [DEBUG][       Thread-251755][   transport.py][1871] : EOF in transport thread
2025-06-13 10:35:44,488 [DEBUG][Thread-251757 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:35:49,032 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 10:35:49,032 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 10:35:49,032 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 10:35:49,034 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 10:35:49,512 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 10, 35, 46), 10.39, 48.2, 0.0, 14.79, 9.68, 0, 0, 0, 2, 0, 0),)
2025-06-13 10:35:49,513 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 10:35:46
2025-06-13 10:35:49,594 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 10:35:49,600 [DEBUG][       Thread-251758][   transport.py][1871] : starting thread (client mode): 0x84204910
2025-06-13 10:35:49,600 [DEBUG][       Thread-251758][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 10:35:49,620 [DEBUG][       Thread-251758][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 10:35:49,620 [ INFO][       Thread-251758][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 10:35:49,624 [DEBUG][       Thread-251758][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 10:35:49,624 [DEBUG][       Thread-251758][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 10:35:49,624 [DEBUG][       Thread-251758][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 10:35:49,624 [DEBUG][       Thread-251758][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:35:49,624 [DEBUG][       Thread-251758][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:35:49,624 [DEBUG][       Thread-251758][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:35:49,624 [DEBUG][       Thread-251758][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:35:49,624 [DEBUG][       Thread-251758][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 10:35:49,624 [DEBUG][       Thread-251758][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 10:35:49,624 [DEBUG][       Thread-251758][   transport.py][1871] : client lang: <none>
2025-06-13 10:35:49,624 [DEBUG][       Thread-251758][   transport.py][1871] : server lang: <none>
2025-06-13 10:35:49,624 [DEBUG][       Thread-251758][   transport.py][1871] : kex follows: False
2025-06-13 10:35:49,624 [DEBUG][       Thread-251758][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 10:35:49,624 [DEBUG][       Thread-251758][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 10:35:49,624 [DEBUG][       Thread-251758][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 10:35:49,624 [DEBUG][       Thread-251758][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 10:35:49,624 [DEBUG][       Thread-251758][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 10:35:49,624 [DEBUG][       Thread-251758][   transport.py][1871] : Compression: none
2025-06-13 10:35:49,624 [DEBUG][       Thread-251758][   transport.py][1871] : === End of kex handshake ===
2025-06-13 10:35:49,633 [DEBUG][       Thread-251758][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 10:35:49,634 [DEBUG][       Thread-251758][   transport.py][1871] : Switch to new keys ...
2025-06-13 10:35:49,634 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 10:35:49,634 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 10:35:49,635 [DEBUG][       Thread-251758][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 10:35:49,635 [DEBUG][       Thread-251758][   transport.py][1871] : userauth is OK
2025-06-13 10:35:49,660 [ INFO][       Thread-251758][   transport.py][1871] : Authentication (password) successful!
2025-06-13 10:35:49,661 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 10:35:50,272 [DEBUG][       Thread-251758][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 10:35:50,272 [DEBUG][       Thread-251758][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 10:35:50,317 [DEBUG][       Thread-251758][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 10:35:50,317 [DEBUG][       Thread-251758][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 10:35:50,320 [DEBUG][       Thread-251758][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 10:35:50,331 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 10:35:50,331 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 10:35:50,334 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 10:35:50,335 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 10:35:50,340 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 10:35:50,342 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 10:35:50,342 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 10:35:50,343 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 10:35:50,343 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.357926 -999.00   +9.20  18.80     53   +0.40 1 1 1 1 1   887    0 9.64 25.88 ----- 17.4 18.8 51.2 25.6 14.0 -28.0 12.6 -30.1 11.6 -28.6 12.9 -26.8
2025-06-13 10:35:50,343 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 10:35:50,343 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 10:35:50,343 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.357926
2025-06-13 10:35:50,344 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 10:35:50,344 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 10:35:50,344 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 10:35:50,344 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 10:35:50,344 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 10:35:50,344 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T10:35:46', tmtdew=10.39, humidity=48.2, cloud=0.0, wind=14.79, temperature=9.68, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T08:35:24.806', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 10:35:50,345 [DEBUG][       Thread-251758][   transport.py][1871] : EOF in transport thread
2025-06-13 10:35:50,429 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 10:35:50,441 [DEBUG][       Thread-251761][   transport.py][1871] : starting thread (client mode): 0x863bdd20
2025-06-13 10:35:50,441 [DEBUG][       Thread-251761][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 10:35:50,456 [DEBUG][       Thread-251761][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 10:35:50,456 [ INFO][       Thread-251761][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 10:35:50,466 [DEBUG][       Thread-251761][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 10:35:50,466 [DEBUG][       Thread-251761][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 10:35:50,466 [DEBUG][       Thread-251761][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 10:35:50,466 [DEBUG][       Thread-251761][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:35:50,466 [DEBUG][       Thread-251761][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:35:50,466 [DEBUG][       Thread-251761][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:35:50,466 [DEBUG][       Thread-251761][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:35:50,466 [DEBUG][       Thread-251761][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 10:35:50,466 [DEBUG][       Thread-251761][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 10:35:50,466 [DEBUG][       Thread-251761][   transport.py][1871] : client lang: <none>
2025-06-13 10:35:50,466 [DEBUG][       Thread-251761][   transport.py][1871] : server lang: <none>
2025-06-13 10:35:50,466 [DEBUG][       Thread-251761][   transport.py][1871] : kex follows: False
2025-06-13 10:35:50,466 [DEBUG][       Thread-251761][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 10:35:50,466 [DEBUG][       Thread-251761][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 10:35:50,466 [DEBUG][       Thread-251761][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 10:35:50,466 [DEBUG][       Thread-251761][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 10:35:50,466 [DEBUG][       Thread-251761][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 10:35:50,466 [DEBUG][       Thread-251761][   transport.py][1871] : Compression: none
2025-06-13 10:35:50,466 [DEBUG][       Thread-251761][   transport.py][1871] : === End of kex handshake ===
2025-06-13 10:35:50,523 [DEBUG][       Thread-251761][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 10:35:50,523 [DEBUG][       Thread-251761][   transport.py][1871] : Switch to new keys ...
2025-06-13 10:35:50,523 [DEBUG][       Thread-251761][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 10:35:50,523 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 10:35:50,523 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 10:35:50,584 [DEBUG][       Thread-251761][   transport.py][1871] : userauth is OK
2025-06-13 10:35:50,585 [DEBUG][       Thread-251761][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 10:35:50,585 [DEBUG][       Thread-251761][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 10:35:50,585 [DEBUG][       Thread-251761][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 10:35:50,585 [DEBUG][       Thread-251761][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 10:35:50,603 [ INFO][       Thread-251761][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 10:35:50,604 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 10:35:50,604 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 10:35:51,644 [DEBUG][       Thread-251761][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 10:35:51,644 [DEBUG][       Thread-251761][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 10:35:51,697 [DEBUG][       Thread-251761][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 10:35:51,697 [DEBUG][       Thread-251761][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 10:35:51,706 [DEBUG][       Thread-251761][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 10:35:51,716 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 10:35:51,716 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 10:35:51,725 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 10:35:51,734 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 10:35:51,734 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 10:35:51,735 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 10:35:51,743 [DEBUG][       Thread-251761][   transport.py][1871] : EOF in transport thread
2025-06-13 10:35:53,505 [DEBUG][Thread-251763 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:36:01,745 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 10:36:01,745 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 10:36:01,746 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 10:36:01,748 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 10:36:02,206 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 10, 35, 46), 10.39, 48.2, 0.0, 14.79, 9.68, 0, 0, 0, 2, 0, 0),)
2025-06-13 10:36:02,206 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 10:35:46
2025-06-13 10:36:02,288 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 10:36:02,292 [DEBUG][       Thread-251764][   transport.py][1871] : starting thread (client mode): 0x84207730
2025-06-13 10:36:02,292 [DEBUG][       Thread-251764][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 10:36:02,311 [DEBUG][       Thread-251764][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 10:36:02,311 [ INFO][       Thread-251764][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 10:36:02,315 [DEBUG][       Thread-251764][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 10:36:02,315 [DEBUG][       Thread-251764][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 10:36:02,315 [DEBUG][       Thread-251764][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 10:36:02,315 [DEBUG][       Thread-251764][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:36:02,315 [DEBUG][       Thread-251764][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:36:02,315 [DEBUG][       Thread-251764][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:36:02,315 [DEBUG][       Thread-251764][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:36:02,315 [DEBUG][       Thread-251764][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 10:36:02,315 [DEBUG][       Thread-251764][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 10:36:02,315 [DEBUG][       Thread-251764][   transport.py][1871] : client lang: <none>
2025-06-13 10:36:02,315 [DEBUG][       Thread-251764][   transport.py][1871] : server lang: <none>
2025-06-13 10:36:02,315 [DEBUG][       Thread-251764][   transport.py][1871] : kex follows: False
2025-06-13 10:36:02,315 [DEBUG][       Thread-251764][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 10:36:02,315 [DEBUG][       Thread-251764][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 10:36:02,315 [DEBUG][       Thread-251764][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 10:36:02,315 [DEBUG][       Thread-251764][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 10:36:02,315 [DEBUG][       Thread-251764][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 10:36:02,316 [DEBUG][       Thread-251764][   transport.py][1871] : Compression: none
2025-06-13 10:36:02,316 [DEBUG][       Thread-251764][   transport.py][1871] : === End of kex handshake ===
2025-06-13 10:36:02,332 [DEBUG][       Thread-251764][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 10:36:02,333 [DEBUG][       Thread-251764][   transport.py][1871] : Switch to new keys ...
2025-06-13 10:36:02,333 [DEBUG][       Thread-251764][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 10:36:02,333 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 10:36:02,334 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 10:36:02,335 [DEBUG][       Thread-251764][   transport.py][1871] : userauth is OK
2025-06-13 10:36:02,359 [ INFO][       Thread-251764][   transport.py][1871] : Authentication (password) successful!
2025-06-13 10:36:02,359 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 10:36:02,534 [DEBUG][Thread-251766 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:36:02,990 [DEBUG][       Thread-251764][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 10:36:02,990 [DEBUG][       Thread-251764][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 10:36:03,033 [DEBUG][       Thread-251764][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 10:36:03,033 [DEBUG][       Thread-251764][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 10:36:03,036 [DEBUG][       Thread-251764][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 10:36:03,049 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 10:36:03,049 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 10:36:03,051 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 10:36:03,053 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 10:36:03,058 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 10:36:03,060 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 10:36:03,060 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 10:36:03,060 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 10:36:03,060 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.357926 -999.00   +9.20  18.80     53   +0.40 1 1 1 1 1   887    0 9.64 25.88 ----- 17.4 18.8 51.2 25.6 14.0 -28.0 12.6 -30.1 11.6 -28.6 12.9 -26.8
2025-06-13 10:36:03,060 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 10:36:03,061 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 10:36:03,061 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.357926
2025-06-13 10:36:03,061 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 10:36:03,061 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 10:36:03,062 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 10:36:03,062 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 10:36:03,062 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 10:36:03,062 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T10:35:46', tmtdew=10.39, humidity=48.2, cloud=0.0, wind=14.79, temperature=9.68, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T08:35:24.806', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 10:36:03,063 [DEBUG][       Thread-251764][   transport.py][1871] : EOF in transport thread
2025-06-13 10:36:03,144 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 10:36:03,154 [DEBUG][       Thread-251768][   transport.py][1871] : starting thread (client mode): 0x867b5c60
2025-06-13 10:36:03,154 [DEBUG][       Thread-251768][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 10:36:03,169 [DEBUG][       Thread-251768][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 10:36:03,169 [ INFO][       Thread-251768][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 10:36:03,177 [DEBUG][       Thread-251768][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 10:36:03,177 [DEBUG][       Thread-251768][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 10:36:03,177 [DEBUG][       Thread-251768][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 10:36:03,177 [DEBUG][       Thread-251768][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:36:03,177 [DEBUG][       Thread-251768][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:36:03,177 [DEBUG][       Thread-251768][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:36:03,177 [DEBUG][       Thread-251768][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:36:03,177 [DEBUG][       Thread-251768][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 10:36:03,177 [DEBUG][       Thread-251768][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 10:36:03,177 [DEBUG][       Thread-251768][   transport.py][1871] : client lang: <none>
2025-06-13 10:36:03,177 [DEBUG][       Thread-251768][   transport.py][1871] : server lang: <none>
2025-06-13 10:36:03,177 [DEBUG][       Thread-251768][   transport.py][1871] : kex follows: False
2025-06-13 10:36:03,177 [DEBUG][       Thread-251768][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 10:36:03,177 [DEBUG][       Thread-251768][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 10:36:03,177 [DEBUG][       Thread-251768][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 10:36:03,177 [DEBUG][       Thread-251768][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 10:36:03,177 [DEBUG][       Thread-251768][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 10:36:03,177 [DEBUG][       Thread-251768][   transport.py][1871] : Compression: none
2025-06-13 10:36:03,177 [DEBUG][       Thread-251768][   transport.py][1871] : === End of kex handshake ===
2025-06-13 10:36:03,237 [DEBUG][       Thread-251768][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 10:36:03,238 [DEBUG][       Thread-251768][   transport.py][1871] : Switch to new keys ...
2025-06-13 10:36:03,238 [DEBUG][       Thread-251768][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 10:36:03,239 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 10:36:03,239 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 10:36:03,296 [DEBUG][       Thread-251768][   transport.py][1871] : userauth is OK
2025-06-13 10:36:03,296 [DEBUG][       Thread-251768][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 10:36:03,296 [DEBUG][       Thread-251768][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 10:36:03,296 [DEBUG][       Thread-251768][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 10:36:03,297 [DEBUG][       Thread-251768][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 10:36:03,319 [ INFO][       Thread-251768][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 10:36:03,319 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 10:36:03,320 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 10:36:04,394 [DEBUG][       Thread-251768][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 10:36:04,394 [DEBUG][       Thread-251768][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 10:36:04,444 [DEBUG][       Thread-251768][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 10:36:04,444 [DEBUG][       Thread-251768][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 10:36:04,453 [DEBUG][       Thread-251768][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 10:36:04,462 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 10:36:04,462 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 10:36:04,470 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 10:36:04,479 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 10:36:04,479 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 10:36:04,479 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 10:36:04,487 [DEBUG][       Thread-251768][   transport.py][1871] : EOF in transport thread
2025-06-13 10:36:06,728 [DEBUG][Thread-251770 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:36:11,554 [DEBUG][Thread-251771 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:36:14,490 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 10:36:14,490 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 10:36:14,490 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 10:36:14,493 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 10:36:14,963 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 10, 35, 46), 10.39, 48.2, 0.0, 14.79, 9.68, 0, 0, 0, 2, 0, 0),)
2025-06-13 10:36:14,963 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 10:35:46
2025-06-13 10:36:15,045 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 10:36:15,050 [DEBUG][       Thread-251772][   transport.py][1871] : starting thread (client mode): 0x863bff40
2025-06-13 10:36:15,050 [DEBUG][       Thread-251772][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 10:36:15,071 [DEBUG][       Thread-251772][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 10:36:15,071 [ INFO][       Thread-251772][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 10:36:15,075 [DEBUG][       Thread-251772][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 10:36:15,075 [DEBUG][       Thread-251772][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 10:36:15,075 [DEBUG][       Thread-251772][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 10:36:15,075 [DEBUG][       Thread-251772][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:36:15,075 [DEBUG][       Thread-251772][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:36:15,075 [DEBUG][       Thread-251772][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:36:15,075 [DEBUG][       Thread-251772][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:36:15,075 [DEBUG][       Thread-251772][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 10:36:15,075 [DEBUG][       Thread-251772][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 10:36:15,075 [DEBUG][       Thread-251772][   transport.py][1871] : client lang: <none>
2025-06-13 10:36:15,075 [DEBUG][       Thread-251772][   transport.py][1871] : server lang: <none>
2025-06-13 10:36:15,075 [DEBUG][       Thread-251772][   transport.py][1871] : kex follows: False
2025-06-13 10:36:15,075 [DEBUG][       Thread-251772][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 10:36:15,075 [DEBUG][       Thread-251772][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 10:36:15,075 [DEBUG][       Thread-251772][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 10:36:15,075 [DEBUG][       Thread-251772][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 10:36:15,075 [DEBUG][       Thread-251772][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 10:36:15,075 [DEBUG][       Thread-251772][   transport.py][1871] : Compression: none
2025-06-13 10:36:15,075 [DEBUG][       Thread-251772][   transport.py][1871] : === End of kex handshake ===
2025-06-13 10:36:15,091 [DEBUG][       Thread-251772][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 10:36:15,092 [DEBUG][       Thread-251772][   transport.py][1871] : Switch to new keys ...
2025-06-13 10:36:15,092 [DEBUG][       Thread-251772][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 10:36:15,092 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 10:36:15,093 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 10:36:15,094 [DEBUG][       Thread-251772][   transport.py][1871] : userauth is OK
2025-06-13 10:36:15,108 [ INFO][       Thread-251772][   transport.py][1871] : Authentication (password) successful!
2025-06-13 10:36:15,109 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 10:36:15,758 [DEBUG][       Thread-251772][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 10:36:15,758 [DEBUG][       Thread-251772][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 10:36:15,801 [DEBUG][       Thread-251772][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 10:36:15,801 [DEBUG][       Thread-251772][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 10:36:15,804 [DEBUG][       Thread-251772][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 10:36:15,816 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 10:36:15,816 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 10:36:15,818 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 10:36:15,820 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 10:36:15,824 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 10:36:15,826 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 10:36:15,826 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 10:36:15,827 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 10:36:15,827 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.357926 -999.00   +9.20  18.80     53   +0.40 1 1 1 1 1   887    0 9.64 25.88 ----- 17.4 18.8 51.2 25.6 14.0 -28.0 12.6 -30.1 11.6 -28.6 12.9 -26.8
2025-06-13 10:36:15,827 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 10:36:15,827 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 10:36:15,827 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.357926
2025-06-13 10:36:15,827 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 10:36:15,828 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 10:36:15,828 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 10:36:15,828 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 10:36:15,828 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 10:36:15,828 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T10:35:46', tmtdew=10.39, humidity=48.2, cloud=0.0, wind=14.79, temperature=9.68, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T08:35:24.806', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 10:36:15,828 [DEBUG][       Thread-251772][   transport.py][1871] : EOF in transport thread
2025-06-13 10:36:15,911 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 10:36:15,922 [DEBUG][       Thread-251775][   transport.py][1871] : starting thread (client mode): 0x84207520
2025-06-13 10:36:15,922 [DEBUG][       Thread-251775][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 10:36:15,941 [DEBUG][       Thread-251775][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 10:36:15,941 [ INFO][       Thread-251775][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 10:36:15,949 [DEBUG][       Thread-251775][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 10:36:15,949 [DEBUG][       Thread-251775][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 10:36:15,949 [DEBUG][       Thread-251775][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 10:36:15,949 [DEBUG][       Thread-251775][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:36:15,949 [DEBUG][       Thread-251775][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:36:15,949 [DEBUG][       Thread-251775][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:36:15,950 [DEBUG][       Thread-251775][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:36:15,950 [DEBUG][       Thread-251775][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 10:36:15,950 [DEBUG][       Thread-251775][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 10:36:15,950 [DEBUG][       Thread-251775][   transport.py][1871] : client lang: <none>
2025-06-13 10:36:15,950 [DEBUG][       Thread-251775][   transport.py][1871] : server lang: <none>
2025-06-13 10:36:15,950 [DEBUG][       Thread-251775][   transport.py][1871] : kex follows: False
2025-06-13 10:36:15,950 [DEBUG][       Thread-251775][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 10:36:15,950 [DEBUG][       Thread-251775][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 10:36:15,950 [DEBUG][       Thread-251775][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 10:36:15,950 [DEBUG][       Thread-251775][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 10:36:15,950 [DEBUG][       Thread-251775][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 10:36:15,950 [DEBUG][       Thread-251775][   transport.py][1871] : Compression: none
2025-06-13 10:36:15,950 [DEBUG][       Thread-251775][   transport.py][1871] : === End of kex handshake ===
2025-06-13 10:36:16,008 [DEBUG][       Thread-251775][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 10:36:16,008 [DEBUG][       Thread-251775][   transport.py][1871] : Switch to new keys ...
2025-06-13 10:36:16,009 [DEBUG][       Thread-251775][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 10:36:16,009 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 10:36:16,010 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 10:36:16,064 [DEBUG][       Thread-251775][   transport.py][1871] : userauth is OK
2025-06-13 10:36:16,064 [DEBUG][       Thread-251775][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 10:36:16,064 [DEBUG][       Thread-251775][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 10:36:16,064 [DEBUG][       Thread-251775][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 10:36:16,064 [DEBUG][       Thread-251775][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 10:36:16,078 [ INFO][       Thread-251775][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 10:36:16,078 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 10:36:16,079 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 10:36:17,093 [DEBUG][       Thread-251775][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 10:36:17,093 [DEBUG][       Thread-251775][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 10:36:17,144 [DEBUG][       Thread-251775][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 10:36:17,144 [DEBUG][       Thread-251775][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 10:36:17,154 [DEBUG][       Thread-251775][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 10:36:17,164 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 10:36:17,164 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 10:36:17,175 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 10:36:17,190 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 10:36:17,191 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 10:36:17,191 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 10:36:17,199 [DEBUG][       Thread-251775][   transport.py][1871] : EOF in transport thread
2025-06-13 10:36:20,572 [DEBUG][Thread-251777 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:36:22,938 [DEBUG][Thread-251778 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:36:24,025 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:36:24,026 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:36:27,200 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 10:36:27,200 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 10:36:27,200 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 10:36:27,203 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 10:36:27,673 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 10, 36, 18), 10.33, 48.51, 0.0, 17.77, 9.65, 0, 0, 0, 2, 0, 0),)
2025-06-13 10:36:27,673 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 10:36:18
2025-06-13 10:36:27,675 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:36:27,676 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:36:27,754 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 10:36:27,758 [DEBUG][       Thread-251779][   transport.py][1871] : starting thread (client mode): 0x863bf6a0
2025-06-13 10:36:27,758 [DEBUG][       Thread-251779][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 10:36:27,779 [DEBUG][       Thread-251779][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 10:36:27,779 [ INFO][       Thread-251779][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 10:36:27,781 [DEBUG][       Thread-251779][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 10:36:27,781 [DEBUG][       Thread-251779][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 10:36:27,781 [DEBUG][       Thread-251779][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 10:36:27,781 [DEBUG][       Thread-251779][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:36:27,781 [DEBUG][       Thread-251779][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:36:27,781 [DEBUG][       Thread-251779][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:36:27,781 [DEBUG][       Thread-251779][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:36:27,781 [DEBUG][       Thread-251779][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 10:36:27,781 [DEBUG][       Thread-251779][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 10:36:27,781 [DEBUG][       Thread-251779][   transport.py][1871] : client lang: <none>
2025-06-13 10:36:27,781 [DEBUG][       Thread-251779][   transport.py][1871] : server lang: <none>
2025-06-13 10:36:27,781 [DEBUG][       Thread-251779][   transport.py][1871] : kex follows: False
2025-06-13 10:36:27,781 [DEBUG][       Thread-251779][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 10:36:27,781 [DEBUG][       Thread-251779][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 10:36:27,781 [DEBUG][       Thread-251779][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 10:36:27,781 [DEBUG][       Thread-251779][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 10:36:27,782 [DEBUG][       Thread-251779][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 10:36:27,782 [DEBUG][       Thread-251779][   transport.py][1871] : Compression: none
2025-06-13 10:36:27,782 [DEBUG][       Thread-251779][   transport.py][1871] : === End of kex handshake ===
2025-06-13 10:36:27,790 [DEBUG][       Thread-251779][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 10:36:27,791 [DEBUG][       Thread-251779][   transport.py][1871] : Switch to new keys ...
2025-06-13 10:36:27,791 [DEBUG][       Thread-251779][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 10:36:27,792 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 10:36:27,792 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 10:36:27,793 [DEBUG][       Thread-251779][   transport.py][1871] : userauth is OK
2025-06-13 10:36:27,806 [ INFO][       Thread-251779][   transport.py][1871] : Authentication (password) successful!
2025-06-13 10:36:27,806 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 10:36:28,428 [DEBUG][       Thread-251779][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 10:36:28,428 [DEBUG][       Thread-251779][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 10:36:28,468 [DEBUG][       Thread-251779][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 10:36:28,468 [DEBUG][       Thread-251779][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 10:36:28,471 [DEBUG][       Thread-251779][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 10:36:28,483 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 10:36:28,483 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 10:36:28,484 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 10:36:28,485 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 10:36:28,489 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 10:36:28,490 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 10:36:28,490 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 10:36:28,491 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 10:36:28,491 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.358273 -999.00   +9.20  21.43     54   +0.50 1 1 1 1 1   887    0 9.58 23.86 ----- 16.4 21.4 57.4 24.6 14.1 -28.3 12.6 -29.9 11.6 -28.1 12.9 -26.8
2025-06-13 10:36:28,491 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 10:36:28,491 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 10:36:28,491 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.358273
2025-06-13 10:36:28,491 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 10:36:28,491 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 10:36:28,491 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 10:36:28,491 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 10:36:28,491 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 10:36:28,491 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T10:36:18', tmtdew=10.33, humidity=48.51, cloud=0.0, wind=17.77, temperature=9.65, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T08:35:54.787', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 10:36:28,492 [DEBUG][       Thread-251779][   transport.py][1871] : EOF in transport thread
2025-06-13 10:36:28,566 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 10:36:28,575 [DEBUG][       Thread-251782][   transport.py][1871] : starting thread (client mode): 0x863be110
2025-06-13 10:36:28,575 [DEBUG][       Thread-251782][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 10:36:28,591 [DEBUG][       Thread-251782][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 10:36:28,591 [ INFO][       Thread-251782][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 10:36:28,599 [DEBUG][       Thread-251782][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 10:36:28,599 [DEBUG][       Thread-251782][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 10:36:28,599 [DEBUG][       Thread-251782][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 10:36:28,599 [DEBUG][       Thread-251782][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:36:28,599 [DEBUG][       Thread-251782][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:36:28,599 [DEBUG][       Thread-251782][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:36:28,599 [DEBUG][       Thread-251782][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:36:28,599 [DEBUG][       Thread-251782][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 10:36:28,599 [DEBUG][       Thread-251782][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 10:36:28,599 [DEBUG][       Thread-251782][   transport.py][1871] : client lang: <none>
2025-06-13 10:36:28,599 [DEBUG][       Thread-251782][   transport.py][1871] : server lang: <none>
2025-06-13 10:36:28,599 [DEBUG][       Thread-251782][   transport.py][1871] : kex follows: False
2025-06-13 10:36:28,599 [DEBUG][       Thread-251782][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 10:36:28,599 [DEBUG][       Thread-251782][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 10:36:28,599 [DEBUG][       Thread-251782][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 10:36:28,599 [DEBUG][       Thread-251782][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 10:36:28,599 [DEBUG][       Thread-251782][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 10:36:28,599 [DEBUG][       Thread-251782][   transport.py][1871] : Compression: none
2025-06-13 10:36:28,599 [DEBUG][       Thread-251782][   transport.py][1871] : === End of kex handshake ===
2025-06-13 10:36:28,661 [DEBUG][       Thread-251782][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 10:36:28,662 [DEBUG][       Thread-251782][   transport.py][1871] : Switch to new keys ...
2025-06-13 10:36:28,662 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 10:36:28,663 [DEBUG][       Thread-251782][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 10:36:28,663 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 10:36:28,716 [DEBUG][       Thread-251782][   transport.py][1871] : userauth is OK
2025-06-13 10:36:28,716 [DEBUG][       Thread-251782][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 10:36:28,717 [DEBUG][       Thread-251782][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 10:36:28,717 [DEBUG][       Thread-251782][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 10:36:28,717 [DEBUG][       Thread-251782][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 10:36:28,742 [ INFO][       Thread-251782][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 10:36:28,742 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 10:36:28,742 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 10:36:29,590 [DEBUG][Thread-251784 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:36:29,790 [DEBUG][       Thread-251782][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 10:36:29,790 [DEBUG][       Thread-251782][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 10:36:29,840 [DEBUG][       Thread-251782][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 10:36:29,840 [DEBUG][       Thread-251782][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 10:36:29,850 [DEBUG][       Thread-251782][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 10:36:29,863 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 10:36:29,863 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 10:36:29,872 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 10:36:29,880 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 10:36:29,881 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 10:36:29,881 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 10:36:29,889 [DEBUG][       Thread-251782][   transport.py][1871] : EOF in transport thread
2025-06-13 10:36:38,619 [DEBUG][Thread-251785 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:36:39,891 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 10:36:39,892 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 10:36:39,892 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 10:36:39,894 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 10:36:40,349 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 10, 36, 18), 10.33, 48.51, 0.0, 17.77, 9.65, 0, 0, 0, 2, 0, 0),)
2025-06-13 10:36:40,349 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 10:36:18
2025-06-13 10:36:40,430 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 10:36:40,436 [DEBUG][       Thread-251786][   transport.py][1871] : starting thread (client mode): 0x863bd9c0
2025-06-13 10:36:40,436 [DEBUG][       Thread-251786][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 10:36:40,457 [DEBUG][       Thread-251786][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 10:36:40,457 [ INFO][       Thread-251786][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 10:36:40,460 [DEBUG][       Thread-251786][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 10:36:40,460 [DEBUG][       Thread-251786][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 10:36:40,461 [DEBUG][       Thread-251786][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 10:36:40,461 [DEBUG][       Thread-251786][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:36:40,461 [DEBUG][       Thread-251786][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:36:40,461 [DEBUG][       Thread-251786][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:36:40,461 [DEBUG][       Thread-251786][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:36:40,461 [DEBUG][       Thread-251786][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 10:36:40,461 [DEBUG][       Thread-251786][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 10:36:40,461 [DEBUG][       Thread-251786][   transport.py][1871] : client lang: <none>
2025-06-13 10:36:40,461 [DEBUG][       Thread-251786][   transport.py][1871] : server lang: <none>
2025-06-13 10:36:40,461 [DEBUG][       Thread-251786][   transport.py][1871] : kex follows: False
2025-06-13 10:36:40,461 [DEBUG][       Thread-251786][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 10:36:40,461 [DEBUG][       Thread-251786][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 10:36:40,461 [DEBUG][       Thread-251786][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 10:36:40,461 [DEBUG][       Thread-251786][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 10:36:40,461 [DEBUG][       Thread-251786][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 10:36:40,461 [DEBUG][       Thread-251786][   transport.py][1871] : Compression: none
2025-06-13 10:36:40,461 [DEBUG][       Thread-251786][   transport.py][1871] : === End of kex handshake ===
2025-06-13 10:36:40,480 [DEBUG][       Thread-251786][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 10:36:40,481 [DEBUG][       Thread-251786][   transport.py][1871] : Switch to new keys ...
2025-06-13 10:36:40,481 [DEBUG][       Thread-251786][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 10:36:40,481 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 10:36:40,482 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 10:36:40,483 [DEBUG][       Thread-251786][   transport.py][1871] : userauth is OK
2025-06-13 10:36:40,508 [ INFO][       Thread-251786][   transport.py][1871] : Authentication (password) successful!
2025-06-13 10:36:40,508 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 10:36:41,182 [DEBUG][       Thread-251786][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 10:36:41,182 [DEBUG][       Thread-251786][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 10:36:41,225 [DEBUG][       Thread-251786][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 10:36:41,225 [DEBUG][       Thread-251786][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 10:36:41,228 [DEBUG][       Thread-251786][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 10:36:41,239 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 10:36:41,239 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 10:36:41,241 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 10:36:41,242 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 10:36:41,247 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 10:36:41,248 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 10:36:41,248 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 10:36:41,249 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 10:36:41,249 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.358273 -999.00   +9.20  21.43     54   +0.50 1 1 1 1 1   887    0 9.58 23.86 ----- 16.4 21.4 57.4 24.6 14.1 -28.3 12.6 -29.9 11.6 -28.1 12.9 -26.8
2025-06-13 10:36:41,249 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 10:36:41,249 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 10:36:41,249 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.358273
2025-06-13 10:36:41,250 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 10:36:41,250 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 10:36:41,250 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 10:36:41,250 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 10:36:41,250 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 10:36:41,250 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T10:36:18', tmtdew=10.33, humidity=48.51, cloud=0.0, wind=17.77, temperature=9.65, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T08:35:54.787', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 10:36:41,251 [DEBUG][       Thread-251786][   transport.py][1871] : EOF in transport thread
2025-06-13 10:36:41,334 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 10:36:41,352 [DEBUG][       Thread-251789][   transport.py][1871] : starting thread (client mode): 0x863c8880
2025-06-13 10:36:41,352 [DEBUG][       Thread-251789][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 10:36:41,367 [DEBUG][       Thread-251789][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 10:36:41,367 [ INFO][       Thread-251789][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 10:36:41,374 [DEBUG][       Thread-251789][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 10:36:41,374 [DEBUG][       Thread-251789][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 10:36:41,374 [DEBUG][       Thread-251789][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 10:36:41,374 [DEBUG][       Thread-251789][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:36:41,375 [DEBUG][       Thread-251789][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:36:41,375 [DEBUG][       Thread-251789][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:36:41,375 [DEBUG][       Thread-251789][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:36:41,375 [DEBUG][       Thread-251789][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 10:36:41,375 [DEBUG][       Thread-251789][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 10:36:41,375 [DEBUG][       Thread-251789][   transport.py][1871] : client lang: <none>
2025-06-13 10:36:41,375 [DEBUG][       Thread-251789][   transport.py][1871] : server lang: <none>
2025-06-13 10:36:41,375 [DEBUG][       Thread-251789][   transport.py][1871] : kex follows: False
2025-06-13 10:36:41,375 [DEBUG][       Thread-251789][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 10:36:41,375 [DEBUG][       Thread-251789][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 10:36:41,375 [DEBUG][       Thread-251789][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 10:36:41,375 [DEBUG][       Thread-251789][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 10:36:41,375 [DEBUG][       Thread-251789][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 10:36:41,375 [DEBUG][       Thread-251789][   transport.py][1871] : Compression: none
2025-06-13 10:36:41,375 [DEBUG][       Thread-251789][   transport.py][1871] : === End of kex handshake ===
2025-06-13 10:36:41,432 [DEBUG][       Thread-251789][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 10:36:41,432 [DEBUG][       Thread-251789][   transport.py][1871] : Switch to new keys ...
2025-06-13 10:36:41,433 [DEBUG][       Thread-251789][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 10:36:41,433 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 10:36:41,433 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 10:36:41,492 [DEBUG][       Thread-251789][   transport.py][1871] : userauth is OK
2025-06-13 10:36:41,493 [DEBUG][       Thread-251789][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 10:36:41,493 [DEBUG][       Thread-251789][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 10:36:41,493 [DEBUG][       Thread-251789][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 10:36:41,493 [DEBUG][       Thread-251789][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 10:36:41,512 [ INFO][       Thread-251789][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 10:36:41,512 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 10:36:41,513 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 10:36:42,502 [DEBUG][       Thread-251789][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 10:36:42,502 [DEBUG][       Thread-251789][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 10:36:42,551 [DEBUG][       Thread-251789][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 10:36:42,552 [DEBUG][       Thread-251789][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 10:36:42,560 [DEBUG][       Thread-251789][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 10:36:42,569 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 10:36:42,569 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 10:36:42,581 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 10:36:42,590 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 10:36:42,590 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 10:36:42,591 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 10:36:42,603 [DEBUG][       Thread-251789][   transport.py][1871] : EOF in transport thread
2025-06-13 10:36:47,639 [DEBUG][Thread-251791 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:36:52,601 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 10:36:52,601 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 10:36:52,601 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 10:36:52,603 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 10:36:53,062 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 10, 36, 49), 10.32, 48.56, 0.0, 16.38, 9.68, 0, 0, 0, 2, 0, 0),)
2025-06-13 10:36:53,062 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 10:36:49
2025-06-13 10:36:53,144 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 10:36:53,150 [DEBUG][       Thread-251792][   transport.py][1871] : starting thread (client mode): 0x867fcf70
2025-06-13 10:36:53,150 [DEBUG][       Thread-251792][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 10:36:53,170 [DEBUG][       Thread-251792][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 10:36:53,170 [ INFO][       Thread-251792][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 10:36:53,173 [DEBUG][       Thread-251792][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 10:36:53,173 [DEBUG][       Thread-251792][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 10:36:53,173 [DEBUG][       Thread-251792][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 10:36:53,173 [DEBUG][       Thread-251792][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:36:53,173 [DEBUG][       Thread-251792][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:36:53,173 [DEBUG][       Thread-251792][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:36:53,173 [DEBUG][       Thread-251792][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:36:53,174 [DEBUG][       Thread-251792][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 10:36:53,174 [DEBUG][       Thread-251792][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 10:36:53,174 [DEBUG][       Thread-251792][   transport.py][1871] : client lang: <none>
2025-06-13 10:36:53,174 [DEBUG][       Thread-251792][   transport.py][1871] : server lang: <none>
2025-06-13 10:36:53,174 [DEBUG][       Thread-251792][   transport.py][1871] : kex follows: False
2025-06-13 10:36:53,174 [DEBUG][       Thread-251792][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 10:36:53,174 [DEBUG][       Thread-251792][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 10:36:53,174 [DEBUG][       Thread-251792][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 10:36:53,174 [DEBUG][       Thread-251792][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 10:36:53,174 [DEBUG][       Thread-251792][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 10:36:53,174 [DEBUG][       Thread-251792][   transport.py][1871] : Compression: none
2025-06-13 10:36:53,174 [DEBUG][       Thread-251792][   transport.py][1871] : === End of kex handshake ===
2025-06-13 10:36:53,191 [DEBUG][       Thread-251792][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 10:36:53,192 [DEBUG][       Thread-251792][   transport.py][1871] : Switch to new keys ...
2025-06-13 10:36:53,192 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 10:36:53,192 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 10:36:53,193 [DEBUG][       Thread-251792][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 10:36:53,194 [DEBUG][       Thread-251792][   transport.py][1871] : userauth is OK
2025-06-13 10:36:53,218 [ INFO][       Thread-251792][   transport.py][1871] : Authentication (password) successful!
2025-06-13 10:36:53,219 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 10:36:53,884 [DEBUG][       Thread-251792][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 10:36:53,884 [DEBUG][       Thread-251792][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 10:36:53,929 [DEBUG][       Thread-251792][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 10:36:53,929 [DEBUG][       Thread-251792][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 10:36:53,932 [DEBUG][       Thread-251792][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 10:36:53,944 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 10:36:53,944 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 10:36:53,946 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 10:36:53,948 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 10:36:53,953 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 10:36:53,954 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 10:36:53,954 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 10:36:53,955 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 10:36:53,955 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.358273 -999.00   +9.20  21.43     54   +0.50 1 1 1 1 1   887    0 9.58 23.86 ----- 16.4 21.4 57.4 24.6 14.1 -28.3 12.6 -29.9 11.6 -28.1 12.9 -26.8
2025-06-13 10:36:53,955 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 10:36:53,955 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 10:36:53,955 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.358273
2025-06-13 10:36:53,956 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 10:36:53,956 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 10:36:53,956 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 10:36:53,956 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 10:36:53,956 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 10:36:53,956 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T10:36:49', tmtdew=10.32, humidity=48.56, cloud=0.0, wind=16.38, temperature=9.68, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T08:35:54.787', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 10:36:53,957 [DEBUG][       Thread-251792][   transport.py][1871] : EOF in transport thread
2025-06-13 10:36:54,040 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 10:36:54,050 [DEBUG][       Thread-251795][   transport.py][1871] : starting thread (client mode): 0x863c82b0
2025-06-13 10:36:54,050 [DEBUG][       Thread-251795][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 10:36:54,068 [DEBUG][       Thread-251795][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 10:36:54,068 [ INFO][       Thread-251795][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 10:36:54,075 [DEBUG][       Thread-251795][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 10:36:54,076 [DEBUG][       Thread-251795][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 10:36:54,076 [DEBUG][       Thread-251795][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 10:36:54,076 [DEBUG][       Thread-251795][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:36:54,076 [DEBUG][       Thread-251795][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:36:54,076 [DEBUG][       Thread-251795][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:36:54,076 [DEBUG][       Thread-251795][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:36:54,076 [DEBUG][       Thread-251795][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 10:36:54,076 [DEBUG][       Thread-251795][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 10:36:54,076 [DEBUG][       Thread-251795][   transport.py][1871] : client lang: <none>
2025-06-13 10:36:54,076 [DEBUG][       Thread-251795][   transport.py][1871] : server lang: <none>
2025-06-13 10:36:54,076 [DEBUG][       Thread-251795][   transport.py][1871] : kex follows: False
2025-06-13 10:36:54,076 [DEBUG][       Thread-251795][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 10:36:54,076 [DEBUG][       Thread-251795][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 10:36:54,076 [DEBUG][       Thread-251795][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 10:36:54,076 [DEBUG][       Thread-251795][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 10:36:54,076 [DEBUG][       Thread-251795][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 10:36:54,076 [DEBUG][       Thread-251795][   transport.py][1871] : Compression: none
2025-06-13 10:36:54,076 [DEBUG][       Thread-251795][   transport.py][1871] : === End of kex handshake ===
2025-06-13 10:36:54,132 [DEBUG][       Thread-251795][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 10:36:54,133 [DEBUG][       Thread-251795][   transport.py][1871] : Switch to new keys ...
2025-06-13 10:36:54,133 [DEBUG][       Thread-251795][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 10:36:54,133 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 10:36:54,134 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 10:36:54,188 [DEBUG][       Thread-251795][   transport.py][1871] : userauth is OK
2025-06-13 10:36:54,189 [DEBUG][       Thread-251795][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 10:36:54,189 [DEBUG][       Thread-251795][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 10:36:54,189 [DEBUG][       Thread-251795][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 10:36:54,189 [DEBUG][       Thread-251795][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 10:36:54,208 [ INFO][       Thread-251795][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 10:36:54,208 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 10:36:54,208 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 10:36:55,184 [DEBUG][       Thread-251795][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 10:36:55,184 [DEBUG][       Thread-251795][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 10:36:55,236 [DEBUG][       Thread-251795][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 10:36:55,236 [DEBUG][       Thread-251795][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 10:36:55,249 [DEBUG][       Thread-251795][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 10:36:55,258 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 10:36:55,258 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 10:36:55,266 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 10:36:55,275 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 10:36:55,275 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 10:36:55,276 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 10:36:55,283 [DEBUG][       Thread-251795][   transport.py][1871] : EOF in transport thread
2025-06-13 10:36:56,657 [DEBUG][Thread-251797 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:37:05,286 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 10:37:05,286 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 10:37:05,286 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 10:37:05,289 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 10:37:05,688 [DEBUG][Thread-251798 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:37:05,740 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 10, 36, 49), 10.32, 48.56, 0.0, 16.38, 9.68, 0, 0, 0, 2, 0, 0),)
2025-06-13 10:37:05,740 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 10:36:49
2025-06-13 10:37:05,822 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 10:37:05,826 [DEBUG][       Thread-251799][   transport.py][1871] : starting thread (client mode): 0x863bc310
2025-06-13 10:37:05,826 [DEBUG][       Thread-251799][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 10:37:05,848 [DEBUG][       Thread-251799][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 10:37:05,848 [ INFO][       Thread-251799][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 10:37:05,850 [DEBUG][       Thread-251799][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 10:37:05,850 [DEBUG][       Thread-251799][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 10:37:05,850 [DEBUG][       Thread-251799][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 10:37:05,850 [DEBUG][       Thread-251799][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:37:05,850 [DEBUG][       Thread-251799][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:37:05,850 [DEBUG][       Thread-251799][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:37:05,850 [DEBUG][       Thread-251799][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:37:05,850 [DEBUG][       Thread-251799][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 10:37:05,850 [DEBUG][       Thread-251799][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 10:37:05,850 [DEBUG][       Thread-251799][   transport.py][1871] : client lang: <none>
2025-06-13 10:37:05,850 [DEBUG][       Thread-251799][   transport.py][1871] : server lang: <none>
2025-06-13 10:37:05,850 [DEBUG][       Thread-251799][   transport.py][1871] : kex follows: False
2025-06-13 10:37:05,850 [DEBUG][       Thread-251799][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 10:37:05,850 [DEBUG][       Thread-251799][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 10:37:05,850 [DEBUG][       Thread-251799][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 10:37:05,850 [DEBUG][       Thread-251799][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 10:37:05,850 [DEBUG][       Thread-251799][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 10:37:05,850 [DEBUG][       Thread-251799][   transport.py][1871] : Compression: none
2025-06-13 10:37:05,850 [DEBUG][       Thread-251799][   transport.py][1871] : === End of kex handshake ===
2025-06-13 10:37:05,866 [DEBUG][       Thread-251799][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 10:37:05,866 [DEBUG][       Thread-251799][   transport.py][1871] : Switch to new keys ...
2025-06-13 10:37:05,866 [DEBUG][       Thread-251799][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 10:37:05,866 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 10:37:05,866 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 10:37:05,867 [DEBUG][       Thread-251799][   transport.py][1871] : userauth is OK
2025-06-13 10:37:05,879 [ INFO][       Thread-251799][   transport.py][1871] : Authentication (password) successful!
2025-06-13 10:37:05,879 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 10:37:06,527 [DEBUG][       Thread-251799][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 10:37:06,527 [DEBUG][       Thread-251799][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 10:37:06,568 [DEBUG][       Thread-251799][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 10:37:06,569 [DEBUG][       Thread-251799][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 10:37:06,571 [DEBUG][       Thread-251799][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 10:37:06,583 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 10:37:06,583 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 10:37:06,584 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 10:37:06,585 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 10:37:06,587 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 10:37:06,588 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 10:37:06,588 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 10:37:06,588 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 10:37:06,588 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.358620 -999.00   +9.20  19.38     53   +0.20 1 1 1 1 1   887    0 9.40 21.74 ----- 19.6 19.4 52.6 27.2 14.0 -28.0 12.6 -30.2 11.6 -28.1 12.9 -27.0
2025-06-13 10:37:06,588 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 10:37:06,588 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 10:37:06,588 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.358620
2025-06-13 10:37:06,588 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 10:37:06,588 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 10:37:06,588 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 10:37:06,588 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 10:37:06,588 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 10:37:06,588 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T10:36:49', tmtdew=10.32, humidity=48.56, cloud=0.0, wind=16.38, temperature=9.68, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T08:36:24.768', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 10:37:06,589 [DEBUG][       Thread-251799][   transport.py][1871] : EOF in transport thread
2025-06-13 10:37:06,659 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 10:37:06,670 [DEBUG][       Thread-251802][   transport.py][1871] : starting thread (client mode): 0x863c8880
2025-06-13 10:37:06,670 [DEBUG][       Thread-251802][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 10:37:06,685 [DEBUG][       Thread-251802][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 10:37:06,685 [ INFO][       Thread-251802][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 10:37:06,692 [DEBUG][       Thread-251802][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 10:37:06,693 [DEBUG][       Thread-251802][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 10:37:06,693 [DEBUG][       Thread-251802][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 10:37:06,693 [DEBUG][       Thread-251802][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:37:06,693 [DEBUG][       Thread-251802][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:37:06,693 [DEBUG][       Thread-251802][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:37:06,693 [DEBUG][       Thread-251802][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:37:06,693 [DEBUG][       Thread-251802][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 10:37:06,693 [DEBUG][       Thread-251802][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 10:37:06,693 [DEBUG][       Thread-251802][   transport.py][1871] : client lang: <none>
2025-06-13 10:37:06,693 [DEBUG][       Thread-251802][   transport.py][1871] : server lang: <none>
2025-06-13 10:37:06,693 [DEBUG][       Thread-251802][   transport.py][1871] : kex follows: False
2025-06-13 10:37:06,693 [DEBUG][       Thread-251802][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 10:37:06,693 [DEBUG][       Thread-251802][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 10:37:06,693 [DEBUG][       Thread-251802][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 10:37:06,693 [DEBUG][       Thread-251802][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 10:37:06,693 [DEBUG][       Thread-251802][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 10:37:06,693 [DEBUG][       Thread-251802][   transport.py][1871] : Compression: none
2025-06-13 10:37:06,693 [DEBUG][       Thread-251802][   transport.py][1871] : === End of kex handshake ===
2025-06-13 10:37:06,758 [DEBUG][       Thread-251802][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 10:37:06,758 [DEBUG][       Thread-251802][   transport.py][1871] : Switch to new keys ...
2025-06-13 10:37:06,759 [DEBUG][       Thread-251802][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 10:37:06,759 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 10:37:06,760 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 10:37:06,791 [DEBUG][Thread-251804 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:37:06,816 [DEBUG][       Thread-251802][   transport.py][1871] : userauth is OK
2025-06-13 10:37:06,816 [DEBUG][       Thread-251802][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 10:37:06,816 [DEBUG][       Thread-251802][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 10:37:06,816 [DEBUG][       Thread-251802][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 10:37:06,816 [DEBUG][       Thread-251802][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 10:37:06,837 [ INFO][       Thread-251802][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 10:37:06,837 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 10:37:06,838 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 10:37:07,920 [DEBUG][       Thread-251802][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 10:37:07,921 [DEBUG][       Thread-251802][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 10:37:07,972 [DEBUG][       Thread-251802][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 10:37:07,972 [DEBUG][       Thread-251802][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 10:37:07,981 [DEBUG][       Thread-251802][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 10:37:07,989 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 10:37:07,989 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 10:37:07,998 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 10:37:08,007 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 10:37:08,007 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 10:37:08,007 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 10:37:08,026 [DEBUG][       Thread-251802][   transport.py][1871] : EOF in transport thread
2025-06-13 10:37:14,703 [DEBUG][Thread-251805 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:37:18,018 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 10:37:18,018 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 10:37:18,018 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 10:37:18,020 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 10:37:18,481 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 10, 36, 49), 10.32, 48.56, 0.0, 16.38, 9.68, 0, 0, 0, 2, 0, 0),)
2025-06-13 10:37:18,481 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 10:36:49
2025-06-13 10:37:18,563 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 10:37:18,568 [DEBUG][       Thread-251806][   transport.py][1871] : starting thread (client mode): 0x84206ce0
2025-06-13 10:37:18,569 [DEBUG][       Thread-251806][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 10:37:18,589 [DEBUG][       Thread-251806][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 10:37:18,589 [ INFO][       Thread-251806][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 10:37:18,593 [DEBUG][       Thread-251806][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 10:37:18,593 [DEBUG][       Thread-251806][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 10:37:18,593 [DEBUG][       Thread-251806][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 10:37:18,593 [DEBUG][       Thread-251806][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:37:18,593 [DEBUG][       Thread-251806][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:37:18,593 [DEBUG][       Thread-251806][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:37:18,593 [DEBUG][       Thread-251806][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:37:18,593 [DEBUG][       Thread-251806][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 10:37:18,593 [DEBUG][       Thread-251806][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 10:37:18,593 [DEBUG][       Thread-251806][   transport.py][1871] : client lang: <none>
2025-06-13 10:37:18,593 [DEBUG][       Thread-251806][   transport.py][1871] : server lang: <none>
2025-06-13 10:37:18,593 [DEBUG][       Thread-251806][   transport.py][1871] : kex follows: False
2025-06-13 10:37:18,593 [DEBUG][       Thread-251806][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 10:37:18,593 [DEBUG][       Thread-251806][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 10:37:18,593 [DEBUG][       Thread-251806][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 10:37:18,593 [DEBUG][       Thread-251806][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 10:37:18,593 [DEBUG][       Thread-251806][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 10:37:18,593 [DEBUG][       Thread-251806][   transport.py][1871] : Compression: none
2025-06-13 10:37:18,593 [DEBUG][       Thread-251806][   transport.py][1871] : === End of kex handshake ===
2025-06-13 10:37:18,610 [DEBUG][       Thread-251806][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 10:37:18,610 [DEBUG][       Thread-251806][   transport.py][1871] : Switch to new keys ...
2025-06-13 10:37:18,611 [DEBUG][       Thread-251806][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 10:37:18,611 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 10:37:18,611 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 10:37:18,612 [DEBUG][       Thread-251806][   transport.py][1871] : userauth is OK
2025-06-13 10:37:18,625 [ INFO][       Thread-251806][   transport.py][1871] : Authentication (password) successful!
2025-06-13 10:37:18,626 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 10:37:19,252 [DEBUG][       Thread-251806][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 10:37:19,252 [DEBUG][       Thread-251806][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 10:37:19,301 [DEBUG][       Thread-251806][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 10:37:19,301 [DEBUG][       Thread-251806][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 10:37:19,304 [DEBUG][       Thread-251806][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 10:37:19,318 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 10:37:19,318 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 10:37:19,320 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 10:37:19,321 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 10:37:19,326 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 10:37:19,327 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 10:37:19,327 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 10:37:19,328 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 10:37:19,328 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.358620 -999.00   +9.20  19.38     53   +0.20 1 1 1 1 1   887    0 9.40 21.74 ----- 19.6 19.4 52.6 27.2 14.0 -28.0 12.6 -30.2 11.6 -28.1 12.9 -27.0
2025-06-13 10:37:19,328 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 10:37:19,328 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 10:37:19,328 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.358620
2025-06-13 10:37:19,329 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 10:37:19,329 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 10:37:19,329 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 10:37:19,329 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 10:37:19,329 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 10:37:19,330 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T10:36:49', tmtdew=10.32, humidity=48.56, cloud=0.0, wind=16.38, temperature=9.68, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T08:36:24.768', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 10:37:19,331 [DEBUG][       Thread-251806][   transport.py][1871] : EOF in transport thread
2025-06-13 10:37:19,412 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 10:37:19,421 [DEBUG][       Thread-251809][   transport.py][1871] : starting thread (client mode): 0x863a45e0
2025-06-13 10:37:19,421 [DEBUG][       Thread-251809][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 10:37:19,436 [DEBUG][       Thread-251809][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 10:37:19,436 [ INFO][       Thread-251809][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 10:37:19,443 [DEBUG][       Thread-251809][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 10:37:19,444 [DEBUG][       Thread-251809][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 10:37:19,444 [DEBUG][       Thread-251809][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 10:37:19,444 [DEBUG][       Thread-251809][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:37:19,444 [DEBUG][       Thread-251809][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:37:19,444 [DEBUG][       Thread-251809][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:37:19,444 [DEBUG][       Thread-251809][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:37:19,444 [DEBUG][       Thread-251809][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 10:37:19,444 [DEBUG][       Thread-251809][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 10:37:19,444 [DEBUG][       Thread-251809][   transport.py][1871] : client lang: <none>
2025-06-13 10:37:19,444 [DEBUG][       Thread-251809][   transport.py][1871] : server lang: <none>
2025-06-13 10:37:19,444 [DEBUG][       Thread-251809][   transport.py][1871] : kex follows: False
2025-06-13 10:37:19,444 [DEBUG][       Thread-251809][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 10:37:19,444 [DEBUG][       Thread-251809][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 10:37:19,444 [DEBUG][       Thread-251809][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 10:37:19,444 [DEBUG][       Thread-251809][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 10:37:19,444 [DEBUG][       Thread-251809][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 10:37:19,444 [DEBUG][       Thread-251809][   transport.py][1871] : Compression: none
2025-06-13 10:37:19,444 [DEBUG][       Thread-251809][   transport.py][1871] : === End of kex handshake ===
2025-06-13 10:37:19,501 [DEBUG][       Thread-251809][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 10:37:19,501 [DEBUG][       Thread-251809][   transport.py][1871] : Switch to new keys ...
2025-06-13 10:37:19,502 [DEBUG][       Thread-251809][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 10:37:19,502 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 10:37:19,503 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 10:37:19,559 [DEBUG][       Thread-251809][   transport.py][1871] : userauth is OK
2025-06-13 10:37:19,559 [DEBUG][       Thread-251809][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 10:37:19,559 [DEBUG][       Thread-251809][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 10:37:19,559 [DEBUG][       Thread-251809][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 10:37:19,559 [DEBUG][       Thread-251809][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 10:37:19,579 [ INFO][       Thread-251809][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 10:37:19,579 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 10:37:19,579 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 10:37:20,569 [DEBUG][       Thread-251809][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 10:37:20,570 [DEBUG][       Thread-251809][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 10:37:20,620 [DEBUG][       Thread-251809][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 10:37:20,620 [DEBUG][       Thread-251809][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 10:37:20,628 [DEBUG][       Thread-251809][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 10:37:20,637 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 10:37:20,637 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 10:37:20,646 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 10:37:20,654 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 10:37:20,655 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 10:37:20,655 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 10:37:20,663 [DEBUG][       Thread-251809][   transport.py][1871] : EOF in transport thread
2025-06-13 10:37:23,719 [DEBUG][Thread-251811 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:37:24,045 [DEBUG][Thread-251812 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:37:25,123 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:37:25,124 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:37:27,812 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:37:27,813 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:37:30,665 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 10:37:30,666 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 10:37:30,666 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 10:37:30,668 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 10:37:31,133 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 10, 37, 21), 10.32, 48.44, 0.0, 17.7, 9.68, 0, 0, 0, 2, 0, 0),)
2025-06-13 10:37:31,133 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 10:37:21
2025-06-13 10:37:31,214 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 10:37:31,218 [DEBUG][       Thread-251813][   transport.py][1871] : starting thread (client mode): 0x84206770
2025-06-13 10:37:31,218 [DEBUG][       Thread-251813][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 10:37:31,240 [DEBUG][       Thread-251813][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 10:37:31,240 [ INFO][       Thread-251813][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 10:37:31,244 [DEBUG][       Thread-251813][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 10:37:31,244 [DEBUG][       Thread-251813][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 10:37:31,244 [DEBUG][       Thread-251813][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 10:37:31,244 [DEBUG][       Thread-251813][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:37:31,244 [DEBUG][       Thread-251813][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:37:31,244 [DEBUG][       Thread-251813][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:37:31,244 [DEBUG][       Thread-251813][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:37:31,244 [DEBUG][       Thread-251813][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 10:37:31,244 [DEBUG][       Thread-251813][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 10:37:31,244 [DEBUG][       Thread-251813][   transport.py][1871] : client lang: <none>
2025-06-13 10:37:31,244 [DEBUG][       Thread-251813][   transport.py][1871] : server lang: <none>
2025-06-13 10:37:31,244 [DEBUG][       Thread-251813][   transport.py][1871] : kex follows: False
2025-06-13 10:37:31,244 [DEBUG][       Thread-251813][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 10:37:31,244 [DEBUG][       Thread-251813][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 10:37:31,244 [DEBUG][       Thread-251813][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 10:37:31,244 [DEBUG][       Thread-251813][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 10:37:31,244 [DEBUG][       Thread-251813][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 10:37:31,244 [DEBUG][       Thread-251813][   transport.py][1871] : Compression: none
2025-06-13 10:37:31,244 [DEBUG][       Thread-251813][   transport.py][1871] : === End of kex handshake ===
2025-06-13 10:37:31,257 [DEBUG][       Thread-251813][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 10:37:31,257 [DEBUG][       Thread-251813][   transport.py][1871] : Switch to new keys ...
2025-06-13 10:37:31,258 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 10:37:31,258 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 10:37:31,258 [DEBUG][       Thread-251813][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 10:37:31,259 [DEBUG][       Thread-251813][   transport.py][1871] : userauth is OK
2025-06-13 10:37:31,283 [ INFO][       Thread-251813][   transport.py][1871] : Authentication (password) successful!
2025-06-13 10:37:31,283 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 10:37:31,878 [DEBUG][       Thread-251813][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 10:37:31,878 [DEBUG][       Thread-251813][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 10:37:31,921 [DEBUG][       Thread-251813][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 10:37:31,921 [DEBUG][       Thread-251813][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 10:37:31,923 [DEBUG][       Thread-251813][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 10:37:31,931 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 10:37:31,931 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 10:37:31,933 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 10:37:31,934 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 10:37:31,939 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 10:37:31,941 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 10:37:31,941 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 10:37:31,942 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 10:37:31,942 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.359315 -999.00   +9.30  19.39     54   +0.40 1 1 1 1 1   887    0 9.34 20.75 ----- 16.9 19.4 52.8 21.2 14.1 -28.4 12.6 -30.1 11.6 -28.4 12.9 -26.8
2025-06-13 10:37:31,942 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 10:37:31,942 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 10:37:31,942 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.359315
2025-06-13 10:37:31,943 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 10:37:31,943 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 10:37:31,943 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 10:37:31,943 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 10:37:31,943 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 10:37:31,943 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T10:37:21', tmtdew=10.32, humidity=48.44, cloud=0.0, wind=17.7, temperature=9.68, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T08:37:24.816', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 10:37:31,944 [DEBUG][       Thread-251813][   transport.py][1871] : EOF in transport thread
2025-06-13 10:37:32,027 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 10:37:32,738 [DEBUG][Thread-251816 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:37:41,780 [DEBUG][Thread-251817 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:37:50,800 [DEBUG][Thread-251818 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:37:59,817 [DEBUG][Thread-251819 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:38:06,842 [DEBUG][Thread-251820 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:38:08,836 [DEBUG][Thread-251821 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:38:17,855 [DEBUG][Thread-251822 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:38:25,183 [DEBUG][Thread-251823 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:38:26,252 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:38:26,253 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:38:26,872 [DEBUG][Thread-251824 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:38:27,951 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:38:27,952 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:38:35,888 [DEBUG][Thread-251825 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:38:44,910 [DEBUG][Thread-251826 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:38:53,929 [DEBUG][Thread-251827 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:39:02,946 [DEBUG][Thread-251828 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:39:06,888 [DEBUG][Thread-251829 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:39:11,965 [DEBUG][Thread-251830 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:39:20,984 [DEBUG][Thread-251831 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:39:26,303 [DEBUG][Thread-251832 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:39:27,381 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:39:27,391 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:39:28,089 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:39:28,090 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:39:30,000 [DEBUG][Thread-251833 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:39:39,017 [DEBUG][Thread-251834 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:39:41,076 [WARNING][ poll_weather_worker][      driver.py][ 286] : Unable to open ssh connection for writing weather state to io.saao.ac.za: [Errno 110] Connection timed out
2025-06-13 10:39:48,037 [DEBUG][Thread-251835 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:39:51,087 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 10:39:51,087 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 10:39:51,087 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 10:39:51,089 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 10:39:51,576 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 10, 39, 28), 10.3, 48.61, 0.0, 16.34, 9.71, 0, 0, 0, 2, 0, 0),)
2025-06-13 10:39:51,576 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 10:39:28
2025-06-13 10:39:51,658 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 10:39:51,664 [DEBUG][       Thread-251836][   transport.py][1871] : starting thread (client mode): 0x842069b0
2025-06-13 10:39:51,665 [DEBUG][       Thread-251836][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 10:39:51,686 [DEBUG][       Thread-251836][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 10:39:51,686 [ INFO][       Thread-251836][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 10:39:51,688 [DEBUG][       Thread-251836][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 10:39:51,688 [DEBUG][       Thread-251836][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 10:39:51,688 [DEBUG][       Thread-251836][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 10:39:51,688 [DEBUG][       Thread-251836][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:39:51,688 [DEBUG][       Thread-251836][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:39:51,688 [DEBUG][       Thread-251836][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:39:51,688 [DEBUG][       Thread-251836][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:39:51,688 [DEBUG][       Thread-251836][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 10:39:51,688 [DEBUG][       Thread-251836][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 10:39:51,688 [DEBUG][       Thread-251836][   transport.py][1871] : client lang: <none>
2025-06-13 10:39:51,688 [DEBUG][       Thread-251836][   transport.py][1871] : server lang: <none>
2025-06-13 10:39:51,688 [DEBUG][       Thread-251836][   transport.py][1871] : kex follows: False
2025-06-13 10:39:51,688 [DEBUG][       Thread-251836][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 10:39:51,688 [DEBUG][       Thread-251836][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 10:39:51,688 [DEBUG][       Thread-251836][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 10:39:51,688 [DEBUG][       Thread-251836][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 10:39:51,688 [DEBUG][       Thread-251836][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 10:39:51,688 [DEBUG][       Thread-251836][   transport.py][1871] : Compression: none
2025-06-13 10:39:51,688 [DEBUG][       Thread-251836][   transport.py][1871] : === End of kex handshake ===
2025-06-13 10:39:51,705 [DEBUG][       Thread-251836][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 10:39:51,706 [DEBUG][       Thread-251836][   transport.py][1871] : Switch to new keys ...
2025-06-13 10:39:51,706 [DEBUG][       Thread-251836][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 10:39:51,707 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 10:39:51,707 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 10:39:51,708 [DEBUG][       Thread-251836][   transport.py][1871] : userauth is OK
2025-06-13 10:39:51,721 [ INFO][       Thread-251836][   transport.py][1871] : Authentication (password) successful!
2025-06-13 10:39:51,721 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 10:39:52,327 [DEBUG][       Thread-251836][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 10:39:52,327 [DEBUG][       Thread-251836][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 10:39:52,369 [DEBUG][       Thread-251836][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 10:39:52,369 [DEBUG][       Thread-251836][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 10:39:52,372 [DEBUG][       Thread-251836][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 10:39:52,385 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 10:39:52,385 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 10:39:52,387 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 10:39:52,388 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 10:39:52,393 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 10:39:52,395 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 10:39:52,395 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 10:39:52,396 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 10:39:52,396 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.360704 -999.00   +9.40  19.79     54   +0.70 1 1 1 1 1   887    0 9.46 13.94 ----- 21.1 19.8 63.4 22.1 14.1 -28.3 12.7 -29.9 11.7 -28.1 13.1 -27.1
2025-06-13 10:39:52,396 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 10:39:52,396 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 10:39:52,396 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.360704
2025-06-13 10:39:52,397 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 10:39:52,397 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 10:39:52,397 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 10:39:52,397 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 10:39:52,397 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 10:39:52,397 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T10:39:28', tmtdew=10.3, humidity=48.61, cloud=0.0, wind=16.34, temperature=9.71, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T08:39:24.826', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 10:39:52,398 [DEBUG][       Thread-251836][   transport.py][1871] : EOF in transport thread
2025-06-13 10:39:52,482 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 10:39:52,493 [DEBUG][       Thread-251839][   transport.py][1871] : starting thread (client mode): 0x867ffac0
2025-06-13 10:39:52,493 [DEBUG][       Thread-251839][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 10:39:52,509 [DEBUG][       Thread-251839][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 10:39:52,509 [ INFO][       Thread-251839][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 10:39:52,516 [DEBUG][       Thread-251839][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 10:39:52,517 [DEBUG][       Thread-251839][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 10:39:52,517 [DEBUG][       Thread-251839][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 10:39:52,517 [DEBUG][       Thread-251839][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:39:52,517 [DEBUG][       Thread-251839][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:39:52,517 [DEBUG][       Thread-251839][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:39:52,517 [DEBUG][       Thread-251839][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:39:52,517 [DEBUG][       Thread-251839][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 10:39:52,517 [DEBUG][       Thread-251839][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 10:39:52,517 [DEBUG][       Thread-251839][   transport.py][1871] : client lang: <none>
2025-06-13 10:39:52,517 [DEBUG][       Thread-251839][   transport.py][1871] : server lang: <none>
2025-06-13 10:39:52,517 [DEBUG][       Thread-251839][   transport.py][1871] : kex follows: False
2025-06-13 10:39:52,517 [DEBUG][       Thread-251839][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 10:39:52,517 [DEBUG][       Thread-251839][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 10:39:52,517 [DEBUG][       Thread-251839][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 10:39:52,517 [DEBUG][       Thread-251839][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 10:39:52,517 [DEBUG][       Thread-251839][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 10:39:52,517 [DEBUG][       Thread-251839][   transport.py][1871] : Compression: none
2025-06-13 10:39:52,517 [DEBUG][       Thread-251839][   transport.py][1871] : === End of kex handshake ===
2025-06-13 10:39:52,573 [DEBUG][       Thread-251839][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 10:39:52,573 [DEBUG][       Thread-251839][   transport.py][1871] : Switch to new keys ...
2025-06-13 10:39:52,574 [DEBUG][       Thread-251839][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 10:39:52,574 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 10:39:52,574 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 10:39:52,633 [DEBUG][       Thread-251839][   transport.py][1871] : userauth is OK
2025-06-13 10:39:52,633 [DEBUG][       Thread-251839][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 10:39:52,633 [DEBUG][       Thread-251839][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 10:39:52,633 [DEBUG][       Thread-251839][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 10:39:52,633 [DEBUG][       Thread-251839][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 10:39:52,651 [ INFO][       Thread-251839][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 10:39:52,652 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 10:39:52,652 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 10:39:53,682 [DEBUG][       Thread-251839][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 10:39:53,683 [DEBUG][       Thread-251839][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 10:39:53,731 [DEBUG][       Thread-251839][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 10:39:53,732 [DEBUG][       Thread-251839][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 10:39:53,741 [DEBUG][       Thread-251839][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 10:39:53,751 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 10:39:53,751 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 10:39:53,762 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 10:39:53,771 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 10:39:53,772 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 10:39:53,772 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 10:39:53,780 [DEBUG][       Thread-251839][   transport.py][1871] : EOF in transport thread
2025-06-13 10:39:57,054 [DEBUG][Thread-251841 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:40:03,782 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 10:40:03,783 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 10:40:03,783 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 10:40:03,785 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 10:40:04,275 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 10, 39, 28), 10.3, 48.61, 0.0, 16.34, 9.71, 0, 0, 0, 2, 0, 0),)
2025-06-13 10:40:04,275 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 10:39:28
2025-06-13 10:40:04,357 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 10:40:04,360 [DEBUG][       Thread-251842][   transport.py][1871] : starting thread (client mode): 0x86368d60
2025-06-13 10:40:04,360 [DEBUG][       Thread-251842][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 10:40:04,381 [DEBUG][       Thread-251842][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 10:40:04,381 [ INFO][       Thread-251842][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 10:40:04,384 [DEBUG][       Thread-251842][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 10:40:04,385 [DEBUG][       Thread-251842][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 10:40:04,385 [DEBUG][       Thread-251842][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 10:40:04,385 [DEBUG][       Thread-251842][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:40:04,385 [DEBUG][       Thread-251842][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:40:04,385 [DEBUG][       Thread-251842][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:40:04,385 [DEBUG][       Thread-251842][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:40:04,385 [DEBUG][       Thread-251842][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 10:40:04,385 [DEBUG][       Thread-251842][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 10:40:04,385 [DEBUG][       Thread-251842][   transport.py][1871] : client lang: <none>
2025-06-13 10:40:04,385 [DEBUG][       Thread-251842][   transport.py][1871] : server lang: <none>
2025-06-13 10:40:04,385 [DEBUG][       Thread-251842][   transport.py][1871] : kex follows: False
2025-06-13 10:40:04,385 [DEBUG][       Thread-251842][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 10:40:04,385 [DEBUG][       Thread-251842][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 10:40:04,385 [DEBUG][       Thread-251842][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 10:40:04,385 [DEBUG][       Thread-251842][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 10:40:04,385 [DEBUG][       Thread-251842][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 10:40:04,385 [DEBUG][       Thread-251842][   transport.py][1871] : Compression: none
2025-06-13 10:40:04,385 [DEBUG][       Thread-251842][   transport.py][1871] : === End of kex handshake ===
2025-06-13 10:40:04,402 [DEBUG][       Thread-251842][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 10:40:04,403 [DEBUG][       Thread-251842][   transport.py][1871] : Switch to new keys ...
2025-06-13 10:40:04,403 [DEBUG][       Thread-251842][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 10:40:04,404 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 10:40:04,404 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 10:40:04,405 [DEBUG][       Thread-251842][   transport.py][1871] : userauth is OK
2025-06-13 10:40:04,417 [ INFO][       Thread-251842][   transport.py][1871] : Authentication (password) successful!
2025-06-13 10:40:04,418 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 10:40:06,078 [DEBUG][Thread-251844 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:40:06,951 [DEBUG][Thread-251845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:40:07,138 [DEBUG][       Thread-251842][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 10:40:07,138 [DEBUG][       Thread-251842][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 10:40:07,181 [DEBUG][       Thread-251842][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 10:40:07,181 [DEBUG][       Thread-251842][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 10:40:07,183 [DEBUG][       Thread-251842][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 10:40:07,233 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 10:40:07,233 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 10:40:07,235 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 10:40:07,237 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 10:40:07,278 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 10:40:07,280 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 10:40:07,280 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 10:40:07,281 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 10:40:07,281 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.360704 -999.00   +9.40  19.79     54   +0.70 1 1 1 1 1   887    0 9.46 13.94 ----- 21.1 19.8 63.4 22.1 14.1 -28.3 12.7 -29.9 11.7 -28.1 13.1 -27.1
2025-06-13 10:40:07,281 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 10:40:07,281 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 10:40:07,281 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.360704
2025-06-13 10:40:07,281 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 10:40:07,282 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 10:40:07,282 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 10:40:07,282 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 10:40:07,282 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 10:40:07,282 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T10:39:28', tmtdew=10.3, humidity=48.61, cloud=0.0, wind=16.34, temperature=9.71, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T08:39:24.826', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 10:40:07,283 [DEBUG][       Thread-251842][   transport.py][1871] : EOF in transport thread
2025-06-13 10:40:07,366 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 10:40:07,375 [DEBUG][       Thread-251847][   transport.py][1871] : starting thread (client mode): 0x863bd420
2025-06-13 10:40:07,375 [DEBUG][       Thread-251847][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 10:40:07,390 [DEBUG][       Thread-251847][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 10:40:07,390 [ INFO][       Thread-251847][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 10:40:07,398 [DEBUG][       Thread-251847][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 10:40:07,398 [DEBUG][       Thread-251847][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 10:40:07,398 [DEBUG][       Thread-251847][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 10:40:07,398 [DEBUG][       Thread-251847][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:40:07,398 [DEBUG][       Thread-251847][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:40:07,398 [DEBUG][       Thread-251847][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:40:07,398 [DEBUG][       Thread-251847][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:40:07,398 [DEBUG][       Thread-251847][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 10:40:07,398 [DEBUG][       Thread-251847][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 10:40:07,398 [DEBUG][       Thread-251847][   transport.py][1871] : client lang: <none>
2025-06-13 10:40:07,398 [DEBUG][       Thread-251847][   transport.py][1871] : server lang: <none>
2025-06-13 10:40:07,398 [DEBUG][       Thread-251847][   transport.py][1871] : kex follows: False
2025-06-13 10:40:07,399 [DEBUG][       Thread-251847][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 10:40:07,399 [DEBUG][       Thread-251847][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 10:40:07,399 [DEBUG][       Thread-251847][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 10:40:07,399 [DEBUG][       Thread-251847][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 10:40:07,399 [DEBUG][       Thread-251847][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 10:40:07,399 [DEBUG][       Thread-251847][   transport.py][1871] : Compression: none
2025-06-13 10:40:07,399 [DEBUG][       Thread-251847][   transport.py][1871] : === End of kex handshake ===
2025-06-13 10:40:07,457 [DEBUG][       Thread-251847][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 10:40:07,457 [DEBUG][       Thread-251847][   transport.py][1871] : Switch to new keys ...
2025-06-13 10:40:07,458 [DEBUG][       Thread-251847][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 10:40:07,458 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 10:40:07,459 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 10:40:07,517 [DEBUG][       Thread-251847][   transport.py][1871] : userauth is OK
2025-06-13 10:40:07,517 [DEBUG][       Thread-251847][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 10:40:07,517 [DEBUG][       Thread-251847][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 10:40:07,517 [DEBUG][       Thread-251847][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 10:40:07,517 [DEBUG][       Thread-251847][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 10:40:07,536 [ INFO][       Thread-251847][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 10:40:07,536 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 10:40:07,537 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 10:40:08,556 [DEBUG][       Thread-251847][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 10:40:08,556 [DEBUG][       Thread-251847][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 10:40:08,603 [DEBUG][       Thread-251847][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 10:40:08,604 [DEBUG][       Thread-251847][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 10:40:08,613 [DEBUG][       Thread-251847][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 10:40:08,621 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 10:40:08,621 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 10:40:08,630 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 10:40:08,639 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 10:40:08,639 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 10:40:08,639 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 10:40:08,647 [DEBUG][       Thread-251847][   transport.py][1871] : EOF in transport thread
2025-06-13 10:40:15,097 [DEBUG][Thread-251849 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:40:18,649 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 10:40:18,650 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 10:40:18,650 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 10:40:18,652 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 10:40:19,142 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 10, 39, 28), 10.3, 48.61, 0.0, 16.34, 9.71, 0, 0, 0, 2, 0, 0),)
2025-06-13 10:40:19,142 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 10:39:28
2025-06-13 10:40:19,223 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 10:40:19,230 [DEBUG][       Thread-251850][   transport.py][1871] : starting thread (client mode): 0x842041f0
2025-06-13 10:40:19,230 [DEBUG][       Thread-251850][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 10:40:19,251 [DEBUG][       Thread-251850][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 10:40:19,251 [ INFO][       Thread-251850][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 10:40:19,254 [DEBUG][       Thread-251850][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 10:40:19,254 [DEBUG][       Thread-251850][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 10:40:19,254 [DEBUG][       Thread-251850][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 10:40:19,254 [DEBUG][       Thread-251850][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:40:19,255 [DEBUG][       Thread-251850][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:40:19,255 [DEBUG][       Thread-251850][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:40:19,255 [DEBUG][       Thread-251850][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:40:19,255 [DEBUG][       Thread-251850][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 10:40:19,255 [DEBUG][       Thread-251850][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 10:40:19,255 [DEBUG][       Thread-251850][   transport.py][1871] : client lang: <none>
2025-06-13 10:40:19,255 [DEBUG][       Thread-251850][   transport.py][1871] : server lang: <none>
2025-06-13 10:40:19,255 [DEBUG][       Thread-251850][   transport.py][1871] : kex follows: False
2025-06-13 10:40:19,255 [DEBUG][       Thread-251850][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 10:40:19,255 [DEBUG][       Thread-251850][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 10:40:19,255 [DEBUG][       Thread-251850][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 10:40:19,255 [DEBUG][       Thread-251850][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 10:40:19,255 [DEBUG][       Thread-251850][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 10:40:19,255 [DEBUG][       Thread-251850][   transport.py][1871] : Compression: none
2025-06-13 10:40:19,255 [DEBUG][       Thread-251850][   transport.py][1871] : === End of kex handshake ===
2025-06-13 10:40:19,262 [DEBUG][       Thread-251850][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 10:40:19,262 [DEBUG][       Thread-251850][   transport.py][1871] : Switch to new keys ...
2025-06-13 10:40:19,263 [DEBUG][       Thread-251850][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 10:40:19,263 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 10:40:19,263 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 10:40:19,263 [DEBUG][       Thread-251850][   transport.py][1871] : userauth is OK
2025-06-13 10:40:19,276 [ INFO][       Thread-251850][   transport.py][1871] : Authentication (password) successful!
2025-06-13 10:40:19,276 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 10:40:19,875 [DEBUG][       Thread-251850][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 10:40:19,875 [DEBUG][       Thread-251850][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 10:40:19,917 [DEBUG][       Thread-251850][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 10:40:19,917 [DEBUG][       Thread-251850][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 10:40:19,920 [DEBUG][       Thread-251850][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 10:40:19,931 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 10:40:19,932 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 10:40:19,933 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 10:40:19,935 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 10:40:19,940 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 10:40:19,942 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 10:40:19,942 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 10:40:19,943 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 10:40:19,943 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.361051 -999.00   +9.30  18.27     54   +0.50 1 1 1 1 1   887    0 9.26 11.82 ----- 22.4 18.3 53.4 22.9 14.1 -27.9 12.7 -30.1 11.8 -28.5 13.1 -26.9
2025-06-13 10:40:19,943 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 10:40:19,943 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 10:40:19,943 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.361051
2025-06-13 10:40:19,943 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 10:40:19,944 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 10:40:19,944 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 10:40:19,944 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 10:40:19,944 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 10:40:19,944 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T10:39:28', tmtdew=10.3, humidity=48.61, cloud=0.0, wind=16.34, temperature=9.71, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T08:39:54.806', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 10:40:19,945 [DEBUG][       Thread-251850][   transport.py][1871] : EOF in transport thread
2025-06-13 10:40:20,029 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 10:40:20,039 [DEBUG][       Thread-251853][   transport.py][1871] : starting thread (client mode): 0x863a45e0
2025-06-13 10:40:20,039 [DEBUG][       Thread-251853][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 10:40:20,054 [DEBUG][       Thread-251853][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 10:40:20,055 [ INFO][       Thread-251853][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 10:40:20,062 [DEBUG][       Thread-251853][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 10:40:20,062 [DEBUG][       Thread-251853][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 10:40:20,062 [DEBUG][       Thread-251853][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 10:40:20,062 [DEBUG][       Thread-251853][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:40:20,062 [DEBUG][       Thread-251853][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:40:20,062 [DEBUG][       Thread-251853][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:40:20,062 [DEBUG][       Thread-251853][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:40:20,063 [DEBUG][       Thread-251853][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 10:40:20,063 [DEBUG][       Thread-251853][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 10:40:20,063 [DEBUG][       Thread-251853][   transport.py][1871] : client lang: <none>
2025-06-13 10:40:20,063 [DEBUG][       Thread-251853][   transport.py][1871] : server lang: <none>
2025-06-13 10:40:20,063 [DEBUG][       Thread-251853][   transport.py][1871] : kex follows: False
2025-06-13 10:40:20,063 [DEBUG][       Thread-251853][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 10:40:20,063 [DEBUG][       Thread-251853][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 10:40:20,063 [DEBUG][       Thread-251853][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 10:40:20,063 [DEBUG][       Thread-251853][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 10:40:20,063 [DEBUG][       Thread-251853][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 10:40:20,063 [DEBUG][       Thread-251853][   transport.py][1871] : Compression: none
2025-06-13 10:40:20,063 [DEBUG][       Thread-251853][   transport.py][1871] : === End of kex handshake ===
2025-06-13 10:40:20,121 [DEBUG][       Thread-251853][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 10:40:20,121 [DEBUG][       Thread-251853][   transport.py][1871] : Switch to new keys ...
2025-06-13 10:40:20,122 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 10:40:20,122 [DEBUG][       Thread-251853][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 10:40:20,123 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 10:40:20,177 [DEBUG][       Thread-251853][   transport.py][1871] : userauth is OK
2025-06-13 10:40:20,177 [DEBUG][       Thread-251853][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 10:40:20,177 [DEBUG][       Thread-251853][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 10:40:20,177 [DEBUG][       Thread-251853][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 10:40:20,177 [DEBUG][       Thread-251853][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 10:40:20,202 [ INFO][       Thread-251853][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 10:40:20,202 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 10:40:20,203 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 10:40:21,239 [DEBUG][       Thread-251853][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 10:40:21,239 [DEBUG][       Thread-251853][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 10:40:21,287 [DEBUG][       Thread-251853][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 10:40:21,287 [DEBUG][       Thread-251853][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 10:40:21,296 [DEBUG][       Thread-251853][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 10:40:21,304 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 10:40:21,304 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 10:40:21,312 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 10:40:21,320 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 10:40:21,320 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 10:40:21,320 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 10:40:21,328 [DEBUG][       Thread-251853][   transport.py][1871] : EOF in transport thread
2025-06-13 10:40:24,113 [DEBUG][Thread-251855 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:40:27,471 [DEBUG][Thread-251856 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:40:28,244 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:40:28,245 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:40:28,555 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:40:28,556 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:40:31,330 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 10:40:31,330 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 10:40:31,330 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 10:40:31,331 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 10:40:31,806 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 10, 39, 28), 10.3, 48.61, 0.0, 16.34, 9.71, 0, 0, 0, 2, 0, 0),)
2025-06-13 10:40:31,806 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 10:39:28
2025-06-13 10:40:31,887 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 10:40:31,892 [DEBUG][       Thread-251857][   transport.py][1871] : starting thread (client mode): 0x867b7be0
2025-06-13 10:40:31,892 [DEBUG][       Thread-251857][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 10:40:31,912 [DEBUG][       Thread-251857][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 10:40:31,912 [ INFO][       Thread-251857][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 10:40:31,916 [DEBUG][       Thread-251857][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 10:40:31,916 [DEBUG][       Thread-251857][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 10:40:31,916 [DEBUG][       Thread-251857][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 10:40:31,916 [DEBUG][       Thread-251857][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:40:31,916 [DEBUG][       Thread-251857][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:40:31,916 [DEBUG][       Thread-251857][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:40:31,916 [DEBUG][       Thread-251857][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:40:31,916 [DEBUG][       Thread-251857][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 10:40:31,916 [DEBUG][       Thread-251857][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 10:40:31,916 [DEBUG][       Thread-251857][   transport.py][1871] : client lang: <none>
2025-06-13 10:40:31,916 [DEBUG][       Thread-251857][   transport.py][1871] : server lang: <none>
2025-06-13 10:40:31,916 [DEBUG][       Thread-251857][   transport.py][1871] : kex follows: False
2025-06-13 10:40:31,916 [DEBUG][       Thread-251857][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 10:40:31,916 [DEBUG][       Thread-251857][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 10:40:31,916 [DEBUG][       Thread-251857][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 10:40:31,916 [DEBUG][       Thread-251857][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 10:40:31,916 [DEBUG][       Thread-251857][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 10:40:31,916 [DEBUG][       Thread-251857][   transport.py][1871] : Compression: none
2025-06-13 10:40:31,916 [DEBUG][       Thread-251857][   transport.py][1871] : === End of kex handshake ===
2025-06-13 10:40:31,933 [DEBUG][       Thread-251857][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 10:40:31,933 [DEBUG][       Thread-251857][   transport.py][1871] : Switch to new keys ...
2025-06-13 10:40:31,934 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 10:40:31,934 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 10:40:31,934 [DEBUG][       Thread-251857][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 10:40:31,935 [DEBUG][       Thread-251857][   transport.py][1871] : userauth is OK
2025-06-13 10:40:31,948 [ INFO][       Thread-251857][   transport.py][1871] : Authentication (password) successful!
2025-06-13 10:40:31,948 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 10:40:32,612 [DEBUG][       Thread-251857][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 10:40:32,612 [DEBUG][       Thread-251857][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 10:40:32,656 [DEBUG][       Thread-251857][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 10:40:32,656 [DEBUG][       Thread-251857][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 10:40:32,659 [DEBUG][       Thread-251857][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 10:40:32,672 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 10:40:32,672 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 10:40:32,673 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 10:40:32,674 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 10:40:32,677 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 10:40:32,678 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 10:40:32,678 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 10:40:32,678 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 10:40:32,679 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.361051 -999.00   +9.30  18.27     54   +0.50 1 1 1 1 1   887    0 9.26 11.82 ----- 22.4 18.3 53.4 22.9 14.1 -27.9 12.7 -30.1 11.8 -28.5 13.1 -26.9
2025-06-13 10:40:32,679 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 10:40:32,679 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 10:40:32,679 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.361051
2025-06-13 10:40:32,679 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 10:40:32,679 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 10:40:32,679 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 10:40:32,679 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 10:40:32,679 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 10:40:32,679 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T10:39:28', tmtdew=10.3, humidity=48.61, cloud=0.0, wind=16.34, temperature=9.71, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T08:39:54.806', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 10:40:32,679 [DEBUG][       Thread-251857][   transport.py][1871] : EOF in transport thread
2025-06-13 10:40:32,751 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 10:40:32,761 [DEBUG][       Thread-251860][   transport.py][1871] : starting thread (client mode): 0x863bea10
2025-06-13 10:40:32,761 [DEBUG][       Thread-251860][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 10:40:32,778 [DEBUG][       Thread-251860][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 10:40:32,778 [ INFO][       Thread-251860][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 10:40:32,786 [DEBUG][       Thread-251860][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 10:40:32,786 [DEBUG][       Thread-251860][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 10:40:32,786 [DEBUG][       Thread-251860][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 10:40:32,786 [DEBUG][       Thread-251860][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:40:32,786 [DEBUG][       Thread-251860][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:40:32,786 [DEBUG][       Thread-251860][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:40:32,786 [DEBUG][       Thread-251860][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:40:32,786 [DEBUG][       Thread-251860][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 10:40:32,786 [DEBUG][       Thread-251860][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 10:40:32,786 [DEBUG][       Thread-251860][   transport.py][1871] : client lang: <none>
2025-06-13 10:40:32,786 [DEBUG][       Thread-251860][   transport.py][1871] : server lang: <none>
2025-06-13 10:40:32,786 [DEBUG][       Thread-251860][   transport.py][1871] : kex follows: False
2025-06-13 10:40:32,786 [DEBUG][       Thread-251860][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 10:40:32,786 [DEBUG][       Thread-251860][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 10:40:32,786 [DEBUG][       Thread-251860][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 10:40:32,786 [DEBUG][       Thread-251860][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 10:40:32,786 [DEBUG][       Thread-251860][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 10:40:32,786 [DEBUG][       Thread-251860][   transport.py][1871] : Compression: none
2025-06-13 10:40:32,786 [DEBUG][       Thread-251860][   transport.py][1871] : === End of kex handshake ===
2025-06-13 10:40:32,844 [DEBUG][       Thread-251860][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 10:40:32,844 [DEBUG][       Thread-251860][   transport.py][1871] : Switch to new keys ...
2025-06-13 10:40:32,844 [DEBUG][       Thread-251860][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 10:40:32,844 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 10:40:32,844 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 10:40:32,901 [DEBUG][       Thread-251860][   transport.py][1871] : userauth is OK
2025-06-13 10:40:32,901 [DEBUG][       Thread-251860][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 10:40:32,901 [DEBUG][       Thread-251860][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 10:40:32,901 [DEBUG][       Thread-251860][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 10:40:32,901 [DEBUG][       Thread-251860][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 10:40:32,915 [ INFO][       Thread-251860][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 10:40:32,915 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 10:40:32,915 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 10:40:33,129 [DEBUG][Thread-251862 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:40:33,953 [DEBUG][       Thread-251860][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 10:40:33,953 [DEBUG][       Thread-251860][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 10:40:34,003 [DEBUG][       Thread-251860][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 10:40:34,003 [DEBUG][       Thread-251860][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 10:40:34,012 [DEBUG][       Thread-251860][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 10:40:34,020 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 10:40:34,020 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 10:40:34,028 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 10:40:34,036 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 10:40:34,036 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 10:40:34,036 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 10:40:34,044 [DEBUG][       Thread-251860][   transport.py][1871] : EOF in transport thread
2025-06-13 10:40:42,149 [DEBUG][Thread-251863 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:40:44,044 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 10:40:44,044 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 10:40:44,044 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 10:40:44,047 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 10:40:44,524 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 10, 40, 31), 10.32, 48.53, 0.0, 14.7, 9.66, 0, 0, 0, 2, 0, 0),)
2025-06-13 10:40:44,524 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 10:40:31
2025-06-13 10:40:44,605 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 10:40:44,611 [DEBUG][       Thread-251864][   transport.py][1871] : starting thread (client mode): 0x863bcc70
2025-06-13 10:40:44,611 [DEBUG][       Thread-251864][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 10:40:44,630 [DEBUG][       Thread-251864][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 10:40:44,630 [ INFO][       Thread-251864][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 10:40:44,632 [DEBUG][       Thread-251864][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 10:40:44,632 [DEBUG][       Thread-251864][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 10:40:44,632 [DEBUG][       Thread-251864][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 10:40:44,632 [DEBUG][       Thread-251864][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:40:44,632 [DEBUG][       Thread-251864][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:40:44,632 [DEBUG][       Thread-251864][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:40:44,632 [DEBUG][       Thread-251864][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:40:44,632 [DEBUG][       Thread-251864][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 10:40:44,632 [DEBUG][       Thread-251864][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 10:40:44,632 [DEBUG][       Thread-251864][   transport.py][1871] : client lang: <none>
2025-06-13 10:40:44,632 [DEBUG][       Thread-251864][   transport.py][1871] : server lang: <none>
2025-06-13 10:40:44,632 [DEBUG][       Thread-251864][   transport.py][1871] : kex follows: False
2025-06-13 10:40:44,632 [DEBUG][       Thread-251864][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 10:40:44,632 [DEBUG][       Thread-251864][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 10:40:44,633 [DEBUG][       Thread-251864][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 10:40:44,633 [DEBUG][       Thread-251864][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 10:40:44,633 [DEBUG][       Thread-251864][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 10:40:44,633 [DEBUG][       Thread-251864][   transport.py][1871] : Compression: none
2025-06-13 10:40:44,633 [DEBUG][       Thread-251864][   transport.py][1871] : === End of kex handshake ===
2025-06-13 10:40:44,651 [DEBUG][       Thread-251864][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 10:40:44,651 [DEBUG][       Thread-251864][   transport.py][1871] : Switch to new keys ...
2025-06-13 10:40:44,652 [DEBUG][       Thread-251864][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 10:40:44,652 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 10:40:44,653 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 10:40:44,654 [DEBUG][       Thread-251864][   transport.py][1871] : userauth is OK
2025-06-13 10:40:44,666 [ INFO][       Thread-251864][   transport.py][1871] : Authentication (password) successful!
2025-06-13 10:40:44,667 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 10:40:45,297 [DEBUG][       Thread-251864][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 10:40:45,298 [DEBUG][       Thread-251864][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 10:40:45,341 [DEBUG][       Thread-251864][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 10:40:45,341 [DEBUG][       Thread-251864][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 10:40:45,344 [DEBUG][       Thread-251864][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 10:40:45,355 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 10:40:45,355 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 10:40:45,357 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 10:40:45,359 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 10:40:45,363 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 10:40:45,365 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 10:40:45,365 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 10:40:45,366 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 10:40:45,366 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.361051 -999.00   +9.30  18.27     54   +0.50 1 1 1 1 1   887    0 9.26 11.82 ----- 22.4 18.3 53.4 22.9 14.1 -27.9 12.7 -30.1 11.8 -28.5 13.1 -26.9
2025-06-13 10:40:45,366 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 10:40:45,366 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 10:40:45,366 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.361051
2025-06-13 10:40:45,367 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 10:40:45,367 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 10:40:45,367 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 10:40:45,367 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 10:40:45,367 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 10:40:45,367 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T10:40:31', tmtdew=10.32, humidity=48.53, cloud=0.0, wind=14.7, temperature=9.66, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T08:39:54.806', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 10:40:45,368 [DEBUG][       Thread-251864][   transport.py][1871] : EOF in transport thread
2025-06-13 10:40:45,452 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 10:40:45,471 [DEBUG][       Thread-251867][   transport.py][1871] : starting thread (client mode): 0x867b6380
2025-06-13 10:40:45,471 [DEBUG][       Thread-251867][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 10:40:45,488 [DEBUG][       Thread-251867][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 10:40:45,488 [ INFO][       Thread-251867][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 10:40:45,496 [DEBUG][       Thread-251867][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 10:40:45,496 [DEBUG][       Thread-251867][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 10:40:45,497 [DEBUG][       Thread-251867][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 10:40:45,497 [DEBUG][       Thread-251867][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:40:45,497 [DEBUG][       Thread-251867][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:40:45,497 [DEBUG][       Thread-251867][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:40:45,497 [DEBUG][       Thread-251867][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:40:45,497 [DEBUG][       Thread-251867][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 10:40:45,497 [DEBUG][       Thread-251867][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 10:40:45,497 [DEBUG][       Thread-251867][   transport.py][1871] : client lang: <none>
2025-06-13 10:40:45,497 [DEBUG][       Thread-251867][   transport.py][1871] : server lang: <none>
2025-06-13 10:40:45,497 [DEBUG][       Thread-251867][   transport.py][1871] : kex follows: False
2025-06-13 10:40:45,497 [DEBUG][       Thread-251867][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 10:40:45,497 [DEBUG][       Thread-251867][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 10:40:45,497 [DEBUG][       Thread-251867][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 10:40:45,497 [DEBUG][       Thread-251867][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 10:40:45,497 [DEBUG][       Thread-251867][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 10:40:45,497 [DEBUG][       Thread-251867][   transport.py][1871] : Compression: none
2025-06-13 10:40:45,497 [DEBUG][       Thread-251867][   transport.py][1871] : === End of kex handshake ===
2025-06-13 10:40:45,556 [DEBUG][       Thread-251867][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 10:40:45,557 [DEBUG][       Thread-251867][   transport.py][1871] : Switch to new keys ...
2025-06-13 10:40:45,557 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 10:40:45,558 [DEBUG][       Thread-251867][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 10:40:45,558 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 10:40:45,613 [DEBUG][       Thread-251867][   transport.py][1871] : userauth is OK
2025-06-13 10:40:45,613 [DEBUG][       Thread-251867][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 10:40:45,613 [DEBUG][       Thread-251867][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 10:40:45,613 [DEBUG][       Thread-251867][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 10:40:45,613 [DEBUG][       Thread-251867][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 10:40:45,632 [ INFO][       Thread-251867][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 10:40:45,632 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 10:40:45,632 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 10:40:46,657 [DEBUG][       Thread-251867][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 10:40:46,657 [DEBUG][       Thread-251867][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 10:40:46,707 [DEBUG][       Thread-251867][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 10:40:46,707 [DEBUG][       Thread-251867][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 10:40:46,716 [DEBUG][       Thread-251867][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 10:40:46,725 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 10:40:46,725 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 10:40:46,735 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 10:40:46,743 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 10:40:46,743 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 10:40:46,743 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 10:40:46,751 [DEBUG][       Thread-251867][   transport.py][1871] : EOF in transport thread
2025-06-13 10:40:51,167 [DEBUG][Thread-251869 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:40:56,753 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 10:40:56,754 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 10:40:56,754 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 10:40:56,756 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 10:40:57,233 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 10, 40, 31), 10.32, 48.53, 0.0, 14.7, 9.66, 0, 0, 0, 2, 0, 0),)
2025-06-13 10:40:57,234 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 10:40:31
2025-06-13 10:40:57,315 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 10:40:57,319 [DEBUG][       Thread-251870][   transport.py][1871] : starting thread (client mode): 0x84205cc0
2025-06-13 10:40:57,319 [DEBUG][       Thread-251870][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 10:40:57,339 [DEBUG][       Thread-251870][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 10:40:57,339 [ INFO][       Thread-251870][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 10:40:57,342 [DEBUG][       Thread-251870][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 10:40:57,342 [DEBUG][       Thread-251870][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 10:40:57,343 [DEBUG][       Thread-251870][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 10:40:57,343 [DEBUG][       Thread-251870][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:40:57,343 [DEBUG][       Thread-251870][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:40:57,343 [DEBUG][       Thread-251870][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:40:57,343 [DEBUG][       Thread-251870][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:40:57,343 [DEBUG][       Thread-251870][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 10:40:57,343 [DEBUG][       Thread-251870][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 10:40:57,343 [DEBUG][       Thread-251870][   transport.py][1871] : client lang: <none>
2025-06-13 10:40:57,343 [DEBUG][       Thread-251870][   transport.py][1871] : server lang: <none>
2025-06-13 10:40:57,343 [DEBUG][       Thread-251870][   transport.py][1871] : kex follows: False
2025-06-13 10:40:57,343 [DEBUG][       Thread-251870][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 10:40:57,343 [DEBUG][       Thread-251870][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 10:40:57,343 [DEBUG][       Thread-251870][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 10:40:57,343 [DEBUG][       Thread-251870][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 10:40:57,343 [DEBUG][       Thread-251870][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 10:40:57,343 [DEBUG][       Thread-251870][   transport.py][1871] : Compression: none
2025-06-13 10:40:57,343 [DEBUG][       Thread-251870][   transport.py][1871] : === End of kex handshake ===
2025-06-13 10:40:57,359 [DEBUG][       Thread-251870][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 10:40:57,360 [DEBUG][       Thread-251870][   transport.py][1871] : Switch to new keys ...
2025-06-13 10:40:57,360 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 10:40:57,361 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 10:40:57,361 [DEBUG][       Thread-251870][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 10:40:57,362 [DEBUG][       Thread-251870][   transport.py][1871] : userauth is OK
2025-06-13 10:40:57,375 [ INFO][       Thread-251870][   transport.py][1871] : Authentication (password) successful!
2025-06-13 10:40:57,376 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 10:40:58,018 [DEBUG][       Thread-251870][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 10:40:58,019 [DEBUG][       Thread-251870][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 10:40:58,063 [DEBUG][       Thread-251870][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 10:40:58,063 [DEBUG][       Thread-251870][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 10:40:58,066 [DEBUG][       Thread-251870][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 10:40:58,079 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 10:40:58,080 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 10:40:58,081 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 10:40:58,083 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 10:40:58,088 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 10:40:58,090 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 10:40:58,090 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 10:40:58,090 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 10:40:58,090 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.361398 -999.00   +9.30  19.21     55   +0.70 1 1 1 1 1   887    0 9.06 9.83 ----- 22.9 19.2 56.3 25.3 14.1 -28.0 12.7 -30.8 11.7 -28.8 13.0 -27.1
2025-06-13 10:40:58,091 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 10:40:58,091 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 10:40:58,091 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.361398
2025-06-13 10:40:58,091 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 10:40:58,092 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 10:40:58,092 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 10:40:58,092 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 10:40:58,092 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 10:40:58,092 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T10:40:31', tmtdew=10.32, humidity=48.53, cloud=0.0, wind=14.7, temperature=9.66, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T08:40:24.787', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 10:40:58,093 [DEBUG][       Thread-251870][   transport.py][1871] : EOF in transport thread
2025-06-13 10:40:58,175 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 10:40:58,186 [DEBUG][       Thread-251873][   transport.py][1871] : starting thread (client mode): 0x8636a800
2025-06-13 10:40:58,186 [DEBUG][       Thread-251873][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 10:40:58,202 [DEBUG][       Thread-251873][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 10:40:58,202 [ INFO][       Thread-251873][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 10:40:58,209 [DEBUG][       Thread-251873][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 10:40:58,210 [DEBUG][       Thread-251873][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 10:40:58,210 [DEBUG][       Thread-251873][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 10:40:58,210 [DEBUG][       Thread-251873][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:40:58,210 [DEBUG][       Thread-251873][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:40:58,210 [DEBUG][       Thread-251873][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:40:58,210 [DEBUG][       Thread-251873][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:40:58,210 [DEBUG][       Thread-251873][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 10:40:58,210 [DEBUG][       Thread-251873][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 10:40:58,210 [DEBUG][       Thread-251873][   transport.py][1871] : client lang: <none>
2025-06-13 10:40:58,210 [DEBUG][       Thread-251873][   transport.py][1871] : server lang: <none>
2025-06-13 10:40:58,210 [DEBUG][       Thread-251873][   transport.py][1871] : kex follows: False
2025-06-13 10:40:58,210 [DEBUG][       Thread-251873][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 10:40:58,210 [DEBUG][       Thread-251873][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 10:40:58,210 [DEBUG][       Thread-251873][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 10:40:58,210 [DEBUG][       Thread-251873][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 10:40:58,210 [DEBUG][       Thread-251873][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 10:40:58,210 [DEBUG][       Thread-251873][   transport.py][1871] : Compression: none
2025-06-13 10:40:58,210 [DEBUG][       Thread-251873][   transport.py][1871] : === End of kex handshake ===
2025-06-13 10:40:58,269 [DEBUG][       Thread-251873][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 10:40:58,269 [DEBUG][       Thread-251873][   transport.py][1871] : Switch to new keys ...
2025-06-13 10:40:58,269 [DEBUG][       Thread-251873][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 10:40:58,270 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 10:40:58,270 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 10:40:58,329 [DEBUG][       Thread-251873][   transport.py][1871] : userauth is OK
2025-06-13 10:40:58,329 [DEBUG][       Thread-251873][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 10:40:58,329 [DEBUG][       Thread-251873][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 10:40:58,329 [DEBUG][       Thread-251873][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 10:40:58,329 [DEBUG][       Thread-251873][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 10:40:58,352 [ INFO][       Thread-251873][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 10:40:58,352 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 10:40:58,352 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 10:40:59,379 [DEBUG][       Thread-251873][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 10:40:59,379 [DEBUG][       Thread-251873][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 10:40:59,428 [DEBUG][       Thread-251873][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 10:40:59,428 [DEBUG][       Thread-251873][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 10:40:59,437 [DEBUG][       Thread-251873][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 10:40:59,446 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 10:40:59,447 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 10:40:59,454 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 10:40:59,463 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 10:40:59,464 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 10:40:59,464 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 10:40:59,472 [DEBUG][       Thread-251873][   transport.py][1871] : EOF in transport thread
2025-06-13 10:41:00,195 [DEBUG][Thread-251875 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:41:07,002 [DEBUG][Thread-251876 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:41:09,213 [DEBUG][Thread-251877 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:41:09,474 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 10:41:09,474 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 10:41:09,474 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 10:41:09,477 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 10:41:09,965 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 10, 41, 4), 10.26, 48.75, 0.0, 16.87, 9.65, 0, 0, 0, 2, 0, 0),)
2025-06-13 10:41:09,965 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 10:41:04
2025-06-13 10:41:10,046 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 10:41:10,052 [DEBUG][       Thread-251878][   transport.py][1871] : starting thread (client mode): 0x863bcfd0
2025-06-13 10:41:10,052 [DEBUG][       Thread-251878][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 10:41:10,075 [DEBUG][       Thread-251878][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 10:41:10,075 [ INFO][       Thread-251878][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 10:41:10,078 [DEBUG][       Thread-251878][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 10:41:10,079 [DEBUG][       Thread-251878][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 10:41:10,079 [DEBUG][       Thread-251878][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 10:41:10,079 [DEBUG][       Thread-251878][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:41:10,079 [DEBUG][       Thread-251878][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:41:10,079 [DEBUG][       Thread-251878][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:41:10,079 [DEBUG][       Thread-251878][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:41:10,079 [DEBUG][       Thread-251878][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 10:41:10,079 [DEBUG][       Thread-251878][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 10:41:10,079 [DEBUG][       Thread-251878][   transport.py][1871] : client lang: <none>
2025-06-13 10:41:10,079 [DEBUG][       Thread-251878][   transport.py][1871] : server lang: <none>
2025-06-13 10:41:10,079 [DEBUG][       Thread-251878][   transport.py][1871] : kex follows: False
2025-06-13 10:41:10,079 [DEBUG][       Thread-251878][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 10:41:10,079 [DEBUG][       Thread-251878][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 10:41:10,079 [DEBUG][       Thread-251878][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 10:41:10,079 [DEBUG][       Thread-251878][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 10:41:10,079 [DEBUG][       Thread-251878][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 10:41:10,079 [DEBUG][       Thread-251878][   transport.py][1871] : Compression: none
2025-06-13 10:41:10,079 [DEBUG][       Thread-251878][   transport.py][1871] : === End of kex handshake ===
2025-06-13 10:41:10,096 [DEBUG][       Thread-251878][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 10:41:10,096 [DEBUG][       Thread-251878][   transport.py][1871] : Switch to new keys ...
2025-06-13 10:41:10,097 [DEBUG][       Thread-251878][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 10:41:10,097 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 10:41:10,097 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 10:41:10,098 [DEBUG][       Thread-251878][   transport.py][1871] : userauth is OK
2025-06-13 10:41:10,123 [ INFO][       Thread-251878][   transport.py][1871] : Authentication (password) successful!
2025-06-13 10:41:10,123 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 10:41:10,735 [DEBUG][       Thread-251878][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 10:41:10,735 [DEBUG][       Thread-251878][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 10:41:10,777 [DEBUG][       Thread-251878][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 10:41:10,777 [DEBUG][       Thread-251878][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 10:41:10,780 [DEBUG][       Thread-251878][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 10:41:10,789 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 10:41:10,789 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 10:41:10,790 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 10:41:10,792 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 10:41:10,796 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 10:41:10,798 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 10:41:10,798 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 10:41:10,798 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 10:41:10,799 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.361398 -999.00   +9.30  19.21     55   +0.70 1 1 1 1 1   887    0 9.06 9.83 ----- 22.9 19.2 56.3 25.3 14.1 -28.0 12.7 -30.8 11.7 -28.8 13.0 -27.1
2025-06-13 10:41:10,799 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 10:41:10,799 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 10:41:10,799 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.361398
2025-06-13 10:41:10,799 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 10:41:10,800 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 10:41:10,800 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 10:41:10,800 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 10:41:10,800 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 10:41:10,800 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T10:41:04', tmtdew=10.26, humidity=48.75, cloud=0.0, wind=16.87, temperature=9.65, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T08:40:24.787', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 10:41:10,801 [DEBUG][       Thread-251878][   transport.py][1871] : EOF in transport thread
2025-06-13 10:41:10,887 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 10:41:10,899 [DEBUG][       Thread-251881][   transport.py][1871] : starting thread (client mode): 0x842047c0
2025-06-13 10:41:10,899 [DEBUG][       Thread-251881][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 10:41:10,914 [DEBUG][       Thread-251881][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 10:41:10,914 [ INFO][       Thread-251881][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 10:41:10,926 [DEBUG][       Thread-251881][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 10:41:10,926 [DEBUG][       Thread-251881][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 10:41:10,927 [DEBUG][       Thread-251881][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 10:41:10,927 [DEBUG][       Thread-251881][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:41:10,927 [DEBUG][       Thread-251881][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:41:10,927 [DEBUG][       Thread-251881][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:41:10,927 [DEBUG][       Thread-251881][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:41:10,927 [DEBUG][       Thread-251881][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 10:41:10,927 [DEBUG][       Thread-251881][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 10:41:10,927 [DEBUG][       Thread-251881][   transport.py][1871] : client lang: <none>
2025-06-13 10:41:10,927 [DEBUG][       Thread-251881][   transport.py][1871] : server lang: <none>
2025-06-13 10:41:10,927 [DEBUG][       Thread-251881][   transport.py][1871] : kex follows: False
2025-06-13 10:41:10,927 [DEBUG][       Thread-251881][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 10:41:10,927 [DEBUG][       Thread-251881][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 10:41:10,927 [DEBUG][       Thread-251881][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 10:41:10,927 [DEBUG][       Thread-251881][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 10:41:10,927 [DEBUG][       Thread-251881][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 10:41:10,927 [DEBUG][       Thread-251881][   transport.py][1871] : Compression: none
2025-06-13 10:41:10,927 [DEBUG][       Thread-251881][   transport.py][1871] : === End of kex handshake ===
2025-06-13 10:41:10,986 [DEBUG][       Thread-251881][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 10:41:10,987 [DEBUG][       Thread-251881][   transport.py][1871] : Switch to new keys ...
2025-06-13 10:41:10,987 [DEBUG][       Thread-251881][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 10:41:10,987 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 10:41:10,988 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 10:41:11,045 [DEBUG][       Thread-251881][   transport.py][1871] : userauth is OK
2025-06-13 10:41:11,045 [DEBUG][       Thread-251881][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 10:41:11,046 [DEBUG][       Thread-251881][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 10:41:11,046 [DEBUG][       Thread-251881][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 10:41:11,046 [DEBUG][       Thread-251881][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 10:41:11,064 [ INFO][       Thread-251881][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 10:41:11,065 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 10:41:11,065 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 10:41:12,088 [DEBUG][       Thread-251881][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 10:41:12,089 [DEBUG][       Thread-251881][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 10:41:12,141 [DEBUG][       Thread-251881][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 10:41:12,141 [DEBUG][       Thread-251881][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 10:41:12,150 [DEBUG][       Thread-251881][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 10:41:12,159 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 10:41:12,159 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 10:41:12,167 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 10:41:12,176 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 10:41:12,176 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 10:41:12,177 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 10:41:12,185 [DEBUG][       Thread-251881][   transport.py][1871] : EOF in transport thread
2025-06-13 10:41:18,232 [DEBUG][Thread-251883 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:41:22,187 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 10:41:22,187 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 10:41:22,188 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 10:41:22,190 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 10:41:22,671 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 10, 41, 4), 10.26, 48.75, 0.0, 16.87, 9.65, 0, 0, 0, 2, 0, 0),)
2025-06-13 10:41:22,671 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 10:41:04
2025-06-13 10:41:22,753 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 10:41:22,757 [DEBUG][       Thread-251884][   transport.py][1871] : starting thread (client mode): 0x8636a980
2025-06-13 10:41:22,757 [DEBUG][       Thread-251884][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 10:41:22,777 [DEBUG][       Thread-251884][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 10:41:22,777 [ INFO][       Thread-251884][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 10:41:22,780 [DEBUG][       Thread-251884][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 10:41:22,781 [DEBUG][       Thread-251884][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 10:41:22,781 [DEBUG][       Thread-251884][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 10:41:22,781 [DEBUG][       Thread-251884][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:41:22,781 [DEBUG][       Thread-251884][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:41:22,781 [DEBUG][       Thread-251884][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:41:22,781 [DEBUG][       Thread-251884][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:41:22,781 [DEBUG][       Thread-251884][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 10:41:22,781 [DEBUG][       Thread-251884][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 10:41:22,781 [DEBUG][       Thread-251884][   transport.py][1871] : client lang: <none>
2025-06-13 10:41:22,781 [DEBUG][       Thread-251884][   transport.py][1871] : server lang: <none>
2025-06-13 10:41:22,781 [DEBUG][       Thread-251884][   transport.py][1871] : kex follows: False
2025-06-13 10:41:22,781 [DEBUG][       Thread-251884][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 10:41:22,781 [DEBUG][       Thread-251884][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 10:41:22,781 [DEBUG][       Thread-251884][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 10:41:22,781 [DEBUG][       Thread-251884][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 10:41:22,781 [DEBUG][       Thread-251884][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 10:41:22,781 [DEBUG][       Thread-251884][   transport.py][1871] : Compression: none
2025-06-13 10:41:22,781 [DEBUG][       Thread-251884][   transport.py][1871] : === End of kex handshake ===
2025-06-13 10:41:22,797 [DEBUG][       Thread-251884][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 10:41:22,798 [DEBUG][       Thread-251884][   transport.py][1871] : Switch to new keys ...
2025-06-13 10:41:22,798 [DEBUG][       Thread-251884][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 10:41:22,798 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 10:41:22,799 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 10:41:22,800 [DEBUG][       Thread-251884][   transport.py][1871] : userauth is OK
2025-06-13 10:41:22,825 [ INFO][       Thread-251884][   transport.py][1871] : Authentication (password) successful!
2025-06-13 10:41:22,825 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 10:41:23,402 [DEBUG][       Thread-251884][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 10:41:23,402 [DEBUG][       Thread-251884][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 10:41:23,445 [DEBUG][       Thread-251884][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 10:41:23,445 [DEBUG][       Thread-251884][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 10:41:23,448 [DEBUG][       Thread-251884][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 10:41:23,459 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 10:41:23,459 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 10:41:23,461 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 10:41:23,463 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 10:41:23,469 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 10:41:23,471 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 10:41:23,471 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 10:41:23,471 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 10:41:23,471 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.361398 -999.00   +9.30  19.21     55   +0.70 1 1 1 1 1   887    0 9.06 9.83 ----- 22.9 19.2 56.3 25.3 14.1 -28.0 12.7 -30.8 11.7 -28.8 13.0 -27.1
2025-06-13 10:41:23,472 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 10:41:23,472 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 10:41:23,472 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.361398
2025-06-13 10:41:23,472 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 10:41:23,473 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 10:41:23,473 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 10:41:23,473 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 10:41:23,473 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 10:41:23,473 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T10:41:04', tmtdew=10.26, humidity=48.75, cloud=0.0, wind=16.87, temperature=9.65, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T08:40:24.787', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 10:41:23,474 [DEBUG][       Thread-251884][   transport.py][1871] : EOF in transport thread
2025-06-13 10:41:23,556 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 10:41:23,572 [DEBUG][       Thread-251887][   transport.py][1871] : starting thread (client mode): 0x863ef670
2025-06-13 10:41:23,572 [DEBUG][       Thread-251887][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 10:41:23,586 [DEBUG][       Thread-251887][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 10:41:23,586 [ INFO][       Thread-251887][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 10:41:23,594 [DEBUG][       Thread-251887][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 10:41:23,594 [DEBUG][       Thread-251887][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 10:41:23,594 [DEBUG][       Thread-251887][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 10:41:23,594 [DEBUG][       Thread-251887][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:41:23,594 [DEBUG][       Thread-251887][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:41:23,594 [DEBUG][       Thread-251887][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:41:23,594 [DEBUG][       Thread-251887][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:41:23,594 [DEBUG][       Thread-251887][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 10:41:23,594 [DEBUG][       Thread-251887][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 10:41:23,594 [DEBUG][       Thread-251887][   transport.py][1871] : client lang: <none>
2025-06-13 10:41:23,594 [DEBUG][       Thread-251887][   transport.py][1871] : server lang: <none>
2025-06-13 10:41:23,594 [DEBUG][       Thread-251887][   transport.py][1871] : kex follows: False
2025-06-13 10:41:23,595 [DEBUG][       Thread-251887][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 10:41:23,595 [DEBUG][       Thread-251887][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 10:41:23,595 [DEBUG][       Thread-251887][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 10:41:23,595 [DEBUG][       Thread-251887][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 10:41:23,595 [DEBUG][       Thread-251887][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 10:41:23,595 [DEBUG][       Thread-251887][   transport.py][1871] : Compression: none
2025-06-13 10:41:23,595 [DEBUG][       Thread-251887][   transport.py][1871] : === End of kex handshake ===
2025-06-13 10:41:23,652 [DEBUG][       Thread-251887][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 10:41:23,653 [DEBUG][       Thread-251887][   transport.py][1871] : Switch to new keys ...
2025-06-13 10:41:23,653 [DEBUG][       Thread-251887][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 10:41:23,654 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 10:41:23,654 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 10:41:23,711 [DEBUG][       Thread-251887][   transport.py][1871] : userauth is OK
2025-06-13 10:41:23,711 [DEBUG][       Thread-251887][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 10:41:23,711 [DEBUG][       Thread-251887][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 10:41:23,711 [DEBUG][       Thread-251887][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 10:41:23,711 [DEBUG][       Thread-251887][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 10:41:23,732 [ INFO][       Thread-251887][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 10:41:23,732 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 10:41:23,732 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 10:41:24,796 [DEBUG][       Thread-251887][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 10:41:24,796 [DEBUG][       Thread-251887][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 10:41:24,847 [DEBUG][       Thread-251887][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 10:41:24,848 [DEBUG][       Thread-251887][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 10:41:24,856 [DEBUG][       Thread-251887][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 10:41:24,865 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 10:41:24,865 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 10:41:24,874 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 10:41:24,882 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 10:41:24,883 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 10:41:24,883 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 10:41:24,891 [DEBUG][       Thread-251887][   transport.py][1871] : EOF in transport thread
2025-06-13 10:41:27,260 [DEBUG][Thread-251889 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:41:28,384 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:41:28,385 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:41:28,586 [DEBUG][Thread-251890 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:41:29,665 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:41:29,666 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:41:34,892 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 10:41:34,892 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 10:41:34,892 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 10:41:34,895 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 10:41:35,367 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 10, 41, 4), 10.26, 48.75, 0.0, 16.87, 9.65, 0, 0, 0, 2, 0, 0),)
2025-06-13 10:41:35,367 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 10:41:04
2025-06-13 10:41:35,449 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 10:41:35,456 [DEBUG][       Thread-251891][   transport.py][1871] : starting thread (client mode): 0x84206860
2025-06-13 10:41:35,456 [DEBUG][       Thread-251891][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 10:41:35,475 [DEBUG][       Thread-251891][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 10:41:35,475 [ INFO][       Thread-251891][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 10:41:35,478 [DEBUG][       Thread-251891][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 10:41:35,478 [DEBUG][       Thread-251891][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 10:41:35,478 [DEBUG][       Thread-251891][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 10:41:35,478 [DEBUG][       Thread-251891][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:41:35,478 [DEBUG][       Thread-251891][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:41:35,478 [DEBUG][       Thread-251891][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:41:35,478 [DEBUG][       Thread-251891][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:41:35,478 [DEBUG][       Thread-251891][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 10:41:35,478 [DEBUG][       Thread-251891][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 10:41:35,478 [DEBUG][       Thread-251891][   transport.py][1871] : client lang: <none>
2025-06-13 10:41:35,478 [DEBUG][       Thread-251891][   transport.py][1871] : server lang: <none>
2025-06-13 10:41:35,478 [DEBUG][       Thread-251891][   transport.py][1871] : kex follows: False
2025-06-13 10:41:35,478 [DEBUG][       Thread-251891][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 10:41:35,478 [DEBUG][       Thread-251891][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 10:41:35,478 [DEBUG][       Thread-251891][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 10:41:35,478 [DEBUG][       Thread-251891][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 10:41:35,478 [DEBUG][       Thread-251891][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 10:41:35,478 [DEBUG][       Thread-251891][   transport.py][1871] : Compression: none
2025-06-13 10:41:35,479 [DEBUG][       Thread-251891][   transport.py][1871] : === End of kex handshake ===
2025-06-13 10:41:35,495 [DEBUG][       Thread-251891][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 10:41:35,496 [DEBUG][       Thread-251891][   transport.py][1871] : Switch to new keys ...
2025-06-13 10:41:35,496 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 10:41:35,496 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 10:41:35,497 [DEBUG][       Thread-251891][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 10:41:35,498 [DEBUG][       Thread-251891][   transport.py][1871] : userauth is OK
2025-06-13 10:41:35,511 [ INFO][       Thread-251891][   transport.py][1871] : Authentication (password) successful!
2025-06-13 10:41:35,512 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 10:41:36,148 [DEBUG][       Thread-251891][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 10:41:36,148 [DEBUG][       Thread-251891][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 10:41:36,192 [DEBUG][       Thread-251891][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 10:41:36,193 [DEBUG][       Thread-251891][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 10:41:36,195 [DEBUG][       Thread-251891][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 10:41:36,207 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 10:41:36,208 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 10:41:36,209 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 10:41:36,209 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 10:41:36,213 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 10:41:36,213 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 10:41:36,213 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 10:41:36,214 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 10:41:36,214 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.362092 -999.00   +9.40  23.98     53   +0.30 1 1 1 1 1   887    0 9.11 6.70 ----- 20.0 24.0 60.0 25.5 14.1 -28.3 12.9 -30.0 11.8 -28.5 13.1 -27.9
2025-06-13 10:41:36,214 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 10:41:36,214 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 10:41:36,214 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.362092
2025-06-13 10:41:36,214 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 10:41:36,214 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 10:41:36,214 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 10:41:36,214 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 10:41:36,214 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 10:41:36,214 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T10:41:04', tmtdew=10.26, humidity=48.75, cloud=0.0, wind=16.87, temperature=9.65, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T08:41:24.749', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 10:41:36,215 [DEBUG][       Thread-251891][   transport.py][1871] : EOF in transport thread
2025-06-13 10:41:36,276 [DEBUG][Thread-251894 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:41:36,288 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 10:41:36,302 [DEBUG][       Thread-251895][   transport.py][1871] : starting thread (client mode): 0x868c85b0
2025-06-13 10:41:36,302 [DEBUG][       Thread-251895][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 10:41:36,326 [DEBUG][       Thread-251895][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 10:41:36,326 [ INFO][       Thread-251895][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 10:41:36,335 [DEBUG][       Thread-251895][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 10:41:36,335 [DEBUG][       Thread-251895][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 10:41:36,335 [DEBUG][       Thread-251895][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 10:41:36,335 [DEBUG][       Thread-251895][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:41:36,335 [DEBUG][       Thread-251895][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:41:36,335 [DEBUG][       Thread-251895][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:41:36,335 [DEBUG][       Thread-251895][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:41:36,335 [DEBUG][       Thread-251895][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 10:41:36,335 [DEBUG][       Thread-251895][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 10:41:36,335 [DEBUG][       Thread-251895][   transport.py][1871] : client lang: <none>
2025-06-13 10:41:36,335 [DEBUG][       Thread-251895][   transport.py][1871] : server lang: <none>
2025-06-13 10:41:36,335 [DEBUG][       Thread-251895][   transport.py][1871] : kex follows: False
2025-06-13 10:41:36,335 [DEBUG][       Thread-251895][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 10:41:36,335 [DEBUG][       Thread-251895][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 10:41:36,335 [DEBUG][       Thread-251895][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 10:41:36,335 [DEBUG][       Thread-251895][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 10:41:36,335 [DEBUG][       Thread-251895][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 10:41:36,335 [DEBUG][       Thread-251895][   transport.py][1871] : Compression: none
2025-06-13 10:41:36,335 [DEBUG][       Thread-251895][   transport.py][1871] : === End of kex handshake ===
2025-06-13 10:41:36,392 [DEBUG][       Thread-251895][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 10:41:36,392 [DEBUG][       Thread-251895][   transport.py][1871] : Switch to new keys ...
2025-06-13 10:41:36,392 [DEBUG][       Thread-251895][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 10:41:36,392 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 10:41:36,392 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 10:41:36,457 [DEBUG][       Thread-251895][   transport.py][1871] : userauth is OK
2025-06-13 10:41:36,457 [DEBUG][       Thread-251895][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 10:41:36,457 [DEBUG][       Thread-251895][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 10:41:36,457 [DEBUG][       Thread-251895][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 10:41:36,457 [DEBUG][       Thread-251895][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 10:41:36,471 [ INFO][       Thread-251895][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 10:41:36,471 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 10:41:36,471 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 10:41:37,506 [DEBUG][       Thread-251895][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 10:41:37,506 [DEBUG][       Thread-251895][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 10:41:37,556 [DEBUG][       Thread-251895][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 10:41:37,556 [DEBUG][       Thread-251895][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 10:41:37,565 [DEBUG][       Thread-251895][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 10:41:37,574 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 10:41:37,574 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 10:41:37,583 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 10:41:37,597 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 10:41:37,597 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 10:41:37,598 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 10:41:37,605 [DEBUG][       Thread-251895][   transport.py][1871] : EOF in transport thread
2025-06-13 10:41:45,295 [DEBUG][Thread-251897 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:41:47,608 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 10:41:47,608 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 10:41:47,608 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 10:41:47,610 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 10:41:48,086 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 10, 41, 35), 10.18, 48.99, 0.0, 17.7, 9.65, 0, 0, 0, 2, 0, 0),)
2025-06-13 10:41:48,086 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 10:41:35
2025-06-13 10:41:48,168 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 10:41:48,174 [DEBUG][       Thread-251898][   transport.py][1871] : starting thread (client mode): 0x863a6bf0
2025-06-13 10:41:48,174 [DEBUG][       Thread-251898][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 10:41:48,195 [DEBUG][       Thread-251898][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 10:41:48,195 [ INFO][       Thread-251898][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 10:41:48,198 [DEBUG][       Thread-251898][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 10:41:48,198 [DEBUG][       Thread-251898][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 10:41:48,198 [DEBUG][       Thread-251898][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 10:41:48,199 [DEBUG][       Thread-251898][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:41:48,199 [DEBUG][       Thread-251898][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:41:48,199 [DEBUG][       Thread-251898][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:41:48,199 [DEBUG][       Thread-251898][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:41:48,199 [DEBUG][       Thread-251898][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 10:41:48,199 [DEBUG][       Thread-251898][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 10:41:48,199 [DEBUG][       Thread-251898][   transport.py][1871] : client lang: <none>
2025-06-13 10:41:48,199 [DEBUG][       Thread-251898][   transport.py][1871] : server lang: <none>
2025-06-13 10:41:48,199 [DEBUG][       Thread-251898][   transport.py][1871] : kex follows: False
2025-06-13 10:41:48,199 [DEBUG][       Thread-251898][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 10:41:48,199 [DEBUG][       Thread-251898][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 10:41:48,199 [DEBUG][       Thread-251898][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 10:41:48,199 [DEBUG][       Thread-251898][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 10:41:48,199 [DEBUG][       Thread-251898][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 10:41:48,199 [DEBUG][       Thread-251898][   transport.py][1871] : Compression: none
2025-06-13 10:41:48,199 [DEBUG][       Thread-251898][   transport.py][1871] : === End of kex handshake ===
2025-06-13 10:41:48,215 [DEBUG][       Thread-251898][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 10:41:48,216 [DEBUG][       Thread-251898][   transport.py][1871] : Switch to new keys ...
2025-06-13 10:41:48,216 [DEBUG][       Thread-251898][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 10:41:48,217 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 10:41:48,217 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 10:41:48,218 [DEBUG][       Thread-251898][   transport.py][1871] : userauth is OK
2025-06-13 10:41:48,232 [ INFO][       Thread-251898][   transport.py][1871] : Authentication (password) successful!
2025-06-13 10:41:48,232 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 10:41:48,872 [DEBUG][       Thread-251898][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 10:41:48,872 [DEBUG][       Thread-251898][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 10:41:48,913 [DEBUG][       Thread-251898][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 10:41:48,913 [DEBUG][       Thread-251898][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 10:41:48,916 [DEBUG][       Thread-251898][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 10:41:48,929 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 10:41:48,929 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 10:41:48,931 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 10:41:48,933 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 10:41:48,938 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 10:41:48,940 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 10:41:48,940 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 10:41:48,940 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 10:41:48,941 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.362092 -999.00   +9.40  23.98     53   +0.30 1 1 1 1 1   887    0 9.11 6.70 ----- 20.0 24.0 60.0 25.5 14.1 -28.3 12.9 -30.0 11.8 -28.5 13.1 -27.9
2025-06-13 10:41:48,941 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 10:41:48,941 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 10:41:48,941 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.362092
2025-06-13 10:41:48,941 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 10:41:48,942 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 10:41:48,942 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 10:41:48,942 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 10:41:48,942 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 10:41:48,942 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T10:41:35', tmtdew=10.18, humidity=48.99, cloud=0.0, wind=17.7, temperature=9.65, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T08:41:24.749', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 10:41:48,943 [DEBUG][       Thread-251898][   transport.py][1871] : EOF in transport thread
2025-06-13 10:41:49,025 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 10:41:49,041 [DEBUG][       Thread-251901][   transport.py][1871] : starting thread (client mode): 0x8636b250
2025-06-13 10:41:49,041 [DEBUG][       Thread-251901][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 10:41:49,061 [DEBUG][       Thread-251901][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 10:41:49,061 [ INFO][       Thread-251901][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 10:41:49,071 [DEBUG][       Thread-251901][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 10:41:49,071 [DEBUG][       Thread-251901][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 10:41:49,071 [DEBUG][       Thread-251901][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 10:41:49,071 [DEBUG][       Thread-251901][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:41:49,071 [DEBUG][       Thread-251901][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:41:49,071 [DEBUG][       Thread-251901][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:41:49,071 [DEBUG][       Thread-251901][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:41:49,071 [DEBUG][       Thread-251901][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 10:41:49,071 [DEBUG][       Thread-251901][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 10:41:49,071 [DEBUG][       Thread-251901][   transport.py][1871] : client lang: <none>
2025-06-13 10:41:49,071 [DEBUG][       Thread-251901][   transport.py][1871] : server lang: <none>
2025-06-13 10:41:49,071 [DEBUG][       Thread-251901][   transport.py][1871] : kex follows: False
2025-06-13 10:41:49,071 [DEBUG][       Thread-251901][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 10:41:49,071 [DEBUG][       Thread-251901][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 10:41:49,071 [DEBUG][       Thread-251901][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 10:41:49,071 [DEBUG][       Thread-251901][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 10:41:49,071 [DEBUG][       Thread-251901][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 10:41:49,071 [DEBUG][       Thread-251901][   transport.py][1871] : Compression: none
2025-06-13 10:41:49,071 [DEBUG][       Thread-251901][   transport.py][1871] : === End of kex handshake ===
2025-06-13 10:41:49,128 [DEBUG][       Thread-251901][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 10:41:49,128 [DEBUG][       Thread-251901][   transport.py][1871] : Switch to new keys ...
2025-06-13 10:41:49,128 [DEBUG][       Thread-251901][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 10:41:49,128 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 10:41:49,128 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 10:41:49,185 [DEBUG][       Thread-251901][   transport.py][1871] : userauth is OK
2025-06-13 10:41:49,185 [DEBUG][       Thread-251901][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 10:41:49,185 [DEBUG][       Thread-251901][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 10:41:49,186 [DEBUG][       Thread-251901][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 10:41:49,186 [DEBUG][       Thread-251901][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 10:41:49,204 [ INFO][       Thread-251901][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 10:41:49,205 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 10:41:49,205 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 10:41:50,257 [DEBUG][       Thread-251901][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 10:41:50,258 [DEBUG][       Thread-251901][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 10:41:50,307 [DEBUG][       Thread-251901][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 10:41:50,308 [DEBUG][       Thread-251901][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 10:41:50,317 [DEBUG][       Thread-251901][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 10:41:50,325 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 10:41:50,325 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 10:41:50,334 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 10:41:50,342 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 10:41:50,343 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 10:41:50,343 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 10:41:50,351 [DEBUG][       Thread-251901][   transport.py][1871] : EOF in transport thread
2025-06-13 10:41:54,314 [DEBUG][Thread-251903 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:42:00,353 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 10:42:00,354 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 10:42:00,354 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 10:42:00,356 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 10:42:00,836 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 10, 41, 35), 10.18, 48.99, 0.0, 17.7, 9.65, 0, 0, 0, 2, 0, 0),)
2025-06-13 10:42:00,836 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 10:41:35
2025-06-13 10:42:00,917 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 10:42:00,921 [DEBUG][       Thread-251904][   transport.py][1871] : starting thread (client mode): 0x84206140
2025-06-13 10:42:00,921 [DEBUG][       Thread-251904][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 10:42:00,942 [DEBUG][       Thread-251904][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 10:42:00,942 [ INFO][       Thread-251904][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 10:42:00,945 [DEBUG][       Thread-251904][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 10:42:00,945 [DEBUG][       Thread-251904][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 10:42:00,945 [DEBUG][       Thread-251904][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 10:42:00,945 [DEBUG][       Thread-251904][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:42:00,945 [DEBUG][       Thread-251904][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:42:00,945 [DEBUG][       Thread-251904][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:42:00,945 [DEBUG][       Thread-251904][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:42:00,945 [DEBUG][       Thread-251904][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 10:42:00,945 [DEBUG][       Thread-251904][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 10:42:00,945 [DEBUG][       Thread-251904][   transport.py][1871] : client lang: <none>
2025-06-13 10:42:00,945 [DEBUG][       Thread-251904][   transport.py][1871] : server lang: <none>
2025-06-13 10:42:00,946 [DEBUG][       Thread-251904][   transport.py][1871] : kex follows: False
2025-06-13 10:42:00,946 [DEBUG][       Thread-251904][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 10:42:00,946 [DEBUG][       Thread-251904][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 10:42:00,946 [DEBUG][       Thread-251904][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 10:42:00,946 [DEBUG][       Thread-251904][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 10:42:00,946 [DEBUG][       Thread-251904][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 10:42:00,946 [DEBUG][       Thread-251904][   transport.py][1871] : Compression: none
2025-06-13 10:42:00,946 [DEBUG][       Thread-251904][   transport.py][1871] : === End of kex handshake ===
2025-06-13 10:42:00,962 [DEBUG][       Thread-251904][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 10:42:00,963 [DEBUG][       Thread-251904][   transport.py][1871] : Switch to new keys ...
2025-06-13 10:42:00,963 [DEBUG][       Thread-251904][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 10:42:00,963 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 10:42:00,963 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 10:42:00,965 [DEBUG][       Thread-251904][   transport.py][1871] : userauth is OK
2025-06-13 10:42:00,989 [ INFO][       Thread-251904][   transport.py][1871] : Authentication (password) successful!
2025-06-13 10:42:00,990 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 10:42:01,637 [DEBUG][       Thread-251904][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 10:42:01,637 [DEBUG][       Thread-251904][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 10:42:01,681 [DEBUG][       Thread-251904][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 10:42:01,681 [DEBUG][       Thread-251904][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 10:42:01,683 [DEBUG][       Thread-251904][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 10:42:01,688 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 10:42:01,688 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 10:42:01,690 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 10:42:01,691 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 10:42:01,696 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 10:42:01,697 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 10:42:01,697 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 10:42:01,698 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 10:42:01,698 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.362092 -999.00   +9.40  23.98     53   +0.30 1 1 1 1 1   887    0 9.11 6.70 ----- 20.0 24.0 60.0 25.5 14.1 -28.3 12.9 -30.0 11.8 -28.5 13.1 -27.9
2025-06-13 10:42:01,698 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 10:42:01,698 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 10:42:01,698 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.362092
2025-06-13 10:42:01,699 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 10:42:01,699 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 10:42:01,699 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 10:42:01,699 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 10:42:01,699 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 10:42:01,700 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T10:41:35', tmtdew=10.18, humidity=48.99, cloud=0.0, wind=17.7, temperature=9.65, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T08:41:24.749', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 10:42:01,701 [DEBUG][       Thread-251904][   transport.py][1871] : EOF in transport thread
2025-06-13 10:42:01,783 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 10:42:01,792 [DEBUG][       Thread-251907][   transport.py][1871] : starting thread (client mode): 0x863c8250
2025-06-13 10:42:01,792 [DEBUG][       Thread-251907][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 10:42:01,812 [DEBUG][       Thread-251907][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 10:42:01,812 [ INFO][       Thread-251907][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 10:42:01,820 [DEBUG][       Thread-251907][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 10:42:01,820 [DEBUG][       Thread-251907][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 10:42:01,820 [DEBUG][       Thread-251907][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 10:42:01,820 [DEBUG][       Thread-251907][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:42:01,820 [DEBUG][       Thread-251907][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:42:01,820 [DEBUG][       Thread-251907][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:42:01,820 [DEBUG][       Thread-251907][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:42:01,820 [DEBUG][       Thread-251907][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 10:42:01,820 [DEBUG][       Thread-251907][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 10:42:01,820 [DEBUG][       Thread-251907][   transport.py][1871] : client lang: <none>
2025-06-13 10:42:01,820 [DEBUG][       Thread-251907][   transport.py][1871] : server lang: <none>
2025-06-13 10:42:01,821 [DEBUG][       Thread-251907][   transport.py][1871] : kex follows: False
2025-06-13 10:42:01,821 [DEBUG][       Thread-251907][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 10:42:01,821 [DEBUG][       Thread-251907][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 10:42:01,821 [DEBUG][       Thread-251907][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 10:42:01,821 [DEBUG][       Thread-251907][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 10:42:01,821 [DEBUG][       Thread-251907][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 10:42:01,821 [DEBUG][       Thread-251907][   transport.py][1871] : Compression: none
2025-06-13 10:42:01,821 [DEBUG][       Thread-251907][   transport.py][1871] : === End of kex handshake ===
2025-06-13 10:42:01,878 [DEBUG][       Thread-251907][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 10:42:01,878 [DEBUG][       Thread-251907][   transport.py][1871] : Switch to new keys ...
2025-06-13 10:42:01,878 [DEBUG][       Thread-251907][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 10:42:01,879 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 10:42:01,879 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 10:42:01,934 [DEBUG][       Thread-251907][   transport.py][1871] : userauth is OK
2025-06-13 10:42:01,934 [DEBUG][       Thread-251907][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 10:42:01,935 [DEBUG][       Thread-251907][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 10:42:01,935 [DEBUG][       Thread-251907][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 10:42:01,935 [DEBUG][       Thread-251907][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 10:42:01,955 [ INFO][       Thread-251907][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 10:42:01,955 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 10:42:01,955 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 10:42:02,967 [DEBUG][       Thread-251907][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 10:42:02,967 [DEBUG][       Thread-251907][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 10:42:03,016 [DEBUG][       Thread-251907][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 10:42:03,016 [DEBUG][       Thread-251907][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 10:42:03,026 [DEBUG][       Thread-251907][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 10:42:03,035 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 10:42:03,035 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 10:42:03,044 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 10:42:03,053 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 10:42:03,053 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 10:42:03,054 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 10:42:03,069 [DEBUG][       Thread-251907][   transport.py][1871] : EOF in transport thread
2025-06-13 10:42:03,345 [DEBUG][Thread-251909 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:42:07,051 [DEBUG][Thread-251910 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:42:12,365 [DEBUG][Thread-251911 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:42:13,059 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 10:42:13,059 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 10:42:13,060 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 10:42:13,062 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 10:42:13,533 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 10, 42, 7), 10.21, 48.9, 0.0, 18.19, 9.64, 0, 0, 0, 2, 0, 0),)
2025-06-13 10:42:13,534 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 10:42:07
2025-06-13 10:42:13,616 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 10:42:13,622 [DEBUG][       Thread-251912][   transport.py][1871] : starting thread (client mode): 0x84206e60
2025-06-13 10:42:13,622 [DEBUG][       Thread-251912][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 10:42:13,642 [DEBUG][       Thread-251912][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 10:42:13,642 [ INFO][       Thread-251912][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 10:42:13,646 [DEBUG][       Thread-251912][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 10:42:13,646 [DEBUG][       Thread-251912][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 10:42:13,646 [DEBUG][       Thread-251912][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 10:42:13,646 [DEBUG][       Thread-251912][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:42:13,646 [DEBUG][       Thread-251912][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:42:13,646 [DEBUG][       Thread-251912][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:42:13,646 [DEBUG][       Thread-251912][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:42:13,646 [DEBUG][       Thread-251912][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 10:42:13,646 [DEBUG][       Thread-251912][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 10:42:13,646 [DEBUG][       Thread-251912][   transport.py][1871] : client lang: <none>
2025-06-13 10:42:13,646 [DEBUG][       Thread-251912][   transport.py][1871] : server lang: <none>
2025-06-13 10:42:13,646 [DEBUG][       Thread-251912][   transport.py][1871] : kex follows: False
2025-06-13 10:42:13,646 [DEBUG][       Thread-251912][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 10:42:13,646 [DEBUG][       Thread-251912][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 10:42:13,646 [DEBUG][       Thread-251912][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 10:42:13,646 [DEBUG][       Thread-251912][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 10:42:13,646 [DEBUG][       Thread-251912][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 10:42:13,647 [DEBUG][       Thread-251912][   transport.py][1871] : Compression: none
2025-06-13 10:42:13,647 [DEBUG][       Thread-251912][   transport.py][1871] : === End of kex handshake ===
2025-06-13 10:42:13,662 [DEBUG][       Thread-251912][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 10:42:13,663 [DEBUG][       Thread-251912][   transport.py][1871] : Switch to new keys ...
2025-06-13 10:42:13,663 [DEBUG][       Thread-251912][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 10:42:13,664 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 10:42:13,664 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 10:42:13,665 [DEBUG][       Thread-251912][   transport.py][1871] : userauth is OK
2025-06-13 10:42:13,689 [ INFO][       Thread-251912][   transport.py][1871] : Authentication (password) successful!
2025-06-13 10:42:13,690 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 10:42:14,303 [DEBUG][       Thread-251912][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 10:42:14,303 [DEBUG][       Thread-251912][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 10:42:14,345 [DEBUG][       Thread-251912][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 10:42:14,345 [DEBUG][       Thread-251912][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 10:42:14,348 [DEBUG][       Thread-251912][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 10:42:14,362 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 10:42:14,362 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 10:42:14,363 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 10:42:14,365 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 10:42:14,370 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 10:42:14,372 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 10:42:14,372 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 10:42:14,373 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 10:42:14,373 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.362440 -999.00   +9.40  18.25     53   +0.50 1 1 1 1 1   887    0 8.97 6.32 ----- 24.0 18.2 55.4 20.9 14.1 -28.6 12.8 -29.7 11.8 -28.6 13.1 -27.0
2025-06-13 10:42:14,373 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 10:42:14,373 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 10:42:14,373 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.362440
2025-06-13 10:42:14,374 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 10:42:14,374 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 10:42:14,374 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 10:42:14,374 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 10:42:14,374 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 10:42:14,375 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T10:42:07', tmtdew=10.21, humidity=48.9, cloud=0.0, wind=18.19, temperature=9.64, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T08:41:54.816', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 10:42:14,375 [DEBUG][       Thread-251912][   transport.py][1871] : EOF in transport thread
2025-06-13 10:42:14,458 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 10:42:14,469 [DEBUG][       Thread-251915][   transport.py][1871] : starting thread (client mode): 0x863ef670
2025-06-13 10:42:14,469 [DEBUG][       Thread-251915][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 10:42:14,485 [DEBUG][       Thread-251915][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 10:42:14,485 [ INFO][       Thread-251915][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 10:42:14,493 [DEBUG][       Thread-251915][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 10:42:14,493 [DEBUG][       Thread-251915][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 10:42:14,493 [DEBUG][       Thread-251915][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 10:42:14,493 [DEBUG][       Thread-251915][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:42:14,493 [DEBUG][       Thread-251915][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:42:14,493 [DEBUG][       Thread-251915][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:42:14,493 [DEBUG][       Thread-251915][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:42:14,493 [DEBUG][       Thread-251915][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 10:42:14,493 [DEBUG][       Thread-251915][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 10:42:14,493 [DEBUG][       Thread-251915][   transport.py][1871] : client lang: <none>
2025-06-13 10:42:14,493 [DEBUG][       Thread-251915][   transport.py][1871] : server lang: <none>
2025-06-13 10:42:14,493 [DEBUG][       Thread-251915][   transport.py][1871] : kex follows: False
2025-06-13 10:42:14,493 [DEBUG][       Thread-251915][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 10:42:14,493 [DEBUG][       Thread-251915][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 10:42:14,493 [DEBUG][       Thread-251915][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 10:42:14,494 [DEBUG][       Thread-251915][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 10:42:14,494 [DEBUG][       Thread-251915][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 10:42:14,494 [DEBUG][       Thread-251915][   transport.py][1871] : Compression: none
2025-06-13 10:42:14,494 [DEBUG][       Thread-251915][   transport.py][1871] : === End of kex handshake ===
2025-06-13 10:42:14,551 [DEBUG][       Thread-251915][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 10:42:14,552 [DEBUG][       Thread-251915][   transport.py][1871] : Switch to new keys ...
2025-06-13 10:42:14,552 [DEBUG][       Thread-251915][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 10:42:14,553 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 10:42:14,553 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 10:42:14,609 [DEBUG][       Thread-251915][   transport.py][1871] : userauth is OK
2025-06-13 10:42:14,609 [DEBUG][       Thread-251915][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 10:42:14,609 [DEBUG][       Thread-251915][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 10:42:14,610 [DEBUG][       Thread-251915][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 10:42:14,610 [DEBUG][       Thread-251915][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 10:42:14,628 [ INFO][       Thread-251915][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 10:42:14,628 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 10:42:14,628 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 10:42:15,667 [DEBUG][       Thread-251915][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 10:42:15,667 [DEBUG][       Thread-251915][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 10:42:15,715 [DEBUG][       Thread-251915][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 10:42:15,716 [DEBUG][       Thread-251915][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 10:42:15,728 [DEBUG][       Thread-251915][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 10:42:15,740 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 10:42:15,740 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 10:42:15,749 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 10:42:15,758 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 10:42:15,758 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 10:42:15,758 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 10:42:15,769 [DEBUG][       Thread-251915][   transport.py][1871] : EOF in transport thread
2025-06-13 10:42:21,384 [DEBUG][Thread-251917 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:42:25,769 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 10:42:25,769 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 10:42:25,769 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 10:42:25,771 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 10:42:26,252 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 10, 42, 7), 10.21, 48.9, 0.0, 18.19, 9.64, 0, 0, 0, 2, 0, 0),)
2025-06-13 10:42:26,253 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 10:42:07
2025-06-13 10:42:26,334 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 10:42:26,338 [DEBUG][       Thread-251918][   transport.py][1871] : starting thread (client mode): 0x842055a0
2025-06-13 10:42:26,339 [DEBUG][       Thread-251918][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 10:42:26,359 [DEBUG][       Thread-251918][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 10:42:26,359 [ INFO][       Thread-251918][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 10:42:26,363 [DEBUG][       Thread-251918][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 10:42:26,363 [DEBUG][       Thread-251918][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 10:42:26,363 [DEBUG][       Thread-251918][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 10:42:26,363 [DEBUG][       Thread-251918][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:42:26,363 [DEBUG][       Thread-251918][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:42:26,363 [DEBUG][       Thread-251918][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:42:26,363 [DEBUG][       Thread-251918][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:42:26,363 [DEBUG][       Thread-251918][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 10:42:26,363 [DEBUG][       Thread-251918][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 10:42:26,363 [DEBUG][       Thread-251918][   transport.py][1871] : client lang: <none>
2025-06-13 10:42:26,363 [DEBUG][       Thread-251918][   transport.py][1871] : server lang: <none>
2025-06-13 10:42:26,363 [DEBUG][       Thread-251918][   transport.py][1871] : kex follows: False
2025-06-13 10:42:26,363 [DEBUG][       Thread-251918][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 10:42:26,363 [DEBUG][       Thread-251918][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 10:42:26,363 [DEBUG][       Thread-251918][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 10:42:26,363 [DEBUG][       Thread-251918][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 10:42:26,363 [DEBUG][       Thread-251918][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 10:42:26,363 [DEBUG][       Thread-251918][   transport.py][1871] : Compression: none
2025-06-13 10:42:26,363 [DEBUG][       Thread-251918][   transport.py][1871] : === End of kex handshake ===
2025-06-13 10:42:26,377 [DEBUG][       Thread-251918][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 10:42:26,377 [DEBUG][       Thread-251918][   transport.py][1871] : Switch to new keys ...
2025-06-13 10:42:26,378 [DEBUG][       Thread-251918][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 10:42:26,378 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 10:42:26,378 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 10:42:26,378 [DEBUG][       Thread-251918][   transport.py][1871] : userauth is OK
2025-06-13 10:42:26,390 [ INFO][       Thread-251918][   transport.py][1871] : Authentication (password) successful!
2025-06-13 10:42:26,391 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 10:42:27,004 [DEBUG][       Thread-251918][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 10:42:27,005 [DEBUG][       Thread-251918][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 10:42:27,049 [DEBUG][       Thread-251918][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 10:42:27,049 [DEBUG][       Thread-251918][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 10:42:27,051 [DEBUG][       Thread-251918][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 10:42:27,063 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 10:42:27,063 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 10:42:27,065 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 10:42:27,067 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 10:42:27,071 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 10:42:27,073 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 10:42:27,073 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 10:42:27,074 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 10:42:27,074 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.362440 -999.00   +9.40  18.25     53   +0.50 1 1 1 1 1   887    0 8.97 6.32 ----- 24.0 18.2 55.4 20.9 14.1 -28.6 12.8 -29.7 11.8 -28.6 13.1 -27.0
2025-06-13 10:42:27,074 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 10:42:27,074 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 10:42:27,074 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.362440
2025-06-13 10:42:27,075 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 10:42:27,075 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 10:42:27,075 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 10:42:27,075 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 10:42:27,075 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 10:42:27,075 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T10:42:07', tmtdew=10.21, humidity=48.9, cloud=0.0, wind=18.19, temperature=9.64, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T08:41:54.816', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 10:42:27,076 [DEBUG][       Thread-251918][   transport.py][1871] : EOF in transport thread
2025-06-13 10:42:27,159 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 10:42:27,171 [DEBUG][       Thread-251921][   transport.py][1871] : starting thread (client mode): 0x86368940
2025-06-13 10:42:27,172 [DEBUG][       Thread-251921][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 10:42:27,186 [DEBUG][       Thread-251921][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 10:42:27,187 [ INFO][       Thread-251921][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 10:42:27,195 [DEBUG][       Thread-251921][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 10:42:27,196 [DEBUG][       Thread-251921][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 10:42:27,196 [DEBUG][       Thread-251921][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 10:42:27,196 [DEBUG][       Thread-251921][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:42:27,196 [DEBUG][       Thread-251921][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:42:27,196 [DEBUG][       Thread-251921][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:42:27,196 [DEBUG][       Thread-251921][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:42:27,196 [DEBUG][       Thread-251921][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 10:42:27,196 [DEBUG][       Thread-251921][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 10:42:27,196 [DEBUG][       Thread-251921][   transport.py][1871] : client lang: <none>
2025-06-13 10:42:27,196 [DEBUG][       Thread-251921][   transport.py][1871] : server lang: <none>
2025-06-13 10:42:27,196 [DEBUG][       Thread-251921][   transport.py][1871] : kex follows: False
2025-06-13 10:42:27,196 [DEBUG][       Thread-251921][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 10:42:27,196 [DEBUG][       Thread-251921][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 10:42:27,196 [DEBUG][       Thread-251921][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 10:42:27,196 [DEBUG][       Thread-251921][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 10:42:27,196 [DEBUG][       Thread-251921][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 10:42:27,197 [DEBUG][       Thread-251921][   transport.py][1871] : Compression: none
2025-06-13 10:42:27,197 [DEBUG][       Thread-251921][   transport.py][1871] : === End of kex handshake ===
2025-06-13 10:42:27,259 [DEBUG][       Thread-251921][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 10:42:27,259 [DEBUG][       Thread-251921][   transport.py][1871] : Switch to new keys ...
2025-06-13 10:42:27,260 [DEBUG][       Thread-251921][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 10:42:27,260 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 10:42:27,260 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 10:42:27,324 [DEBUG][       Thread-251921][   transport.py][1871] : userauth is OK
2025-06-13 10:42:27,324 [DEBUG][       Thread-251921][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 10:42:27,324 [DEBUG][       Thread-251921][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 10:42:27,324 [DEBUG][       Thread-251921][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 10:42:27,325 [DEBUG][       Thread-251921][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 10:42:27,343 [ INFO][       Thread-251921][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 10:42:27,343 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 10:42:27,344 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 10:42:28,348 [DEBUG][       Thread-251921][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 10:42:28,348 [DEBUG][       Thread-251921][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 10:42:28,399 [DEBUG][       Thread-251921][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 10:42:28,399 [DEBUG][       Thread-251921][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 10:42:28,409 [DEBUG][       Thread-251921][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 10:42:28,419 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 10:42:28,419 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 10:42:28,427 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 10:42:28,436 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 10:42:28,436 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 10:42:28,437 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 10:42:28,453 [DEBUG][       Thread-251921][   transport.py][1871] : EOF in transport thread
2025-06-13 10:42:28,524 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:42:28,525 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:42:29,745 [DEBUG][Thread-251923 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:42:30,422 [DEBUG][Thread-251924 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:42:30,832 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:42:30,842 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:42:38,444 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 10:42:38,444 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 10:42:38,444 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 10:42:38,445 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 10:42:38,946 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 10, 42, 7), 10.21, 48.9, 0.0, 18.19, 9.64, 0, 0, 0, 2, 0, 0),)
2025-06-13 10:42:38,946 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 10:42:07
2025-06-13 10:42:39,029 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 10:42:39,034 [DEBUG][       Thread-251925][   transport.py][1871] : starting thread (client mode): 0x86369000
2025-06-13 10:42:39,034 [DEBUG][       Thread-251925][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 10:42:39,055 [DEBUG][       Thread-251925][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 10:42:39,055 [ INFO][       Thread-251925][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 10:42:39,058 [DEBUG][       Thread-251925][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 10:42:39,058 [DEBUG][       Thread-251925][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 10:42:39,058 [DEBUG][       Thread-251925][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 10:42:39,058 [DEBUG][       Thread-251925][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:42:39,058 [DEBUG][       Thread-251925][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:42:39,058 [DEBUG][       Thread-251925][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:42:39,058 [DEBUG][       Thread-251925][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:42:39,058 [DEBUG][       Thread-251925][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 10:42:39,058 [DEBUG][       Thread-251925][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 10:42:39,058 [DEBUG][       Thread-251925][   transport.py][1871] : client lang: <none>
2025-06-13 10:42:39,058 [DEBUG][       Thread-251925][   transport.py][1871] : server lang: <none>
2025-06-13 10:42:39,058 [DEBUG][       Thread-251925][   transport.py][1871] : kex follows: False
2025-06-13 10:42:39,058 [DEBUG][       Thread-251925][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 10:42:39,058 [DEBUG][       Thread-251925][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 10:42:39,058 [DEBUG][       Thread-251925][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 10:42:39,058 [DEBUG][       Thread-251925][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 10:42:39,058 [DEBUG][       Thread-251925][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 10:42:39,058 [DEBUG][       Thread-251925][   transport.py][1871] : Compression: none
2025-06-13 10:42:39,058 [DEBUG][       Thread-251925][   transport.py][1871] : === End of kex handshake ===
2025-06-13 10:42:39,065 [DEBUG][       Thread-251925][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 10:42:39,065 [DEBUG][       Thread-251925][   transport.py][1871] : Switch to new keys ...
2025-06-13 10:42:39,065 [DEBUG][       Thread-251925][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 10:42:39,065 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 10:42:39,065 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 10:42:39,065 [DEBUG][       Thread-251925][   transport.py][1871] : userauth is OK
2025-06-13 10:42:39,078 [ INFO][       Thread-251925][   transport.py][1871] : Authentication (password) successful!
2025-06-13 10:42:39,078 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 10:42:39,439 [DEBUG][Thread-251927 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:42:39,716 [DEBUG][       Thread-251925][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 10:42:39,716 [DEBUG][       Thread-251925][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 10:42:39,760 [DEBUG][       Thread-251925][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 10:42:39,760 [DEBUG][       Thread-251925][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 10:42:39,762 [DEBUG][       Thread-251925][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 10:42:39,776 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 10:42:39,776 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 10:42:39,777 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 10:42:39,778 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 10:42:39,781 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 10:42:39,782 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 10:42:39,782 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 10:42:39,783 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 10:42:39,783 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.362787 -999.00   +9.30  19.95     53   +0.40 1 1 1 1 1   887    0 9.13 5.74 ----- 20.7 19.9 56.4 25.9 14.1 -28.2 12.8 -29.9 11.8 -29.1 13.1 -26.9
2025-06-13 10:42:39,783 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 10:42:39,783 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 10:42:39,783 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.362787
2025-06-13 10:42:39,783 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 10:42:39,783 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 10:42:39,783 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 10:42:39,783 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 10:42:39,783 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 10:42:39,783 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T10:42:07', tmtdew=10.21, humidity=48.9, cloud=0.0, wind=18.19, temperature=9.64, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T08:42:24.797', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 10:42:39,784 [DEBUG][       Thread-251925][   transport.py][1871] : EOF in transport thread
2025-06-13 10:42:39,861 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 10:42:39,872 [DEBUG][       Thread-251929][   transport.py][1871] : starting thread (client mode): 0x863bd540
2025-06-13 10:42:39,872 [DEBUG][       Thread-251929][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 10:42:39,887 [DEBUG][       Thread-251929][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 10:42:39,887 [ INFO][       Thread-251929][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 10:42:39,894 [DEBUG][       Thread-251929][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 10:42:39,894 [DEBUG][       Thread-251929][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 10:42:39,894 [DEBUG][       Thread-251929][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 10:42:39,894 [DEBUG][       Thread-251929][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:42:39,894 [DEBUG][       Thread-251929][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:42:39,894 [DEBUG][       Thread-251929][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:42:39,894 [DEBUG][       Thread-251929][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:42:39,894 [DEBUG][       Thread-251929][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 10:42:39,894 [DEBUG][       Thread-251929][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 10:42:39,894 [DEBUG][       Thread-251929][   transport.py][1871] : client lang: <none>
2025-06-13 10:42:39,894 [DEBUG][       Thread-251929][   transport.py][1871] : server lang: <none>
2025-06-13 10:42:39,894 [DEBUG][       Thread-251929][   transport.py][1871] : kex follows: False
2025-06-13 10:42:39,894 [DEBUG][       Thread-251929][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 10:42:39,894 [DEBUG][       Thread-251929][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 10:42:39,894 [DEBUG][       Thread-251929][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 10:42:39,894 [DEBUG][       Thread-251929][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 10:42:39,894 [DEBUG][       Thread-251929][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 10:42:39,894 [DEBUG][       Thread-251929][   transport.py][1871] : Compression: none
2025-06-13 10:42:39,894 [DEBUG][       Thread-251929][   transport.py][1871] : === End of kex handshake ===
2025-06-13 10:42:39,956 [DEBUG][       Thread-251929][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 10:42:39,956 [DEBUG][       Thread-251929][   transport.py][1871] : Switch to new keys ...
2025-06-13 10:42:39,956 [DEBUG][       Thread-251929][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 10:42:39,956 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 10:42:39,956 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 10:42:40,013 [DEBUG][       Thread-251929][   transport.py][1871] : userauth is OK
2025-06-13 10:42:40,013 [DEBUG][       Thread-251929][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 10:42:40,013 [DEBUG][       Thread-251929][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 10:42:40,013 [DEBUG][       Thread-251929][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 10:42:40,013 [DEBUG][       Thread-251929][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 10:42:40,027 [ INFO][       Thread-251929][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 10:42:40,028 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 10:42:40,028 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 10:42:41,023 [DEBUG][       Thread-251929][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 10:42:41,023 [DEBUG][       Thread-251929][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 10:42:41,071 [DEBUG][       Thread-251929][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 10:42:41,071 [DEBUG][       Thread-251929][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 10:42:41,080 [DEBUG][       Thread-251929][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 10:42:41,088 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 10:42:41,088 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 10:42:41,101 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 10:42:41,111 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 10:42:41,111 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 10:42:41,111 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 10:42:41,119 [DEBUG][       Thread-251929][   transport.py][1871] : EOF in transport thread
2025-06-13 10:42:48,457 [DEBUG][Thread-251931 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:42:51,120 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 10:42:51,120 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 10:42:51,120 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 10:42:51,122 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 10:42:51,603 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 10, 42, 38), 10.25, 48.78, 0.0, 17.4, 9.66, 0, 0, 0, 2, 0, 0),)
2025-06-13 10:42:51,603 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 10:42:38
2025-06-13 10:42:51,685 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 10:42:51,691 [DEBUG][       Thread-251932][   transport.py][1871] : starting thread (client mode): 0x86368490
2025-06-13 10:42:51,691 [DEBUG][       Thread-251932][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 10:42:51,711 [DEBUG][       Thread-251932][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 10:42:51,711 [ INFO][       Thread-251932][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 10:42:51,715 [DEBUG][       Thread-251932][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 10:42:51,715 [DEBUG][       Thread-251932][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 10:42:51,715 [DEBUG][       Thread-251932][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 10:42:51,715 [DEBUG][       Thread-251932][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:42:51,715 [DEBUG][       Thread-251932][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:42:51,715 [DEBUG][       Thread-251932][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:42:51,715 [DEBUG][       Thread-251932][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:42:51,715 [DEBUG][       Thread-251932][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 10:42:51,715 [DEBUG][       Thread-251932][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 10:42:51,715 [DEBUG][       Thread-251932][   transport.py][1871] : client lang: <none>
2025-06-13 10:42:51,715 [DEBUG][       Thread-251932][   transport.py][1871] : server lang: <none>
2025-06-13 10:42:51,715 [DEBUG][       Thread-251932][   transport.py][1871] : kex follows: False
2025-06-13 10:42:51,715 [DEBUG][       Thread-251932][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 10:42:51,715 [DEBUG][       Thread-251932][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 10:42:51,715 [DEBUG][       Thread-251932][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 10:42:51,715 [DEBUG][       Thread-251932][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 10:42:51,715 [DEBUG][       Thread-251932][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 10:42:51,715 [DEBUG][       Thread-251932][   transport.py][1871] : Compression: none
2025-06-13 10:42:51,715 [DEBUG][       Thread-251932][   transport.py][1871] : === End of kex handshake ===
2025-06-13 10:42:51,733 [DEBUG][       Thread-251932][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 10:42:51,733 [DEBUG][       Thread-251932][   transport.py][1871] : Switch to new keys ...
2025-06-13 10:42:51,734 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 10:42:51,734 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 10:42:51,734 [DEBUG][       Thread-251932][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 10:42:51,735 [DEBUG][       Thread-251932][   transport.py][1871] : userauth is OK
2025-06-13 10:42:51,748 [ INFO][       Thread-251932][   transport.py][1871] : Authentication (password) successful!
2025-06-13 10:42:51,748 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 10:42:52,369 [DEBUG][       Thread-251932][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 10:42:52,369 [DEBUG][       Thread-251932][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 10:42:52,413 [DEBUG][       Thread-251932][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 10:42:52,413 [DEBUG][       Thread-251932][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 10:42:52,416 [DEBUG][       Thread-251932][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 10:42:52,430 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 10:42:52,430 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 10:42:52,431 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 10:42:52,433 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 10:42:52,438 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 10:42:52,440 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 10:42:52,440 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 10:42:52,440 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 10:42:52,440 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.362787 -999.00   +9.30  19.95     53   +0.40 1 1 1 1 1   887    0 9.13 5.74 ----- 20.7 19.9 56.4 25.9 14.1 -28.2 12.8 -29.9 11.8 -29.1 13.1 -26.9
2025-06-13 10:42:52,441 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 10:42:52,441 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 10:42:52,441 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.362787
2025-06-13 10:42:52,441 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 10:42:52,441 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 10:42:52,442 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 10:42:52,442 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 10:42:52,442 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 10:42:52,442 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T10:42:38', tmtdew=10.25, humidity=48.78, cloud=0.0, wind=17.4, temperature=9.66, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T08:42:24.797', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 10:42:52,442 [DEBUG][       Thread-251932][   transport.py][1871] : EOF in transport thread
2025-06-13 10:42:52,536 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 10:42:52,551 [DEBUG][       Thread-251935][   transport.py][1871] : starting thread (client mode): 0x863a5240
2025-06-13 10:42:52,551 [DEBUG][       Thread-251935][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 10:42:52,569 [DEBUG][       Thread-251935][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 10:42:52,569 [ INFO][       Thread-251935][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 10:42:52,582 [DEBUG][       Thread-251935][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 10:42:52,582 [DEBUG][       Thread-251935][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 10:42:52,583 [DEBUG][       Thread-251935][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 10:42:52,583 [DEBUG][       Thread-251935][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:42:52,583 [DEBUG][       Thread-251935][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:42:52,583 [DEBUG][       Thread-251935][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:42:52,583 [DEBUG][       Thread-251935][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:42:52,583 [DEBUG][       Thread-251935][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 10:42:52,583 [DEBUG][       Thread-251935][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 10:42:52,583 [DEBUG][       Thread-251935][   transport.py][1871] : client lang: <none>
2025-06-13 10:42:52,583 [DEBUG][       Thread-251935][   transport.py][1871] : server lang: <none>
2025-06-13 10:42:52,583 [DEBUG][       Thread-251935][   transport.py][1871] : kex follows: False
2025-06-13 10:42:52,583 [DEBUG][       Thread-251935][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 10:42:52,583 [DEBUG][       Thread-251935][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 10:42:52,583 [DEBUG][       Thread-251935][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 10:42:52,583 [DEBUG][       Thread-251935][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 10:42:52,583 [DEBUG][       Thread-251935][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 10:42:52,583 [DEBUG][       Thread-251935][   transport.py][1871] : Compression: none
2025-06-13 10:42:52,583 [DEBUG][       Thread-251935][   transport.py][1871] : === End of kex handshake ===
2025-06-13 10:42:52,633 [DEBUG][       Thread-251935][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 10:42:52,633 [DEBUG][       Thread-251935][   transport.py][1871] : Switch to new keys ...
2025-06-13 10:42:52,634 [DEBUG][       Thread-251935][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 10:42:52,634 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 10:42:52,634 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 10:42:52,689 [DEBUG][       Thread-251935][   transport.py][1871] : userauth is OK
2025-06-13 10:42:52,689 [DEBUG][       Thread-251935][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 10:42:52,690 [DEBUG][       Thread-251935][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 10:42:52,690 [DEBUG][       Thread-251935][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 10:42:52,690 [DEBUG][       Thread-251935][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 10:42:52,708 [ INFO][       Thread-251935][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 10:42:52,708 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 10:42:52,709 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 10:42:53,712 [DEBUG][       Thread-251935][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 10:42:53,712 [DEBUG][       Thread-251935][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 10:42:53,759 [DEBUG][       Thread-251935][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 10:42:53,760 [DEBUG][       Thread-251935][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 10:42:53,769 [DEBUG][       Thread-251935][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 10:42:53,777 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 10:42:53,778 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 10:42:53,786 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 10:42:53,795 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 10:42:53,795 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 10:42:53,796 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 10:42:53,803 [DEBUG][       Thread-251935][   transport.py][1871] : EOF in transport thread
2025-06-13 10:42:57,474 [DEBUG][Thread-251937 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:43:03,807 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 10:43:03,807 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 10:43:03,807 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 10:43:03,809 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 10:43:04,288 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 10, 42, 38), 10.25, 48.78, 0.0, 17.4, 9.66, 0, 0, 0, 2, 0, 0),)
2025-06-13 10:43:04,288 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 10:42:38
2025-06-13 10:43:04,370 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 10:43:04,374 [DEBUG][       Thread-251938][   transport.py][1871] : starting thread (client mode): 0x8636b580
2025-06-13 10:43:04,374 [DEBUG][       Thread-251938][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 10:43:04,394 [DEBUG][       Thread-251938][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 10:43:04,394 [ INFO][       Thread-251938][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 10:43:04,397 [DEBUG][       Thread-251938][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 10:43:04,397 [DEBUG][       Thread-251938][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 10:43:04,397 [DEBUG][       Thread-251938][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 10:43:04,397 [DEBUG][       Thread-251938][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:43:04,397 [DEBUG][       Thread-251938][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:43:04,397 [DEBUG][       Thread-251938][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:43:04,397 [DEBUG][       Thread-251938][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:43:04,397 [DEBUG][       Thread-251938][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 10:43:04,397 [DEBUG][       Thread-251938][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 10:43:04,397 [DEBUG][       Thread-251938][   transport.py][1871] : client lang: <none>
2025-06-13 10:43:04,397 [DEBUG][       Thread-251938][   transport.py][1871] : server lang: <none>
2025-06-13 10:43:04,397 [DEBUG][       Thread-251938][   transport.py][1871] : kex follows: False
2025-06-13 10:43:04,397 [DEBUG][       Thread-251938][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 10:43:04,397 [DEBUG][       Thread-251938][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 10:43:04,397 [DEBUG][       Thread-251938][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 10:43:04,397 [DEBUG][       Thread-251938][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 10:43:04,397 [DEBUG][       Thread-251938][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 10:43:04,397 [DEBUG][       Thread-251938][   transport.py][1871] : Compression: none
2025-06-13 10:43:04,397 [DEBUG][       Thread-251938][   transport.py][1871] : === End of kex handshake ===
2025-06-13 10:43:04,414 [DEBUG][       Thread-251938][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 10:43:04,414 [DEBUG][       Thread-251938][   transport.py][1871] : Switch to new keys ...
2025-06-13 10:43:04,415 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 10:43:04,415 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 10:43:04,416 [DEBUG][       Thread-251938][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 10:43:04,416 [DEBUG][       Thread-251938][   transport.py][1871] : userauth is OK
2025-06-13 10:43:04,441 [ INFO][       Thread-251938][   transport.py][1871] : Authentication (password) successful!
2025-06-13 10:43:04,441 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 10:43:05,089 [DEBUG][       Thread-251938][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 10:43:05,089 [DEBUG][       Thread-251938][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 10:43:05,133 [DEBUG][       Thread-251938][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 10:43:05,133 [DEBUG][       Thread-251938][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 10:43:05,136 [DEBUG][       Thread-251938][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 10:43:05,148 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 10:43:05,148 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 10:43:05,149 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 10:43:05,151 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 10:43:05,156 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 10:43:05,157 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 10:43:05,158 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 10:43:05,158 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 10:43:05,158 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.362787 -999.00   +9.30  19.95     53   +0.40 1 1 1 1 1   887    0 9.13 5.74 ----- 20.7 19.9 56.4 25.9 14.1 -28.2 12.8 -29.9 11.8 -29.1 13.1 -26.9
2025-06-13 10:43:05,158 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 10:43:05,158 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 10:43:05,158 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.362787
2025-06-13 10:43:05,159 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 10:43:05,159 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 10:43:05,159 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 10:43:05,159 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 10:43:05,159 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 10:43:05,160 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T10:42:38', tmtdew=10.25, humidity=48.78, cloud=0.0, wind=17.4, temperature=9.66, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T08:42:24.797', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 10:43:05,161 [DEBUG][       Thread-251938][   transport.py][1871] : EOF in transport thread
2025-06-13 10:43:05,243 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 10:43:05,252 [DEBUG][       Thread-251941][   transport.py][1871] : starting thread (client mode): 0x863c8880
2025-06-13 10:43:05,252 [DEBUG][       Thread-251941][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 10:43:05,270 [DEBUG][       Thread-251941][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 10:43:05,270 [ INFO][       Thread-251941][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 10:43:05,280 [DEBUG][       Thread-251941][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 10:43:05,280 [DEBUG][       Thread-251941][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 10:43:05,280 [DEBUG][       Thread-251941][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 10:43:05,280 [DEBUG][       Thread-251941][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:43:05,280 [DEBUG][       Thread-251941][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:43:05,280 [DEBUG][       Thread-251941][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:43:05,280 [DEBUG][       Thread-251941][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:43:05,280 [DEBUG][       Thread-251941][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 10:43:05,280 [DEBUG][       Thread-251941][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 10:43:05,280 [DEBUG][       Thread-251941][   transport.py][1871] : client lang: <none>
2025-06-13 10:43:05,280 [DEBUG][       Thread-251941][   transport.py][1871] : server lang: <none>
2025-06-13 10:43:05,280 [DEBUG][       Thread-251941][   transport.py][1871] : kex follows: False
2025-06-13 10:43:05,280 [DEBUG][       Thread-251941][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 10:43:05,280 [DEBUG][       Thread-251941][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 10:43:05,281 [DEBUG][       Thread-251941][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 10:43:05,281 [DEBUG][       Thread-251941][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 10:43:05,281 [DEBUG][       Thread-251941][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 10:43:05,281 [DEBUG][       Thread-251941][   transport.py][1871] : Compression: none
2025-06-13 10:43:05,281 [DEBUG][       Thread-251941][   transport.py][1871] : === End of kex handshake ===
2025-06-13 10:43:05,339 [DEBUG][       Thread-251941][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 10:43:05,340 [DEBUG][       Thread-251941][   transport.py][1871] : Switch to new keys ...
2025-06-13 10:43:05,340 [DEBUG][       Thread-251941][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 10:43:05,340 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 10:43:05,341 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 10:43:05,399 [DEBUG][       Thread-251941][   transport.py][1871] : userauth is OK
2025-06-13 10:43:05,399 [DEBUG][       Thread-251941][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 10:43:05,399 [DEBUG][       Thread-251941][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 10:43:05,399 [DEBUG][       Thread-251941][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 10:43:05,400 [DEBUG][       Thread-251941][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 10:43:05,418 [ INFO][       Thread-251941][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 10:43:05,419 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 10:43:05,419 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 10:43:06,421 [DEBUG][       Thread-251941][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 10:43:06,421 [DEBUG][       Thread-251941][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 10:43:06,472 [DEBUG][       Thread-251941][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 10:43:06,472 [DEBUG][       Thread-251941][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 10:43:06,481 [DEBUG][       Thread-251941][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 10:43:06,490 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 10:43:06,490 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 10:43:06,497 [DEBUG][Thread-251943 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:43:06,499 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 10:43:06,508 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 10:43:06,508 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 10:43:06,509 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 10:43:06,517 [DEBUG][       Thread-251941][   transport.py][1871] : EOF in transport thread
2025-06-13 10:43:07,101 [DEBUG][Thread-251944 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:43:15,516 [DEBUG][Thread-251945 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:43:16,516 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 10:43:16,516 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 10:43:16,516 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 10:43:16,516 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 10:43:17,004 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 10, 43, 10), 10.34, 48.58, 0.0, 18.63, 9.67, 0, 0, 0, 2, 0, 0),)
2025-06-13 10:43:17,004 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 10:43:10
2025-06-13 10:43:17,089 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 10:43:17,094 [DEBUG][       Thread-251946][   transport.py][1871] : starting thread (client mode): 0x863be5f0
2025-06-13 10:43:17,094 [DEBUG][       Thread-251946][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 10:43:17,115 [DEBUG][       Thread-251946][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 10:43:17,115 [ INFO][       Thread-251946][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 10:43:17,119 [DEBUG][       Thread-251946][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 10:43:17,119 [DEBUG][       Thread-251946][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 10:43:17,119 [DEBUG][       Thread-251946][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 10:43:17,119 [DEBUG][       Thread-251946][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:43:17,119 [DEBUG][       Thread-251946][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:43:17,119 [DEBUG][       Thread-251946][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:43:17,119 [DEBUG][       Thread-251946][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:43:17,119 [DEBUG][       Thread-251946][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 10:43:17,119 [DEBUG][       Thread-251946][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 10:43:17,119 [DEBUG][       Thread-251946][   transport.py][1871] : client lang: <none>
2025-06-13 10:43:17,119 [DEBUG][       Thread-251946][   transport.py][1871] : server lang: <none>
2025-06-13 10:43:17,119 [DEBUG][       Thread-251946][   transport.py][1871] : kex follows: False
2025-06-13 10:43:17,119 [DEBUG][       Thread-251946][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 10:43:17,119 [DEBUG][       Thread-251946][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 10:43:17,119 [DEBUG][       Thread-251946][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 10:43:17,119 [DEBUG][       Thread-251946][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 10:43:17,119 [DEBUG][       Thread-251946][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 10:43:17,119 [DEBUG][       Thread-251946][   transport.py][1871] : Compression: none
2025-06-13 10:43:17,119 [DEBUG][       Thread-251946][   transport.py][1871] : === End of kex handshake ===
2025-06-13 10:43:17,135 [DEBUG][       Thread-251946][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 10:43:17,135 [DEBUG][       Thread-251946][   transport.py][1871] : Switch to new keys ...
2025-06-13 10:43:17,136 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 10:43:17,136 [DEBUG][       Thread-251946][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 10:43:17,136 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 10:43:17,136 [DEBUG][       Thread-251946][   transport.py][1871] : userauth is OK
2025-06-13 10:43:17,160 [ INFO][       Thread-251946][   transport.py][1871] : Authentication (password) successful!
2025-06-13 10:43:17,160 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 10:43:17,776 [DEBUG][       Thread-251946][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 10:43:17,776 [DEBUG][       Thread-251946][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 10:43:17,816 [DEBUG][       Thread-251946][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 10:43:17,816 [DEBUG][       Thread-251946][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 10:43:17,819 [DEBUG][       Thread-251946][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 10:43:17,831 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 10:43:17,831 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 10:43:17,832 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 10:43:17,832 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 10:43:17,835 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 10:43:17,835 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 10:43:17,836 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 10:43:17,836 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 10:43:17,836 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.363134 -999.00   +9.30  20.46     53   +0.40 1 1 1 1 1   887    0 9.27 5.53 ----- 22.9 20.5 53.4 22.8 14.1 -28.6 12.8 -30.2 11.8 -28.1 13.2 -26.9
2025-06-13 10:43:17,836 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 10:43:17,836 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 10:43:17,836 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.363134
2025-06-13 10:43:17,836 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 10:43:17,836 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 10:43:17,836 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 10:43:17,836 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 10:43:17,836 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 10:43:17,836 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T10:43:10', tmtdew=10.34, humidity=48.58, cloud=0.0, wind=18.63, temperature=9.67, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T08:42:54.778', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 10:43:17,837 [DEBUG][       Thread-251946][   transport.py][1871] : EOF in transport thread
2025-06-13 10:43:17,911 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 10:43:17,920 [DEBUG][       Thread-251949][   transport.py][1871] : starting thread (client mode): 0x867fe1a0
2025-06-13 10:43:17,920 [DEBUG][       Thread-251949][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 10:43:17,936 [DEBUG][       Thread-251949][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 10:43:17,936 [ INFO][       Thread-251949][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 10:43:17,943 [DEBUG][       Thread-251949][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 10:43:17,943 [DEBUG][       Thread-251949][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 10:43:17,943 [DEBUG][       Thread-251949][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 10:43:17,943 [DEBUG][       Thread-251949][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:43:17,943 [DEBUG][       Thread-251949][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:43:17,943 [DEBUG][       Thread-251949][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:43:17,943 [DEBUG][       Thread-251949][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:43:17,944 [DEBUG][       Thread-251949][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 10:43:17,944 [DEBUG][       Thread-251949][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 10:43:17,944 [DEBUG][       Thread-251949][   transport.py][1871] : client lang: <none>
2025-06-13 10:43:17,944 [DEBUG][       Thread-251949][   transport.py][1871] : server lang: <none>
2025-06-13 10:43:17,944 [DEBUG][       Thread-251949][   transport.py][1871] : kex follows: False
2025-06-13 10:43:17,944 [DEBUG][       Thread-251949][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 10:43:17,944 [DEBUG][       Thread-251949][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 10:43:17,944 [DEBUG][       Thread-251949][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 10:43:17,944 [DEBUG][       Thread-251949][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 10:43:17,944 [DEBUG][       Thread-251949][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 10:43:17,944 [DEBUG][       Thread-251949][   transport.py][1871] : Compression: none
2025-06-13 10:43:17,944 [DEBUG][       Thread-251949][   transport.py][1871] : === End of kex handshake ===
2025-06-13 10:43:18,000 [DEBUG][       Thread-251949][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 10:43:18,000 [DEBUG][       Thread-251949][   transport.py][1871] : Switch to new keys ...
2025-06-13 10:43:18,000 [DEBUG][       Thread-251949][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 10:43:18,000 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 10:43:18,000 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 10:43:18,061 [DEBUG][       Thread-251949][   transport.py][1871] : userauth is OK
2025-06-13 10:43:18,061 [DEBUG][       Thread-251949][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 10:43:18,061 [DEBUG][       Thread-251949][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 10:43:18,061 [DEBUG][       Thread-251949][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 10:43:18,061 [DEBUG][       Thread-251949][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 10:43:18,081 [ INFO][       Thread-251949][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 10:43:18,081 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 10:43:18,082 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 10:43:19,129 [DEBUG][       Thread-251949][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 10:43:19,129 [DEBUG][       Thread-251949][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 10:43:19,179 [DEBUG][       Thread-251949][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 10:43:19,179 [DEBUG][       Thread-251949][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 10:43:19,188 [DEBUG][       Thread-251949][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 10:43:19,196 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 10:43:19,196 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 10:43:19,204 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 10:43:19,212 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 10:43:19,212 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 10:43:19,212 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 10:43:19,220 [DEBUG][       Thread-251949][   transport.py][1871] : EOF in transport thread
2025-06-13 10:43:24,533 [DEBUG][Thread-251951 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:43:28,659 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:43:28,660 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:43:29,220 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 10:43:29,220 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 10:43:29,220 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 10:43:29,222 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 10:43:29,707 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 10, 43, 10), 10.34, 48.58, 0.0, 18.63, 9.67, 0, 0, 0, 2, 0, 0),)
2025-06-13 10:43:29,707 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 10:43:10
2025-06-13 10:43:29,789 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 10:43:29,793 [DEBUG][       Thread-251952][   transport.py][1871] : starting thread (client mode): 0x84204880
2025-06-13 10:43:29,793 [DEBUG][       Thread-251952][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 10:43:29,815 [DEBUG][       Thread-251952][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 10:43:29,815 [ INFO][       Thread-251952][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 10:43:29,818 [DEBUG][       Thread-251952][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 10:43:29,818 [DEBUG][       Thread-251952][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 10:43:29,818 [DEBUG][       Thread-251952][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 10:43:29,818 [DEBUG][       Thread-251952][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:43:29,818 [DEBUG][       Thread-251952][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:43:29,818 [DEBUG][       Thread-251952][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:43:29,818 [DEBUG][       Thread-251952][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:43:29,818 [DEBUG][       Thread-251952][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 10:43:29,818 [DEBUG][       Thread-251952][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 10:43:29,818 [DEBUG][       Thread-251952][   transport.py][1871] : client lang: <none>
2025-06-13 10:43:29,818 [DEBUG][       Thread-251952][   transport.py][1871] : server lang: <none>
2025-06-13 10:43:29,818 [DEBUG][       Thread-251952][   transport.py][1871] : kex follows: False
2025-06-13 10:43:29,818 [DEBUG][       Thread-251952][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 10:43:29,819 [DEBUG][       Thread-251952][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 10:43:29,819 [DEBUG][       Thread-251952][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 10:43:29,819 [DEBUG][       Thread-251952][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 10:43:29,819 [DEBUG][       Thread-251952][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 10:43:29,819 [DEBUG][       Thread-251952][   transport.py][1871] : Compression: none
2025-06-13 10:43:29,819 [DEBUG][       Thread-251952][   transport.py][1871] : === End of kex handshake ===
2025-06-13 10:43:29,833 [DEBUG][       Thread-251952][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 10:43:29,834 [DEBUG][       Thread-251952][   transport.py][1871] : Switch to new keys ...
2025-06-13 10:43:29,834 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 10:43:29,834 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 10:43:29,835 [DEBUG][       Thread-251952][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 10:43:29,835 [DEBUG][       Thread-251952][   transport.py][1871] : userauth is OK
2025-06-13 10:43:29,849 [ INFO][       Thread-251952][   transport.py][1871] : Authentication (password) successful!
2025-06-13 10:43:29,849 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 10:43:30,485 [DEBUG][       Thread-251952][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 10:43:30,485 [DEBUG][       Thread-251952][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 10:43:30,529 [DEBUG][       Thread-251952][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 10:43:30,529 [DEBUG][       Thread-251952][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 10:43:30,532 [DEBUG][       Thread-251952][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 10:43:30,543 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 10:43:30,544 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 10:43:30,546 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 10:43:30,547 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 10:43:30,552 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 10:43:30,554 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 10:43:30,555 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 10:43:30,555 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 10:43:30,555 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.363134 -999.00   +9.30  20.46     53   +0.40 1 1 1 1 1   887    0 9.27 5.53 ----- 22.9 20.5 53.4 22.8 14.1 -28.6 12.8 -30.2 11.8 -28.1 13.2 -26.9
2025-06-13 10:43:30,555 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 10:43:30,555 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 10:43:30,556 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.363134
2025-06-13 10:43:30,556 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 10:43:30,556 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 10:43:30,557 [DEBUG][       Thread-251952][   transport.py][1871] : EOF in transport thread
2025-06-13 10:43:30,563 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 10:43:30,563 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 10:43:30,563 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 10:43:30,564 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T10:43:10', tmtdew=10.34, humidity=48.58, cloud=0.0, wind=18.63, temperature=9.67, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T08:42:54.778', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 10:43:30,640 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 10:43:30,649 [DEBUG][       Thread-251955][   transport.py][1871] : starting thread (client mode): 0x863ca1a0
2025-06-13 10:43:30,649 [DEBUG][       Thread-251955][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 10:43:30,668 [DEBUG][       Thread-251955][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 10:43:30,668 [ INFO][       Thread-251955][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 10:43:30,675 [DEBUG][       Thread-251955][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 10:43:30,675 [DEBUG][       Thread-251955][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 10:43:30,675 [DEBUG][       Thread-251955][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 10:43:30,675 [DEBUG][       Thread-251955][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:43:30,675 [DEBUG][       Thread-251955][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:43:30,676 [DEBUG][       Thread-251955][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:43:30,676 [DEBUG][       Thread-251955][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:43:30,676 [DEBUG][       Thread-251955][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 10:43:30,676 [DEBUG][       Thread-251955][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 10:43:30,676 [DEBUG][       Thread-251955][   transport.py][1871] : client lang: <none>
2025-06-13 10:43:30,676 [DEBUG][       Thread-251955][   transport.py][1871] : server lang: <none>
2025-06-13 10:43:30,676 [DEBUG][       Thread-251955][   transport.py][1871] : kex follows: False
2025-06-13 10:43:30,676 [DEBUG][       Thread-251955][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 10:43:30,676 [DEBUG][       Thread-251955][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 10:43:30,676 [DEBUG][       Thread-251955][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 10:43:30,676 [DEBUG][       Thread-251955][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 10:43:30,676 [DEBUG][       Thread-251955][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 10:43:30,676 [DEBUG][       Thread-251955][   transport.py][1871] : Compression: none
2025-06-13 10:43:30,676 [DEBUG][       Thread-251955][   transport.py][1871] : === End of kex handshake ===
2025-06-13 10:43:30,734 [DEBUG][       Thread-251955][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 10:43:30,734 [DEBUG][       Thread-251955][   transport.py][1871] : Switch to new keys ...
2025-06-13 10:43:30,734 [DEBUG][       Thread-251955][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 10:43:30,735 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 10:43:30,735 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 10:43:30,792 [DEBUG][       Thread-251955][   transport.py][1871] : userauth is OK
2025-06-13 10:43:30,793 [DEBUG][       Thread-251955][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 10:43:30,793 [DEBUG][       Thread-251955][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 10:43:30,793 [DEBUG][       Thread-251955][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 10:43:30,793 [DEBUG][       Thread-251955][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 10:43:30,811 [ INFO][       Thread-251955][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 10:43:30,812 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 10:43:30,812 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 10:43:30,913 [DEBUG][Thread-251957 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:43:31,823 [DEBUG][       Thread-251955][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 10:43:31,823 [DEBUG][       Thread-251955][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 10:43:31,871 [DEBUG][       Thread-251955][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 10:43:31,872 [DEBUG][       Thread-251955][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 10:43:31,880 [DEBUG][       Thread-251955][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 10:43:31,889 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 10:43:31,889 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 10:43:31,897 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 10:43:31,909 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 10:43:31,909 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 10:43:31,910 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 10:43:31,918 [DEBUG][       Thread-251955][   transport.py][1871] : EOF in transport thread
2025-06-13 10:43:31,984 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:43:31,985 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:43:33,563 [DEBUG][Thread-251958 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:43:41,920 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 10:43:41,920 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 10:43:41,920 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 10:43:41,923 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 10:43:42,403 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 10, 43, 10), 10.34, 48.58, 0.0, 18.63, 9.67, 0, 0, 0, 2, 0, 0),)
2025-06-13 10:43:42,403 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 10:43:10
2025-06-13 10:43:42,484 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 10:43:42,492 [DEBUG][       Thread-251959][   transport.py][1871] : starting thread (client mode): 0x84204ee0
2025-06-13 10:43:42,492 [DEBUG][       Thread-251959][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 10:43:42,513 [DEBUG][       Thread-251959][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 10:43:42,513 [ INFO][       Thread-251959][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 10:43:42,516 [DEBUG][       Thread-251959][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 10:43:42,516 [DEBUG][       Thread-251959][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 10:43:42,516 [DEBUG][       Thread-251959][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 10:43:42,516 [DEBUG][       Thread-251959][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:43:42,517 [DEBUG][       Thread-251959][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:43:42,517 [DEBUG][       Thread-251959][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:43:42,517 [DEBUG][       Thread-251959][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:43:42,517 [DEBUG][       Thread-251959][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 10:43:42,517 [DEBUG][       Thread-251959][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 10:43:42,517 [DEBUG][       Thread-251959][   transport.py][1871] : client lang: <none>
2025-06-13 10:43:42,517 [DEBUG][       Thread-251959][   transport.py][1871] : server lang: <none>
2025-06-13 10:43:42,517 [DEBUG][       Thread-251959][   transport.py][1871] : kex follows: False
2025-06-13 10:43:42,517 [DEBUG][       Thread-251959][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 10:43:42,517 [DEBUG][       Thread-251959][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 10:43:42,517 [DEBUG][       Thread-251959][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 10:43:42,517 [DEBUG][       Thread-251959][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 10:43:42,517 [DEBUG][       Thread-251959][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 10:43:42,517 [DEBUG][       Thread-251959][   transport.py][1871] : Compression: none
2025-06-13 10:43:42,517 [DEBUG][       Thread-251959][   transport.py][1871] : === End of kex handshake ===
2025-06-13 10:43:42,535 [DEBUG][       Thread-251959][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 10:43:42,535 [DEBUG][       Thread-251959][   transport.py][1871] : Switch to new keys ...
2025-06-13 10:43:42,536 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 10:43:42,536 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 10:43:42,536 [DEBUG][       Thread-251959][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 10:43:42,537 [DEBUG][       Thread-251959][   transport.py][1871] : userauth is OK
2025-06-13 10:43:42,550 [ INFO][       Thread-251959][   transport.py][1871] : Authentication (password) successful!
2025-06-13 10:43:42,551 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 10:43:42,583 [DEBUG][Thread-251961 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:43:43,199 [DEBUG][       Thread-251959][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 10:43:43,199 [DEBUG][       Thread-251959][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 10:43:43,241 [DEBUG][       Thread-251959][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 10:43:43,241 [DEBUG][       Thread-251959][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 10:43:43,243 [DEBUG][       Thread-251959][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 10:43:43,252 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 10:43:43,252 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 10:43:43,254 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 10:43:43,256 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 10:43:43,260 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 10:43:43,262 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 10:43:43,262 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 10:43:43,263 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 10:43:43,263 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.363134 -999.00   +9.30  20.46     53   +0.40 1 1 1 1 1   887    0 9.27 5.53 ----- 22.9 20.5 53.4 22.8 14.1 -28.6 12.8 -30.2 11.8 -28.1 13.2 -26.9
2025-06-13 10:43:43,263 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 10:43:43,263 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 10:43:43,263 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.363134
2025-06-13 10:43:43,263 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 10:43:43,264 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 10:43:43,264 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 10:43:43,264 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 10:43:43,264 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 10:43:43,264 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T10:43:10', tmtdew=10.34, humidity=48.58, cloud=0.0, wind=18.63, temperature=9.67, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T08:42:54.778', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 10:43:43,265 [DEBUG][       Thread-251959][   transport.py][1871] : EOF in transport thread
2025-06-13 10:43:43,348 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 10:43:43,360 [DEBUG][       Thread-251963][   transport.py][1871] : starting thread (client mode): 0x863bd000
2025-06-13 10:43:43,360 [DEBUG][       Thread-251963][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 10:43:43,375 [DEBUG][       Thread-251963][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 10:43:43,375 [ INFO][       Thread-251963][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 10:43:43,382 [DEBUG][       Thread-251963][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 10:43:43,382 [DEBUG][       Thread-251963][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 10:43:43,382 [DEBUG][       Thread-251963][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 10:43:43,382 [DEBUG][       Thread-251963][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:43:43,382 [DEBUG][       Thread-251963][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:43:43,382 [DEBUG][       Thread-251963][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:43:43,382 [DEBUG][       Thread-251963][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:43:43,382 [DEBUG][       Thread-251963][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 10:43:43,382 [DEBUG][       Thread-251963][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 10:43:43,383 [DEBUG][       Thread-251963][   transport.py][1871] : client lang: <none>
2025-06-13 10:43:43,383 [DEBUG][       Thread-251963][   transport.py][1871] : server lang: <none>
2025-06-13 10:43:43,383 [DEBUG][       Thread-251963][   transport.py][1871] : kex follows: False
2025-06-13 10:43:43,383 [DEBUG][       Thread-251963][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 10:43:43,383 [DEBUG][       Thread-251963][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 10:43:43,383 [DEBUG][       Thread-251963][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 10:43:43,383 [DEBUG][       Thread-251963][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 10:43:43,383 [DEBUG][       Thread-251963][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 10:43:43,383 [DEBUG][       Thread-251963][   transport.py][1871] : Compression: none
2025-06-13 10:43:43,383 [DEBUG][       Thread-251963][   transport.py][1871] : === End of kex handshake ===
2025-06-13 10:43:43,441 [DEBUG][       Thread-251963][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 10:43:43,442 [DEBUG][       Thread-251963][   transport.py][1871] : Switch to new keys ...
2025-06-13 10:43:43,442 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 10:43:43,443 [DEBUG][       Thread-251963][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 10:43:43,443 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 10:43:43,501 [DEBUG][       Thread-251963][   transport.py][1871] : userauth is OK
2025-06-13 10:43:43,501 [DEBUG][       Thread-251963][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 10:43:43,501 [DEBUG][       Thread-251963][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 10:43:43,501 [DEBUG][       Thread-251963][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 10:43:43,501 [DEBUG][       Thread-251963][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 10:43:43,526 [ INFO][       Thread-251963][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 10:43:43,527 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 10:43:43,527 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 10:43:44,581 [DEBUG][       Thread-251963][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 10:43:44,581 [DEBUG][       Thread-251963][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 10:43:44,635 [DEBUG][       Thread-251963][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 10:43:44,635 [DEBUG][       Thread-251963][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 10:43:44,644 [DEBUG][       Thread-251963][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 10:43:44,652 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 10:43:44,652 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 10:43:44,660 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 10:43:44,668 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 10:43:44,668 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 10:43:44,668 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 10:43:44,676 [DEBUG][       Thread-251963][   transport.py][1871] : EOF in transport thread
2025-06-13 10:43:51,600 [DEBUG][Thread-251965 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:43:54,678 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 10:43:54,679 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 10:43:54,679 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 10:43:54,681 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 10:43:55,169 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 10, 43, 43), 10.37, 48.49, 0.0, 16.22, 9.69, 0, 0, 0, 2, 0, 0),)
2025-06-13 10:43:55,169 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 10:43:43
2025-06-13 10:43:55,256 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 10:43:55,260 [DEBUG][       Thread-251966][   transport.py][1871] : starting thread (client mode): 0x863bf070
2025-06-13 10:43:55,260 [DEBUG][       Thread-251966][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 10:43:55,280 [DEBUG][       Thread-251966][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 10:43:55,280 [ INFO][       Thread-251966][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 10:43:55,283 [DEBUG][       Thread-251966][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 10:43:55,283 [DEBUG][       Thread-251966][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 10:43:55,283 [DEBUG][       Thread-251966][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 10:43:55,283 [DEBUG][       Thread-251966][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:43:55,283 [DEBUG][       Thread-251966][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:43:55,283 [DEBUG][       Thread-251966][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:43:55,283 [DEBUG][       Thread-251966][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:43:55,283 [DEBUG][       Thread-251966][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 10:43:55,283 [DEBUG][       Thread-251966][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 10:43:55,283 [DEBUG][       Thread-251966][   transport.py][1871] : client lang: <none>
2025-06-13 10:43:55,283 [DEBUG][       Thread-251966][   transport.py][1871] : server lang: <none>
2025-06-13 10:43:55,283 [DEBUG][       Thread-251966][   transport.py][1871] : kex follows: False
2025-06-13 10:43:55,283 [DEBUG][       Thread-251966][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 10:43:55,283 [DEBUG][       Thread-251966][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 10:43:55,283 [DEBUG][       Thread-251966][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 10:43:55,283 [DEBUG][       Thread-251966][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 10:43:55,283 [DEBUG][       Thread-251966][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 10:43:55,283 [DEBUG][       Thread-251966][   transport.py][1871] : Compression: none
2025-06-13 10:43:55,283 [DEBUG][       Thread-251966][   transport.py][1871] : === End of kex handshake ===
2025-06-13 10:43:55,298 [DEBUG][       Thread-251966][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 10:43:55,298 [DEBUG][       Thread-251966][   transport.py][1871] : Switch to new keys ...
2025-06-13 10:43:55,298 [DEBUG][       Thread-251966][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 10:43:55,298 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 10:43:55,298 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 10:43:55,299 [DEBUG][       Thread-251966][   transport.py][1871] : userauth is OK
2025-06-13 10:43:55,312 [ INFO][       Thread-251966][   transport.py][1871] : Authentication (password) successful!
2025-06-13 10:43:55,312 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 10:43:55,937 [DEBUG][       Thread-251966][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 10:43:55,937 [DEBUG][       Thread-251966][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 10:43:55,980 [DEBUG][       Thread-251966][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 10:43:55,980 [DEBUG][       Thread-251966][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 10:43:55,983 [DEBUG][       Thread-251966][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 10:43:55,996 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 10:43:55,996 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 10:43:55,997 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 10:43:55,998 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 10:43:56,001 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 10:43:56,002 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 10:43:56,002 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 10:43:56,002 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 10:43:56,002 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.363481 -999.00   +9.20  17.34     53   +0.20 1 1 1 1 1   887    0 9.05 4.83 ----- 19.6 17.3 51.0 24.0 14.1 -28.6 12.7 -29.8 11.8 -29.1 13.1 -26.7
2025-06-13 10:43:56,002 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 10:43:56,002 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 10:43:56,002 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.363481
2025-06-13 10:43:56,002 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 10:43:56,002 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 10:43:56,002 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 10:43:56,002 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 10:43:56,002 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 10:43:56,002 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T10:43:43', tmtdew=10.37, humidity=48.49, cloud=0.0, wind=16.22, temperature=9.69, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T08:43:24.758', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 10:43:56,003 [DEBUG][       Thread-251966][   transport.py][1871] : EOF in transport thread
2025-06-13 10:43:56,077 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 10:43:56,090 [DEBUG][       Thread-251969][   transport.py][1871] : starting thread (client mode): 0x863ef010
2025-06-13 10:43:56,090 [DEBUG][       Thread-251969][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 10:43:56,105 [DEBUG][       Thread-251969][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 10:43:56,105 [ INFO][       Thread-251969][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 10:43:56,113 [DEBUG][       Thread-251969][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 10:43:56,113 [DEBUG][       Thread-251969][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 10:43:56,113 [DEBUG][       Thread-251969][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 10:43:56,113 [DEBUG][       Thread-251969][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:43:56,113 [DEBUG][       Thread-251969][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:43:56,113 [DEBUG][       Thread-251969][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:43:56,113 [DEBUG][       Thread-251969][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:43:56,113 [DEBUG][       Thread-251969][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 10:43:56,113 [DEBUG][       Thread-251969][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 10:43:56,113 [DEBUG][       Thread-251969][   transport.py][1871] : client lang: <none>
2025-06-13 10:43:56,113 [DEBUG][       Thread-251969][   transport.py][1871] : server lang: <none>
2025-06-13 10:43:56,113 [DEBUG][       Thread-251969][   transport.py][1871] : kex follows: False
2025-06-13 10:43:56,113 [DEBUG][       Thread-251969][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 10:43:56,113 [DEBUG][       Thread-251969][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 10:43:56,113 [DEBUG][       Thread-251969][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 10:43:56,113 [DEBUG][       Thread-251969][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 10:43:56,113 [DEBUG][       Thread-251969][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 10:43:56,113 [DEBUG][       Thread-251969][   transport.py][1871] : Compression: none
2025-06-13 10:43:56,113 [DEBUG][       Thread-251969][   transport.py][1871] : === End of kex handshake ===
2025-06-13 10:43:56,168 [DEBUG][       Thread-251969][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 10:43:56,169 [DEBUG][       Thread-251969][   transport.py][1871] : Switch to new keys ...
2025-06-13 10:43:56,169 [DEBUG][       Thread-251969][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 10:43:56,169 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 10:43:56,169 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 10:43:56,225 [DEBUG][       Thread-251969][   transport.py][1871] : userauth is OK
2025-06-13 10:43:56,225 [DEBUG][       Thread-251969][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 10:43:56,225 [DEBUG][       Thread-251969][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 10:43:56,225 [DEBUG][       Thread-251969][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 10:43:56,225 [DEBUG][       Thread-251969][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 10:43:56,239 [ INFO][       Thread-251969][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 10:43:56,240 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 10:43:56,240 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 10:43:57,546 [DEBUG][       Thread-251969][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 10:43:57,546 [DEBUG][       Thread-251969][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 10:43:57,597 [DEBUG][       Thread-251969][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 10:43:57,597 [DEBUG][       Thread-251969][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 10:43:57,613 [DEBUG][       Thread-251969][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 10:43:57,621 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 10:43:57,621 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 10:43:57,631 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 10:43:57,639 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 10:43:57,639 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 10:43:57,639 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 10:43:57,648 [DEBUG][       Thread-251969][   transport.py][1871] : EOF in transport thread
2025-06-13 10:44:00,617 [DEBUG][Thread-251971 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:44:07,143 [DEBUG][Thread-251972 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:44:07,644 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 10:44:07,644 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 10:44:07,644 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 10:44:07,646 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 10:44:08,126 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 10, 43, 43), 10.37, 48.49, 0.0, 16.22, 9.69, 0, 0, 0, 2, 0, 0),)
2025-06-13 10:44:08,126 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 10:43:43
2025-06-13 10:44:08,207 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 10:44:08,213 [DEBUG][       Thread-251973][   transport.py][1871] : starting thread (client mode): 0x8636a2c0
2025-06-13 10:44:08,217 [DEBUG][       Thread-251973][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 10:44:08,234 [DEBUG][       Thread-251973][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 10:44:08,234 [ INFO][       Thread-251973][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 10:44:08,236 [DEBUG][       Thread-251973][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 10:44:08,236 [DEBUG][       Thread-251973][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 10:44:08,236 [DEBUG][       Thread-251973][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 10:44:08,236 [DEBUG][       Thread-251973][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:44:08,236 [DEBUG][       Thread-251973][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:44:08,236 [DEBUG][       Thread-251973][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:44:08,236 [DEBUG][       Thread-251973][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:44:08,236 [DEBUG][       Thread-251973][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 10:44:08,236 [DEBUG][       Thread-251973][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 10:44:08,236 [DEBUG][       Thread-251973][   transport.py][1871] : client lang: <none>
2025-06-13 10:44:08,236 [DEBUG][       Thread-251973][   transport.py][1871] : server lang: <none>
2025-06-13 10:44:08,236 [DEBUG][       Thread-251973][   transport.py][1871] : kex follows: False
2025-06-13 10:44:08,236 [DEBUG][       Thread-251973][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 10:44:08,236 [DEBUG][       Thread-251973][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 10:44:08,236 [DEBUG][       Thread-251973][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 10:44:08,236 [DEBUG][       Thread-251973][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 10:44:08,236 [DEBUG][       Thread-251973][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 10:44:08,236 [DEBUG][       Thread-251973][   transport.py][1871] : Compression: none
2025-06-13 10:44:08,236 [DEBUG][       Thread-251973][   transport.py][1871] : === End of kex handshake ===
2025-06-13 10:44:08,246 [DEBUG][       Thread-251973][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 10:44:08,246 [DEBUG][       Thread-251973][   transport.py][1871] : Switch to new keys ...
2025-06-13 10:44:08,247 [DEBUG][       Thread-251973][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 10:44:08,247 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 10:44:08,247 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 10:44:08,248 [DEBUG][       Thread-251973][   transport.py][1871] : userauth is OK
2025-06-13 10:44:08,272 [ INFO][       Thread-251973][   transport.py][1871] : Authentication (password) successful!
2025-06-13 10:44:08,273 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 10:44:08,928 [DEBUG][       Thread-251973][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 10:44:08,928 [DEBUG][       Thread-251973][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 10:44:08,969 [DEBUG][       Thread-251973][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 10:44:08,969 [DEBUG][       Thread-251973][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 10:44:08,972 [DEBUG][       Thread-251973][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 10:44:08,983 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 10:44:08,984 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 10:44:08,985 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 10:44:08,987 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 10:44:08,991 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 10:44:08,993 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 10:44:08,993 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 10:44:08,993 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 10:44:08,994 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.363481 -999.00   +9.20  17.34     53   +0.20 1 1 1 1 1   887    0 9.05 4.83 ----- 19.6 17.3 51.0 24.0 14.1 -28.6 12.7 -29.8 11.8 -29.1 13.1 -26.7
2025-06-13 10:44:08,994 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 10:44:08,994 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 10:44:08,994 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.363481
2025-06-13 10:44:08,994 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 10:44:08,995 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 10:44:08,995 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 10:44:08,995 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 10:44:08,995 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 10:44:08,995 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T10:43:43', tmtdew=10.37, humidity=48.49, cloud=0.0, wind=16.22, temperature=9.69, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T08:43:24.758', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 10:44:08,995 [DEBUG][       Thread-251973][   transport.py][1871] : EOF in transport thread
2025-06-13 10:44:09,079 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 10:44:09,091 [DEBUG][       Thread-251976][   transport.py][1871] : starting thread (client mode): 0x84207fd0
2025-06-13 10:44:09,091 [DEBUG][       Thread-251976][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 10:44:09,113 [DEBUG][       Thread-251976][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 10:44:09,113 [ INFO][       Thread-251976][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 10:44:09,126 [DEBUG][       Thread-251976][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 10:44:09,126 [DEBUG][       Thread-251976][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 10:44:09,126 [DEBUG][       Thread-251976][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 10:44:09,126 [DEBUG][       Thread-251976][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:44:09,126 [DEBUG][       Thread-251976][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:44:09,126 [DEBUG][       Thread-251976][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:44:09,126 [DEBUG][       Thread-251976][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:44:09,126 [DEBUG][       Thread-251976][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 10:44:09,126 [DEBUG][       Thread-251976][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 10:44:09,126 [DEBUG][       Thread-251976][   transport.py][1871] : client lang: <none>
2025-06-13 10:44:09,126 [DEBUG][       Thread-251976][   transport.py][1871] : server lang: <none>
2025-06-13 10:44:09,126 [DEBUG][       Thread-251976][   transport.py][1871] : kex follows: False
2025-06-13 10:44:09,126 [DEBUG][       Thread-251976][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 10:44:09,126 [DEBUG][       Thread-251976][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 10:44:09,126 [DEBUG][       Thread-251976][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 10:44:09,126 [DEBUG][       Thread-251976][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 10:44:09,126 [DEBUG][       Thread-251976][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 10:44:09,126 [DEBUG][       Thread-251976][   transport.py][1871] : Compression: none
2025-06-13 10:44:09,126 [DEBUG][       Thread-251976][   transport.py][1871] : === End of kex handshake ===
2025-06-13 10:44:09,179 [DEBUG][       Thread-251976][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 10:44:09,179 [DEBUG][       Thread-251976][   transport.py][1871] : Switch to new keys ...
2025-06-13 10:44:09,180 [DEBUG][       Thread-251976][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 10:44:09,180 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 10:44:09,181 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 10:44:09,237 [DEBUG][       Thread-251976][   transport.py][1871] : userauth is OK
2025-06-13 10:44:09,238 [DEBUG][       Thread-251976][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 10:44:09,238 [DEBUG][       Thread-251976][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 10:44:09,238 [DEBUG][       Thread-251976][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 10:44:09,238 [DEBUG][       Thread-251976][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 10:44:09,256 [ INFO][       Thread-251976][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 10:44:09,257 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 10:44:09,257 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 10:44:09,657 [DEBUG][Thread-251978 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:44:10,257 [DEBUG][       Thread-251976][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 10:44:10,258 [DEBUG][       Thread-251976][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 10:44:10,307 [DEBUG][       Thread-251976][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 10:44:10,308 [DEBUG][       Thread-251976][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 10:44:10,317 [DEBUG][       Thread-251976][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 10:44:10,325 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 10:44:10,325 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 10:44:10,334 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 10:44:10,342 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 10:44:10,343 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 10:44:10,343 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 10:44:10,351 [DEBUG][       Thread-251976][   transport.py][1871] : EOF in transport thread
2025-06-13 10:44:18,675 [DEBUG][Thread-251979 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:44:20,352 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 10:44:20,352 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 10:44:20,352 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 10:44:20,353 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 10:44:20,821 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 10, 44, 15), 10.34, 48.46, 0.0, 20.24, 9.6, 0, 0, 0, 2, 0, 0),)
2025-06-13 10:44:20,821 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 10:44:15
2025-06-13 10:44:20,903 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 10:44:20,908 [DEBUG][       Thread-251980][   transport.py][1871] : starting thread (client mode): 0x86368850
2025-06-13 10:44:20,908 [DEBUG][       Thread-251980][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 10:44:20,924 [DEBUG][       Thread-251980][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 10:44:20,924 [ INFO][       Thread-251980][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 10:44:20,926 [DEBUG][       Thread-251980][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 10:44:20,926 [DEBUG][       Thread-251980][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 10:44:20,926 [DEBUG][       Thread-251980][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 10:44:20,926 [DEBUG][       Thread-251980][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:44:20,926 [DEBUG][       Thread-251980][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:44:20,926 [DEBUG][       Thread-251980][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:44:20,926 [DEBUG][       Thread-251980][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:44:20,926 [DEBUG][       Thread-251980][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 10:44:20,926 [DEBUG][       Thread-251980][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 10:44:20,926 [DEBUG][       Thread-251980][   transport.py][1871] : client lang: <none>
2025-06-13 10:44:20,926 [DEBUG][       Thread-251980][   transport.py][1871] : server lang: <none>
2025-06-13 10:44:20,926 [DEBUG][       Thread-251980][   transport.py][1871] : kex follows: False
2025-06-13 10:44:20,926 [DEBUG][       Thread-251980][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 10:44:20,926 [DEBUG][       Thread-251980][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 10:44:20,926 [DEBUG][       Thread-251980][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 10:44:20,926 [DEBUG][       Thread-251980][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 10:44:20,926 [DEBUG][       Thread-251980][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 10:44:20,926 [DEBUG][       Thread-251980][   transport.py][1871] : Compression: none
2025-06-13 10:44:20,926 [DEBUG][       Thread-251980][   transport.py][1871] : === End of kex handshake ===
2025-06-13 10:44:20,936 [DEBUG][       Thread-251980][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 10:44:20,936 [DEBUG][       Thread-251980][   transport.py][1871] : Switch to new keys ...
2025-06-13 10:44:20,936 [DEBUG][       Thread-251980][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 10:44:20,937 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 10:44:20,937 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 10:44:20,938 [DEBUG][       Thread-251980][   transport.py][1871] : userauth is OK
2025-06-13 10:44:20,962 [ INFO][       Thread-251980][   transport.py][1871] : Authentication (password) successful!
2025-06-13 10:44:20,962 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 10:44:21,594 [DEBUG][       Thread-251980][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 10:44:21,594 [DEBUG][       Thread-251980][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 10:44:21,637 [DEBUG][       Thread-251980][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 10:44:21,637 [DEBUG][       Thread-251980][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 10:44:21,640 [DEBUG][       Thread-251980][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 10:44:21,654 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 10:44:21,655 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 10:44:21,656 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 10:44:21,658 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 10:44:21,663 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 10:44:21,665 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 10:44:21,665 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 10:44:21,666 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 10:44:21,666 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.363829 -999.00   +9.10  22.60     53   +0.30 1 1 1 1 1   887    0 9.00 3.78 ----- 24.6 22.6 56.2 25.6 14.1 -28.2 12.8 -30.1 11.8 -28.9 13.1 -27.3
2025-06-13 10:44:21,666 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 10:44:21,666 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 10:44:21,666 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.363829
2025-06-13 10:44:21,667 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 10:44:21,667 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 10:44:21,667 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 10:44:21,667 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 10:44:21,667 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 10:44:21,667 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T10:44:15', tmtdew=10.34, humidity=48.46, cloud=0.0, wind=20.24, temperature=9.6, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T08:43:54.826', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 10:44:21,668 [DEBUG][       Thread-251980][   transport.py][1871] : EOF in transport thread
2025-06-13 10:44:21,751 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 10:44:21,760 [DEBUG][       Thread-251983][   transport.py][1871] : starting thread (client mode): 0x867b6380
2025-06-13 10:44:21,760 [DEBUG][       Thread-251983][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 10:44:21,780 [DEBUG][       Thread-251983][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 10:44:21,781 [ INFO][       Thread-251983][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 10:44:21,793 [DEBUG][       Thread-251983][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 10:44:21,793 [DEBUG][       Thread-251983][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 10:44:21,793 [DEBUG][       Thread-251983][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 10:44:21,793 [DEBUG][       Thread-251983][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:44:21,793 [DEBUG][       Thread-251983][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:44:21,793 [DEBUG][       Thread-251983][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:44:21,794 [DEBUG][       Thread-251983][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:44:21,794 [DEBUG][       Thread-251983][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 10:44:21,794 [DEBUG][       Thread-251983][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 10:44:21,794 [DEBUG][       Thread-251983][   transport.py][1871] : client lang: <none>
2025-06-13 10:44:21,794 [DEBUG][       Thread-251983][   transport.py][1871] : server lang: <none>
2025-06-13 10:44:21,794 [DEBUG][       Thread-251983][   transport.py][1871] : kex follows: False
2025-06-13 10:44:21,794 [DEBUG][       Thread-251983][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 10:44:21,794 [DEBUG][       Thread-251983][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 10:44:21,794 [DEBUG][       Thread-251983][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 10:44:21,794 [DEBUG][       Thread-251983][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 10:44:21,794 [DEBUG][       Thread-251983][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 10:44:21,794 [DEBUG][       Thread-251983][   transport.py][1871] : Compression: none
2025-06-13 10:44:21,794 [DEBUG][       Thread-251983][   transport.py][1871] : === End of kex handshake ===
2025-06-13 10:44:21,850 [DEBUG][       Thread-251983][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 10:44:21,850 [DEBUG][       Thread-251983][   transport.py][1871] : Switch to new keys ...
2025-06-13 10:44:21,851 [DEBUG][       Thread-251983][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 10:44:21,851 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 10:44:21,851 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 10:44:21,909 [DEBUG][       Thread-251983][   transport.py][1871] : userauth is OK
2025-06-13 10:44:21,910 [DEBUG][       Thread-251983][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 10:44:21,910 [DEBUG][       Thread-251983][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 10:44:21,910 [DEBUG][       Thread-251983][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 10:44:21,910 [DEBUG][       Thread-251983][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 10:44:21,928 [ INFO][       Thread-251983][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 10:44:21,928 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 10:44:21,929 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 10:44:22,954 [DEBUG][       Thread-251983][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 10:44:22,954 [DEBUG][       Thread-251983][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 10:44:23,006 [DEBUG][       Thread-251983][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 10:44:23,006 [DEBUG][       Thread-251983][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 10:44:23,019 [DEBUG][       Thread-251983][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 10:44:23,028 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 10:44:23,028 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 10:44:23,039 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 10:44:23,051 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 10:44:23,051 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 10:44:23,052 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 10:44:23,061 [DEBUG][       Thread-251983][   transport.py][1871] : EOF in transport thread
2025-06-13 10:44:27,692 [DEBUG][Thread-251985 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:44:28,798 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:44:28,799 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:44:32,067 [DEBUG][Thread-251986 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:44:33,062 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 10:44:33,062 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 10:44:33,071 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 10:44:33,074 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 10:44:33,138 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:44:33,138 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:44:33,567 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 10, 44, 15), 10.34, 48.46, 0.0, 20.24, 9.6, 0, 0, 0, 2, 0, 0),)
2025-06-13 10:44:33,567 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 10:44:15
2025-06-13 10:44:33,654 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 10:44:33,659 [DEBUG][       Thread-251987][   transport.py][1871] : starting thread (client mode): 0x842071c0
2025-06-13 10:44:33,660 [DEBUG][       Thread-251987][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 10:44:33,680 [DEBUG][       Thread-251987][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 10:44:33,680 [ INFO][       Thread-251987][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 10:44:33,683 [DEBUG][       Thread-251987][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 10:44:33,683 [DEBUG][       Thread-251987][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 10:44:33,683 [DEBUG][       Thread-251987][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 10:44:33,683 [DEBUG][       Thread-251987][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:44:33,683 [DEBUG][       Thread-251987][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:44:33,683 [DEBUG][       Thread-251987][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:44:33,683 [DEBUG][       Thread-251987][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:44:33,684 [DEBUG][       Thread-251987][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 10:44:33,684 [DEBUG][       Thread-251987][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 10:44:33,684 [DEBUG][       Thread-251987][   transport.py][1871] : client lang: <none>
2025-06-13 10:44:33,684 [DEBUG][       Thread-251987][   transport.py][1871] : server lang: <none>
2025-06-13 10:44:33,684 [DEBUG][       Thread-251987][   transport.py][1871] : kex follows: False
2025-06-13 10:44:33,684 [DEBUG][       Thread-251987][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 10:44:33,684 [DEBUG][       Thread-251987][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 10:44:33,684 [DEBUG][       Thread-251987][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 10:44:33,684 [DEBUG][       Thread-251987][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 10:44:33,684 [DEBUG][       Thread-251987][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 10:44:33,684 [DEBUG][       Thread-251987][   transport.py][1871] : Compression: none
2025-06-13 10:44:33,684 [DEBUG][       Thread-251987][   transport.py][1871] : === End of kex handshake ===
2025-06-13 10:44:33,697 [DEBUG][       Thread-251987][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 10:44:33,697 [DEBUG][       Thread-251987][   transport.py][1871] : Switch to new keys ...
2025-06-13 10:44:33,697 [DEBUG][       Thread-251987][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 10:44:33,697 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 10:44:33,697 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 10:44:33,698 [DEBUG][       Thread-251987][   transport.py][1871] : userauth is OK
2025-06-13 10:44:33,722 [ INFO][       Thread-251987][   transport.py][1871] : Authentication (password) successful!
2025-06-13 10:44:33,722 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 10:44:34,354 [DEBUG][       Thread-251987][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 10:44:34,354 [DEBUG][       Thread-251987][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 10:44:34,397 [DEBUG][       Thread-251987][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 10:44:34,397 [DEBUG][       Thread-251987][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 10:44:34,399 [DEBUG][       Thread-251987][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 10:44:34,414 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 10:44:34,414 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 10:44:34,415 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 10:44:34,416 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 10:44:34,418 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 10:44:34,419 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 10:44:34,419 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 10:44:34,419 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 10:44:34,419 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.363829 -999.00   +9.10  22.60     53   +0.30 1 1 1 1 1   887    0 9.00 3.78 ----- 24.6 22.6 56.2 25.6 14.1 -28.2 12.8 -30.1 11.8 -28.9 13.1 -27.3
2025-06-13 10:44:34,419 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 10:44:34,419 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 10:44:34,419 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.363829
2025-06-13 10:44:34,419 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 10:44:34,420 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 10:44:34,420 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 10:44:34,420 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 10:44:34,420 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 10:44:34,420 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T10:44:15', tmtdew=10.34, humidity=48.46, cloud=0.0, wind=20.24, temperature=9.6, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T08:43:54.826', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 10:44:34,420 [DEBUG][       Thread-251987][   transport.py][1871] : EOF in transport thread
2025-06-13 10:44:34,494 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 10:44:34,506 [DEBUG][       Thread-251990][   transport.py][1871] : starting thread (client mode): 0x863a7220
2025-06-13 10:44:34,506 [DEBUG][       Thread-251990][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 10:44:34,521 [DEBUG][       Thread-251990][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 10:44:34,521 [ INFO][       Thread-251990][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 10:44:34,528 [DEBUG][       Thread-251990][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 10:44:34,528 [DEBUG][       Thread-251990][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 10:44:34,528 [DEBUG][       Thread-251990][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 10:44:34,528 [DEBUG][       Thread-251990][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:44:34,528 [DEBUG][       Thread-251990][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:44:34,528 [DEBUG][       Thread-251990][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:44:34,528 [DEBUG][       Thread-251990][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:44:34,528 [DEBUG][       Thread-251990][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 10:44:34,528 [DEBUG][       Thread-251990][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 10:44:34,528 [DEBUG][       Thread-251990][   transport.py][1871] : client lang: <none>
2025-06-13 10:44:34,528 [DEBUG][       Thread-251990][   transport.py][1871] : server lang: <none>
2025-06-13 10:44:34,528 [DEBUG][       Thread-251990][   transport.py][1871] : kex follows: False
2025-06-13 10:44:34,528 [DEBUG][       Thread-251990][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 10:44:34,528 [DEBUG][       Thread-251990][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 10:44:34,528 [DEBUG][       Thread-251990][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 10:44:34,528 [DEBUG][       Thread-251990][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 10:44:34,528 [DEBUG][       Thread-251990][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 10:44:34,528 [DEBUG][       Thread-251990][   transport.py][1871] : Compression: none
2025-06-13 10:44:34,528 [DEBUG][       Thread-251990][   transport.py][1871] : === End of kex handshake ===
2025-06-13 10:44:34,588 [DEBUG][       Thread-251990][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 10:44:34,588 [DEBUG][       Thread-251990][   transport.py][1871] : Switch to new keys ...
2025-06-13 10:44:34,588 [DEBUG][       Thread-251990][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 10:44:34,588 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 10:44:34,588 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 10:44:34,645 [DEBUG][       Thread-251990][   transport.py][1871] : userauth is OK
2025-06-13 10:44:34,645 [DEBUG][       Thread-251990][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 10:44:34,645 [DEBUG][       Thread-251990][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 10:44:34,645 [DEBUG][       Thread-251990][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 10:44:34,645 [DEBUG][       Thread-251990][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 10:44:34,659 [ INFO][       Thread-251990][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 10:44:34,659 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 10:44:34,659 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 10:44:35,691 [DEBUG][       Thread-251990][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 10:44:35,692 [DEBUG][       Thread-251990][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 10:44:35,743 [DEBUG][       Thread-251990][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 10:44:35,743 [DEBUG][       Thread-251990][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 10:44:35,752 [DEBUG][       Thread-251990][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 10:44:35,762 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 10:44:35,762 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 10:44:35,774 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 10:44:35,783 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 10:44:35,784 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 10:44:35,784 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 10:44:35,793 [DEBUG][       Thread-251990][   transport.py][1871] : EOF in transport thread
2025-06-13 10:44:36,721 [DEBUG][Thread-251992 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:44:45,741 [DEBUG][Thread-251993 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:44:45,794 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 10:44:45,794 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 10:44:45,794 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 10:44:45,797 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 10:44:46,261 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 10, 44, 15), 10.34, 48.46, 0.0, 20.24, 9.6, 0, 0, 0, 2, 0, 0),)
2025-06-13 10:44:46,261 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 10:44:15
2025-06-13 10:44:46,343 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 10:44:46,349 [DEBUG][       Thread-251994][   transport.py][1871] : starting thread (client mode): 0x84204550
2025-06-13 10:44:46,349 [DEBUG][       Thread-251994][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 10:44:46,370 [DEBUG][       Thread-251994][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 10:44:46,370 [ INFO][       Thread-251994][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 10:44:46,373 [DEBUG][       Thread-251994][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 10:44:46,373 [DEBUG][       Thread-251994][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 10:44:46,373 [DEBUG][       Thread-251994][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 10:44:46,373 [DEBUG][       Thread-251994][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:44:46,373 [DEBUG][       Thread-251994][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:44:46,373 [DEBUG][       Thread-251994][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:44:46,373 [DEBUG][       Thread-251994][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:44:46,373 [DEBUG][       Thread-251994][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 10:44:46,373 [DEBUG][       Thread-251994][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 10:44:46,373 [DEBUG][       Thread-251994][   transport.py][1871] : client lang: <none>
2025-06-13 10:44:46,373 [DEBUG][       Thread-251994][   transport.py][1871] : server lang: <none>
2025-06-13 10:44:46,373 [DEBUG][       Thread-251994][   transport.py][1871] : kex follows: False
2025-06-13 10:44:46,373 [DEBUG][       Thread-251994][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 10:44:46,373 [DEBUG][       Thread-251994][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 10:44:46,373 [DEBUG][       Thread-251994][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 10:44:46,373 [DEBUG][       Thread-251994][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 10:44:46,373 [DEBUG][       Thread-251994][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 10:44:46,373 [DEBUG][       Thread-251994][   transport.py][1871] : Compression: none
2025-06-13 10:44:46,373 [DEBUG][       Thread-251994][   transport.py][1871] : === End of kex handshake ===
2025-06-13 10:44:46,388 [DEBUG][       Thread-251994][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 10:44:46,388 [DEBUG][       Thread-251994][   transport.py][1871] : Switch to new keys ...
2025-06-13 10:44:46,389 [DEBUG][       Thread-251994][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 10:44:46,389 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 10:44:46,389 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 10:44:46,389 [DEBUG][       Thread-251994][   transport.py][1871] : userauth is OK
2025-06-13 10:44:46,413 [ INFO][       Thread-251994][   transport.py][1871] : Authentication (password) successful!
2025-06-13 10:44:46,413 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 10:44:47,048 [DEBUG][       Thread-251994][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 10:44:47,049 [DEBUG][       Thread-251994][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 10:44:47,092 [DEBUG][       Thread-251994][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 10:44:47,093 [DEBUG][       Thread-251994][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 10:44:47,095 [DEBUG][       Thread-251994][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 10:44:47,109 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 10:44:47,109 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 10:44:47,111 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 10:44:47,112 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 10:44:47,117 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 10:44:47,119 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 10:44:47,119 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 10:44:47,120 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 10:44:47,120 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.363829 -999.00   +9.10  22.60     53   +0.30 1 1 1 1 1   887    0 9.00 3.78 ----- 24.6 22.6 56.2 25.6 14.1 -28.2 12.8 -30.1 11.8 -28.9 13.1 -27.3
2025-06-13 10:44:47,120 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 10:44:47,120 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 10:44:47,120 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.363829
2025-06-13 10:44:47,121 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 10:44:47,121 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 10:44:47,121 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 10:44:47,121 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 10:44:47,121 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 10:44:47,121 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T10:44:15', tmtdew=10.34, humidity=48.46, cloud=0.0, wind=20.24, temperature=9.6, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T08:43:54.826', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 10:44:47,122 [DEBUG][       Thread-251994][   transport.py][1871] : EOF in transport thread
2025-06-13 10:44:47,205 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 10:44:47,221 [DEBUG][       Thread-251997][   transport.py][1871] : starting thread (client mode): 0x863a55d0
2025-06-13 10:44:47,221 [DEBUG][       Thread-251997][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 10:44:47,241 [DEBUG][       Thread-251997][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 10:44:47,241 [ INFO][       Thread-251997][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 10:44:47,248 [DEBUG][       Thread-251997][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 10:44:47,248 [DEBUG][       Thread-251997][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 10:44:47,248 [DEBUG][       Thread-251997][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 10:44:47,248 [DEBUG][       Thread-251997][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:44:47,248 [DEBUG][       Thread-251997][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:44:47,249 [DEBUG][       Thread-251997][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:44:47,249 [DEBUG][       Thread-251997][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:44:47,249 [DEBUG][       Thread-251997][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 10:44:47,249 [DEBUG][       Thread-251997][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 10:44:47,249 [DEBUG][       Thread-251997][   transport.py][1871] : client lang: <none>
2025-06-13 10:44:47,249 [DEBUG][       Thread-251997][   transport.py][1871] : server lang: <none>
2025-06-13 10:44:47,249 [DEBUG][       Thread-251997][   transport.py][1871] : kex follows: False
2025-06-13 10:44:47,249 [DEBUG][       Thread-251997][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 10:44:47,249 [DEBUG][       Thread-251997][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 10:44:47,249 [DEBUG][       Thread-251997][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 10:44:47,249 [DEBUG][       Thread-251997][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 10:44:47,249 [DEBUG][       Thread-251997][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 10:44:47,249 [DEBUG][       Thread-251997][   transport.py][1871] : Compression: none
2025-06-13 10:44:47,249 [DEBUG][       Thread-251997][   transport.py][1871] : === End of kex handshake ===
2025-06-13 10:44:47,309 [DEBUG][       Thread-251997][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 10:44:47,310 [DEBUG][       Thread-251997][   transport.py][1871] : Switch to new keys ...
2025-06-13 10:44:47,310 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 10:44:47,311 [DEBUG][       Thread-251997][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 10:44:47,311 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 10:44:47,365 [DEBUG][       Thread-251997][   transport.py][1871] : userauth is OK
2025-06-13 10:44:47,366 [DEBUG][       Thread-251997][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 10:44:47,366 [DEBUG][       Thread-251997][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 10:44:47,366 [DEBUG][       Thread-251997][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 10:44:47,366 [DEBUG][       Thread-251997][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 10:44:47,385 [ INFO][       Thread-251997][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 10:44:47,385 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 10:44:47,385 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 10:44:48,490 [DEBUG][       Thread-251997][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 10:44:48,490 [DEBUG][       Thread-251997][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 10:44:48,539 [DEBUG][       Thread-251997][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 10:44:48,539 [DEBUG][       Thread-251997][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 10:44:48,548 [DEBUG][       Thread-251997][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 10:44:48,556 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 10:44:48,557 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 10:44:48,569 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 10:44:48,577 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 10:44:48,577 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 10:44:48,577 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 10:44:48,585 [DEBUG][       Thread-251997][   transport.py][1871] : EOF in transport thread
2025-06-13 10:44:54,758 [DEBUG][Thread-251999 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:44:58,587 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 10:44:58,588 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 10:44:58,588 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 10:44:58,590 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 10:44:59,071 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 10, 44, 47), 10.39, 48.29, 0.0, 19.94, 9.61, 0, 0, 0, 2, 0, 0),)
2025-06-13 10:44:59,071 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 10:44:47
2025-06-13 10:44:59,153 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 10:44:59,157 [DEBUG][       Thread-252000][   transport.py][1871] : starting thread (client mode): 0x84206170
2025-06-13 10:44:59,157 [DEBUG][       Thread-252000][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 10:44:59,179 [DEBUG][       Thread-252000][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 10:44:59,179 [ INFO][       Thread-252000][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 10:44:59,183 [DEBUG][       Thread-252000][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 10:44:59,183 [DEBUG][       Thread-252000][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 10:44:59,183 [DEBUG][       Thread-252000][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 10:44:59,183 [DEBUG][       Thread-252000][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:44:59,183 [DEBUG][       Thread-252000][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:44:59,183 [DEBUG][       Thread-252000][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:44:59,183 [DEBUG][       Thread-252000][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:44:59,183 [DEBUG][       Thread-252000][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 10:44:59,183 [DEBUG][       Thread-252000][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 10:44:59,183 [DEBUG][       Thread-252000][   transport.py][1871] : client lang: <none>
2025-06-13 10:44:59,183 [DEBUG][       Thread-252000][   transport.py][1871] : server lang: <none>
2025-06-13 10:44:59,183 [DEBUG][       Thread-252000][   transport.py][1871] : kex follows: False
2025-06-13 10:44:59,183 [DEBUG][       Thread-252000][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 10:44:59,183 [DEBUG][       Thread-252000][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 10:44:59,183 [DEBUG][       Thread-252000][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 10:44:59,183 [DEBUG][       Thread-252000][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 10:44:59,183 [DEBUG][       Thread-252000][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 10:44:59,183 [DEBUG][       Thread-252000][   transport.py][1871] : Compression: none
2025-06-13 10:44:59,183 [DEBUG][       Thread-252000][   transport.py][1871] : === End of kex handshake ===
2025-06-13 10:44:59,200 [DEBUG][       Thread-252000][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 10:44:59,200 [DEBUG][       Thread-252000][   transport.py][1871] : Switch to new keys ...
2025-06-13 10:44:59,201 [DEBUG][       Thread-252000][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 10:44:59,201 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 10:44:59,201 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 10:44:59,202 [DEBUG][       Thread-252000][   transport.py][1871] : userauth is OK
2025-06-13 10:44:59,215 [ INFO][       Thread-252000][   transport.py][1871] : Authentication (password) successful!
2025-06-13 10:44:59,216 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 10:44:59,863 [DEBUG][       Thread-252000][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 10:44:59,863 [DEBUG][       Thread-252000][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 10:44:59,905 [DEBUG][       Thread-252000][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 10:44:59,905 [DEBUG][       Thread-252000][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 10:44:59,908 [DEBUG][       Thread-252000][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 10:44:59,921 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 10:44:59,921 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 10:44:59,923 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 10:44:59,924 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 10:44:59,929 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 10:44:59,931 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 10:44:59,931 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 10:44:59,931 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 10:44:59,931 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.364176 -999.00   +9.10  19.20     53   +0.30 1 1 1 1 1   887    0 9.07 2.79 ----- 20.0 19.2 41.6 25.7 14.1 -29.2 12.7 -29.9 11.8 -29.1 13.1 -26.8
2025-06-13 10:44:59,931 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 10:44:59,932 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 10:44:59,932 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.364176
2025-06-13 10:44:59,932 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 10:44:59,932 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 10:44:59,933 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 10:44:59,933 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 10:44:59,933 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 10:44:59,933 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T10:44:47', tmtdew=10.39, humidity=48.29, cloud=0.0, wind=19.94, temperature=9.61, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T08:44:24.806', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 10:44:59,934 [DEBUG][       Thread-252000][   transport.py][1871] : EOF in transport thread
2025-06-13 10:45:00,016 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 10:45:00,025 [DEBUG][       Thread-252003][   transport.py][1871] : starting thread (client mode): 0x8636b250
2025-06-13 10:45:00,025 [DEBUG][       Thread-252003][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 10:45:00,040 [DEBUG][       Thread-252003][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 10:45:00,040 [ INFO][       Thread-252003][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 10:45:00,048 [DEBUG][       Thread-252003][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 10:45:00,048 [DEBUG][       Thread-252003][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 10:45:00,048 [DEBUG][       Thread-252003][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 10:45:00,048 [DEBUG][       Thread-252003][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:45:00,048 [DEBUG][       Thread-252003][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:45:00,048 [DEBUG][       Thread-252003][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:45:00,048 [DEBUG][       Thread-252003][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:45:00,048 [DEBUG][       Thread-252003][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 10:45:00,048 [DEBUG][       Thread-252003][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 10:45:00,048 [DEBUG][       Thread-252003][   transport.py][1871] : client lang: <none>
2025-06-13 10:45:00,048 [DEBUG][       Thread-252003][   transport.py][1871] : server lang: <none>
2025-06-13 10:45:00,048 [DEBUG][       Thread-252003][   transport.py][1871] : kex follows: False
2025-06-13 10:45:00,048 [DEBUG][       Thread-252003][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 10:45:00,048 [DEBUG][       Thread-252003][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 10:45:00,048 [DEBUG][       Thread-252003][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 10:45:00,048 [DEBUG][       Thread-252003][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 10:45:00,048 [DEBUG][       Thread-252003][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 10:45:00,048 [DEBUG][       Thread-252003][   transport.py][1871] : Compression: none
2025-06-13 10:45:00,049 [DEBUG][       Thread-252003][   transport.py][1871] : === End of kex handshake ===
2025-06-13 10:45:00,110 [DEBUG][       Thread-252003][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 10:45:00,111 [DEBUG][       Thread-252003][   transport.py][1871] : Switch to new keys ...
2025-06-13 10:45:00,111 [DEBUG][       Thread-252003][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 10:45:00,112 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 10:45:00,112 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 10:45:00,166 [DEBUG][       Thread-252003][   transport.py][1871] : userauth is OK
2025-06-13 10:45:00,166 [DEBUG][       Thread-252003][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 10:45:00,166 [DEBUG][       Thread-252003][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 10:45:00,166 [DEBUG][       Thread-252003][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 10:45:00,166 [DEBUG][       Thread-252003][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 10:45:00,190 [ INFO][       Thread-252003][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 10:45:00,190 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 10:45:00,191 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 10:45:01,190 [DEBUG][       Thread-252003][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 10:45:01,190 [DEBUG][       Thread-252003][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 10:45:01,249 [DEBUG][       Thread-252003][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 10:45:01,249 [DEBUG][       Thread-252003][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 10:45:01,260 [DEBUG][       Thread-252003][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 10:45:01,271 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 10:45:01,271 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 10:45:01,279 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 10:45:01,288 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 10:45:01,288 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 10:45:01,288 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 10:45:01,296 [DEBUG][       Thread-252003][   transport.py][1871] : EOF in transport thread
2025-06-13 10:45:03,776 [DEBUG][Thread-252005 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:45:07,174 [DEBUG][Thread-252006 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:45:11,296 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 10:45:11,296 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 10:45:11,296 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 10:45:11,297 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 10:45:11,770 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 10, 44, 47), 10.39, 48.29, 0.0, 19.94, 9.61, 0, 0, 0, 2, 0, 0),)
2025-06-13 10:45:11,770 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 10:44:47
2025-06-13 10:45:11,857 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 10:45:11,863 [DEBUG][       Thread-252007][   transport.py][1871] : starting thread (client mode): 0x84205e40
2025-06-13 10:45:11,863 [DEBUG][       Thread-252007][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 10:45:11,883 [DEBUG][       Thread-252007][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 10:45:11,883 [ INFO][       Thread-252007][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 10:45:11,886 [DEBUG][       Thread-252007][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 10:45:11,886 [DEBUG][       Thread-252007][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 10:45:11,886 [DEBUG][       Thread-252007][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 10:45:11,886 [DEBUG][       Thread-252007][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:45:11,886 [DEBUG][       Thread-252007][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:45:11,886 [DEBUG][       Thread-252007][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:45:11,886 [DEBUG][       Thread-252007][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:45:11,887 [DEBUG][       Thread-252007][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 10:45:11,887 [DEBUG][       Thread-252007][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 10:45:11,887 [DEBUG][       Thread-252007][   transport.py][1871] : client lang: <none>
2025-06-13 10:45:11,887 [DEBUG][       Thread-252007][   transport.py][1871] : server lang: <none>
2025-06-13 10:45:11,887 [DEBUG][       Thread-252007][   transport.py][1871] : kex follows: False
2025-06-13 10:45:11,887 [DEBUG][       Thread-252007][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 10:45:11,887 [DEBUG][       Thread-252007][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 10:45:11,887 [DEBUG][       Thread-252007][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 10:45:11,887 [DEBUG][       Thread-252007][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 10:45:11,887 [DEBUG][       Thread-252007][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 10:45:11,887 [DEBUG][       Thread-252007][   transport.py][1871] : Compression: none
2025-06-13 10:45:11,887 [DEBUG][       Thread-252007][   transport.py][1871] : === End of kex handshake ===
2025-06-13 10:45:11,904 [DEBUG][       Thread-252007][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 10:45:11,904 [DEBUG][       Thread-252007][   transport.py][1871] : Switch to new keys ...
2025-06-13 10:45:11,905 [DEBUG][       Thread-252007][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 10:45:11,905 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 10:45:11,905 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 10:45:11,905 [DEBUG][       Thread-252007][   transport.py][1871] : userauth is OK
2025-06-13 10:45:11,929 [ INFO][       Thread-252007][   transport.py][1871] : Authentication (password) successful!
2025-06-13 10:45:11,929 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 10:45:12,804 [DEBUG][Thread-252009 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:45:19,527 [DEBUG][       Thread-252007][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 10:45:19,527 [DEBUG][       Thread-252007][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 10:45:19,569 [DEBUG][       Thread-252007][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 10:45:19,569 [DEBUG][       Thread-252007][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 10:45:19,572 [DEBUG][       Thread-252007][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 10:45:19,633 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 10:45:19,633 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 10:45:19,635 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 10:45:19,636 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 10:45:19,750 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 10:45:19,752 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 10:45:19,752 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 10:45:19,753 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 10:45:19,753 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.364176 -999.00   +9.10  19.20     53   +0.30 1 1 1 1 1   887    0 9.07 2.79 ----- 20.0 19.2 41.6 25.7 14.1 -29.2 12.7 -29.9 11.8 -29.1 13.1 -26.8
2025-06-13 10:45:19,753 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 10:45:19,753 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 10:45:19,753 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.364176
2025-06-13 10:45:19,754 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 10:45:19,754 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 10:45:19,754 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 10:45:19,754 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 10:45:19,754 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 10:45:19,754 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T10:44:47', tmtdew=10.39, humidity=48.29, cloud=0.0, wind=19.94, temperature=9.61, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T08:44:24.806', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 10:45:19,755 [DEBUG][       Thread-252007][   transport.py][1871] : EOF in transport thread
2025-06-13 10:45:19,841 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 10:45:19,855 [DEBUG][       Thread-252011][   transport.py][1871] : starting thread (client mode): 0x863bff70
2025-06-13 10:45:19,855 [DEBUG][       Thread-252011][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 10:45:19,870 [DEBUG][       Thread-252011][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 10:45:19,870 [ INFO][       Thread-252011][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 10:45:19,878 [DEBUG][       Thread-252011][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 10:45:19,878 [DEBUG][       Thread-252011][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 10:45:19,878 [DEBUG][       Thread-252011][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 10:45:19,878 [DEBUG][       Thread-252011][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:45:19,878 [DEBUG][       Thread-252011][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:45:19,878 [DEBUG][       Thread-252011][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:45:19,878 [DEBUG][       Thread-252011][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:45:19,878 [DEBUG][       Thread-252011][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 10:45:19,878 [DEBUG][       Thread-252011][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 10:45:19,878 [DEBUG][       Thread-252011][   transport.py][1871] : client lang: <none>
2025-06-13 10:45:19,878 [DEBUG][       Thread-252011][   transport.py][1871] : server lang: <none>
2025-06-13 10:45:19,878 [DEBUG][       Thread-252011][   transport.py][1871] : kex follows: False
2025-06-13 10:45:19,878 [DEBUG][       Thread-252011][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 10:45:19,878 [DEBUG][       Thread-252011][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 10:45:19,878 [DEBUG][       Thread-252011][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 10:45:19,878 [DEBUG][       Thread-252011][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 10:45:19,878 [DEBUG][       Thread-252011][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 10:45:19,878 [DEBUG][       Thread-252011][   transport.py][1871] : Compression: none
2025-06-13 10:45:19,878 [DEBUG][       Thread-252011][   transport.py][1871] : === End of kex handshake ===
2025-06-13 10:45:19,936 [DEBUG][       Thread-252011][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 10:45:19,936 [DEBUG][       Thread-252011][   transport.py][1871] : Switch to new keys ...
2025-06-13 10:45:19,936 [DEBUG][       Thread-252011][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 10:45:19,936 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 10:45:19,936 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 10:45:19,994 [DEBUG][       Thread-252011][   transport.py][1871] : userauth is OK
2025-06-13 10:45:19,994 [DEBUG][       Thread-252011][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 10:45:19,994 [DEBUG][       Thread-252011][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 10:45:19,994 [DEBUG][       Thread-252011][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 10:45:19,994 [DEBUG][       Thread-252011][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 10:45:20,014 [ INFO][       Thread-252011][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 10:45:20,014 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 10:45:20,014 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 10:45:21,027 [DEBUG][       Thread-252011][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 10:45:21,027 [DEBUG][       Thread-252011][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 10:45:21,075 [DEBUG][       Thread-252011][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 10:45:21,076 [DEBUG][       Thread-252011][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 10:45:21,084 [DEBUG][       Thread-252011][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 10:45:21,093 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 10:45:21,093 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 10:45:21,102 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 10:45:21,110 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 10:45:21,111 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 10:45:21,111 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 10:45:21,119 [DEBUG][       Thread-252011][   transport.py][1871] : EOF in transport thread
2025-06-13 10:45:21,819 [DEBUG][Thread-252013 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:45:28,965 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:45:28,966 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:45:30,837 [DEBUG][Thread-252014 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:45:31,115 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 10:45:31,116 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 10:45:31,116 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 10:45:31,118 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 10:45:31,584 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 10, 45, 19), 10.26, 48.76, 0.0, 16.62, 9.59, 0, 0, 0, 2, 0, 0),)
2025-06-13 10:45:31,584 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 10:45:19
2025-06-13 10:45:31,665 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 10:45:31,671 [DEBUG][       Thread-252015][   transport.py][1871] : starting thread (client mode): 0x863bdfc0
2025-06-13 10:45:31,671 [DEBUG][       Thread-252015][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 10:45:31,691 [DEBUG][       Thread-252015][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 10:45:31,691 [ INFO][       Thread-252015][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 10:45:31,694 [DEBUG][       Thread-252015][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 10:45:31,694 [DEBUG][       Thread-252015][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 10:45:31,694 [DEBUG][       Thread-252015][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 10:45:31,694 [DEBUG][       Thread-252015][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:45:31,694 [DEBUG][       Thread-252015][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:45:31,695 [DEBUG][       Thread-252015][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:45:31,695 [DEBUG][       Thread-252015][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:45:31,695 [DEBUG][       Thread-252015][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 10:45:31,695 [DEBUG][       Thread-252015][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 10:45:31,695 [DEBUG][       Thread-252015][   transport.py][1871] : client lang: <none>
2025-06-13 10:45:31,695 [DEBUG][       Thread-252015][   transport.py][1871] : server lang: <none>
2025-06-13 10:45:31,695 [DEBUG][       Thread-252015][   transport.py][1871] : kex follows: False
2025-06-13 10:45:31,695 [DEBUG][       Thread-252015][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 10:45:31,695 [DEBUG][       Thread-252015][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 10:45:31,695 [DEBUG][       Thread-252015][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 10:45:31,695 [DEBUG][       Thread-252015][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 10:45:31,695 [DEBUG][       Thread-252015][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 10:45:31,695 [DEBUG][       Thread-252015][   transport.py][1871] : Compression: none
2025-06-13 10:45:31,695 [DEBUG][       Thread-252015][   transport.py][1871] : === End of kex handshake ===
2025-06-13 10:45:31,712 [DEBUG][       Thread-252015][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 10:45:31,712 [DEBUG][       Thread-252015][   transport.py][1871] : Switch to new keys ...
2025-06-13 10:45:31,713 [DEBUG][       Thread-252015][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 10:45:31,713 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 10:45:31,713 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 10:45:31,714 [DEBUG][       Thread-252015][   transport.py][1871] : userauth is OK
2025-06-13 10:45:31,727 [ INFO][       Thread-252015][   transport.py][1871] : Authentication (password) successful!
2025-06-13 10:45:31,728 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 10:45:32,327 [DEBUG][       Thread-252015][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 10:45:32,327 [DEBUG][       Thread-252015][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 10:45:32,369 [DEBUG][       Thread-252015][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 10:45:32,369 [DEBUG][       Thread-252015][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 10:45:32,372 [DEBUG][       Thread-252015][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 10:45:32,384 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 10:45:32,385 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 10:45:32,387 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 10:45:32,388 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 10:45:32,393 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 10:45:32,395 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 10:45:32,395 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 10:45:32,396 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 10:45:32,396 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.364523 -999.00   +9.20  17.92     54   +0.40 1 1 1 1 1   887    0 9.04 1.84 ----- 18.9 17.9 42.8 21.7 14.2 -28.3 12.8 -30.1 11.8 -28.4 13.1 -26.9
2025-06-13 10:45:32,396 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 10:45:32,396 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 10:45:32,396 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.364523
2025-06-13 10:45:32,397 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 10:45:32,397 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 10:45:32,397 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 10:45:32,397 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 10:45:32,397 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 10:45:32,397 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T10:45:19', tmtdew=10.26, humidity=48.76, cloud=0.0, wind=16.62, temperature=9.59, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T08:44:54.787', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 10:45:32,397 [DEBUG][       Thread-252015][   transport.py][1871] : EOF in transport thread
2025-06-13 10:45:32,482 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 10:45:32,491 [DEBUG][       Thread-252018][   transport.py][1871] : starting thread (client mode): 0x863ef670
2025-06-13 10:45:32,491 [DEBUG][       Thread-252018][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 10:45:32,509 [DEBUG][       Thread-252018][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 10:45:32,509 [ INFO][       Thread-252018][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 10:45:32,527 [DEBUG][       Thread-252018][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 10:45:32,527 [DEBUG][       Thread-252018][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 10:45:32,527 [DEBUG][       Thread-252018][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 10:45:32,527 [DEBUG][       Thread-252018][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:45:32,527 [DEBUG][       Thread-252018][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:45:32,527 [DEBUG][       Thread-252018][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:45:32,527 [DEBUG][       Thread-252018][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:45:32,527 [DEBUG][       Thread-252018][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 10:45:32,527 [DEBUG][       Thread-252018][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 10:45:32,527 [DEBUG][       Thread-252018][   transport.py][1871] : client lang: <none>
2025-06-13 10:45:32,527 [DEBUG][       Thread-252018][   transport.py][1871] : server lang: <none>
2025-06-13 10:45:32,527 [DEBUG][       Thread-252018][   transport.py][1871] : kex follows: False
2025-06-13 10:45:32,527 [DEBUG][       Thread-252018][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 10:45:32,527 [DEBUG][       Thread-252018][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 10:45:32,528 [DEBUG][       Thread-252018][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 10:45:32,528 [DEBUG][       Thread-252018][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 10:45:32,528 [DEBUG][       Thread-252018][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 10:45:32,528 [DEBUG][       Thread-252018][   transport.py][1871] : Compression: none
2025-06-13 10:45:32,528 [DEBUG][       Thread-252018][   transport.py][1871] : === End of kex handshake ===
2025-06-13 10:45:32,585 [DEBUG][       Thread-252018][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 10:45:32,585 [DEBUG][       Thread-252018][   transport.py][1871] : Switch to new keys ...
2025-06-13 10:45:32,586 [DEBUG][       Thread-252018][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 10:45:32,586 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 10:45:32,586 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 10:45:32,643 [DEBUG][       Thread-252018][   transport.py][1871] : userauth is OK
2025-06-13 10:45:32,644 [DEBUG][       Thread-252018][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 10:45:32,644 [DEBUG][       Thread-252018][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 10:45:32,644 [DEBUG][       Thread-252018][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 10:45:32,644 [DEBUG][       Thread-252018][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 10:45:32,663 [ INFO][       Thread-252018][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 10:45:32,663 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 10:45:32,664 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 10:45:33,202 [DEBUG][Thread-252020 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:45:33,700 [DEBUG][       Thread-252018][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 10:45:33,700 [DEBUG][       Thread-252018][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 10:45:33,751 [DEBUG][       Thread-252018][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 10:45:33,752 [DEBUG][       Thread-252018][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 10:45:33,761 [DEBUG][       Thread-252018][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 10:45:33,773 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 10:45:33,773 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 10:45:33,787 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 10:45:33,796 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 10:45:33,796 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 10:45:33,797 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 10:45:33,804 [DEBUG][       Thread-252018][   transport.py][1871] : EOF in transport thread
2025-06-13 10:45:34,286 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:45:34,287 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:45:39,855 [DEBUG][Thread-252021 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:45:43,806 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 10:45:43,806 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 10:45:43,806 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 10:45:43,809 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 10:45:44,276 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 10, 45, 19), 10.26, 48.76, 0.0, 16.62, 9.59, 0, 0, 0, 2, 0, 0),)
2025-06-13 10:45:44,276 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 10:45:19
2025-06-13 10:45:44,357 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 10:45:44,362 [DEBUG][       Thread-252022][   transport.py][1871] : starting thread (client mode): 0x84204d60
2025-06-13 10:45:44,363 [DEBUG][       Thread-252022][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 10:45:44,383 [DEBUG][       Thread-252022][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 10:45:44,383 [ INFO][       Thread-252022][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 10:45:44,387 [DEBUG][       Thread-252022][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 10:45:44,387 [DEBUG][       Thread-252022][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 10:45:44,387 [DEBUG][       Thread-252022][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 10:45:44,387 [DEBUG][       Thread-252022][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:45:44,387 [DEBUG][       Thread-252022][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:45:44,388 [DEBUG][       Thread-252022][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:45:44,388 [DEBUG][       Thread-252022][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:45:44,388 [DEBUG][       Thread-252022][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 10:45:44,388 [DEBUG][       Thread-252022][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 10:45:44,388 [DEBUG][       Thread-252022][   transport.py][1871] : client lang: <none>
2025-06-13 10:45:44,388 [DEBUG][       Thread-252022][   transport.py][1871] : server lang: <none>
2025-06-13 10:45:44,388 [DEBUG][       Thread-252022][   transport.py][1871] : kex follows: False
2025-06-13 10:45:44,388 [DEBUG][       Thread-252022][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 10:45:44,388 [DEBUG][       Thread-252022][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 10:45:44,388 [DEBUG][       Thread-252022][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 10:45:44,388 [DEBUG][       Thread-252022][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 10:45:44,388 [DEBUG][       Thread-252022][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 10:45:44,388 [DEBUG][       Thread-252022][   transport.py][1871] : Compression: none
2025-06-13 10:45:44,388 [DEBUG][       Thread-252022][   transport.py][1871] : === End of kex handshake ===
2025-06-13 10:45:44,404 [DEBUG][       Thread-252022][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 10:45:44,404 [DEBUG][       Thread-252022][   transport.py][1871] : Switch to new keys ...
2025-06-13 10:45:44,405 [DEBUG][       Thread-252022][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 10:45:44,405 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 10:45:44,405 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 10:45:44,406 [DEBUG][       Thread-252022][   transport.py][1871] : userauth is OK
2025-06-13 10:45:44,419 [ INFO][       Thread-252022][   transport.py][1871] : Authentication (password) successful!
2025-06-13 10:45:44,420 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 10:45:45,105 [DEBUG][       Thread-252022][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 10:45:45,105 [DEBUG][       Thread-252022][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 10:45:45,149 [DEBUG][       Thread-252022][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 10:45:45,149 [DEBUG][       Thread-252022][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 10:45:45,152 [DEBUG][       Thread-252022][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 10:45:45,163 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 10:45:45,163 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 10:45:45,165 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 10:45:45,167 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 10:45:45,171 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 10:45:45,173 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 10:45:45,173 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 10:45:45,174 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 10:45:45,174 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.364523 -999.00   +9.20  17.92     54   +0.40 1 1 1 1 1   887    0 9.04 1.84 ----- 18.9 17.9 42.8 21.7 14.2 -28.3 12.8 -30.1 11.8 -28.4 13.1 -26.9
2025-06-13 10:45:45,174 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 10:45:45,174 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 10:45:45,174 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.364523
2025-06-13 10:45:45,175 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 10:45:45,175 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 10:45:45,175 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 10:45:45,175 [DEBUG][       Thread-252022][   transport.py][1871] : EOF in transport thread
2025-06-13 10:45:45,176 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 10:45:45,176 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 10:45:45,176 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T10:45:19', tmtdew=10.26, humidity=48.76, cloud=0.0, wind=16.62, temperature=9.59, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T08:44:54.787', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 10:45:45,250 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 10:45:45,267 [DEBUG][       Thread-252025][   transport.py][1871] : starting thread (client mode): 0x867ff250
2025-06-13 10:45:45,267 [DEBUG][       Thread-252025][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 10:45:45,282 [DEBUG][       Thread-252025][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 10:45:45,282 [ INFO][       Thread-252025][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 10:45:45,290 [DEBUG][       Thread-252025][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 10:45:45,290 [DEBUG][       Thread-252025][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 10:45:45,290 [DEBUG][       Thread-252025][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 10:45:45,290 [DEBUG][       Thread-252025][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:45:45,290 [DEBUG][       Thread-252025][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:45:45,290 [DEBUG][       Thread-252025][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:45:45,290 [DEBUG][       Thread-252025][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:45:45,290 [DEBUG][       Thread-252025][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 10:45:45,290 [DEBUG][       Thread-252025][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 10:45:45,290 [DEBUG][       Thread-252025][   transport.py][1871] : client lang: <none>
2025-06-13 10:45:45,290 [DEBUG][       Thread-252025][   transport.py][1871] : server lang: <none>
2025-06-13 10:45:45,290 [DEBUG][       Thread-252025][   transport.py][1871] : kex follows: False
2025-06-13 10:45:45,290 [DEBUG][       Thread-252025][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 10:45:45,290 [DEBUG][       Thread-252025][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 10:45:45,291 [DEBUG][       Thread-252025][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 10:45:45,291 [DEBUG][       Thread-252025][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 10:45:45,291 [DEBUG][       Thread-252025][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 10:45:45,291 [DEBUG][       Thread-252025][   transport.py][1871] : Compression: none
2025-06-13 10:45:45,291 [DEBUG][       Thread-252025][   transport.py][1871] : === End of kex handshake ===
2025-06-13 10:45:45,350 [DEBUG][       Thread-252025][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 10:45:45,351 [DEBUG][       Thread-252025][   transport.py][1871] : Switch to new keys ...
2025-06-13 10:45:45,351 [DEBUG][       Thread-252025][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 10:45:45,351 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 10:45:45,352 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 10:45:45,415 [DEBUG][       Thread-252025][   transport.py][1871] : userauth is OK
2025-06-13 10:45:45,415 [DEBUG][       Thread-252025][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 10:45:45,415 [DEBUG][       Thread-252025][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 10:45:45,415 [DEBUG][       Thread-252025][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 10:45:45,415 [DEBUG][       Thread-252025][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 10:45:45,434 [ INFO][       Thread-252025][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 10:45:45,435 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 10:45:45,435 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 10:45:46,455 [DEBUG][       Thread-252025][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 10:45:46,455 [DEBUG][       Thread-252025][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 10:45:46,503 [DEBUG][       Thread-252025][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 10:45:46,503 [DEBUG][       Thread-252025][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 10:45:46,513 [DEBUG][       Thread-252025][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 10:45:46,527 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 10:45:46,527 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 10:45:46,536 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 10:45:46,544 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 10:45:46,545 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 10:45:46,545 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 10:45:46,553 [DEBUG][       Thread-252025][   transport.py][1871] : EOF in transport thread
2025-06-13 10:45:48,888 [DEBUG][Thread-252027 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:45:56,555 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 10:45:56,556 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 10:45:56,556 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 10:45:56,558 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 10:45:57,025 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 10, 45, 52), 10.21, 48.94, 0.0, 15.83, 9.59, 0, 0, 0, 2, 0, 0),)
2025-06-13 10:45:57,025 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 10:45:52
2025-06-13 10:45:57,105 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 10:45:57,109 [DEBUG][       Thread-252028][   transport.py][1871] : starting thread (client mode): 0x86368d60
2025-06-13 10:45:57,109 [DEBUG][       Thread-252028][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 10:45:57,129 [DEBUG][       Thread-252028][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 10:45:57,129 [ INFO][       Thread-252028][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 10:45:57,133 [DEBUG][       Thread-252028][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 10:45:57,133 [DEBUG][       Thread-252028][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 10:45:57,133 [DEBUG][       Thread-252028][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 10:45:57,133 [DEBUG][       Thread-252028][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:45:57,133 [DEBUG][       Thread-252028][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:45:57,133 [DEBUG][       Thread-252028][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:45:57,133 [DEBUG][       Thread-252028][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:45:57,133 [DEBUG][       Thread-252028][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 10:45:57,133 [DEBUG][       Thread-252028][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 10:45:57,133 [DEBUG][       Thread-252028][   transport.py][1871] : client lang: <none>
2025-06-13 10:45:57,133 [DEBUG][       Thread-252028][   transport.py][1871] : server lang: <none>
2025-06-13 10:45:57,133 [DEBUG][       Thread-252028][   transport.py][1871] : kex follows: False
2025-06-13 10:45:57,133 [DEBUG][       Thread-252028][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 10:45:57,133 [DEBUG][       Thread-252028][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 10:45:57,133 [DEBUG][       Thread-252028][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 10:45:57,133 [DEBUG][       Thread-252028][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 10:45:57,133 [DEBUG][       Thread-252028][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 10:45:57,133 [DEBUG][       Thread-252028][   transport.py][1871] : Compression: none
2025-06-13 10:45:57,133 [DEBUG][       Thread-252028][   transport.py][1871] : === End of kex handshake ===
2025-06-13 10:45:57,150 [DEBUG][       Thread-252028][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 10:45:57,151 [DEBUG][       Thread-252028][   transport.py][1871] : Switch to new keys ...
2025-06-13 10:45:57,151 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 10:45:57,151 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 10:45:57,152 [DEBUG][       Thread-252028][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 10:45:57,153 [DEBUG][       Thread-252028][   transport.py][1871] : userauth is OK
2025-06-13 10:45:57,166 [ INFO][       Thread-252028][   transport.py][1871] : Authentication (password) successful!
2025-06-13 10:45:57,166 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 10:45:57,796 [DEBUG][       Thread-252028][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 10:45:57,796 [DEBUG][       Thread-252028][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 10:45:57,837 [DEBUG][       Thread-252028][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 10:45:57,837 [DEBUG][       Thread-252028][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 10:45:57,840 [DEBUG][       Thread-252028][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 10:45:57,852 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 10:45:57,852 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 10:45:57,853 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 10:45:57,855 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 10:45:57,860 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 10:45:57,861 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 10:45:57,862 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 10:45:57,862 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 10:45:57,862 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.364523 -999.00   +9.20  17.92     54   +0.40 1 1 1 1 1   887    0 9.04 1.84 ----- 18.9 17.9 42.8 21.7 14.2 -28.3 12.8 -30.1 11.8 -28.4 13.1 -26.9
2025-06-13 10:45:57,862 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 10:45:57,862 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 10:45:57,863 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.364523
2025-06-13 10:45:57,863 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 10:45:57,863 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 10:45:57,863 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 10:45:57,864 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 10:45:57,864 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 10:45:57,864 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T10:45:52', tmtdew=10.21, humidity=48.94, cloud=0.0, wind=15.83, temperature=9.59, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T08:44:54.787', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 10:45:57,864 [DEBUG][       Thread-252028][   transport.py][1871] : EOF in transport thread
2025-06-13 10:45:57,904 [DEBUG][Thread-252031 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:45:57,949 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 10:45:57,958 [DEBUG][       Thread-252032][   transport.py][1871] : starting thread (client mode): 0x863cae60
2025-06-13 10:45:57,958 [DEBUG][       Thread-252032][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 10:45:57,973 [DEBUG][       Thread-252032][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 10:45:57,973 [ INFO][       Thread-252032][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 10:45:57,987 [DEBUG][       Thread-252032][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 10:45:57,987 [DEBUG][       Thread-252032][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 10:45:57,987 [DEBUG][       Thread-252032][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 10:45:57,987 [DEBUG][       Thread-252032][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:45:57,987 [DEBUG][       Thread-252032][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:45:57,987 [DEBUG][       Thread-252032][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:45:57,987 [DEBUG][       Thread-252032][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:45:57,987 [DEBUG][       Thread-252032][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 10:45:57,987 [DEBUG][       Thread-252032][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 10:45:57,987 [DEBUG][       Thread-252032][   transport.py][1871] : client lang: <none>
2025-06-13 10:45:57,988 [DEBUG][       Thread-252032][   transport.py][1871] : server lang: <none>
2025-06-13 10:45:57,988 [DEBUG][       Thread-252032][   transport.py][1871] : kex follows: False
2025-06-13 10:45:57,988 [DEBUG][       Thread-252032][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 10:45:57,988 [DEBUG][       Thread-252032][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 10:45:57,988 [DEBUG][       Thread-252032][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 10:45:57,988 [DEBUG][       Thread-252032][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 10:45:57,988 [DEBUG][       Thread-252032][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 10:45:57,988 [DEBUG][       Thread-252032][   transport.py][1871] : Compression: none
2025-06-13 10:45:57,988 [DEBUG][       Thread-252032][   transport.py][1871] : === End of kex handshake ===
2025-06-13 10:45:58,045 [DEBUG][       Thread-252032][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 10:45:58,046 [DEBUG][       Thread-252032][   transport.py][1871] : Switch to new keys ...
2025-06-13 10:45:58,046 [DEBUG][       Thread-252032][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 10:45:58,047 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 10:45:58,047 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 10:45:58,103 [DEBUG][       Thread-252032][   transport.py][1871] : userauth is OK
2025-06-13 10:45:58,103 [DEBUG][       Thread-252032][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 10:45:58,103 [DEBUG][       Thread-252032][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 10:45:58,103 [DEBUG][       Thread-252032][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 10:45:58,103 [DEBUG][       Thread-252032][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 10:45:58,122 [ INFO][       Thread-252032][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 10:45:58,122 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 10:45:58,122 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 10:45:59,095 [DEBUG][       Thread-252032][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 10:45:59,095 [DEBUG][       Thread-252032][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 10:45:59,143 [DEBUG][       Thread-252032][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 10:45:59,144 [DEBUG][       Thread-252032][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 10:45:59,152 [DEBUG][       Thread-252032][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 10:45:59,161 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 10:45:59,161 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 10:45:59,169 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 10:45:59,178 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 10:45:59,178 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 10:45:59,179 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 10:45:59,187 [DEBUG][       Thread-252032][   transport.py][1871] : EOF in transport thread
2025-06-13 10:46:06,929 [DEBUG][Thread-252034 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:46:07,206 [DEBUG][Thread-252035 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:46:09,189 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 10:46:09,189 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 10:46:09,189 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 10:46:09,192 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 10:46:09,668 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 10, 45, 52), 10.21, 48.94, 0.0, 15.83, 9.59, 0, 0, 0, 2, 0, 0),)
2025-06-13 10:46:09,669 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 10:45:52
2025-06-13 10:46:09,751 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 10:46:09,756 [DEBUG][       Thread-252036][   transport.py][1871] : starting thread (client mode): 0x84206830
2025-06-13 10:46:09,756 [DEBUG][       Thread-252036][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 10:46:09,777 [DEBUG][       Thread-252036][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 10:46:09,777 [ INFO][       Thread-252036][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 10:46:09,780 [DEBUG][       Thread-252036][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 10:46:09,780 [DEBUG][       Thread-252036][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 10:46:09,781 [DEBUG][       Thread-252036][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 10:46:09,781 [DEBUG][       Thread-252036][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:46:09,781 [DEBUG][       Thread-252036][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:46:09,781 [DEBUG][       Thread-252036][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:46:09,781 [DEBUG][       Thread-252036][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:46:09,781 [DEBUG][       Thread-252036][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 10:46:09,781 [DEBUG][       Thread-252036][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 10:46:09,781 [DEBUG][       Thread-252036][   transport.py][1871] : client lang: <none>
2025-06-13 10:46:09,781 [DEBUG][       Thread-252036][   transport.py][1871] : server lang: <none>
2025-06-13 10:46:09,781 [DEBUG][       Thread-252036][   transport.py][1871] : kex follows: False
2025-06-13 10:46:09,781 [DEBUG][       Thread-252036][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 10:46:09,781 [DEBUG][       Thread-252036][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 10:46:09,781 [DEBUG][       Thread-252036][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 10:46:09,781 [DEBUG][       Thread-252036][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 10:46:09,781 [DEBUG][       Thread-252036][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 10:46:09,781 [DEBUG][       Thread-252036][   transport.py][1871] : Compression: none
2025-06-13 10:46:09,781 [DEBUG][       Thread-252036][   transport.py][1871] : === End of kex handshake ===
2025-06-13 10:46:09,797 [DEBUG][       Thread-252036][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 10:46:09,797 [DEBUG][       Thread-252036][   transport.py][1871] : Switch to new keys ...
2025-06-13 10:46:09,798 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 10:46:09,798 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 10:46:09,798 [DEBUG][       Thread-252036][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 10:46:09,799 [DEBUG][       Thread-252036][   transport.py][1871] : userauth is OK
2025-06-13 10:46:09,812 [ INFO][       Thread-252036][   transport.py][1871] : Authentication (password) successful!
2025-06-13 10:46:09,812 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 10:46:10,424 [DEBUG][       Thread-252036][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 10:46:10,424 [DEBUG][       Thread-252036][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 10:46:10,472 [DEBUG][       Thread-252036][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 10:46:10,472 [DEBUG][       Thread-252036][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 10:46:10,475 [DEBUG][       Thread-252036][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 10:46:10,487 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 10:46:10,487 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 10:46:10,488 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 10:46:10,489 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 10:46:10,493 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 10:46:10,494 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 10:46:10,494 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 10:46:10,494 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 10:46:10,494 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.365217 -999.00   +9.40  20.15     54   +0.60 1 1 1 1 1   887    0 8.79 -0.43 ----- 20.5 20.1 56.0 24.8 14.2 -28.3 12.8 -30.4 11.8 -28.5 13.1 -26.9
2025-06-13 10:46:10,495 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 10:46:10,495 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 10:46:10,495 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.365217
2025-06-13 10:46:10,495 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 10:46:10,495 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 10:46:10,495 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 10:46:10,495 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 10:46:10,495 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 10:46:10,495 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T10:45:52', tmtdew=10.21, humidity=48.94, cloud=0.0, wind=15.83, temperature=9.59, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T08:45:54.749', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 10:46:10,495 [DEBUG][       Thread-252036][   transport.py][1871] : EOF in transport thread
2025-06-13 10:46:10,570 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 10:46:10,581 [DEBUG][       Thread-252039][   transport.py][1871] : starting thread (client mode): 0x8636b040
2025-06-13 10:46:10,581 [DEBUG][       Thread-252039][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 10:46:10,595 [DEBUG][       Thread-252039][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 10:46:10,595 [ INFO][       Thread-252039][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 10:46:10,603 [DEBUG][       Thread-252039][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 10:46:10,603 [DEBUG][       Thread-252039][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 10:46:10,603 [DEBUG][       Thread-252039][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 10:46:10,603 [DEBUG][       Thread-252039][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:46:10,603 [DEBUG][       Thread-252039][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:46:10,603 [DEBUG][       Thread-252039][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:46:10,603 [DEBUG][       Thread-252039][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:46:10,603 [DEBUG][       Thread-252039][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 10:46:10,603 [DEBUG][       Thread-252039][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 10:46:10,603 [DEBUG][       Thread-252039][   transport.py][1871] : client lang: <none>
2025-06-13 10:46:10,603 [DEBUG][       Thread-252039][   transport.py][1871] : server lang: <none>
2025-06-13 10:46:10,603 [DEBUG][       Thread-252039][   transport.py][1871] : kex follows: False
2025-06-13 10:46:10,603 [DEBUG][       Thread-252039][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 10:46:10,603 [DEBUG][       Thread-252039][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 10:46:10,603 [DEBUG][       Thread-252039][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 10:46:10,603 [DEBUG][       Thread-252039][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 10:46:10,604 [DEBUG][       Thread-252039][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 10:46:10,604 [DEBUG][       Thread-252039][   transport.py][1871] : Compression: none
2025-06-13 10:46:10,604 [DEBUG][       Thread-252039][   transport.py][1871] : === End of kex handshake ===
2025-06-13 10:46:10,661 [DEBUG][       Thread-252039][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 10:46:10,662 [DEBUG][       Thread-252039][   transport.py][1871] : Switch to new keys ...
2025-06-13 10:46:10,662 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 10:46:10,663 [DEBUG][       Thread-252039][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 10:46:10,663 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 10:46:10,718 [DEBUG][       Thread-252039][   transport.py][1871] : userauth is OK
2025-06-13 10:46:10,718 [DEBUG][       Thread-252039][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 10:46:10,718 [DEBUG][       Thread-252039][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 10:46:10,718 [DEBUG][       Thread-252039][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 10:46:10,718 [DEBUG][       Thread-252039][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 10:46:10,737 [ INFO][       Thread-252039][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 10:46:10,737 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 10:46:10,737 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 10:46:11,745 [DEBUG][       Thread-252039][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 10:46:11,745 [DEBUG][       Thread-252039][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 10:46:11,795 [DEBUG][       Thread-252039][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 10:46:11,796 [DEBUG][       Thread-252039][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 10:46:11,805 [DEBUG][       Thread-252039][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 10:46:11,813 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 10:46:11,813 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 10:46:11,822 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 10:46:11,830 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 10:46:11,831 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 10:46:11,831 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 10:46:11,839 [DEBUG][       Thread-252039][   transport.py][1871] : EOF in transport thread
2025-06-13 10:46:15,947 [DEBUG][Thread-252041 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:46:21,840 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 10:46:21,840 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 10:46:21,840 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 10:46:21,843 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 10:46:22,324 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 10, 45, 52), 10.21, 48.94, 0.0, 15.83, 9.59, 0, 0, 0, 2, 0, 0),)
2025-06-13 10:46:22,324 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 10:45:52
2025-06-13 10:46:22,407 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 10:46:22,411 [DEBUG][       Thread-252042][   transport.py][1871] : starting thread (client mode): 0x84204d90
2025-06-13 10:46:22,411 [DEBUG][       Thread-252042][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 10:46:22,432 [DEBUG][       Thread-252042][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 10:46:22,432 [ INFO][       Thread-252042][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 10:46:22,435 [DEBUG][       Thread-252042][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 10:46:22,435 [DEBUG][       Thread-252042][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 10:46:22,435 [DEBUG][       Thread-252042][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 10:46:22,435 [DEBUG][       Thread-252042][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:46:22,435 [DEBUG][       Thread-252042][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:46:22,435 [DEBUG][       Thread-252042][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:46:22,435 [DEBUG][       Thread-252042][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:46:22,435 [DEBUG][       Thread-252042][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 10:46:22,435 [DEBUG][       Thread-252042][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 10:46:22,435 [DEBUG][       Thread-252042][   transport.py][1871] : client lang: <none>
2025-06-13 10:46:22,435 [DEBUG][       Thread-252042][   transport.py][1871] : server lang: <none>
2025-06-13 10:46:22,435 [DEBUG][       Thread-252042][   transport.py][1871] : kex follows: False
2025-06-13 10:46:22,435 [DEBUG][       Thread-252042][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 10:46:22,435 [DEBUG][       Thread-252042][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 10:46:22,435 [DEBUG][       Thread-252042][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 10:46:22,435 [DEBUG][       Thread-252042][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 10:46:22,436 [DEBUG][       Thread-252042][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 10:46:22,436 [DEBUG][       Thread-252042][   transport.py][1871] : Compression: none
2025-06-13 10:46:22,436 [DEBUG][       Thread-252042][   transport.py][1871] : === End of kex handshake ===
2025-06-13 10:46:22,452 [DEBUG][       Thread-252042][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 10:46:22,453 [DEBUG][       Thread-252042][   transport.py][1871] : Switch to new keys ...
2025-06-13 10:46:22,453 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 10:46:22,453 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 10:46:22,454 [DEBUG][       Thread-252042][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 10:46:22,454 [DEBUG][       Thread-252042][   transport.py][1871] : userauth is OK
2025-06-13 10:46:22,468 [ INFO][       Thread-252042][   transport.py][1871] : Authentication (password) successful!
2025-06-13 10:46:22,468 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 10:46:23,131 [DEBUG][       Thread-252042][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 10:46:23,131 [DEBUG][       Thread-252042][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 10:46:23,173 [DEBUG][       Thread-252042][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 10:46:23,173 [DEBUG][       Thread-252042][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 10:46:23,176 [DEBUG][       Thread-252042][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 10:46:23,187 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 10:46:23,187 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 10:46:23,189 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 10:46:23,191 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 10:46:23,195 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 10:46:23,197 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 10:46:23,197 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 10:46:23,197 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 10:46:23,197 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.365217 -999.00   +9.40  20.15     54   +0.60 1 1 1 1 1   887    0 8.79 -0.43 ----- 20.5 20.1 56.0 24.8 14.2 -28.3 12.8 -30.4 11.8 -28.5 13.1 -26.9
2025-06-13 10:46:23,198 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 10:46:23,198 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 10:46:23,198 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.365217
2025-06-13 10:46:23,198 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 10:46:23,198 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 10:46:23,199 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 10:46:23,199 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 10:46:23,199 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 10:46:23,199 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T10:45:52', tmtdew=10.21, humidity=48.94, cloud=0.0, wind=15.83, temperature=9.59, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T08:45:54.749', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 10:46:23,200 [DEBUG][       Thread-252042][   transport.py][1871] : EOF in transport thread
2025-06-13 10:46:23,282 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 10:46:23,291 [DEBUG][       Thread-252045][   transport.py][1871] : starting thread (client mode): 0x863a5210
2025-06-13 10:46:23,291 [DEBUG][       Thread-252045][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 10:46:23,306 [DEBUG][       Thread-252045][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 10:46:23,306 [ INFO][       Thread-252045][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 10:46:23,314 [DEBUG][       Thread-252045][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 10:46:23,314 [DEBUG][       Thread-252045][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 10:46:23,314 [DEBUG][       Thread-252045][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 10:46:23,314 [DEBUG][       Thread-252045][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:46:23,314 [DEBUG][       Thread-252045][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:46:23,314 [DEBUG][       Thread-252045][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:46:23,314 [DEBUG][       Thread-252045][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:46:23,314 [DEBUG][       Thread-252045][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 10:46:23,314 [DEBUG][       Thread-252045][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 10:46:23,315 [DEBUG][       Thread-252045][   transport.py][1871] : client lang: <none>
2025-06-13 10:46:23,315 [DEBUG][       Thread-252045][   transport.py][1871] : server lang: <none>
2025-06-13 10:46:23,315 [DEBUG][       Thread-252045][   transport.py][1871] : kex follows: False
2025-06-13 10:46:23,315 [DEBUG][       Thread-252045][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 10:46:23,315 [DEBUG][       Thread-252045][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 10:46:23,315 [DEBUG][       Thread-252045][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 10:46:23,315 [DEBUG][       Thread-252045][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 10:46:23,315 [DEBUG][       Thread-252045][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 10:46:23,315 [DEBUG][       Thread-252045][   transport.py][1871] : Compression: none
2025-06-13 10:46:23,315 [DEBUG][       Thread-252045][   transport.py][1871] : === End of kex handshake ===
2025-06-13 10:46:23,373 [DEBUG][       Thread-252045][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 10:46:23,374 [DEBUG][       Thread-252045][   transport.py][1871] : Switch to new keys ...
2025-06-13 10:46:23,374 [DEBUG][       Thread-252045][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 10:46:23,374 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 10:46:23,375 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 10:46:23,434 [DEBUG][       Thread-252045][   transport.py][1871] : userauth is OK
2025-06-13 10:46:23,434 [DEBUG][       Thread-252045][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 10:46:23,434 [DEBUG][       Thread-252045][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 10:46:23,434 [DEBUG][       Thread-252045][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 10:46:23,434 [DEBUG][       Thread-252045][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 10:46:23,453 [ INFO][       Thread-252045][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 10:46:23,454 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 10:46:23,454 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 10:46:24,458 [DEBUG][       Thread-252045][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 10:46:24,458 [DEBUG][       Thread-252045][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 10:46:24,507 [DEBUG][       Thread-252045][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 10:46:24,507 [DEBUG][       Thread-252045][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 10:46:24,516 [DEBUG][       Thread-252045][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 10:46:24,533 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 10:46:24,533 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 10:46:24,541 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 10:46:24,549 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 10:46:24,549 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 10:46:24,549 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 10:46:24,557 [DEBUG][       Thread-252045][   transport.py][1871] : EOF in transport thread
2025-06-13 10:46:24,965 [DEBUG][Thread-252047 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:46:29,108 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:46:29,109 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:46:33,982 [DEBUG][Thread-252048 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:46:34,309 [DEBUG][Thread-252049 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:46:34,559 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 10:46:34,560 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 10:46:34,560 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 10:46:34,562 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 10:46:35,036 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 10, 46, 24), 10.18, 49.06, 0.0, 19.32, 9.74, 0, 0, 0, 2, 0, 0),)
2025-06-13 10:46:35,036 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 10:46:24
2025-06-13 10:46:35,118 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 10:46:35,123 [DEBUG][       Thread-252050][   transport.py][1871] : starting thread (client mode): 0x84205480
2025-06-13 10:46:35,123 [DEBUG][       Thread-252050][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 10:46:35,144 [DEBUG][       Thread-252050][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 10:46:35,144 [ INFO][       Thread-252050][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 10:46:35,146 [DEBUG][       Thread-252050][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 10:46:35,146 [DEBUG][       Thread-252050][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 10:46:35,146 [DEBUG][       Thread-252050][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 10:46:35,146 [DEBUG][       Thread-252050][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:46:35,147 [DEBUG][       Thread-252050][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:46:35,147 [DEBUG][       Thread-252050][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:46:35,147 [DEBUG][       Thread-252050][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:46:35,147 [DEBUG][       Thread-252050][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 10:46:35,147 [DEBUG][       Thread-252050][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 10:46:35,147 [DEBUG][       Thread-252050][   transport.py][1871] : client lang: <none>
2025-06-13 10:46:35,147 [DEBUG][       Thread-252050][   transport.py][1871] : server lang: <none>
2025-06-13 10:46:35,147 [DEBUG][       Thread-252050][   transport.py][1871] : kex follows: False
2025-06-13 10:46:35,147 [DEBUG][       Thread-252050][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 10:46:35,147 [DEBUG][       Thread-252050][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 10:46:35,147 [DEBUG][       Thread-252050][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 10:46:35,147 [DEBUG][       Thread-252050][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 10:46:35,147 [DEBUG][       Thread-252050][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 10:46:35,147 [DEBUG][       Thread-252050][   transport.py][1871] : Compression: none
2025-06-13 10:46:35,147 [DEBUG][       Thread-252050][   transport.py][1871] : === End of kex handshake ===
2025-06-13 10:46:35,155 [DEBUG][       Thread-252050][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 10:46:35,156 [DEBUG][       Thread-252050][   transport.py][1871] : Switch to new keys ...
2025-06-13 10:46:35,156 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 10:46:35,156 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 10:46:35,157 [DEBUG][       Thread-252050][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 10:46:35,157 [DEBUG][       Thread-252050][   transport.py][1871] : userauth is OK
2025-06-13 10:46:35,171 [ INFO][       Thread-252050][   transport.py][1871] : Authentication (password) successful!
2025-06-13 10:46:35,171 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 10:46:35,382 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:46:35,382 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:46:35,774 [DEBUG][       Thread-252050][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 10:46:35,775 [DEBUG][       Thread-252050][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 10:46:35,817 [DEBUG][       Thread-252050][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 10:46:35,817 [DEBUG][       Thread-252050][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 10:46:35,819 [DEBUG][       Thread-252050][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 10:46:35,833 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 10:46:35,833 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 10:46:35,835 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 10:46:35,836 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 10:46:35,841 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 10:46:35,843 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 10:46:35,843 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 10:46:35,843 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 10:46:35,844 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.365565 -999.00   +9.40  20.74     53   +0.40 1 1 1 1 1   887    0 8.97 -0.42 ----- 18.7 20.7 57.4 23.1 14.2 -28.8 12.8 -30.2 11.8 -27.9 13.2 -26.9
2025-06-13 10:46:35,844 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 10:46:35,844 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 10:46:35,844 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.365565
2025-06-13 10:46:35,844 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 10:46:35,845 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 10:46:35,845 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 10:46:35,845 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 10:46:35,845 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 10:46:35,845 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T10:46:24', tmtdew=10.18, humidity=49.06, cloud=0.0, wind=19.32, temperature=9.74, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T08:46:24.816', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 10:46:35,846 [DEBUG][       Thread-252050][   transport.py][1871] : EOF in transport thread
2025-06-13 10:46:35,928 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 10:46:35,940 [DEBUG][       Thread-252053][   transport.py][1871] : starting thread (client mode): 0x863ca1a0
2025-06-13 10:46:35,940 [DEBUG][       Thread-252053][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 10:46:35,955 [DEBUG][       Thread-252053][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 10:46:35,955 [ INFO][       Thread-252053][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 10:46:35,968 [DEBUG][       Thread-252053][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 10:46:35,968 [DEBUG][       Thread-252053][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 10:46:35,968 [DEBUG][       Thread-252053][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 10:46:35,969 [DEBUG][       Thread-252053][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:46:35,969 [DEBUG][       Thread-252053][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:46:35,969 [DEBUG][       Thread-252053][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:46:35,969 [DEBUG][       Thread-252053][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:46:35,969 [DEBUG][       Thread-252053][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 10:46:35,969 [DEBUG][       Thread-252053][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 10:46:35,969 [DEBUG][       Thread-252053][   transport.py][1871] : client lang: <none>
2025-06-13 10:46:35,969 [DEBUG][       Thread-252053][   transport.py][1871] : server lang: <none>
2025-06-13 10:46:35,969 [DEBUG][       Thread-252053][   transport.py][1871] : kex follows: False
2025-06-13 10:46:35,969 [DEBUG][       Thread-252053][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 10:46:35,969 [DEBUG][       Thread-252053][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 10:46:35,969 [DEBUG][       Thread-252053][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 10:46:35,969 [DEBUG][       Thread-252053][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 10:46:35,969 [DEBUG][       Thread-252053][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 10:46:35,969 [DEBUG][       Thread-252053][   transport.py][1871] : Compression: none
2025-06-13 10:46:35,969 [DEBUG][       Thread-252053][   transport.py][1871] : === End of kex handshake ===
2025-06-13 10:46:36,025 [DEBUG][       Thread-252053][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 10:46:36,026 [DEBUG][       Thread-252053][   transport.py][1871] : Switch to new keys ...
2025-06-13 10:46:36,026 [DEBUG][       Thread-252053][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 10:46:36,026 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 10:46:36,027 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 10:46:36,089 [DEBUG][       Thread-252053][   transport.py][1871] : userauth is OK
2025-06-13 10:46:36,089 [DEBUG][       Thread-252053][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 10:46:36,089 [DEBUG][       Thread-252053][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 10:46:36,089 [DEBUG][       Thread-252053][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 10:46:36,089 [DEBUG][       Thread-252053][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 10:46:36,109 [ INFO][       Thread-252053][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 10:46:36,110 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 10:46:36,110 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 10:46:37,158 [DEBUG][       Thread-252053][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 10:46:37,158 [DEBUG][       Thread-252053][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 10:46:37,207 [DEBUG][       Thread-252053][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 10:46:37,207 [DEBUG][       Thread-252053][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 10:46:37,216 [DEBUG][       Thread-252053][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 10:46:37,223 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 10:46:37,223 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 10:46:37,232 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 10:46:37,240 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 10:46:37,240 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 10:46:37,240 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 10:46:37,249 [DEBUG][       Thread-252053][   transport.py][1871] : EOF in transport thread
2025-06-13 10:46:43,002 [DEBUG][Thread-252055 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:46:47,251 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 10:46:47,251 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 10:46:47,251 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 10:46:47,254 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 10:46:47,738 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 10, 46, 24), 10.18, 49.06, 0.0, 19.32, 9.74, 0, 0, 0, 2, 0, 0),)
2025-06-13 10:46:47,738 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 10:46:24
2025-06-13 10:46:47,821 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 10:46:47,828 [DEBUG][       Thread-252056][   transport.py][1871] : starting thread (client mode): 0x84207700
2025-06-13 10:46:47,828 [DEBUG][       Thread-252056][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 10:46:47,848 [DEBUG][       Thread-252056][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 10:46:47,848 [ INFO][       Thread-252056][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 10:46:47,852 [DEBUG][       Thread-252056][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 10:46:47,852 [DEBUG][       Thread-252056][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 10:46:47,852 [DEBUG][       Thread-252056][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 10:46:47,852 [DEBUG][       Thread-252056][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:46:47,852 [DEBUG][       Thread-252056][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:46:47,852 [DEBUG][       Thread-252056][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:46:47,852 [DEBUG][       Thread-252056][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:46:47,852 [DEBUG][       Thread-252056][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 10:46:47,852 [DEBUG][       Thread-252056][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 10:46:47,852 [DEBUG][       Thread-252056][   transport.py][1871] : client lang: <none>
2025-06-13 10:46:47,852 [DEBUG][       Thread-252056][   transport.py][1871] : server lang: <none>
2025-06-13 10:46:47,852 [DEBUG][       Thread-252056][   transport.py][1871] : kex follows: False
2025-06-13 10:46:47,852 [DEBUG][       Thread-252056][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 10:46:47,852 [DEBUG][       Thread-252056][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 10:46:47,852 [DEBUG][       Thread-252056][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 10:46:47,852 [DEBUG][       Thread-252056][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 10:46:47,852 [DEBUG][       Thread-252056][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 10:46:47,852 [DEBUG][       Thread-252056][   transport.py][1871] : Compression: none
2025-06-13 10:46:47,852 [DEBUG][       Thread-252056][   transport.py][1871] : === End of kex handshake ===
2025-06-13 10:46:47,870 [DEBUG][       Thread-252056][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 10:46:47,870 [DEBUG][       Thread-252056][   transport.py][1871] : Switch to new keys ...
2025-06-13 10:46:47,871 [DEBUG][       Thread-252056][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 10:46:47,871 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 10:46:47,871 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 10:46:47,872 [DEBUG][       Thread-252056][   transport.py][1871] : userauth is OK
2025-06-13 10:46:47,896 [ INFO][       Thread-252056][   transport.py][1871] : Authentication (password) successful!
2025-06-13 10:46:47,896 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 10:46:48,522 [DEBUG][       Thread-252056][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 10:46:48,522 [DEBUG][       Thread-252056][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 10:46:48,565 [DEBUG][       Thread-252056][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 10:46:48,565 [DEBUG][       Thread-252056][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 10:46:48,568 [DEBUG][       Thread-252056][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 10:46:48,580 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 10:46:48,581 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 10:46:48,582 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 10:46:48,584 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 10:46:48,589 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 10:46:48,590 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 10:46:48,590 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 10:46:48,591 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 10:46:48,591 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.365565 -999.00   +9.40  20.74     53   +0.40 1 1 1 1 1   887    0 8.97 -0.42 ----- 18.7 20.7 57.4 23.1 14.2 -28.8 12.8 -30.2 11.8 -27.9 13.2 -26.9
2025-06-13 10:46:48,591 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 10:46:48,591 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 10:46:48,591 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.365565
2025-06-13 10:46:48,592 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 10:46:48,592 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 10:46:48,592 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 10:46:48,592 [DEBUG][       Thread-252056][   transport.py][1871] : EOF in transport thread
2025-06-13 10:46:48,593 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 10:46:48,593 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 10:46:48,593 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T10:46:24', tmtdew=10.18, humidity=49.06, cloud=0.0, wind=19.32, temperature=9.74, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T08:46:24.816', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 10:46:48,676 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 10:46:48,688 [DEBUG][       Thread-252059][   transport.py][1871] : starting thread (client mode): 0x863a5b70
2025-06-13 10:46:48,688 [DEBUG][       Thread-252059][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 10:46:48,703 [DEBUG][       Thread-252059][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 10:46:48,703 [ INFO][       Thread-252059][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 10:46:48,714 [DEBUG][       Thread-252059][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 10:46:48,714 [DEBUG][       Thread-252059][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 10:46:48,714 [DEBUG][       Thread-252059][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 10:46:48,714 [DEBUG][       Thread-252059][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:46:48,714 [DEBUG][       Thread-252059][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:46:48,714 [DEBUG][       Thread-252059][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:46:48,714 [DEBUG][       Thread-252059][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:46:48,714 [DEBUG][       Thread-252059][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 10:46:48,714 [DEBUG][       Thread-252059][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 10:46:48,714 [DEBUG][       Thread-252059][   transport.py][1871] : client lang: <none>
2025-06-13 10:46:48,714 [DEBUG][       Thread-252059][   transport.py][1871] : server lang: <none>
2025-06-13 10:46:48,714 [DEBUG][       Thread-252059][   transport.py][1871] : kex follows: False
2025-06-13 10:46:48,714 [DEBUG][       Thread-252059][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 10:46:48,714 [DEBUG][       Thread-252059][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 10:46:48,714 [DEBUG][       Thread-252059][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 10:46:48,714 [DEBUG][       Thread-252059][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 10:46:48,714 [DEBUG][       Thread-252059][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 10:46:48,715 [DEBUG][       Thread-252059][   transport.py][1871] : Compression: none
2025-06-13 10:46:48,715 [DEBUG][       Thread-252059][   transport.py][1871] : === End of kex handshake ===
2025-06-13 10:46:48,771 [DEBUG][       Thread-252059][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 10:46:48,771 [DEBUG][       Thread-252059][   transport.py][1871] : Switch to new keys ...
2025-06-13 10:46:48,772 [DEBUG][       Thread-252059][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 10:46:48,772 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 10:46:48,773 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 10:46:48,832 [DEBUG][       Thread-252059][   transport.py][1871] : userauth is OK
2025-06-13 10:46:48,832 [DEBUG][       Thread-252059][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 10:46:48,832 [DEBUG][       Thread-252059][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 10:46:48,832 [DEBUG][       Thread-252059][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 10:46:48,833 [DEBUG][       Thread-252059][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 10:46:48,858 [ INFO][       Thread-252059][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 10:46:48,858 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 10:46:48,858 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 10:46:49,904 [DEBUG][       Thread-252059][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 10:46:49,905 [DEBUG][       Thread-252059][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 10:46:49,956 [DEBUG][       Thread-252059][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 10:46:49,956 [DEBUG][       Thread-252059][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 10:46:49,965 [DEBUG][       Thread-252059][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 10:46:49,974 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 10:46:49,974 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 10:46:49,982 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 10:46:49,991 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 10:46:49,991 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 10:46:49,992 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 10:46:49,999 [DEBUG][       Thread-252059][   transport.py][1871] : EOF in transport thread
2025-06-13 10:46:52,035 [DEBUG][Thread-252061 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:47:00,000 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 10:47:00,000 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 10:47:00,000 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 10:47:00,003 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 10:47:00,476 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 10, 46, 56), 10.24, 48.86, 0.0, 17.68, 9.74, 0, 0, 0, 2, 0, 0),)
2025-06-13 10:47:00,476 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 10:46:56
2025-06-13 10:47:00,558 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 10:47:00,562 [DEBUG][       Thread-252062][   transport.py][1871] : starting thread (client mode): 0x863bff70
2025-06-13 10:47:00,562 [DEBUG][       Thread-252062][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 10:47:00,583 [DEBUG][       Thread-252062][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 10:47:00,583 [ INFO][       Thread-252062][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 10:47:00,586 [DEBUG][       Thread-252062][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 10:47:00,586 [DEBUG][       Thread-252062][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 10:47:00,586 [DEBUG][       Thread-252062][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 10:47:00,586 [DEBUG][       Thread-252062][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:47:00,586 [DEBUG][       Thread-252062][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:47:00,586 [DEBUG][       Thread-252062][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:47:00,586 [DEBUG][       Thread-252062][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:47:00,586 [DEBUG][       Thread-252062][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 10:47:00,586 [DEBUG][       Thread-252062][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 10:47:00,586 [DEBUG][       Thread-252062][   transport.py][1871] : client lang: <none>
2025-06-13 10:47:00,587 [DEBUG][       Thread-252062][   transport.py][1871] : server lang: <none>
2025-06-13 10:47:00,587 [DEBUG][       Thread-252062][   transport.py][1871] : kex follows: False
2025-06-13 10:47:00,587 [DEBUG][       Thread-252062][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 10:47:00,587 [DEBUG][       Thread-252062][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 10:47:00,587 [DEBUG][       Thread-252062][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 10:47:00,587 [DEBUG][       Thread-252062][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 10:47:00,587 [DEBUG][       Thread-252062][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 10:47:00,587 [DEBUG][       Thread-252062][   transport.py][1871] : Compression: none
2025-06-13 10:47:00,587 [DEBUG][       Thread-252062][   transport.py][1871] : === End of kex handshake ===
2025-06-13 10:47:00,604 [DEBUG][       Thread-252062][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 10:47:00,605 [DEBUG][       Thread-252062][   transport.py][1871] : Switch to new keys ...
2025-06-13 10:47:00,605 [DEBUG][       Thread-252062][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 10:47:00,605 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 10:47:00,606 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 10:47:00,607 [DEBUG][       Thread-252062][   transport.py][1871] : userauth is OK
2025-06-13 10:47:00,631 [ INFO][       Thread-252062][   transport.py][1871] : Authentication (password) successful!
2025-06-13 10:47:00,631 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 10:47:01,052 [DEBUG][Thread-252064 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:47:01,204 [DEBUG][       Thread-252062][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 10:47:01,204 [DEBUG][       Thread-252062][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 10:47:01,248 [DEBUG][       Thread-252062][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 10:47:01,249 [DEBUG][       Thread-252062][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 10:47:01,252 [DEBUG][       Thread-252062][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 10:47:01,265 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 10:47:01,265 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 10:47:01,267 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 10:47:01,268 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 10:47:01,272 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 10:47:01,273 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 10:47:01,273 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 10:47:01,274 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 10:47:01,274 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.365565 -999.00   +9.40  20.74     53   +0.40 1 1 1 1 1   887    0 8.97 -0.42 ----- 18.7 20.7 57.4 23.1 14.2 -28.8 12.8 -30.2 11.8 -27.9 13.2 -26.9
2025-06-13 10:47:01,274 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 10:47:01,274 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 10:47:01,274 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.365565
2025-06-13 10:47:01,275 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 10:47:01,275 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 10:47:01,276 [DEBUG][       Thread-252062][   transport.py][1871] : EOF in transport thread
2025-06-13 10:47:01,276 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 10:47:01,276 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 10:47:01,276 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 10:47:01,276 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T10:46:56', tmtdew=10.24, humidity=48.86, cloud=0.0, wind=17.68, temperature=9.74, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T08:46:24.816', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 10:47:01,359 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 10:47:01,368 [DEBUG][       Thread-252066][   transport.py][1871] : starting thread (client mode): 0x863be5f0
2025-06-13 10:47:01,368 [DEBUG][       Thread-252066][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 10:47:01,382 [DEBUG][       Thread-252066][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 10:47:01,382 [ INFO][       Thread-252066][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 10:47:01,390 [DEBUG][       Thread-252066][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 10:47:01,390 [DEBUG][       Thread-252066][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 10:47:01,390 [DEBUG][       Thread-252066][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 10:47:01,390 [DEBUG][       Thread-252066][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:47:01,390 [DEBUG][       Thread-252066][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:47:01,390 [DEBUG][       Thread-252066][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:47:01,390 [DEBUG][       Thread-252066][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:47:01,390 [DEBUG][       Thread-252066][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 10:47:01,390 [DEBUG][       Thread-252066][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 10:47:01,390 [DEBUG][       Thread-252066][   transport.py][1871] : client lang: <none>
2025-06-13 10:47:01,390 [DEBUG][       Thread-252066][   transport.py][1871] : server lang: <none>
2025-06-13 10:47:01,390 [DEBUG][       Thread-252066][   transport.py][1871] : kex follows: False
2025-06-13 10:47:01,390 [DEBUG][       Thread-252066][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 10:47:01,390 [DEBUG][       Thread-252066][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 10:47:01,390 [DEBUG][       Thread-252066][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 10:47:01,390 [DEBUG][       Thread-252066][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 10:47:01,390 [DEBUG][       Thread-252066][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 10:47:01,390 [DEBUG][       Thread-252066][   transport.py][1871] : Compression: none
2025-06-13 10:47:01,390 [DEBUG][       Thread-252066][   transport.py][1871] : === End of kex handshake ===
2025-06-13 10:47:01,454 [DEBUG][       Thread-252066][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 10:47:01,455 [DEBUG][       Thread-252066][   transport.py][1871] : Switch to new keys ...
2025-06-13 10:47:01,455 [DEBUG][       Thread-252066][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 10:47:01,455 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 10:47:01,456 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 10:47:01,518 [DEBUG][       Thread-252066][   transport.py][1871] : userauth is OK
2025-06-13 10:47:01,518 [DEBUG][       Thread-252066][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 10:47:01,518 [DEBUG][       Thread-252066][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 10:47:01,518 [DEBUG][       Thread-252066][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 10:47:01,518 [DEBUG][       Thread-252066][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 10:47:01,536 [ INFO][       Thread-252066][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 10:47:01,537 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 10:47:01,537 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 10:47:03,333 [DEBUG][       Thread-252066][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 10:47:03,333 [DEBUG][       Thread-252066][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 10:47:03,387 [DEBUG][       Thread-252066][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 10:47:03,387 [DEBUG][       Thread-252066][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 10:47:03,395 [DEBUG][       Thread-252066][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 10:47:03,403 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 10:47:03,403 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 10:47:03,411 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 10:47:03,419 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 10:47:03,419 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 10:47:03,420 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 10:47:03,428 [DEBUG][       Thread-252066][   transport.py][1871] : EOF in transport thread
2025-06-13 10:47:07,234 [DEBUG][Thread-252068 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:47:10,070 [DEBUG][Thread-252069 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:47:13,430 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 10:47:13,430 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 10:47:13,430 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 10:47:13,433 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 10:47:13,903 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 10, 46, 56), 10.24, 48.86, 0.0, 17.68, 9.74, 0, 0, 0, 2, 0, 0),)
2025-06-13 10:47:13,903 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 10:46:56
2025-06-13 10:47:13,985 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 10:47:13,992 [DEBUG][       Thread-252070][   transport.py][1871] : starting thread (client mode): 0x867b7070
2025-06-13 10:47:13,992 [DEBUG][       Thread-252070][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 10:47:14,012 [DEBUG][       Thread-252070][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 10:47:14,012 [ INFO][       Thread-252070][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 10:47:14,015 [DEBUG][       Thread-252070][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 10:47:14,015 [DEBUG][       Thread-252070][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 10:47:14,016 [DEBUG][       Thread-252070][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 10:47:14,016 [DEBUG][       Thread-252070][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:47:14,016 [DEBUG][       Thread-252070][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:47:14,016 [DEBUG][       Thread-252070][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:47:14,016 [DEBUG][       Thread-252070][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:47:14,016 [DEBUG][       Thread-252070][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 10:47:14,016 [DEBUG][       Thread-252070][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 10:47:14,016 [DEBUG][       Thread-252070][   transport.py][1871] : client lang: <none>
2025-06-13 10:47:14,016 [DEBUG][       Thread-252070][   transport.py][1871] : server lang: <none>
2025-06-13 10:47:14,016 [DEBUG][       Thread-252070][   transport.py][1871] : kex follows: False
2025-06-13 10:47:14,016 [DEBUG][       Thread-252070][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 10:47:14,016 [DEBUG][       Thread-252070][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 10:47:14,016 [DEBUG][       Thread-252070][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 10:47:14,016 [DEBUG][       Thread-252070][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 10:47:14,016 [DEBUG][       Thread-252070][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 10:47:14,016 [DEBUG][       Thread-252070][   transport.py][1871] : Compression: none
2025-06-13 10:47:14,016 [DEBUG][       Thread-252070][   transport.py][1871] : === End of kex handshake ===
2025-06-13 10:47:14,036 [DEBUG][       Thread-252070][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 10:47:14,036 [DEBUG][       Thread-252070][   transport.py][1871] : Switch to new keys ...
2025-06-13 10:47:14,037 [DEBUG][       Thread-252070][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 10:47:14,037 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 10:47:14,037 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 10:47:14,039 [DEBUG][       Thread-252070][   transport.py][1871] : userauth is OK
2025-06-13 10:47:14,063 [ INFO][       Thread-252070][   transport.py][1871] : Authentication (password) successful!
2025-06-13 10:47:14,063 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 10:47:14,698 [DEBUG][       Thread-252070][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 10:47:14,699 [DEBUG][       Thread-252070][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 10:47:14,741 [DEBUG][       Thread-252070][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 10:47:14,741 [DEBUG][       Thread-252070][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 10:47:14,744 [DEBUG][       Thread-252070][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 10:47:14,755 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 10:47:14,755 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 10:47:14,756 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 10:47:14,758 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 10:47:14,762 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 10:47:14,764 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 10:47:14,764 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 10:47:14,765 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 10:47:14,765 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.365912 -999.00   +9.20  21.38     53   +0.20 1 1 1 1 1   887    0 9.07 0.51 ----- 23.6 21.4 45.6 28.2 14.2 -28.8 12.8 -30.9 11.9 -28.7 13.1 -27.9
2025-06-13 10:47:14,765 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 10:47:14,765 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 10:47:14,765 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.365912
2025-06-13 10:47:14,766 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 10:47:14,766 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 10:47:14,766 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 10:47:14,766 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 10:47:14,766 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 10:47:14,766 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T10:46:56', tmtdew=10.24, humidity=48.86, cloud=0.0, wind=17.68, temperature=9.74, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T08:46:54.797', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 10:47:14,767 [DEBUG][       Thread-252070][   transport.py][1871] : EOF in transport thread
2025-06-13 10:47:14,851 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 10:47:14,863 [DEBUG][       Thread-252073][   transport.py][1871] : starting thread (client mode): 0x863bfbe0
2025-06-13 10:47:14,863 [DEBUG][       Thread-252073][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 10:47:14,877 [DEBUG][       Thread-252073][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 10:47:14,877 [ INFO][       Thread-252073][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 10:47:14,892 [DEBUG][       Thread-252073][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 10:47:14,892 [DEBUG][       Thread-252073][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 10:47:14,892 [DEBUG][       Thread-252073][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 10:47:14,892 [DEBUG][       Thread-252073][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:47:14,893 [DEBUG][       Thread-252073][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:47:14,893 [DEBUG][       Thread-252073][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:47:14,893 [DEBUG][       Thread-252073][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:47:14,893 [DEBUG][       Thread-252073][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 10:47:14,893 [DEBUG][       Thread-252073][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 10:47:14,893 [DEBUG][       Thread-252073][   transport.py][1871] : client lang: <none>
2025-06-13 10:47:14,893 [DEBUG][       Thread-252073][   transport.py][1871] : server lang: <none>
2025-06-13 10:47:14,893 [DEBUG][       Thread-252073][   transport.py][1871] : kex follows: False
2025-06-13 10:47:14,893 [DEBUG][       Thread-252073][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 10:47:14,893 [DEBUG][       Thread-252073][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 10:47:14,893 [DEBUG][       Thread-252073][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 10:47:14,893 [DEBUG][       Thread-252073][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 10:47:14,893 [DEBUG][       Thread-252073][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 10:47:14,893 [DEBUG][       Thread-252073][   transport.py][1871] : Compression: none
2025-06-13 10:47:14,893 [DEBUG][       Thread-252073][   transport.py][1871] : === End of kex handshake ===
2025-06-13 10:47:14,950 [DEBUG][       Thread-252073][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 10:47:14,950 [DEBUG][       Thread-252073][   transport.py][1871] : Switch to new keys ...
2025-06-13 10:47:14,951 [DEBUG][       Thread-252073][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 10:47:14,951 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 10:47:14,951 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 10:47:15,007 [DEBUG][       Thread-252073][   transport.py][1871] : userauth is OK
2025-06-13 10:47:15,007 [DEBUG][       Thread-252073][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 10:47:15,007 [DEBUG][       Thread-252073][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 10:47:15,008 [DEBUG][       Thread-252073][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 10:47:15,008 [DEBUG][       Thread-252073][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 10:47:15,030 [ INFO][       Thread-252073][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 10:47:15,030 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 10:47:15,030 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 10:47:16,074 [DEBUG][       Thread-252073][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 10:47:16,074 [DEBUG][       Thread-252073][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 10:47:16,127 [DEBUG][       Thread-252073][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 10:47:16,127 [DEBUG][       Thread-252073][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 10:47:16,137 [DEBUG][       Thread-252073][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 10:47:16,145 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 10:47:16,145 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 10:47:16,154 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 10:47:16,162 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 10:47:16,163 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 10:47:16,163 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 10:47:16,171 [DEBUG][       Thread-252073][   transport.py][1871] : EOF in transport thread
2025-06-13 10:47:19,102 [DEBUG][Thread-252075 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:47:26,172 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 10:47:26,172 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 10:47:26,172 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 10:47:26,175 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 10:47:26,641 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 10, 46, 56), 10.24, 48.86, 0.0, 17.68, 9.74, 0, 0, 0, 2, 0, 0),)
2025-06-13 10:47:26,641 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 10:46:56
2025-06-13 10:47:26,723 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 10:47:26,726 [DEBUG][       Thread-252076][   transport.py][1871] : starting thread (client mode): 0x84207e50
2025-06-13 10:47:26,727 [DEBUG][       Thread-252076][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 10:47:26,745 [DEBUG][       Thread-252076][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 10:47:26,745 [ INFO][       Thread-252076][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 10:47:26,749 [DEBUG][       Thread-252076][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 10:47:26,749 [DEBUG][       Thread-252076][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 10:47:26,749 [DEBUG][       Thread-252076][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 10:47:26,749 [DEBUG][       Thread-252076][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:47:26,749 [DEBUG][       Thread-252076][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:47:26,749 [DEBUG][       Thread-252076][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:47:26,749 [DEBUG][       Thread-252076][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:47:26,749 [DEBUG][       Thread-252076][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 10:47:26,749 [DEBUG][       Thread-252076][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 10:47:26,749 [DEBUG][       Thread-252076][   transport.py][1871] : client lang: <none>
2025-06-13 10:47:26,749 [DEBUG][       Thread-252076][   transport.py][1871] : server lang: <none>
2025-06-13 10:47:26,749 [DEBUG][       Thread-252076][   transport.py][1871] : kex follows: False
2025-06-13 10:47:26,749 [DEBUG][       Thread-252076][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 10:47:26,749 [DEBUG][       Thread-252076][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 10:47:26,749 [DEBUG][       Thread-252076][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 10:47:26,749 [DEBUG][       Thread-252076][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 10:47:26,749 [DEBUG][       Thread-252076][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 10:47:26,749 [DEBUG][       Thread-252076][   transport.py][1871] : Compression: none
2025-06-13 10:47:26,749 [DEBUG][       Thread-252076][   transport.py][1871] : === End of kex handshake ===
2025-06-13 10:47:26,765 [DEBUG][       Thread-252076][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 10:47:26,766 [DEBUG][       Thread-252076][   transport.py][1871] : Switch to new keys ...
2025-06-13 10:47:26,766 [DEBUG][       Thread-252076][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 10:47:26,766 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 10:47:26,767 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 10:47:26,768 [DEBUG][       Thread-252076][   transport.py][1871] : userauth is OK
2025-06-13 10:47:26,794 [ INFO][       Thread-252076][   transport.py][1871] : Authentication (password) successful!
2025-06-13 10:47:26,794 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 10:47:27,427 [DEBUG][       Thread-252076][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 10:47:27,427 [DEBUG][       Thread-252076][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 10:47:27,469 [DEBUG][       Thread-252076][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 10:47:27,469 [DEBUG][       Thread-252076][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 10:47:27,472 [DEBUG][       Thread-252076][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 10:47:27,484 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 10:47:27,484 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 10:47:27,486 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 10:47:27,487 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 10:47:27,491 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 10:47:27,493 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 10:47:27,493 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 10:47:27,493 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 10:47:27,493 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.365912 -999.00   +9.20  21.38     53   +0.20 1 1 1 1 1   887    0 9.07 0.51 ----- 23.6 21.4 45.6 28.2 14.2 -28.8 12.8 -30.9 11.9 -28.7 13.1 -27.9
2025-06-13 10:47:27,493 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 10:47:27,494 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 10:47:27,494 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.365912
2025-06-13 10:47:27,494 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 10:47:27,494 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 10:47:27,495 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 10:47:27,495 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 10:47:27,495 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 10:47:27,495 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T10:46:56', tmtdew=10.24, humidity=48.86, cloud=0.0, wind=17.68, temperature=9.74, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T08:46:54.797', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 10:47:27,496 [DEBUG][       Thread-252076][   transport.py][1871] : EOF in transport thread
2025-06-13 10:47:27,578 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 10:47:27,590 [DEBUG][       Thread-252079][   transport.py][1871] : starting thread (client mode): 0x867fc0d0
2025-06-13 10:47:27,590 [DEBUG][       Thread-252079][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 10:47:27,609 [DEBUG][       Thread-252079][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 10:47:27,609 [ INFO][       Thread-252079][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 10:47:27,616 [DEBUG][       Thread-252079][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 10:47:27,617 [DEBUG][       Thread-252079][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 10:47:27,617 [DEBUG][       Thread-252079][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 10:47:27,617 [DEBUG][       Thread-252079][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:47:27,617 [DEBUG][       Thread-252079][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:47:27,617 [DEBUG][       Thread-252079][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:47:27,617 [DEBUG][       Thread-252079][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:47:27,617 [DEBUG][       Thread-252079][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 10:47:27,617 [DEBUG][       Thread-252079][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 10:47:27,617 [DEBUG][       Thread-252079][   transport.py][1871] : client lang: <none>
2025-06-13 10:47:27,617 [DEBUG][       Thread-252079][   transport.py][1871] : server lang: <none>
2025-06-13 10:47:27,617 [DEBUG][       Thread-252079][   transport.py][1871] : kex follows: False
2025-06-13 10:47:27,617 [DEBUG][       Thread-252079][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 10:47:27,617 [DEBUG][       Thread-252079][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 10:47:27,617 [DEBUG][       Thread-252079][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 10:47:27,617 [DEBUG][       Thread-252079][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 10:47:27,617 [DEBUG][       Thread-252079][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 10:47:27,618 [DEBUG][       Thread-252079][   transport.py][1871] : Compression: none
2025-06-13 10:47:27,618 [DEBUG][       Thread-252079][   transport.py][1871] : === End of kex handshake ===
2025-06-13 10:47:27,674 [DEBUG][       Thread-252079][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 10:47:27,674 [DEBUG][       Thread-252079][   transport.py][1871] : Switch to new keys ...
2025-06-13 10:47:27,675 [DEBUG][       Thread-252079][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 10:47:27,675 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 10:47:27,675 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 10:47:27,730 [DEBUG][       Thread-252079][   transport.py][1871] : userauth is OK
2025-06-13 10:47:27,730 [DEBUG][       Thread-252079][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 10:47:27,730 [DEBUG][       Thread-252079][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 10:47:27,730 [DEBUG][       Thread-252079][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 10:47:27,730 [DEBUG][       Thread-252079][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 10:47:27,752 [ INFO][       Thread-252079][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 10:47:27,752 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 10:47:27,753 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 10:47:28,120 [DEBUG][Thread-252081 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:47:28,810 [DEBUG][       Thread-252079][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 10:47:28,810 [DEBUG][       Thread-252079][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 10:47:28,863 [DEBUG][       Thread-252079][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 10:47:28,863 [DEBUG][       Thread-252079][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 10:47:28,871 [DEBUG][       Thread-252079][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 10:47:28,879 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 10:47:28,879 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 10:47:28,887 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 10:47:28,895 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 10:47:28,895 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 10:47:28,895 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 10:47:28,903 [DEBUG][       Thread-252079][   transport.py][1871] : EOF in transport thread
2025-06-13 10:47:29,247 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:47:29,248 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:47:35,420 [DEBUG][Thread-252082 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:47:36,498 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:47:36,499 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:47:37,138 [DEBUG][Thread-252083 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:47:38,905 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 10:47:38,906 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 10:47:38,906 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 10:47:38,908 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 10:47:39,385 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 10, 47, 27), 10.3, 48.86, 0.0, 18.37, 9.67, 0, 0, 0, 2, 0, 0),)
2025-06-13 10:47:39,385 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 10:47:27
2025-06-13 10:47:39,468 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 10:47:39,474 [DEBUG][       Thread-252084][   transport.py][1871] : starting thread (client mode): 0x863bd210
2025-06-13 10:47:39,474 [DEBUG][       Thread-252084][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 10:47:39,497 [DEBUG][       Thread-252084][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 10:47:39,497 [ INFO][       Thread-252084][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 10:47:39,499 [DEBUG][       Thread-252084][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 10:47:39,499 [DEBUG][       Thread-252084][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 10:47:39,499 [DEBUG][       Thread-252084][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 10:47:39,499 [DEBUG][       Thread-252084][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:47:39,499 [DEBUG][       Thread-252084][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:47:39,499 [DEBUG][       Thread-252084][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:47:39,499 [DEBUG][       Thread-252084][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:47:39,499 [DEBUG][       Thread-252084][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 10:47:39,499 [DEBUG][       Thread-252084][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 10:47:39,499 [DEBUG][       Thread-252084][   transport.py][1871] : client lang: <none>
2025-06-13 10:47:39,499 [DEBUG][       Thread-252084][   transport.py][1871] : server lang: <none>
2025-06-13 10:47:39,500 [DEBUG][       Thread-252084][   transport.py][1871] : kex follows: False
2025-06-13 10:47:39,500 [DEBUG][       Thread-252084][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 10:47:39,500 [DEBUG][       Thread-252084][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 10:47:39,500 [DEBUG][       Thread-252084][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 10:47:39,500 [DEBUG][       Thread-252084][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 10:47:39,500 [DEBUG][       Thread-252084][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 10:47:39,500 [DEBUG][       Thread-252084][   transport.py][1871] : Compression: none
2025-06-13 10:47:39,500 [DEBUG][       Thread-252084][   transport.py][1871] : === End of kex handshake ===
2025-06-13 10:47:39,512 [DEBUG][       Thread-252084][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 10:47:39,513 [DEBUG][       Thread-252084][   transport.py][1871] : Switch to new keys ...
2025-06-13 10:47:39,513 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 10:47:39,514 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 10:47:39,514 [DEBUG][       Thread-252084][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 10:47:39,515 [DEBUG][       Thread-252084][   transport.py][1871] : userauth is OK
2025-06-13 10:47:39,527 [ INFO][       Thread-252084][   transport.py][1871] : Authentication (password) successful!
2025-06-13 10:47:39,528 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 10:47:40,130 [DEBUG][       Thread-252084][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 10:47:40,130 [DEBUG][       Thread-252084][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 10:47:40,172 [DEBUG][       Thread-252084][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 10:47:40,173 [DEBUG][       Thread-252084][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 10:47:40,175 [DEBUG][       Thread-252084][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 10:47:40,186 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 10:47:40,187 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 10:47:40,188 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 10:47:40,190 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 10:47:40,195 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 10:47:40,196 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 10:47:40,196 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 10:47:40,197 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 10:47:40,197 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.365912 -999.00   +9.20  21.38     53   +0.20 1 1 1 1 1   887    0 9.07 0.51 ----- 23.6 21.4 45.6 28.2 14.2 -28.8 12.8 -30.9 11.9 -28.7 13.1 -27.9
2025-06-13 10:47:40,197 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 10:47:40,197 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 10:47:40,197 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.365912
2025-06-13 10:47:40,198 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 10:47:40,198 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 10:47:40,198 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 10:47:40,198 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 10:47:40,198 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 10:47:40,199 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T10:47:27', tmtdew=10.3, humidity=48.86, cloud=0.0, wind=18.37, temperature=9.67, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T08:46:54.797', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 10:47:40,199 [DEBUG][       Thread-252084][   transport.py][1871] : EOF in transport thread
2025-06-13 10:47:40,273 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 10:47:40,284 [DEBUG][       Thread-252087][   transport.py][1871] : starting thread (client mode): 0x863a5210
2025-06-13 10:47:40,284 [DEBUG][       Thread-252087][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 10:47:40,306 [DEBUG][       Thread-252087][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 10:47:40,306 [ INFO][       Thread-252087][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 10:47:40,314 [DEBUG][       Thread-252087][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 10:47:40,314 [DEBUG][       Thread-252087][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 10:47:40,314 [DEBUG][       Thread-252087][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 10:47:40,314 [DEBUG][       Thread-252087][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:47:40,314 [DEBUG][       Thread-252087][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:47:40,314 [DEBUG][       Thread-252087][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:47:40,314 [DEBUG][       Thread-252087][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:47:40,314 [DEBUG][       Thread-252087][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 10:47:40,314 [DEBUG][       Thread-252087][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 10:47:40,314 [DEBUG][       Thread-252087][   transport.py][1871] : client lang: <none>
2025-06-13 10:47:40,314 [DEBUG][       Thread-252087][   transport.py][1871] : server lang: <none>
2025-06-13 10:47:40,314 [DEBUG][       Thread-252087][   transport.py][1871] : kex follows: False
2025-06-13 10:47:40,314 [DEBUG][       Thread-252087][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 10:47:40,315 [DEBUG][       Thread-252087][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 10:47:40,315 [DEBUG][       Thread-252087][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 10:47:40,315 [DEBUG][       Thread-252087][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 10:47:40,315 [DEBUG][       Thread-252087][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 10:47:40,315 [DEBUG][       Thread-252087][   transport.py][1871] : Compression: none
2025-06-13 10:47:40,315 [DEBUG][       Thread-252087][   transport.py][1871] : === End of kex handshake ===
2025-06-13 10:47:40,378 [DEBUG][       Thread-252087][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 10:47:40,379 [DEBUG][       Thread-252087][   transport.py][1871] : Switch to new keys ...
2025-06-13 10:47:40,379 [DEBUG][       Thread-252087][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 10:47:40,379 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 10:47:40,380 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 10:47:40,439 [DEBUG][       Thread-252087][   transport.py][1871] : userauth is OK
2025-06-13 10:47:40,439 [DEBUG][       Thread-252087][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 10:47:40,439 [DEBUG][       Thread-252087][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 10:47:40,439 [DEBUG][       Thread-252087][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 10:47:40,439 [DEBUG][       Thread-252087][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 10:47:40,457 [ INFO][       Thread-252087][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 10:47:40,458 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 10:47:40,458 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 10:47:41,443 [DEBUG][       Thread-252087][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 10:47:41,444 [DEBUG][       Thread-252087][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 10:47:41,495 [DEBUG][       Thread-252087][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 10:47:41,495 [DEBUG][       Thread-252087][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 10:47:41,504 [DEBUG][       Thread-252087][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 10:47:41,517 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 10:47:41,517 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 10:47:41,526 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 10:47:41,535 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 10:47:41,535 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 10:47:41,535 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 10:47:41,543 [DEBUG][       Thread-252087][   transport.py][1871] : EOF in transport thread
2025-06-13 10:47:46,156 [DEBUG][Thread-252089 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:47:51,546 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 10:47:51,546 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 10:47:51,546 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 10:47:51,548 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 10:47:52,010 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 10, 47, 27), 10.3, 48.86, 0.0, 18.37, 9.67, 0, 0, 0, 2, 0, 0),)
2025-06-13 10:47:52,010 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 10:47:27
2025-06-13 10:47:52,092 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 10:47:52,098 [DEBUG][       Thread-252090][   transport.py][1871] : starting thread (client mode): 0x84205de0
2025-06-13 10:47:52,098 [DEBUG][       Thread-252090][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 10:47:52,118 [DEBUG][       Thread-252090][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 10:47:52,118 [ INFO][       Thread-252090][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 10:47:52,121 [DEBUG][       Thread-252090][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 10:47:52,121 [DEBUG][       Thread-252090][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 10:47:52,121 [DEBUG][       Thread-252090][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 10:47:52,121 [DEBUG][       Thread-252090][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:47:52,121 [DEBUG][       Thread-252090][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:47:52,121 [DEBUG][       Thread-252090][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:47:52,121 [DEBUG][       Thread-252090][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:47:52,121 [DEBUG][       Thread-252090][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 10:47:52,121 [DEBUG][       Thread-252090][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 10:47:52,121 [DEBUG][       Thread-252090][   transport.py][1871] : client lang: <none>
2025-06-13 10:47:52,121 [DEBUG][       Thread-252090][   transport.py][1871] : server lang: <none>
2025-06-13 10:47:52,121 [DEBUG][       Thread-252090][   transport.py][1871] : kex follows: False
2025-06-13 10:47:52,121 [DEBUG][       Thread-252090][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 10:47:52,121 [DEBUG][       Thread-252090][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 10:47:52,121 [DEBUG][       Thread-252090][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 10:47:52,122 [DEBUG][       Thread-252090][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 10:47:52,122 [DEBUG][       Thread-252090][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 10:47:52,122 [DEBUG][       Thread-252090][   transport.py][1871] : Compression: none
2025-06-13 10:47:52,122 [DEBUG][       Thread-252090][   transport.py][1871] : === End of kex handshake ===
2025-06-13 10:47:52,138 [DEBUG][       Thread-252090][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 10:47:52,139 [DEBUG][       Thread-252090][   transport.py][1871] : Switch to new keys ...
2025-06-13 10:47:52,139 [DEBUG][       Thread-252090][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 10:47:52,139 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 10:47:52,140 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 10:47:52,141 [DEBUG][       Thread-252090][   transport.py][1871] : userauth is OK
2025-06-13 10:47:52,166 [ INFO][       Thread-252090][   transport.py][1871] : Authentication (password) successful!
2025-06-13 10:47:52,166 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 10:47:52,769 [DEBUG][       Thread-252090][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 10:47:52,769 [DEBUG][       Thread-252090][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 10:47:52,813 [DEBUG][       Thread-252090][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 10:47:52,813 [DEBUG][       Thread-252090][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 10:47:52,816 [DEBUG][       Thread-252090][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 10:47:52,827 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 10:47:52,827 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 10:47:52,829 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 10:47:52,831 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 10:47:52,836 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 10:47:52,838 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 10:47:52,838 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 10:47:52,839 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 10:47:52,839 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.366259 -999.00   +9.20  22.54     52   +0.10 1 1 1 1 1   887    0 8.89 1.05 ----- 19.5 22.5 54.0 26.1 14.2 -28.6 12.8 -30.3 11.8 -29.0 13.1 -27.1
2025-06-13 10:47:52,839 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 10:47:52,839 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 10:47:52,839 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.366259
2025-06-13 10:47:52,840 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 10:47:52,841 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 10:47:52,841 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 10:47:52,841 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 10:47:52,841 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 10:47:52,841 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T10:47:27', tmtdew=10.3, humidity=48.86, cloud=0.0, wind=18.37, temperature=9.67, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T08:47:24.778', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 10:47:52,842 [DEBUG][       Thread-252090][   transport.py][1871] : EOF in transport thread
2025-06-13 10:47:52,929 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 10:47:52,946 [DEBUG][       Thread-252093][   transport.py][1871] : starting thread (client mode): 0x863be500
2025-06-13 10:47:52,947 [DEBUG][       Thread-252093][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 10:47:52,962 [DEBUG][       Thread-252093][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 10:47:52,962 [ INFO][       Thread-252093][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 10:47:52,969 [DEBUG][       Thread-252093][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 10:47:52,970 [DEBUG][       Thread-252093][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 10:47:52,970 [DEBUG][       Thread-252093][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 10:47:52,970 [DEBUG][       Thread-252093][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:47:52,970 [DEBUG][       Thread-252093][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:47:52,970 [DEBUG][       Thread-252093][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:47:52,970 [DEBUG][       Thread-252093][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:47:52,970 [DEBUG][       Thread-252093][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 10:47:52,970 [DEBUG][       Thread-252093][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 10:47:52,970 [DEBUG][       Thread-252093][   transport.py][1871] : client lang: <none>
2025-06-13 10:47:52,970 [DEBUG][       Thread-252093][   transport.py][1871] : server lang: <none>
2025-06-13 10:47:52,970 [DEBUG][       Thread-252093][   transport.py][1871] : kex follows: False
2025-06-13 10:47:52,970 [DEBUG][       Thread-252093][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 10:47:52,970 [DEBUG][       Thread-252093][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 10:47:52,970 [DEBUG][       Thread-252093][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 10:47:52,970 [DEBUG][       Thread-252093][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 10:47:52,970 [DEBUG][       Thread-252093][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 10:47:52,971 [DEBUG][       Thread-252093][   transport.py][1871] : Compression: none
2025-06-13 10:47:52,971 [DEBUG][       Thread-252093][   transport.py][1871] : === End of kex handshake ===
2025-06-13 10:47:53,025 [DEBUG][       Thread-252093][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 10:47:53,026 [DEBUG][       Thread-252093][   transport.py][1871] : Switch to new keys ...
2025-06-13 10:47:53,026 [DEBUG][       Thread-252093][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 10:47:53,026 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 10:47:53,027 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 10:47:53,082 [DEBUG][       Thread-252093][   transport.py][1871] : userauth is OK
2025-06-13 10:47:53,082 [DEBUG][       Thread-252093][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 10:47:53,082 [DEBUG][       Thread-252093][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 10:47:53,082 [DEBUG][       Thread-252093][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 10:47:53,082 [DEBUG][       Thread-252093][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 10:47:53,096 [ INFO][       Thread-252093][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 10:47:53,096 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 10:47:53,096 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 10:47:54,139 [DEBUG][       Thread-252093][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 10:47:54,140 [DEBUG][       Thread-252093][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 10:47:54,188 [DEBUG][       Thread-252093][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 10:47:54,188 [DEBUG][       Thread-252093][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 10:47:54,197 [DEBUG][       Thread-252093][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 10:47:54,206 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 10:47:54,206 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 10:47:54,214 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 10:47:54,223 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 10:47:54,223 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 10:47:54,224 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 10:47:54,233 [DEBUG][       Thread-252093][   transport.py][1871] : EOF in transport thread
2025-06-13 10:47:55,180 [DEBUG][Thread-252095 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:48:04,196 [DEBUG][Thread-252096 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:48:04,232 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 10:48:04,232 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 10:48:04,232 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 10:48:04,232 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 10:48:04,690 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 10, 47, 59), 10.28, 48.94, 0.0, 18.63, 9.69, 0, 0, 0, 2, 0, 0),)
2025-06-13 10:48:04,690 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 10:47:59
2025-06-13 10:48:04,770 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 10:48:04,775 [DEBUG][       Thread-252097][   transport.py][1871] : starting thread (client mode): 0x842055a0
2025-06-13 10:48:04,775 [DEBUG][       Thread-252097][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 10:48:04,797 [DEBUG][       Thread-252097][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 10:48:04,797 [ INFO][       Thread-252097][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 10:48:04,800 [DEBUG][       Thread-252097][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 10:48:04,800 [DEBUG][       Thread-252097][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 10:48:04,800 [DEBUG][       Thread-252097][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 10:48:04,800 [DEBUG][       Thread-252097][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:48:04,800 [DEBUG][       Thread-252097][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:48:04,800 [DEBUG][       Thread-252097][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:48:04,800 [DEBUG][       Thread-252097][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:48:04,800 [DEBUG][       Thread-252097][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 10:48:04,800 [DEBUG][       Thread-252097][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 10:48:04,800 [DEBUG][       Thread-252097][   transport.py][1871] : client lang: <none>
2025-06-13 10:48:04,801 [DEBUG][       Thread-252097][   transport.py][1871] : server lang: <none>
2025-06-13 10:48:04,801 [DEBUG][       Thread-252097][   transport.py][1871] : kex follows: False
2025-06-13 10:48:04,801 [DEBUG][       Thread-252097][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 10:48:04,801 [DEBUG][       Thread-252097][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 10:48:04,801 [DEBUG][       Thread-252097][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 10:48:04,801 [DEBUG][       Thread-252097][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 10:48:04,801 [DEBUG][       Thread-252097][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 10:48:04,801 [DEBUG][       Thread-252097][   transport.py][1871] : Compression: none
2025-06-13 10:48:04,801 [DEBUG][       Thread-252097][   transport.py][1871] : === End of kex handshake ===
2025-06-13 10:48:04,817 [DEBUG][       Thread-252097][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 10:48:04,818 [DEBUG][       Thread-252097][   transport.py][1871] : Switch to new keys ...
2025-06-13 10:48:04,818 [DEBUG][       Thread-252097][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 10:48:04,819 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 10:48:04,819 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 10:48:04,820 [DEBUG][       Thread-252097][   transport.py][1871] : userauth is OK
2025-06-13 10:48:04,833 [ INFO][       Thread-252097][   transport.py][1871] : Authentication (password) successful!
2025-06-13 10:48:04,834 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 10:48:05,480 [DEBUG][       Thread-252097][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 10:48:05,480 [DEBUG][       Thread-252097][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 10:48:05,521 [DEBUG][       Thread-252097][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 10:48:05,521 [DEBUG][       Thread-252097][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 10:48:05,524 [DEBUG][       Thread-252097][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 10:48:05,536 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 10:48:05,536 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 10:48:05,538 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 10:48:05,538 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 10:48:05,542 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 10:48:05,543 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 10:48:05,543 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 10:48:05,544 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 10:48:05,544 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.366259 -999.00   +9.20  22.54     52   +0.10 1 1 1 1 1   887    0 8.89 1.05 ----- 19.5 22.5 54.0 26.1 14.2 -28.6 12.8 -30.3 11.8 -29.0 13.1 -27.1
2025-06-13 10:48:05,544 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 10:48:05,544 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 10:48:05,544 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.366259
2025-06-13 10:48:05,544 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 10:48:05,544 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 10:48:05,544 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 10:48:05,544 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 10:48:05,544 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 10:48:05,544 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T10:47:59', tmtdew=10.28, humidity=48.94, cloud=0.0, wind=18.63, temperature=9.69, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T08:47:24.778', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 10:48:05,544 [DEBUG][       Thread-252097][   transport.py][1871] : EOF in transport thread
2025-06-13 10:48:05,616 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 10:48:05,625 [DEBUG][       Thread-252100][   transport.py][1871] : starting thread (client mode): 0x863a55d0
2025-06-13 10:48:05,625 [DEBUG][       Thread-252100][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 10:48:05,641 [DEBUG][       Thread-252100][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 10:48:05,641 [ INFO][       Thread-252100][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 10:48:05,648 [DEBUG][       Thread-252100][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 10:48:05,648 [DEBUG][       Thread-252100][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 10:48:05,648 [DEBUG][       Thread-252100][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 10:48:05,648 [DEBUG][       Thread-252100][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:48:05,648 [DEBUG][       Thread-252100][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:48:05,648 [DEBUG][       Thread-252100][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:48:05,648 [DEBUG][       Thread-252100][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:48:05,648 [DEBUG][       Thread-252100][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 10:48:05,648 [DEBUG][       Thread-252100][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 10:48:05,648 [DEBUG][       Thread-252100][   transport.py][1871] : client lang: <none>
2025-06-13 10:48:05,648 [DEBUG][       Thread-252100][   transport.py][1871] : server lang: <none>
2025-06-13 10:48:05,648 [DEBUG][       Thread-252100][   transport.py][1871] : kex follows: False
2025-06-13 10:48:05,648 [DEBUG][       Thread-252100][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 10:48:05,648 [DEBUG][       Thread-252100][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 10:48:05,648 [DEBUG][       Thread-252100][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 10:48:05,648 [DEBUG][       Thread-252100][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 10:48:05,648 [DEBUG][       Thread-252100][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 10:48:05,649 [DEBUG][       Thread-252100][   transport.py][1871] : Compression: none
2025-06-13 10:48:05,649 [DEBUG][       Thread-252100][   transport.py][1871] : === End of kex handshake ===
2025-06-13 10:48:05,710 [DEBUG][       Thread-252100][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 10:48:05,710 [DEBUG][       Thread-252100][   transport.py][1871] : Switch to new keys ...
2025-06-13 10:48:05,710 [DEBUG][       Thread-252100][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 10:48:05,711 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 10:48:05,711 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 10:48:05,768 [DEBUG][       Thread-252100][   transport.py][1871] : userauth is OK
2025-06-13 10:48:05,768 [DEBUG][       Thread-252100][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 10:48:05,768 [DEBUG][       Thread-252100][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 10:48:05,769 [DEBUG][       Thread-252100][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 10:48:05,769 [DEBUG][       Thread-252100][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 10:48:05,794 [ INFO][       Thread-252100][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 10:48:05,794 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 10:48:05,794 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 10:48:06,800 [DEBUG][       Thread-252100][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 10:48:06,801 [DEBUG][       Thread-252100][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 10:48:06,852 [DEBUG][       Thread-252100][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 10:48:06,852 [DEBUG][       Thread-252100][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 10:48:06,861 [DEBUG][       Thread-252100][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 10:48:06,870 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 10:48:06,870 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 10:48:06,880 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 10:48:06,888 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 10:48:06,888 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 10:48:06,889 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 10:48:06,897 [DEBUG][       Thread-252100][   transport.py][1871] : EOF in transport thread
2025-06-13 10:48:07,266 [DEBUG][Thread-252102 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:48:13,216 [DEBUG][Thread-252103 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:48:16,899 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 10:48:16,899 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 10:48:16,900 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 10:48:16,902 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 10:48:17,360 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 10, 47, 59), 10.28, 48.94, 0.0, 18.63, 9.69, 0, 0, 0, 2, 0, 0),)
2025-06-13 10:48:17,360 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 10:47:59
2025-06-13 10:48:17,441 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 10:48:17,446 [DEBUG][       Thread-252104][   transport.py][1871] : starting thread (client mode): 0x84206680
2025-06-13 10:48:17,446 [DEBUG][       Thread-252104][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 10:48:17,467 [DEBUG][       Thread-252104][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 10:48:17,467 [ INFO][       Thread-252104][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 10:48:17,470 [DEBUG][       Thread-252104][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 10:48:17,470 [DEBUG][       Thread-252104][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 10:48:17,470 [DEBUG][       Thread-252104][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 10:48:17,470 [DEBUG][       Thread-252104][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:48:17,470 [DEBUG][       Thread-252104][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:48:17,470 [DEBUG][       Thread-252104][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:48:17,470 [DEBUG][       Thread-252104][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:48:17,470 [DEBUG][       Thread-252104][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 10:48:17,470 [DEBUG][       Thread-252104][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 10:48:17,470 [DEBUG][       Thread-252104][   transport.py][1871] : client lang: <none>
2025-06-13 10:48:17,470 [DEBUG][       Thread-252104][   transport.py][1871] : server lang: <none>
2025-06-13 10:48:17,470 [DEBUG][       Thread-252104][   transport.py][1871] : kex follows: False
2025-06-13 10:48:17,470 [DEBUG][       Thread-252104][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 10:48:17,470 [DEBUG][       Thread-252104][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 10:48:17,471 [DEBUG][       Thread-252104][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 10:48:17,471 [DEBUG][       Thread-252104][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 10:48:17,471 [DEBUG][       Thread-252104][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 10:48:17,471 [DEBUG][       Thread-252104][   transport.py][1871] : Compression: none
2025-06-13 10:48:17,471 [DEBUG][       Thread-252104][   transport.py][1871] : === End of kex handshake ===
2025-06-13 10:48:17,488 [DEBUG][       Thread-252104][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 10:48:17,488 [DEBUG][       Thread-252104][   transport.py][1871] : Switch to new keys ...
2025-06-13 10:48:17,489 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 10:48:17,489 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 10:48:17,489 [DEBUG][       Thread-252104][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 10:48:17,490 [DEBUG][       Thread-252104][   transport.py][1871] : userauth is OK
2025-06-13 10:48:17,503 [ INFO][       Thread-252104][   transport.py][1871] : Authentication (password) successful!
2025-06-13 10:48:17,504 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 10:48:18,105 [DEBUG][       Thread-252104][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 10:48:18,106 [DEBUG][       Thread-252104][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 10:48:18,149 [DEBUG][       Thread-252104][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 10:48:18,149 [DEBUG][       Thread-252104][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 10:48:18,151 [DEBUG][       Thread-252104][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 10:48:18,161 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 10:48:18,161 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 10:48:18,163 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 10:48:18,164 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 10:48:18,169 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 10:48:18,171 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 10:48:18,171 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 10:48:18,172 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 10:48:18,172 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.366606 -999.00   +9.20  19.58     53   +0.30 1 1 1 1 1   887    0 8.98 1.09 ----- 19.7 19.6 51.4 23.0 14.2 -28.4 12.8 -29.5 11.8 -27.9 13.1 -26.7
2025-06-13 10:48:18,172 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 10:48:18,172 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 10:48:18,172 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.366606
2025-06-13 10:48:18,172 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 10:48:18,173 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 10:48:18,173 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 10:48:18,173 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 10:48:18,173 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 10:48:18,173 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T10:47:59', tmtdew=10.28, humidity=48.94, cloud=0.0, wind=18.63, temperature=9.69, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T08:47:54.758', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 10:48:18,174 [DEBUG][       Thread-252104][   transport.py][1871] : EOF in transport thread
2025-06-13 10:48:18,256 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 10:48:18,267 [DEBUG][       Thread-252107][   transport.py][1871] : starting thread (client mode): 0x84204d00
2025-06-13 10:48:18,267 [DEBUG][       Thread-252107][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 10:48:18,282 [DEBUG][       Thread-252107][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 10:48:18,282 [ INFO][       Thread-252107][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 10:48:18,289 [DEBUG][       Thread-252107][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 10:48:18,289 [DEBUG][       Thread-252107][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 10:48:18,289 [DEBUG][       Thread-252107][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 10:48:18,289 [DEBUG][       Thread-252107][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:48:18,290 [DEBUG][       Thread-252107][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:48:18,290 [DEBUG][       Thread-252107][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:48:18,290 [DEBUG][       Thread-252107][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:48:18,290 [DEBUG][       Thread-252107][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 10:48:18,290 [DEBUG][       Thread-252107][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 10:48:18,290 [DEBUG][       Thread-252107][   transport.py][1871] : client lang: <none>
2025-06-13 10:48:18,290 [DEBUG][       Thread-252107][   transport.py][1871] : server lang: <none>
2025-06-13 10:48:18,290 [DEBUG][       Thread-252107][   transport.py][1871] : kex follows: False
2025-06-13 10:48:18,290 [DEBUG][       Thread-252107][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 10:48:18,290 [DEBUG][       Thread-252107][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 10:48:18,290 [DEBUG][       Thread-252107][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 10:48:18,290 [DEBUG][       Thread-252107][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 10:48:18,290 [DEBUG][       Thread-252107][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 10:48:18,290 [DEBUG][       Thread-252107][   transport.py][1871] : Compression: none
2025-06-13 10:48:18,290 [DEBUG][       Thread-252107][   transport.py][1871] : === End of kex handshake ===
2025-06-13 10:48:18,345 [DEBUG][       Thread-252107][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 10:48:18,346 [DEBUG][       Thread-252107][   transport.py][1871] : Switch to new keys ...
2025-06-13 10:48:18,346 [DEBUG][       Thread-252107][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 10:48:18,346 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 10:48:18,347 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 10:48:18,410 [DEBUG][       Thread-252107][   transport.py][1871] : userauth is OK
2025-06-13 10:48:18,410 [DEBUG][       Thread-252107][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 10:48:18,410 [DEBUG][       Thread-252107][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 10:48:18,410 [DEBUG][       Thread-252107][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 10:48:18,410 [DEBUG][       Thread-252107][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 10:48:18,429 [ INFO][       Thread-252107][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 10:48:18,430 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 10:48:18,430 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 10:48:19,468 [DEBUG][       Thread-252107][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 10:48:19,469 [DEBUG][       Thread-252107][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 10:48:19,519 [DEBUG][       Thread-252107][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 10:48:19,520 [DEBUG][       Thread-252107][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 10:48:19,529 [DEBUG][       Thread-252107][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 10:48:19,537 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 10:48:19,537 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 10:48:19,546 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 10:48:19,557 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 10:48:19,557 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 10:48:19,557 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 10:48:19,574 [DEBUG][       Thread-252107][   transport.py][1871] : EOF in transport thread
2025-06-13 10:48:22,246 [DEBUG][Thread-252109 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:48:29,384 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:48:29,384 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:48:29,567 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 10:48:29,568 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 10:48:29,568 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 10:48:29,570 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 10:48:30,028 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 10, 47, 59), 10.28, 48.94, 0.0, 18.63, 9.69, 0, 0, 0, 2, 0, 0),)
2025-06-13 10:48:30,028 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 10:47:59
2025-06-13 10:48:30,107 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 10:48:30,111 [DEBUG][       Thread-252110][   transport.py][1871] : starting thread (client mode): 0x842076d0
2025-06-13 10:48:30,112 [DEBUG][       Thread-252110][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 10:48:30,132 [DEBUG][       Thread-252110][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 10:48:30,132 [ INFO][       Thread-252110][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 10:48:30,136 [DEBUG][       Thread-252110][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 10:48:30,136 [DEBUG][       Thread-252110][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 10:48:30,136 [DEBUG][       Thread-252110][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 10:48:30,136 [DEBUG][       Thread-252110][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:48:30,136 [DEBUG][       Thread-252110][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:48:30,136 [DEBUG][       Thread-252110][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:48:30,136 [DEBUG][       Thread-252110][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:48:30,136 [DEBUG][       Thread-252110][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 10:48:30,136 [DEBUG][       Thread-252110][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 10:48:30,136 [DEBUG][       Thread-252110][   transport.py][1871] : client lang: <none>
2025-06-13 10:48:30,136 [DEBUG][       Thread-252110][   transport.py][1871] : server lang: <none>
2025-06-13 10:48:30,136 [DEBUG][       Thread-252110][   transport.py][1871] : kex follows: False
2025-06-13 10:48:30,136 [DEBUG][       Thread-252110][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 10:48:30,136 [DEBUG][       Thread-252110][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 10:48:30,136 [DEBUG][       Thread-252110][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 10:48:30,136 [DEBUG][       Thread-252110][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 10:48:30,136 [DEBUG][       Thread-252110][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 10:48:30,136 [DEBUG][       Thread-252110][   transport.py][1871] : Compression: none
2025-06-13 10:48:30,136 [DEBUG][       Thread-252110][   transport.py][1871] : === End of kex handshake ===
2025-06-13 10:48:30,152 [DEBUG][       Thread-252110][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 10:48:30,153 [DEBUG][       Thread-252110][   transport.py][1871] : Switch to new keys ...
2025-06-13 10:48:30,153 [DEBUG][       Thread-252110][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 10:48:30,154 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 10:48:30,154 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 10:48:30,155 [DEBUG][       Thread-252110][   transport.py][1871] : userauth is OK
2025-06-13 10:48:30,180 [ INFO][       Thread-252110][   transport.py][1871] : Authentication (password) successful!
2025-06-13 10:48:30,180 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 10:48:30,798 [DEBUG][       Thread-252110][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 10:48:30,798 [DEBUG][       Thread-252110][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 10:48:30,841 [DEBUG][       Thread-252110][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 10:48:30,841 [DEBUG][       Thread-252110][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 10:48:30,844 [DEBUG][       Thread-252110][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 10:48:30,857 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 10:48:30,858 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 10:48:30,859 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 10:48:30,861 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 10:48:30,866 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 10:48:30,868 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 10:48:30,868 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 10:48:30,869 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 10:48:30,869 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.366606 -999.00   +9.20  19.58     53   +0.30 1 1 1 1 1   887    0 8.98 1.09 ----- 19.7 19.6 51.4 23.0 14.2 -28.4 12.8 -29.5 11.8 -27.9 13.1 -26.7
2025-06-13 10:48:30,869 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 10:48:30,869 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 10:48:30,869 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.366606
2025-06-13 10:48:30,869 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 10:48:30,870 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 10:48:30,870 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 10:48:30,870 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 10:48:30,870 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 10:48:30,870 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T10:47:59', tmtdew=10.28, humidity=48.94, cloud=0.0, wind=18.63, temperature=9.69, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T08:47:54.758', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 10:48:30,871 [DEBUG][       Thread-252110][   transport.py][1871] : EOF in transport thread
2025-06-13 10:48:30,953 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 10:48:30,964 [DEBUG][       Thread-252113][   transport.py][1871] : starting thread (client mode): 0x867b6320
2025-06-13 10:48:30,964 [DEBUG][       Thread-252113][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 10:48:30,979 [DEBUG][       Thread-252113][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 10:48:30,979 [ INFO][       Thread-252113][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 10:48:30,987 [DEBUG][       Thread-252113][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 10:48:30,987 [DEBUG][       Thread-252113][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 10:48:30,987 [DEBUG][       Thread-252113][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 10:48:30,987 [DEBUG][       Thread-252113][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:48:30,987 [DEBUG][       Thread-252113][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:48:30,987 [DEBUG][       Thread-252113][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:48:30,987 [DEBUG][       Thread-252113][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:48:30,987 [DEBUG][       Thread-252113][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 10:48:30,987 [DEBUG][       Thread-252113][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 10:48:30,987 [DEBUG][       Thread-252113][   transport.py][1871] : client lang: <none>
2025-06-13 10:48:30,987 [DEBUG][       Thread-252113][   transport.py][1871] : server lang: <none>
2025-06-13 10:48:30,987 [DEBUG][       Thread-252113][   transport.py][1871] : kex follows: False
2025-06-13 10:48:30,987 [DEBUG][       Thread-252113][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 10:48:30,988 [DEBUG][       Thread-252113][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 10:48:30,988 [DEBUG][       Thread-252113][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 10:48:30,988 [DEBUG][       Thread-252113][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 10:48:30,988 [DEBUG][       Thread-252113][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 10:48:30,988 [DEBUG][       Thread-252113][   transport.py][1871] : Compression: none
2025-06-13 10:48:30,988 [DEBUG][       Thread-252113][   transport.py][1871] : === End of kex handshake ===
2025-06-13 10:48:31,046 [DEBUG][       Thread-252113][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 10:48:31,047 [DEBUG][       Thread-252113][   transport.py][1871] : Switch to new keys ...
2025-06-13 10:48:31,047 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 10:48:31,048 [DEBUG][       Thread-252113][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 10:48:31,048 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 10:48:31,102 [DEBUG][       Thread-252113][   transport.py][1871] : userauth is OK
2025-06-13 10:48:31,102 [DEBUG][       Thread-252113][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 10:48:31,102 [DEBUG][       Thread-252113][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 10:48:31,102 [DEBUG][       Thread-252113][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 10:48:31,102 [DEBUG][       Thread-252113][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 10:48:31,121 [ INFO][       Thread-252113][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 10:48:31,121 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 10:48:31,121 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 10:48:31,263 [DEBUG][Thread-252115 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:48:32,130 [DEBUG][       Thread-252113][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 10:48:32,130 [DEBUG][       Thread-252113][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 10:48:32,181 [DEBUG][       Thread-252113][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 10:48:32,181 [DEBUG][       Thread-252113][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 10:48:32,190 [DEBUG][       Thread-252113][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 10:48:32,198 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 10:48:32,198 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 10:48:32,206 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 10:48:32,214 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 10:48:32,214 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 10:48:32,214 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 10:48:32,222 [DEBUG][       Thread-252113][   transport.py][1871] : EOF in transport thread
2025-06-13 10:48:36,533 [DEBUG][Thread-252116 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:48:37,615 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:48:37,616 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:48:40,282 [DEBUG][Thread-252117 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:48:42,224 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 10:48:42,224 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 10:48:42,224 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 10:48:42,227 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 10:48:42,681 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 10, 48, 31), 10.28, 48.84, 0.0, 17.57, 9.67, 0, 0, 0, 2, 0, 0),)
2025-06-13 10:48:42,681 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 10:48:31
2025-06-13 10:48:42,761 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 10:48:42,768 [DEBUG][       Thread-252118][   transport.py][1871] : starting thread (client mode): 0x863be920
2025-06-13 10:48:42,768 [DEBUG][       Thread-252118][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 10:48:42,790 [DEBUG][       Thread-252118][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 10:48:42,791 [ INFO][       Thread-252118][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 10:48:42,794 [DEBUG][       Thread-252118][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 10:48:42,794 [DEBUG][       Thread-252118][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 10:48:42,795 [DEBUG][       Thread-252118][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 10:48:42,795 [DEBUG][       Thread-252118][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:48:42,795 [DEBUG][       Thread-252118][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:48:42,795 [DEBUG][       Thread-252118][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:48:42,795 [DEBUG][       Thread-252118][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:48:42,795 [DEBUG][       Thread-252118][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 10:48:42,795 [DEBUG][       Thread-252118][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 10:48:42,795 [DEBUG][       Thread-252118][   transport.py][1871] : client lang: <none>
2025-06-13 10:48:42,795 [DEBUG][       Thread-252118][   transport.py][1871] : server lang: <none>
2025-06-13 10:48:42,795 [DEBUG][       Thread-252118][   transport.py][1871] : kex follows: False
2025-06-13 10:48:42,795 [DEBUG][       Thread-252118][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 10:48:42,795 [DEBUG][       Thread-252118][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 10:48:42,795 [DEBUG][       Thread-252118][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 10:48:42,795 [DEBUG][       Thread-252118][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 10:48:42,795 [DEBUG][       Thread-252118][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 10:48:42,795 [DEBUG][       Thread-252118][   transport.py][1871] : Compression: none
2025-06-13 10:48:42,795 [DEBUG][       Thread-252118][   transport.py][1871] : === End of kex handshake ===
2025-06-13 10:48:42,813 [DEBUG][       Thread-252118][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 10:48:42,813 [DEBUG][       Thread-252118][   transport.py][1871] : Switch to new keys ...
2025-06-13 10:48:42,814 [DEBUG][       Thread-252118][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 10:48:42,814 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 10:48:42,814 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 10:48:42,815 [DEBUG][       Thread-252118][   transport.py][1871] : userauth is OK
2025-06-13 10:48:42,828 [ INFO][       Thread-252118][   transport.py][1871] : Authentication (password) successful!
2025-06-13 10:48:42,829 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 10:48:43,474 [DEBUG][       Thread-252118][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 10:48:43,475 [DEBUG][       Thread-252118][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 10:48:43,521 [DEBUG][       Thread-252118][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 10:48:43,521 [DEBUG][       Thread-252118][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 10:48:43,524 [DEBUG][       Thread-252118][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 10:48:43,536 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 10:48:43,536 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 10:48:43,538 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 10:48:43,540 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 10:48:43,545 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 10:48:43,547 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 10:48:43,547 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 10:48:43,548 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 10:48:43,548 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.366606 -999.00   +9.20  19.58     53   +0.30 1 1 1 1 1   887    0 8.98 1.09 ----- 19.7 19.6 51.4 23.0 14.2 -28.4 12.8 -29.5 11.8 -27.9 13.1 -26.7
2025-06-13 10:48:43,548 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 10:48:43,548 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 10:48:43,548 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.366606
2025-06-13 10:48:43,548 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 10:48:43,549 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 10:48:43,549 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 10:48:43,549 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 10:48:43,549 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 10:48:43,549 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T10:48:31', tmtdew=10.28, humidity=48.84, cloud=0.0, wind=17.57, temperature=9.67, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T08:47:54.758', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 10:48:43,550 [DEBUG][       Thread-252118][   transport.py][1871] : EOF in transport thread
2025-06-13 10:48:43,632 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 10:48:43,643 [DEBUG][       Thread-252121][   transport.py][1871] : starting thread (client mode): 0x863a46a0
2025-06-13 10:48:43,643 [DEBUG][       Thread-252121][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 10:48:43,659 [DEBUG][       Thread-252121][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 10:48:43,659 [ INFO][       Thread-252121][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 10:48:43,670 [DEBUG][       Thread-252121][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 10:48:43,670 [DEBUG][       Thread-252121][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 10:48:43,670 [DEBUG][       Thread-252121][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 10:48:43,670 [DEBUG][       Thread-252121][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:48:43,670 [DEBUG][       Thread-252121][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:48:43,670 [DEBUG][       Thread-252121][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:48:43,670 [DEBUG][       Thread-252121][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:48:43,670 [DEBUG][       Thread-252121][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 10:48:43,670 [DEBUG][       Thread-252121][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 10:48:43,670 [DEBUG][       Thread-252121][   transport.py][1871] : client lang: <none>
2025-06-13 10:48:43,670 [DEBUG][       Thread-252121][   transport.py][1871] : server lang: <none>
2025-06-13 10:48:43,670 [DEBUG][       Thread-252121][   transport.py][1871] : kex follows: False
2025-06-13 10:48:43,670 [DEBUG][       Thread-252121][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 10:48:43,670 [DEBUG][       Thread-252121][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 10:48:43,670 [DEBUG][       Thread-252121][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 10:48:43,670 [DEBUG][       Thread-252121][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 10:48:43,671 [DEBUG][       Thread-252121][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 10:48:43,671 [DEBUG][       Thread-252121][   transport.py][1871] : Compression: none
2025-06-13 10:48:43,671 [DEBUG][       Thread-252121][   transport.py][1871] : === End of kex handshake ===
2025-06-13 10:48:43,727 [DEBUG][       Thread-252121][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 10:48:43,728 [DEBUG][       Thread-252121][   transport.py][1871] : Switch to new keys ...
2025-06-13 10:48:43,728 [DEBUG][       Thread-252121][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 10:48:43,729 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 10:48:43,729 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 10:48:43,786 [DEBUG][       Thread-252121][   transport.py][1871] : userauth is OK
2025-06-13 10:48:43,786 [DEBUG][       Thread-252121][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 10:48:43,786 [DEBUG][       Thread-252121][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 10:48:43,786 [DEBUG][       Thread-252121][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 10:48:43,787 [DEBUG][       Thread-252121][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 10:48:43,808 [ INFO][       Thread-252121][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 10:48:43,808 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 10:48:43,808 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 10:48:44,830 [DEBUG][       Thread-252121][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 10:48:44,830 [DEBUG][       Thread-252121][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 10:48:44,880 [DEBUG][       Thread-252121][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 10:48:44,880 [DEBUG][       Thread-252121][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 10:48:44,889 [DEBUG][       Thread-252121][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 10:48:44,897 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 10:48:44,898 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 10:48:44,906 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 10:48:44,915 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 10:48:44,915 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 10:48:44,916 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 10:48:44,923 [DEBUG][       Thread-252121][   transport.py][1871] : EOF in transport thread
2025-06-13 10:48:49,303 [DEBUG][Thread-252123 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:48:54,926 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 10:48:54,926 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 10:48:54,926 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 10:48:54,929 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 10:48:55,377 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 10, 48, 31), 10.28, 48.84, 0.0, 17.57, 9.67, 0, 0, 0, 2, 0, 0),)
2025-06-13 10:48:55,377 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 10:48:31
2025-06-13 10:48:55,457 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 10:48:55,461 [DEBUG][       Thread-252124][   transport.py][1871] : starting thread (client mode): 0x84204b80
2025-06-13 10:48:55,461 [DEBUG][       Thread-252124][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 10:48:55,480 [DEBUG][       Thread-252124][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 10:48:55,480 [ INFO][       Thread-252124][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 10:48:55,484 [DEBUG][       Thread-252124][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 10:48:55,484 [DEBUG][       Thread-252124][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 10:48:55,484 [DEBUG][       Thread-252124][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 10:48:55,484 [DEBUG][       Thread-252124][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:48:55,484 [DEBUG][       Thread-252124][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:48:55,484 [DEBUG][       Thread-252124][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:48:55,484 [DEBUG][       Thread-252124][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:48:55,484 [DEBUG][       Thread-252124][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 10:48:55,484 [DEBUG][       Thread-252124][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 10:48:55,484 [DEBUG][       Thread-252124][   transport.py][1871] : client lang: <none>
2025-06-13 10:48:55,484 [DEBUG][       Thread-252124][   transport.py][1871] : server lang: <none>
2025-06-13 10:48:55,484 [DEBUG][       Thread-252124][   transport.py][1871] : kex follows: False
2025-06-13 10:48:55,484 [DEBUG][       Thread-252124][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 10:48:55,484 [DEBUG][       Thread-252124][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 10:48:55,484 [DEBUG][       Thread-252124][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 10:48:55,484 [DEBUG][       Thread-252124][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 10:48:55,484 [DEBUG][       Thread-252124][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 10:48:55,484 [DEBUG][       Thread-252124][   transport.py][1871] : Compression: none
2025-06-13 10:48:55,484 [DEBUG][       Thread-252124][   transport.py][1871] : === End of kex handshake ===
2025-06-13 10:48:55,502 [DEBUG][       Thread-252124][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 10:48:55,503 [DEBUG][       Thread-252124][   transport.py][1871] : Switch to new keys ...
2025-06-13 10:48:55,503 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 10:48:55,503 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 10:48:55,504 [DEBUG][       Thread-252124][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 10:48:55,505 [DEBUG][       Thread-252124][   transport.py][1871] : userauth is OK
2025-06-13 10:48:55,529 [ INFO][       Thread-252124][   transport.py][1871] : Authentication (password) successful!
2025-06-13 10:48:55,530 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 10:48:56,173 [DEBUG][       Thread-252124][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 10:48:56,173 [DEBUG][       Thread-252124][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 10:48:56,217 [DEBUG][       Thread-252124][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 10:48:56,217 [DEBUG][       Thread-252124][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 10:48:56,220 [DEBUG][       Thread-252124][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 10:48:56,232 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 10:48:56,233 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 10:48:56,234 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 10:48:56,236 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 10:48:56,242 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 10:48:56,244 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 10:48:56,244 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 10:48:56,244 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 10:48:56,245 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.366953 -999.00   +9.20  22.05     54   +0.40 1 1 1 1 1   887    0 9.00 0.28 ----- 20.0 22.1 44.6 24.5 14.2 -29.4 12.9 -30.7 11.8 -29.2 13.1 -27.3
2025-06-13 10:48:56,245 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 10:48:56,245 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 10:48:56,245 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.366953
2025-06-13 10:48:56,245 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 10:48:56,246 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 10:48:56,246 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 10:48:56,246 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 10:48:56,246 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 10:48:56,246 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T10:48:31', tmtdew=10.28, humidity=48.84, cloud=0.0, wind=17.57, temperature=9.67, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T08:48:24.739', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 10:48:56,247 [DEBUG][       Thread-252124][   transport.py][1871] : EOF in transport thread
2025-06-13 10:48:56,320 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 10:48:56,334 [DEBUG][       Thread-252127][   transport.py][1871] : starting thread (client mode): 0x8636a830
2025-06-13 10:48:56,334 [DEBUG][       Thread-252127][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 10:48:56,353 [DEBUG][       Thread-252127][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 10:48:56,353 [ INFO][       Thread-252127][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 10:48:56,361 [DEBUG][       Thread-252127][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 10:48:56,362 [DEBUG][       Thread-252127][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 10:48:56,362 [DEBUG][       Thread-252127][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 10:48:56,362 [DEBUG][       Thread-252127][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:48:56,362 [DEBUG][       Thread-252127][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:48:56,362 [DEBUG][       Thread-252127][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:48:56,362 [DEBUG][       Thread-252127][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:48:56,362 [DEBUG][       Thread-252127][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 10:48:56,362 [DEBUG][       Thread-252127][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 10:48:56,362 [DEBUG][       Thread-252127][   transport.py][1871] : client lang: <none>
2025-06-13 10:48:56,362 [DEBUG][       Thread-252127][   transport.py][1871] : server lang: <none>
2025-06-13 10:48:56,362 [DEBUG][       Thread-252127][   transport.py][1871] : kex follows: False
2025-06-13 10:48:56,362 [DEBUG][       Thread-252127][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 10:48:56,362 [DEBUG][       Thread-252127][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 10:48:56,362 [DEBUG][       Thread-252127][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 10:48:56,362 [DEBUG][       Thread-252127][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 10:48:56,363 [DEBUG][       Thread-252127][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 10:48:56,363 [DEBUG][       Thread-252127][   transport.py][1871] : Compression: none
2025-06-13 10:48:56,363 [DEBUG][       Thread-252127][   transport.py][1871] : === End of kex handshake ===
2025-06-13 10:48:56,418 [DEBUG][       Thread-252127][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 10:48:56,419 [DEBUG][       Thread-252127][   transport.py][1871] : Switch to new keys ...
2025-06-13 10:48:56,419 [DEBUG][       Thread-252127][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 10:48:56,420 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 10:48:56,420 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 10:48:56,475 [DEBUG][       Thread-252127][   transport.py][1871] : userauth is OK
2025-06-13 10:48:56,475 [DEBUG][       Thread-252127][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 10:48:56,475 [DEBUG][       Thread-252127][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 10:48:56,476 [DEBUG][       Thread-252127][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 10:48:56,476 [DEBUG][       Thread-252127][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 10:48:56,497 [ INFO][       Thread-252127][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 10:48:56,497 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 10:48:56,498 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 10:48:57,470 [DEBUG][       Thread-252127][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 10:48:57,470 [DEBUG][       Thread-252127][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 10:48:57,528 [DEBUG][       Thread-252127][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 10:48:57,528 [DEBUG][       Thread-252127][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 10:48:57,536 [DEBUG][       Thread-252127][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 10:48:57,544 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 10:48:57,544 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 10:48:57,557 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 10:48:57,565 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 10:48:57,565 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 10:48:57,566 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 10:48:57,573 [DEBUG][       Thread-252127][   transport.py][1871] : EOF in transport thread
2025-06-13 10:48:58,334 [DEBUG][Thread-252129 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:49:07,298 [DEBUG][Thread-252130 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:49:07,351 [DEBUG][Thread-252131 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:49:07,567 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 10:49:07,567 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 10:49:07,567 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 10:49:07,570 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 10:49:08,028 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 10, 49, 2), 10.23, 48.97, 0.0, 18.37, 9.6, 0, 0, 0, 2, 0, 0),)
2025-06-13 10:49:08,028 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 10:49:02
2025-06-13 10:49:08,109 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 10:49:08,115 [DEBUG][       Thread-252132][   transport.py][1871] : starting thread (client mode): 0x863bc310
2025-06-13 10:49:08,115 [DEBUG][       Thread-252132][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 10:49:08,135 [DEBUG][       Thread-252132][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 10:49:08,135 [ INFO][       Thread-252132][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 10:49:08,138 [DEBUG][       Thread-252132][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 10:49:08,138 [DEBUG][       Thread-252132][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 10:49:08,138 [DEBUG][       Thread-252132][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 10:49:08,138 [DEBUG][       Thread-252132][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:49:08,138 [DEBUG][       Thread-252132][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:49:08,138 [DEBUG][       Thread-252132][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:49:08,138 [DEBUG][       Thread-252132][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:49:08,139 [DEBUG][       Thread-252132][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 10:49:08,139 [DEBUG][       Thread-252132][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 10:49:08,139 [DEBUG][       Thread-252132][   transport.py][1871] : client lang: <none>
2025-06-13 10:49:08,139 [DEBUG][       Thread-252132][   transport.py][1871] : server lang: <none>
2025-06-13 10:49:08,139 [DEBUG][       Thread-252132][   transport.py][1871] : kex follows: False
2025-06-13 10:49:08,139 [DEBUG][       Thread-252132][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 10:49:08,139 [DEBUG][       Thread-252132][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 10:49:08,139 [DEBUG][       Thread-252132][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 10:49:08,139 [DEBUG][       Thread-252132][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 10:49:08,139 [DEBUG][       Thread-252132][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 10:49:08,139 [DEBUG][       Thread-252132][   transport.py][1871] : Compression: none
2025-06-13 10:49:08,139 [DEBUG][       Thread-252132][   transport.py][1871] : === End of kex handshake ===
2025-06-13 10:49:08,155 [DEBUG][       Thread-252132][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 10:49:08,155 [DEBUG][       Thread-252132][   transport.py][1871] : Switch to new keys ...
2025-06-13 10:49:08,156 [DEBUG][       Thread-252132][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 10:49:08,156 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 10:49:08,156 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 10:49:08,157 [DEBUG][       Thread-252132][   transport.py][1871] : userauth is OK
2025-06-13 10:49:08,182 [ INFO][       Thread-252132][   transport.py][1871] : Authentication (password) successful!
2025-06-13 10:49:08,183 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 10:49:08,820 [DEBUG][       Thread-252132][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 10:49:08,820 [DEBUG][       Thread-252132][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 10:49:08,861 [DEBUG][       Thread-252132][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 10:49:08,861 [DEBUG][       Thread-252132][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 10:49:08,864 [DEBUG][       Thread-252132][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 10:49:08,875 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 10:49:08,875 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 10:49:08,877 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 10:49:08,879 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 10:49:08,884 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 10:49:08,886 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 10:49:08,886 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 10:49:08,887 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 10:49:08,887 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.366953 -999.00   +9.20  22.05     54   +0.40 1 1 1 1 1   887    0 9.00 0.28 ----- 20.0 22.1 44.6 24.5 14.2 -29.4 12.9 -30.7 11.8 -29.2 13.1 -27.3
2025-06-13 10:49:08,887 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 10:49:08,887 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 10:49:08,887 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.366953
2025-06-13 10:49:08,888 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 10:49:08,888 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 10:49:08,888 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 10:49:08,888 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 10:49:08,888 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 10:49:08,889 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T10:49:02', tmtdew=10.23, humidity=48.97, cloud=0.0, wind=18.37, temperature=9.6, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T08:48:24.739', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 10:49:08,889 [DEBUG][       Thread-252132][   transport.py][1871] : EOF in transport thread
2025-06-13 10:49:08,973 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 10:49:08,985 [DEBUG][       Thread-252135][   transport.py][1871] : starting thread (client mode): 0x863a6bf0
2025-06-13 10:49:08,986 [DEBUG][       Thread-252135][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 10:49:09,007 [DEBUG][       Thread-252135][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 10:49:09,007 [ INFO][       Thread-252135][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 10:49:09,014 [DEBUG][       Thread-252135][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 10:49:09,015 [DEBUG][       Thread-252135][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 10:49:09,015 [DEBUG][       Thread-252135][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 10:49:09,015 [DEBUG][       Thread-252135][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:49:09,015 [DEBUG][       Thread-252135][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:49:09,015 [DEBUG][       Thread-252135][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:49:09,015 [DEBUG][       Thread-252135][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:49:09,015 [DEBUG][       Thread-252135][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 10:49:09,015 [DEBUG][       Thread-252135][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 10:49:09,015 [DEBUG][       Thread-252135][   transport.py][1871] : client lang: <none>
2025-06-13 10:49:09,015 [DEBUG][       Thread-252135][   transport.py][1871] : server lang: <none>
2025-06-13 10:49:09,015 [DEBUG][       Thread-252135][   transport.py][1871] : kex follows: False
2025-06-13 10:49:09,015 [DEBUG][       Thread-252135][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 10:49:09,015 [DEBUG][       Thread-252135][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 10:49:09,015 [DEBUG][       Thread-252135][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 10:49:09,016 [DEBUG][       Thread-252135][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 10:49:09,016 [DEBUG][       Thread-252135][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 10:49:09,016 [DEBUG][       Thread-252135][   transport.py][1871] : Compression: none
2025-06-13 10:49:09,016 [DEBUG][       Thread-252135][   transport.py][1871] : === End of kex handshake ===
2025-06-13 10:49:09,074 [DEBUG][       Thread-252135][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 10:49:09,075 [DEBUG][       Thread-252135][   transport.py][1871] : Switch to new keys ...
2025-06-13 10:49:09,075 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 10:49:09,076 [DEBUG][       Thread-252135][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 10:49:09,077 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 10:49:09,138 [DEBUG][       Thread-252135][   transport.py][1871] : userauth is OK
2025-06-13 10:49:09,138 [DEBUG][       Thread-252135][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 10:49:09,138 [DEBUG][       Thread-252135][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 10:49:09,138 [DEBUG][       Thread-252135][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 10:49:09,138 [DEBUG][       Thread-252135][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 10:49:09,157 [ INFO][       Thread-252135][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 10:49:09,157 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 10:49:09,158 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 10:49:10,187 [DEBUG][       Thread-252135][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 10:49:10,187 [DEBUG][       Thread-252135][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 10:49:10,236 [DEBUG][       Thread-252135][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 10:49:10,236 [DEBUG][       Thread-252135][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 10:49:10,245 [DEBUG][       Thread-252135][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 10:49:10,254 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 10:49:10,254 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 10:49:10,262 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 10:49:10,271 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 10:49:10,271 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 10:49:10,272 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 10:49:10,279 [DEBUG][       Thread-252135][   transport.py][1871] : EOF in transport thread
2025-06-13 10:49:16,369 [DEBUG][Thread-252137 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:49:20,280 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 10:49:20,280 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 10:49:20,280 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 10:49:20,281 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 10:49:20,729 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 10, 49, 2), 10.23, 48.97, 0.0, 18.37, 9.6, 0, 0, 0, 2, 0, 0),)
2025-06-13 10:49:20,729 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 10:49:02
2025-06-13 10:49:20,811 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 10:49:20,815 [DEBUG][       Thread-252138][   transport.py][1871] : starting thread (client mode): 0x86369ff0
2025-06-13 10:49:20,815 [DEBUG][       Thread-252138][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 10:49:20,835 [DEBUG][       Thread-252138][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 10:49:20,835 [ INFO][       Thread-252138][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 10:49:20,837 [DEBUG][       Thread-252138][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 10:49:20,837 [DEBUG][       Thread-252138][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 10:49:20,837 [DEBUG][       Thread-252138][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 10:49:20,837 [DEBUG][       Thread-252138][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:49:20,837 [DEBUG][       Thread-252138][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:49:20,837 [DEBUG][       Thread-252138][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:49:20,837 [DEBUG][       Thread-252138][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:49:20,837 [DEBUG][       Thread-252138][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 10:49:20,837 [DEBUG][       Thread-252138][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 10:49:20,838 [DEBUG][       Thread-252138][   transport.py][1871] : client lang: <none>
2025-06-13 10:49:20,838 [DEBUG][       Thread-252138][   transport.py][1871] : server lang: <none>
2025-06-13 10:49:20,838 [DEBUG][       Thread-252138][   transport.py][1871] : kex follows: False
2025-06-13 10:49:20,838 [DEBUG][       Thread-252138][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 10:49:20,838 [DEBUG][       Thread-252138][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 10:49:20,838 [DEBUG][       Thread-252138][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 10:49:20,838 [DEBUG][       Thread-252138][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 10:49:20,838 [DEBUG][       Thread-252138][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 10:49:20,838 [DEBUG][       Thread-252138][   transport.py][1871] : Compression: none
2025-06-13 10:49:20,838 [DEBUG][       Thread-252138][   transport.py][1871] : === End of kex handshake ===
2025-06-13 10:49:20,855 [DEBUG][       Thread-252138][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 10:49:20,855 [DEBUG][       Thread-252138][   transport.py][1871] : Switch to new keys ...
2025-06-13 10:49:20,856 [DEBUG][       Thread-252138][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 10:49:20,856 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 10:49:20,856 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 10:49:20,857 [DEBUG][       Thread-252138][   transport.py][1871] : userauth is OK
2025-06-13 10:49:20,870 [ INFO][       Thread-252138][   transport.py][1871] : Authentication (password) successful!
2025-06-13 10:49:20,871 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 10:49:21,490 [DEBUG][       Thread-252138][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 10:49:21,491 [DEBUG][       Thread-252138][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 10:49:21,533 [DEBUG][       Thread-252138][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 10:49:21,533 [DEBUG][       Thread-252138][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 10:49:21,536 [DEBUG][       Thread-252138][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 10:49:21,547 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 10:49:21,547 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 10:49:21,549 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 10:49:21,551 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 10:49:21,556 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 10:49:21,558 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 10:49:21,558 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 10:49:21,558 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 10:49:21,559 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.366953 -999.00   +9.20  22.05     54   +0.40 1 1 1 1 1   887    0 9.00 0.28 ----- 20.0 22.1 44.6 24.5 14.2 -29.4 12.9 -30.7 11.8 -29.2 13.1 -27.3
2025-06-13 10:49:21,559 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 10:49:21,559 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 10:49:21,559 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.366953
2025-06-13 10:49:21,559 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 10:49:21,560 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 10:49:21,560 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 10:49:21,560 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 10:49:21,560 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 10:49:21,560 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T10:49:02', tmtdew=10.23, humidity=48.97, cloud=0.0, wind=18.37, temperature=9.6, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T08:48:24.739', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 10:49:21,560 [DEBUG][       Thread-252138][   transport.py][1871] : EOF in transport thread
2025-06-13 10:49:21,645 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 10:49:21,654 [DEBUG][       Thread-252141][   transport.py][1871] : starting thread (client mode): 0x867ffdc0
2025-06-13 10:49:21,654 [DEBUG][       Thread-252141][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 10:49:21,669 [DEBUG][       Thread-252141][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 10:49:21,669 [ INFO][       Thread-252141][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 10:49:21,676 [DEBUG][       Thread-252141][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 10:49:21,676 [DEBUG][       Thread-252141][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 10:49:21,676 [DEBUG][       Thread-252141][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 10:49:21,676 [DEBUG][       Thread-252141][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:49:21,676 [DEBUG][       Thread-252141][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:49:21,676 [DEBUG][       Thread-252141][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:49:21,676 [DEBUG][       Thread-252141][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:49:21,676 [DEBUG][       Thread-252141][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 10:49:21,676 [DEBUG][       Thread-252141][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 10:49:21,676 [DEBUG][       Thread-252141][   transport.py][1871] : client lang: <none>
2025-06-13 10:49:21,676 [DEBUG][       Thread-252141][   transport.py][1871] : server lang: <none>
2025-06-13 10:49:21,677 [DEBUG][       Thread-252141][   transport.py][1871] : kex follows: False
2025-06-13 10:49:21,677 [DEBUG][       Thread-252141][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 10:49:21,677 [DEBUG][       Thread-252141][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 10:49:21,677 [DEBUG][       Thread-252141][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 10:49:21,677 [DEBUG][       Thread-252141][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 10:49:21,677 [DEBUG][       Thread-252141][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 10:49:21,677 [DEBUG][       Thread-252141][   transport.py][1871] : Compression: none
2025-06-13 10:49:21,677 [DEBUG][       Thread-252141][   transport.py][1871] : === End of kex handshake ===
2025-06-13 10:49:21,733 [DEBUG][       Thread-252141][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 10:49:21,734 [DEBUG][       Thread-252141][   transport.py][1871] : Switch to new keys ...
2025-06-13 10:49:21,734 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 10:49:21,735 [DEBUG][       Thread-252141][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 10:49:21,736 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 10:49:21,790 [DEBUG][       Thread-252141][   transport.py][1871] : userauth is OK
2025-06-13 10:49:21,790 [DEBUG][       Thread-252141][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 10:49:21,790 [DEBUG][       Thread-252141][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 10:49:21,790 [DEBUG][       Thread-252141][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 10:49:21,790 [DEBUG][       Thread-252141][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 10:49:21,809 [ INFO][       Thread-252141][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 10:49:21,810 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 10:49:21,810 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 10:49:22,809 [DEBUG][       Thread-252141][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 10:49:22,809 [DEBUG][       Thread-252141][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 10:49:22,859 [DEBUG][       Thread-252141][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 10:49:22,860 [DEBUG][       Thread-252141][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 10:49:22,871 [DEBUG][       Thread-252141][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 10:49:22,879 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 10:49:22,880 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 10:49:22,888 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 10:49:22,897 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 10:49:22,898 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 10:49:22,898 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 10:49:22,906 [DEBUG][       Thread-252141][   transport.py][1871] : EOF in transport thread
2025-06-13 10:49:25,407 [DEBUG][Thread-252143 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:49:29,526 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:49:29,527 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:49:32,908 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 10:49:32,909 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 10:49:32,909 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 10:49:32,911 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 10:49:33,374 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 10, 49, 2), 10.23, 48.97, 0.0, 18.37, 9.6, 0, 0, 0, 2, 0, 0),)
2025-06-13 10:49:33,374 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 10:49:02
2025-06-13 10:49:33,455 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 10:49:33,460 [DEBUG][       Thread-252144][   transport.py][1871] : starting thread (client mode): 0x863bc310
2025-06-13 10:49:33,461 [DEBUG][       Thread-252144][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 10:49:33,481 [DEBUG][       Thread-252144][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 10:49:33,482 [ INFO][       Thread-252144][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 10:49:33,485 [DEBUG][       Thread-252144][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 10:49:33,485 [DEBUG][       Thread-252144][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 10:49:33,485 [DEBUG][       Thread-252144][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 10:49:33,485 [DEBUG][       Thread-252144][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:49:33,485 [DEBUG][       Thread-252144][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:49:33,485 [DEBUG][       Thread-252144][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:49:33,485 [DEBUG][       Thread-252144][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:49:33,485 [DEBUG][       Thread-252144][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 10:49:33,485 [DEBUG][       Thread-252144][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 10:49:33,485 [DEBUG][       Thread-252144][   transport.py][1871] : client lang: <none>
2025-06-13 10:49:33,485 [DEBUG][       Thread-252144][   transport.py][1871] : server lang: <none>
2025-06-13 10:49:33,485 [DEBUG][       Thread-252144][   transport.py][1871] : kex follows: False
2025-06-13 10:49:33,485 [DEBUG][       Thread-252144][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 10:49:33,485 [DEBUG][       Thread-252144][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 10:49:33,485 [DEBUG][       Thread-252144][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 10:49:33,485 [DEBUG][       Thread-252144][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 10:49:33,485 [DEBUG][       Thread-252144][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 10:49:33,485 [DEBUG][       Thread-252144][   transport.py][1871] : Compression: none
2025-06-13 10:49:33,485 [DEBUG][       Thread-252144][   transport.py][1871] : === End of kex handshake ===
2025-06-13 10:49:33,502 [DEBUG][       Thread-252144][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 10:49:33,503 [DEBUG][       Thread-252144][   transport.py][1871] : Switch to new keys ...
2025-06-13 10:49:33,503 [DEBUG][       Thread-252144][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 10:49:33,504 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 10:49:33,504 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 10:49:33,505 [DEBUG][       Thread-252144][   transport.py][1871] : userauth is OK
2025-06-13 10:49:33,518 [ INFO][       Thread-252144][   transport.py][1871] : Authentication (password) successful!
2025-06-13 10:49:33,518 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 10:49:34,123 [DEBUG][       Thread-252144][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 10:49:34,123 [DEBUG][       Thread-252144][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 10:49:34,165 [DEBUG][       Thread-252144][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 10:49:34,165 [DEBUG][       Thread-252144][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 10:49:34,168 [DEBUG][       Thread-252144][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 10:49:34,179 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 10:49:34,179 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 10:49:34,181 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 10:49:34,183 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 10:49:34,187 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 10:49:34,189 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 10:49:34,189 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 10:49:34,190 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 10:49:34,190 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.367301 -999.00   +9.20  19.51     54   +0.50 1 1 1 1 1   887    0 8.82 -1.58 ----- 24.4 19.5 48.4 22.2 14.2 -28.4 12.8 -30.1 11.8 -28.5 13.1 -26.5
2025-06-13 10:49:34,190 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 10:49:34,190 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 10:49:34,190 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.367301
2025-06-13 10:49:34,191 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 10:49:34,191 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 10:49:34,191 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 10:49:34,191 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 10:49:34,191 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 10:49:34,191 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T10:49:02', tmtdew=10.23, humidity=48.97, cloud=0.0, wind=18.37, temperature=9.6, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T08:48:54.806', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 10:49:34,192 [DEBUG][       Thread-252144][   transport.py][1871] : EOF in transport thread
2025-06-13 10:49:34,268 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 10:49:34,279 [DEBUG][       Thread-252147][   transport.py][1871] : starting thread (client mode): 0x867b6530
2025-06-13 10:49:34,279 [DEBUG][       Thread-252147][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 10:49:34,294 [DEBUG][       Thread-252147][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 10:49:34,295 [ INFO][       Thread-252147][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 10:49:34,302 [DEBUG][       Thread-252147][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 10:49:34,302 [DEBUG][       Thread-252147][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 10:49:34,302 [DEBUG][       Thread-252147][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 10:49:34,302 [DEBUG][       Thread-252147][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:49:34,302 [DEBUG][       Thread-252147][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:49:34,302 [DEBUG][       Thread-252147][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:49:34,302 [DEBUG][       Thread-252147][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:49:34,302 [DEBUG][       Thread-252147][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 10:49:34,302 [DEBUG][       Thread-252147][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 10:49:34,302 [DEBUG][       Thread-252147][   transport.py][1871] : client lang: <none>
2025-06-13 10:49:34,303 [DEBUG][       Thread-252147][   transport.py][1871] : server lang: <none>
2025-06-13 10:49:34,303 [DEBUG][       Thread-252147][   transport.py][1871] : kex follows: False
2025-06-13 10:49:34,303 [DEBUG][       Thread-252147][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 10:49:34,303 [DEBUG][       Thread-252147][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 10:49:34,303 [DEBUG][       Thread-252147][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 10:49:34,303 [DEBUG][       Thread-252147][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 10:49:34,303 [DEBUG][       Thread-252147][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 10:49:34,303 [DEBUG][       Thread-252147][   transport.py][1871] : Compression: none
2025-06-13 10:49:34,303 [DEBUG][       Thread-252147][   transport.py][1871] : === End of kex handshake ===
2025-06-13 10:49:34,369 [DEBUG][       Thread-252147][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 10:49:34,370 [DEBUG][       Thread-252147][   transport.py][1871] : Switch to new keys ...
2025-06-13 10:49:34,370 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 10:49:34,371 [DEBUG][       Thread-252147][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 10:49:34,372 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 10:49:34,426 [DEBUG][Thread-252149 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:49:34,430 [DEBUG][       Thread-252147][   transport.py][1871] : userauth is OK
2025-06-13 10:49:34,430 [DEBUG][       Thread-252147][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 10:49:34,430 [DEBUG][       Thread-252147][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 10:49:34,430 [DEBUG][       Thread-252147][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 10:49:34,430 [DEBUG][       Thread-252147][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 10:49:34,450 [ INFO][       Thread-252147][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 10:49:34,451 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 10:49:34,451 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 10:49:35,461 [DEBUG][       Thread-252147][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 10:49:35,461 [DEBUG][       Thread-252147][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 10:49:35,515 [DEBUG][       Thread-252147][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 10:49:35,515 [DEBUG][       Thread-252147][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 10:49:35,524 [DEBUG][       Thread-252147][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 10:49:35,532 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 10:49:35,532 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 10:49:35,540 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 10:49:35,550 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 10:49:35,550 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 10:49:35,551 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 10:49:35,558 [DEBUG][       Thread-252147][   transport.py][1871] : EOF in transport thread
2025-06-13 10:49:37,696 [DEBUG][Thread-252150 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:49:38,747 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:49:38,748 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:49:43,444 [DEBUG][Thread-252151 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:49:45,561 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 10:49:45,561 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 10:49:45,561 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 10:49:45,564 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 10:49:46,025 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 10, 49, 34), 10.25, 48.69, 0.0, 18.67, 9.65, 0, 0, 0, 2, 0, 0),)
2025-06-13 10:49:46,025 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 10:49:34
2025-06-13 10:49:46,106 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 10:49:46,113 [DEBUG][       Thread-252152][   transport.py][1871] : starting thread (client mode): 0x863bd600
2025-06-13 10:49:46,113 [DEBUG][       Thread-252152][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 10:49:46,133 [DEBUG][       Thread-252152][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 10:49:46,133 [ INFO][       Thread-252152][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 10:49:46,137 [DEBUG][       Thread-252152][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 10:49:46,137 [DEBUG][       Thread-252152][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 10:49:46,137 [DEBUG][       Thread-252152][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 10:49:46,137 [DEBUG][       Thread-252152][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:49:46,137 [DEBUG][       Thread-252152][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:49:46,137 [DEBUG][       Thread-252152][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:49:46,137 [DEBUG][       Thread-252152][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:49:46,137 [DEBUG][       Thread-252152][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 10:49:46,137 [DEBUG][       Thread-252152][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 10:49:46,137 [DEBUG][       Thread-252152][   transport.py][1871] : client lang: <none>
2025-06-13 10:49:46,137 [DEBUG][       Thread-252152][   transport.py][1871] : server lang: <none>
2025-06-13 10:49:46,137 [DEBUG][       Thread-252152][   transport.py][1871] : kex follows: False
2025-06-13 10:49:46,137 [DEBUG][       Thread-252152][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 10:49:46,137 [DEBUG][       Thread-252152][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 10:49:46,137 [DEBUG][       Thread-252152][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 10:49:46,137 [DEBUG][       Thread-252152][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 10:49:46,137 [DEBUG][       Thread-252152][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 10:49:46,137 [DEBUG][       Thread-252152][   transport.py][1871] : Compression: none
2025-06-13 10:49:46,137 [DEBUG][       Thread-252152][   transport.py][1871] : === End of kex handshake ===
2025-06-13 10:49:46,154 [DEBUG][       Thread-252152][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 10:49:46,155 [DEBUG][       Thread-252152][   transport.py][1871] : Switch to new keys ...
2025-06-13 10:49:46,155 [DEBUG][       Thread-252152][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 10:49:46,155 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 10:49:46,156 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 10:49:46,157 [DEBUG][       Thread-252152][   transport.py][1871] : userauth is OK
2025-06-13 10:49:46,170 [ INFO][       Thread-252152][   transport.py][1871] : Authentication (password) successful!
2025-06-13 10:49:46,171 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 10:49:46,832 [DEBUG][       Thread-252152][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 10:49:46,832 [DEBUG][       Thread-252152][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 10:49:46,877 [DEBUG][       Thread-252152][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 10:49:46,877 [DEBUG][       Thread-252152][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 10:49:46,879 [DEBUG][       Thread-252152][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 10:49:46,890 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 10:49:46,891 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 10:49:46,892 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 10:49:46,894 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 10:49:46,898 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 10:49:46,899 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 10:49:46,900 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 10:49:46,900 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 10:49:46,900 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.367301 -999.00   +9.20  19.51     54   +0.50 1 1 1 1 1   887    0 8.82 -1.58 ----- 24.4 19.5 48.4 22.2 14.2 -28.4 12.8 -30.1 11.8 -28.5 13.1 -26.5
2025-06-13 10:49:46,900 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 10:49:46,900 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 10:49:46,900 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.367301
2025-06-13 10:49:46,901 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 10:49:46,901 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 10:49:46,901 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 10:49:46,902 [DEBUG][       Thread-252152][   transport.py][1871] : EOF in transport thread
2025-06-13 10:49:46,902 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 10:49:46,902 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 10:49:46,902 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T10:49:34', tmtdew=10.25, humidity=48.69, cloud=0.0, wind=18.67, temperature=9.65, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T08:48:54.806', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 10:49:46,986 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 10:49:46,997 [DEBUG][       Thread-252155][   transport.py][1871] : starting thread (client mode): 0x867ffac0
2025-06-13 10:49:46,997 [DEBUG][       Thread-252155][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 10:49:47,015 [DEBUG][       Thread-252155][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 10:49:47,015 [ INFO][       Thread-252155][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 10:49:47,023 [DEBUG][       Thread-252155][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 10:49:47,023 [DEBUG][       Thread-252155][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 10:49:47,024 [DEBUG][       Thread-252155][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 10:49:47,024 [DEBUG][       Thread-252155][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:49:47,024 [DEBUG][       Thread-252155][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:49:47,024 [DEBUG][       Thread-252155][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:49:47,024 [DEBUG][       Thread-252155][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:49:47,024 [DEBUG][       Thread-252155][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 10:49:47,024 [DEBUG][       Thread-252155][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 10:49:47,024 [DEBUG][       Thread-252155][   transport.py][1871] : client lang: <none>
2025-06-13 10:49:47,024 [DEBUG][       Thread-252155][   transport.py][1871] : server lang: <none>
2025-06-13 10:49:47,024 [DEBUG][       Thread-252155][   transport.py][1871] : kex follows: False
2025-06-13 10:49:47,024 [DEBUG][       Thread-252155][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 10:49:47,024 [DEBUG][       Thread-252155][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 10:49:47,024 [DEBUG][       Thread-252155][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 10:49:47,024 [DEBUG][       Thread-252155][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 10:49:47,024 [DEBUG][       Thread-252155][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 10:49:47,024 [DEBUG][       Thread-252155][   transport.py][1871] : Compression: none
2025-06-13 10:49:47,024 [DEBUG][       Thread-252155][   transport.py][1871] : === End of kex handshake ===
2025-06-13 10:49:47,085 [DEBUG][       Thread-252155][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 10:49:47,085 [DEBUG][       Thread-252155][   transport.py][1871] : Switch to new keys ...
2025-06-13 10:49:47,085 [DEBUG][       Thread-252155][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 10:49:47,086 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 10:49:47,086 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 10:49:47,146 [DEBUG][       Thread-252155][   transport.py][1871] : userauth is OK
2025-06-13 10:49:47,146 [DEBUG][       Thread-252155][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 10:49:47,146 [DEBUG][       Thread-252155][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 10:49:47,146 [DEBUG][       Thread-252155][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 10:49:47,146 [DEBUG][       Thread-252155][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 10:49:47,167 [ INFO][       Thread-252155][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 10:49:47,168 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 10:49:47,168 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 10:49:48,242 [DEBUG][       Thread-252155][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 10:49:48,242 [DEBUG][       Thread-252155][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 10:49:48,292 [DEBUG][       Thread-252155][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 10:49:48,292 [DEBUG][       Thread-252155][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 10:49:48,301 [DEBUG][       Thread-252155][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 10:49:48,309 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 10:49:48,309 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 10:49:48,317 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 10:49:48,325 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 10:49:48,325 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 10:49:48,325 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 10:49:48,333 [DEBUG][       Thread-252155][   transport.py][1871] : EOF in transport thread
2025-06-13 10:49:52,464 [DEBUG][Thread-252157 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:49:58,335 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 10:49:58,335 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 10:49:58,335 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 10:49:58,338 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 10:49:58,793 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 10, 49, 34), 10.25, 48.69, 0.0, 18.67, 9.65, 0, 0, 0, 2, 0, 0),)
2025-06-13 10:49:58,793 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 10:49:34
2025-06-13 10:49:58,875 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 10:49:58,879 [DEBUG][       Thread-252158][   transport.py][1871] : starting thread (client mode): 0x863bc100
2025-06-13 10:49:58,879 [DEBUG][       Thread-252158][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 10:49:58,900 [DEBUG][       Thread-252158][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 10:49:58,900 [ INFO][       Thread-252158][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 10:49:58,902 [DEBUG][       Thread-252158][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 10:49:58,902 [DEBUG][       Thread-252158][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 10:49:58,902 [DEBUG][       Thread-252158][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 10:49:58,902 [DEBUG][       Thread-252158][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:49:58,902 [DEBUG][       Thread-252158][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:49:58,902 [DEBUG][       Thread-252158][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:49:58,902 [DEBUG][       Thread-252158][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:49:58,902 [DEBUG][       Thread-252158][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 10:49:58,902 [DEBUG][       Thread-252158][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 10:49:58,902 [DEBUG][       Thread-252158][   transport.py][1871] : client lang: <none>
2025-06-13 10:49:58,902 [DEBUG][       Thread-252158][   transport.py][1871] : server lang: <none>
2025-06-13 10:49:58,902 [DEBUG][       Thread-252158][   transport.py][1871] : kex follows: False
2025-06-13 10:49:58,902 [DEBUG][       Thread-252158][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 10:49:58,902 [DEBUG][       Thread-252158][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 10:49:58,902 [DEBUG][       Thread-252158][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 10:49:58,902 [DEBUG][       Thread-252158][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 10:49:58,902 [DEBUG][       Thread-252158][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 10:49:58,902 [DEBUG][       Thread-252158][   transport.py][1871] : Compression: none
2025-06-13 10:49:58,902 [DEBUG][       Thread-252158][   transport.py][1871] : === End of kex handshake ===
2025-06-13 10:49:58,916 [DEBUG][       Thread-252158][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 10:49:58,916 [DEBUG][       Thread-252158][   transport.py][1871] : Switch to new keys ...
2025-06-13 10:49:58,917 [DEBUG][       Thread-252158][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 10:49:58,917 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 10:49:58,917 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 10:49:58,918 [DEBUG][       Thread-252158][   transport.py][1871] : userauth is OK
2025-06-13 10:49:58,931 [ INFO][       Thread-252158][   transport.py][1871] : Authentication (password) successful!
2025-06-13 10:49:58,931 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 10:49:59,512 [DEBUG][       Thread-252158][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 10:49:59,512 [DEBUG][       Thread-252158][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 10:49:59,553 [DEBUG][       Thread-252158][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 10:49:59,553 [DEBUG][       Thread-252158][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 10:49:59,555 [DEBUG][       Thread-252158][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 10:49:59,560 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 10:49:59,560 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 10:49:59,562 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 10:49:59,563 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 10:49:59,568 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 10:49:59,570 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 10:49:59,570 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 10:49:59,571 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 10:49:59,571 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.367995 -999.00   +9.20  20.62     54   +0.40 1 1 1 1 1   887    0 8.77 -5.65 ----- 26.0 20.6 54.4 25.2 14.2 -28.4 12.8 -30.5 11.8 -28.1 13.1 -26.8
2025-06-13 10:49:59,571 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 10:49:59,571 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 10:49:59,571 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.367995
2025-06-13 10:49:59,571 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 10:49:59,572 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 10:49:59,572 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 10:49:59,572 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 10:49:59,572 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 10:49:59,572 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T10:49:34', tmtdew=10.25, humidity=48.69, cloud=0.0, wind=18.67, temperature=9.65, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T08:49:54.768', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 10:49:59,572 [DEBUG][       Thread-252158][   transport.py][1871] : EOF in transport thread
2025-06-13 10:49:59,658 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 10:49:59,667 [DEBUG][       Thread-252161][   transport.py][1871] : starting thread (client mode): 0x863c8880
2025-06-13 10:49:59,667 [DEBUG][       Thread-252161][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 10:49:59,682 [DEBUG][       Thread-252161][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 10:49:59,682 [ INFO][       Thread-252161][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 10:49:59,690 [DEBUG][       Thread-252161][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 10:49:59,690 [DEBUG][       Thread-252161][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 10:49:59,690 [DEBUG][       Thread-252161][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 10:49:59,690 [DEBUG][       Thread-252161][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:49:59,690 [DEBUG][       Thread-252161][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:49:59,690 [DEBUG][       Thread-252161][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:49:59,690 [DEBUG][       Thread-252161][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:49:59,690 [DEBUG][       Thread-252161][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 10:49:59,690 [DEBUG][       Thread-252161][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 10:49:59,690 [DEBUG][       Thread-252161][   transport.py][1871] : client lang: <none>
2025-06-13 10:49:59,690 [DEBUG][       Thread-252161][   transport.py][1871] : server lang: <none>
2025-06-13 10:49:59,690 [DEBUG][       Thread-252161][   transport.py][1871] : kex follows: False
2025-06-13 10:49:59,690 [DEBUG][       Thread-252161][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 10:49:59,690 [DEBUG][       Thread-252161][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 10:49:59,690 [DEBUG][       Thread-252161][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 10:49:59,690 [DEBUG][       Thread-252161][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 10:49:59,690 [DEBUG][       Thread-252161][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 10:49:59,690 [DEBUG][       Thread-252161][   transport.py][1871] : Compression: none
2025-06-13 10:49:59,690 [DEBUG][       Thread-252161][   transport.py][1871] : === End of kex handshake ===
2025-06-13 10:49:59,749 [DEBUG][       Thread-252161][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 10:49:59,749 [DEBUG][       Thread-252161][   transport.py][1871] : Switch to new keys ...
2025-06-13 10:49:59,749 [DEBUG][       Thread-252161][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 10:49:59,750 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 10:49:59,750 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 10:49:59,812 [DEBUG][       Thread-252161][   transport.py][1871] : userauth is OK
2025-06-13 10:49:59,812 [DEBUG][       Thread-252161][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 10:49:59,813 [DEBUG][       Thread-252161][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 10:49:59,813 [DEBUG][       Thread-252161][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 10:49:59,813 [DEBUG][       Thread-252161][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 10:49:59,832 [ INFO][       Thread-252161][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 10:49:59,833 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 10:49:59,833 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 10:50:00,832 [DEBUG][       Thread-252161][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 10:50:00,832 [DEBUG][       Thread-252161][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 10:50:00,880 [DEBUG][       Thread-252161][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 10:50:00,880 [DEBUG][       Thread-252161][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 10:50:00,889 [DEBUG][       Thread-252161][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 10:50:00,897 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 10:50:00,897 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 10:50:00,906 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 10:50:00,916 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 10:50:00,917 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 10:50:00,917 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 10:50:00,928 [DEBUG][       Thread-252161][   transport.py][1871] : EOF in transport thread
2025-06-13 10:50:01,497 [DEBUG][Thread-252163 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:50:07,348 [DEBUG][Thread-252164 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:50:10,519 [DEBUG][Thread-252165 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:50:10,927 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 10:50:10,927 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 10:50:10,928 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 10:50:10,930 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 10:50:11,386 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 10, 50, 6), 10.28, 48.58, 0.0, 18.49, 9.63, 0, 0, 0, 2, 0, 0),)
2025-06-13 10:50:11,386 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 10:50:06
2025-06-13 10:50:11,468 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 10:50:11,474 [DEBUG][       Thread-252166][   transport.py][1871] : starting thread (client mode): 0x863be590
2025-06-13 10:50:11,474 [DEBUG][       Thread-252166][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 10:50:11,495 [DEBUG][       Thread-252166][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 10:50:11,495 [ INFO][       Thread-252166][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 10:50:11,498 [DEBUG][       Thread-252166][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 10:50:11,498 [DEBUG][       Thread-252166][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 10:50:11,498 [DEBUG][       Thread-252166][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 10:50:11,498 [DEBUG][       Thread-252166][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:50:11,498 [DEBUG][       Thread-252166][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:50:11,498 [DEBUG][       Thread-252166][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:50:11,498 [DEBUG][       Thread-252166][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:50:11,499 [DEBUG][       Thread-252166][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 10:50:11,499 [DEBUG][       Thread-252166][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 10:50:11,499 [DEBUG][       Thread-252166][   transport.py][1871] : client lang: <none>
2025-06-13 10:50:11,499 [DEBUG][       Thread-252166][   transport.py][1871] : server lang: <none>
2025-06-13 10:50:11,499 [DEBUG][       Thread-252166][   transport.py][1871] : kex follows: False
2025-06-13 10:50:11,499 [DEBUG][       Thread-252166][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 10:50:11,499 [DEBUG][       Thread-252166][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 10:50:11,499 [DEBUG][       Thread-252166][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 10:50:11,499 [DEBUG][       Thread-252166][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 10:50:11,499 [DEBUG][       Thread-252166][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 10:50:11,499 [DEBUG][       Thread-252166][   transport.py][1871] : Compression: none
2025-06-13 10:50:11,499 [DEBUG][       Thread-252166][   transport.py][1871] : === End of kex handshake ===
2025-06-13 10:50:11,516 [DEBUG][       Thread-252166][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 10:50:11,516 [DEBUG][       Thread-252166][   transport.py][1871] : Switch to new keys ...
2025-06-13 10:50:11,517 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 10:50:11,517 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 10:50:11,517 [DEBUG][       Thread-252166][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 10:50:11,518 [DEBUG][       Thread-252166][   transport.py][1871] : userauth is OK
2025-06-13 10:50:11,565 [ INFO][       Thread-252166][   transport.py][1871] : Authentication (password) successful!
2025-06-13 10:50:11,566 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 10:50:13,394 [DEBUG][       Thread-252166][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 10:50:13,394 [DEBUG][       Thread-252166][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 10:50:13,437 [DEBUG][       Thread-252166][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 10:50:13,437 [DEBUG][       Thread-252166][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 10:50:13,440 [DEBUG][       Thread-252166][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 10:50:13,451 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 10:50:13,451 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 10:50:13,453 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 10:50:13,455 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 10:50:13,460 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 10:50:13,462 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 10:50:13,462 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 10:50:13,463 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 10:50:13,463 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.367995 -999.00   +9.20  20.62     54   +0.40 1 1 1 1 1   887    0 8.77 -5.65 ----- 26.0 20.6 54.4 25.2 14.2 -28.4 12.8 -30.5 11.8 -28.1 13.1 -26.8
2025-06-13 10:50:13,463 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 10:50:13,463 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 10:50:13,463 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.367995
2025-06-13 10:50:13,463 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 10:50:13,464 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 10:50:13,464 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 10:50:13,464 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 10:50:13,464 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 10:50:13,464 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T10:50:06', tmtdew=10.28, humidity=48.58, cloud=0.0, wind=18.49, temperature=9.63, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T08:49:54.768', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 10:50:13,465 [DEBUG][       Thread-252166][   transport.py][1871] : EOF in transport thread
2025-06-13 10:50:13,547 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 10:50:13,559 [DEBUG][       Thread-252169][   transport.py][1871] : starting thread (client mode): 0x867b7be0
2025-06-13 10:50:13,559 [DEBUG][       Thread-252169][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 10:50:13,579 [DEBUG][       Thread-252169][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 10:50:13,579 [ INFO][       Thread-252169][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 10:50:13,588 [DEBUG][       Thread-252169][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 10:50:13,588 [DEBUG][       Thread-252169][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 10:50:13,588 [DEBUG][       Thread-252169][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 10:50:13,588 [DEBUG][       Thread-252169][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:50:13,588 [DEBUG][       Thread-252169][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:50:13,588 [DEBUG][       Thread-252169][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:50:13,588 [DEBUG][       Thread-252169][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:50:13,588 [DEBUG][       Thread-252169][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 10:50:13,588 [DEBUG][       Thread-252169][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 10:50:13,588 [DEBUG][       Thread-252169][   transport.py][1871] : client lang: <none>
2025-06-13 10:50:13,588 [DEBUG][       Thread-252169][   transport.py][1871] : server lang: <none>
2025-06-13 10:50:13,588 [DEBUG][       Thread-252169][   transport.py][1871] : kex follows: False
2025-06-13 10:50:13,588 [DEBUG][       Thread-252169][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 10:50:13,588 [DEBUG][       Thread-252169][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 10:50:13,589 [DEBUG][       Thread-252169][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 10:50:13,589 [DEBUG][       Thread-252169][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 10:50:13,589 [DEBUG][       Thread-252169][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 10:50:13,589 [DEBUG][       Thread-252169][   transport.py][1871] : Compression: none
2025-06-13 10:50:13,589 [DEBUG][       Thread-252169][   transport.py][1871] : === End of kex handshake ===
2025-06-13 10:50:13,651 [DEBUG][       Thread-252169][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 10:50:13,652 [DEBUG][       Thread-252169][   transport.py][1871] : Switch to new keys ...
2025-06-13 10:50:13,652 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 10:50:13,653 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 10:50:13,653 [DEBUG][       Thread-252169][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 10:50:13,710 [DEBUG][       Thread-252169][   transport.py][1871] : userauth is OK
2025-06-13 10:50:13,710 [DEBUG][       Thread-252169][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 10:50:13,711 [DEBUG][       Thread-252169][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 10:50:13,711 [DEBUG][       Thread-252169][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 10:50:13,711 [DEBUG][       Thread-252169][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 10:50:13,730 [ INFO][       Thread-252169][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 10:50:13,730 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 10:50:13,730 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 10:50:14,797 [DEBUG][       Thread-252169][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 10:50:14,798 [DEBUG][       Thread-252169][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 10:50:14,847 [DEBUG][       Thread-252169][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 10:50:14,848 [DEBUG][       Thread-252169][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 10:50:14,856 [DEBUG][       Thread-252169][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 10:50:14,865 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 10:50:14,865 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 10:50:14,873 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 10:50:14,882 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 10:50:14,882 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 10:50:14,883 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 10:50:14,890 [DEBUG][       Thread-252169][   transport.py][1871] : EOF in transport thread
2025-06-13 10:50:19,538 [DEBUG][Thread-252171 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:50:24,893 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 10:50:24,893 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 10:50:24,893 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 10:50:24,895 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 10:50:25,358 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 10, 50, 6), 10.28, 48.58, 0.0, 18.49, 9.63, 0, 0, 0, 2, 0, 0),)
2025-06-13 10:50:25,358 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 10:50:06
2025-06-13 10:50:25,439 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 10:50:25,443 [DEBUG][       Thread-252172][   transport.py][1871] : starting thread (client mode): 0x863bf610
2025-06-13 10:50:25,443 [DEBUG][       Thread-252172][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 10:50:25,470 [DEBUG][       Thread-252172][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 10:50:25,470 [ INFO][       Thread-252172][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 10:50:25,471 [DEBUG][       Thread-252172][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 10:50:25,471 [DEBUG][       Thread-252172][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 10:50:25,471 [DEBUG][       Thread-252172][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 10:50:25,471 [DEBUG][       Thread-252172][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:50:25,471 [DEBUG][       Thread-252172][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:50:25,472 [DEBUG][       Thread-252172][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:50:25,472 [DEBUG][       Thread-252172][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:50:25,472 [DEBUG][       Thread-252172][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 10:50:25,472 [DEBUG][       Thread-252172][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 10:50:25,472 [DEBUG][       Thread-252172][   transport.py][1871] : client lang: <none>
2025-06-13 10:50:25,472 [DEBUG][       Thread-252172][   transport.py][1871] : server lang: <none>
2025-06-13 10:50:25,472 [DEBUG][       Thread-252172][   transport.py][1871] : kex follows: False
2025-06-13 10:50:25,472 [DEBUG][       Thread-252172][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 10:50:25,472 [DEBUG][       Thread-252172][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 10:50:25,472 [DEBUG][       Thread-252172][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 10:50:25,472 [DEBUG][       Thread-252172][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 10:50:25,472 [DEBUG][       Thread-252172][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 10:50:25,472 [DEBUG][       Thread-252172][   transport.py][1871] : Compression: none
2025-06-13 10:50:25,472 [DEBUG][       Thread-252172][   transport.py][1871] : === End of kex handshake ===
2025-06-13 10:50:25,482 [DEBUG][       Thread-252172][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 10:50:25,483 [DEBUG][       Thread-252172][   transport.py][1871] : Switch to new keys ...
2025-06-13 10:50:25,483 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 10:50:25,484 [DEBUG][       Thread-252172][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 10:50:25,484 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 10:50:25,486 [DEBUG][       Thread-252172][   transport.py][1871] : userauth is OK
2025-06-13 10:50:25,511 [ INFO][       Thread-252172][   transport.py][1871] : Authentication (password) successful!
2025-06-13 10:50:25,511 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 10:50:27,122 [DEBUG][       Thread-252172][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 10:50:27,122 [DEBUG][       Thread-252172][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 10:50:27,169 [DEBUG][       Thread-252172][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 10:50:27,169 [DEBUG][       Thread-252172][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 10:50:27,172 [DEBUG][       Thread-252172][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 10:50:27,186 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 10:50:27,186 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 10:50:27,188 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 10:50:27,190 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 10:50:27,195 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 10:50:27,197 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 10:50:27,197 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 10:50:27,198 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 10:50:27,198 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.367995 -999.00   +9.20  20.62     54   +0.40 1 1 1 1 1   887    0 8.77 -5.65 ----- 26.0 20.6 54.4 25.2 14.2 -28.4 12.8 -30.5 11.8 -28.1 13.1 -26.8
2025-06-13 10:50:27,198 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 10:50:27,198 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 10:50:27,198 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.367995
2025-06-13 10:50:27,199 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 10:50:27,199 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 10:50:27,199 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 10:50:27,199 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 10:50:27,199 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 10:50:27,199 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T10:50:06', tmtdew=10.28, humidity=48.58, cloud=0.0, wind=18.49, temperature=9.63, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T08:49:54.768', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 10:50:27,200 [DEBUG][       Thread-252172][   transport.py][1871] : EOF in transport thread
2025-06-13 10:50:27,283 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 10:50:27,293 [DEBUG][       Thread-252175][   transport.py][1871] : starting thread (client mode): 0x863eec20
2025-06-13 10:50:27,293 [DEBUG][       Thread-252175][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 10:50:27,312 [DEBUG][       Thread-252175][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 10:50:27,312 [ INFO][       Thread-252175][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 10:50:27,319 [DEBUG][       Thread-252175][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 10:50:27,320 [DEBUG][       Thread-252175][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 10:50:27,320 [DEBUG][       Thread-252175][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 10:50:27,320 [DEBUG][       Thread-252175][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:50:27,320 [DEBUG][       Thread-252175][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:50:27,320 [DEBUG][       Thread-252175][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:50:27,320 [DEBUG][       Thread-252175][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:50:27,320 [DEBUG][       Thread-252175][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 10:50:27,320 [DEBUG][       Thread-252175][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 10:50:27,320 [DEBUG][       Thread-252175][   transport.py][1871] : client lang: <none>
2025-06-13 10:50:27,320 [DEBUG][       Thread-252175][   transport.py][1871] : server lang: <none>
2025-06-13 10:50:27,320 [DEBUG][       Thread-252175][   transport.py][1871] : kex follows: False
2025-06-13 10:50:27,320 [DEBUG][       Thread-252175][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 10:50:27,320 [DEBUG][       Thread-252175][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 10:50:27,320 [DEBUG][       Thread-252175][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 10:50:27,320 [DEBUG][       Thread-252175][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 10:50:27,320 [DEBUG][       Thread-252175][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 10:50:27,320 [DEBUG][       Thread-252175][   transport.py][1871] : Compression: none
2025-06-13 10:50:27,321 [DEBUG][       Thread-252175][   transport.py][1871] : === End of kex handshake ===
2025-06-13 10:50:27,379 [DEBUG][       Thread-252175][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 10:50:27,379 [DEBUG][       Thread-252175][   transport.py][1871] : Switch to new keys ...
2025-06-13 10:50:27,380 [DEBUG][       Thread-252175][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 10:50:27,380 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 10:50:27,380 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 10:50:27,438 [DEBUG][       Thread-252175][   transport.py][1871] : userauth is OK
2025-06-13 10:50:27,438 [DEBUG][       Thread-252175][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 10:50:27,447 [DEBUG][       Thread-252175][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 10:50:27,447 [DEBUG][       Thread-252175][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 10:50:27,447 [DEBUG][       Thread-252175][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 10:50:27,467 [ INFO][       Thread-252175][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 10:50:27,467 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 10:50:27,467 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 10:50:28,504 [DEBUG][       Thread-252175][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 10:50:28,504 [DEBUG][       Thread-252175][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 10:50:28,551 [DEBUG][       Thread-252175][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 10:50:28,552 [DEBUG][       Thread-252175][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 10:50:28,560 [DEBUG][       Thread-252175][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 10:50:28,566 [DEBUG][Thread-252177 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:50:28,569 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 10:50:28,569 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 10:50:28,577 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 10:50:28,586 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 10:50:28,586 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 10:50:28,587 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 10:50:28,594 [DEBUG][       Thread-252175][   transport.py][1871] : EOF in transport thread
2025-06-13 10:50:29,674 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:50:29,675 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:50:37,587 [DEBUG][Thread-252178 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:50:38,596 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 10:50:38,596 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 10:50:38,596 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 10:50:38,598 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 10:50:38,824 [DEBUG][Thread-252179 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:50:39,101 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 10, 50, 6), 10.28, 48.58, 0.0, 18.49, 9.63, 0, 0, 0, 2, 0, 0),)
2025-06-13 10:50:39,101 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 10:50:06
2025-06-13 10:50:39,188 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 10:50:39,194 [DEBUG][       Thread-252180][   transport.py][1871] : starting thread (client mode): 0x863bc2b0
2025-06-13 10:50:39,194 [DEBUG][       Thread-252180][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 10:50:39,215 [DEBUG][       Thread-252180][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 10:50:39,215 [ INFO][       Thread-252180][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 10:50:39,217 [DEBUG][       Thread-252180][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 10:50:39,217 [DEBUG][       Thread-252180][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 10:50:39,217 [DEBUG][       Thread-252180][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 10:50:39,217 [DEBUG][       Thread-252180][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:50:39,217 [DEBUG][       Thread-252180][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:50:39,217 [DEBUG][       Thread-252180][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:50:39,217 [DEBUG][       Thread-252180][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:50:39,217 [DEBUG][       Thread-252180][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 10:50:39,217 [DEBUG][       Thread-252180][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 10:50:39,217 [DEBUG][       Thread-252180][   transport.py][1871] : client lang: <none>
2025-06-13 10:50:39,217 [DEBUG][       Thread-252180][   transport.py][1871] : server lang: <none>
2025-06-13 10:50:39,217 [DEBUG][       Thread-252180][   transport.py][1871] : kex follows: False
2025-06-13 10:50:39,217 [DEBUG][       Thread-252180][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 10:50:39,217 [DEBUG][       Thread-252180][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 10:50:39,217 [DEBUG][       Thread-252180][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 10:50:39,217 [DEBUG][       Thread-252180][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 10:50:39,217 [DEBUG][       Thread-252180][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 10:50:39,217 [DEBUG][       Thread-252180][   transport.py][1871] : Compression: none
2025-06-13 10:50:39,217 [DEBUG][       Thread-252180][   transport.py][1871] : === End of kex handshake ===
2025-06-13 10:50:39,225 [DEBUG][       Thread-252180][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 10:50:39,225 [DEBUG][       Thread-252180][   transport.py][1871] : Switch to new keys ...
2025-06-13 10:50:39,225 [DEBUG][       Thread-252180][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 10:50:39,225 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 10:50:39,225 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 10:50:39,226 [DEBUG][       Thread-252180][   transport.py][1871] : userauth is OK
2025-06-13 10:50:39,238 [ INFO][       Thread-252180][   transport.py][1871] : Authentication (password) successful!
2025-06-13 10:50:39,238 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 10:50:39,881 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:50:39,881 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:50:39,894 [DEBUG][       Thread-252180][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 10:50:39,894 [DEBUG][       Thread-252180][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 10:50:39,936 [DEBUG][       Thread-252180][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 10:50:39,937 [DEBUG][       Thread-252180][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 10:50:39,939 [DEBUG][       Thread-252180][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 10:50:39,950 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 10:50:39,950 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 10:50:39,951 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 10:50:39,952 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 10:50:39,956 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 10:50:39,957 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 10:50:39,957 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 10:50:39,957 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 10:50:39,957 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.368342 -999.00   +9.20  23.16     54   +0.40 1 1 1 1 1   887    0 8.62 -6.97 ----- 22.5 23.2 52.4 29.9 14.1 -28.7 12.8 -30.2 11.8 -29.1 13.1 -26.6
2025-06-13 10:50:39,957 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 10:50:39,957 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 10:50:39,957 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.368342
2025-06-13 10:50:39,957 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 10:50:39,957 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 10:50:39,957 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 10:50:39,957 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 10:50:39,957 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 10:50:39,957 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T10:50:06', tmtdew=10.28, humidity=48.58, cloud=0.0, wind=18.49, temperature=9.63, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T08:50:24.749', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 10:50:39,958 [DEBUG][       Thread-252180][   transport.py][1871] : EOF in transport thread
2025-06-13 10:50:40,030 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 10:50:40,048 [DEBUG][       Thread-252183][   transport.py][1871] : starting thread (client mode): 0x863a5240
2025-06-13 10:50:40,048 [DEBUG][       Thread-252183][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 10:50:40,063 [DEBUG][       Thread-252183][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 10:50:40,063 [ INFO][       Thread-252183][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 10:50:40,071 [DEBUG][       Thread-252183][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 10:50:40,071 [DEBUG][       Thread-252183][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 10:50:40,071 [DEBUG][       Thread-252183][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 10:50:40,071 [DEBUG][       Thread-252183][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:50:40,071 [DEBUG][       Thread-252183][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:50:40,071 [DEBUG][       Thread-252183][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:50:40,071 [DEBUG][       Thread-252183][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:50:40,071 [DEBUG][       Thread-252183][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 10:50:40,071 [DEBUG][       Thread-252183][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 10:50:40,071 [DEBUG][       Thread-252183][   transport.py][1871] : client lang: <none>
2025-06-13 10:50:40,071 [DEBUG][       Thread-252183][   transport.py][1871] : server lang: <none>
2025-06-13 10:50:40,071 [DEBUG][       Thread-252183][   transport.py][1871] : kex follows: False
2025-06-13 10:50:40,071 [DEBUG][       Thread-252183][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 10:50:40,071 [DEBUG][       Thread-252183][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 10:50:40,072 [DEBUG][       Thread-252183][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 10:50:40,072 [DEBUG][       Thread-252183][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 10:50:40,072 [DEBUG][       Thread-252183][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 10:50:40,072 [DEBUG][       Thread-252183][   transport.py][1871] : Compression: none
2025-06-13 10:50:40,072 [DEBUG][       Thread-252183][   transport.py][1871] : === End of kex handshake ===
2025-06-13 10:50:40,133 [DEBUG][       Thread-252183][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 10:50:40,133 [DEBUG][       Thread-252183][   transport.py][1871] : Switch to new keys ...
2025-06-13 10:50:40,133 [DEBUG][       Thread-252183][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 10:50:40,133 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 10:50:40,134 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 10:50:40,190 [DEBUG][       Thread-252183][   transport.py][1871] : userauth is OK
2025-06-13 10:50:40,190 [DEBUG][       Thread-252183][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 10:50:40,190 [DEBUG][       Thread-252183][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 10:50:40,190 [DEBUG][       Thread-252183][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 10:50:40,191 [DEBUG][       Thread-252183][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 10:50:40,211 [ INFO][       Thread-252183][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 10:50:40,212 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 10:50:40,212 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 10:50:41,254 [DEBUG][       Thread-252183][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 10:50:41,254 [DEBUG][       Thread-252183][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 10:50:41,309 [DEBUG][       Thread-252183][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 10:50:41,309 [DEBUG][       Thread-252183][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 10:50:41,318 [DEBUG][       Thread-252183][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 10:50:41,327 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 10:50:41,327 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 10:50:41,336 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 10:50:41,347 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 10:50:41,347 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 10:50:41,347 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 10:50:41,355 [DEBUG][       Thread-252183][   transport.py][1871] : EOF in transport thread
2025-06-13 10:50:46,608 [DEBUG][Thread-252185 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:50:51,356 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 10:50:51,356 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 10:50:51,356 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 10:50:51,359 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 10:50:51,820 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 10, 50, 38), 10.13, 49.3, 0.0, 13.66, 9.59, 0, 0, 0, 2, 0, 0),)
2025-06-13 10:50:51,821 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 10:50:38
2025-06-13 10:50:51,902 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 10:50:51,908 [DEBUG][       Thread-252186][   transport.py][1871] : starting thread (client mode): 0x84204b20
2025-06-13 10:50:51,908 [DEBUG][       Thread-252186][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 10:50:51,928 [DEBUG][       Thread-252186][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 10:50:51,929 [ INFO][       Thread-252186][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 10:50:51,932 [DEBUG][       Thread-252186][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 10:50:51,932 [DEBUG][       Thread-252186][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 10:50:51,932 [DEBUG][       Thread-252186][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 10:50:51,932 [DEBUG][       Thread-252186][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:50:51,932 [DEBUG][       Thread-252186][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:50:51,932 [DEBUG][       Thread-252186][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:50:51,932 [DEBUG][       Thread-252186][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:50:51,932 [DEBUG][       Thread-252186][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 10:50:51,932 [DEBUG][       Thread-252186][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 10:50:51,932 [DEBUG][       Thread-252186][   transport.py][1871] : client lang: <none>
2025-06-13 10:50:51,932 [DEBUG][       Thread-252186][   transport.py][1871] : server lang: <none>
2025-06-13 10:50:51,932 [DEBUG][       Thread-252186][   transport.py][1871] : kex follows: False
2025-06-13 10:50:51,932 [DEBUG][       Thread-252186][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 10:50:51,932 [DEBUG][       Thread-252186][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 10:50:51,932 [DEBUG][       Thread-252186][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 10:50:51,932 [DEBUG][       Thread-252186][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 10:50:51,932 [DEBUG][       Thread-252186][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 10:50:51,932 [DEBUG][       Thread-252186][   transport.py][1871] : Compression: none
2025-06-13 10:50:51,933 [DEBUG][       Thread-252186][   transport.py][1871] : === End of kex handshake ===
2025-06-13 10:50:51,950 [DEBUG][       Thread-252186][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 10:50:51,950 [DEBUG][       Thread-252186][   transport.py][1871] : Switch to new keys ...
2025-06-13 10:50:51,951 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 10:50:51,951 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 10:50:51,952 [DEBUG][       Thread-252186][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 10:50:51,952 [DEBUG][       Thread-252186][   transport.py][1871] : userauth is OK
2025-06-13 10:50:51,977 [ INFO][       Thread-252186][   transport.py][1871] : Authentication (password) successful!
2025-06-13 10:50:51,977 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 10:50:52,639 [DEBUG][       Thread-252186][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 10:50:52,640 [DEBUG][       Thread-252186][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 10:50:52,681 [DEBUG][       Thread-252186][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 10:50:52,681 [DEBUG][       Thread-252186][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 10:50:52,684 [DEBUG][       Thread-252186][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 10:50:52,695 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 10:50:52,696 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 10:50:52,697 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 10:50:52,699 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 10:50:52,703 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 10:50:52,704 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 10:50:52,704 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 10:50:52,705 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 10:50:52,705 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.368342 -999.00   +9.20  23.16     54   +0.40 1 1 1 1 1   887    0 8.62 -6.97 ----- 22.5 23.2 52.4 29.9 14.1 -28.7 12.8 -30.2 11.8 -29.1 13.1 -26.6
2025-06-13 10:50:52,705 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 10:50:52,705 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 10:50:52,705 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.368342
2025-06-13 10:50:52,706 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 10:50:52,706 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 10:50:52,706 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 10:50:52,706 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 10:50:52,706 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 10:50:52,707 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T10:50:38', tmtdew=10.13, humidity=49.3, cloud=0.0, wind=13.66, temperature=9.59, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T08:50:24.749', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 10:50:52,707 [DEBUG][       Thread-252186][   transport.py][1871] : EOF in transport thread
2025-06-13 10:50:52,787 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 10:50:52,800 [DEBUG][       Thread-252189][   transport.py][1871] : starting thread (client mode): 0x867b6a40
2025-06-13 10:50:52,800 [DEBUG][       Thread-252189][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 10:50:52,816 [DEBUG][       Thread-252189][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 10:50:52,816 [ INFO][       Thread-252189][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 10:50:52,823 [DEBUG][       Thread-252189][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 10:50:52,823 [DEBUG][       Thread-252189][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 10:50:52,824 [DEBUG][       Thread-252189][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 10:50:52,824 [DEBUG][       Thread-252189][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:50:52,824 [DEBUG][       Thread-252189][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:50:52,824 [DEBUG][       Thread-252189][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:50:52,824 [DEBUG][       Thread-252189][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:50:52,824 [DEBUG][       Thread-252189][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 10:50:52,824 [DEBUG][       Thread-252189][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 10:50:52,824 [DEBUG][       Thread-252189][   transport.py][1871] : client lang: <none>
2025-06-13 10:50:52,824 [DEBUG][       Thread-252189][   transport.py][1871] : server lang: <none>
2025-06-13 10:50:52,824 [DEBUG][       Thread-252189][   transport.py][1871] : kex follows: False
2025-06-13 10:50:52,824 [DEBUG][       Thread-252189][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 10:50:52,824 [DEBUG][       Thread-252189][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 10:50:52,824 [DEBUG][       Thread-252189][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 10:50:52,824 [DEBUG][       Thread-252189][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 10:50:52,824 [DEBUG][       Thread-252189][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 10:50:52,824 [DEBUG][       Thread-252189][   transport.py][1871] : Compression: none
2025-06-13 10:50:52,824 [DEBUG][       Thread-252189][   transport.py][1871] : === End of kex handshake ===
2025-06-13 10:50:52,882 [DEBUG][       Thread-252189][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 10:50:52,883 [DEBUG][       Thread-252189][   transport.py][1871] : Switch to new keys ...
2025-06-13 10:50:52,883 [DEBUG][       Thread-252189][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 10:50:52,883 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 10:50:52,884 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 10:50:52,938 [DEBUG][       Thread-252189][   transport.py][1871] : userauth is OK
2025-06-13 10:50:52,938 [DEBUG][       Thread-252189][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 10:50:52,938 [DEBUG][       Thread-252189][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 10:50:52,938 [DEBUG][       Thread-252189][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 10:50:52,938 [DEBUG][       Thread-252189][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 10:50:52,957 [ INFO][       Thread-252189][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 10:50:52,957 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 10:50:52,958 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 10:50:53,991 [DEBUG][       Thread-252189][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 10:50:53,991 [DEBUG][       Thread-252189][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 10:50:54,041 [DEBUG][       Thread-252189][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 10:50:54,041 [DEBUG][       Thread-252189][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 10:50:54,050 [DEBUG][       Thread-252189][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 10:50:54,063 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 10:50:54,064 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 10:50:54,072 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 10:50:54,081 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 10:50:54,081 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 10:50:54,081 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 10:50:54,089 [DEBUG][       Thread-252189][   transport.py][1871] : EOF in transport thread
2025-06-13 10:50:55,629 [DEBUG][Thread-252191 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:51:04,092 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 10:51:04,092 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 10:51:04,092 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 10:51:04,095 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 10:51:04,561 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 10, 50, 38), 10.13, 49.3, 0.0, 13.66, 9.59, 0, 0, 0, 2, 0, 0),)
2025-06-13 10:51:04,561 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 10:50:38
2025-06-13 10:51:04,643 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 10:51:04,647 [DEBUG][       Thread-252192][   transport.py][1871] : starting thread (client mode): 0x84205870
2025-06-13 10:51:04,647 [DEBUG][       Thread-252192][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 10:51:04,659 [DEBUG][Thread-252193 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:51:04,664 [DEBUG][       Thread-252192][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 10:51:04,664 [ INFO][       Thread-252192][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 10:51:04,666 [DEBUG][       Thread-252192][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 10:51:04,666 [DEBUG][       Thread-252192][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 10:51:04,667 [DEBUG][       Thread-252192][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 10:51:04,667 [DEBUG][       Thread-252192][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:51:04,667 [DEBUG][       Thread-252192][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:51:04,667 [DEBUG][       Thread-252192][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:51:04,667 [DEBUG][       Thread-252192][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:51:04,667 [DEBUG][       Thread-252192][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 10:51:04,667 [DEBUG][       Thread-252192][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 10:51:04,667 [DEBUG][       Thread-252192][   transport.py][1871] : client lang: <none>
2025-06-13 10:51:04,667 [DEBUG][       Thread-252192][   transport.py][1871] : server lang: <none>
2025-06-13 10:51:04,667 [DEBUG][       Thread-252192][   transport.py][1871] : kex follows: False
2025-06-13 10:51:04,667 [DEBUG][       Thread-252192][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 10:51:04,667 [DEBUG][       Thread-252192][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 10:51:04,667 [DEBUG][       Thread-252192][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 10:51:04,667 [DEBUG][       Thread-252192][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 10:51:04,667 [DEBUG][       Thread-252192][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 10:51:04,667 [DEBUG][       Thread-252192][   transport.py][1871] : Compression: none
2025-06-13 10:51:04,667 [DEBUG][       Thread-252192][   transport.py][1871] : === End of kex handshake ===
2025-06-13 10:51:04,680 [DEBUG][       Thread-252192][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 10:51:04,681 [DEBUG][       Thread-252192][   transport.py][1871] : Switch to new keys ...
2025-06-13 10:51:04,681 [DEBUG][       Thread-252192][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 10:51:04,682 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 10:51:04,682 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 10:51:04,683 [DEBUG][       Thread-252192][   transport.py][1871] : userauth is OK
2025-06-13 10:51:04,707 [ INFO][       Thread-252192][   transport.py][1871] : Authentication (password) successful!
2025-06-13 10:51:04,708 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 10:51:05,482 [DEBUG][       Thread-252192][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 10:51:05,482 [DEBUG][       Thread-252192][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 10:51:05,525 [DEBUG][       Thread-252192][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 10:51:05,525 [DEBUG][       Thread-252192][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 10:51:05,527 [DEBUG][       Thread-252192][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 10:51:05,540 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 10:51:05,541 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 10:51:05,542 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 10:51:05,544 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 10:51:05,548 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 10:51:05,550 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 10:51:05,550 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 10:51:05,551 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 10:51:05,551 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.368342 -999.00   +9.20  23.16     54   +0.40 1 1 1 1 1   887    0 8.62 -6.97 ----- 22.5 23.2 52.4 29.9 14.1 -28.7 12.8 -30.2 11.8 -29.1 13.1 -26.6
2025-06-13 10:51:05,551 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 10:51:05,551 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 10:51:05,551 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.368342
2025-06-13 10:51:05,551 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 10:51:05,552 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 10:51:05,552 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 10:51:05,552 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 10:51:05,552 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 10:51:05,552 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T10:50:38', tmtdew=10.13, humidity=49.3, cloud=0.0, wind=13.66, temperature=9.59, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T08:50:24.749', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 10:51:05,553 [DEBUG][       Thread-252192][   transport.py][1871] : EOF in transport thread
2025-06-13 10:51:05,636 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 10:51:05,646 [DEBUG][       Thread-252196][   transport.py][1871] : starting thread (client mode): 0x863ed5d0
2025-06-13 10:51:05,646 [DEBUG][       Thread-252196][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 10:51:05,661 [DEBUG][       Thread-252196][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 10:51:05,661 [ INFO][       Thread-252196][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 10:51:05,674 [DEBUG][       Thread-252196][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 10:51:05,675 [DEBUG][       Thread-252196][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 10:51:05,675 [DEBUG][       Thread-252196][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 10:51:05,675 [DEBUG][       Thread-252196][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:51:05,675 [DEBUG][       Thread-252196][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:51:05,675 [DEBUG][       Thread-252196][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:51:05,675 [DEBUG][       Thread-252196][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:51:05,675 [DEBUG][       Thread-252196][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 10:51:05,675 [DEBUG][       Thread-252196][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 10:51:05,675 [DEBUG][       Thread-252196][   transport.py][1871] : client lang: <none>
2025-06-13 10:51:05,675 [DEBUG][       Thread-252196][   transport.py][1871] : server lang: <none>
2025-06-13 10:51:05,675 [DEBUG][       Thread-252196][   transport.py][1871] : kex follows: False
2025-06-13 10:51:05,675 [DEBUG][       Thread-252196][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 10:51:05,675 [DEBUG][       Thread-252196][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 10:51:05,675 [DEBUG][       Thread-252196][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 10:51:05,675 [DEBUG][       Thread-252196][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 10:51:05,676 [DEBUG][       Thread-252196][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 10:51:05,676 [DEBUG][       Thread-252196][   transport.py][1871] : Compression: none
2025-06-13 10:51:05,676 [DEBUG][       Thread-252196][   transport.py][1871] : === End of kex handshake ===
2025-06-13 10:51:05,739 [DEBUG][       Thread-252196][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 10:51:05,740 [DEBUG][       Thread-252196][   transport.py][1871] : Switch to new keys ...
2025-06-13 10:51:05,740 [DEBUG][       Thread-252196][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 10:51:05,741 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 10:51:05,741 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 10:51:05,798 [DEBUG][       Thread-252196][   transport.py][1871] : userauth is OK
2025-06-13 10:51:05,798 [DEBUG][       Thread-252196][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 10:51:05,798 [DEBUG][       Thread-252196][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 10:51:05,798 [DEBUG][       Thread-252196][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 10:51:05,798 [DEBUG][       Thread-252196][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 10:51:05,817 [ INFO][       Thread-252196][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 10:51:05,817 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 10:51:05,818 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 10:51:06,869 [DEBUG][       Thread-252196][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 10:51:06,869 [DEBUG][       Thread-252196][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 10:51:06,919 [DEBUG][       Thread-252196][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 10:51:06,920 [DEBUG][       Thread-252196][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 10:51:06,928 [DEBUG][       Thread-252196][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 10:51:06,938 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 10:51:06,939 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 10:51:06,950 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 10:51:06,962 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 10:51:06,962 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 10:51:06,963 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 10:51:06,977 [DEBUG][       Thread-252196][   transport.py][1871] : EOF in transport thread
2025-06-13 10:51:07,396 [DEBUG][Thread-252198 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:51:13,679 [DEBUG][Thread-252199 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:51:16,972 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 10:51:16,972 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 10:51:16,972 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 10:51:16,975 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 10:51:17,431 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 10, 51, 9), 10.19, 49.01, 0.0, 19.02, 9.57, 0, 0, 0, 2, 0, 0),)
2025-06-13 10:51:17,431 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 10:51:09
2025-06-13 10:51:17,513 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 10:51:17,519 [DEBUG][       Thread-252200][   transport.py][1871] : starting thread (client mode): 0x84206e30
2025-06-13 10:51:17,519 [DEBUG][       Thread-252200][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 10:51:17,533 [DEBUG][       Thread-252200][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 10:51:17,533 [ INFO][       Thread-252200][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 10:51:17,535 [DEBUG][       Thread-252200][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 10:51:17,535 [DEBUG][       Thread-252200][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 10:51:17,535 [DEBUG][       Thread-252200][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 10:51:17,535 [DEBUG][       Thread-252200][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:51:17,535 [DEBUG][       Thread-252200][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:51:17,535 [DEBUG][       Thread-252200][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:51:17,535 [DEBUG][       Thread-252200][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:51:17,535 [DEBUG][       Thread-252200][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 10:51:17,535 [DEBUG][       Thread-252200][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 10:51:17,535 [DEBUG][       Thread-252200][   transport.py][1871] : client lang: <none>
2025-06-13 10:51:17,535 [DEBUG][       Thread-252200][   transport.py][1871] : server lang: <none>
2025-06-13 10:51:17,535 [DEBUG][       Thread-252200][   transport.py][1871] : kex follows: False
2025-06-13 10:51:17,535 [DEBUG][       Thread-252200][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 10:51:17,535 [DEBUG][       Thread-252200][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 10:51:17,535 [DEBUG][       Thread-252200][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 10:51:17,535 [DEBUG][       Thread-252200][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 10:51:17,535 [DEBUG][       Thread-252200][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 10:51:17,535 [DEBUG][       Thread-252200][   transport.py][1871] : Compression: none
2025-06-13 10:51:17,535 [DEBUG][       Thread-252200][   transport.py][1871] : === End of kex handshake ===
2025-06-13 10:51:17,545 [DEBUG][       Thread-252200][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 10:51:17,545 [DEBUG][       Thread-252200][   transport.py][1871] : Switch to new keys ...
2025-06-13 10:51:17,546 [DEBUG][       Thread-252200][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 10:51:17,546 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 10:51:17,546 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 10:51:17,547 [DEBUG][       Thread-252200][   transport.py][1871] : userauth is OK
2025-06-13 10:51:17,560 [ INFO][       Thread-252200][   transport.py][1871] : Authentication (password) successful!
2025-06-13 10:51:17,560 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 10:51:18,169 [DEBUG][       Thread-252200][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 10:51:18,169 [DEBUG][       Thread-252200][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 10:51:18,212 [DEBUG][       Thread-252200][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 10:51:18,213 [DEBUG][       Thread-252200][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 10:51:18,215 [DEBUG][       Thread-252200][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 10:51:18,227 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 10:51:18,228 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 10:51:18,229 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 10:51:18,231 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 10:51:18,236 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 10:51:18,238 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 10:51:18,238 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 10:51:18,239 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 10:51:18,239 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.368689 -999.00   +9.20  22.89     53   +0.20 1 1 1 1 1   887    0 8.61 -7.88 ----- 18.6 22.9 42.2 26.3 14.1 -29.0 12.7 -30.5 11.9 -28.1 13.1 -26.6
2025-06-13 10:51:18,239 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 10:51:18,239 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 10:51:18,239 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.368689
2025-06-13 10:51:18,239 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 10:51:18,240 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 10:51:18,240 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 10:51:18,240 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 10:51:18,240 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 10:51:18,240 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T10:51:09', tmtdew=10.19, humidity=49.01, cloud=0.0, wind=19.02, temperature=9.57, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T08:50:54.730', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 10:51:18,241 [DEBUG][       Thread-252200][   transport.py][1871] : EOF in transport thread
2025-06-13 10:51:18,325 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 10:51:18,336 [DEBUG][       Thread-252203][   transport.py][1871] : starting thread (client mode): 0x867fe3b0
2025-06-13 10:51:18,336 [DEBUG][       Thread-252203][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 10:51:18,351 [DEBUG][       Thread-252203][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 10:51:18,351 [ INFO][       Thread-252203][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 10:51:18,359 [DEBUG][       Thread-252203][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 10:51:18,359 [DEBUG][       Thread-252203][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 10:51:18,359 [DEBUG][       Thread-252203][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 10:51:18,359 [DEBUG][       Thread-252203][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:51:18,359 [DEBUG][       Thread-252203][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:51:18,359 [DEBUG][       Thread-252203][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:51:18,359 [DEBUG][       Thread-252203][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:51:18,359 [DEBUG][       Thread-252203][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 10:51:18,359 [DEBUG][       Thread-252203][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 10:51:18,359 [DEBUG][       Thread-252203][   transport.py][1871] : client lang: <none>
2025-06-13 10:51:18,359 [DEBUG][       Thread-252203][   transport.py][1871] : server lang: <none>
2025-06-13 10:51:18,359 [DEBUG][       Thread-252203][   transport.py][1871] : kex follows: False
2025-06-13 10:51:18,359 [DEBUG][       Thread-252203][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 10:51:18,359 [DEBUG][       Thread-252203][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 10:51:18,359 [DEBUG][       Thread-252203][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 10:51:18,359 [DEBUG][       Thread-252203][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 10:51:18,359 [DEBUG][       Thread-252203][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 10:51:18,360 [DEBUG][       Thread-252203][   transport.py][1871] : Compression: none
2025-06-13 10:51:18,360 [DEBUG][       Thread-252203][   transport.py][1871] : === End of kex handshake ===
2025-06-13 10:51:18,427 [DEBUG][       Thread-252203][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 10:51:18,428 [DEBUG][       Thread-252203][   transport.py][1871] : Switch to new keys ...
2025-06-13 10:51:18,428 [DEBUG][       Thread-252203][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 10:51:18,429 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 10:51:18,429 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 10:51:18,486 [DEBUG][       Thread-252203][   transport.py][1871] : userauth is OK
2025-06-13 10:51:18,486 [DEBUG][       Thread-252203][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 10:51:18,486 [DEBUG][       Thread-252203][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 10:51:18,486 [DEBUG][       Thread-252203][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 10:51:18,486 [DEBUG][       Thread-252203][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 10:51:18,500 [ INFO][       Thread-252203][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 10:51:18,500 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 10:51:18,500 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 10:51:19,516 [DEBUG][       Thread-252203][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 10:51:19,516 [DEBUG][       Thread-252203][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 10:51:19,568 [DEBUG][       Thread-252203][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 10:51:19,569 [DEBUG][       Thread-252203][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 10:51:19,578 [DEBUG][       Thread-252203][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 10:51:19,586 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 10:51:19,586 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 10:51:19,594 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 10:51:19,603 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 10:51:19,603 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 10:51:19,604 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 10:51:19,612 [DEBUG][       Thread-252203][   transport.py][1871] : EOF in transport thread
2025-06-13 10:51:22,697 [DEBUG][Thread-252205 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:51:29,612 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 10:51:29,612 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 10:51:29,612 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 10:51:29,613 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 10:51:29,815 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:51:29,816 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:51:30,071 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 10, 51, 9), 10.19, 49.01, 0.0, 19.02, 9.57, 0, 0, 0, 2, 0, 0),)
2025-06-13 10:51:30,071 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 10:51:09
2025-06-13 10:51:30,155 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 10:51:30,159 [DEBUG][       Thread-252206][   transport.py][1871] : starting thread (client mode): 0x842079a0
2025-06-13 10:51:30,159 [DEBUG][       Thread-252206][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 10:51:30,179 [DEBUG][       Thread-252206][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 10:51:30,179 [ INFO][       Thread-252206][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 10:51:30,183 [DEBUG][       Thread-252206][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 10:51:30,183 [DEBUG][       Thread-252206][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 10:51:30,183 [DEBUG][       Thread-252206][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 10:51:30,183 [DEBUG][       Thread-252206][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:51:30,183 [DEBUG][       Thread-252206][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:51:30,183 [DEBUG][       Thread-252206][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:51:30,183 [DEBUG][       Thread-252206][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:51:30,183 [DEBUG][       Thread-252206][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 10:51:30,183 [DEBUG][       Thread-252206][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 10:51:30,183 [DEBUG][       Thread-252206][   transport.py][1871] : client lang: <none>
2025-06-13 10:51:30,183 [DEBUG][       Thread-252206][   transport.py][1871] : server lang: <none>
2025-06-13 10:51:30,183 [DEBUG][       Thread-252206][   transport.py][1871] : kex follows: False
2025-06-13 10:51:30,183 [DEBUG][       Thread-252206][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 10:51:30,183 [DEBUG][       Thread-252206][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 10:51:30,183 [DEBUG][       Thread-252206][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 10:51:30,183 [DEBUG][       Thread-252206][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 10:51:30,183 [DEBUG][       Thread-252206][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 10:51:30,183 [DEBUG][       Thread-252206][   transport.py][1871] : Compression: none
2025-06-13 10:51:30,183 [DEBUG][       Thread-252206][   transport.py][1871] : === End of kex handshake ===
2025-06-13 10:51:30,198 [DEBUG][       Thread-252206][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 10:51:30,198 [DEBUG][       Thread-252206][   transport.py][1871] : Switch to new keys ...
2025-06-13 10:51:30,198 [DEBUG][       Thread-252206][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 10:51:30,198 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 10:51:30,198 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 10:51:30,199 [DEBUG][       Thread-252206][   transport.py][1871] : userauth is OK
2025-06-13 10:51:30,211 [ INFO][       Thread-252206][   transport.py][1871] : Authentication (password) successful!
2025-06-13 10:51:30,211 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 10:51:30,999 [DEBUG][       Thread-252206][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 10:51:30,999 [DEBUG][       Thread-252206][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 10:51:31,041 [DEBUG][       Thread-252206][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 10:51:31,041 [DEBUG][       Thread-252206][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 10:51:31,043 [DEBUG][       Thread-252206][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 10:51:31,054 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 10:51:31,054 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 10:51:31,055 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 10:51:31,056 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 10:51:31,059 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 10:51:31,060 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 10:51:31,060 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 10:51:31,060 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 10:51:31,060 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.368689 -999.00   +9.20  22.89     53   +0.20 1 1 1 1 1   887    0 8.61 -7.88 ----- 18.6 22.9 42.2 26.3 14.1 -29.0 12.7 -30.5 11.9 -28.1 13.1 -26.6
2025-06-13 10:51:31,060 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 10:51:31,060 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 10:51:31,060 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.368689
2025-06-13 10:51:31,060 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 10:51:31,061 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 10:51:31,061 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 10:51:31,061 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 10:51:31,061 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 10:51:31,061 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T10:51:09', tmtdew=10.19, humidity=49.01, cloud=0.0, wind=19.02, temperature=9.57, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T08:50:54.730', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 10:51:31,061 [DEBUG][       Thread-252206][   transport.py][1871] : EOF in transport thread
2025-06-13 10:51:31,133 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 10:51:31,142 [DEBUG][       Thread-252209][   transport.py][1871] : starting thread (client mode): 0x863c8be0
2025-06-13 10:51:31,143 [DEBUG][       Thread-252209][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 10:51:31,157 [DEBUG][       Thread-252209][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 10:51:31,157 [ INFO][       Thread-252209][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 10:51:31,168 [DEBUG][       Thread-252209][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 10:51:31,169 [DEBUG][       Thread-252209][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 10:51:31,169 [DEBUG][       Thread-252209][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 10:51:31,169 [DEBUG][       Thread-252209][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:51:31,169 [DEBUG][       Thread-252209][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:51:31,169 [DEBUG][       Thread-252209][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:51:31,169 [DEBUG][       Thread-252209][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:51:31,169 [DEBUG][       Thread-252209][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 10:51:31,169 [DEBUG][       Thread-252209][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 10:51:31,169 [DEBUG][       Thread-252209][   transport.py][1871] : client lang: <none>
2025-06-13 10:51:31,169 [DEBUG][       Thread-252209][   transport.py][1871] : server lang: <none>
2025-06-13 10:51:31,169 [DEBUG][       Thread-252209][   transport.py][1871] : kex follows: False
2025-06-13 10:51:31,169 [DEBUG][       Thread-252209][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 10:51:31,169 [DEBUG][       Thread-252209][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 10:51:31,169 [DEBUG][       Thread-252209][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 10:51:31,169 [DEBUG][       Thread-252209][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 10:51:31,169 [DEBUG][       Thread-252209][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 10:51:31,169 [DEBUG][       Thread-252209][   transport.py][1871] : Compression: none
2025-06-13 10:51:31,169 [DEBUG][       Thread-252209][   transport.py][1871] : === End of kex handshake ===
2025-06-13 10:51:31,225 [DEBUG][       Thread-252209][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 10:51:31,225 [DEBUG][       Thread-252209][   transport.py][1871] : Switch to new keys ...
2025-06-13 10:51:31,225 [DEBUG][       Thread-252209][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 10:51:31,225 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 10:51:31,225 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 10:51:31,284 [DEBUG][       Thread-252209][   transport.py][1871] : userauth is OK
2025-06-13 10:51:31,284 [DEBUG][       Thread-252209][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 10:51:31,284 [DEBUG][       Thread-252209][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 10:51:31,284 [DEBUG][       Thread-252209][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 10:51:31,284 [DEBUG][       Thread-252209][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 10:51:31,303 [ INFO][       Thread-252209][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 10:51:31,303 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 10:51:31,303 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 10:51:31,724 [DEBUG][Thread-252211 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:51:32,297 [DEBUG][       Thread-252209][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 10:51:32,297 [DEBUG][       Thread-252209][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 10:51:32,351 [DEBUG][       Thread-252209][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 10:51:32,351 [DEBUG][       Thread-252209][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 10:51:32,360 [DEBUG][       Thread-252209][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 10:51:32,368 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 10:51:32,368 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 10:51:32,376 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 10:51:32,383 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 10:51:32,383 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 10:51:32,384 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 10:51:32,391 [DEBUG][       Thread-252209][   transport.py][1871] : EOF in transport thread
2025-06-13 10:51:39,946 [DEBUG][Thread-252212 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:51:40,739 [DEBUG][Thread-252213 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:51:40,999 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:51:40,999 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:51:42,392 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 10:51:42,392 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 10:51:42,392 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 10:51:42,393 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 10:51:42,920 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 10, 51, 9), 10.19, 49.01, 0.0, 19.02, 9.57, 0, 0, 0, 2, 0, 0),)
2025-06-13 10:51:42,920 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 10:51:09
2025-06-13 10:51:43,017 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 10:51:43,028 [DEBUG][       Thread-252214][   transport.py][1871] : starting thread (client mode): 0x842057b0
2025-06-13 10:51:43,028 [DEBUG][       Thread-252214][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 10:51:43,045 [DEBUG][       Thread-252214][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 10:51:43,045 [ INFO][       Thread-252214][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 10:51:43,048 [DEBUG][       Thread-252214][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 10:51:43,048 [DEBUG][       Thread-252214][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 10:51:43,048 [DEBUG][       Thread-252214][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 10:51:43,048 [DEBUG][       Thread-252214][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:51:43,048 [DEBUG][       Thread-252214][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:51:43,048 [DEBUG][       Thread-252214][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:51:43,048 [DEBUG][       Thread-252214][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:51:43,048 [DEBUG][       Thread-252214][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 10:51:43,048 [DEBUG][       Thread-252214][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 10:51:43,048 [DEBUG][       Thread-252214][   transport.py][1871] : client lang: <none>
2025-06-13 10:51:43,048 [DEBUG][       Thread-252214][   transport.py][1871] : server lang: <none>
2025-06-13 10:51:43,048 [DEBUG][       Thread-252214][   transport.py][1871] : kex follows: False
2025-06-13 10:51:43,048 [DEBUG][       Thread-252214][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 10:51:43,048 [DEBUG][       Thread-252214][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 10:51:43,048 [DEBUG][       Thread-252214][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 10:51:43,049 [DEBUG][       Thread-252214][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 10:51:43,049 [DEBUG][       Thread-252214][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 10:51:43,049 [DEBUG][       Thread-252214][   transport.py][1871] : Compression: none
2025-06-13 10:51:43,049 [DEBUG][       Thread-252214][   transport.py][1871] : === End of kex handshake ===
2025-06-13 10:51:43,062 [DEBUG][       Thread-252214][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 10:51:43,062 [DEBUG][       Thread-252214][   transport.py][1871] : Switch to new keys ...
2025-06-13 10:51:43,062 [DEBUG][       Thread-252214][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 10:51:43,062 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 10:51:43,062 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 10:51:43,063 [DEBUG][       Thread-252214][   transport.py][1871] : userauth is OK
2025-06-13 10:51:43,088 [ INFO][       Thread-252214][   transport.py][1871] : Authentication (password) successful!
2025-06-13 10:51:43,088 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 10:51:43,677 [DEBUG][       Thread-252214][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 10:51:43,677 [DEBUG][       Thread-252214][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 10:51:43,721 [DEBUG][       Thread-252214][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 10:51:43,721 [DEBUG][       Thread-252214][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 10:51:43,723 [DEBUG][       Thread-252214][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 10:51:43,736 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 10:51:43,736 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 10:51:43,737 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 10:51:43,738 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 10:51:43,740 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 10:51:43,741 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 10:51:43,741 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 10:51:43,741 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 10:51:43,741 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.369037 -999.00   +9.20  24.09     53   +0.20 1 1 1 1 1   887    0 8.64 -7.00 ----- 22.4 24.1 53.0 26.8 14.1 -28.3 12.8 -30.2 11.8 -28.4 13.1 -26.7
2025-06-13 10:51:43,741 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 10:51:43,741 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 10:51:43,741 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.369037
2025-06-13 10:51:43,741 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 10:51:43,741 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 10:51:43,741 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 10:51:43,741 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 10:51:43,741 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 10:51:43,741 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T10:51:09', tmtdew=10.19, humidity=49.01, cloud=0.0, wind=19.02, temperature=9.57, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T08:51:24.797', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 10:51:43,741 [DEBUG][       Thread-252214][   transport.py][1871] : EOF in transport thread
2025-06-13 10:51:43,814 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 10:51:43,829 [DEBUG][       Thread-252217][   transport.py][1871] : starting thread (client mode): 0x8636b280
2025-06-13 10:51:43,830 [DEBUG][       Thread-252217][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 10:51:43,853 [DEBUG][       Thread-252217][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 10:51:43,853 [ INFO][       Thread-252217][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 10:51:43,865 [DEBUG][       Thread-252217][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 10:51:43,865 [DEBUG][       Thread-252217][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 10:51:43,865 [DEBUG][       Thread-252217][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 10:51:43,865 [DEBUG][       Thread-252217][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:51:43,865 [DEBUG][       Thread-252217][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:51:43,865 [DEBUG][       Thread-252217][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:51:43,865 [DEBUG][       Thread-252217][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:51:43,865 [DEBUG][       Thread-252217][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 10:51:43,865 [DEBUG][       Thread-252217][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 10:51:43,865 [DEBUG][       Thread-252217][   transport.py][1871] : client lang: <none>
2025-06-13 10:51:43,865 [DEBUG][       Thread-252217][   transport.py][1871] : server lang: <none>
2025-06-13 10:51:43,865 [DEBUG][       Thread-252217][   transport.py][1871] : kex follows: False
2025-06-13 10:51:43,865 [DEBUG][       Thread-252217][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 10:51:43,865 [DEBUG][       Thread-252217][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 10:51:43,865 [DEBUG][       Thread-252217][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 10:51:43,865 [DEBUG][       Thread-252217][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 10:51:43,865 [DEBUG][       Thread-252217][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 10:51:43,865 [DEBUG][       Thread-252217][   transport.py][1871] : Compression: none
2025-06-13 10:51:43,865 [DEBUG][       Thread-252217][   transport.py][1871] : === End of kex handshake ===
2025-06-13 10:51:43,917 [DEBUG][       Thread-252217][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 10:51:43,917 [DEBUG][       Thread-252217][   transport.py][1871] : Switch to new keys ...
2025-06-13 10:51:43,917 [DEBUG][       Thread-252217][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 10:51:43,917 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 10:51:43,917 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 10:51:43,974 [DEBUG][       Thread-252217][   transport.py][1871] : userauth is OK
2025-06-13 10:51:43,974 [DEBUG][       Thread-252217][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 10:51:43,974 [DEBUG][       Thread-252217][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 10:51:43,974 [DEBUG][       Thread-252217][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 10:51:43,974 [DEBUG][       Thread-252217][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 10:51:43,988 [ INFO][       Thread-252217][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 10:51:43,988 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 10:51:43,988 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 10:51:44,988 [DEBUG][       Thread-252217][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 10:51:44,989 [DEBUG][       Thread-252217][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 10:51:45,046 [DEBUG][       Thread-252217][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 10:51:45,046 [DEBUG][       Thread-252217][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 10:51:45,057 [DEBUG][       Thread-252217][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 10:51:45,064 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 10:51:45,064 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 10:51:45,072 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 10:51:45,080 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 10:51:45,080 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 10:51:45,080 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 10:51:45,088 [DEBUG][       Thread-252217][   transport.py][1871] : EOF in transport thread
2025-06-13 10:51:49,757 [DEBUG][Thread-252219 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:51:55,090 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 10:51:55,090 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 10:51:55,090 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 10:51:55,091 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 10:51:55,555 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 10, 51, 41), 10.16, 49.09, 0.0, 20.96, 9.51, 0, 0, 0, 2, 0, 0),)
2025-06-13 10:51:55,555 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 10:51:41
2025-06-13 10:51:55,648 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 10:51:55,652 [DEBUG][       Thread-252220][   transport.py][1871] : starting thread (client mode): 0x84206410
2025-06-13 10:51:55,652 [DEBUG][       Thread-252220][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 10:51:55,666 [DEBUG][       Thread-252220][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 10:51:55,666 [ INFO][       Thread-252220][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 10:51:55,669 [DEBUG][       Thread-252220][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 10:51:55,669 [DEBUG][       Thread-252220][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 10:51:55,669 [DEBUG][       Thread-252220][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 10:51:55,669 [DEBUG][       Thread-252220][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:51:55,669 [DEBUG][       Thread-252220][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:51:55,669 [DEBUG][       Thread-252220][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:51:55,669 [DEBUG][       Thread-252220][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:51:55,669 [DEBUG][       Thread-252220][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 10:51:55,669 [DEBUG][       Thread-252220][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 10:51:55,669 [DEBUG][       Thread-252220][   transport.py][1871] : client lang: <none>
2025-06-13 10:51:55,669 [DEBUG][       Thread-252220][   transport.py][1871] : server lang: <none>
2025-06-13 10:51:55,669 [DEBUG][       Thread-252220][   transport.py][1871] : kex follows: False
2025-06-13 10:51:55,669 [DEBUG][       Thread-252220][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 10:51:55,669 [DEBUG][       Thread-252220][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 10:51:55,669 [DEBUG][       Thread-252220][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 10:51:55,670 [DEBUG][       Thread-252220][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 10:51:55,670 [DEBUG][       Thread-252220][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 10:51:55,670 [DEBUG][       Thread-252220][   transport.py][1871] : Compression: none
2025-06-13 10:51:55,670 [DEBUG][       Thread-252220][   transport.py][1871] : === End of kex handshake ===
2025-06-13 10:51:55,684 [DEBUG][       Thread-252220][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 10:51:55,684 [DEBUG][       Thread-252220][   transport.py][1871] : Switch to new keys ...
2025-06-13 10:51:55,684 [DEBUG][       Thread-252220][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 10:51:55,684 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 10:51:55,684 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 10:51:55,685 [DEBUG][       Thread-252220][   transport.py][1871] : userauth is OK
2025-06-13 10:51:55,697 [ INFO][       Thread-252220][   transport.py][1871] : Authentication (password) successful!
2025-06-13 10:51:55,697 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 10:51:56,397 [DEBUG][       Thread-252220][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 10:51:56,397 [DEBUG][       Thread-252220][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 10:51:56,440 [DEBUG][       Thread-252220][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 10:51:56,440 [DEBUG][       Thread-252220][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 10:51:56,443 [DEBUG][       Thread-252220][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 10:51:56,456 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 10:51:56,457 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 10:51:56,458 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 10:51:56,459 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 10:51:56,461 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 10:51:56,462 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 10:51:56,462 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 10:51:56,463 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 10:51:56,463 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.369037 -999.00   +9.20  24.09     53   +0.20 1 1 1 1 1   887    0 8.64 -7.00 ----- 22.4 24.1 53.0 26.8 14.1 -28.3 12.8 -30.2 11.8 -28.4 13.1 -26.7
2025-06-13 10:51:56,463 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 10:51:56,463 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 10:51:56,463 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.369037
2025-06-13 10:51:56,463 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 10:51:56,463 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 10:51:56,463 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 10:51:56,463 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 10:51:56,463 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 10:51:56,463 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T10:51:41', tmtdew=10.16, humidity=49.09, cloud=0.0, wind=20.96, temperature=9.51, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T08:51:24.797', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 10:51:56,464 [DEBUG][       Thread-252220][   transport.py][1871] : EOF in transport thread
2025-06-13 10:51:56,535 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 10:51:56,545 [DEBUG][       Thread-252223][   transport.py][1871] : starting thread (client mode): 0x868c80a0
2025-06-13 10:51:56,545 [DEBUG][       Thread-252223][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 10:51:56,559 [DEBUG][       Thread-252223][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 10:51:56,559 [ INFO][       Thread-252223][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 10:51:56,566 [DEBUG][       Thread-252223][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 10:51:56,566 [DEBUG][       Thread-252223][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 10:51:56,566 [DEBUG][       Thread-252223][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 10:51:56,566 [DEBUG][       Thread-252223][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:51:56,566 [DEBUG][       Thread-252223][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:51:56,566 [DEBUG][       Thread-252223][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:51:56,566 [DEBUG][       Thread-252223][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:51:56,566 [DEBUG][       Thread-252223][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 10:51:56,566 [DEBUG][       Thread-252223][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 10:51:56,566 [DEBUG][       Thread-252223][   transport.py][1871] : client lang: <none>
2025-06-13 10:51:56,566 [DEBUG][       Thread-252223][   transport.py][1871] : server lang: <none>
2025-06-13 10:51:56,567 [DEBUG][       Thread-252223][   transport.py][1871] : kex follows: False
2025-06-13 10:51:56,567 [DEBUG][       Thread-252223][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 10:51:56,567 [DEBUG][       Thread-252223][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 10:51:56,567 [DEBUG][       Thread-252223][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 10:51:56,567 [DEBUG][       Thread-252223][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 10:51:56,567 [DEBUG][       Thread-252223][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 10:51:56,567 [DEBUG][       Thread-252223][   transport.py][1871] : Compression: none
2025-06-13 10:51:56,567 [DEBUG][       Thread-252223][   transport.py][1871] : === End of kex handshake ===
2025-06-13 10:51:56,631 [DEBUG][       Thread-252223][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 10:51:56,631 [DEBUG][       Thread-252223][   transport.py][1871] : Switch to new keys ...
2025-06-13 10:51:56,632 [DEBUG][       Thread-252223][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 10:51:56,632 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 10:51:56,632 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 10:51:56,697 [DEBUG][       Thread-252223][   transport.py][1871] : userauth is OK
2025-06-13 10:51:56,697 [DEBUG][       Thread-252223][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 10:51:56,697 [DEBUG][       Thread-252223][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 10:51:56,697 [DEBUG][       Thread-252223][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 10:51:56,697 [DEBUG][       Thread-252223][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 10:51:56,714 [ INFO][       Thread-252223][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 10:51:56,714 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 10:51:56,714 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 10:51:57,731 [DEBUG][       Thread-252223][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 10:51:57,731 [DEBUG][       Thread-252223][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 10:51:57,780 [DEBUG][       Thread-252223][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 10:51:57,781 [DEBUG][       Thread-252223][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 10:51:57,789 [DEBUG][       Thread-252223][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 10:51:57,798 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 10:51:57,798 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 10:51:57,806 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 10:51:57,814 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 10:51:57,814 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 10:51:57,815 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 10:51:57,824 [DEBUG][       Thread-252223][   transport.py][1871] : EOF in transport thread
2025-06-13 10:51:58,773 [DEBUG][Thread-252225 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:52:07,447 [DEBUG][Thread-252226 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:52:07,799 [DEBUG][Thread-252227 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:52:07,816 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 10:52:07,816 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 10:52:07,816 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 10:52:07,817 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 10:52:08,289 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 10, 51, 41), 10.16, 49.09, 0.0, 20.96, 9.51, 0, 0, 0, 2, 0, 0),)
2025-06-13 10:52:08,290 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 10:51:41
2025-06-13 10:52:08,370 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 10:52:08,376 [DEBUG][       Thread-252228][   transport.py][1871] : starting thread (client mode): 0x84206350
2025-06-13 10:52:08,376 [DEBUG][       Thread-252228][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 10:52:08,398 [DEBUG][       Thread-252228][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 10:52:08,398 [ INFO][       Thread-252228][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 10:52:08,401 [DEBUG][       Thread-252228][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 10:52:08,401 [DEBUG][       Thread-252228][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 10:52:08,401 [DEBUG][       Thread-252228][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 10:52:08,401 [DEBUG][       Thread-252228][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:52:08,401 [DEBUG][       Thread-252228][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:52:08,401 [DEBUG][       Thread-252228][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:52:08,401 [DEBUG][       Thread-252228][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:52:08,401 [DEBUG][       Thread-252228][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 10:52:08,401 [DEBUG][       Thread-252228][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 10:52:08,401 [DEBUG][       Thread-252228][   transport.py][1871] : client lang: <none>
2025-06-13 10:52:08,401 [DEBUG][       Thread-252228][   transport.py][1871] : server lang: <none>
2025-06-13 10:52:08,402 [DEBUG][       Thread-252228][   transport.py][1871] : kex follows: False
2025-06-13 10:52:08,402 [DEBUG][       Thread-252228][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 10:52:08,402 [DEBUG][       Thread-252228][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 10:52:08,402 [DEBUG][       Thread-252228][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 10:52:08,402 [DEBUG][       Thread-252228][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 10:52:08,402 [DEBUG][       Thread-252228][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 10:52:08,402 [DEBUG][       Thread-252228][   transport.py][1871] : Compression: none
2025-06-13 10:52:08,402 [DEBUG][       Thread-252228][   transport.py][1871] : === End of kex handshake ===
2025-06-13 10:52:08,416 [DEBUG][       Thread-252228][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 10:52:08,416 [DEBUG][       Thread-252228][   transport.py][1871] : Switch to new keys ...
2025-06-13 10:52:08,416 [DEBUG][       Thread-252228][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 10:52:08,416 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 10:52:08,416 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 10:52:08,417 [DEBUG][       Thread-252228][   transport.py][1871] : userauth is OK
2025-06-13 10:52:08,429 [ INFO][       Thread-252228][   transport.py][1871] : Authentication (password) successful!
2025-06-13 10:52:08,430 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 10:52:09,138 [DEBUG][       Thread-252228][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 10:52:09,138 [DEBUG][       Thread-252228][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 10:52:09,180 [DEBUG][       Thread-252228][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 10:52:09,181 [DEBUG][       Thread-252228][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 10:52:09,182 [DEBUG][       Thread-252228][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 10:52:09,191 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 10:52:09,191 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 10:52:09,192 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 10:52:09,193 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 10:52:09,196 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 10:52:09,197 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 10:52:09,197 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 10:52:09,197 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 10:52:09,197 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.369037 -999.00   +9.20  24.09     53   +0.20 1 1 1 1 1   887    0 8.64 -7.00 ----- 22.4 24.1 53.0 26.8 14.1 -28.3 12.8 -30.2 11.8 -28.4 13.1 -26.7
2025-06-13 10:52:09,197 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 10:52:09,197 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 10:52:09,197 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.369037
2025-06-13 10:52:09,197 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 10:52:09,198 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 10:52:09,198 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 10:52:09,198 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 10:52:09,198 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 10:52:09,198 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T10:51:41', tmtdew=10.16, humidity=49.09, cloud=0.0, wind=20.96, temperature=9.51, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T08:51:24.797', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 10:52:09,198 [DEBUG][       Thread-252228][   transport.py][1871] : EOF in transport thread
2025-06-13 10:52:09,270 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 10:52:09,281 [DEBUG][       Thread-252231][   transport.py][1871] : starting thread (client mode): 0x863bf880
2025-06-13 10:52:09,281 [DEBUG][       Thread-252231][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 10:52:09,298 [DEBUG][       Thread-252231][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 10:52:09,298 [ INFO][       Thread-252231][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 10:52:09,311 [DEBUG][       Thread-252231][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 10:52:09,311 [DEBUG][       Thread-252231][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 10:52:09,311 [DEBUG][       Thread-252231][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 10:52:09,311 [DEBUG][       Thread-252231][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:52:09,311 [DEBUG][       Thread-252231][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:52:09,311 [DEBUG][       Thread-252231][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:52:09,311 [DEBUG][       Thread-252231][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:52:09,311 [DEBUG][       Thread-252231][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 10:52:09,311 [DEBUG][       Thread-252231][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 10:52:09,311 [DEBUG][       Thread-252231][   transport.py][1871] : client lang: <none>
2025-06-13 10:52:09,311 [DEBUG][       Thread-252231][   transport.py][1871] : server lang: <none>
2025-06-13 10:52:09,311 [DEBUG][       Thread-252231][   transport.py][1871] : kex follows: False
2025-06-13 10:52:09,311 [DEBUG][       Thread-252231][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 10:52:09,311 [DEBUG][       Thread-252231][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 10:52:09,311 [DEBUG][       Thread-252231][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 10:52:09,311 [DEBUG][       Thread-252231][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 10:52:09,311 [DEBUG][       Thread-252231][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 10:52:09,311 [DEBUG][       Thread-252231][   transport.py][1871] : Compression: none
2025-06-13 10:52:09,311 [DEBUG][       Thread-252231][   transport.py][1871] : === End of kex handshake ===
2025-06-13 10:52:09,366 [DEBUG][       Thread-252231][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 10:52:09,366 [DEBUG][       Thread-252231][   transport.py][1871] : Switch to new keys ...
2025-06-13 10:52:09,366 [DEBUG][       Thread-252231][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 10:52:09,366 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 10:52:09,367 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 10:52:09,422 [DEBUG][       Thread-252231][   transport.py][1871] : userauth is OK
2025-06-13 10:52:09,422 [DEBUG][       Thread-252231][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 10:52:09,422 [DEBUG][       Thread-252231][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 10:52:09,422 [DEBUG][       Thread-252231][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 10:52:09,422 [DEBUG][       Thread-252231][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 10:52:09,437 [ INFO][       Thread-252231][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 10:52:09,437 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 10:52:09,437 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 10:52:10,457 [DEBUG][       Thread-252231][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 10:52:10,457 [DEBUG][       Thread-252231][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 10:52:10,507 [DEBUG][       Thread-252231][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 10:52:10,507 [DEBUG][       Thread-252231][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 10:52:10,516 [DEBUG][       Thread-252231][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 10:52:10,524 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 10:52:10,524 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 10:52:10,532 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 10:52:10,540 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 10:52:10,540 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 10:52:10,540 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 10:52:10,548 [DEBUG][       Thread-252231][   transport.py][1871] : EOF in transport thread
2025-06-13 10:52:16,814 [DEBUG][Thread-252233 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:52:20,550 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 10:52:20,550 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 10:52:20,550 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 10:52:20,551 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 10:52:21,009 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 10, 52, 13), 10.13, 49.06, 0.0, 17.82, 9.51, 0, 0, 0, 2, 0, 0),)
2025-06-13 10:52:21,009 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 10:52:13
2025-06-13 10:52:21,101 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 10:52:21,105 [DEBUG][       Thread-252234][   transport.py][1871] : starting thread (client mode): 0x863bfbe0
2025-06-13 10:52:21,105 [DEBUG][       Thread-252234][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 10:52:21,126 [DEBUG][       Thread-252234][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 10:52:21,126 [ INFO][       Thread-252234][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 10:52:21,127 [DEBUG][       Thread-252234][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 10:52:21,127 [DEBUG][       Thread-252234][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 10:52:21,127 [DEBUG][       Thread-252234][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 10:52:21,127 [DEBUG][       Thread-252234][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:52:21,127 [DEBUG][       Thread-252234][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:52:21,127 [DEBUG][       Thread-252234][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:52:21,127 [DEBUG][       Thread-252234][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:52:21,127 [DEBUG][       Thread-252234][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 10:52:21,127 [DEBUG][       Thread-252234][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 10:52:21,127 [DEBUG][       Thread-252234][   transport.py][1871] : client lang: <none>
2025-06-13 10:52:21,127 [DEBUG][       Thread-252234][   transport.py][1871] : server lang: <none>
2025-06-13 10:52:21,127 [DEBUG][       Thread-252234][   transport.py][1871] : kex follows: False
2025-06-13 10:52:21,127 [DEBUG][       Thread-252234][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 10:52:21,127 [DEBUG][       Thread-252234][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 10:52:21,127 [DEBUG][       Thread-252234][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 10:52:21,127 [DEBUG][       Thread-252234][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 10:52:21,127 [DEBUG][       Thread-252234][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 10:52:21,127 [DEBUG][       Thread-252234][   transport.py][1871] : Compression: none
2025-06-13 10:52:21,127 [DEBUG][       Thread-252234][   transport.py][1871] : === End of kex handshake ===
2025-06-13 10:52:21,134 [DEBUG][       Thread-252234][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 10:52:21,134 [DEBUG][       Thread-252234][   transport.py][1871] : Switch to new keys ...
2025-06-13 10:52:21,134 [DEBUG][       Thread-252234][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 10:52:21,134 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 10:52:21,134 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 10:52:21,135 [DEBUG][       Thread-252234][   transport.py][1871] : userauth is OK
2025-06-13 10:52:21,148 [ INFO][       Thread-252234][   transport.py][1871] : Authentication (password) successful!
2025-06-13 10:52:21,148 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 10:52:21,757 [DEBUG][       Thread-252234][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 10:52:21,757 [DEBUG][       Thread-252234][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 10:52:21,801 [DEBUG][       Thread-252234][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 10:52:21,801 [DEBUG][       Thread-252234][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 10:52:21,803 [DEBUG][       Thread-252234][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 10:52:21,816 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 10:52:21,816 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 10:52:21,817 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 10:52:21,818 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 10:52:21,822 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 10:52:21,823 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 10:52:21,823 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 10:52:21,823 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 10:52:21,823 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.369384 -999.00   +9.20  20.56     54   +0.40 1 1 1 1 1   887    0 8.77 -7.58 ----- 21.9 20.6 42.6 24.8 14.1 -28.7 12.7 -30.2 11.7 -28.8 13.1 -26.5
2025-06-13 10:52:21,823 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 10:52:21,823 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 10:52:21,823 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.369384
2025-06-13 10:52:21,823 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 10:52:21,823 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 10:52:21,823 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 10:52:21,823 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 10:52:21,823 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 10:52:21,823 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T10:52:13', tmtdew=10.13, humidity=49.06, cloud=0.0, wind=17.82, temperature=9.51, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T08:51:54.778', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 10:52:21,824 [DEBUG][       Thread-252234][   transport.py][1871] : EOF in transport thread
2025-06-13 10:52:21,895 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 10:52:21,905 [DEBUG][       Thread-252237][   transport.py][1871] : starting thread (client mode): 0x863a5210
2025-06-13 10:52:21,906 [DEBUG][       Thread-252237][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 10:52:21,920 [DEBUG][       Thread-252237][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 10:52:21,920 [ INFO][       Thread-252237][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 10:52:21,929 [DEBUG][       Thread-252237][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 10:52:21,929 [DEBUG][       Thread-252237][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 10:52:21,929 [DEBUG][       Thread-252237][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 10:52:21,929 [DEBUG][       Thread-252237][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:52:21,929 [DEBUG][       Thread-252237][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:52:21,929 [DEBUG][       Thread-252237][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:52:21,929 [DEBUG][       Thread-252237][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:52:21,929 [DEBUG][       Thread-252237][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 10:52:21,929 [DEBUG][       Thread-252237][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 10:52:21,929 [DEBUG][       Thread-252237][   transport.py][1871] : client lang: <none>
2025-06-13 10:52:21,929 [DEBUG][       Thread-252237][   transport.py][1871] : server lang: <none>
2025-06-13 10:52:21,929 [DEBUG][       Thread-252237][   transport.py][1871] : kex follows: False
2025-06-13 10:52:21,929 [DEBUG][       Thread-252237][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 10:52:21,929 [DEBUG][       Thread-252237][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 10:52:21,929 [DEBUG][       Thread-252237][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 10:52:21,929 [DEBUG][       Thread-252237][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 10:52:21,929 [DEBUG][       Thread-252237][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 10:52:21,929 [DEBUG][       Thread-252237][   transport.py][1871] : Compression: none
2025-06-13 10:52:21,929 [DEBUG][       Thread-252237][   transport.py][1871] : === End of kex handshake ===
2025-06-13 10:52:21,985 [DEBUG][       Thread-252237][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 10:52:21,985 [DEBUG][       Thread-252237][   transport.py][1871] : Switch to new keys ...
2025-06-13 10:52:21,985 [DEBUG][       Thread-252237][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 10:52:21,985 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 10:52:21,986 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 10:52:22,042 [DEBUG][       Thread-252237][   transport.py][1871] : userauth is OK
2025-06-13 10:52:22,042 [DEBUG][       Thread-252237][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 10:52:22,042 [DEBUG][       Thread-252237][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 10:52:22,042 [DEBUG][       Thread-252237][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 10:52:22,042 [DEBUG][       Thread-252237][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 10:52:22,056 [ INFO][       Thread-252237][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 10:52:22,056 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 10:52:22,056 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 10:52:23,034 [DEBUG][       Thread-252237][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 10:52:23,034 [DEBUG][       Thread-252237][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 10:52:23,087 [DEBUG][       Thread-252237][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 10:52:23,087 [DEBUG][       Thread-252237][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 10:52:23,096 [DEBUG][       Thread-252237][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 10:52:23,104 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 10:52:23,104 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 10:52:23,112 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 10:52:23,120 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 10:52:23,121 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 10:52:23,121 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 10:52:23,128 [DEBUG][       Thread-252237][   transport.py][1871] : EOF in transport thread
2025-06-13 10:52:25,829 [DEBUG][Thread-252239 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:52:29,953 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:52:29,954 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:52:33,124 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 10:52:33,124 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 10:52:33,124 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 10:52:33,125 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 10:52:33,600 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 10, 52, 13), 10.13, 49.06, 0.0, 17.82, 9.51, 0, 0, 0, 2, 0, 0),)
2025-06-13 10:52:33,600 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 10:52:13
2025-06-13 10:52:33,681 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 10:52:33,687 [DEBUG][       Thread-252240][   transport.py][1871] : starting thread (client mode): 0x842062f0
2025-06-13 10:52:33,687 [DEBUG][       Thread-252240][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 10:52:33,709 [DEBUG][       Thread-252240][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 10:52:33,709 [ INFO][       Thread-252240][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 10:52:33,712 [DEBUG][       Thread-252240][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 10:52:33,712 [DEBUG][       Thread-252240][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 10:52:33,712 [DEBUG][       Thread-252240][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 10:52:33,712 [DEBUG][       Thread-252240][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:52:33,712 [DEBUG][       Thread-252240][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:52:33,712 [DEBUG][       Thread-252240][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:52:33,712 [DEBUG][       Thread-252240][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:52:33,712 [DEBUG][       Thread-252240][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 10:52:33,712 [DEBUG][       Thread-252240][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 10:52:33,712 [DEBUG][       Thread-252240][   transport.py][1871] : client lang: <none>
2025-06-13 10:52:33,712 [DEBUG][       Thread-252240][   transport.py][1871] : server lang: <none>
2025-06-13 10:52:33,712 [DEBUG][       Thread-252240][   transport.py][1871] : kex follows: False
2025-06-13 10:52:33,713 [DEBUG][       Thread-252240][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 10:52:33,713 [DEBUG][       Thread-252240][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 10:52:33,713 [DEBUG][       Thread-252240][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 10:52:33,713 [DEBUG][       Thread-252240][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 10:52:33,713 [DEBUG][       Thread-252240][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 10:52:33,713 [DEBUG][       Thread-252240][   transport.py][1871] : Compression: none
2025-06-13 10:52:33,713 [DEBUG][       Thread-252240][   transport.py][1871] : === End of kex handshake ===
2025-06-13 10:52:33,727 [DEBUG][       Thread-252240][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 10:52:33,727 [DEBUG][       Thread-252240][   transport.py][1871] : Switch to new keys ...
2025-06-13 10:52:33,727 [DEBUG][       Thread-252240][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 10:52:33,727 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 10:52:33,727 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 10:52:33,727 [DEBUG][       Thread-252240][   transport.py][1871] : userauth is OK
2025-06-13 10:52:33,751 [ INFO][       Thread-252240][   transport.py][1871] : Authentication (password) successful!
2025-06-13 10:52:33,751 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 10:52:34,363 [DEBUG][       Thread-252240][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 10:52:34,363 [DEBUG][       Thread-252240][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 10:52:34,405 [DEBUG][       Thread-252240][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 10:52:34,405 [DEBUG][       Thread-252240][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 10:52:34,407 [DEBUG][       Thread-252240][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 10:52:34,414 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 10:52:34,414 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 10:52:34,415 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 10:52:34,416 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 10:52:34,419 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 10:52:34,420 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 10:52:34,420 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 10:52:34,420 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 10:52:34,420 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.369384 -999.00   +9.20  20.56     54   +0.40 1 1 1 1 1   887    0 8.77 -7.58 ----- 21.9 20.6 42.6 24.8 14.1 -28.7 12.7 -30.2 11.7 -28.8 13.1 -26.5
2025-06-13 10:52:34,420 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 10:52:34,420 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 10:52:34,420 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.369384
2025-06-13 10:52:34,420 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 10:52:34,420 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 10:52:34,420 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 10:52:34,420 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 10:52:34,420 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 10:52:34,420 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T10:52:13', tmtdew=10.13, humidity=49.06, cloud=0.0, wind=17.82, temperature=9.51, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T08:51:54.778', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 10:52:34,421 [DEBUG][       Thread-252240][   transport.py][1871] : EOF in transport thread
2025-06-13 10:52:34,493 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 10:52:34,506 [DEBUG][       Thread-252243][   transport.py][1871] : starting thread (client mode): 0x863c8be0
2025-06-13 10:52:34,506 [DEBUG][       Thread-252243][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 10:52:34,520 [DEBUG][       Thread-252243][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 10:52:34,520 [ INFO][       Thread-252243][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 10:52:34,528 [DEBUG][       Thread-252243][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 10:52:34,528 [DEBUG][       Thread-252243][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 10:52:34,528 [DEBUG][       Thread-252243][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 10:52:34,528 [DEBUG][       Thread-252243][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:52:34,528 [DEBUG][       Thread-252243][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:52:34,528 [DEBUG][       Thread-252243][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:52:34,528 [DEBUG][       Thread-252243][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:52:34,528 [DEBUG][       Thread-252243][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 10:52:34,528 [DEBUG][       Thread-252243][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 10:52:34,528 [DEBUG][       Thread-252243][   transport.py][1871] : client lang: <none>
2025-06-13 10:52:34,528 [DEBUG][       Thread-252243][   transport.py][1871] : server lang: <none>
2025-06-13 10:52:34,528 [DEBUG][       Thread-252243][   transport.py][1871] : kex follows: False
2025-06-13 10:52:34,528 [DEBUG][       Thread-252243][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 10:52:34,528 [DEBUG][       Thread-252243][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 10:52:34,528 [DEBUG][       Thread-252243][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 10:52:34,528 [DEBUG][       Thread-252243][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 10:52:34,528 [DEBUG][       Thread-252243][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 10:52:34,528 [DEBUG][       Thread-252243][   transport.py][1871] : Compression: none
2025-06-13 10:52:34,528 [DEBUG][       Thread-252243][   transport.py][1871] : === End of kex handshake ===
2025-06-13 10:52:34,585 [DEBUG][       Thread-252243][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 10:52:34,585 [DEBUG][       Thread-252243][   transport.py][1871] : Switch to new keys ...
2025-06-13 10:52:34,585 [DEBUG][       Thread-252243][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 10:52:34,585 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 10:52:34,586 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 10:52:34,644 [DEBUG][       Thread-252243][   transport.py][1871] : userauth is OK
2025-06-13 10:52:34,644 [DEBUG][       Thread-252243][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 10:52:34,644 [DEBUG][       Thread-252243][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 10:52:34,644 [DEBUG][       Thread-252243][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 10:52:34,644 [DEBUG][       Thread-252243][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 10:52:34,662 [ INFO][       Thread-252243][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 10:52:34,662 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 10:52:34,662 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 10:52:34,851 [DEBUG][Thread-252245 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:52:35,640 [DEBUG][       Thread-252243][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 10:52:35,641 [DEBUG][       Thread-252243][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 10:52:35,691 [DEBUG][       Thread-252243][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 10:52:35,691 [DEBUG][       Thread-252243][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 10:52:35,700 [DEBUG][       Thread-252243][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 10:52:35,708 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 10:52:35,708 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 10:52:35,716 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 10:52:35,725 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 10:52:35,725 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 10:52:35,725 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 10:52:35,736 [DEBUG][       Thread-252243][   transport.py][1871] : EOF in transport thread
2025-06-13 10:52:41,064 [DEBUG][Thread-252246 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:52:42,116 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:52:42,116 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:52:43,867 [DEBUG][Thread-252247 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:52:45,732 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 10:52:45,732 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 10:52:45,732 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 10:52:45,733 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 10:52:46,227 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 10, 52, 13), 10.13, 49.06, 0.0, 17.82, 9.51, 0, 0, 0, 2, 0, 0),)
2025-06-13 10:52:46,227 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 10:52:13
2025-06-13 10:52:46,329 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 10:52:46,336 [DEBUG][       Thread-252248][   transport.py][1871] : starting thread (client mode): 0x867b6320
2025-06-13 10:52:46,336 [DEBUG][       Thread-252248][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 10:52:46,357 [DEBUG][       Thread-252248][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 10:52:46,357 [ INFO][       Thread-252248][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 10:52:46,360 [DEBUG][       Thread-252248][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 10:52:46,361 [DEBUG][       Thread-252248][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 10:52:46,361 [DEBUG][       Thread-252248][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 10:52:46,361 [DEBUG][       Thread-252248][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:52:46,361 [DEBUG][       Thread-252248][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:52:46,361 [DEBUG][       Thread-252248][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:52:46,361 [DEBUG][       Thread-252248][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:52:46,361 [DEBUG][       Thread-252248][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 10:52:46,361 [DEBUG][       Thread-252248][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 10:52:46,361 [DEBUG][       Thread-252248][   transport.py][1871] : client lang: <none>
2025-06-13 10:52:46,361 [DEBUG][       Thread-252248][   transport.py][1871] : server lang: <none>
2025-06-13 10:52:46,361 [DEBUG][       Thread-252248][   transport.py][1871] : kex follows: False
2025-06-13 10:52:46,361 [DEBUG][       Thread-252248][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 10:52:46,361 [DEBUG][       Thread-252248][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 10:52:46,361 [DEBUG][       Thread-252248][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 10:52:46,361 [DEBUG][       Thread-252248][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 10:52:46,361 [DEBUG][       Thread-252248][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 10:52:46,361 [DEBUG][       Thread-252248][   transport.py][1871] : Compression: none
2025-06-13 10:52:46,361 [DEBUG][       Thread-252248][   transport.py][1871] : === End of kex handshake ===
2025-06-13 10:52:46,377 [DEBUG][       Thread-252248][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 10:52:46,377 [DEBUG][       Thread-252248][   transport.py][1871] : Switch to new keys ...
2025-06-13 10:52:46,377 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 10:52:46,377 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 10:52:46,377 [DEBUG][       Thread-252248][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 10:52:46,378 [DEBUG][       Thread-252248][   transport.py][1871] : userauth is OK
2025-06-13 10:52:46,391 [ INFO][       Thread-252248][   transport.py][1871] : Authentication (password) successful!
2025-06-13 10:52:46,391 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 10:52:47,032 [DEBUG][       Thread-252248][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 10:52:47,033 [DEBUG][       Thread-252248][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 10:52:47,076 [DEBUG][       Thread-252248][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 10:52:47,076 [DEBUG][       Thread-252248][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 10:52:47,079 [DEBUG][       Thread-252248][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 10:52:47,091 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 10:52:47,091 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 10:52:47,092 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 10:52:47,093 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 10:52:47,095 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 10:52:47,097 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 10:52:47,097 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 10:52:47,097 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 10:52:47,097 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.369384 -999.00   +9.20  20.56     54   +0.40 1 1 1 1 1   887    0 8.77 -7.58 ----- 21.9 20.6 42.6 24.8 14.1 -28.7 12.7 -30.2 11.7 -28.8 13.1 -26.5
2025-06-13 10:52:47,097 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 10:52:47,097 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 10:52:47,097 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.369384
2025-06-13 10:52:47,097 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 10:52:47,097 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 10:52:47,097 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 10:52:47,097 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 10:52:47,097 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 10:52:47,097 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T10:52:13', tmtdew=10.13, humidity=49.06, cloud=0.0, wind=17.82, temperature=9.51, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T08:51:54.778', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 10:52:47,098 [DEBUG][       Thread-252248][   transport.py][1871] : EOF in transport thread
2025-06-13 10:52:47,172 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 10:52:47,186 [DEBUG][       Thread-252251][   transport.py][1871] : starting thread (client mode): 0x863a4c70
2025-06-13 10:52:47,186 [DEBUG][       Thread-252251][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 10:52:47,201 [DEBUG][       Thread-252251][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 10:52:47,202 [ INFO][       Thread-252251][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 10:52:47,213 [DEBUG][       Thread-252251][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 10:52:47,213 [DEBUG][       Thread-252251][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 10:52:47,213 [DEBUG][       Thread-252251][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 10:52:47,213 [DEBUG][       Thread-252251][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:52:47,213 [DEBUG][       Thread-252251][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:52:47,213 [DEBUG][       Thread-252251][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:52:47,213 [DEBUG][       Thread-252251][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:52:47,213 [DEBUG][       Thread-252251][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 10:52:47,213 [DEBUG][       Thread-252251][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 10:52:47,213 [DEBUG][       Thread-252251][   transport.py][1871] : client lang: <none>
2025-06-13 10:52:47,213 [DEBUG][       Thread-252251][   transport.py][1871] : server lang: <none>
2025-06-13 10:52:47,213 [DEBUG][       Thread-252251][   transport.py][1871] : kex follows: False
2025-06-13 10:52:47,213 [DEBUG][       Thread-252251][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 10:52:47,213 [DEBUG][       Thread-252251][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 10:52:47,213 [DEBUG][       Thread-252251][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 10:52:47,213 [DEBUG][       Thread-252251][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 10:52:47,213 [DEBUG][       Thread-252251][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 10:52:47,214 [DEBUG][       Thread-252251][   transport.py][1871] : Compression: none
2025-06-13 10:52:47,214 [DEBUG][       Thread-252251][   transport.py][1871] : === End of kex handshake ===
2025-06-13 10:52:47,268 [DEBUG][       Thread-252251][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 10:52:47,269 [DEBUG][       Thread-252251][   transport.py][1871] : Switch to new keys ...
2025-06-13 10:52:47,269 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 10:52:47,269 [DEBUG][       Thread-252251][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 10:52:47,269 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 10:52:47,332 [DEBUG][       Thread-252251][   transport.py][1871] : userauth is OK
2025-06-13 10:52:47,332 [DEBUG][       Thread-252251][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 10:52:47,332 [DEBUG][       Thread-252251][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 10:52:47,332 [DEBUG][       Thread-252251][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 10:52:47,332 [DEBUG][       Thread-252251][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 10:52:47,346 [ INFO][       Thread-252251][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 10:52:47,346 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 10:52:47,346 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 10:52:48,402 [DEBUG][       Thread-252251][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 10:52:48,402 [DEBUG][       Thread-252251][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 10:52:48,452 [DEBUG][       Thread-252251][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 10:52:48,452 [DEBUG][       Thread-252251][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 10:52:48,466 [DEBUG][       Thread-252251][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 10:52:48,474 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 10:52:48,474 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 10:52:48,482 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 10:52:48,491 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 10:52:48,491 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 10:52:48,491 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 10:52:48,499 [DEBUG][       Thread-252251][   transport.py][1871] : EOF in transport thread
2025-06-13 10:52:52,887 [DEBUG][Thread-252253 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:52:58,501 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 10:52:58,501 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 10:52:58,501 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 10:52:58,502 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 10:52:58,964 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 10, 52, 45), 10.2, 48.82, 0.0, 15.83, 9.47, 0, 0, 0, 2, 0, 0),)
2025-06-13 10:52:58,964 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 10:52:45
2025-06-13 10:52:59,055 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 10:52:59,059 [DEBUG][       Thread-252254][   transport.py][1871] : starting thread (client mode): 0x84204250
2025-06-13 10:52:59,059 [DEBUG][       Thread-252254][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 10:52:59,081 [DEBUG][       Thread-252254][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 10:52:59,081 [ INFO][       Thread-252254][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 10:52:59,084 [DEBUG][       Thread-252254][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 10:52:59,084 [DEBUG][       Thread-252254][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 10:52:59,084 [DEBUG][       Thread-252254][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 10:52:59,084 [DEBUG][       Thread-252254][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:52:59,084 [DEBUG][       Thread-252254][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:52:59,084 [DEBUG][       Thread-252254][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:52:59,084 [DEBUG][       Thread-252254][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:52:59,084 [DEBUG][       Thread-252254][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 10:52:59,084 [DEBUG][       Thread-252254][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 10:52:59,084 [DEBUG][       Thread-252254][   transport.py][1871] : client lang: <none>
2025-06-13 10:52:59,084 [DEBUG][       Thread-252254][   transport.py][1871] : server lang: <none>
2025-06-13 10:52:59,084 [DEBUG][       Thread-252254][   transport.py][1871] : kex follows: False
2025-06-13 10:52:59,084 [DEBUG][       Thread-252254][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 10:52:59,084 [DEBUG][       Thread-252254][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 10:52:59,084 [DEBUG][       Thread-252254][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 10:52:59,084 [DEBUG][       Thread-252254][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 10:52:59,085 [DEBUG][       Thread-252254][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 10:52:59,085 [DEBUG][       Thread-252254][   transport.py][1871] : Compression: none
2025-06-13 10:52:59,085 [DEBUG][       Thread-252254][   transport.py][1871] : === End of kex handshake ===
2025-06-13 10:52:59,102 [DEBUG][       Thread-252254][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 10:52:59,102 [DEBUG][       Thread-252254][   transport.py][1871] : Switch to new keys ...
2025-06-13 10:52:59,102 [DEBUG][       Thread-252254][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 10:52:59,102 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 10:52:59,102 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 10:52:59,103 [DEBUG][       Thread-252254][   transport.py][1871] : userauth is OK
2025-06-13 10:52:59,127 [ INFO][       Thread-252254][   transport.py][1871] : Authentication (password) successful!
2025-06-13 10:52:59,127 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 10:52:59,770 [DEBUG][       Thread-252254][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 10:52:59,770 [DEBUG][       Thread-252254][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 10:52:59,812 [DEBUG][       Thread-252254][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 10:52:59,812 [DEBUG][       Thread-252254][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 10:52:59,815 [DEBUG][       Thread-252254][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 10:52:59,828 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 10:52:59,828 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 10:52:59,829 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 10:52:59,830 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 10:52:59,833 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 10:52:59,834 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 10:52:59,834 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 10:52:59,834 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 10:52:59,834 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.369731 -999.00   +9.10  20.34     53   +0.30 1 1 1 1 1   887    0 8.71 -7.60 ----- 23.8 20.3 48.2 26.8 14.1 -29.0 12.7 -30.0 11.8 -28.7 13.1 -26.7
2025-06-13 10:52:59,834 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 10:52:59,834 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 10:52:59,834 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.369731
2025-06-13 10:52:59,834 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 10:52:59,835 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 10:52:59,835 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 10:52:59,835 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 10:52:59,835 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 10:52:59,835 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T10:52:45', tmtdew=10.2, humidity=48.82, cloud=0.0, wind=15.83, temperature=9.47, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T08:52:24.758', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 10:52:59,835 [DEBUG][       Thread-252254][   transport.py][1871] : EOF in transport thread
2025-06-13 10:52:59,908 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 10:52:59,917 [DEBUG][       Thread-252257][   transport.py][1871] : starting thread (client mode): 0x863c8be0
2025-06-13 10:52:59,918 [DEBUG][       Thread-252257][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 10:52:59,935 [DEBUG][       Thread-252257][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 10:52:59,935 [ INFO][       Thread-252257][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 10:52:59,942 [DEBUG][       Thread-252257][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 10:52:59,942 [DEBUG][       Thread-252257][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 10:52:59,942 [DEBUG][       Thread-252257][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 10:52:59,942 [DEBUG][       Thread-252257][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:52:59,942 [DEBUG][       Thread-252257][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:52:59,942 [DEBUG][       Thread-252257][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:52:59,942 [DEBUG][       Thread-252257][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:52:59,942 [DEBUG][       Thread-252257][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 10:52:59,942 [DEBUG][       Thread-252257][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 10:52:59,942 [DEBUG][       Thread-252257][   transport.py][1871] : client lang: <none>
2025-06-13 10:52:59,942 [DEBUG][       Thread-252257][   transport.py][1871] : server lang: <none>
2025-06-13 10:52:59,942 [DEBUG][       Thread-252257][   transport.py][1871] : kex follows: False
2025-06-13 10:52:59,942 [DEBUG][       Thread-252257][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 10:52:59,942 [DEBUG][       Thread-252257][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 10:52:59,942 [DEBUG][       Thread-252257][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 10:52:59,942 [DEBUG][       Thread-252257][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 10:52:59,942 [DEBUG][       Thread-252257][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 10:52:59,942 [DEBUG][       Thread-252257][   transport.py][1871] : Compression: none
2025-06-13 10:52:59,942 [DEBUG][       Thread-252257][   transport.py][1871] : === End of kex handshake ===
2025-06-13 10:53:00,003 [DEBUG][       Thread-252257][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 10:53:00,003 [DEBUG][       Thread-252257][   transport.py][1871] : Switch to new keys ...
2025-06-13 10:53:00,003 [DEBUG][       Thread-252257][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 10:53:00,004 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 10:53:00,004 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 10:53:00,062 [DEBUG][       Thread-252257][   transport.py][1871] : userauth is OK
2025-06-13 10:53:00,062 [DEBUG][       Thread-252257][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 10:53:00,062 [DEBUG][       Thread-252257][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 10:53:00,062 [DEBUG][       Thread-252257][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 10:53:00,062 [DEBUG][       Thread-252257][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 10:53:00,077 [ INFO][       Thread-252257][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 10:53:00,077 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 10:53:00,077 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 10:53:01,150 [DEBUG][       Thread-252257][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 10:53:01,150 [DEBUG][       Thread-252257][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 10:53:01,199 [DEBUG][       Thread-252257][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 10:53:01,199 [DEBUG][       Thread-252257][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 10:53:01,208 [DEBUG][       Thread-252257][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 10:53:01,216 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 10:53:01,216 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 10:53:01,224 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 10:53:01,236 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 10:53:01,236 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 10:53:01,236 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 10:53:01,247 [DEBUG][       Thread-252257][   transport.py][1871] : EOF in transport thread
2025-06-13 10:53:01,902 [DEBUG][Thread-252259 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:53:07,494 [DEBUG][Thread-252260 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:53:10,925 [DEBUG][Thread-252261 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:53:11,246 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 10:53:11,246 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 10:53:11,246 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 10:53:11,247 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 10:53:11,706 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 10, 52, 45), 10.2, 48.82, 0.0, 15.83, 9.47, 0, 0, 0, 2, 0, 0),)
2025-06-13 10:53:11,706 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 10:52:45
2025-06-13 10:53:11,789 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 10:53:11,795 [DEBUG][       Thread-252262][   transport.py][1871] : starting thread (client mode): 0x84206f80
2025-06-13 10:53:11,795 [DEBUG][       Thread-252262][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 10:53:11,810 [DEBUG][       Thread-252262][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 10:53:11,810 [ INFO][       Thread-252262][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 10:53:11,813 [DEBUG][       Thread-252262][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 10:53:11,813 [DEBUG][       Thread-252262][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 10:53:11,813 [DEBUG][       Thread-252262][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 10:53:11,813 [DEBUG][       Thread-252262][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:53:11,813 [DEBUG][       Thread-252262][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:53:11,813 [DEBUG][       Thread-252262][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:53:11,813 [DEBUG][       Thread-252262][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:53:11,813 [DEBUG][       Thread-252262][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 10:53:11,813 [DEBUG][       Thread-252262][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 10:53:11,813 [DEBUG][       Thread-252262][   transport.py][1871] : client lang: <none>
2025-06-13 10:53:11,813 [DEBUG][       Thread-252262][   transport.py][1871] : server lang: <none>
2025-06-13 10:53:11,813 [DEBUG][       Thread-252262][   transport.py][1871] : kex follows: False
2025-06-13 10:53:11,813 [DEBUG][       Thread-252262][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 10:53:11,813 [DEBUG][       Thread-252262][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 10:53:11,813 [DEBUG][       Thread-252262][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 10:53:11,813 [DEBUG][       Thread-252262][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 10:53:11,813 [DEBUG][       Thread-252262][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 10:53:11,813 [DEBUG][       Thread-252262][   transport.py][1871] : Compression: none
2025-06-13 10:53:11,813 [DEBUG][       Thread-252262][   transport.py][1871] : === End of kex handshake ===
2025-06-13 10:53:11,829 [DEBUG][       Thread-252262][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 10:53:11,829 [DEBUG][       Thread-252262][   transport.py][1871] : Switch to new keys ...
2025-06-13 10:53:11,829 [DEBUG][       Thread-252262][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 10:53:11,829 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 10:53:11,829 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 10:53:11,830 [DEBUG][       Thread-252262][   transport.py][1871] : userauth is OK
2025-06-13 10:53:11,853 [ INFO][       Thread-252262][   transport.py][1871] : Authentication (password) successful!
2025-06-13 10:53:11,854 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 10:53:12,510 [DEBUG][       Thread-252262][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 10:53:12,510 [DEBUG][       Thread-252262][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 10:53:12,553 [DEBUG][       Thread-252262][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 10:53:12,553 [DEBUG][       Thread-252262][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 10:53:12,555 [DEBUG][       Thread-252262][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 10:53:12,568 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 10:53:12,568 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 10:53:12,570 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 10:53:12,570 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 10:53:12,574 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 10:53:12,574 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 10:53:12,574 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 10:53:12,575 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 10:53:12,575 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.369731 -999.00   +9.10  20.34     53   +0.30 1 1 1 1 1   887    0 8.71 -7.60 ----- 23.8 20.3 48.2 26.8 14.1 -29.0 12.7 -30.0 11.8 -28.7 13.1 -26.7
2025-06-13 10:53:12,575 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 10:53:12,575 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 10:53:12,575 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.369731
2025-06-13 10:53:12,575 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 10:53:12,575 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 10:53:12,575 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 10:53:12,575 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 10:53:12,575 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 10:53:12,575 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T10:52:45', tmtdew=10.2, humidity=48.82, cloud=0.0, wind=15.83, temperature=9.47, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T08:52:24.758', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 10:53:12,576 [DEBUG][       Thread-252262][   transport.py][1871] : EOF in transport thread
2025-06-13 10:53:12,648 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 10:53:12,659 [DEBUG][       Thread-252265][   transport.py][1871] : starting thread (client mode): 0x863c8880
2025-06-13 10:53:12,659 [DEBUG][       Thread-252265][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 10:53:12,674 [DEBUG][       Thread-252265][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 10:53:12,674 [ INFO][       Thread-252265][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 10:53:12,683 [DEBUG][       Thread-252265][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 10:53:12,683 [DEBUG][       Thread-252265][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 10:53:12,683 [DEBUG][       Thread-252265][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 10:53:12,683 [DEBUG][       Thread-252265][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:53:12,683 [DEBUG][       Thread-252265][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:53:12,683 [DEBUG][       Thread-252265][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:53:12,683 [DEBUG][       Thread-252265][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:53:12,683 [DEBUG][       Thread-252265][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 10:53:12,683 [DEBUG][       Thread-252265][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 10:53:12,683 [DEBUG][       Thread-252265][   transport.py][1871] : client lang: <none>
2025-06-13 10:53:12,683 [DEBUG][       Thread-252265][   transport.py][1871] : server lang: <none>
2025-06-13 10:53:12,683 [DEBUG][       Thread-252265][   transport.py][1871] : kex follows: False
2025-06-13 10:53:12,683 [DEBUG][       Thread-252265][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 10:53:12,683 [DEBUG][       Thread-252265][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 10:53:12,683 [DEBUG][       Thread-252265][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 10:53:12,683 [DEBUG][       Thread-252265][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 10:53:12,683 [DEBUG][       Thread-252265][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 10:53:12,683 [DEBUG][       Thread-252265][   transport.py][1871] : Compression: none
2025-06-13 10:53:12,683 [DEBUG][       Thread-252265][   transport.py][1871] : === End of kex handshake ===
2025-06-13 10:53:12,737 [DEBUG][       Thread-252265][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 10:53:12,737 [DEBUG][       Thread-252265][   transport.py][1871] : Switch to new keys ...
2025-06-13 10:53:12,737 [DEBUG][       Thread-252265][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 10:53:12,737 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 10:53:12,737 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 10:53:12,794 [DEBUG][       Thread-252265][   transport.py][1871] : userauth is OK
2025-06-13 10:53:12,794 [DEBUG][       Thread-252265][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 10:53:12,794 [DEBUG][       Thread-252265][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 10:53:12,794 [DEBUG][       Thread-252265][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 10:53:12,794 [DEBUG][       Thread-252265][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 10:53:12,808 [ INFO][       Thread-252265][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 10:53:12,809 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 10:53:12,809 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 10:53:13,838 [DEBUG][       Thread-252265][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 10:53:13,839 [DEBUG][       Thread-252265][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 10:53:13,895 [DEBUG][       Thread-252265][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 10:53:13,895 [DEBUG][       Thread-252265][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 10:53:13,903 [DEBUG][       Thread-252265][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 10:53:13,911 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 10:53:13,911 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 10:53:13,919 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 10:53:13,927 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 10:53:13,927 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 10:53:13,927 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 10:53:13,935 [DEBUG][       Thread-252265][   transport.py][1871] : EOF in transport thread
2025-06-13 10:53:19,940 [DEBUG][Thread-252267 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:53:23,937 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 10:53:23,937 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 10:53:23,937 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 10:53:23,939 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 10:53:24,453 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 10, 53, 16), 10.18, 49.0, 0.0, 19.78, 9.51, 0, 0, 0, 2, 0, 0),)
2025-06-13 10:53:24,453 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 10:53:16
2025-06-13 10:53:24,537 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 10:53:24,542 [DEBUG][       Thread-252268][   transport.py][1871] : starting thread (client mode): 0x84206fb0
2025-06-13 10:53:24,542 [DEBUG][       Thread-252268][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 10:53:24,565 [DEBUG][       Thread-252268][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 10:53:24,565 [ INFO][       Thread-252268][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 10:53:24,567 [DEBUG][       Thread-252268][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 10:53:24,567 [DEBUG][       Thread-252268][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 10:53:24,567 [DEBUG][       Thread-252268][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 10:53:24,567 [DEBUG][       Thread-252268][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:53:24,567 [DEBUG][       Thread-252268][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:53:24,567 [DEBUG][       Thread-252268][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:53:24,567 [DEBUG][       Thread-252268][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:53:24,567 [DEBUG][       Thread-252268][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 10:53:24,567 [DEBUG][       Thread-252268][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 10:53:24,567 [DEBUG][       Thread-252268][   transport.py][1871] : client lang: <none>
2025-06-13 10:53:24,567 [DEBUG][       Thread-252268][   transport.py][1871] : server lang: <none>
2025-06-13 10:53:24,567 [DEBUG][       Thread-252268][   transport.py][1871] : kex follows: False
2025-06-13 10:53:24,567 [DEBUG][       Thread-252268][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 10:53:24,567 [DEBUG][       Thread-252268][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 10:53:24,567 [DEBUG][       Thread-252268][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 10:53:24,567 [DEBUG][       Thread-252268][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 10:53:24,567 [DEBUG][       Thread-252268][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 10:53:24,567 [DEBUG][       Thread-252268][   transport.py][1871] : Compression: none
2025-06-13 10:53:24,567 [DEBUG][       Thread-252268][   transport.py][1871] : === End of kex handshake ===
2025-06-13 10:53:24,578 [DEBUG][       Thread-252268][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 10:53:24,578 [DEBUG][       Thread-252268][   transport.py][1871] : Switch to new keys ...
2025-06-13 10:53:24,578 [DEBUG][       Thread-252268][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 10:53:24,579 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 10:53:24,579 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 10:53:24,579 [DEBUG][       Thread-252268][   transport.py][1871] : userauth is OK
2025-06-13 10:53:24,605 [ INFO][       Thread-252268][   transport.py][1871] : Authentication (password) successful!
2025-06-13 10:53:24,605 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 10:53:25,220 [DEBUG][       Thread-252268][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 10:53:25,220 [DEBUG][       Thread-252268][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 10:53:25,265 [DEBUG][       Thread-252268][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 10:53:25,265 [DEBUG][       Thread-252268][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 10:53:25,267 [DEBUG][       Thread-252268][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 10:53:25,279 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 10:53:25,279 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 10:53:25,280 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 10:53:25,281 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 10:53:25,284 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 10:53:25,285 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 10:53:25,285 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 10:53:25,285 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 10:53:25,285 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.370078 -999.00   +9.10  23.91     53   +0.20 1 1 1 1 1   887    0 8.75 -7.87 ----- 23.6 23.9 51.4 28.4 14.1 -28.4 12.7 -30.2 11.8 -28.1 13.1 -26.6
2025-06-13 10:53:25,285 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 10:53:25,285 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 10:53:25,285 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.370078
2025-06-13 10:53:25,286 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 10:53:25,286 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 10:53:25,286 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 10:53:25,286 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 10:53:25,286 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 10:53:25,286 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T10:53:16', tmtdew=10.18, humidity=49.0, cloud=0.0, wind=19.78, temperature=9.51, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T08:52:54.739', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 10:53:25,286 [DEBUG][       Thread-252268][   transport.py][1871] : EOF in transport thread
2025-06-13 10:53:25,358 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 10:53:25,367 [DEBUG][       Thread-252271][   transport.py][1871] : starting thread (client mode): 0x863c8be0
2025-06-13 10:53:25,367 [DEBUG][       Thread-252271][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 10:53:25,382 [DEBUG][       Thread-252271][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 10:53:25,383 [ INFO][       Thread-252271][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 10:53:25,394 [DEBUG][       Thread-252271][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 10:53:25,394 [DEBUG][       Thread-252271][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 10:53:25,394 [DEBUG][       Thread-252271][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 10:53:25,394 [DEBUG][       Thread-252271][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:53:25,394 [DEBUG][       Thread-252271][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:53:25,394 [DEBUG][       Thread-252271][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:53:25,394 [DEBUG][       Thread-252271][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:53:25,394 [DEBUG][       Thread-252271][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 10:53:25,394 [DEBUG][       Thread-252271][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 10:53:25,394 [DEBUG][       Thread-252271][   transport.py][1871] : client lang: <none>
2025-06-13 10:53:25,394 [DEBUG][       Thread-252271][   transport.py][1871] : server lang: <none>
2025-06-13 10:53:25,394 [DEBUG][       Thread-252271][   transport.py][1871] : kex follows: False
2025-06-13 10:53:25,394 [DEBUG][       Thread-252271][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 10:53:25,394 [DEBUG][       Thread-252271][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 10:53:25,394 [DEBUG][       Thread-252271][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 10:53:25,394 [DEBUG][       Thread-252271][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 10:53:25,394 [DEBUG][       Thread-252271][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 10:53:25,394 [DEBUG][       Thread-252271][   transport.py][1871] : Compression: none
2025-06-13 10:53:25,394 [DEBUG][       Thread-252271][   transport.py][1871] : === End of kex handshake ===
2025-06-13 10:53:25,449 [DEBUG][       Thread-252271][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 10:53:25,449 [DEBUG][       Thread-252271][   transport.py][1871] : Switch to new keys ...
2025-06-13 10:53:25,449 [DEBUG][       Thread-252271][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 10:53:25,449 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 10:53:25,449 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 10:53:25,506 [DEBUG][       Thread-252271][   transport.py][1871] : userauth is OK
2025-06-13 10:53:25,506 [DEBUG][       Thread-252271][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 10:53:25,506 [DEBUG][       Thread-252271][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 10:53:25,506 [DEBUG][       Thread-252271][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 10:53:25,506 [DEBUG][       Thread-252271][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 10:53:25,521 [ INFO][       Thread-252271][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 10:53:25,521 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 10:53:25,521 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 10:53:26,560 [DEBUG][       Thread-252271][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 10:53:26,560 [DEBUG][       Thread-252271][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 10:53:26,611 [DEBUG][       Thread-252271][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 10:53:26,611 [DEBUG][       Thread-252271][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 10:53:26,620 [DEBUG][       Thread-252271][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 10:53:26,628 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 10:53:26,628 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 10:53:26,636 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 10:53:26,645 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 10:53:26,645 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 10:53:26,645 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 10:53:26,653 [DEBUG][       Thread-252271][   transport.py][1871] : EOF in transport thread
2025-06-13 10:53:28,955 [DEBUG][Thread-252273 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:53:30,094 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:53:30,095 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:53:36,655 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 10:53:36,655 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 10:53:36,655 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 10:53:36,657 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 10:53:37,122 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 10, 53, 16), 10.18, 49.0, 0.0, 19.78, 9.51, 0, 0, 0, 2, 0, 0),)
2025-06-13 10:53:37,122 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 10:53:16
2025-06-13 10:53:37,218 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 10:53:37,223 [DEBUG][       Thread-252274][   transport.py][1871] : starting thread (client mode): 0x84206650
2025-06-13 10:53:37,223 [DEBUG][       Thread-252274][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 10:53:37,244 [DEBUG][       Thread-252274][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 10:53:37,244 [ INFO][       Thread-252274][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 10:53:37,247 [DEBUG][       Thread-252274][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 10:53:37,247 [DEBUG][       Thread-252274][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 10:53:37,247 [DEBUG][       Thread-252274][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 10:53:37,247 [DEBUG][       Thread-252274][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:53:37,247 [DEBUG][       Thread-252274][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:53:37,247 [DEBUG][       Thread-252274][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:53:37,247 [DEBUG][       Thread-252274][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:53:37,247 [DEBUG][       Thread-252274][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 10:53:37,247 [DEBUG][       Thread-252274][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 10:53:37,247 [DEBUG][       Thread-252274][   transport.py][1871] : client lang: <none>
2025-06-13 10:53:37,247 [DEBUG][       Thread-252274][   transport.py][1871] : server lang: <none>
2025-06-13 10:53:37,247 [DEBUG][       Thread-252274][   transport.py][1871] : kex follows: False
2025-06-13 10:53:37,247 [DEBUG][       Thread-252274][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 10:53:37,247 [DEBUG][       Thread-252274][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 10:53:37,247 [DEBUG][       Thread-252274][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 10:53:37,248 [DEBUG][       Thread-252274][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 10:53:37,248 [DEBUG][       Thread-252274][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 10:53:37,248 [DEBUG][       Thread-252274][   transport.py][1871] : Compression: none
2025-06-13 10:53:37,248 [DEBUG][       Thread-252274][   transport.py][1871] : === End of kex handshake ===
2025-06-13 10:53:37,263 [DEBUG][       Thread-252274][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 10:53:37,264 [DEBUG][       Thread-252274][   transport.py][1871] : Switch to new keys ...
2025-06-13 10:53:37,264 [DEBUG][       Thread-252274][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 10:53:37,264 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 10:53:37,264 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 10:53:37,265 [DEBUG][       Thread-252274][   transport.py][1871] : userauth is OK
2025-06-13 10:53:37,289 [ INFO][       Thread-252274][   transport.py][1871] : Authentication (password) successful!
2025-06-13 10:53:37,289 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 10:53:37,922 [DEBUG][       Thread-252274][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 10:53:37,922 [DEBUG][       Thread-252274][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 10:53:37,968 [DEBUG][       Thread-252274][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 10:53:37,969 [DEBUG][       Thread-252274][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 10:53:37,971 [DEBUG][       Thread-252274][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 10:53:37,977 [DEBUG][Thread-252276 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:53:37,983 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 10:53:37,983 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 10:53:37,984 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 10:53:37,985 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 10:53:37,988 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 10:53:37,989 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 10:53:37,989 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 10:53:37,990 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 10:53:37,990 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.370078 -999.00   +9.10  23.91     53   +0.20 1 1 1 1 1   887    0 8.75 -7.87 ----- 23.6 23.9 51.4 28.4 14.1 -28.4 12.7 -30.2 11.8 -28.1 13.1 -26.6
2025-06-13 10:53:37,990 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 10:53:37,990 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 10:53:37,990 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.370078
2025-06-13 10:53:37,990 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 10:53:37,990 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 10:53:37,990 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 10:53:37,990 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 10:53:37,990 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 10:53:37,990 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T10:53:16', tmtdew=10.18, humidity=49.0, cloud=0.0, wind=19.78, temperature=9.51, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T08:52:54.739', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 10:53:37,991 [DEBUG][       Thread-252274][   transport.py][1871] : EOF in transport thread
2025-06-13 10:53:38,062 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 10:53:38,073 [DEBUG][       Thread-252278][   transport.py][1871] : starting thread (client mode): 0x867fd960
2025-06-13 10:53:38,073 [DEBUG][       Thread-252278][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 10:53:38,088 [DEBUG][       Thread-252278][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 10:53:38,088 [ INFO][       Thread-252278][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 10:53:38,095 [DEBUG][       Thread-252278][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 10:53:38,095 [DEBUG][       Thread-252278][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 10:53:38,096 [DEBUG][       Thread-252278][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 10:53:38,096 [DEBUG][       Thread-252278][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:53:38,096 [DEBUG][       Thread-252278][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:53:38,096 [DEBUG][       Thread-252278][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:53:38,096 [DEBUG][       Thread-252278][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:53:38,096 [DEBUG][       Thread-252278][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 10:53:38,096 [DEBUG][       Thread-252278][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 10:53:38,096 [DEBUG][       Thread-252278][   transport.py][1871] : client lang: <none>
2025-06-13 10:53:38,096 [DEBUG][       Thread-252278][   transport.py][1871] : server lang: <none>
2025-06-13 10:53:38,096 [DEBUG][       Thread-252278][   transport.py][1871] : kex follows: False
2025-06-13 10:53:38,096 [DEBUG][       Thread-252278][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 10:53:38,096 [DEBUG][       Thread-252278][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 10:53:38,096 [DEBUG][       Thread-252278][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 10:53:38,096 [DEBUG][       Thread-252278][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 10:53:38,096 [DEBUG][       Thread-252278][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 10:53:38,096 [DEBUG][       Thread-252278][   transport.py][1871] : Compression: none
2025-06-13 10:53:38,096 [DEBUG][       Thread-252278][   transport.py][1871] : === End of kex handshake ===
2025-06-13 10:53:38,152 [DEBUG][       Thread-252278][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 10:53:38,153 [DEBUG][       Thread-252278][   transport.py][1871] : Switch to new keys ...
2025-06-13 10:53:38,153 [DEBUG][       Thread-252278][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 10:53:38,153 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 10:53:38,153 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 10:53:38,210 [DEBUG][       Thread-252278][   transport.py][1871] : userauth is OK
2025-06-13 10:53:38,210 [DEBUG][       Thread-252278][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 10:53:38,210 [DEBUG][       Thread-252278][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 10:53:38,210 [DEBUG][       Thread-252278][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 10:53:38,210 [DEBUG][       Thread-252278][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 10:53:38,224 [ INFO][       Thread-252278][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 10:53:38,224 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 10:53:38,224 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 10:53:39,254 [DEBUG][       Thread-252278][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 10:53:39,254 [DEBUG][       Thread-252278][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 10:53:39,303 [DEBUG][       Thread-252278][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 10:53:39,304 [DEBUG][       Thread-252278][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 10:53:39,312 [DEBUG][       Thread-252278][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 10:53:39,320 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 10:53:39,320 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 10:53:39,329 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 10:53:39,341 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 10:53:39,341 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 10:53:39,341 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 10:53:39,353 [DEBUG][       Thread-252278][   transport.py][1871] : EOF in transport thread
2025-06-13 10:53:42,175 [DEBUG][Thread-252280 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:53:43,232 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:53:43,233 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:53:46,994 [DEBUG][Thread-252281 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:53:49,348 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 10:53:49,348 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 10:53:49,348 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 10:53:49,349 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 10:53:49,844 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 10, 53, 16), 10.18, 49.0, 0.0, 19.78, 9.51, 0, 0, 0, 2, 0, 0),)
2025-06-13 10:53:49,844 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 10:53:16
2025-06-13 10:53:49,932 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 10:53:49,938 [DEBUG][       Thread-252282][   transport.py][1871] : starting thread (client mode): 0x842074c0
2025-06-13 10:53:49,938 [DEBUG][       Thread-252282][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 10:53:49,958 [DEBUG][       Thread-252282][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 10:53:49,958 [ INFO][       Thread-252282][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 10:53:49,961 [DEBUG][       Thread-252282][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 10:53:49,961 [DEBUG][       Thread-252282][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 10:53:49,961 [DEBUG][       Thread-252282][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 10:53:49,961 [DEBUG][       Thread-252282][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:53:49,961 [DEBUG][       Thread-252282][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:53:49,961 [DEBUG][       Thread-252282][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:53:49,961 [DEBUG][       Thread-252282][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:53:49,961 [DEBUG][       Thread-252282][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 10:53:49,961 [DEBUG][       Thread-252282][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 10:53:49,961 [DEBUG][       Thread-252282][   transport.py][1871] : client lang: <none>
2025-06-13 10:53:49,961 [DEBUG][       Thread-252282][   transport.py][1871] : server lang: <none>
2025-06-13 10:53:49,961 [DEBUG][       Thread-252282][   transport.py][1871] : kex follows: False
2025-06-13 10:53:49,961 [DEBUG][       Thread-252282][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 10:53:49,961 [DEBUG][       Thread-252282][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 10:53:49,961 [DEBUG][       Thread-252282][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 10:53:49,961 [DEBUG][       Thread-252282][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 10:53:49,961 [DEBUG][       Thread-252282][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 10:53:49,961 [DEBUG][       Thread-252282][   transport.py][1871] : Compression: none
2025-06-13 10:53:49,961 [DEBUG][       Thread-252282][   transport.py][1871] : === End of kex handshake ===
2025-06-13 10:53:49,976 [DEBUG][       Thread-252282][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 10:53:49,976 [DEBUG][       Thread-252282][   transport.py][1871] : Switch to new keys ...
2025-06-13 10:53:49,977 [DEBUG][       Thread-252282][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 10:53:49,977 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 10:53:49,977 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 10:53:49,977 [DEBUG][       Thread-252282][   transport.py][1871] : userauth is OK
2025-06-13 10:53:50,001 [ INFO][       Thread-252282][   transport.py][1871] : Authentication (password) successful!
2025-06-13 10:53:50,002 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 10:53:50,619 [DEBUG][       Thread-252282][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 10:53:50,619 [DEBUG][       Thread-252282][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 10:53:50,660 [DEBUG][       Thread-252282][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 10:53:50,660 [DEBUG][       Thread-252282][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 10:53:50,663 [DEBUG][       Thread-252282][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 10:53:50,674 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 10:53:50,674 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 10:53:50,675 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 10:53:50,676 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 10:53:50,679 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 10:53:50,679 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 10:53:50,679 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 10:53:50,680 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 10:53:50,680 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.370078 -999.00   +9.10  23.91     53   +0.20 1 1 1 1 1   887    0 8.75 -7.87 ----- 23.6 23.9 51.4 28.4 14.1 -28.4 12.7 -30.2 11.8 -28.1 13.1 -26.6
2025-06-13 10:53:50,680 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 10:53:50,680 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 10:53:50,680 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.370078
2025-06-13 10:53:50,680 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 10:53:50,680 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 10:53:50,680 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 10:53:50,680 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 10:53:50,680 [DEBUG][       Thread-252282][   transport.py][1871] : EOF in transport thread
2025-06-13 10:53:50,680 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 10:53:50,680 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T10:53:16', tmtdew=10.18, humidity=49.0, cloud=0.0, wind=19.78, temperature=9.51, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T08:52:54.739', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 10:53:50,758 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 10:53:50,770 [DEBUG][       Thread-252285][   transport.py][1871] : starting thread (client mode): 0x863bf040
2025-06-13 10:53:50,770 [DEBUG][       Thread-252285][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 10:53:50,785 [DEBUG][       Thread-252285][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 10:53:50,785 [ INFO][       Thread-252285][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 10:53:50,794 [DEBUG][       Thread-252285][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 10:53:50,794 [DEBUG][       Thread-252285][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 10:53:50,794 [DEBUG][       Thread-252285][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 10:53:50,794 [DEBUG][       Thread-252285][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:53:50,794 [DEBUG][       Thread-252285][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:53:50,794 [DEBUG][       Thread-252285][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:53:50,794 [DEBUG][       Thread-252285][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:53:50,794 [DEBUG][       Thread-252285][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 10:53:50,794 [DEBUG][       Thread-252285][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 10:53:50,794 [DEBUG][       Thread-252285][   transport.py][1871] : client lang: <none>
2025-06-13 10:53:50,794 [DEBUG][       Thread-252285][   transport.py][1871] : server lang: <none>
2025-06-13 10:53:50,794 [DEBUG][       Thread-252285][   transport.py][1871] : kex follows: False
2025-06-13 10:53:50,794 [DEBUG][       Thread-252285][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 10:53:50,794 [DEBUG][       Thread-252285][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 10:53:50,794 [DEBUG][       Thread-252285][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 10:53:50,794 [DEBUG][       Thread-252285][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 10:53:50,794 [DEBUG][       Thread-252285][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 10:53:50,794 [DEBUG][       Thread-252285][   transport.py][1871] : Compression: none
2025-06-13 10:53:50,794 [DEBUG][       Thread-252285][   transport.py][1871] : === End of kex handshake ===
2025-06-13 10:53:50,859 [DEBUG][       Thread-252285][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 10:53:50,859 [DEBUG][       Thread-252285][   transport.py][1871] : Switch to new keys ...
2025-06-13 10:53:50,859 [DEBUG][       Thread-252285][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 10:53:50,859 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 10:53:50,860 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 10:53:50,914 [DEBUG][       Thread-252285][   transport.py][1871] : userauth is OK
2025-06-13 10:53:50,914 [DEBUG][       Thread-252285][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 10:53:50,914 [DEBUG][       Thread-252285][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 10:53:50,914 [DEBUG][       Thread-252285][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 10:53:50,914 [DEBUG][       Thread-252285][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 10:53:50,929 [ INFO][       Thread-252285][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 10:53:50,929 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 10:53:50,929 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 10:53:51,995 [DEBUG][       Thread-252285][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 10:53:51,995 [DEBUG][       Thread-252285][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 10:53:52,043 [DEBUG][       Thread-252285][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 10:53:52,043 [DEBUG][       Thread-252285][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 10:53:52,052 [DEBUG][       Thread-252285][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 10:53:52,060 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 10:53:52,060 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 10:53:52,068 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 10:53:52,076 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 10:53:52,076 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 10:53:52,076 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 10:53:52,084 [DEBUG][       Thread-252285][   transport.py][1871] : EOF in transport thread
2025-06-13 10:53:56,008 [DEBUG][Thread-252287 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:54:02,086 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 10:54:02,086 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 10:54:02,086 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 10:54:02,087 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 10:54:02,578 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 10, 53, 48), 10.22, 48.87, 0.0, 18.03, 9.49, 0, 0, 0, 2, 0, 0),)
2025-06-13 10:54:02,579 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 10:53:48
2025-06-13 10:54:02,665 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 10:54:02,669 [DEBUG][       Thread-252288][   transport.py][1871] : starting thread (client mode): 0x863bc1c0
2025-06-13 10:54:02,669 [DEBUG][       Thread-252288][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 10:54:02,690 [DEBUG][       Thread-252288][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 10:54:02,690 [ INFO][       Thread-252288][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 10:54:02,693 [DEBUG][       Thread-252288][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 10:54:02,693 [DEBUG][       Thread-252288][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 10:54:02,693 [DEBUG][       Thread-252288][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 10:54:02,693 [DEBUG][       Thread-252288][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:54:02,693 [DEBUG][       Thread-252288][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:54:02,693 [DEBUG][       Thread-252288][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:54:02,693 [DEBUG][       Thread-252288][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:54:02,693 [DEBUG][       Thread-252288][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 10:54:02,693 [DEBUG][       Thread-252288][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 10:54:02,693 [DEBUG][       Thread-252288][   transport.py][1871] : client lang: <none>
2025-06-13 10:54:02,693 [DEBUG][       Thread-252288][   transport.py][1871] : server lang: <none>
2025-06-13 10:54:02,693 [DEBUG][       Thread-252288][   transport.py][1871] : kex follows: False
2025-06-13 10:54:02,693 [DEBUG][       Thread-252288][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 10:54:02,693 [DEBUG][       Thread-252288][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 10:54:02,693 [DEBUG][       Thread-252288][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 10:54:02,693 [DEBUG][       Thread-252288][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 10:54:02,694 [DEBUG][       Thread-252288][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 10:54:02,694 [DEBUG][       Thread-252288][   transport.py][1871] : Compression: none
2025-06-13 10:54:02,694 [DEBUG][       Thread-252288][   transport.py][1871] : === End of kex handshake ===
2025-06-13 10:54:02,709 [DEBUG][       Thread-252288][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 10:54:02,710 [DEBUG][       Thread-252288][   transport.py][1871] : Switch to new keys ...
2025-06-13 10:54:02,710 [DEBUG][       Thread-252288][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 10:54:02,710 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 10:54:02,710 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 10:54:02,710 [DEBUG][       Thread-252288][   transport.py][1871] : userauth is OK
2025-06-13 10:54:02,734 [ INFO][       Thread-252288][   transport.py][1871] : Authentication (password) successful!
2025-06-13 10:54:02,734 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 10:54:03,386 [DEBUG][       Thread-252288][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 10:54:03,386 [DEBUG][       Thread-252288][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 10:54:03,428 [DEBUG][       Thread-252288][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 10:54:03,428 [DEBUG][       Thread-252288][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 10:54:03,430 [DEBUG][       Thread-252288][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 10:54:03,444 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 10:54:03,444 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 10:54:03,445 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 10:54:03,445 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 10:54:03,448 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 10:54:03,448 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 10:54:03,449 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 10:54:03,449 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 10:54:03,449 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.370426 -999.00   +9.10  23.09     53   +0.20 1 1 1 1 1   887    0 8.53 -7.24 ----- 23.6 23.1 47.0 25.3 14.1 -28.3 12.7 -30.2 11.7 -27.9 13.0 -26.6
2025-06-13 10:54:03,449 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 10:54:03,449 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 10:54:03,449 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.370426
2025-06-13 10:54:03,449 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 10:54:03,449 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 10:54:03,449 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 10:54:03,449 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 10:54:03,449 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 10:54:03,449 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T10:53:48', tmtdew=10.22, humidity=48.87, cloud=0.0, wind=18.03, temperature=9.49, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T08:53:24.806', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 10:54:03,449 [DEBUG][       Thread-252288][   transport.py][1871] : EOF in transport thread
2025-06-13 10:54:03,521 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 10:54:03,531 [DEBUG][       Thread-252291][   transport.py][1871] : starting thread (client mode): 0x8636a830
2025-06-13 10:54:03,531 [DEBUG][       Thread-252291][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 10:54:03,545 [DEBUG][       Thread-252291][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 10:54:03,545 [ INFO][       Thread-252291][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 10:54:03,553 [DEBUG][       Thread-252291][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 10:54:03,553 [DEBUG][       Thread-252291][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 10:54:03,553 [DEBUG][       Thread-252291][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 10:54:03,553 [DEBUG][       Thread-252291][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:54:03,553 [DEBUG][       Thread-252291][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:54:03,553 [DEBUG][       Thread-252291][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:54:03,553 [DEBUG][       Thread-252291][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:54:03,553 [DEBUG][       Thread-252291][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 10:54:03,553 [DEBUG][       Thread-252291][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 10:54:03,553 [DEBUG][       Thread-252291][   transport.py][1871] : client lang: <none>
2025-06-13 10:54:03,553 [DEBUG][       Thread-252291][   transport.py][1871] : server lang: <none>
2025-06-13 10:54:03,553 [DEBUG][       Thread-252291][   transport.py][1871] : kex follows: False
2025-06-13 10:54:03,553 [DEBUG][       Thread-252291][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 10:54:03,553 [DEBUG][       Thread-252291][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 10:54:03,553 [DEBUG][       Thread-252291][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 10:54:03,553 [DEBUG][       Thread-252291][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 10:54:03,553 [DEBUG][       Thread-252291][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 10:54:03,553 [DEBUG][       Thread-252291][   transport.py][1871] : Compression: none
2025-06-13 10:54:03,553 [DEBUG][       Thread-252291][   transport.py][1871] : === End of kex handshake ===
2025-06-13 10:54:03,613 [DEBUG][       Thread-252291][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 10:54:03,613 [DEBUG][       Thread-252291][   transport.py][1871] : Switch to new keys ...
2025-06-13 10:54:03,614 [DEBUG][       Thread-252291][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 10:54:03,614 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 10:54:03,614 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 10:54:03,677 [DEBUG][       Thread-252291][   transport.py][1871] : userauth is OK
2025-06-13 10:54:03,677 [DEBUG][       Thread-252291][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 10:54:03,677 [DEBUG][       Thread-252291][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 10:54:03,677 [DEBUG][       Thread-252291][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 10:54:03,677 [DEBUG][       Thread-252291][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 10:54:03,691 [ INFO][       Thread-252291][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 10:54:03,691 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 10:54:03,691 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 10:54:04,703 [DEBUG][       Thread-252291][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 10:54:04,703 [DEBUG][       Thread-252291][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 10:54:04,751 [DEBUG][       Thread-252291][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 10:54:04,751 [DEBUG][       Thread-252291][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 10:54:04,764 [DEBUG][       Thread-252291][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 10:54:04,773 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 10:54:04,773 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 10:54:04,785 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 10:54:04,796 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 10:54:04,796 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 10:54:04,796 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 10:54:04,807 [DEBUG][       Thread-252291][   transport.py][1871] : EOF in transport thread
2025-06-13 10:54:05,023 [DEBUG][Thread-252293 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:54:07,544 [DEBUG][Thread-252294 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:54:14,047 [DEBUG][Thread-252295 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:54:14,804 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 10:54:14,804 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 10:54:14,804 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 10:54:14,805 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 10:54:15,261 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 10, 53, 48), 10.22, 48.87, 0.0, 18.03, 9.49, 0, 0, 0, 2, 0, 0),)
2025-06-13 10:54:15,261 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 10:53:48
2025-06-13 10:54:15,359 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 10:54:15,365 [DEBUG][       Thread-252296][   transport.py][1871] : starting thread (client mode): 0x842041f0
2025-06-13 10:54:15,365 [DEBUG][       Thread-252296][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 10:54:15,384 [DEBUG][       Thread-252296][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 10:54:15,384 [ INFO][       Thread-252296][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 10:54:15,388 [DEBUG][       Thread-252296][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 10:54:15,388 [DEBUG][       Thread-252296][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 10:54:15,388 [DEBUG][       Thread-252296][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 10:54:15,388 [DEBUG][       Thread-252296][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:54:15,388 [DEBUG][       Thread-252296][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:54:15,388 [DEBUG][       Thread-252296][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:54:15,388 [DEBUG][       Thread-252296][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:54:15,388 [DEBUG][       Thread-252296][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 10:54:15,388 [DEBUG][       Thread-252296][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 10:54:15,388 [DEBUG][       Thread-252296][   transport.py][1871] : client lang: <none>
2025-06-13 10:54:15,388 [DEBUG][       Thread-252296][   transport.py][1871] : server lang: <none>
2025-06-13 10:54:15,388 [DEBUG][       Thread-252296][   transport.py][1871] : kex follows: False
2025-06-13 10:54:15,388 [DEBUG][       Thread-252296][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 10:54:15,388 [DEBUG][       Thread-252296][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 10:54:15,388 [DEBUG][       Thread-252296][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 10:54:15,388 [DEBUG][       Thread-252296][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 10:54:15,388 [DEBUG][       Thread-252296][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 10:54:15,388 [DEBUG][       Thread-252296][   transport.py][1871] : Compression: none
2025-06-13 10:54:15,388 [DEBUG][       Thread-252296][   transport.py][1871] : === End of kex handshake ===
2025-06-13 10:54:15,403 [DEBUG][       Thread-252296][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 10:54:15,403 [DEBUG][       Thread-252296][   transport.py][1871] : Switch to new keys ...
2025-06-13 10:54:15,404 [DEBUG][       Thread-252296][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 10:54:15,404 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 10:54:15,404 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 10:54:15,404 [DEBUG][       Thread-252296][   transport.py][1871] : userauth is OK
2025-06-13 10:54:15,417 [ INFO][       Thread-252296][   transport.py][1871] : Authentication (password) successful!
2025-06-13 10:54:15,417 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 10:54:16,095 [DEBUG][       Thread-252296][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 10:54:16,095 [DEBUG][       Thread-252296][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 10:54:16,137 [DEBUG][       Thread-252296][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 10:54:16,137 [DEBUG][       Thread-252296][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 10:54:16,139 [DEBUG][       Thread-252296][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 10:54:16,153 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 10:54:16,154 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 10:54:16,155 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 10:54:16,156 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 10:54:16,158 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 10:54:16,159 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 10:54:16,159 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 10:54:16,159 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 10:54:16,159 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.370426 -999.00   +9.10  23.09     53   +0.20 1 1 1 1 1   887    0 8.53 -7.24 ----- 23.6 23.1 47.0 25.3 14.1 -28.3 12.7 -30.2 11.7 -27.9 13.0 -26.6
2025-06-13 10:54:16,159 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 10:54:16,159 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 10:54:16,159 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.370426
2025-06-13 10:54:16,160 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 10:54:16,160 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 10:54:16,160 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 10:54:16,160 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 10:54:16,160 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 10:54:16,160 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T10:53:48', tmtdew=10.22, humidity=48.87, cloud=0.0, wind=18.03, temperature=9.49, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T08:53:24.806', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 10:54:16,161 [DEBUG][       Thread-252296][   transport.py][1871] : EOF in transport thread
2025-06-13 10:54:16,232 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 10:54:16,243 [DEBUG][       Thread-252299][   transport.py][1871] : starting thread (client mode): 0x863a46a0
2025-06-13 10:54:16,243 [DEBUG][       Thread-252299][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 10:54:16,260 [DEBUG][       Thread-252299][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 10:54:16,260 [ INFO][       Thread-252299][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 10:54:16,268 [DEBUG][       Thread-252299][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 10:54:16,268 [DEBUG][       Thread-252299][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 10:54:16,268 [DEBUG][       Thread-252299][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 10:54:16,268 [DEBUG][       Thread-252299][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:54:16,268 [DEBUG][       Thread-252299][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:54:16,268 [DEBUG][       Thread-252299][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:54:16,268 [DEBUG][       Thread-252299][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:54:16,268 [DEBUG][       Thread-252299][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 10:54:16,268 [DEBUG][       Thread-252299][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 10:54:16,268 [DEBUG][       Thread-252299][   transport.py][1871] : client lang: <none>
2025-06-13 10:54:16,268 [DEBUG][       Thread-252299][   transport.py][1871] : server lang: <none>
2025-06-13 10:54:16,268 [DEBUG][       Thread-252299][   transport.py][1871] : kex follows: False
2025-06-13 10:54:16,268 [DEBUG][       Thread-252299][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 10:54:16,268 [DEBUG][       Thread-252299][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 10:54:16,268 [DEBUG][       Thread-252299][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 10:54:16,268 [DEBUG][       Thread-252299][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 10:54:16,268 [DEBUG][       Thread-252299][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 10:54:16,268 [DEBUG][       Thread-252299][   transport.py][1871] : Compression: none
2025-06-13 10:54:16,268 [DEBUG][       Thread-252299][   transport.py][1871] : === End of kex handshake ===
2025-06-13 10:54:16,329 [DEBUG][       Thread-252299][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 10:54:16,329 [DEBUG][       Thread-252299][   transport.py][1871] : Switch to new keys ...
2025-06-13 10:54:16,329 [DEBUG][       Thread-252299][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 10:54:16,329 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 10:54:16,329 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 10:54:16,386 [DEBUG][       Thread-252299][   transport.py][1871] : userauth is OK
2025-06-13 10:54:16,386 [DEBUG][       Thread-252299][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 10:54:16,386 [DEBUG][       Thread-252299][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 10:54:16,386 [DEBUG][       Thread-252299][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 10:54:16,386 [DEBUG][       Thread-252299][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 10:54:16,401 [ INFO][       Thread-252299][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 10:54:16,402 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 10:54:16,402 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 10:54:17,393 [DEBUG][       Thread-252299][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 10:54:17,393 [DEBUG][       Thread-252299][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 10:54:17,443 [DEBUG][       Thread-252299][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 10:54:17,443 [DEBUG][       Thread-252299][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 10:54:17,452 [DEBUG][       Thread-252299][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 10:54:17,465 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 10:54:17,466 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 10:54:17,476 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 10:54:17,484 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 10:54:17,484 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 10:54:17,484 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 10:54:17,493 [DEBUG][       Thread-252299][   transport.py][1871] : EOF in transport thread
2025-06-13 10:54:23,061 [DEBUG][Thread-252301 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:54:27,495 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 10:54:27,495 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 10:54:27,495 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 10:54:27,497 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 10:54:28,012 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 10, 54, 20), 10.16, 48.98, 0.0, 15.12, 9.49, 0, 0, 0, 2, 0, 0),)
2025-06-13 10:54:28,013 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 10:54:20
2025-06-13 10:54:28,103 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 10:54:28,107 [DEBUG][       Thread-252302][   transport.py][1871] : starting thread (client mode): 0x863bdb70
2025-06-13 10:54:28,108 [DEBUG][       Thread-252302][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 10:54:28,127 [DEBUG][       Thread-252302][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 10:54:28,127 [ INFO][       Thread-252302][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 10:54:28,130 [DEBUG][       Thread-252302][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 10:54:28,130 [DEBUG][       Thread-252302][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 10:54:28,131 [DEBUG][       Thread-252302][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 10:54:28,131 [DEBUG][       Thread-252302][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:54:28,131 [DEBUG][       Thread-252302][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:54:28,131 [DEBUG][       Thread-252302][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:54:28,131 [DEBUG][       Thread-252302][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:54:28,131 [DEBUG][       Thread-252302][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 10:54:28,131 [DEBUG][       Thread-252302][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 10:54:28,131 [DEBUG][       Thread-252302][   transport.py][1871] : client lang: <none>
2025-06-13 10:54:28,131 [DEBUG][       Thread-252302][   transport.py][1871] : server lang: <none>
2025-06-13 10:54:28,131 [DEBUG][       Thread-252302][   transport.py][1871] : kex follows: False
2025-06-13 10:54:28,131 [DEBUG][       Thread-252302][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 10:54:28,131 [DEBUG][       Thread-252302][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 10:54:28,131 [DEBUG][       Thread-252302][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 10:54:28,131 [DEBUG][       Thread-252302][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 10:54:28,131 [DEBUG][       Thread-252302][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 10:54:28,131 [DEBUG][       Thread-252302][   transport.py][1871] : Compression: none
2025-06-13 10:54:28,131 [DEBUG][       Thread-252302][   transport.py][1871] : === End of kex handshake ===
2025-06-13 10:54:28,147 [DEBUG][       Thread-252302][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 10:54:28,148 [DEBUG][       Thread-252302][   transport.py][1871] : Switch to new keys ...
2025-06-13 10:54:28,148 [DEBUG][       Thread-252302][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 10:54:28,148 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 10:54:28,149 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 10:54:28,150 [DEBUG][       Thread-252302][   transport.py][1871] : userauth is OK
2025-06-13 10:54:28,174 [ INFO][       Thread-252302][   transport.py][1871] : Authentication (password) successful!
2025-06-13 10:54:28,175 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 10:54:28,811 [DEBUG][       Thread-252302][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 10:54:28,811 [DEBUG][       Thread-252302][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 10:54:28,853 [DEBUG][       Thread-252302][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 10:54:28,853 [DEBUG][       Thread-252302][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 10:54:28,856 [DEBUG][       Thread-252302][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 10:54:28,867 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 10:54:28,868 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 10:54:28,869 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 10:54:28,871 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 10:54:28,876 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 10:54:28,878 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 10:54:28,878 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 10:54:28,878 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 10:54:28,879 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.370426 -999.00   +9.10  23.09     53   +0.20 1 1 1 1 1   887    0 8.53 -7.24 ----- 23.6 23.1 47.0 25.3 14.1 -28.3 12.7 -30.2 11.7 -27.9 13.0 -26.6
2025-06-13 10:54:28,879 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 10:54:28,879 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 10:54:28,879 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.370426
2025-06-13 10:54:28,879 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 10:54:28,880 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 10:54:28,880 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 10:54:28,880 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 10:54:28,880 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 10:54:28,880 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T10:54:20', tmtdew=10.16, humidity=48.98, cloud=0.0, wind=15.12, temperature=9.49, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T08:53:24.806', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 10:54:28,881 [DEBUG][       Thread-252302][   transport.py][1871] : EOF in transport thread
2025-06-13 10:54:28,964 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 10:54:28,975 [DEBUG][       Thread-252305][   transport.py][1871] : starting thread (client mode): 0x867b7070
2025-06-13 10:54:28,975 [DEBUG][       Thread-252305][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 10:54:28,990 [DEBUG][       Thread-252305][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 10:54:28,990 [ INFO][       Thread-252305][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 10:54:28,997 [DEBUG][       Thread-252305][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 10:54:28,998 [DEBUG][       Thread-252305][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 10:54:28,998 [DEBUG][       Thread-252305][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 10:54:28,998 [DEBUG][       Thread-252305][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:54:28,998 [DEBUG][       Thread-252305][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:54:28,998 [DEBUG][       Thread-252305][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:54:28,998 [DEBUG][       Thread-252305][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:54:28,998 [DEBUG][       Thread-252305][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 10:54:28,998 [DEBUG][       Thread-252305][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 10:54:28,998 [DEBUG][       Thread-252305][   transport.py][1871] : client lang: <none>
2025-06-13 10:54:28,998 [DEBUG][       Thread-252305][   transport.py][1871] : server lang: <none>
2025-06-13 10:54:28,998 [DEBUG][       Thread-252305][   transport.py][1871] : kex follows: False
2025-06-13 10:54:28,998 [DEBUG][       Thread-252305][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 10:54:28,998 [DEBUG][       Thread-252305][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 10:54:28,998 [DEBUG][       Thread-252305][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 10:54:28,998 [DEBUG][       Thread-252305][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 10:54:28,998 [DEBUG][       Thread-252305][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 10:54:28,998 [DEBUG][       Thread-252305][   transport.py][1871] : Compression: none
2025-06-13 10:54:28,998 [DEBUG][       Thread-252305][   transport.py][1871] : === End of kex handshake ===
2025-06-13 10:54:29,058 [DEBUG][       Thread-252305][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 10:54:29,059 [DEBUG][       Thread-252305][   transport.py][1871] : Switch to new keys ...
2025-06-13 10:54:29,059 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 10:54:29,060 [DEBUG][       Thread-252305][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 10:54:29,060 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 10:54:29,114 [DEBUG][       Thread-252305][   transport.py][1871] : userauth is OK
2025-06-13 10:54:29,114 [DEBUG][       Thread-252305][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 10:54:29,115 [DEBUG][       Thread-252305][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 10:54:29,115 [DEBUG][       Thread-252305][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 10:54:29,115 [DEBUG][       Thread-252305][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 10:54:29,133 [ INFO][       Thread-252305][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 10:54:29,134 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 10:54:29,134 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 10:54:30,146 [DEBUG][       Thread-252305][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 10:54:30,146 [DEBUG][       Thread-252305][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 10:54:30,197 [DEBUG][       Thread-252305][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 10:54:30,197 [DEBUG][       Thread-252305][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 10:54:30,208 [DEBUG][       Thread-252305][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 10:54:30,218 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 10:54:30,218 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 10:54:30,227 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 10:54:30,233 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:54:30,235 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:54:30,238 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 10:54:30,239 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 10:54:30,239 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 10:54:30,247 [DEBUG][       Thread-252305][   transport.py][1871] : EOF in transport thread
2025-06-13 10:54:32,078 [DEBUG][Thread-252307 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:54:40,249 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 10:54:40,250 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 10:54:40,250 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 10:54:40,252 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 10:54:40,719 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 10, 54, 20), 10.16, 48.98, 0.0, 15.12, 9.49, 0, 0, 0, 2, 0, 0),)
2025-06-13 10:54:40,719 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 10:54:20
2025-06-13 10:54:40,801 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 10:54:40,806 [DEBUG][       Thread-252308][   transport.py][1871] : starting thread (client mode): 0x867b4970
2025-06-13 10:54:40,806 [DEBUG][       Thread-252308][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 10:54:40,823 [DEBUG][       Thread-252308][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 10:54:40,824 [ INFO][       Thread-252308][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 10:54:40,827 [DEBUG][       Thread-252308][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 10:54:40,827 [DEBUG][       Thread-252308][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 10:54:40,827 [DEBUG][       Thread-252308][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 10:54:40,827 [DEBUG][       Thread-252308][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:54:40,827 [DEBUG][       Thread-252308][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:54:40,827 [DEBUG][       Thread-252308][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:54:40,827 [DEBUG][       Thread-252308][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:54:40,827 [DEBUG][       Thread-252308][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 10:54:40,827 [DEBUG][       Thread-252308][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 10:54:40,827 [DEBUG][       Thread-252308][   transport.py][1871] : client lang: <none>
2025-06-13 10:54:40,827 [DEBUG][       Thread-252308][   transport.py][1871] : server lang: <none>
2025-06-13 10:54:40,827 [DEBUG][       Thread-252308][   transport.py][1871] : kex follows: False
2025-06-13 10:54:40,827 [DEBUG][       Thread-252308][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 10:54:40,827 [DEBUG][       Thread-252308][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 10:54:40,827 [DEBUG][       Thread-252308][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 10:54:40,827 [DEBUG][       Thread-252308][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 10:54:40,827 [DEBUG][       Thread-252308][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 10:54:40,827 [DEBUG][       Thread-252308][   transport.py][1871] : Compression: none
2025-06-13 10:54:40,827 [DEBUG][       Thread-252308][   transport.py][1871] : === End of kex handshake ===
2025-06-13 10:54:40,844 [DEBUG][       Thread-252308][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 10:54:40,844 [DEBUG][       Thread-252308][   transport.py][1871] : Switch to new keys ...
2025-06-13 10:54:40,844 [DEBUG][       Thread-252308][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 10:54:40,844 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 10:54:40,844 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 10:54:40,845 [DEBUG][       Thread-252308][   transport.py][1871] : userauth is OK
2025-06-13 10:54:40,857 [ INFO][       Thread-252308][   transport.py][1871] : Authentication (password) successful!
2025-06-13 10:54:40,858 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 10:54:41,116 [DEBUG][Thread-252310 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:54:41,506 [DEBUG][       Thread-252308][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 10:54:41,506 [DEBUG][       Thread-252308][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 10:54:41,549 [DEBUG][       Thread-252308][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 10:54:41,549 [DEBUG][       Thread-252308][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 10:54:41,552 [DEBUG][       Thread-252308][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 10:54:41,566 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 10:54:41,567 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 10:54:41,568 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 10:54:41,570 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 10:54:41,575 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 10:54:41,576 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 10:54:41,577 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 10:54:41,577 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 10:54:41,577 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.371120 -999.00   +9.20  23.63     54   +0.40 1 1 1 1 1   887    0 8.48 -8.77 ----- 22.5 23.6 54.4 26.5 14.1 -28.5 12.7 -29.9 11.7 -28.9 13.0 -26.9
2025-06-13 10:54:41,577 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 10:54:41,578 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 10:54:41,578 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.371120
2025-06-13 10:54:41,578 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 10:54:41,579 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 10:54:41,579 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 10:54:41,579 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 10:54:41,579 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 10:54:41,579 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T10:54:20', tmtdew=10.16, humidity=48.98, cloud=0.0, wind=15.12, temperature=9.49, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T08:54:24.768', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 10:54:41,579 [DEBUG][       Thread-252308][   transport.py][1871] : EOF in transport thread
2025-06-13 10:54:41,667 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 10:54:41,678 [DEBUG][       Thread-252312][   transport.py][1871] : starting thread (client mode): 0x863a4c70
2025-06-13 10:54:41,678 [DEBUG][       Thread-252312][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 10:54:41,698 [DEBUG][       Thread-252312][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 10:54:41,698 [ INFO][       Thread-252312][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 10:54:41,706 [DEBUG][       Thread-252312][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 10:54:41,706 [DEBUG][       Thread-252312][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 10:54:41,706 [DEBUG][       Thread-252312][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 10:54:41,706 [DEBUG][       Thread-252312][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:54:41,706 [DEBUG][       Thread-252312][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:54:41,706 [DEBUG][       Thread-252312][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:54:41,706 [DEBUG][       Thread-252312][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:54:41,706 [DEBUG][       Thread-252312][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 10:54:41,707 [DEBUG][       Thread-252312][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 10:54:41,707 [DEBUG][       Thread-252312][   transport.py][1871] : client lang: <none>
2025-06-13 10:54:41,707 [DEBUG][       Thread-252312][   transport.py][1871] : server lang: <none>
2025-06-13 10:54:41,707 [DEBUG][       Thread-252312][   transport.py][1871] : kex follows: False
2025-06-13 10:54:41,707 [DEBUG][       Thread-252312][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 10:54:41,707 [DEBUG][       Thread-252312][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 10:54:41,707 [DEBUG][       Thread-252312][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 10:54:41,707 [DEBUG][       Thread-252312][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 10:54:41,708 [DEBUG][       Thread-252312][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 10:54:41,708 [DEBUG][       Thread-252312][   transport.py][1871] : Compression: none
2025-06-13 10:54:41,708 [DEBUG][       Thread-252312][   transport.py][1871] : === End of kex handshake ===
2025-06-13 10:54:41,767 [DEBUG][       Thread-252312][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 10:54:41,768 [DEBUG][       Thread-252312][   transport.py][1871] : Switch to new keys ...
2025-06-13 10:54:41,768 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 10:54:41,769 [DEBUG][       Thread-252312][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 10:54:41,770 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 10:54:41,827 [DEBUG][       Thread-252312][   transport.py][1871] : userauth is OK
2025-06-13 10:54:41,827 [DEBUG][       Thread-252312][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 10:54:41,827 [DEBUG][       Thread-252312][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 10:54:41,828 [DEBUG][       Thread-252312][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 10:54:41,828 [DEBUG][       Thread-252312][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 10:54:41,846 [ INFO][       Thread-252312][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 10:54:41,846 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 10:54:41,847 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 10:54:42,852 [DEBUG][       Thread-252312][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 10:54:42,852 [DEBUG][       Thread-252312][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 10:54:42,899 [DEBUG][       Thread-252312][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 10:54:42,900 [DEBUG][       Thread-252312][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 10:54:42,908 [DEBUG][       Thread-252312][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 10:54:42,917 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 10:54:42,917 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 10:54:42,925 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 10:54:42,934 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 10:54:42,934 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 10:54:42,935 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 10:54:42,942 [DEBUG][       Thread-252312][   transport.py][1871] : EOF in transport thread
2025-06-13 10:54:43,273 [DEBUG][Thread-252314 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:54:44,345 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:54:44,346 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:54:50,135 [DEBUG][Thread-252315 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:54:52,945 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 10:54:52,945 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 10:54:52,945 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 10:54:52,947 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 10:54:53,405 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 10, 54, 20), 10.16, 48.98, 0.0, 15.12, 9.49, 0, 0, 0, 2, 0, 0),)
2025-06-13 10:54:53,405 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 10:54:20
2025-06-13 10:54:53,487 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 10:54:53,493 [DEBUG][       Thread-252316][   transport.py][1871] : starting thread (client mode): 0x867fd150
2025-06-13 10:54:53,493 [DEBUG][       Thread-252316][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 10:54:53,513 [DEBUG][       Thread-252316][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 10:54:53,513 [ INFO][       Thread-252316][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 10:54:53,517 [DEBUG][       Thread-252316][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 10:54:53,517 [DEBUG][       Thread-252316][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 10:54:53,517 [DEBUG][       Thread-252316][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 10:54:53,517 [DEBUG][       Thread-252316][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:54:53,517 [DEBUG][       Thread-252316][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:54:53,517 [DEBUG][       Thread-252316][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:54:53,517 [DEBUG][       Thread-252316][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:54:53,517 [DEBUG][       Thread-252316][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 10:54:53,517 [DEBUG][       Thread-252316][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 10:54:53,517 [DEBUG][       Thread-252316][   transport.py][1871] : client lang: <none>
2025-06-13 10:54:53,517 [DEBUG][       Thread-252316][   transport.py][1871] : server lang: <none>
2025-06-13 10:54:53,517 [DEBUG][       Thread-252316][   transport.py][1871] : kex follows: False
2025-06-13 10:54:53,517 [DEBUG][       Thread-252316][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 10:54:53,517 [DEBUG][       Thread-252316][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 10:54:53,517 [DEBUG][       Thread-252316][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 10:54:53,517 [DEBUG][       Thread-252316][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 10:54:53,517 [DEBUG][       Thread-252316][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 10:54:53,517 [DEBUG][       Thread-252316][   transport.py][1871] : Compression: none
2025-06-13 10:54:53,517 [DEBUG][       Thread-252316][   transport.py][1871] : === End of kex handshake ===
2025-06-13 10:54:53,535 [DEBUG][       Thread-252316][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 10:54:53,536 [DEBUG][       Thread-252316][   transport.py][1871] : Switch to new keys ...
2025-06-13 10:54:53,536 [DEBUG][       Thread-252316][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 10:54:53,537 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 10:54:53,537 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 10:54:53,538 [DEBUG][       Thread-252316][   transport.py][1871] : userauth is OK
2025-06-13 10:54:53,551 [ INFO][       Thread-252316][   transport.py][1871] : Authentication (password) successful!
2025-06-13 10:54:53,551 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 10:54:54,216 [DEBUG][       Thread-252316][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 10:54:54,216 [DEBUG][       Thread-252316][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 10:54:54,256 [DEBUG][       Thread-252316][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 10:54:54,256 [DEBUG][       Thread-252316][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 10:54:54,258 [DEBUG][       Thread-252316][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 10:54:54,270 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 10:54:54,270 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 10:54:54,271 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 10:54:54,271 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 10:54:54,274 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 10:54:54,275 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 10:54:54,275 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 10:54:54,275 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 10:54:54,275 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.371120 -999.00   +9.20  23.63     54   +0.40 1 1 1 1 1   887    0 8.48 -8.77 ----- 22.5 23.6 54.4 26.5 14.1 -28.5 12.7 -29.9 11.7 -28.9 13.0 -26.9
2025-06-13 10:54:54,275 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 10:54:54,275 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 10:54:54,275 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.371120
2025-06-13 10:54:54,275 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 10:54:54,276 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 10:54:54,276 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 10:54:54,276 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 10:54:54,276 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 10:54:54,276 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T10:54:20', tmtdew=10.16, humidity=48.98, cloud=0.0, wind=15.12, temperature=9.49, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T08:54:24.768', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 10:54:54,276 [DEBUG][       Thread-252316][   transport.py][1871] : EOF in transport thread
2025-06-13 10:54:54,350 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 10:54:59,152 [DEBUG][Thread-252319 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:55:07,593 [DEBUG][Thread-252320 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:55:08,170 [DEBUG][Thread-252321 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:55:17,189 [DEBUG][Thread-252322 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:55:26,206 [DEBUG][Thread-252323 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:55:30,372 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:55:30,372 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:55:35,220 [DEBUG][Thread-252324 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:55:44,247 [DEBUG][Thread-252325 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:55:44,371 [DEBUG][Thread-252326 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:55:45,446 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:55:45,447 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:55:53,265 [DEBUG][Thread-252327 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:56:02,282 [DEBUG][Thread-252328 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:56:07,643 [DEBUG][Thread-252329 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:56:11,301 [DEBUG][Thread-252330 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:56:20,319 [DEBUG][Thread-252331 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:56:29,335 [DEBUG][Thread-252332 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:56:30,508 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:56:30,508 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:56:38,352 [DEBUG][Thread-252333 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:56:45,493 [DEBUG][Thread-252334 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:56:46,568 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:56:46,569 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:56:47,370 [DEBUG][Thread-252335 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:56:56,389 [DEBUG][Thread-252336 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:57:03,508 [WARNING][ poll_weather_worker][      driver.py][ 286] : Unable to open ssh connection for writing weather state to io.saao.ac.za: [Errno 110] Connection timed out
2025-06-13 10:57:05,407 [DEBUG][Thread-252337 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:57:07,695 [DEBUG][Thread-252338 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:57:13,518 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 10:57:13,519 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 10:57:13,519 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 10:57:13,521 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 10:57:14,019 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 10, 57), 10.06, 49.4, 0.0, 18.84, 9.44, 0, 0, 0, 2, 0, 0),)
2025-06-13 10:57:14,019 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 10:57:00
2025-06-13 10:57:14,098 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 10:57:14,104 [DEBUG][       Thread-252339][   transport.py][1871] : starting thread (client mode): 0x863bfe80
2025-06-13 10:57:14,104 [DEBUG][       Thread-252339][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 10:57:14,125 [DEBUG][       Thread-252339][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 10:57:14,125 [ INFO][       Thread-252339][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 10:57:14,128 [DEBUG][       Thread-252339][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 10:57:14,128 [DEBUG][       Thread-252339][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 10:57:14,129 [DEBUG][       Thread-252339][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 10:57:14,129 [DEBUG][       Thread-252339][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:57:14,129 [DEBUG][       Thread-252339][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:57:14,129 [DEBUG][       Thread-252339][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:57:14,129 [DEBUG][       Thread-252339][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:57:14,129 [DEBUG][       Thread-252339][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 10:57:14,129 [DEBUG][       Thread-252339][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 10:57:14,129 [DEBUG][       Thread-252339][   transport.py][1871] : client lang: <none>
2025-06-13 10:57:14,129 [DEBUG][       Thread-252339][   transport.py][1871] : server lang: <none>
2025-06-13 10:57:14,129 [DEBUG][       Thread-252339][   transport.py][1871] : kex follows: False
2025-06-13 10:57:14,129 [DEBUG][       Thread-252339][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 10:57:14,129 [DEBUG][       Thread-252339][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 10:57:14,129 [DEBUG][       Thread-252339][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 10:57:14,129 [DEBUG][       Thread-252339][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 10:57:14,129 [DEBUG][       Thread-252339][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 10:57:14,129 [DEBUG][       Thread-252339][   transport.py][1871] : Compression: none
2025-06-13 10:57:14,129 [DEBUG][       Thread-252339][   transport.py][1871] : === End of kex handshake ===
2025-06-13 10:57:14,146 [DEBUG][       Thread-252339][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 10:57:14,147 [DEBUG][       Thread-252339][   transport.py][1871] : Switch to new keys ...
2025-06-13 10:57:14,147 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 10:57:14,147 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 10:57:14,148 [DEBUG][       Thread-252339][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 10:57:14,149 [DEBUG][       Thread-252339][   transport.py][1871] : userauth is OK
2025-06-13 10:57:14,162 [ INFO][       Thread-252339][   transport.py][1871] : Authentication (password) successful!
2025-06-13 10:57:14,162 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 10:57:14,428 [DEBUG][Thread-252341 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:57:14,807 [DEBUG][       Thread-252339][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 10:57:14,807 [DEBUG][       Thread-252339][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 10:57:14,849 [DEBUG][       Thread-252339][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 10:57:14,849 [DEBUG][       Thread-252339][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 10:57:14,852 [DEBUG][       Thread-252339][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 10:57:14,864 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 10:57:14,864 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 10:57:14,866 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 10:57:14,868 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 10:57:14,872 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 10:57:14,874 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 10:57:14,874 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 10:57:14,874 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 10:57:14,875 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.372856 -999.00   +9.30  21.97     53   +0.40 1 1 1 1 1   887    0 8.66 -6.53 ----- 19.6 22.0 47.8 31.0 14.1 -28.1 12.7 -30.0 11.8 -28.7 13.1 -26.6
2025-06-13 10:57:14,875 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 10:57:14,875 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 10:57:14,875 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.372856
2025-06-13 10:57:14,875 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 10:57:14,876 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 10:57:14,876 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 10:57:14,876 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 10:57:14,876 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 10:57:14,876 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T10:57:00', tmtdew=10.06, humidity=49.4, cloud=0.0, wind=18.84, temperature=9.44, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T08:56:54.758', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 10:57:14,877 [DEBUG][       Thread-252339][   transport.py][1871] : EOF in transport thread
2025-06-13 10:57:14,960 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 10:57:14,972 [DEBUG][       Thread-252343][   transport.py][1871] : starting thread (client mode): 0x84207670
2025-06-13 10:57:14,972 [DEBUG][       Thread-252343][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 10:57:14,987 [DEBUG][       Thread-252343][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 10:57:14,987 [ INFO][       Thread-252343][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 10:57:14,994 [DEBUG][       Thread-252343][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 10:57:14,994 [DEBUG][       Thread-252343][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 10:57:14,994 [DEBUG][       Thread-252343][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 10:57:14,995 [DEBUG][       Thread-252343][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:57:14,995 [DEBUG][       Thread-252343][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:57:14,995 [DEBUG][       Thread-252343][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:57:14,995 [DEBUG][       Thread-252343][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:57:14,995 [DEBUG][       Thread-252343][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 10:57:14,995 [DEBUG][       Thread-252343][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 10:57:14,995 [DEBUG][       Thread-252343][   transport.py][1871] : client lang: <none>
2025-06-13 10:57:14,995 [DEBUG][       Thread-252343][   transport.py][1871] : server lang: <none>
2025-06-13 10:57:14,995 [DEBUG][       Thread-252343][   transport.py][1871] : kex follows: False
2025-06-13 10:57:14,995 [DEBUG][       Thread-252343][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 10:57:14,995 [DEBUG][       Thread-252343][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 10:57:14,995 [DEBUG][       Thread-252343][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 10:57:14,995 [DEBUG][       Thread-252343][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 10:57:14,995 [DEBUG][       Thread-252343][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 10:57:14,995 [DEBUG][       Thread-252343][   transport.py][1871] : Compression: none
2025-06-13 10:57:14,995 [DEBUG][       Thread-252343][   transport.py][1871] : === End of kex handshake ===
2025-06-13 10:57:15,053 [DEBUG][       Thread-252343][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 10:57:15,053 [DEBUG][       Thread-252343][   transport.py][1871] : Switch to new keys ...
2025-06-13 10:57:15,053 [DEBUG][       Thread-252343][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 10:57:15,053 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 10:57:15,053 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 10:57:15,114 [DEBUG][       Thread-252343][   transport.py][1871] : userauth is OK
2025-06-13 10:57:15,114 [DEBUG][       Thread-252343][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 10:57:15,114 [DEBUG][       Thread-252343][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 10:57:15,114 [DEBUG][       Thread-252343][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 10:57:15,114 [DEBUG][       Thread-252343][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 10:57:15,133 [ INFO][       Thread-252343][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 10:57:15,134 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 10:57:15,134 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 10:57:16,145 [DEBUG][       Thread-252343][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 10:57:16,145 [DEBUG][       Thread-252343][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 10:57:16,199 [DEBUG][       Thread-252343][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 10:57:16,199 [DEBUG][       Thread-252343][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 10:57:16,207 [DEBUG][       Thread-252343][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 10:57:16,215 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 10:57:16,215 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 10:57:16,229 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 10:57:16,237 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 10:57:16,237 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 10:57:16,237 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 10:57:16,245 [DEBUG][       Thread-252343][   transport.py][1871] : EOF in transport thread
2025-06-13 10:57:23,447 [DEBUG][Thread-252345 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:57:26,248 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 10:57:26,248 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 10:57:26,248 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 10:57:26,250 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 10:57:26,732 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 10, 57), 10.06, 49.4, 0.0, 18.84, 9.44, 0, 0, 0, 2, 0, 0),)
2025-06-13 10:57:26,733 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 10:57:00
2025-06-13 10:57:26,812 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 10:57:26,816 [DEBUG][       Thread-252346][   transport.py][1871] : starting thread (client mode): 0x842078e0
2025-06-13 10:57:26,816 [DEBUG][       Thread-252346][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 10:57:26,836 [DEBUG][       Thread-252346][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 10:57:26,836 [ INFO][       Thread-252346][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 10:57:26,839 [DEBUG][       Thread-252346][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 10:57:26,839 [DEBUG][       Thread-252346][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 10:57:26,839 [DEBUG][       Thread-252346][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 10:57:26,839 [DEBUG][       Thread-252346][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:57:26,839 [DEBUG][       Thread-252346][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:57:26,839 [DEBUG][       Thread-252346][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:57:26,840 [DEBUG][       Thread-252346][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:57:26,840 [DEBUG][       Thread-252346][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 10:57:26,840 [DEBUG][       Thread-252346][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 10:57:26,840 [DEBUG][       Thread-252346][   transport.py][1871] : client lang: <none>
2025-06-13 10:57:26,840 [DEBUG][       Thread-252346][   transport.py][1871] : server lang: <none>
2025-06-13 10:57:26,840 [DEBUG][       Thread-252346][   transport.py][1871] : kex follows: False
2025-06-13 10:57:26,840 [DEBUG][       Thread-252346][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 10:57:26,840 [DEBUG][       Thread-252346][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 10:57:26,840 [DEBUG][       Thread-252346][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 10:57:26,840 [DEBUG][       Thread-252346][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 10:57:26,840 [DEBUG][       Thread-252346][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 10:57:26,840 [DEBUG][       Thread-252346][   transport.py][1871] : Compression: none
2025-06-13 10:57:26,840 [DEBUG][       Thread-252346][   transport.py][1871] : === End of kex handshake ===
2025-06-13 10:57:26,857 [DEBUG][       Thread-252346][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 10:57:26,857 [DEBUG][       Thread-252346][   transport.py][1871] : Switch to new keys ...
2025-06-13 10:57:26,858 [DEBUG][       Thread-252346][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 10:57:26,858 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 10:57:26,858 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 10:57:26,859 [DEBUG][       Thread-252346][   transport.py][1871] : userauth is OK
2025-06-13 10:57:26,873 [ INFO][       Thread-252346][   transport.py][1871] : Authentication (password) successful!
2025-06-13 10:57:26,873 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 10:57:27,518 [DEBUG][       Thread-252346][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 10:57:27,518 [DEBUG][       Thread-252346][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 10:57:27,561 [DEBUG][       Thread-252346][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 10:57:27,561 [DEBUG][       Thread-252346][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 10:57:27,564 [DEBUG][       Thread-252346][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 10:57:27,576 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 10:57:27,577 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 10:57:27,578 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 10:57:27,580 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 10:57:27,585 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 10:57:27,587 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 10:57:27,587 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 10:57:27,587 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 10:57:27,588 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.372856 -999.00   +9.30  21.97     53   +0.40 1 1 1 1 1   887    0 8.66 -6.53 ----- 19.6 22.0 47.8 31.0 14.1 -28.1 12.7 -30.0 11.8 -28.7 13.1 -26.6
2025-06-13 10:57:27,588 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 10:57:27,588 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 10:57:27,588 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.372856
2025-06-13 10:57:27,588 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 10:57:27,589 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 10:57:27,589 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 10:57:27,589 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 10:57:27,589 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 10:57:27,589 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T10:57:00', tmtdew=10.06, humidity=49.4, cloud=0.0, wind=18.84, temperature=9.44, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T08:56:54.758', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 10:57:27,590 [DEBUG][       Thread-252346][   transport.py][1871] : EOF in transport thread
2025-06-13 10:57:27,681 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 10:57:27,690 [DEBUG][       Thread-252349][   transport.py][1871] : starting thread (client mode): 0x867b6950
2025-06-13 10:57:27,690 [DEBUG][       Thread-252349][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 10:57:27,705 [DEBUG][       Thread-252349][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 10:57:27,705 [ INFO][       Thread-252349][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 10:57:27,717 [DEBUG][       Thread-252349][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 10:57:27,717 [DEBUG][       Thread-252349][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 10:57:27,717 [DEBUG][       Thread-252349][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 10:57:27,717 [DEBUG][       Thread-252349][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:57:27,717 [DEBUG][       Thread-252349][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:57:27,717 [DEBUG][       Thread-252349][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:57:27,718 [DEBUG][       Thread-252349][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:57:27,718 [DEBUG][       Thread-252349][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 10:57:27,718 [DEBUG][       Thread-252349][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 10:57:27,718 [DEBUG][       Thread-252349][   transport.py][1871] : client lang: <none>
2025-06-13 10:57:27,718 [DEBUG][       Thread-252349][   transport.py][1871] : server lang: <none>
2025-06-13 10:57:27,718 [DEBUG][       Thread-252349][   transport.py][1871] : kex follows: False
2025-06-13 10:57:27,718 [DEBUG][       Thread-252349][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 10:57:27,718 [DEBUG][       Thread-252349][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 10:57:27,718 [DEBUG][       Thread-252349][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 10:57:27,718 [DEBUG][       Thread-252349][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 10:57:27,718 [DEBUG][       Thread-252349][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 10:57:27,718 [DEBUG][       Thread-252349][   transport.py][1871] : Compression: none
2025-06-13 10:57:27,718 [DEBUG][       Thread-252349][   transport.py][1871] : === End of kex handshake ===
2025-06-13 10:57:27,770 [DEBUG][       Thread-252349][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 10:57:27,771 [DEBUG][       Thread-252349][   transport.py][1871] : Switch to new keys ...
2025-06-13 10:57:27,771 [DEBUG][       Thread-252349][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 10:57:27,771 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 10:57:27,772 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 10:57:27,826 [DEBUG][       Thread-252349][   transport.py][1871] : userauth is OK
2025-06-13 10:57:27,827 [DEBUG][       Thread-252349][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 10:57:27,827 [DEBUG][       Thread-252349][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 10:57:27,827 [DEBUG][       Thread-252349][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 10:57:27,827 [DEBUG][       Thread-252349][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 10:57:27,845 [ INFO][       Thread-252349][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 10:57:27,845 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 10:57:27,846 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 10:57:28,910 [DEBUG][       Thread-252349][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 10:57:28,910 [DEBUG][       Thread-252349][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 10:57:28,959 [DEBUG][       Thread-252349][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 10:57:28,960 [DEBUG][       Thread-252349][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 10:57:28,972 [DEBUG][       Thread-252349][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 10:57:28,980 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 10:57:28,980 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 10:57:28,989 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 10:57:28,998 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 10:57:28,998 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 10:57:28,998 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 10:57:29,015 [DEBUG][       Thread-252349][   transport.py][1871] : EOF in transport thread
2025-06-13 10:57:30,648 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:57:30,649 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:57:32,478 [DEBUG][Thread-252351 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:57:39,009 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 10:57:39,009 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 10:57:39,009 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 10:57:39,011 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 10:57:39,506 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 10, 57, 32), 10.14, 49.27, 0.0, 16.06, 9.55, 0, 0, 0, 2, 0, 0),)
2025-06-13 10:57:39,506 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 10:57:32
2025-06-13 10:57:39,585 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 10:57:39,591 [DEBUG][       Thread-252352][   transport.py][1871] : starting thread (client mode): 0x867fceb0
2025-06-13 10:57:39,591 [DEBUG][       Thread-252352][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 10:57:39,613 [DEBUG][       Thread-252352][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 10:57:39,614 [ INFO][       Thread-252352][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 10:57:39,617 [DEBUG][       Thread-252352][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 10:57:39,617 [DEBUG][       Thread-252352][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 10:57:39,617 [DEBUG][       Thread-252352][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 10:57:39,617 [DEBUG][       Thread-252352][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:57:39,617 [DEBUG][       Thread-252352][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:57:39,617 [DEBUG][       Thread-252352][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:57:39,617 [DEBUG][       Thread-252352][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:57:39,617 [DEBUG][       Thread-252352][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 10:57:39,617 [DEBUG][       Thread-252352][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 10:57:39,617 [DEBUG][       Thread-252352][   transport.py][1871] : client lang: <none>
2025-06-13 10:57:39,617 [DEBUG][       Thread-252352][   transport.py][1871] : server lang: <none>
2025-06-13 10:57:39,617 [DEBUG][       Thread-252352][   transport.py][1871] : kex follows: False
2025-06-13 10:57:39,617 [DEBUG][       Thread-252352][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 10:57:39,617 [DEBUG][       Thread-252352][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 10:57:39,617 [DEBUG][       Thread-252352][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 10:57:39,618 [DEBUG][       Thread-252352][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 10:57:39,618 [DEBUG][       Thread-252352][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 10:57:39,618 [DEBUG][       Thread-252352][   transport.py][1871] : Compression: none
2025-06-13 10:57:39,618 [DEBUG][       Thread-252352][   transport.py][1871] : === End of kex handshake ===
2025-06-13 10:57:39,635 [DEBUG][       Thread-252352][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 10:57:39,635 [DEBUG][       Thread-252352][   transport.py][1871] : Switch to new keys ...
2025-06-13 10:57:39,636 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 10:57:39,636 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 10:57:39,637 [DEBUG][       Thread-252352][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 10:57:39,638 [DEBUG][       Thread-252352][   transport.py][1871] : userauth is OK
2025-06-13 10:57:39,662 [ INFO][       Thread-252352][   transport.py][1871] : Authentication (password) successful!
2025-06-13 10:57:39,663 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 10:57:40,306 [DEBUG][       Thread-252352][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 10:57:40,306 [DEBUG][       Thread-252352][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 10:57:40,349 [DEBUG][       Thread-252352][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 10:57:40,349 [DEBUG][       Thread-252352][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 10:57:40,352 [DEBUG][       Thread-252352][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 10:57:40,364 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 10:57:40,364 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 10:57:40,366 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 10:57:40,368 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 10:57:40,374 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 10:57:40,376 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 10:57:40,377 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 10:57:40,377 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 10:57:40,378 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.373203 -999.00   +9.30  22.21     54   +0.40 1 1 1 1 1   887    0 8.68 -6.82 ----- 22.3 22.2 55.8 25.3 14.1 -28.4 12.7 -29.6 11.8 -27.9 13.1 -26.6
2025-06-13 10:57:40,378 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 10:57:40,378 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 10:57:40,378 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.373203
2025-06-13 10:57:40,379 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 10:57:40,379 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 10:57:40,379 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 10:57:40,379 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 10:57:40,380 [DEBUG][       Thread-252352][   transport.py][1871] : EOF in transport thread
2025-06-13 10:57:40,380 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 10:57:40,381 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T10:57:32', tmtdew=10.14, humidity=49.27, cloud=0.0, wind=16.06, temperature=9.55, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T08:57:24.739', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 10:57:40,479 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 10:57:40,500 [DEBUG][       Thread-252355][   transport.py][1871] : starting thread (client mode): 0x84204af0
2025-06-13 10:57:40,500 [DEBUG][       Thread-252355][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 10:57:40,517 [DEBUG][       Thread-252355][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 10:57:40,517 [ INFO][       Thread-252355][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 10:57:40,527 [DEBUG][       Thread-252355][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 10:57:40,527 [DEBUG][       Thread-252355][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 10:57:40,527 [DEBUG][       Thread-252355][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 10:57:40,528 [DEBUG][       Thread-252355][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:57:40,528 [DEBUG][       Thread-252355][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:57:40,528 [DEBUG][       Thread-252355][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:57:40,528 [DEBUG][       Thread-252355][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:57:40,528 [DEBUG][       Thread-252355][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 10:57:40,528 [DEBUG][       Thread-252355][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 10:57:40,528 [DEBUG][       Thread-252355][   transport.py][1871] : client lang: <none>
2025-06-13 10:57:40,528 [DEBUG][       Thread-252355][   transport.py][1871] : server lang: <none>
2025-06-13 10:57:40,528 [DEBUG][       Thread-252355][   transport.py][1871] : kex follows: False
2025-06-13 10:57:40,528 [DEBUG][       Thread-252355][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 10:57:40,528 [DEBUG][       Thread-252355][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 10:57:40,528 [DEBUG][       Thread-252355][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 10:57:40,528 [DEBUG][       Thread-252355][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 10:57:40,528 [DEBUG][       Thread-252355][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 10:57:40,528 [DEBUG][       Thread-252355][   transport.py][1871] : Compression: none
2025-06-13 10:57:40,528 [DEBUG][       Thread-252355][   transport.py][1871] : === End of kex handshake ===
2025-06-13 10:57:40,587 [DEBUG][       Thread-252355][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 10:57:40,588 [DEBUG][       Thread-252355][   transport.py][1871] : Switch to new keys ...
2025-06-13 10:57:40,588 [DEBUG][       Thread-252355][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 10:57:40,588 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 10:57:40,589 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 10:57:40,651 [DEBUG][       Thread-252355][   transport.py][1871] : userauth is OK
2025-06-13 10:57:40,651 [DEBUG][       Thread-252355][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 10:57:40,651 [DEBUG][       Thread-252355][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 10:57:40,651 [DEBUG][       Thread-252355][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 10:57:40,651 [DEBUG][       Thread-252355][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 10:57:40,673 [ INFO][       Thread-252355][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 10:57:40,673 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 10:57:40,673 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 10:57:41,497 [DEBUG][Thread-252357 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:57:41,711 [DEBUG][       Thread-252355][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 10:57:41,712 [DEBUG][       Thread-252355][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 10:57:41,767 [DEBUG][       Thread-252355][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 10:57:41,767 [DEBUG][       Thread-252355][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 10:57:41,778 [DEBUG][       Thread-252355][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 10:57:41,787 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 10:57:41,787 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 10:57:41,807 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 10:57:41,821 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 10:57:41,821 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 10:57:41,821 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 10:57:41,833 [DEBUG][       Thread-252355][   transport.py][1871] : EOF in transport thread
2025-06-13 10:57:46,612 [DEBUG][Thread-252358 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:57:47,688 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:57:47,689 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:57:50,526 [DEBUG][Thread-252359 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:57:51,828 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 10:57:51,828 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 10:57:51,828 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 10:57:51,829 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 10:57:52,297 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 10, 57, 32), 10.14, 49.27, 0.0, 16.06, 9.55, 0, 0, 0, 2, 0, 0),)
2025-06-13 10:57:52,298 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 10:57:32
2025-06-13 10:57:52,376 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 10:57:52,383 [DEBUG][       Thread-252360][   transport.py][1871] : starting thread (client mode): 0x84207d60
2025-06-13 10:57:52,383 [DEBUG][       Thread-252360][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 10:57:52,405 [DEBUG][       Thread-252360][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 10:57:52,405 [ INFO][       Thread-252360][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 10:57:52,409 [DEBUG][       Thread-252360][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 10:57:52,409 [DEBUG][       Thread-252360][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 10:57:52,409 [DEBUG][       Thread-252360][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 10:57:52,409 [DEBUG][       Thread-252360][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:57:52,409 [DEBUG][       Thread-252360][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:57:52,409 [DEBUG][       Thread-252360][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:57:52,409 [DEBUG][       Thread-252360][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:57:52,409 [DEBUG][       Thread-252360][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 10:57:52,409 [DEBUG][       Thread-252360][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 10:57:52,409 [DEBUG][       Thread-252360][   transport.py][1871] : client lang: <none>
2025-06-13 10:57:52,409 [DEBUG][       Thread-252360][   transport.py][1871] : server lang: <none>
2025-06-13 10:57:52,409 [DEBUG][       Thread-252360][   transport.py][1871] : kex follows: False
2025-06-13 10:57:52,409 [DEBUG][       Thread-252360][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 10:57:52,409 [DEBUG][       Thread-252360][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 10:57:52,409 [DEBUG][       Thread-252360][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 10:57:52,409 [DEBUG][       Thread-252360][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 10:57:52,409 [DEBUG][       Thread-252360][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 10:57:52,409 [DEBUG][       Thread-252360][   transport.py][1871] : Compression: none
2025-06-13 10:57:52,409 [DEBUG][       Thread-252360][   transport.py][1871] : === End of kex handshake ===
2025-06-13 10:57:52,425 [DEBUG][       Thread-252360][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 10:57:52,425 [DEBUG][       Thread-252360][   transport.py][1871] : Switch to new keys ...
2025-06-13 10:57:52,425 [DEBUG][       Thread-252360][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 10:57:52,425 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 10:57:52,425 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 10:57:52,426 [DEBUG][       Thread-252360][   transport.py][1871] : userauth is OK
2025-06-13 10:57:52,451 [ INFO][       Thread-252360][   transport.py][1871] : Authentication (password) successful!
2025-06-13 10:57:52,451 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 10:57:53,095 [DEBUG][       Thread-252360][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 10:57:53,095 [DEBUG][       Thread-252360][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 10:57:53,137 [DEBUG][       Thread-252360][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 10:57:53,137 [DEBUG][       Thread-252360][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 10:57:53,140 [DEBUG][       Thread-252360][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 10:57:53,151 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 10:57:53,152 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 10:57:53,154 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 10:57:53,155 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 10:57:53,161 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 10:57:53,163 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 10:57:53,163 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 10:57:53,163 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 10:57:53,164 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.373203 -999.00   +9.30  22.21     54   +0.40 1 1 1 1 1   887    0 8.68 -6.82 ----- 22.3 22.2 55.8 25.3 14.1 -28.4 12.7 -29.6 11.8 -27.9 13.1 -26.6
2025-06-13 10:57:53,164 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 10:57:53,164 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 10:57:53,164 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.373203
2025-06-13 10:57:53,164 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 10:57:53,165 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 10:57:53,165 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 10:57:53,165 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 10:57:53,165 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 10:57:53,165 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T10:57:32', tmtdew=10.14, humidity=49.27, cloud=0.0, wind=16.06, temperature=9.55, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T08:57:24.739', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 10:57:53,166 [DEBUG][       Thread-252360][   transport.py][1871] : EOF in transport thread
2025-06-13 10:57:53,249 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 10:57:53,261 [DEBUG][       Thread-252363][   transport.py][1871] : starting thread (client mode): 0x867b49a0
2025-06-13 10:57:53,261 [DEBUG][       Thread-252363][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 10:57:53,277 [DEBUG][       Thread-252363][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 10:57:53,277 [ INFO][       Thread-252363][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 10:57:53,285 [DEBUG][       Thread-252363][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 10:57:53,285 [DEBUG][       Thread-252363][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 10:57:53,285 [DEBUG][       Thread-252363][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 10:57:53,285 [DEBUG][       Thread-252363][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:57:53,285 [DEBUG][       Thread-252363][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:57:53,285 [DEBUG][       Thread-252363][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:57:53,285 [DEBUG][       Thread-252363][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:57:53,285 [DEBUG][       Thread-252363][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 10:57:53,285 [DEBUG][       Thread-252363][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 10:57:53,285 [DEBUG][       Thread-252363][   transport.py][1871] : client lang: <none>
2025-06-13 10:57:53,285 [DEBUG][       Thread-252363][   transport.py][1871] : server lang: <none>
2025-06-13 10:57:53,285 [DEBUG][       Thread-252363][   transport.py][1871] : kex follows: False
2025-06-13 10:57:53,285 [DEBUG][       Thread-252363][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 10:57:53,285 [DEBUG][       Thread-252363][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 10:57:53,285 [DEBUG][       Thread-252363][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 10:57:53,285 [DEBUG][       Thread-252363][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 10:57:53,286 [DEBUG][       Thread-252363][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 10:57:53,286 [DEBUG][       Thread-252363][   transport.py][1871] : Compression: none
2025-06-13 10:57:53,286 [DEBUG][       Thread-252363][   transport.py][1871] : === End of kex handshake ===
2025-06-13 10:57:53,341 [DEBUG][       Thread-252363][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 10:57:53,341 [DEBUG][       Thread-252363][   transport.py][1871] : Switch to new keys ...
2025-06-13 10:57:53,342 [DEBUG][       Thread-252363][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 10:57:53,342 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 10:57:53,342 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 10:57:53,399 [DEBUG][       Thread-252363][   transport.py][1871] : userauth is OK
2025-06-13 10:57:53,399 [DEBUG][       Thread-252363][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 10:57:53,399 [DEBUG][       Thread-252363][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 10:57:53,399 [DEBUG][       Thread-252363][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 10:57:53,399 [DEBUG][       Thread-252363][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 10:57:53,418 [ INFO][       Thread-252363][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 10:57:53,419 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 10:57:53,419 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 10:57:54,446 [DEBUG][       Thread-252363][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 10:57:54,446 [DEBUG][       Thread-252363][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 10:57:54,495 [DEBUG][       Thread-252363][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 10:57:54,496 [DEBUG][       Thread-252363][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 10:57:54,504 [DEBUG][       Thread-252363][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 10:57:54,513 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 10:57:54,513 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 10:57:54,523 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 10:57:54,532 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 10:57:54,532 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 10:57:54,532 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 10:57:54,540 [DEBUG][       Thread-252363][   transport.py][1871] : EOF in transport thread
2025-06-13 10:57:59,542 [DEBUG][Thread-252365 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:58:04,541 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 10:58:04,541 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 10:58:04,541 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 10:58:04,542 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 10:58:05,042 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 10, 57, 32), 10.14, 49.27, 0.0, 16.06, 9.55, 0, 0, 0, 2, 0, 0),)
2025-06-13 10:58:05,042 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 10:57:32
2025-06-13 10:58:05,127 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 10:58:05,130 [DEBUG][       Thread-252366][   transport.py][1871] : starting thread (client mode): 0x84207700
2025-06-13 10:58:05,130 [DEBUG][       Thread-252366][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 10:58:05,151 [DEBUG][       Thread-252366][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 10:58:05,151 [ INFO][       Thread-252366][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 10:58:05,154 [DEBUG][       Thread-252366][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 10:58:05,154 [DEBUG][       Thread-252366][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 10:58:05,154 [DEBUG][       Thread-252366][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 10:58:05,154 [DEBUG][       Thread-252366][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:58:05,154 [DEBUG][       Thread-252366][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:58:05,154 [DEBUG][       Thread-252366][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:58:05,154 [DEBUG][       Thread-252366][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:58:05,154 [DEBUG][       Thread-252366][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 10:58:05,154 [DEBUG][       Thread-252366][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 10:58:05,154 [DEBUG][       Thread-252366][   transport.py][1871] : client lang: <none>
2025-06-13 10:58:05,154 [DEBUG][       Thread-252366][   transport.py][1871] : server lang: <none>
2025-06-13 10:58:05,154 [DEBUG][       Thread-252366][   transport.py][1871] : kex follows: False
2025-06-13 10:58:05,154 [DEBUG][       Thread-252366][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 10:58:05,154 [DEBUG][       Thread-252366][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 10:58:05,154 [DEBUG][       Thread-252366][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 10:58:05,154 [DEBUG][       Thread-252366][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 10:58:05,154 [DEBUG][       Thread-252366][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 10:58:05,154 [DEBUG][       Thread-252366][   transport.py][1871] : Compression: none
2025-06-13 10:58:05,154 [DEBUG][       Thread-252366][   transport.py][1871] : === End of kex handshake ===
2025-06-13 10:58:05,169 [DEBUG][       Thread-252366][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 10:58:05,169 [DEBUG][       Thread-252366][   transport.py][1871] : Switch to new keys ...
2025-06-13 10:58:05,169 [DEBUG][       Thread-252366][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 10:58:05,170 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 10:58:05,170 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 10:58:05,170 [DEBUG][       Thread-252366][   transport.py][1871] : userauth is OK
2025-06-13 10:58:05,194 [ INFO][       Thread-252366][   transport.py][1871] : Authentication (password) successful!
2025-06-13 10:58:05,194 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 10:58:05,799 [DEBUG][       Thread-252366][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 10:58:05,799 [DEBUG][       Thread-252366][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 10:58:05,844 [DEBUG][       Thread-252366][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 10:58:05,844 [DEBUG][       Thread-252366][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 10:58:05,847 [DEBUG][       Thread-252366][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 10:58:05,853 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 10:58:05,853 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 10:58:05,858 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 10:58:05,859 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 10:58:05,862 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 10:58:05,862 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 10:58:05,862 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 10:58:05,863 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 10:58:05,863 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.373203 -999.00   +9.30  22.21     54   +0.40 1 1 1 1 1   887    0 8.68 -6.82 ----- 22.3 22.2 55.8 25.3 14.1 -28.4 12.7 -29.6 11.8 -27.9 13.1 -26.6
2025-06-13 10:58:05,863 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 10:58:05,863 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 10:58:05,863 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.373203
2025-06-13 10:58:05,863 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 10:58:05,863 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 10:58:05,863 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 10:58:05,863 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 10:58:05,863 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 10:58:05,863 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T10:57:32', tmtdew=10.14, humidity=49.27, cloud=0.0, wind=16.06, temperature=9.55, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T08:57:24.739', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 10:58:05,863 [DEBUG][       Thread-252366][   transport.py][1871] : EOF in transport thread
2025-06-13 10:58:05,938 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 10:58:05,947 [DEBUG][       Thread-252369][   transport.py][1871] : starting thread (client mode): 0x8636a7a0
2025-06-13 10:58:05,947 [DEBUG][       Thread-252369][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 10:58:05,962 [DEBUG][       Thread-252369][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 10:58:05,962 [ INFO][       Thread-252369][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 10:58:05,969 [DEBUG][       Thread-252369][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 10:58:05,969 [DEBUG][       Thread-252369][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 10:58:05,969 [DEBUG][       Thread-252369][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 10:58:05,969 [DEBUG][       Thread-252369][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:58:05,969 [DEBUG][       Thread-252369][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:58:05,969 [DEBUG][       Thread-252369][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:58:05,969 [DEBUG][       Thread-252369][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:58:05,969 [DEBUG][       Thread-252369][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 10:58:05,969 [DEBUG][       Thread-252369][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 10:58:05,969 [DEBUG][       Thread-252369][   transport.py][1871] : client lang: <none>
2025-06-13 10:58:05,969 [DEBUG][       Thread-252369][   transport.py][1871] : server lang: <none>
2025-06-13 10:58:05,969 [DEBUG][       Thread-252369][   transport.py][1871] : kex follows: False
2025-06-13 10:58:05,969 [DEBUG][       Thread-252369][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 10:58:05,969 [DEBUG][       Thread-252369][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 10:58:05,969 [DEBUG][       Thread-252369][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 10:58:05,970 [DEBUG][       Thread-252369][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 10:58:05,970 [DEBUG][       Thread-252369][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 10:58:05,970 [DEBUG][       Thread-252369][   transport.py][1871] : Compression: none
2025-06-13 10:58:05,970 [DEBUG][       Thread-252369][   transport.py][1871] : === End of kex handshake ===
2025-06-13 10:58:06,025 [DEBUG][       Thread-252369][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 10:58:06,025 [DEBUG][       Thread-252369][   transport.py][1871] : Switch to new keys ...
2025-06-13 10:58:06,025 [DEBUG][       Thread-252369][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 10:58:06,025 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 10:58:06,025 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 10:58:06,082 [DEBUG][       Thread-252369][   transport.py][1871] : userauth is OK
2025-06-13 10:58:06,082 [DEBUG][       Thread-252369][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 10:58:06,082 [DEBUG][       Thread-252369][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 10:58:06,082 [DEBUG][       Thread-252369][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 10:58:06,082 [DEBUG][       Thread-252369][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 10:58:06,097 [ INFO][       Thread-252369][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 10:58:06,097 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 10:58:06,097 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 10:58:07,148 [DEBUG][       Thread-252369][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 10:58:07,148 [DEBUG][       Thread-252369][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 10:58:07,196 [DEBUG][       Thread-252369][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 10:58:07,196 [DEBUG][       Thread-252369][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 10:58:07,205 [DEBUG][       Thread-252369][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 10:58:07,214 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 10:58:07,214 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 10:58:07,222 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 10:58:07,234 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 10:58:07,234 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 10:58:07,234 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 10:58:07,245 [DEBUG][       Thread-252369][   transport.py][1871] : EOF in transport thread
2025-06-13 10:58:07,744 [DEBUG][Thread-252371 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:58:08,559 [DEBUG][Thread-252372 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:58:17,245 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 10:58:17,245 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 10:58:17,245 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 10:58:17,248 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 10:58:17,577 [DEBUG][Thread-252373 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:58:17,719 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 10, 58, 3), 10.12, 49.31, 0.0, 16.41, 9.55, 0, 0, 0, 2, 0, 0),)
2025-06-13 10:58:17,719 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 10:58:03
2025-06-13 10:58:17,801 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 10:58:17,807 [DEBUG][       Thread-252374][   transport.py][1871] : starting thread (client mode): 0x84205e10
2025-06-13 10:58:17,807 [DEBUG][       Thread-252374][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 10:58:17,825 [DEBUG][       Thread-252374][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 10:58:17,826 [ INFO][       Thread-252374][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 10:58:17,829 [DEBUG][       Thread-252374][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 10:58:17,829 [DEBUG][       Thread-252374][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 10:58:17,829 [DEBUG][       Thread-252374][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 10:58:17,829 [DEBUG][       Thread-252374][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:58:17,829 [DEBUG][       Thread-252374][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:58:17,829 [DEBUG][       Thread-252374][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:58:17,829 [DEBUG][       Thread-252374][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:58:17,829 [DEBUG][       Thread-252374][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 10:58:17,829 [DEBUG][       Thread-252374][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 10:58:17,829 [DEBUG][       Thread-252374][   transport.py][1871] : client lang: <none>
2025-06-13 10:58:17,829 [DEBUG][       Thread-252374][   transport.py][1871] : server lang: <none>
2025-06-13 10:58:17,829 [DEBUG][       Thread-252374][   transport.py][1871] : kex follows: False
2025-06-13 10:58:17,829 [DEBUG][       Thread-252374][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 10:58:17,829 [DEBUG][       Thread-252374][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 10:58:17,829 [DEBUG][       Thread-252374][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 10:58:17,829 [DEBUG][       Thread-252374][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 10:58:17,829 [DEBUG][       Thread-252374][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 10:58:17,829 [DEBUG][       Thread-252374][   transport.py][1871] : Compression: none
2025-06-13 10:58:17,829 [DEBUG][       Thread-252374][   transport.py][1871] : === End of kex handshake ===
2025-06-13 10:58:17,847 [DEBUG][       Thread-252374][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 10:58:17,848 [DEBUG][       Thread-252374][   transport.py][1871] : Switch to new keys ...
2025-06-13 10:58:17,848 [DEBUG][       Thread-252374][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 10:58:17,848 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 10:58:17,849 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 10:58:17,850 [DEBUG][       Thread-252374][   transport.py][1871] : userauth is OK
2025-06-13 10:58:17,862 [ INFO][       Thread-252374][   transport.py][1871] : Authentication (password) successful!
2025-06-13 10:58:17,863 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 10:58:18,479 [DEBUG][       Thread-252374][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 10:58:18,479 [DEBUG][       Thread-252374][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 10:58:18,521 [DEBUG][       Thread-252374][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 10:58:18,521 [DEBUG][       Thread-252374][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 10:58:18,524 [DEBUG][       Thread-252374][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 10:58:18,537 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 10:58:18,538 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 10:58:18,539 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 10:58:18,541 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 10:58:18,544 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 10:58:18,545 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 10:58:18,545 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 10:58:18,545 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 10:58:18,545 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.373551 -999.00   +9.30  20.07     54   +0.60 1 1 1 1 1   887    0 8.53 -8.02 ----- 19.1 20.1 45.4 24.1 14.1 -28.2 12.7 -29.9 11.8 -28.9 13.1 -26.4
2025-06-13 10:58:18,545 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 10:58:18,545 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 10:58:18,545 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.373551
2025-06-13 10:58:18,545 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 10:58:18,545 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 10:58:18,545 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 10:58:18,545 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 10:58:18,545 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 10:58:18,545 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T10:58:03', tmtdew=10.12, humidity=49.31, cloud=0.0, wind=16.41, temperature=9.55, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T08:57:54.806', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 10:58:18,546 [DEBUG][       Thread-252374][   transport.py][1871] : EOF in transport thread
2025-06-13 10:58:18,618 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 10:58:18,630 [DEBUG][       Thread-252377][   transport.py][1871] : starting thread (client mode): 0x863ed5d0
2025-06-13 10:58:18,630 [DEBUG][       Thread-252377][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 10:58:18,646 [DEBUG][       Thread-252377][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 10:58:18,646 [ INFO][       Thread-252377][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 10:58:18,653 [DEBUG][       Thread-252377][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 10:58:18,653 [DEBUG][       Thread-252377][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 10:58:18,653 [DEBUG][       Thread-252377][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 10:58:18,653 [DEBUG][       Thread-252377][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:58:18,653 [DEBUG][       Thread-252377][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:58:18,653 [DEBUG][       Thread-252377][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:58:18,653 [DEBUG][       Thread-252377][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:58:18,653 [DEBUG][       Thread-252377][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 10:58:18,653 [DEBUG][       Thread-252377][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 10:58:18,653 [DEBUG][       Thread-252377][   transport.py][1871] : client lang: <none>
2025-06-13 10:58:18,653 [DEBUG][       Thread-252377][   transport.py][1871] : server lang: <none>
2025-06-13 10:58:18,653 [DEBUG][       Thread-252377][   transport.py][1871] : kex follows: False
2025-06-13 10:58:18,653 [DEBUG][       Thread-252377][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 10:58:18,653 [DEBUG][       Thread-252377][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 10:58:18,653 [DEBUG][       Thread-252377][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 10:58:18,653 [DEBUG][       Thread-252377][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 10:58:18,653 [DEBUG][       Thread-252377][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 10:58:18,653 [DEBUG][       Thread-252377][   transport.py][1871] : Compression: none
2025-06-13 10:58:18,653 [DEBUG][       Thread-252377][   transport.py][1871] : === End of kex handshake ===
2025-06-13 10:58:18,710 [DEBUG][       Thread-252377][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 10:58:18,711 [DEBUG][       Thread-252377][   transport.py][1871] : Switch to new keys ...
2025-06-13 10:58:18,711 [DEBUG][       Thread-252377][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 10:58:18,711 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 10:58:18,712 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 10:58:18,767 [DEBUG][       Thread-252377][   transport.py][1871] : userauth is OK
2025-06-13 10:58:18,767 [DEBUG][       Thread-252377][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 10:58:18,767 [DEBUG][       Thread-252377][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 10:58:18,767 [DEBUG][       Thread-252377][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 10:58:18,767 [DEBUG][       Thread-252377][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 10:58:18,790 [ INFO][       Thread-252377][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 10:58:18,790 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 10:58:18,791 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 10:58:19,788 [DEBUG][       Thread-252377][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 10:58:19,788 [DEBUG][       Thread-252377][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 10:58:19,836 [DEBUG][       Thread-252377][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 10:58:19,836 [DEBUG][       Thread-252377][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 10:58:19,845 [DEBUG][       Thread-252377][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 10:58:19,853 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 10:58:19,854 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 10:58:19,878 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 10:58:19,887 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 10:58:19,887 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 10:58:19,887 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 10:58:19,897 [DEBUG][       Thread-252377][   transport.py][1871] : EOF in transport thread
2025-06-13 10:58:26,597 [DEBUG][Thread-252379 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:58:29,898 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 10:58:29,898 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 10:58:29,898 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 10:58:29,900 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 10:58:30,386 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 10, 58, 3), 10.12, 49.31, 0.0, 16.41, 9.55, 0, 0, 0, 2, 0, 0),)
2025-06-13 10:58:30,386 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 10:58:03
2025-06-13 10:58:30,468 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 10:58:30,472 [DEBUG][       Thread-252380][   transport.py][1871] : starting thread (client mode): 0x842072b0
2025-06-13 10:58:30,472 [DEBUG][       Thread-252380][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 10:58:30,499 [DEBUG][       Thread-252380][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 10:58:30,499 [ INFO][       Thread-252380][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 10:58:30,502 [DEBUG][       Thread-252380][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 10:58:30,502 [DEBUG][       Thread-252380][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 10:58:30,502 [DEBUG][       Thread-252380][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 10:58:30,502 [DEBUG][       Thread-252380][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:58:30,502 [DEBUG][       Thread-252380][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:58:30,502 [DEBUG][       Thread-252380][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:58:30,502 [DEBUG][       Thread-252380][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:58:30,502 [DEBUG][       Thread-252380][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 10:58:30,502 [DEBUG][       Thread-252380][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 10:58:30,502 [DEBUG][       Thread-252380][   transport.py][1871] : client lang: <none>
2025-06-13 10:58:30,502 [DEBUG][       Thread-252380][   transport.py][1871] : server lang: <none>
2025-06-13 10:58:30,502 [DEBUG][       Thread-252380][   transport.py][1871] : kex follows: False
2025-06-13 10:58:30,502 [DEBUG][       Thread-252380][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 10:58:30,502 [DEBUG][       Thread-252380][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 10:58:30,502 [DEBUG][       Thread-252380][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 10:58:30,502 [DEBUG][       Thread-252380][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 10:58:30,502 [DEBUG][       Thread-252380][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 10:58:30,502 [DEBUG][       Thread-252380][   transport.py][1871] : Compression: none
2025-06-13 10:58:30,502 [DEBUG][       Thread-252380][   transport.py][1871] : === End of kex handshake ===
2025-06-13 10:58:30,519 [DEBUG][       Thread-252380][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 10:58:30,519 [DEBUG][       Thread-252380][   transport.py][1871] : Switch to new keys ...
2025-06-13 10:58:30,520 [DEBUG][       Thread-252380][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 10:58:30,520 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 10:58:30,520 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 10:58:30,521 [DEBUG][       Thread-252380][   transport.py][1871] : userauth is OK
2025-06-13 10:58:30,534 [ INFO][       Thread-252380][   transport.py][1871] : Authentication (password) successful!
2025-06-13 10:58:30,535 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 10:58:30,793 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:58:30,794 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:58:31,141 [DEBUG][       Thread-252380][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 10:58:31,141 [DEBUG][       Thread-252380][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 10:58:31,185 [DEBUG][       Thread-252380][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 10:58:31,185 [DEBUG][       Thread-252380][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 10:58:31,188 [DEBUG][       Thread-252380][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 10:58:31,200 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 10:58:31,201 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 10:58:31,203 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 10:58:31,205 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 10:58:31,211 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 10:58:31,213 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 10:58:31,213 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 10:58:31,214 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 10:58:31,214 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.373551 -999.00   +9.30  20.07     54   +0.60 1 1 1 1 1   887    0 8.53 -8.02 ----- 19.1 20.1 45.4 24.1 14.1 -28.2 12.7 -29.9 11.8 -28.9 13.1 -26.4
2025-06-13 10:58:31,214 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 10:58:31,214 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 10:58:31,214 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.373551
2025-06-13 10:58:31,214 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 10:58:31,215 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 10:58:31,215 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 10:58:31,215 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 10:58:31,215 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 10:58:31,215 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T10:58:03', tmtdew=10.12, humidity=49.31, cloud=0.0, wind=16.41, temperature=9.55, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T08:57:54.806', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 10:58:31,215 [DEBUG][       Thread-252380][   transport.py][1871] : EOF in transport thread
2025-06-13 10:58:31,295 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 10:58:31,305 [DEBUG][       Thread-252383][   transport.py][1871] : starting thread (client mode): 0x8636b250
2025-06-13 10:58:31,305 [DEBUG][       Thread-252383][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 10:58:31,320 [DEBUG][       Thread-252383][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 10:58:31,320 [ INFO][       Thread-252383][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 10:58:31,327 [DEBUG][       Thread-252383][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 10:58:31,327 [DEBUG][       Thread-252383][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 10:58:31,328 [DEBUG][       Thread-252383][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 10:58:31,328 [DEBUG][       Thread-252383][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:58:31,328 [DEBUG][       Thread-252383][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:58:31,328 [DEBUG][       Thread-252383][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:58:31,328 [DEBUG][       Thread-252383][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:58:31,328 [DEBUG][       Thread-252383][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 10:58:31,328 [DEBUG][       Thread-252383][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 10:58:31,328 [DEBUG][       Thread-252383][   transport.py][1871] : client lang: <none>
2025-06-13 10:58:31,328 [DEBUG][       Thread-252383][   transport.py][1871] : server lang: <none>
2025-06-13 10:58:31,328 [DEBUG][       Thread-252383][   transport.py][1871] : kex follows: False
2025-06-13 10:58:31,328 [DEBUG][       Thread-252383][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 10:58:31,328 [DEBUG][       Thread-252383][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 10:58:31,328 [DEBUG][       Thread-252383][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 10:58:31,328 [DEBUG][       Thread-252383][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 10:58:31,328 [DEBUG][       Thread-252383][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 10:58:31,328 [DEBUG][       Thread-252383][   transport.py][1871] : Compression: none
2025-06-13 10:58:31,328 [DEBUG][       Thread-252383][   transport.py][1871] : === End of kex handshake ===
2025-06-13 10:58:31,394 [DEBUG][       Thread-252383][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 10:58:31,394 [DEBUG][       Thread-252383][   transport.py][1871] : Switch to new keys ...
2025-06-13 10:58:31,395 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 10:58:31,395 [DEBUG][       Thread-252383][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 10:58:31,396 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 10:58:31,454 [DEBUG][       Thread-252383][   transport.py][1871] : userauth is OK
2025-06-13 10:58:31,454 [DEBUG][       Thread-252383][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 10:58:31,454 [DEBUG][       Thread-252383][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 10:58:31,454 [DEBUG][       Thread-252383][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 10:58:31,454 [DEBUG][       Thread-252383][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 10:58:31,473 [ INFO][       Thread-252383][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 10:58:31,474 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 10:58:31,474 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 10:58:32,493 [DEBUG][       Thread-252383][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 10:58:32,493 [DEBUG][       Thread-252383][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 10:58:32,545 [DEBUG][       Thread-252383][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 10:58:32,545 [DEBUG][       Thread-252383][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 10:58:32,562 [DEBUG][       Thread-252383][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 10:58:32,574 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 10:58:32,574 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 10:58:32,582 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 10:58:32,591 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 10:58:32,592 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 10:58:32,592 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 10:58:32,600 [DEBUG][       Thread-252383][   transport.py][1871] : EOF in transport thread
2025-06-13 10:58:35,626 [DEBUG][Thread-252385 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:58:42,602 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 10:58:42,602 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 10:58:42,603 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 10:58:42,605 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 10:58:43,076 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 10, 58, 35), 10.22, 48.86, 0.0, 15.93, 9.5, 0, 0, 0, 2, 0, 0),)
2025-06-13 10:58:43,076 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 10:58:35
2025-06-13 10:58:43,157 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 10:58:43,162 [DEBUG][       Thread-252386][   transport.py][1871] : starting thread (client mode): 0x84204340
2025-06-13 10:58:43,162 [DEBUG][       Thread-252386][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 10:58:43,182 [DEBUG][       Thread-252386][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 10:58:43,182 [ INFO][       Thread-252386][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 10:58:43,184 [DEBUG][       Thread-252386][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 10:58:43,184 [DEBUG][       Thread-252386][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 10:58:43,184 [DEBUG][       Thread-252386][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 10:58:43,184 [DEBUG][       Thread-252386][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:58:43,184 [DEBUG][       Thread-252386][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:58:43,184 [DEBUG][       Thread-252386][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:58:43,184 [DEBUG][       Thread-252386][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:58:43,184 [DEBUG][       Thread-252386][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 10:58:43,184 [DEBUG][       Thread-252386][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 10:58:43,184 [DEBUG][       Thread-252386][   transport.py][1871] : client lang: <none>
2025-06-13 10:58:43,184 [DEBUG][       Thread-252386][   transport.py][1871] : server lang: <none>
2025-06-13 10:58:43,184 [DEBUG][       Thread-252386][   transport.py][1871] : kex follows: False
2025-06-13 10:58:43,184 [DEBUG][       Thread-252386][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 10:58:43,184 [DEBUG][       Thread-252386][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 10:58:43,184 [DEBUG][       Thread-252386][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 10:58:43,184 [DEBUG][       Thread-252386][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 10:58:43,184 [DEBUG][       Thread-252386][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 10:58:43,184 [DEBUG][       Thread-252386][   transport.py][1871] : Compression: none
2025-06-13 10:58:43,184 [DEBUG][       Thread-252386][   transport.py][1871] : === End of kex handshake ===
2025-06-13 10:58:43,196 [DEBUG][       Thread-252386][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 10:58:43,196 [DEBUG][       Thread-252386][   transport.py][1871] : Switch to new keys ...
2025-06-13 10:58:43,197 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 10:58:43,197 [DEBUG][       Thread-252386][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 10:58:43,198 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 10:58:43,199 [DEBUG][       Thread-252386][   transport.py][1871] : userauth is OK
2025-06-13 10:58:43,223 [ INFO][       Thread-252386][   transport.py][1871] : Authentication (password) successful!
2025-06-13 10:58:43,224 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 10:58:43,850 [DEBUG][       Thread-252386][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 10:58:43,851 [DEBUG][       Thread-252386][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 10:58:43,893 [DEBUG][       Thread-252386][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 10:58:43,893 [DEBUG][       Thread-252386][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 10:58:43,895 [DEBUG][       Thread-252386][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 10:58:43,909 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 10:58:43,909 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 10:58:43,911 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 10:58:43,912 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 10:58:43,917 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 10:58:43,919 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 10:58:43,919 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 10:58:43,920 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 10:58:43,920 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.373898 -999.00   +9.40  20.54     53   +0.30 1 1 1 1 1   887    0 8.49 -8.85 ----- 26.6 20.5 51.6 28.6 14.1 -29.2 12.7 -29.7 11.8 -28.4 13.1 -26.3
2025-06-13 10:58:43,920 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 10:58:43,920 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 10:58:43,920 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.373898
2025-06-13 10:58:43,920 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 10:58:43,921 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 10:58:43,921 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 10:58:43,921 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 10:58:43,921 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 10:58:43,921 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T10:58:35', tmtdew=10.22, humidity=48.86, cloud=0.0, wind=15.93, temperature=9.5, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T08:58:24.787', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 10:58:43,922 [DEBUG][       Thread-252386][   transport.py][1871] : EOF in transport thread
2025-06-13 10:58:44,002 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 10:58:44,014 [DEBUG][       Thread-252389][   transport.py][1871] : starting thread (client mode): 0x867b7d30
2025-06-13 10:58:44,014 [DEBUG][       Thread-252389][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 10:58:44,034 [DEBUG][       Thread-252389][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 10:58:44,034 [ INFO][       Thread-252389][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 10:58:44,041 [DEBUG][       Thread-252389][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 10:58:44,042 [DEBUG][       Thread-252389][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 10:58:44,042 [DEBUG][       Thread-252389][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 10:58:44,042 [DEBUG][       Thread-252389][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:58:44,042 [DEBUG][       Thread-252389][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:58:44,042 [DEBUG][       Thread-252389][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:58:44,042 [DEBUG][       Thread-252389][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:58:44,042 [DEBUG][       Thread-252389][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 10:58:44,042 [DEBUG][       Thread-252389][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 10:58:44,042 [DEBUG][       Thread-252389][   transport.py][1871] : client lang: <none>
2025-06-13 10:58:44,042 [DEBUG][       Thread-252389][   transport.py][1871] : server lang: <none>
2025-06-13 10:58:44,042 [DEBUG][       Thread-252389][   transport.py][1871] : kex follows: False
2025-06-13 10:58:44,042 [DEBUG][       Thread-252389][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 10:58:44,042 [DEBUG][       Thread-252389][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 10:58:44,042 [DEBUG][       Thread-252389][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 10:58:44,042 [DEBUG][       Thread-252389][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 10:58:44,042 [DEBUG][       Thread-252389][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 10:58:44,043 [DEBUG][       Thread-252389][   transport.py][1871] : Compression: none
2025-06-13 10:58:44,043 [DEBUG][       Thread-252389][   transport.py][1871] : === End of kex handshake ===
2025-06-13 10:58:44,100 [DEBUG][       Thread-252389][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 10:58:44,101 [DEBUG][       Thread-252389][   transport.py][1871] : Switch to new keys ...
2025-06-13 10:58:44,101 [DEBUG][       Thread-252389][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 10:58:44,101 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 10:58:44,102 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 10:58:44,158 [DEBUG][       Thread-252389][   transport.py][1871] : userauth is OK
2025-06-13 10:58:44,159 [DEBUG][       Thread-252389][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 10:58:44,159 [DEBUG][       Thread-252389][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 10:58:44,159 [DEBUG][       Thread-252389][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 10:58:44,159 [DEBUG][       Thread-252389][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 10:58:44,182 [ INFO][       Thread-252389][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 10:58:44,182 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 10:58:44,182 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 10:58:44,646 [DEBUG][Thread-252391 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:58:45,165 [DEBUG][       Thread-252389][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 10:58:45,166 [DEBUG][       Thread-252389][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 10:58:45,215 [DEBUG][       Thread-252389][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 10:58:45,216 [DEBUG][       Thread-252389][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 10:58:45,224 [DEBUG][       Thread-252389][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 10:58:45,233 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 10:58:45,233 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 10:58:45,242 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 10:58:45,250 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 10:58:45,251 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 10:58:45,251 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 10:58:45,259 [DEBUG][       Thread-252389][   transport.py][1871] : EOF in transport thread
2025-06-13 10:58:47,733 [DEBUG][Thread-252392 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:58:48,804 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:58:48,805 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:58:53,676 [DEBUG][Thread-252393 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:58:55,260 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 10:58:55,260 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 10:58:55,260 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 10:58:55,262 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 10:58:55,723 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 10, 58, 35), 10.22, 48.86, 0.0, 15.93, 9.5, 0, 0, 0, 2, 0, 0),)
2025-06-13 10:58:55,723 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 10:58:35
2025-06-13 10:58:55,804 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 10:58:55,808 [DEBUG][       Thread-252394][   transport.py][1871] : starting thread (client mode): 0x863be4a0
2025-06-13 10:58:55,808 [DEBUG][       Thread-252394][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 10:58:55,829 [DEBUG][       Thread-252394][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 10:58:55,829 [ INFO][       Thread-252394][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 10:58:55,832 [DEBUG][       Thread-252394][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 10:58:55,832 [DEBUG][       Thread-252394][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 10:58:55,832 [DEBUG][       Thread-252394][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 10:58:55,832 [DEBUG][       Thread-252394][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:58:55,832 [DEBUG][       Thread-252394][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:58:55,832 [DEBUG][       Thread-252394][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:58:55,832 [DEBUG][       Thread-252394][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:58:55,832 [DEBUG][       Thread-252394][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 10:58:55,832 [DEBUG][       Thread-252394][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 10:58:55,832 [DEBUG][       Thread-252394][   transport.py][1871] : client lang: <none>
2025-06-13 10:58:55,832 [DEBUG][       Thread-252394][   transport.py][1871] : server lang: <none>
2025-06-13 10:58:55,832 [DEBUG][       Thread-252394][   transport.py][1871] : kex follows: False
2025-06-13 10:58:55,832 [DEBUG][       Thread-252394][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 10:58:55,833 [DEBUG][       Thread-252394][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 10:58:55,833 [DEBUG][       Thread-252394][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 10:58:55,833 [DEBUG][       Thread-252394][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 10:58:55,833 [DEBUG][       Thread-252394][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 10:58:55,833 [DEBUG][       Thread-252394][   transport.py][1871] : Compression: none
2025-06-13 10:58:55,833 [DEBUG][       Thread-252394][   transport.py][1871] : === End of kex handshake ===
2025-06-13 10:58:55,849 [DEBUG][       Thread-252394][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 10:58:55,849 [DEBUG][       Thread-252394][   transport.py][1871] : Switch to new keys ...
2025-06-13 10:58:55,850 [DEBUG][       Thread-252394][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 10:58:55,850 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 10:58:55,850 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 10:58:55,851 [DEBUG][       Thread-252394][   transport.py][1871] : userauth is OK
2025-06-13 10:58:55,899 [ INFO][       Thread-252394][   transport.py][1871] : Authentication (password) successful!
2025-06-13 10:58:55,899 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 10:58:56,501 [DEBUG][       Thread-252394][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 10:58:56,501 [DEBUG][       Thread-252394][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 10:58:56,545 [DEBUG][       Thread-252394][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 10:58:56,545 [DEBUG][       Thread-252394][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 10:58:56,548 [DEBUG][       Thread-252394][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 10:58:56,560 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 10:58:56,561 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 10:58:56,562 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 10:58:56,564 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 10:58:56,568 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 10:58:56,570 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 10:58:56,570 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 10:58:56,571 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 10:58:56,571 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.373898 -999.00   +9.40  20.54     53   +0.30 1 1 1 1 1   887    0 8.49 -8.85 ----- 26.6 20.5 51.6 28.6 14.1 -29.2 12.7 -29.7 11.8 -28.4 13.1 -26.3
2025-06-13 10:58:56,571 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 10:58:56,571 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 10:58:56,571 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.373898
2025-06-13 10:58:56,572 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 10:58:56,572 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 10:58:56,572 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 10:58:56,572 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 10:58:56,572 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 10:58:56,572 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T10:58:35', tmtdew=10.22, humidity=48.86, cloud=0.0, wind=15.93, temperature=9.5, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T08:58:24.787', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 10:58:56,573 [DEBUG][       Thread-252394][   transport.py][1871] : EOF in transport thread
2025-06-13 10:58:56,656 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 10:58:56,665 [DEBUG][       Thread-252397][   transport.py][1871] : starting thread (client mode): 0x863cae60
2025-06-13 10:58:56,666 [DEBUG][       Thread-252397][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 10:58:56,683 [DEBUG][       Thread-252397][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 10:58:56,683 [ INFO][       Thread-252397][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 10:58:56,691 [DEBUG][       Thread-252397][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 10:58:56,691 [DEBUG][       Thread-252397][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 10:58:56,691 [DEBUG][       Thread-252397][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 10:58:56,691 [DEBUG][       Thread-252397][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:58:56,691 [DEBUG][       Thread-252397][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:58:56,691 [DEBUG][       Thread-252397][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:58:56,691 [DEBUG][       Thread-252397][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:58:56,691 [DEBUG][       Thread-252397][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 10:58:56,691 [DEBUG][       Thread-252397][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 10:58:56,691 [DEBUG][       Thread-252397][   transport.py][1871] : client lang: <none>
2025-06-13 10:58:56,691 [DEBUG][       Thread-252397][   transport.py][1871] : server lang: <none>
2025-06-13 10:58:56,691 [DEBUG][       Thread-252397][   transport.py][1871] : kex follows: False
2025-06-13 10:58:56,691 [DEBUG][       Thread-252397][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 10:58:56,691 [DEBUG][       Thread-252397][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 10:58:56,691 [DEBUG][       Thread-252397][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 10:58:56,691 [DEBUG][       Thread-252397][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 10:58:56,691 [DEBUG][       Thread-252397][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 10:58:56,692 [DEBUG][       Thread-252397][   transport.py][1871] : Compression: none
2025-06-13 10:58:56,692 [DEBUG][       Thread-252397][   transport.py][1871] : === End of kex handshake ===
2025-06-13 10:58:56,754 [DEBUG][       Thread-252397][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 10:58:56,754 [DEBUG][       Thread-252397][   transport.py][1871] : Switch to new keys ...
2025-06-13 10:58:56,755 [DEBUG][       Thread-252397][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 10:58:56,755 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 10:58:56,755 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 10:58:56,819 [DEBUG][       Thread-252397][   transport.py][1871] : userauth is OK
2025-06-13 10:58:56,820 [DEBUG][       Thread-252397][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 10:58:56,820 [DEBUG][       Thread-252397][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 10:58:56,820 [DEBUG][       Thread-252397][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 10:58:56,820 [DEBUG][       Thread-252397][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 10:58:56,842 [ INFO][       Thread-252397][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 10:58:56,842 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 10:58:56,842 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 10:58:57,891 [DEBUG][       Thread-252397][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 10:58:57,891 [DEBUG][       Thread-252397][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 10:58:57,948 [DEBUG][       Thread-252397][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 10:58:57,948 [DEBUG][       Thread-252397][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 10:58:57,960 [DEBUG][       Thread-252397][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 10:58:57,976 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 10:58:57,977 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 10:58:57,986 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 10:58:57,998 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 10:58:57,999 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 10:58:57,999 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 10:58:58,009 [DEBUG][       Thread-252397][   transport.py][1871] : EOF in transport thread
2025-06-13 10:59:02,695 [DEBUG][Thread-252399 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:59:07,794 [DEBUG][Thread-252400 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:59:08,008 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 10:59:08,008 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 10:59:08,008 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 10:59:08,008 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 10:59:08,507 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 10, 58, 35), 10.22, 48.86, 0.0, 15.93, 9.5, 0, 0, 0, 2, 0, 0),)
2025-06-13 10:59:08,507 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 10:58:35
2025-06-13 10:59:08,594 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 10:59:08,599 [DEBUG][       Thread-252401][   transport.py][1871] : starting thread (client mode): 0x842048b0
2025-06-13 10:59:08,599 [DEBUG][       Thread-252401][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 10:59:08,618 [DEBUG][       Thread-252401][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 10:59:08,618 [ INFO][       Thread-252401][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 10:59:08,622 [DEBUG][       Thread-252401][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 10:59:08,622 [DEBUG][       Thread-252401][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 10:59:08,622 [DEBUG][       Thread-252401][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 10:59:08,622 [DEBUG][       Thread-252401][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:59:08,622 [DEBUG][       Thread-252401][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:59:08,622 [DEBUG][       Thread-252401][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:59:08,622 [DEBUG][       Thread-252401][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:59:08,622 [DEBUG][       Thread-252401][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 10:59:08,622 [DEBUG][       Thread-252401][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 10:59:08,622 [DEBUG][       Thread-252401][   transport.py][1871] : client lang: <none>
2025-06-13 10:59:08,622 [DEBUG][       Thread-252401][   transport.py][1871] : server lang: <none>
2025-06-13 10:59:08,622 [DEBUG][       Thread-252401][   transport.py][1871] : kex follows: False
2025-06-13 10:59:08,622 [DEBUG][       Thread-252401][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 10:59:08,622 [DEBUG][       Thread-252401][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 10:59:08,622 [DEBUG][       Thread-252401][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 10:59:08,622 [DEBUG][       Thread-252401][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 10:59:08,622 [DEBUG][       Thread-252401][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 10:59:08,622 [DEBUG][       Thread-252401][   transport.py][1871] : Compression: none
2025-06-13 10:59:08,622 [DEBUG][       Thread-252401][   transport.py][1871] : === End of kex handshake ===
2025-06-13 10:59:08,636 [DEBUG][       Thread-252401][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 10:59:08,636 [DEBUG][       Thread-252401][   transport.py][1871] : Switch to new keys ...
2025-06-13 10:59:08,636 [DEBUG][       Thread-252401][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 10:59:08,637 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 10:59:08,637 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 10:59:08,637 [DEBUG][       Thread-252401][   transport.py][1871] : userauth is OK
2025-06-13 10:59:08,650 [ INFO][       Thread-252401][   transport.py][1871] : Authentication (password) successful!
2025-06-13 10:59:08,650 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 10:59:09,293 [DEBUG][       Thread-252401][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 10:59:09,293 [DEBUG][       Thread-252401][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 10:59:09,337 [DEBUG][       Thread-252401][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 10:59:09,337 [DEBUG][       Thread-252401][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 10:59:09,339 [DEBUG][       Thread-252401][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 10:59:09,352 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 10:59:09,352 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 10:59:09,353 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 10:59:09,354 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 10:59:09,357 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 10:59:09,358 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 10:59:09,358 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 10:59:09,358 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 10:59:09,358 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.373898 -999.00   +9.40  20.54     53   +0.30 1 1 1 1 1   887    0 8.49 -8.85 ----- 26.6 20.5 51.6 28.6 14.1 -29.2 12.7 -29.7 11.8 -28.4 13.1 -26.3
2025-06-13 10:59:09,358 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 10:59:09,358 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 10:59:09,358 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.373898
2025-06-13 10:59:09,359 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 10:59:09,359 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 10:59:09,359 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 10:59:09,359 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 10:59:09,359 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 10:59:09,359 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T10:58:35', tmtdew=10.22, humidity=48.86, cloud=0.0, wind=15.93, temperature=9.5, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T08:58:24.787', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 10:59:09,359 [DEBUG][       Thread-252401][   transport.py][1871] : EOF in transport thread
2025-06-13 10:59:09,432 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 10:59:09,443 [DEBUG][       Thread-252404][   transport.py][1871] : starting thread (client mode): 0x863c8be0
2025-06-13 10:59:09,443 [DEBUG][       Thread-252404][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 10:59:09,464 [DEBUG][       Thread-252404][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 10:59:09,464 [ INFO][       Thread-252404][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 10:59:09,476 [DEBUG][       Thread-252404][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 10:59:09,477 [DEBUG][       Thread-252404][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 10:59:09,477 [DEBUG][       Thread-252404][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 10:59:09,477 [DEBUG][       Thread-252404][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:59:09,477 [DEBUG][       Thread-252404][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:59:09,477 [DEBUG][       Thread-252404][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:59:09,477 [DEBUG][       Thread-252404][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:59:09,477 [DEBUG][       Thread-252404][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 10:59:09,477 [DEBUG][       Thread-252404][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 10:59:09,477 [DEBUG][       Thread-252404][   transport.py][1871] : client lang: <none>
2025-06-13 10:59:09,477 [DEBUG][       Thread-252404][   transport.py][1871] : server lang: <none>
2025-06-13 10:59:09,477 [DEBUG][       Thread-252404][   transport.py][1871] : kex follows: False
2025-06-13 10:59:09,477 [DEBUG][       Thread-252404][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 10:59:09,477 [DEBUG][       Thread-252404][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 10:59:09,477 [DEBUG][       Thread-252404][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 10:59:09,477 [DEBUG][       Thread-252404][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 10:59:09,477 [DEBUG][       Thread-252404][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 10:59:09,477 [DEBUG][       Thread-252404][   transport.py][1871] : Compression: none
2025-06-13 10:59:09,477 [DEBUG][       Thread-252404][   transport.py][1871] : === End of kex handshake ===
2025-06-13 10:59:09,530 [DEBUG][       Thread-252404][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 10:59:09,530 [DEBUG][       Thread-252404][   transport.py][1871] : Switch to new keys ...
2025-06-13 10:59:09,531 [DEBUG][       Thread-252404][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 10:59:09,531 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 10:59:09,532 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 10:59:09,587 [DEBUG][       Thread-252404][   transport.py][1871] : userauth is OK
2025-06-13 10:59:09,587 [DEBUG][       Thread-252404][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 10:59:09,587 [DEBUG][       Thread-252404][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 10:59:09,587 [DEBUG][       Thread-252404][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 10:59:09,587 [DEBUG][       Thread-252404][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 10:59:09,606 [ INFO][       Thread-252404][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 10:59:09,606 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 10:59:09,607 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 10:59:10,628 [DEBUG][       Thread-252404][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 10:59:10,628 [DEBUG][       Thread-252404][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 10:59:10,676 [DEBUG][       Thread-252404][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 10:59:10,676 [DEBUG][       Thread-252404][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 10:59:10,685 [DEBUG][       Thread-252404][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 10:59:10,694 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 10:59:10,694 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 10:59:10,703 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 10:59:10,712 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 10:59:10,712 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 10:59:10,712 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 10:59:10,720 [DEBUG][       Thread-252404][   transport.py][1871] : EOF in transport thread
2025-06-13 10:59:11,713 [DEBUG][Thread-252406 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:59:20,723 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 10:59:20,723 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 10:59:20,723 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 10:59:20,726 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 10:59:20,730 [DEBUG][Thread-252407 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:59:21,210 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 10, 59, 7), 10.06, 49.4, 0.0, 19.73, 9.48, 0, 0, 0, 2, 0, 0),)
2025-06-13 10:59:21,210 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 10:59:07
2025-06-13 10:59:21,292 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 10:59:21,296 [DEBUG][       Thread-252408][   transport.py][1871] : starting thread (client mode): 0x863beb90
2025-06-13 10:59:21,296 [DEBUG][       Thread-252408][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 10:59:21,318 [DEBUG][       Thread-252408][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 10:59:21,318 [ INFO][       Thread-252408][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 10:59:21,321 [DEBUG][       Thread-252408][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 10:59:21,321 [DEBUG][       Thread-252408][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 10:59:21,321 [DEBUG][       Thread-252408][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 10:59:21,321 [DEBUG][       Thread-252408][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:59:21,321 [DEBUG][       Thread-252408][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:59:21,321 [DEBUG][       Thread-252408][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:59:21,321 [DEBUG][       Thread-252408][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:59:21,321 [DEBUG][       Thread-252408][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 10:59:21,321 [DEBUG][       Thread-252408][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 10:59:21,321 [DEBUG][       Thread-252408][   transport.py][1871] : client lang: <none>
2025-06-13 10:59:21,321 [DEBUG][       Thread-252408][   transport.py][1871] : server lang: <none>
2025-06-13 10:59:21,321 [DEBUG][       Thread-252408][   transport.py][1871] : kex follows: False
2025-06-13 10:59:21,321 [DEBUG][       Thread-252408][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 10:59:21,321 [DEBUG][       Thread-252408][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 10:59:21,321 [DEBUG][       Thread-252408][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 10:59:21,321 [DEBUG][       Thread-252408][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 10:59:21,321 [DEBUG][       Thread-252408][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 10:59:21,321 [DEBUG][       Thread-252408][   transport.py][1871] : Compression: none
2025-06-13 10:59:21,321 [DEBUG][       Thread-252408][   transport.py][1871] : === End of kex handshake ===
2025-06-13 10:59:21,338 [DEBUG][       Thread-252408][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 10:59:21,338 [DEBUG][       Thread-252408][   transport.py][1871] : Switch to new keys ...
2025-06-13 10:59:21,339 [DEBUG][       Thread-252408][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 10:59:21,339 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 10:59:21,339 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 10:59:21,340 [DEBUG][       Thread-252408][   transport.py][1871] : userauth is OK
2025-06-13 10:59:21,365 [ INFO][       Thread-252408][   transport.py][1871] : Authentication (password) successful!
2025-06-13 10:59:21,365 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 10:59:21,993 [DEBUG][       Thread-252408][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 10:59:21,994 [DEBUG][       Thread-252408][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 10:59:22,037 [DEBUG][       Thread-252408][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 10:59:22,037 [DEBUG][       Thread-252408][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 10:59:22,039 [DEBUG][       Thread-252408][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 10:59:22,051 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 10:59:22,051 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 10:59:22,053 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 10:59:22,054 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 10:59:22,059 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 10:59:22,061 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 10:59:22,061 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 10:59:22,061 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 10:59:22,062 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.374245 -999.00   +9.40  21.61     53   +0.40 1 1 1 1 1   887    0 8.67 -7.66 ----- 19.0 21.6 49.4 29.1 14.0 -28.4 12.7 -29.7 11.8 -28.9 13.1 -26.4
2025-06-13 10:59:22,062 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 10:59:22,062 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 10:59:22,062 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.374245
2025-06-13 10:59:22,062 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 10:59:22,063 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 10:59:22,063 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 10:59:22,063 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 10:59:22,063 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 10:59:22,063 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T10:59:07', tmtdew=10.06, humidity=49.4, cloud=0.0, wind=19.73, temperature=9.48, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T08:58:54.768', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 10:59:22,063 [DEBUG][       Thread-252408][   transport.py][1871] : EOF in transport thread
2025-06-13 10:59:22,146 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 10:59:22,156 [DEBUG][       Thread-252411][   transport.py][1871] : starting thread (client mode): 0x867ffac0
2025-06-13 10:59:22,156 [DEBUG][       Thread-252411][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 10:59:22,170 [DEBUG][       Thread-252411][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 10:59:22,170 [ INFO][       Thread-252411][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 10:59:22,177 [DEBUG][       Thread-252411][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 10:59:22,178 [DEBUG][       Thread-252411][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 10:59:22,178 [DEBUG][       Thread-252411][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 10:59:22,178 [DEBUG][       Thread-252411][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:59:22,178 [DEBUG][       Thread-252411][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:59:22,178 [DEBUG][       Thread-252411][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:59:22,178 [DEBUG][       Thread-252411][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:59:22,178 [DEBUG][       Thread-252411][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 10:59:22,178 [DEBUG][       Thread-252411][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 10:59:22,178 [DEBUG][       Thread-252411][   transport.py][1871] : client lang: <none>
2025-06-13 10:59:22,178 [DEBUG][       Thread-252411][   transport.py][1871] : server lang: <none>
2025-06-13 10:59:22,179 [DEBUG][       Thread-252411][   transport.py][1871] : kex follows: False
2025-06-13 10:59:22,179 [DEBUG][       Thread-252411][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 10:59:22,179 [DEBUG][       Thread-252411][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 10:59:22,179 [DEBUG][       Thread-252411][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 10:59:22,179 [DEBUG][       Thread-252411][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 10:59:22,179 [DEBUG][       Thread-252411][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 10:59:22,179 [DEBUG][       Thread-252411][   transport.py][1871] : Compression: none
2025-06-13 10:59:22,179 [DEBUG][       Thread-252411][   transport.py][1871] : === End of kex handshake ===
2025-06-13 10:59:22,236 [DEBUG][       Thread-252411][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 10:59:22,237 [DEBUG][       Thread-252411][   transport.py][1871] : Switch to new keys ...
2025-06-13 10:59:22,238 [DEBUG][       Thread-252411][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 10:59:22,238 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 10:59:22,239 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 10:59:22,298 [DEBUG][       Thread-252411][   transport.py][1871] : userauth is OK
2025-06-13 10:59:22,298 [DEBUG][       Thread-252411][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 10:59:22,299 [DEBUG][       Thread-252411][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 10:59:22,299 [DEBUG][       Thread-252411][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 10:59:22,299 [DEBUG][       Thread-252411][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 10:59:22,318 [ INFO][       Thread-252411][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 10:59:22,319 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 10:59:22,319 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 10:59:23,338 [DEBUG][       Thread-252411][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 10:59:23,338 [DEBUG][       Thread-252411][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 10:59:23,387 [DEBUG][       Thread-252411][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 10:59:23,388 [DEBUG][       Thread-252411][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 10:59:23,396 [DEBUG][       Thread-252411][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 10:59:23,405 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 10:59:23,405 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 10:59:23,413 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 10:59:23,422 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 10:59:23,422 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 10:59:23,423 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 10:59:23,430 [DEBUG][       Thread-252411][   transport.py][1871] : EOF in transport thread
2025-06-13 10:59:29,749 [DEBUG][Thread-252413 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:59:30,932 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:59:30,934 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:59:33,432 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 10:59:33,432 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 10:59:33,432 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 10:59:33,435 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 10:59:33,916 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 10, 59, 7), 10.06, 49.4, 0.0, 19.73, 9.48, 0, 0, 0, 2, 0, 0),)
2025-06-13 10:59:33,916 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 10:59:07
2025-06-13 10:59:33,998 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 10:59:34,003 [DEBUG][       Thread-252414][   transport.py][1871] : starting thread (client mode): 0x84205cf0
2025-06-13 10:59:34,003 [DEBUG][       Thread-252414][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 10:59:34,023 [DEBUG][       Thread-252414][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 10:59:34,023 [ INFO][       Thread-252414][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 10:59:34,026 [DEBUG][       Thread-252414][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 10:59:34,027 [DEBUG][       Thread-252414][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 10:59:34,027 [DEBUG][       Thread-252414][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 10:59:34,027 [DEBUG][       Thread-252414][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:59:34,027 [DEBUG][       Thread-252414][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:59:34,027 [DEBUG][       Thread-252414][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:59:34,027 [DEBUG][       Thread-252414][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:59:34,027 [DEBUG][       Thread-252414][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 10:59:34,027 [DEBUG][       Thread-252414][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 10:59:34,027 [DEBUG][       Thread-252414][   transport.py][1871] : client lang: <none>
2025-06-13 10:59:34,027 [DEBUG][       Thread-252414][   transport.py][1871] : server lang: <none>
2025-06-13 10:59:34,027 [DEBUG][       Thread-252414][   transport.py][1871] : kex follows: False
2025-06-13 10:59:34,027 [DEBUG][       Thread-252414][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 10:59:34,027 [DEBUG][       Thread-252414][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 10:59:34,027 [DEBUG][       Thread-252414][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 10:59:34,027 [DEBUG][       Thread-252414][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 10:59:34,027 [DEBUG][       Thread-252414][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 10:59:34,027 [DEBUG][       Thread-252414][   transport.py][1871] : Compression: none
2025-06-13 10:59:34,027 [DEBUG][       Thread-252414][   transport.py][1871] : === End of kex handshake ===
2025-06-13 10:59:34,046 [DEBUG][       Thread-252414][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 10:59:34,046 [DEBUG][       Thread-252414][   transport.py][1871] : Switch to new keys ...
2025-06-13 10:59:34,047 [DEBUG][       Thread-252414][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 10:59:34,047 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 10:59:34,047 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 10:59:34,048 [DEBUG][       Thread-252414][   transport.py][1871] : userauth is OK
2025-06-13 10:59:34,073 [ INFO][       Thread-252414][   transport.py][1871] : Authentication (password) successful!
2025-06-13 10:59:34,074 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 10:59:34,703 [DEBUG][       Thread-252414][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 10:59:34,704 [DEBUG][       Thread-252414][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 10:59:34,745 [DEBUG][       Thread-252414][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 10:59:34,745 [DEBUG][       Thread-252414][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 10:59:34,748 [DEBUG][       Thread-252414][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 10:59:34,759 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 10:59:34,759 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 10:59:34,761 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 10:59:34,763 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 10:59:34,768 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 10:59:34,770 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 10:59:34,770 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 10:59:34,771 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 10:59:34,771 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.374245 -999.00   +9.40  21.61     53   +0.40 1 1 1 1 1   887    0 8.67 -7.66 ----- 19.0 21.6 49.4 29.1 14.0 -28.4 12.7 -29.7 11.8 -28.9 13.1 -26.4
2025-06-13 10:59:34,771 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 10:59:34,771 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 10:59:34,771 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.374245
2025-06-13 10:59:34,772 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 10:59:34,772 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 10:59:34,772 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 10:59:34,772 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 10:59:34,772 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 10:59:34,773 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T10:59:07', tmtdew=10.06, humidity=49.4, cloud=0.0, wind=19.73, temperature=9.48, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T08:58:54.768', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 10:59:34,773 [DEBUG][       Thread-252414][   transport.py][1871] : EOF in transport thread
2025-06-13 10:59:34,856 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 10:59:34,869 [DEBUG][       Thread-252417][   transport.py][1871] : starting thread (client mode): 0x863ef010
2025-06-13 10:59:34,869 [DEBUG][       Thread-252417][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 10:59:34,890 [DEBUG][       Thread-252417][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 10:59:34,890 [ INFO][       Thread-252417][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 10:59:34,898 [DEBUG][       Thread-252417][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 10:59:34,898 [DEBUG][       Thread-252417][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 10:59:34,898 [DEBUG][       Thread-252417][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 10:59:34,898 [DEBUG][       Thread-252417][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:59:34,898 [DEBUG][       Thread-252417][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:59:34,898 [DEBUG][       Thread-252417][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:59:34,898 [DEBUG][       Thread-252417][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:59:34,898 [DEBUG][       Thread-252417][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 10:59:34,898 [DEBUG][       Thread-252417][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 10:59:34,898 [DEBUG][       Thread-252417][   transport.py][1871] : client lang: <none>
2025-06-13 10:59:34,898 [DEBUG][       Thread-252417][   transport.py][1871] : server lang: <none>
2025-06-13 10:59:34,898 [DEBUG][       Thread-252417][   transport.py][1871] : kex follows: False
2025-06-13 10:59:34,898 [DEBUG][       Thread-252417][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 10:59:34,899 [DEBUG][       Thread-252417][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 10:59:34,899 [DEBUG][       Thread-252417][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 10:59:34,899 [DEBUG][       Thread-252417][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 10:59:34,899 [DEBUG][       Thread-252417][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 10:59:34,899 [DEBUG][       Thread-252417][   transport.py][1871] : Compression: none
2025-06-13 10:59:34,899 [DEBUG][       Thread-252417][   transport.py][1871] : === End of kex handshake ===
2025-06-13 10:59:34,954 [DEBUG][       Thread-252417][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 10:59:34,954 [DEBUG][       Thread-252417][   transport.py][1871] : Switch to new keys ...
2025-06-13 10:59:34,955 [DEBUG][       Thread-252417][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 10:59:34,955 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 10:59:34,956 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 10:59:35,010 [DEBUG][       Thread-252417][   transport.py][1871] : userauth is OK
2025-06-13 10:59:35,011 [DEBUG][       Thread-252417][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 10:59:35,011 [DEBUG][       Thread-252417][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 10:59:35,011 [DEBUG][       Thread-252417][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 10:59:35,011 [DEBUG][       Thread-252417][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 10:59:35,030 [ INFO][       Thread-252417][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 10:59:35,030 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 10:59:35,030 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 10:59:36,016 [DEBUG][       Thread-252417][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 10:59:36,017 [DEBUG][       Thread-252417][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 10:59:36,069 [DEBUG][       Thread-252417][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 10:59:36,069 [DEBUG][       Thread-252417][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 10:59:36,077 [DEBUG][       Thread-252417][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 10:59:36,088 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 10:59:36,088 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 10:59:36,096 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 10:59:36,108 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 10:59:36,108 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 10:59:36,108 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 10:59:36,117 [DEBUG][       Thread-252417][   transport.py][1871] : EOF in transport thread
2025-06-13 10:59:38,777 [DEBUG][Thread-252419 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:59:46,119 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 10:59:46,119 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 10:59:46,119 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 10:59:46,121 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 10:59:46,600 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 10, 59, 39), 10.06, 49.32, 0.0, 24.1, 9.5, 0, 0, 0, 2, 0, 0),)
2025-06-13 10:59:46,600 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 10:59:39
2025-06-13 10:59:46,683 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 10:59:46,691 [DEBUG][       Thread-252420][   transport.py][1871] : starting thread (client mode): 0x84207c40
2025-06-13 10:59:46,691 [DEBUG][       Thread-252420][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 10:59:46,712 [DEBUG][       Thread-252420][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 10:59:46,712 [ INFO][       Thread-252420][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 10:59:46,715 [DEBUG][       Thread-252420][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 10:59:46,716 [DEBUG][       Thread-252420][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 10:59:46,716 [DEBUG][       Thread-252420][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 10:59:46,716 [DEBUG][       Thread-252420][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:59:46,716 [DEBUG][       Thread-252420][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:59:46,716 [DEBUG][       Thread-252420][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:59:46,716 [DEBUG][       Thread-252420][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:59:46,716 [DEBUG][       Thread-252420][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 10:59:46,716 [DEBUG][       Thread-252420][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 10:59:46,716 [DEBUG][       Thread-252420][   transport.py][1871] : client lang: <none>
2025-06-13 10:59:46,716 [DEBUG][       Thread-252420][   transport.py][1871] : server lang: <none>
2025-06-13 10:59:46,716 [DEBUG][       Thread-252420][   transport.py][1871] : kex follows: False
2025-06-13 10:59:46,716 [DEBUG][       Thread-252420][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 10:59:46,716 [DEBUG][       Thread-252420][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 10:59:46,716 [DEBUG][       Thread-252420][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 10:59:46,716 [DEBUG][       Thread-252420][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 10:59:46,716 [DEBUG][       Thread-252420][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 10:59:46,716 [DEBUG][       Thread-252420][   transport.py][1871] : Compression: none
2025-06-13 10:59:46,716 [DEBUG][       Thread-252420][   transport.py][1871] : === End of kex handshake ===
2025-06-13 10:59:46,731 [DEBUG][       Thread-252420][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 10:59:46,732 [DEBUG][       Thread-252420][   transport.py][1871] : Switch to new keys ...
2025-06-13 10:59:46,732 [DEBUG][       Thread-252420][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 10:59:46,732 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 10:59:46,732 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 10:59:46,733 [DEBUG][       Thread-252420][   transport.py][1871] : userauth is OK
2025-06-13 10:59:46,756 [ INFO][       Thread-252420][   transport.py][1871] : Authentication (password) successful!
2025-06-13 10:59:46,757 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 10:59:47,522 [DEBUG][       Thread-252420][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 10:59:47,523 [DEBUG][       Thread-252420][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 10:59:47,565 [DEBUG][       Thread-252420][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 10:59:47,565 [DEBUG][       Thread-252420][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 10:59:47,568 [DEBUG][       Thread-252420][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 10:59:47,582 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 10:59:47,582 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 10:59:47,584 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 10:59:47,586 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 10:59:47,591 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 10:59:47,593 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 10:59:47,593 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 10:59:47,594 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 10:59:47,594 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.374245 -999.00   +9.40  21.61     53   +0.40 1 1 1 1 1   887    0 8.67 -7.66 ----- 19.0 21.6 49.4 29.1 14.0 -28.4 12.7 -29.7 11.8 -28.9 13.1 -26.4
2025-06-13 10:59:47,594 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 10:59:47,594 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 10:59:47,594 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.374245
2025-06-13 10:59:47,594 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 10:59:47,595 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 10:59:47,595 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 10:59:47,595 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 10:59:47,595 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 10:59:47,595 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T10:59:39', tmtdew=10.06, humidity=49.32, cloud=0.0, wind=24.1, temperature=9.5, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T08:58:54.768', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 10:59:47,595 [DEBUG][       Thread-252420][   transport.py][1871] : EOF in transport thread
2025-06-13 10:59:47,680 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 10:59:47,692 [DEBUG][       Thread-252423][   transport.py][1871] : starting thread (client mode): 0x867b48e0
2025-06-13 10:59:47,692 [DEBUG][       Thread-252423][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 10:59:47,709 [DEBUG][       Thread-252423][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 10:59:47,709 [ INFO][       Thread-252423][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 10:59:47,717 [DEBUG][       Thread-252423][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 10:59:47,717 [DEBUG][       Thread-252423][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 10:59:47,717 [DEBUG][       Thread-252423][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 10:59:47,717 [DEBUG][       Thread-252423][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:59:47,717 [DEBUG][       Thread-252423][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:59:47,717 [DEBUG][       Thread-252423][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:59:47,717 [DEBUG][       Thread-252423][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:59:47,717 [DEBUG][       Thread-252423][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 10:59:47,717 [DEBUG][       Thread-252423][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 10:59:47,717 [DEBUG][       Thread-252423][   transport.py][1871] : client lang: <none>
2025-06-13 10:59:47,717 [DEBUG][       Thread-252423][   transport.py][1871] : server lang: <none>
2025-06-13 10:59:47,717 [DEBUG][       Thread-252423][   transport.py][1871] : kex follows: False
2025-06-13 10:59:47,717 [DEBUG][       Thread-252423][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 10:59:47,718 [DEBUG][       Thread-252423][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 10:59:47,718 [DEBUG][       Thread-252423][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 10:59:47,718 [DEBUG][       Thread-252423][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 10:59:47,718 [DEBUG][       Thread-252423][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 10:59:47,718 [DEBUG][       Thread-252423][   transport.py][1871] : Compression: none
2025-06-13 10:59:47,718 [DEBUG][       Thread-252423][   transport.py][1871] : === End of kex handshake ===
2025-06-13 10:59:47,778 [DEBUG][       Thread-252423][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 10:59:47,779 [DEBUG][       Thread-252423][   transport.py][1871] : Switch to new keys ...
2025-06-13 10:59:47,779 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 10:59:47,780 [DEBUG][       Thread-252423][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 10:59:47,781 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 10:59:47,793 [DEBUG][Thread-252425 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:59:47,838 [DEBUG][       Thread-252423][   transport.py][1871] : userauth is OK
2025-06-13 10:59:47,838 [DEBUG][       Thread-252423][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 10:59:47,839 [DEBUG][       Thread-252423][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 10:59:47,839 [DEBUG][       Thread-252423][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 10:59:47,839 [DEBUG][       Thread-252423][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 10:59:47,857 [ INFO][       Thread-252423][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 10:59:47,857 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 10:59:47,857 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 10:59:48,872 [DEBUG][Thread-252426 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:59:48,895 [DEBUG][       Thread-252423][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 10:59:48,895 [DEBUG][       Thread-252423][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 10:59:48,943 [DEBUG][       Thread-252423][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 10:59:48,943 [DEBUG][       Thread-252423][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 10:59:48,952 [DEBUG][       Thread-252423][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 10:59:48,965 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 10:59:48,965 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 10:59:48,977 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 10:59:48,986 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 10:59:48,986 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 10:59:48,986 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 10:59:48,994 [DEBUG][       Thread-252423][   transport.py][1871] : EOF in transport thread
2025-06-13 10:59:49,941 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:59:49,942 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:59:56,822 [DEBUG][Thread-252427 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 10:59:58,997 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 10:59:58,997 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 10:59:58,997 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 10:59:58,999 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 10:59:59,465 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 10, 59, 39), 10.06, 49.32, 0.0, 24.1, 9.5, 0, 0, 0, 2, 0, 0),)
2025-06-13 10:59:59,465 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 10:59:39
2025-06-13 10:59:59,546 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 10:59:59,550 [DEBUG][       Thread-252428][   transport.py][1871] : starting thread (client mode): 0x84207e50
2025-06-13 10:59:59,550 [DEBUG][       Thread-252428][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 10:59:59,570 [DEBUG][       Thread-252428][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 10:59:59,570 [ INFO][       Thread-252428][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 10:59:59,574 [DEBUG][       Thread-252428][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 10:59:59,574 [DEBUG][       Thread-252428][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 10:59:59,574 [DEBUG][       Thread-252428][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 10:59:59,574 [DEBUG][       Thread-252428][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:59:59,574 [DEBUG][       Thread-252428][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 10:59:59,574 [DEBUG][       Thread-252428][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:59:59,574 [DEBUG][       Thread-252428][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 10:59:59,574 [DEBUG][       Thread-252428][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 10:59:59,574 [DEBUG][       Thread-252428][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 10:59:59,574 [DEBUG][       Thread-252428][   transport.py][1871] : client lang: <none>
2025-06-13 10:59:59,574 [DEBUG][       Thread-252428][   transport.py][1871] : server lang: <none>
2025-06-13 10:59:59,574 [DEBUG][       Thread-252428][   transport.py][1871] : kex follows: False
2025-06-13 10:59:59,574 [DEBUG][       Thread-252428][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 10:59:59,574 [DEBUG][       Thread-252428][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 10:59:59,574 [DEBUG][       Thread-252428][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 10:59:59,574 [DEBUG][       Thread-252428][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 10:59:59,574 [DEBUG][       Thread-252428][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 10:59:59,574 [DEBUG][       Thread-252428][   transport.py][1871] : Compression: none
2025-06-13 10:59:59,574 [DEBUG][       Thread-252428][   transport.py][1871] : === End of kex handshake ===
2025-06-13 10:59:59,591 [DEBUG][       Thread-252428][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 10:59:59,591 [DEBUG][       Thread-252428][   transport.py][1871] : Switch to new keys ...
2025-06-13 10:59:59,592 [DEBUG][       Thread-252428][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 10:59:59,592 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 10:59:59,592 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 10:59:59,594 [DEBUG][       Thread-252428][   transport.py][1871] : userauth is OK
2025-06-13 10:59:59,607 [ INFO][       Thread-252428][   transport.py][1871] : Authentication (password) successful!
2025-06-13 10:59:59,608 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 11:00:00,245 [DEBUG][       Thread-252428][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 11:00:00,246 [DEBUG][       Thread-252428][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 11:00:00,289 [DEBUG][       Thread-252428][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 11:00:00,289 [DEBUG][       Thread-252428][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 11:00:00,292 [DEBUG][       Thread-252428][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 11:00:00,305 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 11:00:00,305 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 11:00:00,307 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 11:00:00,309 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 11:00:00,315 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 11:00:00,317 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 11:00:00,317 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 11:00:00,317 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 11:00:00,317 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.374592 -999.00   +9.50  20.38     53   +0.40 1 1 1 1 1   887    0 8.67 -6.37 ----- 24.1 20.4 42.2 24.3 14.1 -28.9 12.7 -29.4 11.8 -28.5 13.1 -26.1
2025-06-13 11:00:00,318 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 11:00:00,318 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 11:00:00,318 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.374592
2025-06-13 11:00:00,318 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 11:00:00,319 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 11:00:00,319 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 11:00:00,319 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 11:00:00,319 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 11:00:00,319 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T10:59:39', tmtdew=10.06, humidity=49.32, cloud=0.0, wind=24.1, temperature=9.5, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T08:59:24.749', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 11:00:00,320 [DEBUG][       Thread-252428][   transport.py][1871] : EOF in transport thread
2025-06-13 11:00:00,402 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 11:00:00,412 [DEBUG][       Thread-252431][   transport.py][1871] : starting thread (client mode): 0x863c8880
2025-06-13 11:00:00,412 [DEBUG][       Thread-252431][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 11:00:00,428 [DEBUG][       Thread-252431][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 11:00:00,428 [ INFO][       Thread-252431][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 11:00:00,441 [DEBUG][       Thread-252431][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 11:00:00,441 [DEBUG][       Thread-252431][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 11:00:00,441 [DEBUG][       Thread-252431][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 11:00:00,441 [DEBUG][       Thread-252431][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:00:00,441 [DEBUG][       Thread-252431][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:00:00,441 [DEBUG][       Thread-252431][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:00:00,442 [DEBUG][       Thread-252431][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:00:00,442 [DEBUG][       Thread-252431][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 11:00:00,442 [DEBUG][       Thread-252431][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 11:00:00,442 [DEBUG][       Thread-252431][   transport.py][1871] : client lang: <none>
2025-06-13 11:00:00,442 [DEBUG][       Thread-252431][   transport.py][1871] : server lang: <none>
2025-06-13 11:00:00,442 [DEBUG][       Thread-252431][   transport.py][1871] : kex follows: False
2025-06-13 11:00:00,442 [DEBUG][       Thread-252431][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 11:00:00,442 [DEBUG][       Thread-252431][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 11:00:00,442 [DEBUG][       Thread-252431][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 11:00:00,442 [DEBUG][       Thread-252431][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 11:00:00,442 [DEBUG][       Thread-252431][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 11:00:00,442 [DEBUG][       Thread-252431][   transport.py][1871] : Compression: none
2025-06-13 11:00:00,442 [DEBUG][       Thread-252431][   transport.py][1871] : === End of kex handshake ===
2025-06-13 11:00:00,498 [DEBUG][       Thread-252431][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 11:00:00,498 [DEBUG][       Thread-252431][   transport.py][1871] : Switch to new keys ...
2025-06-13 11:00:00,499 [DEBUG][       Thread-252431][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 11:00:00,499 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 11:00:00,500 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 11:00:00,558 [DEBUG][       Thread-252431][   transport.py][1871] : userauth is OK
2025-06-13 11:00:00,559 [DEBUG][       Thread-252431][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 11:00:00,559 [DEBUG][       Thread-252431][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 11:00:00,559 [DEBUG][       Thread-252431][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 11:00:00,559 [DEBUG][       Thread-252431][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 11:00:00,578 [ INFO][       Thread-252431][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 11:00:00,578 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 11:00:00,578 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 11:00:01,621 [DEBUG][       Thread-252431][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 11:00:01,621 [DEBUG][       Thread-252431][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 11:00:01,671 [DEBUG][       Thread-252431][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 11:00:01,672 [DEBUG][       Thread-252431][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 11:00:01,680 [DEBUG][       Thread-252431][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 11:00:01,689 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 11:00:01,689 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 11:00:01,698 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 11:00:01,707 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 11:00:01,707 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 11:00:01,707 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 11:00:01,715 [DEBUG][       Thread-252431][   transport.py][1871] : EOF in transport thread
2025-06-13 11:00:05,842 [DEBUG][Thread-252433 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:00:07,842 [DEBUG][Thread-252434 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:00:11,716 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 11:00:11,716 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 11:00:11,716 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 11:00:11,716 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 11:00:12,218 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 10, 59, 39), 10.06, 49.32, 0.0, 24.1, 9.5, 0, 0, 0, 2, 0, 0),)
2025-06-13 11:00:12,218 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 10:59:39
2025-06-13 11:00:12,304 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 11:00:12,310 [DEBUG][       Thread-252435][   transport.py][1871] : starting thread (client mode): 0x842078b0
2025-06-13 11:00:12,310 [DEBUG][       Thread-252435][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 11:00:12,329 [DEBUG][       Thread-252435][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 11:00:12,329 [ INFO][       Thread-252435][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 11:00:12,332 [DEBUG][       Thread-252435][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 11:00:12,332 [DEBUG][       Thread-252435][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 11:00:12,332 [DEBUG][       Thread-252435][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 11:00:12,332 [DEBUG][       Thread-252435][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:00:12,332 [DEBUG][       Thread-252435][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:00:12,332 [DEBUG][       Thread-252435][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:00:12,332 [DEBUG][       Thread-252435][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:00:12,332 [DEBUG][       Thread-252435][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 11:00:12,332 [DEBUG][       Thread-252435][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 11:00:12,332 [DEBUG][       Thread-252435][   transport.py][1871] : client lang: <none>
2025-06-13 11:00:12,332 [DEBUG][       Thread-252435][   transport.py][1871] : server lang: <none>
2025-06-13 11:00:12,332 [DEBUG][       Thread-252435][   transport.py][1871] : kex follows: False
2025-06-13 11:00:12,332 [DEBUG][       Thread-252435][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 11:00:12,332 [DEBUG][       Thread-252435][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 11:00:12,332 [DEBUG][       Thread-252435][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 11:00:12,332 [DEBUG][       Thread-252435][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 11:00:12,332 [DEBUG][       Thread-252435][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 11:00:12,332 [DEBUG][       Thread-252435][   transport.py][1871] : Compression: none
2025-06-13 11:00:12,332 [DEBUG][       Thread-252435][   transport.py][1871] : === End of kex handshake ===
2025-06-13 11:00:12,347 [DEBUG][       Thread-252435][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 11:00:12,347 [DEBUG][       Thread-252435][   transport.py][1871] : Switch to new keys ...
2025-06-13 11:00:12,348 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 11:00:12,348 [DEBUG][       Thread-252435][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 11:00:12,348 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 11:00:12,348 [DEBUG][       Thread-252435][   transport.py][1871] : userauth is OK
2025-06-13 11:00:12,372 [ INFO][       Thread-252435][   transport.py][1871] : Authentication (password) successful!
2025-06-13 11:00:12,372 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 11:00:14,861 [DEBUG][Thread-252437 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:00:18,570 [DEBUG][       Thread-252435][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 11:00:18,570 [DEBUG][       Thread-252435][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 11:00:18,613 [DEBUG][       Thread-252435][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 11:00:18,613 [DEBUG][       Thread-252435][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 11:00:18,616 [DEBUG][       Thread-252435][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 11:00:18,626 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 11:00:18,627 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 11:00:18,628 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 11:00:18,630 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 11:00:18,654 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 11:00:18,656 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 11:00:18,656 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 11:00:18,657 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 11:00:18,657 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.374592 -999.00   +9.50  20.38     53   +0.40 1 1 1 1 1   887    0 8.67 -6.37 ----- 24.1 20.4 42.2 24.3 14.1 -28.9 12.7 -29.4 11.8 -28.5 13.1 -26.1
2025-06-13 11:00:18,657 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 11:00:18,657 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 11:00:18,657 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.374592
2025-06-13 11:00:18,657 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 11:00:18,658 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 11:00:18,658 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 11:00:18,658 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 11:00:18,658 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 11:00:18,658 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T10:59:39', tmtdew=10.06, humidity=49.32, cloud=0.0, wind=24.1, temperature=9.5, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T08:59:24.749', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 11:00:18,659 [DEBUG][       Thread-252435][   transport.py][1871] : EOF in transport thread
2025-06-13 11:00:18,742 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 11:00:18,755 [DEBUG][       Thread-252439][   transport.py][1871] : starting thread (client mode): 0x867b6380
2025-06-13 11:00:18,755 [DEBUG][       Thread-252439][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 11:00:18,771 [DEBUG][       Thread-252439][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 11:00:18,771 [ INFO][       Thread-252439][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 11:00:18,784 [DEBUG][       Thread-252439][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 11:00:18,784 [DEBUG][       Thread-252439][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 11:00:18,784 [DEBUG][       Thread-252439][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 11:00:18,784 [DEBUG][       Thread-252439][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:00:18,784 [DEBUG][       Thread-252439][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:00:18,784 [DEBUG][       Thread-252439][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:00:18,784 [DEBUG][       Thread-252439][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:00:18,784 [DEBUG][       Thread-252439][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 11:00:18,784 [DEBUG][       Thread-252439][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 11:00:18,784 [DEBUG][       Thread-252439][   transport.py][1871] : client lang: <none>
2025-06-13 11:00:18,784 [DEBUG][       Thread-252439][   transport.py][1871] : server lang: <none>
2025-06-13 11:00:18,784 [DEBUG][       Thread-252439][   transport.py][1871] : kex follows: False
2025-06-13 11:00:18,785 [DEBUG][       Thread-252439][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 11:00:18,785 [DEBUG][       Thread-252439][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 11:00:18,785 [DEBUG][       Thread-252439][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 11:00:18,785 [DEBUG][       Thread-252439][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 11:00:18,785 [DEBUG][       Thread-252439][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 11:00:18,785 [DEBUG][       Thread-252439][   transport.py][1871] : Compression: none
2025-06-13 11:00:18,785 [DEBUG][       Thread-252439][   transport.py][1871] : === End of kex handshake ===
2025-06-13 11:00:18,840 [DEBUG][       Thread-252439][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 11:00:18,841 [DEBUG][       Thread-252439][   transport.py][1871] : Switch to new keys ...
2025-06-13 11:00:18,841 [DEBUG][       Thread-252439][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 11:00:18,841 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 11:00:18,842 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 11:00:18,899 [DEBUG][       Thread-252439][   transport.py][1871] : userauth is OK
2025-06-13 11:00:18,899 [DEBUG][       Thread-252439][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 11:00:18,899 [DEBUG][       Thread-252439][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 11:00:18,899 [DEBUG][       Thread-252439][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 11:00:18,899 [DEBUG][       Thread-252439][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 11:00:18,922 [ INFO][       Thread-252439][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 11:00:18,922 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 11:00:18,922 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 11:00:19,957 [DEBUG][       Thread-252439][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 11:00:19,957 [DEBUG][       Thread-252439][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 11:00:20,007 [DEBUG][       Thread-252439][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 11:00:20,007 [DEBUG][       Thread-252439][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 11:00:20,015 [DEBUG][       Thread-252439][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 11:00:20,023 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 11:00:20,023 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 11:00:20,031 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 11:00:20,040 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 11:00:20,040 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 11:00:20,040 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 11:00:20,049 [DEBUG][       Thread-252439][   transport.py][1871] : EOF in transport thread
2025-06-13 11:00:23,882 [DEBUG][Thread-252441 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:00:30,048 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 11:00:30,048 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 11:00:30,048 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 11:00:30,048 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 11:00:30,546 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 11, 0, 10), 10.02, 49.58, 0.0, 18.28, 9.58, 0, 0, 0, 2, 0, 0),)
2025-06-13 11:00:30,546 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 11:00:10
2025-06-13 11:00:30,632 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 11:00:30,636 [DEBUG][       Thread-252442][   transport.py][1871] : starting thread (client mode): 0x867ff010
2025-06-13 11:00:30,636 [DEBUG][       Thread-252442][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 11:00:30,658 [DEBUG][       Thread-252442][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 11:00:30,658 [ INFO][       Thread-252442][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 11:00:30,661 [DEBUG][       Thread-252442][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 11:00:30,661 [DEBUG][       Thread-252442][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 11:00:30,661 [DEBUG][       Thread-252442][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 11:00:30,661 [DEBUG][       Thread-252442][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:00:30,661 [DEBUG][       Thread-252442][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:00:30,661 [DEBUG][       Thread-252442][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:00:30,661 [DEBUG][       Thread-252442][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:00:30,661 [DEBUG][       Thread-252442][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 11:00:30,661 [DEBUG][       Thread-252442][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 11:00:30,661 [DEBUG][       Thread-252442][   transport.py][1871] : client lang: <none>
2025-06-13 11:00:30,661 [DEBUG][       Thread-252442][   transport.py][1871] : server lang: <none>
2025-06-13 11:00:30,661 [DEBUG][       Thread-252442][   transport.py][1871] : kex follows: False
2025-06-13 11:00:30,661 [DEBUG][       Thread-252442][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 11:00:30,661 [DEBUG][       Thread-252442][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 11:00:30,661 [DEBUG][       Thread-252442][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 11:00:30,661 [DEBUG][       Thread-252442][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 11:00:30,661 [DEBUG][       Thread-252442][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 11:00:30,661 [DEBUG][       Thread-252442][   transport.py][1871] : Compression: none
2025-06-13 11:00:30,661 [DEBUG][       Thread-252442][   transport.py][1871] : === End of kex handshake ===
2025-06-13 11:00:30,675 [DEBUG][       Thread-252442][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 11:00:30,676 [DEBUG][       Thread-252442][   transport.py][1871] : Switch to new keys ...
2025-06-13 11:00:30,676 [DEBUG][       Thread-252442][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 11:00:30,676 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 11:00:30,676 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 11:00:30,677 [DEBUG][       Thread-252442][   transport.py][1871] : userauth is OK
2025-06-13 11:00:30,689 [ INFO][       Thread-252442][   transport.py][1871] : Authentication (password) successful!
2025-06-13 11:00:30,689 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 11:00:31,076 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:00:31,076 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:00:31,300 [DEBUG][       Thread-252442][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 11:00:31,300 [DEBUG][       Thread-252442][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 11:00:31,344 [DEBUG][       Thread-252442][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 11:00:31,344 [DEBUG][       Thread-252442][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 11:00:31,347 [DEBUG][       Thread-252442][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 11:00:31,351 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 11:00:31,351 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 11:00:31,354 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 11:00:31,356 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 11:00:31,359 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 11:00:31,360 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 11:00:31,360 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 11:00:31,360 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 11:00:31,360 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.374939 -999.00   +9.40  25.53     54   +0.60 1 1 1 1 1   887    0 8.69 -5.72 ----- 21.3 25.5 49.4 29.3 14.1 -28.5 12.8 -29.6 11.8 -28.2 13.1 -26.6
2025-06-13 11:00:31,360 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 11:00:31,360 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 11:00:31,360 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.374939
2025-06-13 11:00:31,360 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 11:00:31,360 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 11:00:31,360 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 11:00:31,360 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 11:00:31,360 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 11:00:31,360 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T11:00:10', tmtdew=10.02, humidity=49.58, cloud=0.0, wind=18.28, temperature=9.58, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T08:59:54.730', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 11:00:31,361 [DEBUG][       Thread-252442][   transport.py][1871] : EOF in transport thread
2025-06-13 11:00:31,435 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 11:00:31,447 [DEBUG][       Thread-252445][   transport.py][1871] : starting thread (client mode): 0x863a5210
2025-06-13 11:00:31,447 [DEBUG][       Thread-252445][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 11:00:31,463 [DEBUG][       Thread-252445][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 11:00:31,463 [ INFO][       Thread-252445][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 11:00:31,470 [DEBUG][       Thread-252445][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 11:00:31,470 [DEBUG][       Thread-252445][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 11:00:31,470 [DEBUG][       Thread-252445][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 11:00:31,470 [DEBUG][       Thread-252445][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:00:31,470 [DEBUG][       Thread-252445][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:00:31,470 [DEBUG][       Thread-252445][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:00:31,470 [DEBUG][       Thread-252445][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:00:31,470 [DEBUG][       Thread-252445][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 11:00:31,470 [DEBUG][       Thread-252445][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 11:00:31,470 [DEBUG][       Thread-252445][   transport.py][1871] : client lang: <none>
2025-06-13 11:00:31,470 [DEBUG][       Thread-252445][   transport.py][1871] : server lang: <none>
2025-06-13 11:00:31,470 [DEBUG][       Thread-252445][   transport.py][1871] : kex follows: False
2025-06-13 11:00:31,470 [DEBUG][       Thread-252445][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 11:00:31,470 [DEBUG][       Thread-252445][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 11:00:31,470 [DEBUG][       Thread-252445][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 11:00:31,470 [DEBUG][       Thread-252445][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 11:00:31,470 [DEBUG][       Thread-252445][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 11:00:31,470 [DEBUG][       Thread-252445][   transport.py][1871] : Compression: none
2025-06-13 11:00:31,470 [DEBUG][       Thread-252445][   transport.py][1871] : === End of kex handshake ===
2025-06-13 11:00:31,526 [DEBUG][       Thread-252445][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 11:00:31,526 [DEBUG][       Thread-252445][   transport.py][1871] : Switch to new keys ...
2025-06-13 11:00:31,526 [DEBUG][       Thread-252445][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 11:00:31,526 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 11:00:31,527 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 11:00:31,588 [DEBUG][       Thread-252445][   transport.py][1871] : userauth is OK
2025-06-13 11:00:31,588 [DEBUG][       Thread-252445][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 11:00:31,588 [DEBUG][       Thread-252445][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 11:00:31,588 [DEBUG][       Thread-252445][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 11:00:31,588 [DEBUG][       Thread-252445][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 11:00:31,603 [ INFO][       Thread-252445][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 11:00:31,603 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 11:00:31,603 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 11:00:32,612 [DEBUG][       Thread-252445][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 11:00:32,612 [DEBUG][       Thread-252445][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 11:00:32,663 [DEBUG][       Thread-252445][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 11:00:32,663 [DEBUG][       Thread-252445][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 11:00:32,672 [DEBUG][       Thread-252445][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 11:00:32,680 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 11:00:32,680 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 11:00:32,687 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 11:00:32,696 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 11:00:32,696 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 11:00:32,696 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 11:00:32,704 [DEBUG][       Thread-252445][   transport.py][1871] : EOF in transport thread
2025-06-13 11:00:32,900 [DEBUG][Thread-252447 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:00:41,925 [DEBUG][Thread-252448 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:00:42,706 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 11:00:42,706 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 11:00:42,706 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 11:00:42,709 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 11:00:43,187 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 11, 0, 10), 10.02, 49.58, 0.0, 18.28, 9.58, 0, 0, 0, 2, 0, 0),)
2025-06-13 11:00:43,187 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 11:00:10
2025-06-13 11:00:43,275 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 11:00:43,281 [DEBUG][       Thread-252449][   transport.py][1871] : starting thread (client mode): 0x84207490
2025-06-13 11:00:43,281 [DEBUG][       Thread-252449][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 11:00:43,301 [DEBUG][       Thread-252449][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 11:00:43,301 [ INFO][       Thread-252449][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 11:00:43,303 [DEBUG][       Thread-252449][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 11:00:43,303 [DEBUG][       Thread-252449][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 11:00:43,303 [DEBUG][       Thread-252449][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 11:00:43,303 [DEBUG][       Thread-252449][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:00:43,303 [DEBUG][       Thread-252449][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:00:43,303 [DEBUG][       Thread-252449][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:00:43,303 [DEBUG][       Thread-252449][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:00:43,303 [DEBUG][       Thread-252449][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 11:00:43,303 [DEBUG][       Thread-252449][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 11:00:43,303 [DEBUG][       Thread-252449][   transport.py][1871] : client lang: <none>
2025-06-13 11:00:43,303 [DEBUG][       Thread-252449][   transport.py][1871] : server lang: <none>
2025-06-13 11:00:43,304 [DEBUG][       Thread-252449][   transport.py][1871] : kex follows: False
2025-06-13 11:00:43,304 [DEBUG][       Thread-252449][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 11:00:43,304 [DEBUG][       Thread-252449][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 11:00:43,304 [DEBUG][       Thread-252449][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 11:00:43,304 [DEBUG][       Thread-252449][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 11:00:43,304 [DEBUG][       Thread-252449][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 11:00:43,304 [DEBUG][       Thread-252449][   transport.py][1871] : Compression: none
2025-06-13 11:00:43,304 [DEBUG][       Thread-252449][   transport.py][1871] : === End of kex handshake ===
2025-06-13 11:00:43,319 [DEBUG][       Thread-252449][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 11:00:43,319 [DEBUG][       Thread-252449][   transport.py][1871] : Switch to new keys ...
2025-06-13 11:00:43,319 [DEBUG][       Thread-252449][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 11:00:43,319 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 11:00:43,320 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 11:00:43,320 [DEBUG][       Thread-252449][   transport.py][1871] : userauth is OK
2025-06-13 11:00:43,367 [ INFO][       Thread-252449][   transport.py][1871] : Authentication (password) successful!
2025-06-13 11:00:43,367 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 11:00:43,976 [DEBUG][       Thread-252449][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 11:00:43,976 [DEBUG][       Thread-252449][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 11:00:44,016 [DEBUG][       Thread-252449][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 11:00:44,016 [DEBUG][       Thread-252449][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 11:00:44,019 [DEBUG][       Thread-252449][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 11:00:44,030 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 11:00:44,030 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 11:00:44,031 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 11:00:44,032 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 11:00:44,034 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 11:00:44,035 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 11:00:44,035 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 11:00:44,035 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 11:00:44,035 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.374939 -999.00   +9.40  25.53     54   +0.60 1 1 1 1 1   887    0 8.69 -5.72 ----- 21.3 25.5 49.4 29.3 14.1 -28.5 12.8 -29.6 11.8 -28.2 13.1 -26.6
2025-06-13 11:00:44,035 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 11:00:44,035 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 11:00:44,035 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.374939
2025-06-13 11:00:44,035 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 11:00:44,035 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 11:00:44,035 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 11:00:44,035 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 11:00:44,035 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 11:00:44,035 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T11:00:10', tmtdew=10.02, humidity=49.58, cloud=0.0, wind=18.28, temperature=9.58, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T08:59:54.730', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 11:00:44,036 [DEBUG][       Thread-252449][   transport.py][1871] : EOF in transport thread
2025-06-13 11:00:44,110 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 11:00:44,133 [DEBUG][       Thread-252452][   transport.py][1871] : starting thread (client mode): 0x86368d90
2025-06-13 11:00:44,133 [DEBUG][       Thread-252452][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 11:00:44,149 [DEBUG][       Thread-252452][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 11:00:44,149 [ INFO][       Thread-252452][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 11:00:44,157 [DEBUG][       Thread-252452][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 11:00:44,157 [DEBUG][       Thread-252452][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 11:00:44,157 [DEBUG][       Thread-252452][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 11:00:44,157 [DEBUG][       Thread-252452][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:00:44,157 [DEBUG][       Thread-252452][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:00:44,157 [DEBUG][       Thread-252452][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:00:44,157 [DEBUG][       Thread-252452][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:00:44,157 [DEBUG][       Thread-252452][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 11:00:44,157 [DEBUG][       Thread-252452][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 11:00:44,157 [DEBUG][       Thread-252452][   transport.py][1871] : client lang: <none>
2025-06-13 11:00:44,157 [DEBUG][       Thread-252452][   transport.py][1871] : server lang: <none>
2025-06-13 11:00:44,157 [DEBUG][       Thread-252452][   transport.py][1871] : kex follows: False
2025-06-13 11:00:44,157 [DEBUG][       Thread-252452][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 11:00:44,157 [DEBUG][       Thread-252452][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 11:00:44,157 [DEBUG][       Thread-252452][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 11:00:44,157 [DEBUG][       Thread-252452][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 11:00:44,157 [DEBUG][       Thread-252452][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 11:00:44,157 [DEBUG][       Thread-252452][   transport.py][1871] : Compression: none
2025-06-13 11:00:44,157 [DEBUG][       Thread-252452][   transport.py][1871] : === End of kex handshake ===
2025-06-13 11:00:44,217 [DEBUG][       Thread-252452][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 11:00:44,217 [DEBUG][       Thread-252452][   transport.py][1871] : Switch to new keys ...
2025-06-13 11:00:44,217 [DEBUG][       Thread-252452][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 11:00:44,217 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 11:00:44,217 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 11:00:44,274 [DEBUG][       Thread-252452][   transport.py][1871] : userauth is OK
2025-06-13 11:00:44,274 [DEBUG][       Thread-252452][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 11:00:44,274 [DEBUG][       Thread-252452][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 11:00:44,274 [DEBUG][       Thread-252452][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 11:00:44,274 [DEBUG][       Thread-252452][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 11:00:44,288 [ INFO][       Thread-252452][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 11:00:44,289 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 11:00:44,289 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 11:00:45,319 [DEBUG][       Thread-252452][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 11:00:45,319 [DEBUG][       Thread-252452][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 11:00:45,367 [DEBUG][       Thread-252452][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 11:00:45,368 [DEBUG][       Thread-252452][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 11:00:45,376 [DEBUG][       Thread-252452][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 11:00:45,385 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 11:00:45,385 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 11:00:45,394 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 11:00:45,402 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 11:00:45,403 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 11:00:45,403 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 11:00:45,411 [DEBUG][       Thread-252452][   transport.py][1871] : EOF in transport thread
2025-06-13 11:00:49,973 [DEBUG][Thread-252454 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:00:50,943 [DEBUG][Thread-252455 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:00:51,040 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:00:51,040 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:00:55,412 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 11:00:55,412 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 11:00:55,413 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 11:00:55,415 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 11:00:55,880 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 11, 0, 42), 10.1, 49.29, 0.0, 18.92, 9.6, 0, 0, 0, 2, 0, 0),)
2025-06-13 11:00:55,880 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 11:00:42
2025-06-13 11:00:55,962 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 11:00:55,966 [DEBUG][       Thread-252456][   transport.py][1871] : starting thread (client mode): 0x863bdab0
2025-06-13 11:00:55,966 [DEBUG][       Thread-252456][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 11:00:55,987 [DEBUG][       Thread-252456][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 11:00:55,988 [ INFO][       Thread-252456][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 11:00:55,989 [DEBUG][       Thread-252456][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 11:00:55,989 [DEBUG][       Thread-252456][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 11:00:55,989 [DEBUG][       Thread-252456][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 11:00:55,989 [DEBUG][       Thread-252456][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:00:55,989 [DEBUG][       Thread-252456][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:00:55,989 [DEBUG][       Thread-252456][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:00:55,989 [DEBUG][       Thread-252456][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:00:55,989 [DEBUG][       Thread-252456][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 11:00:55,989 [DEBUG][       Thread-252456][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 11:00:55,989 [DEBUG][       Thread-252456][   transport.py][1871] : client lang: <none>
2025-06-13 11:00:55,989 [DEBUG][       Thread-252456][   transport.py][1871] : server lang: <none>
2025-06-13 11:00:55,989 [DEBUG][       Thread-252456][   transport.py][1871] : kex follows: False
2025-06-13 11:00:55,989 [DEBUG][       Thread-252456][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 11:00:55,989 [DEBUG][       Thread-252456][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 11:00:55,989 [DEBUG][       Thread-252456][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 11:00:55,989 [DEBUG][       Thread-252456][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 11:00:55,989 [DEBUG][       Thread-252456][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 11:00:55,989 [DEBUG][       Thread-252456][   transport.py][1871] : Compression: none
2025-06-13 11:00:55,989 [DEBUG][       Thread-252456][   transport.py][1871] : === End of kex handshake ===
2025-06-13 11:00:55,997 [DEBUG][       Thread-252456][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 11:00:55,997 [DEBUG][       Thread-252456][   transport.py][1871] : Switch to new keys ...
2025-06-13 11:00:55,997 [DEBUG][       Thread-252456][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 11:00:55,998 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 11:00:55,998 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 11:00:55,998 [DEBUG][       Thread-252456][   transport.py][1871] : userauth is OK
2025-06-13 11:00:56,011 [ INFO][       Thread-252456][   transport.py][1871] : Authentication (password) successful!
2025-06-13 11:00:56,011 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 11:00:56,624 [DEBUG][       Thread-252456][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 11:00:56,624 [DEBUG][       Thread-252456][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 11:00:56,665 [DEBUG][       Thread-252456][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 11:00:56,665 [DEBUG][       Thread-252456][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 11:00:56,668 [DEBUG][       Thread-252456][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 11:00:56,680 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 11:00:56,680 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 11:00:56,681 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 11:00:56,682 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 11:00:56,687 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 11:00:56,689 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 11:00:56,689 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 11:00:56,689 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 11:00:56,690 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.374939 -999.00   +9.40  25.53     54   +0.60 1 1 1 1 1   887    0 8.69 -5.72 ----- 21.3 25.5 49.4 29.3 14.1 -28.5 12.8 -29.6 11.8 -28.2 13.1 -26.6
2025-06-13 11:00:56,690 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 11:00:56,690 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 11:00:56,690 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.374939
2025-06-13 11:00:56,690 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 11:00:56,691 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 11:00:56,691 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 11:00:56,691 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 11:00:56,691 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 11:00:56,691 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T11:00:42', tmtdew=10.1, humidity=49.29, cloud=0.0, wind=18.92, temperature=9.6, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T08:59:54.730', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 11:00:56,691 [DEBUG][       Thread-252456][   transport.py][1871] : EOF in transport thread
2025-06-13 11:00:56,775 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 11:00:56,784 [DEBUG][       Thread-252459][   transport.py][1871] : starting thread (client mode): 0x863ed5d0
2025-06-13 11:00:56,784 [DEBUG][       Thread-252459][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 11:00:56,801 [DEBUG][       Thread-252459][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 11:00:56,801 [ INFO][       Thread-252459][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 11:00:56,808 [DEBUG][       Thread-252459][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 11:00:56,808 [DEBUG][       Thread-252459][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 11:00:56,809 [DEBUG][       Thread-252459][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 11:00:56,809 [DEBUG][       Thread-252459][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:00:56,809 [DEBUG][       Thread-252459][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:00:56,809 [DEBUG][       Thread-252459][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:00:56,809 [DEBUG][       Thread-252459][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:00:56,809 [DEBUG][       Thread-252459][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 11:00:56,809 [DEBUG][       Thread-252459][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 11:00:56,809 [DEBUG][       Thread-252459][   transport.py][1871] : client lang: <none>
2025-06-13 11:00:56,809 [DEBUG][       Thread-252459][   transport.py][1871] : server lang: <none>
2025-06-13 11:00:56,809 [DEBUG][       Thread-252459][   transport.py][1871] : kex follows: False
2025-06-13 11:00:56,809 [DEBUG][       Thread-252459][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 11:00:56,809 [DEBUG][       Thread-252459][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 11:00:56,809 [DEBUG][       Thread-252459][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 11:00:56,809 [DEBUG][       Thread-252459][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 11:00:56,809 [DEBUG][       Thread-252459][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 11:00:56,809 [DEBUG][       Thread-252459][   transport.py][1871] : Compression: none
2025-06-13 11:00:56,809 [DEBUG][       Thread-252459][   transport.py][1871] : === End of kex handshake ===
2025-06-13 11:00:56,869 [DEBUG][       Thread-252459][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 11:00:56,869 [DEBUG][       Thread-252459][   transport.py][1871] : Switch to new keys ...
2025-06-13 11:00:56,870 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 11:00:56,870 [DEBUG][       Thread-252459][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 11:00:56,871 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 11:00:56,929 [DEBUG][       Thread-252459][   transport.py][1871] : userauth is OK
2025-06-13 11:00:56,929 [DEBUG][       Thread-252459][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 11:00:56,930 [DEBUG][       Thread-252459][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 11:00:56,930 [DEBUG][       Thread-252459][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 11:00:56,930 [DEBUG][       Thread-252459][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 11:00:56,953 [ INFO][       Thread-252459][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 11:00:56,953 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 11:00:56,953 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 11:00:57,977 [DEBUG][       Thread-252459][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 11:00:57,977 [DEBUG][       Thread-252459][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 11:00:58,027 [DEBUG][       Thread-252459][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 11:00:58,028 [DEBUG][       Thread-252459][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 11:00:58,036 [DEBUG][       Thread-252459][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 11:00:58,045 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 11:00:58,045 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 11:00:58,054 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 11:00:58,063 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 11:00:58,063 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 11:00:58,063 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 11:00:58,071 [DEBUG][       Thread-252459][   transport.py][1871] : EOF in transport thread
2025-06-13 11:00:59,964 [DEBUG][Thread-252461 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:01:07,886 [DEBUG][Thread-252462 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:01:08,074 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 11:01:08,074 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 11:01:08,074 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 11:01:08,074 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 11:01:08,575 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 11, 0, 42), 10.1, 49.29, 0.0, 18.92, 9.6, 0, 0, 0, 2, 0, 0),)
2025-06-13 11:01:08,575 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 11:00:42
2025-06-13 11:01:08,663 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 11:01:08,669 [DEBUG][       Thread-252463][   transport.py][1871] : starting thread (client mode): 0x84206e60
2025-06-13 11:01:08,669 [DEBUG][       Thread-252463][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 11:01:08,690 [DEBUG][       Thread-252463][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 11:01:08,690 [ INFO][       Thread-252463][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 11:01:08,693 [DEBUG][       Thread-252463][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 11:01:08,693 [DEBUG][       Thread-252463][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 11:01:08,693 [DEBUG][       Thread-252463][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 11:01:08,693 [DEBUG][       Thread-252463][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:01:08,693 [DEBUG][       Thread-252463][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:01:08,693 [DEBUG][       Thread-252463][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:01:08,693 [DEBUG][       Thread-252463][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:01:08,693 [DEBUG][       Thread-252463][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 11:01:08,693 [DEBUG][       Thread-252463][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 11:01:08,693 [DEBUG][       Thread-252463][   transport.py][1871] : client lang: <none>
2025-06-13 11:01:08,694 [DEBUG][       Thread-252463][   transport.py][1871] : server lang: <none>
2025-06-13 11:01:08,694 [DEBUG][       Thread-252463][   transport.py][1871] : kex follows: False
2025-06-13 11:01:08,694 [DEBUG][       Thread-252463][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 11:01:08,694 [DEBUG][       Thread-252463][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 11:01:08,694 [DEBUG][       Thread-252463][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 11:01:08,694 [DEBUG][       Thread-252463][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 11:01:08,694 [DEBUG][       Thread-252463][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 11:01:08,694 [DEBUG][       Thread-252463][   transport.py][1871] : Compression: none
2025-06-13 11:01:08,694 [DEBUG][       Thread-252463][   transport.py][1871] : === End of kex handshake ===
2025-06-13 11:01:08,709 [DEBUG][       Thread-252463][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 11:01:08,709 [DEBUG][       Thread-252463][   transport.py][1871] : Switch to new keys ...
2025-06-13 11:01:08,709 [DEBUG][       Thread-252463][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 11:01:08,709 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 11:01:08,709 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 11:01:08,709 [DEBUG][       Thread-252463][   transport.py][1871] : userauth is OK
2025-06-13 11:01:08,722 [ INFO][       Thread-252463][   transport.py][1871] : Authentication (password) successful!
2025-06-13 11:01:08,722 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 11:01:08,995 [DEBUG][Thread-252465 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:01:09,353 [DEBUG][       Thread-252463][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 11:01:09,353 [DEBUG][       Thread-252463][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 11:01:09,396 [DEBUG][       Thread-252463][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 11:01:09,396 [DEBUG][       Thread-252463][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 11:01:09,399 [DEBUG][       Thread-252463][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 11:01:09,411 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 11:01:09,411 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 11:01:09,412 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 11:01:09,413 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 11:01:09,416 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 11:01:09,417 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 11:01:09,417 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 11:01:09,417 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 11:01:09,417 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.375287 -999.00   +9.30  22.01     54   +0.50 1 1 1 1 1   887    0 8.75 -5.72 ----- 20.5 22.0 46.6 24.2 14.1 -28.2 12.7 -29.7 11.8 -28.2 13.1 -26.6
2025-06-13 11:01:09,417 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 11:01:09,417 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 11:01:09,417 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.375287
2025-06-13 11:01:09,417 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 11:01:09,417 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 11:01:09,417 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 11:01:09,417 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 11:01:09,417 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 11:01:09,417 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T11:00:42', tmtdew=10.1, humidity=49.29, cloud=0.0, wind=18.92, temperature=9.6, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T09:00:24.797', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 11:01:09,418 [DEBUG][       Thread-252463][   transport.py][1871] : EOF in transport thread
2025-06-13 11:01:09,492 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 11:01:09,513 [DEBUG][       Thread-252467][   transport.py][1871] : starting thread (client mode): 0x867ff100
2025-06-13 11:01:09,513 [DEBUG][       Thread-252467][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 11:01:09,527 [DEBUG][       Thread-252467][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 11:01:09,528 [ INFO][       Thread-252467][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 11:01:09,535 [DEBUG][       Thread-252467][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 11:01:09,535 [DEBUG][       Thread-252467][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 11:01:09,535 [DEBUG][       Thread-252467][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 11:01:09,535 [DEBUG][       Thread-252467][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:01:09,535 [DEBUG][       Thread-252467][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:01:09,535 [DEBUG][       Thread-252467][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:01:09,535 [DEBUG][       Thread-252467][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:01:09,535 [DEBUG][       Thread-252467][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 11:01:09,535 [DEBUG][       Thread-252467][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 11:01:09,535 [DEBUG][       Thread-252467][   transport.py][1871] : client lang: <none>
2025-06-13 11:01:09,535 [DEBUG][       Thread-252467][   transport.py][1871] : server lang: <none>
2025-06-13 11:01:09,535 [DEBUG][       Thread-252467][   transport.py][1871] : kex follows: False
2025-06-13 11:01:09,535 [DEBUG][       Thread-252467][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 11:01:09,535 [DEBUG][       Thread-252467][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 11:01:09,535 [DEBUG][       Thread-252467][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 11:01:09,535 [DEBUG][       Thread-252467][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 11:01:09,535 [DEBUG][       Thread-252467][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 11:01:09,535 [DEBUG][       Thread-252467][   transport.py][1871] : Compression: none
2025-06-13 11:01:09,535 [DEBUG][       Thread-252467][   transport.py][1871] : === End of kex handshake ===
2025-06-13 11:01:09,593 [DEBUG][       Thread-252467][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 11:01:09,593 [DEBUG][       Thread-252467][   transport.py][1871] : Switch to new keys ...
2025-06-13 11:01:09,593 [DEBUG][       Thread-252467][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 11:01:09,593 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 11:01:09,593 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 11:01:09,654 [DEBUG][       Thread-252467][   transport.py][1871] : userauth is OK
2025-06-13 11:01:09,655 [DEBUG][       Thread-252467][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 11:01:09,655 [DEBUG][       Thread-252467][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 11:01:09,655 [DEBUG][       Thread-252467][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 11:01:09,655 [DEBUG][       Thread-252467][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 11:01:09,669 [ INFO][       Thread-252467][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 11:01:09,669 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 11:01:09,669 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 11:01:10,690 [DEBUG][       Thread-252467][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 11:01:10,690 [DEBUG][       Thread-252467][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 11:01:10,740 [DEBUG][       Thread-252467][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 11:01:10,740 [DEBUG][       Thread-252467][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 11:01:10,749 [DEBUG][       Thread-252467][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 11:01:10,764 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 11:01:10,764 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 11:01:10,776 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 11:01:10,786 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 11:01:10,786 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 11:01:10,786 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 11:01:10,794 [DEBUG][       Thread-252467][   transport.py][1871] : EOF in transport thread
2025-06-13 11:01:18,012 [DEBUG][Thread-252469 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:01:20,796 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 11:01:20,796 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 11:01:20,796 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 11:01:20,798 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 11:01:21,265 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 11, 1, 14), 10.28, 48.81, 0.0, 18.23, 9.65, 0, 0, 0, 2, 0, 0),)
2025-06-13 11:01:21,265 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 11:01:14
2025-06-13 11:01:21,347 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 11:01:21,351 [DEBUG][       Thread-252470][   transport.py][1871] : starting thread (client mode): 0x867b5a20
2025-06-13 11:01:21,351 [DEBUG][       Thread-252470][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 11:01:21,371 [DEBUG][       Thread-252470][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 11:01:21,371 [ INFO][       Thread-252470][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 11:01:21,375 [DEBUG][       Thread-252470][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 11:01:21,375 [DEBUG][       Thread-252470][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 11:01:21,375 [DEBUG][       Thread-252470][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 11:01:21,375 [DEBUG][       Thread-252470][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:01:21,375 [DEBUG][       Thread-252470][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:01:21,375 [DEBUG][       Thread-252470][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:01:21,375 [DEBUG][       Thread-252470][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:01:21,375 [DEBUG][       Thread-252470][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 11:01:21,375 [DEBUG][       Thread-252470][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 11:01:21,375 [DEBUG][       Thread-252470][   transport.py][1871] : client lang: <none>
2025-06-13 11:01:21,375 [DEBUG][       Thread-252470][   transport.py][1871] : server lang: <none>
2025-06-13 11:01:21,375 [DEBUG][       Thread-252470][   transport.py][1871] : kex follows: False
2025-06-13 11:01:21,375 [DEBUG][       Thread-252470][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 11:01:21,375 [DEBUG][       Thread-252470][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 11:01:21,375 [DEBUG][       Thread-252470][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 11:01:21,375 [DEBUG][       Thread-252470][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 11:01:21,375 [DEBUG][       Thread-252470][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 11:01:21,375 [DEBUG][       Thread-252470][   transport.py][1871] : Compression: none
2025-06-13 11:01:21,375 [DEBUG][       Thread-252470][   transport.py][1871] : === End of kex handshake ===
2025-06-13 11:01:21,391 [DEBUG][       Thread-252470][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 11:01:21,392 [DEBUG][       Thread-252470][   transport.py][1871] : Switch to new keys ...
2025-06-13 11:01:21,392 [DEBUG][       Thread-252470][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 11:01:21,393 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 11:01:21,393 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 11:01:21,394 [DEBUG][       Thread-252470][   transport.py][1871] : userauth is OK
2025-06-13 11:01:21,418 [ INFO][       Thread-252470][   transport.py][1871] : Authentication (password) successful!
2025-06-13 11:01:21,418 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 11:01:22,046 [DEBUG][       Thread-252470][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 11:01:22,046 [DEBUG][       Thread-252470][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 11:01:22,089 [DEBUG][       Thread-252470][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 11:01:22,089 [DEBUG][       Thread-252470][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 11:01:22,092 [DEBUG][       Thread-252470][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 11:01:22,103 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 11:01:22,103 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 11:01:22,105 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 11:01:22,106 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 11:01:22,111 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 11:01:22,112 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 11:01:22,112 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 11:01:22,113 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 11:01:22,113 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.375287 -999.00   +9.30  22.01     54   +0.50 1 1 1 1 1   887    0 8.75 -5.72 ----- 20.5 22.0 46.6 24.2 14.1 -28.2 12.7 -29.7 11.8 -28.2 13.1 -26.6
2025-06-13 11:01:22,113 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 11:01:22,113 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 11:01:22,113 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.375287
2025-06-13 11:01:22,114 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 11:01:22,114 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 11:01:22,114 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 11:01:22,115 [DEBUG][       Thread-252470][   transport.py][1871] : EOF in transport thread
2025-06-13 11:01:22,115 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 11:01:22,115 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 11:01:22,115 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T11:01:14', tmtdew=10.28, humidity=48.81, cloud=0.0, wind=18.23, temperature=9.65, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T09:00:24.797', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 11:01:22,199 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 11:01:22,211 [DEBUG][       Thread-252473][   transport.py][1871] : starting thread (client mode): 0x84205810
2025-06-13 11:01:22,211 [DEBUG][       Thread-252473][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 11:01:22,229 [DEBUG][       Thread-252473][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 11:01:22,229 [ INFO][       Thread-252473][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 11:01:22,239 [DEBUG][       Thread-252473][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 11:01:22,239 [DEBUG][       Thread-252473][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 11:01:22,239 [DEBUG][       Thread-252473][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 11:01:22,239 [DEBUG][       Thread-252473][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:01:22,239 [DEBUG][       Thread-252473][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:01:22,239 [DEBUG][       Thread-252473][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:01:22,239 [DEBUG][       Thread-252473][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:01:22,239 [DEBUG][       Thread-252473][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 11:01:22,239 [DEBUG][       Thread-252473][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 11:01:22,239 [DEBUG][       Thread-252473][   transport.py][1871] : client lang: <none>
2025-06-13 11:01:22,239 [DEBUG][       Thread-252473][   transport.py][1871] : server lang: <none>
2025-06-13 11:01:22,239 [DEBUG][       Thread-252473][   transport.py][1871] : kex follows: False
2025-06-13 11:01:22,239 [DEBUG][       Thread-252473][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 11:01:22,239 [DEBUG][       Thread-252473][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 11:01:22,239 [DEBUG][       Thread-252473][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 11:01:22,239 [DEBUG][       Thread-252473][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 11:01:22,239 [DEBUG][       Thread-252473][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 11:01:22,239 [DEBUG][       Thread-252473][   transport.py][1871] : Compression: none
2025-06-13 11:01:22,239 [DEBUG][       Thread-252473][   transport.py][1871] : === End of kex handshake ===
2025-06-13 11:01:22,301 [DEBUG][       Thread-252473][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 11:01:22,302 [DEBUG][       Thread-252473][   transport.py][1871] : Switch to new keys ...
2025-06-13 11:01:22,302 [DEBUG][       Thread-252473][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 11:01:22,303 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 11:01:22,304 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 11:01:22,368 [DEBUG][       Thread-252473][   transport.py][1871] : userauth is OK
2025-06-13 11:01:22,368 [DEBUG][       Thread-252473][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 11:01:22,369 [DEBUG][       Thread-252473][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 11:01:22,369 [DEBUG][       Thread-252473][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 11:01:22,369 [DEBUG][       Thread-252473][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 11:01:22,391 [ INFO][       Thread-252473][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 11:01:22,391 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 11:01:22,392 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 11:01:23,454 [DEBUG][       Thread-252473][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 11:01:23,455 [DEBUG][       Thread-252473][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 11:01:23,505 [DEBUG][       Thread-252473][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 11:01:23,506 [DEBUG][       Thread-252473][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 11:01:23,522 [DEBUG][       Thread-252473][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 11:01:23,530 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 11:01:23,530 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 11:01:23,539 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 11:01:23,548 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 11:01:23,548 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 11:01:23,549 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 11:01:23,556 [DEBUG][       Thread-252473][   transport.py][1871] : EOF in transport thread
2025-06-13 11:01:27,031 [DEBUG][Thread-252475 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:01:31,224 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:01:31,225 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:01:33,559 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 11:01:33,559 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 11:01:33,560 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 11:01:33,563 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 11:01:34,029 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 11, 1, 14), 10.28, 48.81, 0.0, 18.23, 9.65, 0, 0, 0, 2, 0, 0),)
2025-06-13 11:01:34,030 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 11:01:14
2025-06-13 11:01:34,111 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 11:01:34,117 [DEBUG][       Thread-252476][   transport.py][1871] : starting thread (client mode): 0x867b72b0
2025-06-13 11:01:34,117 [DEBUG][       Thread-252476][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 11:01:34,137 [DEBUG][       Thread-252476][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 11:01:34,137 [ INFO][       Thread-252476][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 11:01:34,141 [DEBUG][       Thread-252476][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 11:01:34,141 [DEBUG][       Thread-252476][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 11:01:34,141 [DEBUG][       Thread-252476][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 11:01:34,141 [DEBUG][       Thread-252476][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:01:34,141 [DEBUG][       Thread-252476][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:01:34,141 [DEBUG][       Thread-252476][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:01:34,141 [DEBUG][       Thread-252476][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:01:34,141 [DEBUG][       Thread-252476][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 11:01:34,141 [DEBUG][       Thread-252476][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 11:01:34,141 [DEBUG][       Thread-252476][   transport.py][1871] : client lang: <none>
2025-06-13 11:01:34,141 [DEBUG][       Thread-252476][   transport.py][1871] : server lang: <none>
2025-06-13 11:01:34,141 [DEBUG][       Thread-252476][   transport.py][1871] : kex follows: False
2025-06-13 11:01:34,141 [DEBUG][       Thread-252476][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 11:01:34,141 [DEBUG][       Thread-252476][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 11:01:34,141 [DEBUG][       Thread-252476][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 11:01:34,141 [DEBUG][       Thread-252476][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 11:01:34,141 [DEBUG][       Thread-252476][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 11:01:34,141 [DEBUG][       Thread-252476][   transport.py][1871] : Compression: none
2025-06-13 11:01:34,141 [DEBUG][       Thread-252476][   transport.py][1871] : === End of kex handshake ===
2025-06-13 11:01:34,158 [DEBUG][       Thread-252476][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 11:01:34,159 [DEBUG][       Thread-252476][   transport.py][1871] : Switch to new keys ...
2025-06-13 11:01:34,159 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 11:01:34,160 [DEBUG][       Thread-252476][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 11:01:34,160 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 11:01:34,161 [DEBUG][       Thread-252476][   transport.py][1871] : userauth is OK
2025-06-13 11:01:34,174 [ INFO][       Thread-252476][   transport.py][1871] : Authentication (password) successful!
2025-06-13 11:01:34,174 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 11:01:34,774 [DEBUG][       Thread-252476][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 11:01:34,775 [DEBUG][       Thread-252476][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 11:01:34,817 [DEBUG][       Thread-252476][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 11:01:34,817 [DEBUG][       Thread-252476][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 11:01:34,820 [DEBUG][       Thread-252476][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 11:01:34,832 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 11:01:34,832 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 11:01:34,834 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 11:01:34,835 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 11:01:34,840 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 11:01:34,842 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 11:01:34,842 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 11:01:34,843 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 11:01:34,843 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.375981 -999.00   +9.20  19.71     55   +0.70 1 1 1 1 1   887    0 8.64 -6.65 ----- 25.3 19.7 51.6 26.3 14.1 -28.1 12.7 -29.8 11.8 -28.9 13.1 -26.4
2025-06-13 11:01:34,843 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 11:01:34,843 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 11:01:34,843 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.375981
2025-06-13 11:01:34,843 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 11:01:34,844 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 11:01:34,844 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 11:01:34,844 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 11:01:34,844 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 11:01:34,844 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T11:01:14', tmtdew=10.28, humidity=48.81, cloud=0.0, wind=18.23, temperature=9.65, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T09:01:24.758', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 11:01:34,845 [DEBUG][       Thread-252476][   transport.py][1871] : EOF in transport thread
2025-06-13 11:01:34,928 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 11:01:34,941 [DEBUG][       Thread-252479][   transport.py][1871] : starting thread (client mode): 0x863ef010
2025-06-13 11:01:34,941 [DEBUG][       Thread-252479][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 11:01:34,961 [DEBUG][       Thread-252479][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 11:01:34,961 [ INFO][       Thread-252479][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 11:01:34,969 [DEBUG][       Thread-252479][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 11:01:34,969 [DEBUG][       Thread-252479][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 11:01:34,969 [DEBUG][       Thread-252479][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 11:01:34,969 [DEBUG][       Thread-252479][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:01:34,970 [DEBUG][       Thread-252479][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:01:34,970 [DEBUG][       Thread-252479][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:01:34,970 [DEBUG][       Thread-252479][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:01:34,970 [DEBUG][       Thread-252479][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 11:01:34,970 [DEBUG][       Thread-252479][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 11:01:34,970 [DEBUG][       Thread-252479][   transport.py][1871] : client lang: <none>
2025-06-13 11:01:34,970 [DEBUG][       Thread-252479][   transport.py][1871] : server lang: <none>
2025-06-13 11:01:34,970 [DEBUG][       Thread-252479][   transport.py][1871] : kex follows: False
2025-06-13 11:01:34,970 [DEBUG][       Thread-252479][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 11:01:34,970 [DEBUG][       Thread-252479][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 11:01:34,970 [DEBUG][       Thread-252479][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 11:01:34,970 [DEBUG][       Thread-252479][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 11:01:34,970 [DEBUG][       Thread-252479][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 11:01:34,970 [DEBUG][       Thread-252479][   transport.py][1871] : Compression: none
2025-06-13 11:01:34,970 [DEBUG][       Thread-252479][   transport.py][1871] : === End of kex handshake ===
2025-06-13 11:01:35,036 [DEBUG][       Thread-252479][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 11:01:35,037 [DEBUG][       Thread-252479][   transport.py][1871] : Switch to new keys ...
2025-06-13 11:01:35,037 [DEBUG][       Thread-252479][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 11:01:35,038 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 11:01:35,038 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 11:01:35,095 [DEBUG][       Thread-252479][   transport.py][1871] : userauth is OK
2025-06-13 11:01:35,095 [DEBUG][       Thread-252479][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 11:01:35,095 [DEBUG][       Thread-252479][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 11:01:35,095 [DEBUG][       Thread-252479][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 11:01:35,095 [DEBUG][       Thread-252479][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 11:01:35,113 [ INFO][       Thread-252479][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 11:01:35,113 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 11:01:35,114 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 11:01:36,060 [DEBUG][Thread-252481 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:01:36,137 [DEBUG][       Thread-252479][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 11:01:36,137 [DEBUG][       Thread-252479][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 11:01:36,187 [DEBUG][       Thread-252479][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 11:01:36,188 [DEBUG][       Thread-252479][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 11:01:36,197 [DEBUG][       Thread-252479][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 11:01:36,205 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 11:01:36,206 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 11:01:36,215 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 11:01:36,224 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 11:01:36,225 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 11:01:36,225 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 11:01:36,233 [DEBUG][       Thread-252479][   transport.py][1871] : EOF in transport thread
2025-06-13 11:01:45,087 [DEBUG][Thread-252482 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:01:46,235 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 11:01:46,235 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 11:01:46,235 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 11:01:46,236 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 11:01:46,761 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 11, 1, 14), 10.28, 48.81, 0.0, 18.23, 9.65, 0, 0, 0, 2, 0, 0),)
2025-06-13 11:01:46,761 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 11:01:14
2025-06-13 11:01:46,850 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 11:01:46,856 [DEBUG][       Thread-252483][   transport.py][1871] : starting thread (client mode): 0x867b77f0
2025-06-13 11:01:46,856 [DEBUG][       Thread-252483][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 11:01:46,875 [DEBUG][       Thread-252483][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 11:01:46,875 [ INFO][       Thread-252483][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 11:01:46,878 [DEBUG][       Thread-252483][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 11:01:46,879 [DEBUG][       Thread-252483][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 11:01:46,879 [DEBUG][       Thread-252483][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 11:01:46,879 [DEBUG][       Thread-252483][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:01:46,879 [DEBUG][       Thread-252483][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:01:46,879 [DEBUG][       Thread-252483][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:01:46,879 [DEBUG][       Thread-252483][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:01:46,879 [DEBUG][       Thread-252483][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 11:01:46,879 [DEBUG][       Thread-252483][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 11:01:46,879 [DEBUG][       Thread-252483][   transport.py][1871] : client lang: <none>
2025-06-13 11:01:46,879 [DEBUG][       Thread-252483][   transport.py][1871] : server lang: <none>
2025-06-13 11:01:46,879 [DEBUG][       Thread-252483][   transport.py][1871] : kex follows: False
2025-06-13 11:01:46,879 [DEBUG][       Thread-252483][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 11:01:46,879 [DEBUG][       Thread-252483][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 11:01:46,879 [DEBUG][       Thread-252483][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 11:01:46,879 [DEBUG][       Thread-252483][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 11:01:46,879 [DEBUG][       Thread-252483][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 11:01:46,879 [DEBUG][       Thread-252483][   transport.py][1871] : Compression: none
2025-06-13 11:01:46,879 [DEBUG][       Thread-252483][   transport.py][1871] : === End of kex handshake ===
2025-06-13 11:01:46,893 [DEBUG][       Thread-252483][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 11:01:46,893 [DEBUG][       Thread-252483][   transport.py][1871] : Switch to new keys ...
2025-06-13 11:01:46,893 [DEBUG][       Thread-252483][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 11:01:46,893 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 11:01:46,894 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 11:01:46,894 [DEBUG][       Thread-252483][   transport.py][1871] : userauth is OK
2025-06-13 11:01:46,906 [ INFO][       Thread-252483][   transport.py][1871] : Authentication (password) successful!
2025-06-13 11:01:46,906 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 11:01:47,562 [DEBUG][       Thread-252483][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 11:01:47,563 [DEBUG][       Thread-252483][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 11:01:47,605 [DEBUG][       Thread-252483][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 11:01:47,605 [DEBUG][       Thread-252483][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 11:01:47,607 [DEBUG][       Thread-252483][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 11:01:47,619 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 11:01:47,619 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 11:01:47,620 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 11:01:47,621 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 11:01:47,623 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 11:01:47,624 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 11:01:47,624 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 11:01:47,624 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 11:01:47,624 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.375981 -999.00   +9.20  19.71     55   +0.70 1 1 1 1 1   887    0 8.64 -6.65 ----- 25.3 19.7 51.6 26.3 14.1 -28.1 12.7 -29.8 11.8 -28.9 13.1 -26.4
2025-06-13 11:01:47,624 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 11:01:47,624 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 11:01:47,624 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.375981
2025-06-13 11:01:47,624 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 11:01:47,625 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 11:01:47,625 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 11:01:47,625 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 11:01:47,625 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 11:01:47,625 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T11:01:14', tmtdew=10.28, humidity=48.81, cloud=0.0, wind=18.23, temperature=9.65, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T09:01:24.758', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 11:01:47,625 [DEBUG][       Thread-252483][   transport.py][1871] : EOF in transport thread
2025-06-13 11:01:47,700 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 11:01:47,713 [DEBUG][       Thread-252486][   transport.py][1871] : starting thread (client mode): 0x867ff0d0
2025-06-13 11:01:47,714 [DEBUG][       Thread-252486][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 11:01:47,729 [DEBUG][       Thread-252486][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 11:01:47,729 [ INFO][       Thread-252486][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 11:01:47,736 [DEBUG][       Thread-252486][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 11:01:47,736 [DEBUG][       Thread-252486][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 11:01:47,736 [DEBUG][       Thread-252486][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 11:01:47,736 [DEBUG][       Thread-252486][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:01:47,736 [DEBUG][       Thread-252486][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:01:47,736 [DEBUG][       Thread-252486][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:01:47,736 [DEBUG][       Thread-252486][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:01:47,736 [DEBUG][       Thread-252486][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 11:01:47,736 [DEBUG][       Thread-252486][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 11:01:47,736 [DEBUG][       Thread-252486][   transport.py][1871] : client lang: <none>
2025-06-13 11:01:47,736 [DEBUG][       Thread-252486][   transport.py][1871] : server lang: <none>
2025-06-13 11:01:47,736 [DEBUG][       Thread-252486][   transport.py][1871] : kex follows: False
2025-06-13 11:01:47,736 [DEBUG][       Thread-252486][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 11:01:47,736 [DEBUG][       Thread-252486][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 11:01:47,736 [DEBUG][       Thread-252486][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 11:01:47,736 [DEBUG][       Thread-252486][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 11:01:47,736 [DEBUG][       Thread-252486][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 11:01:47,736 [DEBUG][       Thread-252486][   transport.py][1871] : Compression: none
2025-06-13 11:01:47,736 [DEBUG][       Thread-252486][   transport.py][1871] : === End of kex handshake ===
2025-06-13 11:01:47,797 [DEBUG][       Thread-252486][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 11:01:47,797 [DEBUG][       Thread-252486][   transport.py][1871] : Switch to new keys ...
2025-06-13 11:01:47,797 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 11:01:47,798 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 11:01:47,798 [DEBUG][       Thread-252486][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 11:01:47,859 [DEBUG][       Thread-252486][   transport.py][1871] : userauth is OK
2025-06-13 11:01:47,859 [DEBUG][       Thread-252486][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 11:01:47,859 [DEBUG][       Thread-252486][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 11:01:47,859 [DEBUG][       Thread-252486][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 11:01:47,859 [DEBUG][       Thread-252486][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 11:01:47,873 [ INFO][       Thread-252486][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 11:01:47,874 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 11:01:47,874 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 11:01:48,932 [DEBUG][       Thread-252486][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 11:01:48,933 [DEBUG][       Thread-252486][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 11:01:48,984 [DEBUG][       Thread-252486][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 11:01:48,984 [DEBUG][       Thread-252486][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 11:01:48,994 [DEBUG][       Thread-252486][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 11:01:49,006 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 11:01:49,006 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 11:01:49,015 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 11:01:49,024 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 11:01:49,024 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 11:01:49,024 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 11:01:49,034 [DEBUG][       Thread-252486][   transport.py][1871] : EOF in transport thread
2025-06-13 11:01:51,109 [DEBUG][Thread-252488 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:01:52,195 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:01:52,197 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:01:54,105 [DEBUG][Thread-252489 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:01:59,035 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 11:01:59,035 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 11:01:59,035 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 11:01:59,038 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 11:01:59,510 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 11, 1, 45), 10.28, 48.8, 0.0, 20.98, 9.62, 0, 0, 0, 2, 0, 0),)
2025-06-13 11:01:59,510 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 11:01:45
2025-06-13 11:01:59,592 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 11:01:59,596 [DEBUG][       Thread-252490][   transport.py][1871] : starting thread (client mode): 0x863be890
2025-06-13 11:01:59,596 [DEBUG][       Thread-252490][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 11:01:59,614 [DEBUG][       Thread-252490][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 11:01:59,614 [ INFO][       Thread-252490][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 11:01:59,615 [DEBUG][       Thread-252490][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 11:01:59,615 [DEBUG][       Thread-252490][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 11:01:59,615 [DEBUG][       Thread-252490][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 11:01:59,615 [DEBUG][       Thread-252490][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:01:59,615 [DEBUG][       Thread-252490][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:01:59,616 [DEBUG][       Thread-252490][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:01:59,616 [DEBUG][       Thread-252490][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:01:59,616 [DEBUG][       Thread-252490][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 11:01:59,616 [DEBUG][       Thread-252490][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 11:01:59,616 [DEBUG][       Thread-252490][   transport.py][1871] : client lang: <none>
2025-06-13 11:01:59,616 [DEBUG][       Thread-252490][   transport.py][1871] : server lang: <none>
2025-06-13 11:01:59,616 [DEBUG][       Thread-252490][   transport.py][1871] : kex follows: False
2025-06-13 11:01:59,616 [DEBUG][       Thread-252490][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 11:01:59,616 [DEBUG][       Thread-252490][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 11:01:59,616 [DEBUG][       Thread-252490][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 11:01:59,616 [DEBUG][       Thread-252490][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 11:01:59,616 [DEBUG][       Thread-252490][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 11:01:59,616 [DEBUG][       Thread-252490][   transport.py][1871] : Compression: none
2025-06-13 11:01:59,616 [DEBUG][       Thread-252490][   transport.py][1871] : === End of kex handshake ===
2025-06-13 11:01:59,625 [DEBUG][       Thread-252490][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 11:01:59,625 [DEBUG][       Thread-252490][   transport.py][1871] : Switch to new keys ...
2025-06-13 11:01:59,626 [DEBUG][       Thread-252490][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 11:01:59,626 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 11:01:59,626 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 11:01:59,627 [DEBUG][       Thread-252490][   transport.py][1871] : userauth is OK
2025-06-13 11:01:59,639 [ INFO][       Thread-252490][   transport.py][1871] : Authentication (password) successful!
2025-06-13 11:01:59,640 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 11:02:00,248 [DEBUG][       Thread-252490][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 11:02:00,248 [DEBUG][       Thread-252490][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 11:02:00,297 [DEBUG][       Thread-252490][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 11:02:00,297 [DEBUG][       Thread-252490][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 11:02:00,300 [DEBUG][       Thread-252490][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 11:02:00,307 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 11:02:00,307 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 11:02:00,308 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 11:02:00,310 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 11:02:00,313 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 11:02:00,315 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 11:02:00,315 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 11:02:00,315 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 11:02:00,316 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.375981 -999.00   +9.20  19.71     55   +0.70 1 1 1 1 1   887    0 8.64 -6.65 ----- 25.3 19.7 51.6 26.3 14.1 -28.1 12.7 -29.8 11.8 -28.9 13.1 -26.4
2025-06-13 11:02:00,316 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 11:02:00,316 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 11:02:00,316 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.375981
2025-06-13 11:02:00,316 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 11:02:00,317 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 11:02:00,317 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 11:02:00,317 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 11:02:00,317 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 11:02:00,317 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T11:01:45', tmtdew=10.28, humidity=48.8, cloud=0.0, wind=20.98, temperature=9.62, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T09:01:24.758', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 11:02:00,317 [DEBUG][       Thread-252490][   transport.py][1871] : EOF in transport thread
2025-06-13 11:02:00,403 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 11:02:00,412 [DEBUG][       Thread-252493][   transport.py][1871] : starting thread (client mode): 0x84205240
2025-06-13 11:02:00,412 [DEBUG][       Thread-252493][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 11:02:00,432 [DEBUG][       Thread-252493][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 11:02:00,432 [ INFO][       Thread-252493][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 11:02:00,443 [DEBUG][       Thread-252493][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 11:02:00,443 [DEBUG][       Thread-252493][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 11:02:00,443 [DEBUG][       Thread-252493][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 11:02:00,443 [DEBUG][       Thread-252493][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:02:00,443 [DEBUG][       Thread-252493][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:02:00,443 [DEBUG][       Thread-252493][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:02:00,443 [DEBUG][       Thread-252493][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:02:00,443 [DEBUG][       Thread-252493][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 11:02:00,443 [DEBUG][       Thread-252493][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 11:02:00,443 [DEBUG][       Thread-252493][   transport.py][1871] : client lang: <none>
2025-06-13 11:02:00,443 [DEBUG][       Thread-252493][   transport.py][1871] : server lang: <none>
2025-06-13 11:02:00,444 [DEBUG][       Thread-252493][   transport.py][1871] : kex follows: False
2025-06-13 11:02:00,444 [DEBUG][       Thread-252493][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 11:02:00,444 [DEBUG][       Thread-252493][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 11:02:00,444 [DEBUG][       Thread-252493][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 11:02:00,444 [DEBUG][       Thread-252493][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 11:02:00,444 [DEBUG][       Thread-252493][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 11:02:00,444 [DEBUG][       Thread-252493][   transport.py][1871] : Compression: none
2025-06-13 11:02:00,444 [DEBUG][       Thread-252493][   transport.py][1871] : === End of kex handshake ===
2025-06-13 11:02:00,500 [DEBUG][       Thread-252493][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 11:02:00,501 [DEBUG][       Thread-252493][   transport.py][1871] : Switch to new keys ...
2025-06-13 11:02:00,501 [DEBUG][       Thread-252493][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 11:02:00,502 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 11:02:00,502 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 11:02:00,567 [DEBUG][       Thread-252493][   transport.py][1871] : userauth is OK
2025-06-13 11:02:00,567 [DEBUG][       Thread-252493][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 11:02:00,567 [DEBUG][       Thread-252493][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 11:02:00,567 [DEBUG][       Thread-252493][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 11:02:00,567 [DEBUG][       Thread-252493][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 11:02:00,588 [ INFO][       Thread-252493][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 11:02:00,588 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 11:02:00,588 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 11:02:01,599 [DEBUG][       Thread-252493][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 11:02:01,599 [DEBUG][       Thread-252493][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 11:02:01,647 [DEBUG][       Thread-252493][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 11:02:01,648 [DEBUG][       Thread-252493][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 11:02:01,656 [DEBUG][       Thread-252493][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 11:02:01,665 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 11:02:01,665 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 11:02:01,679 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 11:02:01,688 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 11:02:01,688 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 11:02:01,689 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 11:02:01,697 [DEBUG][       Thread-252493][   transport.py][1871] : EOF in transport thread
2025-06-13 11:02:03,125 [DEBUG][Thread-252495 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:02:07,944 [DEBUG][Thread-252496 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:02:11,690 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 11:02:11,690 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 11:02:11,699 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 11:02:11,702 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 11:02:12,152 [DEBUG][Thread-252497 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:02:12,178 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 11, 1, 45), 10.28, 48.8, 0.0, 20.98, 9.62, 0, 0, 0, 2, 0, 0),)
2025-06-13 11:02:12,178 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 11:01:45
2025-06-13 11:02:12,259 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 11:02:12,265 [DEBUG][       Thread-252498][   transport.py][1871] : starting thread (client mode): 0x84204610
2025-06-13 11:02:12,265 [DEBUG][       Thread-252498][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 11:02:12,287 [DEBUG][       Thread-252498][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 11:02:12,287 [ INFO][       Thread-252498][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 11:02:12,290 [DEBUG][       Thread-252498][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 11:02:12,290 [DEBUG][       Thread-252498][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 11:02:12,290 [DEBUG][       Thread-252498][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 11:02:12,290 [DEBUG][       Thread-252498][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:02:12,290 [DEBUG][       Thread-252498][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:02:12,290 [DEBUG][       Thread-252498][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:02:12,290 [DEBUG][       Thread-252498][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:02:12,290 [DEBUG][       Thread-252498][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 11:02:12,290 [DEBUG][       Thread-252498][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 11:02:12,290 [DEBUG][       Thread-252498][   transport.py][1871] : client lang: <none>
2025-06-13 11:02:12,290 [DEBUG][       Thread-252498][   transport.py][1871] : server lang: <none>
2025-06-13 11:02:12,290 [DEBUG][       Thread-252498][   transport.py][1871] : kex follows: False
2025-06-13 11:02:12,290 [DEBUG][       Thread-252498][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 11:02:12,291 [DEBUG][       Thread-252498][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 11:02:12,291 [DEBUG][       Thread-252498][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 11:02:12,291 [DEBUG][       Thread-252498][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 11:02:12,291 [DEBUG][       Thread-252498][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 11:02:12,291 [DEBUG][       Thread-252498][   transport.py][1871] : Compression: none
2025-06-13 11:02:12,291 [DEBUG][       Thread-252498][   transport.py][1871] : === End of kex handshake ===
2025-06-13 11:02:12,307 [DEBUG][       Thread-252498][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 11:02:12,308 [DEBUG][       Thread-252498][   transport.py][1871] : Switch to new keys ...
2025-06-13 11:02:12,308 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 11:02:12,309 [DEBUG][       Thread-252498][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 11:02:12,309 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 11:02:12,310 [DEBUG][       Thread-252498][   transport.py][1871] : userauth is OK
2025-06-13 11:02:12,323 [ INFO][       Thread-252498][   transport.py][1871] : Authentication (password) successful!
2025-06-13 11:02:12,324 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 11:02:12,941 [DEBUG][       Thread-252498][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 11:02:12,941 [DEBUG][       Thread-252498][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 11:02:12,985 [DEBUG][       Thread-252498][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 11:02:12,985 [DEBUG][       Thread-252498][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 11:02:12,988 [DEBUG][       Thread-252498][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 11:02:12,999 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 11:02:12,999 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 11:02:13,001 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 11:02:13,002 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 11:02:13,007 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 11:02:13,009 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 11:02:13,009 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 11:02:13,010 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 11:02:13,010 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.376328 -999.00   +9.30  21.90     54   +0.50 1 1 1 1 1   887    0 8.75 -8.58 ----- 23.3 21.9 43.8 28.3 14.1 -28.1 12.6 -29.6 11.8 -28.8 13.1 -26.3
2025-06-13 11:02:13,010 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 11:02:13,010 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 11:02:13,010 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.376328
2025-06-13 11:02:13,010 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 11:02:13,011 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 11:02:13,011 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 11:02:13,011 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 11:02:13,011 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 11:02:13,011 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T11:01:45', tmtdew=10.28, humidity=48.8, cloud=0.0, wind=20.98, temperature=9.62, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T09:01:54.739', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 11:02:13,011 [DEBUG][       Thread-252498][   transport.py][1871] : EOF in transport thread
2025-06-13 11:02:13,095 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 11:02:13,106 [DEBUG][       Thread-252501][   transport.py][1871] : starting thread (client mode): 0x863a5e70
2025-06-13 11:02:13,106 [DEBUG][       Thread-252501][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 11:02:13,127 [DEBUG][       Thread-252501][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 11:02:13,127 [ INFO][       Thread-252501][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 11:02:13,140 [DEBUG][       Thread-252501][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 11:02:13,140 [DEBUG][       Thread-252501][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 11:02:13,140 [DEBUG][       Thread-252501][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 11:02:13,140 [DEBUG][       Thread-252501][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:02:13,140 [DEBUG][       Thread-252501][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:02:13,140 [DEBUG][       Thread-252501][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:02:13,140 [DEBUG][       Thread-252501][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:02:13,140 [DEBUG][       Thread-252501][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 11:02:13,140 [DEBUG][       Thread-252501][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 11:02:13,140 [DEBUG][       Thread-252501][   transport.py][1871] : client lang: <none>
2025-06-13 11:02:13,140 [DEBUG][       Thread-252501][   transport.py][1871] : server lang: <none>
2025-06-13 11:02:13,141 [DEBUG][       Thread-252501][   transport.py][1871] : kex follows: False
2025-06-13 11:02:13,141 [DEBUG][       Thread-252501][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 11:02:13,141 [DEBUG][       Thread-252501][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 11:02:13,141 [DEBUG][       Thread-252501][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 11:02:13,141 [DEBUG][       Thread-252501][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 11:02:13,141 [DEBUG][       Thread-252501][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 11:02:13,141 [DEBUG][       Thread-252501][   transport.py][1871] : Compression: none
2025-06-13 11:02:13,141 [DEBUG][       Thread-252501][   transport.py][1871] : === End of kex handshake ===
2025-06-13 11:02:13,194 [DEBUG][       Thread-252501][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 11:02:13,194 [DEBUG][       Thread-252501][   transport.py][1871] : Switch to new keys ...
2025-06-13 11:02:13,195 [DEBUG][       Thread-252501][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 11:02:13,195 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 11:02:13,196 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 11:02:13,252 [DEBUG][       Thread-252501][   transport.py][1871] : userauth is OK
2025-06-13 11:02:13,253 [DEBUG][       Thread-252501][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 11:02:13,253 [DEBUG][       Thread-252501][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 11:02:13,253 [DEBUG][       Thread-252501][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 11:02:13,253 [DEBUG][       Thread-252501][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 11:02:13,272 [ INFO][       Thread-252501][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 11:02:13,272 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 11:02:13,273 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 11:02:14,336 [DEBUG][       Thread-252501][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 11:02:14,336 [DEBUG][       Thread-252501][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 11:02:14,388 [DEBUG][       Thread-252501][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 11:02:14,388 [DEBUG][       Thread-252501][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 11:02:14,398 [DEBUG][       Thread-252501][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 11:02:14,415 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 11:02:14,416 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 11:02:14,428 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 11:02:14,438 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 11:02:14,438 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 11:02:14,438 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 11:02:14,448 [DEBUG][       Thread-252501][   transport.py][1871] : EOF in transport thread
2025-06-13 11:02:21,170 [DEBUG][Thread-252503 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:02:24,448 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 11:02:24,448 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 11:02:24,448 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 11:02:24,448 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 11:02:24,950 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 11, 2, 17), 10.22, 48.98, 0.0, 18.49, 9.66, 0, 0, 0, 2, 0, 0),)
2025-06-13 11:02:24,950 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 11:02:17
2025-06-13 11:02:25,032 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 11:02:25,036 [DEBUG][       Thread-252504][   transport.py][1871] : starting thread (client mode): 0x867ffc10
2025-06-13 11:02:25,036 [DEBUG][       Thread-252504][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 11:02:25,057 [DEBUG][       Thread-252504][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 11:02:25,057 [ INFO][       Thread-252504][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 11:02:25,061 [DEBUG][       Thread-252504][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 11:02:25,061 [DEBUG][       Thread-252504][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 11:02:25,061 [DEBUG][       Thread-252504][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 11:02:25,061 [DEBUG][       Thread-252504][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:02:25,061 [DEBUG][       Thread-252504][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:02:25,061 [DEBUG][       Thread-252504][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:02:25,061 [DEBUG][       Thread-252504][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:02:25,061 [DEBUG][       Thread-252504][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 11:02:25,061 [DEBUG][       Thread-252504][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 11:02:25,061 [DEBUG][       Thread-252504][   transport.py][1871] : client lang: <none>
2025-06-13 11:02:25,061 [DEBUG][       Thread-252504][   transport.py][1871] : server lang: <none>
2025-06-13 11:02:25,061 [DEBUG][       Thread-252504][   transport.py][1871] : kex follows: False
2025-06-13 11:02:25,061 [DEBUG][       Thread-252504][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 11:02:25,061 [DEBUG][       Thread-252504][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 11:02:25,061 [DEBUG][       Thread-252504][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 11:02:25,061 [DEBUG][       Thread-252504][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 11:02:25,061 [DEBUG][       Thread-252504][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 11:02:25,061 [DEBUG][       Thread-252504][   transport.py][1871] : Compression: none
2025-06-13 11:02:25,061 [DEBUG][       Thread-252504][   transport.py][1871] : === End of kex handshake ===
2025-06-13 11:02:25,076 [DEBUG][       Thread-252504][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 11:02:25,076 [DEBUG][       Thread-252504][   transport.py][1871] : Switch to new keys ...
2025-06-13 11:02:25,076 [DEBUG][       Thread-252504][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 11:02:25,076 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 11:02:25,076 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 11:02:25,077 [DEBUG][       Thread-252504][   transport.py][1871] : userauth is OK
2025-06-13 11:02:25,101 [ INFO][       Thread-252504][   transport.py][1871] : Authentication (password) successful!
2025-06-13 11:02:25,101 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 11:02:25,736 [DEBUG][       Thread-252504][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 11:02:25,736 [DEBUG][       Thread-252504][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 11:02:25,780 [DEBUG][       Thread-252504][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 11:02:25,781 [DEBUG][       Thread-252504][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 11:02:25,783 [DEBUG][       Thread-252504][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 11:02:25,796 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 11:02:25,796 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 11:02:25,797 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 11:02:25,798 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 11:02:25,800 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 11:02:25,801 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 11:02:25,801 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 11:02:25,801 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 11:02:25,801 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.376328 -999.00   +9.30  21.90     54   +0.50 1 1 1 1 1   887    0 8.75 -8.58 ----- 23.3 21.9 43.8 28.3 14.1 -28.1 12.6 -29.6 11.8 -28.8 13.1 -26.3
2025-06-13 11:02:25,801 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 11:02:25,801 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 11:02:25,801 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.376328
2025-06-13 11:02:25,801 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 11:02:25,802 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 11:02:25,802 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 11:02:25,802 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 11:02:25,802 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 11:02:25,802 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T11:02:17', tmtdew=10.22, humidity=48.98, cloud=0.0, wind=18.49, temperature=9.66, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T09:01:54.739', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 11:02:25,802 [DEBUG][       Thread-252504][   transport.py][1871] : EOF in transport thread
2025-06-13 11:02:25,874 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 11:02:25,884 [DEBUG][       Thread-252507][   transport.py][1871] : starting thread (client mode): 0x867b5a20
2025-06-13 11:02:25,884 [DEBUG][       Thread-252507][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 11:02:25,899 [DEBUG][       Thread-252507][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 11:02:25,899 [ INFO][       Thread-252507][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 11:02:25,906 [DEBUG][       Thread-252507][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 11:02:25,906 [DEBUG][       Thread-252507][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 11:02:25,907 [DEBUG][       Thread-252507][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 11:02:25,907 [DEBUG][       Thread-252507][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:02:25,907 [DEBUG][       Thread-252507][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:02:25,907 [DEBUG][       Thread-252507][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:02:25,907 [DEBUG][       Thread-252507][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:02:25,907 [DEBUG][       Thread-252507][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 11:02:25,907 [DEBUG][       Thread-252507][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 11:02:25,907 [DEBUG][       Thread-252507][   transport.py][1871] : client lang: <none>
2025-06-13 11:02:25,907 [DEBUG][       Thread-252507][   transport.py][1871] : server lang: <none>
2025-06-13 11:02:25,907 [DEBUG][       Thread-252507][   transport.py][1871] : kex follows: False
2025-06-13 11:02:25,907 [DEBUG][       Thread-252507][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 11:02:25,907 [DEBUG][       Thread-252507][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 11:02:25,907 [DEBUG][       Thread-252507][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 11:02:25,907 [DEBUG][       Thread-252507][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 11:02:25,907 [DEBUG][       Thread-252507][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 11:02:25,907 [DEBUG][       Thread-252507][   transport.py][1871] : Compression: none
2025-06-13 11:02:25,907 [DEBUG][       Thread-252507][   transport.py][1871] : === End of kex handshake ===
2025-06-13 11:02:25,961 [DEBUG][       Thread-252507][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 11:02:25,961 [DEBUG][       Thread-252507][   transport.py][1871] : Switch to new keys ...
2025-06-13 11:02:25,962 [DEBUG][       Thread-252507][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 11:02:25,962 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 11:02:25,962 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 11:02:26,022 [DEBUG][       Thread-252507][   transport.py][1871] : userauth is OK
2025-06-13 11:02:26,022 [DEBUG][       Thread-252507][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 11:02:26,022 [DEBUG][       Thread-252507][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 11:02:26,022 [DEBUG][       Thread-252507][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 11:02:26,022 [DEBUG][       Thread-252507][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 11:02:26,036 [ INFO][       Thread-252507][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 11:02:26,037 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 11:02:26,037 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 11:02:27,109 [DEBUG][       Thread-252507][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 11:02:27,109 [DEBUG][       Thread-252507][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 11:02:27,168 [DEBUG][       Thread-252507][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 11:02:27,168 [DEBUG][       Thread-252507][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 11:02:27,183 [DEBUG][       Thread-252507][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 11:02:27,193 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 11:02:27,193 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 11:02:27,202 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 11:02:27,211 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 11:02:27,211 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 11:02:27,211 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 11:02:27,219 [DEBUG][       Thread-252507][   transport.py][1871] : EOF in transport thread
2025-06-13 11:02:30,188 [DEBUG][Thread-252509 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:02:31,362 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:02:31,363 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:02:37,222 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 11:02:37,222 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 11:02:37,231 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 11:02:37,234 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 11:02:37,700 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 11, 2, 17), 10.22, 48.98, 0.0, 18.49, 9.66, 0, 0, 0, 2, 0, 0),)
2025-06-13 11:02:37,700 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 11:02:17
2025-06-13 11:02:37,778 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 11:02:37,784 [DEBUG][       Thread-252510][   transport.py][1871] : starting thread (client mode): 0x867b72b0
2025-06-13 11:02:37,784 [DEBUG][       Thread-252510][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 11:02:37,806 [DEBUG][       Thread-252510][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 11:02:37,806 [ INFO][       Thread-252510][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 11:02:37,809 [DEBUG][       Thread-252510][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 11:02:37,809 [DEBUG][       Thread-252510][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 11:02:37,810 [DEBUG][       Thread-252510][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 11:02:37,810 [DEBUG][       Thread-252510][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:02:37,810 [DEBUG][       Thread-252510][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:02:37,810 [DEBUG][       Thread-252510][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:02:37,810 [DEBUG][       Thread-252510][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:02:37,810 [DEBUG][       Thread-252510][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 11:02:37,810 [DEBUG][       Thread-252510][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 11:02:37,810 [DEBUG][       Thread-252510][   transport.py][1871] : client lang: <none>
2025-06-13 11:02:37,810 [DEBUG][       Thread-252510][   transport.py][1871] : server lang: <none>
2025-06-13 11:02:37,810 [DEBUG][       Thread-252510][   transport.py][1871] : kex follows: False
2025-06-13 11:02:37,810 [DEBUG][       Thread-252510][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 11:02:37,810 [DEBUG][       Thread-252510][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 11:02:37,810 [DEBUG][       Thread-252510][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 11:02:37,810 [DEBUG][       Thread-252510][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 11:02:37,810 [DEBUG][       Thread-252510][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 11:02:37,810 [DEBUG][       Thread-252510][   transport.py][1871] : Compression: none
2025-06-13 11:02:37,810 [DEBUG][       Thread-252510][   transport.py][1871] : === End of kex handshake ===
2025-06-13 11:02:37,825 [DEBUG][       Thread-252510][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 11:02:37,826 [DEBUG][       Thread-252510][   transport.py][1871] : Switch to new keys ...
2025-06-13 11:02:37,826 [DEBUG][       Thread-252510][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 11:02:37,826 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 11:02:37,827 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 11:02:37,828 [DEBUG][       Thread-252510][   transport.py][1871] : userauth is OK
2025-06-13 11:02:37,843 [ INFO][       Thread-252510][   transport.py][1871] : Authentication (password) successful!
2025-06-13 11:02:37,844 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 11:02:38,419 [DEBUG][       Thread-252510][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 11:02:38,419 [DEBUG][       Thread-252510][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 11:02:38,461 [DEBUG][       Thread-252510][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 11:02:38,461 [DEBUG][       Thread-252510][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 11:02:38,463 [DEBUG][       Thread-252510][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 11:02:38,474 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 11:02:38,475 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 11:02:38,476 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 11:02:38,477 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 11:02:38,482 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 11:02:38,483 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 11:02:38,483 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 11:02:38,484 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 11:02:38,484 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.376328 -999.00   +9.30  21.90     54   +0.50 1 1 1 1 1   887    0 8.75 -8.58 ----- 23.3 21.9 43.8 28.3 14.1 -28.1 12.6 -29.6 11.8 -28.8 13.1 -26.3
2025-06-13 11:02:38,484 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 11:02:38,484 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 11:02:38,484 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.376328
2025-06-13 11:02:38,484 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 11:02:38,485 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 11:02:38,485 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 11:02:38,485 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 11:02:38,485 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 11:02:38,485 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T11:02:17', tmtdew=10.22, humidity=48.98, cloud=0.0, wind=18.49, temperature=9.66, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T09:01:54.739', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 11:02:38,486 [DEBUG][       Thread-252510][   transport.py][1871] : EOF in transport thread
2025-06-13 11:02:38,569 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 11:02:38,579 [DEBUG][       Thread-252513][   transport.py][1871] : starting thread (client mode): 0x863a5030
2025-06-13 11:02:38,579 [DEBUG][       Thread-252513][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 11:02:38,594 [DEBUG][       Thread-252513][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 11:02:38,594 [ INFO][       Thread-252513][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 11:02:38,602 [DEBUG][       Thread-252513][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 11:02:38,602 [DEBUG][       Thread-252513][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 11:02:38,602 [DEBUG][       Thread-252513][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 11:02:38,602 [DEBUG][       Thread-252513][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:02:38,602 [DEBUG][       Thread-252513][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:02:38,602 [DEBUG][       Thread-252513][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:02:38,602 [DEBUG][       Thread-252513][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:02:38,602 [DEBUG][       Thread-252513][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 11:02:38,602 [DEBUG][       Thread-252513][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 11:02:38,602 [DEBUG][       Thread-252513][   transport.py][1871] : client lang: <none>
2025-06-13 11:02:38,602 [DEBUG][       Thread-252513][   transport.py][1871] : server lang: <none>
2025-06-13 11:02:38,602 [DEBUG][       Thread-252513][   transport.py][1871] : kex follows: False
2025-06-13 11:02:38,602 [DEBUG][       Thread-252513][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 11:02:38,602 [DEBUG][       Thread-252513][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 11:02:38,602 [DEBUG][       Thread-252513][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 11:02:38,602 [DEBUG][       Thread-252513][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 11:02:38,602 [DEBUG][       Thread-252513][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 11:02:38,602 [DEBUG][       Thread-252513][   transport.py][1871] : Compression: none
2025-06-13 11:02:38,602 [DEBUG][       Thread-252513][   transport.py][1871] : === End of kex handshake ===
2025-06-13 11:02:38,662 [DEBUG][       Thread-252513][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 11:02:38,662 [DEBUG][       Thread-252513][   transport.py][1871] : Switch to new keys ...
2025-06-13 11:02:38,663 [DEBUG][       Thread-252513][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 11:02:38,663 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 11:02:38,663 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 11:02:38,724 [DEBUG][       Thread-252513][   transport.py][1871] : userauth is OK
2025-06-13 11:02:38,724 [DEBUG][       Thread-252513][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 11:02:38,724 [DEBUG][       Thread-252513][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 11:02:38,724 [DEBUG][       Thread-252513][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 11:02:38,724 [DEBUG][       Thread-252513][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 11:02:38,743 [ INFO][       Thread-252513][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 11:02:38,743 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 11:02:38,744 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 11:02:39,219 [DEBUG][Thread-252515 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:02:39,769 [DEBUG][       Thread-252513][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 11:02:39,769 [DEBUG][       Thread-252513][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 11:02:39,819 [DEBUG][       Thread-252513][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 11:02:39,819 [DEBUG][       Thread-252513][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 11:02:39,828 [DEBUG][       Thread-252513][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 11:02:39,837 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 11:02:39,837 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 11:02:39,845 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 11:02:39,854 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 11:02:39,854 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 11:02:39,855 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 11:02:39,864 [DEBUG][       Thread-252513][   transport.py][1871] : EOF in transport thread
2025-06-13 11:02:48,237 [DEBUG][Thread-252516 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:02:49,864 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 11:02:49,864 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 11:02:49,864 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 11:02:49,865 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 11:02:50,354 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 11, 2, 17), 10.22, 48.98, 0.0, 18.49, 9.66, 0, 0, 0, 2, 0, 0),)
2025-06-13 11:02:50,354 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 11:02:17
2025-06-13 11:02:50,439 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 11:02:50,446 [DEBUG][       Thread-252517][   transport.py][1871] : starting thread (client mode): 0x84205ab0
2025-06-13 11:02:50,446 [DEBUG][       Thread-252517][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 11:02:50,465 [DEBUG][       Thread-252517][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 11:02:50,465 [ INFO][       Thread-252517][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 11:02:50,469 [DEBUG][       Thread-252517][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 11:02:50,469 [DEBUG][       Thread-252517][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 11:02:50,469 [DEBUG][       Thread-252517][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 11:02:50,469 [DEBUG][       Thread-252517][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:02:50,469 [DEBUG][       Thread-252517][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:02:50,469 [DEBUG][       Thread-252517][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:02:50,469 [DEBUG][       Thread-252517][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:02:50,469 [DEBUG][       Thread-252517][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 11:02:50,469 [DEBUG][       Thread-252517][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 11:02:50,469 [DEBUG][       Thread-252517][   transport.py][1871] : client lang: <none>
2025-06-13 11:02:50,469 [DEBUG][       Thread-252517][   transport.py][1871] : server lang: <none>
2025-06-13 11:02:50,469 [DEBUG][       Thread-252517][   transport.py][1871] : kex follows: False
2025-06-13 11:02:50,469 [DEBUG][       Thread-252517][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 11:02:50,469 [DEBUG][       Thread-252517][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 11:02:50,469 [DEBUG][       Thread-252517][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 11:02:50,469 [DEBUG][       Thread-252517][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 11:02:50,469 [DEBUG][       Thread-252517][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 11:02:50,469 [DEBUG][       Thread-252517][   transport.py][1871] : Compression: none
2025-06-13 11:02:50,469 [DEBUG][       Thread-252517][   transport.py][1871] : === End of kex handshake ===
2025-06-13 11:02:50,484 [DEBUG][       Thread-252517][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 11:02:50,484 [DEBUG][       Thread-252517][   transport.py][1871] : Switch to new keys ...
2025-06-13 11:02:50,484 [DEBUG][       Thread-252517][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 11:02:50,484 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 11:02:50,484 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 11:02:50,485 [DEBUG][       Thread-252517][   transport.py][1871] : userauth is OK
2025-06-13 11:02:50,497 [ INFO][       Thread-252517][   transport.py][1871] : Authentication (password) successful!
2025-06-13 11:02:50,498 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 11:02:51,124 [DEBUG][       Thread-252517][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 11:02:51,124 [DEBUG][       Thread-252517][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 11:02:51,168 [DEBUG][       Thread-252517][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 11:02:51,168 [DEBUG][       Thread-252517][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 11:02:51,171 [DEBUG][       Thread-252517][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 11:02:51,184 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 11:02:51,184 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 11:02:51,185 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 11:02:51,186 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 11:02:51,188 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 11:02:51,189 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 11:02:51,189 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 11:02:51,189 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 11:02:51,189 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.376675 -999.00   +9.40  27.14     53   +0.30 1 1 1 1 1   887    0 8.66 -7.73 ----- 25.0 27.1 53.4 30.2 14.1 -27.9 12.8 -29.6 11.8 -27.9 13.1 -26.8
2025-06-13 11:02:51,189 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 11:02:51,189 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 11:02:51,189 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.376675
2025-06-13 11:02:51,189 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 11:02:51,189 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 11:02:51,189 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 11:02:51,189 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 11:02:51,189 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 11:02:51,189 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T11:02:17', tmtdew=10.22, humidity=48.98, cloud=0.0, wind=18.49, temperature=9.66, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T09:02:24.720', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 11:02:51,190 [DEBUG][       Thread-252517][   transport.py][1871] : EOF in transport thread
2025-06-13 11:02:51,264 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 11:02:51,274 [DEBUG][       Thread-252520][   transport.py][1871] : starting thread (client mode): 0x867b4970
2025-06-13 11:02:51,274 [DEBUG][       Thread-252520][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 11:02:51,290 [DEBUG][       Thread-252520][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 11:02:51,290 [ INFO][       Thread-252520][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 11:02:51,297 [DEBUG][       Thread-252520][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 11:02:51,297 [DEBUG][       Thread-252520][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 11:02:51,297 [DEBUG][       Thread-252520][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 11:02:51,297 [DEBUG][       Thread-252520][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:02:51,297 [DEBUG][       Thread-252520][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:02:51,297 [DEBUG][       Thread-252520][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:02:51,297 [DEBUG][       Thread-252520][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:02:51,297 [DEBUG][       Thread-252520][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 11:02:51,298 [DEBUG][       Thread-252520][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 11:02:51,298 [DEBUG][       Thread-252520][   transport.py][1871] : client lang: <none>
2025-06-13 11:02:51,298 [DEBUG][       Thread-252520][   transport.py][1871] : server lang: <none>
2025-06-13 11:02:51,298 [DEBUG][       Thread-252520][   transport.py][1871] : kex follows: False
2025-06-13 11:02:51,298 [DEBUG][       Thread-252520][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 11:02:51,298 [DEBUG][       Thread-252520][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 11:02:51,298 [DEBUG][       Thread-252520][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 11:02:51,298 [DEBUG][       Thread-252520][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 11:02:51,298 [DEBUG][       Thread-252520][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 11:02:51,298 [DEBUG][       Thread-252520][   transport.py][1871] : Compression: none
2025-06-13 11:02:51,298 [DEBUG][       Thread-252520][   transport.py][1871] : === End of kex handshake ===
2025-06-13 11:02:51,357 [DEBUG][       Thread-252520][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 11:02:51,357 [DEBUG][       Thread-252520][   transport.py][1871] : Switch to new keys ...
2025-06-13 11:02:51,358 [DEBUG][       Thread-252520][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 11:02:51,358 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 11:02:51,358 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 11:02:51,417 [DEBUG][       Thread-252520][   transport.py][1871] : userauth is OK
2025-06-13 11:02:51,417 [DEBUG][       Thread-252520][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 11:02:51,417 [DEBUG][       Thread-252520][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 11:02:51,417 [DEBUG][       Thread-252520][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 11:02:51,417 [DEBUG][       Thread-252520][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 11:02:51,441 [ INFO][       Thread-252520][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 11:02:51,441 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 11:02:51,441 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 11:02:52,267 [DEBUG][Thread-252522 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:02:52,425 [DEBUG][       Thread-252520][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 11:02:52,425 [DEBUG][       Thread-252520][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 11:02:52,475 [DEBUG][       Thread-252520][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 11:02:52,475 [DEBUG][       Thread-252520][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 11:02:52,484 [DEBUG][       Thread-252520][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 11:02:52,492 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 11:02:52,492 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 11:02:52,503 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 11:02:52,511 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 11:02:52,511 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 11:02:52,512 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 11:02:52,519 [DEBUG][       Thread-252520][   transport.py][1871] : EOF in transport thread
2025-06-13 11:02:53,342 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:02:53,343 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:02:57,255 [DEBUG][Thread-252523 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:03:02,522 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 11:03:02,522 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 11:03:02,522 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 11:03:02,523 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 11:03:02,987 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 11, 2, 49), 10.13, 49.31, 0.0, 17.47, 9.68, 0, 0, 0, 2, 0, 0),)
2025-06-13 11:03:02,987 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 11:02:49
2025-06-13 11:03:03,071 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 11:03:03,075 [DEBUG][       Thread-252524][   transport.py][1871] : starting thread (client mode): 0x842076d0
2025-06-13 11:03:03,075 [DEBUG][       Thread-252524][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 11:03:03,096 [DEBUG][       Thread-252524][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 11:03:03,096 [ INFO][       Thread-252524][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 11:03:03,100 [DEBUG][       Thread-252524][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 11:03:03,100 [DEBUG][       Thread-252524][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 11:03:03,100 [DEBUG][       Thread-252524][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 11:03:03,100 [DEBUG][       Thread-252524][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:03:03,100 [DEBUG][       Thread-252524][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:03:03,100 [DEBUG][       Thread-252524][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:03:03,100 [DEBUG][       Thread-252524][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:03:03,100 [DEBUG][       Thread-252524][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 11:03:03,100 [DEBUG][       Thread-252524][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 11:03:03,100 [DEBUG][       Thread-252524][   transport.py][1871] : client lang: <none>
2025-06-13 11:03:03,100 [DEBUG][       Thread-252524][   transport.py][1871] : server lang: <none>
2025-06-13 11:03:03,100 [DEBUG][       Thread-252524][   transport.py][1871] : kex follows: False
2025-06-13 11:03:03,100 [DEBUG][       Thread-252524][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 11:03:03,100 [DEBUG][       Thread-252524][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 11:03:03,100 [DEBUG][       Thread-252524][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 11:03:03,100 [DEBUG][       Thread-252524][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 11:03:03,100 [DEBUG][       Thread-252524][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 11:03:03,100 [DEBUG][       Thread-252524][   transport.py][1871] : Compression: none
2025-06-13 11:03:03,100 [DEBUG][       Thread-252524][   transport.py][1871] : === End of kex handshake ===
2025-06-13 11:03:03,115 [DEBUG][       Thread-252524][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 11:03:03,115 [DEBUG][       Thread-252524][   transport.py][1871] : Switch to new keys ...
2025-06-13 11:03:03,115 [DEBUG][       Thread-252524][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 11:03:03,115 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 11:03:03,115 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 11:03:03,116 [DEBUG][       Thread-252524][   transport.py][1871] : userauth is OK
2025-06-13 11:03:03,129 [ INFO][       Thread-252524][   transport.py][1871] : Authentication (password) successful!
2025-06-13 11:03:03,129 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 11:03:03,768 [DEBUG][       Thread-252524][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 11:03:03,768 [DEBUG][       Thread-252524][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 11:03:03,812 [DEBUG][       Thread-252524][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 11:03:03,812 [DEBUG][       Thread-252524][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 11:03:03,815 [DEBUG][       Thread-252524][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 11:03:03,827 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 11:03:03,827 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 11:03:03,829 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 11:03:03,830 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 11:03:03,833 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 11:03:03,834 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 11:03:03,834 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 11:03:03,834 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 11:03:03,834 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.376675 -999.00   +9.40  27.14     53   +0.30 1 1 1 1 1   887    0 8.66 -7.73 ----- 25.0 27.1 53.4 30.2 14.1 -27.9 12.8 -29.6 11.8 -27.9 13.1 -26.8
2025-06-13 11:03:03,834 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 11:03:03,834 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 11:03:03,834 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.376675
2025-06-13 11:03:03,835 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 11:03:03,835 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 11:03:03,835 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 11:03:03,835 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 11:03:03,835 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 11:03:03,835 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T11:02:49', tmtdew=10.13, humidity=49.31, cloud=0.0, wind=17.47, temperature=9.68, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T09:02:24.720', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 11:03:03,835 [DEBUG][       Thread-252524][   transport.py][1871] : EOF in transport thread
2025-06-13 11:03:03,909 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 11:03:03,924 [DEBUG][       Thread-252527][   transport.py][1871] : starting thread (client mode): 0x863a55d0
2025-06-13 11:03:03,924 [DEBUG][       Thread-252527][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 11:03:03,943 [DEBUG][       Thread-252527][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 11:03:03,943 [ INFO][       Thread-252527][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 11:03:03,954 [DEBUG][       Thread-252527][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 11:03:03,954 [DEBUG][       Thread-252527][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 11:03:03,954 [DEBUG][       Thread-252527][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 11:03:03,954 [DEBUG][       Thread-252527][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:03:03,954 [DEBUG][       Thread-252527][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:03:03,954 [DEBUG][       Thread-252527][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:03:03,954 [DEBUG][       Thread-252527][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:03:03,954 [DEBUG][       Thread-252527][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 11:03:03,954 [DEBUG][       Thread-252527][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 11:03:03,954 [DEBUG][       Thread-252527][   transport.py][1871] : client lang: <none>
2025-06-13 11:03:03,954 [DEBUG][       Thread-252527][   transport.py][1871] : server lang: <none>
2025-06-13 11:03:03,954 [DEBUG][       Thread-252527][   transport.py][1871] : kex follows: False
2025-06-13 11:03:03,954 [DEBUG][       Thread-252527][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 11:03:03,954 [DEBUG][       Thread-252527][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 11:03:03,954 [DEBUG][       Thread-252527][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 11:03:03,954 [DEBUG][       Thread-252527][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 11:03:03,954 [DEBUG][       Thread-252527][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 11:03:03,954 [DEBUG][       Thread-252527][   transport.py][1871] : Compression: none
2025-06-13 11:03:03,954 [DEBUG][       Thread-252527][   transport.py][1871] : === End of kex handshake ===
2025-06-13 11:03:04,006 [DEBUG][       Thread-252527][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 11:03:04,006 [DEBUG][       Thread-252527][   transport.py][1871] : Switch to new keys ...
2025-06-13 11:03:04,006 [DEBUG][       Thread-252527][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 11:03:04,006 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 11:03:04,006 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 11:03:04,071 [DEBUG][       Thread-252527][   transport.py][1871] : userauth is OK
2025-06-13 11:03:04,071 [DEBUG][       Thread-252527][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 11:03:04,071 [DEBUG][       Thread-252527][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 11:03:04,071 [DEBUG][       Thread-252527][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 11:03:04,071 [DEBUG][       Thread-252527][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 11:03:04,085 [ INFO][       Thread-252527][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 11:03:04,085 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 11:03:04,085 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 11:03:05,218 [DEBUG][       Thread-252527][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 11:03:05,218 [DEBUG][       Thread-252527][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 11:03:05,271 [DEBUG][       Thread-252527][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 11:03:05,271 [DEBUG][       Thread-252527][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 11:03:05,280 [DEBUG][       Thread-252527][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 11:03:05,288 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 11:03:05,288 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 11:03:05,296 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 11:03:05,304 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 11:03:05,304 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 11:03:05,304 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 11:03:05,312 [DEBUG][       Thread-252527][   transport.py][1871] : EOF in transport thread
2025-06-13 11:03:06,274 [DEBUG][Thread-252529 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:03:07,986 [DEBUG][Thread-252530 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:03:15,312 [DEBUG][Thread-252531 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:03:15,312 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 11:03:15,313 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 11:03:15,313 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 11:03:15,316 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 11:03:15,778 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 11, 2, 49), 10.13, 49.31, 0.0, 17.47, 9.68, 0, 0, 0, 2, 0, 0),)
2025-06-13 11:03:15,778 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 11:02:49
2025-06-13 11:03:15,857 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 11:03:15,864 [DEBUG][       Thread-252532][   transport.py][1871] : starting thread (client mode): 0x84206140
2025-06-13 11:03:15,864 [DEBUG][       Thread-252532][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 11:03:15,884 [DEBUG][       Thread-252532][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 11:03:15,884 [ INFO][       Thread-252532][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 11:03:15,888 [DEBUG][       Thread-252532][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 11:03:15,888 [DEBUG][       Thread-252532][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 11:03:15,888 [DEBUG][       Thread-252532][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 11:03:15,888 [DEBUG][       Thread-252532][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:03:15,888 [DEBUG][       Thread-252532][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:03:15,888 [DEBUG][       Thread-252532][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:03:15,888 [DEBUG][       Thread-252532][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:03:15,888 [DEBUG][       Thread-252532][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 11:03:15,888 [DEBUG][       Thread-252532][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 11:03:15,888 [DEBUG][       Thread-252532][   transport.py][1871] : client lang: <none>
2025-06-13 11:03:15,888 [DEBUG][       Thread-252532][   transport.py][1871] : server lang: <none>
2025-06-13 11:03:15,888 [DEBUG][       Thread-252532][   transport.py][1871] : kex follows: False
2025-06-13 11:03:15,888 [DEBUG][       Thread-252532][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 11:03:15,888 [DEBUG][       Thread-252532][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 11:03:15,888 [DEBUG][       Thread-252532][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 11:03:15,888 [DEBUG][       Thread-252532][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 11:03:15,888 [DEBUG][       Thread-252532][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 11:03:15,888 [DEBUG][       Thread-252532][   transport.py][1871] : Compression: none
2025-06-13 11:03:15,888 [DEBUG][       Thread-252532][   transport.py][1871] : === End of kex handshake ===
2025-06-13 11:03:15,905 [DEBUG][       Thread-252532][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 11:03:15,906 [DEBUG][       Thread-252532][   transport.py][1871] : Switch to new keys ...
2025-06-13 11:03:15,906 [DEBUG][       Thread-252532][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 11:03:15,907 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 11:03:15,907 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 11:03:15,908 [DEBUG][       Thread-252532][   transport.py][1871] : userauth is OK
2025-06-13 11:03:15,932 [ INFO][       Thread-252532][   transport.py][1871] : Authentication (password) successful!
2025-06-13 11:03:15,933 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 11:03:16,578 [DEBUG][       Thread-252532][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 11:03:16,578 [DEBUG][       Thread-252532][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 11:03:16,621 [DEBUG][       Thread-252532][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 11:03:16,621 [DEBUG][       Thread-252532][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 11:03:16,624 [DEBUG][       Thread-252532][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 11:03:16,636 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 11:03:16,637 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 11:03:16,639 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 11:03:16,641 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 11:03:16,646 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 11:03:16,649 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 11:03:16,649 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 11:03:16,650 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 11:03:16,650 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.377023 -999.00   +9.40  24.42     53   +0.30 1 1 1 1 1   887    0 8.74 -5.38 ----- 22.9 24.4 57.6 27.8 14.1 -27.6 12.7 -29.9 11.8 -28.4 13.2 -26.4
2025-06-13 11:03:16,650 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 11:03:16,650 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 11:03:16,650 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.377023
2025-06-13 11:03:16,651 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 11:03:16,651 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 11:03:16,651 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 11:03:16,652 [DEBUG][       Thread-252532][   transport.py][1871] : EOF in transport thread
2025-06-13 11:03:16,652 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 11:03:16,652 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 11:03:16,653 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T11:02:49', tmtdew=10.13, humidity=49.31, cloud=0.0, wind=17.47, temperature=9.68, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T09:02:54.787', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 11:03:16,743 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 11:03:16,759 [DEBUG][       Thread-252535][   transport.py][1871] : starting thread (client mode): 0x867b5ae0
2025-06-13 11:03:16,759 [DEBUG][       Thread-252535][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 11:03:16,777 [DEBUG][       Thread-252535][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 11:03:16,777 [ INFO][       Thread-252535][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 11:03:16,785 [DEBUG][       Thread-252535][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 11:03:16,786 [DEBUG][       Thread-252535][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 11:03:16,786 [DEBUG][       Thread-252535][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 11:03:16,786 [DEBUG][       Thread-252535][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:03:16,786 [DEBUG][       Thread-252535][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:03:16,786 [DEBUG][       Thread-252535][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:03:16,786 [DEBUG][       Thread-252535][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:03:16,786 [DEBUG][       Thread-252535][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 11:03:16,786 [DEBUG][       Thread-252535][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 11:03:16,786 [DEBUG][       Thread-252535][   transport.py][1871] : client lang: <none>
2025-06-13 11:03:16,786 [DEBUG][       Thread-252535][   transport.py][1871] : server lang: <none>
2025-06-13 11:03:16,786 [DEBUG][       Thread-252535][   transport.py][1871] : kex follows: False
2025-06-13 11:03:16,786 [DEBUG][       Thread-252535][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 11:03:16,786 [DEBUG][       Thread-252535][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 11:03:16,786 [DEBUG][       Thread-252535][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 11:03:16,786 [DEBUG][       Thread-252535][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 11:03:16,786 [DEBUG][       Thread-252535][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 11:03:16,786 [DEBUG][       Thread-252535][   transport.py][1871] : Compression: none
2025-06-13 11:03:16,787 [DEBUG][       Thread-252535][   transport.py][1871] : === End of kex handshake ===
2025-06-13 11:03:16,842 [DEBUG][       Thread-252535][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 11:03:16,843 [DEBUG][       Thread-252535][   transport.py][1871] : Switch to new keys ...
2025-06-13 11:03:16,843 [DEBUG][       Thread-252535][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 11:03:16,843 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 11:03:16,844 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 11:03:16,899 [DEBUG][       Thread-252535][   transport.py][1871] : userauth is OK
2025-06-13 11:03:16,899 [DEBUG][       Thread-252535][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 11:03:16,899 [DEBUG][       Thread-252535][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 11:03:16,899 [DEBUG][       Thread-252535][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 11:03:16,899 [DEBUG][       Thread-252535][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 11:03:16,918 [ INFO][       Thread-252535][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 11:03:16,918 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 11:03:16,918 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 11:03:17,927 [DEBUG][       Thread-252535][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 11:03:17,927 [DEBUG][       Thread-252535][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 11:03:17,979 [DEBUG][       Thread-252535][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 11:03:17,979 [DEBUG][       Thread-252535][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 11:03:17,997 [DEBUG][       Thread-252535][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 11:03:18,011 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 11:03:18,011 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 11:03:18,022 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 11:03:18,036 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 11:03:18,037 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 11:03:18,037 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 11:03:18,050 [DEBUG][       Thread-252535][   transport.py][1871] : EOF in transport thread
2025-06-13 11:03:24,330 [DEBUG][Thread-252537 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:03:28,047 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 11:03:28,048 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 11:03:28,048 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 11:03:28,050 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 11:03:28,525 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 11, 3, 21), 10.4, 48.18, 0.0, 14.24, 9.7, 0, 0, 0, 2, 0, 0),)
2025-06-13 11:03:28,525 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 11:03:21
2025-06-13 11:03:28,605 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 11:03:28,609 [DEBUG][       Thread-252538][   transport.py][1871] : starting thread (client mode): 0x84204e20
2025-06-13 11:03:28,609 [DEBUG][       Thread-252538][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 11:03:28,629 [DEBUG][       Thread-252538][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 11:03:28,629 [ INFO][       Thread-252538][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 11:03:28,632 [DEBUG][       Thread-252538][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 11:03:28,632 [DEBUG][       Thread-252538][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 11:03:28,632 [DEBUG][       Thread-252538][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 11:03:28,632 [DEBUG][       Thread-252538][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:03:28,632 [DEBUG][       Thread-252538][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:03:28,632 [DEBUG][       Thread-252538][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:03:28,632 [DEBUG][       Thread-252538][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:03:28,632 [DEBUG][       Thread-252538][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 11:03:28,632 [DEBUG][       Thread-252538][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 11:03:28,632 [DEBUG][       Thread-252538][   transport.py][1871] : client lang: <none>
2025-06-13 11:03:28,632 [DEBUG][       Thread-252538][   transport.py][1871] : server lang: <none>
2025-06-13 11:03:28,632 [DEBUG][       Thread-252538][   transport.py][1871] : kex follows: False
2025-06-13 11:03:28,632 [DEBUG][       Thread-252538][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 11:03:28,632 [DEBUG][       Thread-252538][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 11:03:28,633 [DEBUG][       Thread-252538][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 11:03:28,633 [DEBUG][       Thread-252538][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 11:03:28,633 [DEBUG][       Thread-252538][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 11:03:28,633 [DEBUG][       Thread-252538][   transport.py][1871] : Compression: none
2025-06-13 11:03:28,633 [DEBUG][       Thread-252538][   transport.py][1871] : === End of kex handshake ===
2025-06-13 11:03:28,648 [DEBUG][       Thread-252538][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 11:03:28,649 [DEBUG][       Thread-252538][   transport.py][1871] : Switch to new keys ...
2025-06-13 11:03:28,649 [DEBUG][       Thread-252538][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 11:03:28,650 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 11:03:28,650 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 11:03:28,651 [DEBUG][       Thread-252538][   transport.py][1871] : userauth is OK
2025-06-13 11:03:28,664 [ INFO][       Thread-252538][   transport.py][1871] : Authentication (password) successful!
2025-06-13 11:03:28,664 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 11:03:29,264 [DEBUG][       Thread-252538][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 11:03:29,264 [DEBUG][       Thread-252538][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 11:03:29,305 [DEBUG][       Thread-252538][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 11:03:29,305 [DEBUG][       Thread-252538][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 11:03:29,308 [DEBUG][       Thread-252538][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 11:03:29,319 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 11:03:29,319 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 11:03:29,321 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 11:03:29,322 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 11:03:29,327 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 11:03:29,329 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 11:03:29,329 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 11:03:29,330 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 11:03:29,330 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.377023 -999.00   +9.40  24.42     53   +0.30 1 1 1 1 1   887    0 8.74 -5.38 ----- 22.9 24.4 57.6 27.8 14.1 -27.6 12.7 -29.9 11.8 -28.4 13.2 -26.4
2025-06-13 11:03:29,330 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 11:03:29,330 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 11:03:29,330 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.377023
2025-06-13 11:03:29,330 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 11:03:29,331 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 11:03:29,331 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 11:03:29,331 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 11:03:29,331 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 11:03:29,331 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T11:03:21', tmtdew=10.4, humidity=48.18, cloud=0.0, wind=14.24, temperature=9.7, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T09:02:54.787', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 11:03:29,331 [DEBUG][       Thread-252538][   transport.py][1871] : EOF in transport thread
2025-06-13 11:03:29,415 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 11:03:29,425 [DEBUG][       Thread-252541][   transport.py][1871] : starting thread (client mode): 0x863cae60
2025-06-13 11:03:29,425 [DEBUG][       Thread-252541][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 11:03:29,440 [DEBUG][       Thread-252541][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 11:03:29,441 [ INFO][       Thread-252541][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 11:03:29,448 [DEBUG][       Thread-252541][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 11:03:29,448 [DEBUG][       Thread-252541][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 11:03:29,448 [DEBUG][       Thread-252541][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 11:03:29,448 [DEBUG][       Thread-252541][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:03:29,448 [DEBUG][       Thread-252541][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:03:29,448 [DEBUG][       Thread-252541][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:03:29,448 [DEBUG][       Thread-252541][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:03:29,448 [DEBUG][       Thread-252541][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 11:03:29,448 [DEBUG][       Thread-252541][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 11:03:29,448 [DEBUG][       Thread-252541][   transport.py][1871] : client lang: <none>
2025-06-13 11:03:29,448 [DEBUG][       Thread-252541][   transport.py][1871] : server lang: <none>
2025-06-13 11:03:29,448 [DEBUG][       Thread-252541][   transport.py][1871] : kex follows: False
2025-06-13 11:03:29,449 [DEBUG][       Thread-252541][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 11:03:29,449 [DEBUG][       Thread-252541][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 11:03:29,449 [DEBUG][       Thread-252541][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 11:03:29,449 [DEBUG][       Thread-252541][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 11:03:29,449 [DEBUG][       Thread-252541][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 11:03:29,449 [DEBUG][       Thread-252541][   transport.py][1871] : Compression: none
2025-06-13 11:03:29,449 [DEBUG][       Thread-252541][   transport.py][1871] : === End of kex handshake ===
2025-06-13 11:03:29,506 [DEBUG][       Thread-252541][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 11:03:29,507 [DEBUG][       Thread-252541][   transport.py][1871] : Switch to new keys ...
2025-06-13 11:03:29,507 [DEBUG][       Thread-252541][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 11:03:29,507 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 11:03:29,508 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 11:03:29,563 [DEBUG][       Thread-252541][   transport.py][1871] : userauth is OK
2025-06-13 11:03:29,563 [DEBUG][       Thread-252541][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 11:03:29,563 [DEBUG][       Thread-252541][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 11:03:29,563 [DEBUG][       Thread-252541][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 11:03:29,563 [DEBUG][       Thread-252541][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 11:03:29,582 [ INFO][       Thread-252541][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 11:03:29,582 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 11:03:29,583 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 11:03:30,663 [DEBUG][       Thread-252541][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 11:03:30,663 [DEBUG][       Thread-252541][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 11:03:30,711 [DEBUG][       Thread-252541][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 11:03:30,712 [DEBUG][       Thread-252541][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 11:03:30,720 [DEBUG][       Thread-252541][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 11:03:30,729 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 11:03:30,729 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 11:03:30,738 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 11:03:30,746 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 11:03:30,747 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 11:03:30,747 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 11:03:30,755 [DEBUG][       Thread-252541][   transport.py][1871] : EOF in transport thread
2025-06-13 11:03:31,503 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:03:31,504 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:03:33,349 [DEBUG][Thread-252543 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:03:40,757 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 11:03:40,757 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 11:03:40,757 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 11:03:40,759 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 11:03:41,228 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 11, 3, 21), 10.4, 48.18, 0.0, 14.24, 9.7, 0, 0, 0, 2, 0, 0),)
2025-06-13 11:03:41,228 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 11:03:21
2025-06-13 11:03:41,313 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 11:03:41,319 [DEBUG][       Thread-252544][   transport.py][1871] : starting thread (client mode): 0x84207700
2025-06-13 11:03:41,319 [DEBUG][       Thread-252544][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 11:03:41,339 [DEBUG][       Thread-252544][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 11:03:41,339 [ INFO][       Thread-252544][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 11:03:41,342 [DEBUG][       Thread-252544][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 11:03:41,342 [DEBUG][       Thread-252544][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 11:03:41,342 [DEBUG][       Thread-252544][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 11:03:41,342 [DEBUG][       Thread-252544][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:03:41,342 [DEBUG][       Thread-252544][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:03:41,342 [DEBUG][       Thread-252544][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:03:41,342 [DEBUG][       Thread-252544][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:03:41,342 [DEBUG][       Thread-252544][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 11:03:41,342 [DEBUG][       Thread-252544][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 11:03:41,342 [DEBUG][       Thread-252544][   transport.py][1871] : client lang: <none>
2025-06-13 11:03:41,342 [DEBUG][       Thread-252544][   transport.py][1871] : server lang: <none>
2025-06-13 11:03:41,342 [DEBUG][       Thread-252544][   transport.py][1871] : kex follows: False
2025-06-13 11:03:41,342 [DEBUG][       Thread-252544][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 11:03:41,342 [DEBUG][       Thread-252544][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 11:03:41,342 [DEBUG][       Thread-252544][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 11:03:41,342 [DEBUG][       Thread-252544][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 11:03:41,342 [DEBUG][       Thread-252544][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 11:03:41,342 [DEBUG][       Thread-252544][   transport.py][1871] : Compression: none
2025-06-13 11:03:41,342 [DEBUG][       Thread-252544][   transport.py][1871] : === End of kex handshake ===
2025-06-13 11:03:41,357 [DEBUG][       Thread-252544][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 11:03:41,357 [DEBUG][       Thread-252544][   transport.py][1871] : Switch to new keys ...
2025-06-13 11:03:41,357 [DEBUG][       Thread-252544][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 11:03:41,357 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 11:03:41,357 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 11:03:41,358 [DEBUG][       Thread-252544][   transport.py][1871] : userauth is OK
2025-06-13 11:03:41,382 [ INFO][       Thread-252544][   transport.py][1871] : Authentication (password) successful!
2025-06-13 11:03:41,382 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 11:03:42,022 [DEBUG][       Thread-252544][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 11:03:42,022 [DEBUG][       Thread-252544][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 11:03:42,065 [DEBUG][       Thread-252544][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 11:03:42,065 [DEBUG][       Thread-252544][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 11:03:42,067 [DEBUG][       Thread-252544][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 11:03:42,080 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 11:03:42,080 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 11:03:42,081 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 11:03:42,082 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 11:03:42,085 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 11:03:42,086 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 11:03:42,086 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 11:03:42,086 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 11:03:42,086 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.377023 -999.00   +9.40  24.42     53   +0.30 1 1 1 1 1   887    0 8.74 -5.38 ----- 22.9 24.4 57.6 27.8 14.1 -27.6 12.7 -29.9 11.8 -28.4 13.2 -26.4
2025-06-13 11:03:42,086 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 11:03:42,086 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 11:03:42,086 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.377023
2025-06-13 11:03:42,086 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 11:03:42,086 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 11:03:42,086 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 11:03:42,086 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 11:03:42,086 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 11:03:42,086 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T11:03:21', tmtdew=10.4, humidity=48.18, cloud=0.0, wind=14.24, temperature=9.7, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T09:02:54.787', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 11:03:42,087 [DEBUG][       Thread-252544][   transport.py][1871] : EOF in transport thread
2025-06-13 11:03:42,161 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 11:03:42,172 [DEBUG][       Thread-252547][   transport.py][1871] : starting thread (client mode): 0x867b6320
2025-06-13 11:03:42,172 [DEBUG][       Thread-252547][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 11:03:42,188 [DEBUG][       Thread-252547][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 11:03:42,188 [ INFO][       Thread-252547][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 11:03:42,195 [DEBUG][       Thread-252547][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 11:03:42,195 [DEBUG][       Thread-252547][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 11:03:42,195 [DEBUG][       Thread-252547][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 11:03:42,195 [DEBUG][       Thread-252547][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:03:42,195 [DEBUG][       Thread-252547][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:03:42,195 [DEBUG][       Thread-252547][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:03:42,195 [DEBUG][       Thread-252547][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:03:42,195 [DEBUG][       Thread-252547][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 11:03:42,195 [DEBUG][       Thread-252547][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 11:03:42,195 [DEBUG][       Thread-252547][   transport.py][1871] : client lang: <none>
2025-06-13 11:03:42,195 [DEBUG][       Thread-252547][   transport.py][1871] : server lang: <none>
2025-06-13 11:03:42,195 [DEBUG][       Thread-252547][   transport.py][1871] : kex follows: False
2025-06-13 11:03:42,195 [DEBUG][       Thread-252547][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 11:03:42,195 [DEBUG][       Thread-252547][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 11:03:42,195 [DEBUG][       Thread-252547][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 11:03:42,195 [DEBUG][       Thread-252547][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 11:03:42,195 [DEBUG][       Thread-252547][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 11:03:42,195 [DEBUG][       Thread-252547][   transport.py][1871] : Compression: none
2025-06-13 11:03:42,195 [DEBUG][       Thread-252547][   transport.py][1871] : === End of kex handshake ===
2025-06-13 11:03:42,258 [DEBUG][       Thread-252547][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 11:03:42,259 [DEBUG][       Thread-252547][   transport.py][1871] : Switch to new keys ...
2025-06-13 11:03:42,259 [DEBUG][       Thread-252547][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 11:03:42,259 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 11:03:42,259 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 11:03:42,319 [DEBUG][       Thread-252547][   transport.py][1871] : userauth is OK
2025-06-13 11:03:42,319 [DEBUG][       Thread-252547][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 11:03:42,319 [DEBUG][       Thread-252547][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 11:03:42,319 [DEBUG][       Thread-252547][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 11:03:42,319 [DEBUG][       Thread-252547][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 11:03:42,334 [ INFO][       Thread-252547][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 11:03:42,334 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 11:03:42,334 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 11:03:42,389 [DEBUG][Thread-252549 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:03:43,386 [DEBUG][       Thread-252547][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 11:03:43,386 [DEBUG][       Thread-252547][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 11:03:43,435 [DEBUG][       Thread-252547][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 11:03:43,435 [DEBUG][       Thread-252547][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 11:03:43,444 [DEBUG][       Thread-252547][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 11:03:43,452 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 11:03:43,452 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 11:03:43,460 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 11:03:43,468 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 11:03:43,468 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 11:03:43,468 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 11:03:43,475 [DEBUG][       Thread-252547][   transport.py][1871] : EOF in transport thread
2025-06-13 11:03:51,406 [DEBUG][Thread-252550 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:03:53,414 [DEBUG][Thread-252551 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:03:53,478 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 11:03:53,478 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 11:03:53,478 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 11:03:53,478 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 11:03:53,989 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 11, 3, 21), 10.4, 48.18, 0.0, 14.24, 9.7, 0, 0, 0, 2, 0, 0),)
2025-06-13 11:03:53,989 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 11:03:21
2025-06-13 11:03:54,073 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 11:03:54,079 [DEBUG][       Thread-252552][   transport.py][1871] : starting thread (client mode): 0x84205300
2025-06-13 11:03:54,079 [DEBUG][       Thread-252552][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 11:03:54,101 [DEBUG][       Thread-252552][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 11:03:54,101 [ INFO][       Thread-252552][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 11:03:54,105 [DEBUG][       Thread-252552][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 11:03:54,105 [DEBUG][       Thread-252552][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 11:03:54,105 [DEBUG][       Thread-252552][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 11:03:54,105 [DEBUG][       Thread-252552][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:03:54,105 [DEBUG][       Thread-252552][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:03:54,105 [DEBUG][       Thread-252552][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:03:54,105 [DEBUG][       Thread-252552][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:03:54,105 [DEBUG][       Thread-252552][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 11:03:54,105 [DEBUG][       Thread-252552][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 11:03:54,105 [DEBUG][       Thread-252552][   transport.py][1871] : client lang: <none>
2025-06-13 11:03:54,105 [DEBUG][       Thread-252552][   transport.py][1871] : server lang: <none>
2025-06-13 11:03:54,105 [DEBUG][       Thread-252552][   transport.py][1871] : kex follows: False
2025-06-13 11:03:54,105 [DEBUG][       Thread-252552][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 11:03:54,105 [DEBUG][       Thread-252552][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 11:03:54,105 [DEBUG][       Thread-252552][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 11:03:54,105 [DEBUG][       Thread-252552][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 11:03:54,105 [DEBUG][       Thread-252552][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 11:03:54,105 [DEBUG][       Thread-252552][   transport.py][1871] : Compression: none
2025-06-13 11:03:54,105 [DEBUG][       Thread-252552][   transport.py][1871] : === End of kex handshake ===
2025-06-13 11:03:54,119 [DEBUG][       Thread-252552][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 11:03:54,119 [DEBUG][       Thread-252552][   transport.py][1871] : Switch to new keys ...
2025-06-13 11:03:54,119 [DEBUG][       Thread-252552][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 11:03:54,119 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 11:03:54,119 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 11:03:54,120 [DEBUG][       Thread-252552][   transport.py][1871] : userauth is OK
2025-06-13 11:03:54,133 [ INFO][       Thread-252552][   transport.py][1871] : Authentication (password) successful!
2025-06-13 11:03:54,133 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 11:03:54,466 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:03:54,466 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:03:54,780 [DEBUG][       Thread-252552][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 11:03:54,780 [DEBUG][       Thread-252552][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 11:03:54,825 [DEBUG][       Thread-252552][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 11:03:54,825 [DEBUG][       Thread-252552][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 11:03:54,827 [DEBUG][       Thread-252552][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 11:03:54,839 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 11:03:54,839 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 11:03:54,840 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 11:03:54,841 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 11:03:54,844 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 11:03:54,844 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 11:03:54,844 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 11:03:54,844 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 11:03:54,844 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.377370 -999.00   +9.40  22.03     53   +0.30 1 1 1 1 1   887    0 8.97 -3.28 ----- 19.5 22.0 43.6 26.4 14.1 -28.4 12.7 -30.0 11.9 -28.3 13.2 -26.6
2025-06-13 11:03:54,844 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 11:03:54,844 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 11:03:54,845 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.377370
2025-06-13 11:03:54,845 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 11:03:54,845 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 11:03:54,845 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 11:03:54,845 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 11:03:54,845 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 11:03:54,845 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T11:03:21', tmtdew=10.4, humidity=48.18, cloud=0.0, wind=14.24, temperature=9.7, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T09:03:24.768', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 11:03:54,845 [DEBUG][       Thread-252552][   transport.py][1871] : EOF in transport thread
2025-06-13 11:03:54,917 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 11:03:54,926 [DEBUG][       Thread-252555][   transport.py][1871] : starting thread (client mode): 0x867b6950
2025-06-13 11:03:54,926 [DEBUG][       Thread-252555][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 11:03:54,946 [DEBUG][       Thread-252555][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 11:03:54,946 [ INFO][       Thread-252555][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 11:03:54,953 [DEBUG][       Thread-252555][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 11:03:54,953 [DEBUG][       Thread-252555][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 11:03:54,954 [DEBUG][       Thread-252555][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 11:03:54,954 [DEBUG][       Thread-252555][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:03:54,954 [DEBUG][       Thread-252555][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:03:54,954 [DEBUG][       Thread-252555][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:03:54,954 [DEBUG][       Thread-252555][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:03:54,954 [DEBUG][       Thread-252555][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 11:03:54,954 [DEBUG][       Thread-252555][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 11:03:54,954 [DEBUG][       Thread-252555][   transport.py][1871] : client lang: <none>
2025-06-13 11:03:54,954 [DEBUG][       Thread-252555][   transport.py][1871] : server lang: <none>
2025-06-13 11:03:54,954 [DEBUG][       Thread-252555][   transport.py][1871] : kex follows: False
2025-06-13 11:03:54,954 [DEBUG][       Thread-252555][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 11:03:54,954 [DEBUG][       Thread-252555][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 11:03:54,954 [DEBUG][       Thread-252555][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 11:03:54,954 [DEBUG][       Thread-252555][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 11:03:54,954 [DEBUG][       Thread-252555][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 11:03:54,954 [DEBUG][       Thread-252555][   transport.py][1871] : Compression: none
2025-06-13 11:03:54,954 [DEBUG][       Thread-252555][   transport.py][1871] : === End of kex handshake ===
2025-06-13 11:03:55,015 [DEBUG][       Thread-252555][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 11:03:55,015 [DEBUG][       Thread-252555][   transport.py][1871] : Switch to new keys ...
2025-06-13 11:03:55,016 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 11:03:55,017 [DEBUG][       Thread-252555][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 11:03:55,017 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 11:03:55,071 [DEBUG][       Thread-252555][   transport.py][1871] : userauth is OK
2025-06-13 11:03:55,071 [DEBUG][       Thread-252555][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 11:03:55,071 [DEBUG][       Thread-252555][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 11:03:55,071 [DEBUG][       Thread-252555][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 11:03:55,071 [DEBUG][       Thread-252555][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 11:03:55,090 [ INFO][       Thread-252555][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 11:03:55,090 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 11:03:55,091 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 11:03:56,106 [DEBUG][       Thread-252555][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 11:03:56,106 [DEBUG][       Thread-252555][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 11:03:56,156 [DEBUG][       Thread-252555][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 11:03:56,156 [DEBUG][       Thread-252555][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 11:03:56,165 [DEBUG][       Thread-252555][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 11:03:56,174 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 11:03:56,174 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 11:03:56,185 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 11:03:56,197 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 11:03:56,197 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 11:03:56,197 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 11:03:56,205 [DEBUG][       Thread-252555][   transport.py][1871] : EOF in transport thread
2025-06-13 11:04:00,426 [DEBUG][Thread-252557 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:04:06,208 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 11:04:06,208 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 11:04:06,208 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 11:04:06,211 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 11:04:06,676 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 11, 3, 52), 10.37, 48.24, 0.0, 16.46, 9.62, 0, 0, 0, 2, 0, 0),)
2025-06-13 11:04:06,676 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 11:03:52
2025-06-13 11:04:06,755 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 11:04:06,759 [DEBUG][       Thread-252558][   transport.py][1871] : starting thread (client mode): 0x863bfbe0
2025-06-13 11:04:06,760 [DEBUG][       Thread-252558][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 11:04:06,780 [DEBUG][       Thread-252558][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 11:04:06,780 [ INFO][       Thread-252558][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 11:04:06,783 [DEBUG][       Thread-252558][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 11:04:06,783 [DEBUG][       Thread-252558][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 11:04:06,783 [DEBUG][       Thread-252558][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 11:04:06,783 [DEBUG][       Thread-252558][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:04:06,783 [DEBUG][       Thread-252558][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:04:06,783 [DEBUG][       Thread-252558][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:04:06,783 [DEBUG][       Thread-252558][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:04:06,783 [DEBUG][       Thread-252558][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 11:04:06,783 [DEBUG][       Thread-252558][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 11:04:06,783 [DEBUG][       Thread-252558][   transport.py][1871] : client lang: <none>
2025-06-13 11:04:06,783 [DEBUG][       Thread-252558][   transport.py][1871] : server lang: <none>
2025-06-13 11:04:06,783 [DEBUG][       Thread-252558][   transport.py][1871] : kex follows: False
2025-06-13 11:04:06,783 [DEBUG][       Thread-252558][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 11:04:06,783 [DEBUG][       Thread-252558][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 11:04:06,783 [DEBUG][       Thread-252558][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 11:04:06,783 [DEBUG][       Thread-252558][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 11:04:06,783 [DEBUG][       Thread-252558][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 11:04:06,783 [DEBUG][       Thread-252558][   transport.py][1871] : Compression: none
2025-06-13 11:04:06,783 [DEBUG][       Thread-252558][   transport.py][1871] : === End of kex handshake ===
2025-06-13 11:04:06,800 [DEBUG][       Thread-252558][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 11:04:06,801 [DEBUG][       Thread-252558][   transport.py][1871] : Switch to new keys ...
2025-06-13 11:04:06,801 [DEBUG][       Thread-252558][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 11:04:06,801 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 11:04:06,802 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 11:04:06,803 [DEBUG][       Thread-252558][   transport.py][1871] : userauth is OK
2025-06-13 11:04:06,815 [ INFO][       Thread-252558][   transport.py][1871] : Authentication (password) successful!
2025-06-13 11:04:06,816 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 11:04:07,391 [DEBUG][       Thread-252558][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 11:04:07,391 [DEBUG][       Thread-252558][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 11:04:07,433 [DEBUG][       Thread-252558][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 11:04:07,433 [DEBUG][       Thread-252558][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 11:04:07,436 [DEBUG][       Thread-252558][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 11:04:07,449 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 11:04:07,449 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 11:04:07,451 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 11:04:07,453 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 11:04:07,457 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 11:04:07,459 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 11:04:07,459 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 11:04:07,459 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 11:04:07,460 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.377370 -999.00   +9.40  22.03     53   +0.30 1 1 1 1 1   887    0 8.97 -3.28 ----- 19.5 22.0 43.6 26.4 14.1 -28.4 12.7 -30.0 11.9 -28.3 13.2 -26.6
2025-06-13 11:04:07,460 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 11:04:07,460 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 11:04:07,460 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.377370
2025-06-13 11:04:07,460 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 11:04:07,461 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 11:04:07,461 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 11:04:07,461 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 11:04:07,461 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 11:04:07,461 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T11:03:52', tmtdew=10.37, humidity=48.24, cloud=0.0, wind=16.46, temperature=9.62, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T09:03:24.768', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 11:04:07,461 [DEBUG][       Thread-252558][   transport.py][1871] : EOF in transport thread
2025-06-13 11:04:07,545 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 11:04:07,556 [DEBUG][       Thread-252561][   transport.py][1871] : starting thread (client mode): 0x867fee60
2025-06-13 11:04:07,556 [DEBUG][       Thread-252561][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 11:04:07,575 [DEBUG][       Thread-252561][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 11:04:07,575 [ INFO][       Thread-252561][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 11:04:07,584 [DEBUG][       Thread-252561][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 11:04:07,584 [DEBUG][       Thread-252561][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 11:04:07,584 [DEBUG][       Thread-252561][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 11:04:07,584 [DEBUG][       Thread-252561][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:04:07,584 [DEBUG][       Thread-252561][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:04:07,584 [DEBUG][       Thread-252561][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:04:07,584 [DEBUG][       Thread-252561][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:04:07,584 [DEBUG][       Thread-252561][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 11:04:07,584 [DEBUG][       Thread-252561][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 11:04:07,584 [DEBUG][       Thread-252561][   transport.py][1871] : client lang: <none>
2025-06-13 11:04:07,584 [DEBUG][       Thread-252561][   transport.py][1871] : server lang: <none>
2025-06-13 11:04:07,584 [DEBUG][       Thread-252561][   transport.py][1871] : kex follows: False
2025-06-13 11:04:07,584 [DEBUG][       Thread-252561][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 11:04:07,584 [DEBUG][       Thread-252561][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 11:04:07,585 [DEBUG][       Thread-252561][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 11:04:07,585 [DEBUG][       Thread-252561][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 11:04:07,585 [DEBUG][       Thread-252561][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 11:04:07,585 [DEBUG][       Thread-252561][   transport.py][1871] : Compression: none
2025-06-13 11:04:07,585 [DEBUG][       Thread-252561][   transport.py][1871] : === End of kex handshake ===
2025-06-13 11:04:07,649 [DEBUG][       Thread-252561][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 11:04:07,649 [DEBUG][       Thread-252561][   transport.py][1871] : Switch to new keys ...
2025-06-13 11:04:07,650 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 11:04:07,650 [DEBUG][       Thread-252561][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 11:04:07,651 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 11:04:07,714 [DEBUG][       Thread-252561][   transport.py][1871] : userauth is OK
2025-06-13 11:04:07,714 [DEBUG][       Thread-252561][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 11:04:07,714 [DEBUG][       Thread-252561][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 11:04:07,714 [DEBUG][       Thread-252561][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 11:04:07,714 [DEBUG][       Thread-252561][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 11:04:07,738 [ INFO][       Thread-252561][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 11:04:07,738 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 11:04:07,738 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 11:04:08,035 [DEBUG][Thread-252563 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:04:08,779 [DEBUG][       Thread-252561][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 11:04:08,779 [DEBUG][       Thread-252561][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 11:04:08,828 [DEBUG][       Thread-252561][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 11:04:08,829 [DEBUG][       Thread-252561][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 11:04:08,837 [DEBUG][       Thread-252561][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 11:04:08,850 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 11:04:08,850 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 11:04:08,858 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 11:04:08,867 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 11:04:08,867 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 11:04:08,868 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 11:04:08,875 [DEBUG][       Thread-252561][   transport.py][1871] : EOF in transport thread
2025-06-13 11:04:09,446 [DEBUG][Thread-252564 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:04:18,477 [DEBUG][Thread-252565 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:04:18,878 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 11:04:18,878 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 11:04:18,878 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 11:04:18,879 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 11:04:19,377 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 11, 3, 52), 10.37, 48.24, 0.0, 16.46, 9.62, 0, 0, 0, 2, 0, 0),)
2025-06-13 11:04:19,377 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 11:03:52
2025-06-13 11:04:19,459 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 11:04:19,466 [DEBUG][       Thread-252566][   transport.py][1871] : starting thread (client mode): 0x863be890
2025-06-13 11:04:19,466 [DEBUG][       Thread-252566][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 11:04:19,482 [DEBUG][       Thread-252566][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 11:04:19,482 [ INFO][       Thread-252566][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 11:04:19,486 [DEBUG][       Thread-252566][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 11:04:19,486 [DEBUG][       Thread-252566][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 11:04:19,486 [DEBUG][       Thread-252566][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 11:04:19,486 [DEBUG][       Thread-252566][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:04:19,486 [DEBUG][       Thread-252566][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:04:19,486 [DEBUG][       Thread-252566][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:04:19,486 [DEBUG][       Thread-252566][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:04:19,486 [DEBUG][       Thread-252566][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 11:04:19,486 [DEBUG][       Thread-252566][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 11:04:19,486 [DEBUG][       Thread-252566][   transport.py][1871] : client lang: <none>
2025-06-13 11:04:19,486 [DEBUG][       Thread-252566][   transport.py][1871] : server lang: <none>
2025-06-13 11:04:19,486 [DEBUG][       Thread-252566][   transport.py][1871] : kex follows: False
2025-06-13 11:04:19,486 [DEBUG][       Thread-252566][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 11:04:19,486 [DEBUG][       Thread-252566][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 11:04:19,486 [DEBUG][       Thread-252566][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 11:04:19,486 [DEBUG][       Thread-252566][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 11:04:19,486 [DEBUG][       Thread-252566][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 11:04:19,486 [DEBUG][       Thread-252566][   transport.py][1871] : Compression: none
2025-06-13 11:04:19,486 [DEBUG][       Thread-252566][   transport.py][1871] : === End of kex handshake ===
2025-06-13 11:04:19,496 [DEBUG][       Thread-252566][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 11:04:19,497 [DEBUG][       Thread-252566][   transport.py][1871] : Switch to new keys ...
2025-06-13 11:04:19,497 [DEBUG][       Thread-252566][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 11:04:19,497 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 11:04:19,497 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 11:04:19,497 [DEBUG][       Thread-252566][   transport.py][1871] : userauth is OK
2025-06-13 11:04:19,525 [ INFO][       Thread-252566][   transport.py][1871] : Authentication (password) successful!
2025-06-13 11:04:19,525 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 11:04:20,111 [DEBUG][       Thread-252566][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 11:04:20,111 [DEBUG][       Thread-252566][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 11:04:20,152 [DEBUG][       Thread-252566][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 11:04:20,152 [DEBUG][       Thread-252566][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 11:04:20,154 [DEBUG][       Thread-252566][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 11:04:20,167 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 11:04:20,167 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 11:04:20,168 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 11:04:20,169 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 11:04:20,171 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 11:04:20,172 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 11:04:20,172 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 11:04:20,172 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 11:04:20,172 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.377370 -999.00   +9.40  22.03     53   +0.30 1 1 1 1 1   887    0 8.97 -3.28 ----- 19.5 22.0 43.6 26.4 14.1 -28.4 12.7 -30.0 11.9 -28.3 13.2 -26.6
2025-06-13 11:04:20,172 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 11:04:20,172 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 11:04:20,172 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.377370
2025-06-13 11:04:20,172 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 11:04:20,173 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 11:04:20,173 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 11:04:20,173 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 11:04:20,173 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 11:04:20,173 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T11:03:52', tmtdew=10.37, humidity=48.24, cloud=0.0, wind=16.46, temperature=9.62, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T09:03:24.768', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 11:04:20,173 [DEBUG][       Thread-252566][   transport.py][1871] : EOF in transport thread
2025-06-13 11:04:20,245 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 11:04:20,255 [DEBUG][       Thread-252569][   transport.py][1871] : starting thread (client mode): 0x863c82b0
2025-06-13 11:04:20,255 [DEBUG][       Thread-252569][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 11:04:20,270 [DEBUG][       Thread-252569][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 11:04:20,270 [ INFO][       Thread-252569][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 11:04:20,277 [DEBUG][       Thread-252569][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 11:04:20,277 [DEBUG][       Thread-252569][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 11:04:20,277 [DEBUG][       Thread-252569][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 11:04:20,277 [DEBUG][       Thread-252569][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:04:20,277 [DEBUG][       Thread-252569][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:04:20,277 [DEBUG][       Thread-252569][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:04:20,277 [DEBUG][       Thread-252569][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:04:20,277 [DEBUG][       Thread-252569][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 11:04:20,277 [DEBUG][       Thread-252569][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 11:04:20,277 [DEBUG][       Thread-252569][   transport.py][1871] : client lang: <none>
2025-06-13 11:04:20,277 [DEBUG][       Thread-252569][   transport.py][1871] : server lang: <none>
2025-06-13 11:04:20,277 [DEBUG][       Thread-252569][   transport.py][1871] : kex follows: False
2025-06-13 11:04:20,277 [DEBUG][       Thread-252569][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 11:04:20,277 [DEBUG][       Thread-252569][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 11:04:20,277 [DEBUG][       Thread-252569][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 11:04:20,277 [DEBUG][       Thread-252569][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 11:04:20,277 [DEBUG][       Thread-252569][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 11:04:20,277 [DEBUG][       Thread-252569][   transport.py][1871] : Compression: none
2025-06-13 11:04:20,278 [DEBUG][       Thread-252569][   transport.py][1871] : === End of kex handshake ===
2025-06-13 11:04:20,333 [DEBUG][       Thread-252569][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 11:04:20,333 [DEBUG][       Thread-252569][   transport.py][1871] : Switch to new keys ...
2025-06-13 11:04:20,333 [DEBUG][       Thread-252569][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 11:04:20,333 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 11:04:20,333 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 11:04:20,390 [DEBUG][       Thread-252569][   transport.py][1871] : userauth is OK
2025-06-13 11:04:20,391 [DEBUG][       Thread-252569][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 11:04:20,391 [DEBUG][       Thread-252569][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 11:04:20,391 [DEBUG][       Thread-252569][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 11:04:20,391 [DEBUG][       Thread-252569][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 11:04:20,405 [ INFO][       Thread-252569][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 11:04:20,405 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 11:04:20,405 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 11:04:21,440 [DEBUG][       Thread-252569][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 11:04:21,440 [DEBUG][       Thread-252569][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 11:04:21,495 [DEBUG][       Thread-252569][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 11:04:21,495 [DEBUG][       Thread-252569][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 11:04:21,504 [DEBUG][       Thread-252569][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 11:04:21,513 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 11:04:21,513 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 11:04:21,521 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 11:04:21,530 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 11:04:21,530 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 11:04:21,530 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 11:04:21,538 [DEBUG][       Thread-252569][   transport.py][1871] : EOF in transport thread
2025-06-13 11:04:27,497 [DEBUG][Thread-252571 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:04:31,540 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 11:04:31,541 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 11:04:31,541 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 11:04:31,543 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 11:04:31,654 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:04:31,655 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:04:32,007 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 11, 4, 24), 10.29, 48.66, 0.0, 18.33, 9.62, 0, 0, 0, 2, 0, 0),)
2025-06-13 11:04:32,007 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 11:04:24
2025-06-13 11:04:32,086 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 11:04:32,091 [DEBUG][       Thread-252572][   transport.py][1871] : starting thread (client mode): 0x84207eb0
2025-06-13 11:04:32,091 [DEBUG][       Thread-252572][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 11:04:32,112 [DEBUG][       Thread-252572][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 11:04:32,112 [ INFO][       Thread-252572][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 11:04:32,114 [DEBUG][       Thread-252572][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 11:04:32,114 [DEBUG][       Thread-252572][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 11:04:32,114 [DEBUG][       Thread-252572][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 11:04:32,114 [DEBUG][       Thread-252572][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:04:32,114 [DEBUG][       Thread-252572][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:04:32,114 [DEBUG][       Thread-252572][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:04:32,114 [DEBUG][       Thread-252572][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:04:32,114 [DEBUG][       Thread-252572][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 11:04:32,114 [DEBUG][       Thread-252572][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 11:04:32,114 [DEBUG][       Thread-252572][   transport.py][1871] : client lang: <none>
2025-06-13 11:04:32,114 [DEBUG][       Thread-252572][   transport.py][1871] : server lang: <none>
2025-06-13 11:04:32,114 [DEBUG][       Thread-252572][   transport.py][1871] : kex follows: False
2025-06-13 11:04:32,114 [DEBUG][       Thread-252572][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 11:04:32,114 [DEBUG][       Thread-252572][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 11:04:32,114 [DEBUG][       Thread-252572][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 11:04:32,114 [DEBUG][       Thread-252572][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 11:04:32,114 [DEBUG][       Thread-252572][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 11:04:32,114 [DEBUG][       Thread-252572][   transport.py][1871] : Compression: none
2025-06-13 11:04:32,114 [DEBUG][       Thread-252572][   transport.py][1871] : === End of kex handshake ===
2025-06-13 11:04:32,125 [DEBUG][       Thread-252572][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 11:04:32,126 [DEBUG][       Thread-252572][   transport.py][1871] : Switch to new keys ...
2025-06-13 11:04:32,126 [DEBUG][       Thread-252572][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 11:04:32,126 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 11:04:32,127 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 11:04:32,128 [DEBUG][       Thread-252572][   transport.py][1871] : userauth is OK
2025-06-13 11:04:32,153 [ INFO][       Thread-252572][   transport.py][1871] : Authentication (password) successful!
2025-06-13 11:04:32,154 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 11:04:32,765 [DEBUG][       Thread-252572][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 11:04:32,765 [DEBUG][       Thread-252572][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 11:04:32,809 [DEBUG][       Thread-252572][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 11:04:32,809 [DEBUG][       Thread-252572][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 11:04:32,812 [DEBUG][       Thread-252572][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 11:04:32,824 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 11:04:32,825 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 11:04:32,826 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 11:04:32,828 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 11:04:32,834 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 11:04:32,837 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 11:04:32,837 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 11:04:32,838 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 11:04:32,838 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.377717 -999.00   +9.50  24.52     53   +0.50 1 1 1 1 1   887    0 9.03 -1.23 ----- 25.6 24.5 52.4 26.7 14.1 -28.4 12.8 -29.3 11.9 -28.1 13.2 -26.2
2025-06-13 11:04:32,838 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 11:04:32,838 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 11:04:32,838 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.377717
2025-06-13 11:04:32,838 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 11:04:32,839 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 11:04:32,839 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 11:04:32,839 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 11:04:32,839 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 11:04:32,839 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T11:04:24', tmtdew=10.29, humidity=48.66, cloud=0.0, wind=18.33, temperature=9.62, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T09:03:54.749', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 11:04:32,840 [DEBUG][       Thread-252572][   transport.py][1871] : EOF in transport thread
2025-06-13 11:04:32,924 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 11:04:32,935 [DEBUG][       Thread-252575][   transport.py][1871] : starting thread (client mode): 0x863bea10
2025-06-13 11:04:32,935 [DEBUG][       Thread-252575][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 11:04:32,950 [DEBUG][       Thread-252575][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 11:04:32,950 [ INFO][       Thread-252575][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 11:04:32,959 [DEBUG][       Thread-252575][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 11:04:32,959 [DEBUG][       Thread-252575][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 11:04:32,959 [DEBUG][       Thread-252575][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 11:04:32,959 [DEBUG][       Thread-252575][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:04:32,959 [DEBUG][       Thread-252575][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:04:32,959 [DEBUG][       Thread-252575][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:04:32,959 [DEBUG][       Thread-252575][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:04:32,959 [DEBUG][       Thread-252575][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 11:04:32,959 [DEBUG][       Thread-252575][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 11:04:32,959 [DEBUG][       Thread-252575][   transport.py][1871] : client lang: <none>
2025-06-13 11:04:32,959 [DEBUG][       Thread-252575][   transport.py][1871] : server lang: <none>
2025-06-13 11:04:32,959 [DEBUG][       Thread-252575][   transport.py][1871] : kex follows: False
2025-06-13 11:04:32,960 [DEBUG][       Thread-252575][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 11:04:32,960 [DEBUG][       Thread-252575][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 11:04:32,960 [DEBUG][       Thread-252575][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 11:04:32,960 [DEBUG][       Thread-252575][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 11:04:32,960 [DEBUG][       Thread-252575][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 11:04:32,960 [DEBUG][       Thread-252575][   transport.py][1871] : Compression: none
2025-06-13 11:04:32,960 [DEBUG][       Thread-252575][   transport.py][1871] : === End of kex handshake ===
2025-06-13 11:04:33,016 [DEBUG][       Thread-252575][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 11:04:33,017 [DEBUG][       Thread-252575][   transport.py][1871] : Switch to new keys ...
2025-06-13 11:04:33,017 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 11:04:33,018 [DEBUG][       Thread-252575][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 11:04:33,018 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 11:04:33,075 [DEBUG][       Thread-252575][   transport.py][1871] : userauth is OK
2025-06-13 11:04:33,076 [DEBUG][       Thread-252575][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 11:04:33,076 [DEBUG][       Thread-252575][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 11:04:33,076 [DEBUG][       Thread-252575][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 11:04:33,076 [DEBUG][       Thread-252575][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 11:04:33,096 [ INFO][       Thread-252575][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 11:04:33,096 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 11:04:33,097 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 11:04:34,169 [DEBUG][       Thread-252575][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 11:04:34,169 [DEBUG][       Thread-252575][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 11:04:34,220 [DEBUG][       Thread-252575][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 11:04:34,220 [DEBUG][       Thread-252575][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 11:04:34,229 [DEBUG][       Thread-252575][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 11:04:34,239 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 11:04:34,239 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 11:04:34,249 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 11:04:34,258 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 11:04:34,259 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 11:04:34,259 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 11:04:34,267 [DEBUG][       Thread-252575][   transport.py][1871] : EOF in transport thread
2025-06-13 11:04:36,518 [DEBUG][Thread-252577 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:04:44,264 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 11:04:44,264 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 11:04:44,264 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 11:04:44,267 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 11:04:44,731 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 11, 4, 24), 10.29, 48.66, 0.0, 18.33, 9.62, 0, 0, 0, 2, 0, 0),)
2025-06-13 11:04:44,732 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 11:04:24
2025-06-13 11:04:44,810 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 11:04:44,817 [DEBUG][       Thread-252578][   transport.py][1871] : starting thread (client mode): 0x867b49a0
2025-06-13 11:04:44,817 [DEBUG][       Thread-252578][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 11:04:44,837 [DEBUG][       Thread-252578][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 11:04:44,837 [ INFO][       Thread-252578][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 11:04:44,840 [DEBUG][       Thread-252578][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 11:04:44,840 [DEBUG][       Thread-252578][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 11:04:44,840 [DEBUG][       Thread-252578][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 11:04:44,840 [DEBUG][       Thread-252578][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:04:44,840 [DEBUG][       Thread-252578][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:04:44,840 [DEBUG][       Thread-252578][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:04:44,840 [DEBUG][       Thread-252578][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:04:44,841 [DEBUG][       Thread-252578][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 11:04:44,841 [DEBUG][       Thread-252578][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 11:04:44,841 [DEBUG][       Thread-252578][   transport.py][1871] : client lang: <none>
2025-06-13 11:04:44,841 [DEBUG][       Thread-252578][   transport.py][1871] : server lang: <none>
2025-06-13 11:04:44,841 [DEBUG][       Thread-252578][   transport.py][1871] : kex follows: False
2025-06-13 11:04:44,841 [DEBUG][       Thread-252578][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 11:04:44,841 [DEBUG][       Thread-252578][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 11:04:44,841 [DEBUG][       Thread-252578][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 11:04:44,841 [DEBUG][       Thread-252578][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 11:04:44,841 [DEBUG][       Thread-252578][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 11:04:44,841 [DEBUG][       Thread-252578][   transport.py][1871] : Compression: none
2025-06-13 11:04:44,841 [DEBUG][       Thread-252578][   transport.py][1871] : === End of kex handshake ===
2025-06-13 11:04:44,858 [DEBUG][       Thread-252578][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 11:04:44,859 [DEBUG][       Thread-252578][   transport.py][1871] : Switch to new keys ...
2025-06-13 11:04:44,859 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 11:04:44,859 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 11:04:44,860 [DEBUG][       Thread-252578][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 11:04:44,860 [DEBUG][       Thread-252578][   transport.py][1871] : userauth is OK
2025-06-13 11:04:44,885 [ INFO][       Thread-252578][   transport.py][1871] : Authentication (password) successful!
2025-06-13 11:04:44,885 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 11:04:45,544 [DEBUG][       Thread-252578][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 11:04:45,544 [DEBUG][       Thread-252578][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 11:04:45,556 [DEBUG][Thread-252580 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:04:45,585 [DEBUG][       Thread-252578][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 11:04:45,585 [DEBUG][       Thread-252578][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 11:04:45,588 [DEBUG][       Thread-252578][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 11:04:45,599 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 11:04:45,599 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 11:04:45,601 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 11:04:45,603 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 11:04:45,609 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 11:04:45,610 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 11:04:45,611 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 11:04:45,611 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 11:04:45,611 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.377717 -999.00   +9.50  24.52     53   +0.50 1 1 1 1 1   887    0 9.03 -1.23 ----- 25.6 24.5 52.4 26.7 14.1 -28.4 12.8 -29.3 11.9 -28.1 13.2 -26.2
2025-06-13 11:04:45,611 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 11:04:45,611 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 11:04:45,611 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.377717
2025-06-13 11:04:45,612 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 11:04:45,612 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 11:04:45,613 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 11:04:45,613 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 11:04:45,613 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 11:04:45,613 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T11:04:24', tmtdew=10.29, humidity=48.66, cloud=0.0, wind=18.33, temperature=9.62, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T09:03:54.749', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 11:04:45,614 [DEBUG][       Thread-252578][   transport.py][1871] : EOF in transport thread
2025-06-13 11:04:45,696 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 11:04:45,711 [DEBUG][       Thread-252582][   transport.py][1871] : starting thread (client mode): 0x84204a90
2025-06-13 11:04:45,711 [DEBUG][       Thread-252582][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 11:04:45,726 [DEBUG][       Thread-252582][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 11:04:45,726 [ INFO][       Thread-252582][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 11:04:45,733 [DEBUG][       Thread-252582][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 11:04:45,734 [DEBUG][       Thread-252582][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 11:04:45,734 [DEBUG][       Thread-252582][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 11:04:45,734 [DEBUG][       Thread-252582][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:04:45,734 [DEBUG][       Thread-252582][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:04:45,734 [DEBUG][       Thread-252582][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:04:45,734 [DEBUG][       Thread-252582][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:04:45,734 [DEBUG][       Thread-252582][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 11:04:45,734 [DEBUG][       Thread-252582][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 11:04:45,734 [DEBUG][       Thread-252582][   transport.py][1871] : client lang: <none>
2025-06-13 11:04:45,734 [DEBUG][       Thread-252582][   transport.py][1871] : server lang: <none>
2025-06-13 11:04:45,734 [DEBUG][       Thread-252582][   transport.py][1871] : kex follows: False
2025-06-13 11:04:45,734 [DEBUG][       Thread-252582][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 11:04:45,734 [DEBUG][       Thread-252582][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 11:04:45,734 [DEBUG][       Thread-252582][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 11:04:45,734 [DEBUG][       Thread-252582][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 11:04:45,734 [DEBUG][       Thread-252582][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 11:04:45,734 [DEBUG][       Thread-252582][   transport.py][1871] : Compression: none
2025-06-13 11:04:45,735 [DEBUG][       Thread-252582][   transport.py][1871] : === End of kex handshake ===
2025-06-13 11:04:45,791 [DEBUG][       Thread-252582][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 11:04:45,792 [DEBUG][       Thread-252582][   transport.py][1871] : Switch to new keys ...
2025-06-13 11:04:45,792 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 11:04:45,793 [DEBUG][       Thread-252582][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 11:04:45,793 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 11:04:45,847 [DEBUG][       Thread-252582][   transport.py][1871] : userauth is OK
2025-06-13 11:04:45,847 [DEBUG][       Thread-252582][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 11:04:45,847 [DEBUG][       Thread-252582][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 11:04:45,848 [DEBUG][       Thread-252582][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 11:04:45,848 [DEBUG][       Thread-252582][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 11:04:45,873 [ INFO][       Thread-252582][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 11:04:45,873 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 11:04:45,874 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 11:04:46,919 [DEBUG][       Thread-252582][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 11:04:46,920 [DEBUG][       Thread-252582][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 11:04:46,968 [DEBUG][       Thread-252582][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 11:04:46,968 [DEBUG][       Thread-252582][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 11:04:46,977 [DEBUG][       Thread-252582][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 11:04:46,986 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 11:04:46,986 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 11:04:46,994 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 11:04:47,003 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 11:04:47,004 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 11:04:47,004 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 11:04:47,012 [DEBUG][       Thread-252582][   transport.py][1871] : EOF in transport thread
2025-06-13 11:04:54,515 [DEBUG][Thread-252584 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:04:54,576 [DEBUG][Thread-252585 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:04:55,588 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:04:55,589 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:04:57,012 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 11:04:57,012 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 11:04:57,012 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 11:04:57,013 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 11:04:57,504 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 11, 4, 24), 10.29, 48.66, 0.0, 18.33, 9.62, 0, 0, 0, 2, 0, 0),)
2025-06-13 11:04:57,504 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 11:04:24
2025-06-13 11:04:57,589 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 11:04:57,592 [DEBUG][       Thread-252586][   transport.py][1871] : starting thread (client mode): 0x842069e0
2025-06-13 11:04:57,592 [DEBUG][       Thread-252586][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 11:04:57,612 [DEBUG][       Thread-252586][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 11:04:57,612 [ INFO][       Thread-252586][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 11:04:57,615 [DEBUG][       Thread-252586][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 11:04:57,615 [DEBUG][       Thread-252586][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 11:04:57,615 [DEBUG][       Thread-252586][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 11:04:57,615 [DEBUG][       Thread-252586][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:04:57,615 [DEBUG][       Thread-252586][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:04:57,615 [DEBUG][       Thread-252586][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:04:57,615 [DEBUG][       Thread-252586][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:04:57,615 [DEBUG][       Thread-252586][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 11:04:57,615 [DEBUG][       Thread-252586][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 11:04:57,615 [DEBUG][       Thread-252586][   transport.py][1871] : client lang: <none>
2025-06-13 11:04:57,615 [DEBUG][       Thread-252586][   transport.py][1871] : server lang: <none>
2025-06-13 11:04:57,615 [DEBUG][       Thread-252586][   transport.py][1871] : kex follows: False
2025-06-13 11:04:57,615 [DEBUG][       Thread-252586][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 11:04:57,615 [DEBUG][       Thread-252586][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 11:04:57,615 [DEBUG][       Thread-252586][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 11:04:57,615 [DEBUG][       Thread-252586][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 11:04:57,615 [DEBUG][       Thread-252586][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 11:04:57,616 [DEBUG][       Thread-252586][   transport.py][1871] : Compression: none
2025-06-13 11:04:57,616 [DEBUG][       Thread-252586][   transport.py][1871] : === End of kex handshake ===
2025-06-13 11:04:57,632 [DEBUG][       Thread-252586][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 11:04:57,632 [DEBUG][       Thread-252586][   transport.py][1871] : Switch to new keys ...
2025-06-13 11:04:57,632 [DEBUG][       Thread-252586][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 11:04:57,632 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 11:04:57,632 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 11:04:57,633 [DEBUG][       Thread-252586][   transport.py][1871] : userauth is OK
2025-06-13 11:04:57,657 [ INFO][       Thread-252586][   transport.py][1871] : Authentication (password) successful!
2025-06-13 11:04:57,657 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 11:04:58,239 [DEBUG][       Thread-252586][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 11:04:58,239 [DEBUG][       Thread-252586][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 11:04:58,281 [DEBUG][       Thread-252586][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 11:04:58,281 [DEBUG][       Thread-252586][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 11:04:58,283 [DEBUG][       Thread-252586][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 11:04:58,295 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 11:04:58,295 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 11:04:58,296 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 11:04:58,297 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 11:04:58,300 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 11:04:58,301 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 11:04:58,301 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 11:04:58,301 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 11:04:58,301 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.378064 -999.00   +9.50  24.03     53   +0.50 1 1 1 1 1   887    0 8.82 0.20 ----- 22.2 24.0 52.2 27.7 14.1 -28.2 12.7 -29.8 11.9 -28.8 13.2 -26.4
2025-06-13 11:04:58,301 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 11:04:58,301 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 11:04:58,301 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.378064
2025-06-13 11:04:58,301 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 11:04:58,302 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 11:04:58,302 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 11:04:58,302 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 11:04:58,302 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 11:04:58,302 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T11:04:24', tmtdew=10.29, humidity=48.66, cloud=0.0, wind=18.33, temperature=9.62, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T09:04:24.730', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 11:04:58,303 [DEBUG][       Thread-252586][   transport.py][1871] : EOF in transport thread
2025-06-13 11:04:58,376 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 11:04:58,393 [DEBUG][       Thread-252589][   transport.py][1871] : starting thread (client mode): 0x863bf400
2025-06-13 11:04:58,393 [DEBUG][       Thread-252589][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 11:04:58,408 [DEBUG][       Thread-252589][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 11:04:58,408 [ INFO][       Thread-252589][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 11:04:58,416 [DEBUG][       Thread-252589][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 11:04:58,416 [DEBUG][       Thread-252589][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 11:04:58,416 [DEBUG][       Thread-252589][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 11:04:58,416 [DEBUG][       Thread-252589][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:04:58,416 [DEBUG][       Thread-252589][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:04:58,416 [DEBUG][       Thread-252589][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:04:58,416 [DEBUG][       Thread-252589][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:04:58,416 [DEBUG][       Thread-252589][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 11:04:58,416 [DEBUG][       Thread-252589][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 11:04:58,416 [DEBUG][       Thread-252589][   transport.py][1871] : client lang: <none>
2025-06-13 11:04:58,416 [DEBUG][       Thread-252589][   transport.py][1871] : server lang: <none>
2025-06-13 11:04:58,416 [DEBUG][       Thread-252589][   transport.py][1871] : kex follows: False
2025-06-13 11:04:58,416 [DEBUG][       Thread-252589][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 11:04:58,416 [DEBUG][       Thread-252589][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 11:04:58,416 [DEBUG][       Thread-252589][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 11:04:58,416 [DEBUG][       Thread-252589][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 11:04:58,416 [DEBUG][       Thread-252589][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 11:04:58,416 [DEBUG][       Thread-252589][   transport.py][1871] : Compression: none
2025-06-13 11:04:58,416 [DEBUG][       Thread-252589][   transport.py][1871] : === End of kex handshake ===
2025-06-13 11:04:58,475 [DEBUG][       Thread-252589][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 11:04:58,475 [DEBUG][       Thread-252589][   transport.py][1871] : Switch to new keys ...
2025-06-13 11:04:58,476 [DEBUG][       Thread-252589][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 11:04:58,476 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 11:04:58,476 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 11:04:58,535 [DEBUG][       Thread-252589][   transport.py][1871] : userauth is OK
2025-06-13 11:04:58,535 [DEBUG][       Thread-252589][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 11:04:58,535 [DEBUG][       Thread-252589][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 11:04:58,535 [DEBUG][       Thread-252589][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 11:04:58,535 [DEBUG][       Thread-252589][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 11:04:58,549 [ INFO][       Thread-252589][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 11:04:58,549 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 11:04:58,549 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 11:04:59,607 [DEBUG][       Thread-252589][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 11:04:59,607 [DEBUG][       Thread-252589][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 11:04:59,657 [DEBUG][       Thread-252589][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 11:04:59,657 [DEBUG][       Thread-252589][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 11:04:59,667 [DEBUG][       Thread-252589][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 11:04:59,679 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 11:04:59,679 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 11:04:59,692 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 11:04:59,700 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 11:04:59,700 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 11:04:59,700 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 11:04:59,708 [DEBUG][       Thread-252589][   transport.py][1871] : EOF in transport thread
2025-06-13 11:05:03,595 [DEBUG][Thread-252591 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:05:08,085 [DEBUG][Thread-252592 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:05:09,710 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 11:05:09,711 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 11:05:09,711 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 11:05:09,714 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 11:05:10,185 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 11, 4, 56), 10.23, 48.85, 0.0, 17.26, 9.68, 0, 0, 0, 2, 0, 0),)
2025-06-13 11:05:10,185 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 11:04:56
2025-06-13 11:05:10,266 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 11:05:10,272 [DEBUG][       Thread-252593][   transport.py][1871] : starting thread (client mode): 0x84207730
2025-06-13 11:05:10,272 [DEBUG][       Thread-252593][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 11:05:10,287 [DEBUG][       Thread-252593][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 11:05:10,287 [ INFO][       Thread-252593][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 11:05:10,290 [DEBUG][       Thread-252593][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 11:05:10,290 [DEBUG][       Thread-252593][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 11:05:10,290 [DEBUG][       Thread-252593][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 11:05:10,290 [DEBUG][       Thread-252593][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:05:10,290 [DEBUG][       Thread-252593][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:05:10,290 [DEBUG][       Thread-252593][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:05:10,290 [DEBUG][       Thread-252593][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:05:10,290 [DEBUG][       Thread-252593][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 11:05:10,290 [DEBUG][       Thread-252593][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 11:05:10,290 [DEBUG][       Thread-252593][   transport.py][1871] : client lang: <none>
2025-06-13 11:05:10,290 [DEBUG][       Thread-252593][   transport.py][1871] : server lang: <none>
2025-06-13 11:05:10,290 [DEBUG][       Thread-252593][   transport.py][1871] : kex follows: False
2025-06-13 11:05:10,290 [DEBUG][       Thread-252593][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 11:05:10,290 [DEBUG][       Thread-252593][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 11:05:10,290 [DEBUG][       Thread-252593][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 11:05:10,290 [DEBUG][       Thread-252593][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 11:05:10,290 [DEBUG][       Thread-252593][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 11:05:10,290 [DEBUG][       Thread-252593][   transport.py][1871] : Compression: none
2025-06-13 11:05:10,291 [DEBUG][       Thread-252593][   transport.py][1871] : === End of kex handshake ===
2025-06-13 11:05:10,307 [DEBUG][       Thread-252593][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 11:05:10,307 [DEBUG][       Thread-252593][   transport.py][1871] : Switch to new keys ...
2025-06-13 11:05:10,308 [DEBUG][       Thread-252593][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 11:05:10,308 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 11:05:10,308 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 11:05:10,310 [DEBUG][       Thread-252593][   transport.py][1871] : userauth is OK
2025-06-13 11:05:10,322 [ INFO][       Thread-252593][   transport.py][1871] : Authentication (password) successful!
2025-06-13 11:05:10,323 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 11:05:12,617 [DEBUG][Thread-252595 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:05:13,502 [DEBUG][       Thread-252593][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 11:05:13,502 [DEBUG][       Thread-252593][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 11:05:13,545 [DEBUG][       Thread-252593][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 11:05:13,545 [DEBUG][       Thread-252593][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 11:05:13,549 [DEBUG][       Thread-252593][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 11:05:13,562 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 11:05:13,562 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 11:05:13,564 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 11:05:13,566 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 11:05:13,571 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 11:05:13,573 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 11:05:13,573 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 11:05:13,574 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 11:05:13,574 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.378064 -999.00   +9.50  24.03     53   +0.50 1 1 1 1 1   887    0 8.82 0.20 ----- 22.2 24.0 52.2 27.7 14.1 -28.2 12.7 -29.8 11.9 -28.8 13.2 -26.4
2025-06-13 11:05:13,574 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 11:05:13,574 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 11:05:13,574 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.378064
2025-06-13 11:05:13,575 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 11:05:13,575 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 11:05:13,575 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 11:05:13,575 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 11:05:13,575 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 11:05:13,576 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T11:04:56', tmtdew=10.23, humidity=48.85, cloud=0.0, wind=17.26, temperature=9.68, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T09:04:24.730', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 11:05:13,576 [DEBUG][       Thread-252593][   transport.py][1871] : EOF in transport thread
2025-06-13 11:05:13,659 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 11:05:13,669 [DEBUG][       Thread-252597][   transport.py][1871] : starting thread (client mode): 0x863cae60
2025-06-13 11:05:13,669 [DEBUG][       Thread-252597][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 11:05:13,684 [DEBUG][       Thread-252597][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 11:05:13,684 [ INFO][       Thread-252597][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 11:05:13,691 [DEBUG][       Thread-252597][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 11:05:13,691 [DEBUG][       Thread-252597][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 11:05:13,691 [DEBUG][       Thread-252597][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 11:05:13,691 [DEBUG][       Thread-252597][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:05:13,692 [DEBUG][       Thread-252597][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:05:13,692 [DEBUG][       Thread-252597][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:05:13,692 [DEBUG][       Thread-252597][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:05:13,692 [DEBUG][       Thread-252597][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 11:05:13,692 [DEBUG][       Thread-252597][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 11:05:13,692 [DEBUG][       Thread-252597][   transport.py][1871] : client lang: <none>
2025-06-13 11:05:13,692 [DEBUG][       Thread-252597][   transport.py][1871] : server lang: <none>
2025-06-13 11:05:13,692 [DEBUG][       Thread-252597][   transport.py][1871] : kex follows: False
2025-06-13 11:05:13,692 [DEBUG][       Thread-252597][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 11:05:13,692 [DEBUG][       Thread-252597][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 11:05:13,692 [DEBUG][       Thread-252597][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 11:05:13,692 [DEBUG][       Thread-252597][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 11:05:13,692 [DEBUG][       Thread-252597][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 11:05:13,692 [DEBUG][       Thread-252597][   transport.py][1871] : Compression: none
2025-06-13 11:05:13,692 [DEBUG][       Thread-252597][   transport.py][1871] : === End of kex handshake ===
2025-06-13 11:05:13,751 [DEBUG][       Thread-252597][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 11:05:13,752 [DEBUG][       Thread-252597][   transport.py][1871] : Switch to new keys ...
2025-06-13 11:05:13,752 [DEBUG][       Thread-252597][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 11:05:13,753 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 11:05:13,753 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 11:05:13,809 [DEBUG][       Thread-252597][   transport.py][1871] : userauth is OK
2025-06-13 11:05:13,810 [DEBUG][       Thread-252597][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 11:05:13,810 [DEBUG][       Thread-252597][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 11:05:13,810 [DEBUG][       Thread-252597][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 11:05:13,810 [DEBUG][       Thread-252597][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 11:05:13,831 [ INFO][       Thread-252597][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 11:05:13,831 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 11:05:13,832 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 11:05:14,848 [DEBUG][       Thread-252597][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 11:05:14,848 [DEBUG][       Thread-252597][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 11:05:14,896 [DEBUG][       Thread-252597][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 11:05:14,896 [DEBUG][       Thread-252597][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 11:05:14,906 [DEBUG][       Thread-252597][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 11:05:14,917 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 11:05:14,918 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 11:05:14,935 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 11:05:14,946 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 11:05:14,946 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 11:05:14,946 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 11:05:14,957 [DEBUG][       Thread-252597][   transport.py][1871] : EOF in transport thread
2025-06-13 11:05:21,640 [DEBUG][Thread-252599 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:05:24,957 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 11:05:24,957 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 11:05:24,957 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 11:05:24,958 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 11:05:25,414 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 11, 4, 56), 10.23, 48.85, 0.0, 17.26, 9.68, 0, 0, 0, 2, 0, 0),)
2025-06-13 11:05:25,414 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 11:04:56
2025-06-13 11:05:25,495 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 11:05:25,499 [DEBUG][       Thread-252600][   transport.py][1871] : starting thread (client mode): 0x84206170
2025-06-13 11:05:25,499 [DEBUG][       Thread-252600][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 11:05:25,521 [DEBUG][       Thread-252600][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 11:05:25,521 [ INFO][       Thread-252600][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 11:05:25,524 [DEBUG][       Thread-252600][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 11:05:25,524 [DEBUG][       Thread-252600][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 11:05:25,524 [DEBUG][       Thread-252600][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 11:05:25,524 [DEBUG][       Thread-252600][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:05:25,524 [DEBUG][       Thread-252600][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:05:25,524 [DEBUG][       Thread-252600][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:05:25,525 [DEBUG][       Thread-252600][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:05:25,525 [DEBUG][       Thread-252600][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 11:05:25,525 [DEBUG][       Thread-252600][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 11:05:25,525 [DEBUG][       Thread-252600][   transport.py][1871] : client lang: <none>
2025-06-13 11:05:25,525 [DEBUG][       Thread-252600][   transport.py][1871] : server lang: <none>
2025-06-13 11:05:25,525 [DEBUG][       Thread-252600][   transport.py][1871] : kex follows: False
2025-06-13 11:05:25,525 [DEBUG][       Thread-252600][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 11:05:25,525 [DEBUG][       Thread-252600][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 11:05:25,525 [DEBUG][       Thread-252600][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 11:05:25,525 [DEBUG][       Thread-252600][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 11:05:25,525 [DEBUG][       Thread-252600][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 11:05:25,525 [DEBUG][       Thread-252600][   transport.py][1871] : Compression: none
2025-06-13 11:05:25,525 [DEBUG][       Thread-252600][   transport.py][1871] : === End of kex handshake ===
2025-06-13 11:05:25,544 [DEBUG][       Thread-252600][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 11:05:25,545 [DEBUG][       Thread-252600][   transport.py][1871] : Switch to new keys ...
2025-06-13 11:05:25,545 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 11:05:25,545 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 11:05:25,546 [DEBUG][       Thread-252600][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 11:05:25,547 [DEBUG][       Thread-252600][   transport.py][1871] : userauth is OK
2025-06-13 11:05:25,560 [ INFO][       Thread-252600][   transport.py][1871] : Authentication (password) successful!
2025-06-13 11:05:25,561 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 11:05:26,982 [DEBUG][       Thread-252600][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 11:05:26,983 [DEBUG][       Thread-252600][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 11:05:27,025 [DEBUG][       Thread-252600][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 11:05:27,025 [DEBUG][       Thread-252600][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 11:05:27,028 [DEBUG][       Thread-252600][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 11:05:27,040 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 11:05:27,040 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 11:05:27,043 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 11:05:27,045 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 11:05:27,051 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 11:05:27,053 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 11:05:27,054 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 11:05:27,054 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 11:05:27,055 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.378064 -999.00   +9.50  24.03     53   +0.50 1 1 1 1 1   887    0 8.82 0.20 ----- 22.2 24.0 52.2 27.7 14.1 -28.2 12.7 -29.8 11.9 -28.8 13.2 -26.4
2025-06-13 11:05:27,055 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 11:05:27,055 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 11:05:27,055 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.378064
2025-06-13 11:05:27,055 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 11:05:27,056 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 11:05:27,056 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 11:05:27,056 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 11:05:27,056 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 11:05:27,056 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T11:04:56', tmtdew=10.23, humidity=48.85, cloud=0.0, wind=17.26, temperature=9.68, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T09:04:24.730', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 11:05:27,057 [DEBUG][       Thread-252600][   transport.py][1871] : EOF in transport thread
2025-06-13 11:05:27,140 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 11:05:27,151 [DEBUG][       Thread-252603][   transport.py][1871] : starting thread (client mode): 0x867ff310
2025-06-13 11:05:27,151 [DEBUG][       Thread-252603][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 11:05:27,167 [DEBUG][       Thread-252603][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 11:05:27,167 [ INFO][       Thread-252603][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 11:05:27,174 [DEBUG][       Thread-252603][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 11:05:27,175 [DEBUG][       Thread-252603][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 11:05:27,175 [DEBUG][       Thread-252603][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 11:05:27,175 [DEBUG][       Thread-252603][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:05:27,175 [DEBUG][       Thread-252603][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:05:27,175 [DEBUG][       Thread-252603][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:05:27,175 [DEBUG][       Thread-252603][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:05:27,175 [DEBUG][       Thread-252603][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 11:05:27,175 [DEBUG][       Thread-252603][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 11:05:27,175 [DEBUG][       Thread-252603][   transport.py][1871] : client lang: <none>
2025-06-13 11:05:27,175 [DEBUG][       Thread-252603][   transport.py][1871] : server lang: <none>
2025-06-13 11:05:27,175 [DEBUG][       Thread-252603][   transport.py][1871] : kex follows: False
2025-06-13 11:05:27,175 [DEBUG][       Thread-252603][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 11:05:27,175 [DEBUG][       Thread-252603][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 11:05:27,175 [DEBUG][       Thread-252603][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 11:05:27,175 [DEBUG][       Thread-252603][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 11:05:27,175 [DEBUG][       Thread-252603][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 11:05:27,175 [DEBUG][       Thread-252603][   transport.py][1871] : Compression: none
2025-06-13 11:05:27,175 [DEBUG][       Thread-252603][   transport.py][1871] : === End of kex handshake ===
2025-06-13 11:05:27,231 [DEBUG][       Thread-252603][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 11:05:27,231 [DEBUG][       Thread-252603][   transport.py][1871] : Switch to new keys ...
2025-06-13 11:05:27,232 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 11:05:27,233 [DEBUG][       Thread-252603][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 11:05:27,233 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 11:05:27,302 [DEBUG][       Thread-252603][   transport.py][1871] : userauth is OK
2025-06-13 11:05:27,302 [DEBUG][       Thread-252603][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 11:05:27,302 [DEBUG][       Thread-252603][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 11:05:27,302 [DEBUG][       Thread-252603][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 11:05:27,302 [DEBUG][       Thread-252603][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 11:05:27,325 [ INFO][       Thread-252603][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 11:05:27,326 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 11:05:27,326 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 11:05:28,377 [DEBUG][       Thread-252603][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 11:05:28,377 [DEBUG][       Thread-252603][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 11:05:28,428 [DEBUG][       Thread-252603][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 11:05:28,428 [DEBUG][       Thread-252603][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 11:05:28,437 [DEBUG][       Thread-252603][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 11:05:28,447 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 11:05:28,447 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 11:05:28,456 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 11:05:28,466 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 11:05:28,466 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 11:05:28,467 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 11:05:28,475 [DEBUG][       Thread-252603][   transport.py][1871] : EOF in transport thread
2025-06-13 11:05:30,676 [DEBUG][Thread-252605 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:05:31,794 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:05:31,795 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:05:38,477 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 11:05:38,477 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 11:05:38,477 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 11:05:38,478 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 11:05:38,950 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 11, 5, 28), 10.28, 48.6, 0.0, 19.36, 9.72, 0, 0, 0, 2, 0, 0),)
2025-06-13 11:05:38,950 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 11:05:28
2025-06-13 11:05:39,030 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 11:05:39,035 [DEBUG][       Thread-252606][   transport.py][1871] : starting thread (client mode): 0x84207790
2025-06-13 11:05:39,036 [DEBUG][       Thread-252606][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 11:05:39,056 [DEBUG][       Thread-252606][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 11:05:39,056 [ INFO][       Thread-252606][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 11:05:39,059 [DEBUG][       Thread-252606][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 11:05:39,059 [DEBUG][       Thread-252606][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 11:05:39,059 [DEBUG][       Thread-252606][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 11:05:39,059 [DEBUG][       Thread-252606][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:05:39,059 [DEBUG][       Thread-252606][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:05:39,059 [DEBUG][       Thread-252606][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:05:39,059 [DEBUG][       Thread-252606][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:05:39,059 [DEBUG][       Thread-252606][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 11:05:39,059 [DEBUG][       Thread-252606][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 11:05:39,059 [DEBUG][       Thread-252606][   transport.py][1871] : client lang: <none>
2025-06-13 11:05:39,059 [DEBUG][       Thread-252606][   transport.py][1871] : server lang: <none>
2025-06-13 11:05:39,059 [DEBUG][       Thread-252606][   transport.py][1871] : kex follows: False
2025-06-13 11:05:39,059 [DEBUG][       Thread-252606][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 11:05:39,059 [DEBUG][       Thread-252606][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 11:05:39,059 [DEBUG][       Thread-252606][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 11:05:39,059 [DEBUG][       Thread-252606][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 11:05:39,059 [DEBUG][       Thread-252606][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 11:05:39,059 [DEBUG][       Thread-252606][   transport.py][1871] : Compression: none
2025-06-13 11:05:39,059 [DEBUG][       Thread-252606][   transport.py][1871] : === End of kex handshake ===
2025-06-13 11:05:39,075 [DEBUG][       Thread-252606][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 11:05:39,075 [DEBUG][       Thread-252606][   transport.py][1871] : Switch to new keys ...
2025-06-13 11:05:39,075 [DEBUG][       Thread-252606][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 11:05:39,075 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 11:05:39,075 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 11:05:39,076 [DEBUG][       Thread-252606][   transport.py][1871] : userauth is OK
2025-06-13 11:05:39,088 [ INFO][       Thread-252606][   transport.py][1871] : Authentication (password) successful!
2025-06-13 11:05:39,088 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 11:05:39,679 [DEBUG][       Thread-252606][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 11:05:39,679 [DEBUG][       Thread-252606][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 11:05:39,694 [DEBUG][Thread-252608 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:05:39,721 [DEBUG][       Thread-252606][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 11:05:39,721 [DEBUG][       Thread-252606][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 11:05:39,725 [DEBUG][       Thread-252606][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 11:05:39,738 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 11:05:39,738 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 11:05:39,740 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 11:05:39,742 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 11:05:39,747 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 11:05:39,749 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 11:05:39,749 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 11:05:39,750 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 11:05:39,750 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.378411 -999.00   +9.50  23.10     54   +0.60 1 1 1 1 1   887    0 8.93 2.39 ----- 21.4 23.1 38.8 25.6 14.1 -28.7 12.8 -29.8 11.8 -28.6 13.2 -26.3
2025-06-13 11:05:39,750 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 11:05:39,750 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 11:05:39,750 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.378411
2025-06-13 11:05:39,751 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 11:05:39,751 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 11:05:39,752 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 11:05:39,752 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 11:05:39,752 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 11:05:39,752 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T11:05:28', tmtdew=10.28, humidity=48.6, cloud=0.0, wind=19.36, temperature=9.72, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T09:04:54.710', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 11:05:39,752 [DEBUG][       Thread-252606][   transport.py][1871] : EOF in transport thread
2025-06-13 11:05:39,836 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 11:05:39,848 [DEBUG][       Thread-252610][   transport.py][1871] : starting thread (client mode): 0x86368d60
2025-06-13 11:05:39,848 [DEBUG][       Thread-252610][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 11:05:39,864 [DEBUG][       Thread-252610][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 11:05:39,865 [ INFO][       Thread-252610][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 11:05:39,874 [DEBUG][       Thread-252610][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 11:05:39,874 [DEBUG][       Thread-252610][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 11:05:39,874 [DEBUG][       Thread-252610][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 11:05:39,874 [DEBUG][       Thread-252610][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:05:39,874 [DEBUG][       Thread-252610][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:05:39,874 [DEBUG][       Thread-252610][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:05:39,874 [DEBUG][       Thread-252610][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:05:39,874 [DEBUG][       Thread-252610][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 11:05:39,874 [DEBUG][       Thread-252610][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 11:05:39,874 [DEBUG][       Thread-252610][   transport.py][1871] : client lang: <none>
2025-06-13 11:05:39,874 [DEBUG][       Thread-252610][   transport.py][1871] : server lang: <none>
2025-06-13 11:05:39,875 [DEBUG][       Thread-252610][   transport.py][1871] : kex follows: False
2025-06-13 11:05:39,875 [DEBUG][       Thread-252610][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 11:05:39,875 [DEBUG][       Thread-252610][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 11:05:39,875 [DEBUG][       Thread-252610][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 11:05:39,875 [DEBUG][       Thread-252610][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 11:05:39,875 [DEBUG][       Thread-252610][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 11:05:39,875 [DEBUG][       Thread-252610][   transport.py][1871] : Compression: none
2025-06-13 11:05:39,875 [DEBUG][       Thread-252610][   transport.py][1871] : === End of kex handshake ===
2025-06-13 11:05:39,935 [DEBUG][       Thread-252610][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 11:05:39,936 [DEBUG][       Thread-252610][   transport.py][1871] : Switch to new keys ...
2025-06-13 11:05:39,937 [DEBUG][       Thread-252610][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 11:05:39,937 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 11:05:39,938 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 11:05:39,995 [DEBUG][       Thread-252610][   transport.py][1871] : userauth is OK
2025-06-13 11:05:39,995 [DEBUG][       Thread-252610][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 11:05:39,996 [DEBUG][       Thread-252610][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 11:05:39,996 [DEBUG][       Thread-252610][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 11:05:39,996 [DEBUG][       Thread-252610][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 11:05:40,014 [ INFO][       Thread-252610][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 11:05:40,014 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 11:05:40,015 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 11:05:41,020 [DEBUG][       Thread-252610][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 11:05:41,020 [DEBUG][       Thread-252610][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 11:05:41,068 [DEBUG][       Thread-252610][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 11:05:41,069 [DEBUG][       Thread-252610][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 11:05:41,078 [DEBUG][       Thread-252610][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 11:05:41,087 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 11:05:41,088 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 11:05:41,097 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 11:05:41,106 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 11:05:41,106 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 11:05:41,107 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 11:05:41,115 [DEBUG][       Thread-252610][   transport.py][1871] : EOF in transport thread
2025-06-13 11:05:48,716 [DEBUG][Thread-252612 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:05:51,117 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 11:05:51,118 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 11:05:51,118 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 11:05:51,121 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 11:05:51,596 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 11, 5, 28), 10.28, 48.6, 0.0, 19.36, 9.72, 0, 0, 0, 2, 0, 0),)
2025-06-13 11:05:51,596 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 11:05:28
2025-06-13 11:05:51,677 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 11:05:51,683 [DEBUG][       Thread-252613][   transport.py][1871] : starting thread (client mode): 0x863bd600
2025-06-13 11:05:51,683 [DEBUG][       Thread-252613][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 11:05:51,703 [DEBUG][       Thread-252613][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 11:05:51,704 [ INFO][       Thread-252613][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 11:05:51,708 [DEBUG][       Thread-252613][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 11:05:51,708 [DEBUG][       Thread-252613][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 11:05:51,708 [DEBUG][       Thread-252613][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 11:05:51,708 [DEBUG][       Thread-252613][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:05:51,708 [DEBUG][       Thread-252613][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:05:51,708 [DEBUG][       Thread-252613][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:05:51,708 [DEBUG][       Thread-252613][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:05:51,708 [DEBUG][       Thread-252613][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 11:05:51,708 [DEBUG][       Thread-252613][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 11:05:51,708 [DEBUG][       Thread-252613][   transport.py][1871] : client lang: <none>
2025-06-13 11:05:51,708 [DEBUG][       Thread-252613][   transport.py][1871] : server lang: <none>
2025-06-13 11:05:51,708 [DEBUG][       Thread-252613][   transport.py][1871] : kex follows: False
2025-06-13 11:05:51,708 [DEBUG][       Thread-252613][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 11:05:51,708 [DEBUG][       Thread-252613][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 11:05:51,708 [DEBUG][       Thread-252613][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 11:05:51,708 [DEBUG][       Thread-252613][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 11:05:51,708 [DEBUG][       Thread-252613][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 11:05:51,708 [DEBUG][       Thread-252613][   transport.py][1871] : Compression: none
2025-06-13 11:05:51,708 [DEBUG][       Thread-252613][   transport.py][1871] : === End of kex handshake ===
2025-06-13 11:05:51,724 [DEBUG][       Thread-252613][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 11:05:51,724 [DEBUG][       Thread-252613][   transport.py][1871] : Switch to new keys ...
2025-06-13 11:05:51,725 [DEBUG][       Thread-252613][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 11:05:51,725 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 11:05:51,725 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 11:05:51,726 [DEBUG][       Thread-252613][   transport.py][1871] : userauth is OK
2025-06-13 11:05:51,751 [ INFO][       Thread-252613][   transport.py][1871] : Authentication (password) successful!
2025-06-13 11:05:51,751 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 11:05:52,481 [DEBUG][       Thread-252613][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 11:05:52,481 [DEBUG][       Thread-252613][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 11:05:52,525 [DEBUG][       Thread-252613][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 11:05:52,525 [DEBUG][       Thread-252613][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 11:05:52,528 [DEBUG][       Thread-252613][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 11:05:52,534 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 11:05:52,535 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 11:05:52,536 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 11:05:52,538 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 11:05:52,544 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 11:05:52,546 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 11:05:52,546 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 11:05:52,546 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 11:05:52,547 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.378411 -999.00   +9.50  23.10     54   +0.60 1 1 1 1 1   887    0 8.93 2.39 ----- 21.4 23.1 38.8 25.6 14.1 -28.7 12.8 -29.8 11.8 -28.6 13.2 -26.3
2025-06-13 11:05:52,547 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 11:05:52,547 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 11:05:52,547 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.378411
2025-06-13 11:05:52,547 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 11:05:52,548 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 11:05:52,548 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 11:05:52,548 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 11:05:52,548 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 11:05:52,548 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T11:05:28', tmtdew=10.28, humidity=48.6, cloud=0.0, wind=19.36, temperature=9.72, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T09:04:54.710', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 11:05:52,549 [DEBUG][       Thread-252613][   transport.py][1871] : EOF in transport thread
2025-06-13 11:05:52,631 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 11:05:52,643 [DEBUG][       Thread-252616][   transport.py][1871] : starting thread (client mode): 0x863ca1a0
2025-06-13 11:05:52,643 [DEBUG][       Thread-252616][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 11:05:52,658 [DEBUG][       Thread-252616][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 11:05:52,658 [ INFO][       Thread-252616][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 11:05:52,666 [DEBUG][       Thread-252616][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 11:05:52,666 [DEBUG][       Thread-252616][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 11:05:52,666 [DEBUG][       Thread-252616][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 11:05:52,666 [DEBUG][       Thread-252616][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:05:52,666 [DEBUG][       Thread-252616][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:05:52,666 [DEBUG][       Thread-252616][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:05:52,666 [DEBUG][       Thread-252616][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:05:52,666 [DEBUG][       Thread-252616][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 11:05:52,666 [DEBUG][       Thread-252616][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 11:05:52,666 [DEBUG][       Thread-252616][   transport.py][1871] : client lang: <none>
2025-06-13 11:05:52,666 [DEBUG][       Thread-252616][   transport.py][1871] : server lang: <none>
2025-06-13 11:05:52,666 [DEBUG][       Thread-252616][   transport.py][1871] : kex follows: False
2025-06-13 11:05:52,666 [DEBUG][       Thread-252616][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 11:05:52,666 [DEBUG][       Thread-252616][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 11:05:52,666 [DEBUG][       Thread-252616][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 11:05:52,666 [DEBUG][       Thread-252616][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 11:05:52,667 [DEBUG][       Thread-252616][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 11:05:52,667 [DEBUG][       Thread-252616][   transport.py][1871] : Compression: none
2025-06-13 11:05:52,667 [DEBUG][       Thread-252616][   transport.py][1871] : === End of kex handshake ===
2025-06-13 11:05:52,728 [DEBUG][       Thread-252616][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 11:05:52,729 [DEBUG][       Thread-252616][   transport.py][1871] : Switch to new keys ...
2025-06-13 11:05:52,730 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 11:05:52,730 [DEBUG][       Thread-252616][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 11:05:52,731 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 11:05:52,791 [DEBUG][       Thread-252616][   transport.py][1871] : userauth is OK
2025-06-13 11:05:52,792 [DEBUG][       Thread-252616][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 11:05:52,792 [DEBUG][       Thread-252616][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 11:05:52,792 [DEBUG][       Thread-252616][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 11:05:52,792 [DEBUG][       Thread-252616][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 11:05:52,817 [ INFO][       Thread-252616][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 11:05:52,818 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 11:05:52,818 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 11:05:53,832 [DEBUG][       Thread-252616][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 11:05:53,832 [DEBUG][       Thread-252616][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 11:05:53,880 [DEBUG][       Thread-252616][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 11:05:53,881 [DEBUG][       Thread-252616][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 11:05:53,890 [DEBUG][       Thread-252616][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 11:05:53,902 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 11:05:53,903 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 11:05:53,916 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 11:05:53,927 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 11:05:53,927 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 11:05:53,928 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 11:05:53,937 [DEBUG][       Thread-252616][   transport.py][1871] : EOF in transport thread
2025-06-13 11:05:55,659 [DEBUG][Thread-252618 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:05:56,712 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:05:56,713 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:05:57,750 [DEBUG][Thread-252619 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:06:03,938 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 11:06:03,939 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 11:06:03,939 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 11:06:03,942 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 11:06:04,420 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 11, 6, 1), 10.29, 48.58, 0.0, 19.29, 9.7, 0, 0, 0, 2, 0, 0),)
2025-06-13 11:06:04,421 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 11:06:01
2025-06-13 11:06:04,503 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 11:06:04,507 [DEBUG][       Thread-252620][   transport.py][1871] : starting thread (client mode): 0x84207790
2025-06-13 11:06:04,507 [DEBUG][       Thread-252620][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 11:06:04,525 [DEBUG][       Thread-252620][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 11:06:04,525 [ INFO][       Thread-252620][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 11:06:04,527 [DEBUG][       Thread-252620][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 11:06:04,527 [DEBUG][       Thread-252620][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 11:06:04,528 [DEBUG][       Thread-252620][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 11:06:04,528 [DEBUG][       Thread-252620][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:06:04,528 [DEBUG][       Thread-252620][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:06:04,528 [DEBUG][       Thread-252620][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:06:04,528 [DEBUG][       Thread-252620][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:06:04,528 [DEBUG][       Thread-252620][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 11:06:04,528 [DEBUG][       Thread-252620][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 11:06:04,528 [DEBUG][       Thread-252620][   transport.py][1871] : client lang: <none>
2025-06-13 11:06:04,528 [DEBUG][       Thread-252620][   transport.py][1871] : server lang: <none>
2025-06-13 11:06:04,528 [DEBUG][       Thread-252620][   transport.py][1871] : kex follows: False
2025-06-13 11:06:04,528 [DEBUG][       Thread-252620][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 11:06:04,528 [DEBUG][       Thread-252620][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 11:06:04,528 [DEBUG][       Thread-252620][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 11:06:04,528 [DEBUG][       Thread-252620][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 11:06:04,528 [DEBUG][       Thread-252620][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 11:06:04,528 [DEBUG][       Thread-252620][   transport.py][1871] : Compression: none
2025-06-13 11:06:04,528 [DEBUG][       Thread-252620][   transport.py][1871] : === End of kex handshake ===
2025-06-13 11:06:04,541 [DEBUG][       Thread-252620][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 11:06:04,541 [DEBUG][       Thread-252620][   transport.py][1871] : Switch to new keys ...
2025-06-13 11:06:04,542 [DEBUG][       Thread-252620][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 11:06:04,542 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 11:06:04,542 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 11:06:04,543 [DEBUG][       Thread-252620][   transport.py][1871] : userauth is OK
2025-06-13 11:06:04,556 [ INFO][       Thread-252620][   transport.py][1871] : Authentication (password) successful!
2025-06-13 11:06:04,557 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 11:06:05,161 [DEBUG][       Thread-252620][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 11:06:05,161 [DEBUG][       Thread-252620][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 11:06:05,205 [DEBUG][       Thread-252620][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 11:06:05,205 [DEBUG][       Thread-252620][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 11:06:05,209 [DEBUG][       Thread-252620][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 11:06:05,218 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 11:06:05,219 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 11:06:05,220 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 11:06:05,222 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 11:06:05,227 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 11:06:05,228 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 11:06:05,229 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 11:06:05,229 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 11:06:05,230 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.379106 -999.00   +9.50  20.04     53   +0.50 1 1 1 1 1   887    0 8.78 0.59 ----- 24.1 20.0 44.8 23.2 14.2 -27.8 12.8 -29.0 12.0 -27.7 13.3 -26.2
2025-06-13 11:06:05,230 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 11:06:05,230 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 11:06:05,230 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.379106
2025-06-13 11:06:05,230 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 11:06:05,231 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 11:06:05,231 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 11:06:05,231 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 11:06:05,231 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 11:06:05,231 [DEBUG][       Thread-252620][   transport.py][1871] : EOF in transport thread
2025-06-13 11:06:05,232 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T11:06:01', tmtdew=10.29, humidity=48.58, cloud=0.0, wind=19.29, temperature=9.7, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T09:05:54.758', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 11:06:05,316 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 11:06:05,325 [DEBUG][       Thread-252623][   transport.py][1871] : starting thread (client mode): 0x863a5e70
2025-06-13 11:06:05,325 [DEBUG][       Thread-252623][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 11:06:05,340 [DEBUG][       Thread-252623][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 11:06:05,340 [ INFO][       Thread-252623][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 11:06:05,348 [DEBUG][       Thread-252623][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 11:06:05,348 [DEBUG][       Thread-252623][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 11:06:05,348 [DEBUG][       Thread-252623][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 11:06:05,348 [DEBUG][       Thread-252623][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:06:05,348 [DEBUG][       Thread-252623][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:06:05,348 [DEBUG][       Thread-252623][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:06:05,348 [DEBUG][       Thread-252623][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:06:05,348 [DEBUG][       Thread-252623][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 11:06:05,348 [DEBUG][       Thread-252623][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 11:06:05,348 [DEBUG][       Thread-252623][   transport.py][1871] : client lang: <none>
2025-06-13 11:06:05,348 [DEBUG][       Thread-252623][   transport.py][1871] : server lang: <none>
2025-06-13 11:06:05,348 [DEBUG][       Thread-252623][   transport.py][1871] : kex follows: False
2025-06-13 11:06:05,348 [DEBUG][       Thread-252623][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 11:06:05,348 [DEBUG][       Thread-252623][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 11:06:05,348 [DEBUG][       Thread-252623][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 11:06:05,348 [DEBUG][       Thread-252623][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 11:06:05,348 [DEBUG][       Thread-252623][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 11:06:05,348 [DEBUG][       Thread-252623][   transport.py][1871] : Compression: none
2025-06-13 11:06:05,348 [DEBUG][       Thread-252623][   transport.py][1871] : === End of kex handshake ===
2025-06-13 11:06:05,407 [DEBUG][       Thread-252623][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 11:06:05,408 [DEBUG][       Thread-252623][   transport.py][1871] : Switch to new keys ...
2025-06-13 11:06:05,408 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 11:06:05,409 [DEBUG][       Thread-252623][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 11:06:05,410 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 11:06:05,464 [DEBUG][       Thread-252623][   transport.py][1871] : userauth is OK
2025-06-13 11:06:05,464 [DEBUG][       Thread-252623][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 11:06:05,465 [DEBUG][       Thread-252623][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 11:06:05,465 [DEBUG][       Thread-252623][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 11:06:05,465 [DEBUG][       Thread-252623][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 11:06:05,483 [ INFO][       Thread-252623][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 11:06:05,484 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 11:06:05,484 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 11:06:06,513 [DEBUG][       Thread-252623][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 11:06:06,513 [DEBUG][       Thread-252623][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 11:06:06,564 [DEBUG][       Thread-252623][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 11:06:06,565 [DEBUG][       Thread-252623][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 11:06:06,574 [DEBUG][       Thread-252623][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 11:06:06,583 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 11:06:06,583 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 11:06:06,592 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 11:06:06,602 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 11:06:06,602 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 11:06:06,603 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 11:06:06,614 [DEBUG][       Thread-252623][   transport.py][1871] : EOF in transport thread
2025-06-13 11:06:06,770 [DEBUG][Thread-252625 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:06:08,139 [DEBUG][Thread-252626 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:06:15,810 [DEBUG][Thread-252627 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:06:16,613 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 11:06:16,613 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 11:06:16,613 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 11:06:16,614 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 11:06:17,074 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 11, 6, 1), 10.29, 48.58, 0.0, 19.29, 9.7, 0, 0, 0, 2, 0, 0),)
2025-06-13 11:06:17,074 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 11:06:01
2025-06-13 11:06:17,156 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 11:06:17,162 [DEBUG][       Thread-252628][   transport.py][1871] : starting thread (client mode): 0x863bd240
2025-06-13 11:06:17,162 [DEBUG][       Thread-252628][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 11:06:17,178 [DEBUG][       Thread-252628][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 11:06:17,178 [ INFO][       Thread-252628][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 11:06:17,181 [DEBUG][       Thread-252628][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 11:06:17,181 [DEBUG][       Thread-252628][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 11:06:17,181 [DEBUG][       Thread-252628][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 11:06:17,181 [DEBUG][       Thread-252628][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:06:17,181 [DEBUG][       Thread-252628][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:06:17,181 [DEBUG][       Thread-252628][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:06:17,181 [DEBUG][       Thread-252628][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:06:17,181 [DEBUG][       Thread-252628][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 11:06:17,181 [DEBUG][       Thread-252628][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 11:06:17,181 [DEBUG][       Thread-252628][   transport.py][1871] : client lang: <none>
2025-06-13 11:06:17,181 [DEBUG][       Thread-252628][   transport.py][1871] : server lang: <none>
2025-06-13 11:06:17,181 [DEBUG][       Thread-252628][   transport.py][1871] : kex follows: False
2025-06-13 11:06:17,181 [DEBUG][       Thread-252628][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 11:06:17,181 [DEBUG][       Thread-252628][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 11:06:17,181 [DEBUG][       Thread-252628][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 11:06:17,181 [DEBUG][       Thread-252628][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 11:06:17,181 [DEBUG][       Thread-252628][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 11:06:17,181 [DEBUG][       Thread-252628][   transport.py][1871] : Compression: none
2025-06-13 11:06:17,181 [DEBUG][       Thread-252628][   transport.py][1871] : === End of kex handshake ===
2025-06-13 11:06:17,189 [DEBUG][       Thread-252628][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 11:06:17,189 [DEBUG][       Thread-252628][   transport.py][1871] : Switch to new keys ...
2025-06-13 11:06:17,190 [DEBUG][       Thread-252628][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 11:06:17,190 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 11:06:17,190 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 11:06:17,191 [DEBUG][       Thread-252628][   transport.py][1871] : userauth is OK
2025-06-13 11:06:17,204 [ INFO][       Thread-252628][   transport.py][1871] : Authentication (password) successful!
2025-06-13 11:06:17,204 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 11:06:18,011 [DEBUG][       Thread-252628][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 11:06:18,011 [DEBUG][       Thread-252628][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 11:06:18,053 [DEBUG][       Thread-252628][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 11:06:18,053 [DEBUG][       Thread-252628][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 11:06:18,056 [DEBUG][       Thread-252628][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 11:06:18,068 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 11:06:18,068 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 11:06:18,070 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 11:06:18,071 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 11:06:18,076 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 11:06:18,077 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 11:06:18,078 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 11:06:18,078 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 11:06:18,078 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.379106 -999.00   +9.50  20.04     53   +0.50 1 1 1 1 1   887    0 8.78 0.59 ----- 24.1 20.0 44.8 23.2 14.2 -27.8 12.8 -29.0 12.0 -27.7 13.3 -26.2
2025-06-13 11:06:18,078 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 11:06:18,078 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 11:06:18,078 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.379106
2025-06-13 11:06:18,079 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 11:06:18,079 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 11:06:18,079 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 11:06:18,079 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 11:06:18,079 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 11:06:18,080 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T11:06:01', tmtdew=10.29, humidity=48.58, cloud=0.0, wind=19.29, temperature=9.7, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T09:05:54.758', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 11:06:18,080 [DEBUG][       Thread-252628][   transport.py][1871] : EOF in transport thread
2025-06-13 11:06:18,160 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 11:06:18,171 [DEBUG][       Thread-252631][   transport.py][1871] : starting thread (client mode): 0x863c8250
2025-06-13 11:06:18,171 [DEBUG][       Thread-252631][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 11:06:18,186 [DEBUG][       Thread-252631][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 11:06:18,186 [ INFO][       Thread-252631][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 11:06:18,193 [DEBUG][       Thread-252631][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 11:06:18,193 [DEBUG][       Thread-252631][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 11:06:18,194 [DEBUG][       Thread-252631][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 11:06:18,194 [DEBUG][       Thread-252631][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:06:18,194 [DEBUG][       Thread-252631][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:06:18,194 [DEBUG][       Thread-252631][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:06:18,194 [DEBUG][       Thread-252631][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:06:18,194 [DEBUG][       Thread-252631][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 11:06:18,194 [DEBUG][       Thread-252631][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 11:06:18,194 [DEBUG][       Thread-252631][   transport.py][1871] : client lang: <none>
2025-06-13 11:06:18,194 [DEBUG][       Thread-252631][   transport.py][1871] : server lang: <none>
2025-06-13 11:06:18,194 [DEBUG][       Thread-252631][   transport.py][1871] : kex follows: False
2025-06-13 11:06:18,194 [DEBUG][       Thread-252631][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 11:06:18,194 [DEBUG][       Thread-252631][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 11:06:18,194 [DEBUG][       Thread-252631][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 11:06:18,194 [DEBUG][       Thread-252631][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 11:06:18,194 [DEBUG][       Thread-252631][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 11:06:18,194 [DEBUG][       Thread-252631][   transport.py][1871] : Compression: none
2025-06-13 11:06:18,194 [DEBUG][       Thread-252631][   transport.py][1871] : === End of kex handshake ===
2025-06-13 11:06:18,253 [DEBUG][       Thread-252631][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 11:06:18,254 [DEBUG][       Thread-252631][   transport.py][1871] : Switch to new keys ...
2025-06-13 11:06:18,254 [DEBUG][       Thread-252631][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 11:06:18,254 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 11:06:18,255 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 11:06:18,315 [DEBUG][       Thread-252631][   transport.py][1871] : userauth is OK
2025-06-13 11:06:18,315 [DEBUG][       Thread-252631][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 11:06:18,315 [DEBUG][       Thread-252631][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 11:06:18,315 [DEBUG][       Thread-252631][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 11:06:18,315 [DEBUG][       Thread-252631][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 11:06:18,337 [ INFO][       Thread-252631][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 11:06:18,338 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 11:06:18,338 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 11:06:19,337 [DEBUG][       Thread-252631][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 11:06:19,337 [DEBUG][       Thread-252631][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 11:06:19,388 [DEBUG][       Thread-252631][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 11:06:19,388 [DEBUG][       Thread-252631][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 11:06:19,397 [DEBUG][       Thread-252631][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 11:06:19,409 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 11:06:19,409 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 11:06:19,418 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 11:06:19,426 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 11:06:19,426 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 11:06:19,427 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 11:06:19,435 [DEBUG][       Thread-252631][   transport.py][1871] : EOF in transport thread
2025-06-13 11:06:24,829 [DEBUG][Thread-252633 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:06:29,432 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 11:06:29,432 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 11:06:29,432 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 11:06:29,435 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 11:06:29,900 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 11, 6, 1), 10.29, 48.58, 0.0, 19.29, 9.7, 0, 0, 0, 2, 0, 0),)
2025-06-13 11:06:29,900 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 11:06:01
2025-06-13 11:06:29,982 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 11:06:29,986 [DEBUG][       Thread-252634][   transport.py][1871] : starting thread (client mode): 0x842050c0
2025-06-13 11:06:29,986 [DEBUG][       Thread-252634][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 11:06:30,006 [DEBUG][       Thread-252634][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 11:06:30,006 [ INFO][       Thread-252634][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 11:06:30,008 [DEBUG][       Thread-252634][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 11:06:30,008 [DEBUG][       Thread-252634][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 11:06:30,008 [DEBUG][       Thread-252634][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 11:06:30,008 [DEBUG][       Thread-252634][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:06:30,008 [DEBUG][       Thread-252634][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:06:30,008 [DEBUG][       Thread-252634][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:06:30,008 [DEBUG][       Thread-252634][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:06:30,008 [DEBUG][       Thread-252634][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 11:06:30,008 [DEBUG][       Thread-252634][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 11:06:30,008 [DEBUG][       Thread-252634][   transport.py][1871] : client lang: <none>
2025-06-13 11:06:30,008 [DEBUG][       Thread-252634][   transport.py][1871] : server lang: <none>
2025-06-13 11:06:30,008 [DEBUG][       Thread-252634][   transport.py][1871] : kex follows: False
2025-06-13 11:06:30,008 [DEBUG][       Thread-252634][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 11:06:30,008 [DEBUG][       Thread-252634][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 11:06:30,008 [DEBUG][       Thread-252634][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 11:06:30,008 [DEBUG][       Thread-252634][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 11:06:30,008 [DEBUG][       Thread-252634][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 11:06:30,008 [DEBUG][       Thread-252634][   transport.py][1871] : Compression: none
2025-06-13 11:06:30,008 [DEBUG][       Thread-252634][   transport.py][1871] : === End of kex handshake ===
2025-06-13 11:06:30,021 [DEBUG][       Thread-252634][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 11:06:30,022 [DEBUG][       Thread-252634][   transport.py][1871] : Switch to new keys ...
2025-06-13 11:06:30,022 [DEBUG][       Thread-252634][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 11:06:30,022 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 11:06:30,023 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 11:06:30,024 [DEBUG][       Thread-252634][   transport.py][1871] : userauth is OK
2025-06-13 11:06:30,037 [ INFO][       Thread-252634][   transport.py][1871] : Authentication (password) successful!
2025-06-13 11:06:30,038 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 11:06:30,800 [DEBUG][       Thread-252634][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 11:06:30,800 [DEBUG][       Thread-252634][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 11:06:30,841 [DEBUG][       Thread-252634][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 11:06:30,841 [DEBUG][       Thread-252634][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 11:06:30,844 [DEBUG][       Thread-252634][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 11:06:30,856 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 11:06:30,856 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 11:06:30,858 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 11:06:30,860 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 11:06:30,866 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 11:06:30,868 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 11:06:30,868 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 11:06:30,869 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 11:06:30,869 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.379106 -999.00   +9.50  20.04     53   +0.50 1 1 1 1 1   887    0 8.78 0.59 ----- 24.1 20.0 44.8 23.2 14.2 -27.8 12.8 -29.0 12.0 -27.7 13.3 -26.2
2025-06-13 11:06:30,869 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 11:06:30,869 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 11:06:30,869 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.379106
2025-06-13 11:06:30,870 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 11:06:30,870 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 11:06:30,870 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 11:06:30,870 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 11:06:30,870 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 11:06:30,871 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T11:06:01', tmtdew=10.29, humidity=48.58, cloud=0.0, wind=19.29, temperature=9.7, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T09:05:54.758', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 11:06:30,871 [DEBUG][       Thread-252634][   transport.py][1871] : EOF in transport thread
2025-06-13 11:06:30,954 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 11:06:30,970 [DEBUG][       Thread-252637][   transport.py][1871] : starting thread (client mode): 0x863a5b70
2025-06-13 11:06:30,970 [DEBUG][       Thread-252637][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 11:06:30,989 [DEBUG][       Thread-252637][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 11:06:30,989 [ INFO][       Thread-252637][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 11:06:30,997 [DEBUG][       Thread-252637][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 11:06:30,997 [DEBUG][       Thread-252637][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 11:06:30,998 [DEBUG][       Thread-252637][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 11:06:30,998 [DEBUG][       Thread-252637][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:06:30,998 [DEBUG][       Thread-252637][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:06:30,998 [DEBUG][       Thread-252637][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:06:30,998 [DEBUG][       Thread-252637][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:06:30,998 [DEBUG][       Thread-252637][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 11:06:30,998 [DEBUG][       Thread-252637][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 11:06:30,998 [DEBUG][       Thread-252637][   transport.py][1871] : client lang: <none>
2025-06-13 11:06:30,998 [DEBUG][       Thread-252637][   transport.py][1871] : server lang: <none>
2025-06-13 11:06:30,998 [DEBUG][       Thread-252637][   transport.py][1871] : kex follows: False
2025-06-13 11:06:30,998 [DEBUG][       Thread-252637][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 11:06:30,998 [DEBUG][       Thread-252637][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 11:06:30,998 [DEBUG][       Thread-252637][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 11:06:30,998 [DEBUG][       Thread-252637][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 11:06:30,998 [DEBUG][       Thread-252637][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 11:06:30,998 [DEBUG][       Thread-252637][   transport.py][1871] : Compression: none
2025-06-13 11:06:30,999 [DEBUG][       Thread-252637][   transport.py][1871] : === End of kex handshake ===
2025-06-13 11:06:31,056 [DEBUG][       Thread-252637][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 11:06:31,057 [DEBUG][       Thread-252637][   transport.py][1871] : Switch to new keys ...
2025-06-13 11:06:31,057 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 11:06:31,058 [DEBUG][       Thread-252637][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 11:06:31,059 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 11:06:31,125 [DEBUG][       Thread-252637][   transport.py][1871] : userauth is OK
2025-06-13 11:06:31,125 [DEBUG][       Thread-252637][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 11:06:31,126 [DEBUG][       Thread-252637][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 11:06:31,126 [DEBUG][       Thread-252637][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 11:06:31,126 [DEBUG][       Thread-252637][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 11:06:31,150 [ INFO][       Thread-252637][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 11:06:31,151 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 11:06:31,151 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 11:06:31,932 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:06:31,933 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:06:32,195 [DEBUG][       Thread-252637][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 11:06:32,196 [DEBUG][       Thread-252637][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 11:06:32,260 [DEBUG][       Thread-252637][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 11:06:32,260 [DEBUG][       Thread-252637][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 11:06:32,276 [DEBUG][       Thread-252637][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 11:06:32,288 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 11:06:32,288 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 11:06:32,302 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 11:06:32,323 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 11:06:32,323 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 11:06:32,324 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 11:06:32,338 [DEBUG][       Thread-252637][   transport.py][1871] : EOF in transport thread
2025-06-13 11:06:33,848 [DEBUG][Thread-252639 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:06:42,334 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 11:06:42,335 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 11:06:42,335 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 11:06:42,338 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 11:06:42,804 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 11, 6, 32), 10.05, 49.71, 0.0, 15.35, 9.75, 0, 0, 0, 2, 0, 0),)
2025-06-13 11:06:42,805 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 11:06:32
2025-06-13 11:06:42,867 [DEBUG][Thread-252640 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:06:42,886 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 11:06:42,892 [DEBUG][       Thread-252641][   transport.py][1871] : starting thread (client mode): 0x863bdc00
2025-06-13 11:06:42,892 [DEBUG][       Thread-252641][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 11:06:42,909 [DEBUG][       Thread-252641][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 11:06:42,909 [ INFO][       Thread-252641][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 11:06:42,910 [DEBUG][       Thread-252641][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 11:06:42,910 [DEBUG][       Thread-252641][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 11:06:42,910 [DEBUG][       Thread-252641][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 11:06:42,910 [DEBUG][       Thread-252641][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:06:42,910 [DEBUG][       Thread-252641][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:06:42,910 [DEBUG][       Thread-252641][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:06:42,910 [DEBUG][       Thread-252641][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:06:42,910 [DEBUG][       Thread-252641][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 11:06:42,910 [DEBUG][       Thread-252641][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 11:06:42,911 [DEBUG][       Thread-252641][   transport.py][1871] : client lang: <none>
2025-06-13 11:06:42,911 [DEBUG][       Thread-252641][   transport.py][1871] : server lang: <none>
2025-06-13 11:06:42,911 [DEBUG][       Thread-252641][   transport.py][1871] : kex follows: False
2025-06-13 11:06:42,911 [DEBUG][       Thread-252641][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 11:06:42,911 [DEBUG][       Thread-252641][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 11:06:42,911 [DEBUG][       Thread-252641][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 11:06:42,911 [DEBUG][       Thread-252641][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 11:06:42,911 [DEBUG][       Thread-252641][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 11:06:42,911 [DEBUG][       Thread-252641][   transport.py][1871] : Compression: none
2025-06-13 11:06:42,911 [DEBUG][       Thread-252641][   transport.py][1871] : === End of kex handshake ===
2025-06-13 11:06:42,920 [DEBUG][       Thread-252641][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 11:06:42,921 [DEBUG][       Thread-252641][   transport.py][1871] : Switch to new keys ...
2025-06-13 11:06:42,921 [DEBUG][       Thread-252641][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 11:06:42,921 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 11:06:42,921 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 11:06:42,922 [DEBUG][       Thread-252641][   transport.py][1871] : userauth is OK
2025-06-13 11:06:42,935 [ INFO][       Thread-252641][   transport.py][1871] : Authentication (password) successful!
2025-06-13 11:06:42,936 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 11:06:43,599 [DEBUG][       Thread-252641][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 11:06:43,599 [DEBUG][       Thread-252641][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 11:06:43,641 [DEBUG][       Thread-252641][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 11:06:43,641 [DEBUG][       Thread-252641][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 11:06:43,645 [DEBUG][       Thread-252641][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 11:06:43,657 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 11:06:43,657 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 11:06:43,659 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 11:06:43,661 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 11:06:43,668 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 11:06:43,670 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 11:06:43,670 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 11:06:43,671 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 11:06:43,671 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.379453 -999.00   +9.50  24.64     52   +0.30 1 1 1 1 1   887    0 9.07 1.18 ----- 23.9 24.6 45.2 29.3 14.2 -28.0 12.8 -30.2 11.9 -28.1 13.3 -26.3
2025-06-13 11:06:43,671 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 11:06:43,671 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 11:06:43,671 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.379453
2025-06-13 11:06:43,672 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 11:06:43,672 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 11:06:43,672 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 11:06:43,672 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 11:06:43,672 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 11:06:43,673 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T11:06:32', tmtdew=10.05, humidity=49.71, cloud=0.0, wind=15.35, temperature=9.75, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T09:06:24.739', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 11:06:43,674 [DEBUG][       Thread-252641][   transport.py][1871] : EOF in transport thread
2025-06-13 11:06:43,756 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 11:06:43,767 [DEBUG][       Thread-252644][   transport.py][1871] : starting thread (client mode): 0x8636b580
2025-06-13 11:06:43,767 [DEBUG][       Thread-252644][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 11:06:43,783 [DEBUG][       Thread-252644][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 11:06:43,783 [ INFO][       Thread-252644][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 11:06:43,790 [DEBUG][       Thread-252644][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 11:06:43,791 [DEBUG][       Thread-252644][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 11:06:43,791 [DEBUG][       Thread-252644][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 11:06:43,791 [DEBUG][       Thread-252644][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:06:43,791 [DEBUG][       Thread-252644][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:06:43,791 [DEBUG][       Thread-252644][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:06:43,791 [DEBUG][       Thread-252644][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:06:43,791 [DEBUG][       Thread-252644][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 11:06:43,791 [DEBUG][       Thread-252644][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 11:06:43,791 [DEBUG][       Thread-252644][   transport.py][1871] : client lang: <none>
2025-06-13 11:06:43,791 [DEBUG][       Thread-252644][   transport.py][1871] : server lang: <none>
2025-06-13 11:06:43,791 [DEBUG][       Thread-252644][   transport.py][1871] : kex follows: False
2025-06-13 11:06:43,791 [DEBUG][       Thread-252644][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 11:06:43,791 [DEBUG][       Thread-252644][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 11:06:43,791 [DEBUG][       Thread-252644][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 11:06:43,791 [DEBUG][       Thread-252644][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 11:06:43,791 [DEBUG][       Thread-252644][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 11:06:43,791 [DEBUG][       Thread-252644][   transport.py][1871] : Compression: none
2025-06-13 11:06:43,792 [DEBUG][       Thread-252644][   transport.py][1871] : === End of kex handshake ===
2025-06-13 11:06:43,848 [DEBUG][       Thread-252644][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 11:06:43,849 [DEBUG][       Thread-252644][   transport.py][1871] : Switch to new keys ...
2025-06-13 11:06:43,849 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 11:06:43,850 [DEBUG][       Thread-252644][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 11:06:43,850 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 11:06:43,908 [DEBUG][       Thread-252644][   transport.py][1871] : userauth is OK
2025-06-13 11:06:43,908 [DEBUG][       Thread-252644][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 11:06:43,908 [DEBUG][       Thread-252644][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 11:06:43,908 [DEBUG][       Thread-252644][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 11:06:43,909 [DEBUG][       Thread-252644][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 11:06:43,927 [ INFO][       Thread-252644][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 11:06:43,928 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 11:06:43,928 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 11:06:44,979 [DEBUG][       Thread-252644][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 11:06:44,980 [DEBUG][       Thread-252644][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 11:06:45,029 [DEBUG][       Thread-252644][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 11:06:45,029 [DEBUG][       Thread-252644][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 11:06:45,039 [DEBUG][       Thread-252644][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 11:06:45,048 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 11:06:45,049 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 11:06:45,060 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 11:06:45,070 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 11:06:45,070 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 11:06:45,071 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 11:06:45,081 [DEBUG][       Thread-252644][   transport.py][1871] : EOF in transport thread
2025-06-13 11:06:51,885 [DEBUG][Thread-252646 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:06:55,080 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 11:06:55,080 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 11:06:55,080 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 11:06:55,081 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 11:06:55,542 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 11, 6, 32), 10.05, 49.71, 0.0, 15.35, 9.75, 0, 0, 0, 2, 0, 0),)
2025-06-13 11:06:55,542 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 11:06:32
2025-06-13 11:06:55,624 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 11:06:55,629 [DEBUG][       Thread-252647][   transport.py][1871] : starting thread (client mode): 0x863bc280
2025-06-13 11:06:55,629 [DEBUG][       Thread-252647][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 11:06:55,644 [DEBUG][       Thread-252647][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 11:06:55,644 [ INFO][       Thread-252647][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 11:06:55,647 [DEBUG][       Thread-252647][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 11:06:55,648 [DEBUG][       Thread-252647][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 11:06:55,648 [DEBUG][       Thread-252647][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 11:06:55,648 [DEBUG][       Thread-252647][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:06:55,648 [DEBUG][       Thread-252647][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:06:55,648 [DEBUG][       Thread-252647][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:06:55,648 [DEBUG][       Thread-252647][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:06:55,648 [DEBUG][       Thread-252647][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 11:06:55,648 [DEBUG][       Thread-252647][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 11:06:55,648 [DEBUG][       Thread-252647][   transport.py][1871] : client lang: <none>
2025-06-13 11:06:55,648 [DEBUG][       Thread-252647][   transport.py][1871] : server lang: <none>
2025-06-13 11:06:55,648 [DEBUG][       Thread-252647][   transport.py][1871] : kex follows: False
2025-06-13 11:06:55,648 [DEBUG][       Thread-252647][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 11:06:55,648 [DEBUG][       Thread-252647][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 11:06:55,648 [DEBUG][       Thread-252647][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 11:06:55,648 [DEBUG][       Thread-252647][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 11:06:55,648 [DEBUG][       Thread-252647][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 11:06:55,648 [DEBUG][       Thread-252647][   transport.py][1871] : Compression: none
2025-06-13 11:06:55,648 [DEBUG][       Thread-252647][   transport.py][1871] : === End of kex handshake ===
2025-06-13 11:06:55,662 [DEBUG][       Thread-252647][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 11:06:55,663 [DEBUG][       Thread-252647][   transport.py][1871] : Switch to new keys ...
2025-06-13 11:06:55,663 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 11:06:55,664 [DEBUG][       Thread-252647][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 11:06:55,664 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 11:06:55,666 [DEBUG][       Thread-252647][   transport.py][1871] : userauth is OK
2025-06-13 11:06:55,690 [ INFO][       Thread-252647][   transport.py][1871] : Authentication (password) successful!
2025-06-13 11:06:55,691 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 11:06:56,445 [DEBUG][       Thread-252647][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 11:06:56,445 [DEBUG][       Thread-252647][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 11:06:56,489 [DEBUG][       Thread-252647][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 11:06:56,489 [DEBUG][       Thread-252647][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 11:06:56,493 [DEBUG][       Thread-252647][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 11:06:56,507 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 11:06:56,507 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 11:06:56,509 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 11:06:56,511 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 11:06:56,516 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 11:06:56,518 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 11:06:56,518 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 11:06:56,519 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 11:06:56,519 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.379453 -999.00   +9.50  24.64     52   +0.30 1 1 1 1 1   887    0 9.07 1.18 ----- 23.9 24.6 45.2 29.3 14.2 -28.0 12.8 -30.2 11.9 -28.1 13.3 -26.3
2025-06-13 11:06:56,519 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 11:06:56,519 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 11:06:56,519 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.379453
2025-06-13 11:06:56,520 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 11:06:56,520 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 11:06:56,520 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 11:06:56,520 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 11:06:56,520 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 11:06:56,521 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T11:06:32', tmtdew=10.05, humidity=49.71, cloud=0.0, wind=15.35, temperature=9.75, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T09:06:24.739', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 11:06:56,521 [DEBUG][       Thread-252647][   transport.py][1871] : EOF in transport thread
2025-06-13 11:06:56,605 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 11:06:56,615 [DEBUG][       Thread-252650][   transport.py][1871] : starting thread (client mode): 0x867fe230
2025-06-13 11:06:56,615 [DEBUG][       Thread-252650][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 11:06:56,630 [DEBUG][       Thread-252650][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 11:06:56,630 [ INFO][       Thread-252650][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 11:06:56,638 [DEBUG][       Thread-252650][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 11:06:56,638 [DEBUG][       Thread-252650][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 11:06:56,638 [DEBUG][       Thread-252650][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 11:06:56,638 [DEBUG][       Thread-252650][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:06:56,638 [DEBUG][       Thread-252650][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:06:56,638 [DEBUG][       Thread-252650][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:06:56,638 [DEBUG][       Thread-252650][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:06:56,638 [DEBUG][       Thread-252650][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 11:06:56,638 [DEBUG][       Thread-252650][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 11:06:56,638 [DEBUG][       Thread-252650][   transport.py][1871] : client lang: <none>
2025-06-13 11:06:56,638 [DEBUG][       Thread-252650][   transport.py][1871] : server lang: <none>
2025-06-13 11:06:56,638 [DEBUG][       Thread-252650][   transport.py][1871] : kex follows: False
2025-06-13 11:06:56,638 [DEBUG][       Thread-252650][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 11:06:56,638 [DEBUG][       Thread-252650][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 11:06:56,638 [DEBUG][       Thread-252650][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 11:06:56,638 [DEBUG][       Thread-252650][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 11:06:56,638 [DEBUG][       Thread-252650][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 11:06:56,638 [DEBUG][       Thread-252650][   transport.py][1871] : Compression: none
2025-06-13 11:06:56,639 [DEBUG][       Thread-252650][   transport.py][1871] : === End of kex handshake ===
2025-06-13 11:06:56,696 [DEBUG][       Thread-252650][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 11:06:56,696 [DEBUG][       Thread-252650][   transport.py][1871] : Switch to new keys ...
2025-06-13 11:06:56,697 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 11:06:56,698 [DEBUG][       Thread-252650][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 11:06:56,698 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 11:06:56,756 [DEBUG][       Thread-252650][   transport.py][1871] : userauth is OK
2025-06-13 11:06:56,756 [DEBUG][       Thread-252650][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 11:06:56,756 [DEBUG][       Thread-252650][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 11:06:56,756 [DEBUG][       Thread-252650][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 11:06:56,757 [DEBUG][       Thread-252650][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 11:06:56,776 [ INFO][       Thread-252650][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 11:06:56,777 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 11:06:56,778 [DEBUG][Thread-252652 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:06:56,778 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 11:06:57,821 [DEBUG][       Thread-252650][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 11:06:57,821 [DEBUG][       Thread-252650][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 11:06:57,862 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:06:57,863 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:06:57,878 [DEBUG][       Thread-252650][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 11:06:57,878 [DEBUG][       Thread-252650][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 11:06:57,889 [DEBUG][       Thread-252650][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 11:06:57,902 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 11:06:57,902 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 11:06:57,913 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 11:06:57,924 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 11:06:57,924 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 11:06:57,925 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 11:06:57,934 [DEBUG][       Thread-252650][   transport.py][1871] : EOF in transport thread
2025-06-13 11:07:00,911 [DEBUG][Thread-252653 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:07:07,935 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 11:07:07,935 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 11:07:07,935 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 11:07:07,938 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 11:07:08,187 [DEBUG][Thread-252654 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:07:08,418 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 11, 7, 4), 10.08, 49.63, 0.0, 17.36, 9.78, 0, 0, 0, 2, 0, 0),)
2025-06-13 11:07:08,418 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 11:07:04
2025-06-13 11:07:08,499 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 11:07:08,505 [DEBUG][       Thread-252655][   transport.py][1871] : starting thread (client mode): 0x863bf070
2025-06-13 11:07:08,505 [DEBUG][       Thread-252655][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 11:07:08,526 [DEBUG][       Thread-252655][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 11:07:08,526 [ INFO][       Thread-252655][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 11:07:08,527 [DEBUG][       Thread-252655][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 11:07:08,527 [DEBUG][       Thread-252655][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 11:07:08,527 [DEBUG][       Thread-252655][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 11:07:08,527 [DEBUG][       Thread-252655][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:07:08,527 [DEBUG][       Thread-252655][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:07:08,527 [DEBUG][       Thread-252655][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:07:08,527 [DEBUG][       Thread-252655][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:07:08,527 [DEBUG][       Thread-252655][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 11:07:08,527 [DEBUG][       Thread-252655][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 11:07:08,527 [DEBUG][       Thread-252655][   transport.py][1871] : client lang: <none>
2025-06-13 11:07:08,527 [DEBUG][       Thread-252655][   transport.py][1871] : server lang: <none>
2025-06-13 11:07:08,527 [DEBUG][       Thread-252655][   transport.py][1871] : kex follows: False
2025-06-13 11:07:08,527 [DEBUG][       Thread-252655][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 11:07:08,527 [DEBUG][       Thread-252655][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 11:07:08,527 [DEBUG][       Thread-252655][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 11:07:08,527 [DEBUG][       Thread-252655][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 11:07:08,527 [DEBUG][       Thread-252655][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 11:07:08,527 [DEBUG][       Thread-252655][   transport.py][1871] : Compression: none
2025-06-13 11:07:08,527 [DEBUG][       Thread-252655][   transport.py][1871] : === End of kex handshake ===
2025-06-13 11:07:08,536 [DEBUG][       Thread-252655][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 11:07:08,536 [DEBUG][       Thread-252655][   transport.py][1871] : Switch to new keys ...
2025-06-13 11:07:08,537 [DEBUG][       Thread-252655][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 11:07:08,537 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 11:07:08,537 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 11:07:08,538 [DEBUG][       Thread-252655][   transport.py][1871] : userauth is OK
2025-06-13 11:07:08,551 [ INFO][       Thread-252655][   transport.py][1871] : Authentication (password) successful!
2025-06-13 11:07:08,551 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 11:07:09,286 [DEBUG][       Thread-252655][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 11:07:09,287 [DEBUG][       Thread-252655][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 11:07:09,329 [DEBUG][       Thread-252655][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 11:07:09,329 [DEBUG][       Thread-252655][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 11:07:09,333 [DEBUG][       Thread-252655][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 11:07:09,345 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 11:07:09,345 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 11:07:09,347 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 11:07:09,349 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 11:07:09,356 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 11:07:09,357 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 11:07:09,358 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 11:07:09,358 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 11:07:09,359 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.379453 -999.00   +9.50  24.64     52   +0.30 1 1 1 1 1   887    0 9.07 1.18 ----- 23.9 24.6 45.2 29.3 14.2 -28.0 12.8 -30.2 11.9 -28.1 13.3 -26.3
2025-06-13 11:07:09,359 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 11:07:09,359 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 11:07:09,359 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.379453
2025-06-13 11:07:09,359 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 11:07:09,360 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 11:07:09,360 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 11:07:09,360 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 11:07:09,360 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 11:07:09,360 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T11:07:04', tmtdew=10.08, humidity=49.63, cloud=0.0, wind=17.36, temperature=9.78, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T09:06:24.739', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 11:07:09,361 [DEBUG][       Thread-252655][   transport.py][1871] : EOF in transport thread
2025-06-13 11:07:09,444 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 11:07:09,455 [DEBUG][       Thread-252658][   transport.py][1871] : starting thread (client mode): 0x863c8be0
2025-06-13 11:07:09,455 [DEBUG][       Thread-252658][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 11:07:09,470 [DEBUG][       Thread-252658][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 11:07:09,470 [ INFO][       Thread-252658][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 11:07:09,478 [DEBUG][       Thread-252658][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 11:07:09,478 [DEBUG][       Thread-252658][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 11:07:09,478 [DEBUG][       Thread-252658][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 11:07:09,479 [DEBUG][       Thread-252658][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:07:09,479 [DEBUG][       Thread-252658][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:07:09,479 [DEBUG][       Thread-252658][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:07:09,479 [DEBUG][       Thread-252658][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:07:09,479 [DEBUG][       Thread-252658][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 11:07:09,479 [DEBUG][       Thread-252658][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 11:07:09,479 [DEBUG][       Thread-252658][   transport.py][1871] : client lang: <none>
2025-06-13 11:07:09,479 [DEBUG][       Thread-252658][   transport.py][1871] : server lang: <none>
2025-06-13 11:07:09,479 [DEBUG][       Thread-252658][   transport.py][1871] : kex follows: False
2025-06-13 11:07:09,479 [DEBUG][       Thread-252658][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 11:07:09,479 [DEBUG][       Thread-252658][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 11:07:09,479 [DEBUG][       Thread-252658][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 11:07:09,479 [DEBUG][       Thread-252658][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 11:07:09,479 [DEBUG][       Thread-252658][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 11:07:09,479 [DEBUG][       Thread-252658][   transport.py][1871] : Compression: none
2025-06-13 11:07:09,479 [DEBUG][       Thread-252658][   transport.py][1871] : === End of kex handshake ===
2025-06-13 11:07:09,536 [DEBUG][       Thread-252658][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 11:07:09,536 [DEBUG][       Thread-252658][   transport.py][1871] : Switch to new keys ...
2025-06-13 11:07:09,537 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 11:07:09,538 [DEBUG][       Thread-252658][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 11:07:09,538 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 11:07:09,597 [DEBUG][       Thread-252658][   transport.py][1871] : userauth is OK
2025-06-13 11:07:09,597 [DEBUG][       Thread-252658][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 11:07:09,598 [DEBUG][       Thread-252658][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 11:07:09,598 [DEBUG][       Thread-252658][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 11:07:09,598 [DEBUG][       Thread-252658][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 11:07:09,629 [ INFO][       Thread-252658][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 11:07:09,630 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 11:07:09,630 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 11:07:09,932 [DEBUG][Thread-252660 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:07:10,617 [DEBUG][       Thread-252658][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 11:07:10,617 [DEBUG][       Thread-252658][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 11:07:10,668 [DEBUG][       Thread-252658][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 11:07:10,668 [DEBUG][       Thread-252658][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 11:07:10,677 [DEBUG][       Thread-252658][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 11:07:10,685 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 11:07:10,685 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 11:07:10,693 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 11:07:10,701 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 11:07:10,701 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 11:07:10,701 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 11:07:10,710 [DEBUG][       Thread-252658][   transport.py][1871] : EOF in transport thread
2025-06-13 11:07:18,970 [DEBUG][Thread-252661 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:07:20,712 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 11:07:20,712 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 11:07:20,712 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 11:07:20,714 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 11:07:21,177 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 11, 7, 4), 10.08, 49.63, 0.0, 17.36, 9.78, 0, 0, 0, 2, 0, 0),)
2025-06-13 11:07:21,177 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 11:07:04
2025-06-13 11:07:21,258 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 11:07:21,262 [DEBUG][       Thread-252662][   transport.py][1871] : starting thread (client mode): 0x86368970
2025-06-13 11:07:21,262 [DEBUG][       Thread-252662][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 11:07:21,283 [DEBUG][       Thread-252662][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 11:07:21,283 [ INFO][       Thread-252662][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 11:07:21,286 [DEBUG][       Thread-252662][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 11:07:21,286 [DEBUG][       Thread-252662][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 11:07:21,286 [DEBUG][       Thread-252662][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 11:07:21,286 [DEBUG][       Thread-252662][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:07:21,286 [DEBUG][       Thread-252662][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:07:21,286 [DEBUG][       Thread-252662][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:07:21,286 [DEBUG][       Thread-252662][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:07:21,286 [DEBUG][       Thread-252662][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 11:07:21,286 [DEBUG][       Thread-252662][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 11:07:21,286 [DEBUG][       Thread-252662][   transport.py][1871] : client lang: <none>
2025-06-13 11:07:21,286 [DEBUG][       Thread-252662][   transport.py][1871] : server lang: <none>
2025-06-13 11:07:21,286 [DEBUG][       Thread-252662][   transport.py][1871] : kex follows: False
2025-06-13 11:07:21,286 [DEBUG][       Thread-252662][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 11:07:21,287 [DEBUG][       Thread-252662][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 11:07:21,287 [DEBUG][       Thread-252662][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 11:07:21,287 [DEBUG][       Thread-252662][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 11:07:21,287 [DEBUG][       Thread-252662][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 11:07:21,287 [DEBUG][       Thread-252662][   transport.py][1871] : Compression: none
2025-06-13 11:07:21,287 [DEBUG][       Thread-252662][   transport.py][1871] : === End of kex handshake ===
2025-06-13 11:07:21,301 [DEBUG][       Thread-252662][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 11:07:21,302 [DEBUG][       Thread-252662][   transport.py][1871] : Switch to new keys ...
2025-06-13 11:07:21,302 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 11:07:21,302 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 11:07:21,303 [DEBUG][       Thread-252662][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 11:07:21,303 [DEBUG][       Thread-252662][   transport.py][1871] : userauth is OK
2025-06-13 11:07:21,316 [ INFO][       Thread-252662][   transport.py][1871] : Authentication (password) successful!
2025-06-13 11:07:21,317 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 11:07:21,936 [DEBUG][       Thread-252662][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 11:07:21,937 [DEBUG][       Thread-252662][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 11:07:21,981 [DEBUG][       Thread-252662][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 11:07:21,981 [DEBUG][       Thread-252662][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 11:07:21,985 [DEBUG][       Thread-252662][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 11:07:21,996 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 11:07:21,996 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 11:07:21,998 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 11:07:22,000 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 11:07:22,007 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 11:07:22,009 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 11:07:22,009 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 11:07:22,010 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 11:07:22,010 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.379800 -999.00   +9.50  25.52     51   +0.00 1 1 1 1 1   887    0 9.13 2.53 ----- 20.7 25.5 55.6 31.0 14.2 -28.0 12.8 -30.3 11.9 -28.4 13.3 -26.7
2025-06-13 11:07:22,010 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 11:07:22,010 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 11:07:22,010 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.379800
2025-06-13 11:07:22,011 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 11:07:22,011 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 11:07:22,012 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 11:07:22,012 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 11:07:22,012 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 11:07:22,012 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T11:07:04', tmtdew=10.08, humidity=49.63, cloud=0.0, wind=17.36, temperature=9.78, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T09:06:54.720', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 11:07:22,013 [DEBUG][       Thread-252662][   transport.py][1871] : EOF in transport thread
2025-06-13 11:07:22,085 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 11:07:22,100 [DEBUG][       Thread-252665][   transport.py][1871] : starting thread (client mode): 0x867b46a0
2025-06-13 11:07:22,100 [DEBUG][       Thread-252665][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 11:07:22,117 [DEBUG][       Thread-252665][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 11:07:22,117 [ INFO][       Thread-252665][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 11:07:22,126 [DEBUG][       Thread-252665][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 11:07:22,126 [DEBUG][       Thread-252665][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 11:07:22,126 [DEBUG][       Thread-252665][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 11:07:22,126 [DEBUG][       Thread-252665][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:07:22,126 [DEBUG][       Thread-252665][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:07:22,126 [DEBUG][       Thread-252665][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:07:22,126 [DEBUG][       Thread-252665][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:07:22,126 [DEBUG][       Thread-252665][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 11:07:22,126 [DEBUG][       Thread-252665][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 11:07:22,126 [DEBUG][       Thread-252665][   transport.py][1871] : client lang: <none>
2025-06-13 11:07:22,126 [DEBUG][       Thread-252665][   transport.py][1871] : server lang: <none>
2025-06-13 11:07:22,127 [DEBUG][       Thread-252665][   transport.py][1871] : kex follows: False
2025-06-13 11:07:22,127 [DEBUG][       Thread-252665][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 11:07:22,127 [DEBUG][       Thread-252665][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 11:07:22,127 [DEBUG][       Thread-252665][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 11:07:22,127 [DEBUG][       Thread-252665][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 11:07:22,127 [DEBUG][       Thread-252665][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 11:07:22,127 [DEBUG][       Thread-252665][   transport.py][1871] : Compression: none
2025-06-13 11:07:22,127 [DEBUG][       Thread-252665][   transport.py][1871] : === End of kex handshake ===
2025-06-13 11:07:22,186 [DEBUG][       Thread-252665][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 11:07:22,187 [DEBUG][       Thread-252665][   transport.py][1871] : Switch to new keys ...
2025-06-13 11:07:22,187 [DEBUG][       Thread-252665][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 11:07:22,187 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 11:07:22,188 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 11:07:22,243 [DEBUG][       Thread-252665][   transport.py][1871] : userauth is OK
2025-06-13 11:07:22,244 [DEBUG][       Thread-252665][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 11:07:22,244 [DEBUG][       Thread-252665][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 11:07:22,244 [DEBUG][       Thread-252665][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 11:07:22,244 [DEBUG][       Thread-252665][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 11:07:22,264 [ INFO][       Thread-252665][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 11:07:22,265 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 11:07:22,265 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 11:07:23,297 [DEBUG][       Thread-252665][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 11:07:23,297 [DEBUG][       Thread-252665][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 11:07:23,348 [DEBUG][       Thread-252665][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 11:07:23,349 [DEBUG][       Thread-252665][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 11:07:23,358 [DEBUG][       Thread-252665][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 11:07:23,369 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 11:07:23,369 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 11:07:23,380 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 11:07:23,390 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 11:07:23,390 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 11:07:23,390 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 11:07:23,399 [DEBUG][       Thread-252665][   transport.py][1871] : EOF in transport thread
2025-06-13 11:07:27,993 [DEBUG][Thread-252667 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:07:32,072 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:07:32,072 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:07:33,401 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 11:07:33,401 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 11:07:33,401 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 11:07:33,404 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 11:07:33,867 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 11, 7, 4), 10.08, 49.63, 0.0, 17.36, 9.78, 0, 0, 0, 2, 0, 0),)
2025-06-13 11:07:33,867 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 11:07:04
2025-06-13 11:07:33,949 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 11:07:33,955 [DEBUG][       Thread-252668][   transport.py][1871] : starting thread (client mode): 0x84206ef0
2025-06-13 11:07:33,955 [DEBUG][       Thread-252668][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 11:07:33,970 [DEBUG][       Thread-252668][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 11:07:33,970 [ INFO][       Thread-252668][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 11:07:33,973 [DEBUG][       Thread-252668][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 11:07:33,974 [DEBUG][       Thread-252668][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 11:07:33,974 [DEBUG][       Thread-252668][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 11:07:33,974 [DEBUG][       Thread-252668][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:07:33,974 [DEBUG][       Thread-252668][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:07:33,974 [DEBUG][       Thread-252668][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:07:33,974 [DEBUG][       Thread-252668][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:07:33,974 [DEBUG][       Thread-252668][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 11:07:33,974 [DEBUG][       Thread-252668][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 11:07:33,974 [DEBUG][       Thread-252668][   transport.py][1871] : client lang: <none>
2025-06-13 11:07:33,974 [DEBUG][       Thread-252668][   transport.py][1871] : server lang: <none>
2025-06-13 11:07:33,974 [DEBUG][       Thread-252668][   transport.py][1871] : kex follows: False
2025-06-13 11:07:33,974 [DEBUG][       Thread-252668][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 11:07:33,974 [DEBUG][       Thread-252668][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 11:07:33,974 [DEBUG][       Thread-252668][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 11:07:33,974 [DEBUG][       Thread-252668][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 11:07:33,974 [DEBUG][       Thread-252668][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 11:07:33,974 [DEBUG][       Thread-252668][   transport.py][1871] : Compression: none
2025-06-13 11:07:33,974 [DEBUG][       Thread-252668][   transport.py][1871] : === End of kex handshake ===
2025-06-13 11:07:33,991 [DEBUG][       Thread-252668][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 11:07:33,992 [DEBUG][       Thread-252668][   transport.py][1871] : Switch to new keys ...
2025-06-13 11:07:33,992 [DEBUG][       Thread-252668][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 11:07:33,993 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 11:07:33,993 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 11:07:33,994 [DEBUG][       Thread-252668][   transport.py][1871] : userauth is OK
2025-06-13 11:07:34,019 [ INFO][       Thread-252668][   transport.py][1871] : Authentication (password) successful!
2025-06-13 11:07:34,019 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 11:07:34,689 [DEBUG][       Thread-252668][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 11:07:34,689 [DEBUG][       Thread-252668][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 11:07:34,733 [DEBUG][       Thread-252668][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 11:07:34,733 [DEBUG][       Thread-252668][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 11:07:34,736 [DEBUG][       Thread-252668][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 11:07:34,747 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 11:07:34,747 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 11:07:34,749 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 11:07:34,751 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 11:07:34,756 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 11:07:34,758 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 11:07:34,758 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 11:07:34,759 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 11:07:34,759 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.379800 -999.00   +9.50  25.52     51   +0.00 1 1 1 1 1   887    0 9.13 2.53 ----- 20.7 25.5 55.6 31.0 14.2 -28.0 12.8 -30.3 11.9 -28.4 13.3 -26.7
2025-06-13 11:07:34,759 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 11:07:34,759 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 11:07:34,759 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.379800
2025-06-13 11:07:34,759 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 11:07:34,760 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 11:07:34,760 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 11:07:34,760 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 11:07:34,760 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 11:07:34,760 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T11:07:04', tmtdew=10.08, humidity=49.63, cloud=0.0, wind=17.36, temperature=9.78, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T09:06:54.720', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 11:07:34,761 [DEBUG][       Thread-252668][   transport.py][1871] : EOF in transport thread
2025-06-13 11:07:34,843 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 11:07:34,857 [DEBUG][       Thread-252671][   transport.py][1871] : starting thread (client mode): 0x842054e0
2025-06-13 11:07:34,857 [DEBUG][       Thread-252671][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 11:07:34,874 [DEBUG][       Thread-252671][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 11:07:34,874 [ INFO][       Thread-252671][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 11:07:34,882 [DEBUG][       Thread-252671][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 11:07:34,882 [DEBUG][       Thread-252671][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 11:07:34,882 [DEBUG][       Thread-252671][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 11:07:34,882 [DEBUG][       Thread-252671][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:07:34,882 [DEBUG][       Thread-252671][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:07:34,882 [DEBUG][       Thread-252671][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:07:34,882 [DEBUG][       Thread-252671][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:07:34,882 [DEBUG][       Thread-252671][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 11:07:34,882 [DEBUG][       Thread-252671][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 11:07:34,882 [DEBUG][       Thread-252671][   transport.py][1871] : client lang: <none>
2025-06-13 11:07:34,882 [DEBUG][       Thread-252671][   transport.py][1871] : server lang: <none>
2025-06-13 11:07:34,883 [DEBUG][       Thread-252671][   transport.py][1871] : kex follows: False
2025-06-13 11:07:34,883 [DEBUG][       Thread-252671][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 11:07:34,883 [DEBUG][       Thread-252671][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 11:07:34,883 [DEBUG][       Thread-252671][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 11:07:34,883 [DEBUG][       Thread-252671][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 11:07:34,883 [DEBUG][       Thread-252671][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 11:07:34,883 [DEBUG][       Thread-252671][   transport.py][1871] : Compression: none
2025-06-13 11:07:34,883 [DEBUG][       Thread-252671][   transport.py][1871] : === End of kex handshake ===
2025-06-13 11:07:34,939 [DEBUG][       Thread-252671][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 11:07:34,940 [DEBUG][       Thread-252671][   transport.py][1871] : Switch to new keys ...
2025-06-13 11:07:34,941 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 11:07:34,941 [DEBUG][       Thread-252671][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 11:07:34,942 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 11:07:34,995 [DEBUG][       Thread-252671][   transport.py][1871] : userauth is OK
2025-06-13 11:07:34,996 [DEBUG][       Thread-252671][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 11:07:34,996 [DEBUG][       Thread-252671][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 11:07:34,996 [DEBUG][       Thread-252671][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 11:07:34,996 [DEBUG][       Thread-252671][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 11:07:35,015 [ INFO][       Thread-252671][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 11:07:35,015 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 11:07:35,016 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 11:07:36,074 [DEBUG][       Thread-252671][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 11:07:36,074 [DEBUG][       Thread-252671][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 11:07:36,124 [DEBUG][       Thread-252671][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 11:07:36,124 [DEBUG][       Thread-252671][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 11:07:36,134 [DEBUG][       Thread-252671][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 11:07:36,143 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 11:07:36,144 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 11:07:36,153 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 11:07:36,162 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 11:07:36,163 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 11:07:36,163 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 11:07:36,172 [DEBUG][       Thread-252671][   transport.py][1871] : EOF in transport thread
2025-06-13 11:07:37,011 [DEBUG][Thread-252673 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:07:46,032 [DEBUG][Thread-252674 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:07:46,164 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 11:07:46,164 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 11:07:46,164 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 11:07:46,167 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 11:07:46,646 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 11, 7, 36), 10.36, 48.46, 0.0, 15.14, 9.72, 0, 0, 0, 2, 0, 0),)
2025-06-13 11:07:46,646 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 11:07:36
2025-06-13 11:07:46,728 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 11:07:46,735 [DEBUG][       Thread-252675][   transport.py][1871] : starting thread (client mode): 0x84207a30
2025-06-13 11:07:46,736 [DEBUG][       Thread-252675][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 11:07:46,755 [DEBUG][       Thread-252675][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 11:07:46,755 [ INFO][       Thread-252675][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 11:07:46,758 [DEBUG][       Thread-252675][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 11:07:46,758 [DEBUG][       Thread-252675][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 11:07:46,758 [DEBUG][       Thread-252675][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 11:07:46,758 [DEBUG][       Thread-252675][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:07:46,758 [DEBUG][       Thread-252675][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:07:46,758 [DEBUG][       Thread-252675][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:07:46,758 [DEBUG][       Thread-252675][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:07:46,758 [DEBUG][       Thread-252675][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 11:07:46,758 [DEBUG][       Thread-252675][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 11:07:46,758 [DEBUG][       Thread-252675][   transport.py][1871] : client lang: <none>
2025-06-13 11:07:46,758 [DEBUG][       Thread-252675][   transport.py][1871] : server lang: <none>
2025-06-13 11:07:46,758 [DEBUG][       Thread-252675][   transport.py][1871] : kex follows: False
2025-06-13 11:07:46,758 [DEBUG][       Thread-252675][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 11:07:46,758 [DEBUG][       Thread-252675][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 11:07:46,758 [DEBUG][       Thread-252675][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 11:07:46,758 [DEBUG][       Thread-252675][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 11:07:46,758 [DEBUG][       Thread-252675][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 11:07:46,758 [DEBUG][       Thread-252675][   transport.py][1871] : Compression: none
2025-06-13 11:07:46,758 [DEBUG][       Thread-252675][   transport.py][1871] : === End of kex handshake ===
2025-06-13 11:07:46,773 [DEBUG][       Thread-252675][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 11:07:46,774 [DEBUG][       Thread-252675][   transport.py][1871] : Switch to new keys ...
2025-06-13 11:07:46,774 [DEBUG][       Thread-252675][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 11:07:46,774 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 11:07:46,774 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 11:07:46,774 [DEBUG][       Thread-252675][   transport.py][1871] : userauth is OK
2025-06-13 11:07:46,787 [ INFO][       Thread-252675][   transport.py][1871] : Authentication (password) successful!
2025-06-13 11:07:46,787 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 11:07:47,351 [DEBUG][       Thread-252675][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 11:07:47,351 [DEBUG][       Thread-252675][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 11:07:47,392 [DEBUG][       Thread-252675][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 11:07:47,393 [DEBUG][       Thread-252675][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 11:07:47,395 [DEBUG][       Thread-252675][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 11:07:47,407 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 11:07:47,407 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 11:07:47,408 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 11:07:47,410 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 11:07:47,415 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 11:07:47,417 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 11:07:47,417 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 11:07:47,417 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 11:07:47,418 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.380148 -999.00   +9.50  21.00     53   +0.50 1 1 1 1 1   887    0 8.97 4.27 ----- 23.0 21.0 44.8 25.0 14.1 -28.4 12.9 -29.3 12.0 -27.5 13.3 -26.2
2025-06-13 11:07:47,418 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 11:07:47,418 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 11:07:47,418 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.380148
2025-06-13 11:07:47,418 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 11:07:47,419 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 11:07:47,419 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 11:07:47,419 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 11:07:47,419 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 11:07:47,419 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T11:07:36', tmtdew=10.36, humidity=48.46, cloud=0.0, wind=15.14, temperature=9.72, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T09:07:24.787', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 11:07:47,420 [DEBUG][       Thread-252675][   transport.py][1871] : EOF in transport thread
2025-06-13 11:07:47,499 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 11:07:47,513 [DEBUG][       Thread-252678][   transport.py][1871] : starting thread (client mode): 0x863ca1a0
2025-06-13 11:07:47,513 [DEBUG][       Thread-252678][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 11:07:47,529 [DEBUG][       Thread-252678][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 11:07:47,529 [ INFO][       Thread-252678][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 11:07:47,540 [DEBUG][       Thread-252678][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 11:07:47,540 [DEBUG][       Thread-252678][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 11:07:47,540 [DEBUG][       Thread-252678][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 11:07:47,540 [DEBUG][       Thread-252678][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:07:47,540 [DEBUG][       Thread-252678][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:07:47,540 [DEBUG][       Thread-252678][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:07:47,540 [DEBUG][       Thread-252678][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:07:47,540 [DEBUG][       Thread-252678][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 11:07:47,540 [DEBUG][       Thread-252678][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 11:07:47,540 [DEBUG][       Thread-252678][   transport.py][1871] : client lang: <none>
2025-06-13 11:07:47,540 [DEBUG][       Thread-252678][   transport.py][1871] : server lang: <none>
2025-06-13 11:07:47,540 [DEBUG][       Thread-252678][   transport.py][1871] : kex follows: False
2025-06-13 11:07:47,540 [DEBUG][       Thread-252678][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 11:07:47,541 [DEBUG][       Thread-252678][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 11:07:47,541 [DEBUG][       Thread-252678][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 11:07:47,541 [DEBUG][       Thread-252678][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 11:07:47,541 [DEBUG][       Thread-252678][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 11:07:47,541 [DEBUG][       Thread-252678][   transport.py][1871] : Compression: none
2025-06-13 11:07:47,541 [DEBUG][       Thread-252678][   transport.py][1871] : === End of kex handshake ===
2025-06-13 11:07:47,605 [DEBUG][       Thread-252678][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 11:07:47,606 [DEBUG][       Thread-252678][   transport.py][1871] : Switch to new keys ...
2025-06-13 11:07:47,606 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 11:07:47,607 [DEBUG][       Thread-252678][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 11:07:47,608 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 11:07:47,665 [DEBUG][       Thread-252678][   transport.py][1871] : userauth is OK
2025-06-13 11:07:47,665 [DEBUG][       Thread-252678][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 11:07:47,665 [DEBUG][       Thread-252678][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 11:07:47,665 [DEBUG][       Thread-252678][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 11:07:47,665 [DEBUG][       Thread-252678][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 11:07:47,684 [ INFO][       Thread-252678][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 11:07:47,685 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 11:07:47,685 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 11:07:48,709 [DEBUG][       Thread-252678][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 11:07:48,710 [DEBUG][       Thread-252678][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 11:07:48,760 [DEBUG][       Thread-252678][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 11:07:48,760 [DEBUG][       Thread-252678][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 11:07:48,770 [DEBUG][       Thread-252678][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 11:07:48,779 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 11:07:48,780 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 11:07:48,791 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 11:07:48,800 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 11:07:48,800 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 11:07:48,801 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 11:07:48,809 [DEBUG][       Thread-252678][   transport.py][1871] : EOF in transport thread
2025-06-13 11:07:55,055 [DEBUG][Thread-252680 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:07:57,946 [DEBUG][Thread-252681 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:07:58,811 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 11:07:58,812 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 11:07:58,812 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 11:07:58,815 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 11:07:59,014 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:07:59,015 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:07:59,288 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 11, 7, 36), 10.36, 48.46, 0.0, 15.14, 9.72, 0, 0, 0, 2, 0, 0),)
2025-06-13 11:07:59,288 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 11:07:36
2025-06-13 11:07:59,370 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 11:07:59,375 [DEBUG][       Thread-252682][   transport.py][1871] : starting thread (client mode): 0x8636b580
2025-06-13 11:07:59,375 [DEBUG][       Thread-252682][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 11:07:59,395 [DEBUG][       Thread-252682][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 11:07:59,395 [ INFO][       Thread-252682][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 11:07:59,399 [DEBUG][       Thread-252682][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 11:07:59,399 [DEBUG][       Thread-252682][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 11:07:59,399 [DEBUG][       Thread-252682][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 11:07:59,399 [DEBUG][       Thread-252682][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:07:59,399 [DEBUG][       Thread-252682][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:07:59,399 [DEBUG][       Thread-252682][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:07:59,399 [DEBUG][       Thread-252682][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:07:59,399 [DEBUG][       Thread-252682][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 11:07:59,399 [DEBUG][       Thread-252682][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 11:07:59,399 [DEBUG][       Thread-252682][   transport.py][1871] : client lang: <none>
2025-06-13 11:07:59,399 [DEBUG][       Thread-252682][   transport.py][1871] : server lang: <none>
2025-06-13 11:07:59,399 [DEBUG][       Thread-252682][   transport.py][1871] : kex follows: False
2025-06-13 11:07:59,399 [DEBUG][       Thread-252682][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 11:07:59,399 [DEBUG][       Thread-252682][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 11:07:59,399 [DEBUG][       Thread-252682][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 11:07:59,399 [DEBUG][       Thread-252682][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 11:07:59,399 [DEBUG][       Thread-252682][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 11:07:59,399 [DEBUG][       Thread-252682][   transport.py][1871] : Compression: none
2025-06-13 11:07:59,399 [DEBUG][       Thread-252682][   transport.py][1871] : === End of kex handshake ===
2025-06-13 11:07:59,416 [DEBUG][       Thread-252682][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 11:07:59,417 [DEBUG][       Thread-252682][   transport.py][1871] : Switch to new keys ...
2025-06-13 11:07:59,417 [DEBUG][       Thread-252682][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 11:07:59,418 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 11:07:59,418 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 11:07:59,419 [DEBUG][       Thread-252682][   transport.py][1871] : userauth is OK
2025-06-13 11:07:59,432 [ INFO][       Thread-252682][   transport.py][1871] : Authentication (password) successful!
2025-06-13 11:07:59,432 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 11:08:00,042 [DEBUG][       Thread-252682][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 11:08:00,042 [DEBUG][       Thread-252682][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 11:08:00,085 [DEBUG][       Thread-252682][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 11:08:00,085 [DEBUG][       Thread-252682][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 11:08:00,089 [DEBUG][       Thread-252682][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 11:08:00,101 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 11:08:00,102 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 11:08:00,103 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 11:08:00,105 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 11:08:00,111 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 11:08:00,113 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 11:08:00,113 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 11:08:00,114 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 11:08:00,114 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.380148 -999.00   +9.50  21.00     53   +0.50 1 1 1 1 1   887    0 8.97 4.27 ----- 23.0 21.0 44.8 25.0 14.1 -28.4 12.9 -29.3 12.0 -27.5 13.3 -26.2
2025-06-13 11:08:00,114 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 11:08:00,114 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 11:08:00,114 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.380148
2025-06-13 11:08:00,115 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 11:08:00,115 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 11:08:00,116 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 11:08:00,116 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 11:08:00,116 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 11:08:00,116 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T11:07:36', tmtdew=10.36, humidity=48.46, cloud=0.0, wind=15.14, temperature=9.72, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T09:07:24.787', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 11:08:00,117 [DEBUG][       Thread-252682][   transport.py][1871] : EOF in transport thread
2025-06-13 11:08:00,199 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 11:08:00,213 [DEBUG][       Thread-252685][   transport.py][1871] : starting thread (client mode): 0x863c8250
2025-06-13 11:08:00,213 [DEBUG][       Thread-252685][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 11:08:00,228 [DEBUG][       Thread-252685][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 11:08:00,228 [ INFO][       Thread-252685][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 11:08:00,237 [DEBUG][       Thread-252685][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 11:08:00,237 [DEBUG][       Thread-252685][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 11:08:00,237 [DEBUG][       Thread-252685][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 11:08:00,237 [DEBUG][       Thread-252685][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:08:00,237 [DEBUG][       Thread-252685][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:08:00,237 [DEBUG][       Thread-252685][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:08:00,237 [DEBUG][       Thread-252685][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:08:00,237 [DEBUG][       Thread-252685][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 11:08:00,237 [DEBUG][       Thread-252685][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 11:08:00,237 [DEBUG][       Thread-252685][   transport.py][1871] : client lang: <none>
2025-06-13 11:08:00,238 [DEBUG][       Thread-252685][   transport.py][1871] : server lang: <none>
2025-06-13 11:08:00,238 [DEBUG][       Thread-252685][   transport.py][1871] : kex follows: False
2025-06-13 11:08:00,238 [DEBUG][       Thread-252685][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 11:08:00,238 [DEBUG][       Thread-252685][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 11:08:00,238 [DEBUG][       Thread-252685][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 11:08:00,238 [DEBUG][       Thread-252685][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 11:08:00,238 [DEBUG][       Thread-252685][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 11:08:00,238 [DEBUG][       Thread-252685][   transport.py][1871] : Compression: none
2025-06-13 11:08:00,238 [DEBUG][       Thread-252685][   transport.py][1871] : === End of kex handshake ===
2025-06-13 11:08:00,301 [DEBUG][       Thread-252685][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 11:08:00,302 [DEBUG][       Thread-252685][   transport.py][1871] : Switch to new keys ...
2025-06-13 11:08:00,303 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 11:08:00,303 [DEBUG][       Thread-252685][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 11:08:00,304 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 11:08:00,359 [DEBUG][       Thread-252685][   transport.py][1871] : userauth is OK
2025-06-13 11:08:00,359 [DEBUG][       Thread-252685][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 11:08:00,359 [DEBUG][       Thread-252685][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 11:08:00,360 [DEBUG][       Thread-252685][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 11:08:00,360 [DEBUG][       Thread-252685][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 11:08:00,375 [ INFO][       Thread-252685][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 11:08:00,375 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 11:08:00,375 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 11:08:01,432 [DEBUG][       Thread-252685][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 11:08:01,432 [DEBUG][       Thread-252685][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 11:08:01,480 [DEBUG][       Thread-252685][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 11:08:01,480 [DEBUG][       Thread-252685][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 11:08:01,490 [DEBUG][       Thread-252685][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 11:08:01,499 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 11:08:01,499 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 11:08:01,508 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 11:08:01,517 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 11:08:01,518 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 11:08:01,518 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 11:08:01,526 [DEBUG][       Thread-252685][   transport.py][1871] : EOF in transport thread
2025-06-13 11:08:04,090 [DEBUG][Thread-252687 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:08:08,235 [DEBUG][Thread-252688 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:08:11,528 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 11:08:11,528 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 11:08:11,528 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 11:08:11,529 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 11:08:11,982 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 11, 8, 7), 10.3, 48.65, 0.0, 15.03, 9.73, 0, 0, 0, 2, 0, 0),)
2025-06-13 11:08:11,982 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 11:08:07
2025-06-13 11:08:12,063 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 11:08:12,069 [DEBUG][       Thread-252689][   transport.py][1871] : starting thread (client mode): 0x863be2c0
2025-06-13 11:08:12,069 [DEBUG][       Thread-252689][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 11:08:12,090 [DEBUG][       Thread-252689][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 11:08:12,090 [ INFO][       Thread-252689][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 11:08:12,093 [DEBUG][       Thread-252689][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 11:08:12,093 [DEBUG][       Thread-252689][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 11:08:12,093 [DEBUG][       Thread-252689][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 11:08:12,093 [DEBUG][       Thread-252689][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:08:12,093 [DEBUG][       Thread-252689][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:08:12,093 [DEBUG][       Thread-252689][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:08:12,093 [DEBUG][       Thread-252689][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:08:12,093 [DEBUG][       Thread-252689][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 11:08:12,093 [DEBUG][       Thread-252689][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 11:08:12,093 [DEBUG][       Thread-252689][   transport.py][1871] : client lang: <none>
2025-06-13 11:08:12,093 [DEBUG][       Thread-252689][   transport.py][1871] : server lang: <none>
2025-06-13 11:08:12,093 [DEBUG][       Thread-252689][   transport.py][1871] : kex follows: False
2025-06-13 11:08:12,093 [DEBUG][       Thread-252689][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 11:08:12,093 [DEBUG][       Thread-252689][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 11:08:12,093 [DEBUG][       Thread-252689][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 11:08:12,094 [DEBUG][       Thread-252689][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 11:08:12,094 [DEBUG][       Thread-252689][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 11:08:12,094 [DEBUG][       Thread-252689][   transport.py][1871] : Compression: none
2025-06-13 11:08:12,094 [DEBUG][       Thread-252689][   transport.py][1871] : === End of kex handshake ===
2025-06-13 11:08:12,113 [DEBUG][       Thread-252689][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 11:08:12,114 [DEBUG][       Thread-252689][   transport.py][1871] : Switch to new keys ...
2025-06-13 11:08:12,114 [DEBUG][       Thread-252689][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 11:08:12,115 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 11:08:12,115 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 11:08:12,116 [DEBUG][       Thread-252689][   transport.py][1871] : userauth is OK
2025-06-13 11:08:12,129 [ INFO][       Thread-252689][   transport.py][1871] : Authentication (password) successful!
2025-06-13 11:08:12,130 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 11:08:12,826 [DEBUG][       Thread-252689][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 11:08:12,826 [DEBUG][       Thread-252689][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 11:08:12,868 [DEBUG][       Thread-252689][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 11:08:12,868 [DEBUG][       Thread-252689][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 11:08:12,871 [DEBUG][       Thread-252689][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 11:08:12,884 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 11:08:12,884 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 11:08:12,885 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 11:08:12,886 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 11:08:12,889 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 11:08:12,890 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 11:08:12,890 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 11:08:12,891 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 11:08:12,891 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.380148 -999.00   +9.50  21.00     53   +0.50 1 1 1 1 1   887    0 8.97 4.27 ----- 23.0 21.0 44.8 25.0 14.1 -28.4 12.9 -29.3 12.0 -27.5 13.3 -26.2
2025-06-13 11:08:12,891 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 11:08:12,891 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 11:08:12,891 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.380148
2025-06-13 11:08:12,891 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 11:08:12,891 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 11:08:12,891 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 11:08:12,891 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 11:08:12,891 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 11:08:12,891 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T11:08:07', tmtdew=10.3, humidity=48.65, cloud=0.0, wind=15.03, temperature=9.73, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T09:07:24.787', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 11:08:12,891 [DEBUG][       Thread-252689][   transport.py][1871] : EOF in transport thread
2025-06-13 11:08:12,963 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 11:08:12,980 [DEBUG][       Thread-252692][   transport.py][1871] : starting thread (client mode): 0x867fd960
2025-06-13 11:08:12,980 [DEBUG][       Thread-252692][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 11:08:13,000 [DEBUG][       Thread-252692][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 11:08:13,000 [ INFO][       Thread-252692][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 11:08:13,008 [DEBUG][       Thread-252692][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 11:08:13,008 [DEBUG][       Thread-252692][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 11:08:13,008 [DEBUG][       Thread-252692][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 11:08:13,008 [DEBUG][       Thread-252692][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:08:13,008 [DEBUG][       Thread-252692][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:08:13,008 [DEBUG][       Thread-252692][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:08:13,009 [DEBUG][       Thread-252692][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:08:13,009 [DEBUG][       Thread-252692][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 11:08:13,009 [DEBUG][       Thread-252692][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 11:08:13,009 [DEBUG][       Thread-252692][   transport.py][1871] : client lang: <none>
2025-06-13 11:08:13,009 [DEBUG][       Thread-252692][   transport.py][1871] : server lang: <none>
2025-06-13 11:08:13,009 [DEBUG][       Thread-252692][   transport.py][1871] : kex follows: False
2025-06-13 11:08:13,009 [DEBUG][       Thread-252692][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 11:08:13,009 [DEBUG][       Thread-252692][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 11:08:13,009 [DEBUG][       Thread-252692][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 11:08:13,009 [DEBUG][       Thread-252692][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 11:08:13,009 [DEBUG][       Thread-252692][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 11:08:13,009 [DEBUG][       Thread-252692][   transport.py][1871] : Compression: none
2025-06-13 11:08:13,009 [DEBUG][       Thread-252692][   transport.py][1871] : === End of kex handshake ===
2025-06-13 11:08:13,067 [DEBUG][       Thread-252692][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 11:08:13,068 [DEBUG][       Thread-252692][   transport.py][1871] : Switch to new keys ...
2025-06-13 11:08:13,069 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 11:08:13,069 [DEBUG][       Thread-252692][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 11:08:13,070 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 11:08:13,109 [DEBUG][Thread-252694 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:08:13,127 [DEBUG][       Thread-252692][   transport.py][1871] : userauth is OK
2025-06-13 11:08:13,127 [DEBUG][       Thread-252692][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 11:08:13,127 [DEBUG][       Thread-252692][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 11:08:13,127 [DEBUG][       Thread-252692][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 11:08:13,127 [DEBUG][       Thread-252692][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 11:08:13,151 [ INFO][       Thread-252692][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 11:08:13,152 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 11:08:13,152 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 11:08:14,221 [DEBUG][       Thread-252692][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 11:08:14,221 [DEBUG][       Thread-252692][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 11:08:14,272 [DEBUG][       Thread-252692][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 11:08:14,272 [DEBUG][       Thread-252692][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 11:08:14,282 [DEBUG][       Thread-252692][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 11:08:14,292 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 11:08:14,292 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 11:08:14,301 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 11:08:14,312 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 11:08:14,313 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 11:08:14,313 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 11:08:14,322 [DEBUG][       Thread-252692][   transport.py][1871] : EOF in transport thread
2025-06-13 11:08:22,142 [DEBUG][Thread-252695 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:08:24,323 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 11:08:24,324 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 11:08:24,324 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 11:08:24,326 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 11:08:24,792 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 11, 8, 7), 10.3, 48.65, 0.0, 15.03, 9.73, 0, 0, 0, 2, 0, 0),)
2025-06-13 11:08:24,792 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 11:08:07
2025-06-13 11:08:24,874 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 11:08:24,878 [DEBUG][       Thread-252696][   transport.py][1871] : starting thread (client mode): 0x84207fa0
2025-06-13 11:08:24,878 [DEBUG][       Thread-252696][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 11:08:24,899 [DEBUG][       Thread-252696][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 11:08:24,899 [ INFO][       Thread-252696][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 11:08:24,902 [DEBUG][       Thread-252696][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 11:08:24,902 [DEBUG][       Thread-252696][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 11:08:24,902 [DEBUG][       Thread-252696][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 11:08:24,903 [DEBUG][       Thread-252696][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:08:24,903 [DEBUG][       Thread-252696][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:08:24,903 [DEBUG][       Thread-252696][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:08:24,903 [DEBUG][       Thread-252696][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:08:24,903 [DEBUG][       Thread-252696][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 11:08:24,903 [DEBUG][       Thread-252696][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 11:08:24,903 [DEBUG][       Thread-252696][   transport.py][1871] : client lang: <none>
2025-06-13 11:08:24,903 [DEBUG][       Thread-252696][   transport.py][1871] : server lang: <none>
2025-06-13 11:08:24,903 [DEBUG][       Thread-252696][   transport.py][1871] : kex follows: False
2025-06-13 11:08:24,903 [DEBUG][       Thread-252696][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 11:08:24,903 [DEBUG][       Thread-252696][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 11:08:24,903 [DEBUG][       Thread-252696][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 11:08:24,903 [DEBUG][       Thread-252696][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 11:08:24,903 [DEBUG][       Thread-252696][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 11:08:24,903 [DEBUG][       Thread-252696][   transport.py][1871] : Compression: none
2025-06-13 11:08:24,903 [DEBUG][       Thread-252696][   transport.py][1871] : === End of kex handshake ===
2025-06-13 11:08:24,919 [DEBUG][       Thread-252696][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 11:08:24,920 [DEBUG][       Thread-252696][   transport.py][1871] : Switch to new keys ...
2025-06-13 11:08:24,920 [DEBUG][       Thread-252696][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 11:08:24,920 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 11:08:24,921 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 11:08:24,922 [DEBUG][       Thread-252696][   transport.py][1871] : userauth is OK
2025-06-13 11:08:24,946 [ INFO][       Thread-252696][   transport.py][1871] : Authentication (password) successful!
2025-06-13 11:08:24,946 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 11:08:25,595 [DEBUG][       Thread-252696][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 11:08:25,595 [DEBUG][       Thread-252696][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 11:08:25,637 [DEBUG][       Thread-252696][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 11:08:25,637 [DEBUG][       Thread-252696][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 11:08:25,640 [DEBUG][       Thread-252696][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 11:08:25,653 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 11:08:25,653 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 11:08:25,655 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 11:08:25,656 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 11:08:25,661 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 11:08:25,663 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 11:08:25,663 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 11:08:25,664 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 11:08:25,664 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.380495 -999.00   +9.50  23.31     52   +0.40 1 1 1 1 1   887    0 8.83 4.75 ----- 17.8 23.3 60.2 26.3 14.3 -27.6 12.9 -29.8 12.0 -28.0 13.3 -26.7
2025-06-13 11:08:25,664 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 11:08:25,664 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 11:08:25,664 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.380495
2025-06-13 11:08:25,664 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 11:08:25,665 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 11:08:25,665 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 11:08:25,665 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 11:08:25,665 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 11:08:25,665 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T11:08:07', tmtdew=10.3, humidity=48.65, cloud=0.0, wind=15.03, temperature=9.73, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T09:07:54.768', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 11:08:25,666 [DEBUG][       Thread-252696][   transport.py][1871] : EOF in transport thread
2025-06-13 11:08:25,750 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 11:08:25,759 [DEBUG][       Thread-252699][   transport.py][1871] : starting thread (client mode): 0x867b7070
2025-06-13 11:08:25,759 [DEBUG][       Thread-252699][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 11:08:25,774 [DEBUG][       Thread-252699][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 11:08:25,774 [ INFO][       Thread-252699][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 11:08:25,782 [DEBUG][       Thread-252699][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 11:08:25,782 [DEBUG][       Thread-252699][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 11:08:25,782 [DEBUG][       Thread-252699][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 11:08:25,782 [DEBUG][       Thread-252699][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:08:25,782 [DEBUG][       Thread-252699][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:08:25,782 [DEBUG][       Thread-252699][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:08:25,782 [DEBUG][       Thread-252699][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:08:25,782 [DEBUG][       Thread-252699][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 11:08:25,782 [DEBUG][       Thread-252699][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 11:08:25,782 [DEBUG][       Thread-252699][   transport.py][1871] : client lang: <none>
2025-06-13 11:08:25,782 [DEBUG][       Thread-252699][   transport.py][1871] : server lang: <none>
2025-06-13 11:08:25,782 [DEBUG][       Thread-252699][   transport.py][1871] : kex follows: False
2025-06-13 11:08:25,782 [DEBUG][       Thread-252699][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 11:08:25,782 [DEBUG][       Thread-252699][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 11:08:25,782 [DEBUG][       Thread-252699][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 11:08:25,782 [DEBUG][       Thread-252699][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 11:08:25,782 [DEBUG][       Thread-252699][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 11:08:25,782 [DEBUG][       Thread-252699][   transport.py][1871] : Compression: none
2025-06-13 11:08:25,782 [DEBUG][       Thread-252699][   transport.py][1871] : === End of kex handshake ===
2025-06-13 11:08:25,842 [DEBUG][       Thread-252699][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 11:08:25,843 [DEBUG][       Thread-252699][   transport.py][1871] : Switch to new keys ...
2025-06-13 11:08:25,843 [DEBUG][       Thread-252699][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 11:08:25,843 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 11:08:25,844 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 11:08:25,907 [DEBUG][       Thread-252699][   transport.py][1871] : userauth is OK
2025-06-13 11:08:25,907 [DEBUG][       Thread-252699][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 11:08:25,907 [DEBUG][       Thread-252699][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 11:08:25,907 [DEBUG][       Thread-252699][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 11:08:25,907 [DEBUG][       Thread-252699][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 11:08:25,931 [ INFO][       Thread-252699][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 11:08:25,931 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 11:08:25,931 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 11:08:26,966 [DEBUG][       Thread-252699][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 11:08:26,967 [DEBUG][       Thread-252699][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 11:08:27,016 [DEBUG][       Thread-252699][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 11:08:27,016 [DEBUG][       Thread-252699][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 11:08:27,025 [DEBUG][       Thread-252699][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 11:08:27,034 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 11:08:27,034 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 11:08:27,042 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 11:08:27,052 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 11:08:27,053 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 11:08:27,053 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 11:08:27,061 [DEBUG][       Thread-252699][   transport.py][1871] : EOF in transport thread
2025-06-13 11:08:31,160 [DEBUG][Thread-252701 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:08:32,209 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:08:32,210 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:08:37,060 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 11:08:37,060 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 11:08:37,060 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 11:08:37,063 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 11:08:37,532 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 11, 8, 7), 10.3, 48.65, 0.0, 15.03, 9.73, 0, 0, 0, 2, 0, 0),)
2025-06-13 11:08:37,532 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 11:08:07
2025-06-13 11:08:37,614 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 11:08:37,620 [DEBUG][       Thread-252702][   transport.py][1871] : starting thread (client mode): 0x84204a30
2025-06-13 11:08:37,620 [DEBUG][       Thread-252702][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 11:08:37,641 [DEBUG][       Thread-252702][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 11:08:37,641 [ INFO][       Thread-252702][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 11:08:37,645 [DEBUG][       Thread-252702][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 11:08:37,645 [DEBUG][       Thread-252702][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 11:08:37,645 [DEBUG][       Thread-252702][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 11:08:37,645 [DEBUG][       Thread-252702][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:08:37,645 [DEBUG][       Thread-252702][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:08:37,645 [DEBUG][       Thread-252702][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:08:37,645 [DEBUG][       Thread-252702][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:08:37,645 [DEBUG][       Thread-252702][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 11:08:37,645 [DEBUG][       Thread-252702][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 11:08:37,645 [DEBUG][       Thread-252702][   transport.py][1871] : client lang: <none>
2025-06-13 11:08:37,645 [DEBUG][       Thread-252702][   transport.py][1871] : server lang: <none>
2025-06-13 11:08:37,645 [DEBUG][       Thread-252702][   transport.py][1871] : kex follows: False
2025-06-13 11:08:37,645 [DEBUG][       Thread-252702][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 11:08:37,645 [DEBUG][       Thread-252702][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 11:08:37,645 [DEBUG][       Thread-252702][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 11:08:37,645 [DEBUG][       Thread-252702][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 11:08:37,645 [DEBUG][       Thread-252702][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 11:08:37,645 [DEBUG][       Thread-252702][   transport.py][1871] : Compression: none
2025-06-13 11:08:37,645 [DEBUG][       Thread-252702][   transport.py][1871] : === End of kex handshake ===
2025-06-13 11:08:37,662 [DEBUG][       Thread-252702][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 11:08:37,663 [DEBUG][       Thread-252702][   transport.py][1871] : Switch to new keys ...
2025-06-13 11:08:37,663 [DEBUG][       Thread-252702][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 11:08:37,664 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 11:08:37,664 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 11:08:37,665 [DEBUG][       Thread-252702][   transport.py][1871] : userauth is OK
2025-06-13 11:08:37,678 [ INFO][       Thread-252702][   transport.py][1871] : Authentication (password) successful!
2025-06-13 11:08:37,679 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 11:08:38,340 [DEBUG][       Thread-252702][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 11:08:38,340 [DEBUG][       Thread-252702][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 11:08:38,381 [DEBUG][       Thread-252702][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 11:08:38,381 [DEBUG][       Thread-252702][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 11:08:38,384 [DEBUG][       Thread-252702][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 11:08:38,396 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 11:08:38,397 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 11:08:38,399 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 11:08:38,400 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 11:08:38,406 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 11:08:38,408 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 11:08:38,408 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 11:08:38,408 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 11:08:38,409 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.380495 -999.00   +9.50  23.31     52   +0.40 1 1 1 1 1   887    0 8.83 4.75 ----- 17.8 23.3 60.2 26.3 14.3 -27.6 12.9 -29.8 12.0 -28.0 13.3 -26.7
2025-06-13 11:08:38,409 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 11:08:38,409 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 11:08:38,409 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.380495
2025-06-13 11:08:38,409 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 11:08:38,410 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 11:08:38,410 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 11:08:38,410 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 11:08:38,410 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 11:08:38,410 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T11:08:07', tmtdew=10.3, humidity=48.65, cloud=0.0, wind=15.03, temperature=9.73, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T09:07:54.768', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 11:08:38,411 [DEBUG][       Thread-252702][   transport.py][1871] : EOF in transport thread
2025-06-13 11:08:38,493 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 11:08:38,508 [DEBUG][       Thread-252705][   transport.py][1871] : starting thread (client mode): 0x867ffe80
2025-06-13 11:08:38,508 [DEBUG][       Thread-252705][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 11:08:38,527 [DEBUG][       Thread-252705][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 11:08:38,527 [ INFO][       Thread-252705][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 11:08:38,539 [DEBUG][       Thread-252705][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 11:08:38,539 [DEBUG][       Thread-252705][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 11:08:38,539 [DEBUG][       Thread-252705][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 11:08:38,539 [DEBUG][       Thread-252705][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:08:38,539 [DEBUG][       Thread-252705][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:08:38,539 [DEBUG][       Thread-252705][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:08:38,539 [DEBUG][       Thread-252705][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:08:38,539 [DEBUG][       Thread-252705][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 11:08:38,539 [DEBUG][       Thread-252705][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 11:08:38,540 [DEBUG][       Thread-252705][   transport.py][1871] : client lang: <none>
2025-06-13 11:08:38,540 [DEBUG][       Thread-252705][   transport.py][1871] : server lang: <none>
2025-06-13 11:08:38,540 [DEBUG][       Thread-252705][   transport.py][1871] : kex follows: False
2025-06-13 11:08:38,540 [DEBUG][       Thread-252705][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 11:08:38,540 [DEBUG][       Thread-252705][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 11:08:38,540 [DEBUG][       Thread-252705][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 11:08:38,540 [DEBUG][       Thread-252705][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 11:08:38,540 [DEBUG][       Thread-252705][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 11:08:38,540 [DEBUG][       Thread-252705][   transport.py][1871] : Compression: none
2025-06-13 11:08:38,540 [DEBUG][       Thread-252705][   transport.py][1871] : === End of kex handshake ===
2025-06-13 11:08:38,601 [DEBUG][       Thread-252705][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 11:08:38,602 [DEBUG][       Thread-252705][   transport.py][1871] : Switch to new keys ...
2025-06-13 11:08:38,602 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 11:08:38,603 [DEBUG][       Thread-252705][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 11:08:38,604 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 11:08:38,668 [DEBUG][       Thread-252705][   transport.py][1871] : userauth is OK
2025-06-13 11:08:38,668 [DEBUG][       Thread-252705][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 11:08:38,668 [DEBUG][       Thread-252705][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 11:08:38,669 [DEBUG][       Thread-252705][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 11:08:38,669 [DEBUG][       Thread-252705][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 11:08:38,689 [ INFO][       Thread-252705][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 11:08:38,689 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 11:08:38,690 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 11:08:39,686 [DEBUG][       Thread-252705][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 11:08:39,687 [DEBUG][       Thread-252705][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 11:08:39,738 [DEBUG][       Thread-252705][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 11:08:39,738 [DEBUG][       Thread-252705][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 11:08:39,749 [DEBUG][       Thread-252705][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 11:08:39,763 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 11:08:39,763 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 11:08:39,775 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 11:08:39,785 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 11:08:39,786 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 11:08:39,786 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 11:08:39,795 [DEBUG][       Thread-252705][   transport.py][1871] : EOF in transport thread
2025-06-13 11:08:40,181 [DEBUG][Thread-252707 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:08:49,198 [DEBUG][Thread-252708 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:08:49,796 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 11:08:49,797 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 11:08:49,797 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 11:08:49,799 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 11:08:50,271 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 11, 8, 39), 10.37, 48.41, 0.0, 16.69, 9.71, 0, 0, 0, 2, 0, 0),)
2025-06-13 11:08:50,272 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 11:08:39
2025-06-13 11:08:50,352 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 11:08:50,359 [DEBUG][       Thread-252709][   transport.py][1871] : starting thread (client mode): 0x84205de0
2025-06-13 11:08:50,359 [DEBUG][       Thread-252709][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 11:08:50,380 [DEBUG][       Thread-252709][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 11:08:50,380 [ INFO][       Thread-252709][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 11:08:50,383 [DEBUG][       Thread-252709][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 11:08:50,383 [DEBUG][       Thread-252709][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 11:08:50,383 [DEBUG][       Thread-252709][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 11:08:50,383 [DEBUG][       Thread-252709][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:08:50,383 [DEBUG][       Thread-252709][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:08:50,383 [DEBUG][       Thread-252709][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:08:50,383 [DEBUG][       Thread-252709][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:08:50,383 [DEBUG][       Thread-252709][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 11:08:50,383 [DEBUG][       Thread-252709][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 11:08:50,383 [DEBUG][       Thread-252709][   transport.py][1871] : client lang: <none>
2025-06-13 11:08:50,384 [DEBUG][       Thread-252709][   transport.py][1871] : server lang: <none>
2025-06-13 11:08:50,384 [DEBUG][       Thread-252709][   transport.py][1871] : kex follows: False
2025-06-13 11:08:50,384 [DEBUG][       Thread-252709][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 11:08:50,384 [DEBUG][       Thread-252709][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 11:08:50,384 [DEBUG][       Thread-252709][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 11:08:50,384 [DEBUG][       Thread-252709][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 11:08:50,384 [DEBUG][       Thread-252709][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 11:08:50,384 [DEBUG][       Thread-252709][   transport.py][1871] : Compression: none
2025-06-13 11:08:50,384 [DEBUG][       Thread-252709][   transport.py][1871] : === End of kex handshake ===
2025-06-13 11:08:50,401 [DEBUG][       Thread-252709][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 11:08:50,401 [DEBUG][       Thread-252709][   transport.py][1871] : Switch to new keys ...
2025-06-13 11:08:50,402 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 11:08:50,402 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 11:08:50,403 [DEBUG][       Thread-252709][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 11:08:50,403 [DEBUG][       Thread-252709][   transport.py][1871] : userauth is OK
2025-06-13 11:08:50,416 [ INFO][       Thread-252709][   transport.py][1871] : Authentication (password) successful!
2025-06-13 11:08:50,417 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 11:08:51,024 [DEBUG][       Thread-252709][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 11:08:51,024 [DEBUG][       Thread-252709][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 11:08:51,065 [DEBUG][       Thread-252709][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 11:08:51,065 [DEBUG][       Thread-252709][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 11:08:51,069 [DEBUG][       Thread-252709][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 11:08:51,081 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 11:08:51,082 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 11:08:51,083 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 11:08:51,085 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 11:08:51,091 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 11:08:51,093 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 11:08:51,093 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 11:08:51,094 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 11:08:51,094 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.380495 -999.00   +9.50  23.31     52   +0.40 1 1 1 1 1   887    0 8.83 4.75 ----- 17.8 23.3 60.2 26.3 14.3 -27.6 12.9 -29.8 12.0 -28.0 13.3 -26.7
2025-06-13 11:08:51,094 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 11:08:51,094 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 11:08:51,094 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.380495
2025-06-13 11:08:51,095 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 11:08:51,095 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 11:08:51,095 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 11:08:51,095 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 11:08:51,095 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 11:08:51,096 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T11:08:39', tmtdew=10.37, humidity=48.41, cloud=0.0, wind=16.69, temperature=9.71, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T09:07:54.768', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 11:08:51,096 [DEBUG][       Thread-252709][   transport.py][1871] : EOF in transport thread
2025-06-13 11:08:51,179 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 11:08:51,197 [DEBUG][       Thread-252712][   transport.py][1871] : starting thread (client mode): 0x842073a0
2025-06-13 11:08:51,197 [DEBUG][       Thread-252712][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 11:08:51,219 [DEBUG][       Thread-252712][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 11:08:51,220 [ INFO][       Thread-252712][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 11:08:51,228 [DEBUG][       Thread-252712][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 11:08:51,228 [DEBUG][       Thread-252712][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 11:08:51,228 [DEBUG][       Thread-252712][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 11:08:51,228 [DEBUG][       Thread-252712][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:08:51,228 [DEBUG][       Thread-252712][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:08:51,228 [DEBUG][       Thread-252712][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:08:51,229 [DEBUG][       Thread-252712][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:08:51,229 [DEBUG][       Thread-252712][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 11:08:51,229 [DEBUG][       Thread-252712][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 11:08:51,229 [DEBUG][       Thread-252712][   transport.py][1871] : client lang: <none>
2025-06-13 11:08:51,229 [DEBUG][       Thread-252712][   transport.py][1871] : server lang: <none>
2025-06-13 11:08:51,229 [DEBUG][       Thread-252712][   transport.py][1871] : kex follows: False
2025-06-13 11:08:51,229 [DEBUG][       Thread-252712][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 11:08:51,229 [DEBUG][       Thread-252712][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 11:08:51,229 [DEBUG][       Thread-252712][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 11:08:51,229 [DEBUG][       Thread-252712][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 11:08:51,229 [DEBUG][       Thread-252712][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 11:08:51,229 [DEBUG][       Thread-252712][   transport.py][1871] : Compression: none
2025-06-13 11:08:51,229 [DEBUG][       Thread-252712][   transport.py][1871] : === End of kex handshake ===
2025-06-13 11:08:51,290 [DEBUG][       Thread-252712][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 11:08:51,290 [DEBUG][       Thread-252712][   transport.py][1871] : Switch to new keys ...
2025-06-13 11:08:51,291 [DEBUG][       Thread-252712][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 11:08:51,291 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 11:08:51,292 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 11:08:51,355 [DEBUG][       Thread-252712][   transport.py][1871] : userauth is OK
2025-06-13 11:08:51,355 [DEBUG][       Thread-252712][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 11:08:51,355 [DEBUG][       Thread-252712][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 11:08:51,355 [DEBUG][       Thread-252712][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 11:08:51,355 [DEBUG][       Thread-252712][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 11:08:51,374 [ INFO][       Thread-252712][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 11:08:51,375 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 11:08:51,375 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 11:08:52,413 [DEBUG][       Thread-252712][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 11:08:52,414 [DEBUG][       Thread-252712][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 11:08:52,465 [DEBUG][       Thread-252712][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 11:08:52,465 [DEBUG][       Thread-252712][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 11:08:52,476 [DEBUG][       Thread-252712][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 11:08:52,487 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 11:08:52,487 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 11:08:52,497 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 11:08:52,509 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 11:08:52,510 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 11:08:52,510 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 11:08:52,522 [DEBUG][       Thread-252712][   transport.py][1871] : EOF in transport thread
2025-06-13 11:08:58,218 [DEBUG][Thread-252714 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:08:59,082 [DEBUG][Thread-252715 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:09:00,155 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:09:00,157 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:09:02,521 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 11:09:02,521 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 11:09:02,522 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 11:09:02,524 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 11:09:02,988 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 11, 8, 39), 10.37, 48.41, 0.0, 16.69, 9.71, 0, 0, 0, 2, 0, 0),)
2025-06-13 11:09:02,988 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 11:08:39
2025-06-13 11:09:03,069 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 11:09:03,073 [DEBUG][       Thread-252716][   transport.py][1871] : starting thread (client mode): 0x84207af0
2025-06-13 11:09:03,073 [DEBUG][       Thread-252716][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 11:09:03,095 [DEBUG][       Thread-252716][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 11:09:03,095 [ INFO][       Thread-252716][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 11:09:03,099 [DEBUG][       Thread-252716][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 11:09:03,099 [DEBUG][       Thread-252716][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 11:09:03,099 [DEBUG][       Thread-252716][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 11:09:03,099 [DEBUG][       Thread-252716][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:09:03,099 [DEBUG][       Thread-252716][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:09:03,099 [DEBUG][       Thread-252716][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:09:03,099 [DEBUG][       Thread-252716][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:09:03,099 [DEBUG][       Thread-252716][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 11:09:03,099 [DEBUG][       Thread-252716][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 11:09:03,099 [DEBUG][       Thread-252716][   transport.py][1871] : client lang: <none>
2025-06-13 11:09:03,099 [DEBUG][       Thread-252716][   transport.py][1871] : server lang: <none>
2025-06-13 11:09:03,099 [DEBUG][       Thread-252716][   transport.py][1871] : kex follows: False
2025-06-13 11:09:03,099 [DEBUG][       Thread-252716][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 11:09:03,099 [DEBUG][       Thread-252716][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 11:09:03,099 [DEBUG][       Thread-252716][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 11:09:03,099 [DEBUG][       Thread-252716][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 11:09:03,099 [DEBUG][       Thread-252716][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 11:09:03,099 [DEBUG][       Thread-252716][   transport.py][1871] : Compression: none
2025-06-13 11:09:03,099 [DEBUG][       Thread-252716][   transport.py][1871] : === End of kex handshake ===
2025-06-13 11:09:03,117 [DEBUG][       Thread-252716][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 11:09:03,117 [DEBUG][       Thread-252716][   transport.py][1871] : Switch to new keys ...
2025-06-13 11:09:03,117 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 11:09:03,118 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 11:09:03,118 [DEBUG][       Thread-252716][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 11:09:03,118 [DEBUG][       Thread-252716][   transport.py][1871] : userauth is OK
2025-06-13 11:09:03,131 [ INFO][       Thread-252716][   transport.py][1871] : Authentication (password) successful!
2025-06-13 11:09:03,132 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 11:09:03,765 [DEBUG][       Thread-252716][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 11:09:03,765 [DEBUG][       Thread-252716][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 11:09:03,809 [DEBUG][       Thread-252716][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 11:09:03,809 [DEBUG][       Thread-252716][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 11:09:03,812 [DEBUG][       Thread-252716][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 11:09:03,827 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 11:09:03,828 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 11:09:03,830 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 11:09:03,831 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 11:09:03,837 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 11:09:03,839 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 11:09:03,839 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 11:09:03,840 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 11:09:03,840 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.380842 -999.00   +9.60  22.96     52   +0.40 1 1 1 1 1   887    0 9.06 4.78 ----- 23.7 23.0 48.6 25.9 14.3 -27.9 12.8 -28.9 12.1 -27.9 13.4 -26.3
2025-06-13 11:09:03,840 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 11:09:03,840 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 11:09:03,841 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.380842
2025-06-13 11:09:03,841 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 11:09:03,842 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 11:09:03,842 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 11:09:03,842 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 11:09:03,842 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 11:09:03,842 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T11:08:39', tmtdew=10.37, humidity=48.41, cloud=0.0, wind=16.69, temperature=9.71, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T09:08:24.749', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 11:09:03,842 [DEBUG][       Thread-252716][   transport.py][1871] : EOF in transport thread
2025-06-13 11:09:03,925 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 11:09:03,935 [DEBUG][       Thread-252719][   transport.py][1871] : starting thread (client mode): 0x863c8250
2025-06-13 11:09:03,935 [DEBUG][       Thread-252719][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 11:09:03,954 [DEBUG][       Thread-252719][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 11:09:03,954 [ INFO][       Thread-252719][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 11:09:03,961 [DEBUG][       Thread-252719][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 11:09:03,961 [DEBUG][       Thread-252719][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 11:09:03,962 [DEBUG][       Thread-252719][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 11:09:03,962 [DEBUG][       Thread-252719][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:09:03,962 [DEBUG][       Thread-252719][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:09:03,962 [DEBUG][       Thread-252719][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:09:03,962 [DEBUG][       Thread-252719][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:09:03,962 [DEBUG][       Thread-252719][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 11:09:03,962 [DEBUG][       Thread-252719][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 11:09:03,962 [DEBUG][       Thread-252719][   transport.py][1871] : client lang: <none>
2025-06-13 11:09:03,962 [DEBUG][       Thread-252719][   transport.py][1871] : server lang: <none>
2025-06-13 11:09:03,962 [DEBUG][       Thread-252719][   transport.py][1871] : kex follows: False
2025-06-13 11:09:03,962 [DEBUG][       Thread-252719][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 11:09:03,962 [DEBUG][       Thread-252719][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 11:09:03,962 [DEBUG][       Thread-252719][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 11:09:03,962 [DEBUG][       Thread-252719][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 11:09:03,962 [DEBUG][       Thread-252719][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 11:09:03,962 [DEBUG][       Thread-252719][   transport.py][1871] : Compression: none
2025-06-13 11:09:03,962 [DEBUG][       Thread-252719][   transport.py][1871] : === End of kex handshake ===
2025-06-13 11:09:04,022 [DEBUG][       Thread-252719][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 11:09:04,023 [DEBUG][       Thread-252719][   transport.py][1871] : Switch to new keys ...
2025-06-13 11:09:04,023 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 11:09:04,024 [DEBUG][       Thread-252719][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 11:09:04,025 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 11:09:04,082 [DEBUG][       Thread-252719][   transport.py][1871] : userauth is OK
2025-06-13 11:09:04,082 [DEBUG][       Thread-252719][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 11:09:04,082 [DEBUG][       Thread-252719][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 11:09:04,082 [DEBUG][       Thread-252719][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 11:09:04,082 [DEBUG][       Thread-252719][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 11:09:04,110 [ INFO][       Thread-252719][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 11:09:04,111 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 11:09:04,111 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 11:09:05,121 [DEBUG][       Thread-252719][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 11:09:05,121 [DEBUG][       Thread-252719][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 11:09:05,172 [DEBUG][       Thread-252719][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 11:09:05,172 [DEBUG][       Thread-252719][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 11:09:05,181 [DEBUG][       Thread-252719][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 11:09:05,190 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 11:09:05,190 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 11:09:05,199 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 11:09:05,208 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 11:09:05,208 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 11:09:05,209 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 11:09:05,216 [DEBUG][       Thread-252719][   transport.py][1871] : EOF in transport thread
2025-06-13 11:09:07,252 [DEBUG][Thread-252721 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:09:08,296 [DEBUG][Thread-252722 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:09:15,219 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 11:09:15,219 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 11:09:15,219 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 11:09:15,222 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 11:09:15,691 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 11, 9, 11), 10.44, 48.18, 0.0, 19.59, 9.75, 0, 0, 0, 2, 0, 0),)
2025-06-13 11:09:15,691 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 11:09:11
2025-06-13 11:09:15,780 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 11:09:15,787 [DEBUG][       Thread-252723][   transport.py][1871] : starting thread (client mode): 0x863bd420
2025-06-13 11:09:15,787 [DEBUG][       Thread-252723][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 11:09:15,806 [DEBUG][       Thread-252723][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 11:09:15,806 [ INFO][       Thread-252723][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 11:09:15,810 [DEBUG][       Thread-252723][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 11:09:15,810 [DEBUG][       Thread-252723][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 11:09:15,810 [DEBUG][       Thread-252723][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 11:09:15,810 [DEBUG][       Thread-252723][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:09:15,810 [DEBUG][       Thread-252723][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:09:15,810 [DEBUG][       Thread-252723][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:09:15,810 [DEBUG][       Thread-252723][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:09:15,810 [DEBUG][       Thread-252723][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 11:09:15,810 [DEBUG][       Thread-252723][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 11:09:15,810 [DEBUG][       Thread-252723][   transport.py][1871] : client lang: <none>
2025-06-13 11:09:15,810 [DEBUG][       Thread-252723][   transport.py][1871] : server lang: <none>
2025-06-13 11:09:15,810 [DEBUG][       Thread-252723][   transport.py][1871] : kex follows: False
2025-06-13 11:09:15,810 [DEBUG][       Thread-252723][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 11:09:15,810 [DEBUG][       Thread-252723][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 11:09:15,810 [DEBUG][       Thread-252723][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 11:09:15,810 [DEBUG][       Thread-252723][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 11:09:15,810 [DEBUG][       Thread-252723][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 11:09:15,810 [DEBUG][       Thread-252723][   transport.py][1871] : Compression: none
2025-06-13 11:09:15,811 [DEBUG][       Thread-252723][   transport.py][1871] : === End of kex handshake ===
2025-06-13 11:09:15,834 [DEBUG][       Thread-252723][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 11:09:15,834 [DEBUG][       Thread-252723][   transport.py][1871] : Switch to new keys ...
2025-06-13 11:09:15,835 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 11:09:15,835 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 11:09:15,836 [DEBUG][       Thread-252723][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 11:09:15,836 [DEBUG][       Thread-252723][   transport.py][1871] : userauth is OK
2025-06-13 11:09:15,861 [ INFO][       Thread-252723][   transport.py][1871] : Authentication (password) successful!
2025-06-13 11:09:15,862 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 11:09:16,273 [DEBUG][Thread-252725 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:09:16,536 [DEBUG][       Thread-252723][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 11:09:16,536 [DEBUG][       Thread-252723][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 11:09:16,577 [DEBUG][       Thread-252723][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 11:09:16,577 [DEBUG][       Thread-252723][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 11:09:16,581 [DEBUG][       Thread-252723][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 11:09:16,595 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 11:09:16,596 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 11:09:16,598 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 11:09:16,599 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 11:09:16,604 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 11:09:16,606 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 11:09:16,606 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 11:09:16,607 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 11:09:16,607 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.380842 -999.00   +9.60  22.96     52   +0.40 1 1 1 1 1   887    0 9.06 4.78 ----- 23.7 23.0 48.6 25.9 14.3 -27.9 12.8 -28.9 12.1 -27.9 13.4 -26.3
2025-06-13 11:09:16,607 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 11:09:16,607 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 11:09:16,607 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.380842
2025-06-13 11:09:16,608 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 11:09:16,608 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 11:09:16,608 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 11:09:16,608 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 11:09:16,609 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 11:09:16,609 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T11:09:11', tmtdew=10.44, humidity=48.18, cloud=0.0, wind=19.59, temperature=9.75, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T09:08:24.749', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 11:09:16,610 [DEBUG][       Thread-252723][   transport.py][1871] : EOF in transport thread
2025-06-13 11:09:16,692 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 11:09:16,707 [DEBUG][       Thread-252727][   transport.py][1871] : starting thread (client mode): 0x863be2c0
2025-06-13 11:09:16,707 [DEBUG][       Thread-252727][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 11:09:16,722 [DEBUG][       Thread-252727][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 11:09:16,723 [ INFO][       Thread-252727][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 11:09:16,734 [DEBUG][       Thread-252727][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 11:09:16,735 [DEBUG][       Thread-252727][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 11:09:16,735 [DEBUG][       Thread-252727][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 11:09:16,735 [DEBUG][       Thread-252727][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:09:16,735 [DEBUG][       Thread-252727][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:09:16,735 [DEBUG][       Thread-252727][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:09:16,735 [DEBUG][       Thread-252727][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:09:16,735 [DEBUG][       Thread-252727][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 11:09:16,735 [DEBUG][       Thread-252727][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 11:09:16,735 [DEBUG][       Thread-252727][   transport.py][1871] : client lang: <none>
2025-06-13 11:09:16,735 [DEBUG][       Thread-252727][   transport.py][1871] : server lang: <none>
2025-06-13 11:09:16,735 [DEBUG][       Thread-252727][   transport.py][1871] : kex follows: False
2025-06-13 11:09:16,735 [DEBUG][       Thread-252727][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 11:09:16,735 [DEBUG][       Thread-252727][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 11:09:16,735 [DEBUG][       Thread-252727][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 11:09:16,736 [DEBUG][       Thread-252727][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 11:09:16,736 [DEBUG][       Thread-252727][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 11:09:16,736 [DEBUG][       Thread-252727][   transport.py][1871] : Compression: none
2025-06-13 11:09:16,736 [DEBUG][       Thread-252727][   transport.py][1871] : === End of kex handshake ===
2025-06-13 11:09:16,792 [DEBUG][       Thread-252727][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 11:09:16,792 [DEBUG][       Thread-252727][   transport.py][1871] : Switch to new keys ...
2025-06-13 11:09:16,793 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 11:09:16,794 [DEBUG][       Thread-252727][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 11:09:16,794 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 11:09:16,853 [DEBUG][       Thread-252727][   transport.py][1871] : userauth is OK
2025-06-13 11:09:16,854 [DEBUG][       Thread-252727][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 11:09:16,854 [DEBUG][       Thread-252727][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 11:09:16,854 [DEBUG][       Thread-252727][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 11:09:16,854 [DEBUG][       Thread-252727][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 11:09:16,875 [ INFO][       Thread-252727][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 11:09:16,875 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 11:09:16,876 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 11:09:17,915 [DEBUG][       Thread-252727][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 11:09:17,916 [DEBUG][       Thread-252727][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 11:09:17,964 [DEBUG][       Thread-252727][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 11:09:17,964 [DEBUG][       Thread-252727][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 11:09:17,980 [DEBUG][       Thread-252727][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 11:09:17,990 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 11:09:17,990 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 11:09:17,999 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 11:09:18,008 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 11:09:18,009 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 11:09:18,009 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 11:09:18,020 [DEBUG][       Thread-252727][   transport.py][1871] : EOF in transport thread
2025-06-13 11:09:25,291 [DEBUG][Thread-252729 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:09:28,020 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 11:09:28,020 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 11:09:28,020 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 11:09:28,023 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 11:09:28,478 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 11, 9, 11), 10.44, 48.18, 0.0, 19.59, 9.75, 0, 0, 0, 2, 0, 0),)
2025-06-13 11:09:28,479 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 11:09:11
2025-06-13 11:09:28,561 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 11:09:28,565 [DEBUG][       Thread-252730][   transport.py][1871] : starting thread (client mode): 0x863befe0
2025-06-13 11:09:28,565 [DEBUG][       Thread-252730][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 11:09:28,588 [DEBUG][       Thread-252730][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 11:09:28,588 [ INFO][       Thread-252730][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 11:09:28,591 [DEBUG][       Thread-252730][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 11:09:28,592 [DEBUG][       Thread-252730][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 11:09:28,592 [DEBUG][       Thread-252730][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 11:09:28,592 [DEBUG][       Thread-252730][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:09:28,592 [DEBUG][       Thread-252730][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:09:28,592 [DEBUG][       Thread-252730][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:09:28,592 [DEBUG][       Thread-252730][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:09:28,592 [DEBUG][       Thread-252730][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 11:09:28,592 [DEBUG][       Thread-252730][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 11:09:28,592 [DEBUG][       Thread-252730][   transport.py][1871] : client lang: <none>
2025-06-13 11:09:28,592 [DEBUG][       Thread-252730][   transport.py][1871] : server lang: <none>
2025-06-13 11:09:28,592 [DEBUG][       Thread-252730][   transport.py][1871] : kex follows: False
2025-06-13 11:09:28,592 [DEBUG][       Thread-252730][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 11:09:28,592 [DEBUG][       Thread-252730][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 11:09:28,592 [DEBUG][       Thread-252730][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 11:09:28,592 [DEBUG][       Thread-252730][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 11:09:28,592 [DEBUG][       Thread-252730][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 11:09:28,592 [DEBUG][       Thread-252730][   transport.py][1871] : Compression: none
2025-06-13 11:09:28,592 [DEBUG][       Thread-252730][   transport.py][1871] : === End of kex handshake ===
2025-06-13 11:09:28,609 [DEBUG][       Thread-252730][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 11:09:28,610 [DEBUG][       Thread-252730][   transport.py][1871] : Switch to new keys ...
2025-06-13 11:09:28,610 [DEBUG][       Thread-252730][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 11:09:28,610 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 11:09:28,611 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 11:09:28,612 [DEBUG][       Thread-252730][   transport.py][1871] : userauth is OK
2025-06-13 11:09:28,625 [ INFO][       Thread-252730][   transport.py][1871] : Authentication (password) successful!
2025-06-13 11:09:28,625 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 11:09:29,176 [DEBUG][       Thread-252730][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 11:09:29,177 [DEBUG][       Thread-252730][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 11:09:29,221 [DEBUG][       Thread-252730][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 11:09:29,221 [DEBUG][       Thread-252730][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 11:09:29,228 [DEBUG][       Thread-252730][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 11:09:29,239 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 11:09:29,240 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 11:09:29,242 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 11:09:29,243 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 11:09:29,249 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 11:09:29,251 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 11:09:29,252 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 11:09:29,252 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 11:09:29,252 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.381189 -999.00   +9.70  20.14     52   +0.60 1 1 1 1 1   887    0 9.22 7.18 ----- 20.1 20.1 31.8 26.9 14.2 -27.8 12.8 -29.6 12.1 -27.4 13.4 -26.3
2025-06-13 11:09:29,253 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 11:09:29,253 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 11:09:29,253 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.381189
2025-06-13 11:09:29,253 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 11:09:29,254 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 11:09:29,254 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 11:09:29,254 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 11:09:29,254 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 11:09:29,254 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T11:09:11', tmtdew=10.44, humidity=48.18, cloud=0.0, wind=19.59, temperature=9.75, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T09:08:54.730', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 11:09:29,254 [DEBUG][       Thread-252730][   transport.py][1871] : EOF in transport thread
2025-06-13 11:09:29,338 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 11:09:29,348 [DEBUG][       Thread-252733][   transport.py][1871] : starting thread (client mode): 0x863a55d0
2025-06-13 11:09:29,348 [DEBUG][       Thread-252733][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 11:09:29,363 [DEBUG][       Thread-252733][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 11:09:29,363 [ INFO][       Thread-252733][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 11:09:29,377 [DEBUG][       Thread-252733][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 11:09:29,377 [DEBUG][       Thread-252733][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 11:09:29,377 [DEBUG][       Thread-252733][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 11:09:29,377 [DEBUG][       Thread-252733][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:09:29,377 [DEBUG][       Thread-252733][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:09:29,377 [DEBUG][       Thread-252733][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:09:29,378 [DEBUG][       Thread-252733][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:09:29,378 [DEBUG][       Thread-252733][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 11:09:29,378 [DEBUG][       Thread-252733][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 11:09:29,378 [DEBUG][       Thread-252733][   transport.py][1871] : client lang: <none>
2025-06-13 11:09:29,378 [DEBUG][       Thread-252733][   transport.py][1871] : server lang: <none>
2025-06-13 11:09:29,378 [DEBUG][       Thread-252733][   transport.py][1871] : kex follows: False
2025-06-13 11:09:29,378 [DEBUG][       Thread-252733][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 11:09:29,378 [DEBUG][       Thread-252733][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 11:09:29,378 [DEBUG][       Thread-252733][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 11:09:29,378 [DEBUG][       Thread-252733][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 11:09:29,378 [DEBUG][       Thread-252733][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 11:09:29,378 [DEBUG][       Thread-252733][   transport.py][1871] : Compression: none
2025-06-13 11:09:29,378 [DEBUG][       Thread-252733][   transport.py][1871] : === End of kex handshake ===
2025-06-13 11:09:29,431 [DEBUG][       Thread-252733][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 11:09:29,431 [DEBUG][       Thread-252733][   transport.py][1871] : Switch to new keys ...
2025-06-13 11:09:29,432 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 11:09:29,432 [DEBUG][       Thread-252733][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 11:09:29,433 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 11:09:29,487 [DEBUG][       Thread-252733][   transport.py][1871] : userauth is OK
2025-06-13 11:09:29,488 [DEBUG][       Thread-252733][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 11:09:29,488 [DEBUG][       Thread-252733][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 11:09:29,488 [DEBUG][       Thread-252733][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 11:09:29,488 [DEBUG][       Thread-252733][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 11:09:29,506 [ INFO][       Thread-252733][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 11:09:29,507 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 11:09:29,507 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 11:09:30,507 [DEBUG][       Thread-252733][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 11:09:30,508 [DEBUG][       Thread-252733][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 11:09:30,556 [DEBUG][       Thread-252733][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 11:09:30,557 [DEBUG][       Thread-252733][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 11:09:30,568 [DEBUG][       Thread-252733][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 11:09:30,579 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 11:09:30,579 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 11:09:30,588 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 11:09:30,598 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 11:09:30,598 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 11:09:30,598 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 11:09:30,607 [DEBUG][       Thread-252733][   transport.py][1871] : EOF in transport thread
2025-06-13 11:09:32,348 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:09:32,349 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:09:34,319 [DEBUG][Thread-252735 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:09:40,608 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 11:09:40,608 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 11:09:40,608 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 11:09:40,611 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 11:09:41,079 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 11, 9, 11), 10.44, 48.18, 0.0, 19.59, 9.75, 0, 0, 0, 2, 0, 0),)
2025-06-13 11:09:41,079 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 11:09:11
2025-06-13 11:09:41,161 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 11:09:41,168 [DEBUG][       Thread-252736][   transport.py][1871] : starting thread (client mode): 0x842049d0
2025-06-13 11:09:41,168 [DEBUG][       Thread-252736][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 11:09:41,190 [DEBUG][       Thread-252736][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 11:09:41,191 [ INFO][       Thread-252736][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 11:09:41,192 [DEBUG][       Thread-252736][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 11:09:41,192 [DEBUG][       Thread-252736][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 11:09:41,192 [DEBUG][       Thread-252736][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 11:09:41,192 [DEBUG][       Thread-252736][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:09:41,192 [DEBUG][       Thread-252736][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:09:41,192 [DEBUG][       Thread-252736][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:09:41,193 [DEBUG][       Thread-252736][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:09:41,193 [DEBUG][       Thread-252736][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 11:09:41,193 [DEBUG][       Thread-252736][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 11:09:41,193 [DEBUG][       Thread-252736][   transport.py][1871] : client lang: <none>
2025-06-13 11:09:41,193 [DEBUG][       Thread-252736][   transport.py][1871] : server lang: <none>
2025-06-13 11:09:41,193 [DEBUG][       Thread-252736][   transport.py][1871] : kex follows: False
2025-06-13 11:09:41,193 [DEBUG][       Thread-252736][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 11:09:41,193 [DEBUG][       Thread-252736][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 11:09:41,193 [DEBUG][       Thread-252736][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 11:09:41,193 [DEBUG][       Thread-252736][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 11:09:41,193 [DEBUG][       Thread-252736][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 11:09:41,193 [DEBUG][       Thread-252736][   transport.py][1871] : Compression: none
2025-06-13 11:09:41,193 [DEBUG][       Thread-252736][   transport.py][1871] : === End of kex handshake ===
2025-06-13 11:09:41,201 [DEBUG][       Thread-252736][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 11:09:41,201 [DEBUG][       Thread-252736][   transport.py][1871] : Switch to new keys ...
2025-06-13 11:09:41,202 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 11:09:41,202 [DEBUG][       Thread-252736][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 11:09:41,202 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 11:09:41,203 [DEBUG][       Thread-252736][   transport.py][1871] : userauth is OK
2025-06-13 11:09:41,216 [ INFO][       Thread-252736][   transport.py][1871] : Authentication (password) successful!
2025-06-13 11:09:41,216 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 11:09:41,828 [DEBUG][       Thread-252736][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 11:09:41,829 [DEBUG][       Thread-252736][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 11:09:41,873 [DEBUG][       Thread-252736][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 11:09:41,873 [DEBUG][       Thread-252736][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 11:09:41,877 [DEBUG][       Thread-252736][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 11:09:41,888 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 11:09:41,889 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 11:09:41,890 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 11:09:41,892 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 11:09:41,898 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 11:09:41,900 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 11:09:41,900 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 11:09:41,901 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 11:09:41,901 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.381189 -999.00   +9.70  20.14     52   +0.60 1 1 1 1 1   887    0 9.22 7.18 ----- 20.1 20.1 31.8 26.9 14.2 -27.8 12.8 -29.6 12.1 -27.4 13.4 -26.3
2025-06-13 11:09:41,901 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 11:09:41,901 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 11:09:41,901 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.381189
2025-06-13 11:09:41,902 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 11:09:41,902 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 11:09:41,902 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 11:09:41,902 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 11:09:41,903 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 11:09:41,903 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T11:09:11', tmtdew=10.44, humidity=48.18, cloud=0.0, wind=19.59, temperature=9.75, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T09:08:54.730', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 11:09:41,904 [DEBUG][       Thread-252736][   transport.py][1871] : EOF in transport thread
2025-06-13 11:09:41,986 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 11:09:41,999 [DEBUG][       Thread-252739][   transport.py][1871] : starting thread (client mode): 0x863c8250
2025-06-13 11:09:41,999 [DEBUG][       Thread-252739][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 11:09:42,019 [DEBUG][       Thread-252739][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 11:09:42,019 [ INFO][       Thread-252739][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 11:09:42,031 [DEBUG][       Thread-252739][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 11:09:42,031 [DEBUG][       Thread-252739][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 11:09:42,032 [DEBUG][       Thread-252739][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 11:09:42,032 [DEBUG][       Thread-252739][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:09:42,032 [DEBUG][       Thread-252739][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:09:42,032 [DEBUG][       Thread-252739][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:09:42,032 [DEBUG][       Thread-252739][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:09:42,032 [DEBUG][       Thread-252739][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 11:09:42,032 [DEBUG][       Thread-252739][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 11:09:42,032 [DEBUG][       Thread-252739][   transport.py][1871] : client lang: <none>
2025-06-13 11:09:42,032 [DEBUG][       Thread-252739][   transport.py][1871] : server lang: <none>
2025-06-13 11:09:42,032 [DEBUG][       Thread-252739][   transport.py][1871] : kex follows: False
2025-06-13 11:09:42,032 [DEBUG][       Thread-252739][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 11:09:42,032 [DEBUG][       Thread-252739][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 11:09:42,032 [DEBUG][       Thread-252739][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 11:09:42,032 [DEBUG][       Thread-252739][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 11:09:42,032 [DEBUG][       Thread-252739][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 11:09:42,033 [DEBUG][       Thread-252739][   transport.py][1871] : Compression: none
2025-06-13 11:09:42,033 [DEBUG][       Thread-252739][   transport.py][1871] : === End of kex handshake ===
2025-06-13 11:09:42,092 [DEBUG][       Thread-252739][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 11:09:42,093 [DEBUG][       Thread-252739][   transport.py][1871] : Switch to new keys ...
2025-06-13 11:09:42,093 [DEBUG][       Thread-252739][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 11:09:42,094 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 11:09:42,094 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 11:09:42,152 [DEBUG][       Thread-252739][   transport.py][1871] : userauth is OK
2025-06-13 11:09:42,152 [DEBUG][       Thread-252739][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 11:09:42,152 [DEBUG][       Thread-252739][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 11:09:42,152 [DEBUG][       Thread-252739][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 11:09:42,153 [DEBUG][       Thread-252739][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 11:09:42,172 [ INFO][       Thread-252739][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 11:09:42,172 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 11:09:42,173 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 11:09:43,201 [DEBUG][       Thread-252739][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 11:09:43,201 [DEBUG][       Thread-252739][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 11:09:43,254 [DEBUG][       Thread-252739][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 11:09:43,255 [DEBUG][       Thread-252739][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 11:09:43,265 [DEBUG][       Thread-252739][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 11:09:43,275 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 11:09:43,276 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 11:09:43,288 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 11:09:43,299 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 11:09:43,299 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 11:09:43,300 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 11:09:43,321 [DEBUG][       Thread-252739][   transport.py][1871] : EOF in transport thread
2025-06-13 11:09:43,343 [DEBUG][Thread-252741 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:09:52,362 [DEBUG][Thread-252742 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:09:53,305 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 11:09:53,305 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 11:09:53,305 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 11:09:53,308 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 11:09:53,769 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 11, 9, 43), 10.35, 48.46, 0.0, 19.87, 9.7, 0, 0, 0, 2, 0, 0),)
2025-06-13 11:09:53,769 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 11:09:43
2025-06-13 11:09:53,850 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 11:09:53,856 [DEBUG][       Thread-252743][   transport.py][1871] : starting thread (client mode): 0x863bd600
2025-06-13 11:09:53,856 [DEBUG][       Thread-252743][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 11:09:53,877 [DEBUG][       Thread-252743][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 11:09:53,877 [ INFO][       Thread-252743][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 11:09:53,878 [DEBUG][       Thread-252743][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 11:09:53,879 [DEBUG][       Thread-252743][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 11:09:53,879 [DEBUG][       Thread-252743][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 11:09:53,879 [DEBUG][       Thread-252743][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:09:53,879 [DEBUG][       Thread-252743][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:09:53,879 [DEBUG][       Thread-252743][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:09:53,879 [DEBUG][       Thread-252743][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:09:53,879 [DEBUG][       Thread-252743][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 11:09:53,879 [DEBUG][       Thread-252743][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 11:09:53,879 [DEBUG][       Thread-252743][   transport.py][1871] : client lang: <none>
2025-06-13 11:09:53,879 [DEBUG][       Thread-252743][   transport.py][1871] : server lang: <none>
2025-06-13 11:09:53,879 [DEBUG][       Thread-252743][   transport.py][1871] : kex follows: False
2025-06-13 11:09:53,879 [DEBUG][       Thread-252743][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 11:09:53,879 [DEBUG][       Thread-252743][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 11:09:53,879 [DEBUG][       Thread-252743][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 11:09:53,879 [DEBUG][       Thread-252743][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 11:09:53,879 [DEBUG][       Thread-252743][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 11:09:53,879 [DEBUG][       Thread-252743][   transport.py][1871] : Compression: none
2025-06-13 11:09:53,879 [DEBUG][       Thread-252743][   transport.py][1871] : === End of kex handshake ===
2025-06-13 11:09:53,898 [DEBUG][       Thread-252743][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 11:09:53,898 [DEBUG][       Thread-252743][   transport.py][1871] : Switch to new keys ...
2025-06-13 11:09:53,899 [DEBUG][       Thread-252743][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 11:09:53,899 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 11:09:53,899 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 11:09:53,900 [DEBUG][       Thread-252743][   transport.py][1871] : userauth is OK
2025-06-13 11:09:53,925 [ INFO][       Thread-252743][   transport.py][1871] : Authentication (password) successful!
2025-06-13 11:09:53,926 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 11:09:54,509 [DEBUG][       Thread-252743][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 11:09:54,509 [DEBUG][       Thread-252743][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 11:09:54,553 [DEBUG][       Thread-252743][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 11:09:54,553 [DEBUG][       Thread-252743][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 11:09:54,556 [DEBUG][       Thread-252743][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 11:09:54,567 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 11:09:54,568 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 11:09:54,570 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 11:09:54,571 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 11:09:54,577 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 11:09:54,579 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 11:09:54,579 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 11:09:54,580 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 11:09:54,580 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.381189 -999.00   +9.70  20.14     52   +0.60 1 1 1 1 1   887    0 9.22 7.18 ----- 20.1 20.1 31.8 26.9 14.2 -27.8 12.8 -29.6 12.1 -27.4 13.4 -26.3
2025-06-13 11:09:54,580 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 11:09:54,580 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 11:09:54,580 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.381189
2025-06-13 11:09:54,581 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 11:09:54,581 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 11:09:54,581 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 11:09:54,581 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 11:09:54,581 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 11:09:54,581 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T11:09:43', tmtdew=10.35, humidity=48.46, cloud=0.0, wind=19.87, temperature=9.7, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T09:08:54.730', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 11:09:54,581 [DEBUG][       Thread-252743][   transport.py][1871] : EOF in transport thread
2025-06-13 11:09:54,662 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 11:09:54,671 [DEBUG][       Thread-252746][   transport.py][1871] : starting thread (client mode): 0x863a6bf0
2025-06-13 11:09:54,671 [DEBUG][       Thread-252746][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 11:09:54,686 [DEBUG][       Thread-252746][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 11:09:54,686 [ INFO][       Thread-252746][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 11:09:54,694 [DEBUG][       Thread-252746][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 11:09:54,695 [DEBUG][       Thread-252746][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 11:09:54,695 [DEBUG][       Thread-252746][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 11:09:54,695 [DEBUG][       Thread-252746][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:09:54,695 [DEBUG][       Thread-252746][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:09:54,695 [DEBUG][       Thread-252746][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:09:54,695 [DEBUG][       Thread-252746][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:09:54,695 [DEBUG][       Thread-252746][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 11:09:54,695 [DEBUG][       Thread-252746][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 11:09:54,695 [DEBUG][       Thread-252746][   transport.py][1871] : client lang: <none>
2025-06-13 11:09:54,695 [DEBUG][       Thread-252746][   transport.py][1871] : server lang: <none>
2025-06-13 11:09:54,695 [DEBUG][       Thread-252746][   transport.py][1871] : kex follows: False
2025-06-13 11:09:54,695 [DEBUG][       Thread-252746][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 11:09:54,695 [DEBUG][       Thread-252746][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 11:09:54,695 [DEBUG][       Thread-252746][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 11:09:54,695 [DEBUG][       Thread-252746][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 11:09:54,695 [DEBUG][       Thread-252746][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 11:09:54,695 [DEBUG][       Thread-252746][   transport.py][1871] : Compression: none
2025-06-13 11:09:54,695 [DEBUG][       Thread-252746][   transport.py][1871] : === End of kex handshake ===
2025-06-13 11:09:54,751 [DEBUG][       Thread-252746][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 11:09:54,752 [DEBUG][       Thread-252746][   transport.py][1871] : Switch to new keys ...
2025-06-13 11:09:54,752 [DEBUG][       Thread-252746][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 11:09:54,753 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 11:09:54,753 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 11:09:54,810 [DEBUG][       Thread-252746][   transport.py][1871] : userauth is OK
2025-06-13 11:09:54,811 [DEBUG][       Thread-252746][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 11:09:54,811 [DEBUG][       Thread-252746][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 11:09:54,811 [DEBUG][       Thread-252746][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 11:09:54,811 [DEBUG][       Thread-252746][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 11:09:54,831 [ INFO][       Thread-252746][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 11:09:54,832 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 11:09:54,832 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 11:09:55,840 [DEBUG][       Thread-252746][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 11:09:55,840 [DEBUG][       Thread-252746][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 11:09:55,888 [DEBUG][       Thread-252746][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 11:09:55,888 [DEBUG][       Thread-252746][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 11:09:55,898 [DEBUG][       Thread-252746][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 11:09:55,907 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 11:09:55,907 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 11:09:55,916 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 11:09:55,926 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 11:09:55,926 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 11:09:55,927 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 11:09:55,935 [DEBUG][       Thread-252746][   transport.py][1871] : EOF in transport thread
2025-06-13 11:10:00,227 [DEBUG][Thread-252748 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:10:01,278 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:10:01,279 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:10:01,383 [DEBUG][Thread-252749 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:10:05,937 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 11:10:05,937 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 11:10:05,937 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 11:10:05,940 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 11:10:06,408 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 11, 9, 43), 10.35, 48.46, 0.0, 19.87, 9.7, 0, 0, 0, 2, 0, 0),)
2025-06-13 11:10:06,408 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 11:09:43
2025-06-13 11:10:06,489 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 11:10:06,493 [DEBUG][       Thread-252750][   transport.py][1871] : starting thread (client mode): 0x863686d0
2025-06-13 11:10:06,493 [DEBUG][       Thread-252750][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 11:10:06,516 [DEBUG][       Thread-252750][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 11:10:06,516 [ INFO][       Thread-252750][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 11:10:06,520 [DEBUG][       Thread-252750][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 11:10:06,520 [DEBUG][       Thread-252750][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 11:10:06,520 [DEBUG][       Thread-252750][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 11:10:06,520 [DEBUG][       Thread-252750][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:10:06,520 [DEBUG][       Thread-252750][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:10:06,520 [DEBUG][       Thread-252750][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:10:06,520 [DEBUG][       Thread-252750][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:10:06,520 [DEBUG][       Thread-252750][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 11:10:06,520 [DEBUG][       Thread-252750][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 11:10:06,520 [DEBUG][       Thread-252750][   transport.py][1871] : client lang: <none>
2025-06-13 11:10:06,520 [DEBUG][       Thread-252750][   transport.py][1871] : server lang: <none>
2025-06-13 11:10:06,520 [DEBUG][       Thread-252750][   transport.py][1871] : kex follows: False
2025-06-13 11:10:06,520 [DEBUG][       Thread-252750][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 11:10:06,520 [DEBUG][       Thread-252750][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 11:10:06,520 [DEBUG][       Thread-252750][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 11:10:06,520 [DEBUG][       Thread-252750][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 11:10:06,520 [DEBUG][       Thread-252750][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 11:10:06,520 [DEBUG][       Thread-252750][   transport.py][1871] : Compression: none
2025-06-13 11:10:06,520 [DEBUG][       Thread-252750][   transport.py][1871] : === End of kex handshake ===
2025-06-13 11:10:06,537 [DEBUG][       Thread-252750][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 11:10:06,538 [DEBUG][       Thread-252750][   transport.py][1871] : Switch to new keys ...
2025-06-13 11:10:06,538 [DEBUG][       Thread-252750][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 11:10:06,539 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 11:10:06,539 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 11:10:06,540 [DEBUG][       Thread-252750][   transport.py][1871] : userauth is OK
2025-06-13 11:10:06,567 [ INFO][       Thread-252750][   transport.py][1871] : Authentication (password) successful!
2025-06-13 11:10:06,567 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 11:10:08,344 [DEBUG][Thread-252752 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:10:10,424 [DEBUG][Thread-252753 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:10:16,155 [DEBUG][       Thread-252750][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 11:10:16,155 [DEBUG][       Thread-252750][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 11:10:16,196 [DEBUG][       Thread-252750][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 11:10:16,196 [DEBUG][       Thread-252750][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 11:10:16,199 [DEBUG][       Thread-252750][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 11:10:16,213 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 11:10:16,213 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 11:10:16,214 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 11:10:16,215 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 11:10:16,286 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 11:10:16,287 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 11:10:16,287 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 11:10:16,287 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 11:10:16,287 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.381884 -999.00   +9.80  19.50     52   +0.50 1 1 1 1 1   887    0 9.23 9.47 ----- 23.5 19.5 35.6 26.4 14.3 -28.5 13.0 -29.7 12.2 -27.7 13.5 -26.1
2025-06-13 11:10:16,287 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 11:10:16,287 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 11:10:16,287 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.381884
2025-06-13 11:10:16,288 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 11:10:16,288 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 11:10:16,288 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 11:10:16,288 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 11:10:16,288 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 11:10:16,288 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T11:09:43', tmtdew=10.35, humidity=48.46, cloud=0.0, wind=19.87, temperature=9.7, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T09:09:54.778', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 11:10:16,289 [DEBUG][       Thread-252750][   transport.py][1871] : EOF in transport thread
2025-06-13 11:10:16,362 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 11:10:16,374 [DEBUG][       Thread-252755][   transport.py][1871] : starting thread (client mode): 0x863c8250
2025-06-13 11:10:16,374 [DEBUG][       Thread-252755][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 11:10:16,392 [DEBUG][       Thread-252755][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 11:10:16,392 [ INFO][       Thread-252755][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 11:10:16,407 [DEBUG][       Thread-252755][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 11:10:16,407 [DEBUG][       Thread-252755][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 11:10:16,407 [DEBUG][       Thread-252755][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 11:10:16,407 [DEBUG][       Thread-252755][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:10:16,407 [DEBUG][       Thread-252755][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:10:16,407 [DEBUG][       Thread-252755][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:10:16,407 [DEBUG][       Thread-252755][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:10:16,407 [DEBUG][       Thread-252755][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 11:10:16,407 [DEBUG][       Thread-252755][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 11:10:16,407 [DEBUG][       Thread-252755][   transport.py][1871] : client lang: <none>
2025-06-13 11:10:16,407 [DEBUG][       Thread-252755][   transport.py][1871] : server lang: <none>
2025-06-13 11:10:16,407 [DEBUG][       Thread-252755][   transport.py][1871] : kex follows: False
2025-06-13 11:10:16,407 [DEBUG][       Thread-252755][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 11:10:16,407 [DEBUG][       Thread-252755][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 11:10:16,407 [DEBUG][       Thread-252755][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 11:10:16,407 [DEBUG][       Thread-252755][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 11:10:16,407 [DEBUG][       Thread-252755][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 11:10:16,407 [DEBUG][       Thread-252755][   transport.py][1871] : Compression: none
2025-06-13 11:10:16,407 [DEBUG][       Thread-252755][   transport.py][1871] : === End of kex handshake ===
2025-06-13 11:10:16,464 [DEBUG][       Thread-252755][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 11:10:16,464 [DEBUG][       Thread-252755][   transport.py][1871] : Switch to new keys ...
2025-06-13 11:10:16,464 [DEBUG][       Thread-252755][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 11:10:16,464 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 11:10:16,465 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 11:10:16,524 [DEBUG][       Thread-252755][   transport.py][1871] : userauth is OK
2025-06-13 11:10:16,524 [DEBUG][       Thread-252755][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 11:10:16,524 [DEBUG][       Thread-252755][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 11:10:16,524 [DEBUG][       Thread-252755][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 11:10:16,524 [DEBUG][       Thread-252755][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 11:10:16,540 [ INFO][       Thread-252755][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 11:10:16,540 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 11:10:16,541 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 11:10:17,606 [DEBUG][       Thread-252755][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 11:10:17,607 [DEBUG][       Thread-252755][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 11:10:17,656 [DEBUG][       Thread-252755][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 11:10:17,656 [DEBUG][       Thread-252755][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 11:10:17,666 [DEBUG][       Thread-252755][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 11:10:17,675 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 11:10:17,675 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 11:10:17,685 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 11:10:17,695 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 11:10:17,695 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 11:10:17,696 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 11:10:17,704 [DEBUG][       Thread-252755][   transport.py][1871] : EOF in transport thread
2025-06-13 11:10:19,446 [DEBUG][Thread-252757 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:10:27,706 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 11:10:27,707 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 11:10:27,707 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 11:10:27,710 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 11:10:28,184 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 11, 10, 14), 10.22, 49.02, 0.0, 20.43, 9.76, 0, 0, 0, 2, 0, 0),)
2025-06-13 11:10:28,184 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 11:10:14
2025-06-13 11:10:28,267 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 11:10:28,273 [DEBUG][       Thread-252758][   transport.py][1871] : starting thread (client mode): 0x8636b040
2025-06-13 11:10:28,273 [DEBUG][       Thread-252758][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 11:10:28,294 [DEBUG][       Thread-252758][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 11:10:28,294 [ INFO][       Thread-252758][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 11:10:28,298 [DEBUG][       Thread-252758][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 11:10:28,298 [DEBUG][       Thread-252758][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 11:10:28,298 [DEBUG][       Thread-252758][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 11:10:28,298 [DEBUG][       Thread-252758][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:10:28,298 [DEBUG][       Thread-252758][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:10:28,298 [DEBUG][       Thread-252758][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:10:28,298 [DEBUG][       Thread-252758][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:10:28,298 [DEBUG][       Thread-252758][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 11:10:28,298 [DEBUG][       Thread-252758][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 11:10:28,298 [DEBUG][       Thread-252758][   transport.py][1871] : client lang: <none>
2025-06-13 11:10:28,298 [DEBUG][       Thread-252758][   transport.py][1871] : server lang: <none>
2025-06-13 11:10:28,298 [DEBUG][       Thread-252758][   transport.py][1871] : kex follows: False
2025-06-13 11:10:28,298 [DEBUG][       Thread-252758][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 11:10:28,298 [DEBUG][       Thread-252758][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 11:10:28,298 [DEBUG][       Thread-252758][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 11:10:28,298 [DEBUG][       Thread-252758][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 11:10:28,298 [DEBUG][       Thread-252758][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 11:10:28,298 [DEBUG][       Thread-252758][   transport.py][1871] : Compression: none
2025-06-13 11:10:28,298 [DEBUG][       Thread-252758][   transport.py][1871] : === End of kex handshake ===
2025-06-13 11:10:28,316 [DEBUG][       Thread-252758][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 11:10:28,316 [DEBUG][       Thread-252758][   transport.py][1871] : Switch to new keys ...
2025-06-13 11:10:28,317 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 11:10:28,317 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 11:10:28,317 [DEBUG][       Thread-252758][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 11:10:28,318 [DEBUG][       Thread-252758][   transport.py][1871] : userauth is OK
2025-06-13 11:10:28,331 [ INFO][       Thread-252758][   transport.py][1871] : Authentication (password) successful!
2025-06-13 11:10:28,332 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 11:10:28,468 [DEBUG][Thread-252760 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:10:28,956 [DEBUG][       Thread-252758][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 11:10:28,957 [DEBUG][       Thread-252758][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 11:10:29,001 [DEBUG][       Thread-252758][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 11:10:29,001 [DEBUG][       Thread-252758][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 11:10:29,005 [DEBUG][       Thread-252758][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 11:10:29,015 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 11:10:29,016 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 11:10:29,018 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 11:10:29,020 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 11:10:29,026 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 11:10:29,028 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 11:10:29,028 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 11:10:29,029 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 11:10:29,029 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.381884 -999.00   +9.80  19.50     52   +0.50 1 1 1 1 1   887    0 9.23 9.47 ----- 23.5 19.5 35.6 26.4 14.3 -28.5 13.0 -29.7 12.2 -27.7 13.5 -26.1
2025-06-13 11:10:29,029 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 11:10:29,029 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 11:10:29,029 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.381884
2025-06-13 11:10:29,030 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 11:10:29,030 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 11:10:29,031 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 11:10:29,031 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 11:10:29,031 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 11:10:29,031 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T11:10:14', tmtdew=10.22, humidity=49.02, cloud=0.0, wind=20.43, temperature=9.76, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T09:09:54.778', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 11:10:29,031 [DEBUG][       Thread-252758][   transport.py][1871] : EOF in transport thread
2025-06-13 11:10:29,106 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 11:10:29,115 [DEBUG][       Thread-252762][   transport.py][1871] : starting thread (client mode): 0x867ffdc0
2025-06-13 11:10:29,115 [DEBUG][       Thread-252762][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 11:10:29,131 [DEBUG][       Thread-252762][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 11:10:29,132 [ INFO][       Thread-252762][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 11:10:29,139 [DEBUG][       Thread-252762][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 11:10:29,139 [DEBUG][       Thread-252762][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 11:10:29,139 [DEBUG][       Thread-252762][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 11:10:29,139 [DEBUG][       Thread-252762][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:10:29,139 [DEBUG][       Thread-252762][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:10:29,139 [DEBUG][       Thread-252762][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:10:29,139 [DEBUG][       Thread-252762][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:10:29,139 [DEBUG][       Thread-252762][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 11:10:29,139 [DEBUG][       Thread-252762][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 11:10:29,139 [DEBUG][       Thread-252762][   transport.py][1871] : client lang: <none>
2025-06-13 11:10:29,139 [DEBUG][       Thread-252762][   transport.py][1871] : server lang: <none>
2025-06-13 11:10:29,140 [DEBUG][       Thread-252762][   transport.py][1871] : kex follows: False
2025-06-13 11:10:29,140 [DEBUG][       Thread-252762][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 11:10:29,140 [DEBUG][       Thread-252762][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 11:10:29,140 [DEBUG][       Thread-252762][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 11:10:29,140 [DEBUG][       Thread-252762][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 11:10:29,140 [DEBUG][       Thread-252762][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 11:10:29,140 [DEBUG][       Thread-252762][   transport.py][1871] : Compression: none
2025-06-13 11:10:29,140 [DEBUG][       Thread-252762][   transport.py][1871] : === End of kex handshake ===
2025-06-13 11:10:29,203 [DEBUG][       Thread-252762][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 11:10:29,204 [DEBUG][       Thread-252762][   transport.py][1871] : Switch to new keys ...
2025-06-13 11:10:29,205 [DEBUG][       Thread-252762][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 11:10:29,205 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 11:10:29,206 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 11:10:29,259 [DEBUG][       Thread-252762][   transport.py][1871] : userauth is OK
2025-06-13 11:10:29,260 [DEBUG][       Thread-252762][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 11:10:29,260 [DEBUG][       Thread-252762][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 11:10:29,260 [DEBUG][       Thread-252762][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 11:10:29,260 [DEBUG][       Thread-252762][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 11:10:29,279 [ INFO][       Thread-252762][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 11:10:29,280 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 11:10:29,280 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 11:10:30,324 [DEBUG][       Thread-252762][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 11:10:30,325 [DEBUG][       Thread-252762][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 11:10:30,379 [DEBUG][       Thread-252762][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 11:10:30,379 [DEBUG][       Thread-252762][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 11:10:30,391 [DEBUG][       Thread-252762][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 11:10:30,403 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 11:10:30,403 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 11:10:30,415 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 11:10:30,427 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 11:10:30,427 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 11:10:30,427 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 11:10:30,438 [DEBUG][       Thread-252762][   transport.py][1871] : EOF in transport thread
2025-06-13 11:10:32,489 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:10:32,490 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:10:37,489 [DEBUG][Thread-252764 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:10:40,434 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 11:10:40,434 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 11:10:40,434 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 11:10:40,435 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 11:10:40,929 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 11, 10, 14), 10.22, 49.02, 0.0, 20.43, 9.76, 0, 0, 0, 2, 0, 0),)
2025-06-13 11:10:40,929 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 11:10:14
2025-06-13 11:10:41,017 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 11:10:41,026 [DEBUG][       Thread-252765][   transport.py][1871] : starting thread (client mode): 0x863c9750
2025-06-13 11:10:41,026 [DEBUG][       Thread-252765][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 11:10:41,046 [DEBUG][       Thread-252765][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 11:10:41,046 [ INFO][       Thread-252765][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 11:10:41,050 [DEBUG][       Thread-252765][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 11:10:41,050 [DEBUG][       Thread-252765][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 11:10:41,050 [DEBUG][       Thread-252765][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 11:10:41,050 [DEBUG][       Thread-252765][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:10:41,050 [DEBUG][       Thread-252765][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:10:41,050 [DEBUG][       Thread-252765][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:10:41,050 [DEBUG][       Thread-252765][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:10:41,050 [DEBUG][       Thread-252765][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 11:10:41,050 [DEBUG][       Thread-252765][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 11:10:41,050 [DEBUG][       Thread-252765][   transport.py][1871] : client lang: <none>
2025-06-13 11:10:41,050 [DEBUG][       Thread-252765][   transport.py][1871] : server lang: <none>
2025-06-13 11:10:41,050 [DEBUG][       Thread-252765][   transport.py][1871] : kex follows: False
2025-06-13 11:10:41,050 [DEBUG][       Thread-252765][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 11:10:41,050 [DEBUG][       Thread-252765][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 11:10:41,050 [DEBUG][       Thread-252765][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 11:10:41,050 [DEBUG][       Thread-252765][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 11:10:41,050 [DEBUG][       Thread-252765][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 11:10:41,050 [DEBUG][       Thread-252765][   transport.py][1871] : Compression: none
2025-06-13 11:10:41,050 [DEBUG][       Thread-252765][   transport.py][1871] : === End of kex handshake ===
2025-06-13 11:10:41,065 [DEBUG][       Thread-252765][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 11:10:41,065 [DEBUG][       Thread-252765][   transport.py][1871] : Switch to new keys ...
2025-06-13 11:10:41,066 [DEBUG][       Thread-252765][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 11:10:41,066 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 11:10:41,066 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 11:10:41,066 [DEBUG][       Thread-252765][   transport.py][1871] : userauth is OK
2025-06-13 11:10:41,090 [ INFO][       Thread-252765][   transport.py][1871] : Authentication (password) successful!
2025-06-13 11:10:41,090 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 11:10:41,783 [DEBUG][       Thread-252765][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 11:10:41,783 [DEBUG][       Thread-252765][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 11:10:41,824 [DEBUG][       Thread-252765][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 11:10:41,824 [DEBUG][       Thread-252765][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 11:10:41,827 [DEBUG][       Thread-252765][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 11:10:41,839 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 11:10:41,839 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 11:10:41,840 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 11:10:41,842 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 11:10:41,845 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 11:10:41,847 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 11:10:41,847 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 11:10:41,847 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 11:10:41,847 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.382231 -999.00   +9.70  23.55     52   +0.30 1 1 1 1 1   887    0 9.24 10.74 ----- 21.9 23.6 47.8 29.7 14.3 -28.5 12.9 -29.9 12.1 -28.7 13.4 -26.5
2025-06-13 11:10:41,847 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 11:10:41,847 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 11:10:41,847 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.382231
2025-06-13 11:10:41,847 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 11:10:41,847 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 11:10:41,847 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 11:10:41,847 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 11:10:41,847 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 11:10:41,847 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T11:10:14', tmtdew=10.22, humidity=49.02, cloud=0.0, wind=20.43, temperature=9.76, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T09:10:24.758', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 11:10:41,848 [DEBUG][       Thread-252765][   transport.py][1871] : EOF in transport thread
2025-06-13 11:10:41,920 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 11:10:41,932 [DEBUG][       Thread-252768][   transport.py][1871] : starting thread (client mode): 0x863c8250
2025-06-13 11:10:41,932 [DEBUG][       Thread-252768][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 11:10:41,951 [DEBUG][       Thread-252768][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 11:10:41,951 [ INFO][       Thread-252768][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 11:10:41,959 [DEBUG][       Thread-252768][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 11:10:41,959 [DEBUG][       Thread-252768][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 11:10:41,959 [DEBUG][       Thread-252768][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 11:10:41,959 [DEBUG][       Thread-252768][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:10:41,959 [DEBUG][       Thread-252768][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:10:41,959 [DEBUG][       Thread-252768][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:10:41,959 [DEBUG][       Thread-252768][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:10:41,959 [DEBUG][       Thread-252768][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 11:10:41,959 [DEBUG][       Thread-252768][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 11:10:41,959 [DEBUG][       Thread-252768][   transport.py][1871] : client lang: <none>
2025-06-13 11:10:41,959 [DEBUG][       Thread-252768][   transport.py][1871] : server lang: <none>
2025-06-13 11:10:41,959 [DEBUG][       Thread-252768][   transport.py][1871] : kex follows: False
2025-06-13 11:10:41,959 [DEBUG][       Thread-252768][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 11:10:41,959 [DEBUG][       Thread-252768][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 11:10:41,959 [DEBUG][       Thread-252768][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 11:10:41,959 [DEBUG][       Thread-252768][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 11:10:41,959 [DEBUG][       Thread-252768][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 11:10:41,959 [DEBUG][       Thread-252768][   transport.py][1871] : Compression: none
2025-06-13 11:10:41,959 [DEBUG][       Thread-252768][   transport.py][1871] : === End of kex handshake ===
2025-06-13 11:10:42,013 [DEBUG][       Thread-252768][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 11:10:42,013 [DEBUG][       Thread-252768][   transport.py][1871] : Switch to new keys ...
2025-06-13 11:10:42,013 [DEBUG][       Thread-252768][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 11:10:42,014 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 11:10:42,014 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 11:10:42,071 [DEBUG][       Thread-252768][   transport.py][1871] : userauth is OK
2025-06-13 11:10:42,071 [DEBUG][       Thread-252768][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 11:10:42,071 [DEBUG][       Thread-252768][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 11:10:42,071 [DEBUG][       Thread-252768][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 11:10:42,071 [DEBUG][       Thread-252768][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 11:10:42,085 [ INFO][       Thread-252768][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 11:10:42,085 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 11:10:42,085 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 11:10:43,092 [DEBUG][       Thread-252768][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 11:10:43,092 [DEBUG][       Thread-252768][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 11:10:43,143 [DEBUG][       Thread-252768][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 11:10:43,143 [DEBUG][       Thread-252768][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 11:10:43,152 [DEBUG][       Thread-252768][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 11:10:43,161 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 11:10:43,161 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 11:10:43,169 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 11:10:43,177 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 11:10:43,177 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 11:10:43,177 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 11:10:43,186 [DEBUG][       Thread-252768][   transport.py][1871] : EOF in transport thread
2025-06-13 11:10:46,529 [DEBUG][Thread-252770 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:10:53,188 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 11:10:53,188 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 11:10:53,188 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 11:10:53,191 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 11:10:53,651 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 11, 10, 46), 10.3, 48.79, 0.0, 16.68, 9.87, 0, 0, 0, 2, 0, 0),)
2025-06-13 11:10:53,652 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 11:10:46
2025-06-13 11:10:53,734 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 11:10:53,739 [DEBUG][       Thread-252771][   transport.py][1871] : starting thread (client mode): 0x84207520
2025-06-13 11:10:53,740 [DEBUG][       Thread-252771][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 11:10:53,759 [DEBUG][       Thread-252771][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 11:10:53,759 [ INFO][       Thread-252771][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 11:10:53,761 [DEBUG][       Thread-252771][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 11:10:53,761 [DEBUG][       Thread-252771][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 11:10:53,761 [DEBUG][       Thread-252771][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 11:10:53,761 [DEBUG][       Thread-252771][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:10:53,761 [DEBUG][       Thread-252771][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:10:53,761 [DEBUG][       Thread-252771][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:10:53,761 [DEBUG][       Thread-252771][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:10:53,761 [DEBUG][       Thread-252771][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 11:10:53,761 [DEBUG][       Thread-252771][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 11:10:53,761 [DEBUG][       Thread-252771][   transport.py][1871] : client lang: <none>
2025-06-13 11:10:53,761 [DEBUG][       Thread-252771][   transport.py][1871] : server lang: <none>
2025-06-13 11:10:53,761 [DEBUG][       Thread-252771][   transport.py][1871] : kex follows: False
2025-06-13 11:10:53,761 [DEBUG][       Thread-252771][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 11:10:53,761 [DEBUG][       Thread-252771][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 11:10:53,761 [DEBUG][       Thread-252771][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 11:10:53,761 [DEBUG][       Thread-252771][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 11:10:53,761 [DEBUG][       Thread-252771][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 11:10:53,761 [DEBUG][       Thread-252771][   transport.py][1871] : Compression: none
2025-06-13 11:10:53,761 [DEBUG][       Thread-252771][   transport.py][1871] : === End of kex handshake ===
2025-06-13 11:10:53,774 [DEBUG][       Thread-252771][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 11:10:53,774 [DEBUG][       Thread-252771][   transport.py][1871] : Switch to new keys ...
2025-06-13 11:10:53,775 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 11:10:53,775 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 11:10:53,776 [DEBUG][       Thread-252771][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 11:10:53,776 [DEBUG][       Thread-252771][   transport.py][1871] : userauth is OK
2025-06-13 11:10:53,800 [ INFO][       Thread-252771][   transport.py][1871] : Authentication (password) successful!
2025-06-13 11:10:53,801 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 11:10:54,472 [DEBUG][       Thread-252771][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 11:10:54,472 [DEBUG][       Thread-252771][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 11:10:54,517 [DEBUG][       Thread-252771][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 11:10:54,517 [DEBUG][       Thread-252771][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 11:10:54,520 [DEBUG][       Thread-252771][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 11:10:54,532 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 11:10:54,533 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 11:10:54,535 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 11:10:54,537 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 11:10:54,543 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 11:10:54,545 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 11:10:54,545 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 11:10:54,546 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 11:10:54,546 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.382231 -999.00   +9.70  23.55     52   +0.30 1 1 1 1 1   887    0 9.24 10.74 ----- 21.9 23.6 47.8 29.7 14.3 -28.5 12.9 -29.9 12.1 -28.7 13.4 -26.5
2025-06-13 11:10:54,546 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 11:10:54,546 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 11:10:54,546 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.382231
2025-06-13 11:10:54,547 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 11:10:54,547 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 11:10:54,547 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 11:10:54,547 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 11:10:54,547 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 11:10:54,548 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T11:10:46', tmtdew=10.3, humidity=48.79, cloud=0.0, wind=16.68, temperature=9.87, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T09:10:24.758', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 11:10:54,548 [DEBUG][       Thread-252771][   transport.py][1871] : EOF in transport thread
2025-06-13 11:10:54,632 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 11:10:54,642 [DEBUG][       Thread-252774][   transport.py][1871] : starting thread (client mode): 0x867fcdf0
2025-06-13 11:10:54,642 [DEBUG][       Thread-252774][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 11:10:54,656 [DEBUG][       Thread-252774][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 11:10:54,656 [ INFO][       Thread-252774][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 11:10:54,663 [DEBUG][       Thread-252774][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 11:10:54,664 [DEBUG][       Thread-252774][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 11:10:54,664 [DEBUG][       Thread-252774][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 11:10:54,664 [DEBUG][       Thread-252774][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:10:54,664 [DEBUG][       Thread-252774][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:10:54,664 [DEBUG][       Thread-252774][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:10:54,664 [DEBUG][       Thread-252774][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:10:54,664 [DEBUG][       Thread-252774][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 11:10:54,664 [DEBUG][       Thread-252774][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 11:10:54,664 [DEBUG][       Thread-252774][   transport.py][1871] : client lang: <none>
2025-06-13 11:10:54,664 [DEBUG][       Thread-252774][   transport.py][1871] : server lang: <none>
2025-06-13 11:10:54,664 [DEBUG][       Thread-252774][   transport.py][1871] : kex follows: False
2025-06-13 11:10:54,664 [DEBUG][       Thread-252774][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 11:10:54,664 [DEBUG][       Thread-252774][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 11:10:54,664 [DEBUG][       Thread-252774][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 11:10:54,664 [DEBUG][       Thread-252774][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 11:10:54,664 [DEBUG][       Thread-252774][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 11:10:54,664 [DEBUG][       Thread-252774][   transport.py][1871] : Compression: none
2025-06-13 11:10:54,664 [DEBUG][       Thread-252774][   transport.py][1871] : === End of kex handshake ===
2025-06-13 11:10:54,724 [DEBUG][       Thread-252774][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 11:10:54,725 [DEBUG][       Thread-252774][   transport.py][1871] : Switch to new keys ...
2025-06-13 11:10:54,725 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 11:10:54,726 [DEBUG][       Thread-252774][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 11:10:54,727 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 11:10:54,785 [DEBUG][       Thread-252774][   transport.py][1871] : userauth is OK
2025-06-13 11:10:54,785 [DEBUG][       Thread-252774][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 11:10:54,786 [DEBUG][       Thread-252774][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 11:10:54,786 [DEBUG][       Thread-252774][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 11:10:54,786 [DEBUG][       Thread-252774][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 11:10:54,804 [ INFO][       Thread-252774][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 11:10:54,804 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 11:10:54,805 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 11:10:55,550 [DEBUG][Thread-252776 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:10:55,835 [DEBUG][       Thread-252774][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 11:10:55,835 [DEBUG][       Thread-252774][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 11:10:55,884 [DEBUG][       Thread-252774][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 11:10:55,884 [DEBUG][       Thread-252774][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 11:10:55,894 [DEBUG][       Thread-252774][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 11:10:55,903 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 11:10:55,903 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 11:10:55,914 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 11:10:55,927 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 11:10:55,927 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 11:10:55,928 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 11:10:55,938 [DEBUG][       Thread-252774][   transport.py][1871] : EOF in transport thread
2025-06-13 11:11:01,294 [DEBUG][Thread-252777 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:11:02,373 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:11:02,374 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:11:04,593 [DEBUG][Thread-252778 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:11:05,938 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 11:11:05,939 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 11:11:05,939 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 11:11:05,942 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 11:11:06,415 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 11, 10, 46), 10.3, 48.79, 0.0, 16.68, 9.87, 0, 0, 0, 2, 0, 0),)
2025-06-13 11:11:06,415 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 11:10:46
2025-06-13 11:11:06,496 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 11:11:06,500 [DEBUG][       Thread-252779][   transport.py][1871] : starting thread (client mode): 0x863ed5d0
2025-06-13 11:11:06,500 [DEBUG][       Thread-252779][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 11:11:06,520 [DEBUG][       Thread-252779][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 11:11:06,520 [ INFO][       Thread-252779][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 11:11:06,524 [DEBUG][       Thread-252779][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 11:11:06,524 [DEBUG][       Thread-252779][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 11:11:06,524 [DEBUG][       Thread-252779][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 11:11:06,524 [DEBUG][       Thread-252779][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:11:06,524 [DEBUG][       Thread-252779][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:11:06,524 [DEBUG][       Thread-252779][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:11:06,524 [DEBUG][       Thread-252779][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:11:06,524 [DEBUG][       Thread-252779][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 11:11:06,524 [DEBUG][       Thread-252779][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 11:11:06,524 [DEBUG][       Thread-252779][   transport.py][1871] : client lang: <none>
2025-06-13 11:11:06,524 [DEBUG][       Thread-252779][   transport.py][1871] : server lang: <none>
2025-06-13 11:11:06,524 [DEBUG][       Thread-252779][   transport.py][1871] : kex follows: False
2025-06-13 11:11:06,524 [DEBUG][       Thread-252779][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 11:11:06,524 [DEBUG][       Thread-252779][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 11:11:06,524 [DEBUG][       Thread-252779][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 11:11:06,524 [DEBUG][       Thread-252779][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 11:11:06,524 [DEBUG][       Thread-252779][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 11:11:06,525 [DEBUG][       Thread-252779][   transport.py][1871] : Compression: none
2025-06-13 11:11:06,525 [DEBUG][       Thread-252779][   transport.py][1871] : === End of kex handshake ===
2025-06-13 11:11:06,545 [DEBUG][       Thread-252779][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 11:11:06,545 [DEBUG][       Thread-252779][   transport.py][1871] : Switch to new keys ...
2025-06-13 11:11:06,546 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 11:11:06,546 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 11:11:06,546 [DEBUG][       Thread-252779][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 11:11:06,547 [DEBUG][       Thread-252779][   transport.py][1871] : userauth is OK
2025-06-13 11:11:06,560 [ INFO][       Thread-252779][   transport.py][1871] : Authentication (password) successful!
2025-06-13 11:11:06,561 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 11:11:07,185 [DEBUG][       Thread-252779][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 11:11:07,185 [DEBUG][       Thread-252779][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 11:11:07,229 [DEBUG][       Thread-252779][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 11:11:07,229 [DEBUG][       Thread-252779][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 11:11:07,232 [DEBUG][       Thread-252779][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 11:11:07,246 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 11:11:07,246 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 11:11:07,248 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 11:11:07,250 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 11:11:07,256 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 11:11:07,258 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 11:11:07,258 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 11:11:07,259 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 11:11:07,259 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.382231 -999.00   +9.70  23.55     52   +0.30 1 1 1 1 1   887    0 9.24 10.74 ----- 21.9 23.6 47.8 29.7 14.3 -28.5 12.9 -29.9 12.1 -28.7 13.4 -26.5
2025-06-13 11:11:07,259 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 11:11:07,259 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 11:11:07,259 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.382231
2025-06-13 11:11:07,260 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 11:11:07,260 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 11:11:07,260 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 11:11:07,260 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 11:11:07,261 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 11:11:07,261 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T11:10:46', tmtdew=10.3, humidity=48.79, cloud=0.0, wind=16.68, temperature=9.87, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T09:10:24.758', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 11:11:07,262 [DEBUG][       Thread-252779][   transport.py][1871] : EOF in transport thread
2025-06-13 11:11:07,344 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 11:11:08,394 [DEBUG][Thread-252782 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:11:13,616 [DEBUG][Thread-252783 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:11:22,633 [DEBUG][Thread-252784 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:11:31,655 [DEBUG][Thread-252785 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:11:32,629 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:11:32,630 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:11:40,676 [DEBUG][Thread-252786 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:11:49,698 [DEBUG][Thread-252787 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:11:58,716 [DEBUG][Thread-252788 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:12:02,397 [DEBUG][Thread-252789 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:12:03,477 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:12:03,478 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:12:07,735 [DEBUG][Thread-252790 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:12:08,442 [DEBUG][Thread-252791 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:12:16,757 [DEBUG][Thread-252792 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:12:25,778 [DEBUG][Thread-252793 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:12:32,768 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:12:32,769 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:12:34,800 [DEBUG][Thread-252794 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:12:43,820 [DEBUG][Thread-252795 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:12:52,840 [DEBUG][Thread-252796 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:13:01,861 [DEBUG][Thread-252797 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:13:03,557 [DEBUG][Thread-252798 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:13:04,637 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:13:04,638 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:13:08,485 [DEBUG][Thread-252799 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:13:10,885 [DEBUG][Thread-252800 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:13:16,308 [WARNING][ poll_weather_worker][      driver.py][ 286] : Unable to open ssh connection for writing weather state to io.saao.ac.za: [Errno 110] Connection timed out
2025-06-13 11:13:19,906 [DEBUG][Thread-252801 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:13:26,318 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 11:13:26,318 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 11:13:26,318 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 11:13:26,319 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 11:13:26,832 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 11, 12, 53), 10.61, 47.64, 0.0, 17.65, 9.9, 0, 0, 0, 2, 0, 0),)
2025-06-13 11:13:26,832 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 11:12:53
2025-06-13 11:13:26,917 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 11:13:26,924 [DEBUG][       Thread-252802][   transport.py][1871] : starting thread (client mode): 0x867fc0d0
2025-06-13 11:13:26,924 [DEBUG][       Thread-252802][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 11:13:26,939 [DEBUG][       Thread-252802][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 11:13:26,939 [ INFO][       Thread-252802][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 11:13:26,940 [DEBUG][       Thread-252802][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 11:13:26,940 [DEBUG][       Thread-252802][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 11:13:26,940 [DEBUG][       Thread-252802][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 11:13:26,940 [DEBUG][       Thread-252802][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:13:26,940 [DEBUG][       Thread-252802][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:13:26,940 [DEBUG][       Thread-252802][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:13:26,940 [DEBUG][       Thread-252802][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:13:26,940 [DEBUG][       Thread-252802][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 11:13:26,940 [DEBUG][       Thread-252802][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 11:13:26,940 [DEBUG][       Thread-252802][   transport.py][1871] : client lang: <none>
2025-06-13 11:13:26,940 [DEBUG][       Thread-252802][   transport.py][1871] : server lang: <none>
2025-06-13 11:13:26,940 [DEBUG][       Thread-252802][   transport.py][1871] : kex follows: False
2025-06-13 11:13:26,940 [DEBUG][       Thread-252802][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 11:13:26,940 [DEBUG][       Thread-252802][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 11:13:26,940 [DEBUG][       Thread-252802][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 11:13:26,940 [DEBUG][       Thread-252802][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 11:13:26,940 [DEBUG][       Thread-252802][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 11:13:26,940 [DEBUG][       Thread-252802][   transport.py][1871] : Compression: none
2025-06-13 11:13:26,940 [DEBUG][       Thread-252802][   transport.py][1871] : === End of kex handshake ===
2025-06-13 11:13:26,949 [DEBUG][       Thread-252802][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 11:13:26,949 [DEBUG][       Thread-252802][   transport.py][1871] : Switch to new keys ...
2025-06-13 11:13:26,949 [DEBUG][       Thread-252802][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 11:13:26,950 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 11:13:26,950 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 11:13:26,950 [DEBUG][       Thread-252802][   transport.py][1871] : userauth is OK
2025-06-13 11:13:26,963 [ INFO][       Thread-252802][   transport.py][1871] : Authentication (password) successful!
2025-06-13 11:13:26,963 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 11:13:27,523 [DEBUG][       Thread-252802][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 11:13:27,523 [DEBUG][       Thread-252802][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 11:13:27,569 [DEBUG][       Thread-252802][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 11:13:27,569 [DEBUG][       Thread-252802][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 11:13:27,572 [DEBUG][       Thread-252802][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 11:13:27,589 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 11:13:27,590 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 11:13:27,592 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 11:13:27,593 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 11:13:27,600 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 11:13:27,602 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 11:13:27,602 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 11:13:27,603 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 11:13:27,603 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.383967 -999.00   +9.80  21.35     52   +0.50 1 1 1 1 1   887    0 9.74 20.07 ----- 20.0 21.4 48.2 23.2 14.5 -28.0 13.1 -29.9 12.3 -28.6 13.6 -26.4
2025-06-13 11:13:27,603 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 11:13:27,603 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 11:13:27,603 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.383967
2025-06-13 11:13:27,604 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 11:13:27,604 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 11:13:27,605 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 11:13:27,605 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 11:13:27,605 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 11:13:27,605 [DEBUG][       Thread-252802][   transport.py][1871] : EOF in transport thread
2025-06-13 11:13:27,605 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T11:12:53', tmtdew=10.61, humidity=47.64, cloud=0.0, wind=17.65, temperature=9.9, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T09:12:54.749', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 11:13:27,690 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 11:13:27,702 [DEBUG][       Thread-252805][   transport.py][1871] : starting thread (client mode): 0x863a5210
2025-06-13 11:13:27,702 [DEBUG][       Thread-252805][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 11:13:27,718 [DEBUG][       Thread-252805][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 11:13:27,718 [ INFO][       Thread-252805][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 11:13:27,726 [DEBUG][       Thread-252805][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 11:13:27,726 [DEBUG][       Thread-252805][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 11:13:27,726 [DEBUG][       Thread-252805][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 11:13:27,726 [DEBUG][       Thread-252805][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:13:27,726 [DEBUG][       Thread-252805][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:13:27,726 [DEBUG][       Thread-252805][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:13:27,726 [DEBUG][       Thread-252805][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:13:27,726 [DEBUG][       Thread-252805][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 11:13:27,726 [DEBUG][       Thread-252805][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 11:13:27,727 [DEBUG][       Thread-252805][   transport.py][1871] : client lang: <none>
2025-06-13 11:13:27,727 [DEBUG][       Thread-252805][   transport.py][1871] : server lang: <none>
2025-06-13 11:13:27,727 [DEBUG][       Thread-252805][   transport.py][1871] : kex follows: False
2025-06-13 11:13:27,727 [DEBUG][       Thread-252805][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 11:13:27,727 [DEBUG][       Thread-252805][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 11:13:27,727 [DEBUG][       Thread-252805][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 11:13:27,727 [DEBUG][       Thread-252805][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 11:13:27,727 [DEBUG][       Thread-252805][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 11:13:27,727 [DEBUG][       Thread-252805][   transport.py][1871] : Compression: none
2025-06-13 11:13:27,727 [DEBUG][       Thread-252805][   transport.py][1871] : === End of kex handshake ===
2025-06-13 11:13:27,786 [DEBUG][       Thread-252805][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 11:13:27,786 [DEBUG][       Thread-252805][   transport.py][1871] : Switch to new keys ...
2025-06-13 11:13:27,787 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 11:13:27,788 [DEBUG][       Thread-252805][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 11:13:27,788 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 11:13:27,856 [DEBUG][       Thread-252805][   transport.py][1871] : userauth is OK
2025-06-13 11:13:27,856 [DEBUG][       Thread-252805][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 11:13:27,856 [DEBUG][       Thread-252805][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 11:13:27,856 [DEBUG][       Thread-252805][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 11:13:27,857 [DEBUG][       Thread-252805][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 11:13:27,880 [ INFO][       Thread-252805][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 11:13:27,880 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 11:13:27,881 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 11:13:28,922 [DEBUG][       Thread-252805][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 11:13:28,922 [DEBUG][       Thread-252805][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 11:13:28,927 [DEBUG][Thread-252807 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:13:28,976 [DEBUG][       Thread-252805][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 11:13:28,977 [DEBUG][       Thread-252805][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 11:13:28,990 [DEBUG][       Thread-252805][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 11:13:29,002 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 11:13:29,002 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 11:13:29,017 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 11:13:29,027 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 11:13:29,027 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 11:13:29,027 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 11:13:29,036 [DEBUG][       Thread-252805][   transport.py][1871] : EOF in transport thread
2025-06-13 11:13:32,937 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:13:32,938 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:13:37,960 [DEBUG][Thread-252808 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:13:39,038 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 11:13:39,038 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 11:13:39,038 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 11:13:39,041 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 11:13:39,535 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 11, 13, 25), 10.42, 48.15, 0.0, 15.12, 9.8, 0, 0, 0, 2, 0, 0),)
2025-06-13 11:13:39,535 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 11:13:25
2025-06-13 11:13:39,616 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 11:13:39,620 [DEBUG][       Thread-252809][   transport.py][1871] : starting thread (client mode): 0x863bd720
2025-06-13 11:13:39,620 [DEBUG][       Thread-252809][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 11:13:39,641 [DEBUG][       Thread-252809][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 11:13:39,641 [ INFO][       Thread-252809][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 11:13:39,644 [DEBUG][       Thread-252809][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 11:13:39,644 [DEBUG][       Thread-252809][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 11:13:39,644 [DEBUG][       Thread-252809][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 11:13:39,644 [DEBUG][       Thread-252809][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:13:39,644 [DEBUG][       Thread-252809][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:13:39,644 [DEBUG][       Thread-252809][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:13:39,644 [DEBUG][       Thread-252809][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:13:39,644 [DEBUG][       Thread-252809][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 11:13:39,644 [DEBUG][       Thread-252809][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 11:13:39,644 [DEBUG][       Thread-252809][   transport.py][1871] : client lang: <none>
2025-06-13 11:13:39,644 [DEBUG][       Thread-252809][   transport.py][1871] : server lang: <none>
2025-06-13 11:13:39,644 [DEBUG][       Thread-252809][   transport.py][1871] : kex follows: False
2025-06-13 11:13:39,644 [DEBUG][       Thread-252809][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 11:13:39,644 [DEBUG][       Thread-252809][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 11:13:39,644 [DEBUG][       Thread-252809][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 11:13:39,644 [DEBUG][       Thread-252809][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 11:13:39,645 [DEBUG][       Thread-252809][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 11:13:39,645 [DEBUG][       Thread-252809][   transport.py][1871] : Compression: none
2025-06-13 11:13:39,645 [DEBUG][       Thread-252809][   transport.py][1871] : === End of kex handshake ===
2025-06-13 11:13:39,660 [DEBUG][       Thread-252809][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 11:13:39,660 [DEBUG][       Thread-252809][   transport.py][1871] : Switch to new keys ...
2025-06-13 11:13:39,661 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 11:13:39,661 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 11:13:39,661 [DEBUG][       Thread-252809][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 11:13:39,662 [DEBUG][       Thread-252809][   transport.py][1871] : userauth is OK
2025-06-13 11:13:39,686 [ INFO][       Thread-252809][   transport.py][1871] : Authentication (password) successful!
2025-06-13 11:13:39,687 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 11:13:40,316 [DEBUG][       Thread-252809][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 11:13:40,316 [DEBUG][       Thread-252809][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 11:13:40,357 [DEBUG][       Thread-252809][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 11:13:40,357 [DEBUG][       Thread-252809][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 11:13:40,360 [DEBUG][       Thread-252809][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 11:13:40,372 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 11:13:40,372 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 11:13:40,374 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 11:13:40,376 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 11:13:40,382 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 11:13:40,384 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 11:13:40,384 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 11:13:40,385 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 11:13:40,385 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.383967 -999.00   +9.80  21.35     52   +0.50 1 1 1 1 1   887    0 9.74 20.07 ----- 20.0 21.4 48.2 23.2 14.5 -28.0 13.1 -29.9 12.3 -28.6 13.6 -26.4
2025-06-13 11:13:40,385 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 11:13:40,385 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 11:13:40,385 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.383967
2025-06-13 11:13:40,386 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 11:13:40,386 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 11:13:40,386 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 11:13:40,387 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 11:13:40,387 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 11:13:40,387 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T11:13:25', tmtdew=10.42, humidity=48.15, cloud=0.0, wind=15.12, temperature=9.8, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T09:12:54.749', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 11:13:40,387 [DEBUG][       Thread-252809][   transport.py][1871] : EOF in transport thread
2025-06-13 11:13:40,471 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 11:13:40,481 [DEBUG][       Thread-252812][   transport.py][1871] : starting thread (client mode): 0x86369cf0
2025-06-13 11:13:40,481 [DEBUG][       Thread-252812][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 11:13:40,495 [DEBUG][       Thread-252812][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 11:13:40,495 [ INFO][       Thread-252812][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 11:13:40,503 [DEBUG][       Thread-252812][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 11:13:40,503 [DEBUG][       Thread-252812][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 11:13:40,503 [DEBUG][       Thread-252812][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 11:13:40,503 [DEBUG][       Thread-252812][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:13:40,503 [DEBUG][       Thread-252812][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:13:40,503 [DEBUG][       Thread-252812][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:13:40,503 [DEBUG][       Thread-252812][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:13:40,503 [DEBUG][       Thread-252812][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 11:13:40,503 [DEBUG][       Thread-252812][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 11:13:40,504 [DEBUG][       Thread-252812][   transport.py][1871] : client lang: <none>
2025-06-13 11:13:40,504 [DEBUG][       Thread-252812][   transport.py][1871] : server lang: <none>
2025-06-13 11:13:40,504 [DEBUG][       Thread-252812][   transport.py][1871] : kex follows: False
2025-06-13 11:13:40,504 [DEBUG][       Thread-252812][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 11:13:40,504 [DEBUG][       Thread-252812][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 11:13:40,504 [DEBUG][       Thread-252812][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 11:13:40,504 [DEBUG][       Thread-252812][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 11:13:40,504 [DEBUG][       Thread-252812][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 11:13:40,504 [DEBUG][       Thread-252812][   transport.py][1871] : Compression: none
2025-06-13 11:13:40,504 [DEBUG][       Thread-252812][   transport.py][1871] : === End of kex handshake ===
2025-06-13 11:13:40,564 [DEBUG][       Thread-252812][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 11:13:40,564 [DEBUG][       Thread-252812][   transport.py][1871] : Switch to new keys ...
2025-06-13 11:13:40,565 [DEBUG][       Thread-252812][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 11:13:40,565 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 11:13:40,565 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 11:13:40,627 [DEBUG][       Thread-252812][   transport.py][1871] : userauth is OK
2025-06-13 11:13:40,627 [DEBUG][       Thread-252812][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 11:13:40,627 [DEBUG][       Thread-252812][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 11:13:40,627 [DEBUG][       Thread-252812][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 11:13:40,627 [DEBUG][       Thread-252812][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 11:13:40,646 [ INFO][       Thread-252812][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 11:13:40,647 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 11:13:40,647 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 11:13:41,635 [DEBUG][       Thread-252812][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 11:13:41,636 [DEBUG][       Thread-252812][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 11:13:41,685 [DEBUG][       Thread-252812][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 11:13:41,685 [DEBUG][       Thread-252812][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 11:13:41,701 [DEBUG][       Thread-252812][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 11:13:41,715 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 11:13:41,715 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 11:13:41,727 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 11:13:41,745 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 11:13:41,746 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 11:13:41,746 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 11:13:41,756 [DEBUG][       Thread-252812][   transport.py][1871] : EOF in transport thread
2025-06-13 11:13:46,982 [DEBUG][Thread-252814 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:13:51,756 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 11:13:51,757 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 11:13:51,757 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 11:13:51,760 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 11:13:52,253 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 11, 13, 25), 10.42, 48.15, 0.0, 15.12, 9.8, 0, 0, 0, 2, 0, 0),)
2025-06-13 11:13:52,253 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 11:13:25
2025-06-13 11:13:52,334 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 11:13:52,340 [DEBUG][       Thread-252815][   transport.py][1871] : starting thread (client mode): 0x863bfdf0
2025-06-13 11:13:52,340 [DEBUG][       Thread-252815][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 11:13:52,361 [DEBUG][       Thread-252815][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 11:13:52,361 [ INFO][       Thread-252815][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 11:13:52,365 [DEBUG][       Thread-252815][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 11:13:52,365 [DEBUG][       Thread-252815][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 11:13:52,365 [DEBUG][       Thread-252815][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 11:13:52,365 [DEBUG][       Thread-252815][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:13:52,365 [DEBUG][       Thread-252815][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:13:52,365 [DEBUG][       Thread-252815][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:13:52,365 [DEBUG][       Thread-252815][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:13:52,365 [DEBUG][       Thread-252815][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 11:13:52,365 [DEBUG][       Thread-252815][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 11:13:52,365 [DEBUG][       Thread-252815][   transport.py][1871] : client lang: <none>
2025-06-13 11:13:52,365 [DEBUG][       Thread-252815][   transport.py][1871] : server lang: <none>
2025-06-13 11:13:52,365 [DEBUG][       Thread-252815][   transport.py][1871] : kex follows: False
2025-06-13 11:13:52,365 [DEBUG][       Thread-252815][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 11:13:52,365 [DEBUG][       Thread-252815][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 11:13:52,365 [DEBUG][       Thread-252815][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 11:13:52,365 [DEBUG][       Thread-252815][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 11:13:52,365 [DEBUG][       Thread-252815][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 11:13:52,365 [DEBUG][       Thread-252815][   transport.py][1871] : Compression: none
2025-06-13 11:13:52,365 [DEBUG][       Thread-252815][   transport.py][1871] : === End of kex handshake ===
2025-06-13 11:13:52,382 [DEBUG][       Thread-252815][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 11:13:52,382 [DEBUG][       Thread-252815][   transport.py][1871] : Switch to new keys ...
2025-06-13 11:13:52,383 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 11:13:52,383 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 11:13:52,383 [DEBUG][       Thread-252815][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 11:13:52,384 [DEBUG][       Thread-252815][   transport.py][1871] : userauth is OK
2025-06-13 11:13:52,397 [ INFO][       Thread-252815][   transport.py][1871] : Authentication (password) successful!
2025-06-13 11:13:52,398 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 11:13:53,025 [DEBUG][       Thread-252815][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 11:13:53,025 [DEBUG][       Thread-252815][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 11:13:53,068 [DEBUG][       Thread-252815][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 11:13:53,069 [DEBUG][       Thread-252815][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 11:13:53,071 [DEBUG][       Thread-252815][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 11:13:53,082 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 11:13:53,082 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 11:13:53,084 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 11:13:53,085 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 11:13:53,088 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 11:13:53,089 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 11:13:53,089 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 11:13:53,089 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 11:13:53,089 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.383967 -999.00   +9.80  21.35     52   +0.50 1 1 1 1 1   887    0 9.74 20.07 ----- 20.0 21.4 48.2 23.2 14.5 -28.0 13.1 -29.9 12.3 -28.6 13.6 -26.4
2025-06-13 11:13:53,089 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 11:13:53,089 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 11:13:53,089 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.383967
2025-06-13 11:13:53,089 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 11:13:53,089 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 11:13:53,089 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 11:13:53,089 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 11:13:53,089 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 11:13:53,089 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T11:13:25', tmtdew=10.42, humidity=48.15, cloud=0.0, wind=15.12, temperature=9.8, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T09:12:54.749', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 11:13:53,090 [DEBUG][       Thread-252815][   transport.py][1871] : EOF in transport thread
2025-06-13 11:13:53,164 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 11:13:53,177 [DEBUG][       Thread-252818][   transport.py][1871] : starting thread (client mode): 0x867fc0d0
2025-06-13 11:13:53,177 [DEBUG][       Thread-252818][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 11:13:53,194 [DEBUG][       Thread-252818][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 11:13:53,194 [ INFO][       Thread-252818][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 11:13:53,203 [DEBUG][       Thread-252818][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 11:13:53,203 [DEBUG][       Thread-252818][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 11:13:53,203 [DEBUG][       Thread-252818][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 11:13:53,203 [DEBUG][       Thread-252818][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:13:53,203 [DEBUG][       Thread-252818][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:13:53,203 [DEBUG][       Thread-252818][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:13:53,203 [DEBUG][       Thread-252818][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:13:53,203 [DEBUG][       Thread-252818][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 11:13:53,203 [DEBUG][       Thread-252818][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 11:13:53,203 [DEBUG][       Thread-252818][   transport.py][1871] : client lang: <none>
2025-06-13 11:13:53,203 [DEBUG][       Thread-252818][   transport.py][1871] : server lang: <none>
2025-06-13 11:13:53,203 [DEBUG][       Thread-252818][   transport.py][1871] : kex follows: False
2025-06-13 11:13:53,203 [DEBUG][       Thread-252818][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 11:13:53,203 [DEBUG][       Thread-252818][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 11:13:53,203 [DEBUG][       Thread-252818][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 11:13:53,203 [DEBUG][       Thread-252818][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 11:13:53,203 [DEBUG][       Thread-252818][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 11:13:53,204 [DEBUG][       Thread-252818][   transport.py][1871] : Compression: none
2025-06-13 11:13:53,204 [DEBUG][       Thread-252818][   transport.py][1871] : === End of kex handshake ===
2025-06-13 11:13:53,263 [DEBUG][       Thread-252818][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 11:13:53,263 [DEBUG][       Thread-252818][   transport.py][1871] : Switch to new keys ...
2025-06-13 11:13:53,263 [DEBUG][       Thread-252818][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 11:13:53,264 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 11:13:53,264 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 11:13:53,323 [DEBUG][       Thread-252818][   transport.py][1871] : userauth is OK
2025-06-13 11:13:53,323 [DEBUG][       Thread-252818][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 11:13:53,323 [DEBUG][       Thread-252818][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 11:13:53,323 [DEBUG][       Thread-252818][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 11:13:53,323 [DEBUG][       Thread-252818][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 11:13:53,337 [ INFO][       Thread-252818][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 11:13:53,338 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 11:13:53,338 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 11:13:54,375 [DEBUG][       Thread-252818][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 11:13:54,375 [DEBUG][       Thread-252818][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 11:13:54,424 [DEBUG][       Thread-252818][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 11:13:54,424 [DEBUG][       Thread-252818][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 11:13:54,432 [DEBUG][       Thread-252818][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 11:13:54,440 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 11:13:54,440 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 11:13:54,448 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 11:13:54,456 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 11:13:54,456 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 11:13:54,456 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 11:13:54,464 [DEBUG][       Thread-252818][   transport.py][1871] : EOF in transport thread
2025-06-13 11:13:56,005 [DEBUG][Thread-252820 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:14:04,466 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 11:14:04,467 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 11:14:04,467 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 11:14:04,467 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 11:14:04,704 [DEBUG][Thread-252821 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:14:04,940 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 11, 13, 56), 10.35, 48.38, 0.0, 17.1, 9.82, 0, 0, 0, 2, 0, 0),)
2025-06-13 11:14:04,940 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 11:13:56
2025-06-13 11:14:05,017 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 11:14:05,020 [DEBUG][       Thread-252822][   transport.py][1871] : starting thread (client mode): 0x84205cf0
2025-06-13 11:14:05,021 [DEBUG][       Thread-252822][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 11:14:05,022 [DEBUG][Thread-252823 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:14:05,040 [DEBUG][       Thread-252822][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 11:14:05,040 [ INFO][       Thread-252822][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 11:14:05,043 [DEBUG][       Thread-252822][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 11:14:05,044 [DEBUG][       Thread-252822][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 11:14:05,044 [DEBUG][       Thread-252822][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 11:14:05,044 [DEBUG][       Thread-252822][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:14:05,044 [DEBUG][       Thread-252822][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:14:05,044 [DEBUG][       Thread-252822][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:14:05,044 [DEBUG][       Thread-252822][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:14:05,044 [DEBUG][       Thread-252822][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 11:14:05,044 [DEBUG][       Thread-252822][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 11:14:05,044 [DEBUG][       Thread-252822][   transport.py][1871] : client lang: <none>
2025-06-13 11:14:05,044 [DEBUG][       Thread-252822][   transport.py][1871] : server lang: <none>
2025-06-13 11:14:05,044 [DEBUG][       Thread-252822][   transport.py][1871] : kex follows: False
2025-06-13 11:14:05,044 [DEBUG][       Thread-252822][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 11:14:05,044 [DEBUG][       Thread-252822][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 11:14:05,044 [DEBUG][       Thread-252822][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 11:14:05,044 [DEBUG][       Thread-252822][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 11:14:05,044 [DEBUG][       Thread-252822][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 11:14:05,044 [DEBUG][       Thread-252822][   transport.py][1871] : Compression: none
2025-06-13 11:14:05,044 [DEBUG][       Thread-252822][   transport.py][1871] : === End of kex handshake ===
2025-06-13 11:14:05,060 [DEBUG][       Thread-252822][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 11:14:05,060 [DEBUG][       Thread-252822][   transport.py][1871] : Switch to new keys ...
2025-06-13 11:14:05,061 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 11:14:05,061 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 11:14:05,062 [DEBUG][       Thread-252822][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 11:14:05,062 [DEBUG][       Thread-252822][   transport.py][1871] : userauth is OK
2025-06-13 11:14:05,075 [ INFO][       Thread-252822][   transport.py][1871] : Authentication (password) successful!
2025-06-13 11:14:05,075 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 11:14:05,707 [DEBUG][       Thread-252822][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 11:14:05,707 [DEBUG][       Thread-252822][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 11:14:05,749 [DEBUG][       Thread-252822][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 11:14:05,749 [DEBUG][       Thread-252822][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 11:14:05,753 [DEBUG][       Thread-252822][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 11:14:05,761 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:14:05,763 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:14:05,764 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 11:14:05,764 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 11:14:05,766 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 11:14:05,768 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 11:14:05,774 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 11:14:05,776 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 11:14:05,776 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 11:14:05,776 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 11:14:05,777 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.384661 -999.00   +9.80  20.01     52   +0.60 1 1 1 1 1   887    0 9.66 22.49 ----- 23.5 20.0 50.2 23.1 14.5 -28.5 13.1 -30.0 12.3 -28.7 13.6 -26.3
2025-06-13 11:14:05,777 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 11:14:05,777 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 11:14:05,777 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.384661
2025-06-13 11:14:05,777 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 11:14:05,778 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 11:14:05,778 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 11:14:05,778 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 11:14:05,778 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 11:14:05,778 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T11:13:56', tmtdew=10.35, humidity=48.38, cloud=0.0, wind=17.1, temperature=9.82, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T09:13:54.710', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 11:14:05,778 [DEBUG][       Thread-252822][   transport.py][1871] : EOF in transport thread
2025-06-13 11:14:05,856 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 11:14:05,866 [DEBUG][       Thread-252826][   transport.py][1871] : starting thread (client mode): 0x863eec20
2025-06-13 11:14:05,866 [DEBUG][       Thread-252826][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 11:14:05,884 [DEBUG][       Thread-252826][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 11:14:05,884 [ INFO][       Thread-252826][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 11:14:05,892 [DEBUG][       Thread-252826][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 11:14:05,892 [DEBUG][       Thread-252826][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 11:14:05,892 [DEBUG][       Thread-252826][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 11:14:05,892 [DEBUG][       Thread-252826][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:14:05,892 [DEBUG][       Thread-252826][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:14:05,892 [DEBUG][       Thread-252826][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:14:05,892 [DEBUG][       Thread-252826][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:14:05,892 [DEBUG][       Thread-252826][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 11:14:05,893 [DEBUG][       Thread-252826][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 11:14:05,893 [DEBUG][       Thread-252826][   transport.py][1871] : client lang: <none>
2025-06-13 11:14:05,893 [DEBUG][       Thread-252826][   transport.py][1871] : server lang: <none>
2025-06-13 11:14:05,893 [DEBUG][       Thread-252826][   transport.py][1871] : kex follows: False
2025-06-13 11:14:05,893 [DEBUG][       Thread-252826][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 11:14:05,893 [DEBUG][       Thread-252826][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 11:14:05,893 [DEBUG][       Thread-252826][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 11:14:05,893 [DEBUG][       Thread-252826][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 11:14:05,893 [DEBUG][       Thread-252826][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 11:14:05,893 [DEBUG][       Thread-252826][   transport.py][1871] : Compression: none
2025-06-13 11:14:05,893 [DEBUG][       Thread-252826][   transport.py][1871] : === End of kex handshake ===
2025-06-13 11:14:05,952 [DEBUG][       Thread-252826][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 11:14:05,953 [DEBUG][       Thread-252826][   transport.py][1871] : Switch to new keys ...
2025-06-13 11:14:05,954 [DEBUG][       Thread-252826][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 11:14:05,954 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 11:14:05,955 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 11:14:06,023 [DEBUG][       Thread-252826][   transport.py][1871] : userauth is OK
2025-06-13 11:14:06,023 [DEBUG][       Thread-252826][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 11:14:06,023 [DEBUG][       Thread-252826][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 11:14:06,023 [DEBUG][       Thread-252826][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 11:14:06,024 [DEBUG][       Thread-252826][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 11:14:06,046 [ INFO][       Thread-252826][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 11:14:06,046 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 11:14:06,046 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 11:14:07,086 [DEBUG][       Thread-252826][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 11:14:07,086 [DEBUG][       Thread-252826][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 11:14:07,145 [DEBUG][       Thread-252826][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 11:14:07,145 [DEBUG][       Thread-252826][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 11:14:07,159 [DEBUG][       Thread-252826][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 11:14:07,170 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 11:14:07,170 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 11:14:07,181 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 11:14:07,192 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 11:14:07,193 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 11:14:07,193 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 11:14:07,203 [DEBUG][       Thread-252826][   transport.py][1871] : EOF in transport thread
2025-06-13 11:14:08,538 [DEBUG][Thread-252828 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:14:14,043 [DEBUG][Thread-252829 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:14:17,204 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 11:14:17,204 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 11:14:17,204 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 11:14:17,207 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 11:14:17,676 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 11, 13, 56), 10.35, 48.38, 0.0, 17.1, 9.82, 0, 0, 0, 2, 0, 0),)
2025-06-13 11:14:17,676 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 11:13:56
2025-06-13 11:14:17,753 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 11:14:17,759 [DEBUG][       Thread-252830][   transport.py][1871] : starting thread (client mode): 0x863bff70
2025-06-13 11:14:17,759 [DEBUG][       Thread-252830][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 11:14:17,779 [DEBUG][       Thread-252830][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 11:14:17,779 [ INFO][       Thread-252830][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 11:14:17,782 [DEBUG][       Thread-252830][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 11:14:17,782 [DEBUG][       Thread-252830][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 11:14:17,782 [DEBUG][       Thread-252830][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 11:14:17,782 [DEBUG][       Thread-252830][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:14:17,782 [DEBUG][       Thread-252830][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:14:17,782 [DEBUG][       Thread-252830][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:14:17,782 [DEBUG][       Thread-252830][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:14:17,783 [DEBUG][       Thread-252830][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 11:14:17,783 [DEBUG][       Thread-252830][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 11:14:17,783 [DEBUG][       Thread-252830][   transport.py][1871] : client lang: <none>
2025-06-13 11:14:17,783 [DEBUG][       Thread-252830][   transport.py][1871] : server lang: <none>
2025-06-13 11:14:17,783 [DEBUG][       Thread-252830][   transport.py][1871] : kex follows: False
2025-06-13 11:14:17,783 [DEBUG][       Thread-252830][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 11:14:17,783 [DEBUG][       Thread-252830][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 11:14:17,783 [DEBUG][       Thread-252830][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 11:14:17,783 [DEBUG][       Thread-252830][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 11:14:17,783 [DEBUG][       Thread-252830][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 11:14:17,783 [DEBUG][       Thread-252830][   transport.py][1871] : Compression: none
2025-06-13 11:14:17,783 [DEBUG][       Thread-252830][   transport.py][1871] : === End of kex handshake ===
2025-06-13 11:14:17,801 [DEBUG][       Thread-252830][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 11:14:17,801 [DEBUG][       Thread-252830][   transport.py][1871] : Switch to new keys ...
2025-06-13 11:14:17,802 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 11:14:17,802 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 11:14:17,802 [DEBUG][       Thread-252830][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 11:14:17,803 [DEBUG][       Thread-252830][   transport.py][1871] : userauth is OK
2025-06-13 11:14:17,816 [ INFO][       Thread-252830][   transport.py][1871] : Authentication (password) successful!
2025-06-13 11:14:17,816 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 11:14:18,452 [DEBUG][       Thread-252830][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 11:14:18,452 [DEBUG][       Thread-252830][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 11:14:18,493 [DEBUG][       Thread-252830][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 11:14:18,493 [DEBUG][       Thread-252830][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 11:14:18,496 [DEBUG][       Thread-252830][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 11:14:18,509 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 11:14:18,509 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 11:14:18,511 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 11:14:18,514 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 11:14:18,519 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 11:14:18,521 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 11:14:18,522 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 11:14:18,522 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 11:14:18,522 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.384661 -999.00   +9.80  20.01     52   +0.60 1 1 1 1 1   887    0 9.66 22.49 ----- 23.5 20.0 50.2 23.1 14.5 -28.5 13.1 -30.0 12.3 -28.7 13.6 -26.3
2025-06-13 11:14:18,523 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 11:14:18,523 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 11:14:18,523 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.384661
2025-06-13 11:14:18,523 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 11:14:18,524 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 11:14:18,524 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 11:14:18,524 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 11:14:18,524 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 11:14:18,524 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T11:13:56', tmtdew=10.35, humidity=48.38, cloud=0.0, wind=17.1, temperature=9.82, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T09:13:54.710', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 11:14:18,525 [DEBUG][       Thread-252830][   transport.py][1871] : EOF in transport thread
2025-06-13 11:14:18,607 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 11:14:18,622 [DEBUG][       Thread-252833][   transport.py][1871] : starting thread (client mode): 0x86369300
2025-06-13 11:14:18,622 [DEBUG][       Thread-252833][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 11:14:18,638 [DEBUG][       Thread-252833][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 11:14:18,638 [ INFO][       Thread-252833][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 11:14:18,647 [DEBUG][       Thread-252833][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 11:14:18,647 [DEBUG][       Thread-252833][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 11:14:18,647 [DEBUG][       Thread-252833][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 11:14:18,647 [DEBUG][       Thread-252833][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:14:18,647 [DEBUG][       Thread-252833][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:14:18,647 [DEBUG][       Thread-252833][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:14:18,647 [DEBUG][       Thread-252833][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:14:18,647 [DEBUG][       Thread-252833][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 11:14:18,647 [DEBUG][       Thread-252833][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 11:14:18,647 [DEBUG][       Thread-252833][   transport.py][1871] : client lang: <none>
2025-06-13 11:14:18,647 [DEBUG][       Thread-252833][   transport.py][1871] : server lang: <none>
2025-06-13 11:14:18,648 [DEBUG][       Thread-252833][   transport.py][1871] : kex follows: False
2025-06-13 11:14:18,648 [DEBUG][       Thread-252833][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 11:14:18,648 [DEBUG][       Thread-252833][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 11:14:18,648 [DEBUG][       Thread-252833][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 11:14:18,648 [DEBUG][       Thread-252833][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 11:14:18,648 [DEBUG][       Thread-252833][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 11:14:18,648 [DEBUG][       Thread-252833][   transport.py][1871] : Compression: none
2025-06-13 11:14:18,648 [DEBUG][       Thread-252833][   transport.py][1871] : === End of kex handshake ===
2025-06-13 11:14:18,710 [DEBUG][       Thread-252833][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 11:14:18,710 [DEBUG][       Thread-252833][   transport.py][1871] : Switch to new keys ...
2025-06-13 11:14:18,711 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 11:14:18,712 [DEBUG][       Thread-252833][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 11:14:18,712 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 11:14:18,772 [DEBUG][       Thread-252833][   transport.py][1871] : userauth is OK
2025-06-13 11:14:18,772 [DEBUG][       Thread-252833][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 11:14:18,772 [DEBUG][       Thread-252833][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 11:14:18,773 [DEBUG][       Thread-252833][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 11:14:18,773 [DEBUG][       Thread-252833][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 11:14:18,791 [ INFO][       Thread-252833][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 11:14:18,792 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 11:14:18,792 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 11:14:19,838 [DEBUG][       Thread-252833][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 11:14:19,838 [DEBUG][       Thread-252833][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 11:14:19,887 [DEBUG][       Thread-252833][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 11:14:19,887 [DEBUG][       Thread-252833][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 11:14:19,897 [DEBUG][       Thread-252833][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 11:14:19,905 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 11:14:19,905 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 11:14:19,914 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 11:14:19,923 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 11:14:19,923 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 11:14:19,923 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 11:14:19,933 [DEBUG][       Thread-252833][   transport.py][1871] : EOF in transport thread
2025-06-13 11:14:23,077 [DEBUG][Thread-252835 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:14:29,932 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 11:14:29,932 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 11:14:29,932 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 11:14:29,933 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 11:14:30,467 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 11, 13, 56), 10.35, 48.38, 0.0, 17.1, 9.82, 0, 0, 0, 2, 0, 0),)
2025-06-13 11:14:30,467 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 11:13:56
2025-06-13 11:14:30,555 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 11:14:30,559 [DEBUG][       Thread-252836][   transport.py][1871] : starting thread (client mode): 0x867b6a40
2025-06-13 11:14:30,559 [DEBUG][       Thread-252836][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 11:14:30,580 [DEBUG][       Thread-252836][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 11:14:30,580 [ INFO][       Thread-252836][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 11:14:30,583 [DEBUG][       Thread-252836][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 11:14:30,583 [DEBUG][       Thread-252836][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 11:14:30,583 [DEBUG][       Thread-252836][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 11:14:30,583 [DEBUG][       Thread-252836][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:14:30,583 [DEBUG][       Thread-252836][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:14:30,583 [DEBUG][       Thread-252836][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:14:30,583 [DEBUG][       Thread-252836][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:14:30,583 [DEBUG][       Thread-252836][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 11:14:30,583 [DEBUG][       Thread-252836][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 11:14:30,583 [DEBUG][       Thread-252836][   transport.py][1871] : client lang: <none>
2025-06-13 11:14:30,583 [DEBUG][       Thread-252836][   transport.py][1871] : server lang: <none>
2025-06-13 11:14:30,583 [DEBUG][       Thread-252836][   transport.py][1871] : kex follows: False
2025-06-13 11:14:30,583 [DEBUG][       Thread-252836][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 11:14:30,583 [DEBUG][       Thread-252836][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 11:14:30,583 [DEBUG][       Thread-252836][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 11:14:30,583 [DEBUG][       Thread-252836][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 11:14:30,583 [DEBUG][       Thread-252836][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 11:14:30,583 [DEBUG][       Thread-252836][   transport.py][1871] : Compression: none
2025-06-13 11:14:30,583 [DEBUG][       Thread-252836][   transport.py][1871] : === End of kex handshake ===
2025-06-13 11:14:30,600 [DEBUG][       Thread-252836][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 11:14:30,600 [DEBUG][       Thread-252836][   transport.py][1871] : Switch to new keys ...
2025-06-13 11:14:30,601 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 11:14:30,601 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 11:14:30,601 [DEBUG][       Thread-252836][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 11:14:30,601 [DEBUG][       Thread-252836][   transport.py][1871] : userauth is OK
2025-06-13 11:14:30,625 [ INFO][       Thread-252836][   transport.py][1871] : Authentication (password) successful!
2025-06-13 11:14:30,625 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 11:14:31,228 [DEBUG][       Thread-252836][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 11:14:31,228 [DEBUG][       Thread-252836][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 11:14:31,272 [DEBUG][       Thread-252836][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 11:14:31,272 [DEBUG][       Thread-252836][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 11:14:31,275 [DEBUG][       Thread-252836][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 11:14:31,286 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 11:14:31,286 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 11:14:31,287 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 11:14:31,288 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 11:14:31,291 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 11:14:31,291 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 11:14:31,292 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 11:14:31,292 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 11:14:31,292 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.384661 -999.00   +9.80  20.01     52   +0.60 1 1 1 1 1   887    0 9.66 22.49 ----- 23.5 20.0 50.2 23.1 14.5 -28.5 13.1 -30.0 12.3 -28.7 13.6 -26.3
2025-06-13 11:14:31,292 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 11:14:31,292 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 11:14:31,292 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.384661
2025-06-13 11:14:31,292 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 11:14:31,292 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 11:14:31,292 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 11:14:31,292 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 11:14:31,292 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 11:14:31,292 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T11:13:56', tmtdew=10.35, humidity=48.38, cloud=0.0, wind=17.1, temperature=9.82, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T09:13:54.710', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 11:14:31,292 [DEBUG][       Thread-252836][   transport.py][1871] : EOF in transport thread
2025-06-13 11:14:31,367 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 11:14:31,383 [DEBUG][       Thread-252839][   transport.py][1871] : starting thread (client mode): 0x863c82b0
2025-06-13 11:14:31,383 [DEBUG][       Thread-252839][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 11:14:31,399 [DEBUG][       Thread-252839][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 11:14:31,399 [ INFO][       Thread-252839][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 11:14:31,408 [DEBUG][       Thread-252839][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 11:14:31,408 [DEBUG][       Thread-252839][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 11:14:31,408 [DEBUG][       Thread-252839][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 11:14:31,408 [DEBUG][       Thread-252839][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:14:31,408 [DEBUG][       Thread-252839][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:14:31,408 [DEBUG][       Thread-252839][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:14:31,408 [DEBUG][       Thread-252839][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:14:31,408 [DEBUG][       Thread-252839][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 11:14:31,408 [DEBUG][       Thread-252839][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 11:14:31,408 [DEBUG][       Thread-252839][   transport.py][1871] : client lang: <none>
2025-06-13 11:14:31,408 [DEBUG][       Thread-252839][   transport.py][1871] : server lang: <none>
2025-06-13 11:14:31,408 [DEBUG][       Thread-252839][   transport.py][1871] : kex follows: False
2025-06-13 11:14:31,408 [DEBUG][       Thread-252839][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 11:14:31,408 [DEBUG][       Thread-252839][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 11:14:31,408 [DEBUG][       Thread-252839][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 11:14:31,408 [DEBUG][       Thread-252839][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 11:14:31,408 [DEBUG][       Thread-252839][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 11:14:31,408 [DEBUG][       Thread-252839][   transport.py][1871] : Compression: none
2025-06-13 11:14:31,408 [DEBUG][       Thread-252839][   transport.py][1871] : === End of kex handshake ===
2025-06-13 11:14:31,468 [DEBUG][       Thread-252839][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 11:14:31,468 [DEBUG][       Thread-252839][   transport.py][1871] : Switch to new keys ...
2025-06-13 11:14:31,468 [DEBUG][       Thread-252839][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 11:14:31,468 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 11:14:31,468 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 11:14:31,530 [DEBUG][       Thread-252839][   transport.py][1871] : userauth is OK
2025-06-13 11:14:31,530 [DEBUG][       Thread-252839][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 11:14:31,530 [DEBUG][       Thread-252839][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 11:14:31,530 [DEBUG][       Thread-252839][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 11:14:31,530 [DEBUG][       Thread-252839][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 11:14:31,548 [ INFO][       Thread-252839][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 11:14:31,548 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 11:14:31,549 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 11:14:32,096 [DEBUG][Thread-252841 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:14:32,593 [DEBUG][       Thread-252839][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 11:14:32,593 [DEBUG][       Thread-252839][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 11:14:32,643 [DEBUG][       Thread-252839][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 11:14:32,643 [DEBUG][       Thread-252839][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 11:14:32,652 [DEBUG][       Thread-252839][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 11:14:32,660 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 11:14:32,660 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 11:14:32,668 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 11:14:32,676 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 11:14:32,676 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 11:14:32,676 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 11:14:32,686 [DEBUG][       Thread-252839][   transport.py][1871] : EOF in transport thread
2025-06-13 11:14:33,086 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:14:33,087 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:14:41,116 [DEBUG][Thread-252842 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:14:42,684 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 11:14:42,684 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 11:14:42,684 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 11:14:42,687 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 11:14:43,174 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 11, 14, 28), 10.37, 48.52, 0.0, 15.37, 9.85, 0, 0, 0, 2, 0, 0),)
2025-06-13 11:14:43,174 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 11:14:28
2025-06-13 11:14:43,253 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 11:14:43,261 [DEBUG][       Thread-252843][   transport.py][1871] : starting thread (client mode): 0x8636a800
2025-06-13 11:14:43,261 [DEBUG][       Thread-252843][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 11:14:43,282 [DEBUG][       Thread-252843][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 11:14:43,282 [ INFO][       Thread-252843][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 11:14:43,286 [DEBUG][       Thread-252843][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 11:14:43,286 [DEBUG][       Thread-252843][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 11:14:43,286 [DEBUG][       Thread-252843][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 11:14:43,286 [DEBUG][       Thread-252843][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:14:43,286 [DEBUG][       Thread-252843][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:14:43,286 [DEBUG][       Thread-252843][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:14:43,286 [DEBUG][       Thread-252843][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:14:43,286 [DEBUG][       Thread-252843][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 11:14:43,286 [DEBUG][       Thread-252843][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 11:14:43,286 [DEBUG][       Thread-252843][   transport.py][1871] : client lang: <none>
2025-06-13 11:14:43,286 [DEBUG][       Thread-252843][   transport.py][1871] : server lang: <none>
2025-06-13 11:14:43,286 [DEBUG][       Thread-252843][   transport.py][1871] : kex follows: False
2025-06-13 11:14:43,286 [DEBUG][       Thread-252843][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 11:14:43,286 [DEBUG][       Thread-252843][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 11:14:43,286 [DEBUG][       Thread-252843][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 11:14:43,287 [DEBUG][       Thread-252843][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 11:14:43,287 [DEBUG][       Thread-252843][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 11:14:43,287 [DEBUG][       Thread-252843][   transport.py][1871] : Compression: none
2025-06-13 11:14:43,287 [DEBUG][       Thread-252843][   transport.py][1871] : === End of kex handshake ===
2025-06-13 11:14:43,304 [DEBUG][       Thread-252843][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 11:14:43,305 [DEBUG][       Thread-252843][   transport.py][1871] : Switch to new keys ...
2025-06-13 11:14:43,305 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 11:14:43,305 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 11:14:43,306 [DEBUG][       Thread-252843][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 11:14:43,306 [DEBUG][       Thread-252843][   transport.py][1871] : userauth is OK
2025-06-13 11:14:43,319 [ INFO][       Thread-252843][   transport.py][1871] : Authentication (password) successful!
2025-06-13 11:14:43,320 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 11:14:43,958 [DEBUG][       Thread-252843][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 11:14:43,958 [DEBUG][       Thread-252843][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 11:14:44,001 [DEBUG][       Thread-252843][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 11:14:44,001 [DEBUG][       Thread-252843][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 11:14:44,004 [DEBUG][       Thread-252843][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 11:14:44,016 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 11:14:44,017 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 11:14:44,019 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 11:14:44,021 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 11:14:44,027 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 11:14:44,029 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 11:14:44,029 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 11:14:44,029 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 11:14:44,030 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.385009 -999.00   +9.80  21.69     52   +0.60 1 1 1 1 1   887    0 9.78 23.20 ----- 21.5 21.7 47.8 28.5 14.5 -28.5 13.1 -29.6 12.3 -28.6 13.6 -26.4
2025-06-13 11:14:44,030 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 11:14:44,030 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 11:14:44,030 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.385009
2025-06-13 11:14:44,030 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 11:14:44,031 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 11:14:44,031 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 11:14:44,031 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 11:14:44,031 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 11:14:44,031 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T11:14:28', tmtdew=10.37, humidity=48.52, cloud=0.0, wind=15.37, temperature=9.85, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T09:14:24.778', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 11:14:44,032 [DEBUG][       Thread-252843][   transport.py][1871] : EOF in transport thread
2025-06-13 11:14:44,115 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 11:14:44,136 [DEBUG][       Thread-252846][   transport.py][1871] : starting thread (client mode): 0x84207a00
2025-06-13 11:14:44,136 [DEBUG][       Thread-252846][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 11:14:44,156 [DEBUG][       Thread-252846][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 11:14:44,156 [ INFO][       Thread-252846][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 11:14:44,163 [DEBUG][       Thread-252846][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 11:14:44,164 [DEBUG][       Thread-252846][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 11:14:44,164 [DEBUG][       Thread-252846][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 11:14:44,164 [DEBUG][       Thread-252846][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:14:44,164 [DEBUG][       Thread-252846][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:14:44,164 [DEBUG][       Thread-252846][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:14:44,164 [DEBUG][       Thread-252846][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:14:44,164 [DEBUG][       Thread-252846][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 11:14:44,164 [DEBUG][       Thread-252846][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 11:14:44,164 [DEBUG][       Thread-252846][   transport.py][1871] : client lang: <none>
2025-06-13 11:14:44,164 [DEBUG][       Thread-252846][   transport.py][1871] : server lang: <none>
2025-06-13 11:14:44,164 [DEBUG][       Thread-252846][   transport.py][1871] : kex follows: False
2025-06-13 11:14:44,164 [DEBUG][       Thread-252846][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 11:14:44,164 [DEBUG][       Thread-252846][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 11:14:44,165 [DEBUG][       Thread-252846][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 11:14:44,165 [DEBUG][       Thread-252846][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 11:14:44,165 [DEBUG][       Thread-252846][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 11:14:44,165 [DEBUG][       Thread-252846][   transport.py][1871] : Compression: none
2025-06-13 11:14:44,165 [DEBUG][       Thread-252846][   transport.py][1871] : === End of kex handshake ===
2025-06-13 11:14:44,233 [DEBUG][       Thread-252846][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 11:14:44,234 [DEBUG][       Thread-252846][   transport.py][1871] : Switch to new keys ...
2025-06-13 11:14:44,235 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 11:14:44,236 [DEBUG][       Thread-252846][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 11:14:44,236 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 11:14:44,294 [DEBUG][       Thread-252846][   transport.py][1871] : userauth is OK
2025-06-13 11:14:44,294 [DEBUG][       Thread-252846][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 11:14:44,294 [DEBUG][       Thread-252846][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 11:14:44,294 [DEBUG][       Thread-252846][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 11:14:44,294 [DEBUG][       Thread-252846][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 11:14:44,324 [ INFO][       Thread-252846][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 11:14:44,325 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 11:14:44,325 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 11:14:45,367 [DEBUG][       Thread-252846][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 11:14:45,367 [DEBUG][       Thread-252846][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 11:14:45,416 [DEBUG][       Thread-252846][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 11:14:45,416 [DEBUG][       Thread-252846][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 11:14:45,426 [DEBUG][       Thread-252846][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 11:14:45,439 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 11:14:45,439 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 11:14:45,448 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 11:14:45,460 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 11:14:45,461 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 11:14:45,461 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 11:14:45,469 [DEBUG][       Thread-252846][   transport.py][1871] : EOF in transport thread
2025-06-13 11:14:50,136 [DEBUG][Thread-252848 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:14:55,472 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 11:14:55,472 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 11:14:55,472 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 11:14:55,475 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 11:14:55,960 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 11, 14, 28), 10.37, 48.52, 0.0, 15.37, 9.85, 0, 0, 0, 2, 0, 0),)
2025-06-13 11:14:55,960 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 11:14:28
2025-06-13 11:14:56,041 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 11:14:56,044 [DEBUG][       Thread-252849][   transport.py][1871] : starting thread (client mode): 0x863be890
2025-06-13 11:14:56,044 [DEBUG][       Thread-252849][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 11:14:56,064 [DEBUG][       Thread-252849][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 11:14:56,065 [ INFO][       Thread-252849][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 11:14:56,068 [DEBUG][       Thread-252849][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 11:14:56,068 [DEBUG][       Thread-252849][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 11:14:56,068 [DEBUG][       Thread-252849][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 11:14:56,068 [DEBUG][       Thread-252849][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:14:56,068 [DEBUG][       Thread-252849][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:14:56,068 [DEBUG][       Thread-252849][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:14:56,068 [DEBUG][       Thread-252849][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:14:56,068 [DEBUG][       Thread-252849][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 11:14:56,069 [DEBUG][       Thread-252849][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 11:14:56,069 [DEBUG][       Thread-252849][   transport.py][1871] : client lang: <none>
2025-06-13 11:14:56,069 [DEBUG][       Thread-252849][   transport.py][1871] : server lang: <none>
2025-06-13 11:14:56,069 [DEBUG][       Thread-252849][   transport.py][1871] : kex follows: False
2025-06-13 11:14:56,069 [DEBUG][       Thread-252849][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 11:14:56,069 [DEBUG][       Thread-252849][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 11:14:56,069 [DEBUG][       Thread-252849][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 11:14:56,069 [DEBUG][       Thread-252849][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 11:14:56,069 [DEBUG][       Thread-252849][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 11:14:56,069 [DEBUG][       Thread-252849][   transport.py][1871] : Compression: none
2025-06-13 11:14:56,069 [DEBUG][       Thread-252849][   transport.py][1871] : === End of kex handshake ===
2025-06-13 11:14:56,088 [DEBUG][       Thread-252849][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 11:14:56,088 [DEBUG][       Thread-252849][   transport.py][1871] : Switch to new keys ...
2025-06-13 11:14:56,089 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 11:14:56,089 [DEBUG][       Thread-252849][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 11:14:56,089 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 11:14:56,091 [DEBUG][       Thread-252849][   transport.py][1871] : userauth is OK
2025-06-13 11:14:56,115 [ INFO][       Thread-252849][   transport.py][1871] : Authentication (password) successful!
2025-06-13 11:14:56,115 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 11:14:56,744 [DEBUG][       Thread-252849][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 11:14:56,744 [DEBUG][       Thread-252849][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 11:14:56,789 [DEBUG][       Thread-252849][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 11:14:56,789 [DEBUG][       Thread-252849][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 11:14:56,793 [DEBUG][       Thread-252849][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 11:14:56,804 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 11:14:56,804 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 11:14:56,806 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 11:14:56,808 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 11:14:56,813 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 11:14:56,814 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 11:14:56,815 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 11:14:56,815 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 11:14:56,815 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.385009 -999.00   +9.80  21.69     52   +0.60 1 1 1 1 1   887    0 9.78 23.20 ----- 21.5 21.7 47.8 28.5 14.5 -28.5 13.1 -29.6 12.3 -28.6 13.6 -26.4
2025-06-13 11:14:56,815 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 11:14:56,815 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 11:14:56,815 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.385009
2025-06-13 11:14:56,816 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 11:14:56,816 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 11:14:56,817 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 11:14:56,817 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 11:14:56,817 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 11:14:56,817 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T11:14:28', tmtdew=10.37, humidity=48.52, cloud=0.0, wind=15.37, temperature=9.85, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T09:14:24.778', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 11:14:56,817 [DEBUG][       Thread-252849][   transport.py][1871] : EOF in transport thread
2025-06-13 11:14:56,901 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 11:14:56,911 [DEBUG][       Thread-252852][   transport.py][1871] : starting thread (client mode): 0x863c82b0
2025-06-13 11:14:56,911 [DEBUG][       Thread-252852][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 11:14:56,927 [DEBUG][       Thread-252852][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 11:14:56,927 [ INFO][       Thread-252852][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 11:14:56,936 [DEBUG][       Thread-252852][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 11:14:56,936 [DEBUG][       Thread-252852][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 11:14:56,936 [DEBUG][       Thread-252852][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 11:14:56,936 [DEBUG][       Thread-252852][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:14:56,936 [DEBUG][       Thread-252852][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:14:56,936 [DEBUG][       Thread-252852][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:14:56,936 [DEBUG][       Thread-252852][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:14:56,936 [DEBUG][       Thread-252852][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 11:14:56,936 [DEBUG][       Thread-252852][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 11:14:56,936 [DEBUG][       Thread-252852][   transport.py][1871] : client lang: <none>
2025-06-13 11:14:56,936 [DEBUG][       Thread-252852][   transport.py][1871] : server lang: <none>
2025-06-13 11:14:56,936 [DEBUG][       Thread-252852][   transport.py][1871] : kex follows: False
2025-06-13 11:14:56,936 [DEBUG][       Thread-252852][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 11:14:56,937 [DEBUG][       Thread-252852][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 11:14:56,937 [DEBUG][       Thread-252852][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 11:14:56,937 [DEBUG][       Thread-252852][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 11:14:56,937 [DEBUG][       Thread-252852][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 11:14:56,937 [DEBUG][       Thread-252852][   transport.py][1871] : Compression: none
2025-06-13 11:14:56,937 [DEBUG][       Thread-252852][   transport.py][1871] : === End of kex handshake ===
2025-06-13 11:14:56,996 [DEBUG][       Thread-252852][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 11:14:56,996 [DEBUG][       Thread-252852][   transport.py][1871] : Switch to new keys ...
2025-06-13 11:14:56,997 [DEBUG][       Thread-252852][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 11:14:56,997 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 11:14:56,997 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 11:14:57,055 [DEBUG][       Thread-252852][   transport.py][1871] : userauth is OK
2025-06-13 11:14:57,055 [DEBUG][       Thread-252852][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 11:14:57,055 [DEBUG][       Thread-252852][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 11:14:57,055 [DEBUG][       Thread-252852][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 11:14:57,055 [DEBUG][       Thread-252852][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 11:14:57,074 [ INFO][       Thread-252852][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 11:14:57,074 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 11:14:57,074 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 11:14:58,075 [DEBUG][       Thread-252852][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 11:14:58,076 [DEBUG][       Thread-252852][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 11:14:58,126 [DEBUG][       Thread-252852][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 11:14:58,126 [DEBUG][       Thread-252852][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 11:14:58,136 [DEBUG][       Thread-252852][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 11:14:58,144 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 11:14:58,145 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 11:14:58,154 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 11:14:58,163 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 11:14:58,163 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 11:14:58,164 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 11:14:58,172 [DEBUG][       Thread-252852][   transport.py][1871] : EOF in transport thread
2025-06-13 11:14:59,173 [DEBUG][Thread-252854 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:15:05,845 [DEBUG][Thread-252855 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:15:06,913 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:15:06,914 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:15:08,172 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 11:15:08,172 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 11:15:08,172 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 11:15:08,173 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 11:15:08,192 [DEBUG][Thread-252856 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:15:08,582 [DEBUG][Thread-252857 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:15:08,669 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 11, 14, 28), 10.37, 48.52, 0.0, 15.37, 9.85, 0, 0, 0, 2, 0, 0),)
2025-06-13 11:15:08,669 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 11:14:28
2025-06-13 11:15:08,755 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 11:15:08,760 [DEBUG][       Thread-252858][   transport.py][1871] : starting thread (client mode): 0x863bc100
2025-06-13 11:15:08,760 [DEBUG][       Thread-252858][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 11:15:08,772 [DEBUG][       Thread-252858][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 11:15:08,772 [ INFO][       Thread-252858][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 11:15:08,776 [DEBUG][       Thread-252858][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 11:15:08,776 [DEBUG][       Thread-252858][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 11:15:08,776 [DEBUG][       Thread-252858][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 11:15:08,776 [DEBUG][       Thread-252858][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:15:08,776 [DEBUG][       Thread-252858][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:15:08,776 [DEBUG][       Thread-252858][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:15:08,776 [DEBUG][       Thread-252858][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:15:08,776 [DEBUG][       Thread-252858][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 11:15:08,776 [DEBUG][       Thread-252858][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 11:15:08,776 [DEBUG][       Thread-252858][   transport.py][1871] : client lang: <none>
2025-06-13 11:15:08,776 [DEBUG][       Thread-252858][   transport.py][1871] : server lang: <none>
2025-06-13 11:15:08,776 [DEBUG][       Thread-252858][   transport.py][1871] : kex follows: False
2025-06-13 11:15:08,776 [DEBUG][       Thread-252858][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 11:15:08,776 [DEBUG][       Thread-252858][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 11:15:08,776 [DEBUG][       Thread-252858][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 11:15:08,776 [DEBUG][       Thread-252858][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 11:15:08,776 [DEBUG][       Thread-252858][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 11:15:08,776 [DEBUG][       Thread-252858][   transport.py][1871] : Compression: none
2025-06-13 11:15:08,776 [DEBUG][       Thread-252858][   transport.py][1871] : === End of kex handshake ===
2025-06-13 11:15:08,791 [DEBUG][       Thread-252858][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 11:15:08,791 [DEBUG][       Thread-252858][   transport.py][1871] : Switch to new keys ...
2025-06-13 11:15:08,791 [DEBUG][       Thread-252858][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 11:15:08,791 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 11:15:08,791 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 11:15:08,792 [DEBUG][       Thread-252858][   transport.py][1871] : userauth is OK
2025-06-13 11:15:08,804 [ INFO][       Thread-252858][   transport.py][1871] : Authentication (password) successful!
2025-06-13 11:15:08,804 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 11:15:10,133 [DEBUG][       Thread-252858][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 11:15:10,133 [DEBUG][       Thread-252858][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 11:15:10,176 [DEBUG][       Thread-252858][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 11:15:10,176 [DEBUG][       Thread-252858][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 11:15:10,179 [DEBUG][       Thread-252858][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 11:15:10,250 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 11:15:10,250 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 11:15:10,252 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 11:15:10,253 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 11:15:10,256 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 11:15:10,257 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 11:15:10,257 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 11:15:10,257 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 11:15:10,257 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.385356 -999.00   +9.90  23.93     53   +0.80 1 1 1 1 1   887    0 9.60 22.30 ----- 23.7 23.9 54.4 25.2 14.5 -28.4 13.1 -29.9 12.3 -28.4 13.7 -26.5
2025-06-13 11:15:10,257 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 11:15:10,257 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 11:15:10,257 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.385356
2025-06-13 11:15:10,257 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 11:15:10,257 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 11:15:10,257 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 11:15:10,257 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 11:15:10,257 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 11:15:10,257 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T11:14:28', tmtdew=10.37, humidity=48.52, cloud=0.0, wind=15.37, temperature=9.85, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T09:14:54.758', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 11:15:10,258 [DEBUG][       Thread-252858][   transport.py][1871] : EOF in transport thread
2025-06-13 11:15:10,329 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 11:15:10,340 [DEBUG][       Thread-252861][   transport.py][1871] : starting thread (client mode): 0x863bcac0
2025-06-13 11:15:10,340 [DEBUG][       Thread-252861][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 11:15:10,362 [DEBUG][       Thread-252861][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 11:15:10,362 [ INFO][       Thread-252861][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 11:15:10,369 [DEBUG][       Thread-252861][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 11:15:10,369 [DEBUG][       Thread-252861][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 11:15:10,369 [DEBUG][       Thread-252861][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 11:15:10,369 [DEBUG][       Thread-252861][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:15:10,369 [DEBUG][       Thread-252861][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:15:10,369 [DEBUG][       Thread-252861][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:15:10,369 [DEBUG][       Thread-252861][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:15:10,369 [DEBUG][       Thread-252861][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 11:15:10,369 [DEBUG][       Thread-252861][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 11:15:10,369 [DEBUG][       Thread-252861][   transport.py][1871] : client lang: <none>
2025-06-13 11:15:10,370 [DEBUG][       Thread-252861][   transport.py][1871] : server lang: <none>
2025-06-13 11:15:10,370 [DEBUG][       Thread-252861][   transport.py][1871] : kex follows: False
2025-06-13 11:15:10,370 [DEBUG][       Thread-252861][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 11:15:10,370 [DEBUG][       Thread-252861][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 11:15:10,370 [DEBUG][       Thread-252861][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 11:15:10,370 [DEBUG][       Thread-252861][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 11:15:10,370 [DEBUG][       Thread-252861][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 11:15:10,370 [DEBUG][       Thread-252861][   transport.py][1871] : Compression: none
2025-06-13 11:15:10,370 [DEBUG][       Thread-252861][   transport.py][1871] : === End of kex handshake ===
2025-06-13 11:15:10,426 [DEBUG][       Thread-252861][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 11:15:10,426 [DEBUG][       Thread-252861][   transport.py][1871] : Switch to new keys ...
2025-06-13 11:15:10,426 [DEBUG][       Thread-252861][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 11:15:10,426 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 11:15:10,426 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 11:15:10,487 [DEBUG][       Thread-252861][   transport.py][1871] : userauth is OK
2025-06-13 11:15:10,487 [DEBUG][       Thread-252861][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 11:15:10,487 [DEBUG][       Thread-252861][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 11:15:10,487 [DEBUG][       Thread-252861][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 11:15:10,487 [DEBUG][       Thread-252861][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 11:15:10,501 [ INFO][       Thread-252861][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 11:15:10,502 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 11:15:10,502 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 11:15:11,519 [DEBUG][       Thread-252861][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 11:15:11,519 [DEBUG][       Thread-252861][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 11:15:11,569 [DEBUG][       Thread-252861][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 11:15:11,569 [DEBUG][       Thread-252861][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 11:15:11,579 [DEBUG][       Thread-252861][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 11:15:11,589 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 11:15:11,589 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 11:15:11,598 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 11:15:11,606 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 11:15:11,606 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 11:15:11,606 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 11:15:11,614 [DEBUG][       Thread-252861][   transport.py][1871] : EOF in transport thread
2025-06-13 11:15:17,211 [DEBUG][Thread-252863 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:15:21,612 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 11:15:21,612 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 11:15:21,612 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 11:15:21,615 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 11:15:22,095 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 11, 14, 28), 10.37, 48.52, 0.0, 15.37, 9.85, 0, 0, 0, 2, 0, 0),)
2025-06-13 11:15:22,096 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 11:14:28
2025-06-13 11:15:22,176 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 11:15:22,180 [DEBUG][       Thread-252864][   transport.py][1871] : starting thread (client mode): 0x84207610
2025-06-13 11:15:22,180 [DEBUG][       Thread-252864][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 11:15:22,200 [DEBUG][       Thread-252864][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 11:15:22,201 [ INFO][       Thread-252864][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 11:15:22,204 [DEBUG][       Thread-252864][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 11:15:22,204 [DEBUG][       Thread-252864][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 11:15:22,204 [DEBUG][       Thread-252864][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 11:15:22,204 [DEBUG][       Thread-252864][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:15:22,204 [DEBUG][       Thread-252864][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:15:22,204 [DEBUG][       Thread-252864][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:15:22,204 [DEBUG][       Thread-252864][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:15:22,204 [DEBUG][       Thread-252864][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 11:15:22,204 [DEBUG][       Thread-252864][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 11:15:22,204 [DEBUG][       Thread-252864][   transport.py][1871] : client lang: <none>
2025-06-13 11:15:22,204 [DEBUG][       Thread-252864][   transport.py][1871] : server lang: <none>
2025-06-13 11:15:22,204 [DEBUG][       Thread-252864][   transport.py][1871] : kex follows: False
2025-06-13 11:15:22,204 [DEBUG][       Thread-252864][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 11:15:22,204 [DEBUG][       Thread-252864][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 11:15:22,204 [DEBUG][       Thread-252864][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 11:15:22,204 [DEBUG][       Thread-252864][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 11:15:22,204 [DEBUG][       Thread-252864][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 11:15:22,204 [DEBUG][       Thread-252864][   transport.py][1871] : Compression: none
2025-06-13 11:15:22,204 [DEBUG][       Thread-252864][   transport.py][1871] : === End of kex handshake ===
2025-06-13 11:15:22,220 [DEBUG][       Thread-252864][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 11:15:22,220 [DEBUG][       Thread-252864][   transport.py][1871] : Switch to new keys ...
2025-06-13 11:15:22,229 [DEBUG][       Thread-252864][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 11:15:22,229 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 11:15:22,229 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 11:15:22,230 [DEBUG][       Thread-252864][   transport.py][1871] : userauth is OK
2025-06-13 11:15:22,255 [ INFO][       Thread-252864][   transport.py][1871] : Authentication (password) successful!
2025-06-13 11:15:22,255 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 11:15:22,885 [DEBUG][       Thread-252864][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 11:15:22,886 [DEBUG][       Thread-252864][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 11:15:22,929 [DEBUG][       Thread-252864][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 11:15:22,929 [DEBUG][       Thread-252864][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 11:15:22,932 [DEBUG][       Thread-252864][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 11:15:22,944 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 11:15:22,945 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 11:15:22,947 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 11:15:22,949 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 11:15:22,955 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 11:15:22,957 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 11:15:22,957 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 11:15:22,958 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 11:15:22,958 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.385356 -999.00   +9.90  23.93     53   +0.80 1 1 1 1 1   887    0 9.60 22.30 ----- 23.7 23.9 54.4 25.2 14.5 -28.4 13.1 -29.9 12.3 -28.4 13.7 -26.5
2025-06-13 11:15:22,958 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 11:15:22,958 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 11:15:22,959 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.385356
2025-06-13 11:15:22,959 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 11:15:22,960 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 11:15:22,960 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 11:15:22,960 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 11:15:22,960 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 11:15:22,960 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T11:14:28', tmtdew=10.37, humidity=48.52, cloud=0.0, wind=15.37, temperature=9.85, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T09:14:54.758', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 11:15:22,961 [DEBUG][       Thread-252864][   transport.py][1871] : EOF in transport thread
2025-06-13 11:15:23,044 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 11:15:23,059 [DEBUG][       Thread-252867][   transport.py][1871] : starting thread (client mode): 0x863a55d0
2025-06-13 11:15:23,059 [DEBUG][       Thread-252867][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 11:15:23,078 [DEBUG][       Thread-252867][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 11:15:23,078 [ INFO][       Thread-252867][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 11:15:23,086 [DEBUG][       Thread-252867][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 11:15:23,086 [DEBUG][       Thread-252867][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 11:15:23,086 [DEBUG][       Thread-252867][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 11:15:23,086 [DEBUG][       Thread-252867][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:15:23,086 [DEBUG][       Thread-252867][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:15:23,086 [DEBUG][       Thread-252867][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:15:23,086 [DEBUG][       Thread-252867][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:15:23,086 [DEBUG][       Thread-252867][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 11:15:23,086 [DEBUG][       Thread-252867][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 11:15:23,086 [DEBUG][       Thread-252867][   transport.py][1871] : client lang: <none>
2025-06-13 11:15:23,086 [DEBUG][       Thread-252867][   transport.py][1871] : server lang: <none>
2025-06-13 11:15:23,086 [DEBUG][       Thread-252867][   transport.py][1871] : kex follows: False
2025-06-13 11:15:23,086 [DEBUG][       Thread-252867][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 11:15:23,086 [DEBUG][       Thread-252867][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 11:15:23,087 [DEBUG][       Thread-252867][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 11:15:23,087 [DEBUG][       Thread-252867][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 11:15:23,087 [DEBUG][       Thread-252867][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 11:15:23,087 [DEBUG][       Thread-252867][   transport.py][1871] : Compression: none
2025-06-13 11:15:23,087 [DEBUG][       Thread-252867][   transport.py][1871] : === End of kex handshake ===
2025-06-13 11:15:23,148 [DEBUG][       Thread-252867][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 11:15:23,148 [DEBUG][       Thread-252867][   transport.py][1871] : Switch to new keys ...
2025-06-13 11:15:23,149 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 11:15:23,149 [DEBUG][       Thread-252867][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 11:15:23,150 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 11:15:23,210 [DEBUG][       Thread-252867][   transport.py][1871] : userauth is OK
2025-06-13 11:15:23,211 [DEBUG][       Thread-252867][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 11:15:23,211 [DEBUG][       Thread-252867][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 11:15:23,211 [DEBUG][       Thread-252867][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 11:15:23,211 [DEBUG][       Thread-252867][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 11:15:23,229 [ INFO][       Thread-252867][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 11:15:23,230 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 11:15:23,230 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 11:15:24,271 [DEBUG][       Thread-252867][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 11:15:24,271 [DEBUG][       Thread-252867][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 11:15:24,325 [DEBUG][       Thread-252867][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 11:15:24,325 [DEBUG][       Thread-252867][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 11:15:24,334 [DEBUG][       Thread-252867][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 11:15:24,344 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 11:15:24,344 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 11:15:24,353 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 11:15:24,362 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 11:15:24,363 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 11:15:24,363 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 11:15:24,371 [DEBUG][       Thread-252867][   transport.py][1871] : EOF in transport thread
2025-06-13 11:15:26,239 [DEBUG][Thread-252869 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:15:33,225 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:15:33,226 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:15:34,374 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 11:15:34,374 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 11:15:34,374 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 11:15:34,377 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 11:15:34,863 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 11, 15, 31), 10.47, 48.3, 0.0, 20.77, 10.04, 0, 0, 0, 2, 0, 0),)
2025-06-13 11:15:34,863 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 11:15:31
2025-06-13 11:15:34,944 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 11:15:34,949 [DEBUG][       Thread-252870][   transport.py][1871] : starting thread (client mode): 0x86368490
2025-06-13 11:15:34,949 [DEBUG][       Thread-252870][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 11:15:34,970 [DEBUG][       Thread-252870][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 11:15:34,970 [ INFO][       Thread-252870][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 11:15:34,972 [DEBUG][       Thread-252870][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 11:15:34,972 [DEBUG][       Thread-252870][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 11:15:34,972 [DEBUG][       Thread-252870][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 11:15:34,973 [DEBUG][       Thread-252870][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:15:34,973 [DEBUG][       Thread-252870][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:15:34,973 [DEBUG][       Thread-252870][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:15:34,973 [DEBUG][       Thread-252870][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:15:34,973 [DEBUG][       Thread-252870][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 11:15:34,973 [DEBUG][       Thread-252870][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 11:15:34,973 [DEBUG][       Thread-252870][   transport.py][1871] : client lang: <none>
2025-06-13 11:15:34,973 [DEBUG][       Thread-252870][   transport.py][1871] : server lang: <none>
2025-06-13 11:15:34,973 [DEBUG][       Thread-252870][   transport.py][1871] : kex follows: False
2025-06-13 11:15:34,973 [DEBUG][       Thread-252870][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 11:15:34,973 [DEBUG][       Thread-252870][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 11:15:34,973 [DEBUG][       Thread-252870][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 11:15:34,973 [DEBUG][       Thread-252870][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 11:15:34,973 [DEBUG][       Thread-252870][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 11:15:34,973 [DEBUG][       Thread-252870][   transport.py][1871] : Compression: none
2025-06-13 11:15:34,973 [DEBUG][       Thread-252870][   transport.py][1871] : === End of kex handshake ===
2025-06-13 11:15:34,989 [DEBUG][       Thread-252870][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 11:15:34,990 [DEBUG][       Thread-252870][   transport.py][1871] : Switch to new keys ...
2025-06-13 11:15:34,990 [DEBUG][       Thread-252870][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 11:15:34,991 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 11:15:34,991 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 11:15:34,992 [DEBUG][       Thread-252870][   transport.py][1871] : userauth is OK
2025-06-13 11:15:35,005 [ INFO][       Thread-252870][   transport.py][1871] : Authentication (password) successful!
2025-06-13 11:15:35,005 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 11:15:35,261 [DEBUG][Thread-252872 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:15:35,657 [DEBUG][       Thread-252870][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 11:15:35,657 [DEBUG][       Thread-252870][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 11:15:35,701 [DEBUG][       Thread-252870][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 11:15:35,701 [DEBUG][       Thread-252870][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 11:15:35,705 [DEBUG][       Thread-252870][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 11:15:35,717 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 11:15:35,718 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 11:15:35,720 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 11:15:35,722 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 11:15:35,729 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 11:15:35,732 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 11:15:35,732 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 11:15:35,733 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 11:15:35,733 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.385356 -999.00   +9.90  23.93     53   +0.80 1 1 1 1 1   887    0 9.60 22.30 ----- 23.7 23.9 54.4 25.2 14.5 -28.4 13.1 -29.9 12.3 -28.4 13.7 -26.5
2025-06-13 11:15:35,733 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 11:15:35,733 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 11:15:35,733 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.385356
2025-06-13 11:15:35,733 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 11:15:35,734 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 11:15:35,734 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 11:15:35,734 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 11:15:35,734 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 11:15:35,734 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T11:15:31', tmtdew=10.47, humidity=48.3, cloud=0.0, wind=20.77, temperature=10.04, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T09:14:54.758', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 11:15:35,736 [DEBUG][       Thread-252870][   transport.py][1871] : EOF in transport thread
2025-06-13 11:15:35,812 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 11:15:35,824 [DEBUG][       Thread-252874][   transport.py][1871] : starting thread (client mode): 0x84206050
2025-06-13 11:15:35,824 [DEBUG][       Thread-252874][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 11:15:35,839 [DEBUG][       Thread-252874][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 11:15:35,839 [ INFO][       Thread-252874][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 11:15:35,847 [DEBUG][       Thread-252874][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 11:15:35,847 [DEBUG][       Thread-252874][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 11:15:35,847 [DEBUG][       Thread-252874][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 11:15:35,847 [DEBUG][       Thread-252874][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:15:35,847 [DEBUG][       Thread-252874][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:15:35,847 [DEBUG][       Thread-252874][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:15:35,847 [DEBUG][       Thread-252874][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:15:35,847 [DEBUG][       Thread-252874][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 11:15:35,847 [DEBUG][       Thread-252874][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 11:15:35,847 [DEBUG][       Thread-252874][   transport.py][1871] : client lang: <none>
2025-06-13 11:15:35,847 [DEBUG][       Thread-252874][   transport.py][1871] : server lang: <none>
2025-06-13 11:15:35,847 [DEBUG][       Thread-252874][   transport.py][1871] : kex follows: False
2025-06-13 11:15:35,847 [DEBUG][       Thread-252874][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 11:15:35,847 [DEBUG][       Thread-252874][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 11:15:35,847 [DEBUG][       Thread-252874][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 11:15:35,847 [DEBUG][       Thread-252874][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 11:15:35,847 [DEBUG][       Thread-252874][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 11:15:35,848 [DEBUG][       Thread-252874][   transport.py][1871] : Compression: none
2025-06-13 11:15:35,848 [DEBUG][       Thread-252874][   transport.py][1871] : === End of kex handshake ===
2025-06-13 11:15:35,904 [DEBUG][       Thread-252874][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 11:15:35,905 [DEBUG][       Thread-252874][   transport.py][1871] : Switch to new keys ...
2025-06-13 11:15:35,905 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 11:15:35,906 [DEBUG][       Thread-252874][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 11:15:35,907 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 11:15:35,965 [DEBUG][       Thread-252874][   transport.py][1871] : userauth is OK
2025-06-13 11:15:35,966 [DEBUG][       Thread-252874][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 11:15:35,966 [DEBUG][       Thread-252874][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 11:15:35,966 [DEBUG][       Thread-252874][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 11:15:35,966 [DEBUG][       Thread-252874][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 11:15:35,987 [ INFO][       Thread-252874][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 11:15:35,987 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 11:15:35,988 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 11:15:37,047 [DEBUG][       Thread-252874][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 11:15:37,048 [DEBUG][       Thread-252874][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 11:15:37,102 [DEBUG][       Thread-252874][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 11:15:37,102 [DEBUG][       Thread-252874][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 11:15:37,115 [DEBUG][       Thread-252874][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 11:15:37,127 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 11:15:37,128 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 11:15:37,137 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 11:15:37,147 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 11:15:37,147 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 11:15:37,148 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 11:15:37,156 [DEBUG][       Thread-252874][   transport.py][1871] : EOF in transport thread
2025-06-13 11:15:44,283 [DEBUG][Thread-252876 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:15:47,156 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 11:15:47,156 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 11:15:47,156 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 11:15:47,157 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 11:15:47,664 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 11, 15, 31), 10.47, 48.3, 0.0, 20.77, 10.04, 0, 0, 0, 2, 0, 0),)
2025-06-13 11:15:47,664 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 11:15:31
2025-06-13 11:15:47,749 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 11:15:47,755 [DEBUG][       Thread-252877][   transport.py][1871] : starting thread (client mode): 0x84206050
2025-06-13 11:15:47,755 [DEBUG][       Thread-252877][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 11:15:47,774 [DEBUG][       Thread-252877][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 11:15:47,774 [ INFO][       Thread-252877][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 11:15:47,775 [DEBUG][       Thread-252877][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 11:15:47,775 [DEBUG][       Thread-252877][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 11:15:47,775 [DEBUG][       Thread-252877][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 11:15:47,775 [DEBUG][       Thread-252877][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:15:47,775 [DEBUG][       Thread-252877][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:15:47,775 [DEBUG][       Thread-252877][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:15:47,775 [DEBUG][       Thread-252877][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:15:47,775 [DEBUG][       Thread-252877][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 11:15:47,775 [DEBUG][       Thread-252877][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 11:15:47,775 [DEBUG][       Thread-252877][   transport.py][1871] : client lang: <none>
2025-06-13 11:15:47,775 [DEBUG][       Thread-252877][   transport.py][1871] : server lang: <none>
2025-06-13 11:15:47,775 [DEBUG][       Thread-252877][   transport.py][1871] : kex follows: False
2025-06-13 11:15:47,775 [DEBUG][       Thread-252877][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 11:15:47,775 [DEBUG][       Thread-252877][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 11:15:47,775 [DEBUG][       Thread-252877][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 11:15:47,775 [DEBUG][       Thread-252877][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 11:15:47,775 [DEBUG][       Thread-252877][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 11:15:47,775 [DEBUG][       Thread-252877][   transport.py][1871] : Compression: none
2025-06-13 11:15:47,775 [DEBUG][       Thread-252877][   transport.py][1871] : === End of kex handshake ===
2025-06-13 11:15:47,784 [DEBUG][       Thread-252877][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 11:15:47,784 [DEBUG][       Thread-252877][   transport.py][1871] : Switch to new keys ...
2025-06-13 11:15:47,784 [DEBUG][       Thread-252877][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 11:15:47,784 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 11:15:47,784 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 11:15:47,785 [DEBUG][       Thread-252877][   transport.py][1871] : userauth is OK
2025-06-13 11:15:47,797 [ INFO][       Thread-252877][   transport.py][1871] : Authentication (password) successful!
2025-06-13 11:15:47,797 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 11:15:48,444 [DEBUG][       Thread-252877][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 11:15:48,444 [DEBUG][       Thread-252877][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 11:15:48,484 [DEBUG][       Thread-252877][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 11:15:48,485 [DEBUG][       Thread-252877][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 11:15:48,487 [DEBUG][       Thread-252877][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 11:15:48,500 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 11:15:48,501 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 11:15:48,502 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 11:15:48,503 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 11:15:48,506 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 11:15:48,506 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 11:15:48,506 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 11:15:48,507 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 11:15:48,507 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.385703 -999.00   +9.80  20.58     53   +0.70 1 1 1 1 1   887    0 9.59 21.97 ----- 17.5 20.6 55.8 28.6 14.6 -28.0 13.1 -29.6 12.3 -28.6 13.7 -27.0
2025-06-13 11:15:48,507 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 11:15:48,507 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 11:15:48,507 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.385703
2025-06-13 11:15:48,507 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 11:15:48,507 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 11:15:48,507 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 11:15:48,507 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 11:15:48,507 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 11:15:48,507 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T11:15:31', tmtdew=10.47, humidity=48.3, cloud=0.0, wind=20.77, temperature=10.04, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T09:15:24.739', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 11:15:48,508 [DEBUG][       Thread-252877][   transport.py][1871] : EOF in transport thread
2025-06-13 11:15:48,579 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 11:15:48,592 [DEBUG][       Thread-252880][   transport.py][1871] : starting thread (client mode): 0x867b6fe0
2025-06-13 11:15:48,592 [DEBUG][       Thread-252880][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 11:15:48,607 [DEBUG][       Thread-252880][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 11:15:48,607 [ INFO][       Thread-252880][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 11:15:48,615 [DEBUG][       Thread-252880][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 11:15:48,615 [DEBUG][       Thread-252880][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 11:15:48,615 [DEBUG][       Thread-252880][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 11:15:48,615 [DEBUG][       Thread-252880][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:15:48,615 [DEBUG][       Thread-252880][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:15:48,615 [DEBUG][       Thread-252880][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:15:48,615 [DEBUG][       Thread-252880][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:15:48,615 [DEBUG][       Thread-252880][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 11:15:48,615 [DEBUG][       Thread-252880][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 11:15:48,615 [DEBUG][       Thread-252880][   transport.py][1871] : client lang: <none>
2025-06-13 11:15:48,615 [DEBUG][       Thread-252880][   transport.py][1871] : server lang: <none>
2025-06-13 11:15:48,615 [DEBUG][       Thread-252880][   transport.py][1871] : kex follows: False
2025-06-13 11:15:48,615 [DEBUG][       Thread-252880][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 11:15:48,615 [DEBUG][       Thread-252880][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 11:15:48,615 [DEBUG][       Thread-252880][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 11:15:48,615 [DEBUG][       Thread-252880][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 11:15:48,615 [DEBUG][       Thread-252880][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 11:15:48,615 [DEBUG][       Thread-252880][   transport.py][1871] : Compression: none
2025-06-13 11:15:48,615 [DEBUG][       Thread-252880][   transport.py][1871] : === End of kex handshake ===
2025-06-13 11:15:48,674 [DEBUG][       Thread-252880][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 11:15:48,674 [DEBUG][       Thread-252880][   transport.py][1871] : Switch to new keys ...
2025-06-13 11:15:48,674 [DEBUG][       Thread-252880][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 11:15:48,674 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 11:15:48,674 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 11:15:48,731 [DEBUG][       Thread-252880][   transport.py][1871] : userauth is OK
2025-06-13 11:15:48,731 [DEBUG][       Thread-252880][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 11:15:48,731 [DEBUG][       Thread-252880][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 11:15:48,731 [DEBUG][       Thread-252880][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 11:15:48,731 [DEBUG][       Thread-252880][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 11:15:48,745 [ INFO][       Thread-252880][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 11:15:48,745 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 11:15:48,745 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 11:15:49,751 [DEBUG][       Thread-252880][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 11:15:49,751 [DEBUG][       Thread-252880][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 11:15:49,803 [DEBUG][       Thread-252880][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 11:15:49,803 [DEBUG][       Thread-252880][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 11:15:49,816 [DEBUG][       Thread-252880][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 11:15:49,828 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 11:15:49,828 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 11:15:49,836 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 11:15:49,848 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 11:15:49,848 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 11:15:49,848 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 11:15:49,856 [DEBUG][       Thread-252880][   transport.py][1871] : EOF in transport thread
2025-06-13 11:15:53,316 [DEBUG][Thread-252882 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:15:59,859 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 11:15:59,859 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 11:15:59,859 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 11:15:59,862 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 11:16:00,336 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 11, 15, 31), 10.47, 48.3, 0.0, 20.77, 10.04, 0, 0, 0, 2, 0, 0),)
2025-06-13 11:16:00,336 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 11:15:31
2025-06-13 11:16:00,418 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 11:16:00,422 [DEBUG][       Thread-252883][   transport.py][1871] : starting thread (client mode): 0x86369990
2025-06-13 11:16:00,422 [DEBUG][       Thread-252883][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 11:16:00,444 [DEBUG][       Thread-252883][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 11:16:00,444 [ INFO][       Thread-252883][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 11:16:00,447 [DEBUG][       Thread-252883][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 11:16:00,447 [DEBUG][       Thread-252883][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 11:16:00,447 [DEBUG][       Thread-252883][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 11:16:00,447 [DEBUG][       Thread-252883][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:16:00,447 [DEBUG][       Thread-252883][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:16:00,447 [DEBUG][       Thread-252883][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:16:00,447 [DEBUG][       Thread-252883][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:16:00,447 [DEBUG][       Thread-252883][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 11:16:00,447 [DEBUG][       Thread-252883][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 11:16:00,447 [DEBUG][       Thread-252883][   transport.py][1871] : client lang: <none>
2025-06-13 11:16:00,447 [DEBUG][       Thread-252883][   transport.py][1871] : server lang: <none>
2025-06-13 11:16:00,447 [DEBUG][       Thread-252883][   transport.py][1871] : kex follows: False
2025-06-13 11:16:00,447 [DEBUG][       Thread-252883][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 11:16:00,447 [DEBUG][       Thread-252883][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 11:16:00,447 [DEBUG][       Thread-252883][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 11:16:00,447 [DEBUG][       Thread-252883][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 11:16:00,448 [DEBUG][       Thread-252883][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 11:16:00,448 [DEBUG][       Thread-252883][   transport.py][1871] : Compression: none
2025-06-13 11:16:00,448 [DEBUG][       Thread-252883][   transport.py][1871] : === End of kex handshake ===
2025-06-13 11:16:00,464 [DEBUG][       Thread-252883][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 11:16:00,464 [DEBUG][       Thread-252883][   transport.py][1871] : Switch to new keys ...
2025-06-13 11:16:00,465 [DEBUG][       Thread-252883][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 11:16:00,465 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 11:16:00,465 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 11:16:00,466 [DEBUG][       Thread-252883][   transport.py][1871] : userauth is OK
2025-06-13 11:16:00,479 [ INFO][       Thread-252883][   transport.py][1871] : Authentication (password) successful!
2025-06-13 11:16:00,480 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 11:16:01,128 [DEBUG][       Thread-252883][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 11:16:01,128 [DEBUG][       Thread-252883][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 11:16:01,169 [DEBUG][       Thread-252883][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 11:16:01,169 [DEBUG][       Thread-252883][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 11:16:01,173 [DEBUG][       Thread-252883][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 11:16:01,185 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 11:16:01,185 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 11:16:01,187 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 11:16:01,190 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 11:16:01,195 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 11:16:01,197 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 11:16:01,198 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 11:16:01,198 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 11:16:01,199 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.385703 -999.00   +9.80  20.58     53   +0.70 1 1 1 1 1   887    0 9.59 21.97 ----- 17.5 20.6 55.8 28.6 14.6 -28.0 13.1 -29.6 12.3 -28.6 13.7 -27.0
2025-06-13 11:16:01,199 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 11:16:01,199 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 11:16:01,199 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.385703
2025-06-13 11:16:01,199 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 11:16:01,200 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 11:16:01,200 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 11:16:01,200 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 11:16:01,200 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 11:16:01,201 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T11:15:31', tmtdew=10.47, humidity=48.3, cloud=0.0, wind=20.77, temperature=10.04, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T09:15:24.739', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 11:16:01,202 [DEBUG][       Thread-252883][   transport.py][1871] : EOF in transport thread
2025-06-13 11:16:01,287 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 11:16:01,297 [DEBUG][       Thread-252886][   transport.py][1871] : starting thread (client mode): 0x867fd960
2025-06-13 11:16:01,297 [DEBUG][       Thread-252886][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 11:16:01,314 [DEBUG][       Thread-252886][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 11:16:01,314 [ INFO][       Thread-252886][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 11:16:01,327 [DEBUG][       Thread-252886][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 11:16:01,328 [DEBUG][       Thread-252886][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 11:16:01,328 [DEBUG][       Thread-252886][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 11:16:01,328 [DEBUG][       Thread-252886][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:16:01,328 [DEBUG][       Thread-252886][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:16:01,328 [DEBUG][       Thread-252886][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:16:01,328 [DEBUG][       Thread-252886][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:16:01,328 [DEBUG][       Thread-252886][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 11:16:01,328 [DEBUG][       Thread-252886][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 11:16:01,328 [DEBUG][       Thread-252886][   transport.py][1871] : client lang: <none>
2025-06-13 11:16:01,328 [DEBUG][       Thread-252886][   transport.py][1871] : server lang: <none>
2025-06-13 11:16:01,328 [DEBUG][       Thread-252886][   transport.py][1871] : kex follows: False
2025-06-13 11:16:01,328 [DEBUG][       Thread-252886][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 11:16:01,328 [DEBUG][       Thread-252886][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 11:16:01,328 [DEBUG][       Thread-252886][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 11:16:01,329 [DEBUG][       Thread-252886][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 11:16:01,329 [DEBUG][       Thread-252886][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 11:16:01,329 [DEBUG][       Thread-252886][   transport.py][1871] : Compression: none
2025-06-13 11:16:01,329 [DEBUG][       Thread-252886][   transport.py][1871] : === End of kex handshake ===
2025-06-13 11:16:01,386 [DEBUG][       Thread-252886][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 11:16:01,387 [DEBUG][       Thread-252886][   transport.py][1871] : Switch to new keys ...
2025-06-13 11:16:01,387 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 11:16:01,388 [DEBUG][       Thread-252886][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 11:16:01,388 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 11:16:01,447 [DEBUG][       Thread-252886][   transport.py][1871] : userauth is OK
2025-06-13 11:16:01,447 [DEBUG][       Thread-252886][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 11:16:01,447 [DEBUG][       Thread-252886][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 11:16:01,447 [DEBUG][       Thread-252886][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 11:16:01,447 [DEBUG][       Thread-252886][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 11:16:01,467 [ INFO][       Thread-252886][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 11:16:01,468 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 11:16:01,468 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 11:16:02,337 [DEBUG][Thread-252888 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:16:02,542 [DEBUG][       Thread-252886][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 11:16:02,543 [DEBUG][       Thread-252886][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 11:16:02,592 [DEBUG][       Thread-252886][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 11:16:02,592 [DEBUG][       Thread-252886][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 11:16:02,603 [DEBUG][       Thread-252886][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 11:16:02,613 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 11:16:02,613 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 11:16:02,623 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 11:16:02,633 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 11:16:02,633 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 11:16:02,634 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 11:16:02,643 [DEBUG][       Thread-252886][   transport.py][1871] : EOF in transport thread
2025-06-13 11:16:06,984 [DEBUG][Thread-252889 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:16:08,060 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:16:08,061 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:16:08,630 [DEBUG][Thread-252890 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:16:11,359 [DEBUG][Thread-252891 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:16:12,644 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 11:16:12,645 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 11:16:12,645 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 11:16:12,648 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 11:16:13,136 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 11, 16, 3), 10.69, 47.57, 0.0, 20.54, 10.02, 0, 0, 0, 2, 0, 0),)
2025-06-13 11:16:13,136 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 11:16:03
2025-06-13 11:16:13,218 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 11:16:13,223 [DEBUG][       Thread-252892][   transport.py][1871] : starting thread (client mode): 0x84207bb0
2025-06-13 11:16:13,223 [DEBUG][       Thread-252892][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 11:16:13,245 [DEBUG][       Thread-252892][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 11:16:13,245 [ INFO][       Thread-252892][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 11:16:13,248 [DEBUG][       Thread-252892][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 11:16:13,248 [DEBUG][       Thread-252892][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 11:16:13,249 [DEBUG][       Thread-252892][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 11:16:13,249 [DEBUG][       Thread-252892][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:16:13,249 [DEBUG][       Thread-252892][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:16:13,249 [DEBUG][       Thread-252892][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:16:13,249 [DEBUG][       Thread-252892][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:16:13,249 [DEBUG][       Thread-252892][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 11:16:13,249 [DEBUG][       Thread-252892][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 11:16:13,249 [DEBUG][       Thread-252892][   transport.py][1871] : client lang: <none>
2025-06-13 11:16:13,249 [DEBUG][       Thread-252892][   transport.py][1871] : server lang: <none>
2025-06-13 11:16:13,249 [DEBUG][       Thread-252892][   transport.py][1871] : kex follows: False
2025-06-13 11:16:13,249 [DEBUG][       Thread-252892][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 11:16:13,249 [DEBUG][       Thread-252892][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 11:16:13,249 [DEBUG][       Thread-252892][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 11:16:13,249 [DEBUG][       Thread-252892][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 11:16:13,249 [DEBUG][       Thread-252892][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 11:16:13,249 [DEBUG][       Thread-252892][   transport.py][1871] : Compression: none
2025-06-13 11:16:13,249 [DEBUG][       Thread-252892][   transport.py][1871] : === End of kex handshake ===
2025-06-13 11:16:13,266 [DEBUG][       Thread-252892][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 11:16:13,267 [DEBUG][       Thread-252892][   transport.py][1871] : Switch to new keys ...
2025-06-13 11:16:13,267 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 11:16:13,267 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 11:16:13,268 [DEBUG][       Thread-252892][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 11:16:13,269 [DEBUG][       Thread-252892][   transport.py][1871] : userauth is OK
2025-06-13 11:16:13,294 [ INFO][       Thread-252892][   transport.py][1871] : Authentication (password) successful!
2025-06-13 11:16:13,295 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 11:16:13,939 [DEBUG][       Thread-252892][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 11:16:13,939 [DEBUG][       Thread-252892][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 11:16:13,981 [DEBUG][       Thread-252892][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 11:16:13,981 [DEBUG][       Thread-252892][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 11:16:13,985 [DEBUG][       Thread-252892][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 11:16:13,998 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 11:16:13,998 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 11:16:14,001 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 11:16:14,003 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 11:16:14,010 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 11:16:14,012 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 11:16:14,012 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 11:16:14,013 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 11:16:14,013 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.385703 -999.00   +9.80  20.58     53   +0.70 1 1 1 1 1   887    0 9.59 21.97 ----- 17.5 20.6 55.8 28.6 14.6 -28.0 13.1 -29.6 12.3 -28.6 13.7 -27.0
2025-06-13 11:16:14,013 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 11:16:14,013 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 11:16:14,013 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.385703
2025-06-13 11:16:14,014 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 11:16:14,014 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 11:16:14,014 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 11:16:14,014 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 11:16:14,015 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 11:16:14,015 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T11:16:03', tmtdew=10.69, humidity=47.57, cloud=0.0, wind=20.54, temperature=10.02, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T09:15:24.739', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 11:16:14,016 [DEBUG][       Thread-252892][   transport.py][1871] : EOF in transport thread
2025-06-13 11:16:14,091 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 11:16:14,103 [DEBUG][       Thread-252895][   transport.py][1871] : starting thread (client mode): 0x863bf880
2025-06-13 11:16:14,104 [DEBUG][       Thread-252895][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 11:16:14,123 [DEBUG][       Thread-252895][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 11:16:14,123 [ INFO][       Thread-252895][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 11:16:14,132 [DEBUG][       Thread-252895][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 11:16:14,133 [DEBUG][       Thread-252895][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 11:16:14,133 [DEBUG][       Thread-252895][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 11:16:14,133 [DEBUG][       Thread-252895][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:16:14,133 [DEBUG][       Thread-252895][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:16:14,133 [DEBUG][       Thread-252895][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:16:14,133 [DEBUG][       Thread-252895][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:16:14,133 [DEBUG][       Thread-252895][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 11:16:14,133 [DEBUG][       Thread-252895][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 11:16:14,133 [DEBUG][       Thread-252895][   transport.py][1871] : client lang: <none>
2025-06-13 11:16:14,133 [DEBUG][       Thread-252895][   transport.py][1871] : server lang: <none>
2025-06-13 11:16:14,133 [DEBUG][       Thread-252895][   transport.py][1871] : kex follows: False
2025-06-13 11:16:14,133 [DEBUG][       Thread-252895][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 11:16:14,133 [DEBUG][       Thread-252895][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 11:16:14,133 [DEBUG][       Thread-252895][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 11:16:14,133 [DEBUG][       Thread-252895][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 11:16:14,134 [DEBUG][       Thread-252895][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 11:16:14,134 [DEBUG][       Thread-252895][   transport.py][1871] : Compression: none
2025-06-13 11:16:14,134 [DEBUG][       Thread-252895][   transport.py][1871] : === End of kex handshake ===
2025-06-13 11:16:14,191 [DEBUG][       Thread-252895][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 11:16:14,192 [DEBUG][       Thread-252895][   transport.py][1871] : Switch to new keys ...
2025-06-13 11:16:14,192 [DEBUG][       Thread-252895][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 11:16:14,193 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 11:16:14,193 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 11:16:14,251 [DEBUG][       Thread-252895][   transport.py][1871] : userauth is OK
2025-06-13 11:16:14,252 [DEBUG][       Thread-252895][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 11:16:14,252 [DEBUG][       Thread-252895][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 11:16:14,252 [DEBUG][       Thread-252895][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 11:16:14,252 [DEBUG][       Thread-252895][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 11:16:14,271 [ INFO][       Thread-252895][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 11:16:14,272 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 11:16:14,272 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 11:16:15,303 [DEBUG][       Thread-252895][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 11:16:15,303 [DEBUG][       Thread-252895][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 11:16:15,354 [DEBUG][       Thread-252895][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 11:16:15,354 [DEBUG][       Thread-252895][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 11:16:15,370 [DEBUG][       Thread-252895][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 11:16:15,381 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 11:16:15,381 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 11:16:15,392 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 11:16:15,403 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 11:16:15,404 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 11:16:15,404 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 11:16:15,414 [DEBUG][       Thread-252895][   transport.py][1871] : EOF in transport thread
2025-06-13 11:16:20,378 [DEBUG][Thread-252897 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:16:25,412 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 11:16:25,412 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 11:16:25,412 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 11:16:25,413 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 11:16:25,896 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 11, 16, 3), 10.69, 47.57, 0.0, 20.54, 10.02, 0, 0, 0, 2, 0, 0),)
2025-06-13 11:16:25,896 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 11:16:03
2025-06-13 11:16:25,981 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 11:16:25,985 [DEBUG][       Thread-252898][   transport.py][1871] : starting thread (client mode): 0x863bd540
2025-06-13 11:16:25,985 [DEBUG][       Thread-252898][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 11:16:26,006 [DEBUG][       Thread-252898][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 11:16:26,006 [ INFO][       Thread-252898][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 11:16:26,009 [DEBUG][       Thread-252898][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 11:16:26,010 [DEBUG][       Thread-252898][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 11:16:26,010 [DEBUG][       Thread-252898][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 11:16:26,010 [DEBUG][       Thread-252898][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:16:26,010 [DEBUG][       Thread-252898][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:16:26,010 [DEBUG][       Thread-252898][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:16:26,010 [DEBUG][       Thread-252898][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:16:26,010 [DEBUG][       Thread-252898][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 11:16:26,010 [DEBUG][       Thread-252898][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 11:16:26,010 [DEBUG][       Thread-252898][   transport.py][1871] : client lang: <none>
2025-06-13 11:16:26,010 [DEBUG][       Thread-252898][   transport.py][1871] : server lang: <none>
2025-06-13 11:16:26,010 [DEBUG][       Thread-252898][   transport.py][1871] : kex follows: False
2025-06-13 11:16:26,010 [DEBUG][       Thread-252898][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 11:16:26,010 [DEBUG][       Thread-252898][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 11:16:26,010 [DEBUG][       Thread-252898][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 11:16:26,010 [DEBUG][       Thread-252898][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 11:16:26,010 [DEBUG][       Thread-252898][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 11:16:26,010 [DEBUG][       Thread-252898][   transport.py][1871] : Compression: none
2025-06-13 11:16:26,010 [DEBUG][       Thread-252898][   transport.py][1871] : === End of kex handshake ===
2025-06-13 11:16:26,025 [DEBUG][       Thread-252898][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 11:16:26,025 [DEBUG][       Thread-252898][   transport.py][1871] : Switch to new keys ...
2025-06-13 11:16:26,025 [DEBUG][       Thread-252898][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 11:16:26,025 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 11:16:26,025 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 11:16:26,026 [DEBUG][       Thread-252898][   transport.py][1871] : userauth is OK
2025-06-13 11:16:26,038 [ INFO][       Thread-252898][   transport.py][1871] : Authentication (password) successful!
2025-06-13 11:16:26,038 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 11:16:26,602 [DEBUG][       Thread-252898][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 11:16:26,602 [DEBUG][       Thread-252898][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 11:16:26,644 [DEBUG][       Thread-252898][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 11:16:26,644 [DEBUG][       Thread-252898][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 11:16:26,647 [DEBUG][       Thread-252898][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 11:16:26,658 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 11:16:26,658 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 11:16:26,659 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 11:16:26,660 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 11:16:26,663 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 11:16:26,664 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 11:16:26,664 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 11:16:26,664 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 11:16:26,664 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.386050 -999.00   +9.70  25.66     52   +0.50 1 1 1 1 1   887    0 9.89 23.74 ----- 24.4 25.7 53.8 27.0 14.6 -28.1 13.2 -30.6 12.4 -28.8 13.7 -26.7
2025-06-13 11:16:26,664 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 11:16:26,664 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 11:16:26,664 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.386050
2025-06-13 11:16:26,664 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 11:16:26,664 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 11:16:26,664 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 11:16:26,664 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 11:16:26,664 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 11:16:26,664 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T11:16:03', tmtdew=10.69, humidity=47.57, cloud=0.0, wind=20.54, temperature=10.02, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T09:15:54.720', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 11:16:26,665 [DEBUG][       Thread-252898][   transport.py][1871] : EOF in transport thread
2025-06-13 11:16:26,739 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 11:16:26,748 [DEBUG][       Thread-252901][   transport.py][1871] : starting thread (client mode): 0x84205d80
2025-06-13 11:16:26,748 [DEBUG][       Thread-252901][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 11:16:26,763 [DEBUG][       Thread-252901][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 11:16:26,763 [ INFO][       Thread-252901][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 11:16:26,771 [DEBUG][       Thread-252901][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 11:16:26,771 [DEBUG][       Thread-252901][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 11:16:26,771 [DEBUG][       Thread-252901][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 11:16:26,771 [DEBUG][       Thread-252901][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:16:26,771 [DEBUG][       Thread-252901][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:16:26,771 [DEBUG][       Thread-252901][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:16:26,771 [DEBUG][       Thread-252901][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:16:26,771 [DEBUG][       Thread-252901][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 11:16:26,771 [DEBUG][       Thread-252901][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 11:16:26,771 [DEBUG][       Thread-252901][   transport.py][1871] : client lang: <none>
2025-06-13 11:16:26,771 [DEBUG][       Thread-252901][   transport.py][1871] : server lang: <none>
2025-06-13 11:16:26,771 [DEBUG][       Thread-252901][   transport.py][1871] : kex follows: False
2025-06-13 11:16:26,771 [DEBUG][       Thread-252901][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 11:16:26,771 [DEBUG][       Thread-252901][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 11:16:26,771 [DEBUG][       Thread-252901][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 11:16:26,771 [DEBUG][       Thread-252901][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 11:16:26,771 [DEBUG][       Thread-252901][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 11:16:26,771 [DEBUG][       Thread-252901][   transport.py][1871] : Compression: none
2025-06-13 11:16:26,771 [DEBUG][       Thread-252901][   transport.py][1871] : === End of kex handshake ===
2025-06-13 11:16:26,826 [DEBUG][       Thread-252901][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 11:16:26,826 [DEBUG][       Thread-252901][   transport.py][1871] : Switch to new keys ...
2025-06-13 11:16:26,826 [DEBUG][       Thread-252901][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 11:16:26,826 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 11:16:26,826 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 11:16:26,891 [DEBUG][       Thread-252901][   transport.py][1871] : userauth is OK
2025-06-13 11:16:26,891 [DEBUG][       Thread-252901][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 11:16:26,891 [DEBUG][       Thread-252901][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 11:16:26,891 [DEBUG][       Thread-252901][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 11:16:26,891 [DEBUG][       Thread-252901][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 11:16:26,907 [ INFO][       Thread-252901][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 11:16:26,907 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 11:16:26,907 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 11:16:27,947 [DEBUG][       Thread-252901][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 11:16:27,947 [DEBUG][       Thread-252901][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 11:16:27,998 [DEBUG][       Thread-252901][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 11:16:27,998 [DEBUG][       Thread-252901][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 11:16:28,009 [DEBUG][       Thread-252901][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 11:16:28,018 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 11:16:28,019 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 11:16:28,028 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 11:16:28,038 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 11:16:28,038 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 11:16:28,039 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 11:16:28,047 [DEBUG][       Thread-252901][   transport.py][1871] : EOF in transport thread
2025-06-13 11:16:29,403 [DEBUG][Thread-252903 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:16:33,364 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:16:33,365 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:16:38,049 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 11:16:38,050 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 11:16:38,050 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 11:16:38,053 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 11:16:38,422 [DEBUG][Thread-252904 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:16:38,518 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 11, 16, 35), 10.48, 48.04, 0.0, 18.72, 9.9, 0, 0, 0, 2, 0, 0),)
2025-06-13 11:16:38,518 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 11:16:35
2025-06-13 11:16:38,599 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 11:16:38,605 [DEBUG][       Thread-252905][   transport.py][1871] : starting thread (client mode): 0x84207670
2025-06-13 11:16:38,605 [DEBUG][       Thread-252905][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 11:16:38,626 [DEBUG][       Thread-252905][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 11:16:38,627 [ INFO][       Thread-252905][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 11:16:38,629 [DEBUG][       Thread-252905][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 11:16:38,630 [DEBUG][       Thread-252905][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 11:16:38,630 [DEBUG][       Thread-252905][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 11:16:38,630 [DEBUG][       Thread-252905][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:16:38,630 [DEBUG][       Thread-252905][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:16:38,630 [DEBUG][       Thread-252905][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:16:38,630 [DEBUG][       Thread-252905][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:16:38,630 [DEBUG][       Thread-252905][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 11:16:38,630 [DEBUG][       Thread-252905][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 11:16:38,630 [DEBUG][       Thread-252905][   transport.py][1871] : client lang: <none>
2025-06-13 11:16:38,630 [DEBUG][       Thread-252905][   transport.py][1871] : server lang: <none>
2025-06-13 11:16:38,630 [DEBUG][       Thread-252905][   transport.py][1871] : kex follows: False
2025-06-13 11:16:38,630 [DEBUG][       Thread-252905][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 11:16:38,630 [DEBUG][       Thread-252905][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 11:16:38,630 [DEBUG][       Thread-252905][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 11:16:38,630 [DEBUG][       Thread-252905][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 11:16:38,630 [DEBUG][       Thread-252905][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 11:16:38,630 [DEBUG][       Thread-252905][   transport.py][1871] : Compression: none
2025-06-13 11:16:38,630 [DEBUG][       Thread-252905][   transport.py][1871] : === End of kex handshake ===
2025-06-13 11:16:38,648 [DEBUG][       Thread-252905][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 11:16:38,648 [DEBUG][       Thread-252905][   transport.py][1871] : Switch to new keys ...
2025-06-13 11:16:38,649 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 11:16:38,649 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 11:16:38,649 [DEBUG][       Thread-252905][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 11:16:38,650 [DEBUG][       Thread-252905][   transport.py][1871] : userauth is OK
2025-06-13 11:16:38,675 [ INFO][       Thread-252905][   transport.py][1871] : Authentication (password) successful!
2025-06-13 11:16:38,676 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 11:16:39,220 [DEBUG][       Thread-252905][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 11:16:39,221 [DEBUG][       Thread-252905][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 11:16:39,265 [DEBUG][       Thread-252905][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 11:16:39,265 [DEBUG][       Thread-252905][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 11:16:39,269 [DEBUG][       Thread-252905][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 11:16:39,280 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 11:16:39,281 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 11:16:39,283 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 11:16:39,286 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 11:16:39,293 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 11:16:39,295 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 11:16:39,296 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 11:16:39,297 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 11:16:39,297 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.386050 -999.00   +9.70  25.66     52   +0.50 1 1 1 1 1   887    0 9.89 23.74 ----- 24.4 25.7 53.8 27.0 14.6 -28.1 13.2 -30.6 12.4 -28.8 13.7 -26.7
2025-06-13 11:16:39,297 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 11:16:39,297 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 11:16:39,297 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.386050
2025-06-13 11:16:39,298 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 11:16:39,299 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 11:16:39,299 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 11:16:39,299 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 11:16:39,299 [DEBUG][       Thread-252905][   transport.py][1871] : EOF in transport thread
2025-06-13 11:16:39,299 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 11:16:39,300 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T11:16:35', tmtdew=10.48, humidity=48.04, cloud=0.0, wind=18.72, temperature=9.9, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T09:15:54.720', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 11:16:39,392 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 11:16:39,403 [DEBUG][       Thread-252908][   transport.py][1871] : starting thread (client mode): 0x863c8880
2025-06-13 11:16:39,403 [DEBUG][       Thread-252908][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 11:16:39,419 [DEBUG][       Thread-252908][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 11:16:39,419 [ INFO][       Thread-252908][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 11:16:39,426 [DEBUG][       Thread-252908][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 11:16:39,427 [DEBUG][       Thread-252908][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 11:16:39,427 [DEBUG][       Thread-252908][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 11:16:39,427 [DEBUG][       Thread-252908][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:16:39,427 [DEBUG][       Thread-252908][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:16:39,427 [DEBUG][       Thread-252908][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:16:39,427 [DEBUG][       Thread-252908][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:16:39,427 [DEBUG][       Thread-252908][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 11:16:39,427 [DEBUG][       Thread-252908][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 11:16:39,427 [DEBUG][       Thread-252908][   transport.py][1871] : client lang: <none>
2025-06-13 11:16:39,427 [DEBUG][       Thread-252908][   transport.py][1871] : server lang: <none>
2025-06-13 11:16:39,427 [DEBUG][       Thread-252908][   transport.py][1871] : kex follows: False
2025-06-13 11:16:39,427 [DEBUG][       Thread-252908][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 11:16:39,427 [DEBUG][       Thread-252908][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 11:16:39,427 [DEBUG][       Thread-252908][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 11:16:39,427 [DEBUG][       Thread-252908][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 11:16:39,427 [DEBUG][       Thread-252908][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 11:16:39,427 [DEBUG][       Thread-252908][   transport.py][1871] : Compression: none
2025-06-13 11:16:39,427 [DEBUG][       Thread-252908][   transport.py][1871] : === End of kex handshake ===
2025-06-13 11:16:39,486 [DEBUG][       Thread-252908][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 11:16:39,487 [DEBUG][       Thread-252908][   transport.py][1871] : Switch to new keys ...
2025-06-13 11:16:39,488 [DEBUG][       Thread-252908][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 11:16:39,488 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 11:16:39,489 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 11:16:39,545 [DEBUG][       Thread-252908][   transport.py][1871] : userauth is OK
2025-06-13 11:16:39,546 [DEBUG][       Thread-252908][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 11:16:39,546 [DEBUG][       Thread-252908][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 11:16:39,546 [DEBUG][       Thread-252908][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 11:16:39,546 [DEBUG][       Thread-252908][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 11:16:39,572 [ INFO][       Thread-252908][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 11:16:39,573 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 11:16:39,573 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 11:16:40,713 [DEBUG][       Thread-252908][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 11:16:40,713 [DEBUG][       Thread-252908][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 11:16:40,764 [DEBUG][       Thread-252908][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 11:16:40,764 [DEBUG][       Thread-252908][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 11:16:40,774 [DEBUG][       Thread-252908][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 11:16:40,783 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 11:16:40,784 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 11:16:40,793 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 11:16:40,802 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 11:16:40,803 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 11:16:40,803 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 11:16:40,811 [DEBUG][       Thread-252908][   transport.py][1871] : EOF in transport thread
2025-06-13 11:16:47,445 [DEBUG][Thread-252910 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:16:50,814 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 11:16:50,814 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 11:16:50,814 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 11:16:50,817 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 11:16:51,276 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 11, 16, 35), 10.48, 48.04, 0.0, 18.72, 9.9, 0, 0, 0, 2, 0, 0),)
2025-06-13 11:16:51,276 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 11:16:35
2025-06-13 11:16:51,357 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 11:16:51,363 [DEBUG][       Thread-252911][   transport.py][1871] : starting thread (client mode): 0x84205900
2025-06-13 11:16:51,363 [DEBUG][       Thread-252911][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 11:16:51,384 [DEBUG][       Thread-252911][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 11:16:51,385 [ INFO][       Thread-252911][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 11:16:51,387 [DEBUG][       Thread-252911][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 11:16:51,387 [DEBUG][       Thread-252911][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 11:16:51,387 [DEBUG][       Thread-252911][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 11:16:51,387 [DEBUG][       Thread-252911][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:16:51,388 [DEBUG][       Thread-252911][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:16:51,388 [DEBUG][       Thread-252911][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:16:51,388 [DEBUG][       Thread-252911][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:16:51,388 [DEBUG][       Thread-252911][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 11:16:51,388 [DEBUG][       Thread-252911][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 11:16:51,388 [DEBUG][       Thread-252911][   transport.py][1871] : client lang: <none>
2025-06-13 11:16:51,388 [DEBUG][       Thread-252911][   transport.py][1871] : server lang: <none>
2025-06-13 11:16:51,388 [DEBUG][       Thread-252911][   transport.py][1871] : kex follows: False
2025-06-13 11:16:51,388 [DEBUG][       Thread-252911][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 11:16:51,388 [DEBUG][       Thread-252911][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 11:16:51,388 [DEBUG][       Thread-252911][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 11:16:51,388 [DEBUG][       Thread-252911][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 11:16:51,388 [DEBUG][       Thread-252911][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 11:16:51,388 [DEBUG][       Thread-252911][   transport.py][1871] : Compression: none
2025-06-13 11:16:51,388 [DEBUG][       Thread-252911][   transport.py][1871] : === End of kex handshake ===
2025-06-13 11:16:51,404 [DEBUG][       Thread-252911][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 11:16:51,405 [DEBUG][       Thread-252911][   transport.py][1871] : Switch to new keys ...
2025-06-13 11:16:51,405 [DEBUG][       Thread-252911][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 11:16:51,405 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 11:16:51,406 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 11:16:51,407 [DEBUG][       Thread-252911][   transport.py][1871] : userauth is OK
2025-06-13 11:16:51,431 [ INFO][       Thread-252911][   transport.py][1871] : Authentication (password) successful!
2025-06-13 11:16:51,432 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 11:16:52,021 [DEBUG][       Thread-252911][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 11:16:52,021 [DEBUG][       Thread-252911][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 11:16:52,065 [DEBUG][       Thread-252911][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 11:16:52,065 [DEBUG][       Thread-252911][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 11:16:52,069 [DEBUG][       Thread-252911][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 11:16:52,080 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 11:16:52,081 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 11:16:52,083 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 11:16:52,085 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 11:16:52,091 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 11:16:52,093 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 11:16:52,093 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 11:16:52,093 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 11:16:52,094 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.386050 -999.00   +9.70  25.66     52   +0.50 1 1 1 1 1   887    0 9.89 23.74 ----- 24.4 25.7 53.8 27.0 14.6 -28.1 13.2 -30.6 12.4 -28.8 13.7 -26.7
2025-06-13 11:16:52,094 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 11:16:52,094 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 11:16:52,094 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.386050
2025-06-13 11:16:52,094 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 11:16:52,094 [DEBUG][       Thread-252911][   transport.py][1871] : EOF in transport thread
2025-06-13 11:16:52,095 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 11:16:52,096 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 11:16:52,096 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 11:16:52,096 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 11:16:52,096 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T11:16:35', tmtdew=10.48, humidity=48.04, cloud=0.0, wind=18.72, temperature=9.9, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T09:15:54.720', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 11:16:52,179 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 11:16:52,191 [DEBUG][       Thread-252914][   transport.py][1871] : starting thread (client mode): 0x867b50f0
2025-06-13 11:16:52,191 [DEBUG][       Thread-252914][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 11:16:52,207 [DEBUG][       Thread-252914][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 11:16:52,207 [ INFO][       Thread-252914][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 11:16:52,214 [DEBUG][       Thread-252914][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 11:16:52,215 [DEBUG][       Thread-252914][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 11:16:52,215 [DEBUG][       Thread-252914][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 11:16:52,215 [DEBUG][       Thread-252914][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:16:52,215 [DEBUG][       Thread-252914][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:16:52,215 [DEBUG][       Thread-252914][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:16:52,215 [DEBUG][       Thread-252914][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:16:52,215 [DEBUG][       Thread-252914][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 11:16:52,215 [DEBUG][       Thread-252914][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 11:16:52,215 [DEBUG][       Thread-252914][   transport.py][1871] : client lang: <none>
2025-06-13 11:16:52,215 [DEBUG][       Thread-252914][   transport.py][1871] : server lang: <none>
2025-06-13 11:16:52,215 [DEBUG][       Thread-252914][   transport.py][1871] : kex follows: False
2025-06-13 11:16:52,215 [DEBUG][       Thread-252914][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 11:16:52,215 [DEBUG][       Thread-252914][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 11:16:52,215 [DEBUG][       Thread-252914][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 11:16:52,215 [DEBUG][       Thread-252914][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 11:16:52,215 [DEBUG][       Thread-252914][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 11:16:52,215 [DEBUG][       Thread-252914][   transport.py][1871] : Compression: none
2025-06-13 11:16:52,215 [DEBUG][       Thread-252914][   transport.py][1871] : === End of kex handshake ===
2025-06-13 11:16:52,271 [DEBUG][       Thread-252914][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 11:16:52,272 [DEBUG][       Thread-252914][   transport.py][1871] : Switch to new keys ...
2025-06-13 11:16:52,282 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 11:16:52,282 [DEBUG][       Thread-252914][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 11:16:52,283 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 11:16:52,332 [DEBUG][       Thread-252914][   transport.py][1871] : userauth is OK
2025-06-13 11:16:52,332 [DEBUG][       Thread-252914][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 11:16:52,333 [DEBUG][       Thread-252914][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 11:16:52,333 [DEBUG][       Thread-252914][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 11:16:52,333 [DEBUG][       Thread-252914][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 11:16:52,351 [ INFO][       Thread-252914][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 11:16:52,351 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 11:16:52,352 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 11:16:53,388 [DEBUG][       Thread-252914][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 11:16:53,388 [DEBUG][       Thread-252914][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 11:16:53,437 [DEBUG][       Thread-252914][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 11:16:53,438 [DEBUG][       Thread-252914][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 11:16:53,449 [DEBUG][       Thread-252914][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 11:16:53,459 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 11:16:53,459 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 11:16:53,471 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 11:16:53,480 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 11:16:53,480 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 11:16:53,481 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 11:16:53,489 [DEBUG][       Thread-252914][   transport.py][1871] : EOF in transport thread
2025-06-13 11:16:56,480 [DEBUG][Thread-252916 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:17:03,488 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 11:17:03,488 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 11:17:03,488 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 11:17:03,488 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 11:17:03,975 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 11, 16, 35), 10.48, 48.04, 0.0, 18.72, 9.9, 0, 0, 0, 2, 0, 0),)
2025-06-13 11:17:03,975 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 11:16:35
2025-06-13 11:17:04,058 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 11:17:04,062 [DEBUG][       Thread-252917][   transport.py][1871] : starting thread (client mode): 0x84204e20
2025-06-13 11:17:04,062 [DEBUG][       Thread-252917][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 11:17:04,084 [DEBUG][       Thread-252917][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 11:17:04,084 [ INFO][       Thread-252917][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 11:17:04,087 [DEBUG][       Thread-252917][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 11:17:04,087 [DEBUG][       Thread-252917][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 11:17:04,087 [DEBUG][       Thread-252917][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 11:17:04,087 [DEBUG][       Thread-252917][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:17:04,087 [DEBUG][       Thread-252917][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:17:04,087 [DEBUG][       Thread-252917][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:17:04,087 [DEBUG][       Thread-252917][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:17:04,087 [DEBUG][       Thread-252917][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 11:17:04,087 [DEBUG][       Thread-252917][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 11:17:04,087 [DEBUG][       Thread-252917][   transport.py][1871] : client lang: <none>
2025-06-13 11:17:04,087 [DEBUG][       Thread-252917][   transport.py][1871] : server lang: <none>
2025-06-13 11:17:04,087 [DEBUG][       Thread-252917][   transport.py][1871] : kex follows: False
2025-06-13 11:17:04,087 [DEBUG][       Thread-252917][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 11:17:04,087 [DEBUG][       Thread-252917][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 11:17:04,087 [DEBUG][       Thread-252917][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 11:17:04,087 [DEBUG][       Thread-252917][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 11:17:04,087 [DEBUG][       Thread-252917][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 11:17:04,087 [DEBUG][       Thread-252917][   transport.py][1871] : Compression: none
2025-06-13 11:17:04,087 [DEBUG][       Thread-252917][   transport.py][1871] : === End of kex handshake ===
2025-06-13 11:17:04,102 [DEBUG][       Thread-252917][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 11:17:04,102 [DEBUG][       Thread-252917][   transport.py][1871] : Switch to new keys ...
2025-06-13 11:17:04,102 [DEBUG][       Thread-252917][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 11:17:04,102 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 11:17:04,102 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 11:17:04,103 [DEBUG][       Thread-252917][   transport.py][1871] : userauth is OK
2025-06-13 11:17:04,115 [ INFO][       Thread-252917][   transport.py][1871] : Authentication (password) successful!
2025-06-13 11:17:04,115 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 11:17:04,752 [DEBUG][       Thread-252917][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 11:17:04,752 [DEBUG][       Thread-252917][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 11:17:04,797 [DEBUG][       Thread-252917][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 11:17:04,797 [DEBUG][       Thread-252917][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 11:17:04,799 [DEBUG][       Thread-252917][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 11:17:04,813 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 11:17:04,813 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 11:17:04,814 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 11:17:04,815 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 11:17:04,818 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 11:17:04,819 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 11:17:04,819 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 11:17:04,819 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 11:17:04,819 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.386397 -999.00   +9.70  20.37     52   +0.60 1 1 1 1 1   887    0 9.64 24.44 ----- 21.4 20.4 43.2 29.3 14.5 -29.1 13.1 -30.1 12.3 -28.4 13.7 -26.3
2025-06-13 11:17:04,819 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 11:17:04,819 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 11:17:04,819 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.386397
2025-06-13 11:17:04,819 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 11:17:04,819 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 11:17:04,819 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 11:17:04,819 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 11:17:04,819 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 11:17:04,819 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T11:16:35', tmtdew=10.48, humidity=48.04, cloud=0.0, wind=18.72, temperature=9.9, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T09:16:24.701', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 11:17:04,820 [DEBUG][       Thread-252917][   transport.py][1871] : EOF in transport thread
2025-06-13 11:17:04,893 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 11:17:04,904 [DEBUG][       Thread-252920][   transport.py][1871] : starting thread (client mode): 0x867fd960
2025-06-13 11:17:04,904 [DEBUG][       Thread-252920][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 11:17:04,924 [DEBUG][       Thread-252920][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 11:17:04,924 [ INFO][       Thread-252920][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 11:17:04,931 [DEBUG][       Thread-252920][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 11:17:04,931 [DEBUG][       Thread-252920][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 11:17:04,931 [DEBUG][       Thread-252920][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 11:17:04,931 [DEBUG][       Thread-252920][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:17:04,931 [DEBUG][       Thread-252920][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:17:04,931 [DEBUG][       Thread-252920][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:17:04,931 [DEBUG][       Thread-252920][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:17:04,931 [DEBUG][       Thread-252920][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 11:17:04,931 [DEBUG][       Thread-252920][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 11:17:04,931 [DEBUG][       Thread-252920][   transport.py][1871] : client lang: <none>
2025-06-13 11:17:04,931 [DEBUG][       Thread-252920][   transport.py][1871] : server lang: <none>
2025-06-13 11:17:04,931 [DEBUG][       Thread-252920][   transport.py][1871] : kex follows: False
2025-06-13 11:17:04,931 [DEBUG][       Thread-252920][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 11:17:04,931 [DEBUG][       Thread-252920][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 11:17:04,931 [DEBUG][       Thread-252920][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 11:17:04,931 [DEBUG][       Thread-252920][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 11:17:04,931 [DEBUG][       Thread-252920][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 11:17:04,931 [DEBUG][       Thread-252920][   transport.py][1871] : Compression: none
2025-06-13 11:17:04,931 [DEBUG][       Thread-252920][   transport.py][1871] : === End of kex handshake ===
2025-06-13 11:17:04,987 [DEBUG][       Thread-252920][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 11:17:04,987 [DEBUG][       Thread-252920][   transport.py][1871] : Switch to new keys ...
2025-06-13 11:17:04,987 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 11:17:04,987 [DEBUG][       Thread-252920][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 11:17:04,987 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 11:17:05,044 [DEBUG][       Thread-252920][   transport.py][1871] : userauth is OK
2025-06-13 11:17:05,044 [DEBUG][       Thread-252920][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 11:17:05,044 [DEBUG][       Thread-252920][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 11:17:05,044 [DEBUG][       Thread-252920][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 11:17:05,044 [DEBUG][       Thread-252920][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 11:17:05,063 [ INFO][       Thread-252920][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 11:17:05,063 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 11:17:05,063 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 11:17:05,497 [DEBUG][Thread-252922 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:17:06,164 [DEBUG][       Thread-252920][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 11:17:06,164 [DEBUG][       Thread-252920][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 11:17:06,212 [DEBUG][       Thread-252920][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 11:17:06,212 [DEBUG][       Thread-252920][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 11:17:06,222 [DEBUG][       Thread-252920][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 11:17:06,231 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 11:17:06,231 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 11:17:06,241 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 11:17:06,251 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 11:17:06,251 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 11:17:06,252 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 11:17:06,260 [DEBUG][       Thread-252920][   transport.py][1871] : EOF in transport thread
2025-06-13 11:17:08,128 [DEBUG][Thread-252923 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:17:08,657 [DEBUG][Thread-252924 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:17:09,189 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:17:09,191 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:17:14,517 [DEBUG][Thread-252925 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:17:16,262 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 11:17:16,263 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 11:17:16,263 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 11:17:16,265 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 11:17:16,740 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 11, 17, 7), 10.53, 47.87, 0.0, 18.78, 9.96, 0, 0, 0, 2, 0, 0),)
2025-06-13 11:17:16,740 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 11:17:07
2025-06-13 11:17:16,821 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 11:17:16,827 [DEBUG][       Thread-252926][   transport.py][1871] : starting thread (client mode): 0x842076a0
2025-06-13 11:17:16,827 [DEBUG][       Thread-252926][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 11:17:16,849 [DEBUG][       Thread-252926][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 11:17:16,849 [ INFO][       Thread-252926][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 11:17:16,852 [DEBUG][       Thread-252926][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 11:17:16,852 [DEBUG][       Thread-252926][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 11:17:16,852 [DEBUG][       Thread-252926][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 11:17:16,852 [DEBUG][       Thread-252926][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:17:16,852 [DEBUG][       Thread-252926][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:17:16,852 [DEBUG][       Thread-252926][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:17:16,853 [DEBUG][       Thread-252926][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:17:16,853 [DEBUG][       Thread-252926][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 11:17:16,853 [DEBUG][       Thread-252926][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 11:17:16,853 [DEBUG][       Thread-252926][   transport.py][1871] : client lang: <none>
2025-06-13 11:17:16,853 [DEBUG][       Thread-252926][   transport.py][1871] : server lang: <none>
2025-06-13 11:17:16,853 [DEBUG][       Thread-252926][   transport.py][1871] : kex follows: False
2025-06-13 11:17:16,853 [DEBUG][       Thread-252926][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 11:17:16,853 [DEBUG][       Thread-252926][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 11:17:16,853 [DEBUG][       Thread-252926][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 11:17:16,853 [DEBUG][       Thread-252926][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 11:17:16,853 [DEBUG][       Thread-252926][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 11:17:16,853 [DEBUG][       Thread-252926][   transport.py][1871] : Compression: none
2025-06-13 11:17:16,853 [DEBUG][       Thread-252926][   transport.py][1871] : === End of kex handshake ===
2025-06-13 11:17:16,870 [DEBUG][       Thread-252926][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 11:17:16,870 [DEBUG][       Thread-252926][   transport.py][1871] : Switch to new keys ...
2025-06-13 11:17:16,871 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 11:17:16,871 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 11:17:16,871 [DEBUG][       Thread-252926][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 11:17:16,872 [DEBUG][       Thread-252926][   transport.py][1871] : userauth is OK
2025-06-13 11:17:16,897 [ INFO][       Thread-252926][   transport.py][1871] : Authentication (password) successful!
2025-06-13 11:17:16,898 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 11:17:17,507 [DEBUG][       Thread-252926][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 11:17:17,507 [DEBUG][       Thread-252926][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 11:17:17,549 [DEBUG][       Thread-252926][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 11:17:17,549 [DEBUG][       Thread-252926][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 11:17:17,553 [DEBUG][       Thread-252926][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 11:17:17,565 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 11:17:17,566 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 11:17:17,567 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 11:17:17,569 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 11:17:17,575 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 11:17:17,577 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 11:17:17,577 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 11:17:17,578 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 11:17:17,578 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.386397 -999.00   +9.70  20.37     52   +0.60 1 1 1 1 1   887    0 9.64 24.44 ----- 21.4 20.4 43.2 29.3 14.5 -29.1 13.1 -30.1 12.3 -28.4 13.7 -26.3
2025-06-13 11:17:17,578 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 11:17:17,578 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 11:17:17,578 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.386397
2025-06-13 11:17:17,578 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 11:17:17,579 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 11:17:17,579 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 11:17:17,579 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 11:17:17,579 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 11:17:17,579 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T11:17:07', tmtdew=10.53, humidity=47.87, cloud=0.0, wind=18.78, temperature=9.96, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T09:16:24.701', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 11:17:17,581 [DEBUG][       Thread-252926][   transport.py][1871] : EOF in transport thread
2025-06-13 11:17:17,665 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 11:17:17,676 [DEBUG][       Thread-252929][   transport.py][1871] : starting thread (client mode): 0x863bce50
2025-06-13 11:17:17,676 [DEBUG][       Thread-252929][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 11:17:17,691 [DEBUG][       Thread-252929][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 11:17:17,691 [ INFO][       Thread-252929][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 11:17:17,699 [DEBUG][       Thread-252929][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 11:17:17,699 [DEBUG][       Thread-252929][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 11:17:17,699 [DEBUG][       Thread-252929][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 11:17:17,699 [DEBUG][       Thread-252929][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:17:17,699 [DEBUG][       Thread-252929][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:17:17,699 [DEBUG][       Thread-252929][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:17:17,699 [DEBUG][       Thread-252929][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:17:17,699 [DEBUG][       Thread-252929][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 11:17:17,699 [DEBUG][       Thread-252929][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 11:17:17,699 [DEBUG][       Thread-252929][   transport.py][1871] : client lang: <none>
2025-06-13 11:17:17,699 [DEBUG][       Thread-252929][   transport.py][1871] : server lang: <none>
2025-06-13 11:17:17,699 [DEBUG][       Thread-252929][   transport.py][1871] : kex follows: False
2025-06-13 11:17:17,700 [DEBUG][       Thread-252929][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 11:17:17,700 [DEBUG][       Thread-252929][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 11:17:17,700 [DEBUG][       Thread-252929][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 11:17:17,700 [DEBUG][       Thread-252929][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 11:17:17,700 [DEBUG][       Thread-252929][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 11:17:17,700 [DEBUG][       Thread-252929][   transport.py][1871] : Compression: none
2025-06-13 11:17:17,700 [DEBUG][       Thread-252929][   transport.py][1871] : === End of kex handshake ===
2025-06-13 11:17:17,768 [DEBUG][       Thread-252929][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 11:17:17,768 [DEBUG][       Thread-252929][   transport.py][1871] : Switch to new keys ...
2025-06-13 11:17:17,769 [DEBUG][       Thread-252929][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 11:17:17,769 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 11:17:17,770 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 11:17:17,831 [DEBUG][       Thread-252929][   transport.py][1871] : userauth is OK
2025-06-13 11:17:17,831 [DEBUG][       Thread-252929][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 11:17:17,831 [DEBUG][       Thread-252929][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 11:17:17,831 [DEBUG][       Thread-252929][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 11:17:17,832 [DEBUG][       Thread-252929][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 11:17:17,853 [ INFO][       Thread-252929][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 11:17:17,853 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 11:17:17,854 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 11:17:18,867 [DEBUG][       Thread-252929][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 11:17:18,867 [DEBUG][       Thread-252929][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 11:17:18,919 [DEBUG][       Thread-252929][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 11:17:18,919 [DEBUG][       Thread-252929][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 11:17:18,930 [DEBUG][       Thread-252929][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 11:17:18,942 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 11:17:18,942 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 11:17:18,954 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 11:17:18,965 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 11:17:18,966 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 11:17:18,966 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 11:17:18,977 [DEBUG][       Thread-252929][   transport.py][1871] : EOF in transport thread
2025-06-13 11:17:23,539 [DEBUG][Thread-252931 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:17:28,977 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 11:17:28,977 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 11:17:28,986 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 11:17:28,989 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 11:17:29,464 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 11, 17, 7), 10.53, 47.87, 0.0, 18.78, 9.96, 0, 0, 0, 2, 0, 0),)
2025-06-13 11:17:29,465 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 11:17:07
2025-06-13 11:17:29,547 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 11:17:29,551 [DEBUG][       Thread-252932][   transport.py][1871] : starting thread (client mode): 0x863beec0
2025-06-13 11:17:29,551 [DEBUG][       Thread-252932][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 11:17:29,571 [DEBUG][       Thread-252932][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 11:17:29,571 [ INFO][       Thread-252932][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 11:17:29,573 [DEBUG][       Thread-252932][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 11:17:29,573 [DEBUG][       Thread-252932][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 11:17:29,573 [DEBUG][       Thread-252932][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 11:17:29,573 [DEBUG][       Thread-252932][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:17:29,573 [DEBUG][       Thread-252932][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:17:29,573 [DEBUG][       Thread-252932][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:17:29,573 [DEBUG][       Thread-252932][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:17:29,573 [DEBUG][       Thread-252932][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 11:17:29,573 [DEBUG][       Thread-252932][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 11:17:29,573 [DEBUG][       Thread-252932][   transport.py][1871] : client lang: <none>
2025-06-13 11:17:29,573 [DEBUG][       Thread-252932][   transport.py][1871] : server lang: <none>
2025-06-13 11:17:29,573 [DEBUG][       Thread-252932][   transport.py][1871] : kex follows: False
2025-06-13 11:17:29,574 [DEBUG][       Thread-252932][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 11:17:29,574 [DEBUG][       Thread-252932][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 11:17:29,574 [DEBUG][       Thread-252932][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 11:17:29,574 [DEBUG][       Thread-252932][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 11:17:29,574 [DEBUG][       Thread-252932][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 11:17:29,574 [DEBUG][       Thread-252932][   transport.py][1871] : Compression: none
2025-06-13 11:17:29,574 [DEBUG][       Thread-252932][   transport.py][1871] : === End of kex handshake ===
2025-06-13 11:17:29,588 [DEBUG][       Thread-252932][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 11:17:29,588 [DEBUG][       Thread-252932][   transport.py][1871] : Switch to new keys ...
2025-06-13 11:17:29,589 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 11:17:29,589 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 11:17:29,589 [DEBUG][       Thread-252932][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 11:17:29,590 [DEBUG][       Thread-252932][   transport.py][1871] : userauth is OK
2025-06-13 11:17:29,603 [ INFO][       Thread-252932][   transport.py][1871] : Authentication (password) successful!
2025-06-13 11:17:29,604 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 11:17:30,219 [DEBUG][       Thread-252932][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 11:17:30,220 [DEBUG][       Thread-252932][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 11:17:30,261 [DEBUG][       Thread-252932][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 11:17:30,261 [DEBUG][       Thread-252932][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 11:17:30,265 [DEBUG][       Thread-252932][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 11:17:30,276 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 11:17:30,277 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 11:17:30,279 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 11:17:30,281 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 11:17:30,288 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 11:17:30,290 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 11:17:30,290 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 11:17:30,291 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 11:17:30,291 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.386745 -999.00   +9.80  20.00     52   +0.40 1 1 1 1 1   887    0 9.84 28.11 ----- 21.5 20.0 46.2 24.9 14.5 -28.3 13.1 -29.8 12.3 -28.1 13.7 -26.3
2025-06-13 11:17:30,291 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 11:17:30,291 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 11:17:30,291 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.386745
2025-06-13 11:17:30,291 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 11:17:30,292 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 11:17:30,292 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 11:17:30,292 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 11:17:30,292 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 11:17:30,292 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T11:17:07', tmtdew=10.53, humidity=47.87, cloud=0.0, wind=18.78, temperature=9.96, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T09:16:54.768', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 11:17:30,293 [DEBUG][       Thread-252932][   transport.py][1871] : EOF in transport thread
2025-06-13 11:17:30,376 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 11:17:30,386 [DEBUG][       Thread-252935][   transport.py][1871] : starting thread (client mode): 0x86368280
2025-06-13 11:17:30,386 [DEBUG][       Thread-252935][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 11:17:30,404 [DEBUG][       Thread-252935][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 11:17:30,405 [ INFO][       Thread-252935][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 11:17:30,414 [DEBUG][       Thread-252935][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 11:17:30,414 [DEBUG][       Thread-252935][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 11:17:30,415 [DEBUG][       Thread-252935][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 11:17:30,415 [DEBUG][       Thread-252935][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:17:30,415 [DEBUG][       Thread-252935][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:17:30,415 [DEBUG][       Thread-252935][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:17:30,415 [DEBUG][       Thread-252935][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:17:30,415 [DEBUG][       Thread-252935][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 11:17:30,415 [DEBUG][       Thread-252935][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 11:17:30,415 [DEBUG][       Thread-252935][   transport.py][1871] : client lang: <none>
2025-06-13 11:17:30,415 [DEBUG][       Thread-252935][   transport.py][1871] : server lang: <none>
2025-06-13 11:17:30,415 [DEBUG][       Thread-252935][   transport.py][1871] : kex follows: False
2025-06-13 11:17:30,415 [DEBUG][       Thread-252935][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 11:17:30,415 [DEBUG][       Thread-252935][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 11:17:30,415 [DEBUG][       Thread-252935][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 11:17:30,415 [DEBUG][       Thread-252935][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 11:17:30,415 [DEBUG][       Thread-252935][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 11:17:30,415 [DEBUG][       Thread-252935][   transport.py][1871] : Compression: none
2025-06-13 11:17:30,415 [DEBUG][       Thread-252935][   transport.py][1871] : === End of kex handshake ===
2025-06-13 11:17:30,478 [DEBUG][       Thread-252935][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 11:17:30,478 [DEBUG][       Thread-252935][   transport.py][1871] : Switch to new keys ...
2025-06-13 11:17:30,479 [DEBUG][       Thread-252935][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 11:17:30,479 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 11:17:30,480 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 11:17:30,537 [DEBUG][       Thread-252935][   transport.py][1871] : userauth is OK
2025-06-13 11:17:30,538 [DEBUG][       Thread-252935][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 11:17:30,538 [DEBUG][       Thread-252935][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 11:17:30,538 [DEBUG][       Thread-252935][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 11:17:30,538 [DEBUG][       Thread-252935][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 11:17:30,559 [ INFO][       Thread-252935][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 11:17:30,560 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 11:17:30,560 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 11:17:31,583 [DEBUG][       Thread-252935][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 11:17:31,584 [DEBUG][       Thread-252935][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 11:17:31,635 [DEBUG][       Thread-252935][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 11:17:31,635 [DEBUG][       Thread-252935][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 11:17:31,646 [DEBUG][       Thread-252935][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 11:17:31,664 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 11:17:31,664 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 11:17:31,675 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 11:17:31,690 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 11:17:31,690 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 11:17:31,691 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 11:17:31,701 [DEBUG][       Thread-252935][   transport.py][1871] : EOF in transport thread
2025-06-13 11:17:32,577 [DEBUG][Thread-252937 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:17:33,508 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:17:33,509 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:17:41,598 [DEBUG][Thread-252938 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:17:41,701 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 11:17:41,701 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 11:17:41,701 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 11:17:41,702 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 11:17:42,209 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 11, 17, 38), 10.64, 47.5, 0.0, 17.2, 9.92, 0, 0, 0, 2, 0, 0),)
2025-06-13 11:17:42,209 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 11:17:38
2025-06-13 11:17:42,292 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 11:17:42,299 [DEBUG][       Thread-252939][   transport.py][1871] : starting thread (client mode): 0x84205270
2025-06-13 11:17:42,299 [DEBUG][       Thread-252939][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 11:17:42,322 [DEBUG][       Thread-252939][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 11:17:42,322 [ INFO][       Thread-252939][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 11:17:42,325 [DEBUG][       Thread-252939][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 11:17:42,325 [DEBUG][       Thread-252939][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 11:17:42,325 [DEBUG][       Thread-252939][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 11:17:42,325 [DEBUG][       Thread-252939][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:17:42,325 [DEBUG][       Thread-252939][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:17:42,325 [DEBUG][       Thread-252939][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:17:42,325 [DEBUG][       Thread-252939][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:17:42,325 [DEBUG][       Thread-252939][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 11:17:42,325 [DEBUG][       Thread-252939][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 11:17:42,325 [DEBUG][       Thread-252939][   transport.py][1871] : client lang: <none>
2025-06-13 11:17:42,325 [DEBUG][       Thread-252939][   transport.py][1871] : server lang: <none>
2025-06-13 11:17:42,325 [DEBUG][       Thread-252939][   transport.py][1871] : kex follows: False
2025-06-13 11:17:42,325 [DEBUG][       Thread-252939][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 11:17:42,325 [DEBUG][       Thread-252939][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 11:17:42,325 [DEBUG][       Thread-252939][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 11:17:42,325 [DEBUG][       Thread-252939][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 11:17:42,325 [DEBUG][       Thread-252939][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 11:17:42,325 [DEBUG][       Thread-252939][   transport.py][1871] : Compression: none
2025-06-13 11:17:42,325 [DEBUG][       Thread-252939][   transport.py][1871] : === End of kex handshake ===
2025-06-13 11:17:42,340 [DEBUG][       Thread-252939][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 11:17:42,340 [DEBUG][       Thread-252939][   transport.py][1871] : Switch to new keys ...
2025-06-13 11:17:42,341 [DEBUG][       Thread-252939][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 11:17:42,341 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 11:17:42,341 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 11:17:42,341 [DEBUG][       Thread-252939][   transport.py][1871] : userauth is OK
2025-06-13 11:17:42,365 [ INFO][       Thread-252939][   transport.py][1871] : Authentication (password) successful!
2025-06-13 11:17:42,365 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 11:17:43,003 [DEBUG][       Thread-252939][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 11:17:43,003 [DEBUG][       Thread-252939][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 11:17:43,045 [DEBUG][       Thread-252939][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 11:17:43,045 [DEBUG][       Thread-252939][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 11:17:43,047 [DEBUG][       Thread-252939][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 11:17:43,061 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 11:17:43,061 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 11:17:43,062 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 11:17:43,064 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 11:17:43,066 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 11:17:43,067 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 11:17:43,067 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 11:17:43,067 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 11:17:43,067 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.386745 -999.00   +9.80  20.00     52   +0.40 1 1 1 1 1   887    0 9.84 28.11 ----- 21.5 20.0 46.2 24.9 14.5 -28.3 13.1 -29.8 12.3 -28.1 13.7 -26.3
2025-06-13 11:17:43,067 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 11:17:43,067 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 11:17:43,067 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.386745
2025-06-13 11:17:43,068 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 11:17:43,068 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 11:17:43,068 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 11:17:43,068 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 11:17:43,068 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 11:17:43,068 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T11:17:38', tmtdew=10.64, humidity=47.5, cloud=0.0, wind=17.2, temperature=9.92, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T09:16:54.768', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 11:17:43,068 [DEBUG][       Thread-252939][   transport.py][1871] : EOF in transport thread
2025-06-13 11:17:43,140 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 11:17:43,152 [DEBUG][       Thread-252942][   transport.py][1871] : starting thread (client mode): 0x867ffc10
2025-06-13 11:17:43,152 [DEBUG][       Thread-252942][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 11:17:43,167 [DEBUG][       Thread-252942][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 11:17:43,167 [ INFO][       Thread-252942][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 11:17:43,174 [DEBUG][       Thread-252942][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 11:17:43,174 [DEBUG][       Thread-252942][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 11:17:43,174 [DEBUG][       Thread-252942][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 11:17:43,174 [DEBUG][       Thread-252942][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:17:43,174 [DEBUG][       Thread-252942][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:17:43,174 [DEBUG][       Thread-252942][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:17:43,175 [DEBUG][       Thread-252942][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:17:43,175 [DEBUG][       Thread-252942][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 11:17:43,175 [DEBUG][       Thread-252942][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 11:17:43,175 [DEBUG][       Thread-252942][   transport.py][1871] : client lang: <none>
2025-06-13 11:17:43,175 [DEBUG][       Thread-252942][   transport.py][1871] : server lang: <none>
2025-06-13 11:17:43,175 [DEBUG][       Thread-252942][   transport.py][1871] : kex follows: False
2025-06-13 11:17:43,175 [DEBUG][       Thread-252942][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 11:17:43,175 [DEBUG][       Thread-252942][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 11:17:43,175 [DEBUG][       Thread-252942][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 11:17:43,175 [DEBUG][       Thread-252942][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 11:17:43,175 [DEBUG][       Thread-252942][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 11:17:43,175 [DEBUG][       Thread-252942][   transport.py][1871] : Compression: none
2025-06-13 11:17:43,175 [DEBUG][       Thread-252942][   transport.py][1871] : === End of kex handshake ===
2025-06-13 11:17:43,230 [DEBUG][       Thread-252942][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 11:17:43,230 [DEBUG][       Thread-252942][   transport.py][1871] : Switch to new keys ...
2025-06-13 11:17:43,230 [DEBUG][       Thread-252942][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 11:17:43,230 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 11:17:43,231 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 11:17:43,287 [DEBUG][       Thread-252942][   transport.py][1871] : userauth is OK
2025-06-13 11:17:43,287 [DEBUG][       Thread-252942][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 11:17:43,287 [DEBUG][       Thread-252942][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 11:17:43,287 [DEBUG][       Thread-252942][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 11:17:43,287 [DEBUG][       Thread-252942][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 11:17:43,301 [ INFO][       Thread-252942][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 11:17:43,301 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 11:17:43,301 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 11:17:44,332 [DEBUG][       Thread-252942][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 11:17:44,332 [DEBUG][       Thread-252942][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 11:17:44,380 [DEBUG][       Thread-252942][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 11:17:44,380 [DEBUG][       Thread-252942][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 11:17:44,389 [DEBUG][       Thread-252942][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 11:17:44,403 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 11:17:44,403 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 11:17:44,415 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 11:17:44,426 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 11:17:44,427 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 11:17:44,427 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 11:17:44,436 [DEBUG][       Thread-252942][   transport.py][1871] : EOF in transport thread
2025-06-13 11:17:50,618 [DEBUG][Thread-252944 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:17:54,438 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 11:17:54,438 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 11:17:54,438 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 11:17:54,442 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 11:17:54,918 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 11, 17, 38), 10.64, 47.5, 0.0, 17.2, 9.92, 0, 0, 0, 2, 0, 0),)
2025-06-13 11:17:54,918 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 11:17:38
2025-06-13 11:17:54,998 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 11:17:55,003 [DEBUG][       Thread-252945][   transport.py][1871] : starting thread (client mode): 0x8636a2c0
2025-06-13 11:17:55,003 [DEBUG][       Thread-252945][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 11:17:55,024 [DEBUG][       Thread-252945][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 11:17:55,024 [ INFO][       Thread-252945][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 11:17:55,028 [DEBUG][       Thread-252945][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 11:17:55,028 [DEBUG][       Thread-252945][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 11:17:55,028 [DEBUG][       Thread-252945][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 11:17:55,028 [DEBUG][       Thread-252945][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:17:55,028 [DEBUG][       Thread-252945][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:17:55,028 [DEBUG][       Thread-252945][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:17:55,028 [DEBUG][       Thread-252945][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:17:55,028 [DEBUG][       Thread-252945][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 11:17:55,028 [DEBUG][       Thread-252945][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 11:17:55,028 [DEBUG][       Thread-252945][   transport.py][1871] : client lang: <none>
2025-06-13 11:17:55,028 [DEBUG][       Thread-252945][   transport.py][1871] : server lang: <none>
2025-06-13 11:17:55,028 [DEBUG][       Thread-252945][   transport.py][1871] : kex follows: False
2025-06-13 11:17:55,028 [DEBUG][       Thread-252945][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 11:17:55,028 [DEBUG][       Thread-252945][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 11:17:55,028 [DEBUG][       Thread-252945][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 11:17:55,028 [DEBUG][       Thread-252945][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 11:17:55,028 [DEBUG][       Thread-252945][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 11:17:55,028 [DEBUG][       Thread-252945][   transport.py][1871] : Compression: none
2025-06-13 11:17:55,028 [DEBUG][       Thread-252945][   transport.py][1871] : === End of kex handshake ===
2025-06-13 11:17:55,045 [DEBUG][       Thread-252945][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 11:17:55,046 [DEBUG][       Thread-252945][   transport.py][1871] : Switch to new keys ...
2025-06-13 11:17:55,046 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 11:17:55,046 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 11:17:55,047 [DEBUG][       Thread-252945][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 11:17:55,047 [DEBUG][       Thread-252945][   transport.py][1871] : userauth is OK
2025-06-13 11:17:55,060 [ INFO][       Thread-252945][   transport.py][1871] : Authentication (password) successful!
2025-06-13 11:17:55,061 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 11:17:55,690 [DEBUG][       Thread-252945][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 11:17:55,691 [DEBUG][       Thread-252945][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 11:17:55,733 [DEBUG][       Thread-252945][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 11:17:55,733 [DEBUG][       Thread-252945][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 11:17:55,737 [DEBUG][       Thread-252945][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 11:17:55,748 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 11:17:55,748 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 11:17:55,750 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 11:17:55,753 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 11:17:55,759 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 11:17:55,761 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 11:17:55,761 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 11:17:55,762 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 11:17:55,762 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.386745 -999.00   +9.80  20.00     52   +0.40 1 1 1 1 1   887    0 9.84 28.11 ----- 21.5 20.0 46.2 24.9 14.5 -28.3 13.1 -29.8 12.3 -28.1 13.7 -26.3
2025-06-13 11:17:55,762 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 11:17:55,762 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 11:17:55,762 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.386745
2025-06-13 11:17:55,763 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 11:17:55,763 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 11:17:55,763 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 11:17:55,763 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 11:17:55,764 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 11:17:55,764 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T11:17:38', tmtdew=10.64, humidity=47.5, cloud=0.0, wind=17.2, temperature=9.92, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T09:16:54.768', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 11:17:55,765 [DEBUG][       Thread-252945][   transport.py][1871] : EOF in transport thread
2025-06-13 11:17:55,847 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 11:17:55,861 [DEBUG][       Thread-252948][   transport.py][1871] : starting thread (client mode): 0x863a6bf0
2025-06-13 11:17:55,861 [DEBUG][       Thread-252948][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 11:17:55,876 [DEBUG][       Thread-252948][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 11:17:55,876 [ INFO][       Thread-252948][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 11:17:55,884 [DEBUG][       Thread-252948][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 11:17:55,884 [DEBUG][       Thread-252948][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 11:17:55,884 [DEBUG][       Thread-252948][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 11:17:55,884 [DEBUG][       Thread-252948][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:17:55,884 [DEBUG][       Thread-252948][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:17:55,884 [DEBUG][       Thread-252948][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:17:55,884 [DEBUG][       Thread-252948][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:17:55,884 [DEBUG][       Thread-252948][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 11:17:55,884 [DEBUG][       Thread-252948][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 11:17:55,884 [DEBUG][       Thread-252948][   transport.py][1871] : client lang: <none>
2025-06-13 11:17:55,884 [DEBUG][       Thread-252948][   transport.py][1871] : server lang: <none>
2025-06-13 11:17:55,884 [DEBUG][       Thread-252948][   transport.py][1871] : kex follows: False
2025-06-13 11:17:55,885 [DEBUG][       Thread-252948][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 11:17:55,885 [DEBUG][       Thread-252948][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 11:17:55,885 [DEBUG][       Thread-252948][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 11:17:55,885 [DEBUG][       Thread-252948][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 11:17:55,885 [DEBUG][       Thread-252948][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 11:17:55,885 [DEBUG][       Thread-252948][   transport.py][1871] : Compression: none
2025-06-13 11:17:55,885 [DEBUG][       Thread-252948][   transport.py][1871] : === End of kex handshake ===
2025-06-13 11:17:55,943 [DEBUG][       Thread-252948][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 11:17:55,944 [DEBUG][       Thread-252948][   transport.py][1871] : Switch to new keys ...
2025-06-13 11:17:55,945 [DEBUG][       Thread-252948][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 11:17:55,945 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 11:17:55,946 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 11:17:56,000 [DEBUG][       Thread-252948][   transport.py][1871] : userauth is OK
2025-06-13 11:17:56,000 [DEBUG][       Thread-252948][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 11:17:56,000 [DEBUG][       Thread-252948][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 11:17:56,000 [DEBUG][       Thread-252948][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 11:17:56,000 [DEBUG][       Thread-252948][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 11:17:56,014 [ INFO][       Thread-252948][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 11:17:56,014 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 11:17:56,014 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 11:17:57,020 [DEBUG][       Thread-252948][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 11:17:57,020 [DEBUG][       Thread-252948][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 11:17:57,069 [DEBUG][       Thread-252948][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 11:17:57,070 [DEBUG][       Thread-252948][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 11:17:57,080 [DEBUG][       Thread-252948][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 11:17:57,089 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 11:17:57,089 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 11:17:57,098 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 11:17:57,107 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 11:17:57,108 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 11:17:57,108 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 11:17:57,118 [DEBUG][       Thread-252948][   transport.py][1871] : EOF in transport thread
2025-06-13 11:17:59,653 [DEBUG][Thread-252950 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:18:07,119 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 11:18:07,119 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 11:18:07,119 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 11:18:07,119 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 11:18:07,579 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 11, 17, 38), 10.64, 47.5, 0.0, 17.2, 9.92, 0, 0, 0, 2, 0, 0),)
2025-06-13 11:18:07,579 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 11:17:38
2025-06-13 11:18:07,659 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 11:18:07,665 [DEBUG][       Thread-252951][   transport.py][1871] : starting thread (client mode): 0x84207640
2025-06-13 11:18:07,665 [DEBUG][       Thread-252951][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 11:18:07,687 [DEBUG][       Thread-252951][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 11:18:07,687 [ INFO][       Thread-252951][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 11:18:07,689 [DEBUG][       Thread-252951][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 11:18:07,689 [DEBUG][       Thread-252951][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 11:18:07,689 [DEBUG][       Thread-252951][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 11:18:07,689 [DEBUG][       Thread-252951][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:18:07,689 [DEBUG][       Thread-252951][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:18:07,689 [DEBUG][       Thread-252951][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:18:07,689 [DEBUG][       Thread-252951][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:18:07,689 [DEBUG][       Thread-252951][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 11:18:07,689 [DEBUG][       Thread-252951][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 11:18:07,689 [DEBUG][       Thread-252951][   transport.py][1871] : client lang: <none>
2025-06-13 11:18:07,689 [DEBUG][       Thread-252951][   transport.py][1871] : server lang: <none>
2025-06-13 11:18:07,689 [DEBUG][       Thread-252951][   transport.py][1871] : kex follows: False
2025-06-13 11:18:07,689 [DEBUG][       Thread-252951][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 11:18:07,689 [DEBUG][       Thread-252951][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 11:18:07,689 [DEBUG][       Thread-252951][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 11:18:07,689 [DEBUG][       Thread-252951][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 11:18:07,689 [DEBUG][       Thread-252951][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 11:18:07,689 [DEBUG][       Thread-252951][   transport.py][1871] : Compression: none
2025-06-13 11:18:07,689 [DEBUG][       Thread-252951][   transport.py][1871] : === End of kex handshake ===
2025-06-13 11:18:07,698 [DEBUG][       Thread-252951][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 11:18:07,699 [DEBUG][       Thread-252951][   transport.py][1871] : Switch to new keys ...
2025-06-13 11:18:07,699 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 11:18:07,700 [DEBUG][       Thread-252951][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 11:18:07,700 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 11:18:07,702 [DEBUG][       Thread-252951][   transport.py][1871] : userauth is OK
2025-06-13 11:18:07,726 [ INFO][       Thread-252951][   transport.py][1871] : Authentication (password) successful!
2025-06-13 11:18:07,727 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 11:18:08,297 [DEBUG][       Thread-252951][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 11:18:08,298 [DEBUG][       Thread-252951][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 11:18:08,341 [DEBUG][       Thread-252951][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 11:18:08,341 [DEBUG][       Thread-252951][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 11:18:08,344 [DEBUG][       Thread-252951][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 11:18:08,356 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 11:18:08,356 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 11:18:08,358 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 11:18:08,359 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 11:18:08,364 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 11:18:08,366 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 11:18:08,367 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 11:18:08,367 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 11:18:08,367 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.387439 -999.00   +9.80  20.64     51   +0.40 1 1 1 1 1   887    0 10.07 35.79 ----- 21.7 20.6 44.0 25.2 14.6 -28.2 13.2 -29.5 12.4 -27.8 13.8 -26.4
2025-06-13 11:18:08,367 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 11:18:08,367 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 11:18:08,368 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.387439
2025-06-13 11:18:08,368 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 11:18:08,368 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 11:18:08,369 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 11:18:08,369 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 11:18:08,369 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 11:18:08,369 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T11:17:38', tmtdew=10.64, humidity=47.5, cloud=0.0, wind=17.2, temperature=9.92, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T09:17:54.730', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 11:18:08,369 [DEBUG][       Thread-252951][   transport.py][1871] : EOF in transport thread
2025-06-13 11:18:08,452 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 11:18:08,479 [DEBUG][       Thread-252954][   transport.py][1871] : starting thread (client mode): 0x867fe1a0
2025-06-13 11:18:08,479 [DEBUG][       Thread-252954][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 11:18:08,494 [DEBUG][       Thread-252954][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 11:18:08,495 [ INFO][       Thread-252954][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 11:18:08,507 [DEBUG][       Thread-252954][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 11:18:08,507 [DEBUG][       Thread-252954][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 11:18:08,507 [DEBUG][       Thread-252954][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 11:18:08,507 [DEBUG][       Thread-252954][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:18:08,507 [DEBUG][       Thread-252954][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:18:08,507 [DEBUG][       Thread-252954][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:18:08,507 [DEBUG][       Thread-252954][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:18:08,507 [DEBUG][       Thread-252954][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 11:18:08,507 [DEBUG][       Thread-252954][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 11:18:08,508 [DEBUG][       Thread-252954][   transport.py][1871] : client lang: <none>
2025-06-13 11:18:08,508 [DEBUG][       Thread-252954][   transport.py][1871] : server lang: <none>
2025-06-13 11:18:08,508 [DEBUG][       Thread-252954][   transport.py][1871] : kex follows: False
2025-06-13 11:18:08,508 [DEBUG][       Thread-252954][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 11:18:08,508 [DEBUG][       Thread-252954][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 11:18:08,508 [DEBUG][       Thread-252954][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 11:18:08,508 [DEBUG][       Thread-252954][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 11:18:08,508 [DEBUG][       Thread-252954][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 11:18:08,508 [DEBUG][       Thread-252954][   transport.py][1871] : Compression: none
2025-06-13 11:18:08,508 [DEBUG][       Thread-252954][   transport.py][1871] : === End of kex handshake ===
2025-06-13 11:18:08,565 [DEBUG][       Thread-252954][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 11:18:08,565 [DEBUG][       Thread-252954][   transport.py][1871] : Switch to new keys ...
2025-06-13 11:18:08,566 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 11:18:08,566 [DEBUG][       Thread-252954][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 11:18:08,567 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 11:18:08,625 [DEBUG][       Thread-252954][   transport.py][1871] : userauth is OK
2025-06-13 11:18:08,625 [DEBUG][       Thread-252954][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 11:18:08,625 [DEBUG][       Thread-252954][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 11:18:08,626 [DEBUG][       Thread-252954][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 11:18:08,626 [DEBUG][       Thread-252954][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 11:18:08,645 [ INFO][       Thread-252954][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 11:18:08,646 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 11:18:08,646 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 11:18:08,675 [DEBUG][Thread-252956 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:18:08,717 [DEBUG][Thread-252957 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:18:09,269 [DEBUG][Thread-252958 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:18:09,675 [DEBUG][       Thread-252954][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 11:18:09,676 [DEBUG][       Thread-252954][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 11:18:09,727 [DEBUG][       Thread-252954][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 11:18:09,728 [DEBUG][       Thread-252954][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 11:18:09,739 [DEBUG][       Thread-252954][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 11:18:09,750 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 11:18:09,750 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 11:18:09,763 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 11:18:09,775 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 11:18:09,775 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 11:18:09,776 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 11:18:09,786 [DEBUG][       Thread-252954][   transport.py][1871] : EOF in transport thread
2025-06-13 11:18:10,313 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:18:10,314 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:18:17,697 [DEBUG][Thread-252959 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:18:19,784 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 11:18:19,784 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 11:18:19,784 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 11:18:19,785 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 11:18:20,289 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 11, 18, 10), 10.61, 47.51, 0.0, 18.25, 9.97, 0, 0, 0, 2, 0, 0),)
2025-06-13 11:18:20,289 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 11:18:10
2025-06-13 11:18:20,372 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 11:18:20,376 [DEBUG][       Thread-252960][   transport.py][1871] : starting thread (client mode): 0x84207bb0
2025-06-13 11:18:20,376 [DEBUG][       Thread-252960][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 11:18:20,397 [DEBUG][       Thread-252960][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 11:18:20,398 [ INFO][       Thread-252960][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 11:18:20,401 [DEBUG][       Thread-252960][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 11:18:20,401 [DEBUG][       Thread-252960][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 11:18:20,401 [DEBUG][       Thread-252960][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 11:18:20,401 [DEBUG][       Thread-252960][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:18:20,401 [DEBUG][       Thread-252960][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:18:20,401 [DEBUG][       Thread-252960][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:18:20,401 [DEBUG][       Thread-252960][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:18:20,401 [DEBUG][       Thread-252960][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 11:18:20,401 [DEBUG][       Thread-252960][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 11:18:20,401 [DEBUG][       Thread-252960][   transport.py][1871] : client lang: <none>
2025-06-13 11:18:20,401 [DEBUG][       Thread-252960][   transport.py][1871] : server lang: <none>
2025-06-13 11:18:20,401 [DEBUG][       Thread-252960][   transport.py][1871] : kex follows: False
2025-06-13 11:18:20,401 [DEBUG][       Thread-252960][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 11:18:20,401 [DEBUG][       Thread-252960][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 11:18:20,401 [DEBUG][       Thread-252960][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 11:18:20,401 [DEBUG][       Thread-252960][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 11:18:20,401 [DEBUG][       Thread-252960][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 11:18:20,401 [DEBUG][       Thread-252960][   transport.py][1871] : Compression: none
2025-06-13 11:18:20,401 [DEBUG][       Thread-252960][   transport.py][1871] : === End of kex handshake ===
2025-06-13 11:18:20,417 [DEBUG][       Thread-252960][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 11:18:20,417 [DEBUG][       Thread-252960][   transport.py][1871] : Switch to new keys ...
2025-06-13 11:18:20,417 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 11:18:20,417 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 11:18:20,417 [DEBUG][       Thread-252960][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 11:18:20,418 [DEBUG][       Thread-252960][   transport.py][1871] : userauth is OK
2025-06-13 11:18:20,431 [ INFO][       Thread-252960][   transport.py][1871] : Authentication (password) successful!
2025-06-13 11:18:20,431 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 11:18:21,076 [DEBUG][       Thread-252960][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 11:18:21,076 [DEBUG][       Thread-252960][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 11:18:21,121 [DEBUG][       Thread-252960][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 11:18:21,121 [DEBUG][       Thread-252960][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 11:18:21,123 [DEBUG][       Thread-252960][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 11:18:21,136 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 11:18:21,137 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 11:18:21,138 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 11:18:21,139 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 11:18:21,141 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 11:18:21,142 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 11:18:21,142 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 11:18:21,142 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 11:18:21,143 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.387439 -999.00   +9.80  20.64     51   +0.40 1 1 1 1 1   887    0 10.07 35.79 ----- 21.7 20.6 44.0 25.2 14.6 -28.2 13.2 -29.5 12.4 -27.8 13.8 -26.4
2025-06-13 11:18:21,143 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 11:18:21,143 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 11:18:21,143 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.387439
2025-06-13 11:18:21,143 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 11:18:21,143 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 11:18:21,143 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 11:18:21,143 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 11:18:21,143 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 11:18:21,143 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T11:18:10', tmtdew=10.61, humidity=47.51, cloud=0.0, wind=18.25, temperature=9.97, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T09:17:54.730', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 11:18:21,144 [DEBUG][       Thread-252960][   transport.py][1871] : EOF in transport thread
2025-06-13 11:18:21,215 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 11:18:21,224 [DEBUG][       Thread-252963][   transport.py][1871] : starting thread (client mode): 0x863eec20
2025-06-13 11:18:21,224 [DEBUG][       Thread-252963][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 11:18:21,240 [DEBUG][       Thread-252963][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 11:18:21,240 [ INFO][       Thread-252963][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 11:18:21,249 [DEBUG][       Thread-252963][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 11:18:21,249 [DEBUG][       Thread-252963][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 11:18:21,249 [DEBUG][       Thread-252963][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 11:18:21,249 [DEBUG][       Thread-252963][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:18:21,249 [DEBUG][       Thread-252963][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:18:21,249 [DEBUG][       Thread-252963][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:18:21,249 [DEBUG][       Thread-252963][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:18:21,249 [DEBUG][       Thread-252963][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 11:18:21,249 [DEBUG][       Thread-252963][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 11:18:21,249 [DEBUG][       Thread-252963][   transport.py][1871] : client lang: <none>
2025-06-13 11:18:21,249 [DEBUG][       Thread-252963][   transport.py][1871] : server lang: <none>
2025-06-13 11:18:21,249 [DEBUG][       Thread-252963][   transport.py][1871] : kex follows: False
2025-06-13 11:18:21,249 [DEBUG][       Thread-252963][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 11:18:21,249 [DEBUG][       Thread-252963][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 11:18:21,249 [DEBUG][       Thread-252963][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 11:18:21,249 [DEBUG][       Thread-252963][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 11:18:21,249 [DEBUG][       Thread-252963][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 11:18:21,249 [DEBUG][       Thread-252963][   transport.py][1871] : Compression: none
2025-06-13 11:18:21,249 [DEBUG][       Thread-252963][   transport.py][1871] : === End of kex handshake ===
2025-06-13 11:18:21,305 [DEBUG][       Thread-252963][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 11:18:21,306 [DEBUG][       Thread-252963][   transport.py][1871] : Switch to new keys ...
2025-06-13 11:18:21,306 [DEBUG][       Thread-252963][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 11:18:21,306 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 11:18:21,306 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 11:18:21,365 [DEBUG][       Thread-252963][   transport.py][1871] : userauth is OK
2025-06-13 11:18:21,365 [DEBUG][       Thread-252963][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 11:18:21,365 [DEBUG][       Thread-252963][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 11:18:21,365 [DEBUG][       Thread-252963][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 11:18:21,365 [DEBUG][       Thread-252963][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 11:18:21,380 [ INFO][       Thread-252963][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 11:18:21,380 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 11:18:21,380 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 11:18:22,403 [DEBUG][       Thread-252963][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 11:18:22,403 [DEBUG][       Thread-252963][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 11:18:22,451 [DEBUG][       Thread-252963][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 11:18:22,451 [DEBUG][       Thread-252963][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 11:18:22,460 [DEBUG][       Thread-252963][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 11:18:22,468 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 11:18:22,468 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 11:18:22,476 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 11:18:22,484 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 11:18:22,484 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 11:18:22,484 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 11:18:22,492 [DEBUG][       Thread-252963][   transport.py][1871] : EOF in transport thread
2025-06-13 11:18:26,717 [DEBUG][Thread-252965 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:18:32,494 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 11:18:32,495 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 11:18:32,495 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 11:18:32,498 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 11:18:32,964 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 11, 18, 10), 10.61, 47.51, 0.0, 18.25, 9.97, 0, 0, 0, 2, 0, 0),)
2025-06-13 11:18:32,964 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 11:18:10
2025-06-13 11:18:33,045 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 11:18:33,050 [DEBUG][       Thread-252966][   transport.py][1871] : starting thread (client mode): 0x84204bb0
2025-06-13 11:18:33,050 [DEBUG][       Thread-252966][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 11:18:33,070 [DEBUG][       Thread-252966][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 11:18:33,070 [ INFO][       Thread-252966][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 11:18:33,074 [DEBUG][       Thread-252966][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 11:18:33,074 [DEBUG][       Thread-252966][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 11:18:33,074 [DEBUG][       Thread-252966][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 11:18:33,074 [DEBUG][       Thread-252966][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:18:33,074 [DEBUG][       Thread-252966][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:18:33,074 [DEBUG][       Thread-252966][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:18:33,074 [DEBUG][       Thread-252966][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:18:33,074 [DEBUG][       Thread-252966][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 11:18:33,074 [DEBUG][       Thread-252966][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 11:18:33,074 [DEBUG][       Thread-252966][   transport.py][1871] : client lang: <none>
2025-06-13 11:18:33,074 [DEBUG][       Thread-252966][   transport.py][1871] : server lang: <none>
2025-06-13 11:18:33,074 [DEBUG][       Thread-252966][   transport.py][1871] : kex follows: False
2025-06-13 11:18:33,074 [DEBUG][       Thread-252966][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 11:18:33,075 [DEBUG][       Thread-252966][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 11:18:33,075 [DEBUG][       Thread-252966][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 11:18:33,075 [DEBUG][       Thread-252966][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 11:18:33,075 [DEBUG][       Thread-252966][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 11:18:33,075 [DEBUG][       Thread-252966][   transport.py][1871] : Compression: none
2025-06-13 11:18:33,075 [DEBUG][       Thread-252966][   transport.py][1871] : === End of kex handshake ===
2025-06-13 11:18:33,092 [DEBUG][       Thread-252966][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 11:18:33,093 [DEBUG][       Thread-252966][   transport.py][1871] : Switch to new keys ...
2025-06-13 11:18:33,094 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 11:18:33,094 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 11:18:33,094 [DEBUG][       Thread-252966][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 11:18:33,095 [DEBUG][       Thread-252966][   transport.py][1871] : userauth is OK
2025-06-13 11:18:33,143 [ INFO][       Thread-252966][   transport.py][1871] : Authentication (password) successful!
2025-06-13 11:18:33,144 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 11:18:33,652 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:18:33,653 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:18:33,732 [DEBUG][       Thread-252966][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 11:18:33,733 [DEBUG][       Thread-252966][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 11:18:33,777 [DEBUG][       Thread-252966][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 11:18:33,777 [DEBUG][       Thread-252966][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 11:18:33,780 [DEBUG][       Thread-252966][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 11:18:33,792 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 11:18:33,793 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 11:18:33,794 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 11:18:33,796 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 11:18:33,802 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 11:18:33,804 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 11:18:33,804 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 11:18:33,805 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 11:18:33,805 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.387439 -999.00   +9.80  20.64     51   +0.40 1 1 1 1 1   887    0 10.07 35.79 ----- 21.7 20.6 44.0 25.2 14.6 -28.2 13.2 -29.5 12.4 -27.8 13.8 -26.4
2025-06-13 11:18:33,805 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 11:18:33,805 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 11:18:33,805 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.387439
2025-06-13 11:18:33,806 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 11:18:33,806 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 11:18:33,806 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 11:18:33,806 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 11:18:33,807 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 11:18:33,807 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T11:18:10', tmtdew=10.61, humidity=47.51, cloud=0.0, wind=18.25, temperature=9.97, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T09:17:54.730', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 11:18:33,808 [DEBUG][       Thread-252966][   transport.py][1871] : EOF in transport thread
2025-06-13 11:18:33,891 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 11:18:33,903 [DEBUG][       Thread-252969][   transport.py][1871] : starting thread (client mode): 0x867ff010
2025-06-13 11:18:33,903 [DEBUG][       Thread-252969][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 11:18:33,918 [DEBUG][       Thread-252969][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 11:18:33,918 [ INFO][       Thread-252969][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 11:18:33,926 [DEBUG][       Thread-252969][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 11:18:33,926 [DEBUG][       Thread-252969][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 11:18:33,926 [DEBUG][       Thread-252969][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 11:18:33,926 [DEBUG][       Thread-252969][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:18:33,926 [DEBUG][       Thread-252969][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:18:33,926 [DEBUG][       Thread-252969][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:18:33,926 [DEBUG][       Thread-252969][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:18:33,926 [DEBUG][       Thread-252969][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 11:18:33,926 [DEBUG][       Thread-252969][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 11:18:33,926 [DEBUG][       Thread-252969][   transport.py][1871] : client lang: <none>
2025-06-13 11:18:33,926 [DEBUG][       Thread-252969][   transport.py][1871] : server lang: <none>
2025-06-13 11:18:33,926 [DEBUG][       Thread-252969][   transport.py][1871] : kex follows: False
2025-06-13 11:18:33,926 [DEBUG][       Thread-252969][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 11:18:33,927 [DEBUG][       Thread-252969][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 11:18:33,927 [DEBUG][       Thread-252969][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 11:18:33,927 [DEBUG][       Thread-252969][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 11:18:33,927 [DEBUG][       Thread-252969][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 11:18:33,927 [DEBUG][       Thread-252969][   transport.py][1871] : Compression: none
2025-06-13 11:18:33,927 [DEBUG][       Thread-252969][   transport.py][1871] : === End of kex handshake ===
2025-06-13 11:18:33,984 [DEBUG][       Thread-252969][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 11:18:33,984 [DEBUG][       Thread-252969][   transport.py][1871] : Switch to new keys ...
2025-06-13 11:18:33,985 [DEBUG][       Thread-252969][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 11:18:33,985 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 11:18:33,986 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 11:18:34,044 [DEBUG][       Thread-252969][   transport.py][1871] : userauth is OK
2025-06-13 11:18:34,044 [DEBUG][       Thread-252969][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 11:18:34,045 [DEBUG][       Thread-252969][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 11:18:34,045 [DEBUG][       Thread-252969][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 11:18:34,045 [DEBUG][       Thread-252969][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 11:18:34,064 [ INFO][       Thread-252969][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 11:18:34,064 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 11:18:34,065 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 11:18:35,072 [DEBUG][       Thread-252969][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 11:18:35,072 [DEBUG][       Thread-252969][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 11:18:35,121 [DEBUG][       Thread-252969][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 11:18:35,121 [DEBUG][       Thread-252969][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 11:18:35,131 [DEBUG][       Thread-252969][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 11:18:35,142 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 11:18:35,142 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 11:18:35,154 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 11:18:35,166 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 11:18:35,166 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 11:18:35,166 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 11:18:35,175 [DEBUG][       Thread-252969][   transport.py][1871] : EOF in transport thread
2025-06-13 11:18:35,755 [DEBUG][Thread-252971 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:18:44,777 [DEBUG][Thread-252972 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:18:45,173 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 11:18:45,173 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 11:18:45,173 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 11:18:45,176 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 11:18:45,642 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 11, 18, 42), 10.64, 47.41, 0.0, 17.31, 9.93, 0, 0, 0, 2, 0, 0),)
2025-06-13 11:18:45,642 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 11:18:42
2025-06-13 11:18:45,720 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 11:18:45,726 [DEBUG][       Thread-252973][   transport.py][1871] : starting thread (client mode): 0x84204940
2025-06-13 11:18:45,726 [DEBUG][       Thread-252973][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 11:18:45,747 [DEBUG][       Thread-252973][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 11:18:45,747 [ INFO][       Thread-252973][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 11:18:45,751 [DEBUG][       Thread-252973][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 11:18:45,751 [DEBUG][       Thread-252973][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 11:18:45,751 [DEBUG][       Thread-252973][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 11:18:45,751 [DEBUG][       Thread-252973][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:18:45,752 [DEBUG][       Thread-252973][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:18:45,752 [DEBUG][       Thread-252973][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:18:45,752 [DEBUG][       Thread-252973][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:18:45,752 [DEBUG][       Thread-252973][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 11:18:45,752 [DEBUG][       Thread-252973][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 11:18:45,752 [DEBUG][       Thread-252973][   transport.py][1871] : client lang: <none>
2025-06-13 11:18:45,752 [DEBUG][       Thread-252973][   transport.py][1871] : server lang: <none>
2025-06-13 11:18:45,752 [DEBUG][       Thread-252973][   transport.py][1871] : kex follows: False
2025-06-13 11:18:45,752 [DEBUG][       Thread-252973][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 11:18:45,752 [DEBUG][       Thread-252973][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 11:18:45,752 [DEBUG][       Thread-252973][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 11:18:45,752 [DEBUG][       Thread-252973][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 11:18:45,752 [DEBUG][       Thread-252973][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 11:18:45,752 [DEBUG][       Thread-252973][   transport.py][1871] : Compression: none
2025-06-13 11:18:45,752 [DEBUG][       Thread-252973][   transport.py][1871] : === End of kex handshake ===
2025-06-13 11:18:45,769 [DEBUG][       Thread-252973][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 11:18:45,770 [DEBUG][       Thread-252973][   transport.py][1871] : Switch to new keys ...
2025-06-13 11:18:45,770 [DEBUG][       Thread-252973][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 11:18:45,771 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 11:18:45,771 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 11:18:45,772 [DEBUG][       Thread-252973][   transport.py][1871] : userauth is OK
2025-06-13 11:18:45,797 [ INFO][       Thread-252973][   transport.py][1871] : Authentication (password) successful!
2025-06-13 11:18:45,797 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 11:18:46,441 [DEBUG][       Thread-252973][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 11:18:46,441 [DEBUG][       Thread-252973][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 11:18:46,485 [DEBUG][       Thread-252973][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 11:18:46,485 [DEBUG][       Thread-252973][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 11:18:46,489 [DEBUG][       Thread-252973][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 11:18:46,502 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 11:18:46,502 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 11:18:46,503 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 11:18:46,505 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 11:18:46,510 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 11:18:46,512 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 11:18:46,513 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 11:18:46,513 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 11:18:46,513 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.387786 -999.00   +9.80  17.59     52   +0.40 1 1 1 1 1   887    0 10.22 35.86 ----- 20.8 17.6 48.8 23.8 14.5 -29.0 13.2 -29.8 12.4 -28.2 13.7 -26.1
2025-06-13 11:18:46,513 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 11:18:46,513 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 11:18:46,514 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.387786
2025-06-13 11:18:46,514 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 11:18:46,514 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 11:18:46,515 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 11:18:46,515 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 11:18:46,515 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 11:18:46,515 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T11:18:42', tmtdew=10.64, humidity=47.41, cloud=0.0, wind=17.31, temperature=9.93, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T09:18:24.710', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 11:18:46,516 [DEBUG][       Thread-252973][   transport.py][1871] : EOF in transport thread
2025-06-13 11:18:46,599 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 11:18:46,611 [DEBUG][       Thread-252976][   transport.py][1871] : starting thread (client mode): 0x863c8250
2025-06-13 11:18:46,611 [DEBUG][       Thread-252976][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 11:18:46,627 [DEBUG][       Thread-252976][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 11:18:46,627 [ INFO][       Thread-252976][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 11:18:46,635 [DEBUG][       Thread-252976][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 11:18:46,635 [DEBUG][       Thread-252976][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 11:18:46,635 [DEBUG][       Thread-252976][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 11:18:46,635 [DEBUG][       Thread-252976][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:18:46,635 [DEBUG][       Thread-252976][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:18:46,635 [DEBUG][       Thread-252976][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:18:46,635 [DEBUG][       Thread-252976][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:18:46,635 [DEBUG][       Thread-252976][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 11:18:46,635 [DEBUG][       Thread-252976][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 11:18:46,636 [DEBUG][       Thread-252976][   transport.py][1871] : client lang: <none>
2025-06-13 11:18:46,636 [DEBUG][       Thread-252976][   transport.py][1871] : server lang: <none>
2025-06-13 11:18:46,636 [DEBUG][       Thread-252976][   transport.py][1871] : kex follows: False
2025-06-13 11:18:46,636 [DEBUG][       Thread-252976][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 11:18:46,636 [DEBUG][       Thread-252976][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 11:18:46,636 [DEBUG][       Thread-252976][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 11:18:46,636 [DEBUG][       Thread-252976][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 11:18:46,636 [DEBUG][       Thread-252976][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 11:18:46,636 [DEBUG][       Thread-252976][   transport.py][1871] : Compression: none
2025-06-13 11:18:46,636 [DEBUG][       Thread-252976][   transport.py][1871] : === End of kex handshake ===
2025-06-13 11:18:46,692 [DEBUG][       Thread-252976][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 11:18:46,692 [DEBUG][       Thread-252976][   transport.py][1871] : Switch to new keys ...
2025-06-13 11:18:46,693 [DEBUG][       Thread-252976][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 11:18:46,693 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 11:18:46,694 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 11:18:46,749 [DEBUG][       Thread-252976][   transport.py][1871] : userauth is OK
2025-06-13 11:18:46,749 [DEBUG][       Thread-252976][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 11:18:46,749 [DEBUG][       Thread-252976][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 11:18:46,749 [DEBUG][       Thread-252976][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 11:18:46,749 [DEBUG][       Thread-252976][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 11:18:46,766 [ INFO][       Thread-252976][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 11:18:46,766 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 11:18:46,766 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 11:18:47,812 [DEBUG][       Thread-252976][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 11:18:47,812 [DEBUG][       Thread-252976][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 11:18:47,861 [DEBUG][       Thread-252976][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 11:18:47,861 [DEBUG][       Thread-252976][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 11:18:47,872 [DEBUG][       Thread-252976][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 11:18:47,882 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 11:18:47,882 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 11:18:47,891 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 11:18:47,900 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 11:18:47,900 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 11:18:47,901 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 11:18:47,909 [DEBUG][       Thread-252976][   transport.py][1871] : EOF in transport thread
2025-06-13 11:18:53,798 [DEBUG][Thread-252978 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:18:57,908 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 11:18:57,908 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 11:18:57,908 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 11:18:57,909 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 11:18:58,379 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 11, 18, 42), 10.64, 47.41, 0.0, 17.31, 9.93, 0, 0, 0, 2, 0, 0),)
2025-06-13 11:18:58,379 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 11:18:42
2025-06-13 11:18:58,466 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 11:18:58,470 [DEBUG][       Thread-252979][   transport.py][1871] : starting thread (client mode): 0x863be110
2025-06-13 11:18:58,470 [DEBUG][       Thread-252979][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 11:18:58,490 [DEBUG][       Thread-252979][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 11:18:58,490 [ INFO][       Thread-252979][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 11:18:58,493 [DEBUG][       Thread-252979][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 11:18:58,494 [DEBUG][       Thread-252979][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 11:18:58,494 [DEBUG][       Thread-252979][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 11:18:58,494 [DEBUG][       Thread-252979][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:18:58,494 [DEBUG][       Thread-252979][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:18:58,494 [DEBUG][       Thread-252979][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:18:58,494 [DEBUG][       Thread-252979][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:18:58,494 [DEBUG][       Thread-252979][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 11:18:58,494 [DEBUG][       Thread-252979][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 11:18:58,494 [DEBUG][       Thread-252979][   transport.py][1871] : client lang: <none>
2025-06-13 11:18:58,494 [DEBUG][       Thread-252979][   transport.py][1871] : server lang: <none>
2025-06-13 11:18:58,494 [DEBUG][       Thread-252979][   transport.py][1871] : kex follows: False
2025-06-13 11:18:58,494 [DEBUG][       Thread-252979][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 11:18:58,494 [DEBUG][       Thread-252979][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 11:18:58,494 [DEBUG][       Thread-252979][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 11:18:58,494 [DEBUG][       Thread-252979][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 11:18:58,494 [DEBUG][       Thread-252979][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 11:18:58,494 [DEBUG][       Thread-252979][   transport.py][1871] : Compression: none
2025-06-13 11:18:58,494 [DEBUG][       Thread-252979][   transport.py][1871] : === End of kex handshake ===
2025-06-13 11:18:58,507 [DEBUG][       Thread-252979][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 11:18:58,508 [DEBUG][       Thread-252979][   transport.py][1871] : Switch to new keys ...
2025-06-13 11:18:58,508 [DEBUG][       Thread-252979][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 11:18:58,508 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 11:18:58,508 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 11:18:58,508 [DEBUG][       Thread-252979][   transport.py][1871] : userauth is OK
2025-06-13 11:18:58,522 [ INFO][       Thread-252979][   transport.py][1871] : Authentication (password) successful!
2025-06-13 11:18:58,522 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 11:18:59,182 [DEBUG][       Thread-252979][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 11:18:59,182 [DEBUG][       Thread-252979][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 11:18:59,224 [DEBUG][       Thread-252979][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 11:18:59,225 [DEBUG][       Thread-252979][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 11:18:59,226 [DEBUG][       Thread-252979][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 11:18:59,238 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 11:18:59,238 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 11:18:59,239 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 11:18:59,240 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 11:18:59,242 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 11:18:59,243 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 11:18:59,243 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 11:18:59,243 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 11:18:59,243 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.387786 -999.00   +9.80  17.59     52   +0.40 1 1 1 1 1   887    0 10.22 35.86 ----- 20.8 17.6 48.8 23.8 14.5 -29.0 13.2 -29.8 12.4 -28.2 13.7 -26.1
2025-06-13 11:18:59,243 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 11:18:59,243 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 11:18:59,243 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.387786
2025-06-13 11:18:59,243 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 11:18:59,244 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 11:18:59,244 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 11:18:59,244 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 11:18:59,244 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 11:18:59,244 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T11:18:42', tmtdew=10.64, humidity=47.41, cloud=0.0, wind=17.31, temperature=9.93, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T09:18:24.710', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 11:18:59,244 [DEBUG][       Thread-252979][   transport.py][1871] : EOF in transport thread
2025-06-13 11:18:59,316 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 11:18:59,327 [DEBUG][       Thread-252982][   transport.py][1871] : starting thread (client mode): 0x863c9750
2025-06-13 11:18:59,328 [DEBUG][       Thread-252982][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 11:18:59,346 [DEBUG][       Thread-252982][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 11:18:59,346 [ INFO][       Thread-252982][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 11:18:59,357 [DEBUG][       Thread-252982][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 11:18:59,357 [DEBUG][       Thread-252982][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 11:18:59,357 [DEBUG][       Thread-252982][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 11:18:59,357 [DEBUG][       Thread-252982][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:18:59,357 [DEBUG][       Thread-252982][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:18:59,357 [DEBUG][       Thread-252982][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:18:59,357 [DEBUG][       Thread-252982][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:18:59,357 [DEBUG][       Thread-252982][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 11:18:59,357 [DEBUG][       Thread-252982][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 11:18:59,357 [DEBUG][       Thread-252982][   transport.py][1871] : client lang: <none>
2025-06-13 11:18:59,357 [DEBUG][       Thread-252982][   transport.py][1871] : server lang: <none>
2025-06-13 11:18:59,357 [DEBUG][       Thread-252982][   transport.py][1871] : kex follows: False
2025-06-13 11:18:59,357 [DEBUG][       Thread-252982][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 11:18:59,357 [DEBUG][       Thread-252982][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 11:18:59,357 [DEBUG][       Thread-252982][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 11:18:59,357 [DEBUG][       Thread-252982][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 11:18:59,357 [DEBUG][       Thread-252982][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 11:18:59,357 [DEBUG][       Thread-252982][   transport.py][1871] : Compression: none
2025-06-13 11:18:59,357 [DEBUG][       Thread-252982][   transport.py][1871] : === End of kex handshake ===
2025-06-13 11:18:59,420 [DEBUG][       Thread-252982][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 11:18:59,420 [DEBUG][       Thread-252982][   transport.py][1871] : Switch to new keys ...
2025-06-13 11:18:59,420 [DEBUG][       Thread-252982][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 11:18:59,421 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 11:18:59,421 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 11:18:59,479 [DEBUG][       Thread-252982][   transport.py][1871] : userauth is OK
2025-06-13 11:18:59,479 [DEBUG][       Thread-252982][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 11:18:59,479 [DEBUG][       Thread-252982][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 11:18:59,479 [DEBUG][       Thread-252982][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 11:18:59,479 [DEBUG][       Thread-252982][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 11:18:59,493 [ INFO][       Thread-252982][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 11:18:59,493 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 11:18:59,493 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 11:19:00,483 [DEBUG][       Thread-252982][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 11:19:00,484 [DEBUG][       Thread-252982][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 11:19:00,535 [DEBUG][       Thread-252982][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 11:19:00,535 [DEBUG][       Thread-252982][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 11:19:00,544 [DEBUG][       Thread-252982][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 11:19:00,552 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 11:19:00,552 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 11:19:00,560 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 11:19:00,568 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 11:19:00,568 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 11:19:00,568 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 11:19:00,577 [DEBUG][       Thread-252982][   transport.py][1871] : EOF in transport thread
2025-06-13 11:19:02,825 [DEBUG][Thread-252984 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:19:08,781 [DEBUG][Thread-252985 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:19:10,377 [DEBUG][Thread-252986 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:19:10,578 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 11:19:10,579 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 11:19:10,579 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 11:19:10,581 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 11:19:11,050 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 11, 18, 42), 10.64, 47.41, 0.0, 17.31, 9.93, 0, 0, 0, 2, 0, 0),)
2025-06-13 11:19:11,050 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 11:18:42
2025-06-13 11:19:11,129 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 11:19:11,136 [DEBUG][       Thread-252987][   transport.py][1871] : starting thread (client mode): 0x84204340
2025-06-13 11:19:11,136 [DEBUG][       Thread-252987][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 11:19:11,156 [DEBUG][       Thread-252987][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 11:19:11,156 [ INFO][       Thread-252987][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 11:19:11,159 [DEBUG][       Thread-252987][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 11:19:11,159 [DEBUG][       Thread-252987][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 11:19:11,159 [DEBUG][       Thread-252987][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 11:19:11,159 [DEBUG][       Thread-252987][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:19:11,159 [DEBUG][       Thread-252987][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:19:11,159 [DEBUG][       Thread-252987][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:19:11,159 [DEBUG][       Thread-252987][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:19:11,159 [DEBUG][       Thread-252987][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 11:19:11,159 [DEBUG][       Thread-252987][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 11:19:11,159 [DEBUG][       Thread-252987][   transport.py][1871] : client lang: <none>
2025-06-13 11:19:11,159 [DEBUG][       Thread-252987][   transport.py][1871] : server lang: <none>
2025-06-13 11:19:11,159 [DEBUG][       Thread-252987][   transport.py][1871] : kex follows: False
2025-06-13 11:19:11,159 [DEBUG][       Thread-252987][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 11:19:11,159 [DEBUG][       Thread-252987][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 11:19:11,160 [DEBUG][       Thread-252987][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 11:19:11,160 [DEBUG][       Thread-252987][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 11:19:11,160 [DEBUG][       Thread-252987][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 11:19:11,160 [DEBUG][       Thread-252987][   transport.py][1871] : Compression: none
2025-06-13 11:19:11,160 [DEBUG][       Thread-252987][   transport.py][1871] : === End of kex handshake ===
2025-06-13 11:19:11,174 [DEBUG][       Thread-252987][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 11:19:11,175 [DEBUG][       Thread-252987][   transport.py][1871] : Switch to new keys ...
2025-06-13 11:19:11,175 [DEBUG][       Thread-252987][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 11:19:11,175 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 11:19:11,176 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 11:19:11,177 [DEBUG][       Thread-252987][   transport.py][1871] : userauth is OK
2025-06-13 11:19:11,189 [ INFO][       Thread-252987][   transport.py][1871] : Authentication (password) successful!
2025-06-13 11:19:11,190 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 11:19:11,452 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:19:11,453 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:19:11,845 [DEBUG][Thread-252989 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:19:11,877 [DEBUG][       Thread-252987][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 11:19:11,878 [DEBUG][       Thread-252987][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 11:19:11,921 [DEBUG][       Thread-252987][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 11:19:11,921 [DEBUG][       Thread-252987][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 11:19:11,924 [DEBUG][       Thread-252987][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 11:19:11,935 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 11:19:11,936 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 11:19:11,937 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 11:19:11,939 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 11:19:11,943 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 11:19:11,944 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 11:19:11,944 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 11:19:11,945 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 11:19:11,945 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.388133 -999.00   +9.90  20.15     52   +0.50 1 1 1 1 1   887    0 10.50 41.47 ----- 18.2 20.1 38.0 23.3 14.6 -28.1 13.2 -29.5 12.5 -27.9 13.8 -26.2
2025-06-13 11:19:11,945 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 11:19:11,945 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 11:19:11,945 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.388133
2025-06-13 11:19:11,946 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 11:19:11,946 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 11:19:11,946 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 11:19:11,946 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 11:19:11,946 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 11:19:11,947 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T11:18:42', tmtdew=10.64, humidity=47.41, cloud=0.0, wind=17.31, temperature=9.93, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T09:18:54.691', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 11:19:11,948 [DEBUG][       Thread-252987][   transport.py][1871] : EOF in transport thread
2025-06-13 11:19:12,030 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 11:19:12,041 [DEBUG][       Thread-252991][   transport.py][1871] : starting thread (client mode): 0x8636a2f0
2025-06-13 11:19:12,041 [DEBUG][       Thread-252991][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 11:19:12,057 [DEBUG][       Thread-252991][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 11:19:12,057 [ INFO][       Thread-252991][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 11:19:12,068 [DEBUG][       Thread-252991][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 11:19:12,068 [DEBUG][       Thread-252991][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 11:19:12,068 [DEBUG][       Thread-252991][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 11:19:12,068 [DEBUG][       Thread-252991][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:19:12,068 [DEBUG][       Thread-252991][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:19:12,068 [DEBUG][       Thread-252991][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:19:12,068 [DEBUG][       Thread-252991][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:19:12,069 [DEBUG][       Thread-252991][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 11:19:12,069 [DEBUG][       Thread-252991][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 11:19:12,069 [DEBUG][       Thread-252991][   transport.py][1871] : client lang: <none>
2025-06-13 11:19:12,069 [DEBUG][       Thread-252991][   transport.py][1871] : server lang: <none>
2025-06-13 11:19:12,069 [DEBUG][       Thread-252991][   transport.py][1871] : kex follows: False
2025-06-13 11:19:12,069 [DEBUG][       Thread-252991][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 11:19:12,069 [DEBUG][       Thread-252991][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 11:19:12,069 [DEBUG][       Thread-252991][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 11:19:12,069 [DEBUG][       Thread-252991][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 11:19:12,069 [DEBUG][       Thread-252991][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 11:19:12,069 [DEBUG][       Thread-252991][   transport.py][1871] : Compression: none
2025-06-13 11:19:12,069 [DEBUG][       Thread-252991][   transport.py][1871] : === End of kex handshake ===
2025-06-13 11:19:12,122 [DEBUG][       Thread-252991][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 11:19:12,123 [DEBUG][       Thread-252991][   transport.py][1871] : Switch to new keys ...
2025-06-13 11:19:12,123 [DEBUG][       Thread-252991][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 11:19:12,123 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 11:19:12,124 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 11:19:12,186 [DEBUG][       Thread-252991][   transport.py][1871] : userauth is OK
2025-06-13 11:19:12,186 [DEBUG][       Thread-252991][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 11:19:12,187 [DEBUG][       Thread-252991][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 11:19:12,187 [DEBUG][       Thread-252991][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 11:19:12,187 [DEBUG][       Thread-252991][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 11:19:12,209 [ INFO][       Thread-252991][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 11:19:12,210 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 11:19:12,210 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 11:19:13,253 [DEBUG][       Thread-252991][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 11:19:13,254 [DEBUG][       Thread-252991][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 11:19:13,304 [DEBUG][       Thread-252991][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 11:19:13,304 [DEBUG][       Thread-252991][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 11:19:13,318 [DEBUG][       Thread-252991][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 11:19:13,330 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 11:19:13,330 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 11:19:13,345 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 11:19:13,358 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 11:19:13,359 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 11:19:13,359 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 11:19:13,369 [DEBUG][       Thread-252991][   transport.py][1871] : EOF in transport thread
2025-06-13 11:19:20,865 [DEBUG][Thread-252993 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:19:23,362 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 11:19:23,363 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 11:19:23,363 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 11:19:23,366 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 11:19:23,847 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 11, 19, 13), 10.57, 47.66, 0.0, 17.65, 10.0, 0, 0, 0, 2, 0, 0),)
2025-06-13 11:19:23,847 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 11:19:13
2025-06-13 11:19:23,929 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 11:19:23,933 [DEBUG][       Thread-252994][   transport.py][1871] : starting thread (client mode): 0x863bf460
2025-06-13 11:19:23,933 [DEBUG][       Thread-252994][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 11:19:23,954 [DEBUG][       Thread-252994][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 11:19:23,954 [ INFO][       Thread-252994][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 11:19:23,957 [DEBUG][       Thread-252994][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 11:19:23,957 [DEBUG][       Thread-252994][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 11:19:23,957 [DEBUG][       Thread-252994][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 11:19:23,957 [DEBUG][       Thread-252994][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:19:23,957 [DEBUG][       Thread-252994][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:19:23,957 [DEBUG][       Thread-252994][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:19:23,957 [DEBUG][       Thread-252994][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:19:23,957 [DEBUG][       Thread-252994][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 11:19:23,957 [DEBUG][       Thread-252994][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 11:19:23,957 [DEBUG][       Thread-252994][   transport.py][1871] : client lang: <none>
2025-06-13 11:19:23,957 [DEBUG][       Thread-252994][   transport.py][1871] : server lang: <none>
2025-06-13 11:19:23,958 [DEBUG][       Thread-252994][   transport.py][1871] : kex follows: False
2025-06-13 11:19:23,958 [DEBUG][       Thread-252994][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 11:19:23,958 [DEBUG][       Thread-252994][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 11:19:23,958 [DEBUG][       Thread-252994][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 11:19:23,958 [DEBUG][       Thread-252994][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 11:19:23,958 [DEBUG][       Thread-252994][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 11:19:23,958 [DEBUG][       Thread-252994][   transport.py][1871] : Compression: none
2025-06-13 11:19:23,958 [DEBUG][       Thread-252994][   transport.py][1871] : === End of kex handshake ===
2025-06-13 11:19:23,974 [DEBUG][       Thread-252994][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 11:19:23,975 [DEBUG][       Thread-252994][   transport.py][1871] : Switch to new keys ...
2025-06-13 11:19:23,975 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 11:19:23,975 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 11:19:23,976 [DEBUG][       Thread-252994][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 11:19:24,019 [DEBUG][       Thread-252994][   transport.py][1871] : userauth is OK
2025-06-13 11:19:24,044 [ INFO][       Thread-252994][   transport.py][1871] : Authentication (password) successful!
2025-06-13 11:19:24,044 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 11:19:24,649 [DEBUG][       Thread-252994][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 11:19:24,649 [DEBUG][       Thread-252994][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 11:19:24,693 [DEBUG][       Thread-252994][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 11:19:24,693 [DEBUG][       Thread-252994][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 11:19:24,696 [DEBUG][       Thread-252994][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 11:19:24,709 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 11:19:24,709 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 11:19:24,711 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 11:19:24,713 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 11:19:24,718 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 11:19:24,720 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 11:19:24,720 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 11:19:24,721 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 11:19:24,721 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.388133 -999.00   +9.90  20.15     52   +0.50 1 1 1 1 1   887    0 10.50 41.47 ----- 18.2 20.1 38.0 23.3 14.6 -28.1 13.2 -29.5 12.5 -27.9 13.8 -26.2
2025-06-13 11:19:24,721 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 11:19:24,721 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 11:19:24,721 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.388133
2025-06-13 11:19:24,722 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 11:19:24,722 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 11:19:24,722 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 11:19:24,722 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 11:19:24,722 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 11:19:24,722 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T11:19:13', tmtdew=10.57, humidity=47.66, cloud=0.0, wind=17.65, temperature=10.0, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T09:18:54.691', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 11:19:24,723 [DEBUG][       Thread-252994][   transport.py][1871] : EOF in transport thread
2025-06-13 11:19:24,806 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 11:19:24,815 [DEBUG][       Thread-252997][   transport.py][1871] : starting thread (client mode): 0x8636a2f0
2025-06-13 11:19:24,815 [DEBUG][       Thread-252997][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 11:19:24,833 [DEBUG][       Thread-252997][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 11:19:24,833 [ INFO][       Thread-252997][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 11:19:24,842 [DEBUG][       Thread-252997][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 11:19:24,842 [DEBUG][       Thread-252997][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 11:19:24,842 [DEBUG][       Thread-252997][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 11:19:24,842 [DEBUG][       Thread-252997][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:19:24,842 [DEBUG][       Thread-252997][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:19:24,842 [DEBUG][       Thread-252997][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:19:24,842 [DEBUG][       Thread-252997][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:19:24,842 [DEBUG][       Thread-252997][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 11:19:24,842 [DEBUG][       Thread-252997][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 11:19:24,843 [DEBUG][       Thread-252997][   transport.py][1871] : client lang: <none>
2025-06-13 11:19:24,843 [DEBUG][       Thread-252997][   transport.py][1871] : server lang: <none>
2025-06-13 11:19:24,843 [DEBUG][       Thread-252997][   transport.py][1871] : kex follows: False
2025-06-13 11:19:24,843 [DEBUG][       Thread-252997][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 11:19:24,843 [DEBUG][       Thread-252997][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 11:19:24,843 [DEBUG][       Thread-252997][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 11:19:24,843 [DEBUG][       Thread-252997][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 11:19:24,843 [DEBUG][       Thread-252997][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 11:19:24,843 [DEBUG][       Thread-252997][   transport.py][1871] : Compression: none
2025-06-13 11:19:24,843 [DEBUG][       Thread-252997][   transport.py][1871] : === End of kex handshake ===
2025-06-13 11:19:24,898 [DEBUG][       Thread-252997][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 11:19:24,898 [DEBUG][       Thread-252997][   transport.py][1871] : Switch to new keys ...
2025-06-13 11:19:24,898 [DEBUG][       Thread-252997][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 11:19:24,898 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 11:19:24,898 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 11:19:24,956 [DEBUG][       Thread-252997][   transport.py][1871] : userauth is OK
2025-06-13 11:19:24,956 [DEBUG][       Thread-252997][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 11:19:24,956 [DEBUG][       Thread-252997][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 11:19:24,956 [DEBUG][       Thread-252997][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 11:19:24,956 [DEBUG][       Thread-252997][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 11:19:24,970 [ INFO][       Thread-252997][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 11:19:24,970 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 11:19:24,970 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 11:19:26,064 [DEBUG][       Thread-252997][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 11:19:26,064 [DEBUG][       Thread-252997][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 11:19:26,113 [DEBUG][       Thread-252997][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 11:19:26,113 [DEBUG][       Thread-252997][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 11:19:26,125 [DEBUG][       Thread-252997][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 11:19:26,135 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 11:19:26,135 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 11:19:26,146 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 11:19:26,157 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 11:19:26,157 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 11:19:26,157 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 11:19:26,168 [DEBUG][       Thread-252997][   transport.py][1871] : EOF in transport thread
2025-06-13 11:19:29,890 [DEBUG][Thread-252999 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:19:33,792 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:19:33,794 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:19:36,164 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 11:19:36,164 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 11:19:36,164 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 11:19:36,165 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 11:19:36,668 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 11, 19, 13), 10.57, 47.66, 0.0, 17.65, 10.0, 0, 0, 0, 2, 0, 0),)
2025-06-13 11:19:36,668 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 11:19:13
2025-06-13 11:19:36,752 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 11:19:36,758 [DEBUG][       Thread-253000][   transport.py][1871] : starting thread (client mode): 0x84206e90
2025-06-13 11:19:36,758 [DEBUG][       Thread-253000][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 11:19:36,779 [DEBUG][       Thread-253000][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 11:19:36,779 [ INFO][       Thread-253000][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 11:19:36,783 [DEBUG][       Thread-253000][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 11:19:36,783 [DEBUG][       Thread-253000][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 11:19:36,783 [DEBUG][       Thread-253000][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 11:19:36,783 [DEBUG][       Thread-253000][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:19:36,783 [DEBUG][       Thread-253000][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:19:36,783 [DEBUG][       Thread-253000][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:19:36,783 [DEBUG][       Thread-253000][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:19:36,783 [DEBUG][       Thread-253000][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 11:19:36,783 [DEBUG][       Thread-253000][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 11:19:36,783 [DEBUG][       Thread-253000][   transport.py][1871] : client lang: <none>
2025-06-13 11:19:36,783 [DEBUG][       Thread-253000][   transport.py][1871] : server lang: <none>
2025-06-13 11:19:36,783 [DEBUG][       Thread-253000][   transport.py][1871] : kex follows: False
2025-06-13 11:19:36,783 [DEBUG][       Thread-253000][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 11:19:36,783 [DEBUG][       Thread-253000][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 11:19:36,783 [DEBUG][       Thread-253000][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 11:19:36,783 [DEBUG][       Thread-253000][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 11:19:36,783 [DEBUG][       Thread-253000][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 11:19:36,783 [DEBUG][       Thread-253000][   transport.py][1871] : Compression: none
2025-06-13 11:19:36,783 [DEBUG][       Thread-253000][   transport.py][1871] : === End of kex handshake ===
2025-06-13 11:19:36,799 [DEBUG][       Thread-253000][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 11:19:36,800 [DEBUG][       Thread-253000][   transport.py][1871] : Switch to new keys ...
2025-06-13 11:19:36,800 [DEBUG][       Thread-253000][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 11:19:36,800 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 11:19:36,800 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 11:19:36,800 [DEBUG][       Thread-253000][   transport.py][1871] : userauth is OK
2025-06-13 11:19:36,824 [ INFO][       Thread-253000][   transport.py][1871] : Authentication (password) successful!
2025-06-13 11:19:36,824 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 11:19:37,427 [DEBUG][       Thread-253000][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 11:19:37,427 [DEBUG][       Thread-253000][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 11:19:37,469 [DEBUG][       Thread-253000][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 11:19:37,469 [DEBUG][       Thread-253000][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 11:19:37,470 [DEBUG][       Thread-253000][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 11:19:37,482 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 11:19:37,483 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 11:19:37,484 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 11:19:37,485 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 11:19:37,488 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 11:19:37,489 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 11:19:37,489 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 11:19:37,490 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 11:19:37,490 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.388133 -999.00   +9.90  20.15     52   +0.50 1 1 1 1 1   887    0 10.50 41.47 ----- 18.2 20.1 38.0 23.3 14.6 -28.1 13.2 -29.5 12.5 -27.9 13.8 -26.2
2025-06-13 11:19:37,490 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 11:19:37,490 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 11:19:37,490 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.388133
2025-06-13 11:19:37,490 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 11:19:37,490 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 11:19:37,490 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 11:19:37,490 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 11:19:37,490 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 11:19:37,490 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T11:19:13', tmtdew=10.57, humidity=47.66, cloud=0.0, wind=17.65, temperature=10.0, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T09:18:54.691', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 11:19:37,491 [DEBUG][       Thread-253000][   transport.py][1871] : EOF in transport thread
2025-06-13 11:19:37,563 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 11:19:37,574 [DEBUG][       Thread-253003][   transport.py][1871] : starting thread (client mode): 0x868c85b0
2025-06-13 11:19:37,574 [DEBUG][       Thread-253003][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 11:19:37,589 [DEBUG][       Thread-253003][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 11:19:37,589 [ INFO][       Thread-253003][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 11:19:37,597 [DEBUG][       Thread-253003][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 11:19:37,597 [DEBUG][       Thread-253003][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 11:19:37,597 [DEBUG][       Thread-253003][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 11:19:37,597 [DEBUG][       Thread-253003][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:19:37,597 [DEBUG][       Thread-253003][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:19:37,597 [DEBUG][       Thread-253003][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:19:37,597 [DEBUG][       Thread-253003][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:19:37,597 [DEBUG][       Thread-253003][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 11:19:37,597 [DEBUG][       Thread-253003][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 11:19:37,597 [DEBUG][       Thread-253003][   transport.py][1871] : client lang: <none>
2025-06-13 11:19:37,597 [DEBUG][       Thread-253003][   transport.py][1871] : server lang: <none>
2025-06-13 11:19:37,597 [DEBUG][       Thread-253003][   transport.py][1871] : kex follows: False
2025-06-13 11:19:37,597 [DEBUG][       Thread-253003][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 11:19:37,597 [DEBUG][       Thread-253003][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 11:19:37,597 [DEBUG][       Thread-253003][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 11:19:37,597 [DEBUG][       Thread-253003][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 11:19:37,597 [DEBUG][       Thread-253003][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 11:19:37,597 [DEBUG][       Thread-253003][   transport.py][1871] : Compression: none
2025-06-13 11:19:37,597 [DEBUG][       Thread-253003][   transport.py][1871] : === End of kex handshake ===
2025-06-13 11:19:37,654 [DEBUG][       Thread-253003][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 11:19:37,654 [DEBUG][       Thread-253003][   transport.py][1871] : Switch to new keys ...
2025-06-13 11:19:37,654 [DEBUG][       Thread-253003][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 11:19:37,654 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 11:19:37,654 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 11:19:37,711 [DEBUG][       Thread-253003][   transport.py][1871] : userauth is OK
2025-06-13 11:19:37,711 [DEBUG][       Thread-253003][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 11:19:37,711 [DEBUG][       Thread-253003][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 11:19:37,711 [DEBUG][       Thread-253003][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 11:19:37,711 [DEBUG][       Thread-253003][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 11:19:37,725 [ INFO][       Thread-253003][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 11:19:37,726 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 11:19:37,726 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 11:19:38,759 [DEBUG][       Thread-253003][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 11:19:38,759 [DEBUG][       Thread-253003][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 11:19:38,808 [DEBUG][       Thread-253003][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 11:19:38,808 [DEBUG][       Thread-253003][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 11:19:38,817 [DEBUG][       Thread-253003][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 11:19:38,825 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 11:19:38,825 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 11:19:38,834 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 11:19:38,842 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 11:19:38,843 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 11:19:38,843 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 11:19:38,851 [DEBUG][       Thread-253003][   transport.py][1871] : EOF in transport thread
2025-06-13 11:19:38,934 [DEBUG][Thread-253005 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:19:47,957 [DEBUG][Thread-253006 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:19:48,847 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 11:19:48,847 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 11:19:48,847 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 11:19:48,851 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 11:19:49,325 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 11, 19, 45), 10.71, 47.16, 0.0, 18.09, 9.96, 0, 0, 0, 2, 0, 0),)
2025-06-13 11:19:49,325 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 11:19:45
2025-06-13 11:19:49,406 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 11:19:49,414 [DEBUG][       Thread-253007][   transport.py][1871] : starting thread (client mode): 0x863bd0f0
2025-06-13 11:19:49,414 [DEBUG][       Thread-253007][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 11:19:49,435 [DEBUG][       Thread-253007][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 11:19:49,435 [ INFO][       Thread-253007][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 11:19:49,437 [DEBUG][       Thread-253007][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 11:19:49,437 [DEBUG][       Thread-253007][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 11:19:49,437 [DEBUG][       Thread-253007][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 11:19:49,437 [DEBUG][       Thread-253007][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:19:49,437 [DEBUG][       Thread-253007][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:19:49,437 [DEBUG][       Thread-253007][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:19:49,437 [DEBUG][       Thread-253007][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:19:49,437 [DEBUG][       Thread-253007][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 11:19:49,437 [DEBUG][       Thread-253007][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 11:19:49,437 [DEBUG][       Thread-253007][   transport.py][1871] : client lang: <none>
2025-06-13 11:19:49,437 [DEBUG][       Thread-253007][   transport.py][1871] : server lang: <none>
2025-06-13 11:19:49,437 [DEBUG][       Thread-253007][   transport.py][1871] : kex follows: False
2025-06-13 11:19:49,437 [DEBUG][       Thread-253007][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 11:19:49,437 [DEBUG][       Thread-253007][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 11:19:49,437 [DEBUG][       Thread-253007][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 11:19:49,437 [DEBUG][       Thread-253007][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 11:19:49,437 [DEBUG][       Thread-253007][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 11:19:49,437 [DEBUG][       Thread-253007][   transport.py][1871] : Compression: none
2025-06-13 11:19:49,437 [DEBUG][       Thread-253007][   transport.py][1871] : === End of kex handshake ===
2025-06-13 11:19:49,455 [DEBUG][       Thread-253007][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 11:19:49,455 [DEBUG][       Thread-253007][   transport.py][1871] : Switch to new keys ...
2025-06-13 11:19:49,456 [DEBUG][       Thread-253007][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 11:19:49,456 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 11:19:49,456 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 11:19:49,457 [DEBUG][       Thread-253007][   transport.py][1871] : userauth is OK
2025-06-13 11:19:49,471 [ INFO][       Thread-253007][   transport.py][1871] : Authentication (password) successful!
2025-06-13 11:19:49,472 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 11:19:50,136 [DEBUG][       Thread-253007][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 11:19:50,136 [DEBUG][       Thread-253007][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 11:19:50,177 [DEBUG][       Thread-253007][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 11:19:50,177 [DEBUG][       Thread-253007][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 11:19:50,181 [DEBUG][       Thread-253007][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 11:19:50,194 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 11:19:50,194 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 11:19:50,196 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 11:19:50,198 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 11:19:50,204 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 11:19:50,206 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 11:19:50,206 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 11:19:50,207 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 11:19:50,207 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.388481 -999.00   +9.90  25.70     50   +0.20 1 1 1 1 1   887    0 10.30 39.49 ----- 25.4 25.7 46.8 27.2 14.6 -28.4 13.2 -30.1 12.4 -29.0 13.8 -26.7
2025-06-13 11:19:50,207 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 11:19:50,207 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 11:19:50,207 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.388481
2025-06-13 11:19:50,208 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 11:19:50,209 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 11:19:50,209 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 11:19:50,209 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 11:19:50,209 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 11:19:50,209 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T11:19:45', tmtdew=10.71, humidity=47.16, cloud=0.0, wind=18.09, temperature=9.96, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T09:19:24.758', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 11:19:50,210 [DEBUG][       Thread-253007][   transport.py][1871] : EOF in transport thread
2025-06-13 11:19:50,294 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 11:19:50,306 [DEBUG][       Thread-253010][   transport.py][1871] : starting thread (client mode): 0x867fd300
2025-06-13 11:19:50,306 [DEBUG][       Thread-253010][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 11:19:50,321 [DEBUG][       Thread-253010][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 11:19:50,321 [ INFO][       Thread-253010][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 11:19:50,329 [DEBUG][       Thread-253010][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 11:19:50,329 [DEBUG][       Thread-253010][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 11:19:50,329 [DEBUG][       Thread-253010][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 11:19:50,329 [DEBUG][       Thread-253010][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:19:50,329 [DEBUG][       Thread-253010][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:19:50,329 [DEBUG][       Thread-253010][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:19:50,329 [DEBUG][       Thread-253010][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:19:50,329 [DEBUG][       Thread-253010][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 11:19:50,329 [DEBUG][       Thread-253010][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 11:19:50,330 [DEBUG][       Thread-253010][   transport.py][1871] : client lang: <none>
2025-06-13 11:19:50,330 [DEBUG][       Thread-253010][   transport.py][1871] : server lang: <none>
2025-06-13 11:19:50,330 [DEBUG][       Thread-253010][   transport.py][1871] : kex follows: False
2025-06-13 11:19:50,330 [DEBUG][       Thread-253010][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 11:19:50,330 [DEBUG][       Thread-253010][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 11:19:50,330 [DEBUG][       Thread-253010][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 11:19:50,330 [DEBUG][       Thread-253010][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 11:19:50,330 [DEBUG][       Thread-253010][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 11:19:50,330 [DEBUG][       Thread-253010][   transport.py][1871] : Compression: none
2025-06-13 11:19:50,330 [DEBUG][       Thread-253010][   transport.py][1871] : === End of kex handshake ===
2025-06-13 11:19:50,388 [DEBUG][       Thread-253010][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 11:19:50,389 [DEBUG][       Thread-253010][   transport.py][1871] : Switch to new keys ...
2025-06-13 11:19:50,389 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 11:19:50,390 [DEBUG][       Thread-253010][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 11:19:50,391 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 11:19:50,448 [DEBUG][       Thread-253010][   transport.py][1871] : userauth is OK
2025-06-13 11:19:50,448 [DEBUG][       Thread-253010][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 11:19:50,448 [DEBUG][       Thread-253010][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 11:19:50,448 [DEBUG][       Thread-253010][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 11:19:50,448 [DEBUG][       Thread-253010][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 11:19:50,466 [ INFO][       Thread-253010][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 11:19:50,466 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 11:19:50,467 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 11:19:51,499 [DEBUG][       Thread-253010][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 11:19:51,499 [DEBUG][       Thread-253010][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 11:19:51,548 [DEBUG][       Thread-253010][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 11:19:51,548 [DEBUG][       Thread-253010][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 11:19:51,557 [DEBUG][       Thread-253010][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 11:19:51,567 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 11:19:51,567 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 11:19:51,576 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 11:19:51,586 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 11:19:51,586 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 11:19:51,586 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 11:19:51,596 [DEBUG][       Thread-253010][   transport.py][1871] : EOF in transport thread
2025-06-13 11:19:56,979 [DEBUG][Thread-253012 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:20:01,594 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 11:20:01,595 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 11:20:01,595 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 11:20:01,598 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 11:20:02,075 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 11, 19, 45), 10.71, 47.16, 0.0, 18.09, 9.96, 0, 0, 0, 2, 0, 0),)
2025-06-13 11:20:02,075 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 11:19:45
2025-06-13 11:20:02,156 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 11:20:02,162 [DEBUG][       Thread-253013][   transport.py][1871] : starting thread (client mode): 0x863bf220
2025-06-13 11:20:02,162 [DEBUG][       Thread-253013][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 11:20:02,180 [DEBUG][       Thread-253013][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 11:20:02,180 [ INFO][       Thread-253013][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 11:20:02,184 [DEBUG][       Thread-253013][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 11:20:02,184 [DEBUG][       Thread-253013][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 11:20:02,184 [DEBUG][       Thread-253013][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 11:20:02,184 [DEBUG][       Thread-253013][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:20:02,184 [DEBUG][       Thread-253013][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:20:02,184 [DEBUG][       Thread-253013][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:20:02,184 [DEBUG][       Thread-253013][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:20:02,184 [DEBUG][       Thread-253013][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 11:20:02,184 [DEBUG][       Thread-253013][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 11:20:02,184 [DEBUG][       Thread-253013][   transport.py][1871] : client lang: <none>
2025-06-13 11:20:02,184 [DEBUG][       Thread-253013][   transport.py][1871] : server lang: <none>
2025-06-13 11:20:02,184 [DEBUG][       Thread-253013][   transport.py][1871] : kex follows: False
2025-06-13 11:20:02,184 [DEBUG][       Thread-253013][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 11:20:02,184 [DEBUG][       Thread-253013][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 11:20:02,185 [DEBUG][       Thread-253013][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 11:20:02,185 [DEBUG][       Thread-253013][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 11:20:02,185 [DEBUG][       Thread-253013][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 11:20:02,185 [DEBUG][       Thread-253013][   transport.py][1871] : Compression: none
2025-06-13 11:20:02,185 [DEBUG][       Thread-253013][   transport.py][1871] : === End of kex handshake ===
2025-06-13 11:20:02,202 [DEBUG][       Thread-253013][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 11:20:02,202 [DEBUG][       Thread-253013][   transport.py][1871] : Switch to new keys ...
2025-06-13 11:20:02,203 [DEBUG][       Thread-253013][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 11:20:02,203 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 11:20:02,203 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 11:20:02,205 [DEBUG][       Thread-253013][   transport.py][1871] : userauth is OK
2025-06-13 11:20:02,229 [ INFO][       Thread-253013][   transport.py][1871] : Authentication (password) successful!
2025-06-13 11:20:02,229 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 11:20:02,901 [DEBUG][       Thread-253013][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 11:20:02,902 [DEBUG][       Thread-253013][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 11:20:02,945 [DEBUG][       Thread-253013][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 11:20:02,945 [DEBUG][       Thread-253013][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 11:20:02,956 [DEBUG][       Thread-253013][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 11:20:02,969 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 11:20:02,969 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 11:20:02,971 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 11:20:02,973 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 11:20:02,980 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 11:20:02,982 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 11:20:02,982 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 11:20:02,983 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 11:20:02,983 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.388481 -999.00   +9.90  25.70     50   +0.20 1 1 1 1 1   887    0 10.30 39.49 ----- 25.4 25.7 46.8 27.2 14.6 -28.4 13.2 -30.1 12.4 -29.0 13.8 -26.7
2025-06-13 11:20:02,983 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 11:20:02,983 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 11:20:02,983 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.388481
2025-06-13 11:20:02,984 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 11:20:02,984 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 11:20:02,984 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 11:20:02,984 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 11:20:02,984 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 11:20:02,985 [DEBUG][       Thread-253013][   transport.py][1871] : EOF in transport thread
2025-06-13 11:20:02,985 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T11:19:45', tmtdew=10.71, humidity=47.16, cloud=0.0, wind=18.09, temperature=9.96, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T09:19:24.758', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 11:20:03,072 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 11:20:03,082 [DEBUG][       Thread-253016][   transport.py][1871] : starting thread (client mode): 0x863a4c70
2025-06-13 11:20:03,082 [DEBUG][       Thread-253016][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 11:20:03,098 [DEBUG][       Thread-253016][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 11:20:03,098 [ INFO][       Thread-253016][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 11:20:03,106 [DEBUG][       Thread-253016][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 11:20:03,106 [DEBUG][       Thread-253016][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 11:20:03,106 [DEBUG][       Thread-253016][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 11:20:03,106 [DEBUG][       Thread-253016][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:20:03,106 [DEBUG][       Thread-253016][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:20:03,106 [DEBUG][       Thread-253016][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:20:03,106 [DEBUG][       Thread-253016][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:20:03,106 [DEBUG][       Thread-253016][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 11:20:03,106 [DEBUG][       Thread-253016][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 11:20:03,106 [DEBUG][       Thread-253016][   transport.py][1871] : client lang: <none>
2025-06-13 11:20:03,106 [DEBUG][       Thread-253016][   transport.py][1871] : server lang: <none>
2025-06-13 11:20:03,106 [DEBUG][       Thread-253016][   transport.py][1871] : kex follows: False
2025-06-13 11:20:03,106 [DEBUG][       Thread-253016][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 11:20:03,106 [DEBUG][       Thread-253016][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 11:20:03,106 [DEBUG][       Thread-253016][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 11:20:03,107 [DEBUG][       Thread-253016][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 11:20:03,107 [DEBUG][       Thread-253016][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 11:20:03,107 [DEBUG][       Thread-253016][   transport.py][1871] : Compression: none
2025-06-13 11:20:03,107 [DEBUG][       Thread-253016][   transport.py][1871] : === End of kex handshake ===
2025-06-13 11:20:03,164 [DEBUG][       Thread-253016][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 11:20:03,165 [DEBUG][       Thread-253016][   transport.py][1871] : Switch to new keys ...
2025-06-13 11:20:03,165 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 11:20:03,166 [DEBUG][       Thread-253016][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 11:20:03,167 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 11:20:03,228 [DEBUG][       Thread-253016][   transport.py][1871] : userauth is OK
2025-06-13 11:20:03,228 [DEBUG][       Thread-253016][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 11:20:03,228 [DEBUG][       Thread-253016][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 11:20:03,228 [DEBUG][       Thread-253016][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 11:20:03,228 [DEBUG][       Thread-253016][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 11:20:03,248 [ INFO][       Thread-253016][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 11:20:03,249 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 11:20:03,249 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 11:20:05,145 [DEBUG][       Thread-253016][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 11:20:05,146 [DEBUG][       Thread-253016][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 11:20:05,196 [DEBUG][       Thread-253016][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 11:20:05,197 [DEBUG][       Thread-253016][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 11:20:05,207 [DEBUG][       Thread-253016][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 11:20:05,217 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 11:20:05,217 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 11:20:05,227 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 11:20:05,236 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 11:20:05,236 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 11:20:05,237 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 11:20:05,247 [DEBUG][       Thread-253016][   transport.py][1871] : EOF in transport thread
2025-06-13 11:20:06,024 [DEBUG][Thread-253018 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:20:08,829 [DEBUG][Thread-253019 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:20:11,532 [DEBUG][Thread-253020 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:20:12,595 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:20:12,596 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:20:15,043 [DEBUG][Thread-253021 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:20:15,244 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 11:20:15,244 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 11:20:15,244 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 11:20:15,244 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 11:20:15,735 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 11, 19, 45), 10.71, 47.16, 0.0, 18.09, 9.96, 0, 0, 0, 2, 0, 0),)
2025-06-13 11:20:15,735 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 11:19:45
2025-06-13 11:20:15,820 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 11:20:15,825 [DEBUG][       Thread-253022][   transport.py][1871] : starting thread (client mode): 0x863bc280
2025-06-13 11:20:15,825 [DEBUG][       Thread-253022][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 11:20:15,846 [DEBUG][       Thread-253022][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 11:20:15,846 [ INFO][       Thread-253022][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 11:20:15,850 [DEBUG][       Thread-253022][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 11:20:15,850 [DEBUG][       Thread-253022][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 11:20:15,850 [DEBUG][       Thread-253022][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 11:20:15,850 [DEBUG][       Thread-253022][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:20:15,850 [DEBUG][       Thread-253022][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:20:15,850 [DEBUG][       Thread-253022][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:20:15,850 [DEBUG][       Thread-253022][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:20:15,850 [DEBUG][       Thread-253022][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 11:20:15,850 [DEBUG][       Thread-253022][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 11:20:15,850 [DEBUG][       Thread-253022][   transport.py][1871] : client lang: <none>
2025-06-13 11:20:15,850 [DEBUG][       Thread-253022][   transport.py][1871] : server lang: <none>
2025-06-13 11:20:15,850 [DEBUG][       Thread-253022][   transport.py][1871] : kex follows: False
2025-06-13 11:20:15,850 [DEBUG][       Thread-253022][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 11:20:15,850 [DEBUG][       Thread-253022][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 11:20:15,850 [DEBUG][       Thread-253022][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 11:20:15,850 [DEBUG][       Thread-253022][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 11:20:15,850 [DEBUG][       Thread-253022][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 11:20:15,850 [DEBUG][       Thread-253022][   transport.py][1871] : Compression: none
2025-06-13 11:20:15,850 [DEBUG][       Thread-253022][   transport.py][1871] : === End of kex handshake ===
2025-06-13 11:20:15,864 [DEBUG][       Thread-253022][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 11:20:15,864 [DEBUG][       Thread-253022][   transport.py][1871] : Switch to new keys ...
2025-06-13 11:20:15,865 [DEBUG][       Thread-253022][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 11:20:15,865 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 11:20:15,865 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 11:20:15,866 [DEBUG][       Thread-253022][   transport.py][1871] : userauth is OK
2025-06-13 11:20:15,878 [ INFO][       Thread-253022][   transport.py][1871] : Authentication (password) successful!
2025-06-13 11:20:15,878 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 11:20:22,865 [DEBUG][       Thread-253022][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 11:20:22,865 [DEBUG][       Thread-253022][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 11:20:22,909 [DEBUG][       Thread-253022][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 11:20:22,909 [DEBUG][       Thread-253022][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 11:20:22,915 [DEBUG][       Thread-253022][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 11:20:22,926 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 11:20:22,927 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 11:20:22,928 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 11:20:22,930 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 11:20:22,938 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 11:20:22,940 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 11:20:22,941 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 11:20:22,941 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 11:20:22,941 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.388481 -999.00   +9.90  25.70     50   +0.20 1 1 1 1 1   887    0 10.30 39.49 ----- 25.4 25.7 46.8 27.2 14.6 -28.4 13.2 -30.1 12.4 -29.0 13.8 -26.7
2025-06-13 11:20:22,941 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 11:20:22,942 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 11:20:22,942 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.388481
2025-06-13 11:20:22,942 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 11:20:22,942 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 11:20:22,943 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 11:20:22,943 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 11:20:22,943 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 11:20:22,943 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T11:19:45', tmtdew=10.71, humidity=47.16, cloud=0.0, wind=18.09, temperature=9.96, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T09:19:24.758', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 11:20:22,943 [DEBUG][       Thread-253022][   transport.py][1871] : EOF in transport thread
2025-06-13 11:20:23,032 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 11:20:23,043 [DEBUG][       Thread-253025][   transport.py][1871] : starting thread (client mode): 0x867ffc10
2025-06-13 11:20:23,043 [DEBUG][       Thread-253025][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 11:20:23,060 [DEBUG][       Thread-253025][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 11:20:23,060 [ INFO][       Thread-253025][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 11:20:23,069 [DEBUG][       Thread-253025][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 11:20:23,069 [DEBUG][       Thread-253025][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 11:20:23,069 [DEBUG][       Thread-253025][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 11:20:23,069 [DEBUG][       Thread-253025][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:20:23,069 [DEBUG][       Thread-253025][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:20:23,069 [DEBUG][       Thread-253025][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:20:23,069 [DEBUG][       Thread-253025][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:20:23,069 [DEBUG][       Thread-253025][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 11:20:23,070 [DEBUG][       Thread-253025][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 11:20:23,070 [DEBUG][       Thread-253025][   transport.py][1871] : client lang: <none>
2025-06-13 11:20:23,070 [DEBUG][       Thread-253025][   transport.py][1871] : server lang: <none>
2025-06-13 11:20:23,070 [DEBUG][       Thread-253025][   transport.py][1871] : kex follows: False
2025-06-13 11:20:23,070 [DEBUG][       Thread-253025][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 11:20:23,070 [DEBUG][       Thread-253025][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 11:20:23,070 [DEBUG][       Thread-253025][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 11:20:23,070 [DEBUG][       Thread-253025][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 11:20:23,070 [DEBUG][       Thread-253025][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 11:20:23,070 [DEBUG][       Thread-253025][   transport.py][1871] : Compression: none
2025-06-13 11:20:23,070 [DEBUG][       Thread-253025][   transport.py][1871] : === End of kex handshake ===
2025-06-13 11:20:23,127 [DEBUG][       Thread-253025][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 11:20:23,128 [DEBUG][       Thread-253025][   transport.py][1871] : Switch to new keys ...
2025-06-13 11:20:23,129 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 11:20:23,129 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 11:20:23,130 [DEBUG][       Thread-253025][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 11:20:23,186 [DEBUG][       Thread-253025][   transport.py][1871] : userauth is OK
2025-06-13 11:20:23,186 [DEBUG][       Thread-253025][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 11:20:23,186 [DEBUG][       Thread-253025][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 11:20:23,186 [DEBUG][       Thread-253025][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 11:20:23,186 [DEBUG][       Thread-253025][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 11:20:23,206 [ INFO][       Thread-253025][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 11:20:23,206 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 11:20:23,207 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 11:20:24,060 [DEBUG][Thread-253027 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:20:24,215 [DEBUG][       Thread-253025][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 11:20:24,216 [DEBUG][       Thread-253025][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 11:20:24,264 [DEBUG][       Thread-253025][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 11:20:24,264 [DEBUG][       Thread-253025][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 11:20:24,274 [DEBUG][       Thread-253025][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 11:20:24,283 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 11:20:24,283 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 11:20:24,292 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 11:20:24,301 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 11:20:24,302 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 11:20:24,302 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 11:20:24,310 [DEBUG][       Thread-253025][   transport.py][1871] : EOF in transport thread
2025-06-13 11:20:33,081 [DEBUG][Thread-253028 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:20:33,931 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:20:33,932 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:20:34,310 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 11:20:34,311 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 11:20:34,311 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 11:20:34,314 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 11:20:34,778 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 11, 20, 17), 10.94, 46.76, 0.0, 24.47, 10.02, 0, 0, 0, 2, 0, 0),)
2025-06-13 11:20:34,778 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 11:20:17
2025-06-13 11:20:34,859 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 11:20:34,864 [DEBUG][       Thread-253029][   transport.py][1871] : starting thread (client mode): 0x863a55d0
2025-06-13 11:20:34,864 [DEBUG][       Thread-253029][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 11:20:34,886 [DEBUG][       Thread-253029][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 11:20:34,886 [ INFO][       Thread-253029][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 11:20:34,888 [DEBUG][       Thread-253029][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 11:20:34,888 [DEBUG][       Thread-253029][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 11:20:34,888 [DEBUG][       Thread-253029][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 11:20:34,888 [DEBUG][       Thread-253029][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:20:34,888 [DEBUG][       Thread-253029][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:20:34,888 [DEBUG][       Thread-253029][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:20:34,888 [DEBUG][       Thread-253029][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:20:34,888 [DEBUG][       Thread-253029][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 11:20:34,888 [DEBUG][       Thread-253029][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 11:20:34,888 [DEBUG][       Thread-253029][   transport.py][1871] : client lang: <none>
2025-06-13 11:20:34,888 [DEBUG][       Thread-253029][   transport.py][1871] : server lang: <none>
2025-06-13 11:20:34,888 [DEBUG][       Thread-253029][   transport.py][1871] : kex follows: False
2025-06-13 11:20:34,888 [DEBUG][       Thread-253029][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 11:20:34,888 [DEBUG][       Thread-253029][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 11:20:34,889 [DEBUG][       Thread-253029][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 11:20:34,889 [DEBUG][       Thread-253029][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 11:20:34,889 [DEBUG][       Thread-253029][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 11:20:34,889 [DEBUG][       Thread-253029][   transport.py][1871] : Compression: none
2025-06-13 11:20:34,889 [DEBUG][       Thread-253029][   transport.py][1871] : === End of kex handshake ===
2025-06-13 11:20:34,906 [DEBUG][       Thread-253029][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 11:20:34,906 [DEBUG][       Thread-253029][   transport.py][1871] : Switch to new keys ...
2025-06-13 11:20:34,907 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 11:20:34,907 [DEBUG][       Thread-253029][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 11:20:34,907 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 11:20:34,909 [DEBUG][       Thread-253029][   transport.py][1871] : userauth is OK
2025-06-13 11:20:34,933 [ INFO][       Thread-253029][   transport.py][1871] : Authentication (password) successful!
2025-06-13 11:20:34,934 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 11:20:35,496 [DEBUG][       Thread-253029][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 11:20:35,496 [DEBUG][       Thread-253029][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 11:20:35,537 [DEBUG][       Thread-253029][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 11:20:35,537 [DEBUG][       Thread-253029][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 11:20:35,539 [DEBUG][       Thread-253029][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 11:20:35,551 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 11:20:35,551 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 11:20:35,553 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 11:20:35,555 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 11:20:35,559 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 11:20:35,561 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 11:20:35,562 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 11:20:35,562 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 11:20:35,562 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.388828 -999.00   +9.80  22.37     51   +0.30 1 1 1 1 1   887    0 10.21 45.50 ----- 15.8 22.4 32.8 28.3 14.6 -28.3 13.2 -30.4 12.4 -28.4 13.8 -26.5
2025-06-13 11:20:35,563 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 11:20:35,563 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 11:20:35,563 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.388828
2025-06-13 11:20:35,563 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 11:20:35,564 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 11:20:35,564 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 11:20:35,564 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 11:20:35,564 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 11:20:35,564 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T11:20:17', tmtdew=10.94, humidity=46.76, cloud=0.0, wind=24.47, temperature=10.02, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T09:19:54.739', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 11:20:35,565 [DEBUG][       Thread-253029][   transport.py][1871] : EOF in transport thread
2025-06-13 11:20:35,647 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 11:20:35,657 [DEBUG][       Thread-253032][   transport.py][1871] : starting thread (client mode): 0x868c85b0
2025-06-13 11:20:35,657 [DEBUG][       Thread-253032][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 11:20:35,673 [DEBUG][       Thread-253032][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 11:20:35,673 [ INFO][       Thread-253032][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 11:20:35,681 [DEBUG][       Thread-253032][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 11:20:35,681 [DEBUG][       Thread-253032][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 11:20:35,682 [DEBUG][       Thread-253032][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 11:20:35,682 [DEBUG][       Thread-253032][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:20:35,682 [DEBUG][       Thread-253032][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:20:35,682 [DEBUG][       Thread-253032][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:20:35,682 [DEBUG][       Thread-253032][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:20:35,682 [DEBUG][       Thread-253032][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 11:20:35,682 [DEBUG][       Thread-253032][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 11:20:35,682 [DEBUG][       Thread-253032][   transport.py][1871] : client lang: <none>
2025-06-13 11:20:35,682 [DEBUG][       Thread-253032][   transport.py][1871] : server lang: <none>
2025-06-13 11:20:35,682 [DEBUG][       Thread-253032][   transport.py][1871] : kex follows: False
2025-06-13 11:20:35,682 [DEBUG][       Thread-253032][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 11:20:35,682 [DEBUG][       Thread-253032][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 11:20:35,682 [DEBUG][       Thread-253032][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 11:20:35,682 [DEBUG][       Thread-253032][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 11:20:35,682 [DEBUG][       Thread-253032][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 11:20:35,682 [DEBUG][       Thread-253032][   transport.py][1871] : Compression: none
2025-06-13 11:20:35,682 [DEBUG][       Thread-253032][   transport.py][1871] : === End of kex handshake ===
2025-06-13 11:20:35,740 [DEBUG][       Thread-253032][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 11:20:35,740 [DEBUG][       Thread-253032][   transport.py][1871] : Switch to new keys ...
2025-06-13 11:20:35,741 [DEBUG][       Thread-253032][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 11:20:35,741 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 11:20:35,742 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 11:20:35,797 [DEBUG][       Thread-253032][   transport.py][1871] : userauth is OK
2025-06-13 11:20:35,797 [DEBUG][       Thread-253032][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 11:20:35,797 [DEBUG][       Thread-253032][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 11:20:35,798 [DEBUG][       Thread-253032][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 11:20:35,798 [DEBUG][       Thread-253032][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 11:20:35,818 [ INFO][       Thread-253032][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 11:20:35,819 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 11:20:35,819 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 11:20:36,823 [DEBUG][       Thread-253032][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 11:20:36,823 [DEBUG][       Thread-253032][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 11:20:36,874 [DEBUG][       Thread-253032][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 11:20:36,874 [DEBUG][       Thread-253032][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 11:20:36,885 [DEBUG][       Thread-253032][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 11:20:36,896 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 11:20:36,897 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 11:20:36,906 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 11:20:36,917 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 11:20:36,917 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 11:20:36,918 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 11:20:36,926 [DEBUG][       Thread-253032][   transport.py][1871] : EOF in transport thread
2025-06-13 11:20:42,104 [DEBUG][Thread-253034 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:20:46,928 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 11:20:46,928 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 11:20:46,928 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 11:20:46,929 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 11:20:47,390 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 11, 20, 17), 10.94, 46.76, 0.0, 24.47, 10.02, 0, 0, 0, 2, 0, 0),)
2025-06-13 11:20:47,390 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 11:20:17
2025-06-13 11:20:47,472 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 11:20:47,478 [DEBUG][       Thread-253035][   transport.py][1871] : starting thread (client mode): 0x863be2c0
2025-06-13 11:20:47,478 [DEBUG][       Thread-253035][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 11:20:47,499 [DEBUG][       Thread-253035][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 11:20:47,499 [ INFO][       Thread-253035][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 11:20:47,503 [DEBUG][       Thread-253035][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 11:20:47,503 [DEBUG][       Thread-253035][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 11:20:47,503 [DEBUG][       Thread-253035][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 11:20:47,503 [DEBUG][       Thread-253035][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:20:47,503 [DEBUG][       Thread-253035][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:20:47,503 [DEBUG][       Thread-253035][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:20:47,503 [DEBUG][       Thread-253035][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:20:47,503 [DEBUG][       Thread-253035][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 11:20:47,503 [DEBUG][       Thread-253035][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 11:20:47,503 [DEBUG][       Thread-253035][   transport.py][1871] : client lang: <none>
2025-06-13 11:20:47,503 [DEBUG][       Thread-253035][   transport.py][1871] : server lang: <none>
2025-06-13 11:20:47,503 [DEBUG][       Thread-253035][   transport.py][1871] : kex follows: False
2025-06-13 11:20:47,503 [DEBUG][       Thread-253035][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 11:20:47,503 [DEBUG][       Thread-253035][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 11:20:47,503 [DEBUG][       Thread-253035][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 11:20:47,503 [DEBUG][       Thread-253035][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 11:20:47,503 [DEBUG][       Thread-253035][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 11:20:47,503 [DEBUG][       Thread-253035][   transport.py][1871] : Compression: none
2025-06-13 11:20:47,503 [DEBUG][       Thread-253035][   transport.py][1871] : === End of kex handshake ===
2025-06-13 11:20:47,517 [DEBUG][       Thread-253035][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 11:20:47,517 [DEBUG][       Thread-253035][   transport.py][1871] : Switch to new keys ...
2025-06-13 11:20:47,517 [DEBUG][       Thread-253035][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 11:20:47,517 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 11:20:47,518 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 11:20:47,518 [DEBUG][       Thread-253035][   transport.py][1871] : userauth is OK
2025-06-13 11:20:47,543 [ INFO][       Thread-253035][   transport.py][1871] : Authentication (password) successful!
2025-06-13 11:20:47,544 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 11:20:48,211 [DEBUG][       Thread-253035][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 11:20:48,212 [DEBUG][       Thread-253035][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 11:20:48,253 [DEBUG][       Thread-253035][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 11:20:48,253 [DEBUG][       Thread-253035][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 11:20:48,256 [DEBUG][       Thread-253035][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 11:20:48,269 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 11:20:48,269 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 11:20:48,271 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 11:20:48,273 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 11:20:48,279 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 11:20:48,281 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 11:20:48,282 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 11:20:48,282 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 11:20:48,282 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.388828 -999.00   +9.80  22.37     51   +0.30 1 1 1 1 1   887    0 10.21 45.50 ----- 15.8 22.4 32.8 28.3 14.6 -28.3 13.2 -30.4 12.4 -28.4 13.8 -26.5
2025-06-13 11:20:48,283 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 11:20:48,283 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 11:20:48,283 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.388828
2025-06-13 11:20:48,283 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 11:20:48,284 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 11:20:48,284 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 11:20:48,284 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 11:20:48,284 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 11:20:48,284 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T11:20:17', tmtdew=10.94, humidity=46.76, cloud=0.0, wind=24.47, temperature=10.02, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T09:19:54.739', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 11:20:48,284 [DEBUG][       Thread-253035][   transport.py][1871] : EOF in transport thread
2025-06-13 11:20:48,379 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 11:20:48,391 [DEBUG][       Thread-253038][   transport.py][1871] : starting thread (client mode): 0x84207a60
2025-06-13 11:20:48,391 [DEBUG][       Thread-253038][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 11:20:48,406 [DEBUG][       Thread-253038][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 11:20:48,407 [ INFO][       Thread-253038][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 11:20:48,414 [DEBUG][       Thread-253038][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 11:20:48,414 [DEBUG][       Thread-253038][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 11:20:48,414 [DEBUG][       Thread-253038][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 11:20:48,414 [DEBUG][       Thread-253038][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:20:48,414 [DEBUG][       Thread-253038][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:20:48,414 [DEBUG][       Thread-253038][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:20:48,414 [DEBUG][       Thread-253038][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:20:48,414 [DEBUG][       Thread-253038][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 11:20:48,415 [DEBUG][       Thread-253038][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 11:20:48,415 [DEBUG][       Thread-253038][   transport.py][1871] : client lang: <none>
2025-06-13 11:20:48,415 [DEBUG][       Thread-253038][   transport.py][1871] : server lang: <none>
2025-06-13 11:20:48,415 [DEBUG][       Thread-253038][   transport.py][1871] : kex follows: False
2025-06-13 11:20:48,415 [DEBUG][       Thread-253038][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 11:20:48,415 [DEBUG][       Thread-253038][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 11:20:48,415 [DEBUG][       Thread-253038][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 11:20:48,415 [DEBUG][       Thread-253038][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 11:20:48,415 [DEBUG][       Thread-253038][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 11:20:48,415 [DEBUG][       Thread-253038][   transport.py][1871] : Compression: none
2025-06-13 11:20:48,415 [DEBUG][       Thread-253038][   transport.py][1871] : === End of kex handshake ===
2025-06-13 11:20:48,472 [DEBUG][       Thread-253038][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 11:20:48,472 [DEBUG][       Thread-253038][   transport.py][1871] : Switch to new keys ...
2025-06-13 11:20:48,473 [DEBUG][       Thread-253038][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 11:20:48,473 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 11:20:48,474 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 11:20:48,528 [DEBUG][       Thread-253038][   transport.py][1871] : userauth is OK
2025-06-13 11:20:48,528 [DEBUG][       Thread-253038][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 11:20:48,529 [DEBUG][       Thread-253038][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 11:20:48,529 [DEBUG][       Thread-253038][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 11:20:48,529 [DEBUG][       Thread-253038][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 11:20:48,551 [ INFO][       Thread-253038][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 11:20:48,552 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 11:20:48,552 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 11:20:49,589 [DEBUG][       Thread-253038][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 11:20:49,589 [DEBUG][       Thread-253038][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 11:20:49,640 [DEBUG][       Thread-253038][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 11:20:49,640 [DEBUG][       Thread-253038][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 11:20:49,649 [DEBUG][       Thread-253038][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 11:20:49,657 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 11:20:49,658 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 11:20:49,666 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 11:20:49,675 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 11:20:49,675 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 11:20:49,675 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 11:20:49,683 [DEBUG][       Thread-253038][   transport.py][1871] : EOF in transport thread
2025-06-13 11:20:51,136 [DEBUG][Thread-253040 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:20:59,682 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 11:20:59,682 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 11:20:59,682 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 11:20:59,685 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 11:21:00,149 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 11, 20, 49), 10.78, 47.27, 0.0, 20.86, 9.99, 0, 0, 0, 2, 0, 0),)
2025-06-13 11:21:00,149 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 11:20:49
2025-06-13 11:21:00,153 [DEBUG][Thread-253041 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:21:00,231 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 11:21:00,235 [DEBUG][       Thread-253042][   transport.py][1871] : starting thread (client mode): 0x84204d00
2025-06-13 11:21:00,235 [DEBUG][       Thread-253042][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 11:21:00,251 [DEBUG][       Thread-253042][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 11:21:00,251 [ INFO][       Thread-253042][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 11:21:00,255 [DEBUG][       Thread-253042][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 11:21:00,255 [DEBUG][       Thread-253042][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 11:21:00,255 [DEBUG][       Thread-253042][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 11:21:00,255 [DEBUG][       Thread-253042][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:21:00,255 [DEBUG][       Thread-253042][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:21:00,255 [DEBUG][       Thread-253042][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:21:00,255 [DEBUG][       Thread-253042][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:21:00,255 [DEBUG][       Thread-253042][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 11:21:00,255 [DEBUG][       Thread-253042][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 11:21:00,255 [DEBUG][       Thread-253042][   transport.py][1871] : client lang: <none>
2025-06-13 11:21:00,255 [DEBUG][       Thread-253042][   transport.py][1871] : server lang: <none>
2025-06-13 11:21:00,255 [DEBUG][       Thread-253042][   transport.py][1871] : kex follows: False
2025-06-13 11:21:00,255 [DEBUG][       Thread-253042][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 11:21:00,255 [DEBUG][       Thread-253042][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 11:21:00,255 [DEBUG][       Thread-253042][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 11:21:00,255 [DEBUG][       Thread-253042][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 11:21:00,255 [DEBUG][       Thread-253042][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 11:21:00,255 [DEBUG][       Thread-253042][   transport.py][1871] : Compression: none
2025-06-13 11:21:00,255 [DEBUG][       Thread-253042][   transport.py][1871] : === End of kex handshake ===
2025-06-13 11:21:00,272 [DEBUG][       Thread-253042][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 11:21:00,273 [DEBUG][       Thread-253042][   transport.py][1871] : Switch to new keys ...
2025-06-13 11:21:00,273 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 11:21:00,273 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 11:21:00,274 [DEBUG][       Thread-253042][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 11:21:00,275 [DEBUG][       Thread-253042][   transport.py][1871] : userauth is OK
2025-06-13 11:21:00,299 [ INFO][       Thread-253042][   transport.py][1871] : Authentication (password) successful!
2025-06-13 11:21:00,299 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 11:21:00,892 [DEBUG][       Thread-253042][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 11:21:00,893 [DEBUG][       Thread-253042][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 11:21:00,937 [DEBUG][       Thread-253042][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 11:21:00,937 [DEBUG][       Thread-253042][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 11:21:00,940 [DEBUG][       Thread-253042][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 11:21:00,950 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 11:21:00,950 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 11:21:00,952 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 11:21:00,954 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 11:21:00,959 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 11:21:00,961 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 11:21:00,961 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 11:21:00,962 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 11:21:00,962 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.389175 -999.00   +9.80  25.16     51   +0.30 1 1 1 1 1   887    0 10.63 43.55 ----- 22.6 25.2 38.2 27.7 14.6 -28.2 13.2 -29.2 12.5 -27.5 13.8 -26.4
2025-06-13 11:21:00,962 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 11:21:00,962 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 11:21:00,962 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.389175
2025-06-13 11:21:00,963 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 11:21:00,963 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 11:21:00,963 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 11:21:00,963 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 11:21:00,963 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 11:21:00,963 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T11:20:49', tmtdew=10.78, humidity=47.27, cloud=0.0, wind=20.86, temperature=9.99, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T09:20:24.720', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 11:21:00,964 [DEBUG][       Thread-253042][   transport.py][1871] : EOF in transport thread
2025-06-13 11:21:01,047 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 11:21:01,063 [DEBUG][       Thread-253045][   transport.py][1871] : starting thread (client mode): 0x863eec20
2025-06-13 11:21:01,063 [DEBUG][       Thread-253045][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 11:21:01,083 [DEBUG][       Thread-253045][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 11:21:01,083 [ INFO][       Thread-253045][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 11:21:01,093 [DEBUG][       Thread-253045][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 11:21:01,093 [DEBUG][       Thread-253045][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 11:21:01,093 [DEBUG][       Thread-253045][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 11:21:01,093 [DEBUG][       Thread-253045][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:21:01,093 [DEBUG][       Thread-253045][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:21:01,093 [DEBUG][       Thread-253045][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:21:01,094 [DEBUG][       Thread-253045][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:21:01,094 [DEBUG][       Thread-253045][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 11:21:01,094 [DEBUG][       Thread-253045][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 11:21:01,094 [DEBUG][       Thread-253045][   transport.py][1871] : client lang: <none>
2025-06-13 11:21:01,094 [DEBUG][       Thread-253045][   transport.py][1871] : server lang: <none>
2025-06-13 11:21:01,094 [DEBUG][       Thread-253045][   transport.py][1871] : kex follows: False
2025-06-13 11:21:01,094 [DEBUG][       Thread-253045][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 11:21:01,094 [DEBUG][       Thread-253045][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 11:21:01,094 [DEBUG][       Thread-253045][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 11:21:01,094 [DEBUG][       Thread-253045][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 11:21:01,094 [DEBUG][       Thread-253045][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 11:21:01,094 [DEBUG][       Thread-253045][   transport.py][1871] : Compression: none
2025-06-13 11:21:01,094 [DEBUG][       Thread-253045][   transport.py][1871] : === End of kex handshake ===
2025-06-13 11:21:01,157 [DEBUG][       Thread-253045][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 11:21:01,158 [DEBUG][       Thread-253045][   transport.py][1871] : Switch to new keys ...
2025-06-13 11:21:01,158 [DEBUG][       Thread-253045][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 11:21:01,159 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 11:21:01,159 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 11:21:01,227 [DEBUG][       Thread-253045][   transport.py][1871] : userauth is OK
2025-06-13 11:21:01,227 [DEBUG][       Thread-253045][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 11:21:01,227 [DEBUG][       Thread-253045][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 11:21:01,227 [DEBUG][       Thread-253045][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 11:21:01,227 [DEBUG][       Thread-253045][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 11:21:01,246 [ INFO][       Thread-253045][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 11:21:01,247 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 11:21:01,247 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 11:21:02,297 [DEBUG][       Thread-253045][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 11:21:02,297 [DEBUG][       Thread-253045][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 11:21:02,355 [DEBUG][       Thread-253045][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 11:21:02,355 [DEBUG][       Thread-253045][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 11:21:02,367 [DEBUG][       Thread-253045][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 11:21:02,382 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 11:21:02,382 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 11:21:02,394 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 11:21:02,408 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 11:21:02,408 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 11:21:02,409 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 11:21:02,419 [DEBUG][       Thread-253045][   transport.py][1871] : EOF in transport thread
2025-06-13 11:21:08,874 [DEBUG][Thread-253047 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:21:09,174 [DEBUG][Thread-253048 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:21:12,419 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 11:21:12,420 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 11:21:12,420 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 11:21:12,423 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 11:21:12,669 [DEBUG][Thread-253049 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:21:12,897 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 11, 20, 49), 10.78, 47.27, 0.0, 20.86, 9.99, 0, 0, 0, 2, 0, 0),)
2025-06-13 11:21:12,897 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 11:20:49
2025-06-13 11:21:12,979 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 11:21:12,986 [DEBUG][       Thread-253050][   transport.py][1871] : starting thread (client mode): 0x842076a0
2025-06-13 11:21:12,986 [DEBUG][       Thread-253050][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 11:21:13,004 [DEBUG][       Thread-253050][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 11:21:13,004 [ INFO][       Thread-253050][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 11:21:13,006 [DEBUG][       Thread-253050][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 11:21:13,006 [DEBUG][       Thread-253050][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 11:21:13,006 [DEBUG][       Thread-253050][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 11:21:13,006 [DEBUG][       Thread-253050][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:21:13,006 [DEBUG][       Thread-253050][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:21:13,006 [DEBUG][       Thread-253050][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:21:13,006 [DEBUG][       Thread-253050][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:21:13,006 [DEBUG][       Thread-253050][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 11:21:13,006 [DEBUG][       Thread-253050][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 11:21:13,006 [DEBUG][       Thread-253050][   transport.py][1871] : client lang: <none>
2025-06-13 11:21:13,006 [DEBUG][       Thread-253050][   transport.py][1871] : server lang: <none>
2025-06-13 11:21:13,006 [DEBUG][       Thread-253050][   transport.py][1871] : kex follows: False
2025-06-13 11:21:13,006 [DEBUG][       Thread-253050][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 11:21:13,006 [DEBUG][       Thread-253050][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 11:21:13,006 [DEBUG][       Thread-253050][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 11:21:13,006 [DEBUG][       Thread-253050][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 11:21:13,006 [DEBUG][       Thread-253050][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 11:21:13,006 [DEBUG][       Thread-253050][   transport.py][1871] : Compression: none
2025-06-13 11:21:13,006 [DEBUG][       Thread-253050][   transport.py][1871] : === End of kex handshake ===
2025-06-13 11:21:13,023 [DEBUG][       Thread-253050][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 11:21:13,024 [DEBUG][       Thread-253050][   transport.py][1871] : Switch to new keys ...
2025-06-13 11:21:13,024 [DEBUG][       Thread-253050][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 11:21:13,024 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 11:21:13,025 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 11:21:13,026 [DEBUG][       Thread-253050][   transport.py][1871] : userauth is OK
2025-06-13 11:21:13,050 [ INFO][       Thread-253050][   transport.py][1871] : Authentication (password) successful!
2025-06-13 11:21:13,051 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 11:21:13,657 [DEBUG][       Thread-253050][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 11:21:13,657 [DEBUG][       Thread-253050][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 11:21:13,702 [DEBUG][       Thread-253050][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 11:21:13,702 [DEBUG][       Thread-253050][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 11:21:13,705 [DEBUG][       Thread-253050][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 11:21:13,716 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 11:21:13,717 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 11:21:13,718 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 11:21:13,720 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 11:21:13,726 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 11:21:13,728 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 11:21:13,728 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 11:21:13,729 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 11:21:13,729 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.389175 -999.00   +9.80  25.16     51   +0.30 1 1 1 1 1   887    0 10.63 43.55 ----- 22.6 25.2 38.2 27.7 14.6 -28.2 13.2 -29.2 12.5 -27.5 13.8 -26.4
2025-06-13 11:21:13,729 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 11:21:13,729 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 11:21:13,729 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.389175
2025-06-13 11:21:13,730 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 11:21:13,730 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 11:21:13,730 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 11:21:13,730 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 11:21:13,731 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:21:13,731 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 11:21:13,731 [DEBUG][       Thread-253050][   transport.py][1871] : EOF in transport thread
2025-06-13 11:21:13,732 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T11:20:49', tmtdew=10.78, humidity=47.27, cloud=0.0, wind=20.86, temperature=9.99, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T09:20:24.720', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 11:21:13,732 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:21:13,811 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 11:21:13,822 [DEBUG][       Thread-253053][   transport.py][1871] : starting thread (client mode): 0x863ef670
2025-06-13 11:21:13,822 [DEBUG][       Thread-253053][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 11:21:13,837 [DEBUG][       Thread-253053][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 11:21:13,837 [ INFO][       Thread-253053][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 11:21:13,845 [DEBUG][       Thread-253053][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 11:21:13,845 [DEBUG][       Thread-253053][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 11:21:13,845 [DEBUG][       Thread-253053][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 11:21:13,845 [DEBUG][       Thread-253053][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:21:13,845 [DEBUG][       Thread-253053][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:21:13,845 [DEBUG][       Thread-253053][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:21:13,846 [DEBUG][       Thread-253053][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:21:13,846 [DEBUG][       Thread-253053][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 11:21:13,846 [DEBUG][       Thread-253053][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 11:21:13,846 [DEBUG][       Thread-253053][   transport.py][1871] : client lang: <none>
2025-06-13 11:21:13,846 [DEBUG][       Thread-253053][   transport.py][1871] : server lang: <none>
2025-06-13 11:21:13,846 [DEBUG][       Thread-253053][   transport.py][1871] : kex follows: False
2025-06-13 11:21:13,846 [DEBUG][       Thread-253053][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 11:21:13,846 [DEBUG][       Thread-253053][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 11:21:13,846 [DEBUG][       Thread-253053][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 11:21:13,846 [DEBUG][       Thread-253053][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 11:21:13,846 [DEBUG][       Thread-253053][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 11:21:13,846 [DEBUG][       Thread-253053][   transport.py][1871] : Compression: none
2025-06-13 11:21:13,846 [DEBUG][       Thread-253053][   transport.py][1871] : === End of kex handshake ===
2025-06-13 11:21:13,908 [DEBUG][       Thread-253053][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 11:21:13,909 [DEBUG][       Thread-253053][   transport.py][1871] : Switch to new keys ...
2025-06-13 11:21:13,909 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 11:21:13,910 [DEBUG][       Thread-253053][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 11:21:13,911 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 11:21:13,968 [DEBUG][       Thread-253053][   transport.py][1871] : userauth is OK
2025-06-13 11:21:13,968 [DEBUG][       Thread-253053][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 11:21:13,968 [DEBUG][       Thread-253053][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 11:21:13,968 [DEBUG][       Thread-253053][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 11:21:13,969 [DEBUG][       Thread-253053][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 11:21:13,988 [ INFO][       Thread-253053][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 11:21:13,988 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 11:21:13,989 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 11:21:15,040 [DEBUG][       Thread-253053][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 11:21:15,040 [DEBUG][       Thread-253053][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 11:21:15,088 [DEBUG][       Thread-253053][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 11:21:15,088 [DEBUG][       Thread-253053][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 11:21:15,098 [DEBUG][       Thread-253053][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 11:21:15,107 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 11:21:15,108 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 11:21:15,117 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 11:21:15,126 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 11:21:15,126 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 11:21:15,127 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 11:21:15,135 [DEBUG][       Thread-253053][   transport.py][1871] : EOF in transport thread
2025-06-13 11:21:18,209 [DEBUG][Thread-253055 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:21:25,137 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 11:21:25,138 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 11:21:25,138 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 11:21:25,141 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 11:21:25,607 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 11, 21, 20), 10.62, 47.7, 0.0, 21.74, 10.02, 0, 0, 0, 2, 0, 0),)
2025-06-13 11:21:25,607 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 11:21:20
2025-06-13 11:21:25,689 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 11:21:25,693 [DEBUG][       Thread-253056][   transport.py][1871] : starting thread (client mode): 0x863bc3d0
2025-06-13 11:21:25,693 [DEBUG][       Thread-253056][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 11:21:25,716 [DEBUG][       Thread-253056][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 11:21:25,716 [ INFO][       Thread-253056][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 11:21:25,720 [DEBUG][       Thread-253056][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 11:21:25,720 [DEBUG][       Thread-253056][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 11:21:25,720 [DEBUG][       Thread-253056][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 11:21:25,720 [DEBUG][       Thread-253056][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:21:25,720 [DEBUG][       Thread-253056][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:21:25,720 [DEBUG][       Thread-253056][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:21:25,720 [DEBUG][       Thread-253056][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:21:25,720 [DEBUG][       Thread-253056][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 11:21:25,720 [DEBUG][       Thread-253056][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 11:21:25,720 [DEBUG][       Thread-253056][   transport.py][1871] : client lang: <none>
2025-06-13 11:21:25,720 [DEBUG][       Thread-253056][   transport.py][1871] : server lang: <none>
2025-06-13 11:21:25,720 [DEBUG][       Thread-253056][   transport.py][1871] : kex follows: False
2025-06-13 11:21:25,721 [DEBUG][       Thread-253056][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 11:21:25,721 [DEBUG][       Thread-253056][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 11:21:25,721 [DEBUG][       Thread-253056][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 11:21:25,721 [DEBUG][       Thread-253056][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 11:21:25,721 [DEBUG][       Thread-253056][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 11:21:25,721 [DEBUG][       Thread-253056][   transport.py][1871] : Compression: none
2025-06-13 11:21:25,721 [DEBUG][       Thread-253056][   transport.py][1871] : === End of kex handshake ===
2025-06-13 11:21:25,737 [DEBUG][       Thread-253056][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 11:21:25,738 [DEBUG][       Thread-253056][   transport.py][1871] : Switch to new keys ...
2025-06-13 11:21:25,738 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 11:21:25,738 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 11:21:25,739 [DEBUG][       Thread-253056][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 11:21:25,739 [DEBUG][       Thread-253056][   transport.py][1871] : userauth is OK
2025-06-13 11:21:25,752 [ INFO][       Thread-253056][   transport.py][1871] : Authentication (password) successful!
2025-06-13 11:21:25,753 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 11:21:26,415 [DEBUG][       Thread-253056][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 11:21:26,415 [DEBUG][       Thread-253056][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 11:21:26,461 [DEBUG][       Thread-253056][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 11:21:26,461 [DEBUG][       Thread-253056][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 11:21:26,464 [DEBUG][       Thread-253056][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 11:21:26,477 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 11:21:26,477 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 11:21:26,479 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 11:21:26,481 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 11:21:26,487 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 11:21:26,489 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 11:21:26,489 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 11:21:26,489 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 11:21:26,490 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.389175 -999.00   +9.80  25.16     51   +0.30 1 1 1 1 1   887    0 10.63 43.55 ----- 22.6 25.2 38.2 27.7 14.6 -28.2 13.2 -29.2 12.5 -27.5 13.8 -26.4
2025-06-13 11:21:26,490 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 11:21:26,490 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 11:21:26,490 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.389175
2025-06-13 11:21:26,490 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 11:21:26,491 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 11:21:26,491 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 11:21:26,491 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 11:21:26,491 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 11:21:26,491 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T11:21:20', tmtdew=10.62, humidity=47.7, cloud=0.0, wind=21.74, temperature=10.02, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T09:20:24.720', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 11:21:26,491 [DEBUG][       Thread-253056][   transport.py][1871] : EOF in transport thread
2025-06-13 11:21:26,575 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 11:21:26,587 [DEBUG][       Thread-253059][   transport.py][1871] : starting thread (client mode): 0x842046d0
2025-06-13 11:21:26,587 [DEBUG][       Thread-253059][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 11:21:26,605 [DEBUG][       Thread-253059][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 11:21:26,605 [ INFO][       Thread-253059][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 11:21:26,615 [DEBUG][       Thread-253059][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 11:21:26,615 [DEBUG][       Thread-253059][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 11:21:26,616 [DEBUG][       Thread-253059][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 11:21:26,616 [DEBUG][       Thread-253059][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:21:26,616 [DEBUG][       Thread-253059][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:21:26,616 [DEBUG][       Thread-253059][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:21:26,616 [DEBUG][       Thread-253059][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:21:26,616 [DEBUG][       Thread-253059][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 11:21:26,616 [DEBUG][       Thread-253059][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 11:21:26,616 [DEBUG][       Thread-253059][   transport.py][1871] : client lang: <none>
2025-06-13 11:21:26,616 [DEBUG][       Thread-253059][   transport.py][1871] : server lang: <none>
2025-06-13 11:21:26,616 [DEBUG][       Thread-253059][   transport.py][1871] : kex follows: False
2025-06-13 11:21:26,616 [DEBUG][       Thread-253059][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 11:21:26,616 [DEBUG][       Thread-253059][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 11:21:26,616 [DEBUG][       Thread-253059][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 11:21:26,616 [DEBUG][       Thread-253059][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 11:21:26,616 [DEBUG][       Thread-253059][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 11:21:26,616 [DEBUG][       Thread-253059][   transport.py][1871] : Compression: none
2025-06-13 11:21:26,617 [DEBUG][       Thread-253059][   transport.py][1871] : === End of kex handshake ===
2025-06-13 11:21:26,683 [DEBUG][       Thread-253059][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 11:21:26,683 [DEBUG][       Thread-253059][   transport.py][1871] : Switch to new keys ...
2025-06-13 11:21:26,684 [DEBUG][       Thread-253059][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 11:21:26,684 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 11:21:26,685 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 11:21:26,740 [DEBUG][       Thread-253059][   transport.py][1871] : userauth is OK
2025-06-13 11:21:26,740 [DEBUG][       Thread-253059][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 11:21:26,740 [DEBUG][       Thread-253059][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 11:21:26,740 [DEBUG][       Thread-253059][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 11:21:26,740 [DEBUG][       Thread-253059][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 11:21:26,759 [ INFO][       Thread-253059][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 11:21:26,759 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 11:21:26,760 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 11:21:27,229 [DEBUG][Thread-253061 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:21:27,813 [DEBUG][       Thread-253059][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 11:21:27,813 [DEBUG][       Thread-253059][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 11:21:27,864 [DEBUG][       Thread-253059][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 11:21:27,864 [DEBUG][       Thread-253059][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 11:21:27,875 [DEBUG][       Thread-253059][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 11:21:27,885 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 11:21:27,885 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 11:21:27,896 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 11:21:27,907 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 11:21:27,908 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 11:21:27,908 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 11:21:27,918 [DEBUG][       Thread-253059][   transport.py][1871] : EOF in transport thread
2025-06-13 11:21:34,070 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:21:34,071 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:21:36,266 [DEBUG][Thread-253062 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:21:37,919 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 11:21:37,919 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 11:21:37,919 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 11:21:37,922 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 11:21:38,380 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 11, 21, 20), 10.62, 47.7, 0.0, 21.74, 10.02, 0, 0, 0, 2, 0, 0),)
2025-06-13 11:21:38,380 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 11:21:20
2025-06-13 11:21:38,461 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 11:21:38,467 [DEBUG][       Thread-253063][   transport.py][1871] : starting thread (client mode): 0x84206410
2025-06-13 11:21:38,467 [DEBUG][       Thread-253063][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 11:21:38,488 [DEBUG][       Thread-253063][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 11:21:38,489 [ INFO][       Thread-253063][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 11:21:38,492 [DEBUG][       Thread-253063][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 11:21:38,492 [DEBUG][       Thread-253063][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 11:21:38,492 [DEBUG][       Thread-253063][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 11:21:38,493 [DEBUG][       Thread-253063][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:21:38,493 [DEBUG][       Thread-253063][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:21:38,493 [DEBUG][       Thread-253063][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:21:38,493 [DEBUG][       Thread-253063][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:21:38,493 [DEBUG][       Thread-253063][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 11:21:38,493 [DEBUG][       Thread-253063][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 11:21:38,493 [DEBUG][       Thread-253063][   transport.py][1871] : client lang: <none>
2025-06-13 11:21:38,493 [DEBUG][       Thread-253063][   transport.py][1871] : server lang: <none>
2025-06-13 11:21:38,493 [DEBUG][       Thread-253063][   transport.py][1871] : kex follows: False
2025-06-13 11:21:38,493 [DEBUG][       Thread-253063][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 11:21:38,493 [DEBUG][       Thread-253063][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 11:21:38,493 [DEBUG][       Thread-253063][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 11:21:38,493 [DEBUG][       Thread-253063][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 11:21:38,493 [DEBUG][       Thread-253063][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 11:21:38,493 [DEBUG][       Thread-253063][   transport.py][1871] : Compression: none
2025-06-13 11:21:38,493 [DEBUG][       Thread-253063][   transport.py][1871] : === End of kex handshake ===
2025-06-13 11:21:38,509 [DEBUG][       Thread-253063][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 11:21:38,510 [DEBUG][       Thread-253063][   transport.py][1871] : Switch to new keys ...
2025-06-13 11:21:38,510 [DEBUG][       Thread-253063][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 11:21:38,511 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 11:21:38,511 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 11:21:38,512 [DEBUG][       Thread-253063][   transport.py][1871] : userauth is OK
2025-06-13 11:21:38,525 [ INFO][       Thread-253063][   transport.py][1871] : Authentication (password) successful!
2025-06-13 11:21:38,526 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 11:21:39,182 [DEBUG][       Thread-253063][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 11:21:39,182 [DEBUG][       Thread-253063][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 11:21:39,225 [DEBUG][       Thread-253063][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 11:21:39,225 [DEBUG][       Thread-253063][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 11:21:39,229 [DEBUG][       Thread-253063][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 11:21:39,240 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 11:21:39,241 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 11:21:39,243 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 11:21:39,245 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 11:21:39,251 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 11:21:39,253 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 11:21:39,253 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 11:21:39,254 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 11:21:39,254 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.389870 -999.00   +9.90  20.31     50   +0.20 1 1 1 1 1   887    0 10.71 51.71 ----- 19.3 20.3 41.6 24.4 14.6 -28.6 13.3 -30.1 12.5 -28.2 13.8 -26.4
2025-06-13 11:21:39,254 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 11:21:39,254 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 11:21:39,254 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.389870
2025-06-13 11:21:39,254 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 11:21:39,255 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 11:21:39,255 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 11:21:39,255 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 11:21:39,255 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 11:21:39,255 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T11:21:20', tmtdew=10.62, humidity=47.7, cloud=0.0, wind=21.74, temperature=10.02, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T09:21:24.768', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 11:21:39,256 [DEBUG][       Thread-253063][   transport.py][1871] : EOF in transport thread
2025-06-13 11:21:39,344 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 11:21:39,356 [DEBUG][       Thread-253066][   transport.py][1871] : starting thread (client mode): 0x863a6bf0
2025-06-13 11:21:39,356 [DEBUG][       Thread-253066][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 11:21:39,372 [DEBUG][       Thread-253066][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 11:21:39,372 [ INFO][       Thread-253066][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 11:21:39,381 [DEBUG][       Thread-253066][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 11:21:39,381 [DEBUG][       Thread-253066][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 11:21:39,381 [DEBUG][       Thread-253066][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 11:21:39,381 [DEBUG][       Thread-253066][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:21:39,381 [DEBUG][       Thread-253066][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:21:39,381 [DEBUG][       Thread-253066][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:21:39,381 [DEBUG][       Thread-253066][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:21:39,381 [DEBUG][       Thread-253066][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 11:21:39,381 [DEBUG][       Thread-253066][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 11:21:39,381 [DEBUG][       Thread-253066][   transport.py][1871] : client lang: <none>
2025-06-13 11:21:39,381 [DEBUG][       Thread-253066][   transport.py][1871] : server lang: <none>
2025-06-13 11:21:39,381 [DEBUG][       Thread-253066][   transport.py][1871] : kex follows: False
2025-06-13 11:21:39,382 [DEBUG][       Thread-253066][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 11:21:39,382 [DEBUG][       Thread-253066][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 11:21:39,382 [DEBUG][       Thread-253066][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 11:21:39,382 [DEBUG][       Thread-253066][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 11:21:39,382 [DEBUG][       Thread-253066][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 11:21:39,382 [DEBUG][       Thread-253066][   transport.py][1871] : Compression: none
2025-06-13 11:21:39,382 [DEBUG][       Thread-253066][   transport.py][1871] : === End of kex handshake ===
2025-06-13 11:21:39,440 [DEBUG][       Thread-253066][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 11:21:39,441 [DEBUG][       Thread-253066][   transport.py][1871] : Switch to new keys ...
2025-06-13 11:21:39,442 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 11:21:39,442 [DEBUG][       Thread-253066][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 11:21:39,443 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 11:21:39,503 [DEBUG][       Thread-253066][   transport.py][1871] : userauth is OK
2025-06-13 11:21:39,504 [DEBUG][       Thread-253066][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 11:21:39,504 [DEBUG][       Thread-253066][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 11:21:39,504 [DEBUG][       Thread-253066][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 11:21:39,504 [DEBUG][       Thread-253066][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 11:21:39,523 [ INFO][       Thread-253066][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 11:21:39,524 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 11:21:39,524 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 11:21:40,549 [DEBUG][       Thread-253066][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 11:21:40,549 [DEBUG][       Thread-253066][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 11:21:40,603 [DEBUG][       Thread-253066][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 11:21:40,603 [DEBUG][       Thread-253066][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 11:21:40,613 [DEBUG][       Thread-253066][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 11:21:40,622 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 11:21:40,622 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 11:21:40,632 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 11:21:40,642 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 11:21:40,642 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 11:21:40,643 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 11:21:40,656 [DEBUG][       Thread-253066][   transport.py][1871] : EOF in transport thread
2025-06-13 11:21:45,290 [DEBUG][Thread-253068 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:21:50,653 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 11:21:50,654 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 11:21:50,654 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 11:21:50,657 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 11:21:51,124 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 11, 21, 20), 10.62, 47.7, 0.0, 21.74, 10.02, 0, 0, 0, 2, 0, 0),)
2025-06-13 11:21:51,124 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 11:21:20
2025-06-13 11:21:51,207 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 11:21:51,214 [DEBUG][       Thread-253069][   transport.py][1871] : starting thread (client mode): 0x842077f0
2025-06-13 11:21:51,214 [DEBUG][       Thread-253069][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 11:21:51,234 [DEBUG][       Thread-253069][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 11:21:51,234 [ INFO][       Thread-253069][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 11:21:51,237 [DEBUG][       Thread-253069][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 11:21:51,237 [DEBUG][       Thread-253069][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 11:21:51,237 [DEBUG][       Thread-253069][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 11:21:51,237 [DEBUG][       Thread-253069][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:21:51,237 [DEBUG][       Thread-253069][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:21:51,237 [DEBUG][       Thread-253069][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:21:51,237 [DEBUG][       Thread-253069][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:21:51,237 [DEBUG][       Thread-253069][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 11:21:51,237 [DEBUG][       Thread-253069][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 11:21:51,237 [DEBUG][       Thread-253069][   transport.py][1871] : client lang: <none>
2025-06-13 11:21:51,237 [DEBUG][       Thread-253069][   transport.py][1871] : server lang: <none>
2025-06-13 11:21:51,238 [DEBUG][       Thread-253069][   transport.py][1871] : kex follows: False
2025-06-13 11:21:51,238 [DEBUG][       Thread-253069][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 11:21:51,238 [DEBUG][       Thread-253069][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 11:21:51,238 [DEBUG][       Thread-253069][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 11:21:51,238 [DEBUG][       Thread-253069][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 11:21:51,238 [DEBUG][       Thread-253069][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 11:21:51,238 [DEBUG][       Thread-253069][   transport.py][1871] : Compression: none
2025-06-13 11:21:51,238 [DEBUG][       Thread-253069][   transport.py][1871] : === End of kex handshake ===
2025-06-13 11:21:51,254 [DEBUG][       Thread-253069][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 11:21:51,255 [DEBUG][       Thread-253069][   transport.py][1871] : Switch to new keys ...
2025-06-13 11:21:51,255 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 11:21:51,255 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 11:21:51,256 [DEBUG][       Thread-253069][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 11:21:51,257 [DEBUG][       Thread-253069][   transport.py][1871] : userauth is OK
2025-06-13 11:21:51,282 [ INFO][       Thread-253069][   transport.py][1871] : Authentication (password) successful!
2025-06-13 11:21:51,282 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 11:21:51,916 [DEBUG][       Thread-253069][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 11:21:51,916 [DEBUG][       Thread-253069][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 11:21:51,957 [DEBUG][       Thread-253069][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 11:21:51,957 [DEBUG][       Thread-253069][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 11:21:51,960 [DEBUG][       Thread-253069][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 11:21:51,973 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 11:21:51,973 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 11:21:51,974 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 11:21:51,976 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 11:21:51,981 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 11:21:51,983 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 11:21:51,983 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 11:21:51,984 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 11:21:51,984 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.389870 -999.00   +9.90  20.31     50   +0.20 1 1 1 1 1   887    0 10.71 51.71 ----- 19.3 20.3 41.6 24.4 14.6 -28.6 13.3 -30.1 12.5 -28.2 13.8 -26.4
2025-06-13 11:21:51,984 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 11:21:51,984 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 11:21:51,984 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.389870
2025-06-13 11:21:51,985 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 11:21:51,985 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 11:21:51,985 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 11:21:51,986 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 11:21:51,986 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 11:21:51,986 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T11:21:20', tmtdew=10.62, humidity=47.7, cloud=0.0, wind=21.74, temperature=10.02, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T09:21:24.768', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 11:21:51,987 [DEBUG][       Thread-253069][   transport.py][1871] : EOF in transport thread
2025-06-13 11:21:52,069 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 11:21:52,084 [DEBUG][       Thread-253072][   transport.py][1871] : starting thread (client mode): 0x867ff250
2025-06-13 11:21:52,084 [DEBUG][       Thread-253072][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 11:21:52,100 [DEBUG][       Thread-253072][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 11:21:52,100 [ INFO][       Thread-253072][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 11:21:52,108 [DEBUG][       Thread-253072][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 11:21:52,108 [DEBUG][       Thread-253072][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 11:21:52,108 [DEBUG][       Thread-253072][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 11:21:52,108 [DEBUG][       Thread-253072][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:21:52,108 [DEBUG][       Thread-253072][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:21:52,109 [DEBUG][       Thread-253072][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:21:52,109 [DEBUG][       Thread-253072][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:21:52,109 [DEBUG][       Thread-253072][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 11:21:52,109 [DEBUG][       Thread-253072][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 11:21:52,109 [DEBUG][       Thread-253072][   transport.py][1871] : client lang: <none>
2025-06-13 11:21:52,109 [DEBUG][       Thread-253072][   transport.py][1871] : server lang: <none>
2025-06-13 11:21:52,109 [DEBUG][       Thread-253072][   transport.py][1871] : kex follows: False
2025-06-13 11:21:52,109 [DEBUG][       Thread-253072][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 11:21:52,109 [DEBUG][       Thread-253072][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 11:21:52,109 [DEBUG][       Thread-253072][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 11:21:52,109 [DEBUG][       Thread-253072][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 11:21:52,109 [DEBUG][       Thread-253072][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 11:21:52,109 [DEBUG][       Thread-253072][   transport.py][1871] : Compression: none
2025-06-13 11:21:52,109 [DEBUG][       Thread-253072][   transport.py][1871] : === End of kex handshake ===
2025-06-13 11:21:52,168 [DEBUG][       Thread-253072][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 11:21:52,168 [DEBUG][       Thread-253072][   transport.py][1871] : Switch to new keys ...
2025-06-13 11:21:52,169 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 11:21:52,170 [DEBUG][       Thread-253072][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 11:21:52,170 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 11:21:52,224 [DEBUG][       Thread-253072][   transport.py][1871] : userauth is OK
2025-06-13 11:21:52,224 [DEBUG][       Thread-253072][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 11:21:52,224 [DEBUG][       Thread-253072][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 11:21:52,224 [DEBUG][       Thread-253072][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 11:21:52,224 [DEBUG][       Thread-253072][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 11:21:52,254 [ INFO][       Thread-253072][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 11:21:52,255 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 11:21:52,255 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 11:21:53,295 [DEBUG][       Thread-253072][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 11:21:53,295 [DEBUG][       Thread-253072][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 11:21:53,345 [DEBUG][       Thread-253072][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 11:21:53,345 [DEBUG][       Thread-253072][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 11:21:53,357 [DEBUG][       Thread-253072][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 11:21:53,367 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 11:21:53,367 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 11:21:53,377 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 11:21:53,385 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 11:21:53,385 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 11:21:53,385 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 11:21:53,393 [DEBUG][       Thread-253072][   transport.py][1871] : EOF in transport thread
2025-06-13 11:21:54,309 [DEBUG][Thread-253074 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:22:03,330 [DEBUG][Thread-253075 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:22:03,386 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 11:22:03,387 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 11:22:03,387 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 11:22:03,390 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 11:22:03,860 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 11, 21, 52), 10.65, 47.58, 0.0, 21.49, 10.04, 0, 0, 0, 2, 0, 0),)
2025-06-13 11:22:03,860 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 11:21:52
2025-06-13 11:22:03,941 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 11:22:03,946 [DEBUG][       Thread-253076][   transport.py][1871] : starting thread (client mode): 0x84206530
2025-06-13 11:22:03,946 [DEBUG][       Thread-253076][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 11:22:03,965 [DEBUG][       Thread-253076][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 11:22:03,965 [ INFO][       Thread-253076][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 11:22:03,969 [DEBUG][       Thread-253076][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 11:22:03,969 [DEBUG][       Thread-253076][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 11:22:03,969 [DEBUG][       Thread-253076][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 11:22:03,969 [DEBUG][       Thread-253076][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:22:03,969 [DEBUG][       Thread-253076][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:22:03,969 [DEBUG][       Thread-253076][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:22:03,969 [DEBUG][       Thread-253076][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:22:03,969 [DEBUG][       Thread-253076][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 11:22:03,969 [DEBUG][       Thread-253076][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 11:22:03,969 [DEBUG][       Thread-253076][   transport.py][1871] : client lang: <none>
2025-06-13 11:22:03,969 [DEBUG][       Thread-253076][   transport.py][1871] : server lang: <none>
2025-06-13 11:22:03,969 [DEBUG][       Thread-253076][   transport.py][1871] : kex follows: False
2025-06-13 11:22:03,969 [DEBUG][       Thread-253076][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 11:22:03,969 [DEBUG][       Thread-253076][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 11:22:03,969 [DEBUG][       Thread-253076][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 11:22:03,969 [DEBUG][       Thread-253076][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 11:22:03,969 [DEBUG][       Thread-253076][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 11:22:03,969 [DEBUG][       Thread-253076][   transport.py][1871] : Compression: none
2025-06-13 11:22:03,969 [DEBUG][       Thread-253076][   transport.py][1871] : === End of kex handshake ===
2025-06-13 11:22:03,985 [DEBUG][       Thread-253076][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 11:22:03,985 [DEBUG][       Thread-253076][   transport.py][1871] : Switch to new keys ...
2025-06-13 11:22:03,986 [DEBUG][       Thread-253076][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 11:22:03,986 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 11:22:03,986 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 11:22:03,988 [DEBUG][       Thread-253076][   transport.py][1871] : userauth is OK
2025-06-13 11:22:04,001 [ INFO][       Thread-253076][   transport.py][1871] : Authentication (password) successful!
2025-06-13 11:22:04,001 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 11:22:04,609 [DEBUG][       Thread-253076][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 11:22:04,609 [DEBUG][       Thread-253076][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 11:22:04,653 [DEBUG][       Thread-253076][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 11:22:04,653 [DEBUG][       Thread-253076][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 11:22:04,657 [DEBUG][       Thread-253076][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 11:22:04,668 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 11:22:04,669 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 11:22:04,671 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 11:22:04,672 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 11:22:04,678 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 11:22:04,680 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 11:22:04,680 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 11:22:04,681 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 11:22:04,681 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.389870 -999.00   +9.90  20.31     50   +0.20 1 1 1 1 1   887    0 10.71 51.71 ----- 19.3 20.3 41.6 24.4 14.6 -28.6 13.3 -30.1 12.5 -28.2 13.8 -26.4
2025-06-13 11:22:04,681 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 11:22:04,681 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 11:22:04,681 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.389870
2025-06-13 11:22:04,681 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 11:22:04,682 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 11:22:04,682 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 11:22:04,682 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 11:22:04,682 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 11:22:04,682 [DEBUG][       Thread-253076][   transport.py][1871] : EOF in transport thread
2025-06-13 11:22:04,683 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T11:21:52', tmtdew=10.65, humidity=47.58, cloud=0.0, wind=21.49, temperature=10.04, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T09:21:24.768', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 11:22:04,765 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 11:22:04,775 [DEBUG][       Thread-253079][   transport.py][1871] : starting thread (client mode): 0x863a5030
2025-06-13 11:22:04,775 [DEBUG][       Thread-253079][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 11:22:04,789 [DEBUG][       Thread-253079][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 11:22:04,790 [ INFO][       Thread-253079][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 11:22:04,797 [DEBUG][       Thread-253079][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 11:22:04,797 [DEBUG][       Thread-253079][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 11:22:04,797 [DEBUG][       Thread-253079][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 11:22:04,797 [DEBUG][       Thread-253079][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:22:04,797 [DEBUG][       Thread-253079][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:22:04,797 [DEBUG][       Thread-253079][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:22:04,797 [DEBUG][       Thread-253079][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:22:04,798 [DEBUG][       Thread-253079][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 11:22:04,798 [DEBUG][       Thread-253079][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 11:22:04,798 [DEBUG][       Thread-253079][   transport.py][1871] : client lang: <none>
2025-06-13 11:22:04,798 [DEBUG][       Thread-253079][   transport.py][1871] : server lang: <none>
2025-06-13 11:22:04,798 [DEBUG][       Thread-253079][   transport.py][1871] : kex follows: False
2025-06-13 11:22:04,798 [DEBUG][       Thread-253079][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 11:22:04,798 [DEBUG][       Thread-253079][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 11:22:04,798 [DEBUG][       Thread-253079][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 11:22:04,798 [DEBUG][       Thread-253079][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 11:22:04,798 [DEBUG][       Thread-253079][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 11:22:04,798 [DEBUG][       Thread-253079][   transport.py][1871] : Compression: none
2025-06-13 11:22:04,798 [DEBUG][       Thread-253079][   transport.py][1871] : === End of kex handshake ===
2025-06-13 11:22:04,857 [DEBUG][       Thread-253079][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 11:22:04,858 [DEBUG][       Thread-253079][   transport.py][1871] : Switch to new keys ...
2025-06-13 11:22:04,858 [DEBUG][       Thread-253079][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 11:22:04,859 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 11:22:04,859 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 11:22:04,920 [DEBUG][       Thread-253079][   transport.py][1871] : userauth is OK
2025-06-13 11:22:04,921 [DEBUG][       Thread-253079][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 11:22:04,921 [DEBUG][       Thread-253079][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 11:22:04,921 [DEBUG][       Thread-253079][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 11:22:04,921 [DEBUG][       Thread-253079][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 11:22:04,941 [ INFO][       Thread-253079][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 11:22:04,941 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 11:22:04,942 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 11:22:05,968 [DEBUG][       Thread-253079][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 11:22:05,968 [DEBUG][       Thread-253079][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 11:22:06,020 [DEBUG][       Thread-253079][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 11:22:06,020 [DEBUG][       Thread-253079][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 11:22:06,034 [DEBUG][       Thread-253079][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 11:22:06,043 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 11:22:06,043 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 11:22:06,052 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 11:22:06,062 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 11:22:06,062 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 11:22:06,063 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 11:22:06,072 [DEBUG][       Thread-253079][   transport.py][1871] : EOF in transport thread
2025-06-13 11:22:08,902 [DEBUG][Thread-253081 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:22:12,350 [DEBUG][Thread-253082 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:22:13,745 [DEBUG][Thread-253083 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:22:14,797 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:22:14,798 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:22:16,073 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 11:22:16,073 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 11:22:16,073 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 11:22:16,075 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 11:22:16,524 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 11, 21, 52), 10.65, 47.58, 0.0, 21.49, 10.04, 0, 0, 0, 2, 0, 0),)
2025-06-13 11:22:16,524 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 11:21:52
2025-06-13 11:22:16,606 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 11:22:16,611 [DEBUG][       Thread-253084][   transport.py][1871] : starting thread (client mode): 0x84204eb0
2025-06-13 11:22:16,611 [DEBUG][       Thread-253084][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 11:22:16,632 [DEBUG][       Thread-253084][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 11:22:16,632 [ INFO][       Thread-253084][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 11:22:16,635 [DEBUG][       Thread-253084][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 11:22:16,635 [DEBUG][       Thread-253084][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 11:22:16,635 [DEBUG][       Thread-253084][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 11:22:16,635 [DEBUG][       Thread-253084][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:22:16,635 [DEBUG][       Thread-253084][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:22:16,635 [DEBUG][       Thread-253084][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:22:16,635 [DEBUG][       Thread-253084][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:22:16,635 [DEBUG][       Thread-253084][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 11:22:16,635 [DEBUG][       Thread-253084][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 11:22:16,635 [DEBUG][       Thread-253084][   transport.py][1871] : client lang: <none>
2025-06-13 11:22:16,635 [DEBUG][       Thread-253084][   transport.py][1871] : server lang: <none>
2025-06-13 11:22:16,635 [DEBUG][       Thread-253084][   transport.py][1871] : kex follows: False
2025-06-13 11:22:16,635 [DEBUG][       Thread-253084][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 11:22:16,635 [DEBUG][       Thread-253084][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 11:22:16,635 [DEBUG][       Thread-253084][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 11:22:16,635 [DEBUG][       Thread-253084][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 11:22:16,636 [DEBUG][       Thread-253084][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 11:22:16,636 [DEBUG][       Thread-253084][   transport.py][1871] : Compression: none
2025-06-13 11:22:16,636 [DEBUG][       Thread-253084][   transport.py][1871] : === End of kex handshake ===
2025-06-13 11:22:16,654 [DEBUG][       Thread-253084][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 11:22:16,655 [DEBUG][       Thread-253084][   transport.py][1871] : Switch to new keys ...
2025-06-13 11:22:16,655 [DEBUG][       Thread-253084][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 11:22:16,655 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 11:22:16,656 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 11:22:16,657 [DEBUG][       Thread-253084][   transport.py][1871] : userauth is OK
2025-06-13 11:22:16,681 [ INFO][       Thread-253084][   transport.py][1871] : Authentication (password) successful!
2025-06-13 11:22:16,682 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 11:22:17,308 [DEBUG][       Thread-253084][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 11:22:17,308 [DEBUG][       Thread-253084][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 11:22:17,349 [DEBUG][       Thread-253084][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 11:22:17,349 [DEBUG][       Thread-253084][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 11:22:17,353 [DEBUG][       Thread-253084][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 11:22:17,365 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 11:22:17,365 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 11:22:17,367 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 11:22:17,369 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 11:22:17,375 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 11:22:17,378 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 11:22:17,378 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 11:22:17,379 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 11:22:17,379 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.390217 -999.00   +9.90  17.43     52   +0.60 1 1 1 1 1   887    0 10.73 49.46 ----- 20.6 17.4 50.2 22.8 14.6 -28.7 13.3 -30.1 12.5 -28.3 13.8 -26.1
2025-06-13 11:22:17,379 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 11:22:17,379 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 11:22:17,379 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.390217
2025-06-13 11:22:17,379 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 11:22:17,380 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 11:22:17,380 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 11:22:17,380 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 11:22:17,380 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 11:22:17,380 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T11:21:52', tmtdew=10.65, humidity=47.58, cloud=0.0, wind=21.49, temperature=10.04, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T09:21:54.749', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 11:22:17,382 [DEBUG][       Thread-253084][   transport.py][1871] : EOF in transport thread
2025-06-13 11:22:17,464 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 11:22:17,479 [DEBUG][       Thread-253087][   transport.py][1871] : starting thread (client mode): 0x867b6b90
2025-06-13 11:22:17,479 [DEBUG][       Thread-253087][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 11:22:17,502 [DEBUG][       Thread-253087][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 11:22:17,502 [ INFO][       Thread-253087][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 11:22:17,515 [DEBUG][       Thread-253087][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 11:22:17,515 [DEBUG][       Thread-253087][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 11:22:17,515 [DEBUG][       Thread-253087][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 11:22:17,515 [DEBUG][       Thread-253087][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:22:17,515 [DEBUG][       Thread-253087][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:22:17,515 [DEBUG][       Thread-253087][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:22:17,515 [DEBUG][       Thread-253087][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:22:17,515 [DEBUG][       Thread-253087][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 11:22:17,515 [DEBUG][       Thread-253087][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 11:22:17,515 [DEBUG][       Thread-253087][   transport.py][1871] : client lang: <none>
2025-06-13 11:22:17,515 [DEBUG][       Thread-253087][   transport.py][1871] : server lang: <none>
2025-06-13 11:22:17,515 [DEBUG][       Thread-253087][   transport.py][1871] : kex follows: False
2025-06-13 11:22:17,515 [DEBUG][       Thread-253087][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 11:22:17,516 [DEBUG][       Thread-253087][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 11:22:17,516 [DEBUG][       Thread-253087][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 11:22:17,516 [DEBUG][       Thread-253087][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 11:22:17,516 [DEBUG][       Thread-253087][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 11:22:17,516 [DEBUG][       Thread-253087][   transport.py][1871] : Compression: none
2025-06-13 11:22:17,516 [DEBUG][       Thread-253087][   transport.py][1871] : === End of kex handshake ===
2025-06-13 11:22:17,577 [DEBUG][       Thread-253087][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 11:22:17,577 [DEBUG][       Thread-253087][   transport.py][1871] : Switch to new keys ...
2025-06-13 11:22:17,578 [DEBUG][       Thread-253087][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 11:22:17,578 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 11:22:17,579 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 11:22:17,645 [DEBUG][       Thread-253087][   transport.py][1871] : userauth is OK
2025-06-13 11:22:17,645 [DEBUG][       Thread-253087][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 11:22:17,645 [DEBUG][       Thread-253087][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 11:22:17,645 [DEBUG][       Thread-253087][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 11:22:17,645 [DEBUG][       Thread-253087][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 11:22:17,669 [ INFO][       Thread-253087][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 11:22:17,669 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 11:22:17,669 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 11:22:18,694 [DEBUG][       Thread-253087][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 11:22:18,694 [DEBUG][       Thread-253087][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 11:22:18,745 [DEBUG][       Thread-253087][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 11:22:18,745 [DEBUG][       Thread-253087][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 11:22:18,755 [DEBUG][       Thread-253087][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 11:22:18,764 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 11:22:18,764 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 11:22:18,774 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 11:22:18,784 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 11:22:18,784 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 11:22:18,785 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 11:22:18,793 [DEBUG][       Thread-253087][   transport.py][1871] : EOF in transport thread
2025-06-13 11:22:21,394 [DEBUG][Thread-253089 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:22:28,795 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 11:22:28,796 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 11:22:28,796 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 11:22:28,799 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 11:22:29,264 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 11, 22, 24), 10.64, 47.65, 0.0, 18.92, 10.08, 0, 0, 0, 2, 0, 0),)
2025-06-13 11:22:29,264 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 11:22:24
2025-06-13 11:22:29,346 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 11:22:29,350 [DEBUG][       Thread-253090][   transport.py][1871] : starting thread (client mode): 0x842069e0
2025-06-13 11:22:29,350 [DEBUG][       Thread-253090][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 11:22:29,370 [DEBUG][       Thread-253090][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 11:22:29,370 [ INFO][       Thread-253090][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 11:22:29,374 [DEBUG][       Thread-253090][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 11:22:29,374 [DEBUG][       Thread-253090][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 11:22:29,374 [DEBUG][       Thread-253090][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 11:22:29,374 [DEBUG][       Thread-253090][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:22:29,374 [DEBUG][       Thread-253090][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:22:29,374 [DEBUG][       Thread-253090][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:22:29,374 [DEBUG][       Thread-253090][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:22:29,374 [DEBUG][       Thread-253090][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 11:22:29,374 [DEBUG][       Thread-253090][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 11:22:29,374 [DEBUG][       Thread-253090][   transport.py][1871] : client lang: <none>
2025-06-13 11:22:29,374 [DEBUG][       Thread-253090][   transport.py][1871] : server lang: <none>
2025-06-13 11:22:29,374 [DEBUG][       Thread-253090][   transport.py][1871] : kex follows: False
2025-06-13 11:22:29,374 [DEBUG][       Thread-253090][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 11:22:29,374 [DEBUG][       Thread-253090][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 11:22:29,374 [DEBUG][       Thread-253090][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 11:22:29,374 [DEBUG][       Thread-253090][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 11:22:29,374 [DEBUG][       Thread-253090][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 11:22:29,374 [DEBUG][       Thread-253090][   transport.py][1871] : Compression: none
2025-06-13 11:22:29,374 [DEBUG][       Thread-253090][   transport.py][1871] : === End of kex handshake ===
2025-06-13 11:22:29,387 [DEBUG][       Thread-253090][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 11:22:29,387 [DEBUG][       Thread-253090][   transport.py][1871] : Switch to new keys ...
2025-06-13 11:22:29,388 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 11:22:29,388 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 11:22:29,389 [DEBUG][       Thread-253090][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 11:22:29,389 [DEBUG][       Thread-253090][   transport.py][1871] : userauth is OK
2025-06-13 11:22:29,413 [ INFO][       Thread-253090][   transport.py][1871] : Authentication (password) successful!
2025-06-13 11:22:29,414 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 11:22:30,057 [DEBUG][       Thread-253090][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 11:22:30,058 [DEBUG][       Thread-253090][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 11:22:30,101 [DEBUG][       Thread-253090][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 11:22:30,101 [DEBUG][       Thread-253090][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 11:22:30,104 [DEBUG][       Thread-253090][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 11:22:30,117 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 11:22:30,117 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 11:22:30,119 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 11:22:30,121 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 11:22:30,127 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 11:22:30,129 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 11:22:30,129 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 11:22:30,130 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 11:22:30,130 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.390217 -999.00   +9.90  17.43     52   +0.60 1 1 1 1 1   887    0 10.73 49.46 ----- 20.6 17.4 50.2 22.8 14.6 -28.7 13.3 -30.1 12.5 -28.3 13.8 -26.1
2025-06-13 11:22:30,130 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 11:22:30,130 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 11:22:30,130 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.390217
2025-06-13 11:22:30,131 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 11:22:30,131 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 11:22:30,131 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 11:22:30,131 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 11:22:30,131 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 11:22:30,132 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T11:22:24', tmtdew=10.64, humidity=47.65, cloud=0.0, wind=18.92, temperature=10.08, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T09:21:54.749', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 11:22:30,132 [DEBUG][       Thread-253090][   transport.py][1871] : EOF in transport thread
2025-06-13 11:22:30,215 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 11:22:30,225 [DEBUG][       Thread-253093][   transport.py][1871] : starting thread (client mode): 0x867ffe80
2025-06-13 11:22:30,225 [DEBUG][       Thread-253093][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 11:22:30,239 [DEBUG][       Thread-253093][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 11:22:30,239 [ INFO][       Thread-253093][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 11:22:30,247 [DEBUG][       Thread-253093][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 11:22:30,247 [DEBUG][       Thread-253093][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 11:22:30,247 [DEBUG][       Thread-253093][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 11:22:30,248 [DEBUG][       Thread-253093][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:22:30,248 [DEBUG][       Thread-253093][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:22:30,248 [DEBUG][       Thread-253093][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:22:30,248 [DEBUG][       Thread-253093][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:22:30,248 [DEBUG][       Thread-253093][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 11:22:30,248 [DEBUG][       Thread-253093][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 11:22:30,248 [DEBUG][       Thread-253093][   transport.py][1871] : client lang: <none>
2025-06-13 11:22:30,248 [DEBUG][       Thread-253093][   transport.py][1871] : server lang: <none>
2025-06-13 11:22:30,248 [DEBUG][       Thread-253093][   transport.py][1871] : kex follows: False
2025-06-13 11:22:30,248 [DEBUG][       Thread-253093][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 11:22:30,248 [DEBUG][       Thread-253093][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 11:22:30,248 [DEBUG][       Thread-253093][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 11:22:30,248 [DEBUG][       Thread-253093][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 11:22:30,248 [DEBUG][       Thread-253093][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 11:22:30,248 [DEBUG][       Thread-253093][   transport.py][1871] : Compression: none
2025-06-13 11:22:30,248 [DEBUG][       Thread-253093][   transport.py][1871] : === End of kex handshake ===
2025-06-13 11:22:30,304 [DEBUG][       Thread-253093][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 11:22:30,305 [DEBUG][       Thread-253093][   transport.py][1871] : Switch to new keys ...
2025-06-13 11:22:30,305 [DEBUG][       Thread-253093][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 11:22:30,306 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 11:22:30,306 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 11:22:30,364 [DEBUG][       Thread-253093][   transport.py][1871] : userauth is OK
2025-06-13 11:22:30,364 [DEBUG][       Thread-253093][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 11:22:30,364 [DEBUG][       Thread-253093][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 11:22:30,364 [DEBUG][       Thread-253093][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 11:22:30,364 [DEBUG][       Thread-253093][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 11:22:30,383 [ INFO][       Thread-253093][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 11:22:30,383 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 11:22:30,384 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 11:22:30,415 [DEBUG][Thread-253095 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:22:31,435 [DEBUG][       Thread-253093][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 11:22:31,435 [DEBUG][       Thread-253093][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 11:22:31,485 [DEBUG][       Thread-253093][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 11:22:31,485 [DEBUG][       Thread-253093][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 11:22:31,497 [DEBUG][       Thread-253093][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 11:22:31,507 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 11:22:31,507 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 11:22:31,516 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 11:22:31,525 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 11:22:31,525 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 11:22:31,525 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 11:22:31,533 [DEBUG][       Thread-253093][   transport.py][1871] : EOF in transport thread
2025-06-13 11:22:34,208 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:22:34,210 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:22:39,452 [DEBUG][Thread-253096 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:22:41,535 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 11:22:41,536 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 11:22:41,536 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 11:22:41,539 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 11:22:42,000 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 11, 22, 24), 10.64, 47.65, 0.0, 18.92, 10.08, 0, 0, 0, 2, 0, 0),)
2025-06-13 11:22:42,000 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 11:22:24
2025-06-13 11:22:42,081 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 11:22:42,086 [DEBUG][       Thread-253097][   transport.py][1871] : starting thread (client mode): 0x84204640
2025-06-13 11:22:42,087 [DEBUG][       Thread-253097][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 11:22:42,106 [DEBUG][       Thread-253097][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 11:22:42,106 [ INFO][       Thread-253097][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 11:22:42,114 [DEBUG][       Thread-253097][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 11:22:42,114 [DEBUG][       Thread-253097][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 11:22:42,114 [DEBUG][       Thread-253097][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 11:22:42,114 [DEBUG][       Thread-253097][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:22:42,114 [DEBUG][       Thread-253097][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:22:42,114 [DEBUG][       Thread-253097][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:22:42,114 [DEBUG][       Thread-253097][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:22:42,115 [DEBUG][       Thread-253097][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 11:22:42,115 [DEBUG][       Thread-253097][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 11:22:42,115 [DEBUG][       Thread-253097][   transport.py][1871] : client lang: <none>
2025-06-13 11:22:42,115 [DEBUG][       Thread-253097][   transport.py][1871] : server lang: <none>
2025-06-13 11:22:42,115 [DEBUG][       Thread-253097][   transport.py][1871] : kex follows: False
2025-06-13 11:22:42,115 [DEBUG][       Thread-253097][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 11:22:42,115 [DEBUG][       Thread-253097][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 11:22:42,115 [DEBUG][       Thread-253097][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 11:22:42,115 [DEBUG][       Thread-253097][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 11:22:42,115 [DEBUG][       Thread-253097][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 11:22:42,115 [DEBUG][       Thread-253097][   transport.py][1871] : Compression: none
2025-06-13 11:22:42,115 [DEBUG][       Thread-253097][   transport.py][1871] : === End of kex handshake ===
2025-06-13 11:22:42,128 [DEBUG][       Thread-253097][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 11:22:42,129 [DEBUG][       Thread-253097][   transport.py][1871] : Switch to new keys ...
2025-06-13 11:22:42,129 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 11:22:42,129 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 11:22:42,130 [DEBUG][       Thread-253097][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 11:22:42,130 [DEBUG][       Thread-253097][   transport.py][1871] : userauth is OK
2025-06-13 11:22:42,155 [ INFO][       Thread-253097][   transport.py][1871] : Authentication (password) successful!
2025-06-13 11:22:42,156 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 11:22:42,798 [DEBUG][       Thread-253097][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 11:22:42,799 [DEBUG][       Thread-253097][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 11:22:42,841 [DEBUG][       Thread-253097][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 11:22:42,841 [DEBUG][       Thread-253097][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 11:22:42,844 [DEBUG][       Thread-253097][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 11:22:42,856 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 11:22:42,856 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 11:22:42,858 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 11:22:42,860 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 11:22:42,864 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 11:22:42,865 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 11:22:42,866 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 11:22:42,866 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 11:22:42,866 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.390564 -999.00  +10.00  20.17     52   +0.80 1 1 1 1 1   887    0 10.84 52.44 ----- 20.4 20.2 44.4 23.7 14.6 -28.2 13.2 -29.9 12.5 -28.4 13.8 -26.3
2025-06-13 11:22:42,866 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 11:22:42,866 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 11:22:42,866 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.390564
2025-06-13 11:22:42,867 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 11:22:42,867 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 11:22:42,867 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 11:22:42,867 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 11:22:42,867 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 11:22:42,868 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T11:22:24', tmtdew=10.64, humidity=47.65, cloud=0.0, wind=18.92, temperature=10.08, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T09:22:24.730', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 11:22:42,868 [DEBUG][       Thread-253097][   transport.py][1871] : EOF in transport thread
2025-06-13 11:22:42,960 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 11:22:42,971 [DEBUG][       Thread-253100][   transport.py][1871] : starting thread (client mode): 0x863a5b70
2025-06-13 11:22:42,971 [DEBUG][       Thread-253100][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 11:22:42,988 [DEBUG][       Thread-253100][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 11:22:42,988 [ INFO][       Thread-253100][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 11:22:42,995 [DEBUG][       Thread-253100][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 11:22:42,995 [DEBUG][       Thread-253100][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 11:22:42,995 [DEBUG][       Thread-253100][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 11:22:42,996 [DEBUG][       Thread-253100][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:22:42,996 [DEBUG][       Thread-253100][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:22:42,996 [DEBUG][       Thread-253100][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:22:42,996 [DEBUG][       Thread-253100][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:22:42,996 [DEBUG][       Thread-253100][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 11:22:42,996 [DEBUG][       Thread-253100][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 11:22:42,996 [DEBUG][       Thread-253100][   transport.py][1871] : client lang: <none>
2025-06-13 11:22:42,996 [DEBUG][       Thread-253100][   transport.py][1871] : server lang: <none>
2025-06-13 11:22:42,996 [DEBUG][       Thread-253100][   transport.py][1871] : kex follows: False
2025-06-13 11:22:42,996 [DEBUG][       Thread-253100][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 11:22:42,996 [DEBUG][       Thread-253100][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 11:22:42,996 [DEBUG][       Thread-253100][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 11:22:42,996 [DEBUG][       Thread-253100][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 11:22:42,996 [DEBUG][       Thread-253100][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 11:22:42,996 [DEBUG][       Thread-253100][   transport.py][1871] : Compression: none
2025-06-13 11:22:42,996 [DEBUG][       Thread-253100][   transport.py][1871] : === End of kex handshake ===
2025-06-13 11:22:43,056 [DEBUG][       Thread-253100][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 11:22:43,056 [DEBUG][       Thread-253100][   transport.py][1871] : Switch to new keys ...
2025-06-13 11:22:43,057 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 11:22:43,058 [DEBUG][       Thread-253100][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 11:22:43,058 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 11:22:43,112 [DEBUG][       Thread-253100][   transport.py][1871] : userauth is OK
2025-06-13 11:22:43,112 [DEBUG][       Thread-253100][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 11:22:43,112 [DEBUG][       Thread-253100][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 11:22:43,112 [DEBUG][       Thread-253100][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 11:22:43,112 [DEBUG][       Thread-253100][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 11:22:43,131 [ INFO][       Thread-253100][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 11:22:43,132 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 11:22:43,132 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 11:22:44,190 [DEBUG][       Thread-253100][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 11:22:44,190 [DEBUG][       Thread-253100][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 11:22:44,240 [DEBUG][       Thread-253100][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 11:22:44,241 [DEBUG][       Thread-253100][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 11:22:44,251 [DEBUG][       Thread-253100][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 11:22:44,262 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 11:22:44,262 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 11:22:44,274 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 11:22:44,283 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 11:22:44,283 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 11:22:44,284 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 11:22:44,299 [DEBUG][       Thread-253100][   transport.py][1871] : EOF in transport thread
2025-06-13 11:22:48,477 [DEBUG][Thread-253102 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:22:54,288 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 11:22:54,288 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 11:22:54,288 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 11:22:54,291 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 11:22:54,760 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 11, 22, 24), 10.64, 47.65, 0.0, 18.92, 10.08, 0, 0, 0, 2, 0, 0),)
2025-06-13 11:22:54,760 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 11:22:24
2025-06-13 11:22:54,841 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 11:22:54,845 [DEBUG][       Thread-253103][   transport.py][1871] : starting thread (client mode): 0x84207670
2025-06-13 11:22:54,845 [DEBUG][       Thread-253103][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 11:22:54,867 [DEBUG][       Thread-253103][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 11:22:54,867 [ INFO][       Thread-253103][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 11:22:54,871 [DEBUG][       Thread-253103][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 11:22:54,871 [DEBUG][       Thread-253103][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 11:22:54,871 [DEBUG][       Thread-253103][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 11:22:54,871 [DEBUG][       Thread-253103][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:22:54,871 [DEBUG][       Thread-253103][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:22:54,871 [DEBUG][       Thread-253103][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:22:54,871 [DEBUG][       Thread-253103][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:22:54,871 [DEBUG][       Thread-253103][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 11:22:54,871 [DEBUG][       Thread-253103][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 11:22:54,871 [DEBUG][       Thread-253103][   transport.py][1871] : client lang: <none>
2025-06-13 11:22:54,871 [DEBUG][       Thread-253103][   transport.py][1871] : server lang: <none>
2025-06-13 11:22:54,871 [DEBUG][       Thread-253103][   transport.py][1871] : kex follows: False
2025-06-13 11:22:54,871 [DEBUG][       Thread-253103][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 11:22:54,871 [DEBUG][       Thread-253103][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 11:22:54,871 [DEBUG][       Thread-253103][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 11:22:54,871 [DEBUG][       Thread-253103][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 11:22:54,871 [DEBUG][       Thread-253103][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 11:22:54,871 [DEBUG][       Thread-253103][   transport.py][1871] : Compression: none
2025-06-13 11:22:54,871 [DEBUG][       Thread-253103][   transport.py][1871] : === End of kex handshake ===
2025-06-13 11:22:54,887 [DEBUG][       Thread-253103][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 11:22:54,888 [DEBUG][       Thread-253103][   transport.py][1871] : Switch to new keys ...
2025-06-13 11:22:54,888 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 11:22:54,889 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 11:22:54,889 [DEBUG][       Thread-253103][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 11:22:54,890 [DEBUG][       Thread-253103][   transport.py][1871] : userauth is OK
2025-06-13 11:22:54,915 [ INFO][       Thread-253103][   transport.py][1871] : Authentication (password) successful!
2025-06-13 11:22:54,915 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 11:22:55,586 [DEBUG][       Thread-253103][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 11:22:55,586 [DEBUG][       Thread-253103][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 11:22:55,629 [DEBUG][       Thread-253103][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 11:22:55,629 [DEBUG][       Thread-253103][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 11:22:55,633 [DEBUG][       Thread-253103][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 11:22:55,646 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 11:22:55,646 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 11:22:55,649 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 11:22:55,651 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 11:22:55,658 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 11:22:55,660 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 11:22:55,660 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 11:22:55,661 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 11:22:55,661 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.390564 -999.00  +10.00  20.17     52   +0.80 1 1 1 1 1   887    0 10.84 52.44 ----- 20.4 20.2 44.4 23.7 14.6 -28.2 13.2 -29.9 12.5 -28.4 13.8 -26.3
2025-06-13 11:22:55,661 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 11:22:55,661 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 11:22:55,661 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.390564
2025-06-13 11:22:55,661 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 11:22:55,662 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 11:22:55,662 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 11:22:55,662 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 11:22:55,662 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 11:22:55,662 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T11:22:24', tmtdew=10.64, humidity=47.65, cloud=0.0, wind=18.92, temperature=10.08, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T09:22:24.730', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 11:22:55,663 [DEBUG][       Thread-253103][   transport.py][1871] : EOF in transport thread
2025-06-13 11:22:55,745 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 11:22:55,755 [DEBUG][       Thread-253106][   transport.py][1871] : starting thread (client mode): 0x863bda50
2025-06-13 11:22:55,755 [DEBUG][       Thread-253106][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 11:22:55,770 [DEBUG][       Thread-253106][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 11:22:55,770 [ INFO][       Thread-253106][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 11:22:55,778 [DEBUG][       Thread-253106][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 11:22:55,778 [DEBUG][       Thread-253106][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 11:22:55,778 [DEBUG][       Thread-253106][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 11:22:55,778 [DEBUG][       Thread-253106][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:22:55,779 [DEBUG][       Thread-253106][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:22:55,779 [DEBUG][       Thread-253106][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:22:55,779 [DEBUG][       Thread-253106][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:22:55,779 [DEBUG][       Thread-253106][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 11:22:55,779 [DEBUG][       Thread-253106][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 11:22:55,779 [DEBUG][       Thread-253106][   transport.py][1871] : client lang: <none>
2025-06-13 11:22:55,779 [DEBUG][       Thread-253106][   transport.py][1871] : server lang: <none>
2025-06-13 11:22:55,779 [DEBUG][       Thread-253106][   transport.py][1871] : kex follows: False
2025-06-13 11:22:55,779 [DEBUG][       Thread-253106][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 11:22:55,779 [DEBUG][       Thread-253106][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 11:22:55,779 [DEBUG][       Thread-253106][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 11:22:55,779 [DEBUG][       Thread-253106][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 11:22:55,779 [DEBUG][       Thread-253106][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 11:22:55,779 [DEBUG][       Thread-253106][   transport.py][1871] : Compression: none
2025-06-13 11:22:55,779 [DEBUG][       Thread-253106][   transport.py][1871] : === End of kex handshake ===
2025-06-13 11:22:55,836 [DEBUG][       Thread-253106][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 11:22:55,837 [DEBUG][       Thread-253106][   transport.py][1871] : Switch to new keys ...
2025-06-13 11:22:55,837 [DEBUG][       Thread-253106][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 11:22:55,838 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 11:22:55,838 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 11:22:55,896 [DEBUG][       Thread-253106][   transport.py][1871] : userauth is OK
2025-06-13 11:22:55,896 [DEBUG][       Thread-253106][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 11:22:55,897 [DEBUG][       Thread-253106][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 11:22:55,897 [DEBUG][       Thread-253106][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 11:22:55,897 [DEBUG][       Thread-253106][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 11:22:55,916 [ INFO][       Thread-253106][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 11:22:55,916 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 11:22:55,917 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 11:22:56,944 [DEBUG][       Thread-253106][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 11:22:56,945 [DEBUG][       Thread-253106][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 11:22:56,995 [DEBUG][       Thread-253106][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 11:22:56,995 [DEBUG][       Thread-253106][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 11:22:57,003 [DEBUG][       Thread-253106][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 11:22:57,011 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 11:22:57,011 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 11:22:57,019 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 11:22:57,027 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 11:22:57,028 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 11:22:57,028 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 11:22:57,036 [DEBUG][       Thread-253106][   transport.py][1871] : EOF in transport thread
2025-06-13 11:22:57,494 [DEBUG][Thread-253108 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:23:06,514 [DEBUG][Thread-253109 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:23:07,038 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 11:23:07,038 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 11:23:07,038 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 11:23:07,041 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 11:23:07,484 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 11, 22, 55), 10.76, 47.24, 0.0, 20.06, 10.1, 0, 0, 0, 2, 0, 0),)
2025-06-13 11:23:07,484 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 11:22:55
2025-06-13 11:23:07,565 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 11:23:07,570 [DEBUG][       Thread-253110][   transport.py][1871] : starting thread (client mode): 0x863bfac0
2025-06-13 11:23:07,570 [DEBUG][       Thread-253110][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 11:23:07,591 [DEBUG][       Thread-253110][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 11:23:07,591 [ INFO][       Thread-253110][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 11:23:07,594 [DEBUG][       Thread-253110][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 11:23:07,594 [DEBUG][       Thread-253110][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 11:23:07,594 [DEBUG][       Thread-253110][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 11:23:07,594 [DEBUG][       Thread-253110][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:23:07,594 [DEBUG][       Thread-253110][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:23:07,594 [DEBUG][       Thread-253110][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:23:07,594 [DEBUG][       Thread-253110][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:23:07,594 [DEBUG][       Thread-253110][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 11:23:07,594 [DEBUG][       Thread-253110][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 11:23:07,594 [DEBUG][       Thread-253110][   transport.py][1871] : client lang: <none>
2025-06-13 11:23:07,594 [DEBUG][       Thread-253110][   transport.py][1871] : server lang: <none>
2025-06-13 11:23:07,594 [DEBUG][       Thread-253110][   transport.py][1871] : kex follows: False
2025-06-13 11:23:07,594 [DEBUG][       Thread-253110][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 11:23:07,594 [DEBUG][       Thread-253110][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 11:23:07,594 [DEBUG][       Thread-253110][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 11:23:07,594 [DEBUG][       Thread-253110][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 11:23:07,594 [DEBUG][       Thread-253110][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 11:23:07,594 [DEBUG][       Thread-253110][   transport.py][1871] : Compression: none
2025-06-13 11:23:07,594 [DEBUG][       Thread-253110][   transport.py][1871] : === End of kex handshake ===
2025-06-13 11:23:07,614 [DEBUG][       Thread-253110][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 11:23:07,614 [DEBUG][       Thread-253110][   transport.py][1871] : Switch to new keys ...
2025-06-13 11:23:07,615 [DEBUG][       Thread-253110][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 11:23:07,615 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 11:23:07,615 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 11:23:07,616 [DEBUG][       Thread-253110][   transport.py][1871] : userauth is OK
2025-06-13 11:23:07,643 [ INFO][       Thread-253110][   transport.py][1871] : Authentication (password) successful!
2025-06-13 11:23:07,644 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 11:23:08,282 [DEBUG][       Thread-253110][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 11:23:08,282 [DEBUG][       Thread-253110][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 11:23:08,325 [DEBUG][       Thread-253110][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 11:23:08,325 [DEBUG][       Thread-253110][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 11:23:08,328 [DEBUG][       Thread-253110][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 11:23:08,340 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 11:23:08,341 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 11:23:08,342 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 11:23:08,344 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 11:23:08,349 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 11:23:08,351 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 11:23:08,351 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 11:23:08,352 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 11:23:08,352 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.390564 -999.00  +10.00  20.17     52   +0.80 1 1 1 1 1   887    0 10.84 52.44 ----- 20.4 20.2 44.4 23.7 14.6 -28.2 13.2 -29.9 12.5 -28.4 13.8 -26.3
2025-06-13 11:23:08,352 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 11:23:08,352 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 11:23:08,352 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.390564
2025-06-13 11:23:08,353 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 11:23:08,353 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 11:23:08,353 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 11:23:08,353 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 11:23:08,353 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 11:23:08,354 [DEBUG][       Thread-253110][   transport.py][1871] : EOF in transport thread
2025-06-13 11:23:08,354 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T11:22:55', tmtdew=10.76, humidity=47.24, cloud=0.0, wind=20.06, temperature=10.1, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T09:22:24.730', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 11:23:08,437 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 11:23:08,448 [DEBUG][       Thread-253113][   transport.py][1871] : starting thread (client mode): 0x863c8880
2025-06-13 11:23:08,448 [DEBUG][       Thread-253113][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 11:23:08,464 [DEBUG][       Thread-253113][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 11:23:08,464 [ INFO][       Thread-253113][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 11:23:08,471 [DEBUG][       Thread-253113][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 11:23:08,471 [DEBUG][       Thread-253113][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 11:23:08,472 [DEBUG][       Thread-253113][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 11:23:08,472 [DEBUG][       Thread-253113][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:23:08,472 [DEBUG][       Thread-253113][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:23:08,472 [DEBUG][       Thread-253113][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:23:08,472 [DEBUG][       Thread-253113][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:23:08,472 [DEBUG][       Thread-253113][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 11:23:08,472 [DEBUG][       Thread-253113][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 11:23:08,472 [DEBUG][       Thread-253113][   transport.py][1871] : client lang: <none>
2025-06-13 11:23:08,472 [DEBUG][       Thread-253113][   transport.py][1871] : server lang: <none>
2025-06-13 11:23:08,472 [DEBUG][       Thread-253113][   transport.py][1871] : kex follows: False
2025-06-13 11:23:08,472 [DEBUG][       Thread-253113][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 11:23:08,472 [DEBUG][       Thread-253113][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 11:23:08,472 [DEBUG][       Thread-253113][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 11:23:08,472 [DEBUG][       Thread-253113][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 11:23:08,472 [DEBUG][       Thread-253113][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 11:23:08,472 [DEBUG][       Thread-253113][   transport.py][1871] : Compression: none
2025-06-13 11:23:08,472 [DEBUG][       Thread-253113][   transport.py][1871] : === End of kex handshake ===
2025-06-13 11:23:08,533 [DEBUG][       Thread-253113][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 11:23:08,533 [DEBUG][       Thread-253113][   transport.py][1871] : Switch to new keys ...
2025-06-13 11:23:08,534 [DEBUG][       Thread-253113][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 11:23:08,534 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 11:23:08,535 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 11:23:08,594 [DEBUG][       Thread-253113][   transport.py][1871] : userauth is OK
2025-06-13 11:23:08,594 [DEBUG][       Thread-253113][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 11:23:08,594 [DEBUG][       Thread-253113][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 11:23:08,594 [DEBUG][       Thread-253113][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 11:23:08,594 [DEBUG][       Thread-253113][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 11:23:08,613 [ INFO][       Thread-253113][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 11:23:08,613 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 11:23:08,614 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 11:23:08,949 [DEBUG][Thread-253115 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:23:09,652 [DEBUG][       Thread-253113][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 11:23:09,653 [DEBUG][       Thread-253113][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 11:23:09,703 [DEBUG][       Thread-253113][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 11:23:09,703 [DEBUG][       Thread-253113][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 11:23:09,716 [DEBUG][       Thread-253113][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 11:23:09,726 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 11:23:09,726 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 11:23:09,735 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 11:23:09,744 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 11:23:09,745 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 11:23:09,745 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 11:23:09,753 [DEBUG][       Thread-253113][   transport.py][1871] : EOF in transport thread
2025-06-13 11:23:14,881 [DEBUG][Thread-253116 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:23:15,536 [DEBUG][Thread-253117 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:23:15,963 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:23:15,964 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:23:19,755 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 11:23:19,756 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 11:23:19,756 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 11:23:19,759 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 11:23:20,215 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 11, 22, 55), 10.76, 47.24, 0.0, 20.06, 10.1, 0, 0, 0, 2, 0, 0),)
2025-06-13 11:23:20,215 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 11:22:55
2025-06-13 11:23:20,296 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 11:23:20,299 [DEBUG][       Thread-253118][   transport.py][1871] : starting thread (client mode): 0x863bfbe0
2025-06-13 11:23:20,299 [DEBUG][       Thread-253118][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 11:23:20,320 [DEBUG][       Thread-253118][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 11:23:20,320 [ INFO][       Thread-253118][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 11:23:20,323 [DEBUG][       Thread-253118][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 11:23:20,323 [DEBUG][       Thread-253118][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 11:23:20,323 [DEBUG][       Thread-253118][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 11:23:20,323 [DEBUG][       Thread-253118][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:23:20,323 [DEBUG][       Thread-253118][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:23:20,323 [DEBUG][       Thread-253118][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:23:20,323 [DEBUG][       Thread-253118][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:23:20,323 [DEBUG][       Thread-253118][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 11:23:20,323 [DEBUG][       Thread-253118][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 11:23:20,323 [DEBUG][       Thread-253118][   transport.py][1871] : client lang: <none>
2025-06-13 11:23:20,323 [DEBUG][       Thread-253118][   transport.py][1871] : server lang: <none>
2025-06-13 11:23:20,323 [DEBUG][       Thread-253118][   transport.py][1871] : kex follows: False
2025-06-13 11:23:20,323 [DEBUG][       Thread-253118][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 11:23:20,323 [DEBUG][       Thread-253118][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 11:23:20,323 [DEBUG][       Thread-253118][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 11:23:20,323 [DEBUG][       Thread-253118][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 11:23:20,323 [DEBUG][       Thread-253118][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 11:23:20,323 [DEBUG][       Thread-253118][   transport.py][1871] : Compression: none
2025-06-13 11:23:20,323 [DEBUG][       Thread-253118][   transport.py][1871] : === End of kex handshake ===
2025-06-13 11:23:20,342 [DEBUG][       Thread-253118][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 11:23:20,342 [DEBUG][       Thread-253118][   transport.py][1871] : Switch to new keys ...
2025-06-13 11:23:20,342 [DEBUG][       Thread-253118][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 11:23:20,342 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 11:23:20,343 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 11:23:20,343 [DEBUG][       Thread-253118][   transport.py][1871] : userauth is OK
2025-06-13 11:23:20,358 [ INFO][       Thread-253118][   transport.py][1871] : Authentication (password) successful!
2025-06-13 11:23:20,358 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 11:23:20,973 [DEBUG][       Thread-253118][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 11:23:20,973 [DEBUG][       Thread-253118][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 11:23:21,017 [DEBUG][       Thread-253118][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 11:23:21,017 [DEBUG][       Thread-253118][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 11:23:21,020 [DEBUG][       Thread-253118][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 11:23:21,032 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 11:23:21,032 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 11:23:21,034 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 11:23:21,035 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 11:23:21,040 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 11:23:21,042 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 11:23:21,042 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 11:23:21,043 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 11:23:21,043 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.390911 -999.00  +10.00  23.65     51   +0.50 1 1 1 1 1   887    0 10.45 47.84 ----- 22.5 23.6 45.4 26.5 14.6 -28.8 13.2 -30.0 12.5 -28.5 13.8 -26.5
2025-06-13 11:23:21,043 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 11:23:21,043 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 11:23:21,043 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.390911
2025-06-13 11:23:21,044 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 11:23:21,044 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 11:23:21,044 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 11:23:21,044 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 11:23:21,044 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 11:23:21,045 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T11:22:55', tmtdew=10.76, humidity=47.24, cloud=0.0, wind=20.06, temperature=10.1, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T09:22:54.710', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 11:23:21,046 [DEBUG][       Thread-253118][   transport.py][1871] : EOF in transport thread
2025-06-13 11:23:21,128 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 11:23:21,138 [DEBUG][       Thread-253121][   transport.py][1871] : starting thread (client mode): 0x867b5ae0
2025-06-13 11:23:21,138 [DEBUG][       Thread-253121][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 11:23:21,153 [DEBUG][       Thread-253121][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 11:23:21,153 [ INFO][       Thread-253121][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 11:23:21,161 [DEBUG][       Thread-253121][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 11:23:21,161 [DEBUG][       Thread-253121][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 11:23:21,161 [DEBUG][       Thread-253121][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 11:23:21,161 [DEBUG][       Thread-253121][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:23:21,161 [DEBUG][       Thread-253121][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:23:21,161 [DEBUG][       Thread-253121][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:23:21,161 [DEBUG][       Thread-253121][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:23:21,162 [DEBUG][       Thread-253121][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 11:23:21,162 [DEBUG][       Thread-253121][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 11:23:21,162 [DEBUG][       Thread-253121][   transport.py][1871] : client lang: <none>
2025-06-13 11:23:21,162 [DEBUG][       Thread-253121][   transport.py][1871] : server lang: <none>
2025-06-13 11:23:21,162 [DEBUG][       Thread-253121][   transport.py][1871] : kex follows: False
2025-06-13 11:23:21,162 [DEBUG][       Thread-253121][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 11:23:21,162 [DEBUG][       Thread-253121][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 11:23:21,162 [DEBUG][       Thread-253121][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 11:23:21,162 [DEBUG][       Thread-253121][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 11:23:21,163 [DEBUG][       Thread-253121][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 11:23:21,163 [DEBUG][       Thread-253121][   transport.py][1871] : Compression: none
2025-06-13 11:23:21,163 [DEBUG][       Thread-253121][   transport.py][1871] : === End of kex handshake ===
2025-06-13 11:23:21,220 [DEBUG][       Thread-253121][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 11:23:21,220 [DEBUG][       Thread-253121][   transport.py][1871] : Switch to new keys ...
2025-06-13 11:23:21,221 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 11:23:21,221 [DEBUG][       Thread-253121][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 11:23:21,222 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 11:23:21,280 [DEBUG][       Thread-253121][   transport.py][1871] : userauth is OK
2025-06-13 11:23:21,280 [DEBUG][       Thread-253121][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 11:23:21,280 [DEBUG][       Thread-253121][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 11:23:21,281 [DEBUG][       Thread-253121][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 11:23:21,281 [DEBUG][       Thread-253121][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 11:23:21,299 [ INFO][       Thread-253121][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 11:23:21,300 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 11:23:21,300 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 11:23:22,331 [DEBUG][       Thread-253121][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 11:23:22,332 [DEBUG][       Thread-253121][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 11:23:22,380 [DEBUG][       Thread-253121][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 11:23:22,380 [DEBUG][       Thread-253121][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 11:23:22,389 [DEBUG][       Thread-253121][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 11:23:22,398 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 11:23:22,398 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 11:23:22,407 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 11:23:22,415 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 11:23:22,415 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 11:23:22,415 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 11:23:22,423 [DEBUG][       Thread-253121][   transport.py][1871] : EOF in transport thread
2025-06-13 11:23:24,569 [DEBUG][Thread-253123 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:23:32,425 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 11:23:32,426 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 11:23:32,426 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 11:23:32,429 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 11:23:32,876 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 11, 23, 27), 10.81, 46.95, 0.0, 20.01, 10.01, 0, 0, 0, 2, 0, 0),)
2025-06-13 11:23:32,876 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 11:23:27
2025-06-13 11:23:32,957 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 11:23:32,963 [DEBUG][       Thread-253124][   transport.py][1871] : starting thread (client mode): 0x863bfdc0
2025-06-13 11:23:32,963 [DEBUG][       Thread-253124][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 11:23:32,984 [DEBUG][       Thread-253124][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 11:23:32,984 [ INFO][       Thread-253124][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 11:23:32,988 [DEBUG][       Thread-253124][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 11:23:32,988 [DEBUG][       Thread-253124][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 11:23:32,988 [DEBUG][       Thread-253124][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 11:23:32,988 [DEBUG][       Thread-253124][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:23:32,988 [DEBUG][       Thread-253124][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:23:32,988 [DEBUG][       Thread-253124][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:23:32,988 [DEBUG][       Thread-253124][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:23:32,988 [DEBUG][       Thread-253124][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 11:23:32,988 [DEBUG][       Thread-253124][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 11:23:32,988 [DEBUG][       Thread-253124][   transport.py][1871] : client lang: <none>
2025-06-13 11:23:32,988 [DEBUG][       Thread-253124][   transport.py][1871] : server lang: <none>
2025-06-13 11:23:32,988 [DEBUG][       Thread-253124][   transport.py][1871] : kex follows: False
2025-06-13 11:23:32,988 [DEBUG][       Thread-253124][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 11:23:32,988 [DEBUG][       Thread-253124][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 11:23:32,988 [DEBUG][       Thread-253124][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 11:23:32,988 [DEBUG][       Thread-253124][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 11:23:32,988 [DEBUG][       Thread-253124][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 11:23:32,988 [DEBUG][       Thread-253124][   transport.py][1871] : Compression: none
2025-06-13 11:23:32,988 [DEBUG][       Thread-253124][   transport.py][1871] : === End of kex handshake ===
2025-06-13 11:23:33,006 [DEBUG][       Thread-253124][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 11:23:33,006 [DEBUG][       Thread-253124][   transport.py][1871] : Switch to new keys ...
2025-06-13 11:23:33,007 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 11:23:33,007 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 11:23:33,007 [DEBUG][       Thread-253124][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 11:23:33,008 [DEBUG][       Thread-253124][   transport.py][1871] : userauth is OK
2025-06-13 11:23:33,034 [ INFO][       Thread-253124][   transport.py][1871] : Authentication (password) successful!
2025-06-13 11:23:33,034 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 11:23:33,588 [DEBUG][Thread-253126 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:23:33,653 [DEBUG][       Thread-253124][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 11:23:33,653 [DEBUG][       Thread-253124][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 11:23:33,697 [DEBUG][       Thread-253124][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 11:23:33,697 [DEBUG][       Thread-253124][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 11:23:33,701 [DEBUG][       Thread-253124][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 11:23:33,713 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 11:23:33,714 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 11:23:33,716 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 11:23:33,718 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 11:23:33,724 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 11:23:33,726 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 11:23:33,726 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 11:23:33,727 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 11:23:33,727 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.390911 -999.00  +10.00  23.65     51   +0.50 1 1 1 1 1   887    0 10.45 47.84 ----- 22.5 23.6 45.4 26.5 14.6 -28.8 13.2 -30.0 12.5 -28.5 13.8 -26.5
2025-06-13 11:23:33,727 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 11:23:33,727 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 11:23:33,727 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.390911
2025-06-13 11:23:33,727 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 11:23:33,727 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 11:23:33,727 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 11:23:33,727 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 11:23:33,727 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 11:23:33,727 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T11:23:27', tmtdew=10.81, humidity=46.95, cloud=0.0, wind=20.01, temperature=10.01, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T09:22:54.710', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 11:23:33,728 [DEBUG][       Thread-253124][   transport.py][1871] : EOF in transport thread
2025-06-13 11:23:33,802 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 11:23:33,813 [DEBUG][       Thread-253128][   transport.py][1871] : starting thread (client mode): 0x867ffc10
2025-06-13 11:23:33,813 [DEBUG][       Thread-253128][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 11:23:33,828 [DEBUG][       Thread-253128][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 11:23:33,828 [ INFO][       Thread-253128][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 11:23:33,836 [DEBUG][       Thread-253128][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 11:23:33,836 [DEBUG][       Thread-253128][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 11:23:33,836 [DEBUG][       Thread-253128][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 11:23:33,836 [DEBUG][       Thread-253128][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:23:33,836 [DEBUG][       Thread-253128][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:23:33,836 [DEBUG][       Thread-253128][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:23:33,836 [DEBUG][       Thread-253128][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:23:33,836 [DEBUG][       Thread-253128][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 11:23:33,836 [DEBUG][       Thread-253128][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 11:23:33,836 [DEBUG][       Thread-253128][   transport.py][1871] : client lang: <none>
2025-06-13 11:23:33,836 [DEBUG][       Thread-253128][   transport.py][1871] : server lang: <none>
2025-06-13 11:23:33,836 [DEBUG][       Thread-253128][   transport.py][1871] : kex follows: False
2025-06-13 11:23:33,836 [DEBUG][       Thread-253128][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 11:23:33,836 [DEBUG][       Thread-253128][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 11:23:33,836 [DEBUG][       Thread-253128][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 11:23:33,836 [DEBUG][       Thread-253128][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 11:23:33,836 [DEBUG][       Thread-253128][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 11:23:33,836 [DEBUG][       Thread-253128][   transport.py][1871] : Compression: none
2025-06-13 11:23:33,836 [DEBUG][       Thread-253128][   transport.py][1871] : === End of kex handshake ===
2025-06-13 11:23:33,900 [DEBUG][       Thread-253128][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 11:23:33,901 [DEBUG][       Thread-253128][   transport.py][1871] : Switch to new keys ...
2025-06-13 11:23:33,902 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 11:23:33,902 [DEBUG][       Thread-253128][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 11:23:33,903 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 11:23:33,960 [DEBUG][       Thread-253128][   transport.py][1871] : userauth is OK
2025-06-13 11:23:33,961 [DEBUG][       Thread-253128][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 11:23:33,961 [DEBUG][       Thread-253128][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 11:23:33,961 [DEBUG][       Thread-253128][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 11:23:33,961 [DEBUG][       Thread-253128][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 11:23:33,980 [ INFO][       Thread-253128][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 11:23:33,981 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 11:23:33,981 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 11:23:34,361 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:23:34,362 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:23:35,002 [DEBUG][       Thread-253128][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 11:23:35,002 [DEBUG][       Thread-253128][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 11:23:35,053 [DEBUG][       Thread-253128][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 11:23:35,053 [DEBUG][       Thread-253128][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 11:23:35,065 [DEBUG][       Thread-253128][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 11:23:35,075 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 11:23:35,075 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 11:23:35,085 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 11:23:35,095 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 11:23:35,095 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 11:23:35,096 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 11:23:35,105 [DEBUG][       Thread-253128][   transport.py][1871] : EOF in transport thread
2025-06-13 11:23:42,612 [DEBUG][Thread-253130 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:23:45,106 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 11:23:45,107 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 11:23:45,107 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 11:23:45,110 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 11:23:45,557 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 11, 23, 27), 10.81, 46.95, 0.0, 20.01, 10.01, 0, 0, 0, 2, 0, 0),)
2025-06-13 11:23:45,558 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 11:23:27
2025-06-13 11:23:45,639 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 11:23:45,645 [DEBUG][       Thread-253131][   transport.py][1871] : starting thread (client mode): 0x863bff70
2025-06-13 11:23:45,645 [DEBUG][       Thread-253131][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 11:23:45,665 [DEBUG][       Thread-253131][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 11:23:45,665 [ INFO][       Thread-253131][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 11:23:45,669 [DEBUG][       Thread-253131][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 11:23:45,669 [DEBUG][       Thread-253131][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 11:23:45,669 [DEBUG][       Thread-253131][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 11:23:45,669 [DEBUG][       Thread-253131][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:23:45,669 [DEBUG][       Thread-253131][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:23:45,669 [DEBUG][       Thread-253131][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:23:45,669 [DEBUG][       Thread-253131][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:23:45,669 [DEBUG][       Thread-253131][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 11:23:45,669 [DEBUG][       Thread-253131][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 11:23:45,669 [DEBUG][       Thread-253131][   transport.py][1871] : client lang: <none>
2025-06-13 11:23:45,669 [DEBUG][       Thread-253131][   transport.py][1871] : server lang: <none>
2025-06-13 11:23:45,669 [DEBUG][       Thread-253131][   transport.py][1871] : kex follows: False
2025-06-13 11:23:45,669 [DEBUG][       Thread-253131][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 11:23:45,669 [DEBUG][       Thread-253131][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 11:23:45,670 [DEBUG][       Thread-253131][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 11:23:45,670 [DEBUG][       Thread-253131][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 11:23:45,670 [DEBUG][       Thread-253131][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 11:23:45,670 [DEBUG][       Thread-253131][   transport.py][1871] : Compression: none
2025-06-13 11:23:45,670 [DEBUG][       Thread-253131][   transport.py][1871] : === End of kex handshake ===
2025-06-13 11:23:45,685 [DEBUG][       Thread-253131][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 11:23:45,686 [DEBUG][       Thread-253131][   transport.py][1871] : Switch to new keys ...
2025-06-13 11:23:45,686 [DEBUG][       Thread-253131][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 11:23:45,686 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 11:23:45,687 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 11:23:45,727 [DEBUG][       Thread-253131][   transport.py][1871] : userauth is OK
2025-06-13 11:23:45,754 [ INFO][       Thread-253131][   transport.py][1871] : Authentication (password) successful!
2025-06-13 11:23:45,754 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 11:23:46,364 [DEBUG][       Thread-253131][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 11:23:46,364 [DEBUG][       Thread-253131][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 11:23:46,405 [DEBUG][       Thread-253131][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 11:23:46,405 [DEBUG][       Thread-253131][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 11:23:46,409 [DEBUG][       Thread-253131][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 11:23:46,423 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 11:23:46,424 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 11:23:46,425 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 11:23:46,427 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 11:23:46,433 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 11:23:46,435 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 11:23:46,435 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 11:23:46,436 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 11:23:46,436 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.390911 -999.00  +10.00  23.65     51   +0.50 1 1 1 1 1   887    0 10.45 47.84 ----- 22.5 23.6 45.4 26.5 14.6 -28.8 13.2 -30.0 12.5 -28.5 13.8 -26.5
2025-06-13 11:23:46,436 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 11:23:46,436 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 11:23:46,436 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.390911
2025-06-13 11:23:46,437 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 11:23:46,437 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 11:23:46,437 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 11:23:46,437 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 11:23:46,437 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 11:23:46,438 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T11:23:27', tmtdew=10.81, humidity=46.95, cloud=0.0, wind=20.01, temperature=10.01, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T09:22:54.710', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 11:23:46,438 [DEBUG][       Thread-253131][   transport.py][1871] : EOF in transport thread
2025-06-13 11:23:46,521 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 11:23:46,533 [DEBUG][       Thread-253134][   transport.py][1871] : starting thread (client mode): 0x86893820
2025-06-13 11:23:46,533 [DEBUG][       Thread-253134][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 11:23:46,552 [DEBUG][       Thread-253134][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 11:23:46,552 [ INFO][       Thread-253134][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 11:23:46,560 [DEBUG][       Thread-253134][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 11:23:46,560 [DEBUG][       Thread-253134][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 11:23:46,560 [DEBUG][       Thread-253134][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 11:23:46,560 [DEBUG][       Thread-253134][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:23:46,560 [DEBUG][       Thread-253134][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:23:46,560 [DEBUG][       Thread-253134][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:23:46,560 [DEBUG][       Thread-253134][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:23:46,560 [DEBUG][       Thread-253134][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 11:23:46,560 [DEBUG][       Thread-253134][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 11:23:46,560 [DEBUG][       Thread-253134][   transport.py][1871] : client lang: <none>
2025-06-13 11:23:46,560 [DEBUG][       Thread-253134][   transport.py][1871] : server lang: <none>
2025-06-13 11:23:46,561 [DEBUG][       Thread-253134][   transport.py][1871] : kex follows: False
2025-06-13 11:23:46,561 [DEBUG][       Thread-253134][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 11:23:46,561 [DEBUG][       Thread-253134][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 11:23:46,561 [DEBUG][       Thread-253134][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 11:23:46,561 [DEBUG][       Thread-253134][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 11:23:46,561 [DEBUG][       Thread-253134][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 11:23:46,561 [DEBUG][       Thread-253134][   transport.py][1871] : Compression: none
2025-06-13 11:23:46,561 [DEBUG][       Thread-253134][   transport.py][1871] : === End of kex handshake ===
2025-06-13 11:23:46,622 [DEBUG][       Thread-253134][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 11:23:46,623 [DEBUG][       Thread-253134][   transport.py][1871] : Switch to new keys ...
2025-06-13 11:23:46,624 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 11:23:46,624 [DEBUG][       Thread-253134][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 11:23:46,625 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 11:23:46,692 [DEBUG][       Thread-253134][   transport.py][1871] : userauth is OK
2025-06-13 11:23:46,692 [DEBUG][       Thread-253134][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 11:23:46,692 [DEBUG][       Thread-253134][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 11:23:46,693 [DEBUG][       Thread-253134][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 11:23:46,693 [DEBUG][       Thread-253134][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 11:23:46,715 [ INFO][       Thread-253134][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 11:23:46,715 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 11:23:46,716 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 11:23:47,791 [DEBUG][       Thread-253134][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 11:23:47,791 [DEBUG][       Thread-253134][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 11:23:47,841 [DEBUG][       Thread-253134][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 11:23:47,841 [DEBUG][       Thread-253134][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 11:23:47,852 [DEBUG][       Thread-253134][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 11:23:47,861 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 11:23:47,862 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 11:23:47,873 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 11:23:47,884 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 11:23:47,885 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 11:23:47,885 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 11:23:47,895 [DEBUG][       Thread-253134][   transport.py][1871] : EOF in transport thread
2025-06-13 11:23:51,645 [DEBUG][Thread-253136 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:23:57,895 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 11:23:57,896 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 11:23:57,896 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 11:23:57,899 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 11:23:58,358 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 11, 23, 27), 10.81, 46.95, 0.0, 20.01, 10.01, 0, 0, 0, 2, 0, 0),)
2025-06-13 11:23:58,358 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 11:23:27
2025-06-13 11:23:58,440 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 11:23:58,445 [DEBUG][       Thread-253137][   transport.py][1871] : starting thread (client mode): 0x86368940
2025-06-13 11:23:58,445 [DEBUG][       Thread-253137][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 11:23:58,466 [DEBUG][       Thread-253137][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 11:23:58,466 [ INFO][       Thread-253137][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 11:23:58,469 [DEBUG][       Thread-253137][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 11:23:58,470 [DEBUG][       Thread-253137][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 11:23:58,470 [DEBUG][       Thread-253137][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 11:23:58,470 [DEBUG][       Thread-253137][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:23:58,470 [DEBUG][       Thread-253137][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:23:58,470 [DEBUG][       Thread-253137][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:23:58,470 [DEBUG][       Thread-253137][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:23:58,470 [DEBUG][       Thread-253137][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 11:23:58,470 [DEBUG][       Thread-253137][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 11:23:58,470 [DEBUG][       Thread-253137][   transport.py][1871] : client lang: <none>
2025-06-13 11:23:58,470 [DEBUG][       Thread-253137][   transport.py][1871] : server lang: <none>
2025-06-13 11:23:58,470 [DEBUG][       Thread-253137][   transport.py][1871] : kex follows: False
2025-06-13 11:23:58,470 [DEBUG][       Thread-253137][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 11:23:58,470 [DEBUG][       Thread-253137][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 11:23:58,470 [DEBUG][       Thread-253137][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 11:23:58,470 [DEBUG][       Thread-253137][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 11:23:58,470 [DEBUG][       Thread-253137][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 11:23:58,470 [DEBUG][       Thread-253137][   transport.py][1871] : Compression: none
2025-06-13 11:23:58,470 [DEBUG][       Thread-253137][   transport.py][1871] : === End of kex handshake ===
2025-06-13 11:23:58,486 [DEBUG][       Thread-253137][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 11:23:58,487 [DEBUG][       Thread-253137][   transport.py][1871] : Switch to new keys ...
2025-06-13 11:23:58,487 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 11:23:58,488 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 11:23:58,488 [DEBUG][       Thread-253137][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 11:23:58,489 [DEBUG][       Thread-253137][   transport.py][1871] : userauth is OK
2025-06-13 11:23:58,502 [ INFO][       Thread-253137][   transport.py][1871] : Authentication (password) successful!
2025-06-13 11:23:58,503 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 11:23:59,121 [DEBUG][       Thread-253137][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 11:23:59,121 [DEBUG][       Thread-253137][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 11:23:59,165 [DEBUG][       Thread-253137][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 11:23:59,165 [DEBUG][       Thread-253137][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 11:23:59,168 [DEBUG][       Thread-253137][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 11:23:59,180 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 11:23:59,180 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 11:23:59,182 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 11:23:59,185 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 11:23:59,191 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 11:23:59,194 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 11:23:59,194 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 11:23:59,195 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 11:23:59,195 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.391258 -999.00  +10.00  26.22     51   +0.30 1 1 1 1 1   887    0 10.47 49.00 ----- 24.6 26.2 51.6 31.6 14.6 -27.4 13.2 -29.7 12.5 -28.3 13.8 -27.0
2025-06-13 11:23:59,195 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 11:23:59,195 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 11:23:59,195 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.391258
2025-06-13 11:23:59,196 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 11:23:59,196 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 11:23:59,197 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 11:23:59,197 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 11:23:59,197 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 11:23:59,197 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T11:23:27', tmtdew=10.81, humidity=46.95, cloud=0.0, wind=20.01, temperature=10.01, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T09:23:24.691', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 11:23:59,197 [DEBUG][       Thread-253137][   transport.py][1871] : EOF in transport thread
2025-06-13 11:23:59,280 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 11:23:59,294 [DEBUG][       Thread-253140][   transport.py][1871] : starting thread (client mode): 0x86893820
2025-06-13 11:23:59,294 [DEBUG][       Thread-253140][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 11:23:59,313 [DEBUG][       Thread-253140][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 11:23:59,314 [ INFO][       Thread-253140][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 11:23:59,323 [DEBUG][       Thread-253140][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 11:23:59,323 [DEBUG][       Thread-253140][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 11:23:59,324 [DEBUG][       Thread-253140][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 11:23:59,324 [DEBUG][       Thread-253140][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:23:59,324 [DEBUG][       Thread-253140][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:23:59,324 [DEBUG][       Thread-253140][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:23:59,324 [DEBUG][       Thread-253140][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:23:59,324 [DEBUG][       Thread-253140][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 11:23:59,324 [DEBUG][       Thread-253140][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 11:23:59,324 [DEBUG][       Thread-253140][   transport.py][1871] : client lang: <none>
2025-06-13 11:23:59,324 [DEBUG][       Thread-253140][   transport.py][1871] : server lang: <none>
2025-06-13 11:23:59,324 [DEBUG][       Thread-253140][   transport.py][1871] : kex follows: False
2025-06-13 11:23:59,324 [DEBUG][       Thread-253140][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 11:23:59,324 [DEBUG][       Thread-253140][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 11:23:59,324 [DEBUG][       Thread-253140][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 11:23:59,324 [DEBUG][       Thread-253140][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 11:23:59,325 [DEBUG][       Thread-253140][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 11:23:59,325 [DEBUG][       Thread-253140][   transport.py][1871] : Compression: none
2025-06-13 11:23:59,325 [DEBUG][       Thread-253140][   transport.py][1871] : === End of kex handshake ===
2025-06-13 11:23:59,391 [DEBUG][       Thread-253140][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 11:23:59,392 [DEBUG][       Thread-253140][   transport.py][1871] : Switch to new keys ...
2025-06-13 11:23:59,393 [DEBUG][       Thread-253140][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 11:23:59,393 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 11:23:59,394 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 11:23:59,452 [DEBUG][       Thread-253140][   transport.py][1871] : userauth is OK
2025-06-13 11:23:59,453 [DEBUG][       Thread-253140][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 11:23:59,453 [DEBUG][       Thread-253140][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 11:23:59,453 [DEBUG][       Thread-253140][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 11:23:59,453 [DEBUG][       Thread-253140][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 11:23:59,471 [ INFO][       Thread-253140][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 11:23:59,471 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 11:23:59,472 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 11:24:00,529 [DEBUG][       Thread-253140][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 11:24:00,529 [DEBUG][       Thread-253140][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 11:24:00,579 [DEBUG][       Thread-253140][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 11:24:00,579 [DEBUG][       Thread-253140][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 11:24:00,588 [DEBUG][       Thread-253140][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 11:24:00,597 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 11:24:00,597 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 11:24:00,607 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 11:24:00,617 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 11:24:00,617 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 11:24:00,617 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 11:24:00,626 [DEBUG][       Thread-253140][   transport.py][1871] : EOF in transport thread
2025-06-13 11:24:00,665 [DEBUG][Thread-253142 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:24:08,999 [DEBUG][Thread-253143 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:24:09,686 [DEBUG][Thread-253144 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:24:10,620 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 11:24:10,621 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 11:24:10,621 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 11:24:10,624 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 11:24:11,081 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 11, 23, 59), 10.74, 47.18, 0.0, 20.05, 10.04, 0, 0, 0, 2, 0, 0),)
2025-06-13 11:24:11,081 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 11:23:59
2025-06-13 11:24:11,163 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 11:24:11,169 [DEBUG][       Thread-253145][   transport.py][1871] : starting thread (client mode): 0x84205bd0
2025-06-13 11:24:11,169 [DEBUG][       Thread-253145][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 11:24:11,190 [DEBUG][       Thread-253145][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 11:24:11,190 [ INFO][       Thread-253145][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 11:24:11,194 [DEBUG][       Thread-253145][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 11:24:11,194 [DEBUG][       Thread-253145][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 11:24:11,194 [DEBUG][       Thread-253145][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 11:24:11,194 [DEBUG][       Thread-253145][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:24:11,194 [DEBUG][       Thread-253145][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:24:11,194 [DEBUG][       Thread-253145][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:24:11,194 [DEBUG][       Thread-253145][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:24:11,194 [DEBUG][       Thread-253145][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 11:24:11,194 [DEBUG][       Thread-253145][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 11:24:11,194 [DEBUG][       Thread-253145][   transport.py][1871] : client lang: <none>
2025-06-13 11:24:11,194 [DEBUG][       Thread-253145][   transport.py][1871] : server lang: <none>
2025-06-13 11:24:11,194 [DEBUG][       Thread-253145][   transport.py][1871] : kex follows: False
2025-06-13 11:24:11,194 [DEBUG][       Thread-253145][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 11:24:11,194 [DEBUG][       Thread-253145][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 11:24:11,194 [DEBUG][       Thread-253145][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 11:24:11,194 [DEBUG][       Thread-253145][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 11:24:11,194 [DEBUG][       Thread-253145][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 11:24:11,194 [DEBUG][       Thread-253145][   transport.py][1871] : Compression: none
2025-06-13 11:24:11,194 [DEBUG][       Thread-253145][   transport.py][1871] : === End of kex handshake ===
2025-06-13 11:24:11,213 [DEBUG][       Thread-253145][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 11:24:11,214 [DEBUG][       Thread-253145][   transport.py][1871] : Switch to new keys ...
2025-06-13 11:24:11,214 [DEBUG][       Thread-253145][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 11:24:11,214 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 11:24:11,215 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 11:24:11,216 [DEBUG][       Thread-253145][   transport.py][1871] : userauth is OK
2025-06-13 11:24:11,229 [ INFO][       Thread-253145][   transport.py][1871] : Authentication (password) successful!
2025-06-13 11:24:11,230 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 11:24:11,873 [DEBUG][       Thread-253145][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 11:24:11,873 [DEBUG][       Thread-253145][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 11:24:11,917 [DEBUG][       Thread-253145][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 11:24:11,917 [DEBUG][       Thread-253145][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 11:24:11,921 [DEBUG][       Thread-253145][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 11:24:11,933 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 11:24:11,933 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 11:24:11,935 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 11:24:11,937 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 11:24:11,943 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 11:24:11,944 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 11:24:11,945 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 11:24:11,945 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 11:24:11,945 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.391258 -999.00  +10.00  26.22     51   +0.30 1 1 1 1 1   887    0 10.47 49.00 ----- 24.6 26.2 51.6 31.6 14.6 -27.4 13.2 -29.7 12.5 -28.3 13.8 -27.0
2025-06-13 11:24:11,945 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 11:24:11,946 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 11:24:11,946 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.391258
2025-06-13 11:24:11,946 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 11:24:11,947 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 11:24:11,947 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 11:24:11,947 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 11:24:11,947 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 11:24:11,947 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T11:23:59', tmtdew=10.74, humidity=47.18, cloud=0.0, wind=20.05, temperature=10.04, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T09:23:24.691', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 11:24:11,947 [DEBUG][       Thread-253145][   transport.py][1871] : EOF in transport thread
2025-06-13 11:24:12,030 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 11:24:12,041 [DEBUG][       Thread-253148][   transport.py][1871] : starting thread (client mode): 0x863befe0
2025-06-13 11:24:12,041 [DEBUG][       Thread-253148][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 11:24:12,056 [DEBUG][       Thread-253148][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 11:24:12,056 [ INFO][       Thread-253148][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 11:24:12,063 [DEBUG][       Thread-253148][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 11:24:12,064 [DEBUG][       Thread-253148][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 11:24:12,064 [DEBUG][       Thread-253148][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 11:24:12,064 [DEBUG][       Thread-253148][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:24:12,064 [DEBUG][       Thread-253148][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:24:12,064 [DEBUG][       Thread-253148][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:24:12,064 [DEBUG][       Thread-253148][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:24:12,064 [DEBUG][       Thread-253148][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 11:24:12,064 [DEBUG][       Thread-253148][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 11:24:12,064 [DEBUG][       Thread-253148][   transport.py][1871] : client lang: <none>
2025-06-13 11:24:12,064 [DEBUG][       Thread-253148][   transport.py][1871] : server lang: <none>
2025-06-13 11:24:12,064 [DEBUG][       Thread-253148][   transport.py][1871] : kex follows: False
2025-06-13 11:24:12,064 [DEBUG][       Thread-253148][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 11:24:12,064 [DEBUG][       Thread-253148][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 11:24:12,064 [DEBUG][       Thread-253148][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 11:24:12,064 [DEBUG][       Thread-253148][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 11:24:12,064 [DEBUG][       Thread-253148][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 11:24:12,064 [DEBUG][       Thread-253148][   transport.py][1871] : Compression: none
2025-06-13 11:24:12,064 [DEBUG][       Thread-253148][   transport.py][1871] : === End of kex handshake ===
2025-06-13 11:24:12,124 [DEBUG][       Thread-253148][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 11:24:12,125 [DEBUG][       Thread-253148][   transport.py][1871] : Switch to new keys ...
2025-06-13 11:24:12,125 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 11:24:12,126 [DEBUG][       Thread-253148][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 11:24:12,127 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 11:24:12,189 [DEBUG][       Thread-253148][   transport.py][1871] : userauth is OK
2025-06-13 11:24:12,189 [DEBUG][       Thread-253148][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 11:24:12,190 [DEBUG][       Thread-253148][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 11:24:12,190 [DEBUG][       Thread-253148][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 11:24:12,190 [DEBUG][       Thread-253148][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 11:24:12,218 [ INFO][       Thread-253148][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 11:24:12,218 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 11:24:12,219 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 11:24:13,234 [DEBUG][       Thread-253148][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 11:24:13,234 [DEBUG][       Thread-253148][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 11:24:13,286 [DEBUG][       Thread-253148][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 11:24:13,286 [DEBUG][       Thread-253148][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 11:24:13,297 [DEBUG][       Thread-253148][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 11:24:13,308 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 11:24:13,308 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 11:24:13,317 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 11:24:13,326 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 11:24:13,326 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 11:24:13,327 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 11:24:13,335 [DEBUG][       Thread-253148][   transport.py][1871] : EOF in transport thread
2025-06-13 11:24:15,990 [DEBUG][Thread-253150 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:24:17,073 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:24:17,075 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:24:18,709 [DEBUG][Thread-253151 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:24:23,336 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 11:24:23,336 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 11:24:23,336 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 11:24:23,339 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 11:24:23,803 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 11, 23, 59), 10.74, 47.18, 0.0, 20.05, 10.04, 0, 0, 0, 2, 0, 0),)
2025-06-13 11:24:23,803 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 11:23:59
2025-06-13 11:24:23,885 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 11:24:23,888 [DEBUG][       Thread-253152][   transport.py][1871] : starting thread (client mode): 0x863bfbe0
2025-06-13 11:24:23,888 [DEBUG][       Thread-253152][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 11:24:23,909 [DEBUG][       Thread-253152][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 11:24:23,910 [ INFO][       Thread-253152][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 11:24:23,913 [DEBUG][       Thread-253152][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 11:24:23,913 [DEBUG][       Thread-253152][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 11:24:23,913 [DEBUG][       Thread-253152][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 11:24:23,913 [DEBUG][       Thread-253152][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:24:23,913 [DEBUG][       Thread-253152][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:24:23,913 [DEBUG][       Thread-253152][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:24:23,913 [DEBUG][       Thread-253152][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:24:23,913 [DEBUG][       Thread-253152][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 11:24:23,913 [DEBUG][       Thread-253152][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 11:24:23,913 [DEBUG][       Thread-253152][   transport.py][1871] : client lang: <none>
2025-06-13 11:24:23,913 [DEBUG][       Thread-253152][   transport.py][1871] : server lang: <none>
2025-06-13 11:24:23,913 [DEBUG][       Thread-253152][   transport.py][1871] : kex follows: False
2025-06-13 11:24:23,913 [DEBUG][       Thread-253152][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 11:24:23,913 [DEBUG][       Thread-253152][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 11:24:23,913 [DEBUG][       Thread-253152][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 11:24:23,913 [DEBUG][       Thread-253152][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 11:24:23,913 [DEBUG][       Thread-253152][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 11:24:23,913 [DEBUG][       Thread-253152][   transport.py][1871] : Compression: none
2025-06-13 11:24:23,913 [DEBUG][       Thread-253152][   transport.py][1871] : === End of kex handshake ===
2025-06-13 11:24:23,930 [DEBUG][       Thread-253152][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 11:24:23,930 [DEBUG][       Thread-253152][   transport.py][1871] : Switch to new keys ...
2025-06-13 11:24:23,931 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 11:24:23,931 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 11:24:23,931 [DEBUG][       Thread-253152][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 11:24:23,932 [DEBUG][       Thread-253152][   transport.py][1871] : userauth is OK
2025-06-13 11:24:23,957 [ INFO][       Thread-253152][   transport.py][1871] : Authentication (password) successful!
2025-06-13 11:24:23,957 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 11:24:24,610 [DEBUG][       Thread-253152][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 11:24:24,610 [DEBUG][       Thread-253152][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 11:24:24,653 [DEBUG][       Thread-253152][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 11:24:24,653 [DEBUG][       Thread-253152][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 11:24:24,656 [DEBUG][       Thread-253152][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 11:24:24,670 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 11:24:24,670 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 11:24:24,672 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 11:24:24,675 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 11:24:24,681 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 11:24:24,683 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 11:24:24,683 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 11:24:24,684 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 11:24:24,684 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.391606 -999.00  +10.10  17.20     51   +0.50 1 1 1 1 1   887    0 10.91 53.95 ----- 19.9 17.2 32.2 27.8 14.6 -27.8 13.3 -29.7 12.6 -28.4 13.9 -26.0
2025-06-13 11:24:24,684 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 11:24:24,684 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 11:24:24,684 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.391606
2025-06-13 11:24:24,685 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 11:24:24,685 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 11:24:24,686 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 11:24:24,686 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 11:24:24,686 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 11:24:24,686 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T11:23:59', tmtdew=10.74, humidity=47.18, cloud=0.0, wind=20.05, temperature=10.04, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T09:23:54.758', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 11:24:24,686 [DEBUG][       Thread-253152][   transport.py][1871] : EOF in transport thread
2025-06-13 11:24:24,770 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 11:24:24,780 [DEBUG][       Thread-253155][   transport.py][1871] : starting thread (client mode): 0x84204910
2025-06-13 11:24:24,780 [DEBUG][       Thread-253155][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 11:24:24,795 [DEBUG][       Thread-253155][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 11:24:24,795 [ INFO][       Thread-253155][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 11:24:24,803 [DEBUG][       Thread-253155][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 11:24:24,804 [DEBUG][       Thread-253155][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 11:24:24,804 [DEBUG][       Thread-253155][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 11:24:24,804 [DEBUG][       Thread-253155][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:24:24,804 [DEBUG][       Thread-253155][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:24:24,804 [DEBUG][       Thread-253155][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:24:24,804 [DEBUG][       Thread-253155][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:24:24,804 [DEBUG][       Thread-253155][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 11:24:24,804 [DEBUG][       Thread-253155][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 11:24:24,804 [DEBUG][       Thread-253155][   transport.py][1871] : client lang: <none>
2025-06-13 11:24:24,804 [DEBUG][       Thread-253155][   transport.py][1871] : server lang: <none>
2025-06-13 11:24:24,804 [DEBUG][       Thread-253155][   transport.py][1871] : kex follows: False
2025-06-13 11:24:24,804 [DEBUG][       Thread-253155][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 11:24:24,804 [DEBUG][       Thread-253155][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 11:24:24,804 [DEBUG][       Thread-253155][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 11:24:24,804 [DEBUG][       Thread-253155][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 11:24:24,804 [DEBUG][       Thread-253155][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 11:24:24,804 [DEBUG][       Thread-253155][   transport.py][1871] : Compression: none
2025-06-13 11:24:24,804 [DEBUG][       Thread-253155][   transport.py][1871] : === End of kex handshake ===
2025-06-13 11:24:24,866 [DEBUG][       Thread-253155][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 11:24:24,866 [DEBUG][       Thread-253155][   transport.py][1871] : Switch to new keys ...
2025-06-13 11:24:24,867 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 11:24:24,868 [DEBUG][       Thread-253155][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 11:24:24,868 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 11:24:24,927 [DEBUG][       Thread-253155][   transport.py][1871] : userauth is OK
2025-06-13 11:24:24,928 [DEBUG][       Thread-253155][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 11:24:24,928 [DEBUG][       Thread-253155][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 11:24:24,928 [DEBUG][       Thread-253155][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 11:24:24,928 [DEBUG][       Thread-253155][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 11:24:24,952 [ INFO][       Thread-253155][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 11:24:24,952 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 11:24:24,953 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 11:24:26,006 [DEBUG][       Thread-253155][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 11:24:26,006 [DEBUG][       Thread-253155][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 11:24:26,056 [DEBUG][       Thread-253155][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 11:24:26,056 [DEBUG][       Thread-253155][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 11:24:26,065 [DEBUG][       Thread-253155][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 11:24:26,075 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 11:24:26,075 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 11:24:26,084 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 11:24:26,094 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 11:24:26,094 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 11:24:26,094 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 11:24:26,102 [DEBUG][       Thread-253155][   transport.py][1871] : EOF in transport thread
2025-06-13 11:24:27,752 [DEBUG][Thread-253157 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:24:34,500 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:24:34,501 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:24:36,104 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 11:24:36,104 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 11:24:36,104 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 11:24:36,107 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 11:24:36,556 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 11, 24, 31), 10.81, 46.97, 0.0, 15.05, 10.14, 0, 0, 0, 2, 0, 0),)
2025-06-13 11:24:36,556 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 11:24:31
2025-06-13 11:24:36,638 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 11:24:36,644 [DEBUG][       Thread-253158][   transport.py][1871] : starting thread (client mode): 0x842069b0
2025-06-13 11:24:36,644 [DEBUG][       Thread-253158][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 11:24:36,664 [DEBUG][       Thread-253158][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 11:24:36,664 [ INFO][       Thread-253158][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 11:24:36,667 [DEBUG][       Thread-253158][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 11:24:36,668 [DEBUG][       Thread-253158][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 11:24:36,668 [DEBUG][       Thread-253158][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 11:24:36,668 [DEBUG][       Thread-253158][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:24:36,668 [DEBUG][       Thread-253158][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:24:36,668 [DEBUG][       Thread-253158][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:24:36,668 [DEBUG][       Thread-253158][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:24:36,668 [DEBUG][       Thread-253158][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 11:24:36,668 [DEBUG][       Thread-253158][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 11:24:36,668 [DEBUG][       Thread-253158][   transport.py][1871] : client lang: <none>
2025-06-13 11:24:36,668 [DEBUG][       Thread-253158][   transport.py][1871] : server lang: <none>
2025-06-13 11:24:36,668 [DEBUG][       Thread-253158][   transport.py][1871] : kex follows: False
2025-06-13 11:24:36,668 [DEBUG][       Thread-253158][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 11:24:36,668 [DEBUG][       Thread-253158][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 11:24:36,668 [DEBUG][       Thread-253158][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 11:24:36,668 [DEBUG][       Thread-253158][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 11:24:36,668 [DEBUG][       Thread-253158][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 11:24:36,668 [DEBUG][       Thread-253158][   transport.py][1871] : Compression: none
2025-06-13 11:24:36,668 [DEBUG][       Thread-253158][   transport.py][1871] : === End of kex handshake ===
2025-06-13 11:24:36,685 [DEBUG][       Thread-253158][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 11:24:36,686 [DEBUG][       Thread-253158][   transport.py][1871] : Switch to new keys ...
2025-06-13 11:24:36,686 [DEBUG][       Thread-253158][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 11:24:36,686 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 11:24:36,687 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 11:24:36,688 [DEBUG][       Thread-253158][   transport.py][1871] : userauth is OK
2025-06-13 11:24:36,700 [ INFO][       Thread-253158][   transport.py][1871] : Authentication (password) successful!
2025-06-13 11:24:36,701 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 11:24:36,772 [DEBUG][Thread-253160 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:24:37,330 [DEBUG][       Thread-253158][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 11:24:37,331 [DEBUG][       Thread-253158][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 11:24:37,373 [DEBUG][       Thread-253158][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 11:24:37,373 [DEBUG][       Thread-253158][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 11:24:37,376 [DEBUG][       Thread-253158][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 11:24:37,389 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 11:24:37,389 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 11:24:37,391 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 11:24:37,393 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 11:24:37,399 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 11:24:37,401 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 11:24:37,401 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 11:24:37,402 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 11:24:37,402 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.391606 -999.00  +10.10  17.20     51   +0.50 1 1 1 1 1   887    0 10.91 53.95 ----- 19.9 17.2 32.2 27.8 14.6 -27.8 13.3 -29.7 12.6 -28.4 13.9 -26.0
2025-06-13 11:24:37,402 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 11:24:37,402 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 11:24:37,402 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.391606
2025-06-13 11:24:37,403 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 11:24:37,403 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 11:24:37,404 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 11:24:37,404 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 11:24:37,404 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 11:24:37,404 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T11:24:31', tmtdew=10.81, humidity=46.97, cloud=0.0, wind=15.05, temperature=10.14, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T09:23:54.758', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 11:24:37,405 [DEBUG][       Thread-253158][   transport.py][1871] : EOF in transport thread
2025-06-13 11:24:37,487 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 11:24:37,498 [DEBUG][       Thread-253162][   transport.py][1871] : starting thread (client mode): 0x867ff010
2025-06-13 11:24:37,498 [DEBUG][       Thread-253162][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 11:24:37,513 [DEBUG][       Thread-253162][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 11:24:37,513 [ INFO][       Thread-253162][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 11:24:37,521 [DEBUG][       Thread-253162][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 11:24:37,521 [DEBUG][       Thread-253162][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 11:24:37,521 [DEBUG][       Thread-253162][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 11:24:37,521 [DEBUG][       Thread-253162][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:24:37,521 [DEBUG][       Thread-253162][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:24:37,521 [DEBUG][       Thread-253162][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:24:37,521 [DEBUG][       Thread-253162][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:24:37,521 [DEBUG][       Thread-253162][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 11:24:37,521 [DEBUG][       Thread-253162][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 11:24:37,521 [DEBUG][       Thread-253162][   transport.py][1871] : client lang: <none>
2025-06-13 11:24:37,521 [DEBUG][       Thread-253162][   transport.py][1871] : server lang: <none>
2025-06-13 11:24:37,521 [DEBUG][       Thread-253162][   transport.py][1871] : kex follows: False
2025-06-13 11:24:37,521 [DEBUG][       Thread-253162][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 11:24:37,522 [DEBUG][       Thread-253162][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 11:24:37,522 [DEBUG][       Thread-253162][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 11:24:37,522 [DEBUG][       Thread-253162][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 11:24:37,522 [DEBUG][       Thread-253162][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 11:24:37,522 [DEBUG][       Thread-253162][   transport.py][1871] : Compression: none
2025-06-13 11:24:37,522 [DEBUG][       Thread-253162][   transport.py][1871] : === End of kex handshake ===
2025-06-13 11:24:37,580 [DEBUG][       Thread-253162][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 11:24:37,580 [DEBUG][       Thread-253162][   transport.py][1871] : Switch to new keys ...
2025-06-13 11:24:37,581 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 11:24:37,582 [DEBUG][       Thread-253162][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 11:24:37,582 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 11:24:37,640 [DEBUG][       Thread-253162][   transport.py][1871] : userauth is OK
2025-06-13 11:24:37,640 [DEBUG][       Thread-253162][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 11:24:37,641 [DEBUG][       Thread-253162][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 11:24:37,641 [DEBUG][       Thread-253162][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 11:24:37,641 [DEBUG][       Thread-253162][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 11:24:37,659 [ INFO][       Thread-253162][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 11:24:37,660 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 11:24:37,660 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 11:24:38,677 [DEBUG][       Thread-253162][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 11:24:38,677 [DEBUG][       Thread-253162][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 11:24:38,727 [DEBUG][       Thread-253162][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 11:24:38,727 [DEBUG][       Thread-253162][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 11:24:38,736 [DEBUG][       Thread-253162][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 11:24:38,745 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 11:24:38,745 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 11:24:38,753 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 11:24:38,761 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 11:24:38,761 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 11:24:38,761 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 11:24:38,769 [DEBUG][       Thread-253162][   transport.py][1871] : EOF in transport thread
2025-06-13 11:24:45,792 [DEBUG][Thread-253164 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:24:48,771 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 11:24:48,772 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 11:24:48,772 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 11:24:48,775 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 11:24:49,216 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 11, 24, 31), 10.81, 46.97, 0.0, 15.05, 10.14, 0, 0, 0, 2, 0, 0),)
2025-06-13 11:24:49,216 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 11:24:31
2025-06-13 11:24:49,295 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 11:24:49,301 [DEBUG][       Thread-253165][   transport.py][1871] : starting thread (client mode): 0x863beb60
2025-06-13 11:24:49,301 [DEBUG][       Thread-253165][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 11:24:49,321 [DEBUG][       Thread-253165][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 11:24:49,321 [ INFO][       Thread-253165][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 11:24:49,323 [DEBUG][       Thread-253165][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 11:24:49,323 [DEBUG][       Thread-253165][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 11:24:49,323 [DEBUG][       Thread-253165][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 11:24:49,323 [DEBUG][       Thread-253165][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:24:49,323 [DEBUG][       Thread-253165][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:24:49,323 [DEBUG][       Thread-253165][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:24:49,324 [DEBUG][       Thread-253165][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:24:49,324 [DEBUG][       Thread-253165][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 11:24:49,324 [DEBUG][       Thread-253165][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 11:24:49,324 [DEBUG][       Thread-253165][   transport.py][1871] : client lang: <none>
2025-06-13 11:24:49,324 [DEBUG][       Thread-253165][   transport.py][1871] : server lang: <none>
2025-06-13 11:24:49,324 [DEBUG][       Thread-253165][   transport.py][1871] : kex follows: False
2025-06-13 11:24:49,324 [DEBUG][       Thread-253165][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 11:24:49,324 [DEBUG][       Thread-253165][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 11:24:49,324 [DEBUG][       Thread-253165][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 11:24:49,324 [DEBUG][       Thread-253165][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 11:24:49,324 [DEBUG][       Thread-253165][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 11:24:49,324 [DEBUG][       Thread-253165][   transport.py][1871] : Compression: none
2025-06-13 11:24:49,324 [DEBUG][       Thread-253165][   transport.py][1871] : === End of kex handshake ===
2025-06-13 11:24:49,332 [DEBUG][       Thread-253165][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 11:24:49,333 [DEBUG][       Thread-253165][   transport.py][1871] : Switch to new keys ...
2025-06-13 11:24:49,333 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 11:24:49,333 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 11:24:49,334 [DEBUG][       Thread-253165][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 11:24:49,334 [DEBUG][       Thread-253165][   transport.py][1871] : userauth is OK
2025-06-13 11:24:49,358 [ INFO][       Thread-253165][   transport.py][1871] : Authentication (password) successful!
2025-06-13 11:24:49,359 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 11:24:50,022 [DEBUG][       Thread-253165][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 11:24:50,022 [DEBUG][       Thread-253165][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 11:24:50,065 [DEBUG][       Thread-253165][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 11:24:50,065 [DEBUG][       Thread-253165][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 11:24:50,069 [DEBUG][       Thread-253165][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 11:24:50,081 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 11:24:50,081 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 11:24:50,083 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 11:24:50,084 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 11:24:50,090 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 11:24:50,092 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 11:24:50,092 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 11:24:50,093 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 11:24:50,093 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.391606 -999.00  +10.10  17.20     51   +0.50 1 1 1 1 1   887    0 10.91 53.95 ----- 19.9 17.2 32.2 27.8 14.6 -27.8 13.3 -29.7 12.6 -28.4 13.9 -26.0
2025-06-13 11:24:50,093 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 11:24:50,093 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 11:24:50,093 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.391606
2025-06-13 11:24:50,093 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 11:24:50,094 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 11:24:50,094 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 11:24:50,094 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 11:24:50,094 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 11:24:50,094 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T11:24:31', tmtdew=10.81, humidity=46.97, cloud=0.0, wind=15.05, temperature=10.14, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T09:23:54.758', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 11:24:50,095 [DEBUG][       Thread-253165][   transport.py][1871] : EOF in transport thread
2025-06-13 11:24:50,177 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 11:24:50,189 [DEBUG][       Thread-253168][   transport.py][1871] : starting thread (client mode): 0x863a6bf0
2025-06-13 11:24:50,190 [DEBUG][       Thread-253168][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 11:24:50,208 [DEBUG][       Thread-253168][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 11:24:50,208 [ INFO][       Thread-253168][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 11:24:50,216 [DEBUG][       Thread-253168][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 11:24:50,216 [DEBUG][       Thread-253168][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 11:24:50,216 [DEBUG][       Thread-253168][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 11:24:50,216 [DEBUG][       Thread-253168][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:24:50,216 [DEBUG][       Thread-253168][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:24:50,216 [DEBUG][       Thread-253168][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:24:50,216 [DEBUG][       Thread-253168][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:24:50,217 [DEBUG][       Thread-253168][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 11:24:50,217 [DEBUG][       Thread-253168][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 11:24:50,217 [DEBUG][       Thread-253168][   transport.py][1871] : client lang: <none>
2025-06-13 11:24:50,217 [DEBUG][       Thread-253168][   transport.py][1871] : server lang: <none>
2025-06-13 11:24:50,217 [DEBUG][       Thread-253168][   transport.py][1871] : kex follows: False
2025-06-13 11:24:50,217 [DEBUG][       Thread-253168][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 11:24:50,217 [DEBUG][       Thread-253168][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 11:24:50,217 [DEBUG][       Thread-253168][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 11:24:50,217 [DEBUG][       Thread-253168][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 11:24:50,217 [DEBUG][       Thread-253168][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 11:24:50,217 [DEBUG][       Thread-253168][   transport.py][1871] : Compression: none
2025-06-13 11:24:50,217 [DEBUG][       Thread-253168][   transport.py][1871] : === End of kex handshake ===
2025-06-13 11:24:50,275 [DEBUG][       Thread-253168][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 11:24:50,276 [DEBUG][       Thread-253168][   transport.py][1871] : Switch to new keys ...
2025-06-13 11:24:50,276 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 11:24:50,277 [DEBUG][       Thread-253168][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 11:24:50,278 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 11:24:50,333 [DEBUG][       Thread-253168][   transport.py][1871] : userauth is OK
2025-06-13 11:24:50,333 [DEBUG][       Thread-253168][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 11:24:50,333 [DEBUG][       Thread-253168][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 11:24:50,333 [DEBUG][       Thread-253168][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 11:24:50,333 [DEBUG][       Thread-253168][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 11:24:50,353 [ INFO][       Thread-253168][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 11:24:50,354 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 11:24:50,354 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 11:24:51,434 [DEBUG][       Thread-253168][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 11:24:51,434 [DEBUG][       Thread-253168][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 11:24:51,485 [DEBUG][       Thread-253168][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 11:24:51,486 [DEBUG][       Thread-253168][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 11:24:51,497 [DEBUG][       Thread-253168][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 11:24:51,506 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 11:24:51,506 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 11:24:51,515 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 11:24:51,525 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 11:24:51,525 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 11:24:51,526 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 11:24:51,536 [DEBUG][       Thread-253168][   transport.py][1871] : EOF in transport thread
2025-06-13 11:24:54,826 [DEBUG][Thread-253170 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:25:01,532 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 11:25:01,532 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 11:25:01,532 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 11:25:01,533 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 11:25:01,970 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 11, 24, 31), 10.81, 46.97, 0.0, 15.05, 10.14, 0, 0, 0, 2, 0, 0),)
2025-06-13 11:25:01,970 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 11:24:31
2025-06-13 11:25:02,049 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 11:25:02,052 [DEBUG][       Thread-253171][   transport.py][1871] : starting thread (client mode): 0x863a55d0
2025-06-13 11:25:02,053 [DEBUG][       Thread-253171][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 11:25:02,072 [DEBUG][       Thread-253171][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 11:25:02,072 [ INFO][       Thread-253171][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 11:25:02,076 [DEBUG][       Thread-253171][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 11:25:02,076 [DEBUG][       Thread-253171][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 11:25:02,076 [DEBUG][       Thread-253171][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 11:25:02,076 [DEBUG][       Thread-253171][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:25:02,076 [DEBUG][       Thread-253171][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:25:02,076 [DEBUG][       Thread-253171][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:25:02,076 [DEBUG][       Thread-253171][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:25:02,076 [DEBUG][       Thread-253171][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 11:25:02,076 [DEBUG][       Thread-253171][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 11:25:02,076 [DEBUG][       Thread-253171][   transport.py][1871] : client lang: <none>
2025-06-13 11:25:02,076 [DEBUG][       Thread-253171][   transport.py][1871] : server lang: <none>
2025-06-13 11:25:02,076 [DEBUG][       Thread-253171][   transport.py][1871] : kex follows: False
2025-06-13 11:25:02,076 [DEBUG][       Thread-253171][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 11:25:02,076 [DEBUG][       Thread-253171][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 11:25:02,076 [DEBUG][       Thread-253171][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 11:25:02,076 [DEBUG][       Thread-253171][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 11:25:02,076 [DEBUG][       Thread-253171][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 11:25:02,076 [DEBUG][       Thread-253171][   transport.py][1871] : Compression: none
2025-06-13 11:25:02,076 [DEBUG][       Thread-253171][   transport.py][1871] : === End of kex handshake ===
2025-06-13 11:25:02,096 [DEBUG][       Thread-253171][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 11:25:02,097 [DEBUG][       Thread-253171][   transport.py][1871] : Switch to new keys ...
2025-06-13 11:25:02,097 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 11:25:02,097 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 11:25:02,098 [DEBUG][       Thread-253171][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 11:25:02,098 [DEBUG][       Thread-253171][   transport.py][1871] : userauth is OK
2025-06-13 11:25:02,122 [ INFO][       Thread-253171][   transport.py][1871] : Authentication (password) successful!
2025-06-13 11:25:02,123 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 11:25:02,811 [DEBUG][       Thread-253171][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 11:25:02,811 [DEBUG][       Thread-253171][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 11:25:02,853 [DEBUG][       Thread-253171][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 11:25:02,853 [DEBUG][       Thread-253171][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 11:25:02,857 [DEBUG][       Thread-253171][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 11:25:02,870 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 11:25:02,870 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 11:25:02,872 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 11:25:02,874 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 11:25:02,912 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 11:25:02,914 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 11:25:02,914 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 11:25:02,915 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 11:25:02,915 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.391953 -999.00  +10.30  17.06     50   +0.60 1 1 1 1 1   888    0 10.85 57.17 ----- 20.2 17.1 45.8 24.7 14.7 -27.9 13.4 -29.4 12.7 -28.0 14.0 -26.1
2025-06-13 11:25:02,915 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 11:25:02,915 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 11:25:02,915 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.391953
2025-06-13 11:25:02,915 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 11:25:02,916 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 11:25:02,916 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 11:25:02,916 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 11:25:02,916 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 11:25:02,916 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T11:24:31', tmtdew=10.81, humidity=46.97, cloud=0.0, wind=15.05, temperature=10.14, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T09:24:24.739', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 11:25:02,917 [DEBUG][       Thread-253171][   transport.py][1871] : EOF in transport thread
2025-06-13 11:25:03,002 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 11:25:03,020 [DEBUG][       Thread-253174][   transport.py][1871] : starting thread (client mode): 0x84205180
2025-06-13 11:25:03,020 [DEBUG][       Thread-253174][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 11:25:03,038 [DEBUG][       Thread-253174][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 11:25:03,039 [ INFO][       Thread-253174][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 11:25:03,047 [DEBUG][       Thread-253174][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 11:25:03,047 [DEBUG][       Thread-253174][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 11:25:03,047 [DEBUG][       Thread-253174][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 11:25:03,047 [DEBUG][       Thread-253174][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:25:03,047 [DEBUG][       Thread-253174][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:25:03,047 [DEBUG][       Thread-253174][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:25:03,047 [DEBUG][       Thread-253174][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:25:03,047 [DEBUG][       Thread-253174][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 11:25:03,047 [DEBUG][       Thread-253174][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 11:25:03,047 [DEBUG][       Thread-253174][   transport.py][1871] : client lang: <none>
2025-06-13 11:25:03,047 [DEBUG][       Thread-253174][   transport.py][1871] : server lang: <none>
2025-06-13 11:25:03,048 [DEBUG][       Thread-253174][   transport.py][1871] : kex follows: False
2025-06-13 11:25:03,048 [DEBUG][       Thread-253174][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 11:25:03,048 [DEBUG][       Thread-253174][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 11:25:03,048 [DEBUG][       Thread-253174][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 11:25:03,048 [DEBUG][       Thread-253174][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 11:25:03,048 [DEBUG][       Thread-253174][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 11:25:03,048 [DEBUG][       Thread-253174][   transport.py][1871] : Compression: none
2025-06-13 11:25:03,048 [DEBUG][       Thread-253174][   transport.py][1871] : === End of kex handshake ===
2025-06-13 11:25:03,104 [DEBUG][       Thread-253174][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 11:25:03,105 [DEBUG][       Thread-253174][   transport.py][1871] : Switch to new keys ...
2025-06-13 11:25:03,105 [DEBUG][       Thread-253174][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 11:25:03,106 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 11:25:03,106 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 11:25:03,164 [DEBUG][       Thread-253174][   transport.py][1871] : userauth is OK
2025-06-13 11:25:03,164 [DEBUG][       Thread-253174][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 11:25:03,164 [DEBUG][       Thread-253174][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 11:25:03,164 [DEBUG][       Thread-253174][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 11:25:03,165 [DEBUG][       Thread-253174][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 11:25:03,184 [ INFO][       Thread-253174][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 11:25:03,184 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 11:25:03,185 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 11:25:03,845 [DEBUG][Thread-253176 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:25:04,230 [DEBUG][       Thread-253174][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 11:25:04,230 [DEBUG][       Thread-253174][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 11:25:04,280 [DEBUG][       Thread-253174][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 11:25:04,280 [DEBUG][       Thread-253174][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 11:25:04,289 [DEBUG][       Thread-253174][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 11:25:04,298 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 11:25:04,298 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 11:25:04,306 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 11:25:04,315 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 11:25:04,315 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 11:25:04,315 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 11:25:04,326 [DEBUG][       Thread-253174][   transport.py][1871] : EOF in transport thread
2025-06-13 11:25:09,053 [DEBUG][Thread-253177 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:25:12,866 [DEBUG][Thread-253178 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:25:14,325 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 11:25:14,325 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 11:25:14,325 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 11:25:14,328 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 11:25:14,769 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 11, 25, 2), 11.02, 46.27, 0.0, 18.42, 10.22, 0, 0, 0, 2, 0, 0),)
2025-06-13 11:25:14,769 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 11:25:02
2025-06-13 11:25:14,850 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 11:25:14,856 [DEBUG][       Thread-253179][   transport.py][1871] : starting thread (client mode): 0x84206ec0
2025-06-13 11:25:14,856 [DEBUG][       Thread-253179][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 11:25:14,877 [DEBUG][       Thread-253179][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 11:25:14,877 [ INFO][       Thread-253179][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 11:25:14,880 [DEBUG][       Thread-253179][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 11:25:14,880 [DEBUG][       Thread-253179][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 11:25:14,880 [DEBUG][       Thread-253179][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 11:25:14,880 [DEBUG][       Thread-253179][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:25:14,880 [DEBUG][       Thread-253179][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:25:14,880 [DEBUG][       Thread-253179][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:25:14,881 [DEBUG][       Thread-253179][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:25:14,881 [DEBUG][       Thread-253179][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 11:25:14,881 [DEBUG][       Thread-253179][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 11:25:14,881 [DEBUG][       Thread-253179][   transport.py][1871] : client lang: <none>
2025-06-13 11:25:14,881 [DEBUG][       Thread-253179][   transport.py][1871] : server lang: <none>
2025-06-13 11:25:14,881 [DEBUG][       Thread-253179][   transport.py][1871] : kex follows: False
2025-06-13 11:25:14,881 [DEBUG][       Thread-253179][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 11:25:14,881 [DEBUG][       Thread-253179][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 11:25:14,881 [DEBUG][       Thread-253179][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 11:25:14,881 [DEBUG][       Thread-253179][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 11:25:14,881 [DEBUG][       Thread-253179][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 11:25:14,881 [DEBUG][       Thread-253179][   transport.py][1871] : Compression: none
2025-06-13 11:25:14,881 [DEBUG][       Thread-253179][   transport.py][1871] : === End of kex handshake ===
2025-06-13 11:25:14,897 [DEBUG][       Thread-253179][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 11:25:14,898 [DEBUG][       Thread-253179][   transport.py][1871] : Switch to new keys ...
2025-06-13 11:25:14,898 [DEBUG][       Thread-253179][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 11:25:14,898 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 11:25:14,898 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 11:25:14,900 [DEBUG][       Thread-253179][   transport.py][1871] : userauth is OK
2025-06-13 11:25:14,926 [ INFO][       Thread-253179][   transport.py][1871] : Authentication (password) successful!
2025-06-13 11:25:14,927 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 11:25:17,138 [DEBUG][Thread-253181 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:25:17,509 [DEBUG][       Thread-253179][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 11:25:17,509 [DEBUG][       Thread-253179][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 11:25:17,552 [DEBUG][       Thread-253179][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 11:25:17,552 [DEBUG][       Thread-253179][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 11:25:17,554 [DEBUG][       Thread-253179][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 11:25:17,605 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 11:25:17,605 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 11:25:17,606 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 11:25:17,607 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 11:25:17,610 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 11:25:17,610 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 11:25:17,610 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 11:25:17,610 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 11:25:17,610 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.391953 -999.00  +10.30  17.06     50   +0.60 1 1 1 1 1   888    0 10.85 57.17 ----- 20.2 17.1 45.8 24.7 14.7 -27.9 13.4 -29.4 12.7 -28.0 14.0 -26.1
2025-06-13 11:25:17,611 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 11:25:17,611 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 11:25:17,611 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.391953
2025-06-13 11:25:17,611 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 11:25:17,611 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 11:25:17,611 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 11:25:17,611 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 11:25:17,611 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 11:25:17,611 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T11:25:02', tmtdew=11.02, humidity=46.27, cloud=0.0, wind=18.42, temperature=10.22, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T09:24:24.739', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 11:25:17,611 [DEBUG][       Thread-253179][   transport.py][1871] : EOF in transport thread
2025-06-13 11:25:17,684 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 11:25:17,695 [DEBUG][       Thread-253183][   transport.py][1871] : starting thread (client mode): 0x863c9750
2025-06-13 11:25:17,695 [DEBUG][       Thread-253183][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 11:25:17,717 [DEBUG][       Thread-253183][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 11:25:17,717 [ INFO][       Thread-253183][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 11:25:17,729 [DEBUG][       Thread-253183][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 11:25:17,730 [DEBUG][       Thread-253183][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 11:25:17,730 [DEBUG][       Thread-253183][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 11:25:17,730 [DEBUG][       Thread-253183][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:25:17,730 [DEBUG][       Thread-253183][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:25:17,730 [DEBUG][       Thread-253183][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:25:17,730 [DEBUG][       Thread-253183][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:25:17,730 [DEBUG][       Thread-253183][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 11:25:17,730 [DEBUG][       Thread-253183][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 11:25:17,730 [DEBUG][       Thread-253183][   transport.py][1871] : client lang: <none>
2025-06-13 11:25:17,730 [DEBUG][       Thread-253183][   transport.py][1871] : server lang: <none>
2025-06-13 11:25:17,730 [DEBUG][       Thread-253183][   transport.py][1871] : kex follows: False
2025-06-13 11:25:17,730 [DEBUG][       Thread-253183][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 11:25:17,730 [DEBUG][       Thread-253183][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 11:25:17,730 [DEBUG][       Thread-253183][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 11:25:17,730 [DEBUG][       Thread-253183][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 11:25:17,730 [DEBUG][       Thread-253183][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 11:25:17,730 [DEBUG][       Thread-253183][   transport.py][1871] : Compression: none
2025-06-13 11:25:17,730 [DEBUG][       Thread-253183][   transport.py][1871] : === End of kex handshake ===
2025-06-13 11:25:17,785 [DEBUG][       Thread-253183][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 11:25:17,785 [DEBUG][       Thread-253183][   transport.py][1871] : Switch to new keys ...
2025-06-13 11:25:17,785 [DEBUG][       Thread-253183][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 11:25:17,785 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 11:25:17,785 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 11:25:17,847 [DEBUG][       Thread-253183][   transport.py][1871] : userauth is OK
2025-06-13 11:25:17,847 [DEBUG][       Thread-253183][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 11:25:17,847 [DEBUG][       Thread-253183][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 11:25:17,847 [DEBUG][       Thread-253183][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 11:25:17,847 [DEBUG][       Thread-253183][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 11:25:17,862 [ INFO][       Thread-253183][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 11:25:17,863 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 11:25:17,863 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 11:25:18,212 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:25:18,213 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:25:18,861 [DEBUG][       Thread-253183][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 11:25:18,861 [DEBUG][       Thread-253183][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 11:25:18,912 [DEBUG][       Thread-253183][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 11:25:18,912 [DEBUG][       Thread-253183][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 11:25:18,920 [DEBUG][       Thread-253183][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 11:25:18,928 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 11:25:18,928 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 11:25:18,936 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 11:25:18,944 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 11:25:18,944 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 11:25:18,944 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 11:25:18,952 [DEBUG][       Thread-253183][   transport.py][1871] : EOF in transport thread
2025-06-13 11:25:21,886 [DEBUG][Thread-253185 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:25:28,952 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 11:25:28,952 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 11:25:28,952 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 11:25:28,953 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 11:25:29,394 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 11, 25, 2), 11.02, 46.27, 0.0, 18.42, 10.22, 0, 0, 0, 2, 0, 0),)
2025-06-13 11:25:29,394 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 11:25:02
2025-06-13 11:25:29,474 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 11:25:29,478 [DEBUG][       Thread-253186][   transport.py][1871] : starting thread (client mode): 0x84204970
2025-06-13 11:25:29,478 [DEBUG][       Thread-253186][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 11:25:29,497 [DEBUG][       Thread-253186][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 11:25:29,497 [ INFO][       Thread-253186][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 11:25:29,501 [DEBUG][       Thread-253186][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 11:25:29,501 [DEBUG][       Thread-253186][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 11:25:29,501 [DEBUG][       Thread-253186][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 11:25:29,501 [DEBUG][       Thread-253186][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:25:29,501 [DEBUG][       Thread-253186][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:25:29,501 [DEBUG][       Thread-253186][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:25:29,501 [DEBUG][       Thread-253186][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:25:29,501 [DEBUG][       Thread-253186][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 11:25:29,501 [DEBUG][       Thread-253186][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 11:25:29,501 [DEBUG][       Thread-253186][   transport.py][1871] : client lang: <none>
2025-06-13 11:25:29,501 [DEBUG][       Thread-253186][   transport.py][1871] : server lang: <none>
2025-06-13 11:25:29,501 [DEBUG][       Thread-253186][   transport.py][1871] : kex follows: False
2025-06-13 11:25:29,501 [DEBUG][       Thread-253186][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 11:25:29,501 [DEBUG][       Thread-253186][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 11:25:29,501 [DEBUG][       Thread-253186][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 11:25:29,501 [DEBUG][       Thread-253186][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 11:25:29,501 [DEBUG][       Thread-253186][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 11:25:29,501 [DEBUG][       Thread-253186][   transport.py][1871] : Compression: none
2025-06-13 11:25:29,501 [DEBUG][       Thread-253186][   transport.py][1871] : === End of kex handshake ===
2025-06-13 11:25:29,517 [DEBUG][       Thread-253186][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 11:25:29,518 [DEBUG][       Thread-253186][   transport.py][1871] : Switch to new keys ...
2025-06-13 11:25:29,518 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 11:25:29,518 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 11:25:29,519 [DEBUG][       Thread-253186][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 11:25:29,519 [DEBUG][       Thread-253186][   transport.py][1871] : userauth is OK
2025-06-13 11:25:29,532 [ INFO][       Thread-253186][   transport.py][1871] : Authentication (password) successful!
2025-06-13 11:25:29,532 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 11:25:30,592 [DEBUG][       Thread-253186][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 11:25:30,592 [DEBUG][       Thread-253186][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 11:25:30,633 [DEBUG][       Thread-253186][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 11:25:30,633 [DEBUG][       Thread-253186][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 11:25:30,635 [DEBUG][       Thread-253186][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 11:25:30,648 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 11:25:30,649 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 11:25:30,650 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 11:25:30,652 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 11:25:30,656 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 11:25:30,657 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 11:25:30,658 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 11:25:30,658 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 11:25:30,658 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.392647 -999.00  +10.40  21.61     50   +0.40 1 1 1 1 1   888    0 11.23 61.03 ----- 17.4 21.6 50.8 25.1 14.8 -27.7 13.4 -29.0 12.8 -27.5 14.0 -26.6
2025-06-13 11:25:30,658 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 11:25:30,658 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 11:25:30,659 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.392647
2025-06-13 11:25:30,659 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 11:25:30,659 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 11:25:30,659 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 11:25:30,660 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 11:25:30,660 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 11:25:30,660 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T11:25:02', tmtdew=11.02, humidity=46.27, cloud=0.0, wind=18.42, temperature=10.22, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T09:25:24.701', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 11:25:30,661 [DEBUG][       Thread-253186][   transport.py][1871] : EOF in transport thread
2025-06-13 11:25:30,743 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 11:25:30,753 [DEBUG][       Thread-253189][   transport.py][1871] : starting thread (client mode): 0x86368790
2025-06-13 11:25:30,753 [DEBUG][       Thread-253189][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 11:25:30,768 [DEBUG][       Thread-253189][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 11:25:30,768 [ INFO][       Thread-253189][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 11:25:30,775 [DEBUG][       Thread-253189][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 11:25:30,776 [DEBUG][       Thread-253189][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 11:25:30,776 [DEBUG][       Thread-253189][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 11:25:30,776 [DEBUG][       Thread-253189][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:25:30,776 [DEBUG][       Thread-253189][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:25:30,776 [DEBUG][       Thread-253189][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:25:30,776 [DEBUG][       Thread-253189][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:25:30,776 [DEBUG][       Thread-253189][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 11:25:30,776 [DEBUG][       Thread-253189][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 11:25:30,776 [DEBUG][       Thread-253189][   transport.py][1871] : client lang: <none>
2025-06-13 11:25:30,776 [DEBUG][       Thread-253189][   transport.py][1871] : server lang: <none>
2025-06-13 11:25:30,776 [DEBUG][       Thread-253189][   transport.py][1871] : kex follows: False
2025-06-13 11:25:30,776 [DEBUG][       Thread-253189][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 11:25:30,776 [DEBUG][       Thread-253189][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 11:25:30,776 [DEBUG][       Thread-253189][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 11:25:30,776 [DEBUG][       Thread-253189][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 11:25:30,776 [DEBUG][       Thread-253189][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 11:25:30,776 [DEBUG][       Thread-253189][   transport.py][1871] : Compression: none
2025-06-13 11:25:30,776 [DEBUG][       Thread-253189][   transport.py][1871] : === End of kex handshake ===
2025-06-13 11:25:30,835 [DEBUG][       Thread-253189][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 11:25:30,836 [DEBUG][       Thread-253189][   transport.py][1871] : Switch to new keys ...
2025-06-13 11:25:30,837 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 11:25:30,837 [DEBUG][       Thread-253189][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 11:25:30,838 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 11:25:30,892 [DEBUG][       Thread-253189][   transport.py][1871] : userauth is OK
2025-06-13 11:25:30,893 [DEBUG][       Thread-253189][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 11:25:30,893 [DEBUG][       Thread-253189][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 11:25:30,893 [DEBUG][       Thread-253189][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 11:25:30,893 [DEBUG][       Thread-253189][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 11:25:30,912 [ INFO][       Thread-253189][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 11:25:30,913 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 11:25:30,913 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 11:25:30,922 [DEBUG][Thread-253191 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:25:31,923 [DEBUG][       Thread-253189][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 11:25:31,923 [DEBUG][       Thread-253189][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 11:25:31,971 [DEBUG][       Thread-253189][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 11:25:31,971 [DEBUG][       Thread-253189][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 11:25:31,980 [DEBUG][       Thread-253189][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 11:25:31,989 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 11:25:31,989 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 11:25:31,998 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 11:25:32,007 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 11:25:32,007 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 11:25:32,007 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 11:25:32,014 [DEBUG][       Thread-253189][   transport.py][1871] : EOF in transport thread
2025-06-13 11:25:34,640 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:25:34,641 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:25:39,941 [DEBUG][Thread-253192 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:25:42,017 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 11:25:42,017 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 11:25:42,018 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 11:25:42,020 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 11:25:42,462 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 11, 25, 34), 11.13, 46.11, 0.0, 20.17, 10.4, 0, 0, 0, 2, 0, 0),)
2025-06-13 11:25:42,462 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 11:25:34
2025-06-13 11:25:42,544 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 11:25:42,550 [DEBUG][       Thread-253193][   transport.py][1871] : starting thread (client mode): 0x84207730
2025-06-13 11:25:42,550 [DEBUG][       Thread-253193][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 11:25:42,572 [DEBUG][       Thread-253193][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 11:25:42,572 [ INFO][       Thread-253193][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 11:25:42,576 [DEBUG][       Thread-253193][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 11:25:42,576 [DEBUG][       Thread-253193][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 11:25:42,576 [DEBUG][       Thread-253193][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 11:25:42,576 [DEBUG][       Thread-253193][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:25:42,576 [DEBUG][       Thread-253193][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:25:42,576 [DEBUG][       Thread-253193][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:25:42,576 [DEBUG][       Thread-253193][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:25:42,576 [DEBUG][       Thread-253193][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 11:25:42,576 [DEBUG][       Thread-253193][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 11:25:42,576 [DEBUG][       Thread-253193][   transport.py][1871] : client lang: <none>
2025-06-13 11:25:42,576 [DEBUG][       Thread-253193][   transport.py][1871] : server lang: <none>
2025-06-13 11:25:42,576 [DEBUG][       Thread-253193][   transport.py][1871] : kex follows: False
2025-06-13 11:25:42,576 [DEBUG][       Thread-253193][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 11:25:42,576 [DEBUG][       Thread-253193][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 11:25:42,576 [DEBUG][       Thread-253193][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 11:25:42,576 [DEBUG][       Thread-253193][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 11:25:42,576 [DEBUG][       Thread-253193][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 11:25:42,576 [DEBUG][       Thread-253193][   transport.py][1871] : Compression: none
2025-06-13 11:25:42,576 [DEBUG][       Thread-253193][   transport.py][1871] : === End of kex handshake ===
2025-06-13 11:25:42,593 [DEBUG][       Thread-253193][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 11:25:42,594 [DEBUG][       Thread-253193][   transport.py][1871] : Switch to new keys ...
2025-06-13 11:25:42,595 [DEBUG][       Thread-253193][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 11:25:42,595 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 11:25:42,595 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 11:25:42,596 [DEBUG][       Thread-253193][   transport.py][1871] : userauth is OK
2025-06-13 11:25:42,610 [ INFO][       Thread-253193][   transport.py][1871] : Authentication (password) successful!
2025-06-13 11:25:42,611 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 11:25:43,242 [DEBUG][       Thread-253193][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 11:25:43,242 [DEBUG][       Thread-253193][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 11:25:43,285 [DEBUG][       Thread-253193][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 11:25:43,285 [DEBUG][       Thread-253193][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 11:25:43,288 [DEBUG][       Thread-253193][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 11:25:43,298 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 11:25:43,298 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 11:25:43,300 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 11:25:43,302 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 11:25:43,308 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 11:25:43,310 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 11:25:43,310 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 11:25:43,311 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 11:25:43,311 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.392647 -999.00  +10.40  21.61     50   +0.40 1 1 1 1 1   888    0 11.23 61.03 ----- 17.4 21.6 50.8 25.1 14.8 -27.7 13.4 -29.0 12.8 -27.5 14.0 -26.6
2025-06-13 11:25:43,311 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 11:25:43,311 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 11:25:43,311 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.392647
2025-06-13 11:25:43,311 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 11:25:43,312 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 11:25:43,312 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 11:25:43,312 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 11:25:43,312 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 11:25:43,312 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T11:25:34', tmtdew=11.13, humidity=46.11, cloud=0.0, wind=20.17, temperature=10.4, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T09:25:24.701', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 11:25:43,313 [DEBUG][       Thread-253193][   transport.py][1871] : EOF in transport thread
2025-06-13 11:25:43,397 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 11:25:43,415 [DEBUG][       Thread-253196][   transport.py][1871] : starting thread (client mode): 0x863ef700
2025-06-13 11:25:43,415 [DEBUG][       Thread-253196][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 11:25:43,435 [DEBUG][       Thread-253196][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 11:25:43,435 [ INFO][       Thread-253196][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 11:25:43,443 [DEBUG][       Thread-253196][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 11:25:43,443 [DEBUG][       Thread-253196][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 11:25:43,443 [DEBUG][       Thread-253196][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 11:25:43,443 [DEBUG][       Thread-253196][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:25:43,443 [DEBUG][       Thread-253196][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:25:43,443 [DEBUG][       Thread-253196][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:25:43,443 [DEBUG][       Thread-253196][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:25:43,443 [DEBUG][       Thread-253196][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 11:25:43,443 [DEBUG][       Thread-253196][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 11:25:43,444 [DEBUG][       Thread-253196][   transport.py][1871] : client lang: <none>
2025-06-13 11:25:43,444 [DEBUG][       Thread-253196][   transport.py][1871] : server lang: <none>
2025-06-13 11:25:43,444 [DEBUG][       Thread-253196][   transport.py][1871] : kex follows: False
2025-06-13 11:25:43,444 [DEBUG][       Thread-253196][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 11:25:43,444 [DEBUG][       Thread-253196][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 11:25:43,444 [DEBUG][       Thread-253196][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 11:25:43,444 [DEBUG][       Thread-253196][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 11:25:43,444 [DEBUG][       Thread-253196][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 11:25:43,444 [DEBUG][       Thread-253196][   transport.py][1871] : Compression: none
2025-06-13 11:25:43,444 [DEBUG][       Thread-253196][   transport.py][1871] : === End of kex handshake ===
2025-06-13 11:25:43,503 [DEBUG][       Thread-253196][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 11:25:43,504 [DEBUG][       Thread-253196][   transport.py][1871] : Switch to new keys ...
2025-06-13 11:25:43,504 [DEBUG][       Thread-253196][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 11:25:43,505 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 11:25:43,505 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 11:25:43,574 [DEBUG][       Thread-253196][   transport.py][1871] : userauth is OK
2025-06-13 11:25:43,574 [DEBUG][       Thread-253196][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 11:25:43,574 [DEBUG][       Thread-253196][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 11:25:43,575 [DEBUG][       Thread-253196][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 11:25:43,575 [DEBUG][       Thread-253196][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 11:25:43,598 [ INFO][       Thread-253196][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 11:25:43,598 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 11:25:43,599 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 11:25:44,656 [DEBUG][       Thread-253196][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 11:25:44,656 [DEBUG][       Thread-253196][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 11:25:44,707 [DEBUG][       Thread-253196][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 11:25:44,707 [DEBUG][       Thread-253196][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 11:25:44,720 [DEBUG][       Thread-253196][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 11:25:44,729 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 11:25:44,730 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 11:25:44,739 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 11:25:44,749 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 11:25:44,749 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 11:25:44,750 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 11:25:44,759 [DEBUG][       Thread-253196][   transport.py][1871] : EOF in transport thread
2025-06-13 11:25:48,965 [DEBUG][Thread-253198 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:25:54,756 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 11:25:54,756 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 11:25:54,756 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 11:25:54,760 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 11:25:55,216 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 11, 25, 34), 11.13, 46.11, 0.0, 20.17, 10.4, 0, 0, 0, 2, 0, 0),)
2025-06-13 11:25:55,216 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 11:25:34
2025-06-13 11:25:55,298 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 11:25:55,302 [DEBUG][       Thread-253199][   transport.py][1871] : starting thread (client mode): 0x84206620
2025-06-13 11:25:55,302 [DEBUG][       Thread-253199][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 11:25:55,324 [DEBUG][       Thread-253199][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 11:25:55,324 [ INFO][       Thread-253199][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 11:25:55,326 [DEBUG][       Thread-253199][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 11:25:55,326 [DEBUG][       Thread-253199][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 11:25:55,326 [DEBUG][       Thread-253199][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 11:25:55,326 [DEBUG][       Thread-253199][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:25:55,326 [DEBUG][       Thread-253199][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:25:55,326 [DEBUG][       Thread-253199][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:25:55,326 [DEBUG][       Thread-253199][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:25:55,326 [DEBUG][       Thread-253199][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 11:25:55,326 [DEBUG][       Thread-253199][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 11:25:55,326 [DEBUG][       Thread-253199][   transport.py][1871] : client lang: <none>
2025-06-13 11:25:55,326 [DEBUG][       Thread-253199][   transport.py][1871] : server lang: <none>
2025-06-13 11:25:55,326 [DEBUG][       Thread-253199][   transport.py][1871] : kex follows: False
2025-06-13 11:25:55,326 [DEBUG][       Thread-253199][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 11:25:55,326 [DEBUG][       Thread-253199][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 11:25:55,326 [DEBUG][       Thread-253199][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 11:25:55,326 [DEBUG][       Thread-253199][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 11:25:55,326 [DEBUG][       Thread-253199][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 11:25:55,327 [DEBUG][       Thread-253199][   transport.py][1871] : Compression: none
2025-06-13 11:25:55,327 [DEBUG][       Thread-253199][   transport.py][1871] : === End of kex handshake ===
2025-06-13 11:25:55,339 [DEBUG][       Thread-253199][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 11:25:55,339 [DEBUG][       Thread-253199][   transport.py][1871] : Switch to new keys ...
2025-06-13 11:25:55,340 [DEBUG][       Thread-253199][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 11:25:55,340 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 11:25:55,340 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 11:25:55,341 [DEBUG][       Thread-253199][   transport.py][1871] : userauth is OK
2025-06-13 11:25:55,366 [ INFO][       Thread-253199][   transport.py][1871] : Authentication (password) successful!
2025-06-13 11:25:55,367 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 11:25:55,951 [DEBUG][       Thread-253199][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 11:25:55,951 [DEBUG][       Thread-253199][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 11:25:55,993 [DEBUG][       Thread-253199][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 11:25:55,994 [DEBUG][       Thread-253199][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 11:25:55,996 [DEBUG][       Thread-253199][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 11:25:56,003 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 11:25:56,003 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 11:25:56,004 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 11:25:56,005 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 11:25:56,007 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 11:25:56,008 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 11:25:56,008 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 11:25:56,008 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 11:25:56,008 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.392647 -999.00  +10.40  21.61     50   +0.40 1 1 1 1 1   888    0 11.23 61.03 ----- 17.4 21.6 50.8 25.1 14.8 -27.7 13.4 -29.0 12.8 -27.5 14.0 -26.6
2025-06-13 11:25:56,008 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 11:25:56,008 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 11:25:56,008 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.392647
2025-06-13 11:25:56,008 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 11:25:56,008 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 11:25:56,008 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 11:25:56,009 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 11:25:56,009 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 11:25:56,009 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T11:25:34', tmtdew=11.13, humidity=46.11, cloud=0.0, wind=20.17, temperature=10.4, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T09:25:24.701', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 11:25:56,009 [DEBUG][       Thread-253199][   transport.py][1871] : EOF in transport thread
2025-06-13 11:25:56,080 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 11:25:56,090 [DEBUG][       Thread-253202][   transport.py][1871] : starting thread (client mode): 0x8636bdf0
2025-06-13 11:25:56,090 [DEBUG][       Thread-253202][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 11:25:56,105 [DEBUG][       Thread-253202][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 11:25:56,105 [ INFO][       Thread-253202][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 11:25:56,113 [DEBUG][       Thread-253202][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 11:25:56,114 [DEBUG][       Thread-253202][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 11:25:56,114 [DEBUG][       Thread-253202][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 11:25:56,114 [DEBUG][       Thread-253202][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:25:56,114 [DEBUG][       Thread-253202][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:25:56,114 [DEBUG][       Thread-253202][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:25:56,114 [DEBUG][       Thread-253202][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:25:56,114 [DEBUG][       Thread-253202][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 11:25:56,114 [DEBUG][       Thread-253202][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 11:25:56,114 [DEBUG][       Thread-253202][   transport.py][1871] : client lang: <none>
2025-06-13 11:25:56,114 [DEBUG][       Thread-253202][   transport.py][1871] : server lang: <none>
2025-06-13 11:25:56,114 [DEBUG][       Thread-253202][   transport.py][1871] : kex follows: False
2025-06-13 11:25:56,114 [DEBUG][       Thread-253202][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 11:25:56,114 [DEBUG][       Thread-253202][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 11:25:56,114 [DEBUG][       Thread-253202][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 11:25:56,114 [DEBUG][       Thread-253202][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 11:25:56,114 [DEBUG][       Thread-253202][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 11:25:56,114 [DEBUG][       Thread-253202][   transport.py][1871] : Compression: none
2025-06-13 11:25:56,114 [DEBUG][       Thread-253202][   transport.py][1871] : === End of kex handshake ===
2025-06-13 11:25:56,175 [DEBUG][       Thread-253202][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 11:25:56,176 [DEBUG][       Thread-253202][   transport.py][1871] : Switch to new keys ...
2025-06-13 11:25:56,177 [DEBUG][       Thread-253202][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 11:25:56,177 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 11:25:56,178 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 11:25:56,239 [DEBUG][       Thread-253202][   transport.py][1871] : userauth is OK
2025-06-13 11:25:56,240 [DEBUG][       Thread-253202][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 11:25:56,240 [DEBUG][       Thread-253202][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 11:25:56,240 [DEBUG][       Thread-253202][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 11:25:56,240 [DEBUG][       Thread-253202][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 11:25:56,261 [ INFO][       Thread-253202][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 11:25:56,261 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 11:25:56,262 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 11:25:57,309 [DEBUG][       Thread-253202][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 11:25:57,309 [DEBUG][       Thread-253202][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 11:25:57,360 [DEBUG][       Thread-253202][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 11:25:57,361 [DEBUG][       Thread-253202][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 11:25:57,371 [DEBUG][       Thread-253202][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 11:25:57,383 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 11:25:57,384 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 11:25:57,394 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 11:25:57,406 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 11:25:57,407 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 11:25:57,407 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 11:25:57,415 [DEBUG][       Thread-253202][   transport.py][1871] : EOF in transport thread
2025-06-13 11:25:58,012 [DEBUG][Thread-253204 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:26:07,036 [DEBUG][Thread-253205 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:26:07,418 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 11:26:07,418 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 11:26:07,418 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 11:26:07,418 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 11:26:07,902 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 11, 25, 34), 11.13, 46.11, 0.0, 20.17, 10.4, 0, 0, 0, 2, 0, 0),)
2025-06-13 11:26:07,902 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 11:25:34
2025-06-13 11:26:07,988 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 11:26:08,004 [DEBUG][       Thread-253206][   transport.py][1871] : starting thread (client mode): 0x84206b60
2025-06-13 11:26:08,004 [DEBUG][       Thread-253206][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 11:26:08,030 [DEBUG][       Thread-253206][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 11:26:08,030 [ INFO][       Thread-253206][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 11:26:08,033 [DEBUG][       Thread-253206][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 11:26:08,033 [DEBUG][       Thread-253206][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 11:26:08,033 [DEBUG][       Thread-253206][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 11:26:08,033 [DEBUG][       Thread-253206][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:26:08,033 [DEBUG][       Thread-253206][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:26:08,033 [DEBUG][       Thread-253206][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:26:08,033 [DEBUG][       Thread-253206][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:26:08,033 [DEBUG][       Thread-253206][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 11:26:08,033 [DEBUG][       Thread-253206][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 11:26:08,033 [DEBUG][       Thread-253206][   transport.py][1871] : client lang: <none>
2025-06-13 11:26:08,033 [DEBUG][       Thread-253206][   transport.py][1871] : server lang: <none>
2025-06-13 11:26:08,033 [DEBUG][       Thread-253206][   transport.py][1871] : kex follows: False
2025-06-13 11:26:08,033 [DEBUG][       Thread-253206][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 11:26:08,033 [DEBUG][       Thread-253206][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 11:26:08,033 [DEBUG][       Thread-253206][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 11:26:08,033 [DEBUG][       Thread-253206][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 11:26:08,033 [DEBUG][       Thread-253206][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 11:26:08,033 [DEBUG][       Thread-253206][   transport.py][1871] : Compression: none
2025-06-13 11:26:08,033 [DEBUG][       Thread-253206][   transport.py][1871] : === End of kex handshake ===
2025-06-13 11:26:08,040 [DEBUG][       Thread-253206][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 11:26:08,040 [DEBUG][       Thread-253206][   transport.py][1871] : Switch to new keys ...
2025-06-13 11:26:08,040 [DEBUG][       Thread-253206][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 11:26:08,040 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 11:26:08,040 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 11:26:08,041 [DEBUG][       Thread-253206][   transport.py][1871] : userauth is OK
2025-06-13 11:26:08,065 [ INFO][       Thread-253206][   transport.py][1871] : Authentication (password) successful!
2025-06-13 11:26:08,065 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 11:26:08,680 [DEBUG][       Thread-253206][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 11:26:08,680 [DEBUG][       Thread-253206][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 11:26:08,721 [DEBUG][       Thread-253206][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 11:26:08,721 [DEBUG][       Thread-253206][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 11:26:08,724 [DEBUG][       Thread-253206][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 11:26:08,737 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 11:26:08,737 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 11:26:08,739 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 11:26:08,741 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 11:26:08,746 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 11:26:08,748 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 11:26:08,748 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 11:26:08,749 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 11:26:08,749 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.392994 -999.00  +10.20  21.36     50   +0.30 1 1 1 1 1   888    0 11.25 63.90 ----- 21.6 21.4 51.4 28.1 14.8 -28.5 13.4 -29.7 12.7 -28.9 14.0 -26.9
2025-06-13 11:26:08,749 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 11:26:08,749 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 11:26:08,749 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.392994
2025-06-13 11:26:08,749 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 11:26:08,750 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 11:26:08,750 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 11:26:08,750 [DEBUG][       Thread-253206][   transport.py][1871] : EOF in transport thread
2025-06-13 11:26:08,751 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 11:26:08,751 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 11:26:08,751 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T11:25:34', tmtdew=11.13, humidity=46.11, cloud=0.0, wind=20.17, temperature=10.4, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T09:25:54.682', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 11:26:08,834 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 11:26:08,853 [DEBUG][       Thread-253209][   transport.py][1871] : starting thread (client mode): 0x867b7dc0
2025-06-13 11:26:08,853 [DEBUG][       Thread-253209][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 11:26:08,871 [DEBUG][       Thread-253209][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 11:26:08,871 [ INFO][       Thread-253209][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 11:26:08,880 [DEBUG][       Thread-253209][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 11:26:08,880 [DEBUG][       Thread-253209][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 11:26:08,880 [DEBUG][       Thread-253209][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 11:26:08,880 [DEBUG][       Thread-253209][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:26:08,880 [DEBUG][       Thread-253209][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:26:08,880 [DEBUG][       Thread-253209][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:26:08,880 [DEBUG][       Thread-253209][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:26:08,880 [DEBUG][       Thread-253209][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 11:26:08,880 [DEBUG][       Thread-253209][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 11:26:08,881 [DEBUG][       Thread-253209][   transport.py][1871] : client lang: <none>
2025-06-13 11:26:08,881 [DEBUG][       Thread-253209][   transport.py][1871] : server lang: <none>
2025-06-13 11:26:08,881 [DEBUG][       Thread-253209][   transport.py][1871] : kex follows: False
2025-06-13 11:26:08,881 [DEBUG][       Thread-253209][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 11:26:08,881 [DEBUG][       Thread-253209][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 11:26:08,881 [DEBUG][       Thread-253209][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 11:26:08,881 [DEBUG][       Thread-253209][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 11:26:08,881 [DEBUG][       Thread-253209][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 11:26:08,881 [DEBUG][       Thread-253209][   transport.py][1871] : Compression: none
2025-06-13 11:26:08,881 [DEBUG][       Thread-253209][   transport.py][1871] : === End of kex handshake ===
2025-06-13 11:26:08,940 [DEBUG][       Thread-253209][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 11:26:08,941 [DEBUG][       Thread-253209][   transport.py][1871] : Switch to new keys ...
2025-06-13 11:26:08,942 [DEBUG][       Thread-253209][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 11:26:08,942 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 11:26:08,943 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 11:26:09,000 [DEBUG][       Thread-253209][   transport.py][1871] : userauth is OK
2025-06-13 11:26:09,000 [DEBUG][       Thread-253209][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 11:26:09,001 [DEBUG][       Thread-253209][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 11:26:09,001 [DEBUG][       Thread-253209][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 11:26:09,001 [DEBUG][       Thread-253209][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 11:26:09,019 [ INFO][       Thread-253209][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 11:26:09,020 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 11:26:09,020 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 11:26:09,105 [DEBUG][Thread-253211 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:26:10,067 [DEBUG][       Thread-253209][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 11:26:10,067 [DEBUG][       Thread-253209][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 11:26:10,116 [DEBUG][       Thread-253209][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 11:26:10,116 [DEBUG][       Thread-253209][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 11:26:10,126 [DEBUG][       Thread-253209][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 11:26:10,136 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 11:26:10,137 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 11:26:10,146 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 11:26:10,156 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 11:26:10,156 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 11:26:10,157 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 11:26:10,165 [DEBUG][       Thread-253209][   transport.py][1871] : EOF in transport thread
2025-06-13 11:26:16,067 [DEBUG][Thread-253212 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:26:18,229 [DEBUG][Thread-253213 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:26:19,300 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:26:19,300 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:26:20,167 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 11:26:20,168 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 11:26:20,168 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 11:26:20,170 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 11:26:20,624 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 11, 26, 6), 11.03, 46.46, 0.0, 20.57, 10.45, 0, 0, 0, 2, 0, 0),)
2025-06-13 11:26:20,624 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 11:26:06
2025-06-13 11:26:20,703 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 11:26:20,720 [DEBUG][       Thread-253214][   transport.py][1871] : starting thread (client mode): 0x863bd240
2025-06-13 11:26:20,720 [DEBUG][       Thread-253214][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 11:26:20,737 [DEBUG][       Thread-253214][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 11:26:20,737 [ INFO][       Thread-253214][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 11:26:20,740 [DEBUG][       Thread-253214][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 11:26:20,740 [DEBUG][       Thread-253214][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 11:26:20,740 [DEBUG][       Thread-253214][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 11:26:20,740 [DEBUG][       Thread-253214][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:26:20,740 [DEBUG][       Thread-253214][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:26:20,740 [DEBUG][       Thread-253214][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:26:20,740 [DEBUG][       Thread-253214][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:26:20,740 [DEBUG][       Thread-253214][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 11:26:20,740 [DEBUG][       Thread-253214][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 11:26:20,740 [DEBUG][       Thread-253214][   transport.py][1871] : client lang: <none>
2025-06-13 11:26:20,740 [DEBUG][       Thread-253214][   transport.py][1871] : server lang: <none>
2025-06-13 11:26:20,740 [DEBUG][       Thread-253214][   transport.py][1871] : kex follows: False
2025-06-13 11:26:20,740 [DEBUG][       Thread-253214][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 11:26:20,741 [DEBUG][       Thread-253214][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 11:26:20,741 [DEBUG][       Thread-253214][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 11:26:20,741 [DEBUG][       Thread-253214][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 11:26:20,741 [DEBUG][       Thread-253214][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 11:26:20,741 [DEBUG][       Thread-253214][   transport.py][1871] : Compression: none
2025-06-13 11:26:20,741 [DEBUG][       Thread-253214][   transport.py][1871] : === End of kex handshake ===
2025-06-13 11:26:20,763 [DEBUG][       Thread-253214][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 11:26:20,764 [DEBUG][       Thread-253214][   transport.py][1871] : Switch to new keys ...
2025-06-13 11:26:20,764 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 11:26:20,764 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 11:26:20,765 [DEBUG][       Thread-253214][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 11:26:20,765 [DEBUG][       Thread-253214][   transport.py][1871] : userauth is OK
2025-06-13 11:26:20,790 [ INFO][       Thread-253214][   transport.py][1871] : Authentication (password) successful!
2025-06-13 11:26:20,791 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 11:26:21,428 [DEBUG][       Thread-253214][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 11:26:21,428 [DEBUG][       Thread-253214][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 11:26:21,473 [DEBUG][       Thread-253214][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 11:26:21,473 [DEBUG][       Thread-253214][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 11:26:21,477 [DEBUG][       Thread-253214][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 11:26:21,488 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 11:26:21,489 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 11:26:21,491 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 11:26:21,493 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 11:26:21,499 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 11:26:21,501 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 11:26:21,501 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 11:26:21,502 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 11:26:21,502 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.392994 -999.00  +10.20  21.36     50   +0.30 1 1 1 1 1   888    0 11.25 63.90 ----- 21.6 21.4 51.4 28.1 14.8 -28.5 13.4 -29.7 12.7 -28.9 14.0 -26.9
2025-06-13 11:26:21,503 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 11:26:21,503 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 11:26:21,503 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.392994
2025-06-13 11:26:21,504 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 11:26:21,505 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 11:26:21,505 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 11:26:21,505 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 11:26:21,505 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 11:26:21,505 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T11:26:06', tmtdew=11.03, humidity=46.46, cloud=0.0, wind=20.57, temperature=10.45, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T09:25:54.682', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 11:26:21,506 [DEBUG][       Thread-253214][   transport.py][1871] : EOF in transport thread
2025-06-13 11:26:21,592 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 11:26:21,610 [DEBUG][       Thread-253217][   transport.py][1871] : starting thread (client mode): 0x86369030
2025-06-13 11:26:21,610 [DEBUG][       Thread-253217][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 11:26:21,626 [DEBUG][       Thread-253217][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 11:26:21,626 [ INFO][       Thread-253217][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 11:26:21,637 [DEBUG][       Thread-253217][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 11:26:21,638 [DEBUG][       Thread-253217][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 11:26:21,638 [DEBUG][       Thread-253217][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 11:26:21,638 [DEBUG][       Thread-253217][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:26:21,638 [DEBUG][       Thread-253217][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:26:21,638 [DEBUG][       Thread-253217][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:26:21,638 [DEBUG][       Thread-253217][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:26:21,638 [DEBUG][       Thread-253217][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 11:26:21,638 [DEBUG][       Thread-253217][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 11:26:21,638 [DEBUG][       Thread-253217][   transport.py][1871] : client lang: <none>
2025-06-13 11:26:21,638 [DEBUG][       Thread-253217][   transport.py][1871] : server lang: <none>
2025-06-13 11:26:21,638 [DEBUG][       Thread-253217][   transport.py][1871] : kex follows: False
2025-06-13 11:26:21,638 [DEBUG][       Thread-253217][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 11:26:21,638 [DEBUG][       Thread-253217][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 11:26:21,639 [DEBUG][       Thread-253217][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 11:26:21,639 [DEBUG][       Thread-253217][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 11:26:21,639 [DEBUG][       Thread-253217][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 11:26:21,639 [DEBUG][       Thread-253217][   transport.py][1871] : Compression: none
2025-06-13 11:26:21,639 [DEBUG][       Thread-253217][   transport.py][1871] : === End of kex handshake ===
2025-06-13 11:26:21,701 [DEBUG][       Thread-253217][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 11:26:21,702 [DEBUG][       Thread-253217][   transport.py][1871] : Switch to new keys ...
2025-06-13 11:26:21,702 [DEBUG][       Thread-253217][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 11:26:21,703 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 11:26:21,703 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 11:26:21,759 [DEBUG][       Thread-253217][   transport.py][1871] : userauth is OK
2025-06-13 11:26:21,759 [DEBUG][       Thread-253217][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 11:26:21,759 [DEBUG][       Thread-253217][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 11:26:21,759 [DEBUG][       Thread-253217][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 11:26:21,759 [DEBUG][       Thread-253217][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 11:26:21,773 [ INFO][       Thread-253217][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 11:26:21,773 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 11:26:21,773 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 11:26:22,802 [DEBUG][       Thread-253217][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 11:26:22,802 [DEBUG][       Thread-253217][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 11:26:22,854 [DEBUG][       Thread-253217][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 11:26:22,854 [DEBUG][       Thread-253217][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 11:26:22,864 [DEBUG][       Thread-253217][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 11:26:22,874 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 11:26:22,875 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 11:26:22,884 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 11:26:22,893 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 11:26:22,893 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 11:26:22,893 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 11:26:22,901 [DEBUG][       Thread-253217][   transport.py][1871] : EOF in transport thread
2025-06-13 11:26:25,097 [DEBUG][Thread-253219 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:26:32,900 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 11:26:32,900 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 11:26:32,900 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 11:26:32,903 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 11:26:33,369 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 11, 26, 6), 11.03, 46.46, 0.0, 20.57, 10.45, 0, 0, 0, 2, 0, 0),)
2025-06-13 11:26:33,369 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 11:26:06
2025-06-13 11:26:33,449 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 11:26:33,461 [DEBUG][       Thread-253220][   transport.py][1871] : starting thread (client mode): 0x84207970
2025-06-13 11:26:33,461 [DEBUG][       Thread-253220][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 11:26:33,481 [DEBUG][       Thread-253220][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 11:26:33,482 [ INFO][       Thread-253220][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 11:26:33,485 [DEBUG][       Thread-253220][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 11:26:33,485 [DEBUG][       Thread-253220][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 11:26:33,485 [DEBUG][       Thread-253220][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 11:26:33,485 [DEBUG][       Thread-253220][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:26:33,485 [DEBUG][       Thread-253220][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:26:33,485 [DEBUG][       Thread-253220][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:26:33,486 [DEBUG][       Thread-253220][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:26:33,486 [DEBUG][       Thread-253220][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 11:26:33,486 [DEBUG][       Thread-253220][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 11:26:33,486 [DEBUG][       Thread-253220][   transport.py][1871] : client lang: <none>
2025-06-13 11:26:33,486 [DEBUG][       Thread-253220][   transport.py][1871] : server lang: <none>
2025-06-13 11:26:33,486 [DEBUG][       Thread-253220][   transport.py][1871] : kex follows: False
2025-06-13 11:26:33,486 [DEBUG][       Thread-253220][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 11:26:33,486 [DEBUG][       Thread-253220][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 11:26:33,486 [DEBUG][       Thread-253220][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 11:26:33,486 [DEBUG][       Thread-253220][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 11:26:33,486 [DEBUG][       Thread-253220][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 11:26:33,486 [DEBUG][       Thread-253220][   transport.py][1871] : Compression: none
2025-06-13 11:26:33,486 [DEBUG][       Thread-253220][   transport.py][1871] : === End of kex handshake ===
2025-06-13 11:26:33,503 [DEBUG][       Thread-253220][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 11:26:33,504 [DEBUG][       Thread-253220][   transport.py][1871] : Switch to new keys ...
2025-06-13 11:26:33,504 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 11:26:33,505 [DEBUG][       Thread-253220][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 11:26:33,505 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 11:26:33,547 [DEBUG][       Thread-253220][   transport.py][1871] : userauth is OK
2025-06-13 11:26:33,571 [ INFO][       Thread-253220][   transport.py][1871] : Authentication (password) successful!
2025-06-13 11:26:33,572 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 11:26:34,148 [DEBUG][Thread-253222 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:26:34,251 [DEBUG][       Thread-253220][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 11:26:34,251 [DEBUG][       Thread-253220][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 11:26:34,302 [DEBUG][       Thread-253220][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 11:26:34,302 [DEBUG][       Thread-253220][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 11:26:34,305 [DEBUG][       Thread-253220][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 11:26:34,319 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 11:26:34,320 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 11:26:34,321 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 11:26:34,323 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 11:26:34,328 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 11:26:34,330 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 11:26:34,330 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 11:26:34,331 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 11:26:34,331 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.392994 -999.00  +10.20  21.36     50   +0.30 1 1 1 1 1   888    0 11.25 63.90 ----- 21.6 21.4 51.4 28.1 14.8 -28.5 13.4 -29.7 12.7 -28.9 14.0 -26.9
2025-06-13 11:26:34,331 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 11:26:34,331 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 11:26:34,331 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.392994
2025-06-13 11:26:34,331 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 11:26:34,332 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 11:26:34,332 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 11:26:34,332 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 11:26:34,332 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 11:26:34,332 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T11:26:06', tmtdew=11.03, humidity=46.46, cloud=0.0, wind=20.57, temperature=10.45, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T09:25:54.682', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 11:26:34,333 [DEBUG][       Thread-253220][   transport.py][1871] : EOF in transport thread
2025-06-13 11:26:34,407 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 11:26:34,425 [DEBUG][       Thread-253224][   transport.py][1871] : starting thread (client mode): 0x86893820
2025-06-13 11:26:34,425 [DEBUG][       Thread-253224][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 11:26:34,441 [DEBUG][       Thread-253224][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 11:26:34,441 [ INFO][       Thread-253224][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 11:26:34,450 [DEBUG][       Thread-253224][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 11:26:34,451 [DEBUG][       Thread-253224][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 11:26:34,451 [DEBUG][       Thread-253224][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 11:26:34,451 [DEBUG][       Thread-253224][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:26:34,451 [DEBUG][       Thread-253224][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:26:34,451 [DEBUG][       Thread-253224][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:26:34,451 [DEBUG][       Thread-253224][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:26:34,451 [DEBUG][       Thread-253224][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 11:26:34,451 [DEBUG][       Thread-253224][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 11:26:34,451 [DEBUG][       Thread-253224][   transport.py][1871] : client lang: <none>
2025-06-13 11:26:34,451 [DEBUG][       Thread-253224][   transport.py][1871] : server lang: <none>
2025-06-13 11:26:34,451 [DEBUG][       Thread-253224][   transport.py][1871] : kex follows: False
2025-06-13 11:26:34,451 [DEBUG][       Thread-253224][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 11:26:34,451 [DEBUG][       Thread-253224][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 11:26:34,451 [DEBUG][       Thread-253224][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 11:26:34,451 [DEBUG][       Thread-253224][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 11:26:34,452 [DEBUG][       Thread-253224][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 11:26:34,452 [DEBUG][       Thread-253224][   transport.py][1871] : Compression: none
2025-06-13 11:26:34,452 [DEBUG][       Thread-253224][   transport.py][1871] : === End of kex handshake ===
2025-06-13 11:26:34,512 [DEBUG][       Thread-253224][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 11:26:34,512 [DEBUG][       Thread-253224][   transport.py][1871] : Switch to new keys ...
2025-06-13 11:26:34,513 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 11:26:34,514 [DEBUG][       Thread-253224][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 11:26:34,514 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 11:26:34,573 [DEBUG][       Thread-253224][   transport.py][1871] : userauth is OK
2025-06-13 11:26:34,574 [DEBUG][       Thread-253224][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 11:26:34,574 [DEBUG][       Thread-253224][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 11:26:34,574 [DEBUG][       Thread-253224][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 11:26:34,574 [DEBUG][       Thread-253224][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 11:26:34,595 [ INFO][       Thread-253224][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 11:26:34,595 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 11:26:34,596 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 11:26:34,776 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:26:34,777 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:26:35,603 [DEBUG][       Thread-253224][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 11:26:35,603 [DEBUG][       Thread-253224][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 11:26:35,652 [DEBUG][       Thread-253224][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 11:26:35,653 [DEBUG][       Thread-253224][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 11:26:35,663 [DEBUG][       Thread-253224][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 11:26:35,672 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 11:26:35,672 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 11:26:35,682 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 11:26:35,693 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 11:26:35,693 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 11:26:35,694 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 11:26:35,703 [DEBUG][       Thread-253224][   transport.py][1871] : EOF in transport thread
2025-06-13 11:26:43,185 [DEBUG][Thread-253226 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:26:45,700 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 11:26:45,700 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 11:26:45,700 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 11:26:45,703 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 11:26:46,154 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 11, 26, 37), 11.1, 46.0, 0.0, 14.95, 10.37, 0, 0, 0, 2, 0, 0),)
2025-06-13 11:26:46,154 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 11:26:37
2025-06-13 11:26:46,234 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 11:26:46,247 [DEBUG][       Thread-253227][   transport.py][1871] : starting thread (client mode): 0x867b5870
2025-06-13 11:26:46,247 [DEBUG][       Thread-253227][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 11:26:46,269 [DEBUG][       Thread-253227][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 11:26:46,269 [ INFO][       Thread-253227][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 11:26:46,272 [DEBUG][       Thread-253227][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 11:26:46,273 [DEBUG][       Thread-253227][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 11:26:46,273 [DEBUG][       Thread-253227][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 11:26:46,273 [DEBUG][       Thread-253227][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:26:46,273 [DEBUG][       Thread-253227][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:26:46,273 [DEBUG][       Thread-253227][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:26:46,273 [DEBUG][       Thread-253227][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:26:46,273 [DEBUG][       Thread-253227][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 11:26:46,273 [DEBUG][       Thread-253227][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 11:26:46,273 [DEBUG][       Thread-253227][   transport.py][1871] : client lang: <none>
2025-06-13 11:26:46,273 [DEBUG][       Thread-253227][   transport.py][1871] : server lang: <none>
2025-06-13 11:26:46,273 [DEBUG][       Thread-253227][   transport.py][1871] : kex follows: False
2025-06-13 11:26:46,273 [DEBUG][       Thread-253227][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 11:26:46,273 [DEBUG][       Thread-253227][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 11:26:46,273 [DEBUG][       Thread-253227][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 11:26:46,273 [DEBUG][       Thread-253227][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 11:26:46,273 [DEBUG][       Thread-253227][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 11:26:46,274 [DEBUG][       Thread-253227][   transport.py][1871] : Compression: none
2025-06-13 11:26:46,274 [DEBUG][       Thread-253227][   transport.py][1871] : === End of kex handshake ===
2025-06-13 11:26:46,292 [DEBUG][       Thread-253227][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 11:26:46,292 [DEBUG][       Thread-253227][   transport.py][1871] : Switch to new keys ...
2025-06-13 11:26:46,293 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 11:26:46,293 [DEBUG][       Thread-253227][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 11:26:46,293 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 11:26:46,295 [DEBUG][       Thread-253227][   transport.py][1871] : userauth is OK
2025-06-13 11:26:46,319 [ INFO][       Thread-253227][   transport.py][1871] : Authentication (password) successful!
2025-06-13 11:26:46,320 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 11:26:46,983 [DEBUG][       Thread-253227][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 11:26:46,984 [DEBUG][       Thread-253227][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 11:26:47,025 [DEBUG][       Thread-253227][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 11:26:47,025 [DEBUG][       Thread-253227][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 11:26:47,029 [DEBUG][       Thread-253227][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 11:26:47,043 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 11:26:47,044 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 11:26:47,046 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 11:26:47,047 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 11:26:47,053 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 11:26:47,055 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 11:26:47,055 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 11:26:47,056 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 11:26:47,056 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.393342 -999.00  +10.10  16.85     51   +0.60 1 1 1 1 1   888    0 11.49 66.52 ----- 21.8 16.9 37.2 24.0 14.8 -28.4 13.4 -29.5 12.7 -28.6 14.1 -26.2
2025-06-13 11:26:47,056 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 11:26:47,056 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 11:26:47,056 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.393342
2025-06-13 11:26:47,057 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 11:26:47,057 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 11:26:47,057 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 11:26:47,058 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 11:26:47,058 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 11:26:47,058 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T11:26:37', tmtdew=11.1, humidity=46.0, cloud=0.0, wind=14.95, temperature=10.37, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T09:26:24.749', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 11:26:47,059 [DEBUG][       Thread-253227][   transport.py][1871] : EOF in transport thread
2025-06-13 11:26:47,141 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 11:26:47,163 [DEBUG][       Thread-253230][   transport.py][1871] : starting thread (client mode): 0x863a5030
2025-06-13 11:26:47,163 [DEBUG][       Thread-253230][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 11:26:47,179 [DEBUG][       Thread-253230][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 11:26:47,179 [ INFO][       Thread-253230][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 11:26:47,191 [DEBUG][       Thread-253230][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 11:26:47,191 [DEBUG][       Thread-253230][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 11:26:47,191 [DEBUG][       Thread-253230][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 11:26:47,191 [DEBUG][       Thread-253230][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:26:47,191 [DEBUG][       Thread-253230][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:26:47,191 [DEBUG][       Thread-253230][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:26:47,191 [DEBUG][       Thread-253230][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:26:47,191 [DEBUG][       Thread-253230][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 11:26:47,191 [DEBUG][       Thread-253230][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 11:26:47,192 [DEBUG][       Thread-253230][   transport.py][1871] : client lang: <none>
2025-06-13 11:26:47,192 [DEBUG][       Thread-253230][   transport.py][1871] : server lang: <none>
2025-06-13 11:26:47,192 [DEBUG][       Thread-253230][   transport.py][1871] : kex follows: False
2025-06-13 11:26:47,192 [DEBUG][       Thread-253230][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 11:26:47,192 [DEBUG][       Thread-253230][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 11:26:47,192 [DEBUG][       Thread-253230][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 11:26:47,192 [DEBUG][       Thread-253230][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 11:26:47,192 [DEBUG][       Thread-253230][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 11:26:47,192 [DEBUG][       Thread-253230][   transport.py][1871] : Compression: none
2025-06-13 11:26:47,192 [DEBUG][       Thread-253230][   transport.py][1871] : === End of kex handshake ===
2025-06-13 11:26:47,255 [DEBUG][       Thread-253230][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 11:26:47,256 [DEBUG][       Thread-253230][   transport.py][1871] : Switch to new keys ...
2025-06-13 11:26:47,256 [DEBUG][       Thread-253230][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 11:26:47,256 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 11:26:47,257 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 11:26:47,318 [DEBUG][       Thread-253230][   transport.py][1871] : userauth is OK
2025-06-13 11:26:47,318 [DEBUG][       Thread-253230][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 11:26:47,318 [DEBUG][       Thread-253230][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 11:26:47,318 [DEBUG][       Thread-253230][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 11:26:47,318 [DEBUG][       Thread-253230][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 11:26:47,339 [ INFO][       Thread-253230][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 11:26:47,339 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 11:26:47,340 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 11:26:48,394 [DEBUG][       Thread-253230][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 11:26:48,395 [DEBUG][       Thread-253230][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 11:26:48,444 [DEBUG][       Thread-253230][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 11:26:48,444 [DEBUG][       Thread-253230][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 11:26:48,454 [DEBUG][       Thread-253230][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 11:26:48,464 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 11:26:48,464 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 11:26:48,475 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 11:26:48,484 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 11:26:48,485 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 11:26:48,485 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 11:26:48,494 [DEBUG][       Thread-253230][   transport.py][1871] : EOF in transport thread
2025-06-13 11:26:52,218 [DEBUG][Thread-253232 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:26:58,493 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 11:26:58,494 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 11:26:58,494 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 11:26:58,497 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 11:26:58,952 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 11, 26, 37), 11.1, 46.0, 0.0, 14.95, 10.37, 0, 0, 0, 2, 0, 0),)
2025-06-13 11:26:58,952 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 11:26:37
2025-06-13 11:26:59,033 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 11:26:59,046 [DEBUG][       Thread-253233][   transport.py][1871] : starting thread (client mode): 0x86368d90
2025-06-13 11:26:59,046 [DEBUG][       Thread-253233][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 11:26:59,066 [DEBUG][       Thread-253233][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 11:26:59,066 [ INFO][       Thread-253233][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 11:26:59,070 [DEBUG][       Thread-253233][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 11:26:59,070 [DEBUG][       Thread-253233][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 11:26:59,070 [DEBUG][       Thread-253233][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 11:26:59,070 [DEBUG][       Thread-253233][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:26:59,070 [DEBUG][       Thread-253233][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:26:59,070 [DEBUG][       Thread-253233][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:26:59,070 [DEBUG][       Thread-253233][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:26:59,070 [DEBUG][       Thread-253233][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 11:26:59,070 [DEBUG][       Thread-253233][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 11:26:59,070 [DEBUG][       Thread-253233][   transport.py][1871] : client lang: <none>
2025-06-13 11:26:59,070 [DEBUG][       Thread-253233][   transport.py][1871] : server lang: <none>
2025-06-13 11:26:59,070 [DEBUG][       Thread-253233][   transport.py][1871] : kex follows: False
2025-06-13 11:26:59,070 [DEBUG][       Thread-253233][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 11:26:59,070 [DEBUG][       Thread-253233][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 11:26:59,070 [DEBUG][       Thread-253233][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 11:26:59,070 [DEBUG][       Thread-253233][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 11:26:59,070 [DEBUG][       Thread-253233][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 11:26:59,070 [DEBUG][       Thread-253233][   transport.py][1871] : Compression: none
2025-06-13 11:26:59,070 [DEBUG][       Thread-253233][   transport.py][1871] : === End of kex handshake ===
2025-06-13 11:26:59,082 [DEBUG][       Thread-253233][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 11:26:59,082 [DEBUG][       Thread-253233][   transport.py][1871] : Switch to new keys ...
2025-06-13 11:26:59,082 [DEBUG][       Thread-253233][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 11:26:59,082 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 11:26:59,082 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 11:26:59,128 [DEBUG][       Thread-253233][   transport.py][1871] : userauth is OK
2025-06-13 11:26:59,151 [ INFO][       Thread-253233][   transport.py][1871] : Authentication (password) successful!
2025-06-13 11:26:59,152 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 11:26:59,807 [DEBUG][       Thread-253233][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 11:26:59,808 [DEBUG][       Thread-253233][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 11:26:59,849 [DEBUG][       Thread-253233][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 11:26:59,849 [DEBUG][       Thread-253233][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 11:26:59,852 [DEBUG][       Thread-253233][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 11:26:59,865 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 11:26:59,866 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 11:26:59,868 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 11:26:59,870 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 11:26:59,876 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 11:26:59,879 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 11:26:59,879 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 11:26:59,879 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 11:26:59,880 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.393342 -999.00  +10.10  16.85     51   +0.60 1 1 1 1 1   888    0 11.49 66.52 ----- 21.8 16.9 37.2 24.0 14.8 -28.4 13.4 -29.5 12.7 -28.6 14.1 -26.2
2025-06-13 11:26:59,880 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 11:26:59,880 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 11:26:59,880 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.393342
2025-06-13 11:26:59,880 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 11:26:59,881 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 11:26:59,881 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 11:26:59,881 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 11:26:59,881 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 11:26:59,881 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T11:26:37', tmtdew=11.1, humidity=46.0, cloud=0.0, wind=14.95, temperature=10.37, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T09:26:24.749', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 11:26:59,883 [DEBUG][       Thread-253233][   transport.py][1871] : EOF in transport thread
2025-06-13 11:26:59,965 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 11:26:59,983 [DEBUG][       Thread-253236][   transport.py][1871] : starting thread (client mode): 0x867fe1a0
2025-06-13 11:26:59,983 [DEBUG][       Thread-253236][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 11:26:59,998 [DEBUG][       Thread-253236][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 11:26:59,998 [ INFO][       Thread-253236][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 11:27:00,006 [DEBUG][       Thread-253236][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 11:27:00,006 [DEBUG][       Thread-253236][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 11:27:00,006 [DEBUG][       Thread-253236][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 11:27:00,006 [DEBUG][       Thread-253236][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:27:00,006 [DEBUG][       Thread-253236][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:27:00,006 [DEBUG][       Thread-253236][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:27:00,006 [DEBUG][       Thread-253236][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:27:00,006 [DEBUG][       Thread-253236][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 11:27:00,007 [DEBUG][       Thread-253236][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 11:27:00,007 [DEBUG][       Thread-253236][   transport.py][1871] : client lang: <none>
2025-06-13 11:27:00,007 [DEBUG][       Thread-253236][   transport.py][1871] : server lang: <none>
2025-06-13 11:27:00,007 [DEBUG][       Thread-253236][   transport.py][1871] : kex follows: False
2025-06-13 11:27:00,007 [DEBUG][       Thread-253236][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 11:27:00,007 [DEBUG][       Thread-253236][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 11:27:00,007 [DEBUG][       Thread-253236][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 11:27:00,007 [DEBUG][       Thread-253236][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 11:27:00,007 [DEBUG][       Thread-253236][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 11:27:00,007 [DEBUG][       Thread-253236][   transport.py][1871] : Compression: none
2025-06-13 11:27:00,007 [DEBUG][       Thread-253236][   transport.py][1871] : === End of kex handshake ===
2025-06-13 11:27:00,065 [DEBUG][       Thread-253236][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 11:27:00,066 [DEBUG][       Thread-253236][   transport.py][1871] : Switch to new keys ...
2025-06-13 11:27:00,066 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 11:27:00,067 [DEBUG][       Thread-253236][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 11:27:00,067 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 11:27:00,126 [DEBUG][       Thread-253236][   transport.py][1871] : userauth is OK
2025-06-13 11:27:00,126 [DEBUG][       Thread-253236][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 11:27:00,126 [DEBUG][       Thread-253236][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 11:27:00,127 [DEBUG][       Thread-253236][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 11:27:00,127 [DEBUG][       Thread-253236][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 11:27:00,146 [ INFO][       Thread-253236][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 11:27:00,146 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 11:27:00,147 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 11:27:01,182 [DEBUG][       Thread-253236][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 11:27:01,182 [DEBUG][       Thread-253236][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 11:27:01,232 [DEBUG][       Thread-253236][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 11:27:01,233 [DEBUG][       Thread-253236][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 11:27:01,242 [DEBUG][       Thread-253236][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 11:27:01,252 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 11:27:01,252 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 11:27:01,262 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 11:27:01,279 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 11:27:01,279 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 11:27:01,279 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 11:27:01,283 [DEBUG][Thread-253238 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:27:01,287 [DEBUG][       Thread-253236][   transport.py][1871] : EOF in transport thread
2025-06-13 11:27:09,154 [DEBUG][Thread-253239 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:27:10,310 [DEBUG][Thread-253240 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:27:11,281 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 11:27:11,281 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 11:27:11,281 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 11:27:11,282 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 11:27:11,773 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 11, 26, 37), 11.1, 46.0, 0.0, 14.95, 10.37, 0, 0, 0, 2, 0, 0),)
2025-06-13 11:27:11,773 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 11:26:37
2025-06-13 11:27:11,858 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 11:27:11,874 [DEBUG][       Thread-253241][   transport.py][1871] : starting thread (client mode): 0x84207ac0
2025-06-13 11:27:11,874 [DEBUG][       Thread-253241][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 11:27:11,895 [DEBUG][       Thread-253241][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 11:27:11,896 [ INFO][       Thread-253241][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 11:27:11,899 [DEBUG][       Thread-253241][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 11:27:11,899 [DEBUG][       Thread-253241][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 11:27:11,899 [DEBUG][       Thread-253241][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 11:27:11,899 [DEBUG][       Thread-253241][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:27:11,899 [DEBUG][       Thread-253241][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:27:11,899 [DEBUG][       Thread-253241][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:27:11,899 [DEBUG][       Thread-253241][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:27:11,899 [DEBUG][       Thread-253241][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 11:27:11,899 [DEBUG][       Thread-253241][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 11:27:11,899 [DEBUG][       Thread-253241][   transport.py][1871] : client lang: <none>
2025-06-13 11:27:11,899 [DEBUG][       Thread-253241][   transport.py][1871] : server lang: <none>
2025-06-13 11:27:11,899 [DEBUG][       Thread-253241][   transport.py][1871] : kex follows: False
2025-06-13 11:27:11,899 [DEBUG][       Thread-253241][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 11:27:11,899 [DEBUG][       Thread-253241][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 11:27:11,899 [DEBUG][       Thread-253241][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 11:27:11,899 [DEBUG][       Thread-253241][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 11:27:11,899 [DEBUG][       Thread-253241][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 11:27:11,899 [DEBUG][       Thread-253241][   transport.py][1871] : Compression: none
2025-06-13 11:27:11,899 [DEBUG][       Thread-253241][   transport.py][1871] : === End of kex handshake ===
2025-06-13 11:27:11,915 [DEBUG][       Thread-253241][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 11:27:11,915 [DEBUG][       Thread-253241][   transport.py][1871] : Switch to new keys ...
2025-06-13 11:27:11,915 [DEBUG][       Thread-253241][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 11:27:11,915 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 11:27:11,915 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 11:27:11,916 [DEBUG][       Thread-253241][   transport.py][1871] : userauth is OK
2025-06-13 11:27:11,940 [ INFO][       Thread-253241][   transport.py][1871] : Authentication (password) successful!
2025-06-13 11:27:11,940 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 11:27:12,584 [DEBUG][       Thread-253241][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 11:27:12,584 [DEBUG][       Thread-253241][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 11:27:12,625 [DEBUG][       Thread-253241][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 11:27:12,625 [DEBUG][       Thread-253241][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 11:27:12,628 [DEBUG][       Thread-253241][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 11:27:12,637 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 11:27:12,637 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 11:27:12,639 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 11:27:12,641 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 11:27:12,646 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 11:27:12,647 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 11:27:12,648 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 11:27:12,648 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 11:27:12,649 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.393342 -999.00  +10.10  16.85     51   +0.60 1 1 1 1 1   888    0 11.49 66.52 ----- 21.8 16.9 37.2 24.0 14.8 -28.4 13.4 -29.5 12.7 -28.6 14.1 -26.2
2025-06-13 11:27:12,649 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 11:27:12,649 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 11:27:12,649 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.393342
2025-06-13 11:27:12,649 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 11:27:12,650 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 11:27:12,650 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 11:27:12,650 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 11:27:12,650 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 11:27:12,650 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T11:26:37', tmtdew=11.1, humidity=46.0, cloud=0.0, wind=14.95, temperature=10.37, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T09:26:24.749', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 11:27:12,651 [DEBUG][       Thread-253241][   transport.py][1871] : EOF in transport thread
2025-06-13 11:27:12,734 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 11:27:12,758 [DEBUG][       Thread-253244][   transport.py][1871] : starting thread (client mode): 0x863bea70
2025-06-13 11:27:12,758 [DEBUG][       Thread-253244][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 11:27:12,782 [DEBUG][       Thread-253244][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 11:27:12,782 [ INFO][       Thread-253244][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 11:27:12,791 [DEBUG][       Thread-253244][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 11:27:12,791 [DEBUG][       Thread-253244][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 11:27:12,791 [DEBUG][       Thread-253244][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 11:27:12,791 [DEBUG][       Thread-253244][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:27:12,791 [DEBUG][       Thread-253244][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:27:12,791 [DEBUG][       Thread-253244][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:27:12,791 [DEBUG][       Thread-253244][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:27:12,791 [DEBUG][       Thread-253244][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 11:27:12,791 [DEBUG][       Thread-253244][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 11:27:12,791 [DEBUG][       Thread-253244][   transport.py][1871] : client lang: <none>
2025-06-13 11:27:12,792 [DEBUG][       Thread-253244][   transport.py][1871] : server lang: <none>
2025-06-13 11:27:12,792 [DEBUG][       Thread-253244][   transport.py][1871] : kex follows: False
2025-06-13 11:27:12,792 [DEBUG][       Thread-253244][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 11:27:12,792 [DEBUG][       Thread-253244][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 11:27:12,792 [DEBUG][       Thread-253244][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 11:27:12,792 [DEBUG][       Thread-253244][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 11:27:12,792 [DEBUG][       Thread-253244][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 11:27:12,792 [DEBUG][       Thread-253244][   transport.py][1871] : Compression: none
2025-06-13 11:27:12,792 [DEBUG][       Thread-253244][   transport.py][1871] : === End of kex handshake ===
2025-06-13 11:27:12,849 [DEBUG][       Thread-253244][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 11:27:12,850 [DEBUG][       Thread-253244][   transport.py][1871] : Switch to new keys ...
2025-06-13 11:27:12,850 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 11:27:12,851 [DEBUG][       Thread-253244][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 11:27:12,851 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 11:27:12,908 [DEBUG][       Thread-253244][   transport.py][1871] : userauth is OK
2025-06-13 11:27:12,908 [DEBUG][       Thread-253244][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 11:27:12,908 [DEBUG][       Thread-253244][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 11:27:12,908 [DEBUG][       Thread-253244][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 11:27:12,908 [DEBUG][       Thread-253244][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 11:27:12,928 [ INFO][       Thread-253244][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 11:27:12,928 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 11:27:12,929 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 11:27:13,953 [DEBUG][       Thread-253244][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 11:27:13,953 [DEBUG][       Thread-253244][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 11:27:14,004 [DEBUG][       Thread-253244][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 11:27:14,005 [DEBUG][       Thread-253244][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 11:27:14,014 [DEBUG][       Thread-253244][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 11:27:14,024 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 11:27:14,025 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 11:27:14,035 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 11:27:14,045 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 11:27:14,046 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 11:27:14,046 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 11:27:14,057 [DEBUG][       Thread-253244][   transport.py][1871] : EOF in transport thread
2025-06-13 11:27:19,337 [DEBUG][Thread-253246 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:27:19,364 [DEBUG][Thread-253247 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:27:20,415 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:27:20,416 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:27:24,056 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 11:27:24,056 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 11:27:24,056 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 11:27:24,057 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 11:27:24,507 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 11, 27, 9), 10.96, 46.57, 0.0, 20.22, 10.23, 0, 0, 0, 2, 0, 0),)
2025-06-13 11:27:24,507 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 11:27:09
2025-06-13 11:27:24,587 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 11:27:24,602 [DEBUG][       Thread-253248][   transport.py][1871] : starting thread (client mode): 0x84206e60
2025-06-13 11:27:24,602 [DEBUG][       Thread-253248][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 11:27:24,623 [DEBUG][       Thread-253248][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 11:27:24,623 [ INFO][       Thread-253248][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 11:27:24,626 [DEBUG][       Thread-253248][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 11:27:24,626 [DEBUG][       Thread-253248][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 11:27:24,626 [DEBUG][       Thread-253248][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 11:27:24,626 [DEBUG][       Thread-253248][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:27:24,626 [DEBUG][       Thread-253248][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:27:24,627 [DEBUG][       Thread-253248][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:27:24,627 [DEBUG][       Thread-253248][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:27:24,627 [DEBUG][       Thread-253248][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 11:27:24,627 [DEBUG][       Thread-253248][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 11:27:24,627 [DEBUG][       Thread-253248][   transport.py][1871] : client lang: <none>
2025-06-13 11:27:24,627 [DEBUG][       Thread-253248][   transport.py][1871] : server lang: <none>
2025-06-13 11:27:24,627 [DEBUG][       Thread-253248][   transport.py][1871] : kex follows: False
2025-06-13 11:27:24,627 [DEBUG][       Thread-253248][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 11:27:24,627 [DEBUG][       Thread-253248][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 11:27:24,627 [DEBUG][       Thread-253248][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 11:27:24,627 [DEBUG][       Thread-253248][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 11:27:24,627 [DEBUG][       Thread-253248][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 11:27:24,627 [DEBUG][       Thread-253248][   transport.py][1871] : Compression: none
2025-06-13 11:27:24,627 [DEBUG][       Thread-253248][   transport.py][1871] : === End of kex handshake ===
2025-06-13 11:27:24,644 [DEBUG][       Thread-253248][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 11:27:24,644 [DEBUG][       Thread-253248][   transport.py][1871] : Switch to new keys ...
2025-06-13 11:27:24,645 [DEBUG][       Thread-253248][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 11:27:24,645 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 11:27:24,645 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 11:27:24,646 [DEBUG][       Thread-253248][   transport.py][1871] : userauth is OK
2025-06-13 11:27:24,660 [ INFO][       Thread-253248][   transport.py][1871] : Authentication (password) successful!
2025-06-13 11:27:24,661 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 11:27:25,306 [DEBUG][       Thread-253248][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 11:27:25,306 [DEBUG][       Thread-253248][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 11:27:25,349 [DEBUG][       Thread-253248][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 11:27:25,349 [DEBUG][       Thread-253248][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 11:27:25,352 [DEBUG][       Thread-253248][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 11:27:25,365 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 11:27:25,365 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 11:27:25,367 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 11:27:25,369 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 11:27:25,375 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 11:27:25,377 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 11:27:25,377 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 11:27:25,378 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 11:27:25,378 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.393689 -999.00  +10.00  19.50     51   +0.60 1 1 1 1 1   888    0 11.48 67.38 ----- 17.6 19.5 42.0 24.8 14.8 -28.6 13.4 -30.1 12.7 -28.2 14.1 -26.4
2025-06-13 11:27:25,378 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 11:27:25,378 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 11:27:25,378 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.393689
2025-06-13 11:27:25,379 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 11:27:25,379 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 11:27:25,380 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 11:27:25,380 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 11:27:25,380 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 11:27:25,380 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T11:27:09', tmtdew=10.96, humidity=46.57, cloud=0.0, wind=20.22, temperature=10.23, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T09:26:54.730', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 11:27:25,381 [DEBUG][       Thread-253248][   transport.py][1871] : EOF in transport thread
2025-06-13 11:27:25,463 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 11:27:25,485 [DEBUG][       Thread-253251][   transport.py][1871] : starting thread (client mode): 0x863be5f0
2025-06-13 11:27:25,486 [DEBUG][       Thread-253251][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 11:27:25,504 [DEBUG][       Thread-253251][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 11:27:25,504 [ INFO][       Thread-253251][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 11:27:25,513 [DEBUG][       Thread-253251][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 11:27:25,513 [DEBUG][       Thread-253251][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 11:27:25,513 [DEBUG][       Thread-253251][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 11:27:25,514 [DEBUG][       Thread-253251][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:27:25,514 [DEBUG][       Thread-253251][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:27:25,514 [DEBUG][       Thread-253251][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:27:25,514 [DEBUG][       Thread-253251][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:27:25,514 [DEBUG][       Thread-253251][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 11:27:25,514 [DEBUG][       Thread-253251][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 11:27:25,514 [DEBUG][       Thread-253251][   transport.py][1871] : client lang: <none>
2025-06-13 11:27:25,514 [DEBUG][       Thread-253251][   transport.py][1871] : server lang: <none>
2025-06-13 11:27:25,514 [DEBUG][       Thread-253251][   transport.py][1871] : kex follows: False
2025-06-13 11:27:25,514 [DEBUG][       Thread-253251][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 11:27:25,514 [DEBUG][       Thread-253251][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 11:27:25,514 [DEBUG][       Thread-253251][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 11:27:25,514 [DEBUG][       Thread-253251][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 11:27:25,514 [DEBUG][       Thread-253251][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 11:27:25,514 [DEBUG][       Thread-253251][   transport.py][1871] : Compression: none
2025-06-13 11:27:25,514 [DEBUG][       Thread-253251][   transport.py][1871] : === End of kex handshake ===
2025-06-13 11:27:25,574 [DEBUG][       Thread-253251][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 11:27:25,575 [DEBUG][       Thread-253251][   transport.py][1871] : Switch to new keys ...
2025-06-13 11:27:25,575 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 11:27:25,576 [DEBUG][       Thread-253251][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 11:27:25,577 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 11:27:25,645 [DEBUG][       Thread-253251][   transport.py][1871] : userauth is OK
2025-06-13 11:27:25,645 [DEBUG][       Thread-253251][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 11:27:25,645 [DEBUG][       Thread-253251][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 11:27:25,645 [DEBUG][       Thread-253251][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 11:27:25,645 [DEBUG][       Thread-253251][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 11:27:25,665 [ INFO][       Thread-253251][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 11:27:25,666 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 11:27:25,666 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 11:27:26,732 [DEBUG][       Thread-253251][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 11:27:26,732 [DEBUG][       Thread-253251][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 11:27:26,781 [DEBUG][       Thread-253251][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 11:27:26,782 [DEBUG][       Thread-253251][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 11:27:26,793 [DEBUG][       Thread-253251][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 11:27:26,803 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 11:27:26,804 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 11:27:26,814 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 11:27:26,824 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 11:27:26,824 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 11:27:26,825 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 11:27:26,833 [DEBUG][       Thread-253251][   transport.py][1871] : EOF in transport thread
2025-06-13 11:27:28,363 [DEBUG][Thread-253253 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:27:34,916 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:27:34,917 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:27:36,835 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 11:27:36,835 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 11:27:36,836 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 11:27:36,839 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 11:27:37,291 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 11, 27, 9), 10.96, 46.57, 0.0, 20.22, 10.23, 0, 0, 0, 2, 0, 0),)
2025-06-13 11:27:37,291 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 11:27:09
2025-06-13 11:27:37,372 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 11:27:37,383 [DEBUG][       Thread-253254][   transport.py][1871] : starting thread (client mode): 0x863bea70
2025-06-13 11:27:37,384 [DEBUG][       Thread-253254][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 11:27:37,404 [DEBUG][       Thread-253254][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 11:27:37,404 [ INFO][       Thread-253254][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 11:27:37,407 [DEBUG][       Thread-253254][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 11:27:37,408 [DEBUG][       Thread-253254][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 11:27:37,408 [DEBUG][       Thread-253254][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 11:27:37,408 [DEBUG][       Thread-253254][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:27:37,408 [DEBUG][       Thread-253254][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:27:37,408 [DEBUG][       Thread-253254][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:27:37,408 [DEBUG][       Thread-253254][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:27:37,408 [DEBUG][       Thread-253254][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 11:27:37,408 [DEBUG][       Thread-253254][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 11:27:37,408 [DEBUG][       Thread-253254][   transport.py][1871] : client lang: <none>
2025-06-13 11:27:37,408 [DEBUG][       Thread-253254][   transport.py][1871] : server lang: <none>
2025-06-13 11:27:37,408 [DEBUG][       Thread-253254][   transport.py][1871] : kex follows: False
2025-06-13 11:27:37,408 [DEBUG][       Thread-253254][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 11:27:37,408 [DEBUG][       Thread-253254][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 11:27:37,408 [DEBUG][       Thread-253254][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 11:27:37,408 [DEBUG][       Thread-253254][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 11:27:37,408 [DEBUG][       Thread-253254][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 11:27:37,408 [DEBUG][       Thread-253254][   transport.py][1871] : Compression: none
2025-06-13 11:27:37,408 [DEBUG][       Thread-253254][   transport.py][1871] : === End of kex handshake ===
2025-06-13 11:27:37,423 [DEBUG][Thread-253256 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:27:37,425 [DEBUG][       Thread-253254][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 11:27:37,426 [DEBUG][       Thread-253254][   transport.py][1871] : Switch to new keys ...
2025-06-13 11:27:37,426 [DEBUG][       Thread-253254][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 11:27:37,426 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 11:27:37,426 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 11:27:37,428 [DEBUG][       Thread-253254][   transport.py][1871] : userauth is OK
2025-06-13 11:27:37,441 [ INFO][       Thread-253254][   transport.py][1871] : Authentication (password) successful!
2025-06-13 11:27:37,442 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 11:27:38,078 [DEBUG][       Thread-253254][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 11:27:38,079 [DEBUG][       Thread-253254][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 11:27:38,121 [DEBUG][       Thread-253254][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 11:27:38,121 [DEBUG][       Thread-253254][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 11:27:38,125 [DEBUG][       Thread-253254][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 11:27:38,138 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 11:27:38,138 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 11:27:38,140 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 11:27:38,142 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 11:27:38,147 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 11:27:38,149 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 11:27:38,149 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 11:27:38,150 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 11:27:38,150 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.393689 -999.00  +10.00  19.50     51   +0.60 1 1 1 1 1   888    0 11.48 67.38 ----- 17.6 19.5 42.0 24.8 14.8 -28.6 13.4 -30.1 12.7 -28.2 14.1 -26.4
2025-06-13 11:27:38,150 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 11:27:38,150 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 11:27:38,150 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.393689
2025-06-13 11:27:38,151 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 11:27:38,151 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 11:27:38,151 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 11:27:38,151 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 11:27:38,151 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 11:27:38,152 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T11:27:09', tmtdew=10.96, humidity=46.57, cloud=0.0, wind=20.22, temperature=10.23, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T09:26:54.730', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 11:27:38,152 [DEBUG][       Thread-253254][   transport.py][1871] : EOF in transport thread
2025-06-13 11:27:38,235 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 11:27:38,254 [DEBUG][       Thread-253258][   transport.py][1871] : starting thread (client mode): 0x867ffe80
2025-06-13 11:27:38,254 [DEBUG][       Thread-253258][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 11:27:38,269 [DEBUG][       Thread-253258][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 11:27:38,269 [ INFO][       Thread-253258][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 11:27:38,277 [DEBUG][       Thread-253258][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 11:27:38,277 [DEBUG][       Thread-253258][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 11:27:38,277 [DEBUG][       Thread-253258][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 11:27:38,277 [DEBUG][       Thread-253258][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:27:38,277 [DEBUG][       Thread-253258][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:27:38,277 [DEBUG][       Thread-253258][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:27:38,277 [DEBUG][       Thread-253258][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:27:38,277 [DEBUG][       Thread-253258][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 11:27:38,277 [DEBUG][       Thread-253258][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 11:27:38,278 [DEBUG][       Thread-253258][   transport.py][1871] : client lang: <none>
2025-06-13 11:27:38,278 [DEBUG][       Thread-253258][   transport.py][1871] : server lang: <none>
2025-06-13 11:27:38,278 [DEBUG][       Thread-253258][   transport.py][1871] : kex follows: False
2025-06-13 11:27:38,278 [DEBUG][       Thread-253258][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 11:27:38,278 [DEBUG][       Thread-253258][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 11:27:38,278 [DEBUG][       Thread-253258][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 11:27:38,278 [DEBUG][       Thread-253258][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 11:27:38,278 [DEBUG][       Thread-253258][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 11:27:38,278 [DEBUG][       Thread-253258][   transport.py][1871] : Compression: none
2025-06-13 11:27:38,278 [DEBUG][       Thread-253258][   transport.py][1871] : === End of kex handshake ===
2025-06-13 11:27:38,337 [DEBUG][       Thread-253258][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 11:27:38,338 [DEBUG][       Thread-253258][   transport.py][1871] : Switch to new keys ...
2025-06-13 11:27:38,339 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 11:27:38,339 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 11:27:38,340 [DEBUG][       Thread-253258][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 11:27:38,396 [DEBUG][       Thread-253258][   transport.py][1871] : userauth is OK
2025-06-13 11:27:38,396 [DEBUG][       Thread-253258][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 11:27:38,396 [DEBUG][       Thread-253258][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 11:27:38,396 [DEBUG][       Thread-253258][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 11:27:38,396 [DEBUG][       Thread-253258][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 11:27:38,415 [ INFO][       Thread-253258][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 11:27:38,416 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 11:27:38,416 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 11:27:39,418 [DEBUG][       Thread-253258][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 11:27:39,418 [DEBUG][       Thread-253258][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 11:27:39,471 [DEBUG][       Thread-253258][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 11:27:39,471 [DEBUG][       Thread-253258][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 11:27:39,483 [DEBUG][       Thread-253258][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 11:27:39,495 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 11:27:39,495 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 11:27:39,506 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 11:27:39,521 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 11:27:39,521 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 11:27:39,521 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 11:27:39,532 [DEBUG][       Thread-253258][   transport.py][1871] : EOF in transport thread
2025-06-13 11:27:46,451 [DEBUG][Thread-253260 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:27:49,532 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 11:27:49,532 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 11:27:49,532 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 11:27:49,535 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 11:27:50,000 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 11, 27, 41), 11.04, 46.29, 0.0, 16.27, 10.25, 0, 0, 0, 2, 0, 0),)
2025-06-13 11:27:50,000 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 11:27:41
2025-06-13 11:27:50,082 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 11:27:50,095 [DEBUG][       Thread-253261][   transport.py][1871] : starting thread (client mode): 0x863a6bf0
2025-06-13 11:27:50,095 [DEBUG][       Thread-253261][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 11:27:50,113 [DEBUG][       Thread-253261][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 11:27:50,113 [ INFO][       Thread-253261][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 11:27:50,115 [DEBUG][       Thread-253261][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 11:27:50,115 [DEBUG][       Thread-253261][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 11:27:50,115 [DEBUG][       Thread-253261][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 11:27:50,115 [DEBUG][       Thread-253261][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:27:50,115 [DEBUG][       Thread-253261][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:27:50,116 [DEBUG][       Thread-253261][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:27:50,116 [DEBUG][       Thread-253261][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:27:50,116 [DEBUG][       Thread-253261][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 11:27:50,116 [DEBUG][       Thread-253261][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 11:27:50,116 [DEBUG][       Thread-253261][   transport.py][1871] : client lang: <none>
2025-06-13 11:27:50,116 [DEBUG][       Thread-253261][   transport.py][1871] : server lang: <none>
2025-06-13 11:27:50,116 [DEBUG][       Thread-253261][   transport.py][1871] : kex follows: False
2025-06-13 11:27:50,116 [DEBUG][       Thread-253261][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 11:27:50,116 [DEBUG][       Thread-253261][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 11:27:50,116 [DEBUG][       Thread-253261][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 11:27:50,116 [DEBUG][       Thread-253261][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 11:27:50,116 [DEBUG][       Thread-253261][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 11:27:50,116 [DEBUG][       Thread-253261][   transport.py][1871] : Compression: none
2025-06-13 11:27:50,116 [DEBUG][       Thread-253261][   transport.py][1871] : === End of kex handshake ===
2025-06-13 11:27:50,136 [DEBUG][       Thread-253261][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 11:27:50,136 [DEBUG][       Thread-253261][   transport.py][1871] : Switch to new keys ...
2025-06-13 11:27:50,137 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 11:27:50,137 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 11:27:50,138 [DEBUG][       Thread-253261][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 11:27:50,138 [DEBUG][       Thread-253261][   transport.py][1871] : userauth is OK
2025-06-13 11:27:50,162 [ INFO][       Thread-253261][   transport.py][1871] : Authentication (password) successful!
2025-06-13 11:27:50,163 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 11:27:50,842 [DEBUG][       Thread-253261][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 11:27:50,842 [DEBUG][       Thread-253261][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 11:27:50,885 [DEBUG][       Thread-253261][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 11:27:50,885 [DEBUG][       Thread-253261][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 11:27:50,888 [DEBUG][       Thread-253261][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 11:27:50,899 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 11:27:50,900 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 11:27:50,901 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 11:27:50,903 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 11:27:50,908 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 11:27:50,909 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 11:27:50,909 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 11:27:50,910 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 11:27:50,910 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.394036 -999.00  +10.20  26.21     52   +0.90 1 1 1 1 1   888    0 11.36 67.94 ----- 22.0 26.2 58.8 32.3 14.8 -28.0 13.4 -29.8 12.7 -27.7 14.1 -26.2
2025-06-13 11:27:50,910 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 11:27:50,910 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 11:27:50,910 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.394036
2025-06-13 11:27:50,911 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 11:27:50,911 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 11:27:50,911 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 11:27:50,911 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 11:27:50,911 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 11:27:50,911 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T11:27:41', tmtdew=11.04, humidity=46.29, cloud=0.0, wind=16.27, temperature=10.25, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T09:27:24.710', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 11:27:50,912 [DEBUG][       Thread-253261][   transport.py][1871] : EOF in transport thread
2025-06-13 11:27:50,995 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 11:27:51,008 [DEBUG][       Thread-253264][   transport.py][1871] : starting thread (client mode): 0x842067a0
2025-06-13 11:27:51,008 [DEBUG][       Thread-253264][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 11:27:51,023 [DEBUG][       Thread-253264][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 11:27:51,023 [ INFO][       Thread-253264][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 11:27:51,032 [DEBUG][       Thread-253264][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 11:27:51,032 [DEBUG][       Thread-253264][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 11:27:51,032 [DEBUG][       Thread-253264][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 11:27:51,032 [DEBUG][       Thread-253264][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:27:51,032 [DEBUG][       Thread-253264][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:27:51,032 [DEBUG][       Thread-253264][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:27:51,032 [DEBUG][       Thread-253264][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:27:51,032 [DEBUG][       Thread-253264][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 11:27:51,033 [DEBUG][       Thread-253264][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 11:27:51,033 [DEBUG][       Thread-253264][   transport.py][1871] : client lang: <none>
2025-06-13 11:27:51,033 [DEBUG][       Thread-253264][   transport.py][1871] : server lang: <none>
2025-06-13 11:27:51,033 [DEBUG][       Thread-253264][   transport.py][1871] : kex follows: False
2025-06-13 11:27:51,033 [DEBUG][       Thread-253264][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 11:27:51,033 [DEBUG][       Thread-253264][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 11:27:51,033 [DEBUG][       Thread-253264][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 11:27:51,033 [DEBUG][       Thread-253264][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 11:27:51,033 [DEBUG][       Thread-253264][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 11:27:51,033 [DEBUG][       Thread-253264][   transport.py][1871] : Compression: none
2025-06-13 11:27:51,033 [DEBUG][       Thread-253264][   transport.py][1871] : === End of kex handshake ===
2025-06-13 11:27:51,093 [DEBUG][       Thread-253264][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 11:27:51,094 [DEBUG][       Thread-253264][   transport.py][1871] : Switch to new keys ...
2025-06-13 11:27:51,094 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 11:27:51,095 [DEBUG][       Thread-253264][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 11:27:51,095 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 11:27:51,154 [DEBUG][       Thread-253264][   transport.py][1871] : userauth is OK
2025-06-13 11:27:51,154 [DEBUG][       Thread-253264][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 11:27:51,154 [DEBUG][       Thread-253264][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 11:27:51,154 [DEBUG][       Thread-253264][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 11:27:51,154 [DEBUG][       Thread-253264][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 11:27:51,175 [ INFO][       Thread-253264][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 11:27:51,175 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 11:27:51,175 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 11:27:52,218 [DEBUG][       Thread-253264][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 11:27:52,218 [DEBUG][       Thread-253264][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 11:27:52,267 [DEBUG][       Thread-253264][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 11:27:52,268 [DEBUG][       Thread-253264][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 11:27:52,276 [DEBUG][       Thread-253264][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 11:27:52,285 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 11:27:52,285 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 11:27:52,293 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 11:27:52,302 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 11:27:52,302 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 11:27:52,302 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 11:27:52,310 [DEBUG][       Thread-253264][   transport.py][1871] : EOF in transport thread
2025-06-13 11:27:55,469 [DEBUG][Thread-253266 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:28:02,313 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 11:28:02,313 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 11:28:02,313 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 11:28:02,316 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 11:28:02,780 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 11, 27, 41), 11.04, 46.29, 0.0, 16.27, 10.25, 0, 0, 0, 2, 0, 0),)
2025-06-13 11:28:02,780 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 11:27:41
2025-06-13 11:28:02,861 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 11:28:02,867 [DEBUG][       Thread-253267][   transport.py][1871] : starting thread (client mode): 0x84205060
2025-06-13 11:28:02,867 [DEBUG][       Thread-253267][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 11:28:02,888 [DEBUG][       Thread-253267][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 11:28:02,888 [ INFO][       Thread-253267][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 11:28:02,892 [DEBUG][       Thread-253267][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 11:28:02,892 [DEBUG][       Thread-253267][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 11:28:02,892 [DEBUG][       Thread-253267][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 11:28:02,892 [DEBUG][       Thread-253267][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:28:02,892 [DEBUG][       Thread-253267][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:28:02,892 [DEBUG][       Thread-253267][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:28:02,892 [DEBUG][       Thread-253267][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:28:02,892 [DEBUG][       Thread-253267][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 11:28:02,892 [DEBUG][       Thread-253267][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 11:28:02,892 [DEBUG][       Thread-253267][   transport.py][1871] : client lang: <none>
2025-06-13 11:28:02,892 [DEBUG][       Thread-253267][   transport.py][1871] : server lang: <none>
2025-06-13 11:28:02,892 [DEBUG][       Thread-253267][   transport.py][1871] : kex follows: False
2025-06-13 11:28:02,892 [DEBUG][       Thread-253267][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 11:28:02,892 [DEBUG][       Thread-253267][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 11:28:02,892 [DEBUG][       Thread-253267][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 11:28:02,892 [DEBUG][       Thread-253267][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 11:28:02,892 [DEBUG][       Thread-253267][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 11:28:02,892 [DEBUG][       Thread-253267][   transport.py][1871] : Compression: none
2025-06-13 11:28:02,893 [DEBUG][       Thread-253267][   transport.py][1871] : === End of kex handshake ===
2025-06-13 11:28:02,909 [DEBUG][       Thread-253267][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 11:28:02,909 [DEBUG][       Thread-253267][   transport.py][1871] : Switch to new keys ...
2025-06-13 11:28:02,910 [DEBUG][       Thread-253267][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 11:28:02,910 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 11:28:02,910 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 11:28:02,911 [DEBUG][       Thread-253267][   transport.py][1871] : userauth is OK
2025-06-13 11:28:02,924 [ INFO][       Thread-253267][   transport.py][1871] : Authentication (password) successful!
2025-06-13 11:28:02,925 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 11:28:03,585 [DEBUG][       Thread-253267][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 11:28:03,585 [DEBUG][       Thread-253267][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 11:28:03,629 [DEBUG][       Thread-253267][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 11:28:03,629 [DEBUG][       Thread-253267][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 11:28:03,632 [DEBUG][       Thread-253267][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 11:28:03,646 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 11:28:03,646 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 11:28:03,648 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 11:28:03,650 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 11:28:03,655 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 11:28:03,657 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 11:28:03,657 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 11:28:03,658 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 11:28:03,658 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.394036 -999.00  +10.20  26.21     52   +0.90 1 1 1 1 1   888    0 11.36 67.94 ----- 22.0 26.2 58.8 32.3 14.8 -28.0 13.4 -29.8 12.7 -27.7 14.1 -26.2
2025-06-13 11:28:03,658 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 11:28:03,658 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 11:28:03,658 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.394036
2025-06-13 11:28:03,659 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 11:28:03,659 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 11:28:03,659 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 11:28:03,659 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 11:28:03,660 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 11:28:03,660 [DEBUG][       Thread-253267][   transport.py][1871] : EOF in transport thread
2025-06-13 11:28:03,660 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T11:27:41', tmtdew=11.04, humidity=46.29, cloud=0.0, wind=16.27, temperature=10.25, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T09:27:24.710', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 11:28:03,736 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 11:28:03,747 [DEBUG][       Thread-253270][   transport.py][1871] : starting thread (client mode): 0x867ffac0
2025-06-13 11:28:03,747 [DEBUG][       Thread-253270][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 11:28:03,763 [DEBUG][       Thread-253270][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 11:28:03,763 [ INFO][       Thread-253270][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 11:28:03,770 [DEBUG][       Thread-253270][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 11:28:03,771 [DEBUG][       Thread-253270][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 11:28:03,771 [DEBUG][       Thread-253270][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 11:28:03,771 [DEBUG][       Thread-253270][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:28:03,771 [DEBUG][       Thread-253270][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:28:03,771 [DEBUG][       Thread-253270][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:28:03,771 [DEBUG][       Thread-253270][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:28:03,771 [DEBUG][       Thread-253270][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 11:28:03,771 [DEBUG][       Thread-253270][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 11:28:03,771 [DEBUG][       Thread-253270][   transport.py][1871] : client lang: <none>
2025-06-13 11:28:03,771 [DEBUG][       Thread-253270][   transport.py][1871] : server lang: <none>
2025-06-13 11:28:03,771 [DEBUG][       Thread-253270][   transport.py][1871] : kex follows: False
2025-06-13 11:28:03,771 [DEBUG][       Thread-253270][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 11:28:03,771 [DEBUG][       Thread-253270][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 11:28:03,771 [DEBUG][       Thread-253270][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 11:28:03,771 [DEBUG][       Thread-253270][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 11:28:03,771 [DEBUG][       Thread-253270][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 11:28:03,771 [DEBUG][       Thread-253270][   transport.py][1871] : Compression: none
2025-06-13 11:28:03,771 [DEBUG][       Thread-253270][   transport.py][1871] : === End of kex handshake ===
2025-06-13 11:28:03,832 [DEBUG][       Thread-253270][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 11:28:03,833 [DEBUG][       Thread-253270][   transport.py][1871] : Switch to new keys ...
2025-06-13 11:28:03,833 [DEBUG][       Thread-253270][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 11:28:03,834 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 11:28:03,834 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 11:28:03,896 [DEBUG][       Thread-253270][   transport.py][1871] : userauth is OK
2025-06-13 11:28:03,896 [DEBUG][       Thread-253270][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 11:28:03,896 [DEBUG][       Thread-253270][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 11:28:03,896 [DEBUG][       Thread-253270][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 11:28:03,897 [DEBUG][       Thread-253270][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 11:28:03,922 [ INFO][       Thread-253270][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 11:28:03,923 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 11:28:03,923 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 11:28:04,495 [DEBUG][Thread-253272 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:28:04,978 [DEBUG][       Thread-253270][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 11:28:04,978 [DEBUG][       Thread-253270][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 11:28:05,030 [DEBUG][       Thread-253270][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 11:28:05,030 [DEBUG][       Thread-253270][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 11:28:05,041 [DEBUG][       Thread-253270][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 11:28:05,052 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 11:28:05,052 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 11:28:05,062 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 11:28:05,071 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 11:28:05,071 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 11:28:05,072 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 11:28:05,080 [DEBUG][       Thread-253270][   transport.py][1871] : EOF in transport thread
2025-06-13 11:28:09,203 [DEBUG][Thread-253273 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:28:13,517 [DEBUG][Thread-253274 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:28:15,082 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 11:28:15,082 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 11:28:15,082 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 11:28:15,083 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 11:28:15,565 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 11, 27, 41), 11.04, 46.29, 0.0, 16.27, 10.25, 0, 0, 0, 2, 0, 0),)
2025-06-13 11:28:15,565 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 11:27:41
2025-06-13 11:28:15,646 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 11:28:15,652 [DEBUG][       Thread-253275][   transport.py][1871] : starting thread (client mode): 0x842065c0
2025-06-13 11:28:15,652 [DEBUG][       Thread-253275][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 11:28:15,673 [DEBUG][       Thread-253275][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 11:28:15,673 [ INFO][       Thread-253275][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 11:28:15,676 [DEBUG][       Thread-253275][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 11:28:15,677 [DEBUG][       Thread-253275][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 11:28:15,677 [DEBUG][       Thread-253275][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 11:28:15,677 [DEBUG][       Thread-253275][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:28:15,677 [DEBUG][       Thread-253275][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:28:15,677 [DEBUG][       Thread-253275][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:28:15,677 [DEBUG][       Thread-253275][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:28:15,677 [DEBUG][       Thread-253275][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 11:28:15,677 [DEBUG][       Thread-253275][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 11:28:15,677 [DEBUG][       Thread-253275][   transport.py][1871] : client lang: <none>
2025-06-13 11:28:15,677 [DEBUG][       Thread-253275][   transport.py][1871] : server lang: <none>
2025-06-13 11:28:15,677 [DEBUG][       Thread-253275][   transport.py][1871] : kex follows: False
2025-06-13 11:28:15,677 [DEBUG][       Thread-253275][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 11:28:15,677 [DEBUG][       Thread-253275][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 11:28:15,677 [DEBUG][       Thread-253275][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 11:28:15,677 [DEBUG][       Thread-253275][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 11:28:15,677 [DEBUG][       Thread-253275][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 11:28:15,677 [DEBUG][       Thread-253275][   transport.py][1871] : Compression: none
2025-06-13 11:28:15,678 [DEBUG][       Thread-253275][   transport.py][1871] : === End of kex handshake ===
2025-06-13 11:28:15,695 [DEBUG][       Thread-253275][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 11:28:15,695 [DEBUG][       Thread-253275][   transport.py][1871] : Switch to new keys ...
2025-06-13 11:28:15,695 [DEBUG][       Thread-253275][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 11:28:15,696 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 11:28:15,696 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 11:28:15,697 [DEBUG][       Thread-253275][   transport.py][1871] : userauth is OK
2025-06-13 11:28:15,710 [ INFO][       Thread-253275][   transport.py][1871] : Authentication (password) successful!
2025-06-13 11:28:15,711 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 11:28:16,376 [DEBUG][       Thread-253275][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 11:28:16,376 [DEBUG][       Thread-253275][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 11:28:16,417 [DEBUG][       Thread-253275][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 11:28:16,417 [DEBUG][       Thread-253275][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 11:28:16,420 [DEBUG][       Thread-253275][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 11:28:16,432 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 11:28:16,432 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 11:28:16,434 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 11:28:16,435 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 11:28:16,441 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 11:28:16,443 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 11:28:16,443 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 11:28:16,444 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 11:28:16,444 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.394036 -999.00  +10.20  26.21     52   +0.90 1 1 1 1 1   888    0 11.36 67.94 ----- 22.0 26.2 58.8 32.3 14.8 -28.0 13.4 -29.8 12.7 -27.7 14.1 -26.2
2025-06-13 11:28:16,444 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 11:28:16,444 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 11:28:16,444 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.394036
2025-06-13 11:28:16,445 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 11:28:16,445 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 11:28:16,445 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 11:28:16,446 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 11:28:16,446 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 11:28:16,446 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T11:27:41', tmtdew=11.04, humidity=46.29, cloud=0.0, wind=16.27, temperature=10.25, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T09:27:24.710', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 11:28:16,446 [DEBUG][       Thread-253275][   transport.py][1871] : EOF in transport thread
2025-06-13 11:28:16,529 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 11:28:20,482 [DEBUG][Thread-253278 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:28:21,545 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:28:21,546 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:28:22,538 [DEBUG][Thread-253279 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:28:31,561 [DEBUG][Thread-253280 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:28:35,062 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:28:35,063 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:28:40,582 [DEBUG][Thread-253281 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:28:49,603 [DEBUG][Thread-253282 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:28:58,625 [DEBUG][Thread-253283 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:29:07,646 [DEBUG][Thread-253284 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:29:09,250 [DEBUG][Thread-253285 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:29:16,666 [DEBUG][Thread-253286 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:29:21,618 [DEBUG][Thread-253287 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:29:22,701 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:29:22,702 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:29:25,687 [DEBUG][Thread-253288 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:29:34,709 [DEBUG][Thread-253289 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:29:35,200 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:29:35,201 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:29:43,730 [DEBUG][Thread-253290 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:29:52,748 [DEBUG][Thread-253291 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:30:01,765 [DEBUG][Thread-253292 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:30:09,299 [DEBUG][Thread-253293 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:30:10,789 [DEBUG][Thread-253294 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:30:19,810 [DEBUG][Thread-253295 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:30:22,784 [DEBUG][Thread-253296 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:30:23,865 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:30:23,867 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:30:26,452 [WARNING][ poll_weather_worker][      driver.py][ 286] : Unable to open ssh connection for writing weather state to io.saao.ac.za: [Errno 110] Connection timed out
2025-06-13 11:30:28,829 [DEBUG][Thread-253297 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:30:35,340 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:30:35,341 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:30:36,463 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 11:30:36,463 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 11:30:36,463 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 11:30:36,466 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 11:30:36,969 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 11, 30, 20), 11.06, 46.27, 0.0, 16.9, 10.43, 0, 0, 0, 2, 0, 0),)
2025-06-13 11:30:36,969 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 11:30:20
2025-06-13 11:30:37,052 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 11:30:37,058 [DEBUG][       Thread-253298][   transport.py][1871] : starting thread (client mode): 0x84204730
2025-06-13 11:30:37,058 [DEBUG][       Thread-253298][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 11:30:37,078 [DEBUG][       Thread-253298][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 11:30:37,078 [ INFO][       Thread-253298][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 11:30:37,082 [DEBUG][       Thread-253298][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 11:30:37,082 [DEBUG][       Thread-253298][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 11:30:37,082 [DEBUG][       Thread-253298][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 11:30:37,082 [DEBUG][       Thread-253298][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:30:37,082 [DEBUG][       Thread-253298][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:30:37,082 [DEBUG][       Thread-253298][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:30:37,082 [DEBUG][       Thread-253298][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:30:37,082 [DEBUG][       Thread-253298][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 11:30:37,082 [DEBUG][       Thread-253298][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 11:30:37,082 [DEBUG][       Thread-253298][   transport.py][1871] : client lang: <none>
2025-06-13 11:30:37,082 [DEBUG][       Thread-253298][   transport.py][1871] : server lang: <none>
2025-06-13 11:30:37,082 [DEBUG][       Thread-253298][   transport.py][1871] : kex follows: False
2025-06-13 11:30:37,082 [DEBUG][       Thread-253298][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 11:30:37,082 [DEBUG][       Thread-253298][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 11:30:37,082 [DEBUG][       Thread-253298][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 11:30:37,082 [DEBUG][       Thread-253298][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 11:30:37,082 [DEBUG][       Thread-253298][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 11:30:37,082 [DEBUG][       Thread-253298][   transport.py][1871] : Compression: none
2025-06-13 11:30:37,082 [DEBUG][       Thread-253298][   transport.py][1871] : === End of kex handshake ===
2025-06-13 11:30:37,100 [DEBUG][       Thread-253298][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 11:30:37,101 [DEBUG][       Thread-253298][   transport.py][1871] : Switch to new keys ...
2025-06-13 11:30:37,101 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 11:30:37,101 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 11:30:37,102 [DEBUG][       Thread-253298][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 11:30:37,103 [DEBUG][       Thread-253298][   transport.py][1871] : userauth is OK
2025-06-13 11:30:37,128 [ INFO][       Thread-253298][   transport.py][1871] : Authentication (password) successful!
2025-06-13 11:30:37,129 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 11:30:37,848 [DEBUG][Thread-253300 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:30:38,633 [DEBUG][       Thread-253298][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 11:30:38,634 [DEBUG][       Thread-253298][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 11:30:38,677 [DEBUG][       Thread-253298][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 11:30:38,677 [DEBUG][       Thread-253298][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 11:30:38,680 [DEBUG][       Thread-253298][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 11:30:38,692 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 11:30:38,692 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 11:30:38,694 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 11:30:38,696 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 11:30:38,702 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 11:30:38,704 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 11:30:38,704 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 11:30:38,704 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 11:30:38,705 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.395772 -999.00  +10.20  20.36     52   +0.90 1 1 1 1 1   888    0 10.98 48.32 ----- 19.1 20.4 56.8 23.1 14.8 -28.0 13.5 -29.8 12.8 -27.9 14.1 -26.5
2025-06-13 11:30:38,705 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 11:30:38,705 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 11:30:38,705 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.395772
2025-06-13 11:30:38,705 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 11:30:38,706 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 11:30:38,706 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 11:30:38,706 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 11:30:38,706 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 11:30:38,706 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T11:30:20', tmtdew=11.06, humidity=46.27, cloud=0.0, wind=16.9, temperature=10.43, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T09:29:54.701', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 11:30:38,707 [DEBUG][       Thread-253298][   transport.py][1871] : EOF in transport thread
2025-06-13 11:30:38,790 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 11:30:38,802 [DEBUG][       Thread-253302][   transport.py][1871] : starting thread (client mode): 0x86369030
2025-06-13 11:30:38,802 [DEBUG][       Thread-253302][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 11:30:38,817 [DEBUG][       Thread-253302][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 11:30:38,818 [ INFO][       Thread-253302][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 11:30:38,825 [DEBUG][       Thread-253302][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 11:30:38,825 [DEBUG][       Thread-253302][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 11:30:38,825 [DEBUG][       Thread-253302][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 11:30:38,825 [DEBUG][       Thread-253302][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:30:38,825 [DEBUG][       Thread-253302][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:30:38,826 [DEBUG][       Thread-253302][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:30:38,826 [DEBUG][       Thread-253302][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:30:38,826 [DEBUG][       Thread-253302][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 11:30:38,826 [DEBUG][       Thread-253302][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 11:30:38,826 [DEBUG][       Thread-253302][   transport.py][1871] : client lang: <none>
2025-06-13 11:30:38,826 [DEBUG][       Thread-253302][   transport.py][1871] : server lang: <none>
2025-06-13 11:30:38,826 [DEBUG][       Thread-253302][   transport.py][1871] : kex follows: False
2025-06-13 11:30:38,826 [DEBUG][       Thread-253302][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 11:30:38,826 [DEBUG][       Thread-253302][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 11:30:38,826 [DEBUG][       Thread-253302][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 11:30:38,826 [DEBUG][       Thread-253302][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 11:30:38,826 [DEBUG][       Thread-253302][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 11:30:38,826 [DEBUG][       Thread-253302][   transport.py][1871] : Compression: none
2025-06-13 11:30:38,826 [DEBUG][       Thread-253302][   transport.py][1871] : === End of kex handshake ===
2025-06-13 11:30:38,888 [DEBUG][       Thread-253302][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 11:30:38,889 [DEBUG][       Thread-253302][   transport.py][1871] : Switch to new keys ...
2025-06-13 11:30:38,889 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 11:30:38,890 [DEBUG][       Thread-253302][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 11:30:38,891 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 11:30:38,944 [DEBUG][       Thread-253302][   transport.py][1871] : userauth is OK
2025-06-13 11:30:38,944 [DEBUG][       Thread-253302][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 11:30:38,945 [DEBUG][       Thread-253302][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 11:30:38,945 [DEBUG][       Thread-253302][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 11:30:38,945 [DEBUG][       Thread-253302][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 11:30:38,963 [ INFO][       Thread-253302][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 11:30:38,964 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 11:30:38,964 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 11:30:39,989 [DEBUG][       Thread-253302][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 11:30:39,989 [DEBUG][       Thread-253302][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 11:30:40,042 [DEBUG][       Thread-253302][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 11:30:40,042 [DEBUG][       Thread-253302][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 11:30:40,053 [DEBUG][       Thread-253302][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 11:30:40,062 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 11:30:40,063 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 11:30:40,073 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 11:30:40,086 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 11:30:40,086 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 11:30:40,086 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 11:30:40,096 [DEBUG][       Thread-253302][   transport.py][1871] : EOF in transport thread
2025-06-13 11:30:46,868 [DEBUG][Thread-253304 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:30:50,096 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 11:30:50,096 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 11:30:50,096 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 11:30:50,099 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 11:30:50,580 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 11, 30, 20), 11.06, 46.27, 0.0, 16.9, 10.43, 0, 0, 0, 2, 0, 0),)
2025-06-13 11:30:50,580 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 11:30:20
2025-06-13 11:30:50,662 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 11:30:50,666 [DEBUG][       Thread-253305][   transport.py][1871] : starting thread (client mode): 0x863be590
2025-06-13 11:30:50,666 [DEBUG][       Thread-253305][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 11:30:50,687 [DEBUG][       Thread-253305][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 11:30:50,687 [ INFO][       Thread-253305][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 11:30:50,690 [DEBUG][       Thread-253305][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 11:30:50,691 [DEBUG][       Thread-253305][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 11:30:50,691 [DEBUG][       Thread-253305][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 11:30:50,691 [DEBUG][       Thread-253305][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:30:50,691 [DEBUG][       Thread-253305][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:30:50,691 [DEBUG][       Thread-253305][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:30:50,691 [DEBUG][       Thread-253305][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:30:50,691 [DEBUG][       Thread-253305][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 11:30:50,691 [DEBUG][       Thread-253305][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 11:30:50,691 [DEBUG][       Thread-253305][   transport.py][1871] : client lang: <none>
2025-06-13 11:30:50,691 [DEBUG][       Thread-253305][   transport.py][1871] : server lang: <none>
2025-06-13 11:30:50,691 [DEBUG][       Thread-253305][   transport.py][1871] : kex follows: False
2025-06-13 11:30:50,691 [DEBUG][       Thread-253305][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 11:30:50,691 [DEBUG][       Thread-253305][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 11:30:50,691 [DEBUG][       Thread-253305][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 11:30:50,691 [DEBUG][       Thread-253305][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 11:30:50,691 [DEBUG][       Thread-253305][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 11:30:50,691 [DEBUG][       Thread-253305][   transport.py][1871] : Compression: none
2025-06-13 11:30:50,691 [DEBUG][       Thread-253305][   transport.py][1871] : === End of kex handshake ===
2025-06-13 11:30:50,709 [DEBUG][       Thread-253305][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 11:30:50,709 [DEBUG][       Thread-253305][   transport.py][1871] : Switch to new keys ...
2025-06-13 11:30:50,710 [DEBUG][       Thread-253305][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 11:30:50,710 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 11:30:50,710 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 11:30:50,711 [DEBUG][       Thread-253305][   transport.py][1871] : userauth is OK
2025-06-13 11:30:50,736 [ INFO][       Thread-253305][   transport.py][1871] : Authentication (password) successful!
2025-06-13 11:30:50,736 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 11:30:51,378 [DEBUG][       Thread-253305][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 11:30:51,378 [DEBUG][       Thread-253305][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 11:30:51,421 [DEBUG][       Thread-253305][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 11:30:51,421 [DEBUG][       Thread-253305][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 11:30:51,424 [DEBUG][       Thread-253305][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 11:30:51,437 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 11:30:51,437 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 11:30:51,439 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 11:30:51,441 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 11:30:51,447 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 11:30:51,450 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 11:30:51,450 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 11:30:51,451 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 11:30:51,451 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.396119 -999.00  +10.20  21.42     51   +0.70 1 1 1 1 1   888    0 10.68 46.24 ----- 21.2 21.4 56.6 27.0 14.8 -27.3 13.5 -29.5 12.8 -28.1 14.1 -26.4
2025-06-13 11:30:51,451 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 11:30:51,451 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 11:30:51,451 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.396119
2025-06-13 11:30:51,451 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 11:30:51,452 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 11:30:51,452 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 11:30:51,452 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 11:30:51,452 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 11:30:51,452 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T11:30:20', tmtdew=11.06, humidity=46.27, cloud=0.0, wind=16.9, temperature=10.43, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T09:30:24.682', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 11:30:51,454 [DEBUG][       Thread-253305][   transport.py][1871] : EOF in transport thread
2025-06-13 11:30:51,537 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 11:30:51,547 [DEBUG][       Thread-253308][   transport.py][1871] : starting thread (client mode): 0x867b6a40
2025-06-13 11:30:51,547 [DEBUG][       Thread-253308][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 11:30:51,562 [DEBUG][       Thread-253308][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 11:30:51,562 [ INFO][       Thread-253308][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 11:30:51,571 [DEBUG][       Thread-253308][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 11:30:51,571 [DEBUG][       Thread-253308][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 11:30:51,571 [DEBUG][       Thread-253308][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 11:30:51,571 [DEBUG][       Thread-253308][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:30:51,571 [DEBUG][       Thread-253308][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:30:51,571 [DEBUG][       Thread-253308][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:30:51,571 [DEBUG][       Thread-253308][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:30:51,571 [DEBUG][       Thread-253308][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 11:30:51,572 [DEBUG][       Thread-253308][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 11:30:51,572 [DEBUG][       Thread-253308][   transport.py][1871] : client lang: <none>
2025-06-13 11:30:51,572 [DEBUG][       Thread-253308][   transport.py][1871] : server lang: <none>
2025-06-13 11:30:51,572 [DEBUG][       Thread-253308][   transport.py][1871] : kex follows: False
2025-06-13 11:30:51,572 [DEBUG][       Thread-253308][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 11:30:51,572 [DEBUG][       Thread-253308][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 11:30:51,572 [DEBUG][       Thread-253308][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 11:30:51,572 [DEBUG][       Thread-253308][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 11:30:51,572 [DEBUG][       Thread-253308][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 11:30:51,572 [DEBUG][       Thread-253308][   transport.py][1871] : Compression: none
2025-06-13 11:30:51,572 [DEBUG][       Thread-253308][   transport.py][1871] : === End of kex handshake ===
2025-06-13 11:30:51,629 [DEBUG][       Thread-253308][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 11:30:51,629 [DEBUG][       Thread-253308][   transport.py][1871] : Switch to new keys ...
2025-06-13 11:30:51,630 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 11:30:51,630 [DEBUG][       Thread-253308][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 11:30:51,631 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 11:30:51,688 [DEBUG][       Thread-253308][   transport.py][1871] : userauth is OK
2025-06-13 11:30:51,688 [DEBUG][       Thread-253308][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 11:30:51,689 [DEBUG][       Thread-253308][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 11:30:51,689 [DEBUG][       Thread-253308][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 11:30:51,689 [DEBUG][       Thread-253308][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 11:30:51,708 [ INFO][       Thread-253308][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 11:30:51,708 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 11:30:51,709 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 11:30:52,734 [DEBUG][       Thread-253308][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 11:30:52,734 [DEBUG][       Thread-253308][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 11:30:52,784 [DEBUG][       Thread-253308][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 11:30:52,784 [DEBUG][       Thread-253308][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 11:30:52,793 [DEBUG][       Thread-253308][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 11:30:52,801 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 11:30:52,802 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 11:30:52,810 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 11:30:52,818 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 11:30:52,818 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 11:30:52,818 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 11:30:52,828 [DEBUG][       Thread-253308][   transport.py][1871] : EOF in transport thread
2025-06-13 11:30:55,894 [DEBUG][Thread-253310 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:31:02,829 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 11:31:02,829 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 11:31:02,829 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 11:31:02,832 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 11:31:03,314 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 11, 30, 51), 11.1, 46.11, 0.0, 20.08, 10.4, 0, 0, 0, 2, 0, 0),)
2025-06-13 11:31:03,314 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 11:30:51
2025-06-13 11:31:03,396 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 11:31:03,402 [DEBUG][       Thread-253311][   transport.py][1871] : starting thread (client mode): 0x84205300
2025-06-13 11:31:03,402 [DEBUG][       Thread-253311][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 11:31:03,423 [DEBUG][       Thread-253311][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 11:31:03,423 [ INFO][       Thread-253311][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 11:31:03,426 [DEBUG][       Thread-253311][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 11:31:03,426 [DEBUG][       Thread-253311][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 11:31:03,426 [DEBUG][       Thread-253311][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 11:31:03,426 [DEBUG][       Thread-253311][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:31:03,427 [DEBUG][       Thread-253311][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:31:03,427 [DEBUG][       Thread-253311][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:31:03,427 [DEBUG][       Thread-253311][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:31:03,427 [DEBUG][       Thread-253311][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 11:31:03,427 [DEBUG][       Thread-253311][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 11:31:03,427 [DEBUG][       Thread-253311][   transport.py][1871] : client lang: <none>
2025-06-13 11:31:03,427 [DEBUG][       Thread-253311][   transport.py][1871] : server lang: <none>
2025-06-13 11:31:03,427 [DEBUG][       Thread-253311][   transport.py][1871] : kex follows: False
2025-06-13 11:31:03,427 [DEBUG][       Thread-253311][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 11:31:03,427 [DEBUG][       Thread-253311][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 11:31:03,427 [DEBUG][       Thread-253311][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 11:31:03,427 [DEBUG][       Thread-253311][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 11:31:03,427 [DEBUG][       Thread-253311][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 11:31:03,427 [DEBUG][       Thread-253311][   transport.py][1871] : Compression: none
2025-06-13 11:31:03,427 [DEBUG][       Thread-253311][   transport.py][1871] : === End of kex handshake ===
2025-06-13 11:31:03,445 [DEBUG][       Thread-253311][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 11:31:03,446 [DEBUG][       Thread-253311][   transport.py][1871] : Switch to new keys ...
2025-06-13 11:31:03,446 [DEBUG][       Thread-253311][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 11:31:03,446 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 11:31:03,446 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 11:31:03,447 [DEBUG][       Thread-253311][   transport.py][1871] : userauth is OK
2025-06-13 11:31:03,460 [ INFO][       Thread-253311][   transport.py][1871] : Authentication (password) successful!
2025-06-13 11:31:03,460 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 11:31:04,043 [DEBUG][       Thread-253311][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 11:31:04,043 [DEBUG][       Thread-253311][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 11:31:04,085 [DEBUG][       Thread-253311][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 11:31:04,085 [DEBUG][       Thread-253311][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 11:31:04,089 [DEBUG][       Thread-253311][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 11:31:04,103 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 11:31:04,103 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 11:31:04,105 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 11:31:04,107 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 11:31:04,113 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 11:31:04,116 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 11:31:04,116 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 11:31:04,117 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 11:31:04,117 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.396119 -999.00  +10.20  21.42     51   +0.70 1 1 1 1 1   888    0 10.68 46.24 ----- 21.2 21.4 56.6 27.0 14.8 -27.3 13.5 -29.5 12.8 -28.1 14.1 -26.4
2025-06-13 11:31:04,117 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 11:31:04,117 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 11:31:04,117 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.396119
2025-06-13 11:31:04,117 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 11:31:04,118 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 11:31:04,118 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 11:31:04,118 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 11:31:04,118 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 11:31:04,118 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T11:30:51', tmtdew=11.1, humidity=46.11, cloud=0.0, wind=20.08, temperature=10.4, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T09:30:24.682', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 11:31:04,119 [DEBUG][       Thread-253311][   transport.py][1871] : EOF in transport thread
2025-06-13 11:31:04,204 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 11:31:04,238 [DEBUG][       Thread-253314][   transport.py][1871] : starting thread (client mode): 0x863bff40
2025-06-13 11:31:04,238 [DEBUG][       Thread-253314][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 11:31:04,259 [DEBUG][       Thread-253314][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 11:31:04,259 [ INFO][       Thread-253314][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 11:31:04,271 [DEBUG][       Thread-253314][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 11:31:04,271 [DEBUG][       Thread-253314][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 11:31:04,271 [DEBUG][       Thread-253314][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 11:31:04,271 [DEBUG][       Thread-253314][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:31:04,271 [DEBUG][       Thread-253314][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:31:04,271 [DEBUG][       Thread-253314][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:31:04,271 [DEBUG][       Thread-253314][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:31:04,271 [DEBUG][       Thread-253314][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 11:31:04,271 [DEBUG][       Thread-253314][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 11:31:04,271 [DEBUG][       Thread-253314][   transport.py][1871] : client lang: <none>
2025-06-13 11:31:04,271 [DEBUG][       Thread-253314][   transport.py][1871] : server lang: <none>
2025-06-13 11:31:04,272 [DEBUG][       Thread-253314][   transport.py][1871] : kex follows: False
2025-06-13 11:31:04,272 [DEBUG][       Thread-253314][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 11:31:04,272 [DEBUG][       Thread-253314][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 11:31:04,272 [DEBUG][       Thread-253314][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 11:31:04,272 [DEBUG][       Thread-253314][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 11:31:04,272 [DEBUG][       Thread-253314][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 11:31:04,272 [DEBUG][       Thread-253314][   transport.py][1871] : Compression: none
2025-06-13 11:31:04,272 [DEBUG][       Thread-253314][   transport.py][1871] : === End of kex handshake ===
2025-06-13 11:31:04,334 [DEBUG][       Thread-253314][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 11:31:04,335 [DEBUG][       Thread-253314][   transport.py][1871] : Switch to new keys ...
2025-06-13 11:31:04,335 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 11:31:04,336 [DEBUG][       Thread-253314][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 11:31:04,337 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 11:31:04,392 [DEBUG][       Thread-253314][   transport.py][1871] : userauth is OK
2025-06-13 11:31:04,393 [DEBUG][       Thread-253314][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 11:31:04,393 [DEBUG][       Thread-253314][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 11:31:04,393 [DEBUG][       Thread-253314][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 11:31:04,393 [DEBUG][       Thread-253314][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 11:31:04,411 [ INFO][       Thread-253314][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 11:31:04,412 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 11:31:04,412 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 11:31:04,914 [DEBUG][Thread-253316 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:31:05,451 [DEBUG][       Thread-253314][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 11:31:05,451 [DEBUG][       Thread-253314][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 11:31:05,506 [DEBUG][       Thread-253314][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 11:31:05,506 [DEBUG][       Thread-253314][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 11:31:05,518 [DEBUG][       Thread-253314][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 11:31:05,527 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 11:31:05,528 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 11:31:05,537 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 11:31:05,546 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 11:31:05,547 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 11:31:05,547 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 11:31:05,555 [DEBUG][       Thread-253314][   transport.py][1871] : EOF in transport thread
2025-06-13 11:31:09,344 [DEBUG][Thread-253317 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:31:13,938 [DEBUG][Thread-253318 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:31:15,555 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 11:31:15,555 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 11:31:15,555 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 11:31:15,558 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 11:31:16,045 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 11, 30, 51), 11.1, 46.11, 0.0, 20.08, 10.4, 0, 0, 0, 2, 0, 0),)
2025-06-13 11:31:16,046 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 11:30:51
2025-06-13 11:31:16,127 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 11:31:16,134 [DEBUG][       Thread-253319][   transport.py][1871] : starting thread (client mode): 0x863be5f0
2025-06-13 11:31:16,134 [DEBUG][       Thread-253319][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 11:31:16,156 [DEBUG][       Thread-253319][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 11:31:16,156 [ INFO][       Thread-253319][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 11:31:16,159 [DEBUG][       Thread-253319][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 11:31:16,160 [DEBUG][       Thread-253319][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 11:31:16,160 [DEBUG][       Thread-253319][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 11:31:16,160 [DEBUG][       Thread-253319][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:31:16,160 [DEBUG][       Thread-253319][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:31:16,160 [DEBUG][       Thread-253319][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:31:16,160 [DEBUG][       Thread-253319][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:31:16,160 [DEBUG][       Thread-253319][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 11:31:16,160 [DEBUG][       Thread-253319][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 11:31:16,160 [DEBUG][       Thread-253319][   transport.py][1871] : client lang: <none>
2025-06-13 11:31:16,160 [DEBUG][       Thread-253319][   transport.py][1871] : server lang: <none>
2025-06-13 11:31:16,160 [DEBUG][       Thread-253319][   transport.py][1871] : kex follows: False
2025-06-13 11:31:16,160 [DEBUG][       Thread-253319][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 11:31:16,160 [DEBUG][       Thread-253319][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 11:31:16,160 [DEBUG][       Thread-253319][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 11:31:16,160 [DEBUG][       Thread-253319][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 11:31:16,160 [DEBUG][       Thread-253319][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 11:31:16,160 [DEBUG][       Thread-253319][   transport.py][1871] : Compression: none
2025-06-13 11:31:16,160 [DEBUG][       Thread-253319][   transport.py][1871] : === End of kex handshake ===
2025-06-13 11:31:16,178 [DEBUG][       Thread-253319][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 11:31:16,178 [DEBUG][       Thread-253319][   transport.py][1871] : Switch to new keys ...
2025-06-13 11:31:16,179 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 11:31:16,179 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 11:31:16,179 [DEBUG][       Thread-253319][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 11:31:16,180 [DEBUG][       Thread-253319][   transport.py][1871] : userauth is OK
2025-06-13 11:31:16,193 [ INFO][       Thread-253319][   transport.py][1871] : Authentication (password) successful!
2025-06-13 11:31:16,194 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 11:31:16,855 [DEBUG][       Thread-253319][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 11:31:16,856 [DEBUG][       Thread-253319][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 11:31:16,897 [DEBUG][       Thread-253319][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 11:31:16,897 [DEBUG][       Thread-253319][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 11:31:16,901 [DEBUG][       Thread-253319][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 11:31:16,914 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 11:31:16,915 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 11:31:16,917 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 11:31:16,919 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 11:31:16,925 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 11:31:16,927 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 11:31:16,927 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 11:31:16,928 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 11:31:16,928 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.396119 -999.00  +10.20  21.42     51   +0.70 1 1 1 1 1   888    0 10.68 46.24 ----- 21.2 21.4 56.6 27.0 14.8 -27.3 13.5 -29.5 12.8 -28.1 14.1 -26.4
2025-06-13 11:31:16,928 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 11:31:16,928 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 11:31:16,928 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.396119
2025-06-13 11:31:16,929 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 11:31:16,929 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 11:31:16,929 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 11:31:16,930 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 11:31:16,930 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 11:31:16,930 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T11:30:51', tmtdew=11.1, humidity=46.11, cloud=0.0, wind=20.08, temperature=10.4, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T09:30:24.682', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 11:31:16,931 [DEBUG][       Thread-253319][   transport.py][1871] : EOF in transport thread
2025-06-13 11:31:17,013 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 11:31:17,028 [DEBUG][       Thread-253322][   transport.py][1871] : starting thread (client mode): 0x86368850
2025-06-13 11:31:17,028 [DEBUG][       Thread-253322][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 11:31:17,043 [DEBUG][       Thread-253322][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 11:31:17,044 [ INFO][       Thread-253322][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 11:31:17,052 [DEBUG][       Thread-253322][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 11:31:17,052 [DEBUG][       Thread-253322][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 11:31:17,052 [DEBUG][       Thread-253322][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 11:31:17,052 [DEBUG][       Thread-253322][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:31:17,052 [DEBUG][       Thread-253322][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:31:17,052 [DEBUG][       Thread-253322][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:31:17,052 [DEBUG][       Thread-253322][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:31:17,052 [DEBUG][       Thread-253322][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 11:31:17,052 [DEBUG][       Thread-253322][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 11:31:17,052 [DEBUG][       Thread-253322][   transport.py][1871] : client lang: <none>
2025-06-13 11:31:17,052 [DEBUG][       Thread-253322][   transport.py][1871] : server lang: <none>
2025-06-13 11:31:17,052 [DEBUG][       Thread-253322][   transport.py][1871] : kex follows: False
2025-06-13 11:31:17,052 [DEBUG][       Thread-253322][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 11:31:17,053 [DEBUG][       Thread-253322][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 11:31:17,053 [DEBUG][       Thread-253322][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 11:31:17,053 [DEBUG][       Thread-253322][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 11:31:17,053 [DEBUG][       Thread-253322][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 11:31:17,053 [DEBUG][       Thread-253322][   transport.py][1871] : Compression: none
2025-06-13 11:31:17,053 [DEBUG][       Thread-253322][   transport.py][1871] : === End of kex handshake ===
2025-06-13 11:31:17,108 [DEBUG][       Thread-253322][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 11:31:17,108 [DEBUG][       Thread-253322][   transport.py][1871] : Switch to new keys ...
2025-06-13 11:31:17,109 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 11:31:17,110 [DEBUG][       Thread-253322][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 11:31:17,110 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 11:31:17,164 [DEBUG][       Thread-253322][   transport.py][1871] : userauth is OK
2025-06-13 11:31:17,165 [DEBUG][       Thread-253322][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 11:31:17,165 [DEBUG][       Thread-253322][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 11:31:17,165 [DEBUG][       Thread-253322][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 11:31:17,165 [DEBUG][       Thread-253322][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 11:31:17,187 [ INFO][       Thread-253322][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 11:31:17,187 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 11:31:17,188 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 11:31:18,260 [DEBUG][       Thread-253322][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 11:31:18,260 [DEBUG][       Thread-253322][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 11:31:18,308 [DEBUG][       Thread-253322][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 11:31:18,308 [DEBUG][       Thread-253322][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 11:31:18,317 [DEBUG][       Thread-253322][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 11:31:18,327 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 11:31:18,327 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 11:31:18,336 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 11:31:18,346 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 11:31:18,346 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 11:31:18,347 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 11:31:18,355 [DEBUG][       Thread-253322][   transport.py][1871] : EOF in transport thread
2025-06-13 11:31:22,960 [DEBUG][Thread-253324 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:31:23,926 [DEBUG][Thread-253325 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:31:24,993 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:31:24,993 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:31:28,357 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 11:31:28,357 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 11:31:28,357 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 11:31:28,360 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 11:31:28,834 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 11, 31, 23), 11.05, 46.27, 0.0, 21.42, 10.42, 0, 0, 0, 2, 0, 0),)
2025-06-13 11:31:28,835 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 11:31:23
2025-06-13 11:31:28,916 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 11:31:28,920 [DEBUG][       Thread-253326][   transport.py][1871] : starting thread (client mode): 0x8636a6e0
2025-06-13 11:31:28,920 [DEBUG][       Thread-253326][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 11:31:28,942 [DEBUG][       Thread-253326][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 11:31:28,942 [ INFO][       Thread-253326][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 11:31:28,945 [DEBUG][       Thread-253326][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 11:31:28,945 [DEBUG][       Thread-253326][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 11:31:28,945 [DEBUG][       Thread-253326][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 11:31:28,945 [DEBUG][       Thread-253326][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:31:28,945 [DEBUG][       Thread-253326][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:31:28,945 [DEBUG][       Thread-253326][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:31:28,945 [DEBUG][       Thread-253326][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:31:28,945 [DEBUG][       Thread-253326][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 11:31:28,945 [DEBUG][       Thread-253326][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 11:31:28,945 [DEBUG][       Thread-253326][   transport.py][1871] : client lang: <none>
2025-06-13 11:31:28,945 [DEBUG][       Thread-253326][   transport.py][1871] : server lang: <none>
2025-06-13 11:31:28,945 [DEBUG][       Thread-253326][   transport.py][1871] : kex follows: False
2025-06-13 11:31:28,945 [DEBUG][       Thread-253326][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 11:31:28,945 [DEBUG][       Thread-253326][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 11:31:28,946 [DEBUG][       Thread-253326][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 11:31:28,946 [DEBUG][       Thread-253326][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 11:31:28,946 [DEBUG][       Thread-253326][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 11:31:28,946 [DEBUG][       Thread-253326][   transport.py][1871] : Compression: none
2025-06-13 11:31:28,946 [DEBUG][       Thread-253326][   transport.py][1871] : === End of kex handshake ===
2025-06-13 11:31:28,964 [DEBUG][       Thread-253326][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 11:31:28,964 [DEBUG][       Thread-253326][   transport.py][1871] : Switch to new keys ...
2025-06-13 11:31:28,965 [DEBUG][       Thread-253326][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 11:31:28,965 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 11:31:28,965 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 11:31:28,966 [DEBUG][       Thread-253326][   transport.py][1871] : userauth is OK
2025-06-13 11:31:28,980 [ INFO][       Thread-253326][   transport.py][1871] : Authentication (password) successful!
2025-06-13 11:31:28,981 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 11:31:29,647 [DEBUG][       Thread-253326][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 11:31:29,647 [DEBUG][       Thread-253326][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 11:31:29,689 [DEBUG][       Thread-253326][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 11:31:29,689 [DEBUG][       Thread-253326][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 11:31:29,693 [DEBUG][       Thread-253326][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 11:31:29,706 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 11:31:29,706 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 11:31:29,708 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 11:31:29,710 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 11:31:29,716 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 11:31:29,718 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 11:31:29,718 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 11:31:29,719 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 11:31:29,719 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.396467 -999.00  +10.30  27.73     50   +0.40 1 1 1 1 1   888    0 10.64 42.56 ----- 21.9 27.7 59.4 31.5 14.8 -27.9 13.5 -30.6 12.8 -29.0 14.2 -26.9
2025-06-13 11:31:29,719 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 11:31:29,719 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 11:31:29,719 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.396467
2025-06-13 11:31:29,720 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 11:31:29,720 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 11:31:29,720 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 11:31:29,720 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 11:31:29,720 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 11:31:29,721 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T11:31:23', tmtdew=11.05, humidity=46.27, cloud=0.0, wind=21.42, temperature=10.42, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T09:30:54.749', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 11:31:29,722 [DEBUG][       Thread-253326][   transport.py][1871] : EOF in transport thread
2025-06-13 11:31:29,805 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 11:31:29,815 [DEBUG][       Thread-253329][   transport.py][1871] : starting thread (client mode): 0x863a5030
2025-06-13 11:31:29,816 [DEBUG][       Thread-253329][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 11:31:29,837 [DEBUG][       Thread-253329][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 11:31:29,837 [ INFO][       Thread-253329][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 11:31:29,850 [DEBUG][       Thread-253329][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 11:31:29,850 [DEBUG][       Thread-253329][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 11:31:29,850 [DEBUG][       Thread-253329][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 11:31:29,850 [DEBUG][       Thread-253329][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:31:29,850 [DEBUG][       Thread-253329][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:31:29,850 [DEBUG][       Thread-253329][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:31:29,850 [DEBUG][       Thread-253329][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:31:29,850 [DEBUG][       Thread-253329][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 11:31:29,850 [DEBUG][       Thread-253329][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 11:31:29,850 [DEBUG][       Thread-253329][   transport.py][1871] : client lang: <none>
2025-06-13 11:31:29,850 [DEBUG][       Thread-253329][   transport.py][1871] : server lang: <none>
2025-06-13 11:31:29,850 [DEBUG][       Thread-253329][   transport.py][1871] : kex follows: False
2025-06-13 11:31:29,850 [DEBUG][       Thread-253329][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 11:31:29,850 [DEBUG][       Thread-253329][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 11:31:29,850 [DEBUG][       Thread-253329][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 11:31:29,850 [DEBUG][       Thread-253329][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 11:31:29,850 [DEBUG][       Thread-253329][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 11:31:29,850 [DEBUG][       Thread-253329][   transport.py][1871] : Compression: none
2025-06-13 11:31:29,850 [DEBUG][       Thread-253329][   transport.py][1871] : === End of kex handshake ===
2025-06-13 11:31:29,913 [DEBUG][       Thread-253329][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 11:31:29,913 [DEBUG][       Thread-253329][   transport.py][1871] : Switch to new keys ...
2025-06-13 11:31:29,914 [DEBUG][       Thread-253329][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 11:31:29,914 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 11:31:29,915 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 11:31:29,974 [DEBUG][       Thread-253329][   transport.py][1871] : userauth is OK
2025-06-13 11:31:29,974 [DEBUG][       Thread-253329][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 11:31:29,974 [DEBUG][       Thread-253329][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 11:31:29,974 [DEBUG][       Thread-253329][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 11:31:29,974 [DEBUG][       Thread-253329][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 11:31:29,997 [ INFO][       Thread-253329][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 11:31:29,998 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 11:31:29,998 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 11:31:31,050 [DEBUG][       Thread-253329][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 11:31:31,051 [DEBUG][       Thread-253329][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 11:31:31,100 [DEBUG][       Thread-253329][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 11:31:31,101 [DEBUG][       Thread-253329][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 11:31:31,111 [DEBUG][       Thread-253329][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 11:31:31,121 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 11:31:31,121 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 11:31:31,130 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 11:31:31,141 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 11:31:31,141 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 11:31:31,142 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 11:31:31,152 [DEBUG][       Thread-253329][   transport.py][1871] : EOF in transport thread
2025-06-13 11:31:31,983 [DEBUG][Thread-253331 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:31:35,480 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:31:35,481 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:31:41,020 [DEBUG][Thread-253332 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:31:41,153 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 11:31:41,153 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 11:31:41,153 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 11:31:41,155 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 11:31:41,624 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 11, 31, 23), 11.05, 46.27, 0.0, 21.42, 10.42, 0, 0, 0, 2, 0, 0),)
2025-06-13 11:31:41,625 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 11:31:23
2025-06-13 11:31:41,706 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 11:31:41,712 [DEBUG][       Thread-253333][   transport.py][1871] : starting thread (client mode): 0x863bce50
2025-06-13 11:31:41,712 [DEBUG][       Thread-253333][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 11:31:41,732 [DEBUG][       Thread-253333][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 11:31:41,732 [ INFO][       Thread-253333][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 11:31:41,734 [DEBUG][       Thread-253333][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 11:31:41,734 [DEBUG][       Thread-253333][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 11:31:41,734 [DEBUG][       Thread-253333][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 11:31:41,734 [DEBUG][       Thread-253333][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:31:41,734 [DEBUG][       Thread-253333][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:31:41,734 [DEBUG][       Thread-253333][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:31:41,734 [DEBUG][       Thread-253333][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:31:41,734 [DEBUG][       Thread-253333][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 11:31:41,734 [DEBUG][       Thread-253333][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 11:31:41,734 [DEBUG][       Thread-253333][   transport.py][1871] : client lang: <none>
2025-06-13 11:31:41,734 [DEBUG][       Thread-253333][   transport.py][1871] : server lang: <none>
2025-06-13 11:31:41,734 [DEBUG][       Thread-253333][   transport.py][1871] : kex follows: False
2025-06-13 11:31:41,734 [DEBUG][       Thread-253333][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 11:31:41,734 [DEBUG][       Thread-253333][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 11:31:41,734 [DEBUG][       Thread-253333][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 11:31:41,734 [DEBUG][       Thread-253333][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 11:31:41,734 [DEBUG][       Thread-253333][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 11:31:41,734 [DEBUG][       Thread-253333][   transport.py][1871] : Compression: none
2025-06-13 11:31:41,734 [DEBUG][       Thread-253333][   transport.py][1871] : === End of kex handshake ===
2025-06-13 11:31:41,746 [DEBUG][       Thread-253333][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 11:31:41,746 [DEBUG][       Thread-253333][   transport.py][1871] : Switch to new keys ...
2025-06-13 11:31:41,746 [DEBUG][       Thread-253333][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 11:31:41,746 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 11:31:41,746 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 11:31:41,747 [DEBUG][       Thread-253333][   transport.py][1871] : userauth is OK
2025-06-13 11:31:41,759 [ INFO][       Thread-253333][   transport.py][1871] : Authentication (password) successful!
2025-06-13 11:31:41,759 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 11:31:42,428 [DEBUG][       Thread-253333][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 11:31:42,428 [DEBUG][       Thread-253333][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 11:31:42,469 [DEBUG][       Thread-253333][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 11:31:42,469 [DEBUG][       Thread-253333][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 11:31:42,473 [DEBUG][       Thread-253333][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 11:31:42,485 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 11:31:42,486 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 11:31:42,488 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 11:31:42,490 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 11:31:42,495 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 11:31:42,497 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 11:31:42,497 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 11:31:42,498 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 11:31:42,498 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.396467 -999.00  +10.30  27.73     50   +0.40 1 1 1 1 1   888    0 10.64 42.56 ----- 21.9 27.7 59.4 31.5 14.8 -27.9 13.5 -30.6 12.8 -29.0 14.2 -26.9
2025-06-13 11:31:42,498 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 11:31:42,498 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 11:31:42,499 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.396467
2025-06-13 11:31:42,499 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 11:31:42,499 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 11:31:42,500 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 11:31:42,500 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 11:31:42,500 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 11:31:42,500 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T11:31:23', tmtdew=11.05, humidity=46.27, cloud=0.0, wind=21.42, temperature=10.42, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T09:30:54.749', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 11:31:42,500 [DEBUG][       Thread-253333][   transport.py][1871] : EOF in transport thread
2025-06-13 11:31:42,594 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 11:31:50,039 [DEBUG][Thread-253336 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:31:59,060 [DEBUG][Thread-253337 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:32:08,080 [DEBUG][Thread-253338 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:32:09,414 [DEBUG][Thread-253339 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:32:17,100 [DEBUG][Thread-253340 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:32:25,056 [DEBUG][Thread-253341 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:32:26,112 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:32:26,112 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:32:26,117 [DEBUG][Thread-253342 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:32:35,136 [DEBUG][Thread-253343 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:32:35,621 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:32:35,623 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:32:44,157 [DEBUG][Thread-253344 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:32:53,180 [DEBUG][Thread-253345 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:33:02,201 [DEBUG][Thread-253346 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:33:09,478 [DEBUG][Thread-253347 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:33:11,223 [DEBUG][Thread-253348 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:33:20,246 [DEBUG][Thread-253349 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:33:26,180 [DEBUG][Thread-253350 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:33:27,260 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:33:27,261 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:33:29,267 [DEBUG][Thread-253351 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:33:35,761 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:33:35,762 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:33:38,288 [DEBUG][Thread-253352 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:33:47,306 [DEBUG][Thread-253353 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:33:51,252 [WARNING][ poll_weather_worker][      driver.py][ 286] : Unable to open ssh connection for writing weather state to io.saao.ac.za: [Errno 110] Connection timed out
2025-06-13 11:33:56,328 [DEBUG][Thread-253354 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:34:01,258 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 11:34:01,258 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 11:34:01,258 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 11:34:01,262 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 11:34:01,748 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 11, 33, 30), 11.36, 45.16, 0.0, 20.1, 10.51, 0, 0, 0, 2, 0, 0),)
2025-06-13 11:34:01,748 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 11:33:30
2025-06-13 11:34:01,829 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 11:34:01,834 [DEBUG][       Thread-253355][   transport.py][1871] : starting thread (client mode): 0x84207a90
2025-06-13 11:34:01,835 [DEBUG][       Thread-253355][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 11:34:01,851 [DEBUG][       Thread-253355][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 11:34:01,851 [ INFO][       Thread-253355][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 11:34:01,854 [DEBUG][       Thread-253355][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 11:34:01,854 [DEBUG][       Thread-253355][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 11:34:01,855 [DEBUG][       Thread-253355][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 11:34:01,855 [DEBUG][       Thread-253355][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:34:01,855 [DEBUG][       Thread-253355][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:34:01,855 [DEBUG][       Thread-253355][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:34:01,855 [DEBUG][       Thread-253355][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:34:01,855 [DEBUG][       Thread-253355][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 11:34:01,855 [DEBUG][       Thread-253355][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 11:34:01,855 [DEBUG][       Thread-253355][   transport.py][1871] : client lang: <none>
2025-06-13 11:34:01,855 [DEBUG][       Thread-253355][   transport.py][1871] : server lang: <none>
2025-06-13 11:34:01,855 [DEBUG][       Thread-253355][   transport.py][1871] : kex follows: False
2025-06-13 11:34:01,855 [DEBUG][       Thread-253355][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 11:34:01,855 [DEBUG][       Thread-253355][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 11:34:01,855 [DEBUG][       Thread-253355][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 11:34:01,855 [DEBUG][       Thread-253355][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 11:34:01,855 [DEBUG][       Thread-253355][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 11:34:01,855 [DEBUG][       Thread-253355][   transport.py][1871] : Compression: none
2025-06-13 11:34:01,855 [DEBUG][       Thread-253355][   transport.py][1871] : === End of kex handshake ===
2025-06-13 11:34:01,872 [DEBUG][       Thread-253355][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 11:34:01,872 [DEBUG][       Thread-253355][   transport.py][1871] : Switch to new keys ...
2025-06-13 11:34:01,873 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 11:34:01,873 [DEBUG][       Thread-253355][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 11:34:01,874 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 11:34:01,875 [DEBUG][       Thread-253355][   transport.py][1871] : userauth is OK
2025-06-13 11:34:01,900 [ INFO][       Thread-253355][   transport.py][1871] : Authentication (password) successful!
2025-06-13 11:34:01,900 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 11:34:02,662 [DEBUG][       Thread-253355][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 11:34:02,662 [DEBUG][       Thread-253355][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 11:34:02,705 [DEBUG][       Thread-253355][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 11:34:02,705 [DEBUG][       Thread-253355][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 11:34:02,707 [DEBUG][       Thread-253355][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 11:34:02,718 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 11:34:02,718 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 11:34:02,719 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 11:34:02,720 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 11:34:02,723 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 11:34:02,724 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 11:34:02,724 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 11:34:02,724 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 11:34:02,724 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.398203 -999.00  +10.30  20.07     49   +0.20 1 1 1 1 1   888    0 10.42 39.85 ----- 19.8 20.1 44.4 27.0 14.8 -28.1 13.5 -30.3 12.9 -28.8 14.2 -26.1
2025-06-13 11:34:02,724 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 11:34:02,724 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 11:34:02,724 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.398203
2025-06-13 11:34:02,724 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 11:34:02,725 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 11:34:02,725 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 11:34:02,725 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 11:34:02,725 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 11:34:02,725 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T11:33:30', tmtdew=11.36, humidity=45.16, cloud=0.0, wind=20.1, temperature=10.51, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T09:33:24.739', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 11:34:02,725 [DEBUG][       Thread-253355][   transport.py][1871] : EOF in transport thread
2025-06-13 11:34:02,799 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 11:34:02,811 [DEBUG][       Thread-253358][   transport.py][1871] : starting thread (client mode): 0x867fc0d0
2025-06-13 11:34:02,811 [DEBUG][       Thread-253358][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 11:34:02,830 [DEBUG][       Thread-253358][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 11:34:02,830 [ INFO][       Thread-253358][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 11:34:02,849 [DEBUG][       Thread-253358][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 11:34:02,849 [DEBUG][       Thread-253358][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 11:34:02,849 [DEBUG][       Thread-253358][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 11:34:02,849 [DEBUG][       Thread-253358][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:34:02,849 [DEBUG][       Thread-253358][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:34:02,849 [DEBUG][       Thread-253358][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:34:02,849 [DEBUG][       Thread-253358][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:34:02,849 [DEBUG][       Thread-253358][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 11:34:02,849 [DEBUG][       Thread-253358][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 11:34:02,849 [DEBUG][       Thread-253358][   transport.py][1871] : client lang: <none>
2025-06-13 11:34:02,849 [DEBUG][       Thread-253358][   transport.py][1871] : server lang: <none>
2025-06-13 11:34:02,849 [DEBUG][       Thread-253358][   transport.py][1871] : kex follows: False
2025-06-13 11:34:02,849 [DEBUG][       Thread-253358][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 11:34:02,849 [DEBUG][       Thread-253358][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 11:34:02,849 [DEBUG][       Thread-253358][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 11:34:02,849 [DEBUG][       Thread-253358][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 11:34:02,849 [DEBUG][       Thread-253358][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 11:34:02,849 [DEBUG][       Thread-253358][   transport.py][1871] : Compression: none
2025-06-13 11:34:02,849 [DEBUG][       Thread-253358][   transport.py][1871] : === End of kex handshake ===
2025-06-13 11:34:02,900 [DEBUG][       Thread-253358][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 11:34:02,900 [DEBUG][       Thread-253358][   transport.py][1871] : Switch to new keys ...
2025-06-13 11:34:02,900 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 11:34:02,900 [DEBUG][       Thread-253358][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 11:34:02,900 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 11:34:02,956 [DEBUG][       Thread-253358][   transport.py][1871] : userauth is OK
2025-06-13 11:34:02,956 [DEBUG][       Thread-253358][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 11:34:02,956 [DEBUG][       Thread-253358][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 11:34:02,956 [DEBUG][       Thread-253358][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 11:34:02,956 [DEBUG][       Thread-253358][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 11:34:02,972 [ INFO][       Thread-253358][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 11:34:02,972 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 11:34:02,972 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 11:34:04,051 [DEBUG][       Thread-253358][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 11:34:04,051 [DEBUG][       Thread-253358][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 11:34:04,100 [DEBUG][       Thread-253358][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 11:34:04,100 [DEBUG][       Thread-253358][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 11:34:04,110 [DEBUG][       Thread-253358][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 11:34:04,123 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 11:34:04,123 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 11:34:04,134 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 11:34:04,143 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 11:34:04,144 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 11:34:04,144 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 11:34:04,152 [DEBUG][       Thread-253358][   transport.py][1871] : EOF in transport thread
2025-06-13 11:34:05,348 [DEBUG][Thread-253360 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:34:09,527 [DEBUG][Thread-253361 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:34:14,155 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 11:34:14,155 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 11:34:14,155 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 11:34:14,158 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 11:34:14,373 [DEBUG][Thread-253362 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:34:14,634 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 11, 34, 1), 11.32, 45.29, 0.0, 17.56, 10.5, 0, 0, 0, 2, 0, 0),)
2025-06-13 11:34:14,635 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 11:34:01
2025-06-13 11:34:14,717 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 11:34:14,723 [DEBUG][       Thread-253363][   transport.py][1871] : starting thread (client mode): 0x8636b940
2025-06-13 11:34:14,723 [DEBUG][       Thread-253363][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 11:34:14,743 [DEBUG][       Thread-253363][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 11:34:14,743 [ INFO][       Thread-253363][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 11:34:14,746 [DEBUG][       Thread-253363][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 11:34:14,746 [DEBUG][       Thread-253363][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 11:34:14,746 [DEBUG][       Thread-253363][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 11:34:14,746 [DEBUG][       Thread-253363][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:34:14,746 [DEBUG][       Thread-253363][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:34:14,746 [DEBUG][       Thread-253363][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:34:14,746 [DEBUG][       Thread-253363][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:34:14,746 [DEBUG][       Thread-253363][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 11:34:14,746 [DEBUG][       Thread-253363][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 11:34:14,746 [DEBUG][       Thread-253363][   transport.py][1871] : client lang: <none>
2025-06-13 11:34:14,746 [DEBUG][       Thread-253363][   transport.py][1871] : server lang: <none>
2025-06-13 11:34:14,747 [DEBUG][       Thread-253363][   transport.py][1871] : kex follows: False
2025-06-13 11:34:14,747 [DEBUG][       Thread-253363][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 11:34:14,747 [DEBUG][       Thread-253363][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 11:34:14,747 [DEBUG][       Thread-253363][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 11:34:14,747 [DEBUG][       Thread-253363][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 11:34:14,747 [DEBUG][       Thread-253363][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 11:34:14,747 [DEBUG][       Thread-253363][   transport.py][1871] : Compression: none
2025-06-13 11:34:14,747 [DEBUG][       Thread-253363][   transport.py][1871] : === End of kex handshake ===
2025-06-13 11:34:14,764 [DEBUG][       Thread-253363][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 11:34:14,764 [DEBUG][       Thread-253363][   transport.py][1871] : Switch to new keys ...
2025-06-13 11:34:14,764 [DEBUG][       Thread-253363][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 11:34:14,764 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 11:34:14,764 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 11:34:14,764 [DEBUG][       Thread-253363][   transport.py][1871] : userauth is OK
2025-06-13 11:34:14,777 [ INFO][       Thread-253363][   transport.py][1871] : Authentication (password) successful!
2025-06-13 11:34:14,778 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 11:34:15,388 [DEBUG][       Thread-253363][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 11:34:15,388 [DEBUG][       Thread-253363][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 11:34:15,429 [DEBUG][       Thread-253363][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 11:34:15,429 [DEBUG][       Thread-253363][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 11:34:15,432 [DEBUG][       Thread-253363][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 11:34:15,445 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 11:34:15,445 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 11:34:15,447 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 11:34:15,449 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 11:34:15,453 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 11:34:15,455 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 11:34:15,455 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 11:34:15,456 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 11:34:15,456 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.398550 -999.00  +10.40  19.01     50   +0.60 1 1 1 1 1   888    0 10.88 40.20 ----- 25.9 19.0 49.8 23.1 14.9 -28.2 13.6 -29.5 13.0 -28.5 14.3 -27.5
2025-06-13 11:34:15,456 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 11:34:15,456 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 11:34:15,456 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.398550
2025-06-13 11:34:15,456 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 11:34:15,457 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 11:34:15,457 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 11:34:15,457 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 11:34:15,457 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 11:34:15,457 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T11:34:01', tmtdew=11.32, humidity=45.29, cloud=0.0, wind=17.56, temperature=10.5, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T09:33:54.720', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 11:34:15,458 [DEBUG][       Thread-253363][   transport.py][1871] : EOF in transport thread
2025-06-13 11:34:15,541 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 11:34:15,552 [DEBUG][       Thread-253366][   transport.py][1871] : starting thread (client mode): 0x867ffe80
2025-06-13 11:34:15,552 [DEBUG][       Thread-253366][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 11:34:15,567 [DEBUG][       Thread-253366][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 11:34:15,567 [ INFO][       Thread-253366][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 11:34:15,574 [DEBUG][       Thread-253366][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 11:34:15,574 [DEBUG][       Thread-253366][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 11:34:15,575 [DEBUG][       Thread-253366][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 11:34:15,575 [DEBUG][       Thread-253366][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:34:15,575 [DEBUG][       Thread-253366][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:34:15,575 [DEBUG][       Thread-253366][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:34:15,575 [DEBUG][       Thread-253366][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:34:15,575 [DEBUG][       Thread-253366][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 11:34:15,575 [DEBUG][       Thread-253366][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 11:34:15,575 [DEBUG][       Thread-253366][   transport.py][1871] : client lang: <none>
2025-06-13 11:34:15,575 [DEBUG][       Thread-253366][   transport.py][1871] : server lang: <none>
2025-06-13 11:34:15,575 [DEBUG][       Thread-253366][   transport.py][1871] : kex follows: False
2025-06-13 11:34:15,575 [DEBUG][       Thread-253366][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 11:34:15,575 [DEBUG][       Thread-253366][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 11:34:15,575 [DEBUG][       Thread-253366][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 11:34:15,575 [DEBUG][       Thread-253366][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 11:34:15,575 [DEBUG][       Thread-253366][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 11:34:15,575 [DEBUG][       Thread-253366][   transport.py][1871] : Compression: none
2025-06-13 11:34:15,575 [DEBUG][       Thread-253366][   transport.py][1871] : === End of kex handshake ===
2025-06-13 11:34:15,631 [DEBUG][       Thread-253366][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 11:34:15,632 [DEBUG][       Thread-253366][   transport.py][1871] : Switch to new keys ...
2025-06-13 11:34:15,632 [DEBUG][       Thread-253366][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 11:34:15,632 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 11:34:15,633 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 11:34:15,690 [DEBUG][       Thread-253366][   transport.py][1871] : userauth is OK
2025-06-13 11:34:15,690 [DEBUG][       Thread-253366][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 11:34:15,690 [DEBUG][       Thread-253366][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 11:34:15,691 [DEBUG][       Thread-253366][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 11:34:15,691 [DEBUG][       Thread-253366][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 11:34:15,709 [ INFO][       Thread-253366][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 11:34:15,709 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 11:34:15,710 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 11:34:16,705 [DEBUG][       Thread-253366][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 11:34:16,706 [DEBUG][       Thread-253366][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 11:34:16,755 [DEBUG][       Thread-253366][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 11:34:16,756 [DEBUG][       Thread-253366][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 11:34:16,764 [DEBUG][       Thread-253366][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 11:34:16,773 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 11:34:16,773 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 11:34:16,781 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 11:34:16,790 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 11:34:16,790 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 11:34:16,790 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 11:34:16,798 [DEBUG][       Thread-253366][   transport.py][1871] : EOF in transport thread
2025-06-13 11:34:23,390 [DEBUG][Thread-253368 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:34:26,801 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 11:34:26,801 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 11:34:26,801 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 11:34:26,803 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 11:34:27,284 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 11, 34, 1), 11.32, 45.29, 0.0, 17.56, 10.5, 0, 0, 0, 2, 0, 0),)
2025-06-13 11:34:27,284 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 11:34:01
2025-06-13 11:34:27,331 [DEBUG][Thread-253369 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:34:27,365 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 11:34:27,369 [DEBUG][       Thread-253370][   transport.py][1871] : starting thread (client mode): 0x863bf250
2025-06-13 11:34:27,369 [DEBUG][       Thread-253370][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 11:34:27,389 [DEBUG][       Thread-253370][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 11:34:27,389 [ INFO][       Thread-253370][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 11:34:27,390 [DEBUG][       Thread-253370][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 11:34:27,390 [DEBUG][       Thread-253370][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 11:34:27,390 [DEBUG][       Thread-253370][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 11:34:27,390 [DEBUG][       Thread-253370][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:34:27,390 [DEBUG][       Thread-253370][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:34:27,390 [DEBUG][       Thread-253370][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:34:27,390 [DEBUG][       Thread-253370][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:34:27,390 [DEBUG][       Thread-253370][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 11:34:27,390 [DEBUG][       Thread-253370][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 11:34:27,390 [DEBUG][       Thread-253370][   transport.py][1871] : client lang: <none>
2025-06-13 11:34:27,390 [DEBUG][       Thread-253370][   transport.py][1871] : server lang: <none>
2025-06-13 11:34:27,390 [DEBUG][       Thread-253370][   transport.py][1871] : kex follows: False
2025-06-13 11:34:27,390 [DEBUG][       Thread-253370][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 11:34:27,390 [DEBUG][       Thread-253370][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 11:34:27,390 [DEBUG][       Thread-253370][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 11:34:27,390 [DEBUG][       Thread-253370][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 11:34:27,390 [DEBUG][       Thread-253370][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 11:34:27,390 [DEBUG][       Thread-253370][   transport.py][1871] : Compression: none
2025-06-13 11:34:27,391 [DEBUG][       Thread-253370][   transport.py][1871] : === End of kex handshake ===
2025-06-13 11:34:27,408 [DEBUG][       Thread-253370][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 11:34:27,409 [DEBUG][       Thread-253370][   transport.py][1871] : Switch to new keys ...
2025-06-13 11:34:27,409 [DEBUG][       Thread-253370][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 11:34:27,409 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 11:34:27,409 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 11:34:27,410 [DEBUG][       Thread-253370][   transport.py][1871] : userauth is OK
2025-06-13 11:34:27,434 [ INFO][       Thread-253370][   transport.py][1871] : Authentication (password) successful!
2025-06-13 11:34:27,435 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 11:34:28,069 [DEBUG][       Thread-253370][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 11:34:28,069 [DEBUG][       Thread-253370][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 11:34:28,113 [DEBUG][       Thread-253370][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 11:34:28,113 [DEBUG][       Thread-253370][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 11:34:28,116 [DEBUG][       Thread-253370][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 11:34:28,129 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 11:34:28,130 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 11:34:28,132 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 11:34:28,134 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 11:34:28,140 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 11:34:28,142 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 11:34:28,142 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 11:34:28,143 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 11:34:28,143 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.398550 -999.00  +10.40  19.01     50   +0.60 1 1 1 1 1   888    0 10.88 40.20 ----- 25.9 19.0 49.8 23.1 14.9 -28.2 13.6 -29.5 13.0 -28.5 14.3 -27.5
2025-06-13 11:34:28,143 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 11:34:28,143 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 11:34:28,143 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.398550
2025-06-13 11:34:28,144 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 11:34:28,144 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 11:34:28,144 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 11:34:28,144 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 11:34:28,144 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 11:34:28,145 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T11:34:01', tmtdew=11.32, humidity=45.29, cloud=0.0, wind=17.56, temperature=10.5, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T09:33:54.720', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 11:34:28,146 [DEBUG][       Thread-253370][   transport.py][1871] : EOF in transport thread
2025-06-13 11:34:28,228 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 11:34:28,239 [DEBUG][       Thread-253373][   transport.py][1871] : starting thread (client mode): 0x867fcf70
2025-06-13 11:34:28,239 [DEBUG][       Thread-253373][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 11:34:28,259 [DEBUG][       Thread-253373][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 11:34:28,259 [ INFO][       Thread-253373][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 11:34:28,267 [DEBUG][       Thread-253373][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 11:34:28,267 [DEBUG][       Thread-253373][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 11:34:28,267 [DEBUG][       Thread-253373][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 11:34:28,267 [DEBUG][       Thread-253373][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:34:28,267 [DEBUG][       Thread-253373][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:34:28,267 [DEBUG][       Thread-253373][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:34:28,267 [DEBUG][       Thread-253373][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:34:28,267 [DEBUG][       Thread-253373][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 11:34:28,268 [DEBUG][       Thread-253373][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 11:34:28,268 [DEBUG][       Thread-253373][   transport.py][1871] : client lang: <none>
2025-06-13 11:34:28,268 [DEBUG][       Thread-253373][   transport.py][1871] : server lang: <none>
2025-06-13 11:34:28,268 [DEBUG][       Thread-253373][   transport.py][1871] : kex follows: False
2025-06-13 11:34:28,268 [DEBUG][       Thread-253373][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 11:34:28,268 [DEBUG][       Thread-253373][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 11:34:28,268 [DEBUG][       Thread-253373][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 11:34:28,268 [DEBUG][       Thread-253373][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 11:34:28,268 [DEBUG][       Thread-253373][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 11:34:28,268 [DEBUG][       Thread-253373][   transport.py][1871] : Compression: none
2025-06-13 11:34:28,268 [DEBUG][       Thread-253373][   transport.py][1871] : === End of kex handshake ===
2025-06-13 11:34:28,328 [DEBUG][       Thread-253373][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 11:34:28,329 [DEBUG][       Thread-253373][   transport.py][1871] : Switch to new keys ...
2025-06-13 11:34:28,329 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 11:34:28,330 [DEBUG][       Thread-253373][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 11:34:28,331 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 11:34:28,384 [DEBUG][       Thread-253373][   transport.py][1871] : userauth is OK
2025-06-13 11:34:28,384 [DEBUG][       Thread-253373][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 11:34:28,385 [DEBUG][       Thread-253373][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 11:34:28,385 [DEBUG][       Thread-253373][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 11:34:28,385 [DEBUG][       Thread-253373][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 11:34:28,391 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:34:28,391 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:34:28,404 [ INFO][       Thread-253373][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 11:34:28,404 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 11:34:28,404 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 11:34:29,454 [DEBUG][       Thread-253373][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 11:34:29,454 [DEBUG][       Thread-253373][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 11:34:29,504 [DEBUG][       Thread-253373][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 11:34:29,504 [DEBUG][       Thread-253373][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 11:34:29,513 [DEBUG][       Thread-253373][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 11:34:29,524 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 11:34:29,524 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 11:34:29,536 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 11:34:29,545 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 11:34:29,546 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 11:34:29,546 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 11:34:29,554 [DEBUG][       Thread-253373][   transport.py][1871] : EOF in transport thread
2025-06-13 11:34:32,436 [DEBUG][Thread-253375 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:34:35,900 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:34:35,902 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:34:39,556 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 11:34:39,556 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 11:34:39,556 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 11:34:39,557 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 11:34:40,021 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 11, 34, 33), 11.16, 45.81, 0.0, 24.0, 10.44, 0, 0, 0, 2, 0, 0),)
2025-06-13 11:34:40,021 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 11:34:33
2025-06-13 11:34:40,102 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 11:34:40,108 [DEBUG][       Thread-253376][   transport.py][1871] : starting thread (client mode): 0x842048b0
2025-06-13 11:34:40,108 [DEBUG][       Thread-253376][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 11:34:40,129 [DEBUG][       Thread-253376][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 11:34:40,129 [ INFO][       Thread-253376][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 11:34:40,132 [DEBUG][       Thread-253376][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 11:34:40,132 [DEBUG][       Thread-253376][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 11:34:40,132 [DEBUG][       Thread-253376][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 11:34:40,132 [DEBUG][       Thread-253376][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:34:40,133 [DEBUG][       Thread-253376][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:34:40,133 [DEBUG][       Thread-253376][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:34:40,133 [DEBUG][       Thread-253376][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:34:40,133 [DEBUG][       Thread-253376][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 11:34:40,133 [DEBUG][       Thread-253376][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 11:34:40,133 [DEBUG][       Thread-253376][   transport.py][1871] : client lang: <none>
2025-06-13 11:34:40,133 [DEBUG][       Thread-253376][   transport.py][1871] : server lang: <none>
2025-06-13 11:34:40,133 [DEBUG][       Thread-253376][   transport.py][1871] : kex follows: False
2025-06-13 11:34:40,133 [DEBUG][       Thread-253376][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 11:34:40,133 [DEBUG][       Thread-253376][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 11:34:40,133 [DEBUG][       Thread-253376][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 11:34:40,133 [DEBUG][       Thread-253376][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 11:34:40,133 [DEBUG][       Thread-253376][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 11:34:40,133 [DEBUG][       Thread-253376][   transport.py][1871] : Compression: none
2025-06-13 11:34:40,133 [DEBUG][       Thread-253376][   transport.py][1871] : === End of kex handshake ===
2025-06-13 11:34:40,150 [DEBUG][       Thread-253376][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 11:34:40,151 [DEBUG][       Thread-253376][   transport.py][1871] : Switch to new keys ...
2025-06-13 11:34:40,151 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 11:34:40,152 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 11:34:40,152 [DEBUG][       Thread-253376][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 11:34:40,153 [DEBUG][       Thread-253376][   transport.py][1871] : userauth is OK
2025-06-13 11:34:40,167 [ INFO][       Thread-253376][   transport.py][1871] : Authentication (password) successful!
2025-06-13 11:34:40,167 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 11:34:40,828 [DEBUG][       Thread-253376][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 11:34:40,829 [DEBUG][       Thread-253376][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 11:34:40,873 [DEBUG][       Thread-253376][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 11:34:40,873 [DEBUG][       Thread-253376][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 11:34:40,877 [DEBUG][       Thread-253376][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 11:34:40,889 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 11:34:40,889 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 11:34:40,891 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 11:34:40,893 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 11:34:40,898 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 11:34:40,899 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 11:34:40,900 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 11:34:40,900 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 11:34:40,900 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.398550 -999.00  +10.40  19.01     50   +0.60 1 1 1 1 1   888    0 10.88 40.20 ----- 25.9 19.0 49.8 23.1 14.9 -28.2 13.6 -29.5 13.0 -28.5 14.3 -27.5
2025-06-13 11:34:40,901 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 11:34:40,901 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 11:34:40,901 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.398550
2025-06-13 11:34:40,901 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 11:34:40,902 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 11:34:40,902 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 11:34:40,902 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 11:34:40,902 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 11:34:40,902 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T11:34:33', tmtdew=11.16, humidity=45.81, cloud=0.0, wind=24.0, temperature=10.44, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T09:33:54.720', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 11:34:40,903 [DEBUG][       Thread-253376][   transport.py][1871] : EOF in transport thread
2025-06-13 11:34:40,979 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 11:34:40,992 [DEBUG][       Thread-253379][   transport.py][1871] : starting thread (client mode): 0x863eec20
2025-06-13 11:34:40,992 [DEBUG][       Thread-253379][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 11:34:41,007 [DEBUG][       Thread-253379][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 11:34:41,007 [ INFO][       Thread-253379][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 11:34:41,015 [DEBUG][       Thread-253379][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 11:34:41,015 [DEBUG][       Thread-253379][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 11:34:41,015 [DEBUG][       Thread-253379][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 11:34:41,015 [DEBUG][       Thread-253379][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:34:41,015 [DEBUG][       Thread-253379][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:34:41,015 [DEBUG][       Thread-253379][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:34:41,015 [DEBUG][       Thread-253379][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:34:41,015 [DEBUG][       Thread-253379][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 11:34:41,015 [DEBUG][       Thread-253379][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 11:34:41,015 [DEBUG][       Thread-253379][   transport.py][1871] : client lang: <none>
2025-06-13 11:34:41,015 [DEBUG][       Thread-253379][   transport.py][1871] : server lang: <none>
2025-06-13 11:34:41,015 [DEBUG][       Thread-253379][   transport.py][1871] : kex follows: False
2025-06-13 11:34:41,015 [DEBUG][       Thread-253379][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 11:34:41,015 [DEBUG][       Thread-253379][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 11:34:41,015 [DEBUG][       Thread-253379][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 11:34:41,015 [DEBUG][       Thread-253379][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 11:34:41,016 [DEBUG][       Thread-253379][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 11:34:41,016 [DEBUG][       Thread-253379][   transport.py][1871] : Compression: none
2025-06-13 11:34:41,016 [DEBUG][       Thread-253379][   transport.py][1871] : === End of kex handshake ===
2025-06-13 11:34:41,072 [DEBUG][       Thread-253379][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 11:34:41,073 [DEBUG][       Thread-253379][   transport.py][1871] : Switch to new keys ...
2025-06-13 11:34:41,073 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 11:34:41,074 [DEBUG][       Thread-253379][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 11:34:41,074 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 11:34:41,129 [DEBUG][       Thread-253379][   transport.py][1871] : userauth is OK
2025-06-13 11:34:41,130 [DEBUG][       Thread-253379][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 11:34:41,130 [DEBUG][       Thread-253379][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 11:34:41,130 [DEBUG][       Thread-253379][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 11:34:41,130 [DEBUG][       Thread-253379][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 11:34:41,151 [ INFO][       Thread-253379][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 11:34:41,151 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 11:34:41,151 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 11:34:41,458 [DEBUG][Thread-253381 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:34:42,166 [DEBUG][       Thread-253379][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 11:34:42,166 [DEBUG][       Thread-253379][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 11:34:42,216 [DEBUG][       Thread-253379][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 11:34:42,216 [DEBUG][       Thread-253379][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 11:34:42,226 [DEBUG][       Thread-253379][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 11:34:42,235 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 11:34:42,235 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 11:34:42,244 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 11:34:42,253 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 11:34:42,254 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 11:34:42,254 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 11:34:42,262 [DEBUG][       Thread-253379][   transport.py][1871] : EOF in transport thread
2025-06-13 11:34:50,493 [DEBUG][Thread-253382 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:34:52,258 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 11:34:52,258 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 11:34:52,258 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 11:34:52,261 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 11:34:52,738 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 11, 34, 33), 11.16, 45.81, 0.0, 24.0, 10.44, 0, 0, 0, 2, 0, 0),)
2025-06-13 11:34:52,738 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 11:34:33
2025-06-13 11:34:52,820 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 11:34:52,824 [DEBUG][       Thread-253383][   transport.py][1871] : starting thread (client mode): 0x84205270
2025-06-13 11:34:52,824 [DEBUG][       Thread-253383][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 11:34:52,845 [DEBUG][       Thread-253383][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 11:34:52,846 [ INFO][       Thread-253383][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 11:34:52,849 [DEBUG][       Thread-253383][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 11:34:52,849 [DEBUG][       Thread-253383][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 11:34:52,850 [DEBUG][       Thread-253383][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 11:34:52,850 [DEBUG][       Thread-253383][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:34:52,850 [DEBUG][       Thread-253383][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:34:52,850 [DEBUG][       Thread-253383][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:34:52,850 [DEBUG][       Thread-253383][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:34:52,850 [DEBUG][       Thread-253383][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 11:34:52,850 [DEBUG][       Thread-253383][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 11:34:52,850 [DEBUG][       Thread-253383][   transport.py][1871] : client lang: <none>
2025-06-13 11:34:52,850 [DEBUG][       Thread-253383][   transport.py][1871] : server lang: <none>
2025-06-13 11:34:52,850 [DEBUG][       Thread-253383][   transport.py][1871] : kex follows: False
2025-06-13 11:34:52,850 [DEBUG][       Thread-253383][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 11:34:52,850 [DEBUG][       Thread-253383][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 11:34:52,850 [DEBUG][       Thread-253383][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 11:34:52,850 [DEBUG][       Thread-253383][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 11:34:52,850 [DEBUG][       Thread-253383][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 11:34:52,850 [DEBUG][       Thread-253383][   transport.py][1871] : Compression: none
2025-06-13 11:34:52,850 [DEBUG][       Thread-253383][   transport.py][1871] : === End of kex handshake ===
2025-06-13 11:34:52,867 [DEBUG][       Thread-253383][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 11:34:52,868 [DEBUG][       Thread-253383][   transport.py][1871] : Switch to new keys ...
2025-06-13 11:34:52,869 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 11:34:52,869 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 11:34:52,869 [DEBUG][       Thread-253383][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 11:34:52,870 [DEBUG][       Thread-253383][   transport.py][1871] : userauth is OK
2025-06-13 11:34:52,895 [ INFO][       Thread-253383][   transport.py][1871] : Authentication (password) successful!
2025-06-13 11:34:52,895 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 11:34:53,520 [DEBUG][       Thread-253383][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 11:34:53,521 [DEBUG][       Thread-253383][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 11:34:53,565 [DEBUG][       Thread-253383][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 11:34:53,565 [DEBUG][       Thread-253383][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 11:34:53,568 [DEBUG][       Thread-253383][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 11:34:53,580 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 11:34:53,581 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 11:34:53,583 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 11:34:53,585 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 11:34:53,591 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 11:34:53,593 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 11:34:53,593 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 11:34:53,594 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 11:34:53,594 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.398897 -999.00  +10.30  24.11     51   +0.60 1 1 1 1 1   888    0 10.83 40.14 ----- 25.0 24.1 65.2 30.3 14.9 -27.4 13.5 -29.4 12.9 -28.2 14.2 -27.3
2025-06-13 11:34:53,594 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 11:34:53,594 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 11:34:53,594 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.398897
2025-06-13 11:34:53,595 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 11:34:53,595 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 11:34:53,595 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 11:34:53,595 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 11:34:53,596 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 11:34:53,596 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T11:34:33', tmtdew=11.16, humidity=45.81, cloud=0.0, wind=24.0, temperature=10.44, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T09:34:24.701', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 11:34:53,597 [DEBUG][       Thread-253383][   transport.py][1871] : EOF in transport thread
2025-06-13 11:34:53,679 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 11:34:53,692 [DEBUG][       Thread-253386][   transport.py][1871] : starting thread (client mode): 0x84204d30
2025-06-13 11:34:53,692 [DEBUG][       Thread-253386][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 11:34:53,711 [DEBUG][       Thread-253386][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 11:34:53,711 [ INFO][       Thread-253386][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 11:34:53,720 [DEBUG][       Thread-253386][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 11:34:53,720 [DEBUG][       Thread-253386][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 11:34:53,721 [DEBUG][       Thread-253386][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 11:34:53,721 [DEBUG][       Thread-253386][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:34:53,721 [DEBUG][       Thread-253386][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:34:53,721 [DEBUG][       Thread-253386][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:34:53,721 [DEBUG][       Thread-253386][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:34:53,721 [DEBUG][       Thread-253386][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 11:34:53,721 [DEBUG][       Thread-253386][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 11:34:53,721 [DEBUG][       Thread-253386][   transport.py][1871] : client lang: <none>
2025-06-13 11:34:53,721 [DEBUG][       Thread-253386][   transport.py][1871] : server lang: <none>
2025-06-13 11:34:53,721 [DEBUG][       Thread-253386][   transport.py][1871] : kex follows: False
2025-06-13 11:34:53,721 [DEBUG][       Thread-253386][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 11:34:53,721 [DEBUG][       Thread-253386][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 11:34:53,721 [DEBUG][       Thread-253386][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 11:34:53,721 [DEBUG][       Thread-253386][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 11:34:53,721 [DEBUG][       Thread-253386][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 11:34:53,721 [DEBUG][       Thread-253386][   transport.py][1871] : Compression: none
2025-06-13 11:34:53,722 [DEBUG][       Thread-253386][   transport.py][1871] : === End of kex handshake ===
2025-06-13 11:34:53,776 [DEBUG][       Thread-253386][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 11:34:53,777 [DEBUG][       Thread-253386][   transport.py][1871] : Switch to new keys ...
2025-06-13 11:34:53,777 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 11:34:53,778 [DEBUG][       Thread-253386][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 11:34:53,778 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 11:34:53,848 [DEBUG][       Thread-253386][   transport.py][1871] : userauth is OK
2025-06-13 11:34:53,849 [DEBUG][       Thread-253386][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 11:34:53,849 [DEBUG][       Thread-253386][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 11:34:53,849 [DEBUG][       Thread-253386][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 11:34:53,849 [DEBUG][       Thread-253386][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 11:34:53,869 [ INFO][       Thread-253386][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 11:34:53,869 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 11:34:53,869 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 11:34:54,917 [DEBUG][       Thread-253386][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 11:34:54,918 [DEBUG][       Thread-253386][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 11:34:54,968 [DEBUG][       Thread-253386][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 11:34:54,968 [DEBUG][       Thread-253386][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 11:34:54,983 [DEBUG][       Thread-253386][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 11:34:54,995 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 11:34:54,995 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 11:34:55,004 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 11:34:55,013 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 11:34:55,013 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 11:34:55,014 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 11:34:55,022 [DEBUG][       Thread-253386][   transport.py][1871] : EOF in transport thread
2025-06-13 11:34:59,511 [DEBUG][Thread-253388 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:35:05,020 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 11:35:05,020 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 11:35:05,020 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 11:35:05,023 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 11:35:05,486 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 11, 34, 33), 11.16, 45.81, 0.0, 24.0, 10.44, 0, 0, 0, 2, 0, 0),)
2025-06-13 11:35:05,486 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 11:34:33
2025-06-13 11:35:05,567 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 11:35:05,572 [DEBUG][       Thread-253389][   transport.py][1871] : starting thread (client mode): 0x863bf040
2025-06-13 11:35:05,572 [DEBUG][       Thread-253389][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 11:35:05,592 [DEBUG][       Thread-253389][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 11:35:05,592 [ INFO][       Thread-253389][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 11:35:05,596 [DEBUG][       Thread-253389][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 11:35:05,596 [DEBUG][       Thread-253389][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 11:35:05,596 [DEBUG][       Thread-253389][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 11:35:05,596 [DEBUG][       Thread-253389][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:35:05,596 [DEBUG][       Thread-253389][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:35:05,596 [DEBUG][       Thread-253389][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:35:05,596 [DEBUG][       Thread-253389][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:35:05,596 [DEBUG][       Thread-253389][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 11:35:05,596 [DEBUG][       Thread-253389][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 11:35:05,596 [DEBUG][       Thread-253389][   transport.py][1871] : client lang: <none>
2025-06-13 11:35:05,596 [DEBUG][       Thread-253389][   transport.py][1871] : server lang: <none>
2025-06-13 11:35:05,596 [DEBUG][       Thread-253389][   transport.py][1871] : kex follows: False
2025-06-13 11:35:05,596 [DEBUG][       Thread-253389][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 11:35:05,596 [DEBUG][       Thread-253389][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 11:35:05,596 [DEBUG][       Thread-253389][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 11:35:05,596 [DEBUG][       Thread-253389][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 11:35:05,596 [DEBUG][       Thread-253389][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 11:35:05,596 [DEBUG][       Thread-253389][   transport.py][1871] : Compression: none
2025-06-13 11:35:05,596 [DEBUG][       Thread-253389][   transport.py][1871] : === End of kex handshake ===
2025-06-13 11:35:05,612 [DEBUG][       Thread-253389][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 11:35:05,613 [DEBUG][       Thread-253389][   transport.py][1871] : Switch to new keys ...
2025-06-13 11:35:05,613 [DEBUG][       Thread-253389][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 11:35:05,614 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 11:35:05,614 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 11:35:05,615 [DEBUG][       Thread-253389][   transport.py][1871] : userauth is OK
2025-06-13 11:35:05,628 [ INFO][       Thread-253389][   transport.py][1871] : Authentication (password) successful!
2025-06-13 11:35:05,628 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 11:35:08,530 [DEBUG][Thread-253391 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:35:09,577 [DEBUG][Thread-253392 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:35:10,402 [DEBUG][       Thread-253389][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 11:35:10,403 [DEBUG][       Thread-253389][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 11:35:10,445 [DEBUG][       Thread-253389][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 11:35:10,445 [DEBUG][       Thread-253389][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 11:35:10,449 [DEBUG][       Thread-253389][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 11:35:10,461 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 11:35:10,461 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 11:35:10,463 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 11:35:10,465 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 11:35:10,494 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 11:35:10,496 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 11:35:10,496 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 11:35:10,497 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 11:35:10,497 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.398897 -999.00  +10.30  24.11     51   +0.60 1 1 1 1 1   888    0 10.83 40.14 ----- 25.0 24.1 65.2 30.3 14.9 -27.4 13.5 -29.4 12.9 -28.2 14.2 -27.3
2025-06-13 11:35:10,497 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 11:35:10,497 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 11:35:10,497 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.398897
2025-06-13 11:35:10,498 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 11:35:10,498 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 11:35:10,498 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 11:35:10,498 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 11:35:10,499 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 11:35:10,499 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T11:34:33', tmtdew=11.16, humidity=45.81, cloud=0.0, wind=24.0, temperature=10.44, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T09:34:24.701', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 11:35:10,499 [DEBUG][       Thread-253389][   transport.py][1871] : EOF in transport thread
2025-06-13 11:35:10,584 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 11:35:10,599 [DEBUG][       Thread-253394][   transport.py][1871] : starting thread (client mode): 0x867b6020
2025-06-13 11:35:10,599 [DEBUG][       Thread-253394][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 11:35:10,617 [DEBUG][       Thread-253394][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 11:35:10,617 [ INFO][       Thread-253394][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 11:35:10,624 [DEBUG][       Thread-253394][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 11:35:10,624 [DEBUG][       Thread-253394][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 11:35:10,624 [DEBUG][       Thread-253394][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 11:35:10,624 [DEBUG][       Thread-253394][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:35:10,624 [DEBUG][       Thread-253394][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:35:10,624 [DEBUG][       Thread-253394][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:35:10,624 [DEBUG][       Thread-253394][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:35:10,624 [DEBUG][       Thread-253394][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 11:35:10,624 [DEBUG][       Thread-253394][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 11:35:10,624 [DEBUG][       Thread-253394][   transport.py][1871] : client lang: <none>
2025-06-13 11:35:10,624 [DEBUG][       Thread-253394][   transport.py][1871] : server lang: <none>
2025-06-13 11:35:10,624 [DEBUG][       Thread-253394][   transport.py][1871] : kex follows: False
2025-06-13 11:35:10,624 [DEBUG][       Thread-253394][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 11:35:10,624 [DEBUG][       Thread-253394][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 11:35:10,624 [DEBUG][       Thread-253394][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 11:35:10,624 [DEBUG][       Thread-253394][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 11:35:10,624 [DEBUG][       Thread-253394][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 11:35:10,624 [DEBUG][       Thread-253394][   transport.py][1871] : Compression: none
2025-06-13 11:35:10,624 [DEBUG][       Thread-253394][   transport.py][1871] : === End of kex handshake ===
2025-06-13 11:35:10,687 [DEBUG][       Thread-253394][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 11:35:10,687 [DEBUG][       Thread-253394][   transport.py][1871] : Switch to new keys ...
2025-06-13 11:35:10,687 [DEBUG][       Thread-253394][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 11:35:10,687 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 11:35:10,687 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 11:35:10,750 [DEBUG][       Thread-253394][   transport.py][1871] : userauth is OK
2025-06-13 11:35:10,750 [DEBUG][       Thread-253394][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 11:35:10,750 [DEBUG][       Thread-253394][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 11:35:10,750 [DEBUG][       Thread-253394][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 11:35:10,751 [DEBUG][       Thread-253394][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 11:35:10,769 [ INFO][       Thread-253394][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 11:35:10,770 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 11:35:10,770 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 11:35:11,791 [DEBUG][       Thread-253394][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 11:35:11,791 [DEBUG][       Thread-253394][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 11:35:11,840 [DEBUG][       Thread-253394][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 11:35:11,840 [DEBUG][       Thread-253394][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 11:35:11,849 [DEBUG][       Thread-253394][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 11:35:11,858 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 11:35:11,859 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 11:35:11,867 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 11:35:11,877 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 11:35:11,877 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 11:35:11,878 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 11:35:11,886 [DEBUG][       Thread-253394][   transport.py][1871] : EOF in transport thread
2025-06-13 11:35:17,552 [DEBUG][Thread-253396 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:35:21,888 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 11:35:21,888 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 11:35:21,888 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 11:35:21,891 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 11:35:22,353 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 11, 35, 5), 11.15, 45.96, 0.0, 20.89, 10.58, 0, 0, 0, 2, 0, 0),)
2025-06-13 11:35:22,353 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 11:35:05
2025-06-13 11:35:22,435 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 11:35:22,439 [DEBUG][       Thread-253397][   transport.py][1871] : starting thread (client mode): 0x863bd4e0
2025-06-13 11:35:22,439 [DEBUG][       Thread-253397][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 11:35:22,462 [DEBUG][       Thread-253397][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 11:35:22,462 [ INFO][       Thread-253397][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 11:35:22,465 [DEBUG][       Thread-253397][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 11:35:22,465 [DEBUG][       Thread-253397][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 11:35:22,466 [DEBUG][       Thread-253397][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 11:35:22,466 [DEBUG][       Thread-253397][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:35:22,466 [DEBUG][       Thread-253397][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:35:22,466 [DEBUG][       Thread-253397][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:35:22,466 [DEBUG][       Thread-253397][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:35:22,466 [DEBUG][       Thread-253397][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 11:35:22,466 [DEBUG][       Thread-253397][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 11:35:22,466 [DEBUG][       Thread-253397][   transport.py][1871] : client lang: <none>
2025-06-13 11:35:22,466 [DEBUG][       Thread-253397][   transport.py][1871] : server lang: <none>
2025-06-13 11:35:22,466 [DEBUG][       Thread-253397][   transport.py][1871] : kex follows: False
2025-06-13 11:35:22,466 [DEBUG][       Thread-253397][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 11:35:22,466 [DEBUG][       Thread-253397][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 11:35:22,466 [DEBUG][       Thread-253397][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 11:35:22,466 [DEBUG][       Thread-253397][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 11:35:22,466 [DEBUG][       Thread-253397][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 11:35:22,466 [DEBUG][       Thread-253397][   transport.py][1871] : Compression: none
2025-06-13 11:35:22,466 [DEBUG][       Thread-253397][   transport.py][1871] : === End of kex handshake ===
2025-06-13 11:35:22,483 [DEBUG][       Thread-253397][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 11:35:22,483 [DEBUG][       Thread-253397][   transport.py][1871] : Switch to new keys ...
2025-06-13 11:35:22,484 [DEBUG][       Thread-253397][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 11:35:22,484 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 11:35:22,484 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 11:35:22,486 [DEBUG][       Thread-253397][   transport.py][1871] : userauth is OK
2025-06-13 11:35:22,499 [ INFO][       Thread-253397][   transport.py][1871] : Authentication (password) successful!
2025-06-13 11:35:22,500 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 11:35:23,158 [DEBUG][       Thread-253397][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 11:35:23,158 [DEBUG][       Thread-253397][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 11:35:23,201 [DEBUG][       Thread-253397][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 11:35:23,201 [DEBUG][       Thread-253397][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 11:35:23,205 [DEBUG][       Thread-253397][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 11:35:23,216 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 11:35:23,217 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 11:35:23,218 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 11:35:23,220 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 11:35:23,226 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 11:35:23,228 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 11:35:23,228 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 11:35:23,229 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 11:35:23,229 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.399244 -999.00  +10.30  19.94     51   +0.70 1 1 1 1 1   888    0 10.74 39.31 ----- 18.7 19.9 48.8 26.1 14.9 -27.7 13.6 -29.2 13.0 -27.8 14.4 -26.3
2025-06-13 11:35:23,229 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 11:35:23,229 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 11:35:23,229 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.399244
2025-06-13 11:35:23,229 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 11:35:23,230 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 11:35:23,230 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 11:35:23,230 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 11:35:23,230 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 11:35:23,230 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T11:35:05', tmtdew=11.15, humidity=45.96, cloud=0.0, wind=20.89, temperature=10.58, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T09:34:54.682', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 11:35:23,231 [DEBUG][       Thread-253397][   transport.py][1871] : EOF in transport thread
2025-06-13 11:35:23,318 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 11:35:23,328 [DEBUG][       Thread-253400][   transport.py][1871] : starting thread (client mode): 0x863bf880
2025-06-13 11:35:23,328 [DEBUG][       Thread-253400][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 11:35:23,350 [DEBUG][       Thread-253400][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 11:35:23,350 [ INFO][       Thread-253400][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 11:35:23,357 [DEBUG][       Thread-253400][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 11:35:23,358 [DEBUG][       Thread-253400][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 11:35:23,358 [DEBUG][       Thread-253400][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 11:35:23,358 [DEBUG][       Thread-253400][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:35:23,358 [DEBUG][       Thread-253400][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:35:23,358 [DEBUG][       Thread-253400][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:35:23,358 [DEBUG][       Thread-253400][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:35:23,358 [DEBUG][       Thread-253400][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 11:35:23,358 [DEBUG][       Thread-253400][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 11:35:23,358 [DEBUG][       Thread-253400][   transport.py][1871] : client lang: <none>
2025-06-13 11:35:23,358 [DEBUG][       Thread-253400][   transport.py][1871] : server lang: <none>
2025-06-13 11:35:23,358 [DEBUG][       Thread-253400][   transport.py][1871] : kex follows: False
2025-06-13 11:35:23,358 [DEBUG][       Thread-253400][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 11:35:23,358 [DEBUG][       Thread-253400][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 11:35:23,358 [DEBUG][       Thread-253400][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 11:35:23,358 [DEBUG][       Thread-253400][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 11:35:23,359 [DEBUG][       Thread-253400][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 11:35:23,359 [DEBUG][       Thread-253400][   transport.py][1871] : Compression: none
2025-06-13 11:35:23,359 [DEBUG][       Thread-253400][   transport.py][1871] : === End of kex handshake ===
2025-06-13 11:35:23,416 [DEBUG][       Thread-253400][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 11:35:23,416 [DEBUG][       Thread-253400][   transport.py][1871] : Switch to new keys ...
2025-06-13 11:35:23,417 [DEBUG][       Thread-253400][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 11:35:23,417 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 11:35:23,418 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 11:35:23,472 [DEBUG][       Thread-253400][   transport.py][1871] : userauth is OK
2025-06-13 11:35:23,473 [DEBUG][       Thread-253400][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 11:35:23,473 [DEBUG][       Thread-253400][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 11:35:23,473 [DEBUG][       Thread-253400][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 11:35:23,473 [DEBUG][       Thread-253400][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 11:35:23,492 [ INFO][       Thread-253400][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 11:35:23,492 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 11:35:23,492 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 11:35:24,501 [DEBUG][       Thread-253400][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 11:35:24,502 [DEBUG][       Thread-253400][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 11:35:24,552 [DEBUG][       Thread-253400][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 11:35:24,552 [DEBUG][       Thread-253400][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 11:35:24,561 [DEBUG][       Thread-253400][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 11:35:24,570 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 11:35:24,570 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 11:35:24,579 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 11:35:24,589 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 11:35:24,589 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 11:35:24,589 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 11:35:24,597 [DEBUG][       Thread-253400][   transport.py][1871] : EOF in transport thread
2025-06-13 11:35:26,573 [DEBUG][Thread-253402 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:35:28,444 [DEBUG][Thread-253403 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:35:29,524 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:35:29,525 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:35:34,600 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 11:35:34,600 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 11:35:34,600 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 11:35:34,603 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 11:35:35,079 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 11, 35, 5), 11.15, 45.96, 0.0, 20.89, 10.58, 0, 0, 0, 2, 0, 0),)
2025-06-13 11:35:35,079 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 11:35:05
2025-06-13 11:35:35,167 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 11:35:35,171 [DEBUG][       Thread-253404][   transport.py][1871] : starting thread (client mode): 0x84207fa0
2025-06-13 11:35:35,171 [DEBUG][       Thread-253404][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 11:35:35,192 [DEBUG][       Thread-253404][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 11:35:35,192 [ INFO][       Thread-253404][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 11:35:35,194 [DEBUG][       Thread-253404][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 11:35:35,194 [DEBUG][       Thread-253404][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 11:35:35,194 [DEBUG][       Thread-253404][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 11:35:35,194 [DEBUG][       Thread-253404][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:35:35,194 [DEBUG][       Thread-253404][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:35:35,194 [DEBUG][       Thread-253404][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:35:35,194 [DEBUG][       Thread-253404][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:35:35,194 [DEBUG][       Thread-253404][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 11:35:35,194 [DEBUG][       Thread-253404][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 11:35:35,194 [DEBUG][       Thread-253404][   transport.py][1871] : client lang: <none>
2025-06-13 11:35:35,194 [DEBUG][       Thread-253404][   transport.py][1871] : server lang: <none>
2025-06-13 11:35:35,194 [DEBUG][       Thread-253404][   transport.py][1871] : kex follows: False
2025-06-13 11:35:35,194 [DEBUG][       Thread-253404][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 11:35:35,194 [DEBUG][       Thread-253404][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 11:35:35,194 [DEBUG][       Thread-253404][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 11:35:35,194 [DEBUG][       Thread-253404][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 11:35:35,194 [DEBUG][       Thread-253404][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 11:35:35,194 [DEBUG][       Thread-253404][   transport.py][1871] : Compression: none
2025-06-13 11:35:35,194 [DEBUG][       Thread-253404][   transport.py][1871] : === End of kex handshake ===
2025-06-13 11:35:35,204 [DEBUG][       Thread-253404][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 11:35:35,204 [DEBUG][       Thread-253404][   transport.py][1871] : Switch to new keys ...
2025-06-13 11:35:35,204 [DEBUG][       Thread-253404][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 11:35:35,204 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 11:35:35,204 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 11:35:35,205 [DEBUG][       Thread-253404][   transport.py][1871] : userauth is OK
2025-06-13 11:35:35,217 [ INFO][       Thread-253404][   transport.py][1871] : Authentication (password) successful!
2025-06-13 11:35:35,218 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 11:35:35,607 [DEBUG][Thread-253406 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:35:35,855 [DEBUG][       Thread-253404][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 11:35:35,855 [DEBUG][       Thread-253404][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 11:35:35,896 [DEBUG][       Thread-253404][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 11:35:35,897 [DEBUG][       Thread-253404][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 11:35:35,899 [DEBUG][       Thread-253404][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 11:35:35,910 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 11:35:35,910 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 11:35:35,911 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 11:35:35,912 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 11:35:35,916 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 11:35:35,916 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 11:35:35,916 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 11:35:35,917 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 11:35:35,917 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.399244 -999.00  +10.30  19.94     51   +0.70 1 1 1 1 1   888    0 10.74 39.31 ----- 18.7 19.9 48.8 26.1 14.9 -27.7 13.6 -29.2 13.0 -27.8 14.4 -26.3
2025-06-13 11:35:35,917 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 11:35:35,917 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 11:35:35,917 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.399244
2025-06-13 11:35:35,917 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 11:35:35,917 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 11:35:35,917 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 11:35:35,917 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 11:35:35,917 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 11:35:35,917 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T11:35:05', tmtdew=11.15, humidity=45.96, cloud=0.0, wind=20.89, temperature=10.58, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T09:34:54.682', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 11:35:35,917 [DEBUG][       Thread-253404][   transport.py][1871] : EOF in transport thread
2025-06-13 11:35:35,990 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 11:35:36,005 [DEBUG][       Thread-253408][   transport.py][1871] : starting thread (client mode): 0x868c80a0
2025-06-13 11:35:36,005 [DEBUG][       Thread-253408][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 11:35:36,029 [DEBUG][       Thread-253408][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 11:35:36,029 [ INFO][       Thread-253408][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 11:35:36,039 [DEBUG][       Thread-253408][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 11:35:36,039 [DEBUG][       Thread-253408][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 11:35:36,039 [DEBUG][       Thread-253408][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 11:35:36,039 [DEBUG][       Thread-253408][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:35:36,039 [DEBUG][       Thread-253408][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:35:36,039 [DEBUG][       Thread-253408][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:35:36,039 [DEBUG][       Thread-253408][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:35:36,039 [DEBUG][       Thread-253408][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 11:35:36,039 [DEBUG][       Thread-253408][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 11:35:36,039 [DEBUG][       Thread-253408][   transport.py][1871] : client lang: <none>
2025-06-13 11:35:36,039 [DEBUG][       Thread-253408][   transport.py][1871] : server lang: <none>
2025-06-13 11:35:36,039 [DEBUG][       Thread-253408][   transport.py][1871] : kex follows: False
2025-06-13 11:35:36,039 [DEBUG][       Thread-253408][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 11:35:36,039 [DEBUG][       Thread-253408][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 11:35:36,039 [DEBUG][       Thread-253408][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 11:35:36,040 [DEBUG][       Thread-253408][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 11:35:36,040 [DEBUG][       Thread-253408][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 11:35:36,040 [DEBUG][       Thread-253408][   transport.py][1871] : Compression: none
2025-06-13 11:35:36,040 [DEBUG][       Thread-253408][   transport.py][1871] : === End of kex handshake ===
2025-06-13 11:35:36,040 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:35:36,041 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:35:36,101 [DEBUG][       Thread-253408][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 11:35:36,102 [DEBUG][       Thread-253408][   transport.py][1871] : Switch to new keys ...
2025-06-13 11:35:36,102 [DEBUG][       Thread-253408][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 11:35:36,102 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 11:35:36,102 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 11:35:36,164 [DEBUG][       Thread-253408][   transport.py][1871] : userauth is OK
2025-06-13 11:35:36,164 [DEBUG][       Thread-253408][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 11:35:36,164 [DEBUG][       Thread-253408][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 11:35:36,164 [DEBUG][       Thread-253408][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 11:35:36,164 [DEBUG][       Thread-253408][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 11:35:36,178 [ INFO][       Thread-253408][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 11:35:36,178 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 11:35:36,178 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 11:35:37,187 [DEBUG][       Thread-253408][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 11:35:37,187 [DEBUG][       Thread-253408][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 11:35:37,235 [DEBUG][       Thread-253408][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 11:35:37,235 [DEBUG][       Thread-253408][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 11:35:37,244 [DEBUG][       Thread-253408][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 11:35:37,252 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 11:35:37,252 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 11:35:37,262 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 11:35:37,274 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 11:35:37,275 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 11:35:37,275 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 11:35:37,285 [DEBUG][       Thread-253408][   transport.py][1871] : EOF in transport thread
2025-06-13 11:35:44,625 [DEBUG][Thread-253410 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:35:47,285 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 11:35:47,285 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 11:35:47,285 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 11:35:47,288 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 11:35:47,759 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 11, 35, 36), 11.1, 46.25, 0.0, 18.14, 10.68, 0, 0, 0, 2, 0, 0),)
2025-06-13 11:35:47,759 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 11:35:36
2025-06-13 11:35:47,838 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 11:35:47,843 [DEBUG][       Thread-253411][   transport.py][1871] : starting thread (client mode): 0x84205cf0
2025-06-13 11:35:47,843 [DEBUG][       Thread-253411][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 11:35:47,864 [DEBUG][       Thread-253411][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 11:35:47,864 [ INFO][       Thread-253411][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 11:35:47,868 [DEBUG][       Thread-253411][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 11:35:47,868 [DEBUG][       Thread-253411][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 11:35:47,868 [DEBUG][       Thread-253411][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 11:35:47,868 [DEBUG][       Thread-253411][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:35:47,869 [DEBUG][       Thread-253411][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:35:47,869 [DEBUG][       Thread-253411][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:35:47,869 [DEBUG][       Thread-253411][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:35:47,869 [DEBUG][       Thread-253411][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 11:35:47,869 [DEBUG][       Thread-253411][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 11:35:47,869 [DEBUG][       Thread-253411][   transport.py][1871] : client lang: <none>
2025-06-13 11:35:47,869 [DEBUG][       Thread-253411][   transport.py][1871] : server lang: <none>
2025-06-13 11:35:47,869 [DEBUG][       Thread-253411][   transport.py][1871] : kex follows: False
2025-06-13 11:35:47,869 [DEBUG][       Thread-253411][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 11:35:47,869 [DEBUG][       Thread-253411][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 11:35:47,869 [DEBUG][       Thread-253411][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 11:35:47,869 [DEBUG][       Thread-253411][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 11:35:47,869 [DEBUG][       Thread-253411][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 11:35:47,869 [DEBUG][       Thread-253411][   transport.py][1871] : Compression: none
2025-06-13 11:35:47,869 [DEBUG][       Thread-253411][   transport.py][1871] : === End of kex handshake ===
2025-06-13 11:35:47,888 [DEBUG][       Thread-253411][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 11:35:47,889 [DEBUG][       Thread-253411][   transport.py][1871] : Switch to new keys ...
2025-06-13 11:35:47,889 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 11:35:47,889 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 11:35:47,890 [DEBUG][       Thread-253411][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 11:35:47,891 [DEBUG][       Thread-253411][   transport.py][1871] : userauth is OK
2025-06-13 11:35:47,904 [ INFO][       Thread-253411][   transport.py][1871] : Authentication (password) successful!
2025-06-13 11:35:47,905 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 11:35:48,559 [DEBUG][       Thread-253411][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 11:35:48,559 [DEBUG][       Thread-253411][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 11:35:48,601 [DEBUG][       Thread-253411][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 11:35:48,601 [DEBUG][       Thread-253411][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 11:35:48,604 [DEBUG][       Thread-253411][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 11:35:48,617 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 11:35:48,618 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 11:35:48,619 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 11:35:48,621 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 11:35:48,627 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 11:35:48,629 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 11:35:48,629 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 11:35:48,630 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 11:35:48,630 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.399244 -999.00  +10.30  19.94     51   +0.70 1 1 1 1 1   888    0 10.74 39.31 ----- 18.7 19.9 48.8 26.1 14.9 -27.7 13.6 -29.2 13.0 -27.8 14.4 -26.3
2025-06-13 11:35:48,630 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 11:35:48,630 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 11:35:48,630 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.399244
2025-06-13 11:35:48,631 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 11:35:48,631 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 11:35:48,631 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 11:35:48,631 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 11:35:48,631 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 11:35:48,632 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T11:35:36', tmtdew=11.1, humidity=46.25, cloud=0.0, wind=18.14, temperature=10.68, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T09:34:54.682', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 11:35:48,633 [DEBUG][       Thread-253411][   transport.py][1871] : EOF in transport thread
2025-06-13 11:35:48,715 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 11:35:48,729 [DEBUG][       Thread-253414][   transport.py][1871] : starting thread (client mode): 0x867b6f80
2025-06-13 11:35:48,729 [DEBUG][       Thread-253414][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 11:35:48,750 [DEBUG][       Thread-253414][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 11:35:48,750 [ INFO][       Thread-253414][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 11:35:48,758 [DEBUG][       Thread-253414][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 11:35:48,758 [DEBUG][       Thread-253414][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 11:35:48,758 [DEBUG][       Thread-253414][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 11:35:48,758 [DEBUG][       Thread-253414][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:35:48,758 [DEBUG][       Thread-253414][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:35:48,758 [DEBUG][       Thread-253414][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:35:48,758 [DEBUG][       Thread-253414][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:35:48,758 [DEBUG][       Thread-253414][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 11:35:48,759 [DEBUG][       Thread-253414][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 11:35:48,759 [DEBUG][       Thread-253414][   transport.py][1871] : client lang: <none>
2025-06-13 11:35:48,759 [DEBUG][       Thread-253414][   transport.py][1871] : server lang: <none>
2025-06-13 11:35:48,759 [DEBUG][       Thread-253414][   transport.py][1871] : kex follows: False
2025-06-13 11:35:48,759 [DEBUG][       Thread-253414][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 11:35:48,759 [DEBUG][       Thread-253414][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 11:35:48,759 [DEBUG][       Thread-253414][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 11:35:48,759 [DEBUG][       Thread-253414][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 11:35:48,759 [DEBUG][       Thread-253414][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 11:35:48,759 [DEBUG][       Thread-253414][   transport.py][1871] : Compression: none
2025-06-13 11:35:48,759 [DEBUG][       Thread-253414][   transport.py][1871] : === End of kex handshake ===
2025-06-13 11:35:48,823 [DEBUG][       Thread-253414][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 11:35:48,824 [DEBUG][       Thread-253414][   transport.py][1871] : Switch to new keys ...
2025-06-13 11:35:48,824 [DEBUG][       Thread-253414][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 11:35:48,825 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 11:35:48,825 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 11:35:48,881 [DEBUG][       Thread-253414][   transport.py][1871] : userauth is OK
2025-06-13 11:35:48,882 [DEBUG][       Thread-253414][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 11:35:48,882 [DEBUG][       Thread-253414][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 11:35:48,882 [DEBUG][       Thread-253414][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 11:35:48,882 [DEBUG][       Thread-253414][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 11:35:48,901 [ INFO][       Thread-253414][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 11:35:48,901 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 11:35:48,902 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 11:35:49,973 [DEBUG][       Thread-253414][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 11:35:49,973 [DEBUG][       Thread-253414][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 11:35:50,026 [DEBUG][       Thread-253414][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 11:35:50,026 [DEBUG][       Thread-253414][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 11:35:50,036 [DEBUG][       Thread-253414][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 11:35:50,046 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 11:35:50,047 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 11:35:50,058 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 11:35:50,068 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 11:35:50,068 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 11:35:50,068 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 11:35:50,077 [DEBUG][       Thread-253414][   transport.py][1871] : EOF in transport thread
2025-06-13 11:35:53,648 [DEBUG][Thread-253416 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:36:00,073 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 11:36:00,073 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 11:36:00,074 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 11:36:00,076 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 11:36:00,541 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 11, 35, 36), 11.1, 46.25, 0.0, 18.14, 10.68, 0, 0, 0, 2, 0, 0),)
2025-06-13 11:36:00,542 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 11:35:36
2025-06-13 11:36:00,621 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 11:36:00,625 [DEBUG][       Thread-253417][   transport.py][1871] : starting thread (client mode): 0x84207460
2025-06-13 11:36:00,625 [DEBUG][       Thread-253417][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 11:36:00,644 [DEBUG][       Thread-253417][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 11:36:00,644 [ INFO][       Thread-253417][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 11:36:00,647 [DEBUG][       Thread-253417][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 11:36:00,648 [DEBUG][       Thread-253417][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 11:36:00,648 [DEBUG][       Thread-253417][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 11:36:00,648 [DEBUG][       Thread-253417][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:36:00,648 [DEBUG][       Thread-253417][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:36:00,648 [DEBUG][       Thread-253417][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:36:00,648 [DEBUG][       Thread-253417][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:36:00,648 [DEBUG][       Thread-253417][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 11:36:00,648 [DEBUG][       Thread-253417][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 11:36:00,648 [DEBUG][       Thread-253417][   transport.py][1871] : client lang: <none>
2025-06-13 11:36:00,648 [DEBUG][       Thread-253417][   transport.py][1871] : server lang: <none>
2025-06-13 11:36:00,648 [DEBUG][       Thread-253417][   transport.py][1871] : kex follows: False
2025-06-13 11:36:00,648 [DEBUG][       Thread-253417][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 11:36:00,648 [DEBUG][       Thread-253417][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 11:36:00,648 [DEBUG][       Thread-253417][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 11:36:00,648 [DEBUG][       Thread-253417][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 11:36:00,648 [DEBUG][       Thread-253417][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 11:36:00,648 [DEBUG][       Thread-253417][   transport.py][1871] : Compression: none
2025-06-13 11:36:00,648 [DEBUG][       Thread-253417][   transport.py][1871] : === End of kex handshake ===
2025-06-13 11:36:00,664 [DEBUG][       Thread-253417][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 11:36:00,665 [DEBUG][       Thread-253417][   transport.py][1871] : Switch to new keys ...
2025-06-13 11:36:00,665 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 11:36:00,666 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 11:36:00,666 [DEBUG][       Thread-253417][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 11:36:00,666 [DEBUG][       Thread-253417][   transport.py][1871] : userauth is OK
2025-06-13 11:36:00,691 [ INFO][       Thread-253417][   transport.py][1871] : Authentication (password) successful!
2025-06-13 11:36:00,691 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 11:36:01,280 [DEBUG][       Thread-253417][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 11:36:01,280 [DEBUG][       Thread-253417][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 11:36:01,321 [DEBUG][       Thread-253417][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 11:36:01,321 [DEBUG][       Thread-253417][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 11:36:01,324 [DEBUG][       Thread-253417][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 11:36:01,336 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 11:36:01,336 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 11:36:01,338 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 11:36:01,340 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 11:36:01,345 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 11:36:01,348 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 11:36:01,348 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 11:36:01,349 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 11:36:01,349 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.399592 -999.00  +10.50  29.17     50   +0.70 1 1 1 1 1   888    0 10.58 36.46 ----- 25.2 29.2 61.4 33.2 14.9 -27.6 13.6 -29.4 13.1 -28.5 14.3 -26.5
2025-06-13 11:36:01,349 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 11:36:01,349 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 11:36:01,349 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.399592
2025-06-13 11:36:01,349 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 11:36:01,350 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 11:36:01,350 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 11:36:01,350 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 11:36:01,350 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 11:36:01,350 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T11:35:36', tmtdew=11.1, humidity=46.25, cloud=0.0, wind=18.14, temperature=10.68, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T09:35:24.749', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 11:36:01,351 [DEBUG][       Thread-253417][   transport.py][1871] : EOF in transport thread
2025-06-13 11:36:01,434 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 11:36:01,445 [DEBUG][       Thread-253420][   transport.py][1871] : starting thread (client mode): 0x867ff0d0
2025-06-13 11:36:01,445 [DEBUG][       Thread-253420][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 11:36:01,462 [DEBUG][       Thread-253420][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 11:36:01,462 [ INFO][       Thread-253420][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 11:36:01,475 [DEBUG][       Thread-253420][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 11:36:01,475 [DEBUG][       Thread-253420][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 11:36:01,476 [DEBUG][       Thread-253420][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 11:36:01,476 [DEBUG][       Thread-253420][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:36:01,476 [DEBUG][       Thread-253420][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:36:01,476 [DEBUG][       Thread-253420][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:36:01,476 [DEBUG][       Thread-253420][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:36:01,476 [DEBUG][       Thread-253420][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 11:36:01,476 [DEBUG][       Thread-253420][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 11:36:01,476 [DEBUG][       Thread-253420][   transport.py][1871] : client lang: <none>
2025-06-13 11:36:01,476 [DEBUG][       Thread-253420][   transport.py][1871] : server lang: <none>
2025-06-13 11:36:01,476 [DEBUG][       Thread-253420][   transport.py][1871] : kex follows: False
2025-06-13 11:36:01,476 [DEBUG][       Thread-253420][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 11:36:01,476 [DEBUG][       Thread-253420][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 11:36:01,476 [DEBUG][       Thread-253420][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 11:36:01,476 [DEBUG][       Thread-253420][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 11:36:01,476 [DEBUG][       Thread-253420][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 11:36:01,477 [DEBUG][       Thread-253420][   transport.py][1871] : Compression: none
2025-06-13 11:36:01,477 [DEBUG][       Thread-253420][   transport.py][1871] : === End of kex handshake ===
2025-06-13 11:36:01,533 [DEBUG][       Thread-253420][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 11:36:01,533 [DEBUG][       Thread-253420][   transport.py][1871] : Switch to new keys ...
2025-06-13 11:36:01,534 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 11:36:01,534 [DEBUG][       Thread-253420][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 11:36:01,535 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 11:36:01,588 [DEBUG][       Thread-253420][   transport.py][1871] : userauth is OK
2025-06-13 11:36:01,589 [DEBUG][       Thread-253420][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 11:36:01,589 [DEBUG][       Thread-253420][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 11:36:01,589 [DEBUG][       Thread-253420][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 11:36:01,589 [DEBUG][       Thread-253420][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 11:36:01,608 [ INFO][       Thread-253420][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 11:36:01,608 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 11:36:01,609 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 11:36:02,631 [DEBUG][       Thread-253420][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 11:36:02,631 [DEBUG][       Thread-253420][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 11:36:02,680 [DEBUG][       Thread-253420][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 11:36:02,681 [DEBUG][       Thread-253420][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 11:36:02,684 [DEBUG][Thread-253422 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:36:02,693 [DEBUG][       Thread-253420][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 11:36:02,704 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 11:36:02,705 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 11:36:02,713 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 11:36:02,722 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 11:36:02,722 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 11:36:02,723 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 11:36:02,730 [DEBUG][       Thread-253420][   transport.py][1871] : EOF in transport thread
2025-06-13 11:36:09,623 [DEBUG][Thread-253423 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:36:11,706 [DEBUG][Thread-253424 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:36:12,733 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 11:36:12,733 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 11:36:12,734 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 11:36:12,736 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 11:36:13,205 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 11, 36, 8), 11.09, 46.27, 0.0, 18.88, 10.69, 0, 0, 0, 2, 0, 0),)
2025-06-13 11:36:13,205 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 11:36:08
2025-06-13 11:36:13,286 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 11:36:13,291 [DEBUG][       Thread-253425][   transport.py][1871] : starting thread (client mode): 0x8636be80
2025-06-13 11:36:13,291 [DEBUG][       Thread-253425][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 11:36:13,311 [DEBUG][       Thread-253425][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 11:36:13,311 [ INFO][       Thread-253425][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 11:36:13,315 [DEBUG][       Thread-253425][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 11:36:13,315 [DEBUG][       Thread-253425][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 11:36:13,315 [DEBUG][       Thread-253425][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 11:36:13,315 [DEBUG][       Thread-253425][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:36:13,315 [DEBUG][       Thread-253425][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:36:13,315 [DEBUG][       Thread-253425][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:36:13,315 [DEBUG][       Thread-253425][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:36:13,315 [DEBUG][       Thread-253425][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 11:36:13,315 [DEBUG][       Thread-253425][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 11:36:13,315 [DEBUG][       Thread-253425][   transport.py][1871] : client lang: <none>
2025-06-13 11:36:13,315 [DEBUG][       Thread-253425][   transport.py][1871] : server lang: <none>
2025-06-13 11:36:13,315 [DEBUG][       Thread-253425][   transport.py][1871] : kex follows: False
2025-06-13 11:36:13,315 [DEBUG][       Thread-253425][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 11:36:13,315 [DEBUG][       Thread-253425][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 11:36:13,315 [DEBUG][       Thread-253425][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 11:36:13,315 [DEBUG][       Thread-253425][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 11:36:13,315 [DEBUG][       Thread-253425][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 11:36:13,315 [DEBUG][       Thread-253425][   transport.py][1871] : Compression: none
2025-06-13 11:36:13,315 [DEBUG][       Thread-253425][   transport.py][1871] : === End of kex handshake ===
2025-06-13 11:36:13,331 [DEBUG][       Thread-253425][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 11:36:13,331 [DEBUG][       Thread-253425][   transport.py][1871] : Switch to new keys ...
2025-06-13 11:36:13,331 [DEBUG][       Thread-253425][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 11:36:13,331 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 11:36:13,331 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 11:36:13,332 [DEBUG][       Thread-253425][   transport.py][1871] : userauth is OK
2025-06-13 11:36:13,344 [ INFO][       Thread-253425][   transport.py][1871] : Authentication (password) successful!
2025-06-13 11:36:13,344 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 11:36:13,978 [DEBUG][       Thread-253425][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 11:36:13,978 [DEBUG][       Thread-253425][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 11:36:14,020 [DEBUG][       Thread-253425][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 11:36:14,021 [DEBUG][       Thread-253425][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 11:36:14,023 [DEBUG][       Thread-253425][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 11:36:14,035 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 11:36:14,035 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 11:36:14,037 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 11:36:14,037 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 11:36:14,040 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 11:36:14,041 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 11:36:14,041 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 11:36:14,041 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 11:36:14,041 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.399592 -999.00  +10.50  29.17     50   +0.70 1 1 1 1 1   888    0 10.58 36.46 ----- 25.2 29.2 61.4 33.2 14.9 -27.6 13.6 -29.4 13.1 -28.5 14.3 -26.5
2025-06-13 11:36:14,041 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 11:36:14,041 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 11:36:14,041 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.399592
2025-06-13 11:36:14,041 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 11:36:14,042 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 11:36:14,042 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 11:36:14,042 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 11:36:14,042 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 11:36:14,042 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T11:36:08', tmtdew=11.09, humidity=46.27, cloud=0.0, wind=18.88, temperature=10.69, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T09:35:24.749', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 11:36:14,043 [DEBUG][       Thread-253425][   transport.py][1871] : EOF in transport thread
2025-06-13 11:36:14,116 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 11:36:14,127 [DEBUG][       Thread-253428][   transport.py][1871] : starting thread (client mode): 0x84204bb0
2025-06-13 11:36:14,127 [DEBUG][       Thread-253428][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 11:36:14,142 [DEBUG][       Thread-253428][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 11:36:14,142 [ INFO][       Thread-253428][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 11:36:14,149 [DEBUG][       Thread-253428][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 11:36:14,149 [DEBUG][       Thread-253428][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 11:36:14,149 [DEBUG][       Thread-253428][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 11:36:14,149 [DEBUG][       Thread-253428][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:36:14,149 [DEBUG][       Thread-253428][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:36:14,149 [DEBUG][       Thread-253428][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:36:14,149 [DEBUG][       Thread-253428][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:36:14,149 [DEBUG][       Thread-253428][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 11:36:14,149 [DEBUG][       Thread-253428][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 11:36:14,149 [DEBUG][       Thread-253428][   transport.py][1871] : client lang: <none>
2025-06-13 11:36:14,149 [DEBUG][       Thread-253428][   transport.py][1871] : server lang: <none>
2025-06-13 11:36:14,149 [DEBUG][       Thread-253428][   transport.py][1871] : kex follows: False
2025-06-13 11:36:14,149 [DEBUG][       Thread-253428][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 11:36:14,149 [DEBUG][       Thread-253428][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 11:36:14,149 [DEBUG][       Thread-253428][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 11:36:14,149 [DEBUG][       Thread-253428][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 11:36:14,149 [DEBUG][       Thread-253428][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 11:36:14,149 [DEBUG][       Thread-253428][   transport.py][1871] : Compression: none
2025-06-13 11:36:14,149 [DEBUG][       Thread-253428][   transport.py][1871] : === End of kex handshake ===
2025-06-13 11:36:14,206 [DEBUG][       Thread-253428][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 11:36:14,207 [DEBUG][       Thread-253428][   transport.py][1871] : Switch to new keys ...
2025-06-13 11:36:14,207 [DEBUG][       Thread-253428][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 11:36:14,207 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 11:36:14,207 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 11:36:14,264 [DEBUG][       Thread-253428][   transport.py][1871] : userauth is OK
2025-06-13 11:36:14,264 [DEBUG][       Thread-253428][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 11:36:14,264 [DEBUG][       Thread-253428][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 11:36:14,264 [DEBUG][       Thread-253428][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 11:36:14,264 [DEBUG][       Thread-253428][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 11:36:14,280 [ INFO][       Thread-253428][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 11:36:14,280 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 11:36:14,280 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 11:36:15,306 [DEBUG][       Thread-253428][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 11:36:15,306 [DEBUG][       Thread-253428][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 11:36:15,355 [DEBUG][       Thread-253428][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 11:36:15,355 [DEBUG][       Thread-253428][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 11:36:15,364 [DEBUG][       Thread-253428][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 11:36:15,372 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 11:36:15,372 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 11:36:15,380 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 11:36:15,388 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 11:36:15,388 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 11:36:15,388 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 11:36:15,396 [DEBUG][       Thread-253428][   transport.py][1871] : EOF in transport thread
2025-06-13 11:36:20,725 [DEBUG][Thread-253430 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:36:25,396 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 11:36:25,396 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 11:36:25,396 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 11:36:25,397 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 11:36:25,850 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 11, 36, 8), 11.09, 46.27, 0.0, 18.88, 10.69, 0, 0, 0, 2, 0, 0),)
2025-06-13 11:36:25,850 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 11:36:08
2025-06-13 11:36:25,930 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 11:36:25,934 [DEBUG][       Thread-253431][   transport.py][1871] : starting thread (client mode): 0x842079d0
2025-06-13 11:36:25,934 [DEBUG][       Thread-253431][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 11:36:25,946 [DEBUG][       Thread-253431][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 11:36:25,946 [ INFO][       Thread-253431][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 11:36:25,948 [DEBUG][       Thread-253431][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 11:36:25,948 [DEBUG][       Thread-253431][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 11:36:25,948 [DEBUG][       Thread-253431][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 11:36:25,948 [DEBUG][       Thread-253431][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:36:25,948 [DEBUG][       Thread-253431][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:36:25,948 [DEBUG][       Thread-253431][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:36:25,948 [DEBUG][       Thread-253431][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:36:25,948 [DEBUG][       Thread-253431][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 11:36:25,948 [DEBUG][       Thread-253431][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 11:36:25,948 [DEBUG][       Thread-253431][   transport.py][1871] : client lang: <none>
2025-06-13 11:36:25,948 [DEBUG][       Thread-253431][   transport.py][1871] : server lang: <none>
2025-06-13 11:36:25,948 [DEBUG][       Thread-253431][   transport.py][1871] : kex follows: False
2025-06-13 11:36:25,948 [DEBUG][       Thread-253431][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 11:36:25,948 [DEBUG][       Thread-253431][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 11:36:25,948 [DEBUG][       Thread-253431][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 11:36:25,948 [DEBUG][       Thread-253431][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 11:36:25,948 [DEBUG][       Thread-253431][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 11:36:25,948 [DEBUG][       Thread-253431][   transport.py][1871] : Compression: none
2025-06-13 11:36:25,948 [DEBUG][       Thread-253431][   transport.py][1871] : === End of kex handshake ===
2025-06-13 11:36:25,965 [DEBUG][       Thread-253431][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 11:36:25,965 [DEBUG][       Thread-253431][   transport.py][1871] : Switch to new keys ...
2025-06-13 11:36:25,965 [DEBUG][       Thread-253431][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 11:36:25,966 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 11:36:25,966 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 11:36:25,967 [DEBUG][       Thread-253431][   transport.py][1871] : userauth is OK
2025-06-13 11:36:25,991 [ INFO][       Thread-253431][   transport.py][1871] : Authentication (password) successful!
2025-06-13 11:36:25,992 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 11:36:26,594 [DEBUG][       Thread-253431][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 11:36:26,594 [DEBUG][       Thread-253431][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 11:36:26,636 [DEBUG][       Thread-253431][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 11:36:26,637 [DEBUG][       Thread-253431][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 11:36:26,639 [DEBUG][       Thread-253431][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 11:36:26,647 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 11:36:26,647 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 11:36:26,651 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 11:36:26,652 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 11:36:26,656 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 11:36:26,657 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 11:36:26,658 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 11:36:26,658 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 11:36:26,658 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.399939 -999.00  +10.50  19.94     50   +0.70 1 1 1 1 1   888    0 10.51 32.50 ----- 20.1 19.9 48.4 29.3 14.9 -27.7 13.6 -29.4 13.1 -27.9 14.4 -26.4
2025-06-13 11:36:26,658 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 11:36:26,659 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 11:36:26,659 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.399939
2025-06-13 11:36:26,659 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 11:36:26,660 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 11:36:26,660 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 11:36:26,660 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 11:36:26,660 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 11:36:26,660 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T11:36:08', tmtdew=11.09, humidity=46.27, cloud=0.0, wind=18.88, temperature=10.69, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T09:35:54.730', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 11:36:26,661 [DEBUG][       Thread-253431][   transport.py][1871] : EOF in transport thread
2025-06-13 11:36:26,740 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 11:36:26,754 [DEBUG][       Thread-253434][   transport.py][1871] : starting thread (client mode): 0x867b50f0
2025-06-13 11:36:26,754 [DEBUG][       Thread-253434][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 11:36:26,771 [DEBUG][       Thread-253434][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 11:36:26,771 [ INFO][       Thread-253434][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 11:36:26,779 [DEBUG][       Thread-253434][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 11:36:26,779 [DEBUG][       Thread-253434][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 11:36:26,779 [DEBUG][       Thread-253434][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 11:36:26,779 [DEBUG][       Thread-253434][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:36:26,779 [DEBUG][       Thread-253434][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:36:26,779 [DEBUG][       Thread-253434][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:36:26,779 [DEBUG][       Thread-253434][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:36:26,779 [DEBUG][       Thread-253434][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 11:36:26,779 [DEBUG][       Thread-253434][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 11:36:26,779 [DEBUG][       Thread-253434][   transport.py][1871] : client lang: <none>
2025-06-13 11:36:26,779 [DEBUG][       Thread-253434][   transport.py][1871] : server lang: <none>
2025-06-13 11:36:26,779 [DEBUG][       Thread-253434][   transport.py][1871] : kex follows: False
2025-06-13 11:36:26,779 [DEBUG][       Thread-253434][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 11:36:26,779 [DEBUG][       Thread-253434][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 11:36:26,780 [DEBUG][       Thread-253434][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 11:36:26,780 [DEBUG][       Thread-253434][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 11:36:26,780 [DEBUG][       Thread-253434][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 11:36:26,780 [DEBUG][       Thread-253434][   transport.py][1871] : Compression: none
2025-06-13 11:36:26,780 [DEBUG][       Thread-253434][   transport.py][1871] : === End of kex handshake ===
2025-06-13 11:36:26,836 [DEBUG][       Thread-253434][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 11:36:26,837 [DEBUG][       Thread-253434][   transport.py][1871] : Switch to new keys ...
2025-06-13 11:36:26,837 [DEBUG][       Thread-253434][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 11:36:26,837 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 11:36:26,838 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 11:36:26,892 [DEBUG][       Thread-253434][   transport.py][1871] : userauth is OK
2025-06-13 11:36:26,892 [DEBUG][       Thread-253434][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 11:36:26,892 [DEBUG][       Thread-253434][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 11:36:26,892 [DEBUG][       Thread-253434][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 11:36:26,893 [DEBUG][       Thread-253434][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 11:36:26,911 [ INFO][       Thread-253434][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 11:36:26,911 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 11:36:26,912 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 11:36:27,967 [DEBUG][       Thread-253434][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 11:36:27,968 [DEBUG][       Thread-253434][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 11:36:28,016 [DEBUG][       Thread-253434][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 11:36:28,016 [DEBUG][       Thread-253434][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 11:36:28,025 [DEBUG][       Thread-253434][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 11:36:28,034 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 11:36:28,034 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 11:36:28,046 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 11:36:28,054 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 11:36:28,055 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 11:36:28,055 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 11:36:28,063 [DEBUG][       Thread-253434][   transport.py][1871] : EOF in transport thread
2025-06-13 11:36:29,605 [DEBUG][Thread-253436 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:36:29,756 [DEBUG][Thread-253437 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:36:30,701 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:36:30,702 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:36:36,179 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:36:36,180 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:36:38,066 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 11:36:38,066 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 11:36:38,066 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 11:36:38,069 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 11:36:38,517 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 11, 36, 8), 11.09, 46.27, 0.0, 18.88, 10.69, 0, 0, 0, 2, 0, 0),)
2025-06-13 11:36:38,517 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 11:36:08
2025-06-13 11:36:38,597 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 11:36:38,603 [DEBUG][       Thread-253438][   transport.py][1871] : starting thread (client mode): 0x84207310
2025-06-13 11:36:38,603 [DEBUG][       Thread-253438][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 11:36:38,624 [DEBUG][       Thread-253438][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 11:36:38,625 [ INFO][       Thread-253438][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 11:36:38,628 [DEBUG][       Thread-253438][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 11:36:38,628 [DEBUG][       Thread-253438][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 11:36:38,628 [DEBUG][       Thread-253438][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 11:36:38,628 [DEBUG][       Thread-253438][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:36:38,628 [DEBUG][       Thread-253438][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:36:38,628 [DEBUG][       Thread-253438][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:36:38,628 [DEBUG][       Thread-253438][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:36:38,628 [DEBUG][       Thread-253438][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 11:36:38,628 [DEBUG][       Thread-253438][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 11:36:38,628 [DEBUG][       Thread-253438][   transport.py][1871] : client lang: <none>
2025-06-13 11:36:38,628 [DEBUG][       Thread-253438][   transport.py][1871] : server lang: <none>
2025-06-13 11:36:38,628 [DEBUG][       Thread-253438][   transport.py][1871] : kex follows: False
2025-06-13 11:36:38,628 [DEBUG][       Thread-253438][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 11:36:38,628 [DEBUG][       Thread-253438][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 11:36:38,628 [DEBUG][       Thread-253438][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 11:36:38,629 [DEBUG][       Thread-253438][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 11:36:38,629 [DEBUG][       Thread-253438][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 11:36:38,629 [DEBUG][       Thread-253438][   transport.py][1871] : Compression: none
2025-06-13 11:36:38,629 [DEBUG][       Thread-253438][   transport.py][1871] : === End of kex handshake ===
2025-06-13 11:36:38,638 [DEBUG][       Thread-253438][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 11:36:38,638 [DEBUG][       Thread-253438][   transport.py][1871] : Switch to new keys ...
2025-06-13 11:36:38,639 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 11:36:38,639 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 11:36:38,639 [DEBUG][       Thread-253438][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 11:36:38,640 [DEBUG][       Thread-253438][   transport.py][1871] : userauth is OK
2025-06-13 11:36:38,666 [ INFO][       Thread-253438][   transport.py][1871] : Authentication (password) successful!
2025-06-13 11:36:38,667 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 11:36:38,777 [DEBUG][Thread-253440 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:36:39,315 [DEBUG][       Thread-253438][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 11:36:39,315 [DEBUG][       Thread-253438][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 11:36:39,357 [DEBUG][       Thread-253438][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 11:36:39,357 [DEBUG][       Thread-253438][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 11:36:39,361 [DEBUG][       Thread-253438][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 11:36:39,374 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 11:36:39,374 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 11:36:39,376 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 11:36:39,378 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 11:36:39,385 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 11:36:39,387 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 11:36:39,387 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 11:36:39,388 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 11:36:39,388 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.399939 -999.00  +10.50  19.94     50   +0.70 1 1 1 1 1   888    0 10.51 32.50 ----- 20.1 19.9 48.4 29.3 14.9 -27.7 13.6 -29.4 13.1 -27.9 14.4 -26.4
2025-06-13 11:36:39,388 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 11:36:39,388 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 11:36:39,388 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.399939
2025-06-13 11:36:39,389 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 11:36:39,390 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 11:36:39,390 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 11:36:39,390 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 11:36:39,390 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 11:36:39,390 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T11:36:08', tmtdew=11.09, humidity=46.27, cloud=0.0, wind=18.88, temperature=10.69, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T09:35:54.730', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 11:36:39,391 [DEBUG][       Thread-253438][   transport.py][1871] : EOF in transport thread
2025-06-13 11:36:39,473 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 11:36:39,485 [DEBUG][       Thread-253442][   transport.py][1871] : starting thread (client mode): 0x863a5e70
2025-06-13 11:36:39,485 [DEBUG][       Thread-253442][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 11:36:39,502 [DEBUG][       Thread-253442][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 11:36:39,502 [ INFO][       Thread-253442][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 11:36:39,509 [DEBUG][       Thread-253442][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 11:36:39,509 [DEBUG][       Thread-253442][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 11:36:39,509 [DEBUG][       Thread-253442][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 11:36:39,509 [DEBUG][       Thread-253442][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:36:39,509 [DEBUG][       Thread-253442][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:36:39,510 [DEBUG][       Thread-253442][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:36:39,510 [DEBUG][       Thread-253442][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:36:39,510 [DEBUG][       Thread-253442][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 11:36:39,510 [DEBUG][       Thread-253442][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 11:36:39,510 [DEBUG][       Thread-253442][   transport.py][1871] : client lang: <none>
2025-06-13 11:36:39,510 [DEBUG][       Thread-253442][   transport.py][1871] : server lang: <none>
2025-06-13 11:36:39,510 [DEBUG][       Thread-253442][   transport.py][1871] : kex follows: False
2025-06-13 11:36:39,510 [DEBUG][       Thread-253442][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 11:36:39,510 [DEBUG][       Thread-253442][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 11:36:39,510 [DEBUG][       Thread-253442][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 11:36:39,510 [DEBUG][       Thread-253442][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 11:36:39,510 [DEBUG][       Thread-253442][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 11:36:39,510 [DEBUG][       Thread-253442][   transport.py][1871] : Compression: none
2025-06-13 11:36:39,510 [DEBUG][       Thread-253442][   transport.py][1871] : === End of kex handshake ===
2025-06-13 11:36:39,568 [DEBUG][       Thread-253442][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 11:36:39,569 [DEBUG][       Thread-253442][   transport.py][1871] : Switch to new keys ...
2025-06-13 11:36:39,569 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 11:36:39,570 [DEBUG][       Thread-253442][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 11:36:39,571 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 11:36:39,624 [DEBUG][       Thread-253442][   transport.py][1871] : userauth is OK
2025-06-13 11:36:39,625 [DEBUG][       Thread-253442][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 11:36:39,625 [DEBUG][       Thread-253442][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 11:36:39,625 [DEBUG][       Thread-253442][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 11:36:39,625 [DEBUG][       Thread-253442][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 11:36:39,644 [ INFO][       Thread-253442][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 11:36:39,645 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 11:36:39,645 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 11:36:40,674 [DEBUG][       Thread-253442][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 11:36:40,674 [DEBUG][       Thread-253442][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 11:36:40,724 [DEBUG][       Thread-253442][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 11:36:40,724 [DEBUG][       Thread-253442][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 11:36:40,734 [DEBUG][       Thread-253442][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 11:36:40,743 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 11:36:40,743 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 11:36:40,752 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 11:36:40,761 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 11:36:40,762 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 11:36:40,762 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 11:36:40,770 [DEBUG][       Thread-253442][   transport.py][1871] : EOF in transport thread
2025-06-13 11:36:47,796 [DEBUG][Thread-253444 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:36:50,770 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 11:36:50,770 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 11:36:50,771 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 11:36:50,773 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 11:36:51,237 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 11, 36, 40), 11.25, 45.77, 0.0, 20.82, 10.74, 0, 0, 0, 2, 0, 0),)
2025-06-13 11:36:51,237 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 11:36:40
2025-06-13 11:36:51,321 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 11:36:51,325 [DEBUG][       Thread-253445][   transport.py][1871] : starting thread (client mode): 0x84206590
2025-06-13 11:36:51,325 [DEBUG][       Thread-253445][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 11:36:51,345 [DEBUG][       Thread-253445][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 11:36:51,345 [ INFO][       Thread-253445][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 11:36:51,347 [DEBUG][       Thread-253445][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 11:36:51,347 [DEBUG][       Thread-253445][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 11:36:51,347 [DEBUG][       Thread-253445][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 11:36:51,347 [DEBUG][       Thread-253445][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:36:51,347 [DEBUG][       Thread-253445][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:36:51,347 [DEBUG][       Thread-253445][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:36:51,347 [DEBUG][       Thread-253445][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:36:51,347 [DEBUG][       Thread-253445][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 11:36:51,347 [DEBUG][       Thread-253445][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 11:36:51,347 [DEBUG][       Thread-253445][   transport.py][1871] : client lang: <none>
2025-06-13 11:36:51,347 [DEBUG][       Thread-253445][   transport.py][1871] : server lang: <none>
2025-06-13 11:36:51,347 [DEBUG][       Thread-253445][   transport.py][1871] : kex follows: False
2025-06-13 11:36:51,347 [DEBUG][       Thread-253445][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 11:36:51,347 [DEBUG][       Thread-253445][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 11:36:51,347 [DEBUG][       Thread-253445][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 11:36:51,347 [DEBUG][       Thread-253445][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 11:36:51,348 [DEBUG][       Thread-253445][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 11:36:51,348 [DEBUG][       Thread-253445][   transport.py][1871] : Compression: none
2025-06-13 11:36:51,348 [DEBUG][       Thread-253445][   transport.py][1871] : === End of kex handshake ===
2025-06-13 11:36:51,359 [DEBUG][       Thread-253445][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 11:36:51,359 [DEBUG][       Thread-253445][   transport.py][1871] : Switch to new keys ...
2025-06-13 11:36:51,360 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 11:36:51,360 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 11:36:51,361 [DEBUG][       Thread-253445][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 11:36:51,361 [DEBUG][       Thread-253445][   transport.py][1871] : userauth is OK
2025-06-13 11:36:51,375 [ INFO][       Thread-253445][   transport.py][1871] : Authentication (password) successful!
2025-06-13 11:36:51,376 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 11:36:51,965 [DEBUG][       Thread-253445][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 11:36:51,965 [DEBUG][       Thread-253445][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 11:36:52,008 [DEBUG][       Thread-253445][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 11:36:52,008 [DEBUG][       Thread-253445][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 11:36:52,011 [DEBUG][       Thread-253445][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 11:36:52,023 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 11:36:52,023 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 11:36:52,025 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 11:36:52,026 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 11:36:52,029 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 11:36:52,030 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 11:36:52,030 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 11:36:52,030 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 11:36:52,030 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.399939 -999.00  +10.50  19.94     50   +0.70 1 1 1 1 1   888    0 10.51 32.50 ----- 20.1 19.9 48.4 29.3 14.9 -27.7 13.6 -29.4 13.1 -27.9 14.4 -26.4
2025-06-13 11:36:52,030 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 11:36:52,030 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 11:36:52,030 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.399939
2025-06-13 11:36:52,030 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 11:36:52,030 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 11:36:52,030 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 11:36:52,030 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 11:36:52,030 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 11:36:52,030 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T11:36:40', tmtdew=11.25, humidity=45.77, cloud=0.0, wind=20.82, temperature=10.74, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T09:35:54.730', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 11:36:52,031 [DEBUG][       Thread-253445][   transport.py][1871] : EOF in transport thread
2025-06-13 11:36:52,102 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 11:36:52,112 [DEBUG][       Thread-253448][   transport.py][1871] : starting thread (client mode): 0x867b69e0
2025-06-13 11:36:52,112 [DEBUG][       Thread-253448][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 11:36:52,127 [DEBUG][       Thread-253448][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 11:36:52,127 [ INFO][       Thread-253448][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 11:36:52,134 [DEBUG][       Thread-253448][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 11:36:52,135 [DEBUG][       Thread-253448][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 11:36:52,135 [DEBUG][       Thread-253448][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 11:36:52,135 [DEBUG][       Thread-253448][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:36:52,135 [DEBUG][       Thread-253448][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:36:52,135 [DEBUG][       Thread-253448][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:36:52,135 [DEBUG][       Thread-253448][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:36:52,135 [DEBUG][       Thread-253448][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 11:36:52,135 [DEBUG][       Thread-253448][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 11:36:52,135 [DEBUG][       Thread-253448][   transport.py][1871] : client lang: <none>
2025-06-13 11:36:52,135 [DEBUG][       Thread-253448][   transport.py][1871] : server lang: <none>
2025-06-13 11:36:52,135 [DEBUG][       Thread-253448][   transport.py][1871] : kex follows: False
2025-06-13 11:36:52,135 [DEBUG][       Thread-253448][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 11:36:52,135 [DEBUG][       Thread-253448][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 11:36:52,135 [DEBUG][       Thread-253448][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 11:36:52,135 [DEBUG][       Thread-253448][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 11:36:52,135 [DEBUG][       Thread-253448][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 11:36:52,135 [DEBUG][       Thread-253448][   transport.py][1871] : Compression: none
2025-06-13 11:36:52,135 [DEBUG][       Thread-253448][   transport.py][1871] : === End of kex handshake ===
2025-06-13 11:36:52,196 [DEBUG][       Thread-253448][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 11:36:52,196 [DEBUG][       Thread-253448][   transport.py][1871] : Switch to new keys ...
2025-06-13 11:36:52,196 [DEBUG][       Thread-253448][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 11:36:52,196 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 11:36:52,196 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 11:36:52,251 [DEBUG][       Thread-253448][   transport.py][1871] : userauth is OK
2025-06-13 11:36:52,251 [DEBUG][       Thread-253448][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 11:36:52,251 [DEBUG][       Thread-253448][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 11:36:52,251 [DEBUG][       Thread-253448][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 11:36:52,251 [DEBUG][       Thread-253448][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 11:36:52,266 [ INFO][       Thread-253448][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 11:36:52,266 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 11:36:52,266 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 11:36:53,269 [DEBUG][       Thread-253448][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 11:36:53,269 [DEBUG][       Thread-253448][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 11:36:53,319 [DEBUG][       Thread-253448][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 11:36:53,319 [DEBUG][       Thread-253448][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 11:36:53,333 [DEBUG][       Thread-253448][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 11:36:53,345 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 11:36:53,345 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 11:36:53,353 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 11:36:53,362 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 11:36:53,362 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 11:36:53,362 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 11:36:53,370 [DEBUG][       Thread-253448][   transport.py][1871] : EOF in transport thread
2025-06-13 11:36:56,815 [DEBUG][Thread-253450 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:37:03,371 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 11:37:03,371 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 11:37:03,371 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 11:37:03,374 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 11:37:03,838 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 11, 36, 40), 11.25, 45.77, 0.0, 20.82, 10.74, 0, 0, 0, 2, 0, 0),)
2025-06-13 11:37:03,838 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 11:36:40
2025-06-13 11:37:03,921 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 11:37:03,928 [DEBUG][       Thread-253451][   transport.py][1871] : starting thread (client mode): 0x84207b80
2025-06-13 11:37:03,928 [DEBUG][       Thread-253451][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 11:37:03,948 [DEBUG][       Thread-253451][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 11:37:03,948 [ INFO][       Thread-253451][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 11:37:03,951 [DEBUG][       Thread-253451][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 11:37:03,951 [DEBUG][       Thread-253451][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 11:37:03,951 [DEBUG][       Thread-253451][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 11:37:03,951 [DEBUG][       Thread-253451][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:37:03,951 [DEBUG][       Thread-253451][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:37:03,951 [DEBUG][       Thread-253451][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:37:03,951 [DEBUG][       Thread-253451][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:37:03,951 [DEBUG][       Thread-253451][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 11:37:03,951 [DEBUG][       Thread-253451][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 11:37:03,951 [DEBUG][       Thread-253451][   transport.py][1871] : client lang: <none>
2025-06-13 11:37:03,952 [DEBUG][       Thread-253451][   transport.py][1871] : server lang: <none>
2025-06-13 11:37:03,952 [DEBUG][       Thread-253451][   transport.py][1871] : kex follows: False
2025-06-13 11:37:03,952 [DEBUG][       Thread-253451][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 11:37:03,952 [DEBUG][       Thread-253451][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 11:37:03,952 [DEBUG][       Thread-253451][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 11:37:03,952 [DEBUG][       Thread-253451][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 11:37:03,952 [DEBUG][       Thread-253451][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 11:37:03,952 [DEBUG][       Thread-253451][   transport.py][1871] : Compression: none
2025-06-13 11:37:03,952 [DEBUG][       Thread-253451][   transport.py][1871] : === End of kex handshake ===
2025-06-13 11:37:03,970 [DEBUG][       Thread-253451][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 11:37:03,971 [DEBUG][       Thread-253451][   transport.py][1871] : Switch to new keys ...
2025-06-13 11:37:03,971 [DEBUG][       Thread-253451][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 11:37:03,972 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 11:37:03,972 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 11:37:03,973 [DEBUG][       Thread-253451][   transport.py][1871] : userauth is OK
2025-06-13 11:37:03,987 [ INFO][       Thread-253451][   transport.py][1871] : Authentication (password) successful!
2025-06-13 11:37:03,988 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 11:37:04,626 [DEBUG][       Thread-253451][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 11:37:04,627 [DEBUG][       Thread-253451][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 11:37:04,669 [DEBUG][       Thread-253451][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 11:37:04,669 [DEBUG][       Thread-253451][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 11:37:04,673 [DEBUG][       Thread-253451][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 11:37:04,685 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 11:37:04,686 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 11:37:04,688 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 11:37:04,690 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 11:37:04,697 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 11:37:04,700 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 11:37:04,700 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 11:37:04,701 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 11:37:04,701 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.400633 -999.00  +10.60  22.83     49   +0.30 1 1 1 1 1   888    0 10.59 33.26 ----- 19.9 22.8 58.4 31.1 14.9 -28.0 13.7 -29.8 13.1 -28.5 14.5 -26.4
2025-06-13 11:37:04,701 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 11:37:04,701 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 11:37:04,702 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.400633
2025-06-13 11:37:04,702 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 11:37:04,703 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 11:37:04,703 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 11:37:04,703 [DEBUG][       Thread-253451][   transport.py][1871] : EOF in transport thread
2025-06-13 11:37:04,704 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 11:37:04,704 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 11:37:04,704 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T11:36:40', tmtdew=11.25, humidity=45.77, cloud=0.0, wind=20.82, temperature=10.74, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T09:36:54.691', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 11:37:04,794 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 11:37:04,805 [DEBUG][       Thread-253454][   transport.py][1871] : starting thread (client mode): 0x863ca1a0
2025-06-13 11:37:04,805 [DEBUG][       Thread-253454][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 11:37:04,820 [DEBUG][       Thread-253454][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 11:37:04,820 [ INFO][       Thread-253454][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 11:37:04,828 [DEBUG][       Thread-253454][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 11:37:04,828 [DEBUG][       Thread-253454][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 11:37:04,828 [DEBUG][       Thread-253454][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 11:37:04,828 [DEBUG][       Thread-253454][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:37:04,828 [DEBUG][       Thread-253454][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:37:04,828 [DEBUG][       Thread-253454][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:37:04,828 [DEBUG][       Thread-253454][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:37:04,828 [DEBUG][       Thread-253454][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 11:37:04,828 [DEBUG][       Thread-253454][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 11:37:04,828 [DEBUG][       Thread-253454][   transport.py][1871] : client lang: <none>
2025-06-13 11:37:04,828 [DEBUG][       Thread-253454][   transport.py][1871] : server lang: <none>
2025-06-13 11:37:04,828 [DEBUG][       Thread-253454][   transport.py][1871] : kex follows: False
2025-06-13 11:37:04,829 [DEBUG][       Thread-253454][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 11:37:04,829 [DEBUG][       Thread-253454][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 11:37:04,829 [DEBUG][       Thread-253454][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 11:37:04,829 [DEBUG][       Thread-253454][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 11:37:04,829 [DEBUG][       Thread-253454][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 11:37:04,829 [DEBUG][       Thread-253454][   transport.py][1871] : Compression: none
2025-06-13 11:37:04,829 [DEBUG][       Thread-253454][   transport.py][1871] : === End of kex handshake ===
2025-06-13 11:37:04,889 [DEBUG][       Thread-253454][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 11:37:04,889 [DEBUG][       Thread-253454][   transport.py][1871] : Switch to new keys ...
2025-06-13 11:37:04,890 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 11:37:04,891 [DEBUG][       Thread-253454][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 11:37:04,891 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 11:37:04,944 [DEBUG][       Thread-253454][   transport.py][1871] : userauth is OK
2025-06-13 11:37:04,944 [DEBUG][       Thread-253454][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 11:37:04,945 [DEBUG][       Thread-253454][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 11:37:04,945 [DEBUG][       Thread-253454][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 11:37:04,945 [DEBUG][       Thread-253454][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 11:37:04,964 [ INFO][       Thread-253454][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 11:37:04,965 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 11:37:04,965 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 11:37:05,851 [DEBUG][Thread-253456 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:37:05,982 [DEBUG][       Thread-253454][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 11:37:05,982 [DEBUG][       Thread-253454][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 11:37:06,032 [DEBUG][       Thread-253454][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 11:37:06,032 [DEBUG][       Thread-253454][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 11:37:06,044 [DEBUG][       Thread-253454][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 11:37:06,053 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 11:37:06,054 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 11:37:06,074 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 11:37:06,083 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 11:37:06,084 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 11:37:06,084 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 11:37:06,092 [DEBUG][       Thread-253454][   transport.py][1871] : EOF in transport thread
2025-06-13 11:37:09,671 [DEBUG][Thread-253457 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:37:14,873 [DEBUG][Thread-253458 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:37:16,095 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 11:37:16,095 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 11:37:16,095 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 11:37:16,098 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 11:37:16,562 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 11, 37, 12), 11.26, 45.73, 0.0, 22.87, 10.83, 0, 0, 0, 2, 0, 0),)
2025-06-13 11:37:16,562 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 11:37:12
2025-06-13 11:37:16,644 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 11:37:16,651 [DEBUG][       Thread-253459][   transport.py][1871] : starting thread (client mode): 0x84207eb0
2025-06-13 11:37:16,651 [DEBUG][       Thread-253459][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 11:37:16,667 [DEBUG][       Thread-253459][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 11:37:16,667 [ INFO][       Thread-253459][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 11:37:16,670 [DEBUG][       Thread-253459][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 11:37:16,670 [DEBUG][       Thread-253459][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 11:37:16,670 [DEBUG][       Thread-253459][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 11:37:16,670 [DEBUG][       Thread-253459][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:37:16,670 [DEBUG][       Thread-253459][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:37:16,670 [DEBUG][       Thread-253459][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:37:16,670 [DEBUG][       Thread-253459][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:37:16,670 [DEBUG][       Thread-253459][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 11:37:16,670 [DEBUG][       Thread-253459][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 11:37:16,671 [DEBUG][       Thread-253459][   transport.py][1871] : client lang: <none>
2025-06-13 11:37:16,671 [DEBUG][       Thread-253459][   transport.py][1871] : server lang: <none>
2025-06-13 11:37:16,671 [DEBUG][       Thread-253459][   transport.py][1871] : kex follows: False
2025-06-13 11:37:16,671 [DEBUG][       Thread-253459][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 11:37:16,671 [DEBUG][       Thread-253459][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 11:37:16,671 [DEBUG][       Thread-253459][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 11:37:16,671 [DEBUG][       Thread-253459][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 11:37:16,671 [DEBUG][       Thread-253459][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 11:37:16,671 [DEBUG][       Thread-253459][   transport.py][1871] : Compression: none
2025-06-13 11:37:16,671 [DEBUG][       Thread-253459][   transport.py][1871] : === End of kex handshake ===
2025-06-13 11:37:16,688 [DEBUG][       Thread-253459][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 11:37:16,688 [DEBUG][       Thread-253459][   transport.py][1871] : Switch to new keys ...
2025-06-13 11:37:16,689 [DEBUG][       Thread-253459][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 11:37:16,689 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 11:37:16,689 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 11:37:16,690 [DEBUG][       Thread-253459][   transport.py][1871] : userauth is OK
2025-06-13 11:37:16,703 [ INFO][       Thread-253459][   transport.py][1871] : Authentication (password) successful!
2025-06-13 11:37:16,704 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 11:37:17,290 [DEBUG][       Thread-253459][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 11:37:17,290 [DEBUG][       Thread-253459][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 11:37:17,333 [DEBUG][       Thread-253459][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 11:37:17,333 [DEBUG][       Thread-253459][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 11:37:17,337 [DEBUG][       Thread-253459][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 11:37:17,348 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 11:37:17,348 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 11:37:17,350 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 11:37:17,351 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 11:37:17,357 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 11:37:17,359 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 11:37:17,359 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 11:37:17,360 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 11:37:17,360 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.400633 -999.00  +10.60  22.83     49   +0.30 1 1 1 1 1   888    0 10.59 33.26 ----- 19.9 22.8 58.4 31.1 14.9 -28.0 13.7 -29.8 13.1 -28.5 14.5 -26.4
2025-06-13 11:37:17,360 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 11:37:17,360 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 11:37:17,360 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.400633
2025-06-13 11:37:17,361 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 11:37:17,361 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 11:37:17,361 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 11:37:17,361 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 11:37:17,361 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 11:37:17,362 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T11:37:12', tmtdew=11.26, humidity=45.73, cloud=0.0, wind=22.87, temperature=10.83, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T09:36:54.691', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 11:37:17,362 [DEBUG][       Thread-253459][   transport.py][1871] : EOF in transport thread
2025-06-13 11:37:17,446 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 11:37:17,462 [DEBUG][       Thread-253462][   transport.py][1871] : starting thread (client mode): 0x867b6350
2025-06-13 11:37:17,462 [DEBUG][       Thread-253462][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 11:37:17,477 [DEBUG][       Thread-253462][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 11:37:17,477 [ INFO][       Thread-253462][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 11:37:17,485 [DEBUG][       Thread-253462][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 11:37:17,485 [DEBUG][       Thread-253462][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 11:37:17,485 [DEBUG][       Thread-253462][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 11:37:17,485 [DEBUG][       Thread-253462][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:37:17,485 [DEBUG][       Thread-253462][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:37:17,485 [DEBUG][       Thread-253462][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:37:17,485 [DEBUG][       Thread-253462][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:37:17,485 [DEBUG][       Thread-253462][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 11:37:17,485 [DEBUG][       Thread-253462][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 11:37:17,485 [DEBUG][       Thread-253462][   transport.py][1871] : client lang: <none>
2025-06-13 11:37:17,485 [DEBUG][       Thread-253462][   transport.py][1871] : server lang: <none>
2025-06-13 11:37:17,485 [DEBUG][       Thread-253462][   transport.py][1871] : kex follows: False
2025-06-13 11:37:17,485 [DEBUG][       Thread-253462][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 11:37:17,485 [DEBUG][       Thread-253462][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 11:37:17,486 [DEBUG][       Thread-253462][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 11:37:17,486 [DEBUG][       Thread-253462][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 11:37:17,486 [DEBUG][       Thread-253462][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 11:37:17,486 [DEBUG][       Thread-253462][   transport.py][1871] : Compression: none
2025-06-13 11:37:17,486 [DEBUG][       Thread-253462][   transport.py][1871] : === End of kex handshake ===
2025-06-13 11:37:17,549 [DEBUG][       Thread-253462][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 11:37:17,549 [DEBUG][       Thread-253462][   transport.py][1871] : Switch to new keys ...
2025-06-13 11:37:17,550 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 11:37:17,551 [DEBUG][       Thread-253462][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 11:37:17,551 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 11:37:17,605 [DEBUG][       Thread-253462][   transport.py][1871] : userauth is OK
2025-06-13 11:37:17,605 [DEBUG][       Thread-253462][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 11:37:17,605 [DEBUG][       Thread-253462][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 11:37:17,605 [DEBUG][       Thread-253462][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 11:37:17,606 [DEBUG][       Thread-253462][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 11:37:17,627 [ INFO][       Thread-253462][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 11:37:17,627 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 11:37:17,628 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 11:37:18,648 [DEBUG][       Thread-253462][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 11:37:18,649 [DEBUG][       Thread-253462][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 11:37:18,700 [DEBUG][       Thread-253462][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 11:37:18,700 [DEBUG][       Thread-253462][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 11:37:18,709 [DEBUG][       Thread-253462][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 11:37:18,718 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 11:37:18,718 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 11:37:18,727 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 11:37:18,736 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 11:37:18,736 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 11:37:18,737 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 11:37:18,744 [DEBUG][       Thread-253462][   transport.py][1871] : EOF in transport thread
2025-06-13 11:37:23,895 [DEBUG][Thread-253464 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:37:28,747 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 11:37:28,748 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 11:37:28,748 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 11:37:28,751 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 11:37:29,213 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 11, 37, 12), 11.26, 45.73, 0.0, 22.87, 10.83, 0, 0, 0, 2, 0, 0),)
2025-06-13 11:37:29,213 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 11:37:12
2025-06-13 11:37:29,295 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 11:37:29,299 [DEBUG][       Thread-253465][   transport.py][1871] : starting thread (client mode): 0x863beb60
2025-06-13 11:37:29,299 [DEBUG][       Thread-253465][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 11:37:29,320 [DEBUG][       Thread-253465][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 11:37:29,320 [ INFO][       Thread-253465][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 11:37:29,323 [DEBUG][       Thread-253465][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 11:37:29,323 [DEBUG][       Thread-253465][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 11:37:29,323 [DEBUG][       Thread-253465][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 11:37:29,323 [DEBUG][       Thread-253465][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:37:29,323 [DEBUG][       Thread-253465][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:37:29,323 [DEBUG][       Thread-253465][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:37:29,323 [DEBUG][       Thread-253465][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:37:29,323 [DEBUG][       Thread-253465][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 11:37:29,323 [DEBUG][       Thread-253465][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 11:37:29,323 [DEBUG][       Thread-253465][   transport.py][1871] : client lang: <none>
2025-06-13 11:37:29,323 [DEBUG][       Thread-253465][   transport.py][1871] : server lang: <none>
2025-06-13 11:37:29,323 [DEBUG][       Thread-253465][   transport.py][1871] : kex follows: False
2025-06-13 11:37:29,323 [DEBUG][       Thread-253465][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 11:37:29,323 [DEBUG][       Thread-253465][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 11:37:29,323 [DEBUG][       Thread-253465][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 11:37:29,323 [DEBUG][       Thread-253465][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 11:37:29,323 [DEBUG][       Thread-253465][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 11:37:29,323 [DEBUG][       Thread-253465][   transport.py][1871] : Compression: none
2025-06-13 11:37:29,323 [DEBUG][       Thread-253465][   transport.py][1871] : === End of kex handshake ===
2025-06-13 11:37:29,341 [DEBUG][       Thread-253465][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 11:37:29,341 [DEBUG][       Thread-253465][   transport.py][1871] : Switch to new keys ...
2025-06-13 11:37:29,342 [DEBUG][       Thread-253465][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 11:37:29,342 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 11:37:29,342 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 11:37:29,343 [DEBUG][       Thread-253465][   transport.py][1871] : userauth is OK
2025-06-13 11:37:29,368 [ INFO][       Thread-253465][   transport.py][1871] : Authentication (password) successful!
2025-06-13 11:37:29,369 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 11:37:30,009 [DEBUG][       Thread-253465][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 11:37:30,009 [DEBUG][       Thread-253465][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 11:37:30,052 [DEBUG][       Thread-253465][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 11:37:30,052 [DEBUG][       Thread-253465][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 11:37:30,055 [DEBUG][       Thread-253465][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 11:37:30,067 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 11:37:30,067 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 11:37:30,069 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 11:37:30,070 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 11:37:30,073 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 11:37:30,074 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 11:37:30,074 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 11:37:30,075 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 11:37:30,075 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.400633 -999.00  +10.60  22.83     49   +0.30 1 1 1 1 1   888    0 10.59 33.26 ----- 19.9 22.8 58.4 31.1 14.9 -28.0 13.7 -29.8 13.1 -28.5 14.5 -26.4
2025-06-13 11:37:30,075 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 11:37:30,075 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 11:37:30,075 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.400633
2025-06-13 11:37:30,075 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 11:37:30,075 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 11:37:30,075 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 11:37:30,075 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 11:37:30,075 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 11:37:30,075 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T11:37:12', tmtdew=11.26, humidity=45.73, cloud=0.0, wind=22.87, temperature=10.83, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T09:36:54.691', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 11:37:30,076 [DEBUG][       Thread-253465][   transport.py][1871] : EOF in transport thread
2025-06-13 11:37:30,148 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 11:37:30,157 [DEBUG][       Thread-253468][   transport.py][1871] : starting thread (client mode): 0x863bd9c0
2025-06-13 11:37:30,158 [DEBUG][       Thread-253468][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 11:37:30,173 [DEBUG][       Thread-253468][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 11:37:30,173 [ INFO][       Thread-253468][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 11:37:30,181 [DEBUG][       Thread-253468][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 11:37:30,181 [DEBUG][       Thread-253468][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 11:37:30,181 [DEBUG][       Thread-253468][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 11:37:30,181 [DEBUG][       Thread-253468][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:37:30,181 [DEBUG][       Thread-253468][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:37:30,181 [DEBUG][       Thread-253468][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:37:30,181 [DEBUG][       Thread-253468][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:37:30,181 [DEBUG][       Thread-253468][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 11:37:30,181 [DEBUG][       Thread-253468][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 11:37:30,181 [DEBUG][       Thread-253468][   transport.py][1871] : client lang: <none>
2025-06-13 11:37:30,181 [DEBUG][       Thread-253468][   transport.py][1871] : server lang: <none>
2025-06-13 11:37:30,181 [DEBUG][       Thread-253468][   transport.py][1871] : kex follows: False
2025-06-13 11:37:30,181 [DEBUG][       Thread-253468][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 11:37:30,181 [DEBUG][       Thread-253468][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 11:37:30,181 [DEBUG][       Thread-253468][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 11:37:30,181 [DEBUG][       Thread-253468][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 11:37:30,181 [DEBUG][       Thread-253468][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 11:37:30,181 [DEBUG][       Thread-253468][   transport.py][1871] : Compression: none
2025-06-13 11:37:30,181 [DEBUG][       Thread-253468][   transport.py][1871] : === End of kex handshake ===
2025-06-13 11:37:30,238 [DEBUG][       Thread-253468][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 11:37:30,239 [DEBUG][       Thread-253468][   transport.py][1871] : Switch to new keys ...
2025-06-13 11:37:30,239 [DEBUG][       Thread-253468][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 11:37:30,239 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 11:37:30,239 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 11:37:30,300 [DEBUG][       Thread-253468][   transport.py][1871] : userauth is OK
2025-06-13 11:37:30,300 [DEBUG][       Thread-253468][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 11:37:30,300 [DEBUG][       Thread-253468][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 11:37:30,300 [DEBUG][       Thread-253468][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 11:37:30,300 [DEBUG][       Thread-253468][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 11:37:30,314 [ INFO][       Thread-253468][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 11:37:30,314 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 11:37:30,314 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 11:37:30,780 [DEBUG][Thread-253470 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:37:31,361 [DEBUG][       Thread-253468][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 11:37:31,361 [DEBUG][       Thread-253468][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 11:37:31,415 [DEBUG][       Thread-253468][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 11:37:31,415 [DEBUG][       Thread-253468][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 11:37:31,427 [DEBUG][       Thread-253468][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 11:37:31,442 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 11:37:31,442 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 11:37:31,450 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 11:37:31,465 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 11:37:31,465 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 11:37:31,465 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 11:37:31,473 [DEBUG][       Thread-253468][   transport.py][1871] : EOF in transport thread
2025-06-13 11:37:31,830 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:37:31,831 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:37:32,928 [DEBUG][Thread-253471 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:37:36,328 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:37:36,330 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:37:41,476 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 11:37:41,476 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 11:37:41,476 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 11:37:41,479 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 11:37:41,947 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 11, 37, 12), 11.26, 45.73, 0.0, 22.87, 10.83, 0, 0, 0, 2, 0, 0),)
2025-06-13 11:37:41,947 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 11:37:12
2025-06-13 11:37:41,953 [DEBUG][Thread-253472 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:37:42,029 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 11:37:42,035 [DEBUG][       Thread-253473][   transport.py][1871] : starting thread (client mode): 0x863be530
2025-06-13 11:37:42,035 [DEBUG][       Thread-253473][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 11:37:42,057 [DEBUG][       Thread-253473][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 11:37:42,057 [ INFO][       Thread-253473][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 11:37:42,060 [DEBUG][       Thread-253473][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 11:37:42,060 [DEBUG][       Thread-253473][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 11:37:42,061 [DEBUG][       Thread-253473][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 11:37:42,061 [DEBUG][       Thread-253473][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:37:42,061 [DEBUG][       Thread-253473][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:37:42,061 [DEBUG][       Thread-253473][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:37:42,061 [DEBUG][       Thread-253473][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:37:42,061 [DEBUG][       Thread-253473][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 11:37:42,061 [DEBUG][       Thread-253473][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 11:37:42,061 [DEBUG][       Thread-253473][   transport.py][1871] : client lang: <none>
2025-06-13 11:37:42,061 [DEBUG][       Thread-253473][   transport.py][1871] : server lang: <none>
2025-06-13 11:37:42,061 [DEBUG][       Thread-253473][   transport.py][1871] : kex follows: False
2025-06-13 11:37:42,061 [DEBUG][       Thread-253473][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 11:37:42,061 [DEBUG][       Thread-253473][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 11:37:42,061 [DEBUG][       Thread-253473][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 11:37:42,061 [DEBUG][       Thread-253473][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 11:37:42,061 [DEBUG][       Thread-253473][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 11:37:42,061 [DEBUG][       Thread-253473][   transport.py][1871] : Compression: none
2025-06-13 11:37:42,061 [DEBUG][       Thread-253473][   transport.py][1871] : === End of kex handshake ===
2025-06-13 11:37:42,079 [DEBUG][       Thread-253473][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 11:37:42,079 [DEBUG][       Thread-253473][   transport.py][1871] : Switch to new keys ...
2025-06-13 11:37:42,080 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 11:37:42,080 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 11:37:42,081 [DEBUG][       Thread-253473][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 11:37:42,082 [DEBUG][       Thread-253473][   transport.py][1871] : userauth is OK
2025-06-13 11:37:42,106 [ INFO][       Thread-253473][   transport.py][1871] : Authentication (password) successful!
2025-06-13 11:37:42,107 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 11:37:42,735 [DEBUG][       Thread-253473][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 11:37:42,735 [DEBUG][       Thread-253473][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 11:37:42,777 [DEBUG][       Thread-253473][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 11:37:42,777 [DEBUG][       Thread-253473][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 11:37:42,780 [DEBUG][       Thread-253473][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 11:37:42,792 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 11:37:42,792 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 11:37:42,794 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 11:37:42,796 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 11:37:42,802 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 11:37:42,804 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 11:37:42,805 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 11:37:42,805 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 11:37:42,806 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.400980 -999.00  +10.60  23.28     49   +0.50 1 1 1 1 1   888    0 10.58 34.02 ----- 19.3 23.3 51.4 28.8 15.0 -28.2 13.7 -30.3 13.1 -28.6 14.4 -26.4
2025-06-13 11:37:42,806 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 11:37:42,806 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 11:37:42,806 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.400980
2025-06-13 11:37:42,806 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 11:37:42,807 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 11:37:42,807 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 11:37:42,807 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 11:37:42,807 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 11:37:42,807 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T11:37:12', tmtdew=11.26, humidity=45.73, cloud=0.0, wind=22.87, temperature=10.83, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T09:37:24.672', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 11:37:42,807 [DEBUG][       Thread-253473][   transport.py][1871] : EOF in transport thread
2025-06-13 11:37:42,891 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 11:37:42,903 [DEBUG][       Thread-253476][   transport.py][1871] : starting thread (client mode): 0x868c85b0
2025-06-13 11:37:42,903 [DEBUG][       Thread-253476][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 11:37:42,919 [DEBUG][       Thread-253476][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 11:37:42,919 [ INFO][       Thread-253476][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 11:37:42,926 [DEBUG][       Thread-253476][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 11:37:42,926 [DEBUG][       Thread-253476][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 11:37:42,927 [DEBUG][       Thread-253476][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 11:37:42,927 [DEBUG][       Thread-253476][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:37:42,927 [DEBUG][       Thread-253476][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:37:42,927 [DEBUG][       Thread-253476][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:37:42,927 [DEBUG][       Thread-253476][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:37:42,927 [DEBUG][       Thread-253476][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 11:37:42,927 [DEBUG][       Thread-253476][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 11:37:42,927 [DEBUG][       Thread-253476][   transport.py][1871] : client lang: <none>
2025-06-13 11:37:42,927 [DEBUG][       Thread-253476][   transport.py][1871] : server lang: <none>
2025-06-13 11:37:42,927 [DEBUG][       Thread-253476][   transport.py][1871] : kex follows: False
2025-06-13 11:37:42,927 [DEBUG][       Thread-253476][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 11:37:42,927 [DEBUG][       Thread-253476][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 11:37:42,927 [DEBUG][       Thread-253476][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 11:37:42,927 [DEBUG][       Thread-253476][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 11:37:42,927 [DEBUG][       Thread-253476][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 11:37:42,927 [DEBUG][       Thread-253476][   transport.py][1871] : Compression: none
2025-06-13 11:37:42,927 [DEBUG][       Thread-253476][   transport.py][1871] : === End of kex handshake ===
2025-06-13 11:37:42,984 [DEBUG][       Thread-253476][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 11:37:42,985 [DEBUG][       Thread-253476][   transport.py][1871] : Switch to new keys ...
2025-06-13 11:37:42,985 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 11:37:42,986 [DEBUG][       Thread-253476][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 11:37:42,987 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 11:37:43,040 [DEBUG][       Thread-253476][   transport.py][1871] : userauth is OK
2025-06-13 11:37:43,041 [DEBUG][       Thread-253476][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 11:37:43,041 [DEBUG][       Thread-253476][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 11:37:43,041 [DEBUG][       Thread-253476][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 11:37:43,041 [DEBUG][       Thread-253476][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 11:37:43,064 [ INFO][       Thread-253476][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 11:37:43,064 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 11:37:43,064 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 11:37:44,070 [DEBUG][       Thread-253476][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 11:37:44,070 [DEBUG][       Thread-253476][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 11:37:44,123 [DEBUG][       Thread-253476][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 11:37:44,123 [DEBUG][       Thread-253476][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 11:37:44,136 [DEBUG][       Thread-253476][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 11:37:44,146 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 11:37:44,147 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 11:37:44,157 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 11:37:44,166 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 11:37:44,166 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 11:37:44,167 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 11:37:44,181 [DEBUG][       Thread-253476][   transport.py][1871] : EOF in transport thread
2025-06-13 11:37:50,975 [DEBUG][Thread-253478 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:37:54,177 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 11:37:54,178 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 11:37:54,178 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 11:37:54,180 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 11:37:54,632 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 11, 37, 43), 11.26, 45.72, 0.0, 19.89, 10.84, 0, 0, 0, 2, 0, 0),)
2025-06-13 11:37:54,632 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 11:37:43
2025-06-13 11:37:54,713 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 11:37:54,717 [DEBUG][       Thread-253479][   transport.py][1871] : starting thread (client mode): 0x863bf610
2025-06-13 11:37:54,717 [DEBUG][       Thread-253479][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 11:37:54,738 [DEBUG][       Thread-253479][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 11:37:54,738 [ INFO][       Thread-253479][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 11:37:54,741 [DEBUG][       Thread-253479][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 11:37:54,741 [DEBUG][       Thread-253479][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 11:37:54,741 [DEBUG][       Thread-253479][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 11:37:54,741 [DEBUG][       Thread-253479][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:37:54,741 [DEBUG][       Thread-253479][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:37:54,742 [DEBUG][       Thread-253479][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:37:54,742 [DEBUG][       Thread-253479][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:37:54,742 [DEBUG][       Thread-253479][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 11:37:54,742 [DEBUG][       Thread-253479][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 11:37:54,742 [DEBUG][       Thread-253479][   transport.py][1871] : client lang: <none>
2025-06-13 11:37:54,742 [DEBUG][       Thread-253479][   transport.py][1871] : server lang: <none>
2025-06-13 11:37:54,742 [DEBUG][       Thread-253479][   transport.py][1871] : kex follows: False
2025-06-13 11:37:54,742 [DEBUG][       Thread-253479][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 11:37:54,742 [DEBUG][       Thread-253479][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 11:37:54,742 [DEBUG][       Thread-253479][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 11:37:54,742 [DEBUG][       Thread-253479][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 11:37:54,742 [DEBUG][       Thread-253479][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 11:37:54,742 [DEBUG][       Thread-253479][   transport.py][1871] : Compression: none
2025-06-13 11:37:54,742 [DEBUG][       Thread-253479][   transport.py][1871] : === End of kex handshake ===
2025-06-13 11:37:54,759 [DEBUG][       Thread-253479][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 11:37:54,759 [DEBUG][       Thread-253479][   transport.py][1871] : Switch to new keys ...
2025-06-13 11:37:54,760 [DEBUG][       Thread-253479][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 11:37:54,760 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 11:37:54,760 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 11:37:54,761 [DEBUG][       Thread-253479][   transport.py][1871] : userauth is OK
2025-06-13 11:37:54,774 [ INFO][       Thread-253479][   transport.py][1871] : Authentication (password) successful!
2025-06-13 11:37:54,775 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 11:37:55,432 [DEBUG][       Thread-253479][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 11:37:55,432 [DEBUG][       Thread-253479][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 11:37:55,473 [DEBUG][       Thread-253479][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 11:37:55,473 [DEBUG][       Thread-253479][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 11:37:55,476 [DEBUG][       Thread-253479][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 11:37:55,490 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 11:37:55,490 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 11:37:55,492 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 11:37:55,494 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 11:37:55,499 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 11:37:55,500 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 11:37:55,500 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 11:37:55,500 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 11:37:55,501 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.400980 -999.00  +10.60  23.28     49   +0.50 1 1 1 1 1   888    0 10.58 34.02 ----- 19.3 23.3 51.4 28.8 15.0 -28.2 13.7 -30.3 13.1 -28.6 14.4 -26.4
2025-06-13 11:37:55,501 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 11:37:55,501 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 11:37:55,501 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.400980
2025-06-13 11:37:55,501 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 11:37:55,501 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 11:37:55,501 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 11:37:55,501 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 11:37:55,501 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 11:37:55,501 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T11:37:43', tmtdew=11.26, humidity=45.72, cloud=0.0, wind=19.89, temperature=10.84, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T09:37:24.672', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 11:37:55,502 [DEBUG][       Thread-253479][   transport.py][1871] : EOF in transport thread
2025-06-13 11:37:55,573 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 11:37:55,582 [DEBUG][       Thread-253482][   transport.py][1871] : starting thread (client mode): 0x8636a2f0
2025-06-13 11:37:55,582 [DEBUG][       Thread-253482][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 11:37:55,597 [DEBUG][       Thread-253482][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 11:37:55,597 [ INFO][       Thread-253482][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 11:37:55,605 [DEBUG][       Thread-253482][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 11:37:55,605 [DEBUG][       Thread-253482][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 11:37:55,605 [DEBUG][       Thread-253482][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 11:37:55,605 [DEBUG][       Thread-253482][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:37:55,605 [DEBUG][       Thread-253482][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:37:55,605 [DEBUG][       Thread-253482][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:37:55,605 [DEBUG][       Thread-253482][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:37:55,605 [DEBUG][       Thread-253482][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 11:37:55,605 [DEBUG][       Thread-253482][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 11:37:55,605 [DEBUG][       Thread-253482][   transport.py][1871] : client lang: <none>
2025-06-13 11:37:55,605 [DEBUG][       Thread-253482][   transport.py][1871] : server lang: <none>
2025-06-13 11:37:55,605 [DEBUG][       Thread-253482][   transport.py][1871] : kex follows: False
2025-06-13 11:37:55,605 [DEBUG][       Thread-253482][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 11:37:55,605 [DEBUG][       Thread-253482][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 11:37:55,605 [DEBUG][       Thread-253482][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 11:37:55,605 [DEBUG][       Thread-253482][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 11:37:55,605 [DEBUG][       Thread-253482][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 11:37:55,605 [DEBUG][       Thread-253482][   transport.py][1871] : Compression: none
2025-06-13 11:37:55,605 [DEBUG][       Thread-253482][   transport.py][1871] : === End of kex handshake ===
2025-06-13 11:37:55,664 [DEBUG][       Thread-253482][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 11:37:55,664 [DEBUG][       Thread-253482][   transport.py][1871] : Switch to new keys ...
2025-06-13 11:37:55,665 [DEBUG][       Thread-253482][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 11:37:55,665 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 11:37:55,666 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 11:37:55,721 [DEBUG][       Thread-253482][   transport.py][1871] : userauth is OK
2025-06-13 11:37:55,721 [DEBUG][       Thread-253482][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 11:37:55,722 [DEBUG][       Thread-253482][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 11:37:55,722 [DEBUG][       Thread-253482][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 11:37:55,722 [DEBUG][       Thread-253482][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 11:37:55,740 [ INFO][       Thread-253482][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 11:37:55,741 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 11:37:55,741 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 11:37:56,758 [DEBUG][       Thread-253482][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 11:37:56,759 [DEBUG][       Thread-253482][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 11:37:56,811 [DEBUG][       Thread-253482][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 11:37:56,811 [DEBUG][       Thread-253482][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 11:37:56,820 [DEBUG][       Thread-253482][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 11:37:56,830 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 11:37:56,830 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 11:37:56,839 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 11:37:56,848 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 11:37:56,848 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 11:37:56,849 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 11:37:56,857 [DEBUG][       Thread-253482][   transport.py][1871] : EOF in transport thread
2025-06-13 11:37:59,997 [DEBUG][Thread-253484 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:38:06,859 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 11:38:06,860 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 11:38:06,860 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 11:38:06,862 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 11:38:07,324 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 11, 37, 43), 11.26, 45.72, 0.0, 19.89, 10.84, 0, 0, 0, 2, 0, 0),)
2025-06-13 11:38:07,324 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 11:37:43
2025-06-13 11:38:07,405 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 11:38:07,410 [DEBUG][       Thread-253485][   transport.py][1871] : starting thread (client mode): 0x8636a2c0
2025-06-13 11:38:07,410 [DEBUG][       Thread-253485][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 11:38:07,429 [DEBUG][       Thread-253485][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 11:38:07,429 [ INFO][       Thread-253485][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 11:38:07,432 [DEBUG][       Thread-253485][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 11:38:07,432 [DEBUG][       Thread-253485][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 11:38:07,432 [DEBUG][       Thread-253485][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 11:38:07,432 [DEBUG][       Thread-253485][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:38:07,432 [DEBUG][       Thread-253485][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:38:07,432 [DEBUG][       Thread-253485][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:38:07,432 [DEBUG][       Thread-253485][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:38:07,432 [DEBUG][       Thread-253485][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 11:38:07,432 [DEBUG][       Thread-253485][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 11:38:07,432 [DEBUG][       Thread-253485][   transport.py][1871] : client lang: <none>
2025-06-13 11:38:07,432 [DEBUG][       Thread-253485][   transport.py][1871] : server lang: <none>
2025-06-13 11:38:07,432 [DEBUG][       Thread-253485][   transport.py][1871] : kex follows: False
2025-06-13 11:38:07,432 [DEBUG][       Thread-253485][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 11:38:07,432 [DEBUG][       Thread-253485][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 11:38:07,432 [DEBUG][       Thread-253485][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 11:38:07,433 [DEBUG][       Thread-253485][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 11:38:07,433 [DEBUG][       Thread-253485][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 11:38:07,433 [DEBUG][       Thread-253485][   transport.py][1871] : Compression: none
2025-06-13 11:38:07,433 [DEBUG][       Thread-253485][   transport.py][1871] : === End of kex handshake ===
2025-06-13 11:38:07,448 [DEBUG][       Thread-253485][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 11:38:07,448 [DEBUG][       Thread-253485][   transport.py][1871] : Switch to new keys ...
2025-06-13 11:38:07,449 [DEBUG][       Thread-253485][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 11:38:07,449 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 11:38:07,449 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 11:38:07,450 [DEBUG][       Thread-253485][   transport.py][1871] : userauth is OK
2025-06-13 11:38:07,463 [ INFO][       Thread-253485][   transport.py][1871] : Authentication (password) successful!
2025-06-13 11:38:07,463 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 11:38:08,070 [DEBUG][       Thread-253485][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 11:38:08,070 [DEBUG][       Thread-253485][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 11:38:08,112 [DEBUG][       Thread-253485][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 11:38:08,112 [DEBUG][       Thread-253485][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 11:38:08,115 [DEBUG][       Thread-253485][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 11:38:08,123 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 11:38:08,123 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 11:38:08,124 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 11:38:08,124 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 11:38:08,127 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 11:38:08,128 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 11:38:08,128 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 11:38:08,128 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 11:38:08,128 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.401328 -999.00  +10.70  19.85     50   +0.70 1 1 1 1 1   888    0 10.54 36.21 ----- 19.9 19.9 51.2 22.3 15.1 -27.9 13.7 -29.4 13.2 -28.3 14.5 -25.8
2025-06-13 11:38:08,128 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 11:38:08,128 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 11:38:08,128 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.401328
2025-06-13 11:38:08,128 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 11:38:08,128 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 11:38:08,128 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 11:38:08,128 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 11:38:08,128 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 11:38:08,129 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T11:37:43', tmtdew=11.26, humidity=45.72, cloud=0.0, wind=19.89, temperature=10.84, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T09:37:54.739', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 11:38:08,130 [DEBUG][       Thread-253485][   transport.py][1871] : EOF in transport thread
2025-06-13 11:38:08,203 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 11:38:08,214 [DEBUG][       Thread-253488][   transport.py][1871] : starting thread (client mode): 0x867b6770
2025-06-13 11:38:08,214 [DEBUG][       Thread-253488][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 11:38:08,232 [DEBUG][       Thread-253488][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 11:38:08,232 [ INFO][       Thread-253488][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 11:38:08,240 [DEBUG][       Thread-253488][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 11:38:08,240 [DEBUG][       Thread-253488][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 11:38:08,240 [DEBUG][       Thread-253488][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 11:38:08,240 [DEBUG][       Thread-253488][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:38:08,240 [DEBUG][       Thread-253488][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:38:08,240 [DEBUG][       Thread-253488][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:38:08,240 [DEBUG][       Thread-253488][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:38:08,240 [DEBUG][       Thread-253488][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 11:38:08,240 [DEBUG][       Thread-253488][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 11:38:08,240 [DEBUG][       Thread-253488][   transport.py][1871] : client lang: <none>
2025-06-13 11:38:08,240 [DEBUG][       Thread-253488][   transport.py][1871] : server lang: <none>
2025-06-13 11:38:08,240 [DEBUG][       Thread-253488][   transport.py][1871] : kex follows: False
2025-06-13 11:38:08,240 [DEBUG][       Thread-253488][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 11:38:08,240 [DEBUG][       Thread-253488][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 11:38:08,240 [DEBUG][       Thread-253488][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 11:38:08,240 [DEBUG][       Thread-253488][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 11:38:08,240 [DEBUG][       Thread-253488][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 11:38:08,240 [DEBUG][       Thread-253488][   transport.py][1871] : Compression: none
2025-06-13 11:38:08,240 [DEBUG][       Thread-253488][   transport.py][1871] : === End of kex handshake ===
2025-06-13 11:38:08,302 [DEBUG][       Thread-253488][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 11:38:08,302 [DEBUG][       Thread-253488][   transport.py][1871] : Switch to new keys ...
2025-06-13 11:38:08,303 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 11:38:08,303 [DEBUG][       Thread-253488][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 11:38:08,303 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 11:38:08,359 [DEBUG][       Thread-253488][   transport.py][1871] : userauth is OK
2025-06-13 11:38:08,360 [DEBUG][       Thread-253488][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 11:38:08,360 [DEBUG][       Thread-253488][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 11:38:08,360 [DEBUG][       Thread-253488][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 11:38:08,360 [DEBUG][       Thread-253488][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 11:38:08,379 [ INFO][       Thread-253488][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 11:38:08,380 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 11:38:08,380 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 11:38:09,040 [DEBUG][Thread-253490 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:38:09,415 [DEBUG][       Thread-253488][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 11:38:09,415 [DEBUG][       Thread-253488][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 11:38:09,463 [DEBUG][       Thread-253488][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 11:38:09,463 [DEBUG][       Thread-253488][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 11:38:09,472 [DEBUG][       Thread-253488][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 11:38:09,480 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 11:38:09,480 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 11:38:09,488 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 11:38:09,496 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 11:38:09,496 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 11:38:09,497 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 11:38:09,511 [DEBUG][       Thread-253488][   transport.py][1871] : EOF in transport thread
2025-06-13 11:38:09,713 [DEBUG][Thread-253491 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:38:18,059 [DEBUG][Thread-253492 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:38:19,507 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 11:38:19,507 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 11:38:19,507 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 11:38:19,510 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 11:38:19,972 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 11, 38, 15), 11.42, 45.25, 0.0, 17.12, 10.76, 0, 0, 0, 2, 0, 0),)
2025-06-13 11:38:19,972 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 11:38:15
2025-06-13 11:38:20,053 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 11:38:20,057 [DEBUG][       Thread-253493][   transport.py][1871] : starting thread (client mode): 0x867b7340
2025-06-13 11:38:20,057 [DEBUG][       Thread-253493][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 11:38:20,078 [DEBUG][       Thread-253493][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 11:38:20,078 [ INFO][       Thread-253493][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 11:38:20,081 [DEBUG][       Thread-253493][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 11:38:20,081 [DEBUG][       Thread-253493][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 11:38:20,081 [DEBUG][       Thread-253493][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 11:38:20,081 [DEBUG][       Thread-253493][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:38:20,081 [DEBUG][       Thread-253493][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:38:20,081 [DEBUG][       Thread-253493][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:38:20,081 [DEBUG][       Thread-253493][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:38:20,081 [DEBUG][       Thread-253493][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 11:38:20,081 [DEBUG][       Thread-253493][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 11:38:20,081 [DEBUG][       Thread-253493][   transport.py][1871] : client lang: <none>
2025-06-13 11:38:20,081 [DEBUG][       Thread-253493][   transport.py][1871] : server lang: <none>
2025-06-13 11:38:20,081 [DEBUG][       Thread-253493][   transport.py][1871] : kex follows: False
2025-06-13 11:38:20,081 [DEBUG][       Thread-253493][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 11:38:20,081 [DEBUG][       Thread-253493][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 11:38:20,081 [DEBUG][       Thread-253493][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 11:38:20,081 [DEBUG][       Thread-253493][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 11:38:20,081 [DEBUG][       Thread-253493][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 11:38:20,081 [DEBUG][       Thread-253493][   transport.py][1871] : Compression: none
2025-06-13 11:38:20,081 [DEBUG][       Thread-253493][   transport.py][1871] : === End of kex handshake ===
2025-06-13 11:38:20,099 [DEBUG][       Thread-253493][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 11:38:20,099 [DEBUG][       Thread-253493][   transport.py][1871] : Switch to new keys ...
2025-06-13 11:38:20,100 [DEBUG][       Thread-253493][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 11:38:20,100 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 11:38:20,100 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 11:38:20,102 [DEBUG][       Thread-253493][   transport.py][1871] : userauth is OK
2025-06-13 11:38:20,115 [ INFO][       Thread-253493][   transport.py][1871] : Authentication (password) successful!
2025-06-13 11:38:20,115 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 11:38:20,754 [DEBUG][       Thread-253493][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 11:38:20,754 [DEBUG][       Thread-253493][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 11:38:20,796 [DEBUG][       Thread-253493][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 11:38:20,797 [DEBUG][       Thread-253493][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 11:38:20,799 [DEBUG][       Thread-253493][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 11:38:20,811 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 11:38:20,812 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 11:38:20,813 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 11:38:20,815 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 11:38:20,820 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 11:38:20,821 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 11:38:20,821 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 11:38:20,822 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 11:38:20,822 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.401328 -999.00  +10.70  19.85     50   +0.70 1 1 1 1 1   888    0 10.54 36.21 ----- 19.9 19.9 51.2 22.3 15.1 -27.9 13.7 -29.4 13.2 -28.3 14.5 -25.8
2025-06-13 11:38:20,822 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 11:38:20,822 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 11:38:20,822 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.401328
2025-06-13 11:38:20,823 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 11:38:20,823 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 11:38:20,823 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 11:38:20,823 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 11:38:20,823 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 11:38:20,823 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T11:38:15', tmtdew=11.42, humidity=45.25, cloud=0.0, wind=17.12, temperature=10.76, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T09:37:54.739', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 11:38:20,824 [DEBUG][       Thread-253493][   transport.py][1871] : EOF in transport thread
2025-06-13 11:38:20,907 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 11:38:20,919 [DEBUG][       Thread-253496][   transport.py][1871] : starting thread (client mode): 0x8636be80
2025-06-13 11:38:20,919 [DEBUG][       Thread-253496][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 11:38:20,934 [DEBUG][       Thread-253496][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 11:38:20,934 [ INFO][       Thread-253496][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 11:38:20,948 [DEBUG][       Thread-253496][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 11:38:20,948 [DEBUG][       Thread-253496][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 11:38:20,948 [DEBUG][       Thread-253496][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 11:38:20,949 [DEBUG][       Thread-253496][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:38:20,949 [DEBUG][       Thread-253496][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:38:20,949 [DEBUG][       Thread-253496][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:38:20,949 [DEBUG][       Thread-253496][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:38:20,949 [DEBUG][       Thread-253496][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 11:38:20,949 [DEBUG][       Thread-253496][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 11:38:20,949 [DEBUG][       Thread-253496][   transport.py][1871] : client lang: <none>
2025-06-13 11:38:20,949 [DEBUG][       Thread-253496][   transport.py][1871] : server lang: <none>
2025-06-13 11:38:20,949 [DEBUG][       Thread-253496][   transport.py][1871] : kex follows: False
2025-06-13 11:38:20,949 [DEBUG][       Thread-253496][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 11:38:20,949 [DEBUG][       Thread-253496][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 11:38:20,949 [DEBUG][       Thread-253496][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 11:38:20,949 [DEBUG][       Thread-253496][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 11:38:20,949 [DEBUG][       Thread-253496][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 11:38:20,949 [DEBUG][       Thread-253496][   transport.py][1871] : Compression: none
2025-06-13 11:38:20,949 [DEBUG][       Thread-253496][   transport.py][1871] : === End of kex handshake ===
2025-06-13 11:38:21,004 [DEBUG][       Thread-253496][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 11:38:21,005 [DEBUG][       Thread-253496][   transport.py][1871] : Switch to new keys ...
2025-06-13 11:38:21,005 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 11:38:21,006 [DEBUG][       Thread-253496][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 11:38:21,006 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 11:38:21,060 [DEBUG][       Thread-253496][   transport.py][1871] : userauth is OK
2025-06-13 11:38:21,060 [DEBUG][       Thread-253496][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 11:38:21,060 [DEBUG][       Thread-253496][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 11:38:21,060 [DEBUG][       Thread-253496][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 11:38:21,060 [DEBUG][       Thread-253496][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 11:38:21,080 [ INFO][       Thread-253496][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 11:38:21,080 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 11:38:21,080 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 11:38:22,089 [DEBUG][       Thread-253496][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 11:38:22,089 [DEBUG][       Thread-253496][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 11:38:22,140 [DEBUG][       Thread-253496][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 11:38:22,140 [DEBUG][       Thread-253496][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 11:38:22,150 [DEBUG][       Thread-253496][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 11:38:22,159 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 11:38:22,160 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 11:38:22,169 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 11:38:22,179 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 11:38:22,179 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 11:38:22,180 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 11:38:22,188 [DEBUG][       Thread-253496][   transport.py][1871] : EOF in transport thread
2025-06-13 11:38:27,080 [DEBUG][Thread-253498 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:38:31,897 [DEBUG][Thread-253499 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:38:32,188 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 11:38:32,188 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 11:38:32,188 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 11:38:32,191 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 11:38:32,644 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 11, 38, 15), 11.42, 45.25, 0.0, 17.12, 10.76, 0, 0, 0, 2, 0, 0),)
2025-06-13 11:38:32,644 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 11:38:15
2025-06-13 11:38:32,725 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 11:38:32,729 [DEBUG][       Thread-253500][   transport.py][1871] : starting thread (client mode): 0x863be590
2025-06-13 11:38:32,729 [DEBUG][       Thread-253500][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 11:38:32,750 [DEBUG][       Thread-253500][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 11:38:32,750 [ INFO][       Thread-253500][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 11:38:32,753 [DEBUG][       Thread-253500][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 11:38:32,753 [DEBUG][       Thread-253500][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 11:38:32,753 [DEBUG][       Thread-253500][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 11:38:32,753 [DEBUG][       Thread-253500][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:38:32,753 [DEBUG][       Thread-253500][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:38:32,753 [DEBUG][       Thread-253500][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:38:32,753 [DEBUG][       Thread-253500][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:38:32,753 [DEBUG][       Thread-253500][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 11:38:32,753 [DEBUG][       Thread-253500][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 11:38:32,753 [DEBUG][       Thread-253500][   transport.py][1871] : client lang: <none>
2025-06-13 11:38:32,753 [DEBUG][       Thread-253500][   transport.py][1871] : server lang: <none>
2025-06-13 11:38:32,753 [DEBUG][       Thread-253500][   transport.py][1871] : kex follows: False
2025-06-13 11:38:32,753 [DEBUG][       Thread-253500][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 11:38:32,753 [DEBUG][       Thread-253500][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 11:38:32,753 [DEBUG][       Thread-253500][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 11:38:32,753 [DEBUG][       Thread-253500][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 11:38:32,753 [DEBUG][       Thread-253500][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 11:38:32,753 [DEBUG][       Thread-253500][   transport.py][1871] : Compression: none
2025-06-13 11:38:32,753 [DEBUG][       Thread-253500][   transport.py][1871] : === End of kex handshake ===
2025-06-13 11:38:32,772 [DEBUG][       Thread-253500][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 11:38:32,772 [DEBUG][       Thread-253500][   transport.py][1871] : Switch to new keys ...
2025-06-13 11:38:32,773 [DEBUG][       Thread-253500][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 11:38:32,773 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 11:38:32,773 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 11:38:32,774 [DEBUG][       Thread-253500][   transport.py][1871] : userauth is OK
2025-06-13 11:38:32,788 [ INFO][       Thread-253500][   transport.py][1871] : Authentication (password) successful!
2025-06-13 11:38:32,788 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 11:38:32,949 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:38:32,949 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:38:33,354 [DEBUG][       Thread-253500][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 11:38:33,354 [DEBUG][       Thread-253500][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 11:38:33,397 [DEBUG][       Thread-253500][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 11:38:33,397 [DEBUG][       Thread-253500][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 11:38:33,400 [DEBUG][       Thread-253500][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 11:38:33,413 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 11:38:33,413 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 11:38:33,415 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 11:38:33,416 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 11:38:33,422 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 11:38:33,423 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 11:38:33,423 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 11:38:33,424 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 11:38:33,424 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.401328 -999.00  +10.70  19.85     50   +0.70 1 1 1 1 1   888    0 10.54 36.21 ----- 19.9 19.9 51.2 22.3 15.1 -27.9 13.7 -29.4 13.2 -28.3 14.5 -25.8
2025-06-13 11:38:33,424 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 11:38:33,424 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 11:38:33,424 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.401328
2025-06-13 11:38:33,425 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 11:38:33,425 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 11:38:33,425 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 11:38:33,425 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 11:38:33,425 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 11:38:33,426 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T11:38:15', tmtdew=11.42, humidity=45.25, cloud=0.0, wind=17.12, temperature=10.76, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T09:37:54.739', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 11:38:33,427 [DEBUG][       Thread-253500][   transport.py][1871] : EOF in transport thread
2025-06-13 11:38:33,510 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 11:38:33,519 [DEBUG][       Thread-253503][   transport.py][1871] : starting thread (client mode): 0x867fceb0
2025-06-13 11:38:33,519 [DEBUG][       Thread-253503][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 11:38:33,534 [DEBUG][       Thread-253503][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 11:38:33,534 [ INFO][       Thread-253503][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 11:38:33,542 [DEBUG][       Thread-253503][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 11:38:33,542 [DEBUG][       Thread-253503][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 11:38:33,542 [DEBUG][       Thread-253503][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 11:38:33,542 [DEBUG][       Thread-253503][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:38:33,542 [DEBUG][       Thread-253503][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:38:33,542 [DEBUG][       Thread-253503][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:38:33,542 [DEBUG][       Thread-253503][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:38:33,542 [DEBUG][       Thread-253503][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 11:38:33,542 [DEBUG][       Thread-253503][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 11:38:33,542 [DEBUG][       Thread-253503][   transport.py][1871] : client lang: <none>
2025-06-13 11:38:33,542 [DEBUG][       Thread-253503][   transport.py][1871] : server lang: <none>
2025-06-13 11:38:33,542 [DEBUG][       Thread-253503][   transport.py][1871] : kex follows: False
2025-06-13 11:38:33,542 [DEBUG][       Thread-253503][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 11:38:33,542 [DEBUG][       Thread-253503][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 11:38:33,542 [DEBUG][       Thread-253503][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 11:38:33,542 [DEBUG][       Thread-253503][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 11:38:33,542 [DEBUG][       Thread-253503][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 11:38:33,542 [DEBUG][       Thread-253503][   transport.py][1871] : Compression: none
2025-06-13 11:38:33,542 [DEBUG][       Thread-253503][   transport.py][1871] : === End of kex handshake ===
2025-06-13 11:38:33,599 [DEBUG][       Thread-253503][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 11:38:33,599 [DEBUG][       Thread-253503][   transport.py][1871] : Switch to new keys ...
2025-06-13 11:38:33,600 [DEBUG][       Thread-253503][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 11:38:33,600 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 11:38:33,601 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 11:38:33,667 [DEBUG][       Thread-253503][   transport.py][1871] : userauth is OK
2025-06-13 11:38:33,667 [DEBUG][       Thread-253503][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 11:38:33,667 [DEBUG][       Thread-253503][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 11:38:33,667 [DEBUG][       Thread-253503][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 11:38:33,667 [DEBUG][       Thread-253503][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 11:38:33,688 [ INFO][       Thread-253503][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 11:38:33,688 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 11:38:33,688 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 11:38:34,695 [DEBUG][       Thread-253503][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 11:38:34,696 [DEBUG][       Thread-253503][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 11:38:34,743 [DEBUG][       Thread-253503][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 11:38:34,743 [DEBUG][       Thread-253503][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 11:38:34,752 [DEBUG][       Thread-253503][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 11:38:34,761 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 11:38:34,761 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 11:38:34,769 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 11:38:34,778 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 11:38:34,778 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 11:38:34,778 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 11:38:34,789 [DEBUG][       Thread-253503][   transport.py][1871] : EOF in transport thread
2025-06-13 11:38:36,124 [DEBUG][Thread-253505 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:38:36,469 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:38:36,470 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:38:44,785 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 11:38:44,786 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 11:38:44,786 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 11:38:44,788 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 11:38:45,142 [DEBUG][Thread-253506 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:38:45,253 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 11, 38, 15), 11.42, 45.25, 0.0, 17.12, 10.76, 0, 0, 0, 2, 0, 0),)
2025-06-13 11:38:45,253 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 11:38:15
2025-06-13 11:38:45,335 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 11:38:45,340 [DEBUG][       Thread-253507][   transport.py][1871] : starting thread (client mode): 0x863bc7f0
2025-06-13 11:38:45,340 [DEBUG][       Thread-253507][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 11:38:45,360 [DEBUG][       Thread-253507][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 11:38:45,360 [ INFO][       Thread-253507][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 11:38:45,364 [DEBUG][       Thread-253507][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 11:38:45,364 [DEBUG][       Thread-253507][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 11:38:45,364 [DEBUG][       Thread-253507][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 11:38:45,364 [DEBUG][       Thread-253507][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:38:45,364 [DEBUG][       Thread-253507][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:38:45,364 [DEBUG][       Thread-253507][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:38:45,364 [DEBUG][       Thread-253507][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:38:45,364 [DEBUG][       Thread-253507][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 11:38:45,364 [DEBUG][       Thread-253507][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 11:38:45,364 [DEBUG][       Thread-253507][   transport.py][1871] : client lang: <none>
2025-06-13 11:38:45,364 [DEBUG][       Thread-253507][   transport.py][1871] : server lang: <none>
2025-06-13 11:38:45,364 [DEBUG][       Thread-253507][   transport.py][1871] : kex follows: False
2025-06-13 11:38:45,364 [DEBUG][       Thread-253507][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 11:38:45,364 [DEBUG][       Thread-253507][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 11:38:45,364 [DEBUG][       Thread-253507][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 11:38:45,364 [DEBUG][       Thread-253507][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 11:38:45,364 [DEBUG][       Thread-253507][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 11:38:45,364 [DEBUG][       Thread-253507][   transport.py][1871] : Compression: none
2025-06-13 11:38:45,364 [DEBUG][       Thread-253507][   transport.py][1871] : === End of kex handshake ===
2025-06-13 11:38:45,381 [DEBUG][       Thread-253507][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 11:38:45,381 [DEBUG][       Thread-253507][   transport.py][1871] : Switch to new keys ...
2025-06-13 11:38:45,382 [DEBUG][       Thread-253507][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 11:38:45,382 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 11:38:45,382 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 11:38:45,382 [DEBUG][       Thread-253507][   transport.py][1871] : userauth is OK
2025-06-13 11:38:45,395 [ INFO][       Thread-253507][   transport.py][1871] : Authentication (password) successful!
2025-06-13 11:38:45,395 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 11:38:46,009 [DEBUG][       Thread-253507][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 11:38:46,009 [DEBUG][       Thread-253507][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 11:38:46,052 [DEBUG][       Thread-253507][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 11:38:46,053 [DEBUG][       Thread-253507][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 11:38:46,055 [DEBUG][       Thread-253507][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 11:38:46,067 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 11:38:46,067 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 11:38:46,068 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 11:38:46,069 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 11:38:46,073 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 11:38:46,074 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 11:38:46,074 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 11:38:46,074 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 11:38:46,074 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.401675 -999.00  +10.80  20.51     50   +0.90 1 1 1 1 1   888    0 10.56 33.04 ----- 23.4 20.5 47.6 27.6 15.1 -27.9 13.8 -29.2 13.3 -27.9 14.6 -26.6
2025-06-13 11:38:46,074 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 11:38:46,074 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 11:38:46,074 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.401675
2025-06-13 11:38:46,074 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 11:38:46,075 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 11:38:46,075 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 11:38:46,075 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 11:38:46,075 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 11:38:46,075 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T11:38:15', tmtdew=11.42, humidity=45.25, cloud=0.0, wind=17.12, temperature=10.76, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T09:38:24.720', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 11:38:46,076 [DEBUG][       Thread-253507][   transport.py][1871] : EOF in transport thread
2025-06-13 11:38:46,149 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 11:38:46,162 [DEBUG][       Thread-253510][   transport.py][1871] : starting thread (client mode): 0x863c8880
2025-06-13 11:38:46,162 [DEBUG][       Thread-253510][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 11:38:46,177 [DEBUG][       Thread-253510][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 11:38:46,177 [ INFO][       Thread-253510][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 11:38:46,185 [DEBUG][       Thread-253510][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 11:38:46,185 [DEBUG][       Thread-253510][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 11:38:46,185 [DEBUG][       Thread-253510][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 11:38:46,185 [DEBUG][       Thread-253510][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:38:46,185 [DEBUG][       Thread-253510][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:38:46,185 [DEBUG][       Thread-253510][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:38:46,185 [DEBUG][       Thread-253510][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:38:46,185 [DEBUG][       Thread-253510][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 11:38:46,185 [DEBUG][       Thread-253510][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 11:38:46,185 [DEBUG][       Thread-253510][   transport.py][1871] : client lang: <none>
2025-06-13 11:38:46,185 [DEBUG][       Thread-253510][   transport.py][1871] : server lang: <none>
2025-06-13 11:38:46,185 [DEBUG][       Thread-253510][   transport.py][1871] : kex follows: False
2025-06-13 11:38:46,185 [DEBUG][       Thread-253510][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 11:38:46,185 [DEBUG][       Thread-253510][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 11:38:46,185 [DEBUG][       Thread-253510][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 11:38:46,185 [DEBUG][       Thread-253510][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 11:38:46,185 [DEBUG][       Thread-253510][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 11:38:46,185 [DEBUG][       Thread-253510][   transport.py][1871] : Compression: none
2025-06-13 11:38:46,185 [DEBUG][       Thread-253510][   transport.py][1871] : === End of kex handshake ===
2025-06-13 11:38:46,246 [DEBUG][       Thread-253510][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 11:38:46,246 [DEBUG][       Thread-253510][   transport.py][1871] : Switch to new keys ...
2025-06-13 11:38:46,247 [DEBUG][       Thread-253510][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 11:38:46,247 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 11:38:46,247 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 11:38:46,307 [DEBUG][       Thread-253510][   transport.py][1871] : userauth is OK
2025-06-13 11:38:46,307 [DEBUG][       Thread-253510][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 11:38:46,307 [DEBUG][       Thread-253510][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 11:38:46,307 [DEBUG][       Thread-253510][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 11:38:46,307 [DEBUG][       Thread-253510][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 11:38:46,325 [ INFO][       Thread-253510][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 11:38:46,325 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 11:38:46,325 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 11:38:47,358 [DEBUG][       Thread-253510][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 11:38:47,358 [DEBUG][       Thread-253510][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 11:38:47,407 [DEBUG][       Thread-253510][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 11:38:47,407 [DEBUG][       Thread-253510][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 11:38:47,416 [DEBUG][       Thread-253510][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 11:38:47,424 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 11:38:47,424 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 11:38:47,432 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 11:38:47,440 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 11:38:47,440 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 11:38:47,440 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 11:38:47,447 [DEBUG][       Thread-253510][   transport.py][1871] : EOF in transport thread
2025-06-13 11:38:54,160 [DEBUG][Thread-253512 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:38:57,450 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 11:38:57,450 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 11:38:57,450 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 11:38:57,453 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 11:38:57,908 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 11, 38, 47), 11.42, 45.22, 0.0, 16.34, 10.74, 0, 0, 0, 2, 0, 0),)
2025-06-13 11:38:57,908 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 11:38:47
2025-06-13 11:38:57,989 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 11:38:57,993 [DEBUG][       Thread-253513][   transport.py][1871] : starting thread (client mode): 0x84207a90
2025-06-13 11:38:57,993 [DEBUG][       Thread-253513][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 11:38:58,014 [DEBUG][       Thread-253513][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 11:38:58,014 [ INFO][       Thread-253513][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 11:38:58,017 [DEBUG][       Thread-253513][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 11:38:58,017 [DEBUG][       Thread-253513][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 11:38:58,017 [DEBUG][       Thread-253513][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 11:38:58,017 [DEBUG][       Thread-253513][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:38:58,018 [DEBUG][       Thread-253513][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:38:58,018 [DEBUG][       Thread-253513][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:38:58,018 [DEBUG][       Thread-253513][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:38:58,018 [DEBUG][       Thread-253513][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 11:38:58,018 [DEBUG][       Thread-253513][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 11:38:58,018 [DEBUG][       Thread-253513][   transport.py][1871] : client lang: <none>
2025-06-13 11:38:58,018 [DEBUG][       Thread-253513][   transport.py][1871] : server lang: <none>
2025-06-13 11:38:58,018 [DEBUG][       Thread-253513][   transport.py][1871] : kex follows: False
2025-06-13 11:38:58,018 [DEBUG][       Thread-253513][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 11:38:58,018 [DEBUG][       Thread-253513][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 11:38:58,018 [DEBUG][       Thread-253513][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 11:38:58,018 [DEBUG][       Thread-253513][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 11:38:58,018 [DEBUG][       Thread-253513][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 11:38:58,018 [DEBUG][       Thread-253513][   transport.py][1871] : Compression: none
2025-06-13 11:38:58,018 [DEBUG][       Thread-253513][   transport.py][1871] : === End of kex handshake ===
2025-06-13 11:38:58,038 [DEBUG][       Thread-253513][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 11:38:58,038 [DEBUG][       Thread-253513][   transport.py][1871] : Switch to new keys ...
2025-06-13 11:38:58,039 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 11:38:58,039 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 11:38:58,040 [DEBUG][       Thread-253513][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 11:38:58,041 [DEBUG][       Thread-253513][   transport.py][1871] : userauth is OK
2025-06-13 11:38:58,066 [ INFO][       Thread-253513][   transport.py][1871] : Authentication (password) successful!
2025-06-13 11:38:58,067 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 11:38:58,638 [DEBUG][       Thread-253513][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 11:38:58,638 [DEBUG][       Thread-253513][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 11:38:58,681 [DEBUG][       Thread-253513][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 11:38:58,681 [DEBUG][       Thread-253513][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 11:38:58,685 [DEBUG][       Thread-253513][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 11:38:58,697 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 11:38:58,697 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 11:38:58,698 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 11:38:58,700 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 11:38:58,706 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 11:38:58,707 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 11:38:58,707 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 11:38:58,708 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 11:38:58,708 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.401675 -999.00  +10.80  20.51     50   +0.90 1 1 1 1 1   888    0 10.56 33.04 ----- 23.4 20.5 47.6 27.6 15.1 -27.9 13.8 -29.2 13.3 -27.9 14.6 -26.6
2025-06-13 11:38:58,708 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 11:38:58,708 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 11:38:58,708 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.401675
2025-06-13 11:38:58,709 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 11:38:58,709 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 11:38:58,709 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 11:38:58,710 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 11:38:58,710 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 11:38:58,710 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T11:38:47', tmtdew=11.42, humidity=45.22, cloud=0.0, wind=16.34, temperature=10.74, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T09:38:24.720', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 11:38:58,711 [DEBUG][       Thread-253513][   transport.py][1871] : EOF in transport thread
2025-06-13 11:38:58,794 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 11:38:58,807 [DEBUG][       Thread-253516][   transport.py][1871] : starting thread (client mode): 0x863699c0
2025-06-13 11:38:58,807 [DEBUG][       Thread-253516][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 11:38:58,822 [DEBUG][       Thread-253516][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 11:38:58,822 [ INFO][       Thread-253516][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 11:38:58,829 [DEBUG][       Thread-253516][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 11:38:58,830 [DEBUG][       Thread-253516][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 11:38:58,830 [DEBUG][       Thread-253516][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 11:38:58,830 [DEBUG][       Thread-253516][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:38:58,830 [DEBUG][       Thread-253516][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:38:58,830 [DEBUG][       Thread-253516][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:38:58,830 [DEBUG][       Thread-253516][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:38:58,830 [DEBUG][       Thread-253516][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 11:38:58,830 [DEBUG][       Thread-253516][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 11:38:58,830 [DEBUG][       Thread-253516][   transport.py][1871] : client lang: <none>
2025-06-13 11:38:58,830 [DEBUG][       Thread-253516][   transport.py][1871] : server lang: <none>
2025-06-13 11:38:58,830 [DEBUG][       Thread-253516][   transport.py][1871] : kex follows: False
2025-06-13 11:38:58,830 [DEBUG][       Thread-253516][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 11:38:58,830 [DEBUG][       Thread-253516][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 11:38:58,830 [DEBUG][       Thread-253516][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 11:38:58,830 [DEBUG][       Thread-253516][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 11:38:58,830 [DEBUG][       Thread-253516][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 11:38:58,830 [DEBUG][       Thread-253516][   transport.py][1871] : Compression: none
2025-06-13 11:38:58,830 [DEBUG][       Thread-253516][   transport.py][1871] : === End of kex handshake ===
2025-06-13 11:38:58,891 [DEBUG][       Thread-253516][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 11:38:58,892 [DEBUG][       Thread-253516][   transport.py][1871] : Switch to new keys ...
2025-06-13 11:38:58,893 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 11:38:58,893 [DEBUG][       Thread-253516][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 11:38:58,894 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 11:38:58,948 [DEBUG][       Thread-253516][   transport.py][1871] : userauth is OK
2025-06-13 11:38:58,948 [DEBUG][       Thread-253516][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 11:38:58,948 [DEBUG][       Thread-253516][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 11:38:58,948 [DEBUG][       Thread-253516][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 11:38:58,949 [DEBUG][       Thread-253516][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 11:38:58,967 [ INFO][       Thread-253516][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 11:38:58,968 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 11:38:58,968 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 11:38:59,974 [DEBUG][       Thread-253516][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 11:38:59,975 [DEBUG][       Thread-253516][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 11:39:00,026 [DEBUG][       Thread-253516][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 11:39:00,026 [DEBUG][       Thread-253516][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 11:39:00,035 [DEBUG][       Thread-253516][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 11:39:00,044 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 11:39:00,044 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 11:39:00,053 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 11:39:00,062 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 11:39:00,062 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 11:39:00,063 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 11:39:00,070 [DEBUG][       Thread-253516][   transport.py][1871] : EOF in transport thread
2025-06-13 11:39:03,183 [DEBUG][Thread-253518 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:39:09,767 [DEBUG][Thread-253519 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:39:10,068 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 11:39:10,068 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 11:39:10,068 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 11:39:10,071 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 11:39:10,536 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 11, 38, 47), 11.42, 45.22, 0.0, 16.34, 10.74, 0, 0, 0, 2, 0, 0),)
2025-06-13 11:39:10,536 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 11:38:47
2025-06-13 11:39:10,617 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 11:39:10,623 [DEBUG][       Thread-253520][   transport.py][1871] : starting thread (client mode): 0x863bf880
2025-06-13 11:39:10,623 [DEBUG][       Thread-253520][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 11:39:10,649 [DEBUG][       Thread-253520][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 11:39:10,649 [ INFO][       Thread-253520][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 11:39:10,651 [DEBUG][       Thread-253520][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 11:39:10,651 [DEBUG][       Thread-253520][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 11:39:10,651 [DEBUG][       Thread-253520][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 11:39:10,651 [DEBUG][       Thread-253520][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:39:10,651 [DEBUG][       Thread-253520][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:39:10,651 [DEBUG][       Thread-253520][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:39:10,651 [DEBUG][       Thread-253520][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:39:10,651 [DEBUG][       Thread-253520][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 11:39:10,651 [DEBUG][       Thread-253520][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 11:39:10,651 [DEBUG][       Thread-253520][   transport.py][1871] : client lang: <none>
2025-06-13 11:39:10,652 [DEBUG][       Thread-253520][   transport.py][1871] : server lang: <none>
2025-06-13 11:39:10,652 [DEBUG][       Thread-253520][   transport.py][1871] : kex follows: False
2025-06-13 11:39:10,652 [DEBUG][       Thread-253520][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 11:39:10,652 [DEBUG][       Thread-253520][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 11:39:10,652 [DEBUG][       Thread-253520][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 11:39:10,652 [DEBUG][       Thread-253520][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 11:39:10,652 [DEBUG][       Thread-253520][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 11:39:10,652 [DEBUG][       Thread-253520][   transport.py][1871] : Compression: none
2025-06-13 11:39:10,652 [DEBUG][       Thread-253520][   transport.py][1871] : === End of kex handshake ===
2025-06-13 11:39:10,663 [DEBUG][       Thread-253520][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 11:39:10,664 [DEBUG][       Thread-253520][   transport.py][1871] : Switch to new keys ...
2025-06-13 11:39:10,664 [DEBUG][       Thread-253520][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 11:39:10,665 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 11:39:10,665 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 11:39:10,666 [DEBUG][       Thread-253520][   transport.py][1871] : userauth is OK
2025-06-13 11:39:10,691 [ INFO][       Thread-253520][   transport.py][1871] : Authentication (password) successful!
2025-06-13 11:39:10,692 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 11:39:11,291 [DEBUG][       Thread-253520][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 11:39:11,291 [DEBUG][       Thread-253520][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 11:39:11,333 [DEBUG][       Thread-253520][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 11:39:11,333 [DEBUG][       Thread-253520][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 11:39:11,336 [DEBUG][       Thread-253520][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 11:39:11,349 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 11:39:11,349 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 11:39:11,351 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 11:39:11,353 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 11:39:11,359 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 11:39:11,361 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 11:39:11,361 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 11:39:11,362 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 11:39:11,362 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.401675 -999.00  +10.80  20.51     50   +0.90 1 1 1 1 1   888    0 10.56 33.04 ----- 23.4 20.5 47.6 27.6 15.1 -27.9 13.8 -29.2 13.3 -27.9 14.6 -26.6
2025-06-13 11:39:11,362 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 11:39:11,362 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 11:39:11,362 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.401675
2025-06-13 11:39:11,363 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 11:39:11,363 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 11:39:11,363 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 11:39:11,363 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 11:39:11,363 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 11:39:11,364 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T11:38:47', tmtdew=11.42, humidity=45.22, cloud=0.0, wind=16.34, temperature=10.74, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T09:38:24.720', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 11:39:11,364 [DEBUG][       Thread-253520][   transport.py][1871] : EOF in transport thread
2025-06-13 11:39:11,448 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 11:39:11,462 [DEBUG][       Thread-253523][   transport.py][1871] : starting thread (client mode): 0x8636a6e0
2025-06-13 11:39:11,462 [DEBUG][       Thread-253523][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 11:39:11,480 [DEBUG][       Thread-253523][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 11:39:11,480 [ INFO][       Thread-253523][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 11:39:11,488 [DEBUG][       Thread-253523][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 11:39:11,488 [DEBUG][       Thread-253523][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 11:39:11,488 [DEBUG][       Thread-253523][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 11:39:11,488 [DEBUG][       Thread-253523][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:39:11,488 [DEBUG][       Thread-253523][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:39:11,488 [DEBUG][       Thread-253523][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:39:11,488 [DEBUG][       Thread-253523][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:39:11,488 [DEBUG][       Thread-253523][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 11:39:11,488 [DEBUG][       Thread-253523][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 11:39:11,489 [DEBUG][       Thread-253523][   transport.py][1871] : client lang: <none>
2025-06-13 11:39:11,489 [DEBUG][       Thread-253523][   transport.py][1871] : server lang: <none>
2025-06-13 11:39:11,489 [DEBUG][       Thread-253523][   transport.py][1871] : kex follows: False
2025-06-13 11:39:11,489 [DEBUG][       Thread-253523][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 11:39:11,489 [DEBUG][       Thread-253523][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 11:39:11,489 [DEBUG][       Thread-253523][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 11:39:11,489 [DEBUG][       Thread-253523][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 11:39:11,489 [DEBUG][       Thread-253523][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 11:39:11,489 [DEBUG][       Thread-253523][   transport.py][1871] : Compression: none
2025-06-13 11:39:11,489 [DEBUG][       Thread-253523][   transport.py][1871] : === End of kex handshake ===
2025-06-13 11:39:11,550 [DEBUG][       Thread-253523][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 11:39:11,551 [DEBUG][       Thread-253523][   transport.py][1871] : Switch to new keys ...
2025-06-13 11:39:11,551 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 11:39:11,552 [DEBUG][       Thread-253523][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 11:39:11,553 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 11:39:11,607 [DEBUG][       Thread-253523][   transport.py][1871] : userauth is OK
2025-06-13 11:39:11,608 [DEBUG][       Thread-253523][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 11:39:11,608 [DEBUG][       Thread-253523][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 11:39:11,608 [DEBUG][       Thread-253523][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 11:39:11,608 [DEBUG][       Thread-253523][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 11:39:11,627 [ INFO][       Thread-253523][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 11:39:11,627 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 11:39:11,628 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 11:39:12,220 [DEBUG][Thread-253525 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:39:12,662 [DEBUG][       Thread-253523][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 11:39:12,662 [DEBUG][       Thread-253523][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 11:39:12,715 [DEBUG][       Thread-253523][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 11:39:12,715 [DEBUG][       Thread-253523][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 11:39:12,730 [DEBUG][       Thread-253523][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 11:39:12,741 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 11:39:12,741 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 11:39:12,753 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 11:39:12,763 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 11:39:12,764 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 11:39:12,764 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 11:39:12,775 [DEBUG][       Thread-253523][   transport.py][1871] : EOF in transport thread
2025-06-13 11:39:21,240 [DEBUG][Thread-253526 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:39:22,775 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 11:39:22,775 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 11:39:22,775 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 11:39:22,778 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 11:39:23,236 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 11, 39, 19), 11.25, 45.9, 0.0, 22.53, 10.77, 0, 0, 0, 2, 0, 0),)
2025-06-13 11:39:23,236 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 11:39:19
2025-06-13 11:39:23,319 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 11:39:23,323 [DEBUG][       Thread-253527][   transport.py][1871] : starting thread (client mode): 0x84204f40
2025-06-13 11:39:23,323 [DEBUG][       Thread-253527][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 11:39:23,345 [DEBUG][       Thread-253527][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 11:39:23,345 [ INFO][       Thread-253527][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 11:39:23,349 [DEBUG][       Thread-253527][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 11:39:23,349 [DEBUG][       Thread-253527][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 11:39:23,349 [DEBUG][       Thread-253527][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 11:39:23,349 [DEBUG][       Thread-253527][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:39:23,349 [DEBUG][       Thread-253527][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:39:23,349 [DEBUG][       Thread-253527][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:39:23,349 [DEBUG][       Thread-253527][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:39:23,349 [DEBUG][       Thread-253527][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 11:39:23,349 [DEBUG][       Thread-253527][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 11:39:23,349 [DEBUG][       Thread-253527][   transport.py][1871] : client lang: <none>
2025-06-13 11:39:23,349 [DEBUG][       Thread-253527][   transport.py][1871] : server lang: <none>
2025-06-13 11:39:23,350 [DEBUG][       Thread-253527][   transport.py][1871] : kex follows: False
2025-06-13 11:39:23,350 [DEBUG][       Thread-253527][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 11:39:23,350 [DEBUG][       Thread-253527][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 11:39:23,350 [DEBUG][       Thread-253527][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 11:39:23,350 [DEBUG][       Thread-253527][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 11:39:23,350 [DEBUG][       Thread-253527][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 11:39:23,350 [DEBUG][       Thread-253527][   transport.py][1871] : Compression: none
2025-06-13 11:39:23,350 [DEBUG][       Thread-253527][   transport.py][1871] : === End of kex handshake ===
2025-06-13 11:39:23,366 [DEBUG][       Thread-253527][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 11:39:23,366 [DEBUG][       Thread-253527][   transport.py][1871] : Switch to new keys ...
2025-06-13 11:39:23,367 [DEBUG][       Thread-253527][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 11:39:23,367 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 11:39:23,367 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 11:39:23,368 [DEBUG][       Thread-253527][   transport.py][1871] : userauth is OK
2025-06-13 11:39:23,381 [ INFO][       Thread-253527][   transport.py][1871] : Authentication (password) successful!
2025-06-13 11:39:23,382 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 11:39:24,018 [DEBUG][       Thread-253527][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 11:39:24,018 [DEBUG][       Thread-253527][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 11:39:24,061 [DEBUG][       Thread-253527][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 11:39:24,061 [DEBUG][       Thread-253527][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 11:39:24,065 [DEBUG][       Thread-253527][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 11:39:24,076 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 11:39:24,076 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 11:39:24,078 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 11:39:24,080 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 11:39:24,086 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 11:39:24,087 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 11:39:24,088 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 11:39:24,088 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 11:39:24,089 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.402022 -999.00  +10.80  17.83     49   +0.50 1 1 1 1 1   888    0 10.69 35.90 ----- 25.9 17.8 45.0 28.2 15.2 -28.1 13.8 -29.5 13.2 -28.5 14.6 -26.6
2025-06-13 11:39:24,089 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 11:39:24,089 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 11:39:24,089 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.402022
2025-06-13 11:39:24,089 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 11:39:24,090 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 11:39:24,090 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 11:39:24,090 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 11:39:24,090 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 11:39:24,090 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T11:39:19', tmtdew=11.25, humidity=45.9, cloud=0.0, wind=22.53, temperature=10.77, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T09:38:54.701', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 11:39:24,091 [DEBUG][       Thread-253527][   transport.py][1871] : EOF in transport thread
2025-06-13 11:39:24,173 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 11:39:24,183 [DEBUG][       Thread-253530][   transport.py][1871] : starting thread (client mode): 0x867b4970
2025-06-13 11:39:24,183 [DEBUG][       Thread-253530][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 11:39:24,197 [DEBUG][       Thread-253530][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 11:39:24,198 [ INFO][       Thread-253530][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 11:39:24,205 [DEBUG][       Thread-253530][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 11:39:24,205 [DEBUG][       Thread-253530][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 11:39:24,205 [DEBUG][       Thread-253530][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 11:39:24,205 [DEBUG][       Thread-253530][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:39:24,205 [DEBUG][       Thread-253530][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:39:24,206 [DEBUG][       Thread-253530][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:39:24,206 [DEBUG][       Thread-253530][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:39:24,206 [DEBUG][       Thread-253530][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 11:39:24,206 [DEBUG][       Thread-253530][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 11:39:24,206 [DEBUG][       Thread-253530][   transport.py][1871] : client lang: <none>
2025-06-13 11:39:24,206 [DEBUG][       Thread-253530][   transport.py][1871] : server lang: <none>
2025-06-13 11:39:24,206 [DEBUG][       Thread-253530][   transport.py][1871] : kex follows: False
2025-06-13 11:39:24,206 [DEBUG][       Thread-253530][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 11:39:24,206 [DEBUG][       Thread-253530][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 11:39:24,206 [DEBUG][       Thread-253530][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 11:39:24,206 [DEBUG][       Thread-253530][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 11:39:24,207 [DEBUG][       Thread-253530][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 11:39:24,207 [DEBUG][       Thread-253530][   transport.py][1871] : Compression: none
2025-06-13 11:39:24,207 [DEBUG][       Thread-253530][   transport.py][1871] : === End of kex handshake ===
2025-06-13 11:39:24,264 [DEBUG][       Thread-253530][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 11:39:24,265 [DEBUG][       Thread-253530][   transport.py][1871] : Switch to new keys ...
2025-06-13 11:39:24,266 [DEBUG][       Thread-253530][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 11:39:24,267 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 11:39:24,267 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 11:39:24,323 [DEBUG][       Thread-253530][   transport.py][1871] : userauth is OK
2025-06-13 11:39:24,323 [DEBUG][       Thread-253530][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 11:39:24,323 [DEBUG][       Thread-253530][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 11:39:24,323 [DEBUG][       Thread-253530][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 11:39:24,323 [DEBUG][       Thread-253530][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 11:39:24,339 [ INFO][       Thread-253530][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 11:39:24,339 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 11:39:24,339 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 11:39:25,356 [DEBUG][       Thread-253530][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 11:39:25,356 [DEBUG][       Thread-253530][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 11:39:25,407 [DEBUG][       Thread-253530][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 11:39:25,407 [DEBUG][       Thread-253530][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 11:39:25,416 [DEBUG][       Thread-253530][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 11:39:25,425 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 11:39:25,425 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 11:39:25,441 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 11:39:25,456 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 11:39:25,456 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 11:39:25,456 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 11:39:25,464 [DEBUG][       Thread-253530][   transport.py][1871] : EOF in transport thread
2025-06-13 11:39:30,260 [DEBUG][Thread-253532 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:39:33,013 [DEBUG][Thread-253533 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:39:34,092 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:39:34,092 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:39:35,467 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 11:39:35,467 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 11:39:35,467 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 11:39:35,470 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 11:39:35,923 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 11, 39, 19), 11.25, 45.9, 0.0, 22.53, 10.77, 0, 0, 0, 2, 0, 0),)
2025-06-13 11:39:35,923 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 11:39:19
2025-06-13 11:39:36,005 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 11:39:36,011 [DEBUG][       Thread-253534][   transport.py][1871] : starting thread (client mode): 0x842075e0
2025-06-13 11:39:36,011 [DEBUG][       Thread-253534][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 11:39:36,031 [DEBUG][       Thread-253534][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 11:39:36,031 [ INFO][       Thread-253534][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 11:39:36,034 [DEBUG][       Thread-253534][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 11:39:36,034 [DEBUG][       Thread-253534][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 11:39:36,034 [DEBUG][       Thread-253534][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 11:39:36,034 [DEBUG][       Thread-253534][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:39:36,034 [DEBUG][       Thread-253534][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:39:36,034 [DEBUG][       Thread-253534][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:39:36,034 [DEBUG][       Thread-253534][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:39:36,034 [DEBUG][       Thread-253534][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 11:39:36,034 [DEBUG][       Thread-253534][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 11:39:36,034 [DEBUG][       Thread-253534][   transport.py][1871] : client lang: <none>
2025-06-13 11:39:36,034 [DEBUG][       Thread-253534][   transport.py][1871] : server lang: <none>
2025-06-13 11:39:36,034 [DEBUG][       Thread-253534][   transport.py][1871] : kex follows: False
2025-06-13 11:39:36,034 [DEBUG][       Thread-253534][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 11:39:36,034 [DEBUG][       Thread-253534][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 11:39:36,034 [DEBUG][       Thread-253534][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 11:39:36,035 [DEBUG][       Thread-253534][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 11:39:36,035 [DEBUG][       Thread-253534][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 11:39:36,035 [DEBUG][       Thread-253534][   transport.py][1871] : Compression: none
2025-06-13 11:39:36,035 [DEBUG][       Thread-253534][   transport.py][1871] : === End of kex handshake ===
2025-06-13 11:39:36,051 [DEBUG][       Thread-253534][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 11:39:36,051 [DEBUG][       Thread-253534][   transport.py][1871] : Switch to new keys ...
2025-06-13 11:39:36,052 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 11:39:36,052 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 11:39:36,053 [DEBUG][       Thread-253534][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 11:39:36,054 [DEBUG][       Thread-253534][   transport.py][1871] : userauth is OK
2025-06-13 11:39:36,079 [ INFO][       Thread-253534][   transport.py][1871] : Authentication (password) successful!
2025-06-13 11:39:36,079 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 11:39:36,608 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:39:36,609 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:39:36,703 [DEBUG][       Thread-253534][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 11:39:36,703 [DEBUG][       Thread-253534][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 11:39:36,745 [DEBUG][       Thread-253534][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 11:39:36,745 [DEBUG][       Thread-253534][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 11:39:36,749 [DEBUG][       Thread-253534][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 11:39:36,761 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 11:39:36,761 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 11:39:36,763 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 11:39:36,765 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 11:39:36,770 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 11:39:36,772 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 11:39:36,772 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 11:39:36,773 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 11:39:36,773 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.402022 -999.00  +10.80  17.83     49   +0.50 1 1 1 1 1   888    0 10.69 35.90 ----- 25.9 17.8 45.0 28.2 15.2 -28.1 13.8 -29.5 13.2 -28.5 14.6 -26.6
2025-06-13 11:39:36,773 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 11:39:36,773 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 11:39:36,773 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.402022
2025-06-13 11:39:36,773 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 11:39:36,774 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 11:39:36,774 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 11:39:36,774 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 11:39:36,774 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 11:39:36,774 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T11:39:19', tmtdew=11.25, humidity=45.9, cloud=0.0, wind=22.53, temperature=10.77, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T09:38:54.701', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 11:39:36,775 [DEBUG][       Thread-253534][   transport.py][1871] : EOF in transport thread
2025-06-13 11:39:36,858 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 11:39:36,870 [DEBUG][       Thread-253537][   transport.py][1871] : starting thread (client mode): 0x863eec20
2025-06-13 11:39:36,870 [DEBUG][       Thread-253537][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 11:39:36,891 [DEBUG][       Thread-253537][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 11:39:36,891 [ INFO][       Thread-253537][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 11:39:36,900 [DEBUG][       Thread-253537][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 11:39:36,900 [DEBUG][       Thread-253537][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 11:39:36,900 [DEBUG][       Thread-253537][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 11:39:36,900 [DEBUG][       Thread-253537][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:39:36,900 [DEBUG][       Thread-253537][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:39:36,900 [DEBUG][       Thread-253537][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:39:36,900 [DEBUG][       Thread-253537][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:39:36,901 [DEBUG][       Thread-253537][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 11:39:36,901 [DEBUG][       Thread-253537][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 11:39:36,901 [DEBUG][       Thread-253537][   transport.py][1871] : client lang: <none>
2025-06-13 11:39:36,901 [DEBUG][       Thread-253537][   transport.py][1871] : server lang: <none>
2025-06-13 11:39:36,901 [DEBUG][       Thread-253537][   transport.py][1871] : kex follows: False
2025-06-13 11:39:36,901 [DEBUG][       Thread-253537][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 11:39:36,901 [DEBUG][       Thread-253537][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 11:39:36,901 [DEBUG][       Thread-253537][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 11:39:36,901 [DEBUG][       Thread-253537][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 11:39:36,901 [DEBUG][       Thread-253537][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 11:39:36,901 [DEBUG][       Thread-253537][   transport.py][1871] : Compression: none
2025-06-13 11:39:36,901 [DEBUG][       Thread-253537][   transport.py][1871] : === End of kex handshake ===
2025-06-13 11:39:36,963 [DEBUG][       Thread-253537][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 11:39:36,964 [DEBUG][       Thread-253537][   transport.py][1871] : Switch to new keys ...
2025-06-13 11:39:36,964 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 11:39:36,965 [DEBUG][       Thread-253537][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 11:39:36,966 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 11:39:37,024 [DEBUG][       Thread-253537][   transport.py][1871] : userauth is OK
2025-06-13 11:39:37,024 [DEBUG][       Thread-253537][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 11:39:37,024 [DEBUG][       Thread-253537][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 11:39:37,024 [DEBUG][       Thread-253537][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 11:39:37,024 [DEBUG][       Thread-253537][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 11:39:37,046 [ INFO][       Thread-253537][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 11:39:37,046 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 11:39:37,046 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 11:39:38,049 [DEBUG][       Thread-253537][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 11:39:38,049 [DEBUG][       Thread-253537][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 11:39:38,104 [DEBUG][       Thread-253537][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 11:39:38,104 [DEBUG][       Thread-253537][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 11:39:38,117 [DEBUG][       Thread-253537][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 11:39:38,132 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 11:39:38,133 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 11:39:38,142 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 11:39:38,151 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 11:39:38,151 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 11:39:38,152 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 11:39:38,160 [DEBUG][       Thread-253537][   transport.py][1871] : EOF in transport thread
2025-06-13 11:39:39,298 [DEBUG][Thread-253539 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:39:48,162 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 11:39:48,163 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 11:39:48,163 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 11:39:48,165 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 11:39:48,318 [DEBUG][Thread-253540 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:39:48,623 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 11, 39, 19), 11.25, 45.9, 0.0, 22.53, 10.77, 0, 0, 0, 2, 0, 0),)
2025-06-13 11:39:48,623 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 11:39:19
2025-06-13 11:39:48,704 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 11:39:48,708 [DEBUG][       Thread-253541][   transport.py][1871] : starting thread (client mode): 0x84205000
2025-06-13 11:39:48,708 [DEBUG][       Thread-253541][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 11:39:48,728 [DEBUG][       Thread-253541][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 11:39:48,728 [ INFO][       Thread-253541][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 11:39:48,731 [DEBUG][       Thread-253541][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 11:39:48,732 [DEBUG][       Thread-253541][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 11:39:48,732 [DEBUG][       Thread-253541][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 11:39:48,732 [DEBUG][       Thread-253541][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:39:48,732 [DEBUG][       Thread-253541][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:39:48,732 [DEBUG][       Thread-253541][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:39:48,732 [DEBUG][       Thread-253541][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:39:48,732 [DEBUG][       Thread-253541][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 11:39:48,732 [DEBUG][       Thread-253541][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 11:39:48,732 [DEBUG][       Thread-253541][   transport.py][1871] : client lang: <none>
2025-06-13 11:39:48,732 [DEBUG][       Thread-253541][   transport.py][1871] : server lang: <none>
2025-06-13 11:39:48,732 [DEBUG][       Thread-253541][   transport.py][1871] : kex follows: False
2025-06-13 11:39:48,732 [DEBUG][       Thread-253541][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 11:39:48,732 [DEBUG][       Thread-253541][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 11:39:48,732 [DEBUG][       Thread-253541][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 11:39:48,732 [DEBUG][       Thread-253541][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 11:39:48,732 [DEBUG][       Thread-253541][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 11:39:48,732 [DEBUG][       Thread-253541][   transport.py][1871] : Compression: none
2025-06-13 11:39:48,732 [DEBUG][       Thread-253541][   transport.py][1871] : === End of kex handshake ===
2025-06-13 11:39:48,748 [DEBUG][       Thread-253541][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 11:39:48,748 [DEBUG][       Thread-253541][   transport.py][1871] : Switch to new keys ...
2025-06-13 11:39:48,749 [DEBUG][       Thread-253541][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 11:39:48,749 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 11:39:48,749 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 11:39:48,750 [DEBUG][       Thread-253541][   transport.py][1871] : userauth is OK
2025-06-13 11:39:48,763 [ INFO][       Thread-253541][   transport.py][1871] : Authentication (password) successful!
2025-06-13 11:39:48,764 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 11:39:49,374 [DEBUG][       Thread-253541][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 11:39:49,374 [DEBUG][       Thread-253541][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 11:39:49,417 [DEBUG][       Thread-253541][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 11:39:49,417 [DEBUG][       Thread-253541][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 11:39:49,419 [DEBUG][       Thread-253541][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 11:39:49,431 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 11:39:49,431 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 11:39:49,433 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 11:39:49,434 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 11:39:49,439 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 11:39:49,441 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 11:39:49,441 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 11:39:49,442 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 11:39:49,442 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.402369 -999.00  +10.70  23.43     47   +0.10 1 1 1 1 1   888    0 10.88 40.28 ----- 21.9 23.4 36.9 29.3 15.1 -29.1 13.8 -29.6 13.3 -28.7 14.6 -26.4
2025-06-13 11:39:49,442 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 11:39:49,442 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 11:39:49,442 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.402369
2025-06-13 11:39:49,442 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 11:39:49,443 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 11:39:49,443 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 11:39:49,443 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 11:39:49,443 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 11:39:49,443 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T11:39:19', tmtdew=11.25, humidity=45.9, cloud=0.0, wind=22.53, temperature=10.77, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T09:39:24.682', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 11:39:49,443 [DEBUG][       Thread-253541][   transport.py][1871] : EOF in transport thread
2025-06-13 11:39:49,527 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 11:39:49,538 [DEBUG][       Thread-253544][   transport.py][1871] : starting thread (client mode): 0x863ef010
2025-06-13 11:39:49,538 [DEBUG][       Thread-253544][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 11:39:49,553 [DEBUG][       Thread-253544][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 11:39:49,553 [ INFO][       Thread-253544][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 11:39:49,561 [DEBUG][       Thread-253544][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 11:39:49,561 [DEBUG][       Thread-253544][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 11:39:49,561 [DEBUG][       Thread-253544][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 11:39:49,561 [DEBUG][       Thread-253544][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:39:49,561 [DEBUG][       Thread-253544][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:39:49,561 [DEBUG][       Thread-253544][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:39:49,561 [DEBUG][       Thread-253544][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:39:49,561 [DEBUG][       Thread-253544][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 11:39:49,561 [DEBUG][       Thread-253544][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 11:39:49,561 [DEBUG][       Thread-253544][   transport.py][1871] : client lang: <none>
2025-06-13 11:39:49,561 [DEBUG][       Thread-253544][   transport.py][1871] : server lang: <none>
2025-06-13 11:39:49,561 [DEBUG][       Thread-253544][   transport.py][1871] : kex follows: False
2025-06-13 11:39:49,561 [DEBUG][       Thread-253544][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 11:39:49,561 [DEBUG][       Thread-253544][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 11:39:49,562 [DEBUG][       Thread-253544][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 11:39:49,562 [DEBUG][       Thread-253544][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 11:39:49,562 [DEBUG][       Thread-253544][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 11:39:49,562 [DEBUG][       Thread-253544][   transport.py][1871] : Compression: none
2025-06-13 11:39:49,562 [DEBUG][       Thread-253544][   transport.py][1871] : === End of kex handshake ===
2025-06-13 11:39:49,629 [DEBUG][       Thread-253544][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 11:39:49,629 [DEBUG][       Thread-253544][   transport.py][1871] : Switch to new keys ...
2025-06-13 11:39:49,630 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 11:39:49,630 [DEBUG][       Thread-253544][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 11:39:49,631 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 11:39:49,691 [DEBUG][       Thread-253544][   transport.py][1871] : userauth is OK
2025-06-13 11:39:49,691 [DEBUG][       Thread-253544][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 11:39:49,691 [DEBUG][       Thread-253544][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 11:39:49,691 [DEBUG][       Thread-253544][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 11:39:49,691 [DEBUG][       Thread-253544][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 11:39:49,710 [ INFO][       Thread-253544][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 11:39:49,710 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 11:39:49,711 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 11:39:50,765 [DEBUG][       Thread-253544][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 11:39:50,765 [DEBUG][       Thread-253544][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 11:39:50,816 [DEBUG][       Thread-253544][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 11:39:50,816 [DEBUG][       Thread-253544][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 11:39:50,825 [DEBUG][       Thread-253544][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 11:39:50,834 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 11:39:50,835 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 11:39:50,845 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 11:39:50,854 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 11:39:50,854 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 11:39:50,855 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 11:39:50,864 [DEBUG][       Thread-253544][   transport.py][1871] : EOF in transport thread
2025-06-13 11:39:57,338 [DEBUG][Thread-253546 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:40:00,865 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 11:40:00,866 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 11:40:00,866 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 11:40:00,869 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 11:40:01,330 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 11, 39, 50), 11.32, 45.66, 0.0, 21.0, 10.71, 0, 0, 0, 2, 0, 0),)
2025-06-13 11:40:01,330 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 11:39:50
2025-06-13 11:40:01,411 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 11:40:01,417 [DEBUG][       Thread-253547][   transport.py][1871] : starting thread (client mode): 0x86369990
2025-06-13 11:40:01,417 [DEBUG][       Thread-253547][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 11:40:01,427 [DEBUG][       Thread-253547][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 11:40:01,427 [ INFO][       Thread-253547][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 11:40:01,430 [DEBUG][       Thread-253547][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 11:40:01,430 [DEBUG][       Thread-253547][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 11:40:01,430 [DEBUG][       Thread-253547][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 11:40:01,430 [DEBUG][       Thread-253547][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:40:01,430 [DEBUG][       Thread-253547][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:40:01,430 [DEBUG][       Thread-253547][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:40:01,430 [DEBUG][       Thread-253547][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:40:01,430 [DEBUG][       Thread-253547][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 11:40:01,430 [DEBUG][       Thread-253547][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 11:40:01,430 [DEBUG][       Thread-253547][   transport.py][1871] : client lang: <none>
2025-06-13 11:40:01,430 [DEBUG][       Thread-253547][   transport.py][1871] : server lang: <none>
2025-06-13 11:40:01,430 [DEBUG][       Thread-253547][   transport.py][1871] : kex follows: False
2025-06-13 11:40:01,430 [DEBUG][       Thread-253547][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 11:40:01,430 [DEBUG][       Thread-253547][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 11:40:01,430 [DEBUG][       Thread-253547][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 11:40:01,430 [DEBUG][       Thread-253547][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 11:40:01,430 [DEBUG][       Thread-253547][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 11:40:01,430 [DEBUG][       Thread-253547][   transport.py][1871] : Compression: none
2025-06-13 11:40:01,430 [DEBUG][       Thread-253547][   transport.py][1871] : === End of kex handshake ===
2025-06-13 11:40:01,446 [DEBUG][       Thread-253547][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 11:40:01,446 [DEBUG][       Thread-253547][   transport.py][1871] : Switch to new keys ...
2025-06-13 11:40:01,447 [DEBUG][       Thread-253547][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 11:40:01,447 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 11:40:01,447 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 11:40:01,448 [DEBUG][       Thread-253547][   transport.py][1871] : userauth is OK
2025-06-13 11:40:01,460 [ INFO][       Thread-253547][   transport.py][1871] : Authentication (password) successful!
2025-06-13 11:40:01,461 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 11:40:02,062 [DEBUG][       Thread-253547][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 11:40:02,062 [DEBUG][       Thread-253547][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 11:40:02,105 [DEBUG][       Thread-253547][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 11:40:02,105 [DEBUG][       Thread-253547][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 11:40:02,109 [DEBUG][       Thread-253547][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 11:40:02,121 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 11:40:02,122 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 11:40:02,124 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 11:40:02,126 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 11:40:02,132 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 11:40:02,134 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 11:40:02,134 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 11:40:02,135 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 11:40:02,135 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.402369 -999.00  +10.70  23.43     47   +0.10 1 1 1 1 1   888    0 10.88 40.28 ----- 21.9 23.4 36.9 29.3 15.1 -29.1 13.8 -29.6 13.3 -28.7 14.6 -26.4
2025-06-13 11:40:02,135 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 11:40:02,135 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 11:40:02,136 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.402369
2025-06-13 11:40:02,136 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 11:40:02,137 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 11:40:02,137 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 11:40:02,137 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 11:40:02,137 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 11:40:02,137 [DEBUG][       Thread-253547][   transport.py][1871] : EOF in transport thread
2025-06-13 11:40:02,137 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T11:39:50', tmtdew=11.32, humidity=45.66, cloud=0.0, wind=21.0, temperature=10.71, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T09:39:24.682', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 11:40:02,221 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 11:40:02,232 [DEBUG][       Thread-253550][   transport.py][1871] : starting thread (client mode): 0x867fe3b0
2025-06-13 11:40:02,232 [DEBUG][       Thread-253550][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 11:40:02,247 [DEBUG][       Thread-253550][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 11:40:02,247 [ INFO][       Thread-253550][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 11:40:02,254 [DEBUG][       Thread-253550][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 11:40:02,255 [DEBUG][       Thread-253550][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 11:40:02,255 [DEBUG][       Thread-253550][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 11:40:02,255 [DEBUG][       Thread-253550][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:40:02,255 [DEBUG][       Thread-253550][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:40:02,255 [DEBUG][       Thread-253550][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:40:02,255 [DEBUG][       Thread-253550][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:40:02,255 [DEBUG][       Thread-253550][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 11:40:02,255 [DEBUG][       Thread-253550][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 11:40:02,255 [DEBUG][       Thread-253550][   transport.py][1871] : client lang: <none>
2025-06-13 11:40:02,255 [DEBUG][       Thread-253550][   transport.py][1871] : server lang: <none>
2025-06-13 11:40:02,255 [DEBUG][       Thread-253550][   transport.py][1871] : kex follows: False
2025-06-13 11:40:02,255 [DEBUG][       Thread-253550][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 11:40:02,255 [DEBUG][       Thread-253550][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 11:40:02,255 [DEBUG][       Thread-253550][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 11:40:02,255 [DEBUG][       Thread-253550][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 11:40:02,255 [DEBUG][       Thread-253550][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 11:40:02,255 [DEBUG][       Thread-253550][   transport.py][1871] : Compression: none
2025-06-13 11:40:02,255 [DEBUG][       Thread-253550][   transport.py][1871] : === End of kex handshake ===
2025-06-13 11:40:02,318 [DEBUG][       Thread-253550][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 11:40:02,319 [DEBUG][       Thread-253550][   transport.py][1871] : Switch to new keys ...
2025-06-13 11:40:02,320 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 11:40:02,320 [DEBUG][       Thread-253550][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 11:40:02,321 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 11:40:02,380 [DEBUG][       Thread-253550][   transport.py][1871] : userauth is OK
2025-06-13 11:40:02,381 [DEBUG][       Thread-253550][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 11:40:02,381 [DEBUG][       Thread-253550][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 11:40:02,381 [DEBUG][       Thread-253550][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 11:40:02,381 [DEBUG][       Thread-253550][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 11:40:02,399 [ INFO][       Thread-253550][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 11:40:02,400 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 11:40:02,400 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 11:40:03,415 [DEBUG][       Thread-253550][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 11:40:03,415 [DEBUG][       Thread-253550][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 11:40:03,464 [DEBUG][       Thread-253550][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 11:40:03,464 [DEBUG][       Thread-253550][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 11:40:03,473 [DEBUG][       Thread-253550][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 11:40:03,481 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 11:40:03,481 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 11:40:03,489 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 11:40:03,498 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 11:40:03,498 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 11:40:03,498 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 11:40:03,506 [DEBUG][       Thread-253550][   transport.py][1871] : EOF in transport thread
2025-06-13 11:40:06,358 [DEBUG][Thread-253552 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:40:09,819 [DEBUG][Thread-253553 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:40:13,509 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 11:40:13,509 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 11:40:13,509 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 11:40:13,512 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 11:40:13,966 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 11, 39, 50), 11.32, 45.66, 0.0, 21.0, 10.71, 0, 0, 0, 2, 0, 0),)
2025-06-13 11:40:13,966 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 11:39:50
2025-06-13 11:40:14,048 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 11:40:14,055 [DEBUG][       Thread-253554][   transport.py][1871] : starting thread (client mode): 0x8636a830
2025-06-13 11:40:14,056 [DEBUG][       Thread-253554][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 11:40:14,077 [DEBUG][       Thread-253554][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 11:40:14,077 [ INFO][       Thread-253554][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 11:40:14,080 [DEBUG][       Thread-253554][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 11:40:14,080 [DEBUG][       Thread-253554][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 11:40:14,080 [DEBUG][       Thread-253554][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 11:40:14,080 [DEBUG][       Thread-253554][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:40:14,080 [DEBUG][       Thread-253554][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:40:14,081 [DEBUG][       Thread-253554][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:40:14,081 [DEBUG][       Thread-253554][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:40:14,081 [DEBUG][       Thread-253554][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 11:40:14,081 [DEBUG][       Thread-253554][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 11:40:14,081 [DEBUG][       Thread-253554][   transport.py][1871] : client lang: <none>
2025-06-13 11:40:14,081 [DEBUG][       Thread-253554][   transport.py][1871] : server lang: <none>
2025-06-13 11:40:14,081 [DEBUG][       Thread-253554][   transport.py][1871] : kex follows: False
2025-06-13 11:40:14,081 [DEBUG][       Thread-253554][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 11:40:14,081 [DEBUG][       Thread-253554][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 11:40:14,081 [DEBUG][       Thread-253554][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 11:40:14,081 [DEBUG][       Thread-253554][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 11:40:14,081 [DEBUG][       Thread-253554][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 11:40:14,081 [DEBUG][       Thread-253554][   transport.py][1871] : Compression: none
2025-06-13 11:40:14,081 [DEBUG][       Thread-253554][   transport.py][1871] : === End of kex handshake ===
2025-06-13 11:40:14,097 [DEBUG][       Thread-253554][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 11:40:14,097 [DEBUG][       Thread-253554][   transport.py][1871] : Switch to new keys ...
2025-06-13 11:40:14,098 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 11:40:14,098 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 11:40:14,098 [DEBUG][       Thread-253554][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 11:40:14,099 [DEBUG][       Thread-253554][   transport.py][1871] : userauth is OK
2025-06-13 11:40:14,123 [ INFO][       Thread-253554][   transport.py][1871] : Authentication (password) successful!
2025-06-13 11:40:14,124 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 11:40:15,385 [DEBUG][Thread-253556 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:40:19,497 [DEBUG][       Thread-253554][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 11:40:19,498 [DEBUG][       Thread-253554][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 11:40:19,540 [DEBUG][       Thread-253554][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 11:40:19,541 [DEBUG][       Thread-253554][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 11:40:19,543 [DEBUG][       Thread-253554][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 11:40:19,620 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 11:40:19,621 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 11:40:19,622 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 11:40:19,624 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 11:40:19,638 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 11:40:19,640 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 11:40:19,640 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 11:40:19,641 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 11:40:19,641 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.402369 -999.00  +10.70  23.43     47   +0.10 1 1 1 1 1   888    0 10.88 40.28 ----- 21.9 23.4 36.9 29.3 15.1 -29.1 13.8 -29.6 13.3 -28.7 14.6 -26.4
2025-06-13 11:40:19,641 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 11:40:19,641 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 11:40:19,641 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.402369
2025-06-13 11:40:19,642 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 11:40:19,642 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 11:40:19,642 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 11:40:19,642 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 11:40:19,642 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 11:40:19,642 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T11:39:50', tmtdew=11.32, humidity=45.66, cloud=0.0, wind=21.0, temperature=10.71, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T09:39:24.682', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 11:40:19,643 [DEBUG][       Thread-253554][   transport.py][1871] : EOF in transport thread
2025-06-13 11:40:19,726 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 11:40:19,739 [DEBUG][       Thread-253558][   transport.py][1871] : starting thread (client mode): 0x863a5210
2025-06-13 11:40:19,739 [DEBUG][       Thread-253558][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 11:40:19,757 [DEBUG][       Thread-253558][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 11:40:19,757 [ INFO][       Thread-253558][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 11:40:19,770 [DEBUG][       Thread-253558][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 11:40:19,770 [DEBUG][       Thread-253558][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 11:40:19,770 [DEBUG][       Thread-253558][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 11:40:19,770 [DEBUG][       Thread-253558][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:40:19,770 [DEBUG][       Thread-253558][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:40:19,770 [DEBUG][       Thread-253558][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:40:19,770 [DEBUG][       Thread-253558][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:40:19,770 [DEBUG][       Thread-253558][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 11:40:19,770 [DEBUG][       Thread-253558][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 11:40:19,770 [DEBUG][       Thread-253558][   transport.py][1871] : client lang: <none>
2025-06-13 11:40:19,770 [DEBUG][       Thread-253558][   transport.py][1871] : server lang: <none>
2025-06-13 11:40:19,770 [DEBUG][       Thread-253558][   transport.py][1871] : kex follows: False
2025-06-13 11:40:19,770 [DEBUG][       Thread-253558][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 11:40:19,770 [DEBUG][       Thread-253558][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 11:40:19,771 [DEBUG][       Thread-253558][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 11:40:19,771 [DEBUG][       Thread-253558][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 11:40:19,771 [DEBUG][       Thread-253558][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 11:40:19,771 [DEBUG][       Thread-253558][   transport.py][1871] : Compression: none
2025-06-13 11:40:19,771 [DEBUG][       Thread-253558][   transport.py][1871] : === End of kex handshake ===
2025-06-13 11:40:19,833 [DEBUG][       Thread-253558][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 11:40:19,833 [DEBUG][       Thread-253558][   transport.py][1871] : Switch to new keys ...
2025-06-13 11:40:19,834 [DEBUG][       Thread-253558][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 11:40:19,834 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 11:40:19,835 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 11:40:19,895 [DEBUG][       Thread-253558][   transport.py][1871] : userauth is OK
2025-06-13 11:40:19,895 [DEBUG][       Thread-253558][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 11:40:19,895 [DEBUG][       Thread-253558][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 11:40:19,895 [DEBUG][       Thread-253558][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 11:40:19,895 [DEBUG][       Thread-253558][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 11:40:19,914 [ INFO][       Thread-253558][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 11:40:19,914 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 11:40:19,915 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 11:40:20,936 [DEBUG][       Thread-253558][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 11:40:20,936 [DEBUG][       Thread-253558][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 11:40:20,988 [DEBUG][       Thread-253558][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 11:40:20,988 [DEBUG][       Thread-253558][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 11:40:20,998 [DEBUG][       Thread-253558][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 11:40:21,006 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 11:40:21,007 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 11:40:21,016 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 11:40:21,025 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 11:40:21,025 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 11:40:21,026 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 11:40:21,034 [DEBUG][       Thread-253558][   transport.py][1871] : EOF in transport thread
2025-06-13 11:40:24,404 [DEBUG][Thread-253560 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:40:31,036 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 11:40:31,036 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 11:40:31,036 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 11:40:31,039 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 11:40:31,488 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 11, 40, 22), 11.43, 45.29, 0.0, 17.73, 10.7, 0, 0, 0, 2, 0, 0),)
2025-06-13 11:40:31,488 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 11:40:22
2025-06-13 11:40:31,569 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 11:40:31,574 [DEBUG][       Thread-253561][   transport.py][1871] : starting thread (client mode): 0x863bd5a0
2025-06-13 11:40:31,574 [DEBUG][       Thread-253561][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 11:40:31,594 [DEBUG][       Thread-253561][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 11:40:31,594 [ INFO][       Thread-253561][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 11:40:31,598 [DEBUG][       Thread-253561][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 11:40:31,598 [DEBUG][       Thread-253561][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 11:40:31,598 [DEBUG][       Thread-253561][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 11:40:31,598 [DEBUG][       Thread-253561][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:40:31,598 [DEBUG][       Thread-253561][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:40:31,598 [DEBUG][       Thread-253561][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:40:31,598 [DEBUG][       Thread-253561][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:40:31,598 [DEBUG][       Thread-253561][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 11:40:31,598 [DEBUG][       Thread-253561][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 11:40:31,598 [DEBUG][       Thread-253561][   transport.py][1871] : client lang: <none>
2025-06-13 11:40:31,598 [DEBUG][       Thread-253561][   transport.py][1871] : server lang: <none>
2025-06-13 11:40:31,598 [DEBUG][       Thread-253561][   transport.py][1871] : kex follows: False
2025-06-13 11:40:31,598 [DEBUG][       Thread-253561][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 11:40:31,598 [DEBUG][       Thread-253561][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 11:40:31,598 [DEBUG][       Thread-253561][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 11:40:31,598 [DEBUG][       Thread-253561][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 11:40:31,598 [DEBUG][       Thread-253561][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 11:40:31,598 [DEBUG][       Thread-253561][   transport.py][1871] : Compression: none
2025-06-13 11:40:31,598 [DEBUG][       Thread-253561][   transport.py][1871] : === End of kex handshake ===
2025-06-13 11:40:31,613 [DEBUG][       Thread-253561][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 11:40:31,614 [DEBUG][       Thread-253561][   transport.py][1871] : Switch to new keys ...
2025-06-13 11:40:31,614 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 11:40:31,614 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 11:40:31,615 [DEBUG][       Thread-253561][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 11:40:31,616 [DEBUG][       Thread-253561][   transport.py][1871] : userauth is OK
2025-06-13 11:40:31,628 [ INFO][       Thread-253561][   transport.py][1871] : Authentication (password) successful!
2025-06-13 11:40:31,629 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 11:40:32,214 [DEBUG][       Thread-253561][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 11:40:32,214 [DEBUG][       Thread-253561][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 11:40:32,257 [DEBUG][       Thread-253561][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 11:40:32,257 [DEBUG][       Thread-253561][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 11:40:32,264 [DEBUG][       Thread-253561][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 11:40:32,275 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 11:40:32,275 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 11:40:32,279 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 11:40:32,283 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 11:40:32,288 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 11:40:32,290 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 11:40:32,290 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 11:40:32,291 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 11:40:32,291 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.402716 -999.00  +10.70  19.27     49   +0.60 1 1 1 1 1   888    0 10.74 40.09 ----- 22.8 19.3 53.8 27.7 15.2 -27.9 13.8 -30.0 13.3 -27.8 14.6 -27.2
2025-06-13 11:40:32,291 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 11:40:32,291 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 11:40:32,291 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.402716
2025-06-13 11:40:32,292 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 11:40:32,292 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 11:40:32,292 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 11:40:32,292 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 11:40:32,292 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 11:40:32,293 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T11:40:22', tmtdew=11.43, humidity=45.29, cloud=0.0, wind=17.73, temperature=10.7, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T09:39:54.662', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 11:40:32,293 [DEBUG][       Thread-253561][   transport.py][1871] : EOF in transport thread
2025-06-13 11:40:32,377 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 11:40:32,390 [DEBUG][       Thread-253564][   transport.py][1871] : starting thread (client mode): 0x863be680
2025-06-13 11:40:32,390 [DEBUG][       Thread-253564][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 11:40:32,407 [DEBUG][       Thread-253564][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 11:40:32,407 [ INFO][       Thread-253564][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 11:40:32,419 [DEBUG][       Thread-253564][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 11:40:32,419 [DEBUG][       Thread-253564][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 11:40:32,419 [DEBUG][       Thread-253564][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 11:40:32,419 [DEBUG][       Thread-253564][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:40:32,419 [DEBUG][       Thread-253564][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:40:32,419 [DEBUG][       Thread-253564][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:40:32,419 [DEBUG][       Thread-253564][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:40:32,419 [DEBUG][       Thread-253564][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 11:40:32,419 [DEBUG][       Thread-253564][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 11:40:32,419 [DEBUG][       Thread-253564][   transport.py][1871] : client lang: <none>
2025-06-13 11:40:32,419 [DEBUG][       Thread-253564][   transport.py][1871] : server lang: <none>
2025-06-13 11:40:32,419 [DEBUG][       Thread-253564][   transport.py][1871] : kex follows: False
2025-06-13 11:40:32,420 [DEBUG][       Thread-253564][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 11:40:32,420 [DEBUG][       Thread-253564][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 11:40:32,420 [DEBUG][       Thread-253564][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 11:40:32,420 [DEBUG][       Thread-253564][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 11:40:32,420 [DEBUG][       Thread-253564][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 11:40:32,420 [DEBUG][       Thread-253564][   transport.py][1871] : Compression: none
2025-06-13 11:40:32,420 [DEBUG][       Thread-253564][   transport.py][1871] : === End of kex handshake ===
2025-06-13 11:40:32,479 [DEBUG][       Thread-253564][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 11:40:32,479 [DEBUG][       Thread-253564][   transport.py][1871] : Switch to new keys ...
2025-06-13 11:40:32,480 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 11:40:32,480 [DEBUG][       Thread-253564][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 11:40:32,481 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 11:40:32,537 [DEBUG][       Thread-253564][   transport.py][1871] : userauth is OK
2025-06-13 11:40:32,537 [DEBUG][       Thread-253564][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 11:40:32,538 [DEBUG][       Thread-253564][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 11:40:32,538 [DEBUG][       Thread-253564][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 11:40:32,538 [DEBUG][       Thread-253564][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 11:40:32,557 [ INFO][       Thread-253564][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 11:40:32,557 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 11:40:32,558 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 11:40:33,425 [DEBUG][Thread-253566 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:40:33,571 [DEBUG][       Thread-253564][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 11:40:33,571 [DEBUG][       Thread-253564][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 11:40:33,620 [DEBUG][       Thread-253564][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 11:40:33,620 [DEBUG][       Thread-253564][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 11:40:33,629 [DEBUG][       Thread-253564][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 11:40:33,638 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 11:40:33,638 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 11:40:33,647 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 11:40:33,656 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 11:40:33,656 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 11:40:33,657 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 11:40:33,665 [DEBUG][       Thread-253564][   transport.py][1871] : EOF in transport thread
2025-06-13 11:40:34,107 [DEBUG][Thread-253567 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:40:35,186 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:40:35,187 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:40:36,747 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:40:36,748 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:40:42,464 [DEBUG][Thread-253568 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:40:43,664 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 11:40:43,664 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 11:40:43,664 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 11:40:43,665 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 11:40:44,131 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 11, 40, 22), 11.43, 45.29, 0.0, 17.73, 10.7, 0, 0, 0, 2, 0, 0),)
2025-06-13 11:40:44,131 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 11:40:22
2025-06-13 11:40:44,214 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 11:40:44,219 [DEBUG][       Thread-253569][   transport.py][1871] : starting thread (client mode): 0x8636a830
2025-06-13 11:40:44,219 [DEBUG][       Thread-253569][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 11:40:44,241 [DEBUG][       Thread-253569][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 11:40:44,241 [ INFO][       Thread-253569][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 11:40:44,244 [DEBUG][       Thread-253569][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 11:40:44,244 [DEBUG][       Thread-253569][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 11:40:44,244 [DEBUG][       Thread-253569][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 11:40:44,244 [DEBUG][       Thread-253569][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:40:44,244 [DEBUG][       Thread-253569][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:40:44,244 [DEBUG][       Thread-253569][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:40:44,244 [DEBUG][       Thread-253569][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:40:44,244 [DEBUG][       Thread-253569][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 11:40:44,244 [DEBUG][       Thread-253569][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 11:40:44,244 [DEBUG][       Thread-253569][   transport.py][1871] : client lang: <none>
2025-06-13 11:40:44,244 [DEBUG][       Thread-253569][   transport.py][1871] : server lang: <none>
2025-06-13 11:40:44,244 [DEBUG][       Thread-253569][   transport.py][1871] : kex follows: False
2025-06-13 11:40:44,244 [DEBUG][       Thread-253569][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 11:40:44,244 [DEBUG][       Thread-253569][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 11:40:44,245 [DEBUG][       Thread-253569][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 11:40:44,245 [DEBUG][       Thread-253569][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 11:40:44,245 [DEBUG][       Thread-253569][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 11:40:44,245 [DEBUG][       Thread-253569][   transport.py][1871] : Compression: none
2025-06-13 11:40:44,245 [DEBUG][       Thread-253569][   transport.py][1871] : === End of kex handshake ===
2025-06-13 11:40:44,259 [DEBUG][       Thread-253569][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 11:40:44,259 [DEBUG][       Thread-253569][   transport.py][1871] : Switch to new keys ...
2025-06-13 11:40:44,259 [DEBUG][       Thread-253569][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 11:40:44,259 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 11:40:44,259 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 11:40:44,260 [DEBUG][       Thread-253569][   transport.py][1871] : userauth is OK
2025-06-13 11:40:44,283 [ INFO][       Thread-253569][   transport.py][1871] : Authentication (password) successful!
2025-06-13 11:40:44,284 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 11:40:44,876 [DEBUG][       Thread-253569][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 11:40:44,876 [DEBUG][       Thread-253569][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 11:40:44,916 [DEBUG][       Thread-253569][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 11:40:44,916 [DEBUG][       Thread-253569][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 11:40:44,919 [DEBUG][       Thread-253569][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 11:40:44,931 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 11:40:44,931 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 11:40:44,932 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 11:40:44,933 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 11:40:44,936 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 11:40:44,937 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 11:40:44,937 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 11:40:44,937 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 11:40:44,937 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.402716 -999.00  +10.70  19.27     49   +0.60 1 1 1 1 1   888    0 10.74 40.09 ----- 22.8 19.3 53.8 27.7 15.2 -27.9 13.8 -30.0 13.3 -27.8 14.6 -27.2
2025-06-13 11:40:44,937 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 11:40:44,937 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 11:40:44,937 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.402716
2025-06-13 11:40:44,937 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 11:40:44,937 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 11:40:44,937 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 11:40:44,937 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 11:40:44,937 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 11:40:44,937 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T11:40:22', tmtdew=11.43, humidity=45.29, cloud=0.0, wind=17.73, temperature=10.7, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T09:39:54.662', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 11:40:44,938 [DEBUG][       Thread-253569][   transport.py][1871] : EOF in transport thread
2025-06-13 11:40:45,010 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 11:40:45,024 [DEBUG][       Thread-253572][   transport.py][1871] : starting thread (client mode): 0x867ffdc0
2025-06-13 11:40:45,024 [DEBUG][       Thread-253572][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 11:40:45,038 [DEBUG][       Thread-253572][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 11:40:45,038 [ INFO][       Thread-253572][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 11:40:45,045 [DEBUG][       Thread-253572][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 11:40:45,045 [DEBUG][       Thread-253572][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 11:40:45,045 [DEBUG][       Thread-253572][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 11:40:45,046 [DEBUG][       Thread-253572][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:40:45,046 [DEBUG][       Thread-253572][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:40:45,046 [DEBUG][       Thread-253572][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:40:45,046 [DEBUG][       Thread-253572][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:40:45,046 [DEBUG][       Thread-253572][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 11:40:45,046 [DEBUG][       Thread-253572][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 11:40:45,046 [DEBUG][       Thread-253572][   transport.py][1871] : client lang: <none>
2025-06-13 11:40:45,046 [DEBUG][       Thread-253572][   transport.py][1871] : server lang: <none>
2025-06-13 11:40:45,046 [DEBUG][       Thread-253572][   transport.py][1871] : kex follows: False
2025-06-13 11:40:45,046 [DEBUG][       Thread-253572][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 11:40:45,046 [DEBUG][       Thread-253572][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 11:40:45,046 [DEBUG][       Thread-253572][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 11:40:45,046 [DEBUG][       Thread-253572][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 11:40:45,046 [DEBUG][       Thread-253572][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 11:40:45,046 [DEBUG][       Thread-253572][   transport.py][1871] : Compression: none
2025-06-13 11:40:45,046 [DEBUG][       Thread-253572][   transport.py][1871] : === End of kex handshake ===
2025-06-13 11:40:45,100 [DEBUG][       Thread-253572][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 11:40:45,100 [DEBUG][       Thread-253572][   transport.py][1871] : Switch to new keys ...
2025-06-13 11:40:45,100 [DEBUG][       Thread-253572][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 11:40:45,100 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 11:40:45,101 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 11:40:45,158 [DEBUG][       Thread-253572][   transport.py][1871] : userauth is OK
2025-06-13 11:40:45,158 [DEBUG][       Thread-253572][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 11:40:45,158 [DEBUG][       Thread-253572][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 11:40:45,158 [DEBUG][       Thread-253572][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 11:40:45,158 [DEBUG][       Thread-253572][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 11:40:45,171 [ INFO][       Thread-253572][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 11:40:45,171 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 11:40:45,171 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 11:40:46,236 [DEBUG][       Thread-253572][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 11:40:46,236 [DEBUG][       Thread-253572][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 11:40:46,284 [DEBUG][       Thread-253572][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 11:40:46,284 [DEBUG][       Thread-253572][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 11:40:46,293 [DEBUG][       Thread-253572][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 11:40:46,301 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 11:40:46,302 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 11:40:46,310 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 11:40:46,319 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 11:40:46,319 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 11:40:46,319 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 11:40:46,327 [DEBUG][       Thread-253572][   transport.py][1871] : EOF in transport thread
2025-06-13 11:40:51,482 [DEBUG][Thread-253574 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:40:56,330 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 11:40:56,330 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 11:40:56,330 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 11:40:56,331 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 11:40:56,791 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 11, 40, 22), 11.43, 45.29, 0.0, 17.73, 10.7, 0, 0, 0, 2, 0, 0),)
2025-06-13 11:40:56,791 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 11:40:22
2025-06-13 11:40:56,873 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 11:40:56,877 [DEBUG][       Thread-253575][   transport.py][1871] : starting thread (client mode): 0x84205de0
2025-06-13 11:40:56,877 [DEBUG][       Thread-253575][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 11:40:56,891 [DEBUG][       Thread-253575][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 11:40:56,891 [ INFO][       Thread-253575][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 11:40:56,895 [DEBUG][       Thread-253575][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 11:40:56,895 [DEBUG][       Thread-253575][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 11:40:56,895 [DEBUG][       Thread-253575][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 11:40:56,895 [DEBUG][       Thread-253575][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:40:56,895 [DEBUG][       Thread-253575][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:40:56,895 [DEBUG][       Thread-253575][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:40:56,895 [DEBUG][       Thread-253575][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:40:56,895 [DEBUG][       Thread-253575][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 11:40:56,895 [DEBUG][       Thread-253575][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 11:40:56,895 [DEBUG][       Thread-253575][   transport.py][1871] : client lang: <none>
2025-06-13 11:40:56,895 [DEBUG][       Thread-253575][   transport.py][1871] : server lang: <none>
2025-06-13 11:40:56,895 [DEBUG][       Thread-253575][   transport.py][1871] : kex follows: False
2025-06-13 11:40:56,895 [DEBUG][       Thread-253575][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 11:40:56,895 [DEBUG][       Thread-253575][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 11:40:56,895 [DEBUG][       Thread-253575][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 11:40:56,895 [DEBUG][       Thread-253575][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 11:40:56,895 [DEBUG][       Thread-253575][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 11:40:56,895 [DEBUG][       Thread-253575][   transport.py][1871] : Compression: none
2025-06-13 11:40:56,895 [DEBUG][       Thread-253575][   transport.py][1871] : === End of kex handshake ===
2025-06-13 11:40:56,904 [DEBUG][       Thread-253575][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 11:40:56,905 [DEBUG][       Thread-253575][   transport.py][1871] : Switch to new keys ...
2025-06-13 11:40:56,905 [DEBUG][       Thread-253575][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 11:40:56,905 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 11:40:56,905 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 11:40:56,906 [DEBUG][       Thread-253575][   transport.py][1871] : userauth is OK
2025-06-13 11:40:56,919 [ INFO][       Thread-253575][   transport.py][1871] : Authentication (password) successful!
2025-06-13 11:40:56,920 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 11:40:57,518 [DEBUG][       Thread-253575][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 11:40:57,518 [DEBUG][       Thread-253575][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 11:40:57,561 [DEBUG][       Thread-253575][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 11:40:57,561 [DEBUG][       Thread-253575][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 11:40:57,564 [DEBUG][       Thread-253575][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 11:40:57,573 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 11:40:57,574 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 11:40:57,575 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 11:40:57,577 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 11:40:57,582 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 11:40:57,584 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 11:40:57,584 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 11:40:57,585 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 11:40:57,585 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.403064 -999.00  +10.60  24.77     48   +0.10 1 1 1 1 1   888    0 11.00 43.91 ----- 23.3 24.8 45.8 28.0 15.1 -28.8 13.8 -30.6 13.2 -29.4 14.6 -26.8
2025-06-13 11:40:57,585 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 11:40:57,585 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 11:40:57,585 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.403064
2025-06-13 11:40:57,586 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 11:40:57,586 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 11:40:57,586 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 11:40:57,586 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 11:40:57,586 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 11:40:57,586 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T11:40:22', tmtdew=11.43, humidity=45.29, cloud=0.0, wind=17.73, temperature=10.7, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T09:40:24.730', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 11:40:57,587 [DEBUG][       Thread-253575][   transport.py][1871] : EOF in transport thread
2025-06-13 11:40:57,671 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 11:40:57,680 [DEBUG][       Thread-253578][   transport.py][1871] : starting thread (client mode): 0x867b6530
2025-06-13 11:40:57,680 [DEBUG][       Thread-253578][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 11:40:57,694 [DEBUG][       Thread-253578][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 11:40:57,694 [ INFO][       Thread-253578][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 11:40:57,702 [DEBUG][       Thread-253578][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 11:40:57,702 [DEBUG][       Thread-253578][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 11:40:57,702 [DEBUG][       Thread-253578][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 11:40:57,702 [DEBUG][       Thread-253578][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:40:57,702 [DEBUG][       Thread-253578][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:40:57,702 [DEBUG][       Thread-253578][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:40:57,702 [DEBUG][       Thread-253578][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:40:57,702 [DEBUG][       Thread-253578][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 11:40:57,702 [DEBUG][       Thread-253578][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 11:40:57,702 [DEBUG][       Thread-253578][   transport.py][1871] : client lang: <none>
2025-06-13 11:40:57,702 [DEBUG][       Thread-253578][   transport.py][1871] : server lang: <none>
2025-06-13 11:40:57,702 [DEBUG][       Thread-253578][   transport.py][1871] : kex follows: False
2025-06-13 11:40:57,702 [DEBUG][       Thread-253578][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 11:40:57,702 [DEBUG][       Thread-253578][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 11:40:57,702 [DEBUG][       Thread-253578][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 11:40:57,702 [DEBUG][       Thread-253578][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 11:40:57,703 [DEBUG][       Thread-253578][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 11:40:57,703 [DEBUG][       Thread-253578][   transport.py][1871] : Compression: none
2025-06-13 11:40:57,703 [DEBUG][       Thread-253578][   transport.py][1871] : === End of kex handshake ===
2025-06-13 11:40:57,762 [DEBUG][       Thread-253578][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 11:40:57,763 [DEBUG][       Thread-253578][   transport.py][1871] : Switch to new keys ...
2025-06-13 11:40:57,763 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 11:40:57,764 [DEBUG][       Thread-253578][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 11:40:57,765 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 11:40:57,823 [DEBUG][       Thread-253578][   transport.py][1871] : userauth is OK
2025-06-13 11:40:57,823 [DEBUG][       Thread-253578][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 11:40:57,823 [DEBUG][       Thread-253578][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 11:40:57,824 [DEBUG][       Thread-253578][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 11:40:57,824 [DEBUG][       Thread-253578][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 11:40:57,842 [ INFO][       Thread-253578][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 11:40:57,843 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 11:40:57,843 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 11:40:59,417 [DEBUG][       Thread-253578][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 11:40:59,417 [DEBUG][       Thread-253578][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 11:40:59,468 [DEBUG][       Thread-253578][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 11:40:59,468 [DEBUG][       Thread-253578][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 11:40:59,478 [DEBUG][       Thread-253578][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 11:40:59,487 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 11:40:59,487 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 11:40:59,496 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 11:40:59,506 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 11:40:59,506 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 11:40:59,507 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 11:40:59,515 [DEBUG][       Thread-253578][   transport.py][1871] : EOF in transport thread
2025-06-13 11:41:00,503 [DEBUG][Thread-253580 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:41:09,513 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 11:41:09,513 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 11:41:09,513 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 11:41:09,516 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 11:41:09,525 [DEBUG][Thread-253581 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:41:09,865 [DEBUG][Thread-253582 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:41:09,978 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 11, 40, 54), 11.39, 45.42, 0.0, 19.23, 10.68, 0, 0, 0, 2, 0, 0),)
2025-06-13 11:41:09,978 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 11:40:54
2025-06-13 11:41:10,060 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 11:41:10,064 [DEBUG][       Thread-253583][   transport.py][1871] : starting thread (client mode): 0x84206e60
2025-06-13 11:41:10,064 [DEBUG][       Thread-253583][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 11:41:10,093 [DEBUG][       Thread-253583][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 11:41:10,093 [ INFO][       Thread-253583][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 11:41:10,094 [DEBUG][       Thread-253583][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 11:41:10,094 [DEBUG][       Thread-253583][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 11:41:10,094 [DEBUG][       Thread-253583][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 11:41:10,095 [DEBUG][       Thread-253583][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:41:10,095 [DEBUG][       Thread-253583][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:41:10,095 [DEBUG][       Thread-253583][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:41:10,095 [DEBUG][       Thread-253583][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:41:10,095 [DEBUG][       Thread-253583][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 11:41:10,095 [DEBUG][       Thread-253583][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 11:41:10,095 [DEBUG][       Thread-253583][   transport.py][1871] : client lang: <none>
2025-06-13 11:41:10,095 [DEBUG][       Thread-253583][   transport.py][1871] : server lang: <none>
2025-06-13 11:41:10,095 [DEBUG][       Thread-253583][   transport.py][1871] : kex follows: False
2025-06-13 11:41:10,095 [DEBUG][       Thread-253583][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 11:41:10,095 [DEBUG][       Thread-253583][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 11:41:10,095 [DEBUG][       Thread-253583][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 11:41:10,095 [DEBUG][       Thread-253583][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 11:41:10,095 [DEBUG][       Thread-253583][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 11:41:10,095 [DEBUG][       Thread-253583][   transport.py][1871] : Compression: none
2025-06-13 11:41:10,095 [DEBUG][       Thread-253583][   transport.py][1871] : === End of kex handshake ===
2025-06-13 11:41:10,107 [DEBUG][       Thread-253583][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 11:41:10,108 [DEBUG][       Thread-253583][   transport.py][1871] : Switch to new keys ...
2025-06-13 11:41:10,108 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 11:41:10,108 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 11:41:10,109 [DEBUG][       Thread-253583][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 11:41:10,110 [DEBUG][       Thread-253583][   transport.py][1871] : userauth is OK
2025-06-13 11:41:10,123 [ INFO][       Thread-253583][   transport.py][1871] : Authentication (password) successful!
2025-06-13 11:41:10,123 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 11:41:10,791 [DEBUG][       Thread-253583][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 11:41:10,791 [DEBUG][       Thread-253583][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 11:41:10,833 [DEBUG][       Thread-253583][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 11:41:10,833 [DEBUG][       Thread-253583][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 11:41:10,837 [DEBUG][       Thread-253583][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 11:41:10,849 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 11:41:10,849 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 11:41:10,851 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 11:41:10,854 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 11:41:10,860 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 11:41:10,862 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 11:41:10,862 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 11:41:10,863 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 11:41:10,863 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.403064 -999.00  +10.60  24.77     48   +0.10 1 1 1 1 1   888    0 11.00 43.91 ----- 23.3 24.8 45.8 28.0 15.1 -28.8 13.8 -30.6 13.2 -29.4 14.6 -26.8
2025-06-13 11:41:10,863 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 11:41:10,863 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 11:41:10,863 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.403064
2025-06-13 11:41:10,864 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 11:41:10,864 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 11:41:10,864 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 11:41:10,865 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 11:41:10,865 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 11:41:10,865 [DEBUG][       Thread-253583][   transport.py][1871] : EOF in transport thread
2025-06-13 11:41:10,865 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T11:40:54', tmtdew=11.39, humidity=45.42, cloud=0.0, wind=19.23, temperature=10.68, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T09:40:24.730', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 11:41:10,948 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 11:41:10,961 [DEBUG][       Thread-253586][   transport.py][1871] : starting thread (client mode): 0x863ef010
2025-06-13 11:41:10,961 [DEBUG][       Thread-253586][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 11:41:10,982 [DEBUG][       Thread-253586][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 11:41:10,983 [ INFO][       Thread-253586][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 11:41:10,990 [DEBUG][       Thread-253586][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 11:41:10,990 [DEBUG][       Thread-253586][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 11:41:10,991 [DEBUG][       Thread-253586][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 11:41:10,991 [DEBUG][       Thread-253586][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:41:10,991 [DEBUG][       Thread-253586][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:41:10,991 [DEBUG][       Thread-253586][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:41:10,991 [DEBUG][       Thread-253586][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:41:10,991 [DEBUG][       Thread-253586][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 11:41:10,991 [DEBUG][       Thread-253586][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 11:41:10,991 [DEBUG][       Thread-253586][   transport.py][1871] : client lang: <none>
2025-06-13 11:41:10,991 [DEBUG][       Thread-253586][   transport.py][1871] : server lang: <none>
2025-06-13 11:41:10,991 [DEBUG][       Thread-253586][   transport.py][1871] : kex follows: False
2025-06-13 11:41:10,991 [DEBUG][       Thread-253586][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 11:41:10,991 [DEBUG][       Thread-253586][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 11:41:10,991 [DEBUG][       Thread-253586][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 11:41:10,991 [DEBUG][       Thread-253586][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 11:41:10,991 [DEBUG][       Thread-253586][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 11:41:10,992 [DEBUG][       Thread-253586][   transport.py][1871] : Compression: none
2025-06-13 11:41:10,992 [DEBUG][       Thread-253586][   transport.py][1871] : === End of kex handshake ===
2025-06-13 11:41:11,050 [DEBUG][       Thread-253586][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 11:41:11,051 [DEBUG][       Thread-253586][   transport.py][1871] : Switch to new keys ...
2025-06-13 11:41:11,051 [DEBUG][       Thread-253586][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 11:41:11,052 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 11:41:11,053 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 11:41:11,106 [DEBUG][       Thread-253586][   transport.py][1871] : userauth is OK
2025-06-13 11:41:11,106 [DEBUG][       Thread-253586][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 11:41:11,107 [DEBUG][       Thread-253586][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 11:41:11,107 [DEBUG][       Thread-253586][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 11:41:11,107 [DEBUG][       Thread-253586][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 11:41:11,125 [ INFO][       Thread-253586][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 11:41:11,126 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 11:41:11,126 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 11:41:12,148 [DEBUG][       Thread-253586][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 11:41:12,148 [DEBUG][       Thread-253586][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 11:41:12,196 [DEBUG][       Thread-253586][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 11:41:12,196 [DEBUG][       Thread-253586][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 11:41:12,205 [DEBUG][       Thread-253586][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 11:41:12,214 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 11:41:12,215 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 11:41:12,223 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 11:41:12,233 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 11:41:12,233 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 11:41:12,233 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 11:41:12,241 [DEBUG][       Thread-253586][   transport.py][1871] : EOF in transport thread
2025-06-13 11:41:18,546 [DEBUG][Thread-253588 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:41:22,240 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 11:41:22,240 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 11:41:22,240 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 11:41:22,241 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 11:41:22,692 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 11, 40, 54), 11.39, 45.42, 0.0, 19.23, 10.68, 0, 0, 0, 2, 0, 0),)
2025-06-13 11:41:22,692 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 11:40:54
2025-06-13 11:41:22,773 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 11:41:22,778 [DEBUG][       Thread-253589][   transport.py][1871] : starting thread (client mode): 0x842072e0
2025-06-13 11:41:22,778 [DEBUG][       Thread-253589][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 11:41:22,798 [DEBUG][       Thread-253589][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 11:41:22,798 [ INFO][       Thread-253589][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 11:41:22,802 [DEBUG][       Thread-253589][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 11:41:22,802 [DEBUG][       Thread-253589][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 11:41:22,802 [DEBUG][       Thread-253589][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 11:41:22,802 [DEBUG][       Thread-253589][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:41:22,802 [DEBUG][       Thread-253589][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:41:22,802 [DEBUG][       Thread-253589][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:41:22,802 [DEBUG][       Thread-253589][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:41:22,802 [DEBUG][       Thread-253589][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 11:41:22,802 [DEBUG][       Thread-253589][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 11:41:22,802 [DEBUG][       Thread-253589][   transport.py][1871] : client lang: <none>
2025-06-13 11:41:22,802 [DEBUG][       Thread-253589][   transport.py][1871] : server lang: <none>
2025-06-13 11:41:22,802 [DEBUG][       Thread-253589][   transport.py][1871] : kex follows: False
2025-06-13 11:41:22,802 [DEBUG][       Thread-253589][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 11:41:22,802 [DEBUG][       Thread-253589][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 11:41:22,802 [DEBUG][       Thread-253589][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 11:41:22,802 [DEBUG][       Thread-253589][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 11:41:22,802 [DEBUG][       Thread-253589][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 11:41:22,802 [DEBUG][       Thread-253589][   transport.py][1871] : Compression: none
2025-06-13 11:41:22,802 [DEBUG][       Thread-253589][   transport.py][1871] : === End of kex handshake ===
2025-06-13 11:41:22,817 [DEBUG][       Thread-253589][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 11:41:22,817 [DEBUG][       Thread-253589][   transport.py][1871] : Switch to new keys ...
2025-06-13 11:41:22,817 [DEBUG][       Thread-253589][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 11:41:22,817 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 11:41:22,817 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 11:41:22,818 [DEBUG][       Thread-253589][   transport.py][1871] : userauth is OK
2025-06-13 11:41:22,830 [ INFO][       Thread-253589][   transport.py][1871] : Authentication (password) successful!
2025-06-13 11:41:22,830 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 11:41:23,529 [DEBUG][       Thread-253589][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 11:41:23,529 [DEBUG][       Thread-253589][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 11:41:23,573 [DEBUG][       Thread-253589][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 11:41:23,573 [DEBUG][       Thread-253589][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 11:41:23,576 [DEBUG][       Thread-253589][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 11:41:23,588 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 11:41:23,589 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 11:41:23,590 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 11:41:23,592 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 11:41:23,597 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 11:41:23,598 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 11:41:23,599 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 11:41:23,599 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 11:41:23,599 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.403064 -999.00  +10.60  24.77     48   +0.10 1 1 1 1 1   888    0 11.00 43.91 ----- 23.3 24.8 45.8 28.0 15.1 -28.8 13.8 -30.6 13.2 -29.4 14.6 -26.8
2025-06-13 11:41:23,599 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 11:41:23,599 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 11:41:23,600 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.403064
2025-06-13 11:41:23,600 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 11:41:23,600 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 11:41:23,601 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 11:41:23,601 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 11:41:23,601 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 11:41:23,601 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T11:40:54', tmtdew=11.39, humidity=45.42, cloud=0.0, wind=19.23, temperature=10.68, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T09:40:24.730', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 11:41:23,601 [DEBUG][       Thread-253589][   transport.py][1871] : EOF in transport thread
2025-06-13 11:41:23,685 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 11:41:23,695 [DEBUG][       Thread-253592][   transport.py][1871] : starting thread (client mode): 0x867ff100
2025-06-13 11:41:23,695 [DEBUG][       Thread-253592][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 11:41:23,710 [DEBUG][       Thread-253592][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 11:41:23,710 [ INFO][       Thread-253592][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 11:41:23,718 [DEBUG][       Thread-253592][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 11:41:23,718 [DEBUG][       Thread-253592][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 11:41:23,718 [DEBUG][       Thread-253592][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 11:41:23,718 [DEBUG][       Thread-253592][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:41:23,718 [DEBUG][       Thread-253592][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:41:23,718 [DEBUG][       Thread-253592][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:41:23,718 [DEBUG][       Thread-253592][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:41:23,718 [DEBUG][       Thread-253592][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 11:41:23,719 [DEBUG][       Thread-253592][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 11:41:23,719 [DEBUG][       Thread-253592][   transport.py][1871] : client lang: <none>
2025-06-13 11:41:23,719 [DEBUG][       Thread-253592][   transport.py][1871] : server lang: <none>
2025-06-13 11:41:23,719 [DEBUG][       Thread-253592][   transport.py][1871] : kex follows: False
2025-06-13 11:41:23,719 [DEBUG][       Thread-253592][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 11:41:23,719 [DEBUG][       Thread-253592][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 11:41:23,719 [DEBUG][       Thread-253592][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 11:41:23,719 [DEBUG][       Thread-253592][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 11:41:23,720 [DEBUG][       Thread-253592][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 11:41:23,720 [DEBUG][       Thread-253592][   transport.py][1871] : Compression: none
2025-06-13 11:41:23,720 [DEBUG][       Thread-253592][   transport.py][1871] : === End of kex handshake ===
2025-06-13 11:41:23,779 [DEBUG][       Thread-253592][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 11:41:23,780 [DEBUG][       Thread-253592][   transport.py][1871] : Switch to new keys ...
2025-06-13 11:41:23,781 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 11:41:23,782 [DEBUG][       Thread-253592][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 11:41:23,783 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 11:41:23,838 [DEBUG][       Thread-253592][   transport.py][1871] : userauth is OK
2025-06-13 11:41:23,838 [DEBUG][       Thread-253592][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 11:41:23,838 [DEBUG][       Thread-253592][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 11:41:23,839 [DEBUG][       Thread-253592][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 11:41:23,839 [DEBUG][       Thread-253592][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 11:41:23,857 [ INFO][       Thread-253592][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 11:41:23,858 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 11:41:23,858 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 11:41:24,966 [DEBUG][       Thread-253592][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 11:41:24,966 [DEBUG][       Thread-253592][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 11:41:25,017 [DEBUG][       Thread-253592][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 11:41:25,017 [DEBUG][       Thread-253592][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 11:41:25,026 [DEBUG][       Thread-253592][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 11:41:25,036 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 11:41:25,036 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 11:41:25,053 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 11:41:25,063 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 11:41:25,063 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 11:41:25,064 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 11:41:25,072 [DEBUG][       Thread-253592][   transport.py][1871] : EOF in transport thread
2025-06-13 11:41:27,577 [DEBUG][Thread-253594 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:41:35,074 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 11:41:35,074 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 11:41:35,074 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 11:41:35,077 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 11:41:35,232 [DEBUG][Thread-253595 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:41:35,541 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 11, 41, 25), 11.46, 44.96, 0.0, 22.92, 10.76, 0, 0, 0, 2, 0, 0),)
2025-06-13 11:41:35,541 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 11:41:25
2025-06-13 11:41:35,619 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 11:41:35,623 [DEBUG][       Thread-253596][   transport.py][1871] : starting thread (client mode): 0x84204c40
2025-06-13 11:41:35,623 [DEBUG][       Thread-253596][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 11:41:35,633 [DEBUG][       Thread-253596][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 11:41:35,633 [ INFO][       Thread-253596][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 11:41:35,636 [DEBUG][       Thread-253596][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 11:41:35,636 [DEBUG][       Thread-253596][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 11:41:35,636 [DEBUG][       Thread-253596][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 11:41:35,636 [DEBUG][       Thread-253596][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:41:35,636 [DEBUG][       Thread-253596][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:41:35,636 [DEBUG][       Thread-253596][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:41:35,636 [DEBUG][       Thread-253596][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:41:35,636 [DEBUG][       Thread-253596][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 11:41:35,636 [DEBUG][       Thread-253596][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 11:41:35,637 [DEBUG][       Thread-253596][   transport.py][1871] : client lang: <none>
2025-06-13 11:41:35,637 [DEBUG][       Thread-253596][   transport.py][1871] : server lang: <none>
2025-06-13 11:41:35,637 [DEBUG][       Thread-253596][   transport.py][1871] : kex follows: False
2025-06-13 11:41:35,637 [DEBUG][       Thread-253596][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 11:41:35,637 [DEBUG][       Thread-253596][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 11:41:35,637 [DEBUG][       Thread-253596][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 11:41:35,637 [DEBUG][       Thread-253596][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 11:41:35,637 [DEBUG][       Thread-253596][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 11:41:35,637 [DEBUG][       Thread-253596][   transport.py][1871] : Compression: none
2025-06-13 11:41:35,637 [DEBUG][       Thread-253596][   transport.py][1871] : === End of kex handshake ===
2025-06-13 11:41:35,644 [DEBUG][       Thread-253596][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 11:41:35,644 [DEBUG][       Thread-253596][   transport.py][1871] : Switch to new keys ...
2025-06-13 11:41:35,644 [DEBUG][       Thread-253596][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 11:41:35,644 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 11:41:35,644 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 11:41:35,645 [DEBUG][       Thread-253596][   transport.py][1871] : userauth is OK
2025-06-13 11:41:35,657 [ INFO][       Thread-253596][   transport.py][1871] : Authentication (password) successful!
2025-06-13 11:41:35,658 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 11:41:36,251 [DEBUG][       Thread-253596][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 11:41:36,251 [DEBUG][       Thread-253596][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 11:41:36,291 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:41:36,292 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:41:36,293 [DEBUG][       Thread-253596][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 11:41:36,293 [DEBUG][       Thread-253596][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 11:41:36,296 [DEBUG][       Thread-253596][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 11:41:36,311 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 11:41:36,311 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 11:41:36,313 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 11:41:36,315 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 11:41:36,319 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 11:41:36,321 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 11:41:36,321 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 11:41:36,322 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 11:41:36,322 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.403758 -999.00  +10.60  20.73     48   +0.30 1 1 1 1 1   888    0 11.54 55.16 ----- 23.0 20.7 34.4 22.4 15.1 -28.2 13.8 -29.9 13.2 -27.7 14.6 -26.1
2025-06-13 11:41:36,322 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 11:41:36,322 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 11:41:36,322 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.403758
2025-06-13 11:41:36,323 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 11:41:36,323 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 11:41:36,323 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 11:41:36,323 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 11:41:36,323 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 11:41:36,323 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T11:41:25', tmtdew=11.46, humidity=44.96, cloud=0.0, wind=22.92, temperature=10.76, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T09:41:24.691', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 11:41:36,324 [DEBUG][       Thread-253596][   transport.py][1871] : EOF in transport thread
2025-06-13 11:41:36,407 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 11:41:36,431 [DEBUG][       Thread-253599][   transport.py][1871] : starting thread (client mode): 0x863ef700
2025-06-13 11:41:36,431 [DEBUG][       Thread-253599][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 11:41:36,447 [DEBUG][       Thread-253599][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 11:41:36,447 [ INFO][       Thread-253599][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 11:41:36,455 [DEBUG][       Thread-253599][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 11:41:36,455 [DEBUG][       Thread-253599][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 11:41:36,455 [DEBUG][       Thread-253599][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 11:41:36,455 [DEBUG][       Thread-253599][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:41:36,455 [DEBUG][       Thread-253599][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:41:36,455 [DEBUG][       Thread-253599][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:41:36,455 [DEBUG][       Thread-253599][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:41:36,455 [DEBUG][       Thread-253599][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 11:41:36,455 [DEBUG][       Thread-253599][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 11:41:36,455 [DEBUG][       Thread-253599][   transport.py][1871] : client lang: <none>
2025-06-13 11:41:36,455 [DEBUG][       Thread-253599][   transport.py][1871] : server lang: <none>
2025-06-13 11:41:36,455 [DEBUG][       Thread-253599][   transport.py][1871] : kex follows: False
2025-06-13 11:41:36,455 [DEBUG][       Thread-253599][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 11:41:36,455 [DEBUG][       Thread-253599][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 11:41:36,455 [DEBUG][       Thread-253599][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 11:41:36,455 [DEBUG][       Thread-253599][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 11:41:36,455 [DEBUG][       Thread-253599][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 11:41:36,455 [DEBUG][       Thread-253599][   transport.py][1871] : Compression: none
2025-06-13 11:41:36,455 [DEBUG][       Thread-253599][   transport.py][1871] : === End of kex handshake ===
2025-06-13 11:41:36,514 [DEBUG][       Thread-253599][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 11:41:36,514 [DEBUG][       Thread-253599][   transport.py][1871] : Switch to new keys ...
2025-06-13 11:41:36,515 [DEBUG][       Thread-253599][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 11:41:36,515 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 11:41:36,516 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 11:41:36,572 [DEBUG][       Thread-253599][   transport.py][1871] : userauth is OK
2025-06-13 11:41:36,572 [DEBUG][       Thread-253599][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 11:41:36,573 [DEBUG][       Thread-253599][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 11:41:36,573 [DEBUG][       Thread-253599][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 11:41:36,573 [DEBUG][       Thread-253599][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 11:41:36,593 [ INFO][       Thread-253599][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 11:41:36,593 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 11:41:36,594 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 11:41:36,595 [DEBUG][Thread-253601 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:41:36,888 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:41:36,889 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:41:37,592 [DEBUG][       Thread-253599][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 11:41:37,592 [DEBUG][       Thread-253599][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 11:41:37,640 [DEBUG][       Thread-253599][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 11:41:37,640 [DEBUG][       Thread-253599][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 11:41:37,649 [DEBUG][       Thread-253599][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 11:41:37,658 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 11:41:37,659 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 11:41:37,667 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 11:41:37,676 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 11:41:37,677 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 11:41:37,677 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 11:41:37,685 [DEBUG][       Thread-253599][   transport.py][1871] : EOF in transport thread
2025-06-13 11:41:45,629 [DEBUG][Thread-253602 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:41:47,688 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 11:41:47,688 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 11:41:47,688 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 11:41:47,691 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 11:41:48,141 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 11, 41, 25), 11.46, 44.96, 0.0, 22.92, 10.76, 0, 0, 0, 2, 0, 0),)
2025-06-13 11:41:48,141 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 11:41:25
2025-06-13 11:41:48,220 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 11:41:48,224 [DEBUG][       Thread-253603][   transport.py][1871] : starting thread (client mode): 0x842062f0
2025-06-13 11:41:48,224 [DEBUG][       Thread-253603][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 11:41:48,243 [DEBUG][       Thread-253603][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 11:41:48,243 [ INFO][       Thread-253603][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 11:41:48,247 [DEBUG][       Thread-253603][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 11:41:48,247 [DEBUG][       Thread-253603][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 11:41:48,247 [DEBUG][       Thread-253603][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 11:41:48,247 [DEBUG][       Thread-253603][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:41:48,247 [DEBUG][       Thread-253603][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:41:48,247 [DEBUG][       Thread-253603][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:41:48,247 [DEBUG][       Thread-253603][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:41:48,247 [DEBUG][       Thread-253603][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 11:41:48,247 [DEBUG][       Thread-253603][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 11:41:48,247 [DEBUG][       Thread-253603][   transport.py][1871] : client lang: <none>
2025-06-13 11:41:48,247 [DEBUG][       Thread-253603][   transport.py][1871] : server lang: <none>
2025-06-13 11:41:48,247 [DEBUG][       Thread-253603][   transport.py][1871] : kex follows: False
2025-06-13 11:41:48,247 [DEBUG][       Thread-253603][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 11:41:48,247 [DEBUG][       Thread-253603][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 11:41:48,248 [DEBUG][       Thread-253603][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 11:41:48,248 [DEBUG][       Thread-253603][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 11:41:48,248 [DEBUG][       Thread-253603][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 11:41:48,248 [DEBUG][       Thread-253603][   transport.py][1871] : Compression: none
2025-06-13 11:41:48,248 [DEBUG][       Thread-253603][   transport.py][1871] : === End of kex handshake ===
2025-06-13 11:41:48,265 [DEBUG][       Thread-253603][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 11:41:48,265 [DEBUG][       Thread-253603][   transport.py][1871] : Switch to new keys ...
2025-06-13 11:41:48,266 [DEBUG][       Thread-253603][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 11:41:48,266 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 11:41:48,266 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 11:41:48,267 [DEBUG][       Thread-253603][   transport.py][1871] : userauth is OK
2025-06-13 11:41:48,291 [ INFO][       Thread-253603][   transport.py][1871] : Authentication (password) successful!
2025-06-13 11:41:48,292 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 11:41:48,886 [DEBUG][       Thread-253603][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 11:41:48,886 [DEBUG][       Thread-253603][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 11:41:48,929 [DEBUG][       Thread-253603][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 11:41:48,929 [DEBUG][       Thread-253603][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 11:41:48,931 [DEBUG][       Thread-253603][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 11:41:48,937 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 11:41:48,937 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 11:41:48,939 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 11:41:48,940 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 11:41:48,943 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 11:41:48,944 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 11:41:48,944 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 11:41:48,944 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 11:41:48,944 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.403758 -999.00  +10.60  20.73     48   +0.30 1 1 1 1 1   888    0 11.54 55.16 ----- 23.0 20.7 34.4 22.4 15.1 -28.2 13.8 -29.9 13.2 -27.7 14.6 -26.1
2025-06-13 11:41:48,944 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 11:41:48,944 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 11:41:48,944 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.403758
2025-06-13 11:41:48,945 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 11:41:48,945 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 11:41:48,945 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 11:41:48,945 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 11:41:48,945 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 11:41:48,945 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T11:41:25', tmtdew=11.46, humidity=44.96, cloud=0.0, wind=22.92, temperature=10.76, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T09:41:24.691', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 11:41:48,946 [DEBUG][       Thread-253603][   transport.py][1871] : EOF in transport thread
2025-06-13 11:41:49,032 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 11:41:49,042 [DEBUG][       Thread-253606][   transport.py][1871] : starting thread (client mode): 0x867fcb80
2025-06-13 11:41:49,042 [DEBUG][       Thread-253606][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 11:41:49,057 [DEBUG][       Thread-253606][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 11:41:49,058 [ INFO][       Thread-253606][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 11:41:49,065 [DEBUG][       Thread-253606][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 11:41:49,065 [DEBUG][       Thread-253606][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 11:41:49,066 [DEBUG][       Thread-253606][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 11:41:49,066 [DEBUG][       Thread-253606][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:41:49,066 [DEBUG][       Thread-253606][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:41:49,066 [DEBUG][       Thread-253606][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:41:49,066 [DEBUG][       Thread-253606][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:41:49,066 [DEBUG][       Thread-253606][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 11:41:49,066 [DEBUG][       Thread-253606][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 11:41:49,066 [DEBUG][       Thread-253606][   transport.py][1871] : client lang: <none>
2025-06-13 11:41:49,066 [DEBUG][       Thread-253606][   transport.py][1871] : server lang: <none>
2025-06-13 11:41:49,066 [DEBUG][       Thread-253606][   transport.py][1871] : kex follows: False
2025-06-13 11:41:49,066 [DEBUG][       Thread-253606][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 11:41:49,066 [DEBUG][       Thread-253606][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 11:41:49,066 [DEBUG][       Thread-253606][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 11:41:49,066 [DEBUG][       Thread-253606][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 11:41:49,066 [DEBUG][       Thread-253606][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 11:41:49,066 [DEBUG][       Thread-253606][   transport.py][1871] : Compression: none
2025-06-13 11:41:49,066 [DEBUG][       Thread-253606][   transport.py][1871] : === End of kex handshake ===
2025-06-13 11:41:49,122 [DEBUG][       Thread-253606][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 11:41:49,122 [DEBUG][       Thread-253606][   transport.py][1871] : Switch to new keys ...
2025-06-13 11:41:49,123 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 11:41:49,124 [DEBUG][       Thread-253606][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 11:41:49,124 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 11:41:49,184 [DEBUG][       Thread-253606][   transport.py][1871] : userauth is OK
2025-06-13 11:41:49,184 [DEBUG][       Thread-253606][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 11:41:49,184 [DEBUG][       Thread-253606][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 11:41:49,184 [DEBUG][       Thread-253606][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 11:41:49,184 [DEBUG][       Thread-253606][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 11:41:49,203 [ INFO][       Thread-253606][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 11:41:49,203 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 11:41:49,204 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 11:41:50,279 [DEBUG][       Thread-253606][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 11:41:50,279 [DEBUG][       Thread-253606][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 11:41:50,331 [DEBUG][       Thread-253606][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 11:41:50,331 [DEBUG][       Thread-253606][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 11:41:50,341 [DEBUG][       Thread-253606][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 11:41:50,350 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 11:41:50,351 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 11:41:50,359 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 11:41:50,369 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 11:41:50,369 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 11:41:50,370 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 11:41:50,378 [DEBUG][       Thread-253606][   transport.py][1871] : EOF in transport thread
2025-06-13 11:41:54,653 [DEBUG][Thread-253608 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:42:00,380 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 11:42:00,380 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 11:42:00,380 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 11:42:00,381 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 11:42:00,856 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 11, 41, 57), 11.53, 44.77, 0.0, 18.46, 10.83, 0, 0, 0, 2, 0, 0),)
2025-06-13 11:42:00,856 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 11:41:57
2025-06-13 11:42:00,937 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 11:42:00,941 [DEBUG][       Thread-253609][   transport.py][1871] : starting thread (client mode): 0x84207070
2025-06-13 11:42:00,941 [DEBUG][       Thread-253609][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 11:42:00,963 [DEBUG][       Thread-253609][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 11:42:00,963 [ INFO][       Thread-253609][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 11:42:00,965 [DEBUG][       Thread-253609][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 11:42:00,965 [DEBUG][       Thread-253609][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 11:42:00,965 [DEBUG][       Thread-253609][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 11:42:00,965 [DEBUG][       Thread-253609][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:42:00,966 [DEBUG][       Thread-253609][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:42:00,966 [DEBUG][       Thread-253609][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:42:00,966 [DEBUG][       Thread-253609][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:42:00,966 [DEBUG][       Thread-253609][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 11:42:00,966 [DEBUG][       Thread-253609][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 11:42:00,966 [DEBUG][       Thread-253609][   transport.py][1871] : client lang: <none>
2025-06-13 11:42:00,966 [DEBUG][       Thread-253609][   transport.py][1871] : server lang: <none>
2025-06-13 11:42:00,966 [DEBUG][       Thread-253609][   transport.py][1871] : kex follows: False
2025-06-13 11:42:00,966 [DEBUG][       Thread-253609][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 11:42:00,966 [DEBUG][       Thread-253609][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 11:42:00,966 [DEBUG][       Thread-253609][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 11:42:00,966 [DEBUG][       Thread-253609][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 11:42:00,966 [DEBUG][       Thread-253609][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 11:42:00,966 [DEBUG][       Thread-253609][   transport.py][1871] : Compression: none
2025-06-13 11:42:00,966 [DEBUG][       Thread-253609][   transport.py][1871] : === End of kex handshake ===
2025-06-13 11:42:00,985 [DEBUG][       Thread-253609][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 11:42:00,986 [DEBUG][       Thread-253609][   transport.py][1871] : Switch to new keys ...
2025-06-13 11:42:00,986 [DEBUG][       Thread-253609][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 11:42:00,986 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 11:42:00,986 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 11:42:00,986 [DEBUG][       Thread-253609][   transport.py][1871] : userauth is OK
2025-06-13 11:42:01,010 [ INFO][       Thread-253609][   transport.py][1871] : Authentication (password) successful!
2025-06-13 11:42:01,010 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 11:42:01,678 [DEBUG][       Thread-253609][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 11:42:01,678 [DEBUG][       Thread-253609][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 11:42:01,720 [DEBUG][       Thread-253609][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 11:42:01,720 [DEBUG][       Thread-253609][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 11:42:01,723 [DEBUG][       Thread-253609][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 11:42:01,735 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 11:42:01,735 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 11:42:01,736 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 11:42:01,737 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 11:42:01,739 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 11:42:01,740 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 11:42:01,740 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 11:42:01,740 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 11:42:01,740 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.403758 -999.00  +10.60  20.73     48   +0.30 1 1 1 1 1   888    0 11.54 55.16 ----- 23.0 20.7 34.4 22.4 15.1 -28.2 13.8 -29.9 13.2 -27.7 14.6 -26.1
2025-06-13 11:42:01,740 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 11:42:01,740 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 11:42:01,740 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.403758
2025-06-13 11:42:01,740 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 11:42:01,741 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 11:42:01,741 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 11:42:01,741 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 11:42:01,741 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 11:42:01,741 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T11:41:57', tmtdew=11.53, humidity=44.77, cloud=0.0, wind=18.46, temperature=10.83, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T09:41:24.691', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 11:42:01,741 [DEBUG][       Thread-253609][   transport.py][1871] : EOF in transport thread
2025-06-13 11:42:01,813 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 11:42:01,829 [DEBUG][       Thread-253612][   transport.py][1871] : starting thread (client mode): 0x863a4c70
2025-06-13 11:42:01,829 [DEBUG][       Thread-253612][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 11:42:01,843 [DEBUG][       Thread-253612][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 11:42:01,843 [ INFO][       Thread-253612][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 11:42:01,851 [DEBUG][       Thread-253612][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 11:42:01,851 [DEBUG][       Thread-253612][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 11:42:01,851 [DEBUG][       Thread-253612][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 11:42:01,851 [DEBUG][       Thread-253612][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:42:01,851 [DEBUG][       Thread-253612][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:42:01,851 [DEBUG][       Thread-253612][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:42:01,851 [DEBUG][       Thread-253612][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:42:01,851 [DEBUG][       Thread-253612][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 11:42:01,851 [DEBUG][       Thread-253612][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 11:42:01,851 [DEBUG][       Thread-253612][   transport.py][1871] : client lang: <none>
2025-06-13 11:42:01,851 [DEBUG][       Thread-253612][   transport.py][1871] : server lang: <none>
2025-06-13 11:42:01,851 [DEBUG][       Thread-253612][   transport.py][1871] : kex follows: False
2025-06-13 11:42:01,851 [DEBUG][       Thread-253612][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 11:42:01,851 [DEBUG][       Thread-253612][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 11:42:01,851 [DEBUG][       Thread-253612][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 11:42:01,851 [DEBUG][       Thread-253612][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 11:42:01,851 [DEBUG][       Thread-253612][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 11:42:01,851 [DEBUG][       Thread-253612][   transport.py][1871] : Compression: none
2025-06-13 11:42:01,851 [DEBUG][       Thread-253612][   transport.py][1871] : === End of kex handshake ===
2025-06-13 11:42:01,908 [DEBUG][       Thread-253612][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 11:42:01,908 [DEBUG][       Thread-253612][   transport.py][1871] : Switch to new keys ...
2025-06-13 11:42:01,908 [DEBUG][       Thread-253612][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 11:42:01,908 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 11:42:01,909 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 11:42:01,969 [DEBUG][       Thread-253612][   transport.py][1871] : userauth is OK
2025-06-13 11:42:01,969 [DEBUG][       Thread-253612][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 11:42:01,969 [DEBUG][       Thread-253612][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 11:42:01,969 [DEBUG][       Thread-253612][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 11:42:01,969 [DEBUG][       Thread-253612][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 11:42:01,983 [ INFO][       Thread-253612][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 11:42:01,983 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 11:42:01,983 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 11:42:03,033 [DEBUG][       Thread-253612][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 11:42:03,034 [DEBUG][       Thread-253612][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 11:42:03,084 [DEBUG][       Thread-253612][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 11:42:03,085 [DEBUG][       Thread-253612][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 11:42:03,094 [DEBUG][       Thread-253612][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 11:42:03,103 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 11:42:03,104 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 11:42:03,119 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 11:42:03,128 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 11:42:03,129 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 11:42:03,129 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 11:42:03,137 [DEBUG][       Thread-253612][   transport.py][1871] : EOF in transport thread
2025-06-13 11:42:03,674 [DEBUG][Thread-253614 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:42:09,913 [DEBUG][Thread-253615 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:42:12,713 [DEBUG][Thread-253616 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:42:13,139 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 11:42:13,140 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 11:42:13,140 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 11:42:13,143 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 11:42:13,592 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 11, 41, 57), 11.53, 44.77, 0.0, 18.46, 10.83, 0, 0, 0, 2, 0, 0),)
2025-06-13 11:42:13,592 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 11:41:57
2025-06-13 11:42:13,673 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 11:42:13,679 [DEBUG][       Thread-253617][   transport.py][1871] : starting thread (client mode): 0x84206a70
2025-06-13 11:42:13,679 [DEBUG][       Thread-253617][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 11:42:13,694 [DEBUG][       Thread-253617][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 11:42:13,694 [ INFO][       Thread-253617][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 11:42:13,695 [DEBUG][       Thread-253617][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 11:42:13,695 [DEBUG][       Thread-253617][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 11:42:13,695 [DEBUG][       Thread-253617][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 11:42:13,695 [DEBUG][       Thread-253617][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:42:13,695 [DEBUG][       Thread-253617][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:42:13,695 [DEBUG][       Thread-253617][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:42:13,695 [DEBUG][       Thread-253617][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:42:13,695 [DEBUG][       Thread-253617][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 11:42:13,695 [DEBUG][       Thread-253617][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 11:42:13,695 [DEBUG][       Thread-253617][   transport.py][1871] : client lang: <none>
2025-06-13 11:42:13,695 [DEBUG][       Thread-253617][   transport.py][1871] : server lang: <none>
2025-06-13 11:42:13,695 [DEBUG][       Thread-253617][   transport.py][1871] : kex follows: False
2025-06-13 11:42:13,695 [DEBUG][       Thread-253617][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 11:42:13,695 [DEBUG][       Thread-253617][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 11:42:13,695 [DEBUG][       Thread-253617][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 11:42:13,696 [DEBUG][       Thread-253617][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 11:42:13,696 [DEBUG][       Thread-253617][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 11:42:13,696 [DEBUG][       Thread-253617][   transport.py][1871] : Compression: none
2025-06-13 11:42:13,696 [DEBUG][       Thread-253617][   transport.py][1871] : === End of kex handshake ===
2025-06-13 11:42:13,702 [DEBUG][       Thread-253617][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 11:42:13,702 [DEBUG][       Thread-253617][   transport.py][1871] : Switch to new keys ...
2025-06-13 11:42:13,702 [DEBUG][       Thread-253617][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 11:42:13,703 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 11:42:13,703 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 11:42:13,703 [DEBUG][       Thread-253617][   transport.py][1871] : userauth is OK
2025-06-13 11:42:13,716 [ INFO][       Thread-253617][   transport.py][1871] : Authentication (password) successful!
2025-06-13 11:42:13,716 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 11:42:14,339 [DEBUG][       Thread-253617][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 11:42:14,340 [DEBUG][       Thread-253617][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 11:42:14,381 [DEBUG][       Thread-253617][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 11:42:14,381 [DEBUG][       Thread-253617][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 11:42:14,384 [DEBUG][       Thread-253617][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 11:42:14,397 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 11:42:14,397 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 11:42:14,399 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 11:42:14,401 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 11:42:14,407 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 11:42:14,409 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 11:42:14,409 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 11:42:14,410 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 11:42:14,410 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.404105 -999.00  +10.80  25.44     49   +0.70 1 1 1 1 1   888    0 11.54 57.57 ----- 27.7 25.4 57.8 30.4 15.3 -27.9 13.9 -29.4 13.3 -27.9 14.6 -26.9
2025-06-13 11:42:14,410 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 11:42:14,410 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 11:42:14,410 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.404105
2025-06-13 11:42:14,411 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 11:42:14,411 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 11:42:14,412 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 11:42:14,412 [DEBUG][       Thread-253617][   transport.py][1871] : EOF in transport thread
2025-06-13 11:42:14,412 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 11:42:14,413 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 11:42:14,413 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T11:41:57', tmtdew=11.53, humidity=44.77, cloud=0.0, wind=18.46, temperature=10.83, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T09:41:54.672', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 11:42:14,496 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 11:42:14,513 [DEBUG][       Thread-253620][   transport.py][1871] : starting thread (client mode): 0x867fcb80
2025-06-13 11:42:14,513 [DEBUG][       Thread-253620][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 11:42:14,535 [DEBUG][       Thread-253620][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 11:42:14,535 [ INFO][       Thread-253620][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 11:42:14,543 [DEBUG][       Thread-253620][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 11:42:14,543 [DEBUG][       Thread-253620][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 11:42:14,543 [DEBUG][       Thread-253620][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 11:42:14,543 [DEBUG][       Thread-253620][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:42:14,543 [DEBUG][       Thread-253620][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:42:14,543 [DEBUG][       Thread-253620][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:42:14,543 [DEBUG][       Thread-253620][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:42:14,543 [DEBUG][       Thread-253620][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 11:42:14,543 [DEBUG][       Thread-253620][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 11:42:14,543 [DEBUG][       Thread-253620][   transport.py][1871] : client lang: <none>
2025-06-13 11:42:14,543 [DEBUG][       Thread-253620][   transport.py][1871] : server lang: <none>
2025-06-13 11:42:14,544 [DEBUG][       Thread-253620][   transport.py][1871] : kex follows: False
2025-06-13 11:42:14,544 [DEBUG][       Thread-253620][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 11:42:14,544 [DEBUG][       Thread-253620][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 11:42:14,544 [DEBUG][       Thread-253620][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 11:42:14,544 [DEBUG][       Thread-253620][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 11:42:14,544 [DEBUG][       Thread-253620][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 11:42:14,544 [DEBUG][       Thread-253620][   transport.py][1871] : Compression: none
2025-06-13 11:42:14,544 [DEBUG][       Thread-253620][   transport.py][1871] : === End of kex handshake ===
2025-06-13 11:42:14,611 [DEBUG][       Thread-253620][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 11:42:14,611 [DEBUG][       Thread-253620][   transport.py][1871] : Switch to new keys ...
2025-06-13 11:42:14,612 [DEBUG][       Thread-253620][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 11:42:14,612 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 11:42:14,613 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 11:42:14,673 [DEBUG][       Thread-253620][   transport.py][1871] : userauth is OK
2025-06-13 11:42:14,673 [DEBUG][       Thread-253620][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 11:42:14,673 [DEBUG][       Thread-253620][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 11:42:14,673 [DEBUG][       Thread-253620][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 11:42:14,673 [DEBUG][       Thread-253620][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 11:42:14,694 [ INFO][       Thread-253620][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 11:42:14,694 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 11:42:14,695 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 11:42:15,704 [DEBUG][       Thread-253620][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 11:42:15,704 [DEBUG][       Thread-253620][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 11:42:15,752 [DEBUG][       Thread-253620][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 11:42:15,752 [DEBUG][       Thread-253620][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 11:42:15,765 [DEBUG][       Thread-253620][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 11:42:15,777 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 11:42:15,777 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 11:42:15,786 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 11:42:15,797 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 11:42:15,797 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 11:42:15,798 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 11:42:15,807 [DEBUG][       Thread-253620][   transport.py][1871] : EOF in transport thread
2025-06-13 11:42:21,735 [DEBUG][Thread-253622 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:42:25,808 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 11:42:25,808 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 11:42:25,808 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 11:42:25,811 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 11:42:26,258 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 11, 41, 57), 11.53, 44.77, 0.0, 18.46, 10.83, 0, 0, 0, 2, 0, 0),)
2025-06-13 11:42:26,259 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 11:41:57
2025-06-13 11:42:26,339 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 11:42:26,343 [DEBUG][       Thread-253623][   transport.py][1871] : starting thread (client mode): 0x84206f50
2025-06-13 11:42:26,343 [DEBUG][       Thread-253623][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 11:42:26,365 [DEBUG][       Thread-253623][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 11:42:26,365 [ INFO][       Thread-253623][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 11:42:26,368 [DEBUG][       Thread-253623][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 11:42:26,368 [DEBUG][       Thread-253623][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 11:42:26,368 [DEBUG][       Thread-253623][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 11:42:26,368 [DEBUG][       Thread-253623][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:42:26,368 [DEBUG][       Thread-253623][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:42:26,368 [DEBUG][       Thread-253623][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:42:26,368 [DEBUG][       Thread-253623][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:42:26,368 [DEBUG][       Thread-253623][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 11:42:26,368 [DEBUG][       Thread-253623][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 11:42:26,368 [DEBUG][       Thread-253623][   transport.py][1871] : client lang: <none>
2025-06-13 11:42:26,368 [DEBUG][       Thread-253623][   transport.py][1871] : server lang: <none>
2025-06-13 11:42:26,368 [DEBUG][       Thread-253623][   transport.py][1871] : kex follows: False
2025-06-13 11:42:26,368 [DEBUG][       Thread-253623][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 11:42:26,369 [DEBUG][       Thread-253623][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 11:42:26,369 [DEBUG][       Thread-253623][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 11:42:26,369 [DEBUG][       Thread-253623][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 11:42:26,369 [DEBUG][       Thread-253623][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 11:42:26,369 [DEBUG][       Thread-253623][   transport.py][1871] : Compression: none
2025-06-13 11:42:26,369 [DEBUG][       Thread-253623][   transport.py][1871] : === End of kex handshake ===
2025-06-13 11:42:26,385 [DEBUG][       Thread-253623][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 11:42:26,386 [DEBUG][       Thread-253623][   transport.py][1871] : Switch to new keys ...
2025-06-13 11:42:26,386 [DEBUG][       Thread-253623][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 11:42:26,387 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 11:42:26,387 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 11:42:26,388 [DEBUG][       Thread-253623][   transport.py][1871] : userauth is OK
2025-06-13 11:42:26,401 [ INFO][       Thread-253623][   transport.py][1871] : Authentication (password) successful!
2025-06-13 11:42:26,401 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 11:42:27,050 [DEBUG][       Thread-253623][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 11:42:27,051 [DEBUG][       Thread-253623][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 11:42:27,093 [DEBUG][       Thread-253623][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 11:42:27,093 [DEBUG][       Thread-253623][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 11:42:27,097 [DEBUG][       Thread-253623][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 11:42:27,110 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 11:42:27,110 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 11:42:27,112 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 11:42:27,114 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 11:42:27,120 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 11:42:27,122 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 11:42:27,122 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 11:42:27,123 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 11:42:27,123 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.404105 -999.00  +10.80  25.44     49   +0.70 1 1 1 1 1   888    0 11.54 57.57 ----- 27.7 25.4 57.8 30.4 15.3 -27.9 13.9 -29.4 13.3 -27.9 14.6 -26.9
2025-06-13 11:42:27,123 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 11:42:27,123 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 11:42:27,123 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.404105
2025-06-13 11:42:27,124 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 11:42:27,124 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 11:42:27,124 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 11:42:27,125 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 11:42:27,125 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 11:42:27,125 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T11:41:57', tmtdew=11.53, humidity=44.77, cloud=0.0, wind=18.46, temperature=10.83, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T09:41:54.672', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 11:42:27,126 [DEBUG][       Thread-253623][   transport.py][1871] : EOF in transport thread
2025-06-13 11:42:27,208 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 11:42:27,218 [DEBUG][       Thread-253626][   transport.py][1871] : starting thread (client mode): 0x863a5030
2025-06-13 11:42:27,218 [DEBUG][       Thread-253626][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 11:42:27,233 [DEBUG][       Thread-253626][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 11:42:27,233 [ INFO][       Thread-253626][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 11:42:27,241 [DEBUG][       Thread-253626][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 11:42:27,241 [DEBUG][       Thread-253626][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 11:42:27,241 [DEBUG][       Thread-253626][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 11:42:27,241 [DEBUG][       Thread-253626][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:42:27,241 [DEBUG][       Thread-253626][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:42:27,241 [DEBUG][       Thread-253626][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:42:27,241 [DEBUG][       Thread-253626][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:42:27,241 [DEBUG][       Thread-253626][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 11:42:27,242 [DEBUG][       Thread-253626][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 11:42:27,242 [DEBUG][       Thread-253626][   transport.py][1871] : client lang: <none>
2025-06-13 11:42:27,242 [DEBUG][       Thread-253626][   transport.py][1871] : server lang: <none>
2025-06-13 11:42:27,242 [DEBUG][       Thread-253626][   transport.py][1871] : kex follows: False
2025-06-13 11:42:27,242 [DEBUG][       Thread-253626][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 11:42:27,242 [DEBUG][       Thread-253626][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 11:42:27,242 [DEBUG][       Thread-253626][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 11:42:27,242 [DEBUG][       Thread-253626][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 11:42:27,242 [DEBUG][       Thread-253626][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 11:42:27,242 [DEBUG][       Thread-253626][   transport.py][1871] : Compression: none
2025-06-13 11:42:27,242 [DEBUG][       Thread-253626][   transport.py][1871] : === End of kex handshake ===
2025-06-13 11:42:27,297 [DEBUG][       Thread-253626][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 11:42:27,298 [DEBUG][       Thread-253626][   transport.py][1871] : Switch to new keys ...
2025-06-13 11:42:27,299 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 11:42:27,299 [DEBUG][       Thread-253626][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 11:42:27,300 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 11:42:27,354 [DEBUG][       Thread-253626][   transport.py][1871] : userauth is OK
2025-06-13 11:42:27,354 [DEBUG][       Thread-253626][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 11:42:27,354 [DEBUG][       Thread-253626][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 11:42:27,354 [DEBUG][       Thread-253626][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 11:42:27,354 [DEBUG][       Thread-253626][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 11:42:27,373 [ INFO][       Thread-253626][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 11:42:27,373 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 11:42:27,374 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 11:42:28,405 [DEBUG][       Thread-253626][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 11:42:28,405 [DEBUG][       Thread-253626][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 11:42:28,456 [DEBUG][       Thread-253626][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 11:42:28,457 [DEBUG][       Thread-253626][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 11:42:28,466 [DEBUG][       Thread-253626][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 11:42:28,480 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 11:42:28,480 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 11:42:28,493 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 11:42:28,505 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 11:42:28,505 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 11:42:28,506 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 11:42:28,515 [DEBUG][       Thread-253626][   transport.py][1871] : EOF in transport thread
2025-06-13 11:42:30,756 [DEBUG][Thread-253628 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:42:36,377 [DEBUG][Thread-253629 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:42:37,048 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:42:37,048 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:42:37,432 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:42:37,433 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:42:38,508 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 11:42:38,508 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 11:42:38,508 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 11:42:38,509 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 11:42:38,991 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 11, 42, 29), 11.52, 45.19, 0.0, 18.65, 10.85, 0, 0, 0, 2, 0, 0),)
2025-06-13 11:42:38,991 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 11:42:29
2025-06-13 11:42:39,074 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 11:42:39,081 [DEBUG][       Thread-253630][   transport.py][1871] : starting thread (client mode): 0x84206bc0
2025-06-13 11:42:39,081 [DEBUG][       Thread-253630][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 11:42:39,102 [DEBUG][       Thread-253630][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 11:42:39,103 [ INFO][       Thread-253630][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 11:42:39,106 [DEBUG][       Thread-253630][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 11:42:39,106 [DEBUG][       Thread-253630][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 11:42:39,106 [DEBUG][       Thread-253630][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 11:42:39,106 [DEBUG][       Thread-253630][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:42:39,106 [DEBUG][       Thread-253630][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:42:39,106 [DEBUG][       Thread-253630][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:42:39,106 [DEBUG][       Thread-253630][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:42:39,106 [DEBUG][       Thread-253630][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 11:42:39,106 [DEBUG][       Thread-253630][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 11:42:39,106 [DEBUG][       Thread-253630][   transport.py][1871] : client lang: <none>
2025-06-13 11:42:39,106 [DEBUG][       Thread-253630][   transport.py][1871] : server lang: <none>
2025-06-13 11:42:39,106 [DEBUG][       Thread-253630][   transport.py][1871] : kex follows: False
2025-06-13 11:42:39,106 [DEBUG][       Thread-253630][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 11:42:39,106 [DEBUG][       Thread-253630][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 11:42:39,106 [DEBUG][       Thread-253630][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 11:42:39,106 [DEBUG][       Thread-253630][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 11:42:39,106 [DEBUG][       Thread-253630][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 11:42:39,106 [DEBUG][       Thread-253630][   transport.py][1871] : Compression: none
2025-06-13 11:42:39,106 [DEBUG][       Thread-253630][   transport.py][1871] : === End of kex handshake ===
2025-06-13 11:42:39,115 [DEBUG][       Thread-253630][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 11:42:39,115 [DEBUG][       Thread-253630][   transport.py][1871] : Switch to new keys ...
2025-06-13 11:42:39,116 [DEBUG][       Thread-253630][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 11:42:39,116 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 11:42:39,116 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 11:42:39,116 [DEBUG][       Thread-253630][   transport.py][1871] : userauth is OK
2025-06-13 11:42:39,140 [ INFO][       Thread-253630][   transport.py][1871] : Authentication (password) successful!
2025-06-13 11:42:39,140 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 11:42:39,737 [DEBUG][       Thread-253630][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 11:42:39,737 [DEBUG][       Thread-253630][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 11:42:39,772 [DEBUG][Thread-253632 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:42:39,780 [DEBUG][       Thread-253630][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 11:42:39,780 [DEBUG][       Thread-253630][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 11:42:39,783 [DEBUG][       Thread-253630][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 11:42:39,792 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 11:42:39,792 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 11:42:39,794 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 11:42:39,798 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 11:42:39,816 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 11:42:39,817 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 11:42:39,817 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 11:42:39,818 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 11:42:39,818 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.404453 -999.00  +10.70  22.74     47   +0.10 1 1 1 1 1   888    0 11.80 63.02 ----- 22.9 22.7 49.4 32.7 15.2 -28.2 13.8 -30.0 13.2 -28.8 14.6 -26.7
2025-06-13 11:42:39,818 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 11:42:39,818 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 11:42:39,818 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.404453
2025-06-13 11:42:39,818 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 11:42:39,818 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 11:42:39,818 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 11:42:39,818 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 11:42:39,818 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 11:42:39,818 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T11:42:29', tmtdew=11.52, humidity=45.19, cloud=0.0, wind=18.65, temperature=10.85, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T09:42:24.739', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 11:42:39,819 [DEBUG][       Thread-253630][   transport.py][1871] : EOF in transport thread
2025-06-13 11:42:39,892 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 11:42:39,903 [DEBUG][       Thread-253634][   transport.py][1871] : starting thread (client mode): 0x867fd960
2025-06-13 11:42:39,903 [DEBUG][       Thread-253634][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 11:42:39,918 [DEBUG][       Thread-253634][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 11:42:39,918 [ INFO][       Thread-253634][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 11:42:39,925 [DEBUG][       Thread-253634][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 11:42:39,925 [DEBUG][       Thread-253634][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 11:42:39,925 [DEBUG][       Thread-253634][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 11:42:39,925 [DEBUG][       Thread-253634][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:42:39,925 [DEBUG][       Thread-253634][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:42:39,925 [DEBUG][       Thread-253634][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:42:39,925 [DEBUG][       Thread-253634][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:42:39,925 [DEBUG][       Thread-253634][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 11:42:39,925 [DEBUG][       Thread-253634][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 11:42:39,925 [DEBUG][       Thread-253634][   transport.py][1871] : client lang: <none>
2025-06-13 11:42:39,925 [DEBUG][       Thread-253634][   transport.py][1871] : server lang: <none>
2025-06-13 11:42:39,925 [DEBUG][       Thread-253634][   transport.py][1871] : kex follows: False
2025-06-13 11:42:39,925 [DEBUG][       Thread-253634][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 11:42:39,925 [DEBUG][       Thread-253634][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 11:42:39,925 [DEBUG][       Thread-253634][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 11:42:39,925 [DEBUG][       Thread-253634][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 11:42:39,925 [DEBUG][       Thread-253634][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 11:42:39,925 [DEBUG][       Thread-253634][   transport.py][1871] : Compression: none
2025-06-13 11:42:39,925 [DEBUG][       Thread-253634][   transport.py][1871] : === End of kex handshake ===
2025-06-13 11:42:39,984 [DEBUG][       Thread-253634][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 11:42:39,984 [DEBUG][       Thread-253634][   transport.py][1871] : Switch to new keys ...
2025-06-13 11:42:39,984 [DEBUG][       Thread-253634][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 11:42:39,984 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 11:42:39,984 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 11:42:40,041 [DEBUG][       Thread-253634][   transport.py][1871] : userauth is OK
2025-06-13 11:42:40,041 [DEBUG][       Thread-253634][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 11:42:40,041 [DEBUG][       Thread-253634][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 11:42:40,041 [DEBUG][       Thread-253634][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 11:42:40,041 [DEBUG][       Thread-253634][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 11:42:40,057 [ INFO][       Thread-253634][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 11:42:40,058 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 11:42:40,058 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 11:42:41,060 [DEBUG][       Thread-253634][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 11:42:41,060 [DEBUG][       Thread-253634][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 11:42:41,108 [DEBUG][       Thread-253634][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 11:42:41,108 [DEBUG][       Thread-253634][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 11:42:41,117 [DEBUG][       Thread-253634][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 11:42:41,127 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 11:42:41,127 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 11:42:41,136 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 11:42:41,145 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 11:42:41,146 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 11:42:41,146 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 11:42:41,156 [DEBUG][       Thread-253634][   transport.py][1871] : EOF in transport thread
2025-06-13 11:42:48,790 [DEBUG][Thread-253636 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:42:51,151 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 11:42:51,152 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 11:42:51,152 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 11:42:51,153 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 11:42:51,618 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 11, 42, 29), 11.52, 45.19, 0.0, 18.65, 10.85, 0, 0, 0, 2, 0, 0),)
2025-06-13 11:42:51,618 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 11:42:29
2025-06-13 11:42:51,698 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 11:42:51,702 [DEBUG][       Thread-253637][   transport.py][1871] : starting thread (client mode): 0x84204370
2025-06-13 11:42:51,702 [DEBUG][       Thread-253637][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 11:42:51,724 [DEBUG][       Thread-253637][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 11:42:51,724 [ INFO][       Thread-253637][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 11:42:51,728 [DEBUG][       Thread-253637][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 11:42:51,728 [DEBUG][       Thread-253637][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 11:42:51,729 [DEBUG][       Thread-253637][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 11:42:51,729 [DEBUG][       Thread-253637][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:42:51,729 [DEBUG][       Thread-253637][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:42:51,729 [DEBUG][       Thread-253637][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:42:51,729 [DEBUG][       Thread-253637][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:42:51,729 [DEBUG][       Thread-253637][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 11:42:51,729 [DEBUG][       Thread-253637][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 11:42:51,729 [DEBUG][       Thread-253637][   transport.py][1871] : client lang: <none>
2025-06-13 11:42:51,729 [DEBUG][       Thread-253637][   transport.py][1871] : server lang: <none>
2025-06-13 11:42:51,729 [DEBUG][       Thread-253637][   transport.py][1871] : kex follows: False
2025-06-13 11:42:51,729 [DEBUG][       Thread-253637][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 11:42:51,729 [DEBUG][       Thread-253637][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 11:42:51,729 [DEBUG][       Thread-253637][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 11:42:51,729 [DEBUG][       Thread-253637][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 11:42:51,729 [DEBUG][       Thread-253637][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 11:42:51,729 [DEBUG][       Thread-253637][   transport.py][1871] : Compression: none
2025-06-13 11:42:51,729 [DEBUG][       Thread-253637][   transport.py][1871] : === End of kex handshake ===
2025-06-13 11:42:51,744 [DEBUG][       Thread-253637][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 11:42:51,744 [DEBUG][       Thread-253637][   transport.py][1871] : Switch to new keys ...
2025-06-13 11:42:51,745 [DEBUG][       Thread-253637][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 11:42:51,745 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 11:42:51,745 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 11:42:51,746 [DEBUG][       Thread-253637][   transport.py][1871] : userauth is OK
2025-06-13 11:42:51,760 [ INFO][       Thread-253637][   transport.py][1871] : Authentication (password) successful!
2025-06-13 11:42:51,761 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 11:42:52,390 [DEBUG][       Thread-253637][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 11:42:52,390 [DEBUG][       Thread-253637][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 11:42:52,433 [DEBUG][       Thread-253637][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 11:42:52,433 [DEBUG][       Thread-253637][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 11:42:52,436 [DEBUG][       Thread-253637][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 11:42:52,447 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 11:42:52,447 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 11:42:52,449 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 11:42:52,451 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 11:42:52,455 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 11:42:52,457 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 11:42:52,457 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 11:42:52,458 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 11:42:52,458 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.404453 -999.00  +10.70  22.74     47   +0.10 1 1 1 1 1   888    0 11.80 63.02 ----- 22.9 22.7 49.4 32.7 15.2 -28.2 13.8 -30.0 13.2 -28.8 14.6 -26.7
2025-06-13 11:42:52,458 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 11:42:52,458 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 11:42:52,458 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.404453
2025-06-13 11:42:52,458 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 11:42:52,459 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 11:42:52,459 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 11:42:52,459 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 11:42:52,459 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 11:42:52,459 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T11:42:29', tmtdew=11.52, humidity=45.19, cloud=0.0, wind=18.65, temperature=10.85, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T09:42:24.739', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 11:42:52,460 [DEBUG][       Thread-253637][   transport.py][1871] : EOF in transport thread
2025-06-13 11:42:52,554 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 11:42:52,563 [DEBUG][       Thread-253640][   transport.py][1871] : starting thread (client mode): 0x863bf010
2025-06-13 11:42:52,563 [DEBUG][       Thread-253640][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 11:42:52,579 [DEBUG][       Thread-253640][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 11:42:52,579 [ INFO][       Thread-253640][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 11:42:52,586 [DEBUG][       Thread-253640][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 11:42:52,587 [DEBUG][       Thread-253640][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 11:42:52,587 [DEBUG][       Thread-253640][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 11:42:52,587 [DEBUG][       Thread-253640][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:42:52,587 [DEBUG][       Thread-253640][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:42:52,587 [DEBUG][       Thread-253640][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:42:52,587 [DEBUG][       Thread-253640][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:42:52,587 [DEBUG][       Thread-253640][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 11:42:52,587 [DEBUG][       Thread-253640][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 11:42:52,587 [DEBUG][       Thread-253640][   transport.py][1871] : client lang: <none>
2025-06-13 11:42:52,587 [DEBUG][       Thread-253640][   transport.py][1871] : server lang: <none>
2025-06-13 11:42:52,587 [DEBUG][       Thread-253640][   transport.py][1871] : kex follows: False
2025-06-13 11:42:52,587 [DEBUG][       Thread-253640][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 11:42:52,587 [DEBUG][       Thread-253640][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 11:42:52,587 [DEBUG][       Thread-253640][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 11:42:52,587 [DEBUG][       Thread-253640][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 11:42:52,587 [DEBUG][       Thread-253640][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 11:42:52,587 [DEBUG][       Thread-253640][   transport.py][1871] : Compression: none
2025-06-13 11:42:52,587 [DEBUG][       Thread-253640][   transport.py][1871] : === End of kex handshake ===
2025-06-13 11:42:52,649 [DEBUG][       Thread-253640][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 11:42:52,649 [DEBUG][       Thread-253640][   transport.py][1871] : Switch to new keys ...
2025-06-13 11:42:52,650 [DEBUG][       Thread-253640][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 11:42:52,650 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 11:42:52,651 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 11:42:52,705 [DEBUG][       Thread-253640][   transport.py][1871] : userauth is OK
2025-06-13 11:42:52,705 [DEBUG][       Thread-253640][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 11:42:52,705 [DEBUG][       Thread-253640][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 11:42:52,705 [DEBUG][       Thread-253640][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 11:42:52,705 [DEBUG][       Thread-253640][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 11:42:52,723 [ INFO][       Thread-253640][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 11:42:52,724 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 11:42:52,724 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 11:42:53,759 [DEBUG][       Thread-253640][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 11:42:53,759 [DEBUG][       Thread-253640][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 11:42:53,807 [DEBUG][       Thread-253640][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 11:42:53,808 [DEBUG][       Thread-253640][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 11:42:53,817 [DEBUG][       Thread-253640][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 11:42:53,827 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 11:42:53,828 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 11:42:53,836 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 11:42:53,845 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 11:42:53,845 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 11:42:53,846 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 11:42:53,853 [DEBUG][       Thread-253640][   transport.py][1871] : EOF in transport thread
2025-06-13 11:42:57,821 [DEBUG][Thread-253642 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:43:03,856 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 11:43:03,857 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 11:43:03,857 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 11:43:03,859 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 11:43:04,327 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 11, 43, 1), 11.51, 45.22, 0.0, 17.95, 10.87, 0, 0, 0, 2, 0, 0),)
2025-06-13 11:43:04,327 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 11:43:01
2025-06-13 11:43:04,408 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 11:43:04,415 [DEBUG][       Thread-253643][   transport.py][1871] : starting thread (client mode): 0x84207d60
2025-06-13 11:43:04,415 [DEBUG][       Thread-253643][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 11:43:04,435 [DEBUG][       Thread-253643][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 11:43:04,435 [ INFO][       Thread-253643][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 11:43:04,439 [DEBUG][       Thread-253643][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 11:43:04,439 [DEBUG][       Thread-253643][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 11:43:04,439 [DEBUG][       Thread-253643][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 11:43:04,439 [DEBUG][       Thread-253643][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:43:04,439 [DEBUG][       Thread-253643][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:43:04,439 [DEBUG][       Thread-253643][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:43:04,439 [DEBUG][       Thread-253643][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:43:04,439 [DEBUG][       Thread-253643][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 11:43:04,439 [DEBUG][       Thread-253643][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 11:43:04,439 [DEBUG][       Thread-253643][   transport.py][1871] : client lang: <none>
2025-06-13 11:43:04,439 [DEBUG][       Thread-253643][   transport.py][1871] : server lang: <none>
2025-06-13 11:43:04,439 [DEBUG][       Thread-253643][   transport.py][1871] : kex follows: False
2025-06-13 11:43:04,439 [DEBUG][       Thread-253643][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 11:43:04,439 [DEBUG][       Thread-253643][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 11:43:04,439 [DEBUG][       Thread-253643][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 11:43:04,439 [DEBUG][       Thread-253643][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 11:43:04,439 [DEBUG][       Thread-253643][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 11:43:04,439 [DEBUG][       Thread-253643][   transport.py][1871] : Compression: none
2025-06-13 11:43:04,439 [DEBUG][       Thread-253643][   transport.py][1871] : === End of kex handshake ===
2025-06-13 11:43:04,457 [DEBUG][       Thread-253643][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 11:43:04,457 [DEBUG][       Thread-253643][   transport.py][1871] : Switch to new keys ...
2025-06-13 11:43:04,458 [DEBUG][       Thread-253643][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 11:43:04,458 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 11:43:04,458 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 11:43:04,460 [DEBUG][       Thread-253643][   transport.py][1871] : userauth is OK
2025-06-13 11:43:04,484 [ INFO][       Thread-253643][   transport.py][1871] : Authentication (password) successful!
2025-06-13 11:43:04,485 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 11:43:05,110 [DEBUG][       Thread-253643][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 11:43:05,110 [DEBUG][       Thread-253643][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 11:43:05,153 [DEBUG][       Thread-253643][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 11:43:05,153 [DEBUG][       Thread-253643][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 11:43:05,156 [DEBUG][       Thread-253643][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 11:43:05,167 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 11:43:05,168 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 11:43:05,170 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 11:43:05,172 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 11:43:05,179 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 11:43:05,182 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 11:43:05,182 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 11:43:05,183 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 11:43:05,183 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.404453 -999.00  +10.70  22.74     47   +0.10 1 1 1 1 1   888    0 11.80 63.02 ----- 22.9 22.7 49.4 32.7 15.2 -28.2 13.8 -30.0 13.2 -28.8 14.6 -26.7
2025-06-13 11:43:05,183 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 11:43:05,183 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 11:43:05,183 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.404453
2025-06-13 11:43:05,184 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 11:43:05,185 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 11:43:05,185 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 11:43:05,185 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 11:43:05,185 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 11:43:05,186 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T11:43:01', tmtdew=11.51, humidity=45.22, cloud=0.0, wind=17.95, temperature=10.87, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T09:42:24.739', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 11:43:05,187 [DEBUG][       Thread-253643][   transport.py][1871] : EOF in transport thread
2025-06-13 11:43:05,278 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 11:43:06,842 [DEBUG][Thread-253646 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:43:09,963 [DEBUG][Thread-253647 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:43:15,874 [DEBUG][Thread-253648 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:43:24,893 [DEBUG][Thread-253649 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:43:33,913 [DEBUG][Thread-253650 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:43:37,208 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:43:37,209 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:43:37,472 [DEBUG][Thread-253651 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:43:38,552 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:43:38,553 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:43:42,935 [DEBUG][Thread-253652 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:43:51,962 [DEBUG][Thread-253653 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:44:00,982 [DEBUG][Thread-253654 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:44:10,005 [DEBUG][Thread-253655 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:44:10,016 [DEBUG][Thread-253656 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:44:19,026 [DEBUG][Thread-253657 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:44:28,048 [DEBUG][Thread-253658 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:44:37,067 [DEBUG][Thread-253659 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:44:37,368 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:44:37,368 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:44:38,581 [DEBUG][Thread-253660 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:44:39,672 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:44:39,673 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:44:46,087 [DEBUG][Thread-253661 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:44:55,110 [DEBUG][Thread-253662 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:45:04,129 [DEBUG][Thread-253663 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:45:10,060 [DEBUG][Thread-253664 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:45:13,149 [DEBUG][Thread-253665 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:45:15,284 [WARNING][ poll_weather_worker][      driver.py][ 286] : Unable to open ssh connection for writing weather state to io.saao.ac.za: [Errno 110] Connection timed out
2025-06-13 11:45:22,169 [DEBUG][Thread-253666 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:45:25,295 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 11:45:25,295 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 11:45:25,295 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 11:45:25,297 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 11:45:25,774 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 11, 45, 8), 12.16, 42.7, 0.0, 17.66, 10.87, 0, 0, 0, 2, 0, 0),)
2025-06-13 11:45:25,774 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 11:45:08
2025-06-13 11:45:25,854 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 11:45:25,859 [DEBUG][       Thread-253667][   transport.py][1871] : starting thread (client mode): 0x84207850
2025-06-13 11:45:25,859 [DEBUG][       Thread-253667][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 11:45:25,880 [DEBUG][       Thread-253667][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 11:45:25,880 [ INFO][       Thread-253667][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 11:45:25,884 [DEBUG][       Thread-253667][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 11:45:25,884 [DEBUG][       Thread-253667][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 11:45:25,884 [DEBUG][       Thread-253667][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 11:45:25,884 [DEBUG][       Thread-253667][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:45:25,884 [DEBUG][       Thread-253667][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:45:25,884 [DEBUG][       Thread-253667][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:45:25,884 [DEBUG][       Thread-253667][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:45:25,884 [DEBUG][       Thread-253667][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 11:45:25,884 [DEBUG][       Thread-253667][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 11:45:25,884 [DEBUG][       Thread-253667][   transport.py][1871] : client lang: <none>
2025-06-13 11:45:25,884 [DEBUG][       Thread-253667][   transport.py][1871] : server lang: <none>
2025-06-13 11:45:25,884 [DEBUG][       Thread-253667][   transport.py][1871] : kex follows: False
2025-06-13 11:45:25,884 [DEBUG][       Thread-253667][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 11:45:25,884 [DEBUG][       Thread-253667][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 11:45:25,884 [DEBUG][       Thread-253667][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 11:45:25,884 [DEBUG][       Thread-253667][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 11:45:25,884 [DEBUG][       Thread-253667][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 11:45:25,884 [DEBUG][       Thread-253667][   transport.py][1871] : Compression: none
2025-06-13 11:45:25,885 [DEBUG][       Thread-253667][   transport.py][1871] : === End of kex handshake ===
2025-06-13 11:45:25,902 [DEBUG][       Thread-253667][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 11:45:25,902 [DEBUG][       Thread-253667][   transport.py][1871] : Switch to new keys ...
2025-06-13 11:45:25,903 [DEBUG][       Thread-253667][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 11:45:25,903 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 11:45:25,903 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 11:45:25,904 [DEBUG][       Thread-253667][   transport.py][1871] : userauth is OK
2025-06-13 11:45:25,929 [ INFO][       Thread-253667][   transport.py][1871] : Authentication (password) successful!
2025-06-13 11:45:25,930 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 11:45:27,679 [DEBUG][       Thread-253667][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 11:45:27,679 [DEBUG][       Thread-253667][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 11:45:27,721 [DEBUG][       Thread-253667][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 11:45:27,721 [DEBUG][       Thread-253667][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 11:45:27,725 [DEBUG][       Thread-253667][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 11:45:27,737 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 11:45:27,738 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 11:45:27,740 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 11:45:27,741 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 11:45:27,746 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 11:45:27,749 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 11:45:27,749 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 11:45:27,750 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 11:45:27,750 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.405841 -999.00  +10.80  24.54     48   +0.40 1 1 1 1 1   888    0 11.77 65.42 ----- 23.4 24.5 54.6 27.2 15.3 -27.9 13.9 -30.3 13.3 -29.2 14.7 -26.5
2025-06-13 11:45:27,750 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 11:45:27,750 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 11:45:27,750 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.405841
2025-06-13 11:45:27,751 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 11:45:27,751 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 11:45:27,751 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 11:45:27,751 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 11:45:27,751 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 11:45:27,752 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T11:45:08', tmtdew=12.16, humidity=42.7, cloud=0.0, wind=17.66, temperature=10.87, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T09:44:24.662', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 11:45:27,753 [DEBUG][       Thread-253667][   transport.py][1871] : EOF in transport thread
2025-06-13 11:45:27,836 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 11:45:27,849 [DEBUG][       Thread-253670][   transport.py][1871] : starting thread (client mode): 0x863a5b70
2025-06-13 11:45:27,849 [DEBUG][       Thread-253670][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 11:45:27,865 [DEBUG][       Thread-253670][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 11:45:27,865 [ INFO][       Thread-253670][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 11:45:27,873 [DEBUG][       Thread-253670][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 11:45:27,874 [DEBUG][       Thread-253670][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 11:45:27,874 [DEBUG][       Thread-253670][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 11:45:27,874 [DEBUG][       Thread-253670][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:45:27,874 [DEBUG][       Thread-253670][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:45:27,874 [DEBUG][       Thread-253670][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:45:27,874 [DEBUG][       Thread-253670][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:45:27,874 [DEBUG][       Thread-253670][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 11:45:27,874 [DEBUG][       Thread-253670][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 11:45:27,874 [DEBUG][       Thread-253670][   transport.py][1871] : client lang: <none>
2025-06-13 11:45:27,874 [DEBUG][       Thread-253670][   transport.py][1871] : server lang: <none>
2025-06-13 11:45:27,874 [DEBUG][       Thread-253670][   transport.py][1871] : kex follows: False
2025-06-13 11:45:27,874 [DEBUG][       Thread-253670][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 11:45:27,874 [DEBUG][       Thread-253670][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 11:45:27,874 [DEBUG][       Thread-253670][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 11:45:27,874 [DEBUG][       Thread-253670][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 11:45:27,875 [DEBUG][       Thread-253670][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 11:45:27,875 [DEBUG][       Thread-253670][   transport.py][1871] : Compression: none
2025-06-13 11:45:27,875 [DEBUG][       Thread-253670][   transport.py][1871] : === End of kex handshake ===
2025-06-13 11:45:27,934 [DEBUG][       Thread-253670][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 11:45:27,935 [DEBUG][       Thread-253670][   transport.py][1871] : Switch to new keys ...
2025-06-13 11:45:27,935 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 11:45:27,936 [DEBUG][       Thread-253670][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 11:45:27,937 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 11:45:27,993 [DEBUG][       Thread-253670][   transport.py][1871] : userauth is OK
2025-06-13 11:45:27,993 [DEBUG][       Thread-253670][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 11:45:27,993 [DEBUG][       Thread-253670][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 11:45:27,993 [DEBUG][       Thread-253670][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 11:45:27,993 [DEBUG][       Thread-253670][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 11:45:28,013 [ INFO][       Thread-253670][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 11:45:28,013 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 11:45:28,014 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 11:45:29,078 [DEBUG][       Thread-253670][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 11:45:29,079 [DEBUG][       Thread-253670][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 11:45:29,129 [DEBUG][       Thread-253670][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 11:45:29,129 [DEBUG][       Thread-253670][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 11:45:29,138 [DEBUG][       Thread-253670][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 11:45:29,147 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 11:45:29,148 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 11:45:29,157 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 11:45:29,166 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 11:45:29,166 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 11:45:29,167 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 11:45:29,175 [DEBUG][       Thread-253670][   transport.py][1871] : EOF in transport thread
2025-06-13 11:45:31,192 [DEBUG][Thread-253672 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:45:37,529 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:45:37,531 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:45:39,176 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 11:45:39,176 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 11:45:39,176 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 11:45:39,178 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 11:45:39,653 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 11, 45, 8), 12.16, 42.7, 0.0, 17.66, 10.87, 0, 0, 0, 2, 0, 0),)
2025-06-13 11:45:39,653 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 11:45:08
2025-06-13 11:45:39,733 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 11:45:39,737 [DEBUG][       Thread-253673][   transport.py][1871] : starting thread (client mode): 0x84204400
2025-06-13 11:45:39,737 [DEBUG][       Thread-253673][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 11:45:39,752 [DEBUG][Thread-253674 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:45:39,758 [DEBUG][       Thread-253673][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 11:45:39,758 [ INFO][       Thread-253673][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 11:45:39,762 [DEBUG][       Thread-253673][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 11:45:39,762 [DEBUG][       Thread-253673][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 11:45:39,762 [DEBUG][       Thread-253673][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 11:45:39,762 [DEBUG][       Thread-253673][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:45:39,762 [DEBUG][       Thread-253673][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:45:39,762 [DEBUG][       Thread-253673][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:45:39,762 [DEBUG][       Thread-253673][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:45:39,762 [DEBUG][       Thread-253673][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 11:45:39,762 [DEBUG][       Thread-253673][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 11:45:39,762 [DEBUG][       Thread-253673][   transport.py][1871] : client lang: <none>
2025-06-13 11:45:39,762 [DEBUG][       Thread-253673][   transport.py][1871] : server lang: <none>
2025-06-13 11:45:39,762 [DEBUG][       Thread-253673][   transport.py][1871] : kex follows: False
2025-06-13 11:45:39,762 [DEBUG][       Thread-253673][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 11:45:39,762 [DEBUG][       Thread-253673][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 11:45:39,762 [DEBUG][       Thread-253673][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 11:45:39,762 [DEBUG][       Thread-253673][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 11:45:39,762 [DEBUG][       Thread-253673][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 11:45:39,762 [DEBUG][       Thread-253673][   transport.py][1871] : Compression: none
2025-06-13 11:45:39,762 [DEBUG][       Thread-253673][   transport.py][1871] : === End of kex handshake ===
2025-06-13 11:45:39,777 [DEBUG][       Thread-253673][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 11:45:39,778 [DEBUG][       Thread-253673][   transport.py][1871] : Switch to new keys ...
2025-06-13 11:45:39,778 [DEBUG][       Thread-253673][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 11:45:39,778 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 11:45:39,778 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 11:45:39,779 [DEBUG][       Thread-253673][   transport.py][1871] : userauth is OK
2025-06-13 11:45:39,792 [ INFO][       Thread-253673][   transport.py][1871] : Authentication (password) successful!
2025-06-13 11:45:39,792 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 11:45:40,232 [DEBUG][Thread-253676 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:45:40,436 [DEBUG][       Thread-253673][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 11:45:40,437 [DEBUG][       Thread-253673][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 11:45:40,480 [DEBUG][       Thread-253673][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 11:45:40,480 [DEBUG][       Thread-253673][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 11:45:40,483 [DEBUG][       Thread-253673][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 11:45:40,496 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 11:45:40,496 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 11:45:40,498 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 11:45:40,499 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 11:45:40,502 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 11:45:40,503 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 11:45:40,503 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 11:45:40,503 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 11:45:40,503 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.406536 -999.00  +11.30  18.89     47   +0.40 1 1 1 1 1   888    0 12.28 70.58 ----- 20.8 18.9 42.2 23.9 15.4 -27.9 14.0 -29.6 13.5 -27.7 14.8 -26.5
2025-06-13 11:45:40,503 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 11:45:40,503 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 11:45:40,503 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.406536
2025-06-13 11:45:40,503 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 11:45:40,503 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 11:45:40,503 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 11:45:40,503 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 11:45:40,503 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 11:45:40,503 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T11:45:08', tmtdew=12.16, humidity=42.7, cloud=0.0, wind=17.66, temperature=10.87, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T09:45:24.710', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 11:45:40,504 [DEBUG][       Thread-253673][   transport.py][1871] : EOF in transport thread
2025-06-13 11:45:40,576 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 11:45:40,586 [DEBUG][       Thread-253678][   transport.py][1871] : starting thread (client mode): 0x863a5b70
2025-06-13 11:45:40,586 [DEBUG][       Thread-253678][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 11:45:40,602 [DEBUG][       Thread-253678][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 11:45:40,602 [ INFO][       Thread-253678][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 11:45:40,613 [DEBUG][       Thread-253678][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 11:45:40,613 [DEBUG][       Thread-253678][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 11:45:40,613 [DEBUG][       Thread-253678][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 11:45:40,613 [DEBUG][       Thread-253678][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:45:40,613 [DEBUG][       Thread-253678][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:45:40,613 [DEBUG][       Thread-253678][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:45:40,613 [DEBUG][       Thread-253678][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:45:40,613 [DEBUG][       Thread-253678][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 11:45:40,613 [DEBUG][       Thread-253678][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 11:45:40,613 [DEBUG][       Thread-253678][   transport.py][1871] : client lang: <none>
2025-06-13 11:45:40,613 [DEBUG][       Thread-253678][   transport.py][1871] : server lang: <none>
2025-06-13 11:45:40,613 [DEBUG][       Thread-253678][   transport.py][1871] : kex follows: False
2025-06-13 11:45:40,613 [DEBUG][       Thread-253678][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 11:45:40,613 [DEBUG][       Thread-253678][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 11:45:40,613 [DEBUG][       Thread-253678][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 11:45:40,613 [DEBUG][       Thread-253678][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 11:45:40,613 [DEBUG][       Thread-253678][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 11:45:40,613 [DEBUG][       Thread-253678][   transport.py][1871] : Compression: none
2025-06-13 11:45:40,613 [DEBUG][       Thread-253678][   transport.py][1871] : === End of kex handshake ===
2025-06-13 11:45:40,671 [DEBUG][       Thread-253678][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 11:45:40,671 [DEBUG][       Thread-253678][   transport.py][1871] : Switch to new keys ...
2025-06-13 11:45:40,671 [DEBUG][       Thread-253678][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 11:45:40,671 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 11:45:40,671 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 11:45:40,727 [DEBUG][       Thread-253678][   transport.py][1871] : userauth is OK
2025-06-13 11:45:40,728 [DEBUG][       Thread-253678][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 11:45:40,728 [DEBUG][       Thread-253678][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 11:45:40,728 [DEBUG][       Thread-253678][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 11:45:40,728 [DEBUG][       Thread-253678][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 11:45:40,742 [ INFO][       Thread-253678][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 11:45:40,742 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 11:45:40,742 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 11:45:40,809 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:45:40,809 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:45:41,752 [DEBUG][       Thread-253678][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 11:45:41,752 [DEBUG][       Thread-253678][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 11:45:41,804 [DEBUG][       Thread-253678][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 11:45:41,804 [DEBUG][       Thread-253678][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 11:45:41,813 [DEBUG][       Thread-253678][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 11:45:41,821 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 11:45:41,821 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 11:45:41,829 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 11:45:41,837 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 11:45:41,837 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 11:45:41,837 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 11:45:41,846 [DEBUG][       Thread-253678][   transport.py][1871] : EOF in transport thread
2025-06-13 11:45:49,249 [DEBUG][Thread-253680 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:45:51,844 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 11:45:51,844 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 11:45:51,844 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 11:45:51,845 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 11:45:52,317 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 11, 45, 39), 12.03, 43.2, 0.0, 19.04, 10.97, 0, 0, 0, 2, 0, 0),)
2025-06-13 11:45:52,317 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 11:45:39
2025-06-13 11:45:52,398 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 11:45:52,402 [DEBUG][       Thread-253681][   transport.py][1871] : starting thread (client mode): 0x84206710
2025-06-13 11:45:52,402 [DEBUG][       Thread-253681][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 11:45:52,423 [DEBUG][       Thread-253681][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 11:45:52,423 [ INFO][       Thread-253681][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 11:45:52,427 [DEBUG][       Thread-253681][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 11:45:52,427 [DEBUG][       Thread-253681][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 11:45:52,427 [DEBUG][       Thread-253681][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 11:45:52,427 [DEBUG][       Thread-253681][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:45:52,427 [DEBUG][       Thread-253681][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:45:52,427 [DEBUG][       Thread-253681][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:45:52,427 [DEBUG][       Thread-253681][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:45:52,427 [DEBUG][       Thread-253681][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 11:45:52,427 [DEBUG][       Thread-253681][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 11:45:52,427 [DEBUG][       Thread-253681][   transport.py][1871] : client lang: <none>
2025-06-13 11:45:52,428 [DEBUG][       Thread-253681][   transport.py][1871] : server lang: <none>
2025-06-13 11:45:52,428 [DEBUG][       Thread-253681][   transport.py][1871] : kex follows: False
2025-06-13 11:45:52,428 [DEBUG][       Thread-253681][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 11:45:52,428 [DEBUG][       Thread-253681][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 11:45:52,428 [DEBUG][       Thread-253681][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 11:45:52,428 [DEBUG][       Thread-253681][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 11:45:52,428 [DEBUG][       Thread-253681][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 11:45:52,428 [DEBUG][       Thread-253681][   transport.py][1871] : Compression: none
2025-06-13 11:45:52,428 [DEBUG][       Thread-253681][   transport.py][1871] : === End of kex handshake ===
2025-06-13 11:45:52,444 [DEBUG][       Thread-253681][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 11:45:52,444 [DEBUG][       Thread-253681][   transport.py][1871] : Switch to new keys ...
2025-06-13 11:45:52,445 [DEBUG][       Thread-253681][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 11:45:52,445 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 11:45:52,445 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 11:45:52,446 [DEBUG][       Thread-253681][   transport.py][1871] : userauth is OK
2025-06-13 11:45:52,471 [ INFO][       Thread-253681][   transport.py][1871] : Authentication (password) successful!
2025-06-13 11:45:52,472 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 11:45:53,106 [DEBUG][       Thread-253681][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 11:45:53,106 [DEBUG][       Thread-253681][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 11:45:53,149 [DEBUG][       Thread-253681][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 11:45:53,149 [DEBUG][       Thread-253681][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 11:45:53,152 [DEBUG][       Thread-253681][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 11:45:53,164 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 11:45:53,165 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 11:45:53,167 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 11:45:53,168 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 11:45:53,175 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 11:45:53,177 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 11:45:53,177 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 11:45:53,178 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 11:45:53,178 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.406536 -999.00  +11.30  18.89     47   +0.40 1 1 1 1 1   888    0 12.28 70.58 ----- 20.8 18.9 42.2 23.9 15.4 -27.9 14.0 -29.6 13.5 -27.7 14.8 -26.5
2025-06-13 11:45:53,178 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 11:45:53,178 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 11:45:53,178 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.406536
2025-06-13 11:45:53,179 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 11:45:53,179 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 11:45:53,179 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 11:45:53,179 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 11:45:53,179 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 11:45:53,179 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T11:45:39', tmtdew=12.03, humidity=43.2, cloud=0.0, wind=19.04, temperature=10.97, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T09:45:24.710', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 11:45:53,180 [DEBUG][       Thread-253681][   transport.py][1871] : EOF in transport thread
2025-06-13 11:45:53,264 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 11:45:53,275 [DEBUG][       Thread-253684][   transport.py][1871] : starting thread (client mode): 0x863ca1a0
2025-06-13 11:45:53,275 [DEBUG][       Thread-253684][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 11:45:53,290 [DEBUG][       Thread-253684][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 11:45:53,291 [ INFO][       Thread-253684][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 11:45:53,298 [DEBUG][       Thread-253684][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 11:45:53,298 [DEBUG][       Thread-253684][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 11:45:53,298 [DEBUG][       Thread-253684][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 11:45:53,298 [DEBUG][       Thread-253684][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:45:53,298 [DEBUG][       Thread-253684][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:45:53,299 [DEBUG][       Thread-253684][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:45:53,299 [DEBUG][       Thread-253684][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:45:53,299 [DEBUG][       Thread-253684][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 11:45:53,299 [DEBUG][       Thread-253684][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 11:45:53,299 [DEBUG][       Thread-253684][   transport.py][1871] : client lang: <none>
2025-06-13 11:45:53,299 [DEBUG][       Thread-253684][   transport.py][1871] : server lang: <none>
2025-06-13 11:45:53,299 [DEBUG][       Thread-253684][   transport.py][1871] : kex follows: False
2025-06-13 11:45:53,299 [DEBUG][       Thread-253684][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 11:45:53,299 [DEBUG][       Thread-253684][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 11:45:53,299 [DEBUG][       Thread-253684][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 11:45:53,299 [DEBUG][       Thread-253684][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 11:45:53,299 [DEBUG][       Thread-253684][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 11:45:53,299 [DEBUG][       Thread-253684][   transport.py][1871] : Compression: none
2025-06-13 11:45:53,299 [DEBUG][       Thread-253684][   transport.py][1871] : === End of kex handshake ===
2025-06-13 11:45:53,356 [DEBUG][       Thread-253684][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 11:45:53,356 [DEBUG][       Thread-253684][   transport.py][1871] : Switch to new keys ...
2025-06-13 11:45:53,357 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 11:45:53,358 [DEBUG][       Thread-253684][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 11:45:53,358 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 11:45:53,412 [DEBUG][       Thread-253684][   transport.py][1871] : userauth is OK
2025-06-13 11:45:53,412 [DEBUG][       Thread-253684][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 11:45:53,413 [DEBUG][       Thread-253684][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 11:45:53,413 [DEBUG][       Thread-253684][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 11:45:53,413 [DEBUG][       Thread-253684][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 11:45:53,431 [ INFO][       Thread-253684][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 11:45:53,432 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 11:45:53,432 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 11:45:54,485 [DEBUG][       Thread-253684][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 11:45:54,485 [DEBUG][       Thread-253684][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 11:45:54,535 [DEBUG][       Thread-253684][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 11:45:54,536 [DEBUG][       Thread-253684][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 11:45:54,545 [DEBUG][       Thread-253684][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 11:45:54,554 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 11:45:54,554 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 11:45:54,563 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 11:45:54,572 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 11:45:54,573 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 11:45:54,573 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 11:45:54,583 [DEBUG][       Thread-253684][   transport.py][1871] : EOF in transport thread
2025-06-13 11:45:58,270 [DEBUG][Thread-253686 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:46:04,584 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 11:46:04,584 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 11:46:04,584 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 11:46:04,587 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 11:46:05,072 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 11, 45, 39), 12.03, 43.2, 0.0, 19.04, 10.97, 0, 0, 0, 2, 0, 0),)
2025-06-13 11:46:05,072 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 11:45:39
2025-06-13 11:46:05,153 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 11:46:05,156 [DEBUG][       Thread-253687][   transport.py][1871] : starting thread (client mode): 0x863bf220
2025-06-13 11:46:05,156 [DEBUG][       Thread-253687][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 11:46:05,170 [DEBUG][       Thread-253687][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 11:46:05,170 [ INFO][       Thread-253687][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 11:46:05,173 [DEBUG][       Thread-253687][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 11:46:05,173 [DEBUG][       Thread-253687][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 11:46:05,173 [DEBUG][       Thread-253687][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 11:46:05,173 [DEBUG][       Thread-253687][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:46:05,173 [DEBUG][       Thread-253687][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:46:05,173 [DEBUG][       Thread-253687][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:46:05,173 [DEBUG][       Thread-253687][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:46:05,173 [DEBUG][       Thread-253687][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 11:46:05,173 [DEBUG][       Thread-253687][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 11:46:05,173 [DEBUG][       Thread-253687][   transport.py][1871] : client lang: <none>
2025-06-13 11:46:05,173 [DEBUG][       Thread-253687][   transport.py][1871] : server lang: <none>
2025-06-13 11:46:05,173 [DEBUG][       Thread-253687][   transport.py][1871] : kex follows: False
2025-06-13 11:46:05,173 [DEBUG][       Thread-253687][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 11:46:05,173 [DEBUG][       Thread-253687][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 11:46:05,173 [DEBUG][       Thread-253687][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 11:46:05,173 [DEBUG][       Thread-253687][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 11:46:05,173 [DEBUG][       Thread-253687][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 11:46:05,173 [DEBUG][       Thread-253687][   transport.py][1871] : Compression: none
2025-06-13 11:46:05,173 [DEBUG][       Thread-253687][   transport.py][1871] : === End of kex handshake ===
2025-06-13 11:46:05,187 [DEBUG][       Thread-253687][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 11:46:05,188 [DEBUG][       Thread-253687][   transport.py][1871] : Switch to new keys ...
2025-06-13 11:46:05,188 [DEBUG][       Thread-253687][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 11:46:05,188 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 11:46:05,188 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 11:46:05,190 [DEBUG][       Thread-253687][   transport.py][1871] : userauth is OK
2025-06-13 11:46:05,203 [ INFO][       Thread-253687][   transport.py][1871] : Authentication (password) successful!
2025-06-13 11:46:05,204 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 11:46:05,818 [DEBUG][       Thread-253687][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 11:46:05,818 [DEBUG][       Thread-253687][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 11:46:05,861 [DEBUG][       Thread-253687][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 11:46:05,861 [DEBUG][       Thread-253687][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 11:46:05,863 [DEBUG][       Thread-253687][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 11:46:05,873 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 11:46:05,874 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 11:46:05,875 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 11:46:05,877 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 11:46:05,882 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 11:46:05,884 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 11:46:05,884 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 11:46:05,885 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 11:46:05,885 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.406883 -999.00  +11.30  25.03     46   +0.10 1 1 1 1 1   888    0 12.05 71.32 ----- 23.5 25.0 57.4 26.9 15.4 -28.0 14.0 -29.3 13.5 -28.2 14.9 -26.8
2025-06-13 11:46:05,885 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 11:46:05,885 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 11:46:05,885 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.406883
2025-06-13 11:46:05,886 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 11:46:05,886 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 11:46:05,886 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 11:46:05,886 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 11:46:05,886 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 11:46:05,886 [DEBUG][       Thread-253687][   transport.py][1871] : EOF in transport thread
2025-06-13 11:46:05,887 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T11:45:39', tmtdew=12.03, humidity=43.2, cloud=0.0, wind=19.04, temperature=10.97, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T09:45:54.691', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 11:46:05,970 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 11:46:05,980 [DEBUG][       Thread-253690][   transport.py][1871] : starting thread (client mode): 0x867b5a20
2025-06-13 11:46:05,980 [DEBUG][       Thread-253690][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 11:46:05,995 [DEBUG][       Thread-253690][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 11:46:05,995 [ INFO][       Thread-253690][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 11:46:06,006 [DEBUG][       Thread-253690][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 11:46:06,007 [DEBUG][       Thread-253690][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 11:46:06,007 [DEBUG][       Thread-253690][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 11:46:06,007 [DEBUG][       Thread-253690][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:46:06,007 [DEBUG][       Thread-253690][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:46:06,007 [DEBUG][       Thread-253690][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:46:06,007 [DEBUG][       Thread-253690][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:46:06,007 [DEBUG][       Thread-253690][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 11:46:06,007 [DEBUG][       Thread-253690][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 11:46:06,007 [DEBUG][       Thread-253690][   transport.py][1871] : client lang: <none>
2025-06-13 11:46:06,007 [DEBUG][       Thread-253690][   transport.py][1871] : server lang: <none>
2025-06-13 11:46:06,007 [DEBUG][       Thread-253690][   transport.py][1871] : kex follows: False
2025-06-13 11:46:06,007 [DEBUG][       Thread-253690][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 11:46:06,007 [DEBUG][       Thread-253690][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 11:46:06,007 [DEBUG][       Thread-253690][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 11:46:06,007 [DEBUG][       Thread-253690][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 11:46:06,007 [DEBUG][       Thread-253690][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 11:46:06,008 [DEBUG][       Thread-253690][   transport.py][1871] : Compression: none
2025-06-13 11:46:06,008 [DEBUG][       Thread-253690][   transport.py][1871] : === End of kex handshake ===
2025-06-13 11:46:06,080 [DEBUG][       Thread-253690][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 11:46:06,081 [DEBUG][       Thread-253690][   transport.py][1871] : Switch to new keys ...
2025-06-13 11:46:06,081 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 11:46:06,082 [DEBUG][       Thread-253690][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 11:46:06,083 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 11:46:06,140 [DEBUG][       Thread-253690][   transport.py][1871] : userauth is OK
2025-06-13 11:46:06,140 [DEBUG][       Thread-253690][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 11:46:06,141 [DEBUG][       Thread-253690][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 11:46:06,141 [DEBUG][       Thread-253690][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 11:46:06,141 [DEBUG][       Thread-253690][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 11:46:06,160 [ INFO][       Thread-253690][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 11:46:06,160 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 11:46:06,160 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 11:46:07,238 [DEBUG][       Thread-253690][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 11:46:07,239 [DEBUG][       Thread-253690][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 11:46:07,288 [DEBUG][       Thread-253690][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 11:46:07,288 [DEBUG][       Thread-253690][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 11:46:07,297 [DEBUG][       Thread-253690][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 11:46:07,306 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 11:46:07,306 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 11:46:07,307 [DEBUG][Thread-253692 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:46:07,316 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 11:46:07,325 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 11:46:07,325 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 11:46:07,325 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 11:46:07,333 [DEBUG][       Thread-253690][   transport.py][1871] : EOF in transport thread
2025-06-13 11:46:10,114 [DEBUG][Thread-253693 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:46:16,332 [DEBUG][Thread-253694 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:46:17,336 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 11:46:17,336 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 11:46:17,336 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 11:46:17,339 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 11:46:17,823 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 11, 46, 11), 12.12, 43.1, 0.0, 19.6, 11.04, 0, 0, 0, 2, 0, 0),)
2025-06-13 11:46:17,823 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 11:46:11
2025-06-13 11:46:17,904 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 11:46:17,908 [DEBUG][       Thread-253695][   transport.py][1871] : starting thread (client mode): 0x867b54e0
2025-06-13 11:46:17,908 [DEBUG][       Thread-253695][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 11:46:17,929 [DEBUG][       Thread-253695][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 11:46:17,929 [ INFO][       Thread-253695][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 11:46:17,932 [DEBUG][       Thread-253695][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 11:46:17,932 [DEBUG][       Thread-253695][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 11:46:17,932 [DEBUG][       Thread-253695][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 11:46:17,932 [DEBUG][       Thread-253695][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:46:17,932 [DEBUG][       Thread-253695][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:46:17,932 [DEBUG][       Thread-253695][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:46:17,932 [DEBUG][       Thread-253695][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:46:17,933 [DEBUG][       Thread-253695][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 11:46:17,933 [DEBUG][       Thread-253695][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 11:46:17,933 [DEBUG][       Thread-253695][   transport.py][1871] : client lang: <none>
2025-06-13 11:46:17,933 [DEBUG][       Thread-253695][   transport.py][1871] : server lang: <none>
2025-06-13 11:46:17,933 [DEBUG][       Thread-253695][   transport.py][1871] : kex follows: False
2025-06-13 11:46:17,933 [DEBUG][       Thread-253695][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 11:46:17,933 [DEBUG][       Thread-253695][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 11:46:17,933 [DEBUG][       Thread-253695][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 11:46:17,933 [DEBUG][       Thread-253695][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 11:46:17,933 [DEBUG][       Thread-253695][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 11:46:17,933 [DEBUG][       Thread-253695][   transport.py][1871] : Compression: none
2025-06-13 11:46:17,933 [DEBUG][       Thread-253695][   transport.py][1871] : === End of kex handshake ===
2025-06-13 11:46:17,944 [DEBUG][       Thread-253695][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 11:46:17,944 [DEBUG][       Thread-253695][   transport.py][1871] : Switch to new keys ...
2025-06-13 11:46:17,945 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 11:46:17,945 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 11:46:17,945 [DEBUG][       Thread-253695][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 11:46:17,946 [DEBUG][       Thread-253695][   transport.py][1871] : userauth is OK
2025-06-13 11:46:17,959 [ INFO][       Thread-253695][   transport.py][1871] : Authentication (password) successful!
2025-06-13 11:46:17,959 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 11:46:18,499 [DEBUG][       Thread-253695][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 11:46:18,500 [DEBUG][       Thread-253695][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 11:46:18,541 [DEBUG][       Thread-253695][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 11:46:18,541 [DEBUG][       Thread-253695][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 11:46:18,544 [DEBUG][       Thread-253695][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 11:46:18,557 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 11:46:18,557 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 11:46:18,559 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 11:46:18,561 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 11:46:18,566 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 11:46:18,567 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 11:46:18,567 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 11:46:18,568 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 11:46:18,568 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.406883 -999.00  +11.30  25.03     46   +0.10 1 1 1 1 1   888    0 12.05 71.32 ----- 23.5 25.0 57.4 26.9 15.4 -28.0 14.0 -29.3 13.5 -28.2 14.9 -26.8
2025-06-13 11:46:18,568 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 11:46:18,568 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 11:46:18,569 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.406883
2025-06-13 11:46:18,569 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 11:46:18,569 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 11:46:18,570 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 11:46:18,570 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 11:46:18,570 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 11:46:18,570 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T11:46:11', tmtdew=12.12, humidity=43.1, cloud=0.0, wind=19.6, temperature=11.04, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T09:45:54.691', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 11:46:18,571 [DEBUG][       Thread-253695][   transport.py][1871] : EOF in transport thread
2025-06-13 11:46:18,653 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 11:46:18,669 [DEBUG][       Thread-253698][   transport.py][1871] : starting thread (client mode): 0x84207280
2025-06-13 11:46:18,669 [DEBUG][       Thread-253698][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 11:46:18,692 [DEBUG][       Thread-253698][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 11:46:18,692 [ INFO][       Thread-253698][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 11:46:18,705 [DEBUG][       Thread-253698][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 11:46:18,706 [DEBUG][       Thread-253698][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 11:46:18,706 [DEBUG][       Thread-253698][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 11:46:18,706 [DEBUG][       Thread-253698][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:46:18,706 [DEBUG][       Thread-253698][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:46:18,706 [DEBUG][       Thread-253698][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:46:18,706 [DEBUG][       Thread-253698][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:46:18,706 [DEBUG][       Thread-253698][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 11:46:18,706 [DEBUG][       Thread-253698][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 11:46:18,706 [DEBUG][       Thread-253698][   transport.py][1871] : client lang: <none>
2025-06-13 11:46:18,706 [DEBUG][       Thread-253698][   transport.py][1871] : server lang: <none>
2025-06-13 11:46:18,706 [DEBUG][       Thread-253698][   transport.py][1871] : kex follows: False
2025-06-13 11:46:18,706 [DEBUG][       Thread-253698][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 11:46:18,706 [DEBUG][       Thread-253698][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 11:46:18,706 [DEBUG][       Thread-253698][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 11:46:18,707 [DEBUG][       Thread-253698][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 11:46:18,707 [DEBUG][       Thread-253698][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 11:46:18,707 [DEBUG][       Thread-253698][   transport.py][1871] : Compression: none
2025-06-13 11:46:18,707 [DEBUG][       Thread-253698][   transport.py][1871] : === End of kex handshake ===
2025-06-13 11:46:18,760 [DEBUG][       Thread-253698][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 11:46:18,760 [DEBUG][       Thread-253698][   transport.py][1871] : Switch to new keys ...
2025-06-13 11:46:18,761 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 11:46:18,761 [DEBUG][       Thread-253698][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 11:46:18,762 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 11:46:18,816 [DEBUG][       Thread-253698][   transport.py][1871] : userauth is OK
2025-06-13 11:46:18,816 [DEBUG][       Thread-253698][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 11:46:18,816 [DEBUG][       Thread-253698][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 11:46:18,816 [DEBUG][       Thread-253698][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 11:46:18,817 [DEBUG][       Thread-253698][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 11:46:18,837 [ INFO][       Thread-253698][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 11:46:18,837 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 11:46:18,837 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 11:46:19,857 [DEBUG][       Thread-253698][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 11:46:19,857 [DEBUG][       Thread-253698][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 11:46:19,911 [DEBUG][       Thread-253698][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 11:46:19,911 [DEBUG][       Thread-253698][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 11:46:19,920 [DEBUG][       Thread-253698][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 11:46:19,932 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 11:46:19,932 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 11:46:19,944 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 11:46:19,956 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 11:46:19,956 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 11:46:19,956 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 11:46:19,964 [DEBUG][       Thread-253698][   transport.py][1871] : EOF in transport thread
2025-06-13 11:46:25,353 [DEBUG][Thread-253700 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:46:29,964 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 11:46:29,964 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 11:46:29,964 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 11:46:29,965 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 11:46:30,431 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 11, 46, 11), 12.12, 43.1, 0.0, 19.6, 11.04, 0, 0, 0, 2, 0, 0),)
2025-06-13 11:46:30,431 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 11:46:11
2025-06-13 11:46:30,511 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 11:46:30,515 [DEBUG][       Thread-253701][   transport.py][1871] : starting thread (client mode): 0x84204fd0
2025-06-13 11:46:30,515 [DEBUG][       Thread-253701][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 11:46:30,535 [DEBUG][       Thread-253701][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 11:46:30,535 [ INFO][       Thread-253701][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 11:46:30,538 [DEBUG][       Thread-253701][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 11:46:30,539 [DEBUG][       Thread-253701][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 11:46:30,539 [DEBUG][       Thread-253701][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 11:46:30,539 [DEBUG][       Thread-253701][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:46:30,539 [DEBUG][       Thread-253701][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:46:30,539 [DEBUG][       Thread-253701][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:46:30,539 [DEBUG][       Thread-253701][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:46:30,539 [DEBUG][       Thread-253701][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 11:46:30,539 [DEBUG][       Thread-253701][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 11:46:30,539 [DEBUG][       Thread-253701][   transport.py][1871] : client lang: <none>
2025-06-13 11:46:30,539 [DEBUG][       Thread-253701][   transport.py][1871] : server lang: <none>
2025-06-13 11:46:30,539 [DEBUG][       Thread-253701][   transport.py][1871] : kex follows: False
2025-06-13 11:46:30,539 [DEBUG][       Thread-253701][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 11:46:30,539 [DEBUG][       Thread-253701][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 11:46:30,539 [DEBUG][       Thread-253701][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 11:46:30,539 [DEBUG][       Thread-253701][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 11:46:30,539 [DEBUG][       Thread-253701][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 11:46:30,539 [DEBUG][       Thread-253701][   transport.py][1871] : Compression: none
2025-06-13 11:46:30,539 [DEBUG][       Thread-253701][   transport.py][1871] : === End of kex handshake ===
2025-06-13 11:46:30,557 [DEBUG][       Thread-253701][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 11:46:30,557 [DEBUG][       Thread-253701][   transport.py][1871] : Switch to new keys ...
2025-06-13 11:46:30,558 [DEBUG][       Thread-253701][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 11:46:30,558 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 11:46:30,558 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 11:46:30,559 [DEBUG][       Thread-253701][   transport.py][1871] : userauth is OK
2025-06-13 11:46:30,572 [ INFO][       Thread-253701][   transport.py][1871] : Authentication (password) successful!
2025-06-13 11:46:30,573 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 11:46:31,220 [DEBUG][       Thread-253701][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 11:46:31,220 [DEBUG][       Thread-253701][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 11:46:31,261 [DEBUG][       Thread-253701][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 11:46:31,261 [DEBUG][       Thread-253701][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 11:46:31,265 [DEBUG][       Thread-253701][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 11:46:31,279 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 11:46:31,280 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 11:46:31,282 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 11:46:31,284 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 11:46:31,290 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 11:46:31,292 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 11:46:31,292 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 11:46:31,293 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 11:46:31,293 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.406883 -999.00  +11.30  25.03     46   +0.10 1 1 1 1 1   888    0 12.05 71.32 ----- 23.5 25.0 57.4 26.9 15.4 -28.0 14.0 -29.3 13.5 -28.2 14.9 -26.8
2025-06-13 11:46:31,293 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 11:46:31,293 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 11:46:31,293 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.406883
2025-06-13 11:46:31,294 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 11:46:31,294 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 11:46:31,294 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 11:46:31,295 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 11:46:31,295 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 11:46:31,295 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T11:46:11', tmtdew=12.12, humidity=43.1, cloud=0.0, wind=19.6, temperature=11.04, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T09:45:54.691', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 11:46:31,295 [DEBUG][       Thread-253701][   transport.py][1871] : EOF in transport thread
2025-06-13 11:46:31,368 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 11:46:31,378 [DEBUG][       Thread-253704][   transport.py][1871] : starting thread (client mode): 0x863ef010
2025-06-13 11:46:31,378 [DEBUG][       Thread-253704][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 11:46:31,393 [DEBUG][       Thread-253704][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 11:46:31,393 [ INFO][       Thread-253704][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 11:46:31,401 [DEBUG][       Thread-253704][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 11:46:31,401 [DEBUG][       Thread-253704][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 11:46:31,401 [DEBUG][       Thread-253704][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 11:46:31,401 [DEBUG][       Thread-253704][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:46:31,401 [DEBUG][       Thread-253704][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:46:31,401 [DEBUG][       Thread-253704][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:46:31,401 [DEBUG][       Thread-253704][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:46:31,401 [DEBUG][       Thread-253704][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 11:46:31,401 [DEBUG][       Thread-253704][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 11:46:31,401 [DEBUG][       Thread-253704][   transport.py][1871] : client lang: <none>
2025-06-13 11:46:31,401 [DEBUG][       Thread-253704][   transport.py][1871] : server lang: <none>
2025-06-13 11:46:31,401 [DEBUG][       Thread-253704][   transport.py][1871] : kex follows: False
2025-06-13 11:46:31,402 [DEBUG][       Thread-253704][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 11:46:31,402 [DEBUG][       Thread-253704][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 11:46:31,402 [DEBUG][       Thread-253704][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 11:46:31,402 [DEBUG][       Thread-253704][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 11:46:31,402 [DEBUG][       Thread-253704][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 11:46:31,402 [DEBUG][       Thread-253704][   transport.py][1871] : Compression: none
2025-06-13 11:46:31,402 [DEBUG][       Thread-253704][   transport.py][1871] : === End of kex handshake ===
2025-06-13 11:46:31,466 [DEBUG][       Thread-253704][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 11:46:31,466 [DEBUG][       Thread-253704][   transport.py][1871] : Switch to new keys ...
2025-06-13 11:46:31,467 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 11:46:31,468 [DEBUG][       Thread-253704][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 11:46:31,468 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 11:46:31,524 [DEBUG][       Thread-253704][   transport.py][1871] : userauth is OK
2025-06-13 11:46:31,524 [DEBUG][       Thread-253704][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 11:46:31,524 [DEBUG][       Thread-253704][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 11:46:31,524 [DEBUG][       Thread-253704][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 11:46:31,524 [DEBUG][       Thread-253704][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 11:46:31,543 [ INFO][       Thread-253704][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 11:46:31,544 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 11:46:31,544 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 11:46:32,555 [DEBUG][       Thread-253704][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 11:46:32,555 [DEBUG][       Thread-253704][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 11:46:32,604 [DEBUG][       Thread-253704][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 11:46:32,604 [DEBUG][       Thread-253704][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 11:46:32,613 [DEBUG][       Thread-253704][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 11:46:32,623 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 11:46:32,623 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 11:46:32,632 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 11:46:32,645 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 11:46:32,645 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 11:46:32,645 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 11:46:32,654 [DEBUG][       Thread-253704][   transport.py][1871] : EOF in transport thread
2025-06-13 11:46:34,386 [DEBUG][Thread-253706 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:46:37,670 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:46:37,671 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:46:40,861 [DEBUG][Thread-253707 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:46:41,943 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:46:41,953 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:46:42,656 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 11:46:42,656 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 11:46:42,656 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 11:46:42,659 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 11:46:43,123 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 11, 46, 11), 12.12, 43.1, 0.0, 19.6, 11.04, 0, 0, 0, 2, 0, 0),)
2025-06-13 11:46:43,123 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 11:46:11
2025-06-13 11:46:43,203 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 11:46:43,207 [DEBUG][       Thread-253708][   transport.py][1871] : starting thread (client mode): 0x84207f10
2025-06-13 11:46:43,207 [DEBUG][       Thread-253708][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 11:46:43,227 [DEBUG][       Thread-253708][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 11:46:43,227 [ INFO][       Thread-253708][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 11:46:43,231 [DEBUG][       Thread-253708][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 11:46:43,231 [DEBUG][       Thread-253708][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 11:46:43,231 [DEBUG][       Thread-253708][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 11:46:43,231 [DEBUG][       Thread-253708][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:46:43,231 [DEBUG][       Thread-253708][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:46:43,231 [DEBUG][       Thread-253708][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:46:43,231 [DEBUG][       Thread-253708][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:46:43,231 [DEBUG][       Thread-253708][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 11:46:43,231 [DEBUG][       Thread-253708][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 11:46:43,231 [DEBUG][       Thread-253708][   transport.py][1871] : client lang: <none>
2025-06-13 11:46:43,231 [DEBUG][       Thread-253708][   transport.py][1871] : server lang: <none>
2025-06-13 11:46:43,231 [DEBUG][       Thread-253708][   transport.py][1871] : kex follows: False
2025-06-13 11:46:43,231 [DEBUG][       Thread-253708][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 11:46:43,231 [DEBUG][       Thread-253708][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 11:46:43,231 [DEBUG][       Thread-253708][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 11:46:43,231 [DEBUG][       Thread-253708][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 11:46:43,231 [DEBUG][       Thread-253708][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 11:46:43,231 [DEBUG][       Thread-253708][   transport.py][1871] : Compression: none
2025-06-13 11:46:43,231 [DEBUG][       Thread-253708][   transport.py][1871] : === End of kex handshake ===
2025-06-13 11:46:43,248 [DEBUG][       Thread-253708][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 11:46:43,249 [DEBUG][       Thread-253708][   transport.py][1871] : Switch to new keys ...
2025-06-13 11:46:43,249 [DEBUG][       Thread-253708][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 11:46:43,249 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 11:46:43,250 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 11:46:43,251 [DEBUG][       Thread-253708][   transport.py][1871] : userauth is OK
2025-06-13 11:46:43,276 [ INFO][       Thread-253708][   transport.py][1871] : Authentication (password) successful!
2025-06-13 11:46:43,276 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 11:46:43,411 [DEBUG][Thread-253710 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:46:43,955 [DEBUG][       Thread-253708][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 11:46:43,955 [DEBUG][       Thread-253708][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 11:46:43,997 [DEBUG][       Thread-253708][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 11:46:43,997 [DEBUG][       Thread-253708][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 11:46:43,999 [DEBUG][       Thread-253708][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 11:46:44,012 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 11:46:44,012 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 11:46:44,014 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 11:46:44,016 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 11:46:44,020 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 11:46:44,021 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 11:46:44,022 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 11:46:44,022 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 11:46:44,023 [DEBUG][       Thread-253708][   transport.py][1871] : EOF in transport thread
2025-06-13 11:46:44,023 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.407230 -999.00  +11.10  20.89     47   +0.20 1 1 1 1 1   888    0 12.12 70.07 ----- 22.4 20.9 50.2 28.5 15.4 -28.5 14.1 -30.3 13.4 -28.2 14.9 -26.6
2025-06-13 11:46:44,023 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 11:46:44,023 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 11:46:44,024 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.407230
2025-06-13 11:46:44,024 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 11:46:44,025 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 11:46:44,025 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 11:46:44,025 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 11:46:44,025 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 11:46:44,025 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T11:46:11', tmtdew=12.12, humidity=43.1, cloud=0.0, wind=19.6, temperature=11.04, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T09:46:24.672', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 11:46:44,118 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 11:46:44,129 [DEBUG][       Thread-253712][   transport.py][1871] : starting thread (client mode): 0x863c8880
2025-06-13 11:46:44,129 [DEBUG][       Thread-253712][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 11:46:44,145 [DEBUG][       Thread-253712][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 11:46:44,145 [ INFO][       Thread-253712][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 11:46:44,156 [DEBUG][       Thread-253712][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 11:46:44,156 [DEBUG][       Thread-253712][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 11:46:44,156 [DEBUG][       Thread-253712][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 11:46:44,156 [DEBUG][       Thread-253712][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:46:44,156 [DEBUG][       Thread-253712][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:46:44,157 [DEBUG][       Thread-253712][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:46:44,157 [DEBUG][       Thread-253712][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:46:44,157 [DEBUG][       Thread-253712][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 11:46:44,157 [DEBUG][       Thread-253712][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 11:46:44,157 [DEBUG][       Thread-253712][   transport.py][1871] : client lang: <none>
2025-06-13 11:46:44,157 [DEBUG][       Thread-253712][   transport.py][1871] : server lang: <none>
2025-06-13 11:46:44,157 [DEBUG][       Thread-253712][   transport.py][1871] : kex follows: False
2025-06-13 11:46:44,157 [DEBUG][       Thread-253712][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 11:46:44,157 [DEBUG][       Thread-253712][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 11:46:44,157 [DEBUG][       Thread-253712][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 11:46:44,157 [DEBUG][       Thread-253712][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 11:46:44,157 [DEBUG][       Thread-253712][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 11:46:44,157 [DEBUG][       Thread-253712][   transport.py][1871] : Compression: none
2025-06-13 11:46:44,157 [DEBUG][       Thread-253712][   transport.py][1871] : === End of kex handshake ===
2025-06-13 11:46:44,211 [DEBUG][       Thread-253712][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 11:46:44,212 [DEBUG][       Thread-253712][   transport.py][1871] : Switch to new keys ...
2025-06-13 11:46:44,212 [DEBUG][       Thread-253712][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 11:46:44,213 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 11:46:44,213 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 11:46:44,281 [DEBUG][       Thread-253712][   transport.py][1871] : userauth is OK
2025-06-13 11:46:44,281 [DEBUG][       Thread-253712][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 11:46:44,281 [DEBUG][       Thread-253712][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 11:46:44,281 [DEBUG][       Thread-253712][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 11:46:44,281 [DEBUG][       Thread-253712][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 11:46:44,310 [ INFO][       Thread-253712][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 11:46:44,310 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 11:46:44,311 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 11:46:45,316 [DEBUG][       Thread-253712][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 11:46:45,316 [DEBUG][       Thread-253712][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 11:46:45,368 [DEBUG][       Thread-253712][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 11:46:45,368 [DEBUG][       Thread-253712][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 11:46:45,377 [DEBUG][       Thread-253712][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 11:46:45,389 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 11:46:45,389 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 11:46:45,398 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 11:46:45,405 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 11:46:45,406 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 11:46:45,406 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 11:46:45,413 [DEBUG][       Thread-253712][   transport.py][1871] : EOF in transport thread
2025-06-13 11:46:52,432 [DEBUG][Thread-253714 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:46:55,416 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 11:46:55,416 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 11:46:55,416 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 11:46:55,419 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 11:46:55,884 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 11, 46, 43), 12.22, 42.78, 0.0, 15.23, 11.03, 0, 0, 0, 2, 0, 0),)
2025-06-13 11:46:55,884 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 11:46:43
2025-06-13 11:46:55,965 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 11:46:55,969 [DEBUG][       Thread-253715][   transport.py][1871] : starting thread (client mode): 0x867fd300
2025-06-13 11:46:55,969 [DEBUG][       Thread-253715][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 11:46:55,989 [DEBUG][       Thread-253715][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 11:46:55,989 [ INFO][       Thread-253715][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 11:46:55,993 [DEBUG][       Thread-253715][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 11:46:55,993 [DEBUG][       Thread-253715][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 11:46:55,993 [DEBUG][       Thread-253715][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 11:46:55,993 [DEBUG][       Thread-253715][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:46:55,993 [DEBUG][       Thread-253715][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:46:55,993 [DEBUG][       Thread-253715][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:46:55,993 [DEBUG][       Thread-253715][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:46:55,993 [DEBUG][       Thread-253715][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 11:46:55,993 [DEBUG][       Thread-253715][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 11:46:55,993 [DEBUG][       Thread-253715][   transport.py][1871] : client lang: <none>
2025-06-13 11:46:55,994 [DEBUG][       Thread-253715][   transport.py][1871] : server lang: <none>
2025-06-13 11:46:55,994 [DEBUG][       Thread-253715][   transport.py][1871] : kex follows: False
2025-06-13 11:46:55,994 [DEBUG][       Thread-253715][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 11:46:55,994 [DEBUG][       Thread-253715][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 11:46:55,994 [DEBUG][       Thread-253715][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 11:46:55,994 [DEBUG][       Thread-253715][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 11:46:55,994 [DEBUG][       Thread-253715][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 11:46:55,994 [DEBUG][       Thread-253715][   transport.py][1871] : Compression: none
2025-06-13 11:46:55,994 [DEBUG][       Thread-253715][   transport.py][1871] : === End of kex handshake ===
2025-06-13 11:46:56,011 [DEBUG][       Thread-253715][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 11:46:56,011 [DEBUG][       Thread-253715][   transport.py][1871] : Switch to new keys ...
2025-06-13 11:46:56,012 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 11:46:56,012 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 11:46:56,012 [DEBUG][       Thread-253715][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 11:46:56,013 [DEBUG][       Thread-253715][   transport.py][1871] : userauth is OK
2025-06-13 11:46:56,037 [ INFO][       Thread-253715][   transport.py][1871] : Authentication (password) successful!
2025-06-13 11:46:56,037 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 11:46:56,835 [DEBUG][       Thread-253715][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 11:46:56,835 [DEBUG][       Thread-253715][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 11:46:56,876 [DEBUG][       Thread-253715][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 11:46:56,876 [DEBUG][       Thread-253715][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 11:46:56,879 [DEBUG][       Thread-253715][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 11:46:56,891 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 11:46:56,891 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 11:46:56,892 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 11:46:56,893 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 11:46:56,896 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 11:46:56,897 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 11:46:56,897 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 11:46:56,897 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 11:46:56,897 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.407230 -999.00  +11.10  20.89     47   +0.20 1 1 1 1 1   888    0 12.12 70.07 ----- 22.4 20.9 50.2 28.5 15.4 -28.5 14.1 -30.3 13.4 -28.2 14.9 -26.6
2025-06-13 11:46:56,897 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 11:46:56,897 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 11:46:56,897 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.407230
2025-06-13 11:46:56,897 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 11:46:56,897 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 11:46:56,897 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 11:46:56,897 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 11:46:56,897 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 11:46:56,897 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T11:46:43', tmtdew=12.22, humidity=42.78, cloud=0.0, wind=15.23, temperature=11.03, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T09:46:24.672', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 11:46:56,897 [DEBUG][       Thread-253715][   transport.py][1871] : EOF in transport thread
2025-06-13 11:46:56,968 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 11:46:56,978 [DEBUG][       Thread-253718][   transport.py][1871] : starting thread (client mode): 0x863bd0f0
2025-06-13 11:46:56,978 [DEBUG][       Thread-253718][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 11:46:56,999 [DEBUG][       Thread-253718][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 11:46:57,000 [ INFO][       Thread-253718][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 11:46:57,007 [DEBUG][       Thread-253718][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 11:46:57,007 [DEBUG][       Thread-253718][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 11:46:57,007 [DEBUG][       Thread-253718][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 11:46:57,007 [DEBUG][       Thread-253718][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:46:57,008 [DEBUG][       Thread-253718][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:46:57,008 [DEBUG][       Thread-253718][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:46:57,008 [DEBUG][       Thread-253718][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:46:57,008 [DEBUG][       Thread-253718][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 11:46:57,008 [DEBUG][       Thread-253718][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 11:46:57,008 [DEBUG][       Thread-253718][   transport.py][1871] : client lang: <none>
2025-06-13 11:46:57,008 [DEBUG][       Thread-253718][   transport.py][1871] : server lang: <none>
2025-06-13 11:46:57,008 [DEBUG][       Thread-253718][   transport.py][1871] : kex follows: False
2025-06-13 11:46:57,008 [DEBUG][       Thread-253718][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 11:46:57,008 [DEBUG][       Thread-253718][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 11:46:57,008 [DEBUG][       Thread-253718][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 11:46:57,008 [DEBUG][       Thread-253718][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 11:46:57,008 [DEBUG][       Thread-253718][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 11:46:57,008 [DEBUG][       Thread-253718][   transport.py][1871] : Compression: none
2025-06-13 11:46:57,008 [DEBUG][       Thread-253718][   transport.py][1871] : === End of kex handshake ===
2025-06-13 11:46:57,068 [DEBUG][       Thread-253718][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 11:46:57,069 [DEBUG][       Thread-253718][   transport.py][1871] : Switch to new keys ...
2025-06-13 11:46:57,069 [DEBUG][       Thread-253718][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 11:46:57,069 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 11:46:57,070 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 11:46:57,128 [DEBUG][       Thread-253718][   transport.py][1871] : userauth is OK
2025-06-13 11:46:57,128 [DEBUG][       Thread-253718][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 11:46:57,128 [DEBUG][       Thread-253718][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 11:46:57,128 [DEBUG][       Thread-253718][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 11:46:57,129 [DEBUG][       Thread-253718][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 11:46:57,147 [ INFO][       Thread-253718][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 11:46:57,147 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 11:46:57,148 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 11:46:58,166 [DEBUG][       Thread-253718][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 11:46:58,166 [DEBUG][       Thread-253718][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 11:46:58,224 [DEBUG][       Thread-253718][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 11:46:58,225 [DEBUG][       Thread-253718][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 11:46:58,234 [DEBUG][       Thread-253718][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 11:46:58,243 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 11:46:58,243 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 11:46:58,253 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 11:46:58,262 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 11:46:58,262 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 11:46:58,263 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 11:46:58,271 [DEBUG][       Thread-253718][   transport.py][1871] : EOF in transport thread
2025-06-13 11:47:01,454 [DEBUG][Thread-253720 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:47:08,272 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 11:47:08,272 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 11:47:08,272 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 11:47:08,273 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 11:47:08,741 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 11, 46, 43), 12.22, 42.78, 0.0, 15.23, 11.03, 0, 0, 0, 2, 0, 0),)
2025-06-13 11:47:08,741 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 11:46:43
2025-06-13 11:47:08,822 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 11:47:08,826 [DEBUG][       Thread-253721][   transport.py][1871] : starting thread (client mode): 0x84207730
2025-06-13 11:47:08,826 [DEBUG][       Thread-253721][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 11:47:08,847 [DEBUG][       Thread-253721][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 11:47:08,847 [ INFO][       Thread-253721][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 11:47:08,851 [DEBUG][       Thread-253721][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 11:47:08,851 [DEBUG][       Thread-253721][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 11:47:08,851 [DEBUG][       Thread-253721][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 11:47:08,851 [DEBUG][       Thread-253721][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:47:08,851 [DEBUG][       Thread-253721][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:47:08,851 [DEBUG][       Thread-253721][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:47:08,851 [DEBUG][       Thread-253721][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:47:08,851 [DEBUG][       Thread-253721][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 11:47:08,851 [DEBUG][       Thread-253721][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 11:47:08,851 [DEBUG][       Thread-253721][   transport.py][1871] : client lang: <none>
2025-06-13 11:47:08,851 [DEBUG][       Thread-253721][   transport.py][1871] : server lang: <none>
2025-06-13 11:47:08,851 [DEBUG][       Thread-253721][   transport.py][1871] : kex follows: False
2025-06-13 11:47:08,851 [DEBUG][       Thread-253721][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 11:47:08,851 [DEBUG][       Thread-253721][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 11:47:08,851 [DEBUG][       Thread-253721][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 11:47:08,851 [DEBUG][       Thread-253721][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 11:47:08,851 [DEBUG][       Thread-253721][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 11:47:08,852 [DEBUG][       Thread-253721][   transport.py][1871] : Compression: none
2025-06-13 11:47:08,852 [DEBUG][       Thread-253721][   transport.py][1871] : === End of kex handshake ===
2025-06-13 11:47:08,868 [DEBUG][       Thread-253721][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 11:47:08,869 [DEBUG][       Thread-253721][   transport.py][1871] : Switch to new keys ...
2025-06-13 11:47:08,869 [DEBUG][       Thread-253721][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 11:47:08,869 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 11:47:08,869 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 11:47:08,870 [DEBUG][       Thread-253721][   transport.py][1871] : userauth is OK
2025-06-13 11:47:08,883 [ INFO][       Thread-253721][   transport.py][1871] : Authentication (password) successful!
2025-06-13 11:47:08,884 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 11:47:09,691 [DEBUG][       Thread-253721][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 11:47:09,691 [DEBUG][       Thread-253721][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 11:47:09,733 [DEBUG][       Thread-253721][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 11:47:09,733 [DEBUG][       Thread-253721][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 11:47:09,736 [DEBUG][       Thread-253721][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 11:47:09,748 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 11:47:09,748 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 11:47:09,750 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 11:47:09,752 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 11:47:09,757 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 11:47:09,759 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 11:47:09,759 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 11:47:09,759 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 11:47:09,760 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.407230 -999.00  +11.10  20.89     47   +0.20 1 1 1 1 1   888    0 12.12 70.07 ----- 22.4 20.9 50.2 28.5 15.4 -28.5 14.1 -30.3 13.4 -28.2 14.9 -26.6
2025-06-13 11:47:09,760 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 11:47:09,760 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 11:47:09,760 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.407230
2025-06-13 11:47:09,760 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 11:47:09,761 [DEBUG][       Thread-253721][   transport.py][1871] : EOF in transport thread
2025-06-13 11:47:09,761 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 11:47:09,762 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 11:47:09,762 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 11:47:09,762 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 11:47:09,762 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T11:46:43', tmtdew=12.22, humidity=42.78, cloud=0.0, wind=15.23, temperature=11.03, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T09:46:24.672', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 11:47:09,844 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 11:47:09,862 [DEBUG][       Thread-253724][   transport.py][1871] : starting thread (client mode): 0x863eec20
2025-06-13 11:47:09,862 [DEBUG][       Thread-253724][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 11:47:09,877 [DEBUG][       Thread-253724][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 11:47:09,877 [ INFO][       Thread-253724][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 11:47:09,884 [DEBUG][       Thread-253724][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 11:47:09,884 [DEBUG][       Thread-253724][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 11:47:09,884 [DEBUG][       Thread-253724][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 11:47:09,884 [DEBUG][       Thread-253724][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:47:09,884 [DEBUG][       Thread-253724][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:47:09,885 [DEBUG][       Thread-253724][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:47:09,885 [DEBUG][       Thread-253724][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:47:09,885 [DEBUG][       Thread-253724][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 11:47:09,885 [DEBUG][       Thread-253724][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 11:47:09,885 [DEBUG][       Thread-253724][   transport.py][1871] : client lang: <none>
2025-06-13 11:47:09,885 [DEBUG][       Thread-253724][   transport.py][1871] : server lang: <none>
2025-06-13 11:47:09,885 [DEBUG][       Thread-253724][   transport.py][1871] : kex follows: False
2025-06-13 11:47:09,885 [DEBUG][       Thread-253724][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 11:47:09,885 [DEBUG][       Thread-253724][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 11:47:09,885 [DEBUG][       Thread-253724][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 11:47:09,885 [DEBUG][       Thread-253724][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 11:47:09,885 [DEBUG][       Thread-253724][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 11:47:09,885 [DEBUG][       Thread-253724][   transport.py][1871] : Compression: none
2025-06-13 11:47:09,885 [DEBUG][       Thread-253724][   transport.py][1871] : === End of kex handshake ===
2025-06-13 11:47:09,943 [DEBUG][       Thread-253724][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 11:47:09,943 [DEBUG][       Thread-253724][   transport.py][1871] : Switch to new keys ...
2025-06-13 11:47:09,944 [DEBUG][       Thread-253724][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 11:47:09,944 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 11:47:09,945 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 11:47:09,999 [DEBUG][       Thread-253724][   transport.py][1871] : userauth is OK
2025-06-13 11:47:10,000 [DEBUG][       Thread-253724][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 11:47:10,000 [DEBUG][       Thread-253724][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 11:47:10,000 [DEBUG][       Thread-253724][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 11:47:10,000 [DEBUG][       Thread-253724][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 11:47:10,019 [ INFO][       Thread-253724][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 11:47:10,019 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 11:47:10,020 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 11:47:10,163 [DEBUG][Thread-253726 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:47:10,488 [DEBUG][Thread-253727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:47:11,066 [DEBUG][       Thread-253724][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 11:47:11,066 [DEBUG][       Thread-253724][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 11:47:11,116 [DEBUG][       Thread-253724][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 11:47:11,116 [DEBUG][       Thread-253724][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 11:47:11,125 [DEBUG][       Thread-253724][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 11:47:11,133 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 11:47:11,134 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 11:47:11,142 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 11:47:11,151 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 11:47:11,151 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 11:47:11,152 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 11:47:11,159 [DEBUG][       Thread-253724][   transport.py][1871] : EOF in transport thread
2025-06-13 11:47:19,511 [DEBUG][Thread-253728 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:47:21,162 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 11:47:21,163 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 11:47:21,163 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 11:47:21,165 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 11:47:21,636 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 11, 47, 15), 12.28, 42.52, 0.0, 19.8, 11.09, 0, 0, 0, 2, 0, 0),)
2025-06-13 11:47:21,636 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 11:47:15
2025-06-13 11:47:21,717 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 11:47:21,721 [DEBUG][       Thread-253729][   transport.py][1871] : starting thread (client mode): 0x84205cf0
2025-06-13 11:47:21,721 [DEBUG][       Thread-253729][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 11:47:21,741 [DEBUG][       Thread-253729][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 11:47:21,741 [ INFO][       Thread-253729][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 11:47:21,743 [DEBUG][       Thread-253729][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 11:47:21,743 [DEBUG][       Thread-253729][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 11:47:21,743 [DEBUG][       Thread-253729][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 11:47:21,743 [DEBUG][       Thread-253729][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:47:21,743 [DEBUG][       Thread-253729][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:47:21,743 [DEBUG][       Thread-253729][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:47:21,743 [DEBUG][       Thread-253729][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:47:21,743 [DEBUG][       Thread-253729][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 11:47:21,743 [DEBUG][       Thread-253729][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 11:47:21,743 [DEBUG][       Thread-253729][   transport.py][1871] : client lang: <none>
2025-06-13 11:47:21,743 [DEBUG][       Thread-253729][   transport.py][1871] : server lang: <none>
2025-06-13 11:47:21,743 [DEBUG][       Thread-253729][   transport.py][1871] : kex follows: False
2025-06-13 11:47:21,743 [DEBUG][       Thread-253729][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 11:47:21,743 [DEBUG][       Thread-253729][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 11:47:21,743 [DEBUG][       Thread-253729][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 11:47:21,743 [DEBUG][       Thread-253729][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 11:47:21,743 [DEBUG][       Thread-253729][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 11:47:21,743 [DEBUG][       Thread-253729][   transport.py][1871] : Compression: none
2025-06-13 11:47:21,743 [DEBUG][       Thread-253729][   transport.py][1871] : === End of kex handshake ===
2025-06-13 11:47:21,758 [DEBUG][       Thread-253729][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 11:47:21,758 [DEBUG][       Thread-253729][   transport.py][1871] : Switch to new keys ...
2025-06-13 11:47:21,758 [DEBUG][       Thread-253729][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 11:47:21,758 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 11:47:21,759 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 11:47:21,759 [DEBUG][       Thread-253729][   transport.py][1871] : userauth is OK
2025-06-13 11:47:21,783 [ INFO][       Thread-253729][   transport.py][1871] : Authentication (password) successful!
2025-06-13 11:47:21,783 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 11:47:22,439 [DEBUG][       Thread-253729][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 11:47:22,439 [DEBUG][       Thread-253729][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 11:47:22,481 [DEBUG][       Thread-253729][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 11:47:22,481 [DEBUG][       Thread-253729][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 11:47:22,484 [DEBUG][       Thread-253729][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 11:47:22,496 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 11:47:22,497 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 11:47:22,499 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 11:47:22,501 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 11:47:22,506 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 11:47:22,509 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 11:47:22,509 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 11:47:22,509 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 11:47:22,510 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.407577 -999.00  +11.00  22.74     46   +0.10 1 1 1 1 1   888    0 12.37 72.40 ----- 20.6 22.7 54.2 30.2 15.4 -28.0 14.0 -29.9 13.5 -28.6 14.8 -26.5
2025-06-13 11:47:22,510 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 11:47:22,510 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 11:47:22,510 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.407577
2025-06-13 11:47:22,510 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 11:47:22,511 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 11:47:22,511 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 11:47:22,511 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 11:47:22,511 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 11:47:22,511 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T11:47:15', tmtdew=12.28, humidity=42.52, cloud=0.0, wind=19.8, temperature=11.09, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T09:46:54.653', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 11:47:22,512 [DEBUG][       Thread-253729][   transport.py][1871] : EOF in transport thread
2025-06-13 11:47:22,596 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 11:47:22,605 [DEBUG][       Thread-253732][   transport.py][1871] : starting thread (client mode): 0x863c9750
2025-06-13 11:47:22,605 [DEBUG][       Thread-253732][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 11:47:22,620 [DEBUG][       Thread-253732][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 11:47:22,620 [ INFO][       Thread-253732][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 11:47:22,628 [DEBUG][       Thread-253732][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 11:47:22,628 [DEBUG][       Thread-253732][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 11:47:22,628 [DEBUG][       Thread-253732][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 11:47:22,628 [DEBUG][       Thread-253732][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:47:22,628 [DEBUG][       Thread-253732][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:47:22,628 [DEBUG][       Thread-253732][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:47:22,628 [DEBUG][       Thread-253732][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:47:22,628 [DEBUG][       Thread-253732][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 11:47:22,628 [DEBUG][       Thread-253732][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 11:47:22,629 [DEBUG][       Thread-253732][   transport.py][1871] : client lang: <none>
2025-06-13 11:47:22,629 [DEBUG][       Thread-253732][   transport.py][1871] : server lang: <none>
2025-06-13 11:47:22,629 [DEBUG][       Thread-253732][   transport.py][1871] : kex follows: False
2025-06-13 11:47:22,629 [DEBUG][       Thread-253732][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 11:47:22,629 [DEBUG][       Thread-253732][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 11:47:22,629 [DEBUG][       Thread-253732][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 11:47:22,629 [DEBUG][       Thread-253732][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 11:47:22,629 [DEBUG][       Thread-253732][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 11:47:22,629 [DEBUG][       Thread-253732][   transport.py][1871] : Compression: none
2025-06-13 11:47:22,629 [DEBUG][       Thread-253732][   transport.py][1871] : === End of kex handshake ===
2025-06-13 11:47:22,687 [DEBUG][       Thread-253732][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 11:47:22,688 [DEBUG][       Thread-253732][   transport.py][1871] : Switch to new keys ...
2025-06-13 11:47:22,689 [DEBUG][       Thread-253732][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 11:47:22,689 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 11:47:22,690 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 11:47:22,749 [DEBUG][       Thread-253732][   transport.py][1871] : userauth is OK
2025-06-13 11:47:22,749 [DEBUG][       Thread-253732][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 11:47:22,749 [DEBUG][       Thread-253732][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 11:47:22,749 [DEBUG][       Thread-253732][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 11:47:22,749 [DEBUG][       Thread-253732][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 11:47:22,768 [ INFO][       Thread-253732][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 11:47:22,769 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 11:47:22,769 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 11:47:23,836 [DEBUG][       Thread-253732][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 11:47:23,836 [DEBUG][       Thread-253732][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 11:47:23,886 [DEBUG][       Thread-253732][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 11:47:23,886 [DEBUG][       Thread-253732][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 11:47:23,897 [DEBUG][       Thread-253732][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 11:47:23,907 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 11:47:23,907 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 11:47:23,916 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 11:47:23,926 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 11:47:23,927 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 11:47:23,927 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 11:47:23,936 [DEBUG][       Thread-253732][   transport.py][1871] : EOF in transport thread
2025-06-13 11:47:28,531 [DEBUG][Thread-253734 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:47:33,938 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 11:47:33,938 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 11:47:33,938 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 11:47:33,941 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 11:47:34,399 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 11, 47, 15), 12.28, 42.52, 0.0, 19.8, 11.09, 0, 0, 0, 2, 0, 0),)
2025-06-13 11:47:34,399 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 11:47:15
2025-06-13 11:47:34,479 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 11:47:34,484 [DEBUG][       Thread-253735][   transport.py][1871] : starting thread (client mode): 0x84206e00
2025-06-13 11:47:34,484 [DEBUG][       Thread-253735][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 11:47:34,495 [DEBUG][       Thread-253735][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 11:47:34,495 [ INFO][       Thread-253735][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 11:47:34,499 [DEBUG][       Thread-253735][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 11:47:34,499 [DEBUG][       Thread-253735][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 11:47:34,499 [DEBUG][       Thread-253735][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 11:47:34,499 [DEBUG][       Thread-253735][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:47:34,499 [DEBUG][       Thread-253735][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:47:34,499 [DEBUG][       Thread-253735][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:47:34,499 [DEBUG][       Thread-253735][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:47:34,499 [DEBUG][       Thread-253735][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 11:47:34,499 [DEBUG][       Thread-253735][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 11:47:34,499 [DEBUG][       Thread-253735][   transport.py][1871] : client lang: <none>
2025-06-13 11:47:34,499 [DEBUG][       Thread-253735][   transport.py][1871] : server lang: <none>
2025-06-13 11:47:34,499 [DEBUG][       Thread-253735][   transport.py][1871] : kex follows: False
2025-06-13 11:47:34,499 [DEBUG][       Thread-253735][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 11:47:34,499 [DEBUG][       Thread-253735][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 11:47:34,499 [DEBUG][       Thread-253735][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 11:47:34,499 [DEBUG][       Thread-253735][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 11:47:34,499 [DEBUG][       Thread-253735][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 11:47:34,499 [DEBUG][       Thread-253735][   transport.py][1871] : Compression: none
2025-06-13 11:47:34,499 [DEBUG][       Thread-253735][   transport.py][1871] : === End of kex handshake ===
2025-06-13 11:47:34,514 [DEBUG][       Thread-253735][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 11:47:34,514 [DEBUG][       Thread-253735][   transport.py][1871] : Switch to new keys ...
2025-06-13 11:47:34,515 [DEBUG][       Thread-253735][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 11:47:34,515 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 11:47:34,515 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 11:47:34,516 [DEBUG][       Thread-253735][   transport.py][1871] : userauth is OK
2025-06-13 11:47:34,541 [ INFO][       Thread-253735][   transport.py][1871] : Authentication (password) successful!
2025-06-13 11:47:34,542 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 11:47:35,277 [DEBUG][       Thread-253735][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 11:47:35,277 [DEBUG][       Thread-253735][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 11:47:35,321 [DEBUG][       Thread-253735][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 11:47:35,321 [DEBUG][       Thread-253735][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 11:47:35,324 [DEBUG][       Thread-253735][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 11:47:35,336 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 11:47:35,336 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 11:47:35,338 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 11:47:35,340 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 11:47:35,346 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 11:47:35,348 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 11:47:35,348 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 11:47:35,349 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 11:47:35,349 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.407577 -999.00  +11.00  22.74     46   +0.10 1 1 1 1 1   888    0 12.37 72.40 ----- 20.6 22.7 54.2 30.2 15.4 -28.0 14.0 -29.9 13.5 -28.6 14.8 -26.5
2025-06-13 11:47:35,349 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 11:47:35,349 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 11:47:35,349 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.407577
2025-06-13 11:47:35,350 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 11:47:35,350 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 11:47:35,350 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 11:47:35,350 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 11:47:35,351 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 11:47:35,351 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T11:47:15', tmtdew=12.28, humidity=42.52, cloud=0.0, wind=19.8, temperature=11.09, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T09:46:54.653', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 11:47:35,351 [DEBUG][       Thread-253735][   transport.py][1871] : EOF in transport thread
2025-06-13 11:47:35,435 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 11:47:35,447 [DEBUG][       Thread-253738][   transport.py][1871] : starting thread (client mode): 0x863ed5d0
2025-06-13 11:47:35,447 [DEBUG][       Thread-253738][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 11:47:35,462 [DEBUG][       Thread-253738][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 11:47:35,462 [ INFO][       Thread-253738][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 11:47:35,469 [DEBUG][       Thread-253738][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 11:47:35,470 [DEBUG][       Thread-253738][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 11:47:35,470 [DEBUG][       Thread-253738][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 11:47:35,470 [DEBUG][       Thread-253738][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:47:35,470 [DEBUG][       Thread-253738][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:47:35,470 [DEBUG][       Thread-253738][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:47:35,470 [DEBUG][       Thread-253738][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:47:35,470 [DEBUG][       Thread-253738][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 11:47:35,470 [DEBUG][       Thread-253738][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 11:47:35,470 [DEBUG][       Thread-253738][   transport.py][1871] : client lang: <none>
2025-06-13 11:47:35,470 [DEBUG][       Thread-253738][   transport.py][1871] : server lang: <none>
2025-06-13 11:47:35,470 [DEBUG][       Thread-253738][   transport.py][1871] : kex follows: False
2025-06-13 11:47:35,470 [DEBUG][       Thread-253738][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 11:47:35,470 [DEBUG][       Thread-253738][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 11:47:35,470 [DEBUG][       Thread-253738][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 11:47:35,470 [DEBUG][       Thread-253738][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 11:47:35,470 [DEBUG][       Thread-253738][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 11:47:35,470 [DEBUG][       Thread-253738][   transport.py][1871] : Compression: none
2025-06-13 11:47:35,470 [DEBUG][       Thread-253738][   transport.py][1871] : === End of kex handshake ===
2025-06-13 11:47:35,527 [DEBUG][       Thread-253738][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 11:47:35,528 [DEBUG][       Thread-253738][   transport.py][1871] : Switch to new keys ...
2025-06-13 11:47:35,529 [DEBUG][       Thread-253738][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 11:47:35,529 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 11:47:35,529 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 11:47:35,584 [DEBUG][       Thread-253738][   transport.py][1871] : userauth is OK
2025-06-13 11:47:35,584 [DEBUG][       Thread-253738][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 11:47:35,584 [DEBUG][       Thread-253738][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 11:47:35,584 [DEBUG][       Thread-253738][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 11:47:35,584 [DEBUG][       Thread-253738][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 11:47:35,604 [ INFO][       Thread-253738][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 11:47:35,604 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 11:47:35,605 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 11:47:36,644 [DEBUG][       Thread-253738][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 11:47:36,644 [DEBUG][       Thread-253738][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 11:47:36,692 [DEBUG][       Thread-253738][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 11:47:36,692 [DEBUG][       Thread-253738][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 11:47:36,704 [DEBUG][       Thread-253738][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 11:47:36,717 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 11:47:36,717 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 11:47:36,726 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 11:47:36,736 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 11:47:36,736 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 11:47:36,736 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 11:47:36,744 [DEBUG][       Thread-253738][   transport.py][1871] : EOF in transport thread
2025-06-13 11:47:37,569 [DEBUG][Thread-253740 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:47:37,808 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:47:37,810 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:47:42,010 [DEBUG][Thread-253741 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:47:43,088 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:47:43,089 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:47:46,588 [DEBUG][Thread-253742 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:47:46,747 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 11:47:46,747 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 11:47:46,747 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 11:47:46,748 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 11:47:47,218 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 11, 47, 15), 12.28, 42.52, 0.0, 19.8, 11.09, 0, 0, 0, 2, 0, 0),)
2025-06-13 11:47:47,218 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 11:47:15
2025-06-13 11:47:47,299 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 11:47:47,304 [DEBUG][       Thread-253743][   transport.py][1871] : starting thread (client mode): 0x863bd540
2025-06-13 11:47:47,304 [DEBUG][       Thread-253743][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 11:47:47,315 [DEBUG][       Thread-253743][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 11:47:47,315 [ INFO][       Thread-253743][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 11:47:47,318 [DEBUG][       Thread-253743][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 11:47:47,318 [DEBUG][       Thread-253743][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 11:47:47,318 [DEBUG][       Thread-253743][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 11:47:47,318 [DEBUG][       Thread-253743][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:47:47,318 [DEBUG][       Thread-253743][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:47:47,318 [DEBUG][       Thread-253743][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:47:47,318 [DEBUG][       Thread-253743][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:47:47,318 [DEBUG][       Thread-253743][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 11:47:47,318 [DEBUG][       Thread-253743][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 11:47:47,318 [DEBUG][       Thread-253743][   transport.py][1871] : client lang: <none>
2025-06-13 11:47:47,318 [DEBUG][       Thread-253743][   transport.py][1871] : server lang: <none>
2025-06-13 11:47:47,318 [DEBUG][       Thread-253743][   transport.py][1871] : kex follows: False
2025-06-13 11:47:47,318 [DEBUG][       Thread-253743][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 11:47:47,318 [DEBUG][       Thread-253743][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 11:47:47,318 [DEBUG][       Thread-253743][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 11:47:47,319 [DEBUG][       Thread-253743][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 11:47:47,319 [DEBUG][       Thread-253743][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 11:47:47,319 [DEBUG][       Thread-253743][   transport.py][1871] : Compression: none
2025-06-13 11:47:47,319 [DEBUG][       Thread-253743][   transport.py][1871] : === End of kex handshake ===
2025-06-13 11:47:47,332 [DEBUG][       Thread-253743][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 11:47:47,332 [DEBUG][       Thread-253743][   transport.py][1871] : Switch to new keys ...
2025-06-13 11:47:47,333 [DEBUG][       Thread-253743][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 11:47:47,333 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 11:47:47,333 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 11:47:47,334 [DEBUG][       Thread-253743][   transport.py][1871] : userauth is OK
2025-06-13 11:47:47,347 [ INFO][       Thread-253743][   transport.py][1871] : Authentication (password) successful!
2025-06-13 11:47:47,347 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 11:47:47,997 [DEBUG][       Thread-253743][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 11:47:47,997 [DEBUG][       Thread-253743][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 11:47:48,040 [DEBUG][       Thread-253743][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 11:47:48,040 [DEBUG][       Thread-253743][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 11:47:48,042 [DEBUG][       Thread-253743][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 11:47:48,047 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 11:47:48,047 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 11:47:48,048 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 11:47:48,049 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 11:47:48,051 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 11:47:48,052 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 11:47:48,052 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 11:47:48,052 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 11:47:48,052 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.407925 -999.00  +11.00  21.55     46   +0.00 1 1 1 1 1   888    0 12.25 74.83 ----- 25.2 21.6 52.2 25.1 15.4 -28.4 14.0 -30.2 13.5 -28.8 14.9 -26.9
2025-06-13 11:47:48,052 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 11:47:48,052 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 11:47:48,052 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.407925
2025-06-13 11:47:48,053 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 11:47:48,053 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 11:47:48,053 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 11:47:48,053 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 11:47:48,053 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 11:47:48,053 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T11:47:15', tmtdew=12.28, humidity=42.52, cloud=0.0, wind=19.8, temperature=11.09, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T09:47:24.720', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 11:47:48,053 [DEBUG][       Thread-253743][   transport.py][1871] : EOF in transport thread
2025-06-13 11:47:48,127 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 11:47:48,137 [DEBUG][       Thread-253746][   transport.py][1871] : starting thread (client mode): 0x84207070
2025-06-13 11:47:48,137 [DEBUG][       Thread-253746][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 11:47:48,154 [DEBUG][       Thread-253746][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 11:47:48,154 [ INFO][       Thread-253746][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 11:47:48,162 [DEBUG][       Thread-253746][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 11:47:48,162 [DEBUG][       Thread-253746][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 11:47:48,162 [DEBUG][       Thread-253746][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 11:47:48,162 [DEBUG][       Thread-253746][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:47:48,162 [DEBUG][       Thread-253746][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:47:48,162 [DEBUG][       Thread-253746][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:47:48,162 [DEBUG][       Thread-253746][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:47:48,162 [DEBUG][       Thread-253746][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 11:47:48,162 [DEBUG][       Thread-253746][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 11:47:48,162 [DEBUG][       Thread-253746][   transport.py][1871] : client lang: <none>
2025-06-13 11:47:48,162 [DEBUG][       Thread-253746][   transport.py][1871] : server lang: <none>
2025-06-13 11:47:48,162 [DEBUG][       Thread-253746][   transport.py][1871] : kex follows: False
2025-06-13 11:47:48,162 [DEBUG][       Thread-253746][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 11:47:48,162 [DEBUG][       Thread-253746][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 11:47:48,162 [DEBUG][       Thread-253746][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 11:47:48,162 [DEBUG][       Thread-253746][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 11:47:48,162 [DEBUG][       Thread-253746][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 11:47:48,162 [DEBUG][       Thread-253746][   transport.py][1871] : Compression: none
2025-06-13 11:47:48,162 [DEBUG][       Thread-253746][   transport.py][1871] : === End of kex handshake ===
2025-06-13 11:47:48,217 [DEBUG][       Thread-253746][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 11:47:48,218 [DEBUG][       Thread-253746][   transport.py][1871] : Switch to new keys ...
2025-06-13 11:47:48,218 [DEBUG][       Thread-253746][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 11:47:48,218 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 11:47:48,218 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 11:47:48,275 [DEBUG][       Thread-253746][   transport.py][1871] : userauth is OK
2025-06-13 11:47:48,275 [DEBUG][       Thread-253746][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 11:47:48,275 [DEBUG][       Thread-253746][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 11:47:48,275 [DEBUG][       Thread-253746][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 11:47:48,275 [DEBUG][       Thread-253746][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 11:47:48,289 [ INFO][       Thread-253746][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 11:47:48,289 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 11:47:48,289 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 11:47:49,318 [DEBUG][       Thread-253746][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 11:47:49,319 [DEBUG][       Thread-253746][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 11:47:49,368 [DEBUG][       Thread-253746][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 11:47:49,368 [DEBUG][       Thread-253746][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 11:47:49,377 [DEBUG][       Thread-253746][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 11:47:49,386 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 11:47:49,386 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 11:47:49,394 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 11:47:49,403 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 11:47:49,403 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 11:47:49,404 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 11:47:49,412 [DEBUG][       Thread-253746][   transport.py][1871] : EOF in transport thread
2025-06-13 11:47:55,611 [DEBUG][Thread-253748 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:47:59,412 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 11:47:59,412 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 11:47:59,412 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 11:47:59,415 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 11:47:59,878 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 11, 47, 47), 12.27, 42.54, 0.0, 20.94, 11.06, 0, 0, 0, 2, 0, 0),)
2025-06-13 11:47:59,878 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 11:47:47
2025-06-13 11:47:59,959 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 11:47:59,963 [DEBUG][       Thread-253749][   transport.py][1871] : starting thread (client mode): 0x84207610
2025-06-13 11:47:59,963 [DEBUG][       Thread-253749][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 11:47:59,984 [DEBUG][       Thread-253749][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 11:47:59,984 [ INFO][       Thread-253749][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 11:47:59,988 [DEBUG][       Thread-253749][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 11:47:59,988 [DEBUG][       Thread-253749][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 11:47:59,988 [DEBUG][       Thread-253749][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 11:47:59,988 [DEBUG][       Thread-253749][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:47:59,988 [DEBUG][       Thread-253749][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:47:59,988 [DEBUG][       Thread-253749][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:47:59,988 [DEBUG][       Thread-253749][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:47:59,988 [DEBUG][       Thread-253749][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 11:47:59,988 [DEBUG][       Thread-253749][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 11:47:59,988 [DEBUG][       Thread-253749][   transport.py][1871] : client lang: <none>
2025-06-13 11:47:59,988 [DEBUG][       Thread-253749][   transport.py][1871] : server lang: <none>
2025-06-13 11:47:59,988 [DEBUG][       Thread-253749][   transport.py][1871] : kex follows: False
2025-06-13 11:47:59,988 [DEBUG][       Thread-253749][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 11:47:59,988 [DEBUG][       Thread-253749][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 11:47:59,988 [DEBUG][       Thread-253749][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 11:47:59,988 [DEBUG][       Thread-253749][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 11:47:59,988 [DEBUG][       Thread-253749][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 11:47:59,988 [DEBUG][       Thread-253749][   transport.py][1871] : Compression: none
2025-06-13 11:47:59,988 [DEBUG][       Thread-253749][   transport.py][1871] : === End of kex handshake ===
2025-06-13 11:48:00,005 [DEBUG][       Thread-253749][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 11:48:00,006 [DEBUG][       Thread-253749][   transport.py][1871] : Switch to new keys ...
2025-06-13 11:48:00,006 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 11:48:00,006 [DEBUG][       Thread-253749][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 11:48:00,007 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 11:48:00,008 [DEBUG][       Thread-253749][   transport.py][1871] : userauth is OK
2025-06-13 11:48:00,033 [ INFO][       Thread-253749][   transport.py][1871] : Authentication (password) successful!
2025-06-13 11:48:00,034 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 11:48:00,832 [DEBUG][       Thread-253749][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 11:48:00,832 [DEBUG][       Thread-253749][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 11:48:00,873 [DEBUG][       Thread-253749][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 11:48:00,873 [DEBUG][       Thread-253749][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 11:48:00,877 [DEBUG][       Thread-253749][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 11:48:00,888 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 11:48:00,888 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 11:48:00,890 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 11:48:00,892 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 11:48:00,898 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 11:48:00,900 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 11:48:00,900 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 11:48:00,901 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 11:48:00,901 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.407925 -999.00  +11.00  21.55     46   +0.00 1 1 1 1 1   888    0 12.25 74.83 ----- 25.2 21.6 52.2 25.1 15.4 -28.4 14.0 -30.2 13.5 -28.8 14.9 -26.9
2025-06-13 11:48:00,901 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 11:48:00,901 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 11:48:00,901 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.407925
2025-06-13 11:48:00,902 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 11:48:00,902 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 11:48:00,902 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 11:48:00,903 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 11:48:00,903 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 11:48:00,903 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T11:47:47', tmtdew=12.27, humidity=42.54, cloud=0.0, wind=20.94, temperature=11.06, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T09:47:24.720', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 11:48:00,904 [DEBUG][       Thread-253749][   transport.py][1871] : EOF in transport thread
2025-06-13 11:48:00,987 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 11:48:01,002 [DEBUG][       Thread-253752][   transport.py][1871] : starting thread (client mode): 0x863a5210
2025-06-13 11:48:01,002 [DEBUG][       Thread-253752][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 11:48:01,018 [DEBUG][       Thread-253752][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 11:48:01,018 [ INFO][       Thread-253752][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 11:48:01,025 [DEBUG][       Thread-253752][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 11:48:01,026 [DEBUG][       Thread-253752][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 11:48:01,026 [DEBUG][       Thread-253752][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 11:48:01,026 [DEBUG][       Thread-253752][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:48:01,026 [DEBUG][       Thread-253752][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:48:01,026 [DEBUG][       Thread-253752][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:48:01,026 [DEBUG][       Thread-253752][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:48:01,026 [DEBUG][       Thread-253752][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 11:48:01,026 [DEBUG][       Thread-253752][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 11:48:01,026 [DEBUG][       Thread-253752][   transport.py][1871] : client lang: <none>
2025-06-13 11:48:01,026 [DEBUG][       Thread-253752][   transport.py][1871] : server lang: <none>
2025-06-13 11:48:01,026 [DEBUG][       Thread-253752][   transport.py][1871] : kex follows: False
2025-06-13 11:48:01,026 [DEBUG][       Thread-253752][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 11:48:01,026 [DEBUG][       Thread-253752][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 11:48:01,026 [DEBUG][       Thread-253752][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 11:48:01,026 [DEBUG][       Thread-253752][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 11:48:01,027 [DEBUG][       Thread-253752][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 11:48:01,027 [DEBUG][       Thread-253752][   transport.py][1871] : Compression: none
2025-06-13 11:48:01,027 [DEBUG][       Thread-253752][   transport.py][1871] : === End of kex handshake ===
2025-06-13 11:48:01,083 [DEBUG][       Thread-253752][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 11:48:01,084 [DEBUG][       Thread-253752][   transport.py][1871] : Switch to new keys ...
2025-06-13 11:48:01,084 [DEBUG][       Thread-253752][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 11:48:01,085 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 11:48:01,085 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 11:48:01,140 [DEBUG][       Thread-253752][   transport.py][1871] : userauth is OK
2025-06-13 11:48:01,140 [DEBUG][       Thread-253752][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 11:48:01,140 [DEBUG][       Thread-253752][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 11:48:01,140 [DEBUG][       Thread-253752][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 11:48:01,140 [DEBUG][       Thread-253752][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 11:48:01,159 [ INFO][       Thread-253752][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 11:48:01,160 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 11:48:01,160 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 11:48:02,165 [DEBUG][       Thread-253752][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 11:48:02,165 [DEBUG][       Thread-253752][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 11:48:02,218 [DEBUG][       Thread-253752][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 11:48:02,218 [DEBUG][       Thread-253752][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 11:48:02,230 [DEBUG][       Thread-253752][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 11:48:02,240 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 11:48:02,240 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 11:48:02,250 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 11:48:02,260 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 11:48:02,260 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 11:48:02,260 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 11:48:02,268 [DEBUG][       Thread-253752][   transport.py][1871] : EOF in transport thread
2025-06-13 11:48:04,634 [DEBUG][Thread-253754 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:48:10,222 [DEBUG][Thread-253755 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:48:12,270 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 11:48:12,271 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 11:48:12,271 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 11:48:12,274 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 11:48:12,747 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 11, 47, 47), 12.27, 42.54, 0.0, 20.94, 11.06, 0, 0, 0, 2, 0, 0),)
2025-06-13 11:48:12,747 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 11:47:47
2025-06-13 11:48:12,828 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 11:48:12,833 [DEBUG][       Thread-253756][   transport.py][1871] : starting thread (client mode): 0x84207a30
2025-06-13 11:48:12,833 [DEBUG][       Thread-253756][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 11:48:12,854 [DEBUG][       Thread-253756][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 11:48:12,854 [ INFO][       Thread-253756][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 11:48:12,857 [DEBUG][       Thread-253756][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 11:48:12,857 [DEBUG][       Thread-253756][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 11:48:12,857 [DEBUG][       Thread-253756][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 11:48:12,857 [DEBUG][       Thread-253756][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:48:12,857 [DEBUG][       Thread-253756][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:48:12,857 [DEBUG][       Thread-253756][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:48:12,858 [DEBUG][       Thread-253756][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:48:12,858 [DEBUG][       Thread-253756][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 11:48:12,858 [DEBUG][       Thread-253756][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 11:48:12,858 [DEBUG][       Thread-253756][   transport.py][1871] : client lang: <none>
2025-06-13 11:48:12,858 [DEBUG][       Thread-253756][   transport.py][1871] : server lang: <none>
2025-06-13 11:48:12,858 [DEBUG][       Thread-253756][   transport.py][1871] : kex follows: False
2025-06-13 11:48:12,858 [DEBUG][       Thread-253756][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 11:48:12,858 [DEBUG][       Thread-253756][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 11:48:12,858 [DEBUG][       Thread-253756][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 11:48:12,858 [DEBUG][       Thread-253756][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 11:48:12,858 [DEBUG][       Thread-253756][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 11:48:12,858 [DEBUG][       Thread-253756][   transport.py][1871] : Compression: none
2025-06-13 11:48:12,858 [DEBUG][       Thread-253756][   transport.py][1871] : === End of kex handshake ===
2025-06-13 11:48:12,873 [DEBUG][       Thread-253756][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 11:48:12,874 [DEBUG][       Thread-253756][   transport.py][1871] : Switch to new keys ...
2025-06-13 11:48:12,874 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 11:48:12,875 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 11:48:12,875 [DEBUG][       Thread-253756][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 11:48:12,876 [DEBUG][       Thread-253756][   transport.py][1871] : userauth is OK
2025-06-13 11:48:12,901 [ INFO][       Thread-253756][   transport.py][1871] : Authentication (password) successful!
2025-06-13 11:48:12,901 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 11:48:13,647 [DEBUG][       Thread-253756][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 11:48:13,647 [DEBUG][       Thread-253756][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 11:48:13,684 [DEBUG][Thread-253758 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:48:13,689 [DEBUG][       Thread-253756][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 11:48:13,689 [DEBUG][       Thread-253756][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 11:48:13,692 [DEBUG][       Thread-253756][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 11:48:13,704 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 11:48:13,705 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 11:48:13,707 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 11:48:13,709 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 11:48:13,714 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 11:48:13,715 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 11:48:13,716 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 11:48:13,716 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 11:48:13,716 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.407925 -999.00  +11.00  21.55     46   +0.00 1 1 1 1 1   888    0 12.25 74.83 ----- 25.2 21.6 52.2 25.1 15.4 -28.4 14.0 -30.2 13.5 -28.8 14.9 -26.9
2025-06-13 11:48:13,717 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 11:48:13,717 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 11:48:13,717 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.407925
2025-06-13 11:48:13,717 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 11:48:13,718 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 11:48:13,718 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 11:48:13,718 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 11:48:13,718 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 11:48:13,718 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T11:47:47', tmtdew=12.27, humidity=42.54, cloud=0.0, wind=20.94, temperature=11.06, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T09:47:24.720', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 11:48:13,718 [DEBUG][       Thread-253756][   transport.py][1871] : EOF in transport thread
2025-06-13 11:48:13,803 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 11:48:13,816 [DEBUG][       Thread-253760][   transport.py][1871] : starting thread (client mode): 0x867fefb0
2025-06-13 11:48:13,816 [DEBUG][       Thread-253760][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 11:48:13,836 [DEBUG][       Thread-253760][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 11:48:13,837 [ INFO][       Thread-253760][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 11:48:13,845 [DEBUG][       Thread-253760][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 11:48:13,846 [DEBUG][       Thread-253760][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 11:48:13,846 [DEBUG][       Thread-253760][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 11:48:13,846 [DEBUG][       Thread-253760][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:48:13,846 [DEBUG][       Thread-253760][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:48:13,846 [DEBUG][       Thread-253760][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:48:13,846 [DEBUG][       Thread-253760][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:48:13,846 [DEBUG][       Thread-253760][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 11:48:13,846 [DEBUG][       Thread-253760][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 11:48:13,846 [DEBUG][       Thread-253760][   transport.py][1871] : client lang: <none>
2025-06-13 11:48:13,846 [DEBUG][       Thread-253760][   transport.py][1871] : server lang: <none>
2025-06-13 11:48:13,846 [DEBUG][       Thread-253760][   transport.py][1871] : kex follows: False
2025-06-13 11:48:13,846 [DEBUG][       Thread-253760][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 11:48:13,846 [DEBUG][       Thread-253760][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 11:48:13,847 [DEBUG][       Thread-253760][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 11:48:13,847 [DEBUG][       Thread-253760][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 11:48:13,847 [DEBUG][       Thread-253760][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 11:48:13,847 [DEBUG][       Thread-253760][   transport.py][1871] : Compression: none
2025-06-13 11:48:13,847 [DEBUG][       Thread-253760][   transport.py][1871] : === End of kex handshake ===
2025-06-13 11:48:13,903 [DEBUG][       Thread-253760][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 11:48:13,904 [DEBUG][       Thread-253760][   transport.py][1871] : Switch to new keys ...
2025-06-13 11:48:13,905 [DEBUG][       Thread-253760][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 11:48:13,905 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 11:48:13,906 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 11:48:13,961 [DEBUG][       Thread-253760][   transport.py][1871] : userauth is OK
2025-06-13 11:48:13,961 [DEBUG][       Thread-253760][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 11:48:13,961 [DEBUG][       Thread-253760][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 11:48:13,961 [DEBUG][       Thread-253760][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 11:48:13,962 [DEBUG][       Thread-253760][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 11:48:13,980 [ INFO][       Thread-253760][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 11:48:13,981 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 11:48:13,981 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 11:48:14,991 [DEBUG][       Thread-253760][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 11:48:14,991 [DEBUG][       Thread-253760][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 11:48:15,040 [DEBUG][       Thread-253760][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 11:48:15,040 [DEBUG][       Thread-253760][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 11:48:15,055 [DEBUG][       Thread-253760][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 11:48:15,068 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 11:48:15,068 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 11:48:15,077 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 11:48:15,086 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 11:48:15,086 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 11:48:15,087 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 11:48:15,095 [DEBUG][       Thread-253760][   transport.py][1871] : EOF in transport thread
2025-06-13 11:48:22,703 [DEBUG][Thread-253762 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:48:25,097 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 11:48:25,097 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 11:48:25,098 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 11:48:25,100 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 11:48:25,552 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 11, 48, 18), 12.3, 42.44, 0.0, 18.86, 11.0, 0, 0, 0, 2, 0, 0),)
2025-06-13 11:48:25,552 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 11:48:18
2025-06-13 11:48:25,630 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 11:48:25,635 [DEBUG][       Thread-253763][   transport.py][1871] : starting thread (client mode): 0x84206680
2025-06-13 11:48:25,635 [DEBUG][       Thread-253763][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 11:48:25,654 [DEBUG][       Thread-253763][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 11:48:25,654 [ INFO][       Thread-253763][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 11:48:25,658 [DEBUG][       Thread-253763][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 11:48:25,658 [DEBUG][       Thread-253763][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 11:48:25,658 [DEBUG][       Thread-253763][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 11:48:25,658 [DEBUG][       Thread-253763][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:48:25,658 [DEBUG][       Thread-253763][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:48:25,658 [DEBUG][       Thread-253763][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:48:25,658 [DEBUG][       Thread-253763][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:48:25,658 [DEBUG][       Thread-253763][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 11:48:25,658 [DEBUG][       Thread-253763][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 11:48:25,658 [DEBUG][       Thread-253763][   transport.py][1871] : client lang: <none>
2025-06-13 11:48:25,658 [DEBUG][       Thread-253763][   transport.py][1871] : server lang: <none>
2025-06-13 11:48:25,658 [DEBUG][       Thread-253763][   transport.py][1871] : kex follows: False
2025-06-13 11:48:25,658 [DEBUG][       Thread-253763][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 11:48:25,658 [DEBUG][       Thread-253763][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 11:48:25,658 [DEBUG][       Thread-253763][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 11:48:25,658 [DEBUG][       Thread-253763][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 11:48:25,658 [DEBUG][       Thread-253763][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 11:48:25,658 [DEBUG][       Thread-253763][   transport.py][1871] : Compression: none
2025-06-13 11:48:25,658 [DEBUG][       Thread-253763][   transport.py][1871] : === End of kex handshake ===
2025-06-13 11:48:25,673 [DEBUG][       Thread-253763][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 11:48:25,674 [DEBUG][       Thread-253763][   transport.py][1871] : Switch to new keys ...
2025-06-13 11:48:25,674 [DEBUG][       Thread-253763][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 11:48:25,674 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 11:48:25,675 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 11:48:25,676 [DEBUG][       Thread-253763][   transport.py][1871] : userauth is OK
2025-06-13 11:48:25,701 [ INFO][       Thread-253763][   transport.py][1871] : Authentication (password) successful!
2025-06-13 11:48:25,701 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 11:48:26,299 [DEBUG][       Thread-253763][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 11:48:26,300 [DEBUG][       Thread-253763][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 11:48:26,341 [DEBUG][       Thread-253763][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 11:48:26,341 [DEBUG][       Thread-253763][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 11:48:26,344 [DEBUG][       Thread-253763][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 11:48:26,357 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 11:48:26,357 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 11:48:26,359 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 11:48:26,361 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 11:48:26,366 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 11:48:26,368 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 11:48:26,368 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 11:48:26,369 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 11:48:26,369 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.408272 -999.00  +10.90  24.76     47   +0.20 1 1 1 1 1   888    0 11.89 65.64 ----- 27.4 24.8 48.4 31.5 15.3 -28.3 14.0 -29.7 13.5 -29.3 14.9 -27.3
2025-06-13 11:48:26,369 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 11:48:26,369 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 11:48:26,369 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.408272
2025-06-13 11:48:26,370 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 11:48:26,370 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 11:48:26,370 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 11:48:26,371 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 11:48:26,371 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 11:48:26,371 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T11:48:18', tmtdew=12.3, humidity=42.44, cloud=0.0, wind=18.86, temperature=11.0, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T09:47:54.701', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 11:48:26,372 [DEBUG][       Thread-253763][   transport.py][1871] : EOF in transport thread
2025-06-13 11:48:26,455 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 11:48:26,464 [DEBUG][       Thread-253766][   transport.py][1871] : starting thread (client mode): 0x863bdb70
2025-06-13 11:48:26,464 [DEBUG][       Thread-253766][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 11:48:26,479 [DEBUG][       Thread-253766][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 11:48:26,479 [ INFO][       Thread-253766][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 11:48:26,487 [DEBUG][       Thread-253766][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 11:48:26,487 [DEBUG][       Thread-253766][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 11:48:26,487 [DEBUG][       Thread-253766][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 11:48:26,487 [DEBUG][       Thread-253766][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:48:26,487 [DEBUG][       Thread-253766][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:48:26,487 [DEBUG][       Thread-253766][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:48:26,487 [DEBUG][       Thread-253766][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:48:26,487 [DEBUG][       Thread-253766][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 11:48:26,487 [DEBUG][       Thread-253766][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 11:48:26,487 [DEBUG][       Thread-253766][   transport.py][1871] : client lang: <none>
2025-06-13 11:48:26,487 [DEBUG][       Thread-253766][   transport.py][1871] : server lang: <none>
2025-06-13 11:48:26,487 [DEBUG][       Thread-253766][   transport.py][1871] : kex follows: False
2025-06-13 11:48:26,487 [DEBUG][       Thread-253766][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 11:48:26,487 [DEBUG][       Thread-253766][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 11:48:26,487 [DEBUG][       Thread-253766][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 11:48:26,487 [DEBUG][       Thread-253766][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 11:48:26,487 [DEBUG][       Thread-253766][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 11:48:26,488 [DEBUG][       Thread-253766][   transport.py][1871] : Compression: none
2025-06-13 11:48:26,488 [DEBUG][       Thread-253766][   transport.py][1871] : === End of kex handshake ===
2025-06-13 11:48:26,546 [DEBUG][       Thread-253766][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 11:48:26,547 [DEBUG][       Thread-253766][   transport.py][1871] : Switch to new keys ...
2025-06-13 11:48:26,548 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 11:48:26,548 [DEBUG][       Thread-253766][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 11:48:26,549 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 11:48:26,611 [DEBUG][       Thread-253766][   transport.py][1871] : userauth is OK
2025-06-13 11:48:26,611 [DEBUG][       Thread-253766][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 11:48:26,612 [DEBUG][       Thread-253766][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 11:48:26,612 [DEBUG][       Thread-253766][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 11:48:26,612 [DEBUG][       Thread-253766][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 11:48:26,630 [ INFO][       Thread-253766][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 11:48:26,631 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 11:48:26,631 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 11:48:27,654 [DEBUG][       Thread-253766][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 11:48:27,655 [DEBUG][       Thread-253766][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 11:48:27,704 [DEBUG][       Thread-253766][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 11:48:27,704 [DEBUG][       Thread-253766][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 11:48:27,715 [DEBUG][       Thread-253766][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 11:48:27,725 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 11:48:27,725 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 11:48:27,734 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 11:48:27,744 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 11:48:27,744 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 11:48:27,744 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 11:48:27,752 [DEBUG][       Thread-253766][   transport.py][1871] : EOF in transport thread
2025-06-13 11:48:31,723 [DEBUG][Thread-253768 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:48:37,755 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 11:48:37,755 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 11:48:37,755 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 11:48:37,758 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 11:48:37,948 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:48:37,948 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:48:38,211 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 11, 48, 18), 12.3, 42.44, 0.0, 18.86, 11.0, 0, 0, 0, 2, 0, 0),)
2025-06-13 11:48:38,212 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 11:48:18
2025-06-13 11:48:38,291 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 11:48:38,295 [DEBUG][       Thread-253769][   transport.py][1871] : starting thread (client mode): 0x84207a60
2025-06-13 11:48:38,295 [DEBUG][       Thread-253769][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 11:48:38,314 [DEBUG][       Thread-253769][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 11:48:38,314 [ INFO][       Thread-253769][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 11:48:38,317 [DEBUG][       Thread-253769][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 11:48:38,317 [DEBUG][       Thread-253769][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 11:48:38,317 [DEBUG][       Thread-253769][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 11:48:38,317 [DEBUG][       Thread-253769][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:48:38,317 [DEBUG][       Thread-253769][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:48:38,317 [DEBUG][       Thread-253769][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:48:38,317 [DEBUG][       Thread-253769][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:48:38,317 [DEBUG][       Thread-253769][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 11:48:38,317 [DEBUG][       Thread-253769][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 11:48:38,317 [DEBUG][       Thread-253769][   transport.py][1871] : client lang: <none>
2025-06-13 11:48:38,317 [DEBUG][       Thread-253769][   transport.py][1871] : server lang: <none>
2025-06-13 11:48:38,317 [DEBUG][       Thread-253769][   transport.py][1871] : kex follows: False
2025-06-13 11:48:38,317 [DEBUG][       Thread-253769][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 11:48:38,317 [DEBUG][       Thread-253769][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 11:48:38,317 [DEBUG][       Thread-253769][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 11:48:38,317 [DEBUG][       Thread-253769][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 11:48:38,317 [DEBUG][       Thread-253769][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 11:48:38,317 [DEBUG][       Thread-253769][   transport.py][1871] : Compression: none
2025-06-13 11:48:38,317 [DEBUG][       Thread-253769][   transport.py][1871] : === End of kex handshake ===
2025-06-13 11:48:38,334 [DEBUG][       Thread-253769][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 11:48:38,334 [DEBUG][       Thread-253769][   transport.py][1871] : Switch to new keys ...
2025-06-13 11:48:38,335 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 11:48:38,335 [DEBUG][       Thread-253769][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 11:48:38,336 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 11:48:38,337 [DEBUG][       Thread-253769][   transport.py][1871] : userauth is OK
2025-06-13 11:48:38,351 [ INFO][       Thread-253769][   transport.py][1871] : Authentication (password) successful!
2025-06-13 11:48:38,352 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 11:48:39,105 [DEBUG][       Thread-253769][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 11:48:39,105 [DEBUG][       Thread-253769][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 11:48:39,149 [DEBUG][       Thread-253769][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 11:48:39,149 [DEBUG][       Thread-253769][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 11:48:39,152 [DEBUG][       Thread-253769][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 11:48:39,164 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 11:48:39,164 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 11:48:39,166 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 11:48:39,168 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 11:48:39,173 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 11:48:39,175 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 11:48:39,175 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 11:48:39,176 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 11:48:39,176 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.408272 -999.00  +10.90  24.76     47   +0.20 1 1 1 1 1   888    0 11.89 65.64 ----- 27.4 24.8 48.4 31.5 15.3 -28.3 14.0 -29.7 13.5 -29.3 14.9 -27.3
2025-06-13 11:48:39,176 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 11:48:39,176 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 11:48:39,176 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.408272
2025-06-13 11:48:39,177 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 11:48:39,177 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 11:48:39,177 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 11:48:39,177 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 11:48:39,178 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 11:48:39,178 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T11:48:18', tmtdew=12.3, humidity=42.44, cloud=0.0, wind=18.86, temperature=11.0, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T09:47:54.701', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 11:48:39,179 [DEBUG][       Thread-253769][   transport.py][1871] : EOF in transport thread
2025-06-13 11:48:39,261 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 11:48:39,273 [DEBUG][       Thread-253772][   transport.py][1871] : starting thread (client mode): 0x867fcb80
2025-06-13 11:48:39,273 [DEBUG][       Thread-253772][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 11:48:39,287 [DEBUG][       Thread-253772][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 11:48:39,288 [ INFO][       Thread-253772][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 11:48:39,295 [DEBUG][       Thread-253772][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 11:48:39,295 [DEBUG][       Thread-253772][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 11:48:39,295 [DEBUG][       Thread-253772][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 11:48:39,295 [DEBUG][       Thread-253772][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:48:39,295 [DEBUG][       Thread-253772][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:48:39,295 [DEBUG][       Thread-253772][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:48:39,295 [DEBUG][       Thread-253772][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:48:39,295 [DEBUG][       Thread-253772][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 11:48:39,295 [DEBUG][       Thread-253772][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 11:48:39,296 [DEBUG][       Thread-253772][   transport.py][1871] : client lang: <none>
2025-06-13 11:48:39,296 [DEBUG][       Thread-253772][   transport.py][1871] : server lang: <none>
2025-06-13 11:48:39,296 [DEBUG][       Thread-253772][   transport.py][1871] : kex follows: False
2025-06-13 11:48:39,296 [DEBUG][       Thread-253772][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 11:48:39,296 [DEBUG][       Thread-253772][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 11:48:39,296 [DEBUG][       Thread-253772][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 11:48:39,296 [DEBUG][       Thread-253772][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 11:48:39,296 [DEBUG][       Thread-253772][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 11:48:39,296 [DEBUG][       Thread-253772][   transport.py][1871] : Compression: none
2025-06-13 11:48:39,296 [DEBUG][       Thread-253772][   transport.py][1871] : === End of kex handshake ===
2025-06-13 11:48:39,363 [DEBUG][       Thread-253772][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 11:48:39,364 [DEBUG][       Thread-253772][   transport.py][1871] : Switch to new keys ...
2025-06-13 11:48:39,364 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 11:48:39,365 [DEBUG][       Thread-253772][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 11:48:39,366 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 11:48:39,423 [DEBUG][       Thread-253772][   transport.py][1871] : userauth is OK
2025-06-13 11:48:39,423 [DEBUG][       Thread-253772][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 11:48:39,423 [DEBUG][       Thread-253772][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 11:48:39,424 [DEBUG][       Thread-253772][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 11:48:39,424 [DEBUG][       Thread-253772][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 11:48:39,442 [ INFO][       Thread-253772][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 11:48:39,442 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 11:48:39,443 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 11:48:40,428 [DEBUG][       Thread-253772][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 11:48:40,429 [DEBUG][       Thread-253772][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 11:48:40,482 [DEBUG][       Thread-253772][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 11:48:40,482 [DEBUG][       Thread-253772][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 11:48:40,503 [DEBUG][       Thread-253772][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 11:48:40,512 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 11:48:40,513 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 11:48:40,527 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 11:48:40,536 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 11:48:40,536 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 11:48:40,537 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 11:48:40,545 [DEBUG][       Thread-253772][   transport.py][1871] : EOF in transport thread
2025-06-13 11:48:40,766 [DEBUG][Thread-253774 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:48:43,140 [DEBUG][Thread-253775 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:48:44,222 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:48:44,224 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:48:49,788 [DEBUG][Thread-253776 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:48:50,547 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 11:48:50,547 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 11:48:50,547 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 11:48:50,548 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 11:48:50,996 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 11, 48, 18), 12.3, 42.44, 0.0, 18.86, 11.0, 0, 0, 0, 2, 0, 0),)
2025-06-13 11:48:50,996 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 11:48:18
2025-06-13 11:48:51,082 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 11:48:51,086 [DEBUG][       Thread-253777][   transport.py][1871] : starting thread (client mode): 0x842056c0
2025-06-13 11:48:51,086 [DEBUG][       Thread-253777][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 11:48:51,107 [DEBUG][       Thread-253777][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 11:48:51,107 [ INFO][       Thread-253777][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 11:48:51,111 [DEBUG][       Thread-253777][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 11:48:51,111 [DEBUG][       Thread-253777][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 11:48:51,111 [DEBUG][       Thread-253777][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 11:48:51,111 [DEBUG][       Thread-253777][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:48:51,111 [DEBUG][       Thread-253777][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:48:51,111 [DEBUG][       Thread-253777][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:48:51,111 [DEBUG][       Thread-253777][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:48:51,111 [DEBUG][       Thread-253777][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 11:48:51,111 [DEBUG][       Thread-253777][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 11:48:51,111 [DEBUG][       Thread-253777][   transport.py][1871] : client lang: <none>
2025-06-13 11:48:51,111 [DEBUG][       Thread-253777][   transport.py][1871] : server lang: <none>
2025-06-13 11:48:51,111 [DEBUG][       Thread-253777][   transport.py][1871] : kex follows: False
2025-06-13 11:48:51,111 [DEBUG][       Thread-253777][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 11:48:51,111 [DEBUG][       Thread-253777][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 11:48:51,111 [DEBUG][       Thread-253777][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 11:48:51,111 [DEBUG][       Thread-253777][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 11:48:51,111 [DEBUG][       Thread-253777][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 11:48:51,112 [DEBUG][       Thread-253777][   transport.py][1871] : Compression: none
2025-06-13 11:48:51,112 [DEBUG][       Thread-253777][   transport.py][1871] : === End of kex handshake ===
2025-06-13 11:48:51,127 [DEBUG][       Thread-253777][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 11:48:51,127 [DEBUG][       Thread-253777][   transport.py][1871] : Switch to new keys ...
2025-06-13 11:48:51,128 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 11:48:51,128 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 11:48:51,129 [DEBUG][       Thread-253777][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 11:48:51,131 [DEBUG][       Thread-253777][   transport.py][1871] : userauth is OK
2025-06-13 11:48:51,156 [ INFO][       Thread-253777][   transport.py][1871] : Authentication (password) successful!
2025-06-13 11:48:51,157 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 11:48:51,908 [DEBUG][       Thread-253777][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 11:48:51,908 [DEBUG][       Thread-253777][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 11:48:51,952 [DEBUG][       Thread-253777][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 11:48:51,952 [DEBUG][       Thread-253777][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 11:48:51,955 [DEBUG][       Thread-253777][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 11:48:51,968 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 11:48:51,968 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 11:48:51,969 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 11:48:51,970 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 11:48:51,973 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 11:48:51,974 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 11:48:51,974 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 11:48:51,975 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 11:48:51,975 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.408272 -999.00  +10.90  24.76     47   +0.20 1 1 1 1 1   888    0 11.89 65.64 ----- 27.4 24.8 48.4 31.5 15.3 -28.3 14.0 -29.7 13.5 -29.3 14.9 -27.3
2025-06-13 11:48:51,975 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 11:48:51,975 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 11:48:51,975 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.408272
2025-06-13 11:48:51,975 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 11:48:51,975 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 11:48:51,975 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 11:48:51,975 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 11:48:51,975 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 11:48:51,975 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T11:48:18', tmtdew=12.3, humidity=42.44, cloud=0.0, wind=18.86, temperature=11.0, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T09:47:54.701', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 11:48:51,976 [DEBUG][       Thread-253777][   transport.py][1871] : EOF in transport thread
2025-06-13 11:48:52,061 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 11:48:52,070 [DEBUG][       Thread-253780][   transport.py][1871] : starting thread (client mode): 0x84204a90
2025-06-13 11:48:52,071 [DEBUG][       Thread-253780][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 11:48:52,086 [DEBUG][       Thread-253780][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 11:48:52,086 [ INFO][       Thread-253780][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 11:48:52,093 [DEBUG][       Thread-253780][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 11:48:52,093 [DEBUG][       Thread-253780][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 11:48:52,093 [DEBUG][       Thread-253780][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 11:48:52,093 [DEBUG][       Thread-253780][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:48:52,093 [DEBUG][       Thread-253780][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:48:52,093 [DEBUG][       Thread-253780][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:48:52,093 [DEBUG][       Thread-253780][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:48:52,093 [DEBUG][       Thread-253780][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 11:48:52,093 [DEBUG][       Thread-253780][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 11:48:52,093 [DEBUG][       Thread-253780][   transport.py][1871] : client lang: <none>
2025-06-13 11:48:52,093 [DEBUG][       Thread-253780][   transport.py][1871] : server lang: <none>
2025-06-13 11:48:52,093 [DEBUG][       Thread-253780][   transport.py][1871] : kex follows: False
2025-06-13 11:48:52,093 [DEBUG][       Thread-253780][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 11:48:52,093 [DEBUG][       Thread-253780][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 11:48:52,093 [DEBUG][       Thread-253780][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 11:48:52,093 [DEBUG][       Thread-253780][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 11:48:52,093 [DEBUG][       Thread-253780][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 11:48:52,093 [DEBUG][       Thread-253780][   transport.py][1871] : Compression: none
2025-06-13 11:48:52,093 [DEBUG][       Thread-253780][   transport.py][1871] : === End of kex handshake ===
2025-06-13 11:48:52,153 [DEBUG][       Thread-253780][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 11:48:52,153 [DEBUG][       Thread-253780][   transport.py][1871] : Switch to new keys ...
2025-06-13 11:48:52,153 [DEBUG][       Thread-253780][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 11:48:52,153 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 11:48:52,153 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 11:48:52,211 [DEBUG][       Thread-253780][   transport.py][1871] : userauth is OK
2025-06-13 11:48:52,211 [DEBUG][       Thread-253780][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 11:48:52,211 [DEBUG][       Thread-253780][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 11:48:52,211 [DEBUG][       Thread-253780][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 11:48:52,211 [DEBUG][       Thread-253780][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 11:48:52,225 [ INFO][       Thread-253780][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 11:48:52,225 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 11:48:52,225 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 11:48:53,265 [DEBUG][       Thread-253780][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 11:48:53,265 [DEBUG][       Thread-253780][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 11:48:53,316 [DEBUG][       Thread-253780][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 11:48:53,316 [DEBUG][       Thread-253780][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 11:48:53,325 [DEBUG][       Thread-253780][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 11:48:53,335 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 11:48:53,335 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 11:48:53,344 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 11:48:53,353 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 11:48:53,353 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 11:48:53,354 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 11:48:53,362 [DEBUG][       Thread-253780][   transport.py][1871] : EOF in transport thread
2025-06-13 11:48:58,810 [DEBUG][Thread-253782 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:49:03,364 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 11:49:03,364 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 11:49:03,364 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 11:49:03,365 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 11:49:03,827 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 11, 48, 50), 12.07, 43.1, 0.0, 20.4, 10.95, 0, 0, 0, 2, 0, 0),)
2025-06-13 11:49:03,827 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 11:48:50
2025-06-13 11:49:03,908 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 11:49:03,912 [DEBUG][       Thread-253783][   transport.py][1871] : starting thread (client mode): 0x84204a90
2025-06-13 11:49:03,912 [DEBUG][       Thread-253783][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 11:49:03,933 [DEBUG][       Thread-253783][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 11:49:03,933 [ INFO][       Thread-253783][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 11:49:03,936 [DEBUG][       Thread-253783][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 11:49:03,936 [DEBUG][       Thread-253783][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 11:49:03,936 [DEBUG][       Thread-253783][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 11:49:03,936 [DEBUG][       Thread-253783][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:49:03,936 [DEBUG][       Thread-253783][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:49:03,936 [DEBUG][       Thread-253783][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:49:03,937 [DEBUG][       Thread-253783][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:49:03,937 [DEBUG][       Thread-253783][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 11:49:03,937 [DEBUG][       Thread-253783][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 11:49:03,937 [DEBUG][       Thread-253783][   transport.py][1871] : client lang: <none>
2025-06-13 11:49:03,937 [DEBUG][       Thread-253783][   transport.py][1871] : server lang: <none>
2025-06-13 11:49:03,937 [DEBUG][       Thread-253783][   transport.py][1871] : kex follows: False
2025-06-13 11:49:03,937 [DEBUG][       Thread-253783][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 11:49:03,937 [DEBUG][       Thread-253783][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 11:49:03,937 [DEBUG][       Thread-253783][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 11:49:03,937 [DEBUG][       Thread-253783][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 11:49:03,937 [DEBUG][       Thread-253783][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 11:49:03,937 [DEBUG][       Thread-253783][   transport.py][1871] : Compression: none
2025-06-13 11:49:03,937 [DEBUG][       Thread-253783][   transport.py][1871] : === End of kex handshake ===
2025-06-13 11:49:03,953 [DEBUG][       Thread-253783][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 11:49:03,954 [DEBUG][       Thread-253783][   transport.py][1871] : Switch to new keys ...
2025-06-13 11:49:03,954 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 11:49:03,955 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 11:49:03,955 [DEBUG][       Thread-253783][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 11:49:03,956 [DEBUG][       Thread-253783][   transport.py][1871] : userauth is OK
2025-06-13 11:49:03,969 [ INFO][       Thread-253783][   transport.py][1871] : Authentication (password) successful!
2025-06-13 11:49:03,969 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 11:49:04,612 [DEBUG][       Thread-253783][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 11:49:04,612 [DEBUG][       Thread-253783][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 11:49:04,653 [DEBUG][       Thread-253783][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 11:49:04,653 [DEBUG][       Thread-253783][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 11:49:04,657 [DEBUG][       Thread-253783][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 11:49:04,669 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 11:49:04,669 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 11:49:04,671 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 11:49:04,673 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 11:49:04,679 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 11:49:04,682 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 11:49:04,682 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 11:49:04,682 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 11:49:04,683 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.408619 -999.00  +10.90  19.04     48   +0.50 1 1 1 1 1   888    0 11.97 66.79 ----- 23.1 19.0 40.6 30.2 15.3 -27.9 13.9 -29.8 13.5 -27.5 14.9 -26.6
2025-06-13 11:49:04,683 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 11:49:04,683 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 11:49:04,683 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.408619
2025-06-13 11:49:04,683 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 11:49:04,684 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 11:49:04,684 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 11:49:04,684 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 11:49:04,684 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 11:49:04,684 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T11:48:50', tmtdew=12.07, humidity=43.1, cloud=0.0, wind=20.4, temperature=10.95, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T09:48:24.682', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 11:49:04,686 [DEBUG][       Thread-253783][   transport.py][1871] : EOF in transport thread
2025-06-13 11:49:04,768 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 11:49:04,781 [DEBUG][       Thread-253786][   transport.py][1871] : starting thread (client mode): 0x86369f00
2025-06-13 11:49:04,781 [DEBUG][       Thread-253786][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 11:49:04,796 [DEBUG][       Thread-253786][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 11:49:04,796 [ INFO][       Thread-253786][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 11:49:04,807 [DEBUG][       Thread-253786][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 11:49:04,807 [DEBUG][       Thread-253786][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 11:49:04,807 [DEBUG][       Thread-253786][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 11:49:04,807 [DEBUG][       Thread-253786][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:49:04,807 [DEBUG][       Thread-253786][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:49:04,807 [DEBUG][       Thread-253786][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:49:04,807 [DEBUG][       Thread-253786][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:49:04,807 [DEBUG][       Thread-253786][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 11:49:04,807 [DEBUG][       Thread-253786][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 11:49:04,807 [DEBUG][       Thread-253786][   transport.py][1871] : client lang: <none>
2025-06-13 11:49:04,807 [DEBUG][       Thread-253786][   transport.py][1871] : server lang: <none>
2025-06-13 11:49:04,807 [DEBUG][       Thread-253786][   transport.py][1871] : kex follows: False
2025-06-13 11:49:04,807 [DEBUG][       Thread-253786][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 11:49:04,808 [DEBUG][       Thread-253786][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 11:49:04,808 [DEBUG][       Thread-253786][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 11:49:04,808 [DEBUG][       Thread-253786][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 11:49:04,808 [DEBUG][       Thread-253786][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 11:49:04,808 [DEBUG][       Thread-253786][   transport.py][1871] : Compression: none
2025-06-13 11:49:04,808 [DEBUG][       Thread-253786][   transport.py][1871] : === End of kex handshake ===
2025-06-13 11:49:04,868 [DEBUG][       Thread-253786][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 11:49:04,868 [DEBUG][       Thread-253786][   transport.py][1871] : Switch to new keys ...
2025-06-13 11:49:04,869 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 11:49:04,870 [DEBUG][       Thread-253786][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 11:49:04,870 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 11:49:04,923 [DEBUG][       Thread-253786][   transport.py][1871] : userauth is OK
2025-06-13 11:49:04,923 [DEBUG][       Thread-253786][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 11:49:04,924 [DEBUG][       Thread-253786][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 11:49:04,924 [DEBUG][       Thread-253786][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 11:49:04,924 [DEBUG][       Thread-253786][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 11:49:04,950 [ INFO][       Thread-253786][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 11:49:04,950 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 11:49:04,950 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 11:49:05,974 [DEBUG][       Thread-253786][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 11:49:05,975 [DEBUG][       Thread-253786][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 11:49:06,025 [DEBUG][       Thread-253786][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 11:49:06,025 [DEBUG][       Thread-253786][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 11:49:06,034 [DEBUG][       Thread-253786][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 11:49:06,043 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 11:49:06,044 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 11:49:06,052 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 11:49:06,063 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 11:49:06,063 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 11:49:06,064 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 11:49:06,074 [DEBUG][       Thread-253786][   transport.py][1871] : EOF in transport thread
2025-06-13 11:49:07,829 [DEBUG][Thread-253788 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:49:10,273 [DEBUG][Thread-253789 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:49:16,072 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 11:49:16,072 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 11:49:16,072 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 11:49:16,075 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 11:49:16,545 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 11, 48, 50), 12.07, 43.1, 0.0, 20.4, 10.95, 0, 0, 0, 2, 0, 0),)
2025-06-13 11:49:16,545 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 11:48:50
2025-06-13 11:49:16,626 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 11:49:16,630 [DEBUG][       Thread-253790][   transport.py][1871] : starting thread (client mode): 0x84207460
2025-06-13 11:49:16,630 [DEBUG][       Thread-253790][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 11:49:16,645 [DEBUG][       Thread-253790][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 11:49:16,645 [ INFO][       Thread-253790][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 11:49:16,649 [DEBUG][       Thread-253790][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 11:49:16,649 [DEBUG][       Thread-253790][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 11:49:16,649 [DEBUG][       Thread-253790][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 11:49:16,649 [DEBUG][       Thread-253790][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:49:16,649 [DEBUG][       Thread-253790][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:49:16,649 [DEBUG][       Thread-253790][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:49:16,649 [DEBUG][       Thread-253790][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:49:16,649 [DEBUG][       Thread-253790][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 11:49:16,649 [DEBUG][       Thread-253790][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 11:49:16,649 [DEBUG][       Thread-253790][   transport.py][1871] : client lang: <none>
2025-06-13 11:49:16,649 [DEBUG][       Thread-253790][   transport.py][1871] : server lang: <none>
2025-06-13 11:49:16,649 [DEBUG][       Thread-253790][   transport.py][1871] : kex follows: False
2025-06-13 11:49:16,649 [DEBUG][       Thread-253790][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 11:49:16,649 [DEBUG][       Thread-253790][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 11:49:16,649 [DEBUG][       Thread-253790][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 11:49:16,649 [DEBUG][       Thread-253790][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 11:49:16,649 [DEBUG][       Thread-253790][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 11:49:16,649 [DEBUG][       Thread-253790][   transport.py][1871] : Compression: none
2025-06-13 11:49:16,649 [DEBUG][       Thread-253790][   transport.py][1871] : === End of kex handshake ===
2025-06-13 11:49:16,661 [DEBUG][       Thread-253790][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 11:49:16,661 [DEBUG][       Thread-253790][   transport.py][1871] : Switch to new keys ...
2025-06-13 11:49:16,661 [DEBUG][       Thread-253790][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 11:49:16,662 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 11:49:16,662 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 11:49:16,663 [DEBUG][       Thread-253790][   transport.py][1871] : userauth is OK
2025-06-13 11:49:16,675 [ INFO][       Thread-253790][   transport.py][1871] : Authentication (password) successful!
2025-06-13 11:49:16,676 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 11:49:16,864 [DEBUG][Thread-253792 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:49:17,467 [DEBUG][       Thread-253790][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 11:49:17,468 [DEBUG][       Thread-253790][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 11:49:17,509 [DEBUG][       Thread-253790][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 11:49:17,509 [DEBUG][       Thread-253790][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 11:49:17,512 [DEBUG][       Thread-253790][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 11:49:17,522 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 11:49:17,523 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 11:49:17,524 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 11:49:17,526 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 11:49:17,530 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 11:49:17,531 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 11:49:17,532 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 11:49:17,532 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 11:49:17,532 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.408619 -999.00  +10.90  19.04     48   +0.50 1 1 1 1 1   888    0 11.97 66.79 ----- 23.1 19.0 40.6 30.2 15.3 -27.9 13.9 -29.8 13.5 -27.5 14.9 -26.6
2025-06-13 11:49:17,532 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 11:49:17,532 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 11:49:17,533 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.408619
2025-06-13 11:49:17,533 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 11:49:17,533 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 11:49:17,533 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 11:49:17,534 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 11:49:17,534 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 11:49:17,534 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T11:48:50', tmtdew=12.07, humidity=43.1, cloud=0.0, wind=20.4, temperature=10.95, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T09:48:24.682', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 11:49:17,535 [DEBUG][       Thread-253790][   transport.py][1871] : EOF in transport thread
2025-06-13 11:49:17,617 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 11:49:17,628 [DEBUG][       Thread-253794][   transport.py][1871] : starting thread (client mode): 0x867fce20
2025-06-13 11:49:17,629 [DEBUG][       Thread-253794][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 11:49:17,644 [DEBUG][       Thread-253794][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 11:49:17,644 [ INFO][       Thread-253794][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 11:49:17,651 [DEBUG][       Thread-253794][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 11:49:17,651 [DEBUG][       Thread-253794][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 11:49:17,652 [DEBUG][       Thread-253794][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 11:49:17,652 [DEBUG][       Thread-253794][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:49:17,652 [DEBUG][       Thread-253794][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:49:17,652 [DEBUG][       Thread-253794][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:49:17,652 [DEBUG][       Thread-253794][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:49:17,652 [DEBUG][       Thread-253794][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 11:49:17,652 [DEBUG][       Thread-253794][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 11:49:17,652 [DEBUG][       Thread-253794][   transport.py][1871] : client lang: <none>
2025-06-13 11:49:17,652 [DEBUG][       Thread-253794][   transport.py][1871] : server lang: <none>
2025-06-13 11:49:17,652 [DEBUG][       Thread-253794][   transport.py][1871] : kex follows: False
2025-06-13 11:49:17,652 [DEBUG][       Thread-253794][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 11:49:17,652 [DEBUG][       Thread-253794][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 11:49:17,652 [DEBUG][       Thread-253794][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 11:49:17,652 [DEBUG][       Thread-253794][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 11:49:17,652 [DEBUG][       Thread-253794][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 11:49:17,652 [DEBUG][       Thread-253794][   transport.py][1871] : Compression: none
2025-06-13 11:49:17,652 [DEBUG][       Thread-253794][   transport.py][1871] : === End of kex handshake ===
2025-06-13 11:49:17,710 [DEBUG][       Thread-253794][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 11:49:17,711 [DEBUG][       Thread-253794][   transport.py][1871] : Switch to new keys ...
2025-06-13 11:49:17,711 [DEBUG][       Thread-253794][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 11:49:17,711 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 11:49:17,712 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 11:49:17,777 [DEBUG][       Thread-253794][   transport.py][1871] : userauth is OK
2025-06-13 11:49:17,777 [DEBUG][       Thread-253794][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 11:49:17,777 [DEBUG][       Thread-253794][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 11:49:17,777 [DEBUG][       Thread-253794][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 11:49:17,777 [DEBUG][       Thread-253794][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 11:49:17,795 [ INFO][       Thread-253794][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 11:49:17,796 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 11:49:17,796 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 11:49:18,813 [DEBUG][       Thread-253794][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 11:49:18,813 [DEBUG][       Thread-253794][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 11:49:18,865 [DEBUG][       Thread-253794][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 11:49:18,865 [DEBUG][       Thread-253794][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 11:49:18,876 [DEBUG][       Thread-253794][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 11:49:18,892 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 11:49:18,892 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 11:49:18,901 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 11:49:18,910 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 11:49:18,911 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 11:49:18,911 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 11:49:18,922 [DEBUG][       Thread-253794][   transport.py][1871] : EOF in transport thread
2025-06-13 11:49:25,883 [DEBUG][Thread-253796 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:49:28,921 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 11:49:28,922 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 11:49:28,922 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 11:49:28,925 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 11:49:29,380 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 11, 49, 22), 11.94, 43.74, 0.0, 16.02, 10.96, 0, 0, 0, 2, 0, 0),)
2025-06-13 11:49:29,380 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 11:49:22
2025-06-13 11:49:29,460 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 11:49:29,463 [DEBUG][       Thread-253797][   transport.py][1871] : starting thread (client mode): 0x842064d0
2025-06-13 11:49:29,463 [DEBUG][       Thread-253797][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 11:49:29,490 [DEBUG][       Thread-253797][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 11:49:29,490 [ INFO][       Thread-253797][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 11:49:29,491 [DEBUG][       Thread-253797][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 11:49:29,491 [DEBUG][       Thread-253797][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 11:49:29,491 [DEBUG][       Thread-253797][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 11:49:29,491 [DEBUG][       Thread-253797][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:49:29,491 [DEBUG][       Thread-253797][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:49:29,491 [DEBUG][       Thread-253797][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:49:29,491 [DEBUG][       Thread-253797][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:49:29,491 [DEBUG][       Thread-253797][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 11:49:29,491 [DEBUG][       Thread-253797][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 11:49:29,491 [DEBUG][       Thread-253797][   transport.py][1871] : client lang: <none>
2025-06-13 11:49:29,491 [DEBUG][       Thread-253797][   transport.py][1871] : server lang: <none>
2025-06-13 11:49:29,491 [DEBUG][       Thread-253797][   transport.py][1871] : kex follows: False
2025-06-13 11:49:29,491 [DEBUG][       Thread-253797][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 11:49:29,491 [DEBUG][       Thread-253797][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 11:49:29,491 [DEBUG][       Thread-253797][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 11:49:29,491 [DEBUG][       Thread-253797][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 11:49:29,492 [DEBUG][       Thread-253797][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 11:49:29,492 [DEBUG][       Thread-253797][   transport.py][1871] : Compression: none
2025-06-13 11:49:29,492 [DEBUG][       Thread-253797][   transport.py][1871] : === End of kex handshake ===
2025-06-13 11:49:29,501 [DEBUG][       Thread-253797][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 11:49:29,502 [DEBUG][       Thread-253797][   transport.py][1871] : Switch to new keys ...
2025-06-13 11:49:29,502 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 11:49:29,502 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 11:49:29,503 [DEBUG][       Thread-253797][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 11:49:29,504 [DEBUG][       Thread-253797][   transport.py][1871] : userauth is OK
2025-06-13 11:49:29,517 [ INFO][       Thread-253797][   transport.py][1871] : Authentication (password) successful!
2025-06-13 11:49:29,518 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 11:49:30,123 [DEBUG][       Thread-253797][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 11:49:30,124 [DEBUG][       Thread-253797][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 11:49:30,165 [DEBUG][       Thread-253797][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 11:49:30,165 [DEBUG][       Thread-253797][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 11:49:30,167 [DEBUG][       Thread-253797][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 11:49:30,173 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 11:49:30,173 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 11:49:30,175 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 11:49:30,177 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 11:49:30,182 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 11:49:30,184 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 11:49:30,184 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 11:49:30,185 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 11:49:30,185 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.408966 -999.00  +11.00  22.15     47   +0.30 1 1 1 1 1   888    0 11.89 61.66 ----- 17.8 22.1 53.8 27.4 15.4 -28.2 14.0 -30.0 13.6 -29.0 14.9 -26.5
2025-06-13 11:49:30,185 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 11:49:30,185 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 11:49:30,185 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.408966
2025-06-13 11:49:30,186 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 11:49:30,186 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 11:49:30,186 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 11:49:30,186 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 11:49:30,186 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 11:49:30,187 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T11:49:22', tmtdew=11.94, humidity=43.74, cloud=0.0, wind=16.02, temperature=10.96, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T09:48:54.662', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 11:49:30,188 [DEBUG][       Thread-253797][   transport.py][1871] : EOF in transport thread
2025-06-13 11:49:30,270 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 11:49:30,281 [DEBUG][       Thread-253800][   transport.py][1871] : starting thread (client mode): 0x863a5b70
2025-06-13 11:49:30,281 [DEBUG][       Thread-253800][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 11:49:30,297 [DEBUG][       Thread-253800][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 11:49:30,297 [ INFO][       Thread-253800][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 11:49:30,305 [DEBUG][       Thread-253800][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 11:49:30,305 [DEBUG][       Thread-253800][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 11:49:30,305 [DEBUG][       Thread-253800][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 11:49:30,305 [DEBUG][       Thread-253800][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:49:30,305 [DEBUG][       Thread-253800][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:49:30,305 [DEBUG][       Thread-253800][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:49:30,305 [DEBUG][       Thread-253800][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:49:30,305 [DEBUG][       Thread-253800][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 11:49:30,305 [DEBUG][       Thread-253800][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 11:49:30,306 [DEBUG][       Thread-253800][   transport.py][1871] : client lang: <none>
2025-06-13 11:49:30,306 [DEBUG][       Thread-253800][   transport.py][1871] : server lang: <none>
2025-06-13 11:49:30,306 [DEBUG][       Thread-253800][   transport.py][1871] : kex follows: False
2025-06-13 11:49:30,306 [DEBUG][       Thread-253800][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 11:49:30,306 [DEBUG][       Thread-253800][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 11:49:30,306 [DEBUG][       Thread-253800][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 11:49:30,306 [DEBUG][       Thread-253800][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 11:49:30,306 [DEBUG][       Thread-253800][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 11:49:30,306 [DEBUG][       Thread-253800][   transport.py][1871] : Compression: none
2025-06-13 11:49:30,306 [DEBUG][       Thread-253800][   transport.py][1871] : === End of kex handshake ===
2025-06-13 11:49:30,363 [DEBUG][       Thread-253800][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 11:49:30,364 [DEBUG][       Thread-253800][   transport.py][1871] : Switch to new keys ...
2025-06-13 11:49:30,364 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 11:49:30,365 [DEBUG][       Thread-253800][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 11:49:30,366 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 11:49:30,419 [DEBUG][       Thread-253800][   transport.py][1871] : userauth is OK
2025-06-13 11:49:30,419 [DEBUG][       Thread-253800][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 11:49:30,419 [DEBUG][       Thread-253800][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 11:49:30,419 [DEBUG][       Thread-253800][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 11:49:30,419 [DEBUG][       Thread-253800][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 11:49:30,439 [ INFO][       Thread-253800][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 11:49:30,440 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 11:49:30,440 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 11:49:31,820 [DEBUG][       Thread-253800][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 11:49:31,821 [DEBUG][       Thread-253800][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 11:49:31,872 [DEBUG][       Thread-253800][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 11:49:31,872 [DEBUG][       Thread-253800][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 11:49:31,881 [DEBUG][       Thread-253800][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 11:49:31,892 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 11:49:31,892 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 11:49:31,901 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 11:49:31,910 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 11:49:31,910 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 11:49:31,911 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 11:49:31,919 [DEBUG][       Thread-253800][   transport.py][1871] : EOF in transport thread
2025-06-13 11:49:34,906 [DEBUG][Thread-253802 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:49:38,088 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:49:38,089 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:49:41,921 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 11:49:41,922 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 11:49:41,922 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 11:49:41,924 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 11:49:42,385 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 11, 49, 22), 11.94, 43.74, 0.0, 16.02, 10.96, 0, 0, 0, 2, 0, 0),)
2025-06-13 11:49:42,385 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 11:49:22
2025-06-13 11:49:42,467 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 11:49:42,471 [DEBUG][       Thread-253803][   transport.py][1871] : starting thread (client mode): 0x863bd240
2025-06-13 11:49:42,471 [DEBUG][       Thread-253803][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 11:49:42,485 [DEBUG][       Thread-253803][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 11:49:42,485 [ INFO][       Thread-253803][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 11:49:42,488 [DEBUG][       Thread-253803][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 11:49:42,488 [DEBUG][       Thread-253803][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 11:49:42,488 [DEBUG][       Thread-253803][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 11:49:42,488 [DEBUG][       Thread-253803][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:49:42,488 [DEBUG][       Thread-253803][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:49:42,488 [DEBUG][       Thread-253803][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:49:42,489 [DEBUG][       Thread-253803][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:49:42,489 [DEBUG][       Thread-253803][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 11:49:42,489 [DEBUG][       Thread-253803][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 11:49:42,489 [DEBUG][       Thread-253803][   transport.py][1871] : client lang: <none>
2025-06-13 11:49:42,489 [DEBUG][       Thread-253803][   transport.py][1871] : server lang: <none>
2025-06-13 11:49:42,489 [DEBUG][       Thread-253803][   transport.py][1871] : kex follows: False
2025-06-13 11:49:42,489 [DEBUG][       Thread-253803][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 11:49:42,489 [DEBUG][       Thread-253803][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 11:49:42,489 [DEBUG][       Thread-253803][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 11:49:42,489 [DEBUG][       Thread-253803][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 11:49:42,489 [DEBUG][       Thread-253803][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 11:49:42,489 [DEBUG][       Thread-253803][   transport.py][1871] : Compression: none
2025-06-13 11:49:42,489 [DEBUG][       Thread-253803][   transport.py][1871] : === End of kex handshake ===
2025-06-13 11:49:42,509 [DEBUG][       Thread-253803][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 11:49:42,510 [DEBUG][       Thread-253803][   transport.py][1871] : Switch to new keys ...
2025-06-13 11:49:42,510 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 11:49:42,511 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 11:49:42,511 [DEBUG][       Thread-253803][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 11:49:42,512 [DEBUG][       Thread-253803][   transport.py][1871] : userauth is OK
2025-06-13 11:49:42,537 [ INFO][       Thread-253803][   transport.py][1871] : Authentication (password) successful!
2025-06-13 11:49:42,537 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 11:49:43,277 [DEBUG][       Thread-253803][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 11:49:43,278 [DEBUG][       Thread-253803][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 11:49:43,321 [DEBUG][       Thread-253803][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 11:49:43,321 [DEBUG][       Thread-253803][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 11:49:43,324 [DEBUG][       Thread-253803][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 11:49:43,338 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 11:49:43,339 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 11:49:43,341 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 11:49:43,342 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 11:49:43,348 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 11:49:43,349 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 11:49:43,350 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 11:49:43,350 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 11:49:43,351 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.408966 -999.00  +11.00  22.15     47   +0.30 1 1 1 1 1   888    0 11.89 61.66 ----- 17.8 22.1 53.8 27.4 15.4 -28.2 14.0 -30.0 13.6 -29.0 14.9 -26.5
2025-06-13 11:49:43,351 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 11:49:43,351 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 11:49:43,351 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.408966
2025-06-13 11:49:43,351 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 11:49:43,352 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 11:49:43,352 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 11:49:43,352 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 11:49:43,352 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 11:49:43,352 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T11:49:22', tmtdew=11.94, humidity=43.74, cloud=0.0, wind=16.02, temperature=10.96, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T09:48:54.662', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 11:49:43,353 [DEBUG][       Thread-253803][   transport.py][1871] : EOF in transport thread
2025-06-13 11:49:43,436 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 11:49:43,447 [DEBUG][       Thread-253806][   transport.py][1871] : starting thread (client mode): 0x863a5b70
2025-06-13 11:49:43,447 [DEBUG][       Thread-253806][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 11:49:43,464 [DEBUG][       Thread-253806][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 11:49:43,464 [ INFO][       Thread-253806][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 11:49:43,476 [DEBUG][       Thread-253806][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 11:49:43,477 [DEBUG][       Thread-253806][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 11:49:43,477 [DEBUG][       Thread-253806][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 11:49:43,477 [DEBUG][       Thread-253806][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:49:43,477 [DEBUG][       Thread-253806][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:49:43,477 [DEBUG][       Thread-253806][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:49:43,477 [DEBUG][       Thread-253806][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:49:43,477 [DEBUG][       Thread-253806][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 11:49:43,477 [DEBUG][       Thread-253806][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 11:49:43,477 [DEBUG][       Thread-253806][   transport.py][1871] : client lang: <none>
2025-06-13 11:49:43,477 [DEBUG][       Thread-253806][   transport.py][1871] : server lang: <none>
2025-06-13 11:49:43,477 [DEBUG][       Thread-253806][   transport.py][1871] : kex follows: False
2025-06-13 11:49:43,477 [DEBUG][       Thread-253806][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 11:49:43,477 [DEBUG][       Thread-253806][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 11:49:43,477 [DEBUG][       Thread-253806][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 11:49:43,477 [DEBUG][       Thread-253806][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 11:49:43,478 [DEBUG][       Thread-253806][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 11:49:43,478 [DEBUG][       Thread-253806][   transport.py][1871] : Compression: none
2025-06-13 11:49:43,478 [DEBUG][       Thread-253806][   transport.py][1871] : === End of kex handshake ===
2025-06-13 11:49:43,534 [DEBUG][       Thread-253806][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 11:49:43,535 [DEBUG][       Thread-253806][   transport.py][1871] : Switch to new keys ...
2025-06-13 11:49:43,535 [DEBUG][       Thread-253806][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 11:49:43,536 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 11:49:43,536 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 11:49:43,591 [DEBUG][       Thread-253806][   transport.py][1871] : userauth is OK
2025-06-13 11:49:43,591 [DEBUG][       Thread-253806][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 11:49:43,592 [DEBUG][       Thread-253806][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 11:49:43,592 [DEBUG][       Thread-253806][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 11:49:43,592 [DEBUG][       Thread-253806][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 11:49:43,611 [ INFO][       Thread-253806][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 11:49:43,611 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 11:49:43,612 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 11:49:43,941 [DEBUG][Thread-253808 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:49:44,259 [DEBUG][Thread-253809 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:49:45,104 [DEBUG][       Thread-253806][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 11:49:45,105 [DEBUG][       Thread-253806][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 11:49:45,155 [DEBUG][       Thread-253806][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 11:49:45,156 [DEBUG][       Thread-253806][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 11:49:45,168 [DEBUG][       Thread-253806][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 11:49:45,187 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 11:49:45,188 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 11:49:45,199 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 11:49:45,208 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 11:49:45,209 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 11:49:45,209 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 11:49:45,222 [DEBUG][       Thread-253806][   transport.py][1871] : EOF in transport thread
2025-06-13 11:49:45,309 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:49:45,310 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:49:52,963 [DEBUG][Thread-253810 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:49:55,216 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 11:49:55,216 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 11:49:55,216 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 11:49:55,217 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 11:49:55,725 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 11, 49, 22), 11.94, 43.74, 0.0, 16.02, 10.96, 0, 0, 0, 2, 0, 0),)
2025-06-13 11:49:55,725 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 11:49:22
2025-06-13 11:49:55,811 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 11:49:55,814 [DEBUG][       Thread-253811][   transport.py][1871] : starting thread (client mode): 0x842064a0
2025-06-13 11:49:55,814 [DEBUG][       Thread-253811][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 11:49:55,835 [DEBUG][       Thread-253811][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 11:49:55,835 [ INFO][       Thread-253811][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 11:49:55,836 [DEBUG][       Thread-253811][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 11:49:55,836 [DEBUG][       Thread-253811][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 11:49:55,836 [DEBUG][       Thread-253811][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 11:49:55,836 [DEBUG][       Thread-253811][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:49:55,836 [DEBUG][       Thread-253811][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:49:55,836 [DEBUG][       Thread-253811][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:49:55,836 [DEBUG][       Thread-253811][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:49:55,836 [DEBUG][       Thread-253811][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 11:49:55,836 [DEBUG][       Thread-253811][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 11:49:55,836 [DEBUG][       Thread-253811][   transport.py][1871] : client lang: <none>
2025-06-13 11:49:55,836 [DEBUG][       Thread-253811][   transport.py][1871] : server lang: <none>
2025-06-13 11:49:55,836 [DEBUG][       Thread-253811][   transport.py][1871] : kex follows: False
2025-06-13 11:49:55,836 [DEBUG][       Thread-253811][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 11:49:55,836 [DEBUG][       Thread-253811][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 11:49:55,836 [DEBUG][       Thread-253811][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 11:49:55,837 [DEBUG][       Thread-253811][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 11:49:55,837 [DEBUG][       Thread-253811][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 11:49:55,837 [DEBUG][       Thread-253811][   transport.py][1871] : Compression: none
2025-06-13 11:49:55,837 [DEBUG][       Thread-253811][   transport.py][1871] : === End of kex handshake ===
2025-06-13 11:49:55,848 [DEBUG][       Thread-253811][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 11:49:55,848 [DEBUG][       Thread-253811][   transport.py][1871] : Switch to new keys ...
2025-06-13 11:49:55,848 [DEBUG][       Thread-253811][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 11:49:55,848 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 11:49:55,848 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 11:49:55,849 [DEBUG][       Thread-253811][   transport.py][1871] : userauth is OK
2025-06-13 11:49:55,861 [ INFO][       Thread-253811][   transport.py][1871] : Authentication (password) successful!
2025-06-13 11:49:55,862 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 11:49:56,633 [DEBUG][       Thread-253811][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 11:49:56,633 [DEBUG][       Thread-253811][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 11:49:56,677 [DEBUG][       Thread-253811][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 11:49:56,677 [DEBUG][       Thread-253811][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 11:49:56,681 [DEBUG][       Thread-253811][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 11:49:56,694 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 11:49:56,694 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 11:49:56,696 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 11:49:56,698 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 11:49:56,704 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 11:49:56,706 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 11:49:56,706 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 11:49:56,707 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 11:49:56,707 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.408966 -999.00  +11.00  22.15     47   +0.30 1 1 1 1 1   888    0 11.89 61.66 ----- 17.8 22.1 53.8 27.4 15.4 -28.2 14.0 -30.0 13.6 -29.0 14.9 -26.5
2025-06-13 11:49:56,707 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 11:49:56,707 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 11:49:56,707 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.408966
2025-06-13 11:49:56,708 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 11:49:56,708 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 11:49:56,708 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 11:49:56,708 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 11:49:56,709 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 11:49:56,709 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T11:49:22', tmtdew=11.94, humidity=43.74, cloud=0.0, wind=16.02, temperature=10.96, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T09:48:54.662', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 11:49:56,710 [DEBUG][       Thread-253811][   transport.py][1871] : EOF in transport thread
2025-06-13 11:49:56,792 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 11:49:56,802 [DEBUG][       Thread-253814][   transport.py][1871] : starting thread (client mode): 0x867b6320
2025-06-13 11:49:56,802 [DEBUG][       Thread-253814][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 11:49:56,817 [DEBUG][       Thread-253814][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 11:49:56,817 [ INFO][       Thread-253814][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 11:49:56,825 [DEBUG][       Thread-253814][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 11:49:56,825 [DEBUG][       Thread-253814][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 11:49:56,825 [DEBUG][       Thread-253814][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 11:49:56,825 [DEBUG][       Thread-253814][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:49:56,826 [DEBUG][       Thread-253814][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:49:56,826 [DEBUG][       Thread-253814][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:49:56,826 [DEBUG][       Thread-253814][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:49:56,826 [DEBUG][       Thread-253814][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 11:49:56,826 [DEBUG][       Thread-253814][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 11:49:56,826 [DEBUG][       Thread-253814][   transport.py][1871] : client lang: <none>
2025-06-13 11:49:56,826 [DEBUG][       Thread-253814][   transport.py][1871] : server lang: <none>
2025-06-13 11:49:56,826 [DEBUG][       Thread-253814][   transport.py][1871] : kex follows: False
2025-06-13 11:49:56,826 [DEBUG][       Thread-253814][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 11:49:56,826 [DEBUG][       Thread-253814][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 11:49:56,826 [DEBUG][       Thread-253814][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 11:49:56,826 [DEBUG][       Thread-253814][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 11:49:56,826 [DEBUG][       Thread-253814][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 11:49:56,826 [DEBUG][       Thread-253814][   transport.py][1871] : Compression: none
2025-06-13 11:49:56,826 [DEBUG][       Thread-253814][   transport.py][1871] : === End of kex handshake ===
2025-06-13 11:49:56,887 [DEBUG][       Thread-253814][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 11:49:56,887 [DEBUG][       Thread-253814][   transport.py][1871] : Switch to new keys ...
2025-06-13 11:49:56,888 [DEBUG][       Thread-253814][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 11:49:56,888 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 11:49:56,889 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 11:49:56,953 [DEBUG][       Thread-253814][   transport.py][1871] : userauth is OK
2025-06-13 11:49:56,953 [DEBUG][       Thread-253814][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 11:49:56,953 [DEBUG][       Thread-253814][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 11:49:56,954 [DEBUG][       Thread-253814][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 11:49:56,954 [DEBUG][       Thread-253814][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 11:49:56,972 [ INFO][       Thread-253814][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 11:49:56,973 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 11:49:56,973 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 11:49:58,710 [DEBUG][       Thread-253814][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 11:49:58,710 [DEBUG][       Thread-253814][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 11:49:58,760 [DEBUG][       Thread-253814][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 11:49:58,760 [DEBUG][       Thread-253814][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 11:49:58,772 [DEBUG][       Thread-253814][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 11:49:58,781 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 11:49:58,781 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 11:49:58,790 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 11:49:58,800 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 11:49:58,800 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 11:49:58,800 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 11:49:58,814 [DEBUG][       Thread-253814][   transport.py][1871] : EOF in transport thread
2025-06-13 11:50:01,991 [DEBUG][Thread-253816 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:50:08,811 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 11:50:08,811 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 11:50:08,820 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 11:50:08,823 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 11:50:09,290 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 11, 49, 54), 12.12, 43.2, 0.0, 20.12, 11.0, 0, 0, 0, 2, 0, 0),)
2025-06-13 11:50:09,290 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 11:49:54
2025-06-13 11:50:09,371 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 11:50:09,377 [DEBUG][       Thread-253817][   transport.py][1871] : starting thread (client mode): 0x842064a0
2025-06-13 11:50:09,377 [DEBUG][       Thread-253817][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 11:50:09,399 [DEBUG][       Thread-253817][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 11:50:09,400 [ INFO][       Thread-253817][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 11:50:09,403 [DEBUG][       Thread-253817][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 11:50:09,403 [DEBUG][       Thread-253817][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 11:50:09,403 [DEBUG][       Thread-253817][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 11:50:09,403 [DEBUG][       Thread-253817][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:50:09,404 [DEBUG][       Thread-253817][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:50:09,404 [DEBUG][       Thread-253817][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:50:09,404 [DEBUG][       Thread-253817][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:50:09,404 [DEBUG][       Thread-253817][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 11:50:09,404 [DEBUG][       Thread-253817][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 11:50:09,404 [DEBUG][       Thread-253817][   transport.py][1871] : client lang: <none>
2025-06-13 11:50:09,404 [DEBUG][       Thread-253817][   transport.py][1871] : server lang: <none>
2025-06-13 11:50:09,404 [DEBUG][       Thread-253817][   transport.py][1871] : kex follows: False
2025-06-13 11:50:09,404 [DEBUG][       Thread-253817][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 11:50:09,404 [DEBUG][       Thread-253817][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 11:50:09,404 [DEBUG][       Thread-253817][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 11:50:09,404 [DEBUG][       Thread-253817][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 11:50:09,404 [DEBUG][       Thread-253817][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 11:50:09,404 [DEBUG][       Thread-253817][   transport.py][1871] : Compression: none
2025-06-13 11:50:09,404 [DEBUG][       Thread-253817][   transport.py][1871] : === End of kex handshake ===
2025-06-13 11:50:09,413 [DEBUG][       Thread-253817][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 11:50:09,413 [DEBUG][       Thread-253817][   transport.py][1871] : Switch to new keys ...
2025-06-13 11:50:09,414 [DEBUG][       Thread-253817][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 11:50:09,414 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 11:50:09,414 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 11:50:09,415 [DEBUG][       Thread-253817][   transport.py][1871] : userauth is OK
2025-06-13 11:50:09,427 [ INFO][       Thread-253817][   transport.py][1871] : Authentication (password) successful!
2025-06-13 11:50:09,428 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 11:50:10,324 [DEBUG][Thread-253819 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:50:11,017 [DEBUG][Thread-253820 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:50:12,454 [DEBUG][       Thread-253817][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 11:50:12,454 [DEBUG][       Thread-253817][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 11:50:12,497 [DEBUG][       Thread-253817][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 11:50:12,497 [DEBUG][       Thread-253817][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 11:50:12,500 [DEBUG][       Thread-253817][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 11:50:12,624 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 11:50:12,624 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 11:50:12,626 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 11:50:12,628 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 11:50:12,677 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 11:50:12,679 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 11:50:12,679 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 11:50:12,680 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 11:50:12,680 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.409661 -999.00  +10.90  24.54     47   +0.20 1 1 1 1 1   888    0 12.32 66.80 ----- 25.8 24.5 51.2 29.4 15.3 -28.3 14.0 -30.4 13.5 -28.7 14.9 -26.8
2025-06-13 11:50:12,680 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 11:50:12,680 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 11:50:12,680 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.409661
2025-06-13 11:50:12,681 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 11:50:12,681 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 11:50:12,681 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 11:50:12,681 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 11:50:12,681 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 11:50:12,682 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T11:49:54', tmtdew=12.12, humidity=43.2, cloud=0.0, wind=20.12, temperature=11.0, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T09:49:54.710', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 11:50:12,683 [DEBUG][       Thread-253817][   transport.py][1871] : EOF in transport thread
2025-06-13 11:50:12,766 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 11:50:12,778 [DEBUG][       Thread-253822][   transport.py][1871] : starting thread (client mode): 0x86368790
2025-06-13 11:50:12,778 [DEBUG][       Thread-253822][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 11:50:12,793 [DEBUG][       Thread-253822][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 11:50:12,793 [ INFO][       Thread-253822][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 11:50:12,801 [DEBUG][       Thread-253822][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 11:50:12,801 [DEBUG][       Thread-253822][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 11:50:12,801 [DEBUG][       Thread-253822][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 11:50:12,801 [DEBUG][       Thread-253822][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:50:12,801 [DEBUG][       Thread-253822][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:50:12,801 [DEBUG][       Thread-253822][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:50:12,801 [DEBUG][       Thread-253822][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:50:12,801 [DEBUG][       Thread-253822][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 11:50:12,801 [DEBUG][       Thread-253822][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 11:50:12,801 [DEBUG][       Thread-253822][   transport.py][1871] : client lang: <none>
2025-06-13 11:50:12,801 [DEBUG][       Thread-253822][   transport.py][1871] : server lang: <none>
2025-06-13 11:50:12,801 [DEBUG][       Thread-253822][   transport.py][1871] : kex follows: False
2025-06-13 11:50:12,801 [DEBUG][       Thread-253822][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 11:50:12,801 [DEBUG][       Thread-253822][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 11:50:12,801 [DEBUG][       Thread-253822][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 11:50:12,801 [DEBUG][       Thread-253822][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 11:50:12,801 [DEBUG][       Thread-253822][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 11:50:12,801 [DEBUG][       Thread-253822][   transport.py][1871] : Compression: none
2025-06-13 11:50:12,802 [DEBUG][       Thread-253822][   transport.py][1871] : === End of kex handshake ===
2025-06-13 11:50:12,865 [DEBUG][       Thread-253822][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 11:50:12,866 [DEBUG][       Thread-253822][   transport.py][1871] : Switch to new keys ...
2025-06-13 11:50:12,866 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 11:50:12,867 [DEBUG][       Thread-253822][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 11:50:12,868 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 11:50:12,925 [DEBUG][       Thread-253822][   transport.py][1871] : userauth is OK
2025-06-13 11:50:12,925 [DEBUG][       Thread-253822][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 11:50:12,925 [DEBUG][       Thread-253822][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 11:50:12,925 [DEBUG][       Thread-253822][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 11:50:12,925 [DEBUG][       Thread-253822][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 11:50:12,942 [ INFO][       Thread-253822][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 11:50:12,942 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 11:50:12,942 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 11:50:14,329 [DEBUG][       Thread-253822][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 11:50:14,329 [DEBUG][       Thread-253822][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 11:50:14,380 [DEBUG][       Thread-253822][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 11:50:14,380 [DEBUG][       Thread-253822][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 11:50:14,394 [DEBUG][       Thread-253822][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 11:50:14,407 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 11:50:14,407 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 11:50:14,416 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 11:50:14,425 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 11:50:14,425 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 11:50:14,425 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 11:50:14,433 [DEBUG][       Thread-253822][   transport.py][1871] : EOF in transport thread
2025-06-13 11:50:20,036 [DEBUG][Thread-253824 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:50:24,436 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 11:50:24,436 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 11:50:24,445 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 11:50:24,448 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 11:50:24,901 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 11, 49, 54), 12.12, 43.2, 0.0, 20.12, 11.0, 0, 0, 0, 2, 0, 0),)
2025-06-13 11:50:24,902 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 11:49:54
2025-06-13 11:50:24,981 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 11:50:24,985 [DEBUG][       Thread-253825][   transport.py][1871] : starting thread (client mode): 0x84207e20
2025-06-13 11:50:24,986 [DEBUG][       Thread-253825][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 11:50:25,005 [DEBUG][       Thread-253825][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 11:50:25,005 [ INFO][       Thread-253825][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 11:50:25,008 [DEBUG][       Thread-253825][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 11:50:25,008 [DEBUG][       Thread-253825][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 11:50:25,008 [DEBUG][       Thread-253825][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 11:50:25,008 [DEBUG][       Thread-253825][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:50:25,008 [DEBUG][       Thread-253825][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:50:25,008 [DEBUG][       Thread-253825][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:50:25,008 [DEBUG][       Thread-253825][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:50:25,008 [DEBUG][       Thread-253825][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 11:50:25,008 [DEBUG][       Thread-253825][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 11:50:25,008 [DEBUG][       Thread-253825][   transport.py][1871] : client lang: <none>
2025-06-13 11:50:25,008 [DEBUG][       Thread-253825][   transport.py][1871] : server lang: <none>
2025-06-13 11:50:25,008 [DEBUG][       Thread-253825][   transport.py][1871] : kex follows: False
2025-06-13 11:50:25,008 [DEBUG][       Thread-253825][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 11:50:25,008 [DEBUG][       Thread-253825][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 11:50:25,008 [DEBUG][       Thread-253825][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 11:50:25,008 [DEBUG][       Thread-253825][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 11:50:25,008 [DEBUG][       Thread-253825][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 11:50:25,008 [DEBUG][       Thread-253825][   transport.py][1871] : Compression: none
2025-06-13 11:50:25,008 [DEBUG][       Thread-253825][   transport.py][1871] : === End of kex handshake ===
2025-06-13 11:50:25,024 [DEBUG][       Thread-253825][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 11:50:25,025 [DEBUG][       Thread-253825][   transport.py][1871] : Switch to new keys ...
2025-06-13 11:50:25,025 [DEBUG][       Thread-253825][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 11:50:25,026 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 11:50:25,026 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 11:50:25,027 [DEBUG][       Thread-253825][   transport.py][1871] : userauth is OK
2025-06-13 11:50:25,041 [ INFO][       Thread-253825][   transport.py][1871] : Authentication (password) successful!
2025-06-13 11:50:25,042 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 11:50:26,640 [DEBUG][       Thread-253825][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 11:50:26,640 [DEBUG][       Thread-253825][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 11:50:26,685 [DEBUG][       Thread-253825][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 11:50:26,685 [DEBUG][       Thread-253825][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 11:50:26,687 [DEBUG][       Thread-253825][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 11:50:26,700 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 11:50:26,700 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 11:50:26,700 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 11:50:26,702 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 11:50:26,704 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 11:50:26,705 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 11:50:26,705 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 11:50:26,705 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 11:50:26,705 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.409661 -999.00  +10.90  24.54     47   +0.20 1 1 1 1 1   888    0 12.32 66.80 ----- 25.8 24.5 51.2 29.4 15.3 -28.3 14.0 -30.4 13.5 -28.7 14.9 -26.8
2025-06-13 11:50:26,705 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 11:50:26,705 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 11:50:26,705 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.409661
2025-06-13 11:50:26,705 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 11:50:26,706 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 11:50:26,706 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 11:50:26,706 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 11:50:26,706 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 11:50:26,706 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T11:49:54', tmtdew=12.12, humidity=43.2, cloud=0.0, wind=20.12, temperature=11.0, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T09:49:54.710', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 11:50:26,706 [DEBUG][       Thread-253825][   transport.py][1871] : EOF in transport thread
2025-06-13 11:50:26,780 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 11:50:26,793 [DEBUG][       Thread-253828][   transport.py][1871] : starting thread (client mode): 0x867ffdc0
2025-06-13 11:50:26,793 [DEBUG][       Thread-253828][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 11:50:26,809 [DEBUG][       Thread-253828][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 11:50:26,809 [ INFO][       Thread-253828][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 11:50:26,816 [DEBUG][       Thread-253828][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 11:50:26,816 [DEBUG][       Thread-253828][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 11:50:26,816 [DEBUG][       Thread-253828][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 11:50:26,816 [DEBUG][       Thread-253828][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:50:26,816 [DEBUG][       Thread-253828][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:50:26,816 [DEBUG][       Thread-253828][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:50:26,816 [DEBUG][       Thread-253828][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:50:26,816 [DEBUG][       Thread-253828][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 11:50:26,816 [DEBUG][       Thread-253828][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 11:50:26,816 [DEBUG][       Thread-253828][   transport.py][1871] : client lang: <none>
2025-06-13 11:50:26,816 [DEBUG][       Thread-253828][   transport.py][1871] : server lang: <none>
2025-06-13 11:50:26,816 [DEBUG][       Thread-253828][   transport.py][1871] : kex follows: False
2025-06-13 11:50:26,816 [DEBUG][       Thread-253828][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 11:50:26,816 [DEBUG][       Thread-253828][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 11:50:26,816 [DEBUG][       Thread-253828][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 11:50:26,816 [DEBUG][       Thread-253828][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 11:50:26,816 [DEBUG][       Thread-253828][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 11:50:26,816 [DEBUG][       Thread-253828][   transport.py][1871] : Compression: none
2025-06-13 11:50:26,816 [DEBUG][       Thread-253828][   transport.py][1871] : === End of kex handshake ===
2025-06-13 11:50:26,885 [DEBUG][       Thread-253828][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 11:50:26,885 [DEBUG][       Thread-253828][   transport.py][1871] : Switch to new keys ...
2025-06-13 11:50:26,885 [DEBUG][       Thread-253828][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 11:50:26,885 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 11:50:26,885 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 11:50:26,943 [DEBUG][       Thread-253828][   transport.py][1871] : userauth is OK
2025-06-13 11:50:26,943 [DEBUG][       Thread-253828][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 11:50:26,943 [DEBUG][       Thread-253828][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 11:50:26,943 [DEBUG][       Thread-253828][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 11:50:26,943 [DEBUG][       Thread-253828][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 11:50:26,958 [ INFO][       Thread-253828][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 11:50:26,958 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 11:50:26,958 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 11:50:28,605 [DEBUG][       Thread-253828][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 11:50:28,605 [DEBUG][       Thread-253828][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 11:50:28,656 [DEBUG][       Thread-253828][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 11:50:28,656 [DEBUG][       Thread-253828][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 11:50:28,666 [DEBUG][       Thread-253828][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 11:50:28,677 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 11:50:28,677 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 11:50:28,686 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 11:50:28,696 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 11:50:28,696 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 11:50:28,696 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 11:50:28,704 [DEBUG][       Thread-253828][   transport.py][1871] : EOF in transport thread
2025-06-13 11:50:29,069 [DEBUG][Thread-253830 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:50:38,091 [DEBUG][Thread-253831 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:50:38,227 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:50:38,228 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:50:38,699 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 11:50:38,699 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 11:50:38,699 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 11:50:38,702 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 11:50:39,170 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 11, 50, 25), 12.08, 43.23, 0.0, 19.87, 11.04, 0, 0, 0, 2, 0, 0),)
2025-06-13 11:50:39,170 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 11:50:25
2025-06-13 11:50:39,251 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 11:50:39,255 [DEBUG][       Thread-253832][   transport.py][1871] : starting thread (client mode): 0x84207280
2025-06-13 11:50:39,255 [DEBUG][       Thread-253832][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 11:50:39,276 [DEBUG][       Thread-253832][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 11:50:39,276 [ INFO][       Thread-253832][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 11:50:39,279 [DEBUG][       Thread-253832][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 11:50:39,279 [DEBUG][       Thread-253832][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 11:50:39,279 [DEBUG][       Thread-253832][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 11:50:39,279 [DEBUG][       Thread-253832][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:50:39,279 [DEBUG][       Thread-253832][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:50:39,279 [DEBUG][       Thread-253832][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:50:39,279 [DEBUG][       Thread-253832][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:50:39,279 [DEBUG][       Thread-253832][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 11:50:39,279 [DEBUG][       Thread-253832][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 11:50:39,279 [DEBUG][       Thread-253832][   transport.py][1871] : client lang: <none>
2025-06-13 11:50:39,279 [DEBUG][       Thread-253832][   transport.py][1871] : server lang: <none>
2025-06-13 11:50:39,279 [DEBUG][       Thread-253832][   transport.py][1871] : kex follows: False
2025-06-13 11:50:39,279 [DEBUG][       Thread-253832][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 11:50:39,279 [DEBUG][       Thread-253832][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 11:50:39,280 [DEBUG][       Thread-253832][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 11:50:39,280 [DEBUG][       Thread-253832][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 11:50:39,280 [DEBUG][       Thread-253832][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 11:50:39,280 [DEBUG][       Thread-253832][   transport.py][1871] : Compression: none
2025-06-13 11:50:39,280 [DEBUG][       Thread-253832][   transport.py][1871] : === End of kex handshake ===
2025-06-13 11:50:39,296 [DEBUG][       Thread-253832][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 11:50:39,296 [DEBUG][       Thread-253832][   transport.py][1871] : Switch to new keys ...
2025-06-13 11:50:39,297 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 11:50:39,297 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 11:50:39,298 [DEBUG][       Thread-253832][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 11:50:39,298 [DEBUG][       Thread-253832][   transport.py][1871] : userauth is OK
2025-06-13 11:50:39,323 [ INFO][       Thread-253832][   transport.py][1871] : Authentication (password) successful!
2025-06-13 11:50:39,324 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 11:50:40,165 [DEBUG][       Thread-253832][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 11:50:40,165 [DEBUG][       Thread-253832][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 11:50:40,209 [DEBUG][       Thread-253832][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 11:50:40,209 [DEBUG][       Thread-253832][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 11:50:40,213 [DEBUG][       Thread-253832][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 11:50:40,226 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 11:50:40,227 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 11:50:40,229 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 11:50:40,231 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 11:50:40,237 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 11:50:40,239 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 11:50:40,239 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 11:50:40,240 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 11:50:40,240 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.409661 -999.00  +10.90  24.54     47   +0.20 1 1 1 1 1   888    0 12.32 66.80 ----- 25.8 24.5 51.2 29.4 15.3 -28.3 14.0 -30.4 13.5 -28.7 14.9 -26.8
2025-06-13 11:50:40,240 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 11:50:40,240 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 11:50:40,241 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.409661
2025-06-13 11:50:40,241 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 11:50:40,242 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 11:50:40,242 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 11:50:40,242 [DEBUG][       Thread-253832][   transport.py][1871] : EOF in transport thread
2025-06-13 11:50:40,242 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 11:50:40,243 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 11:50:40,243 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T11:50:25', tmtdew=12.08, humidity=43.23, cloud=0.0, wind=19.87, temperature=11.04, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T09:49:54.710', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 11:50:40,326 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 11:50:40,337 [DEBUG][       Thread-253835][   transport.py][1871] : starting thread (client mode): 0x8636b250
2025-06-13 11:50:40,337 [DEBUG][       Thread-253835][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 11:50:40,364 [DEBUG][       Thread-253835][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 11:50:40,364 [ INFO][       Thread-253835][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 11:50:40,380 [DEBUG][       Thread-253835][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 11:50:40,380 [DEBUG][       Thread-253835][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 11:50:40,380 [DEBUG][       Thread-253835][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 11:50:40,380 [DEBUG][       Thread-253835][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:50:40,380 [DEBUG][       Thread-253835][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:50:40,380 [DEBUG][       Thread-253835][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:50:40,380 [DEBUG][       Thread-253835][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:50:40,380 [DEBUG][       Thread-253835][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 11:50:40,380 [DEBUG][       Thread-253835][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 11:50:40,380 [DEBUG][       Thread-253835][   transport.py][1871] : client lang: <none>
2025-06-13 11:50:40,380 [DEBUG][       Thread-253835][   transport.py][1871] : server lang: <none>
2025-06-13 11:50:40,380 [DEBUG][       Thread-253835][   transport.py][1871] : kex follows: False
2025-06-13 11:50:40,381 [DEBUG][       Thread-253835][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 11:50:40,381 [DEBUG][       Thread-253835][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 11:50:40,381 [DEBUG][       Thread-253835][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 11:50:40,381 [DEBUG][       Thread-253835][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 11:50:40,381 [DEBUG][       Thread-253835][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 11:50:40,381 [DEBUG][       Thread-253835][   transport.py][1871] : Compression: none
2025-06-13 11:50:40,381 [DEBUG][       Thread-253835][   transport.py][1871] : === End of kex handshake ===
2025-06-13 11:50:40,452 [DEBUG][       Thread-253835][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 11:50:40,453 [DEBUG][       Thread-253835][   transport.py][1871] : Switch to new keys ...
2025-06-13 11:50:40,453 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 11:50:40,454 [DEBUG][       Thread-253835][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 11:50:40,455 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 11:50:40,521 [DEBUG][       Thread-253835][   transport.py][1871] : userauth is OK
2025-06-13 11:50:40,522 [DEBUG][       Thread-253835][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 11:50:40,522 [DEBUG][       Thread-253835][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 11:50:40,522 [DEBUG][       Thread-253835][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 11:50:40,522 [DEBUG][       Thread-253835][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 11:50:40,543 [ INFO][       Thread-253835][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 11:50:40,543 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 11:50:40,544 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 11:50:41,863 [DEBUG][       Thread-253835][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 11:50:41,864 [DEBUG][       Thread-253835][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 11:50:41,912 [DEBUG][       Thread-253835][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 11:50:41,912 [DEBUG][       Thread-253835][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 11:50:41,922 [DEBUG][       Thread-253835][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 11:50:41,931 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 11:50:41,931 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 11:50:41,940 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 11:50:41,949 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 11:50:41,950 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 11:50:41,950 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 11:50:41,959 [DEBUG][       Thread-253835][   transport.py][1871] : EOF in transport thread
2025-06-13 11:50:45,358 [DEBUG][Thread-253837 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:50:46,442 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:50:46,443 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:50:47,111 [DEBUG][Thread-253838 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:50:51,956 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 11:50:51,956 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 11:50:51,956 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 11:50:51,959 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 11:50:52,413 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 11, 50, 25), 12.08, 43.23, 0.0, 19.87, 11.04, 0, 0, 0, 2, 0, 0),)
2025-06-13 11:50:52,413 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 11:50:25
2025-06-13 11:50:52,495 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 11:50:52,499 [DEBUG][       Thread-253839][   transport.py][1871] : starting thread (client mode): 0x84207850
2025-06-13 11:50:52,499 [DEBUG][       Thread-253839][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 11:50:52,520 [DEBUG][       Thread-253839][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 11:50:52,520 [ INFO][       Thread-253839][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 11:50:52,523 [DEBUG][       Thread-253839][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 11:50:52,523 [DEBUG][       Thread-253839][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 11:50:52,523 [DEBUG][       Thread-253839][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 11:50:52,523 [DEBUG][       Thread-253839][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:50:52,523 [DEBUG][       Thread-253839][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:50:52,523 [DEBUG][       Thread-253839][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:50:52,523 [DEBUG][       Thread-253839][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:50:52,523 [DEBUG][       Thread-253839][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 11:50:52,523 [DEBUG][       Thread-253839][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 11:50:52,523 [DEBUG][       Thread-253839][   transport.py][1871] : client lang: <none>
2025-06-13 11:50:52,523 [DEBUG][       Thread-253839][   transport.py][1871] : server lang: <none>
2025-06-13 11:50:52,523 [DEBUG][       Thread-253839][   transport.py][1871] : kex follows: False
2025-06-13 11:50:52,523 [DEBUG][       Thread-253839][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 11:50:52,523 [DEBUG][       Thread-253839][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 11:50:52,523 [DEBUG][       Thread-253839][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 11:50:52,523 [DEBUG][       Thread-253839][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 11:50:52,523 [DEBUG][       Thread-253839][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 11:50:52,523 [DEBUG][       Thread-253839][   transport.py][1871] : Compression: none
2025-06-13 11:50:52,523 [DEBUG][       Thread-253839][   transport.py][1871] : === End of kex handshake ===
2025-06-13 11:50:52,541 [DEBUG][       Thread-253839][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 11:50:52,541 [DEBUG][       Thread-253839][   transport.py][1871] : Switch to new keys ...
2025-06-13 11:50:52,542 [DEBUG][       Thread-253839][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 11:50:52,542 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 11:50:52,542 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 11:50:52,543 [DEBUG][       Thread-253839][   transport.py][1871] : userauth is OK
2025-06-13 11:50:52,569 [ INFO][       Thread-253839][   transport.py][1871] : Authentication (password) successful!
2025-06-13 11:50:52,569 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 11:50:53,221 [DEBUG][       Thread-253839][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 11:50:53,221 [DEBUG][       Thread-253839][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 11:50:53,267 [DEBUG][       Thread-253839][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 11:50:53,267 [DEBUG][       Thread-253839][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 11:50:53,270 [DEBUG][       Thread-253839][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 11:50:53,283 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 11:50:53,283 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 11:50:53,285 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 11:50:53,287 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 11:50:53,293 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 11:50:53,295 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 11:50:53,295 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 11:50:53,296 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 11:50:53,296 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.410008 -999.00  +10.90  25.42     48   +0.30 1 1 1 1 1   888    0 12.20 65.72 ----- 25.2 25.4 54.0 34.5 15.3 -28.4 14.0 -30.1 13.4 -28.2 14.8 -27.0
2025-06-13 11:50:53,296 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 11:50:53,296 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 11:50:53,296 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.410008
2025-06-13 11:50:53,297 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 11:50:53,297 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 11:50:53,297 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 11:50:53,297 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 11:50:53,297 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 11:50:53,298 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T11:50:25', tmtdew=12.08, humidity=43.23, cloud=0.0, wind=19.87, temperature=11.04, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T09:50:24.691', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 11:50:53,298 [DEBUG][       Thread-253839][   transport.py][1871] : EOF in transport thread
2025-06-13 11:50:53,377 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 11:50:53,386 [DEBUG][       Thread-253842][   transport.py][1871] : starting thread (client mode): 0x867fd960
2025-06-13 11:50:53,386 [DEBUG][       Thread-253842][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 11:50:53,402 [DEBUG][       Thread-253842][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 11:50:53,402 [ INFO][       Thread-253842][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 11:50:53,409 [DEBUG][       Thread-253842][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 11:50:53,410 [DEBUG][       Thread-253842][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 11:50:53,410 [DEBUG][       Thread-253842][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 11:50:53,410 [DEBUG][       Thread-253842][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:50:53,410 [DEBUG][       Thread-253842][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:50:53,410 [DEBUG][       Thread-253842][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:50:53,410 [DEBUG][       Thread-253842][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:50:53,410 [DEBUG][       Thread-253842][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 11:50:53,410 [DEBUG][       Thread-253842][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 11:50:53,410 [DEBUG][       Thread-253842][   transport.py][1871] : client lang: <none>
2025-06-13 11:50:53,410 [DEBUG][       Thread-253842][   transport.py][1871] : server lang: <none>
2025-06-13 11:50:53,410 [DEBUG][       Thread-253842][   transport.py][1871] : kex follows: False
2025-06-13 11:50:53,410 [DEBUG][       Thread-253842][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 11:50:53,410 [DEBUG][       Thread-253842][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 11:50:53,410 [DEBUG][       Thread-253842][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 11:50:53,410 [DEBUG][       Thread-253842][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 11:50:53,410 [DEBUG][       Thread-253842][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 11:50:53,410 [DEBUG][       Thread-253842][   transport.py][1871] : Compression: none
2025-06-13 11:50:53,410 [DEBUG][       Thread-253842][   transport.py][1871] : === End of kex handshake ===
2025-06-13 11:50:53,466 [DEBUG][       Thread-253842][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 11:50:53,467 [DEBUG][       Thread-253842][   transport.py][1871] : Switch to new keys ...
2025-06-13 11:50:53,467 [DEBUG][       Thread-253842][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 11:50:53,468 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 11:50:53,468 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 11:50:53,522 [DEBUG][       Thread-253842][   transport.py][1871] : userauth is OK
2025-06-13 11:50:53,523 [DEBUG][       Thread-253842][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 11:50:53,523 [DEBUG][       Thread-253842][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 11:50:53,523 [DEBUG][       Thread-253842][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 11:50:53,523 [DEBUG][       Thread-253842][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 11:50:53,543 [ INFO][       Thread-253842][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 11:50:53,543 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 11:50:53,544 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 11:50:54,818 [DEBUG][       Thread-253842][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 11:50:54,818 [DEBUG][       Thread-253842][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 11:50:54,867 [DEBUG][       Thread-253842][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 11:50:54,867 [DEBUG][       Thread-253842][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 11:50:54,877 [DEBUG][       Thread-253842][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 11:50:54,885 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 11:50:54,885 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 11:50:54,893 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 11:50:54,901 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 11:50:54,902 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 11:50:54,902 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 11:50:54,909 [DEBUG][       Thread-253842][   transport.py][1871] : EOF in transport thread
2025-06-13 11:50:56,139 [DEBUG][Thread-253844 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:51:04,906 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 11:51:04,906 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 11:51:04,907 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 11:51:04,909 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 11:51:05,156 [DEBUG][Thread-253845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:51:05,364 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 11, 50, 57), 12.13, 43.07, 0.0, 20.91, 11.05, 0, 0, 0, 2, 0, 0),)
2025-06-13 11:51:05,364 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 11:50:57
2025-06-13 11:51:05,445 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 11:51:05,449 [DEBUG][       Thread-253846][   transport.py][1871] : starting thread (client mode): 0x84204fd0
2025-06-13 11:51:05,449 [DEBUG][       Thread-253846][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 11:51:05,470 [DEBUG][       Thread-253846][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 11:51:05,470 [ INFO][       Thread-253846][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 11:51:05,473 [DEBUG][       Thread-253846][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 11:51:05,473 [DEBUG][       Thread-253846][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 11:51:05,473 [DEBUG][       Thread-253846][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 11:51:05,473 [DEBUG][       Thread-253846][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:51:05,473 [DEBUG][       Thread-253846][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:51:05,473 [DEBUG][       Thread-253846][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:51:05,473 [DEBUG][       Thread-253846][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:51:05,473 [DEBUG][       Thread-253846][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 11:51:05,473 [DEBUG][       Thread-253846][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 11:51:05,473 [DEBUG][       Thread-253846][   transport.py][1871] : client lang: <none>
2025-06-13 11:51:05,473 [DEBUG][       Thread-253846][   transport.py][1871] : server lang: <none>
2025-06-13 11:51:05,473 [DEBUG][       Thread-253846][   transport.py][1871] : kex follows: False
2025-06-13 11:51:05,473 [DEBUG][       Thread-253846][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 11:51:05,473 [DEBUG][       Thread-253846][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 11:51:05,473 [DEBUG][       Thread-253846][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 11:51:05,473 [DEBUG][       Thread-253846][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 11:51:05,473 [DEBUG][       Thread-253846][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 11:51:05,473 [DEBUG][       Thread-253846][   transport.py][1871] : Compression: none
2025-06-13 11:51:05,473 [DEBUG][       Thread-253846][   transport.py][1871] : === End of kex handshake ===
2025-06-13 11:51:05,492 [DEBUG][       Thread-253846][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 11:51:05,493 [DEBUG][       Thread-253846][   transport.py][1871] : Switch to new keys ...
2025-06-13 11:51:05,493 [DEBUG][       Thread-253846][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 11:51:05,493 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 11:51:05,493 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 11:51:05,494 [DEBUG][       Thread-253846][   transport.py][1871] : userauth is OK
2025-06-13 11:51:05,508 [ INFO][       Thread-253846][   transport.py][1871] : Authentication (password) successful!
2025-06-13 11:51:05,508 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 11:51:06,249 [DEBUG][       Thread-253846][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 11:51:06,249 [DEBUG][       Thread-253846][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 11:51:06,293 [DEBUG][       Thread-253846][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 11:51:06,293 [DEBUG][       Thread-253846][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 11:51:06,297 [DEBUG][       Thread-253846][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 11:51:06,311 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 11:51:06,311 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 11:51:06,313 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 11:51:06,315 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 11:51:06,322 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 11:51:06,324 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 11:51:06,324 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 11:51:06,325 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 11:51:06,325 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.410008 -999.00  +10.90  25.42     48   +0.30 1 1 1 1 1   888    0 12.20 65.72 ----- 25.2 25.4 54.0 34.5 15.3 -28.4 14.0 -30.1 13.4 -28.2 14.8 -27.0
2025-06-13 11:51:06,325 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 11:51:06,325 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 11:51:06,325 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.410008
2025-06-13 11:51:06,326 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 11:51:06,326 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 11:51:06,326 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 11:51:06,326 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 11:51:06,326 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 11:51:06,327 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T11:50:57', tmtdew=12.13, humidity=43.07, cloud=0.0, wind=20.91, temperature=11.05, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T09:50:24.691', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 11:51:06,327 [DEBUG][       Thread-253846][   transport.py][1871] : EOF in transport thread
2025-06-13 11:51:06,400 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 11:51:06,413 [DEBUG][       Thread-253849][   transport.py][1871] : starting thread (client mode): 0x863bf400
2025-06-13 11:51:06,413 [DEBUG][       Thread-253849][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 11:51:06,428 [DEBUG][       Thread-253849][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 11:51:06,428 [ INFO][       Thread-253849][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 11:51:06,436 [DEBUG][       Thread-253849][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 11:51:06,436 [DEBUG][       Thread-253849][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 11:51:06,436 [DEBUG][       Thread-253849][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 11:51:06,436 [DEBUG][       Thread-253849][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:51:06,436 [DEBUG][       Thread-253849][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:51:06,437 [DEBUG][       Thread-253849][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:51:06,437 [DEBUG][       Thread-253849][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:51:06,437 [DEBUG][       Thread-253849][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 11:51:06,437 [DEBUG][       Thread-253849][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 11:51:06,437 [DEBUG][       Thread-253849][   transport.py][1871] : client lang: <none>
2025-06-13 11:51:06,437 [DEBUG][       Thread-253849][   transport.py][1871] : server lang: <none>
2025-06-13 11:51:06,437 [DEBUG][       Thread-253849][   transport.py][1871] : kex follows: False
2025-06-13 11:51:06,437 [DEBUG][       Thread-253849][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 11:51:06,437 [DEBUG][       Thread-253849][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 11:51:06,437 [DEBUG][       Thread-253849][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 11:51:06,437 [DEBUG][       Thread-253849][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 11:51:06,437 [DEBUG][       Thread-253849][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 11:51:06,437 [DEBUG][       Thread-253849][   transport.py][1871] : Compression: none
2025-06-13 11:51:06,437 [DEBUG][       Thread-253849][   transport.py][1871] : === End of kex handshake ===
2025-06-13 11:51:06,505 [DEBUG][       Thread-253849][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 11:51:06,506 [DEBUG][       Thread-253849][   transport.py][1871] : Switch to new keys ...
2025-06-13 11:51:06,506 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 11:51:06,507 [DEBUG][       Thread-253849][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 11:51:06,508 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 11:51:06,564 [DEBUG][       Thread-253849][   transport.py][1871] : userauth is OK
2025-06-13 11:51:06,564 [DEBUG][       Thread-253849][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 11:51:06,564 [DEBUG][       Thread-253849][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 11:51:06,564 [DEBUG][       Thread-253849][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 11:51:06,564 [DEBUG][       Thread-253849][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 11:51:06,586 [ INFO][       Thread-253849][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 11:51:06,587 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 11:51:06,587 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 11:51:07,813 [DEBUG][       Thread-253849][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 11:51:07,813 [DEBUG][       Thread-253849][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 11:51:07,864 [DEBUG][       Thread-253849][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 11:51:07,864 [DEBUG][       Thread-253849][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 11:51:07,880 [DEBUG][       Thread-253849][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 11:51:07,890 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 11:51:07,891 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 11:51:07,900 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 11:51:07,909 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 11:51:07,909 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 11:51:07,910 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 11:51:07,918 [DEBUG][       Thread-253849][   transport.py][1871] : EOF in transport thread
2025-06-13 11:51:10,375 [DEBUG][Thread-253851 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:51:14,180 [DEBUG][Thread-253852 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:51:17,920 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 11:51:17,921 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 11:51:17,921 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 11:51:17,924 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 11:51:18,373 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 11, 50, 57), 12.13, 43.07, 0.0, 20.91, 11.05, 0, 0, 0, 2, 0, 0),)
2025-06-13 11:51:18,373 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 11:50:57
2025-06-13 11:51:18,454 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 11:51:18,458 [DEBUG][       Thread-253853][   transport.py][1871] : starting thread (client mode): 0x84205bd0
2025-06-13 11:51:18,458 [DEBUG][       Thread-253853][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 11:51:18,476 [DEBUG][       Thread-253853][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 11:51:18,477 [ INFO][       Thread-253853][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 11:51:18,480 [DEBUG][       Thread-253853][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 11:51:18,480 [DEBUG][       Thread-253853][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 11:51:18,480 [DEBUG][       Thread-253853][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 11:51:18,480 [DEBUG][       Thread-253853][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:51:18,480 [DEBUG][       Thread-253853][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:51:18,480 [DEBUG][       Thread-253853][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:51:18,480 [DEBUG][       Thread-253853][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:51:18,480 [DEBUG][       Thread-253853][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 11:51:18,480 [DEBUG][       Thread-253853][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 11:51:18,480 [DEBUG][       Thread-253853][   transport.py][1871] : client lang: <none>
2025-06-13 11:51:18,480 [DEBUG][       Thread-253853][   transport.py][1871] : server lang: <none>
2025-06-13 11:51:18,480 [DEBUG][       Thread-253853][   transport.py][1871] : kex follows: False
2025-06-13 11:51:18,480 [DEBUG][       Thread-253853][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 11:51:18,480 [DEBUG][       Thread-253853][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 11:51:18,480 [DEBUG][       Thread-253853][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 11:51:18,480 [DEBUG][       Thread-253853][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 11:51:18,480 [DEBUG][       Thread-253853][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 11:51:18,480 [DEBUG][       Thread-253853][   transport.py][1871] : Compression: none
2025-06-13 11:51:18,480 [DEBUG][       Thread-253853][   transport.py][1871] : === End of kex handshake ===
2025-06-13 11:51:18,498 [DEBUG][       Thread-253853][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 11:51:18,499 [DEBUG][       Thread-253853][   transport.py][1871] : Switch to new keys ...
2025-06-13 11:51:18,499 [DEBUG][       Thread-253853][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 11:51:18,499 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 11:51:18,499 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 11:51:18,500 [DEBUG][       Thread-253853][   transport.py][1871] : userauth is OK
2025-06-13 11:51:18,513 [ INFO][       Thread-253853][   transport.py][1871] : Authentication (password) successful!
2025-06-13 11:51:18,514 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 11:51:19,149 [DEBUG][       Thread-253853][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 11:51:19,149 [DEBUG][       Thread-253853][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 11:51:19,193 [DEBUG][       Thread-253853][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 11:51:19,193 [DEBUG][       Thread-253853][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 11:51:19,195 [DEBUG][       Thread-253853][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 11:51:19,205 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 11:51:19,205 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 11:51:19,207 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 11:51:19,208 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 11:51:19,214 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 11:51:19,215 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 11:51:19,215 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 11:51:19,216 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 11:51:19,216 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.410355 -999.00  +10.90  23.21     47   +0.00 1 1 1 1 1   888    0 12.19 64.31 ----- 22.8 23.2 35.4 28.0 15.3 -28.5 14.0 -29.9 13.5 -28.5 14.9 -26.7
2025-06-13 11:51:19,216 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 11:51:19,216 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 11:51:19,216 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.410355
2025-06-13 11:51:19,217 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 11:51:19,217 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 11:51:19,217 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 11:51:19,218 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 11:51:19,218 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 11:51:19,218 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T11:50:57', tmtdew=12.13, humidity=43.07, cloud=0.0, wind=20.91, temperature=11.05, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T09:50:54.672', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 11:51:19,219 [DEBUG][       Thread-253853][   transport.py][1871] : EOF in transport thread
2025-06-13 11:51:19,301 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 11:51:19,317 [DEBUG][       Thread-253856][   transport.py][1871] : starting thread (client mode): 0x863bd870
2025-06-13 11:51:19,318 [DEBUG][       Thread-253856][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 11:51:19,332 [DEBUG][       Thread-253856][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 11:51:19,332 [ INFO][       Thread-253856][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 11:51:19,340 [DEBUG][       Thread-253856][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 11:51:19,340 [DEBUG][       Thread-253856][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 11:51:19,340 [DEBUG][       Thread-253856][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 11:51:19,340 [DEBUG][       Thread-253856][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:51:19,340 [DEBUG][       Thread-253856][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:51:19,340 [DEBUG][       Thread-253856][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:51:19,340 [DEBUG][       Thread-253856][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:51:19,340 [DEBUG][       Thread-253856][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 11:51:19,340 [DEBUG][       Thread-253856][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 11:51:19,340 [DEBUG][       Thread-253856][   transport.py][1871] : client lang: <none>
2025-06-13 11:51:19,340 [DEBUG][       Thread-253856][   transport.py][1871] : server lang: <none>
2025-06-13 11:51:19,340 [DEBUG][       Thread-253856][   transport.py][1871] : kex follows: False
2025-06-13 11:51:19,340 [DEBUG][       Thread-253856][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 11:51:19,340 [DEBUG][       Thread-253856][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 11:51:19,340 [DEBUG][       Thread-253856][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 11:51:19,340 [DEBUG][       Thread-253856][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 11:51:19,340 [DEBUG][       Thread-253856][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 11:51:19,340 [DEBUG][       Thread-253856][   transport.py][1871] : Compression: none
2025-06-13 11:51:19,340 [DEBUG][       Thread-253856][   transport.py][1871] : === End of kex handshake ===
2025-06-13 11:51:19,406 [DEBUG][       Thread-253856][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 11:51:19,407 [DEBUG][       Thread-253856][   transport.py][1871] : Switch to new keys ...
2025-06-13 11:51:19,407 [DEBUG][       Thread-253856][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 11:51:19,407 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 11:51:19,408 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 11:51:19,469 [DEBUG][       Thread-253856][   transport.py][1871] : userauth is OK
2025-06-13 11:51:19,469 [DEBUG][       Thread-253856][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 11:51:19,469 [DEBUG][       Thread-253856][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 11:51:19,469 [DEBUG][       Thread-253856][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 11:51:19,469 [DEBUG][       Thread-253856][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 11:51:19,488 [ INFO][       Thread-253856][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 11:51:19,488 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 11:51:19,488 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 11:51:20,664 [DEBUG][       Thread-253856][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 11:51:20,664 [DEBUG][       Thread-253856][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 11:51:20,714 [DEBUG][       Thread-253856][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 11:51:20,714 [DEBUG][       Thread-253856][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 11:51:20,723 [DEBUG][       Thread-253856][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 11:51:20,732 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 11:51:20,732 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 11:51:20,740 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 11:51:20,749 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 11:51:20,749 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 11:51:20,749 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 11:51:20,757 [DEBUG][       Thread-253856][   transport.py][1871] : EOF in transport thread
2025-06-13 11:51:23,217 [DEBUG][Thread-253858 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:51:30,756 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 11:51:30,756 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 11:51:30,756 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 11:51:30,756 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 11:51:31,238 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 11, 50, 57), 12.13, 43.07, 0.0, 20.91, 11.05, 0, 0, 0, 2, 0, 0),)
2025-06-13 11:51:31,238 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 11:50:57
2025-06-13 11:51:31,324 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 11:51:31,327 [DEBUG][       Thread-253859][   transport.py][1871] : starting thread (client mode): 0x867b5450
2025-06-13 11:51:31,328 [DEBUG][       Thread-253859][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 11:51:31,348 [DEBUG][       Thread-253859][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 11:51:31,348 [ INFO][       Thread-253859][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 11:51:31,352 [DEBUG][       Thread-253859][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 11:51:31,352 [DEBUG][       Thread-253859][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 11:51:31,352 [DEBUG][       Thread-253859][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 11:51:31,352 [DEBUG][       Thread-253859][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:51:31,352 [DEBUG][       Thread-253859][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:51:31,352 [DEBUG][       Thread-253859][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:51:31,352 [DEBUG][       Thread-253859][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:51:31,352 [DEBUG][       Thread-253859][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 11:51:31,352 [DEBUG][       Thread-253859][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 11:51:31,352 [DEBUG][       Thread-253859][   transport.py][1871] : client lang: <none>
2025-06-13 11:51:31,352 [DEBUG][       Thread-253859][   transport.py][1871] : server lang: <none>
2025-06-13 11:51:31,352 [DEBUG][       Thread-253859][   transport.py][1871] : kex follows: False
2025-06-13 11:51:31,352 [DEBUG][       Thread-253859][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 11:51:31,352 [DEBUG][       Thread-253859][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 11:51:31,352 [DEBUG][       Thread-253859][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 11:51:31,352 [DEBUG][       Thread-253859][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 11:51:31,352 [DEBUG][       Thread-253859][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 11:51:31,352 [DEBUG][       Thread-253859][   transport.py][1871] : Compression: none
2025-06-13 11:51:31,352 [DEBUG][       Thread-253859][   transport.py][1871] : === End of kex handshake ===
2025-06-13 11:51:31,366 [DEBUG][       Thread-253859][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 11:51:31,366 [DEBUG][       Thread-253859][   transport.py][1871] : Switch to new keys ...
2025-06-13 11:51:31,366 [DEBUG][       Thread-253859][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 11:51:31,367 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 11:51:31,367 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 11:51:31,367 [DEBUG][       Thread-253859][   transport.py][1871] : userauth is OK
2025-06-13 11:51:31,379 [ INFO][       Thread-253859][   transport.py][1871] : Authentication (password) successful!
2025-06-13 11:51:31,379 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 11:51:32,096 [DEBUG][       Thread-253859][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 11:51:32,096 [DEBUG][       Thread-253859][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 11:51:32,136 [DEBUG][       Thread-253859][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 11:51:32,136 [DEBUG][       Thread-253859][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 11:51:32,139 [DEBUG][       Thread-253859][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 11:51:32,153 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 11:51:32,153 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 11:51:32,154 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 11:51:32,155 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 11:51:32,158 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 11:51:32,159 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 11:51:32,159 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 11:51:32,159 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 11:51:32,159 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.410355 -999.00  +10.90  23.21     47   +0.00 1 1 1 1 1   888    0 12.19 64.31 ----- 22.8 23.2 35.4 28.0 15.3 -28.5 14.0 -29.9 13.5 -28.5 14.9 -26.7
2025-06-13 11:51:32,159 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 11:51:32,159 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 11:51:32,159 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.410355
2025-06-13 11:51:32,159 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 11:51:32,159 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 11:51:32,159 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 11:51:32,159 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 11:51:32,159 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 11:51:32,159 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T11:50:57', tmtdew=12.13, humidity=43.07, cloud=0.0, wind=20.91, temperature=11.05, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T09:50:54.672', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 11:51:32,160 [DEBUG][       Thread-253859][   transport.py][1871] : EOF in transport thread
2025-06-13 11:51:32,234 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 11:51:32,234 [DEBUG][Thread-253862 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:51:32,245 [DEBUG][       Thread-253863][   transport.py][1871] : starting thread (client mode): 0x86893820
2025-06-13 11:51:32,245 [DEBUG][       Thread-253863][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 11:51:32,261 [DEBUG][       Thread-253863][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 11:51:32,261 [ INFO][       Thread-253863][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 11:51:32,269 [DEBUG][       Thread-253863][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 11:51:32,269 [DEBUG][       Thread-253863][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 11:51:32,269 [DEBUG][       Thread-253863][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 11:51:32,269 [DEBUG][       Thread-253863][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:51:32,269 [DEBUG][       Thread-253863][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:51:32,269 [DEBUG][       Thread-253863][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:51:32,269 [DEBUG][       Thread-253863][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:51:32,269 [DEBUG][       Thread-253863][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 11:51:32,269 [DEBUG][       Thread-253863][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 11:51:32,269 [DEBUG][       Thread-253863][   transport.py][1871] : client lang: <none>
2025-06-13 11:51:32,269 [DEBUG][       Thread-253863][   transport.py][1871] : server lang: <none>
2025-06-13 11:51:32,269 [DEBUG][       Thread-253863][   transport.py][1871] : kex follows: False
2025-06-13 11:51:32,269 [DEBUG][       Thread-253863][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 11:51:32,269 [DEBUG][       Thread-253863][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 11:51:32,269 [DEBUG][       Thread-253863][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 11:51:32,269 [DEBUG][       Thread-253863][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 11:51:32,269 [DEBUG][       Thread-253863][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 11:51:32,269 [DEBUG][       Thread-253863][   transport.py][1871] : Compression: none
2025-06-13 11:51:32,269 [DEBUG][       Thread-253863][   transport.py][1871] : === End of kex handshake ===
2025-06-13 11:51:32,330 [DEBUG][       Thread-253863][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 11:51:32,330 [DEBUG][       Thread-253863][   transport.py][1871] : Switch to new keys ...
2025-06-13 11:51:32,331 [DEBUG][       Thread-253863][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 11:51:32,331 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 11:51:32,331 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 11:51:32,386 [DEBUG][       Thread-253863][   transport.py][1871] : userauth is OK
2025-06-13 11:51:32,386 [DEBUG][       Thread-253863][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 11:51:32,386 [DEBUG][       Thread-253863][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 11:51:32,386 [DEBUG][       Thread-253863][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 11:51:32,386 [DEBUG][       Thread-253863][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 11:51:32,400 [ INFO][       Thread-253863][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 11:51:32,400 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 11:51:32,400 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 11:51:33,692 [DEBUG][       Thread-253863][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 11:51:33,692 [DEBUG][       Thread-253863][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 11:51:33,743 [DEBUG][       Thread-253863][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 11:51:33,743 [DEBUG][       Thread-253863][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 11:51:33,755 [DEBUG][       Thread-253863][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 11:51:33,771 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 11:51:33,771 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 11:51:33,779 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 11:51:33,787 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 11:51:33,787 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 11:51:33,787 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 11:51:33,795 [DEBUG][       Thread-253863][   transport.py][1871] : EOF in transport thread
2025-06-13 11:51:38,372 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:51:38,373 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:51:41,254 [DEBUG][Thread-253865 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:51:43,797 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 11:51:43,798 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 11:51:43,798 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 11:51:43,801 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 11:51:44,265 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 11, 51, 29), 12.06, 43.16, 0.0, 23.17, 11.08, 0, 0, 0, 2, 0, 0),)
2025-06-13 11:51:44,265 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 11:51:29
2025-06-13 11:51:44,345 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 11:51:44,352 [DEBUG][       Thread-253866][   transport.py][1871] : starting thread (client mode): 0x863bd0f0
2025-06-13 11:51:44,352 [DEBUG][       Thread-253866][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 11:51:44,373 [DEBUG][       Thread-253866][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 11:51:44,373 [ INFO][       Thread-253866][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 11:51:44,376 [DEBUG][       Thread-253866][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 11:51:44,377 [DEBUG][       Thread-253866][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 11:51:44,377 [DEBUG][       Thread-253866][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 11:51:44,377 [DEBUG][       Thread-253866][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:51:44,377 [DEBUG][       Thread-253866][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:51:44,377 [DEBUG][       Thread-253866][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:51:44,377 [DEBUG][       Thread-253866][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:51:44,377 [DEBUG][       Thread-253866][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 11:51:44,377 [DEBUG][       Thread-253866][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 11:51:44,377 [DEBUG][       Thread-253866][   transport.py][1871] : client lang: <none>
2025-06-13 11:51:44,377 [DEBUG][       Thread-253866][   transport.py][1871] : server lang: <none>
2025-06-13 11:51:44,377 [DEBUG][       Thread-253866][   transport.py][1871] : kex follows: False
2025-06-13 11:51:44,377 [DEBUG][       Thread-253866][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 11:51:44,377 [DEBUG][       Thread-253866][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 11:51:44,377 [DEBUG][       Thread-253866][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 11:51:44,377 [DEBUG][       Thread-253866][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 11:51:44,377 [DEBUG][       Thread-253866][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 11:51:44,377 [DEBUG][       Thread-253866][   transport.py][1871] : Compression: none
2025-06-13 11:51:44,377 [DEBUG][       Thread-253866][   transport.py][1871] : === End of kex handshake ===
2025-06-13 11:51:44,395 [DEBUG][       Thread-253866][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 11:51:44,395 [DEBUG][       Thread-253866][   transport.py][1871] : Switch to new keys ...
2025-06-13 11:51:44,396 [DEBUG][       Thread-253866][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 11:51:44,396 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 11:51:44,396 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 11:51:44,398 [DEBUG][       Thread-253866][   transport.py][1871] : userauth is OK
2025-06-13 11:51:44,411 [ INFO][       Thread-253866][   transport.py][1871] : Authentication (password) successful!
2025-06-13 11:51:44,411 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 11:51:45,209 [DEBUG][       Thread-253866][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 11:51:45,209 [DEBUG][       Thread-253866][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 11:51:45,257 [DEBUG][       Thread-253866][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 11:51:45,257 [DEBUG][       Thread-253866][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 11:51:45,260 [DEBUG][       Thread-253866][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 11:51:45,272 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 11:51:45,272 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 11:51:45,274 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 11:51:45,277 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 11:51:45,283 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 11:51:45,285 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 11:51:45,285 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 11:51:45,286 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 11:51:45,286 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.410355 -999.00  +10.90  23.21     47   +0.00 1 1 1 1 1   888    0 12.19 64.31 ----- 22.8 23.2 35.4 28.0 15.3 -28.5 14.0 -29.9 13.5 -28.5 14.9 -26.7
2025-06-13 11:51:45,286 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 11:51:45,286 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 11:51:45,286 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.410355
2025-06-13 11:51:45,287 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 11:51:45,288 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 11:51:45,288 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 11:51:45,288 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 11:51:45,288 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 11:51:45,288 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T11:51:29', tmtdew=12.06, humidity=43.16, cloud=0.0, wind=23.17, temperature=11.08, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T09:50:54.672', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 11:51:45,290 [DEBUG][       Thread-253866][   transport.py][1871] : EOF in transport thread
2025-06-13 11:51:45,376 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 11:51:45,387 [DEBUG][       Thread-253869][   transport.py][1871] : starting thread (client mode): 0x867b7c10
2025-06-13 11:51:45,387 [DEBUG][       Thread-253869][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 11:51:45,403 [DEBUG][       Thread-253869][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 11:51:45,403 [ INFO][       Thread-253869][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 11:51:45,411 [DEBUG][       Thread-253869][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 11:51:45,411 [DEBUG][       Thread-253869][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 11:51:45,411 [DEBUG][       Thread-253869][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 11:51:45,411 [DEBUG][       Thread-253869][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:51:45,411 [DEBUG][       Thread-253869][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:51:45,411 [DEBUG][       Thread-253869][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:51:45,411 [DEBUG][       Thread-253869][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:51:45,411 [DEBUG][       Thread-253869][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 11:51:45,411 [DEBUG][       Thread-253869][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 11:51:45,411 [DEBUG][       Thread-253869][   transport.py][1871] : client lang: <none>
2025-06-13 11:51:45,411 [DEBUG][       Thread-253869][   transport.py][1871] : server lang: <none>
2025-06-13 11:51:45,411 [DEBUG][       Thread-253869][   transport.py][1871] : kex follows: False
2025-06-13 11:51:45,411 [DEBUG][       Thread-253869][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 11:51:45,411 [DEBUG][       Thread-253869][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 11:51:45,411 [DEBUG][       Thread-253869][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 11:51:45,412 [DEBUG][       Thread-253869][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 11:51:45,412 [DEBUG][       Thread-253869][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 11:51:45,412 [DEBUG][       Thread-253869][   transport.py][1871] : Compression: none
2025-06-13 11:51:45,412 [DEBUG][       Thread-253869][   transport.py][1871] : === End of kex handshake ===
2025-06-13 11:51:45,469 [DEBUG][       Thread-253869][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 11:51:45,469 [DEBUG][       Thread-253869][   transport.py][1871] : Switch to new keys ...
2025-06-13 11:51:45,469 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 11:51:45,469 [DEBUG][       Thread-253869][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 11:51:45,469 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 11:51:45,535 [DEBUG][       Thread-253869][   transport.py][1871] : userauth is OK
2025-06-13 11:51:45,535 [DEBUG][       Thread-253869][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 11:51:45,536 [DEBUG][       Thread-253869][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 11:51:45,536 [DEBUG][       Thread-253869][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 11:51:45,536 [DEBUG][       Thread-253869][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 11:51:45,557 [ INFO][       Thread-253869][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 11:51:45,558 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 11:51:45,558 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 11:51:46,521 [DEBUG][Thread-253871 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:51:46,944 [DEBUG][       Thread-253869][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 11:51:46,944 [DEBUG][       Thread-253869][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 11:51:46,991 [DEBUG][       Thread-253869][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 11:51:46,992 [DEBUG][       Thread-253869][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 11:51:47,004 [DEBUG][       Thread-253869][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 11:51:47,017 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 11:51:47,017 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 11:51:47,026 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 11:51:47,035 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 11:51:47,035 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 11:51:47,035 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 11:51:47,042 [DEBUG][       Thread-253869][   transport.py][1871] : EOF in transport thread
2025-06-13 11:51:47,574 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:51:47,576 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:51:50,276 [DEBUG][Thread-253872 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:51:57,045 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 11:51:57,045 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 11:51:57,045 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 11:51:57,048 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 11:51:57,497 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 11, 51, 29), 12.06, 43.16, 0.0, 23.17, 11.08, 0, 0, 0, 2, 0, 0),)
2025-06-13 11:51:57,497 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 11:51:29
2025-06-13 11:51:57,576 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 11:51:57,581 [DEBUG][       Thread-253873][   transport.py][1871] : starting thread (client mode): 0x867b7dc0
2025-06-13 11:51:57,581 [DEBUG][       Thread-253873][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 11:51:57,601 [DEBUG][       Thread-253873][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 11:51:57,601 [ INFO][       Thread-253873][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 11:51:57,604 [DEBUG][       Thread-253873][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 11:51:57,604 [DEBUG][       Thread-253873][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 11:51:57,604 [DEBUG][       Thread-253873][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 11:51:57,604 [DEBUG][       Thread-253873][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:51:57,604 [DEBUG][       Thread-253873][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:51:57,604 [DEBUG][       Thread-253873][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:51:57,604 [DEBUG][       Thread-253873][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:51:57,604 [DEBUG][       Thread-253873][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 11:51:57,604 [DEBUG][       Thread-253873][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 11:51:57,604 [DEBUG][       Thread-253873][   transport.py][1871] : client lang: <none>
2025-06-13 11:51:57,605 [DEBUG][       Thread-253873][   transport.py][1871] : server lang: <none>
2025-06-13 11:51:57,605 [DEBUG][       Thread-253873][   transport.py][1871] : kex follows: False
2025-06-13 11:51:57,605 [DEBUG][       Thread-253873][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 11:51:57,605 [DEBUG][       Thread-253873][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 11:51:57,605 [DEBUG][       Thread-253873][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 11:51:57,605 [DEBUG][       Thread-253873][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 11:51:57,605 [DEBUG][       Thread-253873][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 11:51:57,605 [DEBUG][       Thread-253873][   transport.py][1871] : Compression: none
2025-06-13 11:51:57,605 [DEBUG][       Thread-253873][   transport.py][1871] : === End of kex handshake ===
2025-06-13 11:51:57,621 [DEBUG][       Thread-253873][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 11:51:57,622 [DEBUG][       Thread-253873][   transport.py][1871] : Switch to new keys ...
2025-06-13 11:51:57,623 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 11:51:57,623 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 11:51:57,623 [DEBUG][       Thread-253873][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 11:51:57,624 [DEBUG][       Thread-253873][   transport.py][1871] : userauth is OK
2025-06-13 11:51:57,637 [ INFO][       Thread-253873][   transport.py][1871] : Authentication (password) successful!
2025-06-13 11:51:57,638 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 11:51:58,253 [DEBUG][       Thread-253873][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 11:51:58,254 [DEBUG][       Thread-253873][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 11:51:58,297 [DEBUG][       Thread-253873][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 11:51:58,297 [DEBUG][       Thread-253873][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 11:51:58,300 [DEBUG][       Thread-253873][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 11:51:58,313 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 11:51:58,314 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 11:51:58,316 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 11:51:58,317 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 11:51:58,323 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 11:51:58,325 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 11:51:58,325 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 11:51:58,326 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 11:51:58,326 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.410702 -999.00  +10.80  22.36     47   +0.00 1 1 1 1 1   888    0 11.97 64.83 ----- 24.7 22.4 45.9 26.6 15.3 -28.8 14.1 -30.3 13.5 -29.1 14.7 -26.7
2025-06-13 11:51:58,326 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 11:51:58,326 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 11:51:58,326 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.410702
2025-06-13 11:51:58,327 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 11:51:58,327 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 11:51:58,328 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 11:51:58,328 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 11:51:58,328 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 11:51:58,328 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T11:51:29', tmtdew=12.06, humidity=43.16, cloud=0.0, wind=23.17, temperature=11.08, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T09:51:24.653', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 11:51:58,328 [DEBUG][       Thread-253873][   transport.py][1871] : EOF in transport thread
2025-06-13 11:51:58,412 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 11:51:58,421 [DEBUG][       Thread-253876][   transport.py][1871] : starting thread (client mode): 0x863bd060
2025-06-13 11:51:58,421 [DEBUG][       Thread-253876][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 11:51:58,437 [DEBUG][       Thread-253876][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 11:51:58,437 [ INFO][       Thread-253876][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 11:51:58,444 [DEBUG][       Thread-253876][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 11:51:58,445 [DEBUG][       Thread-253876][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 11:51:58,445 [DEBUG][       Thread-253876][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 11:51:58,445 [DEBUG][       Thread-253876][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:51:58,445 [DEBUG][       Thread-253876][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:51:58,445 [DEBUG][       Thread-253876][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:51:58,445 [DEBUG][       Thread-253876][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:51:58,445 [DEBUG][       Thread-253876][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 11:51:58,445 [DEBUG][       Thread-253876][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 11:51:58,445 [DEBUG][       Thread-253876][   transport.py][1871] : client lang: <none>
2025-06-13 11:51:58,445 [DEBUG][       Thread-253876][   transport.py][1871] : server lang: <none>
2025-06-13 11:51:58,445 [DEBUG][       Thread-253876][   transport.py][1871] : kex follows: False
2025-06-13 11:51:58,445 [DEBUG][       Thread-253876][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 11:51:58,445 [DEBUG][       Thread-253876][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 11:51:58,445 [DEBUG][       Thread-253876][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 11:51:58,445 [DEBUG][       Thread-253876][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 11:51:58,445 [DEBUG][       Thread-253876][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 11:51:58,445 [DEBUG][       Thread-253876][   transport.py][1871] : Compression: none
2025-06-13 11:51:58,445 [DEBUG][       Thread-253876][   transport.py][1871] : === End of kex handshake ===
2025-06-13 11:51:58,505 [DEBUG][       Thread-253876][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 11:51:58,505 [DEBUG][       Thread-253876][   transport.py][1871] : Switch to new keys ...
2025-06-13 11:51:58,506 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 11:51:58,506 [DEBUG][       Thread-253876][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 11:51:58,507 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 11:51:58,566 [DEBUG][       Thread-253876][   transport.py][1871] : userauth is OK
2025-06-13 11:51:58,567 [DEBUG][       Thread-253876][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 11:51:58,567 [DEBUG][       Thread-253876][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 11:51:58,567 [DEBUG][       Thread-253876][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 11:51:58,567 [DEBUG][       Thread-253876][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 11:51:58,587 [ INFO][       Thread-253876][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 11:51:58,588 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 11:51:58,588 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 11:51:59,050 [DEBUG][       Thread-253876][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 11:51:59,050 [DEBUG][       Thread-253876][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 11:51:59,104 [DEBUG][       Thread-253876][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 11:51:59,104 [DEBUG][       Thread-253876][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 11:51:59,120 [DEBUG][       Thread-253876][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 11:51:59,131 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 11:51:59,131 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 11:51:59,140 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 11:51:59,150 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 11:51:59,150 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 11:51:59,151 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 11:51:59,159 [DEBUG][       Thread-253876][   transport.py][1871] : EOF in transport thread
2025-06-13 11:51:59,312 [DEBUG][Thread-253878 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:52:08,334 [DEBUG][Thread-253879 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:52:09,158 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 11:52:09,159 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 11:52:09,159 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 11:52:09,162 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 11:52:09,624 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 11, 52, 1), 12.22, 42.71, 0.0, 19.6, 11.11, 0, 0, 0, 2, 0, 0),)
2025-06-13 11:52:09,624 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 11:52:01
2025-06-13 11:52:09,703 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 11:52:09,710 [DEBUG][       Thread-253880][   transport.py][1871] : starting thread (client mode): 0x867b76d0
2025-06-13 11:52:09,710 [DEBUG][       Thread-253880][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 11:52:09,731 [DEBUG][       Thread-253880][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 11:52:09,731 [ INFO][       Thread-253880][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 11:52:09,734 [DEBUG][       Thread-253880][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 11:52:09,734 [DEBUG][       Thread-253880][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 11:52:09,734 [DEBUG][       Thread-253880][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 11:52:09,734 [DEBUG][       Thread-253880][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:52:09,734 [DEBUG][       Thread-253880][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:52:09,734 [DEBUG][       Thread-253880][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:52:09,734 [DEBUG][       Thread-253880][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:52:09,734 [DEBUG][       Thread-253880][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 11:52:09,734 [DEBUG][       Thread-253880][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 11:52:09,734 [DEBUG][       Thread-253880][   transport.py][1871] : client lang: <none>
2025-06-13 11:52:09,734 [DEBUG][       Thread-253880][   transport.py][1871] : server lang: <none>
2025-06-13 11:52:09,734 [DEBUG][       Thread-253880][   transport.py][1871] : kex follows: False
2025-06-13 11:52:09,734 [DEBUG][       Thread-253880][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 11:52:09,735 [DEBUG][       Thread-253880][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 11:52:09,735 [DEBUG][       Thread-253880][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 11:52:09,735 [DEBUG][       Thread-253880][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 11:52:09,735 [DEBUG][       Thread-253880][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 11:52:09,735 [DEBUG][       Thread-253880][   transport.py][1871] : Compression: none
2025-06-13 11:52:09,735 [DEBUG][       Thread-253880][   transport.py][1871] : === End of kex handshake ===
2025-06-13 11:52:09,752 [DEBUG][       Thread-253880][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 11:52:09,753 [DEBUG][       Thread-253880][   transport.py][1871] : Switch to new keys ...
2025-06-13 11:52:09,753 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 11:52:09,753 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 11:52:09,754 [DEBUG][       Thread-253880][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 11:52:09,755 [DEBUG][       Thread-253880][   transport.py][1871] : userauth is OK
2025-06-13 11:52:09,780 [ INFO][       Thread-253880][   transport.py][1871] : Authentication (password) successful!
2025-06-13 11:52:09,780 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 11:52:10,419 [DEBUG][Thread-253882 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:52:10,538 [DEBUG][       Thread-253880][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 11:52:10,538 [DEBUG][       Thread-253880][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 11:52:10,580 [DEBUG][       Thread-253880][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 11:52:10,580 [DEBUG][       Thread-253880][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 11:52:10,583 [DEBUG][       Thread-253880][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 11:52:10,594 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 11:52:10,594 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 11:52:10,595 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 11:52:10,597 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 11:52:10,599 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 11:52:10,600 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 11:52:10,600 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 11:52:10,600 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 11:52:10,601 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.410702 -999.00  +10.80  22.36     47   +0.00 1 1 1 1 1   888    0 11.97 64.83 ----- 24.7 22.4 45.9 26.6 15.3 -28.8 14.1 -30.3 13.5 -29.1 14.7 -26.7
2025-06-13 11:52:10,601 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 11:52:10,601 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 11:52:10,601 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.410702
2025-06-13 11:52:10,601 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 11:52:10,601 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 11:52:10,601 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 11:52:10,601 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 11:52:10,601 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 11:52:10,601 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T11:52:01', tmtdew=12.22, humidity=42.71, cloud=0.0, wind=19.6, temperature=11.11, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T09:51:24.653', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 11:52:10,602 [DEBUG][       Thread-253880][   transport.py][1871] : EOF in transport thread
2025-06-13 11:52:10,673 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 11:52:10,685 [DEBUG][       Thread-253884][   transport.py][1871] : starting thread (client mode): 0x863a7220
2025-06-13 11:52:10,685 [DEBUG][       Thread-253884][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 11:52:10,709 [DEBUG][       Thread-253884][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 11:52:10,709 [ INFO][       Thread-253884][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 11:52:10,716 [DEBUG][       Thread-253884][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 11:52:10,717 [DEBUG][       Thread-253884][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 11:52:10,717 [DEBUG][       Thread-253884][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 11:52:10,717 [DEBUG][       Thread-253884][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:52:10,717 [DEBUG][       Thread-253884][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:52:10,717 [DEBUG][       Thread-253884][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:52:10,717 [DEBUG][       Thread-253884][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:52:10,717 [DEBUG][       Thread-253884][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 11:52:10,717 [DEBUG][       Thread-253884][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 11:52:10,717 [DEBUG][       Thread-253884][   transport.py][1871] : client lang: <none>
2025-06-13 11:52:10,717 [DEBUG][       Thread-253884][   transport.py][1871] : server lang: <none>
2025-06-13 11:52:10,717 [DEBUG][       Thread-253884][   transport.py][1871] : kex follows: False
2025-06-13 11:52:10,717 [DEBUG][       Thread-253884][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 11:52:10,717 [DEBUG][       Thread-253884][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 11:52:10,717 [DEBUG][       Thread-253884][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 11:52:10,717 [DEBUG][       Thread-253884][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 11:52:10,717 [DEBUG][       Thread-253884][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 11:52:10,717 [DEBUG][       Thread-253884][   transport.py][1871] : Compression: none
2025-06-13 11:52:10,717 [DEBUG][       Thread-253884][   transport.py][1871] : === End of kex handshake ===
2025-06-13 11:52:10,772 [DEBUG][       Thread-253884][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 11:52:10,773 [DEBUG][       Thread-253884][   transport.py][1871] : Switch to new keys ...
2025-06-13 11:52:10,773 [DEBUG][       Thread-253884][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 11:52:10,773 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 11:52:10,773 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 11:52:10,834 [DEBUG][       Thread-253884][   transport.py][1871] : userauth is OK
2025-06-13 11:52:10,834 [DEBUG][       Thread-253884][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 11:52:10,834 [DEBUG][       Thread-253884][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 11:52:10,834 [DEBUG][       Thread-253884][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 11:52:10,834 [DEBUG][       Thread-253884][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 11:52:10,848 [ INFO][       Thread-253884][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 11:52:10,848 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 11:52:10,848 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 11:52:11,452 [DEBUG][       Thread-253884][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 11:52:11,452 [DEBUG][       Thread-253884][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 11:52:11,508 [DEBUG][       Thread-253884][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 11:52:11,508 [DEBUG][       Thread-253884][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 11:52:11,522 [DEBUG][       Thread-253884][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 11:52:11,529 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 11:52:11,530 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 11:52:11,537 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 11:52:11,546 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 11:52:11,546 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 11:52:11,546 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 11:52:11,553 [DEBUG][       Thread-253884][   transport.py][1871] : EOF in transport thread
2025-06-13 11:52:17,355 [DEBUG][Thread-253886 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:52:21,556 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 11:52:21,556 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 11:52:21,557 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 11:52:21,560 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 11:52:22,011 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 11, 52, 1), 12.22, 42.71, 0.0, 19.6, 11.11, 0, 0, 0, 2, 0, 0),)
2025-06-13 11:52:22,011 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 11:52:01
2025-06-13 11:52:22,091 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 11:52:22,096 [DEBUG][       Thread-253887][   transport.py][1871] : starting thread (client mode): 0x867b76d0
2025-06-13 11:52:22,096 [DEBUG][       Thread-253887][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 11:52:22,115 [DEBUG][       Thread-253887][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 11:52:22,116 [ INFO][       Thread-253887][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 11:52:22,117 [DEBUG][       Thread-253887][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 11:52:22,117 [DEBUG][       Thread-253887][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 11:52:22,117 [DEBUG][       Thread-253887][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 11:52:22,118 [DEBUG][       Thread-253887][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:52:22,118 [DEBUG][       Thread-253887][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:52:22,118 [DEBUG][       Thread-253887][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:52:22,118 [DEBUG][       Thread-253887][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:52:22,118 [DEBUG][       Thread-253887][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 11:52:22,118 [DEBUG][       Thread-253887][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 11:52:22,118 [DEBUG][       Thread-253887][   transport.py][1871] : client lang: <none>
2025-06-13 11:52:22,118 [DEBUG][       Thread-253887][   transport.py][1871] : server lang: <none>
2025-06-13 11:52:22,118 [DEBUG][       Thread-253887][   transport.py][1871] : kex follows: False
2025-06-13 11:52:22,118 [DEBUG][       Thread-253887][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 11:52:22,118 [DEBUG][       Thread-253887][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 11:52:22,118 [DEBUG][       Thread-253887][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 11:52:22,118 [DEBUG][       Thread-253887][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 11:52:22,118 [DEBUG][       Thread-253887][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 11:52:22,118 [DEBUG][       Thread-253887][   transport.py][1871] : Compression: none
2025-06-13 11:52:22,118 [DEBUG][       Thread-253887][   transport.py][1871] : === End of kex handshake ===
2025-06-13 11:52:22,129 [DEBUG][       Thread-253887][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 11:52:22,129 [DEBUG][       Thread-253887][   transport.py][1871] : Switch to new keys ...
2025-06-13 11:52:22,130 [DEBUG][       Thread-253887][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 11:52:22,130 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 11:52:22,130 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 11:52:22,131 [DEBUG][       Thread-253887][   transport.py][1871] : userauth is OK
2025-06-13 11:52:22,156 [ INFO][       Thread-253887][   transport.py][1871] : Authentication (password) successful!
2025-06-13 11:52:22,157 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 11:52:22,953 [DEBUG][       Thread-253887][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 11:52:22,954 [DEBUG][       Thread-253887][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 11:52:22,997 [DEBUG][       Thread-253887][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 11:52:22,997 [DEBUG][       Thread-253887][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 11:52:23,000 [DEBUG][       Thread-253887][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 11:52:23,014 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 11:52:23,014 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 11:52:23,016 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 11:52:23,018 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 11:52:23,024 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 11:52:23,026 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 11:52:23,026 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 11:52:23,026 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 11:52:23,027 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.410702 -999.00  +10.80  22.36     47   +0.00 1 1 1 1 1   888    0 11.97 64.83 ----- 24.7 22.4 45.9 26.6 15.3 -28.8 14.1 -30.3 13.5 -29.1 14.7 -26.7
2025-06-13 11:52:23,027 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 11:52:23,027 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 11:52:23,027 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.410702
2025-06-13 11:52:23,027 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 11:52:23,028 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 11:52:23,028 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 11:52:23,028 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 11:52:23,028 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 11:52:23,028 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T11:52:01', tmtdew=12.22, humidity=42.71, cloud=0.0, wind=19.6, temperature=11.11, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T09:51:24.653', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 11:52:23,030 [DEBUG][       Thread-253887][   transport.py][1871] : EOF in transport thread
2025-06-13 11:52:23,115 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 11:52:23,128 [DEBUG][       Thread-253890][   transport.py][1871] : starting thread (client mode): 0x863a5030
2025-06-13 11:52:23,128 [DEBUG][       Thread-253890][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 11:52:23,143 [DEBUG][       Thread-253890][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 11:52:23,143 [ INFO][       Thread-253890][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 11:52:23,150 [DEBUG][       Thread-253890][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 11:52:23,150 [DEBUG][       Thread-253890][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 11:52:23,150 [DEBUG][       Thread-253890][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 11:52:23,150 [DEBUG][       Thread-253890][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:52:23,150 [DEBUG][       Thread-253890][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:52:23,151 [DEBUG][       Thread-253890][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:52:23,151 [DEBUG][       Thread-253890][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:52:23,151 [DEBUG][       Thread-253890][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 11:52:23,151 [DEBUG][       Thread-253890][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 11:52:23,151 [DEBUG][       Thread-253890][   transport.py][1871] : client lang: <none>
2025-06-13 11:52:23,151 [DEBUG][       Thread-253890][   transport.py][1871] : server lang: <none>
2025-06-13 11:52:23,151 [DEBUG][       Thread-253890][   transport.py][1871] : kex follows: False
2025-06-13 11:52:23,151 [DEBUG][       Thread-253890][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 11:52:23,151 [DEBUG][       Thread-253890][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 11:52:23,151 [DEBUG][       Thread-253890][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 11:52:23,151 [DEBUG][       Thread-253890][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 11:52:23,151 [DEBUG][       Thread-253890][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 11:52:23,151 [DEBUG][       Thread-253890][   transport.py][1871] : Compression: none
2025-06-13 11:52:23,151 [DEBUG][       Thread-253890][   transport.py][1871] : === End of kex handshake ===
2025-06-13 11:52:23,211 [DEBUG][       Thread-253890][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 11:52:23,211 [DEBUG][       Thread-253890][   transport.py][1871] : Switch to new keys ...
2025-06-13 11:52:23,212 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 11:52:23,213 [DEBUG][       Thread-253890][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 11:52:23,213 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 11:52:23,275 [DEBUG][       Thread-253890][   transport.py][1871] : userauth is OK
2025-06-13 11:52:23,275 [DEBUG][       Thread-253890][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 11:52:23,276 [DEBUG][       Thread-253890][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 11:52:23,276 [DEBUG][       Thread-253890][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 11:52:23,276 [DEBUG][       Thread-253890][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 11:52:23,296 [ INFO][       Thread-253890][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 11:52:23,296 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 11:52:23,297 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 11:52:23,785 [DEBUG][       Thread-253890][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 11:52:23,785 [DEBUG][       Thread-253890][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 11:52:23,836 [DEBUG][       Thread-253890][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 11:52:23,836 [DEBUG][       Thread-253890][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 11:52:23,845 [DEBUG][       Thread-253890][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 11:52:23,854 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 11:52:23,855 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 11:52:23,864 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 11:52:23,877 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 11:52:23,878 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 11:52:23,878 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 11:52:23,891 [DEBUG][       Thread-253890][   transport.py][1871] : EOF in transport thread
2025-06-13 11:52:26,382 [DEBUG][Thread-253892 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:52:33,888 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 11:52:33,888 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 11:52:33,888 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 11:52:33,889 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 11:52:34,385 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 11, 52, 1), 12.22, 42.71, 0.0, 19.6, 11.11, 0, 0, 0, 2, 0, 0),)
2025-06-13 11:52:34,386 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 11:52:01
2025-06-13 11:52:34,472 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 11:52:34,477 [DEBUG][       Thread-253893][   transport.py][1871] : starting thread (client mode): 0x84204160
2025-06-13 11:52:34,477 [DEBUG][       Thread-253893][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 11:52:34,497 [DEBUG][       Thread-253893][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 11:52:34,497 [ INFO][       Thread-253893][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 11:52:34,501 [DEBUG][       Thread-253893][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 11:52:34,501 [DEBUG][       Thread-253893][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 11:52:34,501 [DEBUG][       Thread-253893][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 11:52:34,501 [DEBUG][       Thread-253893][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:52:34,501 [DEBUG][       Thread-253893][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:52:34,501 [DEBUG][       Thread-253893][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:52:34,501 [DEBUG][       Thread-253893][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:52:34,501 [DEBUG][       Thread-253893][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 11:52:34,501 [DEBUG][       Thread-253893][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 11:52:34,501 [DEBUG][       Thread-253893][   transport.py][1871] : client lang: <none>
2025-06-13 11:52:34,501 [DEBUG][       Thread-253893][   transport.py][1871] : server lang: <none>
2025-06-13 11:52:34,501 [DEBUG][       Thread-253893][   transport.py][1871] : kex follows: False
2025-06-13 11:52:34,501 [DEBUG][       Thread-253893][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 11:52:34,501 [DEBUG][       Thread-253893][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 11:52:34,501 [DEBUG][       Thread-253893][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 11:52:34,501 [DEBUG][       Thread-253893][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 11:52:34,501 [DEBUG][       Thread-253893][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 11:52:34,501 [DEBUG][       Thread-253893][   transport.py][1871] : Compression: none
2025-06-13 11:52:34,501 [DEBUG][       Thread-253893][   transport.py][1871] : === End of kex handshake ===
2025-06-13 11:52:34,515 [DEBUG][       Thread-253893][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 11:52:34,515 [DEBUG][       Thread-253893][   transport.py][1871] : Switch to new keys ...
2025-06-13 11:52:34,515 [DEBUG][       Thread-253893][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 11:52:34,515 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 11:52:34,515 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 11:52:34,515 [DEBUG][       Thread-253893][   transport.py][1871] : userauth is OK
2025-06-13 11:52:34,528 [ INFO][       Thread-253893][   transport.py][1871] : Authentication (password) successful!
2025-06-13 11:52:34,528 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 11:52:35,102 [DEBUG][       Thread-253893][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 11:52:35,102 [DEBUG][       Thread-253893][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 11:52:35,145 [DEBUG][       Thread-253893][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 11:52:35,145 [DEBUG][       Thread-253893][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 11:52:35,149 [DEBUG][       Thread-253893][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 11:52:35,160 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 11:52:35,160 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 11:52:35,162 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 11:52:35,164 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 11:52:35,170 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 11:52:35,172 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 11:52:35,172 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 11:52:35,173 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 11:52:35,173 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.411050 -999.00  +10.80  24.01     48   +0.40 1 1 1 1 1   888    0 12.02 65.71 ----- 23.2 24.0 56.0 29.0 15.3 -27.8 13.9 -30.2 13.4 -28.9 14.8 -26.5
2025-06-13 11:52:35,173 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 11:52:35,173 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 11:52:35,174 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.411050
2025-06-13 11:52:35,174 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 11:52:35,175 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 11:52:35,175 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 11:52:35,175 [DEBUG][       Thread-253893][   transport.py][1871] : EOF in transport thread
2025-06-13 11:52:35,175 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 11:52:35,176 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 11:52:35,177 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T11:52:01', tmtdew=12.22, humidity=42.71, cloud=0.0, wind=19.6, temperature=11.11, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T09:51:54.720', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 11:52:35,262 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 11:52:35,273 [DEBUG][       Thread-253896][   transport.py][1871] : starting thread (client mode): 0x863bcc40
2025-06-13 11:52:35,273 [DEBUG][       Thread-253896][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 11:52:35,290 [DEBUG][       Thread-253896][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 11:52:35,290 [ INFO][       Thread-253896][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 11:52:35,297 [DEBUG][       Thread-253896][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 11:52:35,298 [DEBUG][       Thread-253896][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 11:52:35,298 [DEBUG][       Thread-253896][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 11:52:35,298 [DEBUG][       Thread-253896][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:52:35,298 [DEBUG][       Thread-253896][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:52:35,298 [DEBUG][       Thread-253896][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:52:35,298 [DEBUG][       Thread-253896][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:52:35,298 [DEBUG][       Thread-253896][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 11:52:35,298 [DEBUG][       Thread-253896][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 11:52:35,298 [DEBUG][       Thread-253896][   transport.py][1871] : client lang: <none>
2025-06-13 11:52:35,298 [DEBUG][       Thread-253896][   transport.py][1871] : server lang: <none>
2025-06-13 11:52:35,298 [DEBUG][       Thread-253896][   transport.py][1871] : kex follows: False
2025-06-13 11:52:35,298 [DEBUG][       Thread-253896][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 11:52:35,298 [DEBUG][       Thread-253896][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 11:52:35,298 [DEBUG][       Thread-253896][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 11:52:35,298 [DEBUG][       Thread-253896][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 11:52:35,298 [DEBUG][       Thread-253896][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 11:52:35,298 [DEBUG][       Thread-253896][   transport.py][1871] : Compression: none
2025-06-13 11:52:35,298 [DEBUG][       Thread-253896][   transport.py][1871] : === End of kex handshake ===
2025-06-13 11:52:35,355 [DEBUG][       Thread-253896][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 11:52:35,356 [DEBUG][       Thread-253896][   transport.py][1871] : Switch to new keys ...
2025-06-13 11:52:35,356 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 11:52:35,357 [DEBUG][       Thread-253896][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 11:52:35,358 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 11:52:35,403 [DEBUG][Thread-253898 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:52:35,420 [DEBUG][       Thread-253896][   transport.py][1871] : userauth is OK
2025-06-13 11:52:35,421 [DEBUG][       Thread-253896][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 11:52:35,421 [DEBUG][       Thread-253896][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 11:52:35,421 [DEBUG][       Thread-253896][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 11:52:35,421 [DEBUG][       Thread-253896][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 11:52:35,448 [ INFO][       Thread-253896][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 11:52:35,448 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 11:52:35,449 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 11:52:35,995 [DEBUG][       Thread-253896][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 11:52:35,995 [DEBUG][       Thread-253896][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 11:52:36,048 [DEBUG][       Thread-253896][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 11:52:36,048 [DEBUG][       Thread-253896][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 11:52:36,058 [DEBUG][       Thread-253896][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 11:52:36,066 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 11:52:36,066 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 11:52:36,074 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 11:52:36,087 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 11:52:36,087 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 11:52:36,087 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 11:52:36,096 [DEBUG][       Thread-253896][   transport.py][1871] : EOF in transport thread
2025-06-13 11:52:38,508 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:52:38,509 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:52:44,428 [DEBUG][Thread-253899 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:52:46,098 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 11:52:46,098 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 11:52:46,098 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 11:52:46,099 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 11:52:46,539 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 11, 52, 32), 12.12, 42.93, 0.0, 19.78, 11.02, 0, 0, 0, 2, 0, 0),)
2025-06-13 11:52:46,539 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 11:52:32
2025-06-13 11:52:46,620 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 11:52:46,626 [DEBUG][       Thread-253900][   transport.py][1871] : starting thread (client mode): 0x84205ae0
2025-06-13 11:52:46,626 [DEBUG][       Thread-253900][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 11:52:46,642 [DEBUG][       Thread-253900][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 11:52:46,642 [ INFO][       Thread-253900][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 11:52:46,646 [DEBUG][       Thread-253900][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 11:52:46,646 [DEBUG][       Thread-253900][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 11:52:46,646 [DEBUG][       Thread-253900][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 11:52:46,646 [DEBUG][       Thread-253900][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:52:46,646 [DEBUG][       Thread-253900][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:52:46,646 [DEBUG][       Thread-253900][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:52:46,646 [DEBUG][       Thread-253900][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:52:46,646 [DEBUG][       Thread-253900][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 11:52:46,646 [DEBUG][       Thread-253900][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 11:52:46,646 [DEBUG][       Thread-253900][   transport.py][1871] : client lang: <none>
2025-06-13 11:52:46,646 [DEBUG][       Thread-253900][   transport.py][1871] : server lang: <none>
2025-06-13 11:52:46,646 [DEBUG][       Thread-253900][   transport.py][1871] : kex follows: False
2025-06-13 11:52:46,646 [DEBUG][       Thread-253900][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 11:52:46,646 [DEBUG][       Thread-253900][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 11:52:46,646 [DEBUG][       Thread-253900][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 11:52:46,646 [DEBUG][       Thread-253900][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 11:52:46,646 [DEBUG][       Thread-253900][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 11:52:46,646 [DEBUG][       Thread-253900][   transport.py][1871] : Compression: none
2025-06-13 11:52:46,646 [DEBUG][       Thread-253900][   transport.py][1871] : === End of kex handshake ===
2025-06-13 11:52:46,662 [DEBUG][       Thread-253900][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 11:52:46,663 [DEBUG][       Thread-253900][   transport.py][1871] : Switch to new keys ...
2025-06-13 11:52:46,663 [DEBUG][       Thread-253900][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 11:52:46,663 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 11:52:46,664 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 11:52:46,664 [DEBUG][       Thread-253900][   transport.py][1871] : userauth is OK
2025-06-13 11:52:46,677 [ INFO][       Thread-253900][   transport.py][1871] : Authentication (password) successful!
2025-06-13 11:52:46,677 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 11:52:47,371 [DEBUG][       Thread-253900][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 11:52:47,371 [DEBUG][       Thread-253900][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 11:52:47,413 [DEBUG][       Thread-253900][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 11:52:47,413 [DEBUG][       Thread-253900][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 11:52:47,416 [DEBUG][       Thread-253900][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 11:52:47,428 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 11:52:47,429 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 11:52:47,430 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 11:52:47,432 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 11:52:47,436 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 11:52:47,437 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 11:52:47,438 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 11:52:47,438 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 11:52:47,438 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.411050 -999.00  +10.80  24.01     48   +0.40 1 1 1 1 1   888    0 12.02 65.71 ----- 23.2 24.0 56.0 29.0 15.3 -27.8 13.9 -30.2 13.4 -28.9 14.8 -26.5
2025-06-13 11:52:47,439 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 11:52:47,439 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 11:52:47,439 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.411050
2025-06-13 11:52:47,439 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 11:52:47,440 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 11:52:47,440 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 11:52:47,440 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 11:52:47,440 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 11:52:47,440 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T11:52:32', tmtdew=12.12, humidity=42.93, cloud=0.0, wind=19.78, temperature=11.02, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T09:51:54.720', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 11:52:47,441 [DEBUG][       Thread-253900][   transport.py][1871] : EOF in transport thread
2025-06-13 11:52:47,526 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 11:52:47,536 [DEBUG][       Thread-253903][   transport.py][1871] : starting thread (client mode): 0x863a5240
2025-06-13 11:52:47,536 [DEBUG][       Thread-253903][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 11:52:47,553 [DEBUG][       Thread-253903][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 11:52:47,553 [ INFO][       Thread-253903][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 11:52:47,566 [DEBUG][       Thread-253903][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 11:52:47,566 [DEBUG][       Thread-253903][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 11:52:47,566 [DEBUG][       Thread-253903][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 11:52:47,566 [DEBUG][       Thread-253903][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:52:47,566 [DEBUG][       Thread-253903][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:52:47,566 [DEBUG][       Thread-253903][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:52:47,566 [DEBUG][       Thread-253903][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:52:47,566 [DEBUG][       Thread-253903][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 11:52:47,566 [DEBUG][       Thread-253903][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 11:52:47,567 [DEBUG][       Thread-253903][   transport.py][1871] : client lang: <none>
2025-06-13 11:52:47,567 [DEBUG][       Thread-253903][   transport.py][1871] : server lang: <none>
2025-06-13 11:52:47,567 [DEBUG][       Thread-253903][   transport.py][1871] : kex follows: False
2025-06-13 11:52:47,567 [DEBUG][       Thread-253903][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 11:52:47,567 [DEBUG][       Thread-253903][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 11:52:47,567 [DEBUG][       Thread-253903][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 11:52:47,567 [DEBUG][       Thread-253903][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 11:52:47,567 [DEBUG][       Thread-253903][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 11:52:47,567 [DEBUG][       Thread-253903][   transport.py][1871] : Compression: none
2025-06-13 11:52:47,567 [DEBUG][       Thread-253903][   transport.py][1871] : === End of kex handshake ===
2025-06-13 11:52:47,618 [DEBUG][       Thread-253903][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 11:52:47,619 [DEBUG][       Thread-253903][   transport.py][1871] : Switch to new keys ...
2025-06-13 11:52:47,619 [DEBUG][       Thread-253903][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 11:52:47,619 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 11:52:47,620 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 11:52:47,657 [DEBUG][Thread-253905 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:52:47,674 [DEBUG][       Thread-253903][   transport.py][1871] : userauth is OK
2025-06-13 11:52:47,674 [DEBUG][       Thread-253903][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 11:52:47,674 [DEBUG][       Thread-253903][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 11:52:47,674 [DEBUG][       Thread-253903][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 11:52:47,674 [DEBUG][       Thread-253903][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 11:52:47,693 [ INFO][       Thread-253903][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 11:52:47,693 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 11:52:47,693 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 11:52:48,247 [DEBUG][       Thread-253903][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 11:52:48,247 [DEBUG][       Thread-253903][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 11:52:48,295 [DEBUG][       Thread-253903][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 11:52:48,295 [DEBUG][       Thread-253903][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 11:52:48,303 [DEBUG][       Thread-253903][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 11:52:48,314 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 11:52:48,314 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 11:52:48,322 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 11:52:48,330 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 11:52:48,330 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 11:52:48,330 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 11:52:48,337 [DEBUG][       Thread-253903][   transport.py][1871] : EOF in transport thread
2025-06-13 11:52:48,733 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:52:48,734 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:52:53,446 [DEBUG][Thread-253906 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:52:58,340 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 11:52:58,340 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 11:52:58,340 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 11:52:58,343 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 11:52:58,788 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 11, 52, 32), 12.12, 42.93, 0.0, 19.78, 11.02, 0, 0, 0, 2, 0, 0),)
2025-06-13 11:52:58,788 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 11:52:32
2025-06-13 11:52:58,869 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 11:52:58,874 [DEBUG][       Thread-253907][   transport.py][1871] : starting thread (client mode): 0x84207850
2025-06-13 11:52:58,874 [DEBUG][       Thread-253907][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 11:52:58,895 [DEBUG][       Thread-253907][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 11:52:58,895 [ INFO][       Thread-253907][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 11:52:58,897 [DEBUG][       Thread-253907][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 11:52:58,897 [DEBUG][       Thread-253907][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 11:52:58,897 [DEBUG][       Thread-253907][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 11:52:58,897 [DEBUG][       Thread-253907][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:52:58,897 [DEBUG][       Thread-253907][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:52:58,897 [DEBUG][       Thread-253907][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:52:58,897 [DEBUG][       Thread-253907][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:52:58,897 [DEBUG][       Thread-253907][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 11:52:58,897 [DEBUG][       Thread-253907][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 11:52:58,897 [DEBUG][       Thread-253907][   transport.py][1871] : client lang: <none>
2025-06-13 11:52:58,897 [DEBUG][       Thread-253907][   transport.py][1871] : server lang: <none>
2025-06-13 11:52:58,897 [DEBUG][       Thread-253907][   transport.py][1871] : kex follows: False
2025-06-13 11:52:58,897 [DEBUG][       Thread-253907][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 11:52:58,897 [DEBUG][       Thread-253907][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 11:52:58,897 [DEBUG][       Thread-253907][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 11:52:58,897 [DEBUG][       Thread-253907][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 11:52:58,897 [DEBUG][       Thread-253907][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 11:52:58,897 [DEBUG][       Thread-253907][   transport.py][1871] : Compression: none
2025-06-13 11:52:58,898 [DEBUG][       Thread-253907][   transport.py][1871] : === End of kex handshake ===
2025-06-13 11:52:58,916 [DEBUG][       Thread-253907][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 11:52:58,917 [DEBUG][       Thread-253907][   transport.py][1871] : Switch to new keys ...
2025-06-13 11:52:58,917 [DEBUG][       Thread-253907][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 11:52:58,918 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 11:52:58,918 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 11:52:58,919 [DEBUG][       Thread-253907][   transport.py][1871] : userauth is OK
2025-06-13 11:52:58,943 [ INFO][       Thread-253907][   transport.py][1871] : Authentication (password) successful!
2025-06-13 11:52:58,944 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 11:52:59,606 [DEBUG][       Thread-253907][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 11:52:59,606 [DEBUG][       Thread-253907][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 11:52:59,649 [DEBUG][       Thread-253907][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 11:52:59,649 [DEBUG][       Thread-253907][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 11:52:59,652 [DEBUG][       Thread-253907][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 11:52:59,663 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 11:52:59,664 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 11:52:59,665 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 11:52:59,667 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 11:52:59,672 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 11:52:59,674 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 11:52:59,674 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 11:52:59,675 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 11:52:59,675 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.411050 -999.00  +10.80  24.01     48   +0.40 1 1 1 1 1   888    0 12.02 65.71 ----- 23.2 24.0 56.0 29.0 15.3 -27.8 13.9 -30.2 13.4 -28.9 14.8 -26.5
2025-06-13 11:52:59,675 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 11:52:59,675 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 11:52:59,675 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.411050
2025-06-13 11:52:59,675 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 11:52:59,676 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 11:52:59,676 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 11:52:59,676 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 11:52:59,676 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 11:52:59,676 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T11:52:32', tmtdew=12.12, humidity=42.93, cloud=0.0, wind=19.78, temperature=11.02, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T09:51:54.720', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 11:52:59,677 [DEBUG][       Thread-253907][   transport.py][1871] : EOF in transport thread
2025-06-13 11:52:59,759 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 11:52:59,776 [DEBUG][       Thread-253910][   transport.py][1871] : starting thread (client mode): 0x867ffc10
2025-06-13 11:52:59,776 [DEBUG][       Thread-253910][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 11:52:59,790 [DEBUG][       Thread-253910][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 11:52:59,791 [ INFO][       Thread-253910][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 11:52:59,798 [DEBUG][       Thread-253910][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 11:52:59,798 [DEBUG][       Thread-253910][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 11:52:59,798 [DEBUG][       Thread-253910][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 11:52:59,798 [DEBUG][       Thread-253910][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:52:59,798 [DEBUG][       Thread-253910][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:52:59,799 [DEBUG][       Thread-253910][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:52:59,799 [DEBUG][       Thread-253910][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:52:59,799 [DEBUG][       Thread-253910][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 11:52:59,799 [DEBUG][       Thread-253910][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 11:52:59,799 [DEBUG][       Thread-253910][   transport.py][1871] : client lang: <none>
2025-06-13 11:52:59,799 [DEBUG][       Thread-253910][   transport.py][1871] : server lang: <none>
2025-06-13 11:52:59,799 [DEBUG][       Thread-253910][   transport.py][1871] : kex follows: False
2025-06-13 11:52:59,799 [DEBUG][       Thread-253910][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 11:52:59,799 [DEBUG][       Thread-253910][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 11:52:59,799 [DEBUG][       Thread-253910][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 11:52:59,799 [DEBUG][       Thread-253910][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 11:52:59,799 [DEBUG][       Thread-253910][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 11:52:59,799 [DEBUG][       Thread-253910][   transport.py][1871] : Compression: none
2025-06-13 11:52:59,799 [DEBUG][       Thread-253910][   transport.py][1871] : === End of kex handshake ===
2025-06-13 11:52:59,862 [DEBUG][       Thread-253910][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 11:52:59,862 [DEBUG][       Thread-253910][   transport.py][1871] : Switch to new keys ...
2025-06-13 11:52:59,863 [DEBUG][       Thread-253910][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 11:52:59,863 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 11:52:59,864 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 11:52:59,918 [DEBUG][       Thread-253910][   transport.py][1871] : userauth is OK
2025-06-13 11:52:59,918 [DEBUG][       Thread-253910][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 11:52:59,919 [DEBUG][       Thread-253910][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 11:52:59,919 [DEBUG][       Thread-253910][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 11:52:59,919 [DEBUG][       Thread-253910][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 11:52:59,937 [ INFO][       Thread-253910][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 11:52:59,937 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 11:52:59,938 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 11:53:00,382 [DEBUG][       Thread-253910][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 11:53:00,383 [DEBUG][       Thread-253910][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 11:53:00,432 [DEBUG][       Thread-253910][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 11:53:00,432 [DEBUG][       Thread-253910][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 11:53:00,441 [DEBUG][       Thread-253910][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 11:53:00,450 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 11:53:00,450 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 11:53:00,458 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 11:53:00,470 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 11:53:00,470 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 11:53:00,471 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 11:53:00,488 [DEBUG][       Thread-253910][   transport.py][1871] : EOF in transport thread
2025-06-13 11:53:02,491 [DEBUG][Thread-253912 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:53:10,471 [DEBUG][Thread-253913 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:53:10,481 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 11:53:10,481 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 11:53:10,481 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 11:53:10,482 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 11:53:10,925 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 11, 53, 4), 12.05, 43.13, 0.0, 23.1, 11.04, 0, 0, 0, 2, 0, 0),)
2025-06-13 11:53:10,926 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 11:53:04
2025-06-13 11:53:11,007 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 11:53:11,013 [DEBUG][       Thread-253914][   transport.py][1871] : starting thread (client mode): 0x863691b0
2025-06-13 11:53:11,013 [DEBUG][       Thread-253914][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 11:53:11,034 [DEBUG][       Thread-253914][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 11:53:11,034 [ INFO][       Thread-253914][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 11:53:11,038 [DEBUG][       Thread-253914][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 11:53:11,038 [DEBUG][       Thread-253914][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 11:53:11,038 [DEBUG][       Thread-253914][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 11:53:11,038 [DEBUG][       Thread-253914][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:53:11,038 [DEBUG][       Thread-253914][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:53:11,038 [DEBUG][       Thread-253914][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:53:11,038 [DEBUG][       Thread-253914][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:53:11,038 [DEBUG][       Thread-253914][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 11:53:11,038 [DEBUG][       Thread-253914][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 11:53:11,038 [DEBUG][       Thread-253914][   transport.py][1871] : client lang: <none>
2025-06-13 11:53:11,038 [DEBUG][       Thread-253914][   transport.py][1871] : server lang: <none>
2025-06-13 11:53:11,038 [DEBUG][       Thread-253914][   transport.py][1871] : kex follows: False
2025-06-13 11:53:11,038 [DEBUG][       Thread-253914][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 11:53:11,038 [DEBUG][       Thread-253914][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 11:53:11,038 [DEBUG][       Thread-253914][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 11:53:11,038 [DEBUG][       Thread-253914][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 11:53:11,038 [DEBUG][       Thread-253914][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 11:53:11,038 [DEBUG][       Thread-253914][   transport.py][1871] : Compression: none
2025-06-13 11:53:11,038 [DEBUG][       Thread-253914][   transport.py][1871] : === End of kex handshake ===
2025-06-13 11:53:11,056 [DEBUG][       Thread-253914][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 11:53:11,056 [DEBUG][       Thread-253914][   transport.py][1871] : Switch to new keys ...
2025-06-13 11:53:11,057 [DEBUG][       Thread-253914][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 11:53:11,057 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 11:53:11,057 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 11:53:11,058 [DEBUG][       Thread-253914][   transport.py][1871] : userauth is OK
2025-06-13 11:53:11,083 [ INFO][       Thread-253914][   transport.py][1871] : Authentication (password) successful!
2025-06-13 11:53:11,084 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 11:53:11,514 [DEBUG][Thread-253916 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:53:11,710 [DEBUG][       Thread-253914][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 11:53:11,710 [DEBUG][       Thread-253914][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 11:53:11,753 [DEBUG][       Thread-253914][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 11:53:11,753 [DEBUG][       Thread-253914][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 11:53:11,756 [DEBUG][       Thread-253914][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 11:53:11,769 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 11:53:11,769 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 11:53:11,771 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 11:53:11,773 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 11:53:11,778 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 11:53:11,780 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 11:53:11,780 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 11:53:11,781 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 11:53:11,781 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.411744 -999.00  +11.00  20.92     46   +0.00 1 1 1 1 1   888    0 12.18 64.97 ----- 21.0 20.9 52.8 25.7 15.4 -28.7 14.1 -29.8 13.6 -29.7 14.9 -26.7
2025-06-13 11:53:11,781 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 11:53:11,782 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 11:53:11,782 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.411744
2025-06-13 11:53:11,782 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 11:53:11,783 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 11:53:11,783 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 11:53:11,783 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 11:53:11,783 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 11:53:11,783 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T11:53:04', tmtdew=12.05, humidity=43.13, cloud=0.0, wind=23.1, temperature=11.04, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T09:52:54.682', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 11:53:11,783 [DEBUG][       Thread-253914][   transport.py][1871] : EOF in transport thread
2025-06-13 11:53:11,867 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 11:53:11,879 [DEBUG][       Thread-253918][   transport.py][1871] : starting thread (client mode): 0x863a45e0
2025-06-13 11:53:11,879 [DEBUG][       Thread-253918][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 11:53:11,893 [DEBUG][       Thread-253918][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 11:53:11,893 [ INFO][       Thread-253918][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 11:53:11,901 [DEBUG][       Thread-253918][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 11:53:11,901 [DEBUG][       Thread-253918][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 11:53:11,901 [DEBUG][       Thread-253918][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 11:53:11,901 [DEBUG][       Thread-253918][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:53:11,901 [DEBUG][       Thread-253918][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:53:11,901 [DEBUG][       Thread-253918][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:53:11,901 [DEBUG][       Thread-253918][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:53:11,901 [DEBUG][       Thread-253918][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 11:53:11,901 [DEBUG][       Thread-253918][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 11:53:11,901 [DEBUG][       Thread-253918][   transport.py][1871] : client lang: <none>
2025-06-13 11:53:11,901 [DEBUG][       Thread-253918][   transport.py][1871] : server lang: <none>
2025-06-13 11:53:11,901 [DEBUG][       Thread-253918][   transport.py][1871] : kex follows: False
2025-06-13 11:53:11,901 [DEBUG][       Thread-253918][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 11:53:11,901 [DEBUG][       Thread-253918][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 11:53:11,902 [DEBUG][       Thread-253918][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 11:53:11,902 [DEBUG][       Thread-253918][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 11:53:11,902 [DEBUG][       Thread-253918][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 11:53:11,902 [DEBUG][       Thread-253918][   transport.py][1871] : Compression: none
2025-06-13 11:53:11,902 [DEBUG][       Thread-253918][   transport.py][1871] : === End of kex handshake ===
2025-06-13 11:53:11,962 [DEBUG][       Thread-253918][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 11:53:11,963 [DEBUG][       Thread-253918][   transport.py][1871] : Switch to new keys ...
2025-06-13 11:53:11,963 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 11:53:11,964 [DEBUG][       Thread-253918][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 11:53:11,965 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 11:53:12,018 [DEBUG][       Thread-253918][   transport.py][1871] : userauth is OK
2025-06-13 11:53:12,018 [DEBUG][       Thread-253918][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 11:53:12,018 [DEBUG][       Thread-253918][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 11:53:12,019 [DEBUG][       Thread-253918][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 11:53:12,019 [DEBUG][       Thread-253918][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 11:53:12,037 [ INFO][       Thread-253918][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 11:53:12,038 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 11:53:12,038 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 11:53:12,349 [DEBUG][       Thread-253918][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 11:53:12,349 [DEBUG][       Thread-253918][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 11:53:12,401 [DEBUG][       Thread-253918][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 11:53:12,401 [DEBUG][       Thread-253918][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 11:53:12,410 [DEBUG][       Thread-253918][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 11:53:12,419 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 11:53:12,419 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 11:53:12,428 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 11:53:12,436 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 11:53:12,437 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 11:53:12,437 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 11:53:12,445 [DEBUG][       Thread-253918][   transport.py][1871] : EOF in transport thread
2025-06-13 11:53:20,534 [DEBUG][Thread-253920 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:53:22,448 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 11:53:22,448 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 11:53:22,448 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 11:53:22,450 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 11:53:22,896 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 11, 53, 4), 12.05, 43.13, 0.0, 23.1, 11.04, 0, 0, 0, 2, 0, 0),)
2025-06-13 11:53:22,896 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 11:53:04
2025-06-13 11:53:22,976 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 11:53:22,980 [DEBUG][       Thread-253921][   transport.py][1871] : starting thread (client mode): 0x863a4c70
2025-06-13 11:53:22,980 [DEBUG][       Thread-253921][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 11:53:23,002 [DEBUG][       Thread-253921][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 11:53:23,002 [ INFO][       Thread-253921][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 11:53:23,003 [DEBUG][       Thread-253921][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 11:53:23,003 [DEBUG][       Thread-253921][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 11:53:23,003 [DEBUG][       Thread-253921][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 11:53:23,003 [DEBUG][       Thread-253921][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:53:23,003 [DEBUG][       Thread-253921][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:53:23,003 [DEBUG][       Thread-253921][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:53:23,003 [DEBUG][       Thread-253921][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:53:23,003 [DEBUG][       Thread-253921][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 11:53:23,003 [DEBUG][       Thread-253921][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 11:53:23,003 [DEBUG][       Thread-253921][   transport.py][1871] : client lang: <none>
2025-06-13 11:53:23,003 [DEBUG][       Thread-253921][   transport.py][1871] : server lang: <none>
2025-06-13 11:53:23,003 [DEBUG][       Thread-253921][   transport.py][1871] : kex follows: False
2025-06-13 11:53:23,003 [DEBUG][       Thread-253921][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 11:53:23,003 [DEBUG][       Thread-253921][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 11:53:23,003 [DEBUG][       Thread-253921][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 11:53:23,003 [DEBUG][       Thread-253921][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 11:53:23,003 [DEBUG][       Thread-253921][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 11:53:23,003 [DEBUG][       Thread-253921][   transport.py][1871] : Compression: none
2025-06-13 11:53:23,003 [DEBUG][       Thread-253921][   transport.py][1871] : === End of kex handshake ===
2025-06-13 11:53:23,011 [DEBUG][       Thread-253921][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 11:53:23,011 [DEBUG][       Thread-253921][   transport.py][1871] : Switch to new keys ...
2025-06-13 11:53:23,011 [DEBUG][       Thread-253921][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 11:53:23,011 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 11:53:23,012 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 11:53:23,012 [DEBUG][       Thread-253921][   transport.py][1871] : userauth is OK
2025-06-13 11:53:23,025 [ INFO][       Thread-253921][   transport.py][1871] : Authentication (password) successful!
2025-06-13 11:53:23,025 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 11:53:23,633 [DEBUG][       Thread-253921][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 11:53:23,633 [DEBUG][       Thread-253921][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 11:53:23,677 [DEBUG][       Thread-253921][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 11:53:23,677 [DEBUG][       Thread-253921][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 11:53:23,681 [DEBUG][       Thread-253921][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 11:53:23,694 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 11:53:23,695 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 11:53:23,696 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 11:53:23,698 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 11:53:23,702 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 11:53:23,704 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 11:53:23,704 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 11:53:23,705 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 11:53:23,705 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.411744 -999.00  +11.00  20.92     46   +0.00 1 1 1 1 1   888    0 12.18 64.97 ----- 21.0 20.9 52.8 25.7 15.4 -28.7 14.1 -29.8 13.6 -29.7 14.9 -26.7
2025-06-13 11:53:23,705 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 11:53:23,705 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 11:53:23,705 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.411744
2025-06-13 11:53:23,706 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 11:53:23,706 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 11:53:23,706 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 11:53:23,706 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 11:53:23,706 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 11:53:23,707 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T11:53:04', tmtdew=12.05, humidity=43.13, cloud=0.0, wind=23.1, temperature=11.04, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T09:52:54.682', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 11:53:23,707 [DEBUG][       Thread-253921][   transport.py][1871] : EOF in transport thread
2025-06-13 11:53:23,792 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 11:53:29,569 [DEBUG][Thread-253924 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:53:38,586 [DEBUG][Thread-253925 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:53:38,648 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:53:38,649 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:53:47,605 [DEBUG][Thread-253926 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:53:48,800 [DEBUG][Thread-253927 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:53:49,877 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:53:49,878 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:53:56,628 [DEBUG][Thread-253928 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:54:05,648 [DEBUG][Thread-253929 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:54:10,520 [DEBUG][Thread-253930 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:54:14,669 [DEBUG][Thread-253931 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:54:23,691 [DEBUG][Thread-253932 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:54:32,715 [DEBUG][Thread-253933 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:54:38,786 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:54:38,787 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:54:41,733 [DEBUG][Thread-253934 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:54:49,961 [DEBUG][Thread-253935 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:54:50,751 [DEBUG][Thread-253936 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:54:51,018 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:54:51,019 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:54:59,773 [DEBUG][Thread-253937 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:55:08,794 [DEBUG][Thread-253938 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:55:10,571 [DEBUG][Thread-253939 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:55:17,816 [DEBUG][Thread-253940 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:55:26,834 [DEBUG][Thread-253941 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:55:33,780 [WARNING][ poll_weather_worker][      driver.py][ 286] : Unable to open ssh connection for writing weather state to io.saao.ac.za: [Errno 110] Connection timed out
2025-06-13 11:55:35,858 [DEBUG][Thread-253942 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:55:38,942 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:55:38,943 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:55:43,788 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 11:55:43,788 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 11:55:43,788 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 11:55:43,791 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 11:55:44,272 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 11, 55, 11), 12.29, 42.48, 0.0, 19.53, 11.26, 0, 0, 0, 2, 0, 0),)
2025-06-13 11:55:44,273 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 11:55:11
2025-06-13 11:55:44,358 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 11:55:44,362 [DEBUG][       Thread-253943][   transport.py][1871] : starting thread (client mode): 0x863bf850
2025-06-13 11:55:44,362 [DEBUG][       Thread-253943][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 11:55:44,377 [DEBUG][       Thread-253943][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 11:55:44,377 [ INFO][       Thread-253943][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 11:55:44,380 [DEBUG][       Thread-253943][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 11:55:44,380 [DEBUG][       Thread-253943][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 11:55:44,380 [DEBUG][       Thread-253943][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 11:55:44,380 [DEBUG][       Thread-253943][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:55:44,381 [DEBUG][       Thread-253943][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:55:44,381 [DEBUG][       Thread-253943][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:55:44,381 [DEBUG][       Thread-253943][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:55:44,381 [DEBUG][       Thread-253943][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 11:55:44,381 [DEBUG][       Thread-253943][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 11:55:44,381 [DEBUG][       Thread-253943][   transport.py][1871] : client lang: <none>
2025-06-13 11:55:44,381 [DEBUG][       Thread-253943][   transport.py][1871] : server lang: <none>
2025-06-13 11:55:44,381 [DEBUG][       Thread-253943][   transport.py][1871] : kex follows: False
2025-06-13 11:55:44,381 [DEBUG][       Thread-253943][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 11:55:44,381 [DEBUG][       Thread-253943][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 11:55:44,381 [DEBUG][       Thread-253943][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 11:55:44,381 [DEBUG][       Thread-253943][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 11:55:44,381 [DEBUG][       Thread-253943][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 11:55:44,381 [DEBUG][       Thread-253943][   transport.py][1871] : Compression: none
2025-06-13 11:55:44,381 [DEBUG][       Thread-253943][   transport.py][1871] : === End of kex handshake ===
2025-06-13 11:55:44,398 [DEBUG][       Thread-253943][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 11:55:44,399 [DEBUG][       Thread-253943][   transport.py][1871] : Switch to new keys ...
2025-06-13 11:55:44,399 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 11:55:44,400 [DEBUG][       Thread-253943][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 11:55:44,400 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 11:55:44,401 [DEBUG][       Thread-253943][   transport.py][1871] : userauth is OK
2025-06-13 11:55:44,414 [ INFO][       Thread-253943][   transport.py][1871] : Authentication (password) successful!
2025-06-13 11:55:44,414 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 11:55:44,880 [DEBUG][Thread-253945 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:55:44,978 [DEBUG][       Thread-253943][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 11:55:44,978 [DEBUG][       Thread-253943][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 11:55:45,020 [DEBUG][       Thread-253943][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 11:55:45,020 [DEBUG][       Thread-253943][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 11:55:45,022 [DEBUG][       Thread-253943][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 11:55:45,032 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 11:55:45,033 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 11:55:45,033 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 11:55:45,035 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 11:55:45,037 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 11:55:45,038 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 11:55:45,038 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 11:55:45,038 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 11:55:45,039 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.413133 -999.00  +11.20  25.21     47   +0.30 1 1 1 1 1   888    0 12.48 66.96 ----- 24.5 25.2 44.6 29.0 15.4 -28.3 14.1 -30.1 13.6 -28.1 15.0 -27.2
2025-06-13 11:55:45,039 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 11:55:45,039 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 11:55:45,039 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.413133
2025-06-13 11:55:45,039 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 11:55:45,039 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 11:55:45,039 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 11:55:45,039 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 11:55:45,039 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 11:55:45,039 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T11:55:11', tmtdew=12.29, humidity=42.48, cloud=0.0, wind=19.53, temperature=11.26, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T09:54:54.691', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 11:55:45,039 [DEBUG][       Thread-253943][   transport.py][1871] : EOF in transport thread
2025-06-13 11:55:45,117 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 11:55:45,133 [DEBUG][       Thread-253947][   transport.py][1871] : starting thread (client mode): 0x867fefb0
2025-06-13 11:55:45,133 [DEBUG][       Thread-253947][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 11:55:45,148 [DEBUG][       Thread-253947][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 11:55:45,148 [ INFO][       Thread-253947][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 11:55:45,155 [DEBUG][       Thread-253947][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 11:55:45,155 [DEBUG][       Thread-253947][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 11:55:45,155 [DEBUG][       Thread-253947][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 11:55:45,155 [DEBUG][       Thread-253947][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:55:45,155 [DEBUG][       Thread-253947][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:55:45,155 [DEBUG][       Thread-253947][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:55:45,155 [DEBUG][       Thread-253947][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:55:45,155 [DEBUG][       Thread-253947][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 11:55:45,155 [DEBUG][       Thread-253947][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 11:55:45,155 [DEBUG][       Thread-253947][   transport.py][1871] : client lang: <none>
2025-06-13 11:55:45,155 [DEBUG][       Thread-253947][   transport.py][1871] : server lang: <none>
2025-06-13 11:55:45,155 [DEBUG][       Thread-253947][   transport.py][1871] : kex follows: False
2025-06-13 11:55:45,155 [DEBUG][       Thread-253947][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 11:55:45,155 [DEBUG][       Thread-253947][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 11:55:45,155 [DEBUG][       Thread-253947][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 11:55:45,155 [DEBUG][       Thread-253947][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 11:55:45,155 [DEBUG][       Thread-253947][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 11:55:45,155 [DEBUG][       Thread-253947][   transport.py][1871] : Compression: none
2025-06-13 11:55:45,155 [DEBUG][       Thread-253947][   transport.py][1871] : === End of kex handshake ===
2025-06-13 11:55:45,211 [DEBUG][       Thread-253947][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 11:55:45,211 [DEBUG][       Thread-253947][   transport.py][1871] : Switch to new keys ...
2025-06-13 11:55:45,211 [DEBUG][       Thread-253947][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 11:55:45,212 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 11:55:45,212 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 11:55:45,274 [DEBUG][       Thread-253947][   transport.py][1871] : userauth is OK
2025-06-13 11:55:45,274 [DEBUG][       Thread-253947][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 11:55:45,274 [DEBUG][       Thread-253947][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 11:55:45,274 [DEBUG][       Thread-253947][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 11:55:45,274 [DEBUG][       Thread-253947][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 11:55:45,290 [ INFO][       Thread-253947][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 11:55:45,290 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 11:55:45,290 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 11:55:46,286 [DEBUG][       Thread-253947][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 11:55:46,286 [DEBUG][       Thread-253947][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 11:55:46,335 [DEBUG][       Thread-253947][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 11:55:46,336 [DEBUG][       Thread-253947][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 11:55:46,344 [DEBUG][       Thread-253947][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 11:55:46,352 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 11:55:46,352 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 11:55:46,360 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 11:55:46,368 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 11:55:46,369 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 11:55:46,369 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 11:55:46,376 [DEBUG][       Thread-253947][   transport.py][1871] : EOF in transport thread
2025-06-13 11:55:51,094 [DEBUG][Thread-253949 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:55:52,165 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:55:52,166 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:55:53,901 [DEBUG][Thread-253950 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:55:56,379 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 11:55:56,379 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 11:55:56,380 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 11:55:56,383 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 11:55:56,859 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 11, 55, 44), 12.27, 42.55, 0.0, 19.83, 11.25, 0, 0, 0, 2, 0, 0),)
2025-06-13 11:55:56,859 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 11:55:44
2025-06-13 11:55:56,940 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 11:55:56,944 [DEBUG][       Thread-253951][   transport.py][1871] : starting thread (client mode): 0x84206a70
2025-06-13 11:55:56,944 [DEBUG][       Thread-253951][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 11:55:56,958 [DEBUG][       Thread-253951][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 11:55:56,958 [ INFO][       Thread-253951][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 11:55:56,960 [DEBUG][       Thread-253951][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 11:55:56,960 [DEBUG][       Thread-253951][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 11:55:56,960 [DEBUG][       Thread-253951][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 11:55:56,960 [DEBUG][       Thread-253951][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:55:56,960 [DEBUG][       Thread-253951][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:55:56,960 [DEBUG][       Thread-253951][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:55:56,960 [DEBUG][       Thread-253951][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:55:56,960 [DEBUG][       Thread-253951][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 11:55:56,960 [DEBUG][       Thread-253951][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 11:55:56,960 [DEBUG][       Thread-253951][   transport.py][1871] : client lang: <none>
2025-06-13 11:55:56,960 [DEBUG][       Thread-253951][   transport.py][1871] : server lang: <none>
2025-06-13 11:55:56,960 [DEBUG][       Thread-253951][   transport.py][1871] : kex follows: False
2025-06-13 11:55:56,960 [DEBUG][       Thread-253951][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 11:55:56,960 [DEBUG][       Thread-253951][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 11:55:56,960 [DEBUG][       Thread-253951][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 11:55:56,960 [DEBUG][       Thread-253951][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 11:55:56,960 [DEBUG][       Thread-253951][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 11:55:56,960 [DEBUG][       Thread-253951][   transport.py][1871] : Compression: none
2025-06-13 11:55:56,960 [DEBUG][       Thread-253951][   transport.py][1871] : === End of kex handshake ===
2025-06-13 11:55:56,968 [DEBUG][       Thread-253951][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 11:55:56,968 [DEBUG][       Thread-253951][   transport.py][1871] : Switch to new keys ...
2025-06-13 11:55:56,968 [DEBUG][       Thread-253951][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 11:55:56,968 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 11:55:56,968 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 11:55:56,969 [DEBUG][       Thread-253951][   transport.py][1871] : userauth is OK
2025-06-13 11:55:56,995 [ INFO][       Thread-253951][   transport.py][1871] : Authentication (password) successful!
2025-06-13 11:55:56,996 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 11:55:57,542 [DEBUG][       Thread-253951][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 11:55:57,542 [DEBUG][       Thread-253951][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 11:55:57,585 [DEBUG][       Thread-253951][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 11:55:57,585 [DEBUG][       Thread-253951][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 11:55:57,588 [DEBUG][       Thread-253951][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 11:55:57,600 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 11:55:57,600 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 11:55:57,602 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 11:55:57,604 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 11:55:57,610 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 11:55:57,612 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 11:55:57,612 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 11:55:57,613 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 11:55:57,613 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.413480 -999.00  +11.10  18.09     47   +0.20 1 1 1 1 1   888    0 12.40 68.23 ----- 23.1 18.1 47.8 26.2 15.5 -28.0 14.1 -29.4 13.6 -29.3 15.0 -27.0
2025-06-13 11:55:57,613 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 11:55:57,613 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 11:55:57,613 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.413480
2025-06-13 11:55:57,614 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 11:55:57,614 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 11:55:57,615 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 11:55:57,615 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 11:55:57,615 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 11:55:57,615 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T11:55:44', tmtdew=12.27, humidity=42.55, cloud=0.0, wind=19.83, temperature=11.25, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T09:55:24.672', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 11:55:57,616 [DEBUG][       Thread-253951][   transport.py][1871] : EOF in transport thread
2025-06-13 11:55:57,699 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 11:55:57,708 [DEBUG][       Thread-253954][   transport.py][1871] : starting thread (client mode): 0x8636a980
2025-06-13 11:55:57,708 [DEBUG][       Thread-253954][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 11:55:57,722 [DEBUG][       Thread-253954][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 11:55:57,722 [ INFO][       Thread-253954][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 11:55:57,730 [DEBUG][       Thread-253954][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 11:55:57,730 [DEBUG][       Thread-253954][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 11:55:57,730 [DEBUG][       Thread-253954][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 11:55:57,730 [DEBUG][       Thread-253954][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:55:57,730 [DEBUG][       Thread-253954][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:55:57,730 [DEBUG][       Thread-253954][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:55:57,730 [DEBUG][       Thread-253954][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:55:57,730 [DEBUG][       Thread-253954][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 11:55:57,730 [DEBUG][       Thread-253954][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 11:55:57,730 [DEBUG][       Thread-253954][   transport.py][1871] : client lang: <none>
2025-06-13 11:55:57,730 [DEBUG][       Thread-253954][   transport.py][1871] : server lang: <none>
2025-06-13 11:55:57,730 [DEBUG][       Thread-253954][   transport.py][1871] : kex follows: False
2025-06-13 11:55:57,730 [DEBUG][       Thread-253954][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 11:55:57,730 [DEBUG][       Thread-253954][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 11:55:57,730 [DEBUG][       Thread-253954][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 11:55:57,731 [DEBUG][       Thread-253954][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 11:55:57,731 [DEBUG][       Thread-253954][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 11:55:57,731 [DEBUG][       Thread-253954][   transport.py][1871] : Compression: none
2025-06-13 11:55:57,731 [DEBUG][       Thread-253954][   transport.py][1871] : === End of kex handshake ===
2025-06-13 11:55:57,789 [DEBUG][       Thread-253954][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 11:55:57,790 [DEBUG][       Thread-253954][   transport.py][1871] : Switch to new keys ...
2025-06-13 11:55:57,791 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 11:55:57,791 [DEBUG][       Thread-253954][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 11:55:57,792 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 11:55:57,845 [DEBUG][       Thread-253954][   transport.py][1871] : userauth is OK
2025-06-13 11:55:57,845 [DEBUG][       Thread-253954][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 11:55:57,846 [DEBUG][       Thread-253954][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 11:55:57,846 [DEBUG][       Thread-253954][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 11:55:57,846 [DEBUG][       Thread-253954][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 11:55:57,865 [ INFO][       Thread-253954][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 11:55:57,865 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 11:55:57,866 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 11:55:58,880 [DEBUG][       Thread-253954][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 11:55:58,880 [DEBUG][       Thread-253954][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 11:55:58,928 [DEBUG][       Thread-253954][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 11:55:58,928 [DEBUG][       Thread-253954][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 11:55:58,947 [DEBUG][       Thread-253954][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 11:55:58,956 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 11:55:58,957 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 11:55:58,969 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 11:55:58,979 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 11:55:58,980 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 11:55:58,980 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 11:55:58,988 [DEBUG][       Thread-253954][   transport.py][1871] : EOF in transport thread
2025-06-13 11:56:02,934 [DEBUG][Thread-253956 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:56:08,991 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 11:56:08,991 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 11:56:08,991 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 11:56:08,995 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 11:56:09,470 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 11, 55, 44), 12.27, 42.55, 0.0, 19.83, 11.25, 0, 0, 0, 2, 0, 0),)
2025-06-13 11:56:09,470 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 11:55:44
2025-06-13 11:56:09,552 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 11:56:09,558 [DEBUG][       Thread-253957][   transport.py][1871] : starting thread (client mode): 0x863bd210
2025-06-13 11:56:09,558 [DEBUG][       Thread-253957][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 11:56:09,579 [DEBUG][       Thread-253957][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 11:56:09,579 [ INFO][       Thread-253957][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 11:56:09,581 [DEBUG][       Thread-253957][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 11:56:09,581 [DEBUG][       Thread-253957][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 11:56:09,581 [DEBUG][       Thread-253957][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 11:56:09,581 [DEBUG][       Thread-253957][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:56:09,581 [DEBUG][       Thread-253957][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:56:09,581 [DEBUG][       Thread-253957][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:56:09,581 [DEBUG][       Thread-253957][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:56:09,581 [DEBUG][       Thread-253957][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 11:56:09,581 [DEBUG][       Thread-253957][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 11:56:09,581 [DEBUG][       Thread-253957][   transport.py][1871] : client lang: <none>
2025-06-13 11:56:09,581 [DEBUG][       Thread-253957][   transport.py][1871] : server lang: <none>
2025-06-13 11:56:09,581 [DEBUG][       Thread-253957][   transport.py][1871] : kex follows: False
2025-06-13 11:56:09,581 [DEBUG][       Thread-253957][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 11:56:09,581 [DEBUG][       Thread-253957][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 11:56:09,582 [DEBUG][       Thread-253957][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 11:56:09,582 [DEBUG][       Thread-253957][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 11:56:09,582 [DEBUG][       Thread-253957][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 11:56:09,582 [DEBUG][       Thread-253957][   transport.py][1871] : Compression: none
2025-06-13 11:56:09,582 [DEBUG][       Thread-253957][   transport.py][1871] : === End of kex handshake ===
2025-06-13 11:56:09,594 [DEBUG][       Thread-253957][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 11:56:09,595 [DEBUG][       Thread-253957][   transport.py][1871] : Switch to new keys ...
2025-06-13 11:56:09,595 [DEBUG][       Thread-253957][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 11:56:09,595 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 11:56:09,596 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 11:56:09,597 [DEBUG][       Thread-253957][   transport.py][1871] : userauth is OK
2025-06-13 11:56:09,622 [ INFO][       Thread-253957][   transport.py][1871] : Authentication (password) successful!
2025-06-13 11:56:09,622 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 11:56:10,401 [DEBUG][       Thread-253957][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 11:56:10,401 [DEBUG][       Thread-253957][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 11:56:10,445 [DEBUG][       Thread-253957][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 11:56:10,445 [DEBUG][       Thread-253957][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 11:56:10,449 [DEBUG][       Thread-253957][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 11:56:10,461 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 11:56:10,462 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 11:56:10,464 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 11:56:10,466 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 11:56:10,471 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 11:56:10,473 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 11:56:10,473 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 11:56:10,474 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 11:56:10,474 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.413480 -999.00  +11.10  18.09     47   +0.20 1 1 1 1 1   888    0 12.40 68.23 ----- 23.1 18.1 47.8 26.2 15.5 -28.0 14.1 -29.4 13.6 -29.3 15.0 -27.0
2025-06-13 11:56:10,474 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 11:56:10,474 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 11:56:10,474 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.413480
2025-06-13 11:56:10,475 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 11:56:10,475 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 11:56:10,475 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 11:56:10,475 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 11:56:10,476 [DEBUG][       Thread-253957][   transport.py][1871] : EOF in transport thread
2025-06-13 11:56:10,476 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 11:56:10,477 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T11:55:44', tmtdew=12.27, humidity=42.55, cloud=0.0, wind=19.83, temperature=11.25, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T09:55:24.672', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 11:56:10,560 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 11:56:10,572 [DEBUG][       Thread-253960][   transport.py][1871] : starting thread (client mode): 0x867fcb80
2025-06-13 11:56:10,572 [DEBUG][       Thread-253960][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 11:56:10,587 [DEBUG][       Thread-253960][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 11:56:10,587 [ INFO][       Thread-253960][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 11:56:10,594 [DEBUG][       Thread-253960][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 11:56:10,594 [DEBUG][       Thread-253960][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 11:56:10,594 [DEBUG][       Thread-253960][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 11:56:10,594 [DEBUG][       Thread-253960][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:56:10,594 [DEBUG][       Thread-253960][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:56:10,594 [DEBUG][       Thread-253960][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:56:10,594 [DEBUG][       Thread-253960][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:56:10,594 [DEBUG][       Thread-253960][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 11:56:10,595 [DEBUG][       Thread-253960][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 11:56:10,595 [DEBUG][       Thread-253960][   transport.py][1871] : client lang: <none>
2025-06-13 11:56:10,595 [DEBUG][       Thread-253960][   transport.py][1871] : server lang: <none>
2025-06-13 11:56:10,595 [DEBUG][       Thread-253960][   transport.py][1871] : kex follows: False
2025-06-13 11:56:10,595 [DEBUG][       Thread-253960][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 11:56:10,595 [DEBUG][       Thread-253960][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 11:56:10,595 [DEBUG][       Thread-253960][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 11:56:10,595 [DEBUG][       Thread-253960][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 11:56:10,595 [DEBUG][       Thread-253960][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 11:56:10,595 [DEBUG][       Thread-253960][   transport.py][1871] : Compression: none
2025-06-13 11:56:10,595 [DEBUG][       Thread-253960][   transport.py][1871] : === End of kex handshake ===
2025-06-13 11:56:10,624 [DEBUG][Thread-253962 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:56:10,652 [DEBUG][       Thread-253960][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 11:56:10,653 [DEBUG][       Thread-253960][   transport.py][1871] : Switch to new keys ...
2025-06-13 11:56:10,653 [DEBUG][       Thread-253960][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 11:56:10,653 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 11:56:10,654 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 11:56:10,709 [DEBUG][       Thread-253960][   transport.py][1871] : userauth is OK
2025-06-13 11:56:10,710 [DEBUG][       Thread-253960][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 11:56:10,710 [DEBUG][       Thread-253960][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 11:56:10,710 [DEBUG][       Thread-253960][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 11:56:10,710 [DEBUG][       Thread-253960][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 11:56:10,728 [ INFO][       Thread-253960][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 11:56:10,728 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 11:56:10,728 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 11:56:11,739 [DEBUG][       Thread-253960][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 11:56:11,739 [DEBUG][       Thread-253960][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 11:56:11,788 [DEBUG][       Thread-253960][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 11:56:11,788 [DEBUG][       Thread-253960][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 11:56:11,798 [DEBUG][       Thread-253960][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 11:56:11,810 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 11:56:11,811 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 11:56:11,819 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 11:56:11,828 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 11:56:11,829 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 11:56:11,829 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 11:56:11,837 [DEBUG][       Thread-253960][   transport.py][1871] : EOF in transport thread
2025-06-13 11:56:11,973 [DEBUG][Thread-253963 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:56:20,994 [DEBUG][Thread-253964 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:56:21,840 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 11:56:21,840 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 11:56:21,840 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 11:56:21,844 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 11:56:22,318 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 11, 56, 16), 12.19, 42.81, 0.0, 14.43, 11.37, 0, 0, 0, 2, 0, 0),)
2025-06-13 11:56:22,318 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 11:56:16
2025-06-13 11:56:22,400 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 11:56:22,404 [DEBUG][       Thread-253965][   transport.py][1871] : starting thread (client mode): 0x84207ee0
2025-06-13 11:56:22,405 [DEBUG][       Thread-253965][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 11:56:22,425 [DEBUG][       Thread-253965][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 11:56:22,425 [ INFO][       Thread-253965][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 11:56:22,429 [DEBUG][       Thread-253965][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 11:56:22,429 [DEBUG][       Thread-253965][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 11:56:22,429 [DEBUG][       Thread-253965][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 11:56:22,429 [DEBUG][       Thread-253965][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:56:22,429 [DEBUG][       Thread-253965][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:56:22,429 [DEBUG][       Thread-253965][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:56:22,429 [DEBUG][       Thread-253965][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:56:22,429 [DEBUG][       Thread-253965][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 11:56:22,429 [DEBUG][       Thread-253965][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 11:56:22,429 [DEBUG][       Thread-253965][   transport.py][1871] : client lang: <none>
2025-06-13 11:56:22,429 [DEBUG][       Thread-253965][   transport.py][1871] : server lang: <none>
2025-06-13 11:56:22,429 [DEBUG][       Thread-253965][   transport.py][1871] : kex follows: False
2025-06-13 11:56:22,429 [DEBUG][       Thread-253965][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 11:56:22,429 [DEBUG][       Thread-253965][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 11:56:22,429 [DEBUG][       Thread-253965][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 11:56:22,429 [DEBUG][       Thread-253965][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 11:56:22,429 [DEBUG][       Thread-253965][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 11:56:22,429 [DEBUG][       Thread-253965][   transport.py][1871] : Compression: none
2025-06-13 11:56:22,429 [DEBUG][       Thread-253965][   transport.py][1871] : === End of kex handshake ===
2025-06-13 11:56:22,446 [DEBUG][       Thread-253965][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 11:56:22,446 [DEBUG][       Thread-253965][   transport.py][1871] : Switch to new keys ...
2025-06-13 11:56:22,447 [DEBUG][       Thread-253965][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 11:56:22,447 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 11:56:22,447 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 11:56:22,448 [DEBUG][       Thread-253965][   transport.py][1871] : userauth is OK
2025-06-13 11:56:22,462 [ INFO][       Thread-253965][   transport.py][1871] : Authentication (password) successful!
2025-06-13 11:56:22,463 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 11:56:23,151 [DEBUG][       Thread-253965][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 11:56:23,151 [DEBUG][       Thread-253965][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 11:56:23,192 [DEBUG][       Thread-253965][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 11:56:23,192 [DEBUG][       Thread-253965][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 11:56:23,195 [DEBUG][       Thread-253965][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 11:56:23,208 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 11:56:23,208 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 11:56:23,209 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 11:56:23,209 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 11:56:23,212 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 11:56:23,213 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 11:56:23,213 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 11:56:23,213 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 11:56:23,213 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.413480 -999.00  +11.10  18.09     47   +0.20 1 1 1 1 1   888    0 12.40 68.23 ----- 23.1 18.1 47.8 26.2 15.5 -28.0 14.1 -29.4 13.6 -29.3 15.0 -27.0
2025-06-13 11:56:23,213 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 11:56:23,213 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 11:56:23,213 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.413480
2025-06-13 11:56:23,213 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 11:56:23,213 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 11:56:23,213 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 11:56:23,213 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 11:56:23,213 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 11:56:23,213 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T11:56:16', tmtdew=12.19, humidity=42.81, cloud=0.0, wind=14.43, temperature=11.37, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T09:55:24.672', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 11:56:23,213 [DEBUG][       Thread-253965][   transport.py][1871] : EOF in transport thread
2025-06-13 11:56:23,285 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 11:56:23,294 [DEBUG][       Thread-253968][   transport.py][1871] : starting thread (client mode): 0x863a5030
2025-06-13 11:56:23,294 [DEBUG][       Thread-253968][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 11:56:23,309 [DEBUG][       Thread-253968][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 11:56:23,309 [ INFO][       Thread-253968][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 11:56:23,317 [DEBUG][       Thread-253968][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 11:56:23,317 [DEBUG][       Thread-253968][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 11:56:23,317 [DEBUG][       Thread-253968][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 11:56:23,317 [DEBUG][       Thread-253968][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:56:23,317 [DEBUG][       Thread-253968][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:56:23,317 [DEBUG][       Thread-253968][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:56:23,317 [DEBUG][       Thread-253968][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:56:23,317 [DEBUG][       Thread-253968][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 11:56:23,317 [DEBUG][       Thread-253968][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 11:56:23,317 [DEBUG][       Thread-253968][   transport.py][1871] : client lang: <none>
2025-06-13 11:56:23,317 [DEBUG][       Thread-253968][   transport.py][1871] : server lang: <none>
2025-06-13 11:56:23,317 [DEBUG][       Thread-253968][   transport.py][1871] : kex follows: False
2025-06-13 11:56:23,317 [DEBUG][       Thread-253968][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 11:56:23,317 [DEBUG][       Thread-253968][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 11:56:23,317 [DEBUG][       Thread-253968][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 11:56:23,317 [DEBUG][       Thread-253968][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 11:56:23,317 [DEBUG][       Thread-253968][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 11:56:23,317 [DEBUG][       Thread-253968][   transport.py][1871] : Compression: none
2025-06-13 11:56:23,317 [DEBUG][       Thread-253968][   transport.py][1871] : === End of kex handshake ===
2025-06-13 11:56:23,374 [DEBUG][       Thread-253968][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 11:56:23,374 [DEBUG][       Thread-253968][   transport.py][1871] : Switch to new keys ...
2025-06-13 11:56:23,375 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 11:56:23,376 [DEBUG][       Thread-253968][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 11:56:23,376 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 11:56:23,429 [DEBUG][       Thread-253968][   transport.py][1871] : userauth is OK
2025-06-13 11:56:23,430 [DEBUG][       Thread-253968][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 11:56:23,430 [DEBUG][       Thread-253968][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 11:56:23,430 [DEBUG][       Thread-253968][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 11:56:23,430 [DEBUG][       Thread-253968][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 11:56:23,448 [ INFO][       Thread-253968][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 11:56:23,449 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 11:56:23,449 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 11:56:24,506 [DEBUG][       Thread-253968][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 11:56:24,506 [DEBUG][       Thread-253968][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 11:56:24,556 [DEBUG][       Thread-253968][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 11:56:24,556 [DEBUG][       Thread-253968][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 11:56:24,565 [DEBUG][       Thread-253968][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 11:56:24,574 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 11:56:24,575 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 11:56:24,583 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 11:56:24,592 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 11:56:24,593 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 11:56:24,593 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 11:56:24,601 [DEBUG][       Thread-253968][   transport.py][1871] : EOF in transport thread
2025-06-13 11:56:30,016 [DEBUG][Thread-253970 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:56:34,600 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 11:56:34,600 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 11:56:34,600 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 11:56:34,603 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 11:56:35,086 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 11, 56, 16), 12.19, 42.81, 0.0, 14.43, 11.37, 0, 0, 0, 2, 0, 0),)
2025-06-13 11:56:35,086 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 11:56:16
2025-06-13 11:56:35,168 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 11:56:35,172 [DEBUG][       Thread-253971][   transport.py][1871] : starting thread (client mode): 0x8636a800
2025-06-13 11:56:35,172 [DEBUG][       Thread-253971][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 11:56:35,191 [DEBUG][       Thread-253971][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 11:56:35,191 [ INFO][       Thread-253971][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 11:56:35,192 [DEBUG][       Thread-253971][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 11:56:35,192 [DEBUG][       Thread-253971][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 11:56:35,192 [DEBUG][       Thread-253971][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 11:56:35,193 [DEBUG][       Thread-253971][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:56:35,193 [DEBUG][       Thread-253971][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:56:35,193 [DEBUG][       Thread-253971][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:56:35,193 [DEBUG][       Thread-253971][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:56:35,193 [DEBUG][       Thread-253971][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 11:56:35,193 [DEBUG][       Thread-253971][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 11:56:35,193 [DEBUG][       Thread-253971][   transport.py][1871] : client lang: <none>
2025-06-13 11:56:35,193 [DEBUG][       Thread-253971][   transport.py][1871] : server lang: <none>
2025-06-13 11:56:35,193 [DEBUG][       Thread-253971][   transport.py][1871] : kex follows: False
2025-06-13 11:56:35,193 [DEBUG][       Thread-253971][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 11:56:35,193 [DEBUG][       Thread-253971][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 11:56:35,193 [DEBUG][       Thread-253971][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 11:56:35,193 [DEBUG][       Thread-253971][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 11:56:35,193 [DEBUG][       Thread-253971][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 11:56:35,193 [DEBUG][       Thread-253971][   transport.py][1871] : Compression: none
2025-06-13 11:56:35,193 [DEBUG][       Thread-253971][   transport.py][1871] : === End of kex handshake ===
2025-06-13 11:56:35,201 [DEBUG][       Thread-253971][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 11:56:35,201 [DEBUG][       Thread-253971][   transport.py][1871] : Switch to new keys ...
2025-06-13 11:56:35,202 [DEBUG][       Thread-253971][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 11:56:35,202 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 11:56:35,202 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 11:56:35,203 [DEBUG][       Thread-253971][   transport.py][1871] : userauth is OK
2025-06-13 11:56:35,216 [ INFO][       Thread-253971][   transport.py][1871] : Authentication (password) successful!
2025-06-13 11:56:35,216 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 11:56:35,859 [DEBUG][       Thread-253971][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 11:56:35,860 [DEBUG][       Thread-253971][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 11:56:35,901 [DEBUG][       Thread-253971][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 11:56:35,901 [DEBUG][       Thread-253971][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 11:56:35,905 [DEBUG][       Thread-253971][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 11:56:35,918 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 11:56:35,919 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 11:56:35,921 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 11:56:35,923 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 11:56:35,929 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 11:56:35,931 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 11:56:35,931 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 11:56:35,932 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 11:56:35,932 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.414175 -999.00  +11.10  23.67     47   +0.50 1 1 1 1 1   888    0 12.46 68.86 ----- 24.5 23.7 56.4 28.3 15.5 -28.1 14.1 -30.0 13.7 -28.1 15.1 -26.6
2025-06-13 11:56:35,932 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 11:56:35,932 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 11:56:35,932 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.414175
2025-06-13 11:56:35,933 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 11:56:35,933 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 11:56:35,933 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 11:56:35,933 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 11:56:35,933 [DEBUG][       Thread-253971][   transport.py][1871] : EOF in transport thread
2025-06-13 11:56:35,934 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 11:56:35,934 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T11:56:16', tmtdew=12.19, humidity=42.81, cloud=0.0, wind=14.43, temperature=11.37, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T09:56:24.720', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 11:56:36,017 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 11:56:36,029 [DEBUG][       Thread-253974][   transport.py][1871] : starting thread (client mode): 0x863c8be0
2025-06-13 11:56:36,029 [DEBUG][       Thread-253974][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 11:56:36,045 [DEBUG][       Thread-253974][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 11:56:36,045 [ INFO][       Thread-253974][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 11:56:36,053 [DEBUG][       Thread-253974][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 11:56:36,053 [DEBUG][       Thread-253974][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 11:56:36,053 [DEBUG][       Thread-253974][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 11:56:36,053 [DEBUG][       Thread-253974][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:56:36,053 [DEBUG][       Thread-253974][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:56:36,053 [DEBUG][       Thread-253974][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:56:36,053 [DEBUG][       Thread-253974][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:56:36,053 [DEBUG][       Thread-253974][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 11:56:36,053 [DEBUG][       Thread-253974][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 11:56:36,053 [DEBUG][       Thread-253974][   transport.py][1871] : client lang: <none>
2025-06-13 11:56:36,053 [DEBUG][       Thread-253974][   transport.py][1871] : server lang: <none>
2025-06-13 11:56:36,053 [DEBUG][       Thread-253974][   transport.py][1871] : kex follows: False
2025-06-13 11:56:36,053 [DEBUG][       Thread-253974][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 11:56:36,053 [DEBUG][       Thread-253974][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 11:56:36,054 [DEBUG][       Thread-253974][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 11:56:36,054 [DEBUG][       Thread-253974][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 11:56:36,054 [DEBUG][       Thread-253974][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 11:56:36,054 [DEBUG][       Thread-253974][   transport.py][1871] : Compression: none
2025-06-13 11:56:36,054 [DEBUG][       Thread-253974][   transport.py][1871] : === End of kex handshake ===
2025-06-13 11:56:36,108 [DEBUG][       Thread-253974][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 11:56:36,108 [DEBUG][       Thread-253974][   transport.py][1871] : Switch to new keys ...
2025-06-13 11:56:36,108 [DEBUG][       Thread-253974][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 11:56:36,108 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 11:56:36,108 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 11:56:36,170 [DEBUG][       Thread-253974][   transport.py][1871] : userauth is OK
2025-06-13 11:56:36,171 [DEBUG][       Thread-253974][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 11:56:36,171 [DEBUG][       Thread-253974][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 11:56:36,171 [DEBUG][       Thread-253974][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 11:56:36,171 [DEBUG][       Thread-253974][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 11:56:36,193 [ INFO][       Thread-253974][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 11:56:36,193 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 11:56:36,194 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 11:56:37,202 [DEBUG][       Thread-253974][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 11:56:37,203 [DEBUG][       Thread-253974][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 11:56:37,252 [DEBUG][       Thread-253974][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 11:56:37,252 [DEBUG][       Thread-253974][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 11:56:37,262 [DEBUG][       Thread-253974][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 11:56:37,276 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 11:56:37,276 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 11:56:37,284 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 11:56:37,293 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 11:56:37,294 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 11:56:37,294 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 11:56:37,302 [DEBUG][       Thread-253974][   transport.py][1871] : EOF in transport thread
2025-06-13 11:56:39,049 [DEBUG][Thread-253976 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:56:39,082 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:56:39,083 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:56:47,304 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 11:56:47,304 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 11:56:47,304 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 11:56:47,307 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 11:56:47,791 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 11, 56, 16), 12.19, 42.81, 0.0, 14.43, 11.37, 0, 0, 0, 2, 0, 0),)
2025-06-13 11:56:47,791 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 11:56:16
2025-06-13 11:56:47,873 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 11:56:47,877 [DEBUG][       Thread-253977][   transport.py][1871] : starting thread (client mode): 0x863bdc00
2025-06-13 11:56:47,878 [DEBUG][       Thread-253977][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 11:56:47,893 [DEBUG][       Thread-253977][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 11:56:47,893 [ INFO][       Thread-253977][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 11:56:47,894 [DEBUG][       Thread-253977][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 11:56:47,894 [DEBUG][       Thread-253977][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 11:56:47,894 [DEBUG][       Thread-253977][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 11:56:47,894 [DEBUG][       Thread-253977][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:56:47,894 [DEBUG][       Thread-253977][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:56:47,894 [DEBUG][       Thread-253977][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:56:47,894 [DEBUG][       Thread-253977][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:56:47,894 [DEBUG][       Thread-253977][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 11:56:47,894 [DEBUG][       Thread-253977][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 11:56:47,894 [DEBUG][       Thread-253977][   transport.py][1871] : client lang: <none>
2025-06-13 11:56:47,894 [DEBUG][       Thread-253977][   transport.py][1871] : server lang: <none>
2025-06-13 11:56:47,894 [DEBUG][       Thread-253977][   transport.py][1871] : kex follows: False
2025-06-13 11:56:47,894 [DEBUG][       Thread-253977][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 11:56:47,894 [DEBUG][       Thread-253977][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 11:56:47,894 [DEBUG][       Thread-253977][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 11:56:47,894 [DEBUG][       Thread-253977][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 11:56:47,894 [DEBUG][       Thread-253977][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 11:56:47,894 [DEBUG][       Thread-253977][   transport.py][1871] : Compression: none
2025-06-13 11:56:47,894 [DEBUG][       Thread-253977][   transport.py][1871] : === End of kex handshake ===
2025-06-13 11:56:47,906 [DEBUG][       Thread-253977][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 11:56:47,906 [DEBUG][       Thread-253977][   transport.py][1871] : Switch to new keys ...
2025-06-13 11:56:47,906 [DEBUG][       Thread-253977][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 11:56:47,907 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 11:56:47,907 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 11:56:47,908 [DEBUG][       Thread-253977][   transport.py][1871] : userauth is OK
2025-06-13 11:56:47,921 [ INFO][       Thread-253977][   transport.py][1871] : Authentication (password) successful!
2025-06-13 11:56:47,922 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 11:56:48,064 [DEBUG][Thread-253979 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:56:48,561 [DEBUG][       Thread-253977][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 11:56:48,561 [DEBUG][       Thread-253977][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 11:56:48,604 [DEBUG][       Thread-253977][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 11:56:48,604 [DEBUG][       Thread-253977][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 11:56:48,607 [DEBUG][       Thread-253977][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 11:56:48,620 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 11:56:48,621 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 11:56:48,622 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 11:56:48,623 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 11:56:48,626 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 11:56:48,626 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 11:56:48,626 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 11:56:48,627 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 11:56:48,627 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.414175 -999.00  +11.10  23.67     47   +0.50 1 1 1 1 1   888    0 12.46 68.86 ----- 24.5 23.7 56.4 28.3 15.5 -28.1 14.1 -30.0 13.7 -28.1 15.1 -26.6
2025-06-13 11:56:48,627 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 11:56:48,627 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 11:56:48,627 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.414175
2025-06-13 11:56:48,627 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 11:56:48,627 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 11:56:48,627 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 11:56:48,627 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 11:56:48,627 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 11:56:48,627 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T11:56:16', tmtdew=12.19, humidity=42.81, cloud=0.0, wind=14.43, temperature=11.37, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T09:56:24.720', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 11:56:48,628 [DEBUG][       Thread-253977][   transport.py][1871] : EOF in transport thread
2025-06-13 11:56:48,704 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 11:56:48,713 [DEBUG][       Thread-253981][   transport.py][1871] : starting thread (client mode): 0x863bfbe0
2025-06-13 11:56:48,713 [DEBUG][       Thread-253981][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 11:56:48,727 [DEBUG][       Thread-253981][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 11:56:48,728 [ INFO][       Thread-253981][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 11:56:48,735 [DEBUG][       Thread-253981][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 11:56:48,735 [DEBUG][       Thread-253981][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 11:56:48,735 [DEBUG][       Thread-253981][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 11:56:48,735 [DEBUG][       Thread-253981][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:56:48,735 [DEBUG][       Thread-253981][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:56:48,735 [DEBUG][       Thread-253981][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:56:48,735 [DEBUG][       Thread-253981][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:56:48,735 [DEBUG][       Thread-253981][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 11:56:48,735 [DEBUG][       Thread-253981][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 11:56:48,735 [DEBUG][       Thread-253981][   transport.py][1871] : client lang: <none>
2025-06-13 11:56:48,735 [DEBUG][       Thread-253981][   transport.py][1871] : server lang: <none>
2025-06-13 11:56:48,735 [DEBUG][       Thread-253981][   transport.py][1871] : kex follows: False
2025-06-13 11:56:48,735 [DEBUG][       Thread-253981][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 11:56:48,735 [DEBUG][       Thread-253981][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 11:56:48,735 [DEBUG][       Thread-253981][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 11:56:48,735 [DEBUG][       Thread-253981][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 11:56:48,735 [DEBUG][       Thread-253981][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 11:56:48,735 [DEBUG][       Thread-253981][   transport.py][1871] : Compression: none
2025-06-13 11:56:48,735 [DEBUG][       Thread-253981][   transport.py][1871] : === End of kex handshake ===
2025-06-13 11:56:48,803 [DEBUG][       Thread-253981][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 11:56:48,803 [DEBUG][       Thread-253981][   transport.py][1871] : Switch to new keys ...
2025-06-13 11:56:48,803 [DEBUG][       Thread-253981][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 11:56:48,803 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 11:56:48,804 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 11:56:48,861 [DEBUG][       Thread-253981][   transport.py][1871] : userauth is OK
2025-06-13 11:56:48,861 [DEBUG][       Thread-253981][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 11:56:48,861 [DEBUG][       Thread-253981][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 11:56:48,861 [DEBUG][       Thread-253981][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 11:56:48,861 [DEBUG][       Thread-253981][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 11:56:48,884 [ INFO][       Thread-253981][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 11:56:48,885 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 11:56:48,885 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 11:56:49,917 [DEBUG][       Thread-253981][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 11:56:49,917 [DEBUG][       Thread-253981][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 11:56:49,967 [DEBUG][       Thread-253981][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 11:56:49,967 [DEBUG][       Thread-253981][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 11:56:49,975 [DEBUG][       Thread-253981][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 11:56:49,983 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 11:56:49,983 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 11:56:49,991 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 11:56:50,004 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 11:56:50,004 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 11:56:50,004 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 11:56:50,015 [DEBUG][       Thread-253981][   transport.py][1871] : EOF in transport thread
2025-06-13 11:56:52,236 [DEBUG][Thread-253983 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:56:53,326 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:56:53,327 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:56:57,084 [DEBUG][Thread-253984 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:57:00,015 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 11:57:00,015 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 11:57:00,015 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 11:57:00,018 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 11:57:00,494 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 11, 56, 47), 12.24, 42.65, 0.0, 17.66, 11.4, 0, 0, 0, 2, 0, 0),)
2025-06-13 11:57:00,494 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 11:56:47
2025-06-13 11:57:00,575 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 11:57:00,580 [DEBUG][       Thread-253985][   transport.py][1871] : starting thread (client mode): 0x84206cb0
2025-06-13 11:57:00,580 [DEBUG][       Thread-253985][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 11:57:00,600 [DEBUG][       Thread-253985][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 11:57:00,600 [ INFO][       Thread-253985][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 11:57:00,603 [DEBUG][       Thread-253985][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 11:57:00,603 [DEBUG][       Thread-253985][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 11:57:00,603 [DEBUG][       Thread-253985][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 11:57:00,603 [DEBUG][       Thread-253985][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:57:00,603 [DEBUG][       Thread-253985][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:57:00,603 [DEBUG][       Thread-253985][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:57:00,603 [DEBUG][       Thread-253985][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:57:00,603 [DEBUG][       Thread-253985][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 11:57:00,603 [DEBUG][       Thread-253985][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 11:57:00,603 [DEBUG][       Thread-253985][   transport.py][1871] : client lang: <none>
2025-06-13 11:57:00,603 [DEBUG][       Thread-253985][   transport.py][1871] : server lang: <none>
2025-06-13 11:57:00,603 [DEBUG][       Thread-253985][   transport.py][1871] : kex follows: False
2025-06-13 11:57:00,603 [DEBUG][       Thread-253985][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 11:57:00,603 [DEBUG][       Thread-253985][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 11:57:00,603 [DEBUG][       Thread-253985][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 11:57:00,603 [DEBUG][       Thread-253985][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 11:57:00,603 [DEBUG][       Thread-253985][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 11:57:00,603 [DEBUG][       Thread-253985][   transport.py][1871] : Compression: none
2025-06-13 11:57:00,603 [DEBUG][       Thread-253985][   transport.py][1871] : === End of kex handshake ===
2025-06-13 11:57:00,621 [DEBUG][       Thread-253985][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 11:57:00,622 [DEBUG][       Thread-253985][   transport.py][1871] : Switch to new keys ...
2025-06-13 11:57:00,622 [DEBUG][       Thread-253985][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 11:57:00,623 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 11:57:00,623 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 11:57:00,624 [DEBUG][       Thread-253985][   transport.py][1871] : userauth is OK
2025-06-13 11:57:00,638 [ INFO][       Thread-253985][   transport.py][1871] : Authentication (password) successful!
2025-06-13 11:57:00,638 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 11:57:01,236 [DEBUG][       Thread-253985][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 11:57:01,237 [DEBUG][       Thread-253985][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 11:57:01,281 [DEBUG][       Thread-253985][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 11:57:01,281 [DEBUG][       Thread-253985][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 11:57:01,285 [DEBUG][       Thread-253985][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 11:57:01,294 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 11:57:01,295 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 11:57:01,297 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 11:57:01,298 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 11:57:01,303 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 11:57:01,305 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 11:57:01,305 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 11:57:01,306 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 11:57:01,306 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.414175 -999.00  +11.10  23.67     47   +0.50 1 1 1 1 1   888    0 12.46 68.86 ----- 24.5 23.7 56.4 28.3 15.5 -28.1 14.1 -30.0 13.7 -28.1 15.1 -26.6
2025-06-13 11:57:01,306 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 11:57:01,306 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 11:57:01,306 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.414175
2025-06-13 11:57:01,307 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 11:57:01,308 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 11:57:01,308 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 11:57:01,308 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 11:57:01,308 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 11:57:01,308 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T11:56:47', tmtdew=12.24, humidity=42.65, cloud=0.0, wind=17.66, temperature=11.4, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T09:56:24.720', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 11:57:01,309 [DEBUG][       Thread-253985][   transport.py][1871] : EOF in transport thread
2025-06-13 11:57:01,393 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 11:57:01,407 [DEBUG][       Thread-253988][   transport.py][1871] : starting thread (client mode): 0x863ef010
2025-06-13 11:57:01,407 [DEBUG][       Thread-253988][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 11:57:01,422 [DEBUG][       Thread-253988][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 11:57:01,422 [ INFO][       Thread-253988][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 11:57:01,430 [DEBUG][       Thread-253988][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 11:57:01,430 [DEBUG][       Thread-253988][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 11:57:01,430 [DEBUG][       Thread-253988][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 11:57:01,430 [DEBUG][       Thread-253988][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:57:01,430 [DEBUG][       Thread-253988][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:57:01,430 [DEBUG][       Thread-253988][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:57:01,430 [DEBUG][       Thread-253988][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:57:01,430 [DEBUG][       Thread-253988][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 11:57:01,430 [DEBUG][       Thread-253988][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 11:57:01,430 [DEBUG][       Thread-253988][   transport.py][1871] : client lang: <none>
2025-06-13 11:57:01,430 [DEBUG][       Thread-253988][   transport.py][1871] : server lang: <none>
2025-06-13 11:57:01,430 [DEBUG][       Thread-253988][   transport.py][1871] : kex follows: False
2025-06-13 11:57:01,430 [DEBUG][       Thread-253988][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 11:57:01,430 [DEBUG][       Thread-253988][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 11:57:01,431 [DEBUG][       Thread-253988][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 11:57:01,431 [DEBUG][       Thread-253988][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 11:57:01,431 [DEBUG][       Thread-253988][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 11:57:01,431 [DEBUG][       Thread-253988][   transport.py][1871] : Compression: none
2025-06-13 11:57:01,431 [DEBUG][       Thread-253988][   transport.py][1871] : === End of kex handshake ===
2025-06-13 11:57:01,489 [DEBUG][       Thread-253988][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 11:57:01,489 [DEBUG][       Thread-253988][   transport.py][1871] : Switch to new keys ...
2025-06-13 11:57:01,490 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 11:57:01,490 [DEBUG][       Thread-253988][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 11:57:01,491 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 11:57:01,554 [DEBUG][       Thread-253988][   transport.py][1871] : userauth is OK
2025-06-13 11:57:01,554 [DEBUG][       Thread-253988][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 11:57:01,554 [DEBUG][       Thread-253988][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 11:57:01,554 [DEBUG][       Thread-253988][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 11:57:01,554 [DEBUG][       Thread-253988][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 11:57:01,573 [ INFO][       Thread-253988][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 11:57:01,573 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 11:57:01,574 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 11:57:02,595 [DEBUG][       Thread-253988][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 11:57:02,596 [DEBUG][       Thread-253988][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 11:57:02,644 [DEBUG][       Thread-253988][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 11:57:02,644 [DEBUG][       Thread-253988][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 11:57:02,654 [DEBUG][       Thread-253988][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 11:57:02,663 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 11:57:02,663 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 11:57:02,672 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 11:57:02,683 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 11:57:02,683 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 11:57:02,684 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 11:57:02,695 [DEBUG][       Thread-253988][   transport.py][1871] : EOF in transport thread
2025-06-13 11:57:06,107 [DEBUG][Thread-253990 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:57:10,672 [DEBUG][Thread-253991 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:57:12,692 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 11:57:12,692 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 11:57:12,692 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 11:57:12,695 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 11:57:13,158 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 11, 56, 47), 12.24, 42.65, 0.0, 17.66, 11.4, 0, 0, 0, 2, 0, 0),)
2025-06-13 11:57:13,158 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 11:56:47
2025-06-13 11:57:13,239 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 11:57:13,245 [DEBUG][       Thread-253992][   transport.py][1871] : starting thread (client mode): 0x842056c0
2025-06-13 11:57:13,246 [DEBUG][       Thread-253992][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 11:57:13,267 [DEBUG][       Thread-253992][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 11:57:13,267 [ INFO][       Thread-253992][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 11:57:13,270 [DEBUG][       Thread-253992][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 11:57:13,270 [DEBUG][       Thread-253992][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 11:57:13,270 [DEBUG][       Thread-253992][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 11:57:13,270 [DEBUG][       Thread-253992][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:57:13,270 [DEBUG][       Thread-253992][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:57:13,270 [DEBUG][       Thread-253992][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:57:13,270 [DEBUG][       Thread-253992][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:57:13,270 [DEBUG][       Thread-253992][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 11:57:13,270 [DEBUG][       Thread-253992][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 11:57:13,270 [DEBUG][       Thread-253992][   transport.py][1871] : client lang: <none>
2025-06-13 11:57:13,270 [DEBUG][       Thread-253992][   transport.py][1871] : server lang: <none>
2025-06-13 11:57:13,270 [DEBUG][       Thread-253992][   transport.py][1871] : kex follows: False
2025-06-13 11:57:13,270 [DEBUG][       Thread-253992][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 11:57:13,270 [DEBUG][       Thread-253992][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 11:57:13,270 [DEBUG][       Thread-253992][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 11:57:13,270 [DEBUG][       Thread-253992][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 11:57:13,270 [DEBUG][       Thread-253992][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 11:57:13,270 [DEBUG][       Thread-253992][   transport.py][1871] : Compression: none
2025-06-13 11:57:13,270 [DEBUG][       Thread-253992][   transport.py][1871] : === End of kex handshake ===
2025-06-13 11:57:13,286 [DEBUG][       Thread-253992][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 11:57:13,287 [DEBUG][       Thread-253992][   transport.py][1871] : Switch to new keys ...
2025-06-13 11:57:13,287 [DEBUG][       Thread-253992][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 11:57:13,287 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 11:57:13,288 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 11:57:13,289 [DEBUG][       Thread-253992][   transport.py][1871] : userauth is OK
2025-06-13 11:57:13,314 [ INFO][       Thread-253992][   transport.py][1871] : Authentication (password) successful!
2025-06-13 11:57:13,315 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 11:57:13,953 [DEBUG][       Thread-253992][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 11:57:13,954 [DEBUG][       Thread-253992][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 11:57:13,997 [DEBUG][       Thread-253992][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 11:57:13,997 [DEBUG][       Thread-253992][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 11:57:14,000 [DEBUG][       Thread-253992][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 11:57:14,013 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 11:57:14,013 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 11:57:14,015 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 11:57:14,017 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 11:57:14,022 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 11:57:14,024 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 11:57:14,024 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 11:57:14,025 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 11:57:14,025 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.414522 -999.00  +11.20  21.69     46   +0.20 1 1 1 1 1   888    0 12.34 62.91 ----- 19.9 21.7 41.4 26.2 15.4 -28.2 14.2 -30.4 13.7 -27.7 15.1 -26.2
2025-06-13 11:57:14,025 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 11:57:14,025 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 11:57:14,025 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.414522
2025-06-13 11:57:14,026 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 11:57:14,026 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 11:57:14,026 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 11:57:14,026 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 11:57:14,026 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 11:57:14,026 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T11:56:47', tmtdew=12.24, humidity=42.65, cloud=0.0, wind=17.66, temperature=11.4, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T09:56:54.701', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 11:57:14,027 [DEBUG][       Thread-253992][   transport.py][1871] : EOF in transport thread
2025-06-13 11:57:14,110 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 11:57:14,124 [DEBUG][       Thread-253995][   transport.py][1871] : starting thread (client mode): 0x863ca1a0
2025-06-13 11:57:14,124 [DEBUG][       Thread-253995][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 11:57:14,139 [DEBUG][       Thread-253995][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 11:57:14,139 [ INFO][       Thread-253995][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 11:57:14,146 [DEBUG][       Thread-253995][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 11:57:14,147 [DEBUG][       Thread-253995][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 11:57:14,147 [DEBUG][       Thread-253995][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 11:57:14,147 [DEBUG][       Thread-253995][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:57:14,147 [DEBUG][       Thread-253995][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:57:14,147 [DEBUG][       Thread-253995][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:57:14,147 [DEBUG][       Thread-253995][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:57:14,147 [DEBUG][       Thread-253995][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 11:57:14,147 [DEBUG][       Thread-253995][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 11:57:14,147 [DEBUG][       Thread-253995][   transport.py][1871] : client lang: <none>
2025-06-13 11:57:14,147 [DEBUG][       Thread-253995][   transport.py][1871] : server lang: <none>
2025-06-13 11:57:14,147 [DEBUG][       Thread-253995][   transport.py][1871] : kex follows: False
2025-06-13 11:57:14,147 [DEBUG][       Thread-253995][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 11:57:14,147 [DEBUG][       Thread-253995][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 11:57:14,147 [DEBUG][       Thread-253995][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 11:57:14,147 [DEBUG][       Thread-253995][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 11:57:14,148 [DEBUG][       Thread-253995][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 11:57:14,148 [DEBUG][       Thread-253995][   transport.py][1871] : Compression: none
2025-06-13 11:57:14,148 [DEBUG][       Thread-253995][   transport.py][1871] : === End of kex handshake ===
2025-06-13 11:57:14,209 [DEBUG][       Thread-253995][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 11:57:14,209 [DEBUG][       Thread-253995][   transport.py][1871] : Switch to new keys ...
2025-06-13 11:57:14,210 [DEBUG][       Thread-253995][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 11:57:14,210 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 11:57:14,211 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 11:57:14,269 [DEBUG][       Thread-253995][   transport.py][1871] : userauth is OK
2025-06-13 11:57:14,269 [DEBUG][       Thread-253995][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 11:57:14,269 [DEBUG][       Thread-253995][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 11:57:14,269 [DEBUG][       Thread-253995][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 11:57:14,270 [DEBUG][       Thread-253995][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 11:57:14,288 [ INFO][       Thread-253995][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 11:57:14,288 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 11:57:14,288 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 11:57:15,144 [DEBUG][Thread-253997 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:57:15,333 [DEBUG][       Thread-253995][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 11:57:15,333 [DEBUG][       Thread-253995][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 11:57:15,384 [DEBUG][       Thread-253995][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 11:57:15,384 [DEBUG][       Thread-253995][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 11:57:15,393 [DEBUG][       Thread-253995][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 11:57:15,402 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 11:57:15,403 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 11:57:15,413 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 11:57:15,427 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 11:57:15,428 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 11:57:15,428 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 11:57:15,436 [DEBUG][       Thread-253995][   transport.py][1871] : EOF in transport thread
2025-06-13 11:57:24,163 [DEBUG][Thread-253998 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:57:25,438 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 11:57:25,439 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 11:57:25,439 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 11:57:25,439 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 11:57:25,893 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 11, 57, 19), 12.37, 42.39, 0.0, 19.36, 11.49, 0, 0, 0, 2, 0, 0),)
2025-06-13 11:57:25,893 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 11:57:19
2025-06-13 11:57:25,973 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 11:57:25,977 [DEBUG][       Thread-253999][   transport.py][1871] : starting thread (client mode): 0x863bc8b0
2025-06-13 11:57:25,977 [DEBUG][       Thread-253999][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 11:57:25,997 [DEBUG][       Thread-253999][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 11:57:25,997 [ INFO][       Thread-253999][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 11:57:26,000 [DEBUG][       Thread-253999][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 11:57:26,000 [DEBUG][       Thread-253999][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 11:57:26,000 [DEBUG][       Thread-253999][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 11:57:26,001 [DEBUG][       Thread-253999][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:57:26,001 [DEBUG][       Thread-253999][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:57:26,001 [DEBUG][       Thread-253999][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:57:26,001 [DEBUG][       Thread-253999][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:57:26,001 [DEBUG][       Thread-253999][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 11:57:26,001 [DEBUG][       Thread-253999][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 11:57:26,001 [DEBUG][       Thread-253999][   transport.py][1871] : client lang: <none>
2025-06-13 11:57:26,001 [DEBUG][       Thread-253999][   transport.py][1871] : server lang: <none>
2025-06-13 11:57:26,001 [DEBUG][       Thread-253999][   transport.py][1871] : kex follows: False
2025-06-13 11:57:26,001 [DEBUG][       Thread-253999][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 11:57:26,001 [DEBUG][       Thread-253999][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 11:57:26,001 [DEBUG][       Thread-253999][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 11:57:26,001 [DEBUG][       Thread-253999][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 11:57:26,001 [DEBUG][       Thread-253999][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 11:57:26,001 [DEBUG][       Thread-253999][   transport.py][1871] : Compression: none
2025-06-13 11:57:26,001 [DEBUG][       Thread-253999][   transport.py][1871] : === End of kex handshake ===
2025-06-13 11:57:26,017 [DEBUG][       Thread-253999][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 11:57:26,018 [DEBUG][       Thread-253999][   transport.py][1871] : Switch to new keys ...
2025-06-13 11:57:26,018 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 11:57:26,018 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 11:57:26,019 [DEBUG][       Thread-253999][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 11:57:26,020 [DEBUG][       Thread-253999][   transport.py][1871] : userauth is OK
2025-06-13 11:57:26,032 [ INFO][       Thread-253999][   transport.py][1871] : Authentication (password) successful!
2025-06-13 11:57:26,033 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 11:57:26,665 [DEBUG][       Thread-253999][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 11:57:26,665 [DEBUG][       Thread-253999][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 11:57:26,709 [DEBUG][       Thread-253999][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 11:57:26,709 [DEBUG][       Thread-253999][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 11:57:26,713 [DEBUG][       Thread-253999][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 11:57:26,726 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 11:57:26,727 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 11:57:26,729 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 11:57:26,731 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 11:57:26,737 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 11:57:26,739 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 11:57:26,739 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 11:57:26,740 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 11:57:26,740 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.414522 -999.00  +11.20  21.69     46   +0.20 1 1 1 1 1   888    0 12.34 62.91 ----- 19.9 21.7 41.4 26.2 15.4 -28.2 14.2 -30.4 13.7 -27.7 15.1 -26.2
2025-06-13 11:57:26,740 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 11:57:26,740 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 11:57:26,741 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.414522
2025-06-13 11:57:26,741 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 11:57:26,742 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 11:57:26,742 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 11:57:26,742 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 11:57:26,742 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 11:57:26,742 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T11:57:19', tmtdew=12.37, humidity=42.39, cloud=0.0, wind=19.36, temperature=11.49, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T09:56:54.701', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 11:57:26,743 [DEBUG][       Thread-253999][   transport.py][1871] : EOF in transport thread
2025-06-13 11:57:26,827 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 11:57:26,837 [DEBUG][       Thread-254002][   transport.py][1871] : starting thread (client mode): 0x863ed5d0
2025-06-13 11:57:26,837 [DEBUG][       Thread-254002][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 11:57:26,852 [DEBUG][       Thread-254002][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 11:57:26,852 [ INFO][       Thread-254002][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 11:57:26,860 [DEBUG][       Thread-254002][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 11:57:26,860 [DEBUG][       Thread-254002][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 11:57:26,860 [DEBUG][       Thread-254002][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 11:57:26,860 [DEBUG][       Thread-254002][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:57:26,860 [DEBUG][       Thread-254002][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:57:26,860 [DEBUG][       Thread-254002][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:57:26,860 [DEBUG][       Thread-254002][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:57:26,860 [DEBUG][       Thread-254002][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 11:57:26,860 [DEBUG][       Thread-254002][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 11:57:26,860 [DEBUG][       Thread-254002][   transport.py][1871] : client lang: <none>
2025-06-13 11:57:26,860 [DEBUG][       Thread-254002][   transport.py][1871] : server lang: <none>
2025-06-13 11:57:26,860 [DEBUG][       Thread-254002][   transport.py][1871] : kex follows: False
2025-06-13 11:57:26,860 [DEBUG][       Thread-254002][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 11:57:26,861 [DEBUG][       Thread-254002][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 11:57:26,861 [DEBUG][       Thread-254002][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 11:57:26,861 [DEBUG][       Thread-254002][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 11:57:26,861 [DEBUG][       Thread-254002][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 11:57:26,861 [DEBUG][       Thread-254002][   transport.py][1871] : Compression: none
2025-06-13 11:57:26,861 [DEBUG][       Thread-254002][   transport.py][1871] : === End of kex handshake ===
2025-06-13 11:57:26,919 [DEBUG][       Thread-254002][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 11:57:26,919 [DEBUG][       Thread-254002][   transport.py][1871] : Switch to new keys ...
2025-06-13 11:57:26,920 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 11:57:26,920 [DEBUG][       Thread-254002][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 11:57:26,921 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 11:57:26,979 [DEBUG][       Thread-254002][   transport.py][1871] : userauth is OK
2025-06-13 11:57:26,980 [DEBUG][       Thread-254002][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 11:57:26,980 [DEBUG][       Thread-254002][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 11:57:26,980 [DEBUG][       Thread-254002][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 11:57:26,980 [DEBUG][       Thread-254002][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 11:57:26,999 [ INFO][       Thread-254002][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 11:57:27,000 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 11:57:27,000 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 11:57:28,008 [DEBUG][       Thread-254002][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 11:57:28,009 [DEBUG][       Thread-254002][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 11:57:28,060 [DEBUG][       Thread-254002][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 11:57:28,060 [DEBUG][       Thread-254002][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 11:57:28,070 [DEBUG][       Thread-254002][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 11:57:28,079 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 11:57:28,079 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 11:57:28,088 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 11:57:28,098 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 11:57:28,098 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 11:57:28,099 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 11:57:28,107 [DEBUG][       Thread-254002][   transport.py][1871] : EOF in transport thread
2025-06-13 11:57:33,185 [DEBUG][Thread-254004 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:57:38,108 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 11:57:38,108 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 11:57:38,108 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 11:57:38,111 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 11:57:38,578 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 11, 57, 19), 12.37, 42.39, 0.0, 19.36, 11.49, 0, 0, 0, 2, 0, 0),)
2025-06-13 11:57:38,578 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 11:57:19
2025-06-13 11:57:38,659 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 11:57:38,664 [DEBUG][       Thread-254005][   transport.py][1871] : starting thread (client mode): 0x842047c0
2025-06-13 11:57:38,664 [DEBUG][       Thread-254005][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 11:57:38,683 [DEBUG][       Thread-254005][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 11:57:38,683 [ INFO][       Thread-254005][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 11:57:38,684 [DEBUG][       Thread-254005][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 11:57:38,684 [DEBUG][       Thread-254005][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 11:57:38,684 [DEBUG][       Thread-254005][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 11:57:38,684 [DEBUG][       Thread-254005][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:57:38,684 [DEBUG][       Thread-254005][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:57:38,684 [DEBUG][       Thread-254005][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:57:38,684 [DEBUG][       Thread-254005][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:57:38,684 [DEBUG][       Thread-254005][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 11:57:38,684 [DEBUG][       Thread-254005][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 11:57:38,684 [DEBUG][       Thread-254005][   transport.py][1871] : client lang: <none>
2025-06-13 11:57:38,684 [DEBUG][       Thread-254005][   transport.py][1871] : server lang: <none>
2025-06-13 11:57:38,684 [DEBUG][       Thread-254005][   transport.py][1871] : kex follows: False
2025-06-13 11:57:38,684 [DEBUG][       Thread-254005][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 11:57:38,684 [DEBUG][       Thread-254005][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 11:57:38,684 [DEBUG][       Thread-254005][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 11:57:38,684 [DEBUG][       Thread-254005][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 11:57:38,684 [DEBUG][       Thread-254005][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 11:57:38,684 [DEBUG][       Thread-254005][   transport.py][1871] : Compression: none
2025-06-13 11:57:38,684 [DEBUG][       Thread-254005][   transport.py][1871] : === End of kex handshake ===
2025-06-13 11:57:38,692 [DEBUG][       Thread-254005][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 11:57:38,692 [DEBUG][       Thread-254005][   transport.py][1871] : Switch to new keys ...
2025-06-13 11:57:38,693 [DEBUG][       Thread-254005][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 11:57:38,693 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 11:57:38,693 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 11:57:38,694 [DEBUG][       Thread-254005][   transport.py][1871] : userauth is OK
2025-06-13 11:57:38,707 [ INFO][       Thread-254005][   transport.py][1871] : Authentication (password) successful!
2025-06-13 11:57:38,708 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 11:57:39,222 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:57:39,223 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:57:39,311 [DEBUG][       Thread-254005][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 11:57:39,311 [DEBUG][       Thread-254005][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 11:57:39,353 [DEBUG][       Thread-254005][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 11:57:39,353 [DEBUG][       Thread-254005][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 11:57:39,357 [DEBUG][       Thread-254005][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 11:57:39,370 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 11:57:39,371 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 11:57:39,377 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 11:57:39,380 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 11:57:39,386 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 11:57:39,389 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 11:57:39,389 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 11:57:39,390 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 11:57:39,390 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.414869 -999.00  +11.10  22.95     46   +0.10 1 1 1 1 1   888    0 12.23 58.77 ----- 18.5 22.9 32.3 26.8 15.5 -28.1 14.2 -29.5 13.7 -27.6 15.1 -26.4
2025-06-13 11:57:39,390 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 11:57:39,390 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 11:57:39,390 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.414869
2025-06-13 11:57:39,390 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 11:57:39,391 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 11:57:39,391 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 11:57:39,391 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 11:57:39,391 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 11:57:39,391 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T11:57:19', tmtdew=12.37, humidity=42.39, cloud=0.0, wind=19.36, temperature=11.49, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T09:57:24.682', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 11:57:39,392 [DEBUG][       Thread-254005][   transport.py][1871] : EOF in transport thread
2025-06-13 11:57:39,475 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 11:57:39,494 [DEBUG][       Thread-254008][   transport.py][1871] : starting thread (client mode): 0x867b6f80
2025-06-13 11:57:39,494 [DEBUG][       Thread-254008][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 11:57:39,518 [DEBUG][       Thread-254008][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 11:57:39,518 [ INFO][       Thread-254008][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 11:57:39,531 [DEBUG][       Thread-254008][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 11:57:39,531 [DEBUG][       Thread-254008][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 11:57:39,531 [DEBUG][       Thread-254008][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 11:57:39,531 [DEBUG][       Thread-254008][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:57:39,531 [DEBUG][       Thread-254008][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:57:39,531 [DEBUG][       Thread-254008][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:57:39,531 [DEBUG][       Thread-254008][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:57:39,532 [DEBUG][       Thread-254008][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 11:57:39,532 [DEBUG][       Thread-254008][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 11:57:39,532 [DEBUG][       Thread-254008][   transport.py][1871] : client lang: <none>
2025-06-13 11:57:39,532 [DEBUG][       Thread-254008][   transport.py][1871] : server lang: <none>
2025-06-13 11:57:39,532 [DEBUG][       Thread-254008][   transport.py][1871] : kex follows: False
2025-06-13 11:57:39,532 [DEBUG][       Thread-254008][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 11:57:39,532 [DEBUG][       Thread-254008][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 11:57:39,532 [DEBUG][       Thread-254008][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 11:57:39,532 [DEBUG][       Thread-254008][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 11:57:39,532 [DEBUG][       Thread-254008][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 11:57:39,532 [DEBUG][       Thread-254008][   transport.py][1871] : Compression: none
2025-06-13 11:57:39,532 [DEBUG][       Thread-254008][   transport.py][1871] : === End of kex handshake ===
2025-06-13 11:57:39,589 [DEBUG][       Thread-254008][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 11:57:39,589 [DEBUG][       Thread-254008][   transport.py][1871] : Switch to new keys ...
2025-06-13 11:57:39,590 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 11:57:39,591 [DEBUG][       Thread-254008][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 11:57:39,591 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 11:57:39,650 [DEBUG][       Thread-254008][   transport.py][1871] : userauth is OK
2025-06-13 11:57:39,650 [DEBUG][       Thread-254008][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 11:57:39,650 [DEBUG][       Thread-254008][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 11:57:39,651 [DEBUG][       Thread-254008][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 11:57:39,651 [DEBUG][       Thread-254008][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 11:57:39,676 [ INFO][       Thread-254008][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 11:57:39,676 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 11:57:39,677 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 11:57:40,744 [DEBUG][       Thread-254008][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 11:57:40,744 [DEBUG][       Thread-254008][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 11:57:40,792 [DEBUG][       Thread-254008][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 11:57:40,792 [DEBUG][       Thread-254008][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 11:57:40,802 [DEBUG][       Thread-254008][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 11:57:40,811 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 11:57:40,811 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 11:57:40,820 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 11:57:40,830 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 11:57:40,830 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 11:57:40,831 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 11:57:40,839 [DEBUG][       Thread-254008][   transport.py][1871] : EOF in transport thread
2025-06-13 11:57:42,223 [DEBUG][Thread-254010 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:57:50,841 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 11:57:50,842 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 11:57:50,842 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 11:57:50,844 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 11:57:51,242 [DEBUG][Thread-254011 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:57:51,317 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 11, 57, 19), 12.37, 42.39, 0.0, 19.36, 11.49, 0, 0, 0, 2, 0, 0),)
2025-06-13 11:57:51,317 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 11:57:19
2025-06-13 11:57:51,399 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 11:57:51,403 [DEBUG][       Thread-254012][   transport.py][1871] : starting thread (client mode): 0x863bd870
2025-06-13 11:57:51,403 [DEBUG][       Thread-254012][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 11:57:51,424 [DEBUG][       Thread-254012][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 11:57:51,424 [ INFO][       Thread-254012][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 11:57:51,427 [DEBUG][       Thread-254012][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 11:57:51,427 [DEBUG][       Thread-254012][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 11:57:51,427 [DEBUG][       Thread-254012][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 11:57:51,427 [DEBUG][       Thread-254012][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:57:51,427 [DEBUG][       Thread-254012][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:57:51,427 [DEBUG][       Thread-254012][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:57:51,427 [DEBUG][       Thread-254012][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:57:51,427 [DEBUG][       Thread-254012][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 11:57:51,427 [DEBUG][       Thread-254012][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 11:57:51,427 [DEBUG][       Thread-254012][   transport.py][1871] : client lang: <none>
2025-06-13 11:57:51,427 [DEBUG][       Thread-254012][   transport.py][1871] : server lang: <none>
2025-06-13 11:57:51,427 [DEBUG][       Thread-254012][   transport.py][1871] : kex follows: False
2025-06-13 11:57:51,427 [DEBUG][       Thread-254012][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 11:57:51,427 [DEBUG][       Thread-254012][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 11:57:51,427 [DEBUG][       Thread-254012][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 11:57:51,427 [DEBUG][       Thread-254012][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 11:57:51,427 [DEBUG][       Thread-254012][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 11:57:51,427 [DEBUG][       Thread-254012][   transport.py][1871] : Compression: none
2025-06-13 11:57:51,427 [DEBUG][       Thread-254012][   transport.py][1871] : === End of kex handshake ===
2025-06-13 11:57:51,445 [DEBUG][       Thread-254012][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 11:57:51,445 [DEBUG][       Thread-254012][   transport.py][1871] : Switch to new keys ...
2025-06-13 11:57:51,446 [DEBUG][       Thread-254012][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 11:57:51,446 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 11:57:51,446 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 11:57:51,447 [DEBUG][       Thread-254012][   transport.py][1871] : userauth is OK
2025-06-13 11:57:51,460 [ INFO][       Thread-254012][   transport.py][1871] : Authentication (password) successful!
2025-06-13 11:57:51,460 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 11:57:52,111 [DEBUG][       Thread-254012][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 11:57:52,111 [DEBUG][       Thread-254012][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 11:57:52,152 [DEBUG][       Thread-254012][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 11:57:52,152 [DEBUG][       Thread-254012][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 11:57:52,154 [DEBUG][       Thread-254012][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 11:57:52,166 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 11:57:52,166 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 11:57:52,167 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 11:57:52,167 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 11:57:52,170 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 11:57:52,171 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 11:57:52,171 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 11:57:52,171 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 11:57:52,171 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.414869 -999.00  +11.10  22.95     46   +0.10 1 1 1 1 1   888    0 12.23 58.77 ----- 18.5 22.9 32.3 26.8 15.5 -28.1 14.2 -29.5 13.7 -27.6 15.1 -26.4
2025-06-13 11:57:52,171 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 11:57:52,171 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 11:57:52,171 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.414869
2025-06-13 11:57:52,171 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 11:57:52,171 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 11:57:52,171 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 11:57:52,171 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 11:57:52,171 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 11:57:52,171 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T11:57:19', tmtdew=12.37, humidity=42.39, cloud=0.0, wind=19.36, temperature=11.49, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T09:57:24.682', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 11:57:52,172 [DEBUG][       Thread-254012][   transport.py][1871] : EOF in transport thread
2025-06-13 11:57:52,246 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 11:57:52,255 [DEBUG][       Thread-254015][   transport.py][1871] : starting thread (client mode): 0x863a7220
2025-06-13 11:57:52,255 [DEBUG][       Thread-254015][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 11:57:52,269 [DEBUG][       Thread-254015][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 11:57:52,269 [ INFO][       Thread-254015][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 11:57:52,276 [DEBUG][       Thread-254015][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 11:57:52,276 [DEBUG][       Thread-254015][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 11:57:52,276 [DEBUG][       Thread-254015][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 11:57:52,276 [DEBUG][       Thread-254015][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:57:52,276 [DEBUG][       Thread-254015][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:57:52,276 [DEBUG][       Thread-254015][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:57:52,276 [DEBUG][       Thread-254015][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:57:52,276 [DEBUG][       Thread-254015][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 11:57:52,276 [DEBUG][       Thread-254015][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 11:57:52,276 [DEBUG][       Thread-254015][   transport.py][1871] : client lang: <none>
2025-06-13 11:57:52,276 [DEBUG][       Thread-254015][   transport.py][1871] : server lang: <none>
2025-06-13 11:57:52,276 [DEBUG][       Thread-254015][   transport.py][1871] : kex follows: False
2025-06-13 11:57:52,276 [DEBUG][       Thread-254015][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 11:57:52,276 [DEBUG][       Thread-254015][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 11:57:52,276 [DEBUG][       Thread-254015][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 11:57:52,276 [DEBUG][       Thread-254015][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 11:57:52,276 [DEBUG][       Thread-254015][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 11:57:52,276 [DEBUG][       Thread-254015][   transport.py][1871] : Compression: none
2025-06-13 11:57:52,276 [DEBUG][       Thread-254015][   transport.py][1871] : === End of kex handshake ===
2025-06-13 11:57:52,332 [DEBUG][       Thread-254015][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 11:57:52,332 [DEBUG][       Thread-254015][   transport.py][1871] : Switch to new keys ...
2025-06-13 11:57:52,333 [DEBUG][       Thread-254015][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 11:57:52,333 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 11:57:52,333 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 11:57:52,391 [DEBUG][       Thread-254015][   transport.py][1871] : userauth is OK
2025-06-13 11:57:52,391 [DEBUG][       Thread-254015][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 11:57:52,391 [DEBUG][       Thread-254015][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 11:57:52,391 [DEBUG][       Thread-254015][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 11:57:52,391 [DEBUG][       Thread-254015][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 11:57:52,407 [ INFO][       Thread-254015][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 11:57:52,408 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 11:57:52,408 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 11:57:53,408 [DEBUG][Thread-254017 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:57:53,426 [DEBUG][       Thread-254015][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 11:57:53,426 [DEBUG][       Thread-254015][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 11:57:53,475 [DEBUG][       Thread-254015][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 11:57:53,475 [DEBUG][       Thread-254015][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 11:57:53,483 [DEBUG][       Thread-254015][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 11:57:53,491 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 11:57:53,491 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 11:57:53,499 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 11:57:53,513 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 11:57:53,514 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 11:57:53,514 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 11:57:53,526 [DEBUG][       Thread-254015][   transport.py][1871] : EOF in transport thread
2025-06-13 11:57:54,471 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:57:54,473 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:58:00,260 [DEBUG][Thread-254018 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:58:03,524 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 11:58:03,524 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 11:58:03,524 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 11:58:03,527 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 11:58:03,986 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 11, 57, 51), 12.56, 41.83, 0.0, 22.34, 11.46, 0, 0, 0, 2, 0, 0),)
2025-06-13 11:58:03,987 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 11:57:51
2025-06-13 11:58:04,068 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 11:58:04,073 [DEBUG][       Thread-254019][   transport.py][1871] : starting thread (client mode): 0x84207970
2025-06-13 11:58:04,073 [DEBUG][       Thread-254019][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 11:58:04,094 [DEBUG][       Thread-254019][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 11:58:04,094 [ INFO][       Thread-254019][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 11:58:04,098 [DEBUG][       Thread-254019][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 11:58:04,098 [DEBUG][       Thread-254019][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 11:58:04,098 [DEBUG][       Thread-254019][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 11:58:04,098 [DEBUG][       Thread-254019][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:58:04,098 [DEBUG][       Thread-254019][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:58:04,098 [DEBUG][       Thread-254019][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:58:04,098 [DEBUG][       Thread-254019][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:58:04,098 [DEBUG][       Thread-254019][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 11:58:04,098 [DEBUG][       Thread-254019][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 11:58:04,098 [DEBUG][       Thread-254019][   transport.py][1871] : client lang: <none>
2025-06-13 11:58:04,098 [DEBUG][       Thread-254019][   transport.py][1871] : server lang: <none>
2025-06-13 11:58:04,098 [DEBUG][       Thread-254019][   transport.py][1871] : kex follows: False
2025-06-13 11:58:04,098 [DEBUG][       Thread-254019][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 11:58:04,098 [DEBUG][       Thread-254019][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 11:58:04,098 [DEBUG][       Thread-254019][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 11:58:04,099 [DEBUG][       Thread-254019][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 11:58:04,099 [DEBUG][       Thread-254019][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 11:58:04,099 [DEBUG][       Thread-254019][   transport.py][1871] : Compression: none
2025-06-13 11:58:04,099 [DEBUG][       Thread-254019][   transport.py][1871] : === End of kex handshake ===
2025-06-13 11:58:04,115 [DEBUG][       Thread-254019][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 11:58:04,116 [DEBUG][       Thread-254019][   transport.py][1871] : Switch to new keys ...
2025-06-13 11:58:04,117 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 11:58:04,117 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 11:58:04,117 [DEBUG][       Thread-254019][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 11:58:04,118 [DEBUG][       Thread-254019][   transport.py][1871] : userauth is OK
2025-06-13 11:58:04,131 [ INFO][       Thread-254019][   transport.py][1871] : Authentication (password) successful!
2025-06-13 11:58:04,131 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 11:58:04,752 [DEBUG][       Thread-254019][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 11:58:04,753 [DEBUG][       Thread-254019][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 11:58:04,793 [DEBUG][       Thread-254019][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 11:58:04,793 [DEBUG][       Thread-254019][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 11:58:04,796 [DEBUG][       Thread-254019][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 11:58:04,808 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 11:58:04,809 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 11:58:04,811 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 11:58:04,812 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 11:58:04,817 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 11:58:04,819 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 11:58:04,819 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 11:58:04,820 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 11:58:04,820 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.414869 -999.00  +11.10  22.95     46   +0.10 1 1 1 1 1   888    0 12.23 58.77 ----- 18.5 22.9 32.3 26.8 15.5 -28.1 14.2 -29.5 13.7 -27.6 15.1 -26.4
2025-06-13 11:58:04,820 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 11:58:04,820 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 11:58:04,820 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.414869
2025-06-13 11:58:04,821 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 11:58:04,821 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 11:58:04,821 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 11:58:04,821 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 11:58:04,822 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 11:58:04,822 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T11:57:51', tmtdew=12.56, humidity=41.83, cloud=0.0, wind=22.34, temperature=11.46, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T09:57:24.682', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 11:58:04,823 [DEBUG][       Thread-254019][   transport.py][1871] : EOF in transport thread
2025-06-13 11:58:04,907 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 11:58:04,918 [DEBUG][       Thread-254022][   transport.py][1871] : starting thread (client mode): 0x863a7220
2025-06-13 11:58:04,918 [DEBUG][       Thread-254022][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 11:58:04,938 [DEBUG][       Thread-254022][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 11:58:04,938 [ INFO][       Thread-254022][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 11:58:04,948 [DEBUG][       Thread-254022][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 11:58:04,949 [DEBUG][       Thread-254022][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 11:58:04,949 [DEBUG][       Thread-254022][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 11:58:04,949 [DEBUG][       Thread-254022][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:58:04,949 [DEBUG][       Thread-254022][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:58:04,949 [DEBUG][       Thread-254022][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:58:04,949 [DEBUG][       Thread-254022][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:58:04,949 [DEBUG][       Thread-254022][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 11:58:04,949 [DEBUG][       Thread-254022][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 11:58:04,949 [DEBUG][       Thread-254022][   transport.py][1871] : client lang: <none>
2025-06-13 11:58:04,949 [DEBUG][       Thread-254022][   transport.py][1871] : server lang: <none>
2025-06-13 11:58:04,949 [DEBUG][       Thread-254022][   transport.py][1871] : kex follows: False
2025-06-13 11:58:04,949 [DEBUG][       Thread-254022][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 11:58:04,949 [DEBUG][       Thread-254022][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 11:58:04,949 [DEBUG][       Thread-254022][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 11:58:04,949 [DEBUG][       Thread-254022][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 11:58:04,950 [DEBUG][       Thread-254022][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 11:58:04,950 [DEBUG][       Thread-254022][   transport.py][1871] : Compression: none
2025-06-13 11:58:04,950 [DEBUG][       Thread-254022][   transport.py][1871] : === End of kex handshake ===
2025-06-13 11:58:05,011 [DEBUG][       Thread-254022][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 11:58:05,012 [DEBUG][       Thread-254022][   transport.py][1871] : Switch to new keys ...
2025-06-13 11:58:05,013 [DEBUG][       Thread-254022][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 11:58:05,013 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 11:58:05,014 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 11:58:05,069 [DEBUG][       Thread-254022][   transport.py][1871] : userauth is OK
2025-06-13 11:58:05,069 [DEBUG][       Thread-254022][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 11:58:05,070 [DEBUG][       Thread-254022][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 11:58:05,070 [DEBUG][       Thread-254022][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 11:58:05,070 [DEBUG][       Thread-254022][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 11:58:05,089 [ INFO][       Thread-254022][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 11:58:05,090 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 11:58:05,090 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 11:58:06,138 [DEBUG][       Thread-254022][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 11:58:06,139 [DEBUG][       Thread-254022][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 11:58:06,188 [DEBUG][       Thread-254022][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 11:58:06,188 [DEBUG][       Thread-254022][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 11:58:06,198 [DEBUG][       Thread-254022][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 11:58:06,207 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 11:58:06,207 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 11:58:06,216 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 11:58:06,226 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 11:58:06,226 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 11:58:06,227 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 11:58:06,235 [DEBUG][       Thread-254022][   transport.py][1871] : EOF in transport thread
2025-06-13 11:58:09,282 [DEBUG][Thread-254024 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:58:10,733 [DEBUG][Thread-254025 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:58:16,231 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 11:58:16,232 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 11:58:16,232 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 11:58:16,235 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 11:58:16,703 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 11, 57, 51), 12.56, 41.83, 0.0, 22.34, 11.46, 0, 0, 0, 2, 0, 0),)
2025-06-13 11:58:16,703 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 11:57:51
2025-06-13 11:58:16,785 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 11:58:16,791 [DEBUG][       Thread-254026][   transport.py][1871] : starting thread (client mode): 0x867b4940
2025-06-13 11:58:16,791 [DEBUG][       Thread-254026][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 11:58:16,812 [DEBUG][       Thread-254026][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 11:58:16,812 [ INFO][       Thread-254026][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 11:58:16,816 [DEBUG][       Thread-254026][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 11:58:16,816 [DEBUG][       Thread-254026][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 11:58:16,816 [DEBUG][       Thread-254026][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 11:58:16,816 [DEBUG][       Thread-254026][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:58:16,816 [DEBUG][       Thread-254026][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:58:16,816 [DEBUG][       Thread-254026][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:58:16,816 [DEBUG][       Thread-254026][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:58:16,816 [DEBUG][       Thread-254026][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 11:58:16,816 [DEBUG][       Thread-254026][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 11:58:16,816 [DEBUG][       Thread-254026][   transport.py][1871] : client lang: <none>
2025-06-13 11:58:16,816 [DEBUG][       Thread-254026][   transport.py][1871] : server lang: <none>
2025-06-13 11:58:16,816 [DEBUG][       Thread-254026][   transport.py][1871] : kex follows: False
2025-06-13 11:58:16,816 [DEBUG][       Thread-254026][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 11:58:16,816 [DEBUG][       Thread-254026][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 11:58:16,816 [DEBUG][       Thread-254026][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 11:58:16,816 [DEBUG][       Thread-254026][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 11:58:16,816 [DEBUG][       Thread-254026][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 11:58:16,816 [DEBUG][       Thread-254026][   transport.py][1871] : Compression: none
2025-06-13 11:58:16,816 [DEBUG][       Thread-254026][   transport.py][1871] : === End of kex handshake ===
2025-06-13 11:58:16,834 [DEBUG][       Thread-254026][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 11:58:16,835 [DEBUG][       Thread-254026][   transport.py][1871] : Switch to new keys ...
2025-06-13 11:58:16,835 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 11:58:16,835 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 11:58:16,836 [DEBUG][       Thread-254026][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 11:58:16,837 [DEBUG][       Thread-254026][   transport.py][1871] : userauth is OK
2025-06-13 11:58:16,850 [ INFO][       Thread-254026][   transport.py][1871] : Authentication (password) successful!
2025-06-13 11:58:16,850 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 11:58:17,482 [DEBUG][       Thread-254026][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 11:58:17,482 [DEBUG][       Thread-254026][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 11:58:17,525 [DEBUG][       Thread-254026][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 11:58:17,525 [DEBUG][       Thread-254026][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 11:58:17,529 [DEBUG][       Thread-254026][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 11:58:17,541 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 11:58:17,541 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 11:58:17,543 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 11:58:17,545 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 11:58:17,551 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 11:58:17,552 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 11:58:17,553 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 11:58:17,553 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 11:58:17,554 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.415216 -999.00  +11.20  25.06     45   -0.10 1 1 1 1 1   888    0 12.38 61.51 ----- 18.2 25.1 49.0 28.6 15.5 -29.1 14.2 -29.6 13.8 -28.9 15.1 -26.1
2025-06-13 11:58:17,554 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 11:58:17,554 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 11:58:17,554 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.415216
2025-06-13 11:58:17,554 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 11:58:17,555 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 11:58:17,555 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 11:58:17,555 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 11:58:17,555 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 11:58:17,555 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T11:57:51', tmtdew=12.56, humidity=41.83, cloud=0.0, wind=22.34, temperature=11.46, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T09:57:54.662', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 11:58:17,555 [DEBUG][       Thread-254026][   transport.py][1871] : EOF in transport thread
2025-06-13 11:58:17,639 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 11:58:17,651 [DEBUG][       Thread-254029][   transport.py][1871] : starting thread (client mode): 0x867fce20
2025-06-13 11:58:17,651 [DEBUG][       Thread-254029][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 11:58:17,666 [DEBUG][       Thread-254029][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 11:58:17,666 [ INFO][       Thread-254029][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 11:58:17,675 [DEBUG][       Thread-254029][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 11:58:17,675 [DEBUG][       Thread-254029][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 11:58:17,675 [DEBUG][       Thread-254029][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 11:58:17,675 [DEBUG][       Thread-254029][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:58:17,675 [DEBUG][       Thread-254029][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:58:17,675 [DEBUG][       Thread-254029][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:58:17,675 [DEBUG][       Thread-254029][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:58:17,676 [DEBUG][       Thread-254029][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 11:58:17,676 [DEBUG][       Thread-254029][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 11:58:17,676 [DEBUG][       Thread-254029][   transport.py][1871] : client lang: <none>
2025-06-13 11:58:17,676 [DEBUG][       Thread-254029][   transport.py][1871] : server lang: <none>
2025-06-13 11:58:17,676 [DEBUG][       Thread-254029][   transport.py][1871] : kex follows: False
2025-06-13 11:58:17,676 [DEBUG][       Thread-254029][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 11:58:17,676 [DEBUG][       Thread-254029][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 11:58:17,676 [DEBUG][       Thread-254029][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 11:58:17,676 [DEBUG][       Thread-254029][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 11:58:17,676 [DEBUG][       Thread-254029][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 11:58:17,676 [DEBUG][       Thread-254029][   transport.py][1871] : Compression: none
2025-06-13 11:58:17,676 [DEBUG][       Thread-254029][   transport.py][1871] : === End of kex handshake ===
2025-06-13 11:58:17,741 [DEBUG][       Thread-254029][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 11:58:17,741 [DEBUG][       Thread-254029][   transport.py][1871] : Switch to new keys ...
2025-06-13 11:58:17,742 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 11:58:17,742 [DEBUG][       Thread-254029][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 11:58:17,743 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 11:58:17,797 [DEBUG][       Thread-254029][   transport.py][1871] : userauth is OK
2025-06-13 11:58:17,797 [DEBUG][       Thread-254029][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 11:58:17,798 [DEBUG][       Thread-254029][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 11:58:17,798 [DEBUG][       Thread-254029][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 11:58:17,798 [DEBUG][       Thread-254029][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 11:58:17,815 [ INFO][       Thread-254029][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 11:58:17,816 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 11:58:17,816 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 11:58:18,318 [DEBUG][Thread-254031 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:58:18,826 [DEBUG][       Thread-254029][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 11:58:18,826 [DEBUG][       Thread-254029][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 11:58:18,876 [DEBUG][       Thread-254029][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 11:58:18,876 [DEBUG][       Thread-254029][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 11:58:18,886 [DEBUG][       Thread-254029][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 11:58:18,901 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 11:58:18,902 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 11:58:18,910 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 11:58:18,920 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 11:58:18,920 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 11:58:18,920 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 11:58:18,932 [DEBUG][       Thread-254029][   transport.py][1871] : EOF in transport thread
2025-06-13 11:58:27,336 [DEBUG][Thread-254032 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:58:28,928 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 11:58:28,928 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 11:58:28,928 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 11:58:28,931 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 11:58:29,390 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 11, 58, 22), 12.51, 41.74, 0.0, 22.39, 11.42, 0, 0, 0, 2, 0, 0),)
2025-06-13 11:58:29,390 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 11:58:22
2025-06-13 11:58:29,472 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 11:58:29,476 [DEBUG][       Thread-254033][   transport.py][1871] : starting thread (client mode): 0x867fefb0
2025-06-13 11:58:29,476 [DEBUG][       Thread-254033][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 11:58:29,496 [DEBUG][       Thread-254033][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 11:58:29,496 [ INFO][       Thread-254033][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 11:58:29,500 [DEBUG][       Thread-254033][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 11:58:29,500 [DEBUG][       Thread-254033][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 11:58:29,500 [DEBUG][       Thread-254033][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 11:58:29,500 [DEBUG][       Thread-254033][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:58:29,500 [DEBUG][       Thread-254033][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:58:29,500 [DEBUG][       Thread-254033][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:58:29,500 [DEBUG][       Thread-254033][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:58:29,500 [DEBUG][       Thread-254033][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 11:58:29,500 [DEBUG][       Thread-254033][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 11:58:29,500 [DEBUG][       Thread-254033][   transport.py][1871] : client lang: <none>
2025-06-13 11:58:29,500 [DEBUG][       Thread-254033][   transport.py][1871] : server lang: <none>
2025-06-13 11:58:29,500 [DEBUG][       Thread-254033][   transport.py][1871] : kex follows: False
2025-06-13 11:58:29,500 [DEBUG][       Thread-254033][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 11:58:29,500 [DEBUG][       Thread-254033][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 11:58:29,500 [DEBUG][       Thread-254033][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 11:58:29,500 [DEBUG][       Thread-254033][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 11:58:29,500 [DEBUG][       Thread-254033][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 11:58:29,500 [DEBUG][       Thread-254033][   transport.py][1871] : Compression: none
2025-06-13 11:58:29,500 [DEBUG][       Thread-254033][   transport.py][1871] : === End of kex handshake ===
2025-06-13 11:58:29,517 [DEBUG][       Thread-254033][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 11:58:29,517 [DEBUG][       Thread-254033][   transport.py][1871] : Switch to new keys ...
2025-06-13 11:58:29,518 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 11:58:29,518 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 11:58:29,518 [DEBUG][       Thread-254033][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 11:58:29,519 [DEBUG][       Thread-254033][   transport.py][1871] : userauth is OK
2025-06-13 11:58:29,532 [ INFO][       Thread-254033][   transport.py][1871] : Authentication (password) successful!
2025-06-13 11:58:29,533 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 11:58:30,158 [DEBUG][       Thread-254033][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 11:58:30,158 [DEBUG][       Thread-254033][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 11:58:30,201 [DEBUG][       Thread-254033][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 11:58:30,201 [DEBUG][       Thread-254033][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 11:58:30,205 [DEBUG][       Thread-254033][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 11:58:30,217 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 11:58:30,217 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 11:58:30,219 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 11:58:30,221 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 11:58:30,226 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 11:58:30,228 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 11:58:30,229 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 11:58:30,229 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 11:58:30,229 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.415216 -999.00  +11.20  25.06     45   -0.10 1 1 1 1 1   888    0 12.38 61.51 ----- 18.2 25.1 49.0 28.6 15.5 -29.1 14.2 -29.6 13.8 -28.9 15.1 -26.1
2025-06-13 11:58:30,229 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 11:58:30,230 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 11:58:30,230 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.415216
2025-06-13 11:58:30,230 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 11:58:30,231 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 11:58:30,231 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 11:58:30,231 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 11:58:30,231 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 11:58:30,231 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T11:58:22', tmtdew=12.51, humidity=41.74, cloud=0.0, wind=22.39, temperature=11.42, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T09:57:54.662', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 11:58:30,231 [DEBUG][       Thread-254033][   transport.py][1871] : EOF in transport thread
2025-06-13 11:58:30,315 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 11:58:30,325 [DEBUG][       Thread-254036][   transport.py][1871] : starting thread (client mode): 0x863ef670
2025-06-13 11:58:30,325 [DEBUG][       Thread-254036][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 11:58:30,340 [DEBUG][       Thread-254036][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 11:58:30,340 [ INFO][       Thread-254036][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 11:58:30,347 [DEBUG][       Thread-254036][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 11:58:30,348 [DEBUG][       Thread-254036][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 11:58:30,348 [DEBUG][       Thread-254036][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 11:58:30,348 [DEBUG][       Thread-254036][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:58:30,348 [DEBUG][       Thread-254036][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:58:30,348 [DEBUG][       Thread-254036][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:58:30,348 [DEBUG][       Thread-254036][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:58:30,348 [DEBUG][       Thread-254036][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 11:58:30,348 [DEBUG][       Thread-254036][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 11:58:30,348 [DEBUG][       Thread-254036][   transport.py][1871] : client lang: <none>
2025-06-13 11:58:30,348 [DEBUG][       Thread-254036][   transport.py][1871] : server lang: <none>
2025-06-13 11:58:30,348 [DEBUG][       Thread-254036][   transport.py][1871] : kex follows: False
2025-06-13 11:58:30,348 [DEBUG][       Thread-254036][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 11:58:30,348 [DEBUG][       Thread-254036][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 11:58:30,348 [DEBUG][       Thread-254036][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 11:58:30,348 [DEBUG][       Thread-254036][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 11:58:30,348 [DEBUG][       Thread-254036][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 11:58:30,348 [DEBUG][       Thread-254036][   transport.py][1871] : Compression: none
2025-06-13 11:58:30,348 [DEBUG][       Thread-254036][   transport.py][1871] : === End of kex handshake ===
2025-06-13 11:58:30,408 [DEBUG][       Thread-254036][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 11:58:30,409 [DEBUG][       Thread-254036][   transport.py][1871] : Switch to new keys ...
2025-06-13 11:58:30,410 [DEBUG][       Thread-254036][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 11:58:30,410 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 11:58:30,411 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 11:58:30,469 [DEBUG][       Thread-254036][   transport.py][1871] : userauth is OK
2025-06-13 11:58:30,469 [DEBUG][       Thread-254036][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 11:58:30,470 [DEBUG][       Thread-254036][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 11:58:30,470 [DEBUG][       Thread-254036][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 11:58:30,470 [DEBUG][       Thread-254036][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 11:58:30,492 [ INFO][       Thread-254036][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 11:58:30,493 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 11:58:30,493 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 11:58:31,508 [DEBUG][       Thread-254036][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 11:58:31,509 [DEBUG][       Thread-254036][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 11:58:31,560 [DEBUG][       Thread-254036][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 11:58:31,560 [DEBUG][       Thread-254036][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 11:58:31,570 [DEBUG][       Thread-254036][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 11:58:31,579 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 11:58:31,580 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 11:58:31,589 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 11:58:31,598 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 11:58:31,599 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 11:58:31,599 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 11:58:31,607 [DEBUG][       Thread-254036][   transport.py][1871] : EOF in transport thread
2025-06-13 11:58:36,354 [DEBUG][Thread-254038 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:58:39,361 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:58:39,362 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:58:41,610 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 11:58:41,610 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 11:58:41,610 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 11:58:41,613 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 11:58:42,080 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 11, 58, 22), 12.51, 41.74, 0.0, 22.39, 11.42, 0, 0, 0, 2, 0, 0),)
2025-06-13 11:58:42,080 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 11:58:22
2025-06-13 11:58:42,162 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 11:58:42,168 [DEBUG][       Thread-254039][   transport.py][1871] : starting thread (client mode): 0x84205540
2025-06-13 11:58:42,168 [DEBUG][       Thread-254039][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 11:58:42,189 [DEBUG][       Thread-254039][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 11:58:42,190 [ INFO][       Thread-254039][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 11:58:42,193 [DEBUG][       Thread-254039][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 11:58:42,193 [DEBUG][       Thread-254039][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 11:58:42,193 [DEBUG][       Thread-254039][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 11:58:42,193 [DEBUG][       Thread-254039][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:58:42,193 [DEBUG][       Thread-254039][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:58:42,193 [DEBUG][       Thread-254039][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:58:42,193 [DEBUG][       Thread-254039][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:58:42,193 [DEBUG][       Thread-254039][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 11:58:42,193 [DEBUG][       Thread-254039][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 11:58:42,193 [DEBUG][       Thread-254039][   transport.py][1871] : client lang: <none>
2025-06-13 11:58:42,193 [DEBUG][       Thread-254039][   transport.py][1871] : server lang: <none>
2025-06-13 11:58:42,193 [DEBUG][       Thread-254039][   transport.py][1871] : kex follows: False
2025-06-13 11:58:42,193 [DEBUG][       Thread-254039][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 11:58:42,194 [DEBUG][       Thread-254039][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 11:58:42,194 [DEBUG][       Thread-254039][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 11:58:42,194 [DEBUG][       Thread-254039][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 11:58:42,194 [DEBUG][       Thread-254039][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 11:58:42,194 [DEBUG][       Thread-254039][   transport.py][1871] : Compression: none
2025-06-13 11:58:42,194 [DEBUG][       Thread-254039][   transport.py][1871] : === End of kex handshake ===
2025-06-13 11:58:42,212 [DEBUG][       Thread-254039][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 11:58:42,212 [DEBUG][       Thread-254039][   transport.py][1871] : Switch to new keys ...
2025-06-13 11:58:42,213 [DEBUG][       Thread-254039][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 11:58:42,213 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 11:58:42,213 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 11:58:42,213 [DEBUG][       Thread-254039][   transport.py][1871] : userauth is OK
2025-06-13 11:58:42,226 [ INFO][       Thread-254039][   transport.py][1871] : Authentication (password) successful!
2025-06-13 11:58:42,227 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 11:58:42,875 [DEBUG][       Thread-254039][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 11:58:42,875 [DEBUG][       Thread-254039][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 11:58:42,917 [DEBUG][       Thread-254039][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 11:58:42,917 [DEBUG][       Thread-254039][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 11:58:42,921 [DEBUG][       Thread-254039][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 11:58:42,932 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 11:58:42,932 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 11:58:42,934 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 11:58:42,936 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 11:58:42,942 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 11:58:42,944 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 11:58:42,944 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 11:58:42,945 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 11:58:42,945 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.415216 -999.00  +11.20  25.06     45   -0.10 1 1 1 1 1   888    0 12.38 61.51 ----- 18.2 25.1 49.0 28.6 15.5 -29.1 14.2 -29.6 13.8 -28.9 15.1 -26.1
2025-06-13 11:58:42,945 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 11:58:42,945 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 11:58:42,945 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.415216
2025-06-13 11:58:42,946 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 11:58:42,946 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 11:58:42,946 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 11:58:42,946 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 11:58:42,946 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 11:58:42,946 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T11:58:22', tmtdew=12.51, humidity=41.74, cloud=0.0, wind=22.39, temperature=11.42, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T09:57:54.662', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 11:58:42,948 [DEBUG][       Thread-254039][   transport.py][1871] : EOF in transport thread
2025-06-13 11:58:43,030 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 11:58:43,041 [DEBUG][       Thread-254042][   transport.py][1871] : starting thread (client mode): 0x863c8250
2025-06-13 11:58:43,041 [DEBUG][       Thread-254042][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 11:58:43,057 [DEBUG][       Thread-254042][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 11:58:43,057 [ INFO][       Thread-254042][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 11:58:43,065 [DEBUG][       Thread-254042][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 11:58:43,065 [DEBUG][       Thread-254042][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 11:58:43,065 [DEBUG][       Thread-254042][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 11:58:43,065 [DEBUG][       Thread-254042][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:58:43,065 [DEBUG][       Thread-254042][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:58:43,065 [DEBUG][       Thread-254042][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:58:43,066 [DEBUG][       Thread-254042][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:58:43,066 [DEBUG][       Thread-254042][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 11:58:43,066 [DEBUG][       Thread-254042][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 11:58:43,066 [DEBUG][       Thread-254042][   transport.py][1871] : client lang: <none>
2025-06-13 11:58:43,066 [DEBUG][       Thread-254042][   transport.py][1871] : server lang: <none>
2025-06-13 11:58:43,066 [DEBUG][       Thread-254042][   transport.py][1871] : kex follows: False
2025-06-13 11:58:43,066 [DEBUG][       Thread-254042][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 11:58:43,066 [DEBUG][       Thread-254042][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 11:58:43,066 [DEBUG][       Thread-254042][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 11:58:43,066 [DEBUG][       Thread-254042][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 11:58:43,066 [DEBUG][       Thread-254042][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 11:58:43,066 [DEBUG][       Thread-254042][   transport.py][1871] : Compression: none
2025-06-13 11:58:43,066 [DEBUG][       Thread-254042][   transport.py][1871] : === End of kex handshake ===
2025-06-13 11:58:43,125 [DEBUG][       Thread-254042][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 11:58:43,125 [DEBUG][       Thread-254042][   transport.py][1871] : Switch to new keys ...
2025-06-13 11:58:43,126 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 11:58:43,127 [DEBUG][       Thread-254042][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 11:58:43,127 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 11:58:43,181 [DEBUG][       Thread-254042][   transport.py][1871] : userauth is OK
2025-06-13 11:58:43,181 [DEBUG][       Thread-254042][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 11:58:43,181 [DEBUG][       Thread-254042][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 11:58:43,181 [DEBUG][       Thread-254042][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 11:58:43,181 [DEBUG][       Thread-254042][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 11:58:43,195 [ INFO][       Thread-254042][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 11:58:43,195 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 11:58:43,196 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 11:58:44,263 [DEBUG][       Thread-254042][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 11:58:44,263 [DEBUG][       Thread-254042][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 11:58:44,312 [DEBUG][       Thread-254042][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 11:58:44,312 [DEBUG][       Thread-254042][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 11:58:44,321 [DEBUG][       Thread-254042][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 11:58:44,335 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 11:58:44,335 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 11:58:44,344 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 11:58:44,354 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 11:58:44,354 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 11:58:44,354 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 11:58:44,363 [DEBUG][       Thread-254042][   transport.py][1871] : EOF in transport thread
2025-06-13 11:58:45,382 [DEBUG][Thread-254044 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:58:54,365 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 11:58:54,365 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 11:58:54,365 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 11:58:54,368 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 11:58:54,402 [DEBUG][Thread-254045 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:58:54,552 [DEBUG][Thread-254046 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:58:54,830 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 11, 58, 22), 12.51, 41.74, 0.0, 22.39, 11.42, 0, 0, 0, 2, 0, 0),)
2025-06-13 11:58:54,831 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 11:58:22
2025-06-13 11:58:54,911 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 11:58:54,915 [DEBUG][       Thread-254047][   transport.py][1871] : starting thread (client mode): 0x84204550
2025-06-13 11:58:54,916 [DEBUG][       Thread-254047][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 11:58:54,936 [DEBUG][       Thread-254047][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 11:58:54,936 [ INFO][       Thread-254047][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 11:58:54,939 [DEBUG][       Thread-254047][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 11:58:54,939 [DEBUG][       Thread-254047][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 11:58:54,939 [DEBUG][       Thread-254047][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 11:58:54,939 [DEBUG][       Thread-254047][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:58:54,939 [DEBUG][       Thread-254047][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 11:58:54,939 [DEBUG][       Thread-254047][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:58:54,939 [DEBUG][       Thread-254047][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 11:58:54,939 [DEBUG][       Thread-254047][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 11:58:54,939 [DEBUG][       Thread-254047][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 11:58:54,939 [DEBUG][       Thread-254047][   transport.py][1871] : client lang: <none>
2025-06-13 11:58:54,939 [DEBUG][       Thread-254047][   transport.py][1871] : server lang: <none>
2025-06-13 11:58:54,939 [DEBUG][       Thread-254047][   transport.py][1871] : kex follows: False
2025-06-13 11:58:54,939 [DEBUG][       Thread-254047][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 11:58:54,939 [DEBUG][       Thread-254047][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 11:58:54,939 [DEBUG][       Thread-254047][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 11:58:54,939 [DEBUG][       Thread-254047][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 11:58:54,940 [DEBUG][       Thread-254047][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 11:58:54,940 [DEBUG][       Thread-254047][   transport.py][1871] : Compression: none
2025-06-13 11:58:54,940 [DEBUG][       Thread-254047][   transport.py][1871] : === End of kex handshake ===
2025-06-13 11:58:54,956 [DEBUG][       Thread-254047][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 11:58:54,957 [DEBUG][       Thread-254047][   transport.py][1871] : Switch to new keys ...
2025-06-13 11:58:54,957 [DEBUG][       Thread-254047][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 11:58:54,957 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 11:58:54,958 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 11:58:54,959 [DEBUG][       Thread-254047][   transport.py][1871] : userauth is OK
2025-06-13 11:58:54,983 [ INFO][       Thread-254047][   transport.py][1871] : Authentication (password) successful!
2025-06-13 11:58:54,984 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 11:58:55,594 [DEBUG][       Thread-254047][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 11:58:55,594 [DEBUG][       Thread-254047][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 11:58:55,601 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:58:55,602 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:58:55,636 [DEBUG][       Thread-254047][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 11:58:55,637 [DEBUG][       Thread-254047][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 11:58:55,639 [DEBUG][       Thread-254047][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 11:58:55,650 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 11:58:55,650 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 11:58:55,651 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 11:58:55,652 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 11:58:55,655 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 11:58:55,656 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 11:58:55,656 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 11:58:55,656 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 11:58:55,656 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.415563 -999.00  +11.40  22.03     46   +0.30 1 1 1 1 1   888    0 12.33 62.58 ----- 24.1 22.0 30.8 27.7 15.6 -27.8 14.3 -29.6 13.9 -28.5 15.1 -26.3
2025-06-13 11:58:55,656 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 11:58:55,656 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 11:58:55,656 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.415563
2025-06-13 11:58:55,656 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 11:58:55,656 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 11:58:55,656 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 11:58:55,656 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 11:58:55,656 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 11:58:55,657 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T11:58:22', tmtdew=12.51, humidity=41.74, cloud=0.0, wind=22.39, temperature=11.42, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T09:58:24.643', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 11:58:55,657 [DEBUG][       Thread-254047][   transport.py][1871] : EOF in transport thread
2025-06-13 11:58:55,731 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 11:59:03,421 [DEBUG][Thread-254050 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:59:10,784 [DEBUG][Thread-254051 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:59:12,444 [DEBUG][Thread-254052 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:59:21,463 [DEBUG][Thread-254053 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:59:30,486 [DEBUG][Thread-254054 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:59:39,502 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:59:39,504 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:59:39,508 [DEBUG][Thread-254055 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:59:48,528 [DEBUG][Thread-254056 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:59:55,665 [DEBUG][Thread-254057 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:59:56,753 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:59:56,754 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 11:59:57,549 [DEBUG][Thread-254058 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:00:06,569 [DEBUG][Thread-254059 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:00:10,833 [DEBUG][Thread-254060 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:00:15,594 [DEBUG][Thread-254061 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:00:24,616 [DEBUG][Thread-254062 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:00:33,635 [DEBUG][Thread-254063 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:00:39,640 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:00:39,641 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:00:42,660 [DEBUG][Thread-254064 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:00:51,682 [DEBUG][Thread-254065 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:00:56,789 [DEBUG][Thread-254066 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:00:57,865 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:00:57,875 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:01:00,706 [DEBUG][Thread-254067 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:01:05,556 [WARNING][ poll_weather_worker][      driver.py][ 286] : Unable to open ssh connection for writing weather state to io.saao.ac.za: [Errno 110] Connection timed out
2025-06-13 12:01:09,726 [DEBUG][Thread-254068 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:01:10,886 [DEBUG][Thread-254069 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:01:15,566 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 12:01:15,567 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 12:01:15,567 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 12:01:15,570 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 12:01:16,061 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 12, 1, 1), 12.42, 42.3, 0.0, 18.65, 11.48, 0, 0, 0, 2, 0, 0),)
2025-06-13 12:01:16,061 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 12:01:01
2025-06-13 12:01:16,142 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 12:01:16,149 [DEBUG][       Thread-254070][   transport.py][1871] : starting thread (client mode): 0x84204610
2025-06-13 12:01:16,149 [DEBUG][       Thread-254070][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 12:01:16,170 [DEBUG][       Thread-254070][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 12:01:16,170 [ INFO][       Thread-254070][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 12:01:16,174 [DEBUG][       Thread-254070][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 12:01:16,174 [DEBUG][       Thread-254070][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 12:01:16,174 [DEBUG][       Thread-254070][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 12:01:16,174 [DEBUG][       Thread-254070][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:01:16,174 [DEBUG][       Thread-254070][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:01:16,174 [DEBUG][       Thread-254070][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:01:16,174 [DEBUG][       Thread-254070][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:01:16,174 [DEBUG][       Thread-254070][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 12:01:16,174 [DEBUG][       Thread-254070][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 12:01:16,174 [DEBUG][       Thread-254070][   transport.py][1871] : client lang: <none>
2025-06-13 12:01:16,174 [DEBUG][       Thread-254070][   transport.py][1871] : server lang: <none>
2025-06-13 12:01:16,174 [DEBUG][       Thread-254070][   transport.py][1871] : kex follows: False
2025-06-13 12:01:16,174 [DEBUG][       Thread-254070][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 12:01:16,174 [DEBUG][       Thread-254070][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 12:01:16,174 [DEBUG][       Thread-254070][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 12:01:16,174 [DEBUG][       Thread-254070][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 12:01:16,174 [DEBUG][       Thread-254070][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 12:01:16,174 [DEBUG][       Thread-254070][   transport.py][1871] : Compression: none
2025-06-13 12:01:16,174 [DEBUG][       Thread-254070][   transport.py][1871] : === End of kex handshake ===
2025-06-13 12:01:16,191 [DEBUG][       Thread-254070][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 12:01:16,192 [DEBUG][       Thread-254070][   transport.py][1871] : Switch to new keys ...
2025-06-13 12:01:16,193 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 12:01:16,193 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 12:01:16,193 [DEBUG][       Thread-254070][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 12:01:16,194 [DEBUG][       Thread-254070][   transport.py][1871] : userauth is OK
2025-06-13 12:01:16,207 [ INFO][       Thread-254070][   transport.py][1871] : Authentication (password) successful!
2025-06-13 12:01:16,207 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 12:01:16,847 [DEBUG][       Thread-254070][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 12:01:16,847 [DEBUG][       Thread-254070][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 12:01:16,889 [DEBUG][       Thread-254070][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 12:01:16,889 [DEBUG][       Thread-254070][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 12:01:16,892 [DEBUG][       Thread-254070][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 12:01:16,904 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 12:01:16,904 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 12:01:16,906 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 12:01:16,909 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 12:01:16,915 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 12:01:16,917 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 12:01:16,918 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 12:01:16,919 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 12:01:16,919 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.417300 -999.00  +11.20  20.32     47   +0.50 1 1 1 1 1   888    0 12.09 46.36 ----- 21.7 20.3 44.0 24.9 15.7 -27.9 14.3 -30.0 13.9 -27.5 15.2 -26.6
2025-06-13 12:01:16,919 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 12:01:16,919 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 12:01:16,919 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.417300
2025-06-13 12:01:16,919 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 12:01:16,920 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 12:01:16,920 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 12:01:16,920 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 12:01:16,920 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 12:01:16,920 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T12:01:01', tmtdew=12.42, humidity=42.3, cloud=0.0, wind=18.65, temperature=11.48, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T10:00:54.720', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 12:01:16,922 [DEBUG][       Thread-254070][   transport.py][1871] : EOF in transport thread
2025-06-13 12:01:17,005 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 12:01:17,018 [DEBUG][       Thread-254073][   transport.py][1871] : starting thread (client mode): 0x86739330
2025-06-13 12:01:17,018 [DEBUG][       Thread-254073][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 12:01:17,032 [DEBUG][       Thread-254073][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 12:01:17,032 [ INFO][       Thread-254073][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 12:01:17,040 [DEBUG][       Thread-254073][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 12:01:17,040 [DEBUG][       Thread-254073][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 12:01:17,040 [DEBUG][       Thread-254073][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 12:01:17,040 [DEBUG][       Thread-254073][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:01:17,040 [DEBUG][       Thread-254073][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:01:17,040 [DEBUG][       Thread-254073][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:01:17,040 [DEBUG][       Thread-254073][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:01:17,040 [DEBUG][       Thread-254073][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 12:01:17,040 [DEBUG][       Thread-254073][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 12:01:17,040 [DEBUG][       Thread-254073][   transport.py][1871] : client lang: <none>
2025-06-13 12:01:17,041 [DEBUG][       Thread-254073][   transport.py][1871] : server lang: <none>
2025-06-13 12:01:17,041 [DEBUG][       Thread-254073][   transport.py][1871] : kex follows: False
2025-06-13 12:01:17,041 [DEBUG][       Thread-254073][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 12:01:17,041 [DEBUG][       Thread-254073][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 12:01:17,041 [DEBUG][       Thread-254073][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 12:01:17,041 [DEBUG][       Thread-254073][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 12:01:17,041 [DEBUG][       Thread-254073][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 12:01:17,041 [DEBUG][       Thread-254073][   transport.py][1871] : Compression: none
2025-06-13 12:01:17,041 [DEBUG][       Thread-254073][   transport.py][1871] : === End of kex handshake ===
2025-06-13 12:01:17,102 [DEBUG][       Thread-254073][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 12:01:17,103 [DEBUG][       Thread-254073][   transport.py][1871] : Switch to new keys ...
2025-06-13 12:01:17,103 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 12:01:17,104 [DEBUG][       Thread-254073][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 12:01:17,105 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 12:01:17,161 [DEBUG][       Thread-254073][   transport.py][1871] : userauth is OK
2025-06-13 12:01:17,161 [DEBUG][       Thread-254073][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 12:01:17,161 [DEBUG][       Thread-254073][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 12:01:17,161 [DEBUG][       Thread-254073][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 12:01:17,161 [DEBUG][       Thread-254073][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 12:01:17,180 [ INFO][       Thread-254073][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 12:01:17,180 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 12:01:17,181 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 12:01:18,201 [DEBUG][       Thread-254073][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 12:01:18,202 [DEBUG][       Thread-254073][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 12:01:18,252 [DEBUG][       Thread-254073][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 12:01:18,252 [DEBUG][       Thread-254073][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 12:01:18,261 [DEBUG][       Thread-254073][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 12:01:18,270 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 12:01:18,270 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 12:01:18,279 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 12:01:18,288 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 12:01:18,289 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 12:01:18,289 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 12:01:18,297 [DEBUG][       Thread-254073][   transport.py][1871] : EOF in transport thread
2025-06-13 12:01:18,751 [DEBUG][Thread-254075 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:01:27,780 [DEBUG][Thread-254076 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:01:28,300 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 12:01:28,300 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 12:01:28,300 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 12:01:28,303 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 12:01:28,787 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 12, 1, 1), 12.42, 42.3, 0.0, 18.65, 11.48, 0, 0, 0, 2, 0, 0),)
2025-06-13 12:01:28,787 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 12:01:01
2025-06-13 12:01:28,868 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 12:01:28,872 [DEBUG][       Thread-254077][   transport.py][1871] : starting thread (client mode): 0x867fc0d0
2025-06-13 12:01:28,872 [DEBUG][       Thread-254077][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 12:01:28,892 [DEBUG][       Thread-254077][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 12:01:28,892 [ INFO][       Thread-254077][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 12:01:28,896 [DEBUG][       Thread-254077][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 12:01:28,896 [DEBUG][       Thread-254077][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 12:01:28,896 [DEBUG][       Thread-254077][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 12:01:28,896 [DEBUG][       Thread-254077][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:01:28,896 [DEBUG][       Thread-254077][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:01:28,896 [DEBUG][       Thread-254077][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:01:28,896 [DEBUG][       Thread-254077][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:01:28,896 [DEBUG][       Thread-254077][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 12:01:28,896 [DEBUG][       Thread-254077][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 12:01:28,896 [DEBUG][       Thread-254077][   transport.py][1871] : client lang: <none>
2025-06-13 12:01:28,896 [DEBUG][       Thread-254077][   transport.py][1871] : server lang: <none>
2025-06-13 12:01:28,896 [DEBUG][       Thread-254077][   transport.py][1871] : kex follows: False
2025-06-13 12:01:28,896 [DEBUG][       Thread-254077][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 12:01:28,896 [DEBUG][       Thread-254077][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 12:01:28,896 [DEBUG][       Thread-254077][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 12:01:28,896 [DEBUG][       Thread-254077][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 12:01:28,896 [DEBUG][       Thread-254077][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 12:01:28,896 [DEBUG][       Thread-254077][   transport.py][1871] : Compression: none
2025-06-13 12:01:28,896 [DEBUG][       Thread-254077][   transport.py][1871] : === End of kex handshake ===
2025-06-13 12:01:28,913 [DEBUG][       Thread-254077][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 12:01:28,913 [DEBUG][       Thread-254077][   transport.py][1871] : Switch to new keys ...
2025-06-13 12:01:28,914 [DEBUG][       Thread-254077][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 12:01:28,914 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 12:01:28,914 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 12:01:28,916 [DEBUG][       Thread-254077][   transport.py][1871] : userauth is OK
2025-06-13 12:01:28,941 [ INFO][       Thread-254077][   transport.py][1871] : Authentication (password) successful!
2025-06-13 12:01:28,941 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 12:01:29,555 [DEBUG][       Thread-254077][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 12:01:29,556 [DEBUG][       Thread-254077][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 12:01:29,597 [DEBUG][       Thread-254077][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 12:01:29,597 [DEBUG][       Thread-254077][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 12:01:29,601 [DEBUG][       Thread-254077][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 12:01:29,612 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 12:01:29,612 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 12:01:29,614 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 12:01:29,616 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 12:01:29,621 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 12:01:29,623 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 12:01:29,624 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 12:01:29,624 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 12:01:29,625 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.417300 -999.00  +11.20  20.32     47   +0.50 1 1 1 1 1   888    0 12.09 46.36 ----- 21.7 20.3 44.0 24.9 15.7 -27.9 14.3 -30.0 13.9 -27.5 15.2 -26.6
2025-06-13 12:01:29,625 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 12:01:29,625 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 12:01:29,625 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.417300
2025-06-13 12:01:29,625 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 12:01:29,626 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 12:01:29,626 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 12:01:29,626 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 12:01:29,626 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 12:01:29,626 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T12:01:01', tmtdew=12.42, humidity=42.3, cloud=0.0, wind=18.65, temperature=11.48, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T10:00:54.720', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 12:01:29,627 [DEBUG][       Thread-254077][   transport.py][1871] : EOF in transport thread
2025-06-13 12:01:29,710 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 12:01:29,719 [DEBUG][       Thread-254080][   transport.py][1871] : starting thread (client mode): 0x84207fa0
2025-06-13 12:01:29,719 [DEBUG][       Thread-254080][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 12:01:29,734 [DEBUG][       Thread-254080][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 12:01:29,734 [ INFO][       Thread-254080][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 12:01:29,745 [DEBUG][       Thread-254080][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 12:01:29,746 [DEBUG][       Thread-254080][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 12:01:29,746 [DEBUG][       Thread-254080][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 12:01:29,746 [DEBUG][       Thread-254080][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:01:29,746 [DEBUG][       Thread-254080][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:01:29,746 [DEBUG][       Thread-254080][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:01:29,746 [DEBUG][       Thread-254080][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:01:29,746 [DEBUG][       Thread-254080][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 12:01:29,746 [DEBUG][       Thread-254080][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 12:01:29,746 [DEBUG][       Thread-254080][   transport.py][1871] : client lang: <none>
2025-06-13 12:01:29,746 [DEBUG][       Thread-254080][   transport.py][1871] : server lang: <none>
2025-06-13 12:01:29,746 [DEBUG][       Thread-254080][   transport.py][1871] : kex follows: False
2025-06-13 12:01:29,746 [DEBUG][       Thread-254080][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 12:01:29,746 [DEBUG][       Thread-254080][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 12:01:29,746 [DEBUG][       Thread-254080][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 12:01:29,746 [DEBUG][       Thread-254080][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 12:01:29,746 [DEBUG][       Thread-254080][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 12:01:29,746 [DEBUG][       Thread-254080][   transport.py][1871] : Compression: none
2025-06-13 12:01:29,746 [DEBUG][       Thread-254080][   transport.py][1871] : === End of kex handshake ===
2025-06-13 12:01:29,811 [DEBUG][       Thread-254080][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 12:01:29,811 [DEBUG][       Thread-254080][   transport.py][1871] : Switch to new keys ...
2025-06-13 12:01:29,812 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 12:01:29,812 [DEBUG][       Thread-254080][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 12:01:29,813 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 12:01:29,868 [DEBUG][       Thread-254080][   transport.py][1871] : userauth is OK
2025-06-13 12:01:29,869 [DEBUG][       Thread-254080][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 12:01:29,869 [DEBUG][       Thread-254080][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 12:01:29,869 [DEBUG][       Thread-254080][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 12:01:29,869 [DEBUG][       Thread-254080][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 12:01:29,887 [ INFO][       Thread-254080][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 12:01:29,888 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 12:01:29,888 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 12:01:30,891 [DEBUG][       Thread-254080][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 12:01:30,891 [DEBUG][       Thread-254080][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 12:01:30,940 [DEBUG][       Thread-254080][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 12:01:30,940 [DEBUG][       Thread-254080][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 12:01:30,950 [DEBUG][       Thread-254080][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 12:01:30,959 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 12:01:30,959 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 12:01:30,968 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 12:01:30,978 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 12:01:30,978 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 12:01:30,978 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 12:01:30,996 [DEBUG][       Thread-254080][   transport.py][1871] : EOF in transport thread
2025-06-13 12:01:36,801 [DEBUG][Thread-254082 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:01:39,778 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:01:39,779 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:01:40,980 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 12:01:40,980 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 12:01:40,980 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 12:01:40,983 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 12:01:41,466 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 12, 1, 33), 12.37, 42.2, 0.0, 19.13, 11.37, 0, 0, 0, 2, 0, 0),)
2025-06-13 12:01:41,466 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 12:01:33
2025-06-13 12:01:41,547 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 12:01:41,553 [DEBUG][       Thread-254083][   transport.py][1871] : starting thread (client mode): 0x842063e0
2025-06-13 12:01:41,553 [DEBUG][       Thread-254083][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 12:01:41,573 [DEBUG][       Thread-254083][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 12:01:41,573 [ INFO][       Thread-254083][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 12:01:41,577 [DEBUG][       Thread-254083][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 12:01:41,577 [DEBUG][       Thread-254083][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 12:01:41,577 [DEBUG][       Thread-254083][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 12:01:41,577 [DEBUG][       Thread-254083][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:01:41,577 [DEBUG][       Thread-254083][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:01:41,577 [DEBUG][       Thread-254083][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:01:41,577 [DEBUG][       Thread-254083][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:01:41,577 [DEBUG][       Thread-254083][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 12:01:41,577 [DEBUG][       Thread-254083][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 12:01:41,577 [DEBUG][       Thread-254083][   transport.py][1871] : client lang: <none>
2025-06-13 12:01:41,577 [DEBUG][       Thread-254083][   transport.py][1871] : server lang: <none>
2025-06-13 12:01:41,577 [DEBUG][       Thread-254083][   transport.py][1871] : kex follows: False
2025-06-13 12:01:41,577 [DEBUG][       Thread-254083][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 12:01:41,577 [DEBUG][       Thread-254083][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 12:01:41,577 [DEBUG][       Thread-254083][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 12:01:41,577 [DEBUG][       Thread-254083][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 12:01:41,577 [DEBUG][       Thread-254083][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 12:01:41,577 [DEBUG][       Thread-254083][   transport.py][1871] : Compression: none
2025-06-13 12:01:41,577 [DEBUG][       Thread-254083][   transport.py][1871] : === End of kex handshake ===
2025-06-13 12:01:41,595 [DEBUG][       Thread-254083][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 12:01:41,595 [DEBUG][       Thread-254083][   transport.py][1871] : Switch to new keys ...
2025-06-13 12:01:41,596 [DEBUG][       Thread-254083][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 12:01:41,596 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 12:01:41,596 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 12:01:41,597 [DEBUG][       Thread-254083][   transport.py][1871] : userauth is OK
2025-06-13 12:01:41,622 [ INFO][       Thread-254083][   transport.py][1871] : Authentication (password) successful!
2025-06-13 12:01:41,622 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 12:01:42,283 [DEBUG][       Thread-254083][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 12:01:42,283 [DEBUG][       Thread-254083][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 12:01:42,325 [DEBUG][       Thread-254083][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 12:01:42,325 [DEBUG][       Thread-254083][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 12:01:42,328 [DEBUG][       Thread-254083][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 12:01:42,342 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 12:01:42,343 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 12:01:42,345 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 12:01:42,347 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 12:01:42,353 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 12:01:42,355 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 12:01:42,355 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 12:01:42,355 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 12:01:42,356 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.417647 -999.00  +11.30  22.49     47   +0.60 1 1 1 1 1   888    0 12.07 46.07 ----- 24.8 22.5 51.3 30.9 15.6 -28.2 14.3 -29.3 13.9 -28.6 15.2 -26.4
2025-06-13 12:01:42,356 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 12:01:42,356 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 12:01:42,356 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.417647
2025-06-13 12:01:42,356 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 12:01:42,357 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 12:01:42,357 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 12:01:42,357 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 12:01:42,357 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 12:01:42,357 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T12:01:33', tmtdew=12.37, humidity=42.2, cloud=0.0, wind=19.13, temperature=11.37, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T10:01:24.701', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 12:01:42,359 [DEBUG][       Thread-254083][   transport.py][1871] : EOF in transport thread
2025-06-13 12:01:42,440 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 12:01:42,452 [DEBUG][       Thread-254086][   transport.py][1871] : starting thread (client mode): 0x868c85b0
2025-06-13 12:01:42,452 [DEBUG][       Thread-254086][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 12:01:42,470 [DEBUG][       Thread-254086][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 12:01:42,470 [ INFO][       Thread-254086][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 12:01:42,479 [DEBUG][       Thread-254086][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 12:01:42,479 [DEBUG][       Thread-254086][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 12:01:42,479 [DEBUG][       Thread-254086][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 12:01:42,479 [DEBUG][       Thread-254086][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:01:42,480 [DEBUG][       Thread-254086][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:01:42,480 [DEBUG][       Thread-254086][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:01:42,480 [DEBUG][       Thread-254086][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:01:42,480 [DEBUG][       Thread-254086][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 12:01:42,480 [DEBUG][       Thread-254086][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 12:01:42,480 [DEBUG][       Thread-254086][   transport.py][1871] : client lang: <none>
2025-06-13 12:01:42,480 [DEBUG][       Thread-254086][   transport.py][1871] : server lang: <none>
2025-06-13 12:01:42,480 [DEBUG][       Thread-254086][   transport.py][1871] : kex follows: False
2025-06-13 12:01:42,480 [DEBUG][       Thread-254086][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 12:01:42,480 [DEBUG][       Thread-254086][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 12:01:42,481 [DEBUG][       Thread-254086][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 12:01:42,481 [DEBUG][       Thread-254086][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 12:01:42,481 [DEBUG][       Thread-254086][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 12:01:42,481 [DEBUG][       Thread-254086][   transport.py][1871] : Compression: none
2025-06-13 12:01:42,481 [DEBUG][       Thread-254086][   transport.py][1871] : === End of kex handshake ===
2025-06-13 12:01:42,542 [DEBUG][       Thread-254086][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 12:01:42,543 [DEBUG][       Thread-254086][   transport.py][1871] : Switch to new keys ...
2025-06-13 12:01:42,544 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 12:01:42,544 [DEBUG][       Thread-254086][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 12:01:42,545 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 12:01:42,601 [DEBUG][       Thread-254086][   transport.py][1871] : userauth is OK
2025-06-13 12:01:42,602 [DEBUG][       Thread-254086][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 12:01:42,602 [DEBUG][       Thread-254086][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 12:01:42,602 [DEBUG][       Thread-254086][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 12:01:42,602 [DEBUG][       Thread-254086][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 12:01:42,621 [ INFO][       Thread-254086][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 12:01:42,621 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 12:01:42,622 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 12:01:43,634 [DEBUG][       Thread-254086][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 12:01:43,634 [DEBUG][       Thread-254086][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 12:01:43,685 [DEBUG][       Thread-254086][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 12:01:43,685 [DEBUG][       Thread-254086][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 12:01:43,693 [DEBUG][       Thread-254086][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 12:01:43,701 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 12:01:43,701 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 12:01:43,709 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 12:01:43,717 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 12:01:43,717 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 12:01:43,717 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 12:01:43,724 [DEBUG][       Thread-254086][   transport.py][1871] : EOF in transport thread
2025-06-13 12:01:45,821 [DEBUG][Thread-254088 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:01:53,727 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 12:01:53,727 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 12:01:53,727 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 12:01:53,730 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 12:01:54,200 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 12, 1, 33), 12.37, 42.2, 0.0, 19.13, 11.37, 0, 0, 0, 2, 0, 0),)
2025-06-13 12:01:54,201 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 12:01:33
2025-06-13 12:01:54,282 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 12:01:54,286 [DEBUG][       Thread-254089][   transport.py][1871] : starting thread (client mode): 0x863bff70
2025-06-13 12:01:54,286 [DEBUG][       Thread-254089][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 12:01:54,306 [DEBUG][       Thread-254089][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 12:01:54,306 [ INFO][       Thread-254089][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 12:01:54,309 [DEBUG][       Thread-254089][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 12:01:54,309 [DEBUG][       Thread-254089][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 12:01:54,309 [DEBUG][       Thread-254089][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 12:01:54,309 [DEBUG][       Thread-254089][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:01:54,309 [DEBUG][       Thread-254089][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:01:54,309 [DEBUG][       Thread-254089][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:01:54,309 [DEBUG][       Thread-254089][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:01:54,309 [DEBUG][       Thread-254089][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 12:01:54,309 [DEBUG][       Thread-254089][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 12:01:54,309 [DEBUG][       Thread-254089][   transport.py][1871] : client lang: <none>
2025-06-13 12:01:54,309 [DEBUG][       Thread-254089][   transport.py][1871] : server lang: <none>
2025-06-13 12:01:54,309 [DEBUG][       Thread-254089][   transport.py][1871] : kex follows: False
2025-06-13 12:01:54,309 [DEBUG][       Thread-254089][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 12:01:54,309 [DEBUG][       Thread-254089][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 12:01:54,309 [DEBUG][       Thread-254089][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 12:01:54,309 [DEBUG][       Thread-254089][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 12:01:54,309 [DEBUG][       Thread-254089][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 12:01:54,310 [DEBUG][       Thread-254089][   transport.py][1871] : Compression: none
2025-06-13 12:01:54,310 [DEBUG][       Thread-254089][   transport.py][1871] : === End of kex handshake ===
2025-06-13 12:01:54,327 [DEBUG][       Thread-254089][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 12:01:54,328 [DEBUG][       Thread-254089][   transport.py][1871] : Switch to new keys ...
2025-06-13 12:01:54,328 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 12:01:54,328 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 12:01:54,329 [DEBUG][       Thread-254089][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 12:01:54,330 [DEBUG][       Thread-254089][   transport.py][1871] : userauth is OK
2025-06-13 12:01:54,343 [ INFO][       Thread-254089][   transport.py][1871] : Authentication (password) successful!
2025-06-13 12:01:54,343 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 12:01:54,848 [DEBUG][Thread-254091 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:01:54,963 [DEBUG][       Thread-254089][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 12:01:54,963 [DEBUG][       Thread-254089][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 12:01:55,005 [DEBUG][       Thread-254089][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 12:01:55,005 [DEBUG][       Thread-254089][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 12:01:55,008 [DEBUG][       Thread-254089][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 12:01:55,022 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 12:01:55,022 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 12:01:55,024 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 12:01:55,026 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 12:01:55,031 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 12:01:55,033 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 12:01:55,033 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 12:01:55,034 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 12:01:55,034 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.417647 -999.00  +11.30  22.49     47   +0.60 1 1 1 1 1   888    0 12.07 46.07 ----- 24.8 22.5 51.3 30.9 15.6 -28.2 14.3 -29.3 13.9 -28.6 15.2 -26.4
2025-06-13 12:01:55,034 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 12:01:55,034 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 12:01:55,034 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.417647
2025-06-13 12:01:55,035 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 12:01:55,035 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 12:01:55,035 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 12:01:55,035 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 12:01:55,035 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 12:01:55,036 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T12:01:33', tmtdew=12.37, humidity=42.2, cloud=0.0, wind=19.13, temperature=11.37, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T10:01:24.701', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 12:01:55,037 [DEBUG][       Thread-254089][   transport.py][1871] : EOF in transport thread
2025-06-13 12:01:55,119 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 12:01:55,129 [DEBUG][       Thread-254093][   transport.py][1871] : starting thread (client mode): 0x863c8880
2025-06-13 12:01:55,129 [DEBUG][       Thread-254093][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 12:01:55,144 [DEBUG][       Thread-254093][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 12:01:55,144 [ INFO][       Thread-254093][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 12:01:55,152 [DEBUG][       Thread-254093][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 12:01:55,152 [DEBUG][       Thread-254093][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 12:01:55,152 [DEBUG][       Thread-254093][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 12:01:55,152 [DEBUG][       Thread-254093][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:01:55,152 [DEBUG][       Thread-254093][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:01:55,152 [DEBUG][       Thread-254093][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:01:55,152 [DEBUG][       Thread-254093][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:01:55,152 [DEBUG][       Thread-254093][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 12:01:55,152 [DEBUG][       Thread-254093][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 12:01:55,152 [DEBUG][       Thread-254093][   transport.py][1871] : client lang: <none>
2025-06-13 12:01:55,152 [DEBUG][       Thread-254093][   transport.py][1871] : server lang: <none>
2025-06-13 12:01:55,152 [DEBUG][       Thread-254093][   transport.py][1871] : kex follows: False
2025-06-13 12:01:55,152 [DEBUG][       Thread-254093][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 12:01:55,152 [DEBUG][       Thread-254093][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 12:01:55,152 [DEBUG][       Thread-254093][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 12:01:55,153 [DEBUG][       Thread-254093][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 12:01:55,153 [DEBUG][       Thread-254093][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 12:01:55,153 [DEBUG][       Thread-254093][   transport.py][1871] : Compression: none
2025-06-13 12:01:55,153 [DEBUG][       Thread-254093][   transport.py][1871] : === End of kex handshake ===
2025-06-13 12:01:55,212 [DEBUG][       Thread-254093][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 12:01:55,213 [DEBUG][       Thread-254093][   transport.py][1871] : Switch to new keys ...
2025-06-13 12:01:55,213 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 12:01:55,214 [DEBUG][       Thread-254093][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 12:01:55,215 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 12:01:55,268 [DEBUG][       Thread-254093][   transport.py][1871] : userauth is OK
2025-06-13 12:01:55,269 [DEBUG][       Thread-254093][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 12:01:55,269 [DEBUG][       Thread-254093][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 12:01:55,269 [DEBUG][       Thread-254093][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 12:01:55,269 [DEBUG][       Thread-254093][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 12:01:55,288 [ INFO][       Thread-254093][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 12:01:55,288 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 12:01:55,288 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 12:01:56,361 [DEBUG][       Thread-254093][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 12:01:56,362 [DEBUG][       Thread-254093][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 12:01:56,412 [DEBUG][       Thread-254093][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 12:01:56,412 [DEBUG][       Thread-254093][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 12:01:56,422 [DEBUG][       Thread-254093][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 12:01:56,431 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 12:01:56,431 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 12:01:56,443 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 12:01:56,452 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 12:01:56,452 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 12:01:56,452 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 12:01:56,460 [DEBUG][       Thread-254093][   transport.py][1871] : EOF in transport thread
2025-06-13 12:01:57,947 [DEBUG][Thread-254095 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:01:59,028 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:01:59,030 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:02:03,871 [DEBUG][Thread-254096 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:02:06,460 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 12:02:06,460 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 12:02:06,460 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 12:02:06,460 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 12:02:06,962 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 12, 1, 33), 12.37, 42.2, 0.0, 19.13, 11.37, 0, 0, 0, 2, 0, 0),)
2025-06-13 12:02:06,962 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 12:01:33
2025-06-13 12:02:07,043 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 12:02:07,047 [DEBUG][       Thread-254097][   transport.py][1871] : starting thread (client mode): 0x8636a6e0
2025-06-13 12:02:07,047 [DEBUG][       Thread-254097][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 12:02:07,067 [DEBUG][       Thread-254097][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 12:02:07,067 [ INFO][       Thread-254097][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 12:02:07,070 [DEBUG][       Thread-254097][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 12:02:07,071 [DEBUG][       Thread-254097][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 12:02:07,071 [DEBUG][       Thread-254097][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 12:02:07,071 [DEBUG][       Thread-254097][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:02:07,071 [DEBUG][       Thread-254097][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:02:07,071 [DEBUG][       Thread-254097][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:02:07,071 [DEBUG][       Thread-254097][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:02:07,071 [DEBUG][       Thread-254097][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 12:02:07,071 [DEBUG][       Thread-254097][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 12:02:07,071 [DEBUG][       Thread-254097][   transport.py][1871] : client lang: <none>
2025-06-13 12:02:07,071 [DEBUG][       Thread-254097][   transport.py][1871] : server lang: <none>
2025-06-13 12:02:07,071 [DEBUG][       Thread-254097][   transport.py][1871] : kex follows: False
2025-06-13 12:02:07,071 [DEBUG][       Thread-254097][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 12:02:07,071 [DEBUG][       Thread-254097][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 12:02:07,071 [DEBUG][       Thread-254097][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 12:02:07,071 [DEBUG][       Thread-254097][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 12:02:07,071 [DEBUG][       Thread-254097][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 12:02:07,071 [DEBUG][       Thread-254097][   transport.py][1871] : Compression: none
2025-06-13 12:02:07,071 [DEBUG][       Thread-254097][   transport.py][1871] : === End of kex handshake ===
2025-06-13 12:02:07,087 [DEBUG][       Thread-254097][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 12:02:07,088 [DEBUG][       Thread-254097][   transport.py][1871] : Switch to new keys ...
2025-06-13 12:02:07,088 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 12:02:07,089 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 12:02:07,089 [DEBUG][       Thread-254097][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 12:02:07,090 [DEBUG][       Thread-254097][   transport.py][1871] : userauth is OK
2025-06-13 12:02:07,114 [ INFO][       Thread-254097][   transport.py][1871] : Authentication (password) successful!
2025-06-13 12:02:07,115 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 12:02:07,733 [DEBUG][       Thread-254097][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 12:02:07,734 [DEBUG][       Thread-254097][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 12:02:07,777 [DEBUG][       Thread-254097][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 12:02:07,777 [DEBUG][       Thread-254097][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 12:02:07,779 [DEBUG][       Thread-254097][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 12:02:07,791 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 12:02:07,791 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 12:02:07,793 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 12:02:07,795 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 12:02:07,800 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 12:02:07,802 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 12:02:07,802 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 12:02:07,802 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 12:02:07,802 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.417647 -999.00  +11.30  22.49     47   +0.60 1 1 1 1 1   888    0 12.07 46.07 ----- 24.8 22.5 51.3 30.9 15.6 -28.2 14.3 -29.3 13.9 -28.6 15.2 -26.4
2025-06-13 12:02:07,803 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 12:02:07,803 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 12:02:07,803 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.417647
2025-06-13 12:02:07,803 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 12:02:07,804 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 12:02:07,804 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 12:02:07,804 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 12:02:07,804 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 12:02:07,804 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T12:01:33', tmtdew=12.37, humidity=42.2, cloud=0.0, wind=19.13, temperature=11.37, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T10:01:24.701', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 12:02:07,804 [DEBUG][       Thread-254097][   transport.py][1871] : EOF in transport thread
2025-06-13 12:02:07,887 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 12:02:07,898 [DEBUG][       Thread-254100][   transport.py][1871] : starting thread (client mode): 0x842064a0
2025-06-13 12:02:07,898 [DEBUG][       Thread-254100][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 12:02:07,912 [DEBUG][       Thread-254100][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 12:02:07,912 [ INFO][       Thread-254100][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 12:02:07,920 [DEBUG][       Thread-254100][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 12:02:07,920 [DEBUG][       Thread-254100][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 12:02:07,920 [DEBUG][       Thread-254100][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 12:02:07,920 [DEBUG][       Thread-254100][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:02:07,920 [DEBUG][       Thread-254100][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:02:07,920 [DEBUG][       Thread-254100][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:02:07,920 [DEBUG][       Thread-254100][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:02:07,920 [DEBUG][       Thread-254100][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 12:02:07,920 [DEBUG][       Thread-254100][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 12:02:07,920 [DEBUG][       Thread-254100][   transport.py][1871] : client lang: <none>
2025-06-13 12:02:07,920 [DEBUG][       Thread-254100][   transport.py][1871] : server lang: <none>
2025-06-13 12:02:07,920 [DEBUG][       Thread-254100][   transport.py][1871] : kex follows: False
2025-06-13 12:02:07,920 [DEBUG][       Thread-254100][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 12:02:07,920 [DEBUG][       Thread-254100][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 12:02:07,920 [DEBUG][       Thread-254100][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 12:02:07,920 [DEBUG][       Thread-254100][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 12:02:07,920 [DEBUG][       Thread-254100][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 12:02:07,920 [DEBUG][       Thread-254100][   transport.py][1871] : Compression: none
2025-06-13 12:02:07,920 [DEBUG][       Thread-254100][   transport.py][1871] : === End of kex handshake ===
2025-06-13 12:02:07,976 [DEBUG][       Thread-254100][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 12:02:07,976 [DEBUG][       Thread-254100][   transport.py][1871] : Switch to new keys ...
2025-06-13 12:02:07,977 [DEBUG][       Thread-254100][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 12:02:07,977 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 12:02:07,978 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 12:02:08,032 [DEBUG][       Thread-254100][   transport.py][1871] : userauth is OK
2025-06-13 12:02:08,032 [DEBUG][       Thread-254100][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 12:02:08,032 [DEBUG][       Thread-254100][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 12:02:08,032 [DEBUG][       Thread-254100][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 12:02:08,032 [DEBUG][       Thread-254100][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 12:02:08,051 [ INFO][       Thread-254100][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 12:02:08,051 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 12:02:08,052 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 12:02:09,106 [DEBUG][       Thread-254100][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 12:02:09,107 [DEBUG][       Thread-254100][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 12:02:09,156 [DEBUG][       Thread-254100][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 12:02:09,156 [DEBUG][       Thread-254100][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 12:02:09,164 [DEBUG][       Thread-254100][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 12:02:09,173 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 12:02:09,173 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 12:02:09,181 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 12:02:09,190 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 12:02:09,190 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 12:02:09,191 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 12:02:09,198 [DEBUG][       Thread-254100][   transport.py][1871] : EOF in transport thread
2025-06-13 12:02:10,952 [DEBUG][Thread-254102 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:02:12,891 [DEBUG][Thread-254103 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:02:19,197 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 12:02:19,197 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 12:02:19,197 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 12:02:19,200 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 12:02:19,661 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 12, 2, 4), 12.47, 41.9, 0.0, 19.13, 11.36, 0, 0, 0, 2, 0, 0),)
2025-06-13 12:02:19,661 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 12:02:04
2025-06-13 12:02:19,742 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 12:02:19,746 [DEBUG][       Thread-254104][   transport.py][1871] : starting thread (client mode): 0x842047c0
2025-06-13 12:02:19,751 [DEBUG][       Thread-254104][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 12:02:19,768 [DEBUG][       Thread-254104][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 12:02:19,768 [ INFO][       Thread-254104][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 12:02:19,771 [DEBUG][       Thread-254104][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 12:02:19,772 [DEBUG][       Thread-254104][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 12:02:19,772 [DEBUG][       Thread-254104][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 12:02:19,772 [DEBUG][       Thread-254104][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:02:19,772 [DEBUG][       Thread-254104][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:02:19,772 [DEBUG][       Thread-254104][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:02:19,772 [DEBUG][       Thread-254104][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:02:19,772 [DEBUG][       Thread-254104][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 12:02:19,772 [DEBUG][       Thread-254104][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 12:02:19,772 [DEBUG][       Thread-254104][   transport.py][1871] : client lang: <none>
2025-06-13 12:02:19,772 [DEBUG][       Thread-254104][   transport.py][1871] : server lang: <none>
2025-06-13 12:02:19,772 [DEBUG][       Thread-254104][   transport.py][1871] : kex follows: False
2025-06-13 12:02:19,772 [DEBUG][       Thread-254104][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 12:02:19,772 [DEBUG][       Thread-254104][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 12:02:19,772 [DEBUG][       Thread-254104][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 12:02:19,772 [DEBUG][       Thread-254104][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 12:02:19,772 [DEBUG][       Thread-254104][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 12:02:19,772 [DEBUG][       Thread-254104][   transport.py][1871] : Compression: none
2025-06-13 12:02:19,772 [DEBUG][       Thread-254104][   transport.py][1871] : === End of kex handshake ===
2025-06-13 12:02:19,788 [DEBUG][       Thread-254104][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 12:02:19,789 [DEBUG][       Thread-254104][   transport.py][1871] : Switch to new keys ...
2025-06-13 12:02:19,789 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 12:02:19,789 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 12:02:19,790 [DEBUG][       Thread-254104][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 12:02:19,790 [DEBUG][       Thread-254104][   transport.py][1871] : userauth is OK
2025-06-13 12:02:19,802 [ INFO][       Thread-254104][   transport.py][1871] : Authentication (password) successful!
2025-06-13 12:02:19,803 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 12:02:20,445 [DEBUG][       Thread-254104][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 12:02:20,445 [DEBUG][       Thread-254104][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 12:02:20,488 [DEBUG][       Thread-254104][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 12:02:20,488 [DEBUG][       Thread-254104][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 12:02:20,491 [DEBUG][       Thread-254104][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 12:02:20,504 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 12:02:20,504 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 12:02:20,506 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 12:02:20,506 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 12:02:20,509 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 12:02:20,510 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 12:02:20,510 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 12:02:20,510 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 12:02:20,510 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.417994 -999.00  +11.20  25.01     46   +0.10 1 1 1 1 1   888    0 12.01 48.25 ----- 27.2 25.0 58.8 30.9 15.6 -28.3 14.2 -30.5 13.8 -28.7 15.2 -27.1
2025-06-13 12:02:20,510 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 12:02:20,510 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 12:02:20,510 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.417994
2025-06-13 12:02:20,511 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 12:02:20,511 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 12:02:20,511 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 12:02:20,511 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 12:02:20,511 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 12:02:20,511 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T12:02:04', tmtdew=12.47, humidity=41.9, cloud=0.0, wind=19.13, temperature=11.36, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T10:01:54.682', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 12:02:20,511 [DEBUG][       Thread-254104][   transport.py][1871] : EOF in transport thread
2025-06-13 12:02:20,582 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 12:02:20,595 [DEBUG][       Thread-254107][   transport.py][1871] : starting thread (client mode): 0x863a5240
2025-06-13 12:02:20,595 [DEBUG][       Thread-254107][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 12:02:20,615 [DEBUG][       Thread-254107][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 12:02:20,616 [ INFO][       Thread-254107][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 12:02:20,627 [DEBUG][       Thread-254107][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 12:02:20,627 [DEBUG][       Thread-254107][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 12:02:20,627 [DEBUG][       Thread-254107][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 12:02:20,627 [DEBUG][       Thread-254107][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:02:20,627 [DEBUG][       Thread-254107][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:02:20,627 [DEBUG][       Thread-254107][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:02:20,627 [DEBUG][       Thread-254107][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:02:20,627 [DEBUG][       Thread-254107][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 12:02:20,627 [DEBUG][       Thread-254107][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 12:02:20,627 [DEBUG][       Thread-254107][   transport.py][1871] : client lang: <none>
2025-06-13 12:02:20,627 [DEBUG][       Thread-254107][   transport.py][1871] : server lang: <none>
2025-06-13 12:02:20,627 [DEBUG][       Thread-254107][   transport.py][1871] : kex follows: False
2025-06-13 12:02:20,627 [DEBUG][       Thread-254107][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 12:02:20,627 [DEBUG][       Thread-254107][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 12:02:20,628 [DEBUG][       Thread-254107][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 12:02:20,628 [DEBUG][       Thread-254107][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 12:02:20,628 [DEBUG][       Thread-254107][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 12:02:20,628 [DEBUG][       Thread-254107][   transport.py][1871] : Compression: none
2025-06-13 12:02:20,628 [DEBUG][       Thread-254107][   transport.py][1871] : === End of kex handshake ===
2025-06-13 12:02:20,687 [DEBUG][       Thread-254107][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 12:02:20,688 [DEBUG][       Thread-254107][   transport.py][1871] : Switch to new keys ...
2025-06-13 12:02:20,688 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 12:02:20,689 [DEBUG][       Thread-254107][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 12:02:20,689 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 12:02:20,749 [DEBUG][       Thread-254107][   transport.py][1871] : userauth is OK
2025-06-13 12:02:20,749 [DEBUG][       Thread-254107][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 12:02:20,749 [DEBUG][       Thread-254107][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 12:02:20,749 [DEBUG][       Thread-254107][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 12:02:20,749 [DEBUG][       Thread-254107][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 12:02:20,772 [ INFO][       Thread-254107][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 12:02:20,772 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 12:02:20,773 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 12:02:21,831 [DEBUG][       Thread-254107][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 12:02:21,831 [DEBUG][       Thread-254107][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 12:02:21,879 [DEBUG][       Thread-254107][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 12:02:21,879 [DEBUG][       Thread-254107][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 12:02:21,888 [DEBUG][       Thread-254107][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 12:02:21,896 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 12:02:21,896 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 12:02:21,904 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 12:02:21,909 [DEBUG][Thread-254109 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:02:21,912 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 12:02:21,912 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 12:02:21,912 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 12:02:21,922 [DEBUG][       Thread-254107][   transport.py][1871] : EOF in transport thread
2025-06-13 12:02:30,934 [DEBUG][Thread-254110 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:02:31,922 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 12:02:31,923 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 12:02:31,923 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 12:02:31,926 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 12:02:32,383 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 12, 2, 4), 12.47, 41.9, 0.0, 19.13, 11.36, 0, 0, 0, 2, 0, 0),)
2025-06-13 12:02:32,383 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 12:02:04
2025-06-13 12:02:32,465 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 12:02:32,469 [DEBUG][       Thread-254111][   transport.py][1871] : starting thread (client mode): 0x863a5e70
2025-06-13 12:02:32,469 [DEBUG][       Thread-254111][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 12:02:32,490 [DEBUG][       Thread-254111][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 12:02:32,490 [ INFO][       Thread-254111][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 12:02:32,494 [DEBUG][       Thread-254111][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 12:02:32,494 [DEBUG][       Thread-254111][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 12:02:32,494 [DEBUG][       Thread-254111][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 12:02:32,494 [DEBUG][       Thread-254111][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:02:32,494 [DEBUG][       Thread-254111][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:02:32,494 [DEBUG][       Thread-254111][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:02:32,494 [DEBUG][       Thread-254111][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:02:32,494 [DEBUG][       Thread-254111][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 12:02:32,494 [DEBUG][       Thread-254111][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 12:02:32,494 [DEBUG][       Thread-254111][   transport.py][1871] : client lang: <none>
2025-06-13 12:02:32,494 [DEBUG][       Thread-254111][   transport.py][1871] : server lang: <none>
2025-06-13 12:02:32,494 [DEBUG][       Thread-254111][   transport.py][1871] : kex follows: False
2025-06-13 12:02:32,494 [DEBUG][       Thread-254111][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 12:02:32,494 [DEBUG][       Thread-254111][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 12:02:32,494 [DEBUG][       Thread-254111][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 12:02:32,494 [DEBUG][       Thread-254111][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 12:02:32,494 [DEBUG][       Thread-254111][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 12:02:32,494 [DEBUG][       Thread-254111][   transport.py][1871] : Compression: none
2025-06-13 12:02:32,494 [DEBUG][       Thread-254111][   transport.py][1871] : === End of kex handshake ===
2025-06-13 12:02:32,513 [DEBUG][       Thread-254111][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 12:02:32,513 [DEBUG][       Thread-254111][   transport.py][1871] : Switch to new keys ...
2025-06-13 12:02:32,514 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 12:02:32,514 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 12:02:32,515 [DEBUG][       Thread-254111][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 12:02:32,516 [DEBUG][       Thread-254111][   transport.py][1871] : userauth is OK
2025-06-13 12:02:32,540 [ INFO][       Thread-254111][   transport.py][1871] : Authentication (password) successful!
2025-06-13 12:02:32,541 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 12:02:33,190 [DEBUG][       Thread-254111][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 12:02:33,190 [DEBUG][       Thread-254111][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 12:02:33,233 [DEBUG][       Thread-254111][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 12:02:33,233 [DEBUG][       Thread-254111][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 12:02:33,237 [DEBUG][       Thread-254111][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 12:02:33,250 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 12:02:33,250 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 12:02:33,252 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 12:02:33,254 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 12:02:33,259 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 12:02:33,261 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 12:02:33,261 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 12:02:33,262 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 12:02:33,262 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.417994 -999.00  +11.20  25.01     46   +0.10 1 1 1 1 1   888    0 12.01 48.25 ----- 27.2 25.0 58.8 30.9 15.6 -28.3 14.2 -30.5 13.8 -28.7 15.2 -27.1
2025-06-13 12:02:33,262 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 12:02:33,262 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 12:02:33,262 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.417994
2025-06-13 12:02:33,263 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 12:02:33,264 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 12:02:33,264 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 12:02:33,264 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 12:02:33,264 [DEBUG][       Thread-254111][   transport.py][1871] : EOF in transport thread
2025-06-13 12:02:33,264 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 12:02:33,265 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T12:02:04', tmtdew=12.47, humidity=41.9, cloud=0.0, wind=19.13, temperature=11.36, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T10:01:54.682', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 12:02:33,348 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 12:02:33,357 [DEBUG][       Thread-254114][   transport.py][1871] : starting thread (client mode): 0x867ff250
2025-06-13 12:02:33,357 [DEBUG][       Thread-254114][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 12:02:33,374 [DEBUG][       Thread-254114][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 12:02:33,374 [ INFO][       Thread-254114][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 12:02:33,382 [DEBUG][       Thread-254114][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 12:02:33,382 [DEBUG][       Thread-254114][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 12:02:33,382 [DEBUG][       Thread-254114][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 12:02:33,382 [DEBUG][       Thread-254114][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:02:33,382 [DEBUG][       Thread-254114][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:02:33,382 [DEBUG][       Thread-254114][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:02:33,383 [DEBUG][       Thread-254114][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:02:33,383 [DEBUG][       Thread-254114][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 12:02:33,383 [DEBUG][       Thread-254114][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 12:02:33,383 [DEBUG][       Thread-254114][   transport.py][1871] : client lang: <none>
2025-06-13 12:02:33,383 [DEBUG][       Thread-254114][   transport.py][1871] : server lang: <none>
2025-06-13 12:02:33,383 [DEBUG][       Thread-254114][   transport.py][1871] : kex follows: False
2025-06-13 12:02:33,383 [DEBUG][       Thread-254114][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 12:02:33,383 [DEBUG][       Thread-254114][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 12:02:33,383 [DEBUG][       Thread-254114][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 12:02:33,383 [DEBUG][       Thread-254114][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 12:02:33,383 [DEBUG][       Thread-254114][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 12:02:33,383 [DEBUG][       Thread-254114][   transport.py][1871] : Compression: none
2025-06-13 12:02:33,383 [DEBUG][       Thread-254114][   transport.py][1871] : === End of kex handshake ===
2025-06-13 12:02:33,439 [DEBUG][       Thread-254114][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 12:02:33,439 [DEBUG][       Thread-254114][   transport.py][1871] : Switch to new keys ...
2025-06-13 12:02:33,439 [DEBUG][       Thread-254114][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 12:02:33,439 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 12:02:33,439 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 12:02:33,496 [DEBUG][       Thread-254114][   transport.py][1871] : userauth is OK
2025-06-13 12:02:33,496 [DEBUG][       Thread-254114][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 12:02:33,496 [DEBUG][       Thread-254114][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 12:02:33,496 [DEBUG][       Thread-254114][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 12:02:33,496 [DEBUG][       Thread-254114][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 12:02:33,511 [ INFO][       Thread-254114][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 12:02:33,511 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 12:02:33,511 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 12:02:34,566 [DEBUG][       Thread-254114][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 12:02:34,566 [DEBUG][       Thread-254114][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 12:02:34,617 [DEBUG][       Thread-254114][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 12:02:34,618 [DEBUG][       Thread-254114][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 12:02:34,630 [DEBUG][       Thread-254114][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 12:02:34,644 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 12:02:34,644 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 12:02:34,655 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 12:02:34,664 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 12:02:34,665 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 12:02:34,665 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 12:02:34,673 [DEBUG][       Thread-254114][   transport.py][1871] : EOF in transport thread
2025-06-13 12:02:39,917 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:02:39,918 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:02:39,955 [DEBUG][Thread-254116 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:02:44,676 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 12:02:44,676 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 12:02:44,676 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 12:02:44,679 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 12:02:45,145 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 12, 2, 36), 12.5, 42.03, 0.0, 17.19, 11.44, 0, 0, 0, 2, 0, 0),)
2025-06-13 12:02:45,145 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 12:02:36
2025-06-13 12:02:45,226 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 12:02:45,231 [DEBUG][       Thread-254117][   transport.py][1871] : starting thread (client mode): 0x86352470
2025-06-13 12:02:45,231 [DEBUG][       Thread-254117][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 12:02:45,250 [DEBUG][       Thread-254117][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 12:02:45,250 [ INFO][       Thread-254117][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 12:02:45,252 [DEBUG][       Thread-254117][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 12:02:45,252 [DEBUG][       Thread-254117][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 12:02:45,252 [DEBUG][       Thread-254117][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 12:02:45,252 [DEBUG][       Thread-254117][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:02:45,252 [DEBUG][       Thread-254117][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:02:45,252 [DEBUG][       Thread-254117][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:02:45,252 [DEBUG][       Thread-254117][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:02:45,252 [DEBUG][       Thread-254117][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 12:02:45,252 [DEBUG][       Thread-254117][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 12:02:45,252 [DEBUG][       Thread-254117][   transport.py][1871] : client lang: <none>
2025-06-13 12:02:45,252 [DEBUG][       Thread-254117][   transport.py][1871] : server lang: <none>
2025-06-13 12:02:45,252 [DEBUG][       Thread-254117][   transport.py][1871] : kex follows: False
2025-06-13 12:02:45,252 [DEBUG][       Thread-254117][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 12:02:45,252 [DEBUG][       Thread-254117][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 12:02:45,253 [DEBUG][       Thread-254117][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 12:02:45,253 [DEBUG][       Thread-254117][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 12:02:45,253 [DEBUG][       Thread-254117][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 12:02:45,253 [DEBUG][       Thread-254117][   transport.py][1871] : Compression: none
2025-06-13 12:02:45,253 [DEBUG][       Thread-254117][   transport.py][1871] : === End of kex handshake ===
2025-06-13 12:02:45,265 [DEBUG][       Thread-254117][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 12:02:45,265 [DEBUG][       Thread-254117][   transport.py][1871] : Switch to new keys ...
2025-06-13 12:02:45,266 [DEBUG][       Thread-254117][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 12:02:45,266 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 12:02:45,266 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 12:02:45,267 [DEBUG][       Thread-254117][   transport.py][1871] : userauth is OK
2025-06-13 12:02:45,280 [ INFO][       Thread-254117][   transport.py][1871] : Authentication (password) successful!
2025-06-13 12:02:45,281 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 12:02:45,905 [DEBUG][       Thread-254117][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 12:02:45,905 [DEBUG][       Thread-254117][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 12:02:45,948 [DEBUG][       Thread-254117][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 12:02:45,948 [DEBUG][       Thread-254117][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 12:02:45,950 [DEBUG][       Thread-254117][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 12:02:45,962 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 12:02:45,963 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 12:02:45,964 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 12:02:45,965 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 12:02:45,969 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 12:02:45,969 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 12:02:45,970 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 12:02:45,970 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 12:02:45,970 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.418341 -999.00  +11.20  24.43     44   -0.40 1 1 1 1 1   888    0 12.13 47.69 ----- 25.5 24.4 35.2 31.9 15.6 -28.7 14.3 -30.2 13.9 -29.5 15.2 -26.9
2025-06-13 12:02:45,970 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 12:02:45,970 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 12:02:45,970 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.418341
2025-06-13 12:02:45,970 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 12:02:45,970 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 12:02:45,970 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 12:02:45,970 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 12:02:45,970 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 12:02:45,970 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T12:02:36', tmtdew=12.5, humidity=42.03, cloud=0.0, wind=17.19, temperature=11.44, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T10:02:24.662', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 12:02:45,971 [DEBUG][       Thread-254117][   transport.py][1871] : EOF in transport thread
2025-06-13 12:02:46,042 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 12:02:46,053 [DEBUG][       Thread-254120][   transport.py][1871] : starting thread (client mode): 0x868c8400
2025-06-13 12:02:46,053 [DEBUG][       Thread-254120][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 12:02:46,070 [DEBUG][       Thread-254120][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 12:02:46,070 [ INFO][       Thread-254120][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 12:02:46,082 [DEBUG][       Thread-254120][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 12:02:46,082 [DEBUG][       Thread-254120][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 12:02:46,083 [DEBUG][       Thread-254120][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 12:02:46,083 [DEBUG][       Thread-254120][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:02:46,083 [DEBUG][       Thread-254120][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:02:46,083 [DEBUG][       Thread-254120][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:02:46,083 [DEBUG][       Thread-254120][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:02:46,083 [DEBUG][       Thread-254120][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 12:02:46,083 [DEBUG][       Thread-254120][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 12:02:46,083 [DEBUG][       Thread-254120][   transport.py][1871] : client lang: <none>
2025-06-13 12:02:46,083 [DEBUG][       Thread-254120][   transport.py][1871] : server lang: <none>
2025-06-13 12:02:46,083 [DEBUG][       Thread-254120][   transport.py][1871] : kex follows: False
2025-06-13 12:02:46,083 [DEBUG][       Thread-254120][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 12:02:46,083 [DEBUG][       Thread-254120][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 12:02:46,083 [DEBUG][       Thread-254120][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 12:02:46,083 [DEBUG][       Thread-254120][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 12:02:46,083 [DEBUG][       Thread-254120][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 12:02:46,084 [DEBUG][       Thread-254120][   transport.py][1871] : Compression: none
2025-06-13 12:02:46,084 [DEBUG][       Thread-254120][   transport.py][1871] : === End of kex handshake ===
2025-06-13 12:02:46,140 [DEBUG][       Thread-254120][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 12:02:46,141 [DEBUG][       Thread-254120][   transport.py][1871] : Switch to new keys ...
2025-06-13 12:02:46,142 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 12:02:46,142 [DEBUG][       Thread-254120][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 12:02:46,143 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 12:02:46,197 [DEBUG][       Thread-254120][   transport.py][1871] : userauth is OK
2025-06-13 12:02:46,198 [DEBUG][       Thread-254120][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 12:02:46,198 [DEBUG][       Thread-254120][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 12:02:46,198 [DEBUG][       Thread-254120][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 12:02:46,198 [DEBUG][       Thread-254120][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 12:02:46,222 [ INFO][       Thread-254120][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 12:02:46,222 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 12:02:46,223 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 12:02:47,254 [DEBUG][       Thread-254120][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 12:02:47,254 [DEBUG][       Thread-254120][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 12:02:47,303 [DEBUG][       Thread-254120][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 12:02:47,304 [DEBUG][       Thread-254120][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 12:02:47,314 [DEBUG][       Thread-254120][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 12:02:47,323 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 12:02:47,323 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 12:02:47,331 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 12:02:47,340 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 12:02:47,340 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 12:02:47,340 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 12:02:47,348 [DEBUG][       Thread-254120][   transport.py][1871] : EOF in transport thread
2025-06-13 12:02:48,978 [DEBUG][Thread-254122 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:02:57,351 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 12:02:57,351 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 12:02:57,351 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 12:02:57,354 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 12:02:57,820 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 12, 2, 36), 12.5, 42.03, 0.0, 17.19, 11.44, 0, 0, 0, 2, 0, 0),)
2025-06-13 12:02:57,820 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 12:02:36
2025-06-13 12:02:57,901 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 12:02:57,905 [DEBUG][       Thread-254123][   transport.py][1871] : starting thread (client mode): 0x86351f60
2025-06-13 12:02:57,905 [DEBUG][       Thread-254123][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 12:02:57,926 [DEBUG][       Thread-254123][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 12:02:57,926 [ INFO][       Thread-254123][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 12:02:57,930 [DEBUG][       Thread-254123][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 12:02:57,930 [DEBUG][       Thread-254123][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 12:02:57,930 [DEBUG][       Thread-254123][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 12:02:57,930 [DEBUG][       Thread-254123][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:02:57,930 [DEBUG][       Thread-254123][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:02:57,930 [DEBUG][       Thread-254123][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:02:57,930 [DEBUG][       Thread-254123][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:02:57,930 [DEBUG][       Thread-254123][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 12:02:57,930 [DEBUG][       Thread-254123][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 12:02:57,930 [DEBUG][       Thread-254123][   transport.py][1871] : client lang: <none>
2025-06-13 12:02:57,930 [DEBUG][       Thread-254123][   transport.py][1871] : server lang: <none>
2025-06-13 12:02:57,930 [DEBUG][       Thread-254123][   transport.py][1871] : kex follows: False
2025-06-13 12:02:57,930 [DEBUG][       Thread-254123][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 12:02:57,930 [DEBUG][       Thread-254123][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 12:02:57,930 [DEBUG][       Thread-254123][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 12:02:57,930 [DEBUG][       Thread-254123][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 12:02:57,930 [DEBUG][       Thread-254123][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 12:02:57,930 [DEBUG][       Thread-254123][   transport.py][1871] : Compression: none
2025-06-13 12:02:57,930 [DEBUG][       Thread-254123][   transport.py][1871] : === End of kex handshake ===
2025-06-13 12:02:57,947 [DEBUG][       Thread-254123][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 12:02:57,948 [DEBUG][       Thread-254123][   transport.py][1871] : Switch to new keys ...
2025-06-13 12:02:57,948 [DEBUG][       Thread-254123][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 12:02:57,949 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 12:02:57,949 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 12:02:57,950 [DEBUG][       Thread-254123][   transport.py][1871] : userauth is OK
2025-06-13 12:02:57,965 [ INFO][       Thread-254123][   transport.py][1871] : Authentication (password) successful!
2025-06-13 12:02:57,965 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 12:02:58,005 [DEBUG][Thread-254125 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:02:58,641 [DEBUG][       Thread-254123][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 12:02:58,642 [DEBUG][       Thread-254123][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 12:02:58,685 [DEBUG][       Thread-254123][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 12:02:58,685 [DEBUG][       Thread-254123][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 12:02:58,688 [DEBUG][       Thread-254123][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 12:02:58,700 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 12:02:58,700 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 12:02:58,702 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 12:02:58,704 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 12:02:58,710 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 12:02:58,712 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 12:02:58,712 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 12:02:58,713 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 12:02:58,713 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.418341 -999.00  +11.20  24.43     44   -0.40 1 1 1 1 1   888    0 12.13 47.69 ----- 25.5 24.4 35.2 31.9 15.6 -28.7 14.3 -30.2 13.9 -29.5 15.2 -26.9
2025-06-13 12:02:58,713 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 12:02:58,713 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 12:02:58,713 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.418341
2025-06-13 12:02:58,713 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 12:02:58,714 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 12:02:58,714 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 12:02:58,714 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 12:02:58,714 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 12:02:58,714 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T12:02:36', tmtdew=12.5, humidity=42.03, cloud=0.0, wind=17.19, temperature=11.44, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T10:02:24.662', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 12:02:58,715 [DEBUG][       Thread-254123][   transport.py][1871] : EOF in transport thread
2025-06-13 12:02:58,798 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 12:02:58,807 [DEBUG][       Thread-254127][   transport.py][1871] : starting thread (client mode): 0x867b4970
2025-06-13 12:02:58,807 [DEBUG][       Thread-254127][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 12:02:58,823 [DEBUG][       Thread-254127][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 12:02:58,823 [ INFO][       Thread-254127][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 12:02:58,831 [DEBUG][       Thread-254127][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 12:02:58,831 [DEBUG][       Thread-254127][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 12:02:58,831 [DEBUG][       Thread-254127][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 12:02:58,831 [DEBUG][       Thread-254127][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:02:58,831 [DEBUG][       Thread-254127][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:02:58,831 [DEBUG][       Thread-254127][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:02:58,831 [DEBUG][       Thread-254127][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:02:58,831 [DEBUG][       Thread-254127][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 12:02:58,831 [DEBUG][       Thread-254127][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 12:02:58,831 [DEBUG][       Thread-254127][   transport.py][1871] : client lang: <none>
2025-06-13 12:02:58,831 [DEBUG][       Thread-254127][   transport.py][1871] : server lang: <none>
2025-06-13 12:02:58,831 [DEBUG][       Thread-254127][   transport.py][1871] : kex follows: False
2025-06-13 12:02:58,831 [DEBUG][       Thread-254127][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 12:02:58,831 [DEBUG][       Thread-254127][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 12:02:58,832 [DEBUG][       Thread-254127][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 12:02:58,832 [DEBUG][       Thread-254127][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 12:02:58,832 [DEBUG][       Thread-254127][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 12:02:58,832 [DEBUG][       Thread-254127][   transport.py][1871] : Compression: none
2025-06-13 12:02:58,832 [DEBUG][       Thread-254127][   transport.py][1871] : === End of kex handshake ===
2025-06-13 12:02:58,888 [DEBUG][       Thread-254127][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 12:02:58,889 [DEBUG][       Thread-254127][   transport.py][1871] : Switch to new keys ...
2025-06-13 12:02:58,889 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 12:02:58,890 [DEBUG][       Thread-254127][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 12:02:58,891 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 12:02:58,947 [DEBUG][       Thread-254127][   transport.py][1871] : userauth is OK
2025-06-13 12:02:58,947 [DEBUG][       Thread-254127][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 12:02:58,947 [DEBUG][       Thread-254127][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 12:02:58,947 [DEBUG][       Thread-254127][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 12:02:58,947 [DEBUG][       Thread-254127][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 12:02:58,967 [ INFO][       Thread-254127][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 12:02:58,967 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 12:02:58,968 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 12:02:59,100 [DEBUG][Thread-254129 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:03:00,020 [DEBUG][       Thread-254127][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 12:03:00,020 [DEBUG][       Thread-254127][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 12:03:00,068 [DEBUG][       Thread-254127][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 12:03:00,068 [DEBUG][       Thread-254127][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 12:03:00,077 [DEBUG][       Thread-254127][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 12:03:00,086 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 12:03:00,086 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 12:03:00,095 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 12:03:00,105 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 12:03:00,105 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 12:03:00,106 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 12:03:00,114 [DEBUG][       Thread-254127][   transport.py][1871] : EOF in transport thread
2025-06-13 12:03:00,174 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:03:00,176 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:03:07,024 [DEBUG][Thread-254130 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:03:10,116 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 12:03:10,116 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 12:03:10,116 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 12:03:10,117 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 12:03:10,625 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 12, 2, 36), 12.5, 42.03, 0.0, 17.19, 11.44, 0, 0, 0, 2, 0, 0),)
2025-06-13 12:03:10,625 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 12:02:36
2025-06-13 12:03:10,712 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 12:03:10,718 [DEBUG][       Thread-254131][   transport.py][1871] : starting thread (client mode): 0x8636b100
2025-06-13 12:03:10,718 [DEBUG][       Thread-254131][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 12:03:10,739 [DEBUG][       Thread-254131][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 12:03:10,740 [ INFO][       Thread-254131][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 12:03:10,743 [DEBUG][       Thread-254131][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 12:03:10,743 [DEBUG][       Thread-254131][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 12:03:10,743 [DEBUG][       Thread-254131][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 12:03:10,743 [DEBUG][       Thread-254131][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:03:10,743 [DEBUG][       Thread-254131][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:03:10,743 [DEBUG][       Thread-254131][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:03:10,743 [DEBUG][       Thread-254131][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:03:10,743 [DEBUG][       Thread-254131][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 12:03:10,743 [DEBUG][       Thread-254131][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 12:03:10,743 [DEBUG][       Thread-254131][   transport.py][1871] : client lang: <none>
2025-06-13 12:03:10,743 [DEBUG][       Thread-254131][   transport.py][1871] : server lang: <none>
2025-06-13 12:03:10,743 [DEBUG][       Thread-254131][   transport.py][1871] : kex follows: False
2025-06-13 12:03:10,743 [DEBUG][       Thread-254131][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 12:03:10,743 [DEBUG][       Thread-254131][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 12:03:10,743 [DEBUG][       Thread-254131][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 12:03:10,743 [DEBUG][       Thread-254131][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 12:03:10,743 [DEBUG][       Thread-254131][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 12:03:10,743 [DEBUG][       Thread-254131][   transport.py][1871] : Compression: none
2025-06-13 12:03:10,743 [DEBUG][       Thread-254131][   transport.py][1871] : === End of kex handshake ===
2025-06-13 12:03:10,759 [DEBUG][       Thread-254131][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 12:03:10,759 [DEBUG][       Thread-254131][   transport.py][1871] : Switch to new keys ...
2025-06-13 12:03:10,759 [DEBUG][       Thread-254131][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 12:03:10,759 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 12:03:10,759 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 12:03:10,760 [DEBUG][       Thread-254131][   transport.py][1871] : userauth is OK
2025-06-13 12:03:10,772 [ INFO][       Thread-254131][   transport.py][1871] : Authentication (password) successful!
2025-06-13 12:03:10,772 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 12:03:10,999 [DEBUG][Thread-254133 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:03:11,451 [DEBUG][       Thread-254131][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 12:03:11,451 [DEBUG][       Thread-254131][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 12:03:11,493 [DEBUG][       Thread-254131][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 12:03:11,493 [DEBUG][       Thread-254131][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 12:03:11,496 [DEBUG][       Thread-254131][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 12:03:11,508 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 12:03:11,508 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 12:03:11,510 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 12:03:11,512 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 12:03:11,518 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 12:03:11,520 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 12:03:11,520 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 12:03:11,521 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 12:03:11,521 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.418341 -999.00  +11.20  24.43     44   -0.40 1 1 1 1 1   888    0 12.13 47.69 ----- 25.5 24.4 35.2 31.9 15.6 -28.7 14.3 -30.2 13.9 -29.5 15.2 -26.9
2025-06-13 12:03:11,521 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 12:03:11,521 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 12:03:11,521 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.418341
2025-06-13 12:03:11,522 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 12:03:11,522 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 12:03:11,522 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 12:03:11,522 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 12:03:11,522 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 12:03:11,522 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T12:02:36', tmtdew=12.5, humidity=42.03, cloud=0.0, wind=17.19, temperature=11.44, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T10:02:24.662', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 12:03:11,523 [DEBUG][       Thread-254131][   transport.py][1871] : EOF in transport thread
2025-06-13 12:03:11,606 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 12:03:11,618 [DEBUG][       Thread-254135][   transport.py][1871] : starting thread (client mode): 0x86353910
2025-06-13 12:03:11,618 [DEBUG][       Thread-254135][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 12:03:11,633 [DEBUG][       Thread-254135][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 12:03:11,633 [ INFO][       Thread-254135][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 12:03:11,646 [DEBUG][       Thread-254135][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 12:03:11,646 [DEBUG][       Thread-254135][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 12:03:11,646 [DEBUG][       Thread-254135][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 12:03:11,646 [DEBUG][       Thread-254135][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:03:11,646 [DEBUG][       Thread-254135][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:03:11,646 [DEBUG][       Thread-254135][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:03:11,647 [DEBUG][       Thread-254135][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:03:11,647 [DEBUG][       Thread-254135][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 12:03:11,647 [DEBUG][       Thread-254135][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 12:03:11,647 [DEBUG][       Thread-254135][   transport.py][1871] : client lang: <none>
2025-06-13 12:03:11,647 [DEBUG][       Thread-254135][   transport.py][1871] : server lang: <none>
2025-06-13 12:03:11,647 [DEBUG][       Thread-254135][   transport.py][1871] : kex follows: False
2025-06-13 12:03:11,647 [DEBUG][       Thread-254135][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 12:03:11,647 [DEBUG][       Thread-254135][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 12:03:11,647 [DEBUG][       Thread-254135][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 12:03:11,647 [DEBUG][       Thread-254135][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 12:03:11,647 [DEBUG][       Thread-254135][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 12:03:11,647 [DEBUG][       Thread-254135][   transport.py][1871] : Compression: none
2025-06-13 12:03:11,647 [DEBUG][       Thread-254135][   transport.py][1871] : === End of kex handshake ===
2025-06-13 12:03:11,704 [DEBUG][       Thread-254135][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 12:03:11,704 [DEBUG][       Thread-254135][   transport.py][1871] : Switch to new keys ...
2025-06-13 12:03:11,705 [DEBUG][       Thread-254135][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 12:03:11,705 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 12:03:11,706 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 12:03:11,760 [DEBUG][       Thread-254135][   transport.py][1871] : userauth is OK
2025-06-13 12:03:11,760 [DEBUG][       Thread-254135][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 12:03:11,761 [DEBUG][       Thread-254135][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 12:03:11,761 [DEBUG][       Thread-254135][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 12:03:11,761 [DEBUG][       Thread-254135][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 12:03:11,778 [ INFO][       Thread-254135][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 12:03:11,779 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 12:03:11,779 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 12:03:12,822 [DEBUG][       Thread-254135][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 12:03:12,822 [DEBUG][       Thread-254135][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 12:03:12,872 [DEBUG][       Thread-254135][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 12:03:12,872 [DEBUG][       Thread-254135][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 12:03:12,881 [DEBUG][       Thread-254135][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 12:03:12,890 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 12:03:12,891 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 12:03:12,899 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 12:03:12,912 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 12:03:12,912 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 12:03:12,913 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 12:03:12,924 [DEBUG][       Thread-254135][   transport.py][1871] : EOF in transport thread
2025-06-13 12:03:16,046 [DEBUG][Thread-254137 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:03:22,923 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 12:03:22,924 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 12:03:22,924 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 12:03:22,926 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 12:03:23,392 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 12, 3, 9), 12.92, 40.55, 0.0, 21.7, 11.42, 0, 0, 0, 2, 0, 0),)
2025-06-13 12:03:23,392 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 12:03:09
2025-06-13 12:03:23,471 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 12:03:23,476 [DEBUG][       Thread-254138][   transport.py][1871] : starting thread (client mode): 0x867b6d40
2025-06-13 12:03:23,476 [DEBUG][       Thread-254138][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 12:03:23,498 [DEBUG][       Thread-254138][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 12:03:23,498 [ INFO][       Thread-254138][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 12:03:23,501 [DEBUG][       Thread-254138][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 12:03:23,502 [DEBUG][       Thread-254138][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 12:03:23,502 [DEBUG][       Thread-254138][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 12:03:23,502 [DEBUG][       Thread-254138][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:03:23,502 [DEBUG][       Thread-254138][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:03:23,502 [DEBUG][       Thread-254138][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:03:23,502 [DEBUG][       Thread-254138][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:03:23,502 [DEBUG][       Thread-254138][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 12:03:23,502 [DEBUG][       Thread-254138][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 12:03:23,502 [DEBUG][       Thread-254138][   transport.py][1871] : client lang: <none>
2025-06-13 12:03:23,502 [DEBUG][       Thread-254138][   transport.py][1871] : server lang: <none>
2025-06-13 12:03:23,502 [DEBUG][       Thread-254138][   transport.py][1871] : kex follows: False
2025-06-13 12:03:23,502 [DEBUG][       Thread-254138][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 12:03:23,502 [DEBUG][       Thread-254138][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 12:03:23,502 [DEBUG][       Thread-254138][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 12:03:23,502 [DEBUG][       Thread-254138][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 12:03:23,502 [DEBUG][       Thread-254138][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 12:03:23,502 [DEBUG][       Thread-254138][   transport.py][1871] : Compression: none
2025-06-13 12:03:23,502 [DEBUG][       Thread-254138][   transport.py][1871] : === End of kex handshake ===
2025-06-13 12:03:23,515 [DEBUG][       Thread-254138][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 12:03:23,516 [DEBUG][       Thread-254138][   transport.py][1871] : Switch to new keys ...
2025-06-13 12:03:23,516 [DEBUG][       Thread-254138][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 12:03:23,517 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 12:03:23,517 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 12:03:23,518 [DEBUG][       Thread-254138][   transport.py][1871] : userauth is OK
2025-06-13 12:03:23,531 [ INFO][       Thread-254138][   transport.py][1871] : Authentication (password) successful!
2025-06-13 12:03:23,532 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 12:03:24,183 [DEBUG][       Thread-254138][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 12:03:24,183 [DEBUG][       Thread-254138][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 12:03:24,225 [DEBUG][       Thread-254138][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 12:03:24,225 [DEBUG][       Thread-254138][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 12:03:24,229 [DEBUG][       Thread-254138][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 12:03:24,240 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 12:03:24,240 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 12:03:24,242 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 12:03:24,244 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 12:03:24,249 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 12:03:24,251 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 12:03:24,251 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 12:03:24,252 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 12:03:24,252 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.418688 -999.00  +11.20  23.87     44   -0.40 1 1 1 1 1   888    0 12.17 47.39 ----- 18.3 23.9 34.8 31.3 15.6 -27.8 14.2 -30.1 13.8 -27.5 15.2 -26.9
2025-06-13 12:03:24,252 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 12:03:24,252 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 12:03:24,252 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.418688
2025-06-13 12:03:24,253 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 12:03:24,253 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 12:03:24,253 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 12:03:24,254 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 12:03:24,254 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 12:03:24,254 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T12:03:09', tmtdew=12.92, humidity=40.55, cloud=0.0, wind=21.7, temperature=11.42, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T10:02:54.643', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 12:03:24,255 [DEBUG][       Thread-254138][   transport.py][1871] : EOF in transport thread
2025-06-13 12:03:24,337 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 12:03:24,348 [DEBUG][       Thread-254141][   transport.py][1871] : starting thread (client mode): 0x86739750
2025-06-13 12:03:24,348 [DEBUG][       Thread-254141][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 12:03:24,363 [DEBUG][       Thread-254141][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 12:03:24,364 [ INFO][       Thread-254141][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 12:03:24,371 [DEBUG][       Thread-254141][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 12:03:24,372 [DEBUG][       Thread-254141][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 12:03:24,372 [DEBUG][       Thread-254141][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 12:03:24,372 [DEBUG][       Thread-254141][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:03:24,372 [DEBUG][       Thread-254141][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:03:24,372 [DEBUG][       Thread-254141][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:03:24,372 [DEBUG][       Thread-254141][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:03:24,372 [DEBUG][       Thread-254141][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 12:03:24,372 [DEBUG][       Thread-254141][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 12:03:24,372 [DEBUG][       Thread-254141][   transport.py][1871] : client lang: <none>
2025-06-13 12:03:24,372 [DEBUG][       Thread-254141][   transport.py][1871] : server lang: <none>
2025-06-13 12:03:24,372 [DEBUG][       Thread-254141][   transport.py][1871] : kex follows: False
2025-06-13 12:03:24,372 [DEBUG][       Thread-254141][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 12:03:24,372 [DEBUG][       Thread-254141][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 12:03:24,372 [DEBUG][       Thread-254141][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 12:03:24,372 [DEBUG][       Thread-254141][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 12:03:24,372 [DEBUG][       Thread-254141][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 12:03:24,372 [DEBUG][       Thread-254141][   transport.py][1871] : Compression: none
2025-06-13 12:03:24,372 [DEBUG][       Thread-254141][   transport.py][1871] : === End of kex handshake ===
2025-06-13 12:03:24,432 [DEBUG][       Thread-254141][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 12:03:24,433 [DEBUG][       Thread-254141][   transport.py][1871] : Switch to new keys ...
2025-06-13 12:03:24,433 [DEBUG][       Thread-254141][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 12:03:24,434 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 12:03:24,434 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 12:03:24,494 [DEBUG][       Thread-254141][   transport.py][1871] : userauth is OK
2025-06-13 12:03:24,494 [DEBUG][       Thread-254141][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 12:03:24,494 [DEBUG][       Thread-254141][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 12:03:24,494 [DEBUG][       Thread-254141][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 12:03:24,494 [DEBUG][       Thread-254141][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 12:03:24,513 [ INFO][       Thread-254141][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 12:03:24,513 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 12:03:24,514 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 12:03:25,068 [DEBUG][Thread-254143 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:03:25,577 [DEBUG][       Thread-254141][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 12:03:25,578 [DEBUG][       Thread-254141][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 12:03:25,628 [DEBUG][       Thread-254141][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 12:03:25,628 [DEBUG][       Thread-254141][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 12:03:25,638 [DEBUG][       Thread-254141][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 12:03:25,647 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 12:03:25,647 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 12:03:25,656 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 12:03:25,665 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 12:03:25,666 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 12:03:25,666 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 12:03:25,674 [DEBUG][       Thread-254141][   transport.py][1871] : EOF in transport thread
2025-06-13 12:03:34,115 [DEBUG][Thread-254144 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:03:35,676 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 12:03:35,676 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 12:03:35,676 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 12:03:35,677 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 12:03:36,128 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 12, 3, 9), 12.92, 40.55, 0.0, 21.7, 11.42, 0, 0, 0, 2, 0, 0),)
2025-06-13 12:03:36,128 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 12:03:09
2025-06-13 12:03:36,207 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 12:03:36,219 [DEBUG][       Thread-254145][   transport.py][1871] : starting thread (client mode): 0x863a4880
2025-06-13 12:03:36,219 [DEBUG][       Thread-254145][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 12:03:36,241 [DEBUG][       Thread-254145][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 12:03:36,241 [ INFO][       Thread-254145][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 12:03:36,245 [DEBUG][       Thread-254145][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 12:03:36,245 [DEBUG][       Thread-254145][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 12:03:36,245 [DEBUG][       Thread-254145][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 12:03:36,245 [DEBUG][       Thread-254145][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:03:36,245 [DEBUG][       Thread-254145][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:03:36,245 [DEBUG][       Thread-254145][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:03:36,245 [DEBUG][       Thread-254145][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:03:36,245 [DEBUG][       Thread-254145][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 12:03:36,245 [DEBUG][       Thread-254145][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 12:03:36,245 [DEBUG][       Thread-254145][   transport.py][1871] : client lang: <none>
2025-06-13 12:03:36,245 [DEBUG][       Thread-254145][   transport.py][1871] : server lang: <none>
2025-06-13 12:03:36,245 [DEBUG][       Thread-254145][   transport.py][1871] : kex follows: False
2025-06-13 12:03:36,245 [DEBUG][       Thread-254145][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 12:03:36,246 [DEBUG][       Thread-254145][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 12:03:36,246 [DEBUG][       Thread-254145][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 12:03:36,246 [DEBUG][       Thread-254145][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 12:03:36,246 [DEBUG][       Thread-254145][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 12:03:36,246 [DEBUG][       Thread-254145][   transport.py][1871] : Compression: none
2025-06-13 12:03:36,246 [DEBUG][       Thread-254145][   transport.py][1871] : === End of kex handshake ===
2025-06-13 12:03:36,264 [DEBUG][       Thread-254145][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 12:03:36,264 [DEBUG][       Thread-254145][   transport.py][1871] : Switch to new keys ...
2025-06-13 12:03:36,265 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 12:03:36,265 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 12:03:36,265 [DEBUG][       Thread-254145][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 12:03:36,267 [DEBUG][       Thread-254145][   transport.py][1871] : userauth is OK
2025-06-13 12:03:36,291 [ INFO][       Thread-254145][   transport.py][1871] : Authentication (password) successful!
2025-06-13 12:03:36,292 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 12:03:36,926 [DEBUG][       Thread-254145][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 12:03:36,926 [DEBUG][       Thread-254145][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 12:03:36,969 [DEBUG][       Thread-254145][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 12:03:36,969 [DEBUG][       Thread-254145][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 12:03:36,972 [DEBUG][       Thread-254145][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 12:03:36,983 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 12:03:36,984 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 12:03:36,986 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 12:03:36,988 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 12:03:36,993 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 12:03:36,995 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 12:03:36,995 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 12:03:36,996 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 12:03:36,996 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.418688 -999.00  +11.20  23.87     44   -0.40 1 1 1 1 1   888    0 12.17 47.39 ----- 18.3 23.9 34.8 31.3 15.6 -27.8 14.2 -30.1 13.8 -27.5 15.2 -26.9
2025-06-13 12:03:36,996 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 12:03:36,996 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 12:03:36,996 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.418688
2025-06-13 12:03:36,996 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 12:03:36,997 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 12:03:36,997 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 12:03:36,997 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 12:03:36,997 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 12:03:36,997 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T12:03:09', tmtdew=12.92, humidity=40.55, cloud=0.0, wind=21.7, temperature=11.42, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T10:02:54.643', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 12:03:36,998 [DEBUG][       Thread-254145][   transport.py][1871] : EOF in transport thread
2025-06-13 12:03:37,080 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 12:03:37,094 [DEBUG][       Thread-254148][   transport.py][1871] : starting thread (client mode): 0x863a7040
2025-06-13 12:03:37,094 [DEBUG][       Thread-254148][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 12:03:37,109 [DEBUG][       Thread-254148][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 12:03:37,109 [ INFO][       Thread-254148][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 12:03:37,121 [DEBUG][       Thread-254148][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 12:03:37,121 [DEBUG][       Thread-254148][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 12:03:37,121 [DEBUG][       Thread-254148][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 12:03:37,121 [DEBUG][       Thread-254148][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:03:37,121 [DEBUG][       Thread-254148][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:03:37,121 [DEBUG][       Thread-254148][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:03:37,121 [DEBUG][       Thread-254148][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:03:37,121 [DEBUG][       Thread-254148][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 12:03:37,121 [DEBUG][       Thread-254148][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 12:03:37,121 [DEBUG][       Thread-254148][   transport.py][1871] : client lang: <none>
2025-06-13 12:03:37,121 [DEBUG][       Thread-254148][   transport.py][1871] : server lang: <none>
2025-06-13 12:03:37,121 [DEBUG][       Thread-254148][   transport.py][1871] : kex follows: False
2025-06-13 12:03:37,121 [DEBUG][       Thread-254148][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 12:03:37,121 [DEBUG][       Thread-254148][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 12:03:37,121 [DEBUG][       Thread-254148][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 12:03:37,121 [DEBUG][       Thread-254148][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 12:03:37,121 [DEBUG][       Thread-254148][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 12:03:37,121 [DEBUG][       Thread-254148][   transport.py][1871] : Compression: none
2025-06-13 12:03:37,121 [DEBUG][       Thread-254148][   transport.py][1871] : === End of kex handshake ===
2025-06-13 12:03:37,180 [DEBUG][       Thread-254148][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 12:03:37,181 [DEBUG][       Thread-254148][   transport.py][1871] : Switch to new keys ...
2025-06-13 12:03:37,181 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 12:03:37,182 [DEBUG][       Thread-254148][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 12:03:37,182 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 12:03:37,236 [DEBUG][       Thread-254148][   transport.py][1871] : userauth is OK
2025-06-13 12:03:37,237 [DEBUG][       Thread-254148][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 12:03:37,237 [DEBUG][       Thread-254148][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 12:03:37,237 [DEBUG][       Thread-254148][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 12:03:37,237 [DEBUG][       Thread-254148][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 12:03:37,256 [ INFO][       Thread-254148][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 12:03:37,256 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 12:03:37,257 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 12:03:38,292 [DEBUG][       Thread-254148][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 12:03:38,292 [DEBUG][       Thread-254148][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 12:03:38,340 [DEBUG][       Thread-254148][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 12:03:38,340 [DEBUG][       Thread-254148][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 12:03:38,349 [DEBUG][       Thread-254148][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 12:03:38,359 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 12:03:38,359 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 12:03:38,371 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 12:03:38,385 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 12:03:38,385 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 12:03:38,385 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 12:03:38,396 [DEBUG][       Thread-254148][   transport.py][1871] : EOF in transport thread
2025-06-13 12:03:40,059 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:03:40,060 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:03:43,133 [DEBUG][Thread-254150 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:03:48,396 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 12:03:48,396 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 12:03:48,396 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 12:03:48,399 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 12:03:48,866 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 12, 3, 40), 12.94, 40.48, 0.0, 21.1, 11.37, 0, 0, 0, 2, 0, 0),)
2025-06-13 12:03:48,866 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 12:03:40
2025-06-13 12:03:48,945 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 12:03:48,949 [DEBUG][       Thread-254151][   transport.py][1871] : starting thread (client mode): 0x867b6260
2025-06-13 12:03:48,949 [DEBUG][       Thread-254151][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 12:03:48,971 [DEBUG][       Thread-254151][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 12:03:48,971 [ INFO][       Thread-254151][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 12:03:48,974 [DEBUG][       Thread-254151][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 12:03:48,974 [DEBUG][       Thread-254151][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 12:03:48,974 [DEBUG][       Thread-254151][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 12:03:48,974 [DEBUG][       Thread-254151][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:03:48,974 [DEBUG][       Thread-254151][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:03:48,974 [DEBUG][       Thread-254151][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:03:48,974 [DEBUG][       Thread-254151][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:03:48,974 [DEBUG][       Thread-254151][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 12:03:48,974 [DEBUG][       Thread-254151][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 12:03:48,974 [DEBUG][       Thread-254151][   transport.py][1871] : client lang: <none>
2025-06-13 12:03:48,974 [DEBUG][       Thread-254151][   transport.py][1871] : server lang: <none>
2025-06-13 12:03:48,974 [DEBUG][       Thread-254151][   transport.py][1871] : kex follows: False
2025-06-13 12:03:48,974 [DEBUG][       Thread-254151][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 12:03:48,975 [DEBUG][       Thread-254151][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 12:03:48,975 [DEBUG][       Thread-254151][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 12:03:48,975 [DEBUG][       Thread-254151][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 12:03:48,975 [DEBUG][       Thread-254151][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 12:03:48,975 [DEBUG][       Thread-254151][   transport.py][1871] : Compression: none
2025-06-13 12:03:48,975 [DEBUG][       Thread-254151][   transport.py][1871] : === End of kex handshake ===
2025-06-13 12:03:48,993 [DEBUG][       Thread-254151][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 12:03:48,993 [DEBUG][       Thread-254151][   transport.py][1871] : Switch to new keys ...
2025-06-13 12:03:48,994 [DEBUG][       Thread-254151][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 12:03:48,994 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 12:03:48,994 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 12:03:48,995 [DEBUG][       Thread-254151][   transport.py][1871] : userauth is OK
2025-06-13 12:03:49,008 [ INFO][       Thread-254151][   transport.py][1871] : Authentication (password) successful!
2025-06-13 12:03:49,009 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 12:03:49,607 [DEBUG][       Thread-254151][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 12:03:49,607 [DEBUG][       Thread-254151][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 12:03:49,649 [DEBUG][       Thread-254151][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 12:03:49,649 [DEBUG][       Thread-254151][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 12:03:49,652 [DEBUG][       Thread-254151][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 12:03:49,663 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 12:03:49,664 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 12:03:49,666 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 12:03:49,668 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 12:03:49,675 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 12:03:49,677 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 12:03:49,677 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 12:03:49,678 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 12:03:49,678 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.418688 -999.00  +11.20  23.87     44   -0.40 1 1 1 1 1   888    0 12.17 47.39 ----- 18.3 23.9 34.8 31.3 15.6 -27.8 14.2 -30.1 13.8 -27.5 15.2 -26.9
2025-06-13 12:03:49,678 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 12:03:49,678 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 12:03:49,678 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.418688
2025-06-13 12:03:49,679 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 12:03:49,679 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 12:03:49,679 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 12:03:49,679 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 12:03:49,679 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 12:03:49,680 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T12:03:40', tmtdew=12.94, humidity=40.48, cloud=0.0, wind=21.1, temperature=11.37, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T10:02:54.643', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 12:03:49,680 [DEBUG][       Thread-254151][   transport.py][1871] : EOF in transport thread
2025-06-13 12:03:49,763 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 12:03:49,773 [DEBUG][       Thread-254154][   transport.py][1871] : starting thread (client mode): 0x863a56f0
2025-06-13 12:03:49,773 [DEBUG][       Thread-254154][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 12:03:49,788 [DEBUG][       Thread-254154][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 12:03:49,788 [ INFO][       Thread-254154][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 12:03:49,796 [DEBUG][       Thread-254154][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 12:03:49,796 [DEBUG][       Thread-254154][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 12:03:49,796 [DEBUG][       Thread-254154][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 12:03:49,796 [DEBUG][       Thread-254154][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:03:49,796 [DEBUG][       Thread-254154][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:03:49,796 [DEBUG][       Thread-254154][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:03:49,796 [DEBUG][       Thread-254154][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:03:49,796 [DEBUG][       Thread-254154][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 12:03:49,796 [DEBUG][       Thread-254154][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 12:03:49,796 [DEBUG][       Thread-254154][   transport.py][1871] : client lang: <none>
2025-06-13 12:03:49,796 [DEBUG][       Thread-254154][   transport.py][1871] : server lang: <none>
2025-06-13 12:03:49,796 [DEBUG][       Thread-254154][   transport.py][1871] : kex follows: False
2025-06-13 12:03:49,796 [DEBUG][       Thread-254154][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 12:03:49,797 [DEBUG][       Thread-254154][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 12:03:49,797 [DEBUG][       Thread-254154][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 12:03:49,797 [DEBUG][       Thread-254154][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 12:03:49,797 [DEBUG][       Thread-254154][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 12:03:49,797 [DEBUG][       Thread-254154][   transport.py][1871] : Compression: none
2025-06-13 12:03:49,797 [DEBUG][       Thread-254154][   transport.py][1871] : === End of kex handshake ===
2025-06-13 12:03:49,860 [DEBUG][       Thread-254154][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 12:03:49,860 [DEBUG][       Thread-254154][   transport.py][1871] : Switch to new keys ...
2025-06-13 12:03:49,861 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 12:03:49,861 [DEBUG][       Thread-254154][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 12:03:49,862 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 12:03:49,917 [DEBUG][       Thread-254154][   transport.py][1871] : userauth is OK
2025-06-13 12:03:49,918 [DEBUG][       Thread-254154][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 12:03:49,918 [DEBUG][       Thread-254154][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 12:03:49,918 [DEBUG][       Thread-254154][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 12:03:49,918 [DEBUG][       Thread-254154][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 12:03:49,943 [ INFO][       Thread-254154][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 12:03:49,943 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 12:03:49,944 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 12:03:50,959 [DEBUG][       Thread-254154][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 12:03:50,959 [DEBUG][       Thread-254154][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 12:03:51,008 [DEBUG][       Thread-254154][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 12:03:51,008 [DEBUG][       Thread-254154][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 12:03:51,017 [DEBUG][       Thread-254154][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 12:03:51,026 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 12:03:51,026 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 12:03:51,035 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 12:03:51,047 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 12:03:51,047 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 12:03:51,047 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 12:03:51,058 [DEBUG][       Thread-254154][   transport.py][1871] : EOF in transport thread
2025-06-13 12:03:52,155 [DEBUG][Thread-254156 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:04:00,232 [DEBUG][Thread-254157 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:04:01,055 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 12:04:01,055 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 12:04:01,055 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 12:04:01,058 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 12:04:01,191 [DEBUG][Thread-254158 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:04:01,306 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:04:01,306 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:04:01,516 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 12, 3, 40), 12.94, 40.48, 0.0, 21.1, 11.37, 0, 0, 0, 2, 0, 0),)
2025-06-13 12:04:01,516 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 12:03:40
2025-06-13 12:04:01,594 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 12:04:01,600 [DEBUG][       Thread-254159][   transport.py][1871] : starting thread (client mode): 0x863a4df0
2025-06-13 12:04:01,600 [DEBUG][       Thread-254159][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 12:04:01,620 [DEBUG][       Thread-254159][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 12:04:01,620 [ INFO][       Thread-254159][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 12:04:01,622 [DEBUG][       Thread-254159][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 12:04:01,622 [DEBUG][       Thread-254159][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 12:04:01,622 [DEBUG][       Thread-254159][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 12:04:01,622 [DEBUG][       Thread-254159][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:04:01,622 [DEBUG][       Thread-254159][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:04:01,622 [DEBUG][       Thread-254159][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:04:01,622 [DEBUG][       Thread-254159][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:04:01,622 [DEBUG][       Thread-254159][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 12:04:01,622 [DEBUG][       Thread-254159][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 12:04:01,622 [DEBUG][       Thread-254159][   transport.py][1871] : client lang: <none>
2025-06-13 12:04:01,622 [DEBUG][       Thread-254159][   transport.py][1871] : server lang: <none>
2025-06-13 12:04:01,622 [DEBUG][       Thread-254159][   transport.py][1871] : kex follows: False
2025-06-13 12:04:01,622 [DEBUG][       Thread-254159][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 12:04:01,622 [DEBUG][       Thread-254159][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 12:04:01,622 [DEBUG][       Thread-254159][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 12:04:01,622 [DEBUG][       Thread-254159][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 12:04:01,623 [DEBUG][       Thread-254159][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 12:04:01,623 [DEBUG][       Thread-254159][   transport.py][1871] : Compression: none
2025-06-13 12:04:01,623 [DEBUG][       Thread-254159][   transport.py][1871] : === End of kex handshake ===
2025-06-13 12:04:01,636 [DEBUG][       Thread-254159][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 12:04:01,636 [DEBUG][       Thread-254159][   transport.py][1871] : Switch to new keys ...
2025-06-13 12:04:01,637 [DEBUG][       Thread-254159][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 12:04:01,637 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 12:04:01,637 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 12:04:01,638 [DEBUG][       Thread-254159][   transport.py][1871] : userauth is OK
2025-06-13 12:04:01,663 [ INFO][       Thread-254159][   transport.py][1871] : Authentication (password) successful!
2025-06-13 12:04:01,663 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 12:04:02,303 [DEBUG][       Thread-254159][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 12:04:02,303 [DEBUG][       Thread-254159][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 12:04:02,345 [DEBUG][       Thread-254159][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 12:04:02,345 [DEBUG][       Thread-254159][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 12:04:02,349 [DEBUG][       Thread-254159][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 12:04:02,363 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 12:04:02,363 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 12:04:02,365 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 12:04:02,367 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 12:04:02,373 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 12:04:02,375 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 12:04:02,375 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 12:04:02,376 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 12:04:02,376 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.419036 -999.00  +11.20  23.04     43   -0.70 1 1 1 1 1   888    0 12.15 49.30 ----- 26.4 23.0 48.4 32.2 15.5 -29.2 14.2 -30.1 13.9 -29.3 15.2 -26.6
2025-06-13 12:04:02,376 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 12:04:02,376 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 12:04:02,376 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.419036
2025-06-13 12:04:02,377 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 12:04:02,377 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 12:04:02,377 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 12:04:02,378 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 12:04:02,378 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 12:04:02,378 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T12:03:40', tmtdew=12.94, humidity=40.48, cloud=0.0, wind=21.1, temperature=11.37, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T10:03:24.710', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 12:04:02,378 [DEBUG][       Thread-254159][   transport.py][1871] : EOF in transport thread
2025-06-13 12:04:02,463 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 12:04:02,475 [DEBUG][       Thread-254162][   transport.py][1871] : starting thread (client mode): 0x863a4d60
2025-06-13 12:04:02,475 [DEBUG][       Thread-254162][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 12:04:02,490 [DEBUG][       Thread-254162][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 12:04:02,490 [ INFO][       Thread-254162][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 12:04:02,497 [DEBUG][       Thread-254162][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 12:04:02,498 [DEBUG][       Thread-254162][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 12:04:02,498 [DEBUG][       Thread-254162][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 12:04:02,498 [DEBUG][       Thread-254162][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:04:02,498 [DEBUG][       Thread-254162][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:04:02,498 [DEBUG][       Thread-254162][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:04:02,498 [DEBUG][       Thread-254162][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:04:02,498 [DEBUG][       Thread-254162][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 12:04:02,498 [DEBUG][       Thread-254162][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 12:04:02,498 [DEBUG][       Thread-254162][   transport.py][1871] : client lang: <none>
2025-06-13 12:04:02,498 [DEBUG][       Thread-254162][   transport.py][1871] : server lang: <none>
2025-06-13 12:04:02,498 [DEBUG][       Thread-254162][   transport.py][1871] : kex follows: False
2025-06-13 12:04:02,498 [DEBUG][       Thread-254162][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 12:04:02,498 [DEBUG][       Thread-254162][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 12:04:02,498 [DEBUG][       Thread-254162][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 12:04:02,498 [DEBUG][       Thread-254162][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 12:04:02,498 [DEBUG][       Thread-254162][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 12:04:02,498 [DEBUG][       Thread-254162][   transport.py][1871] : Compression: none
2025-06-13 12:04:02,498 [DEBUG][       Thread-254162][   transport.py][1871] : === End of kex handshake ===
2025-06-13 12:04:02,562 [DEBUG][       Thread-254162][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 12:04:02,563 [DEBUG][       Thread-254162][   transport.py][1871] : Switch to new keys ...
2025-06-13 12:04:02,572 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 12:04:02,573 [DEBUG][       Thread-254162][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 12:04:02,574 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 12:04:02,620 [DEBUG][       Thread-254162][   transport.py][1871] : userauth is OK
2025-06-13 12:04:02,621 [DEBUG][       Thread-254162][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 12:04:02,621 [DEBUG][       Thread-254162][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 12:04:02,621 [DEBUG][       Thread-254162][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 12:04:02,621 [DEBUG][       Thread-254162][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 12:04:02,640 [ INFO][       Thread-254162][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 12:04:02,640 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 12:04:02,641 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 12:04:03,705 [DEBUG][       Thread-254162][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 12:04:03,706 [DEBUG][       Thread-254162][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 12:04:03,756 [DEBUG][       Thread-254162][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 12:04:03,756 [DEBUG][       Thread-254162][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 12:04:03,764 [DEBUG][       Thread-254162][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 12:04:03,772 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 12:04:03,772 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 12:04:03,781 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 12:04:03,790 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 12:04:03,790 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 12:04:03,790 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 12:04:03,806 [DEBUG][       Thread-254162][   transport.py][1871] : EOF in transport thread
2025-06-13 12:04:10,215 [DEBUG][Thread-254164 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:04:11,048 [DEBUG][Thread-254165 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:04:13,800 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 12:04:13,800 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 12:04:13,800 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 12:04:13,801 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 12:04:14,284 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 12, 3, 40), 12.94, 40.48, 0.0, 21.1, 11.37, 0, 0, 0, 2, 0, 0),)
2025-06-13 12:04:14,284 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 12:03:40
2025-06-13 12:04:14,368 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 12:04:14,374 [DEBUG][       Thread-254166][   transport.py][1871] : starting thread (client mode): 0x863a59c0
2025-06-13 12:04:14,374 [DEBUG][       Thread-254166][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 12:04:14,395 [DEBUG][       Thread-254166][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 12:04:14,395 [ INFO][       Thread-254166][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 12:04:14,398 [DEBUG][       Thread-254166][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 12:04:14,398 [DEBUG][       Thread-254166][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 12:04:14,398 [DEBUG][       Thread-254166][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 12:04:14,398 [DEBUG][       Thread-254166][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:04:14,398 [DEBUG][       Thread-254166][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:04:14,398 [DEBUG][       Thread-254166][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:04:14,398 [DEBUG][       Thread-254166][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:04:14,398 [DEBUG][       Thread-254166][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 12:04:14,398 [DEBUG][       Thread-254166][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 12:04:14,398 [DEBUG][       Thread-254166][   transport.py][1871] : client lang: <none>
2025-06-13 12:04:14,398 [DEBUG][       Thread-254166][   transport.py][1871] : server lang: <none>
2025-06-13 12:04:14,398 [DEBUG][       Thread-254166][   transport.py][1871] : kex follows: False
2025-06-13 12:04:14,398 [DEBUG][       Thread-254166][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 12:04:14,398 [DEBUG][       Thread-254166][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 12:04:14,398 [DEBUG][       Thread-254166][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 12:04:14,398 [DEBUG][       Thread-254166][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 12:04:14,398 [DEBUG][       Thread-254166][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 12:04:14,398 [DEBUG][       Thread-254166][   transport.py][1871] : Compression: none
2025-06-13 12:04:14,398 [DEBUG][       Thread-254166][   transport.py][1871] : === End of kex handshake ===
2025-06-13 12:04:14,413 [DEBUG][       Thread-254166][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 12:04:14,413 [DEBUG][       Thread-254166][   transport.py][1871] : Switch to new keys ...
2025-06-13 12:04:14,413 [DEBUG][       Thread-254166][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 12:04:14,413 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 12:04:14,413 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 12:04:14,414 [DEBUG][       Thread-254166][   transport.py][1871] : userauth is OK
2025-06-13 12:04:14,437 [ INFO][       Thread-254166][   transport.py][1871] : Authentication (password) successful!
2025-06-13 12:04:14,438 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 12:04:15,028 [DEBUG][       Thread-254166][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 12:04:15,028 [DEBUG][       Thread-254166][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 12:04:15,068 [DEBUG][       Thread-254166][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 12:04:15,069 [DEBUG][       Thread-254166][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 12:04:15,071 [DEBUG][       Thread-254166][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 12:04:15,084 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 12:04:15,085 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 12:04:15,086 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 12:04:15,088 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 12:04:15,092 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 12:04:15,093 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 12:04:15,093 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 12:04:15,094 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 12:04:15,094 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.419036 -999.00  +11.20  23.04     43   -0.70 1 1 1 1 1   888    0 12.15 49.30 ----- 26.4 23.0 48.4 32.2 15.5 -29.2 14.2 -30.1 13.9 -29.3 15.2 -26.6
2025-06-13 12:04:15,094 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 12:04:15,094 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 12:04:15,094 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.419036
2025-06-13 12:04:15,095 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 12:04:15,095 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 12:04:15,095 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 12:04:15,095 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 12:04:15,095 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 12:04:15,096 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T12:03:40', tmtdew=12.94, humidity=40.48, cloud=0.0, wind=21.1, temperature=11.37, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T10:03:24.710', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 12:04:15,096 [DEBUG][       Thread-254166][   transport.py][1871] : EOF in transport thread
2025-06-13 12:04:15,179 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 12:04:15,190 [DEBUG][       Thread-254169][   transport.py][1871] : starting thread (client mode): 0x863a4370
2025-06-13 12:04:15,190 [DEBUG][       Thread-254169][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 12:04:15,205 [DEBUG][       Thread-254169][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 12:04:15,205 [ INFO][       Thread-254169][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 12:04:15,212 [DEBUG][       Thread-254169][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 12:04:15,212 [DEBUG][       Thread-254169][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 12:04:15,212 [DEBUG][       Thread-254169][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 12:04:15,212 [DEBUG][       Thread-254169][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:04:15,212 [DEBUG][       Thread-254169][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:04:15,212 [DEBUG][       Thread-254169][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:04:15,213 [DEBUG][       Thread-254169][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:04:15,213 [DEBUG][       Thread-254169][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 12:04:15,213 [DEBUG][       Thread-254169][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 12:04:15,213 [DEBUG][       Thread-254169][   transport.py][1871] : client lang: <none>
2025-06-13 12:04:15,213 [DEBUG][       Thread-254169][   transport.py][1871] : server lang: <none>
2025-06-13 12:04:15,213 [DEBUG][       Thread-254169][   transport.py][1871] : kex follows: False
2025-06-13 12:04:15,213 [DEBUG][       Thread-254169][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 12:04:15,213 [DEBUG][       Thread-254169][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 12:04:15,213 [DEBUG][       Thread-254169][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 12:04:15,213 [DEBUG][       Thread-254169][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 12:04:15,213 [DEBUG][       Thread-254169][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 12:04:15,213 [DEBUG][       Thread-254169][   transport.py][1871] : Compression: none
2025-06-13 12:04:15,213 [DEBUG][       Thread-254169][   transport.py][1871] : === End of kex handshake ===
2025-06-13 12:04:15,272 [DEBUG][       Thread-254169][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 12:04:15,272 [DEBUG][       Thread-254169][   transport.py][1871] : Switch to new keys ...
2025-06-13 12:04:15,273 [DEBUG][       Thread-254169][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 12:04:15,273 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 12:04:15,273 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 12:04:15,332 [DEBUG][       Thread-254169][   transport.py][1871] : userauth is OK
2025-06-13 12:04:15,332 [DEBUG][       Thread-254169][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 12:04:15,332 [DEBUG][       Thread-254169][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 12:04:15,332 [DEBUG][       Thread-254169][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 12:04:15,332 [DEBUG][       Thread-254169][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 12:04:15,351 [ INFO][       Thread-254169][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 12:04:15,351 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 12:04:15,351 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 12:04:16,352 [DEBUG][       Thread-254169][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 12:04:16,352 [DEBUG][       Thread-254169][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 12:04:16,404 [DEBUG][       Thread-254169][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 12:04:16,404 [DEBUG][       Thread-254169][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 12:04:16,412 [DEBUG][       Thread-254169][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 12:04:16,420 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 12:04:16,420 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 12:04:16,428 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 12:04:16,436 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 12:04:16,436 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 12:04:16,436 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 12:04:16,444 [DEBUG][       Thread-254169][   transport.py][1871] : EOF in transport thread
2025-06-13 12:04:19,233 [DEBUG][Thread-254171 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:04:26,446 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 12:04:26,447 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 12:04:26,447 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 12:04:26,450 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 12:04:26,913 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 12, 4, 12), 12.97, 40.59, 0.0, 20.5, 11.26, 0, 0, 0, 2, 0, 0),)
2025-06-13 12:04:26,913 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 12:04:12
2025-06-13 12:04:26,994 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 12:04:26,998 [DEBUG][       Thread-254172][   transport.py][1871] : starting thread (client mode): 0x863a4100
2025-06-13 12:04:26,998 [DEBUG][       Thread-254172][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 12:04:27,017 [DEBUG][       Thread-254172][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 12:04:27,017 [ INFO][       Thread-254172][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 12:04:27,020 [DEBUG][       Thread-254172][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 12:04:27,020 [DEBUG][       Thread-254172][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 12:04:27,020 [DEBUG][       Thread-254172][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 12:04:27,020 [DEBUG][       Thread-254172][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:04:27,020 [DEBUG][       Thread-254172][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:04:27,020 [DEBUG][       Thread-254172][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:04:27,020 [DEBUG][       Thread-254172][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:04:27,020 [DEBUG][       Thread-254172][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 12:04:27,020 [DEBUG][       Thread-254172][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 12:04:27,020 [DEBUG][       Thread-254172][   transport.py][1871] : client lang: <none>
2025-06-13 12:04:27,020 [DEBUG][       Thread-254172][   transport.py][1871] : server lang: <none>
2025-06-13 12:04:27,020 [DEBUG][       Thread-254172][   transport.py][1871] : kex follows: False
2025-06-13 12:04:27,020 [DEBUG][       Thread-254172][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 12:04:27,020 [DEBUG][       Thread-254172][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 12:04:27,020 [DEBUG][       Thread-254172][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 12:04:27,020 [DEBUG][       Thread-254172][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 12:04:27,020 [DEBUG][       Thread-254172][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 12:04:27,020 [DEBUG][       Thread-254172][   transport.py][1871] : Compression: none
2025-06-13 12:04:27,020 [DEBUG][       Thread-254172][   transport.py][1871] : === End of kex handshake ===
2025-06-13 12:04:27,029 [DEBUG][       Thread-254172][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 12:04:27,030 [DEBUG][       Thread-254172][   transport.py][1871] : Switch to new keys ...
2025-06-13 12:04:27,030 [DEBUG][       Thread-254172][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 12:04:27,030 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 12:04:27,030 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 12:04:27,031 [DEBUG][       Thread-254172][   transport.py][1871] : userauth is OK
2025-06-13 12:04:27,044 [ INFO][       Thread-254172][   transport.py][1871] : Authentication (password) successful!
2025-06-13 12:04:27,044 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 12:04:27,644 [DEBUG][       Thread-254172][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 12:04:27,644 [DEBUG][       Thread-254172][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 12:04:27,685 [DEBUG][       Thread-254172][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 12:04:27,685 [DEBUG][       Thread-254172][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 12:04:27,688 [DEBUG][       Thread-254172][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 12:04:27,700 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 12:04:27,701 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 12:04:27,703 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 12:04:27,705 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 12:04:27,711 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 12:04:27,713 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 12:04:27,714 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 12:04:27,714 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 12:04:27,715 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.419383 -999.00  +11.20  22.92     44   -0.40 1 1 1 1 1   888    0 12.21 53.31 ----- 20.0 22.9 39.0 30.2 15.5 -28.6 14.2 -30.4 13.8 -28.0 15.2 -26.9
2025-06-13 12:04:27,715 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 12:04:27,715 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 12:04:27,715 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.419383
2025-06-13 12:04:27,715 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 12:04:27,716 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 12:04:27,716 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 12:04:27,716 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 12:04:27,716 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 12:04:27,716 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T12:04:12', tmtdew=12.97, humidity=40.59, cloud=0.0, wind=20.5, temperature=11.26, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T10:03:54.691', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 12:04:27,718 [DEBUG][       Thread-254172][   transport.py][1871] : EOF in transport thread
2025-06-13 12:04:27,810 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 12:04:27,820 [DEBUG][       Thread-254175][   transport.py][1871] : starting thread (client mode): 0x867b6530
2025-06-13 12:04:27,820 [DEBUG][       Thread-254175][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 12:04:27,835 [DEBUG][       Thread-254175][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 12:04:27,835 [ INFO][       Thread-254175][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 12:04:27,842 [DEBUG][       Thread-254175][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 12:04:27,843 [DEBUG][       Thread-254175][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 12:04:27,843 [DEBUG][       Thread-254175][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 12:04:27,843 [DEBUG][       Thread-254175][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:04:27,843 [DEBUG][       Thread-254175][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:04:27,843 [DEBUG][       Thread-254175][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:04:27,843 [DEBUG][       Thread-254175][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:04:27,843 [DEBUG][       Thread-254175][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 12:04:27,843 [DEBUG][       Thread-254175][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 12:04:27,843 [DEBUG][       Thread-254175][   transport.py][1871] : client lang: <none>
2025-06-13 12:04:27,843 [DEBUG][       Thread-254175][   transport.py][1871] : server lang: <none>
2025-06-13 12:04:27,843 [DEBUG][       Thread-254175][   transport.py][1871] : kex follows: False
2025-06-13 12:04:27,843 [DEBUG][       Thread-254175][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 12:04:27,843 [DEBUG][       Thread-254175][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 12:04:27,843 [DEBUG][       Thread-254175][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 12:04:27,843 [DEBUG][       Thread-254175][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 12:04:27,843 [DEBUG][       Thread-254175][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 12:04:27,843 [DEBUG][       Thread-254175][   transport.py][1871] : Compression: none
2025-06-13 12:04:27,843 [DEBUG][       Thread-254175][   transport.py][1871] : === End of kex handshake ===
2025-06-13 12:04:27,900 [DEBUG][       Thread-254175][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 12:04:27,900 [DEBUG][       Thread-254175][   transport.py][1871] : Switch to new keys ...
2025-06-13 12:04:27,901 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 12:04:27,902 [DEBUG][       Thread-254175][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 12:04:27,902 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 12:04:27,963 [DEBUG][       Thread-254175][   transport.py][1871] : userauth is OK
2025-06-13 12:04:27,963 [DEBUG][       Thread-254175][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 12:04:27,963 [DEBUG][       Thread-254175][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 12:04:27,963 [DEBUG][       Thread-254175][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 12:04:27,963 [DEBUG][       Thread-254175][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 12:04:27,985 [ INFO][       Thread-254175][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 12:04:27,985 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 12:04:27,986 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 12:04:28,253 [DEBUG][Thread-254177 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:04:29,020 [DEBUG][       Thread-254175][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 12:04:29,021 [DEBUG][       Thread-254175][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 12:04:29,072 [DEBUG][       Thread-254175][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 12:04:29,072 [DEBUG][       Thread-254175][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 12:04:29,081 [DEBUG][       Thread-254175][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 12:04:29,091 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 12:04:29,091 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 12:04:29,100 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 12:04:29,109 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 12:04:29,110 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 12:04:29,110 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 12:04:29,118 [DEBUG][       Thread-254175][   transport.py][1871] : EOF in transport thread
2025-06-13 12:04:37,289 [DEBUG][Thread-254178 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:04:39,121 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 12:04:39,121 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 12:04:39,121 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 12:04:39,124 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 12:04:39,572 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 12, 4, 12), 12.97, 40.59, 0.0, 20.5, 11.26, 0, 0, 0, 2, 0, 0),)
2025-06-13 12:04:39,572 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 12:04:12
2025-06-13 12:04:39,654 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 12:04:39,660 [DEBUG][       Thread-254179][   transport.py][1871] : starting thread (client mode): 0x863a56f0
2025-06-13 12:04:39,660 [DEBUG][       Thread-254179][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 12:04:39,682 [DEBUG][       Thread-254179][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 12:04:39,682 [ INFO][       Thread-254179][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 12:04:39,686 [DEBUG][       Thread-254179][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 12:04:39,686 [DEBUG][       Thread-254179][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 12:04:39,686 [DEBUG][       Thread-254179][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 12:04:39,686 [DEBUG][       Thread-254179][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:04:39,686 [DEBUG][       Thread-254179][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:04:39,686 [DEBUG][       Thread-254179][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:04:39,686 [DEBUG][       Thread-254179][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:04:39,686 [DEBUG][       Thread-254179][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 12:04:39,686 [DEBUG][       Thread-254179][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 12:04:39,686 [DEBUG][       Thread-254179][   transport.py][1871] : client lang: <none>
2025-06-13 12:04:39,686 [DEBUG][       Thread-254179][   transport.py][1871] : server lang: <none>
2025-06-13 12:04:39,686 [DEBUG][       Thread-254179][   transport.py][1871] : kex follows: False
2025-06-13 12:04:39,686 [DEBUG][       Thread-254179][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 12:04:39,686 [DEBUG][       Thread-254179][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 12:04:39,686 [DEBUG][       Thread-254179][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 12:04:39,687 [DEBUG][       Thread-254179][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 12:04:39,687 [DEBUG][       Thread-254179][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 12:04:39,687 [DEBUG][       Thread-254179][   transport.py][1871] : Compression: none
2025-06-13 12:04:39,687 [DEBUG][       Thread-254179][   transport.py][1871] : === End of kex handshake ===
2025-06-13 12:04:39,704 [DEBUG][       Thread-254179][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 12:04:39,704 [DEBUG][       Thread-254179][   transport.py][1871] : Switch to new keys ...
2025-06-13 12:04:39,705 [DEBUG][       Thread-254179][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 12:04:39,705 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 12:04:39,705 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 12:04:39,706 [DEBUG][       Thread-254179][   transport.py][1871] : userauth is OK
2025-06-13 12:04:39,720 [ INFO][       Thread-254179][   transport.py][1871] : Authentication (password) successful!
2025-06-13 12:04:39,720 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 12:04:40,204 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:04:40,205 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:04:40,364 [DEBUG][       Thread-254179][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 12:04:40,364 [DEBUG][       Thread-254179][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 12:04:40,405 [DEBUG][       Thread-254179][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 12:04:40,405 [DEBUG][       Thread-254179][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 12:04:40,409 [DEBUG][       Thread-254179][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 12:04:40,421 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 12:04:40,421 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 12:04:40,423 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 12:04:40,426 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 12:04:40,432 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 12:04:40,434 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 12:04:40,434 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 12:04:40,435 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 12:04:40,435 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.419383 -999.00  +11.20  22.92     44   -0.40 1 1 1 1 1   888    0 12.21 53.31 ----- 20.0 22.9 39.0 30.2 15.5 -28.6 14.2 -30.4 13.8 -28.0 15.2 -26.9
2025-06-13 12:04:40,435 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 12:04:40,435 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 12:04:40,435 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.419383
2025-06-13 12:04:40,436 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 12:04:40,436 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 12:04:40,436 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 12:04:40,436 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 12:04:40,436 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 12:04:40,437 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T12:04:12', tmtdew=12.97, humidity=40.59, cloud=0.0, wind=20.5, temperature=11.26, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T10:03:54.691', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 12:04:40,438 [DEBUG][       Thread-254179][   transport.py][1871] : EOF in transport thread
2025-06-13 12:04:40,525 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 12:04:40,539 [DEBUG][       Thread-254182][   transport.py][1871] : starting thread (client mode): 0x867b5960
2025-06-13 12:04:40,539 [DEBUG][       Thread-254182][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 12:04:40,561 [DEBUG][       Thread-254182][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 12:04:40,562 [ INFO][       Thread-254182][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 12:04:40,569 [DEBUG][       Thread-254182][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 12:04:40,569 [DEBUG][       Thread-254182][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 12:04:40,569 [DEBUG][       Thread-254182][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 12:04:40,570 [DEBUG][       Thread-254182][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:04:40,570 [DEBUG][       Thread-254182][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:04:40,570 [DEBUG][       Thread-254182][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:04:40,570 [DEBUG][       Thread-254182][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:04:40,570 [DEBUG][       Thread-254182][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 12:04:40,570 [DEBUG][       Thread-254182][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 12:04:40,570 [DEBUG][       Thread-254182][   transport.py][1871] : client lang: <none>
2025-06-13 12:04:40,570 [DEBUG][       Thread-254182][   transport.py][1871] : server lang: <none>
2025-06-13 12:04:40,570 [DEBUG][       Thread-254182][   transport.py][1871] : kex follows: False
2025-06-13 12:04:40,570 [DEBUG][       Thread-254182][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 12:04:40,570 [DEBUG][       Thread-254182][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 12:04:40,570 [DEBUG][       Thread-254182][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 12:04:40,570 [DEBUG][       Thread-254182][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 12:04:40,570 [DEBUG][       Thread-254182][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 12:04:40,570 [DEBUG][       Thread-254182][   transport.py][1871] : Compression: none
2025-06-13 12:04:40,570 [DEBUG][       Thread-254182][   transport.py][1871] : === End of kex handshake ===
2025-06-13 12:04:40,628 [DEBUG][       Thread-254182][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 12:04:40,629 [DEBUG][       Thread-254182][   transport.py][1871] : Switch to new keys ...
2025-06-13 12:04:40,629 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 12:04:40,630 [DEBUG][       Thread-254182][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 12:04:40,631 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 12:04:40,684 [DEBUG][       Thread-254182][   transport.py][1871] : userauth is OK
2025-06-13 12:04:40,684 [DEBUG][       Thread-254182][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 12:04:40,684 [DEBUG][       Thread-254182][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 12:04:40,685 [DEBUG][       Thread-254182][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 12:04:40,685 [DEBUG][       Thread-254182][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 12:04:40,703 [ INFO][       Thread-254182][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 12:04:40,703 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 12:04:40,704 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 12:04:41,753 [DEBUG][       Thread-254182][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 12:04:41,753 [DEBUG][       Thread-254182][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 12:04:41,804 [DEBUG][       Thread-254182][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 12:04:41,805 [DEBUG][       Thread-254182][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 12:04:41,821 [DEBUG][       Thread-254182][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 12:04:41,836 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 12:04:41,837 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 12:04:41,851 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 12:04:41,860 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 12:04:41,860 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 12:04:41,861 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 12:04:41,872 [DEBUG][       Thread-254182][   transport.py][1871] : EOF in transport thread
2025-06-13 12:04:46,308 [DEBUG][Thread-254184 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:04:51,871 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 12:04:51,871 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 12:04:51,872 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 12:04:51,874 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 12:04:52,340 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 12, 4, 44), 12.99, 40.52, 0.0, 18.76, 11.25, 0, 0, 0, 2, 0, 0),)
2025-06-13 12:04:52,340 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 12:04:44
2025-06-13 12:04:52,421 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 12:04:52,425 [DEBUG][       Thread-254185][   transport.py][1871] : starting thread (client mode): 0x863a6ad0
2025-06-13 12:04:52,425 [DEBUG][       Thread-254185][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 12:04:52,446 [DEBUG][       Thread-254185][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 12:04:52,446 [ INFO][       Thread-254185][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 12:04:52,450 [DEBUG][       Thread-254185][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 12:04:52,450 [DEBUG][       Thread-254185][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 12:04:52,450 [DEBUG][       Thread-254185][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 12:04:52,450 [DEBUG][       Thread-254185][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:04:52,450 [DEBUG][       Thread-254185][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:04:52,450 [DEBUG][       Thread-254185][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:04:52,450 [DEBUG][       Thread-254185][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:04:52,450 [DEBUG][       Thread-254185][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 12:04:52,450 [DEBUG][       Thread-254185][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 12:04:52,450 [DEBUG][       Thread-254185][   transport.py][1871] : client lang: <none>
2025-06-13 12:04:52,450 [DEBUG][       Thread-254185][   transport.py][1871] : server lang: <none>
2025-06-13 12:04:52,450 [DEBUG][       Thread-254185][   transport.py][1871] : kex follows: False
2025-06-13 12:04:52,450 [DEBUG][       Thread-254185][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 12:04:52,450 [DEBUG][       Thread-254185][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 12:04:52,450 [DEBUG][       Thread-254185][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 12:04:52,450 [DEBUG][       Thread-254185][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 12:04:52,450 [DEBUG][       Thread-254185][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 12:04:52,450 [DEBUG][       Thread-254185][   transport.py][1871] : Compression: none
2025-06-13 12:04:52,450 [DEBUG][       Thread-254185][   transport.py][1871] : === End of kex handshake ===
2025-06-13 12:04:52,469 [DEBUG][       Thread-254185][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 12:04:52,469 [DEBUG][       Thread-254185][   transport.py][1871] : Switch to new keys ...
2025-06-13 12:04:52,470 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 12:04:52,470 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 12:04:52,470 [DEBUG][       Thread-254185][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 12:04:52,471 [DEBUG][       Thread-254185][   transport.py][1871] : userauth is OK
2025-06-13 12:04:52,484 [ INFO][       Thread-254185][   transport.py][1871] : Authentication (password) successful!
2025-06-13 12:04:52,485 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 12:04:53,136 [DEBUG][       Thread-254185][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 12:04:53,137 [DEBUG][       Thread-254185][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 12:04:53,181 [DEBUG][       Thread-254185][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 12:04:53,181 [DEBUG][       Thread-254185][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 12:04:53,184 [DEBUG][       Thread-254185][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 12:04:53,196 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 12:04:53,197 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 12:04:53,198 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 12:04:53,200 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 12:04:53,206 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 12:04:53,208 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 12:04:53,208 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 12:04:53,208 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 12:04:53,209 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.419383 -999.00  +11.20  22.92     44   -0.40 1 1 1 1 1   888    0 12.21 53.31 ----- 20.0 22.9 39.0 30.2 15.5 -28.6 14.2 -30.4 13.8 -28.0 15.2 -26.9
2025-06-13 12:04:53,209 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 12:04:53,209 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 12:04:53,209 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.419383
2025-06-13 12:04:53,209 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 12:04:53,210 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 12:04:53,210 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 12:04:53,210 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 12:04:53,210 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 12:04:53,210 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T12:04:44', tmtdew=12.99, humidity=40.52, cloud=0.0, wind=18.76, temperature=11.25, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T10:03:54.691', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 12:04:53,211 [DEBUG][       Thread-254185][   transport.py][1871] : EOF in transport thread
2025-06-13 12:04:53,294 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 12:04:53,306 [DEBUG][       Thread-254188][   transport.py][1871] : starting thread (client mode): 0x867b53f0
2025-06-13 12:04:53,306 [DEBUG][       Thread-254188][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 12:04:53,326 [DEBUG][       Thread-254188][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 12:04:53,326 [ INFO][       Thread-254188][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 12:04:53,334 [DEBUG][       Thread-254188][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 12:04:53,334 [DEBUG][       Thread-254188][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 12:04:53,334 [DEBUG][       Thread-254188][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 12:04:53,334 [DEBUG][       Thread-254188][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:04:53,334 [DEBUG][       Thread-254188][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:04:53,334 [DEBUG][       Thread-254188][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:04:53,334 [DEBUG][       Thread-254188][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:04:53,335 [DEBUG][       Thread-254188][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 12:04:53,335 [DEBUG][       Thread-254188][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 12:04:53,335 [DEBUG][       Thread-254188][   transport.py][1871] : client lang: <none>
2025-06-13 12:04:53,335 [DEBUG][       Thread-254188][   transport.py][1871] : server lang: <none>
2025-06-13 12:04:53,335 [DEBUG][       Thread-254188][   transport.py][1871] : kex follows: False
2025-06-13 12:04:53,335 [DEBUG][       Thread-254188][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 12:04:53,335 [DEBUG][       Thread-254188][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 12:04:53,335 [DEBUG][       Thread-254188][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 12:04:53,335 [DEBUG][       Thread-254188][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 12:04:53,335 [DEBUG][       Thread-254188][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 12:04:53,335 [DEBUG][       Thread-254188][   transport.py][1871] : Compression: none
2025-06-13 12:04:53,335 [DEBUG][       Thread-254188][   transport.py][1871] : === End of kex handshake ===
2025-06-13 12:04:53,392 [DEBUG][       Thread-254188][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 12:04:53,393 [DEBUG][       Thread-254188][   transport.py][1871] : Switch to new keys ...
2025-06-13 12:04:53,393 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 12:04:53,394 [DEBUG][       Thread-254188][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 12:04:53,394 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 12:04:53,447 [DEBUG][       Thread-254188][   transport.py][1871] : userauth is OK
2025-06-13 12:04:53,447 [DEBUG][       Thread-254188][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 12:04:53,448 [DEBUG][       Thread-254188][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 12:04:53,448 [DEBUG][       Thread-254188][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 12:04:53,448 [DEBUG][       Thread-254188][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 12:04:53,461 [ INFO][       Thread-254188][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 12:04:53,461 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 12:04:53,461 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 12:04:54,477 [DEBUG][       Thread-254188][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 12:04:54,477 [DEBUG][       Thread-254188][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 12:04:54,530 [DEBUG][       Thread-254188][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 12:04:54,530 [DEBUG][       Thread-254188][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 12:04:54,538 [DEBUG][       Thread-254188][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 12:04:54,546 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 12:04:54,546 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 12:04:54,561 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 12:04:54,569 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 12:04:54,569 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 12:04:54,570 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 12:04:54,580 [DEBUG][       Thread-254188][   transport.py][1871] : EOF in transport thread
2025-06-13 12:04:55,325 [DEBUG][Thread-254190 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:05:01,368 [DEBUG][Thread-254191 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:05:02,432 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:05:02,434 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:05:04,359 [DEBUG][Thread-254192 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:05:04,580 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 12:05:04,580 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 12:05:04,580 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 12:05:04,584 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 12:05:05,034 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 12, 4, 44), 12.99, 40.52, 0.0, 18.76, 11.25, 0, 0, 0, 2, 0, 0),)
2025-06-13 12:05:05,034 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 12:04:44
2025-06-13 12:05:05,116 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 12:05:05,121 [DEBUG][       Thread-254193][   transport.py][1871] : starting thread (client mode): 0x863a6830
2025-06-13 12:05:05,122 [DEBUG][       Thread-254193][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 12:05:05,143 [DEBUG][       Thread-254193][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 12:05:05,143 [ INFO][       Thread-254193][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 12:05:05,147 [DEBUG][       Thread-254193][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 12:05:05,147 [DEBUG][       Thread-254193][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 12:05:05,147 [DEBUG][       Thread-254193][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 12:05:05,147 [DEBUG][       Thread-254193][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:05:05,147 [DEBUG][       Thread-254193][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:05:05,147 [DEBUG][       Thread-254193][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:05:05,147 [DEBUG][       Thread-254193][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:05:05,147 [DEBUG][       Thread-254193][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 12:05:05,147 [DEBUG][       Thread-254193][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 12:05:05,147 [DEBUG][       Thread-254193][   transport.py][1871] : client lang: <none>
2025-06-13 12:05:05,147 [DEBUG][       Thread-254193][   transport.py][1871] : server lang: <none>
2025-06-13 12:05:05,147 [DEBUG][       Thread-254193][   transport.py][1871] : kex follows: False
2025-06-13 12:05:05,147 [DEBUG][       Thread-254193][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 12:05:05,147 [DEBUG][       Thread-254193][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 12:05:05,147 [DEBUG][       Thread-254193][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 12:05:05,147 [DEBUG][       Thread-254193][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 12:05:05,147 [DEBUG][       Thread-254193][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 12:05:05,147 [DEBUG][       Thread-254193][   transport.py][1871] : Compression: none
2025-06-13 12:05:05,147 [DEBUG][       Thread-254193][   transport.py][1871] : === End of kex handshake ===
2025-06-13 12:05:05,156 [DEBUG][       Thread-254193][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 12:05:05,156 [DEBUG][       Thread-254193][   transport.py][1871] : Switch to new keys ...
2025-06-13 12:05:05,157 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 12:05:05,157 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 12:05:05,157 [DEBUG][       Thread-254193][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 12:05:05,158 [DEBUG][       Thread-254193][   transport.py][1871] : userauth is OK
2025-06-13 12:05:05,171 [ INFO][       Thread-254193][   transport.py][1871] : Authentication (password) successful!
2025-06-13 12:05:05,171 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 12:05:11,101 [DEBUG][Thread-254195 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:05:11,357 [DEBUG][       Thread-254193][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 12:05:11,357 [DEBUG][       Thread-254193][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 12:05:11,401 [DEBUG][       Thread-254193][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 12:05:11,401 [DEBUG][       Thread-254193][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 12:05:11,404 [DEBUG][       Thread-254193][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 12:05:11,505 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 12:05:11,506 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 12:05:11,507 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 12:05:11,509 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 12:05:11,545 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 12:05:11,548 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 12:05:11,548 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 12:05:11,549 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 12:05:11,549 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.420077 -999.00  +11.20  23.77     43   -0.80 1 1 1 1 1   888    0 12.24 47.87 ----- 15.1 23.8 30.8 32.3 15.6 -28.0 14.3 -30.4 13.9 -27.8 15.2 -26.7
2025-06-13 12:05:11,549 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 12:05:11,549 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 12:05:11,549 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.420077
2025-06-13 12:05:11,550 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 12:05:11,550 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 12:05:11,550 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 12:05:11,550 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 12:05:11,551 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 12:05:11,551 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T12:04:44', tmtdew=12.99, humidity=40.52, cloud=0.0, wind=18.76, temperature=11.25, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T10:04:54.653', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 12:05:11,552 [DEBUG][       Thread-254193][   transport.py][1871] : EOF in transport thread
2025-06-13 12:05:11,628 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 12:05:11,642 [DEBUG][       Thread-254197][   transport.py][1871] : starting thread (client mode): 0x868c85b0
2025-06-13 12:05:11,642 [DEBUG][       Thread-254197][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 12:05:11,659 [DEBUG][       Thread-254197][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 12:05:11,659 [ INFO][       Thread-254197][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 12:05:11,666 [DEBUG][       Thread-254197][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 12:05:11,667 [DEBUG][       Thread-254197][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 12:05:11,667 [DEBUG][       Thread-254197][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 12:05:11,667 [DEBUG][       Thread-254197][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:05:11,667 [DEBUG][       Thread-254197][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:05:11,667 [DEBUG][       Thread-254197][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:05:11,667 [DEBUG][       Thread-254197][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:05:11,667 [DEBUG][       Thread-254197][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 12:05:11,667 [DEBUG][       Thread-254197][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 12:05:11,667 [DEBUG][       Thread-254197][   transport.py][1871] : client lang: <none>
2025-06-13 12:05:11,667 [DEBUG][       Thread-254197][   transport.py][1871] : server lang: <none>
2025-06-13 12:05:11,667 [DEBUG][       Thread-254197][   transport.py][1871] : kex follows: False
2025-06-13 12:05:11,667 [DEBUG][       Thread-254197][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 12:05:11,667 [DEBUG][       Thread-254197][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 12:05:11,667 [DEBUG][       Thread-254197][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 12:05:11,667 [DEBUG][       Thread-254197][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 12:05:11,668 [DEBUG][       Thread-254197][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 12:05:11,668 [DEBUG][       Thread-254197][   transport.py][1871] : Compression: none
2025-06-13 12:05:11,668 [DEBUG][       Thread-254197][   transport.py][1871] : === End of kex handshake ===
2025-06-13 12:05:11,728 [DEBUG][       Thread-254197][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 12:05:11,728 [DEBUG][       Thread-254197][   transport.py][1871] : Switch to new keys ...
2025-06-13 12:05:11,729 [DEBUG][       Thread-254197][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 12:05:11,729 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 12:05:11,730 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 12:05:11,788 [DEBUG][       Thread-254197][   transport.py][1871] : userauth is OK
2025-06-13 12:05:11,788 [DEBUG][       Thread-254197][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 12:05:11,789 [DEBUG][       Thread-254197][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 12:05:11,789 [DEBUG][       Thread-254197][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 12:05:11,789 [DEBUG][       Thread-254197][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 12:05:11,807 [ INFO][       Thread-254197][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 12:05:11,808 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 12:05:11,808 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 12:05:12,847 [DEBUG][       Thread-254197][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 12:05:12,847 [DEBUG][       Thread-254197][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 12:05:12,896 [DEBUG][       Thread-254197][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 12:05:12,896 [DEBUG][       Thread-254197][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 12:05:12,906 [DEBUG][       Thread-254197][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 12:05:12,915 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 12:05:12,915 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 12:05:12,924 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 12:05:12,934 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 12:05:12,934 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 12:05:12,935 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 12:05:12,944 [DEBUG][       Thread-254197][   transport.py][1871] : EOF in transport thread
2025-06-13 12:05:13,381 [DEBUG][Thread-254199 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:05:22,402 [DEBUG][Thread-254200 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:05:22,945 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 12:05:22,946 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 12:05:22,946 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 12:05:22,949 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 12:05:23,396 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 12, 5, 16), 12.82, 40.83, 0.0, 21.3, 11.41, 0, 0, 0, 2, 0, 0),)
2025-06-13 12:05:23,396 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 12:05:16
2025-06-13 12:05:23,478 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 12:05:23,483 [DEBUG][       Thread-254201][   transport.py][1871] : starting thread (client mode): 0x867b7550
2025-06-13 12:05:23,483 [DEBUG][       Thread-254201][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 12:05:23,505 [DEBUG][       Thread-254201][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 12:05:23,505 [ INFO][       Thread-254201][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 12:05:23,508 [DEBUG][       Thread-254201][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 12:05:23,508 [DEBUG][       Thread-254201][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 12:05:23,508 [DEBUG][       Thread-254201][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 12:05:23,508 [DEBUG][       Thread-254201][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:05:23,509 [DEBUG][       Thread-254201][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:05:23,509 [DEBUG][       Thread-254201][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:05:23,509 [DEBUG][       Thread-254201][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:05:23,509 [DEBUG][       Thread-254201][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 12:05:23,509 [DEBUG][       Thread-254201][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 12:05:23,509 [DEBUG][       Thread-254201][   transport.py][1871] : client lang: <none>
2025-06-13 12:05:23,509 [DEBUG][       Thread-254201][   transport.py][1871] : server lang: <none>
2025-06-13 12:05:23,509 [DEBUG][       Thread-254201][   transport.py][1871] : kex follows: False
2025-06-13 12:05:23,509 [DEBUG][       Thread-254201][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 12:05:23,509 [DEBUG][       Thread-254201][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 12:05:23,509 [DEBUG][       Thread-254201][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 12:05:23,509 [DEBUG][       Thread-254201][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 12:05:23,509 [DEBUG][       Thread-254201][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 12:05:23,509 [DEBUG][       Thread-254201][   transport.py][1871] : Compression: none
2025-06-13 12:05:23,509 [DEBUG][       Thread-254201][   transport.py][1871] : === End of kex handshake ===
2025-06-13 12:05:23,526 [DEBUG][       Thread-254201][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 12:05:23,527 [DEBUG][       Thread-254201][   transport.py][1871] : Switch to new keys ...
2025-06-13 12:05:23,527 [DEBUG][       Thread-254201][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 12:05:23,528 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 12:05:23,528 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 12:05:23,529 [DEBUG][       Thread-254201][   transport.py][1871] : userauth is OK
2025-06-13 12:05:23,554 [ INFO][       Thread-254201][   transport.py][1871] : Authentication (password) successful!
2025-06-13 12:05:23,554 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 12:05:24,268 [DEBUG][       Thread-254201][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 12:05:24,268 [DEBUG][       Thread-254201][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 12:05:24,310 [DEBUG][       Thread-254201][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 12:05:24,310 [DEBUG][       Thread-254201][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 12:05:24,313 [DEBUG][       Thread-254201][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 12:05:24,326 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 12:05:24,326 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 12:05:24,328 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 12:05:24,330 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 12:05:24,335 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 12:05:24,337 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 12:05:24,337 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 12:05:24,338 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 12:05:24,338 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.420077 -999.00  +11.20  23.77     43   -0.80 1 1 1 1 1   888    0 12.24 47.87 ----- 15.1 23.8 30.8 32.3 15.6 -28.0 14.3 -30.4 13.9 -27.8 15.2 -26.7
2025-06-13 12:05:24,338 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 12:05:24,338 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 12:05:24,338 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.420077
2025-06-13 12:05:24,339 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 12:05:24,340 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 12:05:24,340 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 12:05:24,340 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 12:05:24,340 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 12:05:24,340 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T12:05:16', tmtdew=12.82, humidity=40.83, cloud=0.0, wind=21.3, temperature=11.41, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T10:04:54.653', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 12:05:24,341 [DEBUG][       Thread-254201][   transport.py][1871] : EOF in transport thread
2025-06-13 12:05:24,423 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 12:05:24,433 [DEBUG][       Thread-254204][   transport.py][1871] : starting thread (client mode): 0x863a5b70
2025-06-13 12:05:24,433 [DEBUG][       Thread-254204][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 12:05:24,449 [DEBUG][       Thread-254204][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 12:05:24,449 [ INFO][       Thread-254204][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 12:05:24,457 [DEBUG][       Thread-254204][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 12:05:24,457 [DEBUG][       Thread-254204][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 12:05:24,458 [DEBUG][       Thread-254204][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 12:05:24,458 [DEBUG][       Thread-254204][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:05:24,458 [DEBUG][       Thread-254204][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:05:24,458 [DEBUG][       Thread-254204][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:05:24,458 [DEBUG][       Thread-254204][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:05:24,458 [DEBUG][       Thread-254204][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 12:05:24,458 [DEBUG][       Thread-254204][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 12:05:24,458 [DEBUG][       Thread-254204][   transport.py][1871] : client lang: <none>
2025-06-13 12:05:24,458 [DEBUG][       Thread-254204][   transport.py][1871] : server lang: <none>
2025-06-13 12:05:24,458 [DEBUG][       Thread-254204][   transport.py][1871] : kex follows: False
2025-06-13 12:05:24,458 [DEBUG][       Thread-254204][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 12:05:24,458 [DEBUG][       Thread-254204][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 12:05:24,458 [DEBUG][       Thread-254204][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 12:05:24,458 [DEBUG][       Thread-254204][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 12:05:24,458 [DEBUG][       Thread-254204][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 12:05:24,458 [DEBUG][       Thread-254204][   transport.py][1871] : Compression: none
2025-06-13 12:05:24,458 [DEBUG][       Thread-254204][   transport.py][1871] : === End of kex handshake ===
2025-06-13 12:05:24,516 [DEBUG][       Thread-254204][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 12:05:24,517 [DEBUG][       Thread-254204][   transport.py][1871] : Switch to new keys ...
2025-06-13 12:05:24,517 [DEBUG][       Thread-254204][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 12:05:24,517 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 12:05:24,517 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 12:05:24,575 [DEBUG][       Thread-254204][   transport.py][1871] : userauth is OK
2025-06-13 12:05:24,576 [DEBUG][       Thread-254204][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 12:05:24,576 [DEBUG][       Thread-254204][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 12:05:24,576 [DEBUG][       Thread-254204][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 12:05:24,576 [DEBUG][       Thread-254204][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 12:05:24,590 [ INFO][       Thread-254204][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 12:05:24,590 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 12:05:24,590 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 12:05:25,664 [DEBUG][       Thread-254204][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 12:05:25,665 [DEBUG][       Thread-254204][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 12:05:25,716 [DEBUG][       Thread-254204][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 12:05:25,717 [DEBUG][       Thread-254204][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 12:05:25,729 [DEBUG][       Thread-254204][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 12:05:25,740 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 12:05:25,740 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 12:05:25,749 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 12:05:25,759 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 12:05:25,759 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 12:05:25,760 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 12:05:25,767 [DEBUG][       Thread-254204][   transport.py][1871] : EOF in transport thread
2025-06-13 12:05:31,425 [DEBUG][Thread-254206 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:05:35,768 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 12:05:35,768 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 12:05:35,768 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 12:05:35,769 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 12:05:36,217 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 12, 5, 16), 12.82, 40.83, 0.0, 21.3, 11.41, 0, 0, 0, 2, 0, 0),)
2025-06-13 12:05:36,217 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 12:05:16
2025-06-13 12:05:36,298 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 12:05:36,301 [DEBUG][       Thread-254207][   transport.py][1871] : starting thread (client mode): 0x863a62f0
2025-06-13 12:05:36,301 [DEBUG][       Thread-254207][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 12:05:36,322 [DEBUG][       Thread-254207][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 12:05:36,322 [ INFO][       Thread-254207][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 12:05:36,326 [DEBUG][       Thread-254207][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 12:05:36,326 [DEBUG][       Thread-254207][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 12:05:36,326 [DEBUG][       Thread-254207][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 12:05:36,326 [DEBUG][       Thread-254207][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:05:36,326 [DEBUG][       Thread-254207][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:05:36,326 [DEBUG][       Thread-254207][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:05:36,326 [DEBUG][       Thread-254207][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:05:36,326 [DEBUG][       Thread-254207][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 12:05:36,326 [DEBUG][       Thread-254207][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 12:05:36,326 [DEBUG][       Thread-254207][   transport.py][1871] : client lang: <none>
2025-06-13 12:05:36,326 [DEBUG][       Thread-254207][   transport.py][1871] : server lang: <none>
2025-06-13 12:05:36,326 [DEBUG][       Thread-254207][   transport.py][1871] : kex follows: False
2025-06-13 12:05:36,326 [DEBUG][       Thread-254207][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 12:05:36,326 [DEBUG][       Thread-254207][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 12:05:36,326 [DEBUG][       Thread-254207][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 12:05:36,326 [DEBUG][       Thread-254207][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 12:05:36,326 [DEBUG][       Thread-254207][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 12:05:36,326 [DEBUG][       Thread-254207][   transport.py][1871] : Compression: none
2025-06-13 12:05:36,326 [DEBUG][       Thread-254207][   transport.py][1871] : === End of kex handshake ===
2025-06-13 12:05:36,332 [DEBUG][       Thread-254207][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 12:05:36,332 [DEBUG][       Thread-254207][   transport.py][1871] : Switch to new keys ...
2025-06-13 12:05:36,333 [DEBUG][       Thread-254207][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 12:05:36,333 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 12:05:36,333 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 12:05:36,334 [DEBUG][       Thread-254207][   transport.py][1871] : userauth is OK
2025-06-13 12:05:36,346 [ INFO][       Thread-254207][   transport.py][1871] : Authentication (password) successful!
2025-06-13 12:05:36,346 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 12:05:36,953 [DEBUG][       Thread-254207][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 12:05:36,954 [DEBUG][       Thread-254207][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 12:05:36,996 [DEBUG][       Thread-254207][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 12:05:36,996 [DEBUG][       Thread-254207][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 12:05:36,999 [DEBUG][       Thread-254207][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 12:05:37,011 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 12:05:37,011 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 12:05:37,012 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 12:05:37,013 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 12:05:37,016 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 12:05:37,017 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 12:05:37,018 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 12:05:37,018 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 12:05:37,018 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.420424 -999.00  +11.30  19.86     44   -0.40 1 1 1 1 1   888    0 12.25 49.12 ----- 19.5 19.9 40.8 22.1 15.7 -28.6 14.3 -29.3 -999.0 -999.0 15.2 -26.2
2025-06-13 12:05:37,018 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 12:05:37,018 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 12:05:37,018 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.420424
2025-06-13 12:05:37,018 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 12:05:37,018 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 12:05:37,018 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 12:05:37,018 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 12:05:37,018 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 12:05:37,018 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T12:05:16', tmtdew=12.82, humidity=40.83, cloud=0.0, wind=21.3, temperature=11.41, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T10:05:24.634', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 12:05:37,019 [DEBUG][       Thread-254207][   transport.py][1871] : EOF in transport thread
2025-06-13 12:05:37,099 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 12:05:37,115 [DEBUG][       Thread-254210][   transport.py][1871] : starting thread (client mode): 0x867b7310
2025-06-13 12:05:37,115 [DEBUG][       Thread-254210][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 12:05:37,137 [DEBUG][       Thread-254210][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 12:05:37,137 [ INFO][       Thread-254210][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 12:05:37,145 [DEBUG][       Thread-254210][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 12:05:37,145 [DEBUG][       Thread-254210][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 12:05:37,145 [DEBUG][       Thread-254210][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 12:05:37,145 [DEBUG][       Thread-254210][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:05:37,145 [DEBUG][       Thread-254210][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:05:37,145 [DEBUG][       Thread-254210][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:05:37,145 [DEBUG][       Thread-254210][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:05:37,145 [DEBUG][       Thread-254210][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 12:05:37,145 [DEBUG][       Thread-254210][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 12:05:37,146 [DEBUG][       Thread-254210][   transport.py][1871] : client lang: <none>
2025-06-13 12:05:37,146 [DEBUG][       Thread-254210][   transport.py][1871] : server lang: <none>
2025-06-13 12:05:37,146 [DEBUG][       Thread-254210][   transport.py][1871] : kex follows: False
2025-06-13 12:05:37,146 [DEBUG][       Thread-254210][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 12:05:37,146 [DEBUG][       Thread-254210][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 12:05:37,146 [DEBUG][       Thread-254210][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 12:05:37,146 [DEBUG][       Thread-254210][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 12:05:37,146 [DEBUG][       Thread-254210][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 12:05:37,146 [DEBUG][       Thread-254210][   transport.py][1871] : Compression: none
2025-06-13 12:05:37,146 [DEBUG][       Thread-254210][   transport.py][1871] : === End of kex handshake ===
2025-06-13 12:05:37,204 [DEBUG][       Thread-254210][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 12:05:37,204 [DEBUG][       Thread-254210][   transport.py][1871] : Switch to new keys ...
2025-06-13 12:05:37,205 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 12:05:37,206 [DEBUG][       Thread-254210][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 12:05:37,206 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 12:05:37,264 [DEBUG][       Thread-254210][   transport.py][1871] : userauth is OK
2025-06-13 12:05:37,264 [DEBUG][       Thread-254210][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 12:05:37,265 [DEBUG][       Thread-254210][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 12:05:37,265 [DEBUG][       Thread-254210][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 12:05:37,265 [DEBUG][       Thread-254210][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 12:05:37,284 [ INFO][       Thread-254210][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 12:05:37,284 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 12:05:37,285 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 12:05:38,364 [DEBUG][       Thread-254210][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 12:05:38,365 [DEBUG][       Thread-254210][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 12:05:38,416 [DEBUG][       Thread-254210][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 12:05:38,416 [DEBUG][       Thread-254210][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 12:05:38,426 [DEBUG][       Thread-254210][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 12:05:38,441 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 12:05:38,441 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 12:05:38,452 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 12:05:38,461 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 12:05:38,461 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 12:05:38,462 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 12:05:38,472 [DEBUG][       Thread-254210][   transport.py][1871] : EOF in transport thread
2025-06-13 12:05:40,353 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:05:40,354 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:05:40,458 [DEBUG][Thread-254212 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:05:48,472 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 12:05:48,472 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 12:05:48,472 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 12:05:48,473 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 12:05:48,953 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 12, 5, 16), 12.82, 40.83, 0.0, 21.3, 11.41, 0, 0, 0, 2, 0, 0),)
2025-06-13 12:05:48,953 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 12:05:16
2025-06-13 12:05:49,041 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 12:05:49,045 [DEBUG][       Thread-254213][   transport.py][1871] : starting thread (client mode): 0x863a45b0
2025-06-13 12:05:49,045 [DEBUG][       Thread-254213][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 12:05:49,066 [DEBUG][       Thread-254213][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 12:05:49,066 [ INFO][       Thread-254213][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 12:05:49,070 [DEBUG][       Thread-254213][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 12:05:49,070 [DEBUG][       Thread-254213][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 12:05:49,070 [DEBUG][       Thread-254213][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 12:05:49,070 [DEBUG][       Thread-254213][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:05:49,070 [DEBUG][       Thread-254213][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:05:49,070 [DEBUG][       Thread-254213][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:05:49,070 [DEBUG][       Thread-254213][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:05:49,070 [DEBUG][       Thread-254213][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 12:05:49,070 [DEBUG][       Thread-254213][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 12:05:49,070 [DEBUG][       Thread-254213][   transport.py][1871] : client lang: <none>
2025-06-13 12:05:49,070 [DEBUG][       Thread-254213][   transport.py][1871] : server lang: <none>
2025-06-13 12:05:49,070 [DEBUG][       Thread-254213][   transport.py][1871] : kex follows: False
2025-06-13 12:05:49,070 [DEBUG][       Thread-254213][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 12:05:49,070 [DEBUG][       Thread-254213][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 12:05:49,070 [DEBUG][       Thread-254213][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 12:05:49,070 [DEBUG][       Thread-254213][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 12:05:49,070 [DEBUG][       Thread-254213][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 12:05:49,070 [DEBUG][       Thread-254213][   transport.py][1871] : Compression: none
2025-06-13 12:05:49,070 [DEBUG][       Thread-254213][   transport.py][1871] : === End of kex handshake ===
2025-06-13 12:05:49,087 [DEBUG][       Thread-254213][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 12:05:49,087 [DEBUG][       Thread-254213][   transport.py][1871] : Switch to new keys ...
2025-06-13 12:05:49,087 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 12:05:49,087 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 12:05:49,087 [DEBUG][       Thread-254213][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 12:05:49,087 [DEBUG][       Thread-254213][   transport.py][1871] : userauth is OK
2025-06-13 12:05:49,111 [ INFO][       Thread-254213][   transport.py][1871] : Authentication (password) successful!
2025-06-13 12:05:49,112 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 12:05:49,478 [DEBUG][Thread-254215 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:05:49,781 [DEBUG][       Thread-254213][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 12:05:49,781 [DEBUG][       Thread-254213][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 12:05:49,825 [DEBUG][       Thread-254213][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 12:05:49,825 [DEBUG][       Thread-254213][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 12:05:49,827 [DEBUG][       Thread-254213][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 12:05:49,840 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 12:05:49,841 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 12:05:49,842 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 12:05:49,842 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 12:05:49,845 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 12:05:49,845 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 12:05:49,846 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 12:05:49,846 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 12:05:49,846 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.420424 -999.00  +11.30  19.86     44   -0.40 1 1 1 1 1   888    0 12.25 49.12 ----- 19.5 19.9 40.8 22.1 15.7 -28.6 14.3 -29.3 -999.0 -999.0 15.2 -26.2
2025-06-13 12:05:49,846 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 12:05:49,846 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 12:05:49,846 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.420424
2025-06-13 12:05:49,846 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 12:05:49,846 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 12:05:49,846 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 12:05:49,846 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 12:05:49,846 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 12:05:49,846 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T12:05:16', tmtdew=12.82, humidity=40.83, cloud=0.0, wind=21.3, temperature=11.41, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T10:05:24.634', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 12:05:49,846 [DEBUG][       Thread-254213][   transport.py][1871] : EOF in transport thread
2025-06-13 12:05:49,921 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 12:05:49,933 [DEBUG][       Thread-254217][   transport.py][1871] : starting thread (client mode): 0x863a7e80
2025-06-13 12:05:49,934 [DEBUG][       Thread-254217][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 12:05:49,951 [DEBUG][       Thread-254217][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 12:05:49,951 [ INFO][       Thread-254217][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 12:05:49,961 [DEBUG][       Thread-254217][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 12:05:49,961 [DEBUG][       Thread-254217][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 12:05:49,961 [DEBUG][       Thread-254217][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 12:05:49,961 [DEBUG][       Thread-254217][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:05:49,961 [DEBUG][       Thread-254217][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:05:49,961 [DEBUG][       Thread-254217][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:05:49,961 [DEBUG][       Thread-254217][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:05:49,961 [DEBUG][       Thread-254217][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 12:05:49,961 [DEBUG][       Thread-254217][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 12:05:49,961 [DEBUG][       Thread-254217][   transport.py][1871] : client lang: <none>
2025-06-13 12:05:49,961 [DEBUG][       Thread-254217][   transport.py][1871] : server lang: <none>
2025-06-13 12:05:49,961 [DEBUG][       Thread-254217][   transport.py][1871] : kex follows: False
2025-06-13 12:05:49,961 [DEBUG][       Thread-254217][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 12:05:49,961 [DEBUG][       Thread-254217][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 12:05:49,961 [DEBUG][       Thread-254217][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 12:05:49,961 [DEBUG][       Thread-254217][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 12:05:49,961 [DEBUG][       Thread-254217][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 12:05:49,961 [DEBUG][       Thread-254217][   transport.py][1871] : Compression: none
2025-06-13 12:05:49,961 [DEBUG][       Thread-254217][   transport.py][1871] : === End of kex handshake ===
2025-06-13 12:05:50,026 [DEBUG][       Thread-254217][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 12:05:50,026 [DEBUG][       Thread-254217][   transport.py][1871] : Switch to new keys ...
2025-06-13 12:05:50,026 [DEBUG][       Thread-254217][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 12:05:50,026 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 12:05:50,026 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 12:05:50,087 [DEBUG][       Thread-254217][   transport.py][1871] : userauth is OK
2025-06-13 12:05:50,087 [DEBUG][       Thread-254217][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 12:05:50,087 [DEBUG][       Thread-254217][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 12:05:50,087 [DEBUG][       Thread-254217][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 12:05:50,087 [DEBUG][       Thread-254217][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 12:05:50,102 [ INFO][       Thread-254217][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 12:05:50,102 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 12:05:50,103 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 12:05:51,093 [DEBUG][       Thread-254217][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 12:05:51,093 [DEBUG][       Thread-254217][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 12:05:51,148 [DEBUG][       Thread-254217][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 12:05:51,148 [DEBUG][       Thread-254217][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 12:05:51,160 [DEBUG][       Thread-254217][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 12:05:51,169 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 12:05:51,170 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 12:05:51,179 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 12:05:51,188 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 12:05:51,189 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 12:05:51,189 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 12:05:51,198 [DEBUG][       Thread-254217][   transport.py][1871] : EOF in transport thread
2025-06-13 12:05:58,499 [DEBUG][Thread-254219 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:06:01,200 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 12:06:01,200 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 12:06:01,200 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 12:06:01,203 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 12:06:01,661 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 12, 5, 47), 12.9, 40.6, 0.0, 21.56, 11.46, 0, 0, 0, 2, 0, 0),)
2025-06-13 12:06:01,661 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 12:05:47
2025-06-13 12:06:01,742 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 12:06:01,746 [DEBUG][       Thread-254220][   transport.py][1871] : starting thread (client mode): 0x863a5240
2025-06-13 12:06:01,746 [DEBUG][       Thread-254220][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 12:06:01,767 [DEBUG][       Thread-254220][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 12:06:01,767 [ INFO][       Thread-254220][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 12:06:01,769 [DEBUG][       Thread-254220][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 12:06:01,769 [DEBUG][       Thread-254220][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 12:06:01,769 [DEBUG][       Thread-254220][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 12:06:01,769 [DEBUG][       Thread-254220][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:06:01,769 [DEBUG][       Thread-254220][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:06:01,769 [DEBUG][       Thread-254220][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:06:01,769 [DEBUG][       Thread-254220][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:06:01,769 [DEBUG][       Thread-254220][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 12:06:01,769 [DEBUG][       Thread-254220][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 12:06:01,769 [DEBUG][       Thread-254220][   transport.py][1871] : client lang: <none>
2025-06-13 12:06:01,769 [DEBUG][       Thread-254220][   transport.py][1871] : server lang: <none>
2025-06-13 12:06:01,769 [DEBUG][       Thread-254220][   transport.py][1871] : kex follows: False
2025-06-13 12:06:01,769 [DEBUG][       Thread-254220][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 12:06:01,769 [DEBUG][       Thread-254220][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 12:06:01,769 [DEBUG][       Thread-254220][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 12:06:01,769 [DEBUG][       Thread-254220][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 12:06:01,769 [DEBUG][       Thread-254220][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 12:06:01,769 [DEBUG][       Thread-254220][   transport.py][1871] : Compression: none
2025-06-13 12:06:01,769 [DEBUG][       Thread-254220][   transport.py][1871] : === End of kex handshake ===
2025-06-13 12:06:01,778 [DEBUG][       Thread-254220][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 12:06:01,778 [DEBUG][       Thread-254220][   transport.py][1871] : Switch to new keys ...
2025-06-13 12:06:01,778 [DEBUG][       Thread-254220][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 12:06:01,779 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 12:06:01,779 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 12:06:01,780 [DEBUG][       Thread-254220][   transport.py][1871] : userauth is OK
2025-06-13 12:06:01,805 [ INFO][       Thread-254220][   transport.py][1871] : Authentication (password) successful!
2025-06-13 12:06:01,805 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 12:06:02,462 [DEBUG][Thread-254222 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:06:02,478 [DEBUG][       Thread-254220][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 12:06:02,478 [DEBUG][       Thread-254220][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 12:06:02,520 [DEBUG][       Thread-254220][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 12:06:02,521 [DEBUG][       Thread-254220][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 12:06:02,523 [DEBUG][       Thread-254220][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 12:06:02,534 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 12:06:02,534 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 12:06:02,535 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 12:06:02,536 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 12:06:02,538 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 12:06:02,539 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 12:06:02,539 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 12:06:02,539 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 12:06:02,539 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.420424 -999.00  +11.30  19.86     44   -0.40 1 1 1 1 1   888    0 12.25 49.12 ----- 19.5 19.9 40.8 22.1 15.7 -28.6 14.3 -29.3 -999.0 -999.0 15.2 -26.2
2025-06-13 12:06:02,539 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 12:06:02,539 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 12:06:02,539 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.420424
2025-06-13 12:06:02,539 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 12:06:02,540 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 12:06:02,540 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 12:06:02,540 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 12:06:02,540 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 12:06:02,540 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T12:05:47', tmtdew=12.9, humidity=40.6, cloud=0.0, wind=21.56, temperature=11.46, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T10:05:24.634', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 12:06:02,540 [DEBUG][       Thread-254220][   transport.py][1871] : EOF in transport thread
2025-06-13 12:06:02,612 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 12:06:02,624 [DEBUG][       Thread-254224][   transport.py][1871] : starting thread (client mode): 0x863a54e0
2025-06-13 12:06:02,624 [DEBUG][       Thread-254224][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 12:06:02,639 [DEBUG][       Thread-254224][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 12:06:02,639 [ INFO][       Thread-254224][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 12:06:02,647 [DEBUG][       Thread-254224][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 12:06:02,647 [DEBUG][       Thread-254224][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 12:06:02,647 [DEBUG][       Thread-254224][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 12:06:02,647 [DEBUG][       Thread-254224][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:06:02,647 [DEBUG][       Thread-254224][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:06:02,647 [DEBUG][       Thread-254224][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:06:02,647 [DEBUG][       Thread-254224][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:06:02,647 [DEBUG][       Thread-254224][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 12:06:02,647 [DEBUG][       Thread-254224][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 12:06:02,648 [DEBUG][       Thread-254224][   transport.py][1871] : client lang: <none>
2025-06-13 12:06:02,648 [DEBUG][       Thread-254224][   transport.py][1871] : server lang: <none>
2025-06-13 12:06:02,648 [DEBUG][       Thread-254224][   transport.py][1871] : kex follows: False
2025-06-13 12:06:02,648 [DEBUG][       Thread-254224][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 12:06:02,648 [DEBUG][       Thread-254224][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 12:06:02,648 [DEBUG][       Thread-254224][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 12:06:02,648 [DEBUG][       Thread-254224][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 12:06:02,648 [DEBUG][       Thread-254224][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 12:06:02,648 [DEBUG][       Thread-254224][   transport.py][1871] : Compression: none
2025-06-13 12:06:02,648 [DEBUG][       Thread-254224][   transport.py][1871] : === End of kex handshake ===
2025-06-13 12:06:02,704 [DEBUG][       Thread-254224][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 12:06:02,705 [DEBUG][       Thread-254224][   transport.py][1871] : Switch to new keys ...
2025-06-13 12:06:02,706 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 12:06:02,706 [DEBUG][       Thread-254224][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 12:06:02,707 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 12:06:02,770 [DEBUG][       Thread-254224][   transport.py][1871] : userauth is OK
2025-06-13 12:06:02,770 [DEBUG][       Thread-254224][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 12:06:02,770 [DEBUG][       Thread-254224][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 12:06:02,770 [DEBUG][       Thread-254224][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 12:06:02,770 [DEBUG][       Thread-254224][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 12:06:02,790 [ INFO][       Thread-254224][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 12:06:02,790 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 12:06:02,791 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 12:06:03,540 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:06:03,550 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:06:03,818 [DEBUG][       Thread-254224][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 12:06:03,818 [DEBUG][       Thread-254224][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 12:06:03,868 [DEBUG][       Thread-254224][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 12:06:03,868 [DEBUG][       Thread-254224][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 12:06:03,878 [DEBUG][       Thread-254224][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 12:06:03,887 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 12:06:03,887 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 12:06:03,896 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 12:06:03,905 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 12:06:03,906 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 12:06:03,906 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 12:06:03,916 [DEBUG][       Thread-254224][   transport.py][1871] : EOF in transport thread
2025-06-13 12:06:07,520 [DEBUG][Thread-254226 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:06:11,147 [DEBUG][Thread-254227 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:06:13,916 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 12:06:13,916 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 12:06:13,916 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 12:06:13,917 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 12:06:14,362 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 12, 5, 47), 12.9, 40.6, 0.0, 21.56, 11.46, 0, 0, 0, 2, 0, 0),)
2025-06-13 12:06:14,362 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 12:05:47
2025-06-13 12:06:14,446 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 12:06:14,452 [DEBUG][       Thread-254228][   transport.py][1871] : starting thread (client mode): 0x867b6590
2025-06-13 12:06:14,452 [DEBUG][       Thread-254228][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 12:06:14,471 [DEBUG][       Thread-254228][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 12:06:14,472 [ INFO][       Thread-254228][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 12:06:14,475 [DEBUG][       Thread-254228][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 12:06:14,475 [DEBUG][       Thread-254228][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 12:06:14,475 [DEBUG][       Thread-254228][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 12:06:14,475 [DEBUG][       Thread-254228][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:06:14,475 [DEBUG][       Thread-254228][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:06:14,475 [DEBUG][       Thread-254228][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:06:14,475 [DEBUG][       Thread-254228][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:06:14,475 [DEBUG][       Thread-254228][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 12:06:14,475 [DEBUG][       Thread-254228][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 12:06:14,475 [DEBUG][       Thread-254228][   transport.py][1871] : client lang: <none>
2025-06-13 12:06:14,475 [DEBUG][       Thread-254228][   transport.py][1871] : server lang: <none>
2025-06-13 12:06:14,475 [DEBUG][       Thread-254228][   transport.py][1871] : kex follows: False
2025-06-13 12:06:14,475 [DEBUG][       Thread-254228][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 12:06:14,475 [DEBUG][       Thread-254228][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 12:06:14,475 [DEBUG][       Thread-254228][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 12:06:14,475 [DEBUG][       Thread-254228][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 12:06:14,475 [DEBUG][       Thread-254228][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 12:06:14,475 [DEBUG][       Thread-254228][   transport.py][1871] : Compression: none
2025-06-13 12:06:14,475 [DEBUG][       Thread-254228][   transport.py][1871] : === End of kex handshake ===
2025-06-13 12:06:14,490 [DEBUG][       Thread-254228][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 12:06:14,490 [DEBUG][       Thread-254228][   transport.py][1871] : Switch to new keys ...
2025-06-13 12:06:14,490 [DEBUG][       Thread-254228][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 12:06:14,490 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 12:06:14,490 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 12:06:14,490 [DEBUG][       Thread-254228][   transport.py][1871] : userauth is OK
2025-06-13 12:06:14,503 [ INFO][       Thread-254228][   transport.py][1871] : Authentication (password) successful!
2025-06-13 12:06:14,504 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 12:06:15,112 [DEBUG][       Thread-254228][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 12:06:15,112 [DEBUG][       Thread-254228][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 12:06:15,152 [DEBUG][       Thread-254228][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 12:06:15,153 [DEBUG][       Thread-254228][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 12:06:15,155 [DEBUG][       Thread-254228][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 12:06:15,169 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 12:06:15,169 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 12:06:15,170 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 12:06:15,171 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 12:06:15,174 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 12:06:15,175 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 12:06:15,175 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 12:06:15,175 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 12:06:15,175 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.420772 -999.00  +11.40  20.69     44   -0.20 1 1 1 1 1   888    0 12.35 49.76 ----- 25.6 20.7 52.2 21.9 15.8 -28.0 14.4 -29.9 13.9 -29.5 15.3 -26.2
2025-06-13 12:06:15,175 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 12:06:15,175 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 12:06:15,175 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.420772
2025-06-13 12:06:15,175 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 12:06:15,175 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 12:06:15,175 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 12:06:15,175 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 12:06:15,175 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 12:06:15,175 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T12:05:47', tmtdew=12.9, humidity=40.6, cloud=0.0, wind=21.56, temperature=11.46, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T10:05:54.701', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 12:06:15,176 [DEBUG][       Thread-254228][   transport.py][1871] : EOF in transport thread
2025-06-13 12:06:15,249 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 12:06:15,261 [DEBUG][       Thread-254231][   transport.py][1871] : starting thread (client mode): 0x863a6080
2025-06-13 12:06:15,261 [DEBUG][       Thread-254231][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 12:06:15,276 [DEBUG][       Thread-254231][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 12:06:15,276 [ INFO][       Thread-254231][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 12:06:15,284 [DEBUG][       Thread-254231][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 12:06:15,284 [DEBUG][       Thread-254231][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 12:06:15,285 [DEBUG][       Thread-254231][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 12:06:15,285 [DEBUG][       Thread-254231][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:06:15,285 [DEBUG][       Thread-254231][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:06:15,285 [DEBUG][       Thread-254231][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:06:15,285 [DEBUG][       Thread-254231][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:06:15,285 [DEBUG][       Thread-254231][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 12:06:15,285 [DEBUG][       Thread-254231][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 12:06:15,285 [DEBUG][       Thread-254231][   transport.py][1871] : client lang: <none>
2025-06-13 12:06:15,285 [DEBUG][       Thread-254231][   transport.py][1871] : server lang: <none>
2025-06-13 12:06:15,285 [DEBUG][       Thread-254231][   transport.py][1871] : kex follows: False
2025-06-13 12:06:15,285 [DEBUG][       Thread-254231][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 12:06:15,285 [DEBUG][       Thread-254231][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 12:06:15,285 [DEBUG][       Thread-254231][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 12:06:15,285 [DEBUG][       Thread-254231][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 12:06:15,285 [DEBUG][       Thread-254231][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 12:06:15,285 [DEBUG][       Thread-254231][   transport.py][1871] : Compression: none
2025-06-13 12:06:15,285 [DEBUG][       Thread-254231][   transport.py][1871] : === End of kex handshake ===
2025-06-13 12:06:15,344 [DEBUG][       Thread-254231][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 12:06:15,345 [DEBUG][       Thread-254231][   transport.py][1871] : Switch to new keys ...
2025-06-13 12:06:15,345 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 12:06:15,346 [DEBUG][       Thread-254231][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 12:06:15,346 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 12:06:15,404 [DEBUG][       Thread-254231][   transport.py][1871] : userauth is OK
2025-06-13 12:06:15,404 [DEBUG][       Thread-254231][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 12:06:15,405 [DEBUG][       Thread-254231][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 12:06:15,405 [DEBUG][       Thread-254231][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 12:06:15,405 [DEBUG][       Thread-254231][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 12:06:15,424 [ INFO][       Thread-254231][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 12:06:15,425 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 12:06:15,425 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 12:06:16,447 [DEBUG][       Thread-254231][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 12:06:16,447 [DEBUG][       Thread-254231][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 12:06:16,496 [DEBUG][       Thread-254231][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 12:06:16,496 [DEBUG][       Thread-254231][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 12:06:16,506 [DEBUG][       Thread-254231][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 12:06:16,515 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 12:06:16,515 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 12:06:16,524 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 12:06:16,533 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 12:06:16,533 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 12:06:16,534 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 12:06:16,542 [DEBUG][       Thread-254231][   transport.py][1871] : EOF in transport thread
2025-06-13 12:06:16,555 [DEBUG][Thread-254233 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:06:25,575 [DEBUG][Thread-254234 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:06:26,544 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 12:06:26,544 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 12:06:26,544 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 12:06:26,547 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 12:06:27,009 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 12, 6, 19), 12.78, 41.3, 0.0, 17.93, 11.61, 0, 0, 0, 2, 0, 0),)
2025-06-13 12:06:27,009 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 12:06:19
2025-06-13 12:06:27,091 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 12:06:27,095 [DEBUG][       Thread-254235][   transport.py][1871] : starting thread (client mode): 0x867b6b90
2025-06-13 12:06:27,095 [DEBUG][       Thread-254235][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 12:06:27,116 [DEBUG][       Thread-254235][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 12:06:27,116 [ INFO][       Thread-254235][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 12:06:27,119 [DEBUG][       Thread-254235][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 12:06:27,119 [DEBUG][       Thread-254235][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 12:06:27,119 [DEBUG][       Thread-254235][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 12:06:27,119 [DEBUG][       Thread-254235][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:06:27,119 [DEBUG][       Thread-254235][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:06:27,119 [DEBUG][       Thread-254235][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:06:27,119 [DEBUG][       Thread-254235][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:06:27,119 [DEBUG][       Thread-254235][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 12:06:27,120 [DEBUG][       Thread-254235][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 12:06:27,120 [DEBUG][       Thread-254235][   transport.py][1871] : client lang: <none>
2025-06-13 12:06:27,120 [DEBUG][       Thread-254235][   transport.py][1871] : server lang: <none>
2025-06-13 12:06:27,120 [DEBUG][       Thread-254235][   transport.py][1871] : kex follows: False
2025-06-13 12:06:27,120 [DEBUG][       Thread-254235][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 12:06:27,120 [DEBUG][       Thread-254235][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 12:06:27,120 [DEBUG][       Thread-254235][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 12:06:27,120 [DEBUG][       Thread-254235][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 12:06:27,120 [DEBUG][       Thread-254235][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 12:06:27,120 [DEBUG][       Thread-254235][   transport.py][1871] : Compression: none
2025-06-13 12:06:27,120 [DEBUG][       Thread-254235][   transport.py][1871] : === End of kex handshake ===
2025-06-13 12:06:27,136 [DEBUG][       Thread-254235][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 12:06:27,136 [DEBUG][       Thread-254235][   transport.py][1871] : Switch to new keys ...
2025-06-13 12:06:27,137 [DEBUG][       Thread-254235][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 12:06:27,137 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 12:06:27,137 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 12:06:27,138 [DEBUG][       Thread-254235][   transport.py][1871] : userauth is OK
2025-06-13 12:06:27,151 [ INFO][       Thread-254235][   transport.py][1871] : Authentication (password) successful!
2025-06-13 12:06:27,151 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 12:06:27,760 [DEBUG][       Thread-254235][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 12:06:27,760 [DEBUG][       Thread-254235][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 12:06:27,801 [DEBUG][       Thread-254235][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 12:06:27,801 [DEBUG][       Thread-254235][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 12:06:27,804 [DEBUG][       Thread-254235][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 12:06:27,816 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 12:06:27,817 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 12:06:27,818 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 12:06:27,820 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 12:06:27,825 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 12:06:27,826 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 12:06:27,826 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 12:06:27,827 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 12:06:27,827 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.420772 -999.00  +11.40  20.69     44   -0.20 1 1 1 1 1   888    0 12.35 49.76 ----- 25.6 20.7 52.2 21.9 15.8 -28.0 14.4 -29.9 13.9 -29.5 15.3 -26.2
2025-06-13 12:06:27,827 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 12:06:27,827 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 12:06:27,827 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.420772
2025-06-13 12:06:27,828 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 12:06:27,828 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 12:06:27,828 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 12:06:27,828 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 12:06:27,829 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 12:06:27,829 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T12:06:19', tmtdew=12.78, humidity=41.3, cloud=0.0, wind=17.93, temperature=11.61, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T10:05:54.701', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 12:06:27,829 [DEBUG][       Thread-254235][   transport.py][1871] : EOF in transport thread
2025-06-13 12:06:27,915 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 12:06:27,925 [DEBUG][       Thread-254238][   transport.py][1871] : starting thread (client mode): 0x863a4c10
2025-06-13 12:06:27,925 [DEBUG][       Thread-254238][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 12:06:27,940 [DEBUG][       Thread-254238][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 12:06:27,940 [ INFO][       Thread-254238][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 12:06:27,947 [DEBUG][       Thread-254238][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 12:06:27,947 [DEBUG][       Thread-254238][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 12:06:27,947 [DEBUG][       Thread-254238][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 12:06:27,947 [DEBUG][       Thread-254238][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:06:27,947 [DEBUG][       Thread-254238][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:06:27,948 [DEBUG][       Thread-254238][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:06:27,948 [DEBUG][       Thread-254238][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:06:27,948 [DEBUG][       Thread-254238][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 12:06:27,948 [DEBUG][       Thread-254238][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 12:06:27,948 [DEBUG][       Thread-254238][   transport.py][1871] : client lang: <none>
2025-06-13 12:06:27,948 [DEBUG][       Thread-254238][   transport.py][1871] : server lang: <none>
2025-06-13 12:06:27,948 [DEBUG][       Thread-254238][   transport.py][1871] : kex follows: False
2025-06-13 12:06:27,948 [DEBUG][       Thread-254238][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 12:06:27,948 [DEBUG][       Thread-254238][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 12:06:27,948 [DEBUG][       Thread-254238][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 12:06:27,948 [DEBUG][       Thread-254238][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 12:06:27,948 [DEBUG][       Thread-254238][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 12:06:27,948 [DEBUG][       Thread-254238][   transport.py][1871] : Compression: none
2025-06-13 12:06:27,948 [DEBUG][       Thread-254238][   transport.py][1871] : === End of kex handshake ===
2025-06-13 12:06:28,003 [DEBUG][       Thread-254238][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 12:06:28,004 [DEBUG][       Thread-254238][   transport.py][1871] : Switch to new keys ...
2025-06-13 12:06:28,004 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 12:06:28,005 [DEBUG][       Thread-254238][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 12:06:28,006 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 12:06:28,064 [DEBUG][       Thread-254238][   transport.py][1871] : userauth is OK
2025-06-13 12:06:28,064 [DEBUG][       Thread-254238][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 12:06:28,064 [DEBUG][       Thread-254238][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 12:06:28,064 [DEBUG][       Thread-254238][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 12:06:28,064 [DEBUG][       Thread-254238][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 12:06:28,084 [ INFO][       Thread-254238][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 12:06:28,084 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 12:06:28,084 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 12:06:29,098 [DEBUG][       Thread-254238][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 12:06:29,099 [DEBUG][       Thread-254238][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 12:06:29,150 [DEBUG][       Thread-254238][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 12:06:29,150 [DEBUG][       Thread-254238][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 12:06:29,160 [DEBUG][       Thread-254238][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 12:06:29,169 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 12:06:29,170 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 12:06:29,181 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 12:06:29,193 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 12:06:29,193 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 12:06:29,194 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 12:06:29,205 [DEBUG][       Thread-254238][   transport.py][1871] : EOF in transport thread
2025-06-13 12:06:34,596 [DEBUG][Thread-254240 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:06:39,204 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 12:06:39,204 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 12:06:39,204 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 12:06:39,205 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 12:06:39,647 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 12, 6, 19), 12.78, 41.3, 0.0, 17.93, 11.61, 0, 0, 0, 2, 0, 0),)
2025-06-13 12:06:39,648 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 12:06:19
2025-06-13 12:06:39,729 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 12:06:39,736 [DEBUG][       Thread-254241][   transport.py][1871] : starting thread (client mode): 0x867b62f0
2025-06-13 12:06:39,736 [DEBUG][       Thread-254241][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 12:06:39,756 [DEBUG][       Thread-254241][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 12:06:39,756 [ INFO][       Thread-254241][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 12:06:39,759 [DEBUG][       Thread-254241][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 12:06:39,759 [DEBUG][       Thread-254241][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 12:06:39,759 [DEBUG][       Thread-254241][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 12:06:39,760 [DEBUG][       Thread-254241][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:06:39,760 [DEBUG][       Thread-254241][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:06:39,760 [DEBUG][       Thread-254241][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:06:39,760 [DEBUG][       Thread-254241][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:06:39,760 [DEBUG][       Thread-254241][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 12:06:39,760 [DEBUG][       Thread-254241][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 12:06:39,760 [DEBUG][       Thread-254241][   transport.py][1871] : client lang: <none>
2025-06-13 12:06:39,760 [DEBUG][       Thread-254241][   transport.py][1871] : server lang: <none>
2025-06-13 12:06:39,760 [DEBUG][       Thread-254241][   transport.py][1871] : kex follows: False
2025-06-13 12:06:39,760 [DEBUG][       Thread-254241][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 12:06:39,760 [DEBUG][       Thread-254241][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 12:06:39,760 [DEBUG][       Thread-254241][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 12:06:39,760 [DEBUG][       Thread-254241][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 12:06:39,760 [DEBUG][       Thread-254241][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 12:06:39,760 [DEBUG][       Thread-254241][   transport.py][1871] : Compression: none
2025-06-13 12:06:39,760 [DEBUG][       Thread-254241][   transport.py][1871] : === End of kex handshake ===
2025-06-13 12:06:39,777 [DEBUG][       Thread-254241][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 12:06:39,777 [DEBUG][       Thread-254241][   transport.py][1871] : Switch to new keys ...
2025-06-13 12:06:39,778 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 12:06:39,778 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 12:06:39,779 [DEBUG][       Thread-254241][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 12:06:39,779 [DEBUG][       Thread-254241][   transport.py][1871] : userauth is OK
2025-06-13 12:06:39,792 [ INFO][       Thread-254241][   transport.py][1871] : Authentication (password) successful!
2025-06-13 12:06:39,793 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 12:06:40,414 [DEBUG][       Thread-254241][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 12:06:40,414 [DEBUG][       Thread-254241][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 12:06:40,457 [DEBUG][       Thread-254241][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 12:06:40,457 [DEBUG][       Thread-254241][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 12:06:40,461 [DEBUG][       Thread-254241][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 12:06:40,475 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 12:06:40,475 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 12:06:40,477 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 12:06:40,479 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 12:06:40,485 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 12:06:40,487 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 12:06:40,488 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 12:06:40,488 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 12:06:40,489 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.420772 -999.00  +11.40  20.69     44   -0.20 1 1 1 1 1   888    0 12.35 49.76 ----- 25.6 20.7 52.2 21.9 15.8 -28.0 14.4 -29.9 13.9 -29.5 15.3 -26.2
2025-06-13 12:06:40,489 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 12:06:40,489 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 12:06:40,489 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.420772
2025-06-13 12:06:40,489 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 12:06:40,490 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 12:06:40,490 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 12:06:40,490 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 12:06:40,490 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 12:06:40,490 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T12:06:19', tmtdew=12.78, humidity=41.3, cloud=0.0, wind=17.93, temperature=11.61, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T10:05:54.701', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 12:06:40,491 [DEBUG][       Thread-254241][   transport.py][1871] : EOF in transport thread
2025-06-13 12:06:40,492 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:06:40,493 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:06:40,574 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 12:06:40,586 [DEBUG][       Thread-254244][   transport.py][1871] : starting thread (client mode): 0x863a4970
2025-06-13 12:06:40,586 [DEBUG][       Thread-254244][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 12:06:40,602 [DEBUG][       Thread-254244][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 12:06:40,602 [ INFO][       Thread-254244][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 12:06:40,609 [DEBUG][       Thread-254244][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 12:06:40,610 [DEBUG][       Thread-254244][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 12:06:40,610 [DEBUG][       Thread-254244][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 12:06:40,610 [DEBUG][       Thread-254244][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:06:40,610 [DEBUG][       Thread-254244][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:06:40,610 [DEBUG][       Thread-254244][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:06:40,610 [DEBUG][       Thread-254244][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:06:40,610 [DEBUG][       Thread-254244][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 12:06:40,610 [DEBUG][       Thread-254244][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 12:06:40,610 [DEBUG][       Thread-254244][   transport.py][1871] : client lang: <none>
2025-06-13 12:06:40,610 [DEBUG][       Thread-254244][   transport.py][1871] : server lang: <none>
2025-06-13 12:06:40,610 [DEBUG][       Thread-254244][   transport.py][1871] : kex follows: False
2025-06-13 12:06:40,610 [DEBUG][       Thread-254244][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 12:06:40,610 [DEBUG][       Thread-254244][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 12:06:40,610 [DEBUG][       Thread-254244][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 12:06:40,610 [DEBUG][       Thread-254244][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 12:06:40,610 [DEBUG][       Thread-254244][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 12:06:40,610 [DEBUG][       Thread-254244][   transport.py][1871] : Compression: none
2025-06-13 12:06:40,610 [DEBUG][       Thread-254244][   transport.py][1871] : === End of kex handshake ===
2025-06-13 12:06:40,672 [DEBUG][       Thread-254244][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 12:06:40,673 [DEBUG][       Thread-254244][   transport.py][1871] : Switch to new keys ...
2025-06-13 12:06:40,673 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 12:06:40,674 [DEBUG][       Thread-254244][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 12:06:40,674 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 12:06:40,732 [DEBUG][       Thread-254244][   transport.py][1871] : userauth is OK
2025-06-13 12:06:40,733 [DEBUG][       Thread-254244][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 12:06:40,733 [DEBUG][       Thread-254244][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 12:06:40,733 [DEBUG][       Thread-254244][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 12:06:40,733 [DEBUG][       Thread-254244][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 12:06:40,752 [ INFO][       Thread-254244][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 12:06:40,752 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 12:06:40,753 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 12:06:41,807 [DEBUG][       Thread-254244][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 12:06:41,808 [DEBUG][       Thread-254244][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 12:06:41,856 [DEBUG][       Thread-254244][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 12:06:41,856 [DEBUG][       Thread-254244][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 12:06:41,866 [DEBUG][       Thread-254244][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 12:06:41,875 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 12:06:41,875 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 12:06:41,884 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 12:06:41,894 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 12:06:41,894 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 12:06:41,895 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 12:06:41,903 [DEBUG][       Thread-254244][   transport.py][1871] : EOF in transport thread
2025-06-13 12:06:43,631 [DEBUG][Thread-254246 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:06:51,904 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 12:06:51,904 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 12:06:51,904 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 12:06:51,904 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 12:06:52,391 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 12, 6, 19), 12.78, 41.3, 0.0, 17.93, 11.61, 0, 0, 0, 2, 0, 0),)
2025-06-13 12:06:52,391 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 12:06:19
2025-06-13 12:06:52,494 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 12:06:52,498 [DEBUG][       Thread-254247][   transport.py][1871] : starting thread (client mode): 0x867b7910
2025-06-13 12:06:52,498 [DEBUG][       Thread-254247][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 12:06:52,518 [DEBUG][       Thread-254247][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 12:06:52,518 [ INFO][       Thread-254247][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 12:06:52,520 [DEBUG][       Thread-254247][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 12:06:52,520 [DEBUG][       Thread-254247][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 12:06:52,520 [DEBUG][       Thread-254247][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 12:06:52,520 [DEBUG][       Thread-254247][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:06:52,520 [DEBUG][       Thread-254247][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:06:52,520 [DEBUG][       Thread-254247][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:06:52,520 [DEBUG][       Thread-254247][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:06:52,520 [DEBUG][       Thread-254247][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 12:06:52,520 [DEBUG][       Thread-254247][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 12:06:52,520 [DEBUG][       Thread-254247][   transport.py][1871] : client lang: <none>
2025-06-13 12:06:52,520 [DEBUG][       Thread-254247][   transport.py][1871] : server lang: <none>
2025-06-13 12:06:52,520 [DEBUG][       Thread-254247][   transport.py][1871] : kex follows: False
2025-06-13 12:06:52,520 [DEBUG][       Thread-254247][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 12:06:52,520 [DEBUG][       Thread-254247][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 12:06:52,520 [DEBUG][       Thread-254247][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 12:06:52,520 [DEBUG][       Thread-254247][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 12:06:52,520 [DEBUG][       Thread-254247][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 12:06:52,520 [DEBUG][       Thread-254247][   transport.py][1871] : Compression: none
2025-06-13 12:06:52,520 [DEBUG][       Thread-254247][   transport.py][1871] : === End of kex handshake ===
2025-06-13 12:06:52,537 [DEBUG][       Thread-254247][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 12:06:52,538 [DEBUG][       Thread-254247][   transport.py][1871] : Switch to new keys ...
2025-06-13 12:06:52,538 [DEBUG][       Thread-254247][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 12:06:52,538 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 12:06:52,538 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 12:06:52,538 [DEBUG][       Thread-254247][   transport.py][1871] : userauth is OK
2025-06-13 12:06:52,562 [ INFO][       Thread-254247][   transport.py][1871] : Authentication (password) successful!
2025-06-13 12:06:52,562 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 12:06:52,648 [DEBUG][Thread-254249 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:06:53,210 [DEBUG][       Thread-254247][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 12:06:53,210 [DEBUG][       Thread-254247][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 12:06:53,256 [DEBUG][       Thread-254247][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 12:06:53,256 [DEBUG][       Thread-254247][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 12:06:53,259 [DEBUG][       Thread-254247][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 12:06:53,272 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 12:06:53,272 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 12:06:53,273 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 12:06:53,274 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 12:06:53,278 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 12:06:53,279 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 12:06:53,279 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 12:06:53,279 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 12:06:53,279 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.421119 -999.00  +11.30  27.04     45   +0.00 1 1 1 1 1   888    0 12.24 47.25 ----- 25.6 27.0 54.4 30.6 15.7 -28.0 14.4 -30.9 13.9 -28.9 15.2 -27.0
2025-06-13 12:06:53,279 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 12:06:53,279 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 12:06:53,279 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.421119
2025-06-13 12:06:53,279 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 12:06:53,279 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 12:06:53,279 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 12:06:53,279 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 12:06:53,279 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 12:06:53,279 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T12:06:19', tmtdew=12.78, humidity=41.3, cloud=0.0, wind=17.93, temperature=11.61, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T10:06:24.682', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 12:06:53,280 [DEBUG][       Thread-254247][   transport.py][1871] : EOF in transport thread
2025-06-13 12:06:53,354 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 12:06:53,365 [DEBUG][       Thread-254251][   transport.py][1871] : starting thread (client mode): 0x867b5f90
2025-06-13 12:06:53,365 [DEBUG][       Thread-254251][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 12:06:53,383 [DEBUG][       Thread-254251][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 12:06:53,383 [ INFO][       Thread-254251][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 12:06:53,391 [DEBUG][       Thread-254251][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 12:06:53,392 [DEBUG][       Thread-254251][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 12:06:53,392 [DEBUG][       Thread-254251][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 12:06:53,392 [DEBUG][       Thread-254251][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:06:53,392 [DEBUG][       Thread-254251][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:06:53,392 [DEBUG][       Thread-254251][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:06:53,392 [DEBUG][       Thread-254251][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:06:53,392 [DEBUG][       Thread-254251][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 12:06:53,392 [DEBUG][       Thread-254251][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 12:06:53,392 [DEBUG][       Thread-254251][   transport.py][1871] : client lang: <none>
2025-06-13 12:06:53,392 [DEBUG][       Thread-254251][   transport.py][1871] : server lang: <none>
2025-06-13 12:06:53,392 [DEBUG][       Thread-254251][   transport.py][1871] : kex follows: False
2025-06-13 12:06:53,392 [DEBUG][       Thread-254251][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 12:06:53,392 [DEBUG][       Thread-254251][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 12:06:53,392 [DEBUG][       Thread-254251][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 12:06:53,392 [DEBUG][       Thread-254251][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 12:06:53,392 [DEBUG][       Thread-254251][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 12:06:53,392 [DEBUG][       Thread-254251][   transport.py][1871] : Compression: none
2025-06-13 12:06:53,392 [DEBUG][       Thread-254251][   transport.py][1871] : === End of kex handshake ===
2025-06-13 12:06:53,450 [DEBUG][       Thread-254251][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 12:06:53,450 [DEBUG][       Thread-254251][   transport.py][1871] : Switch to new keys ...
2025-06-13 12:06:53,450 [DEBUG][       Thread-254251][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 12:06:53,450 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 12:06:53,450 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 12:06:53,514 [DEBUG][       Thread-254251][   transport.py][1871] : userauth is OK
2025-06-13 12:06:53,514 [DEBUG][       Thread-254251][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 12:06:53,514 [DEBUG][       Thread-254251][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 12:06:53,514 [DEBUG][       Thread-254251][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 12:06:53,514 [DEBUG][       Thread-254251][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 12:06:53,528 [ INFO][       Thread-254251][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 12:06:53,528 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 12:06:53,528 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 12:06:54,550 [DEBUG][       Thread-254251][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 12:06:54,550 [DEBUG][       Thread-254251][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 12:06:54,601 [DEBUG][       Thread-254251][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 12:06:54,601 [DEBUG][       Thread-254251][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 12:06:54,610 [DEBUG][       Thread-254251][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 12:06:54,619 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 12:06:54,619 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 12:06:54,628 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 12:06:54,637 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 12:06:54,638 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 12:06:54,638 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 12:06:54,646 [DEBUG][       Thread-254251][   transport.py][1871] : EOF in transport thread
2025-06-13 12:07:01,671 [DEBUG][Thread-254253 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:07:03,632 [DEBUG][Thread-254254 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:07:04,649 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 12:07:04,649 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 12:07:04,649 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 12:07:04,652 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 12:07:04,706 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:07:04,707 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:07:05,096 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 12, 6, 51), 12.88, 41.02, 0.0, 16.27, 11.69, 0, 0, 0, 2, 0, 0),)
2025-06-13 12:07:05,096 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 12:06:51
2025-06-13 12:07:05,177 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 12:07:05,182 [DEBUG][       Thread-254255][   transport.py][1871] : starting thread (client mode): 0x867b5690
2025-06-13 12:07:05,183 [DEBUG][       Thread-254255][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 12:07:05,203 [DEBUG][       Thread-254255][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 12:07:05,203 [ INFO][       Thread-254255][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 12:07:05,207 [DEBUG][       Thread-254255][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 12:07:05,207 [DEBUG][       Thread-254255][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 12:07:05,207 [DEBUG][       Thread-254255][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 12:07:05,207 [DEBUG][       Thread-254255][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:07:05,207 [DEBUG][       Thread-254255][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:07:05,207 [DEBUG][       Thread-254255][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:07:05,207 [DEBUG][       Thread-254255][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:07:05,208 [DEBUG][       Thread-254255][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 12:07:05,208 [DEBUG][       Thread-254255][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 12:07:05,208 [DEBUG][       Thread-254255][   transport.py][1871] : client lang: <none>
2025-06-13 12:07:05,208 [DEBUG][       Thread-254255][   transport.py][1871] : server lang: <none>
2025-06-13 12:07:05,208 [DEBUG][       Thread-254255][   transport.py][1871] : kex follows: False
2025-06-13 12:07:05,208 [DEBUG][       Thread-254255][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 12:07:05,208 [DEBUG][       Thread-254255][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 12:07:05,208 [DEBUG][       Thread-254255][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 12:07:05,208 [DEBUG][       Thread-254255][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 12:07:05,208 [DEBUG][       Thread-254255][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 12:07:05,208 [DEBUG][       Thread-254255][   transport.py][1871] : Compression: none
2025-06-13 12:07:05,208 [DEBUG][       Thread-254255][   transport.py][1871] : === End of kex handshake ===
2025-06-13 12:07:05,226 [DEBUG][       Thread-254255][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 12:07:05,227 [DEBUG][       Thread-254255][   transport.py][1871] : Switch to new keys ...
2025-06-13 12:07:05,227 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 12:07:05,227 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 12:07:05,228 [DEBUG][       Thread-254255][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 12:07:05,229 [DEBUG][       Thread-254255][   transport.py][1871] : userauth is OK
2025-06-13 12:07:05,254 [ INFO][       Thread-254255][   transport.py][1871] : Authentication (password) successful!
2025-06-13 12:07:05,254 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 12:07:05,872 [DEBUG][       Thread-254255][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 12:07:05,873 [DEBUG][       Thread-254255][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 12:07:05,917 [DEBUG][       Thread-254255][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 12:07:05,917 [DEBUG][       Thread-254255][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 12:07:05,920 [DEBUG][       Thread-254255][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 12:07:05,933 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 12:07:05,933 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 12:07:05,935 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 12:07:05,937 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 12:07:05,944 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 12:07:05,946 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 12:07:05,947 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 12:07:05,947 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 12:07:05,947 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.421119 -999.00  +11.30  27.04     45   +0.00 1 1 1 1 1   888    0 12.24 47.25 ----- 25.6 27.0 54.4 30.6 15.7 -28.0 14.4 -30.9 13.9 -28.9 15.2 -27.0
2025-06-13 12:07:05,948 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 12:07:05,948 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 12:07:05,948 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.421119
2025-06-13 12:07:05,948 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 12:07:05,949 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 12:07:05,949 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 12:07:05,949 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 12:07:05,949 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 12:07:05,949 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T12:06:51', tmtdew=12.88, humidity=41.02, cloud=0.0, wind=16.27, temperature=11.69, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T10:06:24.682', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 12:07:05,950 [DEBUG][       Thread-254255][   transport.py][1871] : EOF in transport thread
2025-06-13 12:07:06,034 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 12:07:06,048 [DEBUG][       Thread-254258][   transport.py][1871] : starting thread (client mode): 0x863a7d30
2025-06-13 12:07:06,048 [DEBUG][       Thread-254258][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 12:07:06,066 [DEBUG][       Thread-254258][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 12:07:06,067 [ INFO][       Thread-254258][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 12:07:06,077 [DEBUG][       Thread-254258][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 12:07:06,077 [DEBUG][       Thread-254258][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 12:07:06,077 [DEBUG][       Thread-254258][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 12:07:06,077 [DEBUG][       Thread-254258][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:07:06,077 [DEBUG][       Thread-254258][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:07:06,077 [DEBUG][       Thread-254258][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:07:06,077 [DEBUG][       Thread-254258][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:07:06,077 [DEBUG][       Thread-254258][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 12:07:06,077 [DEBUG][       Thread-254258][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 12:07:06,077 [DEBUG][       Thread-254258][   transport.py][1871] : client lang: <none>
2025-06-13 12:07:06,077 [DEBUG][       Thread-254258][   transport.py][1871] : server lang: <none>
2025-06-13 12:07:06,077 [DEBUG][       Thread-254258][   transport.py][1871] : kex follows: False
2025-06-13 12:07:06,078 [DEBUG][       Thread-254258][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 12:07:06,078 [DEBUG][       Thread-254258][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 12:07:06,078 [DEBUG][       Thread-254258][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 12:07:06,078 [DEBUG][       Thread-254258][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 12:07:06,078 [DEBUG][       Thread-254258][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 12:07:06,078 [DEBUG][       Thread-254258][   transport.py][1871] : Compression: none
2025-06-13 12:07:06,078 [DEBUG][       Thread-254258][   transport.py][1871] : === End of kex handshake ===
2025-06-13 12:07:06,132 [DEBUG][       Thread-254258][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 12:07:06,133 [DEBUG][       Thread-254258][   transport.py][1871] : Switch to new keys ...
2025-06-13 12:07:06,134 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 12:07:06,134 [DEBUG][       Thread-254258][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 12:07:06,135 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 12:07:06,192 [DEBUG][       Thread-254258][   transport.py][1871] : userauth is OK
2025-06-13 12:07:06,193 [DEBUG][       Thread-254258][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 12:07:06,193 [DEBUG][       Thread-254258][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 12:07:06,193 [DEBUG][       Thread-254258][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 12:07:06,193 [DEBUG][       Thread-254258][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 12:07:06,212 [ INFO][       Thread-254258][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 12:07:06,212 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 12:07:06,213 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 12:07:07,284 [DEBUG][       Thread-254258][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 12:07:07,284 [DEBUG][       Thread-254258][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 12:07:07,338 [DEBUG][       Thread-254258][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 12:07:07,338 [DEBUG][       Thread-254258][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 12:07:07,350 [DEBUG][       Thread-254258][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 12:07:07,361 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 12:07:07,362 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 12:07:07,371 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 12:07:07,382 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 12:07:07,382 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 12:07:07,383 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 12:07:07,393 [DEBUG][       Thread-254258][   transport.py][1871] : EOF in transport thread
2025-06-13 12:07:10,693 [DEBUG][Thread-254260 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:07:11,197 [DEBUG][Thread-254261 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:07:17,386 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 12:07:17,387 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 12:07:17,387 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 12:07:17,390 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 12:07:17,837 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 12, 6, 51), 12.88, 41.02, 0.0, 16.27, 11.69, 0, 0, 0, 2, 0, 0),)
2025-06-13 12:07:17,837 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 12:06:51
2025-06-13 12:07:17,919 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 12:07:17,925 [DEBUG][       Thread-254262][   transport.py][1871] : starting thread (client mode): 0x863a61a0
2025-06-13 12:07:17,925 [DEBUG][       Thread-254262][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 12:07:17,946 [DEBUG][       Thread-254262][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 12:07:17,946 [ INFO][       Thread-254262][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 12:07:17,949 [DEBUG][       Thread-254262][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 12:07:17,949 [DEBUG][       Thread-254262][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 12:07:17,949 [DEBUG][       Thread-254262][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 12:07:17,949 [DEBUG][       Thread-254262][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:07:17,949 [DEBUG][       Thread-254262][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:07:17,949 [DEBUG][       Thread-254262][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:07:17,949 [DEBUG][       Thread-254262][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:07:17,949 [DEBUG][       Thread-254262][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 12:07:17,949 [DEBUG][       Thread-254262][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 12:07:17,949 [DEBUG][       Thread-254262][   transport.py][1871] : client lang: <none>
2025-06-13 12:07:17,949 [DEBUG][       Thread-254262][   transport.py][1871] : server lang: <none>
2025-06-13 12:07:17,949 [DEBUG][       Thread-254262][   transport.py][1871] : kex follows: False
2025-06-13 12:07:17,949 [DEBUG][       Thread-254262][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 12:07:17,949 [DEBUG][       Thread-254262][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 12:07:17,949 [DEBUG][       Thread-254262][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 12:07:17,949 [DEBUG][       Thread-254262][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 12:07:17,949 [DEBUG][       Thread-254262][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 12:07:17,949 [DEBUG][       Thread-254262][   transport.py][1871] : Compression: none
2025-06-13 12:07:17,949 [DEBUG][       Thread-254262][   transport.py][1871] : === End of kex handshake ===
2025-06-13 12:07:17,962 [DEBUG][       Thread-254262][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 12:07:17,962 [DEBUG][       Thread-254262][   transport.py][1871] : Switch to new keys ...
2025-06-13 12:07:17,963 [DEBUG][       Thread-254262][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 12:07:17,963 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 12:07:17,963 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 12:07:17,965 [DEBUG][       Thread-254262][   transport.py][1871] : userauth is OK
2025-06-13 12:07:17,992 [ INFO][       Thread-254262][   transport.py][1871] : Authentication (password) successful!
2025-06-13 12:07:17,993 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 12:07:18,572 [DEBUG][       Thread-254262][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 12:07:18,572 [DEBUG][       Thread-254262][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 12:07:18,613 [DEBUG][       Thread-254262][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 12:07:18,613 [DEBUG][       Thread-254262][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 12:07:18,616 [DEBUG][       Thread-254262][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 12:07:18,627 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 12:07:18,628 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 12:07:18,630 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 12:07:18,631 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 12:07:18,638 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 12:07:18,642 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 12:07:18,643 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 12:07:18,643 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 12:07:18,644 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.421466 -999.00  +11.20  22.45     45   +0.00 1 1 1 1 1   888    0 12.19 46.05 ----- 21.9 22.4 60.6 27.0 15.6 -28.2 14.2 -30.2 13.9 -28.3 15.3 -27.0
2025-06-13 12:07:18,644 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 12:07:18,644 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 12:07:18,644 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.421466
2025-06-13 12:07:18,644 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 12:07:18,645 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 12:07:18,645 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 12:07:18,645 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 12:07:18,645 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 12:07:18,645 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T12:06:51', tmtdew=12.88, humidity=41.02, cloud=0.0, wind=16.27, temperature=11.69, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T10:06:54.662', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 12:07:18,647 [DEBUG][       Thread-254262][   transport.py][1871] : EOF in transport thread
2025-06-13 12:07:18,729 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 12:07:18,744 [DEBUG][       Thread-254265][   transport.py][1871] : starting thread (client mode): 0x867b56c0
2025-06-13 12:07:18,744 [DEBUG][       Thread-254265][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 12:07:18,759 [DEBUG][       Thread-254265][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 12:07:18,759 [ INFO][       Thread-254265][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 12:07:18,767 [DEBUG][       Thread-254265][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 12:07:18,767 [DEBUG][       Thread-254265][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 12:07:18,767 [DEBUG][       Thread-254265][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 12:07:18,767 [DEBUG][       Thread-254265][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:07:18,767 [DEBUG][       Thread-254265][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:07:18,767 [DEBUG][       Thread-254265][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:07:18,767 [DEBUG][       Thread-254265][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:07:18,767 [DEBUG][       Thread-254265][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 12:07:18,767 [DEBUG][       Thread-254265][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 12:07:18,767 [DEBUG][       Thread-254265][   transport.py][1871] : client lang: <none>
2025-06-13 12:07:18,767 [DEBUG][       Thread-254265][   transport.py][1871] : server lang: <none>
2025-06-13 12:07:18,767 [DEBUG][       Thread-254265][   transport.py][1871] : kex follows: False
2025-06-13 12:07:18,767 [DEBUG][       Thread-254265][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 12:07:18,767 [DEBUG][       Thread-254265][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 12:07:18,767 [DEBUG][       Thread-254265][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 12:07:18,768 [DEBUG][       Thread-254265][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 12:07:18,768 [DEBUG][       Thread-254265][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 12:07:18,768 [DEBUG][       Thread-254265][   transport.py][1871] : Compression: none
2025-06-13 12:07:18,768 [DEBUG][       Thread-254265][   transport.py][1871] : === End of kex handshake ===
2025-06-13 12:07:18,825 [DEBUG][       Thread-254265][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 12:07:18,826 [DEBUG][       Thread-254265][   transport.py][1871] : Switch to new keys ...
2025-06-13 12:07:18,827 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 12:07:18,827 [DEBUG][       Thread-254265][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 12:07:18,828 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 12:07:18,887 [DEBUG][       Thread-254265][   transport.py][1871] : userauth is OK
2025-06-13 12:07:18,888 [DEBUG][       Thread-254265][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 12:07:18,888 [DEBUG][       Thread-254265][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 12:07:18,888 [DEBUG][       Thread-254265][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 12:07:18,888 [DEBUG][       Thread-254265][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 12:07:18,912 [ INFO][       Thread-254265][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 12:07:18,912 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 12:07:18,912 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 12:07:19,726 [DEBUG][Thread-254267 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:07:19,948 [DEBUG][       Thread-254265][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 12:07:19,948 [DEBUG][       Thread-254265][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 12:07:20,001 [DEBUG][       Thread-254265][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 12:07:20,001 [DEBUG][       Thread-254265][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 12:07:20,013 [DEBUG][       Thread-254265][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 12:07:20,025 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 12:07:20,026 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 12:07:20,036 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 12:07:20,047 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 12:07:20,048 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 12:07:20,048 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 12:07:20,059 [DEBUG][       Thread-254265][   transport.py][1871] : EOF in transport thread
2025-06-13 12:07:28,743 [DEBUG][Thread-254268 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:07:30,056 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 12:07:30,056 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 12:07:30,056 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 12:07:30,057 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 12:07:30,520 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 12, 7, 23), 12.97, 40.67, 0.0, 15.55, 11.73, 0, 0, 0, 2, 0, 0),)
2025-06-13 12:07:30,520 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 12:07:23
2025-06-13 12:07:30,605 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 12:07:30,609 [DEBUG][       Thread-254269][   transport.py][1871] : starting thread (client mode): 0x867b7340
2025-06-13 12:07:30,609 [DEBUG][       Thread-254269][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 12:07:30,631 [DEBUG][       Thread-254269][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 12:07:30,631 [ INFO][       Thread-254269][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 12:07:30,634 [DEBUG][       Thread-254269][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 12:07:30,634 [DEBUG][       Thread-254269][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 12:07:30,634 [DEBUG][       Thread-254269][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 12:07:30,634 [DEBUG][       Thread-254269][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:07:30,634 [DEBUG][       Thread-254269][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:07:30,634 [DEBUG][       Thread-254269][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:07:30,634 [DEBUG][       Thread-254269][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:07:30,634 [DEBUG][       Thread-254269][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 12:07:30,634 [DEBUG][       Thread-254269][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 12:07:30,634 [DEBUG][       Thread-254269][   transport.py][1871] : client lang: <none>
2025-06-13 12:07:30,634 [DEBUG][       Thread-254269][   transport.py][1871] : server lang: <none>
2025-06-13 12:07:30,634 [DEBUG][       Thread-254269][   transport.py][1871] : kex follows: False
2025-06-13 12:07:30,634 [DEBUG][       Thread-254269][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 12:07:30,634 [DEBUG][       Thread-254269][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 12:07:30,634 [DEBUG][       Thread-254269][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 12:07:30,634 [DEBUG][       Thread-254269][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 12:07:30,634 [DEBUG][       Thread-254269][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 12:07:30,634 [DEBUG][       Thread-254269][   transport.py][1871] : Compression: none
2025-06-13 12:07:30,634 [DEBUG][       Thread-254269][   transport.py][1871] : === End of kex handshake ===
2025-06-13 12:07:30,649 [DEBUG][       Thread-254269][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 12:07:30,649 [DEBUG][       Thread-254269][   transport.py][1871] : Switch to new keys ...
2025-06-13 12:07:30,649 [DEBUG][       Thread-254269][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 12:07:30,649 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 12:07:30,649 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 12:07:30,650 [DEBUG][       Thread-254269][   transport.py][1871] : userauth is OK
2025-06-13 12:07:30,663 [ INFO][       Thread-254269][   transport.py][1871] : Authentication (password) successful!
2025-06-13 12:07:30,663 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 12:07:33,093 [DEBUG][       Thread-254269][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 12:07:33,093 [DEBUG][       Thread-254269][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 12:07:33,137 [DEBUG][       Thread-254269][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 12:07:33,137 [DEBUG][       Thread-254269][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 12:07:33,141 [DEBUG][       Thread-254269][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 12:07:33,153 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 12:07:33,153 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 12:07:33,156 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 12:07:33,157 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 12:07:33,164 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 12:07:33,166 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 12:07:33,166 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 12:07:33,167 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 12:07:33,167 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.421466 -999.00  +11.20  22.45     45   +0.00 1 1 1 1 1   888    0 12.19 46.05 ----- 21.9 22.4 60.6 27.0 15.6 -28.2 14.2 -30.2 13.9 -28.3 15.3 -27.0
2025-06-13 12:07:33,167 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 12:07:33,167 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 12:07:33,167 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.421466
2025-06-13 12:07:33,168 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 12:07:33,168 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 12:07:33,168 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 12:07:33,168 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 12:07:33,168 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 12:07:33,168 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T12:07:23', tmtdew=12.97, humidity=40.67, cloud=0.0, wind=15.55, temperature=11.73, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T10:06:54.662', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 12:07:33,169 [DEBUG][       Thread-254269][   transport.py][1871] : EOF in transport thread
2025-06-13 12:07:33,252 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 12:07:33,264 [DEBUG][       Thread-254272][   transport.py][1871] : starting thread (client mode): 0x863a55a0
2025-06-13 12:07:33,264 [DEBUG][       Thread-254272][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 12:07:33,286 [DEBUG][       Thread-254272][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 12:07:33,286 [ INFO][       Thread-254272][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 12:07:33,294 [DEBUG][       Thread-254272][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 12:07:33,294 [DEBUG][       Thread-254272][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 12:07:33,294 [DEBUG][       Thread-254272][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 12:07:33,295 [DEBUG][       Thread-254272][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:07:33,295 [DEBUG][       Thread-254272][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:07:33,295 [DEBUG][       Thread-254272][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:07:33,295 [DEBUG][       Thread-254272][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:07:33,295 [DEBUG][       Thread-254272][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 12:07:33,295 [DEBUG][       Thread-254272][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 12:07:33,295 [DEBUG][       Thread-254272][   transport.py][1871] : client lang: <none>
2025-06-13 12:07:33,295 [DEBUG][       Thread-254272][   transport.py][1871] : server lang: <none>
2025-06-13 12:07:33,295 [DEBUG][       Thread-254272][   transport.py][1871] : kex follows: False
2025-06-13 12:07:33,295 [DEBUG][       Thread-254272][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 12:07:33,295 [DEBUG][       Thread-254272][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 12:07:33,295 [DEBUG][       Thread-254272][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 12:07:33,295 [DEBUG][       Thread-254272][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 12:07:33,295 [DEBUG][       Thread-254272][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 12:07:33,295 [DEBUG][       Thread-254272][   transport.py][1871] : Compression: none
2025-06-13 12:07:33,295 [DEBUG][       Thread-254272][   transport.py][1871] : === End of kex handshake ===
2025-06-13 12:07:33,353 [DEBUG][       Thread-254272][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 12:07:33,354 [DEBUG][       Thread-254272][   transport.py][1871] : Switch to new keys ...
2025-06-13 12:07:33,354 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 12:07:33,355 [DEBUG][       Thread-254272][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 12:07:33,356 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 12:07:33,412 [DEBUG][       Thread-254272][   transport.py][1871] : userauth is OK
2025-06-13 12:07:33,412 [DEBUG][       Thread-254272][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 12:07:33,412 [DEBUG][       Thread-254272][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 12:07:33,413 [DEBUG][       Thread-254272][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 12:07:33,413 [DEBUG][       Thread-254272][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 12:07:33,431 [ INFO][       Thread-254272][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 12:07:33,432 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 12:07:33,432 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 12:07:34,461 [DEBUG][       Thread-254272][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 12:07:34,461 [DEBUG][       Thread-254272][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 12:07:34,521 [DEBUG][       Thread-254272][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 12:07:34,521 [DEBUG][       Thread-254272][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 12:07:34,533 [DEBUG][       Thread-254272][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 12:07:34,548 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 12:07:34,548 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 12:07:34,561 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 12:07:34,577 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 12:07:34,577 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 12:07:34,577 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 12:07:34,586 [DEBUG][       Thread-254272][   transport.py][1871] : EOF in transport thread
2025-06-13 12:07:37,762 [DEBUG][Thread-254274 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:07:40,628 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:07:40,630 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:07:44,588 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 12:07:44,588 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 12:07:44,588 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 12:07:44,589 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 12:07:45,034 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 12, 7, 23), 12.97, 40.67, 0.0, 15.55, 11.73, 0, 0, 0, 2, 0, 0),)
2025-06-13 12:07:45,034 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 12:07:23
2025-06-13 12:07:45,116 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 12:07:45,122 [DEBUG][       Thread-254275][   transport.py][1871] : starting thread (client mode): 0x863a43d0
2025-06-13 12:07:45,122 [DEBUG][       Thread-254275][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 12:07:45,133 [DEBUG][       Thread-254275][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 12:07:45,133 [ INFO][       Thread-254275][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 12:07:45,135 [DEBUG][       Thread-254275][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 12:07:45,135 [DEBUG][       Thread-254275][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 12:07:45,135 [DEBUG][       Thread-254275][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 12:07:45,135 [DEBUG][       Thread-254275][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:07:45,135 [DEBUG][       Thread-254275][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:07:45,135 [DEBUG][       Thread-254275][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:07:45,135 [DEBUG][       Thread-254275][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:07:45,135 [DEBUG][       Thread-254275][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 12:07:45,135 [DEBUG][       Thread-254275][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 12:07:45,135 [DEBUG][       Thread-254275][   transport.py][1871] : client lang: <none>
2025-06-13 12:07:45,135 [DEBUG][       Thread-254275][   transport.py][1871] : server lang: <none>
2025-06-13 12:07:45,135 [DEBUG][       Thread-254275][   transport.py][1871] : kex follows: False
2025-06-13 12:07:45,135 [DEBUG][       Thread-254275][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 12:07:45,135 [DEBUG][       Thread-254275][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 12:07:45,135 [DEBUG][       Thread-254275][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 12:07:45,135 [DEBUG][       Thread-254275][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 12:07:45,135 [DEBUG][       Thread-254275][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 12:07:45,135 [DEBUG][       Thread-254275][   transport.py][1871] : Compression: none
2025-06-13 12:07:45,135 [DEBUG][       Thread-254275][   transport.py][1871] : === End of kex handshake ===
2025-06-13 12:07:45,144 [DEBUG][       Thread-254275][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 12:07:45,144 [DEBUG][       Thread-254275][   transport.py][1871] : Switch to new keys ...
2025-06-13 12:07:45,145 [DEBUG][       Thread-254275][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 12:07:45,145 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 12:07:45,145 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 12:07:45,146 [DEBUG][       Thread-254275][   transport.py][1871] : userauth is OK
2025-06-13 12:07:45,170 [ INFO][       Thread-254275][   transport.py][1871] : Authentication (password) successful!
2025-06-13 12:07:45,170 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 12:07:45,783 [DEBUG][       Thread-254275][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 12:07:45,783 [DEBUG][       Thread-254275][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 12:07:45,825 [DEBUG][       Thread-254275][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 12:07:45,825 [DEBUG][       Thread-254275][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 12:07:45,828 [DEBUG][       Thread-254275][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 12:07:45,840 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 12:07:45,841 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 12:07:45,843 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 12:07:45,845 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 12:07:45,851 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 12:07:45,853 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 12:07:45,853 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 12:07:45,854 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 12:07:45,854 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.421466 -999.00  +11.20  22.45     45   +0.00 1 1 1 1 1   888    0 12.19 46.05 ----- 21.9 22.4 60.6 27.0 15.6 -28.2 14.2 -30.2 13.9 -28.3 15.3 -27.0
2025-06-13 12:07:45,854 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 12:07:45,854 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 12:07:45,854 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.421466
2025-06-13 12:07:45,854 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 12:07:45,855 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 12:07:45,855 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 12:07:45,855 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 12:07:45,855 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 12:07:45,855 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T12:07:23', tmtdew=12.97, humidity=40.67, cloud=0.0, wind=15.55, temperature=11.73, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T10:06:54.662', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 12:07:45,855 [DEBUG][       Thread-254275][   transport.py][1871] : EOF in transport thread
2025-06-13 12:07:45,940 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 12:07:45,952 [DEBUG][       Thread-254278][   transport.py][1871] : starting thread (client mode): 0x867b7f40
2025-06-13 12:07:45,952 [DEBUG][       Thread-254278][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 12:07:45,971 [DEBUG][       Thread-254278][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 12:07:45,971 [ INFO][       Thread-254278][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 12:07:45,979 [DEBUG][       Thread-254278][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 12:07:45,979 [DEBUG][       Thread-254278][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 12:07:45,979 [DEBUG][       Thread-254278][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 12:07:45,979 [DEBUG][       Thread-254278][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:07:45,979 [DEBUG][       Thread-254278][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:07:45,979 [DEBUG][       Thread-254278][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:07:45,979 [DEBUG][       Thread-254278][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:07:45,980 [DEBUG][       Thread-254278][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 12:07:45,980 [DEBUG][       Thread-254278][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 12:07:45,980 [DEBUG][       Thread-254278][   transport.py][1871] : client lang: <none>
2025-06-13 12:07:45,980 [DEBUG][       Thread-254278][   transport.py][1871] : server lang: <none>
2025-06-13 12:07:45,980 [DEBUG][       Thread-254278][   transport.py][1871] : kex follows: False
2025-06-13 12:07:45,980 [DEBUG][       Thread-254278][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 12:07:45,980 [DEBUG][       Thread-254278][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 12:07:45,980 [DEBUG][       Thread-254278][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 12:07:45,980 [DEBUG][       Thread-254278][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 12:07:45,980 [DEBUG][       Thread-254278][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 12:07:45,980 [DEBUG][       Thread-254278][   transport.py][1871] : Compression: none
2025-06-13 12:07:45,980 [DEBUG][       Thread-254278][   transport.py][1871] : === End of kex handshake ===
2025-06-13 12:07:46,035 [DEBUG][       Thread-254278][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 12:07:46,036 [DEBUG][       Thread-254278][   transport.py][1871] : Switch to new keys ...
2025-06-13 12:07:46,036 [DEBUG][       Thread-254278][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 12:07:46,036 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 12:07:46,037 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 12:07:46,093 [DEBUG][       Thread-254278][   transport.py][1871] : userauth is OK
2025-06-13 12:07:46,093 [DEBUG][       Thread-254278][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 12:07:46,093 [DEBUG][       Thread-254278][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 12:07:46,093 [DEBUG][       Thread-254278][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 12:07:46,093 [DEBUG][       Thread-254278][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 12:07:46,112 [ INFO][       Thread-254278][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 12:07:46,112 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 12:07:46,113 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 12:07:46,795 [DEBUG][Thread-254280 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:07:47,127 [DEBUG][       Thread-254278][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 12:07:47,127 [DEBUG][       Thread-254278][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 12:07:47,178 [DEBUG][       Thread-254278][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 12:07:47,178 [DEBUG][       Thread-254278][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 12:07:47,190 [DEBUG][       Thread-254278][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 12:07:47,203 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 12:07:47,203 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 12:07:47,217 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 12:07:47,232 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 12:07:47,232 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 12:07:47,232 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 12:07:47,240 [DEBUG][       Thread-254278][   transport.py][1871] : EOF in transport thread
2025-06-13 12:07:55,814 [DEBUG][Thread-254281 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:07:57,241 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 12:07:57,242 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 12:07:57,242 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 12:07:57,244 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 12:07:57,709 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 12, 7, 54), 13.17, 40.12, 0.0, 17.82, 11.71, 0, 0, 0, 2, 0, 0),)
2025-06-13 12:07:57,710 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 12:07:54
2025-06-13 12:07:57,791 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 12:07:57,795 [DEBUG][       Thread-254282][   transport.py][1871] : starting thread (client mode): 0x863ee650
2025-06-13 12:07:57,795 [DEBUG][       Thread-254282][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 12:07:57,816 [DEBUG][       Thread-254282][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 12:07:57,816 [ INFO][       Thread-254282][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 12:07:57,819 [DEBUG][       Thread-254282][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 12:07:57,819 [DEBUG][       Thread-254282][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 12:07:57,819 [DEBUG][       Thread-254282][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 12:07:57,819 [DEBUG][       Thread-254282][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:07:57,819 [DEBUG][       Thread-254282][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:07:57,819 [DEBUG][       Thread-254282][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:07:57,819 [DEBUG][       Thread-254282][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:07:57,819 [DEBUG][       Thread-254282][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 12:07:57,819 [DEBUG][       Thread-254282][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 12:07:57,819 [DEBUG][       Thread-254282][   transport.py][1871] : client lang: <none>
2025-06-13 12:07:57,819 [DEBUG][       Thread-254282][   transport.py][1871] : server lang: <none>
2025-06-13 12:07:57,819 [DEBUG][       Thread-254282][   transport.py][1871] : kex follows: False
2025-06-13 12:07:57,819 [DEBUG][       Thread-254282][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 12:07:57,819 [DEBUG][       Thread-254282][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 12:07:57,819 [DEBUG][       Thread-254282][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 12:07:57,819 [DEBUG][       Thread-254282][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 12:07:57,819 [DEBUG][       Thread-254282][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 12:07:57,819 [DEBUG][       Thread-254282][   transport.py][1871] : Compression: none
2025-06-13 12:07:57,819 [DEBUG][       Thread-254282][   transport.py][1871] : === End of kex handshake ===
2025-06-13 12:07:57,836 [DEBUG][       Thread-254282][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 12:07:57,837 [DEBUG][       Thread-254282][   transport.py][1871] : Switch to new keys ...
2025-06-13 12:07:57,837 [DEBUG][       Thread-254282][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 12:07:57,837 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 12:07:57,837 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 12:07:57,839 [DEBUG][       Thread-254282][   transport.py][1871] : userauth is OK
2025-06-13 12:07:57,852 [ INFO][       Thread-254282][   transport.py][1871] : Authentication (password) successful!
2025-06-13 12:07:57,852 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 12:07:58,476 [DEBUG][       Thread-254282][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 12:07:58,477 [DEBUG][       Thread-254282][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 12:07:58,521 [DEBUG][       Thread-254282][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 12:07:58,521 [DEBUG][       Thread-254282][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 12:07:58,525 [DEBUG][       Thread-254282][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 12:07:58,538 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 12:07:58,539 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 12:07:58,541 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 12:07:58,543 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 12:07:58,549 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 12:07:58,551 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 12:07:58,551 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 12:07:58,552 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 12:07:58,552 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.421813 -999.00  +11.30  16.88     46   +0.20 1 1 1 1 1   888    0 12.44 50.55 ----- 23.3 16.9 60.6 23.3 15.7 -27.8 14.4 -28.9 14.1 -28.5 15.3 -26.4
2025-06-13 12:07:58,552 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 12:07:58,552 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 12:07:58,552 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.421813
2025-06-13 12:07:58,553 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 12:07:58,553 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 12:07:58,553 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 12:07:58,553 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 12:07:58,554 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 12:07:58,554 [DEBUG][       Thread-254282][   transport.py][1871] : EOF in transport thread
2025-06-13 12:07:58,554 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T12:07:54', tmtdew=13.17, humidity=40.12, cloud=0.0, wind=17.82, temperature=11.71, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T10:07:24.643', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 12:07:58,638 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 12:07:58,647 [DEBUG][       Thread-254285][   transport.py][1871] : starting thread (client mode): 0x863a65f0
2025-06-13 12:07:58,647 [DEBUG][       Thread-254285][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 12:07:58,662 [DEBUG][       Thread-254285][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 12:07:58,663 [ INFO][       Thread-254285][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 12:07:58,670 [DEBUG][       Thread-254285][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 12:07:58,671 [DEBUG][       Thread-254285][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 12:07:58,671 [DEBUG][       Thread-254285][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 12:07:58,671 [DEBUG][       Thread-254285][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:07:58,671 [DEBUG][       Thread-254285][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:07:58,671 [DEBUG][       Thread-254285][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:07:58,671 [DEBUG][       Thread-254285][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:07:58,671 [DEBUG][       Thread-254285][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 12:07:58,671 [DEBUG][       Thread-254285][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 12:07:58,671 [DEBUG][       Thread-254285][   transport.py][1871] : client lang: <none>
2025-06-13 12:07:58,671 [DEBUG][       Thread-254285][   transport.py][1871] : server lang: <none>
2025-06-13 12:07:58,671 [DEBUG][       Thread-254285][   transport.py][1871] : kex follows: False
2025-06-13 12:07:58,671 [DEBUG][       Thread-254285][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 12:07:58,671 [DEBUG][       Thread-254285][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 12:07:58,671 [DEBUG][       Thread-254285][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 12:07:58,671 [DEBUG][       Thread-254285][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 12:07:58,671 [DEBUG][       Thread-254285][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 12:07:58,671 [DEBUG][       Thread-254285][   transport.py][1871] : Compression: none
2025-06-13 12:07:58,671 [DEBUG][       Thread-254285][   transport.py][1871] : === End of kex handshake ===
2025-06-13 12:07:58,728 [DEBUG][       Thread-254285][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 12:07:58,728 [DEBUG][       Thread-254285][   transport.py][1871] : Switch to new keys ...
2025-06-13 12:07:58,729 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 12:07:58,729 [DEBUG][       Thread-254285][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 12:07:58,730 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 12:07:58,784 [DEBUG][       Thread-254285][   transport.py][1871] : userauth is OK
2025-06-13 12:07:58,785 [DEBUG][       Thread-254285][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 12:07:58,785 [DEBUG][       Thread-254285][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 12:07:58,785 [DEBUG][       Thread-254285][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 12:07:58,785 [DEBUG][       Thread-254285][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 12:07:58,804 [ INFO][       Thread-254285][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 12:07:58,804 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 12:07:58,805 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 12:07:59,816 [DEBUG][       Thread-254285][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 12:07:59,816 [DEBUG][       Thread-254285][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 12:07:59,865 [DEBUG][       Thread-254285][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 12:07:59,865 [DEBUG][       Thread-254285][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 12:07:59,874 [DEBUG][       Thread-254285][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 12:07:59,885 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 12:07:59,885 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 12:07:59,894 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 12:07:59,904 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 12:07:59,905 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 12:07:59,905 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 12:07:59,914 [DEBUG][       Thread-254285][   transport.py][1871] : EOF in transport thread
2025-06-13 12:08:04,754 [DEBUG][Thread-254287 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:08:04,833 [DEBUG][Thread-254288 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:08:05,806 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:08:05,808 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:08:09,912 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 12:08:09,912 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 12:08:09,912 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 12:08:09,913 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 12:08:10,377 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 12, 7, 54), 13.17, 40.12, 0.0, 17.82, 11.71, 0, 0, 0, 2, 0, 0),)
2025-06-13 12:08:10,377 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 12:07:54
2025-06-13 12:08:10,460 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 12:08:10,466 [DEBUG][       Thread-254289][   transport.py][1871] : starting thread (client mode): 0x867b6560
2025-06-13 12:08:10,466 [DEBUG][       Thread-254289][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 12:08:10,487 [DEBUG][       Thread-254289][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 12:08:10,487 [ INFO][       Thread-254289][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 12:08:10,490 [DEBUG][       Thread-254289][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 12:08:10,490 [DEBUG][       Thread-254289][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 12:08:10,490 [DEBUG][       Thread-254289][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 12:08:10,490 [DEBUG][       Thread-254289][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:08:10,490 [DEBUG][       Thread-254289][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:08:10,490 [DEBUG][       Thread-254289][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:08:10,490 [DEBUG][       Thread-254289][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:08:10,490 [DEBUG][       Thread-254289][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 12:08:10,490 [DEBUG][       Thread-254289][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 12:08:10,490 [DEBUG][       Thread-254289][   transport.py][1871] : client lang: <none>
2025-06-13 12:08:10,491 [DEBUG][       Thread-254289][   transport.py][1871] : server lang: <none>
2025-06-13 12:08:10,491 [DEBUG][       Thread-254289][   transport.py][1871] : kex follows: False
2025-06-13 12:08:10,491 [DEBUG][       Thread-254289][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 12:08:10,491 [DEBUG][       Thread-254289][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 12:08:10,491 [DEBUG][       Thread-254289][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 12:08:10,491 [DEBUG][       Thread-254289][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 12:08:10,491 [DEBUG][       Thread-254289][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 12:08:10,491 [DEBUG][       Thread-254289][   transport.py][1871] : Compression: none
2025-06-13 12:08:10,491 [DEBUG][       Thread-254289][   transport.py][1871] : === End of kex handshake ===
2025-06-13 12:08:10,508 [DEBUG][       Thread-254289][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 12:08:10,509 [DEBUG][       Thread-254289][   transport.py][1871] : Switch to new keys ...
2025-06-13 12:08:10,509 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 12:08:10,509 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 12:08:10,510 [DEBUG][       Thread-254289][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 12:08:10,511 [DEBUG][       Thread-254289][   transport.py][1871] : userauth is OK
2025-06-13 12:08:10,536 [ INFO][       Thread-254289][   transport.py][1871] : Authentication (password) successful!
2025-06-13 12:08:10,536 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 12:08:11,147 [DEBUG][       Thread-254289][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 12:08:11,147 [DEBUG][       Thread-254289][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 12:08:11,189 [DEBUG][       Thread-254289][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 12:08:11,189 [DEBUG][       Thread-254289][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 12:08:11,192 [DEBUG][       Thread-254289][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 12:08:11,203 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 12:08:11,203 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 12:08:11,206 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 12:08:11,208 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 12:08:11,214 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 12:08:11,216 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 12:08:11,216 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 12:08:11,217 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 12:08:11,217 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.421813 -999.00  +11.30  16.88     46   +0.20 1 1 1 1 1   888    0 12.44 50.55 ----- 23.3 16.9 60.6 23.3 15.7 -27.8 14.4 -28.9 14.1 -28.5 15.3 -26.4
2025-06-13 12:08:11,217 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 12:08:11,217 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 12:08:11,217 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.421813
2025-06-13 12:08:11,217 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 12:08:11,218 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 12:08:11,218 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 12:08:11,218 [DEBUG][       Thread-254289][   transport.py][1871] : EOF in transport thread
2025-06-13 12:08:11,219 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 12:08:11,219 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 12:08:11,219 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T12:07:54', tmtdew=13.17, humidity=40.12, cloud=0.0, wind=17.82, temperature=11.71, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T10:07:24.643', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 12:08:11,253 [DEBUG][Thread-254292 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:08:11,299 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 12:08:11,311 [DEBUG][       Thread-254293][   transport.py][1871] : starting thread (client mode): 0x868c83a0
2025-06-13 12:08:11,311 [DEBUG][       Thread-254293][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 12:08:11,327 [DEBUG][       Thread-254293][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 12:08:11,327 [ INFO][       Thread-254293][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 12:08:11,335 [DEBUG][       Thread-254293][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 12:08:11,335 [DEBUG][       Thread-254293][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 12:08:11,335 [DEBUG][       Thread-254293][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 12:08:11,336 [DEBUG][       Thread-254293][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:08:11,336 [DEBUG][       Thread-254293][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:08:11,336 [DEBUG][       Thread-254293][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:08:11,336 [DEBUG][       Thread-254293][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:08:11,336 [DEBUG][       Thread-254293][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 12:08:11,336 [DEBUG][       Thread-254293][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 12:08:11,336 [DEBUG][       Thread-254293][   transport.py][1871] : client lang: <none>
2025-06-13 12:08:11,336 [DEBUG][       Thread-254293][   transport.py][1871] : server lang: <none>
2025-06-13 12:08:11,336 [DEBUG][       Thread-254293][   transport.py][1871] : kex follows: False
2025-06-13 12:08:11,336 [DEBUG][       Thread-254293][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 12:08:11,336 [DEBUG][       Thread-254293][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 12:08:11,336 [DEBUG][       Thread-254293][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 12:08:11,336 [DEBUG][       Thread-254293][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 12:08:11,336 [DEBUG][       Thread-254293][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 12:08:11,336 [DEBUG][       Thread-254293][   transport.py][1871] : Compression: none
2025-06-13 12:08:11,336 [DEBUG][       Thread-254293][   transport.py][1871] : === End of kex handshake ===
2025-06-13 12:08:11,393 [DEBUG][       Thread-254293][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 12:08:11,393 [DEBUG][       Thread-254293][   transport.py][1871] : Switch to new keys ...
2025-06-13 12:08:11,394 [DEBUG][       Thread-254293][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 12:08:11,394 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 12:08:11,395 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 12:08:11,470 [DEBUG][       Thread-254293][   transport.py][1871] : userauth is OK
2025-06-13 12:08:11,470 [DEBUG][       Thread-254293][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 12:08:11,470 [DEBUG][       Thread-254293][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 12:08:11,470 [DEBUG][       Thread-254293][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 12:08:11,470 [DEBUG][       Thread-254293][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 12:08:11,495 [ INFO][       Thread-254293][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 12:08:11,496 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 12:08:11,496 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 12:08:12,532 [DEBUG][       Thread-254293][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 12:08:12,532 [DEBUG][       Thread-254293][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 12:08:12,582 [DEBUG][       Thread-254293][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 12:08:12,582 [DEBUG][       Thread-254293][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 12:08:12,595 [DEBUG][       Thread-254293][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 12:08:12,613 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 12:08:12,613 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 12:08:12,629 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 12:08:12,647 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 12:08:12,647 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 12:08:12,647 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 12:08:12,661 [DEBUG][       Thread-254293][   transport.py][1871] : EOF in transport thread
2025-06-13 12:08:13,863 [DEBUG][Thread-254295 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:08:22,658 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 12:08:22,658 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 12:08:22,658 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 12:08:22,661 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 12:08:22,883 [DEBUG][Thread-254296 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:08:23,116 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 12, 7, 54), 13.17, 40.12, 0.0, 17.82, 11.71, 0, 0, 0, 2, 0, 0),)
2025-06-13 12:08:23,116 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 12:07:54
2025-06-13 12:08:23,198 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 12:08:23,202 [DEBUG][       Thread-254297][   transport.py][1871] : starting thread (client mode): 0x867b7580
2025-06-13 12:08:23,202 [DEBUG][       Thread-254297][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 12:08:23,224 [DEBUG][       Thread-254297][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 12:08:23,224 [ INFO][       Thread-254297][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 12:08:23,227 [DEBUG][       Thread-254297][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 12:08:23,227 [DEBUG][       Thread-254297][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 12:08:23,227 [DEBUG][       Thread-254297][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 12:08:23,227 [DEBUG][       Thread-254297][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:08:23,227 [DEBUG][       Thread-254297][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:08:23,227 [DEBUG][       Thread-254297][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:08:23,227 [DEBUG][       Thread-254297][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:08:23,227 [DEBUG][       Thread-254297][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 12:08:23,227 [DEBUG][       Thread-254297][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 12:08:23,227 [DEBUG][       Thread-254297][   transport.py][1871] : client lang: <none>
2025-06-13 12:08:23,227 [DEBUG][       Thread-254297][   transport.py][1871] : server lang: <none>
2025-06-13 12:08:23,227 [DEBUG][       Thread-254297][   transport.py][1871] : kex follows: False
2025-06-13 12:08:23,227 [DEBUG][       Thread-254297][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 12:08:23,227 [DEBUG][       Thread-254297][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 12:08:23,227 [DEBUG][       Thread-254297][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 12:08:23,227 [DEBUG][       Thread-254297][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 12:08:23,227 [DEBUG][       Thread-254297][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 12:08:23,228 [DEBUG][       Thread-254297][   transport.py][1871] : Compression: none
2025-06-13 12:08:23,228 [DEBUG][       Thread-254297][   transport.py][1871] : === End of kex handshake ===
2025-06-13 12:08:23,244 [DEBUG][       Thread-254297][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 12:08:23,245 [DEBUG][       Thread-254297][   transport.py][1871] : Switch to new keys ...
2025-06-13 12:08:23,245 [DEBUG][       Thread-254297][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 12:08:23,245 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 12:08:23,246 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 12:08:23,247 [DEBUG][       Thread-254297][   transport.py][1871] : userauth is OK
2025-06-13 12:08:23,271 [ INFO][       Thread-254297][   transport.py][1871] : Authentication (password) successful!
2025-06-13 12:08:23,272 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 12:08:23,863 [DEBUG][       Thread-254297][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 12:08:23,864 [DEBUG][       Thread-254297][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 12:08:23,905 [DEBUG][       Thread-254297][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 12:08:23,905 [DEBUG][       Thread-254297][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 12:08:23,908 [DEBUG][       Thread-254297][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 12:08:23,914 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 12:08:23,914 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 12:08:23,916 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 12:08:23,918 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 12:08:23,923 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 12:08:23,925 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 12:08:23,925 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 12:08:23,926 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 12:08:23,926 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.421813 -999.00  +11.30  16.88     46   +0.20 1 1 1 1 1   888    0 12.44 50.55 ----- 23.3 16.9 60.6 23.3 15.7 -27.8 14.4 -28.9 14.1 -28.5 15.3 -26.4
2025-06-13 12:08:23,926 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 12:08:23,926 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 12:08:23,927 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.421813
2025-06-13 12:08:23,927 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 12:08:23,928 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 12:08:23,928 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 12:08:23,928 [DEBUG][       Thread-254297][   transport.py][1871] : EOF in transport thread
2025-06-13 12:08:23,928 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 12:08:23,929 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 12:08:23,929 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T12:07:54', tmtdew=13.17, humidity=40.12, cloud=0.0, wind=17.82, temperature=11.71, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T10:07:24.643', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 12:08:24,011 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 12:08:24,021 [DEBUG][       Thread-254300][   transport.py][1871] : starting thread (client mode): 0x868c82e0
2025-06-13 12:08:24,021 [DEBUG][       Thread-254300][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 12:08:24,036 [DEBUG][       Thread-254300][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 12:08:24,036 [ INFO][       Thread-254300][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 12:08:24,044 [DEBUG][       Thread-254300][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 12:08:24,044 [DEBUG][       Thread-254300][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 12:08:24,044 [DEBUG][       Thread-254300][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 12:08:24,044 [DEBUG][       Thread-254300][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:08:24,044 [DEBUG][       Thread-254300][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:08:24,044 [DEBUG][       Thread-254300][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:08:24,044 [DEBUG][       Thread-254300][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:08:24,044 [DEBUG][       Thread-254300][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 12:08:24,044 [DEBUG][       Thread-254300][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 12:08:24,044 [DEBUG][       Thread-254300][   transport.py][1871] : client lang: <none>
2025-06-13 12:08:24,044 [DEBUG][       Thread-254300][   transport.py][1871] : server lang: <none>
2025-06-13 12:08:24,045 [DEBUG][       Thread-254300][   transport.py][1871] : kex follows: False
2025-06-13 12:08:24,045 [DEBUG][       Thread-254300][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 12:08:24,045 [DEBUG][       Thread-254300][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 12:08:24,045 [DEBUG][       Thread-254300][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 12:08:24,045 [DEBUG][       Thread-254300][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 12:08:24,045 [DEBUG][       Thread-254300][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 12:08:24,045 [DEBUG][       Thread-254300][   transport.py][1871] : Compression: none
2025-06-13 12:08:24,045 [DEBUG][       Thread-254300][   transport.py][1871] : === End of kex handshake ===
2025-06-13 12:08:24,106 [DEBUG][       Thread-254300][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 12:08:24,106 [DEBUG][       Thread-254300][   transport.py][1871] : Switch to new keys ...
2025-06-13 12:08:24,107 [DEBUG][       Thread-254300][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 12:08:24,107 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 12:08:24,108 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 12:08:24,166 [DEBUG][       Thread-254300][   transport.py][1871] : userauth is OK
2025-06-13 12:08:24,166 [DEBUG][       Thread-254300][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 12:08:24,166 [DEBUG][       Thread-254300][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 12:08:24,166 [DEBUG][       Thread-254300][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 12:08:24,166 [DEBUG][       Thread-254300][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 12:08:24,187 [ INFO][       Thread-254300][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 12:08:24,188 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 12:08:24,188 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 12:08:25,186 [DEBUG][       Thread-254300][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 12:08:25,187 [DEBUG][       Thread-254300][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 12:08:25,236 [DEBUG][       Thread-254300][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 12:08:25,236 [DEBUG][       Thread-254300][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 12:08:25,245 [DEBUG][       Thread-254300][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 12:08:25,256 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 12:08:25,256 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 12:08:25,272 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 12:08:25,284 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 12:08:25,284 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 12:08:25,284 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 12:08:25,293 [DEBUG][       Thread-254300][   transport.py][1871] : EOF in transport thread
2025-06-13 12:08:31,901 [DEBUG][Thread-254302 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:08:35,295 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 12:08:35,295 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 12:08:35,295 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 12:08:35,298 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 12:08:35,766 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 12, 8, 26), 13.01, 40.45, 0.0, 15.95, 11.72, 0, 0, 0, 2, 0, 0),)
2025-06-13 12:08:35,766 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 12:08:26
2025-06-13 12:08:35,848 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 12:08:35,854 [DEBUG][       Thread-254303][   transport.py][1871] : starting thread (client mode): 0x863a4580
2025-06-13 12:08:35,854 [DEBUG][       Thread-254303][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 12:08:35,875 [DEBUG][       Thread-254303][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 12:08:35,875 [ INFO][       Thread-254303][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 12:08:35,878 [DEBUG][       Thread-254303][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 12:08:35,884 [DEBUG][       Thread-254303][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 12:08:35,884 [DEBUG][       Thread-254303][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 12:08:35,884 [DEBUG][       Thread-254303][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:08:35,884 [DEBUG][       Thread-254303][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:08:35,884 [DEBUG][       Thread-254303][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:08:35,884 [DEBUG][       Thread-254303][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:08:35,884 [DEBUG][       Thread-254303][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 12:08:35,884 [DEBUG][       Thread-254303][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 12:08:35,884 [DEBUG][       Thread-254303][   transport.py][1871] : client lang: <none>
2025-06-13 12:08:35,884 [DEBUG][       Thread-254303][   transport.py][1871] : server lang: <none>
2025-06-13 12:08:35,884 [DEBUG][       Thread-254303][   transport.py][1871] : kex follows: False
2025-06-13 12:08:35,885 [DEBUG][       Thread-254303][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 12:08:35,885 [DEBUG][       Thread-254303][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 12:08:35,885 [DEBUG][       Thread-254303][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 12:08:35,885 [DEBUG][       Thread-254303][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 12:08:35,885 [DEBUG][       Thread-254303][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 12:08:35,885 [DEBUG][       Thread-254303][   transport.py][1871] : Compression: none
2025-06-13 12:08:35,885 [DEBUG][       Thread-254303][   transport.py][1871] : === End of kex handshake ===
2025-06-13 12:08:35,903 [DEBUG][       Thread-254303][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 12:08:35,904 [DEBUG][       Thread-254303][   transport.py][1871] : Switch to new keys ...
2025-06-13 12:08:35,904 [DEBUG][       Thread-254303][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 12:08:35,905 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 12:08:35,905 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 12:08:35,906 [DEBUG][       Thread-254303][   transport.py][1871] : userauth is OK
2025-06-13 12:08:35,921 [ INFO][       Thread-254303][   transport.py][1871] : Authentication (password) successful!
2025-06-13 12:08:35,921 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 12:08:36,528 [DEBUG][       Thread-254303][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 12:08:36,529 [DEBUG][       Thread-254303][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 12:08:36,572 [DEBUG][       Thread-254303][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 12:08:36,573 [DEBUG][       Thread-254303][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 12:08:36,576 [DEBUG][       Thread-254303][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 12:08:36,587 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 12:08:36,587 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 12:08:36,589 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 12:08:36,591 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 12:08:36,596 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 12:08:36,598 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 12:08:36,598 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 12:08:36,598 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 12:08:36,598 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.422160 -999.00  +11.50  20.14     46   +0.30 1 1 1 1 1   888    0 12.32 48.04 ----- 22.8 20.1 59.2 24.0 15.7 -27.9 14.4 -29.3 14.1 -28.2 15.4 -26.4
2025-06-13 12:08:36,599 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 12:08:36,599 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 12:08:36,599 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.422160
2025-06-13 12:08:36,599 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 12:08:36,599 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 12:08:36,600 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 12:08:36,600 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 12:08:36,600 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 12:08:36,600 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T12:08:26', tmtdew=13.01, humidity=40.45, cloud=0.0, wind=15.95, temperature=11.72, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T10:07:54.624', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 12:08:36,601 [DEBUG][       Thread-254303][   transport.py][1871] : EOF in transport thread
2025-06-13 12:08:36,683 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 12:08:36,694 [DEBUG][       Thread-254306][   transport.py][1871] : starting thread (client mode): 0x867b7940
2025-06-13 12:08:36,694 [DEBUG][       Thread-254306][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 12:08:36,718 [DEBUG][       Thread-254306][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 12:08:36,718 [ INFO][       Thread-254306][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 12:08:36,726 [DEBUG][       Thread-254306][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 12:08:36,726 [DEBUG][       Thread-254306][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 12:08:36,726 [DEBUG][       Thread-254306][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 12:08:36,726 [DEBUG][       Thread-254306][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:08:36,726 [DEBUG][       Thread-254306][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:08:36,726 [DEBUG][       Thread-254306][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:08:36,726 [DEBUG][       Thread-254306][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:08:36,726 [DEBUG][       Thread-254306][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 12:08:36,726 [DEBUG][       Thread-254306][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 12:08:36,726 [DEBUG][       Thread-254306][   transport.py][1871] : client lang: <none>
2025-06-13 12:08:36,726 [DEBUG][       Thread-254306][   transport.py][1871] : server lang: <none>
2025-06-13 12:08:36,726 [DEBUG][       Thread-254306][   transport.py][1871] : kex follows: False
2025-06-13 12:08:36,726 [DEBUG][       Thread-254306][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 12:08:36,726 [DEBUG][       Thread-254306][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 12:08:36,726 [DEBUG][       Thread-254306][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 12:08:36,726 [DEBUG][       Thread-254306][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 12:08:36,727 [DEBUG][       Thread-254306][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 12:08:36,727 [DEBUG][       Thread-254306][   transport.py][1871] : Compression: none
2025-06-13 12:08:36,727 [DEBUG][       Thread-254306][   transport.py][1871] : === End of kex handshake ===
2025-06-13 12:08:36,783 [DEBUG][       Thread-254306][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 12:08:36,783 [DEBUG][       Thread-254306][   transport.py][1871] : Switch to new keys ...
2025-06-13 12:08:36,784 [DEBUG][       Thread-254306][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 12:08:36,784 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 12:08:36,785 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 12:08:36,846 [DEBUG][       Thread-254306][   transport.py][1871] : userauth is OK
2025-06-13 12:08:36,846 [DEBUG][       Thread-254306][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 12:08:36,846 [DEBUG][       Thread-254306][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 12:08:36,846 [DEBUG][       Thread-254306][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 12:08:36,846 [DEBUG][       Thread-254306][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 12:08:36,865 [ INFO][       Thread-254306][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 12:08:36,865 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 12:08:36,866 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 12:08:37,860 [DEBUG][       Thread-254306][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 12:08:37,861 [DEBUG][       Thread-254306][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 12:08:37,912 [DEBUG][       Thread-254306][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 12:08:37,912 [DEBUG][       Thread-254306][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 12:08:37,922 [DEBUG][       Thread-254306][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 12:08:37,932 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 12:08:37,932 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 12:08:37,942 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 12:08:37,951 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 12:08:37,951 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 12:08:37,952 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 12:08:37,960 [DEBUG][       Thread-254306][   transport.py][1871] : EOF in transport thread
2025-06-13 12:08:40,794 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:08:40,795 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:08:40,921 [DEBUG][Thread-254308 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:08:47,960 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 12:08:47,960 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 12:08:47,960 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 12:08:47,963 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 12:08:48,433 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 12, 8, 26), 13.01, 40.45, 0.0, 15.95, 11.72, 0, 0, 0, 2, 0, 0),)
2025-06-13 12:08:48,433 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 12:08:26
2025-06-13 12:08:48,513 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 12:08:48,517 [DEBUG][       Thread-254309][   transport.py][1871] : starting thread (client mode): 0x867b7bb0
2025-06-13 12:08:48,517 [DEBUG][       Thread-254309][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 12:08:48,536 [DEBUG][       Thread-254309][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 12:08:48,536 [ INFO][       Thread-254309][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 12:08:48,539 [DEBUG][       Thread-254309][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 12:08:48,540 [DEBUG][       Thread-254309][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 12:08:48,540 [DEBUG][       Thread-254309][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 12:08:48,540 [DEBUG][       Thread-254309][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:08:48,540 [DEBUG][       Thread-254309][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:08:48,540 [DEBUG][       Thread-254309][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:08:48,540 [DEBUG][       Thread-254309][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:08:48,540 [DEBUG][       Thread-254309][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 12:08:48,540 [DEBUG][       Thread-254309][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 12:08:48,540 [DEBUG][       Thread-254309][   transport.py][1871] : client lang: <none>
2025-06-13 12:08:48,540 [DEBUG][       Thread-254309][   transport.py][1871] : server lang: <none>
2025-06-13 12:08:48,540 [DEBUG][       Thread-254309][   transport.py][1871] : kex follows: False
2025-06-13 12:08:48,540 [DEBUG][       Thread-254309][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 12:08:48,540 [DEBUG][       Thread-254309][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 12:08:48,540 [DEBUG][       Thread-254309][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 12:08:48,540 [DEBUG][       Thread-254309][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 12:08:48,540 [DEBUG][       Thread-254309][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 12:08:48,540 [DEBUG][       Thread-254309][   transport.py][1871] : Compression: none
2025-06-13 12:08:48,540 [DEBUG][       Thread-254309][   transport.py][1871] : === End of kex handshake ===
2025-06-13 12:08:48,557 [DEBUG][       Thread-254309][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 12:08:48,557 [DEBUG][       Thread-254309][   transport.py][1871] : Switch to new keys ...
2025-06-13 12:08:48,558 [DEBUG][       Thread-254309][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 12:08:48,558 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 12:08:48,558 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 12:08:48,560 [DEBUG][       Thread-254309][   transport.py][1871] : userauth is OK
2025-06-13 12:08:48,585 [ INFO][       Thread-254309][   transport.py][1871] : Authentication (password) successful!
2025-06-13 12:08:48,585 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 12:08:49,230 [DEBUG][       Thread-254309][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 12:08:49,231 [DEBUG][       Thread-254309][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 12:08:49,273 [DEBUG][       Thread-254309][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 12:08:49,273 [DEBUG][       Thread-254309][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 12:08:49,276 [DEBUG][       Thread-254309][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 12:08:49,287 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 12:08:49,288 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 12:08:49,289 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 12:08:49,291 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 12:08:49,297 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 12:08:49,299 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 12:08:49,299 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 12:08:49,299 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 12:08:49,300 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.422160 -999.00  +11.50  20.14     46   +0.30 1 1 1 1 1   888    0 12.32 48.04 ----- 22.8 20.1 59.2 24.0 15.7 -27.9 14.4 -29.3 14.1 -28.2 15.4 -26.4
2025-06-13 12:08:49,300 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 12:08:49,300 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 12:08:49,300 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.422160
2025-06-13 12:08:49,300 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 12:08:49,301 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 12:08:49,301 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 12:08:49,301 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 12:08:49,301 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 12:08:49,301 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T12:08:26', tmtdew=13.01, humidity=40.45, cloud=0.0, wind=15.95, temperature=11.72, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T10:07:54.624', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 12:08:49,301 [DEBUG][       Thread-254309][   transport.py][1871] : EOF in transport thread
2025-06-13 12:08:49,383 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 12:08:49,394 [DEBUG][       Thread-254312][   transport.py][1871] : starting thread (client mode): 0x863a7e20
2025-06-13 12:08:49,394 [DEBUG][       Thread-254312][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 12:08:49,412 [DEBUG][       Thread-254312][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 12:08:49,412 [ INFO][       Thread-254312][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 12:08:49,421 [DEBUG][       Thread-254312][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 12:08:49,421 [DEBUG][       Thread-254312][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 12:08:49,421 [DEBUG][       Thread-254312][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 12:08:49,421 [DEBUG][       Thread-254312][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:08:49,421 [DEBUG][       Thread-254312][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:08:49,421 [DEBUG][       Thread-254312][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:08:49,422 [DEBUG][       Thread-254312][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:08:49,422 [DEBUG][       Thread-254312][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 12:08:49,422 [DEBUG][       Thread-254312][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 12:08:49,422 [DEBUG][       Thread-254312][   transport.py][1871] : client lang: <none>
2025-06-13 12:08:49,422 [DEBUG][       Thread-254312][   transport.py][1871] : server lang: <none>
2025-06-13 12:08:49,422 [DEBUG][       Thread-254312][   transport.py][1871] : kex follows: False
2025-06-13 12:08:49,422 [DEBUG][       Thread-254312][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 12:08:49,422 [DEBUG][       Thread-254312][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 12:08:49,422 [DEBUG][       Thread-254312][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 12:08:49,422 [DEBUG][       Thread-254312][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 12:08:49,422 [DEBUG][       Thread-254312][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 12:08:49,422 [DEBUG][       Thread-254312][   transport.py][1871] : Compression: none
2025-06-13 12:08:49,422 [DEBUG][       Thread-254312][   transport.py][1871] : === End of kex handshake ===
2025-06-13 12:08:49,486 [DEBUG][       Thread-254312][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 12:08:49,487 [DEBUG][       Thread-254312][   transport.py][1871] : Switch to new keys ...
2025-06-13 12:08:49,487 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 12:08:49,488 [DEBUG][       Thread-254312][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 12:08:49,489 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 12:08:49,552 [DEBUG][       Thread-254312][   transport.py][1871] : userauth is OK
2025-06-13 12:08:49,552 [DEBUG][       Thread-254312][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 12:08:49,552 [DEBUG][       Thread-254312][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 12:08:49,552 [DEBUG][       Thread-254312][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 12:08:49,552 [DEBUG][       Thread-254312][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 12:08:49,576 [ INFO][       Thread-254312][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 12:08:49,576 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 12:08:49,577 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 12:08:49,950 [DEBUG][Thread-254314 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:08:50,615 [DEBUG][       Thread-254312][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 12:08:50,616 [DEBUG][       Thread-254312][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 12:08:50,665 [DEBUG][       Thread-254312][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 12:08:50,665 [DEBUG][       Thread-254312][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 12:08:50,674 [DEBUG][       Thread-254312][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 12:08:50,686 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 12:08:50,687 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 12:08:50,697 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 12:08:50,709 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 12:08:50,709 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 12:08:50,709 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 12:08:50,719 [DEBUG][       Thread-254312][   transport.py][1871] : EOF in transport thread
2025-06-13 12:08:58,970 [DEBUG][Thread-254315 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:09:00,714 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 12:09:00,714 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 12:09:00,715 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 12:09:00,717 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 12:09:01,188 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 12, 8, 58), 12.91, 40.72, 0.0, 17.57, 11.73, 0, 0, 0, 2, 0, 0),)
2025-06-13 12:09:01,188 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 12:08:58
2025-06-13 12:09:01,267 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 12:09:01,272 [DEBUG][       Thread-254316][   transport.py][1871] : starting thread (client mode): 0x863a7220
2025-06-13 12:09:01,272 [DEBUG][       Thread-254316][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 12:09:01,292 [DEBUG][       Thread-254316][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 12:09:01,292 [ INFO][       Thread-254316][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 12:09:01,296 [DEBUG][       Thread-254316][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 12:09:01,296 [DEBUG][       Thread-254316][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 12:09:01,296 [DEBUG][       Thread-254316][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 12:09:01,296 [DEBUG][       Thread-254316][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:09:01,296 [DEBUG][       Thread-254316][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:09:01,296 [DEBUG][       Thread-254316][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:09:01,296 [DEBUG][       Thread-254316][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:09:01,296 [DEBUG][       Thread-254316][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 12:09:01,296 [DEBUG][       Thread-254316][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 12:09:01,296 [DEBUG][       Thread-254316][   transport.py][1871] : client lang: <none>
2025-06-13 12:09:01,296 [DEBUG][       Thread-254316][   transport.py][1871] : server lang: <none>
2025-06-13 12:09:01,296 [DEBUG][       Thread-254316][   transport.py][1871] : kex follows: False
2025-06-13 12:09:01,296 [DEBUG][       Thread-254316][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 12:09:01,296 [DEBUG][       Thread-254316][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 12:09:01,296 [DEBUG][       Thread-254316][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 12:09:01,296 [DEBUG][       Thread-254316][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 12:09:01,296 [DEBUG][       Thread-254316][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 12:09:01,297 [DEBUG][       Thread-254316][   transport.py][1871] : Compression: none
2025-06-13 12:09:01,297 [DEBUG][       Thread-254316][   transport.py][1871] : === End of kex handshake ===
2025-06-13 12:09:01,306 [DEBUG][       Thread-254316][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 12:09:01,306 [DEBUG][       Thread-254316][   transport.py][1871] : Switch to new keys ...
2025-06-13 12:09:01,307 [DEBUG][       Thread-254316][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 12:09:01,307 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 12:09:01,307 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 12:09:01,308 [DEBUG][       Thread-254316][   transport.py][1871] : userauth is OK
2025-06-13 12:09:01,333 [ INFO][       Thread-254316][   transport.py][1871] : Authentication (password) successful!
2025-06-13 12:09:01,334 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 12:09:01,964 [DEBUG][       Thread-254316][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 12:09:01,964 [DEBUG][       Thread-254316][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 12:09:02,005 [DEBUG][       Thread-254316][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 12:09:02,005 [DEBUG][       Thread-254316][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 12:09:02,007 [DEBUG][       Thread-254316][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 12:09:02,019 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 12:09:02,020 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 12:09:02,021 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 12:09:02,023 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 12:09:02,029 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 12:09:02,030 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 12:09:02,031 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 12:09:02,031 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 12:09:02,031 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.422508 -999.00  +11.60  19.33     44   -0.10 1 1 1 1 1   888    0 12.35 44.88 ----- 19.8 19.3 33.4 25.3 15.8 -28.6 14.4 -29.7 14.1 -29.0 15.5 -26.6
2025-06-13 12:09:02,032 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 12:09:02,032 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 12:09:02,032 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.422508
2025-06-13 12:09:02,032 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 12:09:02,033 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 12:09:02,033 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 12:09:02,033 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 12:09:02,033 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 12:09:02,033 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T12:08:58', tmtdew=12.91, humidity=40.72, cloud=0.0, wind=17.57, temperature=11.73, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T10:08:24.691', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 12:09:02,034 [DEBUG][       Thread-254316][   transport.py][1871] : EOF in transport thread
2025-06-13 12:09:02,116 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 12:09:02,127 [DEBUG][       Thread-254319][   transport.py][1871] : starting thread (client mode): 0x867b67a0
2025-06-13 12:09:02,128 [DEBUG][       Thread-254319][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 12:09:02,142 [DEBUG][       Thread-254319][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 12:09:02,142 [ INFO][       Thread-254319][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 12:09:02,150 [DEBUG][       Thread-254319][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 12:09:02,150 [DEBUG][       Thread-254319][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 12:09:02,150 [DEBUG][       Thread-254319][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 12:09:02,150 [DEBUG][       Thread-254319][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:09:02,151 [DEBUG][       Thread-254319][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:09:02,151 [DEBUG][       Thread-254319][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:09:02,151 [DEBUG][       Thread-254319][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:09:02,151 [DEBUG][       Thread-254319][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 12:09:02,151 [DEBUG][       Thread-254319][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 12:09:02,151 [DEBUG][       Thread-254319][   transport.py][1871] : client lang: <none>
2025-06-13 12:09:02,151 [DEBUG][       Thread-254319][   transport.py][1871] : server lang: <none>
2025-06-13 12:09:02,151 [DEBUG][       Thread-254319][   transport.py][1871] : kex follows: False
2025-06-13 12:09:02,151 [DEBUG][       Thread-254319][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 12:09:02,151 [DEBUG][       Thread-254319][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 12:09:02,151 [DEBUG][       Thread-254319][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 12:09:02,151 [DEBUG][       Thread-254319][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 12:09:02,151 [DEBUG][       Thread-254319][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 12:09:02,151 [DEBUG][       Thread-254319][   transport.py][1871] : Compression: none
2025-06-13 12:09:02,151 [DEBUG][       Thread-254319][   transport.py][1871] : === End of kex handshake ===
2025-06-13 12:09:02,210 [DEBUG][       Thread-254319][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 12:09:02,211 [DEBUG][       Thread-254319][   transport.py][1871] : Switch to new keys ...
2025-06-13 12:09:02,212 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 12:09:02,212 [DEBUG][       Thread-254319][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 12:09:02,213 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 12:09:02,268 [DEBUG][       Thread-254319][   transport.py][1871] : userauth is OK
2025-06-13 12:09:02,268 [DEBUG][       Thread-254319][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 12:09:02,268 [DEBUG][       Thread-254319][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 12:09:02,268 [DEBUG][       Thread-254319][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 12:09:02,269 [DEBUG][       Thread-254319][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 12:09:02,292 [ INFO][       Thread-254319][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 12:09:02,292 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 12:09:02,292 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 12:09:03,322 [DEBUG][       Thread-254319][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 12:09:03,322 [DEBUG][       Thread-254319][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 12:09:03,374 [DEBUG][       Thread-254319][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 12:09:03,374 [DEBUG][       Thread-254319][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 12:09:03,387 [DEBUG][       Thread-254319][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 12:09:03,403 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 12:09:03,403 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 12:09:03,412 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 12:09:03,422 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 12:09:03,422 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 12:09:03,422 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 12:09:03,430 [DEBUG][       Thread-254319][   transport.py][1871] : EOF in transport thread
2025-06-13 12:09:05,890 [DEBUG][Thread-254321 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:09:06,971 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:09:06,973 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:09:07,991 [DEBUG][Thread-254322 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:09:11,307 [DEBUG][Thread-254323 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:09:13,433 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 12:09:13,433 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 12:09:13,433 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 12:09:13,436 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 12:09:13,906 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 12, 8, 58), 12.91, 40.72, 0.0, 17.57, 11.73, 0, 0, 0, 2, 0, 0),)
2025-06-13 12:09:13,906 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 12:08:58
2025-06-13 12:09:13,984 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 12:09:13,990 [DEBUG][       Thread-254324][   transport.py][1871] : starting thread (client mode): 0x867b7d30
2025-06-13 12:09:13,990 [DEBUG][       Thread-254324][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 12:09:14,012 [DEBUG][       Thread-254324][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 12:09:14,012 [ INFO][       Thread-254324][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 12:09:14,015 [DEBUG][       Thread-254324][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 12:09:14,015 [DEBUG][       Thread-254324][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 12:09:14,015 [DEBUG][       Thread-254324][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 12:09:14,015 [DEBUG][       Thread-254324][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:09:14,015 [DEBUG][       Thread-254324][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:09:14,016 [DEBUG][       Thread-254324][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:09:14,016 [DEBUG][       Thread-254324][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:09:14,016 [DEBUG][       Thread-254324][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 12:09:14,016 [DEBUG][       Thread-254324][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 12:09:14,016 [DEBUG][       Thread-254324][   transport.py][1871] : client lang: <none>
2025-06-13 12:09:14,016 [DEBUG][       Thread-254324][   transport.py][1871] : server lang: <none>
2025-06-13 12:09:14,016 [DEBUG][       Thread-254324][   transport.py][1871] : kex follows: False
2025-06-13 12:09:14,016 [DEBUG][       Thread-254324][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 12:09:14,016 [DEBUG][       Thread-254324][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 12:09:14,016 [DEBUG][       Thread-254324][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 12:09:14,016 [DEBUG][       Thread-254324][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 12:09:14,016 [DEBUG][       Thread-254324][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 12:09:14,016 [DEBUG][       Thread-254324][   transport.py][1871] : Compression: none
2025-06-13 12:09:14,016 [DEBUG][       Thread-254324][   transport.py][1871] : === End of kex handshake ===
2025-06-13 12:09:14,033 [DEBUG][       Thread-254324][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 12:09:14,033 [DEBUG][       Thread-254324][   transport.py][1871] : Switch to new keys ...
2025-06-13 12:09:14,034 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 12:09:14,034 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 12:09:14,035 [DEBUG][       Thread-254324][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 12:09:14,035 [DEBUG][       Thread-254324][   transport.py][1871] : userauth is OK
2025-06-13 12:09:14,060 [ INFO][       Thread-254324][   transport.py][1871] : Authentication (password) successful!
2025-06-13 12:09:14,061 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 12:09:14,691 [DEBUG][       Thread-254324][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 12:09:14,691 [DEBUG][       Thread-254324][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 12:09:14,732 [DEBUG][       Thread-254324][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 12:09:14,733 [DEBUG][       Thread-254324][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 12:09:14,735 [DEBUG][       Thread-254324][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 12:09:14,747 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 12:09:14,747 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 12:09:14,748 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 12:09:14,749 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 12:09:14,757 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 12:09:14,758 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 12:09:14,758 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 12:09:14,758 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 12:09:14,758 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.422508 -999.00  +11.60  19.33     44   -0.10 1 1 1 1 1   888    0 12.35 44.88 ----- 19.8 19.3 33.4 25.3 15.8 -28.6 14.4 -29.7 14.1 -29.0 15.5 -26.6
2025-06-13 12:09:14,758 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 12:09:14,758 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 12:09:14,758 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.422508
2025-06-13 12:09:14,758 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 12:09:14,758 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 12:09:14,758 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 12:09:14,758 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 12:09:14,758 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 12:09:14,758 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T12:08:58', tmtdew=12.91, humidity=40.72, cloud=0.0, wind=17.57, temperature=11.73, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T10:08:24.691', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 12:09:14,759 [DEBUG][       Thread-254324][   transport.py][1871] : EOF in transport thread
2025-06-13 12:09:14,830 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 12:09:14,844 [DEBUG][       Thread-254327][   transport.py][1871] : starting thread (client mode): 0x863a5e40
2025-06-13 12:09:14,844 [DEBUG][       Thread-254327][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 12:09:14,862 [DEBUG][       Thread-254327][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 12:09:14,862 [ INFO][       Thread-254327][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 12:09:14,873 [DEBUG][       Thread-254327][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 12:09:14,873 [DEBUG][       Thread-254327][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 12:09:14,873 [DEBUG][       Thread-254327][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 12:09:14,873 [DEBUG][       Thread-254327][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:09:14,873 [DEBUG][       Thread-254327][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:09:14,873 [DEBUG][       Thread-254327][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:09:14,873 [DEBUG][       Thread-254327][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:09:14,873 [DEBUG][       Thread-254327][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 12:09:14,873 [DEBUG][       Thread-254327][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 12:09:14,873 [DEBUG][       Thread-254327][   transport.py][1871] : client lang: <none>
2025-06-13 12:09:14,873 [DEBUG][       Thread-254327][   transport.py][1871] : server lang: <none>
2025-06-13 12:09:14,874 [DEBUG][       Thread-254327][   transport.py][1871] : kex follows: False
2025-06-13 12:09:14,874 [DEBUG][       Thread-254327][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 12:09:14,874 [DEBUG][       Thread-254327][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 12:09:14,874 [DEBUG][       Thread-254327][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 12:09:14,874 [DEBUG][       Thread-254327][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 12:09:14,874 [DEBUG][       Thread-254327][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 12:09:14,874 [DEBUG][       Thread-254327][   transport.py][1871] : Compression: none
2025-06-13 12:09:14,874 [DEBUG][       Thread-254327][   transport.py][1871] : === End of kex handshake ===
2025-06-13 12:09:14,933 [DEBUG][       Thread-254327][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 12:09:14,934 [DEBUG][       Thread-254327][   transport.py][1871] : Switch to new keys ...
2025-06-13 12:09:14,934 [DEBUG][       Thread-254327][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 12:09:14,935 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 12:09:14,935 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 12:09:14,992 [DEBUG][       Thread-254327][   transport.py][1871] : userauth is OK
2025-06-13 12:09:14,992 [DEBUG][       Thread-254327][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 12:09:14,992 [DEBUG][       Thread-254327][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 12:09:14,993 [DEBUG][       Thread-254327][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 12:09:14,993 [DEBUG][       Thread-254327][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 12:09:15,011 [ INFO][       Thread-254327][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 12:09:15,012 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 12:09:15,012 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 12:09:16,019 [DEBUG][       Thread-254327][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 12:09:16,020 [DEBUG][       Thread-254327][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 12:09:16,068 [DEBUG][       Thread-254327][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 12:09:16,068 [DEBUG][       Thread-254327][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 12:09:16,078 [DEBUG][       Thread-254327][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 12:09:16,087 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 12:09:16,087 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 12:09:16,096 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 12:09:16,105 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 12:09:16,106 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 12:09:16,106 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 12:09:16,114 [DEBUG][       Thread-254327][   transport.py][1871] : EOF in transport thread
2025-06-13 12:09:17,025 [DEBUG][Thread-254329 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:09:26,044 [DEBUG][Thread-254330 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:09:26,117 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 12:09:26,117 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 12:09:26,117 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 12:09:26,119 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 12:09:26,572 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 12, 8, 58), 12.91, 40.72, 0.0, 17.57, 11.73, 0, 0, 0, 2, 0, 0),)
2025-06-13 12:09:26,572 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 12:08:58
2025-06-13 12:09:26,650 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 12:09:26,654 [DEBUG][       Thread-254331][   transport.py][1871] : starting thread (client mode): 0x863ece80
2025-06-13 12:09:26,654 [DEBUG][       Thread-254331][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 12:09:26,673 [DEBUG][       Thread-254331][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 12:09:26,673 [ INFO][       Thread-254331][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 12:09:26,677 [DEBUG][       Thread-254331][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 12:09:26,677 [DEBUG][       Thread-254331][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 12:09:26,677 [DEBUG][       Thread-254331][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 12:09:26,677 [DEBUG][       Thread-254331][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:09:26,677 [DEBUG][       Thread-254331][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:09:26,677 [DEBUG][       Thread-254331][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:09:26,677 [DEBUG][       Thread-254331][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:09:26,677 [DEBUG][       Thread-254331][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 12:09:26,677 [DEBUG][       Thread-254331][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 12:09:26,677 [DEBUG][       Thread-254331][   transport.py][1871] : client lang: <none>
2025-06-13 12:09:26,677 [DEBUG][       Thread-254331][   transport.py][1871] : server lang: <none>
2025-06-13 12:09:26,677 [DEBUG][       Thread-254331][   transport.py][1871] : kex follows: False
2025-06-13 12:09:26,677 [DEBUG][       Thread-254331][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 12:09:26,677 [DEBUG][       Thread-254331][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 12:09:26,677 [DEBUG][       Thread-254331][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 12:09:26,677 [DEBUG][       Thread-254331][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 12:09:26,677 [DEBUG][       Thread-254331][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 12:09:26,677 [DEBUG][       Thread-254331][   transport.py][1871] : Compression: none
2025-06-13 12:09:26,677 [DEBUG][       Thread-254331][   transport.py][1871] : === End of kex handshake ===
2025-06-13 12:09:26,695 [DEBUG][       Thread-254331][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 12:09:26,695 [DEBUG][       Thread-254331][   transport.py][1871] : Switch to new keys ...
2025-06-13 12:09:26,696 [DEBUG][       Thread-254331][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 12:09:26,696 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 12:09:26,696 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 12:09:26,739 [DEBUG][       Thread-254331][   transport.py][1871] : userauth is OK
2025-06-13 12:09:26,764 [ INFO][       Thread-254331][   transport.py][1871] : Authentication (password) successful!
2025-06-13 12:09:26,764 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 12:09:27,378 [DEBUG][       Thread-254331][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 12:09:27,378 [DEBUG][       Thread-254331][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 12:09:27,421 [DEBUG][       Thread-254331][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 12:09:27,421 [DEBUG][       Thread-254331][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 12:09:27,425 [DEBUG][       Thread-254331][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 12:09:27,437 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 12:09:27,437 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 12:09:27,439 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 12:09:27,441 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 12:09:27,447 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 12:09:27,449 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 12:09:27,449 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 12:09:27,449 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 12:09:27,450 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.422508 -999.00  +11.60  19.33     44   -0.10 1 1 1 1 1   888    0 12.35 44.88 ----- 19.8 19.3 33.4 25.3 15.8 -28.6 14.4 -29.7 14.1 -29.0 15.5 -26.6
2025-06-13 12:09:27,450 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 12:09:27,450 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 12:09:27,450 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.422508
2025-06-13 12:09:27,450 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 12:09:27,451 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 12:09:27,451 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 12:09:27,451 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 12:09:27,451 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 12:09:27,451 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T12:08:58', tmtdew=12.91, humidity=40.72, cloud=0.0, wind=17.57, temperature=11.73, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T10:08:24.691', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 12:09:27,451 [DEBUG][       Thread-254331][   transport.py][1871] : EOF in transport thread
2025-06-13 12:09:27,535 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 12:09:27,546 [DEBUG][       Thread-254334][   transport.py][1871] : starting thread (client mode): 0x867b7100
2025-06-13 12:09:27,546 [DEBUG][       Thread-254334][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 12:09:27,563 [DEBUG][       Thread-254334][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 12:09:27,563 [ INFO][       Thread-254334][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 12:09:27,571 [DEBUG][       Thread-254334][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 12:09:27,572 [DEBUG][       Thread-254334][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 12:09:27,572 [DEBUG][       Thread-254334][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 12:09:27,572 [DEBUG][       Thread-254334][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:09:27,572 [DEBUG][       Thread-254334][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:09:27,572 [DEBUG][       Thread-254334][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:09:27,572 [DEBUG][       Thread-254334][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:09:27,572 [DEBUG][       Thread-254334][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 12:09:27,572 [DEBUG][       Thread-254334][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 12:09:27,572 [DEBUG][       Thread-254334][   transport.py][1871] : client lang: <none>
2025-06-13 12:09:27,572 [DEBUG][       Thread-254334][   transport.py][1871] : server lang: <none>
2025-06-13 12:09:27,572 [DEBUG][       Thread-254334][   transport.py][1871] : kex follows: False
2025-06-13 12:09:27,572 [DEBUG][       Thread-254334][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 12:09:27,572 [DEBUG][       Thread-254334][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 12:09:27,572 [DEBUG][       Thread-254334][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 12:09:27,572 [DEBUG][       Thread-254334][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 12:09:27,572 [DEBUG][       Thread-254334][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 12:09:27,572 [DEBUG][       Thread-254334][   transport.py][1871] : Compression: none
2025-06-13 12:09:27,573 [DEBUG][       Thread-254334][   transport.py][1871] : === End of kex handshake ===
2025-06-13 12:09:27,635 [DEBUG][       Thread-254334][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 12:09:27,635 [DEBUG][       Thread-254334][   transport.py][1871] : Switch to new keys ...
2025-06-13 12:09:27,636 [DEBUG][       Thread-254334][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 12:09:27,636 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 12:09:27,637 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 12:09:27,699 [DEBUG][       Thread-254334][   transport.py][1871] : userauth is OK
2025-06-13 12:09:27,700 [DEBUG][       Thread-254334][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 12:09:27,700 [DEBUG][       Thread-254334][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 12:09:27,700 [DEBUG][       Thread-254334][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 12:09:27,700 [DEBUG][       Thread-254334][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 12:09:27,727 [ INFO][       Thread-254334][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 12:09:27,728 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 12:09:27,728 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 12:09:28,766 [DEBUG][       Thread-254334][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 12:09:28,767 [DEBUG][       Thread-254334][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 12:09:28,817 [DEBUG][       Thread-254334][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 12:09:28,817 [DEBUG][       Thread-254334][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 12:09:28,829 [DEBUG][       Thread-254334][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 12:09:28,842 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 12:09:28,842 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 12:09:28,858 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 12:09:28,871 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 12:09:28,871 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 12:09:28,871 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 12:09:28,887 [DEBUG][       Thread-254334][   transport.py][1871] : EOF in transport thread
2025-06-13 12:09:35,066 [DEBUG][Thread-254336 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:09:38,882 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 12:09:38,882 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 12:09:38,882 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 12:09:38,885 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 12:09:39,346 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 12, 9, 30), 12.88, 40.78, 0.0, 14.73, 11.63, 0, 0, 0, 2, 0, 0),)
2025-06-13 12:09:39,346 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 12:09:30
2025-06-13 12:09:39,424 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 12:09:39,430 [DEBUG][       Thread-254337][   transport.py][1871] : starting thread (client mode): 0x863edba0
2025-06-13 12:09:39,430 [DEBUG][       Thread-254337][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 12:09:39,451 [DEBUG][       Thread-254337][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 12:09:39,451 [ INFO][       Thread-254337][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 12:09:39,455 [DEBUG][       Thread-254337][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 12:09:39,455 [DEBUG][       Thread-254337][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 12:09:39,455 [DEBUG][       Thread-254337][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 12:09:39,455 [DEBUG][       Thread-254337][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:09:39,455 [DEBUG][       Thread-254337][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:09:39,455 [DEBUG][       Thread-254337][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:09:39,455 [DEBUG][       Thread-254337][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:09:39,455 [DEBUG][       Thread-254337][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 12:09:39,455 [DEBUG][       Thread-254337][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 12:09:39,455 [DEBUG][       Thread-254337][   transport.py][1871] : client lang: <none>
2025-06-13 12:09:39,455 [DEBUG][       Thread-254337][   transport.py][1871] : server lang: <none>
2025-06-13 12:09:39,455 [DEBUG][       Thread-254337][   transport.py][1871] : kex follows: False
2025-06-13 12:09:39,455 [DEBUG][       Thread-254337][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 12:09:39,455 [DEBUG][       Thread-254337][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 12:09:39,455 [DEBUG][       Thread-254337][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 12:09:39,455 [DEBUG][       Thread-254337][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 12:09:39,455 [DEBUG][       Thread-254337][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 12:09:39,455 [DEBUG][       Thread-254337][   transport.py][1871] : Compression: none
2025-06-13 12:09:39,455 [DEBUG][       Thread-254337][   transport.py][1871] : === End of kex handshake ===
2025-06-13 12:09:39,472 [DEBUG][       Thread-254337][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 12:09:39,472 [DEBUG][       Thread-254337][   transport.py][1871] : Switch to new keys ...
2025-06-13 12:09:39,473 [DEBUG][       Thread-254337][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 12:09:39,473 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 12:09:39,473 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 12:09:39,474 [DEBUG][       Thread-254337][   transport.py][1871] : userauth is OK
2025-06-13 12:09:39,488 [ INFO][       Thread-254337][   transport.py][1871] : Authentication (password) successful!
2025-06-13 12:09:39,488 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 12:09:40,084 [DEBUG][       Thread-254337][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 12:09:40,084 [DEBUG][       Thread-254337][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 12:09:40,125 [DEBUG][       Thread-254337][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 12:09:40,125 [DEBUG][       Thread-254337][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 12:09:40,128 [DEBUG][       Thread-254337][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 12:09:40,141 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 12:09:40,141 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 12:09:40,143 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 12:09:40,146 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 12:09:40,152 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 12:09:40,154 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 12:09:40,154 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 12:09:40,155 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 12:09:40,155 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.423202 -999.00  +11.70  18.31     44   +0.00 1 1 1 1 1   888    0 12.35 46.05 ----- 19.4 18.3 20.6 21.7 15.8 -28.2 14.6 -29.7 14.3 -27.9 15.5 -26.1
2025-06-13 12:09:40,155 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 12:09:40,155 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 12:09:40,155 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.423202
2025-06-13 12:09:40,156 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 12:09:40,156 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 12:09:40,156 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 12:09:40,157 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 12:09:40,157 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 12:09:40,157 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T12:09:30', tmtdew=12.88, humidity=40.78, cloud=0.0, wind=14.73, temperature=11.63, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T10:09:24.653', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 12:09:40,158 [DEBUG][       Thread-254337][   transport.py][1871] : EOF in transport thread
2025-06-13 12:09:40,240 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 12:09:40,256 [DEBUG][       Thread-254340][   transport.py][1871] : starting thread (client mode): 0x867b5b40
2025-06-13 12:09:40,256 [DEBUG][       Thread-254340][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 12:09:40,273 [DEBUG][       Thread-254340][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 12:09:40,274 [ INFO][       Thread-254340][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 12:09:40,284 [DEBUG][       Thread-254340][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 12:09:40,284 [DEBUG][       Thread-254340][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 12:09:40,284 [DEBUG][       Thread-254340][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 12:09:40,284 [DEBUG][       Thread-254340][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:09:40,284 [DEBUG][       Thread-254340][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:09:40,284 [DEBUG][       Thread-254340][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:09:40,284 [DEBUG][       Thread-254340][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:09:40,284 [DEBUG][       Thread-254340][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 12:09:40,284 [DEBUG][       Thread-254340][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 12:09:40,284 [DEBUG][       Thread-254340][   transport.py][1871] : client lang: <none>
2025-06-13 12:09:40,284 [DEBUG][       Thread-254340][   transport.py][1871] : server lang: <none>
2025-06-13 12:09:40,285 [DEBUG][       Thread-254340][   transport.py][1871] : kex follows: False
2025-06-13 12:09:40,285 [DEBUG][       Thread-254340][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 12:09:40,285 [DEBUG][       Thread-254340][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 12:09:40,285 [DEBUG][       Thread-254340][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 12:09:40,285 [DEBUG][       Thread-254340][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 12:09:40,285 [DEBUG][       Thread-254340][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 12:09:40,285 [DEBUG][       Thread-254340][   transport.py][1871] : Compression: none
2025-06-13 12:09:40,285 [DEBUG][       Thread-254340][   transport.py][1871] : === End of kex handshake ===
2025-06-13 12:09:40,347 [DEBUG][       Thread-254340][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 12:09:40,347 [DEBUG][       Thread-254340][   transport.py][1871] : Switch to new keys ...
2025-06-13 12:09:40,348 [DEBUG][       Thread-254340][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 12:09:40,348 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 12:09:40,349 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 12:09:40,408 [DEBUG][       Thread-254340][   transport.py][1871] : userauth is OK
2025-06-13 12:09:40,408 [DEBUG][       Thread-254340][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 12:09:40,408 [DEBUG][       Thread-254340][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 12:09:40,408 [DEBUG][       Thread-254340][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 12:09:40,408 [DEBUG][       Thread-254340][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 12:09:40,427 [ INFO][       Thread-254340][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 12:09:40,428 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 12:09:40,428 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 12:09:40,934 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:09:40,935 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:09:41,448 [DEBUG][       Thread-254340][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 12:09:41,448 [DEBUG][       Thread-254340][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 12:09:41,497 [DEBUG][       Thread-254340][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 12:09:41,497 [DEBUG][       Thread-254340][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 12:09:41,511 [DEBUG][       Thread-254340][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 12:09:41,525 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 12:09:41,525 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 12:09:41,535 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 12:09:41,545 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 12:09:41,545 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 12:09:41,546 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 12:09:41,560 [DEBUG][       Thread-254340][   transport.py][1871] : EOF in transport thread
2025-06-13 12:09:44,088 [DEBUG][Thread-254342 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:09:51,556 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 12:09:51,556 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 12:09:51,556 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 12:09:51,559 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 12:09:52,018 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 12, 9, 30), 12.88, 40.78, 0.0, 14.73, 11.63, 0, 0, 0, 2, 0, 0),)
2025-06-13 12:09:52,018 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 12:09:30
2025-06-13 12:09:52,095 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 12:09:52,099 [DEBUG][       Thread-254343][   transport.py][1871] : starting thread (client mode): 0x863eece0
2025-06-13 12:09:52,099 [DEBUG][       Thread-254343][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 12:09:52,120 [DEBUG][       Thread-254343][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 12:09:52,120 [ INFO][       Thread-254343][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 12:09:52,123 [DEBUG][       Thread-254343][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 12:09:52,123 [DEBUG][       Thread-254343][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 12:09:52,123 [DEBUG][       Thread-254343][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 12:09:52,123 [DEBUG][       Thread-254343][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:09:52,123 [DEBUG][       Thread-254343][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:09:52,123 [DEBUG][       Thread-254343][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:09:52,123 [DEBUG][       Thread-254343][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:09:52,123 [DEBUG][       Thread-254343][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 12:09:52,123 [DEBUG][       Thread-254343][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 12:09:52,123 [DEBUG][       Thread-254343][   transport.py][1871] : client lang: <none>
2025-06-13 12:09:52,123 [DEBUG][       Thread-254343][   transport.py][1871] : server lang: <none>
2025-06-13 12:09:52,123 [DEBUG][       Thread-254343][   transport.py][1871] : kex follows: False
2025-06-13 12:09:52,123 [DEBUG][       Thread-254343][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 12:09:52,123 [DEBUG][       Thread-254343][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 12:09:52,123 [DEBUG][       Thread-254343][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 12:09:52,123 [DEBUG][       Thread-254343][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 12:09:52,123 [DEBUG][       Thread-254343][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 12:09:52,123 [DEBUG][       Thread-254343][   transport.py][1871] : Compression: none
2025-06-13 12:09:52,123 [DEBUG][       Thread-254343][   transport.py][1871] : === End of kex handshake ===
2025-06-13 12:09:52,142 [DEBUG][       Thread-254343][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 12:09:52,142 [DEBUG][       Thread-254343][   transport.py][1871] : Switch to new keys ...
2025-06-13 12:09:52,142 [DEBUG][       Thread-254343][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 12:09:52,142 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 12:09:52,142 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 12:09:52,143 [DEBUG][       Thread-254343][   transport.py][1871] : userauth is OK
2025-06-13 12:09:52,167 [ INFO][       Thread-254343][   transport.py][1871] : Authentication (password) successful!
2025-06-13 12:09:52,167 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 12:09:52,804 [DEBUG][       Thread-254343][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 12:09:52,805 [DEBUG][       Thread-254343][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 12:09:52,849 [DEBUG][       Thread-254343][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 12:09:52,849 [DEBUG][       Thread-254343][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 12:09:52,852 [DEBUG][       Thread-254343][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 12:09:52,864 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 12:09:52,864 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 12:09:52,866 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 12:09:52,868 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 12:09:52,873 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 12:09:52,875 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 12:09:52,875 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 12:09:52,876 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 12:09:52,877 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.423202 -999.00  +11.70  18.31     44   +0.00 1 1 1 1 1   888    0 12.35 46.05 ----- 19.4 18.3 20.6 21.7 15.8 -28.2 14.6 -29.7 14.3 -27.9 15.5 -26.1
2025-06-13 12:09:52,877 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 12:09:52,877 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 12:09:52,877 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.423202
2025-06-13 12:09:52,877 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 12:09:52,878 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 12:09:52,878 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 12:09:52,878 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 12:09:52,878 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 12:09:52,878 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T12:09:30', tmtdew=12.88, humidity=40.78, cloud=0.0, wind=14.73, temperature=11.63, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T10:09:24.653', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 12:09:52,878 [DEBUG][       Thread-254343][   transport.py][1871] : EOF in transport thread
2025-06-13 12:09:52,963 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 12:09:52,973 [DEBUG][       Thread-254346][   transport.py][1871] : starting thread (client mode): 0x867b5ed0
2025-06-13 12:09:52,973 [DEBUG][       Thread-254346][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 12:09:52,989 [DEBUG][       Thread-254346][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 12:09:52,989 [ INFO][       Thread-254346][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 12:09:52,997 [DEBUG][       Thread-254346][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 12:09:52,997 [DEBUG][       Thread-254346][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 12:09:52,997 [DEBUG][       Thread-254346][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 12:09:52,997 [DEBUG][       Thread-254346][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:09:52,997 [DEBUG][       Thread-254346][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:09:52,997 [DEBUG][       Thread-254346][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:09:52,997 [DEBUG][       Thread-254346][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:09:52,997 [DEBUG][       Thread-254346][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 12:09:52,997 [DEBUG][       Thread-254346][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 12:09:52,997 [DEBUG][       Thread-254346][   transport.py][1871] : client lang: <none>
2025-06-13 12:09:52,997 [DEBUG][       Thread-254346][   transport.py][1871] : server lang: <none>
2025-06-13 12:09:52,997 [DEBUG][       Thread-254346][   transport.py][1871] : kex follows: False
2025-06-13 12:09:52,997 [DEBUG][       Thread-254346][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 12:09:52,997 [DEBUG][       Thread-254346][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 12:09:52,997 [DEBUG][       Thread-254346][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 12:09:52,997 [DEBUG][       Thread-254346][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 12:09:52,997 [DEBUG][       Thread-254346][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 12:09:52,998 [DEBUG][       Thread-254346][   transport.py][1871] : Compression: none
2025-06-13 12:09:52,998 [DEBUG][       Thread-254346][   transport.py][1871] : === End of kex handshake ===
2025-06-13 12:09:53,056 [DEBUG][       Thread-254346][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 12:09:53,057 [DEBUG][       Thread-254346][   transport.py][1871] : Switch to new keys ...
2025-06-13 12:09:53,057 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 12:09:53,058 [DEBUG][       Thread-254346][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 12:09:53,058 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 12:09:53,114 [DEBUG][       Thread-254346][   transport.py][1871] : userauth is OK
2025-06-13 12:09:53,114 [DEBUG][       Thread-254346][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 12:09:53,114 [DEBUG][       Thread-254346][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 12:09:53,114 [DEBUG][       Thread-254346][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 12:09:53,114 [DEBUG][       Thread-254346][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 12:09:53,133 [DEBUG][Thread-254348 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:09:53,135 [ INFO][       Thread-254346][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 12:09:53,135 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 12:09:53,135 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 12:09:54,150 [DEBUG][       Thread-254346][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 12:09:54,150 [DEBUG][       Thread-254346][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 12:09:54,200 [DEBUG][       Thread-254346][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 12:09:54,201 [DEBUG][       Thread-254346][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 12:09:54,210 [DEBUG][       Thread-254346][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 12:09:54,219 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 12:09:54,220 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 12:09:54,229 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 12:09:54,238 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 12:09:54,238 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 12:09:54,239 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 12:09:54,247 [DEBUG][       Thread-254346][   transport.py][1871] : EOF in transport thread
2025-06-13 12:10:02,152 [DEBUG][Thread-254349 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:10:04,249 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 12:10:04,250 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 12:10:04,250 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 12:10:04,252 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 12:10:04,700 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 12, 10, 1), 12.9, 40.74, 0.0, 14.38, 11.64, 0, 0, 0, 2, 0, 0),)
2025-06-13 12:10:04,700 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 12:10:01
2025-06-13 12:10:04,778 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 12:10:04,783 [DEBUG][       Thread-254350][   transport.py][1871] : starting thread (client mode): 0x867b6440
2025-06-13 12:10:04,783 [DEBUG][       Thread-254350][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 12:10:04,804 [DEBUG][       Thread-254350][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 12:10:04,804 [ INFO][       Thread-254350][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 12:10:04,807 [DEBUG][       Thread-254350][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 12:10:04,807 [DEBUG][       Thread-254350][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 12:10:04,807 [DEBUG][       Thread-254350][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 12:10:04,807 [DEBUG][       Thread-254350][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:10:04,807 [DEBUG][       Thread-254350][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:10:04,807 [DEBUG][       Thread-254350][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:10:04,807 [DEBUG][       Thread-254350][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:10:04,807 [DEBUG][       Thread-254350][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 12:10:04,807 [DEBUG][       Thread-254350][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 12:10:04,807 [DEBUG][       Thread-254350][   transport.py][1871] : client lang: <none>
2025-06-13 12:10:04,807 [DEBUG][       Thread-254350][   transport.py][1871] : server lang: <none>
2025-06-13 12:10:04,807 [DEBUG][       Thread-254350][   transport.py][1871] : kex follows: False
2025-06-13 12:10:04,807 [DEBUG][       Thread-254350][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 12:10:04,807 [DEBUG][       Thread-254350][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 12:10:04,807 [DEBUG][       Thread-254350][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 12:10:04,808 [DEBUG][       Thread-254350][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 12:10:04,808 [DEBUG][       Thread-254350][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 12:10:04,808 [DEBUG][       Thread-254350][   transport.py][1871] : Compression: none
2025-06-13 12:10:04,808 [DEBUG][       Thread-254350][   transport.py][1871] : === End of kex handshake ===
2025-06-13 12:10:04,824 [DEBUG][       Thread-254350][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 12:10:04,824 [DEBUG][       Thread-254350][   transport.py][1871] : Switch to new keys ...
2025-06-13 12:10:04,825 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 12:10:04,825 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 12:10:04,826 [DEBUG][       Thread-254350][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 12:10:04,826 [DEBUG][       Thread-254350][   transport.py][1871] : userauth is OK
2025-06-13 12:10:04,839 [ INFO][       Thread-254350][   transport.py][1871] : Authentication (password) successful!
2025-06-13 12:10:04,840 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 12:10:05,619 [DEBUG][       Thread-254350][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 12:10:05,619 [DEBUG][       Thread-254350][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 12:10:05,661 [DEBUG][       Thread-254350][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 12:10:05,661 [DEBUG][       Thread-254350][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 12:10:05,664 [DEBUG][       Thread-254350][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 12:10:05,675 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 12:10:05,675 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 12:10:05,677 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 12:10:05,681 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 12:10:05,686 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 12:10:05,687 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 12:10:05,688 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 12:10:05,688 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 12:10:05,688 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.423549 -999.00  +11.80  21.97     43   -0.10 1 1 1 1 1   888    0 12.48 50.55 ----- 20.6 22.0 43.0 23.8 15.9 -28.2 14.6 -30.0 14.3 -29.1 15.6 -26.4
2025-06-13 12:10:05,689 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 12:10:05,689 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 12:10:05,689 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.423549
2025-06-13 12:10:05,689 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 12:10:05,690 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 12:10:05,690 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 12:10:05,690 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 12:10:05,690 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 12:10:05,690 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T12:10:01', tmtdew=12.9, humidity=40.74, cloud=0.0, wind=14.38, temperature=11.64, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T10:09:54.634', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 12:10:05,691 [DEBUG][       Thread-254350][   transport.py][1871] : EOF in transport thread
2025-06-13 12:10:05,773 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 12:10:05,785 [DEBUG][       Thread-254353][   transport.py][1871] : starting thread (client mode): 0x863ed660
2025-06-13 12:10:05,785 [DEBUG][       Thread-254353][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 12:10:05,802 [DEBUG][       Thread-254353][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 12:10:05,802 [ INFO][       Thread-254353][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 12:10:05,812 [DEBUG][       Thread-254353][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 12:10:05,812 [DEBUG][       Thread-254353][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 12:10:05,812 [DEBUG][       Thread-254353][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 12:10:05,812 [DEBUG][       Thread-254353][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:10:05,812 [DEBUG][       Thread-254353][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:10:05,812 [DEBUG][       Thread-254353][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:10:05,812 [DEBUG][       Thread-254353][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:10:05,812 [DEBUG][       Thread-254353][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 12:10:05,812 [DEBUG][       Thread-254353][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 12:10:05,812 [DEBUG][       Thread-254353][   transport.py][1871] : client lang: <none>
2025-06-13 12:10:05,813 [DEBUG][       Thread-254353][   transport.py][1871] : server lang: <none>
2025-06-13 12:10:05,813 [DEBUG][       Thread-254353][   transport.py][1871] : kex follows: False
2025-06-13 12:10:05,813 [DEBUG][       Thread-254353][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 12:10:05,813 [DEBUG][       Thread-254353][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 12:10:05,813 [DEBUG][       Thread-254353][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 12:10:05,813 [DEBUG][       Thread-254353][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 12:10:05,813 [DEBUG][       Thread-254353][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 12:10:05,813 [DEBUG][       Thread-254353][   transport.py][1871] : Compression: none
2025-06-13 12:10:05,813 [DEBUG][       Thread-254353][   transport.py][1871] : === End of kex handshake ===
2025-06-13 12:10:05,875 [DEBUG][       Thread-254353][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 12:10:05,876 [DEBUG][       Thread-254353][   transport.py][1871] : Switch to new keys ...
2025-06-13 12:10:05,877 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 12:10:05,877 [DEBUG][       Thread-254353][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 12:10:05,878 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 12:10:05,935 [DEBUG][       Thread-254353][   transport.py][1871] : userauth is OK
2025-06-13 12:10:05,936 [DEBUG][       Thread-254353][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 12:10:05,936 [DEBUG][       Thread-254353][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 12:10:05,936 [DEBUG][       Thread-254353][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 12:10:05,936 [DEBUG][       Thread-254353][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 12:10:05,956 [ INFO][       Thread-254353][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 12:10:05,956 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 12:10:05,957 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 12:10:07,054 [DEBUG][Thread-254355 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:10:07,101 [DEBUG][       Thread-254353][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 12:10:07,101 [DEBUG][       Thread-254353][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 12:10:07,152 [DEBUG][       Thread-254353][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 12:10:07,152 [DEBUG][       Thread-254353][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 12:10:07,161 [DEBUG][       Thread-254353][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 12:10:07,170 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 12:10:07,170 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 12:10:07,179 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 12:10:07,188 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 12:10:07,189 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 12:10:07,189 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 12:10:07,197 [DEBUG][       Thread-254353][   transport.py][1871] : EOF in transport thread
2025-06-13 12:10:08,134 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:10:08,136 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:10:11,175 [DEBUG][Thread-254356 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:10:11,354 [DEBUG][Thread-254357 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:10:17,199 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 12:10:17,199 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 12:10:17,199 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 12:10:17,202 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 12:10:17,651 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 12, 10, 1), 12.9, 40.74, 0.0, 14.38, 11.64, 0, 0, 0, 2, 0, 0),)
2025-06-13 12:10:17,651 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 12:10:01
2025-06-13 12:10:17,730 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 12:10:17,737 [DEBUG][       Thread-254358][   transport.py][1871] : starting thread (client mode): 0x863a4400
2025-06-13 12:10:17,737 [DEBUG][       Thread-254358][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 12:10:17,758 [DEBUG][       Thread-254358][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 12:10:17,758 [ INFO][       Thread-254358][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 12:10:17,761 [DEBUG][       Thread-254358][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 12:10:17,761 [DEBUG][       Thread-254358][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 12:10:17,762 [DEBUG][       Thread-254358][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 12:10:17,762 [DEBUG][       Thread-254358][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:10:17,762 [DEBUG][       Thread-254358][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:10:17,762 [DEBUG][       Thread-254358][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:10:17,762 [DEBUG][       Thread-254358][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:10:17,762 [DEBUG][       Thread-254358][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 12:10:17,762 [DEBUG][       Thread-254358][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 12:10:17,762 [DEBUG][       Thread-254358][   transport.py][1871] : client lang: <none>
2025-06-13 12:10:17,762 [DEBUG][       Thread-254358][   transport.py][1871] : server lang: <none>
2025-06-13 12:10:17,762 [DEBUG][       Thread-254358][   transport.py][1871] : kex follows: False
2025-06-13 12:10:17,762 [DEBUG][       Thread-254358][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 12:10:17,762 [DEBUG][       Thread-254358][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 12:10:17,762 [DEBUG][       Thread-254358][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 12:10:17,762 [DEBUG][       Thread-254358][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 12:10:17,762 [DEBUG][       Thread-254358][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 12:10:17,762 [DEBUG][       Thread-254358][   transport.py][1871] : Compression: none
2025-06-13 12:10:17,762 [DEBUG][       Thread-254358][   transport.py][1871] : === End of kex handshake ===
2025-06-13 12:10:17,781 [DEBUG][       Thread-254358][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 12:10:17,781 [DEBUG][       Thread-254358][   transport.py][1871] : Switch to new keys ...
2025-06-13 12:10:17,782 [DEBUG][       Thread-254358][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 12:10:17,782 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 12:10:17,782 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 12:10:17,783 [DEBUG][       Thread-254358][   transport.py][1871] : userauth is OK
2025-06-13 12:10:17,808 [ INFO][       Thread-254358][   transport.py][1871] : Authentication (password) successful!
2025-06-13 12:10:17,808 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 12:10:18,472 [DEBUG][       Thread-254358][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 12:10:18,473 [DEBUG][       Thread-254358][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 12:10:18,517 [DEBUG][       Thread-254358][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 12:10:18,517 [DEBUG][       Thread-254358][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 12:10:18,521 [DEBUG][       Thread-254358][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 12:10:18,533 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 12:10:18,534 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 12:10:18,535 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 12:10:18,537 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 12:10:18,543 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 12:10:18,545 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 12:10:18,545 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 12:10:18,545 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 12:10:18,546 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.423549 -999.00  +11.80  21.97     43   -0.10 1 1 1 1 1   888    0 12.48 50.55 ----- 20.6 22.0 43.0 23.8 15.9 -28.2 14.6 -30.0 14.3 -29.1 15.6 -26.4
2025-06-13 12:10:18,546 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 12:10:18,546 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 12:10:18,546 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.423549
2025-06-13 12:10:18,546 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 12:10:18,546 [DEBUG][       Thread-254358][   transport.py][1871] : EOF in transport thread
2025-06-13 12:10:18,547 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 12:10:18,548 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 12:10:18,548 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 12:10:18,548 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 12:10:18,548 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T12:10:01', tmtdew=12.9, humidity=40.74, cloud=0.0, wind=14.38, temperature=11.64, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T10:09:54.634', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 12:10:18,631 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 12:10:20,219 [DEBUG][Thread-254361 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:10:29,242 [DEBUG][Thread-254362 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:10:38,261 [DEBUG][Thread-254363 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:10:41,073 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:10:41,074 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:10:47,280 [DEBUG][Thread-254364 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:10:56,301 [DEBUG][Thread-254365 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:11:05,323 [DEBUG][Thread-254366 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:11:08,218 [DEBUG][Thread-254367 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:11:09,271 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:11:09,273 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:11:11,404 [DEBUG][Thread-254368 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:11:14,344 [DEBUG][Thread-254369 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:11:23,364 [DEBUG][Thread-254370 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:11:32,387 [DEBUG][Thread-254371 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:11:41,216 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:11:41,217 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:11:41,408 [DEBUG][Thread-254372 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:11:50,430 [DEBUG][Thread-254373 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:11:59,449 [DEBUG][Thread-254374 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:12:08,472 [DEBUG][Thread-254375 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:12:09,353 [DEBUG][Thread-254376 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:12:10,406 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:12:10,406 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:12:11,457 [DEBUG][Thread-254377 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:12:17,493 [DEBUG][Thread-254378 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:12:26,515 [DEBUG][Thread-254379 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:12:27,540 [WARNING][ poll_weather_worker][      driver.py][ 286] : Unable to open ssh connection for writing weather state to io.saao.ac.za: [Errno 110] Connection timed out
2025-06-13 12:12:35,532 [DEBUG][Thread-254380 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:12:37,548 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 12:12:37,548 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 12:12:37,548 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 12:12:37,549 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 12:12:38,030 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 12, 12, 8), 13.1, 40.2, 0.0, 14.08, 11.94, 0, 0, 0, 2, 0, 0),)
2025-06-13 12:12:38,030 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 12:12:08
2025-06-13 12:12:38,112 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 12:12:38,116 [DEBUG][       Thread-254381][   transport.py][1871] : starting thread (client mode): 0x863a61a0
2025-06-13 12:12:38,116 [DEBUG][       Thread-254381][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 12:12:38,135 [DEBUG][       Thread-254381][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 12:12:38,135 [ INFO][       Thread-254381][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 12:12:38,139 [DEBUG][       Thread-254381][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 12:12:38,139 [DEBUG][       Thread-254381][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 12:12:38,139 [DEBUG][       Thread-254381][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 12:12:38,139 [DEBUG][       Thread-254381][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:12:38,139 [DEBUG][       Thread-254381][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:12:38,139 [DEBUG][       Thread-254381][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:12:38,139 [DEBUG][       Thread-254381][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:12:38,139 [DEBUG][       Thread-254381][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 12:12:38,139 [DEBUG][       Thread-254381][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 12:12:38,139 [DEBUG][       Thread-254381][   transport.py][1871] : client lang: <none>
2025-06-13 12:12:38,139 [DEBUG][       Thread-254381][   transport.py][1871] : server lang: <none>
2025-06-13 12:12:38,139 [DEBUG][       Thread-254381][   transport.py][1871] : kex follows: False
2025-06-13 12:12:38,139 [DEBUG][       Thread-254381][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 12:12:38,139 [DEBUG][       Thread-254381][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 12:12:38,139 [DEBUG][       Thread-254381][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 12:12:38,139 [DEBUG][       Thread-254381][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 12:12:38,140 [DEBUG][       Thread-254381][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 12:12:38,140 [DEBUG][       Thread-254381][   transport.py][1871] : Compression: none
2025-06-13 12:12:38,140 [DEBUG][       Thread-254381][   transport.py][1871] : === End of kex handshake ===
2025-06-13 12:12:38,156 [DEBUG][       Thread-254381][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 12:12:38,157 [DEBUG][       Thread-254381][   transport.py][1871] : Switch to new keys ...
2025-06-13 12:12:38,157 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 12:12:38,158 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 12:12:38,158 [DEBUG][       Thread-254381][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 12:12:38,159 [DEBUG][       Thread-254381][   transport.py][1871] : userauth is OK
2025-06-13 12:12:38,184 [ INFO][       Thread-254381][   transport.py][1871] : Authentication (password) successful!
2025-06-13 12:12:38,185 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 12:12:38,825 [DEBUG][       Thread-254381][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 12:12:38,825 [DEBUG][       Thread-254381][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 12:12:38,869 [DEBUG][       Thread-254381][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 12:12:38,869 [DEBUG][       Thread-254381][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 12:12:38,872 [DEBUG][       Thread-254381][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 12:12:38,886 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 12:12:38,886 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 12:12:38,888 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 12:12:38,890 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 12:12:38,895 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 12:12:38,897 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 12:12:38,898 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 12:12:38,898 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 12:12:38,898 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.424938 -999.00  +11.60  14.15     45   +0.20 1 1 1 1 1   888    0 13.12 61.63 ----- 17.2 14.2 49.9 21.6 16.0 -28.1 14.7 -29.5 14.3 -28.0 15.6 -26.3
2025-06-13 12:12:38,898 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 12:12:38,899 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 12:12:38,899 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.424938
2025-06-13 12:12:38,899 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 12:12:38,900 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 12:12:38,900 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 12:12:38,900 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 12:12:38,900 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 12:12:38,900 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T12:12:08', tmtdew=13.1, humidity=40.2, cloud=0.0, wind=14.08, temperature=11.94, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T10:11:54.643', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 12:12:38,901 [DEBUG][       Thread-254381][   transport.py][1871] : EOF in transport thread
2025-06-13 12:12:38,984 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 12:12:38,998 [DEBUG][       Thread-254384][   transport.py][1871] : starting thread (client mode): 0x867b66e0
2025-06-13 12:12:38,998 [DEBUG][       Thread-254384][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 12:12:39,013 [DEBUG][       Thread-254384][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 12:12:39,013 [ INFO][       Thread-254384][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 12:12:39,021 [DEBUG][       Thread-254384][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 12:12:39,021 [DEBUG][       Thread-254384][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 12:12:39,021 [DEBUG][       Thread-254384][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 12:12:39,021 [DEBUG][       Thread-254384][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:12:39,021 [DEBUG][       Thread-254384][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:12:39,021 [DEBUG][       Thread-254384][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:12:39,021 [DEBUG][       Thread-254384][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:12:39,021 [DEBUG][       Thread-254384][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 12:12:39,021 [DEBUG][       Thread-254384][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 12:12:39,021 [DEBUG][       Thread-254384][   transport.py][1871] : client lang: <none>
2025-06-13 12:12:39,021 [DEBUG][       Thread-254384][   transport.py][1871] : server lang: <none>
2025-06-13 12:12:39,021 [DEBUG][       Thread-254384][   transport.py][1871] : kex follows: False
2025-06-13 12:12:39,021 [DEBUG][       Thread-254384][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 12:12:39,021 [DEBUG][       Thread-254384][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 12:12:39,021 [DEBUG][       Thread-254384][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 12:12:39,021 [DEBUG][       Thread-254384][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 12:12:39,021 [DEBUG][       Thread-254384][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 12:12:39,022 [DEBUG][       Thread-254384][   transport.py][1871] : Compression: none
2025-06-13 12:12:39,022 [DEBUG][       Thread-254384][   transport.py][1871] : === End of kex handshake ===
2025-06-13 12:12:39,081 [DEBUG][       Thread-254384][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 12:12:39,081 [DEBUG][       Thread-254384][   transport.py][1871] : Switch to new keys ...
2025-06-13 12:12:39,082 [DEBUG][       Thread-254384][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 12:12:39,082 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 12:12:39,083 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 12:12:39,144 [DEBUG][       Thread-254384][   transport.py][1871] : userauth is OK
2025-06-13 12:12:39,144 [DEBUG][       Thread-254384][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 12:12:39,144 [DEBUG][       Thread-254384][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 12:12:39,144 [DEBUG][       Thread-254384][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 12:12:39,145 [DEBUG][       Thread-254384][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 12:12:39,168 [ INFO][       Thread-254384][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 12:12:39,169 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 12:12:39,169 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 12:12:40,172 [DEBUG][       Thread-254384][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 12:12:40,173 [DEBUG][       Thread-254384][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 12:12:40,227 [DEBUG][       Thread-254384][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 12:12:40,227 [DEBUG][       Thread-254384][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 12:12:40,239 [DEBUG][       Thread-254384][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 12:12:40,252 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 12:12:40,253 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 12:12:40,265 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 12:12:40,275 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 12:12:40,275 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 12:12:40,275 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 12:12:40,284 [DEBUG][       Thread-254384][   transport.py][1871] : EOF in transport thread
2025-06-13 12:12:41,355 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:12:41,356 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:12:44,552 [DEBUG][Thread-254386 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:12:50,284 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 12:12:50,284 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 12:12:50,284 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 12:12:50,287 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 12:12:50,785 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 12, 12, 40), 13.0, 40.47, 0.0, 16.6, 11.93, 0, 0, 0, 2, 0, 0),)
2025-06-13 12:12:50,785 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 12:12:40
2025-06-13 12:12:50,868 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 12:12:50,872 [DEBUG][       Thread-254387][   transport.py][1871] : starting thread (client mode): 0x863a7640
2025-06-13 12:12:50,872 [DEBUG][       Thread-254387][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 12:12:50,892 [DEBUG][       Thread-254387][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 12:12:50,892 [ INFO][       Thread-254387][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 12:12:50,895 [DEBUG][       Thread-254387][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 12:12:50,895 [DEBUG][       Thread-254387][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 12:12:50,895 [DEBUG][       Thread-254387][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 12:12:50,895 [DEBUG][       Thread-254387][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:12:50,896 [DEBUG][       Thread-254387][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:12:50,896 [DEBUG][       Thread-254387][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:12:50,896 [DEBUG][       Thread-254387][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:12:50,896 [DEBUG][       Thread-254387][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 12:12:50,896 [DEBUG][       Thread-254387][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 12:12:50,896 [DEBUG][       Thread-254387][   transport.py][1871] : client lang: <none>
2025-06-13 12:12:50,896 [DEBUG][       Thread-254387][   transport.py][1871] : server lang: <none>
2025-06-13 12:12:50,896 [DEBUG][       Thread-254387][   transport.py][1871] : kex follows: False
2025-06-13 12:12:50,896 [DEBUG][       Thread-254387][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 12:12:50,896 [DEBUG][       Thread-254387][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 12:12:50,896 [DEBUG][       Thread-254387][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 12:12:50,896 [DEBUG][       Thread-254387][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 12:12:50,896 [DEBUG][       Thread-254387][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 12:12:50,896 [DEBUG][       Thread-254387][   transport.py][1871] : Compression: none
2025-06-13 12:12:50,896 [DEBUG][       Thread-254387][   transport.py][1871] : === End of kex handshake ===
2025-06-13 12:12:50,915 [DEBUG][       Thread-254387][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 12:12:50,915 [DEBUG][       Thread-254387][   transport.py][1871] : Switch to new keys ...
2025-06-13 12:12:50,916 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 12:12:50,916 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 12:12:50,916 [DEBUG][       Thread-254387][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 12:12:50,917 [DEBUG][       Thread-254387][   transport.py][1871] : userauth is OK
2025-06-13 12:12:50,941 [ INFO][       Thread-254387][   transport.py][1871] : Authentication (password) successful!
2025-06-13 12:12:50,941 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 12:12:51,563 [DEBUG][       Thread-254387][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 12:12:51,563 [DEBUG][       Thread-254387][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 12:12:51,605 [DEBUG][       Thread-254387][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 12:12:51,605 [DEBUG][       Thread-254387][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 12:12:51,608 [DEBUG][       Thread-254387][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 12:12:51,620 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 12:12:51,620 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 12:12:51,622 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 12:12:51,624 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 12:12:51,629 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 12:12:51,631 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 12:12:51,631 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 12:12:51,632 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 12:12:51,632 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.424938 -999.00  +11.60  14.15     45   +0.20 1 1 1 1 1   888    0 13.12 61.63 ----- 17.2 14.2 49.9 21.6 16.0 -28.1 14.7 -29.5 14.3 -28.0 15.6 -26.3
2025-06-13 12:12:51,632 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 12:12:51,632 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 12:12:51,632 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.424938
2025-06-13 12:12:51,633 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 12:12:51,633 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 12:12:51,634 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 12:12:51,634 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 12:12:51,634 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 12:12:51,634 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T12:12:40', tmtdew=13.0, humidity=40.47, cloud=0.0, wind=16.6, temperature=11.93, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T10:11:54.643', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 12:12:51,634 [DEBUG][       Thread-254387][   transport.py][1871] : EOF in transport thread
2025-06-13 12:12:51,718 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 12:12:51,727 [DEBUG][       Thread-254390][   transport.py][1871] : starting thread (client mode): 0x867b7940
2025-06-13 12:12:51,727 [DEBUG][       Thread-254390][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 12:12:51,743 [DEBUG][       Thread-254390][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 12:12:51,743 [ INFO][       Thread-254390][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 12:12:51,752 [DEBUG][       Thread-254390][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 12:12:51,752 [DEBUG][       Thread-254390][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 12:12:51,752 [DEBUG][       Thread-254390][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 12:12:51,752 [DEBUG][       Thread-254390][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:12:51,752 [DEBUG][       Thread-254390][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:12:51,752 [DEBUG][       Thread-254390][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:12:51,752 [DEBUG][       Thread-254390][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:12:51,752 [DEBUG][       Thread-254390][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 12:12:51,752 [DEBUG][       Thread-254390][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 12:12:51,752 [DEBUG][       Thread-254390][   transport.py][1871] : client lang: <none>
2025-06-13 12:12:51,752 [DEBUG][       Thread-254390][   transport.py][1871] : server lang: <none>
2025-06-13 12:12:51,752 [DEBUG][       Thread-254390][   transport.py][1871] : kex follows: False
2025-06-13 12:12:51,752 [DEBUG][       Thread-254390][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 12:12:51,752 [DEBUG][       Thread-254390][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 12:12:51,752 [DEBUG][       Thread-254390][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 12:12:51,752 [DEBUG][       Thread-254390][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 12:12:51,753 [DEBUG][       Thread-254390][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 12:12:51,753 [DEBUG][       Thread-254390][   transport.py][1871] : Compression: none
2025-06-13 12:12:51,753 [DEBUG][       Thread-254390][   transport.py][1871] : === End of kex handshake ===
2025-06-13 12:12:51,816 [DEBUG][       Thread-254390][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 12:12:51,817 [DEBUG][       Thread-254390][   transport.py][1871] : Switch to new keys ...
2025-06-13 12:12:51,817 [DEBUG][       Thread-254390][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 12:12:51,817 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 12:12:51,818 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 12:12:51,875 [DEBUG][       Thread-254390][   transport.py][1871] : userauth is OK
2025-06-13 12:12:51,875 [DEBUG][       Thread-254390][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 12:12:51,875 [DEBUG][       Thread-254390][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 12:12:51,876 [DEBUG][       Thread-254390][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 12:12:51,876 [DEBUG][       Thread-254390][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 12:12:51,894 [ INFO][       Thread-254390][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 12:12:51,894 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 12:12:51,895 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 12:12:52,933 [DEBUG][       Thread-254390][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 12:12:52,933 [DEBUG][       Thread-254390][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 12:12:52,984 [DEBUG][       Thread-254390][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 12:12:52,984 [DEBUG][       Thread-254390][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 12:12:52,992 [DEBUG][       Thread-254390][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 12:12:53,001 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 12:12:53,002 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 12:12:53,010 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 12:12:53,018 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 12:12:53,019 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 12:12:53,019 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 12:12:53,027 [DEBUG][       Thread-254390][   transport.py][1871] : EOF in transport thread
2025-06-13 12:12:53,586 [DEBUG][Thread-254392 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:13:02,619 [DEBUG][Thread-254393 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:13:03,028 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 12:13:03,028 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 12:13:03,028 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 12:13:03,031 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 12:13:03,512 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 12, 12, 40), 13.0, 40.47, 0.0, 16.6, 11.93, 0, 0, 0, 2, 0, 0),)
2025-06-13 12:13:03,513 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 12:12:40
2025-06-13 12:13:03,596 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 12:13:03,600 [DEBUG][       Thread-254394][   transport.py][1871] : starting thread (client mode): 0x863a6bc0
2025-06-13 12:13:03,600 [DEBUG][       Thread-254394][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 12:13:03,620 [DEBUG][       Thread-254394][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 12:13:03,620 [ INFO][       Thread-254394][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 12:13:03,623 [DEBUG][       Thread-254394][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 12:13:03,623 [DEBUG][       Thread-254394][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 12:13:03,623 [DEBUG][       Thread-254394][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 12:13:03,623 [DEBUG][       Thread-254394][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:13:03,623 [DEBUG][       Thread-254394][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:13:03,623 [DEBUG][       Thread-254394][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:13:03,623 [DEBUG][       Thread-254394][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:13:03,623 [DEBUG][       Thread-254394][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 12:13:03,623 [DEBUG][       Thread-254394][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 12:13:03,623 [DEBUG][       Thread-254394][   transport.py][1871] : client lang: <none>
2025-06-13 12:13:03,623 [DEBUG][       Thread-254394][   transport.py][1871] : server lang: <none>
2025-06-13 12:13:03,623 [DEBUG][       Thread-254394][   transport.py][1871] : kex follows: False
2025-06-13 12:13:03,623 [DEBUG][       Thread-254394][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 12:13:03,623 [DEBUG][       Thread-254394][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 12:13:03,623 [DEBUG][       Thread-254394][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 12:13:03,624 [DEBUG][       Thread-254394][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 12:13:03,624 [DEBUG][       Thread-254394][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 12:13:03,624 [DEBUG][       Thread-254394][   transport.py][1871] : Compression: none
2025-06-13 12:13:03,624 [DEBUG][       Thread-254394][   transport.py][1871] : === End of kex handshake ===
2025-06-13 12:13:03,640 [DEBUG][       Thread-254394][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 12:13:03,640 [DEBUG][       Thread-254394][   transport.py][1871] : Switch to new keys ...
2025-06-13 12:13:03,641 [DEBUG][       Thread-254394][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 12:13:03,641 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 12:13:03,641 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 12:13:03,643 [DEBUG][       Thread-254394][   transport.py][1871] : userauth is OK
2025-06-13 12:13:03,667 [ INFO][       Thread-254394][   transport.py][1871] : Authentication (password) successful!
2025-06-13 12:13:03,668 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 12:13:04,305 [DEBUG][       Thread-254394][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 12:13:04,305 [DEBUG][       Thread-254394][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 12:13:04,349 [DEBUG][       Thread-254394][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 12:13:04,349 [DEBUG][       Thread-254394][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 12:13:04,353 [DEBUG][       Thread-254394][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 12:13:04,364 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 12:13:04,365 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 12:13:04,367 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 12:13:04,369 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 12:13:04,374 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 12:13:04,376 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 12:13:04,376 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 12:13:04,377 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 12:13:04,377 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.425285 -999.00  +11.80  19.35     46   +0.60 1 1 1 1 1   888    0 12.83 56.55 ----- 18.1 19.4 36.4 20.8 16.1 -28.0 14.8 -29.6 14.4 -27.5 15.7 -26.5
2025-06-13 12:13:04,377 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 12:13:04,377 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 12:13:04,377 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.425285
2025-06-13 12:13:04,378 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 12:13:04,378 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 12:13:04,378 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 12:13:04,378 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 12:13:04,379 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 12:13:04,379 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T12:12:40', tmtdew=13.0, humidity=40.47, cloud=0.0, wind=16.6, temperature=11.93, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T10:12:24.624', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 12:13:04,380 [DEBUG][       Thread-254394][   transport.py][1871] : EOF in transport thread
2025-06-13 12:13:04,472 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 12:13:04,484 [DEBUG][       Thread-254397][   transport.py][1871] : starting thread (client mode): 0x868c80a0
2025-06-13 12:13:04,484 [DEBUG][       Thread-254397][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 12:13:04,502 [DEBUG][       Thread-254397][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 12:13:04,502 [ INFO][       Thread-254397][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 12:13:04,511 [DEBUG][       Thread-254397][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 12:13:04,511 [DEBUG][       Thread-254397][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 12:13:04,511 [DEBUG][       Thread-254397][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 12:13:04,511 [DEBUG][       Thread-254397][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:13:04,511 [DEBUG][       Thread-254397][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:13:04,511 [DEBUG][       Thread-254397][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:13:04,511 [DEBUG][       Thread-254397][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:13:04,511 [DEBUG][       Thread-254397][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 12:13:04,512 [DEBUG][       Thread-254397][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 12:13:04,512 [DEBUG][       Thread-254397][   transport.py][1871] : client lang: <none>
2025-06-13 12:13:04,512 [DEBUG][       Thread-254397][   transport.py][1871] : server lang: <none>
2025-06-13 12:13:04,512 [DEBUG][       Thread-254397][   transport.py][1871] : kex follows: False
2025-06-13 12:13:04,512 [DEBUG][       Thread-254397][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 12:13:04,512 [DEBUG][       Thread-254397][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 12:13:04,512 [DEBUG][       Thread-254397][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 12:13:04,512 [DEBUG][       Thread-254397][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 12:13:04,512 [DEBUG][       Thread-254397][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 12:13:04,512 [DEBUG][       Thread-254397][   transport.py][1871] : Compression: none
2025-06-13 12:13:04,512 [DEBUG][       Thread-254397][   transport.py][1871] : === End of kex handshake ===
2025-06-13 12:13:04,570 [DEBUG][       Thread-254397][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 12:13:04,571 [DEBUG][       Thread-254397][   transport.py][1871] : Switch to new keys ...
2025-06-13 12:13:04,572 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 12:13:04,572 [DEBUG][       Thread-254397][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 12:13:04,573 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 12:13:04,632 [DEBUG][       Thread-254397][   transport.py][1871] : userauth is OK
2025-06-13 12:13:04,632 [DEBUG][       Thread-254397][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 12:13:04,633 [DEBUG][       Thread-254397][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 12:13:04,633 [DEBUG][       Thread-254397][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 12:13:04,633 [DEBUG][       Thread-254397][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 12:13:04,654 [ INFO][       Thread-254397][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 12:13:04,655 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 12:13:04,655 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 12:13:06,035 [DEBUG][       Thread-254397][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 12:13:06,036 [DEBUG][       Thread-254397][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 12:13:06,084 [DEBUG][       Thread-254397][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 12:13:06,084 [DEBUG][       Thread-254397][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 12:13:06,094 [DEBUG][       Thread-254397][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 12:13:06,105 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 12:13:06,105 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 12:13:06,114 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 12:13:06,123 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 12:13:06,123 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 12:13:06,124 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 12:13:06,133 [DEBUG][       Thread-254397][   transport.py][1871] : EOF in transport thread
2025-06-13 12:13:10,434 [DEBUG][Thread-254399 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:13:11,488 [DEBUG][Thread-254400 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:13:11,516 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:13:11,517 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:13:11,641 [DEBUG][Thread-254401 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:13:16,134 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 12:13:16,135 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 12:13:16,135 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 12:13:16,138 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 12:13:16,623 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 12, 13, 12), 12.82, 41.13, 0.0, 15.28, 11.94, 0, 0, 0, 2, 0, 0),)
2025-06-13 12:13:16,623 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 12:13:12
2025-06-13 12:13:16,705 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 12:13:16,710 [DEBUG][       Thread-254402][   transport.py][1871] : starting thread (client mode): 0x863a5cf0
2025-06-13 12:13:16,710 [DEBUG][       Thread-254402][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 12:13:16,731 [DEBUG][       Thread-254402][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 12:13:16,731 [ INFO][       Thread-254402][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 12:13:16,735 [DEBUG][       Thread-254402][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 12:13:16,735 [DEBUG][       Thread-254402][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 12:13:16,735 [DEBUG][       Thread-254402][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 12:13:16,735 [DEBUG][       Thread-254402][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:13:16,735 [DEBUG][       Thread-254402][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:13:16,735 [DEBUG][       Thread-254402][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:13:16,735 [DEBUG][       Thread-254402][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:13:16,735 [DEBUG][       Thread-254402][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 12:13:16,736 [DEBUG][       Thread-254402][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 12:13:16,736 [DEBUG][       Thread-254402][   transport.py][1871] : client lang: <none>
2025-06-13 12:13:16,736 [DEBUG][       Thread-254402][   transport.py][1871] : server lang: <none>
2025-06-13 12:13:16,736 [DEBUG][       Thread-254402][   transport.py][1871] : kex follows: False
2025-06-13 12:13:16,736 [DEBUG][       Thread-254402][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 12:13:16,736 [DEBUG][       Thread-254402][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 12:13:16,736 [DEBUG][       Thread-254402][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 12:13:16,736 [DEBUG][       Thread-254402][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 12:13:16,736 [DEBUG][       Thread-254402][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 12:13:16,736 [DEBUG][       Thread-254402][   transport.py][1871] : Compression: none
2025-06-13 12:13:16,736 [DEBUG][       Thread-254402][   transport.py][1871] : === End of kex handshake ===
2025-06-13 12:13:16,754 [DEBUG][       Thread-254402][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 12:13:16,754 [DEBUG][       Thread-254402][   transport.py][1871] : Switch to new keys ...
2025-06-13 12:13:16,755 [DEBUG][       Thread-254402][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 12:13:16,755 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 12:13:16,755 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 12:13:16,757 [DEBUG][       Thread-254402][   transport.py][1871] : userauth is OK
2025-06-13 12:13:16,781 [ INFO][       Thread-254402][   transport.py][1871] : Authentication (password) successful!
2025-06-13 12:13:16,782 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 12:13:17,443 [DEBUG][       Thread-254402][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 12:13:17,443 [DEBUG][       Thread-254402][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 12:13:17,484 [DEBUG][       Thread-254402][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 12:13:17,484 [DEBUG][       Thread-254402][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 12:13:17,487 [DEBUG][       Thread-254402][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 12:13:17,498 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 12:13:17,498 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 12:13:17,499 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 12:13:17,500 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 12:13:17,503 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 12:13:17,504 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 12:13:17,504 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 12:13:17,504 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 12:13:17,504 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.425285 -999.00  +11.80  19.35     46   +0.60 1 1 1 1 1   888    0 12.83 56.55 ----- 18.1 19.4 36.4 20.8 16.1 -28.0 14.8 -29.6 14.4 -27.5 15.7 -26.5
2025-06-13 12:13:17,504 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 12:13:17,504 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 12:13:17,504 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.425285
2025-06-13 12:13:17,504 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 12:13:17,504 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 12:13:17,504 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 12:13:17,504 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 12:13:17,504 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 12:13:17,504 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T12:13:12', tmtdew=12.82, humidity=41.13, cloud=0.0, wind=15.28, temperature=11.94, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T10:12:24.624', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 12:13:17,505 [DEBUG][       Thread-254402][   transport.py][1871] : EOF in transport thread
2025-06-13 12:13:17,575 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 12:13:17,588 [DEBUG][       Thread-254405][   transport.py][1871] : starting thread (client mode): 0x867b5c60
2025-06-13 12:13:17,588 [DEBUG][       Thread-254405][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 12:13:17,602 [DEBUG][       Thread-254405][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 12:13:17,602 [ INFO][       Thread-254405][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 12:13:17,610 [DEBUG][       Thread-254405][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 12:13:17,610 [DEBUG][       Thread-254405][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 12:13:17,610 [DEBUG][       Thread-254405][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 12:13:17,610 [DEBUG][       Thread-254405][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:13:17,611 [DEBUG][       Thread-254405][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:13:17,611 [DEBUG][       Thread-254405][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:13:17,611 [DEBUG][       Thread-254405][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:13:17,611 [DEBUG][       Thread-254405][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 12:13:17,611 [DEBUG][       Thread-254405][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 12:13:17,611 [DEBUG][       Thread-254405][   transport.py][1871] : client lang: <none>
2025-06-13 12:13:17,611 [DEBUG][       Thread-254405][   transport.py][1871] : server lang: <none>
2025-06-13 12:13:17,611 [DEBUG][       Thread-254405][   transport.py][1871] : kex follows: False
2025-06-13 12:13:17,611 [DEBUG][       Thread-254405][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 12:13:17,611 [DEBUG][       Thread-254405][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 12:13:17,611 [DEBUG][       Thread-254405][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 12:13:17,611 [DEBUG][       Thread-254405][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 12:13:17,611 [DEBUG][       Thread-254405][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 12:13:17,611 [DEBUG][       Thread-254405][   transport.py][1871] : Compression: none
2025-06-13 12:13:17,611 [DEBUG][       Thread-254405][   transport.py][1871] : === End of kex handshake ===
2025-06-13 12:13:17,674 [DEBUG][       Thread-254405][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 12:13:17,674 [DEBUG][       Thread-254405][   transport.py][1871] : Switch to new keys ...
2025-06-13 12:13:17,675 [DEBUG][       Thread-254405][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 12:13:17,676 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 12:13:17,676 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 12:13:17,736 [DEBUG][       Thread-254405][   transport.py][1871] : userauth is OK
2025-06-13 12:13:17,736 [DEBUG][       Thread-254405][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 12:13:17,736 [DEBUG][       Thread-254405][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 12:13:17,737 [DEBUG][       Thread-254405][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 12:13:17,737 [DEBUG][       Thread-254405][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 12:13:17,755 [ INFO][       Thread-254405][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 12:13:17,756 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 12:13:17,756 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 12:13:18,822 [DEBUG][       Thread-254405][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 12:13:18,822 [DEBUG][       Thread-254405][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 12:13:18,872 [DEBUG][       Thread-254405][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 12:13:18,872 [DEBUG][       Thread-254405][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 12:13:18,882 [DEBUG][       Thread-254405][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 12:13:18,891 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 12:13:18,891 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 12:13:18,900 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 12:13:18,909 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 12:13:18,910 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 12:13:18,910 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 12:13:18,919 [DEBUG][       Thread-254405][   transport.py][1871] : EOF in transport thread
2025-06-13 12:13:20,659 [DEBUG][Thread-254407 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:13:28,920 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 12:13:28,921 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 12:13:28,921 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 12:13:28,924 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 12:13:29,393 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 12, 13, 12), 12.82, 41.13, 0.0, 15.28, 11.94, 0, 0, 0, 2, 0, 0),)
2025-06-13 12:13:29,393 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 12:13:12
2025-06-13 12:13:29,475 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 12:13:29,480 [DEBUG][       Thread-254408][   transport.py][1871] : starting thread (client mode): 0x867b6440
2025-06-13 12:13:29,480 [DEBUG][       Thread-254408][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 12:13:29,501 [DEBUG][       Thread-254408][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 12:13:29,501 [ INFO][       Thread-254408][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 12:13:29,505 [DEBUG][       Thread-254408][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 12:13:29,505 [DEBUG][       Thread-254408][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 12:13:29,505 [DEBUG][       Thread-254408][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 12:13:29,505 [DEBUG][       Thread-254408][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:13:29,505 [DEBUG][       Thread-254408][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:13:29,505 [DEBUG][       Thread-254408][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:13:29,505 [DEBUG][       Thread-254408][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:13:29,505 [DEBUG][       Thread-254408][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 12:13:29,505 [DEBUG][       Thread-254408][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 12:13:29,505 [DEBUG][       Thread-254408][   transport.py][1871] : client lang: <none>
2025-06-13 12:13:29,505 [DEBUG][       Thread-254408][   transport.py][1871] : server lang: <none>
2025-06-13 12:13:29,505 [DEBUG][       Thread-254408][   transport.py][1871] : kex follows: False
2025-06-13 12:13:29,505 [DEBUG][       Thread-254408][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 12:13:29,505 [DEBUG][       Thread-254408][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 12:13:29,505 [DEBUG][       Thread-254408][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 12:13:29,505 [DEBUG][       Thread-254408][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 12:13:29,505 [DEBUG][       Thread-254408][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 12:13:29,505 [DEBUG][       Thread-254408][   transport.py][1871] : Compression: none
2025-06-13 12:13:29,505 [DEBUG][       Thread-254408][   transport.py][1871] : === End of kex handshake ===
2025-06-13 12:13:29,524 [DEBUG][       Thread-254408][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 12:13:29,524 [DEBUG][       Thread-254408][   transport.py][1871] : Switch to new keys ...
2025-06-13 12:13:29,525 [DEBUG][       Thread-254408][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 12:13:29,525 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 12:13:29,525 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 12:13:29,527 [DEBUG][       Thread-254408][   transport.py][1871] : userauth is OK
2025-06-13 12:13:29,540 [ INFO][       Thread-254408][   transport.py][1871] : Authentication (password) successful!
2025-06-13 12:13:29,540 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 12:13:29,693 [DEBUG][Thread-254410 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:13:30,162 [DEBUG][       Thread-254408][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 12:13:30,162 [DEBUG][       Thread-254408][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 12:13:30,205 [DEBUG][       Thread-254408][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 12:13:30,205 [DEBUG][       Thread-254408][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 12:13:30,209 [DEBUG][       Thread-254408][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 12:13:30,220 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 12:13:30,221 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 12:13:30,223 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 12:13:30,224 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 12:13:30,231 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 12:13:30,233 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 12:13:30,233 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 12:13:30,234 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 12:13:30,234 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.425285 -999.00  +11.80  19.35     46   +0.60 1 1 1 1 1   888    0 12.83 56.55 ----- 18.1 19.4 36.4 20.8 16.1 -28.0 14.8 -29.6 14.4 -27.5 15.7 -26.5
2025-06-13 12:13:30,234 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 12:13:30,234 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 12:13:30,234 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.425285
2025-06-13 12:13:30,235 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 12:13:30,235 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 12:13:30,236 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 12:13:30,236 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 12:13:30,236 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 12:13:30,236 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T12:13:12', tmtdew=12.82, humidity=41.13, cloud=0.0, wind=15.28, temperature=11.94, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T10:12:24.624', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 12:13:30,237 [DEBUG][       Thread-254408][   transport.py][1871] : EOF in transport thread
2025-06-13 12:13:30,320 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 12:13:30,329 [DEBUG][       Thread-254412][   transport.py][1871] : starting thread (client mode): 0x867b7940
2025-06-13 12:13:30,329 [DEBUG][       Thread-254412][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 12:13:30,345 [DEBUG][       Thread-254412][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 12:13:30,345 [ INFO][       Thread-254412][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 12:13:30,353 [DEBUG][       Thread-254412][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 12:13:30,354 [DEBUG][       Thread-254412][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 12:13:30,354 [DEBUG][       Thread-254412][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 12:13:30,354 [DEBUG][       Thread-254412][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:13:30,354 [DEBUG][       Thread-254412][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:13:30,354 [DEBUG][       Thread-254412][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:13:30,354 [DEBUG][       Thread-254412][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:13:30,354 [DEBUG][       Thread-254412][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 12:13:30,354 [DEBUG][       Thread-254412][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 12:13:30,354 [DEBUG][       Thread-254412][   transport.py][1871] : client lang: <none>
2025-06-13 12:13:30,354 [DEBUG][       Thread-254412][   transport.py][1871] : server lang: <none>
2025-06-13 12:13:30,354 [DEBUG][       Thread-254412][   transport.py][1871] : kex follows: False
2025-06-13 12:13:30,354 [DEBUG][       Thread-254412][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 12:13:30,354 [DEBUG][       Thread-254412][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 12:13:30,354 [DEBUG][       Thread-254412][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 12:13:30,354 [DEBUG][       Thread-254412][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 12:13:30,354 [DEBUG][       Thread-254412][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 12:13:30,354 [DEBUG][       Thread-254412][   transport.py][1871] : Compression: none
2025-06-13 12:13:30,354 [DEBUG][       Thread-254412][   transport.py][1871] : === End of kex handshake ===
2025-06-13 12:13:30,414 [DEBUG][       Thread-254412][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 12:13:30,414 [DEBUG][       Thread-254412][   transport.py][1871] : Switch to new keys ...
2025-06-13 12:13:30,415 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 12:13:30,416 [DEBUG][       Thread-254412][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 12:13:30,416 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 12:13:30,472 [DEBUG][       Thread-254412][   transport.py][1871] : userauth is OK
2025-06-13 12:13:30,472 [DEBUG][       Thread-254412][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 12:13:30,472 [DEBUG][       Thread-254412][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 12:13:30,472 [DEBUG][       Thread-254412][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 12:13:30,473 [DEBUG][       Thread-254412][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 12:13:30,500 [ INFO][       Thread-254412][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 12:13:30,501 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 12:13:30,501 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 12:13:31,495 [DEBUG][       Thread-254412][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 12:13:31,495 [DEBUG][       Thread-254412][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 12:13:31,545 [DEBUG][       Thread-254412][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 12:13:31,545 [DEBUG][       Thread-254412][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 12:13:31,555 [DEBUG][       Thread-254412][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 12:13:31,568 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 12:13:31,568 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 12:13:31,579 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 12:13:31,588 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 12:13:31,588 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 12:13:31,589 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 12:13:31,600 [DEBUG][       Thread-254412][   transport.py][1871] : EOF in transport thread
2025-06-13 12:13:38,717 [DEBUG][Thread-254414 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:13:41,494 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:13:41,495 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:13:41,599 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 12:13:41,600 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 12:13:41,600 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 12:13:41,602 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 12:13:42,079 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 12, 13, 12), 12.82, 41.13, 0.0, 15.28, 11.94, 0, 0, 0, 2, 0, 0),)
2025-06-13 12:13:42,079 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 12:13:12
2025-06-13 12:13:42,159 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 12:13:42,164 [DEBUG][       Thread-254415][   transport.py][1871] : starting thread (client mode): 0x863ef6d0
2025-06-13 12:13:42,164 [DEBUG][       Thread-254415][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 12:13:42,185 [DEBUG][       Thread-254415][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 12:13:42,185 [ INFO][       Thread-254415][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 12:13:42,189 [DEBUG][       Thread-254415][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 12:13:42,189 [DEBUG][       Thread-254415][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 12:13:42,189 [DEBUG][       Thread-254415][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 12:13:42,189 [DEBUG][       Thread-254415][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:13:42,189 [DEBUG][       Thread-254415][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:13:42,189 [DEBUG][       Thread-254415][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:13:42,189 [DEBUG][       Thread-254415][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:13:42,189 [DEBUG][       Thread-254415][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 12:13:42,189 [DEBUG][       Thread-254415][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 12:13:42,189 [DEBUG][       Thread-254415][   transport.py][1871] : client lang: <none>
2025-06-13 12:13:42,189 [DEBUG][       Thread-254415][   transport.py][1871] : server lang: <none>
2025-06-13 12:13:42,189 [DEBUG][       Thread-254415][   transport.py][1871] : kex follows: False
2025-06-13 12:13:42,189 [DEBUG][       Thread-254415][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 12:13:42,189 [DEBUG][       Thread-254415][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 12:13:42,189 [DEBUG][       Thread-254415][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 12:13:42,189 [DEBUG][       Thread-254415][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 12:13:42,189 [DEBUG][       Thread-254415][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 12:13:42,189 [DEBUG][       Thread-254415][   transport.py][1871] : Compression: none
2025-06-13 12:13:42,189 [DEBUG][       Thread-254415][   transport.py][1871] : === End of kex handshake ===
2025-06-13 12:13:42,208 [DEBUG][       Thread-254415][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 12:13:42,208 [DEBUG][       Thread-254415][   transport.py][1871] : Switch to new keys ...
2025-06-13 12:13:42,208 [DEBUG][       Thread-254415][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 12:13:42,208 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 12:13:42,208 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 12:13:42,209 [DEBUG][       Thread-254415][   transport.py][1871] : userauth is OK
2025-06-13 12:13:42,234 [ INFO][       Thread-254415][   transport.py][1871] : Authentication (password) successful!
2025-06-13 12:13:42,234 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 12:13:42,857 [DEBUG][       Thread-254415][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 12:13:42,857 [DEBUG][       Thread-254415][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 12:13:42,901 [DEBUG][       Thread-254415][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 12:13:42,901 [DEBUG][       Thread-254415][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 12:13:42,905 [DEBUG][       Thread-254415][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 12:13:42,919 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 12:13:42,920 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 12:13:42,922 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 12:13:42,924 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 12:13:42,930 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 12:13:42,932 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 12:13:42,932 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 12:13:42,933 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 12:13:42,933 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.425980 -999.00  +11.60  19.17     46   +0.40 1 1 1 1 1   888    0 12.73 50.05 ----- 19.6 19.2 55.2 20.7 16.1 -27.9 14.8 -30.6 14.4 -28.8 15.8 -26.6
2025-06-13 12:13:42,933 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 12:13:42,933 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 12:13:42,933 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.425980
2025-06-13 12:13:42,934 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 12:13:42,934 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 12:13:42,935 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 12:13:42,935 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 12:13:42,935 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 12:13:42,935 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T12:13:12', tmtdew=12.82, humidity=41.13, cloud=0.0, wind=15.28, temperature=11.94, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T10:13:24.672', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 12:13:42,935 [DEBUG][       Thread-254415][   transport.py][1871] : EOF in transport thread
2025-06-13 12:13:43,019 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 12:13:43,032 [DEBUG][       Thread-254418][   transport.py][1871] : starting thread (client mode): 0x863a56f0
2025-06-13 12:13:43,032 [DEBUG][       Thread-254418][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 12:13:43,049 [DEBUG][       Thread-254418][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 12:13:43,049 [ INFO][       Thread-254418][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 12:13:43,059 [DEBUG][       Thread-254418][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 12:13:43,059 [DEBUG][       Thread-254418][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 12:13:43,060 [DEBUG][       Thread-254418][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 12:13:43,060 [DEBUG][       Thread-254418][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:13:43,060 [DEBUG][       Thread-254418][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:13:43,060 [DEBUG][       Thread-254418][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:13:43,060 [DEBUG][       Thread-254418][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:13:43,060 [DEBUG][       Thread-254418][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 12:13:43,060 [DEBUG][       Thread-254418][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 12:13:43,060 [DEBUG][       Thread-254418][   transport.py][1871] : client lang: <none>
2025-06-13 12:13:43,060 [DEBUG][       Thread-254418][   transport.py][1871] : server lang: <none>
2025-06-13 12:13:43,060 [DEBUG][       Thread-254418][   transport.py][1871] : kex follows: False
2025-06-13 12:13:43,060 [DEBUG][       Thread-254418][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 12:13:43,060 [DEBUG][       Thread-254418][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 12:13:43,060 [DEBUG][       Thread-254418][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 12:13:43,060 [DEBUG][       Thread-254418][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 12:13:43,060 [DEBUG][       Thread-254418][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 12:13:43,060 [DEBUG][       Thread-254418][   transport.py][1871] : Compression: none
2025-06-13 12:13:43,061 [DEBUG][       Thread-254418][   transport.py][1871] : === End of kex handshake ===
2025-06-13 12:13:43,120 [DEBUG][       Thread-254418][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 12:13:43,121 [DEBUG][       Thread-254418][   transport.py][1871] : Switch to new keys ...
2025-06-13 12:13:43,121 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 12:13:43,122 [DEBUG][       Thread-254418][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 12:13:43,123 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 12:13:43,181 [DEBUG][       Thread-254418][   transport.py][1871] : userauth is OK
2025-06-13 12:13:43,181 [DEBUG][       Thread-254418][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 12:13:43,182 [DEBUG][       Thread-254418][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 12:13:43,182 [DEBUG][       Thread-254418][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 12:13:43,182 [DEBUG][       Thread-254418][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 12:13:43,205 [ INFO][       Thread-254418][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 12:13:43,205 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 12:13:43,206 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 12:13:44,414 [DEBUG][       Thread-254418][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 12:13:44,415 [DEBUG][       Thread-254418][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 12:13:44,464 [DEBUG][       Thread-254418][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 12:13:44,464 [DEBUG][       Thread-254418][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 12:13:44,473 [DEBUG][       Thread-254418][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 12:13:44,482 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 12:13:44,482 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 12:13:44,494 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 12:13:44,505 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 12:13:44,505 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 12:13:44,505 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 12:13:44,516 [DEBUG][       Thread-254418][   transport.py][1871] : EOF in transport thread
2025-06-13 12:13:47,738 [DEBUG][Thread-254420 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:13:54,508 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 12:13:54,508 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 12:13:54,508 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 12:13:54,511 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 12:13:54,990 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 12, 13, 43), 12.8, 41.19, 0.0, 19.14, 11.95, 0, 0, 0, 2, 0, 0),)
2025-06-13 12:13:54,990 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 12:13:43
2025-06-13 12:13:55,072 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 12:13:55,076 [DEBUG][       Thread-254421][   transport.py][1871] : starting thread (client mode): 0x863ef1f0
2025-06-13 12:13:55,076 [DEBUG][       Thread-254421][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 12:13:55,097 [DEBUG][       Thread-254421][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 12:13:55,097 [ INFO][       Thread-254421][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 12:13:55,100 [DEBUG][       Thread-254421][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 12:13:55,101 [DEBUG][       Thread-254421][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 12:13:55,101 [DEBUG][       Thread-254421][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 12:13:55,101 [DEBUG][       Thread-254421][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:13:55,101 [DEBUG][       Thread-254421][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:13:55,101 [DEBUG][       Thread-254421][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:13:55,101 [DEBUG][       Thread-254421][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:13:55,101 [DEBUG][       Thread-254421][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 12:13:55,101 [DEBUG][       Thread-254421][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 12:13:55,101 [DEBUG][       Thread-254421][   transport.py][1871] : client lang: <none>
2025-06-13 12:13:55,101 [DEBUG][       Thread-254421][   transport.py][1871] : server lang: <none>
2025-06-13 12:13:55,101 [DEBUG][       Thread-254421][   transport.py][1871] : kex follows: False
2025-06-13 12:13:55,101 [DEBUG][       Thread-254421][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 12:13:55,101 [DEBUG][       Thread-254421][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 12:13:55,101 [DEBUG][       Thread-254421][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 12:13:55,101 [DEBUG][       Thread-254421][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 12:13:55,101 [DEBUG][       Thread-254421][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 12:13:55,101 [DEBUG][       Thread-254421][   transport.py][1871] : Compression: none
2025-06-13 12:13:55,101 [DEBUG][       Thread-254421][   transport.py][1871] : === End of kex handshake ===
2025-06-13 12:13:55,118 [DEBUG][       Thread-254421][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 12:13:55,118 [DEBUG][       Thread-254421][   transport.py][1871] : Switch to new keys ...
2025-06-13 12:13:55,119 [DEBUG][       Thread-254421][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 12:13:55,119 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 12:13:55,119 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 12:13:55,120 [DEBUG][       Thread-254421][   transport.py][1871] : userauth is OK
2025-06-13 12:13:55,145 [ INFO][       Thread-254421][   transport.py][1871] : Authentication (password) successful!
2025-06-13 12:13:55,145 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 12:13:55,804 [DEBUG][       Thread-254421][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 12:13:55,804 [DEBUG][       Thread-254421][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 12:13:55,845 [DEBUG][       Thread-254421][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 12:13:55,845 [DEBUG][       Thread-254421][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 12:13:55,849 [DEBUG][       Thread-254421][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 12:13:55,861 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 12:13:55,862 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 12:13:55,863 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 12:13:55,865 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 12:13:55,871 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 12:13:55,873 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 12:13:55,873 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 12:13:55,874 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 12:13:55,874 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.425980 -999.00  +11.60  19.17     46   +0.40 1 1 1 1 1   888    0 12.73 50.05 ----- 19.6 19.2 55.2 20.7 16.1 -27.9 14.8 -30.6 14.4 -28.8 15.8 -26.6
2025-06-13 12:13:55,874 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 12:13:55,874 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 12:13:55,875 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.425980
2025-06-13 12:13:55,875 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 12:13:55,876 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 12:13:55,876 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 12:13:55,876 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 12:13:55,876 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 12:13:55,876 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T12:13:43', tmtdew=12.8, humidity=41.19, cloud=0.0, wind=19.14, temperature=11.95, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T10:13:24.672', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 12:13:55,877 [DEBUG][       Thread-254421][   transport.py][1871] : EOF in transport thread
2025-06-13 12:13:55,962 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 12:13:55,972 [DEBUG][       Thread-254424][   transport.py][1871] : starting thread (client mode): 0x867b67a0
2025-06-13 12:13:55,972 [DEBUG][       Thread-254424][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 12:13:55,987 [DEBUG][       Thread-254424][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 12:13:55,987 [ INFO][       Thread-254424][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 12:13:55,995 [DEBUG][       Thread-254424][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 12:13:55,995 [DEBUG][       Thread-254424][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 12:13:55,995 [DEBUG][       Thread-254424][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 12:13:55,995 [DEBUG][       Thread-254424][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:13:55,995 [DEBUG][       Thread-254424][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:13:55,995 [DEBUG][       Thread-254424][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:13:55,995 [DEBUG][       Thread-254424][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:13:55,996 [DEBUG][       Thread-254424][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 12:13:55,996 [DEBUG][       Thread-254424][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 12:13:55,996 [DEBUG][       Thread-254424][   transport.py][1871] : client lang: <none>
2025-06-13 12:13:55,996 [DEBUG][       Thread-254424][   transport.py][1871] : server lang: <none>
2025-06-13 12:13:55,996 [DEBUG][       Thread-254424][   transport.py][1871] : kex follows: False
2025-06-13 12:13:55,996 [DEBUG][       Thread-254424][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 12:13:55,996 [DEBUG][       Thread-254424][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 12:13:55,996 [DEBUG][       Thread-254424][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 12:13:55,996 [DEBUG][       Thread-254424][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 12:13:55,997 [DEBUG][       Thread-254424][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 12:13:55,997 [DEBUG][       Thread-254424][   transport.py][1871] : Compression: none
2025-06-13 12:13:55,997 [DEBUG][       Thread-254424][   transport.py][1871] : === End of kex handshake ===
2025-06-13 12:13:56,050 [DEBUG][       Thread-254424][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 12:13:56,051 [DEBUG][       Thread-254424][   transport.py][1871] : Switch to new keys ...
2025-06-13 12:13:56,051 [DEBUG][       Thread-254424][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 12:13:56,051 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 12:13:56,051 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 12:13:56,108 [DEBUG][       Thread-254424][   transport.py][1871] : userauth is OK
2025-06-13 12:13:56,108 [DEBUG][       Thread-254424][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 12:13:56,109 [DEBUG][       Thread-254424][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 12:13:56,109 [DEBUG][       Thread-254424][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 12:13:56,109 [DEBUG][       Thread-254424][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 12:13:56,129 [ INFO][       Thread-254424][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 12:13:56,130 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 12:13:56,130 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 12:13:56,756 [DEBUG][Thread-254426 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:13:57,227 [DEBUG][       Thread-254424][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 12:13:57,227 [DEBUG][       Thread-254424][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 12:13:57,276 [DEBUG][       Thread-254424][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 12:13:57,276 [DEBUG][       Thread-254424][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 12:13:57,287 [DEBUG][       Thread-254424][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 12:13:57,299 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 12:13:57,299 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 12:13:57,311 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 12:13:57,320 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 12:13:57,321 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 12:13:57,321 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 12:13:57,330 [DEBUG][       Thread-254424][   transport.py][1871] : EOF in transport thread
2025-06-13 12:14:05,800 [DEBUG][Thread-254427 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:14:07,332 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 12:14:07,332 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 12:14:07,332 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 12:14:07,335 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 12:14:07,813 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 12, 13, 43), 12.8, 41.19, 0.0, 19.14, 11.95, 0, 0, 0, 2, 0, 0),)
2025-06-13 12:14:07,813 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 12:13:43
2025-06-13 12:14:07,896 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 12:14:07,899 [DEBUG][       Thread-254428][   transport.py][1871] : starting thread (client mode): 0x863ed7b0
2025-06-13 12:14:07,899 [DEBUG][       Thread-254428][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 12:14:07,919 [DEBUG][       Thread-254428][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 12:14:07,919 [ INFO][       Thread-254428][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 12:14:07,924 [DEBUG][       Thread-254428][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 12:14:07,924 [DEBUG][       Thread-254428][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 12:14:07,924 [DEBUG][       Thread-254428][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 12:14:07,924 [DEBUG][       Thread-254428][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:14:07,924 [DEBUG][       Thread-254428][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:14:07,924 [DEBUG][       Thread-254428][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:14:07,924 [DEBUG][       Thread-254428][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:14:07,924 [DEBUG][       Thread-254428][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 12:14:07,924 [DEBUG][       Thread-254428][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 12:14:07,924 [DEBUG][       Thread-254428][   transport.py][1871] : client lang: <none>
2025-06-13 12:14:07,924 [DEBUG][       Thread-254428][   transport.py][1871] : server lang: <none>
2025-06-13 12:14:07,924 [DEBUG][       Thread-254428][   transport.py][1871] : kex follows: False
2025-06-13 12:14:07,924 [DEBUG][       Thread-254428][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 12:14:07,924 [DEBUG][       Thread-254428][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 12:14:07,924 [DEBUG][       Thread-254428][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 12:14:07,924 [DEBUG][       Thread-254428][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 12:14:07,924 [DEBUG][       Thread-254428][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 12:14:07,925 [DEBUG][       Thread-254428][   transport.py][1871] : Compression: none
2025-06-13 12:14:07,925 [DEBUG][       Thread-254428][   transport.py][1871] : === End of kex handshake ===
2025-06-13 12:14:07,934 [DEBUG][       Thread-254428][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 12:14:07,934 [DEBUG][       Thread-254428][   transport.py][1871] : Switch to new keys ...
2025-06-13 12:14:07,935 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 12:14:07,935 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 12:14:07,936 [DEBUG][       Thread-254428][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 12:14:07,936 [DEBUG][       Thread-254428][   transport.py][1871] : userauth is OK
2025-06-13 12:14:07,960 [ INFO][       Thread-254428][   transport.py][1871] : Authentication (password) successful!
2025-06-13 12:14:07,961 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 12:14:08,574 [DEBUG][       Thread-254428][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 12:14:08,575 [DEBUG][       Thread-254428][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 12:14:08,617 [DEBUG][       Thread-254428][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 12:14:08,617 [DEBUG][       Thread-254428][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 12:14:08,620 [DEBUG][       Thread-254428][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 12:14:08,631 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 12:14:08,631 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 12:14:08,633 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 12:14:08,635 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 12:14:08,641 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 12:14:08,643 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 12:14:08,643 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 12:14:08,644 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 12:14:08,644 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.426327 -999.00  +11.50  19.54     46   +0.50 1 1 1 1 1   888    0 12.67 49.13 ----- 16.9 19.5 66.2 32.0 16.0 -28.5 14.7 -29.9 14.4 -28.0 15.7 -27.8
2025-06-13 12:14:08,644 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 12:14:08,644 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 12:14:08,644 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.426327
2025-06-13 12:14:08,645 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 12:14:08,645 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 12:14:08,645 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 12:14:08,645 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 12:14:08,645 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 12:14:08,646 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T12:13:43', tmtdew=12.8, humidity=41.19, cloud=0.0, wind=19.14, temperature=11.95, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T10:13:54.653', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 12:14:08,647 [DEBUG][       Thread-254428][   transport.py][1871] : EOF in transport thread
2025-06-13 12:14:08,729 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 12:14:08,740 [DEBUG][       Thread-254431][   transport.py][1871] : starting thread (client mode): 0x863ef070
2025-06-13 12:14:08,740 [DEBUG][       Thread-254431][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 12:14:08,756 [DEBUG][       Thread-254431][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 12:14:08,757 [ INFO][       Thread-254431][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 12:14:08,764 [DEBUG][       Thread-254431][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 12:14:08,764 [DEBUG][       Thread-254431][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 12:14:08,765 [DEBUG][       Thread-254431][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 12:14:08,765 [DEBUG][       Thread-254431][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:14:08,765 [DEBUG][       Thread-254431][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:14:08,765 [DEBUG][       Thread-254431][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:14:08,765 [DEBUG][       Thread-254431][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:14:08,765 [DEBUG][       Thread-254431][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 12:14:08,765 [DEBUG][       Thread-254431][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 12:14:08,765 [DEBUG][       Thread-254431][   transport.py][1871] : client lang: <none>
2025-06-13 12:14:08,765 [DEBUG][       Thread-254431][   transport.py][1871] : server lang: <none>
2025-06-13 12:14:08,765 [DEBUG][       Thread-254431][   transport.py][1871] : kex follows: False
2025-06-13 12:14:08,765 [DEBUG][       Thread-254431][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 12:14:08,765 [DEBUG][       Thread-254431][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 12:14:08,765 [DEBUG][       Thread-254431][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 12:14:08,765 [DEBUG][       Thread-254431][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 12:14:08,765 [DEBUG][       Thread-254431][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 12:14:08,765 [DEBUG][       Thread-254431][   transport.py][1871] : Compression: none
2025-06-13 12:14:08,765 [DEBUG][       Thread-254431][   transport.py][1871] : === End of kex handshake ===
2025-06-13 12:14:08,831 [DEBUG][       Thread-254431][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 12:14:08,831 [DEBUG][       Thread-254431][   transport.py][1871] : Switch to new keys ...
2025-06-13 12:14:08,832 [DEBUG][       Thread-254431][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 12:14:08,832 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 12:14:08,833 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 12:14:08,893 [DEBUG][       Thread-254431][   transport.py][1871] : userauth is OK
2025-06-13 12:14:08,893 [DEBUG][       Thread-254431][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 12:14:08,894 [DEBUG][       Thread-254431][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 12:14:08,894 [DEBUG][       Thread-254431][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 12:14:08,894 [DEBUG][       Thread-254431][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 12:14:08,914 [ INFO][       Thread-254431][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 12:14:08,915 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 12:14:08,915 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 12:14:10,239 [DEBUG][       Thread-254431][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 12:14:10,239 [DEBUG][       Thread-254431][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 12:14:10,296 [DEBUG][       Thread-254431][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 12:14:10,296 [DEBUG][       Thread-254431][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 12:14:10,306 [DEBUG][       Thread-254431][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 12:14:10,315 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 12:14:10,315 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 12:14:10,324 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 12:14:10,333 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 12:14:10,333 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 12:14:10,333 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 12:14:10,342 [DEBUG][       Thread-254431][   transport.py][1871] : EOF in transport thread
2025-06-13 12:14:11,541 [DEBUG][Thread-254433 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:14:11,584 [DEBUG][Thread-254434 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:14:12,639 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:14:12,641 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:14:14,821 [DEBUG][Thread-254435 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:14:20,343 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 12:14:20,344 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 12:14:20,344 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 12:14:20,347 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 12:14:20,829 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 12, 14, 15), 12.49, 42.09, 0.0, 21.99, 11.82, 0, 0, 0, 2, 0, 0),)
2025-06-13 12:14:20,829 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 12:14:15
2025-06-13 12:14:20,910 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 12:14:20,915 [DEBUG][       Thread-254436][   transport.py][1871] : starting thread (client mode): 0x863ed6c0
2025-06-13 12:14:20,915 [DEBUG][       Thread-254436][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 12:14:20,936 [DEBUG][       Thread-254436][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 12:14:20,936 [ INFO][       Thread-254436][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 12:14:20,940 [DEBUG][       Thread-254436][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 12:14:20,940 [DEBUG][       Thread-254436][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 12:14:20,940 [DEBUG][       Thread-254436][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 12:14:20,940 [DEBUG][       Thread-254436][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:14:20,940 [DEBUG][       Thread-254436][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:14:20,940 [DEBUG][       Thread-254436][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:14:20,940 [DEBUG][       Thread-254436][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:14:20,940 [DEBUG][       Thread-254436][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 12:14:20,940 [DEBUG][       Thread-254436][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 12:14:20,940 [DEBUG][       Thread-254436][   transport.py][1871] : client lang: <none>
2025-06-13 12:14:20,940 [DEBUG][       Thread-254436][   transport.py][1871] : server lang: <none>
2025-06-13 12:14:20,940 [DEBUG][       Thread-254436][   transport.py][1871] : kex follows: False
2025-06-13 12:14:20,940 [DEBUG][       Thread-254436][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 12:14:20,940 [DEBUG][       Thread-254436][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 12:14:20,940 [DEBUG][       Thread-254436][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 12:14:20,940 [DEBUG][       Thread-254436][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 12:14:20,940 [DEBUG][       Thread-254436][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 12:14:20,940 [DEBUG][       Thread-254436][   transport.py][1871] : Compression: none
2025-06-13 12:14:20,940 [DEBUG][       Thread-254436][   transport.py][1871] : === End of kex handshake ===
2025-06-13 12:14:20,957 [DEBUG][       Thread-254436][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 12:14:20,958 [DEBUG][       Thread-254436][   transport.py][1871] : Switch to new keys ...
2025-06-13 12:14:20,958 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 12:14:20,958 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 12:14:20,959 [DEBUG][       Thread-254436][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 12:14:20,960 [DEBUG][       Thread-254436][   transport.py][1871] : userauth is OK
2025-06-13 12:14:20,984 [ INFO][       Thread-254436][   transport.py][1871] : Authentication (password) successful!
2025-06-13 12:14:20,985 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 12:14:21,609 [DEBUG][       Thread-254436][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 12:14:21,609 [DEBUG][       Thread-254436][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 12:14:21,653 [DEBUG][       Thread-254436][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 12:14:21,653 [DEBUG][       Thread-254436][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 12:14:21,656 [DEBUG][       Thread-254436][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 12:14:21,668 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 12:14:21,668 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 12:14:21,670 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 12:14:21,672 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 12:14:21,677 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 12:14:21,679 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 12:14:21,680 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 12:14:21,680 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 12:14:21,680 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.426327 -999.00  +11.50  19.54     46   +0.50 1 1 1 1 1   888    0 12.67 49.13 ----- 16.9 19.5 66.2 32.0 16.0 -28.5 14.7 -29.9 14.4 -28.0 15.7 -27.8
2025-06-13 12:14:21,680 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 12:14:21,680 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 12:14:21,681 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.426327
2025-06-13 12:14:21,681 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 12:14:21,682 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 12:14:21,682 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 12:14:21,682 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 12:14:21,682 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 12:14:21,682 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T12:14:15', tmtdew=12.49, humidity=42.09, cloud=0.0, wind=21.99, temperature=11.82, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T10:13:54.653', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 12:14:21,683 [DEBUG][       Thread-254436][   transport.py][1871] : EOF in transport thread
2025-06-13 12:14:21,765 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 12:14:21,778 [DEBUG][       Thread-254439][   transport.py][1871] : starting thread (client mode): 0x863a4f10
2025-06-13 12:14:21,778 [DEBUG][       Thread-254439][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 12:14:21,795 [DEBUG][       Thread-254439][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 12:14:21,795 [ INFO][       Thread-254439][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 12:14:21,804 [DEBUG][       Thread-254439][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 12:14:21,804 [DEBUG][       Thread-254439][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 12:14:21,804 [DEBUG][       Thread-254439][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 12:14:21,804 [DEBUG][       Thread-254439][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:14:21,805 [DEBUG][       Thread-254439][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:14:21,805 [DEBUG][       Thread-254439][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:14:21,805 [DEBUG][       Thread-254439][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:14:21,805 [DEBUG][       Thread-254439][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 12:14:21,805 [DEBUG][       Thread-254439][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 12:14:21,805 [DEBUG][       Thread-254439][   transport.py][1871] : client lang: <none>
2025-06-13 12:14:21,805 [DEBUG][       Thread-254439][   transport.py][1871] : server lang: <none>
2025-06-13 12:14:21,805 [DEBUG][       Thread-254439][   transport.py][1871] : kex follows: False
2025-06-13 12:14:21,805 [DEBUG][       Thread-254439][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 12:14:21,805 [DEBUG][       Thread-254439][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 12:14:21,805 [DEBUG][       Thread-254439][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 12:14:21,805 [DEBUG][       Thread-254439][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 12:14:21,805 [DEBUG][       Thread-254439][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 12:14:21,805 [DEBUG][       Thread-254439][   transport.py][1871] : Compression: none
2025-06-13 12:14:21,805 [DEBUG][       Thread-254439][   transport.py][1871] : === End of kex handshake ===
2025-06-13 12:14:21,867 [DEBUG][       Thread-254439][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 12:14:21,867 [DEBUG][       Thread-254439][   transport.py][1871] : Switch to new keys ...
2025-06-13 12:14:21,868 [DEBUG][       Thread-254439][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 12:14:21,868 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 12:14:21,869 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 12:14:21,935 [DEBUG][       Thread-254439][   transport.py][1871] : userauth is OK
2025-06-13 12:14:21,936 [DEBUG][       Thread-254439][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 12:14:21,936 [DEBUG][       Thread-254439][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 12:14:21,936 [DEBUG][       Thread-254439][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 12:14:21,936 [DEBUG][       Thread-254439][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 12:14:21,959 [ INFO][       Thread-254439][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 12:14:21,960 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 12:14:21,960 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 12:14:23,226 [DEBUG][       Thread-254439][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 12:14:23,226 [DEBUG][       Thread-254439][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 12:14:23,276 [DEBUG][       Thread-254439][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 12:14:23,276 [DEBUG][       Thread-254439][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 12:14:23,286 [DEBUG][       Thread-254439][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 12:14:23,299 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 12:14:23,299 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 12:14:23,313 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 12:14:23,325 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 12:14:23,325 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 12:14:23,326 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 12:14:23,334 [DEBUG][       Thread-254439][   transport.py][1871] : EOF in transport thread
2025-06-13 12:14:23,842 [DEBUG][Thread-254441 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:14:32,884 [DEBUG][Thread-254442 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:14:33,336 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 12:14:33,337 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 12:14:33,337 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 12:14:33,339 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 12:14:33,807 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 12, 14, 15), 12.49, 42.09, 0.0, 21.99, 11.82, 0, 0, 0, 2, 0, 0),)
2025-06-13 12:14:33,807 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 12:14:15
2025-06-13 12:14:33,889 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 12:14:33,893 [DEBUG][       Thread-254443][   transport.py][1871] : starting thread (client mode): 0x863a6ec0
2025-06-13 12:14:33,893 [DEBUG][       Thread-254443][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 12:14:33,913 [DEBUG][       Thread-254443][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 12:14:33,914 [ INFO][       Thread-254443][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 12:14:33,917 [DEBUG][       Thread-254443][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 12:14:33,917 [DEBUG][       Thread-254443][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 12:14:33,917 [DEBUG][       Thread-254443][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 12:14:33,917 [DEBUG][       Thread-254443][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:14:33,917 [DEBUG][       Thread-254443][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:14:33,917 [DEBUG][       Thread-254443][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:14:33,918 [DEBUG][       Thread-254443][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:14:33,918 [DEBUG][       Thread-254443][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 12:14:33,918 [DEBUG][       Thread-254443][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 12:14:33,918 [DEBUG][       Thread-254443][   transport.py][1871] : client lang: <none>
2025-06-13 12:14:33,918 [DEBUG][       Thread-254443][   transport.py][1871] : server lang: <none>
2025-06-13 12:14:33,918 [DEBUG][       Thread-254443][   transport.py][1871] : kex follows: False
2025-06-13 12:14:33,918 [DEBUG][       Thread-254443][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 12:14:33,918 [DEBUG][       Thread-254443][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 12:14:33,918 [DEBUG][       Thread-254443][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 12:14:33,918 [DEBUG][       Thread-254443][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 12:14:33,918 [DEBUG][       Thread-254443][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 12:14:33,918 [DEBUG][       Thread-254443][   transport.py][1871] : Compression: none
2025-06-13 12:14:33,918 [DEBUG][       Thread-254443][   transport.py][1871] : === End of kex handshake ===
2025-06-13 12:14:33,934 [DEBUG][       Thread-254443][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 12:14:33,935 [DEBUG][       Thread-254443][   transport.py][1871] : Switch to new keys ...
2025-06-13 12:14:33,935 [DEBUG][       Thread-254443][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 12:14:33,935 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 12:14:33,936 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 12:14:33,937 [DEBUG][       Thread-254443][   transport.py][1871] : userauth is OK
2025-06-13 12:14:33,950 [ INFO][       Thread-254443][   transport.py][1871] : Authentication (password) successful!
2025-06-13 12:14:33,951 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 12:14:34,582 [DEBUG][       Thread-254443][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 12:14:34,582 [DEBUG][       Thread-254443][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 12:14:34,625 [DEBUG][       Thread-254443][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 12:14:34,625 [DEBUG][       Thread-254443][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 12:14:34,629 [DEBUG][       Thread-254443][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 12:14:34,642 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 12:14:34,642 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 12:14:34,644 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 12:14:34,646 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 12:14:34,652 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 12:14:34,654 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 12:14:34,654 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 12:14:34,655 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 12:14:34,655 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.426327 -999.00  +11.50  19.54     46   +0.50 1 1 1 1 1   888    0 12.67 49.13 ----- 16.9 19.5 66.2 32.0 16.0 -28.5 14.7 -29.9 14.4 -28.0 15.7 -27.8
2025-06-13 12:14:34,655 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 12:14:34,655 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 12:14:34,655 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.426327
2025-06-13 12:14:34,656 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 12:14:34,656 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 12:14:34,656 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 12:14:34,657 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 12:14:34,657 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 12:14:34,657 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T12:14:15', tmtdew=12.49, humidity=42.09, cloud=0.0, wind=21.99, temperature=11.82, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T10:13:54.653', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 12:14:34,657 [DEBUG][       Thread-254443][   transport.py][1871] : EOF in transport thread
2025-06-13 12:14:34,740 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 12:14:34,750 [DEBUG][       Thread-254446][   transport.py][1871] : starting thread (client mode): 0x867b69e0
2025-06-13 12:14:34,750 [DEBUG][       Thread-254446][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 12:14:34,768 [DEBUG][       Thread-254446][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 12:14:34,768 [ INFO][       Thread-254446][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 12:14:34,777 [DEBUG][       Thread-254446][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 12:14:34,778 [DEBUG][       Thread-254446][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 12:14:34,778 [DEBUG][       Thread-254446][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 12:14:34,778 [DEBUG][       Thread-254446][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:14:34,778 [DEBUG][       Thread-254446][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:14:34,778 [DEBUG][       Thread-254446][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:14:34,778 [DEBUG][       Thread-254446][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:14:34,778 [DEBUG][       Thread-254446][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 12:14:34,778 [DEBUG][       Thread-254446][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 12:14:34,778 [DEBUG][       Thread-254446][   transport.py][1871] : client lang: <none>
2025-06-13 12:14:34,778 [DEBUG][       Thread-254446][   transport.py][1871] : server lang: <none>
2025-06-13 12:14:34,778 [DEBUG][       Thread-254446][   transport.py][1871] : kex follows: False
2025-06-13 12:14:34,778 [DEBUG][       Thread-254446][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 12:14:34,778 [DEBUG][       Thread-254446][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 12:14:34,778 [DEBUG][       Thread-254446][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 12:14:34,779 [DEBUG][       Thread-254446][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 12:14:34,779 [DEBUG][       Thread-254446][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 12:14:34,779 [DEBUG][       Thread-254446][   transport.py][1871] : Compression: none
2025-06-13 12:14:34,779 [DEBUG][       Thread-254446][   transport.py][1871] : === End of kex handshake ===
2025-06-13 12:14:34,836 [DEBUG][       Thread-254446][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 12:14:34,837 [DEBUG][       Thread-254446][   transport.py][1871] : Switch to new keys ...
2025-06-13 12:14:34,837 [DEBUG][       Thread-254446][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 12:14:34,838 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 12:14:34,838 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 12:14:34,899 [DEBUG][       Thread-254446][   transport.py][1871] : userauth is OK
2025-06-13 12:14:34,899 [DEBUG][       Thread-254446][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 12:14:34,899 [DEBUG][       Thread-254446][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 12:14:34,899 [DEBUG][       Thread-254446][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 12:14:34,899 [DEBUG][       Thread-254446][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 12:14:34,921 [ INFO][       Thread-254446][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 12:14:34,921 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 12:14:34,922 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 12:14:36,043 [DEBUG][       Thread-254446][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 12:14:36,043 [DEBUG][       Thread-254446][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 12:14:36,092 [DEBUG][       Thread-254446][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 12:14:36,092 [DEBUG][       Thread-254446][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 12:14:36,102 [DEBUG][       Thread-254446][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 12:14:36,111 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 12:14:36,111 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 12:14:36,120 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 12:14:36,129 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 12:14:36,130 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 12:14:36,130 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 12:14:36,138 [DEBUG][       Thread-254446][   transport.py][1871] : EOF in transport thread
2025-06-13 12:14:41,632 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:14:41,633 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:14:41,905 [DEBUG][Thread-254448 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:14:46,140 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 12:14:46,140 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 12:14:46,140 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 12:14:46,143 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 12:14:46,611 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 12, 14, 15), 12.49, 42.09, 0.0, 21.99, 11.82, 0, 0, 0, 2, 0, 0),)
2025-06-13 12:14:46,611 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 12:14:15
2025-06-13 12:14:46,693 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 12:14:46,697 [DEBUG][       Thread-254449][   transport.py][1871] : starting thread (client mode): 0x863ef0d0
2025-06-13 12:14:46,697 [DEBUG][       Thread-254449][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 12:14:46,716 [DEBUG][       Thread-254449][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 12:14:46,716 [ INFO][       Thread-254449][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 12:14:46,720 [DEBUG][       Thread-254449][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 12:14:46,720 [DEBUG][       Thread-254449][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 12:14:46,720 [DEBUG][       Thread-254449][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 12:14:46,720 [DEBUG][       Thread-254449][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:14:46,720 [DEBUG][       Thread-254449][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:14:46,720 [DEBUG][       Thread-254449][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:14:46,720 [DEBUG][       Thread-254449][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:14:46,720 [DEBUG][       Thread-254449][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 12:14:46,720 [DEBUG][       Thread-254449][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 12:14:46,720 [DEBUG][       Thread-254449][   transport.py][1871] : client lang: <none>
2025-06-13 12:14:46,720 [DEBUG][       Thread-254449][   transport.py][1871] : server lang: <none>
2025-06-13 12:14:46,720 [DEBUG][       Thread-254449][   transport.py][1871] : kex follows: False
2025-06-13 12:14:46,720 [DEBUG][       Thread-254449][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 12:14:46,720 [DEBUG][       Thread-254449][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 12:14:46,720 [DEBUG][       Thread-254449][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 12:14:46,720 [DEBUG][       Thread-254449][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 12:14:46,720 [DEBUG][       Thread-254449][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 12:14:46,720 [DEBUG][       Thread-254449][   transport.py][1871] : Compression: none
2025-06-13 12:14:46,720 [DEBUG][       Thread-254449][   transport.py][1871] : === End of kex handshake ===
2025-06-13 12:14:46,737 [DEBUG][       Thread-254449][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 12:14:46,737 [DEBUG][       Thread-254449][   transport.py][1871] : Switch to new keys ...
2025-06-13 12:14:46,738 [DEBUG][       Thread-254449][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 12:14:46,738 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 12:14:46,738 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 12:14:46,739 [DEBUG][       Thread-254449][   transport.py][1871] : userauth is OK
2025-06-13 12:14:46,752 [ INFO][       Thread-254449][   transport.py][1871] : Authentication (password) successful!
2025-06-13 12:14:46,753 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 12:14:47,364 [DEBUG][       Thread-254449][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 12:14:47,364 [DEBUG][       Thread-254449][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 12:14:47,405 [DEBUG][       Thread-254449][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 12:14:47,405 [DEBUG][       Thread-254449][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 12:14:47,407 [DEBUG][       Thread-254449][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 12:14:47,419 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 12:14:47,419 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 12:14:47,420 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 12:14:47,422 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 12:14:47,426 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 12:14:47,428 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 12:14:47,428 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 12:14:47,429 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 12:14:47,429 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.426674 -999.00  +11.60  17.54     47   +0.80 1 1 1 1 1   888    0 12.67 43.01 ----- 16.4 17.5 58.2 21.3 16.1 -28.7 14.8 -29.4 14.4 -28.2 15.8 -26.3
2025-06-13 12:14:47,429 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 12:14:47,429 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 12:14:47,429 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.426674
2025-06-13 12:14:47,430 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 12:14:47,430 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 12:14:47,430 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 12:14:47,430 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 12:14:47,430 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 12:14:47,430 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T12:14:15', tmtdew=12.49, humidity=42.09, cloud=0.0, wind=21.99, temperature=11.82, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T10:14:24.634', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 12:14:47,431 [DEBUG][       Thread-254449][   transport.py][1871] : EOF in transport thread
2025-06-13 12:14:47,516 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 12:14:47,527 [DEBUG][       Thread-254452][   transport.py][1871] : starting thread (client mode): 0x863a41f0
2025-06-13 12:14:47,527 [DEBUG][       Thread-254452][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 12:14:47,548 [DEBUG][       Thread-254452][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 12:14:47,548 [ INFO][       Thread-254452][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 12:14:47,558 [DEBUG][       Thread-254452][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 12:14:47,558 [DEBUG][       Thread-254452][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 12:14:47,558 [DEBUG][       Thread-254452][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 12:14:47,559 [DEBUG][       Thread-254452][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:14:47,559 [DEBUG][       Thread-254452][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:14:47,559 [DEBUG][       Thread-254452][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:14:47,559 [DEBUG][       Thread-254452][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:14:47,559 [DEBUG][       Thread-254452][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 12:14:47,559 [DEBUG][       Thread-254452][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 12:14:47,559 [DEBUG][       Thread-254452][   transport.py][1871] : client lang: <none>
2025-06-13 12:14:47,559 [DEBUG][       Thread-254452][   transport.py][1871] : server lang: <none>
2025-06-13 12:14:47,559 [DEBUG][       Thread-254452][   transport.py][1871] : kex follows: False
2025-06-13 12:14:47,559 [DEBUG][       Thread-254452][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 12:14:47,559 [DEBUG][       Thread-254452][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 12:14:47,559 [DEBUG][       Thread-254452][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 12:14:47,559 [DEBUG][       Thread-254452][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 12:14:47,559 [DEBUG][       Thread-254452][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 12:14:47,559 [DEBUG][       Thread-254452][   transport.py][1871] : Compression: none
2025-06-13 12:14:47,559 [DEBUG][       Thread-254452][   transport.py][1871] : === End of kex handshake ===
2025-06-13 12:14:47,624 [DEBUG][       Thread-254452][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 12:14:47,624 [DEBUG][       Thread-254452][   transport.py][1871] : Switch to new keys ...
2025-06-13 12:14:47,625 [DEBUG][       Thread-254452][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 12:14:47,625 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 12:14:47,625 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 12:14:47,691 [DEBUG][       Thread-254452][   transport.py][1871] : userauth is OK
2025-06-13 12:14:47,691 [DEBUG][       Thread-254452][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 12:14:47,691 [DEBUG][       Thread-254452][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 12:14:47,691 [DEBUG][       Thread-254452][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 12:14:47,691 [DEBUG][       Thread-254452][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 12:14:47,710 [ INFO][       Thread-254452][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 12:14:47,710 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 12:14:47,710 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 12:14:49,159 [DEBUG][       Thread-254452][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 12:14:49,159 [DEBUG][       Thread-254452][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 12:14:49,208 [DEBUG][       Thread-254452][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 12:14:49,208 [DEBUG][       Thread-254452][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 12:14:49,221 [DEBUG][       Thread-254452][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 12:14:49,236 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 12:14:49,236 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 12:14:49,249 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 12:14:49,261 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 12:14:49,261 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 12:14:49,261 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 12:14:49,269 [DEBUG][       Thread-254452][   transport.py][1871] : EOF in transport thread
2025-06-13 12:14:50,926 [DEBUG][Thread-254454 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:14:59,271 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 12:14:59,272 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 12:14:59,272 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 12:14:59,274 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 12:14:59,744 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 12, 14, 47), 12.63, 41.68, 0.0, 21.69, 11.84, 0, 0, 0, 2, 0, 0),)
2025-06-13 12:14:59,744 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 12:14:47
2025-06-13 12:14:59,825 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 12:14:59,830 [DEBUG][       Thread-254455][   transport.py][1871] : starting thread (client mode): 0x863ef970
2025-06-13 12:14:59,830 [DEBUG][       Thread-254455][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 12:14:59,850 [DEBUG][       Thread-254455][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 12:14:59,850 [ INFO][       Thread-254455][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 12:14:59,853 [DEBUG][       Thread-254455][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 12:14:59,853 [DEBUG][       Thread-254455][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 12:14:59,853 [DEBUG][       Thread-254455][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 12:14:59,853 [DEBUG][       Thread-254455][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:14:59,853 [DEBUG][       Thread-254455][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:14:59,853 [DEBUG][       Thread-254455][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:14:59,853 [DEBUG][       Thread-254455][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:14:59,853 [DEBUG][       Thread-254455][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 12:14:59,853 [DEBUG][       Thread-254455][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 12:14:59,853 [DEBUG][       Thread-254455][   transport.py][1871] : client lang: <none>
2025-06-13 12:14:59,853 [DEBUG][       Thread-254455][   transport.py][1871] : server lang: <none>
2025-06-13 12:14:59,854 [DEBUG][       Thread-254455][   transport.py][1871] : kex follows: False
2025-06-13 12:14:59,854 [DEBUG][       Thread-254455][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 12:14:59,854 [DEBUG][       Thread-254455][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 12:14:59,854 [DEBUG][       Thread-254455][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 12:14:59,854 [DEBUG][       Thread-254455][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 12:14:59,854 [DEBUG][       Thread-254455][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 12:14:59,854 [DEBUG][       Thread-254455][   transport.py][1871] : Compression: none
2025-06-13 12:14:59,854 [DEBUG][       Thread-254455][   transport.py][1871] : === End of kex handshake ===
2025-06-13 12:14:59,870 [DEBUG][       Thread-254455][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 12:14:59,870 [DEBUG][       Thread-254455][   transport.py][1871] : Switch to new keys ...
2025-06-13 12:14:59,871 [DEBUG][       Thread-254455][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 12:14:59,871 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 12:14:59,871 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 12:14:59,872 [DEBUG][       Thread-254455][   transport.py][1871] : userauth is OK
2025-06-13 12:14:59,896 [ INFO][       Thread-254455][   transport.py][1871] : Authentication (password) successful!
2025-06-13 12:14:59,897 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 12:14:59,947 [DEBUG][Thread-254457 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:15:00,536 [DEBUG][       Thread-254455][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 12:15:00,536 [DEBUG][       Thread-254455][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 12:15:00,577 [DEBUG][       Thread-254455][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 12:15:00,577 [DEBUG][       Thread-254455][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 12:15:00,580 [DEBUG][       Thread-254455][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 12:15:00,591 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 12:15:00,591 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 12:15:00,593 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 12:15:00,595 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 12:15:00,600 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 12:15:00,601 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 12:15:00,601 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 12:15:00,602 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 12:15:00,602 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.426674 -999.00  +11.60  17.54     47   +0.80 1 1 1 1 1   888    0 12.67 43.01 ----- 16.4 17.5 58.2 21.3 16.1 -28.7 14.8 -29.4 14.4 -28.2 15.8 -26.3
2025-06-13 12:15:00,602 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 12:15:00,602 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 12:15:00,602 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.426674
2025-06-13 12:15:00,603 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 12:15:00,603 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 12:15:00,603 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 12:15:00,604 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 12:15:00,604 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 12:15:00,604 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T12:14:47', tmtdew=12.63, humidity=41.68, cloud=0.0, wind=21.69, temperature=11.84, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T10:14:24.634', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 12:15:00,605 [DEBUG][       Thread-254455][   transport.py][1871] : EOF in transport thread
2025-06-13 12:15:00,687 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 12:15:00,697 [DEBUG][       Thread-254459][   transport.py][1871] : starting thread (client mode): 0x867b7b80
2025-06-13 12:15:00,697 [DEBUG][       Thread-254459][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 12:15:00,712 [DEBUG][       Thread-254459][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 12:15:00,712 [ INFO][       Thread-254459][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 12:15:00,720 [DEBUG][       Thread-254459][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 12:15:00,720 [DEBUG][       Thread-254459][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 12:15:00,720 [DEBUG][       Thread-254459][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 12:15:00,720 [DEBUG][       Thread-254459][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:15:00,721 [DEBUG][       Thread-254459][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:15:00,721 [DEBUG][       Thread-254459][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:15:00,721 [DEBUG][       Thread-254459][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:15:00,721 [DEBUG][       Thread-254459][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 12:15:00,721 [DEBUG][       Thread-254459][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 12:15:00,721 [DEBUG][       Thread-254459][   transport.py][1871] : client lang: <none>
2025-06-13 12:15:00,721 [DEBUG][       Thread-254459][   transport.py][1871] : server lang: <none>
2025-06-13 12:15:00,721 [DEBUG][       Thread-254459][   transport.py][1871] : kex follows: False
2025-06-13 12:15:00,721 [DEBUG][       Thread-254459][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 12:15:00,721 [DEBUG][       Thread-254459][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 12:15:00,721 [DEBUG][       Thread-254459][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 12:15:00,721 [DEBUG][       Thread-254459][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 12:15:00,721 [DEBUG][       Thread-254459][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 12:15:00,721 [DEBUG][       Thread-254459][   transport.py][1871] : Compression: none
2025-06-13 12:15:00,721 [DEBUG][       Thread-254459][   transport.py][1871] : === End of kex handshake ===
2025-06-13 12:15:00,780 [DEBUG][       Thread-254459][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 12:15:00,781 [DEBUG][       Thread-254459][   transport.py][1871] : Switch to new keys ...
2025-06-13 12:15:00,781 [DEBUG][       Thread-254459][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 12:15:00,781 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 12:15:00,782 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 12:15:00,836 [DEBUG][       Thread-254459][   transport.py][1871] : userauth is OK
2025-06-13 12:15:00,837 [DEBUG][       Thread-254459][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 12:15:00,837 [DEBUG][       Thread-254459][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 12:15:00,837 [DEBUG][       Thread-254459][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 12:15:00,837 [DEBUG][       Thread-254459][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 12:15:00,859 [ INFO][       Thread-254459][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 12:15:00,860 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 12:15:00,860 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 12:15:02,294 [DEBUG][       Thread-254459][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 12:15:02,294 [DEBUG][       Thread-254459][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 12:15:02,343 [DEBUG][       Thread-254459][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 12:15:02,343 [DEBUG][       Thread-254459][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 12:15:02,352 [DEBUG][       Thread-254459][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 12:15:02,361 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 12:15:02,361 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 12:15:02,368 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 12:15:02,376 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 12:15:02,376 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 12:15:02,376 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 12:15:02,385 [DEBUG][       Thread-254459][   transport.py][1871] : EOF in transport thread
2025-06-13 12:15:08,964 [DEBUG][Thread-254461 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:15:11,595 [DEBUG][Thread-254462 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:15:12,387 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 12:15:12,387 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 12:15:12,387 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 12:15:12,390 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 12:15:12,708 [DEBUG][Thread-254463 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:15:12,848 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 12, 14, 47), 12.63, 41.68, 0.0, 21.69, 11.84, 0, 0, 0, 2, 0, 0),)
2025-06-13 12:15:12,848 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 12:14:47
2025-06-13 12:15:12,929 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 12:15:12,935 [DEBUG][       Thread-254464][   transport.py][1871] : starting thread (client mode): 0x863ec100
2025-06-13 12:15:12,935 [DEBUG][       Thread-254464][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 12:15:12,956 [DEBUG][       Thread-254464][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 12:15:12,956 [ INFO][       Thread-254464][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 12:15:12,960 [DEBUG][       Thread-254464][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 12:15:12,960 [DEBUG][       Thread-254464][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 12:15:12,960 [DEBUG][       Thread-254464][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 12:15:12,960 [DEBUG][       Thread-254464][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:15:12,960 [DEBUG][       Thread-254464][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:15:12,960 [DEBUG][       Thread-254464][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:15:12,960 [DEBUG][       Thread-254464][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:15:12,960 [DEBUG][       Thread-254464][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 12:15:12,960 [DEBUG][       Thread-254464][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 12:15:12,960 [DEBUG][       Thread-254464][   transport.py][1871] : client lang: <none>
2025-06-13 12:15:12,960 [DEBUG][       Thread-254464][   transport.py][1871] : server lang: <none>
2025-06-13 12:15:12,960 [DEBUG][       Thread-254464][   transport.py][1871] : kex follows: False
2025-06-13 12:15:12,960 [DEBUG][       Thread-254464][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 12:15:12,960 [DEBUG][       Thread-254464][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 12:15:12,960 [DEBUG][       Thread-254464][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 12:15:12,960 [DEBUG][       Thread-254464][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 12:15:12,960 [DEBUG][       Thread-254464][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 12:15:12,960 [DEBUG][       Thread-254464][   transport.py][1871] : Compression: none
2025-06-13 12:15:12,961 [DEBUG][       Thread-254464][   transport.py][1871] : === End of kex handshake ===
2025-06-13 12:15:12,980 [DEBUG][       Thread-254464][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 12:15:12,981 [DEBUG][       Thread-254464][   transport.py][1871] : Switch to new keys ...
2025-06-13 12:15:12,981 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 12:15:12,981 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 12:15:12,982 [DEBUG][       Thread-254464][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 12:15:12,982 [DEBUG][       Thread-254464][   transport.py][1871] : userauth is OK
2025-06-13 12:15:12,996 [ INFO][       Thread-254464][   transport.py][1871] : Authentication (password) successful!
2025-06-13 12:15:12,996 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 12:15:13,772 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:15:13,774 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:15:17,531 [DEBUG][       Thread-254464][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 12:15:17,531 [DEBUG][       Thread-254464][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 12:15:17,573 [DEBUG][       Thread-254464][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 12:15:17,573 [DEBUG][       Thread-254464][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 12:15:17,576 [DEBUG][       Thread-254464][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 12:15:17,586 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 12:15:17,587 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 12:15:17,588 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 12:15:17,591 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 12:15:17,598 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 12:15:17,600 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 12:15:17,600 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 12:15:17,601 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 12:15:17,602 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.427021 -999.00  +11.80  19.89     46   +0.70 1 1 1 1 1   888    0 12.14 38.74 ----- 20.5 19.9 59.6 23.2 16.1 -28.4 14.8 -30.0 14.5 -29.0 15.8 -26.3
2025-06-13 12:15:17,602 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 12:15:17,602 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 12:15:17,602 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.427021
2025-06-13 12:15:17,603 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 12:15:17,604 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 12:15:17,604 [DEBUG][       Thread-254464][   transport.py][1871] : EOF in transport thread
2025-06-13 12:15:17,604 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 12:15:17,605 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 12:15:17,605 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 12:15:17,605 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T12:14:47', tmtdew=12.63, humidity=41.68, cloud=0.0, wind=21.69, temperature=11.84, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T10:14:54.614', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 12:15:17,698 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 12:15:17,712 [DEBUG][       Thread-254467][   transport.py][1871] : starting thread (client mode): 0x863a5de0
2025-06-13 12:15:17,712 [DEBUG][       Thread-254467][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 12:15:17,726 [DEBUG][       Thread-254467][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 12:15:17,726 [ INFO][       Thread-254467][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 12:15:17,734 [DEBUG][       Thread-254467][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 12:15:17,735 [DEBUG][       Thread-254467][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 12:15:17,735 [DEBUG][       Thread-254467][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 12:15:17,735 [DEBUG][       Thread-254467][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:15:17,735 [DEBUG][       Thread-254467][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:15:17,735 [DEBUG][       Thread-254467][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:15:17,735 [DEBUG][       Thread-254467][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:15:17,735 [DEBUG][       Thread-254467][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 12:15:17,735 [DEBUG][       Thread-254467][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 12:15:17,735 [DEBUG][       Thread-254467][   transport.py][1871] : client lang: <none>
2025-06-13 12:15:17,735 [DEBUG][       Thread-254467][   transport.py][1871] : server lang: <none>
2025-06-13 12:15:17,735 [DEBUG][       Thread-254467][   transport.py][1871] : kex follows: False
2025-06-13 12:15:17,735 [DEBUG][       Thread-254467][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 12:15:17,735 [DEBUG][       Thread-254467][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 12:15:17,735 [DEBUG][       Thread-254467][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 12:15:17,735 [DEBUG][       Thread-254467][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 12:15:17,736 [DEBUG][       Thread-254467][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 12:15:17,736 [DEBUG][       Thread-254467][   transport.py][1871] : Compression: none
2025-06-13 12:15:17,736 [DEBUG][       Thread-254467][   transport.py][1871] : === End of kex handshake ===
2025-06-13 12:15:17,793 [DEBUG][       Thread-254467][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 12:15:17,793 [DEBUG][       Thread-254467][   transport.py][1871] : Switch to new keys ...
2025-06-13 12:15:17,794 [DEBUG][       Thread-254467][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 12:15:17,794 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 12:15:17,795 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 12:15:17,853 [DEBUG][       Thread-254467][   transport.py][1871] : userauth is OK
2025-06-13 12:15:17,853 [DEBUG][       Thread-254467][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 12:15:17,853 [DEBUG][       Thread-254467][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 12:15:17,854 [DEBUG][       Thread-254467][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 12:15:17,854 [DEBUG][       Thread-254467][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 12:15:17,873 [ INFO][       Thread-254467][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 12:15:17,873 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 12:15:17,874 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 12:15:17,991 [DEBUG][Thread-254469 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:15:18,885 [DEBUG][       Thread-254467][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 12:15:18,886 [DEBUG][       Thread-254467][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 12:15:18,937 [DEBUG][       Thread-254467][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 12:15:18,937 [DEBUG][       Thread-254467][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 12:15:18,947 [DEBUG][       Thread-254467][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 12:15:18,959 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 12:15:18,959 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 12:15:18,973 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 12:15:18,985 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 12:15:18,985 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 12:15:18,985 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 12:15:18,994 [DEBUG][       Thread-254467][   transport.py][1871] : EOF in transport thread
2025-06-13 12:15:27,012 [DEBUG][Thread-254470 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:15:28,996 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 12:15:28,996 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 12:15:28,997 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 12:15:28,999 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 12:15:29,465 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 12, 15, 18), 12.89, 40.77, 0.0, 18.91, 11.86, 0, 0, 0, 2, 0, 0),)
2025-06-13 12:15:29,465 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 12:15:18
2025-06-13 12:15:29,546 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 12:15:29,551 [DEBUG][       Thread-254471][   transport.py][1871] : starting thread (client mode): 0x863ed450
2025-06-13 12:15:29,551 [DEBUG][       Thread-254471][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 12:15:29,572 [DEBUG][       Thread-254471][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 12:15:29,572 [ INFO][       Thread-254471][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 12:15:29,576 [DEBUG][       Thread-254471][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 12:15:29,576 [DEBUG][       Thread-254471][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 12:15:29,576 [DEBUG][       Thread-254471][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 12:15:29,576 [DEBUG][       Thread-254471][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:15:29,576 [DEBUG][       Thread-254471][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:15:29,576 [DEBUG][       Thread-254471][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:15:29,576 [DEBUG][       Thread-254471][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:15:29,576 [DEBUG][       Thread-254471][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 12:15:29,576 [DEBUG][       Thread-254471][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 12:15:29,576 [DEBUG][       Thread-254471][   transport.py][1871] : client lang: <none>
2025-06-13 12:15:29,576 [DEBUG][       Thread-254471][   transport.py][1871] : server lang: <none>
2025-06-13 12:15:29,576 [DEBUG][       Thread-254471][   transport.py][1871] : kex follows: False
2025-06-13 12:15:29,576 [DEBUG][       Thread-254471][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 12:15:29,576 [DEBUG][       Thread-254471][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 12:15:29,576 [DEBUG][       Thread-254471][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 12:15:29,576 [DEBUG][       Thread-254471][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 12:15:29,576 [DEBUG][       Thread-254471][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 12:15:29,577 [DEBUG][       Thread-254471][   transport.py][1871] : Compression: none
2025-06-13 12:15:29,577 [DEBUG][       Thread-254471][   transport.py][1871] : === End of kex handshake ===
2025-06-13 12:15:29,594 [DEBUG][       Thread-254471][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 12:15:29,594 [DEBUG][       Thread-254471][   transport.py][1871] : Switch to new keys ...
2025-06-13 12:15:29,595 [DEBUG][       Thread-254471][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 12:15:29,595 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 12:15:29,595 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 12:15:29,596 [DEBUG][       Thread-254471][   transport.py][1871] : userauth is OK
2025-06-13 12:15:29,621 [ INFO][       Thread-254471][   transport.py][1871] : Authentication (password) successful!
2025-06-13 12:15:29,622 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 12:15:30,252 [DEBUG][       Thread-254471][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 12:15:30,252 [DEBUG][       Thread-254471][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 12:15:30,293 [DEBUG][       Thread-254471][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 12:15:30,293 [DEBUG][       Thread-254471][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 12:15:30,297 [DEBUG][       Thread-254471][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 12:15:30,310 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 12:15:30,311 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 12:15:30,313 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 12:15:30,315 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 12:15:30,320 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 12:15:30,322 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 12:15:30,322 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 12:15:30,323 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 12:15:30,323 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.427021 -999.00  +11.80  19.89     46   +0.70 1 1 1 1 1   888    0 12.14 38.74 ----- 20.5 19.9 59.6 23.2 16.1 -28.4 14.8 -30.0 14.5 -29.0 15.8 -26.3
2025-06-13 12:15:30,323 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 12:15:30,323 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 12:15:30,323 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.427021
2025-06-13 12:15:30,324 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 12:15:30,325 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 12:15:30,325 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 12:15:30,325 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 12:15:30,325 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 12:15:30,325 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T12:15:18', tmtdew=12.89, humidity=40.77, cloud=0.0, wind=18.91, temperature=11.86, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T10:14:54.614', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 12:15:30,325 [DEBUG][       Thread-254471][   transport.py][1871] : EOF in transport thread
2025-06-13 12:15:30,409 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 12:15:30,419 [DEBUG][       Thread-254474][   transport.py][1871] : starting thread (client mode): 0x867b47f0
2025-06-13 12:15:30,419 [DEBUG][       Thread-254474][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 12:15:30,435 [DEBUG][       Thread-254474][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 12:15:30,435 [ INFO][       Thread-254474][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 12:15:30,443 [DEBUG][       Thread-254474][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 12:15:30,444 [DEBUG][       Thread-254474][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 12:15:30,444 [DEBUG][       Thread-254474][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 12:15:30,444 [DEBUG][       Thread-254474][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:15:30,444 [DEBUG][       Thread-254474][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:15:30,444 [DEBUG][       Thread-254474][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:15:30,444 [DEBUG][       Thread-254474][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:15:30,444 [DEBUG][       Thread-254474][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 12:15:30,444 [DEBUG][       Thread-254474][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 12:15:30,444 [DEBUG][       Thread-254474][   transport.py][1871] : client lang: <none>
2025-06-13 12:15:30,444 [DEBUG][       Thread-254474][   transport.py][1871] : server lang: <none>
2025-06-13 12:15:30,444 [DEBUG][       Thread-254474][   transport.py][1871] : kex follows: False
2025-06-13 12:15:30,444 [DEBUG][       Thread-254474][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 12:15:30,444 [DEBUG][       Thread-254474][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 12:15:30,444 [DEBUG][       Thread-254474][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 12:15:30,444 [DEBUG][       Thread-254474][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 12:15:30,444 [DEBUG][       Thread-254474][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 12:15:30,444 [DEBUG][       Thread-254474][   transport.py][1871] : Compression: none
2025-06-13 12:15:30,444 [DEBUG][       Thread-254474][   transport.py][1871] : === End of kex handshake ===
2025-06-13 12:15:30,500 [DEBUG][       Thread-254474][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 12:15:30,500 [DEBUG][       Thread-254474][   transport.py][1871] : Switch to new keys ...
2025-06-13 12:15:30,501 [DEBUG][       Thread-254474][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 12:15:30,501 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 12:15:30,502 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 12:15:30,557 [DEBUG][       Thread-254474][   transport.py][1871] : userauth is OK
2025-06-13 12:15:30,557 [DEBUG][       Thread-254474][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 12:15:30,557 [DEBUG][       Thread-254474][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 12:15:30,557 [DEBUG][       Thread-254474][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 12:15:30,558 [DEBUG][       Thread-254474][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 12:15:30,577 [ INFO][       Thread-254474][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 12:15:30,577 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 12:15:30,578 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 12:15:31,914 [DEBUG][       Thread-254474][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 12:15:31,915 [DEBUG][       Thread-254474][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 12:15:31,965 [DEBUG][       Thread-254474][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 12:15:31,965 [DEBUG][       Thread-254474][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 12:15:31,974 [DEBUG][       Thread-254474][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 12:15:31,983 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 12:15:31,983 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 12:15:31,993 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 12:15:32,003 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 12:15:32,003 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 12:15:32,004 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 12:15:32,013 [DEBUG][       Thread-254474][   transport.py][1871] : EOF in transport thread
2025-06-13 12:15:36,034 [DEBUG][Thread-254476 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:15:41,772 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:15:41,773 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:15:42,014 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 12:15:42,014 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 12:15:42,014 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 12:15:42,018 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 12:15:42,480 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 12, 15, 18), 12.89, 40.77, 0.0, 18.91, 11.86, 0, 0, 0, 2, 0, 0),)
2025-06-13 12:15:42,480 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 12:15:18
2025-06-13 12:15:42,562 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 12:15:42,570 [DEBUG][       Thread-254477][   transport.py][1871] : starting thread (client mode): 0x863ee9e0
2025-06-13 12:15:42,570 [DEBUG][       Thread-254477][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 12:15:42,590 [DEBUG][       Thread-254477][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 12:15:42,591 [ INFO][       Thread-254477][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 12:15:42,594 [DEBUG][       Thread-254477][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 12:15:42,594 [DEBUG][       Thread-254477][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 12:15:42,594 [DEBUG][       Thread-254477][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 12:15:42,594 [DEBUG][       Thread-254477][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:15:42,594 [DEBUG][       Thread-254477][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:15:42,594 [DEBUG][       Thread-254477][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:15:42,594 [DEBUG][       Thread-254477][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:15:42,594 [DEBUG][       Thread-254477][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 12:15:42,594 [DEBUG][       Thread-254477][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 12:15:42,594 [DEBUG][       Thread-254477][   transport.py][1871] : client lang: <none>
2025-06-13 12:15:42,594 [DEBUG][       Thread-254477][   transport.py][1871] : server lang: <none>
2025-06-13 12:15:42,594 [DEBUG][       Thread-254477][   transport.py][1871] : kex follows: False
2025-06-13 12:15:42,594 [DEBUG][       Thread-254477][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 12:15:42,594 [DEBUG][       Thread-254477][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 12:15:42,595 [DEBUG][       Thread-254477][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 12:15:42,595 [DEBUG][       Thread-254477][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 12:15:42,595 [DEBUG][       Thread-254477][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 12:15:42,595 [DEBUG][       Thread-254477][   transport.py][1871] : Compression: none
2025-06-13 12:15:42,595 [DEBUG][       Thread-254477][   transport.py][1871] : === End of kex handshake ===
2025-06-13 12:15:42,612 [DEBUG][       Thread-254477][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 12:15:42,613 [DEBUG][       Thread-254477][   transport.py][1871] : Switch to new keys ...
2025-06-13 12:15:42,613 [DEBUG][       Thread-254477][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 12:15:42,614 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 12:15:42,614 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 12:15:42,615 [DEBUG][       Thread-254477][   transport.py][1871] : userauth is OK
2025-06-13 12:15:42,628 [ INFO][       Thread-254477][   transport.py][1871] : Authentication (password) successful!
2025-06-13 12:15:42,628 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 12:15:43,246 [DEBUG][       Thread-254477][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 12:15:43,246 [DEBUG][       Thread-254477][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 12:15:43,289 [DEBUG][       Thread-254477][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 12:15:43,289 [DEBUG][       Thread-254477][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 12:15:43,292 [DEBUG][       Thread-254477][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 12:15:43,302 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 12:15:43,303 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 12:15:43,305 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 12:15:43,307 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 12:15:43,313 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 12:15:43,315 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 12:15:43,315 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 12:15:43,316 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 12:15:43,316 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.427021 -999.00  +11.80  19.89     46   +0.70 1 1 1 1 1   888    0 12.14 38.74 ----- 20.5 19.9 59.6 23.2 16.1 -28.4 14.8 -30.0 14.5 -29.0 15.8 -26.3
2025-06-13 12:15:43,316 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 12:15:43,316 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 12:15:43,316 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.427021
2025-06-13 12:15:43,317 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 12:15:43,317 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 12:15:43,317 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 12:15:43,317 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 12:15:43,317 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 12:15:43,318 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T12:15:18', tmtdew=12.89, humidity=40.77, cloud=0.0, wind=18.91, temperature=11.86, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T10:14:54.614', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 12:15:43,319 [DEBUG][       Thread-254477][   transport.py][1871] : EOF in transport thread
2025-06-13 12:15:43,395 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 12:15:43,407 [DEBUG][       Thread-254480][   transport.py][1871] : starting thread (client mode): 0x863a4eb0
2025-06-13 12:15:43,407 [DEBUG][       Thread-254480][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 12:15:43,424 [DEBUG][       Thread-254480][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 12:15:43,424 [ INFO][       Thread-254480][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 12:15:43,431 [DEBUG][       Thread-254480][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 12:15:43,431 [DEBUG][       Thread-254480][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 12:15:43,431 [DEBUG][       Thread-254480][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 12:15:43,432 [DEBUG][       Thread-254480][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:15:43,432 [DEBUG][       Thread-254480][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:15:43,432 [DEBUG][       Thread-254480][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:15:43,432 [DEBUG][       Thread-254480][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:15:43,432 [DEBUG][       Thread-254480][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 12:15:43,432 [DEBUG][       Thread-254480][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 12:15:43,432 [DEBUG][       Thread-254480][   transport.py][1871] : client lang: <none>
2025-06-13 12:15:43,432 [DEBUG][       Thread-254480][   transport.py][1871] : server lang: <none>
2025-06-13 12:15:43,432 [DEBUG][       Thread-254480][   transport.py][1871] : kex follows: False
2025-06-13 12:15:43,432 [DEBUG][       Thread-254480][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 12:15:43,432 [DEBUG][       Thread-254480][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 12:15:43,432 [DEBUG][       Thread-254480][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 12:15:43,432 [DEBUG][       Thread-254480][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 12:15:43,432 [DEBUG][       Thread-254480][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 12:15:43,432 [DEBUG][       Thread-254480][   transport.py][1871] : Compression: none
2025-06-13 12:15:43,432 [DEBUG][       Thread-254480][   transport.py][1871] : === End of kex handshake ===
2025-06-13 12:15:43,487 [DEBUG][       Thread-254480][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 12:15:43,488 [DEBUG][       Thread-254480][   transport.py][1871] : Switch to new keys ...
2025-06-13 12:15:43,489 [DEBUG][       Thread-254480][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 12:15:43,489 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 12:15:43,489 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 12:15:43,544 [DEBUG][       Thread-254480][   transport.py][1871] : userauth is OK
2025-06-13 12:15:43,545 [DEBUG][       Thread-254480][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 12:15:43,545 [DEBUG][       Thread-254480][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 12:15:43,545 [DEBUG][       Thread-254480][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 12:15:43,545 [DEBUG][       Thread-254480][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 12:15:43,568 [ INFO][       Thread-254480][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 12:15:43,568 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 12:15:43,569 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 12:15:44,933 [DEBUG][       Thread-254480][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 12:15:44,933 [DEBUG][       Thread-254480][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 12:15:44,984 [DEBUG][       Thread-254480][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 12:15:44,984 [DEBUG][       Thread-254480][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 12:15:44,993 [DEBUG][       Thread-254480][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 12:15:45,001 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 12:15:45,001 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 12:15:45,010 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 12:15:45,019 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 12:15:45,019 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 12:15:45,019 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 12:15:45,027 [DEBUG][       Thread-254480][   transport.py][1871] : EOF in transport thread
2025-06-13 12:15:45,068 [DEBUG][Thread-254482 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:15:54,086 [DEBUG][Thread-254483 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:15:55,029 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 12:15:55,030 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 12:15:55,030 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 12:15:55,033 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 12:15:55,503 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 12, 15, 50), 13.05, 40.32, 0.0, 19.55, 11.88, 0, 0, 0, 2, 0, 0),)
2025-06-13 12:15:55,503 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 12:15:50
2025-06-13 12:15:55,585 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 12:15:55,589 [DEBUG][       Thread-254484][   transport.py][1871] : starting thread (client mode): 0x863a7d30
2025-06-13 12:15:55,589 [DEBUG][       Thread-254484][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 12:15:55,608 [DEBUG][       Thread-254484][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 12:15:55,608 [ INFO][       Thread-254484][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 12:15:55,612 [DEBUG][       Thread-254484][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 12:15:55,612 [DEBUG][       Thread-254484][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 12:15:55,612 [DEBUG][       Thread-254484][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 12:15:55,612 [DEBUG][       Thread-254484][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:15:55,612 [DEBUG][       Thread-254484][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:15:55,612 [DEBUG][       Thread-254484][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:15:55,612 [DEBUG][       Thread-254484][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:15:55,612 [DEBUG][       Thread-254484][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 12:15:55,612 [DEBUG][       Thread-254484][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 12:15:55,612 [DEBUG][       Thread-254484][   transport.py][1871] : client lang: <none>
2025-06-13 12:15:55,612 [DEBUG][       Thread-254484][   transport.py][1871] : server lang: <none>
2025-06-13 12:15:55,612 [DEBUG][       Thread-254484][   transport.py][1871] : kex follows: False
2025-06-13 12:15:55,612 [DEBUG][       Thread-254484][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 12:15:55,612 [DEBUG][       Thread-254484][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 12:15:55,612 [DEBUG][       Thread-254484][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 12:15:55,612 [DEBUG][       Thread-254484][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 12:15:55,612 [DEBUG][       Thread-254484][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 12:15:55,612 [DEBUG][       Thread-254484][   transport.py][1871] : Compression: none
2025-06-13 12:15:55,612 [DEBUG][       Thread-254484][   transport.py][1871] : === End of kex handshake ===
2025-06-13 12:15:55,624 [DEBUG][       Thread-254484][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 12:15:55,624 [DEBUG][       Thread-254484][   transport.py][1871] : Switch to new keys ...
2025-06-13 12:15:55,625 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 12:15:55,625 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 12:15:55,626 [DEBUG][       Thread-254484][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 12:15:55,626 [DEBUG][       Thread-254484][   transport.py][1871] : userauth is OK
2025-06-13 12:15:55,651 [ INFO][       Thread-254484][   transport.py][1871] : Authentication (password) successful!
2025-06-13 12:15:55,651 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 12:15:56,201 [DEBUG][       Thread-254484][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 12:15:56,201 [DEBUG][       Thread-254484][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 12:15:56,244 [DEBUG][       Thread-254484][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 12:15:56,245 [DEBUG][       Thread-254484][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 12:15:56,248 [DEBUG][       Thread-254484][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 12:15:56,259 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 12:15:56,259 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 12:15:56,261 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 12:15:56,262 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 12:15:56,269 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 12:15:56,271 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 12:15:56,271 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 12:15:56,272 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 12:15:56,272 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.427369 -999.00  +11.80  17.02     45   +0.50 1 1 1 1 1   888    0 12.52 38.57 ----- 17.3 17.0 62.2 22.5 16.2 -27.5 14.8 -29.3 14.5 -28.4 15.8 -27.4
2025-06-13 12:15:56,272 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 12:15:56,272 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 12:15:56,272 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.427369
2025-06-13 12:15:56,273 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 12:15:56,273 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 12:15:56,273 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 12:15:56,273 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 12:15:56,273 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 12:15:56,273 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T12:15:50', tmtdew=13.05, humidity=40.32, cloud=0.0, wind=19.55, temperature=11.88, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T10:15:24.682', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 12:15:56,274 [DEBUG][       Thread-254484][   transport.py][1871] : EOF in transport thread
2025-06-13 12:15:56,361 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 12:15:56,370 [DEBUG][       Thread-254487][   transport.py][1871] : starting thread (client mode): 0x867b4670
2025-06-13 12:15:56,370 [DEBUG][       Thread-254487][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 12:15:56,386 [DEBUG][       Thread-254487][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 12:15:56,386 [ INFO][       Thread-254487][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 12:15:56,395 [DEBUG][       Thread-254487][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 12:15:56,395 [DEBUG][       Thread-254487][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 12:15:56,395 [DEBUG][       Thread-254487][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 12:15:56,395 [DEBUG][       Thread-254487][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:15:56,395 [DEBUG][       Thread-254487][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:15:56,395 [DEBUG][       Thread-254487][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:15:56,395 [DEBUG][       Thread-254487][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:15:56,395 [DEBUG][       Thread-254487][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 12:15:56,395 [DEBUG][       Thread-254487][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 12:15:56,395 [DEBUG][       Thread-254487][   transport.py][1871] : client lang: <none>
2025-06-13 12:15:56,395 [DEBUG][       Thread-254487][   transport.py][1871] : server lang: <none>
2025-06-13 12:15:56,395 [DEBUG][       Thread-254487][   transport.py][1871] : kex follows: False
2025-06-13 12:15:56,395 [DEBUG][       Thread-254487][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 12:15:56,395 [DEBUG][       Thread-254487][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 12:15:56,395 [DEBUG][       Thread-254487][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 12:15:56,395 [DEBUG][       Thread-254487][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 12:15:56,395 [DEBUG][       Thread-254487][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 12:15:56,395 [DEBUG][       Thread-254487][   transport.py][1871] : Compression: none
2025-06-13 12:15:56,396 [DEBUG][       Thread-254487][   transport.py][1871] : === End of kex handshake ===
2025-06-13 12:15:56,457 [DEBUG][       Thread-254487][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 12:15:56,457 [DEBUG][       Thread-254487][   transport.py][1871] : Switch to new keys ...
2025-06-13 12:15:56,457 [DEBUG][       Thread-254487][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 12:15:56,458 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 12:15:56,458 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 12:15:56,515 [DEBUG][       Thread-254487][   transport.py][1871] : userauth is OK
2025-06-13 12:15:56,516 [DEBUG][       Thread-254487][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 12:15:56,516 [DEBUG][       Thread-254487][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 12:15:56,516 [DEBUG][       Thread-254487][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 12:15:56,516 [DEBUG][       Thread-254487][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 12:15:56,535 [ INFO][       Thread-254487][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 12:15:56,536 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 12:15:56,536 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 12:15:57,686 [DEBUG][       Thread-254487][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 12:15:57,686 [DEBUG][       Thread-254487][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 12:15:57,736 [DEBUG][       Thread-254487][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 12:15:57,736 [DEBUG][       Thread-254487][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 12:15:57,750 [DEBUG][       Thread-254487][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 12:15:57,765 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 12:15:57,765 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 12:15:57,777 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 12:15:57,795 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 12:15:57,795 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 12:15:57,795 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 12:15:57,804 [DEBUG][       Thread-254487][   transport.py][1871] : EOF in transport thread
2025-06-13 12:16:03,108 [DEBUG][Thread-254489 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:16:07,796 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 12:16:07,796 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 12:16:07,796 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 12:16:07,800 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 12:16:08,271 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 12, 15, 50), 13.05, 40.32, 0.0, 19.55, 11.88, 0, 0, 0, 2, 0, 0),)
2025-06-13 12:16:08,271 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 12:15:50
2025-06-13 12:16:08,352 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 12:16:08,356 [DEBUG][       Thread-254490][   transport.py][1871] : starting thread (client mode): 0x863efa00
2025-06-13 12:16:08,356 [DEBUG][       Thread-254490][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 12:16:08,371 [DEBUG][       Thread-254490][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 12:16:08,371 [ INFO][       Thread-254490][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 12:16:08,374 [DEBUG][       Thread-254490][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 12:16:08,374 [DEBUG][       Thread-254490][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 12:16:08,374 [DEBUG][       Thread-254490][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 12:16:08,374 [DEBUG][       Thread-254490][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:16:08,374 [DEBUG][       Thread-254490][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:16:08,374 [DEBUG][       Thread-254490][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:16:08,374 [DEBUG][       Thread-254490][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:16:08,374 [DEBUG][       Thread-254490][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 12:16:08,374 [DEBUG][       Thread-254490][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 12:16:08,374 [DEBUG][       Thread-254490][   transport.py][1871] : client lang: <none>
2025-06-13 12:16:08,374 [DEBUG][       Thread-254490][   transport.py][1871] : server lang: <none>
2025-06-13 12:16:08,374 [DEBUG][       Thread-254490][   transport.py][1871] : kex follows: False
2025-06-13 12:16:08,374 [DEBUG][       Thread-254490][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 12:16:08,374 [DEBUG][       Thread-254490][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 12:16:08,375 [DEBUG][       Thread-254490][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 12:16:08,375 [DEBUG][       Thread-254490][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 12:16:08,375 [DEBUG][       Thread-254490][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 12:16:08,375 [DEBUG][       Thread-254490][   transport.py][1871] : Compression: none
2025-06-13 12:16:08,375 [DEBUG][       Thread-254490][   transport.py][1871] : === End of kex handshake ===
2025-06-13 12:16:08,391 [DEBUG][       Thread-254490][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 12:16:08,392 [DEBUG][       Thread-254490][   transport.py][1871] : Switch to new keys ...
2025-06-13 12:16:08,392 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 12:16:08,392 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 12:16:08,393 [DEBUG][       Thread-254490][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 12:16:08,394 [DEBUG][       Thread-254490][   transport.py][1871] : userauth is OK
2025-06-13 12:16:08,407 [ INFO][       Thread-254490][   transport.py][1871] : Authentication (password) successful!
2025-06-13 12:16:08,407 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 12:16:08,996 [DEBUG][       Thread-254490][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 12:16:08,996 [DEBUG][       Thread-254490][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 12:16:09,037 [DEBUG][       Thread-254490][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 12:16:09,037 [DEBUG][       Thread-254490][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 12:16:09,040 [DEBUG][       Thread-254490][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 12:16:09,052 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 12:16:09,052 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 12:16:09,054 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 12:16:09,056 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 12:16:09,061 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 12:16:09,063 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 12:16:09,063 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 12:16:09,064 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 12:16:09,064 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.427369 -999.00  +11.80  17.02     45   +0.50 1 1 1 1 1   888    0 12.52 38.57 ----- 17.3 17.0 62.2 22.5 16.2 -27.5 14.8 -29.3 14.5 -28.4 15.8 -27.4
2025-06-13 12:16:09,064 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 12:16:09,064 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 12:16:09,065 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.427369
2025-06-13 12:16:09,065 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 12:16:09,066 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 12:16:09,066 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 12:16:09,066 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 12:16:09,066 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 12:16:09,066 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T12:15:50', tmtdew=13.05, humidity=40.32, cloud=0.0, wind=19.55, temperature=11.88, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T10:15:24.682', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 12:16:09,067 [DEBUG][       Thread-254490][   transport.py][1871] : EOF in transport thread
2025-06-13 12:16:09,150 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 12:16:09,162 [DEBUG][       Thread-254493][   transport.py][1871] : starting thread (client mode): 0x86739330
2025-06-13 12:16:09,163 [DEBUG][       Thread-254493][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 12:16:09,177 [DEBUG][       Thread-254493][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 12:16:09,177 [ INFO][       Thread-254493][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 12:16:09,184 [DEBUG][       Thread-254493][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 12:16:09,185 [DEBUG][       Thread-254493][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 12:16:09,185 [DEBUG][       Thread-254493][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 12:16:09,185 [DEBUG][       Thread-254493][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:16:09,185 [DEBUG][       Thread-254493][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:16:09,185 [DEBUG][       Thread-254493][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:16:09,185 [DEBUG][       Thread-254493][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:16:09,185 [DEBUG][       Thread-254493][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 12:16:09,185 [DEBUG][       Thread-254493][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 12:16:09,185 [DEBUG][       Thread-254493][   transport.py][1871] : client lang: <none>
2025-06-13 12:16:09,185 [DEBUG][       Thread-254493][   transport.py][1871] : server lang: <none>
2025-06-13 12:16:09,185 [DEBUG][       Thread-254493][   transport.py][1871] : kex follows: False
2025-06-13 12:16:09,185 [DEBUG][       Thread-254493][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 12:16:09,185 [DEBUG][       Thread-254493][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 12:16:09,185 [DEBUG][       Thread-254493][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 12:16:09,185 [DEBUG][       Thread-254493][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 12:16:09,185 [DEBUG][       Thread-254493][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 12:16:09,186 [DEBUG][       Thread-254493][   transport.py][1871] : Compression: none
2025-06-13 12:16:09,186 [DEBUG][       Thread-254493][   transport.py][1871] : === End of kex handshake ===
2025-06-13 12:16:09,243 [DEBUG][       Thread-254493][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 12:16:09,244 [DEBUG][       Thread-254493][   transport.py][1871] : Switch to new keys ...
2025-06-13 12:16:09,244 [DEBUG][       Thread-254493][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 12:16:09,245 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 12:16:09,245 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 12:16:09,300 [DEBUG][       Thread-254493][   transport.py][1871] : userauth is OK
2025-06-13 12:16:09,301 [DEBUG][       Thread-254493][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 12:16:09,301 [DEBUG][       Thread-254493][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 12:16:09,301 [DEBUG][       Thread-254493][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 12:16:09,301 [DEBUG][       Thread-254493][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 12:16:09,320 [ INFO][       Thread-254493][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 12:16:09,320 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 12:16:09,321 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 12:16:10,485 [DEBUG][       Thread-254493][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 12:16:10,485 [DEBUG][       Thread-254493][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 12:16:10,536 [DEBUG][       Thread-254493][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 12:16:10,536 [DEBUG][       Thread-254493][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 12:16:10,547 [DEBUG][       Thread-254493][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 12:16:10,556 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 12:16:10,556 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 12:16:10,565 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 12:16:10,575 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 12:16:10,575 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 12:16:10,575 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 12:16:10,584 [DEBUG][       Thread-254493][   transport.py][1871] : EOF in transport thread
2025-06-13 12:16:11,646 [DEBUG][Thread-254495 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:16:12,145 [DEBUG][Thread-254496 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:16:13,857 [DEBUG][Thread-254497 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:16:14,934 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:16:14,936 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:16:20,586 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 12:16:20,586 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 12:16:20,586 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 12:16:20,589 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 12:16:21,053 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 12, 15, 50), 13.05, 40.32, 0.0, 19.55, 11.88, 0, 0, 0, 2, 0, 0),)
2025-06-13 12:16:21,053 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 12:15:50
2025-06-13 12:16:21,134 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 12:16:21,141 [DEBUG][       Thread-254498][   transport.py][1871] : starting thread (client mode): 0x863a7e50
2025-06-13 12:16:21,141 [DEBUG][       Thread-254498][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 12:16:21,162 [DEBUG][       Thread-254498][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 12:16:21,163 [ INFO][       Thread-254498][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 12:16:21,166 [DEBUG][Thread-254500 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:16:21,166 [DEBUG][       Thread-254498][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 12:16:21,166 [DEBUG][       Thread-254498][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 12:16:21,166 [DEBUG][       Thread-254498][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 12:16:21,166 [DEBUG][       Thread-254498][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:16:21,167 [DEBUG][       Thread-254498][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:16:21,167 [DEBUG][       Thread-254498][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:16:21,167 [DEBUG][       Thread-254498][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:16:21,167 [DEBUG][       Thread-254498][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 12:16:21,167 [DEBUG][       Thread-254498][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 12:16:21,167 [DEBUG][       Thread-254498][   transport.py][1871] : client lang: <none>
2025-06-13 12:16:21,167 [DEBUG][       Thread-254498][   transport.py][1871] : server lang: <none>
2025-06-13 12:16:21,167 [DEBUG][       Thread-254498][   transport.py][1871] : kex follows: False
2025-06-13 12:16:21,167 [DEBUG][       Thread-254498][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 12:16:21,167 [DEBUG][       Thread-254498][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 12:16:21,167 [DEBUG][       Thread-254498][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 12:16:21,167 [DEBUG][       Thread-254498][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 12:16:21,167 [DEBUG][       Thread-254498][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 12:16:21,167 [DEBUG][       Thread-254498][   transport.py][1871] : Compression: none
2025-06-13 12:16:21,167 [DEBUG][       Thread-254498][   transport.py][1871] : === End of kex handshake ===
2025-06-13 12:16:21,184 [DEBUG][       Thread-254498][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 12:16:21,184 [DEBUG][       Thread-254498][   transport.py][1871] : Switch to new keys ...
2025-06-13 12:16:21,185 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 12:16:21,185 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 12:16:21,185 [DEBUG][       Thread-254498][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 12:16:21,186 [DEBUG][       Thread-254498][   transport.py][1871] : userauth is OK
2025-06-13 12:16:21,211 [ INFO][       Thread-254498][   transport.py][1871] : Authentication (password) successful!
2025-06-13 12:16:21,211 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 12:16:21,927 [DEBUG][       Thread-254498][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 12:16:21,928 [DEBUG][       Thread-254498][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 12:16:21,969 [DEBUG][       Thread-254498][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 12:16:21,969 [DEBUG][       Thread-254498][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 12:16:21,971 [DEBUG][       Thread-254498][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 12:16:21,984 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 12:16:21,984 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 12:16:21,986 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 12:16:21,988 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 12:16:21,993 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 12:16:21,995 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 12:16:21,995 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 12:16:21,996 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 12:16:21,996 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.427369 -999.00  +11.80  17.02     45   +0.50 1 1 1 1 1   888    0 12.52 38.57 ----- 17.3 17.0 62.2 22.5 16.2 -27.5 14.8 -29.3 14.5 -28.4 15.8 -27.4
2025-06-13 12:16:21,996 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 12:16:21,996 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 12:16:21,996 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.427369
2025-06-13 12:16:21,997 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 12:16:21,997 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 12:16:21,998 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 12:16:21,998 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 12:16:21,998 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 12:16:21,998 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T12:15:50', tmtdew=13.05, humidity=40.32, cloud=0.0, wind=19.55, temperature=11.88, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T10:15:24.682', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 12:16:21,998 [DEBUG][       Thread-254498][   transport.py][1871] : EOF in transport thread
2025-06-13 12:16:22,081 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 12:16:22,094 [DEBUG][       Thread-254502][   transport.py][1871] : starting thread (client mode): 0x867b7010
2025-06-13 12:16:22,094 [DEBUG][       Thread-254502][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 12:16:22,112 [DEBUG][       Thread-254502][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 12:16:22,112 [ INFO][       Thread-254502][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 12:16:22,124 [DEBUG][       Thread-254502][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 12:16:22,124 [DEBUG][       Thread-254502][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 12:16:22,124 [DEBUG][       Thread-254502][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 12:16:22,124 [DEBUG][       Thread-254502][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:16:22,124 [DEBUG][       Thread-254502][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:16:22,124 [DEBUG][       Thread-254502][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:16:22,124 [DEBUG][       Thread-254502][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:16:22,124 [DEBUG][       Thread-254502][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 12:16:22,124 [DEBUG][       Thread-254502][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 12:16:22,124 [DEBUG][       Thread-254502][   transport.py][1871] : client lang: <none>
2025-06-13 12:16:22,124 [DEBUG][       Thread-254502][   transport.py][1871] : server lang: <none>
2025-06-13 12:16:22,124 [DEBUG][       Thread-254502][   transport.py][1871] : kex follows: False
2025-06-13 12:16:22,124 [DEBUG][       Thread-254502][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 12:16:22,125 [DEBUG][       Thread-254502][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 12:16:22,125 [DEBUG][       Thread-254502][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 12:16:22,125 [DEBUG][       Thread-254502][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 12:16:22,125 [DEBUG][       Thread-254502][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 12:16:22,125 [DEBUG][       Thread-254502][   transport.py][1871] : Compression: none
2025-06-13 12:16:22,125 [DEBUG][       Thread-254502][   transport.py][1871] : === End of kex handshake ===
2025-06-13 12:16:22,180 [DEBUG][       Thread-254502][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 12:16:22,181 [DEBUG][       Thread-254502][   transport.py][1871] : Switch to new keys ...
2025-06-13 12:16:22,181 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 12:16:22,182 [DEBUG][       Thread-254502][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 12:16:22,183 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 12:16:22,244 [DEBUG][       Thread-254502][   transport.py][1871] : userauth is OK
2025-06-13 12:16:22,244 [DEBUG][       Thread-254502][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 12:16:22,244 [DEBUG][       Thread-254502][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 12:16:22,245 [DEBUG][       Thread-254502][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 12:16:22,245 [DEBUG][       Thread-254502][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 12:16:22,267 [ INFO][       Thread-254502][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 12:16:22,267 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 12:16:22,268 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 12:16:23,324 [DEBUG][       Thread-254502][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 12:16:23,324 [DEBUG][       Thread-254502][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 12:16:23,373 [DEBUG][       Thread-254502][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 12:16:23,373 [DEBUG][       Thread-254502][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 12:16:23,382 [DEBUG][       Thread-254502][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 12:16:23,391 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 12:16:23,391 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 12:16:23,401 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 12:16:23,412 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 12:16:23,412 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 12:16:23,412 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 12:16:23,423 [DEBUG][       Thread-254502][   transport.py][1871] : EOF in transport thread
2025-06-13 12:16:30,185 [DEBUG][Thread-254504 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:16:33,422 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 12:16:33,422 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 12:16:33,423 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 12:16:33,423 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 12:16:33,878 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 12, 16, 22), 13.22, 39.8, 0.0, 22.13, 11.93, 0, 0, 0, 2, 0, 0),)
2025-06-13 12:16:33,878 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 12:16:22
2025-06-13 12:16:33,960 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 12:16:33,964 [DEBUG][       Thread-254505][   transport.py][1871] : starting thread (client mode): 0x867b7f40
2025-06-13 12:16:33,964 [DEBUG][       Thread-254505][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 12:16:33,987 [DEBUG][       Thread-254505][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 12:16:33,987 [ INFO][       Thread-254505][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 12:16:33,989 [DEBUG][       Thread-254505][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 12:16:33,989 [DEBUG][       Thread-254505][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 12:16:33,989 [DEBUG][       Thread-254505][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 12:16:33,989 [DEBUG][       Thread-254505][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:16:33,990 [DEBUG][       Thread-254505][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:16:33,990 [DEBUG][       Thread-254505][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:16:33,990 [DEBUG][       Thread-254505][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:16:33,990 [DEBUG][       Thread-254505][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 12:16:33,990 [DEBUG][       Thread-254505][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 12:16:33,990 [DEBUG][       Thread-254505][   transport.py][1871] : client lang: <none>
2025-06-13 12:16:33,990 [DEBUG][       Thread-254505][   transport.py][1871] : server lang: <none>
2025-06-13 12:16:33,990 [DEBUG][       Thread-254505][   transport.py][1871] : kex follows: False
2025-06-13 12:16:33,990 [DEBUG][       Thread-254505][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 12:16:33,990 [DEBUG][       Thread-254505][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 12:16:33,990 [DEBUG][       Thread-254505][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 12:16:33,990 [DEBUG][       Thread-254505][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 12:16:33,990 [DEBUG][       Thread-254505][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 12:16:33,990 [DEBUG][       Thread-254505][   transport.py][1871] : Compression: none
2025-06-13 12:16:33,990 [DEBUG][       Thread-254505][   transport.py][1871] : === End of kex handshake ===
2025-06-13 12:16:34,009 [DEBUG][       Thread-254505][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 12:16:34,009 [DEBUG][       Thread-254505][   transport.py][1871] : Switch to new keys ...
2025-06-13 12:16:34,010 [DEBUG][       Thread-254505][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 12:16:34,010 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 12:16:34,011 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 12:16:34,012 [DEBUG][       Thread-254505][   transport.py][1871] : userauth is OK
2025-06-13 12:16:34,036 [ INFO][       Thread-254505][   transport.py][1871] : Authentication (password) successful!
2025-06-13 12:16:34,037 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 12:16:34,620 [DEBUG][       Thread-254505][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 12:16:34,621 [DEBUG][       Thread-254505][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 12:16:34,665 [DEBUG][       Thread-254505][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 12:16:34,665 [DEBUG][       Thread-254505][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 12:16:34,668 [DEBUG][       Thread-254505][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 12:16:34,673 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 12:16:34,673 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 12:16:34,676 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 12:16:34,678 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 12:16:34,683 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 12:16:34,685 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 12:16:34,686 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 12:16:34,686 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 12:16:34,686 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.427716 -999.00  +11.80  20.61     45   +0.30 1 1 1 1 1   888    0 12.45 39.38 ----- 19.2 20.6 44.4 23.2 16.2 -28.0 14.9 -30.1 14.6 -28.1 15.9 -26.6
2025-06-13 12:16:34,687 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 12:16:34,687 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 12:16:34,687 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.427716
2025-06-13 12:16:34,687 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 12:16:34,688 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 12:16:34,688 [DEBUG][       Thread-254505][   transport.py][1871] : EOF in transport thread
2025-06-13 12:16:34,689 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 12:16:34,689 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 12:16:34,689 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 12:16:34,689 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T12:16:22', tmtdew=13.22, humidity=39.8, cloud=0.0, wind=22.13, temperature=11.93, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T10:15:54.662', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 12:16:34,765 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 12:16:34,776 [DEBUG][       Thread-254508][   transport.py][1871] : starting thread (client mode): 0x863a66b0
2025-06-13 12:16:34,776 [DEBUG][       Thread-254508][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 12:16:34,799 [DEBUG][       Thread-254508][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 12:16:34,799 [ INFO][       Thread-254508][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 12:16:34,808 [DEBUG][       Thread-254508][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 12:16:34,808 [DEBUG][       Thread-254508][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 12:16:34,808 [DEBUG][       Thread-254508][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 12:16:34,809 [DEBUG][       Thread-254508][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:16:34,809 [DEBUG][       Thread-254508][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:16:34,809 [DEBUG][       Thread-254508][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:16:34,809 [DEBUG][       Thread-254508][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:16:34,809 [DEBUG][       Thread-254508][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 12:16:34,809 [DEBUG][       Thread-254508][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 12:16:34,809 [DEBUG][       Thread-254508][   transport.py][1871] : client lang: <none>
2025-06-13 12:16:34,809 [DEBUG][       Thread-254508][   transport.py][1871] : server lang: <none>
2025-06-13 12:16:34,809 [DEBUG][       Thread-254508][   transport.py][1871] : kex follows: False
2025-06-13 12:16:34,809 [DEBUG][       Thread-254508][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 12:16:34,809 [DEBUG][       Thread-254508][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 12:16:34,809 [DEBUG][       Thread-254508][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 12:16:34,809 [DEBUG][       Thread-254508][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 12:16:34,809 [DEBUG][       Thread-254508][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 12:16:34,809 [DEBUG][       Thread-254508][   transport.py][1871] : Compression: none
2025-06-13 12:16:34,809 [DEBUG][       Thread-254508][   transport.py][1871] : === End of kex handshake ===
2025-06-13 12:16:34,874 [DEBUG][       Thread-254508][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 12:16:34,875 [DEBUG][       Thread-254508][   transport.py][1871] : Switch to new keys ...
2025-06-13 12:16:34,876 [DEBUG][       Thread-254508][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 12:16:34,876 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 12:16:34,877 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 12:16:34,944 [DEBUG][       Thread-254508][   transport.py][1871] : userauth is OK
2025-06-13 12:16:34,944 [DEBUG][       Thread-254508][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 12:16:34,944 [DEBUG][       Thread-254508][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 12:16:34,944 [DEBUG][       Thread-254508][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 12:16:34,944 [DEBUG][       Thread-254508][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 12:16:34,966 [ INFO][       Thread-254508][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 12:16:34,966 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 12:16:34,967 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 12:16:36,332 [DEBUG][       Thread-254508][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 12:16:36,333 [DEBUG][       Thread-254508][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 12:16:36,387 [DEBUG][       Thread-254508][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 12:16:36,388 [DEBUG][       Thread-254508][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 12:16:36,397 [DEBUG][       Thread-254508][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 12:16:36,406 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 12:16:36,406 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 12:16:36,415 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 12:16:36,424 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 12:16:36,425 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 12:16:36,425 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 12:16:36,433 [DEBUG][       Thread-254508][   transport.py][1871] : EOF in transport thread
2025-06-13 12:16:39,208 [DEBUG][Thread-254510 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:16:41,912 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:16:41,913 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:16:46,436 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 12:16:46,436 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 12:16:46,436 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 12:16:46,440 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 12:16:46,901 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 12, 16, 22), 13.22, 39.8, 0.0, 22.13, 11.93, 0, 0, 0, 2, 0, 0),)
2025-06-13 12:16:46,901 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 12:16:22
2025-06-13 12:16:46,983 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 12:16:46,989 [DEBUG][       Thread-254511][   transport.py][1871] : starting thread (client mode): 0x863bd600
2025-06-13 12:16:46,989 [DEBUG][       Thread-254511][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 12:16:47,012 [DEBUG][       Thread-254511][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 12:16:47,012 [ INFO][       Thread-254511][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 12:16:47,015 [DEBUG][       Thread-254511][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 12:16:47,015 [DEBUG][       Thread-254511][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 12:16:47,015 [DEBUG][       Thread-254511][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 12:16:47,015 [DEBUG][       Thread-254511][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:16:47,015 [DEBUG][       Thread-254511][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:16:47,015 [DEBUG][       Thread-254511][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:16:47,015 [DEBUG][       Thread-254511][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:16:47,015 [DEBUG][       Thread-254511][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 12:16:47,015 [DEBUG][       Thread-254511][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 12:16:47,016 [DEBUG][       Thread-254511][   transport.py][1871] : client lang: <none>
2025-06-13 12:16:47,016 [DEBUG][       Thread-254511][   transport.py][1871] : server lang: <none>
2025-06-13 12:16:47,016 [DEBUG][       Thread-254511][   transport.py][1871] : kex follows: False
2025-06-13 12:16:47,016 [DEBUG][       Thread-254511][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 12:16:47,016 [DEBUG][       Thread-254511][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 12:16:47,016 [DEBUG][       Thread-254511][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 12:16:47,016 [DEBUG][       Thread-254511][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 12:16:47,016 [DEBUG][       Thread-254511][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 12:16:47,016 [DEBUG][       Thread-254511][   transport.py][1871] : Compression: none
2025-06-13 12:16:47,016 [DEBUG][       Thread-254511][   transport.py][1871] : === End of kex handshake ===
2025-06-13 12:16:47,032 [DEBUG][       Thread-254511][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 12:16:47,033 [DEBUG][       Thread-254511][   transport.py][1871] : Switch to new keys ...
2025-06-13 12:16:47,034 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 12:16:47,034 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 12:16:47,034 [DEBUG][       Thread-254511][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 12:16:47,035 [DEBUG][       Thread-254511][   transport.py][1871] : userauth is OK
2025-06-13 12:16:47,060 [ INFO][       Thread-254511][   transport.py][1871] : Authentication (password) successful!
2025-06-13 12:16:47,060 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 12:16:47,705 [DEBUG][       Thread-254511][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 12:16:47,705 [DEBUG][       Thread-254511][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 12:16:47,753 [DEBUG][       Thread-254511][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 12:16:47,753 [DEBUG][       Thread-254511][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 12:16:47,756 [DEBUG][       Thread-254511][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 12:16:47,770 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 12:16:47,770 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 12:16:47,772 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 12:16:47,774 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 12:16:47,779 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 12:16:47,781 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 12:16:47,782 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 12:16:47,782 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 12:16:47,782 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.427716 -999.00  +11.80  20.61     45   +0.30 1 1 1 1 1   888    0 12.45 39.38 ----- 19.2 20.6 44.4 23.2 16.2 -28.0 14.9 -30.1 14.6 -28.1 15.9 -26.6
2025-06-13 12:16:47,782 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 12:16:47,783 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 12:16:47,783 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.427716
2025-06-13 12:16:47,783 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 12:16:47,784 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 12:16:47,784 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 12:16:47,784 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 12:16:47,784 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 12:16:47,784 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T12:16:22', tmtdew=13.22, humidity=39.8, cloud=0.0, wind=22.13, temperature=11.93, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T10:15:54.662', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 12:16:47,785 [DEBUG][       Thread-254511][   transport.py][1871] : EOF in transport thread
2025-06-13 12:16:47,866 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 12:16:47,881 [DEBUG][       Thread-254514][   transport.py][1871] : starting thread (client mode): 0x867b7520
2025-06-13 12:16:47,881 [DEBUG][       Thread-254514][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 12:16:47,899 [DEBUG][       Thread-254514][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 12:16:47,899 [ INFO][       Thread-254514][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 12:16:47,908 [DEBUG][       Thread-254514][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 12:16:47,909 [DEBUG][       Thread-254514][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 12:16:47,909 [DEBUG][       Thread-254514][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 12:16:47,909 [DEBUG][       Thread-254514][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:16:47,909 [DEBUG][       Thread-254514][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:16:47,909 [DEBUG][       Thread-254514][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:16:47,909 [DEBUG][       Thread-254514][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:16:47,909 [DEBUG][       Thread-254514][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 12:16:47,909 [DEBUG][       Thread-254514][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 12:16:47,909 [DEBUG][       Thread-254514][   transport.py][1871] : client lang: <none>
2025-06-13 12:16:47,909 [DEBUG][       Thread-254514][   transport.py][1871] : server lang: <none>
2025-06-13 12:16:47,909 [DEBUG][       Thread-254514][   transport.py][1871] : kex follows: False
2025-06-13 12:16:47,909 [DEBUG][       Thread-254514][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 12:16:47,909 [DEBUG][       Thread-254514][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 12:16:47,909 [DEBUG][       Thread-254514][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 12:16:47,910 [DEBUG][       Thread-254514][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 12:16:47,910 [DEBUG][       Thread-254514][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 12:16:47,910 [DEBUG][       Thread-254514][   transport.py][1871] : Compression: none
2025-06-13 12:16:47,910 [DEBUG][       Thread-254514][   transport.py][1871] : === End of kex handshake ===
2025-06-13 12:16:47,977 [DEBUG][       Thread-254514][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 12:16:47,978 [DEBUG][       Thread-254514][   transport.py][1871] : Switch to new keys ...
2025-06-13 12:16:47,978 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 12:16:47,979 [DEBUG][       Thread-254514][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 12:16:47,980 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 12:16:48,036 [DEBUG][       Thread-254514][   transport.py][1871] : userauth is OK
2025-06-13 12:16:48,036 [DEBUG][       Thread-254514][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 12:16:48,036 [DEBUG][       Thread-254514][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 12:16:48,036 [DEBUG][       Thread-254514][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 12:16:48,036 [DEBUG][       Thread-254514][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 12:16:48,051 [ INFO][       Thread-254514][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 12:16:48,052 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 12:16:48,052 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 12:16:48,250 [DEBUG][Thread-254516 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:16:49,408 [DEBUG][       Thread-254514][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 12:16:49,408 [DEBUG][       Thread-254514][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 12:16:49,456 [DEBUG][       Thread-254514][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 12:16:49,456 [DEBUG][       Thread-254514][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 12:16:49,465 [DEBUG][       Thread-254514][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 12:16:49,481 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 12:16:49,481 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 12:16:49,489 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 12:16:49,501 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 12:16:49,501 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 12:16:49,501 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 12:16:49,509 [DEBUG][       Thread-254514][   transport.py][1871] : EOF in transport thread
2025-06-13 12:16:57,268 [DEBUG][Thread-254517 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:16:59,512 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 12:16:59,512 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 12:16:59,512 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 12:16:59,515 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 12:16:59,985 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 12, 16, 55), 13.34, 39.48, 0.0, 20.24, 11.96, 0, 0, 0, 2, 0, 0),)
2025-06-13 12:16:59,985 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 12:16:55
2025-06-13 12:17:00,067 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 12:17:00,071 [DEBUG][       Thread-254518][   transport.py][1871] : starting thread (client mode): 0x863beef0
2025-06-13 12:17:00,071 [DEBUG][       Thread-254518][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 12:17:00,086 [DEBUG][       Thread-254518][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 12:17:00,086 [ INFO][       Thread-254518][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 12:17:00,088 [DEBUG][       Thread-254518][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 12:17:00,088 [DEBUG][       Thread-254518][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 12:17:00,088 [DEBUG][       Thread-254518][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 12:17:00,089 [DEBUG][       Thread-254518][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:17:00,089 [DEBUG][       Thread-254518][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:17:00,089 [DEBUG][       Thread-254518][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:17:00,089 [DEBUG][       Thread-254518][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:17:00,089 [DEBUG][       Thread-254518][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 12:17:00,089 [DEBUG][       Thread-254518][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 12:17:00,089 [DEBUG][       Thread-254518][   transport.py][1871] : client lang: <none>
2025-06-13 12:17:00,089 [DEBUG][       Thread-254518][   transport.py][1871] : server lang: <none>
2025-06-13 12:17:00,089 [DEBUG][       Thread-254518][   transport.py][1871] : kex follows: False
2025-06-13 12:17:00,089 [DEBUG][       Thread-254518][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 12:17:00,089 [DEBUG][       Thread-254518][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 12:17:00,089 [DEBUG][       Thread-254518][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 12:17:00,089 [DEBUG][       Thread-254518][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 12:17:00,089 [DEBUG][       Thread-254518][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 12:17:00,089 [DEBUG][       Thread-254518][   transport.py][1871] : Compression: none
2025-06-13 12:17:00,089 [DEBUG][       Thread-254518][   transport.py][1871] : === End of kex handshake ===
2025-06-13 12:17:00,104 [DEBUG][       Thread-254518][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 12:17:00,105 [DEBUG][       Thread-254518][   transport.py][1871] : Switch to new keys ...
2025-06-13 12:17:00,105 [DEBUG][       Thread-254518][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 12:17:00,105 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 12:17:00,105 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 12:17:00,107 [DEBUG][       Thread-254518][   transport.py][1871] : userauth is OK
2025-06-13 12:17:00,120 [ INFO][       Thread-254518][   transport.py][1871] : Authentication (password) successful!
2025-06-13 12:17:00,120 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 12:17:00,710 [DEBUG][       Thread-254518][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 12:17:00,711 [DEBUG][       Thread-254518][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 12:17:00,753 [DEBUG][       Thread-254518][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 12:17:00,753 [DEBUG][       Thread-254518][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 12:17:00,756 [DEBUG][       Thread-254518][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 12:17:00,768 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 12:17:00,769 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 12:17:00,771 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 12:17:00,773 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 12:17:00,778 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 12:17:00,779 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 12:17:00,780 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 12:17:00,780 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 12:17:00,780 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.428410 -999.00  +11.70  16.48     45   +0.20 1 1 1 1 1   888    0 12.33 42.57 ----- 18.8 16.5 56.2 21.9 16.1 -28.9 14.8 -30.1 14.6 -28.5 16.0 -26.3
2025-06-13 12:17:00,781 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 12:17:00,781 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 12:17:00,781 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.428410
2025-06-13 12:17:00,781 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 12:17:00,782 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 12:17:00,782 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 12:17:00,782 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 12:17:00,782 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 12:17:00,782 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T12:16:55', tmtdew=13.34, humidity=39.48, cloud=0.0, wind=20.24, temperature=11.96, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T10:16:54.624', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 12:17:00,782 [DEBUG][       Thread-254518][   transport.py][1871] : EOF in transport thread
2025-06-13 12:17:00,865 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 12:17:00,875 [DEBUG][       Thread-254521][   transport.py][1871] : starting thread (client mode): 0x863ed630
2025-06-13 12:17:00,875 [DEBUG][       Thread-254521][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 12:17:00,891 [DEBUG][       Thread-254521][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 12:17:00,891 [ INFO][       Thread-254521][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 12:17:00,899 [DEBUG][       Thread-254521][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 12:17:00,899 [DEBUG][       Thread-254521][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 12:17:00,899 [DEBUG][       Thread-254521][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 12:17:00,899 [DEBUG][       Thread-254521][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:17:00,899 [DEBUG][       Thread-254521][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:17:00,899 [DEBUG][       Thread-254521][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:17:00,900 [DEBUG][       Thread-254521][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:17:00,900 [DEBUG][       Thread-254521][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 12:17:00,900 [DEBUG][       Thread-254521][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 12:17:00,900 [DEBUG][       Thread-254521][   transport.py][1871] : client lang: <none>
2025-06-13 12:17:00,900 [DEBUG][       Thread-254521][   transport.py][1871] : server lang: <none>
2025-06-13 12:17:00,900 [DEBUG][       Thread-254521][   transport.py][1871] : kex follows: False
2025-06-13 12:17:00,900 [DEBUG][       Thread-254521][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 12:17:00,900 [DEBUG][       Thread-254521][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 12:17:00,900 [DEBUG][       Thread-254521][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 12:17:00,900 [DEBUG][       Thread-254521][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 12:17:00,900 [DEBUG][       Thread-254521][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 12:17:00,900 [DEBUG][       Thread-254521][   transport.py][1871] : Compression: none
2025-06-13 12:17:00,900 [DEBUG][       Thread-254521][   transport.py][1871] : === End of kex handshake ===
2025-06-13 12:17:00,956 [DEBUG][       Thread-254521][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 12:17:00,957 [DEBUG][       Thread-254521][   transport.py][1871] : Switch to new keys ...
2025-06-13 12:17:00,957 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 12:17:00,958 [DEBUG][       Thread-254521][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 12:17:00,959 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 12:17:01,012 [DEBUG][       Thread-254521][   transport.py][1871] : userauth is OK
2025-06-13 12:17:01,012 [DEBUG][       Thread-254521][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 12:17:01,013 [DEBUG][       Thread-254521][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 12:17:01,013 [DEBUG][       Thread-254521][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 12:17:01,013 [DEBUG][       Thread-254521][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 12:17:01,033 [ INFO][       Thread-254521][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 12:17:01,033 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 12:17:01,034 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 12:17:02,443 [DEBUG][       Thread-254521][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 12:17:02,444 [DEBUG][       Thread-254521][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 12:17:02,491 [DEBUG][       Thread-254521][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 12:17:02,491 [DEBUG][       Thread-254521][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 12:17:02,500 [DEBUG][       Thread-254521][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 12:17:02,509 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 12:17:02,509 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 12:17:02,517 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 12:17:02,530 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 12:17:02,530 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 12:17:02,530 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 12:17:02,538 [DEBUG][       Thread-254521][   transport.py][1871] : EOF in transport thread
2025-06-13 12:17:06,286 [DEBUG][Thread-254523 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:17:11,706 [DEBUG][Thread-254524 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:17:12,540 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 12:17:12,540 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 12:17:12,540 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 12:17:12,543 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 12:17:13,023 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 12, 16, 55), 13.34, 39.48, 0.0, 20.24, 11.96, 0, 0, 0, 2, 0, 0),)
2025-06-13 12:17:13,023 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 12:16:55
2025-06-13 12:17:13,105 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 12:17:13,109 [DEBUG][       Thread-254525][   transport.py][1871] : starting thread (client mode): 0x863bc6a0
2025-06-13 12:17:13,109 [DEBUG][       Thread-254525][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 12:17:13,124 [DEBUG][       Thread-254525][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 12:17:13,124 [ INFO][       Thread-254525][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 12:17:13,127 [DEBUG][       Thread-254525][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 12:17:13,127 [DEBUG][       Thread-254525][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 12:17:13,127 [DEBUG][       Thread-254525][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 12:17:13,127 [DEBUG][       Thread-254525][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:17:13,127 [DEBUG][       Thread-254525][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:17:13,127 [DEBUG][       Thread-254525][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:17:13,127 [DEBUG][       Thread-254525][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:17:13,127 [DEBUG][       Thread-254525][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 12:17:13,127 [DEBUG][       Thread-254525][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 12:17:13,127 [DEBUG][       Thread-254525][   transport.py][1871] : client lang: <none>
2025-06-13 12:17:13,127 [DEBUG][       Thread-254525][   transport.py][1871] : server lang: <none>
2025-06-13 12:17:13,127 [DEBUG][       Thread-254525][   transport.py][1871] : kex follows: False
2025-06-13 12:17:13,127 [DEBUG][       Thread-254525][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 12:17:13,127 [DEBUG][       Thread-254525][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 12:17:13,127 [DEBUG][       Thread-254525][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 12:17:13,127 [DEBUG][       Thread-254525][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 12:17:13,127 [DEBUG][       Thread-254525][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 12:17:13,128 [DEBUG][       Thread-254525][   transport.py][1871] : Compression: none
2025-06-13 12:17:13,128 [DEBUG][       Thread-254525][   transport.py][1871] : === End of kex handshake ===
2025-06-13 12:17:13,140 [DEBUG][       Thread-254525][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 12:17:13,140 [DEBUG][       Thread-254525][   transport.py][1871] : Switch to new keys ...
2025-06-13 12:17:13,141 [DEBUG][       Thread-254525][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 12:17:13,141 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 12:17:13,141 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 12:17:13,142 [DEBUG][       Thread-254525][   transport.py][1871] : userauth is OK
2025-06-13 12:17:13,166 [ INFO][       Thread-254525][   transport.py][1871] : Authentication (password) successful!
2025-06-13 12:17:13,167 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 12:17:13,751 [DEBUG][       Thread-254525][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 12:17:13,751 [DEBUG][       Thread-254525][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 12:17:13,793 [DEBUG][       Thread-254525][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 12:17:13,793 [DEBUG][       Thread-254525][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 12:17:13,798 [DEBUG][       Thread-254525][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 12:17:13,807 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 12:17:13,808 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 12:17:13,810 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 12:17:13,812 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 12:17:13,818 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 12:17:13,820 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 12:17:13,820 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 12:17:13,821 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 12:17:13,821 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.428410 -999.00  +11.70  16.48     45   +0.20 1 1 1 1 1   888    0 12.33 42.57 ----- 18.8 16.5 56.2 21.9 16.1 -28.9 14.8 -30.1 14.6 -28.5 16.0 -26.3
2025-06-13 12:17:13,821 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 12:17:13,821 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 12:17:13,821 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.428410
2025-06-13 12:17:13,822 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 12:17:13,822 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 12:17:13,823 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 12:17:13,823 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 12:17:13,823 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 12:17:13,823 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T12:16:55', tmtdew=13.34, humidity=39.48, cloud=0.0, wind=20.24, temperature=11.96, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T10:16:54.624', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 12:17:13,824 [DEBUG][       Thread-254525][   transport.py][1871] : EOF in transport thread
2025-06-13 12:17:13,911 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 12:17:13,921 [DEBUG][       Thread-254528][   transport.py][1871] : starting thread (client mode): 0x867b7100
2025-06-13 12:17:13,921 [DEBUG][       Thread-254528][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 12:17:13,936 [DEBUG][       Thread-254528][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 12:17:13,936 [ INFO][       Thread-254528][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 12:17:13,944 [DEBUG][       Thread-254528][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 12:17:13,944 [DEBUG][       Thread-254528][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 12:17:13,944 [DEBUG][       Thread-254528][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 12:17:13,944 [DEBUG][       Thread-254528][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:17:13,944 [DEBUG][       Thread-254528][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:17:13,944 [DEBUG][       Thread-254528][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:17:13,944 [DEBUG][       Thread-254528][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:17:13,944 [DEBUG][       Thread-254528][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 12:17:13,944 [DEBUG][       Thread-254528][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 12:17:13,944 [DEBUG][       Thread-254528][   transport.py][1871] : client lang: <none>
2025-06-13 12:17:13,944 [DEBUG][       Thread-254528][   transport.py][1871] : server lang: <none>
2025-06-13 12:17:13,944 [DEBUG][       Thread-254528][   transport.py][1871] : kex follows: False
2025-06-13 12:17:13,944 [DEBUG][       Thread-254528][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 12:17:13,944 [DEBUG][       Thread-254528][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 12:17:13,944 [DEBUG][       Thread-254528][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 12:17:13,944 [DEBUG][       Thread-254528][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 12:17:13,944 [DEBUG][       Thread-254528][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 12:17:13,944 [DEBUG][       Thread-254528][   transport.py][1871] : Compression: none
2025-06-13 12:17:13,944 [DEBUG][       Thread-254528][   transport.py][1871] : === End of kex handshake ===
2025-06-13 12:17:14,000 [DEBUG][       Thread-254528][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 12:17:14,001 [DEBUG][       Thread-254528][   transport.py][1871] : Switch to new keys ...
2025-06-13 12:17:14,001 [DEBUG][       Thread-254528][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 12:17:14,001 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 12:17:14,002 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 12:17:14,056 [DEBUG][       Thread-254528][   transport.py][1871] : userauth is OK
2025-06-13 12:17:14,057 [DEBUG][       Thread-254528][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 12:17:14,057 [DEBUG][       Thread-254528][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 12:17:14,057 [DEBUG][       Thread-254528][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 12:17:14,057 [DEBUG][       Thread-254528][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 12:17:14,076 [ INFO][       Thread-254528][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 12:17:14,076 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 12:17:14,077 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 12:17:14,997 [DEBUG][Thread-254530 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:17:15,319 [DEBUG][Thread-254531 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:17:15,634 [DEBUG][       Thread-254528][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 12:17:15,634 [DEBUG][       Thread-254528][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 12:17:15,684 [DEBUG][       Thread-254528][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 12:17:15,684 [DEBUG][       Thread-254528][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 12:17:15,698 [DEBUG][       Thread-254528][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 12:17:15,713 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 12:17:15,713 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 12:17:15,731 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 12:17:15,741 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 12:17:15,741 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 12:17:15,742 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 12:17:15,750 [DEBUG][       Thread-254528][   transport.py][1871] : EOF in transport thread
2025-06-13 12:17:16,081 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:17:16,082 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:17:24,340 [DEBUG][Thread-254532 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:17:25,752 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 12:17:25,753 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 12:17:25,753 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 12:17:25,756 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 12:17:26,214 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 12, 16, 55), 13.34, 39.48, 0.0, 20.24, 11.96, 0, 0, 0, 2, 0, 0),)
2025-06-13 12:17:26,214 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 12:16:55
2025-06-13 12:17:26,296 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 12:17:26,302 [DEBUG][       Thread-254533][   transport.py][1871] : starting thread (client mode): 0x863ecbe0
2025-06-13 12:17:26,302 [DEBUG][       Thread-254533][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 12:17:26,322 [DEBUG][       Thread-254533][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 12:17:26,322 [ INFO][       Thread-254533][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 12:17:26,325 [DEBUG][       Thread-254533][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 12:17:26,325 [DEBUG][       Thread-254533][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 12:17:26,325 [DEBUG][       Thread-254533][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 12:17:26,325 [DEBUG][       Thread-254533][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:17:26,325 [DEBUG][       Thread-254533][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:17:26,325 [DEBUG][       Thread-254533][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:17:26,325 [DEBUG][       Thread-254533][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:17:26,325 [DEBUG][       Thread-254533][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 12:17:26,325 [DEBUG][       Thread-254533][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 12:17:26,325 [DEBUG][       Thread-254533][   transport.py][1871] : client lang: <none>
2025-06-13 12:17:26,325 [DEBUG][       Thread-254533][   transport.py][1871] : server lang: <none>
2025-06-13 12:17:26,325 [DEBUG][       Thread-254533][   transport.py][1871] : kex follows: False
2025-06-13 12:17:26,325 [DEBUG][       Thread-254533][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 12:17:26,325 [DEBUG][       Thread-254533][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 12:17:26,325 [DEBUG][       Thread-254533][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 12:17:26,325 [DEBUG][       Thread-254533][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 12:17:26,325 [DEBUG][       Thread-254533][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 12:17:26,325 [DEBUG][       Thread-254533][   transport.py][1871] : Compression: none
2025-06-13 12:17:26,325 [DEBUG][       Thread-254533][   transport.py][1871] : === End of kex handshake ===
2025-06-13 12:17:26,340 [DEBUG][       Thread-254533][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 12:17:26,340 [DEBUG][       Thread-254533][   transport.py][1871] : Switch to new keys ...
2025-06-13 12:17:26,340 [DEBUG][       Thread-254533][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 12:17:26,340 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 12:17:26,340 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 12:17:26,341 [DEBUG][       Thread-254533][   transport.py][1871] : userauth is OK
2025-06-13 12:17:26,354 [ INFO][       Thread-254533][   transport.py][1871] : Authentication (password) successful!
2025-06-13 12:17:26,354 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 12:17:27,092 [DEBUG][       Thread-254533][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 12:17:27,092 [DEBUG][       Thread-254533][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 12:17:27,133 [DEBUG][       Thread-254533][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 12:17:27,133 [DEBUG][       Thread-254533][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 12:17:27,137 [DEBUG][       Thread-254533][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 12:17:27,149 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 12:17:27,149 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 12:17:27,151 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 12:17:27,153 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 12:17:27,159 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 12:17:27,161 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 12:17:27,161 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 12:17:27,162 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 12:17:27,162 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.428410 -999.00  +11.70  16.48     45   +0.20 1 1 1 1 1   888    0 12.33 42.57 ----- 18.8 16.5 56.2 21.9 16.1 -28.9 14.8 -30.1 14.6 -28.5 16.0 -26.3
2025-06-13 12:17:27,162 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 12:17:27,162 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 12:17:27,162 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.428410
2025-06-13 12:17:27,163 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 12:17:27,163 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 12:17:27,163 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 12:17:27,163 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 12:17:27,163 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 12:17:27,164 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T12:16:55', tmtdew=13.34, humidity=39.48, cloud=0.0, wind=20.24, temperature=11.96, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T10:16:54.624', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 12:17:27,165 [DEBUG][       Thread-254533][   transport.py][1871] : EOF in transport thread
2025-06-13 12:17:27,247 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 12:17:27,260 [DEBUG][       Thread-254536][   transport.py][1871] : starting thread (client mode): 0x863a7970
2025-06-13 12:17:27,260 [DEBUG][       Thread-254536][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 12:17:27,288 [DEBUG][       Thread-254536][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 12:17:27,289 [ INFO][       Thread-254536][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 12:17:27,301 [DEBUG][       Thread-254536][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 12:17:27,301 [DEBUG][       Thread-254536][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 12:17:27,301 [DEBUG][       Thread-254536][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 12:17:27,302 [DEBUG][       Thread-254536][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:17:27,302 [DEBUG][       Thread-254536][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:17:27,302 [DEBUG][       Thread-254536][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:17:27,302 [DEBUG][       Thread-254536][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:17:27,302 [DEBUG][       Thread-254536][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 12:17:27,302 [DEBUG][       Thread-254536][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 12:17:27,302 [DEBUG][       Thread-254536][   transport.py][1871] : client lang: <none>
2025-06-13 12:17:27,302 [DEBUG][       Thread-254536][   transport.py][1871] : server lang: <none>
2025-06-13 12:17:27,302 [DEBUG][       Thread-254536][   transport.py][1871] : kex follows: False
2025-06-13 12:17:27,302 [DEBUG][       Thread-254536][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 12:17:27,302 [DEBUG][       Thread-254536][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 12:17:27,302 [DEBUG][       Thread-254536][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 12:17:27,302 [DEBUG][       Thread-254536][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 12:17:27,302 [DEBUG][       Thread-254536][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 12:17:27,302 [DEBUG][       Thread-254536][   transport.py][1871] : Compression: none
2025-06-13 12:17:27,302 [DEBUG][       Thread-254536][   transport.py][1871] : === End of kex handshake ===
2025-06-13 12:17:27,361 [DEBUG][       Thread-254536][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 12:17:27,361 [DEBUG][       Thread-254536][   transport.py][1871] : Switch to new keys ...
2025-06-13 12:17:27,362 [DEBUG][       Thread-254536][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 12:17:27,362 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 12:17:27,363 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 12:17:27,431 [DEBUG][       Thread-254536][   transport.py][1871] : userauth is OK
2025-06-13 12:17:27,432 [DEBUG][       Thread-254536][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 12:17:27,432 [DEBUG][       Thread-254536][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 12:17:27,432 [DEBUG][       Thread-254536][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 12:17:27,432 [DEBUG][       Thread-254536][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 12:17:27,453 [ INFO][       Thread-254536][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 12:17:27,453 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 12:17:27,453 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 12:17:28,571 [DEBUG][       Thread-254536][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 12:17:28,571 [DEBUG][       Thread-254536][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 12:17:28,622 [DEBUG][       Thread-254536][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 12:17:28,623 [DEBUG][       Thread-254536][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 12:17:28,631 [DEBUG][       Thread-254536][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 12:17:28,648 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 12:17:28,648 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 12:17:28,657 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 12:17:28,668 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 12:17:28,669 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 12:17:28,669 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 12:17:28,676 [DEBUG][       Thread-254536][   transport.py][1871] : EOF in transport thread
2025-06-13 12:17:33,360 [DEBUG][Thread-254538 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:17:38,679 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 12:17:38,679 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 12:17:38,679 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 12:17:38,683 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 12:17:39,153 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 12, 17, 26), 13.46, 39.38, 0.0, 17.06, 11.87, 0, 0, 0, 2, 0, 0),)
2025-06-13 12:17:39,153 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 12:17:26
2025-06-13 12:17:39,235 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 12:17:39,239 [DEBUG][       Thread-254539][   transport.py][1871] : starting thread (client mode): 0x863a4700
2025-06-13 12:17:39,239 [DEBUG][       Thread-254539][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 12:17:39,256 [DEBUG][       Thread-254539][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 12:17:39,257 [ INFO][       Thread-254539][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 12:17:39,259 [DEBUG][       Thread-254539][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 12:17:39,259 [DEBUG][       Thread-254539][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 12:17:39,259 [DEBUG][       Thread-254539][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 12:17:39,259 [DEBUG][       Thread-254539][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:17:39,259 [DEBUG][       Thread-254539][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:17:39,259 [DEBUG][       Thread-254539][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:17:39,259 [DEBUG][       Thread-254539][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:17:39,259 [DEBUG][       Thread-254539][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 12:17:39,259 [DEBUG][       Thread-254539][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 12:17:39,259 [DEBUG][       Thread-254539][   transport.py][1871] : client lang: <none>
2025-06-13 12:17:39,259 [DEBUG][       Thread-254539][   transport.py][1871] : server lang: <none>
2025-06-13 12:17:39,259 [DEBUG][       Thread-254539][   transport.py][1871] : kex follows: False
2025-06-13 12:17:39,259 [DEBUG][       Thread-254539][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 12:17:39,259 [DEBUG][       Thread-254539][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 12:17:39,259 [DEBUG][       Thread-254539][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 12:17:39,259 [DEBUG][       Thread-254539][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 12:17:39,259 [DEBUG][       Thread-254539][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 12:17:39,259 [DEBUG][       Thread-254539][   transport.py][1871] : Compression: none
2025-06-13 12:17:39,259 [DEBUG][       Thread-254539][   transport.py][1871] : === End of kex handshake ===
2025-06-13 12:17:39,269 [DEBUG][       Thread-254539][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 12:17:39,269 [DEBUG][       Thread-254539][   transport.py][1871] : Switch to new keys ...
2025-06-13 12:17:39,269 [DEBUG][       Thread-254539][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 12:17:39,269 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 12:17:39,270 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 12:17:39,271 [DEBUG][       Thread-254539][   transport.py][1871] : userauth is OK
2025-06-13 12:17:39,284 [ INFO][       Thread-254539][   transport.py][1871] : Authentication (password) successful!
2025-06-13 12:17:39,284 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 12:17:39,957 [DEBUG][       Thread-254539][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 12:17:39,957 [DEBUG][       Thread-254539][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 12:17:40,001 [DEBUG][       Thread-254539][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 12:17:40,001 [DEBUG][       Thread-254539][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 12:17:40,003 [DEBUG][       Thread-254539][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 12:17:40,017 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 12:17:40,017 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 12:17:40,018 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 12:17:40,019 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 12:17:40,022 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 12:17:40,023 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 12:17:40,023 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 12:17:40,023 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 12:17:40,023 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.428758 -999.00  +11.60  21.11     43   -0.40 1 1 1 1 1   888    0 12.51 43.47 ----- 18.7 21.1 47.6 22.0 16.2 -28.2 14.8 -30.9 14.6 -29.0 15.9 -26.6
2025-06-13 12:17:40,023 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 12:17:40,023 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 12:17:40,023 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.428758
2025-06-13 12:17:40,023 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 12:17:40,024 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 12:17:40,024 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 12:17:40,024 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 12:17:40,024 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 12:17:40,024 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T12:17:26', tmtdew=13.46, humidity=39.38, cloud=0.0, wind=17.06, temperature=11.87, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T10:17:24.691', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 12:17:40,024 [DEBUG][       Thread-254539][   transport.py][1871] : EOF in transport thread
2025-06-13 12:17:40,095 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 12:17:40,109 [DEBUG][       Thread-254542][   transport.py][1871] : starting thread (client mode): 0x867b4970
2025-06-13 12:17:40,109 [DEBUG][       Thread-254542][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 12:17:40,125 [DEBUG][       Thread-254542][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 12:17:40,125 [ INFO][       Thread-254542][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 12:17:40,133 [DEBUG][       Thread-254542][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 12:17:40,133 [DEBUG][       Thread-254542][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 12:17:40,133 [DEBUG][       Thread-254542][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 12:17:40,133 [DEBUG][       Thread-254542][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:17:40,133 [DEBUG][       Thread-254542][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:17:40,133 [DEBUG][       Thread-254542][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:17:40,133 [DEBUG][       Thread-254542][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:17:40,133 [DEBUG][       Thread-254542][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 12:17:40,133 [DEBUG][       Thread-254542][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 12:17:40,133 [DEBUG][       Thread-254542][   transport.py][1871] : client lang: <none>
2025-06-13 12:17:40,133 [DEBUG][       Thread-254542][   transport.py][1871] : server lang: <none>
2025-06-13 12:17:40,133 [DEBUG][       Thread-254542][   transport.py][1871] : kex follows: False
2025-06-13 12:17:40,133 [DEBUG][       Thread-254542][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 12:17:40,133 [DEBUG][       Thread-254542][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 12:17:40,133 [DEBUG][       Thread-254542][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 12:17:40,133 [DEBUG][       Thread-254542][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 12:17:40,133 [DEBUG][       Thread-254542][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 12:17:40,133 [DEBUG][       Thread-254542][   transport.py][1871] : Compression: none
2025-06-13 12:17:40,133 [DEBUG][       Thread-254542][   transport.py][1871] : === End of kex handshake ===
2025-06-13 12:17:40,192 [DEBUG][       Thread-254542][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 12:17:40,192 [DEBUG][       Thread-254542][   transport.py][1871] : Switch to new keys ...
2025-06-13 12:17:40,192 [DEBUG][       Thread-254542][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 12:17:40,192 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 12:17:40,192 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 12:17:40,247 [DEBUG][       Thread-254542][   transport.py][1871] : userauth is OK
2025-06-13 12:17:40,247 [DEBUG][       Thread-254542][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 12:17:40,247 [DEBUG][       Thread-254542][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 12:17:40,247 [DEBUG][       Thread-254542][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 12:17:40,248 [DEBUG][       Thread-254542][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 12:17:40,262 [ INFO][       Thread-254542][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 12:17:40,262 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 12:17:40,262 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 12:17:41,645 [DEBUG][       Thread-254542][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 12:17:41,645 [DEBUG][       Thread-254542][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 12:17:41,698 [DEBUG][       Thread-254542][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 12:17:41,698 [DEBUG][       Thread-254542][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 12:17:41,714 [DEBUG][       Thread-254542][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 12:17:41,728 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 12:17:41,728 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 12:17:41,741 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 12:17:41,751 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 12:17:41,751 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 12:17:41,752 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 12:17:41,763 [DEBUG][       Thread-254542][   transport.py][1871] : EOF in transport thread
2025-06-13 12:17:42,054 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:17:42,055 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:17:42,378 [DEBUG][Thread-254544 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:17:51,405 [DEBUG][Thread-254545 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:17:51,753 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 12:17:51,754 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 12:17:51,754 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 12:17:51,757 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 12:17:52,211 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 12, 17, 26), 13.46, 39.38, 0.0, 17.06, 11.87, 0, 0, 0, 2, 0, 0),)
2025-06-13 12:17:52,211 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 12:17:26
2025-06-13 12:17:52,293 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 12:17:52,297 [DEBUG][       Thread-254546][   transport.py][1871] : starting thread (client mode): 0x863ed6c0
2025-06-13 12:17:52,297 [DEBUG][       Thread-254546][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 12:17:52,316 [DEBUG][       Thread-254546][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 12:17:52,316 [ INFO][       Thread-254546][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 12:17:52,317 [DEBUG][       Thread-254546][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 12:17:52,317 [DEBUG][       Thread-254546][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 12:17:52,317 [DEBUG][       Thread-254546][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 12:17:52,317 [DEBUG][       Thread-254546][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:17:52,317 [DEBUG][       Thread-254546][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:17:52,317 [DEBUG][       Thread-254546][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:17:52,317 [DEBUG][       Thread-254546][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:17:52,317 [DEBUG][       Thread-254546][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 12:17:52,317 [DEBUG][       Thread-254546][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 12:17:52,317 [DEBUG][       Thread-254546][   transport.py][1871] : client lang: <none>
2025-06-13 12:17:52,317 [DEBUG][       Thread-254546][   transport.py][1871] : server lang: <none>
2025-06-13 12:17:52,317 [DEBUG][       Thread-254546][   transport.py][1871] : kex follows: False
2025-06-13 12:17:52,317 [DEBUG][       Thread-254546][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 12:17:52,317 [DEBUG][       Thread-254546][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 12:17:52,317 [DEBUG][       Thread-254546][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 12:17:52,317 [DEBUG][       Thread-254546][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 12:17:52,317 [DEBUG][       Thread-254546][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 12:17:52,317 [DEBUG][       Thread-254546][   transport.py][1871] : Compression: none
2025-06-13 12:17:52,317 [DEBUG][       Thread-254546][   transport.py][1871] : === End of kex handshake ===
2025-06-13 12:17:52,325 [DEBUG][       Thread-254546][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 12:17:52,326 [DEBUG][       Thread-254546][   transport.py][1871] : Switch to new keys ...
2025-06-13 12:17:52,326 [DEBUG][       Thread-254546][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 12:17:52,326 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 12:17:52,326 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 12:17:52,327 [DEBUG][       Thread-254546][   transport.py][1871] : userauth is OK
2025-06-13 12:17:52,340 [ INFO][       Thread-254546][   transport.py][1871] : Authentication (password) successful!
2025-06-13 12:17:52,341 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 12:17:53,081 [DEBUG][       Thread-254546][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 12:17:53,082 [DEBUG][       Thread-254546][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 12:17:53,125 [DEBUG][       Thread-254546][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 12:17:53,125 [DEBUG][       Thread-254546][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 12:17:53,128 [DEBUG][       Thread-254546][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 12:17:53,142 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 12:17:53,142 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 12:17:53,144 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 12:17:53,146 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 12:17:53,152 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 12:17:53,154 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 12:17:53,154 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 12:17:53,155 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 12:17:53,155 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.428758 -999.00  +11.60  21.11     43   -0.40 1 1 1 1 1   888    0 12.51 43.47 ----- 18.7 21.1 47.6 22.0 16.2 -28.2 14.8 -30.9 14.6 -29.0 15.9 -26.6
2025-06-13 12:17:53,155 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 12:17:53,155 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 12:17:53,155 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.428758
2025-06-13 12:17:53,155 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 12:17:53,156 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 12:17:53,156 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 12:17:53,156 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 12:17:53,156 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 12:17:53,156 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T12:17:26', tmtdew=13.46, humidity=39.38, cloud=0.0, wind=17.06, temperature=11.87, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T10:17:24.691', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 12:17:53,158 [DEBUG][       Thread-254546][   transport.py][1871] : EOF in transport thread
2025-06-13 12:17:53,229 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 12:17:53,239 [DEBUG][       Thread-254549][   transport.py][1871] : starting thread (client mode): 0x863a5120
2025-06-13 12:17:53,239 [DEBUG][       Thread-254549][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 12:17:53,255 [DEBUG][       Thread-254549][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 12:17:53,255 [ INFO][       Thread-254549][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 12:17:53,263 [DEBUG][       Thread-254549][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 12:17:53,263 [DEBUG][       Thread-254549][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 12:17:53,263 [DEBUG][       Thread-254549][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 12:17:53,263 [DEBUG][       Thread-254549][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:17:53,263 [DEBUG][       Thread-254549][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:17:53,263 [DEBUG][       Thread-254549][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:17:53,263 [DEBUG][       Thread-254549][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:17:53,263 [DEBUG][       Thread-254549][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 12:17:53,263 [DEBUG][       Thread-254549][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 12:17:53,263 [DEBUG][       Thread-254549][   transport.py][1871] : client lang: <none>
2025-06-13 12:17:53,263 [DEBUG][       Thread-254549][   transport.py][1871] : server lang: <none>
2025-06-13 12:17:53,263 [DEBUG][       Thread-254549][   transport.py][1871] : kex follows: False
2025-06-13 12:17:53,263 [DEBUG][       Thread-254549][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 12:17:53,264 [DEBUG][       Thread-254549][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 12:17:53,264 [DEBUG][       Thread-254549][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 12:17:53,264 [DEBUG][       Thread-254549][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 12:17:53,264 [DEBUG][       Thread-254549][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 12:17:53,264 [DEBUG][       Thread-254549][   transport.py][1871] : Compression: none
2025-06-13 12:17:53,264 [DEBUG][       Thread-254549][   transport.py][1871] : === End of kex handshake ===
2025-06-13 12:17:53,320 [DEBUG][       Thread-254549][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 12:17:53,321 [DEBUG][       Thread-254549][   transport.py][1871] : Switch to new keys ...
2025-06-13 12:17:53,321 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 12:17:53,322 [DEBUG][       Thread-254549][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 12:17:53,323 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 12:17:53,381 [DEBUG][       Thread-254549][   transport.py][1871] : userauth is OK
2025-06-13 12:17:53,382 [DEBUG][       Thread-254549][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 12:17:53,382 [DEBUG][       Thread-254549][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 12:17:53,382 [DEBUG][       Thread-254549][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 12:17:53,382 [DEBUG][       Thread-254549][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 12:17:53,401 [ INFO][       Thread-254549][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 12:17:53,401 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 12:17:53,402 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 12:17:54,838 [DEBUG][       Thread-254549][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 12:17:54,838 [DEBUG][       Thread-254549][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 12:17:54,891 [DEBUG][       Thread-254549][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 12:17:54,891 [DEBUG][       Thread-254549][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 12:17:54,903 [DEBUG][       Thread-254549][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 12:17:54,925 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 12:17:54,925 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 12:17:54,941 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 12:17:54,951 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 12:17:54,951 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 12:17:54,952 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 12:17:54,960 [DEBUG][       Thread-254549][   transport.py][1871] : EOF in transport thread
2025-06-13 12:18:00,425 [DEBUG][Thread-254551 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:18:04,962 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 12:18:04,962 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 12:18:04,963 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 12:18:04,966 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 12:18:05,416 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 12, 17, 58), 13.34, 39.69, 0.0, 16.09, 11.83, 0, 0, 0, 2, 0, 0),)
2025-06-13 12:18:05,417 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 12:17:58
2025-06-13 12:18:05,497 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 12:18:05,502 [DEBUG][       Thread-254552][   transport.py][1871] : starting thread (client mode): 0x863a6bc0
2025-06-13 12:18:05,502 [DEBUG][       Thread-254552][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 12:18:05,522 [DEBUG][       Thread-254552][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 12:18:05,522 [ INFO][       Thread-254552][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 12:18:05,525 [DEBUG][       Thread-254552][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 12:18:05,525 [DEBUG][       Thread-254552][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 12:18:05,525 [DEBUG][       Thread-254552][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 12:18:05,525 [DEBUG][       Thread-254552][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:18:05,525 [DEBUG][       Thread-254552][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:18:05,525 [DEBUG][       Thread-254552][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:18:05,526 [DEBUG][       Thread-254552][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:18:05,526 [DEBUG][       Thread-254552][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 12:18:05,526 [DEBUG][       Thread-254552][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 12:18:05,526 [DEBUG][       Thread-254552][   transport.py][1871] : client lang: <none>
2025-06-13 12:18:05,526 [DEBUG][       Thread-254552][   transport.py][1871] : server lang: <none>
2025-06-13 12:18:05,526 [DEBUG][       Thread-254552][   transport.py][1871] : kex follows: False
2025-06-13 12:18:05,526 [DEBUG][       Thread-254552][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 12:18:05,526 [DEBUG][       Thread-254552][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 12:18:05,526 [DEBUG][       Thread-254552][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 12:18:05,526 [DEBUG][       Thread-254552][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 12:18:05,526 [DEBUG][       Thread-254552][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 12:18:05,526 [DEBUG][       Thread-254552][   transport.py][1871] : Compression: none
2025-06-13 12:18:05,526 [DEBUG][       Thread-254552][   transport.py][1871] : === End of kex handshake ===
2025-06-13 12:18:05,544 [DEBUG][       Thread-254552][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 12:18:05,544 [DEBUG][       Thread-254552][   transport.py][1871] : Switch to new keys ...
2025-06-13 12:18:05,545 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 12:18:05,545 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 12:18:05,546 [DEBUG][       Thread-254552][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 12:18:05,587 [DEBUG][       Thread-254552][   transport.py][1871] : userauth is OK
2025-06-13 12:18:05,612 [ INFO][       Thread-254552][   transport.py][1871] : Authentication (password) successful!
2025-06-13 12:18:05,612 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 12:18:06,404 [DEBUG][       Thread-254552][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 12:18:06,404 [DEBUG][       Thread-254552][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 12:18:06,445 [DEBUG][       Thread-254552][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 12:18:06,445 [DEBUG][       Thread-254552][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 12:18:06,448 [DEBUG][       Thread-254552][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 12:18:06,460 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 12:18:06,460 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 12:18:06,462 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 12:18:06,464 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 12:18:06,470 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 12:18:06,472 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 12:18:06,473 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 12:18:06,473 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 12:18:06,473 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.428758 -999.00  +11.60  21.11     43   -0.40 1 1 1 1 1   888    0 12.51 43.47 ----- 18.7 21.1 47.6 22.0 16.2 -28.2 14.8 -30.9 14.6 -29.0 15.9 -26.6
2025-06-13 12:18:06,473 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 12:18:06,473 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 12:18:06,474 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.428758
2025-06-13 12:18:06,474 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 12:18:06,474 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 12:18:06,475 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 12:18:06,475 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 12:18:06,475 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 12:18:06,475 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T12:17:58', tmtdew=13.34, humidity=39.69, cloud=0.0, wind=16.09, temperature=11.83, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T10:17:24.691', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 12:18:06,475 [DEBUG][       Thread-254552][   transport.py][1871] : EOF in transport thread
2025-06-13 12:18:06,560 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 12:18:06,571 [DEBUG][       Thread-254555][   transport.py][1871] : starting thread (client mode): 0x867b5630
2025-06-13 12:18:06,571 [DEBUG][       Thread-254555][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 12:18:06,587 [DEBUG][       Thread-254555][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 12:18:06,587 [ INFO][       Thread-254555][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 12:18:06,596 [DEBUG][       Thread-254555][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 12:18:06,597 [DEBUG][       Thread-254555][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 12:18:06,597 [DEBUG][       Thread-254555][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 12:18:06,597 [DEBUG][       Thread-254555][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:18:06,597 [DEBUG][       Thread-254555][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:18:06,597 [DEBUG][       Thread-254555][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:18:06,597 [DEBUG][       Thread-254555][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:18:06,597 [DEBUG][       Thread-254555][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 12:18:06,597 [DEBUG][       Thread-254555][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 12:18:06,597 [DEBUG][       Thread-254555][   transport.py][1871] : client lang: <none>
2025-06-13 12:18:06,597 [DEBUG][       Thread-254555][   transport.py][1871] : server lang: <none>
2025-06-13 12:18:06,597 [DEBUG][       Thread-254555][   transport.py][1871] : kex follows: False
2025-06-13 12:18:06,597 [DEBUG][       Thread-254555][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 12:18:06,597 [DEBUG][       Thread-254555][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 12:18:06,597 [DEBUG][       Thread-254555][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 12:18:06,597 [DEBUG][       Thread-254555][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 12:18:06,597 [DEBUG][       Thread-254555][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 12:18:06,597 [DEBUG][       Thread-254555][   transport.py][1871] : Compression: none
2025-06-13 12:18:06,597 [DEBUG][       Thread-254555][   transport.py][1871] : === End of kex handshake ===
2025-06-13 12:18:06,659 [DEBUG][       Thread-254555][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 12:18:06,659 [DEBUG][       Thread-254555][   transport.py][1871] : Switch to new keys ...
2025-06-13 12:18:06,660 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 12:18:06,660 [DEBUG][       Thread-254555][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 12:18:06,661 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 12:18:06,721 [DEBUG][       Thread-254555][   transport.py][1871] : userauth is OK
2025-06-13 12:18:06,721 [DEBUG][       Thread-254555][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 12:18:06,721 [DEBUG][       Thread-254555][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 12:18:06,721 [DEBUG][       Thread-254555][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 12:18:06,721 [DEBUG][       Thread-254555][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 12:18:06,735 [ INFO][       Thread-254555][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 12:18:06,735 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 12:18:06,735 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 12:18:08,188 [DEBUG][       Thread-254555][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 12:18:08,188 [DEBUG][       Thread-254555][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 12:18:08,239 [DEBUG][       Thread-254555][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 12:18:08,239 [DEBUG][       Thread-254555][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 12:18:08,253 [DEBUG][       Thread-254555][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 12:18:08,265 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 12:18:08,266 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 12:18:08,278 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 12:18:08,290 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 12:18:08,290 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 12:18:08,291 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 12:18:08,301 [DEBUG][       Thread-254555][   transport.py][1871] : EOF in transport thread
2025-06-13 12:18:09,447 [DEBUG][Thread-254557 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:18:11,756 [DEBUG][Thread-254558 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:18:16,103 [DEBUG][Thread-254559 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:18:17,165 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:18:17,166 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:18:18,292 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 12:18:18,292 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 12:18:18,292 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 12:18:18,293 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 12:18:18,483 [DEBUG][Thread-254560 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:18:18,756 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 12, 17, 58), 13.34, 39.69, 0.0, 16.09, 11.83, 0, 0, 0, 2, 0, 0),)
2025-06-13 12:18:18,756 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 12:17:58
2025-06-13 12:18:18,841 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 12:18:18,845 [DEBUG][       Thread-254561][   transport.py][1871] : starting thread (client mode): 0x863bce50
2025-06-13 12:18:18,845 [DEBUG][       Thread-254561][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 12:18:18,866 [DEBUG][       Thread-254561][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 12:18:18,866 [ INFO][       Thread-254561][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 12:18:18,869 [DEBUG][       Thread-254561][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 12:18:18,869 [DEBUG][       Thread-254561][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 12:18:18,869 [DEBUG][       Thread-254561][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 12:18:18,869 [DEBUG][       Thread-254561][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:18:18,869 [DEBUG][       Thread-254561][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:18:18,869 [DEBUG][       Thread-254561][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:18:18,869 [DEBUG][       Thread-254561][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:18:18,869 [DEBUG][       Thread-254561][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 12:18:18,869 [DEBUG][       Thread-254561][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 12:18:18,869 [DEBUG][       Thread-254561][   transport.py][1871] : client lang: <none>
2025-06-13 12:18:18,869 [DEBUG][       Thread-254561][   transport.py][1871] : server lang: <none>
2025-06-13 12:18:18,869 [DEBUG][       Thread-254561][   transport.py][1871] : kex follows: False
2025-06-13 12:18:18,869 [DEBUG][       Thread-254561][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 12:18:18,869 [DEBUG][       Thread-254561][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 12:18:18,869 [DEBUG][       Thread-254561][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 12:18:18,869 [DEBUG][       Thread-254561][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 12:18:18,870 [DEBUG][       Thread-254561][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 12:18:18,870 [DEBUG][       Thread-254561][   transport.py][1871] : Compression: none
2025-06-13 12:18:18,870 [DEBUG][       Thread-254561][   transport.py][1871] : === End of kex handshake ===
2025-06-13 12:18:18,881 [DEBUG][       Thread-254561][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 12:18:18,881 [DEBUG][       Thread-254561][   transport.py][1871] : Switch to new keys ...
2025-06-13 12:18:18,881 [DEBUG][       Thread-254561][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 12:18:18,881 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 12:18:18,881 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 12:18:18,882 [DEBUG][       Thread-254561][   transport.py][1871] : userauth is OK
2025-06-13 12:18:18,906 [ INFO][       Thread-254561][   transport.py][1871] : Authentication (password) successful!
2025-06-13 12:18:18,906 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 12:18:19,546 [DEBUG][       Thread-254561][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 12:18:19,546 [DEBUG][       Thread-254561][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 12:18:19,588 [DEBUG][       Thread-254561][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 12:18:19,588 [DEBUG][       Thread-254561][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 12:18:19,591 [DEBUG][       Thread-254561][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 12:18:19,602 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 12:18:19,602 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 12:18:19,603 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 12:18:19,604 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 12:18:19,606 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 12:18:19,607 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 12:18:19,607 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 12:18:19,607 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 12:18:19,607 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.429105 -999.00  +11.70  19.25     44   -0.00 1 1 1 1 1   888    0 12.84 45.52 ----- 20.1 19.2 57.4 22.2 16.2 -28.5 14.9 -29.7 14.6 -28.7 16.0 -26.5
2025-06-13 12:18:19,607 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 12:18:19,607 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 12:18:19,607 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.429105
2025-06-13 12:18:19,607 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 12:18:19,607 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 12:18:19,607 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 12:18:19,607 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 12:18:19,607 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 12:18:19,607 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T12:17:58', tmtdew=13.34, humidity=39.69, cloud=0.0, wind=16.09, temperature=11.83, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T10:17:54.672', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 12:18:19,608 [DEBUG][       Thread-254561][   transport.py][1871] : EOF in transport thread
2025-06-13 12:18:19,682 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 12:18:19,698 [DEBUG][       Thread-254564][   transport.py][1871] : starting thread (client mode): 0x863a70a0
2025-06-13 12:18:19,698 [DEBUG][       Thread-254564][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 12:18:19,714 [DEBUG][       Thread-254564][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 12:18:19,714 [ INFO][       Thread-254564][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 12:18:19,722 [DEBUG][       Thread-254564][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 12:18:19,722 [DEBUG][       Thread-254564][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 12:18:19,722 [DEBUG][       Thread-254564][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 12:18:19,722 [DEBUG][       Thread-254564][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:18:19,722 [DEBUG][       Thread-254564][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:18:19,722 [DEBUG][       Thread-254564][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:18:19,722 [DEBUG][       Thread-254564][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:18:19,722 [DEBUG][       Thread-254564][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 12:18:19,722 [DEBUG][       Thread-254564][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 12:18:19,722 [DEBUG][       Thread-254564][   transport.py][1871] : client lang: <none>
2025-06-13 12:18:19,722 [DEBUG][       Thread-254564][   transport.py][1871] : server lang: <none>
2025-06-13 12:18:19,722 [DEBUG][       Thread-254564][   transport.py][1871] : kex follows: False
2025-06-13 12:18:19,722 [DEBUG][       Thread-254564][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 12:18:19,722 [DEBUG][       Thread-254564][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 12:18:19,722 [DEBUG][       Thread-254564][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 12:18:19,722 [DEBUG][       Thread-254564][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 12:18:19,722 [DEBUG][       Thread-254564][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 12:18:19,722 [DEBUG][       Thread-254564][   transport.py][1871] : Compression: none
2025-06-13 12:18:19,722 [DEBUG][       Thread-254564][   transport.py][1871] : === End of kex handshake ===
2025-06-13 12:18:19,783 [DEBUG][       Thread-254564][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 12:18:19,783 [DEBUG][       Thread-254564][   transport.py][1871] : Switch to new keys ...
2025-06-13 12:18:19,783 [DEBUG][       Thread-254564][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 12:18:19,783 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 12:18:19,783 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 12:18:19,841 [DEBUG][       Thread-254564][   transport.py][1871] : userauth is OK
2025-06-13 12:18:19,841 [DEBUG][       Thread-254564][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 12:18:19,841 [DEBUG][       Thread-254564][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 12:18:19,841 [DEBUG][       Thread-254564][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 12:18:19,841 [DEBUG][       Thread-254564][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 12:18:19,859 [ INFO][       Thread-254564][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 12:18:19,859 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 12:18:19,859 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 12:18:21,024 [DEBUG][       Thread-254564][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 12:18:21,024 [DEBUG][       Thread-254564][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 12:18:21,075 [DEBUG][       Thread-254564][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 12:18:21,075 [DEBUG][       Thread-254564][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 12:18:21,084 [DEBUG][       Thread-254564][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 12:18:21,092 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 12:18:21,092 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 12:18:21,100 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 12:18:21,108 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 12:18:21,108 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 12:18:21,108 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 12:18:21,115 [DEBUG][       Thread-254564][   transport.py][1871] : EOF in transport thread
2025-06-13 12:18:27,503 [DEBUG][Thread-254566 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:18:31,116 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 12:18:31,116 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 12:18:31,116 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 12:18:31,116 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 12:18:31,623 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 12, 17, 58), 13.34, 39.69, 0.0, 16.09, 11.83, 0, 0, 0, 2, 0, 0),)
2025-06-13 12:18:31,624 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 12:17:58
2025-06-13 12:18:31,711 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 12:18:31,715 [DEBUG][       Thread-254567][   transport.py][1871] : starting thread (client mode): 0x863bd3f0
2025-06-13 12:18:31,715 [DEBUG][       Thread-254567][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 12:18:31,737 [DEBUG][       Thread-254567][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 12:18:31,737 [ INFO][       Thread-254567][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 12:18:31,740 [DEBUG][       Thread-254567][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 12:18:31,740 [DEBUG][       Thread-254567][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 12:18:31,740 [DEBUG][       Thread-254567][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 12:18:31,740 [DEBUG][       Thread-254567][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:18:31,740 [DEBUG][       Thread-254567][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:18:31,740 [DEBUG][       Thread-254567][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:18:31,740 [DEBUG][       Thread-254567][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:18:31,740 [DEBUG][       Thread-254567][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 12:18:31,740 [DEBUG][       Thread-254567][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 12:18:31,740 [DEBUG][       Thread-254567][   transport.py][1871] : client lang: <none>
2025-06-13 12:18:31,740 [DEBUG][       Thread-254567][   transport.py][1871] : server lang: <none>
2025-06-13 12:18:31,740 [DEBUG][       Thread-254567][   transport.py][1871] : kex follows: False
2025-06-13 12:18:31,740 [DEBUG][       Thread-254567][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 12:18:31,740 [DEBUG][       Thread-254567][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 12:18:31,740 [DEBUG][       Thread-254567][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 12:18:31,740 [DEBUG][       Thread-254567][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 12:18:31,740 [DEBUG][       Thread-254567][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 12:18:31,740 [DEBUG][       Thread-254567][   transport.py][1871] : Compression: none
2025-06-13 12:18:31,740 [DEBUG][       Thread-254567][   transport.py][1871] : === End of kex handshake ===
2025-06-13 12:18:31,747 [DEBUG][       Thread-254567][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 12:18:31,747 [DEBUG][       Thread-254567][   transport.py][1871] : Switch to new keys ...
2025-06-13 12:18:31,747 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 12:18:31,747 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 12:18:31,747 [DEBUG][       Thread-254567][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 12:18:31,749 [DEBUG][       Thread-254567][   transport.py][1871] : userauth is OK
2025-06-13 12:18:31,762 [ INFO][       Thread-254567][   transport.py][1871] : Authentication (password) successful!
2025-06-13 12:18:31,762 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 12:18:32,547 [DEBUG][       Thread-254567][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 12:18:32,547 [DEBUG][       Thread-254567][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 12:18:32,588 [DEBUG][       Thread-254567][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 12:18:32,588 [DEBUG][       Thread-254567][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 12:18:32,591 [DEBUG][       Thread-254567][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 12:18:32,603 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 12:18:32,603 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 12:18:32,604 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 12:18:32,604 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 12:18:32,607 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 12:18:32,608 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 12:18:32,608 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 12:18:32,608 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 12:18:32,608 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.429105 -999.00  +11.70  19.25     44   -0.00 1 1 1 1 1   888    0 12.84 45.52 ----- 20.1 19.2 57.4 22.2 16.2 -28.5 14.9 -29.7 14.6 -28.7 16.0 -26.5
2025-06-13 12:18:32,608 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 12:18:32,608 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 12:18:32,608 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.429105
2025-06-13 12:18:32,608 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 12:18:32,608 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 12:18:32,608 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 12:18:32,608 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 12:18:32,608 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 12:18:32,608 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T12:17:58', tmtdew=13.34, humidity=39.69, cloud=0.0, wind=16.09, temperature=11.83, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T10:17:54.672', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 12:18:32,609 [DEBUG][       Thread-254567][   transport.py][1871] : EOF in transport thread
2025-06-13 12:18:32,683 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 12:18:32,692 [DEBUG][       Thread-254570][   transport.py][1871] : starting thread (client mode): 0x867b5840
2025-06-13 12:18:32,692 [DEBUG][       Thread-254570][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 12:18:32,708 [DEBUG][       Thread-254570][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 12:18:32,708 [ INFO][       Thread-254570][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 12:18:32,716 [DEBUG][       Thread-254570][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 12:18:32,716 [DEBUG][       Thread-254570][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 12:18:32,716 [DEBUG][       Thread-254570][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 12:18:32,716 [DEBUG][       Thread-254570][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:18:32,716 [DEBUG][       Thread-254570][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:18:32,716 [DEBUG][       Thread-254570][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:18:32,716 [DEBUG][       Thread-254570][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:18:32,716 [DEBUG][       Thread-254570][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 12:18:32,716 [DEBUG][       Thread-254570][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 12:18:32,716 [DEBUG][       Thread-254570][   transport.py][1871] : client lang: <none>
2025-06-13 12:18:32,716 [DEBUG][       Thread-254570][   transport.py][1871] : server lang: <none>
2025-06-13 12:18:32,716 [DEBUG][       Thread-254570][   transport.py][1871] : kex follows: False
2025-06-13 12:18:32,716 [DEBUG][       Thread-254570][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 12:18:32,716 [DEBUG][       Thread-254570][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 12:18:32,716 [DEBUG][       Thread-254570][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 12:18:32,717 [DEBUG][       Thread-254570][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 12:18:32,717 [DEBUG][       Thread-254570][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 12:18:32,717 [DEBUG][       Thread-254570][   transport.py][1871] : Compression: none
2025-06-13 12:18:32,717 [DEBUG][       Thread-254570][   transport.py][1871] : === End of kex handshake ===
2025-06-13 12:18:32,780 [DEBUG][       Thread-254570][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 12:18:32,781 [DEBUG][       Thread-254570][   transport.py][1871] : Switch to new keys ...
2025-06-13 12:18:32,781 [DEBUG][       Thread-254570][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 12:18:32,782 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 12:18:32,782 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 12:18:32,836 [DEBUG][       Thread-254570][   transport.py][1871] : userauth is OK
2025-06-13 12:18:32,836 [DEBUG][       Thread-254570][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 12:18:32,836 [DEBUG][       Thread-254570][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 12:18:32,836 [DEBUG][       Thread-254570][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 12:18:32,836 [DEBUG][       Thread-254570][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 12:18:32,856 [ INFO][       Thread-254570][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 12:18:32,856 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 12:18:32,857 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 12:18:34,044 [DEBUG][       Thread-254570][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 12:18:34,044 [DEBUG][       Thread-254570][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 12:18:34,092 [DEBUG][       Thread-254570][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 12:18:34,093 [DEBUG][       Thread-254570][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 12:18:34,102 [DEBUG][       Thread-254570][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 12:18:34,113 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 12:18:34,113 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 12:18:34,122 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 12:18:34,133 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 12:18:34,133 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 12:18:34,134 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 12:18:34,142 [DEBUG][       Thread-254570][   transport.py][1871] : EOF in transport thread
2025-06-13 12:18:36,523 [DEBUG][Thread-254572 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:18:42,197 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:18:42,198 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:18:44,144 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 12:18:44,144 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 12:18:44,144 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 12:18:44,145 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 12:18:44,592 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 12, 18, 30), 13.71, 38.67, 0.0, 15.51, 11.82, 0, 0, 0, 2, 0, 0),)
2025-06-13 12:18:44,592 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 12:18:30
2025-06-13 12:18:44,670 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 12:18:44,675 [DEBUG][       Thread-254573][   transport.py][1871] : starting thread (client mode): 0x863bd9c0
2025-06-13 12:18:44,675 [DEBUG][       Thread-254573][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 12:18:44,695 [DEBUG][       Thread-254573][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 12:18:44,695 [ INFO][       Thread-254573][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 12:18:44,698 [DEBUG][       Thread-254573][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 12:18:44,698 [DEBUG][       Thread-254573][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 12:18:44,698 [DEBUG][       Thread-254573][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 12:18:44,698 [DEBUG][       Thread-254573][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:18:44,699 [DEBUG][       Thread-254573][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:18:44,699 [DEBUG][       Thread-254573][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:18:44,699 [DEBUG][       Thread-254573][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:18:44,699 [DEBUG][       Thread-254573][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 12:18:44,699 [DEBUG][       Thread-254573][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 12:18:44,699 [DEBUG][       Thread-254573][   transport.py][1871] : client lang: <none>
2025-06-13 12:18:44,699 [DEBUG][       Thread-254573][   transport.py][1871] : server lang: <none>
2025-06-13 12:18:44,699 [DEBUG][       Thread-254573][   transport.py][1871] : kex follows: False
2025-06-13 12:18:44,699 [DEBUG][       Thread-254573][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 12:18:44,699 [DEBUG][       Thread-254573][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 12:18:44,699 [DEBUG][       Thread-254573][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 12:18:44,699 [DEBUG][       Thread-254573][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 12:18:44,699 [DEBUG][       Thread-254573][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 12:18:44,699 [DEBUG][       Thread-254573][   transport.py][1871] : Compression: none
2025-06-13 12:18:44,699 [DEBUG][       Thread-254573][   transport.py][1871] : === End of kex handshake ===
2025-06-13 12:18:44,715 [DEBUG][       Thread-254573][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 12:18:44,716 [DEBUG][       Thread-254573][   transport.py][1871] : Switch to new keys ...
2025-06-13 12:18:44,716 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 12:18:44,716 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 12:18:44,717 [DEBUG][       Thread-254573][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 12:18:44,717 [DEBUG][       Thread-254573][   transport.py][1871] : userauth is OK
2025-06-13 12:18:44,741 [ INFO][       Thread-254573][   transport.py][1871] : Authentication (password) successful!
2025-06-13 12:18:44,742 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 12:18:45,378 [DEBUG][       Thread-254573][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 12:18:45,378 [DEBUG][       Thread-254573][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 12:18:45,421 [DEBUG][       Thread-254573][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 12:18:45,421 [DEBUG][       Thread-254573][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 12:18:45,424 [DEBUG][       Thread-254573][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 12:18:45,436 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 12:18:45,436 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 12:18:45,439 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 12:18:45,442 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 12:18:45,448 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 12:18:45,451 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 12:18:45,451 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 12:18:45,452 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 12:18:45,452 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.429452 -999.00  +11.70  22.74     43   -0.10 1 1 1 1 1   888    0 12.50 47.45 ----- 20.5 22.7 60.6 25.3 16.2 -28.1 14.9 -30.5 14.6 -29.0 15.9 -27.7
2025-06-13 12:18:45,452 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 12:18:45,452 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 12:18:45,452 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.429452
2025-06-13 12:18:45,452 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 12:18:45,453 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 12:18:45,453 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 12:18:45,453 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 12:18:45,453 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 12:18:45,453 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T12:18:30', tmtdew=13.71, humidity=38.67, cloud=0.0, wind=15.51, temperature=11.82, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T10:18:24.653', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 12:18:45,454 [DEBUG][       Thread-254573][   transport.py][1871] : EOF in transport thread
2025-06-13 12:18:45,537 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 12:18:45,543 [DEBUG][Thread-254576 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:18:45,548 [DEBUG][       Thread-254577][   transport.py][1871] : starting thread (client mode): 0xc5988130
2025-06-13 12:18:45,548 [DEBUG][       Thread-254577][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 12:18:45,564 [DEBUG][       Thread-254577][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 12:18:45,564 [ INFO][       Thread-254577][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 12:18:45,574 [DEBUG][       Thread-254577][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 12:18:45,574 [DEBUG][       Thread-254577][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 12:18:45,575 [DEBUG][       Thread-254577][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 12:18:45,575 [DEBUG][       Thread-254577][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:18:45,575 [DEBUG][       Thread-254577][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:18:45,575 [DEBUG][       Thread-254577][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:18:45,575 [DEBUG][       Thread-254577][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:18:45,575 [DEBUG][       Thread-254577][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 12:18:45,575 [DEBUG][       Thread-254577][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 12:18:45,575 [DEBUG][       Thread-254577][   transport.py][1871] : client lang: <none>
2025-06-13 12:18:45,575 [DEBUG][       Thread-254577][   transport.py][1871] : server lang: <none>
2025-06-13 12:18:45,575 [DEBUG][       Thread-254577][   transport.py][1871] : kex follows: False
2025-06-13 12:18:45,575 [DEBUG][       Thread-254577][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 12:18:45,575 [DEBUG][       Thread-254577][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 12:18:45,575 [DEBUG][       Thread-254577][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 12:18:45,575 [DEBUG][       Thread-254577][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 12:18:45,575 [DEBUG][       Thread-254577][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 12:18:45,575 [DEBUG][       Thread-254577][   transport.py][1871] : Compression: none
2025-06-13 12:18:45,575 [DEBUG][       Thread-254577][   transport.py][1871] : === End of kex handshake ===
2025-06-13 12:18:45,636 [DEBUG][       Thread-254577][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 12:18:45,637 [DEBUG][       Thread-254577][   transport.py][1871] : Switch to new keys ...
2025-06-13 12:18:45,638 [DEBUG][       Thread-254577][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 12:18:45,638 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 12:18:45,638 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 12:18:45,704 [DEBUG][       Thread-254577][   transport.py][1871] : userauth is OK
2025-06-13 12:18:45,704 [DEBUG][       Thread-254577][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 12:18:45,704 [DEBUG][       Thread-254577][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 12:18:45,704 [DEBUG][       Thread-254577][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 12:18:45,704 [DEBUG][       Thread-254577][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 12:18:45,727 [ INFO][       Thread-254577][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 12:18:45,728 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 12:18:45,728 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 12:18:47,213 [DEBUG][       Thread-254577][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 12:18:47,213 [DEBUG][       Thread-254577][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 12:18:47,265 [DEBUG][       Thread-254577][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 12:18:47,265 [DEBUG][       Thread-254577][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 12:18:47,276 [DEBUG][       Thread-254577][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 12:18:47,290 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 12:18:47,290 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 12:18:47,299 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 12:18:47,310 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 12:18:47,310 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 12:18:47,311 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 12:18:47,320 [DEBUG][       Thread-254577][   transport.py][1871] : EOF in transport thread
2025-06-13 12:18:54,571 [DEBUG][Thread-254579 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:18:57,321 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 12:18:57,321 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 12:18:57,321 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 12:18:57,322 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 12:18:57,790 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 12, 18, 30), 13.71, 38.67, 0.0, 15.51, 11.82, 0, 0, 0, 2, 0, 0),)
2025-06-13 12:18:57,790 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 12:18:30
2025-06-13 12:18:57,872 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 12:18:57,876 [DEBUG][       Thread-254580][   transport.py][1871] : starting thread (client mode): 0x863bc4f0
2025-06-13 12:18:57,876 [DEBUG][       Thread-254580][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 12:18:57,888 [DEBUG][       Thread-254580][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 12:18:57,888 [ INFO][       Thread-254580][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 12:18:57,891 [DEBUG][       Thread-254580][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 12:18:57,891 [DEBUG][       Thread-254580][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 12:18:57,891 [DEBUG][       Thread-254580][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 12:18:57,891 [DEBUG][       Thread-254580][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:18:57,891 [DEBUG][       Thread-254580][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:18:57,891 [DEBUG][       Thread-254580][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:18:57,891 [DEBUG][       Thread-254580][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:18:57,891 [DEBUG][       Thread-254580][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 12:18:57,891 [DEBUG][       Thread-254580][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 12:18:57,891 [DEBUG][       Thread-254580][   transport.py][1871] : client lang: <none>
2025-06-13 12:18:57,891 [DEBUG][       Thread-254580][   transport.py][1871] : server lang: <none>
2025-06-13 12:18:57,891 [DEBUG][       Thread-254580][   transport.py][1871] : kex follows: False
2025-06-13 12:18:57,891 [DEBUG][       Thread-254580][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 12:18:57,891 [DEBUG][       Thread-254580][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 12:18:57,891 [DEBUG][       Thread-254580][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 12:18:57,891 [DEBUG][       Thread-254580][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 12:18:57,891 [DEBUG][       Thread-254580][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 12:18:57,891 [DEBUG][       Thread-254580][   transport.py][1871] : Compression: none
2025-06-13 12:18:57,891 [DEBUG][       Thread-254580][   transport.py][1871] : === End of kex handshake ===
2025-06-13 12:18:57,907 [DEBUG][       Thread-254580][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 12:18:57,907 [DEBUG][       Thread-254580][   transport.py][1871] : Switch to new keys ...
2025-06-13 12:18:57,907 [DEBUG][       Thread-254580][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 12:18:57,907 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 12:18:57,907 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 12:18:57,908 [DEBUG][       Thread-254580][   transport.py][1871] : userauth is OK
2025-06-13 12:18:57,921 [ INFO][       Thread-254580][   transport.py][1871] : Authentication (password) successful!
2025-06-13 12:18:57,921 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 12:18:58,672 [DEBUG][       Thread-254580][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 12:18:58,672 [DEBUG][       Thread-254580][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 12:18:58,716 [DEBUG][       Thread-254580][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 12:18:58,717 [DEBUG][       Thread-254580][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 12:18:58,719 [DEBUG][       Thread-254580][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 12:18:58,732 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 12:18:58,732 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 12:18:58,733 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 12:18:58,734 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 12:18:58,737 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 12:18:58,738 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 12:18:58,738 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 12:18:58,738 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 12:18:58,739 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.429452 -999.00  +11.70  22.74     43   -0.10 1 1 1 1 1   888    0 12.50 47.45 ----- 20.5 22.7 60.6 25.3 16.2 -28.1 14.9 -30.5 14.6 -29.0 15.9 -27.7
2025-06-13 12:18:58,739 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 12:18:58,739 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 12:18:58,739 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.429452
2025-06-13 12:18:58,739 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 12:18:58,739 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 12:18:58,739 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 12:18:58,739 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 12:18:58,739 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 12:18:58,739 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T12:18:30', tmtdew=13.71, humidity=38.67, cloud=0.0, wind=15.51, temperature=11.82, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T10:18:24.653', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 12:18:58,740 [DEBUG][       Thread-254580][   transport.py][1871] : EOF in transport thread
2025-06-13 12:18:58,813 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 12:18:58,823 [DEBUG][       Thread-254583][   transport.py][1871] : starting thread (client mode): 0x867b5150
2025-06-13 12:18:58,823 [DEBUG][       Thread-254583][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 12:18:58,838 [DEBUG][       Thread-254583][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 12:18:58,838 [ INFO][       Thread-254583][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 12:18:58,846 [DEBUG][       Thread-254583][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 12:18:58,846 [DEBUG][       Thread-254583][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 12:18:58,846 [DEBUG][       Thread-254583][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 12:18:58,846 [DEBUG][       Thread-254583][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:18:58,846 [DEBUG][       Thread-254583][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:18:58,846 [DEBUG][       Thread-254583][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:18:58,846 [DEBUG][       Thread-254583][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:18:58,846 [DEBUG][       Thread-254583][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 12:18:58,846 [DEBUG][       Thread-254583][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 12:18:58,846 [DEBUG][       Thread-254583][   transport.py][1871] : client lang: <none>
2025-06-13 12:18:58,846 [DEBUG][       Thread-254583][   transport.py][1871] : server lang: <none>
2025-06-13 12:18:58,846 [DEBUG][       Thread-254583][   transport.py][1871] : kex follows: False
2025-06-13 12:18:58,846 [DEBUG][       Thread-254583][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 12:18:58,846 [DEBUG][       Thread-254583][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 12:18:58,846 [DEBUG][       Thread-254583][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 12:18:58,846 [DEBUG][       Thread-254583][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 12:18:58,846 [DEBUG][       Thread-254583][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 12:18:58,846 [DEBUG][       Thread-254583][   transport.py][1871] : Compression: none
2025-06-13 12:18:58,846 [DEBUG][       Thread-254583][   transport.py][1871] : === End of kex handshake ===
2025-06-13 12:18:58,914 [DEBUG][       Thread-254583][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 12:18:58,914 [DEBUG][       Thread-254583][   transport.py][1871] : Switch to new keys ...
2025-06-13 12:18:58,914 [DEBUG][       Thread-254583][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 12:18:58,914 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 12:18:58,914 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 12:18:58,972 [DEBUG][       Thread-254583][   transport.py][1871] : userauth is OK
2025-06-13 12:18:58,972 [DEBUG][       Thread-254583][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 12:18:58,972 [DEBUG][       Thread-254583][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 12:18:58,972 [DEBUG][       Thread-254583][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 12:18:58,972 [DEBUG][       Thread-254583][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 12:18:58,986 [ INFO][       Thread-254583][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 12:18:58,986 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 12:18:58,986 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 12:19:00,265 [DEBUG][       Thread-254583][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 12:19:00,266 [DEBUG][       Thread-254583][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 12:19:00,316 [DEBUG][       Thread-254583][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 12:19:00,316 [DEBUG][       Thread-254583][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 12:19:00,326 [DEBUG][       Thread-254583][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 12:19:00,337 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 12:19:00,337 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 12:19:00,346 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 12:19:00,357 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 12:19:00,357 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 12:19:00,357 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 12:19:00,366 [DEBUG][       Thread-254583][   transport.py][1871] : EOF in transport thread
2025-06-13 12:19:03,590 [DEBUG][Thread-254585 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:19:10,368 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 12:19:10,368 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 12:19:10,368 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 12:19:10,371 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 12:19:10,819 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 12, 19, 2), 13.79, 38.45, 0.0, 18.1, 11.8, 0, 0, 0, 2, 0, 0),)
2025-06-13 12:19:10,820 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 12:19:02
2025-06-13 12:19:10,900 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 12:19:10,907 [DEBUG][       Thread-254586][   transport.py][1871] : starting thread (client mode): 0x863a5b40
2025-06-13 12:19:10,907 [DEBUG][       Thread-254586][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 12:19:10,928 [DEBUG][       Thread-254586][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 12:19:10,928 [ INFO][       Thread-254586][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 12:19:10,931 [DEBUG][       Thread-254586][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 12:19:10,931 [DEBUG][       Thread-254586][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 12:19:10,931 [DEBUG][       Thread-254586][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 12:19:10,931 [DEBUG][       Thread-254586][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:19:10,931 [DEBUG][       Thread-254586][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:19:10,931 [DEBUG][       Thread-254586][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:19:10,931 [DEBUG][       Thread-254586][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:19:10,931 [DEBUG][       Thread-254586][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 12:19:10,931 [DEBUG][       Thread-254586][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 12:19:10,931 [DEBUG][       Thread-254586][   transport.py][1871] : client lang: <none>
2025-06-13 12:19:10,931 [DEBUG][       Thread-254586][   transport.py][1871] : server lang: <none>
2025-06-13 12:19:10,931 [DEBUG][       Thread-254586][   transport.py][1871] : kex follows: False
2025-06-13 12:19:10,931 [DEBUG][       Thread-254586][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 12:19:10,931 [DEBUG][       Thread-254586][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 12:19:10,931 [DEBUG][       Thread-254586][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 12:19:10,931 [DEBUG][       Thread-254586][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 12:19:10,931 [DEBUG][       Thread-254586][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 12:19:10,931 [DEBUG][       Thread-254586][   transport.py][1871] : Compression: none
2025-06-13 12:19:10,932 [DEBUG][       Thread-254586][   transport.py][1871] : === End of kex handshake ===
2025-06-13 12:19:10,951 [DEBUG][       Thread-254586][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 12:19:10,951 [DEBUG][       Thread-254586][   transport.py][1871] : Switch to new keys ...
2025-06-13 12:19:10,952 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 12:19:10,952 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 12:19:10,953 [DEBUG][       Thread-254586][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 12:19:10,953 [DEBUG][       Thread-254586][   transport.py][1871] : userauth is OK
2025-06-13 12:19:10,978 [ INFO][       Thread-254586][   transport.py][1871] : Authentication (password) successful!
2025-06-13 12:19:10,978 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 12:19:11,778 [DEBUG][       Thread-254586][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 12:19:11,778 [DEBUG][       Thread-254586][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 12:19:11,805 [DEBUG][Thread-254588 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:19:11,821 [DEBUG][       Thread-254586][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 12:19:11,821 [DEBUG][       Thread-254586][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 12:19:11,823 [DEBUG][       Thread-254586][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 12:19:11,835 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 12:19:11,836 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 12:19:11,838 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 12:19:11,840 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 12:19:11,846 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 12:19:11,848 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 12:19:11,848 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 12:19:11,849 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 12:19:11,849 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.429452 -999.00  +11.70  22.74     43   -0.10 1 1 1 1 1   888    0 12.50 47.45 ----- 20.5 22.7 60.6 25.3 16.2 -28.1 14.9 -30.5 14.6 -29.0 15.9 -27.7
2025-06-13 12:19:11,849 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 12:19:11,849 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 12:19:11,849 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.429452
2025-06-13 12:19:11,850 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 12:19:11,850 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 12:19:11,850 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 12:19:11,850 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 12:19:11,850 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 12:19:11,850 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T12:19:02', tmtdew=13.79, humidity=38.45, cloud=0.0, wind=18.1, temperature=11.8, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T10:18:24.653', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 12:19:11,851 [DEBUG][       Thread-254586][   transport.py][1871] : EOF in transport thread
2025-06-13 12:19:11,934 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 12:19:11,947 [DEBUG][       Thread-254590][   transport.py][1871] : starting thread (client mode): 0x863ecc10
2025-06-13 12:19:11,947 [DEBUG][       Thread-254590][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 12:19:11,964 [DEBUG][       Thread-254590][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 12:19:11,964 [ INFO][       Thread-254590][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 12:19:11,973 [DEBUG][       Thread-254590][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 12:19:11,973 [DEBUG][       Thread-254590][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 12:19:11,973 [DEBUG][       Thread-254590][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 12:19:11,973 [DEBUG][       Thread-254590][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:19:11,973 [DEBUG][       Thread-254590][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:19:11,973 [DEBUG][       Thread-254590][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:19:11,973 [DEBUG][       Thread-254590][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:19:11,974 [DEBUG][       Thread-254590][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 12:19:11,974 [DEBUG][       Thread-254590][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 12:19:11,974 [DEBUG][       Thread-254590][   transport.py][1871] : client lang: <none>
2025-06-13 12:19:11,974 [DEBUG][       Thread-254590][   transport.py][1871] : server lang: <none>
2025-06-13 12:19:11,974 [DEBUG][       Thread-254590][   transport.py][1871] : kex follows: False
2025-06-13 12:19:11,974 [DEBUG][       Thread-254590][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 12:19:11,974 [DEBUG][       Thread-254590][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 12:19:11,974 [DEBUG][       Thread-254590][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 12:19:11,974 [DEBUG][       Thread-254590][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 12:19:11,974 [DEBUG][       Thread-254590][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 12:19:11,974 [DEBUG][       Thread-254590][   transport.py][1871] : Compression: none
2025-06-13 12:19:11,974 [DEBUG][       Thread-254590][   transport.py][1871] : === End of kex handshake ===
2025-06-13 12:19:12,038 [DEBUG][       Thread-254590][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 12:19:12,039 [DEBUG][       Thread-254590][   transport.py][1871] : Switch to new keys ...
2025-06-13 12:19:12,039 [DEBUG][       Thread-254590][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 12:19:12,040 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 12:19:12,040 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 12:19:12,096 [DEBUG][       Thread-254590][   transport.py][1871] : userauth is OK
2025-06-13 12:19:12,096 [DEBUG][       Thread-254590][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 12:19:12,097 [DEBUG][       Thread-254590][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 12:19:12,097 [DEBUG][       Thread-254590][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 12:19:12,097 [DEBUG][       Thread-254590][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 12:19:12,112 [ INFO][       Thread-254590][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 12:19:12,112 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 12:19:12,112 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 12:19:12,613 [DEBUG][Thread-254592 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:19:13,206 [DEBUG][       Thread-254590][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 12:19:13,206 [DEBUG][       Thread-254590][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 12:19:13,259 [DEBUG][       Thread-254590][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 12:19:13,259 [DEBUG][       Thread-254590][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 12:19:13,271 [DEBUG][       Thread-254590][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 12:19:13,287 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 12:19:13,288 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 12:19:13,298 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 12:19:13,311 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 12:19:13,312 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 12:19:13,312 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 12:19:13,322 [DEBUG][       Thread-254590][   transport.py][1871] : EOF in transport thread
2025-06-13 12:19:17,191 [DEBUG][Thread-254593 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:19:18,241 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:19:18,243 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:19:21,646 [DEBUG][Thread-254594 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:19:23,323 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 12:19:23,323 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 12:19:23,323 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 12:19:23,325 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 12:19:23,784 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 12, 19, 2), 13.79, 38.45, 0.0, 18.1, 11.8, 0, 0, 0, 2, 0, 0),)
2025-06-13 12:19:23,784 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 12:19:02
2025-06-13 12:19:23,865 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 12:19:23,869 [DEBUG][       Thread-254595][   transport.py][1871] : starting thread (client mode): 0x863ee500
2025-06-13 12:19:23,869 [DEBUG][       Thread-254595][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 12:19:23,890 [DEBUG][       Thread-254595][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 12:19:23,890 [ INFO][       Thread-254595][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 12:19:23,891 [DEBUG][       Thread-254595][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 12:19:23,892 [DEBUG][       Thread-254595][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 12:19:23,892 [DEBUG][       Thread-254595][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 12:19:23,892 [DEBUG][       Thread-254595][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:19:23,892 [DEBUG][       Thread-254595][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:19:23,892 [DEBUG][       Thread-254595][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:19:23,892 [DEBUG][       Thread-254595][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:19:23,892 [DEBUG][       Thread-254595][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 12:19:23,892 [DEBUG][       Thread-254595][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 12:19:23,892 [DEBUG][       Thread-254595][   transport.py][1871] : client lang: <none>
2025-06-13 12:19:23,892 [DEBUG][       Thread-254595][   transport.py][1871] : server lang: <none>
2025-06-13 12:19:23,892 [DEBUG][       Thread-254595][   transport.py][1871] : kex follows: False
2025-06-13 12:19:23,892 [DEBUG][       Thread-254595][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 12:19:23,892 [DEBUG][       Thread-254595][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 12:19:23,892 [DEBUG][       Thread-254595][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 12:19:23,892 [DEBUG][       Thread-254595][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 12:19:23,892 [DEBUG][       Thread-254595][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 12:19:23,892 [DEBUG][       Thread-254595][   transport.py][1871] : Compression: none
2025-06-13 12:19:23,892 [DEBUG][       Thread-254595][   transport.py][1871] : === End of kex handshake ===
2025-06-13 12:19:23,909 [DEBUG][       Thread-254595][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 12:19:23,910 [DEBUG][       Thread-254595][   transport.py][1871] : Switch to new keys ...
2025-06-13 12:19:23,910 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 12:19:23,910 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 12:19:23,911 [DEBUG][       Thread-254595][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 12:19:23,912 [DEBUG][       Thread-254595][   transport.py][1871] : userauth is OK
2025-06-13 12:19:23,924 [ INFO][       Thread-254595][   transport.py][1871] : Authentication (password) successful!
2025-06-13 12:19:23,925 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 12:19:24,532 [DEBUG][       Thread-254595][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 12:19:24,532 [DEBUG][       Thread-254595][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 12:19:24,576 [DEBUG][       Thread-254595][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 12:19:24,577 [DEBUG][       Thread-254595][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 12:19:24,579 [DEBUG][       Thread-254595][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 12:19:24,590 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 12:19:24,590 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 12:19:24,592 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 12:19:24,593 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 12:19:24,597 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 12:19:24,597 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 12:19:24,597 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 12:19:24,598 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 12:19:24,598 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.429799 -999.00  +11.70  22.06     43   -0.30 1 1 1 1 1   888    0 12.58 45.87 ----- 15.4 22.1 46.0 23.9 16.2 -28.1 14.9 -30.7 14.6 -28.2 16.0 -26.9
2025-06-13 12:19:24,598 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 12:19:24,598 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 12:19:24,598 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.429799
2025-06-13 12:19:24,598 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 12:19:24,598 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 12:19:24,598 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 12:19:24,598 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 12:19:24,598 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 12:19:24,598 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T12:19:02', tmtdew=13.79, humidity=38.45, cloud=0.0, wind=18.1, temperature=11.8, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T10:18:54.634', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 12:19:24,599 [DEBUG][       Thread-254595][   transport.py][1871] : EOF in transport thread
2025-06-13 12:19:24,670 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 12:19:24,680 [DEBUG][       Thread-254598][   transport.py][1871] : starting thread (client mode): 0x863a48e0
2025-06-13 12:19:24,680 [DEBUG][       Thread-254598][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 12:19:24,695 [DEBUG][       Thread-254598][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 12:19:24,695 [ INFO][       Thread-254598][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 12:19:24,703 [DEBUG][       Thread-254598][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 12:19:24,703 [DEBUG][       Thread-254598][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 12:19:24,703 [DEBUG][       Thread-254598][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 12:19:24,703 [DEBUG][       Thread-254598][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:19:24,703 [DEBUG][       Thread-254598][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:19:24,703 [DEBUG][       Thread-254598][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:19:24,703 [DEBUG][       Thread-254598][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:19:24,703 [DEBUG][       Thread-254598][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 12:19:24,703 [DEBUG][       Thread-254598][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 12:19:24,703 [DEBUG][       Thread-254598][   transport.py][1871] : client lang: <none>
2025-06-13 12:19:24,703 [DEBUG][       Thread-254598][   transport.py][1871] : server lang: <none>
2025-06-13 12:19:24,703 [DEBUG][       Thread-254598][   transport.py][1871] : kex follows: False
2025-06-13 12:19:24,703 [DEBUG][       Thread-254598][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 12:19:24,703 [DEBUG][       Thread-254598][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 12:19:24,703 [DEBUG][       Thread-254598][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 12:19:24,703 [DEBUG][       Thread-254598][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 12:19:24,703 [DEBUG][       Thread-254598][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 12:19:24,703 [DEBUG][       Thread-254598][   transport.py][1871] : Compression: none
2025-06-13 12:19:24,703 [DEBUG][       Thread-254598][   transport.py][1871] : === End of kex handshake ===
2025-06-13 12:19:24,764 [DEBUG][       Thread-254598][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 12:19:24,765 [DEBUG][       Thread-254598][   transport.py][1871] : Switch to new keys ...
2025-06-13 12:19:24,766 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 12:19:24,766 [DEBUG][       Thread-254598][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 12:19:24,767 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 12:19:24,826 [DEBUG][       Thread-254598][   transport.py][1871] : userauth is OK
2025-06-13 12:19:24,826 [DEBUG][       Thread-254598][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 12:19:24,826 [DEBUG][       Thread-254598][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 12:19:24,826 [DEBUG][       Thread-254598][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 12:19:24,826 [DEBUG][       Thread-254598][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 12:19:24,845 [ INFO][       Thread-254598][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 12:19:24,846 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 12:19:24,846 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 12:19:26,170 [DEBUG][       Thread-254598][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 12:19:26,170 [DEBUG][       Thread-254598][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 12:19:26,220 [DEBUG][       Thread-254598][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 12:19:26,220 [DEBUG][       Thread-254598][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 12:19:26,230 [DEBUG][       Thread-254598][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 12:19:26,238 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 12:19:26,239 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 12:19:26,248 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 12:19:26,258 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 12:19:26,258 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 12:19:26,258 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 12:19:26,266 [DEBUG][       Thread-254598][   transport.py][1871] : EOF in transport thread
2025-06-13 12:19:30,668 [DEBUG][Thread-254600 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:19:36,269 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 12:19:36,269 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 12:19:36,269 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 12:19:36,270 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 12:19:36,759 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 12, 19, 33), 13.7, 38.49, 0.0, 17.01, 11.9, 0, 0, 0, 2, 0, 0),)
2025-06-13 12:19:36,759 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 12:19:33
2025-06-13 12:19:36,842 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 12:19:36,848 [DEBUG][       Thread-254601][   transport.py][1871] : starting thread (client mode): 0x863a6d10
2025-06-13 12:19:36,848 [DEBUG][       Thread-254601][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 12:19:36,864 [DEBUG][       Thread-254601][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 12:19:36,864 [ INFO][       Thread-254601][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 12:19:36,867 [DEBUG][       Thread-254601][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 12:19:36,867 [DEBUG][       Thread-254601][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 12:19:36,867 [DEBUG][       Thread-254601][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 12:19:36,867 [DEBUG][       Thread-254601][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:19:36,867 [DEBUG][       Thread-254601][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:19:36,867 [DEBUG][       Thread-254601][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:19:36,867 [DEBUG][       Thread-254601][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:19:36,867 [DEBUG][       Thread-254601][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 12:19:36,867 [DEBUG][       Thread-254601][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 12:19:36,867 [DEBUG][       Thread-254601][   transport.py][1871] : client lang: <none>
2025-06-13 12:19:36,867 [DEBUG][       Thread-254601][   transport.py][1871] : server lang: <none>
2025-06-13 12:19:36,867 [DEBUG][       Thread-254601][   transport.py][1871] : kex follows: False
2025-06-13 12:19:36,867 [DEBUG][       Thread-254601][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 12:19:36,867 [DEBUG][       Thread-254601][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 12:19:36,867 [DEBUG][       Thread-254601][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 12:19:36,867 [DEBUG][       Thread-254601][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 12:19:36,867 [DEBUG][       Thread-254601][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 12:19:36,867 [DEBUG][       Thread-254601][   transport.py][1871] : Compression: none
2025-06-13 12:19:36,867 [DEBUG][       Thread-254601][   transport.py][1871] : === End of kex handshake ===
2025-06-13 12:19:36,883 [DEBUG][       Thread-254601][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 12:19:36,883 [DEBUG][       Thread-254601][   transport.py][1871] : Switch to new keys ...
2025-06-13 12:19:36,883 [DEBUG][       Thread-254601][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 12:19:36,883 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 12:19:36,883 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 12:19:36,884 [DEBUG][       Thread-254601][   transport.py][1871] : userauth is OK
2025-06-13 12:19:36,908 [ INFO][       Thread-254601][   transport.py][1871] : Authentication (password) successful!
2025-06-13 12:19:36,908 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 12:19:37,704 [DEBUG][       Thread-254601][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 12:19:37,704 [DEBUG][       Thread-254601][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 12:19:37,748 [DEBUG][       Thread-254601][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 12:19:37,749 [DEBUG][       Thread-254601][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 12:19:37,751 [DEBUG][       Thread-254601][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 12:19:37,764 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 12:19:37,764 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 12:19:37,765 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 12:19:37,767 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 12:19:37,770 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 12:19:37,771 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 12:19:37,771 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 12:19:37,772 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 12:19:37,772 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.429799 -999.00  +11.70  22.06     43   -0.30 1 1 1 1 1   888    0 12.58 45.87 ----- 15.4 22.1 46.0 23.9 16.2 -28.1 14.9 -30.7 14.6 -28.2 16.0 -26.9
2025-06-13 12:19:37,772 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 12:19:37,772 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 12:19:37,772 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.429799
2025-06-13 12:19:37,772 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 12:19:37,772 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 12:19:37,772 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 12:19:37,772 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 12:19:37,772 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 12:19:37,772 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T12:19:33', tmtdew=13.7, humidity=38.49, cloud=0.0, wind=17.01, temperature=11.9, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T10:18:54.634', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 12:19:37,773 [DEBUG][       Thread-254601][   transport.py][1871] : EOF in transport thread
2025-06-13 12:19:37,845 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 12:19:37,856 [DEBUG][       Thread-254604][   transport.py][1871] : starting thread (client mode): 0x863ed780
2025-06-13 12:19:37,856 [DEBUG][       Thread-254604][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 12:19:37,871 [DEBUG][       Thread-254604][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 12:19:37,871 [ INFO][       Thread-254604][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 12:19:37,879 [DEBUG][       Thread-254604][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 12:19:37,879 [DEBUG][       Thread-254604][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 12:19:37,879 [DEBUG][       Thread-254604][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 12:19:37,879 [DEBUG][       Thread-254604][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:19:37,879 [DEBUG][       Thread-254604][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:19:37,879 [DEBUG][       Thread-254604][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:19:37,879 [DEBUG][       Thread-254604][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:19:37,879 [DEBUG][       Thread-254604][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 12:19:37,879 [DEBUG][       Thread-254604][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 12:19:37,879 [DEBUG][       Thread-254604][   transport.py][1871] : client lang: <none>
2025-06-13 12:19:37,879 [DEBUG][       Thread-254604][   transport.py][1871] : server lang: <none>
2025-06-13 12:19:37,879 [DEBUG][       Thread-254604][   transport.py][1871] : kex follows: False
2025-06-13 12:19:37,879 [DEBUG][       Thread-254604][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 12:19:37,879 [DEBUG][       Thread-254604][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 12:19:37,879 [DEBUG][       Thread-254604][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 12:19:37,879 [DEBUG][       Thread-254604][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 12:19:37,879 [DEBUG][       Thread-254604][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 12:19:37,879 [DEBUG][       Thread-254604][   transport.py][1871] : Compression: none
2025-06-13 12:19:37,879 [DEBUG][       Thread-254604][   transport.py][1871] : === End of kex handshake ===
2025-06-13 12:19:37,938 [DEBUG][       Thread-254604][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 12:19:37,938 [DEBUG][       Thread-254604][   transport.py][1871] : Switch to new keys ...
2025-06-13 12:19:37,938 [DEBUG][       Thread-254604][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 12:19:37,938 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 12:19:37,938 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 12:19:38,005 [DEBUG][       Thread-254604][   transport.py][1871] : userauth is OK
2025-06-13 12:19:38,005 [DEBUG][       Thread-254604][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 12:19:38,005 [DEBUG][       Thread-254604][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 12:19:38,005 [DEBUG][       Thread-254604][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 12:19:38,005 [DEBUG][       Thread-254604][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 12:19:38,019 [ INFO][       Thread-254604][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 12:19:38,019 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 12:19:38,019 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 12:19:39,100 [DEBUG][       Thread-254604][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 12:19:39,101 [DEBUG][       Thread-254604][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 12:19:39,152 [DEBUG][       Thread-254604][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 12:19:39,153 [DEBUG][       Thread-254604][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 12:19:39,163 [DEBUG][       Thread-254604][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 12:19:39,174 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 12:19:39,174 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 12:19:39,184 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 12:19:39,196 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 12:19:39,196 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 12:19:39,197 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 12:19:39,210 [DEBUG][       Thread-254604][   transport.py][1871] : EOF in transport thread
2025-06-13 12:19:39,688 [DEBUG][Thread-254606 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:19:42,336 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:19:42,338 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:19:48,721 [DEBUG][Thread-254607 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:19:49,204 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 12:19:49,204 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 12:19:49,204 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 12:19:49,207 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 12:19:49,677 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 12, 19, 33), 13.7, 38.49, 0.0, 17.01, 11.9, 0, 0, 0, 2, 0, 0),)
2025-06-13 12:19:49,677 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 12:19:33
2025-06-13 12:19:49,758 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 12:19:49,763 [DEBUG][       Thread-254608][   transport.py][1871] : starting thread (client mode): 0x863bca60
2025-06-13 12:19:49,763 [DEBUG][       Thread-254608][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 12:19:49,784 [DEBUG][       Thread-254608][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 12:19:49,784 [ INFO][       Thread-254608][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 12:19:49,788 [DEBUG][       Thread-254608][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 12:19:49,788 [DEBUG][       Thread-254608][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 12:19:49,788 [DEBUG][       Thread-254608][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 12:19:49,788 [DEBUG][       Thread-254608][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:19:49,788 [DEBUG][       Thread-254608][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:19:49,788 [DEBUG][       Thread-254608][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:19:49,788 [DEBUG][       Thread-254608][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:19:49,788 [DEBUG][       Thread-254608][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 12:19:49,788 [DEBUG][       Thread-254608][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 12:19:49,788 [DEBUG][       Thread-254608][   transport.py][1871] : client lang: <none>
2025-06-13 12:19:49,788 [DEBUG][       Thread-254608][   transport.py][1871] : server lang: <none>
2025-06-13 12:19:49,788 [DEBUG][       Thread-254608][   transport.py][1871] : kex follows: False
2025-06-13 12:19:49,788 [DEBUG][       Thread-254608][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 12:19:49,788 [DEBUG][       Thread-254608][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 12:19:49,788 [DEBUG][       Thread-254608][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 12:19:49,788 [DEBUG][       Thread-254608][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 12:19:49,789 [DEBUG][       Thread-254608][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 12:19:49,789 [DEBUG][       Thread-254608][   transport.py][1871] : Compression: none
2025-06-13 12:19:49,789 [DEBUG][       Thread-254608][   transport.py][1871] : === End of kex handshake ===
2025-06-13 12:19:49,806 [DEBUG][       Thread-254608][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 12:19:49,806 [DEBUG][       Thread-254608][   transport.py][1871] : Switch to new keys ...
2025-06-13 12:19:49,807 [DEBUG][       Thread-254608][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 12:19:49,807 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 12:19:49,807 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 12:19:49,808 [DEBUG][       Thread-254608][   transport.py][1871] : userauth is OK
2025-06-13 12:19:49,822 [ INFO][       Thread-254608][   transport.py][1871] : Authentication (password) successful!
2025-06-13 12:19:49,823 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 12:19:50,394 [DEBUG][       Thread-254608][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 12:19:50,394 [DEBUG][       Thread-254608][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 12:19:50,437 [DEBUG][       Thread-254608][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 12:19:50,437 [DEBUG][       Thread-254608][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 12:19:50,441 [DEBUG][       Thread-254608][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 12:19:50,454 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 12:19:50,455 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 12:19:50,457 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 12:19:50,458 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 12:19:50,464 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 12:19:50,466 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 12:19:50,466 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 12:19:50,467 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 12:19:50,467 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.430146 -999.00  +11.90  19.36     43   -0.10 1 1 1 1 1   888    0 13.02 52.49 ----- 20.5 19.4 50.8 23.4 16.3 -28.1 14.9 -30.1 14.7 -27.8 16.1 -26.7
2025-06-13 12:19:50,467 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 12:19:50,467 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 12:19:50,467 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.430146
2025-06-13 12:19:50,468 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 12:19:50,469 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 12:19:50,469 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 12:19:50,469 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 12:19:50,469 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 12:19:50,469 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T12:19:33', tmtdew=13.7, humidity=38.49, cloud=0.0, wind=17.01, temperature=11.9, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T10:19:24.614', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 12:19:50,470 [DEBUG][       Thread-254608][   transport.py][1871] : EOF in transport thread
2025-06-13 12:19:50,546 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 12:19:50,555 [DEBUG][       Thread-254611][   transport.py][1871] : starting thread (client mode): 0x863a6ad0
2025-06-13 12:19:50,555 [DEBUG][       Thread-254611][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 12:19:50,570 [DEBUG][       Thread-254611][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 12:19:50,570 [ INFO][       Thread-254611][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 12:19:50,579 [DEBUG][       Thread-254611][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 12:19:50,579 [DEBUG][       Thread-254611][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 12:19:50,579 [DEBUG][       Thread-254611][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 12:19:50,579 [DEBUG][       Thread-254611][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:19:50,579 [DEBUG][       Thread-254611][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:19:50,579 [DEBUG][       Thread-254611][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:19:50,579 [DEBUG][       Thread-254611][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:19:50,579 [DEBUG][       Thread-254611][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 12:19:50,579 [DEBUG][       Thread-254611][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 12:19:50,579 [DEBUG][       Thread-254611][   transport.py][1871] : client lang: <none>
2025-06-13 12:19:50,579 [DEBUG][       Thread-254611][   transport.py][1871] : server lang: <none>
2025-06-13 12:19:50,579 [DEBUG][       Thread-254611][   transport.py][1871] : kex follows: False
2025-06-13 12:19:50,579 [DEBUG][       Thread-254611][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 12:19:50,580 [DEBUG][       Thread-254611][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 12:19:50,580 [DEBUG][       Thread-254611][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 12:19:50,580 [DEBUG][       Thread-254611][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 12:19:50,580 [DEBUG][       Thread-254611][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 12:19:50,580 [DEBUG][       Thread-254611][   transport.py][1871] : Compression: none
2025-06-13 12:19:50,580 [DEBUG][       Thread-254611][   transport.py][1871] : === End of kex handshake ===
2025-06-13 12:19:50,640 [DEBUG][       Thread-254611][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 12:19:50,641 [DEBUG][       Thread-254611][   transport.py][1871] : Switch to new keys ...
2025-06-13 12:19:50,641 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 12:19:50,642 [DEBUG][       Thread-254611][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 12:19:50,643 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 12:19:50,701 [DEBUG][       Thread-254611][   transport.py][1871] : userauth is OK
2025-06-13 12:19:50,701 [DEBUG][       Thread-254611][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 12:19:50,701 [DEBUG][       Thread-254611][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 12:19:50,701 [DEBUG][       Thread-254611][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 12:19:50,701 [DEBUG][       Thread-254611][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 12:19:50,721 [ INFO][       Thread-254611][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 12:19:50,721 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 12:19:50,722 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 12:19:52,214 [DEBUG][       Thread-254611][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 12:19:52,214 [DEBUG][       Thread-254611][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 12:19:52,266 [DEBUG][       Thread-254611][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 12:19:52,266 [DEBUG][       Thread-254611][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 12:19:52,281 [DEBUG][       Thread-254611][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 12:19:52,297 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 12:19:52,297 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 12:19:52,325 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 12:19:52,335 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 12:19:52,336 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 12:19:52,336 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 12:19:52,344 [DEBUG][       Thread-254611][   transport.py][1871] : EOF in transport thread
2025-06-13 12:19:57,743 [DEBUG][Thread-254613 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:20:02,347 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 12:20:02,347 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 12:20:02,347 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 12:20:02,350 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 12:20:02,811 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 12, 19, 33), 13.7, 38.49, 0.0, 17.01, 11.9, 0, 0, 0, 2, 0, 0),)
2025-06-13 12:20:02,811 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 12:19:33
2025-06-13 12:20:02,892 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 12:20:02,897 [DEBUG][       Thread-254614][   transport.py][1871] : starting thread (client mode): 0x863bc7c0
2025-06-13 12:20:02,897 [DEBUG][       Thread-254614][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 12:20:02,919 [DEBUG][       Thread-254614][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 12:20:02,919 [ INFO][       Thread-254614][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 12:20:02,923 [DEBUG][       Thread-254614][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 12:20:02,923 [DEBUG][       Thread-254614][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 12:20:02,923 [DEBUG][       Thread-254614][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 12:20:02,923 [DEBUG][       Thread-254614][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:20:02,923 [DEBUG][       Thread-254614][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:20:02,923 [DEBUG][       Thread-254614][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:20:02,923 [DEBUG][       Thread-254614][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:20:02,923 [DEBUG][       Thread-254614][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 12:20:02,923 [DEBUG][       Thread-254614][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 12:20:02,923 [DEBUG][       Thread-254614][   transport.py][1871] : client lang: <none>
2025-06-13 12:20:02,923 [DEBUG][       Thread-254614][   transport.py][1871] : server lang: <none>
2025-06-13 12:20:02,923 [DEBUG][       Thread-254614][   transport.py][1871] : kex follows: False
2025-06-13 12:20:02,923 [DEBUG][       Thread-254614][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 12:20:02,923 [DEBUG][       Thread-254614][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 12:20:02,923 [DEBUG][       Thread-254614][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 12:20:02,923 [DEBUG][       Thread-254614][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 12:20:02,923 [DEBUG][       Thread-254614][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 12:20:02,923 [DEBUG][       Thread-254614][   transport.py][1871] : Compression: none
2025-06-13 12:20:02,923 [DEBUG][       Thread-254614][   transport.py][1871] : === End of kex handshake ===
2025-06-13 12:20:02,942 [DEBUG][       Thread-254614][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 12:20:02,943 [DEBUG][       Thread-254614][   transport.py][1871] : Switch to new keys ...
2025-06-13 12:20:02,943 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 12:20:02,943 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 12:20:02,944 [DEBUG][       Thread-254614][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 12:20:02,945 [DEBUG][       Thread-254614][   transport.py][1871] : userauth is OK
2025-06-13 12:20:02,993 [ INFO][       Thread-254614][   transport.py][1871] : Authentication (password) successful!
2025-06-13 12:20:02,993 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 12:20:06,763 [DEBUG][Thread-254616 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:20:09,957 [DEBUG][       Thread-254614][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 12:20:09,957 [DEBUG][       Thread-254614][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 12:20:10,001 [DEBUG][       Thread-254614][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 12:20:10,001 [DEBUG][       Thread-254614][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 12:20:10,004 [DEBUG][       Thread-254614][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 12:20:10,017 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 12:20:10,017 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 12:20:10,019 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 12:20:10,021 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 12:20:10,035 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 12:20:10,037 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 12:20:10,037 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 12:20:10,038 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 12:20:10,038 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.430146 -999.00  +11.90  19.36     43   -0.10 1 1 1 1 1   888    0 13.02 52.49 ----- 20.5 19.4 50.8 23.4 16.3 -28.1 14.9 -30.1 14.7 -27.8 16.1 -26.7
2025-06-13 12:20:10,038 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 12:20:10,038 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 12:20:10,038 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.430146
2025-06-13 12:20:10,038 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 12:20:10,039 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 12:20:10,039 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 12:20:10,039 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 12:20:10,039 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 12:20:10,039 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T12:19:33', tmtdew=13.7, humidity=38.49, cloud=0.0, wind=17.01, temperature=11.9, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T10:19:24.614', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 12:20:10,040 [DEBUG][       Thread-254614][   transport.py][1871] : EOF in transport thread
2025-06-13 12:20:10,124 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 12:20:10,138 [DEBUG][       Thread-254618][   transport.py][1871] : starting thread (client mode): 0x863ee770
2025-06-13 12:20:10,138 [DEBUG][       Thread-254618][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 12:20:10,157 [DEBUG][       Thread-254618][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 12:20:10,157 [ INFO][       Thread-254618][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 12:20:10,169 [DEBUG][       Thread-254618][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 12:20:10,169 [DEBUG][       Thread-254618][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 12:20:10,169 [DEBUG][       Thread-254618][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 12:20:10,169 [DEBUG][       Thread-254618][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:20:10,169 [DEBUG][       Thread-254618][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:20:10,169 [DEBUG][       Thread-254618][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:20:10,170 [DEBUG][       Thread-254618][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:20:10,170 [DEBUG][       Thread-254618][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 12:20:10,170 [DEBUG][       Thread-254618][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 12:20:10,170 [DEBUG][       Thread-254618][   transport.py][1871] : client lang: <none>
2025-06-13 12:20:10,170 [DEBUG][       Thread-254618][   transport.py][1871] : server lang: <none>
2025-06-13 12:20:10,170 [DEBUG][       Thread-254618][   transport.py][1871] : kex follows: False
2025-06-13 12:20:10,170 [DEBUG][       Thread-254618][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 12:20:10,170 [DEBUG][       Thread-254618][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 12:20:10,170 [DEBUG][       Thread-254618][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 12:20:10,170 [DEBUG][       Thread-254618][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 12:20:10,170 [DEBUG][       Thread-254618][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 12:20:10,170 [DEBUG][       Thread-254618][   transport.py][1871] : Compression: none
2025-06-13 12:20:10,170 [DEBUG][       Thread-254618][   transport.py][1871] : === End of kex handshake ===
2025-06-13 12:20:10,236 [DEBUG][       Thread-254618][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 12:20:10,237 [DEBUG][       Thread-254618][   transport.py][1871] : Switch to new keys ...
2025-06-13 12:20:10,237 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 12:20:10,238 [DEBUG][       Thread-254618][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 12:20:10,239 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 12:20:10,312 [DEBUG][       Thread-254618][   transport.py][1871] : userauth is OK
2025-06-13 12:20:10,313 [DEBUG][       Thread-254618][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 12:20:10,313 [DEBUG][       Thread-254618][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 12:20:10,313 [DEBUG][       Thread-254618][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 12:20:10,313 [DEBUG][       Thread-254618][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 12:20:10,336 [ INFO][       Thread-254618][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 12:20:10,336 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 12:20:10,337 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 12:20:11,728 [DEBUG][       Thread-254618][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 12:20:11,728 [DEBUG][       Thread-254618][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 12:20:11,776 [DEBUG][       Thread-254618][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 12:20:11,776 [DEBUG][       Thread-254618][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 12:20:11,786 [DEBUG][       Thread-254618][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 12:20:11,795 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 12:20:11,795 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 12:20:11,804 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 12:20:11,814 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 12:20:11,814 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 12:20:11,814 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 12:20:11,823 [DEBUG][       Thread-254618][   transport.py][1871] : EOF in transport thread
2025-06-13 12:20:11,867 [DEBUG][Thread-254620 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:20:15,779 [DEBUG][Thread-254621 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:20:18,315 [DEBUG][Thread-254622 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:20:19,391 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:20:19,392 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:20:21,825 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 12:20:21,825 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 12:20:21,825 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 12:20:21,827 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 12:20:22,284 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 12, 20, 5), 13.62, 38.73, 0.0, 16.27, 11.9, 0, 0, 0, 2, 0, 0),)
2025-06-13 12:20:22,284 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 12:20:05
2025-06-13 12:20:22,366 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 12:20:22,370 [DEBUG][       Thread-254623][   transport.py][1871] : starting thread (client mode): 0x863a5b40
2025-06-13 12:20:22,370 [DEBUG][       Thread-254623][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 12:20:22,390 [DEBUG][       Thread-254623][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 12:20:22,390 [ INFO][       Thread-254623][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 12:20:22,393 [DEBUG][       Thread-254623][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 12:20:22,393 [DEBUG][       Thread-254623][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 12:20:22,394 [DEBUG][       Thread-254623][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 12:20:22,394 [DEBUG][       Thread-254623][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:20:22,394 [DEBUG][       Thread-254623][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:20:22,394 [DEBUG][       Thread-254623][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:20:22,394 [DEBUG][       Thread-254623][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:20:22,394 [DEBUG][       Thread-254623][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 12:20:22,394 [DEBUG][       Thread-254623][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 12:20:22,394 [DEBUG][       Thread-254623][   transport.py][1871] : client lang: <none>
2025-06-13 12:20:22,394 [DEBUG][       Thread-254623][   transport.py][1871] : server lang: <none>
2025-06-13 12:20:22,394 [DEBUG][       Thread-254623][   transport.py][1871] : kex follows: False
2025-06-13 12:20:22,394 [DEBUG][       Thread-254623][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 12:20:22,394 [DEBUG][       Thread-254623][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 12:20:22,394 [DEBUG][       Thread-254623][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 12:20:22,394 [DEBUG][       Thread-254623][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 12:20:22,394 [DEBUG][       Thread-254623][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 12:20:22,394 [DEBUG][       Thread-254623][   transport.py][1871] : Compression: none
2025-06-13 12:20:22,394 [DEBUG][       Thread-254623][   transport.py][1871] : === End of kex handshake ===
2025-06-13 12:20:22,411 [DEBUG][       Thread-254623][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 12:20:22,411 [DEBUG][       Thread-254623][   transport.py][1871] : Switch to new keys ...
2025-06-13 12:20:22,412 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 12:20:22,412 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 12:20:22,413 [DEBUG][       Thread-254623][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 12:20:22,414 [DEBUG][       Thread-254623][   transport.py][1871] : userauth is OK
2025-06-13 12:20:22,427 [ INFO][       Thread-254623][   transport.py][1871] : Authentication (password) successful!
2025-06-13 12:20:22,428 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 12:20:23,018 [DEBUG][       Thread-254623][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 12:20:23,019 [DEBUG][       Thread-254623][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 12:20:23,061 [DEBUG][       Thread-254623][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 12:20:23,061 [DEBUG][       Thread-254623][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 12:20:23,065 [DEBUG][       Thread-254623][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 12:20:23,075 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 12:20:23,075 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 12:20:23,077 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 12:20:23,079 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 12:20:23,085 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 12:20:23,087 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 12:20:23,087 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 12:20:23,088 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 12:20:23,088 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.430146 -999.00  +11.90  19.36     43   -0.10 1 1 1 1 1   888    0 13.02 52.49 ----- 20.5 19.4 50.8 23.4 16.3 -28.1 14.9 -30.1 14.7 -27.8 16.1 -26.7
2025-06-13 12:20:23,088 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 12:20:23,088 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 12:20:23,088 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.430146
2025-06-13 12:20:23,089 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 12:20:23,089 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 12:20:23,090 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 12:20:23,090 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 12:20:23,090 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 12:20:23,090 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T12:20:05', tmtdew=13.62, humidity=38.73, cloud=0.0, wind=16.27, temperature=11.9, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T10:19:24.614', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 12:20:23,091 [DEBUG][       Thread-254623][   transport.py][1871] : EOF in transport thread
2025-06-13 12:20:23,176 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 12:20:23,185 [DEBUG][       Thread-254626][   transport.py][1871] : starting thread (client mode): 0x863a4760
2025-06-13 12:20:23,185 [DEBUG][       Thread-254626][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 12:20:23,201 [DEBUG][       Thread-254626][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 12:20:23,201 [ INFO][       Thread-254626][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 12:20:23,210 [DEBUG][       Thread-254626][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 12:20:23,210 [DEBUG][       Thread-254626][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 12:20:23,210 [DEBUG][       Thread-254626][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 12:20:23,210 [DEBUG][       Thread-254626][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:20:23,210 [DEBUG][       Thread-254626][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:20:23,211 [DEBUG][       Thread-254626][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:20:23,211 [DEBUG][       Thread-254626][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:20:23,211 [DEBUG][       Thread-254626][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 12:20:23,211 [DEBUG][       Thread-254626][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 12:20:23,211 [DEBUG][       Thread-254626][   transport.py][1871] : client lang: <none>
2025-06-13 12:20:23,211 [DEBUG][       Thread-254626][   transport.py][1871] : server lang: <none>
2025-06-13 12:20:23,211 [DEBUG][       Thread-254626][   transport.py][1871] : kex follows: False
2025-06-13 12:20:23,211 [DEBUG][       Thread-254626][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 12:20:23,211 [DEBUG][       Thread-254626][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 12:20:23,211 [DEBUG][       Thread-254626][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 12:20:23,211 [DEBUG][       Thread-254626][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 12:20:23,211 [DEBUG][       Thread-254626][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 12:20:23,211 [DEBUG][       Thread-254626][   transport.py][1871] : Compression: none
2025-06-13 12:20:23,211 [DEBUG][       Thread-254626][   transport.py][1871] : === End of kex handshake ===
2025-06-13 12:20:23,270 [DEBUG][       Thread-254626][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 12:20:23,270 [DEBUG][       Thread-254626][   transport.py][1871] : Switch to new keys ...
2025-06-13 12:20:23,271 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 12:20:23,271 [DEBUG][       Thread-254626][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 12:20:23,272 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 12:20:23,334 [DEBUG][       Thread-254626][   transport.py][1871] : userauth is OK
2025-06-13 12:20:23,334 [DEBUG][       Thread-254626][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 12:20:23,335 [DEBUG][       Thread-254626][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 12:20:23,335 [DEBUG][       Thread-254626][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 12:20:23,335 [DEBUG][       Thread-254626][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 12:20:23,354 [ INFO][       Thread-254626][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 12:20:23,354 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 12:20:23,355 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 12:20:24,369 [DEBUG][       Thread-254626][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 12:20:24,370 [DEBUG][       Thread-254626][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 12:20:24,423 [DEBUG][       Thread-254626][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 12:20:24,423 [DEBUG][       Thread-254626][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 12:20:24,437 [DEBUG][       Thread-254626][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 12:20:24,449 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 12:20:24,449 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 12:20:24,459 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 12:20:24,471 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 12:20:24,471 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 12:20:24,471 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 12:20:24,480 [DEBUG][       Thread-254626][   transport.py][1871] : EOF in transport thread
2025-06-13 12:20:24,799 [DEBUG][Thread-254628 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:20:33,844 [DEBUG][Thread-254629 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:20:34,482 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 12:20:34,482 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 12:20:34,482 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 12:20:34,485 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 12:20:34,951 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 12, 20, 5), 13.62, 38.73, 0.0, 16.27, 11.9, 0, 0, 0, 2, 0, 0),)
2025-06-13 12:20:34,951 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 12:20:05
2025-06-13 12:20:35,033 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 12:20:35,037 [DEBUG][       Thread-254630][   transport.py][1871] : starting thread (client mode): 0x863bf4f0
2025-06-13 12:20:35,038 [DEBUG][       Thread-254630][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 12:20:35,057 [DEBUG][       Thread-254630][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 12:20:35,057 [ INFO][       Thread-254630][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 12:20:35,061 [DEBUG][       Thread-254630][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 12:20:35,061 [DEBUG][       Thread-254630][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 12:20:35,061 [DEBUG][       Thread-254630][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 12:20:35,061 [DEBUG][       Thread-254630][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:20:35,061 [DEBUG][       Thread-254630][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:20:35,061 [DEBUG][       Thread-254630][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:20:35,061 [DEBUG][       Thread-254630][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:20:35,061 [DEBUG][       Thread-254630][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 12:20:35,061 [DEBUG][       Thread-254630][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 12:20:35,061 [DEBUG][       Thread-254630][   transport.py][1871] : client lang: <none>
2025-06-13 12:20:35,061 [DEBUG][       Thread-254630][   transport.py][1871] : server lang: <none>
2025-06-13 12:20:35,061 [DEBUG][       Thread-254630][   transport.py][1871] : kex follows: False
2025-06-13 12:20:35,061 [DEBUG][       Thread-254630][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 12:20:35,061 [DEBUG][       Thread-254630][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 12:20:35,061 [DEBUG][       Thread-254630][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 12:20:35,061 [DEBUG][       Thread-254630][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 12:20:35,061 [DEBUG][       Thread-254630][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 12:20:35,061 [DEBUG][       Thread-254630][   transport.py][1871] : Compression: none
2025-06-13 12:20:35,062 [DEBUG][       Thread-254630][   transport.py][1871] : === End of kex handshake ===
2025-06-13 12:20:35,077 [DEBUG][       Thread-254630][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 12:20:35,078 [DEBUG][       Thread-254630][   transport.py][1871] : Switch to new keys ...
2025-06-13 12:20:35,078 [DEBUG][       Thread-254630][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 12:20:35,078 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 12:20:35,078 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 12:20:35,119 [DEBUG][       Thread-254630][   transport.py][1871] : userauth is OK
2025-06-13 12:20:35,144 [ INFO][       Thread-254630][   transport.py][1871] : Authentication (password) successful!
2025-06-13 12:20:35,145 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 12:20:35,770 [DEBUG][       Thread-254630][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 12:20:35,770 [DEBUG][       Thread-254630][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 12:20:35,813 [DEBUG][       Thread-254630][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 12:20:35,813 [DEBUG][       Thread-254630][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 12:20:35,816 [DEBUG][       Thread-254630][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 12:20:35,828 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 12:20:35,829 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 12:20:35,831 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 12:20:35,833 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 12:20:35,839 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 12:20:35,841 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 12:20:35,842 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 12:20:35,842 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 12:20:35,843 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.430494 -999.00  +11.90  20.74     41   -0.80 1 1 1 1 1   888    0 13.21 57.83 ----- 22.9 20.7 40.4 25.6 16.2 -29.2 15.0 -30.0 14.7 -28.7 16.1 -27.0
2025-06-13 12:20:35,843 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 12:20:35,843 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 12:20:35,843 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.430494
2025-06-13 12:20:35,843 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 12:20:35,844 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 12:20:35,844 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 12:20:35,844 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 12:20:35,844 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 12:20:35,844 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T12:20:05', tmtdew=13.62, humidity=38.73, cloud=0.0, wind=16.27, temperature=11.9, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T10:19:54.682', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 12:20:35,845 [DEBUG][       Thread-254630][   transport.py][1871] : EOF in transport thread
2025-06-13 12:20:35,928 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 12:20:35,939 [DEBUG][       Thread-254633][   transport.py][1871] : starting thread (client mode): 0x867b5a20
2025-06-13 12:20:35,939 [DEBUG][       Thread-254633][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 12:20:35,954 [DEBUG][       Thread-254633][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 12:20:35,954 [ INFO][       Thread-254633][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 12:20:35,961 [DEBUG][       Thread-254633][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 12:20:35,962 [DEBUG][       Thread-254633][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 12:20:35,962 [DEBUG][       Thread-254633][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 12:20:35,962 [DEBUG][       Thread-254633][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:20:35,962 [DEBUG][       Thread-254633][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:20:35,962 [DEBUG][       Thread-254633][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:20:35,962 [DEBUG][       Thread-254633][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:20:35,962 [DEBUG][       Thread-254633][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 12:20:35,962 [DEBUG][       Thread-254633][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 12:20:35,962 [DEBUG][       Thread-254633][   transport.py][1871] : client lang: <none>
2025-06-13 12:20:35,962 [DEBUG][       Thread-254633][   transport.py][1871] : server lang: <none>
2025-06-13 12:20:35,962 [DEBUG][       Thread-254633][   transport.py][1871] : kex follows: False
2025-06-13 12:20:35,962 [DEBUG][       Thread-254633][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 12:20:35,962 [DEBUG][       Thread-254633][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 12:20:35,962 [DEBUG][       Thread-254633][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 12:20:35,962 [DEBUG][       Thread-254633][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 12:20:35,962 [DEBUG][       Thread-254633][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 12:20:35,962 [DEBUG][       Thread-254633][   transport.py][1871] : Compression: none
2025-06-13 12:20:35,962 [DEBUG][       Thread-254633][   transport.py][1871] : === End of kex handshake ===
2025-06-13 12:20:36,021 [DEBUG][       Thread-254633][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 12:20:36,022 [DEBUG][       Thread-254633][   transport.py][1871] : Switch to new keys ...
2025-06-13 12:20:36,022 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 12:20:36,023 [DEBUG][       Thread-254633][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 12:20:36,023 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 12:20:36,080 [DEBUG][       Thread-254633][   transport.py][1871] : userauth is OK
2025-06-13 12:20:36,080 [DEBUG][       Thread-254633][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 12:20:36,080 [DEBUG][       Thread-254633][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 12:20:36,080 [DEBUG][       Thread-254633][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 12:20:36,080 [DEBUG][       Thread-254633][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 12:20:36,095 [ INFO][       Thread-254633][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 12:20:36,095 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 12:20:36,095 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 12:20:37,104 [DEBUG][       Thread-254633][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 12:20:37,105 [DEBUG][       Thread-254633][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 12:20:37,156 [DEBUG][       Thread-254633][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 12:20:37,156 [DEBUG][       Thread-254633][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 12:20:37,174 [DEBUG][       Thread-254633][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 12:20:37,187 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 12:20:37,188 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 12:20:37,200 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 12:20:37,217 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 12:20:37,217 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 12:20:37,218 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 12:20:37,231 [DEBUG][       Thread-254633][   transport.py][1871] : EOF in transport thread
2025-06-13 12:20:42,493 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:20:42,494 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:20:42,864 [DEBUG][Thread-254635 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:20:47,228 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 12:20:47,228 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 12:20:47,229 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 12:20:47,231 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 12:20:47,700 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 12, 20, 37), 13.78, 38.24, 0.0, 15.49, 11.94, 0, 0, 0, 2, 0, 0),)
2025-06-13 12:20:47,700 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 12:20:37
2025-06-13 12:20:47,782 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 12:20:47,786 [DEBUG][       Thread-254636][   transport.py][1871] : starting thread (client mode): 0x863ef7f0
2025-06-13 12:20:47,786 [DEBUG][       Thread-254636][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 12:20:47,808 [DEBUG][       Thread-254636][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 12:20:47,808 [ INFO][       Thread-254636][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 12:20:47,811 [DEBUG][       Thread-254636][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 12:20:47,811 [DEBUG][       Thread-254636][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 12:20:47,811 [DEBUG][       Thread-254636][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 12:20:47,812 [DEBUG][       Thread-254636][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:20:47,812 [DEBUG][       Thread-254636][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:20:47,812 [DEBUG][       Thread-254636][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:20:47,812 [DEBUG][       Thread-254636][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:20:47,812 [DEBUG][       Thread-254636][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 12:20:47,812 [DEBUG][       Thread-254636][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 12:20:47,812 [DEBUG][       Thread-254636][   transport.py][1871] : client lang: <none>
2025-06-13 12:20:47,812 [DEBUG][       Thread-254636][   transport.py][1871] : server lang: <none>
2025-06-13 12:20:47,812 [DEBUG][       Thread-254636][   transport.py][1871] : kex follows: False
2025-06-13 12:20:47,812 [DEBUG][       Thread-254636][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 12:20:47,812 [DEBUG][       Thread-254636][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 12:20:47,812 [DEBUG][       Thread-254636][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 12:20:47,812 [DEBUG][       Thread-254636][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 12:20:47,812 [DEBUG][       Thread-254636][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 12:20:47,812 [DEBUG][       Thread-254636][   transport.py][1871] : Compression: none
2025-06-13 12:20:47,812 [DEBUG][       Thread-254636][   transport.py][1871] : === End of kex handshake ===
2025-06-13 12:20:47,828 [DEBUG][       Thread-254636][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 12:20:47,829 [DEBUG][       Thread-254636][   transport.py][1871] : Switch to new keys ...
2025-06-13 12:20:47,829 [DEBUG][       Thread-254636][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 12:20:47,829 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 12:20:47,829 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 12:20:47,830 [DEBUG][       Thread-254636][   transport.py][1871] : userauth is OK
2025-06-13 12:20:47,854 [ INFO][       Thread-254636][   transport.py][1871] : Authentication (password) successful!
2025-06-13 12:20:47,855 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 12:20:48,504 [DEBUG][       Thread-254636][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 12:20:48,504 [DEBUG][       Thread-254636][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 12:20:48,549 [DEBUG][       Thread-254636][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 12:20:48,549 [DEBUG][       Thread-254636][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 12:20:48,551 [DEBUG][       Thread-254636][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 12:20:48,563 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 12:20:48,563 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 12:20:48,565 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 12:20:48,566 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 12:20:48,569 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 12:20:48,570 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 12:20:48,570 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 12:20:48,570 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 12:20:48,570 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.430494 -999.00  +11.90  20.74     41   -0.80 1 1 1 1 1   888    0 13.21 57.83 ----- 22.9 20.7 40.4 25.6 16.2 -29.2 15.0 -30.0 14.7 -28.7 16.1 -27.0
2025-06-13 12:20:48,570 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 12:20:48,570 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 12:20:48,570 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.430494
2025-06-13 12:20:48,570 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 12:20:48,570 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 12:20:48,570 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 12:20:48,570 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 12:20:48,570 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 12:20:48,570 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T12:20:37', tmtdew=13.78, humidity=38.24, cloud=0.0, wind=15.49, temperature=11.94, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T10:19:54.682', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 12:20:48,571 [DEBUG][       Thread-254636][   transport.py][1871] : EOF in transport thread
2025-06-13 12:20:48,642 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 12:20:48,653 [DEBUG][       Thread-254639][   transport.py][1871] : starting thread (client mode): 0x863a4760
2025-06-13 12:20:48,653 [DEBUG][       Thread-254639][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 12:20:48,669 [DEBUG][       Thread-254639][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 12:20:48,670 [ INFO][       Thread-254639][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 12:20:48,681 [DEBUG][       Thread-254639][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 12:20:48,681 [DEBUG][       Thread-254639][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 12:20:48,681 [DEBUG][       Thread-254639][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 12:20:48,681 [DEBUG][       Thread-254639][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:20:48,681 [DEBUG][       Thread-254639][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:20:48,681 [DEBUG][       Thread-254639][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:20:48,681 [DEBUG][       Thread-254639][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:20:48,681 [DEBUG][       Thread-254639][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 12:20:48,681 [DEBUG][       Thread-254639][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 12:20:48,681 [DEBUG][       Thread-254639][   transport.py][1871] : client lang: <none>
2025-06-13 12:20:48,682 [DEBUG][       Thread-254639][   transport.py][1871] : server lang: <none>
2025-06-13 12:20:48,682 [DEBUG][       Thread-254639][   transport.py][1871] : kex follows: False
2025-06-13 12:20:48,682 [DEBUG][       Thread-254639][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 12:20:48,682 [DEBUG][       Thread-254639][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 12:20:48,682 [DEBUG][       Thread-254639][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 12:20:48,682 [DEBUG][       Thread-254639][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 12:20:48,682 [DEBUG][       Thread-254639][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 12:20:48,682 [DEBUG][       Thread-254639][   transport.py][1871] : Compression: none
2025-06-13 12:20:48,682 [DEBUG][       Thread-254639][   transport.py][1871] : === End of kex handshake ===
2025-06-13 12:20:48,741 [DEBUG][       Thread-254639][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 12:20:48,742 [DEBUG][       Thread-254639][   transport.py][1871] : Switch to new keys ...
2025-06-13 12:20:48,742 [DEBUG][       Thread-254639][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 12:20:48,743 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 12:20:48,743 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 12:20:48,800 [DEBUG][       Thread-254639][   transport.py][1871] : userauth is OK
2025-06-13 12:20:48,800 [DEBUG][       Thread-254639][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 12:20:48,801 [DEBUG][       Thread-254639][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 12:20:48,801 [DEBUG][       Thread-254639][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 12:20:48,801 [DEBUG][       Thread-254639][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 12:20:48,820 [ INFO][       Thread-254639][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 12:20:48,820 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 12:20:48,821 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 12:20:49,882 [DEBUG][       Thread-254639][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 12:20:49,882 [DEBUG][       Thread-254639][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 12:20:49,934 [DEBUG][       Thread-254639][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 12:20:49,934 [DEBUG][       Thread-254639][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 12:20:49,944 [DEBUG][       Thread-254639][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 12:20:49,955 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 12:20:49,956 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 12:20:49,966 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 12:20:49,976 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 12:20:49,977 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 12:20:49,977 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 12:20:49,985 [DEBUG][       Thread-254639][   transport.py][1871] : EOF in transport thread
2025-06-13 12:20:51,883 [DEBUG][Thread-254641 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:20:59,981 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 12:20:59,981 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 12:20:59,981 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 12:20:59,984 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 12:21:00,450 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 12, 20, 37), 13.78, 38.24, 0.0, 15.49, 11.94, 0, 0, 0, 2, 0, 0),)
2025-06-13 12:21:00,450 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 12:20:37
2025-06-13 12:21:00,531 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 12:21:00,535 [DEBUG][       Thread-254642][   transport.py][1871] : starting thread (client mode): 0x863bfbb0
2025-06-13 12:21:00,535 [DEBUG][       Thread-254642][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 12:21:00,550 [DEBUG][       Thread-254642][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 12:21:00,550 [ INFO][       Thread-254642][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 12:21:00,553 [DEBUG][       Thread-254642][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 12:21:00,553 [DEBUG][       Thread-254642][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 12:21:00,553 [DEBUG][       Thread-254642][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 12:21:00,553 [DEBUG][       Thread-254642][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:21:00,553 [DEBUG][       Thread-254642][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:21:00,553 [DEBUG][       Thread-254642][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:21:00,553 [DEBUG][       Thread-254642][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:21:00,553 [DEBUG][       Thread-254642][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 12:21:00,553 [DEBUG][       Thread-254642][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 12:21:00,553 [DEBUG][       Thread-254642][   transport.py][1871] : client lang: <none>
2025-06-13 12:21:00,553 [DEBUG][       Thread-254642][   transport.py][1871] : server lang: <none>
2025-06-13 12:21:00,553 [DEBUG][       Thread-254642][   transport.py][1871] : kex follows: False
2025-06-13 12:21:00,553 [DEBUG][       Thread-254642][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 12:21:00,553 [DEBUG][       Thread-254642][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 12:21:00,553 [DEBUG][       Thread-254642][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 12:21:00,553 [DEBUG][       Thread-254642][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 12:21:00,553 [DEBUG][       Thread-254642][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 12:21:00,553 [DEBUG][       Thread-254642][   transport.py][1871] : Compression: none
2025-06-13 12:21:00,553 [DEBUG][       Thread-254642][   transport.py][1871] : === End of kex handshake ===
2025-06-13 12:21:00,560 [DEBUG][       Thread-254642][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 12:21:00,561 [DEBUG][       Thread-254642][   transport.py][1871] : Switch to new keys ...
2025-06-13 12:21:00,561 [DEBUG][       Thread-254642][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 12:21:00,561 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 12:21:00,561 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 12:21:00,562 [DEBUG][       Thread-254642][   transport.py][1871] : userauth is OK
2025-06-13 12:21:00,575 [ INFO][       Thread-254642][   transport.py][1871] : Authentication (password) successful!
2025-06-13 12:21:00,575 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 12:21:00,909 [DEBUG][Thread-254644 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:21:01,169 [DEBUG][       Thread-254642][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 12:21:01,169 [DEBUG][       Thread-254642][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 12:21:01,213 [DEBUG][       Thread-254642][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 12:21:01,213 [DEBUG][       Thread-254642][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 12:21:01,217 [DEBUG][       Thread-254642][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 12:21:01,230 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 12:21:01,230 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 12:21:01,231 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 12:21:01,234 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 12:21:01,239 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 12:21:01,240 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 12:21:01,241 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 12:21:01,241 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 12:21:01,241 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.430841 -999.00  +11.70  21.63     41   -0.70 1 1 1 1 1   888    0 13.37 61.55 ----- 21.6 21.6 44.0 25.0 16.2 -28.8 14.8 -30.7 14.7 -29.6 16.0 -26.9
2025-06-13 12:21:01,242 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 12:21:01,242 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 12:21:01,242 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.430841
2025-06-13 12:21:01,242 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 12:21:01,243 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 12:21:01,243 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 12:21:01,243 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 12:21:01,243 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 12:21:01,243 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T12:20:37', tmtdew=13.78, humidity=38.24, cloud=0.0, wind=15.49, temperature=11.94, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T10:20:24.662', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 12:21:01,243 [DEBUG][       Thread-254642][   transport.py][1871] : EOF in transport thread
2025-06-13 12:21:01,323 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 12:21:01,337 [DEBUG][       Thread-254646][   transport.py][1871] : starting thread (client mode): 0x868c8070
2025-06-13 12:21:01,337 [DEBUG][       Thread-254646][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 12:21:01,355 [DEBUG][       Thread-254646][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 12:21:01,355 [ INFO][       Thread-254646][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 12:21:01,366 [DEBUG][       Thread-254646][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 12:21:01,366 [DEBUG][       Thread-254646][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 12:21:01,366 [DEBUG][       Thread-254646][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 12:21:01,367 [DEBUG][       Thread-254646][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:21:01,367 [DEBUG][       Thread-254646][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:21:01,367 [DEBUG][       Thread-254646][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:21:01,367 [DEBUG][       Thread-254646][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:21:01,367 [DEBUG][       Thread-254646][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 12:21:01,367 [DEBUG][       Thread-254646][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 12:21:01,367 [DEBUG][       Thread-254646][   transport.py][1871] : client lang: <none>
2025-06-13 12:21:01,367 [DEBUG][       Thread-254646][   transport.py][1871] : server lang: <none>
2025-06-13 12:21:01,367 [DEBUG][       Thread-254646][   transport.py][1871] : kex follows: False
2025-06-13 12:21:01,367 [DEBUG][       Thread-254646][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 12:21:01,367 [DEBUG][       Thread-254646][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 12:21:01,367 [DEBUG][       Thread-254646][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 12:21:01,367 [DEBUG][       Thread-254646][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 12:21:01,367 [DEBUG][       Thread-254646][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 12:21:01,367 [DEBUG][       Thread-254646][   transport.py][1871] : Compression: none
2025-06-13 12:21:01,367 [DEBUG][       Thread-254646][   transport.py][1871] : === End of kex handshake ===
2025-06-13 12:21:01,427 [DEBUG][       Thread-254646][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 12:21:01,427 [DEBUG][       Thread-254646][   transport.py][1871] : Switch to new keys ...
2025-06-13 12:21:01,428 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 12:21:01,429 [DEBUG][       Thread-254646][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 12:21:01,429 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 12:21:01,485 [DEBUG][       Thread-254646][   transport.py][1871] : userauth is OK
2025-06-13 12:21:01,486 [DEBUG][       Thread-254646][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 12:21:01,486 [DEBUG][       Thread-254646][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 12:21:01,486 [DEBUG][       Thread-254646][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 12:21:01,486 [DEBUG][       Thread-254646][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 12:21:01,504 [ INFO][       Thread-254646][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 12:21:01,504 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 12:21:01,505 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 12:21:02,538 [DEBUG][       Thread-254646][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 12:21:02,538 [DEBUG][       Thread-254646][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 12:21:02,588 [DEBUG][       Thread-254646][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 12:21:02,588 [DEBUG][       Thread-254646][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 12:21:02,598 [DEBUG][       Thread-254646][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 12:21:02,608 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 12:21:02,609 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 12:21:02,620 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 12:21:02,631 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 12:21:02,631 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 12:21:02,631 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 12:21:02,641 [DEBUG][       Thread-254646][   transport.py][1871] : EOF in transport thread
2025-06-13 12:21:09,932 [DEBUG][Thread-254648 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:21:11,919 [DEBUG][Thread-254649 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:21:12,642 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 12:21:12,642 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 12:21:12,642 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 12:21:12,645 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 12:21:13,108 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 12, 21, 9), 13.71, 38.47, 0.0, 14.03, 12.04, 0, 0, 0, 2, 0, 0),)
2025-06-13 12:21:13,108 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 12:21:09
2025-06-13 12:21:13,190 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 12:21:13,196 [DEBUG][       Thread-254650][   transport.py][1871] : starting thread (client mode): 0x863efb80
2025-06-13 12:21:13,196 [DEBUG][       Thread-254650][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 12:21:13,216 [DEBUG][       Thread-254650][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 12:21:13,216 [ INFO][       Thread-254650][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 12:21:13,217 [DEBUG][       Thread-254650][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 12:21:13,217 [DEBUG][       Thread-254650][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 12:21:13,217 [DEBUG][       Thread-254650][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 12:21:13,218 [DEBUG][       Thread-254650][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:21:13,218 [DEBUG][       Thread-254650][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:21:13,218 [DEBUG][       Thread-254650][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:21:13,218 [DEBUG][       Thread-254650][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:21:13,218 [DEBUG][       Thread-254650][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 12:21:13,218 [DEBUG][       Thread-254650][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 12:21:13,218 [DEBUG][       Thread-254650][   transport.py][1871] : client lang: <none>
2025-06-13 12:21:13,218 [DEBUG][       Thread-254650][   transport.py][1871] : server lang: <none>
2025-06-13 12:21:13,218 [DEBUG][       Thread-254650][   transport.py][1871] : kex follows: False
2025-06-13 12:21:13,218 [DEBUG][       Thread-254650][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 12:21:13,218 [DEBUG][       Thread-254650][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 12:21:13,218 [DEBUG][       Thread-254650][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 12:21:13,218 [DEBUG][       Thread-254650][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 12:21:13,218 [DEBUG][       Thread-254650][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 12:21:13,218 [DEBUG][       Thread-254650][   transport.py][1871] : Compression: none
2025-06-13 12:21:13,218 [DEBUG][       Thread-254650][   transport.py][1871] : === End of kex handshake ===
2025-06-13 12:21:13,227 [DEBUG][       Thread-254650][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 12:21:13,227 [DEBUG][       Thread-254650][   transport.py][1871] : Switch to new keys ...
2025-06-13 12:21:13,228 [DEBUG][       Thread-254650][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 12:21:13,228 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 12:21:13,228 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 12:21:13,229 [DEBUG][       Thread-254650][   transport.py][1871] : userauth is OK
2025-06-13 12:21:13,254 [ INFO][       Thread-254650][   transport.py][1871] : Authentication (password) successful!
2025-06-13 12:21:13,255 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 12:21:13,816 [DEBUG][       Thread-254650][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 12:21:13,816 [DEBUG][       Thread-254650][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 12:21:13,861 [DEBUG][       Thread-254650][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 12:21:13,861 [DEBUG][       Thread-254650][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 12:21:13,865 [DEBUG][       Thread-254650][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 12:21:13,877 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 12:21:13,877 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 12:21:13,879 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 12:21:13,881 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 12:21:13,886 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 12:21:13,888 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 12:21:13,889 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 12:21:13,889 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 12:21:13,889 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.430841 -999.00  +11.70  21.63     41   -0.70 1 1 1 1 1   888    0 13.37 61.55 ----- 21.6 21.6 44.0 25.0 16.2 -28.8 14.8 -30.7 14.7 -29.6 16.0 -26.9
2025-06-13 12:21:13,889 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 12:21:13,890 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 12:21:13,890 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.430841
2025-06-13 12:21:13,890 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 12:21:13,891 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 12:21:13,891 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 12:21:13,891 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 12:21:13,891 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 12:21:13,891 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T12:21:09', tmtdew=13.71, humidity=38.47, cloud=0.0, wind=14.03, temperature=12.04, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T10:20:24.662', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 12:21:13,891 [DEBUG][       Thread-254650][   transport.py][1871] : EOF in transport thread
2025-06-13 12:21:13,975 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 12:21:13,987 [DEBUG][       Thread-254653][   transport.py][1871] : starting thread (client mode): 0x868c8520
2025-06-13 12:21:13,987 [DEBUG][       Thread-254653][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 12:21:14,004 [DEBUG][       Thread-254653][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 12:21:14,004 [ INFO][       Thread-254653][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 12:21:14,012 [DEBUG][       Thread-254653][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 12:21:14,012 [DEBUG][       Thread-254653][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 12:21:14,012 [DEBUG][       Thread-254653][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 12:21:14,012 [DEBUG][       Thread-254653][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:21:14,013 [DEBUG][       Thread-254653][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:21:14,013 [DEBUG][       Thread-254653][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:21:14,013 [DEBUG][       Thread-254653][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:21:14,013 [DEBUG][       Thread-254653][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 12:21:14,013 [DEBUG][       Thread-254653][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 12:21:14,013 [DEBUG][       Thread-254653][   transport.py][1871] : client lang: <none>
2025-06-13 12:21:14,013 [DEBUG][       Thread-254653][   transport.py][1871] : server lang: <none>
2025-06-13 12:21:14,013 [DEBUG][       Thread-254653][   transport.py][1871] : kex follows: False
2025-06-13 12:21:14,013 [DEBUG][       Thread-254653][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 12:21:14,013 [DEBUG][       Thread-254653][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 12:21:14,013 [DEBUG][       Thread-254653][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 12:21:14,013 [DEBUG][       Thread-254653][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 12:21:14,013 [DEBUG][       Thread-254653][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 12:21:14,013 [DEBUG][       Thread-254653][   transport.py][1871] : Compression: none
2025-06-13 12:21:14,013 [DEBUG][       Thread-254653][   transport.py][1871] : === End of kex handshake ===
2025-06-13 12:21:14,076 [DEBUG][       Thread-254653][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 12:21:14,076 [DEBUG][       Thread-254653][   transport.py][1871] : Switch to new keys ...
2025-06-13 12:21:14,077 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 12:21:14,078 [DEBUG][       Thread-254653][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 12:21:14,078 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 12:21:14,136 [DEBUG][       Thread-254653][   transport.py][1871] : userauth is OK
2025-06-13 12:21:14,136 [DEBUG][       Thread-254653][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 12:21:14,137 [DEBUG][       Thread-254653][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 12:21:14,137 [DEBUG][       Thread-254653][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 12:21:14,137 [DEBUG][       Thread-254653][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 12:21:14,155 [ INFO][       Thread-254653][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 12:21:14,156 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 12:21:14,156 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 12:21:15,196 [DEBUG][       Thread-254653][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 12:21:15,196 [DEBUG][       Thread-254653][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 12:21:15,245 [DEBUG][       Thread-254653][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 12:21:15,245 [DEBUG][       Thread-254653][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 12:21:15,256 [DEBUG][       Thread-254653][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 12:21:15,265 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 12:21:15,265 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 12:21:15,276 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 12:21:15,286 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 12:21:15,286 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 12:21:15,287 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 12:21:15,296 [DEBUG][       Thread-254653][   transport.py][1871] : EOF in transport thread
2025-06-13 12:21:18,951 [DEBUG][Thread-254655 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:21:19,459 [DEBUG][Thread-254656 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:21:20,536 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:21:20,536 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:21:25,296 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 12:21:25,296 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 12:21:25,296 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 12:21:25,299 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 12:21:25,755 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 12, 21, 9), 13.71, 38.47, 0.0, 14.03, 12.04, 0, 0, 0, 2, 0, 0),)
2025-06-13 12:21:25,755 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 12:21:09
2025-06-13 12:21:25,837 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 12:21:25,841 [DEBUG][       Thread-254657][   transport.py][1871] : starting thread (client mode): 0x86369e40
2025-06-13 12:21:25,841 [DEBUG][       Thread-254657][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 12:21:25,861 [DEBUG][       Thread-254657][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 12:21:25,861 [ INFO][       Thread-254657][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 12:21:25,865 [DEBUG][       Thread-254657][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 12:21:25,865 [DEBUG][       Thread-254657][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 12:21:25,865 [DEBUG][       Thread-254657][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 12:21:25,865 [DEBUG][       Thread-254657][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:21:25,865 [DEBUG][       Thread-254657][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:21:25,865 [DEBUG][       Thread-254657][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:21:25,865 [DEBUG][       Thread-254657][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:21:25,865 [DEBUG][       Thread-254657][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 12:21:25,865 [DEBUG][       Thread-254657][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 12:21:25,865 [DEBUG][       Thread-254657][   transport.py][1871] : client lang: <none>
2025-06-13 12:21:25,865 [DEBUG][       Thread-254657][   transport.py][1871] : server lang: <none>
2025-06-13 12:21:25,865 [DEBUG][       Thread-254657][   transport.py][1871] : kex follows: False
2025-06-13 12:21:25,865 [DEBUG][       Thread-254657][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 12:21:25,865 [DEBUG][       Thread-254657][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 12:21:25,865 [DEBUG][       Thread-254657][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 12:21:25,865 [DEBUG][       Thread-254657][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 12:21:25,865 [DEBUG][       Thread-254657][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 12:21:25,865 [DEBUG][       Thread-254657][   transport.py][1871] : Compression: none
2025-06-13 12:21:25,865 [DEBUG][       Thread-254657][   transport.py][1871] : === End of kex handshake ===
2025-06-13 12:21:25,879 [DEBUG][       Thread-254657][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 12:21:25,879 [DEBUG][       Thread-254657][   transport.py][1871] : Switch to new keys ...
2025-06-13 12:21:25,879 [DEBUG][       Thread-254657][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 12:21:25,879 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 12:21:25,879 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 12:21:25,880 [DEBUG][       Thread-254657][   transport.py][1871] : userauth is OK
2025-06-13 12:21:25,904 [ INFO][       Thread-254657][   transport.py][1871] : Authentication (password) successful!
2025-06-13 12:21:25,904 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 12:21:26,535 [DEBUG][       Thread-254657][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 12:21:26,535 [DEBUG][       Thread-254657][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 12:21:26,581 [DEBUG][       Thread-254657][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 12:21:26,581 [DEBUG][       Thread-254657][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 12:21:26,583 [DEBUG][       Thread-254657][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 12:21:26,595 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 12:21:26,596 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 12:21:26,597 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 12:21:26,599 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 12:21:26,604 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 12:21:26,607 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 12:21:26,607 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 12:21:26,608 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 12:21:26,608 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.430841 -999.00  +11.70  21.63     41   -0.70 1 1 1 1 1   888    0 13.37 61.55 ----- 21.6 21.6 44.0 25.0 16.2 -28.8 14.8 -30.7 14.7 -29.6 16.0 -26.9
2025-06-13 12:21:26,608 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 12:21:26,608 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 12:21:26,608 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.430841
2025-06-13 12:21:26,608 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 12:21:26,609 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 12:21:26,609 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 12:21:26,609 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 12:21:26,609 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 12:21:26,609 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T12:21:09', tmtdew=13.71, humidity=38.47, cloud=0.0, wind=14.03, temperature=12.04, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T10:20:24.662', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 12:21:26,609 [DEBUG][       Thread-254657][   transport.py][1871] : EOF in transport thread
2025-06-13 12:21:26,694 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 12:21:26,704 [DEBUG][       Thread-254660][   transport.py][1871] : starting thread (client mode): 0x863ee1a0
2025-06-13 12:21:26,704 [DEBUG][       Thread-254660][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 12:21:26,719 [DEBUG][       Thread-254660][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 12:21:26,720 [ INFO][       Thread-254660][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 12:21:26,727 [DEBUG][       Thread-254660][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 12:21:26,727 [DEBUG][       Thread-254660][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 12:21:26,727 [DEBUG][       Thread-254660][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 12:21:26,727 [DEBUG][       Thread-254660][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:21:26,727 [DEBUG][       Thread-254660][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:21:26,727 [DEBUG][       Thread-254660][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:21:26,728 [DEBUG][       Thread-254660][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:21:26,728 [DEBUG][       Thread-254660][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 12:21:26,728 [DEBUG][       Thread-254660][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 12:21:26,728 [DEBUG][       Thread-254660][   transport.py][1871] : client lang: <none>
2025-06-13 12:21:26,728 [DEBUG][       Thread-254660][   transport.py][1871] : server lang: <none>
2025-06-13 12:21:26,728 [DEBUG][       Thread-254660][   transport.py][1871] : kex follows: False
2025-06-13 12:21:26,728 [DEBUG][       Thread-254660][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 12:21:26,728 [DEBUG][       Thread-254660][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 12:21:26,728 [DEBUG][       Thread-254660][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 12:21:26,728 [DEBUG][       Thread-254660][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 12:21:26,728 [DEBUG][       Thread-254660][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 12:21:26,728 [DEBUG][       Thread-254660][   transport.py][1871] : Compression: none
2025-06-13 12:21:26,728 [DEBUG][       Thread-254660][   transport.py][1871] : === End of kex handshake ===
2025-06-13 12:21:26,787 [DEBUG][       Thread-254660][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 12:21:26,787 [DEBUG][       Thread-254660][   transport.py][1871] : Switch to new keys ...
2025-06-13 12:21:26,788 [DEBUG][       Thread-254660][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 12:21:26,788 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 12:21:26,788 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 12:21:26,844 [DEBUG][       Thread-254660][   transport.py][1871] : userauth is OK
2025-06-13 12:21:26,844 [DEBUG][       Thread-254660][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 12:21:26,844 [DEBUG][       Thread-254660][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 12:21:26,844 [DEBUG][       Thread-254660][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 12:21:26,844 [DEBUG][       Thread-254660][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 12:21:26,863 [ INFO][       Thread-254660][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 12:21:26,864 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 12:21:26,864 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 12:21:27,905 [DEBUG][       Thread-254660][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 12:21:27,905 [DEBUG][       Thread-254660][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 12:21:27,956 [DEBUG][       Thread-254660][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 12:21:27,956 [DEBUG][       Thread-254660][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 12:21:27,965 [DEBUG][       Thread-254660][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 12:21:27,974 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 12:21:27,974 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 12:21:27,982 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 12:21:27,992 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 12:21:27,993 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 12:21:27,993 [DEBUG][Thread-254662 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:21:27,994 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 12:21:28,003 [DEBUG][       Thread-254660][   transport.py][1871] : EOF in transport thread
2025-06-13 12:21:37,013 [DEBUG][Thread-254663 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:21:38,004 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 12:21:38,005 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 12:21:38,005 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 12:21:38,007 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 12:21:38,457 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 12, 21, 9), 13.71, 38.47, 0.0, 14.03, 12.04, 0, 0, 0, 2, 0, 0),)
2025-06-13 12:21:38,457 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 12:21:09
2025-06-13 12:21:38,539 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 12:21:38,544 [DEBUG][       Thread-254664][   transport.py][1871] : starting thread (client mode): 0x86368f40
2025-06-13 12:21:38,544 [DEBUG][       Thread-254664][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 12:21:38,565 [DEBUG][       Thread-254664][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 12:21:38,565 [ INFO][       Thread-254664][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 12:21:38,569 [DEBUG][       Thread-254664][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 12:21:38,569 [DEBUG][       Thread-254664][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 12:21:38,569 [DEBUG][       Thread-254664][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 12:21:38,569 [DEBUG][       Thread-254664][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:21:38,569 [DEBUG][       Thread-254664][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:21:38,569 [DEBUG][       Thread-254664][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:21:38,569 [DEBUG][       Thread-254664][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:21:38,569 [DEBUG][       Thread-254664][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 12:21:38,569 [DEBUG][       Thread-254664][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 12:21:38,569 [DEBUG][       Thread-254664][   transport.py][1871] : client lang: <none>
2025-06-13 12:21:38,569 [DEBUG][       Thread-254664][   transport.py][1871] : server lang: <none>
2025-06-13 12:21:38,569 [DEBUG][       Thread-254664][   transport.py][1871] : kex follows: False
2025-06-13 12:21:38,569 [DEBUG][       Thread-254664][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 12:21:38,569 [DEBUG][       Thread-254664][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 12:21:38,569 [DEBUG][       Thread-254664][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 12:21:38,569 [DEBUG][       Thread-254664][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 12:21:38,569 [DEBUG][       Thread-254664][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 12:21:38,569 [DEBUG][       Thread-254664][   transport.py][1871] : Compression: none
2025-06-13 12:21:38,569 [DEBUG][       Thread-254664][   transport.py][1871] : === End of kex handshake ===
2025-06-13 12:21:38,584 [DEBUG][       Thread-254664][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 12:21:38,585 [DEBUG][       Thread-254664][   transport.py][1871] : Switch to new keys ...
2025-06-13 12:21:38,585 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 12:21:38,586 [DEBUG][       Thread-254664][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 12:21:38,586 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 12:21:38,588 [DEBUG][       Thread-254664][   transport.py][1871] : userauth is OK
2025-06-13 12:21:38,613 [ INFO][       Thread-254664][   transport.py][1871] : Authentication (password) successful!
2025-06-13 12:21:38,614 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 12:21:39,268 [DEBUG][       Thread-254664][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 12:21:39,269 [DEBUG][       Thread-254664][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 12:21:39,313 [DEBUG][       Thread-254664][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 12:21:39,313 [DEBUG][       Thread-254664][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 12:21:39,316 [DEBUG][       Thread-254664][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 12:21:39,330 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 12:21:39,330 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 12:21:39,332 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 12:21:39,334 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 12:21:39,338 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 12:21:39,340 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 12:21:39,340 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 12:21:39,341 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 12:21:39,341 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.431535 -999.00  +11.60  19.99     43   -0.20 1 1 1 1 1   888    0 13.37 58.84 ----- 18.0 20.0 44.6 26.6 16.2 -28.7 14.9 -30.3 14.6 -29.1 15.9 -26.7
2025-06-13 12:21:39,341 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 12:21:39,341 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 12:21:39,341 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.431535
2025-06-13 12:21:39,342 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 12:21:39,342 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 12:21:39,342 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 12:21:39,342 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 12:21:39,343 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 12:21:39,343 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T12:21:09', tmtdew=13.71, humidity=38.47, cloud=0.0, wind=14.03, temperature=12.04, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T10:21:24.624', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 12:21:39,343 [DEBUG][       Thread-254664][   transport.py][1871] : EOF in transport thread
2025-06-13 12:21:39,426 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 12:21:39,440 [DEBUG][       Thread-254667][   transport.py][1871] : starting thread (client mode): 0x867b6c80
2025-06-13 12:21:39,440 [DEBUG][       Thread-254667][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 12:21:39,458 [DEBUG][       Thread-254667][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 12:21:39,458 [ INFO][       Thread-254667][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 12:21:39,466 [DEBUG][       Thread-254667][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 12:21:39,466 [DEBUG][       Thread-254667][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 12:21:39,466 [DEBUG][       Thread-254667][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 12:21:39,466 [DEBUG][       Thread-254667][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:21:39,466 [DEBUG][       Thread-254667][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:21:39,466 [DEBUG][       Thread-254667][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:21:39,466 [DEBUG][       Thread-254667][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:21:39,466 [DEBUG][       Thread-254667][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 12:21:39,466 [DEBUG][       Thread-254667][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 12:21:39,466 [DEBUG][       Thread-254667][   transport.py][1871] : client lang: <none>
2025-06-13 12:21:39,466 [DEBUG][       Thread-254667][   transport.py][1871] : server lang: <none>
2025-06-13 12:21:39,467 [DEBUG][       Thread-254667][   transport.py][1871] : kex follows: False
2025-06-13 12:21:39,467 [DEBUG][       Thread-254667][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 12:21:39,467 [DEBUG][       Thread-254667][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 12:21:39,467 [DEBUG][       Thread-254667][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 12:21:39,467 [DEBUG][       Thread-254667][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 12:21:39,467 [DEBUG][       Thread-254667][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 12:21:39,467 [DEBUG][       Thread-254667][   transport.py][1871] : Compression: none
2025-06-13 12:21:39,467 [DEBUG][       Thread-254667][   transport.py][1871] : === End of kex handshake ===
2025-06-13 12:21:39,529 [DEBUG][       Thread-254667][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 12:21:39,530 [DEBUG][       Thread-254667][   transport.py][1871] : Switch to new keys ...
2025-06-13 12:21:39,530 [DEBUG][       Thread-254667][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 12:21:39,531 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 12:21:39,531 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 12:21:39,763 [DEBUG][       Thread-254667][   transport.py][1871] : userauth is OK
2025-06-13 12:21:39,764 [DEBUG][       Thread-254667][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 12:21:39,764 [DEBUG][       Thread-254667][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 12:21:39,764 [DEBUG][       Thread-254667][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 12:21:39,764 [DEBUG][       Thread-254667][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 12:21:39,782 [ INFO][       Thread-254667][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 12:21:39,783 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 12:21:39,783 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 12:21:40,829 [DEBUG][       Thread-254667][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 12:21:40,829 [DEBUG][       Thread-254667][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 12:21:40,880 [DEBUG][       Thread-254667][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 12:21:40,880 [DEBUG][       Thread-254667][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 12:21:40,890 [DEBUG][       Thread-254667][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 12:21:40,900 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 12:21:40,900 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 12:21:40,910 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 12:21:40,919 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 12:21:40,919 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 12:21:40,920 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 12:21:40,928 [DEBUG][       Thread-254667][   transport.py][1871] : EOF in transport thread
2025-06-13 12:21:42,647 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:21:42,648 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:21:46,035 [DEBUG][Thread-254669 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:21:50,930 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 12:21:50,931 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 12:21:50,931 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 12:21:50,934 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 12:21:51,389 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 12, 21, 40), 13.62, 38.72, 0.0, 14.43, 12.0, 0, 0, 0, 2, 0, 0),)
2025-06-13 12:21:51,389 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 12:21:40
2025-06-13 12:21:51,471 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 12:21:51,475 [DEBUG][       Thread-254670][   transport.py][1871] : starting thread (client mode): 0x863bf280
2025-06-13 12:21:51,475 [DEBUG][       Thread-254670][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 12:21:51,495 [DEBUG][       Thread-254670][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 12:21:51,495 [ INFO][       Thread-254670][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 12:21:51,498 [DEBUG][       Thread-254670][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 12:21:51,498 [DEBUG][       Thread-254670][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 12:21:51,498 [DEBUG][       Thread-254670][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 12:21:51,498 [DEBUG][       Thread-254670][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:21:51,498 [DEBUG][       Thread-254670][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:21:51,498 [DEBUG][       Thread-254670][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:21:51,498 [DEBUG][       Thread-254670][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:21:51,498 [DEBUG][       Thread-254670][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 12:21:51,498 [DEBUG][       Thread-254670][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 12:21:51,498 [DEBUG][       Thread-254670][   transport.py][1871] : client lang: <none>
2025-06-13 12:21:51,498 [DEBUG][       Thread-254670][   transport.py][1871] : server lang: <none>
2025-06-13 12:21:51,499 [DEBUG][       Thread-254670][   transport.py][1871] : kex follows: False
2025-06-13 12:21:51,499 [DEBUG][       Thread-254670][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 12:21:51,499 [DEBUG][       Thread-254670][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 12:21:51,499 [DEBUG][       Thread-254670][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 12:21:51,499 [DEBUG][       Thread-254670][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 12:21:51,499 [DEBUG][       Thread-254670][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 12:21:51,499 [DEBUG][       Thread-254670][   transport.py][1871] : Compression: none
2025-06-13 12:21:51,499 [DEBUG][       Thread-254670][   transport.py][1871] : === End of kex handshake ===
2025-06-13 12:21:51,517 [DEBUG][       Thread-254670][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 12:21:51,517 [DEBUG][       Thread-254670][   transport.py][1871] : Switch to new keys ...
2025-06-13 12:21:51,518 [DEBUG][       Thread-254670][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 12:21:51,518 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 12:21:51,518 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 12:21:51,519 [DEBUG][       Thread-254670][   transport.py][1871] : userauth is OK
2025-06-13 12:21:51,533 [ INFO][       Thread-254670][   transport.py][1871] : Authentication (password) successful!
2025-06-13 12:21:51,534 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 12:21:52,187 [DEBUG][       Thread-254670][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 12:21:52,187 [DEBUG][       Thread-254670][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 12:21:52,229 [DEBUG][       Thread-254670][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 12:21:52,229 [DEBUG][       Thread-254670][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 12:21:52,233 [DEBUG][       Thread-254670][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 12:21:52,244 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 12:21:52,245 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 12:21:52,247 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 12:21:52,250 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 12:21:52,256 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 12:21:52,258 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 12:21:52,258 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 12:21:52,259 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 12:21:52,259 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.431535 -999.00  +11.60  19.99     43   -0.20 1 1 1 1 1   888    0 13.37 58.84 ----- 18.0 20.0 44.6 26.6 16.2 -28.7 14.9 -30.3 14.6 -29.1 15.9 -26.7
2025-06-13 12:21:52,259 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 12:21:52,259 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 12:21:52,259 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.431535
2025-06-13 12:21:52,260 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 12:21:52,260 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 12:21:52,260 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 12:21:52,260 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 12:21:52,260 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 12:21:52,261 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T12:21:40', tmtdew=13.62, humidity=38.72, cloud=0.0, wind=14.43, temperature=12.0, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T10:21:24.624', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 12:21:52,262 [DEBUG][       Thread-254670][   transport.py][1871] : EOF in transport thread
2025-06-13 12:21:52,344 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 12:21:52,355 [DEBUG][       Thread-254673][   transport.py][1871] : starting thread (client mode): 0x867b5360
2025-06-13 12:21:52,355 [DEBUG][       Thread-254673][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 12:21:52,370 [DEBUG][       Thread-254673][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 12:21:52,371 [ INFO][       Thread-254673][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 12:21:52,379 [DEBUG][       Thread-254673][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 12:21:52,379 [DEBUG][       Thread-254673][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 12:21:52,379 [DEBUG][       Thread-254673][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 12:21:52,379 [DEBUG][       Thread-254673][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:21:52,379 [DEBUG][       Thread-254673][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:21:52,379 [DEBUG][       Thread-254673][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:21:52,379 [DEBUG][       Thread-254673][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:21:52,379 [DEBUG][       Thread-254673][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 12:21:52,379 [DEBUG][       Thread-254673][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 12:21:52,379 [DEBUG][       Thread-254673][   transport.py][1871] : client lang: <none>
2025-06-13 12:21:52,379 [DEBUG][       Thread-254673][   transport.py][1871] : server lang: <none>
2025-06-13 12:21:52,379 [DEBUG][       Thread-254673][   transport.py][1871] : kex follows: False
2025-06-13 12:21:52,379 [DEBUG][       Thread-254673][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 12:21:52,379 [DEBUG][       Thread-254673][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 12:21:52,380 [DEBUG][       Thread-254673][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 12:21:52,380 [DEBUG][       Thread-254673][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 12:21:52,380 [DEBUG][       Thread-254673][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 12:21:52,380 [DEBUG][       Thread-254673][   transport.py][1871] : Compression: none
2025-06-13 12:21:52,380 [DEBUG][       Thread-254673][   transport.py][1871] : === End of kex handshake ===
2025-06-13 12:21:52,436 [DEBUG][       Thread-254673][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 12:21:52,437 [DEBUG][       Thread-254673][   transport.py][1871] : Switch to new keys ...
2025-06-13 12:21:52,438 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 12:21:52,438 [DEBUG][       Thread-254673][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 12:21:52,439 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 12:21:52,504 [DEBUG][       Thread-254673][   transport.py][1871] : userauth is OK
2025-06-13 12:21:52,505 [DEBUG][       Thread-254673][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 12:21:52,505 [DEBUG][       Thread-254673][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 12:21:52,505 [DEBUG][       Thread-254673][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 12:21:52,505 [DEBUG][       Thread-254673][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 12:21:52,524 [ INFO][       Thread-254673][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 12:21:52,525 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 12:21:52,525 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 12:21:53,530 [DEBUG][       Thread-254673][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 12:21:53,531 [DEBUG][       Thread-254673][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 12:21:53,580 [DEBUG][       Thread-254673][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 12:21:53,580 [DEBUG][       Thread-254673][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 12:21:53,590 [DEBUG][       Thread-254673][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 12:21:53,600 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 12:21:53,600 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 12:21:53,608 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 12:21:53,617 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 12:21:53,618 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 12:21:53,618 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 12:21:53,627 [DEBUG][       Thread-254673][   transport.py][1871] : EOF in transport thread
2025-06-13 12:21:55,057 [DEBUG][Thread-254675 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:22:03,625 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 12:22:03,625 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 12:22:03,625 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 12:22:03,628 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 12:22:04,072 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 12, 21, 40), 13.62, 38.72, 0.0, 14.43, 12.0, 0, 0, 0, 2, 0, 0),)
2025-06-13 12:22:04,072 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 12:21:40
2025-06-13 12:22:04,091 [DEBUG][Thread-254676 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:22:04,154 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 12:22:04,158 [DEBUG][       Thread-254677][   transport.py][1871] : starting thread (client mode): 0x863a5690
2025-06-13 12:22:04,158 [DEBUG][       Thread-254677][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 12:22:04,179 [DEBUG][       Thread-254677][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 12:22:04,179 [ INFO][       Thread-254677][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 12:22:04,183 [DEBUG][       Thread-254677][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 12:22:04,183 [DEBUG][       Thread-254677][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 12:22:04,183 [DEBUG][       Thread-254677][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 12:22:04,183 [DEBUG][       Thread-254677][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:22:04,183 [DEBUG][       Thread-254677][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:22:04,183 [DEBUG][       Thread-254677][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:22:04,183 [DEBUG][       Thread-254677][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:22:04,183 [DEBUG][       Thread-254677][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 12:22:04,183 [DEBUG][       Thread-254677][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 12:22:04,183 [DEBUG][       Thread-254677][   transport.py][1871] : client lang: <none>
2025-06-13 12:22:04,183 [DEBUG][       Thread-254677][   transport.py][1871] : server lang: <none>
2025-06-13 12:22:04,183 [DEBUG][       Thread-254677][   transport.py][1871] : kex follows: False
2025-06-13 12:22:04,183 [DEBUG][       Thread-254677][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 12:22:04,183 [DEBUG][       Thread-254677][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 12:22:04,183 [DEBUG][       Thread-254677][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 12:22:04,183 [DEBUG][       Thread-254677][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 12:22:04,184 [DEBUG][       Thread-254677][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 12:22:04,184 [DEBUG][       Thread-254677][   transport.py][1871] : Compression: none
2025-06-13 12:22:04,184 [DEBUG][       Thread-254677][   transport.py][1871] : === End of kex handshake ===
2025-06-13 12:22:04,199 [DEBUG][       Thread-254677][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 12:22:04,199 [DEBUG][       Thread-254677][   transport.py][1871] : Switch to new keys ...
2025-06-13 12:22:04,200 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 12:22:04,200 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 12:22:04,201 [DEBUG][       Thread-254677][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 12:22:04,202 [DEBUG][       Thread-254677][   transport.py][1871] : userauth is OK
2025-06-13 12:22:04,226 [ INFO][       Thread-254677][   transport.py][1871] : Authentication (password) successful!
2025-06-13 12:22:04,226 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 12:22:04,848 [DEBUG][       Thread-254677][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 12:22:04,848 [DEBUG][       Thread-254677][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 12:22:04,889 [DEBUG][       Thread-254677][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 12:22:04,889 [DEBUG][       Thread-254677][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 12:22:04,892 [DEBUG][       Thread-254677][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 12:22:04,906 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 12:22:04,907 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 12:22:04,908 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 12:22:04,910 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 12:22:04,915 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 12:22:04,917 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 12:22:04,917 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 12:22:04,918 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 12:22:04,918 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.431535 -999.00  +11.60  19.99     43   -0.20 1 1 1 1 1   888    0 13.37 58.84 ----- 18.0 20.0 44.6 26.6 16.2 -28.7 14.9 -30.3 14.6 -29.1 15.9 -26.7
2025-06-13 12:22:04,918 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 12:22:04,918 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 12:22:04,919 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.431535
2025-06-13 12:22:04,919 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 12:22:04,920 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 12:22:04,920 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 12:22:04,920 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 12:22:04,920 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 12:22:04,920 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T12:21:40', tmtdew=13.62, humidity=38.72, cloud=0.0, wind=14.43, temperature=12.0, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T10:21:24.624', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 12:22:04,920 [DEBUG][       Thread-254677][   transport.py][1871] : EOF in transport thread
2025-06-13 12:22:05,003 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 12:22:05,017 [DEBUG][       Thread-254680][   transport.py][1871] : starting thread (client mode): 0x867b5a20
2025-06-13 12:22:05,017 [DEBUG][       Thread-254680][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 12:22:05,032 [DEBUG][       Thread-254680][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 12:22:05,033 [ INFO][       Thread-254680][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 12:22:05,041 [DEBUG][       Thread-254680][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 12:22:05,041 [DEBUG][       Thread-254680][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 12:22:05,041 [DEBUG][       Thread-254680][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 12:22:05,041 [DEBUG][       Thread-254680][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:22:05,041 [DEBUG][       Thread-254680][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:22:05,041 [DEBUG][       Thread-254680][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:22:05,041 [DEBUG][       Thread-254680][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:22:05,041 [DEBUG][       Thread-254680][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 12:22:05,041 [DEBUG][       Thread-254680][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 12:22:05,041 [DEBUG][       Thread-254680][   transport.py][1871] : client lang: <none>
2025-06-13 12:22:05,041 [DEBUG][       Thread-254680][   transport.py][1871] : server lang: <none>
2025-06-13 12:22:05,041 [DEBUG][       Thread-254680][   transport.py][1871] : kex follows: False
2025-06-13 12:22:05,041 [DEBUG][       Thread-254680][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 12:22:05,041 [DEBUG][       Thread-254680][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 12:22:05,042 [DEBUG][       Thread-254680][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 12:22:05,042 [DEBUG][       Thread-254680][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 12:22:05,042 [DEBUG][       Thread-254680][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 12:22:05,042 [DEBUG][       Thread-254680][   transport.py][1871] : Compression: none
2025-06-13 12:22:05,042 [DEBUG][       Thread-254680][   transport.py][1871] : === End of kex handshake ===
2025-06-13 12:22:05,105 [DEBUG][       Thread-254680][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 12:22:05,105 [DEBUG][       Thread-254680][   transport.py][1871] : Switch to new keys ...
2025-06-13 12:22:05,106 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 12:22:05,106 [DEBUG][       Thread-254680][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 12:22:05,107 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 12:22:05,172 [DEBUG][       Thread-254680][   transport.py][1871] : userauth is OK
2025-06-13 12:22:05,172 [DEBUG][       Thread-254680][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 12:22:05,172 [DEBUG][       Thread-254680][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 12:22:05,173 [DEBUG][       Thread-254680][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 12:22:05,173 [DEBUG][       Thread-254680][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 12:22:05,194 [ INFO][       Thread-254680][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 12:22:05,194 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 12:22:05,195 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 12:22:06,244 [DEBUG][       Thread-254680][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 12:22:06,244 [DEBUG][       Thread-254680][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 12:22:06,291 [DEBUG][       Thread-254680][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 12:22:06,291 [DEBUG][       Thread-254680][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 12:22:06,300 [DEBUG][       Thread-254680][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 12:22:06,308 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 12:22:06,308 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 12:22:06,319 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 12:22:06,328 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 12:22:06,328 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 12:22:06,328 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 12:22:06,336 [DEBUG][       Thread-254680][   transport.py][1871] : EOF in transport thread
2025-06-13 12:22:11,967 [DEBUG][Thread-254682 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:22:13,108 [DEBUG][Thread-254683 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:22:16,338 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 12:22:16,339 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 12:22:16,339 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 12:22:16,341 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 12:22:16,789 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 12, 22, 12), 13.49, 39.08, 0.0, 13.98, 12.09, 0, 0, 0, 2, 0, 0),)
2025-06-13 12:22:16,789 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 12:22:12
2025-06-13 12:22:16,868 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 12:22:16,873 [DEBUG][       Thread-254684][   transport.py][1871] : starting thread (client mode): 0x863bda50
2025-06-13 12:22:16,873 [DEBUG][       Thread-254684][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 12:22:16,886 [DEBUG][       Thread-254684][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 12:22:16,886 [ INFO][       Thread-254684][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 12:22:16,890 [DEBUG][       Thread-254684][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 12:22:16,890 [DEBUG][       Thread-254684][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 12:22:16,890 [DEBUG][       Thread-254684][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 12:22:16,890 [DEBUG][       Thread-254684][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:22:16,890 [DEBUG][       Thread-254684][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:22:16,890 [DEBUG][       Thread-254684][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:22:16,890 [DEBUG][       Thread-254684][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:22:16,890 [DEBUG][       Thread-254684][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 12:22:16,890 [DEBUG][       Thread-254684][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 12:22:16,890 [DEBUG][       Thread-254684][   transport.py][1871] : client lang: <none>
2025-06-13 12:22:16,890 [DEBUG][       Thread-254684][   transport.py][1871] : server lang: <none>
2025-06-13 12:22:16,890 [DEBUG][       Thread-254684][   transport.py][1871] : kex follows: False
2025-06-13 12:22:16,890 [DEBUG][       Thread-254684][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 12:22:16,890 [DEBUG][       Thread-254684][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 12:22:16,890 [DEBUG][       Thread-254684][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 12:22:16,890 [DEBUG][       Thread-254684][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 12:22:16,890 [DEBUG][       Thread-254684][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 12:22:16,890 [DEBUG][       Thread-254684][   transport.py][1871] : Compression: none
2025-06-13 12:22:16,890 [DEBUG][       Thread-254684][   transport.py][1871] : === End of kex handshake ===
2025-06-13 12:22:16,906 [DEBUG][       Thread-254684][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 12:22:16,907 [DEBUG][       Thread-254684][   transport.py][1871] : Switch to new keys ...
2025-06-13 12:22:16,908 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 12:22:16,908 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 12:22:16,908 [DEBUG][       Thread-254684][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 12:22:16,909 [DEBUG][       Thread-254684][   transport.py][1871] : userauth is OK
2025-06-13 12:22:16,934 [ INFO][       Thread-254684][   transport.py][1871] : Authentication (password) successful!
2025-06-13 12:22:16,935 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 12:22:17,585 [DEBUG][       Thread-254684][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 12:22:17,586 [DEBUG][       Thread-254684][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 12:22:17,629 [DEBUG][       Thread-254684][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 12:22:17,629 [DEBUG][       Thread-254684][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 12:22:17,633 [DEBUG][       Thread-254684][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 12:22:17,647 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 12:22:17,647 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 12:22:17,649 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 12:22:17,651 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 12:22:17,658 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 12:22:17,660 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 12:22:17,660 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 12:22:17,661 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 12:22:17,661 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.431882 -999.00  +11.70  16.93     44   +0.10 1 1 1 1 1   888    0 12.84 55.01 ----- 13.7 16.9 41.2 21.6 16.2 -28.7 15.0 -29.4 14.7 -28.7 16.0 -26.5
2025-06-13 12:22:17,661 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 12:22:17,661 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 12:22:17,661 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.431882
2025-06-13 12:22:17,662 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 12:22:17,662 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 12:22:17,662 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 12:22:17,662 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 12:22:17,663 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 12:22:17,663 [DEBUG][       Thread-254684][   transport.py][1871] : EOF in transport thread
2025-06-13 12:22:17,663 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T12:22:12', tmtdew=13.49, humidity=39.08, cloud=0.0, wind=13.98, temperature=12.09, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T10:21:54.605', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 12:22:17,747 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 12:22:17,759 [DEBUG][       Thread-254687][   transport.py][1871] : starting thread (client mode): 0x863a47f0
2025-06-13 12:22:17,759 [DEBUG][       Thread-254687][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 12:22:17,776 [DEBUG][       Thread-254687][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 12:22:17,776 [ INFO][       Thread-254687][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 12:22:17,783 [DEBUG][       Thread-254687][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 12:22:17,783 [DEBUG][       Thread-254687][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 12:22:17,783 [DEBUG][       Thread-254687][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 12:22:17,783 [DEBUG][       Thread-254687][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:22:17,783 [DEBUG][       Thread-254687][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:22:17,784 [DEBUG][       Thread-254687][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:22:17,784 [DEBUG][       Thread-254687][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:22:17,784 [DEBUG][       Thread-254687][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 12:22:17,784 [DEBUG][       Thread-254687][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 12:22:17,784 [DEBUG][       Thread-254687][   transport.py][1871] : client lang: <none>
2025-06-13 12:22:17,784 [DEBUG][       Thread-254687][   transport.py][1871] : server lang: <none>
2025-06-13 12:22:17,784 [DEBUG][       Thread-254687][   transport.py][1871] : kex follows: False
2025-06-13 12:22:17,784 [DEBUG][       Thread-254687][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 12:22:17,784 [DEBUG][       Thread-254687][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 12:22:17,784 [DEBUG][       Thread-254687][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 12:22:17,784 [DEBUG][       Thread-254687][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 12:22:17,784 [DEBUG][       Thread-254687][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 12:22:17,784 [DEBUG][       Thread-254687][   transport.py][1871] : Compression: none
2025-06-13 12:22:17,784 [DEBUG][       Thread-254687][   transport.py][1871] : === End of kex handshake ===
2025-06-13 12:22:17,844 [DEBUG][       Thread-254687][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 12:22:17,845 [DEBUG][       Thread-254687][   transport.py][1871] : Switch to new keys ...
2025-06-13 12:22:17,845 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 12:22:17,846 [DEBUG][       Thread-254687][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 12:22:17,847 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 12:22:17,905 [DEBUG][       Thread-254687][   transport.py][1871] : userauth is OK
2025-06-13 12:22:17,905 [DEBUG][       Thread-254687][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 12:22:17,905 [DEBUG][       Thread-254687][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 12:22:17,905 [DEBUG][       Thread-254687][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 12:22:17,905 [DEBUG][       Thread-254687][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 12:22:17,924 [ INFO][       Thread-254687][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 12:22:17,925 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 12:22:17,925 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 12:22:18,957 [DEBUG][       Thread-254687][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 12:22:18,958 [DEBUG][       Thread-254687][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 12:22:19,010 [DEBUG][       Thread-254687][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 12:22:19,010 [DEBUG][       Thread-254687][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 12:22:19,023 [DEBUG][       Thread-254687][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 12:22:19,033 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 12:22:19,034 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 12:22:19,044 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 12:22:19,055 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 12:22:19,055 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 12:22:19,056 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 12:22:19,066 [DEBUG][       Thread-254687][   transport.py][1871] : EOF in transport thread
2025-06-13 12:22:20,603 [DEBUG][Thread-254689 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:22:21,684 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:22:21,685 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:22:22,128 [DEBUG][Thread-254690 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:22:29,060 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 12:22:29,061 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 12:22:29,061 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 12:22:29,064 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 12:22:29,517 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 12, 22, 12), 13.49, 39.08, 0.0, 13.98, 12.09, 0, 0, 0, 2, 0, 0),)
2025-06-13 12:22:29,517 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 12:22:12
2025-06-13 12:22:29,596 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 12:22:29,600 [DEBUG][       Thread-254691][   transport.py][1871] : starting thread (client mode): 0x863a4e80
2025-06-13 12:22:29,600 [DEBUG][       Thread-254691][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 12:22:29,621 [DEBUG][       Thread-254691][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 12:22:29,621 [ INFO][       Thread-254691][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 12:22:29,625 [DEBUG][       Thread-254691][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 12:22:29,625 [DEBUG][       Thread-254691][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 12:22:29,625 [DEBUG][       Thread-254691][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 12:22:29,625 [DEBUG][       Thread-254691][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:22:29,625 [DEBUG][       Thread-254691][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:22:29,625 [DEBUG][       Thread-254691][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:22:29,625 [DEBUG][       Thread-254691][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:22:29,625 [DEBUG][       Thread-254691][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 12:22:29,625 [DEBUG][       Thread-254691][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 12:22:29,625 [DEBUG][       Thread-254691][   transport.py][1871] : client lang: <none>
2025-06-13 12:22:29,625 [DEBUG][       Thread-254691][   transport.py][1871] : server lang: <none>
2025-06-13 12:22:29,625 [DEBUG][       Thread-254691][   transport.py][1871] : kex follows: False
2025-06-13 12:22:29,625 [DEBUG][       Thread-254691][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 12:22:29,625 [DEBUG][       Thread-254691][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 12:22:29,625 [DEBUG][       Thread-254691][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 12:22:29,625 [DEBUG][       Thread-254691][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 12:22:29,625 [DEBUG][       Thread-254691][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 12:22:29,625 [DEBUG][       Thread-254691][   transport.py][1871] : Compression: none
2025-06-13 12:22:29,625 [DEBUG][       Thread-254691][   transport.py][1871] : === End of kex handshake ===
2025-06-13 12:22:29,645 [DEBUG][       Thread-254691][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 12:22:29,645 [DEBUG][       Thread-254691][   transport.py][1871] : Switch to new keys ...
2025-06-13 12:22:29,646 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 12:22:29,646 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 12:22:29,646 [DEBUG][       Thread-254691][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 12:22:29,648 [DEBUG][       Thread-254691][   transport.py][1871] : userauth is OK
2025-06-13 12:22:29,673 [ INFO][       Thread-254691][   transport.py][1871] : Authentication (password) successful!
2025-06-13 12:22:29,674 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 12:22:30,364 [DEBUG][       Thread-254691][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 12:22:30,364 [DEBUG][       Thread-254691][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 12:22:30,405 [DEBUG][       Thread-254691][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 12:22:30,405 [DEBUG][       Thread-254691][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 12:22:30,408 [DEBUG][       Thread-254691][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 12:22:30,420 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 12:22:30,421 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 12:22:30,423 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 12:22:30,425 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 12:22:30,432 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 12:22:30,434 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 12:22:30,434 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 12:22:30,435 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 12:22:30,435 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.431882 -999.00  +11.70  16.93     44   +0.10 1 1 1 1 1   888    0 12.84 55.01 ----- 13.7 16.9 41.2 21.6 16.2 -28.7 15.0 -29.4 14.7 -28.7 16.0 -26.5
2025-06-13 12:22:30,435 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 12:22:30,435 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 12:22:30,435 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.431882
2025-06-13 12:22:30,435 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 12:22:30,436 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 12:22:30,436 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 12:22:30,436 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 12:22:30,436 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 12:22:30,437 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T12:22:12', tmtdew=13.49, humidity=39.08, cloud=0.0, wind=13.98, temperature=12.09, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T10:21:54.605', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 12:22:30,438 [DEBUG][       Thread-254691][   transport.py][1871] : EOF in transport thread
2025-06-13 12:22:30,520 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 12:22:30,530 [DEBUG][       Thread-254694][   transport.py][1871] : starting thread (client mode): 0x867b7940
2025-06-13 12:22:30,530 [DEBUG][       Thread-254694][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 12:22:30,546 [DEBUG][       Thread-254694][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 12:22:30,546 [ INFO][       Thread-254694][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 12:22:30,556 [DEBUG][       Thread-254694][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 12:22:30,556 [DEBUG][       Thread-254694][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 12:22:30,556 [DEBUG][       Thread-254694][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 12:22:30,556 [DEBUG][       Thread-254694][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:22:30,557 [DEBUG][       Thread-254694][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:22:30,557 [DEBUG][       Thread-254694][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:22:30,557 [DEBUG][       Thread-254694][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:22:30,557 [DEBUG][       Thread-254694][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 12:22:30,557 [DEBUG][       Thread-254694][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 12:22:30,557 [DEBUG][       Thread-254694][   transport.py][1871] : client lang: <none>
2025-06-13 12:22:30,557 [DEBUG][       Thread-254694][   transport.py][1871] : server lang: <none>
2025-06-13 12:22:30,557 [DEBUG][       Thread-254694][   transport.py][1871] : kex follows: False
2025-06-13 12:22:30,557 [DEBUG][       Thread-254694][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 12:22:30,557 [DEBUG][       Thread-254694][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 12:22:30,557 [DEBUG][       Thread-254694][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 12:22:30,557 [DEBUG][       Thread-254694][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 12:22:30,557 [DEBUG][       Thread-254694][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 12:22:30,557 [DEBUG][       Thread-254694][   transport.py][1871] : Compression: none
2025-06-13 12:22:30,557 [DEBUG][       Thread-254694][   transport.py][1871] : === End of kex handshake ===
2025-06-13 12:22:30,613 [DEBUG][       Thread-254694][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 12:22:30,614 [DEBUG][       Thread-254694][   transport.py][1871] : Switch to new keys ...
2025-06-13 12:22:30,614 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 12:22:30,615 [DEBUG][       Thread-254694][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 12:22:30,616 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 12:22:30,674 [DEBUG][       Thread-254694][   transport.py][1871] : userauth is OK
2025-06-13 12:22:30,674 [DEBUG][       Thread-254694][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 12:22:30,674 [DEBUG][       Thread-254694][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 12:22:30,674 [DEBUG][       Thread-254694][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 12:22:30,674 [DEBUG][       Thread-254694][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 12:22:30,693 [ INFO][       Thread-254694][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 12:22:30,693 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 12:22:30,694 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 12:22:31,163 [DEBUG][Thread-254696 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:22:31,732 [DEBUG][       Thread-254694][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 12:22:31,732 [DEBUG][       Thread-254694][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 12:22:31,784 [DEBUG][       Thread-254694][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 12:22:31,784 [DEBUG][       Thread-254694][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 12:22:31,794 [DEBUG][       Thread-254694][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 12:22:31,804 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 12:22:31,805 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 12:22:31,814 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 12:22:31,824 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 12:22:31,824 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 12:22:31,825 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 12:22:31,833 [DEBUG][       Thread-254694][   transport.py][1871] : EOF in transport thread
2025-06-13 12:22:40,184 [DEBUG][Thread-254697 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:22:41,835 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 12:22:41,836 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 12:22:41,836 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 12:22:41,838 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 12:22:42,298 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 12, 22, 12), 13.49, 39.08, 0.0, 13.98, 12.09, 0, 0, 0, 2, 0, 0),)
2025-06-13 12:22:42,298 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 12:22:12
2025-06-13 12:22:42,377 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 12:22:42,381 [DEBUG][       Thread-254698][   transport.py][1871] : starting thread (client mode): 0x863a7970
2025-06-13 12:22:42,381 [DEBUG][       Thread-254698][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 12:22:42,403 [DEBUG][       Thread-254698][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 12:22:42,403 [ INFO][       Thread-254698][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 12:22:42,407 [DEBUG][       Thread-254698][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 12:22:42,407 [DEBUG][       Thread-254698][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 12:22:42,407 [DEBUG][       Thread-254698][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 12:22:42,407 [DEBUG][       Thread-254698][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:22:42,407 [DEBUG][       Thread-254698][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:22:42,407 [DEBUG][       Thread-254698][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:22:42,407 [DEBUG][       Thread-254698][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:22:42,407 [DEBUG][       Thread-254698][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 12:22:42,407 [DEBUG][       Thread-254698][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 12:22:42,407 [DEBUG][       Thread-254698][   transport.py][1871] : client lang: <none>
2025-06-13 12:22:42,407 [DEBUG][       Thread-254698][   transport.py][1871] : server lang: <none>
2025-06-13 12:22:42,407 [DEBUG][       Thread-254698][   transport.py][1871] : kex follows: False
2025-06-13 12:22:42,407 [DEBUG][       Thread-254698][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 12:22:42,407 [DEBUG][       Thread-254698][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 12:22:42,407 [DEBUG][       Thread-254698][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 12:22:42,407 [DEBUG][       Thread-254698][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 12:22:42,407 [DEBUG][       Thread-254698][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 12:22:42,407 [DEBUG][       Thread-254698][   transport.py][1871] : Compression: none
2025-06-13 12:22:42,407 [DEBUG][       Thread-254698][   transport.py][1871] : === End of kex handshake ===
2025-06-13 12:22:42,424 [DEBUG][       Thread-254698][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 12:22:42,424 [DEBUG][       Thread-254698][   transport.py][1871] : Switch to new keys ...
2025-06-13 12:22:42,425 [DEBUG][       Thread-254698][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 12:22:42,425 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 12:22:42,425 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 12:22:42,426 [DEBUG][       Thread-254698][   transport.py][1871] : userauth is OK
2025-06-13 12:22:42,439 [ INFO][       Thread-254698][   transport.py][1871] : Authentication (password) successful!
2025-06-13 12:22:42,439 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 12:22:42,785 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:22:42,786 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:22:43,087 [DEBUG][       Thread-254698][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 12:22:43,088 [DEBUG][       Thread-254698][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 12:22:43,129 [DEBUG][       Thread-254698][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 12:22:43,129 [DEBUG][       Thread-254698][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 12:22:43,132 [DEBUG][       Thread-254698][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 12:22:43,144 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 12:22:43,145 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 12:22:43,146 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 12:22:43,148 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 12:22:43,153 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 12:22:43,155 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 12:22:43,155 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 12:22:43,156 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 12:22:43,156 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.432230 -999.00  +11.90  13.53     44   +0.10 1 1 1 1 1   888    0 13.02 55.67 ----- 17.1 13.5 36.8 19.7 16.4 -28.1 15.0 -29.0 14.7 -28.8 16.1 -26.4
2025-06-13 12:22:43,156 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 12:22:43,156 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 12:22:43,156 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.432230
2025-06-13 12:22:43,157 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 12:22:43,157 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 12:22:43,157 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 12:22:43,157 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 12:22:43,157 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 12:22:43,158 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T12:22:12', tmtdew=13.49, humidity=39.08, cloud=0.0, wind=13.98, temperature=12.09, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T10:22:24.672', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 12:22:43,159 [DEBUG][       Thread-254698][   transport.py][1871] : EOF in transport thread
2025-06-13 12:22:43,240 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 12:22:43,254 [DEBUG][       Thread-254701][   transport.py][1871] : starting thread (client mode): 0x863eceb0
2025-06-13 12:22:43,254 [DEBUG][       Thread-254701][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 12:22:43,269 [DEBUG][       Thread-254701][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 12:22:43,270 [ INFO][       Thread-254701][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 12:22:43,278 [DEBUG][       Thread-254701][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 12:22:43,278 [DEBUG][       Thread-254701][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 12:22:43,278 [DEBUG][       Thread-254701][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 12:22:43,278 [DEBUG][       Thread-254701][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:22:43,278 [DEBUG][       Thread-254701][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:22:43,278 [DEBUG][       Thread-254701][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:22:43,278 [DEBUG][       Thread-254701][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:22:43,278 [DEBUG][       Thread-254701][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 12:22:43,278 [DEBUG][       Thread-254701][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 12:22:43,278 [DEBUG][       Thread-254701][   transport.py][1871] : client lang: <none>
2025-06-13 12:22:43,278 [DEBUG][       Thread-254701][   transport.py][1871] : server lang: <none>
2025-06-13 12:22:43,278 [DEBUG][       Thread-254701][   transport.py][1871] : kex follows: False
2025-06-13 12:22:43,278 [DEBUG][       Thread-254701][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 12:22:43,278 [DEBUG][       Thread-254701][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 12:22:43,278 [DEBUG][       Thread-254701][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 12:22:43,278 [DEBUG][       Thread-254701][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 12:22:43,279 [DEBUG][       Thread-254701][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 12:22:43,279 [DEBUG][       Thread-254701][   transport.py][1871] : Compression: none
2025-06-13 12:22:43,279 [DEBUG][       Thread-254701][   transport.py][1871] : === End of kex handshake ===
2025-06-13 12:22:43,341 [DEBUG][       Thread-254701][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 12:22:43,341 [DEBUG][       Thread-254701][   transport.py][1871] : Switch to new keys ...
2025-06-13 12:22:43,342 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 12:22:43,342 [DEBUG][       Thread-254701][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 12:22:43,343 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 12:22:43,415 [DEBUG][       Thread-254701][   transport.py][1871] : userauth is OK
2025-06-13 12:22:43,415 [DEBUG][       Thread-254701][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 12:22:43,415 [DEBUG][       Thread-254701][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 12:22:43,415 [DEBUG][       Thread-254701][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 12:22:43,415 [DEBUG][       Thread-254701][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 12:22:43,439 [ INFO][       Thread-254701][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 12:22:43,440 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 12:22:43,440 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 12:22:44,466 [DEBUG][       Thread-254701][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 12:22:44,467 [DEBUG][       Thread-254701][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 12:22:44,517 [DEBUG][       Thread-254701][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 12:22:44,517 [DEBUG][       Thread-254701][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 12:22:44,539 [DEBUG][       Thread-254701][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 12:22:44,553 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 12:22:44,554 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 12:22:44,569 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 12:22:44,579 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 12:22:44,579 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 12:22:44,579 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 12:22:44,592 [DEBUG][       Thread-254701][   transport.py][1871] : EOF in transport thread
2025-06-13 12:22:49,201 [DEBUG][Thread-254703 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:22:54,589 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 12:22:54,590 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 12:22:54,590 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 12:22:54,592 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 12:22:55,041 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 12, 22, 44), 13.6, 38.78, 0.0, 15.21, 12.08, 0, 0, 0, 2, 0, 0),)
2025-06-13 12:22:55,041 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 12:22:44
2025-06-13 12:22:55,120 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 12:22:55,124 [DEBUG][       Thread-254704][   transport.py][1871] : starting thread (client mode): 0x86368730
2025-06-13 12:22:55,124 [DEBUG][       Thread-254704][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 12:22:55,146 [DEBUG][       Thread-254704][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 12:22:55,146 [ INFO][       Thread-254704][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 12:22:55,149 [DEBUG][       Thread-254704][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 12:22:55,149 [DEBUG][       Thread-254704][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 12:22:55,149 [DEBUG][       Thread-254704][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 12:22:55,149 [DEBUG][       Thread-254704][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:22:55,149 [DEBUG][       Thread-254704][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:22:55,149 [DEBUG][       Thread-254704][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:22:55,149 [DEBUG][       Thread-254704][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:22:55,149 [DEBUG][       Thread-254704][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 12:22:55,149 [DEBUG][       Thread-254704][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 12:22:55,149 [DEBUG][       Thread-254704][   transport.py][1871] : client lang: <none>
2025-06-13 12:22:55,149 [DEBUG][       Thread-254704][   transport.py][1871] : server lang: <none>
2025-06-13 12:22:55,149 [DEBUG][       Thread-254704][   transport.py][1871] : kex follows: False
2025-06-13 12:22:55,149 [DEBUG][       Thread-254704][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 12:22:55,149 [DEBUG][       Thread-254704][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 12:22:55,149 [DEBUG][       Thread-254704][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 12:22:55,149 [DEBUG][       Thread-254704][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 12:22:55,149 [DEBUG][       Thread-254704][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 12:22:55,149 [DEBUG][       Thread-254704][   transport.py][1871] : Compression: none
2025-06-13 12:22:55,149 [DEBUG][       Thread-254704][   transport.py][1871] : === End of kex handshake ===
2025-06-13 12:22:55,169 [DEBUG][       Thread-254704][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 12:22:55,170 [DEBUG][       Thread-254704][   transport.py][1871] : Switch to new keys ...
2025-06-13 12:22:55,170 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 12:22:55,170 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 12:22:55,171 [DEBUG][       Thread-254704][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 12:22:55,172 [DEBUG][       Thread-254704][   transport.py][1871] : userauth is OK
2025-06-13 12:22:55,196 [ INFO][       Thread-254704][   transport.py][1871] : Authentication (password) successful!
2025-06-13 12:22:55,197 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 12:22:55,850 [DEBUG][       Thread-254704][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 12:22:55,851 [DEBUG][       Thread-254704][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 12:22:55,893 [DEBUG][       Thread-254704][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 12:22:55,893 [DEBUG][       Thread-254704][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 12:22:55,897 [DEBUG][       Thread-254704][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 12:22:55,910 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 12:22:55,911 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 12:22:55,913 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 12:22:55,915 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 12:22:55,921 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 12:22:55,923 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 12:22:55,923 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 12:22:55,924 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 12:22:55,924 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.432230 -999.00  +11.90  13.53     44   +0.10 1 1 1 1 1   888    0 13.02 55.67 ----- 17.1 13.5 36.8 19.7 16.4 -28.1 15.0 -29.0 14.7 -28.8 16.1 -26.4
2025-06-13 12:22:55,924 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 12:22:55,924 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 12:22:55,925 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.432230
2025-06-13 12:22:55,925 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 12:22:55,926 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 12:22:55,926 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 12:22:55,926 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 12:22:55,926 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 12:22:55,926 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T12:22:44', tmtdew=13.6, humidity=38.78, cloud=0.0, wind=15.21, temperature=12.08, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T10:22:24.672', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 12:22:55,926 [DEBUG][       Thread-254704][   transport.py][1871] : EOF in transport thread
2025-06-13 12:22:56,010 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 12:22:56,019 [DEBUG][       Thread-254707][   transport.py][1871] : starting thread (client mode): 0x867b7b80
2025-06-13 12:22:56,019 [DEBUG][       Thread-254707][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 12:22:56,033 [DEBUG][       Thread-254707][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 12:22:56,033 [ INFO][       Thread-254707][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 12:22:56,041 [DEBUG][       Thread-254707][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 12:22:56,041 [DEBUG][       Thread-254707][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 12:22:56,041 [DEBUG][       Thread-254707][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 12:22:56,041 [DEBUG][       Thread-254707][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:22:56,041 [DEBUG][       Thread-254707][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:22:56,041 [DEBUG][       Thread-254707][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:22:56,041 [DEBUG][       Thread-254707][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:22:56,041 [DEBUG][       Thread-254707][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 12:22:56,041 [DEBUG][       Thread-254707][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 12:22:56,041 [DEBUG][       Thread-254707][   transport.py][1871] : client lang: <none>
2025-06-13 12:22:56,041 [DEBUG][       Thread-254707][   transport.py][1871] : server lang: <none>
2025-06-13 12:22:56,041 [DEBUG][       Thread-254707][   transport.py][1871] : kex follows: False
2025-06-13 12:22:56,041 [DEBUG][       Thread-254707][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 12:22:56,041 [DEBUG][       Thread-254707][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 12:22:56,041 [DEBUG][       Thread-254707][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 12:22:56,041 [DEBUG][       Thread-254707][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 12:22:56,041 [DEBUG][       Thread-254707][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 12:22:56,041 [DEBUG][       Thread-254707][   transport.py][1871] : Compression: none
2025-06-13 12:22:56,041 [DEBUG][       Thread-254707][   transport.py][1871] : === End of kex handshake ===
2025-06-13 12:22:56,099 [DEBUG][       Thread-254707][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 12:22:56,099 [DEBUG][       Thread-254707][   transport.py][1871] : Switch to new keys ...
2025-06-13 12:22:56,099 [DEBUG][       Thread-254707][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 12:22:56,099 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 12:22:56,099 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 12:22:56,157 [DEBUG][       Thread-254707][   transport.py][1871] : userauth is OK
2025-06-13 12:22:56,158 [DEBUG][       Thread-254707][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 12:22:56,158 [DEBUG][       Thread-254707][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 12:22:56,158 [DEBUG][       Thread-254707][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 12:22:56,158 [DEBUG][       Thread-254707][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 12:22:56,183 [ INFO][       Thread-254707][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 12:22:56,184 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 12:22:56,184 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 12:22:57,196 [DEBUG][       Thread-254707][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 12:22:57,196 [DEBUG][       Thread-254707][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 12:22:57,245 [DEBUG][       Thread-254707][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 12:22:57,245 [DEBUG][       Thread-254707][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 12:22:57,256 [DEBUG][       Thread-254707][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 12:22:57,265 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 12:22:57,265 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 12:22:57,274 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 12:22:57,291 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 12:22:57,291 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 12:22:57,292 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 12:22:57,301 [DEBUG][       Thread-254707][   transport.py][1871] : EOF in transport thread
2025-06-13 12:22:58,223 [DEBUG][Thread-254709 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:23:07,259 [DEBUG][Thread-254710 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:23:07,302 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 12:23:07,303 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 12:23:07,303 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 12:23:07,305 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 12:23:07,765 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 12, 22, 44), 13.6, 38.78, 0.0, 15.21, 12.08, 0, 0, 0, 2, 0, 0),)
2025-06-13 12:23:07,765 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 12:22:44
2025-06-13 12:23:07,844 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 12:23:07,848 [DEBUG][       Thread-254711][   transport.py][1871] : starting thread (client mode): 0x86368430
2025-06-13 12:23:07,848 [DEBUG][       Thread-254711][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 12:23:07,868 [DEBUG][       Thread-254711][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 12:23:07,869 [ INFO][       Thread-254711][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 12:23:07,870 [DEBUG][       Thread-254711][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 12:23:07,870 [DEBUG][       Thread-254711][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 12:23:07,870 [DEBUG][       Thread-254711][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 12:23:07,870 [DEBUG][       Thread-254711][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:23:07,870 [DEBUG][       Thread-254711][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:23:07,870 [DEBUG][       Thread-254711][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:23:07,870 [DEBUG][       Thread-254711][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:23:07,870 [DEBUG][       Thread-254711][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 12:23:07,870 [DEBUG][       Thread-254711][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 12:23:07,870 [DEBUG][       Thread-254711][   transport.py][1871] : client lang: <none>
2025-06-13 12:23:07,870 [DEBUG][       Thread-254711][   transport.py][1871] : server lang: <none>
2025-06-13 12:23:07,870 [DEBUG][       Thread-254711][   transport.py][1871] : kex follows: False
2025-06-13 12:23:07,870 [DEBUG][       Thread-254711][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 12:23:07,870 [DEBUG][       Thread-254711][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 12:23:07,870 [DEBUG][       Thread-254711][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 12:23:07,870 [DEBUG][       Thread-254711][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 12:23:07,870 [DEBUG][       Thread-254711][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 12:23:07,870 [DEBUG][       Thread-254711][   transport.py][1871] : Compression: none
2025-06-13 12:23:07,870 [DEBUG][       Thread-254711][   transport.py][1871] : === End of kex handshake ===
2025-06-13 12:23:07,878 [DEBUG][       Thread-254711][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 12:23:07,878 [DEBUG][       Thread-254711][   transport.py][1871] : Switch to new keys ...
2025-06-13 12:23:07,879 [DEBUG][       Thread-254711][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 12:23:07,879 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 12:23:07,879 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 12:23:07,880 [DEBUG][       Thread-254711][   transport.py][1871] : userauth is OK
2025-06-13 12:23:07,905 [ INFO][       Thread-254711][   transport.py][1871] : Authentication (password) successful!
2025-06-13 12:23:07,906 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 12:23:08,538 [DEBUG][       Thread-254711][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 12:23:08,538 [DEBUG][       Thread-254711][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 12:23:08,581 [DEBUG][       Thread-254711][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 12:23:08,581 [DEBUG][       Thread-254711][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 12:23:08,584 [DEBUG][       Thread-254711][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 12:23:08,595 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 12:23:08,596 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 12:23:08,598 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 12:23:08,599 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 12:23:08,605 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 12:23:08,607 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 12:23:08,607 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 12:23:08,608 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 12:23:08,608 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.432230 -999.00  +11.90  13.53     44   +0.10 1 1 1 1 1   888    0 13.02 55.67 ----- 17.1 13.5 36.8 19.7 16.4 -28.1 15.0 -29.0 14.7 -28.8 16.1 -26.4
2025-06-13 12:23:08,608 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 12:23:08,608 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 12:23:08,608 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.432230
2025-06-13 12:23:08,608 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 12:23:08,609 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 12:23:08,609 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 12:23:08,609 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 12:23:08,609 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 12:23:08,609 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T12:22:44', tmtdew=13.6, humidity=38.78, cloud=0.0, wind=15.21, temperature=12.08, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T10:22:24.672', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 12:23:08,609 [DEBUG][       Thread-254711][   transport.py][1871] : EOF in transport thread
2025-06-13 12:23:08,692 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 12:23:12,017 [DEBUG][Thread-254714 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:23:16,280 [DEBUG][Thread-254715 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:23:21,758 [DEBUG][Thread-254716 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:23:22,833 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:23:22,835 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:23:25,304 [DEBUG][Thread-254717 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:23:34,323 [DEBUG][Thread-254718 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:23:42,927 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:23:42,928 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:23:43,343 [DEBUG][Thread-254719 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:23:52,364 [DEBUG][Thread-254720 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:24:01,383 [DEBUG][Thread-254721 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:24:10,402 [DEBUG][Thread-254722 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:24:12,067 [DEBUG][Thread-254723 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:24:19,422 [DEBUG][Thread-254724 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:24:22,917 [DEBUG][Thread-254725 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:24:24,000 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:24:24,002 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:24:28,441 [DEBUG][Thread-254726 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:24:37,461 [DEBUG][Thread-254727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:24:43,066 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:24:43,066 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:24:46,479 [DEBUG][Thread-254728 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:24:55,499 [DEBUG][Thread-254729 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:25:04,521 [DEBUG][Thread-254730 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:25:12,112 [DEBUG][Thread-254731 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:25:13,545 [DEBUG][Thread-254732 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:25:17,588 [WARNING][ poll_weather_worker][      driver.py][ 286] : Unable to open ssh connection for writing weather state to io.saao.ac.za: [Errno 110] Connection timed out
2025-06-13 12:25:22,563 [DEBUG][Thread-254733 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:25:24,068 [DEBUG][Thread-254734 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:25:25,131 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:25:25,132 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:25:27,599 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 12:25:27,599 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 12:25:27,599 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 12:25:27,602 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 12:25:28,096 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 12, 25, 22), 13.63, 38.67, 0.0, 13.94, 11.99, 0, 0, 0, 2, 0, 0),)
2025-06-13 12:25:28,096 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 12:25:22
2025-06-13 12:25:28,179 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 12:25:28,184 [DEBUG][       Thread-254735][   transport.py][1871] : starting thread (client mode): 0x8636b010
2025-06-13 12:25:28,184 [DEBUG][       Thread-254735][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 12:25:28,204 [DEBUG][       Thread-254735][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 12:25:28,204 [ INFO][       Thread-254735][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 12:25:28,207 [DEBUG][       Thread-254735][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 12:25:28,207 [DEBUG][       Thread-254735][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 12:25:28,208 [DEBUG][       Thread-254735][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 12:25:28,208 [DEBUG][       Thread-254735][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:25:28,208 [DEBUG][       Thread-254735][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:25:28,208 [DEBUG][       Thread-254735][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:25:28,208 [DEBUG][       Thread-254735][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:25:28,208 [DEBUG][       Thread-254735][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 12:25:28,208 [DEBUG][       Thread-254735][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 12:25:28,208 [DEBUG][       Thread-254735][   transport.py][1871] : client lang: <none>
2025-06-13 12:25:28,208 [DEBUG][       Thread-254735][   transport.py][1871] : server lang: <none>
2025-06-13 12:25:28,208 [DEBUG][       Thread-254735][   transport.py][1871] : kex follows: False
2025-06-13 12:25:28,208 [DEBUG][       Thread-254735][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 12:25:28,208 [DEBUG][       Thread-254735][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 12:25:28,208 [DEBUG][       Thread-254735][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 12:25:28,208 [DEBUG][       Thread-254735][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 12:25:28,208 [DEBUG][       Thread-254735][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 12:25:28,208 [DEBUG][       Thread-254735][   transport.py][1871] : Compression: none
2025-06-13 12:25:28,208 [DEBUG][       Thread-254735][   transport.py][1871] : === End of kex handshake ===
2025-06-13 12:25:28,225 [DEBUG][       Thread-254735][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 12:25:28,225 [DEBUG][       Thread-254735][   transport.py][1871] : Switch to new keys ...
2025-06-13 12:25:28,225 [DEBUG][       Thread-254735][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 12:25:28,226 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 12:25:28,226 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 12:25:28,227 [DEBUG][       Thread-254735][   transport.py][1871] : userauth is OK
2025-06-13 12:25:28,253 [ INFO][       Thread-254735][   transport.py][1871] : Authentication (password) successful!
2025-06-13 12:25:28,254 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 12:25:29,011 [DEBUG][       Thread-254735][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 12:25:29,011 [DEBUG][       Thread-254735][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 12:25:29,053 [DEBUG][       Thread-254735][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 12:25:29,053 [DEBUG][       Thread-254735][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 12:25:29,056 [DEBUG][       Thread-254735][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 12:25:29,069 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 12:25:29,070 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 12:25:29,072 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 12:25:29,073 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 12:25:29,078 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 12:25:29,080 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 12:25:29,081 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 12:25:29,081 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 12:25:29,081 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.433619 -999.00  +11.70  13.81     44   +0.00 1 1 1 1 1   888    0 13.14 50.31 ----- 16.6 13.8 46.1 19.9 16.4 -29.3 15.1 -30.0 14.8 -28.0 16.1 -26.6
2025-06-13 12:25:29,081 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 12:25:29,082 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 12:25:29,082 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.433619
2025-06-13 12:25:29,082 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 12:25:29,083 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 12:25:29,083 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 12:25:29,083 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 12:25:29,083 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 12:25:29,083 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T12:25:22', tmtdew=13.63, humidity=38.67, cloud=0.0, wind=13.94, temperature=11.99, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T10:24:24.682', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 12:25:29,083 [DEBUG][       Thread-254735][   transport.py][1871] : EOF in transport thread
2025-06-13 12:25:29,167 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 12:25:29,179 [DEBUG][       Thread-254738][   transport.py][1871] : starting thread (client mode): 0x867b7b80
2025-06-13 12:25:29,179 [DEBUG][       Thread-254738][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 12:25:29,194 [DEBUG][       Thread-254738][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 12:25:29,194 [ INFO][       Thread-254738][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 12:25:29,203 [DEBUG][       Thread-254738][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 12:25:29,203 [DEBUG][       Thread-254738][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 12:25:29,203 [DEBUG][       Thread-254738][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 12:25:29,203 [DEBUG][       Thread-254738][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:25:29,203 [DEBUG][       Thread-254738][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:25:29,203 [DEBUG][       Thread-254738][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:25:29,203 [DEBUG][       Thread-254738][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:25:29,203 [DEBUG][       Thread-254738][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 12:25:29,203 [DEBUG][       Thread-254738][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 12:25:29,203 [DEBUG][       Thread-254738][   transport.py][1871] : client lang: <none>
2025-06-13 12:25:29,203 [DEBUG][       Thread-254738][   transport.py][1871] : server lang: <none>
2025-06-13 12:25:29,203 [DEBUG][       Thread-254738][   transport.py][1871] : kex follows: False
2025-06-13 12:25:29,203 [DEBUG][       Thread-254738][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 12:25:29,203 [DEBUG][       Thread-254738][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 12:25:29,203 [DEBUG][       Thread-254738][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 12:25:29,203 [DEBUG][       Thread-254738][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 12:25:29,204 [DEBUG][       Thread-254738][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 12:25:29,204 [DEBUG][       Thread-254738][   transport.py][1871] : Compression: none
2025-06-13 12:25:29,204 [DEBUG][       Thread-254738][   transport.py][1871] : === End of kex handshake ===
2025-06-13 12:25:29,262 [DEBUG][       Thread-254738][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 12:25:29,262 [DEBUG][       Thread-254738][   transport.py][1871] : Switch to new keys ...
2025-06-13 12:25:29,263 [DEBUG][       Thread-254738][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 12:25:29,263 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 12:25:29,264 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 12:25:29,329 [DEBUG][       Thread-254738][   transport.py][1871] : userauth is OK
2025-06-13 12:25:29,330 [DEBUG][       Thread-254738][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 12:25:29,330 [DEBUG][       Thread-254738][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 12:25:29,330 [DEBUG][       Thread-254738][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 12:25:29,330 [DEBUG][       Thread-254738][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 12:25:29,349 [ INFO][       Thread-254738][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 12:25:29,350 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 12:25:29,350 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 12:25:30,380 [DEBUG][       Thread-254738][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 12:25:30,380 [DEBUG][       Thread-254738][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 12:25:30,428 [DEBUG][       Thread-254738][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 12:25:30,428 [DEBUG][       Thread-254738][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 12:25:30,438 [DEBUG][       Thread-254738][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 12:25:30,447 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 12:25:30,447 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 12:25:30,458 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 12:25:30,474 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 12:25:30,475 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 12:25:30,475 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 12:25:30,483 [DEBUG][       Thread-254738][   transport.py][1871] : EOF in transport thread
2025-06-13 12:25:31,581 [DEBUG][Thread-254740 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:25:40,485 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 12:25:40,486 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 12:25:40,486 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 12:25:40,489 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 12:25:40,607 [DEBUG][Thread-254741 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:25:40,975 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 12, 25, 22), 13.63, 38.67, 0.0, 13.94, 11.99, 0, 0, 0, 2, 0, 0),)
2025-06-13 12:25:40,975 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 12:25:22
2025-06-13 12:25:41,058 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 12:25:41,062 [DEBUG][       Thread-254742][   transport.py][1871] : starting thread (client mode): 0x8636b010
2025-06-13 12:25:41,062 [DEBUG][       Thread-254742][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 12:25:41,083 [DEBUG][       Thread-254742][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 12:25:41,083 [ INFO][       Thread-254742][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 12:25:41,085 [DEBUG][       Thread-254742][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 12:25:41,085 [DEBUG][       Thread-254742][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 12:25:41,085 [DEBUG][       Thread-254742][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 12:25:41,086 [DEBUG][       Thread-254742][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:25:41,086 [DEBUG][       Thread-254742][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:25:41,086 [DEBUG][       Thread-254742][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:25:41,086 [DEBUG][       Thread-254742][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:25:41,086 [DEBUG][       Thread-254742][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 12:25:41,086 [DEBUG][       Thread-254742][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 12:25:41,086 [DEBUG][       Thread-254742][   transport.py][1871] : client lang: <none>
2025-06-13 12:25:41,086 [DEBUG][       Thread-254742][   transport.py][1871] : server lang: <none>
2025-06-13 12:25:41,086 [DEBUG][       Thread-254742][   transport.py][1871] : kex follows: False
2025-06-13 12:25:41,086 [DEBUG][       Thread-254742][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 12:25:41,086 [DEBUG][       Thread-254742][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 12:25:41,086 [DEBUG][       Thread-254742][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 12:25:41,086 [DEBUG][       Thread-254742][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 12:25:41,086 [DEBUG][       Thread-254742][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 12:25:41,086 [DEBUG][       Thread-254742][   transport.py][1871] : Compression: none
2025-06-13 12:25:41,086 [DEBUG][       Thread-254742][   transport.py][1871] : === End of kex handshake ===
2025-06-13 12:25:41,101 [DEBUG][       Thread-254742][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 12:25:41,102 [DEBUG][       Thread-254742][   transport.py][1871] : Switch to new keys ...
2025-06-13 12:25:41,102 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 12:25:41,102 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 12:25:41,103 [DEBUG][       Thread-254742][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 12:25:41,104 [DEBUG][       Thread-254742][   transport.py][1871] : userauth is OK
2025-06-13 12:25:41,116 [ INFO][       Thread-254742][   transport.py][1871] : Authentication (password) successful!
2025-06-13 12:25:41,117 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 12:25:41,768 [DEBUG][       Thread-254742][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 12:25:41,769 [DEBUG][       Thread-254742][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 12:25:41,813 [DEBUG][       Thread-254742][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 12:25:41,813 [DEBUG][       Thread-254742][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 12:25:41,826 [DEBUG][       Thread-254742][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 12:25:41,837 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 12:25:41,838 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 12:25:41,840 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 12:25:41,842 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 12:25:41,847 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 12:25:41,849 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 12:25:41,849 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 12:25:41,850 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 12:25:41,850 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.434313 -999.00  +11.90  14.06     43   +0.00 1 1 1 1 1   888    0 12.69 43.07 ----- 17.9 14.1 29.8 16.9 16.6 -28.4 15.2 -30.0 14.9 -28.6 16.3 -26.7
2025-06-13 12:25:41,850 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 12:25:41,850 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 12:25:41,850 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.434313
2025-06-13 12:25:41,851 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 12:25:41,851 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 12:25:41,851 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 12:25:41,851 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 12:25:41,851 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 12:25:41,852 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T12:25:22', tmtdew=13.63, humidity=38.67, cloud=0.0, wind=13.94, temperature=11.99, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T10:25:24.643', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 12:25:41,853 [DEBUG][       Thread-254742][   transport.py][1871] : EOF in transport thread
2025-06-13 12:25:41,935 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 12:25:41,945 [DEBUG][       Thread-254745][   transport.py][1871] : starting thread (client mode): 0x863eea70
2025-06-13 12:25:41,945 [DEBUG][       Thread-254745][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 12:25:41,965 [DEBUG][       Thread-254745][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 12:25:41,965 [ INFO][       Thread-254745][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 12:25:41,972 [DEBUG][       Thread-254745][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 12:25:41,972 [DEBUG][       Thread-254745][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 12:25:41,972 [DEBUG][       Thread-254745][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 12:25:41,973 [DEBUG][       Thread-254745][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:25:41,973 [DEBUG][       Thread-254745][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:25:41,973 [DEBUG][       Thread-254745][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:25:41,973 [DEBUG][       Thread-254745][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:25:41,973 [DEBUG][       Thread-254745][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 12:25:41,973 [DEBUG][       Thread-254745][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 12:25:41,973 [DEBUG][       Thread-254745][   transport.py][1871] : client lang: <none>
2025-06-13 12:25:41,973 [DEBUG][       Thread-254745][   transport.py][1871] : server lang: <none>
2025-06-13 12:25:41,973 [DEBUG][       Thread-254745][   transport.py][1871] : kex follows: False
2025-06-13 12:25:41,973 [DEBUG][       Thread-254745][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 12:25:41,973 [DEBUG][       Thread-254745][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 12:25:41,973 [DEBUG][       Thread-254745][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 12:25:41,973 [DEBUG][       Thread-254745][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 12:25:41,973 [DEBUG][       Thread-254745][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 12:25:41,973 [DEBUG][       Thread-254745][   transport.py][1871] : Compression: none
2025-06-13 12:25:41,973 [DEBUG][       Thread-254745][   transport.py][1871] : === End of kex handshake ===
2025-06-13 12:25:42,031 [DEBUG][       Thread-254745][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 12:25:42,032 [DEBUG][       Thread-254745][   transport.py][1871] : Switch to new keys ...
2025-06-13 12:25:42,032 [DEBUG][       Thread-254745][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 12:25:42,033 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 12:25:42,033 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 12:25:42,088 [DEBUG][       Thread-254745][   transport.py][1871] : userauth is OK
2025-06-13 12:25:42,089 [DEBUG][       Thread-254745][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 12:25:42,089 [DEBUG][       Thread-254745][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 12:25:42,089 [DEBUG][       Thread-254745][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 12:25:42,089 [DEBUG][       Thread-254745][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 12:25:42,110 [ INFO][       Thread-254745][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 12:25:42,110 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 12:25:42,111 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 12:25:43,139 [DEBUG][       Thread-254745][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 12:25:43,140 [DEBUG][       Thread-254745][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 12:25:43,188 [DEBUG][       Thread-254745][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 12:25:43,188 [DEBUG][       Thread-254745][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 12:25:43,198 [DEBUG][       Thread-254745][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 12:25:43,205 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:25:43,206 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:25:43,208 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 12:25:43,208 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 12:25:43,219 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 12:25:43,230 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 12:25:43,230 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 12:25:43,230 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 12:25:43,240 [DEBUG][       Thread-254745][   transport.py][1871] : EOF in transport thread
2025-06-13 12:25:49,624 [DEBUG][Thread-254747 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:25:53,241 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 12:25:53,241 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 12:25:53,241 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 12:25:53,244 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 12:25:53,728 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 12, 25, 22), 13.63, 38.67, 0.0, 13.94, 11.99, 0, 0, 0, 2, 0, 0),)
2025-06-13 12:25:53,728 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 12:25:22
2025-06-13 12:25:53,809 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 12:25:53,813 [DEBUG][       Thread-254748][   transport.py][1871] : starting thread (client mode): 0x8636bd00
2025-06-13 12:25:53,813 [DEBUG][       Thread-254748][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 12:25:53,833 [DEBUG][       Thread-254748][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 12:25:53,833 [ INFO][       Thread-254748][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 12:25:53,837 [DEBUG][       Thread-254748][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 12:25:53,837 [DEBUG][       Thread-254748][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 12:25:53,837 [DEBUG][       Thread-254748][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 12:25:53,837 [DEBUG][       Thread-254748][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:25:53,837 [DEBUG][       Thread-254748][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:25:53,837 [DEBUG][       Thread-254748][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:25:53,837 [DEBUG][       Thread-254748][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:25:53,837 [DEBUG][       Thread-254748][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 12:25:53,837 [DEBUG][       Thread-254748][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 12:25:53,837 [DEBUG][       Thread-254748][   transport.py][1871] : client lang: <none>
2025-06-13 12:25:53,837 [DEBUG][       Thread-254748][   transport.py][1871] : server lang: <none>
2025-06-13 12:25:53,837 [DEBUG][       Thread-254748][   transport.py][1871] : kex follows: False
2025-06-13 12:25:53,837 [DEBUG][       Thread-254748][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 12:25:53,837 [DEBUG][       Thread-254748][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 12:25:53,837 [DEBUG][       Thread-254748][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 12:25:53,837 [DEBUG][       Thread-254748][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 12:25:53,837 [DEBUG][       Thread-254748][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 12:25:53,837 [DEBUG][       Thread-254748][   transport.py][1871] : Compression: none
2025-06-13 12:25:53,837 [DEBUG][       Thread-254748][   transport.py][1871] : === End of kex handshake ===
2025-06-13 12:25:53,852 [DEBUG][       Thread-254748][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 12:25:53,852 [DEBUG][       Thread-254748][   transport.py][1871] : Switch to new keys ...
2025-06-13 12:25:53,853 [DEBUG][       Thread-254748][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 12:25:53,853 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 12:25:53,853 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 12:25:53,853 [DEBUG][       Thread-254748][   transport.py][1871] : userauth is OK
2025-06-13 12:25:53,866 [ INFO][       Thread-254748][   transport.py][1871] : Authentication (password) successful!
2025-06-13 12:25:53,866 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 12:25:54,485 [DEBUG][       Thread-254748][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 12:25:54,485 [DEBUG][       Thread-254748][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 12:25:54,529 [DEBUG][       Thread-254748][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 12:25:54,529 [DEBUG][       Thread-254748][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 12:25:54,532 [DEBUG][       Thread-254748][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 12:25:54,545 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 12:25:54,546 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 12:25:54,547 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 12:25:54,548 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 12:25:54,554 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 12:25:54,555 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 12:25:54,556 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 12:25:54,556 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 12:25:54,556 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.434313 -999.00  +11.90  14.06     43   +0.00 1 1 1 1 1   888    0 12.69 43.07 ----- 17.9 14.1 29.8 16.9 16.6 -28.4 15.2 -30.0 14.9 -28.6 16.3 -26.7
2025-06-13 12:25:54,557 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 12:25:54,557 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 12:25:54,557 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.434313
2025-06-13 12:25:54,557 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 12:25:54,558 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 12:25:54,558 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 12:25:54,558 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 12:25:54,558 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 12:25:54,558 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T12:25:22', tmtdew=13.63, humidity=38.67, cloud=0.0, wind=13.94, temperature=11.99, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T10:25:24.643', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 12:25:54,559 [DEBUG][       Thread-254748][   transport.py][1871] : EOF in transport thread
2025-06-13 12:25:54,642 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 12:25:54,655 [DEBUG][       Thread-254751][   transport.py][1871] : starting thread (client mode): 0x863a7d30
2025-06-13 12:25:54,655 [DEBUG][       Thread-254751][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 12:25:54,672 [DEBUG][       Thread-254751][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 12:25:54,672 [ INFO][       Thread-254751][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 12:25:54,683 [DEBUG][       Thread-254751][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 12:25:54,683 [DEBUG][       Thread-254751][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 12:25:54,684 [DEBUG][       Thread-254751][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 12:25:54,684 [DEBUG][       Thread-254751][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:25:54,684 [DEBUG][       Thread-254751][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:25:54,684 [DEBUG][       Thread-254751][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:25:54,684 [DEBUG][       Thread-254751][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:25:54,684 [DEBUG][       Thread-254751][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 12:25:54,684 [DEBUG][       Thread-254751][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 12:25:54,684 [DEBUG][       Thread-254751][   transport.py][1871] : client lang: <none>
2025-06-13 12:25:54,684 [DEBUG][       Thread-254751][   transport.py][1871] : server lang: <none>
2025-06-13 12:25:54,684 [DEBUG][       Thread-254751][   transport.py][1871] : kex follows: False
2025-06-13 12:25:54,684 [DEBUG][       Thread-254751][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 12:25:54,684 [DEBUG][       Thread-254751][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 12:25:54,684 [DEBUG][       Thread-254751][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 12:25:54,684 [DEBUG][       Thread-254751][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 12:25:54,684 [DEBUG][       Thread-254751][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 12:25:54,684 [DEBUG][       Thread-254751][   transport.py][1871] : Compression: none
2025-06-13 12:25:54,684 [DEBUG][       Thread-254751][   transport.py][1871] : === End of kex handshake ===
2025-06-13 12:25:54,741 [DEBUG][       Thread-254751][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 12:25:54,742 [DEBUG][       Thread-254751][   transport.py][1871] : Switch to new keys ...
2025-06-13 12:25:54,742 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 12:25:54,743 [DEBUG][       Thread-254751][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 12:25:54,744 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 12:25:54,800 [DEBUG][       Thread-254751][   transport.py][1871] : userauth is OK
2025-06-13 12:25:54,801 [DEBUG][       Thread-254751][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 12:25:54,801 [DEBUG][       Thread-254751][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 12:25:54,801 [DEBUG][       Thread-254751][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 12:25:54,801 [DEBUG][       Thread-254751][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 12:25:54,820 [ INFO][       Thread-254751][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 12:25:54,820 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 12:25:54,821 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 12:25:55,825 [DEBUG][       Thread-254751][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 12:25:55,825 [DEBUG][       Thread-254751][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 12:25:55,877 [DEBUG][       Thread-254751][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 12:25:55,877 [DEBUG][       Thread-254751][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 12:25:55,887 [DEBUG][       Thread-254751][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 12:25:55,901 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 12:25:55,902 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 12:25:55,917 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 12:25:55,925 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 12:25:55,925 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 12:25:55,926 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 12:25:55,935 [DEBUG][       Thread-254751][   transport.py][1871] : EOF in transport thread
2025-06-13 12:25:58,642 [DEBUG][Thread-254753 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:26:05,932 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 12:26:05,932 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 12:26:05,932 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 12:26:05,935 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 12:26:06,408 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 12, 25, 54), 13.59, 38.81, 0.0, 14.05, 12.1, 0, 0, 0, 2, 0, 0),)
2025-06-13 12:26:06,408 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 12:25:54
2025-06-13 12:26:06,487 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 12:26:06,490 [DEBUG][       Thread-254754][   transport.py][1871] : starting thread (client mode): 0x8636b280
2025-06-13 12:26:06,490 [DEBUG][       Thread-254754][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 12:26:06,509 [DEBUG][       Thread-254754][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 12:26:06,509 [ INFO][       Thread-254754][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 12:26:06,511 [DEBUG][       Thread-254754][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 12:26:06,512 [DEBUG][       Thread-254754][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 12:26:06,512 [DEBUG][       Thread-254754][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 12:26:06,512 [DEBUG][       Thread-254754][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:26:06,512 [DEBUG][       Thread-254754][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:26:06,512 [DEBUG][       Thread-254754][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:26:06,512 [DEBUG][       Thread-254754][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:26:06,512 [DEBUG][       Thread-254754][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 12:26:06,512 [DEBUG][       Thread-254754][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 12:26:06,512 [DEBUG][       Thread-254754][   transport.py][1871] : client lang: <none>
2025-06-13 12:26:06,512 [DEBUG][       Thread-254754][   transport.py][1871] : server lang: <none>
2025-06-13 12:26:06,512 [DEBUG][       Thread-254754][   transport.py][1871] : kex follows: False
2025-06-13 12:26:06,512 [DEBUG][       Thread-254754][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 12:26:06,512 [DEBUG][       Thread-254754][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 12:26:06,512 [DEBUG][       Thread-254754][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 12:26:06,512 [DEBUG][       Thread-254754][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 12:26:06,512 [DEBUG][       Thread-254754][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 12:26:06,512 [DEBUG][       Thread-254754][   transport.py][1871] : Compression: none
2025-06-13 12:26:06,512 [DEBUG][       Thread-254754][   transport.py][1871] : === End of kex handshake ===
2025-06-13 12:26:06,521 [DEBUG][       Thread-254754][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 12:26:06,521 [DEBUG][       Thread-254754][   transport.py][1871] : Switch to new keys ...
2025-06-13 12:26:06,521 [DEBUG][       Thread-254754][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 12:26:06,522 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 12:26:06,522 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 12:26:06,523 [DEBUG][       Thread-254754][   transport.py][1871] : userauth is OK
2025-06-13 12:26:06,535 [ INFO][       Thread-254754][   transport.py][1871] : Authentication (password) successful!
2025-06-13 12:26:06,536 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 12:26:07,128 [DEBUG][       Thread-254754][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 12:26:07,128 [DEBUG][       Thread-254754][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 12:26:07,169 [DEBUG][       Thread-254754][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 12:26:07,169 [DEBUG][       Thread-254754][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 12:26:07,173 [DEBUG][       Thread-254754][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 12:26:07,187 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 12:26:07,188 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 12:26:07,190 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 12:26:07,192 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 12:26:07,198 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 12:26:07,200 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 12:26:07,201 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 12:26:07,201 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 12:26:07,202 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.434660 -999.00  +12.00  20.28     43   +0.10 1 1 1 1 1   888    0 12.70 43.67 ----- 22.4 20.3 43.4 24.6 16.5 -28.6 15.2 -29.3 14.9 -29.0 16.3 -26.6
2025-06-13 12:26:07,202 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 12:26:07,202 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 12:26:07,202 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.434660
2025-06-13 12:26:07,202 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 12:26:07,203 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 12:26:07,203 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 12:26:07,203 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 12:26:07,203 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 12:26:07,203 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T12:25:54', tmtdew=13.59, humidity=38.81, cloud=0.0, wind=14.05, temperature=12.1, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T10:25:54.624', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 12:26:07,203 [DEBUG][       Thread-254754][   transport.py][1871] : EOF in transport thread
2025-06-13 12:26:07,279 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 12:26:07,294 [DEBUG][       Thread-254757][   transport.py][1871] : starting thread (client mode): 0x867b4970
2025-06-13 12:26:07,294 [DEBUG][       Thread-254757][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 12:26:07,312 [DEBUG][       Thread-254757][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 12:26:07,312 [ INFO][       Thread-254757][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 12:26:07,321 [DEBUG][       Thread-254757][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 12:26:07,321 [DEBUG][       Thread-254757][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 12:26:07,321 [DEBUG][       Thread-254757][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 12:26:07,321 [DEBUG][       Thread-254757][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:26:07,321 [DEBUG][       Thread-254757][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:26:07,321 [DEBUG][       Thread-254757][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:26:07,321 [DEBUG][       Thread-254757][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:26:07,321 [DEBUG][       Thread-254757][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 12:26:07,321 [DEBUG][       Thread-254757][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 12:26:07,321 [DEBUG][       Thread-254757][   transport.py][1871] : client lang: <none>
2025-06-13 12:26:07,321 [DEBUG][       Thread-254757][   transport.py][1871] : server lang: <none>
2025-06-13 12:26:07,321 [DEBUG][       Thread-254757][   transport.py][1871] : kex follows: False
2025-06-13 12:26:07,321 [DEBUG][       Thread-254757][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 12:26:07,321 [DEBUG][       Thread-254757][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 12:26:07,322 [DEBUG][       Thread-254757][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 12:26:07,322 [DEBUG][       Thread-254757][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 12:26:07,322 [DEBUG][       Thread-254757][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 12:26:07,322 [DEBUG][       Thread-254757][   transport.py][1871] : Compression: none
2025-06-13 12:26:07,322 [DEBUG][       Thread-254757][   transport.py][1871] : === End of kex handshake ===
2025-06-13 12:26:07,389 [DEBUG][       Thread-254757][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 12:26:07,390 [DEBUG][       Thread-254757][   transport.py][1871] : Switch to new keys ...
2025-06-13 12:26:07,390 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 12:26:07,391 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 12:26:07,392 [DEBUG][       Thread-254757][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 12:26:07,454 [DEBUG][       Thread-254757][   transport.py][1871] : userauth is OK
2025-06-13 12:26:07,455 [DEBUG][       Thread-254757][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 12:26:07,455 [DEBUG][       Thread-254757][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 12:26:07,455 [DEBUG][       Thread-254757][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 12:26:07,455 [DEBUG][       Thread-254757][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 12:26:07,477 [ INFO][       Thread-254757][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 12:26:07,477 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 12:26:07,478 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 12:26:07,662 [DEBUG][Thread-254759 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:26:08,561 [DEBUG][       Thread-254757][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 12:26:08,561 [DEBUG][       Thread-254757][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 12:26:08,612 [DEBUG][       Thread-254757][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 12:26:08,612 [DEBUG][       Thread-254757][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 12:26:08,622 [DEBUG][       Thread-254757][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 12:26:08,631 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 12:26:08,631 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 12:26:08,640 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 12:26:08,649 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 12:26:08,649 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 12:26:08,650 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 12:26:08,658 [DEBUG][       Thread-254757][   transport.py][1871] : EOF in transport thread
2025-06-13 12:26:12,164 [DEBUG][Thread-254760 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:26:16,700 [DEBUG][Thread-254761 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:26:18,660 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 12:26:18,661 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 12:26:18,661 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 12:26:18,663 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 12:26:19,136 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 12, 25, 54), 13.59, 38.81, 0.0, 14.05, 12.1, 0, 0, 0, 2, 0, 0),)
2025-06-13 12:26:19,136 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 12:25:54
2025-06-13 12:26:19,215 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 12:26:19,219 [DEBUG][       Thread-254762][   transport.py][1871] : starting thread (client mode): 0x863eec80
2025-06-13 12:26:19,219 [DEBUG][       Thread-254762][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 12:26:19,242 [DEBUG][       Thread-254762][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 12:26:19,242 [ INFO][       Thread-254762][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 12:26:19,244 [DEBUG][       Thread-254762][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 12:26:19,244 [DEBUG][       Thread-254762][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 12:26:19,244 [DEBUG][       Thread-254762][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 12:26:19,244 [DEBUG][       Thread-254762][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:26:19,244 [DEBUG][       Thread-254762][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:26:19,244 [DEBUG][       Thread-254762][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:26:19,244 [DEBUG][       Thread-254762][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:26:19,244 [DEBUG][       Thread-254762][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 12:26:19,244 [DEBUG][       Thread-254762][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 12:26:19,244 [DEBUG][       Thread-254762][   transport.py][1871] : client lang: <none>
2025-06-13 12:26:19,244 [DEBUG][       Thread-254762][   transport.py][1871] : server lang: <none>
2025-06-13 12:26:19,244 [DEBUG][       Thread-254762][   transport.py][1871] : kex follows: False
2025-06-13 12:26:19,244 [DEBUG][       Thread-254762][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 12:26:19,245 [DEBUG][       Thread-254762][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 12:26:19,245 [DEBUG][       Thread-254762][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 12:26:19,245 [DEBUG][       Thread-254762][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 12:26:19,245 [DEBUG][       Thread-254762][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 12:26:19,245 [DEBUG][       Thread-254762][   transport.py][1871] : Compression: none
2025-06-13 12:26:19,245 [DEBUG][       Thread-254762][   transport.py][1871] : === End of kex handshake ===
2025-06-13 12:26:19,262 [DEBUG][       Thread-254762][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 12:26:19,262 [DEBUG][       Thread-254762][   transport.py][1871] : Switch to new keys ...
2025-06-13 12:26:19,263 [DEBUG][       Thread-254762][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 12:26:19,263 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 12:26:19,263 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 12:26:19,264 [DEBUG][       Thread-254762][   transport.py][1871] : userauth is OK
2025-06-13 12:26:19,277 [ INFO][       Thread-254762][   transport.py][1871] : Authentication (password) successful!
2025-06-13 12:26:19,278 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 12:26:19,916 [DEBUG][       Thread-254762][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 12:26:19,916 [DEBUG][       Thread-254762][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 12:26:19,957 [DEBUG][       Thread-254762][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 12:26:19,957 [DEBUG][       Thread-254762][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 12:26:19,959 [DEBUG][       Thread-254762][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 12:26:19,973 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 12:26:19,973 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 12:26:19,975 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 12:26:19,976 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 12:26:19,980 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 12:26:19,982 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 12:26:19,982 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 12:26:19,983 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 12:26:19,983 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.434660 -999.00  +12.00  20.28     43   +0.10 1 1 1 1 1   888    0 12.70 43.67 ----- 22.4 20.3 43.4 24.6 16.5 -28.6 15.2 -29.3 14.9 -29.0 16.3 -26.6
2025-06-13 12:26:19,983 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 12:26:19,983 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 12:26:19,983 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.434660
2025-06-13 12:26:19,983 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 12:26:19,984 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 12:26:19,984 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 12:26:19,984 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 12:26:19,984 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 12:26:19,984 [DEBUG][       Thread-254762][   transport.py][1871] : EOF in transport thread
2025-06-13 12:26:19,984 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T12:25:54', tmtdew=13.59, humidity=38.81, cloud=0.0, wind=14.05, temperature=12.1, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T10:25:54.624', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 12:26:20,068 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 12:26:20,079 [DEBUG][       Thread-254765][   transport.py][1871] : starting thread (client mode): 0x863a6d10
2025-06-13 12:26:20,079 [DEBUG][       Thread-254765][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 12:26:20,093 [DEBUG][       Thread-254765][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 12:26:20,093 [ INFO][       Thread-254765][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 12:26:20,101 [DEBUG][       Thread-254765][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 12:26:20,101 [DEBUG][       Thread-254765][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 12:26:20,101 [DEBUG][       Thread-254765][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 12:26:20,101 [DEBUG][       Thread-254765][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:26:20,101 [DEBUG][       Thread-254765][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:26:20,101 [DEBUG][       Thread-254765][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:26:20,101 [DEBUG][       Thread-254765][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:26:20,101 [DEBUG][       Thread-254765][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 12:26:20,101 [DEBUG][       Thread-254765][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 12:26:20,101 [DEBUG][       Thread-254765][   transport.py][1871] : client lang: <none>
2025-06-13 12:26:20,101 [DEBUG][       Thread-254765][   transport.py][1871] : server lang: <none>
2025-06-13 12:26:20,101 [DEBUG][       Thread-254765][   transport.py][1871] : kex follows: False
2025-06-13 12:26:20,101 [DEBUG][       Thread-254765][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 12:26:20,101 [DEBUG][       Thread-254765][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 12:26:20,102 [DEBUG][       Thread-254765][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 12:26:20,102 [DEBUG][       Thread-254765][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 12:26:20,102 [DEBUG][       Thread-254765][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 12:26:20,102 [DEBUG][       Thread-254765][   transport.py][1871] : Compression: none
2025-06-13 12:26:20,102 [DEBUG][       Thread-254765][   transport.py][1871] : === End of kex handshake ===
2025-06-13 12:26:20,164 [DEBUG][       Thread-254765][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 12:26:20,165 [DEBUG][       Thread-254765][   transport.py][1871] : Switch to new keys ...
2025-06-13 12:26:20,165 [DEBUG][       Thread-254765][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 12:26:20,165 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 12:26:20,166 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 12:26:20,226 [DEBUG][       Thread-254765][   transport.py][1871] : userauth is OK
2025-06-13 12:26:20,226 [DEBUG][       Thread-254765][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 12:26:20,235 [DEBUG][       Thread-254765][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 12:26:20,235 [DEBUG][       Thread-254765][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 12:26:20,235 [DEBUG][       Thread-254765][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 12:26:20,256 [ INFO][       Thread-254765][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 12:26:20,257 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 12:26:20,257 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 12:26:21,258 [DEBUG][       Thread-254765][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 12:26:21,259 [DEBUG][       Thread-254765][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 12:26:21,314 [DEBUG][       Thread-254765][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 12:26:21,314 [DEBUG][       Thread-254765][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 12:26:21,323 [DEBUG][       Thread-254765][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 12:26:21,332 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 12:26:21,332 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 12:26:21,340 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 12:26:21,348 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 12:26:21,348 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 12:26:21,348 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 12:26:21,356 [DEBUG][       Thread-254765][   transport.py][1871] : EOF in transport thread
2025-06-13 12:26:25,174 [DEBUG][Thread-254767 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:26:25,722 [DEBUG][Thread-254768 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:26:26,251 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:26:26,253 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:26:31,358 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 12:26:31,359 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 12:26:31,359 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 12:26:31,362 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 12:26:31,834 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 12, 26, 26), 13.75, 38.5, 0.0, 17.84, 12.08, 0, 0, 0, 2, 0, 0),)
2025-06-13 12:26:31,834 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 12:26:26
2025-06-13 12:26:31,913 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 12:26:31,917 [DEBUG][       Thread-254769][   transport.py][1871] : starting thread (client mode): 0x863bd030
2025-06-13 12:26:31,917 [DEBUG][       Thread-254769][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 12:26:31,932 [DEBUG][       Thread-254769][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 12:26:31,932 [ INFO][       Thread-254769][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 12:26:31,935 [DEBUG][       Thread-254769][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 12:26:31,936 [DEBUG][       Thread-254769][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 12:26:31,936 [DEBUG][       Thread-254769][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 12:26:31,936 [DEBUG][       Thread-254769][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:26:31,936 [DEBUG][       Thread-254769][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:26:31,936 [DEBUG][       Thread-254769][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:26:31,936 [DEBUG][       Thread-254769][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:26:31,936 [DEBUG][       Thread-254769][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 12:26:31,936 [DEBUG][       Thread-254769][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 12:26:31,936 [DEBUG][       Thread-254769][   transport.py][1871] : client lang: <none>
2025-06-13 12:26:31,936 [DEBUG][       Thread-254769][   transport.py][1871] : server lang: <none>
2025-06-13 12:26:31,936 [DEBUG][       Thread-254769][   transport.py][1871] : kex follows: False
2025-06-13 12:26:31,936 [DEBUG][       Thread-254769][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 12:26:31,936 [DEBUG][       Thread-254769][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 12:26:31,936 [DEBUG][       Thread-254769][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 12:26:31,936 [DEBUG][       Thread-254769][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 12:26:31,936 [DEBUG][       Thread-254769][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 12:26:31,936 [DEBUG][       Thread-254769][   transport.py][1871] : Compression: none
2025-06-13 12:26:31,936 [DEBUG][       Thread-254769][   transport.py][1871] : === End of kex handshake ===
2025-06-13 12:26:31,952 [DEBUG][       Thread-254769][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 12:26:31,953 [DEBUG][       Thread-254769][   transport.py][1871] : Switch to new keys ...
2025-06-13 12:26:31,953 [DEBUG][       Thread-254769][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 12:26:31,954 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 12:26:31,954 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 12:26:31,955 [DEBUG][       Thread-254769][   transport.py][1871] : userauth is OK
2025-06-13 12:26:31,968 [ INFO][       Thread-254769][   transport.py][1871] : Authentication (password) successful!
2025-06-13 12:26:31,969 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 12:26:32,598 [DEBUG][       Thread-254769][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 12:26:32,598 [DEBUG][       Thread-254769][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 12:26:32,641 [DEBUG][       Thread-254769][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 12:26:32,641 [DEBUG][       Thread-254769][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 12:26:32,645 [DEBUG][       Thread-254769][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 12:26:32,656 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 12:26:32,656 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 12:26:32,658 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 12:26:32,660 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 12:26:32,667 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 12:26:32,669 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 12:26:32,669 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 12:26:32,670 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 12:26:32,670 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.434660 -999.00  +12.00  20.28     43   +0.10 1 1 1 1 1   888    0 12.70 43.67 ----- 22.4 20.3 43.4 24.6 16.5 -28.6 15.2 -29.3 14.9 -29.0 16.3 -26.6
2025-06-13 12:26:32,670 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 12:26:32,670 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 12:26:32,670 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.434660
2025-06-13 12:26:32,671 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 12:26:32,671 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 12:26:32,671 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 12:26:32,671 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 12:26:32,671 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 12:26:32,671 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T12:26:26', tmtdew=13.75, humidity=38.5, cloud=0.0, wind=17.84, temperature=12.08, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T10:25:54.624', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 12:26:32,672 [DEBUG][       Thread-254769][   transport.py][1871] : EOF in transport thread
2025-06-13 12:26:32,755 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 12:26:32,764 [DEBUG][       Thread-254772][   transport.py][1871] : starting thread (client mode): 0x867b5d80
2025-06-13 12:26:32,764 [DEBUG][       Thread-254772][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 12:26:32,779 [DEBUG][       Thread-254772][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 12:26:32,779 [ INFO][       Thread-254772][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 12:26:32,788 [DEBUG][       Thread-254772][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 12:26:32,788 [DEBUG][       Thread-254772][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 12:26:32,788 [DEBUG][       Thread-254772][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 12:26:32,788 [DEBUG][       Thread-254772][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:26:32,788 [DEBUG][       Thread-254772][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:26:32,788 [DEBUG][       Thread-254772][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:26:32,788 [DEBUG][       Thread-254772][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:26:32,788 [DEBUG][       Thread-254772][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 12:26:32,788 [DEBUG][       Thread-254772][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 12:26:32,788 [DEBUG][       Thread-254772][   transport.py][1871] : client lang: <none>
2025-06-13 12:26:32,788 [DEBUG][       Thread-254772][   transport.py][1871] : server lang: <none>
2025-06-13 12:26:32,788 [DEBUG][       Thread-254772][   transport.py][1871] : kex follows: False
2025-06-13 12:26:32,788 [DEBUG][       Thread-254772][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 12:26:32,788 [DEBUG][       Thread-254772][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 12:26:32,788 [DEBUG][       Thread-254772][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 12:26:32,788 [DEBUG][       Thread-254772][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 12:26:32,788 [DEBUG][       Thread-254772][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 12:26:32,788 [DEBUG][       Thread-254772][   transport.py][1871] : Compression: none
2025-06-13 12:26:32,788 [DEBUG][       Thread-254772][   transport.py][1871] : === End of kex handshake ===
2025-06-13 12:26:32,845 [DEBUG][       Thread-254772][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 12:26:32,846 [DEBUG][       Thread-254772][   transport.py][1871] : Switch to new keys ...
2025-06-13 12:26:32,846 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 12:26:32,847 [DEBUG][       Thread-254772][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 12:26:32,848 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 12:26:32,905 [DEBUG][       Thread-254772][   transport.py][1871] : userauth is OK
2025-06-13 12:26:32,905 [DEBUG][       Thread-254772][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 12:26:32,906 [DEBUG][       Thread-254772][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 12:26:32,906 [DEBUG][       Thread-254772][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 12:26:32,906 [DEBUG][       Thread-254772][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 12:26:32,924 [ INFO][       Thread-254772][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 12:26:32,925 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 12:26:32,925 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 12:26:33,941 [DEBUG][       Thread-254772][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 12:26:33,941 [DEBUG][       Thread-254772][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 12:26:33,991 [DEBUG][       Thread-254772][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 12:26:33,991 [DEBUG][       Thread-254772][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 12:26:33,999 [DEBUG][       Thread-254772][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 12:26:34,008 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 12:26:34,008 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 12:26:34,016 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 12:26:34,024 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 12:26:34,024 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 12:26:34,024 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 12:26:34,033 [DEBUG][       Thread-254772][   transport.py][1871] : EOF in transport thread
2025-06-13 12:26:34,743 [DEBUG][Thread-254774 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:26:43,344 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:26:43,346 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:26:43,786 [DEBUG][Thread-254775 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:26:44,034 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 12:26:44,035 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 12:26:44,035 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 12:26:44,038 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 12:26:44,508 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 12, 26, 26), 13.75, 38.5, 0.0, 17.84, 12.08, 0, 0, 0, 2, 0, 0),)
2025-06-13 12:26:44,508 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 12:26:26
2025-06-13 12:26:44,587 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 12:26:44,591 [DEBUG][       Thread-254776][   transport.py][1871] : starting thread (client mode): 0x863bd3f0
2025-06-13 12:26:44,591 [DEBUG][       Thread-254776][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 12:26:44,612 [DEBUG][       Thread-254776][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 12:26:44,612 [ INFO][       Thread-254776][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 12:26:44,615 [DEBUG][       Thread-254776][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 12:26:44,615 [DEBUG][       Thread-254776][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 12:26:44,615 [DEBUG][       Thread-254776][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 12:26:44,615 [DEBUG][       Thread-254776][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:26:44,615 [DEBUG][       Thread-254776][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:26:44,615 [DEBUG][       Thread-254776][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:26:44,615 [DEBUG][       Thread-254776][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:26:44,616 [DEBUG][       Thread-254776][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 12:26:44,616 [DEBUG][       Thread-254776][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 12:26:44,616 [DEBUG][       Thread-254776][   transport.py][1871] : client lang: <none>
2025-06-13 12:26:44,616 [DEBUG][       Thread-254776][   transport.py][1871] : server lang: <none>
2025-06-13 12:26:44,616 [DEBUG][       Thread-254776][   transport.py][1871] : kex follows: False
2025-06-13 12:26:44,616 [DEBUG][       Thread-254776][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 12:26:44,616 [DEBUG][       Thread-254776][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 12:26:44,616 [DEBUG][       Thread-254776][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 12:26:44,616 [DEBUG][       Thread-254776][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 12:26:44,616 [DEBUG][       Thread-254776][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 12:26:44,616 [DEBUG][       Thread-254776][   transport.py][1871] : Compression: none
2025-06-13 12:26:44,616 [DEBUG][       Thread-254776][   transport.py][1871] : === End of kex handshake ===
2025-06-13 12:26:44,633 [DEBUG][       Thread-254776][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 12:26:44,633 [DEBUG][       Thread-254776][   transport.py][1871] : Switch to new keys ...
2025-06-13 12:26:44,634 [DEBUG][       Thread-254776][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 12:26:44,634 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 12:26:44,634 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 12:26:44,635 [DEBUG][       Thread-254776][   transport.py][1871] : userauth is OK
2025-06-13 12:26:44,648 [ INFO][       Thread-254776][   transport.py][1871] : Authentication (password) successful!
2025-06-13 12:26:44,648 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 12:26:45,318 [DEBUG][       Thread-254776][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 12:26:45,318 [DEBUG][       Thread-254776][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 12:26:45,361 [DEBUG][       Thread-254776][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 12:26:45,361 [DEBUG][       Thread-254776][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 12:26:45,365 [DEBUG][       Thread-254776][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 12:26:45,376 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 12:26:45,377 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 12:26:45,379 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 12:26:45,381 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 12:26:45,387 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 12:26:45,388 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 12:26:45,389 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 12:26:45,389 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 12:26:45,390 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.435007 -999.00  +11.80  17.20     43   -0.20 1 1 1 1 1   888    0 12.72 42.70 ----- 17.6 17.2 33.2 24.3 16.6 -29.0 15.2 -30.7 14.9 -29.1 16.2 -26.9
2025-06-13 12:26:45,390 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 12:26:45,390 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 12:26:45,390 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.435007
2025-06-13 12:26:45,390 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 12:26:45,391 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 12:26:45,391 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 12:26:45,391 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 12:26:45,391 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 12:26:45,391 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T12:26:26', tmtdew=13.75, humidity=38.5, cloud=0.0, wind=17.84, temperature=12.08, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T10:26:24.605', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 12:26:45,391 [DEBUG][       Thread-254776][   transport.py][1871] : EOF in transport thread
2025-06-13 12:26:45,475 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 12:26:52,809 [DEBUG][Thread-254779 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:27:01,829 [DEBUG][Thread-254780 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:27:10,850 [DEBUG][Thread-254781 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:27:12,209 [DEBUG][Thread-254782 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:27:19,867 [DEBUG][Thread-254783 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:27:26,310 [DEBUG][Thread-254784 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:27:27,361 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:27:27,362 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:27:28,890 [DEBUG][Thread-254785 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:27:37,911 [DEBUG][Thread-254786 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:27:43,507 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:27:43,508 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:27:46,931 [DEBUG][Thread-254787 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:27:55,947 [DEBUG][Thread-254788 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:28:04,965 [DEBUG][Thread-254789 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:28:12,259 [DEBUG][Thread-254790 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:28:13,987 [DEBUG][Thread-254791 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:28:23,008 [DEBUG][Thread-254792 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:28:27,432 [DEBUG][Thread-254793 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:28:28,516 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:28:28,518 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:28:32,031 [DEBUG][Thread-254794 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:28:41,051 [DEBUG][Thread-254795 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:28:43,664 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:28:43,665 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:28:50,074 [DEBUG][Thread-254796 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:28:54,676 [WARNING][ poll_weather_worker][      driver.py][ 286] : Unable to open ssh connection for writing weather state to io.saao.ac.za: [Errno 110] Connection timed out
2025-06-13 12:28:59,098 [DEBUG][Thread-254797 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:29:04,684 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 12:29:04,685 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 12:29:04,685 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 12:29:04,686 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 12:29:05,175 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 12, 28, 32), 13.42, 39.26, 0.0, 11.13, 12.0, 0, 0, 0, 2, 0, 0),)
2025-06-13 12:29:05,175 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 12:28:32
2025-06-13 12:29:05,259 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 12:29:05,263 [DEBUG][       Thread-254798][   transport.py][1871] : starting thread (client mode): 0x8636b3a0
2025-06-13 12:29:05,263 [DEBUG][       Thread-254798][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 12:29:05,283 [DEBUG][       Thread-254798][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 12:29:05,283 [ INFO][       Thread-254798][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 12:29:05,286 [DEBUG][       Thread-254798][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 12:29:05,286 [DEBUG][       Thread-254798][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 12:29:05,286 [DEBUG][       Thread-254798][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 12:29:05,286 [DEBUG][       Thread-254798][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:29:05,286 [DEBUG][       Thread-254798][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:29:05,287 [DEBUG][       Thread-254798][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:29:05,287 [DEBUG][       Thread-254798][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:29:05,287 [DEBUG][       Thread-254798][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 12:29:05,287 [DEBUG][       Thread-254798][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 12:29:05,287 [DEBUG][       Thread-254798][   transport.py][1871] : client lang: <none>
2025-06-13 12:29:05,287 [DEBUG][       Thread-254798][   transport.py][1871] : server lang: <none>
2025-06-13 12:29:05,287 [DEBUG][       Thread-254798][   transport.py][1871] : kex follows: False
2025-06-13 12:29:05,287 [DEBUG][       Thread-254798][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 12:29:05,287 [DEBUG][       Thread-254798][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 12:29:05,287 [DEBUG][       Thread-254798][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 12:29:05,287 [DEBUG][       Thread-254798][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 12:29:05,287 [DEBUG][       Thread-254798][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 12:29:05,287 [DEBUG][       Thread-254798][   transport.py][1871] : Compression: none
2025-06-13 12:29:05,287 [DEBUG][       Thread-254798][   transport.py][1871] : === End of kex handshake ===
2025-06-13 12:29:05,301 [DEBUG][       Thread-254798][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 12:29:05,301 [DEBUG][       Thread-254798][   transport.py][1871] : Switch to new keys ...
2025-06-13 12:29:05,301 [DEBUG][       Thread-254798][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 12:29:05,301 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 12:29:05,301 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 12:29:05,302 [DEBUG][       Thread-254798][   transport.py][1871] : userauth is OK
2025-06-13 12:29:05,314 [ INFO][       Thread-254798][   transport.py][1871] : Authentication (password) successful!
2025-06-13 12:29:05,315 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 12:29:05,929 [DEBUG][       Thread-254798][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 12:29:05,929 [DEBUG][       Thread-254798][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 12:29:05,972 [DEBUG][       Thread-254798][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 12:29:05,972 [DEBUG][       Thread-254798][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 12:29:05,975 [DEBUG][       Thread-254798][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 12:29:05,988 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 12:29:05,988 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 12:29:05,990 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 12:29:05,991 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 12:29:05,993 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 12:29:05,994 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 12:29:05,994 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 12:29:05,994 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 12:29:05,994 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.436396 -999.00  +12.00  14.64     44   +0.20 1 1 1 1 1   888    0 13.00 41.09 ----- 17.9 14.6 14.1 17.4 16.6 -27.9 15.3 -29.5 15.1 -27.7 16.4 -26.6
2025-06-13 12:29:05,994 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 12:29:05,994 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 12:29:05,994 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.436396
2025-06-13 12:29:05,994 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 12:29:05,995 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 12:29:05,995 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 12:29:05,995 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 12:29:05,995 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 12:29:05,995 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T12:28:32', tmtdew=13.42, humidity=39.26, cloud=0.0, wind=11.13, temperature=12.0, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T10:28:24.614', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 12:29:05,995 [DEBUG][       Thread-254798][   transport.py][1871] : EOF in transport thread
2025-06-13 12:29:06,069 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 12:29:06,080 [DEBUG][       Thread-254801][   transport.py][1871] : starting thread (client mode): 0x863be710
2025-06-13 12:29:06,080 [DEBUG][       Thread-254801][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 12:29:06,096 [DEBUG][       Thread-254801][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 12:29:06,096 [ INFO][       Thread-254801][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 12:29:06,104 [DEBUG][       Thread-254801][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 12:29:06,104 [DEBUG][       Thread-254801][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 12:29:06,104 [DEBUG][       Thread-254801][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 12:29:06,104 [DEBUG][       Thread-254801][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:29:06,104 [DEBUG][       Thread-254801][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:29:06,104 [DEBUG][       Thread-254801][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:29:06,104 [DEBUG][       Thread-254801][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:29:06,104 [DEBUG][       Thread-254801][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 12:29:06,104 [DEBUG][       Thread-254801][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 12:29:06,104 [DEBUG][       Thread-254801][   transport.py][1871] : client lang: <none>
2025-06-13 12:29:06,104 [DEBUG][       Thread-254801][   transport.py][1871] : server lang: <none>
2025-06-13 12:29:06,104 [DEBUG][       Thread-254801][   transport.py][1871] : kex follows: False
2025-06-13 12:29:06,104 [DEBUG][       Thread-254801][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 12:29:06,104 [DEBUG][       Thread-254801][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 12:29:06,104 [DEBUG][       Thread-254801][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 12:29:06,104 [DEBUG][       Thread-254801][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 12:29:06,104 [DEBUG][       Thread-254801][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 12:29:06,104 [DEBUG][       Thread-254801][   transport.py][1871] : Compression: none
2025-06-13 12:29:06,104 [DEBUG][       Thread-254801][   transport.py][1871] : === End of kex handshake ===
2025-06-13 12:29:06,166 [DEBUG][       Thread-254801][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 12:29:06,166 [DEBUG][       Thread-254801][   transport.py][1871] : Switch to new keys ...
2025-06-13 12:29:06,166 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 12:29:06,166 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 12:29:06,166 [DEBUG][       Thread-254801][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 12:29:06,227 [DEBUG][       Thread-254801][   transport.py][1871] : userauth is OK
2025-06-13 12:29:06,227 [DEBUG][       Thread-254801][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 12:29:06,227 [DEBUG][       Thread-254801][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 12:29:06,227 [DEBUG][       Thread-254801][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 12:29:06,227 [DEBUG][       Thread-254801][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 12:29:06,241 [ INFO][       Thread-254801][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 12:29:06,242 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 12:29:06,242 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 12:29:07,277 [DEBUG][       Thread-254801][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 12:29:07,277 [DEBUG][       Thread-254801][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 12:29:07,328 [DEBUG][       Thread-254801][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 12:29:07,328 [DEBUG][       Thread-254801][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 12:29:07,340 [DEBUG][       Thread-254801][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 12:29:07,354 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 12:29:07,354 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 12:29:07,364 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 12:29:07,373 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 12:29:07,374 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 12:29:07,374 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 12:29:07,383 [DEBUG][       Thread-254801][   transport.py][1871] : EOF in transport thread
2025-06-13 12:29:08,126 [DEBUG][Thread-254803 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:29:12,308 [DEBUG][Thread-254804 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:29:17,163 [DEBUG][Thread-254805 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:29:17,385 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 12:29:17,385 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 12:29:17,385 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 12:29:17,388 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 12:29:17,858 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 12, 29, 4), 13.33, 39.53, 0.0, 10.23, 12.0, 0, 0, 0, 2, 0, 0),)
2025-06-13 12:29:17,858 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 12:29:04
2025-06-13 12:29:17,940 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 12:29:17,944 [DEBUG][       Thread-254806][   transport.py][1871] : starting thread (client mode): 0x863becb0
2025-06-13 12:29:17,944 [DEBUG][       Thread-254806][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 12:29:17,964 [DEBUG][       Thread-254806][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 12:29:17,964 [ INFO][       Thread-254806][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 12:29:17,968 [DEBUG][       Thread-254806][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 12:29:17,968 [DEBUG][       Thread-254806][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 12:29:17,968 [DEBUG][       Thread-254806][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 12:29:17,968 [DEBUG][       Thread-254806][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:29:17,968 [DEBUG][       Thread-254806][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:29:17,968 [DEBUG][       Thread-254806][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:29:17,968 [DEBUG][       Thread-254806][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:29:17,968 [DEBUG][       Thread-254806][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 12:29:17,968 [DEBUG][       Thread-254806][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 12:29:17,968 [DEBUG][       Thread-254806][   transport.py][1871] : client lang: <none>
2025-06-13 12:29:17,968 [DEBUG][       Thread-254806][   transport.py][1871] : server lang: <none>
2025-06-13 12:29:17,968 [DEBUG][       Thread-254806][   transport.py][1871] : kex follows: False
2025-06-13 12:29:17,968 [DEBUG][       Thread-254806][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 12:29:17,968 [DEBUG][       Thread-254806][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 12:29:17,968 [DEBUG][       Thread-254806][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 12:29:17,968 [DEBUG][       Thread-254806][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 12:29:17,968 [DEBUG][       Thread-254806][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 12:29:17,968 [DEBUG][       Thread-254806][   transport.py][1871] : Compression: none
2025-06-13 12:29:17,968 [DEBUG][       Thread-254806][   transport.py][1871] : === End of kex handshake ===
2025-06-13 12:29:17,985 [DEBUG][       Thread-254806][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 12:29:17,986 [DEBUG][       Thread-254806][   transport.py][1871] : Switch to new keys ...
2025-06-13 12:29:17,986 [DEBUG][       Thread-254806][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 12:29:17,986 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 12:29:17,987 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 12:29:17,988 [DEBUG][       Thread-254806][   transport.py][1871] : userauth is OK
2025-06-13 12:29:18,001 [ INFO][       Thread-254806][   transport.py][1871] : Authentication (password) successful!
2025-06-13 12:29:18,001 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 12:29:18,612 [DEBUG][       Thread-254806][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 12:29:18,612 [DEBUG][       Thread-254806][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 12:29:18,653 [DEBUG][       Thread-254806][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 12:29:18,653 [DEBUG][       Thread-254806][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 12:29:18,657 [DEBUG][       Thread-254806][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 12:29:18,668 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 12:29:18,668 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 12:29:18,669 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 12:29:18,670 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 12:29:18,674 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 12:29:18,675 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 12:29:18,675 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 12:29:18,675 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 12:29:18,675 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.436396 -999.00  +12.00  14.64     44   +0.20 1 1 1 1 1   888    0 13.00 41.09 ----- 17.9 14.6 14.1 17.4 16.6 -27.9 15.3 -29.5 15.1 -27.7 16.4 -26.6
2025-06-13 12:29:18,675 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 12:29:18,675 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 12:29:18,675 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.436396
2025-06-13 12:29:18,675 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 12:29:18,675 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 12:29:18,675 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 12:29:18,675 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 12:29:18,675 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 12:29:18,675 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T12:29:04', tmtdew=13.33, humidity=39.53, cloud=0.0, wind=10.23, temperature=12.0, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T10:28:24.614', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 12:29:18,675 [DEBUG][       Thread-254806][   transport.py][1871] : EOF in transport thread
2025-06-13 12:29:18,747 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 12:29:18,761 [DEBUG][       Thread-254809][   transport.py][1871] : starting thread (client mode): 0x863a41f0
2025-06-13 12:29:18,761 [DEBUG][       Thread-254809][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 12:29:18,777 [DEBUG][       Thread-254809][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 12:29:18,777 [ INFO][       Thread-254809][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 12:29:18,784 [DEBUG][       Thread-254809][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 12:29:18,785 [DEBUG][       Thread-254809][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 12:29:18,785 [DEBUG][       Thread-254809][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 12:29:18,785 [DEBUG][       Thread-254809][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:29:18,785 [DEBUG][       Thread-254809][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:29:18,785 [DEBUG][       Thread-254809][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:29:18,785 [DEBUG][       Thread-254809][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:29:18,785 [DEBUG][       Thread-254809][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 12:29:18,785 [DEBUG][       Thread-254809][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 12:29:18,785 [DEBUG][       Thread-254809][   transport.py][1871] : client lang: <none>
2025-06-13 12:29:18,785 [DEBUG][       Thread-254809][   transport.py][1871] : server lang: <none>
2025-06-13 12:29:18,785 [DEBUG][       Thread-254809][   transport.py][1871] : kex follows: False
2025-06-13 12:29:18,785 [DEBUG][       Thread-254809][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 12:29:18,785 [DEBUG][       Thread-254809][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 12:29:18,785 [DEBUG][       Thread-254809][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 12:29:18,785 [DEBUG][       Thread-254809][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 12:29:18,785 [DEBUG][       Thread-254809][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 12:29:18,785 [DEBUG][       Thread-254809][   transport.py][1871] : Compression: none
2025-06-13 12:29:18,785 [DEBUG][       Thread-254809][   transport.py][1871] : === End of kex handshake ===
2025-06-13 12:29:18,844 [DEBUG][       Thread-254809][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 12:29:18,845 [DEBUG][       Thread-254809][   transport.py][1871] : Switch to new keys ...
2025-06-13 12:29:18,845 [DEBUG][       Thread-254809][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 12:29:18,845 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 12:29:18,846 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 12:29:18,903 [DEBUG][       Thread-254809][   transport.py][1871] : userauth is OK
2025-06-13 12:29:18,904 [DEBUG][       Thread-254809][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 12:29:18,904 [DEBUG][       Thread-254809][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 12:29:18,904 [DEBUG][       Thread-254809][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 12:29:18,904 [DEBUG][       Thread-254809][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 12:29:18,923 [ INFO][       Thread-254809][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 12:29:18,923 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 12:29:18,924 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 12:29:19,967 [DEBUG][       Thread-254809][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 12:29:19,967 [DEBUG][       Thread-254809][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 12:29:20,016 [DEBUG][       Thread-254809][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 12:29:20,016 [DEBUG][       Thread-254809][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 12:29:20,026 [DEBUG][       Thread-254809][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 12:29:20,036 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 12:29:20,036 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 12:29:20,046 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 12:29:20,055 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 12:29:20,056 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 12:29:20,056 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 12:29:20,065 [DEBUG][       Thread-254809][   transport.py][1871] : EOF in transport thread
2025-06-13 12:29:26,185 [DEBUG][Thread-254811 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:29:28,581 [DEBUG][Thread-254812 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:29:29,660 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:29:29,661 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:29:30,066 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 12:29:30,067 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 12:29:30,067 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 12:29:30,070 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 12:29:30,550 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 12, 29, 4), 13.33, 39.53, 0.0, 10.23, 12.0, 0, 0, 0, 2, 0, 0),)
2025-06-13 12:29:30,550 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 12:29:04
2025-06-13 12:29:30,632 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 12:29:30,636 [DEBUG][       Thread-254813][   transport.py][1871] : starting thread (client mode): 0x863a7460
2025-06-13 12:29:30,636 [DEBUG][       Thread-254813][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 12:29:30,657 [DEBUG][       Thread-254813][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 12:29:30,657 [ INFO][       Thread-254813][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 12:29:30,660 [DEBUG][       Thread-254813][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 12:29:30,660 [DEBUG][       Thread-254813][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 12:29:30,660 [DEBUG][       Thread-254813][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 12:29:30,660 [DEBUG][       Thread-254813][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:29:30,660 [DEBUG][       Thread-254813][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:29:30,660 [DEBUG][       Thread-254813][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:29:30,660 [DEBUG][       Thread-254813][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:29:30,660 [DEBUG][       Thread-254813][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 12:29:30,660 [DEBUG][       Thread-254813][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 12:29:30,660 [DEBUG][       Thread-254813][   transport.py][1871] : client lang: <none>
2025-06-13 12:29:30,660 [DEBUG][       Thread-254813][   transport.py][1871] : server lang: <none>
2025-06-13 12:29:30,660 [DEBUG][       Thread-254813][   transport.py][1871] : kex follows: False
2025-06-13 12:29:30,660 [DEBUG][       Thread-254813][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 12:29:30,660 [DEBUG][       Thread-254813][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 12:29:30,660 [DEBUG][       Thread-254813][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 12:29:30,660 [DEBUG][       Thread-254813][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 12:29:30,660 [DEBUG][       Thread-254813][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 12:29:30,660 [DEBUG][       Thread-254813][   transport.py][1871] : Compression: none
2025-06-13 12:29:30,660 [DEBUG][       Thread-254813][   transport.py][1871] : === End of kex handshake ===
2025-06-13 12:29:30,672 [DEBUG][       Thread-254813][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 12:29:30,672 [DEBUG][       Thread-254813][   transport.py][1871] : Switch to new keys ...
2025-06-13 12:29:30,672 [DEBUG][       Thread-254813][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 12:29:30,673 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 12:29:30,673 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 12:29:30,674 [DEBUG][       Thread-254813][   transport.py][1871] : userauth is OK
2025-06-13 12:29:30,687 [ INFO][       Thread-254813][   transport.py][1871] : Authentication (password) successful!
2025-06-13 12:29:30,687 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 12:29:31,391 [DEBUG][       Thread-254813][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 12:29:31,392 [DEBUG][       Thread-254813][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 12:29:31,433 [DEBUG][       Thread-254813][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 12:29:31,433 [DEBUG][       Thread-254813][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 12:29:31,436 [DEBUG][       Thread-254813][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 12:29:31,448 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 12:29:31,448 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 12:29:31,450 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 12:29:31,452 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 12:29:31,456 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 12:29:31,458 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 12:29:31,458 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 12:29:31,459 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 12:29:31,459 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.436743 -999.00  +11.90  20.01     45   +0.50 1 1 1 1 1   888    0 12.88 37.48 ----- 19.1 20.0 54.0 22.3 16.7 -28.4 15.3 -31.5 15.0 -29.3 16.4 -26.7
2025-06-13 12:29:31,459 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 12:29:31,459 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 12:29:31,459 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.436743
2025-06-13 12:29:31,460 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 12:29:31,460 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 12:29:31,460 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 12:29:31,461 [DEBUG][       Thread-254813][   transport.py][1871] : EOF in transport thread
2025-06-13 12:29:31,461 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 12:29:31,461 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 12:29:31,462 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T12:29:04', tmtdew=13.33, humidity=39.53, cloud=0.0, wind=10.23, temperature=12.0, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T10:28:54.595', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 12:29:31,545 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 12:29:31,555 [DEBUG][       Thread-254816][   transport.py][1871] : starting thread (client mode): 0x867b4970
2025-06-13 12:29:31,555 [DEBUG][       Thread-254816][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 12:29:31,570 [DEBUG][       Thread-254816][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 12:29:31,570 [ INFO][       Thread-254816][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 12:29:31,579 [DEBUG][       Thread-254816][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 12:29:31,579 [DEBUG][       Thread-254816][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 12:29:31,579 [DEBUG][       Thread-254816][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 12:29:31,580 [DEBUG][       Thread-254816][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:29:31,580 [DEBUG][       Thread-254816][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:29:31,580 [DEBUG][       Thread-254816][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:29:31,580 [DEBUG][       Thread-254816][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:29:31,580 [DEBUG][       Thread-254816][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 12:29:31,580 [DEBUG][       Thread-254816][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 12:29:31,580 [DEBUG][       Thread-254816][   transport.py][1871] : client lang: <none>
2025-06-13 12:29:31,580 [DEBUG][       Thread-254816][   transport.py][1871] : server lang: <none>
2025-06-13 12:29:31,580 [DEBUG][       Thread-254816][   transport.py][1871] : kex follows: False
2025-06-13 12:29:31,580 [DEBUG][       Thread-254816][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 12:29:31,580 [DEBUG][       Thread-254816][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 12:29:31,580 [DEBUG][       Thread-254816][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 12:29:31,580 [DEBUG][       Thread-254816][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 12:29:31,580 [DEBUG][       Thread-254816][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 12:29:31,580 [DEBUG][       Thread-254816][   transport.py][1871] : Compression: none
2025-06-13 12:29:31,580 [DEBUG][       Thread-254816][   transport.py][1871] : === End of kex handshake ===
2025-06-13 12:29:31,636 [DEBUG][       Thread-254816][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 12:29:31,636 [DEBUG][       Thread-254816][   transport.py][1871] : Switch to new keys ...
2025-06-13 12:29:31,637 [DEBUG][       Thread-254816][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 12:29:31,637 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 12:29:31,638 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 12:29:31,700 [DEBUG][       Thread-254816][   transport.py][1871] : userauth is OK
2025-06-13 12:29:31,701 [DEBUG][       Thread-254816][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 12:29:31,701 [DEBUG][       Thread-254816][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 12:29:31,701 [DEBUG][       Thread-254816][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 12:29:31,701 [DEBUG][       Thread-254816][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 12:29:31,720 [ INFO][       Thread-254816][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 12:29:31,720 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 12:29:31,721 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 12:29:32,730 [DEBUG][       Thread-254816][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 12:29:32,731 [DEBUG][       Thread-254816][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 12:29:32,781 [DEBUG][       Thread-254816][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 12:29:32,781 [DEBUG][       Thread-254816][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 12:29:32,793 [DEBUG][       Thread-254816][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 12:29:32,803 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 12:29:32,803 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 12:29:32,812 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 12:29:32,822 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 12:29:32,822 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 12:29:32,823 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 12:29:32,832 [DEBUG][       Thread-254816][   transport.py][1871] : EOF in transport thread
2025-06-13 12:29:35,221 [DEBUG][Thread-254818 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:29:42,827 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 12:29:42,828 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 12:29:42,828 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 12:29:42,831 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 12:29:43,302 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 12, 29, 36), 13.33, 39.46, 0.0, 14.13, 12.07, 0, 0, 0, 2, 0, 0),)
2025-06-13 12:29:43,302 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 12:29:36
2025-06-13 12:29:43,384 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 12:29:43,389 [DEBUG][       Thread-254819][   transport.py][1871] : starting thread (client mode): 0x863bd000
2025-06-13 12:29:43,389 [DEBUG][       Thread-254819][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 12:29:43,410 [DEBUG][       Thread-254819][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 12:29:43,410 [ INFO][       Thread-254819][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 12:29:43,414 [DEBUG][       Thread-254819][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 12:29:43,414 [DEBUG][       Thread-254819][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 12:29:43,414 [DEBUG][       Thread-254819][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 12:29:43,414 [DEBUG][       Thread-254819][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:29:43,414 [DEBUG][       Thread-254819][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:29:43,414 [DEBUG][       Thread-254819][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:29:43,414 [DEBUG][       Thread-254819][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:29:43,414 [DEBUG][       Thread-254819][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 12:29:43,414 [DEBUG][       Thread-254819][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 12:29:43,414 [DEBUG][       Thread-254819][   transport.py][1871] : client lang: <none>
2025-06-13 12:29:43,414 [DEBUG][       Thread-254819][   transport.py][1871] : server lang: <none>
2025-06-13 12:29:43,414 [DEBUG][       Thread-254819][   transport.py][1871] : kex follows: False
2025-06-13 12:29:43,414 [DEBUG][       Thread-254819][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 12:29:43,414 [DEBUG][       Thread-254819][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 12:29:43,414 [DEBUG][       Thread-254819][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 12:29:43,414 [DEBUG][       Thread-254819][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 12:29:43,415 [DEBUG][       Thread-254819][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 12:29:43,415 [DEBUG][       Thread-254819][   transport.py][1871] : Compression: none
2025-06-13 12:29:43,415 [DEBUG][       Thread-254819][   transport.py][1871] : === End of kex handshake ===
2025-06-13 12:29:43,432 [DEBUG][       Thread-254819][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 12:29:43,432 [DEBUG][       Thread-254819][   transport.py][1871] : Switch to new keys ...
2025-06-13 12:29:43,433 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 12:29:43,433 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 12:29:43,433 [DEBUG][       Thread-254819][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 12:29:43,434 [DEBUG][       Thread-254819][   transport.py][1871] : userauth is OK
2025-06-13 12:29:43,459 [ INFO][       Thread-254819][   transport.py][1871] : Authentication (password) successful!
2025-06-13 12:29:43,460 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 12:29:43,824 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:29:43,825 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:29:44,061 [DEBUG][       Thread-254819][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 12:29:44,062 [DEBUG][       Thread-254819][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 12:29:44,105 [DEBUG][       Thread-254819][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 12:29:44,105 [DEBUG][       Thread-254819][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 12:29:44,109 [DEBUG][       Thread-254819][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 12:29:44,118 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 12:29:44,119 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 12:29:44,121 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 12:29:44,123 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 12:29:44,128 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 12:29:44,131 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 12:29:44,131 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 12:29:44,132 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 12:29:44,132 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.436743 -999.00  +11.90  20.01     45   +0.50 1 1 1 1 1   888    0 12.88 37.48 ----- 19.1 20.0 54.0 22.3 16.7 -28.4 15.3 -31.5 15.0 -29.3 16.4 -26.7
2025-06-13 12:29:44,132 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 12:29:44,132 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 12:29:44,132 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.436743
2025-06-13 12:29:44,133 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 12:29:44,133 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 12:29:44,133 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 12:29:44,133 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 12:29:44,133 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 12:29:44,134 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T12:29:36', tmtdew=13.33, humidity=39.46, cloud=0.0, wind=14.13, temperature=12.07, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T10:28:54.595', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 12:29:44,135 [DEBUG][       Thread-254819][   transport.py][1871] : EOF in transport thread
2025-06-13 12:29:44,208 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 12:29:44,219 [DEBUG][       Thread-254822][   transport.py][1871] : starting thread (client mode): 0x863a73d0
2025-06-13 12:29:44,220 [DEBUG][       Thread-254822][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 12:29:44,235 [DEBUG][       Thread-254822][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 12:29:44,235 [ INFO][       Thread-254822][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 12:29:44,243 [DEBUG][       Thread-254822][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 12:29:44,243 [DEBUG][       Thread-254822][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 12:29:44,243 [DEBUG][       Thread-254822][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 12:29:44,243 [DEBUG][       Thread-254822][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:29:44,243 [DEBUG][       Thread-254822][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:29:44,243 [DEBUG][       Thread-254822][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:29:44,243 [DEBUG][       Thread-254822][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:29:44,243 [DEBUG][       Thread-254822][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 12:29:44,243 [DEBUG][       Thread-254822][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 12:29:44,243 [DEBUG][       Thread-254822][   transport.py][1871] : client lang: <none>
2025-06-13 12:29:44,243 [DEBUG][       Thread-254822][   transport.py][1871] : server lang: <none>
2025-06-13 12:29:44,243 [DEBUG][       Thread-254822][   transport.py][1871] : kex follows: False
2025-06-13 12:29:44,243 [DEBUG][       Thread-254822][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 12:29:44,244 [DEBUG][       Thread-254822][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 12:29:44,244 [DEBUG][       Thread-254822][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 12:29:44,244 [DEBUG][       Thread-254822][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 12:29:44,244 [DEBUG][       Thread-254822][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 12:29:44,244 [DEBUG][       Thread-254822][   transport.py][1871] : Compression: none
2025-06-13 12:29:44,244 [DEBUG][       Thread-254822][   transport.py][1871] : === End of kex handshake ===
2025-06-13 12:29:44,245 [DEBUG][Thread-254824 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:29:44,300 [DEBUG][       Thread-254822][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 12:29:44,301 [DEBUG][       Thread-254822][   transport.py][1871] : Switch to new keys ...
2025-06-13 12:29:44,301 [DEBUG][       Thread-254822][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 12:29:44,301 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 12:29:44,302 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 12:29:44,360 [DEBUG][       Thread-254822][   transport.py][1871] : userauth is OK
2025-06-13 12:29:44,361 [DEBUG][       Thread-254822][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 12:29:44,361 [DEBUG][       Thread-254822][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 12:29:44,361 [DEBUG][       Thread-254822][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 12:29:44,361 [DEBUG][       Thread-254822][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 12:29:44,379 [ INFO][       Thread-254822][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 12:29:44,380 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 12:29:44,380 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 12:29:45,417 [DEBUG][       Thread-254822][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 12:29:45,417 [DEBUG][       Thread-254822][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 12:29:45,469 [DEBUG][       Thread-254822][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 12:29:45,469 [DEBUG][       Thread-254822][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 12:29:45,480 [DEBUG][       Thread-254822][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 12:29:45,491 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 12:29:45,491 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 12:29:45,501 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 12:29:45,519 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 12:29:45,519 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 12:29:45,520 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 12:29:45,531 [DEBUG][       Thread-254822][   transport.py][1871] : EOF in transport thread
2025-06-13 12:29:53,277 [DEBUG][Thread-254825 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:29:55,530 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 12:29:55,531 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 12:29:55,531 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 12:29:55,533 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 12:29:55,998 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 12, 29, 36), 13.33, 39.46, 0.0, 14.13, 12.07, 0, 0, 0, 2, 0, 0),)
2025-06-13 12:29:55,998 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 12:29:36
2025-06-13 12:29:56,081 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 12:29:56,085 [DEBUG][       Thread-254826][   transport.py][1871] : starting thread (client mode): 0x863be950
2025-06-13 12:29:56,085 [DEBUG][       Thread-254826][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 12:29:56,105 [DEBUG][       Thread-254826][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 12:29:56,105 [ INFO][       Thread-254826][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 12:29:56,109 [DEBUG][       Thread-254826][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 12:29:56,109 [DEBUG][       Thread-254826][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 12:29:56,109 [DEBUG][       Thread-254826][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 12:29:56,109 [DEBUG][       Thread-254826][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:29:56,109 [DEBUG][       Thread-254826][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:29:56,109 [DEBUG][       Thread-254826][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:29:56,109 [DEBUG][       Thread-254826][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:29:56,109 [DEBUG][       Thread-254826][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 12:29:56,109 [DEBUG][       Thread-254826][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 12:29:56,109 [DEBUG][       Thread-254826][   transport.py][1871] : client lang: <none>
2025-06-13 12:29:56,109 [DEBUG][       Thread-254826][   transport.py][1871] : server lang: <none>
2025-06-13 12:29:56,109 [DEBUG][       Thread-254826][   transport.py][1871] : kex follows: False
2025-06-13 12:29:56,109 [DEBUG][       Thread-254826][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 12:29:56,109 [DEBUG][       Thread-254826][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 12:29:56,109 [DEBUG][       Thread-254826][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 12:29:56,109 [DEBUG][       Thread-254826][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 12:29:56,109 [DEBUG][       Thread-254826][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 12:29:56,109 [DEBUG][       Thread-254826][   transport.py][1871] : Compression: none
2025-06-13 12:29:56,110 [DEBUG][       Thread-254826][   transport.py][1871] : === End of kex handshake ===
2025-06-13 12:29:56,125 [DEBUG][       Thread-254826][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 12:29:56,126 [DEBUG][       Thread-254826][   transport.py][1871] : Switch to new keys ...
2025-06-13 12:29:56,126 [DEBUG][       Thread-254826][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 12:29:56,126 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 12:29:56,127 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 12:29:56,130 [DEBUG][       Thread-254826][   transport.py][1871] : userauth is OK
2025-06-13 12:29:56,155 [ INFO][       Thread-254826][   transport.py][1871] : Authentication (password) successful!
2025-06-13 12:29:56,156 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 12:29:56,797 [DEBUG][       Thread-254826][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 12:29:56,797 [DEBUG][       Thread-254826][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 12:29:56,841 [DEBUG][       Thread-254826][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 12:29:56,841 [DEBUG][       Thread-254826][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 12:29:56,846 [DEBUG][       Thread-254826][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 12:29:56,856 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 12:29:56,857 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 12:29:56,859 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 12:29:56,861 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 12:29:56,869 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 12:29:56,871 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 12:29:56,871 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 12:29:56,872 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 12:29:56,872 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.436743 -999.00  +11.90  20.01     45   +0.50 1 1 1 1 1   888    0 12.88 37.48 ----- 19.1 20.0 54.0 22.3 16.7 -28.4 15.3 -31.5 15.0 -29.3 16.4 -26.7
2025-06-13 12:29:56,872 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 12:29:56,872 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 12:29:56,872 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.436743
2025-06-13 12:29:56,873 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 12:29:56,873 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 12:29:56,874 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 12:29:56,874 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 12:29:56,874 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 12:29:56,874 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T12:29:36', tmtdew=13.33, humidity=39.46, cloud=0.0, wind=14.13, temperature=12.07, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T10:28:54.595', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 12:29:56,875 [DEBUG][       Thread-254826][   transport.py][1871] : EOF in transport thread
2025-06-13 12:29:56,954 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 12:29:56,964 [DEBUG][       Thread-254829][   transport.py][1871] : starting thread (client mode): 0x867b7640
2025-06-13 12:29:56,964 [DEBUG][       Thread-254829][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 12:29:56,980 [DEBUG][       Thread-254829][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 12:29:56,980 [ INFO][       Thread-254829][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 12:29:56,988 [DEBUG][       Thread-254829][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 12:29:56,988 [DEBUG][       Thread-254829][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 12:29:56,988 [DEBUG][       Thread-254829][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 12:29:56,988 [DEBUG][       Thread-254829][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:29:56,988 [DEBUG][       Thread-254829][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:29:56,988 [DEBUG][       Thread-254829][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:29:56,988 [DEBUG][       Thread-254829][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:29:56,988 [DEBUG][       Thread-254829][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 12:29:56,988 [DEBUG][       Thread-254829][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 12:29:56,988 [DEBUG][       Thread-254829][   transport.py][1871] : client lang: <none>
2025-06-13 12:29:56,988 [DEBUG][       Thread-254829][   transport.py][1871] : server lang: <none>
2025-06-13 12:29:56,988 [DEBUG][       Thread-254829][   transport.py][1871] : kex follows: False
2025-06-13 12:29:56,988 [DEBUG][       Thread-254829][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 12:29:56,988 [DEBUG][       Thread-254829][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 12:29:56,988 [DEBUG][       Thread-254829][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 12:29:56,988 [DEBUG][       Thread-254829][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 12:29:56,988 [DEBUG][       Thread-254829][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 12:29:56,989 [DEBUG][       Thread-254829][   transport.py][1871] : Compression: none
2025-06-13 12:29:56,989 [DEBUG][       Thread-254829][   transport.py][1871] : === End of kex handshake ===
2025-06-13 12:29:57,047 [DEBUG][       Thread-254829][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 12:29:57,047 [DEBUG][       Thread-254829][   transport.py][1871] : Switch to new keys ...
2025-06-13 12:29:57,048 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 12:29:57,048 [DEBUG][       Thread-254829][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 12:29:57,049 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 12:29:57,113 [DEBUG][       Thread-254829][   transport.py][1871] : userauth is OK
2025-06-13 12:29:57,113 [DEBUG][       Thread-254829][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 12:29:57,114 [DEBUG][       Thread-254829][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 12:29:57,114 [DEBUG][       Thread-254829][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 12:29:57,114 [DEBUG][       Thread-254829][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 12:29:57,132 [ INFO][       Thread-254829][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 12:29:57,133 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 12:29:57,133 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 12:29:58,140 [DEBUG][       Thread-254829][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 12:29:58,141 [DEBUG][       Thread-254829][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 12:29:58,193 [DEBUG][       Thread-254829][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 12:29:58,193 [DEBUG][       Thread-254829][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 12:29:58,203 [DEBUG][       Thread-254829][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 12:29:58,212 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 12:29:58,212 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 12:29:58,221 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 12:29:58,231 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 12:29:58,231 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 12:29:58,232 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 12:29:58,240 [DEBUG][       Thread-254829][   transport.py][1871] : EOF in transport thread
2025-06-13 12:30:02,295 [DEBUG][Thread-254831 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:30:08,242 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 12:30:08,243 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 12:30:08,243 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 12:30:08,246 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 12:30:08,752 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 12, 29, 36), 13.33, 39.46, 0.0, 14.13, 12.07, 0, 0, 0, 2, 0, 0),)
2025-06-13 12:30:08,752 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 12:29:36
2025-06-13 12:30:08,838 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 12:30:08,843 [DEBUG][       Thread-254832][   transport.py][1871] : starting thread (client mode): 0x863bfa00
2025-06-13 12:30:08,843 [DEBUG][       Thread-254832][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 12:30:08,863 [DEBUG][       Thread-254832][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 12:30:08,863 [ INFO][       Thread-254832][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 12:30:08,866 [DEBUG][       Thread-254832][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 12:30:08,866 [DEBUG][       Thread-254832][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 12:30:08,866 [DEBUG][       Thread-254832][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 12:30:08,866 [DEBUG][       Thread-254832][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:30:08,866 [DEBUG][       Thread-254832][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:30:08,866 [DEBUG][       Thread-254832][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:30:08,866 [DEBUG][       Thread-254832][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:30:08,866 [DEBUG][       Thread-254832][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 12:30:08,866 [DEBUG][       Thread-254832][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 12:30:08,866 [DEBUG][       Thread-254832][   transport.py][1871] : client lang: <none>
2025-06-13 12:30:08,866 [DEBUG][       Thread-254832][   transport.py][1871] : server lang: <none>
2025-06-13 12:30:08,866 [DEBUG][       Thread-254832][   transport.py][1871] : kex follows: False
2025-06-13 12:30:08,866 [DEBUG][       Thread-254832][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 12:30:08,866 [DEBUG][       Thread-254832][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 12:30:08,866 [DEBUG][       Thread-254832][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 12:30:08,866 [DEBUG][       Thread-254832][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 12:30:08,866 [DEBUG][       Thread-254832][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 12:30:08,866 [DEBUG][       Thread-254832][   transport.py][1871] : Compression: none
2025-06-13 12:30:08,866 [DEBUG][       Thread-254832][   transport.py][1871] : === End of kex handshake ===
2025-06-13 12:30:08,881 [DEBUG][       Thread-254832][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 12:30:08,881 [DEBUG][       Thread-254832][   transport.py][1871] : Switch to new keys ...
2025-06-13 12:30:08,881 [DEBUG][       Thread-254832][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 12:30:08,881 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 12:30:08,881 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 12:30:08,882 [DEBUG][       Thread-254832][   transport.py][1871] : userauth is OK
2025-06-13 12:30:08,895 [ INFO][       Thread-254832][   transport.py][1871] : Authentication (password) successful!
2025-06-13 12:30:08,895 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 12:30:09,650 [DEBUG][       Thread-254832][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 12:30:09,650 [DEBUG][       Thread-254832][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 12:30:09,692 [DEBUG][       Thread-254832][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 12:30:09,692 [DEBUG][       Thread-254832][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 12:30:09,694 [DEBUG][       Thread-254832][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 12:30:09,706 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 12:30:09,706 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 12:30:09,707 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 12:30:09,708 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 12:30:09,763 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 12:30:09,764 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 12:30:09,764 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 12:30:09,764 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 12:30:09,764 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.437438 -999.00  +11.70  14.54     46   +0.40 1 1 1 1 1   888    0 12.36 31.35 ----- 14.2 14.5 62.4 19.3 16.7 -28.3 15.2 -30.2 14.9 -28.9 16.4 -27.0
2025-06-13 12:30:09,764 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 12:30:09,764 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 12:30:09,764 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.437438
2025-06-13 12:30:09,764 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 12:30:09,764 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 12:30:09,764 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 12:30:09,764 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 12:30:09,764 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 12:30:09,764 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T12:29:36', tmtdew=13.33, humidity=39.46, cloud=0.0, wind=14.13, temperature=12.07, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T10:29:54.643', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 12:30:09,765 [DEBUG][       Thread-254832][   transport.py][1871] : EOF in transport thread
2025-06-13 12:30:09,839 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 12:30:09,850 [DEBUG][       Thread-254835][   transport.py][1871] : starting thread (client mode): 0x863a5570
2025-06-13 12:30:09,850 [DEBUG][       Thread-254835][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 12:30:09,867 [DEBUG][       Thread-254835][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 12:30:09,867 [ INFO][       Thread-254835][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 12:30:09,875 [DEBUG][       Thread-254835][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 12:30:09,875 [DEBUG][       Thread-254835][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 12:30:09,875 [DEBUG][       Thread-254835][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 12:30:09,875 [DEBUG][       Thread-254835][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:30:09,875 [DEBUG][       Thread-254835][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:30:09,875 [DEBUG][       Thread-254835][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:30:09,875 [DEBUG][       Thread-254835][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:30:09,875 [DEBUG][       Thread-254835][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 12:30:09,875 [DEBUG][       Thread-254835][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 12:30:09,875 [DEBUG][       Thread-254835][   transport.py][1871] : client lang: <none>
2025-06-13 12:30:09,875 [DEBUG][       Thread-254835][   transport.py][1871] : server lang: <none>
2025-06-13 12:30:09,876 [DEBUG][       Thread-254835][   transport.py][1871] : kex follows: False
2025-06-13 12:30:09,876 [DEBUG][       Thread-254835][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 12:30:09,876 [DEBUG][       Thread-254835][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 12:30:09,876 [DEBUG][       Thread-254835][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 12:30:09,876 [DEBUG][       Thread-254835][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 12:30:09,876 [DEBUG][       Thread-254835][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 12:30:09,876 [DEBUG][       Thread-254835][   transport.py][1871] : Compression: none
2025-06-13 12:30:09,876 [DEBUG][       Thread-254835][   transport.py][1871] : === End of kex handshake ===
2025-06-13 12:30:09,933 [DEBUG][       Thread-254835][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 12:30:09,933 [DEBUG][       Thread-254835][   transport.py][1871] : Switch to new keys ...
2025-06-13 12:30:09,933 [DEBUG][       Thread-254835][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 12:30:09,934 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 12:30:09,934 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 12:30:09,992 [DEBUG][       Thread-254835][   transport.py][1871] : userauth is OK
2025-06-13 12:30:09,992 [DEBUG][       Thread-254835][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 12:30:09,992 [DEBUG][       Thread-254835][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 12:30:09,992 [DEBUG][       Thread-254835][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 12:30:09,992 [DEBUG][       Thread-254835][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 12:30:10,010 [ INFO][       Thread-254835][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 12:30:10,011 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 12:30:10,011 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 12:30:11,004 [DEBUG][       Thread-254835][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 12:30:11,004 [DEBUG][       Thread-254835][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 12:30:11,055 [DEBUG][       Thread-254835][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 12:30:11,055 [DEBUG][       Thread-254835][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 12:30:11,064 [DEBUG][       Thread-254835][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 12:30:11,077 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 12:30:11,077 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 12:30:11,087 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 12:30:11,098 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 12:30:11,098 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 12:30:11,098 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 12:30:11,107 [DEBUG][       Thread-254835][   transport.py][1871] : EOF in transport thread
2025-06-13 12:30:11,314 [DEBUG][Thread-254837 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:30:12,356 [DEBUG][Thread-254838 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:30:20,336 [DEBUG][Thread-254839 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:30:21,109 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 12:30:21,109 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 12:30:21,109 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 12:30:21,112 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 12:30:21,576 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 12, 30, 7), 13.69, 38.41, 0.0, 14.42, 12.04, 0, 0, 0, 2, 0, 0),)
2025-06-13 12:30:21,576 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 12:30:07
2025-06-13 12:30:21,657 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 12:30:21,664 [DEBUG][       Thread-254840][   transport.py][1871] : starting thread (client mode): 0x863bca30
2025-06-13 12:30:21,664 [DEBUG][       Thread-254840][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 12:30:21,685 [DEBUG][       Thread-254840][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 12:30:21,685 [ INFO][       Thread-254840][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 12:30:21,689 [DEBUG][       Thread-254840][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 12:30:21,689 [DEBUG][       Thread-254840][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 12:30:21,689 [DEBUG][       Thread-254840][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 12:30:21,689 [DEBUG][       Thread-254840][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:30:21,690 [DEBUG][       Thread-254840][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:30:21,690 [DEBUG][       Thread-254840][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:30:21,690 [DEBUG][       Thread-254840][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:30:21,690 [DEBUG][       Thread-254840][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 12:30:21,690 [DEBUG][       Thread-254840][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 12:30:21,690 [DEBUG][       Thread-254840][   transport.py][1871] : client lang: <none>
2025-06-13 12:30:21,690 [DEBUG][       Thread-254840][   transport.py][1871] : server lang: <none>
2025-06-13 12:30:21,690 [DEBUG][       Thread-254840][   transport.py][1871] : kex follows: False
2025-06-13 12:30:21,690 [DEBUG][       Thread-254840][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 12:30:21,690 [DEBUG][       Thread-254840][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 12:30:21,690 [DEBUG][       Thread-254840][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 12:30:21,690 [DEBUG][       Thread-254840][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 12:30:21,690 [DEBUG][       Thread-254840][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 12:30:21,690 [DEBUG][       Thread-254840][   transport.py][1871] : Compression: none
2025-06-13 12:30:21,690 [DEBUG][       Thread-254840][   transport.py][1871] : === End of kex handshake ===
2025-06-13 12:30:21,708 [DEBUG][       Thread-254840][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 12:30:21,709 [DEBUG][       Thread-254840][   transport.py][1871] : Switch to new keys ...
2025-06-13 12:30:21,709 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 12:30:21,710 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 12:30:21,710 [DEBUG][       Thread-254840][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 12:30:21,711 [DEBUG][       Thread-254840][   transport.py][1871] : userauth is OK
2025-06-13 12:30:21,724 [ INFO][       Thread-254840][   transport.py][1871] : Authentication (password) successful!
2025-06-13 12:30:21,724 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 12:30:22,363 [DEBUG][       Thread-254840][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 12:30:22,363 [DEBUG][       Thread-254840][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 12:30:22,405 [DEBUG][       Thread-254840][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 12:30:22,405 [DEBUG][       Thread-254840][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 12:30:22,408 [DEBUG][       Thread-254840][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 12:30:22,420 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 12:30:22,420 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 12:30:22,423 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 12:30:22,424 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 12:30:22,429 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 12:30:22,431 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 12:30:22,431 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 12:30:22,432 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 12:30:22,432 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.437438 -999.00  +11.70  14.54     46   +0.40 1 1 1 1 1   888    0 12.36 31.35 ----- 14.2 14.5 62.4 19.3 16.7 -28.3 15.2 -30.2 14.9 -28.9 16.4 -27.0
2025-06-13 12:30:22,432 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 12:30:22,432 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 12:30:22,432 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.437438
2025-06-13 12:30:22,433 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 12:30:22,433 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 12:30:22,433 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 12:30:22,433 [DEBUG][       Thread-254840][   transport.py][1871] : EOF in transport thread
2025-06-13 12:30:22,434 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 12:30:22,434 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 12:30:22,434 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T12:30:07', tmtdew=13.69, humidity=38.41, cloud=0.0, wind=14.42, temperature=12.04, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T10:29:54.643', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 12:30:22,517 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 12:30:22,527 [DEBUG][       Thread-254843][   transport.py][1871] : starting thread (client mode): 0x867b7010
2025-06-13 12:30:22,527 [DEBUG][       Thread-254843][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 12:30:22,542 [DEBUG][       Thread-254843][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 12:30:22,542 [ INFO][       Thread-254843][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 12:30:22,550 [DEBUG][       Thread-254843][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 12:30:22,550 [DEBUG][       Thread-254843][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 12:30:22,550 [DEBUG][       Thread-254843][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 12:30:22,550 [DEBUG][       Thread-254843][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:30:22,550 [DEBUG][       Thread-254843][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:30:22,550 [DEBUG][       Thread-254843][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:30:22,550 [DEBUG][       Thread-254843][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:30:22,550 [DEBUG][       Thread-254843][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 12:30:22,550 [DEBUG][       Thread-254843][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 12:30:22,550 [DEBUG][       Thread-254843][   transport.py][1871] : client lang: <none>
2025-06-13 12:30:22,550 [DEBUG][       Thread-254843][   transport.py][1871] : server lang: <none>
2025-06-13 12:30:22,550 [DEBUG][       Thread-254843][   transport.py][1871] : kex follows: False
2025-06-13 12:30:22,550 [DEBUG][       Thread-254843][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 12:30:22,550 [DEBUG][       Thread-254843][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 12:30:22,550 [DEBUG][       Thread-254843][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 12:30:22,550 [DEBUG][       Thread-254843][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 12:30:22,551 [DEBUG][       Thread-254843][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 12:30:22,551 [DEBUG][       Thread-254843][   transport.py][1871] : Compression: none
2025-06-13 12:30:22,551 [DEBUG][       Thread-254843][   transport.py][1871] : === End of kex handshake ===
2025-06-13 12:30:22,607 [DEBUG][       Thread-254843][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 12:30:22,607 [DEBUG][       Thread-254843][   transport.py][1871] : Switch to new keys ...
2025-06-13 12:30:22,607 [DEBUG][       Thread-254843][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 12:30:22,607 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 12:30:22,607 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 12:30:22,664 [DEBUG][       Thread-254843][   transport.py][1871] : userauth is OK
2025-06-13 12:30:22,665 [DEBUG][       Thread-254843][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 12:30:22,665 [DEBUG][       Thread-254843][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 12:30:22,665 [DEBUG][       Thread-254843][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 12:30:22,665 [DEBUG][       Thread-254843][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 12:30:22,684 [ INFO][       Thread-254843][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 12:30:22,684 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 12:30:22,684 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 12:30:23,735 [DEBUG][       Thread-254843][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 12:30:23,735 [DEBUG][       Thread-254843][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 12:30:23,784 [DEBUG][       Thread-254843][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 12:30:23,784 [DEBUG][       Thread-254843][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 12:30:23,794 [DEBUG][       Thread-254843][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 12:30:23,804 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 12:30:23,804 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 12:30:23,813 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 12:30:23,822 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 12:30:23,822 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 12:30:23,823 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 12:30:23,834 [DEBUG][       Thread-254843][   transport.py][1871] : EOF in transport thread
2025-06-13 12:30:29,353 [DEBUG][Thread-254845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:30:29,728 [DEBUG][Thread-254846 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:30:30,786 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:30:30,788 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:30:33,833 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 12:30:33,834 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 12:30:33,834 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 12:30:33,836 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 12:30:34,300 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 12, 30, 7), 13.69, 38.41, 0.0, 14.42, 12.04, 0, 0, 0, 2, 0, 0),)
2025-06-13 12:30:34,300 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 12:30:07
2025-06-13 12:30:34,382 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 12:30:34,386 [DEBUG][       Thread-254847][   transport.py][1871] : starting thread (client mode): 0x867ffa30
2025-06-13 12:30:34,386 [DEBUG][       Thread-254847][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 12:30:34,408 [DEBUG][       Thread-254847][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 12:30:34,408 [ INFO][       Thread-254847][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 12:30:34,412 [DEBUG][       Thread-254847][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 12:30:34,412 [DEBUG][       Thread-254847][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 12:30:34,412 [DEBUG][       Thread-254847][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 12:30:34,412 [DEBUG][       Thread-254847][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:30:34,412 [DEBUG][       Thread-254847][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:30:34,412 [DEBUG][       Thread-254847][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:30:34,412 [DEBUG][       Thread-254847][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:30:34,412 [DEBUG][       Thread-254847][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 12:30:34,412 [DEBUG][       Thread-254847][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 12:30:34,412 [DEBUG][       Thread-254847][   transport.py][1871] : client lang: <none>
2025-06-13 12:30:34,412 [DEBUG][       Thread-254847][   transport.py][1871] : server lang: <none>
2025-06-13 12:30:34,412 [DEBUG][       Thread-254847][   transport.py][1871] : kex follows: False
2025-06-13 12:30:34,412 [DEBUG][       Thread-254847][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 12:30:34,412 [DEBUG][       Thread-254847][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 12:30:34,412 [DEBUG][       Thread-254847][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 12:30:34,412 [DEBUG][       Thread-254847][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 12:30:34,413 [DEBUG][       Thread-254847][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 12:30:34,413 [DEBUG][       Thread-254847][   transport.py][1871] : Compression: none
2025-06-13 12:30:34,413 [DEBUG][       Thread-254847][   transport.py][1871] : === End of kex handshake ===
2025-06-13 12:30:34,429 [DEBUG][       Thread-254847][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 12:30:34,430 [DEBUG][       Thread-254847][   transport.py][1871] : Switch to new keys ...
2025-06-13 12:30:34,430 [DEBUG][       Thread-254847][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 12:30:34,431 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 12:30:34,431 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 12:30:34,432 [DEBUG][       Thread-254847][   transport.py][1871] : userauth is OK
2025-06-13 12:30:34,445 [ INFO][       Thread-254847][   transport.py][1871] : Authentication (password) successful!
2025-06-13 12:30:34,446 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 12:30:35,097 [DEBUG][       Thread-254847][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 12:30:35,097 [DEBUG][       Thread-254847][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 12:30:35,141 [DEBUG][       Thread-254847][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 12:30:35,141 [DEBUG][       Thread-254847][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 12:30:35,144 [DEBUG][       Thread-254847][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 12:30:35,149 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 12:30:35,150 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 12:30:35,151 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 12:30:35,153 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 12:30:35,159 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 12:30:35,160 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 12:30:35,161 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 12:30:35,161 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 12:30:35,161 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.437438 -999.00  +11.70  14.54     46   +0.40 1 1 1 1 1   888    0 12.36 31.35 ----- 14.2 14.5 62.4 19.3 16.7 -28.3 15.2 -30.2 14.9 -28.9 16.4 -27.0
2025-06-13 12:30:35,161 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 12:30:35,161 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 12:30:35,161 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.437438
2025-06-13 12:30:35,162 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 12:30:35,162 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 12:30:35,163 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 12:30:35,163 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 12:30:35,163 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 12:30:35,163 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T12:30:07', tmtdew=13.69, humidity=38.41, cloud=0.0, wind=14.42, temperature=12.04, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T10:29:54.643', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 12:30:35,163 [DEBUG][       Thread-254847][   transport.py][1871] : EOF in transport thread
2025-06-13 12:30:35,246 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 12:30:35,258 [DEBUG][       Thread-254850][   transport.py][1871] : starting thread (client mode): 0x863a5660
2025-06-13 12:30:35,258 [DEBUG][       Thread-254850][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 12:30:35,274 [DEBUG][       Thread-254850][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 12:30:35,274 [ INFO][       Thread-254850][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 12:30:35,282 [DEBUG][       Thread-254850][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 12:30:35,282 [DEBUG][       Thread-254850][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 12:30:35,282 [DEBUG][       Thread-254850][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 12:30:35,282 [DEBUG][       Thread-254850][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:30:35,282 [DEBUG][       Thread-254850][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:30:35,282 [DEBUG][       Thread-254850][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:30:35,282 [DEBUG][       Thread-254850][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:30:35,282 [DEBUG][       Thread-254850][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 12:30:35,282 [DEBUG][       Thread-254850][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 12:30:35,282 [DEBUG][       Thread-254850][   transport.py][1871] : client lang: <none>
2025-06-13 12:30:35,282 [DEBUG][       Thread-254850][   transport.py][1871] : server lang: <none>
2025-06-13 12:30:35,282 [DEBUG][       Thread-254850][   transport.py][1871] : kex follows: False
2025-06-13 12:30:35,282 [DEBUG][       Thread-254850][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 12:30:35,282 [DEBUG][       Thread-254850][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 12:30:35,282 [DEBUG][       Thread-254850][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 12:30:35,283 [DEBUG][       Thread-254850][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 12:30:35,283 [DEBUG][       Thread-254850][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 12:30:35,283 [DEBUG][       Thread-254850][   transport.py][1871] : Compression: none
2025-06-13 12:30:35,283 [DEBUG][       Thread-254850][   transport.py][1871] : === End of kex handshake ===
2025-06-13 12:30:35,343 [DEBUG][       Thread-254850][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 12:30:35,343 [DEBUG][       Thread-254850][   transport.py][1871] : Switch to new keys ...
2025-06-13 12:30:35,344 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 12:30:35,345 [DEBUG][       Thread-254850][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 12:30:35,345 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 12:30:35,408 [DEBUG][       Thread-254850][   transport.py][1871] : userauth is OK
2025-06-13 12:30:35,408 [DEBUG][       Thread-254850][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 12:30:35,408 [DEBUG][       Thread-254850][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 12:30:35,408 [DEBUG][       Thread-254850][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 12:30:35,408 [DEBUG][       Thread-254850][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 12:30:35,429 [ INFO][       Thread-254850][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 12:30:35,429 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 12:30:35,430 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 12:30:36,456 [DEBUG][       Thread-254850][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 12:30:36,456 [DEBUG][       Thread-254850][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 12:30:36,503 [DEBUG][       Thread-254850][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 12:30:36,503 [DEBUG][       Thread-254850][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 12:30:36,511 [DEBUG][       Thread-254850][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 12:30:36,519 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 12:30:36,519 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 12:30:36,527 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 12:30:36,536 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 12:30:36,536 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 12:30:36,536 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 12:30:36,544 [DEBUG][       Thread-254850][   transport.py][1871] : EOF in transport thread
2025-06-13 12:30:38,388 [DEBUG][Thread-254852 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:30:43,980 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:30:43,982 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:30:46,546 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 12:30:46,547 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 12:30:46,547 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 12:30:46,550 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 12:30:47,008 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 12, 30, 39), 13.44, 39.2, 0.0, 12.23, 11.96, 0, 0, 0, 2, 0, 0),)
2025-06-13 12:30:47,008 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 12:30:39
2025-06-13 12:30:47,090 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 12:30:47,095 [DEBUG][       Thread-254853][   transport.py][1871] : starting thread (client mode): 0x867b7640
2025-06-13 12:30:47,096 [DEBUG][       Thread-254853][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 12:30:47,116 [DEBUG][       Thread-254853][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 12:30:47,116 [ INFO][       Thread-254853][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 12:30:47,119 [DEBUG][       Thread-254853][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 12:30:47,120 [DEBUG][       Thread-254853][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 12:30:47,120 [DEBUG][       Thread-254853][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 12:30:47,120 [DEBUG][       Thread-254853][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:30:47,120 [DEBUG][       Thread-254853][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:30:47,120 [DEBUG][       Thread-254853][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:30:47,120 [DEBUG][       Thread-254853][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:30:47,120 [DEBUG][       Thread-254853][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 12:30:47,120 [DEBUG][       Thread-254853][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 12:30:47,120 [DEBUG][       Thread-254853][   transport.py][1871] : client lang: <none>
2025-06-13 12:30:47,120 [DEBUG][       Thread-254853][   transport.py][1871] : server lang: <none>
2025-06-13 12:30:47,120 [DEBUG][       Thread-254853][   transport.py][1871] : kex follows: False
2025-06-13 12:30:47,120 [DEBUG][       Thread-254853][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 12:30:47,120 [DEBUG][       Thread-254853][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 12:30:47,120 [DEBUG][       Thread-254853][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 12:30:47,120 [DEBUG][       Thread-254853][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 12:30:47,120 [DEBUG][       Thread-254853][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 12:30:47,120 [DEBUG][       Thread-254853][   transport.py][1871] : Compression: none
2025-06-13 12:30:47,120 [DEBUG][       Thread-254853][   transport.py][1871] : === End of kex handshake ===
2025-06-13 12:30:47,137 [DEBUG][       Thread-254853][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 12:30:47,137 [DEBUG][       Thread-254853][   transport.py][1871] : Switch to new keys ...
2025-06-13 12:30:47,138 [DEBUG][       Thread-254853][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 12:30:47,138 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 12:30:47,138 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 12:30:47,139 [DEBUG][       Thread-254853][   transport.py][1871] : userauth is OK
2025-06-13 12:30:47,152 [ INFO][       Thread-254853][   transport.py][1871] : Authentication (password) successful!
2025-06-13 12:30:47,153 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 12:30:47,408 [DEBUG][Thread-254855 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:30:47,742 [DEBUG][       Thread-254853][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 12:30:47,742 [DEBUG][       Thread-254853][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 12:30:47,785 [DEBUG][       Thread-254853][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 12:30:47,785 [DEBUG][       Thread-254853][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 12:30:47,789 [DEBUG][       Thread-254853][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 12:30:47,801 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 12:30:47,801 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 12:30:47,803 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 12:30:47,805 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 12:30:47,811 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 12:30:47,813 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 12:30:47,813 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 12:30:47,814 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 12:30:47,814 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.437785 -999.00  +11.60  20.03     45   +0.30 1 1 1 1 1   888    0 12.40 26.15 ----- 21.7 20.0 53.8 21.9 16.6 -28.5 15.2 -31.1 14.9 -29.6 16.4 -26.9
2025-06-13 12:30:47,814 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 12:30:47,814 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 12:30:47,814 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.437785
2025-06-13 12:30:47,815 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 12:30:47,815 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 12:30:47,815 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 12:30:47,815 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 12:30:47,815 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 12:30:47,816 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T12:30:39', tmtdew=13.44, humidity=39.2, cloud=0.0, wind=12.23, temperature=11.96, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T10:30:24.624', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 12:30:47,817 [DEBUG][       Thread-254853][   transport.py][1871] : EOF in transport thread
2025-06-13 12:30:47,899 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 12:30:47,909 [DEBUG][       Thread-254857][   transport.py][1871] : starting thread (client mode): 0x868c8520
2025-06-13 12:30:47,909 [DEBUG][       Thread-254857][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 12:30:47,924 [DEBUG][       Thread-254857][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 12:30:47,924 [ INFO][       Thread-254857][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 12:30:47,933 [DEBUG][       Thread-254857][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 12:30:47,933 [DEBUG][       Thread-254857][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 12:30:47,933 [DEBUG][       Thread-254857][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 12:30:47,933 [DEBUG][       Thread-254857][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:30:47,933 [DEBUG][       Thread-254857][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:30:47,933 [DEBUG][       Thread-254857][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:30:47,933 [DEBUG][       Thread-254857][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:30:47,933 [DEBUG][       Thread-254857][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 12:30:47,933 [DEBUG][       Thread-254857][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 12:30:47,933 [DEBUG][       Thread-254857][   transport.py][1871] : client lang: <none>
2025-06-13 12:30:47,933 [DEBUG][       Thread-254857][   transport.py][1871] : server lang: <none>
2025-06-13 12:30:47,933 [DEBUG][       Thread-254857][   transport.py][1871] : kex follows: False
2025-06-13 12:30:47,933 [DEBUG][       Thread-254857][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 12:30:47,933 [DEBUG][       Thread-254857][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 12:30:47,933 [DEBUG][       Thread-254857][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 12:30:47,933 [DEBUG][       Thread-254857][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 12:30:47,933 [DEBUG][       Thread-254857][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 12:30:47,933 [DEBUG][       Thread-254857][   transport.py][1871] : Compression: none
2025-06-13 12:30:47,933 [DEBUG][       Thread-254857][   transport.py][1871] : === End of kex handshake ===
2025-06-13 12:30:47,992 [DEBUG][       Thread-254857][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 12:30:47,993 [DEBUG][       Thread-254857][   transport.py][1871] : Switch to new keys ...
2025-06-13 12:30:47,994 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 12:30:47,994 [DEBUG][       Thread-254857][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 12:30:47,995 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 12:30:48,051 [DEBUG][       Thread-254857][   transport.py][1871] : userauth is OK
2025-06-13 12:30:48,051 [DEBUG][       Thread-254857][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 12:30:48,051 [DEBUG][       Thread-254857][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 12:30:48,051 [DEBUG][       Thread-254857][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 12:30:48,051 [DEBUG][       Thread-254857][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 12:30:48,071 [ INFO][       Thread-254857][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 12:30:48,071 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 12:30:48,072 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 12:30:49,119 [DEBUG][       Thread-254857][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 12:30:49,119 [DEBUG][       Thread-254857][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 12:30:49,172 [DEBUG][       Thread-254857][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 12:30:49,172 [DEBUG][       Thread-254857][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 12:30:49,183 [DEBUG][       Thread-254857][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 12:30:49,193 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 12:30:49,194 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 12:30:49,203 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 12:30:49,214 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 12:30:49,214 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 12:30:49,215 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 12:30:49,226 [DEBUG][       Thread-254857][   transport.py][1871] : EOF in transport thread
2025-06-13 12:30:56,430 [DEBUG][Thread-254859 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:30:59,225 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 12:30:59,225 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 12:30:59,226 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 12:30:59,229 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 12:30:59,691 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 12, 30, 39), 13.44, 39.2, 0.0, 12.23, 11.96, 0, 0, 0, 2, 0, 0),)
2025-06-13 12:30:59,691 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 12:30:39
2025-06-13 12:30:59,772 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 12:30:59,776 [DEBUG][       Thread-254860][   transport.py][1871] : starting thread (client mode): 0x86369270
2025-06-13 12:30:59,776 [DEBUG][       Thread-254860][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 12:30:59,789 [DEBUG][       Thread-254860][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 12:30:59,789 [ INFO][       Thread-254860][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 12:30:59,792 [DEBUG][       Thread-254860][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 12:30:59,792 [DEBUG][       Thread-254860][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 12:30:59,792 [DEBUG][       Thread-254860][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 12:30:59,792 [DEBUG][       Thread-254860][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:30:59,792 [DEBUG][       Thread-254860][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:30:59,792 [DEBUG][       Thread-254860][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:30:59,792 [DEBUG][       Thread-254860][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:30:59,792 [DEBUG][       Thread-254860][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 12:30:59,792 [DEBUG][       Thread-254860][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 12:30:59,792 [DEBUG][       Thread-254860][   transport.py][1871] : client lang: <none>
2025-06-13 12:30:59,792 [DEBUG][       Thread-254860][   transport.py][1871] : server lang: <none>
2025-06-13 12:30:59,792 [DEBUG][       Thread-254860][   transport.py][1871] : kex follows: False
2025-06-13 12:30:59,792 [DEBUG][       Thread-254860][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 12:30:59,792 [DEBUG][       Thread-254860][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 12:30:59,792 [DEBUG][       Thread-254860][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 12:30:59,792 [DEBUG][       Thread-254860][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 12:30:59,792 [DEBUG][       Thread-254860][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 12:30:59,792 [DEBUG][       Thread-254860][   transport.py][1871] : Compression: none
2025-06-13 12:30:59,792 [DEBUG][       Thread-254860][   transport.py][1871] : === End of kex handshake ===
2025-06-13 12:30:59,809 [DEBUG][       Thread-254860][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 12:30:59,809 [DEBUG][       Thread-254860][   transport.py][1871] : Switch to new keys ...
2025-06-13 12:30:59,810 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 12:30:59,810 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 12:30:59,811 [DEBUG][       Thread-254860][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 12:30:59,811 [DEBUG][       Thread-254860][   transport.py][1871] : userauth is OK
2025-06-13 12:30:59,837 [ INFO][       Thread-254860][   transport.py][1871] : Authentication (password) successful!
2025-06-13 12:30:59,838 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 12:31:00,520 [DEBUG][       Thread-254860][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 12:31:00,520 [DEBUG][       Thread-254860][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 12:31:00,561 [DEBUG][       Thread-254860][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 12:31:00,561 [DEBUG][       Thread-254860][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 12:31:00,564 [DEBUG][       Thread-254860][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 12:31:00,576 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 12:31:00,577 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 12:31:00,579 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 12:31:00,581 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 12:31:00,587 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 12:31:00,588 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 12:31:00,589 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 12:31:00,589 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 12:31:00,589 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.437785 -999.00  +11.60  20.03     45   +0.30 1 1 1 1 1   888    0 12.40 26.15 ----- 21.7 20.0 53.8 21.9 16.6 -28.5 15.2 -31.1 14.9 -29.6 16.4 -26.9
2025-06-13 12:31:00,590 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 12:31:00,590 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 12:31:00,590 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.437785
2025-06-13 12:31:00,590 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 12:31:00,591 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 12:31:00,591 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 12:31:00,591 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 12:31:00,591 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 12:31:00,591 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T12:30:39', tmtdew=13.44, humidity=39.2, cloud=0.0, wind=12.23, temperature=11.96, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T10:30:24.624', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 12:31:00,591 [DEBUG][       Thread-254860][   transport.py][1871] : EOF in transport thread
2025-06-13 12:31:00,676 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 12:31:00,687 [DEBUG][       Thread-254863][   transport.py][1871] : starting thread (client mode): 0x863a6a10
2025-06-13 12:31:00,687 [DEBUG][       Thread-254863][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 12:31:00,703 [DEBUG][       Thread-254863][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 12:31:00,703 [ INFO][       Thread-254863][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 12:31:00,711 [DEBUG][       Thread-254863][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 12:31:00,711 [DEBUG][       Thread-254863][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 12:31:00,711 [DEBUG][       Thread-254863][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 12:31:00,711 [DEBUG][       Thread-254863][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:31:00,711 [DEBUG][       Thread-254863][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:31:00,711 [DEBUG][       Thread-254863][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:31:00,711 [DEBUG][       Thread-254863][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:31:00,711 [DEBUG][       Thread-254863][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 12:31:00,712 [DEBUG][       Thread-254863][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 12:31:00,712 [DEBUG][       Thread-254863][   transport.py][1871] : client lang: <none>
2025-06-13 12:31:00,712 [DEBUG][       Thread-254863][   transport.py][1871] : server lang: <none>
2025-06-13 12:31:00,712 [DEBUG][       Thread-254863][   transport.py][1871] : kex follows: False
2025-06-13 12:31:00,712 [DEBUG][       Thread-254863][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 12:31:00,712 [DEBUG][       Thread-254863][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 12:31:00,712 [DEBUG][       Thread-254863][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 12:31:00,712 [DEBUG][       Thread-254863][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 12:31:00,712 [DEBUG][       Thread-254863][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 12:31:00,712 [DEBUG][       Thread-254863][   transport.py][1871] : Compression: none
2025-06-13 12:31:00,712 [DEBUG][       Thread-254863][   transport.py][1871] : === End of kex handshake ===
2025-06-13 12:31:00,773 [DEBUG][       Thread-254863][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 12:31:00,773 [DEBUG][       Thread-254863][   transport.py][1871] : Switch to new keys ...
2025-06-13 12:31:00,774 [DEBUG][       Thread-254863][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 12:31:00,774 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 12:31:00,775 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 12:31:00,829 [DEBUG][       Thread-254863][   transport.py][1871] : userauth is OK
2025-06-13 12:31:00,829 [DEBUG][       Thread-254863][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 12:31:00,829 [DEBUG][       Thread-254863][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 12:31:00,829 [DEBUG][       Thread-254863][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 12:31:00,829 [DEBUG][       Thread-254863][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 12:31:00,849 [ INFO][       Thread-254863][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 12:31:00,849 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 12:31:00,850 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 12:31:01,931 [DEBUG][       Thread-254863][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 12:31:01,931 [DEBUG][       Thread-254863][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 12:31:01,981 [DEBUG][       Thread-254863][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 12:31:01,981 [DEBUG][       Thread-254863][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 12:31:01,991 [DEBUG][       Thread-254863][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 12:31:02,000 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 12:31:02,001 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 12:31:02,009 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 12:31:02,018 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 12:31:02,018 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 12:31:02,019 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 12:31:02,027 [DEBUG][       Thread-254863][   transport.py][1871] : EOF in transport thread
2025-06-13 12:31:05,463 [DEBUG][Thread-254865 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:31:12,028 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 12:31:12,028 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 12:31:12,028 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 12:31:12,029 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 12:31:12,405 [DEBUG][Thread-254866 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:31:12,523 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 12, 30, 39), 13.44, 39.2, 0.0, 12.23, 11.96, 0, 0, 0, 2, 0, 0),)
2025-06-13 12:31:12,523 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 12:30:39
2025-06-13 12:31:12,611 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 12:31:12,618 [DEBUG][       Thread-254867][   transport.py][1871] : starting thread (client mode): 0x863ef880
2025-06-13 12:31:12,618 [DEBUG][       Thread-254867][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 12:31:12,640 [DEBUG][       Thread-254867][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 12:31:12,640 [ INFO][       Thread-254867][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 12:31:12,644 [DEBUG][       Thread-254867][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 12:31:12,644 [DEBUG][       Thread-254867][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 12:31:12,644 [DEBUG][       Thread-254867][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 12:31:12,644 [DEBUG][       Thread-254867][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:31:12,644 [DEBUG][       Thread-254867][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:31:12,644 [DEBUG][       Thread-254867][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:31:12,644 [DEBUG][       Thread-254867][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:31:12,644 [DEBUG][       Thread-254867][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 12:31:12,644 [DEBUG][       Thread-254867][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 12:31:12,644 [DEBUG][       Thread-254867][   transport.py][1871] : client lang: <none>
2025-06-13 12:31:12,644 [DEBUG][       Thread-254867][   transport.py][1871] : server lang: <none>
2025-06-13 12:31:12,644 [DEBUG][       Thread-254867][   transport.py][1871] : kex follows: False
2025-06-13 12:31:12,644 [DEBUG][       Thread-254867][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 12:31:12,644 [DEBUG][       Thread-254867][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 12:31:12,644 [DEBUG][       Thread-254867][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 12:31:12,644 [DEBUG][       Thread-254867][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 12:31:12,644 [DEBUG][       Thread-254867][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 12:31:12,644 [DEBUG][       Thread-254867][   transport.py][1871] : Compression: none
2025-06-13 12:31:12,644 [DEBUG][       Thread-254867][   transport.py][1871] : === End of kex handshake ===
2025-06-13 12:31:12,659 [DEBUG][       Thread-254867][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 12:31:12,659 [DEBUG][       Thread-254867][   transport.py][1871] : Switch to new keys ...
2025-06-13 12:31:12,659 [DEBUG][       Thread-254867][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 12:31:12,659 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 12:31:12,659 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 12:31:12,660 [DEBUG][       Thread-254867][   transport.py][1871] : userauth is OK
2025-06-13 12:31:12,672 [ INFO][       Thread-254867][   transport.py][1871] : Authentication (password) successful!
2025-06-13 12:31:12,672 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 12:31:13,306 [DEBUG][       Thread-254867][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 12:31:13,306 [DEBUG][       Thread-254867][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 12:31:13,348 [DEBUG][       Thread-254867][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 12:31:13,348 [DEBUG][       Thread-254867][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 12:31:13,351 [DEBUG][       Thread-254867][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 12:31:13,365 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 12:31:13,365 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 12:31:13,366 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 12:31:13,368 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 12:31:13,371 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 12:31:13,371 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 12:31:13,372 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 12:31:13,372 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 12:31:13,372 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.437785 -999.00  +11.60  20.03     45   +0.30 1 1 1 1 1   888    0 12.40 26.15 ----- 21.7 20.0 53.8 21.9 16.6 -28.5 15.2 -31.1 14.9 -29.6 16.4 -26.9
2025-06-13 12:31:13,372 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 12:31:13,372 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 12:31:13,372 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.437785
2025-06-13 12:31:13,372 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 12:31:13,372 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 12:31:13,372 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 12:31:13,372 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 12:31:13,372 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 12:31:13,372 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T12:30:39', tmtdew=13.44, humidity=39.2, cloud=0.0, wind=12.23, temperature=11.96, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T10:30:24.624', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 12:31:13,373 [DEBUG][       Thread-254867][   transport.py][1871] : EOF in transport thread
2025-06-13 12:31:13,447 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 12:31:13,462 [DEBUG][       Thread-254870][   transport.py][1871] : starting thread (client mode): 0x868c85b0
2025-06-13 12:31:13,462 [DEBUG][       Thread-254870][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 12:31:13,477 [DEBUG][       Thread-254870][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 12:31:13,477 [ INFO][       Thread-254870][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 12:31:13,485 [DEBUG][       Thread-254870][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 12:31:13,485 [DEBUG][       Thread-254870][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 12:31:13,485 [DEBUG][       Thread-254870][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 12:31:13,485 [DEBUG][       Thread-254870][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:31:13,485 [DEBUG][       Thread-254870][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:31:13,485 [DEBUG][       Thread-254870][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:31:13,485 [DEBUG][       Thread-254870][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:31:13,485 [DEBUG][       Thread-254870][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 12:31:13,485 [DEBUG][       Thread-254870][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 12:31:13,485 [DEBUG][       Thread-254870][   transport.py][1871] : client lang: <none>
2025-06-13 12:31:13,485 [DEBUG][       Thread-254870][   transport.py][1871] : server lang: <none>
2025-06-13 12:31:13,485 [DEBUG][       Thread-254870][   transport.py][1871] : kex follows: False
2025-06-13 12:31:13,485 [DEBUG][       Thread-254870][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 12:31:13,485 [DEBUG][       Thread-254870][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 12:31:13,485 [DEBUG][       Thread-254870][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 12:31:13,485 [DEBUG][       Thread-254870][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 12:31:13,485 [DEBUG][       Thread-254870][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 12:31:13,485 [DEBUG][       Thread-254870][   transport.py][1871] : Compression: none
2025-06-13 12:31:13,485 [DEBUG][       Thread-254870][   transport.py][1871] : === End of kex handshake ===
2025-06-13 12:31:13,547 [DEBUG][       Thread-254870][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 12:31:13,547 [DEBUG][       Thread-254870][   transport.py][1871] : Switch to new keys ...
2025-06-13 12:31:13,547 [DEBUG][       Thread-254870][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 12:31:13,547 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 12:31:13,547 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 12:31:13,604 [DEBUG][       Thread-254870][   transport.py][1871] : userauth is OK
2025-06-13 12:31:13,604 [DEBUG][       Thread-254870][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 12:31:13,604 [DEBUG][       Thread-254870][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 12:31:13,604 [DEBUG][       Thread-254870][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 12:31:13,605 [DEBUG][       Thread-254870][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 12:31:13,624 [ INFO][       Thread-254870][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 12:31:13,624 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 12:31:13,625 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 12:31:14,481 [DEBUG][Thread-254872 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:31:14,618 [DEBUG][       Thread-254870][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 12:31:14,619 [DEBUG][       Thread-254870][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 12:31:14,671 [DEBUG][       Thread-254870][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 12:31:14,671 [DEBUG][       Thread-254870][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 12:31:14,681 [DEBUG][       Thread-254870][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 12:31:14,700 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 12:31:14,700 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 12:31:14,709 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 12:31:14,719 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 12:31:14,719 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 12:31:14,720 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 12:31:14,728 [DEBUG][       Thread-254870][   transport.py][1871] : EOF in transport thread
2025-06-13 12:31:23,504 [DEBUG][Thread-254873 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:31:24,730 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 12:31:24,731 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 12:31:24,731 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 12:31:24,734 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 12:31:25,201 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 12, 31, 11), 13.38, 39.57, 0.0, 14.68, 12.08, 0, 0, 0, 2, 0, 0),)
2025-06-13 12:31:25,201 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 12:31:11
2025-06-13 12:31:25,283 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 12:31:25,288 [DEBUG][       Thread-254874][   transport.py][1871] : starting thread (client mode): 0x863a5e10
2025-06-13 12:31:25,288 [DEBUG][       Thread-254874][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 12:31:25,308 [DEBUG][       Thread-254874][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 12:31:25,308 [ INFO][       Thread-254874][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 12:31:25,311 [DEBUG][       Thread-254874][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 12:31:25,311 [DEBUG][       Thread-254874][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 12:31:25,311 [DEBUG][       Thread-254874][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 12:31:25,311 [DEBUG][       Thread-254874][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:31:25,311 [DEBUG][       Thread-254874][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:31:25,311 [DEBUG][       Thread-254874][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:31:25,311 [DEBUG][       Thread-254874][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:31:25,311 [DEBUG][       Thread-254874][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 12:31:25,311 [DEBUG][       Thread-254874][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 12:31:25,311 [DEBUG][       Thread-254874][   transport.py][1871] : client lang: <none>
2025-06-13 12:31:25,311 [DEBUG][       Thread-254874][   transport.py][1871] : server lang: <none>
2025-06-13 12:31:25,311 [DEBUG][       Thread-254874][   transport.py][1871] : kex follows: False
2025-06-13 12:31:25,311 [DEBUG][       Thread-254874][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 12:31:25,311 [DEBUG][       Thread-254874][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 12:31:25,311 [DEBUG][       Thread-254874][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 12:31:25,311 [DEBUG][       Thread-254874][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 12:31:25,311 [DEBUG][       Thread-254874][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 12:31:25,311 [DEBUG][       Thread-254874][   transport.py][1871] : Compression: none
2025-06-13 12:31:25,311 [DEBUG][       Thread-254874][   transport.py][1871] : === End of kex handshake ===
2025-06-13 12:31:25,320 [DEBUG][       Thread-254874][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 12:31:25,320 [DEBUG][       Thread-254874][   transport.py][1871] : Switch to new keys ...
2025-06-13 12:31:25,321 [DEBUG][       Thread-254874][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 12:31:25,321 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 12:31:25,321 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 12:31:25,322 [DEBUG][       Thread-254874][   transport.py][1871] : userauth is OK
2025-06-13 12:31:25,347 [ INFO][       Thread-254874][   transport.py][1871] : Authentication (password) successful!
2025-06-13 12:31:25,348 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 12:31:25,933 [DEBUG][       Thread-254874][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 12:31:25,933 [DEBUG][       Thread-254874][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 12:31:25,977 [DEBUG][       Thread-254874][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 12:31:25,977 [DEBUG][       Thread-254874][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 12:31:25,980 [DEBUG][       Thread-254874][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 12:31:25,993 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 12:31:25,993 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 12:31:25,995 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 12:31:25,996 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 12:31:26,002 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 12:31:26,004 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 12:31:26,004 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 12:31:26,005 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 12:31:26,005 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.438132 -999.00  +11.70  15.06     45   +0.20 1 1 1 1 1   888    0 12.21 23.08 ----- 13.1 15.1 48.4 24.5 16.6 -28.7 15.2 -30.0 15.1 -27.6 16.4 -27.8
2025-06-13 12:31:26,005 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 12:31:26,005 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 12:31:26,005 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.438132
2025-06-13 12:31:26,005 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 12:31:26,006 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 12:31:26,006 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 12:31:26,006 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 12:31:26,006 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 12:31:26,006 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T12:31:11', tmtdew=13.38, humidity=39.57, cloud=0.0, wind=14.68, temperature=12.08, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T10:30:54.605', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 12:31:26,008 [DEBUG][       Thread-254874][   transport.py][1871] : EOF in transport thread
2025-06-13 12:31:26,090 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 12:31:26,102 [DEBUG][       Thread-254877][   transport.py][1871] : starting thread (client mode): 0x863ed210
2025-06-13 12:31:26,102 [DEBUG][       Thread-254877][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 12:31:26,119 [DEBUG][       Thread-254877][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 12:31:26,119 [ INFO][       Thread-254877][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 12:31:26,126 [DEBUG][       Thread-254877][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 12:31:26,127 [DEBUG][       Thread-254877][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 12:31:26,127 [DEBUG][       Thread-254877][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 12:31:26,127 [DEBUG][       Thread-254877][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:31:26,127 [DEBUG][       Thread-254877][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:31:26,127 [DEBUG][       Thread-254877][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:31:26,127 [DEBUG][       Thread-254877][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:31:26,127 [DEBUG][       Thread-254877][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 12:31:26,127 [DEBUG][       Thread-254877][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 12:31:26,127 [DEBUG][       Thread-254877][   transport.py][1871] : client lang: <none>
2025-06-13 12:31:26,127 [DEBUG][       Thread-254877][   transport.py][1871] : server lang: <none>
2025-06-13 12:31:26,127 [DEBUG][       Thread-254877][   transport.py][1871] : kex follows: False
2025-06-13 12:31:26,127 [DEBUG][       Thread-254877][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 12:31:26,127 [DEBUG][       Thread-254877][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 12:31:26,127 [DEBUG][       Thread-254877][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 12:31:26,127 [DEBUG][       Thread-254877][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 12:31:26,127 [DEBUG][       Thread-254877][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 12:31:26,127 [DEBUG][       Thread-254877][   transport.py][1871] : Compression: none
2025-06-13 12:31:26,127 [DEBUG][       Thread-254877][   transport.py][1871] : === End of kex handshake ===
2025-06-13 12:31:26,189 [DEBUG][       Thread-254877][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 12:31:26,189 [DEBUG][       Thread-254877][   transport.py][1871] : Switch to new keys ...
2025-06-13 12:31:26,190 [DEBUG][       Thread-254877][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 12:31:26,190 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 12:31:26,191 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 12:31:26,244 [DEBUG][       Thread-254877][   transport.py][1871] : userauth is OK
2025-06-13 12:31:26,244 [DEBUG][       Thread-254877][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 12:31:26,244 [DEBUG][       Thread-254877][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 12:31:26,244 [DEBUG][       Thread-254877][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 12:31:26,244 [DEBUG][       Thread-254877][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 12:31:26,258 [ INFO][       Thread-254877][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 12:31:26,258 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 12:31:26,258 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 12:31:27,284 [DEBUG][       Thread-254877][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 12:31:27,284 [DEBUG][       Thread-254877][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 12:31:27,332 [DEBUG][       Thread-254877][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 12:31:27,333 [DEBUG][       Thread-254877][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 12:31:27,342 [DEBUG][       Thread-254877][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 12:31:27,351 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 12:31:27,352 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 12:31:27,361 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 12:31:27,371 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 12:31:27,371 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 12:31:27,371 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 12:31:27,380 [DEBUG][       Thread-254877][   transport.py][1871] : EOF in transport thread
2025-06-13 12:31:30,837 [DEBUG][Thread-254879 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:31:31,915 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:31:31,916 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:31:32,526 [DEBUG][Thread-254880 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:31:37,382 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 12:31:37,382 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 12:31:37,382 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 12:31:37,385 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 12:31:37,842 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 12, 31, 11), 13.38, 39.57, 0.0, 14.68, 12.08, 0, 0, 0, 2, 0, 0),)
2025-06-13 12:31:37,842 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 12:31:11
2025-06-13 12:31:37,924 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 12:31:37,930 [DEBUG][       Thread-254881][   transport.py][1871] : starting thread (client mode): 0x867fd810
2025-06-13 12:31:37,930 [DEBUG][       Thread-254881][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 12:31:37,951 [DEBUG][       Thread-254881][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 12:31:37,951 [ INFO][       Thread-254881][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 12:31:37,955 [DEBUG][       Thread-254881][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 12:31:37,955 [DEBUG][       Thread-254881][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 12:31:37,955 [DEBUG][       Thread-254881][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 12:31:37,955 [DEBUG][       Thread-254881][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:31:37,955 [DEBUG][       Thread-254881][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:31:37,955 [DEBUG][       Thread-254881][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:31:37,955 [DEBUG][       Thread-254881][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:31:37,955 [DEBUG][       Thread-254881][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 12:31:37,955 [DEBUG][       Thread-254881][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 12:31:37,955 [DEBUG][       Thread-254881][   transport.py][1871] : client lang: <none>
2025-06-13 12:31:37,955 [DEBUG][       Thread-254881][   transport.py][1871] : server lang: <none>
2025-06-13 12:31:37,955 [DEBUG][       Thread-254881][   transport.py][1871] : kex follows: False
2025-06-13 12:31:37,955 [DEBUG][       Thread-254881][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 12:31:37,955 [DEBUG][       Thread-254881][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 12:31:37,955 [DEBUG][       Thread-254881][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 12:31:37,955 [DEBUG][       Thread-254881][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 12:31:37,955 [DEBUG][       Thread-254881][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 12:31:37,955 [DEBUG][       Thread-254881][   transport.py][1871] : Compression: none
2025-06-13 12:31:37,955 [DEBUG][       Thread-254881][   transport.py][1871] : === End of kex handshake ===
2025-06-13 12:31:37,974 [DEBUG][       Thread-254881][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 12:31:37,975 [DEBUG][       Thread-254881][   transport.py][1871] : Switch to new keys ...
2025-06-13 12:31:37,975 [DEBUG][       Thread-254881][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 12:31:37,976 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 12:31:37,976 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 12:31:37,977 [DEBUG][       Thread-254881][   transport.py][1871] : userauth is OK
2025-06-13 12:31:38,001 [ INFO][       Thread-254881][   transport.py][1871] : Authentication (password) successful!
2025-06-13 12:31:38,002 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 12:31:38,612 [DEBUG][       Thread-254881][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 12:31:38,612 [DEBUG][       Thread-254881][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 12:31:38,660 [DEBUG][       Thread-254881][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 12:31:38,660 [DEBUG][       Thread-254881][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 12:31:38,662 [DEBUG][       Thread-254881][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 12:31:38,676 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 12:31:38,676 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 12:31:38,677 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 12:31:38,678 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 12:31:38,680 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 12:31:38,681 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 12:31:38,681 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 12:31:38,681 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 12:31:38,681 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.438132 -999.00  +11.70  15.06     45   +0.20 1 1 1 1 1   888    0 12.21 23.08 ----- 13.1 15.1 48.4 24.5 16.6 -28.7 15.2 -30.0 15.1 -27.6 16.4 -27.8
2025-06-13 12:31:38,681 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 12:31:38,681 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 12:31:38,681 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.438132
2025-06-13 12:31:38,681 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 12:31:38,681 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 12:31:38,681 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 12:31:38,681 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 12:31:38,681 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 12:31:38,681 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T12:31:11', tmtdew=13.38, humidity=39.57, cloud=0.0, wind=14.68, temperature=12.08, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T10:30:54.605', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 12:31:38,681 [DEBUG][       Thread-254881][   transport.py][1871] : EOF in transport thread
2025-06-13 12:31:38,753 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 12:31:38,764 [DEBUG][       Thread-254884][   transport.py][1871] : starting thread (client mode): 0x863a7670
2025-06-13 12:31:38,764 [DEBUG][       Thread-254884][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 12:31:38,779 [DEBUG][       Thread-254884][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 12:31:38,779 [ INFO][       Thread-254884][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 12:31:38,787 [DEBUG][       Thread-254884][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 12:31:38,787 [DEBUG][       Thread-254884][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 12:31:38,787 [DEBUG][       Thread-254884][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 12:31:38,787 [DEBUG][       Thread-254884][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:31:38,787 [DEBUG][       Thread-254884][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:31:38,787 [DEBUG][       Thread-254884][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:31:38,787 [DEBUG][       Thread-254884][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:31:38,787 [DEBUG][       Thread-254884][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 12:31:38,787 [DEBUG][       Thread-254884][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 12:31:38,787 [DEBUG][       Thread-254884][   transport.py][1871] : client lang: <none>
2025-06-13 12:31:38,787 [DEBUG][       Thread-254884][   transport.py][1871] : server lang: <none>
2025-06-13 12:31:38,787 [DEBUG][       Thread-254884][   transport.py][1871] : kex follows: False
2025-06-13 12:31:38,787 [DEBUG][       Thread-254884][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 12:31:38,787 [DEBUG][       Thread-254884][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 12:31:38,787 [DEBUG][       Thread-254884][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 12:31:38,787 [DEBUG][       Thread-254884][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 12:31:38,788 [DEBUG][       Thread-254884][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 12:31:38,788 [DEBUG][       Thread-254884][   transport.py][1871] : Compression: none
2025-06-13 12:31:38,788 [DEBUG][       Thread-254884][   transport.py][1871] : === End of kex handshake ===
2025-06-13 12:31:38,845 [DEBUG][       Thread-254884][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 12:31:38,845 [DEBUG][       Thread-254884][   transport.py][1871] : Switch to new keys ...
2025-06-13 12:31:38,846 [DEBUG][       Thread-254884][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 12:31:38,846 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 12:31:38,847 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 12:31:38,904 [DEBUG][       Thread-254884][   transport.py][1871] : userauth is OK
2025-06-13 12:31:38,904 [DEBUG][       Thread-254884][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 12:31:38,904 [DEBUG][       Thread-254884][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 12:31:38,904 [DEBUG][       Thread-254884][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 12:31:38,904 [DEBUG][       Thread-254884][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 12:31:38,918 [ INFO][       Thread-254884][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 12:31:38,918 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 12:31:38,918 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 12:31:39,929 [DEBUG][       Thread-254884][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 12:31:39,929 [DEBUG][       Thread-254884][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 12:31:39,981 [DEBUG][       Thread-254884][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 12:31:39,981 [DEBUG][       Thread-254884][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 12:31:39,994 [DEBUG][       Thread-254884][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 12:31:40,005 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 12:31:40,005 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 12:31:40,018 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 12:31:40,030 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 12:31:40,030 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 12:31:40,031 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 12:31:40,042 [DEBUG][       Thread-254884][   transport.py][1871] : EOF in transport thread
2025-06-13 12:31:41,553 [DEBUG][Thread-254886 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:31:44,143 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:31:44,143 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:31:50,041 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 12:31:50,042 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 12:31:50,042 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 12:31:50,044 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 12:31:50,518 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 12, 31, 43), 13.49, 39.26, 0.0, 13.57, 12.08, 0, 0, 0, 2, 0, 0),)
2025-06-13 12:31:50,518 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 12:31:43
2025-06-13 12:31:50,571 [DEBUG][Thread-254887 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:31:50,598 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 12:31:50,602 [DEBUG][       Thread-254888][   transport.py][1871] : starting thread (client mode): 0x867fd6c0
2025-06-13 12:31:50,602 [DEBUG][       Thread-254888][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 12:31:50,621 [DEBUG][       Thread-254888][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 12:31:50,621 [ INFO][       Thread-254888][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 12:31:50,623 [DEBUG][       Thread-254888][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 12:31:50,623 [DEBUG][       Thread-254888][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 12:31:50,623 [DEBUG][       Thread-254888][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 12:31:50,623 [DEBUG][       Thread-254888][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:31:50,623 [DEBUG][       Thread-254888][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:31:50,623 [DEBUG][       Thread-254888][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:31:50,623 [DEBUG][       Thread-254888][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:31:50,623 [DEBUG][       Thread-254888][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 12:31:50,623 [DEBUG][       Thread-254888][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 12:31:50,623 [DEBUG][       Thread-254888][   transport.py][1871] : client lang: <none>
2025-06-13 12:31:50,623 [DEBUG][       Thread-254888][   transport.py][1871] : server lang: <none>
2025-06-13 12:31:50,623 [DEBUG][       Thread-254888][   transport.py][1871] : kex follows: False
2025-06-13 12:31:50,623 [DEBUG][       Thread-254888][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 12:31:50,623 [DEBUG][       Thread-254888][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 12:31:50,623 [DEBUG][       Thread-254888][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 12:31:50,624 [DEBUG][       Thread-254888][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 12:31:50,624 [DEBUG][       Thread-254888][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 12:31:50,624 [DEBUG][       Thread-254888][   transport.py][1871] : Compression: none
2025-06-13 12:31:50,624 [DEBUG][       Thread-254888][   transport.py][1871] : === End of kex handshake ===
2025-06-13 12:31:50,637 [DEBUG][       Thread-254888][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 12:31:50,638 [DEBUG][       Thread-254888][   transport.py][1871] : Switch to new keys ...
2025-06-13 12:31:50,638 [DEBUG][       Thread-254888][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 12:31:50,638 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 12:31:50,638 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 12:31:50,639 [DEBUG][       Thread-254888][   transport.py][1871] : userauth is OK
2025-06-13 12:31:50,664 [ INFO][       Thread-254888][   transport.py][1871] : Authentication (password) successful!
2025-06-13 12:31:50,665 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 12:31:51,279 [DEBUG][       Thread-254888][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 12:31:51,279 [DEBUG][       Thread-254888][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 12:31:51,321 [DEBUG][       Thread-254888][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 12:31:51,321 [DEBUG][       Thread-254888][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 12:31:51,325 [DEBUG][       Thread-254888][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 12:31:51,332 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 12:31:51,332 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 12:31:51,334 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 12:31:51,337 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 12:31:51,342 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 12:31:51,344 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 12:31:51,345 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 12:31:51,345 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 12:31:51,346 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.438480 -999.00  +11.80  10.14     44   +0.20 1 1 1 1 1   888    0 12.06 16.58 ----- 16.7 10.1 39.6 15.7 16.6 -28.6 15.3 -30.0 15.1 -29.1 16.5 -26.7
2025-06-13 12:31:51,346 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 12:31:51,346 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 12:31:51,346 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.438480
2025-06-13 12:31:51,346 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 12:31:51,347 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 12:31:51,347 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 12:31:51,347 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 12:31:51,347 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 12:31:51,347 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T12:31:43', tmtdew=13.49, humidity=39.26, cloud=0.0, wind=13.57, temperature=12.08, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T10:31:24.672', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 12:31:51,347 [DEBUG][       Thread-254888][   transport.py][1871] : EOF in transport thread
2025-06-13 12:31:51,432 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 12:31:51,442 [DEBUG][       Thread-254891][   transport.py][1871] : starting thread (client mode): 0x863bd1e0
2025-06-13 12:31:51,442 [DEBUG][       Thread-254891][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 12:31:51,458 [DEBUG][       Thread-254891][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 12:31:51,459 [ INFO][       Thread-254891][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 12:31:51,467 [DEBUG][       Thread-254891][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 12:31:51,467 [DEBUG][       Thread-254891][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 12:31:51,468 [DEBUG][       Thread-254891][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 12:31:51,468 [DEBUG][       Thread-254891][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:31:51,468 [DEBUG][       Thread-254891][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:31:51,468 [DEBUG][       Thread-254891][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:31:51,468 [DEBUG][       Thread-254891][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:31:51,468 [DEBUG][       Thread-254891][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 12:31:51,468 [DEBUG][       Thread-254891][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 12:31:51,468 [DEBUG][       Thread-254891][   transport.py][1871] : client lang: <none>
2025-06-13 12:31:51,468 [DEBUG][       Thread-254891][   transport.py][1871] : server lang: <none>
2025-06-13 12:31:51,468 [DEBUG][       Thread-254891][   transport.py][1871] : kex follows: False
2025-06-13 12:31:51,468 [DEBUG][       Thread-254891][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 12:31:51,468 [DEBUG][       Thread-254891][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 12:31:51,468 [DEBUG][       Thread-254891][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 12:31:51,468 [DEBUG][       Thread-254891][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 12:31:51,468 [DEBUG][       Thread-254891][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 12:31:51,468 [DEBUG][       Thread-254891][   transport.py][1871] : Compression: none
2025-06-13 12:31:51,468 [DEBUG][       Thread-254891][   transport.py][1871] : === End of kex handshake ===
2025-06-13 12:31:51,529 [DEBUG][       Thread-254891][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 12:31:51,530 [DEBUG][       Thread-254891][   transport.py][1871] : Switch to new keys ...
2025-06-13 12:31:51,530 [DEBUG][       Thread-254891][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 12:31:51,531 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 12:31:51,531 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 12:31:51,588 [DEBUG][       Thread-254891][   transport.py][1871] : userauth is OK
2025-06-13 12:31:51,588 [DEBUG][       Thread-254891][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 12:31:51,589 [DEBUG][       Thread-254891][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 12:31:51,589 [DEBUG][       Thread-254891][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 12:31:51,589 [DEBUG][       Thread-254891][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 12:31:51,608 [ INFO][       Thread-254891][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 12:31:51,608 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 12:31:51,608 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 12:31:52,651 [DEBUG][       Thread-254891][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 12:31:52,651 [DEBUG][       Thread-254891][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 12:31:52,700 [DEBUG][       Thread-254891][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 12:31:52,700 [DEBUG][       Thread-254891][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 12:31:52,710 [DEBUG][       Thread-254891][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 12:31:52,723 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 12:31:52,723 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 12:31:52,732 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 12:31:52,742 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 12:31:52,742 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 12:31:52,742 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 12:31:52,751 [DEBUG][       Thread-254891][   transport.py][1871] : EOF in transport thread
2025-06-13 12:31:59,594 [DEBUG][Thread-254893 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:32:02,753 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 12:32:02,754 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 12:32:02,754 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 12:32:02,756 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 12:32:03,212 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 12, 31, 43), 13.49, 39.26, 0.0, 13.57, 12.08, 0, 0, 0, 2, 0, 0),)
2025-06-13 12:32:03,212 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 12:31:43
2025-06-13 12:32:03,292 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 12:32:03,295 [DEBUG][       Thread-254894][   transport.py][1871] : starting thread (client mode): 0x867ff520
2025-06-13 12:32:03,296 [DEBUG][       Thread-254894][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 12:32:03,316 [DEBUG][       Thread-254894][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 12:32:03,316 [ INFO][       Thread-254894][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 12:32:03,319 [DEBUG][       Thread-254894][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 12:32:03,319 [DEBUG][       Thread-254894][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 12:32:03,319 [DEBUG][       Thread-254894][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 12:32:03,319 [DEBUG][       Thread-254894][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:32:03,319 [DEBUG][       Thread-254894][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:32:03,319 [DEBUG][       Thread-254894][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:32:03,319 [DEBUG][       Thread-254894][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:32:03,319 [DEBUG][       Thread-254894][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 12:32:03,319 [DEBUG][       Thread-254894][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 12:32:03,319 [DEBUG][       Thread-254894][   transport.py][1871] : client lang: <none>
2025-06-13 12:32:03,319 [DEBUG][       Thread-254894][   transport.py][1871] : server lang: <none>
2025-06-13 12:32:03,319 [DEBUG][       Thread-254894][   transport.py][1871] : kex follows: False
2025-06-13 12:32:03,319 [DEBUG][       Thread-254894][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 12:32:03,319 [DEBUG][       Thread-254894][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 12:32:03,319 [DEBUG][       Thread-254894][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 12:32:03,319 [DEBUG][       Thread-254894][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 12:32:03,319 [DEBUG][       Thread-254894][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 12:32:03,319 [DEBUG][       Thread-254894][   transport.py][1871] : Compression: none
2025-06-13 12:32:03,319 [DEBUG][       Thread-254894][   transport.py][1871] : === End of kex handshake ===
2025-06-13 12:32:03,338 [DEBUG][       Thread-254894][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 12:32:03,338 [DEBUG][       Thread-254894][   transport.py][1871] : Switch to new keys ...
2025-06-13 12:32:03,339 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 12:32:03,339 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 12:32:03,339 [DEBUG][       Thread-254894][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 12:32:03,340 [DEBUG][       Thread-254894][   transport.py][1871] : userauth is OK
2025-06-13 12:32:03,353 [ INFO][       Thread-254894][   transport.py][1871] : Authentication (password) successful!
2025-06-13 12:32:03,354 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 12:32:04,007 [DEBUG][       Thread-254894][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 12:32:04,008 [DEBUG][       Thread-254894][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 12:32:04,049 [DEBUG][       Thread-254894][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 12:32:04,049 [DEBUG][       Thread-254894][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 12:32:04,053 [DEBUG][       Thread-254894][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 12:32:04,064 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 12:32:04,065 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 12:32:04,067 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 12:32:04,070 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 12:32:04,076 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 12:32:04,078 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 12:32:04,079 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 12:32:04,079 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 12:32:04,080 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.438480 -999.00  +11.80  10.14     44   +0.20 1 1 1 1 1   888    0 12.06 16.58 ----- 16.7 10.1 39.6 15.7 16.6 -28.6 15.3 -30.0 15.1 -29.1 16.5 -26.7
2025-06-13 12:32:04,080 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 12:32:04,080 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 12:32:04,080 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.438480
2025-06-13 12:32:04,080 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 12:32:04,081 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 12:32:04,081 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 12:32:04,081 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 12:32:04,081 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 12:32:04,081 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T12:31:43', tmtdew=13.49, humidity=39.26, cloud=0.0, wind=13.57, temperature=12.08, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T10:31:24.672', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 12:32:04,082 [DEBUG][       Thread-254894][   transport.py][1871] : EOF in transport thread
2025-06-13 12:32:04,176 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 12:32:04,189 [DEBUG][       Thread-254897][   transport.py][1871] : starting thread (client mode): 0x867b6710
2025-06-13 12:32:04,189 [DEBUG][       Thread-254897][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 12:32:04,206 [DEBUG][       Thread-254897][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 12:32:04,206 [ INFO][       Thread-254897][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 12:32:04,214 [DEBUG][       Thread-254897][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 12:32:04,214 [DEBUG][       Thread-254897][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 12:32:04,214 [DEBUG][       Thread-254897][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 12:32:04,215 [DEBUG][       Thread-254897][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:32:04,215 [DEBUG][       Thread-254897][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:32:04,215 [DEBUG][       Thread-254897][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:32:04,215 [DEBUG][       Thread-254897][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:32:04,215 [DEBUG][       Thread-254897][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 12:32:04,215 [DEBUG][       Thread-254897][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 12:32:04,215 [DEBUG][       Thread-254897][   transport.py][1871] : client lang: <none>
2025-06-13 12:32:04,215 [DEBUG][       Thread-254897][   transport.py][1871] : server lang: <none>
2025-06-13 12:32:04,215 [DEBUG][       Thread-254897][   transport.py][1871] : kex follows: False
2025-06-13 12:32:04,215 [DEBUG][       Thread-254897][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 12:32:04,215 [DEBUG][       Thread-254897][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 12:32:04,215 [DEBUG][       Thread-254897][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 12:32:04,215 [DEBUG][       Thread-254897][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 12:32:04,215 [DEBUG][       Thread-254897][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 12:32:04,215 [DEBUG][       Thread-254897][   transport.py][1871] : Compression: none
2025-06-13 12:32:04,215 [DEBUG][       Thread-254897][   transport.py][1871] : === End of kex handshake ===
2025-06-13 12:32:04,272 [DEBUG][       Thread-254897][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 12:32:04,273 [DEBUG][       Thread-254897][   transport.py][1871] : Switch to new keys ...
2025-06-13 12:32:04,283 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 12:32:04,283 [DEBUG][       Thread-254897][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 12:32:04,284 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 12:32:04,329 [DEBUG][       Thread-254897][   transport.py][1871] : userauth is OK
2025-06-13 12:32:04,329 [DEBUG][       Thread-254897][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 12:32:04,329 [DEBUG][       Thread-254897][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 12:32:04,329 [DEBUG][       Thread-254897][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 12:32:04,329 [DEBUG][       Thread-254897][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 12:32:04,349 [ INFO][       Thread-254897][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 12:32:04,350 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 12:32:04,350 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 12:32:05,364 [DEBUG][       Thread-254897][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 12:32:05,364 [DEBUG][       Thread-254897][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 12:32:05,412 [DEBUG][       Thread-254897][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 12:32:05,412 [DEBUG][       Thread-254897][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 12:32:05,421 [DEBUG][       Thread-254897][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 12:32:05,430 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 12:32:05,430 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 12:32:05,439 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 12:32:05,451 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 12:32:05,451 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 12:32:05,452 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 12:32:05,462 [DEBUG][       Thread-254897][   transport.py][1871] : EOF in transport thread
2025-06-13 12:32:08,632 [DEBUG][Thread-254899 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:32:12,457 [DEBUG][Thread-254900 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:32:15,460 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 12:32:15,460 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 12:32:15,460 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 12:32:15,461 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 12:32:15,979 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 12, 31, 43), 13.49, 39.26, 0.0, 13.57, 12.08, 0, 0, 0, 2, 0, 0),)
2025-06-13 12:32:15,979 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 12:31:43
2025-06-13 12:32:16,062 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 12:32:16,068 [DEBUG][       Thread-254901][   transport.py][1871] : starting thread (client mode): 0x863bf490
2025-06-13 12:32:16,069 [DEBUG][       Thread-254901][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 12:32:16,088 [DEBUG][       Thread-254901][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 12:32:16,089 [ INFO][       Thread-254901][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 12:32:16,092 [DEBUG][       Thread-254901][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 12:32:16,092 [DEBUG][       Thread-254901][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 12:32:16,092 [DEBUG][       Thread-254901][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 12:32:16,092 [DEBUG][       Thread-254901][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:32:16,092 [DEBUG][       Thread-254901][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:32:16,092 [DEBUG][       Thread-254901][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:32:16,092 [DEBUG][       Thread-254901][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:32:16,092 [DEBUG][       Thread-254901][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 12:32:16,092 [DEBUG][       Thread-254901][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 12:32:16,092 [DEBUG][       Thread-254901][   transport.py][1871] : client lang: <none>
2025-06-13 12:32:16,092 [DEBUG][       Thread-254901][   transport.py][1871] : server lang: <none>
2025-06-13 12:32:16,092 [DEBUG][       Thread-254901][   transport.py][1871] : kex follows: False
2025-06-13 12:32:16,092 [DEBUG][       Thread-254901][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 12:32:16,092 [DEBUG][       Thread-254901][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 12:32:16,092 [DEBUG][       Thread-254901][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 12:32:16,092 [DEBUG][       Thread-254901][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 12:32:16,092 [DEBUG][       Thread-254901][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 12:32:16,092 [DEBUG][       Thread-254901][   transport.py][1871] : Compression: none
2025-06-13 12:32:16,092 [DEBUG][       Thread-254901][   transport.py][1871] : === End of kex handshake ===
2025-06-13 12:32:16,107 [DEBUG][       Thread-254901][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 12:32:16,107 [DEBUG][       Thread-254901][   transport.py][1871] : Switch to new keys ...
2025-06-13 12:32:16,107 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 12:32:16,107 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 12:32:16,107 [DEBUG][       Thread-254901][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 12:32:16,108 [DEBUG][       Thread-254901][   transport.py][1871] : userauth is OK
2025-06-13 12:32:16,121 [ INFO][       Thread-254901][   transport.py][1871] : Authentication (password) successful!
2025-06-13 12:32:16,121 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 12:32:16,679 [DEBUG][       Thread-254901][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 12:32:16,679 [DEBUG][       Thread-254901][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 12:32:16,720 [DEBUG][       Thread-254901][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 12:32:16,720 [DEBUG][       Thread-254901][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 12:32:16,723 [DEBUG][       Thread-254901][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 12:32:16,736 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 12:32:16,736 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 12:32:16,737 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 12:32:16,738 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 12:32:16,740 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 12:32:16,741 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 12:32:16,741 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 12:32:16,741 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 12:32:16,741 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.438480 -999.00  +11.80  10.14     44   +0.20 1 1 1 1 1   888    0 12.06 16.58 ----- 16.7 10.1 39.6 15.7 16.6 -28.6 15.3 -30.0 15.1 -29.1 16.5 -26.7
2025-06-13 12:32:16,741 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 12:32:16,741 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 12:32:16,741 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.438480
2025-06-13 12:32:16,741 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 12:32:16,741 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 12:32:16,741 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 12:32:16,741 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 12:32:16,741 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 12:32:16,741 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T12:31:43', tmtdew=13.49, humidity=39.26, cloud=0.0, wind=13.57, temperature=12.08, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T10:31:24.672', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 12:32:16,742 [DEBUG][       Thread-254901][   transport.py][1871] : EOF in transport thread
2025-06-13 12:32:16,816 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 12:32:16,828 [DEBUG][       Thread-254904][   transport.py][1871] : starting thread (client mode): 0x86893be0
2025-06-13 12:32:16,828 [DEBUG][       Thread-254904][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 12:32:16,842 [DEBUG][       Thread-254904][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 12:32:16,842 [ INFO][       Thread-254904][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 12:32:16,850 [DEBUG][       Thread-254904][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 12:32:16,850 [DEBUG][       Thread-254904][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 12:32:16,850 [DEBUG][       Thread-254904][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 12:32:16,850 [DEBUG][       Thread-254904][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:32:16,850 [DEBUG][       Thread-254904][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:32:16,850 [DEBUG][       Thread-254904][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:32:16,850 [DEBUG][       Thread-254904][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:32:16,850 [DEBUG][       Thread-254904][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 12:32:16,850 [DEBUG][       Thread-254904][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 12:32:16,850 [DEBUG][       Thread-254904][   transport.py][1871] : client lang: <none>
2025-06-13 12:32:16,850 [DEBUG][       Thread-254904][   transport.py][1871] : server lang: <none>
2025-06-13 12:32:16,850 [DEBUG][       Thread-254904][   transport.py][1871] : kex follows: False
2025-06-13 12:32:16,850 [DEBUG][       Thread-254904][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 12:32:16,850 [DEBUG][       Thread-254904][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 12:32:16,850 [DEBUG][       Thread-254904][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 12:32:16,850 [DEBUG][       Thread-254904][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 12:32:16,850 [DEBUG][       Thread-254904][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 12:32:16,850 [DEBUG][       Thread-254904][   transport.py][1871] : Compression: none
2025-06-13 12:32:16,850 [DEBUG][       Thread-254904][   transport.py][1871] : === End of kex handshake ===
2025-06-13 12:32:16,906 [DEBUG][       Thread-254904][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 12:32:16,906 [DEBUG][       Thread-254904][   transport.py][1871] : Switch to new keys ...
2025-06-13 12:32:16,907 [DEBUG][       Thread-254904][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 12:32:16,907 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 12:32:16,907 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 12:32:16,964 [DEBUG][       Thread-254904][   transport.py][1871] : userauth is OK
2025-06-13 12:32:16,964 [DEBUG][       Thread-254904][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 12:32:16,964 [DEBUG][       Thread-254904][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 12:32:16,964 [DEBUG][       Thread-254904][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 12:32:16,964 [DEBUG][       Thread-254904][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 12:32:16,978 [ INFO][       Thread-254904][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 12:32:16,978 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 12:32:16,978 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 12:32:17,651 [DEBUG][Thread-254906 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:32:18,027 [DEBUG][       Thread-254904][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 12:32:18,028 [DEBUG][       Thread-254904][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 12:32:18,080 [DEBUG][       Thread-254904][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 12:32:18,081 [DEBUG][       Thread-254904][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 12:32:18,090 [DEBUG][       Thread-254904][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 12:32:18,099 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 12:32:18,100 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 12:32:18,109 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 12:32:18,118 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 12:32:18,118 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 12:32:18,119 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 12:32:18,127 [DEBUG][       Thread-254904][   transport.py][1871] : EOF in transport thread
2025-06-13 12:32:26,671 [DEBUG][Thread-254907 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:32:28,120 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 12:32:28,120 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 12:32:28,120 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 12:32:28,123 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 12:32:28,592 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 12, 32, 15), 13.71, 38.51, 0.0, 11.7, 12.06, 0, 0, 0, 2, 0, 0),)
2025-06-13 12:32:28,592 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 12:32:15
2025-06-13 12:32:28,672 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 12:32:28,676 [DEBUG][       Thread-254908][   transport.py][1871] : starting thread (client mode): 0x867fd3c0
2025-06-13 12:32:28,676 [DEBUG][       Thread-254908][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 12:32:28,697 [DEBUG][       Thread-254908][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 12:32:28,697 [ INFO][       Thread-254908][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 12:32:28,700 [DEBUG][       Thread-254908][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 12:32:28,700 [DEBUG][       Thread-254908][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 12:32:28,700 [DEBUG][       Thread-254908][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 12:32:28,700 [DEBUG][       Thread-254908][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:32:28,700 [DEBUG][       Thread-254908][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:32:28,700 [DEBUG][       Thread-254908][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:32:28,700 [DEBUG][       Thread-254908][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:32:28,700 [DEBUG][       Thread-254908][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 12:32:28,700 [DEBUG][       Thread-254908][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 12:32:28,700 [DEBUG][       Thread-254908][   transport.py][1871] : client lang: <none>
2025-06-13 12:32:28,700 [DEBUG][       Thread-254908][   transport.py][1871] : server lang: <none>
2025-06-13 12:32:28,700 [DEBUG][       Thread-254908][   transport.py][1871] : kex follows: False
2025-06-13 12:32:28,701 [DEBUG][       Thread-254908][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 12:32:28,701 [DEBUG][       Thread-254908][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 12:32:28,701 [DEBUG][       Thread-254908][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 12:32:28,701 [DEBUG][       Thread-254908][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 12:32:28,701 [DEBUG][       Thread-254908][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 12:32:28,701 [DEBUG][       Thread-254908][   transport.py][1871] : Compression: none
2025-06-13 12:32:28,701 [DEBUG][       Thread-254908][   transport.py][1871] : === End of kex handshake ===
2025-06-13 12:32:28,719 [DEBUG][       Thread-254908][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 12:32:28,720 [DEBUG][       Thread-254908][   transport.py][1871] : Switch to new keys ...
2025-06-13 12:32:28,720 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 12:32:28,720 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 12:32:28,721 [DEBUG][       Thread-254908][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 12:32:28,721 [DEBUG][       Thread-254908][   transport.py][1871] : userauth is OK
2025-06-13 12:32:28,735 [ INFO][       Thread-254908][   transport.py][1871] : Authentication (password) successful!
2025-06-13 12:32:28,735 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 12:32:29,413 [DEBUG][       Thread-254908][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 12:32:29,413 [DEBUG][       Thread-254908][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 12:32:29,457 [DEBUG][       Thread-254908][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 12:32:29,457 [DEBUG][       Thread-254908][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 12:32:29,460 [DEBUG][       Thread-254908][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 12:32:29,472 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 12:32:29,472 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 12:32:29,474 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 12:32:29,476 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 12:32:29,482 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 12:32:29,484 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 12:32:29,484 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 12:32:29,485 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 12:32:29,485 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.438827 -999.00  +11.80  13.77     45   +0.40 1 1 1 1 1   888    0 12.10 11.16 ----- 11.4 13.8 46.8 17.8 16.7 -28.4 15.3 -29.8 15.2 -27.4 16.6 -26.6
2025-06-13 12:32:29,485 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 12:32:29,485 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 12:32:29,485 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.438827
2025-06-13 12:32:29,486 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 12:32:29,486 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 12:32:29,486 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 12:32:29,487 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 12:32:29,487 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 12:32:29,487 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T12:32:15', tmtdew=13.71, humidity=38.51, cloud=0.0, wind=11.7, temperature=12.06, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T10:31:54.653', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 12:32:29,487 [DEBUG][       Thread-254908][   transport.py][1871] : EOF in transport thread
2025-06-13 12:32:29,570 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 12:32:29,580 [DEBUG][       Thread-254911][   transport.py][1871] : starting thread (client mode): 0x867b6710
2025-06-13 12:32:29,580 [DEBUG][       Thread-254911][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 12:32:29,599 [DEBUG][       Thread-254911][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 12:32:29,599 [ INFO][       Thread-254911][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 12:32:29,607 [DEBUG][       Thread-254911][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 12:32:29,607 [DEBUG][       Thread-254911][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 12:32:29,607 [DEBUG][       Thread-254911][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 12:32:29,607 [DEBUG][       Thread-254911][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:32:29,607 [DEBUG][       Thread-254911][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:32:29,607 [DEBUG][       Thread-254911][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:32:29,607 [DEBUG][       Thread-254911][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:32:29,607 [DEBUG][       Thread-254911][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 12:32:29,607 [DEBUG][       Thread-254911][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 12:32:29,607 [DEBUG][       Thread-254911][   transport.py][1871] : client lang: <none>
2025-06-13 12:32:29,607 [DEBUG][       Thread-254911][   transport.py][1871] : server lang: <none>
2025-06-13 12:32:29,607 [DEBUG][       Thread-254911][   transport.py][1871] : kex follows: False
2025-06-13 12:32:29,607 [DEBUG][       Thread-254911][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 12:32:29,607 [DEBUG][       Thread-254911][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 12:32:29,607 [DEBUG][       Thread-254911][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 12:32:29,608 [DEBUG][       Thread-254911][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 12:32:29,608 [DEBUG][       Thread-254911][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 12:32:29,608 [DEBUG][       Thread-254911][   transport.py][1871] : Compression: none
2025-06-13 12:32:29,608 [DEBUG][       Thread-254911][   transport.py][1871] : === End of kex handshake ===
2025-06-13 12:32:29,664 [DEBUG][       Thread-254911][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 12:32:29,665 [DEBUG][       Thread-254911][   transport.py][1871] : Switch to new keys ...
2025-06-13 12:32:29,665 [DEBUG][       Thread-254911][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 12:32:29,665 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 12:32:29,666 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 12:32:29,720 [DEBUG][       Thread-254911][   transport.py][1871] : userauth is OK
2025-06-13 12:32:29,721 [DEBUG][       Thread-254911][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 12:32:29,721 [DEBUG][       Thread-254911][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 12:32:29,721 [DEBUG][       Thread-254911][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 12:32:29,721 [DEBUG][       Thread-254911][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 12:32:29,744 [ INFO][       Thread-254911][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 12:32:29,744 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 12:32:29,745 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 12:32:30,782 [DEBUG][       Thread-254911][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 12:32:30,783 [DEBUG][       Thread-254911][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 12:32:30,835 [DEBUG][       Thread-254911][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 12:32:30,835 [DEBUG][       Thread-254911][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 12:32:30,848 [DEBUG][       Thread-254911][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 12:32:30,858 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 12:32:30,859 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 12:32:30,868 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 12:32:30,878 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 12:32:30,878 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 12:32:30,879 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 12:32:30,887 [DEBUG][       Thread-254911][   transport.py][1871] : EOF in transport thread
2025-06-13 12:32:31,990 [DEBUG][Thread-254913 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:32:33,071 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:32:33,073 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:32:35,693 [DEBUG][Thread-254914 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:32:40,889 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 12:32:40,889 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 12:32:40,889 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 12:32:40,890 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 12:32:41,343 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 12, 32, 15), 13.71, 38.51, 0.0, 11.7, 12.06, 0, 0, 0, 2, 0, 0),)
2025-06-13 12:32:41,343 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 12:32:15
2025-06-13 12:32:41,422 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 12:32:41,428 [DEBUG][       Thread-254915][   transport.py][1871] : starting thread (client mode): 0x863bc130
2025-06-13 12:32:41,428 [DEBUG][       Thread-254915][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 12:32:41,448 [DEBUG][       Thread-254915][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 12:32:41,448 [ INFO][       Thread-254915][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 12:32:41,451 [DEBUG][       Thread-254915][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 12:32:41,452 [DEBUG][       Thread-254915][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 12:32:41,452 [DEBUG][       Thread-254915][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 12:32:41,452 [DEBUG][       Thread-254915][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:32:41,452 [DEBUG][       Thread-254915][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:32:41,452 [DEBUG][       Thread-254915][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:32:41,452 [DEBUG][       Thread-254915][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:32:41,452 [DEBUG][       Thread-254915][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 12:32:41,452 [DEBUG][       Thread-254915][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 12:32:41,452 [DEBUG][       Thread-254915][   transport.py][1871] : client lang: <none>
2025-06-13 12:32:41,452 [DEBUG][       Thread-254915][   transport.py][1871] : server lang: <none>
2025-06-13 12:32:41,452 [DEBUG][       Thread-254915][   transport.py][1871] : kex follows: False
2025-06-13 12:32:41,452 [DEBUG][       Thread-254915][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 12:32:41,452 [DEBUG][       Thread-254915][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 12:32:41,452 [DEBUG][       Thread-254915][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 12:32:41,452 [DEBUG][       Thread-254915][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 12:32:41,452 [DEBUG][       Thread-254915][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 12:32:41,452 [DEBUG][       Thread-254915][   transport.py][1871] : Compression: none
2025-06-13 12:32:41,452 [DEBUG][       Thread-254915][   transport.py][1871] : === End of kex handshake ===
2025-06-13 12:32:41,471 [DEBUG][       Thread-254915][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 12:32:41,471 [DEBUG][       Thread-254915][   transport.py][1871] : Switch to new keys ...
2025-06-13 12:32:41,472 [DEBUG][       Thread-254915][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 12:32:41,472 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 12:32:41,472 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 12:32:41,473 [DEBUG][       Thread-254915][   transport.py][1871] : userauth is OK
2025-06-13 12:32:41,498 [ INFO][       Thread-254915][   transport.py][1871] : Authentication (password) successful!
2025-06-13 12:32:41,499 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 12:32:42,110 [DEBUG][       Thread-254915][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 12:32:42,110 [DEBUG][       Thread-254915][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 12:32:42,153 [DEBUG][       Thread-254915][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 12:32:42,153 [DEBUG][       Thread-254915][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 12:32:42,157 [DEBUG][       Thread-254915][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 12:32:42,168 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 12:32:42,169 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 12:32:42,171 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 12:32:42,172 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 12:32:42,177 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 12:32:42,179 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 12:32:42,179 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 12:32:42,180 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 12:32:42,180 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.438827 -999.00  +11.80  13.77     45   +0.40 1 1 1 1 1   888    0 12.10 11.16 ----- 11.4 13.8 46.8 17.8 16.7 -28.4 15.3 -29.8 15.2 -27.4 16.6 -26.6
2025-06-13 12:32:42,180 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 12:32:42,180 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 12:32:42,180 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.438827
2025-06-13 12:32:42,180 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 12:32:42,181 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 12:32:42,181 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 12:32:42,181 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 12:32:42,181 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 12:32:42,181 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T12:32:15', tmtdew=13.71, humidity=38.51, cloud=0.0, wind=11.7, temperature=12.06, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T10:31:54.653', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 12:32:42,182 [DEBUG][       Thread-254915][   transport.py][1871] : EOF in transport thread
2025-06-13 12:32:42,264 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 12:32:42,277 [DEBUG][       Thread-254918][   transport.py][1871] : starting thread (client mode): 0x86369750
2025-06-13 12:32:42,277 [DEBUG][       Thread-254918][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 12:32:42,291 [DEBUG][       Thread-254918][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 12:32:42,291 [ INFO][       Thread-254918][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 12:32:42,300 [DEBUG][       Thread-254918][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 12:32:42,300 [DEBUG][       Thread-254918][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 12:32:42,301 [DEBUG][       Thread-254918][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 12:32:42,301 [DEBUG][       Thread-254918][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:32:42,301 [DEBUG][       Thread-254918][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:32:42,301 [DEBUG][       Thread-254918][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:32:42,301 [DEBUG][       Thread-254918][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:32:42,301 [DEBUG][       Thread-254918][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 12:32:42,301 [DEBUG][       Thread-254918][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 12:32:42,301 [DEBUG][       Thread-254918][   transport.py][1871] : client lang: <none>
2025-06-13 12:32:42,301 [DEBUG][       Thread-254918][   transport.py][1871] : server lang: <none>
2025-06-13 12:32:42,301 [DEBUG][       Thread-254918][   transport.py][1871] : kex follows: False
2025-06-13 12:32:42,301 [DEBUG][       Thread-254918][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 12:32:42,301 [DEBUG][       Thread-254918][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 12:32:42,301 [DEBUG][       Thread-254918][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 12:32:42,301 [DEBUG][       Thread-254918][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 12:32:42,301 [DEBUG][       Thread-254918][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 12:32:42,301 [DEBUG][       Thread-254918][   transport.py][1871] : Compression: none
2025-06-13 12:32:42,301 [DEBUG][       Thread-254918][   transport.py][1871] : === End of kex handshake ===
2025-06-13 12:32:42,360 [DEBUG][       Thread-254918][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 12:32:42,361 [DEBUG][       Thread-254918][   transport.py][1871] : Switch to new keys ...
2025-06-13 12:32:42,361 [DEBUG][       Thread-254918][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 12:32:42,361 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 12:32:42,362 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 12:32:42,416 [DEBUG][       Thread-254918][   transport.py][1871] : userauth is OK
2025-06-13 12:32:42,416 [DEBUG][       Thread-254918][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 12:32:42,417 [DEBUG][       Thread-254918][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 12:32:42,417 [DEBUG][       Thread-254918][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 12:32:42,417 [DEBUG][       Thread-254918][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 12:32:42,436 [ INFO][       Thread-254918][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 12:32:42,436 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 12:32:42,437 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 12:32:43,430 [DEBUG][       Thread-254918][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 12:32:43,430 [DEBUG][       Thread-254918][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 12:32:43,481 [DEBUG][       Thread-254918][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 12:32:43,481 [DEBUG][       Thread-254918][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 12:32:43,491 [DEBUG][       Thread-254918][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 12:32:43,502 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 12:32:43,502 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 12:32:43,512 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 12:32:43,525 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 12:32:43,526 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 12:32:43,526 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 12:32:43,537 [DEBUG][       Thread-254918][   transport.py][1871] : EOF in transport thread
2025-06-13 12:32:44,284 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:32:44,286 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:32:44,729 [DEBUG][Thread-254920 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:32:53,536 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 12:32:53,536 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 12:32:53,536 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 12:32:53,539 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 12:32:53,748 [DEBUG][Thread-254921 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:32:54,005 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 12, 32, 46), 13.87, 38.09, 0.0, 11.86, 12.07, 0, 0, 0, 2, 0, 0),)
2025-06-13 12:32:54,005 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 12:32:46
2025-06-13 12:32:54,084 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 12:32:54,088 [DEBUG][       Thread-254922][   transport.py][1871] : starting thread (client mode): 0x86368d90
2025-06-13 12:32:54,088 [DEBUG][       Thread-254922][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 12:32:54,109 [DEBUG][       Thread-254922][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 12:32:54,109 [ INFO][       Thread-254922][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 12:32:54,112 [DEBUG][       Thread-254922][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 12:32:54,113 [DEBUG][       Thread-254922][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 12:32:54,113 [DEBUG][       Thread-254922][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 12:32:54,113 [DEBUG][       Thread-254922][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:32:54,113 [DEBUG][       Thread-254922][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:32:54,113 [DEBUG][       Thread-254922][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:32:54,113 [DEBUG][       Thread-254922][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:32:54,113 [DEBUG][       Thread-254922][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 12:32:54,113 [DEBUG][       Thread-254922][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 12:32:54,113 [DEBUG][       Thread-254922][   transport.py][1871] : client lang: <none>
2025-06-13 12:32:54,113 [DEBUG][       Thread-254922][   transport.py][1871] : server lang: <none>
2025-06-13 12:32:54,113 [DEBUG][       Thread-254922][   transport.py][1871] : kex follows: False
2025-06-13 12:32:54,113 [DEBUG][       Thread-254922][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 12:32:54,113 [DEBUG][       Thread-254922][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 12:32:54,113 [DEBUG][       Thread-254922][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 12:32:54,113 [DEBUG][       Thread-254922][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 12:32:54,113 [DEBUG][       Thread-254922][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 12:32:54,113 [DEBUG][       Thread-254922][   transport.py][1871] : Compression: none
2025-06-13 12:32:54,113 [DEBUG][       Thread-254922][   transport.py][1871] : === End of kex handshake ===
2025-06-13 12:32:54,134 [DEBUG][       Thread-254922][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 12:32:54,135 [DEBUG][       Thread-254922][   transport.py][1871] : Switch to new keys ...
2025-06-13 12:32:54,135 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 12:32:54,136 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 12:32:54,136 [DEBUG][       Thread-254922][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 12:32:54,136 [DEBUG][       Thread-254922][   transport.py][1871] : userauth is OK
2025-06-13 12:32:54,149 [ INFO][       Thread-254922][   transport.py][1871] : Authentication (password) successful!
2025-06-13 12:32:54,150 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 12:32:54,801 [DEBUG][       Thread-254922][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 12:32:54,801 [DEBUG][       Thread-254922][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 12:32:54,844 [DEBUG][       Thread-254922][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 12:32:54,845 [DEBUG][       Thread-254922][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 12:32:54,847 [DEBUG][       Thread-254922][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 12:32:54,860 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 12:32:54,860 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 12:32:54,861 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 12:32:54,863 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 12:32:54,867 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 12:32:54,869 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 12:32:54,869 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 12:32:54,870 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 12:32:54,870 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.438827 -999.00  +11.80  13.77     45   +0.40 1 1 1 1 1   888    0 12.10 11.16 ----- 11.4 13.8 46.8 17.8 16.7 -28.4 15.3 -29.8 15.2 -27.4 16.6 -26.6
2025-06-13 12:32:54,870 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 12:32:54,870 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 12:32:54,870 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.438827
2025-06-13 12:32:54,870 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 12:32:54,871 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 12:32:54,871 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 12:32:54,871 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 12:32:54,871 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 12:32:54,871 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T12:32:46', tmtdew=13.87, humidity=38.09, cloud=0.0, wind=11.86, temperature=12.07, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T10:31:54.653', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 12:32:54,872 [DEBUG][       Thread-254922][   transport.py][1871] : EOF in transport thread
2025-06-13 12:32:54,948 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 12:32:54,960 [DEBUG][       Thread-254925][   transport.py][1871] : starting thread (client mode): 0x868c85e0
2025-06-13 12:32:54,960 [DEBUG][       Thread-254925][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 12:32:54,976 [DEBUG][       Thread-254925][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 12:32:54,976 [ INFO][       Thread-254925][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 12:32:54,985 [DEBUG][       Thread-254925][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 12:32:54,985 [DEBUG][       Thread-254925][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 12:32:54,985 [DEBUG][       Thread-254925][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 12:32:54,985 [DEBUG][       Thread-254925][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:32:54,985 [DEBUG][       Thread-254925][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:32:54,985 [DEBUG][       Thread-254925][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:32:54,985 [DEBUG][       Thread-254925][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:32:54,985 [DEBUG][       Thread-254925][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 12:32:54,985 [DEBUG][       Thread-254925][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 12:32:54,985 [DEBUG][       Thread-254925][   transport.py][1871] : client lang: <none>
2025-06-13 12:32:54,985 [DEBUG][       Thread-254925][   transport.py][1871] : server lang: <none>
2025-06-13 12:32:54,985 [DEBUG][       Thread-254925][   transport.py][1871] : kex follows: False
2025-06-13 12:32:54,985 [DEBUG][       Thread-254925][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 12:32:54,985 [DEBUG][       Thread-254925][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 12:32:54,985 [DEBUG][       Thread-254925][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 12:32:54,986 [DEBUG][       Thread-254925][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 12:32:54,986 [DEBUG][       Thread-254925][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 12:32:54,986 [DEBUG][       Thread-254925][   transport.py][1871] : Compression: none
2025-06-13 12:32:54,986 [DEBUG][       Thread-254925][   transport.py][1871] : === End of kex handshake ===
2025-06-13 12:32:55,040 [DEBUG][       Thread-254925][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 12:32:55,040 [DEBUG][       Thread-254925][   transport.py][1871] : Switch to new keys ...
2025-06-13 12:32:55,041 [DEBUG][       Thread-254925][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 12:32:55,041 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 12:32:55,042 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 12:32:55,097 [DEBUG][       Thread-254925][   transport.py][1871] : userauth is OK
2025-06-13 12:32:55,097 [DEBUG][       Thread-254925][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 12:32:55,097 [DEBUG][       Thread-254925][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 12:32:55,098 [DEBUG][       Thread-254925][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 12:32:55,098 [DEBUG][       Thread-254925][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 12:32:55,118 [ INFO][       Thread-254925][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 12:32:55,119 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 12:32:55,119 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 12:32:56,160 [DEBUG][       Thread-254925][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 12:32:56,161 [DEBUG][       Thread-254925][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 12:32:56,212 [DEBUG][       Thread-254925][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 12:32:56,212 [DEBUG][       Thread-254925][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 12:32:56,222 [DEBUG][       Thread-254925][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 12:32:56,231 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 12:32:56,232 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 12:32:56,240 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 12:32:56,250 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 12:32:56,250 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 12:32:56,251 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 12:32:56,258 [DEBUG][       Thread-254925][   transport.py][1871] : EOF in transport thread
2025-06-13 12:33:02,766 [DEBUG][Thread-254927 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:33:06,261 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 12:33:06,261 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 12:33:06,261 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 12:33:06,264 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 12:33:06,731 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 12, 32, 46), 13.87, 38.09, 0.0, 11.86, 12.07, 0, 0, 0, 2, 0, 0),)
2025-06-13 12:33:06,731 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 12:32:46
2025-06-13 12:33:06,809 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 12:33:06,815 [DEBUG][       Thread-254928][   transport.py][1871] : starting thread (client mode): 0x867fe920
2025-06-13 12:33:06,815 [DEBUG][       Thread-254928][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 12:33:06,836 [DEBUG][       Thread-254928][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 12:33:06,836 [ INFO][       Thread-254928][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 12:33:06,839 [DEBUG][       Thread-254928][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 12:33:06,839 [DEBUG][       Thread-254928][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 12:33:06,840 [DEBUG][       Thread-254928][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 12:33:06,840 [DEBUG][       Thread-254928][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:33:06,840 [DEBUG][       Thread-254928][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:33:06,840 [DEBUG][       Thread-254928][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:33:06,840 [DEBUG][       Thread-254928][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:33:06,840 [DEBUG][       Thread-254928][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 12:33:06,840 [DEBUG][       Thread-254928][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 12:33:06,840 [DEBUG][       Thread-254928][   transport.py][1871] : client lang: <none>
2025-06-13 12:33:06,840 [DEBUG][       Thread-254928][   transport.py][1871] : server lang: <none>
2025-06-13 12:33:06,840 [DEBUG][       Thread-254928][   transport.py][1871] : kex follows: False
2025-06-13 12:33:06,840 [DEBUG][       Thread-254928][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 12:33:06,840 [DEBUG][       Thread-254928][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 12:33:06,840 [DEBUG][       Thread-254928][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 12:33:06,840 [DEBUG][       Thread-254928][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 12:33:06,840 [DEBUG][       Thread-254928][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 12:33:06,840 [DEBUG][       Thread-254928][   transport.py][1871] : Compression: none
2025-06-13 12:33:06,840 [DEBUG][       Thread-254928][   transport.py][1871] : === End of kex handshake ===
2025-06-13 12:33:06,859 [DEBUG][       Thread-254928][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 12:33:06,859 [DEBUG][       Thread-254928][   transport.py][1871] : Switch to new keys ...
2025-06-13 12:33:06,860 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 12:33:06,860 [DEBUG][       Thread-254928][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 12:33:06,860 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 12:33:06,862 [DEBUG][       Thread-254928][   transport.py][1871] : userauth is OK
2025-06-13 12:33:06,875 [ INFO][       Thread-254928][   transport.py][1871] : Authentication (password) successful!
2025-06-13 12:33:06,876 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 12:33:07,500 [DEBUG][       Thread-254928][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 12:33:07,501 [DEBUG][       Thread-254928][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 12:33:07,545 [DEBUG][       Thread-254928][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 12:33:07,545 [DEBUG][       Thread-254928][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 12:33:07,548 [DEBUG][       Thread-254928][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 12:33:07,561 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 12:33:07,562 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 12:33:07,564 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 12:33:07,566 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 12:33:07,572 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 12:33:07,574 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 12:33:07,574 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 12:33:07,575 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 12:33:07,575 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.439521 -999.00  +12.40  12.97     44   +0.80 1 1 1 1 1   888    0 11.66 5.24 ----- 17.6 13.0 41.6 26.9 16.9 -28.2 15.6 -30.2 15.3 -30.1 16.7 -26.6
2025-06-13 12:33:07,575 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 12:33:07,575 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 12:33:07,575 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.439521
2025-06-13 12:33:07,575 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 12:33:07,576 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 12:33:07,576 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 12:33:07,576 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 12:33:07,576 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 12:33:07,577 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T12:32:46', tmtdew=13.87, humidity=38.09, cloud=0.0, wind=11.86, temperature=12.07, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T10:32:54.614', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 12:33:07,578 [DEBUG][       Thread-254928][   transport.py][1871] : EOF in transport thread
2025-06-13 12:33:07,660 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 12:33:07,671 [DEBUG][       Thread-254931][   transport.py][1871] : starting thread (client mode): 0x867b6440
2025-06-13 12:33:07,671 [DEBUG][       Thread-254931][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 12:33:07,691 [DEBUG][       Thread-254931][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 12:33:07,692 [ INFO][       Thread-254931][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 12:33:07,703 [DEBUG][       Thread-254931][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 12:33:07,703 [DEBUG][       Thread-254931][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 12:33:07,703 [DEBUG][       Thread-254931][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 12:33:07,703 [DEBUG][       Thread-254931][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:33:07,703 [DEBUG][       Thread-254931][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:33:07,703 [DEBUG][       Thread-254931][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:33:07,703 [DEBUG][       Thread-254931][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:33:07,703 [DEBUG][       Thread-254931][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 12:33:07,703 [DEBUG][       Thread-254931][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 12:33:07,703 [DEBUG][       Thread-254931][   transport.py][1871] : client lang: <none>
2025-06-13 12:33:07,703 [DEBUG][       Thread-254931][   transport.py][1871] : server lang: <none>
2025-06-13 12:33:07,703 [DEBUG][       Thread-254931][   transport.py][1871] : kex follows: False
2025-06-13 12:33:07,703 [DEBUG][       Thread-254931][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 12:33:07,703 [DEBUG][       Thread-254931][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 12:33:07,704 [DEBUG][       Thread-254931][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 12:33:07,704 [DEBUG][       Thread-254931][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 12:33:07,704 [DEBUG][       Thread-254931][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 12:33:07,704 [DEBUG][       Thread-254931][   transport.py][1871] : Compression: none
2025-06-13 12:33:07,704 [DEBUG][       Thread-254931][   transport.py][1871] : === End of kex handshake ===
2025-06-13 12:33:07,766 [DEBUG][       Thread-254931][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 12:33:07,766 [DEBUG][       Thread-254931][   transport.py][1871] : Switch to new keys ...
2025-06-13 12:33:07,767 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 12:33:07,767 [DEBUG][       Thread-254931][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 12:33:07,768 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 12:33:07,832 [DEBUG][       Thread-254931][   transport.py][1871] : userauth is OK
2025-06-13 12:33:07,832 [DEBUG][       Thread-254931][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 12:33:07,832 [DEBUG][       Thread-254931][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 12:33:07,833 [DEBUG][       Thread-254931][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 12:33:07,833 [DEBUG][       Thread-254931][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 12:33:07,855 [ INFO][       Thread-254931][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 12:33:07,856 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 12:33:07,856 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 12:33:08,865 [DEBUG][       Thread-254931][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 12:33:08,865 [DEBUG][       Thread-254931][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 12:33:08,915 [DEBUG][       Thread-254931][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 12:33:08,915 [DEBUG][       Thread-254931][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 12:33:08,925 [DEBUG][       Thread-254931][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 12:33:08,937 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 12:33:08,937 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 12:33:08,945 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 12:33:08,953 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 12:33:08,953 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 12:33:08,953 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 12:33:08,961 [DEBUG][       Thread-254931][   transport.py][1871] : EOF in transport thread
2025-06-13 12:33:11,794 [DEBUG][Thread-254933 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:33:12,490 [DEBUG][Thread-254934 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:33:18,957 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 12:33:18,957 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 12:33:18,957 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 12:33:18,958 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 12:33:19,442 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 12, 32, 46), 13.87, 38.09, 0.0, 11.86, 12.07, 0, 0, 0, 2, 0, 0),)
2025-06-13 12:33:19,442 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 12:32:46
2025-06-13 12:33:19,527 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 12:33:19,531 [DEBUG][       Thread-254935][   transport.py][1871] : starting thread (client mode): 0x867fff10
2025-06-13 12:33:19,531 [DEBUG][       Thread-254935][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 12:33:19,551 [DEBUG][       Thread-254935][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 12:33:19,551 [ INFO][       Thread-254935][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 12:33:19,555 [DEBUG][       Thread-254935][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 12:33:19,555 [DEBUG][       Thread-254935][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 12:33:19,555 [DEBUG][       Thread-254935][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 12:33:19,555 [DEBUG][       Thread-254935][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:33:19,555 [DEBUG][       Thread-254935][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:33:19,555 [DEBUG][       Thread-254935][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:33:19,555 [DEBUG][       Thread-254935][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:33:19,555 [DEBUG][       Thread-254935][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 12:33:19,555 [DEBUG][       Thread-254935][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 12:33:19,555 [DEBUG][       Thread-254935][   transport.py][1871] : client lang: <none>
2025-06-13 12:33:19,555 [DEBUG][       Thread-254935][   transport.py][1871] : server lang: <none>
2025-06-13 12:33:19,555 [DEBUG][       Thread-254935][   transport.py][1871] : kex follows: False
2025-06-13 12:33:19,555 [DEBUG][       Thread-254935][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 12:33:19,555 [DEBUG][       Thread-254935][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 12:33:19,555 [DEBUG][       Thread-254935][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 12:33:19,555 [DEBUG][       Thread-254935][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 12:33:19,555 [DEBUG][       Thread-254935][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 12:33:19,555 [DEBUG][       Thread-254935][   transport.py][1871] : Compression: none
2025-06-13 12:33:19,555 [DEBUG][       Thread-254935][   transport.py][1871] : === End of kex handshake ===
2025-06-13 12:33:19,570 [DEBUG][       Thread-254935][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 12:33:19,570 [DEBUG][       Thread-254935][   transport.py][1871] : Switch to new keys ...
2025-06-13 12:33:19,570 [DEBUG][       Thread-254935][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 12:33:19,570 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 12:33:19,570 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 12:33:19,571 [DEBUG][       Thread-254935][   transport.py][1871] : userauth is OK
2025-06-13 12:33:19,595 [ INFO][       Thread-254935][   transport.py][1871] : Authentication (password) successful!
2025-06-13 12:33:19,595 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 12:33:20,234 [DEBUG][       Thread-254935][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 12:33:20,234 [DEBUG][       Thread-254935][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 12:33:20,276 [DEBUG][       Thread-254935][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 12:33:20,277 [DEBUG][       Thread-254935][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 12:33:20,279 [DEBUG][       Thread-254935][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 12:33:20,293 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 12:33:20,293 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 12:33:20,294 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 12:33:20,295 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 12:33:20,297 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 12:33:20,298 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 12:33:20,298 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 12:33:20,298 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 12:33:20,298 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.439521 -999.00  +12.40  12.97     44   +0.80 1 1 1 1 1   888    0 11.66 5.24 ----- 17.6 13.0 41.6 26.9 16.9 -28.2 15.6 -30.2 15.3 -30.1 16.7 -26.6
2025-06-13 12:33:20,298 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 12:33:20,298 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 12:33:20,298 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.439521
2025-06-13 12:33:20,298 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 12:33:20,298 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 12:33:20,298 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 12:33:20,298 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 12:33:20,298 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 12:33:20,299 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T12:32:46', tmtdew=13.87, humidity=38.09, cloud=0.0, wind=11.86, temperature=12.07, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T10:32:54.614', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 12:33:20,299 [DEBUG][       Thread-254935][   transport.py][1871] : EOF in transport thread
2025-06-13 12:33:20,373 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 12:33:20,384 [DEBUG][       Thread-254938][   transport.py][1871] : starting thread (client mode): 0x863ed030
2025-06-13 12:33:20,384 [DEBUG][       Thread-254938][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 12:33:20,399 [DEBUG][       Thread-254938][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 12:33:20,399 [ INFO][       Thread-254938][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 12:33:20,406 [DEBUG][       Thread-254938][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 12:33:20,406 [DEBUG][       Thread-254938][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 12:33:20,406 [DEBUG][       Thread-254938][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 12:33:20,406 [DEBUG][       Thread-254938][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:33:20,406 [DEBUG][       Thread-254938][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:33:20,406 [DEBUG][       Thread-254938][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:33:20,406 [DEBUG][       Thread-254938][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:33:20,406 [DEBUG][       Thread-254938][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 12:33:20,406 [DEBUG][       Thread-254938][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 12:33:20,406 [DEBUG][       Thread-254938][   transport.py][1871] : client lang: <none>
2025-06-13 12:33:20,406 [DEBUG][       Thread-254938][   transport.py][1871] : server lang: <none>
2025-06-13 12:33:20,406 [DEBUG][       Thread-254938][   transport.py][1871] : kex follows: False
2025-06-13 12:33:20,406 [DEBUG][       Thread-254938][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 12:33:20,406 [DEBUG][       Thread-254938][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 12:33:20,406 [DEBUG][       Thread-254938][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 12:33:20,406 [DEBUG][       Thread-254938][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 12:33:20,406 [DEBUG][       Thread-254938][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 12:33:20,406 [DEBUG][       Thread-254938][   transport.py][1871] : Compression: none
2025-06-13 12:33:20,406 [DEBUG][       Thread-254938][   transport.py][1871] : === End of kex handshake ===
2025-06-13 12:33:20,463 [DEBUG][       Thread-254938][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 12:33:20,463 [DEBUG][       Thread-254938][   transport.py][1871] : Switch to new keys ...
2025-06-13 12:33:20,463 [DEBUG][       Thread-254938][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 12:33:20,463 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 12:33:20,463 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 12:33:20,520 [DEBUG][       Thread-254938][   transport.py][1871] : userauth is OK
2025-06-13 12:33:20,520 [DEBUG][       Thread-254938][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 12:33:20,520 [DEBUG][       Thread-254938][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 12:33:20,520 [DEBUG][       Thread-254938][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 12:33:20,521 [DEBUG][       Thread-254938][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 12:33:20,534 [ INFO][       Thread-254938][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 12:33:20,534 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 12:33:20,534 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 12:33:20,815 [DEBUG][Thread-254940 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:33:21,528 [DEBUG][       Thread-254938][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 12:33:21,529 [DEBUG][       Thread-254938][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 12:33:21,580 [DEBUG][       Thread-254938][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 12:33:21,580 [DEBUG][       Thread-254938][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 12:33:21,590 [DEBUG][       Thread-254938][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 12:33:21,599 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 12:33:21,599 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 12:33:21,614 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 12:33:21,625 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 12:33:21,626 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 12:33:21,626 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 12:33:21,636 [DEBUG][       Thread-254938][   transport.py][1871] : EOF in transport thread
2025-06-13 12:33:29,837 [DEBUG][Thread-254941 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:33:31,628 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 12:33:31,628 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 12:33:31,628 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 12:33:31,631 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 12:33:32,081 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 12, 33, 18), 14.08, 37.48, 0.0, 22.87, 12.14, 0, 0, 0, 2, 0, 0),)
2025-06-13 12:33:32,081 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 12:33:18
2025-06-13 12:33:32,160 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 12:33:32,164 [DEBUG][       Thread-254942][   transport.py][1871] : starting thread (client mode): 0x867fd810
2025-06-13 12:33:32,164 [DEBUG][       Thread-254942][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 12:33:32,184 [DEBUG][       Thread-254942][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 12:33:32,185 [ INFO][       Thread-254942][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 12:33:32,186 [DEBUG][       Thread-254942][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 12:33:32,186 [DEBUG][       Thread-254942][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 12:33:32,186 [DEBUG][       Thread-254942][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 12:33:32,186 [DEBUG][       Thread-254942][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:33:32,186 [DEBUG][       Thread-254942][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:33:32,186 [DEBUG][       Thread-254942][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:33:32,186 [DEBUG][       Thread-254942][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:33:32,187 [DEBUG][       Thread-254942][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 12:33:32,187 [DEBUG][       Thread-254942][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 12:33:32,187 [DEBUG][       Thread-254942][   transport.py][1871] : client lang: <none>
2025-06-13 12:33:32,187 [DEBUG][       Thread-254942][   transport.py][1871] : server lang: <none>
2025-06-13 12:33:32,187 [DEBUG][       Thread-254942][   transport.py][1871] : kex follows: False
2025-06-13 12:33:32,187 [DEBUG][       Thread-254942][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 12:33:32,187 [DEBUG][       Thread-254942][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 12:33:32,187 [DEBUG][       Thread-254942][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 12:33:32,187 [DEBUG][       Thread-254942][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 12:33:32,187 [DEBUG][       Thread-254942][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 12:33:32,187 [DEBUG][       Thread-254942][   transport.py][1871] : Compression: none
2025-06-13 12:33:32,187 [DEBUG][       Thread-254942][   transport.py][1871] : === End of kex handshake ===
2025-06-13 12:33:32,202 [DEBUG][       Thread-254942][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 12:33:32,202 [DEBUG][       Thread-254942][   transport.py][1871] : Switch to new keys ...
2025-06-13 12:33:32,203 [DEBUG][       Thread-254942][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 12:33:32,203 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 12:33:32,203 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 12:33:32,204 [DEBUG][       Thread-254942][   transport.py][1871] : userauth is OK
2025-06-13 12:33:32,217 [ INFO][       Thread-254942][   transport.py][1871] : Authentication (password) successful!
2025-06-13 12:33:32,218 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 12:33:32,809 [DEBUG][       Thread-254942][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 12:33:32,809 [DEBUG][       Thread-254942][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 12:33:32,852 [DEBUG][       Thread-254942][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 12:33:32,852 [DEBUG][       Thread-254942][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 12:33:32,855 [DEBUG][       Thread-254942][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 12:33:32,866 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 12:33:32,866 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 12:33:32,867 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 12:33:32,868 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 12:33:32,870 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 12:33:32,871 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 12:33:32,871 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 12:33:32,871 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 12:33:32,871 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.439868 -999.00  +12.40  20.75     41   -0.40 1 1 1 1 1   888    0 12.04 9.59 ----- 22.9 20.8 58.2 25.9 16.9 -29.1 15.5 -31.2 15.2 -29.4 16.7 -27.2
2025-06-13 12:33:32,871 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 12:33:32,871 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 12:33:32,871 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.439868
2025-06-13 12:33:32,871 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 12:33:32,872 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 12:33:32,872 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 12:33:32,872 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 12:33:32,872 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 12:33:32,872 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T12:33:18', tmtdew=14.08, humidity=37.48, cloud=0.0, wind=22.87, temperature=12.14, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T10:33:24.595', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 12:33:32,872 [DEBUG][       Thread-254942][   transport.py][1871] : EOF in transport thread
2025-06-13 12:33:32,943 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 12:33:32,952 [DEBUG][       Thread-254945][   transport.py][1871] : starting thread (client mode): 0x863a6e60
2025-06-13 12:33:32,952 [DEBUG][       Thread-254945][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 12:33:32,969 [DEBUG][       Thread-254945][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 12:33:32,969 [ INFO][       Thread-254945][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 12:33:32,977 [DEBUG][       Thread-254945][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 12:33:32,977 [DEBUG][       Thread-254945][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 12:33:32,977 [DEBUG][       Thread-254945][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 12:33:32,977 [DEBUG][       Thread-254945][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:33:32,977 [DEBUG][       Thread-254945][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:33:32,977 [DEBUG][       Thread-254945][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:33:32,977 [DEBUG][       Thread-254945][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:33:32,977 [DEBUG][       Thread-254945][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 12:33:32,978 [DEBUG][       Thread-254945][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 12:33:32,978 [DEBUG][       Thread-254945][   transport.py][1871] : client lang: <none>
2025-06-13 12:33:32,978 [DEBUG][       Thread-254945][   transport.py][1871] : server lang: <none>
2025-06-13 12:33:32,978 [DEBUG][       Thread-254945][   transport.py][1871] : kex follows: False
2025-06-13 12:33:32,978 [DEBUG][       Thread-254945][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 12:33:32,978 [DEBUG][       Thread-254945][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 12:33:32,978 [DEBUG][       Thread-254945][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 12:33:32,978 [DEBUG][       Thread-254945][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 12:33:32,978 [DEBUG][       Thread-254945][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 12:33:32,978 [DEBUG][       Thread-254945][   transport.py][1871] : Compression: none
2025-06-13 12:33:32,978 [DEBUG][       Thread-254945][   transport.py][1871] : === End of kex handshake ===
2025-06-13 12:33:33,038 [DEBUG][       Thread-254945][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 12:33:33,038 [DEBUG][       Thread-254945][   transport.py][1871] : Switch to new keys ...
2025-06-13 12:33:33,039 [DEBUG][       Thread-254945][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 12:33:33,039 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 12:33:33,040 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 12:33:33,104 [DEBUG][       Thread-254945][   transport.py][1871] : userauth is OK
2025-06-13 12:33:33,104 [DEBUG][       Thread-254945][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 12:33:33,104 [DEBUG][       Thread-254945][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 12:33:33,105 [DEBUG][       Thread-254945][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 12:33:33,105 [DEBUG][       Thread-254945][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 12:33:33,126 [ INFO][       Thread-254945][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 12:33:33,127 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 12:33:33,127 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 12:33:33,137 [DEBUG][Thread-254947 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:33:34,138 [DEBUG][       Thread-254945][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 12:33:34,138 [DEBUG][       Thread-254945][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 12:33:34,188 [DEBUG][       Thread-254945][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 12:33:34,188 [DEBUG][       Thread-254945][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 12:33:34,199 [DEBUG][       Thread-254945][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 12:33:34,208 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 12:33:34,209 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 12:33:34,217 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:33:34,218 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:33:34,219 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 12:33:34,229 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 12:33:34,229 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 12:33:34,229 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 12:33:34,238 [DEBUG][       Thread-254945][   transport.py][1871] : EOF in transport thread
2025-06-13 12:33:38,856 [DEBUG][Thread-254948 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:33:44,240 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 12:33:44,240 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 12:33:44,240 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 12:33:44,243 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 12:33:44,426 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:33:44,427 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:33:44,707 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 12, 33, 18), 14.08, 37.48, 0.0, 22.87, 12.14, 0, 0, 0, 2, 0, 0),)
2025-06-13 12:33:44,707 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 12:33:18
2025-06-13 12:33:44,786 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 12:33:44,790 [DEBUG][       Thread-254949][   transport.py][1871] : starting thread (client mode): 0x867fd3c0
2025-06-13 12:33:44,790 [DEBUG][       Thread-254949][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 12:33:44,803 [DEBUG][       Thread-254949][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 12:33:44,803 [ INFO][       Thread-254949][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 12:33:44,806 [DEBUG][       Thread-254949][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 12:33:44,806 [DEBUG][       Thread-254949][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 12:33:44,806 [DEBUG][       Thread-254949][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 12:33:44,806 [DEBUG][       Thread-254949][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:33:44,806 [DEBUG][       Thread-254949][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:33:44,806 [DEBUG][       Thread-254949][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:33:44,806 [DEBUG][       Thread-254949][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:33:44,806 [DEBUG][       Thread-254949][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 12:33:44,806 [DEBUG][       Thread-254949][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 12:33:44,806 [DEBUG][       Thread-254949][   transport.py][1871] : client lang: <none>
2025-06-13 12:33:44,806 [DEBUG][       Thread-254949][   transport.py][1871] : server lang: <none>
2025-06-13 12:33:44,806 [DEBUG][       Thread-254949][   transport.py][1871] : kex follows: False
2025-06-13 12:33:44,806 [DEBUG][       Thread-254949][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 12:33:44,806 [DEBUG][       Thread-254949][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 12:33:44,806 [DEBUG][       Thread-254949][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 12:33:44,806 [DEBUG][       Thread-254949][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 12:33:44,806 [DEBUG][       Thread-254949][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 12:33:44,806 [DEBUG][       Thread-254949][   transport.py][1871] : Compression: none
2025-06-13 12:33:44,806 [DEBUG][       Thread-254949][   transport.py][1871] : === End of kex handshake ===
2025-06-13 12:33:44,824 [DEBUG][       Thread-254949][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 12:33:44,825 [DEBUG][       Thread-254949][   transport.py][1871] : Switch to new keys ...
2025-06-13 12:33:44,825 [DEBUG][       Thread-254949][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 12:33:44,825 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 12:33:44,826 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 12:33:44,827 [DEBUG][       Thread-254949][   transport.py][1871] : userauth is OK
2025-06-13 12:33:44,841 [ INFO][       Thread-254949][   transport.py][1871] : Authentication (password) successful!
2025-06-13 12:33:44,842 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 12:33:45,490 [DEBUG][       Thread-254949][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 12:33:45,490 [DEBUG][       Thread-254949][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 12:33:45,533 [DEBUG][       Thread-254949][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 12:33:45,533 [DEBUG][       Thread-254949][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 12:33:45,536 [DEBUG][       Thread-254949][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 12:33:45,548 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 12:33:45,549 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 12:33:45,550 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 12:33:45,552 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 12:33:45,558 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 12:33:45,560 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 12:33:45,560 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 12:33:45,561 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 12:33:45,561 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.439868 -999.00  +12.40  20.75     41   -0.40 1 1 1 1 1   888    0 12.04 9.59 ----- 22.9 20.8 58.2 25.9 16.9 -29.1 15.5 -31.2 15.2 -29.4 16.7 -27.2
2025-06-13 12:33:45,561 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 12:33:45,561 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 12:33:45,561 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.439868
2025-06-13 12:33:45,561 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 12:33:45,562 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 12:33:45,562 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 12:33:45,562 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 12:33:45,562 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 12:33:45,562 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T12:33:18', tmtdew=14.08, humidity=37.48, cloud=0.0, wind=22.87, temperature=12.14, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T10:33:24.595', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 12:33:45,563 [DEBUG][       Thread-254949][   transport.py][1871] : EOF in transport thread
2025-06-13 12:33:45,646 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 12:33:45,656 [DEBUG][       Thread-254952][   transport.py][1871] : starting thread (client mode): 0x8636b910
2025-06-13 12:33:45,656 [DEBUG][       Thread-254952][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 12:33:45,670 [DEBUG][       Thread-254952][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 12:33:45,670 [ INFO][       Thread-254952][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 12:33:45,678 [DEBUG][       Thread-254952][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 12:33:45,678 [DEBUG][       Thread-254952][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 12:33:45,678 [DEBUG][       Thread-254952][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 12:33:45,678 [DEBUG][       Thread-254952][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:33:45,678 [DEBUG][       Thread-254952][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:33:45,678 [DEBUG][       Thread-254952][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:33:45,678 [DEBUG][       Thread-254952][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:33:45,678 [DEBUG][       Thread-254952][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 12:33:45,678 [DEBUG][       Thread-254952][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 12:33:45,678 [DEBUG][       Thread-254952][   transport.py][1871] : client lang: <none>
2025-06-13 12:33:45,678 [DEBUG][       Thread-254952][   transport.py][1871] : server lang: <none>
2025-06-13 12:33:45,678 [DEBUG][       Thread-254952][   transport.py][1871] : kex follows: False
2025-06-13 12:33:45,679 [DEBUG][       Thread-254952][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 12:33:45,679 [DEBUG][       Thread-254952][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 12:33:45,679 [DEBUG][       Thread-254952][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 12:33:45,679 [DEBUG][       Thread-254952][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 12:33:45,679 [DEBUG][       Thread-254952][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 12:33:45,679 [DEBUG][       Thread-254952][   transport.py][1871] : Compression: none
2025-06-13 12:33:45,679 [DEBUG][       Thread-254952][   transport.py][1871] : === End of kex handshake ===
2025-06-13 12:33:45,736 [DEBUG][       Thread-254952][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 12:33:45,737 [DEBUG][       Thread-254952][   transport.py][1871] : Switch to new keys ...
2025-06-13 12:33:45,737 [DEBUG][       Thread-254952][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 12:33:45,737 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 12:33:45,738 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 12:33:45,793 [DEBUG][       Thread-254952][   transport.py][1871] : userauth is OK
2025-06-13 12:33:45,793 [DEBUG][       Thread-254952][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 12:33:45,793 [DEBUG][       Thread-254952][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 12:33:45,793 [DEBUG][       Thread-254952][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 12:33:45,793 [DEBUG][       Thread-254952][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 12:33:45,812 [ INFO][       Thread-254952][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 12:33:45,812 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 12:33:45,812 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 12:33:46,881 [DEBUG][       Thread-254952][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 12:33:46,881 [DEBUG][       Thread-254952][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 12:33:46,932 [DEBUG][       Thread-254952][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 12:33:46,932 [DEBUG][       Thread-254952][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 12:33:46,940 [DEBUG][       Thread-254952][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 12:33:46,948 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 12:33:46,949 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 12:33:46,956 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 12:33:46,964 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 12:33:46,964 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 12:33:46,965 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 12:33:46,972 [DEBUG][       Thread-254952][   transport.py][1871] : EOF in transport thread
2025-06-13 12:33:47,891 [DEBUG][Thread-254954 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:33:56,912 [DEBUG][Thread-254955 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:33:56,975 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 12:33:56,975 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 12:33:56,975 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 12:33:56,978 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 12:33:57,428 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 12, 33, 50), 14.12, 37.39, 0.0, 19.64, 12.17, 0, 0, 0, 2, 0, 0),)
2025-06-13 12:33:57,428 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 12:33:50
2025-06-13 12:33:57,506 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 12:33:57,510 [DEBUG][       Thread-254956][   transport.py][1871] : starting thread (client mode): 0x863bcdf0
2025-06-13 12:33:57,510 [DEBUG][       Thread-254956][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 12:33:57,530 [DEBUG][       Thread-254956][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 12:33:57,530 [ INFO][       Thread-254956][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 12:33:57,533 [DEBUG][       Thread-254956][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 12:33:57,533 [DEBUG][       Thread-254956][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 12:33:57,533 [DEBUG][       Thread-254956][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 12:33:57,533 [DEBUG][       Thread-254956][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:33:57,533 [DEBUG][       Thread-254956][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:33:57,533 [DEBUG][       Thread-254956][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:33:57,533 [DEBUG][       Thread-254956][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:33:57,533 [DEBUG][       Thread-254956][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 12:33:57,533 [DEBUG][       Thread-254956][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 12:33:57,533 [DEBUG][       Thread-254956][   transport.py][1871] : client lang: <none>
2025-06-13 12:33:57,533 [DEBUG][       Thread-254956][   transport.py][1871] : server lang: <none>
2025-06-13 12:33:57,533 [DEBUG][       Thread-254956][   transport.py][1871] : kex follows: False
2025-06-13 12:33:57,533 [DEBUG][       Thread-254956][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 12:33:57,533 [DEBUG][       Thread-254956][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 12:33:57,533 [DEBUG][       Thread-254956][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 12:33:57,534 [DEBUG][       Thread-254956][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 12:33:57,534 [DEBUG][       Thread-254956][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 12:33:57,534 [DEBUG][       Thread-254956][   transport.py][1871] : Compression: none
2025-06-13 12:33:57,534 [DEBUG][       Thread-254956][   transport.py][1871] : === End of kex handshake ===
2025-06-13 12:33:57,552 [DEBUG][       Thread-254956][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 12:33:57,552 [DEBUG][       Thread-254956][   transport.py][1871] : Switch to new keys ...
2025-06-13 12:33:57,553 [DEBUG][       Thread-254956][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 12:33:57,553 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 12:33:57,553 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 12:33:57,554 [DEBUG][       Thread-254956][   transport.py][1871] : userauth is OK
2025-06-13 12:33:57,579 [ INFO][       Thread-254956][   transport.py][1871] : Authentication (password) successful!
2025-06-13 12:33:57,580 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 12:33:58,197 [DEBUG][       Thread-254956][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 12:33:58,198 [DEBUG][       Thread-254956][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 12:33:58,241 [DEBUG][       Thread-254956][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 12:33:58,241 [DEBUG][       Thread-254956][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 12:33:58,244 [DEBUG][       Thread-254956][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 12:33:58,257 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 12:33:58,258 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 12:33:58,260 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 12:33:58,262 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 12:33:58,267 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 12:33:58,269 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 12:33:58,269 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 12:33:58,270 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 12:33:58,270 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.439868 -999.00  +12.40  20.75     41   -0.40 1 1 1 1 1   888    0 12.04 9.59 ----- 22.9 20.8 58.2 25.9 16.9 -29.1 15.5 -31.2 15.2 -29.4 16.7 -27.2
2025-06-13 12:33:58,270 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 12:33:58,270 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 12:33:58,271 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.439868
2025-06-13 12:33:58,271 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 12:33:58,272 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 12:33:58,272 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 12:33:58,272 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 12:33:58,272 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 12:33:58,272 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T12:33:50', tmtdew=14.12, humidity=37.39, cloud=0.0, wind=19.64, temperature=12.17, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T10:33:24.595', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 12:33:58,273 [DEBUG][       Thread-254956][   transport.py][1871] : EOF in transport thread
2025-06-13 12:33:58,355 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 12:33:58,369 [DEBUG][       Thread-254959][   transport.py][1871] : starting thread (client mode): 0x8636bb80
2025-06-13 12:33:58,369 [DEBUG][       Thread-254959][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 12:33:58,384 [DEBUG][       Thread-254959][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 12:33:58,384 [ INFO][       Thread-254959][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 12:33:58,392 [DEBUG][       Thread-254959][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 12:33:58,392 [DEBUG][       Thread-254959][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 12:33:58,392 [DEBUG][       Thread-254959][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 12:33:58,392 [DEBUG][       Thread-254959][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:33:58,392 [DEBUG][       Thread-254959][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:33:58,392 [DEBUG][       Thread-254959][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:33:58,392 [DEBUG][       Thread-254959][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:33:58,392 [DEBUG][       Thread-254959][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 12:33:58,393 [DEBUG][       Thread-254959][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 12:33:58,393 [DEBUG][       Thread-254959][   transport.py][1871] : client lang: <none>
2025-06-13 12:33:58,393 [DEBUG][       Thread-254959][   transport.py][1871] : server lang: <none>
2025-06-13 12:33:58,393 [DEBUG][       Thread-254959][   transport.py][1871] : kex follows: False
2025-06-13 12:33:58,393 [DEBUG][       Thread-254959][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 12:33:58,393 [DEBUG][       Thread-254959][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 12:33:58,393 [DEBUG][       Thread-254959][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 12:33:58,393 [DEBUG][       Thread-254959][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 12:33:58,393 [DEBUG][       Thread-254959][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 12:33:58,393 [DEBUG][       Thread-254959][   transport.py][1871] : Compression: none
2025-06-13 12:33:58,393 [DEBUG][       Thread-254959][   transport.py][1871] : === End of kex handshake ===
2025-06-13 12:33:58,455 [DEBUG][       Thread-254959][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 12:33:58,456 [DEBUG][       Thread-254959][   transport.py][1871] : Switch to new keys ...
2025-06-13 12:33:58,457 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 12:33:58,457 [DEBUG][       Thread-254959][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 12:33:58,458 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 12:33:58,518 [DEBUG][       Thread-254959][   transport.py][1871] : userauth is OK
2025-06-13 12:33:58,519 [DEBUG][       Thread-254959][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 12:33:58,519 [DEBUG][       Thread-254959][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 12:33:58,519 [DEBUG][       Thread-254959][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 12:33:58,519 [DEBUG][       Thread-254959][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 12:33:58,540 [ INFO][       Thread-254959][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 12:33:58,540 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 12:33:58,541 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 12:33:59,546 [DEBUG][       Thread-254959][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 12:33:59,546 [DEBUG][       Thread-254959][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 12:33:59,596 [DEBUG][       Thread-254959][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 12:33:59,596 [DEBUG][       Thread-254959][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 12:33:59,605 [DEBUG][       Thread-254959][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 12:33:59,613 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 12:33:59,614 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 12:33:59,624 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 12:33:59,638 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 12:33:59,638 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 12:33:59,638 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 12:33:59,646 [DEBUG][       Thread-254959][   transport.py][1871] : EOF in transport thread
2025-06-13 12:34:05,933 [DEBUG][Thread-254961 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:34:09,649 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 12:34:09,649 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 12:34:09,649 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 12:34:09,652 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 12:34:10,112 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 12, 33, 50), 14.12, 37.39, 0.0, 19.64, 12.17, 0, 0, 0, 2, 0, 0),)
2025-06-13 12:34:10,112 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 12:33:50
2025-06-13 12:34:10,191 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 12:34:10,197 [DEBUG][       Thread-254962][   transport.py][1871] : starting thread (client mode): 0x8636a4d0
2025-06-13 12:34:10,197 [DEBUG][       Thread-254962][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 12:34:10,218 [DEBUG][       Thread-254962][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 12:34:10,218 [ INFO][       Thread-254962][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 12:34:10,222 [DEBUG][       Thread-254962][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 12:34:10,222 [DEBUG][       Thread-254962][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 12:34:10,222 [DEBUG][       Thread-254962][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 12:34:10,222 [DEBUG][       Thread-254962][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:34:10,222 [DEBUG][       Thread-254962][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:34:10,222 [DEBUG][       Thread-254962][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:34:10,222 [DEBUG][       Thread-254962][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:34:10,222 [DEBUG][       Thread-254962][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 12:34:10,222 [DEBUG][       Thread-254962][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 12:34:10,222 [DEBUG][       Thread-254962][   transport.py][1871] : client lang: <none>
2025-06-13 12:34:10,222 [DEBUG][       Thread-254962][   transport.py][1871] : server lang: <none>
2025-06-13 12:34:10,222 [DEBUG][       Thread-254962][   transport.py][1871] : kex follows: False
2025-06-13 12:34:10,222 [DEBUG][       Thread-254962][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 12:34:10,222 [DEBUG][       Thread-254962][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 12:34:10,222 [DEBUG][       Thread-254962][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 12:34:10,223 [DEBUG][       Thread-254962][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 12:34:10,223 [DEBUG][       Thread-254962][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 12:34:10,223 [DEBUG][       Thread-254962][   transport.py][1871] : Compression: none
2025-06-13 12:34:10,223 [DEBUG][       Thread-254962][   transport.py][1871] : === End of kex handshake ===
2025-06-13 12:34:10,237 [DEBUG][       Thread-254962][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 12:34:10,238 [DEBUG][       Thread-254962][   transport.py][1871] : Switch to new keys ...
2025-06-13 12:34:10,238 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 12:34:10,239 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 12:34:10,239 [DEBUG][       Thread-254962][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 12:34:10,239 [DEBUG][       Thread-254962][   transport.py][1871] : userauth is OK
2025-06-13 12:34:10,252 [ INFO][       Thread-254962][   transport.py][1871] : Authentication (password) successful!
2025-06-13 12:34:10,253 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 12:34:10,892 [DEBUG][       Thread-254962][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 12:34:10,892 [DEBUG][       Thread-254962][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 12:34:10,933 [DEBUG][       Thread-254962][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 12:34:10,933 [DEBUG][       Thread-254962][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 12:34:10,937 [DEBUG][       Thread-254962][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 12:34:10,948 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 12:34:10,949 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 12:34:10,951 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 12:34:10,955 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 12:34:10,964 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 12:34:10,966 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 12:34:10,966 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 12:34:10,967 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 12:34:10,967 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.440216 -999.00  +12.20  20.89     40   -0.60 1 1 1 1 1   888    0 12.32 15.15 ----- 25.0 20.9 41.4 30.7 16.9 -28.7 15.4 -31.7 15.2 -29.4 16.6 -27.2
2025-06-13 12:34:10,967 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 12:34:10,967 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 12:34:10,967 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.440216
2025-06-13 12:34:10,968 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 12:34:10,968 [DEBUG][       Thread-254962][   transport.py][1871] : EOF in transport thread
2025-06-13 12:34:10,969 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 12:34:10,969 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 12:34:10,969 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 12:34:10,970 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 12:34:10,970 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T12:33:50', tmtdew=14.12, humidity=37.39, cloud=0.0, wind=19.64, temperature=12.17, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T10:33:54.662', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 12:34:11,054 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 12:34:11,072 [DEBUG][       Thread-254965][   transport.py][1871] : starting thread (client mode): 0x863ee1d0
2025-06-13 12:34:11,072 [DEBUG][       Thread-254965][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 12:34:11,088 [DEBUG][       Thread-254965][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 12:34:11,088 [ INFO][       Thread-254965][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 12:34:11,097 [DEBUG][       Thread-254965][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 12:34:11,097 [DEBUG][       Thread-254965][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 12:34:11,097 [DEBUG][       Thread-254965][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 12:34:11,098 [DEBUG][       Thread-254965][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:34:11,098 [DEBUG][       Thread-254965][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:34:11,098 [DEBUG][       Thread-254965][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:34:11,098 [DEBUG][       Thread-254965][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:34:11,098 [DEBUG][       Thread-254965][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 12:34:11,098 [DEBUG][       Thread-254965][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 12:34:11,098 [DEBUG][       Thread-254965][   transport.py][1871] : client lang: <none>
2025-06-13 12:34:11,098 [DEBUG][       Thread-254965][   transport.py][1871] : server lang: <none>
2025-06-13 12:34:11,098 [DEBUG][       Thread-254965][   transport.py][1871] : kex follows: False
2025-06-13 12:34:11,098 [DEBUG][       Thread-254965][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 12:34:11,098 [DEBUG][       Thread-254965][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 12:34:11,098 [DEBUG][       Thread-254965][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 12:34:11,098 [DEBUG][       Thread-254965][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 12:34:11,098 [DEBUG][       Thread-254965][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 12:34:11,098 [DEBUG][       Thread-254965][   transport.py][1871] : Compression: none
2025-06-13 12:34:11,098 [DEBUG][       Thread-254965][   transport.py][1871] : === End of kex handshake ===
2025-06-13 12:34:11,157 [DEBUG][       Thread-254965][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 12:34:11,157 [DEBUG][       Thread-254965][   transport.py][1871] : Switch to new keys ...
2025-06-13 12:34:11,157 [DEBUG][       Thread-254965][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 12:34:11,157 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 12:34:11,157 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 12:34:11,225 [DEBUG][       Thread-254965][   transport.py][1871] : userauth is OK
2025-06-13 12:34:11,225 [DEBUG][       Thread-254965][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 12:34:11,225 [DEBUG][       Thread-254965][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 12:34:11,225 [DEBUG][       Thread-254965][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 12:34:11,225 [DEBUG][       Thread-254965][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 12:34:11,245 [ INFO][       Thread-254965][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 12:34:11,246 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 12:34:11,246 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 12:34:12,271 [DEBUG][       Thread-254965][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 12:34:12,271 [DEBUG][       Thread-254965][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 12:34:12,320 [DEBUG][       Thread-254965][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 12:34:12,321 [DEBUG][       Thread-254965][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 12:34:12,331 [DEBUG][       Thread-254965][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 12:34:12,340 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 12:34:12,340 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 12:34:12,350 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 12:34:12,360 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 12:34:12,360 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 12:34:12,361 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 12:34:12,369 [DEBUG][       Thread-254965][   transport.py][1871] : EOF in transport thread
2025-06-13 12:34:12,522 [DEBUG][Thread-254967 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:34:14,966 [DEBUG][Thread-254968 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:34:22,368 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 12:34:22,368 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 12:34:22,368 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 12:34:22,368 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 12:34:22,868 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 12, 33, 50), 14.12, 37.39, 0.0, 19.64, 12.17, 0, 0, 0, 2, 0, 0),)
2025-06-13 12:34:22,868 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 12:33:50
2025-06-13 12:34:22,955 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 12:34:22,959 [DEBUG][       Thread-254969][   transport.py][1871] : starting thread (client mode): 0x863ef310
2025-06-13 12:34:22,959 [DEBUG][       Thread-254969][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 12:34:22,980 [DEBUG][       Thread-254969][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 12:34:22,980 [ INFO][       Thread-254969][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 12:34:22,984 [DEBUG][       Thread-254969][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 12:34:22,984 [DEBUG][       Thread-254969][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 12:34:22,984 [DEBUG][       Thread-254969][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 12:34:22,984 [DEBUG][       Thread-254969][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:34:22,984 [DEBUG][       Thread-254969][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:34:22,984 [DEBUG][       Thread-254969][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:34:22,984 [DEBUG][       Thread-254969][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:34:22,984 [DEBUG][       Thread-254969][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 12:34:22,984 [DEBUG][       Thread-254969][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 12:34:22,984 [DEBUG][       Thread-254969][   transport.py][1871] : client lang: <none>
2025-06-13 12:34:22,984 [DEBUG][       Thread-254969][   transport.py][1871] : server lang: <none>
2025-06-13 12:34:22,984 [DEBUG][       Thread-254969][   transport.py][1871] : kex follows: False
2025-06-13 12:34:22,984 [DEBUG][       Thread-254969][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 12:34:22,984 [DEBUG][       Thread-254969][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 12:34:22,984 [DEBUG][       Thread-254969][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 12:34:22,984 [DEBUG][       Thread-254969][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 12:34:22,984 [DEBUG][       Thread-254969][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 12:34:22,984 [DEBUG][       Thread-254969][   transport.py][1871] : Compression: none
2025-06-13 12:34:22,984 [DEBUG][       Thread-254969][   transport.py][1871] : === End of kex handshake ===
2025-06-13 12:34:22,999 [DEBUG][       Thread-254969][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 12:34:22,999 [DEBUG][       Thread-254969][   transport.py][1871] : Switch to new keys ...
2025-06-13 12:34:22,999 [DEBUG][       Thread-254969][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 12:34:22,999 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 12:34:22,999 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 12:34:22,999 [DEBUG][       Thread-254969][   transport.py][1871] : userauth is OK
2025-06-13 12:34:23,013 [ INFO][       Thread-254969][   transport.py][1871] : Authentication (password) successful!
2025-06-13 12:34:23,013 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 12:34:23,648 [DEBUG][       Thread-254969][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 12:34:23,648 [DEBUG][       Thread-254969][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 12:34:23,688 [DEBUG][       Thread-254969][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 12:34:23,688 [DEBUG][       Thread-254969][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 12:34:23,691 [DEBUG][       Thread-254969][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 12:34:23,702 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 12:34:23,702 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 12:34:23,703 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 12:34:23,704 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 12:34:23,708 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 12:34:23,709 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 12:34:23,709 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 12:34:23,709 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 12:34:23,709 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.440216 -999.00  +12.20  20.89     40   -0.60 1 1 1 1 1   888    0 12.32 15.15 ----- 25.0 20.9 41.4 30.7 16.9 -28.7 15.4 -31.7 15.2 -29.4 16.6 -27.2
2025-06-13 12:34:23,709 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 12:34:23,709 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 12:34:23,709 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.440216
2025-06-13 12:34:23,709 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 12:34:23,710 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 12:34:23,710 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 12:34:23,710 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 12:34:23,710 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 12:34:23,710 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T12:33:50', tmtdew=14.12, humidity=37.39, cloud=0.0, wind=19.64, temperature=12.17, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T10:33:54.662', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 12:34:23,711 [DEBUG][       Thread-254969][   transport.py][1871] : EOF in transport thread
2025-06-13 12:34:23,784 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 12:34:23,797 [DEBUG][       Thread-254972][   transport.py][1871] : starting thread (client mode): 0x867b7010
2025-06-13 12:34:23,797 [DEBUG][       Thread-254972][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 12:34:23,812 [DEBUG][       Thread-254972][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 12:34:23,812 [ INFO][       Thread-254972][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 12:34:23,819 [DEBUG][       Thread-254972][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 12:34:23,819 [DEBUG][       Thread-254972][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 12:34:23,819 [DEBUG][       Thread-254972][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 12:34:23,819 [DEBUG][       Thread-254972][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:34:23,819 [DEBUG][       Thread-254972][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:34:23,819 [DEBUG][       Thread-254972][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:34:23,819 [DEBUG][       Thread-254972][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:34:23,819 [DEBUG][       Thread-254972][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 12:34:23,819 [DEBUG][       Thread-254972][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 12:34:23,819 [DEBUG][       Thread-254972][   transport.py][1871] : client lang: <none>
2025-06-13 12:34:23,819 [DEBUG][       Thread-254972][   transport.py][1871] : server lang: <none>
2025-06-13 12:34:23,820 [DEBUG][       Thread-254972][   transport.py][1871] : kex follows: False
2025-06-13 12:34:23,820 [DEBUG][       Thread-254972][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 12:34:23,820 [DEBUG][       Thread-254972][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 12:34:23,820 [DEBUG][       Thread-254972][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 12:34:23,820 [DEBUG][       Thread-254972][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 12:34:23,820 [DEBUG][       Thread-254972][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 12:34:23,820 [DEBUG][       Thread-254972][   transport.py][1871] : Compression: none
2025-06-13 12:34:23,820 [DEBUG][       Thread-254972][   transport.py][1871] : === End of kex handshake ===
2025-06-13 12:34:23,886 [DEBUG][       Thread-254972][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 12:34:23,886 [DEBUG][       Thread-254972][   transport.py][1871] : Switch to new keys ...
2025-06-13 12:34:23,886 [DEBUG][       Thread-254972][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 12:34:23,886 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 12:34:23,886 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 12:34:23,948 [DEBUG][       Thread-254972][   transport.py][1871] : userauth is OK
2025-06-13 12:34:23,948 [DEBUG][       Thread-254972][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 12:34:23,949 [DEBUG][       Thread-254972][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 12:34:23,949 [DEBUG][       Thread-254972][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 12:34:23,949 [DEBUG][       Thread-254972][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 12:34:23,968 [ INFO][       Thread-254972][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 12:34:23,968 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 12:34:23,968 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 12:34:23,982 [DEBUG][Thread-254974 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:34:25,071 [DEBUG][       Thread-254972][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 12:34:25,072 [DEBUG][       Thread-254972][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 12:34:25,120 [DEBUG][       Thread-254972][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 12:34:25,120 [DEBUG][       Thread-254972][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 12:34:25,129 [DEBUG][       Thread-254972][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 12:34:25,139 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 12:34:25,139 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 12:34:25,152 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 12:34:25,162 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 12:34:25,162 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 12:34:25,163 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 12:34:25,171 [DEBUG][       Thread-254972][   transport.py][1871] : EOF in transport thread
2025-06-13 12:34:33,005 [DEBUG][Thread-254975 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:34:34,288 [DEBUG][Thread-254976 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:34:35,173 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 12:34:35,173 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 12:34:35,174 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 12:34:35,176 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 12:34:35,358 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:34:35,359 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:34:35,644 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 12, 34, 21), 14.21, 37.35, 0.0, 21.47, 12.31, 0, 0, 0, 2, 0, 0),)
2025-06-13 12:34:35,644 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 12:34:21
2025-06-13 12:34:35,725 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 12:34:35,731 [DEBUG][       Thread-254977][   transport.py][1871] : starting thread (client mode): 0x863caf50
2025-06-13 12:34:35,732 [DEBUG][       Thread-254977][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 12:34:35,752 [DEBUG][       Thread-254977][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 12:34:35,752 [ INFO][       Thread-254977][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 12:34:35,755 [DEBUG][       Thread-254977][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 12:34:35,755 [DEBUG][       Thread-254977][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 12:34:35,755 [DEBUG][       Thread-254977][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 12:34:35,755 [DEBUG][       Thread-254977][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:34:35,755 [DEBUG][       Thread-254977][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:34:35,755 [DEBUG][       Thread-254977][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:34:35,755 [DEBUG][       Thread-254977][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:34:35,755 [DEBUG][       Thread-254977][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 12:34:35,755 [DEBUG][       Thread-254977][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 12:34:35,755 [DEBUG][       Thread-254977][   transport.py][1871] : client lang: <none>
2025-06-13 12:34:35,755 [DEBUG][       Thread-254977][   transport.py][1871] : server lang: <none>
2025-06-13 12:34:35,755 [DEBUG][       Thread-254977][   transport.py][1871] : kex follows: False
2025-06-13 12:34:35,755 [DEBUG][       Thread-254977][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 12:34:35,756 [DEBUG][       Thread-254977][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 12:34:35,756 [DEBUG][       Thread-254977][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 12:34:35,756 [DEBUG][       Thread-254977][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 12:34:35,756 [DEBUG][       Thread-254977][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 12:34:35,756 [DEBUG][       Thread-254977][   transport.py][1871] : Compression: none
2025-06-13 12:34:35,756 [DEBUG][       Thread-254977][   transport.py][1871] : === End of kex handshake ===
2025-06-13 12:34:35,774 [DEBUG][       Thread-254977][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 12:34:35,775 [DEBUG][       Thread-254977][   transport.py][1871] : Switch to new keys ...
2025-06-13 12:34:35,775 [DEBUG][       Thread-254977][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 12:34:35,775 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 12:34:35,776 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 12:34:35,777 [DEBUG][       Thread-254977][   transport.py][1871] : userauth is OK
2025-06-13 12:34:35,801 [ INFO][       Thread-254977][   transport.py][1871] : Authentication (password) successful!
2025-06-13 12:34:35,802 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 12:34:36,450 [DEBUG][       Thread-254977][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 12:34:36,450 [DEBUG][       Thread-254977][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 12:34:36,493 [DEBUG][       Thread-254977][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 12:34:36,493 [DEBUG][       Thread-254977][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 12:34:36,496 [DEBUG][       Thread-254977][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 12:34:36,509 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 12:34:36,510 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 12:34:36,512 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 12:34:36,514 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 12:34:36,520 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 12:34:36,522 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 12:34:36,522 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 12:34:36,523 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 12:34:36,523 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.440216 -999.00  +12.20  20.89     40   -0.60 1 1 1 1 1   888    0 12.32 15.15 ----- 25.0 20.9 41.4 30.7 16.9 -28.7 15.4 -31.7 15.2 -29.4 16.6 -27.2
2025-06-13 12:34:36,523 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 12:34:36,523 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 12:34:36,523 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.440216
2025-06-13 12:34:36,523 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 12:34:36,524 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 12:34:36,524 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 12:34:36,524 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 12:34:36,524 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 12:34:36,524 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T12:34:21', tmtdew=14.21, humidity=37.35, cloud=0.0, wind=21.47, temperature=12.31, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T10:33:54.662', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 12:34:36,525 [DEBUG][       Thread-254977][   transport.py][1871] : EOF in transport thread
2025-06-13 12:34:36,613 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 12:34:36,625 [DEBUG][       Thread-254980][   transport.py][1871] : starting thread (client mode): 0x867b7010
2025-06-13 12:34:36,625 [DEBUG][       Thread-254980][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 12:34:36,641 [DEBUG][       Thread-254980][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 12:34:36,641 [ INFO][       Thread-254980][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 12:34:36,649 [DEBUG][       Thread-254980][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 12:34:36,649 [DEBUG][       Thread-254980][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 12:34:36,649 [DEBUG][       Thread-254980][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 12:34:36,649 [DEBUG][       Thread-254980][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:34:36,649 [DEBUG][       Thread-254980][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:34:36,649 [DEBUG][       Thread-254980][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:34:36,649 [DEBUG][       Thread-254980][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:34:36,649 [DEBUG][       Thread-254980][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 12:34:36,649 [DEBUG][       Thread-254980][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 12:34:36,649 [DEBUG][       Thread-254980][   transport.py][1871] : client lang: <none>
2025-06-13 12:34:36,649 [DEBUG][       Thread-254980][   transport.py][1871] : server lang: <none>
2025-06-13 12:34:36,649 [DEBUG][       Thread-254980][   transport.py][1871] : kex follows: False
2025-06-13 12:34:36,649 [DEBUG][       Thread-254980][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 12:34:36,649 [DEBUG][       Thread-254980][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 12:34:36,650 [DEBUG][       Thread-254980][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 12:34:36,650 [DEBUG][       Thread-254980][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 12:34:36,650 [DEBUG][       Thread-254980][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 12:34:36,650 [DEBUG][       Thread-254980][   transport.py][1871] : Compression: none
2025-06-13 12:34:36,650 [DEBUG][       Thread-254980][   transport.py][1871] : === End of kex handshake ===
2025-06-13 12:34:36,708 [DEBUG][       Thread-254980][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 12:34:36,709 [DEBUG][       Thread-254980][   transport.py][1871] : Switch to new keys ...
2025-06-13 12:34:36,710 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 12:34:36,710 [DEBUG][       Thread-254980][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 12:34:36,711 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 12:34:36,764 [DEBUG][       Thread-254980][   transport.py][1871] : userauth is OK
2025-06-13 12:34:36,765 [DEBUG][       Thread-254980][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 12:34:36,765 [DEBUG][       Thread-254980][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 12:34:36,765 [DEBUG][       Thread-254980][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 12:34:36,765 [DEBUG][       Thread-254980][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 12:34:36,784 [ INFO][       Thread-254980][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 12:34:36,784 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 12:34:36,784 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 12:34:37,818 [DEBUG][       Thread-254980][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 12:34:37,819 [DEBUG][       Thread-254980][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 12:34:37,868 [DEBUG][       Thread-254980][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 12:34:37,869 [DEBUG][       Thread-254980][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 12:34:37,878 [DEBUG][       Thread-254980][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 12:34:37,887 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 12:34:37,887 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 12:34:37,896 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 12:34:37,905 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 12:34:37,905 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 12:34:37,906 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 12:34:37,914 [DEBUG][       Thread-254980][   transport.py][1871] : EOF in transport thread
2025-06-13 12:34:42,024 [DEBUG][Thread-254982 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:34:44,568 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:34:44,569 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:34:47,916 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 12:34:47,917 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 12:34:47,917 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 12:34:47,920 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 12:34:48,373 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 12, 34, 21), 14.21, 37.35, 0.0, 21.47, 12.31, 0, 0, 0, 2, 0, 0),)
2025-06-13 12:34:48,373 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 12:34:21
2025-06-13 12:34:48,454 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 12:34:48,459 [DEBUG][       Thread-254983][   transport.py][1871] : starting thread (client mode): 0x863cb580
2025-06-13 12:34:48,459 [DEBUG][       Thread-254983][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 12:34:48,479 [DEBUG][       Thread-254983][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 12:34:48,479 [ INFO][       Thread-254983][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 12:34:48,483 [DEBUG][       Thread-254983][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 12:34:48,483 [DEBUG][       Thread-254983][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 12:34:48,483 [DEBUG][       Thread-254983][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 12:34:48,483 [DEBUG][       Thread-254983][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:34:48,483 [DEBUG][       Thread-254983][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:34:48,483 [DEBUG][       Thread-254983][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:34:48,483 [DEBUG][       Thread-254983][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:34:48,483 [DEBUG][       Thread-254983][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 12:34:48,483 [DEBUG][       Thread-254983][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 12:34:48,483 [DEBUG][       Thread-254983][   transport.py][1871] : client lang: <none>
2025-06-13 12:34:48,483 [DEBUG][       Thread-254983][   transport.py][1871] : server lang: <none>
2025-06-13 12:34:48,483 [DEBUG][       Thread-254983][   transport.py][1871] : kex follows: False
2025-06-13 12:34:48,483 [DEBUG][       Thread-254983][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 12:34:48,483 [DEBUG][       Thread-254983][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 12:34:48,483 [DEBUG][       Thread-254983][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 12:34:48,483 [DEBUG][       Thread-254983][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 12:34:48,483 [DEBUG][       Thread-254983][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 12:34:48,483 [DEBUG][       Thread-254983][   transport.py][1871] : Compression: none
2025-06-13 12:34:48,483 [DEBUG][       Thread-254983][   transport.py][1871] : === End of kex handshake ===
2025-06-13 12:34:48,492 [DEBUG][       Thread-254983][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 12:34:48,492 [DEBUG][       Thread-254983][   transport.py][1871] : Switch to new keys ...
2025-06-13 12:34:48,492 [DEBUG][       Thread-254983][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 12:34:48,492 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 12:34:48,492 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 12:34:48,493 [DEBUG][       Thread-254983][   transport.py][1871] : userauth is OK
2025-06-13 12:34:48,518 [ INFO][       Thread-254983][   transport.py][1871] : Authentication (password) successful!
2025-06-13 12:34:48,518 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 12:34:49,141 [DEBUG][       Thread-254983][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 12:34:49,142 [DEBUG][       Thread-254983][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 12:34:49,189 [DEBUG][       Thread-254983][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 12:34:49,189 [DEBUG][       Thread-254983][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 12:34:49,192 [DEBUG][       Thread-254983][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 12:34:49,204 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 12:34:49,204 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 12:34:49,206 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 12:34:49,207 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 12:34:49,213 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 12:34:49,215 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 12:34:49,215 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 12:34:49,216 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 12:34:49,216 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.440563 -999.00  +12.00  21.15     40   -0.90 1 1 1 1 1   888    0 12.41 20.16 ----- 18.5 21.1 36.2 27.2 16.8 -29.9 15.4 -30.8 15.2 -29.9 16.6 -27.2
2025-06-13 12:34:49,216 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 12:34:49,216 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 12:34:49,216 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.440563
2025-06-13 12:34:49,217 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 12:34:49,217 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 12:34:49,217 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 12:34:49,217 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 12:34:49,217 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 12:34:49,217 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T12:34:21', tmtdew=14.21, humidity=37.35, cloud=0.0, wind=21.47, temperature=12.31, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T10:34:24.643', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 12:34:49,218 [DEBUG][       Thread-254983][   transport.py][1871] : EOF in transport thread
2025-06-13 12:34:49,305 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 12:34:49,314 [DEBUG][       Thread-254986][   transport.py][1871] : starting thread (client mode): 0x868938b0
2025-06-13 12:34:49,314 [DEBUG][       Thread-254986][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 12:34:49,331 [DEBUG][       Thread-254986][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 12:34:49,331 [ INFO][       Thread-254986][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 12:34:49,346 [DEBUG][       Thread-254986][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 12:34:49,346 [DEBUG][       Thread-254986][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 12:34:49,346 [DEBUG][       Thread-254986][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 12:34:49,347 [DEBUG][       Thread-254986][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:34:49,347 [DEBUG][       Thread-254986][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:34:49,347 [DEBUG][       Thread-254986][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:34:49,347 [DEBUG][       Thread-254986][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:34:49,347 [DEBUG][       Thread-254986][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 12:34:49,347 [DEBUG][       Thread-254986][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 12:34:49,347 [DEBUG][       Thread-254986][   transport.py][1871] : client lang: <none>
2025-06-13 12:34:49,347 [DEBUG][       Thread-254986][   transport.py][1871] : server lang: <none>
2025-06-13 12:34:49,347 [DEBUG][       Thread-254986][   transport.py][1871] : kex follows: False
2025-06-13 12:34:49,347 [DEBUG][       Thread-254986][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 12:34:49,348 [DEBUG][       Thread-254986][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 12:34:49,348 [DEBUG][       Thread-254986][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 12:34:49,348 [DEBUG][       Thread-254986][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 12:34:49,348 [DEBUG][       Thread-254986][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 12:34:49,348 [DEBUG][       Thread-254986][   transport.py][1871] : Compression: none
2025-06-13 12:34:49,348 [DEBUG][       Thread-254986][   transport.py][1871] : === End of kex handshake ===
2025-06-13 12:34:49,408 [DEBUG][       Thread-254986][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 12:34:49,409 [DEBUG][       Thread-254986][   transport.py][1871] : Switch to new keys ...
2025-06-13 12:34:49,409 [DEBUG][       Thread-254986][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 12:34:49,409 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 12:34:49,410 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 12:34:49,469 [DEBUG][       Thread-254986][   transport.py][1871] : userauth is OK
2025-06-13 12:34:49,469 [DEBUG][       Thread-254986][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 12:34:49,469 [DEBUG][       Thread-254986][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 12:34:49,469 [DEBUG][       Thread-254986][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 12:34:49,469 [DEBUG][       Thread-254986][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 12:34:49,489 [ INFO][       Thread-254986][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 12:34:49,489 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 12:34:49,489 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 12:34:50,524 [DEBUG][       Thread-254986][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 12:34:50,525 [DEBUG][       Thread-254986][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 12:34:50,596 [DEBUG][       Thread-254986][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 12:34:50,596 [DEBUG][       Thread-254986][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 12:34:50,606 [DEBUG][       Thread-254986][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 12:34:50,615 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 12:34:50,615 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 12:34:50,625 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 12:34:50,634 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 12:34:50,635 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 12:34:50,635 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 12:34:50,643 [DEBUG][       Thread-254986][   transport.py][1871] : EOF in transport thread
2025-06-13 12:34:51,058 [DEBUG][Thread-254988 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:35:00,077 [DEBUG][Thread-254989 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:35:00,646 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 12:35:00,646 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 12:35:00,646 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 12:35:00,649 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 12:35:01,119 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 12, 34, 53), 14.35, 36.98, 0.0, 18.35, 12.37, 0, 0, 0, 2, 0, 0),)
2025-06-13 12:35:01,119 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 12:34:53
2025-06-13 12:35:01,201 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 12:35:01,207 [DEBUG][       Thread-254990][   transport.py][1871] : starting thread (client mode): 0x863cace0
2025-06-13 12:35:01,207 [DEBUG][       Thread-254990][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 12:35:01,222 [DEBUG][       Thread-254990][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 12:35:01,222 [ INFO][       Thread-254990][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 12:35:01,227 [DEBUG][       Thread-254990][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 12:35:01,227 [DEBUG][       Thread-254990][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 12:35:01,227 [DEBUG][       Thread-254990][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 12:35:01,227 [DEBUG][       Thread-254990][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:35:01,227 [DEBUG][       Thread-254990][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:35:01,227 [DEBUG][       Thread-254990][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:35:01,227 [DEBUG][       Thread-254990][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:35:01,227 [DEBUG][       Thread-254990][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 12:35:01,227 [DEBUG][       Thread-254990][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 12:35:01,227 [DEBUG][       Thread-254990][   transport.py][1871] : client lang: <none>
2025-06-13 12:35:01,227 [DEBUG][       Thread-254990][   transport.py][1871] : server lang: <none>
2025-06-13 12:35:01,227 [DEBUG][       Thread-254990][   transport.py][1871] : kex follows: False
2025-06-13 12:35:01,227 [DEBUG][       Thread-254990][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 12:35:01,227 [DEBUG][       Thread-254990][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 12:35:01,227 [DEBUG][       Thread-254990][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 12:35:01,227 [DEBUG][       Thread-254990][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 12:35:01,227 [DEBUG][       Thread-254990][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 12:35:01,227 [DEBUG][       Thread-254990][   transport.py][1871] : Compression: none
2025-06-13 12:35:01,227 [DEBUG][       Thread-254990][   transport.py][1871] : === End of kex handshake ===
2025-06-13 12:35:01,242 [DEBUG][       Thread-254990][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 12:35:01,243 [DEBUG][       Thread-254990][   transport.py][1871] : Switch to new keys ...
2025-06-13 12:35:01,243 [DEBUG][       Thread-254990][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 12:35:01,243 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 12:35:01,244 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 12:35:01,245 [DEBUG][       Thread-254990][   transport.py][1871] : userauth is OK
2025-06-13 12:35:01,258 [ INFO][       Thread-254990][   transport.py][1871] : Authentication (password) successful!
2025-06-13 12:35:01,258 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 12:35:01,884 [DEBUG][       Thread-254990][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 12:35:01,884 [DEBUG][       Thread-254990][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 12:35:01,925 [DEBUG][       Thread-254990][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 12:35:01,925 [DEBUG][       Thread-254990][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 12:35:01,928 [DEBUG][       Thread-254990][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 12:35:01,941 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 12:35:01,941 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 12:35:01,944 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 12:35:01,945 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 12:35:01,951 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 12:35:01,952 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 12:35:01,953 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 12:35:01,953 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 12:35:01,953 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.440563 -999.00  +12.00  21.15     40   -0.90 1 1 1 1 1   888    0 12.41 20.16 ----- 18.5 21.1 36.2 27.2 16.8 -29.9 15.4 -30.8 15.2 -29.9 16.6 -27.2
2025-06-13 12:35:01,953 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 12:35:01,953 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 12:35:01,953 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.440563
2025-06-13 12:35:01,954 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 12:35:01,954 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 12:35:01,955 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 12:35:01,955 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 12:35:01,955 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 12:35:01,955 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T12:34:53', tmtdew=14.35, humidity=36.98, cloud=0.0, wind=18.35, temperature=12.37, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T10:34:24.643', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 12:35:01,956 [DEBUG][       Thread-254990][   transport.py][1871] : EOF in transport thread
2025-06-13 12:35:02,035 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 12:35:02,046 [DEBUG][       Thread-254993][   transport.py][1871] : starting thread (client mode): 0x863a59c0
2025-06-13 12:35:02,046 [DEBUG][       Thread-254993][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 12:35:02,065 [DEBUG][       Thread-254993][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 12:35:02,065 [ INFO][       Thread-254993][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 12:35:02,078 [DEBUG][       Thread-254993][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 12:35:02,078 [DEBUG][       Thread-254993][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 12:35:02,078 [DEBUG][       Thread-254993][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 12:35:02,078 [DEBUG][       Thread-254993][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:35:02,078 [DEBUG][       Thread-254993][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:35:02,078 [DEBUG][       Thread-254993][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:35:02,078 [DEBUG][       Thread-254993][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:35:02,078 [DEBUG][       Thread-254993][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 12:35:02,079 [DEBUG][       Thread-254993][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 12:35:02,079 [DEBUG][       Thread-254993][   transport.py][1871] : client lang: <none>
2025-06-13 12:35:02,079 [DEBUG][       Thread-254993][   transport.py][1871] : server lang: <none>
2025-06-13 12:35:02,079 [DEBUG][       Thread-254993][   transport.py][1871] : kex follows: False
2025-06-13 12:35:02,079 [DEBUG][       Thread-254993][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 12:35:02,079 [DEBUG][       Thread-254993][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 12:35:02,079 [DEBUG][       Thread-254993][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 12:35:02,079 [DEBUG][       Thread-254993][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 12:35:02,079 [DEBUG][       Thread-254993][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 12:35:02,079 [DEBUG][       Thread-254993][   transport.py][1871] : Compression: none
2025-06-13 12:35:02,079 [DEBUG][       Thread-254993][   transport.py][1871] : === End of kex handshake ===
2025-06-13 12:35:02,133 [DEBUG][       Thread-254993][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 12:35:02,134 [DEBUG][       Thread-254993][   transport.py][1871] : Switch to new keys ...
2025-06-13 12:35:02,134 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 12:35:02,135 [DEBUG][       Thread-254993][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 12:35:02,135 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 12:35:02,195 [DEBUG][       Thread-254993][   transport.py][1871] : userauth is OK
2025-06-13 12:35:02,196 [DEBUG][       Thread-254993][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 12:35:02,196 [DEBUG][       Thread-254993][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 12:35:02,196 [DEBUG][       Thread-254993][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 12:35:02,196 [DEBUG][       Thread-254993][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 12:35:02,215 [ INFO][       Thread-254993][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 12:35:02,216 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 12:35:02,216 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 12:35:03,266 [DEBUG][       Thread-254993][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 12:35:03,267 [DEBUG][       Thread-254993][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 12:35:03,316 [DEBUG][       Thread-254993][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 12:35:03,316 [DEBUG][       Thread-254993][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 12:35:03,325 [DEBUG][       Thread-254993][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 12:35:03,337 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 12:35:03,338 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 12:35:03,350 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 12:35:03,363 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 12:35:03,364 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 12:35:03,364 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 12:35:03,373 [DEBUG][       Thread-254993][   transport.py][1871] : EOF in transport thread
2025-06-13 12:35:09,101 [DEBUG][Thread-254995 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:35:12,555 [DEBUG][Thread-254996 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:35:13,374 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 12:35:13,374 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 12:35:13,375 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 12:35:13,375 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 12:35:13,821 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 12, 34, 53), 14.35, 36.98, 0.0, 18.35, 12.37, 0, 0, 0, 2, 0, 0),)
2025-06-13 12:35:13,821 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 12:34:53
2025-06-13 12:35:13,902 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 12:35:13,908 [DEBUG][       Thread-254997][   transport.py][1871] : starting thread (client mode): 0x863be800
2025-06-13 12:35:13,908 [DEBUG][       Thread-254997][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 12:35:13,928 [DEBUG][       Thread-254997][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 12:35:13,928 [ INFO][       Thread-254997][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 12:35:13,932 [DEBUG][       Thread-254997][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 12:35:13,932 [DEBUG][       Thread-254997][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 12:35:13,932 [DEBUG][       Thread-254997][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 12:35:13,932 [DEBUG][       Thread-254997][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:35:13,932 [DEBUG][       Thread-254997][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:35:13,932 [DEBUG][       Thread-254997][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:35:13,932 [DEBUG][       Thread-254997][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:35:13,932 [DEBUG][       Thread-254997][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 12:35:13,932 [DEBUG][       Thread-254997][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 12:35:13,932 [DEBUG][       Thread-254997][   transport.py][1871] : client lang: <none>
2025-06-13 12:35:13,932 [DEBUG][       Thread-254997][   transport.py][1871] : server lang: <none>
2025-06-13 12:35:13,932 [DEBUG][       Thread-254997][   transport.py][1871] : kex follows: False
2025-06-13 12:35:13,932 [DEBUG][       Thread-254997][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 12:35:13,932 [DEBUG][       Thread-254997][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 12:35:13,932 [DEBUG][       Thread-254997][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 12:35:13,932 [DEBUG][       Thread-254997][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 12:35:13,932 [DEBUG][       Thread-254997][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 12:35:13,932 [DEBUG][       Thread-254997][   transport.py][1871] : Compression: none
2025-06-13 12:35:13,932 [DEBUG][       Thread-254997][   transport.py][1871] : === End of kex handshake ===
2025-06-13 12:35:13,949 [DEBUG][       Thread-254997][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 12:35:13,950 [DEBUG][       Thread-254997][   transport.py][1871] : Switch to new keys ...
2025-06-13 12:35:13,950 [DEBUG][       Thread-254997][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 12:35:13,951 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 12:35:13,951 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 12:35:13,952 [DEBUG][       Thread-254997][   transport.py][1871] : userauth is OK
2025-06-13 12:35:13,965 [ INFO][       Thread-254997][   transport.py][1871] : Authentication (password) successful!
2025-06-13 12:35:13,965 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 12:35:14,521 [DEBUG][       Thread-254997][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 12:35:14,521 [DEBUG][       Thread-254997][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 12:35:14,565 [DEBUG][       Thread-254997][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 12:35:14,565 [DEBUG][       Thread-254997][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 12:35:14,568 [DEBUG][       Thread-254997][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 12:35:14,574 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 12:35:14,575 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 12:35:14,576 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 12:35:14,578 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 12:35:14,584 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 12:35:14,585 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 12:35:14,585 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 12:35:14,586 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 12:35:14,586 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.440910 -999.00  +11.80  21.64     41   -0.90 1 1 1 1 1   888    0 12.37 24.12 ----- 20.1 21.6 45.0 24.8 16.7 -29.9 15.4 -30.9 15.2 -30.0 16.6 -27.3
2025-06-13 12:35:14,586 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 12:35:14,586 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 12:35:14,586 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.440910
2025-06-13 12:35:14,587 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 12:35:14,587 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 12:35:14,588 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 12:35:14,588 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 12:35:14,588 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 12:35:14,588 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T12:34:53', tmtdew=14.35, humidity=36.98, cloud=0.0, wind=18.35, temperature=12.37, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T10:34:54.624', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 12:35:14,589 [DEBUG][       Thread-254997][   transport.py][1871] : EOF in transport thread
2025-06-13 12:35:14,672 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 12:35:14,684 [DEBUG][       Thread-255000][   transport.py][1871] : starting thread (client mode): 0x867fd480
2025-06-13 12:35:14,684 [DEBUG][       Thread-255000][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 12:35:14,701 [DEBUG][       Thread-255000][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 12:35:14,701 [ INFO][       Thread-255000][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 12:35:14,710 [DEBUG][       Thread-255000][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 12:35:14,710 [DEBUG][       Thread-255000][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 12:35:14,711 [DEBUG][       Thread-255000][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 12:35:14,711 [DEBUG][       Thread-255000][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:35:14,711 [DEBUG][       Thread-255000][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:35:14,711 [DEBUG][       Thread-255000][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:35:14,711 [DEBUG][       Thread-255000][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:35:14,711 [DEBUG][       Thread-255000][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 12:35:14,711 [DEBUG][       Thread-255000][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 12:35:14,711 [DEBUG][       Thread-255000][   transport.py][1871] : client lang: <none>
2025-06-13 12:35:14,711 [DEBUG][       Thread-255000][   transport.py][1871] : server lang: <none>
2025-06-13 12:35:14,711 [DEBUG][       Thread-255000][   transport.py][1871] : kex follows: False
2025-06-13 12:35:14,711 [DEBUG][       Thread-255000][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 12:35:14,711 [DEBUG][       Thread-255000][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 12:35:14,711 [DEBUG][       Thread-255000][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 12:35:14,711 [DEBUG][       Thread-255000][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 12:35:14,711 [DEBUG][       Thread-255000][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 12:35:14,711 [DEBUG][       Thread-255000][   transport.py][1871] : Compression: none
2025-06-13 12:35:14,711 [DEBUG][       Thread-255000][   transport.py][1871] : === End of kex handshake ===
2025-06-13 12:35:14,768 [DEBUG][       Thread-255000][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 12:35:14,769 [DEBUG][       Thread-255000][   transport.py][1871] : Switch to new keys ...
2025-06-13 12:35:14,770 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 12:35:14,770 [DEBUG][       Thread-255000][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 12:35:14,771 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 12:35:14,824 [DEBUG][       Thread-255000][   transport.py][1871] : userauth is OK
2025-06-13 12:35:14,825 [DEBUG][       Thread-255000][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 12:35:14,825 [DEBUG][       Thread-255000][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 12:35:14,825 [DEBUG][       Thread-255000][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 12:35:14,825 [DEBUG][       Thread-255000][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 12:35:14,844 [ INFO][       Thread-255000][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 12:35:14,844 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 12:35:14,845 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 12:35:15,880 [DEBUG][       Thread-255000][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 12:35:15,880 [DEBUG][       Thread-255000][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 12:35:15,933 [DEBUG][       Thread-255000][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 12:35:15,934 [DEBUG][       Thread-255000][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 12:35:15,944 [DEBUG][       Thread-255000][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 12:35:15,953 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 12:35:15,953 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 12:35:15,963 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 12:35:15,973 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 12:35:15,974 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 12:35:15,974 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 12:35:15,983 [DEBUG][       Thread-255000][   transport.py][1871] : EOF in transport thread
2025-06-13 12:35:18,143 [DEBUG][Thread-255002 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:35:25,984 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 12:35:25,984 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 12:35:25,984 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 12:35:25,984 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 12:35:26,478 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 12, 34, 53), 14.35, 36.98, 0.0, 18.35, 12.37, 0, 0, 0, 2, 0, 0),)
2025-06-13 12:35:26,478 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 12:34:53
2025-06-13 12:35:26,565 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 12:35:26,568 [DEBUG][       Thread-255003][   transport.py][1871] : starting thread (client mode): 0x867fc430
2025-06-13 12:35:26,568 [DEBUG][       Thread-255003][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 12:35:26,588 [DEBUG][       Thread-255003][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 12:35:26,588 [ INFO][       Thread-255003][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 12:35:26,591 [DEBUG][       Thread-255003][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 12:35:26,591 [DEBUG][       Thread-255003][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 12:35:26,591 [DEBUG][       Thread-255003][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 12:35:26,591 [DEBUG][       Thread-255003][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:35:26,591 [DEBUG][       Thread-255003][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:35:26,591 [DEBUG][       Thread-255003][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:35:26,591 [DEBUG][       Thread-255003][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:35:26,591 [DEBUG][       Thread-255003][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 12:35:26,591 [DEBUG][       Thread-255003][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 12:35:26,591 [DEBUG][       Thread-255003][   transport.py][1871] : client lang: <none>
2025-06-13 12:35:26,591 [DEBUG][       Thread-255003][   transport.py][1871] : server lang: <none>
2025-06-13 12:35:26,591 [DEBUG][       Thread-255003][   transport.py][1871] : kex follows: False
2025-06-13 12:35:26,591 [DEBUG][       Thread-255003][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 12:35:26,591 [DEBUG][       Thread-255003][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 12:35:26,591 [DEBUG][       Thread-255003][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 12:35:26,591 [DEBUG][       Thread-255003][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 12:35:26,591 [DEBUG][       Thread-255003][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 12:35:26,591 [DEBUG][       Thread-255003][   transport.py][1871] : Compression: none
2025-06-13 12:35:26,591 [DEBUG][       Thread-255003][   transport.py][1871] : === End of kex handshake ===
2025-06-13 12:35:26,606 [DEBUG][       Thread-255003][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 12:35:26,606 [DEBUG][       Thread-255003][   transport.py][1871] : Switch to new keys ...
2025-06-13 12:35:26,606 [DEBUG][       Thread-255003][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 12:35:26,606 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 12:35:26,606 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 12:35:26,607 [DEBUG][       Thread-255003][   transport.py][1871] : userauth is OK
2025-06-13 12:35:26,620 [ INFO][       Thread-255003][   transport.py][1871] : Authentication (password) successful!
2025-06-13 12:35:26,620 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 12:35:27,163 [DEBUG][Thread-255005 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:35:27,225 [DEBUG][       Thread-255003][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 12:35:27,226 [DEBUG][       Thread-255003][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 12:35:27,268 [DEBUG][       Thread-255003][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 12:35:27,268 [DEBUG][       Thread-255003][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 12:35:27,271 [DEBUG][       Thread-255003][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 12:35:27,284 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 12:35:27,284 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 12:35:27,285 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 12:35:27,286 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 12:35:27,290 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 12:35:27,291 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 12:35:27,291 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 12:35:27,291 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 12:35:27,291 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.440910 -999.00  +11.80  21.64     41   -0.90 1 1 1 1 1   888    0 12.37 24.12 ----- 20.1 21.6 45.0 24.8 16.7 -29.9 15.4 -30.9 15.2 -30.0 16.6 -27.3
2025-06-13 12:35:27,291 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 12:35:27,291 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 12:35:27,291 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.440910
2025-06-13 12:35:27,291 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 12:35:27,291 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 12:35:27,291 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 12:35:27,291 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 12:35:27,291 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 12:35:27,291 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T12:34:53', tmtdew=14.35, humidity=36.98, cloud=0.0, wind=18.35, temperature=12.37, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T10:34:54.624', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 12:35:27,292 [DEBUG][       Thread-255003][   transport.py][1871] : EOF in transport thread
2025-06-13 12:35:27,366 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 12:35:27,376 [DEBUG][       Thread-255007][   transport.py][1871] : starting thread (client mode): 0x8636b940
2025-06-13 12:35:27,376 [DEBUG][       Thread-255007][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 12:35:27,395 [DEBUG][       Thread-255007][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 12:35:27,395 [ INFO][       Thread-255007][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 12:35:27,403 [DEBUG][       Thread-255007][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 12:35:27,403 [DEBUG][       Thread-255007][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 12:35:27,403 [DEBUG][       Thread-255007][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 12:35:27,404 [DEBUG][       Thread-255007][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:35:27,404 [DEBUG][       Thread-255007][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:35:27,404 [DEBUG][       Thread-255007][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:35:27,404 [DEBUG][       Thread-255007][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:35:27,404 [DEBUG][       Thread-255007][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 12:35:27,404 [DEBUG][       Thread-255007][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 12:35:27,404 [DEBUG][       Thread-255007][   transport.py][1871] : client lang: <none>
2025-06-13 12:35:27,404 [DEBUG][       Thread-255007][   transport.py][1871] : server lang: <none>
2025-06-13 12:35:27,404 [DEBUG][       Thread-255007][   transport.py][1871] : kex follows: False
2025-06-13 12:35:27,404 [DEBUG][       Thread-255007][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 12:35:27,404 [DEBUG][       Thread-255007][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 12:35:27,404 [DEBUG][       Thread-255007][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 12:35:27,404 [DEBUG][       Thread-255007][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 12:35:27,404 [DEBUG][       Thread-255007][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 12:35:27,404 [DEBUG][       Thread-255007][   transport.py][1871] : Compression: none
2025-06-13 12:35:27,404 [DEBUG][       Thread-255007][   transport.py][1871] : === End of kex handshake ===
2025-06-13 12:35:27,463 [DEBUG][       Thread-255007][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 12:35:27,464 [DEBUG][       Thread-255007][   transport.py][1871] : Switch to new keys ...
2025-06-13 12:35:27,464 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 12:35:27,465 [DEBUG][       Thread-255007][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 12:35:27,466 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 12:35:27,522 [DEBUG][       Thread-255007][   transport.py][1871] : userauth is OK
2025-06-13 12:35:27,522 [DEBUG][       Thread-255007][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 12:35:27,523 [DEBUG][       Thread-255007][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 12:35:27,523 [DEBUG][       Thread-255007][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 12:35:27,523 [DEBUG][       Thread-255007][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 12:35:27,542 [ INFO][       Thread-255007][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 12:35:27,542 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 12:35:27,543 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 12:35:28,633 [DEBUG][       Thread-255007][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 12:35:28,633 [DEBUG][       Thread-255007][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 12:35:28,684 [DEBUG][       Thread-255007][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 12:35:28,684 [DEBUG][       Thread-255007][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 12:35:28,693 [DEBUG][       Thread-255007][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 12:35:28,703 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 12:35:28,703 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 12:35:28,712 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 12:35:28,721 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 12:35:28,721 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 12:35:28,722 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 12:35:28,730 [DEBUG][       Thread-255007][   transport.py][1871] : EOF in transport thread
2025-06-13 12:35:35,391 [DEBUG][Thread-255009 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:35:36,184 [DEBUG][Thread-255010 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:35:36,459 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:35:36,461 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:35:38,724 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 12:35:38,725 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 12:35:38,725 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 12:35:38,728 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 12:35:39,195 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 12, 35, 25), 14.01, 38.06, 0.0, 15.9, 12.29, 0, 0, 0, 2, 0, 0),)
2025-06-13 12:35:39,195 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 12:35:25
2025-06-13 12:35:39,277 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 12:35:39,283 [DEBUG][       Thread-255011][   transport.py][1871] : starting thread (client mode): 0x863a7670
2025-06-13 12:35:39,283 [DEBUG][       Thread-255011][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 12:35:39,303 [DEBUG][       Thread-255011][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 12:35:39,303 [ INFO][       Thread-255011][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 12:35:39,306 [DEBUG][       Thread-255011][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 12:35:39,306 [DEBUG][       Thread-255011][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 12:35:39,306 [DEBUG][       Thread-255011][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 12:35:39,306 [DEBUG][       Thread-255011][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:35:39,306 [DEBUG][       Thread-255011][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:35:39,306 [DEBUG][       Thread-255011][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:35:39,306 [DEBUG][       Thread-255011][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:35:39,306 [DEBUG][       Thread-255011][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 12:35:39,306 [DEBUG][       Thread-255011][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 12:35:39,306 [DEBUG][       Thread-255011][   transport.py][1871] : client lang: <none>
2025-06-13 12:35:39,306 [DEBUG][       Thread-255011][   transport.py][1871] : server lang: <none>
2025-06-13 12:35:39,306 [DEBUG][       Thread-255011][   transport.py][1871] : kex follows: False
2025-06-13 12:35:39,306 [DEBUG][       Thread-255011][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 12:35:39,306 [DEBUG][       Thread-255011][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 12:35:39,307 [DEBUG][       Thread-255011][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 12:35:39,307 [DEBUG][       Thread-255011][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 12:35:39,307 [DEBUG][       Thread-255011][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 12:35:39,307 [DEBUG][       Thread-255011][   transport.py][1871] : Compression: none
2025-06-13 12:35:39,307 [DEBUG][       Thread-255011][   transport.py][1871] : === End of kex handshake ===
2025-06-13 12:35:39,331 [DEBUG][       Thread-255011][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 12:35:39,331 [DEBUG][       Thread-255011][   transport.py][1871] : Switch to new keys ...
2025-06-13 12:35:39,332 [DEBUG][       Thread-255011][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 12:35:39,332 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 12:35:39,332 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 12:35:39,334 [DEBUG][       Thread-255011][   transport.py][1871] : userauth is OK
2025-06-13 12:35:39,347 [ INFO][       Thread-255011][   transport.py][1871] : Authentication (password) successful!
2025-06-13 12:35:39,347 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 12:35:40,001 [DEBUG][       Thread-255011][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 12:35:40,001 [DEBUG][       Thread-255011][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 12:35:40,045 [DEBUG][       Thread-255011][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 12:35:40,045 [DEBUG][       Thread-255011][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 12:35:40,048 [DEBUG][       Thread-255011][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 12:35:40,060 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 12:35:40,061 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 12:35:40,062 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 12:35:40,064 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 12:35:40,069 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 12:35:40,071 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 12:35:40,071 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 12:35:40,072 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 12:35:40,072 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.440910 -999.00  +11.80  21.64     41   -0.90 1 1 1 1 1   888    0 12.37 24.12 ----- 20.1 21.6 45.0 24.8 16.7 -29.9 15.4 -30.9 15.2 -30.0 16.6 -27.3
2025-06-13 12:35:40,072 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 12:35:40,072 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 12:35:40,072 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.440910
2025-06-13 12:35:40,073 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 12:35:40,073 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 12:35:40,073 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 12:35:40,074 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 12:35:40,074 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 12:35:40,074 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T12:35:25', tmtdew=14.01, humidity=38.06, cloud=0.0, wind=15.9, temperature=12.29, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T10:34:54.624', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 12:35:40,075 [DEBUG][       Thread-255011][   transport.py][1871] : EOF in transport thread
2025-06-13 12:35:40,157 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 12:35:44,709 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:35:44,711 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:35:45,208 [DEBUG][Thread-255014 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:35:54,244 [DEBUG][Thread-255015 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:36:03,265 [DEBUG][Thread-255016 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:36:12,283 [DEBUG][Thread-255017 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:36:12,583 [DEBUG][Thread-255018 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:36:21,304 [DEBUG][Thread-255019 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:36:30,321 [DEBUG][Thread-255020 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:36:36,546 [DEBUG][Thread-255021 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:36:37,618 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:36:37,619 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:36:39,342 [DEBUG][Thread-255022 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:36:44,858 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:36:44,859 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:36:48,366 [DEBUG][Thread-255023 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:36:57,385 [DEBUG][Thread-255024 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:37:06,407 [DEBUG][Thread-255025 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:37:12,615 [DEBUG][Thread-255026 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:37:15,431 [DEBUG][Thread-255027 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:37:24,452 [DEBUG][Thread-255028 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:37:33,472 [DEBUG][Thread-255029 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:37:37,702 [DEBUG][Thread-255030 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:37:38,783 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:37:38,784 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:37:42,493 [DEBUG][Thread-255031 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:37:45,020 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:37:45,021 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:37:49,204 [WARNING][ poll_weather_worker][      driver.py][ 286] : Unable to open ssh connection for writing weather state to io.saao.ac.za: [Errno 110] Connection timed out
2025-06-13 12:37:51,515 [DEBUG][Thread-255032 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:37:59,215 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 12:37:59,215 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 12:37:59,215 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 12:37:59,218 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 12:37:59,709 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 12, 37, 31), 14.03, 37.85, 0.0, 16.75, 12.33, 0, 0, 0, 2, 0, 0),)
2025-06-13 12:37:59,709 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 12:37:31
2025-06-13 12:37:59,788 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 12:37:59,792 [DEBUG][       Thread-255033][   transport.py][1871] : starting thread (client mode): 0x863a7670
2025-06-13 12:37:59,792 [DEBUG][       Thread-255033][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 12:37:59,813 [DEBUG][       Thread-255033][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 12:37:59,814 [ INFO][       Thread-255033][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 12:37:59,817 [DEBUG][       Thread-255033][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 12:37:59,817 [DEBUG][       Thread-255033][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 12:37:59,817 [DEBUG][       Thread-255033][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 12:37:59,817 [DEBUG][       Thread-255033][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:37:59,817 [DEBUG][       Thread-255033][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:37:59,817 [DEBUG][       Thread-255033][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:37:59,817 [DEBUG][       Thread-255033][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:37:59,817 [DEBUG][       Thread-255033][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 12:37:59,817 [DEBUG][       Thread-255033][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 12:37:59,817 [DEBUG][       Thread-255033][   transport.py][1871] : client lang: <none>
2025-06-13 12:37:59,817 [DEBUG][       Thread-255033][   transport.py][1871] : server lang: <none>
2025-06-13 12:37:59,817 [DEBUG][       Thread-255033][   transport.py][1871] : kex follows: False
2025-06-13 12:37:59,817 [DEBUG][       Thread-255033][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 12:37:59,818 [DEBUG][       Thread-255033][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 12:37:59,818 [DEBUG][       Thread-255033][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 12:37:59,818 [DEBUG][       Thread-255033][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 12:37:59,818 [DEBUG][       Thread-255033][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 12:37:59,818 [DEBUG][       Thread-255033][   transport.py][1871] : Compression: none
2025-06-13 12:37:59,818 [DEBUG][       Thread-255033][   transport.py][1871] : === End of kex handshake ===
2025-06-13 12:37:59,835 [DEBUG][       Thread-255033][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 12:37:59,835 [DEBUG][       Thread-255033][   transport.py][1871] : Switch to new keys ...
2025-06-13 12:37:59,836 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 12:37:59,836 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 12:37:59,836 [DEBUG][       Thread-255033][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 12:37:59,837 [DEBUG][       Thread-255033][   transport.py][1871] : userauth is OK
2025-06-13 12:37:59,850 [ INFO][       Thread-255033][   transport.py][1871] : Authentication (password) successful!
2025-06-13 12:37:59,851 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 12:38:00,536 [DEBUG][Thread-255035 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:38:00,652 [DEBUG][       Thread-255033][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 12:38:00,652 [DEBUG][       Thread-255033][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 12:38:00,693 [DEBUG][       Thread-255033][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 12:38:00,693 [DEBUG][       Thread-255033][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 12:38:00,695 [DEBUG][       Thread-255033][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 12:38:00,707 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 12:38:00,707 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 12:38:00,709 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 12:38:00,710 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 12:38:00,715 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 12:38:00,717 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 12:38:00,717 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 12:38:00,717 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 12:38:00,718 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.442646 -999.00  +11.90  21.05     41   -0.80 1 1 1 1 1   888    0 13.10 37.55 ----- 19.2 21.1 38.4 22.2 16.7 -29.4 15.4 -30.4 15.2 -29.8 16.6 -27.1
2025-06-13 12:38:00,718 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 12:38:00,718 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 12:38:00,718 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.442646
2025-06-13 12:38:00,718 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 12:38:00,719 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 12:38:00,719 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 12:38:00,719 [DEBUG][       Thread-255033][   transport.py][1871] : EOF in transport thread
2025-06-13 12:38:00,719 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 12:38:00,720 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 12:38:00,720 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T12:37:31', tmtdew=14.03, humidity=37.85, cloud=0.0, wind=16.75, temperature=12.33, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T10:37:24.614', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 12:38:00,804 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 12:38:00,816 [DEBUG][       Thread-255037][   transport.py][1871] : starting thread (client mode): 0x86893820
2025-06-13 12:38:00,816 [DEBUG][       Thread-255037][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 12:38:00,830 [DEBUG][       Thread-255037][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 12:38:00,831 [ INFO][       Thread-255037][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 12:38:00,839 [DEBUG][       Thread-255037][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 12:38:00,839 [DEBUG][       Thread-255037][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 12:38:00,839 [DEBUG][       Thread-255037][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 12:38:00,839 [DEBUG][       Thread-255037][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:38:00,839 [DEBUG][       Thread-255037][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:38:00,839 [DEBUG][       Thread-255037][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:38:00,839 [DEBUG][       Thread-255037][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:38:00,839 [DEBUG][       Thread-255037][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 12:38:00,839 [DEBUG][       Thread-255037][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 12:38:00,839 [DEBUG][       Thread-255037][   transport.py][1871] : client lang: <none>
2025-06-13 12:38:00,839 [DEBUG][       Thread-255037][   transport.py][1871] : server lang: <none>
2025-06-13 12:38:00,839 [DEBUG][       Thread-255037][   transport.py][1871] : kex follows: False
2025-06-13 12:38:00,839 [DEBUG][       Thread-255037][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 12:38:00,839 [DEBUG][       Thread-255037][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 12:38:00,839 [DEBUG][       Thread-255037][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 12:38:00,839 [DEBUG][       Thread-255037][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 12:38:00,839 [DEBUG][       Thread-255037][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 12:38:00,840 [DEBUG][       Thread-255037][   transport.py][1871] : Compression: none
2025-06-13 12:38:00,840 [DEBUG][       Thread-255037][   transport.py][1871] : === End of kex handshake ===
2025-06-13 12:38:00,896 [DEBUG][       Thread-255037][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 12:38:00,896 [DEBUG][       Thread-255037][   transport.py][1871] : Switch to new keys ...
2025-06-13 12:38:00,897 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 12:38:00,897 [DEBUG][       Thread-255037][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 12:38:00,898 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 12:38:00,952 [DEBUG][       Thread-255037][   transport.py][1871] : userauth is OK
2025-06-13 12:38:00,953 [DEBUG][       Thread-255037][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 12:38:00,953 [DEBUG][       Thread-255037][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 12:38:00,953 [DEBUG][       Thread-255037][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 12:38:00,953 [DEBUG][       Thread-255037][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 12:38:00,972 [ INFO][       Thread-255037][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 12:38:00,973 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 12:38:00,973 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 12:38:01,957 [DEBUG][       Thread-255037][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 12:38:01,957 [DEBUG][       Thread-255037][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 12:38:02,008 [DEBUG][       Thread-255037][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 12:38:02,009 [DEBUG][       Thread-255037][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 12:38:02,018 [DEBUG][       Thread-255037][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 12:38:02,027 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 12:38:02,028 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 12:38:02,037 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 12:38:02,046 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 12:38:02,046 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 12:38:02,047 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 12:38:02,055 [DEBUG][       Thread-255037][   transport.py][1871] : EOF in transport thread
2025-06-13 12:38:09,555 [DEBUG][Thread-255039 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:38:12,057 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 12:38:12,058 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 12:38:12,058 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 12:38:12,061 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 12:38:12,546 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 12, 38, 3), 14.09, 37.72, 0.0, 19.67, 12.37, 0, 0, 0, 2, 0, 0),)
2025-06-13 12:38:12,546 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 12:38:03
2025-06-13 12:38:12,624 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 12:38:12,628 [DEBUG][       Thread-255040][   transport.py][1871] : starting thread (client mode): 0x867fce20
2025-06-13 12:38:12,628 [DEBUG][       Thread-255040][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 12:38:12,643 [DEBUG][Thread-255041 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:38:12,649 [DEBUG][       Thread-255040][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 12:38:12,649 [ INFO][       Thread-255040][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 12:38:12,652 [DEBUG][       Thread-255040][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 12:38:12,652 [DEBUG][       Thread-255040][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 12:38:12,652 [DEBUG][       Thread-255040][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 12:38:12,652 [DEBUG][       Thread-255040][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:38:12,652 [DEBUG][       Thread-255040][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:38:12,652 [DEBUG][       Thread-255040][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:38:12,652 [DEBUG][       Thread-255040][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:38:12,652 [DEBUG][       Thread-255040][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 12:38:12,652 [DEBUG][       Thread-255040][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 12:38:12,652 [DEBUG][       Thread-255040][   transport.py][1871] : client lang: <none>
2025-06-13 12:38:12,652 [DEBUG][       Thread-255040][   transport.py][1871] : server lang: <none>
2025-06-13 12:38:12,652 [DEBUG][       Thread-255040][   transport.py][1871] : kex follows: False
2025-06-13 12:38:12,652 [DEBUG][       Thread-255040][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 12:38:12,652 [DEBUG][       Thread-255040][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 12:38:12,652 [DEBUG][       Thread-255040][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 12:38:12,652 [DEBUG][       Thread-255040][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 12:38:12,652 [DEBUG][       Thread-255040][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 12:38:12,652 [DEBUG][       Thread-255040][   transport.py][1871] : Compression: none
2025-06-13 12:38:12,652 [DEBUG][       Thread-255040][   transport.py][1871] : === End of kex handshake ===
2025-06-13 12:38:12,667 [DEBUG][       Thread-255040][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 12:38:12,667 [DEBUG][       Thread-255040][   transport.py][1871] : Switch to new keys ...
2025-06-13 12:38:12,667 [DEBUG][       Thread-255040][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 12:38:12,667 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 12:38:12,667 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 12:38:12,668 [DEBUG][       Thread-255040][   transport.py][1871] : userauth is OK
2025-06-13 12:38:12,681 [ INFO][       Thread-255040][   transport.py][1871] : Authentication (password) successful!
2025-06-13 12:38:12,682 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 12:38:13,336 [DEBUG][       Thread-255040][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 12:38:13,337 [DEBUG][       Thread-255040][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 12:38:13,381 [DEBUG][       Thread-255040][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 12:38:13,381 [DEBUG][       Thread-255040][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 12:38:13,384 [DEBUG][       Thread-255040][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 12:38:13,397 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 12:38:13,397 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 12:38:13,399 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 12:38:13,401 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 12:38:13,407 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 12:38:13,409 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 12:38:13,409 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 12:38:13,410 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 12:38:13,410 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.442993 -999.00  +12.10  13.08     41   -0.60 1 1 1 1 1   888    0 13.15 39.73 ----- 20.6 13.1 37.6 21.9 16.7 -28.8 15.4 -30.3 15.1 -29.4 16.5 -26.7
2025-06-13 12:38:13,410 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 12:38:13,410 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 12:38:13,410 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.442993
2025-06-13 12:38:13,411 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 12:38:13,411 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 12:38:13,411 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 12:38:13,412 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 12:38:13,412 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 12:38:13,412 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T12:38:03', tmtdew=14.09, humidity=37.72, cloud=0.0, wind=19.67, temperature=12.37, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T10:37:54.595', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 12:38:13,413 [DEBUG][       Thread-255040][   transport.py][1871] : EOF in transport thread
2025-06-13 12:38:13,495 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 12:38:13,511 [DEBUG][       Thread-255044][   transport.py][1871] : starting thread (client mode): 0x863eea10
2025-06-13 12:38:13,511 [DEBUG][       Thread-255044][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 12:38:13,526 [DEBUG][       Thread-255044][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 12:38:13,526 [ INFO][       Thread-255044][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 12:38:13,534 [DEBUG][       Thread-255044][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 12:38:13,535 [DEBUG][       Thread-255044][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 12:38:13,535 [DEBUG][       Thread-255044][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 12:38:13,535 [DEBUG][       Thread-255044][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:38:13,535 [DEBUG][       Thread-255044][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:38:13,535 [DEBUG][       Thread-255044][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:38:13,535 [DEBUG][       Thread-255044][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:38:13,535 [DEBUG][       Thread-255044][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 12:38:13,535 [DEBUG][       Thread-255044][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 12:38:13,535 [DEBUG][       Thread-255044][   transport.py][1871] : client lang: <none>
2025-06-13 12:38:13,535 [DEBUG][       Thread-255044][   transport.py][1871] : server lang: <none>
2025-06-13 12:38:13,535 [DEBUG][       Thread-255044][   transport.py][1871] : kex follows: False
2025-06-13 12:38:13,535 [DEBUG][       Thread-255044][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 12:38:13,535 [DEBUG][       Thread-255044][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 12:38:13,535 [DEBUG][       Thread-255044][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 12:38:13,536 [DEBUG][       Thread-255044][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 12:38:13,536 [DEBUG][       Thread-255044][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 12:38:13,536 [DEBUG][       Thread-255044][   transport.py][1871] : Compression: none
2025-06-13 12:38:13,536 [DEBUG][       Thread-255044][   transport.py][1871] : === End of kex handshake ===
2025-06-13 12:38:13,595 [DEBUG][       Thread-255044][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 12:38:13,595 [DEBUG][       Thread-255044][   transport.py][1871] : Switch to new keys ...
2025-06-13 12:38:13,596 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 12:38:13,597 [DEBUG][       Thread-255044][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 12:38:13,597 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 12:38:13,653 [DEBUG][       Thread-255044][   transport.py][1871] : userauth is OK
2025-06-13 12:38:13,653 [DEBUG][       Thread-255044][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 12:38:13,653 [DEBUG][       Thread-255044][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 12:38:13,654 [DEBUG][       Thread-255044][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 12:38:13,654 [DEBUG][       Thread-255044][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 12:38:13,672 [ INFO][       Thread-255044][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 12:38:13,672 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 12:38:13,673 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 12:38:14,666 [DEBUG][       Thread-255044][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 12:38:14,666 [DEBUG][       Thread-255044][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 12:38:14,716 [DEBUG][       Thread-255044][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 12:38:14,716 [DEBUG][       Thread-255044][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 12:38:14,727 [DEBUG][       Thread-255044][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 12:38:14,739 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 12:38:14,739 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 12:38:14,748 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 12:38:14,759 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 12:38:14,760 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 12:38:14,760 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 12:38:14,769 [DEBUG][       Thread-255044][   transport.py][1871] : EOF in transport thread
2025-06-13 12:38:18,592 [DEBUG][Thread-255046 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:38:24,771 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 12:38:24,771 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 12:38:24,771 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 12:38:24,774 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 12:38:25,252 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 12, 38, 3), 14.09, 37.72, 0.0, 19.67, 12.37, 0, 0, 0, 2, 0, 0),)
2025-06-13 12:38:25,252 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 12:38:03
2025-06-13 12:38:25,330 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 12:38:25,335 [DEBUG][       Thread-255047][   transport.py][1871] : starting thread (client mode): 0x863bd4e0
2025-06-13 12:38:25,335 [DEBUG][       Thread-255047][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 12:38:25,346 [DEBUG][       Thread-255047][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 12:38:25,346 [ INFO][       Thread-255047][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 12:38:25,350 [DEBUG][       Thread-255047][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 12:38:25,350 [DEBUG][       Thread-255047][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 12:38:25,350 [DEBUG][       Thread-255047][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 12:38:25,350 [DEBUG][       Thread-255047][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:38:25,350 [DEBUG][       Thread-255047][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:38:25,350 [DEBUG][       Thread-255047][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:38:25,350 [DEBUG][       Thread-255047][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:38:25,350 [DEBUG][       Thread-255047][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 12:38:25,350 [DEBUG][       Thread-255047][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 12:38:25,350 [DEBUG][       Thread-255047][   transport.py][1871] : client lang: <none>
2025-06-13 12:38:25,350 [DEBUG][       Thread-255047][   transport.py][1871] : server lang: <none>
2025-06-13 12:38:25,350 [DEBUG][       Thread-255047][   transport.py][1871] : kex follows: False
2025-06-13 12:38:25,350 [DEBUG][       Thread-255047][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 12:38:25,350 [DEBUG][       Thread-255047][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 12:38:25,350 [DEBUG][       Thread-255047][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 12:38:25,350 [DEBUG][       Thread-255047][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 12:38:25,350 [DEBUG][       Thread-255047][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 12:38:25,350 [DEBUG][       Thread-255047][   transport.py][1871] : Compression: none
2025-06-13 12:38:25,350 [DEBUG][       Thread-255047][   transport.py][1871] : === End of kex handshake ===
2025-06-13 12:38:25,367 [DEBUG][       Thread-255047][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 12:38:25,367 [DEBUG][       Thread-255047][   transport.py][1871] : Switch to new keys ...
2025-06-13 12:38:25,368 [DEBUG][       Thread-255047][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 12:38:25,368 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 12:38:25,368 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 12:38:25,369 [DEBUG][       Thread-255047][   transport.py][1871] : userauth is OK
2025-06-13 12:38:25,382 [ INFO][       Thread-255047][   transport.py][1871] : Authentication (password) successful!
2025-06-13 12:38:25,383 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 12:38:26,003 [DEBUG][       Thread-255047][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 12:38:26,004 [DEBUG][       Thread-255047][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 12:38:26,045 [DEBUG][       Thread-255047][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 12:38:26,045 [DEBUG][       Thread-255047][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 12:38:26,057 [DEBUG][       Thread-255047][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 12:38:26,070 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 12:38:26,070 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 12:38:26,072 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 12:38:26,074 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 12:38:26,080 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 12:38:26,083 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 12:38:26,083 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 12:38:26,084 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 12:38:26,084 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.442993 -999.00  +12.10  13.08     41   -0.60 1 1 1 1 1   888    0 13.15 39.73 ----- 20.6 13.1 37.6 21.9 16.7 -28.8 15.4 -30.3 15.1 -29.4 16.5 -26.7
2025-06-13 12:38:26,084 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 12:38:26,084 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 12:38:26,084 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.442993
2025-06-13 12:38:26,085 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 12:38:26,085 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 12:38:26,085 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 12:38:26,085 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 12:38:26,085 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 12:38:26,085 [DEBUG][       Thread-255047][   transport.py][1871] : EOF in transport thread
2025-06-13 12:38:26,086 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T12:38:03', tmtdew=14.09, humidity=37.72, cloud=0.0, wind=19.67, temperature=12.37, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T10:37:54.595', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 12:38:26,169 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 12:38:26,181 [DEBUG][       Thread-255050][   transport.py][1871] : starting thread (client mode): 0x863a6350
2025-06-13 12:38:26,182 [DEBUG][       Thread-255050][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 12:38:26,201 [DEBUG][       Thread-255050][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 12:38:26,201 [ INFO][       Thread-255050][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 12:38:26,211 [DEBUG][       Thread-255050][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 12:38:26,211 [DEBUG][       Thread-255050][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 12:38:26,211 [DEBUG][       Thread-255050][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 12:38:26,211 [DEBUG][       Thread-255050][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:38:26,211 [DEBUG][       Thread-255050][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:38:26,211 [DEBUG][       Thread-255050][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:38:26,211 [DEBUG][       Thread-255050][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:38:26,211 [DEBUG][       Thread-255050][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 12:38:26,212 [DEBUG][       Thread-255050][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 12:38:26,212 [DEBUG][       Thread-255050][   transport.py][1871] : client lang: <none>
2025-06-13 12:38:26,212 [DEBUG][       Thread-255050][   transport.py][1871] : server lang: <none>
2025-06-13 12:38:26,212 [DEBUG][       Thread-255050][   transport.py][1871] : kex follows: False
2025-06-13 12:38:26,212 [DEBUG][       Thread-255050][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 12:38:26,212 [DEBUG][       Thread-255050][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 12:38:26,212 [DEBUG][       Thread-255050][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 12:38:26,212 [DEBUG][       Thread-255050][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 12:38:26,212 [DEBUG][       Thread-255050][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 12:38:26,212 [DEBUG][       Thread-255050][   transport.py][1871] : Compression: none
2025-06-13 12:38:26,212 [DEBUG][       Thread-255050][   transport.py][1871] : === End of kex handshake ===
2025-06-13 12:38:26,270 [DEBUG][       Thread-255050][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 12:38:26,270 [DEBUG][       Thread-255050][   transport.py][1871] : Switch to new keys ...
2025-06-13 12:38:26,270 [DEBUG][       Thread-255050][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 12:38:26,270 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 12:38:26,271 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 12:38:26,330 [DEBUG][       Thread-255050][   transport.py][1871] : userauth is OK
2025-06-13 12:38:26,330 [DEBUG][       Thread-255050][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 12:38:26,330 [DEBUG][       Thread-255050][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 12:38:26,330 [DEBUG][       Thread-255050][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 12:38:26,330 [DEBUG][       Thread-255050][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 12:38:26,349 [ INFO][       Thread-255050][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 12:38:26,350 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 12:38:26,350 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 12:38:27,398 [DEBUG][       Thread-255050][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 12:38:27,399 [DEBUG][       Thread-255050][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 12:38:27,448 [DEBUG][       Thread-255050][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 12:38:27,448 [DEBUG][       Thread-255050][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 12:38:27,458 [DEBUG][       Thread-255050][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 12:38:27,466 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 12:38:27,467 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 12:38:27,475 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 12:38:27,485 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 12:38:27,485 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 12:38:27,485 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 12:38:27,493 [DEBUG][       Thread-255050][   transport.py][1871] : EOF in transport thread
2025-06-13 12:38:27,633 [DEBUG][Thread-255052 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:38:36,652 [DEBUG][Thread-255053 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:38:37,496 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 12:38:37,496 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 12:38:37,496 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 12:38:37,497 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 12:38:37,972 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 12, 38, 3), 14.09, 37.72, 0.0, 19.67, 12.37, 0, 0, 0, 2, 0, 0),)
2025-06-13 12:38:37,972 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 12:38:03
2025-06-13 12:38:38,052 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 12:38:38,055 [DEBUG][       Thread-255054][   transport.py][1871] : starting thread (client mode): 0x867fe8f0
2025-06-13 12:38:38,055 [DEBUG][       Thread-255054][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 12:38:38,075 [DEBUG][       Thread-255054][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 12:38:38,075 [ INFO][       Thread-255054][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 12:38:38,079 [DEBUG][       Thread-255054][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 12:38:38,079 [DEBUG][       Thread-255054][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 12:38:38,079 [DEBUG][       Thread-255054][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 12:38:38,079 [DEBUG][       Thread-255054][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:38:38,079 [DEBUG][       Thread-255054][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:38:38,079 [DEBUG][       Thread-255054][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:38:38,079 [DEBUG][       Thread-255054][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:38:38,079 [DEBUG][       Thread-255054][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 12:38:38,079 [DEBUG][       Thread-255054][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 12:38:38,079 [DEBUG][       Thread-255054][   transport.py][1871] : client lang: <none>
2025-06-13 12:38:38,079 [DEBUG][       Thread-255054][   transport.py][1871] : server lang: <none>
2025-06-13 12:38:38,079 [DEBUG][       Thread-255054][   transport.py][1871] : kex follows: False
2025-06-13 12:38:38,079 [DEBUG][       Thread-255054][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 12:38:38,079 [DEBUG][       Thread-255054][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 12:38:38,079 [DEBUG][       Thread-255054][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 12:38:38,079 [DEBUG][       Thread-255054][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 12:38:38,079 [DEBUG][       Thread-255054][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 12:38:38,079 [DEBUG][       Thread-255054][   transport.py][1871] : Compression: none
2025-06-13 12:38:38,079 [DEBUG][       Thread-255054][   transport.py][1871] : === End of kex handshake ===
2025-06-13 12:38:38,098 [DEBUG][       Thread-255054][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 12:38:38,098 [DEBUG][       Thread-255054][   transport.py][1871] : Switch to new keys ...
2025-06-13 12:38:38,099 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 12:38:38,099 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 12:38:38,099 [DEBUG][       Thread-255054][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 12:38:38,100 [DEBUG][       Thread-255054][   transport.py][1871] : userauth is OK
2025-06-13 12:38:38,113 [ INFO][       Thread-255054][   transport.py][1871] : Authentication (password) successful!
2025-06-13 12:38:38,114 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 12:38:38,704 [DEBUG][       Thread-255054][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 12:38:38,704 [DEBUG][       Thread-255054][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 12:38:38,748 [DEBUG][       Thread-255054][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 12:38:38,748 [DEBUG][       Thread-255054][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 12:38:38,751 [DEBUG][       Thread-255054][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 12:38:38,757 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 12:38:38,757 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 12:38:38,758 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 12:38:38,759 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 12:38:38,762 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 12:38:38,762 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 12:38:38,762 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 12:38:38,763 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 12:38:38,763 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.442993 -999.00  +12.10  13.08     41   -0.60 1 1 1 1 1   888    0 13.15 39.73 ----- 20.6 13.1 37.6 21.9 16.7 -28.8 15.4 -30.3 15.1 -29.4 16.5 -26.7
2025-06-13 12:38:38,763 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 12:38:38,763 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 12:38:38,763 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.442993
2025-06-13 12:38:38,763 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 12:38:38,763 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 12:38:38,763 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 12:38:38,763 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 12:38:38,763 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 12:38:38,763 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T12:38:03', tmtdew=14.09, humidity=37.72, cloud=0.0, wind=19.67, temperature=12.37, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T10:37:54.595', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 12:38:38,764 [DEBUG][       Thread-255054][   transport.py][1871] : EOF in transport thread
2025-06-13 12:38:38,834 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 12:38:38,847 [DEBUG][       Thread-255057][   transport.py][1871] : starting thread (client mode): 0x8636ae90
2025-06-13 12:38:38,847 [DEBUG][       Thread-255057][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 12:38:38,852 [DEBUG][Thread-255058 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:38:38,863 [DEBUG][       Thread-255057][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 12:38:38,863 [ INFO][       Thread-255057][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 12:38:38,872 [DEBUG][       Thread-255057][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 12:38:38,872 [DEBUG][       Thread-255057][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 12:38:38,873 [DEBUG][       Thread-255057][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 12:38:38,873 [DEBUG][       Thread-255057][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:38:38,873 [DEBUG][       Thread-255057][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:38:38,873 [DEBUG][       Thread-255057][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:38:38,873 [DEBUG][       Thread-255057][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:38:38,873 [DEBUG][       Thread-255057][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 12:38:38,873 [DEBUG][       Thread-255057][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 12:38:38,873 [DEBUG][       Thread-255057][   transport.py][1871] : client lang: <none>
2025-06-13 12:38:38,873 [DEBUG][       Thread-255057][   transport.py][1871] : server lang: <none>
2025-06-13 12:38:38,873 [DEBUG][       Thread-255057][   transport.py][1871] : kex follows: False
2025-06-13 12:38:38,873 [DEBUG][       Thread-255057][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 12:38:38,873 [DEBUG][       Thread-255057][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 12:38:38,873 [DEBUG][       Thread-255057][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 12:38:38,873 [DEBUG][       Thread-255057][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 12:38:38,873 [DEBUG][       Thread-255057][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 12:38:38,873 [DEBUG][       Thread-255057][   transport.py][1871] : Compression: none
2025-06-13 12:38:38,873 [DEBUG][       Thread-255057][   transport.py][1871] : === End of kex handshake ===
2025-06-13 12:38:38,933 [DEBUG][       Thread-255057][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 12:38:38,933 [DEBUG][       Thread-255057][   transport.py][1871] : Switch to new keys ...
2025-06-13 12:38:38,933 [DEBUG][       Thread-255057][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 12:38:38,934 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 12:38:38,934 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 12:38:38,994 [DEBUG][       Thread-255057][   transport.py][1871] : userauth is OK
2025-06-13 12:38:38,995 [DEBUG][       Thread-255057][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 12:38:38,995 [DEBUG][       Thread-255057][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 12:38:38,995 [DEBUG][       Thread-255057][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 12:38:38,995 [DEBUG][       Thread-255057][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 12:38:39,015 [ INFO][       Thread-255057][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 12:38:39,016 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 12:38:39,016 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 12:38:39,917 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:38:39,917 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:38:39,996 [DEBUG][       Thread-255057][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 12:38:39,996 [DEBUG][       Thread-255057][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 12:38:40,048 [DEBUG][       Thread-255057][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 12:38:40,048 [DEBUG][       Thread-255057][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 12:38:40,058 [DEBUG][       Thread-255057][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 12:38:40,067 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 12:38:40,067 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 12:38:40,076 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 12:38:40,085 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 12:38:40,086 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 12:38:40,086 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 12:38:40,096 [DEBUG][       Thread-255057][   transport.py][1871] : EOF in transport thread
2025-06-13 12:38:45,174 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:38:45,175 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:38:45,669 [DEBUG][Thread-255060 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:38:50,088 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 12:38:50,088 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 12:38:50,088 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 12:38:50,091 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 12:38:50,573 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 12, 38, 35), 14.12, 37.8, 0.0, 17.75, 12.33, 0, 0, 0, 2, 0, 0),)
2025-06-13 12:38:50,573 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 12:38:35
2025-06-13 12:38:50,653 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 12:38:50,657 [DEBUG][       Thread-255061][   transport.py][1871] : starting thread (client mode): 0x863698a0
2025-06-13 12:38:50,657 [DEBUG][       Thread-255061][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 12:38:50,677 [DEBUG][       Thread-255061][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 12:38:50,677 [ INFO][       Thread-255061][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 12:38:50,680 [DEBUG][       Thread-255061][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 12:38:50,681 [DEBUG][       Thread-255061][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 12:38:50,681 [DEBUG][       Thread-255061][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 12:38:50,681 [DEBUG][       Thread-255061][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:38:50,681 [DEBUG][       Thread-255061][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:38:50,681 [DEBUG][       Thread-255061][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:38:50,681 [DEBUG][       Thread-255061][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:38:50,681 [DEBUG][       Thread-255061][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 12:38:50,681 [DEBUG][       Thread-255061][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 12:38:50,681 [DEBUG][       Thread-255061][   transport.py][1871] : client lang: <none>
2025-06-13 12:38:50,681 [DEBUG][       Thread-255061][   transport.py][1871] : server lang: <none>
2025-06-13 12:38:50,681 [DEBUG][       Thread-255061][   transport.py][1871] : kex follows: False
2025-06-13 12:38:50,681 [DEBUG][       Thread-255061][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 12:38:50,681 [DEBUG][       Thread-255061][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 12:38:50,681 [DEBUG][       Thread-255061][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 12:38:50,681 [DEBUG][       Thread-255061][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 12:38:50,681 [DEBUG][       Thread-255061][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 12:38:50,681 [DEBUG][       Thread-255061][   transport.py][1871] : Compression: none
2025-06-13 12:38:50,681 [DEBUG][       Thread-255061][   transport.py][1871] : === End of kex handshake ===
2025-06-13 12:38:50,695 [DEBUG][       Thread-255061][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 12:38:50,695 [DEBUG][       Thread-255061][   transport.py][1871] : Switch to new keys ...
2025-06-13 12:38:50,696 [DEBUG][       Thread-255061][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 12:38:50,696 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 12:38:50,696 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 12:38:50,697 [DEBUG][       Thread-255061][   transport.py][1871] : userauth is OK
2025-06-13 12:38:50,722 [ INFO][       Thread-255061][   transport.py][1871] : Authentication (password) successful!
2025-06-13 12:38:50,722 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 12:38:51,340 [DEBUG][       Thread-255061][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 12:38:51,340 [DEBUG][       Thread-255061][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 12:38:51,381 [DEBUG][       Thread-255061][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 12:38:51,381 [DEBUG][       Thread-255061][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 12:38:51,384 [DEBUG][       Thread-255061][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 12:38:51,396 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 12:38:51,396 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 12:38:51,398 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 12:38:51,400 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 12:38:51,405 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 12:38:51,406 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 12:38:51,407 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 12:38:51,407 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 12:38:51,407 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.443341 -999.00  +12.10  21.16     39   -1.20 1 1 1 1 1   888    0 13.24 42.35 ----- 18.2 21.2 42.8 23.9 16.8 -28.8 15.4 -31.2 15.2 -28.4 16.6 -26.9
2025-06-13 12:38:51,407 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 12:38:51,408 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 12:38:51,408 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.443341
2025-06-13 12:38:51,408 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 12:38:51,409 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 12:38:51,409 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 12:38:51,409 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 12:38:51,409 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 12:38:51,409 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T12:38:35', tmtdew=14.12, humidity=37.8, cloud=0.0, wind=17.75, temperature=12.33, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T10:38:24.662', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 12:38:51,410 [DEBUG][       Thread-255061][   transport.py][1871] : EOF in transport thread
2025-06-13 12:38:51,492 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 12:38:51,502 [DEBUG][       Thread-255064][   transport.py][1871] : starting thread (client mode): 0x863a5690
2025-06-13 12:38:51,502 [DEBUG][       Thread-255064][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 12:38:51,517 [DEBUG][       Thread-255064][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 12:38:51,517 [ INFO][       Thread-255064][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 12:38:51,525 [DEBUG][       Thread-255064][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 12:38:51,525 [DEBUG][       Thread-255064][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 12:38:51,525 [DEBUG][       Thread-255064][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 12:38:51,525 [DEBUG][       Thread-255064][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:38:51,525 [DEBUG][       Thread-255064][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:38:51,525 [DEBUG][       Thread-255064][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:38:51,525 [DEBUG][       Thread-255064][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:38:51,525 [DEBUG][       Thread-255064][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 12:38:51,525 [DEBUG][       Thread-255064][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 12:38:51,525 [DEBUG][       Thread-255064][   transport.py][1871] : client lang: <none>
2025-06-13 12:38:51,525 [DEBUG][       Thread-255064][   transport.py][1871] : server lang: <none>
2025-06-13 12:38:51,525 [DEBUG][       Thread-255064][   transport.py][1871] : kex follows: False
2025-06-13 12:38:51,525 [DEBUG][       Thread-255064][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 12:38:51,525 [DEBUG][       Thread-255064][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 12:38:51,525 [DEBUG][       Thread-255064][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 12:38:51,525 [DEBUG][       Thread-255064][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 12:38:51,525 [DEBUG][       Thread-255064][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 12:38:51,525 [DEBUG][       Thread-255064][   transport.py][1871] : Compression: none
2025-06-13 12:38:51,525 [DEBUG][       Thread-255064][   transport.py][1871] : === End of kex handshake ===
2025-06-13 12:38:51,584 [DEBUG][       Thread-255064][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 12:38:51,585 [DEBUG][       Thread-255064][   transport.py][1871] : Switch to new keys ...
2025-06-13 12:38:51,585 [DEBUG][       Thread-255064][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 12:38:51,585 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 12:38:51,586 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 12:38:51,646 [DEBUG][       Thread-255064][   transport.py][1871] : userauth is OK
2025-06-13 12:38:51,646 [DEBUG][       Thread-255064][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 12:38:51,646 [DEBUG][       Thread-255064][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 12:38:51,646 [DEBUG][       Thread-255064][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 12:38:51,646 [DEBUG][       Thread-255064][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 12:38:51,668 [ INFO][       Thread-255064][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 12:38:51,669 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 12:38:51,670 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 12:38:53,091 [DEBUG][       Thread-255064][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 12:38:53,091 [DEBUG][       Thread-255064][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 12:38:53,142 [DEBUG][       Thread-255064][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 12:38:53,142 [DEBUG][       Thread-255064][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 12:38:53,154 [DEBUG][       Thread-255064][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 12:38:53,164 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 12:38:53,165 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 12:38:53,174 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 12:38:53,186 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 12:38:53,187 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 12:38:53,187 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 12:38:53,201 [DEBUG][       Thread-255064][   transport.py][1871] : EOF in transport thread
2025-06-13 12:38:54,688 [DEBUG][Thread-255066 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:39:03,198 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 12:39:03,198 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 12:39:03,198 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 12:39:03,201 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 12:39:03,667 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 12, 38, 35), 14.12, 37.8, 0.0, 17.75, 12.33, 0, 0, 0, 2, 0, 0),)
2025-06-13 12:39:03,667 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 12:38:35
2025-06-13 12:39:03,721 [DEBUG][Thread-255067 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:39:03,747 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 12:39:03,751 [DEBUG][       Thread-255068][   transport.py][1871] : starting thread (client mode): 0x863c9ea0
2025-06-13 12:39:03,751 [DEBUG][       Thread-255068][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 12:39:03,772 [DEBUG][       Thread-255068][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 12:39:03,772 [ INFO][       Thread-255068][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 12:39:03,775 [DEBUG][       Thread-255068][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 12:39:03,775 [DEBUG][       Thread-255068][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 12:39:03,775 [DEBUG][       Thread-255068][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 12:39:03,776 [DEBUG][       Thread-255068][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:39:03,776 [DEBUG][       Thread-255068][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:39:03,776 [DEBUG][       Thread-255068][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:39:03,776 [DEBUG][       Thread-255068][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:39:03,776 [DEBUG][       Thread-255068][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 12:39:03,776 [DEBUG][       Thread-255068][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 12:39:03,776 [DEBUG][       Thread-255068][   transport.py][1871] : client lang: <none>
2025-06-13 12:39:03,776 [DEBUG][       Thread-255068][   transport.py][1871] : server lang: <none>
2025-06-13 12:39:03,776 [DEBUG][       Thread-255068][   transport.py][1871] : kex follows: False
2025-06-13 12:39:03,776 [DEBUG][       Thread-255068][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 12:39:03,776 [DEBUG][       Thread-255068][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 12:39:03,776 [DEBUG][       Thread-255068][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 12:39:03,776 [DEBUG][       Thread-255068][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 12:39:03,776 [DEBUG][       Thread-255068][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 12:39:03,776 [DEBUG][       Thread-255068][   transport.py][1871] : Compression: none
2025-06-13 12:39:03,776 [DEBUG][       Thread-255068][   transport.py][1871] : === End of kex handshake ===
2025-06-13 12:39:03,793 [DEBUG][       Thread-255068][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 12:39:03,794 [DEBUG][       Thread-255068][   transport.py][1871] : Switch to new keys ...
2025-06-13 12:39:03,795 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 12:39:03,795 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 12:39:03,795 [DEBUG][       Thread-255068][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 12:39:03,796 [DEBUG][       Thread-255068][   transport.py][1871] : userauth is OK
2025-06-13 12:39:03,809 [ INFO][       Thread-255068][   transport.py][1871] : Authentication (password) successful!
2025-06-13 12:39:03,809 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 12:39:04,634 [DEBUG][       Thread-255068][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 12:39:04,635 [DEBUG][       Thread-255068][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 12:39:04,677 [DEBUG][       Thread-255068][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 12:39:04,677 [DEBUG][       Thread-255068][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 12:39:04,680 [DEBUG][       Thread-255068][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 12:39:04,695 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 12:39:04,696 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 12:39:04,698 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 12:39:04,699 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 12:39:04,706 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 12:39:04,708 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 12:39:04,708 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 12:39:04,709 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 12:39:04,709 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.443341 -999.00  +12.10  21.16     39   -1.20 1 1 1 1 1   888    0 13.24 42.35 ----- 18.2 21.2 42.8 23.9 16.8 -28.8 15.4 -31.2 15.2 -28.4 16.6 -26.9
2025-06-13 12:39:04,709 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 12:39:04,709 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 12:39:04,709 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.443341
2025-06-13 12:39:04,710 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 12:39:04,710 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 12:39:04,710 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 12:39:04,710 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 12:39:04,710 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 12:39:04,711 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T12:38:35', tmtdew=14.12, humidity=37.8, cloud=0.0, wind=17.75, temperature=12.33, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T10:38:24.662', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 12:39:04,711 [DEBUG][       Thread-255068][   transport.py][1871] : EOF in transport thread
2025-06-13 12:39:04,807 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 12:39:04,819 [DEBUG][       Thread-255071][   transport.py][1871] : starting thread (client mode): 0x86893ca0
2025-06-13 12:39:04,819 [DEBUG][       Thread-255071][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 12:39:04,834 [DEBUG][       Thread-255071][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 12:39:04,834 [ INFO][       Thread-255071][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 12:39:04,843 [DEBUG][       Thread-255071][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 12:39:04,843 [DEBUG][       Thread-255071][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 12:39:04,843 [DEBUG][       Thread-255071][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 12:39:04,843 [DEBUG][       Thread-255071][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:39:04,843 [DEBUG][       Thread-255071][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:39:04,843 [DEBUG][       Thread-255071][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:39:04,843 [DEBUG][       Thread-255071][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:39:04,843 [DEBUG][       Thread-255071][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 12:39:04,844 [DEBUG][       Thread-255071][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 12:39:04,844 [DEBUG][       Thread-255071][   transport.py][1871] : client lang: <none>
2025-06-13 12:39:04,844 [DEBUG][       Thread-255071][   transport.py][1871] : server lang: <none>
2025-06-13 12:39:04,844 [DEBUG][       Thread-255071][   transport.py][1871] : kex follows: False
2025-06-13 12:39:04,844 [DEBUG][       Thread-255071][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 12:39:04,844 [DEBUG][       Thread-255071][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 12:39:04,844 [DEBUG][       Thread-255071][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 12:39:04,844 [DEBUG][       Thread-255071][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 12:39:04,844 [DEBUG][       Thread-255071][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 12:39:04,844 [DEBUG][       Thread-255071][   transport.py][1871] : Compression: none
2025-06-13 12:39:04,844 [DEBUG][       Thread-255071][   transport.py][1871] : === End of kex handshake ===
2025-06-13 12:39:04,900 [DEBUG][       Thread-255071][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 12:39:04,901 [DEBUG][       Thread-255071][   transport.py][1871] : Switch to new keys ...
2025-06-13 12:39:04,911 [DEBUG][       Thread-255071][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 12:39:04,911 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 12:39:04,912 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 12:39:04,956 [DEBUG][       Thread-255071][   transport.py][1871] : userauth is OK
2025-06-13 12:39:04,956 [DEBUG][       Thread-255071][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 12:39:04,957 [DEBUG][       Thread-255071][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 12:39:04,957 [DEBUG][       Thread-255071][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 12:39:04,957 [DEBUG][       Thread-255071][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 12:39:04,978 [ INFO][       Thread-255071][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 12:39:04,979 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 12:39:04,979 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 12:39:06,048 [DEBUG][       Thread-255071][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 12:39:06,048 [DEBUG][       Thread-255071][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 12:39:06,096 [DEBUG][       Thread-255071][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 12:39:06,096 [DEBUG][       Thread-255071][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 12:39:06,106 [DEBUG][       Thread-255071][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 12:39:06,115 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 12:39:06,116 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 12:39:06,125 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 12:39:06,134 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 12:39:06,135 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 12:39:06,135 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 12:39:06,143 [DEBUG][       Thread-255071][   transport.py][1871] : EOF in transport thread
2025-06-13 12:39:12,696 [DEBUG][Thread-255073 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:39:12,741 [DEBUG][Thread-255074 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:39:16,144 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 12:39:16,144 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 12:39:16,144 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 12:39:16,146 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 12:39:16,617 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 12, 39, 7), 14.1, 37.83, 0.0, 17.4, 12.33, 0, 0, 0, 2, 0, 0),)
2025-06-13 12:39:16,617 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 12:39:07
2025-06-13 12:39:16,698 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 12:39:16,703 [DEBUG][       Thread-255075][   transport.py][1871] : starting thread (client mode): 0x863c98a0
2025-06-13 12:39:16,703 [DEBUG][       Thread-255075][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 12:39:16,718 [DEBUG][       Thread-255075][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 12:39:16,718 [ INFO][       Thread-255075][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 12:39:16,722 [DEBUG][       Thread-255075][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 12:39:16,722 [DEBUG][       Thread-255075][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 12:39:16,722 [DEBUG][       Thread-255075][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 12:39:16,722 [DEBUG][       Thread-255075][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:39:16,722 [DEBUG][       Thread-255075][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:39:16,722 [DEBUG][       Thread-255075][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:39:16,722 [DEBUG][       Thread-255075][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:39:16,722 [DEBUG][       Thread-255075][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 12:39:16,722 [DEBUG][       Thread-255075][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 12:39:16,723 [DEBUG][       Thread-255075][   transport.py][1871] : client lang: <none>
2025-06-13 12:39:16,723 [DEBUG][       Thread-255075][   transport.py][1871] : server lang: <none>
2025-06-13 12:39:16,723 [DEBUG][       Thread-255075][   transport.py][1871] : kex follows: False
2025-06-13 12:39:16,723 [DEBUG][       Thread-255075][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 12:39:16,723 [DEBUG][       Thread-255075][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 12:39:16,723 [DEBUG][       Thread-255075][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 12:39:16,723 [DEBUG][       Thread-255075][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 12:39:16,723 [DEBUG][       Thread-255075][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 12:39:16,723 [DEBUG][       Thread-255075][   transport.py][1871] : Compression: none
2025-06-13 12:39:16,723 [DEBUG][       Thread-255075][   transport.py][1871] : === End of kex handshake ===
2025-06-13 12:39:16,738 [DEBUG][       Thread-255075][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 12:39:16,739 [DEBUG][       Thread-255075][   transport.py][1871] : Switch to new keys ...
2025-06-13 12:39:16,739 [DEBUG][       Thread-255075][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 12:39:16,740 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 12:39:16,740 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 12:39:16,741 [DEBUG][       Thread-255075][   transport.py][1871] : userauth is OK
2025-06-13 12:39:16,754 [ INFO][       Thread-255075][   transport.py][1871] : Authentication (password) successful!
2025-06-13 12:39:16,754 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 12:39:17,396 [DEBUG][       Thread-255075][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 12:39:17,396 [DEBUG][       Thread-255075][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 12:39:17,437 [DEBUG][       Thread-255075][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 12:39:17,437 [DEBUG][       Thread-255075][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 12:39:17,441 [DEBUG][       Thread-255075][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 12:39:17,455 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 12:39:17,456 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 12:39:17,457 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 12:39:17,459 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 12:39:17,465 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 12:39:17,467 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 12:39:17,467 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 12:39:17,468 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 12:39:17,468 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.443688 -999.00  +12.10  20.30     40   -0.90 1 1 1 1 1   888    0 13.17 51.66 ----- 19.8 20.3 60.4 24.3 16.8 -29.2 15.4 -30.9 15.2 -28.7 16.5 -26.9
2025-06-13 12:39:17,468 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 12:39:17,468 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 12:39:17,468 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.443688
2025-06-13 12:39:17,469 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 12:39:17,469 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 12:39:17,469 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 12:39:17,469 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 12:39:17,469 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 12:39:17,470 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T12:39:07', tmtdew=14.1, humidity=37.83, cloud=0.0, wind=17.4, temperature=12.33, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T10:38:54.643', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 12:39:17,471 [DEBUG][       Thread-255075][   transport.py][1871] : EOF in transport thread
2025-06-13 12:39:17,554 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 12:39:17,566 [DEBUG][       Thread-255078][   transport.py][1871] : starting thread (client mode): 0x86893fd0
2025-06-13 12:39:17,566 [DEBUG][       Thread-255078][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 12:39:17,580 [DEBUG][       Thread-255078][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 12:39:17,580 [ INFO][       Thread-255078][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 12:39:17,588 [DEBUG][       Thread-255078][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 12:39:17,588 [DEBUG][       Thread-255078][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 12:39:17,588 [DEBUG][       Thread-255078][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 12:39:17,588 [DEBUG][       Thread-255078][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:39:17,588 [DEBUG][       Thread-255078][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:39:17,588 [DEBUG][       Thread-255078][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:39:17,588 [DEBUG][       Thread-255078][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:39:17,588 [DEBUG][       Thread-255078][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 12:39:17,588 [DEBUG][       Thread-255078][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 12:39:17,589 [DEBUG][       Thread-255078][   transport.py][1871] : client lang: <none>
2025-06-13 12:39:17,589 [DEBUG][       Thread-255078][   transport.py][1871] : server lang: <none>
2025-06-13 12:39:17,589 [DEBUG][       Thread-255078][   transport.py][1871] : kex follows: False
2025-06-13 12:39:17,589 [DEBUG][       Thread-255078][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 12:39:17,589 [DEBUG][       Thread-255078][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 12:39:17,589 [DEBUG][       Thread-255078][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 12:39:17,589 [DEBUG][       Thread-255078][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 12:39:17,589 [DEBUG][       Thread-255078][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 12:39:17,589 [DEBUG][       Thread-255078][   transport.py][1871] : Compression: none
2025-06-13 12:39:17,589 [DEBUG][       Thread-255078][   transport.py][1871] : === End of kex handshake ===
2025-06-13 12:39:17,648 [DEBUG][       Thread-255078][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 12:39:17,648 [DEBUG][       Thread-255078][   transport.py][1871] : Switch to new keys ...
2025-06-13 12:39:17,649 [DEBUG][       Thread-255078][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 12:39:17,649 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 12:39:17,650 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 12:39:17,710 [DEBUG][       Thread-255078][   transport.py][1871] : userauth is OK
2025-06-13 12:39:17,710 [DEBUG][       Thread-255078][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 12:39:17,710 [DEBUG][       Thread-255078][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 12:39:17,710 [DEBUG][       Thread-255078][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 12:39:17,710 [DEBUG][       Thread-255078][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 12:39:17,730 [ INFO][       Thread-255078][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 12:39:17,730 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 12:39:17,730 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 12:39:18,772 [DEBUG][       Thread-255078][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 12:39:18,773 [DEBUG][       Thread-255078][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 12:39:18,824 [DEBUG][       Thread-255078][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 12:39:18,824 [DEBUG][       Thread-255078][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 12:39:18,833 [DEBUG][       Thread-255078][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 12:39:18,842 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 12:39:18,842 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 12:39:18,851 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 12:39:18,860 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 12:39:18,861 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 12:39:18,861 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 12:39:18,869 [DEBUG][       Thread-255078][   transport.py][1871] : EOF in transport thread
2025-06-13 12:39:21,760 [DEBUG][Thread-255080 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:39:28,872 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 12:39:28,872 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 12:39:28,872 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 12:39:28,875 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 12:39:29,344 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 12, 39, 7), 14.1, 37.83, 0.0, 17.4, 12.33, 0, 0, 0, 2, 0, 0),)
2025-06-13 12:39:29,344 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 12:39:07
2025-06-13 12:39:29,424 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 12:39:29,428 [DEBUG][       Thread-255081][   transport.py][1871] : starting thread (client mode): 0x863c96c0
2025-06-13 12:39:29,428 [DEBUG][       Thread-255081][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 12:39:29,449 [DEBUG][       Thread-255081][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 12:39:29,449 [ INFO][       Thread-255081][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 12:39:29,453 [DEBUG][       Thread-255081][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 12:39:29,453 [DEBUG][       Thread-255081][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 12:39:29,453 [DEBUG][       Thread-255081][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 12:39:29,453 [DEBUG][       Thread-255081][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:39:29,453 [DEBUG][       Thread-255081][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:39:29,453 [DEBUG][       Thread-255081][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:39:29,453 [DEBUG][       Thread-255081][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:39:29,453 [DEBUG][       Thread-255081][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 12:39:29,453 [DEBUG][       Thread-255081][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 12:39:29,453 [DEBUG][       Thread-255081][   transport.py][1871] : client lang: <none>
2025-06-13 12:39:29,453 [DEBUG][       Thread-255081][   transport.py][1871] : server lang: <none>
2025-06-13 12:39:29,453 [DEBUG][       Thread-255081][   transport.py][1871] : kex follows: False
2025-06-13 12:39:29,453 [DEBUG][       Thread-255081][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 12:39:29,453 [DEBUG][       Thread-255081][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 12:39:29,453 [DEBUG][       Thread-255081][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 12:39:29,453 [DEBUG][       Thread-255081][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 12:39:29,453 [DEBUG][       Thread-255081][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 12:39:29,453 [DEBUG][       Thread-255081][   transport.py][1871] : Compression: none
2025-06-13 12:39:29,453 [DEBUG][       Thread-255081][   transport.py][1871] : === End of kex handshake ===
2025-06-13 12:39:29,470 [DEBUG][       Thread-255081][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 12:39:29,470 [DEBUG][       Thread-255081][   transport.py][1871] : Switch to new keys ...
2025-06-13 12:39:29,471 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 12:39:29,471 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 12:39:29,471 [DEBUG][       Thread-255081][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 12:39:29,472 [DEBUG][       Thread-255081][   transport.py][1871] : userauth is OK
2025-06-13 12:39:29,497 [ INFO][       Thread-255081][   transport.py][1871] : Authentication (password) successful!
2025-06-13 12:39:29,498 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 12:39:30,275 [DEBUG][       Thread-255081][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 12:39:30,275 [DEBUG][       Thread-255081][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 12:39:30,317 [DEBUG][       Thread-255081][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 12:39:30,317 [DEBUG][       Thread-255081][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 12:39:30,321 [DEBUG][       Thread-255081][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 12:39:30,332 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 12:39:30,333 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 12:39:30,335 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 12:39:30,337 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 12:39:30,347 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 12:39:30,350 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 12:39:30,350 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 12:39:30,351 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 12:39:30,351 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.443688 -999.00  +12.10  20.30     40   -0.90 1 1 1 1 1   888    0 13.17 51.66 ----- 19.8 20.3 60.4 24.3 16.8 -29.2 15.4 -30.9 15.2 -28.7 16.5 -26.9
2025-06-13 12:39:30,351 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 12:39:30,351 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 12:39:30,351 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.443688
2025-06-13 12:39:30,352 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 12:39:30,353 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 12:39:30,353 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 12:39:30,353 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 12:39:30,353 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 12:39:30,353 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T12:39:07', tmtdew=14.1, humidity=37.83, cloud=0.0, wind=17.4, temperature=12.33, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T10:38:54.643', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 12:39:30,354 [DEBUG][       Thread-255081][   transport.py][1871] : EOF in transport thread
2025-06-13 12:39:30,437 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 12:39:30,450 [DEBUG][       Thread-255084][   transport.py][1871] : starting thread (client mode): 0x863bf490
2025-06-13 12:39:30,450 [DEBUG][       Thread-255084][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 12:39:30,466 [DEBUG][       Thread-255084][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 12:39:30,466 [ INFO][       Thread-255084][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 12:39:30,477 [DEBUG][       Thread-255084][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 12:39:30,478 [DEBUG][       Thread-255084][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 12:39:30,478 [DEBUG][       Thread-255084][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 12:39:30,478 [DEBUG][       Thread-255084][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:39:30,478 [DEBUG][       Thread-255084][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:39:30,478 [DEBUG][       Thread-255084][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:39:30,478 [DEBUG][       Thread-255084][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:39:30,478 [DEBUG][       Thread-255084][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 12:39:30,478 [DEBUG][       Thread-255084][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 12:39:30,478 [DEBUG][       Thread-255084][   transport.py][1871] : client lang: <none>
2025-06-13 12:39:30,478 [DEBUG][       Thread-255084][   transport.py][1871] : server lang: <none>
2025-06-13 12:39:30,478 [DEBUG][       Thread-255084][   transport.py][1871] : kex follows: False
2025-06-13 12:39:30,478 [DEBUG][       Thread-255084][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 12:39:30,478 [DEBUG][       Thread-255084][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 12:39:30,478 [DEBUG][       Thread-255084][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 12:39:30,478 [DEBUG][       Thread-255084][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 12:39:30,478 [DEBUG][       Thread-255084][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 12:39:30,479 [DEBUG][       Thread-255084][   transport.py][1871] : Compression: none
2025-06-13 12:39:30,479 [DEBUG][       Thread-255084][   transport.py][1871] : === End of kex handshake ===
2025-06-13 12:39:30,537 [DEBUG][       Thread-255084][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 12:39:30,537 [DEBUG][       Thread-255084][   transport.py][1871] : Switch to new keys ...
2025-06-13 12:39:30,538 [DEBUG][       Thread-255084][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 12:39:30,538 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 12:39:30,539 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 12:39:30,598 [DEBUG][       Thread-255084][   transport.py][1871] : userauth is OK
2025-06-13 12:39:30,599 [DEBUG][       Thread-255084][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 12:39:30,599 [DEBUG][       Thread-255084][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 12:39:30,599 [DEBUG][       Thread-255084][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 12:39:30,599 [DEBUG][       Thread-255084][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 12:39:30,618 [ INFO][       Thread-255084][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 12:39:30,618 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 12:39:30,618 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 12:39:30,785 [DEBUG][Thread-255086 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:39:31,632 [DEBUG][       Thread-255084][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 12:39:31,632 [DEBUG][       Thread-255084][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 12:39:31,682 [DEBUG][       Thread-255084][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 12:39:31,682 [DEBUG][       Thread-255084][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 12:39:31,694 [DEBUG][       Thread-255084][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 12:39:31,702 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 12:39:31,703 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 12:39:31,718 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 12:39:31,728 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 12:39:31,728 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 12:39:31,728 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 12:39:31,737 [DEBUG][       Thread-255084][   transport.py][1871] : EOF in transport thread
2025-06-13 12:39:39,807 [DEBUG][Thread-255087 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:39:39,983 [DEBUG][Thread-255088 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:39:41,037 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:39:41,038 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:39:41,739 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 12:39:41,739 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 12:39:41,739 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 12:39:41,742 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 12:39:42,210 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 12, 39, 38), 14.18, 37.56, 0.0, 12.32, 12.31, 0, 0, 0, 2, 0, 0),)
2025-06-13 12:39:42,210 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 12:39:38
2025-06-13 12:39:42,292 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 12:39:42,296 [DEBUG][       Thread-255089][   transport.py][1871] : starting thread (client mode): 0x863beaa0
2025-06-13 12:39:42,296 [DEBUG][       Thread-255089][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 12:39:42,316 [DEBUG][       Thread-255089][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 12:39:42,316 [ INFO][       Thread-255089][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 12:39:42,318 [DEBUG][       Thread-255089][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 12:39:42,318 [DEBUG][       Thread-255089][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 12:39:42,318 [DEBUG][       Thread-255089][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 12:39:42,318 [DEBUG][       Thread-255089][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:39:42,318 [DEBUG][       Thread-255089][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:39:42,318 [DEBUG][       Thread-255089][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:39:42,318 [DEBUG][       Thread-255089][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:39:42,318 [DEBUG][       Thread-255089][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 12:39:42,318 [DEBUG][       Thread-255089][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 12:39:42,318 [DEBUG][       Thread-255089][   transport.py][1871] : client lang: <none>
2025-06-13 12:39:42,318 [DEBUG][       Thread-255089][   transport.py][1871] : server lang: <none>
2025-06-13 12:39:42,318 [DEBUG][       Thread-255089][   transport.py][1871] : kex follows: False
2025-06-13 12:39:42,318 [DEBUG][       Thread-255089][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 12:39:42,318 [DEBUG][       Thread-255089][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 12:39:42,318 [DEBUG][       Thread-255089][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 12:39:42,318 [DEBUG][       Thread-255089][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 12:39:42,318 [DEBUG][       Thread-255089][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 12:39:42,318 [DEBUG][       Thread-255089][   transport.py][1871] : Compression: none
2025-06-13 12:39:42,318 [DEBUG][       Thread-255089][   transport.py][1871] : === End of kex handshake ===
2025-06-13 12:39:42,330 [DEBUG][       Thread-255089][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 12:39:42,330 [DEBUG][       Thread-255089][   transport.py][1871] : Switch to new keys ...
2025-06-13 12:39:42,331 [DEBUG][       Thread-255089][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 12:39:42,331 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 12:39:42,331 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 12:39:42,332 [DEBUG][       Thread-255089][   transport.py][1871] : userauth is OK
2025-06-13 12:39:42,357 [ INFO][       Thread-255089][   transport.py][1871] : Authentication (password) successful!
2025-06-13 12:39:42,357 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 12:39:43,102 [DEBUG][       Thread-255089][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 12:39:43,102 [DEBUG][       Thread-255089][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 12:39:43,145 [DEBUG][       Thread-255089][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 12:39:43,145 [DEBUG][       Thread-255089][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 12:39:43,149 [DEBUG][       Thread-255089][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 12:39:43,161 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 12:39:43,162 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 12:39:43,163 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 12:39:43,165 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 12:39:43,169 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 12:39:43,171 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 12:39:43,171 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 12:39:43,172 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 12:39:43,172 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.443688 -999.00  +12.10  20.30     40   -0.90 1 1 1 1 1   888    0 13.17 51.66 ----- 19.8 20.3 60.4 24.3 16.8 -29.2 15.4 -30.9 15.2 -28.7 16.5 -26.9
2025-06-13 12:39:43,172 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 12:39:43,172 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 12:39:43,172 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.443688
2025-06-13 12:39:43,173 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 12:39:43,173 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 12:39:43,173 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 12:39:43,173 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 12:39:43,174 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 12:39:43,174 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T12:39:38', tmtdew=14.18, humidity=37.56, cloud=0.0, wind=12.32, temperature=12.31, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T10:38:54.643', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 12:39:43,175 [DEBUG][       Thread-255089][   transport.py][1871] : EOF in transport thread
2025-06-13 12:39:43,256 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 12:39:43,272 [DEBUG][       Thread-255092][   transport.py][1871] : starting thread (client mode): 0x863a67a0
2025-06-13 12:39:43,272 [DEBUG][       Thread-255092][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 12:39:43,289 [DEBUG][       Thread-255092][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 12:39:43,289 [ INFO][       Thread-255092][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 12:39:43,296 [DEBUG][       Thread-255092][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 12:39:43,296 [DEBUG][       Thread-255092][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 12:39:43,296 [DEBUG][       Thread-255092][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 12:39:43,296 [DEBUG][       Thread-255092][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:39:43,297 [DEBUG][       Thread-255092][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:39:43,297 [DEBUG][       Thread-255092][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:39:43,297 [DEBUG][       Thread-255092][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:39:43,297 [DEBUG][       Thread-255092][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 12:39:43,297 [DEBUG][       Thread-255092][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 12:39:43,297 [DEBUG][       Thread-255092][   transport.py][1871] : client lang: <none>
2025-06-13 12:39:43,297 [DEBUG][       Thread-255092][   transport.py][1871] : server lang: <none>
2025-06-13 12:39:43,297 [DEBUG][       Thread-255092][   transport.py][1871] : kex follows: False
2025-06-13 12:39:43,297 [DEBUG][       Thread-255092][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 12:39:43,297 [DEBUG][       Thread-255092][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 12:39:43,297 [DEBUG][       Thread-255092][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 12:39:43,297 [DEBUG][       Thread-255092][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 12:39:43,297 [DEBUG][       Thread-255092][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 12:39:43,297 [DEBUG][       Thread-255092][   transport.py][1871] : Compression: none
2025-06-13 12:39:43,297 [DEBUG][       Thread-255092][   transport.py][1871] : === End of kex handshake ===
2025-06-13 12:39:43,356 [DEBUG][       Thread-255092][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 12:39:43,357 [DEBUG][       Thread-255092][   transport.py][1871] : Switch to new keys ...
2025-06-13 12:39:43,357 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 12:39:43,358 [DEBUG][       Thread-255092][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 12:39:43,358 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 12:39:43,412 [DEBUG][       Thread-255092][   transport.py][1871] : userauth is OK
2025-06-13 12:39:43,413 [DEBUG][       Thread-255092][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 12:39:43,413 [DEBUG][       Thread-255092][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 12:39:43,413 [DEBUG][       Thread-255092][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 12:39:43,413 [DEBUG][       Thread-255092][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 12:39:43,435 [ INFO][       Thread-255092][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 12:39:43,435 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 12:39:43,436 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 12:39:44,463 [DEBUG][       Thread-255092][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 12:39:44,463 [DEBUG][       Thread-255092][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 12:39:44,512 [DEBUG][       Thread-255092][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 12:39:44,512 [DEBUG][       Thread-255092][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 12:39:44,522 [DEBUG][       Thread-255092][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 12:39:44,531 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 12:39:44,532 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 12:39:44,541 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 12:39:44,551 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 12:39:44,551 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 12:39:44,552 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 12:39:44,560 [DEBUG][       Thread-255092][   transport.py][1871] : EOF in transport thread
2025-06-13 12:39:45,313 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:39:45,314 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:39:48,826 [DEBUG][Thread-255094 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:39:54,562 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 12:39:54,562 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 12:39:54,562 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 12:39:54,565 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 12:39:55,026 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 12, 39, 38), 14.18, 37.56, 0.0, 12.32, 12.31, 0, 0, 0, 2, 0, 0),)
2025-06-13 12:39:55,026 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 12:39:38
2025-06-13 12:39:55,107 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 12:39:55,111 [DEBUG][       Thread-255095][   transport.py][1871] : starting thread (client mode): 0x863c8070
2025-06-13 12:39:55,111 [DEBUG][       Thread-255095][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 12:39:55,128 [DEBUG][       Thread-255095][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 12:39:55,128 [ INFO][       Thread-255095][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 12:39:55,130 [DEBUG][       Thread-255095][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 12:39:55,130 [DEBUG][       Thread-255095][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 12:39:55,130 [DEBUG][       Thread-255095][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 12:39:55,130 [DEBUG][       Thread-255095][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:39:55,130 [DEBUG][       Thread-255095][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:39:55,130 [DEBUG][       Thread-255095][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:39:55,130 [DEBUG][       Thread-255095][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:39:55,130 [DEBUG][       Thread-255095][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 12:39:55,130 [DEBUG][       Thread-255095][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 12:39:55,130 [DEBUG][       Thread-255095][   transport.py][1871] : client lang: <none>
2025-06-13 12:39:55,130 [DEBUG][       Thread-255095][   transport.py][1871] : server lang: <none>
2025-06-13 12:39:55,130 [DEBUG][       Thread-255095][   transport.py][1871] : kex follows: False
2025-06-13 12:39:55,130 [DEBUG][       Thread-255095][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 12:39:55,130 [DEBUG][       Thread-255095][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 12:39:55,130 [DEBUG][       Thread-255095][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 12:39:55,130 [DEBUG][       Thread-255095][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 12:39:55,130 [DEBUG][       Thread-255095][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 12:39:55,130 [DEBUG][       Thread-255095][   transport.py][1871] : Compression: none
2025-06-13 12:39:55,130 [DEBUG][       Thread-255095][   transport.py][1871] : === End of kex handshake ===
2025-06-13 12:39:55,139 [DEBUG][       Thread-255095][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 12:39:55,140 [DEBUG][       Thread-255095][   transport.py][1871] : Switch to new keys ...
2025-06-13 12:39:55,140 [DEBUG][       Thread-255095][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 12:39:55,140 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 12:39:55,140 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 12:39:55,142 [DEBUG][       Thread-255095][   transport.py][1871] : userauth is OK
2025-06-13 12:39:55,155 [ INFO][       Thread-255095][   transport.py][1871] : Authentication (password) successful!
2025-06-13 12:39:55,156 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 12:39:55,784 [DEBUG][       Thread-255095][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 12:39:55,784 [DEBUG][       Thread-255095][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 12:39:55,825 [DEBUG][       Thread-255095][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 12:39:55,825 [DEBUG][       Thread-255095][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 12:39:55,827 [DEBUG][       Thread-255095][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 12:39:55,841 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 12:39:55,841 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 12:39:55,842 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 12:39:55,843 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 12:39:55,846 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 12:39:55,847 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 12:39:55,847 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 12:39:55,847 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 12:39:55,848 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.444035 -999.00  +11.90  18.50     40   -0.80 1 1 1 1 1   888    0 13.73 54.33 ----- 15.8 18.5 53.4 23.0 16.8 -29.0 15.4 -30.5 15.1 -29.5 16.6 -28.0
2025-06-13 12:39:55,848 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 12:39:55,848 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 12:39:55,848 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.444035
2025-06-13 12:39:55,848 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 12:39:55,848 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 12:39:55,848 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 12:39:55,848 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 12:39:55,848 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 12:39:55,848 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T12:39:38', tmtdew=14.18, humidity=37.56, cloud=0.0, wind=12.32, temperature=12.31, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T10:39:24.624', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 12:39:55,848 [DEBUG][       Thread-255095][   transport.py][1871] : EOF in transport thread
2025-06-13 12:39:55,927 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 12:39:55,937 [DEBUG][       Thread-255098][   transport.py][1871] : starting thread (client mode): 0x867ffc10
2025-06-13 12:39:55,937 [DEBUG][       Thread-255098][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 12:39:55,952 [DEBUG][       Thread-255098][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 12:39:55,952 [ INFO][       Thread-255098][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 12:39:55,960 [DEBUG][       Thread-255098][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 12:39:55,960 [DEBUG][       Thread-255098][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 12:39:55,960 [DEBUG][       Thread-255098][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 12:39:55,960 [DEBUG][       Thread-255098][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:39:55,960 [DEBUG][       Thread-255098][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:39:55,960 [DEBUG][       Thread-255098][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:39:55,960 [DEBUG][       Thread-255098][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:39:55,960 [DEBUG][       Thread-255098][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 12:39:55,960 [DEBUG][       Thread-255098][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 12:39:55,960 [DEBUG][       Thread-255098][   transport.py][1871] : client lang: <none>
2025-06-13 12:39:55,960 [DEBUG][       Thread-255098][   transport.py][1871] : server lang: <none>
2025-06-13 12:39:55,960 [DEBUG][       Thread-255098][   transport.py][1871] : kex follows: False
2025-06-13 12:39:55,960 [DEBUG][       Thread-255098][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 12:39:55,960 [DEBUG][       Thread-255098][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 12:39:55,960 [DEBUG][       Thread-255098][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 12:39:55,960 [DEBUG][       Thread-255098][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 12:39:55,960 [DEBUG][       Thread-255098][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 12:39:55,960 [DEBUG][       Thread-255098][   transport.py][1871] : Compression: none
2025-06-13 12:39:55,960 [DEBUG][       Thread-255098][   transport.py][1871] : === End of kex handshake ===
2025-06-13 12:39:56,020 [DEBUG][       Thread-255098][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 12:39:56,021 [DEBUG][       Thread-255098][   transport.py][1871] : Switch to new keys ...
2025-06-13 12:39:56,021 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 12:39:56,022 [DEBUG][       Thread-255098][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 12:39:56,023 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 12:39:56,076 [DEBUG][       Thread-255098][   transport.py][1871] : userauth is OK
2025-06-13 12:39:56,076 [DEBUG][       Thread-255098][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 12:39:56,076 [DEBUG][       Thread-255098][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 12:39:56,076 [DEBUG][       Thread-255098][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 12:39:56,076 [DEBUG][       Thread-255098][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 12:39:56,091 [ INFO][       Thread-255098][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 12:39:56,092 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 12:39:56,092 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 12:39:57,086 [DEBUG][       Thread-255098][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 12:39:57,086 [DEBUG][       Thread-255098][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 12:39:57,136 [DEBUG][       Thread-255098][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 12:39:57,136 [DEBUG][       Thread-255098][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 12:39:57,145 [DEBUG][       Thread-255098][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 12:39:57,154 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 12:39:57,154 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 12:39:57,164 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 12:39:57,173 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 12:39:57,173 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 12:39:57,174 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 12:39:57,182 [DEBUG][       Thread-255098][   transport.py][1871] : EOF in transport thread
2025-06-13 12:39:57,860 [DEBUG][Thread-255100 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:40:06,882 [DEBUG][Thread-255101 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:40:07,184 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 12:40:07,185 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 12:40:07,185 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 12:40:07,187 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 12:40:07,638 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 12, 39, 38), 14.18, 37.56, 0.0, 12.32, 12.31, 0, 0, 0, 2, 0, 0),)
2025-06-13 12:40:07,638 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 12:39:38
2025-06-13 12:40:07,719 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 12:40:07,723 [DEBUG][       Thread-255102][   transport.py][1871] : starting thread (client mode): 0x867fe9b0
2025-06-13 12:40:07,723 [DEBUG][       Thread-255102][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 12:40:07,744 [DEBUG][       Thread-255102][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 12:40:07,744 [ INFO][       Thread-255102][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 12:40:07,747 [DEBUG][       Thread-255102][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 12:40:07,748 [DEBUG][       Thread-255102][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 12:40:07,748 [DEBUG][       Thread-255102][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 12:40:07,748 [DEBUG][       Thread-255102][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:40:07,748 [DEBUG][       Thread-255102][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:40:07,748 [DEBUG][       Thread-255102][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:40:07,748 [DEBUG][       Thread-255102][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:40:07,748 [DEBUG][       Thread-255102][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 12:40:07,748 [DEBUG][       Thread-255102][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 12:40:07,748 [DEBUG][       Thread-255102][   transport.py][1871] : client lang: <none>
2025-06-13 12:40:07,748 [DEBUG][       Thread-255102][   transport.py][1871] : server lang: <none>
2025-06-13 12:40:07,748 [DEBUG][       Thread-255102][   transport.py][1871] : kex follows: False
2025-06-13 12:40:07,748 [DEBUG][       Thread-255102][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 12:40:07,748 [DEBUG][       Thread-255102][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 12:40:07,748 [DEBUG][       Thread-255102][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 12:40:07,748 [DEBUG][       Thread-255102][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 12:40:07,748 [DEBUG][       Thread-255102][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 12:40:07,748 [DEBUG][       Thread-255102][   transport.py][1871] : Compression: none
2025-06-13 12:40:07,748 [DEBUG][       Thread-255102][   transport.py][1871] : === End of kex handshake ===
2025-06-13 12:40:07,756 [DEBUG][       Thread-255102][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 12:40:07,757 [DEBUG][       Thread-255102][   transport.py][1871] : Switch to new keys ...
2025-06-13 12:40:07,757 [DEBUG][       Thread-255102][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 12:40:07,757 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 12:40:07,757 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 12:40:07,758 [DEBUG][       Thread-255102][   transport.py][1871] : userauth is OK
2025-06-13 12:40:07,772 [ INFO][       Thread-255102][   transport.py][1871] : Authentication (password) successful!
2025-06-13 12:40:07,772 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 12:40:12,749 [DEBUG][Thread-255104 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:40:15,904 [DEBUG][Thread-255105 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:40:16,004 [DEBUG][       Thread-255102][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 12:40:16,005 [DEBUG][       Thread-255102][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 12:40:16,045 [DEBUG][       Thread-255102][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 12:40:16,045 [DEBUG][       Thread-255102][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 12:40:16,049 [DEBUG][       Thread-255102][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 12:40:16,145 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 12:40:16,146 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 12:40:16,148 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 12:40:16,150 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 12:40:16,157 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 12:40:16,159 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 12:40:16,159 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 12:40:16,160 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 12:40:16,160 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.444035 -999.00  +11.90  18.50     40   -0.80 1 1 1 1 1   888    0 13.73 54.33 ----- 15.8 18.5 53.4 23.0 16.8 -29.0 15.4 -30.5 15.1 -29.5 16.6 -28.0
2025-06-13 12:40:16,160 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 12:40:16,160 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 12:40:16,161 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.444035
2025-06-13 12:40:16,161 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 12:40:16,162 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 12:40:16,162 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 12:40:16,162 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 12:40:16,162 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 12:40:16,162 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T12:39:38', tmtdew=14.18, humidity=37.56, cloud=0.0, wind=12.32, temperature=12.31, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T10:39:24.624', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 12:40:16,163 [DEBUG][       Thread-255102][   transport.py][1871] : EOF in transport thread
2025-06-13 12:40:16,247 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 12:40:16,259 [DEBUG][       Thread-255107][   transport.py][1871] : starting thread (client mode): 0x863eea70
2025-06-13 12:40:16,259 [DEBUG][       Thread-255107][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 12:40:16,274 [DEBUG][       Thread-255107][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 12:40:16,274 [ INFO][       Thread-255107][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 12:40:16,282 [DEBUG][       Thread-255107][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 12:40:16,282 [DEBUG][       Thread-255107][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 12:40:16,282 [DEBUG][       Thread-255107][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 12:40:16,282 [DEBUG][       Thread-255107][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:40:16,282 [DEBUG][       Thread-255107][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:40:16,282 [DEBUG][       Thread-255107][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:40:16,282 [DEBUG][       Thread-255107][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:40:16,282 [DEBUG][       Thread-255107][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 12:40:16,283 [DEBUG][       Thread-255107][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 12:40:16,283 [DEBUG][       Thread-255107][   transport.py][1871] : client lang: <none>
2025-06-13 12:40:16,283 [DEBUG][       Thread-255107][   transport.py][1871] : server lang: <none>
2025-06-13 12:40:16,283 [DEBUG][       Thread-255107][   transport.py][1871] : kex follows: False
2025-06-13 12:40:16,283 [DEBUG][       Thread-255107][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 12:40:16,283 [DEBUG][       Thread-255107][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 12:40:16,283 [DEBUG][       Thread-255107][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 12:40:16,283 [DEBUG][       Thread-255107][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 12:40:16,283 [DEBUG][       Thread-255107][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 12:40:16,283 [DEBUG][       Thread-255107][   transport.py][1871] : Compression: none
2025-06-13 12:40:16,283 [DEBUG][       Thread-255107][   transport.py][1871] : === End of kex handshake ===
2025-06-13 12:40:16,340 [DEBUG][       Thread-255107][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 12:40:16,340 [DEBUG][       Thread-255107][   transport.py][1871] : Switch to new keys ...
2025-06-13 12:40:16,341 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 12:40:16,342 [DEBUG][       Thread-255107][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 12:40:16,342 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 12:40:16,397 [DEBUG][       Thread-255107][   transport.py][1871] : userauth is OK
2025-06-13 12:40:16,397 [DEBUG][       Thread-255107][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 12:40:16,397 [DEBUG][       Thread-255107][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 12:40:16,397 [DEBUG][       Thread-255107][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 12:40:16,397 [DEBUG][       Thread-255107][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 12:40:16,416 [ INFO][       Thread-255107][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 12:40:16,416 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 12:40:16,417 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 12:40:17,422 [DEBUG][       Thread-255107][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 12:40:17,422 [DEBUG][       Thread-255107][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 12:40:17,475 [DEBUG][       Thread-255107][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 12:40:17,475 [DEBUG][       Thread-255107][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 12:40:17,484 [DEBUG][       Thread-255107][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 12:40:17,496 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 12:40:17,496 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 12:40:17,506 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 12:40:17,515 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 12:40:17,515 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 12:40:17,516 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 12:40:17,525 [DEBUG][       Thread-255107][   transport.py][1871] : EOF in transport thread
2025-06-13 12:40:24,926 [DEBUG][Thread-255109 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:40:27,520 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 12:40:27,520 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 12:40:27,520 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 12:40:27,523 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 12:40:27,984 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 12, 40, 10), 14.04, 37.9, 0.0, 13.16, 12.37, 0, 0, 0, 2, 0, 0),)
2025-06-13 12:40:27,984 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 12:40:10
2025-06-13 12:40:28,065 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 12:40:28,072 [DEBUG][       Thread-255110][   transport.py][1871] : starting thread (client mode): 0x863c8e20
2025-06-13 12:40:28,072 [DEBUG][       Thread-255110][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 12:40:28,093 [DEBUG][       Thread-255110][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 12:40:28,093 [ INFO][       Thread-255110][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 12:40:28,096 [DEBUG][       Thread-255110][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 12:40:28,096 [DEBUG][       Thread-255110][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 12:40:28,096 [DEBUG][       Thread-255110][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 12:40:28,096 [DEBUG][       Thread-255110][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:40:28,096 [DEBUG][       Thread-255110][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:40:28,096 [DEBUG][       Thread-255110][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:40:28,097 [DEBUG][       Thread-255110][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:40:28,097 [DEBUG][       Thread-255110][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 12:40:28,097 [DEBUG][       Thread-255110][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 12:40:28,097 [DEBUG][       Thread-255110][   transport.py][1871] : client lang: <none>
2025-06-13 12:40:28,097 [DEBUG][       Thread-255110][   transport.py][1871] : server lang: <none>
2025-06-13 12:40:28,097 [DEBUG][       Thread-255110][   transport.py][1871] : kex follows: False
2025-06-13 12:40:28,097 [DEBUG][       Thread-255110][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 12:40:28,097 [DEBUG][       Thread-255110][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 12:40:28,097 [DEBUG][       Thread-255110][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 12:40:28,097 [DEBUG][       Thread-255110][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 12:40:28,097 [DEBUG][       Thread-255110][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 12:40:28,097 [DEBUG][       Thread-255110][   transport.py][1871] : Compression: none
2025-06-13 12:40:28,097 [DEBUG][       Thread-255110][   transport.py][1871] : === End of kex handshake ===
2025-06-13 12:40:28,114 [DEBUG][       Thread-255110][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 12:40:28,115 [DEBUG][       Thread-255110][   transport.py][1871] : Switch to new keys ...
2025-06-13 12:40:28,115 [DEBUG][       Thread-255110][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 12:40:28,115 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 12:40:28,116 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 12:40:28,117 [DEBUG][       Thread-255110][   transport.py][1871] : userauth is OK
2025-06-13 12:40:28,130 [ INFO][       Thread-255110][   transport.py][1871] : Authentication (password) successful!
2025-06-13 12:40:28,130 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 12:40:28,692 [DEBUG][       Thread-255110][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 12:40:28,692 [DEBUG][       Thread-255110][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 12:40:28,733 [DEBUG][       Thread-255110][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 12:40:28,733 [DEBUG][       Thread-255110][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 12:40:28,736 [DEBUG][       Thread-255110][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 12:40:28,746 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 12:40:28,746 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 12:40:28,748 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 12:40:28,750 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 12:40:28,755 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 12:40:28,757 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 12:40:28,757 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 12:40:28,758 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 12:40:28,758 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.444382 -999.00  +12.00  13.41     41   -0.50 1 1 1 1 1   888    0 14.13 64.00 ----- 14.4 13.4 45.4 17.1 16.8 -28.9 15.4 -30.6 15.2 -29.0 16.6 -26.7
2025-06-13 12:40:28,758 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 12:40:28,758 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 12:40:28,758 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.444382
2025-06-13 12:40:28,759 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 12:40:28,759 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 12:40:28,759 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 12:40:28,759 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 12:40:28,759 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 12:40:28,760 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T12:40:10', tmtdew=14.04, humidity=37.9, cloud=0.0, wind=13.16, temperature=12.37, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T10:39:54.605', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 12:40:28,760 [DEBUG][       Thread-255110][   transport.py][1871] : EOF in transport thread
2025-06-13 12:40:28,844 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 12:40:28,854 [DEBUG][       Thread-255113][   transport.py][1871] : starting thread (client mode): 0x867b6c80
2025-06-13 12:40:28,854 [DEBUG][       Thread-255113][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 12:40:28,869 [DEBUG][       Thread-255113][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 12:40:28,869 [ INFO][       Thread-255113][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 12:40:28,877 [DEBUG][       Thread-255113][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 12:40:28,877 [DEBUG][       Thread-255113][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 12:40:28,877 [DEBUG][       Thread-255113][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 12:40:28,877 [DEBUG][       Thread-255113][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:40:28,877 [DEBUG][       Thread-255113][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:40:28,877 [DEBUG][       Thread-255113][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:40:28,877 [DEBUG][       Thread-255113][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:40:28,877 [DEBUG][       Thread-255113][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 12:40:28,877 [DEBUG][       Thread-255113][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 12:40:28,877 [DEBUG][       Thread-255113][   transport.py][1871] : client lang: <none>
2025-06-13 12:40:28,877 [DEBUG][       Thread-255113][   transport.py][1871] : server lang: <none>
2025-06-13 12:40:28,877 [DEBUG][       Thread-255113][   transport.py][1871] : kex follows: False
2025-06-13 12:40:28,877 [DEBUG][       Thread-255113][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 12:40:28,877 [DEBUG][       Thread-255113][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 12:40:28,878 [DEBUG][       Thread-255113][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 12:40:28,878 [DEBUG][       Thread-255113][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 12:40:28,878 [DEBUG][       Thread-255113][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 12:40:28,878 [DEBUG][       Thread-255113][   transport.py][1871] : Compression: none
2025-06-13 12:40:28,878 [DEBUG][       Thread-255113][   transport.py][1871] : === End of kex handshake ===
2025-06-13 12:40:28,936 [DEBUG][       Thread-255113][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 12:40:28,937 [DEBUG][       Thread-255113][   transport.py][1871] : Switch to new keys ...
2025-06-13 12:40:28,937 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 12:40:28,938 [DEBUG][       Thread-255113][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 12:40:28,939 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 12:40:28,993 [DEBUG][       Thread-255113][   transport.py][1871] : userauth is OK
2025-06-13 12:40:28,993 [DEBUG][       Thread-255113][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 12:40:28,994 [DEBUG][       Thread-255113][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 12:40:28,994 [DEBUG][       Thread-255113][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 12:40:28,994 [DEBUG][       Thread-255113][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 12:40:29,012 [ INFO][       Thread-255113][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 12:40:29,013 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 12:40:29,013 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 12:40:30,047 [DEBUG][       Thread-255113][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 12:40:30,047 [DEBUG][       Thread-255113][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 12:40:30,096 [DEBUG][       Thread-255113][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 12:40:30,096 [DEBUG][       Thread-255113][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 12:40:30,106 [DEBUG][       Thread-255113][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 12:40:30,115 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 12:40:30,115 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 12:40:30,125 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 12:40:30,134 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 12:40:30,134 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 12:40:30,134 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 12:40:30,142 [DEBUG][       Thread-255113][   transport.py][1871] : EOF in transport thread
2025-06-13 12:40:33,951 [DEBUG][Thread-255115 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:40:40,144 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 12:40:40,144 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 12:40:40,144 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 12:40:40,145 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 12:40:40,606 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 12, 40, 10), 14.04, 37.9, 0.0, 13.16, 12.37, 0, 0, 0, 2, 0, 0),)
2025-06-13 12:40:40,606 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 12:40:10
2025-06-13 12:40:40,691 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 12:40:40,694 [DEBUG][       Thread-255116][   transport.py][1871] : starting thread (client mode): 0x86351b40
2025-06-13 12:40:40,694 [DEBUG][       Thread-255116][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 12:40:40,714 [DEBUG][       Thread-255116][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 12:40:40,714 [ INFO][       Thread-255116][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 12:40:40,717 [DEBUG][       Thread-255116][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 12:40:40,717 [DEBUG][       Thread-255116][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 12:40:40,717 [DEBUG][       Thread-255116][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 12:40:40,717 [DEBUG][       Thread-255116][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:40:40,717 [DEBUG][       Thread-255116][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:40:40,717 [DEBUG][       Thread-255116][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:40:40,717 [DEBUG][       Thread-255116][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:40:40,718 [DEBUG][       Thread-255116][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 12:40:40,718 [DEBUG][       Thread-255116][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 12:40:40,718 [DEBUG][       Thread-255116][   transport.py][1871] : client lang: <none>
2025-06-13 12:40:40,718 [DEBUG][       Thread-255116][   transport.py][1871] : server lang: <none>
2025-06-13 12:40:40,718 [DEBUG][       Thread-255116][   transport.py][1871] : kex follows: False
2025-06-13 12:40:40,718 [DEBUG][       Thread-255116][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 12:40:40,718 [DEBUG][       Thread-255116][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 12:40:40,718 [DEBUG][       Thread-255116][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 12:40:40,718 [DEBUG][       Thread-255116][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 12:40:40,718 [DEBUG][       Thread-255116][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 12:40:40,718 [DEBUG][       Thread-255116][   transport.py][1871] : Compression: none
2025-06-13 12:40:40,718 [DEBUG][       Thread-255116][   transport.py][1871] : === End of kex handshake ===
2025-06-13 12:40:40,732 [DEBUG][       Thread-255116][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 12:40:40,732 [DEBUG][       Thread-255116][   transport.py][1871] : Switch to new keys ...
2025-06-13 12:40:40,732 [DEBUG][       Thread-255116][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 12:40:40,732 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 12:40:40,732 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 12:40:40,732 [DEBUG][       Thread-255116][   transport.py][1871] : userauth is OK
2025-06-13 12:40:40,745 [ INFO][       Thread-255116][   transport.py][1871] : Authentication (password) successful!
2025-06-13 12:40:40,745 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 12:40:41,104 [DEBUG][Thread-255118 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:40:41,336 [DEBUG][       Thread-255116][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 12:40:41,336 [DEBUG][       Thread-255116][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 12:40:41,380 [DEBUG][       Thread-255116][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 12:40:41,380 [DEBUG][       Thread-255116][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 12:40:41,383 [DEBUG][       Thread-255116][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 12:40:41,394 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 12:40:41,394 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 12:40:41,394 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 12:40:41,395 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 12:40:41,397 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 12:40:41,398 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 12:40:41,398 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 12:40:41,398 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 12:40:41,398 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.444382 -999.00  +12.00  13.41     41   -0.50 1 1 1 1 1   888    0 14.13 64.00 ----- 14.4 13.4 45.4 17.1 16.8 -28.9 15.4 -30.6 15.2 -29.0 16.6 -26.7
2025-06-13 12:40:41,398 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 12:40:41,398 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 12:40:41,398 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.444382
2025-06-13 12:40:41,399 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 12:40:41,399 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 12:40:41,399 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 12:40:41,399 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 12:40:41,399 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 12:40:41,399 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T12:40:10', tmtdew=14.04, humidity=37.9, cloud=0.0, wind=13.16, temperature=12.37, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T10:39:54.605', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 12:40:41,399 [DEBUG][       Thread-255116][   transport.py][1871] : EOF in transport thread
2025-06-13 12:40:41,471 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 12:40:41,483 [DEBUG][       Thread-255120][   transport.py][1871] : starting thread (client mode): 0x863ec730
2025-06-13 12:40:41,483 [DEBUG][       Thread-255120][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 12:40:41,497 [DEBUG][       Thread-255120][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 12:40:41,497 [ INFO][       Thread-255120][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 12:40:41,505 [DEBUG][       Thread-255120][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 12:40:41,505 [DEBUG][       Thread-255120][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 12:40:41,505 [DEBUG][       Thread-255120][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 12:40:41,505 [DEBUG][       Thread-255120][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:40:41,505 [DEBUG][       Thread-255120][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:40:41,505 [DEBUG][       Thread-255120][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:40:41,505 [DEBUG][       Thread-255120][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:40:41,505 [DEBUG][       Thread-255120][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 12:40:41,505 [DEBUG][       Thread-255120][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 12:40:41,505 [DEBUG][       Thread-255120][   transport.py][1871] : client lang: <none>
2025-06-13 12:40:41,505 [DEBUG][       Thread-255120][   transport.py][1871] : server lang: <none>
2025-06-13 12:40:41,505 [DEBUG][       Thread-255120][   transport.py][1871] : kex follows: False
2025-06-13 12:40:41,505 [DEBUG][       Thread-255120][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 12:40:41,505 [DEBUG][       Thread-255120][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 12:40:41,505 [DEBUG][       Thread-255120][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 12:40:41,505 [DEBUG][       Thread-255120][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 12:40:41,505 [DEBUG][       Thread-255120][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 12:40:41,505 [DEBUG][       Thread-255120][   transport.py][1871] : Compression: none
2025-06-13 12:40:41,505 [DEBUG][       Thread-255120][   transport.py][1871] : === End of kex handshake ===
2025-06-13 12:40:41,566 [DEBUG][       Thread-255120][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 12:40:41,566 [DEBUG][       Thread-255120][   transport.py][1871] : Switch to new keys ...
2025-06-13 12:40:41,566 [DEBUG][       Thread-255120][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 12:40:41,566 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 12:40:41,566 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 12:40:41,624 [DEBUG][       Thread-255120][   transport.py][1871] : userauth is OK
2025-06-13 12:40:41,624 [DEBUG][       Thread-255120][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 12:40:41,624 [DEBUG][       Thread-255120][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 12:40:41,624 [DEBUG][       Thread-255120][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 12:40:41,624 [DEBUG][       Thread-255120][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 12:40:41,644 [ INFO][       Thread-255120][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 12:40:41,644 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 12:40:41,644 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 12:40:42,162 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:40:42,164 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:40:42,691 [DEBUG][       Thread-255120][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 12:40:42,691 [DEBUG][       Thread-255120][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 12:40:42,740 [DEBUG][       Thread-255120][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 12:40:42,740 [DEBUG][       Thread-255120][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 12:40:42,748 [DEBUG][       Thread-255120][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 12:40:42,757 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 12:40:42,757 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 12:40:42,771 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 12:40:42,779 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 12:40:42,779 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 12:40:42,779 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 12:40:42,787 [DEBUG][       Thread-255120][   transport.py][1871] : EOF in transport thread
2025-06-13 12:40:42,980 [DEBUG][Thread-255122 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:40:45,455 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:40:45,456 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:40:51,999 [DEBUG][Thread-255123 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:40:52,789 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 12:40:52,789 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 12:40:52,789 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 12:40:52,792 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 12:40:53,240 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 12, 40, 42), 13.98, 38.04, 0.0, 13.64, 12.34, 0, 0, 0, 2, 0, 0),)
2025-06-13 12:40:53,240 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 12:40:42
2025-06-13 12:40:53,321 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 12:40:53,327 [DEBUG][       Thread-255124][   transport.py][1871] : starting thread (client mode): 0x86351ff0
2025-06-13 12:40:53,327 [DEBUG][       Thread-255124][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 12:40:53,348 [DEBUG][       Thread-255124][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 12:40:53,348 [ INFO][       Thread-255124][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 12:40:53,352 [DEBUG][       Thread-255124][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 12:40:53,352 [DEBUG][       Thread-255124][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 12:40:53,352 [DEBUG][       Thread-255124][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 12:40:53,352 [DEBUG][       Thread-255124][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:40:53,352 [DEBUG][       Thread-255124][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:40:53,352 [DEBUG][       Thread-255124][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:40:53,352 [DEBUG][       Thread-255124][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:40:53,352 [DEBUG][       Thread-255124][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 12:40:53,352 [DEBUG][       Thread-255124][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 12:40:53,352 [DEBUG][       Thread-255124][   transport.py][1871] : client lang: <none>
2025-06-13 12:40:53,352 [DEBUG][       Thread-255124][   transport.py][1871] : server lang: <none>
2025-06-13 12:40:53,352 [DEBUG][       Thread-255124][   transport.py][1871] : kex follows: False
2025-06-13 12:40:53,352 [DEBUG][       Thread-255124][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 12:40:53,352 [DEBUG][       Thread-255124][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 12:40:53,352 [DEBUG][       Thread-255124][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 12:40:53,352 [DEBUG][       Thread-255124][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 12:40:53,352 [DEBUG][       Thread-255124][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 12:40:53,352 [DEBUG][       Thread-255124][   transport.py][1871] : Compression: none
2025-06-13 12:40:53,352 [DEBUG][       Thread-255124][   transport.py][1871] : === End of kex handshake ===
2025-06-13 12:40:53,369 [DEBUG][       Thread-255124][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 12:40:53,369 [DEBUG][       Thread-255124][   transport.py][1871] : Switch to new keys ...
2025-06-13 12:40:53,370 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 12:40:53,370 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 12:40:53,370 [DEBUG][       Thread-255124][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 12:40:53,371 [DEBUG][       Thread-255124][   transport.py][1871] : userauth is OK
2025-06-13 12:40:53,396 [ INFO][       Thread-255124][   transport.py][1871] : Authentication (password) successful!
2025-06-13 12:40:53,396 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 12:40:54,069 [DEBUG][       Thread-255124][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 12:40:54,069 [DEBUG][       Thread-255124][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 12:40:54,113 [DEBUG][       Thread-255124][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 12:40:54,113 [DEBUG][       Thread-255124][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 12:40:54,117 [DEBUG][       Thread-255124][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 12:40:54,130 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 12:40:54,130 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 12:40:54,132 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 12:40:54,134 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 12:40:54,140 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 12:40:54,142 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 12:40:54,142 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 12:40:54,143 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 12:40:54,143 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.444382 -999.00  +12.00  13.41     41   -0.50 1 1 1 1 1   888    0 14.13 64.00 ----- 14.4 13.4 45.4 17.1 16.8 -28.9 15.4 -30.6 15.2 -29.0 16.6 -26.7
2025-06-13 12:40:54,143 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 12:40:54,144 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 12:40:54,144 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.444382
2025-06-13 12:40:54,144 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 12:40:54,145 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 12:40:54,145 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 12:40:54,145 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 12:40:54,145 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 12:40:54,145 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T12:40:42', tmtdew=13.98, humidity=38.04, cloud=0.0, wind=13.64, temperature=12.34, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T10:39:54.605', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 12:40:54,146 [DEBUG][       Thread-255124][   transport.py][1871] : EOF in transport thread
2025-06-13 12:40:54,228 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 12:40:54,239 [DEBUG][       Thread-255127][   transport.py][1871] : starting thread (client mode): 0xc54b6c20
2025-06-13 12:40:54,239 [DEBUG][       Thread-255127][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 12:40:54,256 [DEBUG][       Thread-255127][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 12:40:54,256 [ INFO][       Thread-255127][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 12:40:54,264 [DEBUG][       Thread-255127][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 12:40:54,264 [DEBUG][       Thread-255127][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 12:40:54,264 [DEBUG][       Thread-255127][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 12:40:54,264 [DEBUG][       Thread-255127][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:40:54,265 [DEBUG][       Thread-255127][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:40:54,265 [DEBUG][       Thread-255127][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:40:54,265 [DEBUG][       Thread-255127][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:40:54,265 [DEBUG][       Thread-255127][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 12:40:54,265 [DEBUG][       Thread-255127][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 12:40:54,265 [DEBUG][       Thread-255127][   transport.py][1871] : client lang: <none>
2025-06-13 12:40:54,265 [DEBUG][       Thread-255127][   transport.py][1871] : server lang: <none>
2025-06-13 12:40:54,265 [DEBUG][       Thread-255127][   transport.py][1871] : kex follows: False
2025-06-13 12:40:54,265 [DEBUG][       Thread-255127][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 12:40:54,265 [DEBUG][       Thread-255127][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 12:40:54,265 [DEBUG][       Thread-255127][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 12:40:54,265 [DEBUG][       Thread-255127][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 12:40:54,265 [DEBUG][       Thread-255127][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 12:40:54,265 [DEBUG][       Thread-255127][   transport.py][1871] : Compression: none
2025-06-13 12:40:54,265 [DEBUG][       Thread-255127][   transport.py][1871] : === End of kex handshake ===
2025-06-13 12:40:54,325 [DEBUG][       Thread-255127][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 12:40:54,326 [DEBUG][       Thread-255127][   transport.py][1871] : Switch to new keys ...
2025-06-13 12:40:54,326 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 12:40:54,327 [DEBUG][       Thread-255127][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 12:40:54,328 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 12:40:54,385 [DEBUG][       Thread-255127][   transport.py][1871] : userauth is OK
2025-06-13 12:40:54,385 [DEBUG][       Thread-255127][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 12:40:54,385 [DEBUG][       Thread-255127][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 12:40:54,385 [DEBUG][       Thread-255127][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 12:40:54,385 [DEBUG][       Thread-255127][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 12:40:54,404 [ INFO][       Thread-255127][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 12:40:54,405 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 12:40:54,405 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 12:40:55,403 [DEBUG][       Thread-255127][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 12:40:55,403 [DEBUG][       Thread-255127][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 12:40:55,456 [DEBUG][       Thread-255127][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 12:40:55,457 [DEBUG][       Thread-255127][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 12:40:55,466 [DEBUG][       Thread-255127][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 12:40:55,475 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 12:40:55,475 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 12:40:55,485 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 12:40:55,494 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 12:40:55,494 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 12:40:55,495 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 12:40:55,503 [DEBUG][       Thread-255127][   transport.py][1871] : EOF in transport thread
2025-06-13 12:41:01,021 [DEBUG][Thread-255129 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:41:05,505 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 12:41:05,506 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 12:41:05,506 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 12:41:05,509 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 12:41:05,957 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 12, 40, 42), 13.98, 38.04, 0.0, 13.64, 12.34, 0, 0, 0, 2, 0, 0),)
2025-06-13 12:41:05,957 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 12:40:42
2025-06-13 12:41:06,039 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 12:41:06,043 [DEBUG][       Thread-255130][   transport.py][1871] : starting thread (client mode): 0x86353340
2025-06-13 12:41:06,043 [DEBUG][       Thread-255130][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 12:41:06,065 [DEBUG][       Thread-255130][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 12:41:06,065 [ INFO][       Thread-255130][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 12:41:06,069 [DEBUG][       Thread-255130][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 12:41:06,069 [DEBUG][       Thread-255130][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 12:41:06,069 [DEBUG][       Thread-255130][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 12:41:06,069 [DEBUG][       Thread-255130][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:41:06,069 [DEBUG][       Thread-255130][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:41:06,069 [DEBUG][       Thread-255130][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:41:06,069 [DEBUG][       Thread-255130][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:41:06,069 [DEBUG][       Thread-255130][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 12:41:06,069 [DEBUG][       Thread-255130][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 12:41:06,069 [DEBUG][       Thread-255130][   transport.py][1871] : client lang: <none>
2025-06-13 12:41:06,069 [DEBUG][       Thread-255130][   transport.py][1871] : server lang: <none>
2025-06-13 12:41:06,069 [DEBUG][       Thread-255130][   transport.py][1871] : kex follows: False
2025-06-13 12:41:06,069 [DEBUG][       Thread-255130][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 12:41:06,069 [DEBUG][       Thread-255130][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 12:41:06,069 [DEBUG][       Thread-255130][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 12:41:06,069 [DEBUG][       Thread-255130][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 12:41:06,069 [DEBUG][       Thread-255130][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 12:41:06,069 [DEBUG][       Thread-255130][   transport.py][1871] : Compression: none
2025-06-13 12:41:06,069 [DEBUG][       Thread-255130][   transport.py][1871] : === End of kex handshake ===
2025-06-13 12:41:06,078 [DEBUG][       Thread-255130][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 12:41:06,078 [DEBUG][       Thread-255130][   transport.py][1871] : Switch to new keys ...
2025-06-13 12:41:06,079 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 12:41:06,079 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 12:41:06,080 [DEBUG][       Thread-255130][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 12:41:06,081 [DEBUG][       Thread-255130][   transport.py][1871] : userauth is OK
2025-06-13 12:41:06,105 [ INFO][       Thread-255130][   transport.py][1871] : Authentication (password) successful!
2025-06-13 12:41:06,106 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 12:41:06,704 [DEBUG][       Thread-255130][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 12:41:06,704 [DEBUG][       Thread-255130][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 12:41:06,745 [DEBUG][       Thread-255130][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 12:41:06,745 [DEBUG][       Thread-255130][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 12:41:06,749 [DEBUG][       Thread-255130][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 12:41:06,763 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 12:41:06,764 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 12:41:06,766 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 12:41:06,768 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 12:41:06,773 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 12:41:06,775 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 12:41:06,775 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 12:41:06,776 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 12:41:06,776 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.444729 -999.00  +12.10  15.24     41   -0.40 1 1 1 1 1   888    0 14.09 64.56 ----- 16.8 15.2 47.6 17.1 16.8 -28.5 15.5 -30.1 15.2 -29.2 16.7 -26.4
2025-06-13 12:41:06,776 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 12:41:06,776 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 12:41:06,776 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.444729
2025-06-13 12:41:06,777 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 12:41:06,777 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 12:41:06,777 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 12:41:06,777 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 12:41:06,777 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 12:41:06,778 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T12:40:42', tmtdew=13.98, humidity=38.04, cloud=0.0, wind=13.64, temperature=12.34, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T10:40:24.586', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 12:41:06,778 [DEBUG][       Thread-255130][   transport.py][1871] : EOF in transport thread
2025-06-13 12:41:06,862 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 12:41:06,876 [DEBUG][       Thread-255133][   transport.py][1871] : starting thread (client mode): 0x868938b0
2025-06-13 12:41:06,876 [DEBUG][       Thread-255133][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 12:41:06,891 [DEBUG][       Thread-255133][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 12:41:06,891 [ INFO][       Thread-255133][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 12:41:06,899 [DEBUG][       Thread-255133][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 12:41:06,899 [DEBUG][       Thread-255133][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 12:41:06,899 [DEBUG][       Thread-255133][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 12:41:06,899 [DEBUG][       Thread-255133][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:41:06,899 [DEBUG][       Thread-255133][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:41:06,899 [DEBUG][       Thread-255133][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:41:06,899 [DEBUG][       Thread-255133][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:41:06,899 [DEBUG][       Thread-255133][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 12:41:06,899 [DEBUG][       Thread-255133][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 12:41:06,900 [DEBUG][       Thread-255133][   transport.py][1871] : client lang: <none>
2025-06-13 12:41:06,900 [DEBUG][       Thread-255133][   transport.py][1871] : server lang: <none>
2025-06-13 12:41:06,900 [DEBUG][       Thread-255133][   transport.py][1871] : kex follows: False
2025-06-13 12:41:06,900 [DEBUG][       Thread-255133][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 12:41:06,900 [DEBUG][       Thread-255133][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 12:41:06,900 [DEBUG][       Thread-255133][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 12:41:06,900 [DEBUG][       Thread-255133][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 12:41:06,900 [DEBUG][       Thread-255133][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 12:41:06,900 [DEBUG][       Thread-255133][   transport.py][1871] : Compression: none
2025-06-13 12:41:06,900 [DEBUG][       Thread-255133][   transport.py][1871] : === End of kex handshake ===
2025-06-13 12:41:06,961 [DEBUG][       Thread-255133][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 12:41:06,962 [DEBUG][       Thread-255133][   transport.py][1871] : Switch to new keys ...
2025-06-13 12:41:06,962 [DEBUG][       Thread-255133][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 12:41:06,963 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 12:41:06,963 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 12:41:07,020 [DEBUG][       Thread-255133][   transport.py][1871] : userauth is OK
2025-06-13 12:41:07,020 [DEBUG][       Thread-255133][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 12:41:07,021 [DEBUG][       Thread-255133][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 12:41:07,021 [DEBUG][       Thread-255133][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 12:41:07,021 [DEBUG][       Thread-255133][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 12:41:07,040 [ INFO][       Thread-255133][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 12:41:07,040 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 12:41:07,041 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 12:41:08,079 [DEBUG][       Thread-255133][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 12:41:08,079 [DEBUG][       Thread-255133][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 12:41:08,127 [DEBUG][       Thread-255133][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 12:41:08,127 [DEBUG][       Thread-255133][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 12:41:08,136 [DEBUG][       Thread-255133][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 12:41:08,146 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 12:41:08,146 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 12:41:08,155 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 12:41:08,164 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 12:41:08,164 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 12:41:08,164 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 12:41:08,173 [DEBUG][       Thread-255133][   transport.py][1871] : EOF in transport thread
2025-06-13 12:41:10,059 [DEBUG][Thread-255135 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:41:12,811 [DEBUG][Thread-255136 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:41:18,174 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 12:41:18,174 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 12:41:18,174 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 12:41:18,175 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 12:41:18,633 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 12, 41, 14), 13.86, 38.34, 0.0, 19.23, 12.36, 0, 0, 0, 2, 0, 0),)
2025-06-13 12:41:18,633 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 12:41:14
2025-06-13 12:41:18,721 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 12:41:18,727 [DEBUG][       Thread-255137][   transport.py][1871] : starting thread (client mode): 0x867ffdf0
2025-06-13 12:41:18,728 [DEBUG][       Thread-255137][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 12:41:18,747 [DEBUG][       Thread-255137][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 12:41:18,747 [ INFO][       Thread-255137][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 12:41:18,751 [DEBUG][       Thread-255137][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 12:41:18,751 [DEBUG][       Thread-255137][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 12:41:18,751 [DEBUG][       Thread-255137][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 12:41:18,751 [DEBUG][       Thread-255137][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:41:18,751 [DEBUG][       Thread-255137][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:41:18,751 [DEBUG][       Thread-255137][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:41:18,751 [DEBUG][       Thread-255137][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:41:18,751 [DEBUG][       Thread-255137][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 12:41:18,751 [DEBUG][       Thread-255137][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 12:41:18,751 [DEBUG][       Thread-255137][   transport.py][1871] : client lang: <none>
2025-06-13 12:41:18,751 [DEBUG][       Thread-255137][   transport.py][1871] : server lang: <none>
2025-06-13 12:41:18,751 [DEBUG][       Thread-255137][   transport.py][1871] : kex follows: False
2025-06-13 12:41:18,751 [DEBUG][       Thread-255137][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 12:41:18,751 [DEBUG][       Thread-255137][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 12:41:18,751 [DEBUG][       Thread-255137][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 12:41:18,751 [DEBUG][       Thread-255137][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 12:41:18,751 [DEBUG][       Thread-255137][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 12:41:18,751 [DEBUG][       Thread-255137][   transport.py][1871] : Compression: none
2025-06-13 12:41:18,751 [DEBUG][       Thread-255137][   transport.py][1871] : === End of kex handshake ===
2025-06-13 12:41:18,766 [DEBUG][       Thread-255137][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 12:41:18,767 [DEBUG][       Thread-255137][   transport.py][1871] : Switch to new keys ...
2025-06-13 12:41:18,767 [DEBUG][       Thread-255137][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 12:41:18,767 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 12:41:18,767 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 12:41:18,767 [DEBUG][       Thread-255137][   transport.py][1871] : userauth is OK
2025-06-13 12:41:18,780 [ INFO][       Thread-255137][   transport.py][1871] : Authentication (password) successful!
2025-06-13 12:41:18,780 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 12:41:19,077 [DEBUG][Thread-255139 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:41:19,425 [DEBUG][       Thread-255137][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 12:41:19,425 [DEBUG][       Thread-255137][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 12:41:19,468 [DEBUG][       Thread-255137][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 12:41:19,468 [DEBUG][       Thread-255137][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 12:41:19,471 [DEBUG][       Thread-255137][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 12:41:19,484 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 12:41:19,484 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 12:41:19,485 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 12:41:19,486 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 12:41:19,489 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 12:41:19,490 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 12:41:19,490 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 12:41:19,491 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 12:41:19,491 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.444729 -999.00  +12.10  15.24     41   -0.40 1 1 1 1 1   888    0 14.09 64.56 ----- 16.8 15.2 47.6 17.1 16.8 -28.5 15.5 -30.1 15.2 -29.2 16.7 -26.4
2025-06-13 12:41:19,491 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 12:41:19,491 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 12:41:19,491 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.444729
2025-06-13 12:41:19,491 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 12:41:19,491 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 12:41:19,491 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 12:41:19,491 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 12:41:19,491 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 12:41:19,491 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T12:41:14', tmtdew=13.86, humidity=38.34, cloud=0.0, wind=19.23, temperature=12.36, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T10:40:24.586', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 12:41:19,492 [DEBUG][       Thread-255137][   transport.py][1871] : EOF in transport thread
2025-06-13 12:41:19,563 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 12:41:19,575 [DEBUG][       Thread-255141][   transport.py][1871] : starting thread (client mode): 0x863ee020
2025-06-13 12:41:19,575 [DEBUG][       Thread-255141][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 12:41:19,592 [DEBUG][       Thread-255141][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 12:41:19,592 [ INFO][       Thread-255141][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 12:41:19,599 [DEBUG][       Thread-255141][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 12:41:19,599 [DEBUG][       Thread-255141][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 12:41:19,599 [DEBUG][       Thread-255141][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 12:41:19,599 [DEBUG][       Thread-255141][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:41:19,599 [DEBUG][       Thread-255141][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:41:19,599 [DEBUG][       Thread-255141][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:41:19,599 [DEBUG][       Thread-255141][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:41:19,599 [DEBUG][       Thread-255141][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 12:41:19,599 [DEBUG][       Thread-255141][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 12:41:19,599 [DEBUG][       Thread-255141][   transport.py][1871] : client lang: <none>
2025-06-13 12:41:19,599 [DEBUG][       Thread-255141][   transport.py][1871] : server lang: <none>
2025-06-13 12:41:19,599 [DEBUG][       Thread-255141][   transport.py][1871] : kex follows: False
2025-06-13 12:41:19,599 [DEBUG][       Thread-255141][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 12:41:19,599 [DEBUG][       Thread-255141][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 12:41:19,599 [DEBUG][       Thread-255141][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 12:41:19,599 [DEBUG][       Thread-255141][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 12:41:19,599 [DEBUG][       Thread-255141][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 12:41:19,599 [DEBUG][       Thread-255141][   transport.py][1871] : Compression: none
2025-06-13 12:41:19,599 [DEBUG][       Thread-255141][   transport.py][1871] : === End of kex handshake ===
2025-06-13 12:41:19,655 [DEBUG][       Thread-255141][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 12:41:19,655 [DEBUG][       Thread-255141][   transport.py][1871] : Switch to new keys ...
2025-06-13 12:41:19,655 [DEBUG][       Thread-255141][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 12:41:19,655 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 12:41:19,655 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 12:41:19,715 [DEBUG][       Thread-255141][   transport.py][1871] : userauth is OK
2025-06-13 12:41:19,715 [DEBUG][       Thread-255141][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 12:41:19,715 [DEBUG][       Thread-255141][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 12:41:19,715 [DEBUG][       Thread-255141][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 12:41:19,715 [DEBUG][       Thread-255141][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 12:41:19,729 [ INFO][       Thread-255141][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 12:41:19,729 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 12:41:19,729 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 12:41:20,917 [DEBUG][       Thread-255141][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 12:41:20,917 [DEBUG][       Thread-255141][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 12:41:20,968 [DEBUG][       Thread-255141][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 12:41:20,968 [DEBUG][       Thread-255141][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 12:41:20,978 [DEBUG][       Thread-255141][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 12:41:20,987 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 12:41:20,987 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 12:41:20,996 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 12:41:21,005 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 12:41:21,006 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 12:41:21,006 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 12:41:21,014 [DEBUG][       Thread-255141][   transport.py][1871] : EOF in transport thread
2025-06-13 12:41:28,098 [DEBUG][Thread-255143 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:41:31,017 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 12:41:31,017 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 12:41:31,017 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 12:41:31,021 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 12:41:31,478 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 12, 41, 14), 13.86, 38.34, 0.0, 19.23, 12.36, 0, 0, 0, 2, 0, 0),)
2025-06-13 12:41:31,478 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 12:41:14
2025-06-13 12:41:31,561 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 12:41:31,567 [DEBUG][       Thread-255144][   transport.py][1871] : starting thread (client mode): 0x863cbeb0
2025-06-13 12:41:31,567 [DEBUG][       Thread-255144][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 12:41:31,586 [DEBUG][       Thread-255144][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 12:41:31,586 [ INFO][       Thread-255144][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 12:41:31,589 [DEBUG][       Thread-255144][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 12:41:31,589 [DEBUG][       Thread-255144][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 12:41:31,589 [DEBUG][       Thread-255144][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 12:41:31,589 [DEBUG][       Thread-255144][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:41:31,589 [DEBUG][       Thread-255144][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:41:31,589 [DEBUG][       Thread-255144][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:41:31,589 [DEBUG][       Thread-255144][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:41:31,589 [DEBUG][       Thread-255144][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 12:41:31,589 [DEBUG][       Thread-255144][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 12:41:31,589 [DEBUG][       Thread-255144][   transport.py][1871] : client lang: <none>
2025-06-13 12:41:31,589 [DEBUG][       Thread-255144][   transport.py][1871] : server lang: <none>
2025-06-13 12:41:31,589 [DEBUG][       Thread-255144][   transport.py][1871] : kex follows: False
2025-06-13 12:41:31,590 [DEBUG][       Thread-255144][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 12:41:31,590 [DEBUG][       Thread-255144][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 12:41:31,590 [DEBUG][       Thread-255144][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 12:41:31,590 [DEBUG][       Thread-255144][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 12:41:31,590 [DEBUG][       Thread-255144][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 12:41:31,590 [DEBUG][       Thread-255144][   transport.py][1871] : Compression: none
2025-06-13 12:41:31,590 [DEBUG][       Thread-255144][   transport.py][1871] : === End of kex handshake ===
2025-06-13 12:41:31,598 [DEBUG][       Thread-255144][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 12:41:31,598 [DEBUG][       Thread-255144][   transport.py][1871] : Switch to new keys ...
2025-06-13 12:41:31,599 [DEBUG][       Thread-255144][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 12:41:31,599 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 12:41:31,599 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 12:41:31,600 [DEBUG][       Thread-255144][   transport.py][1871] : userauth is OK
2025-06-13 12:41:31,625 [ INFO][       Thread-255144][   transport.py][1871] : Authentication (password) successful!
2025-06-13 12:41:31,625 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 12:41:32,226 [DEBUG][       Thread-255144][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 12:41:32,226 [DEBUG][       Thread-255144][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 12:41:32,269 [DEBUG][       Thread-255144][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 12:41:32,269 [DEBUG][       Thread-255144][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 12:41:32,273 [DEBUG][       Thread-255144][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 12:41:32,281 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 12:41:32,281 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 12:41:32,283 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 12:41:32,285 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 12:41:32,290 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 12:41:32,292 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 12:41:32,293 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 12:41:32,293 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 12:41:32,293 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.445424 -999.00  +12.10  19.38     42   -0.30 1 1 1 1 1   888    0 14.37 75.31 ----- 15.8 19.4 42.8 22.4 16.8 -29.0 15.5 -30.5 15.2 -29.7 16.8 -26.8
2025-06-13 12:41:32,293 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 12:41:32,294 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 12:41:32,294 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.445424
2025-06-13 12:41:32,294 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 12:41:32,295 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 12:41:32,295 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 12:41:32,295 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 12:41:32,295 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 12:41:32,295 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T12:41:14', tmtdew=13.86, humidity=38.34, cloud=0.0, wind=19.23, temperature=12.36, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T10:41:24.634', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 12:41:32,295 [DEBUG][       Thread-255144][   transport.py][1871] : EOF in transport thread
2025-06-13 12:41:32,379 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 12:41:32,390 [DEBUG][       Thread-255147][   transport.py][1871] : starting thread (client mode): 0x863a59c0
2025-06-13 12:41:32,390 [DEBUG][       Thread-255147][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 12:41:32,409 [DEBUG][       Thread-255147][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 12:41:32,409 [ INFO][       Thread-255147][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 12:41:32,419 [DEBUG][       Thread-255147][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 12:41:32,419 [DEBUG][       Thread-255147][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 12:41:32,419 [DEBUG][       Thread-255147][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 12:41:32,419 [DEBUG][       Thread-255147][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:41:32,419 [DEBUG][       Thread-255147][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:41:32,419 [DEBUG][       Thread-255147][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:41:32,419 [DEBUG][       Thread-255147][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:41:32,419 [DEBUG][       Thread-255147][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 12:41:32,419 [DEBUG][       Thread-255147][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 12:41:32,420 [DEBUG][       Thread-255147][   transport.py][1871] : client lang: <none>
2025-06-13 12:41:32,420 [DEBUG][       Thread-255147][   transport.py][1871] : server lang: <none>
2025-06-13 12:41:32,420 [DEBUG][       Thread-255147][   transport.py][1871] : kex follows: False
2025-06-13 12:41:32,420 [DEBUG][       Thread-255147][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 12:41:32,420 [DEBUG][       Thread-255147][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 12:41:32,420 [DEBUG][       Thread-255147][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 12:41:32,420 [DEBUG][       Thread-255147][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 12:41:32,420 [DEBUG][       Thread-255147][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 12:41:32,420 [DEBUG][       Thread-255147][   transport.py][1871] : Compression: none
2025-06-13 12:41:32,420 [DEBUG][       Thread-255147][   transport.py][1871] : === End of kex handshake ===
2025-06-13 12:41:32,479 [DEBUG][       Thread-255147][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 12:41:32,480 [DEBUG][       Thread-255147][   transport.py][1871] : Switch to new keys ...
2025-06-13 12:41:32,480 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 12:41:32,481 [DEBUG][       Thread-255147][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 12:41:32,482 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 12:41:32,544 [DEBUG][       Thread-255147][   transport.py][1871] : userauth is OK
2025-06-13 12:41:32,545 [DEBUG][       Thread-255147][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 12:41:32,545 [DEBUG][       Thread-255147][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 12:41:32,545 [DEBUG][       Thread-255147][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 12:41:32,545 [DEBUG][       Thread-255147][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 12:41:32,565 [ INFO][       Thread-255147][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 12:41:32,566 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 12:41:32,566 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 12:41:33,631 [DEBUG][       Thread-255147][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 12:41:33,631 [DEBUG][       Thread-255147][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 12:41:33,682 [DEBUG][       Thread-255147][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 12:41:33,682 [DEBUG][       Thread-255147][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 12:41:33,693 [DEBUG][       Thread-255147][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 12:41:33,704 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 12:41:33,705 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 12:41:33,714 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 12:41:33,723 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 12:41:33,724 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 12:41:33,724 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 12:41:33,733 [DEBUG][       Thread-255147][   transport.py][1871] : EOF in transport thread
2025-06-13 12:41:37,143 [DEBUG][Thread-255149 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:41:42,184 [DEBUG][Thread-255150 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:41:43,257 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:41:43,258 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:41:43,735 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 12:41:43,735 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 12:41:43,735 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 12:41:43,738 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 12:41:44,194 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 12, 41, 14), 13.86, 38.34, 0.0, 19.23, 12.36, 0, 0, 0, 2, 0, 0),)
2025-06-13 12:41:44,195 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 12:41:14
2025-06-13 12:41:44,276 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 12:41:44,282 [DEBUG][       Thread-255151][   transport.py][1871] : starting thread (client mode): 0x8636b2e0
2025-06-13 12:41:44,282 [DEBUG][       Thread-255151][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 12:41:44,302 [DEBUG][       Thread-255151][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 12:41:44,302 [ INFO][       Thread-255151][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 12:41:44,305 [DEBUG][       Thread-255151][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 12:41:44,306 [DEBUG][       Thread-255151][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 12:41:44,306 [DEBUG][       Thread-255151][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 12:41:44,306 [DEBUG][       Thread-255151][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:41:44,306 [DEBUG][       Thread-255151][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:41:44,306 [DEBUG][       Thread-255151][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:41:44,306 [DEBUG][       Thread-255151][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:41:44,306 [DEBUG][       Thread-255151][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 12:41:44,306 [DEBUG][       Thread-255151][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 12:41:44,306 [DEBUG][       Thread-255151][   transport.py][1871] : client lang: <none>
2025-06-13 12:41:44,306 [DEBUG][       Thread-255151][   transport.py][1871] : server lang: <none>
2025-06-13 12:41:44,306 [DEBUG][       Thread-255151][   transport.py][1871] : kex follows: False
2025-06-13 12:41:44,306 [DEBUG][       Thread-255151][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 12:41:44,306 [DEBUG][       Thread-255151][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 12:41:44,306 [DEBUG][       Thread-255151][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 12:41:44,306 [DEBUG][       Thread-255151][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 12:41:44,306 [DEBUG][       Thread-255151][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 12:41:44,306 [DEBUG][       Thread-255151][   transport.py][1871] : Compression: none
2025-06-13 12:41:44,306 [DEBUG][       Thread-255151][   transport.py][1871] : === End of kex handshake ===
2025-06-13 12:41:44,323 [DEBUG][       Thread-255151][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 12:41:44,323 [DEBUG][       Thread-255151][   transport.py][1871] : Switch to new keys ...
2025-06-13 12:41:44,324 [DEBUG][       Thread-255151][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 12:41:44,324 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 12:41:44,324 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 12:41:44,325 [DEBUG][       Thread-255151][   transport.py][1871] : userauth is OK
2025-06-13 12:41:44,339 [ INFO][       Thread-255151][   transport.py][1871] : Authentication (password) successful!
2025-06-13 12:41:44,339 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 12:41:44,991 [DEBUG][       Thread-255151][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 12:41:44,991 [DEBUG][       Thread-255151][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 12:41:45,033 [DEBUG][       Thread-255151][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 12:41:45,033 [DEBUG][       Thread-255151][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 12:41:45,036 [DEBUG][       Thread-255151][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 12:41:45,048 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 12:41:45,048 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 12:41:45,050 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 12:41:45,052 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 12:41:45,057 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 12:41:45,059 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 12:41:45,059 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 12:41:45,060 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 12:41:45,060 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.445424 -999.00  +12.10  19.38     42   -0.30 1 1 1 1 1   888    0 14.37 75.31 ----- 15.8 19.4 42.8 22.4 16.8 -29.0 15.5 -30.5 15.2 -29.7 16.8 -26.8
2025-06-13 12:41:45,060 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 12:41:45,060 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 12:41:45,060 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.445424
2025-06-13 12:41:45,061 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 12:41:45,061 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 12:41:45,061 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 12:41:45,061 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 12:41:45,061 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 12:41:45,061 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T12:41:14', tmtdew=13.86, humidity=38.34, cloud=0.0, wind=19.23, temperature=12.36, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T10:41:24.634', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 12:41:45,062 [DEBUG][       Thread-255151][   transport.py][1871] : EOF in transport thread
2025-06-13 12:41:45,142 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 12:41:45,155 [DEBUG][       Thread-255154][   transport.py][1871] : starting thread (client mode): 0x8636b130
2025-06-13 12:41:45,155 [DEBUG][       Thread-255154][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 12:41:45,169 [DEBUG][       Thread-255154][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 12:41:45,169 [ INFO][       Thread-255154][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 12:41:45,177 [DEBUG][       Thread-255154][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 12:41:45,177 [DEBUG][       Thread-255154][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 12:41:45,177 [DEBUG][       Thread-255154][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 12:41:45,177 [DEBUG][       Thread-255154][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:41:45,177 [DEBUG][       Thread-255154][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:41:45,177 [DEBUG][       Thread-255154][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:41:45,177 [DEBUG][       Thread-255154][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:41:45,177 [DEBUG][       Thread-255154][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 12:41:45,177 [DEBUG][       Thread-255154][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 12:41:45,177 [DEBUG][       Thread-255154][   transport.py][1871] : client lang: <none>
2025-06-13 12:41:45,178 [DEBUG][       Thread-255154][   transport.py][1871] : server lang: <none>
2025-06-13 12:41:45,178 [DEBUG][       Thread-255154][   transport.py][1871] : kex follows: False
2025-06-13 12:41:45,178 [DEBUG][       Thread-255154][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 12:41:45,178 [DEBUG][       Thread-255154][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 12:41:45,178 [DEBUG][       Thread-255154][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 12:41:45,178 [DEBUG][       Thread-255154][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 12:41:45,178 [DEBUG][       Thread-255154][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 12:41:45,178 [DEBUG][       Thread-255154][   transport.py][1871] : Compression: none
2025-06-13 12:41:45,178 [DEBUG][       Thread-255154][   transport.py][1871] : === End of kex handshake ===
2025-06-13 12:41:45,238 [DEBUG][       Thread-255154][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 12:41:45,239 [DEBUG][       Thread-255154][   transport.py][1871] : Switch to new keys ...
2025-06-13 12:41:45,239 [DEBUG][       Thread-255154][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 12:41:45,240 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 12:41:45,240 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 12:41:45,296 [DEBUG][       Thread-255154][   transport.py][1871] : userauth is OK
2025-06-13 12:41:45,296 [DEBUG][       Thread-255154][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 12:41:45,296 [DEBUG][       Thread-255154][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 12:41:45,296 [DEBUG][       Thread-255154][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 12:41:45,296 [DEBUG][       Thread-255154][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 12:41:45,315 [ INFO][       Thread-255154][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 12:41:45,316 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 12:41:45,316 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 12:41:45,593 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:41:45,594 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:41:46,164 [DEBUG][Thread-255156 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:41:46,315 [DEBUG][       Thread-255154][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 12:41:46,315 [DEBUG][       Thread-255154][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 12:41:46,363 [DEBUG][       Thread-255154][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 12:41:46,364 [DEBUG][       Thread-255154][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 12:41:46,373 [DEBUG][       Thread-255154][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 12:41:46,381 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 12:41:46,381 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 12:41:46,389 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 12:41:46,396 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 12:41:46,396 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 12:41:46,396 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 12:41:46,406 [DEBUG][       Thread-255154][   transport.py][1871] : EOF in transport thread
2025-06-13 12:41:55,188 [DEBUG][Thread-255157 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:41:56,406 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 12:41:56,407 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 12:41:56,407 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 12:41:56,407 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 12:41:56,873 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 12, 41, 45), 13.86, 38.35, 0.0, 18.56, 12.41, 0, 0, 0, 2, 0, 0),)
2025-06-13 12:41:56,873 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 12:41:45
2025-06-13 12:41:56,961 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 12:41:56,965 [DEBUG][       Thread-255158][   transport.py][1871] : starting thread (client mode): 0x86369d20
2025-06-13 12:41:56,965 [DEBUG][       Thread-255158][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 12:41:56,985 [DEBUG][       Thread-255158][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 12:41:56,985 [ INFO][       Thread-255158][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 12:41:56,988 [DEBUG][       Thread-255158][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 12:41:56,989 [DEBUG][       Thread-255158][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 12:41:56,989 [DEBUG][       Thread-255158][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 12:41:56,989 [DEBUG][       Thread-255158][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:41:56,989 [DEBUG][       Thread-255158][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:41:56,989 [DEBUG][       Thread-255158][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:41:56,989 [DEBUG][       Thread-255158][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:41:56,989 [DEBUG][       Thread-255158][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 12:41:56,989 [DEBUG][       Thread-255158][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 12:41:56,989 [DEBUG][       Thread-255158][   transport.py][1871] : client lang: <none>
2025-06-13 12:41:56,989 [DEBUG][       Thread-255158][   transport.py][1871] : server lang: <none>
2025-06-13 12:41:56,989 [DEBUG][       Thread-255158][   transport.py][1871] : kex follows: False
2025-06-13 12:41:56,989 [DEBUG][       Thread-255158][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 12:41:56,989 [DEBUG][       Thread-255158][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 12:41:56,989 [DEBUG][       Thread-255158][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 12:41:56,989 [DEBUG][       Thread-255158][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 12:41:56,989 [DEBUG][       Thread-255158][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 12:41:56,989 [DEBUG][       Thread-255158][   transport.py][1871] : Compression: none
2025-06-13 12:41:56,989 [DEBUG][       Thread-255158][   transport.py][1871] : === End of kex handshake ===
2025-06-13 12:41:57,003 [DEBUG][       Thread-255158][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 12:41:57,004 [DEBUG][       Thread-255158][   transport.py][1871] : Switch to new keys ...
2025-06-13 12:41:57,004 [DEBUG][       Thread-255158][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 12:41:57,004 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 12:41:57,004 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 12:41:57,004 [DEBUG][       Thread-255158][   transport.py][1871] : userauth is OK
2025-06-13 12:41:57,017 [ INFO][       Thread-255158][   transport.py][1871] : Authentication (password) successful!
2025-06-13 12:41:57,017 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 12:41:57,665 [DEBUG][       Thread-255158][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 12:41:57,665 [DEBUG][       Thread-255158][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 12:41:57,708 [DEBUG][       Thread-255158][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 12:41:57,708 [DEBUG][       Thread-255158][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 12:41:57,711 [DEBUG][       Thread-255158][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 12:41:57,725 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 12:41:57,725 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 12:41:57,726 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 12:41:57,727 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 12:41:57,730 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 12:41:57,731 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 12:41:57,731 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 12:41:57,731 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 12:41:57,731 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.445424 -999.00  +12.10  19.38     42   -0.30 1 1 1 1 1   888    0 14.37 75.31 ----- 15.8 19.4 42.8 22.4 16.8 -29.0 15.5 -30.5 15.2 -29.7 16.8 -26.8
2025-06-13 12:41:57,731 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 12:41:57,731 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 12:41:57,731 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.445424
2025-06-13 12:41:57,731 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 12:41:57,731 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 12:41:57,731 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 12:41:57,731 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 12:41:57,731 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 12:41:57,731 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T12:41:45', tmtdew=13.86, humidity=38.35, cloud=0.0, wind=18.56, temperature=12.41, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T10:41:24.634', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 12:41:57,732 [DEBUG][       Thread-255158][   transport.py][1871] : EOF in transport thread
2025-06-13 12:41:57,804 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 12:41:57,814 [DEBUG][       Thread-255161][   transport.py][1871] : starting thread (client mode): 0x863a4cd0
2025-06-13 12:41:57,814 [DEBUG][       Thread-255161][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 12:41:57,829 [DEBUG][       Thread-255161][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 12:41:57,829 [ INFO][       Thread-255161][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 12:41:57,838 [DEBUG][       Thread-255161][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 12:41:57,838 [DEBUG][       Thread-255161][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 12:41:57,838 [DEBUG][       Thread-255161][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 12:41:57,838 [DEBUG][       Thread-255161][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:41:57,838 [DEBUG][       Thread-255161][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:41:57,838 [DEBUG][       Thread-255161][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:41:57,838 [DEBUG][       Thread-255161][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:41:57,838 [DEBUG][       Thread-255161][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 12:41:57,838 [DEBUG][       Thread-255161][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 12:41:57,838 [DEBUG][       Thread-255161][   transport.py][1871] : client lang: <none>
2025-06-13 12:41:57,838 [DEBUG][       Thread-255161][   transport.py][1871] : server lang: <none>
2025-06-13 12:41:57,838 [DEBUG][       Thread-255161][   transport.py][1871] : kex follows: False
2025-06-13 12:41:57,838 [DEBUG][       Thread-255161][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 12:41:57,838 [DEBUG][       Thread-255161][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 12:41:57,838 [DEBUG][       Thread-255161][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 12:41:57,838 [DEBUG][       Thread-255161][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 12:41:57,838 [DEBUG][       Thread-255161][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 12:41:57,838 [DEBUG][       Thread-255161][   transport.py][1871] : Compression: none
2025-06-13 12:41:57,838 [DEBUG][       Thread-255161][   transport.py][1871] : === End of kex handshake ===
2025-06-13 12:41:57,894 [DEBUG][       Thread-255161][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 12:41:57,895 [DEBUG][       Thread-255161][   transport.py][1871] : Switch to new keys ...
2025-06-13 12:41:57,895 [DEBUG][       Thread-255161][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 12:41:57,895 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 12:41:57,895 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 12:41:57,952 [DEBUG][       Thread-255161][   transport.py][1871] : userauth is OK
2025-06-13 12:41:57,952 [DEBUG][       Thread-255161][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 12:41:57,952 [DEBUG][       Thread-255161][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 12:41:57,952 [DEBUG][       Thread-255161][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 12:41:57,952 [DEBUG][       Thread-255161][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 12:41:57,966 [ INFO][       Thread-255161][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 12:41:57,966 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 12:41:57,966 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 12:41:58,985 [DEBUG][       Thread-255161][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 12:41:58,986 [DEBUG][       Thread-255161][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 12:41:59,036 [DEBUG][       Thread-255161][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 12:41:59,036 [DEBUG][       Thread-255161][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 12:41:59,045 [DEBUG][       Thread-255161][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 12:41:59,054 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 12:41:59,055 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 12:41:59,063 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 12:41:59,073 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 12:41:59,073 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 12:41:59,074 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 12:41:59,082 [DEBUG][       Thread-255161][   transport.py][1871] : EOF in transport thread
2025-06-13 12:42:04,207 [DEBUG][Thread-255163 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:42:09,084 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 12:42:09,085 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 12:42:09,085 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 12:42:09,088 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 12:42:09,554 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 12, 41, 45), 13.86, 38.35, 0.0, 18.56, 12.41, 0, 0, 0, 2, 0, 0),)
2025-06-13 12:42:09,554 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 12:41:45
2025-06-13 12:42:09,635 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 12:42:09,640 [DEBUG][       Thread-255164][   transport.py][1871] : starting thread (client mode): 0x86350670
2025-06-13 12:42:09,640 [DEBUG][       Thread-255164][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 12:42:09,662 [DEBUG][       Thread-255164][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 12:42:09,662 [ INFO][       Thread-255164][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 12:42:09,665 [DEBUG][       Thread-255164][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 12:42:09,665 [DEBUG][       Thread-255164][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 12:42:09,665 [DEBUG][       Thread-255164][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 12:42:09,665 [DEBUG][       Thread-255164][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:42:09,665 [DEBUG][       Thread-255164][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:42:09,665 [DEBUG][       Thread-255164][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:42:09,665 [DEBUG][       Thread-255164][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:42:09,665 [DEBUG][       Thread-255164][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 12:42:09,665 [DEBUG][       Thread-255164][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 12:42:09,665 [DEBUG][       Thread-255164][   transport.py][1871] : client lang: <none>
2025-06-13 12:42:09,665 [DEBUG][       Thread-255164][   transport.py][1871] : server lang: <none>
2025-06-13 12:42:09,665 [DEBUG][       Thread-255164][   transport.py][1871] : kex follows: False
2025-06-13 12:42:09,665 [DEBUG][       Thread-255164][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 12:42:09,666 [DEBUG][       Thread-255164][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 12:42:09,666 [DEBUG][       Thread-255164][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 12:42:09,666 [DEBUG][       Thread-255164][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 12:42:09,666 [DEBUG][       Thread-255164][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 12:42:09,666 [DEBUG][       Thread-255164][   transport.py][1871] : Compression: none
2025-06-13 12:42:09,666 [DEBUG][       Thread-255164][   transport.py][1871] : === End of kex handshake ===
2025-06-13 12:42:09,683 [DEBUG][       Thread-255164][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 12:42:09,683 [DEBUG][       Thread-255164][   transport.py][1871] : Switch to new keys ...
2025-06-13 12:42:09,684 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 12:42:09,684 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 12:42:09,685 [DEBUG][       Thread-255164][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 12:42:09,685 [DEBUG][       Thread-255164][   transport.py][1871] : userauth is OK
2025-06-13 12:42:09,710 [ INFO][       Thread-255164][   transport.py][1871] : Authentication (password) successful!
2025-06-13 12:42:09,711 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 12:42:10,342 [DEBUG][       Thread-255164][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 12:42:10,342 [DEBUG][       Thread-255164][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 12:42:10,385 [DEBUG][       Thread-255164][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 12:42:10,385 [DEBUG][       Thread-255164][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 12:42:10,388 [DEBUG][       Thread-255164][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 12:42:10,401 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 12:42:10,402 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 12:42:10,403 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 12:42:10,405 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 12:42:10,411 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 12:42:10,413 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 12:42:10,414 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 12:42:10,414 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 12:42:10,414 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.445771 -999.00  +12.10  16.87     42   -0.30 1 1 1 1 1   888    0 14.27 73.04 ----- 19.6 16.9 58.0 22.8 16.9 -28.5 15.6 -30.4 15.2 -29.1 16.7 -26.9
2025-06-13 12:42:10,415 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 12:42:10,415 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 12:42:10,415 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.445771
2025-06-13 12:42:10,415 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 12:42:10,416 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 12:42:10,416 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 12:42:10,416 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 12:42:10,416 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 12:42:10,416 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T12:41:45', tmtdew=13.86, humidity=38.35, cloud=0.0, wind=18.56, temperature=12.41, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T10:41:54.614', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 12:42:10,416 [DEBUG][       Thread-255164][   transport.py][1871] : EOF in transport thread
2025-06-13 12:42:10,500 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 12:42:10,512 [DEBUG][       Thread-255167][   transport.py][1871] : starting thread (client mode): 0x86369f60
2025-06-13 12:42:10,512 [DEBUG][       Thread-255167][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 12:42:10,527 [DEBUG][       Thread-255167][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 12:42:10,527 [ INFO][       Thread-255167][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 12:42:10,535 [DEBUG][       Thread-255167][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 12:42:10,535 [DEBUG][       Thread-255167][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 12:42:10,535 [DEBUG][       Thread-255167][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 12:42:10,535 [DEBUG][       Thread-255167][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:42:10,535 [DEBUG][       Thread-255167][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:42:10,535 [DEBUG][       Thread-255167][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:42:10,535 [DEBUG][       Thread-255167][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:42:10,535 [DEBUG][       Thread-255167][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 12:42:10,535 [DEBUG][       Thread-255167][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 12:42:10,535 [DEBUG][       Thread-255167][   transport.py][1871] : client lang: <none>
2025-06-13 12:42:10,535 [DEBUG][       Thread-255167][   transport.py][1871] : server lang: <none>
2025-06-13 12:42:10,535 [DEBUG][       Thread-255167][   transport.py][1871] : kex follows: False
2025-06-13 12:42:10,535 [DEBUG][       Thread-255167][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 12:42:10,535 [DEBUG][       Thread-255167][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 12:42:10,536 [DEBUG][       Thread-255167][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 12:42:10,536 [DEBUG][       Thread-255167][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 12:42:10,536 [DEBUG][       Thread-255167][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 12:42:10,536 [DEBUG][       Thread-255167][   transport.py][1871] : Compression: none
2025-06-13 12:42:10,536 [DEBUG][       Thread-255167][   transport.py][1871] : === End of kex handshake ===
2025-06-13 12:42:10,594 [DEBUG][       Thread-255167][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 12:42:10,594 [DEBUG][       Thread-255167][   transport.py][1871] : Switch to new keys ...
2025-06-13 12:42:10,595 [DEBUG][       Thread-255167][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 12:42:10,595 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 12:42:10,595 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 12:42:10,652 [DEBUG][       Thread-255167][   transport.py][1871] : userauth is OK
2025-06-13 12:42:10,652 [DEBUG][       Thread-255167][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 12:42:10,653 [DEBUG][       Thread-255167][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 12:42:10,653 [DEBUG][       Thread-255167][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 12:42:10,653 [DEBUG][       Thread-255167][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 12:42:10,675 [ INFO][       Thread-255167][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 12:42:10,676 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 12:42:10,676 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 12:42:11,707 [DEBUG][       Thread-255167][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 12:42:11,707 [DEBUG][       Thread-255167][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 12:42:11,756 [DEBUG][       Thread-255167][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 12:42:11,757 [DEBUG][       Thread-255167][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 12:42:11,769 [DEBUG][       Thread-255167][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 12:42:11,780 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 12:42:11,781 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 12:42:11,789 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 12:42:11,799 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 12:42:11,799 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 12:42:11,800 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 12:42:11,808 [DEBUG][       Thread-255167][   transport.py][1871] : EOF in transport thread
2025-06-13 12:42:12,863 [DEBUG][Thread-255169 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:42:13,241 [DEBUG][Thread-255170 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:42:21,804 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 12:42:21,805 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 12:42:21,805 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 12:42:21,807 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 12:42:22,260 [DEBUG][Thread-255171 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:42:22,268 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 12, 42, 17), 13.93, 38.25, 0.0, 13.55, 12.28, 0, 0, 0, 2, 0, 0),)
2025-06-13 12:42:22,268 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 12:42:17
2025-06-13 12:42:22,349 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 12:42:22,354 [DEBUG][       Thread-255172][   transport.py][1871] : starting thread (client mode): 0x863529b0
2025-06-13 12:42:22,354 [DEBUG][       Thread-255172][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 12:42:22,374 [DEBUG][       Thread-255172][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 12:42:22,374 [ INFO][       Thread-255172][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 12:42:22,377 [DEBUG][       Thread-255172][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 12:42:22,377 [DEBUG][       Thread-255172][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 12:42:22,377 [DEBUG][       Thread-255172][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 12:42:22,378 [DEBUG][       Thread-255172][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:42:22,378 [DEBUG][       Thread-255172][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:42:22,378 [DEBUG][       Thread-255172][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:42:22,378 [DEBUG][       Thread-255172][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:42:22,378 [DEBUG][       Thread-255172][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 12:42:22,378 [DEBUG][       Thread-255172][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 12:42:22,378 [DEBUG][       Thread-255172][   transport.py][1871] : client lang: <none>
2025-06-13 12:42:22,378 [DEBUG][       Thread-255172][   transport.py][1871] : server lang: <none>
2025-06-13 12:42:22,378 [DEBUG][       Thread-255172][   transport.py][1871] : kex follows: False
2025-06-13 12:42:22,378 [DEBUG][       Thread-255172][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 12:42:22,378 [DEBUG][       Thread-255172][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 12:42:22,378 [DEBUG][       Thread-255172][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 12:42:22,378 [DEBUG][       Thread-255172][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 12:42:22,378 [DEBUG][       Thread-255172][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 12:42:22,378 [DEBUG][       Thread-255172][   transport.py][1871] : Compression: none
2025-06-13 12:42:22,378 [DEBUG][       Thread-255172][   transport.py][1871] : === End of kex handshake ===
2025-06-13 12:42:22,394 [DEBUG][       Thread-255172][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 12:42:22,395 [DEBUG][       Thread-255172][   transport.py][1871] : Switch to new keys ...
2025-06-13 12:42:22,395 [DEBUG][       Thread-255172][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 12:42:22,396 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 12:42:22,396 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 12:42:22,397 [DEBUG][       Thread-255172][   transport.py][1871] : userauth is OK
2025-06-13 12:42:22,422 [ INFO][       Thread-255172][   transport.py][1871] : Authentication (password) successful!
2025-06-13 12:42:22,423 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 12:42:23,059 [DEBUG][       Thread-255172][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 12:42:23,059 [DEBUG][       Thread-255172][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 12:42:23,101 [DEBUG][       Thread-255172][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 12:42:23,101 [DEBUG][       Thread-255172][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 12:42:23,105 [DEBUG][       Thread-255172][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 12:42:23,115 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 12:42:23,116 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 12:42:23,118 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 12:42:23,120 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 12:42:23,126 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 12:42:23,128 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 12:42:23,128 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 12:42:23,129 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 12:42:23,129 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.445771 -999.00  +12.10  16.87     42   -0.30 1 1 1 1 1   888    0 14.27 73.04 ----- 19.6 16.9 58.0 22.8 16.9 -28.5 15.6 -30.4 15.2 -29.1 16.7 -26.9
2025-06-13 12:42:23,129 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 12:42:23,129 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 12:42:23,129 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.445771
2025-06-13 12:42:23,129 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 12:42:23,130 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 12:42:23,130 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 12:42:23,130 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 12:42:23,130 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 12:42:23,130 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T12:42:17', tmtdew=13.93, humidity=38.25, cloud=0.0, wind=13.55, temperature=12.28, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T10:41:54.614', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 12:42:23,132 [DEBUG][       Thread-255172][   transport.py][1871] : EOF in transport thread
2025-06-13 12:42:23,213 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 12:42:23,223 [DEBUG][       Thread-255175][   transport.py][1871] : starting thread (client mode): 0x86893df0
2025-06-13 12:42:23,223 [DEBUG][       Thread-255175][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 12:42:23,243 [DEBUG][       Thread-255175][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 12:42:23,243 [ INFO][       Thread-255175][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 12:42:23,251 [DEBUG][       Thread-255175][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 12:42:23,251 [DEBUG][       Thread-255175][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 12:42:23,251 [DEBUG][       Thread-255175][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 12:42:23,251 [DEBUG][       Thread-255175][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:42:23,251 [DEBUG][       Thread-255175][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:42:23,251 [DEBUG][       Thread-255175][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:42:23,251 [DEBUG][       Thread-255175][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:42:23,251 [DEBUG][       Thread-255175][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 12:42:23,251 [DEBUG][       Thread-255175][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 12:42:23,252 [DEBUG][       Thread-255175][   transport.py][1871] : client lang: <none>
2025-06-13 12:42:23,252 [DEBUG][       Thread-255175][   transport.py][1871] : server lang: <none>
2025-06-13 12:42:23,252 [DEBUG][       Thread-255175][   transport.py][1871] : kex follows: False
2025-06-13 12:42:23,252 [DEBUG][       Thread-255175][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 12:42:23,252 [DEBUG][       Thread-255175][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 12:42:23,252 [DEBUG][       Thread-255175][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 12:42:23,252 [DEBUG][       Thread-255175][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 12:42:23,252 [DEBUG][       Thread-255175][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 12:42:23,252 [DEBUG][       Thread-255175][   transport.py][1871] : Compression: none
2025-06-13 12:42:23,252 [DEBUG][       Thread-255175][   transport.py][1871] : === End of kex handshake ===
2025-06-13 12:42:23,308 [DEBUG][       Thread-255175][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 12:42:23,308 [DEBUG][       Thread-255175][   transport.py][1871] : Switch to new keys ...
2025-06-13 12:42:23,309 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 12:42:23,310 [DEBUG][       Thread-255175][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 12:42:23,310 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 12:42:23,365 [DEBUG][       Thread-255175][   transport.py][1871] : userauth is OK
2025-06-13 12:42:23,365 [DEBUG][       Thread-255175][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 12:42:23,365 [DEBUG][       Thread-255175][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 12:42:23,365 [DEBUG][       Thread-255175][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 12:42:23,365 [DEBUG][       Thread-255175][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 12:42:23,384 [ INFO][       Thread-255175][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 12:42:23,384 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 12:42:23,384 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 12:42:24,424 [DEBUG][       Thread-255175][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 12:42:24,424 [DEBUG][       Thread-255175][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 12:42:24,472 [DEBUG][       Thread-255175][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 12:42:24,472 [DEBUG][       Thread-255175][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 12:42:24,481 [DEBUG][       Thread-255175][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 12:42:24,490 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 12:42:24,491 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 12:42:24,500 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 12:42:24,509 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 12:42:24,509 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 12:42:24,510 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 12:42:24,518 [DEBUG][       Thread-255175][   transport.py][1871] : EOF in transport thread
2025-06-13 12:42:31,280 [DEBUG][Thread-255177 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:42:34,520 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 12:42:34,520 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 12:42:34,520 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 12:42:34,521 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 12:42:35,004 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 12, 42, 17), 13.93, 38.25, 0.0, 13.55, 12.28, 0, 0, 0, 2, 0, 0),)
2025-06-13 12:42:35,004 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 12:42:17
2025-06-13 12:42:35,089 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 12:42:35,093 [DEBUG][       Thread-255178][   transport.py][1871] : starting thread (client mode): 0x86350910
2025-06-13 12:42:35,093 [DEBUG][       Thread-255178][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 12:42:35,114 [DEBUG][       Thread-255178][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 12:42:35,114 [ INFO][       Thread-255178][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 12:42:35,117 [DEBUG][       Thread-255178][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 12:42:35,117 [DEBUG][       Thread-255178][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 12:42:35,118 [DEBUG][       Thread-255178][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 12:42:35,118 [DEBUG][       Thread-255178][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:42:35,118 [DEBUG][       Thread-255178][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:42:35,118 [DEBUG][       Thread-255178][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:42:35,118 [DEBUG][       Thread-255178][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:42:35,118 [DEBUG][       Thread-255178][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 12:42:35,118 [DEBUG][       Thread-255178][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 12:42:35,118 [DEBUG][       Thread-255178][   transport.py][1871] : client lang: <none>
2025-06-13 12:42:35,118 [DEBUG][       Thread-255178][   transport.py][1871] : server lang: <none>
2025-06-13 12:42:35,118 [DEBUG][       Thread-255178][   transport.py][1871] : kex follows: False
2025-06-13 12:42:35,118 [DEBUG][       Thread-255178][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 12:42:35,118 [DEBUG][       Thread-255178][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 12:42:35,118 [DEBUG][       Thread-255178][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 12:42:35,118 [DEBUG][       Thread-255178][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 12:42:35,118 [DEBUG][       Thread-255178][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 12:42:35,118 [DEBUG][       Thread-255178][   transport.py][1871] : Compression: none
2025-06-13 12:42:35,118 [DEBUG][       Thread-255178][   transport.py][1871] : === End of kex handshake ===
2025-06-13 12:42:35,132 [DEBUG][       Thread-255178][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 12:42:35,132 [DEBUG][       Thread-255178][   transport.py][1871] : Switch to new keys ...
2025-06-13 12:42:35,132 [DEBUG][       Thread-255178][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 12:42:35,132 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 12:42:35,132 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 12:42:35,175 [DEBUG][       Thread-255178][   transport.py][1871] : userauth is OK
2025-06-13 12:42:35,221 [ INFO][       Thread-255178][   transport.py][1871] : Authentication (password) successful!
2025-06-13 12:42:35,222 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 12:42:35,869 [DEBUG][       Thread-255178][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 12:42:35,869 [DEBUG][       Thread-255178][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 12:42:35,912 [DEBUG][       Thread-255178][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 12:42:35,912 [DEBUG][       Thread-255178][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 12:42:35,915 [DEBUG][       Thread-255178][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 12:42:35,926 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 12:42:35,927 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 12:42:35,928 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 12:42:35,929 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 12:42:35,932 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 12:42:35,933 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 12:42:35,933 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 12:42:35,933 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 12:42:35,933 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.445771 -999.00  +12.10  16.87     42   -0.30 1 1 1 1 1   888    0 14.27 73.04 ----- 19.6 16.9 58.0 22.8 16.9 -28.5 15.6 -30.4 15.2 -29.1 16.7 -26.9
2025-06-13 12:42:35,933 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 12:42:35,933 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 12:42:35,934 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.445771
2025-06-13 12:42:35,934 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 12:42:35,934 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 12:42:35,934 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 12:42:35,934 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 12:42:35,934 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 12:42:35,934 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T12:42:17', tmtdew=13.93, humidity=38.25, cloud=0.0, wind=13.55, temperature=12.28, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T10:41:54.614', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 12:42:35,935 [DEBUG][       Thread-255178][   transport.py][1871] : EOF in transport thread
2025-06-13 12:42:36,007 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 12:42:36,020 [DEBUG][       Thread-255181][   transport.py][1871] : starting thread (client mode): 0x86893df0
2025-06-13 12:42:36,020 [DEBUG][       Thread-255181][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 12:42:36,035 [DEBUG][       Thread-255181][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 12:42:36,035 [ INFO][       Thread-255181][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 12:42:36,043 [DEBUG][       Thread-255181][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 12:42:36,043 [DEBUG][       Thread-255181][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 12:42:36,043 [DEBUG][       Thread-255181][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 12:42:36,043 [DEBUG][       Thread-255181][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:42:36,043 [DEBUG][       Thread-255181][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:42:36,043 [DEBUG][       Thread-255181][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:42:36,043 [DEBUG][       Thread-255181][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:42:36,043 [DEBUG][       Thread-255181][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 12:42:36,043 [DEBUG][       Thread-255181][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 12:42:36,043 [DEBUG][       Thread-255181][   transport.py][1871] : client lang: <none>
2025-06-13 12:42:36,043 [DEBUG][       Thread-255181][   transport.py][1871] : server lang: <none>
2025-06-13 12:42:36,043 [DEBUG][       Thread-255181][   transport.py][1871] : kex follows: False
2025-06-13 12:42:36,043 [DEBUG][       Thread-255181][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 12:42:36,043 [DEBUG][       Thread-255181][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 12:42:36,043 [DEBUG][       Thread-255181][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 12:42:36,043 [DEBUG][       Thread-255181][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 12:42:36,043 [DEBUG][       Thread-255181][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 12:42:36,043 [DEBUG][       Thread-255181][   transport.py][1871] : Compression: none
2025-06-13 12:42:36,043 [DEBUG][       Thread-255181][   transport.py][1871] : === End of kex handshake ===
2025-06-13 12:42:36,100 [DEBUG][       Thread-255181][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 12:42:36,100 [DEBUG][       Thread-255181][   transport.py][1871] : Switch to new keys ...
2025-06-13 12:42:36,101 [DEBUG][       Thread-255181][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 12:42:36,101 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 12:42:36,101 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 12:42:36,156 [DEBUG][       Thread-255181][   transport.py][1871] : userauth is OK
2025-06-13 12:42:36,156 [DEBUG][       Thread-255181][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 12:42:36,156 [DEBUG][       Thread-255181][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 12:42:36,156 [DEBUG][       Thread-255181][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 12:42:36,156 [DEBUG][       Thread-255181][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 12:42:36,170 [ INFO][       Thread-255181][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 12:42:36,170 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 12:42:36,170 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 12:42:37,183 [DEBUG][       Thread-255181][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 12:42:37,183 [DEBUG][       Thread-255181][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 12:42:37,232 [DEBUG][       Thread-255181][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 12:42:37,232 [DEBUG][       Thread-255181][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 12:42:37,242 [DEBUG][       Thread-255181][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 12:42:37,251 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 12:42:37,251 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 12:42:37,261 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 12:42:37,270 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 12:42:37,270 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 12:42:37,271 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 12:42:37,280 [DEBUG][       Thread-255181][   transport.py][1871] : EOF in transport thread
2025-06-13 12:42:40,320 [DEBUG][Thread-255183 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:42:43,330 [DEBUG][Thread-255184 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:42:44,382 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:42:44,384 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:42:45,731 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:42:45,733 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:42:47,281 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 12:42:47,281 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 12:42:47,281 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 12:42:47,284 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 12:42:47,759 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 12, 42, 17), 13.93, 38.25, 0.0, 13.55, 12.28, 0, 0, 0, 2, 0, 0),)
2025-06-13 12:42:47,759 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 12:42:17
2025-06-13 12:42:47,839 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 12:42:47,843 [DEBUG][       Thread-255185][   transport.py][1871] : starting thread (client mode): 0x867fc430
2025-06-13 12:42:47,844 [DEBUG][       Thread-255185][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 12:42:47,864 [DEBUG][       Thread-255185][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 12:42:47,864 [ INFO][       Thread-255185][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 12:42:47,865 [DEBUG][       Thread-255185][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 12:42:47,865 [DEBUG][       Thread-255185][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 12:42:47,865 [DEBUG][       Thread-255185][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 12:42:47,865 [DEBUG][       Thread-255185][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:42:47,865 [DEBUG][       Thread-255185][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:42:47,865 [DEBUG][       Thread-255185][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:42:47,865 [DEBUG][       Thread-255185][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:42:47,865 [DEBUG][       Thread-255185][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 12:42:47,865 [DEBUG][       Thread-255185][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 12:42:47,865 [DEBUG][       Thread-255185][   transport.py][1871] : client lang: <none>
2025-06-13 12:42:47,865 [DEBUG][       Thread-255185][   transport.py][1871] : server lang: <none>
2025-06-13 12:42:47,865 [DEBUG][       Thread-255185][   transport.py][1871] : kex follows: False
2025-06-13 12:42:47,865 [DEBUG][       Thread-255185][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 12:42:47,865 [DEBUG][       Thread-255185][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 12:42:47,866 [DEBUG][       Thread-255185][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 12:42:47,866 [DEBUG][       Thread-255185][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 12:42:47,866 [DEBUG][       Thread-255185][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 12:42:47,866 [DEBUG][       Thread-255185][   transport.py][1871] : Compression: none
2025-06-13 12:42:47,866 [DEBUG][       Thread-255185][   transport.py][1871] : === End of kex handshake ===
2025-06-13 12:42:47,884 [DEBUG][       Thread-255185][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 12:42:47,885 [DEBUG][       Thread-255185][   transport.py][1871] : Switch to new keys ...
2025-06-13 12:42:47,885 [DEBUG][       Thread-255185][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 12:42:47,885 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 12:42:47,886 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 12:42:47,887 [DEBUG][       Thread-255185][   transport.py][1871] : userauth is OK
2025-06-13 12:42:47,911 [ INFO][       Thread-255185][   transport.py][1871] : Authentication (password) successful!
2025-06-13 12:42:47,912 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 12:42:48,559 [DEBUG][       Thread-255185][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 12:42:48,560 [DEBUG][       Thread-255185][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 12:42:48,601 [DEBUG][       Thread-255185][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 12:42:48,601 [DEBUG][       Thread-255185][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 12:42:48,604 [DEBUG][       Thread-255185][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 12:42:48,617 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 12:42:48,618 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 12:42:48,619 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 12:42:48,620 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 12:42:48,625 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 12:42:48,626 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 12:42:48,627 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 12:42:48,627 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 12:42:48,627 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.446118 -999.00  +12.30  19.56     42   -0.10 1 1 1 1 1   888    0 13.96 64.66 ----- 19.7 19.6 40.8 21.2 16.9 -28.3 15.6 -30.8 15.3 -27.7 16.8 -27.2
2025-06-13 12:42:48,627 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 12:42:48,628 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 12:42:48,628 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.446118
2025-06-13 12:42:48,628 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 12:42:48,629 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 12:42:48,629 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 12:42:48,629 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 12:42:48,629 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 12:42:48,629 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T12:42:17', tmtdew=13.93, humidity=38.25, cloud=0.0, wind=13.55, temperature=12.28, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T10:42:24.595', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 12:42:48,630 [DEBUG][       Thread-255185][   transport.py][1871] : EOF in transport thread
2025-06-13 12:42:48,712 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 12:42:48,723 [DEBUG][       Thread-255188][   transport.py][1871] : starting thread (client mode): 0x863cae90
2025-06-13 12:42:48,723 [DEBUG][       Thread-255188][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 12:42:48,739 [DEBUG][       Thread-255188][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 12:42:48,739 [ INFO][       Thread-255188][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 12:42:48,746 [DEBUG][       Thread-255188][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 12:42:48,746 [DEBUG][       Thread-255188][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 12:42:48,746 [DEBUG][       Thread-255188][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 12:42:48,746 [DEBUG][       Thread-255188][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:42:48,746 [DEBUG][       Thread-255188][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:42:48,747 [DEBUG][       Thread-255188][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:42:48,747 [DEBUG][       Thread-255188][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:42:48,747 [DEBUG][       Thread-255188][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 12:42:48,747 [DEBUG][       Thread-255188][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 12:42:48,747 [DEBUG][       Thread-255188][   transport.py][1871] : client lang: <none>
2025-06-13 12:42:48,747 [DEBUG][       Thread-255188][   transport.py][1871] : server lang: <none>
2025-06-13 12:42:48,747 [DEBUG][       Thread-255188][   transport.py][1871] : kex follows: False
2025-06-13 12:42:48,747 [DEBUG][       Thread-255188][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 12:42:48,747 [DEBUG][       Thread-255188][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 12:42:48,747 [DEBUG][       Thread-255188][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 12:42:48,747 [DEBUG][       Thread-255188][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 12:42:48,747 [DEBUG][       Thread-255188][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 12:42:48,747 [DEBUG][       Thread-255188][   transport.py][1871] : Compression: none
2025-06-13 12:42:48,747 [DEBUG][       Thread-255188][   transport.py][1871] : === End of kex handshake ===
2025-06-13 12:42:48,811 [DEBUG][       Thread-255188][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 12:42:48,811 [DEBUG][       Thread-255188][   transport.py][1871] : Switch to new keys ...
2025-06-13 12:42:48,812 [DEBUG][       Thread-255188][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 12:42:48,812 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 12:42:48,812 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 12:42:48,868 [DEBUG][       Thread-255188][   transport.py][1871] : userauth is OK
2025-06-13 12:42:48,869 [DEBUG][       Thread-255188][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 12:42:48,869 [DEBUG][       Thread-255188][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 12:42:48,869 [DEBUG][       Thread-255188][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 12:42:48,869 [DEBUG][       Thread-255188][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 12:42:48,888 [ INFO][       Thread-255188][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 12:42:48,888 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 12:42:48,889 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 12:42:49,339 [DEBUG][Thread-255190 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:42:49,958 [DEBUG][       Thread-255188][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 12:42:49,958 [DEBUG][       Thread-255188][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 12:42:50,007 [DEBUG][       Thread-255188][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 12:42:50,007 [DEBUG][       Thread-255188][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 12:42:50,016 [DEBUG][       Thread-255188][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 12:42:50,024 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 12:42:50,024 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 12:42:50,032 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 12:42:50,040 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 12:42:50,040 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 12:42:50,040 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 12:42:50,048 [DEBUG][       Thread-255188][   transport.py][1871] : EOF in transport thread
2025-06-13 12:42:58,358 [DEBUG][Thread-255191 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:43:00,041 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 12:43:00,041 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 12:43:00,041 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 12:43:00,043 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 12:43:00,500 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 12, 42, 49), 13.84, 38.47, 0.0, 14.86, 12.22, 0, 0, 0, 2, 0, 0),)
2025-06-13 12:43:00,500 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 12:42:49
2025-06-13 12:43:00,582 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 12:43:00,586 [DEBUG][       Thread-255192][   transport.py][1871] : starting thread (client mode): 0x86353370
2025-06-13 12:43:00,586 [DEBUG][       Thread-255192][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 12:43:00,607 [DEBUG][       Thread-255192][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 12:43:00,607 [ INFO][       Thread-255192][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 12:43:00,610 [DEBUG][       Thread-255192][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 12:43:00,610 [DEBUG][       Thread-255192][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 12:43:00,610 [DEBUG][       Thread-255192][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 12:43:00,610 [DEBUG][       Thread-255192][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:43:00,610 [DEBUG][       Thread-255192][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:43:00,610 [DEBUG][       Thread-255192][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:43:00,610 [DEBUG][       Thread-255192][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:43:00,610 [DEBUG][       Thread-255192][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 12:43:00,610 [DEBUG][       Thread-255192][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 12:43:00,610 [DEBUG][       Thread-255192][   transport.py][1871] : client lang: <none>
2025-06-13 12:43:00,610 [DEBUG][       Thread-255192][   transport.py][1871] : server lang: <none>
2025-06-13 12:43:00,610 [DEBUG][       Thread-255192][   transport.py][1871] : kex follows: False
2025-06-13 12:43:00,610 [DEBUG][       Thread-255192][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 12:43:00,610 [DEBUG][       Thread-255192][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 12:43:00,611 [DEBUG][       Thread-255192][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 12:43:00,611 [DEBUG][       Thread-255192][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 12:43:00,611 [DEBUG][       Thread-255192][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 12:43:00,611 [DEBUG][       Thread-255192][   transport.py][1871] : Compression: none
2025-06-13 12:43:00,611 [DEBUG][       Thread-255192][   transport.py][1871] : === End of kex handshake ===
2025-06-13 12:43:00,624 [DEBUG][       Thread-255192][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 12:43:00,624 [DEBUG][       Thread-255192][   transport.py][1871] : Switch to new keys ...
2025-06-13 12:43:00,625 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 12:43:00,625 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 12:43:00,626 [DEBUG][       Thread-255192][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 12:43:00,627 [DEBUG][       Thread-255192][   transport.py][1871] : userauth is OK
2025-06-13 12:43:00,651 [ INFO][       Thread-255192][   transport.py][1871] : Authentication (password) successful!
2025-06-13 12:43:00,652 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 12:43:01,317 [DEBUG][       Thread-255192][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 12:43:01,317 [DEBUG][       Thread-255192][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 12:43:01,361 [DEBUG][       Thread-255192][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 12:43:01,361 [DEBUG][       Thread-255192][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 12:43:01,365 [DEBUG][       Thread-255192][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 12:43:01,372 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 12:43:01,373 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 12:43:01,374 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 12:43:01,376 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 12:43:01,380 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 12:43:01,382 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 12:43:01,382 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 12:43:01,383 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 12:43:01,383 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.446118 -999.00  +12.30  19.56     42   -0.10 1 1 1 1 1   888    0 13.96 64.66 ----- 19.7 19.6 40.8 21.2 16.9 -28.3 15.6 -30.8 15.3 -27.7 16.8 -27.2
2025-06-13 12:43:01,383 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 12:43:01,383 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 12:43:01,383 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.446118
2025-06-13 12:43:01,384 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 12:43:01,384 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 12:43:01,384 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 12:43:01,384 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 12:43:01,385 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 12:43:01,385 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T12:42:49', tmtdew=13.84, humidity=38.47, cloud=0.0, wind=14.86, temperature=12.22, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T10:42:24.595', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 12:43:01,386 [DEBUG][       Thread-255192][   transport.py][1871] : EOF in transport thread
2025-06-13 12:43:01,469 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 12:43:01,481 [DEBUG][       Thread-255195][   transport.py][1871] : starting thread (client mode): 0x863a5b40
2025-06-13 12:43:01,482 [DEBUG][       Thread-255195][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 12:43:01,499 [DEBUG][       Thread-255195][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 12:43:01,499 [ INFO][       Thread-255195][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 12:43:01,506 [DEBUG][       Thread-255195][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 12:43:01,506 [DEBUG][       Thread-255195][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 12:43:01,506 [DEBUG][       Thread-255195][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 12:43:01,506 [DEBUG][       Thread-255195][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:43:01,506 [DEBUG][       Thread-255195][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:43:01,506 [DEBUG][       Thread-255195][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:43:01,506 [DEBUG][       Thread-255195][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:43:01,507 [DEBUG][       Thread-255195][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 12:43:01,507 [DEBUG][       Thread-255195][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 12:43:01,507 [DEBUG][       Thread-255195][   transport.py][1871] : client lang: <none>
2025-06-13 12:43:01,507 [DEBUG][       Thread-255195][   transport.py][1871] : server lang: <none>
2025-06-13 12:43:01,507 [DEBUG][       Thread-255195][   transport.py][1871] : kex follows: False
2025-06-13 12:43:01,507 [DEBUG][       Thread-255195][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 12:43:01,507 [DEBUG][       Thread-255195][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 12:43:01,507 [DEBUG][       Thread-255195][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 12:43:01,507 [DEBUG][       Thread-255195][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 12:43:01,507 [DEBUG][       Thread-255195][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 12:43:01,507 [DEBUG][       Thread-255195][   transport.py][1871] : Compression: none
2025-06-13 12:43:01,507 [DEBUG][       Thread-255195][   transport.py][1871] : === End of kex handshake ===
2025-06-13 12:43:01,568 [DEBUG][       Thread-255195][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 12:43:01,568 [DEBUG][       Thread-255195][   transport.py][1871] : Switch to new keys ...
2025-06-13 12:43:01,569 [DEBUG][       Thread-255195][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 12:43:01,569 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 12:43:01,569 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 12:43:01,628 [DEBUG][       Thread-255195][   transport.py][1871] : userauth is OK
2025-06-13 12:43:01,628 [DEBUG][       Thread-255195][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 12:43:01,628 [DEBUG][       Thread-255195][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 12:43:01,628 [DEBUG][       Thread-255195][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 12:43:01,628 [DEBUG][       Thread-255195][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 12:43:01,648 [ INFO][       Thread-255195][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 12:43:01,648 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 12:43:01,648 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 12:43:02,664 [DEBUG][       Thread-255195][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 12:43:02,665 [DEBUG][       Thread-255195][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 12:43:02,716 [DEBUG][       Thread-255195][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 12:43:02,716 [DEBUG][       Thread-255195][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 12:43:02,734 [DEBUG][       Thread-255195][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 12:43:02,746 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 12:43:02,746 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 12:43:02,755 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 12:43:02,765 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 12:43:02,765 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 12:43:02,766 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 12:43:02,774 [DEBUG][       Thread-255195][   transport.py][1871] : EOF in transport thread
2025-06-13 12:43:07,381 [DEBUG][Thread-255197 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:43:12,776 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 12:43:12,776 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 12:43:12,776 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 12:43:12,777 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 12:43:12,909 [DEBUG][Thread-255198 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:43:13,264 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 12, 42, 49), 13.84, 38.47, 0.0, 14.86, 12.22, 0, 0, 0, 2, 0, 0),)
2025-06-13 12:43:13,264 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 12:42:49
2025-06-13 12:43:13,347 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 12:43:13,353 [DEBUG][       Thread-255199][   transport.py][1871] : starting thread (client mode): 0x863bc1f0
2025-06-13 12:43:13,354 [DEBUG][       Thread-255199][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 12:43:13,375 [DEBUG][       Thread-255199][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 12:43:13,375 [ INFO][       Thread-255199][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 12:43:13,378 [DEBUG][       Thread-255199][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 12:43:13,378 [DEBUG][       Thread-255199][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 12:43:13,378 [DEBUG][       Thread-255199][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 12:43:13,378 [DEBUG][       Thread-255199][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:43:13,378 [DEBUG][       Thread-255199][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:43:13,378 [DEBUG][       Thread-255199][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:43:13,378 [DEBUG][       Thread-255199][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:43:13,378 [DEBUG][       Thread-255199][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 12:43:13,378 [DEBUG][       Thread-255199][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 12:43:13,378 [DEBUG][       Thread-255199][   transport.py][1871] : client lang: <none>
2025-06-13 12:43:13,378 [DEBUG][       Thread-255199][   transport.py][1871] : server lang: <none>
2025-06-13 12:43:13,378 [DEBUG][       Thread-255199][   transport.py][1871] : kex follows: False
2025-06-13 12:43:13,378 [DEBUG][       Thread-255199][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 12:43:13,378 [DEBUG][       Thread-255199][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 12:43:13,378 [DEBUG][       Thread-255199][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 12:43:13,379 [DEBUG][       Thread-255199][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 12:43:13,379 [DEBUG][       Thread-255199][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 12:43:13,379 [DEBUG][       Thread-255199][   transport.py][1871] : Compression: none
2025-06-13 12:43:13,379 [DEBUG][       Thread-255199][   transport.py][1871] : === End of kex handshake ===
2025-06-13 12:43:13,393 [DEBUG][       Thread-255199][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 12:43:13,394 [DEBUG][       Thread-255199][   transport.py][1871] : Switch to new keys ...
2025-06-13 12:43:13,394 [DEBUG][       Thread-255199][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 12:43:13,394 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 12:43:13,394 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 12:43:13,394 [DEBUG][       Thread-255199][   transport.py][1871] : userauth is OK
2025-06-13 12:43:13,419 [ INFO][       Thread-255199][   transport.py][1871] : Authentication (password) successful!
2025-06-13 12:43:13,419 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 12:43:14,079 [DEBUG][       Thread-255199][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 12:43:14,079 [DEBUG][       Thread-255199][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 12:43:14,120 [DEBUG][       Thread-255199][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 12:43:14,120 [DEBUG][       Thread-255199][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 12:43:14,123 [DEBUG][       Thread-255199][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 12:43:14,135 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 12:43:14,135 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 12:43:14,136 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 12:43:14,137 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 12:43:14,140 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 12:43:14,140 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 12:43:14,141 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 12:43:14,141 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 12:43:14,141 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.446465 -999.00  +12.30  16.45     42   -0.00 1 1 1 1 1   888    0 13.97 64.28 ----- 20.8 16.4 44.8 25.3 16.9 -29.0 15.6 -30.1 15.3 -28.2 16.8 -26.9
2025-06-13 12:43:14,141 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 12:43:14,141 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 12:43:14,141 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.446465
2025-06-13 12:43:14,141 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 12:43:14,141 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 12:43:14,141 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 12:43:14,141 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 12:43:14,141 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 12:43:14,141 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T12:42:49', tmtdew=13.84, humidity=38.47, cloud=0.0, wind=14.86, temperature=12.22, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T10:42:54.576', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 12:43:14,142 [DEBUG][       Thread-255199][   transport.py][1871] : EOF in transport thread
2025-06-13 12:43:14,213 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 12:43:14,222 [DEBUG][       Thread-255202][   transport.py][1871] : starting thread (client mode): 0x863694e0
2025-06-13 12:43:14,222 [DEBUG][       Thread-255202][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 12:43:14,238 [DEBUG][       Thread-255202][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 12:43:14,238 [ INFO][       Thread-255202][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 12:43:14,245 [DEBUG][       Thread-255202][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 12:43:14,245 [DEBUG][       Thread-255202][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 12:43:14,245 [DEBUG][       Thread-255202][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 12:43:14,245 [DEBUG][       Thread-255202][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:43:14,245 [DEBUG][       Thread-255202][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:43:14,245 [DEBUG][       Thread-255202][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:43:14,245 [DEBUG][       Thread-255202][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:43:14,245 [DEBUG][       Thread-255202][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 12:43:14,245 [DEBUG][       Thread-255202][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 12:43:14,245 [DEBUG][       Thread-255202][   transport.py][1871] : client lang: <none>
2025-06-13 12:43:14,245 [DEBUG][       Thread-255202][   transport.py][1871] : server lang: <none>
2025-06-13 12:43:14,245 [DEBUG][       Thread-255202][   transport.py][1871] : kex follows: False
2025-06-13 12:43:14,245 [DEBUG][       Thread-255202][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 12:43:14,245 [DEBUG][       Thread-255202][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 12:43:14,245 [DEBUG][       Thread-255202][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 12:43:14,245 [DEBUG][       Thread-255202][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 12:43:14,245 [DEBUG][       Thread-255202][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 12:43:14,245 [DEBUG][       Thread-255202][   transport.py][1871] : Compression: none
2025-06-13 12:43:14,245 [DEBUG][       Thread-255202][   transport.py][1871] : === End of kex handshake ===
2025-06-13 12:43:14,302 [DEBUG][       Thread-255202][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 12:43:14,302 [DEBUG][       Thread-255202][   transport.py][1871] : Switch to new keys ...
2025-06-13 12:43:14,302 [DEBUG][       Thread-255202][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 12:43:14,302 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 12:43:14,302 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 12:43:14,359 [DEBUG][       Thread-255202][   transport.py][1871] : userauth is OK
2025-06-13 12:43:14,359 [DEBUG][       Thread-255202][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 12:43:14,360 [DEBUG][       Thread-255202][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 12:43:14,360 [DEBUG][       Thread-255202][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 12:43:14,360 [DEBUG][       Thread-255202][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 12:43:14,374 [ INFO][       Thread-255202][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 12:43:14,374 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 12:43:14,374 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 12:43:15,398 [DEBUG][       Thread-255202][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 12:43:15,398 [DEBUG][       Thread-255202][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 12:43:15,448 [DEBUG][       Thread-255202][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 12:43:15,448 [DEBUG][       Thread-255202][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 12:43:15,460 [DEBUG][       Thread-255202][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 12:43:15,469 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 12:43:15,469 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 12:43:15,478 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 12:43:15,487 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 12:43:15,488 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 12:43:15,488 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 12:43:15,496 [DEBUG][       Thread-255202][   transport.py][1871] : EOF in transport thread
2025-06-13 12:43:16,415 [DEBUG][Thread-255204 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:43:25,436 [DEBUG][Thread-255205 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:43:25,499 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 12:43:25,499 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 12:43:25,499 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 12:43:25,502 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 12:43:25,964 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 12, 43, 20), 13.81, 38.46, 0.0, 18.35, 12.19, 0, 0, 0, 2, 0, 0),)
2025-06-13 12:43:25,964 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 12:43:20
2025-06-13 12:43:26,045 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 12:43:26,050 [DEBUG][       Thread-255206][   transport.py][1871] : starting thread (client mode): 0x8636bb80
2025-06-13 12:43:26,050 [DEBUG][       Thread-255206][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 12:43:26,071 [DEBUG][       Thread-255206][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 12:43:26,071 [ INFO][       Thread-255206][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 12:43:26,074 [DEBUG][       Thread-255206][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 12:43:26,075 [DEBUG][       Thread-255206][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 12:43:26,075 [DEBUG][       Thread-255206][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 12:43:26,075 [DEBUG][       Thread-255206][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:43:26,075 [DEBUG][       Thread-255206][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:43:26,075 [DEBUG][       Thread-255206][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:43:26,075 [DEBUG][       Thread-255206][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:43:26,075 [DEBUG][       Thread-255206][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 12:43:26,075 [DEBUG][       Thread-255206][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 12:43:26,075 [DEBUG][       Thread-255206][   transport.py][1871] : client lang: <none>
2025-06-13 12:43:26,075 [DEBUG][       Thread-255206][   transport.py][1871] : server lang: <none>
2025-06-13 12:43:26,075 [DEBUG][       Thread-255206][   transport.py][1871] : kex follows: False
2025-06-13 12:43:26,075 [DEBUG][       Thread-255206][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 12:43:26,075 [DEBUG][       Thread-255206][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 12:43:26,075 [DEBUG][       Thread-255206][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 12:43:26,075 [DEBUG][       Thread-255206][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 12:43:26,075 [DEBUG][       Thread-255206][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 12:43:26,075 [DEBUG][       Thread-255206][   transport.py][1871] : Compression: none
2025-06-13 12:43:26,075 [DEBUG][       Thread-255206][   transport.py][1871] : === End of kex handshake ===
2025-06-13 12:43:26,091 [DEBUG][       Thread-255206][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 12:43:26,092 [DEBUG][       Thread-255206][   transport.py][1871] : Switch to new keys ...
2025-06-13 12:43:26,092 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 12:43:26,092 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 12:43:26,093 [DEBUG][       Thread-255206][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 12:43:26,093 [DEBUG][       Thread-255206][   transport.py][1871] : userauth is OK
2025-06-13 12:43:26,118 [ INFO][       Thread-255206][   transport.py][1871] : Authentication (password) successful!
2025-06-13 12:43:26,119 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 12:43:26,796 [DEBUG][       Thread-255206][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 12:43:26,797 [DEBUG][       Thread-255206][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 12:43:26,841 [DEBUG][       Thread-255206][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 12:43:26,841 [DEBUG][       Thread-255206][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 12:43:26,845 [DEBUG][       Thread-255206][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 12:43:26,856 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 12:43:26,857 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 12:43:26,859 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 12:43:26,861 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 12:43:26,867 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 12:43:26,869 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 12:43:26,869 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 12:43:26,870 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 12:43:26,870 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.446465 -999.00  +12.30  16.45     42   -0.00 1 1 1 1 1   888    0 13.97 64.28 ----- 20.8 16.4 44.8 25.3 16.9 -29.0 15.6 -30.1 15.3 -28.2 16.8 -26.9
2025-06-13 12:43:26,870 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 12:43:26,870 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 12:43:26,870 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.446465
2025-06-13 12:43:26,871 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 12:43:26,871 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 12:43:26,871 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 12:43:26,871 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 12:43:26,871 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 12:43:26,872 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T12:43:20', tmtdew=13.81, humidity=38.46, cloud=0.0, wind=18.35, temperature=12.19, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T10:42:54.576', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 12:43:26,872 [DEBUG][       Thread-255206][   transport.py][1871] : EOF in transport thread
2025-06-13 12:43:26,955 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 12:43:26,965 [DEBUG][       Thread-255209][   transport.py][1871] : starting thread (client mode): 0x86893df0
2025-06-13 12:43:26,965 [DEBUG][       Thread-255209][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 12:43:26,980 [DEBUG][       Thread-255209][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 12:43:26,980 [ INFO][       Thread-255209][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 12:43:26,988 [DEBUG][       Thread-255209][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 12:43:26,988 [DEBUG][       Thread-255209][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 12:43:26,988 [DEBUG][       Thread-255209][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 12:43:26,988 [DEBUG][       Thread-255209][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:43:26,988 [DEBUG][       Thread-255209][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:43:26,988 [DEBUG][       Thread-255209][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:43:26,988 [DEBUG][       Thread-255209][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:43:26,988 [DEBUG][       Thread-255209][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 12:43:26,988 [DEBUG][       Thread-255209][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 12:43:26,988 [DEBUG][       Thread-255209][   transport.py][1871] : client lang: <none>
2025-06-13 12:43:26,988 [DEBUG][       Thread-255209][   transport.py][1871] : server lang: <none>
2025-06-13 12:43:26,988 [DEBUG][       Thread-255209][   transport.py][1871] : kex follows: False
2025-06-13 12:43:26,988 [DEBUG][       Thread-255209][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 12:43:26,988 [DEBUG][       Thread-255209][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 12:43:26,988 [DEBUG][       Thread-255209][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 12:43:26,988 [DEBUG][       Thread-255209][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 12:43:26,988 [DEBUG][       Thread-255209][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 12:43:26,989 [DEBUG][       Thread-255209][   transport.py][1871] : Compression: none
2025-06-13 12:43:26,989 [DEBUG][       Thread-255209][   transport.py][1871] : === End of kex handshake ===
2025-06-13 12:43:27,048 [DEBUG][       Thread-255209][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 12:43:27,049 [DEBUG][       Thread-255209][   transport.py][1871] : Switch to new keys ...
2025-06-13 12:43:27,049 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 12:43:27,050 [DEBUG][       Thread-255209][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 12:43:27,050 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 12:43:27,104 [DEBUG][       Thread-255209][   transport.py][1871] : userauth is OK
2025-06-13 12:43:27,105 [DEBUG][       Thread-255209][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 12:43:27,105 [DEBUG][       Thread-255209][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 12:43:27,105 [DEBUG][       Thread-255209][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 12:43:27,105 [DEBUG][       Thread-255209][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 12:43:27,132 [ INFO][       Thread-255209][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 12:43:27,133 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 12:43:27,133 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 12:43:28,186 [DEBUG][       Thread-255209][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 12:43:28,186 [DEBUG][       Thread-255209][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 12:43:28,236 [DEBUG][       Thread-255209][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 12:43:28,236 [DEBUG][       Thread-255209][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 12:43:28,246 [DEBUG][       Thread-255209][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 12:43:28,256 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 12:43:28,256 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 12:43:28,266 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 12:43:28,276 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 12:43:28,276 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 12:43:28,277 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 12:43:28,284 [DEBUG][       Thread-255209][   transport.py][1871] : EOF in transport thread
2025-06-13 12:43:34,459 [DEBUG][Thread-255211 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:43:38,287 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 12:43:38,287 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 12:43:38,287 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 12:43:38,290 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 12:43:38,759 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 12, 43, 20), 13.81, 38.46, 0.0, 18.35, 12.19, 0, 0, 0, 2, 0, 0),)
2025-06-13 12:43:38,759 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 12:43:20
2025-06-13 12:43:38,839 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 12:43:38,845 [DEBUG][       Thread-255212][   transport.py][1871] : starting thread (client mode): 0x86368f10
2025-06-13 12:43:38,845 [DEBUG][       Thread-255212][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 12:43:38,866 [DEBUG][       Thread-255212][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 12:43:38,866 [ INFO][       Thread-255212][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 12:43:38,869 [DEBUG][       Thread-255212][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 12:43:38,869 [DEBUG][       Thread-255212][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 12:43:38,869 [DEBUG][       Thread-255212][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 12:43:38,869 [DEBUG][       Thread-255212][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:43:38,870 [DEBUG][       Thread-255212][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:43:38,870 [DEBUG][       Thread-255212][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:43:38,870 [DEBUG][       Thread-255212][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:43:38,870 [DEBUG][       Thread-255212][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 12:43:38,870 [DEBUG][       Thread-255212][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 12:43:38,870 [DEBUG][       Thread-255212][   transport.py][1871] : client lang: <none>
2025-06-13 12:43:38,870 [DEBUG][       Thread-255212][   transport.py][1871] : server lang: <none>
2025-06-13 12:43:38,870 [DEBUG][       Thread-255212][   transport.py][1871] : kex follows: False
2025-06-13 12:43:38,870 [DEBUG][       Thread-255212][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 12:43:38,870 [DEBUG][       Thread-255212][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 12:43:38,870 [DEBUG][       Thread-255212][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 12:43:38,870 [DEBUG][       Thread-255212][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 12:43:38,870 [DEBUG][       Thread-255212][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 12:43:38,870 [DEBUG][       Thread-255212][   transport.py][1871] : Compression: none
2025-06-13 12:43:38,870 [DEBUG][       Thread-255212][   transport.py][1871] : === End of kex handshake ===
2025-06-13 12:43:38,886 [DEBUG][       Thread-255212][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 12:43:38,887 [DEBUG][       Thread-255212][   transport.py][1871] : Switch to new keys ...
2025-06-13 12:43:38,887 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 12:43:38,888 [DEBUG][       Thread-255212][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 12:43:38,888 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 12:43:38,889 [DEBUG][       Thread-255212][   transport.py][1871] : userauth is OK
2025-06-13 12:43:38,914 [ INFO][       Thread-255212][   transport.py][1871] : Authentication (password) successful!
2025-06-13 12:43:38,914 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 12:43:39,538 [DEBUG][       Thread-255212][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 12:43:39,538 [DEBUG][       Thread-255212][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 12:43:39,581 [DEBUG][       Thread-255212][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 12:43:39,581 [DEBUG][       Thread-255212][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 12:43:39,584 [DEBUG][       Thread-255212][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 12:43:39,596 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 12:43:39,596 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 12:43:39,598 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 12:43:39,599 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 12:43:39,605 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 12:43:39,607 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 12:43:39,607 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 12:43:39,608 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 12:43:39,608 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.446465 -999.00  +12.30  16.45     42   -0.00 1 1 1 1 1   888    0 13.97 64.28 ----- 20.8 16.4 44.8 25.3 16.9 -29.0 15.6 -30.1 15.3 -28.2 16.8 -26.9
2025-06-13 12:43:39,608 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 12:43:39,608 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 12:43:39,608 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.446465
2025-06-13 12:43:39,608 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 12:43:39,609 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 12:43:39,609 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 12:43:39,609 [DEBUG][       Thread-255212][   transport.py][1871] : EOF in transport thread
2025-06-13 12:43:39,609 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 12:43:39,610 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 12:43:39,610 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T12:43:20', tmtdew=13.81, humidity=38.46, cloud=0.0, wind=18.35, temperature=12.19, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T10:42:54.576', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 12:43:39,694 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 12:43:39,705 [DEBUG][       Thread-255215][   transport.py][1871] : starting thread (client mode): 0x863ca1d0
2025-06-13 12:43:39,706 [DEBUG][       Thread-255215][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 12:43:39,723 [DEBUG][       Thread-255215][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 12:43:39,723 [ INFO][       Thread-255215][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 12:43:39,732 [DEBUG][       Thread-255215][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 12:43:39,733 [DEBUG][       Thread-255215][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 12:43:39,733 [DEBUG][       Thread-255215][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 12:43:39,733 [DEBUG][       Thread-255215][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:43:39,733 [DEBUG][       Thread-255215][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:43:39,733 [DEBUG][       Thread-255215][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:43:39,733 [DEBUG][       Thread-255215][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:43:39,733 [DEBUG][       Thread-255215][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 12:43:39,733 [DEBUG][       Thread-255215][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 12:43:39,733 [DEBUG][       Thread-255215][   transport.py][1871] : client lang: <none>
2025-06-13 12:43:39,733 [DEBUG][       Thread-255215][   transport.py][1871] : server lang: <none>
2025-06-13 12:43:39,733 [DEBUG][       Thread-255215][   transport.py][1871] : kex follows: False
2025-06-13 12:43:39,733 [DEBUG][       Thread-255215][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 12:43:39,733 [DEBUG][       Thread-255215][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 12:43:39,733 [DEBUG][       Thread-255215][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 12:43:39,734 [DEBUG][       Thread-255215][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 12:43:39,734 [DEBUG][       Thread-255215][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 12:43:39,734 [DEBUG][       Thread-255215][   transport.py][1871] : Compression: none
2025-06-13 12:43:39,734 [DEBUG][       Thread-255215][   transport.py][1871] : === End of kex handshake ===
2025-06-13 12:43:39,792 [DEBUG][       Thread-255215][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 12:43:39,792 [DEBUG][       Thread-255215][   transport.py][1871] : Switch to new keys ...
2025-06-13 12:43:39,793 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 12:43:39,793 [DEBUG][       Thread-255215][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 12:43:39,794 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 12:43:39,850 [DEBUG][       Thread-255215][   transport.py][1871] : userauth is OK
2025-06-13 12:43:39,851 [DEBUG][       Thread-255215][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 12:43:39,851 [DEBUG][       Thread-255215][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 12:43:39,851 [DEBUG][       Thread-255215][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 12:43:39,851 [DEBUG][       Thread-255215][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 12:43:39,870 [ INFO][       Thread-255215][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 12:43:39,870 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 12:43:39,871 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 12:43:40,943 [DEBUG][       Thread-255215][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 12:43:40,943 [DEBUG][       Thread-255215][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 12:43:40,993 [DEBUG][       Thread-255215][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 12:43:40,994 [DEBUG][       Thread-255215][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 12:43:41,003 [DEBUG][       Thread-255215][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 12:43:41,015 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 12:43:41,015 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 12:43:41,024 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 12:43:41,036 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 12:43:41,037 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 12:43:41,037 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 12:43:41,045 [DEBUG][       Thread-255215][   transport.py][1871] : EOF in transport thread
2025-06-13 12:43:43,495 [DEBUG][Thread-255217 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:43:44,465 [DEBUG][Thread-255218 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:43:45,538 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:43:45,539 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:43:45,872 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:43:45,873 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:43:51,048 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 12:43:51,048 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 12:43:51,048 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 12:43:51,048 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 12:43:51,528 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 12, 43, 20), 13.81, 38.46, 0.0, 18.35, 12.19, 0, 0, 0, 2, 0, 0),)
2025-06-13 12:43:51,528 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 12:43:20
2025-06-13 12:43:51,611 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 12:43:51,615 [DEBUG][       Thread-255219][   transport.py][1871] : starting thread (client mode): 0x86368bb0
2025-06-13 12:43:51,615 [DEBUG][       Thread-255219][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 12:43:51,637 [DEBUG][       Thread-255219][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 12:43:51,637 [ INFO][       Thread-255219][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 12:43:51,640 [DEBUG][       Thread-255219][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 12:43:51,640 [DEBUG][       Thread-255219][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 12:43:51,641 [DEBUG][       Thread-255219][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 12:43:51,641 [DEBUG][       Thread-255219][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:43:51,641 [DEBUG][       Thread-255219][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:43:51,641 [DEBUG][       Thread-255219][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:43:51,641 [DEBUG][       Thread-255219][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:43:51,641 [DEBUG][       Thread-255219][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 12:43:51,641 [DEBUG][       Thread-255219][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 12:43:51,641 [DEBUG][       Thread-255219][   transport.py][1871] : client lang: <none>
2025-06-13 12:43:51,641 [DEBUG][       Thread-255219][   transport.py][1871] : server lang: <none>
2025-06-13 12:43:51,641 [DEBUG][       Thread-255219][   transport.py][1871] : kex follows: False
2025-06-13 12:43:51,641 [DEBUG][       Thread-255219][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 12:43:51,641 [DEBUG][       Thread-255219][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 12:43:51,641 [DEBUG][       Thread-255219][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 12:43:51,641 [DEBUG][       Thread-255219][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 12:43:51,641 [DEBUG][       Thread-255219][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 12:43:51,641 [DEBUG][       Thread-255219][   transport.py][1871] : Compression: none
2025-06-13 12:43:51,641 [DEBUG][       Thread-255219][   transport.py][1871] : === End of kex handshake ===
2025-06-13 12:43:51,655 [DEBUG][       Thread-255219][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 12:43:51,655 [DEBUG][       Thread-255219][   transport.py][1871] : Switch to new keys ...
2025-06-13 12:43:51,655 [DEBUG][       Thread-255219][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 12:43:51,655 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 12:43:51,655 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 12:43:51,655 [DEBUG][       Thread-255219][   transport.py][1871] : userauth is OK
2025-06-13 12:43:51,679 [ INFO][       Thread-255219][   transport.py][1871] : Authentication (password) successful!
2025-06-13 12:43:51,679 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 12:43:52,346 [DEBUG][       Thread-255219][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 12:43:52,346 [DEBUG][       Thread-255219][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 12:43:52,388 [DEBUG][       Thread-255219][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 12:43:52,388 [DEBUG][       Thread-255219][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 12:43:52,390 [DEBUG][       Thread-255219][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 12:43:52,404 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 12:43:52,404 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 12:43:52,406 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 12:43:52,407 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 12:43:52,410 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 12:43:52,411 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 12:43:52,411 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 12:43:52,411 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 12:43:52,411 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.446813 -999.00  +12.20  20.33     41   -0.40 1 1 1 1 1   888    0 14.12 66.45 ----- 20.8 20.3 54.0 24.8 16.9 -29.2 15.6 -30.7 15.3 -29.0 16.8 -27.2
2025-06-13 12:43:52,411 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 12:43:52,411 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 12:43:52,411 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.446813
2025-06-13 12:43:52,411 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 12:43:52,411 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 12:43:52,411 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 12:43:52,411 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 12:43:52,411 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 12:43:52,411 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T12:43:20', tmtdew=13.81, humidity=38.46, cloud=0.0, wind=18.35, temperature=12.19, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T10:43:24.643', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 12:43:52,412 [DEBUG][       Thread-255219][   transport.py][1871] : EOF in transport thread
2025-06-13 12:43:52,483 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 12:43:52,494 [DEBUG][       Thread-255222][   transport.py][1871] : starting thread (client mode): 0x867fdae0
2025-06-13 12:43:52,494 [DEBUG][       Thread-255222][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 12:43:52,513 [DEBUG][Thread-255223 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:43:52,521 [DEBUG][       Thread-255222][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 12:43:52,521 [ INFO][       Thread-255222][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 12:43:52,529 [DEBUG][       Thread-255222][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 12:43:52,529 [DEBUG][       Thread-255222][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 12:43:52,529 [DEBUG][       Thread-255222][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 12:43:52,529 [DEBUG][       Thread-255222][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:43:52,529 [DEBUG][       Thread-255222][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:43:52,529 [DEBUG][       Thread-255222][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:43:52,529 [DEBUG][       Thread-255222][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:43:52,529 [DEBUG][       Thread-255222][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 12:43:52,529 [DEBUG][       Thread-255222][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 12:43:52,529 [DEBUG][       Thread-255222][   transport.py][1871] : client lang: <none>
2025-06-13 12:43:52,529 [DEBUG][       Thread-255222][   transport.py][1871] : server lang: <none>
2025-06-13 12:43:52,529 [DEBUG][       Thread-255222][   transport.py][1871] : kex follows: False
2025-06-13 12:43:52,529 [DEBUG][       Thread-255222][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 12:43:52,529 [DEBUG][       Thread-255222][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 12:43:52,529 [DEBUG][       Thread-255222][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 12:43:52,529 [DEBUG][       Thread-255222][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 12:43:52,529 [DEBUG][       Thread-255222][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 12:43:52,529 [DEBUG][       Thread-255222][   transport.py][1871] : Compression: none
2025-06-13 12:43:52,529 [DEBUG][       Thread-255222][   transport.py][1871] : === End of kex handshake ===
2025-06-13 12:43:52,591 [DEBUG][       Thread-255222][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 12:43:52,592 [DEBUG][       Thread-255222][   transport.py][1871] : Switch to new keys ...
2025-06-13 12:43:52,592 [DEBUG][       Thread-255222][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 12:43:52,592 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 12:43:52,592 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 12:43:52,654 [DEBUG][       Thread-255222][   transport.py][1871] : userauth is OK
2025-06-13 12:43:52,655 [DEBUG][       Thread-255222][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 12:43:52,655 [DEBUG][       Thread-255222][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 12:43:52,655 [DEBUG][       Thread-255222][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 12:43:52,655 [DEBUG][       Thread-255222][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 12:43:52,670 [ INFO][       Thread-255222][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 12:43:52,670 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 12:43:52,670 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 12:43:53,674 [DEBUG][       Thread-255222][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 12:43:53,674 [DEBUG][       Thread-255222][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 12:43:53,727 [DEBUG][       Thread-255222][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 12:43:53,727 [DEBUG][       Thread-255222][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 12:43:53,735 [DEBUG][       Thread-255222][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 12:43:53,743 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 12:43:53,743 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 12:43:53,756 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 12:43:53,766 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 12:43:53,766 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 12:43:53,766 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 12:43:53,779 [DEBUG][       Thread-255222][   transport.py][1871] : EOF in transport thread
2025-06-13 12:44:01,533 [DEBUG][Thread-255225 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:44:03,776 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 12:44:03,777 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 12:44:03,777 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 12:44:03,780 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 12:44:04,240 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 12, 43, 52), 13.76, 38.58, 0.0, 18.84, 12.19, 0, 0, 0, 2, 0, 0),)
2025-06-13 12:44:04,240 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 12:43:52
2025-06-13 12:44:04,321 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 12:44:04,327 [DEBUG][       Thread-255226][   transport.py][1871] : starting thread (client mode): 0x84204af0
2025-06-13 12:44:04,327 [DEBUG][       Thread-255226][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 12:44:04,347 [DEBUG][       Thread-255226][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 12:44:04,347 [ INFO][       Thread-255226][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 12:44:04,350 [DEBUG][       Thread-255226][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 12:44:04,351 [DEBUG][       Thread-255226][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 12:44:04,351 [DEBUG][       Thread-255226][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 12:44:04,351 [DEBUG][       Thread-255226][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:44:04,351 [DEBUG][       Thread-255226][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:44:04,351 [DEBUG][       Thread-255226][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:44:04,351 [DEBUG][       Thread-255226][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:44:04,351 [DEBUG][       Thread-255226][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 12:44:04,351 [DEBUG][       Thread-255226][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 12:44:04,351 [DEBUG][       Thread-255226][   transport.py][1871] : client lang: <none>
2025-06-13 12:44:04,351 [DEBUG][       Thread-255226][   transport.py][1871] : server lang: <none>
2025-06-13 12:44:04,351 [DEBUG][       Thread-255226][   transport.py][1871] : kex follows: False
2025-06-13 12:44:04,351 [DEBUG][       Thread-255226][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 12:44:04,351 [DEBUG][       Thread-255226][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 12:44:04,351 [DEBUG][       Thread-255226][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 12:44:04,351 [DEBUG][       Thread-255226][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 12:44:04,351 [DEBUG][       Thread-255226][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 12:44:04,351 [DEBUG][       Thread-255226][   transport.py][1871] : Compression: none
2025-06-13 12:44:04,351 [DEBUG][       Thread-255226][   transport.py][1871] : === End of kex handshake ===
2025-06-13 12:44:04,368 [DEBUG][       Thread-255226][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 12:44:04,368 [DEBUG][       Thread-255226][   transport.py][1871] : Switch to new keys ...
2025-06-13 12:44:04,369 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 12:44:04,369 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 12:44:04,370 [DEBUG][       Thread-255226][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 12:44:04,370 [DEBUG][       Thread-255226][   transport.py][1871] : userauth is OK
2025-06-13 12:44:04,395 [ INFO][       Thread-255226][   transport.py][1871] : Authentication (password) successful!
2025-06-13 12:44:04,396 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 12:44:04,983 [DEBUG][       Thread-255226][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 12:44:04,983 [DEBUG][       Thread-255226][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 12:44:05,025 [DEBUG][       Thread-255226][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 12:44:05,025 [DEBUG][       Thread-255226][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 12:44:05,029 [DEBUG][       Thread-255226][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 12:44:05,040 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 12:44:05,041 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 12:44:05,044 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 12:44:05,046 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 12:44:05,052 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 12:44:05,054 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 12:44:05,054 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 12:44:05,055 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 12:44:05,055 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.446813 -999.00  +12.20  20.33     41   -0.40 1 1 1 1 1   888    0 14.12 66.45 ----- 20.8 20.3 54.0 24.8 16.9 -29.2 15.6 -30.7 15.3 -29.0 16.8 -27.2
2025-06-13 12:44:05,055 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 12:44:05,055 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 12:44:05,055 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.446813
2025-06-13 12:44:05,056 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 12:44:05,056 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 12:44:05,056 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 12:44:05,056 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 12:44:05,056 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 12:44:05,057 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T12:43:52', tmtdew=13.76, humidity=38.58, cloud=0.0, wind=18.84, temperature=12.19, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T10:43:24.643', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 12:44:05,058 [DEBUG][       Thread-255226][   transport.py][1871] : EOF in transport thread
2025-06-13 12:44:05,140 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 12:44:05,151 [DEBUG][       Thread-255229][   transport.py][1871] : starting thread (client mode): 0x863ca230
2025-06-13 12:44:05,151 [DEBUG][       Thread-255229][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 12:44:05,166 [DEBUG][       Thread-255229][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 12:44:05,166 [ INFO][       Thread-255229][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 12:44:05,179 [DEBUG][       Thread-255229][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 12:44:05,179 [DEBUG][       Thread-255229][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 12:44:05,179 [DEBUG][       Thread-255229][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 12:44:05,179 [DEBUG][       Thread-255229][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:44:05,179 [DEBUG][       Thread-255229][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:44:05,179 [DEBUG][       Thread-255229][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:44:05,179 [DEBUG][       Thread-255229][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:44:05,179 [DEBUG][       Thread-255229][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 12:44:05,179 [DEBUG][       Thread-255229][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 12:44:05,179 [DEBUG][       Thread-255229][   transport.py][1871] : client lang: <none>
2025-06-13 12:44:05,179 [DEBUG][       Thread-255229][   transport.py][1871] : server lang: <none>
2025-06-13 12:44:05,179 [DEBUG][       Thread-255229][   transport.py][1871] : kex follows: False
2025-06-13 12:44:05,179 [DEBUG][       Thread-255229][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 12:44:05,180 [DEBUG][       Thread-255229][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 12:44:05,180 [DEBUG][       Thread-255229][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 12:44:05,180 [DEBUG][       Thread-255229][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 12:44:05,180 [DEBUG][       Thread-255229][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 12:44:05,180 [DEBUG][       Thread-255229][   transport.py][1871] : Compression: none
2025-06-13 12:44:05,180 [DEBUG][       Thread-255229][   transport.py][1871] : === End of kex handshake ===
2025-06-13 12:44:05,233 [DEBUG][       Thread-255229][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 12:44:05,233 [DEBUG][       Thread-255229][   transport.py][1871] : Switch to new keys ...
2025-06-13 12:44:05,234 [DEBUG][       Thread-255229][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 12:44:05,234 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 12:44:05,235 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 12:44:05,296 [DEBUG][       Thread-255229][   transport.py][1871] : userauth is OK
2025-06-13 12:44:05,296 [DEBUG][       Thread-255229][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 12:44:05,296 [DEBUG][       Thread-255229][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 12:44:05,296 [DEBUG][       Thread-255229][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 12:44:05,296 [DEBUG][       Thread-255229][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 12:44:05,315 [ INFO][       Thread-255229][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 12:44:05,316 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 12:44:05,316 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 12:44:06,374 [DEBUG][       Thread-255229][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 12:44:06,375 [DEBUG][       Thread-255229][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 12:44:06,424 [DEBUG][       Thread-255229][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 12:44:06,424 [DEBUG][       Thread-255229][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 12:44:06,433 [DEBUG][       Thread-255229][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 12:44:06,443 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 12:44:06,443 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 12:44:06,452 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 12:44:06,461 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 12:44:06,462 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 12:44:06,462 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 12:44:06,470 [DEBUG][       Thread-255229][   transport.py][1871] : EOF in transport thread
2025-06-13 12:44:10,556 [DEBUG][Thread-255231 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:44:12,961 [DEBUG][Thread-255232 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:44:16,473 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 12:44:16,473 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 12:44:16,473 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 12:44:16,476 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 12:44:16,929 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 12, 43, 52), 13.76, 38.58, 0.0, 18.84, 12.19, 0, 0, 0, 2, 0, 0),)
2025-06-13 12:44:16,929 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 12:43:52
2025-06-13 12:44:17,010 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 12:44:17,016 [DEBUG][       Thread-255233][   transport.py][1871] : starting thread (client mode): 0x863bd870
2025-06-13 12:44:17,016 [DEBUG][       Thread-255233][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 12:44:17,038 [DEBUG][       Thread-255233][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 12:44:17,038 [ INFO][       Thread-255233][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 12:44:17,042 [DEBUG][       Thread-255233][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 12:44:17,042 [DEBUG][       Thread-255233][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 12:44:17,042 [DEBUG][       Thread-255233][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 12:44:17,042 [DEBUG][       Thread-255233][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:44:17,042 [DEBUG][       Thread-255233][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:44:17,042 [DEBUG][       Thread-255233][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:44:17,042 [DEBUG][       Thread-255233][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:44:17,042 [DEBUG][       Thread-255233][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 12:44:17,042 [DEBUG][       Thread-255233][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 12:44:17,042 [DEBUG][       Thread-255233][   transport.py][1871] : client lang: <none>
2025-06-13 12:44:17,042 [DEBUG][       Thread-255233][   transport.py][1871] : server lang: <none>
2025-06-13 12:44:17,042 [DEBUG][       Thread-255233][   transport.py][1871] : kex follows: False
2025-06-13 12:44:17,042 [DEBUG][       Thread-255233][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 12:44:17,042 [DEBUG][       Thread-255233][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 12:44:17,042 [DEBUG][       Thread-255233][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 12:44:17,042 [DEBUG][       Thread-255233][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 12:44:17,042 [DEBUG][       Thread-255233][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 12:44:17,042 [DEBUG][       Thread-255233][   transport.py][1871] : Compression: none
2025-06-13 12:44:17,042 [DEBUG][       Thread-255233][   transport.py][1871] : === End of kex handshake ===
2025-06-13 12:44:17,059 [DEBUG][       Thread-255233][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 12:44:17,060 [DEBUG][       Thread-255233][   transport.py][1871] : Switch to new keys ...
2025-06-13 12:44:17,060 [DEBUG][       Thread-255233][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 12:44:17,061 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 12:44:17,061 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 12:44:17,062 [DEBUG][       Thread-255233][   transport.py][1871] : userauth is OK
2025-06-13 12:44:17,075 [ INFO][       Thread-255233][   transport.py][1871] : Authentication (password) successful!
2025-06-13 12:44:17,075 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 12:44:17,701 [DEBUG][       Thread-255233][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 12:44:17,701 [DEBUG][       Thread-255233][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 12:44:17,749 [DEBUG][       Thread-255233][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 12:44:17,749 [DEBUG][       Thread-255233][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 12:44:17,752 [DEBUG][       Thread-255233][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 12:44:17,764 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 12:44:17,764 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 12:44:17,766 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 12:44:17,767 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 12:44:17,773 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 12:44:17,774 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 12:44:17,774 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 12:44:17,775 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 12:44:17,775 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.446813 -999.00  +12.20  20.33     41   -0.40 1 1 1 1 1   888    0 14.12 66.45 ----- 20.8 20.3 54.0 24.8 16.9 -29.2 15.6 -30.7 15.3 -29.0 16.8 -27.2
2025-06-13 12:44:17,775 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 12:44:17,775 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 12:44:17,775 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.446813
2025-06-13 12:44:17,776 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 12:44:17,776 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 12:44:17,777 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 12:44:17,777 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 12:44:17,777 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 12:44:17,777 [DEBUG][       Thread-255233][   transport.py][1871] : EOF in transport thread
2025-06-13 12:44:17,777 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T12:43:52', tmtdew=13.76, humidity=38.58, cloud=0.0, wind=18.84, temperature=12.19, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T10:43:24.643', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 12:44:17,860 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 12:44:17,872 [DEBUG][       Thread-255236][   transport.py][1871] : starting thread (client mode): 0x863ca290
2025-06-13 12:44:17,872 [DEBUG][       Thread-255236][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 12:44:17,889 [DEBUG][       Thread-255236][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 12:44:17,889 [ INFO][       Thread-255236][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 12:44:17,897 [DEBUG][       Thread-255236][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 12:44:17,897 [DEBUG][       Thread-255236][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 12:44:17,898 [DEBUG][       Thread-255236][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 12:44:17,898 [DEBUG][       Thread-255236][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:44:17,898 [DEBUG][       Thread-255236][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:44:17,898 [DEBUG][       Thread-255236][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:44:17,898 [DEBUG][       Thread-255236][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:44:17,898 [DEBUG][       Thread-255236][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 12:44:17,898 [DEBUG][       Thread-255236][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 12:44:17,898 [DEBUG][       Thread-255236][   transport.py][1871] : client lang: <none>
2025-06-13 12:44:17,898 [DEBUG][       Thread-255236][   transport.py][1871] : server lang: <none>
2025-06-13 12:44:17,898 [DEBUG][       Thread-255236][   transport.py][1871] : kex follows: False
2025-06-13 12:44:17,898 [DEBUG][       Thread-255236][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 12:44:17,898 [DEBUG][       Thread-255236][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 12:44:17,898 [DEBUG][       Thread-255236][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 12:44:17,898 [DEBUG][       Thread-255236][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 12:44:17,898 [DEBUG][       Thread-255236][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 12:44:17,898 [DEBUG][       Thread-255236][   transport.py][1871] : Compression: none
2025-06-13 12:44:17,898 [DEBUG][       Thread-255236][   transport.py][1871] : === End of kex handshake ===
2025-06-13 12:44:17,960 [DEBUG][       Thread-255236][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 12:44:17,961 [DEBUG][       Thread-255236][   transport.py][1871] : Switch to new keys ...
2025-06-13 12:44:17,961 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 12:44:17,962 [DEBUG][       Thread-255236][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 12:44:17,962 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 12:44:18,026 [DEBUG][       Thread-255236][   transport.py][1871] : userauth is OK
2025-06-13 12:44:18,026 [DEBUG][       Thread-255236][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 12:44:18,026 [DEBUG][       Thread-255236][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 12:44:18,026 [DEBUG][       Thread-255236][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 12:44:18,026 [DEBUG][       Thread-255236][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 12:44:18,045 [ INFO][       Thread-255236][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 12:44:18,045 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 12:44:18,046 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 12:44:19,133 [DEBUG][       Thread-255236][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 12:44:19,134 [DEBUG][       Thread-255236][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 12:44:19,188 [DEBUG][       Thread-255236][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 12:44:19,188 [DEBUG][       Thread-255236][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 12:44:19,198 [DEBUG][       Thread-255236][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 12:44:19,208 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 12:44:19,208 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 12:44:19,217 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 12:44:19,226 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 12:44:19,227 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 12:44:19,227 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 12:44:19,235 [DEBUG][       Thread-255236][   transport.py][1871] : EOF in transport thread
2025-06-13 12:44:19,601 [DEBUG][Thread-255238 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:44:28,619 [DEBUG][Thread-255239 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:44:29,238 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 12:44:29,238 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 12:44:29,238 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 12:44:29,239 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 12:44:29,728 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 12, 44, 24), 13.69, 38.84, 0.0, 15.39, 12.24, 0, 0, 0, 2, 0, 0),)
2025-06-13 12:44:29,728 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 12:44:24
2025-06-13 12:44:29,816 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 12:44:29,820 [DEBUG][       Thread-255240][   transport.py][1871] : starting thread (client mode): 0x863511b0
2025-06-13 12:44:29,820 [DEBUG][       Thread-255240][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 12:44:29,840 [DEBUG][       Thread-255240][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 12:44:29,840 [ INFO][       Thread-255240][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 12:44:29,843 [DEBUG][       Thread-255240][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 12:44:29,843 [DEBUG][       Thread-255240][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 12:44:29,843 [DEBUG][       Thread-255240][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 12:44:29,843 [DEBUG][       Thread-255240][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:44:29,843 [DEBUG][       Thread-255240][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:44:29,843 [DEBUG][       Thread-255240][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:44:29,843 [DEBUG][       Thread-255240][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:44:29,843 [DEBUG][       Thread-255240][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 12:44:29,843 [DEBUG][       Thread-255240][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 12:44:29,843 [DEBUG][       Thread-255240][   transport.py][1871] : client lang: <none>
2025-06-13 12:44:29,843 [DEBUG][       Thread-255240][   transport.py][1871] : server lang: <none>
2025-06-13 12:44:29,843 [DEBUG][       Thread-255240][   transport.py][1871] : kex follows: False
2025-06-13 12:44:29,843 [DEBUG][       Thread-255240][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 12:44:29,843 [DEBUG][       Thread-255240][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 12:44:29,843 [DEBUG][       Thread-255240][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 12:44:29,843 [DEBUG][       Thread-255240][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 12:44:29,843 [DEBUG][       Thread-255240][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 12:44:29,843 [DEBUG][       Thread-255240][   transport.py][1871] : Compression: none
2025-06-13 12:44:29,843 [DEBUG][       Thread-255240][   transport.py][1871] : === End of kex handshake ===
2025-06-13 12:44:29,858 [DEBUG][       Thread-255240][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 12:44:29,858 [DEBUG][       Thread-255240][   transport.py][1871] : Switch to new keys ...
2025-06-13 12:44:29,858 [DEBUG][       Thread-255240][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 12:44:29,858 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 12:44:29,858 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 12:44:29,859 [DEBUG][       Thread-255240][   transport.py][1871] : userauth is OK
2025-06-13 12:44:29,871 [ INFO][       Thread-255240][   transport.py][1871] : Authentication (password) successful!
2025-06-13 12:44:29,871 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 12:44:30,495 [DEBUG][       Thread-255240][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 12:44:30,495 [DEBUG][       Thread-255240][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 12:44:30,537 [DEBUG][       Thread-255240][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 12:44:30,537 [DEBUG][       Thread-255240][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 12:44:30,539 [DEBUG][       Thread-255240][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 12:44:30,552 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 12:44:30,552 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 12:44:30,553 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 12:44:30,554 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 12:44:30,558 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 12:44:30,559 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 12:44:30,559 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 12:44:30,559 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 12:44:30,559 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.447160 -999.00  +12.30  18.84     42   -0.10 1 1 1 1 1   888    0 13.84 57.62 ----- 16.8 18.8 50.6 25.9 16.9 -28.5 15.6 -30.5 15.4 -28.9 16.8 -27.2
2025-06-13 12:44:30,559 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 12:44:30,559 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 12:44:30,559 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.447160
2025-06-13 12:44:30,559 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 12:44:30,559 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 12:44:30,559 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 12:44:30,559 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 12:44:30,559 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 12:44:30,559 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T12:44:24', tmtdew=13.69, humidity=38.84, cloud=0.0, wind=15.39, temperature=12.24, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T10:43:54.624', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 12:44:30,560 [DEBUG][       Thread-255240][   transport.py][1871] : EOF in transport thread
2025-06-13 12:44:30,632 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 12:44:30,641 [DEBUG][       Thread-255243][   transport.py][1871] : starting thread (client mode): 0x863cb490
2025-06-13 12:44:30,641 [DEBUG][       Thread-255243][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 12:44:30,656 [DEBUG][       Thread-255243][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 12:44:30,656 [ INFO][       Thread-255243][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 12:44:30,664 [DEBUG][       Thread-255243][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 12:44:30,664 [DEBUG][       Thread-255243][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 12:44:30,664 [DEBUG][       Thread-255243][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 12:44:30,664 [DEBUG][       Thread-255243][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:44:30,664 [DEBUG][       Thread-255243][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:44:30,664 [DEBUG][       Thread-255243][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:44:30,664 [DEBUG][       Thread-255243][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:44:30,664 [DEBUG][       Thread-255243][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 12:44:30,664 [DEBUG][       Thread-255243][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 12:44:30,664 [DEBUG][       Thread-255243][   transport.py][1871] : client lang: <none>
2025-06-13 12:44:30,664 [DEBUG][       Thread-255243][   transport.py][1871] : server lang: <none>
2025-06-13 12:44:30,664 [DEBUG][       Thread-255243][   transport.py][1871] : kex follows: False
2025-06-13 12:44:30,664 [DEBUG][       Thread-255243][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 12:44:30,664 [DEBUG][       Thread-255243][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 12:44:30,664 [DEBUG][       Thread-255243][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 12:44:30,664 [DEBUG][       Thread-255243][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 12:44:30,664 [DEBUG][       Thread-255243][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 12:44:30,664 [DEBUG][       Thread-255243][   transport.py][1871] : Compression: none
2025-06-13 12:44:30,664 [DEBUG][       Thread-255243][   transport.py][1871] : === End of kex handshake ===
2025-06-13 12:44:30,727 [DEBUG][       Thread-255243][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 12:44:30,727 [DEBUG][       Thread-255243][   transport.py][1871] : Switch to new keys ...
2025-06-13 12:44:30,727 [DEBUG][       Thread-255243][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 12:44:30,728 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 12:44:30,728 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 12:44:30,790 [DEBUG][       Thread-255243][   transport.py][1871] : userauth is OK
2025-06-13 12:44:30,790 [DEBUG][       Thread-255243][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 12:44:30,790 [DEBUG][       Thread-255243][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 12:44:30,790 [DEBUG][       Thread-255243][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 12:44:30,790 [DEBUG][       Thread-255243][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 12:44:30,804 [ INFO][       Thread-255243][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 12:44:30,804 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 12:44:30,804 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 12:44:31,860 [DEBUG][       Thread-255243][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 12:44:31,860 [DEBUG][       Thread-255243][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 12:44:31,907 [DEBUG][       Thread-255243][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 12:44:31,907 [DEBUG][       Thread-255243][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 12:44:31,916 [DEBUG][       Thread-255243][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 12:44:31,924 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 12:44:31,924 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 12:44:31,932 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 12:44:31,940 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 12:44:31,940 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 12:44:31,940 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 12:44:31,948 [DEBUG][       Thread-255243][   transport.py][1871] : EOF in transport thread
2025-06-13 12:44:37,639 [DEBUG][Thread-255245 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:44:41,942 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 12:44:41,943 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 12:44:41,943 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 12:44:41,946 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 12:44:42,413 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 12, 44, 24), 13.69, 38.84, 0.0, 15.39, 12.24, 0, 0, 0, 2, 0, 0),)
2025-06-13 12:44:42,414 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 12:44:24
2025-06-13 12:44:42,496 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 12:44:42,504 [DEBUG][       Thread-255246][   transport.py][1871] : starting thread (client mode): 0x863539a0
2025-06-13 12:44:42,504 [DEBUG][       Thread-255246][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 12:44:42,523 [DEBUG][       Thread-255246][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 12:44:42,523 [ INFO][       Thread-255246][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 12:44:42,527 [DEBUG][       Thread-255246][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 12:44:42,527 [DEBUG][       Thread-255246][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 12:44:42,527 [DEBUG][       Thread-255246][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 12:44:42,527 [DEBUG][       Thread-255246][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:44:42,527 [DEBUG][       Thread-255246][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:44:42,527 [DEBUG][       Thread-255246][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:44:42,527 [DEBUG][       Thread-255246][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:44:42,527 [DEBUG][       Thread-255246][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 12:44:42,527 [DEBUG][       Thread-255246][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 12:44:42,527 [DEBUG][       Thread-255246][   transport.py][1871] : client lang: <none>
2025-06-13 12:44:42,527 [DEBUG][       Thread-255246][   transport.py][1871] : server lang: <none>
2025-06-13 12:44:42,527 [DEBUG][       Thread-255246][   transport.py][1871] : kex follows: False
2025-06-13 12:44:42,527 [DEBUG][       Thread-255246][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 12:44:42,527 [DEBUG][       Thread-255246][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 12:44:42,527 [DEBUG][       Thread-255246][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 12:44:42,528 [DEBUG][       Thread-255246][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 12:44:42,528 [DEBUG][       Thread-255246][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 12:44:42,528 [DEBUG][       Thread-255246][   transport.py][1871] : Compression: none
2025-06-13 12:44:42,528 [DEBUG][       Thread-255246][   transport.py][1871] : === End of kex handshake ===
2025-06-13 12:44:42,544 [DEBUG][       Thread-255246][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 12:44:42,544 [DEBUG][       Thread-255246][   transport.py][1871] : Switch to new keys ...
2025-06-13 12:44:42,545 [DEBUG][       Thread-255246][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 12:44:42,545 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 12:44:42,545 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 12:44:42,547 [DEBUG][       Thread-255246][   transport.py][1871] : userauth is OK
2025-06-13 12:44:42,571 [ INFO][       Thread-255246][   transport.py][1871] : Authentication (password) successful!
2025-06-13 12:44:42,572 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 12:44:43,191 [DEBUG][       Thread-255246][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 12:44:43,191 [DEBUG][       Thread-255246][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 12:44:43,233 [DEBUG][       Thread-255246][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 12:44:43,233 [DEBUG][       Thread-255246][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 12:44:43,237 [DEBUG][       Thread-255246][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 12:44:43,250 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 12:44:43,250 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 12:44:43,253 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 12:44:43,255 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 12:44:43,262 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 12:44:43,264 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 12:44:43,265 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 12:44:43,266 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 12:44:43,266 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.447160 -999.00  +12.30  18.84     42   -0.10 1 1 1 1 1   888    0 13.84 57.62 ----- 16.8 18.8 50.6 25.9 16.9 -28.5 15.6 -30.5 15.4 -28.9 16.8 -27.2
2025-06-13 12:44:43,266 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 12:44:43,266 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 12:44:43,266 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.447160
2025-06-13 12:44:43,267 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 12:44:43,268 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 12:44:43,268 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 12:44:43,268 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 12:44:43,268 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 12:44:43,268 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T12:44:24', tmtdew=13.69, humidity=38.84, cloud=0.0, wind=15.39, temperature=12.24, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T10:43:54.624', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 12:44:43,269 [DEBUG][       Thread-255246][   transport.py][1871] : EOF in transport thread
2025-06-13 12:44:43,357 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 12:44:43,371 [DEBUG][       Thread-255249][   transport.py][1871] : starting thread (client mode): 0x863a5b40
2025-06-13 12:44:43,371 [DEBUG][       Thread-255249][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 12:44:43,387 [DEBUG][       Thread-255249][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 12:44:43,387 [ INFO][       Thread-255249][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 12:44:43,394 [DEBUG][       Thread-255249][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 12:44:43,395 [DEBUG][       Thread-255249][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 12:44:43,395 [DEBUG][       Thread-255249][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 12:44:43,395 [DEBUG][       Thread-255249][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:44:43,395 [DEBUG][       Thread-255249][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:44:43,395 [DEBUG][       Thread-255249][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:44:43,395 [DEBUG][       Thread-255249][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:44:43,395 [DEBUG][       Thread-255249][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 12:44:43,395 [DEBUG][       Thread-255249][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 12:44:43,395 [DEBUG][       Thread-255249][   transport.py][1871] : client lang: <none>
2025-06-13 12:44:43,395 [DEBUG][       Thread-255249][   transport.py][1871] : server lang: <none>
2025-06-13 12:44:43,395 [DEBUG][       Thread-255249][   transport.py][1871] : kex follows: False
2025-06-13 12:44:43,395 [DEBUG][       Thread-255249][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 12:44:43,395 [DEBUG][       Thread-255249][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 12:44:43,395 [DEBUG][       Thread-255249][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 12:44:43,396 [DEBUG][       Thread-255249][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 12:44:43,396 [DEBUG][       Thread-255249][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 12:44:43,396 [DEBUG][       Thread-255249][   transport.py][1871] : Compression: none
2025-06-13 12:44:43,396 [DEBUG][       Thread-255249][   transport.py][1871] : === End of kex handshake ===
2025-06-13 12:44:43,452 [DEBUG][       Thread-255249][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 12:44:43,452 [DEBUG][       Thread-255249][   transport.py][1871] : Switch to new keys ...
2025-06-13 12:44:43,453 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 12:44:43,454 [DEBUG][       Thread-255249][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 12:44:43,454 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 12:44:43,508 [DEBUG][       Thread-255249][   transport.py][1871] : userauth is OK
2025-06-13 12:44:43,508 [DEBUG][       Thread-255249][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 12:44:43,508 [DEBUG][       Thread-255249][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 12:44:43,509 [DEBUG][       Thread-255249][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 12:44:43,509 [DEBUG][       Thread-255249][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 12:44:43,528 [ INFO][       Thread-255249][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 12:44:43,529 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 12:44:43,529 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 12:44:44,533 [DEBUG][       Thread-255249][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 12:44:44,533 [DEBUG][       Thread-255249][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 12:44:44,584 [DEBUG][       Thread-255249][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 12:44:44,584 [DEBUG][       Thread-255249][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 12:44:44,593 [DEBUG][       Thread-255249][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 12:44:44,602 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 12:44:44,603 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 12:44:44,611 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 12:44:44,620 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 12:44:44,620 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 12:44:44,621 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 12:44:44,629 [DEBUG][       Thread-255249][   transport.py][1871] : EOF in transport thread
2025-06-13 12:44:45,605 [DEBUG][Thread-255251 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:44:46,014 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:44:46,015 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:44:46,675 [DEBUG][Thread-255252 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:44:46,685 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:44:46,686 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:44:54,631 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 12:44:54,631 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 12:44:54,631 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 12:44:54,635 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 12:44:55,102 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 12, 44, 24), 13.69, 38.84, 0.0, 15.39, 12.24, 0, 0, 0, 2, 0, 0),)
2025-06-13 12:44:55,102 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 12:44:24
2025-06-13 12:44:55,185 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 12:44:55,190 [DEBUG][       Thread-255253][   transport.py][1871] : starting thread (client mode): 0x86350940
2025-06-13 12:44:55,190 [DEBUG][       Thread-255253][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 12:44:55,207 [DEBUG][       Thread-255253][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 12:44:55,207 [ INFO][       Thread-255253][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 12:44:55,209 [DEBUG][       Thread-255253][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 12:44:55,209 [DEBUG][       Thread-255253][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 12:44:55,209 [DEBUG][       Thread-255253][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 12:44:55,209 [DEBUG][       Thread-255253][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:44:55,209 [DEBUG][       Thread-255253][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:44:55,209 [DEBUG][       Thread-255253][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:44:55,209 [DEBUG][       Thread-255253][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:44:55,209 [DEBUG][       Thread-255253][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 12:44:55,209 [DEBUG][       Thread-255253][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 12:44:55,209 [DEBUG][       Thread-255253][   transport.py][1871] : client lang: <none>
2025-06-13 12:44:55,209 [DEBUG][       Thread-255253][   transport.py][1871] : server lang: <none>
2025-06-13 12:44:55,209 [DEBUG][       Thread-255253][   transport.py][1871] : kex follows: False
2025-06-13 12:44:55,209 [DEBUG][       Thread-255253][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 12:44:55,209 [DEBUG][       Thread-255253][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 12:44:55,209 [DEBUG][       Thread-255253][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 12:44:55,209 [DEBUG][       Thread-255253][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 12:44:55,209 [DEBUG][       Thread-255253][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 12:44:55,209 [DEBUG][       Thread-255253][   transport.py][1871] : Compression: none
2025-06-13 12:44:55,209 [DEBUG][       Thread-255253][   transport.py][1871] : === End of kex handshake ===
2025-06-13 12:44:55,221 [DEBUG][       Thread-255253][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 12:44:55,221 [DEBUG][       Thread-255253][   transport.py][1871] : Switch to new keys ...
2025-06-13 12:44:55,221 [DEBUG][       Thread-255253][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 12:44:55,221 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 12:44:55,221 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 12:44:55,222 [DEBUG][       Thread-255253][   transport.py][1871] : userauth is OK
2025-06-13 12:44:55,246 [ INFO][       Thread-255253][   transport.py][1871] : Authentication (password) successful!
2025-06-13 12:44:55,246 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 12:44:55,696 [DEBUG][Thread-255255 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:44:55,903 [DEBUG][       Thread-255253][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 12:44:55,903 [DEBUG][       Thread-255253][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 12:44:55,945 [DEBUG][       Thread-255253][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 12:44:55,946 [DEBUG][       Thread-255253][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 12:44:55,950 [DEBUG][       Thread-255253][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 12:44:55,964 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 12:44:55,964 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 12:44:55,966 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 12:44:55,968 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 12:44:55,975 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 12:44:55,977 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 12:44:55,978 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 12:44:55,979 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 12:44:55,979 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.447507 -999.00  +12.40  18.81     42   +0.00 1 1 1 1 1   888    0 13.75 50.03 ----- 18.9 18.8 61.2 22.4 16.9 -28.8 15.6 -30.4 15.4 -29.1 16.8 -27.6
2025-06-13 12:44:55,979 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 12:44:55,979 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 12:44:55,979 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.447507
2025-06-13 12:44:55,980 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 12:44:55,981 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 12:44:55,981 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 12:44:55,981 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 12:44:55,981 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 12:44:55,981 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T12:44:24', tmtdew=13.69, humidity=38.84, cloud=0.0, wind=15.39, temperature=12.24, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T10:44:24.605', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 12:44:55,983 [DEBUG][       Thread-255253][   transport.py][1871] : EOF in transport thread
2025-06-13 12:44:56,071 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 12:44:56,080 [DEBUG][       Thread-255257][   transport.py][1871] : starting thread (client mode): 0x863ee470
2025-06-13 12:44:56,080 [DEBUG][       Thread-255257][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 12:44:56,094 [DEBUG][       Thread-255257][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 12:44:56,094 [ INFO][       Thread-255257][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 12:44:56,102 [DEBUG][       Thread-255257][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 12:44:56,102 [DEBUG][       Thread-255257][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 12:44:56,102 [DEBUG][       Thread-255257][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 12:44:56,102 [DEBUG][       Thread-255257][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:44:56,103 [DEBUG][       Thread-255257][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:44:56,103 [DEBUG][       Thread-255257][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:44:56,103 [DEBUG][       Thread-255257][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:44:56,103 [DEBUG][       Thread-255257][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 12:44:56,103 [DEBUG][       Thread-255257][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 12:44:56,103 [DEBUG][       Thread-255257][   transport.py][1871] : client lang: <none>
2025-06-13 12:44:56,103 [DEBUG][       Thread-255257][   transport.py][1871] : server lang: <none>
2025-06-13 12:44:56,103 [DEBUG][       Thread-255257][   transport.py][1871] : kex follows: False
2025-06-13 12:44:56,103 [DEBUG][       Thread-255257][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 12:44:56,103 [DEBUG][       Thread-255257][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 12:44:56,103 [DEBUG][       Thread-255257][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 12:44:56,103 [DEBUG][       Thread-255257][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 12:44:56,103 [DEBUG][       Thread-255257][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 12:44:56,103 [DEBUG][       Thread-255257][   transport.py][1871] : Compression: none
2025-06-13 12:44:56,103 [DEBUG][       Thread-255257][   transport.py][1871] : === End of kex handshake ===
2025-06-13 12:44:56,163 [DEBUG][       Thread-255257][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 12:44:56,164 [DEBUG][       Thread-255257][   transport.py][1871] : Switch to new keys ...
2025-06-13 12:44:56,164 [DEBUG][       Thread-255257][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 12:44:56,165 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 12:44:56,165 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 12:44:56,220 [DEBUG][       Thread-255257][   transport.py][1871] : userauth is OK
2025-06-13 12:44:56,221 [DEBUG][       Thread-255257][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 12:44:56,221 [DEBUG][       Thread-255257][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 12:44:56,221 [DEBUG][       Thread-255257][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 12:44:56,221 [DEBUG][       Thread-255257][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 12:44:56,239 [ INFO][       Thread-255257][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 12:44:56,240 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 12:44:56,240 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 12:44:57,284 [DEBUG][       Thread-255257][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 12:44:57,284 [DEBUG][       Thread-255257][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 12:44:57,335 [DEBUG][       Thread-255257][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 12:44:57,335 [DEBUG][       Thread-255257][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 12:44:57,344 [DEBUG][       Thread-255257][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 12:44:57,351 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 12:44:57,351 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 12:44:57,359 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 12:44:57,367 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 12:44:57,367 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 12:44:57,367 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 12:44:57,375 [DEBUG][       Thread-255257][   transport.py][1871] : EOF in transport thread
2025-06-13 12:45:04,716 [DEBUG][Thread-255259 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:45:07,376 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 12:45:07,376 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 12:45:07,376 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 12:45:07,377 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 12:45:07,847 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 12, 44, 55), 13.55, 39.19, 0.0, 16.02, 12.2, 0, 0, 0, 2, 0, 0),)
2025-06-13 12:45:07,847 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 12:44:55
2025-06-13 12:45:07,933 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 12:45:07,937 [DEBUG][       Thread-255260][   transport.py][1871] : starting thread (client mode): 0x863bf880
2025-06-13 12:45:07,938 [DEBUG][       Thread-255260][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 12:45:07,959 [DEBUG][       Thread-255260][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 12:45:07,959 [ INFO][       Thread-255260][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 12:45:07,962 [DEBUG][       Thread-255260][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 12:45:07,962 [DEBUG][       Thread-255260][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 12:45:07,962 [DEBUG][       Thread-255260][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 12:45:07,962 [DEBUG][       Thread-255260][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:45:07,962 [DEBUG][       Thread-255260][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:45:07,962 [DEBUG][       Thread-255260][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:45:07,962 [DEBUG][       Thread-255260][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:45:07,962 [DEBUG][       Thread-255260][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 12:45:07,962 [DEBUG][       Thread-255260][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 12:45:07,962 [DEBUG][       Thread-255260][   transport.py][1871] : client lang: <none>
2025-06-13 12:45:07,962 [DEBUG][       Thread-255260][   transport.py][1871] : server lang: <none>
2025-06-13 12:45:07,962 [DEBUG][       Thread-255260][   transport.py][1871] : kex follows: False
2025-06-13 12:45:07,962 [DEBUG][       Thread-255260][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 12:45:07,962 [DEBUG][       Thread-255260][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 12:45:07,962 [DEBUG][       Thread-255260][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 12:45:07,962 [DEBUG][       Thread-255260][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 12:45:07,962 [DEBUG][       Thread-255260][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 12:45:07,962 [DEBUG][       Thread-255260][   transport.py][1871] : Compression: none
2025-06-13 12:45:07,962 [DEBUG][       Thread-255260][   transport.py][1871] : === End of kex handshake ===
2025-06-13 12:45:07,969 [DEBUG][       Thread-255260][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 12:45:07,969 [DEBUG][       Thread-255260][   transport.py][1871] : Switch to new keys ...
2025-06-13 12:45:07,969 [DEBUG][       Thread-255260][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 12:45:07,969 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 12:45:07,970 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 12:45:07,970 [DEBUG][       Thread-255260][   transport.py][1871] : userauth is OK
2025-06-13 12:45:07,983 [ INFO][       Thread-255260][   transport.py][1871] : Authentication (password) successful!
2025-06-13 12:45:07,983 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 12:45:13,013 [DEBUG][Thread-255262 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:45:13,736 [DEBUG][Thread-255263 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:45:17,704 [DEBUG][       Thread-255260][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 12:45:17,704 [DEBUG][       Thread-255260][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 12:45:17,745 [DEBUG][       Thread-255260][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 12:45:17,745 [DEBUG][       Thread-255260][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 12:45:17,749 [DEBUG][       Thread-255260][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 12:45:17,761 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 12:45:17,761 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 12:45:17,763 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 12:45:17,765 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 12:45:17,770 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 12:45:17,772 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 12:45:17,772 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 12:45:17,773 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 12:45:17,773 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.447507 -999.00  +12.40  18.81     42   +0.00 1 1 1 1 1   888    0 13.75 50.03 ----- 18.9 18.8 61.2 22.4 16.9 -28.8 15.6 -30.4 15.4 -29.1 16.8 -27.6
2025-06-13 12:45:17,773 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 12:45:17,773 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 12:45:17,773 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.447507
2025-06-13 12:45:17,773 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 12:45:17,774 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 12:45:17,774 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 12:45:17,774 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 12:45:17,774 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 12:45:17,774 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T12:44:55', tmtdew=13.55, humidity=39.19, cloud=0.0, wind=16.02, temperature=12.2, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T10:44:24.605', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 12:45:17,775 [DEBUG][       Thread-255260][   transport.py][1871] : EOF in transport thread
2025-06-13 12:45:17,858 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 12:45:17,870 [DEBUG][       Thread-255265][   transport.py][1871] : starting thread (client mode): 0x86893ca0
2025-06-13 12:45:17,870 [DEBUG][       Thread-255265][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 12:45:17,886 [DEBUG][       Thread-255265][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 12:45:17,886 [ INFO][       Thread-255265][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 12:45:17,894 [DEBUG][       Thread-255265][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 12:45:17,894 [DEBUG][       Thread-255265][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 12:45:17,894 [DEBUG][       Thread-255265][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 12:45:17,894 [DEBUG][       Thread-255265][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:45:17,894 [DEBUG][       Thread-255265][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:45:17,894 [DEBUG][       Thread-255265][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:45:17,894 [DEBUG][       Thread-255265][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:45:17,895 [DEBUG][       Thread-255265][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 12:45:17,895 [DEBUG][       Thread-255265][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 12:45:17,895 [DEBUG][       Thread-255265][   transport.py][1871] : client lang: <none>
2025-06-13 12:45:17,895 [DEBUG][       Thread-255265][   transport.py][1871] : server lang: <none>
2025-06-13 12:45:17,895 [DEBUG][       Thread-255265][   transport.py][1871] : kex follows: False
2025-06-13 12:45:17,895 [DEBUG][       Thread-255265][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 12:45:17,895 [DEBUG][       Thread-255265][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 12:45:17,895 [DEBUG][       Thread-255265][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 12:45:17,895 [DEBUG][       Thread-255265][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 12:45:17,895 [DEBUG][       Thread-255265][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 12:45:17,895 [DEBUG][       Thread-255265][   transport.py][1871] : Compression: none
2025-06-13 12:45:17,895 [DEBUG][       Thread-255265][   transport.py][1871] : === End of kex handshake ===
2025-06-13 12:45:17,957 [DEBUG][       Thread-255265][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 12:45:17,957 [DEBUG][       Thread-255265][   transport.py][1871] : Switch to new keys ...
2025-06-13 12:45:17,958 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 12:45:17,958 [DEBUG][       Thread-255265][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 12:45:17,959 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 12:45:18,020 [DEBUG][       Thread-255265][   transport.py][1871] : userauth is OK
2025-06-13 12:45:18,021 [DEBUG][       Thread-255265][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 12:45:18,021 [DEBUG][       Thread-255265][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 12:45:18,021 [DEBUG][       Thread-255265][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 12:45:18,021 [DEBUG][       Thread-255265][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 12:45:18,040 [ INFO][       Thread-255265][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 12:45:18,040 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 12:45:18,041 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 12:45:19,100 [DEBUG][       Thread-255265][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 12:45:19,100 [DEBUG][       Thread-255265][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 12:45:19,148 [DEBUG][       Thread-255265][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 12:45:19,148 [DEBUG][       Thread-255265][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 12:45:19,158 [DEBUG][       Thread-255265][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 12:45:19,167 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 12:45:19,167 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 12:45:19,176 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 12:45:19,185 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 12:45:19,185 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 12:45:19,186 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 12:45:19,194 [DEBUG][       Thread-255265][   transport.py][1871] : EOF in transport thread
2025-06-13 12:45:22,758 [DEBUG][Thread-255267 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:45:29,196 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 12:45:29,196 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 12:45:29,196 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 12:45:29,196 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 12:45:29,707 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 12, 44, 55), 13.55, 39.19, 0.0, 16.02, 12.2, 0, 0, 0, 2, 0, 0),)
2025-06-13 12:45:29,707 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 12:44:55
2025-06-13 12:45:29,793 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 12:45:29,798 [DEBUG][       Thread-255268][   transport.py][1871] : starting thread (client mode): 0x867fc0a0
2025-06-13 12:45:29,798 [DEBUG][       Thread-255268][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 12:45:29,817 [DEBUG][       Thread-255268][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 12:45:29,817 [ INFO][       Thread-255268][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 12:45:29,821 [DEBUG][       Thread-255268][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 12:45:29,821 [DEBUG][       Thread-255268][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 12:45:29,821 [DEBUG][       Thread-255268][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 12:45:29,821 [DEBUG][       Thread-255268][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:45:29,821 [DEBUG][       Thread-255268][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:45:29,821 [DEBUG][       Thread-255268][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:45:29,821 [DEBUG][       Thread-255268][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:45:29,821 [DEBUG][       Thread-255268][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 12:45:29,821 [DEBUG][       Thread-255268][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 12:45:29,821 [DEBUG][       Thread-255268][   transport.py][1871] : client lang: <none>
2025-06-13 12:45:29,821 [DEBUG][       Thread-255268][   transport.py][1871] : server lang: <none>
2025-06-13 12:45:29,821 [DEBUG][       Thread-255268][   transport.py][1871] : kex follows: False
2025-06-13 12:45:29,821 [DEBUG][       Thread-255268][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 12:45:29,821 [DEBUG][       Thread-255268][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 12:45:29,821 [DEBUG][       Thread-255268][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 12:45:29,821 [DEBUG][       Thread-255268][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 12:45:29,821 [DEBUG][       Thread-255268][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 12:45:29,821 [DEBUG][       Thread-255268][   transport.py][1871] : Compression: none
2025-06-13 12:45:29,821 [DEBUG][       Thread-255268][   transport.py][1871] : === End of kex handshake ===
2025-06-13 12:45:29,835 [DEBUG][       Thread-255268][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 12:45:29,835 [DEBUG][       Thread-255268][   transport.py][1871] : Switch to new keys ...
2025-06-13 12:45:29,835 [DEBUG][       Thread-255268][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 12:45:29,836 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 12:45:29,836 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 12:45:29,836 [DEBUG][       Thread-255268][   transport.py][1871] : userauth is OK
2025-06-13 12:45:29,849 [ INFO][       Thread-255268][   transport.py][1871] : Authentication (password) successful!
2025-06-13 12:45:29,849 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 12:45:30,452 [DEBUG][       Thread-255268][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 12:45:30,452 [DEBUG][       Thread-255268][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 12:45:30,493 [DEBUG][       Thread-255268][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 12:45:30,493 [DEBUG][       Thread-255268][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 12:45:30,497 [DEBUG][       Thread-255268][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 12:45:30,511 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 12:45:30,511 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 12:45:30,513 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 12:45:30,515 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 12:45:30,522 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 12:45:30,524 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 12:45:30,525 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 12:45:30,525 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 12:45:30,525 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.447854 -999.00  +12.30  17.22     42   -0.00 1 1 1 1 1   888    0 13.49 47.12 ----- 13.7 17.2 32.6 24.6 16.9 -29.3 15.6 -30.4 15.5 -29.1 16.9 -27.1
2025-06-13 12:45:30,526 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 12:45:30,526 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 12:45:30,526 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.447854
2025-06-13 12:45:30,526 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 12:45:30,527 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 12:45:30,527 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 12:45:30,527 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 12:45:30,527 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 12:45:30,527 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T12:44:55', tmtdew=13.55, humidity=39.19, cloud=0.0, wind=16.02, temperature=12.2, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T10:44:54.586', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 12:45:30,527 [DEBUG][       Thread-255268][   transport.py][1871] : EOF in transport thread
2025-06-13 12:45:30,611 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 12:45:30,620 [DEBUG][       Thread-255271][   transport.py][1871] : starting thread (client mode): 0x86369ab0
2025-06-13 12:45:30,621 [DEBUG][       Thread-255271][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 12:45:30,636 [DEBUG][       Thread-255271][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 12:45:30,636 [ INFO][       Thread-255271][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 12:45:30,644 [DEBUG][       Thread-255271][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 12:45:30,644 [DEBUG][       Thread-255271][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 12:45:30,644 [DEBUG][       Thread-255271][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 12:45:30,644 [DEBUG][       Thread-255271][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:45:30,644 [DEBUG][       Thread-255271][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:45:30,644 [DEBUG][       Thread-255271][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:45:30,644 [DEBUG][       Thread-255271][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:45:30,644 [DEBUG][       Thread-255271][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 12:45:30,644 [DEBUG][       Thread-255271][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 12:45:30,644 [DEBUG][       Thread-255271][   transport.py][1871] : client lang: <none>
2025-06-13 12:45:30,644 [DEBUG][       Thread-255271][   transport.py][1871] : server lang: <none>
2025-06-13 12:45:30,644 [DEBUG][       Thread-255271][   transport.py][1871] : kex follows: False
2025-06-13 12:45:30,644 [DEBUG][       Thread-255271][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 12:45:30,645 [DEBUG][       Thread-255271][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 12:45:30,645 [DEBUG][       Thread-255271][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 12:45:30,645 [DEBUG][       Thread-255271][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 12:45:30,645 [DEBUG][       Thread-255271][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 12:45:30,645 [DEBUG][       Thread-255271][   transport.py][1871] : Compression: none
2025-06-13 12:45:30,645 [DEBUG][       Thread-255271][   transport.py][1871] : === End of kex handshake ===
2025-06-13 12:45:30,704 [DEBUG][       Thread-255271][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 12:45:30,705 [DEBUG][       Thread-255271][   transport.py][1871] : Switch to new keys ...
2025-06-13 12:45:30,705 [DEBUG][       Thread-255271][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 12:45:30,706 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 12:45:30,706 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 12:45:30,760 [DEBUG][       Thread-255271][   transport.py][1871] : userauth is OK
2025-06-13 12:45:30,760 [DEBUG][       Thread-255271][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 12:45:30,761 [DEBUG][       Thread-255271][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 12:45:30,761 [DEBUG][       Thread-255271][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 12:45:30,761 [DEBUG][       Thread-255271][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 12:45:30,780 [ INFO][       Thread-255271][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 12:45:30,780 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 12:45:30,781 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 12:45:31,792 [DEBUG][Thread-255273 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:45:31,818 [DEBUG][       Thread-255271][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 12:45:31,818 [DEBUG][       Thread-255271][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 12:45:31,868 [DEBUG][       Thread-255271][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 12:45:31,868 [DEBUG][       Thread-255271][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 12:45:31,877 [DEBUG][       Thread-255271][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 12:45:31,886 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 12:45:31,887 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 12:45:31,896 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 12:45:31,905 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 12:45:31,906 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 12:45:31,906 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 12:45:31,915 [DEBUG][       Thread-255271][   transport.py][1871] : EOF in transport thread
2025-06-13 12:45:40,816 [DEBUG][Thread-255274 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:45:41,917 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 12:45:41,917 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 12:45:41,917 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 12:45:41,920 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 12:45:42,413 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 12, 45, 27), 14.31, 36.83, 0.0, 16.8, 12.28, 0, 0, 0, 2, 0, 0),)
2025-06-13 12:45:42,413 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 12:45:27
2025-06-13 12:45:42,492 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 12:45:42,496 [DEBUG][       Thread-255275][   transport.py][1871] : starting thread (client mode): 0x867ff790
2025-06-13 12:45:42,496 [DEBUG][       Thread-255275][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 12:45:42,517 [DEBUG][       Thread-255275][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 12:45:42,517 [ INFO][       Thread-255275][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 12:45:42,520 [DEBUG][       Thread-255275][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 12:45:42,520 [DEBUG][       Thread-255275][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 12:45:42,520 [DEBUG][       Thread-255275][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 12:45:42,520 [DEBUG][       Thread-255275][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:45:42,520 [DEBUG][       Thread-255275][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:45:42,520 [DEBUG][       Thread-255275][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:45:42,520 [DEBUG][       Thread-255275][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:45:42,520 [DEBUG][       Thread-255275][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 12:45:42,520 [DEBUG][       Thread-255275][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 12:45:42,520 [DEBUG][       Thread-255275][   transport.py][1871] : client lang: <none>
2025-06-13 12:45:42,520 [DEBUG][       Thread-255275][   transport.py][1871] : server lang: <none>
2025-06-13 12:45:42,520 [DEBUG][       Thread-255275][   transport.py][1871] : kex follows: False
2025-06-13 12:45:42,520 [DEBUG][       Thread-255275][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 12:45:42,520 [DEBUG][       Thread-255275][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 12:45:42,520 [DEBUG][       Thread-255275][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 12:45:42,520 [DEBUG][       Thread-255275][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 12:45:42,520 [DEBUG][       Thread-255275][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 12:45:42,520 [DEBUG][       Thread-255275][   transport.py][1871] : Compression: none
2025-06-13 12:45:42,520 [DEBUG][       Thread-255275][   transport.py][1871] : === End of kex handshake ===
2025-06-13 12:45:42,534 [DEBUG][       Thread-255275][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 12:45:42,534 [DEBUG][       Thread-255275][   transport.py][1871] : Switch to new keys ...
2025-06-13 12:45:42,535 [DEBUG][       Thread-255275][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 12:45:42,535 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 12:45:42,535 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 12:45:42,536 [DEBUG][       Thread-255275][   transport.py][1871] : userauth is OK
2025-06-13 12:45:42,560 [ INFO][       Thread-255275][   transport.py][1871] : Authentication (password) successful!
2025-06-13 12:45:42,561 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 12:45:43,163 [DEBUG][       Thread-255275][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 12:45:43,163 [DEBUG][       Thread-255275][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 12:45:43,205 [DEBUG][       Thread-255275][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 12:45:43,205 [DEBUG][       Thread-255275][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 12:45:43,208 [DEBUG][       Thread-255275][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 12:45:43,221 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 12:45:43,221 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 12:45:43,224 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 12:45:43,227 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 12:45:43,233 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 12:45:43,236 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 12:45:43,236 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 12:45:43,237 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 12:45:43,237 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.447854 -999.00  +12.30  17.22     42   -0.00 1 1 1 1 1   888    0 13.49 47.12 ----- 13.7 17.2 32.6 24.6 16.9 -29.3 15.6 -30.4 15.5 -29.1 16.9 -27.1
2025-06-13 12:45:43,237 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 12:45:43,237 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 12:45:43,237 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.447854
2025-06-13 12:45:43,237 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 12:45:43,238 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 12:45:43,238 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 12:45:43,238 [DEBUG][       Thread-255275][   transport.py][1871] : EOF in transport thread
2025-06-13 12:45:43,238 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 12:45:43,239 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 12:45:43,239 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T12:45:27', tmtdew=14.31, humidity=36.83, cloud=0.0, wind=16.8, temperature=12.28, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T10:44:54.586', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 12:45:43,323 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 12:45:43,337 [DEBUG][       Thread-255278][   transport.py][1871] : starting thread (client mode): 0x863a7670
2025-06-13 12:45:43,337 [DEBUG][       Thread-255278][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 12:45:43,353 [DEBUG][       Thread-255278][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 12:45:43,353 [ INFO][       Thread-255278][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 12:45:43,361 [DEBUG][       Thread-255278][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 12:45:43,362 [DEBUG][       Thread-255278][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 12:45:43,362 [DEBUG][       Thread-255278][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 12:45:43,362 [DEBUG][       Thread-255278][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:45:43,362 [DEBUG][       Thread-255278][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:45:43,362 [DEBUG][       Thread-255278][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:45:43,362 [DEBUG][       Thread-255278][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:45:43,362 [DEBUG][       Thread-255278][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 12:45:43,362 [DEBUG][       Thread-255278][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 12:45:43,362 [DEBUG][       Thread-255278][   transport.py][1871] : client lang: <none>
2025-06-13 12:45:43,362 [DEBUG][       Thread-255278][   transport.py][1871] : server lang: <none>
2025-06-13 12:45:43,362 [DEBUG][       Thread-255278][   transport.py][1871] : kex follows: False
2025-06-13 12:45:43,362 [DEBUG][       Thread-255278][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 12:45:43,362 [DEBUG][       Thread-255278][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 12:45:43,362 [DEBUG][       Thread-255278][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 12:45:43,362 [DEBUG][       Thread-255278][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 12:45:43,363 [DEBUG][       Thread-255278][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 12:45:43,363 [DEBUG][       Thread-255278][   transport.py][1871] : Compression: none
2025-06-13 12:45:43,363 [DEBUG][       Thread-255278][   transport.py][1871] : === End of kex handshake ===
2025-06-13 12:45:43,422 [DEBUG][       Thread-255278][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 12:45:43,422 [DEBUG][       Thread-255278][   transport.py][1871] : Switch to new keys ...
2025-06-13 12:45:43,423 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 12:45:43,423 [DEBUG][       Thread-255278][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 12:45:43,424 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 12:45:43,481 [DEBUG][       Thread-255278][   transport.py][1871] : userauth is OK
2025-06-13 12:45:43,481 [DEBUG][       Thread-255278][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 12:45:43,481 [DEBUG][       Thread-255278][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 12:45:43,481 [DEBUG][       Thread-255278][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 12:45:43,481 [DEBUG][       Thread-255278][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 12:45:43,500 [ INFO][       Thread-255278][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 12:45:43,500 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 12:45:43,500 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 12:45:44,540 [DEBUG][       Thread-255278][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 12:45:44,541 [DEBUG][       Thread-255278][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 12:45:44,592 [DEBUG][       Thread-255278][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 12:45:44,592 [DEBUG][       Thread-255278][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 12:45:44,601 [DEBUG][       Thread-255278][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 12:45:44,610 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 12:45:44,610 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 12:45:44,619 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 12:45:44,629 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 12:45:44,629 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 12:45:44,629 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 12:45:44,637 [DEBUG][       Thread-255278][   transport.py][1871] : EOF in transport thread
2025-06-13 12:45:46,168 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:45:46,169 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:45:46,756 [DEBUG][Thread-255280 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:45:47,811 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:45:47,812 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:45:49,834 [DEBUG][Thread-255281 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:45:54,640 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 12:45:54,640 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 12:45:54,640 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 12:45:54,643 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 12:45:55,130 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 12, 45, 27), 14.31, 36.83, 0.0, 16.8, 12.28, 0, 0, 0, 2, 0, 0),)
2025-06-13 12:45:55,130 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 12:45:27
2025-06-13 12:45:55,209 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 12:45:55,214 [DEBUG][       Thread-255282][   transport.py][1871] : starting thread (client mode): 0x8636b490
2025-06-13 12:45:55,214 [DEBUG][       Thread-255282][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 12:45:55,235 [DEBUG][       Thread-255282][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 12:45:55,235 [ INFO][       Thread-255282][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 12:45:55,238 [DEBUG][       Thread-255282][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 12:45:55,238 [DEBUG][       Thread-255282][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 12:45:55,238 [DEBUG][       Thread-255282][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 12:45:55,238 [DEBUG][       Thread-255282][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:45:55,238 [DEBUG][       Thread-255282][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:45:55,238 [DEBUG][       Thread-255282][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:45:55,238 [DEBUG][       Thread-255282][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:45:55,238 [DEBUG][       Thread-255282][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 12:45:55,239 [DEBUG][       Thread-255282][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 12:45:55,239 [DEBUG][       Thread-255282][   transport.py][1871] : client lang: <none>
2025-06-13 12:45:55,239 [DEBUG][       Thread-255282][   transport.py][1871] : server lang: <none>
2025-06-13 12:45:55,239 [DEBUG][       Thread-255282][   transport.py][1871] : kex follows: False
2025-06-13 12:45:55,239 [DEBUG][       Thread-255282][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 12:45:55,239 [DEBUG][       Thread-255282][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 12:45:55,239 [DEBUG][       Thread-255282][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 12:45:55,239 [DEBUG][       Thread-255282][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 12:45:55,239 [DEBUG][       Thread-255282][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 12:45:55,239 [DEBUG][       Thread-255282][   transport.py][1871] : Compression: none
2025-06-13 12:45:55,239 [DEBUG][       Thread-255282][   transport.py][1871] : === End of kex handshake ===
2025-06-13 12:45:55,255 [DEBUG][       Thread-255282][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 12:45:55,256 [DEBUG][       Thread-255282][   transport.py][1871] : Switch to new keys ...
2025-06-13 12:45:55,257 [DEBUG][       Thread-255282][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 12:45:55,257 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 12:45:55,257 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 12:45:55,259 [DEBUG][       Thread-255282][   transport.py][1871] : userauth is OK
2025-06-13 12:45:55,284 [ INFO][       Thread-255282][   transport.py][1871] : Authentication (password) successful!
2025-06-13 12:45:55,284 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 12:45:55,932 [DEBUG][       Thread-255282][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 12:45:55,932 [DEBUG][       Thread-255282][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 12:45:55,974 [DEBUG][       Thread-255282][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 12:45:55,975 [DEBUG][       Thread-255282][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 12:45:55,979 [DEBUG][       Thread-255282][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 12:45:55,993 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 12:45:55,993 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 12:45:55,996 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 12:45:55,999 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 12:45:56,008 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 12:45:56,011 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 12:45:56,011 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 12:45:56,012 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 12:45:56,012 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.447854 -999.00  +12.30  17.22     42   -0.00 1 1 1 1 1   888    0 13.49 47.12 ----- 13.7 17.2 32.6 24.6 16.9 -29.3 15.6 -30.4 15.5 -29.1 16.9 -27.1
2025-06-13 12:45:56,012 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 12:45:56,012 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 12:45:56,012 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.447854
2025-06-13 12:45:56,013 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 12:45:56,013 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 12:45:56,013 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 12:45:56,013 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 12:45:56,013 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 12:45:56,014 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T12:45:27', tmtdew=14.31, humidity=36.83, cloud=0.0, wind=16.8, temperature=12.28, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T10:44:54.586', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 12:45:56,015 [DEBUG][       Thread-255282][   transport.py][1871] : EOF in transport thread
2025-06-13 12:45:56,098 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 12:45:56,107 [DEBUG][       Thread-255285][   transport.py][1871] : starting thread (client mode): 0x8636b2e0
2025-06-13 12:45:56,107 [DEBUG][       Thread-255285][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 12:45:56,122 [DEBUG][       Thread-255285][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 12:45:56,123 [ INFO][       Thread-255285][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 12:45:56,130 [DEBUG][       Thread-255285][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 12:45:56,130 [DEBUG][       Thread-255285][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 12:45:56,130 [DEBUG][       Thread-255285][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 12:45:56,130 [DEBUG][       Thread-255285][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:45:56,130 [DEBUG][       Thread-255285][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:45:56,130 [DEBUG][       Thread-255285][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:45:56,131 [DEBUG][       Thread-255285][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:45:56,131 [DEBUG][       Thread-255285][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 12:45:56,131 [DEBUG][       Thread-255285][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 12:45:56,131 [DEBUG][       Thread-255285][   transport.py][1871] : client lang: <none>
2025-06-13 12:45:56,131 [DEBUG][       Thread-255285][   transport.py][1871] : server lang: <none>
2025-06-13 12:45:56,131 [DEBUG][       Thread-255285][   transport.py][1871] : kex follows: False
2025-06-13 12:45:56,131 [DEBUG][       Thread-255285][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 12:45:56,131 [DEBUG][       Thread-255285][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 12:45:56,131 [DEBUG][       Thread-255285][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 12:45:56,131 [DEBUG][       Thread-255285][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 12:45:56,131 [DEBUG][       Thread-255285][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 12:45:56,131 [DEBUG][       Thread-255285][   transport.py][1871] : Compression: none
2025-06-13 12:45:56,131 [DEBUG][       Thread-255285][   transport.py][1871] : === End of kex handshake ===
2025-06-13 12:45:56,188 [DEBUG][       Thread-255285][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 12:45:56,188 [DEBUG][       Thread-255285][   transport.py][1871] : Switch to new keys ...
2025-06-13 12:45:56,189 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 12:45:56,190 [DEBUG][       Thread-255285][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 12:45:56,190 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 12:45:56,244 [DEBUG][       Thread-255285][   transport.py][1871] : userauth is OK
2025-06-13 12:45:56,245 [DEBUG][       Thread-255285][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 12:45:56,245 [DEBUG][       Thread-255285][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 12:45:56,245 [DEBUG][       Thread-255285][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 12:45:56,245 [DEBUG][       Thread-255285][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 12:45:56,263 [ INFO][       Thread-255285][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 12:45:56,264 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 12:45:56,264 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 12:45:57,270 [DEBUG][       Thread-255285][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 12:45:57,270 [DEBUG][       Thread-255285][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 12:45:57,320 [DEBUG][       Thread-255285][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 12:45:57,320 [DEBUG][       Thread-255285][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 12:45:57,329 [DEBUG][       Thread-255285][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 12:45:57,337 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 12:45:57,337 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 12:45:57,344 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 12:45:57,353 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 12:45:57,353 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 12:45:57,353 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 12:45:57,360 [DEBUG][       Thread-255285][   transport.py][1871] : EOF in transport thread
2025-06-13 12:45:58,867 [DEBUG][Thread-255287 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:46:07,363 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 12:46:07,363 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 12:46:07,364 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 12:46:07,366 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 12:46:07,844 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 12, 45, 59), 14.25, 36.98, 0.0, 17.96, 12.28, 0, 0, 0, 2, 0, 0),)
2025-06-13 12:46:07,844 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 12:45:59
2025-06-13 12:46:07,886 [DEBUG][Thread-255288 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:46:07,924 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 12:46:07,927 [DEBUG][       Thread-255289][   transport.py][1871] : starting thread (client mode): 0x86350910
2025-06-13 12:46:07,927 [DEBUG][       Thread-255289][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 12:46:07,947 [DEBUG][       Thread-255289][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 12:46:07,947 [ INFO][       Thread-255289][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 12:46:07,951 [DEBUG][       Thread-255289][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 12:46:07,951 [DEBUG][       Thread-255289][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 12:46:07,951 [DEBUG][       Thread-255289][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 12:46:07,951 [DEBUG][       Thread-255289][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:46:07,951 [DEBUG][       Thread-255289][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:46:07,951 [DEBUG][       Thread-255289][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:46:07,951 [DEBUG][       Thread-255289][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:46:07,951 [DEBUG][       Thread-255289][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 12:46:07,951 [DEBUG][       Thread-255289][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 12:46:07,951 [DEBUG][       Thread-255289][   transport.py][1871] : client lang: <none>
2025-06-13 12:46:07,951 [DEBUG][       Thread-255289][   transport.py][1871] : server lang: <none>
2025-06-13 12:46:07,951 [DEBUG][       Thread-255289][   transport.py][1871] : kex follows: False
2025-06-13 12:46:07,951 [DEBUG][       Thread-255289][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 12:46:07,951 [DEBUG][       Thread-255289][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 12:46:07,951 [DEBUG][       Thread-255289][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 12:46:07,951 [DEBUG][       Thread-255289][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 12:46:07,951 [DEBUG][       Thread-255289][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 12:46:07,951 [DEBUG][       Thread-255289][   transport.py][1871] : Compression: none
2025-06-13 12:46:07,951 [DEBUG][       Thread-255289][   transport.py][1871] : === End of kex handshake ===
2025-06-13 12:46:07,967 [DEBUG][       Thread-255289][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 12:46:07,968 [DEBUG][       Thread-255289][   transport.py][1871] : Switch to new keys ...
2025-06-13 12:46:07,968 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 12:46:07,969 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 12:46:07,969 [DEBUG][       Thread-255289][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 12:46:07,970 [DEBUG][       Thread-255289][   transport.py][1871] : userauth is OK
2025-06-13 12:46:07,983 [ INFO][       Thread-255289][   transport.py][1871] : Authentication (password) successful!
2025-06-13 12:46:07,983 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 12:46:08,647 [DEBUG][       Thread-255289][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 12:46:08,647 [DEBUG][       Thread-255289][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 12:46:08,689 [DEBUG][       Thread-255289][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 12:46:08,689 [DEBUG][       Thread-255289][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 12:46:08,693 [DEBUG][       Thread-255289][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 12:46:08,706 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 12:46:08,706 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 12:46:08,708 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 12:46:08,710 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 12:46:08,715 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 12:46:08,717 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 12:46:08,717 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 12:46:08,718 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 12:46:08,718 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.448549 -999.00  +12.30  17.15     41   -0.20 1 1 1 1 1   888    0 13.34 42.73 ----- 17.9 17.1 34.8 21.5 17.0 -28.9 15.7 -30.3 15.5 -29.7 16.9 -27.2
2025-06-13 12:46:08,718 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 12:46:08,718 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 12:46:08,718 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.448549
2025-06-13 12:46:08,718 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 12:46:08,719 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 12:46:08,719 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 12:46:08,719 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 12:46:08,719 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 12:46:08,719 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T12:45:59', tmtdew=14.25, humidity=36.98, cloud=0.0, wind=17.96, temperature=12.28, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T10:45:54.634', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 12:46:08,720 [DEBUG][       Thread-255289][   transport.py][1871] : EOF in transport thread
2025-06-13 12:46:08,803 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 12:46:08,815 [DEBUG][       Thread-255292][   transport.py][1871] : starting thread (client mode): 0x86893df0
2025-06-13 12:46:08,815 [DEBUG][       Thread-255292][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 12:46:08,833 [DEBUG][       Thread-255292][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 12:46:08,833 [ INFO][       Thread-255292][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 12:46:08,841 [DEBUG][       Thread-255292][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 12:46:08,841 [DEBUG][       Thread-255292][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 12:46:08,841 [DEBUG][       Thread-255292][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 12:46:08,841 [DEBUG][       Thread-255292][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:46:08,841 [DEBUG][       Thread-255292][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:46:08,841 [DEBUG][       Thread-255292][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:46:08,841 [DEBUG][       Thread-255292][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:46:08,841 [DEBUG][       Thread-255292][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 12:46:08,841 [DEBUG][       Thread-255292][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 12:46:08,841 [DEBUG][       Thread-255292][   transport.py][1871] : client lang: <none>
2025-06-13 12:46:08,841 [DEBUG][       Thread-255292][   transport.py][1871] : server lang: <none>
2025-06-13 12:46:08,841 [DEBUG][       Thread-255292][   transport.py][1871] : kex follows: False
2025-06-13 12:46:08,841 [DEBUG][       Thread-255292][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 12:46:08,841 [DEBUG][       Thread-255292][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 12:46:08,842 [DEBUG][       Thread-255292][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 12:46:08,842 [DEBUG][       Thread-255292][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 12:46:08,842 [DEBUG][       Thread-255292][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 12:46:08,842 [DEBUG][       Thread-255292][   transport.py][1871] : Compression: none
2025-06-13 12:46:08,842 [DEBUG][       Thread-255292][   transport.py][1871] : === End of kex handshake ===
2025-06-13 12:46:08,906 [DEBUG][       Thread-255292][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 12:46:08,907 [DEBUG][       Thread-255292][   transport.py][1871] : Switch to new keys ...
2025-06-13 12:46:08,907 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 12:46:08,908 [DEBUG][       Thread-255292][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 12:46:08,909 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 12:46:08,965 [DEBUG][       Thread-255292][   transport.py][1871] : userauth is OK
2025-06-13 12:46:08,965 [DEBUG][       Thread-255292][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 12:46:08,965 [DEBUG][       Thread-255292][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 12:46:08,965 [DEBUG][       Thread-255292][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 12:46:08,965 [DEBUG][       Thread-255292][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 12:46:08,985 [ INFO][       Thread-255292][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 12:46:08,985 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 12:46:08,985 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 12:46:09,990 [DEBUG][       Thread-255292][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 12:46:09,990 [DEBUG][       Thread-255292][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 12:46:10,040 [DEBUG][       Thread-255292][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 12:46:10,040 [DEBUG][       Thread-255292][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 12:46:10,049 [DEBUG][       Thread-255292][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 12:46:10,058 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 12:46:10,059 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 12:46:10,067 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 12:46:10,077 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 12:46:10,077 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 12:46:10,077 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 12:46:10,085 [DEBUG][       Thread-255292][   transport.py][1871] : EOF in transport thread
2025-06-13 12:46:13,072 [DEBUG][Thread-255294 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:46:16,908 [DEBUG][Thread-255295 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:46:20,084 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 12:46:20,084 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 12:46:20,084 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 12:46:20,087 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 12:46:20,561 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 12, 45, 59), 14.25, 36.98, 0.0, 17.96, 12.28, 0, 0, 0, 2, 0, 0),)
2025-06-13 12:46:20,561 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 12:45:59
2025-06-13 12:46:20,641 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 12:46:20,647 [DEBUG][       Thread-255296][   transport.py][1871] : starting thread (client mode): 0x863bd1e0
2025-06-13 12:46:20,650 [DEBUG][       Thread-255296][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 12:46:20,667 [DEBUG][       Thread-255296][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 12:46:20,668 [ INFO][       Thread-255296][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 12:46:20,670 [DEBUG][       Thread-255296][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 12:46:20,670 [DEBUG][       Thread-255296][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 12:46:20,670 [DEBUG][       Thread-255296][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 12:46:20,670 [DEBUG][       Thread-255296][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:46:20,670 [DEBUG][       Thread-255296][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:46:20,670 [DEBUG][       Thread-255296][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:46:20,670 [DEBUG][       Thread-255296][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:46:20,670 [DEBUG][       Thread-255296][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 12:46:20,670 [DEBUG][       Thread-255296][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 12:46:20,670 [DEBUG][       Thread-255296][   transport.py][1871] : client lang: <none>
2025-06-13 12:46:20,670 [DEBUG][       Thread-255296][   transport.py][1871] : server lang: <none>
2025-06-13 12:46:20,670 [DEBUG][       Thread-255296][   transport.py][1871] : kex follows: False
2025-06-13 12:46:20,670 [DEBUG][       Thread-255296][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 12:46:20,670 [DEBUG][       Thread-255296][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 12:46:20,670 [DEBUG][       Thread-255296][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 12:46:20,670 [DEBUG][       Thread-255296][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 12:46:20,670 [DEBUG][       Thread-255296][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 12:46:20,670 [DEBUG][       Thread-255296][   transport.py][1871] : Compression: none
2025-06-13 12:46:20,670 [DEBUG][       Thread-255296][   transport.py][1871] : === End of kex handshake ===
2025-06-13 12:46:20,679 [DEBUG][       Thread-255296][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 12:46:20,680 [DEBUG][       Thread-255296][   transport.py][1871] : Switch to new keys ...
2025-06-13 12:46:20,680 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 12:46:20,681 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 12:46:20,681 [DEBUG][       Thread-255296][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 12:46:20,681 [DEBUG][       Thread-255296][   transport.py][1871] : userauth is OK
2025-06-13 12:46:20,705 [ INFO][       Thread-255296][   transport.py][1871] : Authentication (password) successful!
2025-06-13 12:46:20,706 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 12:46:21,315 [DEBUG][       Thread-255296][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 12:46:21,315 [DEBUG][       Thread-255296][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 12:46:21,357 [DEBUG][       Thread-255296][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 12:46:21,357 [DEBUG][       Thread-255296][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 12:46:21,361 [DEBUG][       Thread-255296][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 12:46:21,376 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 12:46:21,376 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 12:46:21,378 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 12:46:21,379 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 12:46:21,385 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 12:46:21,387 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 12:46:21,387 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 12:46:21,388 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 12:46:21,388 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.448549 -999.00  +12.30  17.15     41   -0.20 1 1 1 1 1   888    0 13.34 42.73 ----- 17.9 17.1 34.8 21.5 17.0 -28.9 15.7 -30.3 15.5 -29.7 16.9 -27.2
2025-06-13 12:46:21,388 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 12:46:21,388 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 12:46:21,388 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.448549
2025-06-13 12:46:21,389 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 12:46:21,390 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 12:46:21,390 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 12:46:21,390 [DEBUG][       Thread-255296][   transport.py][1871] : EOF in transport thread
2025-06-13 12:46:21,390 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 12:46:21,391 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 12:46:21,391 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T12:45:59', tmtdew=14.25, humidity=36.98, cloud=0.0, wind=17.96, temperature=12.28, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T10:45:54.634', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 12:46:21,473 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 12:46:21,486 [DEBUG][       Thread-255299][   transport.py][1871] : starting thread (client mode): 0x84205360
2025-06-13 12:46:21,486 [DEBUG][       Thread-255299][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 12:46:21,503 [DEBUG][       Thread-255299][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 12:46:21,503 [ INFO][       Thread-255299][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 12:46:21,510 [DEBUG][       Thread-255299][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 12:46:21,511 [DEBUG][       Thread-255299][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 12:46:21,511 [DEBUG][       Thread-255299][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 12:46:21,511 [DEBUG][       Thread-255299][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:46:21,511 [DEBUG][       Thread-255299][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:46:21,511 [DEBUG][       Thread-255299][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:46:21,511 [DEBUG][       Thread-255299][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:46:21,511 [DEBUG][       Thread-255299][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 12:46:21,511 [DEBUG][       Thread-255299][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 12:46:21,511 [DEBUG][       Thread-255299][   transport.py][1871] : client lang: <none>
2025-06-13 12:46:21,511 [DEBUG][       Thread-255299][   transport.py][1871] : server lang: <none>
2025-06-13 12:46:21,511 [DEBUG][       Thread-255299][   transport.py][1871] : kex follows: False
2025-06-13 12:46:21,511 [DEBUG][       Thread-255299][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 12:46:21,511 [DEBUG][       Thread-255299][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 12:46:21,511 [DEBUG][       Thread-255299][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 12:46:21,512 [DEBUG][       Thread-255299][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 12:46:21,512 [DEBUG][       Thread-255299][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 12:46:21,512 [DEBUG][       Thread-255299][   transport.py][1871] : Compression: none
2025-06-13 12:46:21,512 [DEBUG][       Thread-255299][   transport.py][1871] : === End of kex handshake ===
2025-06-13 12:46:21,568 [DEBUG][       Thread-255299][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 12:46:21,569 [DEBUG][       Thread-255299][   transport.py][1871] : Switch to new keys ...
2025-06-13 12:46:21,570 [DEBUG][       Thread-255299][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 12:46:21,570 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 12:46:21,571 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 12:46:21,624 [DEBUG][       Thread-255299][   transport.py][1871] : userauth is OK
2025-06-13 12:46:21,625 [DEBUG][       Thread-255299][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 12:46:21,625 [DEBUG][       Thread-255299][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 12:46:21,625 [DEBUG][       Thread-255299][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 12:46:21,625 [DEBUG][       Thread-255299][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 12:46:21,650 [ INFO][       Thread-255299][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 12:46:21,650 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 12:46:21,651 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 12:46:22,704 [DEBUG][       Thread-255299][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 12:46:22,704 [DEBUG][       Thread-255299][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 12:46:22,763 [DEBUG][       Thread-255299][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 12:46:22,763 [DEBUG][       Thread-255299][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 12:46:22,775 [DEBUG][       Thread-255299][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 12:46:22,784 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 12:46:22,785 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 12:46:22,793 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 12:46:22,802 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 12:46:22,802 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 12:46:22,803 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 12:46:22,811 [DEBUG][       Thread-255299][   transport.py][1871] : EOF in transport thread
2025-06-13 12:46:25,940 [DEBUG][Thread-255301 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:46:32,812 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 12:46:32,812 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 12:46:32,812 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 12:46:32,813 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 12:46:33,306 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 12, 45, 59), 14.25, 36.98, 0.0, 17.96, 12.28, 0, 0, 0, 2, 0, 0),)
2025-06-13 12:46:33,306 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 12:45:59
2025-06-13 12:46:33,386 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 12:46:33,391 [DEBUG][       Thread-255302][   transport.py][1871] : starting thread (client mode): 0x84206c80
2025-06-13 12:46:33,391 [DEBUG][       Thread-255302][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 12:46:33,411 [DEBUG][       Thread-255302][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 12:46:33,411 [ INFO][       Thread-255302][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 12:46:33,415 [DEBUG][       Thread-255302][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 12:46:33,415 [DEBUG][       Thread-255302][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 12:46:33,415 [DEBUG][       Thread-255302][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 12:46:33,415 [DEBUG][       Thread-255302][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:46:33,415 [DEBUG][       Thread-255302][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:46:33,415 [DEBUG][       Thread-255302][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:46:33,415 [DEBUG][       Thread-255302][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:46:33,415 [DEBUG][       Thread-255302][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 12:46:33,415 [DEBUG][       Thread-255302][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 12:46:33,415 [DEBUG][       Thread-255302][   transport.py][1871] : client lang: <none>
2025-06-13 12:46:33,415 [DEBUG][       Thread-255302][   transport.py][1871] : server lang: <none>
2025-06-13 12:46:33,415 [DEBUG][       Thread-255302][   transport.py][1871] : kex follows: False
2025-06-13 12:46:33,415 [DEBUG][       Thread-255302][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 12:46:33,415 [DEBUG][       Thread-255302][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 12:46:33,415 [DEBUG][       Thread-255302][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 12:46:33,415 [DEBUG][       Thread-255302][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 12:46:33,415 [DEBUG][       Thread-255302][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 12:46:33,415 [DEBUG][       Thread-255302][   transport.py][1871] : Compression: none
2025-06-13 12:46:33,415 [DEBUG][       Thread-255302][   transport.py][1871] : === End of kex handshake ===
2025-06-13 12:46:33,430 [DEBUG][       Thread-255302][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 12:46:33,431 [DEBUG][       Thread-255302][   transport.py][1871] : Switch to new keys ...
2025-06-13 12:46:33,431 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 12:46:33,432 [DEBUG][       Thread-255302][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 12:46:33,432 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 12:46:33,433 [DEBUG][       Thread-255302][   transport.py][1871] : userauth is OK
2025-06-13 12:46:33,458 [ INFO][       Thread-255302][   transport.py][1871] : Authentication (password) successful!
2025-06-13 12:46:33,458 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 12:46:34,121 [DEBUG][       Thread-255302][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 12:46:34,121 [DEBUG][       Thread-255302][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 12:46:34,165 [DEBUG][       Thread-255302][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 12:46:34,165 [DEBUG][       Thread-255302][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 12:46:34,171 [DEBUG][       Thread-255302][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 12:46:34,182 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 12:46:34,182 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 12:46:34,184 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 12:46:34,186 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 12:46:34,192 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 12:46:34,194 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 12:46:34,195 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 12:46:34,195 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 12:46:34,195 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.448549 -999.00  +12.30  17.15     41   -0.20 1 1 1 1 1   888    0 13.34 42.73 ----- 17.9 17.1 34.8 21.5 17.0 -28.9 15.7 -30.3 15.5 -29.7 16.9 -27.2
2025-06-13 12:46:34,195 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 12:46:34,196 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 12:46:34,196 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.448549
2025-06-13 12:46:34,196 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 12:46:34,197 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 12:46:34,197 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 12:46:34,197 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 12:46:34,197 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 12:46:34,197 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T12:45:59', tmtdew=14.25, humidity=36.98, cloud=0.0, wind=17.96, temperature=12.28, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T10:45:54.634', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 12:46:34,198 [DEBUG][       Thread-255302][   transport.py][1871] : EOF in transport thread
2025-06-13 12:46:34,280 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 12:46:34,290 [DEBUG][       Thread-255305][   transport.py][1871] : starting thread (client mode): 0x863a6e60
2025-06-13 12:46:34,290 [DEBUG][       Thread-255305][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 12:46:34,305 [DEBUG][       Thread-255305][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 12:46:34,305 [ INFO][       Thread-255305][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 12:46:34,313 [DEBUG][       Thread-255305][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 12:46:34,314 [DEBUG][       Thread-255305][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 12:46:34,314 [DEBUG][       Thread-255305][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 12:46:34,314 [DEBUG][       Thread-255305][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:46:34,314 [DEBUG][       Thread-255305][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:46:34,314 [DEBUG][       Thread-255305][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:46:34,314 [DEBUG][       Thread-255305][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:46:34,314 [DEBUG][       Thread-255305][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 12:46:34,314 [DEBUG][       Thread-255305][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 12:46:34,314 [DEBUG][       Thread-255305][   transport.py][1871] : client lang: <none>
2025-06-13 12:46:34,314 [DEBUG][       Thread-255305][   transport.py][1871] : server lang: <none>
2025-06-13 12:46:34,314 [DEBUG][       Thread-255305][   transport.py][1871] : kex follows: False
2025-06-13 12:46:34,314 [DEBUG][       Thread-255305][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 12:46:34,314 [DEBUG][       Thread-255305][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 12:46:34,314 [DEBUG][       Thread-255305][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 12:46:34,314 [DEBUG][       Thread-255305][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 12:46:34,314 [DEBUG][       Thread-255305][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 12:46:34,314 [DEBUG][       Thread-255305][   transport.py][1871] : Compression: none
2025-06-13 12:46:34,314 [DEBUG][       Thread-255305][   transport.py][1871] : === End of kex handshake ===
2025-06-13 12:46:34,373 [DEBUG][       Thread-255305][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 12:46:34,374 [DEBUG][       Thread-255305][   transport.py][1871] : Switch to new keys ...
2025-06-13 12:46:34,374 [DEBUG][       Thread-255305][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 12:46:34,375 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 12:46:34,375 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 12:46:34,436 [DEBUG][       Thread-255305][   transport.py][1871] : userauth is OK
2025-06-13 12:46:34,437 [DEBUG][       Thread-255305][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 12:46:34,437 [DEBUG][       Thread-255305][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 12:46:34,437 [DEBUG][       Thread-255305][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 12:46:34,437 [DEBUG][       Thread-255305][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 12:46:34,455 [ INFO][       Thread-255305][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 12:46:34,456 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 12:46:34,456 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 12:46:34,960 [DEBUG][Thread-255307 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:46:35,455 [DEBUG][       Thread-255305][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 12:46:35,455 [DEBUG][       Thread-255305][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 12:46:35,504 [DEBUG][       Thread-255305][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 12:46:35,504 [DEBUG][       Thread-255305][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 12:46:35,513 [DEBUG][       Thread-255305][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 12:46:35,529 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 12:46:35,529 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 12:46:35,541 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 12:46:35,550 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 12:46:35,551 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 12:46:35,551 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 12:46:35,559 [DEBUG][       Thread-255305][   transport.py][1871] : EOF in transport thread
2025-06-13 12:46:43,982 [DEBUG][Thread-255308 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:46:45,562 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 12:46:45,562 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 12:46:45,562 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 12:46:45,565 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 12:46:46,042 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 12, 46, 31), 14.12, 37.49, 0.0, 16.64, 12.32, 0, 0, 0, 2, 0, 0),)
2025-06-13 12:46:46,042 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 12:46:31
2025-06-13 12:46:46,124 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 12:46:46,130 [DEBUG][       Thread-255309][   transport.py][1871] : starting thread (client mode): 0x84207880
2025-06-13 12:46:46,130 [DEBUG][       Thread-255309][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 12:46:46,151 [DEBUG][       Thread-255309][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 12:46:46,151 [ INFO][       Thread-255309][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 12:46:46,154 [DEBUG][       Thread-255309][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 12:46:46,154 [DEBUG][       Thread-255309][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 12:46:46,154 [DEBUG][       Thread-255309][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 12:46:46,154 [DEBUG][       Thread-255309][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:46:46,154 [DEBUG][       Thread-255309][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:46:46,154 [DEBUG][       Thread-255309][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:46:46,154 [DEBUG][       Thread-255309][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:46:46,154 [DEBUG][       Thread-255309][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 12:46:46,155 [DEBUG][       Thread-255309][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 12:46:46,155 [DEBUG][       Thread-255309][   transport.py][1871] : client lang: <none>
2025-06-13 12:46:46,155 [DEBUG][       Thread-255309][   transport.py][1871] : server lang: <none>
2025-06-13 12:46:46,155 [DEBUG][       Thread-255309][   transport.py][1871] : kex follows: False
2025-06-13 12:46:46,155 [DEBUG][       Thread-255309][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 12:46:46,155 [DEBUG][       Thread-255309][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 12:46:46,155 [DEBUG][       Thread-255309][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 12:46:46,155 [DEBUG][       Thread-255309][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 12:46:46,155 [DEBUG][       Thread-255309][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 12:46:46,155 [DEBUG][       Thread-255309][   transport.py][1871] : Compression: none
2025-06-13 12:46:46,155 [DEBUG][       Thread-255309][   transport.py][1871] : === End of kex handshake ===
2025-06-13 12:46:46,171 [DEBUG][       Thread-255309][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 12:46:46,172 [DEBUG][       Thread-255309][   transport.py][1871] : Switch to new keys ...
2025-06-13 12:46:46,173 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 12:46:46,173 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 12:46:46,173 [DEBUG][       Thread-255309][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 12:46:46,174 [DEBUG][       Thread-255309][   transport.py][1871] : userauth is OK
2025-06-13 12:46:46,198 [ INFO][       Thread-255309][   transport.py][1871] : Authentication (password) successful!
2025-06-13 12:46:46,199 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 12:46:46,323 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:46:46,325 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:46:46,839 [DEBUG][       Thread-255309][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 12:46:46,840 [DEBUG][       Thread-255309][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 12:46:46,881 [DEBUG][       Thread-255309][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 12:46:46,881 [DEBUG][       Thread-255309][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 12:46:46,883 [DEBUG][       Thread-255309][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 12:46:46,894 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 12:46:46,894 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 12:46:46,895 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 12:46:46,896 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 12:46:46,898 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 12:46:46,899 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 12:46:46,899 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 12:46:46,899 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 12:46:46,899 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.448896 -999.00  +12.30  16.12     41   -0.30 1 1 1 1 1   888    0 13.27 42.53 ----- 20.8 16.1 44.8 19.1 17.1 -29.1 15.7 -30.7 15.6 -28.2 16.9 -27.6
2025-06-13 12:46:46,899 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 12:46:46,899 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 12:46:46,899 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.448896
2025-06-13 12:46:46,900 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 12:46:46,900 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 12:46:46,900 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 12:46:46,900 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 12:46:46,900 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 12:46:46,900 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T12:46:31', tmtdew=14.12, humidity=37.49, cloud=0.0, wind=16.64, temperature=12.32, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T10:46:24.614', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 12:46:46,900 [DEBUG][       Thread-255309][   transport.py][1871] : EOF in transport thread
2025-06-13 12:46:46,972 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 12:46:46,983 [DEBUG][       Thread-255312][   transport.py][1871] : starting thread (client mode): 0x863a6e60
2025-06-13 12:46:46,983 [DEBUG][       Thread-255312][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 12:46:47,000 [DEBUG][       Thread-255312][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 12:46:47,000 [ INFO][       Thread-255312][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 12:46:47,008 [DEBUG][       Thread-255312][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 12:46:47,008 [DEBUG][       Thread-255312][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 12:46:47,008 [DEBUG][       Thread-255312][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 12:46:47,008 [DEBUG][       Thread-255312][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:46:47,008 [DEBUG][       Thread-255312][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:46:47,008 [DEBUG][       Thread-255312][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:46:47,008 [DEBUG][       Thread-255312][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:46:47,008 [DEBUG][       Thread-255312][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 12:46:47,008 [DEBUG][       Thread-255312][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 12:46:47,008 [DEBUG][       Thread-255312][   transport.py][1871] : client lang: <none>
2025-06-13 12:46:47,008 [DEBUG][       Thread-255312][   transport.py][1871] : server lang: <none>
2025-06-13 12:46:47,008 [DEBUG][       Thread-255312][   transport.py][1871] : kex follows: False
2025-06-13 12:46:47,008 [DEBUG][       Thread-255312][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 12:46:47,008 [DEBUG][       Thread-255312][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 12:46:47,008 [DEBUG][       Thread-255312][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 12:46:47,008 [DEBUG][       Thread-255312][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 12:46:47,008 [DEBUG][       Thread-255312][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 12:46:47,008 [DEBUG][       Thread-255312][   transport.py][1871] : Compression: none
2025-06-13 12:46:47,008 [DEBUG][       Thread-255312][   transport.py][1871] : === End of kex handshake ===
2025-06-13 12:46:47,064 [DEBUG][       Thread-255312][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 12:46:47,064 [DEBUG][       Thread-255312][   transport.py][1871] : Switch to new keys ...
2025-06-13 12:46:47,065 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 12:46:47,066 [DEBUG][       Thread-255312][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 12:46:47,066 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 12:46:47,125 [DEBUG][       Thread-255312][   transport.py][1871] : userauth is OK
2025-06-13 12:46:47,125 [DEBUG][       Thread-255312][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 12:46:47,125 [DEBUG][       Thread-255312][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 12:46:47,125 [DEBUG][       Thread-255312][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 12:46:47,125 [DEBUG][       Thread-255312][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 12:46:47,139 [ INFO][       Thread-255312][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 12:46:47,139 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 12:46:47,139 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 12:46:47,869 [DEBUG][Thread-255314 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:46:48,189 [DEBUG][       Thread-255312][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 12:46:48,189 [DEBUG][       Thread-255312][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 12:46:48,242 [DEBUG][       Thread-255312][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 12:46:48,242 [DEBUG][       Thread-255312][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 12:46:48,252 [DEBUG][       Thread-255312][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 12:46:48,265 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 12:46:48,265 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 12:46:48,274 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 12:46:48,283 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 12:46:48,283 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 12:46:48,283 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 12:46:48,291 [DEBUG][       Thread-255312][   transport.py][1871] : EOF in transport thread
2025-06-13 12:46:48,953 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:46:48,954 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:46:53,001 [DEBUG][Thread-255315 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:46:58,294 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 12:46:58,294 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 12:46:58,294 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 12:46:58,297 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 12:46:58,757 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 12, 46, 31), 14.12, 37.49, 0.0, 16.64, 12.32, 0, 0, 0, 2, 0, 0),)
2025-06-13 12:46:58,757 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 12:46:31
2025-06-13 12:46:58,838 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 12:46:58,843 [DEBUG][       Thread-255316][   transport.py][1871] : starting thread (client mode): 0x84206260
2025-06-13 12:46:58,843 [DEBUG][       Thread-255316][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 12:46:58,862 [DEBUG][       Thread-255316][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 12:46:58,863 [ INFO][       Thread-255316][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 12:46:58,864 [DEBUG][       Thread-255316][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 12:46:58,864 [DEBUG][       Thread-255316][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 12:46:58,864 [DEBUG][       Thread-255316][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 12:46:58,864 [DEBUG][       Thread-255316][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:46:58,865 [DEBUG][       Thread-255316][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:46:58,865 [DEBUG][       Thread-255316][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:46:58,865 [DEBUG][       Thread-255316][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:46:58,865 [DEBUG][       Thread-255316][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 12:46:58,865 [DEBUG][       Thread-255316][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 12:46:58,865 [DEBUG][       Thread-255316][   transport.py][1871] : client lang: <none>
2025-06-13 12:46:58,865 [DEBUG][       Thread-255316][   transport.py][1871] : server lang: <none>
2025-06-13 12:46:58,865 [DEBUG][       Thread-255316][   transport.py][1871] : kex follows: False
2025-06-13 12:46:58,865 [DEBUG][       Thread-255316][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 12:46:58,865 [DEBUG][       Thread-255316][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 12:46:58,865 [DEBUG][       Thread-255316][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 12:46:58,865 [DEBUG][       Thread-255316][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 12:46:58,865 [DEBUG][       Thread-255316][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 12:46:58,865 [DEBUG][       Thread-255316][   transport.py][1871] : Compression: none
2025-06-13 12:46:58,865 [DEBUG][       Thread-255316][   transport.py][1871] : === End of kex handshake ===
2025-06-13 12:46:58,877 [DEBUG][       Thread-255316][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 12:46:58,878 [DEBUG][       Thread-255316][   transport.py][1871] : Switch to new keys ...
2025-06-13 12:46:58,878 [DEBUG][       Thread-255316][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 12:46:58,879 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 12:46:58,879 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 12:46:58,880 [DEBUG][       Thread-255316][   transport.py][1871] : userauth is OK
2025-06-13 12:46:58,893 [ INFO][       Thread-255316][   transport.py][1871] : Authentication (password) successful!
2025-06-13 12:46:58,894 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 12:46:59,479 [DEBUG][       Thread-255316][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 12:46:59,479 [DEBUG][       Thread-255316][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 12:46:59,521 [DEBUG][       Thread-255316][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 12:46:59,521 [DEBUG][       Thread-255316][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 12:46:59,524 [DEBUG][       Thread-255316][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 12:46:59,535 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 12:46:59,535 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 12:46:59,537 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 12:46:59,539 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 12:46:59,543 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 12:46:59,544 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 12:46:59,544 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 12:46:59,544 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 12:46:59,544 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.448896 -999.00  +12.30  16.12     41   -0.30 1 1 1 1 1   888    0 13.27 42.53 ----- 20.8 16.1 44.8 19.1 17.1 -29.1 15.7 -30.7 15.6 -28.2 16.9 -27.6
2025-06-13 12:46:59,544 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 12:46:59,544 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 12:46:59,544 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.448896
2025-06-13 12:46:59,544 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 12:46:59,544 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 12:46:59,544 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 12:46:59,544 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 12:46:59,544 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 12:46:59,544 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T12:46:31', tmtdew=14.12, humidity=37.49, cloud=0.0, wind=16.64, temperature=12.32, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T10:46:24.614', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 12:46:59,545 [DEBUG][       Thread-255316][   transport.py][1871] : EOF in transport thread
2025-06-13 12:46:59,617 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 12:46:59,629 [DEBUG][       Thread-255319][   transport.py][1871] : starting thread (client mode): 0x867fcf70
2025-06-13 12:46:59,629 [DEBUG][       Thread-255319][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 12:46:59,654 [DEBUG][       Thread-255319][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 12:46:59,654 [ INFO][       Thread-255319][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 12:46:59,662 [DEBUG][       Thread-255319][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 12:46:59,662 [DEBUG][       Thread-255319][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 12:46:59,662 [DEBUG][       Thread-255319][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 12:46:59,662 [DEBUG][       Thread-255319][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:46:59,662 [DEBUG][       Thread-255319][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:46:59,662 [DEBUG][       Thread-255319][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:46:59,662 [DEBUG][       Thread-255319][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:46:59,662 [DEBUG][       Thread-255319][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 12:46:59,662 [DEBUG][       Thread-255319][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 12:46:59,662 [DEBUG][       Thread-255319][   transport.py][1871] : client lang: <none>
2025-06-13 12:46:59,662 [DEBUG][       Thread-255319][   transport.py][1871] : server lang: <none>
2025-06-13 12:46:59,662 [DEBUG][       Thread-255319][   transport.py][1871] : kex follows: False
2025-06-13 12:46:59,662 [DEBUG][       Thread-255319][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 12:46:59,662 [DEBUG][       Thread-255319][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 12:46:59,662 [DEBUG][       Thread-255319][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 12:46:59,662 [DEBUG][       Thread-255319][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 12:46:59,662 [DEBUG][       Thread-255319][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 12:46:59,662 [DEBUG][       Thread-255319][   transport.py][1871] : Compression: none
2025-06-13 12:46:59,662 [DEBUG][       Thread-255319][   transport.py][1871] : === End of kex handshake ===
2025-06-13 12:46:59,721 [DEBUG][       Thread-255319][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 12:46:59,721 [DEBUG][       Thread-255319][   transport.py][1871] : Switch to new keys ...
2025-06-13 12:46:59,722 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 12:46:59,723 [DEBUG][       Thread-255319][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 12:46:59,723 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 12:46:59,782 [DEBUG][       Thread-255319][   transport.py][1871] : userauth is OK
2025-06-13 12:46:59,782 [DEBUG][       Thread-255319][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 12:46:59,782 [DEBUG][       Thread-255319][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 12:46:59,782 [DEBUG][       Thread-255319][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 12:46:59,782 [DEBUG][       Thread-255319][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 12:46:59,807 [ INFO][       Thread-255319][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 12:46:59,807 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 12:46:59,808 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 12:47:00,792 [DEBUG][       Thread-255319][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 12:47:00,793 [DEBUG][       Thread-255319][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 12:47:00,843 [DEBUG][       Thread-255319][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 12:47:00,843 [DEBUG][       Thread-255319][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 12:47:00,852 [DEBUG][       Thread-255319][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 12:47:00,860 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 12:47:00,860 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 12:47:00,868 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 12:47:00,877 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 12:47:00,877 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 12:47:00,878 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 12:47:00,886 [DEBUG][       Thread-255319][   transport.py][1871] : EOF in transport thread
2025-06-13 12:47:02,038 [DEBUG][Thread-255321 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:47:10,888 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 12:47:10,888 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 12:47:10,888 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 12:47:10,891 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 12:47:11,057 [DEBUG][Thread-255322 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:47:11,361 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 12, 47, 2), 14.16, 37.39, 0.0, 17.57, 12.32, 0, 0, 0, 2, 0, 0),)
2025-06-13 12:47:11,361 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 12:47:02
2025-06-13 12:47:11,442 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 12:47:11,448 [DEBUG][       Thread-255323][   transport.py][1871] : starting thread (client mode): 0x84206770
2025-06-13 12:47:11,449 [DEBUG][       Thread-255323][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 12:47:11,469 [DEBUG][       Thread-255323][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 12:47:11,469 [ INFO][       Thread-255323][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 12:47:11,472 [DEBUG][       Thread-255323][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 12:47:11,473 [DEBUG][       Thread-255323][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 12:47:11,473 [DEBUG][       Thread-255323][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 12:47:11,473 [DEBUG][       Thread-255323][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:47:11,473 [DEBUG][       Thread-255323][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:47:11,473 [DEBUG][       Thread-255323][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:47:11,473 [DEBUG][       Thread-255323][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:47:11,473 [DEBUG][       Thread-255323][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 12:47:11,473 [DEBUG][       Thread-255323][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 12:47:11,473 [DEBUG][       Thread-255323][   transport.py][1871] : client lang: <none>
2025-06-13 12:47:11,473 [DEBUG][       Thread-255323][   transport.py][1871] : server lang: <none>
2025-06-13 12:47:11,473 [DEBUG][       Thread-255323][   transport.py][1871] : kex follows: False
2025-06-13 12:47:11,473 [DEBUG][       Thread-255323][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 12:47:11,473 [DEBUG][       Thread-255323][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 12:47:11,473 [DEBUG][       Thread-255323][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 12:47:11,473 [DEBUG][       Thread-255323][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 12:47:11,473 [DEBUG][       Thread-255323][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 12:47:11,473 [DEBUG][       Thread-255323][   transport.py][1871] : Compression: none
2025-06-13 12:47:11,473 [DEBUG][       Thread-255323][   transport.py][1871] : === End of kex handshake ===
2025-06-13 12:47:11,490 [DEBUG][       Thread-255323][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 12:47:11,490 [DEBUG][       Thread-255323][   transport.py][1871] : Switch to new keys ...
2025-06-13 12:47:11,491 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 12:47:11,491 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 12:47:11,491 [DEBUG][       Thread-255323][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 12:47:11,492 [DEBUG][       Thread-255323][   transport.py][1871] : userauth is OK
2025-06-13 12:47:11,505 [ INFO][       Thread-255323][   transport.py][1871] : Authentication (password) successful!
2025-06-13 12:47:11,505 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 12:47:12,153 [DEBUG][       Thread-255323][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 12:47:12,154 [DEBUG][       Thread-255323][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 12:47:12,197 [DEBUG][       Thread-255323][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 12:47:12,197 [DEBUG][       Thread-255323][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 12:47:12,200 [DEBUG][       Thread-255323][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 12:47:12,214 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 12:47:12,215 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 12:47:12,216 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 12:47:12,218 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 12:47:12,224 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 12:47:12,226 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 12:47:12,226 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 12:47:12,227 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 12:47:12,227 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.449243 -999.00  +12.10  20.64     41   -0.40 1 1 1 1 1   888    0 13.65 41.25 ----- 18.5 20.6 55.0 23.5 17.1 -29.5 15.6 -31.2 15.5 -30.0 16.9 -27.7
2025-06-13 12:47:12,227 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 12:47:12,227 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 12:47:12,227 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.449243
2025-06-13 12:47:12,227 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 12:47:12,228 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 12:47:12,228 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 12:47:12,228 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 12:47:12,228 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 12:47:12,228 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T12:47:02', tmtdew=14.16, humidity=37.39, cloud=0.0, wind=17.57, temperature=12.32, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T10:46:54.595', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 12:47:12,229 [DEBUG][       Thread-255323][   transport.py][1871] : EOF in transport thread
2025-06-13 12:47:12,312 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 12:47:12,323 [DEBUG][       Thread-255326][   transport.py][1871] : starting thread (client mode): 0x863a7a00
2025-06-13 12:47:12,323 [DEBUG][       Thread-255326][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 12:47:12,339 [DEBUG][       Thread-255326][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 12:47:12,339 [ INFO][       Thread-255326][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 12:47:12,347 [DEBUG][       Thread-255326][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 12:47:12,347 [DEBUG][       Thread-255326][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 12:47:12,347 [DEBUG][       Thread-255326][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 12:47:12,347 [DEBUG][       Thread-255326][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:47:12,347 [DEBUG][       Thread-255326][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:47:12,347 [DEBUG][       Thread-255326][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:47:12,347 [DEBUG][       Thread-255326][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:47:12,347 [DEBUG][       Thread-255326][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 12:47:12,347 [DEBUG][       Thread-255326][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 12:47:12,347 [DEBUG][       Thread-255326][   transport.py][1871] : client lang: <none>
2025-06-13 12:47:12,347 [DEBUG][       Thread-255326][   transport.py][1871] : server lang: <none>
2025-06-13 12:47:12,347 [DEBUG][       Thread-255326][   transport.py][1871] : kex follows: False
2025-06-13 12:47:12,348 [DEBUG][       Thread-255326][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 12:47:12,348 [DEBUG][       Thread-255326][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 12:47:12,348 [DEBUG][       Thread-255326][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 12:47:12,348 [DEBUG][       Thread-255326][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 12:47:12,348 [DEBUG][       Thread-255326][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 12:47:12,348 [DEBUG][       Thread-255326][   transport.py][1871] : Compression: none
2025-06-13 12:47:12,348 [DEBUG][       Thread-255326][   transport.py][1871] : === End of kex handshake ===
2025-06-13 12:47:12,404 [DEBUG][       Thread-255326][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 12:47:12,405 [DEBUG][       Thread-255326][   transport.py][1871] : Switch to new keys ...
2025-06-13 12:47:12,405 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 12:47:12,406 [DEBUG][       Thread-255326][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 12:47:12,407 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 12:47:12,465 [DEBUG][       Thread-255326][   transport.py][1871] : userauth is OK
2025-06-13 12:47:12,465 [DEBUG][       Thread-255326][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 12:47:12,465 [DEBUG][       Thread-255326][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 12:47:12,465 [DEBUG][       Thread-255326][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 12:47:12,465 [DEBUG][       Thread-255326][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 12:47:12,484 [ INFO][       Thread-255326][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 12:47:12,484 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 12:47:12,485 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 12:47:13,120 [DEBUG][Thread-255328 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:47:13,484 [DEBUG][       Thread-255326][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 12:47:13,484 [DEBUG][       Thread-255326][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 12:47:13,532 [DEBUG][       Thread-255326][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 12:47:13,532 [DEBUG][       Thread-255326][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 12:47:13,541 [DEBUG][       Thread-255326][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 12:47:13,550 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 12:47:13,550 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 12:47:13,559 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 12:47:13,568 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 12:47:13,568 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 12:47:13,569 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 12:47:13,577 [DEBUG][       Thread-255326][   transport.py][1871] : EOF in transport thread
2025-06-13 12:47:20,078 [DEBUG][Thread-255329 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:47:23,579 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 12:47:23,580 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 12:47:23,580 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 12:47:23,583 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 12:47:24,051 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 12, 47, 2), 14.16, 37.39, 0.0, 17.57, 12.32, 0, 0, 0, 2, 0, 0),)
2025-06-13 12:47:24,051 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 12:47:02
2025-06-13 12:47:24,130 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 12:47:24,134 [DEBUG][       Thread-255330][   transport.py][1871] : starting thread (client mode): 0x84205e10
2025-06-13 12:47:24,134 [DEBUG][       Thread-255330][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 12:47:24,154 [DEBUG][       Thread-255330][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 12:47:24,155 [ INFO][       Thread-255330][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 12:47:24,158 [DEBUG][       Thread-255330][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 12:47:24,158 [DEBUG][       Thread-255330][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 12:47:24,158 [DEBUG][       Thread-255330][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 12:47:24,158 [DEBUG][       Thread-255330][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:47:24,158 [DEBUG][       Thread-255330][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:47:24,158 [DEBUG][       Thread-255330][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:47:24,158 [DEBUG][       Thread-255330][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:47:24,158 [DEBUG][       Thread-255330][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 12:47:24,158 [DEBUG][       Thread-255330][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 12:47:24,158 [DEBUG][       Thread-255330][   transport.py][1871] : client lang: <none>
2025-06-13 12:47:24,158 [DEBUG][       Thread-255330][   transport.py][1871] : server lang: <none>
2025-06-13 12:47:24,158 [DEBUG][       Thread-255330][   transport.py][1871] : kex follows: False
2025-06-13 12:47:24,158 [DEBUG][       Thread-255330][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 12:47:24,158 [DEBUG][       Thread-255330][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 12:47:24,159 [DEBUG][       Thread-255330][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 12:47:24,159 [DEBUG][       Thread-255330][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 12:47:24,159 [DEBUG][       Thread-255330][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 12:47:24,159 [DEBUG][       Thread-255330][   transport.py][1871] : Compression: none
2025-06-13 12:47:24,159 [DEBUG][       Thread-255330][   transport.py][1871] : === End of kex handshake ===
2025-06-13 12:47:24,177 [DEBUG][       Thread-255330][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 12:47:24,178 [DEBUG][       Thread-255330][   transport.py][1871] : Switch to new keys ...
2025-06-13 12:47:24,178 [DEBUG][       Thread-255330][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 12:47:24,178 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 12:47:24,178 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 12:47:24,180 [DEBUG][       Thread-255330][   transport.py][1871] : userauth is OK
2025-06-13 12:47:24,205 [ INFO][       Thread-255330][   transport.py][1871] : Authentication (password) successful!
2025-06-13 12:47:24,205 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 12:47:24,839 [DEBUG][       Thread-255330][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 12:47:24,839 [DEBUG][       Thread-255330][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 12:47:24,881 [DEBUG][       Thread-255330][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 12:47:24,881 [DEBUG][       Thread-255330][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 12:47:24,885 [DEBUG][       Thread-255330][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 12:47:24,898 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 12:47:24,898 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 12:47:24,900 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 12:47:24,902 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 12:47:24,908 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 12:47:24,910 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 12:47:24,910 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 12:47:24,911 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 12:47:24,911 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.449243 -999.00  +12.10  20.64     41   -0.40 1 1 1 1 1   888    0 13.65 41.25 ----- 18.5 20.6 55.0 23.5 17.1 -29.5 15.6 -31.2 15.5 -30.0 16.9 -27.7
2025-06-13 12:47:24,911 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 12:47:24,911 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 12:47:24,911 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.449243
2025-06-13 12:47:24,912 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 12:47:24,912 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 12:47:24,912 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 12:47:24,912 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 12:47:24,913 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 12:47:24,913 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T12:47:02', tmtdew=14.16, humidity=37.39, cloud=0.0, wind=17.57, temperature=12.32, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T10:46:54.595', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 12:47:24,913 [DEBUG][       Thread-255330][   transport.py][1871] : EOF in transport thread
2025-06-13 12:47:24,996 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 12:47:25,006 [DEBUG][       Thread-255333][   transport.py][1871] : starting thread (client mode): 0x867fe080
2025-06-13 12:47:25,006 [DEBUG][       Thread-255333][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 12:47:25,021 [DEBUG][       Thread-255333][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 12:47:25,021 [ INFO][       Thread-255333][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 12:47:25,028 [DEBUG][       Thread-255333][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 12:47:25,028 [DEBUG][       Thread-255333][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 12:47:25,029 [DEBUG][       Thread-255333][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 12:47:25,029 [DEBUG][       Thread-255333][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:47:25,029 [DEBUG][       Thread-255333][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:47:25,029 [DEBUG][       Thread-255333][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:47:25,029 [DEBUG][       Thread-255333][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:47:25,029 [DEBUG][       Thread-255333][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 12:47:25,029 [DEBUG][       Thread-255333][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 12:47:25,029 [DEBUG][       Thread-255333][   transport.py][1871] : client lang: <none>
2025-06-13 12:47:25,029 [DEBUG][       Thread-255333][   transport.py][1871] : server lang: <none>
2025-06-13 12:47:25,029 [DEBUG][       Thread-255333][   transport.py][1871] : kex follows: False
2025-06-13 12:47:25,029 [DEBUG][       Thread-255333][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 12:47:25,029 [DEBUG][       Thread-255333][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 12:47:25,029 [DEBUG][       Thread-255333][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 12:47:25,029 [DEBUG][       Thread-255333][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 12:47:25,029 [DEBUG][       Thread-255333][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 12:47:25,029 [DEBUG][       Thread-255333][   transport.py][1871] : Compression: none
2025-06-13 12:47:25,029 [DEBUG][       Thread-255333][   transport.py][1871] : === End of kex handshake ===
2025-06-13 12:47:25,088 [DEBUG][       Thread-255333][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 12:47:25,089 [DEBUG][       Thread-255333][   transport.py][1871] : Switch to new keys ...
2025-06-13 12:47:25,089 [DEBUG][       Thread-255333][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 12:47:25,090 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 12:47:25,090 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 12:47:25,148 [DEBUG][       Thread-255333][   transport.py][1871] : userauth is OK
2025-06-13 12:47:25,148 [DEBUG][       Thread-255333][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 12:47:25,149 [DEBUG][       Thread-255333][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 12:47:25,149 [DEBUG][       Thread-255333][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 12:47:25,149 [DEBUG][       Thread-255333][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 12:47:25,168 [ INFO][       Thread-255333][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 12:47:25,168 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 12:47:25,169 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 12:47:26,203 [DEBUG][       Thread-255333][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 12:47:26,203 [DEBUG][       Thread-255333][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 12:47:26,256 [DEBUG][       Thread-255333][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 12:47:26,256 [DEBUG][       Thread-255333][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 12:47:26,265 [DEBUG][       Thread-255333][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 12:47:26,275 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 12:47:26,275 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 12:47:26,285 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 12:47:26,294 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 12:47:26,295 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 12:47:26,295 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 12:47:26,303 [DEBUG][       Thread-255333][   transport.py][1871] : EOF in transport thread
2025-06-13 12:47:29,112 [DEBUG][Thread-255335 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:47:36,305 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 12:47:36,305 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 12:47:36,305 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 12:47:36,307 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 12:47:36,795 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 12, 47, 2), 14.16, 37.39, 0.0, 17.57, 12.32, 0, 0, 0, 2, 0, 0),)
2025-06-13 12:47:36,795 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 12:47:02
2025-06-13 12:47:36,874 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 12:47:36,879 [DEBUG][       Thread-255336][   transport.py][1871] : starting thread (client mode): 0x863bf490
2025-06-13 12:47:36,880 [DEBUG][       Thread-255336][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 12:47:36,900 [DEBUG][       Thread-255336][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 12:47:36,900 [ INFO][       Thread-255336][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 12:47:36,903 [DEBUG][       Thread-255336][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 12:47:36,903 [DEBUG][       Thread-255336][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 12:47:36,903 [DEBUG][       Thread-255336][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 12:47:36,903 [DEBUG][       Thread-255336][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:47:36,903 [DEBUG][       Thread-255336][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:47:36,903 [DEBUG][       Thread-255336][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:47:36,903 [DEBUG][       Thread-255336][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:47:36,903 [DEBUG][       Thread-255336][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 12:47:36,903 [DEBUG][       Thread-255336][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 12:47:36,903 [DEBUG][       Thread-255336][   transport.py][1871] : client lang: <none>
2025-06-13 12:47:36,903 [DEBUG][       Thread-255336][   transport.py][1871] : server lang: <none>
2025-06-13 12:47:36,903 [DEBUG][       Thread-255336][   transport.py][1871] : kex follows: False
2025-06-13 12:47:36,903 [DEBUG][       Thread-255336][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 12:47:36,903 [DEBUG][       Thread-255336][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 12:47:36,903 [DEBUG][       Thread-255336][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 12:47:36,903 [DEBUG][       Thread-255336][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 12:47:36,903 [DEBUG][       Thread-255336][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 12:47:36,903 [DEBUG][       Thread-255336][   transport.py][1871] : Compression: none
2025-06-13 12:47:36,903 [DEBUG][       Thread-255336][   transport.py][1871] : === End of kex handshake ===
2025-06-13 12:47:36,919 [DEBUG][       Thread-255336][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 12:47:36,919 [DEBUG][       Thread-255336][   transport.py][1871] : Switch to new keys ...
2025-06-13 12:47:36,919 [DEBUG][       Thread-255336][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 12:47:36,919 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 12:47:36,919 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 12:47:36,920 [DEBUG][       Thread-255336][   transport.py][1871] : userauth is OK
2025-06-13 12:47:36,945 [ INFO][       Thread-255336][   transport.py][1871] : Authentication (password) successful!
2025-06-13 12:47:36,945 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 12:47:37,572 [DEBUG][       Thread-255336][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 12:47:37,573 [DEBUG][       Thread-255336][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 12:47:37,617 [DEBUG][       Thread-255336][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 12:47:37,617 [DEBUG][       Thread-255336][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 12:47:37,620 [DEBUG][       Thread-255336][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 12:47:37,633 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 12:47:37,634 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 12:47:37,636 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 12:47:37,637 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 12:47:37,643 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 12:47:37,645 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 12:47:37,645 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 12:47:37,646 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 12:47:37,646 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.449243 -999.00  +12.10  20.64     41   -0.40 1 1 1 1 1   888    0 13.65 41.25 ----- 18.5 20.6 55.0 23.5 17.1 -29.5 15.6 -31.2 15.5 -30.0 16.9 -27.7
2025-06-13 12:47:37,646 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 12:47:37,647 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 12:47:37,647 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.449243
2025-06-13 12:47:37,647 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 12:47:37,648 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 12:47:37,648 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 12:47:37,648 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 12:47:37,648 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 12:47:37,648 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T12:47:02', tmtdew=14.16, humidity=37.39, cloud=0.0, wind=17.57, temperature=12.32, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T10:46:54.595', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 12:47:37,649 [DEBUG][       Thread-255336][   transport.py][1871] : EOF in transport thread
2025-06-13 12:47:37,731 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 12:47:37,743 [DEBUG][       Thread-255339][   transport.py][1871] : starting thread (client mode): 0x863a5690
2025-06-13 12:47:37,743 [DEBUG][       Thread-255339][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 12:47:37,758 [DEBUG][       Thread-255339][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 12:47:37,758 [ INFO][       Thread-255339][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 12:47:37,765 [DEBUG][       Thread-255339][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 12:47:37,765 [DEBUG][       Thread-255339][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 12:47:37,766 [DEBUG][       Thread-255339][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 12:47:37,766 [DEBUG][       Thread-255339][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:47:37,766 [DEBUG][       Thread-255339][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:47:37,766 [DEBUG][       Thread-255339][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:47:37,766 [DEBUG][       Thread-255339][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:47:37,766 [DEBUG][       Thread-255339][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 12:47:37,766 [DEBUG][       Thread-255339][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 12:47:37,766 [DEBUG][       Thread-255339][   transport.py][1871] : client lang: <none>
2025-06-13 12:47:37,766 [DEBUG][       Thread-255339][   transport.py][1871] : server lang: <none>
2025-06-13 12:47:37,766 [DEBUG][       Thread-255339][   transport.py][1871] : kex follows: False
2025-06-13 12:47:37,766 [DEBUG][       Thread-255339][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 12:47:37,766 [DEBUG][       Thread-255339][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 12:47:37,766 [DEBUG][       Thread-255339][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 12:47:37,766 [DEBUG][       Thread-255339][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 12:47:37,766 [DEBUG][       Thread-255339][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 12:47:37,766 [DEBUG][       Thread-255339][   transport.py][1871] : Compression: none
2025-06-13 12:47:37,766 [DEBUG][       Thread-255339][   transport.py][1871] : === End of kex handshake ===
2025-06-13 12:47:37,824 [DEBUG][       Thread-255339][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 12:47:37,824 [DEBUG][       Thread-255339][   transport.py][1871] : Switch to new keys ...
2025-06-13 12:47:37,825 [DEBUG][       Thread-255339][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 12:47:37,825 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 12:47:37,826 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 12:47:37,891 [DEBUG][       Thread-255339][   transport.py][1871] : userauth is OK
2025-06-13 12:47:37,891 [DEBUG][       Thread-255339][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 12:47:37,891 [DEBUG][       Thread-255339][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 12:47:37,892 [DEBUG][       Thread-255339][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 12:47:37,892 [DEBUG][       Thread-255339][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 12:47:37,910 [ INFO][       Thread-255339][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 12:47:37,911 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 12:47:37,911 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 12:47:38,134 [DEBUG][Thread-255341 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:47:38,926 [DEBUG][       Thread-255339][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 12:47:38,926 [DEBUG][       Thread-255339][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 12:47:38,976 [DEBUG][       Thread-255339][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 12:47:38,976 [DEBUG][       Thread-255339][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 12:47:38,985 [DEBUG][       Thread-255339][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 12:47:38,994 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 12:47:38,995 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 12:47:39,004 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 12:47:39,013 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 12:47:39,013 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 12:47:39,013 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 12:47:39,028 [DEBUG][       Thread-255339][   transport.py][1871] : EOF in transport thread
2025-06-13 12:47:46,480 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:47:46,481 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:47:47,152 [DEBUG][Thread-255342 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:47:49,014 [DEBUG][Thread-255343 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:47:49,017 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 12:47:49,017 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 12:47:49,017 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 12:47:49,020 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 12:47:49,482 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 12, 47, 34), 14.29, 36.97, 0.0, 13.67, 12.21, 0, 0, 0, 2, 0, 0),)
2025-06-13 12:47:49,483 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 12:47:34
2025-06-13 12:47:49,562 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 12:47:49,567 [DEBUG][       Thread-255344][   transport.py][1871] : starting thread (client mode): 0x84207d60
2025-06-13 12:47:49,567 [DEBUG][       Thread-255344][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 12:47:49,588 [DEBUG][       Thread-255344][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 12:47:49,588 [ INFO][       Thread-255344][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 12:47:49,592 [DEBUG][       Thread-255344][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 12:47:49,592 [DEBUG][       Thread-255344][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 12:47:49,592 [DEBUG][       Thread-255344][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 12:47:49,592 [DEBUG][       Thread-255344][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:47:49,592 [DEBUG][       Thread-255344][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:47:49,592 [DEBUG][       Thread-255344][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:47:49,592 [DEBUG][       Thread-255344][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:47:49,592 [DEBUG][       Thread-255344][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 12:47:49,592 [DEBUG][       Thread-255344][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 12:47:49,592 [DEBUG][       Thread-255344][   transport.py][1871] : client lang: <none>
2025-06-13 12:47:49,592 [DEBUG][       Thread-255344][   transport.py][1871] : server lang: <none>
2025-06-13 12:47:49,592 [DEBUG][       Thread-255344][   transport.py][1871] : kex follows: False
2025-06-13 12:47:49,592 [DEBUG][       Thread-255344][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 12:47:49,592 [DEBUG][       Thread-255344][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 12:47:49,592 [DEBUG][       Thread-255344][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 12:47:49,592 [DEBUG][       Thread-255344][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 12:47:49,592 [DEBUG][       Thread-255344][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 12:47:49,592 [DEBUG][       Thread-255344][   transport.py][1871] : Compression: none
2025-06-13 12:47:49,592 [DEBUG][       Thread-255344][   transport.py][1871] : === End of kex handshake ===
2025-06-13 12:47:49,609 [DEBUG][       Thread-255344][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 12:47:49,609 [DEBUG][       Thread-255344][   transport.py][1871] : Switch to new keys ...
2025-06-13 12:47:49,610 [DEBUG][       Thread-255344][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 12:47:49,610 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 12:47:49,610 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 12:47:49,612 [DEBUG][       Thread-255344][   transport.py][1871] : userauth is OK
2025-06-13 12:47:49,636 [ INFO][       Thread-255344][   transport.py][1871] : Authentication (password) successful!
2025-06-13 12:47:49,637 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 12:47:50,086 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:47:50,087 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:47:50,274 [DEBUG][       Thread-255344][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 12:47:50,274 [DEBUG][       Thread-255344][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 12:47:50,317 [DEBUG][       Thread-255344][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 12:47:50,317 [DEBUG][       Thread-255344][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 12:47:50,321 [DEBUG][       Thread-255344][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 12:47:50,335 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 12:47:50,336 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 12:47:50,337 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 12:47:50,339 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 12:47:50,345 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 12:47:50,347 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 12:47:50,347 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 12:47:50,348 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 12:47:50,348 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.449590 -999.00  +12.30  19.50     43   +0.10 1 1 1 1 1   888    0 13.44 40.97 ----- 21.0 19.5 54.2 22.9 17.0 -28.4 15.7 -30.4 15.5 -28.2 16.9 -27.0
2025-06-13 12:47:50,348 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 12:47:50,348 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 12:47:50,348 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.449590
2025-06-13 12:47:50,349 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 12:47:50,349 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 12:47:50,349 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 12:47:50,349 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 12:47:50,350 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 12:47:50,350 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T12:47:34', tmtdew=14.29, humidity=36.97, cloud=0.0, wind=13.67, temperature=12.21, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T10:47:24.576', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 12:47:50,350 [DEBUG][       Thread-255344][   transport.py][1871] : EOF in transport thread
2025-06-13 12:47:50,433 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 12:47:50,443 [DEBUG][       Thread-255347][   transport.py][1871] : starting thread (client mode): 0x863a5690
2025-06-13 12:47:50,443 [DEBUG][       Thread-255347][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 12:47:50,458 [DEBUG][       Thread-255347][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 12:47:50,458 [ INFO][       Thread-255347][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 12:47:50,466 [DEBUG][       Thread-255347][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 12:47:50,466 [DEBUG][       Thread-255347][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 12:47:50,466 [DEBUG][       Thread-255347][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 12:47:50,466 [DEBUG][       Thread-255347][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:47:50,466 [DEBUG][       Thread-255347][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:47:50,466 [DEBUG][       Thread-255347][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:47:50,466 [DEBUG][       Thread-255347][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:47:50,466 [DEBUG][       Thread-255347][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 12:47:50,466 [DEBUG][       Thread-255347][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 12:47:50,466 [DEBUG][       Thread-255347][   transport.py][1871] : client lang: <none>
2025-06-13 12:47:50,466 [DEBUG][       Thread-255347][   transport.py][1871] : server lang: <none>
2025-06-13 12:47:50,466 [DEBUG][       Thread-255347][   transport.py][1871] : kex follows: False
2025-06-13 12:47:50,466 [DEBUG][       Thread-255347][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 12:47:50,466 [DEBUG][       Thread-255347][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 12:47:50,467 [DEBUG][       Thread-255347][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 12:47:50,467 [DEBUG][       Thread-255347][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 12:47:50,467 [DEBUG][       Thread-255347][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 12:47:50,467 [DEBUG][       Thread-255347][   transport.py][1871] : Compression: none
2025-06-13 12:47:50,467 [DEBUG][       Thread-255347][   transport.py][1871] : === End of kex handshake ===
2025-06-13 12:47:50,525 [DEBUG][       Thread-255347][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 12:47:50,525 [DEBUG][       Thread-255347][   transport.py][1871] : Switch to new keys ...
2025-06-13 12:47:50,526 [DEBUG][       Thread-255347][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 12:47:50,526 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 12:47:50,527 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 12:47:50,580 [DEBUG][       Thread-255347][   transport.py][1871] : userauth is OK
2025-06-13 12:47:50,581 [DEBUG][       Thread-255347][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 12:47:50,581 [DEBUG][       Thread-255347][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 12:47:50,581 [DEBUG][       Thread-255347][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 12:47:50,581 [DEBUG][       Thread-255347][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 12:47:50,603 [ INFO][       Thread-255347][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 12:47:50,603 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 12:47:50,604 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 12:47:51,628 [DEBUG][       Thread-255347][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 12:47:51,629 [DEBUG][       Thread-255347][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 12:47:51,684 [DEBUG][       Thread-255347][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 12:47:51,684 [DEBUG][       Thread-255347][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 12:47:51,700 [DEBUG][       Thread-255347][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 12:47:51,709 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 12:47:51,709 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 12:47:51,718 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 12:47:51,727 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 12:47:51,728 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 12:47:51,728 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 12:47:51,736 [DEBUG][       Thread-255347][   transport.py][1871] : EOF in transport thread
2025-06-13 12:47:56,174 [DEBUG][Thread-255349 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:48:01,738 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 12:48:01,739 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 12:48:01,740 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 12:48:01,742 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 12:48:02,205 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 12, 47, 34), 14.29, 36.97, 0.0, 13.67, 12.21, 0, 0, 0, 2, 0, 0),)
2025-06-13 12:48:02,205 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 12:47:34
2025-06-13 12:48:02,284 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 12:48:02,290 [DEBUG][       Thread-255350][   transport.py][1871] : starting thread (client mode): 0x86353280
2025-06-13 12:48:02,290 [DEBUG][       Thread-255350][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 12:48:02,310 [DEBUG][       Thread-255350][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 12:48:02,310 [ INFO][       Thread-255350][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 12:48:02,314 [DEBUG][       Thread-255350][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 12:48:02,314 [DEBUG][       Thread-255350][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 12:48:02,314 [DEBUG][       Thread-255350][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 12:48:02,314 [DEBUG][       Thread-255350][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:48:02,314 [DEBUG][       Thread-255350][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:48:02,314 [DEBUG][       Thread-255350][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:48:02,314 [DEBUG][       Thread-255350][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:48:02,314 [DEBUG][       Thread-255350][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 12:48:02,314 [DEBUG][       Thread-255350][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 12:48:02,314 [DEBUG][       Thread-255350][   transport.py][1871] : client lang: <none>
2025-06-13 12:48:02,314 [DEBUG][       Thread-255350][   transport.py][1871] : server lang: <none>
2025-06-13 12:48:02,314 [DEBUG][       Thread-255350][   transport.py][1871] : kex follows: False
2025-06-13 12:48:02,314 [DEBUG][       Thread-255350][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 12:48:02,314 [DEBUG][       Thread-255350][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 12:48:02,314 [DEBUG][       Thread-255350][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 12:48:02,314 [DEBUG][       Thread-255350][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 12:48:02,314 [DEBUG][       Thread-255350][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 12:48:02,315 [DEBUG][       Thread-255350][   transport.py][1871] : Compression: none
2025-06-13 12:48:02,315 [DEBUG][       Thread-255350][   transport.py][1871] : === End of kex handshake ===
2025-06-13 12:48:02,331 [DEBUG][       Thread-255350][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 12:48:02,331 [DEBUG][       Thread-255350][   transport.py][1871] : Switch to new keys ...
2025-06-13 12:48:02,332 [DEBUG][       Thread-255350][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 12:48:02,332 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 12:48:02,332 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 12:48:02,333 [DEBUG][       Thread-255350][   transport.py][1871] : userauth is OK
2025-06-13 12:48:02,346 [ INFO][       Thread-255350][   transport.py][1871] : Authentication (password) successful!
2025-06-13 12:48:02,346 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 12:48:03,043 [DEBUG][       Thread-255350][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 12:48:03,044 [DEBUG][       Thread-255350][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 12:48:03,085 [DEBUG][       Thread-255350][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 12:48:03,085 [DEBUG][       Thread-255350][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 12:48:03,088 [DEBUG][       Thread-255350][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 12:48:03,101 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 12:48:03,102 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 12:48:03,103 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 12:48:03,105 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 12:48:03,111 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 12:48:03,112 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 12:48:03,113 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 12:48:03,113 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 12:48:03,113 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.449590 -999.00  +12.30  19.50     43   +0.10 1 1 1 1 1   888    0 13.44 40.97 ----- 21.0 19.5 54.2 22.9 17.0 -28.4 15.7 -30.4 15.5 -28.2 16.9 -27.0
2025-06-13 12:48:03,114 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 12:48:03,114 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 12:48:03,114 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.449590
2025-06-13 12:48:03,114 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 12:48:03,115 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 12:48:03,115 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 12:48:03,115 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 12:48:03,115 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 12:48:03,115 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T12:47:34', tmtdew=14.29, humidity=36.97, cloud=0.0, wind=13.67, temperature=12.21, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T10:47:24.576', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 12:48:03,115 [DEBUG][       Thread-255350][   transport.py][1871] : EOF in transport thread
2025-06-13 12:48:03,192 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 12:48:03,204 [DEBUG][       Thread-255353][   transport.py][1871] : starting thread (client mode): 0x863ed210
2025-06-13 12:48:03,204 [DEBUG][       Thread-255353][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 12:48:03,218 [DEBUG][       Thread-255353][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 12:48:03,218 [ INFO][       Thread-255353][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 12:48:03,226 [DEBUG][       Thread-255353][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 12:48:03,226 [DEBUG][       Thread-255353][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 12:48:03,226 [DEBUG][       Thread-255353][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 12:48:03,226 [DEBUG][       Thread-255353][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:48:03,226 [DEBUG][       Thread-255353][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:48:03,226 [DEBUG][       Thread-255353][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:48:03,226 [DEBUG][       Thread-255353][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:48:03,226 [DEBUG][       Thread-255353][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 12:48:03,226 [DEBUG][       Thread-255353][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 12:48:03,226 [DEBUG][       Thread-255353][   transport.py][1871] : client lang: <none>
2025-06-13 12:48:03,227 [DEBUG][       Thread-255353][   transport.py][1871] : server lang: <none>
2025-06-13 12:48:03,227 [DEBUG][       Thread-255353][   transport.py][1871] : kex follows: False
2025-06-13 12:48:03,227 [DEBUG][       Thread-255353][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 12:48:03,227 [DEBUG][       Thread-255353][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 12:48:03,227 [DEBUG][       Thread-255353][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 12:48:03,227 [DEBUG][       Thread-255353][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 12:48:03,227 [DEBUG][       Thread-255353][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 12:48:03,227 [DEBUG][       Thread-255353][   transport.py][1871] : Compression: none
2025-06-13 12:48:03,227 [DEBUG][       Thread-255353][   transport.py][1871] : === End of kex handshake ===
2025-06-13 12:48:03,284 [DEBUG][       Thread-255353][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 12:48:03,284 [DEBUG][       Thread-255353][   transport.py][1871] : Switch to new keys ...
2025-06-13 12:48:03,285 [DEBUG][       Thread-255353][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 12:48:03,285 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 12:48:03,286 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 12:48:03,340 [DEBUG][       Thread-255353][   transport.py][1871] : userauth is OK
2025-06-13 12:48:03,340 [DEBUG][       Thread-255353][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 12:48:03,341 [DEBUG][       Thread-255353][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 12:48:03,341 [DEBUG][       Thread-255353][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 12:48:03,341 [DEBUG][       Thread-255353][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 12:48:03,359 [ INFO][       Thread-255353][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 12:48:03,359 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 12:48:03,360 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 12:48:04,378 [DEBUG][       Thread-255353][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 12:48:04,378 [DEBUG][       Thread-255353][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 12:48:04,428 [DEBUG][       Thread-255353][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 12:48:04,428 [DEBUG][       Thread-255353][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 12:48:04,437 [DEBUG][       Thread-255353][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 12:48:04,447 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 12:48:04,447 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 12:48:04,456 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 12:48:04,466 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 12:48:04,466 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 12:48:04,467 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 12:48:04,474 [DEBUG][       Thread-255353][   transport.py][1871] : EOF in transport thread
2025-06-13 12:48:05,210 [DEBUG][Thread-255355 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:48:13,169 [DEBUG][Thread-255356 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:48:14,232 [DEBUG][Thread-255357 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:48:14,477 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 12:48:14,477 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 12:48:14,477 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 12:48:14,480 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 12:48:14,944 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 12, 48, 6), 14.33, 36.87, 0.0, 14.03, 12.2, 0, 0, 0, 2, 0, 0),)
2025-06-13 12:48:14,944 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 12:48:06
2025-06-13 12:48:15,024 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 12:48:15,030 [DEBUG][       Thread-255358][   transport.py][1871] : starting thread (client mode): 0x867fc9d0
2025-06-13 12:48:15,030 [DEBUG][       Thread-255358][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 12:48:15,051 [DEBUG][       Thread-255358][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 12:48:15,051 [ INFO][       Thread-255358][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 12:48:15,055 [DEBUG][       Thread-255358][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 12:48:15,055 [DEBUG][       Thread-255358][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 12:48:15,055 [DEBUG][       Thread-255358][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 12:48:15,055 [DEBUG][       Thread-255358][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:48:15,055 [DEBUG][       Thread-255358][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:48:15,055 [DEBUG][       Thread-255358][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:48:15,055 [DEBUG][       Thread-255358][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:48:15,055 [DEBUG][       Thread-255358][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 12:48:15,055 [DEBUG][       Thread-255358][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 12:48:15,055 [DEBUG][       Thread-255358][   transport.py][1871] : client lang: <none>
2025-06-13 12:48:15,055 [DEBUG][       Thread-255358][   transport.py][1871] : server lang: <none>
2025-06-13 12:48:15,055 [DEBUG][       Thread-255358][   transport.py][1871] : kex follows: False
2025-06-13 12:48:15,055 [DEBUG][       Thread-255358][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 12:48:15,055 [DEBUG][       Thread-255358][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 12:48:15,055 [DEBUG][       Thread-255358][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 12:48:15,055 [DEBUG][       Thread-255358][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 12:48:15,055 [DEBUG][       Thread-255358][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 12:48:15,055 [DEBUG][       Thread-255358][   transport.py][1871] : Compression: none
2025-06-13 12:48:15,056 [DEBUG][       Thread-255358][   transport.py][1871] : === End of kex handshake ===
2025-06-13 12:48:15,072 [DEBUG][       Thread-255358][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 12:48:15,072 [DEBUG][       Thread-255358][   transport.py][1871] : Switch to new keys ...
2025-06-13 12:48:15,073 [DEBUG][       Thread-255358][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 12:48:15,073 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 12:48:15,073 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 12:48:15,074 [DEBUG][       Thread-255358][   transport.py][1871] : userauth is OK
2025-06-13 12:48:15,088 [ INFO][       Thread-255358][   transport.py][1871] : Authentication (password) successful!
2025-06-13 12:48:15,088 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 12:48:15,732 [DEBUG][       Thread-255358][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 12:48:15,733 [DEBUG][       Thread-255358][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 12:48:15,777 [DEBUG][       Thread-255358][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 12:48:15,777 [DEBUG][       Thread-255358][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 12:48:15,780 [DEBUG][       Thread-255358][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 12:48:15,789 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 12:48:15,789 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 12:48:15,798 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 12:48:15,800 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 12:48:15,805 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 12:48:15,807 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 12:48:15,807 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 12:48:15,808 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 12:48:15,808 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.449590 -999.00  +12.30  19.50     43   +0.10 1 1 1 1 1   888    0 13.44 40.97 ----- 21.0 19.5 54.2 22.9 17.0 -28.4 15.7 -30.4 15.5 -28.2 16.9 -27.0
2025-06-13 12:48:15,808 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 12:48:15,808 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 12:48:15,808 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.449590
2025-06-13 12:48:15,809 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 12:48:15,809 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 12:48:15,809 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 12:48:15,809 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 12:48:15,809 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 12:48:15,810 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T12:48:06', tmtdew=14.33, humidity=36.87, cloud=0.0, wind=14.03, temperature=12.2, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T10:47:24.576', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 12:48:15,811 [DEBUG][       Thread-255358][   transport.py][1871] : EOF in transport thread
2025-06-13 12:48:15,893 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 12:48:15,905 [DEBUG][       Thread-255361][   transport.py][1871] : starting thread (client mode): 0x863ef0d0
2025-06-13 12:48:15,905 [DEBUG][       Thread-255361][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 12:48:15,921 [DEBUG][       Thread-255361][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 12:48:15,921 [ INFO][       Thread-255361][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 12:48:15,928 [DEBUG][       Thread-255361][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 12:48:15,929 [DEBUG][       Thread-255361][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 12:48:15,929 [DEBUG][       Thread-255361][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 12:48:15,929 [DEBUG][       Thread-255361][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:48:15,929 [DEBUG][       Thread-255361][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:48:15,929 [DEBUG][       Thread-255361][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:48:15,929 [DEBUG][       Thread-255361][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:48:15,929 [DEBUG][       Thread-255361][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 12:48:15,929 [DEBUG][       Thread-255361][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 12:48:15,929 [DEBUG][       Thread-255361][   transport.py][1871] : client lang: <none>
2025-06-13 12:48:15,929 [DEBUG][       Thread-255361][   transport.py][1871] : server lang: <none>
2025-06-13 12:48:15,929 [DEBUG][       Thread-255361][   transport.py][1871] : kex follows: False
2025-06-13 12:48:15,929 [DEBUG][       Thread-255361][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 12:48:15,929 [DEBUG][       Thread-255361][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 12:48:15,929 [DEBUG][       Thread-255361][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 12:48:15,929 [DEBUG][       Thread-255361][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 12:48:15,930 [DEBUG][       Thread-255361][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 12:48:15,930 [DEBUG][       Thread-255361][   transport.py][1871] : Compression: none
2025-06-13 12:48:15,930 [DEBUG][       Thread-255361][   transport.py][1871] : === End of kex handshake ===
2025-06-13 12:48:15,989 [DEBUG][       Thread-255361][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 12:48:15,989 [DEBUG][       Thread-255361][   transport.py][1871] : Switch to new keys ...
2025-06-13 12:48:15,990 [DEBUG][       Thread-255361][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 12:48:15,990 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 12:48:15,991 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 12:48:16,045 [DEBUG][       Thread-255361][   transport.py][1871] : userauth is OK
2025-06-13 12:48:16,045 [DEBUG][       Thread-255361][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 12:48:16,045 [DEBUG][       Thread-255361][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 12:48:16,045 [DEBUG][       Thread-255361][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 12:48:16,045 [DEBUG][       Thread-255361][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 12:48:16,064 [ INFO][       Thread-255361][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 12:48:16,065 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 12:48:16,065 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 12:48:17,100 [DEBUG][       Thread-255361][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 12:48:17,100 [DEBUG][       Thread-255361][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 12:48:17,151 [DEBUG][       Thread-255361][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 12:48:17,152 [DEBUG][       Thread-255361][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 12:48:17,161 [DEBUG][       Thread-255361][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 12:48:17,170 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 12:48:17,170 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 12:48:17,179 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 12:48:17,188 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 12:48:17,188 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 12:48:17,189 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 12:48:17,197 [DEBUG][       Thread-255361][   transport.py][1871] : EOF in transport thread
2025-06-13 12:48:23,248 [DEBUG][Thread-255363 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:48:27,199 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 12:48:27,200 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 12:48:27,200 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 12:48:27,203 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 12:48:27,676 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 12, 48, 6), 14.33, 36.87, 0.0, 14.03, 12.2, 0, 0, 0, 2, 0, 0),)
2025-06-13 12:48:27,676 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 12:48:06
2025-06-13 12:48:27,756 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 12:48:27,760 [DEBUG][       Thread-255364][   transport.py][1871] : starting thread (client mode): 0x86390d60
2025-06-13 12:48:27,760 [DEBUG][       Thread-255364][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 12:48:27,782 [DEBUG][       Thread-255364][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 12:48:27,782 [ INFO][       Thread-255364][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 12:48:27,785 [DEBUG][       Thread-255364][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 12:48:27,785 [DEBUG][       Thread-255364][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 12:48:27,786 [DEBUG][       Thread-255364][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 12:48:27,786 [DEBUG][       Thread-255364][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:48:27,786 [DEBUG][       Thread-255364][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:48:27,786 [DEBUG][       Thread-255364][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:48:27,786 [DEBUG][       Thread-255364][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:48:27,786 [DEBUG][       Thread-255364][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 12:48:27,786 [DEBUG][       Thread-255364][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 12:48:27,786 [DEBUG][       Thread-255364][   transport.py][1871] : client lang: <none>
2025-06-13 12:48:27,786 [DEBUG][       Thread-255364][   transport.py][1871] : server lang: <none>
2025-06-13 12:48:27,786 [DEBUG][       Thread-255364][   transport.py][1871] : kex follows: False
2025-06-13 12:48:27,786 [DEBUG][       Thread-255364][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 12:48:27,786 [DEBUG][       Thread-255364][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 12:48:27,786 [DEBUG][       Thread-255364][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 12:48:27,786 [DEBUG][       Thread-255364][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 12:48:27,786 [DEBUG][       Thread-255364][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 12:48:27,786 [DEBUG][       Thread-255364][   transport.py][1871] : Compression: none
2025-06-13 12:48:27,786 [DEBUG][       Thread-255364][   transport.py][1871] : === End of kex handshake ===
2025-06-13 12:48:27,803 [DEBUG][       Thread-255364][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 12:48:27,804 [DEBUG][       Thread-255364][   transport.py][1871] : Switch to new keys ...
2025-06-13 12:48:27,804 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 12:48:27,804 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 12:48:27,805 [DEBUG][       Thread-255364][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 12:48:27,806 [DEBUG][       Thread-255364][   transport.py][1871] : userauth is OK
2025-06-13 12:48:27,819 [ INFO][       Thread-255364][   transport.py][1871] : Authentication (password) successful!
2025-06-13 12:48:27,820 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 12:48:28,449 [DEBUG][       Thread-255364][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 12:48:28,449 [DEBUG][       Thread-255364][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 12:48:28,493 [DEBUG][       Thread-255364][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 12:48:28,493 [DEBUG][       Thread-255364][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 12:48:28,496 [DEBUG][       Thread-255364][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 12:48:28,509 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 12:48:28,510 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 12:48:28,511 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 12:48:28,513 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 12:48:28,518 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 12:48:28,520 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 12:48:28,520 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 12:48:28,521 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 12:48:28,521 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.449938 -999.00  +12.20  18.37     41   -0.40 1 1 1 1 1   888    0 13.74 42.45 ----- 15.3 18.4 42.0 23.0 17.1 -29.2 15.7 -30.9 15.5 -29.8 17.0 -27.5
2025-06-13 12:48:28,521 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 12:48:28,521 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 12:48:28,521 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.449938
2025-06-13 12:48:28,521 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 12:48:28,522 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 12:48:28,522 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 12:48:28,522 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 12:48:28,522 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 12:48:28,522 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T12:48:06', tmtdew=14.33, humidity=36.87, cloud=0.0, wind=14.03, temperature=12.2, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T10:47:54.643', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 12:48:28,523 [DEBUG][       Thread-255364][   transport.py][1871] : EOF in transport thread
2025-06-13 12:48:28,606 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 12:48:28,615 [DEBUG][       Thread-255367][   transport.py][1871] : starting thread (client mode): 0x8636b4f0
2025-06-13 12:48:28,615 [DEBUG][       Thread-255367][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 12:48:28,630 [DEBUG][       Thread-255367][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 12:48:28,630 [ INFO][       Thread-255367][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 12:48:28,638 [DEBUG][       Thread-255367][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 12:48:28,638 [DEBUG][       Thread-255367][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 12:48:28,638 [DEBUG][       Thread-255367][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 12:48:28,638 [DEBUG][       Thread-255367][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:48:28,638 [DEBUG][       Thread-255367][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:48:28,638 [DEBUG][       Thread-255367][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:48:28,638 [DEBUG][       Thread-255367][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:48:28,638 [DEBUG][       Thread-255367][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 12:48:28,638 [DEBUG][       Thread-255367][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 12:48:28,638 [DEBUG][       Thread-255367][   transport.py][1871] : client lang: <none>
2025-06-13 12:48:28,638 [DEBUG][       Thread-255367][   transport.py][1871] : server lang: <none>
2025-06-13 12:48:28,638 [DEBUG][       Thread-255367][   transport.py][1871] : kex follows: False
2025-06-13 12:48:28,638 [DEBUG][       Thread-255367][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 12:48:28,638 [DEBUG][       Thread-255367][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 12:48:28,638 [DEBUG][       Thread-255367][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 12:48:28,638 [DEBUG][       Thread-255367][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 12:48:28,639 [DEBUG][       Thread-255367][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 12:48:28,639 [DEBUG][       Thread-255367][   transport.py][1871] : Compression: none
2025-06-13 12:48:28,639 [DEBUG][       Thread-255367][   transport.py][1871] : === End of kex handshake ===
2025-06-13 12:48:28,702 [DEBUG][       Thread-255367][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 12:48:28,702 [DEBUG][       Thread-255367][   transport.py][1871] : Switch to new keys ...
2025-06-13 12:48:28,702 [DEBUG][       Thread-255367][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 12:48:28,702 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 12:48:28,702 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 12:48:28,760 [DEBUG][       Thread-255367][   transport.py][1871] : userauth is OK
2025-06-13 12:48:28,761 [DEBUG][       Thread-255367][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 12:48:28,761 [DEBUG][       Thread-255367][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 12:48:28,761 [DEBUG][       Thread-255367][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 12:48:28,761 [DEBUG][       Thread-255367][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 12:48:28,779 [ INFO][       Thread-255367][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 12:48:28,780 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 12:48:28,780 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 12:48:29,841 [DEBUG][       Thread-255367][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 12:48:29,841 [DEBUG][       Thread-255367][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 12:48:29,892 [DEBUG][       Thread-255367][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 12:48:29,892 [DEBUG][       Thread-255367][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 12:48:29,901 [DEBUG][       Thread-255367][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 12:48:29,910 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 12:48:29,910 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 12:48:29,919 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 12:48:29,928 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 12:48:29,929 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 12:48:29,929 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 12:48:29,937 [DEBUG][       Thread-255367][   transport.py][1871] : EOF in transport thread
2025-06-13 12:48:32,273 [DEBUG][Thread-255369 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:48:39,929 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 12:48:39,930 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 12:48:39,930 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 12:48:39,931 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 12:48:40,404 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 12, 48, 6), 14.33, 36.87, 0.0, 14.03, 12.2, 0, 0, 0, 2, 0, 0),)
2025-06-13 12:48:40,405 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 12:48:06
2025-06-13 12:48:40,485 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 12:48:40,491 [DEBUG][       Thread-255370][   transport.py][1871] : starting thread (client mode): 0x86392f80
2025-06-13 12:48:40,491 [DEBUG][       Thread-255370][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 12:48:40,511 [DEBUG][       Thread-255370][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 12:48:40,512 [ INFO][       Thread-255370][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 12:48:40,515 [DEBUG][       Thread-255370][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 12:48:40,515 [DEBUG][       Thread-255370][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 12:48:40,515 [DEBUG][       Thread-255370][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 12:48:40,515 [DEBUG][       Thread-255370][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:48:40,515 [DEBUG][       Thread-255370][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:48:40,515 [DEBUG][       Thread-255370][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:48:40,515 [DEBUG][       Thread-255370][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:48:40,515 [DEBUG][       Thread-255370][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 12:48:40,515 [DEBUG][       Thread-255370][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 12:48:40,515 [DEBUG][       Thread-255370][   transport.py][1871] : client lang: <none>
2025-06-13 12:48:40,515 [DEBUG][       Thread-255370][   transport.py][1871] : server lang: <none>
2025-06-13 12:48:40,515 [DEBUG][       Thread-255370][   transport.py][1871] : kex follows: False
2025-06-13 12:48:40,515 [DEBUG][       Thread-255370][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 12:48:40,516 [DEBUG][       Thread-255370][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 12:48:40,516 [DEBUG][       Thread-255370][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 12:48:40,516 [DEBUG][       Thread-255370][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 12:48:40,516 [DEBUG][       Thread-255370][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 12:48:40,516 [DEBUG][       Thread-255370][   transport.py][1871] : Compression: none
2025-06-13 12:48:40,516 [DEBUG][       Thread-255370][   transport.py][1871] : === End of kex handshake ===
2025-06-13 12:48:40,533 [DEBUG][       Thread-255370][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 12:48:40,533 [DEBUG][       Thread-255370][   transport.py][1871] : Switch to new keys ...
2025-06-13 12:48:40,534 [DEBUG][       Thread-255370][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 12:48:40,534 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 12:48:40,534 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 12:48:40,535 [DEBUG][       Thread-255370][   transport.py][1871] : userauth is OK
2025-06-13 12:48:40,548 [ INFO][       Thread-255370][   transport.py][1871] : Authentication (password) successful!
2025-06-13 12:48:40,549 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 12:48:41,146 [DEBUG][       Thread-255370][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 12:48:41,146 [DEBUG][       Thread-255370][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 12:48:41,189 [DEBUG][       Thread-255370][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 12:48:41,189 [DEBUG][       Thread-255370][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 12:48:41,193 [DEBUG][       Thread-255370][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 12:48:41,206 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 12:48:41,207 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 12:48:41,209 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 12:48:41,211 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 12:48:41,218 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 12:48:41,220 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 12:48:41,220 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 12:48:41,221 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 12:48:41,221 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.449938 -999.00  +12.20  18.37     41   -0.40 1 1 1 1 1   888    0 13.74 42.45 ----- 15.3 18.4 42.0 23.0 17.1 -29.2 15.7 -30.9 15.5 -29.8 17.0 -27.5
2025-06-13 12:48:41,221 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 12:48:41,221 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 12:48:41,221 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.449938
2025-06-13 12:48:41,222 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 12:48:41,222 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 12:48:41,222 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 12:48:41,222 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 12:48:41,222 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 12:48:41,223 [DEBUG][       Thread-255370][   transport.py][1871] : EOF in transport thread
2025-06-13 12:48:41,223 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T12:48:06', tmtdew=14.33, humidity=36.87, cloud=0.0, wind=14.03, temperature=12.2, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T10:47:54.643', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 12:48:41,293 [DEBUG][Thread-255373 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:48:41,306 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 12:48:41,319 [DEBUG][       Thread-255374][   transport.py][1871] : starting thread (client mode): 0x863a7f10
2025-06-13 12:48:41,319 [DEBUG][       Thread-255374][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 12:48:41,336 [DEBUG][       Thread-255374][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 12:48:41,336 [ INFO][       Thread-255374][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 12:48:41,346 [DEBUG][       Thread-255374][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 12:48:41,346 [DEBUG][       Thread-255374][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 12:48:41,346 [DEBUG][       Thread-255374][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 12:48:41,346 [DEBUG][       Thread-255374][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:48:41,347 [DEBUG][       Thread-255374][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:48:41,347 [DEBUG][       Thread-255374][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:48:41,347 [DEBUG][       Thread-255374][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:48:41,347 [DEBUG][       Thread-255374][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 12:48:41,347 [DEBUG][       Thread-255374][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 12:48:41,347 [DEBUG][       Thread-255374][   transport.py][1871] : client lang: <none>
2025-06-13 12:48:41,347 [DEBUG][       Thread-255374][   transport.py][1871] : server lang: <none>
2025-06-13 12:48:41,347 [DEBUG][       Thread-255374][   transport.py][1871] : kex follows: False
2025-06-13 12:48:41,347 [DEBUG][       Thread-255374][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 12:48:41,347 [DEBUG][       Thread-255374][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 12:48:41,347 [DEBUG][       Thread-255374][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 12:48:41,347 [DEBUG][       Thread-255374][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 12:48:41,347 [DEBUG][       Thread-255374][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 12:48:41,347 [DEBUG][       Thread-255374][   transport.py][1871] : Compression: none
2025-06-13 12:48:41,347 [DEBUG][       Thread-255374][   transport.py][1871] : === End of kex handshake ===
2025-06-13 12:48:41,400 [DEBUG][       Thread-255374][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 12:48:41,401 [DEBUG][       Thread-255374][   transport.py][1871] : Switch to new keys ...
2025-06-13 12:48:41,401 [DEBUG][       Thread-255374][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 12:48:41,402 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 12:48:41,402 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 12:48:41,457 [DEBUG][       Thread-255374][   transport.py][1871] : userauth is OK
2025-06-13 12:48:41,457 [DEBUG][       Thread-255374][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 12:48:41,457 [DEBUG][       Thread-255374][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 12:48:41,457 [DEBUG][       Thread-255374][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 12:48:41,458 [DEBUG][       Thread-255374][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 12:48:41,477 [ INFO][       Thread-255374][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 12:48:41,477 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 12:48:41,477 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 12:48:42,487 [DEBUG][       Thread-255374][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 12:48:42,487 [DEBUG][       Thread-255374][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 12:48:42,536 [DEBUG][       Thread-255374][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 12:48:42,536 [DEBUG][       Thread-255374][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 12:48:42,545 [DEBUG][       Thread-255374][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 12:48:42,554 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 12:48:42,555 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 12:48:42,564 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 12:48:42,573 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 12:48:42,573 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 12:48:42,574 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 12:48:42,582 [DEBUG][       Thread-255374][   transport.py][1871] : EOF in transport thread
2025-06-13 12:48:46,624 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:48:46,625 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:48:50,119 [DEBUG][Thread-255376 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:48:50,314 [DEBUG][Thread-255377 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:48:51,168 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:48:51,169 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:48:52,584 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 12:48:52,585 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 12:48:52,585 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 12:48:52,587 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 12:48:53,057 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 12, 48, 38), 14.24, 37.1, 0.0, 16.76, 12.25, 0, 0, 0, 2, 0, 0),)
2025-06-13 12:48:53,057 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 12:48:38
2025-06-13 12:48:53,139 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 12:48:53,143 [DEBUG][       Thread-255378][   transport.py][1871] : starting thread (client mode): 0x86351000
2025-06-13 12:48:53,143 [DEBUG][       Thread-255378][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 12:48:53,163 [DEBUG][       Thread-255378][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 12:48:53,163 [ INFO][       Thread-255378][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 12:48:53,166 [DEBUG][       Thread-255378][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 12:48:53,166 [DEBUG][       Thread-255378][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 12:48:53,166 [DEBUG][       Thread-255378][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 12:48:53,166 [DEBUG][       Thread-255378][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:48:53,166 [DEBUG][       Thread-255378][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:48:53,166 [DEBUG][       Thread-255378][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:48:53,166 [DEBUG][       Thread-255378][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:48:53,166 [DEBUG][       Thread-255378][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 12:48:53,166 [DEBUG][       Thread-255378][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 12:48:53,166 [DEBUG][       Thread-255378][   transport.py][1871] : client lang: <none>
2025-06-13 12:48:53,166 [DEBUG][       Thread-255378][   transport.py][1871] : server lang: <none>
2025-06-13 12:48:53,166 [DEBUG][       Thread-255378][   transport.py][1871] : kex follows: False
2025-06-13 12:48:53,166 [DEBUG][       Thread-255378][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 12:48:53,166 [DEBUG][       Thread-255378][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 12:48:53,166 [DEBUG][       Thread-255378][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 12:48:53,166 [DEBUG][       Thread-255378][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 12:48:53,166 [DEBUG][       Thread-255378][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 12:48:53,166 [DEBUG][       Thread-255378][   transport.py][1871] : Compression: none
2025-06-13 12:48:53,166 [DEBUG][       Thread-255378][   transport.py][1871] : === End of kex handshake ===
2025-06-13 12:48:53,181 [DEBUG][       Thread-255378][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 12:48:53,182 [DEBUG][       Thread-255378][   transport.py][1871] : Switch to new keys ...
2025-06-13 12:48:53,182 [DEBUG][       Thread-255378][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 12:48:53,183 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 12:48:53,183 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 12:48:53,184 [DEBUG][       Thread-255378][   transport.py][1871] : userauth is OK
2025-06-13 12:48:53,208 [ INFO][       Thread-255378][   transport.py][1871] : Authentication (password) successful!
2025-06-13 12:48:53,209 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 12:48:53,827 [DEBUG][       Thread-255378][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 12:48:53,827 [DEBUG][       Thread-255378][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 12:48:53,869 [DEBUG][       Thread-255378][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 12:48:53,869 [DEBUG][       Thread-255378][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 12:48:53,873 [DEBUG][       Thread-255378][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 12:48:53,883 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 12:48:53,883 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 12:48:53,884 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 12:48:53,885 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 12:48:53,890 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 12:48:53,892 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 12:48:53,892 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 12:48:53,893 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 12:48:53,893 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.450285 -999.00  +12.20  17.87     42   -0.30 1 1 1 1 1   888    0 13.65 44.40 ----- 24.5 17.9 37.6 22.1 17.0 -28.7 15.7 -30.4 15.5 -28.3 17.0 -27.0
2025-06-13 12:48:53,893 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 12:48:53,893 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 12:48:53,893 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.450285
2025-06-13 12:48:53,894 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 12:48:53,894 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 12:48:53,894 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 12:48:53,894 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 12:48:53,894 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 12:48:53,895 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T12:48:38', tmtdew=14.24, humidity=37.1, cloud=0.0, wind=16.76, temperature=12.25, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T10:48:24.624', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 12:48:53,896 [DEBUG][       Thread-255378][   transport.py][1871] : EOF in transport thread
2025-06-13 12:48:53,978 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 12:48:53,991 [DEBUG][       Thread-255381][   transport.py][1871] : starting thread (client mode): 0x86369ab0
2025-06-13 12:48:53,991 [DEBUG][       Thread-255381][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 12:48:54,005 [DEBUG][       Thread-255381][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 12:48:54,005 [ INFO][       Thread-255381][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 12:48:54,013 [DEBUG][       Thread-255381][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 12:48:54,013 [DEBUG][       Thread-255381][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 12:48:54,013 [DEBUG][       Thread-255381][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 12:48:54,013 [DEBUG][       Thread-255381][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:48:54,013 [DEBUG][       Thread-255381][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:48:54,013 [DEBUG][       Thread-255381][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:48:54,013 [DEBUG][       Thread-255381][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:48:54,013 [DEBUG][       Thread-255381][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 12:48:54,013 [DEBUG][       Thread-255381][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 12:48:54,014 [DEBUG][       Thread-255381][   transport.py][1871] : client lang: <none>
2025-06-13 12:48:54,014 [DEBUG][       Thread-255381][   transport.py][1871] : server lang: <none>
2025-06-13 12:48:54,014 [DEBUG][       Thread-255381][   transport.py][1871] : kex follows: False
2025-06-13 12:48:54,014 [DEBUG][       Thread-255381][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 12:48:54,014 [DEBUG][       Thread-255381][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 12:48:54,014 [DEBUG][       Thread-255381][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 12:48:54,014 [DEBUG][       Thread-255381][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 12:48:54,014 [DEBUG][       Thread-255381][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 12:48:54,014 [DEBUG][       Thread-255381][   transport.py][1871] : Compression: none
2025-06-13 12:48:54,014 [DEBUG][       Thread-255381][   transport.py][1871] : === End of kex handshake ===
2025-06-13 12:48:54,073 [DEBUG][       Thread-255381][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 12:48:54,074 [DEBUG][       Thread-255381][   transport.py][1871] : Switch to new keys ...
2025-06-13 12:48:54,074 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 12:48:54,075 [DEBUG][       Thread-255381][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 12:48:54,076 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 12:48:54,133 [DEBUG][       Thread-255381][   transport.py][1871] : userauth is OK
2025-06-13 12:48:54,133 [DEBUG][       Thread-255381][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 12:48:54,133 [DEBUG][       Thread-255381][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 12:48:54,133 [DEBUG][       Thread-255381][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 12:48:54,133 [DEBUG][       Thread-255381][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 12:48:54,152 [ INFO][       Thread-255381][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 12:48:54,152 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 12:48:54,153 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 12:48:55,150 [DEBUG][       Thread-255381][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 12:48:55,150 [DEBUG][       Thread-255381][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 12:48:55,200 [DEBUG][       Thread-255381][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 12:48:55,200 [DEBUG][       Thread-255381][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 12:48:55,210 [DEBUG][       Thread-255381][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 12:48:55,220 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 12:48:55,220 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 12:48:55,229 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 12:48:55,239 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 12:48:55,239 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 12:48:55,239 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 12:48:55,247 [DEBUG][       Thread-255381][   transport.py][1871] : EOF in transport thread
2025-06-13 12:48:59,333 [DEBUG][Thread-255383 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:49:05,250 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 12:49:05,250 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 12:49:05,250 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 12:49:05,253 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 12:49:05,717 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 12, 48, 38), 14.24, 37.1, 0.0, 16.76, 12.25, 0, 0, 0, 2, 0, 0),)
2025-06-13 12:49:05,717 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 12:48:38
2025-06-13 12:49:05,799 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 12:49:05,805 [DEBUG][       Thread-255384][   transport.py][1871] : starting thread (client mode): 0x863be2f0
2025-06-13 12:49:05,805 [DEBUG][       Thread-255384][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 12:49:05,825 [DEBUG][       Thread-255384][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 12:49:05,825 [ INFO][       Thread-255384][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 12:49:05,829 [DEBUG][       Thread-255384][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 12:49:05,829 [DEBUG][       Thread-255384][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 12:49:05,829 [DEBUG][       Thread-255384][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 12:49:05,829 [DEBUG][       Thread-255384][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:49:05,829 [DEBUG][       Thread-255384][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:49:05,829 [DEBUG][       Thread-255384][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:49:05,829 [DEBUG][       Thread-255384][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:49:05,829 [DEBUG][       Thread-255384][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 12:49:05,829 [DEBUG][       Thread-255384][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 12:49:05,829 [DEBUG][       Thread-255384][   transport.py][1871] : client lang: <none>
2025-06-13 12:49:05,829 [DEBUG][       Thread-255384][   transport.py][1871] : server lang: <none>
2025-06-13 12:49:05,829 [DEBUG][       Thread-255384][   transport.py][1871] : kex follows: False
2025-06-13 12:49:05,829 [DEBUG][       Thread-255384][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 12:49:05,830 [DEBUG][       Thread-255384][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 12:49:05,830 [DEBUG][       Thread-255384][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 12:49:05,830 [DEBUG][       Thread-255384][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 12:49:05,830 [DEBUG][       Thread-255384][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 12:49:05,830 [DEBUG][       Thread-255384][   transport.py][1871] : Compression: none
2025-06-13 12:49:05,830 [DEBUG][       Thread-255384][   transport.py][1871] : === End of kex handshake ===
2025-06-13 12:49:05,848 [DEBUG][       Thread-255384][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 12:49:05,849 [DEBUG][       Thread-255384][   transport.py][1871] : Switch to new keys ...
2025-06-13 12:49:05,849 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 12:49:05,850 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 12:49:05,850 [DEBUG][       Thread-255384][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 12:49:05,851 [DEBUG][       Thread-255384][   transport.py][1871] : userauth is OK
2025-06-13 12:49:05,864 [ INFO][       Thread-255384][   transport.py][1871] : Authentication (password) successful!
2025-06-13 12:49:05,865 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 12:49:06,478 [DEBUG][       Thread-255384][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 12:49:06,479 [DEBUG][       Thread-255384][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 12:49:06,521 [DEBUG][       Thread-255384][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 12:49:06,521 [DEBUG][       Thread-255384][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 12:49:06,525 [DEBUG][       Thread-255384][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 12:49:06,536 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 12:49:06,536 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 12:49:06,538 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 12:49:06,540 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 12:49:06,546 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 12:49:06,548 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 12:49:06,548 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 12:49:06,549 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 12:49:06,549 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.450285 -999.00  +12.20  17.87     42   -0.30 1 1 1 1 1   888    0 13.65 44.40 ----- 24.5 17.9 37.6 22.1 17.0 -28.7 15.7 -30.4 15.5 -28.3 17.0 -27.0
2025-06-13 12:49:06,549 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 12:49:06,549 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 12:49:06,549 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.450285
2025-06-13 12:49:06,550 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 12:49:06,550 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 12:49:06,551 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 12:49:06,551 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 12:49:06,551 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 12:49:06,551 [DEBUG][       Thread-255384][   transport.py][1871] : EOF in transport thread
2025-06-13 12:49:06,551 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T12:48:38', tmtdew=14.24, humidity=37.1, cloud=0.0, wind=16.76, temperature=12.25, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T10:48:24.624', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 12:49:06,634 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 12:49:06,645 [DEBUG][       Thread-255387][   transport.py][1871] : starting thread (client mode): 0x867b6c80
2025-06-13 12:49:06,645 [DEBUG][       Thread-255387][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 12:49:06,660 [DEBUG][       Thread-255387][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 12:49:06,660 [ INFO][       Thread-255387][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 12:49:06,668 [DEBUG][       Thread-255387][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 12:49:06,668 [DEBUG][       Thread-255387][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 12:49:06,668 [DEBUG][       Thread-255387][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 12:49:06,668 [DEBUG][       Thread-255387][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:49:06,668 [DEBUG][       Thread-255387][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:49:06,668 [DEBUG][       Thread-255387][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:49:06,668 [DEBUG][       Thread-255387][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:49:06,668 [DEBUG][       Thread-255387][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 12:49:06,668 [DEBUG][       Thread-255387][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 12:49:06,668 [DEBUG][       Thread-255387][   transport.py][1871] : client lang: <none>
2025-06-13 12:49:06,668 [DEBUG][       Thread-255387][   transport.py][1871] : server lang: <none>
2025-06-13 12:49:06,668 [DEBUG][       Thread-255387][   transport.py][1871] : kex follows: False
2025-06-13 12:49:06,669 [DEBUG][       Thread-255387][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 12:49:06,669 [DEBUG][       Thread-255387][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 12:49:06,669 [DEBUG][       Thread-255387][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 12:49:06,669 [DEBUG][       Thread-255387][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 12:49:06,669 [DEBUG][       Thread-255387][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 12:49:06,669 [DEBUG][       Thread-255387][   transport.py][1871] : Compression: none
2025-06-13 12:49:06,669 [DEBUG][       Thread-255387][   transport.py][1871] : === End of kex handshake ===
2025-06-13 12:49:06,726 [DEBUG][       Thread-255387][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 12:49:06,727 [DEBUG][       Thread-255387][   transport.py][1871] : Switch to new keys ...
2025-06-13 12:49:06,727 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 12:49:06,728 [DEBUG][       Thread-255387][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 12:49:06,729 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 12:49:06,787 [DEBUG][       Thread-255387][   transport.py][1871] : userauth is OK
2025-06-13 12:49:06,787 [DEBUG][       Thread-255387][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 12:49:06,787 [DEBUG][       Thread-255387][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 12:49:06,788 [DEBUG][       Thread-255387][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 12:49:06,788 [DEBUG][       Thread-255387][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 12:49:06,807 [ INFO][       Thread-255387][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 12:49:06,808 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 12:49:06,808 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 12:49:07,865 [DEBUG][       Thread-255387][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 12:49:07,866 [DEBUG][       Thread-255387][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 12:49:07,916 [DEBUG][       Thread-255387][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 12:49:07,916 [DEBUG][       Thread-255387][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 12:49:07,925 [DEBUG][       Thread-255387][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 12:49:07,938 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 12:49:07,938 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 12:49:07,947 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 12:49:07,956 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 12:49:07,957 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 12:49:07,957 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 12:49:07,965 [DEBUG][       Thread-255387][   transport.py][1871] : EOF in transport thread
2025-06-13 12:49:08,360 [DEBUG][Thread-255389 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:49:13,221 [DEBUG][Thread-255390 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:49:17,380 [DEBUG][Thread-255391 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:49:17,965 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 12:49:17,965 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 12:49:17,965 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 12:49:17,968 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 12:49:18,426 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 12, 49, 9), 14.31, 36.83, 0.0, 17.45, 12.16, 0, 0, 0, 2, 0, 0),)
2025-06-13 12:49:18,426 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 12:49:09
2025-06-13 12:49:18,504 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 12:49:18,508 [DEBUG][       Thread-255392][   transport.py][1871] : starting thread (client mode): 0x86350490
2025-06-13 12:49:18,509 [DEBUG][       Thread-255392][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 12:49:18,529 [DEBUG][       Thread-255392][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 12:49:18,529 [ INFO][       Thread-255392][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 12:49:18,532 [DEBUG][       Thread-255392][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 12:49:18,532 [DEBUG][       Thread-255392][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 12:49:18,533 [DEBUG][       Thread-255392][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 12:49:18,533 [DEBUG][       Thread-255392][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:49:18,533 [DEBUG][       Thread-255392][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:49:18,533 [DEBUG][       Thread-255392][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:49:18,533 [DEBUG][       Thread-255392][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:49:18,533 [DEBUG][       Thread-255392][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 12:49:18,533 [DEBUG][       Thread-255392][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 12:49:18,533 [DEBUG][       Thread-255392][   transport.py][1871] : client lang: <none>
2025-06-13 12:49:18,533 [DEBUG][       Thread-255392][   transport.py][1871] : server lang: <none>
2025-06-13 12:49:18,533 [DEBUG][       Thread-255392][   transport.py][1871] : kex follows: False
2025-06-13 12:49:18,533 [DEBUG][       Thread-255392][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 12:49:18,533 [DEBUG][       Thread-255392][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 12:49:18,533 [DEBUG][       Thread-255392][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 12:49:18,533 [DEBUG][       Thread-255392][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 12:49:18,533 [DEBUG][       Thread-255392][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 12:49:18,533 [DEBUG][       Thread-255392][   transport.py][1871] : Compression: none
2025-06-13 12:49:18,533 [DEBUG][       Thread-255392][   transport.py][1871] : === End of kex handshake ===
2025-06-13 12:49:18,551 [DEBUG][       Thread-255392][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 12:49:18,552 [DEBUG][       Thread-255392][   transport.py][1871] : Switch to new keys ...
2025-06-13 12:49:18,552 [DEBUG][       Thread-255392][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 12:49:18,553 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 12:49:18,553 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 12:49:18,554 [DEBUG][       Thread-255392][   transport.py][1871] : userauth is OK
2025-06-13 12:49:18,567 [ INFO][       Thread-255392][   transport.py][1871] : Authentication (password) successful!
2025-06-13 12:49:18,567 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 12:49:19,190 [DEBUG][       Thread-255392][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 12:49:19,190 [DEBUG][       Thread-255392][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 12:49:19,233 [DEBUG][       Thread-255392][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 12:49:19,233 [DEBUG][       Thread-255392][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 12:49:19,237 [DEBUG][       Thread-255392][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 12:49:19,250 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 12:49:19,251 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 12:49:19,252 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 12:49:19,254 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 12:49:19,258 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 12:49:19,260 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 12:49:19,260 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 12:49:19,261 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 12:49:19,261 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.450285 -999.00  +12.20  17.87     42   -0.30 1 1 1 1 1   888    0 13.65 44.40 ----- 24.5 17.9 37.6 22.1 17.0 -28.7 15.7 -30.4 15.5 -28.3 17.0 -27.0
2025-06-13 12:49:19,261 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 12:49:19,261 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 12:49:19,261 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.450285
2025-06-13 12:49:19,262 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 12:49:19,262 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 12:49:19,262 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 12:49:19,262 [DEBUG][       Thread-255392][   transport.py][1871] : EOF in transport thread
2025-06-13 12:49:19,262 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 12:49:19,263 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 12:49:19,263 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T12:49:09', tmtdew=14.31, humidity=36.83, cloud=0.0, wind=17.45, temperature=12.16, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T10:48:24.624', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 12:49:19,347 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 12:49:19,359 [DEBUG][       Thread-255395][   transport.py][1871] : starting thread (client mode): 0x863c9420
2025-06-13 12:49:19,359 [DEBUG][       Thread-255395][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 12:49:19,373 [DEBUG][       Thread-255395][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 12:49:19,373 [ INFO][       Thread-255395][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 12:49:19,380 [DEBUG][       Thread-255395][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 12:49:19,380 [DEBUG][       Thread-255395][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 12:49:19,380 [DEBUG][       Thread-255395][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 12:49:19,380 [DEBUG][       Thread-255395][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:49:19,380 [DEBUG][       Thread-255395][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:49:19,380 [DEBUG][       Thread-255395][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:49:19,380 [DEBUG][       Thread-255395][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:49:19,380 [DEBUG][       Thread-255395][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 12:49:19,380 [DEBUG][       Thread-255395][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 12:49:19,380 [DEBUG][       Thread-255395][   transport.py][1871] : client lang: <none>
2025-06-13 12:49:19,380 [DEBUG][       Thread-255395][   transport.py][1871] : server lang: <none>
2025-06-13 12:49:19,380 [DEBUG][       Thread-255395][   transport.py][1871] : kex follows: False
2025-06-13 12:49:19,380 [DEBUG][       Thread-255395][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 12:49:19,380 [DEBUG][       Thread-255395][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 12:49:19,380 [DEBUG][       Thread-255395][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 12:49:19,380 [DEBUG][       Thread-255395][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 12:49:19,381 [DEBUG][       Thread-255395][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 12:49:19,381 [DEBUG][       Thread-255395][   transport.py][1871] : Compression: none
2025-06-13 12:49:19,381 [DEBUG][       Thread-255395][   transport.py][1871] : === End of kex handshake ===
2025-06-13 12:49:19,443 [DEBUG][       Thread-255395][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 12:49:19,444 [DEBUG][       Thread-255395][   transport.py][1871] : Switch to new keys ...
2025-06-13 12:49:19,444 [DEBUG][       Thread-255395][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 12:49:19,444 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 12:49:19,445 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 12:49:19,500 [DEBUG][       Thread-255395][   transport.py][1871] : userauth is OK
2025-06-13 12:49:19,501 [DEBUG][       Thread-255395][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 12:49:19,501 [DEBUG][       Thread-255395][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 12:49:19,501 [DEBUG][       Thread-255395][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 12:49:19,501 [DEBUG][       Thread-255395][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 12:49:19,520 [ INFO][       Thread-255395][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 12:49:19,521 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 12:49:19,521 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 12:49:20,560 [DEBUG][       Thread-255395][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 12:49:20,560 [DEBUG][       Thread-255395][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 12:49:20,607 [DEBUG][       Thread-255395][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 12:49:20,608 [DEBUG][       Thread-255395][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 12:49:20,621 [DEBUG][       Thread-255395][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 12:49:20,629 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 12:49:20,629 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 12:49:20,638 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 12:49:20,646 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 12:49:20,647 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 12:49:20,647 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 12:49:20,654 [DEBUG][       Thread-255395][   transport.py][1871] : EOF in transport thread
2025-06-13 12:49:26,402 [DEBUG][Thread-255397 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:49:30,657 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 12:49:30,658 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 12:49:30,658 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 12:49:30,660 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 12:49:31,108 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 12, 49, 9), 14.31, 36.83, 0.0, 17.45, 12.16, 0, 0, 0, 2, 0, 0),)
2025-06-13 12:49:31,108 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 12:49:09
2025-06-13 12:49:31,187 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 12:49:31,191 [DEBUG][       Thread-255398][   transport.py][1871] : starting thread (client mode): 0x867ff8e0
2025-06-13 12:49:31,191 [DEBUG][       Thread-255398][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 12:49:31,214 [DEBUG][       Thread-255398][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 12:49:31,214 [ INFO][       Thread-255398][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 12:49:31,218 [DEBUG][       Thread-255398][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 12:49:31,218 [DEBUG][       Thread-255398][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 12:49:31,218 [DEBUG][       Thread-255398][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 12:49:31,218 [DEBUG][       Thread-255398][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:49:31,218 [DEBUG][       Thread-255398][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:49:31,218 [DEBUG][       Thread-255398][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:49:31,218 [DEBUG][       Thread-255398][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:49:31,218 [DEBUG][       Thread-255398][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 12:49:31,218 [DEBUG][       Thread-255398][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 12:49:31,218 [DEBUG][       Thread-255398][   transport.py][1871] : client lang: <none>
2025-06-13 12:49:31,218 [DEBUG][       Thread-255398][   transport.py][1871] : server lang: <none>
2025-06-13 12:49:31,218 [DEBUG][       Thread-255398][   transport.py][1871] : kex follows: False
2025-06-13 12:49:31,218 [DEBUG][       Thread-255398][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 12:49:31,218 [DEBUG][       Thread-255398][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 12:49:31,218 [DEBUG][       Thread-255398][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 12:49:31,218 [DEBUG][       Thread-255398][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 12:49:31,218 [DEBUG][       Thread-255398][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 12:49:31,218 [DEBUG][       Thread-255398][   transport.py][1871] : Compression: none
2025-06-13 12:49:31,218 [DEBUG][       Thread-255398][   transport.py][1871] : === End of kex handshake ===
2025-06-13 12:49:31,235 [DEBUG][       Thread-255398][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 12:49:31,235 [DEBUG][       Thread-255398][   transport.py][1871] : Switch to new keys ...
2025-06-13 12:49:31,236 [DEBUG][       Thread-255398][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 12:49:31,236 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 12:49:31,236 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 12:49:31,238 [DEBUG][       Thread-255398][   transport.py][1871] : userauth is OK
2025-06-13 12:49:31,251 [ INFO][       Thread-255398][   transport.py][1871] : Authentication (password) successful!
2025-06-13 12:49:31,252 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 12:49:31,901 [DEBUG][       Thread-255398][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 12:49:31,902 [DEBUG][       Thread-255398][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 12:49:31,945 [DEBUG][       Thread-255398][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 12:49:31,945 [DEBUG][       Thread-255398][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 12:49:31,948 [DEBUG][       Thread-255398][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 12:49:31,960 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 12:49:31,961 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 12:49:31,963 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 12:49:31,965 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 12:49:31,971 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 12:49:31,973 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 12:49:31,973 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 12:49:31,974 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 12:49:31,974 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.450632 -999.00  +12.20  17.44     42   -0.20 1 1 1 1 1   888    0 13.67 45.31 ----- 16.4 17.4 40.6 25.7 17.0 -28.8 15.7 -30.3 15.5 -29.2 16.9 -27.1
2025-06-13 12:49:31,974 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 12:49:31,974 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 12:49:31,974 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.450632
2025-06-13 12:49:31,974 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 12:49:31,975 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 12:49:31,975 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 12:49:31,975 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 12:49:31,975 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 12:49:31,975 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T12:49:09', tmtdew=14.31, humidity=36.83, cloud=0.0, wind=17.45, temperature=12.16, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T10:48:54.605', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 12:49:31,975 [DEBUG][       Thread-255398][   transport.py][1871] : EOF in transport thread
2025-06-13 12:49:32,052 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 12:49:32,062 [DEBUG][       Thread-255401][   transport.py][1871] : starting thread (client mode): 0x84204ee0
2025-06-13 12:49:32,062 [DEBUG][       Thread-255401][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 12:49:32,077 [DEBUG][       Thread-255401][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 12:49:32,077 [ INFO][       Thread-255401][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 12:49:32,084 [DEBUG][       Thread-255401][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 12:49:32,084 [DEBUG][       Thread-255401][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 12:49:32,084 [DEBUG][       Thread-255401][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 12:49:32,084 [DEBUG][       Thread-255401][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:49:32,084 [DEBUG][       Thread-255401][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:49:32,084 [DEBUG][       Thread-255401][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:49:32,084 [DEBUG][       Thread-255401][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:49:32,084 [DEBUG][       Thread-255401][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 12:49:32,084 [DEBUG][       Thread-255401][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 12:49:32,084 [DEBUG][       Thread-255401][   transport.py][1871] : client lang: <none>
2025-06-13 12:49:32,084 [DEBUG][       Thread-255401][   transport.py][1871] : server lang: <none>
2025-06-13 12:49:32,084 [DEBUG][       Thread-255401][   transport.py][1871] : kex follows: False
2025-06-13 12:49:32,084 [DEBUG][       Thread-255401][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 12:49:32,084 [DEBUG][       Thread-255401][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 12:49:32,084 [DEBUG][       Thread-255401][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 12:49:32,084 [DEBUG][       Thread-255401][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 12:49:32,084 [DEBUG][       Thread-255401][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 12:49:32,084 [DEBUG][       Thread-255401][   transport.py][1871] : Compression: none
2025-06-13 12:49:32,084 [DEBUG][       Thread-255401][   transport.py][1871] : === End of kex handshake ===
2025-06-13 12:49:32,145 [DEBUG][       Thread-255401][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 12:49:32,146 [DEBUG][       Thread-255401][   transport.py][1871] : Switch to new keys ...
2025-06-13 12:49:32,147 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 12:49:32,147 [DEBUG][       Thread-255401][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 12:49:32,148 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 12:49:32,205 [DEBUG][       Thread-255401][   transport.py][1871] : userauth is OK
2025-06-13 12:49:32,205 [DEBUG][       Thread-255401][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 12:49:32,205 [DEBUG][       Thread-255401][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 12:49:32,205 [DEBUG][       Thread-255401][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 12:49:32,205 [DEBUG][       Thread-255401][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 12:49:32,224 [ INFO][       Thread-255401][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 12:49:32,225 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 12:49:32,225 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 12:49:33,253 [DEBUG][       Thread-255401][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 12:49:33,253 [DEBUG][       Thread-255401][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 12:49:33,304 [DEBUG][       Thread-255401][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 12:49:33,304 [DEBUG][       Thread-255401][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 12:49:33,313 [DEBUG][       Thread-255401][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 12:49:33,322 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 12:49:33,322 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 12:49:33,331 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 12:49:33,340 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 12:49:33,340 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 12:49:33,340 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 12:49:33,348 [DEBUG][       Thread-255401][   transport.py][1871] : EOF in transport thread
2025-06-13 12:49:35,439 [DEBUG][Thread-255403 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:49:43,348 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 12:49:43,348 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 12:49:43,348 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 12:49:43,348 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 12:49:43,818 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 12, 49, 9), 14.31, 36.83, 0.0, 17.45, 12.16, 0, 0, 0, 2, 0, 0),)
2025-06-13 12:49:43,818 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 12:49:09
2025-06-13 12:49:43,905 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 12:49:43,910 [DEBUG][       Thread-255404][   transport.py][1871] : starting thread (client mode): 0x842046d0
2025-06-13 12:49:43,910 [DEBUG][       Thread-255404][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 12:49:43,929 [DEBUG][       Thread-255404][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 12:49:43,930 [ INFO][       Thread-255404][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 12:49:43,933 [DEBUG][       Thread-255404][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 12:49:43,933 [DEBUG][       Thread-255404][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 12:49:43,933 [DEBUG][       Thread-255404][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 12:49:43,933 [DEBUG][       Thread-255404][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:49:43,933 [DEBUG][       Thread-255404][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:49:43,933 [DEBUG][       Thread-255404][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:49:43,933 [DEBUG][       Thread-255404][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:49:43,933 [DEBUG][       Thread-255404][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 12:49:43,933 [DEBUG][       Thread-255404][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 12:49:43,933 [DEBUG][       Thread-255404][   transport.py][1871] : client lang: <none>
2025-06-13 12:49:43,933 [DEBUG][       Thread-255404][   transport.py][1871] : server lang: <none>
2025-06-13 12:49:43,933 [DEBUG][       Thread-255404][   transport.py][1871] : kex follows: False
2025-06-13 12:49:43,933 [DEBUG][       Thread-255404][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 12:49:43,933 [DEBUG][       Thread-255404][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 12:49:43,933 [DEBUG][       Thread-255404][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 12:49:43,933 [DEBUG][       Thread-255404][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 12:49:43,933 [DEBUG][       Thread-255404][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 12:49:43,934 [DEBUG][       Thread-255404][   transport.py][1871] : Compression: none
2025-06-13 12:49:43,934 [DEBUG][       Thread-255404][   transport.py][1871] : === End of kex handshake ===
2025-06-13 12:49:43,949 [DEBUG][       Thread-255404][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 12:49:43,950 [DEBUG][       Thread-255404][   transport.py][1871] : Switch to new keys ...
2025-06-13 12:49:43,950 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 12:49:43,951 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 12:49:43,951 [DEBUG][       Thread-255404][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 12:49:43,952 [DEBUG][       Thread-255404][   transport.py][1871] : userauth is OK
2025-06-13 12:49:43,978 [ INFO][       Thread-255404][   transport.py][1871] : Authentication (password) successful!
2025-06-13 12:49:43,978 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 12:49:44,456 [DEBUG][Thread-255406 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:49:44,599 [DEBUG][       Thread-255404][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 12:49:44,599 [DEBUG][       Thread-255404][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 12:49:44,641 [DEBUG][       Thread-255404][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 12:49:44,641 [DEBUG][       Thread-255404][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 12:49:44,644 [DEBUG][       Thread-255404][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 12:49:44,657 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 12:49:44,658 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 12:49:44,659 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 12:49:44,661 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 12:49:44,667 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 12:49:44,669 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 12:49:44,669 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 12:49:44,669 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 12:49:44,670 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.450632 -999.00  +12.20  17.44     42   -0.20 1 1 1 1 1   888    0 13.67 45.31 ----- 16.4 17.4 40.6 25.7 17.0 -28.8 15.7 -30.3 15.5 -29.2 16.9 -27.1
2025-06-13 12:49:44,670 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 12:49:44,670 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 12:49:44,670 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.450632
2025-06-13 12:49:44,670 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 12:49:44,671 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 12:49:44,671 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 12:49:44,671 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 12:49:44,671 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 12:49:44,671 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T12:49:09', tmtdew=14.31, humidity=36.83, cloud=0.0, wind=17.45, temperature=12.16, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T10:48:54.605', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 12:49:44,671 [DEBUG][       Thread-255404][   transport.py][1871] : EOF in transport thread
2025-06-13 12:49:44,755 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 12:49:44,766 [DEBUG][       Thread-255408][   transport.py][1871] : starting thread (client mode): 0x863be050
2025-06-13 12:49:44,766 [DEBUG][       Thread-255408][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 12:49:44,782 [DEBUG][       Thread-255408][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 12:49:44,782 [ INFO][       Thread-255408][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 12:49:44,790 [DEBUG][       Thread-255408][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 12:49:44,790 [DEBUG][       Thread-255408][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 12:49:44,790 [DEBUG][       Thread-255408][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 12:49:44,790 [DEBUG][       Thread-255408][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:49:44,790 [DEBUG][       Thread-255408][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:49:44,790 [DEBUG][       Thread-255408][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:49:44,790 [DEBUG][       Thread-255408][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:49:44,790 [DEBUG][       Thread-255408][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 12:49:44,790 [DEBUG][       Thread-255408][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 12:49:44,790 [DEBUG][       Thread-255408][   transport.py][1871] : client lang: <none>
2025-06-13 12:49:44,790 [DEBUG][       Thread-255408][   transport.py][1871] : server lang: <none>
2025-06-13 12:49:44,790 [DEBUG][       Thread-255408][   transport.py][1871] : kex follows: False
2025-06-13 12:49:44,790 [DEBUG][       Thread-255408][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 12:49:44,790 [DEBUG][       Thread-255408][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 12:49:44,790 [DEBUG][       Thread-255408][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 12:49:44,791 [DEBUG][       Thread-255408][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 12:49:44,791 [DEBUG][       Thread-255408][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 12:49:44,791 [DEBUG][       Thread-255408][   transport.py][1871] : Compression: none
2025-06-13 12:49:44,791 [DEBUG][       Thread-255408][   transport.py][1871] : === End of kex handshake ===
2025-06-13 12:49:44,849 [DEBUG][       Thread-255408][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 12:49:44,849 [DEBUG][       Thread-255408][   transport.py][1871] : Switch to new keys ...
2025-06-13 12:49:44,850 [DEBUG][       Thread-255408][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 12:49:44,850 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 12:49:44,851 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 12:49:44,905 [DEBUG][       Thread-255408][   transport.py][1871] : userauth is OK
2025-06-13 12:49:44,905 [DEBUG][       Thread-255408][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 12:49:44,905 [DEBUG][       Thread-255408][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 12:49:44,905 [DEBUG][       Thread-255408][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 12:49:44,905 [DEBUG][       Thread-255408][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 12:49:44,924 [ INFO][       Thread-255408][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 12:49:44,925 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 12:49:44,925 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 12:49:45,958 [DEBUG][       Thread-255408][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 12:49:45,958 [DEBUG][       Thread-255408][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 12:49:46,008 [DEBUG][       Thread-255408][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 12:49:46,008 [DEBUG][       Thread-255408][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 12:49:46,017 [DEBUG][       Thread-255408][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 12:49:46,027 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 12:49:46,027 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 12:49:46,036 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 12:49:46,045 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 12:49:46,045 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 12:49:46,046 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 12:49:46,054 [DEBUG][       Thread-255408][   transport.py][1871] : EOF in transport thread
2025-06-13 12:49:46,766 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:49:46,767 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:49:51,253 [DEBUG][Thread-255410 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:49:52,328 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:49:52,329 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:49:53,477 [DEBUG][Thread-255411 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:49:56,056 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 12:49:56,057 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 12:49:56,057 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 12:49:56,060 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 12:49:56,511 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 12, 49, 41), 14.28, 36.91, 0.0, 18.48, 12.17, 0, 0, 0, 2, 0, 0),)
2025-06-13 12:49:56,511 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 12:49:41
2025-06-13 12:49:56,592 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 12:49:56,596 [DEBUG][       Thread-255412][   transport.py][1871] : starting thread (client mode): 0x842057e0
2025-06-13 12:49:56,596 [DEBUG][       Thread-255412][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 12:49:56,617 [DEBUG][       Thread-255412][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 12:49:56,617 [ INFO][       Thread-255412][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 12:49:56,621 [DEBUG][       Thread-255412][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 12:49:56,621 [DEBUG][       Thread-255412][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 12:49:56,621 [DEBUG][       Thread-255412][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 12:49:56,621 [DEBUG][       Thread-255412][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:49:56,621 [DEBUG][       Thread-255412][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:49:56,621 [DEBUG][       Thread-255412][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:49:56,621 [DEBUG][       Thread-255412][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:49:56,621 [DEBUG][       Thread-255412][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 12:49:56,621 [DEBUG][       Thread-255412][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 12:49:56,621 [DEBUG][       Thread-255412][   transport.py][1871] : client lang: <none>
2025-06-13 12:49:56,621 [DEBUG][       Thread-255412][   transport.py][1871] : server lang: <none>
2025-06-13 12:49:56,621 [DEBUG][       Thread-255412][   transport.py][1871] : kex follows: False
2025-06-13 12:49:56,621 [DEBUG][       Thread-255412][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 12:49:56,621 [DEBUG][       Thread-255412][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 12:49:56,621 [DEBUG][       Thread-255412][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 12:49:56,622 [DEBUG][       Thread-255412][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 12:49:56,622 [DEBUG][       Thread-255412][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 12:49:56,622 [DEBUG][       Thread-255412][   transport.py][1871] : Compression: none
2025-06-13 12:49:56,622 [DEBUG][       Thread-255412][   transport.py][1871] : === End of kex handshake ===
2025-06-13 12:49:56,640 [DEBUG][       Thread-255412][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 12:49:56,640 [DEBUG][       Thread-255412][   transport.py][1871] : Switch to new keys ...
2025-06-13 12:49:56,641 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 12:49:56,641 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 12:49:56,642 [DEBUG][       Thread-255412][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 12:49:56,643 [DEBUG][       Thread-255412][   transport.py][1871] : userauth is OK
2025-06-13 12:49:56,667 [ INFO][       Thread-255412][   transport.py][1871] : Authentication (password) successful!
2025-06-13 12:49:56,668 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 12:49:57,300 [DEBUG][       Thread-255412][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 12:49:57,301 [DEBUG][       Thread-255412][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 12:49:57,345 [DEBUG][       Thread-255412][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 12:49:57,345 [DEBUG][       Thread-255412][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 12:49:57,349 [DEBUG][       Thread-255412][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 12:49:57,361 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 12:49:57,361 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 12:49:57,363 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 12:49:57,367 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 12:49:57,373 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 12:49:57,375 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 12:49:57,375 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 12:49:57,376 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 12:49:57,376 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.450632 -999.00  +12.20  17.44     42   -0.20 1 1 1 1 1   888    0 13.67 45.31 ----- 16.4 17.4 40.6 25.7 17.0 -28.8 15.7 -30.3 15.5 -29.2 16.9 -27.1
2025-06-13 12:49:57,376 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 12:49:57,376 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 12:49:57,376 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.450632
2025-06-13 12:49:57,377 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 12:49:57,377 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 12:49:57,377 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 12:49:57,377 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 12:49:57,377 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 12:49:57,377 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T12:49:41', tmtdew=14.28, humidity=36.91, cloud=0.0, wind=18.48, temperature=12.17, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T10:48:54.605', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 12:49:57,379 [DEBUG][       Thread-255412][   transport.py][1871] : EOF in transport thread
2025-06-13 12:49:57,461 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 12:49:57,472 [DEBUG][       Thread-255415][   transport.py][1871] : starting thread (client mode): 0xc5988130
2025-06-13 12:49:57,472 [DEBUG][       Thread-255415][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 12:49:57,490 [DEBUG][       Thread-255415][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 12:49:57,490 [ INFO][       Thread-255415][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 12:49:57,497 [DEBUG][       Thread-255415][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 12:49:57,498 [DEBUG][       Thread-255415][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 12:49:57,498 [DEBUG][       Thread-255415][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 12:49:57,498 [DEBUG][       Thread-255415][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:49:57,498 [DEBUG][       Thread-255415][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:49:57,498 [DEBUG][       Thread-255415][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:49:57,498 [DEBUG][       Thread-255415][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:49:57,498 [DEBUG][       Thread-255415][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 12:49:57,498 [DEBUG][       Thread-255415][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 12:49:57,498 [DEBUG][       Thread-255415][   transport.py][1871] : client lang: <none>
2025-06-13 12:49:57,498 [DEBUG][       Thread-255415][   transport.py][1871] : server lang: <none>
2025-06-13 12:49:57,498 [DEBUG][       Thread-255415][   transport.py][1871] : kex follows: False
2025-06-13 12:49:57,498 [DEBUG][       Thread-255415][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 12:49:57,498 [DEBUG][       Thread-255415][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 12:49:57,498 [DEBUG][       Thread-255415][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 12:49:57,498 [DEBUG][       Thread-255415][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 12:49:57,498 [DEBUG][       Thread-255415][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 12:49:57,499 [DEBUG][       Thread-255415][   transport.py][1871] : Compression: none
2025-06-13 12:49:57,499 [DEBUG][       Thread-255415][   transport.py][1871] : === End of kex handshake ===
2025-06-13 12:49:57,562 [DEBUG][       Thread-255415][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 12:49:57,563 [DEBUG][       Thread-255415][   transport.py][1871] : Switch to new keys ...
2025-06-13 12:49:57,564 [DEBUG][       Thread-255415][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 12:49:57,564 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 12:49:57,565 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 12:49:57,621 [DEBUG][       Thread-255415][   transport.py][1871] : userauth is OK
2025-06-13 12:49:57,621 [DEBUG][       Thread-255415][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 12:49:57,621 [DEBUG][       Thread-255415][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 12:49:57,621 [DEBUG][       Thread-255415][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 12:49:57,621 [DEBUG][       Thread-255415][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 12:49:57,640 [ INFO][       Thread-255415][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 12:49:57,640 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 12:49:57,641 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 12:49:58,679 [DEBUG][       Thread-255415][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 12:49:58,679 [DEBUG][       Thread-255415][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 12:49:58,729 [DEBUG][       Thread-255415][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 12:49:58,729 [DEBUG][       Thread-255415][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 12:49:58,739 [DEBUG][       Thread-255415][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 12:49:58,751 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 12:49:58,751 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 12:49:58,764 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 12:49:58,773 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 12:49:58,773 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 12:49:58,774 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 12:49:58,782 [DEBUG][       Thread-255415][   transport.py][1871] : EOF in transport thread
2025-06-13 12:50:02,499 [DEBUG][Thread-255417 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:50:08,784 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 12:50:08,784 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 12:50:08,785 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 12:50:08,787 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 12:50:09,250 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 12, 49, 41), 14.28, 36.91, 0.0, 18.48, 12.17, 0, 0, 0, 2, 0, 0),)
2025-06-13 12:50:09,250 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 12:49:41
2025-06-13 12:50:09,330 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 12:50:09,336 [DEBUG][       Thread-255418][   transport.py][1871] : starting thread (client mode): 0x84207760
2025-06-13 12:50:09,336 [DEBUG][       Thread-255418][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 12:50:09,358 [DEBUG][       Thread-255418][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 12:50:09,358 [ INFO][       Thread-255418][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 12:50:09,362 [DEBUG][       Thread-255418][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 12:50:09,362 [DEBUG][       Thread-255418][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 12:50:09,362 [DEBUG][       Thread-255418][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 12:50:09,362 [DEBUG][       Thread-255418][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:50:09,362 [DEBUG][       Thread-255418][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:50:09,362 [DEBUG][       Thread-255418][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:50:09,362 [DEBUG][       Thread-255418][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:50:09,362 [DEBUG][       Thread-255418][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 12:50:09,362 [DEBUG][       Thread-255418][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 12:50:09,362 [DEBUG][       Thread-255418][   transport.py][1871] : client lang: <none>
2025-06-13 12:50:09,362 [DEBUG][       Thread-255418][   transport.py][1871] : server lang: <none>
2025-06-13 12:50:09,362 [DEBUG][       Thread-255418][   transport.py][1871] : kex follows: False
2025-06-13 12:50:09,362 [DEBUG][       Thread-255418][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 12:50:09,362 [DEBUG][       Thread-255418][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 12:50:09,362 [DEBUG][       Thread-255418][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 12:50:09,362 [DEBUG][       Thread-255418][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 12:50:09,362 [DEBUG][       Thread-255418][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 12:50:09,362 [DEBUG][       Thread-255418][   transport.py][1871] : Compression: none
2025-06-13 12:50:09,362 [DEBUG][       Thread-255418][   transport.py][1871] : === End of kex handshake ===
2025-06-13 12:50:09,377 [DEBUG][       Thread-255418][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 12:50:09,377 [DEBUG][       Thread-255418][   transport.py][1871] : Switch to new keys ...
2025-06-13 12:50:09,377 [DEBUG][       Thread-255418][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 12:50:09,377 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 12:50:09,377 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 12:50:09,378 [DEBUG][       Thread-255418][   transport.py][1871] : userauth is OK
2025-06-13 12:50:09,390 [ INFO][       Thread-255418][   transport.py][1871] : Authentication (password) successful!
2025-06-13 12:50:09,391 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 12:50:11,548 [DEBUG][Thread-255420 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:50:13,270 [DEBUG][Thread-255421 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:50:17,451 [DEBUG][       Thread-255418][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 12:50:17,451 [DEBUG][       Thread-255418][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 12:50:17,492 [DEBUG][       Thread-255418][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 12:50:17,492 [DEBUG][       Thread-255418][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 12:50:17,495 [DEBUG][       Thread-255418][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 12:50:17,558 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 12:50:17,558 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 12:50:17,559 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 12:50:17,560 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 12:50:17,564 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 12:50:17,565 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 12:50:17,565 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 12:50:17,565 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 12:50:17,565 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.450979 -999.00  +12.40  19.14     42   +0.00 1 1 1 1 1   888    0 13.80 45.51 ----- 20.5 19.1 58.4 20.4 17.1 -28.8 15.7 -30.2 15.6 -29.2 17.0 -27.1
2025-06-13 12:50:17,565 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 12:50:17,565 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 12:50:17,565 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.450979
2025-06-13 12:50:17,565 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 12:50:17,565 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 12:50:17,565 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 12:50:17,565 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 12:50:17,565 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 12:50:17,565 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T12:49:41', tmtdew=14.28, humidity=36.91, cloud=0.0, wind=18.48, temperature=12.17, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T10:49:24.586', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 12:50:17,565 [DEBUG][       Thread-255418][   transport.py][1871] : EOF in transport thread
2025-06-13 12:50:17,637 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 12:50:17,649 [DEBUG][       Thread-255423][   transport.py][1871] : starting thread (client mode): 0x863a5690
2025-06-13 12:50:17,649 [DEBUG][       Thread-255423][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 12:50:17,665 [DEBUG][       Thread-255423][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 12:50:17,665 [ INFO][       Thread-255423][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 12:50:17,672 [DEBUG][       Thread-255423][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 12:50:17,672 [DEBUG][       Thread-255423][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 12:50:17,672 [DEBUG][       Thread-255423][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 12:50:17,672 [DEBUG][       Thread-255423][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:50:17,672 [DEBUG][       Thread-255423][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:50:17,672 [DEBUG][       Thread-255423][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:50:17,672 [DEBUG][       Thread-255423][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:50:17,672 [DEBUG][       Thread-255423][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 12:50:17,672 [DEBUG][       Thread-255423][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 12:50:17,672 [DEBUG][       Thread-255423][   transport.py][1871] : client lang: <none>
2025-06-13 12:50:17,672 [DEBUG][       Thread-255423][   transport.py][1871] : server lang: <none>
2025-06-13 12:50:17,672 [DEBUG][       Thread-255423][   transport.py][1871] : kex follows: False
2025-06-13 12:50:17,672 [DEBUG][       Thread-255423][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 12:50:17,672 [DEBUG][       Thread-255423][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 12:50:17,672 [DEBUG][       Thread-255423][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 12:50:17,673 [DEBUG][       Thread-255423][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 12:50:17,673 [DEBUG][       Thread-255423][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 12:50:17,673 [DEBUG][       Thread-255423][   transport.py][1871] : Compression: none
2025-06-13 12:50:17,673 [DEBUG][       Thread-255423][   transport.py][1871] : === End of kex handshake ===
2025-06-13 12:50:17,728 [DEBUG][       Thread-255423][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 12:50:17,729 [DEBUG][       Thread-255423][   transport.py][1871] : Switch to new keys ...
2025-06-13 12:50:17,729 [DEBUG][       Thread-255423][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 12:50:17,729 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 12:50:17,729 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 12:50:17,784 [DEBUG][       Thread-255423][   transport.py][1871] : userauth is OK
2025-06-13 12:50:17,784 [DEBUG][       Thread-255423][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 12:50:17,784 [DEBUG][       Thread-255423][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 12:50:17,784 [DEBUG][       Thread-255423][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 12:50:17,784 [DEBUG][       Thread-255423][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 12:50:17,805 [ INFO][       Thread-255423][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 12:50:17,805 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 12:50:17,805 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 12:50:18,844 [DEBUG][       Thread-255423][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 12:50:18,844 [DEBUG][       Thread-255423][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 12:50:18,891 [DEBUG][       Thread-255423][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 12:50:18,891 [DEBUG][       Thread-255423][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 12:50:18,900 [DEBUG][       Thread-255423][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 12:50:18,908 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 12:50:18,908 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 12:50:18,916 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 12:50:18,924 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 12:50:18,924 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 12:50:18,924 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 12:50:18,932 [DEBUG][       Thread-255423][   transport.py][1871] : EOF in transport thread
2025-06-13 12:50:20,565 [DEBUG][Thread-255425 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:50:28,934 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 12:50:28,934 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 12:50:28,935 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 12:50:28,938 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 12:50:29,389 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 12, 50, 13), 14.01, 37.7, 0.0, 15.07, 12.25, 0, 0, 0, 2, 0, 0),)
2025-06-13 12:50:29,389 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 12:50:13
2025-06-13 12:50:29,468 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 12:50:29,473 [DEBUG][       Thread-255426][   transport.py][1871] : starting thread (client mode): 0x842054b0
2025-06-13 12:50:29,473 [DEBUG][       Thread-255426][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 12:50:29,494 [DEBUG][       Thread-255426][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 12:50:29,494 [ INFO][       Thread-255426][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 12:50:29,497 [DEBUG][       Thread-255426][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 12:50:29,497 [DEBUG][       Thread-255426][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 12:50:29,497 [DEBUG][       Thread-255426][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 12:50:29,497 [DEBUG][       Thread-255426][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:50:29,497 [DEBUG][       Thread-255426][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:50:29,497 [DEBUG][       Thread-255426][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:50:29,497 [DEBUG][       Thread-255426][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:50:29,497 [DEBUG][       Thread-255426][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 12:50:29,498 [DEBUG][       Thread-255426][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 12:50:29,498 [DEBUG][       Thread-255426][   transport.py][1871] : client lang: <none>
2025-06-13 12:50:29,498 [DEBUG][       Thread-255426][   transport.py][1871] : server lang: <none>
2025-06-13 12:50:29,498 [DEBUG][       Thread-255426][   transport.py][1871] : kex follows: False
2025-06-13 12:50:29,498 [DEBUG][       Thread-255426][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 12:50:29,498 [DEBUG][       Thread-255426][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 12:50:29,498 [DEBUG][       Thread-255426][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 12:50:29,498 [DEBUG][       Thread-255426][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 12:50:29,498 [DEBUG][       Thread-255426][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 12:50:29,498 [DEBUG][       Thread-255426][   transport.py][1871] : Compression: none
2025-06-13 12:50:29,498 [DEBUG][       Thread-255426][   transport.py][1871] : === End of kex handshake ===
2025-06-13 12:50:29,515 [DEBUG][       Thread-255426][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 12:50:29,515 [DEBUG][       Thread-255426][   transport.py][1871] : Switch to new keys ...
2025-06-13 12:50:29,516 [DEBUG][       Thread-255426][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 12:50:29,516 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 12:50:29,517 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 12:50:29,518 [DEBUG][       Thread-255426][   transport.py][1871] : userauth is OK
2025-06-13 12:50:29,542 [ INFO][       Thread-255426][   transport.py][1871] : Authentication (password) successful!
2025-06-13 12:50:29,543 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 12:50:29,586 [DEBUG][Thread-255428 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:50:30,116 [DEBUG][       Thread-255426][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 12:50:30,116 [DEBUG][       Thread-255426][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 12:50:30,157 [DEBUG][       Thread-255426][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 12:50:30,157 [DEBUG][       Thread-255426][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 12:50:30,160 [DEBUG][       Thread-255426][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 12:50:30,173 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 12:50:30,173 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 12:50:30,175 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 12:50:30,177 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 12:50:30,182 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 12:50:30,184 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 12:50:30,185 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 12:50:30,185 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 12:50:30,185 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.450979 -999.00  +12.40  19.14     42   +0.00 1 1 1 1 1   888    0 13.80 45.51 ----- 20.5 19.1 58.4 20.4 17.1 -28.8 15.7 -30.2 15.6 -29.2 17.0 -27.1
2025-06-13 12:50:30,185 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 12:50:30,186 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 12:50:30,186 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.450979
2025-06-13 12:50:30,186 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 12:50:30,187 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 12:50:30,187 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 12:50:30,187 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 12:50:30,187 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 12:50:30,187 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T12:50:13', tmtdew=14.01, humidity=37.7, cloud=0.0, wind=15.07, temperature=12.25, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T10:49:24.586', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 12:50:30,187 [DEBUG][       Thread-255426][   transport.py][1871] : EOF in transport thread
2025-06-13 12:50:30,271 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 12:50:30,280 [DEBUG][       Thread-255430][   transport.py][1871] : starting thread (client mode): 0x863cb460
2025-06-13 12:50:30,280 [DEBUG][       Thread-255430][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 12:50:30,295 [DEBUG][       Thread-255430][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 12:50:30,295 [ INFO][       Thread-255430][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 12:50:30,303 [DEBUG][       Thread-255430][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 12:50:30,303 [DEBUG][       Thread-255430][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 12:50:30,303 [DEBUG][       Thread-255430][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 12:50:30,303 [DEBUG][       Thread-255430][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:50:30,303 [DEBUG][       Thread-255430][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:50:30,303 [DEBUG][       Thread-255430][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:50:30,303 [DEBUG][       Thread-255430][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:50:30,303 [DEBUG][       Thread-255430][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 12:50:30,303 [DEBUG][       Thread-255430][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 12:50:30,303 [DEBUG][       Thread-255430][   transport.py][1871] : client lang: <none>
2025-06-13 12:50:30,303 [DEBUG][       Thread-255430][   transport.py][1871] : server lang: <none>
2025-06-13 12:50:30,303 [DEBUG][       Thread-255430][   transport.py][1871] : kex follows: False
2025-06-13 12:50:30,303 [DEBUG][       Thread-255430][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 12:50:30,303 [DEBUG][       Thread-255430][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 12:50:30,303 [DEBUG][       Thread-255430][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 12:50:30,303 [DEBUG][       Thread-255430][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 12:50:30,303 [DEBUG][       Thread-255430][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 12:50:30,303 [DEBUG][       Thread-255430][   transport.py][1871] : Compression: none
2025-06-13 12:50:30,303 [DEBUG][       Thread-255430][   transport.py][1871] : === End of kex handshake ===
2025-06-13 12:50:30,361 [DEBUG][       Thread-255430][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 12:50:30,362 [DEBUG][       Thread-255430][   transport.py][1871] : Switch to new keys ...
2025-06-13 12:50:30,362 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 12:50:30,363 [DEBUG][       Thread-255430][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 12:50:30,364 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 12:50:30,417 [DEBUG][       Thread-255430][   transport.py][1871] : userauth is OK
2025-06-13 12:50:30,417 [DEBUG][       Thread-255430][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 12:50:30,417 [DEBUG][       Thread-255430][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 12:50:30,418 [DEBUG][       Thread-255430][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 12:50:30,418 [DEBUG][       Thread-255430][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 12:50:30,436 [ INFO][       Thread-255430][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 12:50:30,436 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 12:50:30,437 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 12:50:31,459 [DEBUG][       Thread-255430][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 12:50:31,460 [DEBUG][       Thread-255430][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 12:50:31,508 [DEBUG][       Thread-255430][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 12:50:31,508 [DEBUG][       Thread-255430][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 12:50:31,517 [DEBUG][       Thread-255430][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 12:50:31,527 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 12:50:31,527 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 12:50:31,536 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 12:50:31,545 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 12:50:31,545 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 12:50:31,546 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 12:50:31,555 [DEBUG][       Thread-255430][   transport.py][1871] : EOF in transport thread
2025-06-13 12:50:38,611 [DEBUG][Thread-255432 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:50:41,556 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 12:50:41,556 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 12:50:41,556 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 12:50:41,559 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 12:50:42,007 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 12, 50, 13), 14.01, 37.7, 0.0, 15.07, 12.25, 0, 0, 0, 2, 0, 0),)
2025-06-13 12:50:42,007 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 12:50:13
2025-06-13 12:50:42,087 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 12:50:42,091 [DEBUG][       Thread-255433][   transport.py][1871] : starting thread (client mode): 0x84204c70
2025-06-13 12:50:42,091 [DEBUG][       Thread-255433][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 12:50:42,111 [DEBUG][       Thread-255433][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 12:50:42,112 [ INFO][       Thread-255433][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 12:50:42,115 [DEBUG][       Thread-255433][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 12:50:42,115 [DEBUG][       Thread-255433][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 12:50:42,115 [DEBUG][       Thread-255433][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 12:50:42,115 [DEBUG][       Thread-255433][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:50:42,115 [DEBUG][       Thread-255433][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:50:42,115 [DEBUG][       Thread-255433][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:50:42,115 [DEBUG][       Thread-255433][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:50:42,115 [DEBUG][       Thread-255433][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 12:50:42,115 [DEBUG][       Thread-255433][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 12:50:42,115 [DEBUG][       Thread-255433][   transport.py][1871] : client lang: <none>
2025-06-13 12:50:42,115 [DEBUG][       Thread-255433][   transport.py][1871] : server lang: <none>
2025-06-13 12:50:42,115 [DEBUG][       Thread-255433][   transport.py][1871] : kex follows: False
2025-06-13 12:50:42,115 [DEBUG][       Thread-255433][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 12:50:42,115 [DEBUG][       Thread-255433][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 12:50:42,115 [DEBUG][       Thread-255433][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 12:50:42,115 [DEBUG][       Thread-255433][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 12:50:42,115 [DEBUG][       Thread-255433][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 12:50:42,115 [DEBUG][       Thread-255433][   transport.py][1871] : Compression: none
2025-06-13 12:50:42,116 [DEBUG][       Thread-255433][   transport.py][1871] : === End of kex handshake ===
2025-06-13 12:50:42,133 [DEBUG][       Thread-255433][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 12:50:42,133 [DEBUG][       Thread-255433][   transport.py][1871] : Switch to new keys ...
2025-06-13 12:50:42,134 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 12:50:42,134 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 12:50:42,134 [DEBUG][       Thread-255433][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 12:50:42,136 [DEBUG][       Thread-255433][   transport.py][1871] : userauth is OK
2025-06-13 12:50:42,149 [ INFO][       Thread-255433][   transport.py][1871] : Authentication (password) successful!
2025-06-13 12:50:42,149 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 12:50:42,722 [DEBUG][       Thread-255433][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 12:50:42,722 [DEBUG][       Thread-255433][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 12:50:42,765 [DEBUG][       Thread-255433][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 12:50:42,765 [DEBUG][       Thread-255433][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 12:50:42,769 [DEBUG][       Thread-255433][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 12:50:42,781 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 12:50:42,781 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 12:50:42,783 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 12:50:42,785 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 12:50:42,791 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 12:50:42,793 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 12:50:42,793 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 12:50:42,794 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 12:50:42,794 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.451674 -999.00  +12.20  15.92     41   -0.40 1 1 1 1 1   888    0 13.82 55.89 ----- 16.0 15.9 53.2 20.5 17.0 -29.4 15.7 -30.8 15.6 -28.5 17.0 -27.3
2025-06-13 12:50:42,794 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 12:50:42,794 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 12:50:42,794 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.451674
2025-06-13 12:50:42,795 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 12:50:42,796 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 12:50:42,796 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 12:50:42,796 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 12:50:42,796 [DEBUG][       Thread-255433][   transport.py][1871] : EOF in transport thread
2025-06-13 12:50:42,796 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 12:50:42,797 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T12:50:13', tmtdew=14.01, humidity=37.7, cloud=0.0, wind=15.07, temperature=12.25, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T10:50:24.634', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 12:50:42,880 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 12:50:42,891 [DEBUG][       Thread-255436][   transport.py][1871] : starting thread (client mode): 0x863511e0
2025-06-13 12:50:42,891 [DEBUG][       Thread-255436][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 12:50:42,912 [DEBUG][       Thread-255436][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 12:50:42,912 [ INFO][       Thread-255436][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 12:50:42,920 [DEBUG][       Thread-255436][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 12:50:42,920 [DEBUG][       Thread-255436][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 12:50:42,920 [DEBUG][       Thread-255436][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 12:50:42,920 [DEBUG][       Thread-255436][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:50:42,920 [DEBUG][       Thread-255436][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:50:42,920 [DEBUG][       Thread-255436][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:50:42,920 [DEBUG][       Thread-255436][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:50:42,920 [DEBUG][       Thread-255436][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 12:50:42,921 [DEBUG][       Thread-255436][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 12:50:42,921 [DEBUG][       Thread-255436][   transport.py][1871] : client lang: <none>
2025-06-13 12:50:42,921 [DEBUG][       Thread-255436][   transport.py][1871] : server lang: <none>
2025-06-13 12:50:42,921 [DEBUG][       Thread-255436][   transport.py][1871] : kex follows: False
2025-06-13 12:50:42,921 [DEBUG][       Thread-255436][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 12:50:42,921 [DEBUG][       Thread-255436][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 12:50:42,921 [DEBUG][       Thread-255436][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 12:50:42,921 [DEBUG][       Thread-255436][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 12:50:42,921 [DEBUG][       Thread-255436][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 12:50:42,921 [DEBUG][       Thread-255436][   transport.py][1871] : Compression: none
2025-06-13 12:50:42,921 [DEBUG][       Thread-255436][   transport.py][1871] : === End of kex handshake ===
2025-06-13 12:50:42,977 [DEBUG][       Thread-255436][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 12:50:42,978 [DEBUG][       Thread-255436][   transport.py][1871] : Switch to new keys ...
2025-06-13 12:50:42,978 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 12:50:42,979 [DEBUG][       Thread-255436][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 12:50:42,979 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 12:50:43,034 [DEBUG][       Thread-255436][   transport.py][1871] : userauth is OK
2025-06-13 12:50:43,034 [DEBUG][       Thread-255436][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 12:50:43,034 [DEBUG][       Thread-255436][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 12:50:43,034 [DEBUG][       Thread-255436][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 12:50:43,034 [DEBUG][       Thread-255436][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 12:50:43,054 [ INFO][       Thread-255436][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 12:50:43,054 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 12:50:43,055 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 12:50:44,080 [DEBUG][       Thread-255436][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 12:50:44,080 [DEBUG][       Thread-255436][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 12:50:44,128 [DEBUG][       Thread-255436][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 12:50:44,128 [DEBUG][       Thread-255436][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 12:50:44,138 [DEBUG][       Thread-255436][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 12:50:44,147 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 12:50:44,147 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 12:50:44,156 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 12:50:44,166 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 12:50:44,166 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 12:50:44,167 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 12:50:44,175 [DEBUG][       Thread-255436][   transport.py][1871] : EOF in transport thread
2025-06-13 12:50:46,912 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:50:46,912 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:50:47,646 [DEBUG][Thread-255438 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:50:52,397 [DEBUG][Thread-255439 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:50:53,474 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:50:53,476 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:50:54,177 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 12:50:54,177 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 12:50:54,177 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 12:50:54,180 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 12:50:54,668 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 12, 50, 44), 14.18, 37.27, 0.0, 12.53, 12.29, 0, 0, 0, 2, 0, 0),)
2025-06-13 12:50:54,668 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 12:50:44
2025-06-13 12:50:54,753 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 12:50:54,757 [DEBUG][       Thread-255440][   transport.py][1871] : starting thread (client mode): 0x86351d80
2025-06-13 12:50:54,757 [DEBUG][       Thread-255440][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 12:50:54,777 [DEBUG][       Thread-255440][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 12:50:54,777 [ INFO][       Thread-255440][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 12:50:54,780 [DEBUG][       Thread-255440][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 12:50:54,780 [DEBUG][       Thread-255440][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 12:50:54,780 [DEBUG][       Thread-255440][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 12:50:54,780 [DEBUG][       Thread-255440][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:50:54,780 [DEBUG][       Thread-255440][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:50:54,781 [DEBUG][       Thread-255440][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:50:54,781 [DEBUG][       Thread-255440][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:50:54,781 [DEBUG][       Thread-255440][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 12:50:54,781 [DEBUG][       Thread-255440][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 12:50:54,781 [DEBUG][       Thread-255440][   transport.py][1871] : client lang: <none>
2025-06-13 12:50:54,781 [DEBUG][       Thread-255440][   transport.py][1871] : server lang: <none>
2025-06-13 12:50:54,781 [DEBUG][       Thread-255440][   transport.py][1871] : kex follows: False
2025-06-13 12:50:54,781 [DEBUG][       Thread-255440][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 12:50:54,781 [DEBUG][       Thread-255440][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 12:50:54,781 [DEBUG][       Thread-255440][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 12:50:54,781 [DEBUG][       Thread-255440][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 12:50:54,781 [DEBUG][       Thread-255440][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 12:50:54,781 [DEBUG][       Thread-255440][   transport.py][1871] : Compression: none
2025-06-13 12:50:54,781 [DEBUG][       Thread-255440][   transport.py][1871] : === End of kex handshake ===
2025-06-13 12:50:54,796 [DEBUG][       Thread-255440][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 12:50:54,796 [DEBUG][       Thread-255440][   transport.py][1871] : Switch to new keys ...
2025-06-13 12:50:54,796 [DEBUG][       Thread-255440][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 12:50:54,796 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 12:50:54,796 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 12:50:54,797 [DEBUG][       Thread-255440][   transport.py][1871] : userauth is OK
2025-06-13 12:50:54,821 [ INFO][       Thread-255440][   transport.py][1871] : Authentication (password) successful!
2025-06-13 12:50:54,821 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 12:50:55,641 [DEBUG][       Thread-255440][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 12:50:55,641 [DEBUG][       Thread-255440][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 12:50:55,684 [DEBUG][       Thread-255440][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 12:50:55,684 [DEBUG][       Thread-255440][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 12:50:55,687 [DEBUG][       Thread-255440][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 12:50:55,698 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 12:50:55,698 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 12:50:55,699 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 12:50:55,700 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 12:50:55,702 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 12:50:55,703 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 12:50:55,703 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 12:50:55,703 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 12:50:55,703 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.451674 -999.00  +12.20  15.92     41   -0.40 1 1 1 1 1   888    0 13.82 55.89 ----- 16.0 15.9 53.2 20.5 17.0 -29.4 15.7 -30.8 15.6 -28.5 17.0 -27.3
2025-06-13 12:50:55,703 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 12:50:55,703 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 12:50:55,703 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.451674
2025-06-13 12:50:55,703 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 12:50:55,703 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 12:50:55,703 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 12:50:55,703 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 12:50:55,703 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 12:50:55,703 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T12:50:44', tmtdew=14.18, humidity=37.27, cloud=0.0, wind=12.53, temperature=12.29, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T10:50:24.634', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 12:50:55,704 [DEBUG][       Thread-255440][   transport.py][1871] : EOF in transport thread
2025-06-13 12:50:55,775 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 12:50:55,786 [DEBUG][       Thread-255443][   transport.py][1871] : starting thread (client mode): 0x863ee470
2025-06-13 12:50:55,786 [DEBUG][       Thread-255443][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 12:50:55,801 [DEBUG][       Thread-255443][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 12:50:55,801 [ INFO][       Thread-255443][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 12:50:55,809 [DEBUG][       Thread-255443][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 12:50:55,809 [DEBUG][       Thread-255443][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 12:50:55,809 [DEBUG][       Thread-255443][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 12:50:55,809 [DEBUG][       Thread-255443][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:50:55,809 [DEBUG][       Thread-255443][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:50:55,809 [DEBUG][       Thread-255443][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:50:55,809 [DEBUG][       Thread-255443][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:50:55,809 [DEBUG][       Thread-255443][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 12:50:55,809 [DEBUG][       Thread-255443][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 12:50:55,809 [DEBUG][       Thread-255443][   transport.py][1871] : client lang: <none>
2025-06-13 12:50:55,809 [DEBUG][       Thread-255443][   transport.py][1871] : server lang: <none>
2025-06-13 12:50:55,809 [DEBUG][       Thread-255443][   transport.py][1871] : kex follows: False
2025-06-13 12:50:55,809 [DEBUG][       Thread-255443][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 12:50:55,809 [DEBUG][       Thread-255443][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 12:50:55,809 [DEBUG][       Thread-255443][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 12:50:55,809 [DEBUG][       Thread-255443][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 12:50:55,809 [DEBUG][       Thread-255443][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 12:50:55,809 [DEBUG][       Thread-255443][   transport.py][1871] : Compression: none
2025-06-13 12:50:55,809 [DEBUG][       Thread-255443][   transport.py][1871] : === End of kex handshake ===
2025-06-13 12:50:55,867 [DEBUG][       Thread-255443][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 12:50:55,867 [DEBUG][       Thread-255443][   transport.py][1871] : Switch to new keys ...
2025-06-13 12:50:55,867 [DEBUG][       Thread-255443][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 12:50:55,867 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 12:50:55,868 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 12:50:55,926 [DEBUG][       Thread-255443][   transport.py][1871] : userauth is OK
2025-06-13 12:50:55,927 [DEBUG][       Thread-255443][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 12:50:55,927 [DEBUG][       Thread-255443][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 12:50:55,927 [DEBUG][       Thread-255443][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 12:50:55,927 [DEBUG][       Thread-255443][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 12:50:55,941 [ INFO][       Thread-255443][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 12:50:55,941 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 12:50:55,941 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 12:50:56,664 [DEBUG][Thread-255445 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:50:56,991 [DEBUG][       Thread-255443][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 12:50:56,991 [DEBUG][       Thread-255443][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 12:50:57,039 [DEBUG][       Thread-255443][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 12:50:57,039 [DEBUG][       Thread-255443][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 12:50:57,048 [DEBUG][       Thread-255443][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 12:50:57,056 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 12:50:57,056 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 12:50:57,064 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 12:50:57,072 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 12:50:57,072 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 12:50:57,072 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 12:50:57,079 [DEBUG][       Thread-255443][   transport.py][1871] : EOF in transport thread
2025-06-13 12:51:05,701 [DEBUG][Thread-255446 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:51:07,082 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 12:51:07,082 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 12:51:07,082 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 12:51:07,085 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 12:51:07,536 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 12, 50, 44), 14.18, 37.27, 0.0, 12.53, 12.29, 0, 0, 0, 2, 0, 0),)
2025-06-13 12:51:07,536 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 12:50:44
2025-06-13 12:51:07,617 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 12:51:07,621 [DEBUG][       Thread-255447][   transport.py][1871] : starting thread (client mode): 0x863c8520
2025-06-13 12:51:07,621 [DEBUG][       Thread-255447][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 12:51:07,637 [DEBUG][       Thread-255447][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 12:51:07,637 [ INFO][       Thread-255447][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 12:51:07,640 [DEBUG][       Thread-255447][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 12:51:07,640 [DEBUG][       Thread-255447][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 12:51:07,640 [DEBUG][       Thread-255447][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 12:51:07,640 [DEBUG][       Thread-255447][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:51:07,640 [DEBUG][       Thread-255447][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:51:07,640 [DEBUG][       Thread-255447][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:51:07,640 [DEBUG][       Thread-255447][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:51:07,640 [DEBUG][       Thread-255447][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 12:51:07,640 [DEBUG][       Thread-255447][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 12:51:07,640 [DEBUG][       Thread-255447][   transport.py][1871] : client lang: <none>
2025-06-13 12:51:07,640 [DEBUG][       Thread-255447][   transport.py][1871] : server lang: <none>
2025-06-13 12:51:07,640 [DEBUG][       Thread-255447][   transport.py][1871] : kex follows: False
2025-06-13 12:51:07,640 [DEBUG][       Thread-255447][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 12:51:07,640 [DEBUG][       Thread-255447][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 12:51:07,640 [DEBUG][       Thread-255447][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 12:51:07,640 [DEBUG][       Thread-255447][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 12:51:07,640 [DEBUG][       Thread-255447][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 12:51:07,640 [DEBUG][       Thread-255447][   transport.py][1871] : Compression: none
2025-06-13 12:51:07,640 [DEBUG][       Thread-255447][   transport.py][1871] : === End of kex handshake ===
2025-06-13 12:51:07,657 [DEBUG][       Thread-255447][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 12:51:07,658 [DEBUG][       Thread-255447][   transport.py][1871] : Switch to new keys ...
2025-06-13 12:51:07,658 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 12:51:07,659 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 12:51:07,659 [DEBUG][       Thread-255447][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 12:51:07,660 [DEBUG][       Thread-255447][   transport.py][1871] : userauth is OK
2025-06-13 12:51:07,672 [ INFO][       Thread-255447][   transport.py][1871] : Authentication (password) successful!
2025-06-13 12:51:07,673 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 12:51:08,274 [DEBUG][       Thread-255447][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 12:51:08,275 [DEBUG][       Thread-255447][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 12:51:08,321 [DEBUG][       Thread-255447][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 12:51:08,321 [DEBUG][       Thread-255447][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 12:51:08,324 [DEBUG][       Thread-255447][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 12:51:08,337 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 12:51:08,338 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 12:51:08,339 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 12:51:08,341 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 12:51:08,347 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 12:51:08,349 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 12:51:08,349 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 12:51:08,350 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 12:51:08,350 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.452021 -999.00  +12.50  15.72     41   -0.10 1 1 1 1 1   888    0 13.98 59.88 ----- 11.0 15.7 20.2 18.6 17.1 -28.9 15.8 -30.6 15.6 -27.8 17.0 -26.9
2025-06-13 12:51:08,350 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 12:51:08,350 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 12:51:08,350 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.452021
2025-06-13 12:51:08,350 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 12:51:08,351 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 12:51:08,351 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 12:51:08,351 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 12:51:08,351 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 12:51:08,351 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T12:50:44', tmtdew=14.18, humidity=37.27, cloud=0.0, wind=12.53, temperature=12.29, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T10:50:54.614', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 12:51:08,352 [DEBUG][       Thread-255447][   transport.py][1871] : EOF in transport thread
2025-06-13 12:51:08,427 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 12:51:08,438 [DEBUG][       Thread-255450][   transport.py][1871] : starting thread (client mode): 0x86369d20
2025-06-13 12:51:08,438 [DEBUG][       Thread-255450][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 12:51:08,453 [DEBUG][       Thread-255450][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 12:51:08,453 [ INFO][       Thread-255450][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 12:51:08,460 [DEBUG][       Thread-255450][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 12:51:08,460 [DEBUG][       Thread-255450][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 12:51:08,460 [DEBUG][       Thread-255450][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 12:51:08,460 [DEBUG][       Thread-255450][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:51:08,460 [DEBUG][       Thread-255450][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:51:08,460 [DEBUG][       Thread-255450][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:51:08,460 [DEBUG][       Thread-255450][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:51:08,460 [DEBUG][       Thread-255450][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 12:51:08,460 [DEBUG][       Thread-255450][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 12:51:08,460 [DEBUG][       Thread-255450][   transport.py][1871] : client lang: <none>
2025-06-13 12:51:08,460 [DEBUG][       Thread-255450][   transport.py][1871] : server lang: <none>
2025-06-13 12:51:08,460 [DEBUG][       Thread-255450][   transport.py][1871] : kex follows: False
2025-06-13 12:51:08,460 [DEBUG][       Thread-255450][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 12:51:08,460 [DEBUG][       Thread-255450][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 12:51:08,460 [DEBUG][       Thread-255450][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 12:51:08,460 [DEBUG][       Thread-255450][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 12:51:08,460 [DEBUG][       Thread-255450][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 12:51:08,460 [DEBUG][       Thread-255450][   transport.py][1871] : Compression: none
2025-06-13 12:51:08,460 [DEBUG][       Thread-255450][   transport.py][1871] : === End of kex handshake ===
2025-06-13 12:51:08,515 [DEBUG][       Thread-255450][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 12:51:08,515 [DEBUG][       Thread-255450][   transport.py][1871] : Switch to new keys ...
2025-06-13 12:51:08,515 [DEBUG][       Thread-255450][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 12:51:08,515 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 12:51:08,516 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 12:51:08,578 [DEBUG][       Thread-255450][   transport.py][1871] : userauth is OK
2025-06-13 12:51:08,578 [DEBUG][       Thread-255450][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 12:51:08,578 [DEBUG][       Thread-255450][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 12:51:08,578 [DEBUG][       Thread-255450][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 12:51:08,578 [DEBUG][       Thread-255450][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 12:51:08,596 [ INFO][       Thread-255450][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 12:51:08,596 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 12:51:08,597 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 12:51:09,636 [DEBUG][       Thread-255450][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 12:51:09,636 [DEBUG][       Thread-255450][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 12:51:09,684 [DEBUG][       Thread-255450][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 12:51:09,684 [DEBUG][       Thread-255450][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 12:51:09,693 [DEBUG][       Thread-255450][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 12:51:09,703 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 12:51:09,703 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 12:51:09,712 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 12:51:09,721 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 12:51:09,721 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 12:51:09,722 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 12:51:09,730 [DEBUG][       Thread-255450][   transport.py][1871] : EOF in transport thread
2025-06-13 12:51:13,324 [DEBUG][Thread-255452 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:51:14,721 [DEBUG][Thread-255453 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:51:19,732 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 12:51:19,732 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 12:51:19,732 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 12:51:19,734 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 12:51:20,180 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 12, 51, 16), 14.19, 37.42, 0.0, 16.92, 12.41, 0, 0, 0, 2, 0, 0),)
2025-06-13 12:51:20,180 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 12:51:16
2025-06-13 12:51:20,261 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 12:51:20,265 [DEBUG][       Thread-255454][   transport.py][1871] : starting thread (client mode): 0x84205030
2025-06-13 12:51:20,265 [DEBUG][       Thread-255454][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 12:51:20,285 [DEBUG][       Thread-255454][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 12:51:20,285 [ INFO][       Thread-255454][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 12:51:20,288 [DEBUG][       Thread-255454][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 12:51:20,288 [DEBUG][       Thread-255454][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 12:51:20,288 [DEBUG][       Thread-255454][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 12:51:20,288 [DEBUG][       Thread-255454][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:51:20,288 [DEBUG][       Thread-255454][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:51:20,288 [DEBUG][       Thread-255454][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:51:20,289 [DEBUG][       Thread-255454][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:51:20,289 [DEBUG][       Thread-255454][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 12:51:20,289 [DEBUG][       Thread-255454][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 12:51:20,289 [DEBUG][       Thread-255454][   transport.py][1871] : client lang: <none>
2025-06-13 12:51:20,289 [DEBUG][       Thread-255454][   transport.py][1871] : server lang: <none>
2025-06-13 12:51:20,289 [DEBUG][       Thread-255454][   transport.py][1871] : kex follows: False
2025-06-13 12:51:20,289 [DEBUG][       Thread-255454][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 12:51:20,289 [DEBUG][       Thread-255454][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 12:51:20,289 [DEBUG][       Thread-255454][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 12:51:20,289 [DEBUG][       Thread-255454][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 12:51:20,289 [DEBUG][       Thread-255454][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 12:51:20,289 [DEBUG][       Thread-255454][   transport.py][1871] : Compression: none
2025-06-13 12:51:20,289 [DEBUG][       Thread-255454][   transport.py][1871] : === End of kex handshake ===
2025-06-13 12:51:20,306 [DEBUG][       Thread-255454][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 12:51:20,307 [DEBUG][       Thread-255454][   transport.py][1871] : Switch to new keys ...
2025-06-13 12:51:20,307 [DEBUG][       Thread-255454][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 12:51:20,307 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 12:51:20,308 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 12:51:20,309 [DEBUG][       Thread-255454][   transport.py][1871] : userauth is OK
2025-06-13 12:51:20,321 [ INFO][       Thread-255454][   transport.py][1871] : Authentication (password) successful!
2025-06-13 12:51:20,322 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 12:51:20,949 [DEBUG][       Thread-255454][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 12:51:20,949 [DEBUG][       Thread-255454][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 12:51:20,992 [DEBUG][       Thread-255454][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 12:51:20,992 [DEBUG][       Thread-255454][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 12:51:20,995 [DEBUG][       Thread-255454][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 12:51:21,008 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 12:51:21,008 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 12:51:21,009 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 12:51:21,009 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 12:51:21,012 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 12:51:21,013 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 12:51:21,013 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 12:51:21,013 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 12:51:21,013 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.452021 -999.00  +12.50  15.72     41   -0.10 1 1 1 1 1   888    0 13.98 59.88 ----- 11.0 15.7 20.2 18.6 17.1 -28.9 15.8 -30.6 15.6 -27.8 17.0 -26.9
2025-06-13 12:51:21,013 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 12:51:21,013 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 12:51:21,013 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.452021
2025-06-13 12:51:21,013 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 12:51:21,014 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 12:51:21,014 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 12:51:21,014 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 12:51:21,014 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 12:51:21,014 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T12:51:16', tmtdew=14.19, humidity=37.42, cloud=0.0, wind=16.92, temperature=12.41, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T10:50:54.614', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 12:51:21,014 [DEBUG][       Thread-255454][   transport.py][1871] : EOF in transport thread
2025-06-13 12:51:21,095 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 12:51:21,107 [DEBUG][       Thread-255457][   transport.py][1871] : starting thread (client mode): 0x863ef340
2025-06-13 12:51:21,107 [DEBUG][       Thread-255457][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 12:51:21,122 [DEBUG][       Thread-255457][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 12:51:21,122 [ INFO][       Thread-255457][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 12:51:21,130 [DEBUG][       Thread-255457][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 12:51:21,130 [DEBUG][       Thread-255457][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 12:51:21,130 [DEBUG][       Thread-255457][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 12:51:21,130 [DEBUG][       Thread-255457][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:51:21,130 [DEBUG][       Thread-255457][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:51:21,130 [DEBUG][       Thread-255457][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:51:21,130 [DEBUG][       Thread-255457][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:51:21,130 [DEBUG][       Thread-255457][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 12:51:21,131 [DEBUG][       Thread-255457][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 12:51:21,131 [DEBUG][       Thread-255457][   transport.py][1871] : client lang: <none>
2025-06-13 12:51:21,131 [DEBUG][       Thread-255457][   transport.py][1871] : server lang: <none>
2025-06-13 12:51:21,131 [DEBUG][       Thread-255457][   transport.py][1871] : kex follows: False
2025-06-13 12:51:21,131 [DEBUG][       Thread-255457][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 12:51:21,131 [DEBUG][       Thread-255457][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 12:51:21,131 [DEBUG][       Thread-255457][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 12:51:21,131 [DEBUG][       Thread-255457][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 12:51:21,131 [DEBUG][       Thread-255457][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 12:51:21,131 [DEBUG][       Thread-255457][   transport.py][1871] : Compression: none
2025-06-13 12:51:21,131 [DEBUG][       Thread-255457][   transport.py][1871] : === End of kex handshake ===
2025-06-13 12:51:21,188 [DEBUG][       Thread-255457][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 12:51:21,189 [DEBUG][       Thread-255457][   transport.py][1871] : Switch to new keys ...
2025-06-13 12:51:21,190 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 12:51:21,190 [DEBUG][       Thread-255457][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 12:51:21,191 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 12:51:21,245 [DEBUG][       Thread-255457][   transport.py][1871] : userauth is OK
2025-06-13 12:51:21,245 [DEBUG][       Thread-255457][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 12:51:21,245 [DEBUG][       Thread-255457][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 12:51:21,245 [DEBUG][       Thread-255457][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 12:51:21,246 [DEBUG][       Thread-255457][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 12:51:21,264 [ INFO][       Thread-255457][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 12:51:21,264 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 12:51:21,265 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 12:51:22,299 [DEBUG][       Thread-255457][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 12:51:22,299 [DEBUG][       Thread-255457][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 12:51:22,347 [DEBUG][       Thread-255457][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 12:51:22,348 [DEBUG][       Thread-255457][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 12:51:22,356 [DEBUG][       Thread-255457][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 12:51:22,365 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 12:51:22,365 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 12:51:22,374 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 12:51:22,383 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 12:51:22,383 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 12:51:22,383 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 12:51:22,391 [DEBUG][       Thread-255457][   transport.py][1871] : EOF in transport thread
2025-06-13 12:51:23,740 [DEBUG][Thread-255459 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:51:32,392 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 12:51:32,392 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 12:51:32,392 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 12:51:32,393 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 12:51:32,779 [DEBUG][Thread-255460 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:51:32,867 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 12, 51, 16), 14.19, 37.42, 0.0, 16.92, 12.41, 0, 0, 0, 2, 0, 0),)
2025-06-13 12:51:32,867 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 12:51:16
2025-06-13 12:51:32,950 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 12:51:32,954 [DEBUG][       Thread-255461][   transport.py][1871] : starting thread (client mode): 0x84204790
2025-06-13 12:51:32,954 [DEBUG][       Thread-255461][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 12:51:32,974 [DEBUG][       Thread-255461][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 12:51:32,974 [ INFO][       Thread-255461][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 12:51:32,977 [DEBUG][       Thread-255461][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 12:51:32,977 [DEBUG][       Thread-255461][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 12:51:32,977 [DEBUG][       Thread-255461][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 12:51:32,977 [DEBUG][       Thread-255461][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:51:32,977 [DEBUG][       Thread-255461][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:51:32,977 [DEBUG][       Thread-255461][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:51:32,977 [DEBUG][       Thread-255461][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:51:32,977 [DEBUG][       Thread-255461][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 12:51:32,977 [DEBUG][       Thread-255461][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 12:51:32,977 [DEBUG][       Thread-255461][   transport.py][1871] : client lang: <none>
2025-06-13 12:51:32,977 [DEBUG][       Thread-255461][   transport.py][1871] : server lang: <none>
2025-06-13 12:51:32,977 [DEBUG][       Thread-255461][   transport.py][1871] : kex follows: False
2025-06-13 12:51:32,977 [DEBUG][       Thread-255461][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 12:51:32,978 [DEBUG][       Thread-255461][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 12:51:32,978 [DEBUG][       Thread-255461][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 12:51:32,978 [DEBUG][       Thread-255461][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 12:51:32,978 [DEBUG][       Thread-255461][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 12:51:32,978 [DEBUG][       Thread-255461][   transport.py][1871] : Compression: none
2025-06-13 12:51:32,978 [DEBUG][       Thread-255461][   transport.py][1871] : === End of kex handshake ===
2025-06-13 12:51:32,993 [DEBUG][       Thread-255461][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 12:51:32,993 [DEBUG][       Thread-255461][   transport.py][1871] : Switch to new keys ...
2025-06-13 12:51:32,993 [DEBUG][       Thread-255461][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 12:51:32,993 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 12:51:32,993 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 12:51:32,994 [DEBUG][       Thread-255461][   transport.py][1871] : userauth is OK
2025-06-13 12:51:33,040 [ INFO][       Thread-255461][   transport.py][1871] : Authentication (password) successful!
2025-06-13 12:51:33,040 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 12:51:33,700 [DEBUG][       Thread-255461][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 12:51:33,700 [DEBUG][       Thread-255461][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 12:51:33,740 [DEBUG][       Thread-255461][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 12:51:33,740 [DEBUG][       Thread-255461][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 12:51:33,743 [DEBUG][       Thread-255461][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 12:51:33,755 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 12:51:33,755 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 12:51:33,756 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 12:51:33,757 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 12:51:33,760 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 12:51:33,761 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 12:51:33,761 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 12:51:33,761 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 12:51:33,761 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.452021 -999.00  +12.50  15.72     41   -0.10 1 1 1 1 1   888    0 13.98 59.88 ----- 11.0 15.7 20.2 18.6 17.1 -28.9 15.8 -30.6 15.6 -27.8 17.0 -26.9
2025-06-13 12:51:33,761 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 12:51:33,761 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 12:51:33,761 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.452021
2025-06-13 12:51:33,761 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 12:51:33,761 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 12:51:33,761 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 12:51:33,761 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 12:51:33,761 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 12:51:33,761 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T12:51:16', tmtdew=14.19, humidity=37.42, cloud=0.0, wind=16.92, temperature=12.41, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T10:50:54.614', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 12:51:33,762 [DEBUG][       Thread-255461][   transport.py][1871] : EOF in transport thread
2025-06-13 12:51:33,833 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 12:51:33,842 [DEBUG][       Thread-255464][   transport.py][1871] : starting thread (client mode): 0x867b7640
2025-06-13 12:51:33,842 [DEBUG][       Thread-255464][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 12:51:33,864 [DEBUG][       Thread-255464][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 12:51:33,864 [ INFO][       Thread-255464][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 12:51:33,873 [DEBUG][       Thread-255464][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 12:51:33,873 [DEBUG][       Thread-255464][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 12:51:33,873 [DEBUG][       Thread-255464][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 12:51:33,873 [DEBUG][       Thread-255464][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:51:33,873 [DEBUG][       Thread-255464][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:51:33,873 [DEBUG][       Thread-255464][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:51:33,873 [DEBUG][       Thread-255464][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:51:33,873 [DEBUG][       Thread-255464][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 12:51:33,873 [DEBUG][       Thread-255464][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 12:51:33,873 [DEBUG][       Thread-255464][   transport.py][1871] : client lang: <none>
2025-06-13 12:51:33,873 [DEBUG][       Thread-255464][   transport.py][1871] : server lang: <none>
2025-06-13 12:51:33,873 [DEBUG][       Thread-255464][   transport.py][1871] : kex follows: False
2025-06-13 12:51:33,873 [DEBUG][       Thread-255464][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 12:51:33,873 [DEBUG][       Thread-255464][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 12:51:33,873 [DEBUG][       Thread-255464][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 12:51:33,873 [DEBUG][       Thread-255464][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 12:51:33,873 [DEBUG][       Thread-255464][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 12:51:33,873 [DEBUG][       Thread-255464][   transport.py][1871] : Compression: none
2025-06-13 12:51:33,873 [DEBUG][       Thread-255464][   transport.py][1871] : === End of kex handshake ===
2025-06-13 12:51:33,932 [DEBUG][       Thread-255464][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 12:51:33,932 [DEBUG][       Thread-255464][   transport.py][1871] : Switch to new keys ...
2025-06-13 12:51:33,932 [DEBUG][       Thread-255464][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 12:51:33,933 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 12:51:33,933 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 12:51:33,988 [DEBUG][       Thread-255464][   transport.py][1871] : userauth is OK
2025-06-13 12:51:33,989 [DEBUG][       Thread-255464][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 12:51:33,989 [DEBUG][       Thread-255464][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 12:51:33,989 [DEBUG][       Thread-255464][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 12:51:33,989 [DEBUG][       Thread-255464][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 12:51:34,003 [ INFO][       Thread-255464][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 12:51:34,003 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 12:51:34,003 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 12:51:35,026 [DEBUG][       Thread-255464][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 12:51:35,026 [DEBUG][       Thread-255464][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 12:51:35,075 [DEBUG][       Thread-255464][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 12:51:35,075 [DEBUG][       Thread-255464][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 12:51:35,083 [DEBUG][       Thread-255464][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 12:51:35,091 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 12:51:35,091 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 12:51:35,099 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 12:51:35,107 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 12:51:35,107 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 12:51:35,107 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 12:51:35,115 [DEBUG][       Thread-255464][   transport.py][1871] : EOF in transport thread
2025-06-13 12:51:41,798 [DEBUG][Thread-255466 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:51:45,118 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 12:51:45,118 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 12:51:45,118 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 12:51:45,121 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 12:51:45,577 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 12, 51, 16), 14.19, 37.42, 0.0, 16.92, 12.41, 0, 0, 0, 2, 0, 0),)
2025-06-13 12:51:45,577 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 12:51:16
2025-06-13 12:51:45,658 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 12:51:45,662 [DEBUG][       Thread-255467][   transport.py][1871] : starting thread (client mode): 0x842069e0
2025-06-13 12:51:45,662 [DEBUG][       Thread-255467][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 12:51:45,683 [DEBUG][       Thread-255467][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 12:51:45,683 [ INFO][       Thread-255467][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 12:51:45,686 [DEBUG][       Thread-255467][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 12:51:45,686 [DEBUG][       Thread-255467][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 12:51:45,686 [DEBUG][       Thread-255467][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 12:51:45,686 [DEBUG][       Thread-255467][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:51:45,686 [DEBUG][       Thread-255467][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:51:45,686 [DEBUG][       Thread-255467][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:51:45,686 [DEBUG][       Thread-255467][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:51:45,686 [DEBUG][       Thread-255467][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 12:51:45,686 [DEBUG][       Thread-255467][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 12:51:45,686 [DEBUG][       Thread-255467][   transport.py][1871] : client lang: <none>
2025-06-13 12:51:45,686 [DEBUG][       Thread-255467][   transport.py][1871] : server lang: <none>
2025-06-13 12:51:45,686 [DEBUG][       Thread-255467][   transport.py][1871] : kex follows: False
2025-06-13 12:51:45,686 [DEBUG][       Thread-255467][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 12:51:45,686 [DEBUG][       Thread-255467][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 12:51:45,686 [DEBUG][       Thread-255467][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 12:51:45,686 [DEBUG][       Thread-255467][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 12:51:45,686 [DEBUG][       Thread-255467][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 12:51:45,687 [DEBUG][       Thread-255467][   transport.py][1871] : Compression: none
2025-06-13 12:51:45,687 [DEBUG][       Thread-255467][   transport.py][1871] : === End of kex handshake ===
2025-06-13 12:51:45,702 [DEBUG][       Thread-255467][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 12:51:45,702 [DEBUG][       Thread-255467][   transport.py][1871] : Switch to new keys ...
2025-06-13 12:51:45,703 [DEBUG][       Thread-255467][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 12:51:45,703 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 12:51:45,703 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 12:51:45,704 [DEBUG][       Thread-255467][   transport.py][1871] : userauth is OK
2025-06-13 12:51:45,728 [ INFO][       Thread-255467][   transport.py][1871] : Authentication (password) successful!
2025-06-13 12:51:45,729 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 12:51:46,378 [DEBUG][       Thread-255467][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 12:51:46,378 [DEBUG][       Thread-255467][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 12:51:46,421 [DEBUG][       Thread-255467][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 12:51:46,422 [DEBUG][       Thread-255467][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 12:51:46,425 [DEBUG][       Thread-255467][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 12:51:46,439 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 12:51:46,439 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 12:51:46,442 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 12:51:46,444 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 12:51:46,448 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 12:51:46,450 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 12:51:46,450 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 12:51:46,451 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 12:51:46,451 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.452368 -999.00  +12.40  16.68     41   -0.10 1 1 1 1 1   888    0 14.03 61.73 ----- 21.5 16.7 28.8 24.0 17.1 -29.7 15.8 -30.6 15.7 -28.6 17.0 -27.0
2025-06-13 12:51:46,451 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 12:51:46,451 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 12:51:46,451 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.452368
2025-06-13 12:51:46,452 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 12:51:46,453 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 12:51:46,453 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 12:51:46,453 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 12:51:46,453 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 12:51:46,453 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T12:51:16', tmtdew=14.19, humidity=37.42, cloud=0.0, wind=16.92, temperature=12.41, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T10:51:24.595', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 12:51:46,454 [DEBUG][       Thread-255467][   transport.py][1871] : EOF in transport thread
2025-06-13 12:51:46,536 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 12:51:46,548 [DEBUG][       Thread-255470][   transport.py][1871] : starting thread (client mode): 0x863bdfc0
2025-06-13 12:51:46,548 [DEBUG][       Thread-255470][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 12:51:46,564 [DEBUG][       Thread-255470][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 12:51:46,564 [ INFO][       Thread-255470][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 12:51:46,572 [DEBUG][       Thread-255470][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 12:51:46,572 [DEBUG][       Thread-255470][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 12:51:46,572 [DEBUG][       Thread-255470][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 12:51:46,572 [DEBUG][       Thread-255470][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:51:46,572 [DEBUG][       Thread-255470][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:51:46,572 [DEBUG][       Thread-255470][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:51:46,572 [DEBUG][       Thread-255470][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:51:46,572 [DEBUG][       Thread-255470][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 12:51:46,572 [DEBUG][       Thread-255470][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 12:51:46,572 [DEBUG][       Thread-255470][   transport.py][1871] : client lang: <none>
2025-06-13 12:51:46,572 [DEBUG][       Thread-255470][   transport.py][1871] : server lang: <none>
2025-06-13 12:51:46,572 [DEBUG][       Thread-255470][   transport.py][1871] : kex follows: False
2025-06-13 12:51:46,572 [DEBUG][       Thread-255470][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 12:51:46,572 [DEBUG][       Thread-255470][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 12:51:46,573 [DEBUG][       Thread-255470][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 12:51:46,573 [DEBUG][       Thread-255470][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 12:51:46,573 [DEBUG][       Thread-255470][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 12:51:46,573 [DEBUG][       Thread-255470][   transport.py][1871] : Compression: none
2025-06-13 12:51:46,573 [DEBUG][       Thread-255470][   transport.py][1871] : === End of kex handshake ===
2025-06-13 12:51:46,629 [DEBUG][       Thread-255470][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 12:51:46,630 [DEBUG][       Thread-255470][   transport.py][1871] : Switch to new keys ...
2025-06-13 12:51:46,631 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 12:51:46,631 [DEBUG][       Thread-255470][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 12:51:46,632 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 12:51:46,685 [DEBUG][       Thread-255470][   transport.py][1871] : userauth is OK
2025-06-13 12:51:46,686 [DEBUG][       Thread-255470][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 12:51:46,686 [DEBUG][       Thread-255470][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 12:51:46,686 [DEBUG][       Thread-255470][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 12:51:46,686 [DEBUG][       Thread-255470][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 12:51:46,713 [ INFO][       Thread-255470][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 12:51:46,713 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 12:51:46,714 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 12:51:47,071 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:51:47,072 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:51:47,792 [DEBUG][       Thread-255470][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 12:51:47,792 [DEBUG][       Thread-255470][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 12:51:47,844 [DEBUG][       Thread-255470][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 12:51:47,844 [DEBUG][       Thread-255470][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 12:51:47,857 [DEBUG][       Thread-255470][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 12:51:47,866 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 12:51:47,867 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 12:51:47,876 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 12:51:47,885 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 12:51:47,885 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 12:51:47,886 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 12:51:47,894 [DEBUG][       Thread-255470][   transport.py][1871] : EOF in transport thread
2025-06-13 12:51:50,818 [DEBUG][Thread-255472 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:51:53,548 [DEBUG][Thread-255473 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:51:54,623 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:51:54,625 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:51:57,896 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 12:51:57,897 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 12:51:57,897 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 12:51:57,900 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 12:51:58,348 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 12, 51, 48), 14.33, 37.08, 0.0, 16.37, 12.52, 0, 0, 0, 2, 0, 0),)
2025-06-13 12:51:58,348 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 12:51:48
2025-06-13 12:51:58,428 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 12:51:58,433 [DEBUG][       Thread-255474][   transport.py][1871] : starting thread (client mode): 0x84204790
2025-06-13 12:51:58,433 [DEBUG][       Thread-255474][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 12:51:58,454 [DEBUG][       Thread-255474][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 12:51:58,454 [ INFO][       Thread-255474][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 12:51:58,458 [DEBUG][       Thread-255474][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 12:51:58,458 [DEBUG][       Thread-255474][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 12:51:58,458 [DEBUG][       Thread-255474][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 12:51:58,458 [DEBUG][       Thread-255474][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:51:58,458 [DEBUG][       Thread-255474][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:51:58,458 [DEBUG][       Thread-255474][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:51:58,458 [DEBUG][       Thread-255474][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:51:58,458 [DEBUG][       Thread-255474][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 12:51:58,458 [DEBUG][       Thread-255474][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 12:51:58,458 [DEBUG][       Thread-255474][   transport.py][1871] : client lang: <none>
2025-06-13 12:51:58,458 [DEBUG][       Thread-255474][   transport.py][1871] : server lang: <none>
2025-06-13 12:51:58,458 [DEBUG][       Thread-255474][   transport.py][1871] : kex follows: False
2025-06-13 12:51:58,458 [DEBUG][       Thread-255474][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 12:51:58,458 [DEBUG][       Thread-255474][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 12:51:58,459 [DEBUG][       Thread-255474][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 12:51:58,459 [DEBUG][       Thread-255474][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 12:51:58,459 [DEBUG][       Thread-255474][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 12:51:58,459 [DEBUG][       Thread-255474][   transport.py][1871] : Compression: none
2025-06-13 12:51:58,459 [DEBUG][       Thread-255474][   transport.py][1871] : === End of kex handshake ===
2025-06-13 12:51:58,475 [DEBUG][       Thread-255474][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 12:51:58,475 [DEBUG][       Thread-255474][   transport.py][1871] : Switch to new keys ...
2025-06-13 12:51:58,476 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 12:51:58,476 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 12:51:58,476 [DEBUG][       Thread-255474][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 12:51:58,477 [DEBUG][       Thread-255474][   transport.py][1871] : userauth is OK
2025-06-13 12:51:58,490 [ INFO][       Thread-255474][   transport.py][1871] : Authentication (password) successful!
2025-06-13 12:51:58,491 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 12:51:59,074 [DEBUG][       Thread-255474][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 12:51:59,074 [DEBUG][       Thread-255474][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 12:51:59,117 [DEBUG][       Thread-255474][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 12:51:59,117 [DEBUG][       Thread-255474][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 12:51:59,121 [DEBUG][       Thread-255474][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 12:51:59,132 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 12:51:59,133 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 12:51:59,135 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 12:51:59,138 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 12:51:59,145 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 12:51:59,147 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 12:51:59,147 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 12:51:59,148 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 12:51:59,148 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.452368 -999.00  +12.40  16.68     41   -0.10 1 1 1 1 1   888    0 14.03 61.73 ----- 21.5 16.7 28.8 24.0 17.1 -29.7 15.8 -30.6 15.7 -28.6 17.0 -27.0
2025-06-13 12:51:59,148 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 12:51:59,148 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 12:51:59,148 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.452368
2025-06-13 12:51:59,149 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 12:51:59,149 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 12:51:59,149 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 12:51:59,149 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 12:51:59,149 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 12:51:59,150 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T12:51:48', tmtdew=14.33, humidity=37.08, cloud=0.0, wind=16.37, temperature=12.52, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T10:51:24.595', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 12:51:59,150 [DEBUG][       Thread-255474][   transport.py][1871] : EOF in transport thread
2025-06-13 12:51:59,236 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 12:51:59,248 [DEBUG][       Thread-255477][   transport.py][1871] : starting thread (client mode): 0x863ef0d0
2025-06-13 12:51:59,248 [DEBUG][       Thread-255477][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 12:51:59,266 [DEBUG][       Thread-255477][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 12:51:59,266 [ INFO][       Thread-255477][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 12:51:59,274 [DEBUG][       Thread-255477][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 12:51:59,274 [DEBUG][       Thread-255477][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 12:51:59,274 [DEBUG][       Thread-255477][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 12:51:59,274 [DEBUG][       Thread-255477][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:51:59,274 [DEBUG][       Thread-255477][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:51:59,274 [DEBUG][       Thread-255477][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:51:59,274 [DEBUG][       Thread-255477][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:51:59,274 [DEBUG][       Thread-255477][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 12:51:59,274 [DEBUG][       Thread-255477][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 12:51:59,274 [DEBUG][       Thread-255477][   transport.py][1871] : client lang: <none>
2025-06-13 12:51:59,274 [DEBUG][       Thread-255477][   transport.py][1871] : server lang: <none>
2025-06-13 12:51:59,274 [DEBUG][       Thread-255477][   transport.py][1871] : kex follows: False
2025-06-13 12:51:59,274 [DEBUG][       Thread-255477][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 12:51:59,274 [DEBUG][       Thread-255477][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 12:51:59,274 [DEBUG][       Thread-255477][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 12:51:59,275 [DEBUG][       Thread-255477][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 12:51:59,275 [DEBUG][       Thread-255477][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 12:51:59,275 [DEBUG][       Thread-255477][   transport.py][1871] : Compression: none
2025-06-13 12:51:59,275 [DEBUG][       Thread-255477][   transport.py][1871] : === End of kex handshake ===
2025-06-13 12:51:59,335 [DEBUG][       Thread-255477][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 12:51:59,336 [DEBUG][       Thread-255477][   transport.py][1871] : Switch to new keys ...
2025-06-13 12:51:59,336 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 12:51:59,337 [DEBUG][       Thread-255477][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 12:51:59,337 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 12:51:59,393 [DEBUG][       Thread-255477][   transport.py][1871] : userauth is OK
2025-06-13 12:51:59,393 [DEBUG][       Thread-255477][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 12:51:59,393 [DEBUG][       Thread-255477][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 12:51:59,393 [DEBUG][       Thread-255477][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 12:51:59,394 [DEBUG][       Thread-255477][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 12:51:59,416 [ INFO][       Thread-255477][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 12:51:59,416 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 12:51:59,417 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 12:51:59,840 [DEBUG][Thread-255479 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:52:00,500 [DEBUG][       Thread-255477][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 12:52:00,500 [DEBUG][       Thread-255477][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 12:52:00,548 [DEBUG][       Thread-255477][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 12:52:00,548 [DEBUG][       Thread-255477][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 12:52:00,558 [DEBUG][       Thread-255477][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 12:52:00,567 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 12:52:00,567 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 12:52:00,576 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 12:52:00,585 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 12:52:00,586 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 12:52:00,586 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 12:52:00,594 [DEBUG][       Thread-255477][   transport.py][1871] : EOF in transport thread
2025-06-13 12:52:08,877 [DEBUG][Thread-255480 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:52:10,596 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 12:52:10,596 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 12:52:10,596 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 12:52:10,597 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 12:52:11,073 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 12, 51, 48), 14.33, 37.08, 0.0, 16.37, 12.52, 0, 0, 0, 2, 0, 0),)
2025-06-13 12:52:11,073 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 12:51:48
2025-06-13 12:52:11,156 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 12:52:11,163 [DEBUG][       Thread-255481][   transport.py][1871] : starting thread (client mode): 0x86352e60
2025-06-13 12:52:11,163 [DEBUG][       Thread-255481][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 12:52:11,184 [DEBUG][       Thread-255481][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 12:52:11,184 [ INFO][       Thread-255481][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 12:52:11,187 [DEBUG][       Thread-255481][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 12:52:11,187 [DEBUG][       Thread-255481][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 12:52:11,187 [DEBUG][       Thread-255481][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 12:52:11,187 [DEBUG][       Thread-255481][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:52:11,187 [DEBUG][       Thread-255481][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:52:11,187 [DEBUG][       Thread-255481][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:52:11,187 [DEBUG][       Thread-255481][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:52:11,187 [DEBUG][       Thread-255481][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 12:52:11,187 [DEBUG][       Thread-255481][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 12:52:11,187 [DEBUG][       Thread-255481][   transport.py][1871] : client lang: <none>
2025-06-13 12:52:11,187 [DEBUG][       Thread-255481][   transport.py][1871] : server lang: <none>
2025-06-13 12:52:11,187 [DEBUG][       Thread-255481][   transport.py][1871] : kex follows: False
2025-06-13 12:52:11,187 [DEBUG][       Thread-255481][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 12:52:11,187 [DEBUG][       Thread-255481][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 12:52:11,187 [DEBUG][       Thread-255481][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 12:52:11,187 [DEBUG][       Thread-255481][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 12:52:11,187 [DEBUG][       Thread-255481][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 12:52:11,187 [DEBUG][       Thread-255481][   transport.py][1871] : Compression: none
2025-06-13 12:52:11,187 [DEBUG][       Thread-255481][   transport.py][1871] : === End of kex handshake ===
2025-06-13 12:52:11,203 [DEBUG][       Thread-255481][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 12:52:11,203 [DEBUG][       Thread-255481][   transport.py][1871] : Switch to new keys ...
2025-06-13 12:52:11,203 [DEBUG][       Thread-255481][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 12:52:11,203 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 12:52:11,203 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 12:52:11,203 [DEBUG][       Thread-255481][   transport.py][1871] : userauth is OK
2025-06-13 12:52:11,216 [ INFO][       Thread-255481][   transport.py][1871] : Authentication (password) successful!
2025-06-13 12:52:11,216 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 12:52:11,818 [DEBUG][       Thread-255481][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 12:52:11,818 [DEBUG][       Thread-255481][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 12:52:11,860 [DEBUG][       Thread-255481][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 12:52:11,860 [DEBUG][       Thread-255481][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 12:52:11,863 [DEBUG][       Thread-255481][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 12:52:11,874 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 12:52:11,874 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 12:52:11,875 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 12:52:11,876 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 12:52:11,879 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 12:52:11,880 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 12:52:11,880 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 12:52:11,881 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 12:52:11,881 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.452368 -999.00  +12.40  16.68     41   -0.10 1 1 1 1 1   888    0 14.03 61.73 ----- 21.5 16.7 28.8 24.0 17.1 -29.7 15.8 -30.6 15.7 -28.6 17.0 -27.0
2025-06-13 12:52:11,881 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 12:52:11,881 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 12:52:11,881 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.452368
2025-06-13 12:52:11,881 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 12:52:11,881 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 12:52:11,881 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 12:52:11,881 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 12:52:11,881 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 12:52:11,881 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T12:51:48', tmtdew=14.33, humidity=37.08, cloud=0.0, wind=16.37, temperature=12.52, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T10:51:24.595', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 12:52:11,882 [DEBUG][       Thread-255481][   transport.py][1871] : EOF in transport thread
2025-06-13 12:52:11,953 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 12:52:11,965 [DEBUG][       Thread-255484][   transport.py][1871] : starting thread (client mode): 0x867b6c80
2025-06-13 12:52:11,965 [DEBUG][       Thread-255484][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 12:52:11,980 [DEBUG][       Thread-255484][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 12:52:11,981 [ INFO][       Thread-255484][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 12:52:11,988 [DEBUG][       Thread-255484][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 12:52:11,988 [DEBUG][       Thread-255484][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 12:52:11,988 [DEBUG][       Thread-255484][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 12:52:11,988 [DEBUG][       Thread-255484][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:52:11,988 [DEBUG][       Thread-255484][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:52:11,988 [DEBUG][       Thread-255484][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:52:11,988 [DEBUG][       Thread-255484][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:52:11,988 [DEBUG][       Thread-255484][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 12:52:11,988 [DEBUG][       Thread-255484][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 12:52:11,988 [DEBUG][       Thread-255484][   transport.py][1871] : client lang: <none>
2025-06-13 12:52:11,988 [DEBUG][       Thread-255484][   transport.py][1871] : server lang: <none>
2025-06-13 12:52:11,988 [DEBUG][       Thread-255484][   transport.py][1871] : kex follows: False
2025-06-13 12:52:11,988 [DEBUG][       Thread-255484][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 12:52:11,988 [DEBUG][       Thread-255484][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 12:52:11,988 [DEBUG][       Thread-255484][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 12:52:11,988 [DEBUG][       Thread-255484][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 12:52:11,988 [DEBUG][       Thread-255484][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 12:52:11,988 [DEBUG][       Thread-255484][   transport.py][1871] : Compression: none
2025-06-13 12:52:11,988 [DEBUG][       Thread-255484][   transport.py][1871] : === End of kex handshake ===
2025-06-13 12:52:12,043 [DEBUG][       Thread-255484][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 12:52:12,043 [DEBUG][       Thread-255484][   transport.py][1871] : Switch to new keys ...
2025-06-13 12:52:12,043 [DEBUG][       Thread-255484][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 12:52:12,043 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 12:52:12,043 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 12:52:12,105 [DEBUG][       Thread-255484][   transport.py][1871] : userauth is OK
2025-06-13 12:52:12,105 [DEBUG][       Thread-255484][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 12:52:12,105 [DEBUG][       Thread-255484][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 12:52:12,105 [DEBUG][       Thread-255484][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 12:52:12,105 [DEBUG][       Thread-255484][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 12:52:12,119 [ INFO][       Thread-255484][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 12:52:12,119 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 12:52:12,119 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 12:52:13,182 [DEBUG][       Thread-255484][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 12:52:13,182 [DEBUG][       Thread-255484][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 12:52:13,231 [DEBUG][       Thread-255484][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 12:52:13,231 [DEBUG][       Thread-255484][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 12:52:13,240 [DEBUG][       Thread-255484][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 12:52:13,248 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 12:52:13,248 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 12:52:13,256 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 12:52:13,264 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 12:52:13,264 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 12:52:13,264 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 12:52:13,271 [DEBUG][       Thread-255484][   transport.py][1871] : EOF in transport thread
2025-06-13 12:52:13,368 [DEBUG][Thread-255486 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:52:17,898 [DEBUG][Thread-255487 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:52:23,274 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 12:52:23,274 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 12:52:23,274 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 12:52:23,277 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 12:52:23,731 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 12, 52, 20), 14.48, 36.72, 0.0, 15.0, 12.6, 0, 0, 0, 2, 0, 0),)
2025-06-13 12:52:23,731 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 12:52:20
2025-06-13 12:52:23,811 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 12:52:23,815 [DEBUG][       Thread-255488][   transport.py][1871] : starting thread (client mode): 0x84205000
2025-06-13 12:52:23,815 [DEBUG][       Thread-255488][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 12:52:23,836 [DEBUG][       Thread-255488][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 12:52:23,836 [ INFO][       Thread-255488][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 12:52:23,839 [DEBUG][       Thread-255488][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 12:52:23,840 [DEBUG][       Thread-255488][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 12:52:23,840 [DEBUG][       Thread-255488][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 12:52:23,840 [DEBUG][       Thread-255488][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:52:23,840 [DEBUG][       Thread-255488][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:52:23,840 [DEBUG][       Thread-255488][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:52:23,840 [DEBUG][       Thread-255488][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:52:23,840 [DEBUG][       Thread-255488][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 12:52:23,840 [DEBUG][       Thread-255488][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 12:52:23,840 [DEBUG][       Thread-255488][   transport.py][1871] : client lang: <none>
2025-06-13 12:52:23,840 [DEBUG][       Thread-255488][   transport.py][1871] : server lang: <none>
2025-06-13 12:52:23,840 [DEBUG][       Thread-255488][   transport.py][1871] : kex follows: False
2025-06-13 12:52:23,840 [DEBUG][       Thread-255488][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 12:52:23,840 [DEBUG][       Thread-255488][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 12:52:23,840 [DEBUG][       Thread-255488][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 12:52:23,840 [DEBUG][       Thread-255488][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 12:52:23,840 [DEBUG][       Thread-255488][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 12:52:23,840 [DEBUG][       Thread-255488][   transport.py][1871] : Compression: none
2025-06-13 12:52:23,840 [DEBUG][       Thread-255488][   transport.py][1871] : === End of kex handshake ===
2025-06-13 12:52:23,857 [DEBUG][       Thread-255488][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 12:52:23,857 [DEBUG][       Thread-255488][   transport.py][1871] : Switch to new keys ...
2025-06-13 12:52:23,858 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 12:52:23,858 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 12:52:23,858 [DEBUG][       Thread-255488][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 12:52:23,859 [DEBUG][       Thread-255488][   transport.py][1871] : userauth is OK
2025-06-13 12:52:23,872 [ INFO][       Thread-255488][   transport.py][1871] : Authentication (password) successful!
2025-06-13 12:52:23,873 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 12:52:24,530 [DEBUG][       Thread-255488][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 12:52:24,530 [DEBUG][       Thread-255488][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 12:52:24,573 [DEBUG][       Thread-255488][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 12:52:24,573 [DEBUG][       Thread-255488][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 12:52:24,576 [DEBUG][       Thread-255488][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 12:52:24,588 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 12:52:24,588 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 12:52:24,590 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 12:52:24,592 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 12:52:24,598 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 12:52:24,601 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 12:52:24,601 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 12:52:24,601 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 12:52:24,602 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.452715 -999.00  +12.40  21.08     40   -0.40 1 1 1 1 1   888    0 14.13 61.05 ----- 22.0 21.1 41.8 24.3 17.1 -29.3 15.8 -31.7 15.7 -29.7 17.0 -27.2
2025-06-13 12:52:24,602 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 12:52:24,602 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 12:52:24,602 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.452715
2025-06-13 12:52:24,602 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 12:52:24,603 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 12:52:24,603 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 12:52:24,603 [DEBUG][       Thread-255488][   transport.py][1871] : EOF in transport thread
2025-06-13 12:52:24,603 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 12:52:24,603 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 12:52:24,604 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T12:52:20', tmtdew=14.48, humidity=36.72, cloud=0.0, wind=15.0, temperature=12.6, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T10:51:54.576', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 12:52:24,687 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 12:52:24,697 [DEBUG][       Thread-255491][   transport.py][1871] : starting thread (client mode): 0x863a59c0
2025-06-13 12:52:24,697 [DEBUG][       Thread-255491][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 12:52:24,717 [DEBUG][       Thread-255491][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 12:52:24,717 [ INFO][       Thread-255491][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 12:52:24,724 [DEBUG][       Thread-255491][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 12:52:24,725 [DEBUG][       Thread-255491][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 12:52:24,725 [DEBUG][       Thread-255491][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 12:52:24,725 [DEBUG][       Thread-255491][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:52:24,725 [DEBUG][       Thread-255491][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:52:24,725 [DEBUG][       Thread-255491][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:52:24,725 [DEBUG][       Thread-255491][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:52:24,725 [DEBUG][       Thread-255491][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 12:52:24,725 [DEBUG][       Thread-255491][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 12:52:24,725 [DEBUG][       Thread-255491][   transport.py][1871] : client lang: <none>
2025-06-13 12:52:24,725 [DEBUG][       Thread-255491][   transport.py][1871] : server lang: <none>
2025-06-13 12:52:24,725 [DEBUG][       Thread-255491][   transport.py][1871] : kex follows: False
2025-06-13 12:52:24,725 [DEBUG][       Thread-255491][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 12:52:24,725 [DEBUG][       Thread-255491][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 12:52:24,725 [DEBUG][       Thread-255491][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 12:52:24,725 [DEBUG][       Thread-255491][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 12:52:24,725 [DEBUG][       Thread-255491][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 12:52:24,725 [DEBUG][       Thread-255491][   transport.py][1871] : Compression: none
2025-06-13 12:52:24,726 [DEBUG][       Thread-255491][   transport.py][1871] : === End of kex handshake ===
2025-06-13 12:52:24,781 [DEBUG][       Thread-255491][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 12:52:24,782 [DEBUG][       Thread-255491][   transport.py][1871] : Switch to new keys ...
2025-06-13 12:52:24,782 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 12:52:24,783 [DEBUG][       Thread-255491][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 12:52:24,784 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 12:52:24,844 [DEBUG][       Thread-255491][   transport.py][1871] : userauth is OK
2025-06-13 12:52:24,844 [DEBUG][       Thread-255491][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 12:52:24,844 [DEBUG][       Thread-255491][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 12:52:24,845 [DEBUG][       Thread-255491][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 12:52:24,845 [DEBUG][       Thread-255491][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 12:52:24,863 [ INFO][       Thread-255491][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 12:52:24,864 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 12:52:24,864 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 12:52:25,950 [DEBUG][       Thread-255491][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 12:52:25,950 [DEBUG][       Thread-255491][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 12:52:26,000 [DEBUG][       Thread-255491][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 12:52:26,000 [DEBUG][       Thread-255491][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 12:52:26,010 [DEBUG][       Thread-255491][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 12:52:26,019 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 12:52:26,019 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 12:52:26,033 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 12:52:26,043 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 12:52:26,043 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 12:52:26,043 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 12:52:26,051 [DEBUG][       Thread-255491][   transport.py][1871] : EOF in transport thread
2025-06-13 12:52:26,919 [DEBUG][Thread-255493 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:52:35,955 [DEBUG][Thread-255494 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:52:36,054 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 12:52:36,054 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 12:52:36,054 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 12:52:36,057 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 12:52:36,522 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 12, 52, 20), 14.48, 36.72, 0.0, 15.0, 12.6, 0, 0, 0, 2, 0, 0),)
2025-06-13 12:52:36,523 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 12:52:20
2025-06-13 12:52:36,603 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 12:52:36,608 [DEBUG][       Thread-255495][   transport.py][1871] : starting thread (client mode): 0x84204880
2025-06-13 12:52:36,609 [DEBUG][       Thread-255495][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 12:52:36,629 [DEBUG][       Thread-255495][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 12:52:36,629 [ INFO][       Thread-255495][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 12:52:36,631 [DEBUG][       Thread-255495][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 12:52:36,631 [DEBUG][       Thread-255495][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 12:52:36,631 [DEBUG][       Thread-255495][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 12:52:36,631 [DEBUG][       Thread-255495][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:52:36,631 [DEBUG][       Thread-255495][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:52:36,631 [DEBUG][       Thread-255495][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:52:36,631 [DEBUG][       Thread-255495][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:52:36,631 [DEBUG][       Thread-255495][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 12:52:36,631 [DEBUG][       Thread-255495][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 12:52:36,631 [DEBUG][       Thread-255495][   transport.py][1871] : client lang: <none>
2025-06-13 12:52:36,631 [DEBUG][       Thread-255495][   transport.py][1871] : server lang: <none>
2025-06-13 12:52:36,631 [DEBUG][       Thread-255495][   transport.py][1871] : kex follows: False
2025-06-13 12:52:36,631 [DEBUG][       Thread-255495][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 12:52:36,631 [DEBUG][       Thread-255495][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 12:52:36,631 [DEBUG][       Thread-255495][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 12:52:36,631 [DEBUG][       Thread-255495][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 12:52:36,631 [DEBUG][       Thread-255495][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 12:52:36,631 [DEBUG][       Thread-255495][   transport.py][1871] : Compression: none
2025-06-13 12:52:36,631 [DEBUG][       Thread-255495][   transport.py][1871] : === End of kex handshake ===
2025-06-13 12:52:36,640 [DEBUG][       Thread-255495][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 12:52:36,640 [DEBUG][       Thread-255495][   transport.py][1871] : Switch to new keys ...
2025-06-13 12:52:36,641 [DEBUG][       Thread-255495][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 12:52:36,641 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 12:52:36,641 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 12:52:36,643 [DEBUG][       Thread-255495][   transport.py][1871] : userauth is OK
2025-06-13 12:52:36,667 [ INFO][       Thread-255495][   transport.py][1871] : Authentication (password) successful!
2025-06-13 12:52:36,668 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 12:52:37,278 [DEBUG][       Thread-255495][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 12:52:37,278 [DEBUG][       Thread-255495][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 12:52:37,321 [DEBUG][       Thread-255495][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 12:52:37,321 [DEBUG][       Thread-255495][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 12:52:37,325 [DEBUG][       Thread-255495][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 12:52:37,332 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 12:52:37,333 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 12:52:37,335 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 12:52:37,337 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 12:52:37,342 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 12:52:37,344 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 12:52:37,345 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 12:52:37,345 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 12:52:37,345 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.452715 -999.00  +12.40  21.08     40   -0.40 1 1 1 1 1   888    0 14.13 61.05 ----- 22.0 21.1 41.8 24.3 17.1 -29.3 15.8 -31.7 15.7 -29.7 17.0 -27.2
2025-06-13 12:52:37,345 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 12:52:37,346 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 12:52:37,346 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.452715
2025-06-13 12:52:37,346 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 12:52:37,347 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 12:52:37,347 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 12:52:37,347 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 12:52:37,347 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 12:52:37,347 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T12:52:20', tmtdew=14.48, humidity=36.72, cloud=0.0, wind=15.0, temperature=12.6, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T10:51:54.576', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 12:52:37,348 [DEBUG][       Thread-255495][   transport.py][1871] : EOF in transport thread
2025-06-13 12:52:37,434 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 12:52:37,445 [DEBUG][       Thread-255498][   transport.py][1871] : starting thread (client mode): 0x86893fd0
2025-06-13 12:52:37,445 [DEBUG][       Thread-255498][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 12:52:37,465 [DEBUG][       Thread-255498][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 12:52:37,465 [ INFO][       Thread-255498][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 12:52:37,472 [DEBUG][       Thread-255498][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 12:52:37,472 [DEBUG][       Thread-255498][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 12:52:37,472 [DEBUG][       Thread-255498][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 12:52:37,473 [DEBUG][       Thread-255498][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:52:37,473 [DEBUG][       Thread-255498][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:52:37,473 [DEBUG][       Thread-255498][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:52:37,473 [DEBUG][       Thread-255498][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:52:37,473 [DEBUG][       Thread-255498][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 12:52:37,473 [DEBUG][       Thread-255498][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 12:52:37,473 [DEBUG][       Thread-255498][   transport.py][1871] : client lang: <none>
2025-06-13 12:52:37,473 [DEBUG][       Thread-255498][   transport.py][1871] : server lang: <none>
2025-06-13 12:52:37,473 [DEBUG][       Thread-255498][   transport.py][1871] : kex follows: False
2025-06-13 12:52:37,473 [DEBUG][       Thread-255498][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 12:52:37,473 [DEBUG][       Thread-255498][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 12:52:37,473 [DEBUG][       Thread-255498][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 12:52:37,473 [DEBUG][       Thread-255498][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 12:52:37,473 [DEBUG][       Thread-255498][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 12:52:37,473 [DEBUG][       Thread-255498][   transport.py][1871] : Compression: none
2025-06-13 12:52:37,473 [DEBUG][       Thread-255498][   transport.py][1871] : === End of kex handshake ===
2025-06-13 12:52:37,529 [DEBUG][       Thread-255498][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 12:52:37,530 [DEBUG][       Thread-255498][   transport.py][1871] : Switch to new keys ...
2025-06-13 12:52:37,530 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 12:52:37,531 [DEBUG][       Thread-255498][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 12:52:37,532 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 12:52:37,585 [DEBUG][       Thread-255498][   transport.py][1871] : userauth is OK
2025-06-13 12:52:37,585 [DEBUG][       Thread-255498][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 12:52:37,586 [DEBUG][       Thread-255498][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 12:52:37,586 [DEBUG][       Thread-255498][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 12:52:37,586 [DEBUG][       Thread-255498][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 12:52:37,605 [ INFO][       Thread-255498][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 12:52:37,606 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 12:52:37,606 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 12:52:38,712 [DEBUG][       Thread-255498][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 12:52:38,712 [DEBUG][       Thread-255498][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 12:52:38,767 [DEBUG][       Thread-255498][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 12:52:38,767 [DEBUG][       Thread-255498][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 12:52:38,776 [DEBUG][       Thread-255498][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 12:52:38,784 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 12:52:38,784 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 12:52:38,792 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 12:52:38,800 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 12:52:38,800 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 12:52:38,800 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 12:52:38,808 [DEBUG][       Thread-255498][   transport.py][1871] : EOF in transport thread
2025-06-13 12:52:44,975 [DEBUG][Thread-255500 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:52:47,232 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:52:47,233 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:52:48,810 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 12:52:48,810 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 12:52:48,810 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 12:52:48,811 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 12:52:49,296 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 12, 52, 20), 14.48, 36.72, 0.0, 15.0, 12.6, 0, 0, 0, 2, 0, 0),)
2025-06-13 12:52:49,296 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 12:52:20
2025-06-13 12:52:49,379 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 12:52:49,383 [DEBUG][       Thread-255501][   transport.py][1871] : starting thread (client mode): 0x8636b7f0
2025-06-13 12:52:49,384 [DEBUG][       Thread-255501][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 12:52:49,403 [DEBUG][       Thread-255501][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 12:52:49,403 [ INFO][       Thread-255501][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 12:52:49,407 [DEBUG][       Thread-255501][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 12:52:49,407 [DEBUG][       Thread-255501][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 12:52:49,407 [DEBUG][       Thread-255501][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 12:52:49,407 [DEBUG][       Thread-255501][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:52:49,407 [DEBUG][       Thread-255501][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:52:49,407 [DEBUG][       Thread-255501][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:52:49,407 [DEBUG][       Thread-255501][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:52:49,407 [DEBUG][       Thread-255501][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 12:52:49,407 [DEBUG][       Thread-255501][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 12:52:49,407 [DEBUG][       Thread-255501][   transport.py][1871] : client lang: <none>
2025-06-13 12:52:49,407 [DEBUG][       Thread-255501][   transport.py][1871] : server lang: <none>
2025-06-13 12:52:49,407 [DEBUG][       Thread-255501][   transport.py][1871] : kex follows: False
2025-06-13 12:52:49,407 [DEBUG][       Thread-255501][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 12:52:49,407 [DEBUG][       Thread-255501][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 12:52:49,407 [DEBUG][       Thread-255501][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 12:52:49,407 [DEBUG][       Thread-255501][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 12:52:49,407 [DEBUG][       Thread-255501][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 12:52:49,407 [DEBUG][       Thread-255501][   transport.py][1871] : Compression: none
2025-06-13 12:52:49,407 [DEBUG][       Thread-255501][   transport.py][1871] : === End of kex handshake ===
2025-06-13 12:52:49,421 [DEBUG][       Thread-255501][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 12:52:49,421 [DEBUG][       Thread-255501][   transport.py][1871] : Switch to new keys ...
2025-06-13 12:52:49,422 [DEBUG][       Thread-255501][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 12:52:49,422 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 12:52:49,422 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 12:52:49,422 [DEBUG][       Thread-255501][   transport.py][1871] : userauth is OK
2025-06-13 12:52:49,448 [ INFO][       Thread-255501][   transport.py][1871] : Authentication (password) successful!
2025-06-13 12:52:49,448 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 12:52:50,013 [DEBUG][       Thread-255501][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 12:52:50,013 [DEBUG][       Thread-255501][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 12:52:50,056 [DEBUG][       Thread-255501][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 12:52:50,056 [DEBUG][       Thread-255501][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 12:52:50,058 [DEBUG][       Thread-255501][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 12:52:50,069 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 12:52:50,069 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 12:52:50,070 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 12:52:50,071 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 12:52:50,074 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 12:52:50,077 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 12:52:50,077 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 12:52:50,077 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 12:52:50,077 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.453063 -999.00  +12.10  16.15     40   -0.90 1 1 1 1 1   888    0 14.23 60.85 ----- 16.5 16.1 52.6 24.9 17.0 -29.1 15.7 -30.8 15.5 -30.2 17.0 -27.1
2025-06-13 12:52:50,077 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 12:52:50,077 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 12:52:50,077 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.453063
2025-06-13 12:52:50,077 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 12:52:50,077 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 12:52:50,077 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 12:52:50,077 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 12:52:50,077 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 12:52:50,077 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T12:52:20', tmtdew=14.48, humidity=36.72, cloud=0.0, wind=15.0, temperature=12.6, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T10:52:24.643', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 12:52:50,078 [DEBUG][       Thread-255501][   transport.py][1871] : EOF in transport thread
2025-06-13 12:52:50,152 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 12:52:53,993 [DEBUG][Thread-255504 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:52:54,697 [DEBUG][Thread-255505 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:52:55,780 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:52:55,781 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:53:03,015 [DEBUG][Thread-255506 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:53:12,038 [DEBUG][Thread-255507 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:53:13,419 [DEBUG][Thread-255508 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:53:21,060 [DEBUG][Thread-255509 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:53:30,079 [DEBUG][Thread-255510 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:53:39,099 [DEBUG][Thread-255511 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:53:47,375 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:53:47,376 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:53:48,123 [DEBUG][Thread-255512 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:53:55,861 [DEBUG][Thread-255513 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:53:56,930 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:53:56,931 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:53:57,142 [DEBUG][Thread-255514 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:54:06,161 [DEBUG][Thread-255515 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:54:13,479 [DEBUG][Thread-255516 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:54:15,180 [DEBUG][Thread-255517 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:54:24,203 [DEBUG][Thread-255518 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:54:33,226 [DEBUG][Thread-255519 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:54:42,251 [DEBUG][Thread-255520 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:54:47,534 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:54:47,534 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:54:51,270 [DEBUG][Thread-255521 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:54:56,950 [DEBUG][Thread-255522 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:54:58,028 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:54:58,030 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:54:59,348 [WARNING][ poll_weather_worker][      driver.py][ 286] : Unable to open ssh connection for writing weather state to io.saao.ac.za: [Errno 110] Connection timed out
2025-06-13 12:55:00,288 [DEBUG][Thread-255523 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:55:09,312 [DEBUG][Thread-255524 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:55:09,358 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 12:55:09,359 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 12:55:09,359 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 12:55:09,362 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 12:55:09,852 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 12, 54, 58), 14.39, 36.76, 0.0, 13.38, 12.59, 0, 0, 0, 2, 0, 0),)
2025-06-13 12:55:09,852 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 12:54:58
2025-06-13 12:55:09,934 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 12:55:09,938 [DEBUG][       Thread-255525][   transport.py][1871] : starting thread (client mode): 0x8636a740
2025-06-13 12:55:09,939 [DEBUG][       Thread-255525][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 12:55:09,961 [DEBUG][       Thread-255525][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 12:55:09,961 [ INFO][       Thread-255525][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 12:55:09,964 [DEBUG][       Thread-255525][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 12:55:09,964 [DEBUG][       Thread-255525][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 12:55:09,965 [DEBUG][       Thread-255525][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 12:55:09,965 [DEBUG][       Thread-255525][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:55:09,965 [DEBUG][       Thread-255525][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:55:09,965 [DEBUG][       Thread-255525][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:55:09,965 [DEBUG][       Thread-255525][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:55:09,965 [DEBUG][       Thread-255525][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 12:55:09,965 [DEBUG][       Thread-255525][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 12:55:09,965 [DEBUG][       Thread-255525][   transport.py][1871] : client lang: <none>
2025-06-13 12:55:09,965 [DEBUG][       Thread-255525][   transport.py][1871] : server lang: <none>
2025-06-13 12:55:09,965 [DEBUG][       Thread-255525][   transport.py][1871] : kex follows: False
2025-06-13 12:55:09,965 [DEBUG][       Thread-255525][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 12:55:09,965 [DEBUG][       Thread-255525][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 12:55:09,965 [DEBUG][       Thread-255525][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 12:55:09,965 [DEBUG][       Thread-255525][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 12:55:09,965 [DEBUG][       Thread-255525][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 12:55:09,965 [DEBUG][       Thread-255525][   transport.py][1871] : Compression: none
2025-06-13 12:55:09,965 [DEBUG][       Thread-255525][   transport.py][1871] : === End of kex handshake ===
2025-06-13 12:55:09,982 [DEBUG][       Thread-255525][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 12:55:09,983 [DEBUG][       Thread-255525][   transport.py][1871] : Switch to new keys ...
2025-06-13 12:55:09,984 [DEBUG][       Thread-255525][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 12:55:09,984 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 12:55:09,984 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 12:55:09,985 [DEBUG][       Thread-255525][   transport.py][1871] : userauth is OK
2025-06-13 12:55:10,010 [ INFO][       Thread-255525][   transport.py][1871] : Authentication (password) successful!
2025-06-13 12:55:10,010 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 12:55:11,646 [DEBUG][       Thread-255525][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 12:55:11,646 [DEBUG][       Thread-255525][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 12:55:11,689 [DEBUG][       Thread-255525][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 12:55:11,689 [DEBUG][       Thread-255525][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 12:55:11,692 [DEBUG][       Thread-255525][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 12:55:11,704 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 12:55:11,705 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 12:55:11,707 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 12:55:11,709 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 12:55:11,717 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 12:55:11,718 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 12:55:11,719 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 12:55:11,719 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 12:55:11,720 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.454451 -999.00  +12.40  12.87     43   +0.30 1 1 1 1 1   888    0 14.07 50.76 ----- 14.1 12.9 43.5 17.0 17.1 -28.2 15.8 -29.5 15.6 -28.3 17.0 -27.5
2025-06-13 12:55:11,720 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 12:55:11,720 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 12:55:11,720 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.454451
2025-06-13 12:55:11,720 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 12:55:11,721 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 12:55:11,721 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 12:55:11,721 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 12:55:11,721 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 12:55:11,721 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T12:54:58', tmtdew=14.39, humidity=36.76, cloud=0.0, wind=13.38, temperature=12.59, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T10:54:24.566', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 12:55:11,721 [DEBUG][       Thread-255525][   transport.py][1871] : EOF in transport thread
2025-06-13 12:55:11,806 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 12:55:11,819 [DEBUG][       Thread-255528][   transport.py][1871] : starting thread (client mode): 0x863ef0d0
2025-06-13 12:55:11,819 [DEBUG][       Thread-255528][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 12:55:11,833 [DEBUG][       Thread-255528][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 12:55:11,834 [ INFO][       Thread-255528][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 12:55:11,841 [DEBUG][       Thread-255528][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 12:55:11,841 [DEBUG][       Thread-255528][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 12:55:11,841 [DEBUG][       Thread-255528][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 12:55:11,841 [DEBUG][       Thread-255528][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:55:11,841 [DEBUG][       Thread-255528][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:55:11,841 [DEBUG][       Thread-255528][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:55:11,841 [DEBUG][       Thread-255528][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:55:11,841 [DEBUG][       Thread-255528][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 12:55:11,842 [DEBUG][       Thread-255528][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 12:55:11,842 [DEBUG][       Thread-255528][   transport.py][1871] : client lang: <none>
2025-06-13 12:55:11,842 [DEBUG][       Thread-255528][   transport.py][1871] : server lang: <none>
2025-06-13 12:55:11,842 [DEBUG][       Thread-255528][   transport.py][1871] : kex follows: False
2025-06-13 12:55:11,842 [DEBUG][       Thread-255528][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 12:55:11,842 [DEBUG][       Thread-255528][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 12:55:11,842 [DEBUG][       Thread-255528][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 12:55:11,842 [DEBUG][       Thread-255528][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 12:55:11,842 [DEBUG][       Thread-255528][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 12:55:11,842 [DEBUG][       Thread-255528][   transport.py][1871] : Compression: none
2025-06-13 12:55:11,842 [DEBUG][       Thread-255528][   transport.py][1871] : === End of kex handshake ===
2025-06-13 12:55:11,897 [DEBUG][       Thread-255528][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 12:55:11,898 [DEBUG][       Thread-255528][   transport.py][1871] : Switch to new keys ...
2025-06-13 12:55:11,898 [DEBUG][       Thread-255528][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 12:55:11,899 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 12:55:11,899 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 12:55:11,954 [DEBUG][       Thread-255528][   transport.py][1871] : userauth is OK
2025-06-13 12:55:11,954 [DEBUG][       Thread-255528][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 12:55:11,954 [DEBUG][       Thread-255528][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 12:55:11,954 [DEBUG][       Thread-255528][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 12:55:11,954 [DEBUG][       Thread-255528][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 12:55:11,973 [ INFO][       Thread-255528][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 12:55:11,974 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 12:55:11,974 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 12:55:12,988 [DEBUG][       Thread-255528][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 12:55:12,989 [DEBUG][       Thread-255528][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 12:55:13,042 [DEBUG][       Thread-255528][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 12:55:13,042 [DEBUG][       Thread-255528][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 12:55:13,054 [DEBUG][       Thread-255528][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 12:55:13,066 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 12:55:13,066 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 12:55:13,077 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 12:55:13,087 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 12:55:13,087 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 12:55:13,088 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 12:55:13,097 [DEBUG][       Thread-255528][   transport.py][1871] : EOF in transport thread
2025-06-13 12:55:13,534 [DEBUG][Thread-255530 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:55:18,335 [DEBUG][Thread-255531 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:55:23,096 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 12:55:23,096 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 12:55:23,096 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 12:55:23,096 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 12:55:23,615 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 12, 54, 58), 14.39, 36.76, 0.0, 13.38, 12.59, 0, 0, 0, 2, 0, 0),)
2025-06-13 12:55:23,615 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 12:54:58
2025-06-13 12:55:23,702 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 12:55:23,707 [DEBUG][       Thread-255532][   transport.py][1871] : starting thread (client mode): 0x84207d60
2025-06-13 12:55:23,707 [DEBUG][       Thread-255532][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 12:55:23,727 [DEBUG][       Thread-255532][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 12:55:23,727 [ INFO][       Thread-255532][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 12:55:23,730 [DEBUG][       Thread-255532][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 12:55:23,731 [DEBUG][       Thread-255532][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 12:55:23,731 [DEBUG][       Thread-255532][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 12:55:23,731 [DEBUG][       Thread-255532][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:55:23,731 [DEBUG][       Thread-255532][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:55:23,731 [DEBUG][       Thread-255532][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:55:23,731 [DEBUG][       Thread-255532][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:55:23,731 [DEBUG][       Thread-255532][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 12:55:23,731 [DEBUG][       Thread-255532][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 12:55:23,731 [DEBUG][       Thread-255532][   transport.py][1871] : client lang: <none>
2025-06-13 12:55:23,731 [DEBUG][       Thread-255532][   transport.py][1871] : server lang: <none>
2025-06-13 12:55:23,731 [DEBUG][       Thread-255532][   transport.py][1871] : kex follows: False
2025-06-13 12:55:23,731 [DEBUG][       Thread-255532][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 12:55:23,731 [DEBUG][       Thread-255532][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 12:55:23,731 [DEBUG][       Thread-255532][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 12:55:23,731 [DEBUG][       Thread-255532][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 12:55:23,731 [DEBUG][       Thread-255532][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 12:55:23,731 [DEBUG][       Thread-255532][   transport.py][1871] : Compression: none
2025-06-13 12:55:23,731 [DEBUG][       Thread-255532][   transport.py][1871] : === End of kex handshake ===
2025-06-13 12:55:23,745 [DEBUG][       Thread-255532][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 12:55:23,745 [DEBUG][       Thread-255532][   transport.py][1871] : Switch to new keys ...
2025-06-13 12:55:23,745 [DEBUG][       Thread-255532][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 12:55:23,745 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 12:55:23,745 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 12:55:23,746 [DEBUG][       Thread-255532][   transport.py][1871] : userauth is OK
2025-06-13 12:55:23,793 [ INFO][       Thread-255532][   transport.py][1871] : Authentication (password) successful!
2025-06-13 12:55:23,793 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 12:55:24,409 [DEBUG][       Thread-255532][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 12:55:24,410 [DEBUG][       Thread-255532][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 12:55:24,452 [DEBUG][       Thread-255532][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 12:55:24,452 [DEBUG][       Thread-255532][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 12:55:24,455 [DEBUG][       Thread-255532][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 12:55:24,466 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 12:55:24,466 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 12:55:24,467 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 12:55:24,468 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 12:55:24,471 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 12:55:24,472 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 12:55:24,472 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 12:55:24,472 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 12:55:24,472 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.454451 -999.00  +12.40  12.87     43   +0.30 1 1 1 1 1   888    0 14.07 50.76 ----- 14.1 12.9 43.5 17.0 17.1 -28.2 15.8 -29.5 15.6 -28.3 17.0 -27.5
2025-06-13 12:55:24,472 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 12:55:24,472 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 12:55:24,472 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.454451
2025-06-13 12:55:24,472 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 12:55:24,472 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 12:55:24,472 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 12:55:24,472 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 12:55:24,472 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 12:55:24,472 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T12:54:58', tmtdew=14.39, humidity=36.76, cloud=0.0, wind=13.38, temperature=12.59, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T10:54:24.566', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 12:55:24,473 [DEBUG][       Thread-255532][   transport.py][1871] : EOF in transport thread
2025-06-13 12:55:24,545 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 12:55:24,560 [DEBUG][       Thread-255535][   transport.py][1871] : starting thread (client mode): 0x86893fd0
2025-06-13 12:55:24,560 [DEBUG][       Thread-255535][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 12:55:24,576 [DEBUG][       Thread-255535][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 12:55:24,576 [ INFO][       Thread-255535][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 12:55:24,583 [DEBUG][       Thread-255535][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 12:55:24,583 [DEBUG][       Thread-255535][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 12:55:24,583 [DEBUG][       Thread-255535][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 12:55:24,583 [DEBUG][       Thread-255535][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:55:24,583 [DEBUG][       Thread-255535][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:55:24,583 [DEBUG][       Thread-255535][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:55:24,583 [DEBUG][       Thread-255535][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:55:24,583 [DEBUG][       Thread-255535][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 12:55:24,583 [DEBUG][       Thread-255535][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 12:55:24,583 [DEBUG][       Thread-255535][   transport.py][1871] : client lang: <none>
2025-06-13 12:55:24,583 [DEBUG][       Thread-255535][   transport.py][1871] : server lang: <none>
2025-06-13 12:55:24,583 [DEBUG][       Thread-255535][   transport.py][1871] : kex follows: False
2025-06-13 12:55:24,583 [DEBUG][       Thread-255535][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 12:55:24,583 [DEBUG][       Thread-255535][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 12:55:24,583 [DEBUG][       Thread-255535][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 12:55:24,584 [DEBUG][       Thread-255535][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 12:55:24,584 [DEBUG][       Thread-255535][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 12:55:24,584 [DEBUG][       Thread-255535][   transport.py][1871] : Compression: none
2025-06-13 12:55:24,584 [DEBUG][       Thread-255535][   transport.py][1871] : === End of kex handshake ===
2025-06-13 12:55:24,640 [DEBUG][       Thread-255535][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 12:55:24,640 [DEBUG][       Thread-255535][   transport.py][1871] : Switch to new keys ...
2025-06-13 12:55:24,640 [DEBUG][       Thread-255535][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 12:55:24,640 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 12:55:24,640 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 12:55:24,697 [DEBUG][       Thread-255535][   transport.py][1871] : userauth is OK
2025-06-13 12:55:24,697 [DEBUG][       Thread-255535][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 12:55:24,697 [DEBUG][       Thread-255535][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 12:55:24,697 [DEBUG][       Thread-255535][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 12:55:24,697 [DEBUG][       Thread-255535][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 12:55:24,711 [ INFO][       Thread-255535][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 12:55:24,711 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 12:55:24,712 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 12:55:25,768 [DEBUG][       Thread-255535][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 12:55:25,768 [DEBUG][       Thread-255535][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 12:55:25,823 [DEBUG][       Thread-255535][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 12:55:25,823 [DEBUG][       Thread-255535][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 12:55:25,831 [DEBUG][       Thread-255535][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 12:55:25,839 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 12:55:25,839 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 12:55:25,847 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 12:55:25,855 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 12:55:25,855 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 12:55:25,855 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 12:55:25,863 [DEBUG][       Thread-255535][   transport.py][1871] : EOF in transport thread
2025-06-13 12:55:27,373 [DEBUG][Thread-255537 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:55:35,865 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 12:55:35,866 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 12:55:35,866 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 12:55:35,869 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 12:55:36,351 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 12, 55, 30), 14.13, 37.68, 0.0, 11.68, 12.82, 0, 0, 0, 2, 0, 0),)
2025-06-13 12:55:36,351 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 12:55:30
2025-06-13 12:55:36,393 [DEBUG][Thread-255538 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:55:36,433 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 12:55:36,437 [DEBUG][       Thread-255539][   transport.py][1871] : starting thread (client mode): 0x863be050
2025-06-13 12:55:36,437 [DEBUG][       Thread-255539][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 12:55:36,457 [DEBUG][       Thread-255539][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 12:55:36,457 [ INFO][       Thread-255539][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 12:55:36,461 [DEBUG][       Thread-255539][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 12:55:36,461 [DEBUG][       Thread-255539][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 12:55:36,461 [DEBUG][       Thread-255539][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 12:55:36,461 [DEBUG][       Thread-255539][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:55:36,461 [DEBUG][       Thread-255539][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:55:36,461 [DEBUG][       Thread-255539][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:55:36,461 [DEBUG][       Thread-255539][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:55:36,461 [DEBUG][       Thread-255539][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 12:55:36,461 [DEBUG][       Thread-255539][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 12:55:36,461 [DEBUG][       Thread-255539][   transport.py][1871] : client lang: <none>
2025-06-13 12:55:36,461 [DEBUG][       Thread-255539][   transport.py][1871] : server lang: <none>
2025-06-13 12:55:36,461 [DEBUG][       Thread-255539][   transport.py][1871] : kex follows: False
2025-06-13 12:55:36,461 [DEBUG][       Thread-255539][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 12:55:36,461 [DEBUG][       Thread-255539][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 12:55:36,461 [DEBUG][       Thread-255539][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 12:55:36,461 [DEBUG][       Thread-255539][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 12:55:36,461 [DEBUG][       Thread-255539][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 12:55:36,461 [DEBUG][       Thread-255539][   transport.py][1871] : Compression: none
2025-06-13 12:55:36,461 [DEBUG][       Thread-255539][   transport.py][1871] : === End of kex handshake ===
2025-06-13 12:55:36,477 [DEBUG][       Thread-255539][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 12:55:36,477 [DEBUG][       Thread-255539][   transport.py][1871] : Switch to new keys ...
2025-06-13 12:55:36,478 [DEBUG][       Thread-255539][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 12:55:36,478 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 12:55:36,478 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 12:55:36,479 [DEBUG][       Thread-255539][   transport.py][1871] : userauth is OK
2025-06-13 12:55:36,492 [ INFO][       Thread-255539][   transport.py][1871] : Authentication (password) successful!
2025-06-13 12:55:36,492 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 12:55:37,098 [DEBUG][       Thread-255539][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 12:55:37,098 [DEBUG][       Thread-255539][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 12:55:37,141 [DEBUG][       Thread-255539][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 12:55:37,141 [DEBUG][       Thread-255539][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 12:55:37,144 [DEBUG][       Thread-255539][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 12:55:37,156 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 12:55:37,156 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 12:55:37,158 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 12:55:37,159 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 12:55:37,164 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 12:55:37,166 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 12:55:37,166 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 12:55:37,166 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 12:55:37,166 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.454451 -999.00  +12.40  12.87     43   +0.30 1 1 1 1 1   888    0 14.07 50.76 ----- 14.1 12.9 43.5 17.0 17.1 -28.2 15.8 -29.5 15.6 -28.3 17.0 -27.5
2025-06-13 12:55:37,167 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 12:55:37,167 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 12:55:37,167 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.454451
2025-06-13 12:55:37,167 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 12:55:37,168 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 12:55:37,168 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 12:55:37,168 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 12:55:37,168 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 12:55:37,168 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T12:55:30', tmtdew=14.13, humidity=37.68, cloud=0.0, wind=11.68, temperature=12.82, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T10:54:24.566', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 12:55:37,169 [DEBUG][       Thread-255539][   transport.py][1871] : EOF in transport thread
2025-06-13 12:55:37,254 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 12:55:37,265 [DEBUG][       Thread-255542][   transport.py][1871] : starting thread (client mode): 0x86893820
2025-06-13 12:55:37,265 [DEBUG][       Thread-255542][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 12:55:37,280 [DEBUG][       Thread-255542][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 12:55:37,280 [ INFO][       Thread-255542][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 12:55:37,287 [DEBUG][       Thread-255542][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 12:55:37,288 [DEBUG][       Thread-255542][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 12:55:37,288 [DEBUG][       Thread-255542][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 12:55:37,288 [DEBUG][       Thread-255542][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:55:37,288 [DEBUG][       Thread-255542][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:55:37,288 [DEBUG][       Thread-255542][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:55:37,288 [DEBUG][       Thread-255542][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:55:37,288 [DEBUG][       Thread-255542][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 12:55:37,288 [DEBUG][       Thread-255542][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 12:55:37,288 [DEBUG][       Thread-255542][   transport.py][1871] : client lang: <none>
2025-06-13 12:55:37,288 [DEBUG][       Thread-255542][   transport.py][1871] : server lang: <none>
2025-06-13 12:55:37,288 [DEBUG][       Thread-255542][   transport.py][1871] : kex follows: False
2025-06-13 12:55:37,288 [DEBUG][       Thread-255542][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 12:55:37,288 [DEBUG][       Thread-255542][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 12:55:37,288 [DEBUG][       Thread-255542][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 12:55:37,288 [DEBUG][       Thread-255542][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 12:55:37,288 [DEBUG][       Thread-255542][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 12:55:37,288 [DEBUG][       Thread-255542][   transport.py][1871] : Compression: none
2025-06-13 12:55:37,288 [DEBUG][       Thread-255542][   transport.py][1871] : === End of kex handshake ===
2025-06-13 12:55:37,344 [DEBUG][       Thread-255542][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 12:55:37,345 [DEBUG][       Thread-255542][   transport.py][1871] : Switch to new keys ...
2025-06-13 12:55:37,345 [DEBUG][       Thread-255542][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 12:55:37,346 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 12:55:37,346 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 12:55:37,409 [DEBUG][       Thread-255542][   transport.py][1871] : userauth is OK
2025-06-13 12:55:37,409 [DEBUG][       Thread-255542][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 12:55:37,409 [DEBUG][       Thread-255542][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 12:55:37,409 [DEBUG][       Thread-255542][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 12:55:37,409 [DEBUG][       Thread-255542][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 12:55:37,428 [ INFO][       Thread-255542][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 12:55:37,429 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 12:55:37,429 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 12:55:38,445 [DEBUG][       Thread-255542][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 12:55:38,445 [DEBUG][       Thread-255542][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 12:55:38,496 [DEBUG][       Thread-255542][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 12:55:38,496 [DEBUG][       Thread-255542][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 12:55:38,505 [DEBUG][       Thread-255542][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 12:55:38,513 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 12:55:38,513 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 12:55:38,521 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 12:55:38,530 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 12:55:38,530 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 12:55:38,530 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 12:55:38,538 [DEBUG][       Thread-255542][   transport.py][1871] : EOF in transport thread
2025-06-13 12:55:45,412 [DEBUG][Thread-255544 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:55:47,684 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:55:47,685 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:55:48,541 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 12:55:48,541 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 12:55:48,541 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 12:55:48,544 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 12:55:49,029 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 12, 55, 30), 14.13, 37.68, 0.0, 11.68, 12.82, 0, 0, 0, 2, 0, 0),)
2025-06-13 12:55:49,029 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 12:55:30
2025-06-13 12:55:49,111 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 12:55:49,115 [DEBUG][       Thread-255545][   transport.py][1871] : starting thread (client mode): 0x84207220
2025-06-13 12:55:49,115 [DEBUG][       Thread-255545][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 12:55:49,137 [DEBUG][       Thread-255545][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 12:55:49,137 [ INFO][       Thread-255545][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 12:55:49,140 [DEBUG][       Thread-255545][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 12:55:49,140 [DEBUG][       Thread-255545][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 12:55:49,140 [DEBUG][       Thread-255545][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 12:55:49,140 [DEBUG][       Thread-255545][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:55:49,140 [DEBUG][       Thread-255545][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:55:49,140 [DEBUG][       Thread-255545][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:55:49,140 [DEBUG][       Thread-255545][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:55:49,140 [DEBUG][       Thread-255545][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 12:55:49,140 [DEBUG][       Thread-255545][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 12:55:49,140 [DEBUG][       Thread-255545][   transport.py][1871] : client lang: <none>
2025-06-13 12:55:49,140 [DEBUG][       Thread-255545][   transport.py][1871] : server lang: <none>
2025-06-13 12:55:49,140 [DEBUG][       Thread-255545][   transport.py][1871] : kex follows: False
2025-06-13 12:55:49,140 [DEBUG][       Thread-255545][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 12:55:49,140 [DEBUG][       Thread-255545][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 12:55:49,140 [DEBUG][       Thread-255545][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 12:55:49,140 [DEBUG][       Thread-255545][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 12:55:49,140 [DEBUG][       Thread-255545][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 12:55:49,140 [DEBUG][       Thread-255545][   transport.py][1871] : Compression: none
2025-06-13 12:55:49,140 [DEBUG][       Thread-255545][   transport.py][1871] : === End of kex handshake ===
2025-06-13 12:55:49,158 [DEBUG][       Thread-255545][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 12:55:49,158 [DEBUG][       Thread-255545][   transport.py][1871] : Switch to new keys ...
2025-06-13 12:55:49,159 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 12:55:49,159 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 12:55:49,159 [DEBUG][       Thread-255545][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 12:55:49,160 [DEBUG][       Thread-255545][   transport.py][1871] : userauth is OK
2025-06-13 12:55:49,185 [ INFO][       Thread-255545][   transport.py][1871] : Authentication (password) successful!
2025-06-13 12:55:49,186 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 12:55:49,796 [DEBUG][       Thread-255545][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 12:55:49,796 [DEBUG][       Thread-255545][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 12:55:49,837 [DEBUG][       Thread-255545][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 12:55:49,837 [DEBUG][       Thread-255545][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 12:55:49,840 [DEBUG][       Thread-255545][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 12:55:49,852 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 12:55:49,853 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 12:55:49,855 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 12:55:49,857 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 12:55:49,862 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 12:55:49,864 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 12:55:49,865 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 12:55:49,865 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 12:55:49,865 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.454451 -999.00  +12.40  12.87     43   +0.30 1 1 1 1 1   888    0 14.07 50.76 ----- 14.1 12.9 43.5 17.0 17.1 -28.2 15.8 -29.5 15.6 -28.3 17.0 -27.5
2025-06-13 12:55:49,866 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 12:55:49,866 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 12:55:49,866 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.454451
2025-06-13 12:55:49,866 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 12:55:49,867 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 12:55:49,867 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 12:55:49,867 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 12:55:49,867 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 12:55:49,867 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T12:55:30', tmtdew=14.13, humidity=37.68, cloud=0.0, wind=11.68, temperature=12.82, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T10:54:24.566', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 12:55:49,867 [DEBUG][       Thread-255545][   transport.py][1871] : EOF in transport thread
2025-06-13 12:55:49,951 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 12:55:49,960 [DEBUG][       Thread-255548][   transport.py][1871] : starting thread (client mode): 0x867fc0d0
2025-06-13 12:55:49,960 [DEBUG][       Thread-255548][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 12:55:49,976 [DEBUG][       Thread-255548][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 12:55:49,976 [ INFO][       Thread-255548][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 12:55:49,984 [DEBUG][       Thread-255548][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 12:55:49,984 [DEBUG][       Thread-255548][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 12:55:49,984 [DEBUG][       Thread-255548][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 12:55:49,984 [DEBUG][       Thread-255548][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:55:49,984 [DEBUG][       Thread-255548][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:55:49,984 [DEBUG][       Thread-255548][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:55:49,984 [DEBUG][       Thread-255548][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:55:49,984 [DEBUG][       Thread-255548][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 12:55:49,985 [DEBUG][       Thread-255548][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 12:55:49,985 [DEBUG][       Thread-255548][   transport.py][1871] : client lang: <none>
2025-06-13 12:55:49,985 [DEBUG][       Thread-255548][   transport.py][1871] : server lang: <none>
2025-06-13 12:55:49,985 [DEBUG][       Thread-255548][   transport.py][1871] : kex follows: False
2025-06-13 12:55:49,985 [DEBUG][       Thread-255548][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 12:55:49,985 [DEBUG][       Thread-255548][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 12:55:49,985 [DEBUG][       Thread-255548][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 12:55:49,985 [DEBUG][       Thread-255548][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 12:55:49,985 [DEBUG][       Thread-255548][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 12:55:49,985 [DEBUG][       Thread-255548][   transport.py][1871] : Compression: none
2025-06-13 12:55:49,985 [DEBUG][       Thread-255548][   transport.py][1871] : === End of kex handshake ===
2025-06-13 12:55:50,042 [DEBUG][       Thread-255548][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 12:55:50,042 [DEBUG][       Thread-255548][   transport.py][1871] : Switch to new keys ...
2025-06-13 12:55:50,043 [DEBUG][       Thread-255548][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 12:55:50,043 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 12:55:50,044 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 12:55:50,098 [DEBUG][       Thread-255548][   transport.py][1871] : userauth is OK
2025-06-13 12:55:50,098 [DEBUG][       Thread-255548][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 12:55:50,098 [DEBUG][       Thread-255548][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 12:55:50,099 [DEBUG][       Thread-255548][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 12:55:50,099 [DEBUG][       Thread-255548][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 12:55:50,118 [ INFO][       Thread-255548][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 12:55:50,118 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 12:55:50,119 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 12:55:51,178 [DEBUG][       Thread-255548][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 12:55:51,178 [DEBUG][       Thread-255548][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 12:55:51,227 [DEBUG][       Thread-255548][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 12:55:51,228 [DEBUG][       Thread-255548][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 12:55:51,236 [DEBUG][       Thread-255548][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 12:55:51,245 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 12:55:51,245 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 12:55:51,253 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 12:55:51,262 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 12:55:51,262 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 12:55:51,262 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 12:55:51,270 [DEBUG][       Thread-255548][   transport.py][1871] : EOF in transport thread
2025-06-13 12:55:54,447 [DEBUG][Thread-255550 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:55:58,098 [DEBUG][Thread-255551 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:55:59,177 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:55:59,178 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:56:01,272 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 12:56:01,272 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 12:56:01,272 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 12:56:01,273 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 12:56:01,778 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 12, 55, 30), 14.13, 37.68, 0.0, 11.68, 12.82, 0, 0, 0, 2, 0, 0),)
2025-06-13 12:56:01,778 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 12:55:30
2025-06-13 12:56:01,863 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 12:56:01,868 [DEBUG][       Thread-255552][   transport.py][1871] : starting thread (client mode): 0x84206110
2025-06-13 12:56:01,868 [DEBUG][       Thread-255552][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 12:56:01,887 [DEBUG][       Thread-255552][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 12:56:01,887 [ INFO][       Thread-255552][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 12:56:01,890 [DEBUG][       Thread-255552][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 12:56:01,890 [DEBUG][       Thread-255552][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 12:56:01,890 [DEBUG][       Thread-255552][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 12:56:01,890 [DEBUG][       Thread-255552][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:56:01,890 [DEBUG][       Thread-255552][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:56:01,890 [DEBUG][       Thread-255552][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:56:01,890 [DEBUG][       Thread-255552][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:56:01,890 [DEBUG][       Thread-255552][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 12:56:01,890 [DEBUG][       Thread-255552][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 12:56:01,890 [DEBUG][       Thread-255552][   transport.py][1871] : client lang: <none>
2025-06-13 12:56:01,890 [DEBUG][       Thread-255552][   transport.py][1871] : server lang: <none>
2025-06-13 12:56:01,890 [DEBUG][       Thread-255552][   transport.py][1871] : kex follows: False
2025-06-13 12:56:01,890 [DEBUG][       Thread-255552][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 12:56:01,890 [DEBUG][       Thread-255552][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 12:56:01,890 [DEBUG][       Thread-255552][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 12:56:01,890 [DEBUG][       Thread-255552][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 12:56:01,890 [DEBUG][       Thread-255552][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 12:56:01,890 [DEBUG][       Thread-255552][   transport.py][1871] : Compression: none
2025-06-13 12:56:01,890 [DEBUG][       Thread-255552][   transport.py][1871] : === End of kex handshake ===
2025-06-13 12:56:01,904 [DEBUG][       Thread-255552][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 12:56:01,904 [DEBUG][       Thread-255552][   transport.py][1871] : Switch to new keys ...
2025-06-13 12:56:01,904 [DEBUG][       Thread-255552][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 12:56:01,904 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 12:56:01,904 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 12:56:01,905 [DEBUG][       Thread-255552][   transport.py][1871] : userauth is OK
2025-06-13 12:56:01,917 [ INFO][       Thread-255552][   transport.py][1871] : Authentication (password) successful!
2025-06-13 12:56:01,917 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 12:56:02,538 [DEBUG][       Thread-255552][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 12:56:02,538 [DEBUG][       Thread-255552][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 12:56:02,580 [DEBUG][       Thread-255552][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 12:56:02,580 [DEBUG][       Thread-255552][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 12:56:02,582 [DEBUG][       Thread-255552][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 12:56:02,596 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 12:56:02,596 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 12:56:02,597 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 12:56:02,598 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 12:56:02,601 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 12:56:02,602 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 12:56:02,602 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 12:56:02,602 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 12:56:02,602 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.454451 -999.00  +12.40  12.87     43   +0.30 1 1 1 1 1   888    0 14.07 50.76 ----- 14.1 12.9 43.5 17.0 17.1 -28.2 15.8 -29.5 15.6 -28.3 17.0 -27.5
2025-06-13 12:56:02,602 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 12:56:02,602 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 12:56:02,602 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.454451
2025-06-13 12:56:02,602 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 12:56:02,602 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 12:56:02,602 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 12:56:02,602 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 12:56:02,602 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 12:56:02,602 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T12:55:30', tmtdew=14.13, humidity=37.68, cloud=0.0, wind=11.68, temperature=12.82, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T10:54:24.566', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 12:56:02,603 [DEBUG][       Thread-255552][   transport.py][1871] : EOF in transport thread
2025-06-13 12:56:02,677 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 12:56:02,688 [DEBUG][       Thread-255555][   transport.py][1871] : starting thread (client mode): 0x863ef340
2025-06-13 12:56:02,688 [DEBUG][       Thread-255555][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 12:56:02,703 [DEBUG][       Thread-255555][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 12:56:02,703 [ INFO][       Thread-255555][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 12:56:02,711 [DEBUG][       Thread-255555][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 12:56:02,711 [DEBUG][       Thread-255555][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 12:56:02,711 [DEBUG][       Thread-255555][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 12:56:02,711 [DEBUG][       Thread-255555][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:56:02,711 [DEBUG][       Thread-255555][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:56:02,711 [DEBUG][       Thread-255555][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:56:02,711 [DEBUG][       Thread-255555][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:56:02,711 [DEBUG][       Thread-255555][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 12:56:02,711 [DEBUG][       Thread-255555][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 12:56:02,711 [DEBUG][       Thread-255555][   transport.py][1871] : client lang: <none>
2025-06-13 12:56:02,711 [DEBUG][       Thread-255555][   transport.py][1871] : server lang: <none>
2025-06-13 12:56:02,711 [DEBUG][       Thread-255555][   transport.py][1871] : kex follows: False
2025-06-13 12:56:02,711 [DEBUG][       Thread-255555][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 12:56:02,711 [DEBUG][       Thread-255555][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 12:56:02,711 [DEBUG][       Thread-255555][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 12:56:02,711 [DEBUG][       Thread-255555][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 12:56:02,711 [DEBUG][       Thread-255555][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 12:56:02,711 [DEBUG][       Thread-255555][   transport.py][1871] : Compression: none
2025-06-13 12:56:02,711 [DEBUG][       Thread-255555][   transport.py][1871] : === End of kex handshake ===
2025-06-13 12:56:02,768 [DEBUG][       Thread-255555][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 12:56:02,768 [DEBUG][       Thread-255555][   transport.py][1871] : Switch to new keys ...
2025-06-13 12:56:02,768 [DEBUG][       Thread-255555][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 12:56:02,769 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 12:56:02,769 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 12:56:02,825 [DEBUG][       Thread-255555][   transport.py][1871] : userauth is OK
2025-06-13 12:56:02,825 [DEBUG][       Thread-255555][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 12:56:02,825 [DEBUG][       Thread-255555][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 12:56:02,825 [DEBUG][       Thread-255555][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 12:56:02,825 [DEBUG][       Thread-255555][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 12:56:02,839 [ INFO][       Thread-255555][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 12:56:02,839 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 12:56:02,840 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 12:56:03,465 [DEBUG][Thread-255557 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:56:03,851 [DEBUG][       Thread-255555][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 12:56:03,851 [DEBUG][       Thread-255555][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 12:56:03,899 [DEBUG][       Thread-255555][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 12:56:03,899 [DEBUG][       Thread-255555][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 12:56:03,908 [DEBUG][       Thread-255555][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 12:56:03,916 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 12:56:03,916 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 12:56:03,924 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 12:56:03,932 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 12:56:03,932 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 12:56:03,932 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 12:56:03,939 [DEBUG][       Thread-255555][   transport.py][1871] : EOF in transport thread
2025-06-13 12:56:12,486 [DEBUG][Thread-255558 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:56:13,580 [DEBUG][Thread-255559 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:56:13,942 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 12:56:13,942 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 12:56:13,943 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 12:56:13,946 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 12:56:14,416 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 12, 56, 2), 14.12, 37.71, 0.0, 11.77, 12.87, 0, 0, 0, 2, 0, 0),)
2025-06-13 12:56:14,416 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 12:56:02
2025-06-13 12:56:14,497 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 12:56:14,504 [DEBUG][       Thread-255560][   transport.py][1871] : starting thread (client mode): 0x84206ec0
2025-06-13 12:56:14,504 [DEBUG][       Thread-255560][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 12:56:14,524 [DEBUG][       Thread-255560][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 12:56:14,524 [ INFO][       Thread-255560][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 12:56:14,528 [DEBUG][       Thread-255560][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 12:56:14,528 [DEBUG][       Thread-255560][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 12:56:14,528 [DEBUG][       Thread-255560][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 12:56:14,528 [DEBUG][       Thread-255560][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:56:14,528 [DEBUG][       Thread-255560][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:56:14,528 [DEBUG][       Thread-255560][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:56:14,528 [DEBUG][       Thread-255560][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:56:14,528 [DEBUG][       Thread-255560][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 12:56:14,528 [DEBUG][       Thread-255560][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 12:56:14,528 [DEBUG][       Thread-255560][   transport.py][1871] : client lang: <none>
2025-06-13 12:56:14,528 [DEBUG][       Thread-255560][   transport.py][1871] : server lang: <none>
2025-06-13 12:56:14,528 [DEBUG][       Thread-255560][   transport.py][1871] : kex follows: False
2025-06-13 12:56:14,528 [DEBUG][       Thread-255560][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 12:56:14,528 [DEBUG][       Thread-255560][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 12:56:14,528 [DEBUG][       Thread-255560][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 12:56:14,528 [DEBUG][       Thread-255560][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 12:56:14,528 [DEBUG][       Thread-255560][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 12:56:14,528 [DEBUG][       Thread-255560][   transport.py][1871] : Compression: none
2025-06-13 12:56:14,528 [DEBUG][       Thread-255560][   transport.py][1871] : === End of kex handshake ===
2025-06-13 12:56:14,545 [DEBUG][       Thread-255560][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 12:56:14,545 [DEBUG][       Thread-255560][   transport.py][1871] : Switch to new keys ...
2025-06-13 12:56:14,546 [DEBUG][       Thread-255560][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 12:56:14,546 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 12:56:14,546 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 12:56:14,547 [DEBUG][       Thread-255560][   transport.py][1871] : userauth is OK
2025-06-13 12:56:14,572 [ INFO][       Thread-255560][   transport.py][1871] : Authentication (password) successful!
2025-06-13 12:56:14,573 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 12:56:15,191 [DEBUG][       Thread-255560][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 12:56:15,192 [DEBUG][       Thread-255560][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 12:56:15,233 [DEBUG][       Thread-255560][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 12:56:15,233 [DEBUG][       Thread-255560][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 12:56:15,237 [DEBUG][       Thread-255560][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 12:56:15,250 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 12:56:15,251 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 12:56:15,253 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 12:56:15,256 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 12:56:15,262 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 12:56:15,264 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 12:56:15,265 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 12:56:15,265 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 12:56:15,266 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.454451 -999.00  +12.40  12.87     43   +0.30 1 1 1 1 1   888    0 14.07 50.76 ----- 14.1 12.9 43.5 17.0 17.1 -28.2 15.8 -29.5 15.6 -28.3 17.0 -27.5
2025-06-13 12:56:15,266 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 12:56:15,266 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 12:56:15,266 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.454451
2025-06-13 12:56:15,266 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 12:56:15,267 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 12:56:15,267 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 12:56:15,267 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 12:56:15,267 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 12:56:15,267 [DEBUG][       Thread-255560][   transport.py][1871] : EOF in transport thread
2025-06-13 12:56:15,268 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T12:56:02', tmtdew=14.12, humidity=37.71, cloud=0.0, wind=11.77, temperature=12.87, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T10:54:24.566', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 12:56:15,352 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 12:56:15,363 [DEBUG][       Thread-255563][   transport.py][1871] : starting thread (client mode): 0x867b78b0
2025-06-13 12:56:15,364 [DEBUG][       Thread-255563][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 12:56:15,379 [DEBUG][       Thread-255563][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 12:56:15,379 [ INFO][       Thread-255563][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 12:56:15,387 [DEBUG][       Thread-255563][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 12:56:15,387 [DEBUG][       Thread-255563][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 12:56:15,387 [DEBUG][       Thread-255563][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 12:56:15,387 [DEBUG][       Thread-255563][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:56:15,387 [DEBUG][       Thread-255563][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:56:15,387 [DEBUG][       Thread-255563][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:56:15,387 [DEBUG][       Thread-255563][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:56:15,387 [DEBUG][       Thread-255563][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 12:56:15,387 [DEBUG][       Thread-255563][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 12:56:15,387 [DEBUG][       Thread-255563][   transport.py][1871] : client lang: <none>
2025-06-13 12:56:15,387 [DEBUG][       Thread-255563][   transport.py][1871] : server lang: <none>
2025-06-13 12:56:15,387 [DEBUG][       Thread-255563][   transport.py][1871] : kex follows: False
2025-06-13 12:56:15,387 [DEBUG][       Thread-255563][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 12:56:15,388 [DEBUG][       Thread-255563][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 12:56:15,388 [DEBUG][       Thread-255563][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 12:56:15,388 [DEBUG][       Thread-255563][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 12:56:15,388 [DEBUG][       Thread-255563][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 12:56:15,388 [DEBUG][       Thread-255563][   transport.py][1871] : Compression: none
2025-06-13 12:56:15,388 [DEBUG][       Thread-255563][   transport.py][1871] : === End of kex handshake ===
2025-06-13 12:56:15,446 [DEBUG][       Thread-255563][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 12:56:15,446 [DEBUG][       Thread-255563][   transport.py][1871] : Switch to new keys ...
2025-06-13 12:56:15,447 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 12:56:15,448 [DEBUG][       Thread-255563][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 12:56:15,448 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 12:56:15,502 [DEBUG][       Thread-255563][   transport.py][1871] : userauth is OK
2025-06-13 12:56:15,502 [DEBUG][       Thread-255563][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 12:56:15,502 [DEBUG][       Thread-255563][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 12:56:15,502 [DEBUG][       Thread-255563][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 12:56:15,502 [DEBUG][       Thread-255563][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 12:56:15,521 [ INFO][       Thread-255563][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 12:56:15,521 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 12:56:15,522 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 12:56:16,568 [DEBUG][       Thread-255563][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 12:56:16,568 [DEBUG][       Thread-255563][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 12:56:16,619 [DEBUG][       Thread-255563][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 12:56:16,619 [DEBUG][       Thread-255563][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 12:56:16,628 [DEBUG][       Thread-255563][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 12:56:16,636 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 12:56:16,636 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 12:56:16,644 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 12:56:16,652 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 12:56:16,652 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 12:56:16,652 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 12:56:16,660 [DEBUG][       Thread-255563][   transport.py][1871] : EOF in transport thread
2025-06-13 12:56:21,507 [DEBUG][Thread-255565 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:56:26,661 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 12:56:26,661 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 12:56:26,661 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 12:56:26,664 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 12:56:27,137 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 12, 56, 2), 14.12, 37.71, 0.0, 11.77, 12.87, 0, 0, 0, 2, 0, 0),)
2025-06-13 12:56:27,137 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 12:56:02
2025-06-13 12:56:27,218 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 12:56:27,222 [DEBUG][       Thread-255566][   transport.py][1871] : starting thread (client mode): 0x84205ff0
2025-06-13 12:56:27,223 [DEBUG][       Thread-255566][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 12:56:27,243 [DEBUG][       Thread-255566][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 12:56:27,243 [ INFO][       Thread-255566][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 12:56:27,247 [DEBUG][       Thread-255566][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 12:56:27,247 [DEBUG][       Thread-255566][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 12:56:27,247 [DEBUG][       Thread-255566][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 12:56:27,247 [DEBUG][       Thread-255566][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:56:27,247 [DEBUG][       Thread-255566][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:56:27,247 [DEBUG][       Thread-255566][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:56:27,247 [DEBUG][       Thread-255566][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:56:27,247 [DEBUG][       Thread-255566][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 12:56:27,247 [DEBUG][       Thread-255566][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 12:56:27,247 [DEBUG][       Thread-255566][   transport.py][1871] : client lang: <none>
2025-06-13 12:56:27,247 [DEBUG][       Thread-255566][   transport.py][1871] : server lang: <none>
2025-06-13 12:56:27,247 [DEBUG][       Thread-255566][   transport.py][1871] : kex follows: False
2025-06-13 12:56:27,247 [DEBUG][       Thread-255566][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 12:56:27,247 [DEBUG][       Thread-255566][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 12:56:27,247 [DEBUG][       Thread-255566][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 12:56:27,247 [DEBUG][       Thread-255566][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 12:56:27,247 [DEBUG][       Thread-255566][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 12:56:27,247 [DEBUG][       Thread-255566][   transport.py][1871] : Compression: none
2025-06-13 12:56:27,247 [DEBUG][       Thread-255566][   transport.py][1871] : === End of kex handshake ===
2025-06-13 12:56:27,263 [DEBUG][       Thread-255566][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 12:56:27,264 [DEBUG][       Thread-255566][   transport.py][1871] : Switch to new keys ...
2025-06-13 12:56:27,264 [DEBUG][       Thread-255566][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 12:56:27,264 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 12:56:27,265 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 12:56:27,266 [DEBUG][       Thread-255566][   transport.py][1871] : userauth is OK
2025-06-13 12:56:27,279 [ INFO][       Thread-255566][   transport.py][1871] : Authentication (password) successful!
2025-06-13 12:56:27,279 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 12:56:27,977 [DEBUG][       Thread-255566][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 12:56:27,978 [DEBUG][       Thread-255566][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 12:56:28,021 [DEBUG][       Thread-255566][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 12:56:28,021 [DEBUG][       Thread-255566][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 12:56:28,025 [DEBUG][       Thread-255566][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 12:56:28,037 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 12:56:28,037 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 12:56:28,039 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 12:56:28,041 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 12:56:28,046 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 12:56:28,048 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 12:56:28,048 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 12:56:28,049 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 12:56:28,049 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.454451 -999.00  +12.40  12.87     43   +0.30 1 1 1 1 1   888    0 14.07 50.76 ----- 14.1 12.9 43.5 17.0 17.1 -28.2 15.8 -29.5 15.6 -28.3 17.0 -27.5
2025-06-13 12:56:28,049 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 12:56:28,049 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 12:56:28,050 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.454451
2025-06-13 12:56:28,050 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 12:56:28,051 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 12:56:28,051 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 12:56:28,051 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 12:56:28,051 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 12:56:28,051 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T12:56:02', tmtdew=14.12, humidity=37.71, cloud=0.0, wind=11.77, temperature=12.87, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T10:54:24.566', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 12:56:28,051 [DEBUG][       Thread-255566][   transport.py][1871] : EOF in transport thread
2025-06-13 12:56:28,135 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 12:56:28,145 [DEBUG][       Thread-255569][   transport.py][1871] : starting thread (client mode): 0x863a7670
2025-06-13 12:56:28,145 [DEBUG][       Thread-255569][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 12:56:28,161 [DEBUG][       Thread-255569][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 12:56:28,161 [ INFO][       Thread-255569][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 12:56:28,168 [DEBUG][       Thread-255569][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 12:56:28,168 [DEBUG][       Thread-255569][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 12:56:28,168 [DEBUG][       Thread-255569][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 12:56:28,168 [DEBUG][       Thread-255569][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:56:28,168 [DEBUG][       Thread-255569][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:56:28,169 [DEBUG][       Thread-255569][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:56:28,169 [DEBUG][       Thread-255569][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:56:28,169 [DEBUG][       Thread-255569][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 12:56:28,169 [DEBUG][       Thread-255569][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 12:56:28,169 [DEBUG][       Thread-255569][   transport.py][1871] : client lang: <none>
2025-06-13 12:56:28,169 [DEBUG][       Thread-255569][   transport.py][1871] : server lang: <none>
2025-06-13 12:56:28,169 [DEBUG][       Thread-255569][   transport.py][1871] : kex follows: False
2025-06-13 12:56:28,169 [DEBUG][       Thread-255569][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 12:56:28,169 [DEBUG][       Thread-255569][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 12:56:28,169 [DEBUG][       Thread-255569][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 12:56:28,169 [DEBUG][       Thread-255569][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 12:56:28,169 [DEBUG][       Thread-255569][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 12:56:28,169 [DEBUG][       Thread-255569][   transport.py][1871] : Compression: none
2025-06-13 12:56:28,169 [DEBUG][       Thread-255569][   transport.py][1871] : === End of kex handshake ===
2025-06-13 12:56:28,226 [DEBUG][       Thread-255569][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 12:56:28,226 [DEBUG][       Thread-255569][   transport.py][1871] : Switch to new keys ...
2025-06-13 12:56:28,227 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 12:56:28,227 [DEBUG][       Thread-255569][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 12:56:28,228 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 12:56:28,282 [DEBUG][       Thread-255569][   transport.py][1871] : userauth is OK
2025-06-13 12:56:28,282 [DEBUG][       Thread-255569][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 12:56:28,282 [DEBUG][       Thread-255569][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 12:56:28,283 [DEBUG][       Thread-255569][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 12:56:28,283 [DEBUG][       Thread-255569][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 12:56:28,302 [ INFO][       Thread-255569][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 12:56:28,302 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 12:56:28,303 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 12:56:29,330 [DEBUG][       Thread-255569][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 12:56:29,331 [DEBUG][       Thread-255569][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 12:56:29,380 [DEBUG][       Thread-255569][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 12:56:29,380 [DEBUG][       Thread-255569][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 12:56:29,389 [DEBUG][       Thread-255569][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 12:56:29,398 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 12:56:29,399 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 12:56:29,408 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 12:56:29,417 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 12:56:29,418 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 12:56:29,418 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 12:56:29,426 [DEBUG][       Thread-255569][   transport.py][1871] : EOF in transport thread
2025-06-13 12:56:30,544 [DEBUG][Thread-255571 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:56:39,428 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 12:56:39,428 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 12:56:39,428 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 12:56:39,429 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 12:56:39,563 [DEBUG][Thread-255572 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:56:39,932 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 12, 56, 33), 14.33, 36.91, 0.0, 16.89, 12.89, 0, 0, 0, 2, 0, 0),)
2025-06-13 12:56:39,932 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 12:56:33
2025-06-13 12:56:40,018 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 12:56:40,024 [DEBUG][       Thread-255573][   transport.py][1871] : starting thread (client mode): 0x863535e0
2025-06-13 12:56:40,024 [DEBUG][       Thread-255573][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 12:56:40,044 [DEBUG][       Thread-255573][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 12:56:40,044 [ INFO][       Thread-255573][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 12:56:40,048 [DEBUG][       Thread-255573][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 12:56:40,048 [DEBUG][       Thread-255573][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 12:56:40,048 [DEBUG][       Thread-255573][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 12:56:40,048 [DEBUG][       Thread-255573][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:56:40,048 [DEBUG][       Thread-255573][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:56:40,048 [DEBUG][       Thread-255573][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:56:40,048 [DEBUG][       Thread-255573][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:56:40,048 [DEBUG][       Thread-255573][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 12:56:40,048 [DEBUG][       Thread-255573][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 12:56:40,048 [DEBUG][       Thread-255573][   transport.py][1871] : client lang: <none>
2025-06-13 12:56:40,048 [DEBUG][       Thread-255573][   transport.py][1871] : server lang: <none>
2025-06-13 12:56:40,048 [DEBUG][       Thread-255573][   transport.py][1871] : kex follows: False
2025-06-13 12:56:40,048 [DEBUG][       Thread-255573][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 12:56:40,048 [DEBUG][       Thread-255573][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 12:56:40,048 [DEBUG][       Thread-255573][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 12:56:40,048 [DEBUG][       Thread-255573][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 12:56:40,048 [DEBUG][       Thread-255573][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 12:56:40,048 [DEBUG][       Thread-255573][   transport.py][1871] : Compression: none
2025-06-13 12:56:40,048 [DEBUG][       Thread-255573][   transport.py][1871] : === End of kex handshake ===
2025-06-13 12:56:40,062 [DEBUG][       Thread-255573][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 12:56:40,062 [DEBUG][       Thread-255573][   transport.py][1871] : Switch to new keys ...
2025-06-13 12:56:40,062 [DEBUG][       Thread-255573][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 12:56:40,062 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 12:56:40,062 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 12:56:40,063 [DEBUG][       Thread-255573][   transport.py][1871] : userauth is OK
2025-06-13 12:56:40,086 [ INFO][       Thread-255573][   transport.py][1871] : Authentication (password) successful!
2025-06-13 12:56:40,086 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 12:56:40,741 [DEBUG][       Thread-255573][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 12:56:40,741 [DEBUG][       Thread-255573][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 12:56:40,785 [DEBUG][       Thread-255573][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 12:56:40,785 [DEBUG][       Thread-255573][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 12:56:40,787 [DEBUG][       Thread-255573][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 12:56:40,801 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 12:56:40,801 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 12:56:40,802 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 12:56:40,804 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 12:56:40,807 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 12:56:40,808 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 12:56:40,808 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 12:56:40,808 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 12:56:40,808 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.454451 -999.00  +12.40  12.87     43   +0.30 1 1 1 1 1   888    0 14.07 50.76 ----- 14.1 12.9 43.5 17.0 17.1 -28.2 15.8 -29.5 15.6 -28.3 17.0 -27.5
2025-06-13 12:56:40,808 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 12:56:40,808 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 12:56:40,808 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.454451
2025-06-13 12:56:40,808 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 12:56:40,809 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 12:56:40,809 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 12:56:40,809 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 12:56:40,809 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 12:56:40,809 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T12:56:33', tmtdew=14.33, humidity=36.91, cloud=0.0, wind=16.89, temperature=12.89, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T10:54:24.566', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 12:56:40,810 [DEBUG][       Thread-255573][   transport.py][1871] : EOF in transport thread
2025-06-13 12:56:40,883 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 12:56:40,896 [DEBUG][       Thread-255576][   transport.py][1871] : starting thread (client mode): 0xc5988130
2025-06-13 12:56:40,896 [DEBUG][       Thread-255576][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 12:56:40,918 [DEBUG][       Thread-255576][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 12:56:40,918 [ INFO][       Thread-255576][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 12:56:40,928 [DEBUG][       Thread-255576][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 12:56:40,928 [DEBUG][       Thread-255576][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 12:56:40,928 [DEBUG][       Thread-255576][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 12:56:40,928 [DEBUG][       Thread-255576][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:56:40,928 [DEBUG][       Thread-255576][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:56:40,928 [DEBUG][       Thread-255576][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:56:40,928 [DEBUG][       Thread-255576][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:56:40,928 [DEBUG][       Thread-255576][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 12:56:40,928 [DEBUG][       Thread-255576][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 12:56:40,928 [DEBUG][       Thread-255576][   transport.py][1871] : client lang: <none>
2025-06-13 12:56:40,928 [DEBUG][       Thread-255576][   transport.py][1871] : server lang: <none>
2025-06-13 12:56:40,928 [DEBUG][       Thread-255576][   transport.py][1871] : kex follows: False
2025-06-13 12:56:40,928 [DEBUG][       Thread-255576][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 12:56:40,928 [DEBUG][       Thread-255576][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 12:56:40,928 [DEBUG][       Thread-255576][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 12:56:40,929 [DEBUG][       Thread-255576][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 12:56:40,929 [DEBUG][       Thread-255576][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 12:56:40,929 [DEBUG][       Thread-255576][   transport.py][1871] : Compression: none
2025-06-13 12:56:40,929 [DEBUG][       Thread-255576][   transport.py][1871] : === End of kex handshake ===
2025-06-13 12:56:40,986 [DEBUG][       Thread-255576][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 12:56:40,986 [DEBUG][       Thread-255576][   transport.py][1871] : Switch to new keys ...
2025-06-13 12:56:40,986 [DEBUG][       Thread-255576][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 12:56:40,986 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 12:56:40,986 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 12:56:41,045 [DEBUG][       Thread-255576][   transport.py][1871] : userauth is OK
2025-06-13 12:56:41,045 [DEBUG][       Thread-255576][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 12:56:41,045 [DEBUG][       Thread-255576][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 12:56:41,045 [DEBUG][       Thread-255576][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 12:56:41,045 [DEBUG][       Thread-255576][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 12:56:41,061 [ INFO][       Thread-255576][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 12:56:41,061 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 12:56:41,061 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 12:56:42,131 [DEBUG][       Thread-255576][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 12:56:42,131 [DEBUG][       Thread-255576][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 12:56:42,179 [DEBUG][       Thread-255576][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 12:56:42,179 [DEBUG][       Thread-255576][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 12:56:42,188 [DEBUG][       Thread-255576][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 12:56:42,195 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 12:56:42,195 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 12:56:42,203 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 12:56:42,211 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 12:56:42,211 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 12:56:42,211 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 12:56:42,219 [DEBUG][       Thread-255576][   transport.py][1871] : EOF in transport thread
2025-06-13 12:56:47,838 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:56:47,839 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:56:48,582 [DEBUG][Thread-255578 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:56:52,220 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 12:56:52,220 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 12:56:52,220 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 12:56:52,223 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 12:56:52,712 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 12, 56, 33), 14.33, 36.91, 0.0, 16.89, 12.89, 0, 0, 0, 2, 0, 0),)
2025-06-13 12:56:52,712 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 12:56:33
2025-06-13 12:56:52,794 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 12:56:52,799 [DEBUG][       Thread-255579][   transport.py][1871] : starting thread (client mode): 0x84206380
2025-06-13 12:56:52,799 [DEBUG][       Thread-255579][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 12:56:52,820 [DEBUG][       Thread-255579][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 12:56:52,820 [ INFO][       Thread-255579][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 12:56:52,824 [DEBUG][       Thread-255579][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 12:56:52,824 [DEBUG][       Thread-255579][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 12:56:52,825 [DEBUG][       Thread-255579][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 12:56:52,825 [DEBUG][       Thread-255579][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:56:52,825 [DEBUG][       Thread-255579][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:56:52,825 [DEBUG][       Thread-255579][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:56:52,825 [DEBUG][       Thread-255579][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:56:52,825 [DEBUG][       Thread-255579][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 12:56:52,825 [DEBUG][       Thread-255579][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 12:56:52,825 [DEBUG][       Thread-255579][   transport.py][1871] : client lang: <none>
2025-06-13 12:56:52,825 [DEBUG][       Thread-255579][   transport.py][1871] : server lang: <none>
2025-06-13 12:56:52,825 [DEBUG][       Thread-255579][   transport.py][1871] : kex follows: False
2025-06-13 12:56:52,825 [DEBUG][       Thread-255579][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 12:56:52,825 [DEBUG][       Thread-255579][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 12:56:52,825 [DEBUG][       Thread-255579][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 12:56:52,825 [DEBUG][       Thread-255579][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 12:56:52,825 [DEBUG][       Thread-255579][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 12:56:52,825 [DEBUG][       Thread-255579][   transport.py][1871] : Compression: none
2025-06-13 12:56:52,825 [DEBUG][       Thread-255579][   transport.py][1871] : === End of kex handshake ===
2025-06-13 12:56:52,841 [DEBUG][       Thread-255579][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 12:56:52,842 [DEBUG][       Thread-255579][   transport.py][1871] : Switch to new keys ...
2025-06-13 12:56:52,842 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 12:56:52,842 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 12:56:52,843 [DEBUG][       Thread-255579][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 12:56:52,844 [DEBUG][       Thread-255579][   transport.py][1871] : userauth is OK
2025-06-13 12:56:52,856 [ INFO][       Thread-255579][   transport.py][1871] : Authentication (password) successful!
2025-06-13 12:56:52,857 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 12:56:53,502 [DEBUG][       Thread-255579][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 12:56:53,502 [DEBUG][       Thread-255579][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 12:56:53,545 [DEBUG][       Thread-255579][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 12:56:53,545 [DEBUG][       Thread-255579][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 12:56:53,549 [DEBUG][       Thread-255579][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 12:56:53,561 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 12:56:53,561 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 12:56:53,563 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 12:56:53,566 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 12:56:53,572 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 12:56:53,574 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 12:56:53,574 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 12:56:53,575 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 12:56:53,575 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.454451 -999.00  +12.40  12.87     43   +0.30 1 1 1 1 1   888    0 14.07 50.76 ----- 14.1 12.9 43.5 17.0 17.1 -28.2 15.8 -29.5 15.6 -28.3 17.0 -27.5
2025-06-13 12:56:53,575 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 12:56:53,575 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 12:56:53,575 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.454451
2025-06-13 12:56:53,576 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 12:56:53,576 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 12:56:53,577 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 12:56:53,577 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 12:56:53,577 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 12:56:53,577 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T12:56:33', tmtdew=14.33, humidity=36.91, cloud=0.0, wind=16.89, temperature=12.89, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T10:54:24.566', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 12:56:53,577 [DEBUG][       Thread-255579][   transport.py][1871] : EOF in transport thread
2025-06-13 12:56:53,660 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 12:56:53,670 [DEBUG][       Thread-255582][   transport.py][1871] : starting thread (client mode): 0x867b6c80
2025-06-13 12:56:53,670 [DEBUG][       Thread-255582][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 12:56:53,686 [DEBUG][       Thread-255582][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 12:56:53,686 [ INFO][       Thread-255582][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 12:56:53,694 [DEBUG][       Thread-255582][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 12:56:53,694 [DEBUG][       Thread-255582][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 12:56:53,694 [DEBUG][       Thread-255582][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 12:56:53,694 [DEBUG][       Thread-255582][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:56:53,694 [DEBUG][       Thread-255582][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:56:53,694 [DEBUG][       Thread-255582][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:56:53,694 [DEBUG][       Thread-255582][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:56:53,694 [DEBUG][       Thread-255582][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 12:56:53,694 [DEBUG][       Thread-255582][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 12:56:53,694 [DEBUG][       Thread-255582][   transport.py][1871] : client lang: <none>
2025-06-13 12:56:53,694 [DEBUG][       Thread-255582][   transport.py][1871] : server lang: <none>
2025-06-13 12:56:53,694 [DEBUG][       Thread-255582][   transport.py][1871] : kex follows: False
2025-06-13 12:56:53,694 [DEBUG][       Thread-255582][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 12:56:53,694 [DEBUG][       Thread-255582][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 12:56:53,694 [DEBUG][       Thread-255582][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 12:56:53,694 [DEBUG][       Thread-255582][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 12:56:53,694 [DEBUG][       Thread-255582][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 12:56:53,695 [DEBUG][       Thread-255582][   transport.py][1871] : Compression: none
2025-06-13 12:56:53,695 [DEBUG][       Thread-255582][   transport.py][1871] : === End of kex handshake ===
2025-06-13 12:56:53,754 [DEBUG][       Thread-255582][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 12:56:53,755 [DEBUG][       Thread-255582][   transport.py][1871] : Switch to new keys ...
2025-06-13 12:56:53,755 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 12:56:53,756 [DEBUG][       Thread-255582][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 12:56:53,757 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 12:56:53,812 [DEBUG][       Thread-255582][   transport.py][1871] : userauth is OK
2025-06-13 12:56:53,813 [DEBUG][       Thread-255582][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 12:56:53,813 [DEBUG][       Thread-255582][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 12:56:53,813 [DEBUG][       Thread-255582][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 12:56:53,813 [DEBUG][       Thread-255582][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 12:56:53,831 [ INFO][       Thread-255582][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 12:56:53,832 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 12:56:53,833 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 12:56:54,887 [DEBUG][       Thread-255582][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 12:56:54,887 [DEBUG][       Thread-255582][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 12:56:54,936 [DEBUG][       Thread-255582][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 12:56:54,936 [DEBUG][       Thread-255582][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 12:56:54,945 [DEBUG][       Thread-255582][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 12:56:54,954 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 12:56:54,955 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 12:56:54,963 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 12:56:54,973 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 12:56:54,973 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 12:56:54,973 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 12:56:54,981 [DEBUG][       Thread-255582][   transport.py][1871] : EOF in transport thread
2025-06-13 12:56:57,618 [DEBUG][Thread-255584 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:56:59,257 [DEBUG][Thread-255585 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:57:00,333 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:57:00,334 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:57:04,984 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 12:57:04,984 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 12:57:04,984 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 12:57:04,987 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 12:57:05,471 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 12, 56, 33), 14.33, 36.91, 0.0, 16.89, 12.89, 0, 0, 0, 2, 0, 0),)
2025-06-13 12:57:05,471 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 12:56:33
2025-06-13 12:57:05,552 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 12:57:05,556 [DEBUG][       Thread-255586][   transport.py][1871] : starting thread (client mode): 0x863694b0
2025-06-13 12:57:05,556 [DEBUG][       Thread-255586][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 12:57:05,576 [DEBUG][       Thread-255586][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 12:57:05,576 [ INFO][       Thread-255586][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 12:57:05,579 [DEBUG][       Thread-255586][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 12:57:05,580 [DEBUG][       Thread-255586][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 12:57:05,580 [DEBUG][       Thread-255586][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 12:57:05,580 [DEBUG][       Thread-255586][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:57:05,580 [DEBUG][       Thread-255586][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:57:05,580 [DEBUG][       Thread-255586][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:57:05,580 [DEBUG][       Thread-255586][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:57:05,580 [DEBUG][       Thread-255586][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 12:57:05,580 [DEBUG][       Thread-255586][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 12:57:05,580 [DEBUG][       Thread-255586][   transport.py][1871] : client lang: <none>
2025-06-13 12:57:05,580 [DEBUG][       Thread-255586][   transport.py][1871] : server lang: <none>
2025-06-13 12:57:05,580 [DEBUG][       Thread-255586][   transport.py][1871] : kex follows: False
2025-06-13 12:57:05,580 [DEBUG][       Thread-255586][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 12:57:05,580 [DEBUG][       Thread-255586][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 12:57:05,580 [DEBUG][       Thread-255586][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 12:57:05,580 [DEBUG][       Thread-255586][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 12:57:05,580 [DEBUG][       Thread-255586][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 12:57:05,580 [DEBUG][       Thread-255586][   transport.py][1871] : Compression: none
2025-06-13 12:57:05,580 [DEBUG][       Thread-255586][   transport.py][1871] : === End of kex handshake ===
2025-06-13 12:57:05,597 [DEBUG][       Thread-255586][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 12:57:05,598 [DEBUG][       Thread-255586][   transport.py][1871] : Switch to new keys ...
2025-06-13 12:57:05,598 [DEBUG][       Thread-255586][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 12:57:05,599 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 12:57:05,599 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 12:57:05,600 [DEBUG][       Thread-255586][   transport.py][1871] : userauth is OK
2025-06-13 12:57:05,613 [ INFO][       Thread-255586][   transport.py][1871] : Authentication (password) successful!
2025-06-13 12:57:05,614 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 12:57:06,292 [DEBUG][       Thread-255586][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 12:57:06,292 [DEBUG][       Thread-255586][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 12:57:06,336 [DEBUG][       Thread-255586][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 12:57:06,336 [DEBUG][       Thread-255586][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 12:57:06,339 [DEBUG][       Thread-255586][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 12:57:06,350 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 12:57:06,350 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 12:57:06,352 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 12:57:06,353 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 12:57:06,356 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 12:57:06,357 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 12:57:06,357 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 12:57:06,357 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 12:57:06,357 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.454451 -999.00  +12.40  12.87     43   +0.30 1 1 1 1 1   888    0 14.07 50.76 ----- 14.1 12.9 43.5 17.0 17.1 -28.2 15.8 -29.5 15.6 -28.3 17.0 -27.5
2025-06-13 12:57:06,357 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 12:57:06,357 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 12:57:06,357 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.454451
2025-06-13 12:57:06,357 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 12:57:06,357 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 12:57:06,357 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 12:57:06,358 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 12:57:06,358 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 12:57:06,358 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T12:56:33', tmtdew=14.33, humidity=36.91, cloud=0.0, wind=16.89, temperature=12.89, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T10:54:24.566', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 12:57:06,358 [DEBUG][       Thread-255586][   transport.py][1871] : EOF in transport thread
2025-06-13 12:57:06,432 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 12:57:06,443 [DEBUG][       Thread-255589][   transport.py][1871] : starting thread (client mode): 0x867fd480
2025-06-13 12:57:06,443 [DEBUG][       Thread-255589][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 12:57:06,458 [DEBUG][       Thread-255589][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 12:57:06,458 [ INFO][       Thread-255589][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 12:57:06,465 [DEBUG][       Thread-255589][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 12:57:06,465 [DEBUG][       Thread-255589][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 12:57:06,465 [DEBUG][       Thread-255589][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 12:57:06,465 [DEBUG][       Thread-255589][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:57:06,465 [DEBUG][       Thread-255589][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:57:06,465 [DEBUG][       Thread-255589][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:57:06,465 [DEBUG][       Thread-255589][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:57:06,465 [DEBUG][       Thread-255589][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 12:57:06,465 [DEBUG][       Thread-255589][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 12:57:06,465 [DEBUG][       Thread-255589][   transport.py][1871] : client lang: <none>
2025-06-13 12:57:06,465 [DEBUG][       Thread-255589][   transport.py][1871] : server lang: <none>
2025-06-13 12:57:06,465 [DEBUG][       Thread-255589][   transport.py][1871] : kex follows: False
2025-06-13 12:57:06,465 [DEBUG][       Thread-255589][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 12:57:06,465 [DEBUG][       Thread-255589][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 12:57:06,465 [DEBUG][       Thread-255589][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 12:57:06,466 [DEBUG][       Thread-255589][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 12:57:06,466 [DEBUG][       Thread-255589][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 12:57:06,466 [DEBUG][       Thread-255589][   transport.py][1871] : Compression: none
2025-06-13 12:57:06,466 [DEBUG][       Thread-255589][   transport.py][1871] : === End of kex handshake ===
2025-06-13 12:57:06,524 [DEBUG][       Thread-255589][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 12:57:06,524 [DEBUG][       Thread-255589][   transport.py][1871] : Switch to new keys ...
2025-06-13 12:57:06,525 [DEBUG][       Thread-255589][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 12:57:06,525 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 12:57:06,525 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 12:57:06,582 [DEBUG][       Thread-255589][   transport.py][1871] : userauth is OK
2025-06-13 12:57:06,582 [DEBUG][       Thread-255589][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 12:57:06,582 [DEBUG][       Thread-255589][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 12:57:06,582 [DEBUG][       Thread-255589][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 12:57:06,582 [DEBUG][       Thread-255589][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 12:57:06,596 [ INFO][       Thread-255589][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 12:57:06,597 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 12:57:06,597 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 12:57:06,638 [DEBUG][Thread-255591 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:57:07,655 [DEBUG][       Thread-255589][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 12:57:07,655 [DEBUG][       Thread-255589][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 12:57:07,705 [DEBUG][       Thread-255589][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 12:57:07,705 [DEBUG][       Thread-255589][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 12:57:07,716 [DEBUG][       Thread-255589][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 12:57:07,725 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 12:57:07,726 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 12:57:07,734 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 12:57:07,744 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 12:57:07,744 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 12:57:07,745 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 12:57:07,753 [DEBUG][       Thread-255589][   transport.py][1871] : EOF in transport thread
2025-06-13 12:57:13,634 [DEBUG][Thread-255592 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:57:15,660 [DEBUG][Thread-255593 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:57:17,756 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 12:57:17,756 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 12:57:17,756 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 12:57:17,757 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 12:57:18,253 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 12, 57, 5), 14.46, 36.56, 0.0, 18.12, 12.88, 0, 0, 0, 2, 0, 0),)
2025-06-13 12:57:18,253 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 12:57:05
2025-06-13 12:57:18,339 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 12:57:18,343 [DEBUG][       Thread-255594][   transport.py][1871] : starting thread (client mode): 0x863ca290
2025-06-13 12:57:18,343 [DEBUG][       Thread-255594][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 12:57:18,364 [DEBUG][       Thread-255594][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 12:57:18,364 [ INFO][       Thread-255594][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 12:57:18,367 [DEBUG][       Thread-255594][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 12:57:18,368 [DEBUG][       Thread-255594][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 12:57:18,368 [DEBUG][       Thread-255594][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 12:57:18,368 [DEBUG][       Thread-255594][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:57:18,368 [DEBUG][       Thread-255594][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:57:18,368 [DEBUG][       Thread-255594][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:57:18,368 [DEBUG][       Thread-255594][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:57:18,368 [DEBUG][       Thread-255594][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 12:57:18,368 [DEBUG][       Thread-255594][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 12:57:18,368 [DEBUG][       Thread-255594][   transport.py][1871] : client lang: <none>
2025-06-13 12:57:18,368 [DEBUG][       Thread-255594][   transport.py][1871] : server lang: <none>
2025-06-13 12:57:18,368 [DEBUG][       Thread-255594][   transport.py][1871] : kex follows: False
2025-06-13 12:57:18,368 [DEBUG][       Thread-255594][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 12:57:18,368 [DEBUG][       Thread-255594][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 12:57:18,368 [DEBUG][       Thread-255594][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 12:57:18,368 [DEBUG][       Thread-255594][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 12:57:18,368 [DEBUG][       Thread-255594][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 12:57:18,368 [DEBUG][       Thread-255594][   transport.py][1871] : Compression: none
2025-06-13 12:57:18,368 [DEBUG][       Thread-255594][   transport.py][1871] : === End of kex handshake ===
2025-06-13 12:57:18,384 [DEBUG][       Thread-255594][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 12:57:18,384 [DEBUG][       Thread-255594][   transport.py][1871] : Switch to new keys ...
2025-06-13 12:57:18,385 [DEBUG][       Thread-255594][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 12:57:18,385 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 12:57:18,385 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 12:57:18,385 [DEBUG][       Thread-255594][   transport.py][1871] : userauth is OK
2025-06-13 12:57:18,409 [ INFO][       Thread-255594][   transport.py][1871] : Authentication (password) successful!
2025-06-13 12:57:18,409 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 12:57:19,049 [DEBUG][       Thread-255594][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 12:57:19,049 [DEBUG][       Thread-255594][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 12:57:19,093 [DEBUG][       Thread-255594][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 12:57:19,093 [DEBUG][       Thread-255594][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 12:57:19,095 [DEBUG][       Thread-255594][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 12:57:19,109 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 12:57:19,109 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 12:57:19,110 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 12:57:19,111 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 12:57:19,114 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 12:57:19,115 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 12:57:19,115 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 12:57:19,115 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 12:57:19,115 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.454451 -999.00  +12.40  12.87     43   +0.30 1 1 1 1 1   888    0 14.07 50.76 ----- 14.1 12.9 43.5 17.0 17.1 -28.2 15.8 -29.5 15.6 -28.3 17.0 -27.5
2025-06-13 12:57:19,115 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 12:57:19,115 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 12:57:19,115 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.454451
2025-06-13 12:57:19,116 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 12:57:19,116 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 12:57:19,116 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 12:57:19,116 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 12:57:19,116 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 12:57:19,116 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T12:57:05', tmtdew=14.46, humidity=36.56, cloud=0.0, wind=18.12, temperature=12.88, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T10:54:24.566', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 12:57:19,117 [DEBUG][       Thread-255594][   transport.py][1871] : EOF in transport thread
2025-06-13 12:57:19,189 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 12:57:19,201 [DEBUG][       Thread-255597][   transport.py][1871] : starting thread (client mode): 0x863a5690
2025-06-13 12:57:19,201 [DEBUG][       Thread-255597][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 12:57:19,215 [DEBUG][       Thread-255597][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 12:57:19,215 [ INFO][       Thread-255597][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 12:57:19,223 [DEBUG][       Thread-255597][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 12:57:19,223 [DEBUG][       Thread-255597][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 12:57:19,223 [DEBUG][       Thread-255597][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 12:57:19,223 [DEBUG][       Thread-255597][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:57:19,223 [DEBUG][       Thread-255597][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:57:19,223 [DEBUG][       Thread-255597][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:57:19,223 [DEBUG][       Thread-255597][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:57:19,223 [DEBUG][       Thread-255597][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 12:57:19,223 [DEBUG][       Thread-255597][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 12:57:19,223 [DEBUG][       Thread-255597][   transport.py][1871] : client lang: <none>
2025-06-13 12:57:19,223 [DEBUG][       Thread-255597][   transport.py][1871] : server lang: <none>
2025-06-13 12:57:19,223 [DEBUG][       Thread-255597][   transport.py][1871] : kex follows: False
2025-06-13 12:57:19,223 [DEBUG][       Thread-255597][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 12:57:19,223 [DEBUG][       Thread-255597][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 12:57:19,223 [DEBUG][       Thread-255597][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 12:57:19,223 [DEBUG][       Thread-255597][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 12:57:19,223 [DEBUG][       Thread-255597][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 12:57:19,223 [DEBUG][       Thread-255597][   transport.py][1871] : Compression: none
2025-06-13 12:57:19,223 [DEBUG][       Thread-255597][   transport.py][1871] : === End of kex handshake ===
2025-06-13 12:57:19,284 [DEBUG][       Thread-255597][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 12:57:19,284 [DEBUG][       Thread-255597][   transport.py][1871] : Switch to new keys ...
2025-06-13 12:57:19,285 [DEBUG][       Thread-255597][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 12:57:19,285 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 12:57:19,285 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 12:57:19,343 [DEBUG][       Thread-255597][   transport.py][1871] : userauth is OK
2025-06-13 12:57:19,343 [DEBUG][       Thread-255597][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 12:57:19,343 [DEBUG][       Thread-255597][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 12:57:19,343 [DEBUG][       Thread-255597][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 12:57:19,343 [DEBUG][       Thread-255597][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 12:57:19,358 [ INFO][       Thread-255597][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 12:57:19,358 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 12:57:19,359 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 12:57:20,385 [DEBUG][       Thread-255597][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 12:57:20,385 [DEBUG][       Thread-255597][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 12:57:20,435 [DEBUG][       Thread-255597][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 12:57:20,436 [DEBUG][       Thread-255597][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 12:57:20,445 [DEBUG][       Thread-255597][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 12:57:20,457 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 12:57:20,457 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 12:57:20,465 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 12:57:20,477 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 12:57:20,477 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 12:57:20,477 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 12:57:20,487 [DEBUG][       Thread-255597][   transport.py][1871] : EOF in transport thread
2025-06-13 12:57:24,681 [DEBUG][Thread-255599 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:57:30,487 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 12:57:30,487 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 12:57:30,487 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 12:57:30,490 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 12:57:30,963 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 12, 57, 5), 14.46, 36.56, 0.0, 18.12, 12.88, 0, 0, 0, 2, 0, 0),)
2025-06-13 12:57:30,963 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 12:57:05
2025-06-13 12:57:31,045 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 12:57:31,049 [DEBUG][       Thread-255600][   transport.py][1871] : starting thread (client mode): 0x863c8640
2025-06-13 12:57:31,049 [DEBUG][       Thread-255600][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 12:57:31,071 [DEBUG][       Thread-255600][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 12:57:31,071 [ INFO][       Thread-255600][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 12:57:31,074 [DEBUG][       Thread-255600][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 12:57:31,074 [DEBUG][       Thread-255600][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 12:57:31,074 [DEBUG][       Thread-255600][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 12:57:31,074 [DEBUG][       Thread-255600][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:57:31,074 [DEBUG][       Thread-255600][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:57:31,074 [DEBUG][       Thread-255600][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:57:31,074 [DEBUG][       Thread-255600][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:57:31,074 [DEBUG][       Thread-255600][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 12:57:31,074 [DEBUG][       Thread-255600][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 12:57:31,074 [DEBUG][       Thread-255600][   transport.py][1871] : client lang: <none>
2025-06-13 12:57:31,074 [DEBUG][       Thread-255600][   transport.py][1871] : server lang: <none>
2025-06-13 12:57:31,075 [DEBUG][       Thread-255600][   transport.py][1871] : kex follows: False
2025-06-13 12:57:31,075 [DEBUG][       Thread-255600][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 12:57:31,075 [DEBUG][       Thread-255600][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 12:57:31,075 [DEBUG][       Thread-255600][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 12:57:31,075 [DEBUG][       Thread-255600][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 12:57:31,075 [DEBUG][       Thread-255600][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 12:57:31,075 [DEBUG][       Thread-255600][   transport.py][1871] : Compression: none
2025-06-13 12:57:31,075 [DEBUG][       Thread-255600][   transport.py][1871] : === End of kex handshake ===
2025-06-13 12:57:31,092 [DEBUG][       Thread-255600][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 12:57:31,092 [DEBUG][       Thread-255600][   transport.py][1871] : Switch to new keys ...
2025-06-13 12:57:31,093 [DEBUG][       Thread-255600][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 12:57:31,093 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 12:57:31,093 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 12:57:31,095 [DEBUG][       Thread-255600][   transport.py][1871] : userauth is OK
2025-06-13 12:57:31,120 [ INFO][       Thread-255600][   transport.py][1871] : Authentication (password) successful!
2025-06-13 12:57:31,121 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 12:57:31,742 [DEBUG][       Thread-255600][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 12:57:31,742 [DEBUG][       Thread-255600][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 12:57:31,785 [DEBUG][       Thread-255600][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 12:57:31,785 [DEBUG][       Thread-255600][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 12:57:31,788 [DEBUG][       Thread-255600][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 12:57:31,802 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 12:57:31,803 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 12:57:31,805 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 12:57:31,807 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 12:57:31,813 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 12:57:31,815 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 12:57:31,816 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 12:57:31,816 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 12:57:31,816 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.454451 -999.00  +12.40  12.87     43   +0.30 1 1 1 1 1   888    0 14.07 50.76 ----- 14.1 12.9 43.5 17.0 17.1 -28.2 15.8 -29.5 15.6 -28.3 17.0 -27.5
2025-06-13 12:57:31,817 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 12:57:31,817 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 12:57:31,817 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.454451
2025-06-13 12:57:31,817 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 12:57:31,818 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 12:57:31,818 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 12:57:31,818 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 12:57:31,818 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 12:57:31,818 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T12:57:05', tmtdew=14.46, humidity=36.56, cloud=0.0, wind=18.12, temperature=12.88, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T10:54:24.566', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 12:57:31,818 [DEBUG][       Thread-255600][   transport.py][1871] : EOF in transport thread
2025-06-13 12:57:31,902 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 12:57:31,911 [DEBUG][       Thread-255603][   transport.py][1871] : starting thread (client mode): 0x868c8070
2025-06-13 12:57:31,911 [DEBUG][       Thread-255603][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 12:57:31,927 [DEBUG][       Thread-255603][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 12:57:31,927 [ INFO][       Thread-255603][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 12:57:31,937 [DEBUG][       Thread-255603][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 12:57:31,938 [DEBUG][       Thread-255603][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 12:57:31,938 [DEBUG][       Thread-255603][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 12:57:31,938 [DEBUG][       Thread-255603][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:57:31,938 [DEBUG][       Thread-255603][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:57:31,938 [DEBUG][       Thread-255603][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:57:31,938 [DEBUG][       Thread-255603][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:57:31,938 [DEBUG][       Thread-255603][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 12:57:31,938 [DEBUG][       Thread-255603][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 12:57:31,938 [DEBUG][       Thread-255603][   transport.py][1871] : client lang: <none>
2025-06-13 12:57:31,938 [DEBUG][       Thread-255603][   transport.py][1871] : server lang: <none>
2025-06-13 12:57:31,938 [DEBUG][       Thread-255603][   transport.py][1871] : kex follows: False
2025-06-13 12:57:31,938 [DEBUG][       Thread-255603][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 12:57:31,938 [DEBUG][       Thread-255603][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 12:57:31,938 [DEBUG][       Thread-255603][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 12:57:31,938 [DEBUG][       Thread-255603][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 12:57:31,938 [DEBUG][       Thread-255603][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 12:57:31,938 [DEBUG][       Thread-255603][   transport.py][1871] : Compression: none
2025-06-13 12:57:31,939 [DEBUG][       Thread-255603][   transport.py][1871] : === End of kex handshake ===
2025-06-13 12:57:31,994 [DEBUG][       Thread-255603][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 12:57:31,995 [DEBUG][       Thread-255603][   transport.py][1871] : Switch to new keys ...
2025-06-13 12:57:31,995 [DEBUG][       Thread-255603][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 12:57:31,996 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 12:57:31,997 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 12:57:32,050 [DEBUG][       Thread-255603][   transport.py][1871] : userauth is OK
2025-06-13 12:57:32,050 [DEBUG][       Thread-255603][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 12:57:32,051 [DEBUG][       Thread-255603][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 12:57:32,051 [DEBUG][       Thread-255603][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 12:57:32,051 [DEBUG][       Thread-255603][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 12:57:32,070 [ INFO][       Thread-255603][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 12:57:32,070 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 12:57:32,071 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 12:57:33,108 [DEBUG][       Thread-255603][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 12:57:33,108 [DEBUG][       Thread-255603][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 12:57:33,156 [DEBUG][       Thread-255603][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 12:57:33,157 [DEBUG][       Thread-255603][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 12:57:33,166 [DEBUG][       Thread-255603][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 12:57:33,175 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 12:57:33,175 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 12:57:33,195 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 12:57:33,205 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 12:57:33,205 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 12:57:33,206 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 12:57:33,214 [DEBUG][       Thread-255603][   transport.py][1871] : EOF in transport thread
2025-06-13 12:57:33,718 [DEBUG][Thread-255605 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:57:42,739 [DEBUG][Thread-255606 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:57:43,209 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 12:57:43,210 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 12:57:43,210 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 12:57:43,213 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 12:57:43,684 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 12, 57, 37), 14.3, 37.14, 0.0, 15.6, 12.7, 0, 0, 0, 2, 0, 0),)
2025-06-13 12:57:43,685 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 12:57:37
2025-06-13 12:57:43,767 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 12:57:43,771 [DEBUG][       Thread-255607][   transport.py][1871] : starting thread (client mode): 0x863c8af0
2025-06-13 12:57:43,771 [DEBUG][       Thread-255607][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 12:57:43,791 [DEBUG][       Thread-255607][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 12:57:43,791 [ INFO][       Thread-255607][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 12:57:43,796 [DEBUG][       Thread-255607][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 12:57:43,796 [DEBUG][       Thread-255607][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 12:57:43,796 [DEBUG][       Thread-255607][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 12:57:43,796 [DEBUG][       Thread-255607][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:57:43,796 [DEBUG][       Thread-255607][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:57:43,796 [DEBUG][       Thread-255607][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:57:43,796 [DEBUG][       Thread-255607][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:57:43,796 [DEBUG][       Thread-255607][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 12:57:43,796 [DEBUG][       Thread-255607][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 12:57:43,796 [DEBUG][       Thread-255607][   transport.py][1871] : client lang: <none>
2025-06-13 12:57:43,796 [DEBUG][       Thread-255607][   transport.py][1871] : server lang: <none>
2025-06-13 12:57:43,796 [DEBUG][       Thread-255607][   transport.py][1871] : kex follows: False
2025-06-13 12:57:43,796 [DEBUG][       Thread-255607][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 12:57:43,796 [DEBUG][       Thread-255607][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 12:57:43,796 [DEBUG][       Thread-255607][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 12:57:43,796 [DEBUG][       Thread-255607][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 12:57:43,796 [DEBUG][       Thread-255607][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 12:57:43,796 [DEBUG][       Thread-255607][   transport.py][1871] : Compression: none
2025-06-13 12:57:43,796 [DEBUG][       Thread-255607][   transport.py][1871] : === End of kex handshake ===
2025-06-13 12:57:43,814 [DEBUG][       Thread-255607][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 12:57:43,814 [DEBUG][       Thread-255607][   transport.py][1871] : Switch to new keys ...
2025-06-13 12:57:43,815 [DEBUG][       Thread-255607][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 12:57:43,815 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 12:57:43,815 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 12:57:43,815 [DEBUG][       Thread-255607][   transport.py][1871] : userauth is OK
2025-06-13 12:57:43,828 [ INFO][       Thread-255607][   transport.py][1871] : Authentication (password) successful!
2025-06-13 12:57:43,829 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 12:57:44,455 [DEBUG][       Thread-255607][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 12:57:44,456 [DEBUG][       Thread-255607][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 12:57:44,497 [DEBUG][       Thread-255607][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 12:57:44,497 [DEBUG][       Thread-255607][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 12:57:44,500 [DEBUG][       Thread-255607][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 12:57:44,514 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 12:57:44,514 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 12:57:44,516 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 12:57:44,517 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 12:57:44,523 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 12:57:44,525 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 12:57:44,525 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 12:57:44,525 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 12:57:44,525 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.454451 -999.00  +12.40  12.87     43   +0.30 1 1 1 1 1   888    0 14.07 50.76 ----- 14.1 12.9 43.5 17.0 17.1 -28.2 15.8 -29.5 15.6 -28.3 17.0 -27.5
2025-06-13 12:57:44,526 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 12:57:44,526 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 12:57:44,526 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.454451
2025-06-13 12:57:44,526 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 12:57:44,527 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 12:57:44,527 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 12:57:44,527 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 12:57:44,527 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 12:57:44,527 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T12:57:37', tmtdew=14.3, humidity=37.14, cloud=0.0, wind=15.6, temperature=12.7, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T10:54:24.566', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 12:57:44,527 [DEBUG][       Thread-255607][   transport.py][1871] : EOF in transport thread
2025-06-13 12:57:44,610 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 12:57:44,621 [DEBUG][       Thread-255610][   transport.py][1871] : starting thread (client mode): 0x863ed030
2025-06-13 12:57:44,621 [DEBUG][       Thread-255610][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 12:57:44,636 [DEBUG][       Thread-255610][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 12:57:44,637 [ INFO][       Thread-255610][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 12:57:44,644 [DEBUG][       Thread-255610][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 12:57:44,644 [DEBUG][       Thread-255610][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 12:57:44,644 [DEBUG][       Thread-255610][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 12:57:44,645 [DEBUG][       Thread-255610][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:57:44,645 [DEBUG][       Thread-255610][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:57:44,645 [DEBUG][       Thread-255610][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:57:44,645 [DEBUG][       Thread-255610][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:57:44,645 [DEBUG][       Thread-255610][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 12:57:44,645 [DEBUG][       Thread-255610][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 12:57:44,645 [DEBUG][       Thread-255610][   transport.py][1871] : client lang: <none>
2025-06-13 12:57:44,645 [DEBUG][       Thread-255610][   transport.py][1871] : server lang: <none>
2025-06-13 12:57:44,645 [DEBUG][       Thread-255610][   transport.py][1871] : kex follows: False
2025-06-13 12:57:44,645 [DEBUG][       Thread-255610][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 12:57:44,645 [DEBUG][       Thread-255610][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 12:57:44,645 [DEBUG][       Thread-255610][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 12:57:44,645 [DEBUG][       Thread-255610][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 12:57:44,645 [DEBUG][       Thread-255610][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 12:57:44,645 [DEBUG][       Thread-255610][   transport.py][1871] : Compression: none
2025-06-13 12:57:44,645 [DEBUG][       Thread-255610][   transport.py][1871] : === End of kex handshake ===
2025-06-13 12:57:44,701 [DEBUG][       Thread-255610][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 12:57:44,701 [DEBUG][       Thread-255610][   transport.py][1871] : Switch to new keys ...
2025-06-13 12:57:44,702 [DEBUG][       Thread-255610][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 12:57:44,702 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 12:57:44,702 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 12:57:44,757 [DEBUG][       Thread-255610][   transport.py][1871] : userauth is OK
2025-06-13 12:57:44,757 [DEBUG][       Thread-255610][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 12:57:44,758 [DEBUG][       Thread-255610][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 12:57:44,758 [DEBUG][       Thread-255610][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 12:57:44,758 [DEBUG][       Thread-255610][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 12:57:44,776 [ INFO][       Thread-255610][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 12:57:44,776 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 12:57:44,776 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 12:57:45,827 [DEBUG][       Thread-255610][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 12:57:45,827 [DEBUG][       Thread-255610][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 12:57:45,875 [DEBUG][       Thread-255610][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 12:57:45,876 [DEBUG][       Thread-255610][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 12:57:45,884 [DEBUG][       Thread-255610][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 12:57:45,893 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 12:57:45,893 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 12:57:45,901 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 12:57:45,910 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 12:57:45,910 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 12:57:45,911 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 12:57:45,918 [DEBUG][       Thread-255610][   transport.py][1871] : EOF in transport thread
2025-06-13 12:57:47,978 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:57:47,979 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:57:51,759 [DEBUG][Thread-255612 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:57:55,920 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 12:57:55,920 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 12:57:55,920 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 12:57:55,920 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 12:57:56,424 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 12, 57, 37), 14.3, 37.14, 0.0, 15.6, 12.7, 0, 0, 0, 2, 0, 0),)
2025-06-13 12:57:56,424 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 12:57:37
2025-06-13 12:57:56,508 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 12:57:56,512 [DEBUG][       Thread-255613][   transport.py][1871] : starting thread (client mode): 0x863695a0
2025-06-13 12:57:56,512 [DEBUG][       Thread-255613][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 12:57:56,525 [DEBUG][       Thread-255613][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 12:57:56,525 [ INFO][       Thread-255613][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 12:57:56,529 [DEBUG][       Thread-255613][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 12:57:56,529 [DEBUG][       Thread-255613][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 12:57:56,529 [DEBUG][       Thread-255613][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 12:57:56,529 [DEBUG][       Thread-255613][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:57:56,529 [DEBUG][       Thread-255613][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:57:56,529 [DEBUG][       Thread-255613][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:57:56,529 [DEBUG][       Thread-255613][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:57:56,529 [DEBUG][       Thread-255613][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 12:57:56,529 [DEBUG][       Thread-255613][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 12:57:56,529 [DEBUG][       Thread-255613][   transport.py][1871] : client lang: <none>
2025-06-13 12:57:56,529 [DEBUG][       Thread-255613][   transport.py][1871] : server lang: <none>
2025-06-13 12:57:56,529 [DEBUG][       Thread-255613][   transport.py][1871] : kex follows: False
2025-06-13 12:57:56,529 [DEBUG][       Thread-255613][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 12:57:56,529 [DEBUG][       Thread-255613][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 12:57:56,529 [DEBUG][       Thread-255613][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 12:57:56,529 [DEBUG][       Thread-255613][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 12:57:56,529 [DEBUG][       Thread-255613][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 12:57:56,529 [DEBUG][       Thread-255613][   transport.py][1871] : Compression: none
2025-06-13 12:57:56,529 [DEBUG][       Thread-255613][   transport.py][1871] : === End of kex handshake ===
2025-06-13 12:57:56,544 [DEBUG][       Thread-255613][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 12:57:56,544 [DEBUG][       Thread-255613][   transport.py][1871] : Switch to new keys ...
2025-06-13 12:57:56,544 [DEBUG][       Thread-255613][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 12:57:56,544 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 12:57:56,544 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 12:57:56,545 [DEBUG][       Thread-255613][   transport.py][1871] : userauth is OK
2025-06-13 12:57:56,557 [ INFO][       Thread-255613][   transport.py][1871] : Authentication (password) successful!
2025-06-13 12:57:56,558 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 12:57:57,181 [DEBUG][       Thread-255613][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 12:57:57,181 [DEBUG][       Thread-255613][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 12:57:57,224 [DEBUG][       Thread-255613][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 12:57:57,224 [DEBUG][       Thread-255613][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 12:57:57,227 [DEBUG][       Thread-255613][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 12:57:57,238 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 12:57:57,238 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 12:57:57,239 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 12:57:57,240 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 12:57:57,242 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 12:57:57,243 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 12:57:57,243 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 12:57:57,243 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 12:57:57,243 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.454451 -999.00  +12.40  12.87     43   +0.30 1 1 1 1 1   888    0 14.07 50.76 ----- 14.1 12.9 43.5 17.0 17.1 -28.2 15.8 -29.5 15.6 -28.3 17.0 -27.5
2025-06-13 12:57:57,243 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 12:57:57,243 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 12:57:57,243 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.454451
2025-06-13 12:57:57,243 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 12:57:57,243 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 12:57:57,244 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 12:57:57,244 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 12:57:57,244 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 12:57:57,244 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T12:57:37', tmtdew=14.3, humidity=37.14, cloud=0.0, wind=15.6, temperature=12.7, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T10:54:24.566', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 12:57:57,244 [DEBUG][       Thread-255613][   transport.py][1871] : EOF in transport thread
2025-06-13 12:57:57,317 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 12:57:57,326 [DEBUG][       Thread-255616][   transport.py][1871] : starting thread (client mode): 0x867fefb0
2025-06-13 12:57:57,327 [DEBUG][       Thread-255616][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 12:57:57,342 [DEBUG][       Thread-255616][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 12:57:57,342 [ INFO][       Thread-255616][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 12:57:57,349 [DEBUG][       Thread-255616][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 12:57:57,349 [DEBUG][       Thread-255616][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 12:57:57,349 [DEBUG][       Thread-255616][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 12:57:57,349 [DEBUG][       Thread-255616][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:57:57,349 [DEBUG][       Thread-255616][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:57:57,350 [DEBUG][       Thread-255616][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:57:57,350 [DEBUG][       Thread-255616][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:57:57,350 [DEBUG][       Thread-255616][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 12:57:57,350 [DEBUG][       Thread-255616][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 12:57:57,350 [DEBUG][       Thread-255616][   transport.py][1871] : client lang: <none>
2025-06-13 12:57:57,350 [DEBUG][       Thread-255616][   transport.py][1871] : server lang: <none>
2025-06-13 12:57:57,350 [DEBUG][       Thread-255616][   transport.py][1871] : kex follows: False
2025-06-13 12:57:57,350 [DEBUG][       Thread-255616][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 12:57:57,350 [DEBUG][       Thread-255616][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 12:57:57,350 [DEBUG][       Thread-255616][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 12:57:57,350 [DEBUG][       Thread-255616][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 12:57:57,350 [DEBUG][       Thread-255616][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 12:57:57,350 [DEBUG][       Thread-255616][   transport.py][1871] : Compression: none
2025-06-13 12:57:57,350 [DEBUG][       Thread-255616][   transport.py][1871] : === End of kex handshake ===
2025-06-13 12:57:57,404 [DEBUG][       Thread-255616][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 12:57:57,404 [DEBUG][       Thread-255616][   transport.py][1871] : Switch to new keys ...
2025-06-13 12:57:57,404 [DEBUG][       Thread-255616][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 12:57:57,404 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 12:57:57,404 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 12:57:57,461 [DEBUG][       Thread-255616][   transport.py][1871] : userauth is OK
2025-06-13 12:57:57,461 [DEBUG][       Thread-255616][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 12:57:57,461 [DEBUG][       Thread-255616][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 12:57:57,461 [DEBUG][       Thread-255616][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 12:57:57,461 [DEBUG][       Thread-255616][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 12:57:57,475 [ INFO][       Thread-255616][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 12:57:57,475 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 12:57:57,475 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 12:57:58,517 [DEBUG][       Thread-255616][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 12:57:58,517 [DEBUG][       Thread-255616][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 12:57:58,567 [DEBUG][       Thread-255616][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 12:57:58,567 [DEBUG][       Thread-255616][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 12:57:58,576 [DEBUG][       Thread-255616][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 12:57:58,584 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 12:57:58,584 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 12:57:58,591 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 12:57:58,599 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 12:57:58,599 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 12:57:58,600 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 12:57:58,607 [DEBUG][       Thread-255616][   transport.py][1871] : EOF in transport thread
2025-06-13 12:58:00,361 [DEBUG][Thread-255618 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:58:00,789 [DEBUG][Thread-255619 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:58:01,410 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:58:01,412 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:58:08,608 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 12:58:08,608 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 12:58:08,608 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 12:58:08,609 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 12:58:09,076 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 12, 57, 37), 14.3, 37.14, 0.0, 15.6, 12.7, 0, 0, 0, 2, 0, 0),)
2025-06-13 12:58:09,076 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 12:57:37
2025-06-13 12:58:09,157 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 12:58:09,164 [DEBUG][       Thread-255620][   transport.py][1871] : starting thread (client mode): 0x86352110
2025-06-13 12:58:09,164 [DEBUG][       Thread-255620][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 12:58:09,186 [DEBUG][       Thread-255620][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 12:58:09,186 [ INFO][       Thread-255620][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 12:58:09,189 [DEBUG][       Thread-255620][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 12:58:09,190 [DEBUG][       Thread-255620][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 12:58:09,190 [DEBUG][       Thread-255620][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 12:58:09,190 [DEBUG][       Thread-255620][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:58:09,190 [DEBUG][       Thread-255620][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:58:09,190 [DEBUG][       Thread-255620][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:58:09,190 [DEBUG][       Thread-255620][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:58:09,190 [DEBUG][       Thread-255620][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 12:58:09,190 [DEBUG][       Thread-255620][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 12:58:09,190 [DEBUG][       Thread-255620][   transport.py][1871] : client lang: <none>
2025-06-13 12:58:09,190 [DEBUG][       Thread-255620][   transport.py][1871] : server lang: <none>
2025-06-13 12:58:09,190 [DEBUG][       Thread-255620][   transport.py][1871] : kex follows: False
2025-06-13 12:58:09,190 [DEBUG][       Thread-255620][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 12:58:09,190 [DEBUG][       Thread-255620][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 12:58:09,190 [DEBUG][       Thread-255620][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 12:58:09,190 [DEBUG][       Thread-255620][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 12:58:09,190 [DEBUG][       Thread-255620][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 12:58:09,190 [DEBUG][       Thread-255620][   transport.py][1871] : Compression: none
2025-06-13 12:58:09,190 [DEBUG][       Thread-255620][   transport.py][1871] : === End of kex handshake ===
2025-06-13 12:58:09,207 [DEBUG][       Thread-255620][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 12:58:09,207 [DEBUG][       Thread-255620][   transport.py][1871] : Switch to new keys ...
2025-06-13 12:58:09,208 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 12:58:09,208 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 12:58:09,209 [DEBUG][       Thread-255620][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 12:58:09,209 [DEBUG][       Thread-255620][   transport.py][1871] : userauth is OK
2025-06-13 12:58:09,222 [ INFO][       Thread-255620][   transport.py][1871] : Authentication (password) successful!
2025-06-13 12:58:09,223 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 12:58:09,810 [DEBUG][Thread-255622 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:58:09,857 [DEBUG][       Thread-255620][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 12:58:09,857 [DEBUG][       Thread-255620][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 12:58:09,900 [DEBUG][       Thread-255620][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 12:58:09,901 [DEBUG][       Thread-255620][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 12:58:09,903 [DEBUG][       Thread-255620][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 12:58:09,917 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 12:58:09,917 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 12:58:09,918 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 12:58:09,918 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 12:58:09,921 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 12:58:09,921 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 12:58:09,921 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 12:58:09,921 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 12:58:09,921 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.454451 -999.00  +12.40  12.87     43   +0.30 1 1 1 1 1   888    0 14.07 50.76 ----- 14.1 12.9 43.5 17.0 17.1 -28.2 15.8 -29.5 15.6 -28.3 17.0 -27.5
2025-06-13 12:58:09,921 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 12:58:09,921 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 12:58:09,921 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.454451
2025-06-13 12:58:09,922 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 12:58:09,922 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 12:58:09,922 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 12:58:09,922 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 12:58:09,922 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 12:58:09,922 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T12:57:37', tmtdew=14.3, humidity=37.14, cloud=0.0, wind=15.6, temperature=12.7, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T10:54:24.566', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 12:58:09,922 [DEBUG][       Thread-255620][   transport.py][1871] : EOF in transport thread
2025-06-13 12:58:09,996 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 12:58:10,008 [DEBUG][       Thread-255624][   transport.py][1871] : starting thread (client mode): 0x86893820
2025-06-13 12:58:10,008 [DEBUG][       Thread-255624][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 12:58:10,025 [DEBUG][       Thread-255624][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 12:58:10,025 [ INFO][       Thread-255624][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 12:58:10,033 [DEBUG][       Thread-255624][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 12:58:10,033 [DEBUG][       Thread-255624][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 12:58:10,033 [DEBUG][       Thread-255624][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 12:58:10,033 [DEBUG][       Thread-255624][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:58:10,033 [DEBUG][       Thread-255624][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:58:10,033 [DEBUG][       Thread-255624][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:58:10,033 [DEBUG][       Thread-255624][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:58:10,033 [DEBUG][       Thread-255624][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 12:58:10,033 [DEBUG][       Thread-255624][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 12:58:10,033 [DEBUG][       Thread-255624][   transport.py][1871] : client lang: <none>
2025-06-13 12:58:10,033 [DEBUG][       Thread-255624][   transport.py][1871] : server lang: <none>
2025-06-13 12:58:10,033 [DEBUG][       Thread-255624][   transport.py][1871] : kex follows: False
2025-06-13 12:58:10,033 [DEBUG][       Thread-255624][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 12:58:10,033 [DEBUG][       Thread-255624][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 12:58:10,033 [DEBUG][       Thread-255624][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 12:58:10,033 [DEBUG][       Thread-255624][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 12:58:10,033 [DEBUG][       Thread-255624][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 12:58:10,033 [DEBUG][       Thread-255624][   transport.py][1871] : Compression: none
2025-06-13 12:58:10,033 [DEBUG][       Thread-255624][   transport.py][1871] : === End of kex handshake ===
2025-06-13 12:58:10,088 [DEBUG][       Thread-255624][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 12:58:10,088 [DEBUG][       Thread-255624][   transport.py][1871] : Switch to new keys ...
2025-06-13 12:58:10,088 [DEBUG][       Thread-255624][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 12:58:10,088 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 12:58:10,088 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 12:58:10,145 [DEBUG][       Thread-255624][   transport.py][1871] : userauth is OK
2025-06-13 12:58:10,145 [DEBUG][       Thread-255624][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 12:58:10,145 [DEBUG][       Thread-255624][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 12:58:10,145 [DEBUG][       Thread-255624][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 12:58:10,145 [DEBUG][       Thread-255624][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 12:58:10,159 [ INFO][       Thread-255624][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 12:58:10,159 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 12:58:10,159 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 12:58:11,180 [DEBUG][       Thread-255624][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 12:58:11,180 [DEBUG][       Thread-255624][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 12:58:11,228 [DEBUG][       Thread-255624][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 12:58:11,228 [DEBUG][       Thread-255624][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 12:58:11,237 [DEBUG][       Thread-255624][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 12:58:11,247 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 12:58:11,247 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 12:58:11,256 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 12:58:11,266 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 12:58:11,266 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 12:58:11,267 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 12:58:11,275 [DEBUG][       Thread-255624][   transport.py][1871] : EOF in transport thread
2025-06-13 12:58:13,688 [DEBUG][Thread-255626 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:58:18,830 [DEBUG][Thread-255627 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:58:21,275 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 12:58:21,275 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 12:58:21,275 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 12:58:21,278 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 12:58:21,752 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 12, 58, 8), 13.94, 38.05, 0.0, 9.71, 12.71, 0, 0, 0, 2, 0, 0),)
2025-06-13 12:58:21,752 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 12:58:08
2025-06-13 12:58:21,833 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 12:58:21,838 [DEBUG][       Thread-255628][   transport.py][1871] : starting thread (client mode): 0x86350e20
2025-06-13 12:58:21,838 [DEBUG][       Thread-255628][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 12:58:21,860 [DEBUG][       Thread-255628][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 12:58:21,860 [ INFO][       Thread-255628][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 12:58:21,864 [DEBUG][       Thread-255628][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 12:58:21,864 [DEBUG][       Thread-255628][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 12:58:21,864 [DEBUG][       Thread-255628][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 12:58:21,864 [DEBUG][       Thread-255628][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:58:21,864 [DEBUG][       Thread-255628][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:58:21,864 [DEBUG][       Thread-255628][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:58:21,864 [DEBUG][       Thread-255628][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:58:21,864 [DEBUG][       Thread-255628][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 12:58:21,864 [DEBUG][       Thread-255628][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 12:58:21,864 [DEBUG][       Thread-255628][   transport.py][1871] : client lang: <none>
2025-06-13 12:58:21,864 [DEBUG][       Thread-255628][   transport.py][1871] : server lang: <none>
2025-06-13 12:58:21,864 [DEBUG][       Thread-255628][   transport.py][1871] : kex follows: False
2025-06-13 12:58:21,864 [DEBUG][       Thread-255628][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 12:58:21,864 [DEBUG][       Thread-255628][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 12:58:21,864 [DEBUG][       Thread-255628][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 12:58:21,864 [DEBUG][       Thread-255628][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 12:58:21,864 [DEBUG][       Thread-255628][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 12:58:21,864 [DEBUG][       Thread-255628][   transport.py][1871] : Compression: none
2025-06-13 12:58:21,864 [DEBUG][       Thread-255628][   transport.py][1871] : === End of kex handshake ===
2025-06-13 12:58:21,881 [DEBUG][       Thread-255628][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 12:58:21,881 [DEBUG][       Thread-255628][   transport.py][1871] : Switch to new keys ...
2025-06-13 12:58:21,882 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 12:58:21,882 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 12:58:21,882 [DEBUG][       Thread-255628][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 12:58:21,883 [DEBUG][       Thread-255628][   transport.py][1871] : userauth is OK
2025-06-13 12:58:21,908 [ INFO][       Thread-255628][   transport.py][1871] : Authentication (password) successful!
2025-06-13 12:58:21,909 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 12:58:22,555 [DEBUG][       Thread-255628][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 12:58:22,556 [DEBUG][       Thread-255628][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 12:58:22,597 [DEBUG][       Thread-255628][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 12:58:22,597 [DEBUG][       Thread-255628][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 12:58:22,601 [DEBUG][       Thread-255628][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 12:58:22,612 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 12:58:22,613 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 12:58:22,615 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 12:58:22,617 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 12:58:22,623 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 12:58:22,625 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 12:58:22,625 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 12:58:22,626 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 12:58:22,626 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.454451 -999.00  +12.40  12.87     43   +0.30 1 1 1 1 1   888    0 14.07 50.76 ----- 14.1 12.9 43.5 17.0 17.1 -28.2 15.8 -29.5 15.6 -28.3 17.0 -27.5
2025-06-13 12:58:22,626 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 12:58:22,626 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 12:58:22,626 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.454451
2025-06-13 12:58:22,626 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 12:58:22,627 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 12:58:22,627 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 12:58:22,627 [DEBUG][       Thread-255628][   transport.py][1871] : EOF in transport thread
2025-06-13 12:58:22,627 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 12:58:22,628 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 12:58:22,628 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T12:58:08', tmtdew=13.94, humidity=38.05, cloud=0.0, wind=9.71, temperature=12.71, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T10:54:24.566', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 12:58:22,711 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 12:58:22,724 [DEBUG][       Thread-255631][   transport.py][1871] : starting thread (client mode): 0x84206e30
2025-06-13 12:58:22,725 [DEBUG][       Thread-255631][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 12:58:22,744 [DEBUG][       Thread-255631][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 12:58:22,744 [ INFO][       Thread-255631][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 12:58:22,755 [DEBUG][       Thread-255631][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 12:58:22,755 [DEBUG][       Thread-255631][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 12:58:22,755 [DEBUG][       Thread-255631][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 12:58:22,756 [DEBUG][       Thread-255631][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:58:22,756 [DEBUG][       Thread-255631][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:58:22,756 [DEBUG][       Thread-255631][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:58:22,756 [DEBUG][       Thread-255631][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:58:22,756 [DEBUG][       Thread-255631][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 12:58:22,756 [DEBUG][       Thread-255631][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 12:58:22,756 [DEBUG][       Thread-255631][   transport.py][1871] : client lang: <none>
2025-06-13 12:58:22,756 [DEBUG][       Thread-255631][   transport.py][1871] : server lang: <none>
2025-06-13 12:58:22,756 [DEBUG][       Thread-255631][   transport.py][1871] : kex follows: False
2025-06-13 12:58:22,756 [DEBUG][       Thread-255631][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 12:58:22,756 [DEBUG][       Thread-255631][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 12:58:22,756 [DEBUG][       Thread-255631][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 12:58:22,756 [DEBUG][       Thread-255631][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 12:58:22,756 [DEBUG][       Thread-255631][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 12:58:22,756 [DEBUG][       Thread-255631][   transport.py][1871] : Compression: none
2025-06-13 12:58:22,756 [DEBUG][       Thread-255631][   transport.py][1871] : === End of kex handshake ===
2025-06-13 12:58:22,814 [DEBUG][       Thread-255631][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 12:58:22,814 [DEBUG][       Thread-255631][   transport.py][1871] : Switch to new keys ...
2025-06-13 12:58:22,815 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 12:58:22,815 [DEBUG][       Thread-255631][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 12:58:22,816 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 12:58:22,870 [DEBUG][       Thread-255631][   transport.py][1871] : userauth is OK
2025-06-13 12:58:22,871 [DEBUG][       Thread-255631][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 12:58:22,871 [DEBUG][       Thread-255631][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 12:58:22,871 [DEBUG][       Thread-255631][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 12:58:22,871 [DEBUG][       Thread-255631][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 12:58:22,889 [ INFO][       Thread-255631][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 12:58:22,890 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 12:58:22,890 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 12:58:23,915 [DEBUG][       Thread-255631][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 12:58:23,915 [DEBUG][       Thread-255631][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 12:58:23,964 [DEBUG][       Thread-255631][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 12:58:23,964 [DEBUG][       Thread-255631][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 12:58:23,973 [DEBUG][       Thread-255631][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 12:58:23,982 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 12:58:23,982 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 12:58:23,991 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 12:58:24,000 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 12:58:24,000 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 12:58:24,001 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 12:58:24,012 [DEBUG][       Thread-255631][   transport.py][1871] : EOF in transport thread
2025-06-13 12:58:27,851 [DEBUG][Thread-255633 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:58:34,004 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 12:58:34,004 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 12:58:34,004 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 12:58:34,005 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 12:58:34,495 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 12, 58, 8), 13.94, 38.05, 0.0, 9.71, 12.71, 0, 0, 0, 2, 0, 0),)
2025-06-13 12:58:34,495 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 12:58:08
2025-06-13 12:58:34,582 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 12:58:34,586 [DEBUG][       Thread-255634][   transport.py][1871] : starting thread (client mode): 0x84205e70
2025-06-13 12:58:34,586 [DEBUG][       Thread-255634][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 12:58:34,606 [DEBUG][       Thread-255634][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 12:58:34,607 [ INFO][       Thread-255634][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 12:58:34,610 [DEBUG][       Thread-255634][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 12:58:34,610 [DEBUG][       Thread-255634][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 12:58:34,610 [DEBUG][       Thread-255634][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 12:58:34,610 [DEBUG][       Thread-255634][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:58:34,610 [DEBUG][       Thread-255634][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:58:34,610 [DEBUG][       Thread-255634][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:58:34,610 [DEBUG][       Thread-255634][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:58:34,610 [DEBUG][       Thread-255634][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 12:58:34,610 [DEBUG][       Thread-255634][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 12:58:34,610 [DEBUG][       Thread-255634][   transport.py][1871] : client lang: <none>
2025-06-13 12:58:34,610 [DEBUG][       Thread-255634][   transport.py][1871] : server lang: <none>
2025-06-13 12:58:34,610 [DEBUG][       Thread-255634][   transport.py][1871] : kex follows: False
2025-06-13 12:58:34,610 [DEBUG][       Thread-255634][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 12:58:34,610 [DEBUG][       Thread-255634][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 12:58:34,610 [DEBUG][       Thread-255634][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 12:58:34,610 [DEBUG][       Thread-255634][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 12:58:34,610 [DEBUG][       Thread-255634][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 12:58:34,610 [DEBUG][       Thread-255634][   transport.py][1871] : Compression: none
2025-06-13 12:58:34,610 [DEBUG][       Thread-255634][   transport.py][1871] : === End of kex handshake ===
2025-06-13 12:58:34,625 [DEBUG][       Thread-255634][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 12:58:34,625 [DEBUG][       Thread-255634][   transport.py][1871] : Switch to new keys ...
2025-06-13 12:58:34,625 [DEBUG][       Thread-255634][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 12:58:34,625 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 12:58:34,625 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 12:58:34,626 [DEBUG][       Thread-255634][   transport.py][1871] : userauth is OK
2025-06-13 12:58:34,638 [ INFO][       Thread-255634][   transport.py][1871] : Authentication (password) successful!
2025-06-13 12:58:34,639 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 12:58:35,244 [DEBUG][       Thread-255634][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 12:58:35,245 [DEBUG][       Thread-255634][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 12:58:35,288 [DEBUG][       Thread-255634][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 12:58:35,289 [DEBUG][       Thread-255634][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 12:58:35,290 [DEBUG][       Thread-255634][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 12:58:35,302 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 12:58:35,302 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 12:58:35,303 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 12:58:35,305 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 12:58:35,307 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 12:58:35,308 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 12:58:35,308 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 12:58:35,309 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 12:58:35,309 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.454451 -999.00  +12.40  12.87     43   +0.30 1 1 1 1 1   888    0 14.07 50.76 ----- 14.1 12.9 43.5 17.0 17.1 -28.2 15.8 -29.5 15.6 -28.3 17.0 -27.5
2025-06-13 12:58:35,309 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 12:58:35,309 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 12:58:35,309 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.454451
2025-06-13 12:58:35,309 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 12:58:35,309 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 12:58:35,309 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 12:58:35,309 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 12:58:35,309 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 12:58:35,309 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T12:58:08', tmtdew=13.94, humidity=38.05, cloud=0.0, wind=9.71, temperature=12.71, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T10:54:24.566', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 12:58:35,309 [DEBUG][       Thread-255634][   transport.py][1871] : EOF in transport thread
2025-06-13 12:58:35,384 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 12:58:35,395 [DEBUG][       Thread-255637][   transport.py][1871] : starting thread (client mode): 0x863be0b0
2025-06-13 12:58:35,395 [DEBUG][       Thread-255637][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 12:58:35,410 [DEBUG][       Thread-255637][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 12:58:35,410 [ INFO][       Thread-255637][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 12:58:35,418 [DEBUG][       Thread-255637][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 12:58:35,418 [DEBUG][       Thread-255637][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 12:58:35,418 [DEBUG][       Thread-255637][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 12:58:35,418 [DEBUG][       Thread-255637][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:58:35,418 [DEBUG][       Thread-255637][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:58:35,418 [DEBUG][       Thread-255637][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:58:35,418 [DEBUG][       Thread-255637][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:58:35,418 [DEBUG][       Thread-255637][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 12:58:35,418 [DEBUG][       Thread-255637][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 12:58:35,418 [DEBUG][       Thread-255637][   transport.py][1871] : client lang: <none>
2025-06-13 12:58:35,418 [DEBUG][       Thread-255637][   transport.py][1871] : server lang: <none>
2025-06-13 12:58:35,418 [DEBUG][       Thread-255637][   transport.py][1871] : kex follows: False
2025-06-13 12:58:35,418 [DEBUG][       Thread-255637][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 12:58:35,418 [DEBUG][       Thread-255637][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 12:58:35,418 [DEBUG][       Thread-255637][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 12:58:35,418 [DEBUG][       Thread-255637][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 12:58:35,418 [DEBUG][       Thread-255637][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 12:58:35,418 [DEBUG][       Thread-255637][   transport.py][1871] : Compression: none
2025-06-13 12:58:35,418 [DEBUG][       Thread-255637][   transport.py][1871] : === End of kex handshake ===
2025-06-13 12:58:35,476 [DEBUG][       Thread-255637][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 12:58:35,476 [DEBUG][       Thread-255637][   transport.py][1871] : Switch to new keys ...
2025-06-13 12:58:35,477 [DEBUG][       Thread-255637][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 12:58:35,477 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 12:58:35,477 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 12:58:35,533 [DEBUG][       Thread-255637][   transport.py][1871] : userauth is OK
2025-06-13 12:58:35,533 [DEBUG][       Thread-255637][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 12:58:35,533 [DEBUG][       Thread-255637][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 12:58:35,533 [DEBUG][       Thread-255637][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 12:58:35,533 [DEBUG][       Thread-255637][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 12:58:35,547 [ INFO][       Thread-255637][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 12:58:35,547 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 12:58:35,547 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 12:58:36,559 [DEBUG][       Thread-255637][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 12:58:36,560 [DEBUG][       Thread-255637][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 12:58:36,607 [DEBUG][       Thread-255637][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 12:58:36,607 [DEBUG][       Thread-255637][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 12:58:36,616 [DEBUG][       Thread-255637][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 12:58:36,624 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 12:58:36,624 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 12:58:36,631 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 12:58:36,640 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 12:58:36,640 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 12:58:36,640 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 12:58:36,647 [DEBUG][       Thread-255637][   transport.py][1871] : EOF in transport thread
2025-06-13 12:58:36,882 [DEBUG][Thread-255639 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:58:45,901 [DEBUG][Thread-255640 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:58:46,650 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 12:58:46,650 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 12:58:46,651 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 12:58:46,653 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 12:58:47,117 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 12, 58, 40), 14.03, 37.81, 0.0, 10.11, 12.69, 0, 0, 0, 2, 0, 0),)
2025-06-13 12:58:47,117 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 12:58:40
2025-06-13 12:58:47,197 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 12:58:47,201 [DEBUG][       Thread-255641][   transport.py][1871] : starting thread (client mode): 0x842051e0
2025-06-13 12:58:47,201 [DEBUG][       Thread-255641][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 12:58:47,221 [DEBUG][       Thread-255641][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 12:58:47,221 [ INFO][       Thread-255641][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 12:58:47,223 [DEBUG][       Thread-255641][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 12:58:47,223 [DEBUG][       Thread-255641][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 12:58:47,223 [DEBUG][       Thread-255641][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 12:58:47,223 [DEBUG][       Thread-255641][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:58:47,223 [DEBUG][       Thread-255641][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:58:47,223 [DEBUG][       Thread-255641][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:58:47,223 [DEBUG][       Thread-255641][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:58:47,223 [DEBUG][       Thread-255641][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 12:58:47,223 [DEBUG][       Thread-255641][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 12:58:47,223 [DEBUG][       Thread-255641][   transport.py][1871] : client lang: <none>
2025-06-13 12:58:47,223 [DEBUG][       Thread-255641][   transport.py][1871] : server lang: <none>
2025-06-13 12:58:47,223 [DEBUG][       Thread-255641][   transport.py][1871] : kex follows: False
2025-06-13 12:58:47,223 [DEBUG][       Thread-255641][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 12:58:47,223 [DEBUG][       Thread-255641][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 12:58:47,223 [DEBUG][       Thread-255641][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 12:58:47,223 [DEBUG][       Thread-255641][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 12:58:47,223 [DEBUG][       Thread-255641][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 12:58:47,223 [DEBUG][       Thread-255641][   transport.py][1871] : Compression: none
2025-06-13 12:58:47,223 [DEBUG][       Thread-255641][   transport.py][1871] : === End of kex handshake ===
2025-06-13 12:58:47,240 [DEBUG][       Thread-255641][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 12:58:47,241 [DEBUG][       Thread-255641][   transport.py][1871] : Switch to new keys ...
2025-06-13 12:58:47,241 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 12:58:47,241 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 12:58:47,242 [DEBUG][       Thread-255641][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 12:58:47,243 [DEBUG][       Thread-255641][   transport.py][1871] : userauth is OK
2025-06-13 12:58:47,255 [ INFO][       Thread-255641][   transport.py][1871] : Authentication (password) successful!
2025-06-13 12:58:47,256 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 12:58:47,840 [DEBUG][       Thread-255641][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 12:58:47,840 [DEBUG][       Thread-255641][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 12:58:47,885 [DEBUG][       Thread-255641][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 12:58:47,885 [DEBUG][       Thread-255641][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 12:58:47,888 [DEBUG][       Thread-255641][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 12:58:47,901 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 12:58:47,901 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 12:58:47,903 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 12:58:47,905 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 12:58:47,911 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 12:58:47,913 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 12:58:47,913 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 12:58:47,914 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 12:58:47,914 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.454451 -999.00  +12.40  12.87     43   +0.30 1 1 1 1 1   888    0 14.07 50.76 ----- 14.1 12.9 43.5 17.0 17.1 -28.2 15.8 -29.5 15.6 -28.3 17.0 -27.5
2025-06-13 12:58:47,914 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 12:58:47,914 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 12:58:47,914 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.454451
2025-06-13 12:58:47,915 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 12:58:47,915 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 12:58:47,915 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 12:58:47,915 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 12:58:47,915 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 12:58:47,916 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T12:58:40', tmtdew=14.03, humidity=37.81, cloud=0.0, wind=10.11, temperature=12.69, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T10:54:24.566', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 12:58:47,916 [DEBUG][       Thread-255641][   transport.py][1871] : EOF in transport thread
2025-06-13 12:58:48,001 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 12:58:48,010 [DEBUG][       Thread-255644][   transport.py][1871] : starting thread (client mode): 0x86368ee0
2025-06-13 12:58:48,010 [DEBUG][       Thread-255644][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 12:58:48,026 [DEBUG][       Thread-255644][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 12:58:48,026 [ INFO][       Thread-255644][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 12:58:48,033 [DEBUG][       Thread-255644][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 12:58:48,034 [DEBUG][       Thread-255644][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 12:58:48,034 [DEBUG][       Thread-255644][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 12:58:48,034 [DEBUG][       Thread-255644][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:58:48,034 [DEBUG][       Thread-255644][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:58:48,034 [DEBUG][       Thread-255644][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:58:48,034 [DEBUG][       Thread-255644][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:58:48,034 [DEBUG][       Thread-255644][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 12:58:48,034 [DEBUG][       Thread-255644][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 12:58:48,034 [DEBUG][       Thread-255644][   transport.py][1871] : client lang: <none>
2025-06-13 12:58:48,034 [DEBUG][       Thread-255644][   transport.py][1871] : server lang: <none>
2025-06-13 12:58:48,034 [DEBUG][       Thread-255644][   transport.py][1871] : kex follows: False
2025-06-13 12:58:48,034 [DEBUG][       Thread-255644][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 12:58:48,034 [DEBUG][       Thread-255644][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 12:58:48,034 [DEBUG][       Thread-255644][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 12:58:48,034 [DEBUG][       Thread-255644][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 12:58:48,034 [DEBUG][       Thread-255644][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 12:58:48,034 [DEBUG][       Thread-255644][   transport.py][1871] : Compression: none
2025-06-13 12:58:48,034 [DEBUG][       Thread-255644][   transport.py][1871] : === End of kex handshake ===
2025-06-13 12:58:48,092 [DEBUG][       Thread-255644][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 12:58:48,093 [DEBUG][       Thread-255644][   transport.py][1871] : Switch to new keys ...
2025-06-13 12:58:48,093 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 12:58:48,094 [DEBUG][       Thread-255644][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 12:58:48,094 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 12:58:48,136 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:58:48,137 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:58:48,150 [DEBUG][       Thread-255644][   transport.py][1871] : userauth is OK
2025-06-13 12:58:48,150 [DEBUG][       Thread-255644][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 12:58:48,150 [DEBUG][       Thread-255644][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 12:58:48,150 [DEBUG][       Thread-255644][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 12:58:48,151 [DEBUG][       Thread-255644][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 12:58:48,169 [ INFO][       Thread-255644][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 12:58:48,169 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 12:58:48,170 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 12:58:49,227 [DEBUG][       Thread-255644][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 12:58:49,228 [DEBUG][       Thread-255644][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 12:58:49,276 [DEBUG][       Thread-255644][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 12:58:49,276 [DEBUG][       Thread-255644][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 12:58:49,285 [DEBUG][       Thread-255644][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 12:58:49,294 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 12:58:49,295 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 12:58:49,304 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 12:58:49,313 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 12:58:49,313 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 12:58:49,314 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 12:58:49,323 [DEBUG][       Thread-255644][   transport.py][1871] : EOF in transport thread
2025-06-13 12:58:54,922 [DEBUG][Thread-255646 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:58:59,323 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 12:58:59,324 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 12:58:59,324 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 12:58:59,327 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 12:58:59,794 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 12, 58, 40), 14.03, 37.81, 0.0, 10.11, 12.69, 0, 0, 0, 2, 0, 0),)
2025-06-13 12:58:59,795 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 12:58:40
2025-06-13 12:58:59,875 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 12:58:59,879 [DEBUG][       Thread-255647][   transport.py][1871] : starting thread (client mode): 0x84205570
2025-06-13 12:58:59,879 [DEBUG][       Thread-255647][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 12:58:59,901 [DEBUG][       Thread-255647][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 12:58:59,901 [ INFO][       Thread-255647][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 12:58:59,905 [DEBUG][       Thread-255647][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 12:58:59,905 [DEBUG][       Thread-255647][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 12:58:59,905 [DEBUG][       Thread-255647][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 12:58:59,905 [DEBUG][       Thread-255647][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:58:59,905 [DEBUG][       Thread-255647][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:58:59,905 [DEBUG][       Thread-255647][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:58:59,905 [DEBUG][       Thread-255647][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:58:59,905 [DEBUG][       Thread-255647][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 12:58:59,905 [DEBUG][       Thread-255647][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 12:58:59,905 [DEBUG][       Thread-255647][   transport.py][1871] : client lang: <none>
2025-06-13 12:58:59,905 [DEBUG][       Thread-255647][   transport.py][1871] : server lang: <none>
2025-06-13 12:58:59,905 [DEBUG][       Thread-255647][   transport.py][1871] : kex follows: False
2025-06-13 12:58:59,905 [DEBUG][       Thread-255647][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 12:58:59,905 [DEBUG][       Thread-255647][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 12:58:59,905 [DEBUG][       Thread-255647][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 12:58:59,905 [DEBUG][       Thread-255647][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 12:58:59,906 [DEBUG][       Thread-255647][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 12:58:59,906 [DEBUG][       Thread-255647][   transport.py][1871] : Compression: none
2025-06-13 12:58:59,906 [DEBUG][       Thread-255647][   transport.py][1871] : === End of kex handshake ===
2025-06-13 12:58:59,923 [DEBUG][       Thread-255647][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 12:58:59,924 [DEBUG][       Thread-255647][   transport.py][1871] : Switch to new keys ...
2025-06-13 12:58:59,924 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 12:58:59,924 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 12:58:59,925 [DEBUG][       Thread-255647][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 12:58:59,926 [DEBUG][       Thread-255647][   transport.py][1871] : userauth is OK
2025-06-13 12:58:59,939 [ INFO][       Thread-255647][   transport.py][1871] : Authentication (password) successful!
2025-06-13 12:58:59,940 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 12:59:00,550 [DEBUG][       Thread-255647][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 12:59:00,550 [DEBUG][       Thread-255647][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 12:59:00,593 [DEBUG][       Thread-255647][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 12:59:00,593 [DEBUG][       Thread-255647][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 12:59:00,596 [DEBUG][       Thread-255647][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 12:59:00,610 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 12:59:00,611 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 12:59:00,612 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 12:59:00,614 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 12:59:00,619 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 12:59:00,621 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 12:59:00,621 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 12:59:00,622 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 12:59:00,622 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.454451 -999.00  +12.40  12.87     43   +0.30 1 1 1 1 1   888    0 14.07 50.76 ----- 14.1 12.9 43.5 17.0 17.1 -28.2 15.8 -29.5 15.6 -28.3 17.0 -27.5
2025-06-13 12:59:00,622 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 12:59:00,622 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 12:59:00,622 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.454451
2025-06-13 12:59:00,623 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 12:59:00,623 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 12:59:00,624 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 12:59:00,624 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 12:59:00,624 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 12:59:00,624 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T12:58:40', tmtdew=14.03, humidity=37.81, cloud=0.0, wind=10.11, temperature=12.69, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T10:54:24.566', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 12:59:00,625 [DEBUG][       Thread-255647][   transport.py][1871] : EOF in transport thread
2025-06-13 12:59:00,707 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 12:59:00,718 [DEBUG][       Thread-255650][   transport.py][1871] : starting thread (client mode): 0x86893820
2025-06-13 12:59:00,718 [DEBUG][       Thread-255650][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 12:59:00,733 [DEBUG][       Thread-255650][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 12:59:00,733 [ INFO][       Thread-255650][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 12:59:00,745 [DEBUG][       Thread-255650][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 12:59:00,745 [DEBUG][       Thread-255650][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 12:59:00,745 [DEBUG][       Thread-255650][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 12:59:00,745 [DEBUG][       Thread-255650][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:59:00,745 [DEBUG][       Thread-255650][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:59:00,745 [DEBUG][       Thread-255650][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:59:00,745 [DEBUG][       Thread-255650][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:59:00,745 [DEBUG][       Thread-255650][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 12:59:00,745 [DEBUG][       Thread-255650][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 12:59:00,745 [DEBUG][       Thread-255650][   transport.py][1871] : client lang: <none>
2025-06-13 12:59:00,746 [DEBUG][       Thread-255650][   transport.py][1871] : server lang: <none>
2025-06-13 12:59:00,746 [DEBUG][       Thread-255650][   transport.py][1871] : kex follows: False
2025-06-13 12:59:00,746 [DEBUG][       Thread-255650][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 12:59:00,746 [DEBUG][       Thread-255650][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 12:59:00,746 [DEBUG][       Thread-255650][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 12:59:00,746 [DEBUG][       Thread-255650][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 12:59:00,746 [DEBUG][       Thread-255650][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 12:59:00,746 [DEBUG][       Thread-255650][   transport.py][1871] : Compression: none
2025-06-13 12:59:00,746 [DEBUG][       Thread-255650][   transport.py][1871] : === End of kex handshake ===
2025-06-13 12:59:00,798 [DEBUG][       Thread-255650][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 12:59:00,799 [DEBUG][       Thread-255650][   transport.py][1871] : Switch to new keys ...
2025-06-13 12:59:00,799 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 12:59:00,800 [DEBUG][       Thread-255650][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 12:59:00,801 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 12:59:00,858 [DEBUG][       Thread-255650][   transport.py][1871] : userauth is OK
2025-06-13 12:59:00,858 [DEBUG][       Thread-255650][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 12:59:00,858 [DEBUG][       Thread-255650][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 12:59:00,859 [DEBUG][       Thread-255650][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 12:59:00,859 [DEBUG][       Thread-255650][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 12:59:00,877 [ INFO][       Thread-255650][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 12:59:00,877 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 12:59:00,878 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 12:59:01,481 [DEBUG][Thread-255652 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:59:01,899 [DEBUG][       Thread-255650][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 12:59:01,899 [DEBUG][       Thread-255650][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 12:59:01,952 [DEBUG][       Thread-255650][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 12:59:01,952 [DEBUG][       Thread-255650][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 12:59:01,960 [DEBUG][       Thread-255650][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 12:59:01,968 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 12:59:01,968 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 12:59:01,976 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 12:59:01,984 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 12:59:01,985 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 12:59:01,985 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 12:59:01,993 [DEBUG][       Thread-255650][   transport.py][1871] : EOF in transport thread
2025-06-13 12:59:02,558 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:59:02,560 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:59:03,967 [DEBUG][Thread-255653 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:59:11,989 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 12:59:11,989 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 12:59:11,989 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 12:59:11,991 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 12:59:12,453 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 12, 58, 40), 14.03, 37.81, 0.0, 10.11, 12.69, 0, 0, 0, 2, 0, 0),)
2025-06-13 12:59:12,453 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 12:58:40
2025-06-13 12:59:12,538 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 12:59:12,545 [DEBUG][       Thread-255654][   transport.py][1871] : starting thread (client mode): 0x84204be0
2025-06-13 12:59:12,545 [DEBUG][       Thread-255654][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 12:59:12,565 [DEBUG][       Thread-255654][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 12:59:12,565 [ INFO][       Thread-255654][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 12:59:12,568 [DEBUG][       Thread-255654][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 12:59:12,568 [DEBUG][       Thread-255654][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 12:59:12,568 [DEBUG][       Thread-255654][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 12:59:12,568 [DEBUG][       Thread-255654][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:59:12,568 [DEBUG][       Thread-255654][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:59:12,568 [DEBUG][       Thread-255654][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:59:12,568 [DEBUG][       Thread-255654][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:59:12,568 [DEBUG][       Thread-255654][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 12:59:12,568 [DEBUG][       Thread-255654][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 12:59:12,568 [DEBUG][       Thread-255654][   transport.py][1871] : client lang: <none>
2025-06-13 12:59:12,568 [DEBUG][       Thread-255654][   transport.py][1871] : server lang: <none>
2025-06-13 12:59:12,568 [DEBUG][       Thread-255654][   transport.py][1871] : kex follows: False
2025-06-13 12:59:12,568 [DEBUG][       Thread-255654][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 12:59:12,568 [DEBUG][       Thread-255654][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 12:59:12,568 [DEBUG][       Thread-255654][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 12:59:12,568 [DEBUG][       Thread-255654][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 12:59:12,568 [DEBUG][       Thread-255654][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 12:59:12,568 [DEBUG][       Thread-255654][   transport.py][1871] : Compression: none
2025-06-13 12:59:12,568 [DEBUG][       Thread-255654][   transport.py][1871] : === End of kex handshake ===
2025-06-13 12:59:12,584 [DEBUG][       Thread-255654][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 12:59:12,584 [DEBUG][       Thread-255654][   transport.py][1871] : Switch to new keys ...
2025-06-13 12:59:12,584 [DEBUG][       Thread-255654][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 12:59:12,584 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 12:59:12,584 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 12:59:12,585 [DEBUG][       Thread-255654][   transport.py][1871] : userauth is OK
2025-06-13 12:59:12,609 [ INFO][       Thread-255654][   transport.py][1871] : Authentication (password) successful!
2025-06-13 12:59:12,609 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 12:59:12,992 [DEBUG][Thread-255656 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:59:13,268 [DEBUG][       Thread-255654][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 12:59:13,268 [DEBUG][       Thread-255654][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 12:59:13,313 [DEBUG][       Thread-255654][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 12:59:13,313 [DEBUG][       Thread-255654][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 12:59:13,315 [DEBUG][       Thread-255654][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 12:59:13,327 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 12:59:13,327 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 12:59:13,329 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 12:59:13,330 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 12:59:13,333 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 12:59:13,334 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 12:59:13,334 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 12:59:13,334 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 12:59:13,334 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.454451 -999.00  +12.40  12.87     43   +0.30 1 1 1 1 1   888    0 14.07 50.76 ----- 14.1 12.9 43.5 17.0 17.1 -28.2 15.8 -29.5 15.6 -28.3 17.0 -27.5
2025-06-13 12:59:13,334 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 12:59:13,334 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 12:59:13,334 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.454451
2025-06-13 12:59:13,334 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 12:59:13,335 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 12:59:13,335 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 12:59:13,335 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 12:59:13,335 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 12:59:13,335 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T12:58:40', tmtdew=14.03, humidity=37.81, cloud=0.0, wind=10.11, temperature=12.69, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T10:54:24.566', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 12:59:13,335 [DEBUG][       Thread-255654][   transport.py][1871] : EOF in transport thread
2025-06-13 12:59:13,409 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 12:59:13,421 [DEBUG][       Thread-255658][   transport.py][1871] : starting thread (client mode): 0x86893ca0
2025-06-13 12:59:13,421 [DEBUG][       Thread-255658][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 12:59:13,435 [DEBUG][       Thread-255658][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 12:59:13,435 [ INFO][       Thread-255658][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 12:59:13,443 [DEBUG][       Thread-255658][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 12:59:13,443 [DEBUG][       Thread-255658][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 12:59:13,443 [DEBUG][       Thread-255658][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 12:59:13,443 [DEBUG][       Thread-255658][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:59:13,443 [DEBUG][       Thread-255658][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:59:13,443 [DEBUG][       Thread-255658][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:59:13,443 [DEBUG][       Thread-255658][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:59:13,443 [DEBUG][       Thread-255658][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 12:59:13,443 [DEBUG][       Thread-255658][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 12:59:13,443 [DEBUG][       Thread-255658][   transport.py][1871] : client lang: <none>
2025-06-13 12:59:13,443 [DEBUG][       Thread-255658][   transport.py][1871] : server lang: <none>
2025-06-13 12:59:13,443 [DEBUG][       Thread-255658][   transport.py][1871] : kex follows: False
2025-06-13 12:59:13,443 [DEBUG][       Thread-255658][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 12:59:13,443 [DEBUG][       Thread-255658][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 12:59:13,443 [DEBUG][       Thread-255658][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 12:59:13,443 [DEBUG][       Thread-255658][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 12:59:13,443 [DEBUG][       Thread-255658][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 12:59:13,443 [DEBUG][       Thread-255658][   transport.py][1871] : Compression: none
2025-06-13 12:59:13,443 [DEBUG][       Thread-255658][   transport.py][1871] : === End of kex handshake ===
2025-06-13 12:59:13,500 [DEBUG][       Thread-255658][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 12:59:13,500 [DEBUG][       Thread-255658][   transport.py][1871] : Switch to new keys ...
2025-06-13 12:59:13,500 [DEBUG][       Thread-255658][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 12:59:13,501 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 12:59:13,501 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 12:59:13,557 [DEBUG][       Thread-255658][   transport.py][1871] : userauth is OK
2025-06-13 12:59:13,557 [DEBUG][       Thread-255658][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 12:59:13,557 [DEBUG][       Thread-255658][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 12:59:13,557 [DEBUG][       Thread-255658][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 12:59:13,557 [DEBUG][       Thread-255658][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 12:59:13,571 [ INFO][       Thread-255658][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 12:59:13,571 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 12:59:13,571 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 12:59:13,735 [DEBUG][Thread-255660 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:59:14,608 [DEBUG][       Thread-255658][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 12:59:14,608 [DEBUG][       Thread-255658][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 12:59:14,655 [DEBUG][       Thread-255658][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 12:59:14,655 [DEBUG][       Thread-255658][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 12:59:14,664 [DEBUG][       Thread-255658][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 12:59:14,672 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 12:59:14,672 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 12:59:14,679 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 12:59:14,687 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 12:59:14,688 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 12:59:14,688 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 12:59:14,695 [DEBUG][       Thread-255658][   transport.py][1871] : EOF in transport thread
2025-06-13 12:59:22,011 [DEBUG][Thread-255661 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:59:24,698 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 12:59:24,698 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 12:59:24,698 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 12:59:24,701 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 12:59:25,157 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 12, 59, 12), 14.26, 37.29, 0.0, 9.55, 12.92, 0, 0, 0, 2, 0, 0),)
2025-06-13 12:59:25,157 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 12:59:12
2025-06-13 12:59:25,238 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 12:59:25,242 [DEBUG][       Thread-255662][   transport.py][1871] : starting thread (client mode): 0x84205ff0
2025-06-13 12:59:25,242 [DEBUG][       Thread-255662][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 12:59:25,263 [DEBUG][       Thread-255662][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 12:59:25,263 [ INFO][       Thread-255662][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 12:59:25,267 [DEBUG][       Thread-255662][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 12:59:25,267 [DEBUG][       Thread-255662][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 12:59:25,267 [DEBUG][       Thread-255662][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 12:59:25,267 [DEBUG][       Thread-255662][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:59:25,267 [DEBUG][       Thread-255662][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:59:25,267 [DEBUG][       Thread-255662][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:59:25,267 [DEBUG][       Thread-255662][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:59:25,267 [DEBUG][       Thread-255662][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 12:59:25,267 [DEBUG][       Thread-255662][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 12:59:25,267 [DEBUG][       Thread-255662][   transport.py][1871] : client lang: <none>
2025-06-13 12:59:25,267 [DEBUG][       Thread-255662][   transport.py][1871] : server lang: <none>
2025-06-13 12:59:25,267 [DEBUG][       Thread-255662][   transport.py][1871] : kex follows: False
2025-06-13 12:59:25,267 [DEBUG][       Thread-255662][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 12:59:25,267 [DEBUG][       Thread-255662][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 12:59:25,267 [DEBUG][       Thread-255662][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 12:59:25,267 [DEBUG][       Thread-255662][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 12:59:25,267 [DEBUG][       Thread-255662][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 12:59:25,267 [DEBUG][       Thread-255662][   transport.py][1871] : Compression: none
2025-06-13 12:59:25,267 [DEBUG][       Thread-255662][   transport.py][1871] : === End of kex handshake ===
2025-06-13 12:59:25,284 [DEBUG][       Thread-255662][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 12:59:25,284 [DEBUG][       Thread-255662][   transport.py][1871] : Switch to new keys ...
2025-06-13 12:59:25,285 [DEBUG][       Thread-255662][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 12:59:25,285 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 12:59:25,285 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 12:59:25,286 [DEBUG][       Thread-255662][   transport.py][1871] : userauth is OK
2025-06-13 12:59:25,311 [ INFO][       Thread-255662][   transport.py][1871] : Authentication (password) successful!
2025-06-13 12:59:25,312 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 12:59:25,953 [DEBUG][       Thread-255662][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 12:59:25,954 [DEBUG][       Thread-255662][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 12:59:25,997 [DEBUG][       Thread-255662][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 12:59:25,997 [DEBUG][       Thread-255662][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 12:59:26,001 [DEBUG][       Thread-255662][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 12:59:26,013 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 12:59:26,013 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 12:59:26,016 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 12:59:26,018 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 12:59:26,024 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 12:59:26,026 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 12:59:26,026 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 12:59:26,027 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 12:59:26,027 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.454451 -999.00  +12.40  12.87     43   +0.30 1 1 1 1 1   888    0 14.07 50.76 ----- 14.1 12.9 43.5 17.0 17.1 -28.2 15.8 -29.5 15.6 -28.3 17.0 -27.5
2025-06-13 12:59:26,027 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 12:59:26,027 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 12:59:26,027 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.454451
2025-06-13 12:59:26,028 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 12:59:26,029 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 12:59:26,029 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 12:59:26,029 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 12:59:26,029 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 12:59:26,029 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T12:59:12', tmtdew=14.26, humidity=37.29, cloud=0.0, wind=9.55, temperature=12.92, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T10:54:24.566', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 12:59:26,030 [DEBUG][       Thread-255662][   transport.py][1871] : EOF in transport thread
2025-06-13 12:59:26,107 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 12:59:26,121 [DEBUG][       Thread-255665][   transport.py][1871] : starting thread (client mode): 0x8636b490
2025-06-13 12:59:26,122 [DEBUG][       Thread-255665][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 12:59:26,136 [DEBUG][       Thread-255665][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 12:59:26,136 [ INFO][       Thread-255665][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 12:59:26,144 [DEBUG][       Thread-255665][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 12:59:26,144 [DEBUG][       Thread-255665][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 12:59:26,144 [DEBUG][       Thread-255665][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 12:59:26,144 [DEBUG][       Thread-255665][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:59:26,144 [DEBUG][       Thread-255665][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:59:26,144 [DEBUG][       Thread-255665][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:59:26,144 [DEBUG][       Thread-255665][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:59:26,144 [DEBUG][       Thread-255665][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 12:59:26,144 [DEBUG][       Thread-255665][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 12:59:26,144 [DEBUG][       Thread-255665][   transport.py][1871] : client lang: <none>
2025-06-13 12:59:26,144 [DEBUG][       Thread-255665][   transport.py][1871] : server lang: <none>
2025-06-13 12:59:26,144 [DEBUG][       Thread-255665][   transport.py][1871] : kex follows: False
2025-06-13 12:59:26,145 [DEBUG][       Thread-255665][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 12:59:26,145 [DEBUG][       Thread-255665][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 12:59:26,145 [DEBUG][       Thread-255665][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 12:59:26,145 [DEBUG][       Thread-255665][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 12:59:26,145 [DEBUG][       Thread-255665][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 12:59:26,145 [DEBUG][       Thread-255665][   transport.py][1871] : Compression: none
2025-06-13 12:59:26,145 [DEBUG][       Thread-255665][   transport.py][1871] : === End of kex handshake ===
2025-06-13 12:59:26,202 [DEBUG][       Thread-255665][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 12:59:26,203 [DEBUG][       Thread-255665][   transport.py][1871] : Switch to new keys ...
2025-06-13 12:59:26,203 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 12:59:26,204 [DEBUG][       Thread-255665][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 12:59:26,205 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 12:59:26,258 [DEBUG][       Thread-255665][   transport.py][1871] : userauth is OK
2025-06-13 12:59:26,258 [DEBUG][       Thread-255665][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 12:59:26,259 [DEBUG][       Thread-255665][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 12:59:26,259 [DEBUG][       Thread-255665][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 12:59:26,259 [DEBUG][       Thread-255665][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 12:59:26,277 [ INFO][       Thread-255665][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 12:59:26,278 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 12:59:26,278 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 12:59:27,307 [DEBUG][       Thread-255665][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 12:59:27,307 [DEBUG][       Thread-255665][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 12:59:27,356 [DEBUG][       Thread-255665][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 12:59:27,356 [DEBUG][       Thread-255665][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 12:59:27,365 [DEBUG][       Thread-255665][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 12:59:27,374 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 12:59:27,375 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 12:59:27,384 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 12:59:27,393 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 12:59:27,394 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 12:59:27,394 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 12:59:27,402 [DEBUG][       Thread-255665][   transport.py][1871] : EOF in transport thread
2025-06-13 12:59:31,035 [DEBUG][Thread-255667 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:59:37,405 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 12:59:37,405 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 12:59:37,405 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 12:59:37,408 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 12:59:37,859 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 12, 59, 12), 14.26, 37.29, 0.0, 9.55, 12.92, 0, 0, 0, 2, 0, 0),)
2025-06-13 12:59:37,859 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 12:59:12
2025-06-13 12:59:37,940 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 12:59:37,945 [DEBUG][       Thread-255668][   transport.py][1871] : starting thread (client mode): 0x863512a0
2025-06-13 12:59:37,945 [DEBUG][       Thread-255668][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 12:59:37,966 [DEBUG][       Thread-255668][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 12:59:37,966 [ INFO][       Thread-255668][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 12:59:37,970 [DEBUG][       Thread-255668][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 12:59:37,970 [DEBUG][       Thread-255668][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 12:59:37,970 [DEBUG][       Thread-255668][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 12:59:37,970 [DEBUG][       Thread-255668][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:59:37,970 [DEBUG][       Thread-255668][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:59:37,970 [DEBUG][       Thread-255668][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:59:37,970 [DEBUG][       Thread-255668][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:59:37,970 [DEBUG][       Thread-255668][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 12:59:37,970 [DEBUG][       Thread-255668][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 12:59:37,970 [DEBUG][       Thread-255668][   transport.py][1871] : client lang: <none>
2025-06-13 12:59:37,970 [DEBUG][       Thread-255668][   transport.py][1871] : server lang: <none>
2025-06-13 12:59:37,970 [DEBUG][       Thread-255668][   transport.py][1871] : kex follows: False
2025-06-13 12:59:37,970 [DEBUG][       Thread-255668][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 12:59:37,970 [DEBUG][       Thread-255668][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 12:59:37,970 [DEBUG][       Thread-255668][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 12:59:37,970 [DEBUG][       Thread-255668][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 12:59:37,971 [DEBUG][       Thread-255668][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 12:59:37,971 [DEBUG][       Thread-255668][   transport.py][1871] : Compression: none
2025-06-13 12:59:37,971 [DEBUG][       Thread-255668][   transport.py][1871] : === End of kex handshake ===
2025-06-13 12:59:37,987 [DEBUG][       Thread-255668][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 12:59:37,988 [DEBUG][       Thread-255668][   transport.py][1871] : Switch to new keys ...
2025-06-13 12:59:37,988 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 12:59:37,989 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 12:59:37,989 [DEBUG][       Thread-255668][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 12:59:37,990 [DEBUG][       Thread-255668][   transport.py][1871] : userauth is OK
2025-06-13 12:59:38,003 [ INFO][       Thread-255668][   transport.py][1871] : Authentication (password) successful!
2025-06-13 12:59:38,004 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 12:59:38,641 [DEBUG][       Thread-255668][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 12:59:38,642 [DEBUG][       Thread-255668][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 12:59:38,685 [DEBUG][       Thread-255668][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 12:59:38,685 [DEBUG][       Thread-255668][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 12:59:38,689 [DEBUG][       Thread-255668][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 12:59:38,700 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 12:59:38,701 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 12:59:38,702 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 12:59:38,704 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 12:59:38,710 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 12:59:38,712 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 12:59:38,712 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 12:59:38,713 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 12:59:38,713 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.454451 -999.00  +12.40  12.87     43   +0.30 1 1 1 1 1   888    0 14.07 50.76 ----- 14.1 12.9 43.5 17.0 17.1 -28.2 15.8 -29.5 15.6 -28.3 17.0 -27.5
2025-06-13 12:59:38,713 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 12:59:38,713 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 12:59:38,713 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.454451
2025-06-13 12:59:38,714 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 12:59:38,714 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 12:59:38,715 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 12:59:38,715 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 12:59:38,715 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 12:59:38,715 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T12:59:12', tmtdew=14.26, humidity=37.29, cloud=0.0, wind=9.55, temperature=12.92, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T10:54:24.566', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 12:59:38,715 [DEBUG][       Thread-255668][   transport.py][1871] : EOF in transport thread
2025-06-13 12:59:38,799 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 12:59:38,811 [DEBUG][       Thread-255671][   transport.py][1871] : starting thread (client mode): 0x86351d80
2025-06-13 12:59:38,812 [DEBUG][       Thread-255671][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 12:59:38,827 [DEBUG][       Thread-255671][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 12:59:38,827 [ INFO][       Thread-255671][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 12:59:38,836 [DEBUG][       Thread-255671][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 12:59:38,837 [DEBUG][       Thread-255671][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 12:59:38,837 [DEBUG][       Thread-255671][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 12:59:38,837 [DEBUG][       Thread-255671][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:59:38,837 [DEBUG][       Thread-255671][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:59:38,837 [DEBUG][       Thread-255671][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:59:38,837 [DEBUG][       Thread-255671][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:59:38,837 [DEBUG][       Thread-255671][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 12:59:38,837 [DEBUG][       Thread-255671][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 12:59:38,837 [DEBUG][       Thread-255671][   transport.py][1871] : client lang: <none>
2025-06-13 12:59:38,837 [DEBUG][       Thread-255671][   transport.py][1871] : server lang: <none>
2025-06-13 12:59:38,837 [DEBUG][       Thread-255671][   transport.py][1871] : kex follows: False
2025-06-13 12:59:38,837 [DEBUG][       Thread-255671][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 12:59:38,837 [DEBUG][       Thread-255671][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 12:59:38,837 [DEBUG][       Thread-255671][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 12:59:38,837 [DEBUG][       Thread-255671][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 12:59:38,837 [DEBUG][       Thread-255671][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 12:59:38,838 [DEBUG][       Thread-255671][   transport.py][1871] : Compression: none
2025-06-13 12:59:38,838 [DEBUG][       Thread-255671][   transport.py][1871] : === End of kex handshake ===
2025-06-13 12:59:38,909 [DEBUG][       Thread-255671][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 12:59:38,909 [DEBUG][       Thread-255671][   transport.py][1871] : Switch to new keys ...
2025-06-13 12:59:38,909 [DEBUG][       Thread-255671][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 12:59:38,909 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 12:59:38,909 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 12:59:38,966 [DEBUG][       Thread-255671][   transport.py][1871] : userauth is OK
2025-06-13 12:59:38,966 [DEBUG][       Thread-255671][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 12:59:38,966 [DEBUG][       Thread-255671][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 12:59:38,966 [DEBUG][       Thread-255671][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 12:59:38,966 [DEBUG][       Thread-255671][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 12:59:38,984 [ INFO][       Thread-255671][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 12:59:38,984 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 12:59:38,984 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 12:59:40,019 [DEBUG][       Thread-255671][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 12:59:40,019 [DEBUG][       Thread-255671][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 12:59:40,070 [DEBUG][       Thread-255671][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 12:59:40,070 [DEBUG][       Thread-255671][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 12:59:40,072 [DEBUG][Thread-255673 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:59:40,083 [DEBUG][       Thread-255671][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 12:59:40,095 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 12:59:40,095 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 12:59:40,107 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 12:59:40,120 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 12:59:40,120 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 12:59:40,121 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 12:59:40,131 [DEBUG][       Thread-255671][   transport.py][1871] : EOF in transport thread
2025-06-13 12:59:48,296 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:59:48,296 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:59:49,094 [DEBUG][Thread-255674 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 12:59:50,131 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 12:59:50,131 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 12:59:50,131 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 12:59:50,132 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 12:59:50,607 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 12, 59, 44), 14.25, 37.33, 0.0, 10.48, 12.94, 0, 0, 0, 2, 0, 0),)
2025-06-13 12:59:50,607 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 12:59:44
2025-06-13 12:59:50,692 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 12:59:50,696 [DEBUG][       Thread-255675][   transport.py][1871] : starting thread (client mode): 0x86351660
2025-06-13 12:59:50,696 [DEBUG][       Thread-255675][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 12:59:50,716 [DEBUG][       Thread-255675][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 12:59:50,716 [ INFO][       Thread-255675][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 12:59:50,719 [DEBUG][       Thread-255675][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 12:59:50,719 [DEBUG][       Thread-255675][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 12:59:50,720 [DEBUG][       Thread-255675][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 12:59:50,720 [DEBUG][       Thread-255675][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:59:50,720 [DEBUG][       Thread-255675][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:59:50,720 [DEBUG][       Thread-255675][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:59:50,720 [DEBUG][       Thread-255675][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:59:50,720 [DEBUG][       Thread-255675][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 12:59:50,720 [DEBUG][       Thread-255675][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 12:59:50,720 [DEBUG][       Thread-255675][   transport.py][1871] : client lang: <none>
2025-06-13 12:59:50,720 [DEBUG][       Thread-255675][   transport.py][1871] : server lang: <none>
2025-06-13 12:59:50,720 [DEBUG][       Thread-255675][   transport.py][1871] : kex follows: False
2025-06-13 12:59:50,720 [DEBUG][       Thread-255675][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 12:59:50,720 [DEBUG][       Thread-255675][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 12:59:50,720 [DEBUG][       Thread-255675][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 12:59:50,720 [DEBUG][       Thread-255675][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 12:59:50,720 [DEBUG][       Thread-255675][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 12:59:50,720 [DEBUG][       Thread-255675][   transport.py][1871] : Compression: none
2025-06-13 12:59:50,720 [DEBUG][       Thread-255675][   transport.py][1871] : === End of kex handshake ===
2025-06-13 12:59:50,734 [DEBUG][       Thread-255675][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 12:59:50,735 [DEBUG][       Thread-255675][   transport.py][1871] : Switch to new keys ...
2025-06-13 12:59:50,735 [DEBUG][       Thread-255675][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 12:59:50,735 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 12:59:50,735 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 12:59:50,736 [DEBUG][       Thread-255675][   transport.py][1871] : userauth is OK
2025-06-13 12:59:50,761 [ INFO][       Thread-255675][   transport.py][1871] : Authentication (password) successful!
2025-06-13 12:59:50,761 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 12:59:51,396 [DEBUG][       Thread-255675][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 12:59:51,396 [DEBUG][       Thread-255675][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 12:59:51,441 [DEBUG][       Thread-255675][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 12:59:51,441 [DEBUG][       Thread-255675][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 12:59:51,443 [DEBUG][       Thread-255675][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 12:59:51,456 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 12:59:51,456 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 12:59:51,457 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 12:59:51,458 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 12:59:51,461 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 12:59:51,462 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 12:59:51,462 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 12:59:51,462 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 12:59:51,462 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.454451 -999.00  +12.40  12.87     43   +0.30 1 1 1 1 1   888    0 14.07 50.76 ----- 14.1 12.9 43.5 17.0 17.1 -28.2 15.8 -29.5 15.6 -28.3 17.0 -27.5
2025-06-13 12:59:51,462 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 12:59:51,462 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 12:59:51,463 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.454451
2025-06-13 12:59:51,463 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 12:59:51,463 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 12:59:51,463 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 12:59:51,463 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 12:59:51,463 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 12:59:51,463 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T12:59:44', tmtdew=14.25, humidity=37.33, cloud=0.0, wind=10.48, temperature=12.94, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T10:54:24.566', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 12:59:51,464 [DEBUG][       Thread-255675][   transport.py][1871] : EOF in transport thread
2025-06-13 12:59:51,536 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 12:59:51,546 [DEBUG][       Thread-255678][   transport.py][1871] : starting thread (client mode): 0x863ca9e0
2025-06-13 12:59:51,546 [DEBUG][       Thread-255678][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 12:59:51,561 [DEBUG][       Thread-255678][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 12:59:51,561 [ INFO][       Thread-255678][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 12:59:51,568 [DEBUG][       Thread-255678][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 12:59:51,568 [DEBUG][       Thread-255678][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 12:59:51,568 [DEBUG][       Thread-255678][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 12:59:51,569 [DEBUG][       Thread-255678][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:59:51,569 [DEBUG][       Thread-255678][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 12:59:51,569 [DEBUG][       Thread-255678][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:59:51,569 [DEBUG][       Thread-255678][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 12:59:51,569 [DEBUG][       Thread-255678][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 12:59:51,569 [DEBUG][       Thread-255678][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 12:59:51,569 [DEBUG][       Thread-255678][   transport.py][1871] : client lang: <none>
2025-06-13 12:59:51,569 [DEBUG][       Thread-255678][   transport.py][1871] : server lang: <none>
2025-06-13 12:59:51,569 [DEBUG][       Thread-255678][   transport.py][1871] : kex follows: False
2025-06-13 12:59:51,569 [DEBUG][       Thread-255678][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 12:59:51,569 [DEBUG][       Thread-255678][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 12:59:51,569 [DEBUG][       Thread-255678][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 12:59:51,569 [DEBUG][       Thread-255678][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 12:59:51,569 [DEBUG][       Thread-255678][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 12:59:51,569 [DEBUG][       Thread-255678][   transport.py][1871] : Compression: none
2025-06-13 12:59:51,569 [DEBUG][       Thread-255678][   transport.py][1871] : === End of kex handshake ===
2025-06-13 12:59:51,624 [DEBUG][       Thread-255678][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 12:59:51,624 [DEBUG][       Thread-255678][   transport.py][1871] : Switch to new keys ...
2025-06-13 12:59:51,624 [DEBUG][       Thread-255678][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 12:59:51,624 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 12:59:51,625 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 12:59:51,681 [DEBUG][       Thread-255678][   transport.py][1871] : userauth is OK
2025-06-13 12:59:51,681 [DEBUG][       Thread-255678][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 12:59:51,681 [DEBUG][       Thread-255678][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 12:59:51,682 [DEBUG][       Thread-255678][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 12:59:51,682 [DEBUG][       Thread-255678][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 12:59:51,696 [ INFO][       Thread-255678][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 12:59:51,696 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 12:59:51,696 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 12:59:52,730 [DEBUG][       Thread-255678][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 12:59:52,730 [DEBUG][       Thread-255678][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 12:59:52,779 [DEBUG][       Thread-255678][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 12:59:52,779 [DEBUG][       Thread-255678][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 12:59:52,787 [DEBUG][       Thread-255678][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 12:59:52,795 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 12:59:52,795 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 12:59:52,804 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 12:59:52,817 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 12:59:52,817 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 12:59:52,817 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 12:59:52,827 [DEBUG][       Thread-255678][   transport.py][1871] : EOF in transport thread
2025-06-13 12:59:58,112 [DEBUG][Thread-255680 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:00:02,632 [DEBUG][Thread-255681 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:00:02,828 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 13:00:02,828 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 13:00:02,828 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 13:00:02,831 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 13:00:03,290 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 12, 59, 44), 14.25, 37.33, 0.0, 10.48, 12.94, 0, 0, 0, 2, 0, 0),)
2025-06-13 13:00:03,290 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 12:59:44
2025-06-13 13:00:03,371 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 13:00:03,377 [DEBUG][       Thread-255682][   transport.py][1871] : starting thread (client mode): 0x84207b80
2025-06-13 13:00:03,377 [DEBUG][       Thread-255682][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 13:00:03,398 [DEBUG][       Thread-255682][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 13:00:03,398 [ INFO][       Thread-255682][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 13:00:03,402 [DEBUG][       Thread-255682][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 13:00:03,402 [DEBUG][       Thread-255682][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 13:00:03,402 [DEBUG][       Thread-255682][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 13:00:03,402 [DEBUG][       Thread-255682][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:00:03,402 [DEBUG][       Thread-255682][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:00:03,402 [DEBUG][       Thread-255682][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:00:03,402 [DEBUG][       Thread-255682][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:00:03,402 [DEBUG][       Thread-255682][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 13:00:03,402 [DEBUG][       Thread-255682][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 13:00:03,402 [DEBUG][       Thread-255682][   transport.py][1871] : client lang: <none>
2025-06-13 13:00:03,402 [DEBUG][       Thread-255682][   transport.py][1871] : server lang: <none>
2025-06-13 13:00:03,402 [DEBUG][       Thread-255682][   transport.py][1871] : kex follows: False
2025-06-13 13:00:03,402 [DEBUG][       Thread-255682][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 13:00:03,402 [DEBUG][       Thread-255682][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 13:00:03,402 [DEBUG][       Thread-255682][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 13:00:03,402 [DEBUG][       Thread-255682][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 13:00:03,403 [DEBUG][       Thread-255682][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 13:00:03,403 [DEBUG][       Thread-255682][   transport.py][1871] : Compression: none
2025-06-13 13:00:03,403 [DEBUG][       Thread-255682][   transport.py][1871] : === End of kex handshake ===
2025-06-13 13:00:03,411 [DEBUG][       Thread-255682][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 13:00:03,412 [DEBUG][       Thread-255682][   transport.py][1871] : Switch to new keys ...
2025-06-13 13:00:03,412 [DEBUG][       Thread-255682][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 13:00:03,413 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 13:00:03,413 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 13:00:03,414 [DEBUG][       Thread-255682][   transport.py][1871] : userauth is OK
2025-06-13 13:00:03,427 [ INFO][       Thread-255682][   transport.py][1871] : Authentication (password) successful!
2025-06-13 13:00:03,428 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 13:00:03,710 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:00:03,720 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:00:07,145 [DEBUG][Thread-255684 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:00:09,148 [DEBUG][       Thread-255682][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 13:00:09,148 [DEBUG][       Thread-255682][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 13:00:09,189 [DEBUG][       Thread-255682][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 13:00:09,189 [DEBUG][       Thread-255682][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 13:00:09,192 [DEBUG][       Thread-255682][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 13:00:09,267 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 13:00:09,267 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 13:00:09,269 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 13:00:09,271 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 13:00:09,276 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 13:00:09,278 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 13:00:09,278 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 13:00:09,278 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 13:00:09,279 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.454451 -999.00  +12.40  12.87     43   +0.30 1 1 1 1 1   888    0 14.07 50.76 ----- 14.1 12.9 43.5 17.0 17.1 -28.2 15.8 -29.5 15.6 -28.3 17.0 -27.5
2025-06-13 13:00:09,279 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 13:00:09,279 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 13:00:09,279 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.454451
2025-06-13 13:00:09,279 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 13:00:09,280 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 13:00:09,280 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 13:00:09,280 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 13:00:09,280 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 13:00:09,280 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T12:59:44', tmtdew=14.25, humidity=37.33, cloud=0.0, wind=10.48, temperature=12.94, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T10:54:24.566', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 13:00:09,282 [DEBUG][       Thread-255682][   transport.py][1871] : EOF in transport thread
2025-06-13 13:00:09,364 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 13:00:09,379 [DEBUG][       Thread-255686][   transport.py][1871] : starting thread (client mode): 0x863a7a00
2025-06-13 13:00:09,379 [DEBUG][       Thread-255686][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 13:00:09,395 [DEBUG][       Thread-255686][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 13:00:09,395 [ INFO][       Thread-255686][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 13:00:09,402 [DEBUG][       Thread-255686][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 13:00:09,403 [DEBUG][       Thread-255686][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 13:00:09,403 [DEBUG][       Thread-255686][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 13:00:09,403 [DEBUG][       Thread-255686][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:00:09,403 [DEBUG][       Thread-255686][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:00:09,403 [DEBUG][       Thread-255686][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:00:09,403 [DEBUG][       Thread-255686][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:00:09,403 [DEBUG][       Thread-255686][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 13:00:09,403 [DEBUG][       Thread-255686][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 13:00:09,403 [DEBUG][       Thread-255686][   transport.py][1871] : client lang: <none>
2025-06-13 13:00:09,403 [DEBUG][       Thread-255686][   transport.py][1871] : server lang: <none>
2025-06-13 13:00:09,403 [DEBUG][       Thread-255686][   transport.py][1871] : kex follows: False
2025-06-13 13:00:09,403 [DEBUG][       Thread-255686][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 13:00:09,403 [DEBUG][       Thread-255686][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 13:00:09,403 [DEBUG][       Thread-255686][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 13:00:09,403 [DEBUG][       Thread-255686][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 13:00:09,404 [DEBUG][       Thread-255686][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 13:00:09,404 [DEBUG][       Thread-255686][   transport.py][1871] : Compression: none
2025-06-13 13:00:09,404 [DEBUG][       Thread-255686][   transport.py][1871] : === End of kex handshake ===
2025-06-13 13:00:09,462 [DEBUG][       Thread-255686][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 13:00:09,462 [DEBUG][       Thread-255686][   transport.py][1871] : Switch to new keys ...
2025-06-13 13:00:09,463 [DEBUG][       Thread-255686][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 13:00:09,463 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 13:00:09,464 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 13:00:09,518 [DEBUG][       Thread-255686][   transport.py][1871] : userauth is OK
2025-06-13 13:00:09,518 [DEBUG][       Thread-255686][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 13:00:09,519 [DEBUG][       Thread-255686][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 13:00:09,519 [DEBUG][       Thread-255686][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 13:00:09,519 [DEBUG][       Thread-255686][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 13:00:09,537 [ INFO][       Thread-255686][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 13:00:09,538 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 13:00:09,538 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 13:00:10,533 [DEBUG][       Thread-255686][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 13:00:10,533 [DEBUG][       Thread-255686][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 13:00:10,584 [DEBUG][       Thread-255686][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 13:00:10,584 [DEBUG][       Thread-255686][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 13:00:10,602 [DEBUG][       Thread-255686][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 13:00:10,616 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 13:00:10,616 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 13:00:10,625 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 13:00:10,635 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 13:00:10,635 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 13:00:10,636 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 13:00:10,643 [DEBUG][       Thread-255686][   transport.py][1871] : EOF in transport thread
2025-06-13 13:00:13,784 [DEBUG][Thread-255688 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:00:16,168 [DEBUG][Thread-255689 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:00:20,646 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 13:00:20,646 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 13:00:20,646 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 13:00:20,649 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 13:00:21,114 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 13, 0, 15), 14.29, 37.16, 0.0, 16.11, 13.0, 0, 0, 0, 2, 0, 0),)
2025-06-13 13:00:21,114 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 13:00:15
2025-06-13 13:00:21,195 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 13:00:21,198 [DEBUG][       Thread-255690][   transport.py][1871] : starting thread (client mode): 0x867fe8c0
2025-06-13 13:00:21,198 [DEBUG][       Thread-255690][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 13:00:21,220 [DEBUG][       Thread-255690][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 13:00:21,220 [ INFO][       Thread-255690][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 13:00:21,223 [DEBUG][       Thread-255690][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 13:00:21,223 [DEBUG][       Thread-255690][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 13:00:21,223 [DEBUG][       Thread-255690][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 13:00:21,223 [DEBUG][       Thread-255690][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:00:21,223 [DEBUG][       Thread-255690][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:00:21,223 [DEBUG][       Thread-255690][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:00:21,223 [DEBUG][       Thread-255690][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:00:21,223 [DEBUG][       Thread-255690][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 13:00:21,223 [DEBUG][       Thread-255690][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 13:00:21,223 [DEBUG][       Thread-255690][   transport.py][1871] : client lang: <none>
2025-06-13 13:00:21,223 [DEBUG][       Thread-255690][   transport.py][1871] : server lang: <none>
2025-06-13 13:00:21,223 [DEBUG][       Thread-255690][   transport.py][1871] : kex follows: False
2025-06-13 13:00:21,223 [DEBUG][       Thread-255690][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 13:00:21,223 [DEBUG][       Thread-255690][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 13:00:21,224 [DEBUG][       Thread-255690][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 13:00:21,224 [DEBUG][       Thread-255690][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 13:00:21,224 [DEBUG][       Thread-255690][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 13:00:21,224 [DEBUG][       Thread-255690][   transport.py][1871] : Compression: none
2025-06-13 13:00:21,224 [DEBUG][       Thread-255690][   transport.py][1871] : === End of kex handshake ===
2025-06-13 13:00:21,242 [DEBUG][       Thread-255690][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 13:00:21,242 [DEBUG][       Thread-255690][   transport.py][1871] : Switch to new keys ...
2025-06-13 13:00:21,243 [DEBUG][       Thread-255690][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 13:00:21,243 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 13:00:21,243 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 13:00:21,244 [DEBUG][       Thread-255690][   transport.py][1871] : userauth is OK
2025-06-13 13:00:21,268 [ INFO][       Thread-255690][   transport.py][1871] : Authentication (password) successful!
2025-06-13 13:00:21,269 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 13:00:21,891 [DEBUG][       Thread-255690][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 13:00:21,892 [DEBUG][       Thread-255690][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 13:00:21,933 [DEBUG][       Thread-255690][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 13:00:21,933 [DEBUG][       Thread-255690][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 13:00:21,936 [DEBUG][       Thread-255690][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 13:00:21,950 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 13:00:21,951 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 13:00:21,953 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 13:00:21,955 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 13:00:21,960 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 13:00:21,963 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 13:00:21,963 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 13:00:21,964 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 13:00:21,964 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.454451 -999.00  +12.40  12.87     43   +0.30 1 1 1 1 1   888    0 14.07 50.76 ----- 14.1 12.9 43.5 17.0 17.1 -28.2 15.8 -29.5 15.6 -28.3 17.0 -27.5
2025-06-13 13:00:21,964 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 13:00:21,964 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 13:00:21,964 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.454451
2025-06-13 13:00:21,964 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 13:00:21,965 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 13:00:21,965 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 13:00:21,965 [DEBUG][       Thread-255690][   transport.py][1871] : EOF in transport thread
2025-06-13 13:00:21,965 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 13:00:21,966 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 13:00:21,966 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T13:00:15', tmtdew=14.29, humidity=37.16, cloud=0.0, wind=16.11, temperature=13.0, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T10:54:24.566', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 13:00:22,050 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 13:00:22,060 [DEBUG][       Thread-255693][   transport.py][1871] : starting thread (client mode): 0x863a59c0
2025-06-13 13:00:22,060 [DEBUG][       Thread-255693][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 13:00:22,075 [DEBUG][       Thread-255693][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 13:00:22,075 [ INFO][       Thread-255693][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 13:00:22,082 [DEBUG][       Thread-255693][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 13:00:22,083 [DEBUG][       Thread-255693][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 13:00:22,083 [DEBUG][       Thread-255693][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 13:00:22,083 [DEBUG][       Thread-255693][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:00:22,083 [DEBUG][       Thread-255693][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:00:22,083 [DEBUG][       Thread-255693][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:00:22,083 [DEBUG][       Thread-255693][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:00:22,083 [DEBUG][       Thread-255693][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 13:00:22,083 [DEBUG][       Thread-255693][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 13:00:22,083 [DEBUG][       Thread-255693][   transport.py][1871] : client lang: <none>
2025-06-13 13:00:22,083 [DEBUG][       Thread-255693][   transport.py][1871] : server lang: <none>
2025-06-13 13:00:22,083 [DEBUG][       Thread-255693][   transport.py][1871] : kex follows: False
2025-06-13 13:00:22,083 [DEBUG][       Thread-255693][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 13:00:22,083 [DEBUG][       Thread-255693][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 13:00:22,083 [DEBUG][       Thread-255693][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 13:00:22,083 [DEBUG][       Thread-255693][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 13:00:22,083 [DEBUG][       Thread-255693][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 13:00:22,083 [DEBUG][       Thread-255693][   transport.py][1871] : Compression: none
2025-06-13 13:00:22,083 [DEBUG][       Thread-255693][   transport.py][1871] : === End of kex handshake ===
2025-06-13 13:00:22,142 [DEBUG][       Thread-255693][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 13:00:22,142 [DEBUG][       Thread-255693][   transport.py][1871] : Switch to new keys ...
2025-06-13 13:00:22,143 [DEBUG][       Thread-255693][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 13:00:22,143 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 13:00:22,144 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 13:00:22,202 [DEBUG][       Thread-255693][   transport.py][1871] : userauth is OK
2025-06-13 13:00:22,202 [DEBUG][       Thread-255693][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 13:00:22,202 [DEBUG][       Thread-255693][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 13:00:22,202 [DEBUG][       Thread-255693][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 13:00:22,202 [DEBUG][       Thread-255693][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 13:00:22,221 [ INFO][       Thread-255693][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 13:00:22,222 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 13:00:22,222 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 13:00:23,252 [DEBUG][       Thread-255693][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 13:00:23,252 [DEBUG][       Thread-255693][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 13:00:23,300 [DEBUG][       Thread-255693][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 13:00:23,300 [DEBUG][       Thread-255693][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 13:00:23,309 [DEBUG][       Thread-255693][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 13:00:23,318 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 13:00:23,319 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 13:00:23,327 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 13:00:23,336 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 13:00:23,337 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 13:00:23,337 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 13:00:23,345 [DEBUG][       Thread-255693][   transport.py][1871] : EOF in transport thread
2025-06-13 13:00:25,188 [DEBUG][Thread-255695 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:00:33,348 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 13:00:33,348 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 13:00:33,348 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 13:00:33,351 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 13:00:33,805 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 13, 0, 15), 14.29, 37.16, 0.0, 16.11, 13.0, 0, 0, 0, 2, 0, 0),)
2025-06-13 13:00:33,805 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 13:00:15
2025-06-13 13:00:33,886 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 13:00:33,890 [DEBUG][       Thread-255696][   transport.py][1871] : starting thread (client mode): 0x863507c0
2025-06-13 13:00:33,890 [DEBUG][       Thread-255696][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 13:00:33,911 [DEBUG][       Thread-255696][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 13:00:33,911 [ INFO][       Thread-255696][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 13:00:33,914 [DEBUG][       Thread-255696][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 13:00:33,914 [DEBUG][       Thread-255696][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 13:00:33,914 [DEBUG][       Thread-255696][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 13:00:33,914 [DEBUG][       Thread-255696][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:00:33,914 [DEBUG][       Thread-255696][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:00:33,914 [DEBUG][       Thread-255696][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:00:33,914 [DEBUG][       Thread-255696][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:00:33,914 [DEBUG][       Thread-255696][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 13:00:33,914 [DEBUG][       Thread-255696][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 13:00:33,914 [DEBUG][       Thread-255696][   transport.py][1871] : client lang: <none>
2025-06-13 13:00:33,914 [DEBUG][       Thread-255696][   transport.py][1871] : server lang: <none>
2025-06-13 13:00:33,914 [DEBUG][       Thread-255696][   transport.py][1871] : kex follows: False
2025-06-13 13:00:33,914 [DEBUG][       Thread-255696][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 13:00:33,914 [DEBUG][       Thread-255696][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 13:00:33,914 [DEBUG][       Thread-255696][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 13:00:33,914 [DEBUG][       Thread-255696][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 13:00:33,914 [DEBUG][       Thread-255696][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 13:00:33,914 [DEBUG][       Thread-255696][   transport.py][1871] : Compression: none
2025-06-13 13:00:33,914 [DEBUG][       Thread-255696][   transport.py][1871] : === End of kex handshake ===
2025-06-13 13:00:33,932 [DEBUG][       Thread-255696][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 13:00:33,932 [DEBUG][       Thread-255696][   transport.py][1871] : Switch to new keys ...
2025-06-13 13:00:33,933 [DEBUG][       Thread-255696][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 13:00:33,933 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 13:00:33,933 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 13:00:33,934 [DEBUG][       Thread-255696][   transport.py][1871] : userauth is OK
2025-06-13 13:00:33,960 [ INFO][       Thread-255696][   transport.py][1871] : Authentication (password) successful!
2025-06-13 13:00:33,960 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 13:00:34,212 [DEBUG][Thread-255698 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:00:34,591 [DEBUG][       Thread-255696][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 13:00:34,592 [DEBUG][       Thread-255696][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 13:00:34,633 [DEBUG][       Thread-255696][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 13:00:34,633 [DEBUG][       Thread-255696][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 13:00:34,636 [DEBUG][       Thread-255696][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 13:00:34,648 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 13:00:34,648 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 13:00:34,650 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 13:00:34,652 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 13:00:34,658 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 13:00:34,660 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 13:00:34,660 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 13:00:34,661 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 13:00:34,661 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.458618 -999.00  +12.80  14.72     41   -0.00 1 1 1 1 1   888    0 12.61 9.61 NA 15.3 14.7 5.0 25.1 17.4 -28.8 16.1 -30.9 16.0 -28.4 17.4 -27.2
2025-06-13 13:00:34,661 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 13:00:34,661 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 13:00:34,661 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.458618
2025-06-13 13:00:34,662 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 13:00:34,662 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 13:00:34,662 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 13:00:34,663 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 13:00:34,663 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 13:00:34,663 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T13:00:15', tmtdew=14.29, humidity=37.16, cloud=0.0, wind=16.11, temperature=13.0, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T11:00:24.595', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 13:00:34,664 [DEBUG][       Thread-255696][   transport.py][1871] : EOF in transport thread
2025-06-13 13:00:34,747 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 13:00:34,761 [DEBUG][       Thread-255700][   transport.py][1871] : starting thread (client mode): 0x86893820
2025-06-13 13:00:34,761 [DEBUG][       Thread-255700][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 13:00:34,778 [DEBUG][       Thread-255700][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 13:00:34,778 [ INFO][       Thread-255700][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 13:00:34,786 [DEBUG][       Thread-255700][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 13:00:34,786 [DEBUG][       Thread-255700][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 13:00:34,786 [DEBUG][       Thread-255700][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 13:00:34,786 [DEBUG][       Thread-255700][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:00:34,786 [DEBUG][       Thread-255700][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:00:34,786 [DEBUG][       Thread-255700][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:00:34,786 [DEBUG][       Thread-255700][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:00:34,786 [DEBUG][       Thread-255700][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 13:00:34,786 [DEBUG][       Thread-255700][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 13:00:34,787 [DEBUG][       Thread-255700][   transport.py][1871] : client lang: <none>
2025-06-13 13:00:34,787 [DEBUG][       Thread-255700][   transport.py][1871] : server lang: <none>
2025-06-13 13:00:34,787 [DEBUG][       Thread-255700][   transport.py][1871] : kex follows: False
2025-06-13 13:00:34,787 [DEBUG][       Thread-255700][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 13:00:34,787 [DEBUG][       Thread-255700][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 13:00:34,787 [DEBUG][       Thread-255700][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 13:00:34,787 [DEBUG][       Thread-255700][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 13:00:34,787 [DEBUG][       Thread-255700][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 13:00:34,787 [DEBUG][       Thread-255700][   transport.py][1871] : Compression: none
2025-06-13 13:00:34,787 [DEBUG][       Thread-255700][   transport.py][1871] : === End of kex handshake ===
2025-06-13 13:00:34,846 [DEBUG][       Thread-255700][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 13:00:34,847 [DEBUG][       Thread-255700][   transport.py][1871] : Switch to new keys ...
2025-06-13 13:00:34,847 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 13:00:34,848 [DEBUG][       Thread-255700][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 13:00:34,849 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 13:00:34,902 [DEBUG][       Thread-255700][   transport.py][1871] : userauth is OK
2025-06-13 13:00:34,902 [DEBUG][       Thread-255700][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 13:00:34,902 [DEBUG][       Thread-255700][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 13:00:34,902 [DEBUG][       Thread-255700][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 13:00:34,902 [DEBUG][       Thread-255700][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 13:00:34,916 [ INFO][       Thread-255700][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 13:00:34,916 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 13:00:34,916 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 13:00:35,946 [DEBUG][       Thread-255700][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 13:00:35,946 [DEBUG][       Thread-255700][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 13:00:35,997 [DEBUG][       Thread-255700][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 13:00:35,997 [DEBUG][       Thread-255700][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 13:00:36,008 [DEBUG][       Thread-255700][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 13:00:36,018 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 13:00:36,019 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 13:00:36,028 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 13:00:36,037 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 13:00:36,038 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 13:00:36,038 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 13:00:36,048 [DEBUG][       Thread-255700][   transport.py][1871] : EOF in transport thread
2025-06-13 13:00:43,235 [DEBUG][Thread-255702 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:00:46,049 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 13:00:46,049 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 13:00:46,049 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 13:00:46,052 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 13:00:46,519 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 13, 0, 15), 14.29, 37.16, 0.0, 16.11, 13.0, 0, 0, 0, 2, 0, 0),)
2025-06-13 13:00:46,519 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 13:00:15
2025-06-13 13:00:46,601 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 13:00:46,605 [DEBUG][       Thread-255703][   transport.py][1871] : starting thread (client mode): 0x84205390
2025-06-13 13:00:46,605 [DEBUG][       Thread-255703][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 13:00:46,625 [DEBUG][       Thread-255703][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 13:00:46,625 [ INFO][       Thread-255703][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 13:00:46,629 [DEBUG][       Thread-255703][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 13:00:46,629 [DEBUG][       Thread-255703][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 13:00:46,629 [DEBUG][       Thread-255703][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 13:00:46,629 [DEBUG][       Thread-255703][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:00:46,629 [DEBUG][       Thread-255703][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:00:46,629 [DEBUG][       Thread-255703][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:00:46,629 [DEBUG][       Thread-255703][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:00:46,629 [DEBUG][       Thread-255703][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 13:00:46,629 [DEBUG][       Thread-255703][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 13:00:46,629 [DEBUG][       Thread-255703][   transport.py][1871] : client lang: <none>
2025-06-13 13:00:46,629 [DEBUG][       Thread-255703][   transport.py][1871] : server lang: <none>
2025-06-13 13:00:46,629 [DEBUG][       Thread-255703][   transport.py][1871] : kex follows: False
2025-06-13 13:00:46,629 [DEBUG][       Thread-255703][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 13:00:46,629 [DEBUG][       Thread-255703][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 13:00:46,629 [DEBUG][       Thread-255703][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 13:00:46,629 [DEBUG][       Thread-255703][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 13:00:46,629 [DEBUG][       Thread-255703][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 13:00:46,629 [DEBUG][       Thread-255703][   transport.py][1871] : Compression: none
2025-06-13 13:00:46,629 [DEBUG][       Thread-255703][   transport.py][1871] : === End of kex handshake ===
2025-06-13 13:00:46,645 [DEBUG][       Thread-255703][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 13:00:46,646 [DEBUG][       Thread-255703][   transport.py][1871] : Switch to new keys ...
2025-06-13 13:00:46,646 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 13:00:46,646 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 13:00:46,647 [DEBUG][       Thread-255703][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 13:00:46,648 [DEBUG][       Thread-255703][   transport.py][1871] : userauth is OK
2025-06-13 13:00:46,661 [ INFO][       Thread-255703][   transport.py][1871] : Authentication (password) successful!
2025-06-13 13:00:46,662 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 13:00:47,289 [DEBUG][       Thread-255703][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 13:00:47,289 [DEBUG][       Thread-255703][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 13:00:47,332 [DEBUG][       Thread-255703][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 13:00:47,333 [DEBUG][       Thread-255703][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 13:00:47,335 [DEBUG][       Thread-255703][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 13:00:47,346 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 13:00:47,346 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 13:00:47,347 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 13:00:47,348 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 13:00:47,351 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 13:00:47,352 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 13:00:47,352 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 13:00:47,352 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 13:00:47,352 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.458618 -999.00  +12.80  14.72     41   -0.00 1 1 1 1 1   888    0 12.61 9.61 NA 15.3 14.7 5.0 25.1 17.4 -28.8 16.1 -30.9 16.0 -28.4 17.4 -27.2
2025-06-13 13:00:47,352 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 13:00:47,352 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 13:00:47,352 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.458618
2025-06-13 13:00:47,352 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 13:00:47,352 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 13:00:47,352 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 13:00:47,352 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 13:00:47,352 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 13:00:47,352 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T13:00:15', tmtdew=14.29, humidity=37.16, cloud=0.0, wind=16.11, temperature=13.0, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T11:00:24.595', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 13:00:47,352 [DEBUG][       Thread-255703][   transport.py][1871] : EOF in transport thread
2025-06-13 13:00:47,424 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 13:00:47,436 [DEBUG][       Thread-255706][   transport.py][1871] : starting thread (client mode): 0x863c9300
2025-06-13 13:00:47,436 [DEBUG][       Thread-255706][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 13:00:47,451 [DEBUG][       Thread-255706][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 13:00:47,451 [ INFO][       Thread-255706][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 13:00:47,458 [DEBUG][       Thread-255706][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 13:00:47,458 [DEBUG][       Thread-255706][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 13:00:47,458 [DEBUG][       Thread-255706][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 13:00:47,458 [DEBUG][       Thread-255706][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:00:47,458 [DEBUG][       Thread-255706][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:00:47,458 [DEBUG][       Thread-255706][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:00:47,458 [DEBUG][       Thread-255706][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:00:47,458 [DEBUG][       Thread-255706][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 13:00:47,458 [DEBUG][       Thread-255706][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 13:00:47,458 [DEBUG][       Thread-255706][   transport.py][1871] : client lang: <none>
2025-06-13 13:00:47,458 [DEBUG][       Thread-255706][   transport.py][1871] : server lang: <none>
2025-06-13 13:00:47,458 [DEBUG][       Thread-255706][   transport.py][1871] : kex follows: False
2025-06-13 13:00:47,458 [DEBUG][       Thread-255706][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 13:00:47,458 [DEBUG][       Thread-255706][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 13:00:47,458 [DEBUG][       Thread-255706][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 13:00:47,458 [DEBUG][       Thread-255706][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 13:00:47,458 [DEBUG][       Thread-255706][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 13:00:47,458 [DEBUG][       Thread-255706][   transport.py][1871] : Compression: none
2025-06-13 13:00:47,458 [DEBUG][       Thread-255706][   transport.py][1871] : === End of kex handshake ===
2025-06-13 13:00:47,516 [DEBUG][       Thread-255706][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 13:00:47,516 [DEBUG][       Thread-255706][   transport.py][1871] : Switch to new keys ...
2025-06-13 13:00:47,516 [DEBUG][       Thread-255706][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 13:00:47,517 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 13:00:47,517 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 13:00:47,580 [DEBUG][       Thread-255706][   transport.py][1871] : userauth is OK
2025-06-13 13:00:47,580 [DEBUG][       Thread-255706][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 13:00:47,580 [DEBUG][       Thread-255706][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 13:00:47,580 [DEBUG][       Thread-255706][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 13:00:47,580 [DEBUG][       Thread-255706][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 13:00:47,594 [ INFO][       Thread-255706][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 13:00:47,595 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 13:00:47,595 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 13:00:48,441 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:00:48,442 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:00:48,660 [DEBUG][       Thread-255706][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 13:00:48,661 [DEBUG][       Thread-255706][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 13:00:48,711 [DEBUG][       Thread-255706][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 13:00:48,711 [DEBUG][       Thread-255706][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 13:00:48,720 [DEBUG][       Thread-255706][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 13:00:48,728 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 13:00:48,728 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 13:00:48,736 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 13:00:48,744 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 13:00:48,744 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 13:00:48,744 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 13:00:48,751 [DEBUG][       Thread-255706][   transport.py][1871] : EOF in transport thread
2025-06-13 13:00:52,254 [DEBUG][Thread-255708 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:00:58,754 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 13:00:58,754 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 13:00:58,754 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 13:00:58,757 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 13:00:59,211 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 13, 0, 47), 14.36, 36.98, 0.0, 15.72, 13.0, 0, 0, 0, 2, 0, 0),)
2025-06-13 13:00:59,211 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 13:00:47
2025-06-13 13:00:59,292 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 13:00:59,296 [DEBUG][       Thread-255709][   transport.py][1871] : starting thread (client mode): 0x86893ca0
2025-06-13 13:00:59,296 [DEBUG][       Thread-255709][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 13:00:59,307 [DEBUG][       Thread-255709][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 13:00:59,308 [ INFO][       Thread-255709][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 13:00:59,311 [DEBUG][       Thread-255709][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 13:00:59,311 [DEBUG][       Thread-255709][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 13:00:59,311 [DEBUG][       Thread-255709][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 13:00:59,311 [DEBUG][       Thread-255709][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:00:59,311 [DEBUG][       Thread-255709][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:00:59,311 [DEBUG][       Thread-255709][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:00:59,311 [DEBUG][       Thread-255709][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:00:59,311 [DEBUG][       Thread-255709][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 13:00:59,311 [DEBUG][       Thread-255709][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 13:00:59,311 [DEBUG][       Thread-255709][   transport.py][1871] : client lang: <none>
2025-06-13 13:00:59,311 [DEBUG][       Thread-255709][   transport.py][1871] : server lang: <none>
2025-06-13 13:00:59,311 [DEBUG][       Thread-255709][   transport.py][1871] : kex follows: False
2025-06-13 13:00:59,311 [DEBUG][       Thread-255709][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 13:00:59,311 [DEBUG][       Thread-255709][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 13:00:59,311 [DEBUG][       Thread-255709][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 13:00:59,311 [DEBUG][       Thread-255709][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 13:00:59,311 [DEBUG][       Thread-255709][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 13:00:59,311 [DEBUG][       Thread-255709][   transport.py][1871] : Compression: none
2025-06-13 13:00:59,311 [DEBUG][       Thread-255709][   transport.py][1871] : === End of kex handshake ===
2025-06-13 13:00:59,328 [DEBUG][       Thread-255709][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 13:00:59,329 [DEBUG][       Thread-255709][   transport.py][1871] : Switch to new keys ...
2025-06-13 13:00:59,329 [DEBUG][       Thread-255709][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 13:00:59,329 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 13:00:59,330 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 13:00:59,331 [DEBUG][       Thread-255709][   transport.py][1871] : userauth is OK
2025-06-13 13:00:59,355 [ INFO][       Thread-255709][   transport.py][1871] : Authentication (password) successful!
2025-06-13 13:00:59,356 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 13:01:00,006 [DEBUG][       Thread-255709][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 13:01:00,006 [DEBUG][       Thread-255709][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 13:01:00,049 [DEBUG][       Thread-255709][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 13:01:00,049 [DEBUG][       Thread-255709][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 13:01:00,052 [DEBUG][       Thread-255709][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 13:01:00,065 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 13:01:00,066 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 13:01:00,067 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 13:01:00,069 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 13:01:00,074 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 13:01:00,076 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 13:01:00,077 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 13:01:00,077 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 13:01:00,077 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.458618 -999.00  +12.80  14.72     41   -0.00 1 1 1 1 1   888    0 12.61 9.61 NA 15.3 14.7 5.0 25.1 17.4 -28.8 16.1 -30.9 16.0 -28.4 17.4 -27.2
2025-06-13 13:01:00,078 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 13:01:00,078 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 13:01:00,078 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.458618
2025-06-13 13:01:00,078 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 13:01:00,079 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 13:01:00,079 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 13:01:00,079 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 13:01:00,079 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 13:01:00,079 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T13:00:47', tmtdew=14.36, humidity=36.98, cloud=0.0, wind=15.72, temperature=13.0, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T11:00:24.595', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 13:01:00,079 [DEBUG][       Thread-255709][   transport.py][1871] : EOF in transport thread
2025-06-13 13:01:00,165 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 13:01:00,178 [DEBUG][       Thread-255712][   transport.py][1871] : starting thread (client mode): 0x867b7640
2025-06-13 13:01:00,178 [DEBUG][       Thread-255712][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 13:01:00,194 [DEBUG][       Thread-255712][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 13:01:00,194 [ INFO][       Thread-255712][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 13:01:00,202 [DEBUG][       Thread-255712][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 13:01:00,202 [DEBUG][       Thread-255712][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 13:01:00,202 [DEBUG][       Thread-255712][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 13:01:00,202 [DEBUG][       Thread-255712][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:01:00,202 [DEBUG][       Thread-255712][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:01:00,202 [DEBUG][       Thread-255712][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:01:00,202 [DEBUG][       Thread-255712][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:01:00,202 [DEBUG][       Thread-255712][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 13:01:00,202 [DEBUG][       Thread-255712][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 13:01:00,202 [DEBUG][       Thread-255712][   transport.py][1871] : client lang: <none>
2025-06-13 13:01:00,202 [DEBUG][       Thread-255712][   transport.py][1871] : server lang: <none>
2025-06-13 13:01:00,202 [DEBUG][       Thread-255712][   transport.py][1871] : kex follows: False
2025-06-13 13:01:00,202 [DEBUG][       Thread-255712][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 13:01:00,202 [DEBUG][       Thread-255712][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 13:01:00,203 [DEBUG][       Thread-255712][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 13:01:00,203 [DEBUG][       Thread-255712][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 13:01:00,203 [DEBUG][       Thread-255712][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 13:01:00,203 [DEBUG][       Thread-255712][   transport.py][1871] : Compression: none
2025-06-13 13:01:00,203 [DEBUG][       Thread-255712][   transport.py][1871] : === End of kex handshake ===
2025-06-13 13:01:00,262 [DEBUG][       Thread-255712][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 13:01:00,262 [DEBUG][       Thread-255712][   transport.py][1871] : Switch to new keys ...
2025-06-13 13:01:00,263 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 13:01:00,264 [DEBUG][       Thread-255712][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 13:01:00,264 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 13:01:00,318 [DEBUG][       Thread-255712][   transport.py][1871] : userauth is OK
2025-06-13 13:01:00,319 [DEBUG][       Thread-255712][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 13:01:00,319 [DEBUG][       Thread-255712][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 13:01:00,319 [DEBUG][       Thread-255712][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 13:01:00,319 [DEBUG][       Thread-255712][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 13:01:00,338 [ INFO][       Thread-255712][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 13:01:00,338 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 13:01:00,338 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 13:01:01,275 [DEBUG][Thread-255714 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:01:01,357 [DEBUG][       Thread-255712][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 13:01:01,358 [DEBUG][       Thread-255712][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 13:01:01,408 [DEBUG][       Thread-255712][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 13:01:01,408 [DEBUG][       Thread-255712][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 13:01:01,417 [DEBUG][       Thread-255712][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 13:01:01,427 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 13:01:01,427 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 13:01:01,436 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 13:01:01,447 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 13:01:01,447 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 13:01:01,448 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 13:01:01,456 [DEBUG][       Thread-255712][   transport.py][1871] : EOF in transport thread
2025-06-13 13:01:03,794 [DEBUG][Thread-255715 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:01:04,865 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:01:04,866 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:01:10,308 [DEBUG][Thread-255716 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:01:11,458 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 13:01:11,459 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 13:01:11,459 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 13:01:11,461 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 13:01:11,925 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 13, 0, 47), 14.36, 36.98, 0.0, 15.72, 13.0, 0, 0, 0, 2, 0, 0),)
2025-06-13 13:01:11,925 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 13:00:47
2025-06-13 13:01:12,006 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 13:01:12,012 [DEBUG][       Thread-255717][   transport.py][1871] : starting thread (client mode): 0x863526e0
2025-06-13 13:01:12,012 [DEBUG][       Thread-255717][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 13:01:12,032 [DEBUG][       Thread-255717][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 13:01:12,032 [ INFO][       Thread-255717][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 13:01:12,035 [DEBUG][       Thread-255717][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 13:01:12,035 [DEBUG][       Thread-255717][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 13:01:12,035 [DEBUG][       Thread-255717][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 13:01:12,035 [DEBUG][       Thread-255717][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:01:12,035 [DEBUG][       Thread-255717][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:01:12,035 [DEBUG][       Thread-255717][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:01:12,035 [DEBUG][       Thread-255717][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:01:12,035 [DEBUG][       Thread-255717][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 13:01:12,035 [DEBUG][       Thread-255717][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 13:01:12,035 [DEBUG][       Thread-255717][   transport.py][1871] : client lang: <none>
2025-06-13 13:01:12,035 [DEBUG][       Thread-255717][   transport.py][1871] : server lang: <none>
2025-06-13 13:01:12,035 [DEBUG][       Thread-255717][   transport.py][1871] : kex follows: False
2025-06-13 13:01:12,035 [DEBUG][       Thread-255717][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 13:01:12,035 [DEBUG][       Thread-255717][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 13:01:12,035 [DEBUG][       Thread-255717][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 13:01:12,035 [DEBUG][       Thread-255717][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 13:01:12,035 [DEBUG][       Thread-255717][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 13:01:12,035 [DEBUG][       Thread-255717][   transport.py][1871] : Compression: none
2025-06-13 13:01:12,036 [DEBUG][       Thread-255717][   transport.py][1871] : === End of kex handshake ===
2025-06-13 13:01:12,044 [DEBUG][       Thread-255717][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 13:01:12,044 [DEBUG][       Thread-255717][   transport.py][1871] : Switch to new keys ...
2025-06-13 13:01:12,045 [DEBUG][       Thread-255717][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 13:01:12,045 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 13:01:12,045 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 13:01:12,046 [DEBUG][       Thread-255717][   transport.py][1871] : userauth is OK
2025-06-13 13:01:12,071 [ INFO][       Thread-255717][   transport.py][1871] : Authentication (password) successful!
2025-06-13 13:01:12,072 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 13:01:12,705 [DEBUG][       Thread-255717][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 13:01:12,705 [DEBUG][       Thread-255717][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 13:01:12,749 [DEBUG][       Thread-255717][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 13:01:12,749 [DEBUG][       Thread-255717][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 13:01:12,752 [DEBUG][       Thread-255717][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 13:01:12,764 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 13:01:12,764 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 13:01:12,766 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 13:01:12,768 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 13:01:12,773 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 13:01:12,775 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 13:01:12,776 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 13:01:12,776 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 13:01:12,776 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.458965 -999.00  +12.70  12.87     41   +0.00 1 1 1 1 1   888    0 12.51 7.36 ----- 12.5 12.9 39.2 21.5 17.4 -28.8 16.1 -30.5 16.1 -28.9 17.4 -27.0
2025-06-13 13:01:12,777 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 13:01:12,777 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 13:01:12,777 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.458965
2025-06-13 13:01:12,777 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 13:01:12,778 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 13:01:12,778 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 13:01:12,778 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 13:01:12,778 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 13:01:12,778 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T13:00:47', tmtdew=14.36, humidity=36.98, cloud=0.0, wind=15.72, temperature=13.0, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T11:00:54.576', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 13:01:12,779 [DEBUG][       Thread-255717][   transport.py][1871] : EOF in transport thread
2025-06-13 13:01:12,862 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 13:01:13,838 [DEBUG][Thread-255720 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:01:19,330 [DEBUG][Thread-255721 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:01:28,352 [DEBUG][Thread-255722 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:01:37,376 [DEBUG][Thread-255723 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:01:46,395 [DEBUG][Thread-255724 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:01:48,583 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:01:48,584 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:01:55,413 [DEBUG][Thread-255725 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:02:04,434 [DEBUG][Thread-255726 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:02:04,945 [DEBUG][Thread-255727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:02:06,025 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:02:06,026 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:02:13,454 [DEBUG][Thread-255728 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:02:13,898 [DEBUG][Thread-255729 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:02:22,475 [DEBUG][Thread-255730 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:02:31,493 [DEBUG][Thread-255731 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:02:40,515 [DEBUG][Thread-255732 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:02:48,731 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:02:48,731 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:02:49,537 [DEBUG][Thread-255733 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:02:58,557 [DEBUG][Thread-255734 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:03:06,098 [DEBUG][Thread-255735 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:03:07,181 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:03:07,182 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:03:07,576 [DEBUG][Thread-255736 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:03:13,949 [DEBUG][Thread-255737 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:03:16,597 [DEBUG][Thread-255738 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:03:21,108 [WARNING][ poll_weather_worker][      driver.py][ 286] : Unable to open ssh connection for writing weather state to io.saao.ac.za: [Errno 110] Connection timed out
2025-06-13 13:03:25,620 [DEBUG][Thread-255739 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:03:31,119 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 13:03:31,119 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 13:03:31,119 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 13:03:31,122 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 13:03:31,608 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 13, 3, 26), 14.33, 37.15, 0.0, 12.72, 12.9, 0, 0, 0, 2, 0, 0),)
2025-06-13 13:03:31,608 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 13:03:26
2025-06-13 13:03:31,688 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 13:03:31,692 [DEBUG][       Thread-255740][   transport.py][1871] : starting thread (client mode): 0x86352920
2025-06-13 13:03:31,692 [DEBUG][       Thread-255740][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 13:03:31,713 [DEBUG][       Thread-255740][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 13:03:31,713 [ INFO][       Thread-255740][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 13:03:31,715 [DEBUG][       Thread-255740][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 13:03:31,715 [DEBUG][       Thread-255740][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 13:03:31,715 [DEBUG][       Thread-255740][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 13:03:31,715 [DEBUG][       Thread-255740][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:03:31,715 [DEBUG][       Thread-255740][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:03:31,715 [DEBUG][       Thread-255740][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:03:31,715 [DEBUG][       Thread-255740][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:03:31,715 [DEBUG][       Thread-255740][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 13:03:31,715 [DEBUG][       Thread-255740][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 13:03:31,715 [DEBUG][       Thread-255740][   transport.py][1871] : client lang: <none>
2025-06-13 13:03:31,715 [DEBUG][       Thread-255740][   transport.py][1871] : server lang: <none>
2025-06-13 13:03:31,715 [DEBUG][       Thread-255740][   transport.py][1871] : kex follows: False
2025-06-13 13:03:31,715 [DEBUG][       Thread-255740][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 13:03:31,715 [DEBUG][       Thread-255740][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 13:03:31,715 [DEBUG][       Thread-255740][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 13:03:31,715 [DEBUG][       Thread-255740][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 13:03:31,715 [DEBUG][       Thread-255740][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 13:03:31,716 [DEBUG][       Thread-255740][   transport.py][1871] : Compression: none
2025-06-13 13:03:31,716 [DEBUG][       Thread-255740][   transport.py][1871] : === End of kex handshake ===
2025-06-13 13:03:31,730 [DEBUG][       Thread-255740][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 13:03:31,731 [DEBUG][       Thread-255740][   transport.py][1871] : Switch to new keys ...
2025-06-13 13:03:31,731 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 13:03:31,731 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 13:03:31,732 [DEBUG][       Thread-255740][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 13:03:31,733 [DEBUG][       Thread-255740][   transport.py][1871] : userauth is OK
2025-06-13 13:03:31,746 [ INFO][       Thread-255740][   transport.py][1871] : Authentication (password) successful!
2025-06-13 13:03:31,747 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 13:03:32,502 [DEBUG][       Thread-255740][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 13:03:32,503 [DEBUG][       Thread-255740][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 13:03:32,549 [DEBUG][       Thread-255740][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 13:03:32,549 [DEBUG][       Thread-255740][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 13:03:32,552 [DEBUG][       Thread-255740][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 13:03:32,565 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 13:03:32,565 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 13:03:32,567 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 13:03:32,569 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 13:03:32,575 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 13:03:32,577 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 13:03:32,577 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 13:03:32,578 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 13:03:32,578 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.460354 -999.00  +12.70  16.83     41   +0.10 1 1 1 1 1   888    0 12.17 -11.48 ----- 14.7 16.8 56.6 21.9 17.5 -29.1 16.1 -31.0 16.1 -30.3 17.5 -27.7
2025-06-13 13:03:32,578 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 13:03:32,578 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 13:03:32,578 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.460354
2025-06-13 13:03:32,578 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 13:03:32,579 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 13:03:32,579 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 13:03:32,579 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 13:03:32,579 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 13:03:32,579 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T13:03:26', tmtdew=14.33, humidity=37.15, cloud=0.0, wind=12.72, temperature=12.9, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T11:02:54.586', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 13:03:32,579 [DEBUG][       Thread-255740][   transport.py][1871] : EOF in transport thread
2025-06-13 13:03:32,678 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 13:03:32,693 [DEBUG][       Thread-255743][   transport.py][1871] : starting thread (client mode): 0x867ff040
2025-06-13 13:03:32,693 [DEBUG][       Thread-255743][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 13:03:32,708 [DEBUG][       Thread-255743][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 13:03:32,708 [ INFO][       Thread-255743][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 13:03:32,716 [DEBUG][       Thread-255743][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 13:03:32,716 [DEBUG][       Thread-255743][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 13:03:32,716 [DEBUG][       Thread-255743][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 13:03:32,716 [DEBUG][       Thread-255743][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:03:32,716 [DEBUG][       Thread-255743][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:03:32,716 [DEBUG][       Thread-255743][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:03:32,716 [DEBUG][       Thread-255743][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:03:32,716 [DEBUG][       Thread-255743][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 13:03:32,716 [DEBUG][       Thread-255743][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 13:03:32,716 [DEBUG][       Thread-255743][   transport.py][1871] : client lang: <none>
2025-06-13 13:03:32,716 [DEBUG][       Thread-255743][   transport.py][1871] : server lang: <none>
2025-06-13 13:03:32,717 [DEBUG][       Thread-255743][   transport.py][1871] : kex follows: False
2025-06-13 13:03:32,717 [DEBUG][       Thread-255743][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 13:03:32,717 [DEBUG][       Thread-255743][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 13:03:32,717 [DEBUG][       Thread-255743][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 13:03:32,717 [DEBUG][       Thread-255743][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 13:03:32,717 [DEBUG][       Thread-255743][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 13:03:32,717 [DEBUG][       Thread-255743][   transport.py][1871] : Compression: none
2025-06-13 13:03:32,717 [DEBUG][       Thread-255743][   transport.py][1871] : === End of kex handshake ===
2025-06-13 13:03:32,774 [DEBUG][       Thread-255743][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 13:03:32,775 [DEBUG][       Thread-255743][   transport.py][1871] : Switch to new keys ...
2025-06-13 13:03:32,775 [DEBUG][       Thread-255743][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 13:03:32,775 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 13:03:32,776 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 13:03:32,846 [DEBUG][       Thread-255743][   transport.py][1871] : userauth is OK
2025-06-13 13:03:32,846 [DEBUG][       Thread-255743][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 13:03:32,847 [DEBUG][       Thread-255743][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 13:03:32,847 [DEBUG][       Thread-255743][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 13:03:32,847 [DEBUG][       Thread-255743][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 13:03:32,868 [ INFO][       Thread-255743][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 13:03:32,869 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 13:03:32,869 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 13:03:33,889 [DEBUG][       Thread-255743][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 13:03:33,889 [DEBUG][       Thread-255743][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 13:03:33,942 [DEBUG][       Thread-255743][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 13:03:33,942 [DEBUG][       Thread-255743][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 13:03:33,951 [DEBUG][       Thread-255743][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 13:03:33,960 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 13:03:33,961 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 13:03:33,969 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 13:03:33,979 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 13:03:33,979 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 13:03:33,980 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 13:03:33,988 [DEBUG][       Thread-255743][   transport.py][1871] : EOF in transport thread
2025-06-13 13:03:34,641 [DEBUG][Thread-255745 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:03:43,676 [DEBUG][Thread-255746 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:03:43,983 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 13:03:43,984 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 13:03:43,984 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 13:03:43,987 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 13:03:44,455 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 13, 3, 26), 14.33, 37.15, 0.0, 12.72, 12.9, 0, 0, 0, 2, 0, 0),)
2025-06-13 13:03:44,455 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 13:03:26
2025-06-13 13:03:44,536 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 13:03:44,540 [DEBUG][       Thread-255747][   transport.py][1871] : starting thread (client mode): 0x863521d0
2025-06-13 13:03:44,540 [DEBUG][       Thread-255747][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 13:03:44,559 [DEBUG][       Thread-255747][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 13:03:44,559 [ INFO][       Thread-255747][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 13:03:44,562 [DEBUG][       Thread-255747][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 13:03:44,562 [DEBUG][       Thread-255747][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 13:03:44,562 [DEBUG][       Thread-255747][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 13:03:44,562 [DEBUG][       Thread-255747][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:03:44,563 [DEBUG][       Thread-255747][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:03:44,563 [DEBUG][       Thread-255747][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:03:44,563 [DEBUG][       Thread-255747][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:03:44,563 [DEBUG][       Thread-255747][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 13:03:44,563 [DEBUG][       Thread-255747][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 13:03:44,563 [DEBUG][       Thread-255747][   transport.py][1871] : client lang: <none>
2025-06-13 13:03:44,563 [DEBUG][       Thread-255747][   transport.py][1871] : server lang: <none>
2025-06-13 13:03:44,563 [DEBUG][       Thread-255747][   transport.py][1871] : kex follows: False
2025-06-13 13:03:44,563 [DEBUG][       Thread-255747][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 13:03:44,563 [DEBUG][       Thread-255747][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 13:03:44,563 [DEBUG][       Thread-255747][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 13:03:44,563 [DEBUG][       Thread-255747][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 13:03:44,563 [DEBUG][       Thread-255747][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 13:03:44,563 [DEBUG][       Thread-255747][   transport.py][1871] : Compression: none
2025-06-13 13:03:44,563 [DEBUG][       Thread-255747][   transport.py][1871] : === End of kex handshake ===
2025-06-13 13:03:44,580 [DEBUG][       Thread-255747][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 13:03:44,580 [DEBUG][       Thread-255747][   transport.py][1871] : Switch to new keys ...
2025-06-13 13:03:44,581 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 13:03:44,581 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 13:03:44,581 [DEBUG][       Thread-255747][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 13:03:44,582 [DEBUG][       Thread-255747][   transport.py][1871] : userauth is OK
2025-06-13 13:03:44,595 [ INFO][       Thread-255747][   transport.py][1871] : Authentication (password) successful!
2025-06-13 13:03:44,596 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 13:03:45,365 [DEBUG][       Thread-255747][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 13:03:45,366 [DEBUG][       Thread-255747][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 13:03:45,409 [DEBUG][       Thread-255747][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 13:03:45,409 [DEBUG][       Thread-255747][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 13:03:45,412 [DEBUG][       Thread-255747][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 13:03:45,424 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 13:03:45,425 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 13:03:45,426 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 13:03:45,428 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 13:03:45,434 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 13:03:45,436 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 13:03:45,436 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 13:03:45,437 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 13:03:45,437 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.460354 -999.00  +12.70  16.83     41   +0.10 1 1 1 1 1   888    0 12.17 -11.48 ----- 14.7 16.8 56.6 21.9 17.5 -29.1 16.1 -31.0 16.1 -30.3 17.5 -27.7
2025-06-13 13:03:45,437 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 13:03:45,437 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 13:03:45,437 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.460354
2025-06-13 13:03:45,438 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 13:03:45,438 [DEBUG][       Thread-255747][   transport.py][1871] : EOF in transport thread
2025-06-13 13:03:45,439 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 13:03:45,439 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 13:03:45,440 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 13:03:45,440 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 13:03:45,440 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T13:03:26', tmtdew=14.33, humidity=37.15, cloud=0.0, wind=12.72, temperature=12.9, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T11:02:54.586', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 13:03:45,524 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 13:03:45,533 [DEBUG][       Thread-255750][   transport.py][1871] : starting thread (client mode): 0x863928f0
2025-06-13 13:03:45,534 [DEBUG][       Thread-255750][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 13:03:45,548 [DEBUG][       Thread-255750][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 13:03:45,548 [ INFO][       Thread-255750][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 13:03:45,556 [DEBUG][       Thread-255750][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 13:03:45,556 [DEBUG][       Thread-255750][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 13:03:45,556 [DEBUG][       Thread-255750][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 13:03:45,556 [DEBUG][       Thread-255750][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:03:45,556 [DEBUG][       Thread-255750][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:03:45,556 [DEBUG][       Thread-255750][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:03:45,556 [DEBUG][       Thread-255750][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:03:45,556 [DEBUG][       Thread-255750][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 13:03:45,556 [DEBUG][       Thread-255750][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 13:03:45,556 [DEBUG][       Thread-255750][   transport.py][1871] : client lang: <none>
2025-06-13 13:03:45,556 [DEBUG][       Thread-255750][   transport.py][1871] : server lang: <none>
2025-06-13 13:03:45,556 [DEBUG][       Thread-255750][   transport.py][1871] : kex follows: False
2025-06-13 13:03:45,556 [DEBUG][       Thread-255750][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 13:03:45,556 [DEBUG][       Thread-255750][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 13:03:45,556 [DEBUG][       Thread-255750][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 13:03:45,556 [DEBUG][       Thread-255750][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 13:03:45,556 [DEBUG][       Thread-255750][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 13:03:45,557 [DEBUG][       Thread-255750][   transport.py][1871] : Compression: none
2025-06-13 13:03:45,557 [DEBUG][       Thread-255750][   transport.py][1871] : === End of kex handshake ===
2025-06-13 13:03:45,615 [DEBUG][       Thread-255750][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 13:03:45,615 [DEBUG][       Thread-255750][   transport.py][1871] : Switch to new keys ...
2025-06-13 13:03:45,616 [DEBUG][       Thread-255750][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 13:03:45,616 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 13:03:45,617 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 13:03:45,680 [DEBUG][       Thread-255750][   transport.py][1871] : userauth is OK
2025-06-13 13:03:45,680 [DEBUG][       Thread-255750][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 13:03:45,681 [DEBUG][       Thread-255750][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 13:03:45,681 [DEBUG][       Thread-255750][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 13:03:45,681 [DEBUG][       Thread-255750][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 13:03:45,700 [ INFO][       Thread-255750][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 13:03:45,700 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 13:03:45,701 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 13:03:46,749 [DEBUG][       Thread-255750][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 13:03:46,749 [DEBUG][       Thread-255750][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 13:03:46,800 [DEBUG][       Thread-255750][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 13:03:46,800 [DEBUG][       Thread-255750][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 13:03:46,808 [DEBUG][       Thread-255750][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 13:03:46,816 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 13:03:46,816 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 13:03:46,824 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 13:03:46,832 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 13:03:46,832 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 13:03:46,832 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 13:03:46,840 [DEBUG][       Thread-255750][   transport.py][1871] : EOF in transport thread
2025-06-13 13:03:48,892 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:03:48,893 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:03:52,698 [DEBUG][Thread-255752 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:03:56,843 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 13:03:56,843 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 13:03:56,843 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 13:03:56,846 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 13:03:57,309 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 13, 3, 26), 14.33, 37.15, 0.0, 12.72, 12.9, 0, 0, 0, 2, 0, 0),)
2025-06-13 13:03:57,309 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 13:03:26
2025-06-13 13:03:57,389 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 13:03:57,394 [DEBUG][       Thread-255753][   transport.py][1871] : starting thread (client mode): 0x86393e20
2025-06-13 13:03:57,394 [DEBUG][       Thread-255753][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 13:03:57,414 [DEBUG][       Thread-255753][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 13:03:57,414 [ INFO][       Thread-255753][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 13:03:57,417 [DEBUG][       Thread-255753][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 13:03:57,417 [DEBUG][       Thread-255753][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 13:03:57,417 [DEBUG][       Thread-255753][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 13:03:57,417 [DEBUG][       Thread-255753][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:03:57,417 [DEBUG][       Thread-255753][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:03:57,417 [DEBUG][       Thread-255753][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:03:57,417 [DEBUG][       Thread-255753][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:03:57,417 [DEBUG][       Thread-255753][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 13:03:57,417 [DEBUG][       Thread-255753][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 13:03:57,417 [DEBUG][       Thread-255753][   transport.py][1871] : client lang: <none>
2025-06-13 13:03:57,417 [DEBUG][       Thread-255753][   transport.py][1871] : server lang: <none>
2025-06-13 13:03:57,417 [DEBUG][       Thread-255753][   transport.py][1871] : kex follows: False
2025-06-13 13:03:57,417 [DEBUG][       Thread-255753][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 13:03:57,417 [DEBUG][       Thread-255753][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 13:03:57,417 [DEBUG][       Thread-255753][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 13:03:57,417 [DEBUG][       Thread-255753][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 13:03:57,417 [DEBUG][       Thread-255753][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 13:03:57,417 [DEBUG][       Thread-255753][   transport.py][1871] : Compression: none
2025-06-13 13:03:57,417 [DEBUG][       Thread-255753][   transport.py][1871] : === End of kex handshake ===
2025-06-13 13:03:57,429 [DEBUG][       Thread-255753][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 13:03:57,429 [DEBUG][       Thread-255753][   transport.py][1871] : Switch to new keys ...
2025-06-13 13:03:57,430 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 13:03:57,430 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 13:03:57,431 [DEBUG][       Thread-255753][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 13:03:57,432 [DEBUG][       Thread-255753][   transport.py][1871] : userauth is OK
2025-06-13 13:03:57,456 [ INFO][       Thread-255753][   transport.py][1871] : Authentication (password) successful!
2025-06-13 13:03:57,457 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 13:03:58,101 [DEBUG][       Thread-255753][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 13:03:58,101 [DEBUG][       Thread-255753][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 13:03:58,145 [DEBUG][       Thread-255753][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 13:03:58,145 [DEBUG][       Thread-255753][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 13:03:58,149 [DEBUG][       Thread-255753][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 13:03:58,161 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 13:03:58,162 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 13:03:58,164 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 13:03:58,166 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 13:03:58,172 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 13:03:58,175 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 13:03:58,175 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 13:03:58,176 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 13:03:58,176 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.460701 -999.00  +12.90  19.92     42   +0.50 1 1 1 1 1   888    0 11.93 -13.53 ----- 13.5 19.9 33.8 21.8 17.6 -29.8 16.2 -30.4 16.1 -28.2 17.4 -30.5
2025-06-13 13:03:58,176 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 13:03:58,176 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 13:03:58,176 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.460701
2025-06-13 13:03:58,177 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 13:03:58,177 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 13:03:58,177 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 13:03:58,177 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 13:03:58,177 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 13:03:58,178 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T13:03:26', tmtdew=14.33, humidity=37.15, cloud=0.0, wind=12.72, temperature=12.9, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T11:03:24.566', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 13:03:58,178 [DEBUG][       Thread-255753][   transport.py][1871] : EOF in transport thread
2025-06-13 13:03:58,273 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 13:03:58,285 [DEBUG][       Thread-255756][   transport.py][1871] : starting thread (client mode): 0x863eceb0
2025-06-13 13:03:58,285 [DEBUG][       Thread-255756][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 13:03:58,300 [DEBUG][       Thread-255756][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 13:03:58,300 [ INFO][       Thread-255756][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 13:03:58,308 [DEBUG][       Thread-255756][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 13:03:58,308 [DEBUG][       Thread-255756][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 13:03:58,308 [DEBUG][       Thread-255756][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 13:03:58,308 [DEBUG][       Thread-255756][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:03:58,308 [DEBUG][       Thread-255756][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:03:58,308 [DEBUG][       Thread-255756][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:03:58,308 [DEBUG][       Thread-255756][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:03:58,308 [DEBUG][       Thread-255756][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 13:03:58,308 [DEBUG][       Thread-255756][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 13:03:58,308 [DEBUG][       Thread-255756][   transport.py][1871] : client lang: <none>
2025-06-13 13:03:58,308 [DEBUG][       Thread-255756][   transport.py][1871] : server lang: <none>
2025-06-13 13:03:58,309 [DEBUG][       Thread-255756][   transport.py][1871] : kex follows: False
2025-06-13 13:03:58,309 [DEBUG][       Thread-255756][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 13:03:58,309 [DEBUG][       Thread-255756][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 13:03:58,309 [DEBUG][       Thread-255756][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 13:03:58,309 [DEBUG][       Thread-255756][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 13:03:58,309 [DEBUG][       Thread-255756][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 13:03:58,309 [DEBUG][       Thread-255756][   transport.py][1871] : Compression: none
2025-06-13 13:03:58,309 [DEBUG][       Thread-255756][   transport.py][1871] : === End of kex handshake ===
2025-06-13 13:03:58,366 [DEBUG][       Thread-255756][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 13:03:58,367 [DEBUG][       Thread-255756][   transport.py][1871] : Switch to new keys ...
2025-06-13 13:03:58,368 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 13:03:58,368 [DEBUG][       Thread-255756][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 13:03:58,369 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 13:03:58,422 [DEBUG][       Thread-255756][   transport.py][1871] : userauth is OK
2025-06-13 13:03:58,422 [DEBUG][       Thread-255756][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 13:03:58,423 [DEBUG][       Thread-255756][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 13:03:58,423 [DEBUG][       Thread-255756][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 13:03:58,423 [DEBUG][       Thread-255756][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 13:03:58,441 [ INFO][       Thread-255756][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 13:03:58,441 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 13:03:58,442 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 13:03:59,455 [DEBUG][       Thread-255756][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 13:03:59,455 [DEBUG][       Thread-255756][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 13:03:59,503 [DEBUG][       Thread-255756][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 13:03:59,503 [DEBUG][       Thread-255756][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 13:03:59,512 [DEBUG][       Thread-255756][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 13:03:59,526 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 13:03:59,526 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 13:03:59,534 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 13:03:59,542 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 13:03:59,543 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 13:03:59,543 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 13:03:59,550 [DEBUG][       Thread-255756][   transport.py][1871] : EOF in transport thread
2025-06-13 13:04:01,716 [DEBUG][Thread-255758 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:04:07,263 [DEBUG][Thread-255759 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:04:08,335 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:04:08,335 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:04:09,545 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 13:04:09,545 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 13:04:09,545 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 13:04:09,547 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 13:04:10,030 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 13, 3, 58), 14.34, 37.13, 0.0, 14.8, 12.88, 0, 0, 0, 2, 0, 0),)
2025-06-13 13:04:10,030 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 13:03:58
2025-06-13 13:04:10,112 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 13:04:10,116 [DEBUG][       Thread-255760][   transport.py][1871] : starting thread (client mode): 0x863ef0d0
2025-06-13 13:04:10,116 [DEBUG][       Thread-255760][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 13:04:10,130 [DEBUG][       Thread-255760][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 13:04:10,130 [ INFO][       Thread-255760][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 13:04:10,133 [DEBUG][       Thread-255760][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 13:04:10,134 [DEBUG][       Thread-255760][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 13:04:10,134 [DEBUG][       Thread-255760][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 13:04:10,134 [DEBUG][       Thread-255760][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:04:10,134 [DEBUG][       Thread-255760][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:04:10,134 [DEBUG][       Thread-255760][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:04:10,134 [DEBUG][       Thread-255760][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:04:10,134 [DEBUG][       Thread-255760][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 13:04:10,134 [DEBUG][       Thread-255760][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 13:04:10,134 [DEBUG][       Thread-255760][   transport.py][1871] : client lang: <none>
2025-06-13 13:04:10,134 [DEBUG][       Thread-255760][   transport.py][1871] : server lang: <none>
2025-06-13 13:04:10,134 [DEBUG][       Thread-255760][   transport.py][1871] : kex follows: False
2025-06-13 13:04:10,134 [DEBUG][       Thread-255760][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 13:04:10,134 [DEBUG][       Thread-255760][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 13:04:10,134 [DEBUG][       Thread-255760][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 13:04:10,134 [DEBUG][       Thread-255760][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 13:04:10,134 [DEBUG][       Thread-255760][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 13:04:10,134 [DEBUG][       Thread-255760][   transport.py][1871] : Compression: none
2025-06-13 13:04:10,134 [DEBUG][       Thread-255760][   transport.py][1871] : === End of kex handshake ===
2025-06-13 13:04:10,150 [DEBUG][       Thread-255760][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 13:04:10,151 [DEBUG][       Thread-255760][   transport.py][1871] : Switch to new keys ...
2025-06-13 13:04:10,151 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 13:04:10,152 [DEBUG][       Thread-255760][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 13:04:10,152 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 13:04:10,153 [DEBUG][       Thread-255760][   transport.py][1871] : userauth is OK
2025-06-13 13:04:10,166 [ INFO][       Thread-255760][   transport.py][1871] : Authentication (password) successful!
2025-06-13 13:04:10,166 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 13:04:10,738 [DEBUG][Thread-255762 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:04:10,912 [DEBUG][       Thread-255760][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 13:04:10,912 [DEBUG][       Thread-255760][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 13:04:10,953 [DEBUG][       Thread-255760][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 13:04:10,953 [DEBUG][       Thread-255760][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 13:04:10,956 [DEBUG][       Thread-255760][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 13:04:10,967 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 13:04:10,967 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 13:04:10,969 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 13:04:10,971 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 13:04:10,977 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 13:04:10,978 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 13:04:10,978 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 13:04:10,979 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 13:04:10,979 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.460701 -999.00  +12.90  19.92     42   +0.50 1 1 1 1 1   888    0 11.93 -13.53 ----- 13.5 19.9 33.8 21.8 17.6 -29.8 16.2 -30.4 16.1 -28.2 17.4 -30.5
2025-06-13 13:04:10,979 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 13:04:10,979 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 13:04:10,979 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.460701
2025-06-13 13:04:10,980 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 13:04:10,980 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 13:04:10,980 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 13:04:10,980 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 13:04:10,981 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 13:04:10,981 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T13:03:58', tmtdew=14.34, humidity=37.13, cloud=0.0, wind=14.8, temperature=12.88, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T11:03:24.566', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 13:04:10,982 [DEBUG][       Thread-255760][   transport.py][1871] : EOF in transport thread
2025-06-13 13:04:11,054 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 13:04:11,066 [DEBUG][       Thread-255764][   transport.py][1871] : starting thread (client mode): 0x863cac50
2025-06-13 13:04:11,066 [DEBUG][       Thread-255764][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 13:04:11,081 [DEBUG][       Thread-255764][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 13:04:11,081 [ INFO][       Thread-255764][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 13:04:11,088 [DEBUG][       Thread-255764][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 13:04:11,088 [DEBUG][       Thread-255764][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 13:04:11,088 [DEBUG][       Thread-255764][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 13:04:11,088 [DEBUG][       Thread-255764][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:04:11,088 [DEBUG][       Thread-255764][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:04:11,088 [DEBUG][       Thread-255764][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:04:11,088 [DEBUG][       Thread-255764][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:04:11,088 [DEBUG][       Thread-255764][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 13:04:11,088 [DEBUG][       Thread-255764][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 13:04:11,088 [DEBUG][       Thread-255764][   transport.py][1871] : client lang: <none>
2025-06-13 13:04:11,088 [DEBUG][       Thread-255764][   transport.py][1871] : server lang: <none>
2025-06-13 13:04:11,089 [DEBUG][       Thread-255764][   transport.py][1871] : kex follows: False
2025-06-13 13:04:11,089 [DEBUG][       Thread-255764][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 13:04:11,089 [DEBUG][       Thread-255764][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 13:04:11,089 [DEBUG][       Thread-255764][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 13:04:11,089 [DEBUG][       Thread-255764][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 13:04:11,089 [DEBUG][       Thread-255764][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 13:04:11,089 [DEBUG][       Thread-255764][   transport.py][1871] : Compression: none
2025-06-13 13:04:11,089 [DEBUG][       Thread-255764][   transport.py][1871] : === End of kex handshake ===
2025-06-13 13:04:11,146 [DEBUG][       Thread-255764][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 13:04:11,146 [DEBUG][       Thread-255764][   transport.py][1871] : Switch to new keys ...
2025-06-13 13:04:11,147 [DEBUG][       Thread-255764][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 13:04:11,147 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 13:04:11,147 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 13:04:11,202 [DEBUG][       Thread-255764][   transport.py][1871] : userauth is OK
2025-06-13 13:04:11,202 [DEBUG][       Thread-255764][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 13:04:11,202 [DEBUG][       Thread-255764][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 13:04:11,202 [DEBUG][       Thread-255764][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 13:04:11,202 [DEBUG][       Thread-255764][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 13:04:11,220 [ INFO][       Thread-255764][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 13:04:11,221 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 13:04:11,221 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 13:04:12,263 [DEBUG][       Thread-255764][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 13:04:12,264 [DEBUG][       Thread-255764][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 13:04:12,318 [DEBUG][       Thread-255764][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 13:04:12,318 [DEBUG][       Thread-255764][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 13:04:12,327 [DEBUG][       Thread-255764][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 13:04:12,339 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 13:04:12,339 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 13:04:12,348 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 13:04:12,359 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 13:04:12,360 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 13:04:12,360 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 13:04:12,368 [DEBUG][       Thread-255764][   transport.py][1871] : EOF in transport thread
2025-06-13 13:04:13,993 [DEBUG][Thread-255766 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:04:19,754 [DEBUG][Thread-255767 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:04:22,371 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 13:04:22,371 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 13:04:22,372 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 13:04:22,375 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 13:04:22,847 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 13, 3, 58), 14.34, 37.13, 0.0, 14.8, 12.88, 0, 0, 0, 2, 0, 0),)
2025-06-13 13:04:22,847 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 13:03:58
2025-06-13 13:04:22,928 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 13:04:22,932 [DEBUG][       Thread-255768][   transport.py][1871] : starting thread (client mode): 0x863928f0
2025-06-13 13:04:22,932 [DEBUG][       Thread-255768][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 13:04:22,951 [DEBUG][       Thread-255768][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 13:04:22,951 [ INFO][       Thread-255768][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 13:04:22,955 [DEBUG][       Thread-255768][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 13:04:22,955 [DEBUG][       Thread-255768][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 13:04:22,955 [DEBUG][       Thread-255768][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 13:04:22,955 [DEBUG][       Thread-255768][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:04:22,955 [DEBUG][       Thread-255768][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:04:22,955 [DEBUG][       Thread-255768][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:04:22,955 [DEBUG][       Thread-255768][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:04:22,955 [DEBUG][       Thread-255768][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 13:04:22,955 [DEBUG][       Thread-255768][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 13:04:22,955 [DEBUG][       Thread-255768][   transport.py][1871] : client lang: <none>
2025-06-13 13:04:22,955 [DEBUG][       Thread-255768][   transport.py][1871] : server lang: <none>
2025-06-13 13:04:22,955 [DEBUG][       Thread-255768][   transport.py][1871] : kex follows: False
2025-06-13 13:04:22,955 [DEBUG][       Thread-255768][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 13:04:22,955 [DEBUG][       Thread-255768][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 13:04:22,955 [DEBUG][       Thread-255768][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 13:04:22,955 [DEBUG][       Thread-255768][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 13:04:22,955 [DEBUG][       Thread-255768][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 13:04:22,955 [DEBUG][       Thread-255768][   transport.py][1871] : Compression: none
2025-06-13 13:04:22,955 [DEBUG][       Thread-255768][   transport.py][1871] : === End of kex handshake ===
2025-06-13 13:04:22,972 [DEBUG][       Thread-255768][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 13:04:22,972 [DEBUG][       Thread-255768][   transport.py][1871] : Switch to new keys ...
2025-06-13 13:04:22,973 [DEBUG][       Thread-255768][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 13:04:22,973 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 13:04:22,973 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 13:04:22,974 [DEBUG][       Thread-255768][   transport.py][1871] : userauth is OK
2025-06-13 13:04:22,987 [ INFO][       Thread-255768][   transport.py][1871] : Authentication (password) successful!
2025-06-13 13:04:22,988 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 13:04:23,760 [DEBUG][       Thread-255768][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 13:04:23,760 [DEBUG][       Thread-255768][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 13:04:23,801 [DEBUG][       Thread-255768][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 13:04:23,801 [DEBUG][       Thread-255768][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 13:04:23,804 [DEBUG][       Thread-255768][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 13:04:23,817 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 13:04:23,817 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 13:04:23,819 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 13:04:23,821 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 13:04:23,827 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 13:04:23,829 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 13:04:23,829 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 13:04:23,830 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 13:04:23,830 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.460701 -999.00  +12.90  19.92     42   +0.50 1 1 1 1 1   888    0 11.93 -13.53 ----- 13.5 19.9 33.8 21.8 17.6 -29.8 16.2 -30.4 16.1 -28.2 17.4 -30.5
2025-06-13 13:04:23,830 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 13:04:23,830 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 13:04:23,830 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.460701
2025-06-13 13:04:23,831 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 13:04:23,831 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 13:04:23,831 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 13:04:23,832 [DEBUG][       Thread-255768][   transport.py][1871] : EOF in transport thread
2025-06-13 13:04:23,832 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 13:04:23,832 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 13:04:23,833 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T13:03:58', tmtdew=14.34, humidity=37.13, cloud=0.0, wind=14.8, temperature=12.88, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T11:03:24.566', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 13:04:23,908 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 13:04:23,917 [DEBUG][       Thread-255771][   transport.py][1871] : starting thread (client mode): 0x863a59c0
2025-06-13 13:04:23,917 [DEBUG][       Thread-255771][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 13:04:23,931 [DEBUG][       Thread-255771][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 13:04:23,931 [ INFO][       Thread-255771][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 13:04:23,939 [DEBUG][       Thread-255771][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 13:04:23,939 [DEBUG][       Thread-255771][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 13:04:23,939 [DEBUG][       Thread-255771][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 13:04:23,939 [DEBUG][       Thread-255771][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:04:23,939 [DEBUG][       Thread-255771][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:04:23,939 [DEBUG][       Thread-255771][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:04:23,939 [DEBUG][       Thread-255771][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:04:23,939 [DEBUG][       Thread-255771][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 13:04:23,939 [DEBUG][       Thread-255771][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 13:04:23,939 [DEBUG][       Thread-255771][   transport.py][1871] : client lang: <none>
2025-06-13 13:04:23,939 [DEBUG][       Thread-255771][   transport.py][1871] : server lang: <none>
2025-06-13 13:04:23,939 [DEBUG][       Thread-255771][   transport.py][1871] : kex follows: False
2025-06-13 13:04:23,939 [DEBUG][       Thread-255771][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 13:04:23,939 [DEBUG][       Thread-255771][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 13:04:23,940 [DEBUG][       Thread-255771][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 13:04:23,940 [DEBUG][       Thread-255771][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 13:04:23,940 [DEBUG][       Thread-255771][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 13:04:23,940 [DEBUG][       Thread-255771][   transport.py][1871] : Compression: none
2025-06-13 13:04:23,940 [DEBUG][       Thread-255771][   transport.py][1871] : === End of kex handshake ===
2025-06-13 13:04:23,998 [DEBUG][       Thread-255771][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 13:04:23,998 [DEBUG][       Thread-255771][   transport.py][1871] : Switch to new keys ...
2025-06-13 13:04:23,999 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 13:04:24,000 [DEBUG][       Thread-255771][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 13:04:24,000 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 13:04:24,054 [DEBUG][       Thread-255771][   transport.py][1871] : userauth is OK
2025-06-13 13:04:24,055 [DEBUG][       Thread-255771][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 13:04:24,055 [DEBUG][       Thread-255771][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 13:04:24,055 [DEBUG][       Thread-255771][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 13:04:24,055 [DEBUG][       Thread-255771][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 13:04:24,074 [ INFO][       Thread-255771][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 13:04:24,074 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 13:04:24,074 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 13:04:25,092 [DEBUG][       Thread-255771][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 13:04:25,092 [DEBUG][       Thread-255771][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 13:04:25,139 [DEBUG][       Thread-255771][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 13:04:25,139 [DEBUG][       Thread-255771][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 13:04:25,147 [DEBUG][       Thread-255771][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 13:04:25,155 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 13:04:25,155 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 13:04:25,163 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 13:04:25,171 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 13:04:25,171 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 13:04:25,171 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 13:04:25,179 [DEBUG][       Thread-255771][   transport.py][1871] : EOF in transport thread
2025-06-13 13:04:28,781 [DEBUG][Thread-255773 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:04:35,182 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 13:04:35,182 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 13:04:35,182 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 13:04:35,185 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 13:04:35,655 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 13, 4, 30), 14.4, 36.89, 0.0, 13.04, 12.89, 0, 0, 0, 2, 0, 0),)
2025-06-13 13:04:35,656 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 13:04:30
2025-06-13 13:04:35,737 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 13:04:35,741 [DEBUG][       Thread-255774][   transport.py][1871] : starting thread (client mode): 0x86392230
2025-06-13 13:04:35,741 [DEBUG][       Thread-255774][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 13:04:35,755 [DEBUG][       Thread-255774][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 13:04:35,755 [ INFO][       Thread-255774][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 13:04:35,756 [DEBUG][       Thread-255774][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 13:04:35,756 [DEBUG][       Thread-255774][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 13:04:35,756 [DEBUG][       Thread-255774][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 13:04:35,756 [DEBUG][       Thread-255774][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:04:35,756 [DEBUG][       Thread-255774][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:04:35,756 [DEBUG][       Thread-255774][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:04:35,756 [DEBUG][       Thread-255774][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:04:35,756 [DEBUG][       Thread-255774][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 13:04:35,756 [DEBUG][       Thread-255774][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 13:04:35,756 [DEBUG][       Thread-255774][   transport.py][1871] : client lang: <none>
2025-06-13 13:04:35,756 [DEBUG][       Thread-255774][   transport.py][1871] : server lang: <none>
2025-06-13 13:04:35,756 [DEBUG][       Thread-255774][   transport.py][1871] : kex follows: False
2025-06-13 13:04:35,756 [DEBUG][       Thread-255774][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 13:04:35,756 [DEBUG][       Thread-255774][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 13:04:35,756 [DEBUG][       Thread-255774][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 13:04:35,756 [DEBUG][       Thread-255774][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 13:04:35,756 [DEBUG][       Thread-255774][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 13:04:35,756 [DEBUG][       Thread-255774][   transport.py][1871] : Compression: none
2025-06-13 13:04:35,756 [DEBUG][       Thread-255774][   transport.py][1871] : === End of kex handshake ===
2025-06-13 13:04:35,763 [DEBUG][       Thread-255774][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 13:04:35,764 [DEBUG][       Thread-255774][   transport.py][1871] : Switch to new keys ...
2025-06-13 13:04:35,764 [DEBUG][       Thread-255774][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 13:04:35,764 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 13:04:35,764 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 13:04:35,765 [DEBUG][       Thread-255774][   transport.py][1871] : userauth is OK
2025-06-13 13:04:35,789 [ INFO][       Thread-255774][   transport.py][1871] : Authentication (password) successful!
2025-06-13 13:04:35,790 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 13:04:36,343 [DEBUG][       Thread-255774][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 13:04:36,343 [DEBUG][       Thread-255774][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 13:04:36,385 [DEBUG][       Thread-255774][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 13:04:36,385 [DEBUG][       Thread-255774][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 13:04:36,388 [DEBUG][       Thread-255774][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 13:04:36,400 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 13:04:36,400 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 13:04:36,402 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 13:04:36,404 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 13:04:36,409 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 13:04:36,411 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 13:04:36,411 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 13:04:36,412 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 13:04:36,412 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.461048 -999.00  +12.80  17.99     42   +0.30 1 1 1 1 1   888    0 11.72 -11.63 ----- 15.4 18.0 15.4 21.8 17.5 -29.4 16.2 -30.6 16.2 -28.4 17.4 -26.9
2025-06-13 13:04:36,412 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 13:04:36,412 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 13:04:36,412 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.461048
2025-06-13 13:04:36,412 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 13:04:36,413 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 13:04:36,413 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 13:04:36,413 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 13:04:36,413 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 13:04:36,413 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T13:04:30', tmtdew=14.4, humidity=36.89, cloud=0.0, wind=13.04, temperature=12.89, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T11:03:54.547', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 13:04:36,414 [DEBUG][       Thread-255774][   transport.py][1871] : EOF in transport thread
2025-06-13 13:04:36,497 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 13:04:36,508 [DEBUG][       Thread-255777][   transport.py][1871] : starting thread (client mode): 0x867ffeb0
2025-06-13 13:04:36,508 [DEBUG][       Thread-255777][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 13:04:36,523 [DEBUG][       Thread-255777][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 13:04:36,523 [ INFO][       Thread-255777][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 13:04:36,531 [DEBUG][       Thread-255777][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 13:04:36,531 [DEBUG][       Thread-255777][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 13:04:36,531 [DEBUG][       Thread-255777][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 13:04:36,531 [DEBUG][       Thread-255777][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:04:36,531 [DEBUG][       Thread-255777][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:04:36,531 [DEBUG][       Thread-255777][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:04:36,531 [DEBUG][       Thread-255777][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:04:36,531 [DEBUG][       Thread-255777][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 13:04:36,531 [DEBUG][       Thread-255777][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 13:04:36,531 [DEBUG][       Thread-255777][   transport.py][1871] : client lang: <none>
2025-06-13 13:04:36,531 [DEBUG][       Thread-255777][   transport.py][1871] : server lang: <none>
2025-06-13 13:04:36,531 [DEBUG][       Thread-255777][   transport.py][1871] : kex follows: False
2025-06-13 13:04:36,531 [DEBUG][       Thread-255777][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 13:04:36,532 [DEBUG][       Thread-255777][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 13:04:36,532 [DEBUG][       Thread-255777][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 13:04:36,532 [DEBUG][       Thread-255777][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 13:04:36,532 [DEBUG][       Thread-255777][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 13:04:36,532 [DEBUG][       Thread-255777][   transport.py][1871] : Compression: none
2025-06-13 13:04:36,532 [DEBUG][       Thread-255777][   transport.py][1871] : === End of kex handshake ===
2025-06-13 13:04:36,590 [DEBUG][       Thread-255777][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 13:04:36,590 [DEBUG][       Thread-255777][   transport.py][1871] : Switch to new keys ...
2025-06-13 13:04:36,591 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 13:04:36,591 [DEBUG][       Thread-255777][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 13:04:36,592 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 13:04:36,650 [DEBUG][       Thread-255777][   transport.py][1871] : userauth is OK
2025-06-13 13:04:36,651 [DEBUG][       Thread-255777][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 13:04:36,651 [DEBUG][       Thread-255777][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 13:04:36,651 [DEBUG][       Thread-255777][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 13:04:36,651 [DEBUG][       Thread-255777][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 13:04:36,670 [ INFO][       Thread-255777][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 13:04:36,670 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 13:04:36,671 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 13:04:37,671 [DEBUG][       Thread-255777][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 13:04:37,671 [DEBUG][       Thread-255777][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 13:04:37,720 [DEBUG][       Thread-255777][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 13:04:37,720 [DEBUG][       Thread-255777][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 13:04:37,729 [DEBUG][       Thread-255777][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 13:04:37,739 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 13:04:37,739 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 13:04:37,748 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 13:04:37,757 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 13:04:37,758 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 13:04:37,758 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 13:04:37,766 [DEBUG][       Thread-255777][   transport.py][1871] : EOF in transport thread
2025-06-13 13:04:37,801 [DEBUG][Thread-255779 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:04:46,845 [DEBUG][Thread-255780 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:04:47,769 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 13:04:47,769 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 13:04:47,769 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 13:04:47,772 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 13:04:48,230 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 13, 4, 30), 14.4, 36.89, 0.0, 13.04, 12.89, 0, 0, 0, 2, 0, 0),)
2025-06-13 13:04:48,230 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 13:04:30
2025-06-13 13:04:48,311 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 13:04:48,317 [DEBUG][       Thread-255781][   transport.py][1871] : starting thread (client mode): 0x86392230
2025-06-13 13:04:48,317 [DEBUG][       Thread-255781][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 13:04:48,339 [DEBUG][       Thread-255781][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 13:04:48,339 [ INFO][       Thread-255781][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 13:04:48,341 [DEBUG][       Thread-255781][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 13:04:48,341 [DEBUG][       Thread-255781][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 13:04:48,341 [DEBUG][       Thread-255781][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 13:04:48,341 [DEBUG][       Thread-255781][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:04:48,341 [DEBUG][       Thread-255781][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:04:48,341 [DEBUG][       Thread-255781][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:04:48,341 [DEBUG][       Thread-255781][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:04:48,341 [DEBUG][       Thread-255781][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 13:04:48,341 [DEBUG][       Thread-255781][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 13:04:48,341 [DEBUG][       Thread-255781][   transport.py][1871] : client lang: <none>
2025-06-13 13:04:48,341 [DEBUG][       Thread-255781][   transport.py][1871] : server lang: <none>
2025-06-13 13:04:48,341 [DEBUG][       Thread-255781][   transport.py][1871] : kex follows: False
2025-06-13 13:04:48,342 [DEBUG][       Thread-255781][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 13:04:48,342 [DEBUG][       Thread-255781][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 13:04:48,342 [DEBUG][       Thread-255781][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 13:04:48,342 [DEBUG][       Thread-255781][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 13:04:48,342 [DEBUG][       Thread-255781][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 13:04:48,342 [DEBUG][       Thread-255781][   transport.py][1871] : Compression: none
2025-06-13 13:04:48,342 [DEBUG][       Thread-255781][   transport.py][1871] : === End of kex handshake ===
2025-06-13 13:04:48,351 [DEBUG][       Thread-255781][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 13:04:48,351 [DEBUG][       Thread-255781][   transport.py][1871] : Switch to new keys ...
2025-06-13 13:04:48,352 [DEBUG][       Thread-255781][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 13:04:48,352 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 13:04:48,352 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 13:04:48,353 [DEBUG][       Thread-255781][   transport.py][1871] : userauth is OK
2025-06-13 13:04:48,366 [ INFO][       Thread-255781][   transport.py][1871] : Authentication (password) successful!
2025-06-13 13:04:48,367 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 13:04:48,949 [DEBUG][       Thread-255781][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 13:04:48,949 [DEBUG][       Thread-255781][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 13:04:48,993 [DEBUG][       Thread-255781][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 13:04:48,993 [DEBUG][       Thread-255781][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 13:04:48,995 [DEBUG][       Thread-255781][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 13:04:49,008 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 13:04:49,009 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 13:04:49,010 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 13:04:49,012 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 13:04:49,017 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 13:04:49,019 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 13:04:49,019 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 13:04:49,019 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 13:04:49,020 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.461048 -999.00  +12.80  17.99     42   +0.30 1 1 1 1 1   888    0 11.72 -11.63 ----- 15.4 18.0 15.4 21.8 17.5 -29.4 16.2 -30.6 16.2 -28.4 17.4 -26.9
2025-06-13 13:04:49,020 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 13:04:49,020 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 13:04:49,020 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.461048
2025-06-13 13:04:49,020 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 13:04:49,021 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 13:04:49,021 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 13:04:49,021 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 13:04:49,021 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 13:04:49,021 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T13:04:30', tmtdew=14.4, humidity=36.89, cloud=0.0, wind=13.04, temperature=12.89, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T11:03:54.547', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 13:04:49,022 [DEBUG][       Thread-255781][   transport.py][1871] : EOF in transport thread
2025-06-13 13:04:49,040 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:04:49,040 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:04:49,105 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 13:04:49,115 [DEBUG][       Thread-255784][   transport.py][1871] : starting thread (client mode): 0x863ee470
2025-06-13 13:04:49,115 [DEBUG][       Thread-255784][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 13:04:49,133 [DEBUG][       Thread-255784][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 13:04:49,133 [ INFO][       Thread-255784][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 13:04:49,141 [DEBUG][       Thread-255784][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 13:04:49,141 [DEBUG][       Thread-255784][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 13:04:49,141 [DEBUG][       Thread-255784][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 13:04:49,141 [DEBUG][       Thread-255784][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:04:49,141 [DEBUG][       Thread-255784][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:04:49,141 [DEBUG][       Thread-255784][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:04:49,142 [DEBUG][       Thread-255784][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:04:49,142 [DEBUG][       Thread-255784][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 13:04:49,142 [DEBUG][       Thread-255784][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 13:04:49,142 [DEBUG][       Thread-255784][   transport.py][1871] : client lang: <none>
2025-06-13 13:04:49,142 [DEBUG][       Thread-255784][   transport.py][1871] : server lang: <none>
2025-06-13 13:04:49,142 [DEBUG][       Thread-255784][   transport.py][1871] : kex follows: False
2025-06-13 13:04:49,142 [DEBUG][       Thread-255784][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 13:04:49,142 [DEBUG][       Thread-255784][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 13:04:49,142 [DEBUG][       Thread-255784][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 13:04:49,142 [DEBUG][       Thread-255784][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 13:04:49,142 [DEBUG][       Thread-255784][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 13:04:49,142 [DEBUG][       Thread-255784][   transport.py][1871] : Compression: none
2025-06-13 13:04:49,142 [DEBUG][       Thread-255784][   transport.py][1871] : === End of kex handshake ===
2025-06-13 13:04:49,198 [DEBUG][       Thread-255784][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 13:04:49,199 [DEBUG][       Thread-255784][   transport.py][1871] : Switch to new keys ...
2025-06-13 13:04:49,199 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 13:04:49,200 [DEBUG][       Thread-255784][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 13:04:49,201 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 13:04:49,255 [DEBUG][       Thread-255784][   transport.py][1871] : userauth is OK
2025-06-13 13:04:49,255 [DEBUG][       Thread-255784][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 13:04:49,255 [DEBUG][       Thread-255784][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 13:04:49,255 [DEBUG][       Thread-255784][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 13:04:49,255 [DEBUG][       Thread-255784][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 13:04:49,277 [ INFO][       Thread-255784][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 13:04:49,277 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 13:04:49,278 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 13:04:50,320 [DEBUG][       Thread-255784][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 13:04:50,320 [DEBUG][       Thread-255784][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 13:04:50,368 [DEBUG][       Thread-255784][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 13:04:50,368 [DEBUG][       Thread-255784][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 13:04:50,378 [DEBUG][       Thread-255784][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 13:04:50,387 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 13:04:50,387 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 13:04:50,396 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 13:04:50,405 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 13:04:50,406 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 13:04:50,406 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 13:04:50,415 [DEBUG][       Thread-255784][   transport.py][1871] : EOF in transport thread
2025-06-13 13:04:55,864 [DEBUG][Thread-255786 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:05:00,416 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 13:05:00,417 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 13:05:00,417 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 13:05:00,419 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 13:05:00,873 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 13, 4, 30), 14.4, 36.89, 0.0, 13.04, 12.89, 0, 0, 0, 2, 0, 0),)
2025-06-13 13:05:00,873 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 13:04:30
2025-06-13 13:05:00,955 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 13:05:00,960 [DEBUG][       Thread-255787][   transport.py][1871] : starting thread (client mode): 0x86391780
2025-06-13 13:05:00,960 [DEBUG][       Thread-255787][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 13:05:00,980 [DEBUG][       Thread-255787][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 13:05:00,980 [ INFO][       Thread-255787][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 13:05:00,983 [DEBUG][       Thread-255787][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 13:05:00,983 [DEBUG][       Thread-255787][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 13:05:00,983 [DEBUG][       Thread-255787][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 13:05:00,983 [DEBUG][       Thread-255787][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:05:00,983 [DEBUG][       Thread-255787][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:05:00,984 [DEBUG][       Thread-255787][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:05:00,984 [DEBUG][       Thread-255787][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:05:00,984 [DEBUG][       Thread-255787][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 13:05:00,984 [DEBUG][       Thread-255787][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 13:05:00,984 [DEBUG][       Thread-255787][   transport.py][1871] : client lang: <none>
2025-06-13 13:05:00,984 [DEBUG][       Thread-255787][   transport.py][1871] : server lang: <none>
2025-06-13 13:05:00,984 [DEBUG][       Thread-255787][   transport.py][1871] : kex follows: False
2025-06-13 13:05:00,984 [DEBUG][       Thread-255787][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 13:05:00,984 [DEBUG][       Thread-255787][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 13:05:00,984 [DEBUG][       Thread-255787][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 13:05:00,984 [DEBUG][       Thread-255787][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 13:05:00,984 [DEBUG][       Thread-255787][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 13:05:00,984 [DEBUG][       Thread-255787][   transport.py][1871] : Compression: none
2025-06-13 13:05:00,984 [DEBUG][       Thread-255787][   transport.py][1871] : === End of kex handshake ===
2025-06-13 13:05:01,001 [DEBUG][       Thread-255787][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 13:05:01,001 [DEBUG][       Thread-255787][   transport.py][1871] : Switch to new keys ...
2025-06-13 13:05:01,002 [DEBUG][       Thread-255787][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 13:05:01,002 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 13:05:01,002 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 13:05:01,003 [DEBUG][       Thread-255787][   transport.py][1871] : userauth is OK
2025-06-13 13:05:01,016 [ INFO][       Thread-255787][   transport.py][1871] : Authentication (password) successful!
2025-06-13 13:05:01,017 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 13:05:01,567 [DEBUG][       Thread-255787][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 13:05:01,567 [DEBUG][       Thread-255787][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 13:05:01,609 [DEBUG][       Thread-255787][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 13:05:01,609 [DEBUG][       Thread-255787][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 13:05:01,613 [DEBUG][       Thread-255787][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 13:05:01,623 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 13:05:01,624 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 13:05:01,626 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 13:05:01,628 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 13:05:01,635 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 13:05:01,637 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 13:05:01,637 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 13:05:01,638 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 13:05:01,638 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.461396 -999.00  +12.90  10.68     42   +0.40 1 1 1 1 1   888    0 12.14 -10.03 ----- 11.6 10.7 28.8 17.4 17.6 -29.0 16.3 -30.1 16.2 -29.0 17.6 -26.8
2025-06-13 13:05:01,638 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 13:05:01,638 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 13:05:01,638 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.461396
2025-06-13 13:05:01,638 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 13:05:01,639 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 13:05:01,639 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 13:05:01,639 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 13:05:01,639 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 13:05:01,639 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T13:04:30', tmtdew=14.4, humidity=36.89, cloud=0.0, wind=13.04, temperature=12.89, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T11:04:24.614', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 13:05:01,640 [DEBUG][       Thread-255787][   transport.py][1871] : EOF in transport thread
2025-06-13 13:05:01,723 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 13:05:01,738 [DEBUG][       Thread-255790][   transport.py][1871] : starting thread (client mode): 0x86893ca0
2025-06-13 13:05:01,739 [DEBUG][       Thread-255790][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 13:05:01,753 [DEBUG][       Thread-255790][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 13:05:01,753 [ INFO][       Thread-255790][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 13:05:01,761 [DEBUG][       Thread-255790][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 13:05:01,761 [DEBUG][       Thread-255790][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 13:05:01,761 [DEBUG][       Thread-255790][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 13:05:01,761 [DEBUG][       Thread-255790][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:05:01,761 [DEBUG][       Thread-255790][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:05:01,761 [DEBUG][       Thread-255790][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:05:01,761 [DEBUG][       Thread-255790][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:05:01,761 [DEBUG][       Thread-255790][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 13:05:01,761 [DEBUG][       Thread-255790][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 13:05:01,761 [DEBUG][       Thread-255790][   transport.py][1871] : client lang: <none>
2025-06-13 13:05:01,761 [DEBUG][       Thread-255790][   transport.py][1871] : server lang: <none>
2025-06-13 13:05:01,761 [DEBUG][       Thread-255790][   transport.py][1871] : kex follows: False
2025-06-13 13:05:01,761 [DEBUG][       Thread-255790][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 13:05:01,761 [DEBUG][       Thread-255790][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 13:05:01,761 [DEBUG][       Thread-255790][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 13:05:01,761 [DEBUG][       Thread-255790][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 13:05:01,761 [DEBUG][       Thread-255790][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 13:05:01,761 [DEBUG][       Thread-255790][   transport.py][1871] : Compression: none
2025-06-13 13:05:01,761 [DEBUG][       Thread-255790][   transport.py][1871] : === End of kex handshake ===
2025-06-13 13:05:01,816 [DEBUG][       Thread-255790][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 13:05:01,817 [DEBUG][       Thread-255790][   transport.py][1871] : Switch to new keys ...
2025-06-13 13:05:01,817 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 13:05:01,817 [DEBUG][       Thread-255790][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 13:05:01,817 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 13:05:01,878 [DEBUG][       Thread-255790][   transport.py][1871] : userauth is OK
2025-06-13 13:05:01,878 [DEBUG][       Thread-255790][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 13:05:01,878 [DEBUG][       Thread-255790][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 13:05:01,878 [DEBUG][       Thread-255790][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 13:05:01,878 [DEBUG][       Thread-255790][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 13:05:01,896 [ INFO][       Thread-255790][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 13:05:01,897 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 13:05:01,897 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 13:05:02,932 [DEBUG][       Thread-255790][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 13:05:02,932 [DEBUG][       Thread-255790][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 13:05:02,986 [DEBUG][       Thread-255790][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 13:05:02,986 [DEBUG][       Thread-255790][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 13:05:02,998 [DEBUG][       Thread-255790][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 13:05:03,007 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 13:05:03,007 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 13:05:03,017 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 13:05:03,029 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 13:05:03,029 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 13:05:03,029 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 13:05:03,040 [DEBUG][       Thread-255790][   transport.py][1871] : EOF in transport thread
2025-06-13 13:05:04,881 [DEBUG][Thread-255792 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:05:08,396 [DEBUG][Thread-255793 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:05:09,474 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:05:09,476 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:05:13,039 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 13:05:13,039 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 13:05:13,039 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 13:05:13,042 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 13:05:13,501 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 13, 5, 1), 14.29, 37.23, 0.0, 17.64, 12.95, 0, 0, 0, 2, 0, 0),)
2025-06-13 13:05:13,501 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 13:05:01
2025-06-13 13:05:13,583 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 13:05:13,589 [DEBUG][       Thread-255794][   transport.py][1871] : starting thread (client mode): 0x86393820
2025-06-13 13:05:13,589 [DEBUG][       Thread-255794][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 13:05:13,612 [DEBUG][       Thread-255794][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 13:05:13,612 [ INFO][       Thread-255794][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 13:05:13,616 [DEBUG][       Thread-255794][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 13:05:13,616 [DEBUG][       Thread-255794][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 13:05:13,616 [DEBUG][       Thread-255794][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 13:05:13,616 [DEBUG][       Thread-255794][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:05:13,616 [DEBUG][       Thread-255794][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:05:13,616 [DEBUG][       Thread-255794][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:05:13,616 [DEBUG][       Thread-255794][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:05:13,616 [DEBUG][       Thread-255794][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 13:05:13,616 [DEBUG][       Thread-255794][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 13:05:13,616 [DEBUG][       Thread-255794][   transport.py][1871] : client lang: <none>
2025-06-13 13:05:13,616 [DEBUG][       Thread-255794][   transport.py][1871] : server lang: <none>
2025-06-13 13:05:13,616 [DEBUG][       Thread-255794][   transport.py][1871] : kex follows: False
2025-06-13 13:05:13,616 [DEBUG][       Thread-255794][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 13:05:13,617 [DEBUG][       Thread-255794][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 13:05:13,617 [DEBUG][       Thread-255794][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 13:05:13,617 [DEBUG][       Thread-255794][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 13:05:13,617 [DEBUG][       Thread-255794][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 13:05:13,617 [DEBUG][       Thread-255794][   transport.py][1871] : Compression: none
2025-06-13 13:05:13,617 [DEBUG][       Thread-255794][   transport.py][1871] : === End of kex handshake ===
2025-06-13 13:05:13,634 [DEBUG][       Thread-255794][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 13:05:13,634 [DEBUG][       Thread-255794][   transport.py][1871] : Switch to new keys ...
2025-06-13 13:05:13,635 [DEBUG][       Thread-255794][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 13:05:13,635 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 13:05:13,635 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 13:05:13,636 [DEBUG][       Thread-255794][   transport.py][1871] : userauth is OK
2025-06-13 13:05:13,660 [ INFO][       Thread-255794][   transport.py][1871] : Authentication (password) successful!
2025-06-13 13:05:13,661 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 13:05:13,904 [DEBUG][Thread-255796 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:05:14,043 [DEBUG][Thread-255797 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:05:22,925 [DEBUG][Thread-255798 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:05:25,902 [DEBUG][       Thread-255794][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 13:05:25,903 [DEBUG][       Thread-255794][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 13:05:25,945 [DEBUG][       Thread-255794][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 13:05:25,945 [DEBUG][       Thread-255794][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 13:05:25,948 [DEBUG][       Thread-255794][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 13:05:25,960 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 13:05:25,960 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 13:05:25,962 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 13:05:25,964 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 13:05:25,969 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 13:05:25,971 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 13:05:25,972 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 13:05:25,972 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 13:05:25,972 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.461396 -999.00  +12.90  10.68     42   +0.40 1 1 1 1 1   888    0 12.14 -10.03 ----- 11.6 10.7 28.8 17.4 17.6 -29.0 16.3 -30.1 16.2 -29.0 17.6 -26.8
2025-06-13 13:05:25,973 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 13:05:25,973 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 13:05:25,973 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.461396
2025-06-13 13:05:25,973 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 13:05:25,974 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 13:05:25,974 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 13:05:25,974 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 13:05:25,974 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 13:05:25,974 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T13:05:01', tmtdew=14.29, humidity=37.23, cloud=0.0, wind=17.64, temperature=12.95, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T11:04:24.614', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 13:05:25,975 [DEBUG][       Thread-255794][   transport.py][1871] : EOF in transport thread
2025-06-13 13:05:26,058 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 13:05:26,070 [DEBUG][       Thread-255800][   transport.py][1871] : starting thread (client mode): 0x867ff790
2025-06-13 13:05:26,070 [DEBUG][       Thread-255800][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 13:05:26,084 [DEBUG][       Thread-255800][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 13:05:26,084 [ INFO][       Thread-255800][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 13:05:26,091 [DEBUG][       Thread-255800][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 13:05:26,091 [DEBUG][       Thread-255800][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 13:05:26,092 [DEBUG][       Thread-255800][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 13:05:26,092 [DEBUG][       Thread-255800][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:05:26,092 [DEBUG][       Thread-255800][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:05:26,092 [DEBUG][       Thread-255800][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:05:26,092 [DEBUG][       Thread-255800][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:05:26,092 [DEBUG][       Thread-255800][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 13:05:26,092 [DEBUG][       Thread-255800][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 13:05:26,092 [DEBUG][       Thread-255800][   transport.py][1871] : client lang: <none>
2025-06-13 13:05:26,092 [DEBUG][       Thread-255800][   transport.py][1871] : server lang: <none>
2025-06-13 13:05:26,092 [DEBUG][       Thread-255800][   transport.py][1871] : kex follows: False
2025-06-13 13:05:26,092 [DEBUG][       Thread-255800][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 13:05:26,092 [DEBUG][       Thread-255800][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 13:05:26,092 [DEBUG][       Thread-255800][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 13:05:26,092 [DEBUG][       Thread-255800][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 13:05:26,092 [DEBUG][       Thread-255800][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 13:05:26,092 [DEBUG][       Thread-255800][   transport.py][1871] : Compression: none
2025-06-13 13:05:26,092 [DEBUG][       Thread-255800][   transport.py][1871] : === End of kex handshake ===
2025-06-13 13:05:26,150 [DEBUG][       Thread-255800][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 13:05:26,151 [DEBUG][       Thread-255800][   transport.py][1871] : Switch to new keys ...
2025-06-13 13:05:26,152 [DEBUG][       Thread-255800][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 13:05:26,152 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 13:05:26,153 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 13:05:26,208 [DEBUG][       Thread-255800][   transport.py][1871] : userauth is OK
2025-06-13 13:05:26,208 [DEBUG][       Thread-255800][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 13:05:26,208 [DEBUG][       Thread-255800][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 13:05:26,209 [DEBUG][       Thread-255800][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 13:05:26,209 [DEBUG][       Thread-255800][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 13:05:26,227 [ INFO][       Thread-255800][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 13:05:26,228 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 13:05:26,228 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 13:05:27,272 [DEBUG][       Thread-255800][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 13:05:27,273 [DEBUG][       Thread-255800][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 13:05:27,324 [DEBUG][       Thread-255800][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 13:05:27,325 [DEBUG][       Thread-255800][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 13:05:27,336 [DEBUG][       Thread-255800][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 13:05:27,346 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 13:05:27,346 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 13:05:27,356 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 13:05:27,367 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 13:05:27,367 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 13:05:27,367 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 13:05:27,377 [DEBUG][       Thread-255800][   transport.py][1871] : EOF in transport thread
2025-06-13 13:05:31,950 [DEBUG][Thread-255802 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:05:37,378 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 13:05:37,378 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 13:05:37,378 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 13:05:37,381 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 13:05:37,834 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 13, 5, 33), 14.24, 37.17, 0.0, 14.56, 12.82, 0, 0, 0, 2, 0, 0),)
2025-06-13 13:05:37,834 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 13:05:33
2025-06-13 13:05:37,916 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 13:05:37,922 [DEBUG][       Thread-255803][   transport.py][1871] : starting thread (client mode): 0x86352950
2025-06-13 13:05:37,922 [DEBUG][       Thread-255803][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 13:05:37,938 [DEBUG][       Thread-255803][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 13:05:37,938 [ INFO][       Thread-255803][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 13:05:37,941 [DEBUG][       Thread-255803][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 13:05:37,941 [DEBUG][       Thread-255803][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 13:05:37,941 [DEBUG][       Thread-255803][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 13:05:37,941 [DEBUG][       Thread-255803][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:05:37,941 [DEBUG][       Thread-255803][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:05:37,941 [DEBUG][       Thread-255803][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:05:37,941 [DEBUG][       Thread-255803][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:05:37,941 [DEBUG][       Thread-255803][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 13:05:37,942 [DEBUG][       Thread-255803][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 13:05:37,942 [DEBUG][       Thread-255803][   transport.py][1871] : client lang: <none>
2025-06-13 13:05:37,942 [DEBUG][       Thread-255803][   transport.py][1871] : server lang: <none>
2025-06-13 13:05:37,942 [DEBUG][       Thread-255803][   transport.py][1871] : kex follows: False
2025-06-13 13:05:37,942 [DEBUG][       Thread-255803][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 13:05:37,942 [DEBUG][       Thread-255803][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 13:05:37,942 [DEBUG][       Thread-255803][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 13:05:37,942 [DEBUG][       Thread-255803][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 13:05:37,942 [DEBUG][       Thread-255803][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 13:05:37,942 [DEBUG][       Thread-255803][   transport.py][1871] : Compression: none
2025-06-13 13:05:37,942 [DEBUG][       Thread-255803][   transport.py][1871] : === End of kex handshake ===
2025-06-13 13:05:37,959 [DEBUG][       Thread-255803][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 13:05:37,959 [DEBUG][       Thread-255803][   transport.py][1871] : Switch to new keys ...
2025-06-13 13:05:37,960 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 13:05:37,960 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 13:05:37,960 [DEBUG][       Thread-255803][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 13:05:37,961 [DEBUG][       Thread-255803][   transport.py][1871] : userauth is OK
2025-06-13 13:05:37,974 [ INFO][       Thread-255803][   transport.py][1871] : Authentication (password) successful!
2025-06-13 13:05:37,975 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 13:05:38,571 [DEBUG][       Thread-255803][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 13:05:38,572 [DEBUG][       Thread-255803][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 13:05:38,613 [DEBUG][       Thread-255803][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 13:05:38,613 [DEBUG][       Thread-255803][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 13:05:38,616 [DEBUG][       Thread-255803][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 13:05:38,629 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 13:05:38,629 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 13:05:38,631 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 13:05:38,633 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 13:05:38,639 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 13:05:38,641 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 13:05:38,641 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 13:05:38,642 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 13:05:38,642 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.462090 -999.00  +12.80  12.85     41   +0.10 1 1 1 1 1   888    0 12.45 -5.19 ----- 17.7 12.8 45.2 14.7 17.7 -29.3 16.4 -30.8 16.4 -28.6 17.7 -27.3
2025-06-13 13:05:38,642 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 13:05:38,642 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 13:05:38,642 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.462090
2025-06-13 13:05:38,643 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 13:05:38,643 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 13:05:38,643 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 13:05:38,644 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 13:05:38,644 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 13:05:38,644 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T13:05:33', tmtdew=14.24, humidity=37.17, cloud=0.0, wind=14.56, temperature=12.82, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T11:05:24.576', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 13:05:38,644 [DEBUG][       Thread-255803][   transport.py][1871] : EOF in transport thread
2025-06-13 13:05:38,728 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 13:05:38,737 [DEBUG][       Thread-255806][   transport.py][1871] : starting thread (client mode): 0x86352500
2025-06-13 13:05:38,737 [DEBUG][       Thread-255806][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 13:05:38,752 [DEBUG][       Thread-255806][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 13:05:38,752 [ INFO][       Thread-255806][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 13:05:38,760 [DEBUG][       Thread-255806][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 13:05:38,760 [DEBUG][       Thread-255806][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 13:05:38,760 [DEBUG][       Thread-255806][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 13:05:38,760 [DEBUG][       Thread-255806][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:05:38,760 [DEBUG][       Thread-255806][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:05:38,760 [DEBUG][       Thread-255806][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:05:38,760 [DEBUG][       Thread-255806][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:05:38,760 [DEBUG][       Thread-255806][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 13:05:38,760 [DEBUG][       Thread-255806][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 13:05:38,760 [DEBUG][       Thread-255806][   transport.py][1871] : client lang: <none>
2025-06-13 13:05:38,760 [DEBUG][       Thread-255806][   transport.py][1871] : server lang: <none>
2025-06-13 13:05:38,760 [DEBUG][       Thread-255806][   transport.py][1871] : kex follows: False
2025-06-13 13:05:38,760 [DEBUG][       Thread-255806][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 13:05:38,760 [DEBUG][       Thread-255806][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 13:05:38,760 [DEBUG][       Thread-255806][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 13:05:38,761 [DEBUG][       Thread-255806][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 13:05:38,761 [DEBUG][       Thread-255806][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 13:05:38,761 [DEBUG][       Thread-255806][   transport.py][1871] : Compression: none
2025-06-13 13:05:38,761 [DEBUG][       Thread-255806][   transport.py][1871] : === End of kex handshake ===
2025-06-13 13:05:38,818 [DEBUG][       Thread-255806][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 13:05:38,819 [DEBUG][       Thread-255806][   transport.py][1871] : Switch to new keys ...
2025-06-13 13:05:38,820 [DEBUG][       Thread-255806][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 13:05:38,820 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 13:05:38,821 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 13:05:38,874 [DEBUG][       Thread-255806][   transport.py][1871] : userauth is OK
2025-06-13 13:05:38,874 [DEBUG][       Thread-255806][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 13:05:38,875 [DEBUG][       Thread-255806][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 13:05:38,875 [DEBUG][       Thread-255806][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 13:05:38,875 [DEBUG][       Thread-255806][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 13:05:38,894 [ INFO][       Thread-255806][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 13:05:38,895 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 13:05:38,895 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 13:05:39,882 [DEBUG][       Thread-255806][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 13:05:39,882 [DEBUG][       Thread-255806][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 13:05:39,931 [DEBUG][       Thread-255806][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 13:05:39,931 [DEBUG][       Thread-255806][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 13:05:39,939 [DEBUG][       Thread-255806][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 13:05:39,947 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 13:05:39,948 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 13:05:39,955 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 13:05:39,964 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 13:05:39,964 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 13:05:39,964 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 13:05:39,972 [DEBUG][       Thread-255806][   transport.py][1871] : EOF in transport thread
2025-06-13 13:05:40,983 [DEBUG][Thread-255808 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:05:49,188 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:05:49,188 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:05:49,974 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 13:05:49,975 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 13:05:49,975 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 13:05:49,978 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 13:05:50,017 [DEBUG][Thread-255809 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:05:50,435 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 13, 5, 33), 14.24, 37.17, 0.0, 14.56, 12.82, 0, 0, 0, 2, 0, 0),)
2025-06-13 13:05:50,436 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 13:05:33
2025-06-13 13:05:50,518 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 13:05:50,522 [DEBUG][       Thread-255810][   transport.py][1871] : starting thread (client mode): 0x863519f0
2025-06-13 13:05:50,522 [DEBUG][       Thread-255810][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 13:05:50,543 [DEBUG][       Thread-255810][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 13:05:50,543 [ INFO][       Thread-255810][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 13:05:50,545 [DEBUG][       Thread-255810][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 13:05:50,545 [DEBUG][       Thread-255810][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 13:05:50,545 [DEBUG][       Thread-255810][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 13:05:50,545 [DEBUG][       Thread-255810][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:05:50,545 [DEBUG][       Thread-255810][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:05:50,545 [DEBUG][       Thread-255810][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:05:50,545 [DEBUG][       Thread-255810][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:05:50,545 [DEBUG][       Thread-255810][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 13:05:50,545 [DEBUG][       Thread-255810][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 13:05:50,545 [DEBUG][       Thread-255810][   transport.py][1871] : client lang: <none>
2025-06-13 13:05:50,545 [DEBUG][       Thread-255810][   transport.py][1871] : server lang: <none>
2025-06-13 13:05:50,545 [DEBUG][       Thread-255810][   transport.py][1871] : kex follows: False
2025-06-13 13:05:50,545 [DEBUG][       Thread-255810][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 13:05:50,545 [DEBUG][       Thread-255810][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 13:05:50,545 [DEBUG][       Thread-255810][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 13:05:50,545 [DEBUG][       Thread-255810][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 13:05:50,545 [DEBUG][       Thread-255810][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 13:05:50,545 [DEBUG][       Thread-255810][   transport.py][1871] : Compression: none
2025-06-13 13:05:50,545 [DEBUG][       Thread-255810][   transport.py][1871] : === End of kex handshake ===
2025-06-13 13:05:50,553 [DEBUG][       Thread-255810][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 13:05:50,553 [DEBUG][       Thread-255810][   transport.py][1871] : Switch to new keys ...
2025-06-13 13:05:50,554 [DEBUG][       Thread-255810][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 13:05:50,554 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 13:05:50,554 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 13:05:50,555 [DEBUG][       Thread-255810][   transport.py][1871] : userauth is OK
2025-06-13 13:05:50,568 [ INFO][       Thread-255810][   transport.py][1871] : Authentication (password) successful!
2025-06-13 13:05:50,568 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 13:05:51,180 [DEBUG][       Thread-255810][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 13:05:51,180 [DEBUG][       Thread-255810][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 13:05:51,221 [DEBUG][       Thread-255810][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 13:05:51,221 [DEBUG][       Thread-255810][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 13:05:51,224 [DEBUG][       Thread-255810][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 13:05:51,233 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 13:05:51,234 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 13:05:51,236 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 13:05:51,237 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 13:05:51,243 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 13:05:51,245 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 13:05:51,245 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 13:05:51,246 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 13:05:51,246 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.462090 -999.00  +12.80  12.85     41   +0.10 1 1 1 1 1   888    0 12.45 -5.19 ----- 17.7 12.8 45.2 14.7 17.7 -29.3 16.4 -30.8 16.4 -28.6 17.7 -27.3
2025-06-13 13:05:51,246 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 13:05:51,246 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 13:05:51,246 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.462090
2025-06-13 13:05:51,246 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 13:05:51,247 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 13:05:51,247 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 13:05:51,247 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 13:05:51,247 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 13:05:51,247 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T13:05:33', tmtdew=14.24, humidity=37.17, cloud=0.0, wind=14.56, temperature=12.82, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T11:05:24.576', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 13:05:51,248 [DEBUG][       Thread-255810][   transport.py][1871] : EOF in transport thread
2025-06-13 13:05:51,323 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 13:05:51,335 [DEBUG][       Thread-255813][   transport.py][1871] : starting thread (client mode): 0x863beec0
2025-06-13 13:05:51,335 [DEBUG][       Thread-255813][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 13:05:51,352 [DEBUG][       Thread-255813][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 13:05:51,352 [ INFO][       Thread-255813][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 13:05:51,360 [DEBUG][       Thread-255813][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 13:05:51,360 [DEBUG][       Thread-255813][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 13:05:51,360 [DEBUG][       Thread-255813][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 13:05:51,360 [DEBUG][       Thread-255813][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:05:51,360 [DEBUG][       Thread-255813][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:05:51,360 [DEBUG][       Thread-255813][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:05:51,360 [DEBUG][       Thread-255813][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:05:51,360 [DEBUG][       Thread-255813][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 13:05:51,360 [DEBUG][       Thread-255813][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 13:05:51,360 [DEBUG][       Thread-255813][   transport.py][1871] : client lang: <none>
2025-06-13 13:05:51,360 [DEBUG][       Thread-255813][   transport.py][1871] : server lang: <none>
2025-06-13 13:05:51,361 [DEBUG][       Thread-255813][   transport.py][1871] : kex follows: False
2025-06-13 13:05:51,361 [DEBUG][       Thread-255813][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 13:05:51,361 [DEBUG][       Thread-255813][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 13:05:51,361 [DEBUG][       Thread-255813][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 13:05:51,361 [DEBUG][       Thread-255813][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 13:05:51,361 [DEBUG][       Thread-255813][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 13:05:51,361 [DEBUG][       Thread-255813][   transport.py][1871] : Compression: none
2025-06-13 13:05:51,361 [DEBUG][       Thread-255813][   transport.py][1871] : === End of kex handshake ===
2025-06-13 13:05:51,423 [DEBUG][       Thread-255813][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 13:05:51,423 [DEBUG][       Thread-255813][   transport.py][1871] : Switch to new keys ...
2025-06-13 13:05:51,424 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 13:05:51,425 [DEBUG][       Thread-255813][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 13:05:51,426 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 13:05:51,482 [DEBUG][       Thread-255813][   transport.py][1871] : userauth is OK
2025-06-13 13:05:51,483 [DEBUG][       Thread-255813][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 13:05:51,483 [DEBUG][       Thread-255813][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 13:05:51,483 [DEBUG][       Thread-255813][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 13:05:51,483 [DEBUG][       Thread-255813][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 13:05:51,503 [ INFO][       Thread-255813][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 13:05:51,503 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 13:05:51,503 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 13:05:52,523 [DEBUG][       Thread-255813][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 13:05:52,523 [DEBUG][       Thread-255813][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 13:05:52,572 [DEBUG][       Thread-255813][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 13:05:52,572 [DEBUG][       Thread-255813][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 13:05:52,582 [DEBUG][       Thread-255813][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 13:05:52,591 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 13:05:52,591 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 13:05:52,600 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 13:05:52,609 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 13:05:52,609 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 13:05:52,610 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 13:05:52,618 [DEBUG][       Thread-255813][   transport.py][1871] : EOF in transport thread
2025-06-13 13:05:59,036 [DEBUG][Thread-255815 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:06:02,619 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 13:06:02,619 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 13:06:02,619 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 13:06:02,622 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 13:06:03,082 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 13, 5, 33), 14.24, 37.17, 0.0, 14.56, 12.82, 0, 0, 0, 2, 0, 0),)
2025-06-13 13:06:03,082 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 13:05:33
2025-06-13 13:06:03,164 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 13:06:03,168 [DEBUG][       Thread-255816][   transport.py][1871] : starting thread (client mode): 0x86392b60
2025-06-13 13:06:03,168 [DEBUG][       Thread-255816][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 13:06:03,190 [DEBUG][       Thread-255816][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 13:06:03,190 [ INFO][       Thread-255816][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 13:06:03,194 [DEBUG][       Thread-255816][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 13:06:03,194 [DEBUG][       Thread-255816][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 13:06:03,194 [DEBUG][       Thread-255816][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 13:06:03,194 [DEBUG][       Thread-255816][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:06:03,194 [DEBUG][       Thread-255816][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:06:03,194 [DEBUG][       Thread-255816][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:06:03,194 [DEBUG][       Thread-255816][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:06:03,194 [DEBUG][       Thread-255816][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 13:06:03,194 [DEBUG][       Thread-255816][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 13:06:03,194 [DEBUG][       Thread-255816][   transport.py][1871] : client lang: <none>
2025-06-13 13:06:03,194 [DEBUG][       Thread-255816][   transport.py][1871] : server lang: <none>
2025-06-13 13:06:03,194 [DEBUG][       Thread-255816][   transport.py][1871] : kex follows: False
2025-06-13 13:06:03,194 [DEBUG][       Thread-255816][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 13:06:03,194 [DEBUG][       Thread-255816][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 13:06:03,194 [DEBUG][       Thread-255816][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 13:06:03,194 [DEBUG][       Thread-255816][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 13:06:03,195 [DEBUG][       Thread-255816][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 13:06:03,195 [DEBUG][       Thread-255816][   transport.py][1871] : Compression: none
2025-06-13 13:06:03,195 [DEBUG][       Thread-255816][   transport.py][1871] : === End of kex handshake ===
2025-06-13 13:06:03,212 [DEBUG][       Thread-255816][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 13:06:03,213 [DEBUG][       Thread-255816][   transport.py][1871] : Switch to new keys ...
2025-06-13 13:06:03,213 [DEBUG][       Thread-255816][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 13:06:03,213 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 13:06:03,214 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 13:06:03,215 [DEBUG][       Thread-255816][   transport.py][1871] : userauth is OK
2025-06-13 13:06:03,227 [ INFO][       Thread-255816][   transport.py][1871] : Authentication (password) successful!
2025-06-13 13:06:03,228 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 13:06:03,875 [DEBUG][       Thread-255816][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 13:06:03,875 [DEBUG][       Thread-255816][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 13:06:03,917 [DEBUG][       Thread-255816][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 13:06:03,917 [DEBUG][       Thread-255816][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 13:06:03,920 [DEBUG][       Thread-255816][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 13:06:03,932 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 13:06:03,933 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 13:06:03,934 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 13:06:03,936 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 13:06:03,940 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 13:06:03,942 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 13:06:03,942 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 13:06:03,943 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 13:06:03,943 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.462090 -999.00  +12.80  12.85     41   +0.10 1 1 1 1 1   888    0 12.45 -5.19 ----- 17.7 12.8 45.2 14.7 17.7 -29.3 16.4 -30.8 16.4 -28.6 17.7 -27.3
2025-06-13 13:06:03,943 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 13:06:03,943 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 13:06:03,943 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.462090
2025-06-13 13:06:03,944 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 13:06:03,945 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 13:06:03,945 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 13:06:03,945 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 13:06:03,945 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 13:06:03,945 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T13:05:33', tmtdew=14.24, humidity=37.17, cloud=0.0, wind=14.56, temperature=12.82, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T11:05:24.576', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 13:06:03,946 [DEBUG][       Thread-255816][   transport.py][1871] : EOF in transport thread
2025-06-13 13:06:04,029 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 13:06:04,038 [DEBUG][       Thread-255819][   transport.py][1871] : starting thread (client mode): 0x863694e0
2025-06-13 13:06:04,038 [DEBUG][       Thread-255819][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 13:06:04,053 [DEBUG][       Thread-255819][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 13:06:04,053 [ INFO][       Thread-255819][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 13:06:04,063 [DEBUG][       Thread-255819][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 13:06:04,063 [DEBUG][       Thread-255819][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 13:06:04,063 [DEBUG][       Thread-255819][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 13:06:04,063 [DEBUG][       Thread-255819][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:06:04,063 [DEBUG][       Thread-255819][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:06:04,063 [DEBUG][       Thread-255819][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:06:04,063 [DEBUG][       Thread-255819][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:06:04,064 [DEBUG][       Thread-255819][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 13:06:04,064 [DEBUG][       Thread-255819][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 13:06:04,064 [DEBUG][       Thread-255819][   transport.py][1871] : client lang: <none>
2025-06-13 13:06:04,064 [DEBUG][       Thread-255819][   transport.py][1871] : server lang: <none>
2025-06-13 13:06:04,064 [DEBUG][       Thread-255819][   transport.py][1871] : kex follows: False
2025-06-13 13:06:04,064 [DEBUG][       Thread-255819][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 13:06:04,064 [DEBUG][       Thread-255819][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 13:06:04,064 [DEBUG][       Thread-255819][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 13:06:04,064 [DEBUG][       Thread-255819][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 13:06:04,064 [DEBUG][       Thread-255819][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 13:06:04,064 [DEBUG][       Thread-255819][   transport.py][1871] : Compression: none
2025-06-13 13:06:04,064 [DEBUG][       Thread-255819][   transport.py][1871] : === End of kex handshake ===
2025-06-13 13:06:04,122 [DEBUG][       Thread-255819][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 13:06:04,122 [DEBUG][       Thread-255819][   transport.py][1871] : Switch to new keys ...
2025-06-13 13:06:04,123 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 13:06:04,123 [DEBUG][       Thread-255819][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 13:06:04,124 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 13:06:04,178 [DEBUG][       Thread-255819][   transport.py][1871] : userauth is OK
2025-06-13 13:06:04,179 [DEBUG][       Thread-255819][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 13:06:04,179 [DEBUG][       Thread-255819][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 13:06:04,179 [DEBUG][       Thread-255819][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 13:06:04,179 [DEBUG][       Thread-255819][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 13:06:04,197 [ INFO][       Thread-255819][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 13:06:04,197 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 13:06:04,198 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 13:06:05,188 [DEBUG][       Thread-255819][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 13:06:05,188 [DEBUG][       Thread-255819][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 13:06:05,236 [DEBUG][       Thread-255819][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 13:06:05,236 [DEBUG][       Thread-255819][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 13:06:05,245 [DEBUG][       Thread-255819][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 13:06:05,254 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 13:06:05,255 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 13:06:05,264 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 13:06:05,273 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 13:06:05,273 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 13:06:05,274 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 13:06:05,282 [DEBUG][       Thread-255819][   transport.py][1871] : EOF in transport thread
2025-06-13 13:06:08,057 [DEBUG][Thread-255821 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:06:09,494 [DEBUG][Thread-255822 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:06:10,545 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:06:10,546 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:06:14,092 [DEBUG][Thread-255823 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:06:15,284 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 13:06:15,285 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 13:06:15,285 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 13:06:15,287 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 13:06:15,754 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 13, 6, 5), 14.15, 37.41, 0.0, 15.92, 12.83, 0, 0, 0, 2, 0, 0),)
2025-06-13 13:06:15,754 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 13:06:05
2025-06-13 13:06:15,836 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 13:06:15,843 [DEBUG][       Thread-255824][   transport.py][1871] : starting thread (client mode): 0x863bcfa0
2025-06-13 13:06:15,843 [DEBUG][       Thread-255824][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 13:06:15,865 [DEBUG][       Thread-255824][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 13:06:15,865 [ INFO][       Thread-255824][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 13:06:15,869 [DEBUG][       Thread-255824][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 13:06:15,869 [DEBUG][       Thread-255824][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 13:06:15,869 [DEBUG][       Thread-255824][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 13:06:15,869 [DEBUG][       Thread-255824][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:06:15,869 [DEBUG][       Thread-255824][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:06:15,869 [DEBUG][       Thread-255824][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:06:15,869 [DEBUG][       Thread-255824][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:06:15,869 [DEBUG][       Thread-255824][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 13:06:15,869 [DEBUG][       Thread-255824][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 13:06:15,869 [DEBUG][       Thread-255824][   transport.py][1871] : client lang: <none>
2025-06-13 13:06:15,869 [DEBUG][       Thread-255824][   transport.py][1871] : server lang: <none>
2025-06-13 13:06:15,869 [DEBUG][       Thread-255824][   transport.py][1871] : kex follows: False
2025-06-13 13:06:15,869 [DEBUG][       Thread-255824][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 13:06:15,869 [DEBUG][       Thread-255824][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 13:06:15,869 [DEBUG][       Thread-255824][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 13:06:15,870 [DEBUG][       Thread-255824][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 13:06:15,870 [DEBUG][       Thread-255824][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 13:06:15,870 [DEBUG][       Thread-255824][   transport.py][1871] : Compression: none
2025-06-13 13:06:15,870 [DEBUG][       Thread-255824][   transport.py][1871] : === End of kex handshake ===
2025-06-13 13:06:15,880 [DEBUG][       Thread-255824][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 13:06:15,881 [DEBUG][       Thread-255824][   transport.py][1871] : Switch to new keys ...
2025-06-13 13:06:15,881 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 13:06:15,881 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 13:06:15,882 [DEBUG][       Thread-255824][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 13:06:15,882 [DEBUG][       Thread-255824][   transport.py][1871] : userauth is OK
2025-06-13 13:06:15,896 [ INFO][       Thread-255824][   transport.py][1871] : Authentication (password) successful!
2025-06-13 13:06:15,896 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 13:06:16,514 [DEBUG][       Thread-255824][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 13:06:16,514 [DEBUG][       Thread-255824][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 13:06:16,557 [DEBUG][       Thread-255824][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 13:06:16,557 [DEBUG][       Thread-255824][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 13:06:16,561 [DEBUG][       Thread-255824][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 13:06:16,572 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 13:06:16,572 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 13:06:16,574 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 13:06:16,576 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 13:06:16,582 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 13:06:16,585 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 13:06:16,585 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 13:06:16,586 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 13:06:16,586 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.462437 -999.00  +12.80  18.55     41   +0.10 1 1 1 1 1   888    0 12.44 -5.73 ----- 20.4 18.6 55.8 20.3 17.7 -29.5 16.4 -30.9 16.3 -28.8 17.7 -27.3
2025-06-13 13:06:16,586 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 13:06:16,586 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 13:06:16,586 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.462437
2025-06-13 13:06:16,586 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 13:06:16,587 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 13:06:16,587 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 13:06:16,587 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 13:06:16,587 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 13:06:16,587 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T13:06:05', tmtdew=14.15, humidity=37.41, cloud=0.0, wind=15.92, temperature=12.83, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T11:05:54.557', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 13:06:16,588 [DEBUG][       Thread-255824][   transport.py][1871] : EOF in transport thread
2025-06-13 13:06:16,671 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 13:06:16,682 [DEBUG][       Thread-255827][   transport.py][1871] : starting thread (client mode): 0x863ef340
2025-06-13 13:06:16,683 [DEBUG][       Thread-255827][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 13:06:16,697 [DEBUG][       Thread-255827][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 13:06:16,697 [ INFO][       Thread-255827][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 13:06:16,705 [DEBUG][       Thread-255827][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 13:06:16,705 [DEBUG][       Thread-255827][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 13:06:16,705 [DEBUG][       Thread-255827][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 13:06:16,705 [DEBUG][       Thread-255827][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:06:16,705 [DEBUG][       Thread-255827][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:06:16,705 [DEBUG][       Thread-255827][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:06:16,705 [DEBUG][       Thread-255827][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:06:16,705 [DEBUG][       Thread-255827][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 13:06:16,706 [DEBUG][       Thread-255827][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 13:06:16,706 [DEBUG][       Thread-255827][   transport.py][1871] : client lang: <none>
2025-06-13 13:06:16,706 [DEBUG][       Thread-255827][   transport.py][1871] : server lang: <none>
2025-06-13 13:06:16,706 [DEBUG][       Thread-255827][   transport.py][1871] : kex follows: False
2025-06-13 13:06:16,706 [DEBUG][       Thread-255827][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 13:06:16,706 [DEBUG][       Thread-255827][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 13:06:16,706 [DEBUG][       Thread-255827][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 13:06:16,706 [DEBUG][       Thread-255827][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 13:06:16,706 [DEBUG][       Thread-255827][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 13:06:16,706 [DEBUG][       Thread-255827][   transport.py][1871] : Compression: none
2025-06-13 13:06:16,706 [DEBUG][       Thread-255827][   transport.py][1871] : === End of kex handshake ===
2025-06-13 13:06:16,769 [DEBUG][       Thread-255827][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 13:06:16,769 [DEBUG][       Thread-255827][   transport.py][1871] : Switch to new keys ...
2025-06-13 13:06:16,770 [DEBUG][       Thread-255827][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 13:06:16,770 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 13:06:16,771 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 13:06:16,834 [DEBUG][       Thread-255827][   transport.py][1871] : userauth is OK
2025-06-13 13:06:16,834 [DEBUG][       Thread-255827][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 13:06:16,834 [DEBUG][       Thread-255827][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 13:06:16,834 [DEBUG][       Thread-255827][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 13:06:16,834 [DEBUG][       Thread-255827][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 13:06:16,853 [ INFO][       Thread-255827][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 13:06:16,853 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 13:06:16,853 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 13:06:17,076 [DEBUG][Thread-255829 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:06:17,878 [DEBUG][       Thread-255827][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 13:06:17,878 [DEBUG][       Thread-255827][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 13:06:17,927 [DEBUG][       Thread-255827][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 13:06:17,928 [DEBUG][       Thread-255827][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 13:06:17,937 [DEBUG][       Thread-255827][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 13:06:17,946 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 13:06:17,946 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 13:06:17,954 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 13:06:17,964 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 13:06:17,964 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 13:06:17,964 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 13:06:17,972 [DEBUG][       Thread-255827][   transport.py][1871] : EOF in transport thread
2025-06-13 13:06:26,119 [DEBUG][Thread-255830 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:06:27,975 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 13:06:27,975 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 13:06:27,975 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 13:06:27,978 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 13:06:28,448 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 13, 6, 5), 14.15, 37.41, 0.0, 15.92, 12.83, 0, 0, 0, 2, 0, 0),)
2025-06-13 13:06:28,448 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 13:06:05
2025-06-13 13:06:28,530 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 13:06:28,534 [DEBUG][       Thread-255831][   transport.py][1871] : starting thread (client mode): 0x863bf490
2025-06-13 13:06:28,534 [DEBUG][       Thread-255831][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 13:06:28,554 [DEBUG][       Thread-255831][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 13:06:28,554 [ INFO][       Thread-255831][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 13:06:28,557 [DEBUG][       Thread-255831][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 13:06:28,557 [DEBUG][       Thread-255831][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 13:06:28,557 [DEBUG][       Thread-255831][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 13:06:28,557 [DEBUG][       Thread-255831][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:06:28,557 [DEBUG][       Thread-255831][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:06:28,557 [DEBUG][       Thread-255831][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:06:28,557 [DEBUG][       Thread-255831][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:06:28,557 [DEBUG][       Thread-255831][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 13:06:28,557 [DEBUG][       Thread-255831][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 13:06:28,557 [DEBUG][       Thread-255831][   transport.py][1871] : client lang: <none>
2025-06-13 13:06:28,557 [DEBUG][       Thread-255831][   transport.py][1871] : server lang: <none>
2025-06-13 13:06:28,557 [DEBUG][       Thread-255831][   transport.py][1871] : kex follows: False
2025-06-13 13:06:28,557 [DEBUG][       Thread-255831][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 13:06:28,558 [DEBUG][       Thread-255831][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 13:06:28,558 [DEBUG][       Thread-255831][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 13:06:28,558 [DEBUG][       Thread-255831][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 13:06:28,558 [DEBUG][       Thread-255831][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 13:06:28,558 [DEBUG][       Thread-255831][   transport.py][1871] : Compression: none
2025-06-13 13:06:28,558 [DEBUG][       Thread-255831][   transport.py][1871] : === End of kex handshake ===
2025-06-13 13:06:28,576 [DEBUG][       Thread-255831][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 13:06:28,577 [DEBUG][       Thread-255831][   transport.py][1871] : Switch to new keys ...
2025-06-13 13:06:28,577 [DEBUG][       Thread-255831][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 13:06:28,577 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 13:06:28,577 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 13:06:28,578 [DEBUG][       Thread-255831][   transport.py][1871] : userauth is OK
2025-06-13 13:06:28,603 [ INFO][       Thread-255831][   transport.py][1871] : Authentication (password) successful!
2025-06-13 13:06:28,603 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 13:06:29,247 [DEBUG][       Thread-255831][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 13:06:29,247 [DEBUG][       Thread-255831][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 13:06:29,289 [DEBUG][       Thread-255831][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 13:06:29,289 [DEBUG][       Thread-255831][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 13:06:29,292 [DEBUG][       Thread-255831][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 13:06:29,303 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 13:06:29,303 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 13:06:29,305 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 13:06:29,306 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 13:06:29,311 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 13:06:29,312 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 13:06:29,313 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 13:06:29,313 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 13:06:29,313 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.462437 -999.00  +12.80  18.55     41   +0.10 1 1 1 1 1   888    0 12.44 -5.73 ----- 20.4 18.6 55.8 20.3 17.7 -29.5 16.4 -30.9 16.3 -28.8 17.7 -27.3
2025-06-13 13:06:29,313 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 13:06:29,313 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 13:06:29,314 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.462437
2025-06-13 13:06:29,314 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 13:06:29,314 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 13:06:29,315 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 13:06:29,315 [DEBUG][       Thread-255831][   transport.py][1871] : EOF in transport thread
2025-06-13 13:06:29,315 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 13:06:29,316 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 13:06:29,316 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T13:06:05', tmtdew=14.15, humidity=37.41, cloud=0.0, wind=15.92, temperature=12.83, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T11:05:54.557', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 13:06:29,397 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 13:06:29,406 [DEBUG][       Thread-255834][   transport.py][1871] : starting thread (client mode): 0x8636b4f0
2025-06-13 13:06:29,406 [DEBUG][       Thread-255834][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 13:06:29,421 [DEBUG][       Thread-255834][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 13:06:29,421 [ INFO][       Thread-255834][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 13:06:29,429 [DEBUG][       Thread-255834][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 13:06:29,429 [DEBUG][       Thread-255834][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 13:06:29,429 [DEBUG][       Thread-255834][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 13:06:29,429 [DEBUG][       Thread-255834][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:06:29,429 [DEBUG][       Thread-255834][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:06:29,429 [DEBUG][       Thread-255834][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:06:29,429 [DEBUG][       Thread-255834][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:06:29,429 [DEBUG][       Thread-255834][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 13:06:29,430 [DEBUG][       Thread-255834][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 13:06:29,430 [DEBUG][       Thread-255834][   transport.py][1871] : client lang: <none>
2025-06-13 13:06:29,430 [DEBUG][       Thread-255834][   transport.py][1871] : server lang: <none>
2025-06-13 13:06:29,430 [DEBUG][       Thread-255834][   transport.py][1871] : kex follows: False
2025-06-13 13:06:29,430 [DEBUG][       Thread-255834][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 13:06:29,430 [DEBUG][       Thread-255834][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 13:06:29,430 [DEBUG][       Thread-255834][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 13:06:29,430 [DEBUG][       Thread-255834][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 13:06:29,430 [DEBUG][       Thread-255834][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 13:06:29,430 [DEBUG][       Thread-255834][   transport.py][1871] : Compression: none
2025-06-13 13:06:29,430 [DEBUG][       Thread-255834][   transport.py][1871] : === End of kex handshake ===
2025-06-13 13:06:29,486 [DEBUG][       Thread-255834][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 13:06:29,487 [DEBUG][       Thread-255834][   transport.py][1871] : Switch to new keys ...
2025-06-13 13:06:29,487 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 13:06:29,488 [DEBUG][       Thread-255834][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 13:06:29,489 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 13:06:29,542 [DEBUG][       Thread-255834][   transport.py][1871] : userauth is OK
2025-06-13 13:06:29,542 [DEBUG][       Thread-255834][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 13:06:29,542 [DEBUG][       Thread-255834][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 13:06:29,542 [DEBUG][       Thread-255834][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 13:06:29,543 [DEBUG][       Thread-255834][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 13:06:29,561 [ INFO][       Thread-255834][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 13:06:29,561 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 13:06:29,562 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 13:06:30,562 [DEBUG][       Thread-255834][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 13:06:30,563 [DEBUG][       Thread-255834][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 13:06:30,612 [DEBUG][       Thread-255834][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 13:06:30,612 [DEBUG][       Thread-255834][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 13:06:30,621 [DEBUG][       Thread-255834][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 13:06:30,630 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 13:06:30,631 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 13:06:30,640 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 13:06:30,649 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 13:06:30,649 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 13:06:30,650 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 13:06:30,658 [DEBUG][       Thread-255834][   transport.py][1871] : EOF in transport thread
2025-06-13 13:06:35,141 [DEBUG][Thread-255836 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:06:40,660 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 13:06:40,661 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 13:06:40,661 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 13:06:40,664 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 13:06:41,126 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 13, 6, 36), 14.04, 37.7, 0.0, 16.64, 12.88, 0, 0, 0, 2, 0, 0),)
2025-06-13 13:06:41,126 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 13:06:36
2025-06-13 13:06:41,205 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 13:06:41,211 [DEBUG][       Thread-255837][   transport.py][1871] : starting thread (client mode): 0x863bde40
2025-06-13 13:06:41,211 [DEBUG][       Thread-255837][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 13:06:41,232 [DEBUG][       Thread-255837][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 13:06:41,233 [ INFO][       Thread-255837][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 13:06:41,236 [DEBUG][       Thread-255837][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 13:06:41,236 [DEBUG][       Thread-255837][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 13:06:41,236 [DEBUG][       Thread-255837][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 13:06:41,236 [DEBUG][       Thread-255837][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:06:41,236 [DEBUG][       Thread-255837][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:06:41,236 [DEBUG][       Thread-255837][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:06:41,236 [DEBUG][       Thread-255837][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:06:41,236 [DEBUG][       Thread-255837][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 13:06:41,236 [DEBUG][       Thread-255837][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 13:06:41,236 [DEBUG][       Thread-255837][   transport.py][1871] : client lang: <none>
2025-06-13 13:06:41,236 [DEBUG][       Thread-255837][   transport.py][1871] : server lang: <none>
2025-06-13 13:06:41,236 [DEBUG][       Thread-255837][   transport.py][1871] : kex follows: False
2025-06-13 13:06:41,236 [DEBUG][       Thread-255837][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 13:06:41,236 [DEBUG][       Thread-255837][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 13:06:41,236 [DEBUG][       Thread-255837][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 13:06:41,236 [DEBUG][       Thread-255837][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 13:06:41,236 [DEBUG][       Thread-255837][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 13:06:41,236 [DEBUG][       Thread-255837][   transport.py][1871] : Compression: none
2025-06-13 13:06:41,236 [DEBUG][       Thread-255837][   transport.py][1871] : === End of kex handshake ===
2025-06-13 13:06:41,253 [DEBUG][       Thread-255837][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 13:06:41,254 [DEBUG][       Thread-255837][   transport.py][1871] : Switch to new keys ...
2025-06-13 13:06:41,254 [DEBUG][       Thread-255837][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 13:06:41,255 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 13:06:41,255 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 13:06:41,256 [DEBUG][       Thread-255837][   transport.py][1871] : userauth is OK
2025-06-13 13:06:41,280 [ INFO][       Thread-255837][   transport.py][1871] : Authentication (password) successful!
2025-06-13 13:06:41,281 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 13:06:41,873 [DEBUG][       Thread-255837][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 13:06:41,873 [DEBUG][       Thread-255837][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 13:06:41,917 [DEBUG][       Thread-255837][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 13:06:41,917 [DEBUG][       Thread-255837][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 13:06:41,921 [DEBUG][       Thread-255837][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 13:06:41,933 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 13:06:41,934 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 13:06:41,935 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 13:06:41,937 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 13:06:41,943 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 13:06:41,945 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 13:06:41,945 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 13:06:41,946 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 13:06:41,946 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.462785 -999.00  +12.90  18.37     42   +0.50 1 1 1 1 1   888    0 12.29 -5.68 ----- 17.7 18.4 49.2 22.9 17.7 -29.0 16.4 -30.5 16.2 -29.1 17.7 -27.0
2025-06-13 13:06:41,946 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 13:06:41,946 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 13:06:41,946 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.462785
2025-06-13 13:06:41,947 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 13:06:41,947 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 13:06:41,947 [DEBUG][       Thread-255837][   transport.py][1871] : EOF in transport thread
2025-06-13 13:06:41,947 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 13:06:41,948 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 13:06:41,948 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 13:06:41,948 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T13:06:36', tmtdew=14.04, humidity=37.7, cloud=0.0, wind=16.64, temperature=12.88, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T11:06:24.624', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 13:06:42,024 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 13:06:42,035 [DEBUG][       Thread-255840][   transport.py][1871] : starting thread (client mode): 0x863a6e60
2025-06-13 13:06:42,035 [DEBUG][       Thread-255840][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 13:06:42,050 [DEBUG][       Thread-255840][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 13:06:42,050 [ INFO][       Thread-255840][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 13:06:42,058 [DEBUG][       Thread-255840][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 13:06:42,058 [DEBUG][       Thread-255840][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 13:06:42,058 [DEBUG][       Thread-255840][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 13:06:42,058 [DEBUG][       Thread-255840][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:06:42,058 [DEBUG][       Thread-255840][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:06:42,058 [DEBUG][       Thread-255840][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:06:42,058 [DEBUG][       Thread-255840][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:06:42,058 [DEBUG][       Thread-255840][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 13:06:42,058 [DEBUG][       Thread-255840][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 13:06:42,058 [DEBUG][       Thread-255840][   transport.py][1871] : client lang: <none>
2025-06-13 13:06:42,058 [DEBUG][       Thread-255840][   transport.py][1871] : server lang: <none>
2025-06-13 13:06:42,058 [DEBUG][       Thread-255840][   transport.py][1871] : kex follows: False
2025-06-13 13:06:42,058 [DEBUG][       Thread-255840][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 13:06:42,058 [DEBUG][       Thread-255840][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 13:06:42,059 [DEBUG][       Thread-255840][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 13:06:42,059 [DEBUG][       Thread-255840][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 13:06:42,059 [DEBUG][       Thread-255840][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 13:06:42,059 [DEBUG][       Thread-255840][   transport.py][1871] : Compression: none
2025-06-13 13:06:42,059 [DEBUG][       Thread-255840][   transport.py][1871] : === End of kex handshake ===
2025-06-13 13:06:42,112 [DEBUG][       Thread-255840][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 13:06:42,113 [DEBUG][       Thread-255840][   transport.py][1871] : Switch to new keys ...
2025-06-13 13:06:42,113 [DEBUG][       Thread-255840][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 13:06:42,113 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 13:06:42,113 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 13:06:42,170 [DEBUG][       Thread-255840][   transport.py][1871] : userauth is OK
2025-06-13 13:06:42,170 [DEBUG][       Thread-255840][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 13:06:42,170 [DEBUG][       Thread-255840][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 13:06:42,170 [DEBUG][       Thread-255840][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 13:06:42,170 [DEBUG][       Thread-255840][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 13:06:42,184 [ INFO][       Thread-255840][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 13:06:42,184 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 13:06:42,184 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 13:06:43,230 [DEBUG][       Thread-255840][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 13:06:43,230 [DEBUG][       Thread-255840][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 13:06:43,280 [DEBUG][       Thread-255840][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 13:06:43,280 [DEBUG][       Thread-255840][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 13:06:43,289 [DEBUG][       Thread-255840][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 13:06:43,298 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 13:06:43,299 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 13:06:43,307 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 13:06:43,316 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 13:06:43,316 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 13:06:43,317 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 13:06:43,325 [DEBUG][       Thread-255840][   transport.py][1871] : EOF in transport thread
2025-06-13 13:06:44,162 [DEBUG][Thread-255842 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:06:49,332 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:06:49,333 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:06:53,194 [DEBUG][Thread-255843 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:06:53,327 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 13:06:53,327 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 13:06:53,328 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 13:06:53,330 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 13:06:53,781 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 13, 6, 36), 14.04, 37.7, 0.0, 16.64, 12.88, 0, 0, 0, 2, 0, 0),)
2025-06-13 13:06:53,781 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 13:06:36
2025-06-13 13:06:53,859 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 13:06:53,864 [DEBUG][       Thread-255844][   transport.py][1871] : starting thread (client mode): 0x86352170
2025-06-13 13:06:53,864 [DEBUG][       Thread-255844][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 13:06:53,884 [DEBUG][       Thread-255844][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 13:06:53,884 [ INFO][       Thread-255844][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 13:06:53,888 [DEBUG][       Thread-255844][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 13:06:53,888 [DEBUG][       Thread-255844][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 13:06:53,888 [DEBUG][       Thread-255844][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 13:06:53,888 [DEBUG][       Thread-255844][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:06:53,888 [DEBUG][       Thread-255844][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:06:53,888 [DEBUG][       Thread-255844][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:06:53,888 [DEBUG][       Thread-255844][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:06:53,888 [DEBUG][       Thread-255844][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 13:06:53,888 [DEBUG][       Thread-255844][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 13:06:53,888 [DEBUG][       Thread-255844][   transport.py][1871] : client lang: <none>
2025-06-13 13:06:53,888 [DEBUG][       Thread-255844][   transport.py][1871] : server lang: <none>
2025-06-13 13:06:53,888 [DEBUG][       Thread-255844][   transport.py][1871] : kex follows: False
2025-06-13 13:06:53,888 [DEBUG][       Thread-255844][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 13:06:53,888 [DEBUG][       Thread-255844][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 13:06:53,888 [DEBUG][       Thread-255844][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 13:06:53,888 [DEBUG][       Thread-255844][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 13:06:53,888 [DEBUG][       Thread-255844][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 13:06:53,888 [DEBUG][       Thread-255844][   transport.py][1871] : Compression: none
2025-06-13 13:06:53,888 [DEBUG][       Thread-255844][   transport.py][1871] : === End of kex handshake ===
2025-06-13 13:06:53,905 [DEBUG][       Thread-255844][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 13:06:53,906 [DEBUG][       Thread-255844][   transport.py][1871] : Switch to new keys ...
2025-06-13 13:06:53,906 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 13:06:53,906 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 13:06:53,907 [DEBUG][       Thread-255844][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 13:06:53,908 [DEBUG][       Thread-255844][   transport.py][1871] : userauth is OK
2025-06-13 13:06:53,932 [ INFO][       Thread-255844][   transport.py][1871] : Authentication (password) successful!
2025-06-13 13:06:53,933 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 13:06:54,555 [DEBUG][       Thread-255844][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 13:06:54,555 [DEBUG][       Thread-255844][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 13:06:54,596 [DEBUG][       Thread-255844][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 13:06:54,596 [DEBUG][       Thread-255844][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 13:06:54,599 [DEBUG][       Thread-255844][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 13:06:54,612 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 13:06:54,612 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 13:06:54,614 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 13:06:54,615 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 13:06:54,617 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 13:06:54,618 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 13:06:54,618 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 13:06:54,618 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 13:06:54,618 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.462785 -999.00  +12.90  18.37     42   +0.50 1 1 1 1 1   888    0 12.29 -5.68 ----- 17.7 18.4 49.2 22.9 17.7 -29.0 16.4 -30.5 16.2 -29.1 17.7 -27.0
2025-06-13 13:06:54,618 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 13:06:54,618 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 13:06:54,619 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.462785
2025-06-13 13:06:54,619 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 13:06:54,619 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 13:06:54,619 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 13:06:54,619 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 13:06:54,619 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 13:06:54,619 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T13:06:36', tmtdew=14.04, humidity=37.7, cloud=0.0, wind=16.64, temperature=12.88, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T11:06:24.624', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 13:06:54,620 [DEBUG][       Thread-255844][   transport.py][1871] : EOF in transport thread
2025-06-13 13:06:54,690 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 13:06:54,699 [DEBUG][       Thread-255847][   transport.py][1871] : starting thread (client mode): 0x868c8070
2025-06-13 13:06:54,699 [DEBUG][       Thread-255847][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 13:06:54,718 [DEBUG][       Thread-255847][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 13:06:54,718 [ INFO][       Thread-255847][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 13:06:54,729 [DEBUG][       Thread-255847][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 13:06:54,729 [DEBUG][       Thread-255847][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 13:06:54,729 [DEBUG][       Thread-255847][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 13:06:54,729 [DEBUG][       Thread-255847][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:06:54,729 [DEBUG][       Thread-255847][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:06:54,729 [DEBUG][       Thread-255847][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:06:54,729 [DEBUG][       Thread-255847][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:06:54,729 [DEBUG][       Thread-255847][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 13:06:54,729 [DEBUG][       Thread-255847][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 13:06:54,729 [DEBUG][       Thread-255847][   transport.py][1871] : client lang: <none>
2025-06-13 13:06:54,729 [DEBUG][       Thread-255847][   transport.py][1871] : server lang: <none>
2025-06-13 13:06:54,729 [DEBUG][       Thread-255847][   transport.py][1871] : kex follows: False
2025-06-13 13:06:54,729 [DEBUG][       Thread-255847][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 13:06:54,729 [DEBUG][       Thread-255847][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 13:06:54,729 [DEBUG][       Thread-255847][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 13:06:54,729 [DEBUG][       Thread-255847][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 13:06:54,729 [DEBUG][       Thread-255847][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 13:06:54,729 [DEBUG][       Thread-255847][   transport.py][1871] : Compression: none
2025-06-13 13:06:54,729 [DEBUG][       Thread-255847][   transport.py][1871] : === End of kex handshake ===
2025-06-13 13:06:54,785 [DEBUG][       Thread-255847][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 13:06:54,786 [DEBUG][       Thread-255847][   transport.py][1871] : Switch to new keys ...
2025-06-13 13:06:54,786 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 13:06:54,786 [DEBUG][       Thread-255847][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 13:06:54,787 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 13:06:54,842 [DEBUG][       Thread-255847][   transport.py][1871] : userauth is OK
2025-06-13 13:06:54,842 [DEBUG][       Thread-255847][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 13:06:54,842 [DEBUG][       Thread-255847][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 13:06:54,842 [DEBUG][       Thread-255847][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 13:06:54,842 [DEBUG][       Thread-255847][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 13:06:54,866 [ INFO][       Thread-255847][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 13:06:54,866 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 13:06:54,867 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 13:06:55,905 [DEBUG][       Thread-255847][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 13:06:55,905 [DEBUG][       Thread-255847][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 13:06:55,956 [DEBUG][       Thread-255847][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 13:06:55,956 [DEBUG][       Thread-255847][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 13:06:55,965 [DEBUG][       Thread-255847][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 13:06:55,973 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 13:06:55,974 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 13:06:55,982 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 13:06:55,991 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 13:06:55,991 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 13:06:55,991 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 13:06:55,999 [DEBUG][       Thread-255847][   transport.py][1871] : EOF in transport thread
2025-06-13 13:07:02,215 [DEBUG][Thread-255849 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:07:06,002 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 13:07:06,002 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 13:07:06,002 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 13:07:06,005 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 13:07:06,472 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 13, 6, 36), 14.04, 37.7, 0.0, 16.64, 12.88, 0, 0, 0, 2, 0, 0),)
2025-06-13 13:07:06,472 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 13:06:36
2025-06-13 13:07:06,552 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 13:07:06,558 [DEBUG][       Thread-255850][   transport.py][1871] : starting thread (client mode): 0x863513f0
2025-06-13 13:07:06,558 [DEBUG][       Thread-255850][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 13:07:06,578 [DEBUG][       Thread-255850][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 13:07:06,578 [ INFO][       Thread-255850][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 13:07:06,582 [DEBUG][       Thread-255850][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 13:07:06,582 [DEBUG][       Thread-255850][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 13:07:06,582 [DEBUG][       Thread-255850][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 13:07:06,582 [DEBUG][       Thread-255850][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:07:06,582 [DEBUG][       Thread-255850][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:07:06,582 [DEBUG][       Thread-255850][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:07:06,582 [DEBUG][       Thread-255850][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:07:06,582 [DEBUG][       Thread-255850][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 13:07:06,582 [DEBUG][       Thread-255850][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 13:07:06,582 [DEBUG][       Thread-255850][   transport.py][1871] : client lang: <none>
2025-06-13 13:07:06,582 [DEBUG][       Thread-255850][   transport.py][1871] : server lang: <none>
2025-06-13 13:07:06,582 [DEBUG][       Thread-255850][   transport.py][1871] : kex follows: False
2025-06-13 13:07:06,582 [DEBUG][       Thread-255850][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 13:07:06,582 [DEBUG][       Thread-255850][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 13:07:06,583 [DEBUG][       Thread-255850][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 13:07:06,583 [DEBUG][       Thread-255850][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 13:07:06,583 [DEBUG][       Thread-255850][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 13:07:06,583 [DEBUG][       Thread-255850][   transport.py][1871] : Compression: none
2025-06-13 13:07:06,583 [DEBUG][       Thread-255850][   transport.py][1871] : === End of kex handshake ===
2025-06-13 13:07:06,601 [DEBUG][       Thread-255850][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 13:07:06,602 [DEBUG][       Thread-255850][   transport.py][1871] : Switch to new keys ...
2025-06-13 13:07:06,602 [DEBUG][       Thread-255850][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 13:07:06,602 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 13:07:06,603 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 13:07:06,604 [DEBUG][       Thread-255850][   transport.py][1871] : userauth is OK
2025-06-13 13:07:06,628 [ INFO][       Thread-255850][   transport.py][1871] : Authentication (password) successful!
2025-06-13 13:07:06,629 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 13:07:07,288 [DEBUG][       Thread-255850][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 13:07:07,288 [DEBUG][       Thread-255850][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 13:07:07,329 [DEBUG][       Thread-255850][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 13:07:07,329 [DEBUG][       Thread-255850][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 13:07:07,333 [DEBUG][       Thread-255850][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 13:07:07,346 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 13:07:07,346 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 13:07:07,348 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 13:07:07,350 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 13:07:07,356 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 13:07:07,358 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 13:07:07,358 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 13:07:07,359 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 13:07:07,359 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.462785 -999.00  +12.90  18.37     42   +0.50 1 1 1 1 1   888    0 12.29 -5.68 ----- 17.7 18.4 49.2 22.9 17.7 -29.0 16.4 -30.5 16.2 -29.1 17.7 -27.0
2025-06-13 13:07:07,359 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 13:07:07,359 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 13:07:07,359 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.462785
2025-06-13 13:07:07,359 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 13:07:07,360 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 13:07:07,360 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 13:07:07,360 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 13:07:07,360 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 13:07:07,360 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T13:06:36', tmtdew=14.04, humidity=37.7, cloud=0.0, wind=16.64, temperature=12.88, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T11:06:24.624', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 13:07:07,362 [DEBUG][       Thread-255850][   transport.py][1871] : EOF in transport thread
2025-06-13 13:07:07,444 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 13:07:07,454 [DEBUG][       Thread-255853][   transport.py][1871] : starting thread (client mode): 0x868c8070
2025-06-13 13:07:07,454 [DEBUG][       Thread-255853][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 13:07:07,470 [DEBUG][       Thread-255853][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 13:07:07,470 [ INFO][       Thread-255853][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 13:07:07,477 [DEBUG][       Thread-255853][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 13:07:07,477 [DEBUG][       Thread-255853][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 13:07:07,478 [DEBUG][       Thread-255853][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 13:07:07,478 [DEBUG][       Thread-255853][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:07:07,478 [DEBUG][       Thread-255853][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:07:07,478 [DEBUG][       Thread-255853][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:07:07,478 [DEBUG][       Thread-255853][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:07:07,478 [DEBUG][       Thread-255853][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 13:07:07,478 [DEBUG][       Thread-255853][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 13:07:07,478 [DEBUG][       Thread-255853][   transport.py][1871] : client lang: <none>
2025-06-13 13:07:07,478 [DEBUG][       Thread-255853][   transport.py][1871] : server lang: <none>
2025-06-13 13:07:07,478 [DEBUG][       Thread-255853][   transport.py][1871] : kex follows: False
2025-06-13 13:07:07,478 [DEBUG][       Thread-255853][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 13:07:07,478 [DEBUG][       Thread-255853][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 13:07:07,478 [DEBUG][       Thread-255853][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 13:07:07,478 [DEBUG][       Thread-255853][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 13:07:07,478 [DEBUG][       Thread-255853][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 13:07:07,478 [DEBUG][       Thread-255853][   transport.py][1871] : Compression: none
2025-06-13 13:07:07,478 [DEBUG][       Thread-255853][   transport.py][1871] : === End of kex handshake ===
2025-06-13 13:07:07,534 [DEBUG][       Thread-255853][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 13:07:07,535 [DEBUG][       Thread-255853][   transport.py][1871] : Switch to new keys ...
2025-06-13 13:07:07,535 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 13:07:07,536 [DEBUG][       Thread-255853][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 13:07:07,537 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 13:07:07,590 [DEBUG][       Thread-255853][   transport.py][1871] : userauth is OK
2025-06-13 13:07:07,590 [DEBUG][       Thread-255853][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 13:07:07,591 [DEBUG][       Thread-255853][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 13:07:07,591 [DEBUG][       Thread-255853][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 13:07:07,591 [DEBUG][       Thread-255853][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 13:07:07,614 [ INFO][       Thread-255853][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 13:07:07,615 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 13:07:07,615 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 13:07:08,694 [DEBUG][       Thread-255853][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 13:07:08,695 [DEBUG][       Thread-255853][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 13:07:08,744 [DEBUG][       Thread-255853][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 13:07:08,744 [DEBUG][       Thread-255853][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 13:07:08,753 [DEBUG][       Thread-255853][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 13:07:08,762 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 13:07:08,762 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 13:07:08,771 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 13:07:08,780 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 13:07:08,780 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 13:07:08,781 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 13:07:08,788 [DEBUG][       Thread-255853][   transport.py][1871] : EOF in transport thread
2025-06-13 13:07:10,612 [DEBUG][Thread-255855 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:07:11,240 [DEBUG][Thread-255856 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:07:11,675 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:07:11,677 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:07:14,145 [DEBUG][Thread-255857 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:07:18,790 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 13:07:18,790 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 13:07:18,799 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 13:07:18,802 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 13:07:19,264 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 13, 7, 8), 14.15, 37.64, 0.0, 13.13, 12.92, 0, 0, 0, 2, 0, 0),)
2025-06-13 13:07:19,264 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 13:07:08
2025-06-13 13:07:19,341 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 13:07:19,348 [DEBUG][       Thread-255858][   transport.py][1871] : starting thread (client mode): 0x86350580
2025-06-13 13:07:19,348 [DEBUG][       Thread-255858][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 13:07:19,368 [DEBUG][       Thread-255858][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 13:07:19,368 [ INFO][       Thread-255858][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 13:07:19,371 [DEBUG][       Thread-255858][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 13:07:19,372 [DEBUG][       Thread-255858][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 13:07:19,372 [DEBUG][       Thread-255858][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 13:07:19,372 [DEBUG][       Thread-255858][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:07:19,372 [DEBUG][       Thread-255858][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:07:19,372 [DEBUG][       Thread-255858][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:07:19,372 [DEBUG][       Thread-255858][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:07:19,372 [DEBUG][       Thread-255858][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 13:07:19,372 [DEBUG][       Thread-255858][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 13:07:19,372 [DEBUG][       Thread-255858][   transport.py][1871] : client lang: <none>
2025-06-13 13:07:19,372 [DEBUG][       Thread-255858][   transport.py][1871] : server lang: <none>
2025-06-13 13:07:19,372 [DEBUG][       Thread-255858][   transport.py][1871] : kex follows: False
2025-06-13 13:07:19,372 [DEBUG][       Thread-255858][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 13:07:19,373 [DEBUG][       Thread-255858][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 13:07:19,373 [DEBUG][       Thread-255858][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 13:07:19,373 [DEBUG][       Thread-255858][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 13:07:19,373 [DEBUG][       Thread-255858][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 13:07:19,373 [DEBUG][       Thread-255858][   transport.py][1871] : Compression: none
2025-06-13 13:07:19,373 [DEBUG][       Thread-255858][   transport.py][1871] : === End of kex handshake ===
2025-06-13 13:07:19,389 [DEBUG][       Thread-255858][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 13:07:19,389 [DEBUG][       Thread-255858][   transport.py][1871] : Switch to new keys ...
2025-06-13 13:07:19,389 [DEBUG][       Thread-255858][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 13:07:19,389 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 13:07:19,389 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 13:07:19,390 [DEBUG][       Thread-255858][   transport.py][1871] : userauth is OK
2025-06-13 13:07:19,414 [ INFO][       Thread-255858][   transport.py][1871] : Authentication (password) successful!
2025-06-13 13:07:19,415 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 13:07:20,049 [DEBUG][       Thread-255858][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 13:07:20,049 [DEBUG][       Thread-255858][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 13:07:20,096 [DEBUG][       Thread-255858][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 13:07:20,097 [DEBUG][       Thread-255858][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 13:07:20,100 [DEBUG][       Thread-255858][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 13:07:20,111 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 13:07:20,112 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 13:07:20,113 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 13:07:20,115 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 13:07:20,119 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 13:07:20,120 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 13:07:20,120 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 13:07:20,121 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 13:07:20,121 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.463132 -999.00  +12.90  16.80     42   +0.40 1 1 1 1 1   888    0 12.38 -5.44 ----- 16.1 16.8 40.6 18.9 17.7 -28.9 16.4 -30.9 16.4 -29.7 17.8 -27.2
2025-06-13 13:07:20,121 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 13:07:20,121 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 13:07:20,121 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.463132
2025-06-13 13:07:20,122 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 13:07:20,122 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 13:07:20,122 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 13:07:20,122 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 13:07:20,122 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 13:07:20,122 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T13:07:08', tmtdew=14.15, humidity=37.64, cloud=0.0, wind=13.13, temperature=12.92, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T11:06:54.605', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 13:07:20,123 [DEBUG][       Thread-255858][   transport.py][1871] : EOF in transport thread
2025-06-13 13:07:20,205 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 13:07:20,217 [DEBUG][       Thread-255861][   transport.py][1871] : starting thread (client mode): 0x868c8400
2025-06-13 13:07:20,217 [DEBUG][       Thread-255861][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 13:07:20,232 [DEBUG][       Thread-255861][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 13:07:20,232 [ INFO][       Thread-255861][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 13:07:20,240 [DEBUG][       Thread-255861][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 13:07:20,240 [DEBUG][       Thread-255861][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 13:07:20,240 [DEBUG][       Thread-255861][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 13:07:20,240 [DEBUG][       Thread-255861][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:07:20,240 [DEBUG][       Thread-255861][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:07:20,240 [DEBUG][       Thread-255861][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:07:20,240 [DEBUG][       Thread-255861][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:07:20,240 [DEBUG][       Thread-255861][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 13:07:20,240 [DEBUG][       Thread-255861][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 13:07:20,240 [DEBUG][       Thread-255861][   transport.py][1871] : client lang: <none>
2025-06-13 13:07:20,241 [DEBUG][       Thread-255861][   transport.py][1871] : server lang: <none>
2025-06-13 13:07:20,241 [DEBUG][       Thread-255861][   transport.py][1871] : kex follows: False
2025-06-13 13:07:20,241 [DEBUG][       Thread-255861][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 13:07:20,241 [DEBUG][       Thread-255861][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 13:07:20,241 [DEBUG][       Thread-255861][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 13:07:20,241 [DEBUG][       Thread-255861][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 13:07:20,241 [DEBUG][       Thread-255861][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 13:07:20,241 [DEBUG][       Thread-255861][   transport.py][1871] : Compression: none
2025-06-13 13:07:20,241 [DEBUG][       Thread-255861][   transport.py][1871] : === End of kex handshake ===
2025-06-13 13:07:20,262 [DEBUG][Thread-255863 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:07:20,298 [DEBUG][       Thread-255861][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 13:07:20,298 [DEBUG][       Thread-255861][   transport.py][1871] : Switch to new keys ...
2025-06-13 13:07:20,299 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 13:07:20,299 [DEBUG][       Thread-255861][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 13:07:20,300 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 13:07:20,354 [DEBUG][       Thread-255861][   transport.py][1871] : userauth is OK
2025-06-13 13:07:20,354 [DEBUG][       Thread-255861][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 13:07:20,355 [DEBUG][       Thread-255861][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 13:07:20,355 [DEBUG][       Thread-255861][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 13:07:20,355 [DEBUG][       Thread-255861][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 13:07:20,373 [ INFO][       Thread-255861][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 13:07:20,373 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 13:07:20,374 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 13:07:21,410 [DEBUG][       Thread-255861][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 13:07:21,410 [DEBUG][       Thread-255861][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 13:07:21,461 [DEBUG][       Thread-255861][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 13:07:21,461 [DEBUG][       Thread-255861][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 13:07:21,470 [DEBUG][       Thread-255861][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 13:07:21,479 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 13:07:21,480 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 13:07:21,489 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 13:07:21,499 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 13:07:21,499 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 13:07:21,500 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 13:07:21,508 [DEBUG][       Thread-255861][   transport.py][1871] : EOF in transport thread
2025-06-13 13:07:29,292 [DEBUG][Thread-255864 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:07:31,508 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 13:07:31,508 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 13:07:31,508 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 13:07:31,511 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 13:07:31,969 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 13, 7, 8), 14.15, 37.64, 0.0, 13.13, 12.92, 0, 0, 0, 2, 0, 0),)
2025-06-13 13:07:31,969 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 13:07:08
2025-06-13 13:07:32,047 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 13:07:32,052 [DEBUG][       Thread-255865][   transport.py][1871] : starting thread (client mode): 0x867fdae0
2025-06-13 13:07:32,052 [DEBUG][       Thread-255865][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 13:07:32,074 [DEBUG][       Thread-255865][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 13:07:32,074 [ INFO][       Thread-255865][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 13:07:32,077 [DEBUG][       Thread-255865][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 13:07:32,077 [DEBUG][       Thread-255865][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 13:07:32,077 [DEBUG][       Thread-255865][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 13:07:32,077 [DEBUG][       Thread-255865][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:07:32,077 [DEBUG][       Thread-255865][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:07:32,077 [DEBUG][       Thread-255865][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:07:32,077 [DEBUG][       Thread-255865][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:07:32,077 [DEBUG][       Thread-255865][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 13:07:32,078 [DEBUG][       Thread-255865][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 13:07:32,078 [DEBUG][       Thread-255865][   transport.py][1871] : client lang: <none>
2025-06-13 13:07:32,078 [DEBUG][       Thread-255865][   transport.py][1871] : server lang: <none>
2025-06-13 13:07:32,078 [DEBUG][       Thread-255865][   transport.py][1871] : kex follows: False
2025-06-13 13:07:32,078 [DEBUG][       Thread-255865][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 13:07:32,078 [DEBUG][       Thread-255865][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 13:07:32,078 [DEBUG][       Thread-255865][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 13:07:32,078 [DEBUG][       Thread-255865][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 13:07:32,078 [DEBUG][       Thread-255865][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 13:07:32,078 [DEBUG][       Thread-255865][   transport.py][1871] : Compression: none
2025-06-13 13:07:32,078 [DEBUG][       Thread-255865][   transport.py][1871] : === End of kex handshake ===
2025-06-13 13:07:32,095 [DEBUG][       Thread-255865][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 13:07:32,096 [DEBUG][       Thread-255865][   transport.py][1871] : Switch to new keys ...
2025-06-13 13:07:32,096 [DEBUG][       Thread-255865][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 13:07:32,096 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 13:07:32,097 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 13:07:32,098 [DEBUG][       Thread-255865][   transport.py][1871] : userauth is OK
2025-06-13 13:07:32,110 [ INFO][       Thread-255865][   transport.py][1871] : Authentication (password) successful!
2025-06-13 13:07:32,111 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 13:07:33,198 [DEBUG][       Thread-255865][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 13:07:33,198 [DEBUG][       Thread-255865][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 13:07:33,241 [DEBUG][       Thread-255865][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 13:07:33,241 [DEBUG][       Thread-255865][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 13:07:33,244 [DEBUG][       Thread-255865][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 13:07:33,259 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 13:07:33,259 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 13:07:33,261 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 13:07:33,263 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 13:07:33,268 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 13:07:33,270 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 13:07:33,271 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 13:07:33,271 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 13:07:33,271 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.463132 -999.00  +12.90  16.80     42   +0.40 1 1 1 1 1   888    0 12.38 -5.44 ----- 16.1 16.8 40.6 18.9 17.7 -28.9 16.4 -30.9 16.4 -29.7 17.8 -27.2
2025-06-13 13:07:33,272 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 13:07:33,272 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 13:07:33,272 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.463132
2025-06-13 13:07:33,272 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 13:07:33,273 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 13:07:33,273 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 13:07:33,273 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 13:07:33,273 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 13:07:33,273 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T13:07:08', tmtdew=14.15, humidity=37.64, cloud=0.0, wind=13.13, temperature=12.92, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T11:06:54.605', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 13:07:33,273 [DEBUG][       Thread-255865][   transport.py][1871] : EOF in transport thread
2025-06-13 13:07:33,356 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 13:07:33,366 [DEBUG][       Thread-255868][   transport.py][1871] : starting thread (client mode): 0x84204730
2025-06-13 13:07:33,366 [DEBUG][       Thread-255868][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 13:07:33,381 [DEBUG][       Thread-255868][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 13:07:33,381 [ INFO][       Thread-255868][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 13:07:33,392 [DEBUG][       Thread-255868][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 13:07:33,392 [DEBUG][       Thread-255868][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 13:07:33,392 [DEBUG][       Thread-255868][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 13:07:33,392 [DEBUG][       Thread-255868][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:07:33,392 [DEBUG][       Thread-255868][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:07:33,392 [DEBUG][       Thread-255868][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:07:33,392 [DEBUG][       Thread-255868][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:07:33,392 [DEBUG][       Thread-255868][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 13:07:33,392 [DEBUG][       Thread-255868][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 13:07:33,392 [DEBUG][       Thread-255868][   transport.py][1871] : client lang: <none>
2025-06-13 13:07:33,392 [DEBUG][       Thread-255868][   transport.py][1871] : server lang: <none>
2025-06-13 13:07:33,392 [DEBUG][       Thread-255868][   transport.py][1871] : kex follows: False
2025-06-13 13:07:33,392 [DEBUG][       Thread-255868][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 13:07:33,392 [DEBUG][       Thread-255868][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 13:07:33,392 [DEBUG][       Thread-255868][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 13:07:33,392 [DEBUG][       Thread-255868][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 13:07:33,393 [DEBUG][       Thread-255868][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 13:07:33,393 [DEBUG][       Thread-255868][   transport.py][1871] : Compression: none
2025-06-13 13:07:33,393 [DEBUG][       Thread-255868][   transport.py][1871] : === End of kex handshake ===
2025-06-13 13:07:33,453 [DEBUG][       Thread-255868][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 13:07:33,454 [DEBUG][       Thread-255868][   transport.py][1871] : Switch to new keys ...
2025-06-13 13:07:33,454 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 13:07:33,455 [DEBUG][       Thread-255868][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 13:07:33,456 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 13:07:33,510 [DEBUG][       Thread-255868][   transport.py][1871] : userauth is OK
2025-06-13 13:07:33,510 [DEBUG][       Thread-255868][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 13:07:33,511 [DEBUG][       Thread-255868][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 13:07:33,511 [DEBUG][       Thread-255868][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 13:07:33,511 [DEBUG][       Thread-255868][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 13:07:33,529 [ INFO][       Thread-255868][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 13:07:33,530 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 13:07:33,530 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 13:07:34,530 [DEBUG][       Thread-255868][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 13:07:34,530 [DEBUG][       Thread-255868][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 13:07:34,580 [DEBUG][       Thread-255868][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 13:07:34,580 [DEBUG][       Thread-255868][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 13:07:34,589 [DEBUG][       Thread-255868][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 13:07:34,598 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 13:07:34,599 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 13:07:34,607 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 13:07:34,617 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 13:07:34,617 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 13:07:34,618 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 13:07:34,625 [DEBUG][       Thread-255868][   transport.py][1871] : EOF in transport thread
2025-06-13 13:07:38,312 [DEBUG][Thread-255870 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:07:44,628 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 13:07:44,628 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 13:07:44,628 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 13:07:44,631 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 13:07:45,094 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 13, 7, 40), 14.01, 38.0, 0.0, 12.18, 12.85, 0, 0, 0, 2, 0, 0),)
2025-06-13 13:07:45,094 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 13:07:40
2025-06-13 13:07:45,175 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 13:07:45,181 [DEBUG][       Thread-255871][   transport.py][1871] : starting thread (client mode): 0x84205720
2025-06-13 13:07:45,182 [DEBUG][       Thread-255871][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 13:07:45,198 [DEBUG][       Thread-255871][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 13:07:45,198 [ INFO][       Thread-255871][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 13:07:45,200 [DEBUG][       Thread-255871][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 13:07:45,200 [DEBUG][       Thread-255871][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 13:07:45,200 [DEBUG][       Thread-255871][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 13:07:45,200 [DEBUG][       Thread-255871][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:07:45,200 [DEBUG][       Thread-255871][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:07:45,200 [DEBUG][       Thread-255871][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:07:45,200 [DEBUG][       Thread-255871][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:07:45,200 [DEBUG][       Thread-255871][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 13:07:45,200 [DEBUG][       Thread-255871][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 13:07:45,200 [DEBUG][       Thread-255871][   transport.py][1871] : client lang: <none>
2025-06-13 13:07:45,200 [DEBUG][       Thread-255871][   transport.py][1871] : server lang: <none>
2025-06-13 13:07:45,200 [DEBUG][       Thread-255871][   transport.py][1871] : kex follows: False
2025-06-13 13:07:45,200 [DEBUG][       Thread-255871][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 13:07:45,200 [DEBUG][       Thread-255871][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 13:07:45,200 [DEBUG][       Thread-255871][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 13:07:45,200 [DEBUG][       Thread-255871][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 13:07:45,200 [DEBUG][       Thread-255871][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 13:07:45,200 [DEBUG][       Thread-255871][   transport.py][1871] : Compression: none
2025-06-13 13:07:45,200 [DEBUG][       Thread-255871][   transport.py][1871] : === End of kex handshake ===
2025-06-13 13:07:45,209 [DEBUG][       Thread-255871][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 13:07:45,209 [DEBUG][       Thread-255871][   transport.py][1871] : Switch to new keys ...
2025-06-13 13:07:45,209 [DEBUG][       Thread-255871][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 13:07:45,210 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 13:07:45,210 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 13:07:45,210 [DEBUG][       Thread-255871][   transport.py][1871] : userauth is OK
2025-06-13 13:07:45,223 [ INFO][       Thread-255871][   transport.py][1871] : Authentication (password) successful!
2025-06-13 13:07:45,224 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 13:07:45,830 [DEBUG][       Thread-255871][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 13:07:45,831 [DEBUG][       Thread-255871][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 13:07:45,873 [DEBUG][       Thread-255871][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 13:07:45,873 [DEBUG][       Thread-255871][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 13:07:45,876 [DEBUG][       Thread-255871][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 13:07:45,888 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 13:07:45,889 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 13:07:45,891 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 13:07:45,893 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 13:07:45,898 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 13:07:45,900 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 13:07:45,900 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 13:07:45,901 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 13:07:45,901 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.463479 -999.00  +13.00  13.38     42   +0.40 1 1 1 1 1   888    0 12.61 -4.43 ----- 14.9 13.4 36.4 18.9 17.8 -29.0 16.4 -31.5 16.4 -28.4 17.8 -27.6
2025-06-13 13:07:45,901 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 13:07:45,901 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 13:07:45,902 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.463479
2025-06-13 13:07:45,902 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 13:07:45,903 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 13:07:45,903 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 13:07:45,903 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 13:07:45,903 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 13:07:45,903 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T13:07:40', tmtdew=14.01, humidity=38.0, cloud=0.0, wind=12.18, temperature=12.85, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T11:07:24.586', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 13:07:45,904 [DEBUG][       Thread-255871][   transport.py][1871] : EOF in transport thread
2025-06-13 13:07:45,986 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 13:07:45,997 [DEBUG][       Thread-255874][   transport.py][1871] : starting thread (client mode): 0x86352b30
2025-06-13 13:07:45,997 [DEBUG][       Thread-255874][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 13:07:46,012 [DEBUG][       Thread-255874][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 13:07:46,012 [ INFO][       Thread-255874][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 13:07:46,020 [DEBUG][       Thread-255874][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 13:07:46,020 [DEBUG][       Thread-255874][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 13:07:46,020 [DEBUG][       Thread-255874][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 13:07:46,020 [DEBUG][       Thread-255874][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:07:46,020 [DEBUG][       Thread-255874][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:07:46,020 [DEBUG][       Thread-255874][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:07:46,020 [DEBUG][       Thread-255874][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:07:46,020 [DEBUG][       Thread-255874][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 13:07:46,020 [DEBUG][       Thread-255874][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 13:07:46,020 [DEBUG][       Thread-255874][   transport.py][1871] : client lang: <none>
2025-06-13 13:07:46,020 [DEBUG][       Thread-255874][   transport.py][1871] : server lang: <none>
2025-06-13 13:07:46,020 [DEBUG][       Thread-255874][   transport.py][1871] : kex follows: False
2025-06-13 13:07:46,020 [DEBUG][       Thread-255874][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 13:07:46,020 [DEBUG][       Thread-255874][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 13:07:46,021 [DEBUG][       Thread-255874][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 13:07:46,021 [DEBUG][       Thread-255874][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 13:07:46,021 [DEBUG][       Thread-255874][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 13:07:46,021 [DEBUG][       Thread-255874][   transport.py][1871] : Compression: none
2025-06-13 13:07:46,021 [DEBUG][       Thread-255874][   transport.py][1871] : === End of kex handshake ===
2025-06-13 13:07:46,086 [DEBUG][       Thread-255874][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 13:07:46,087 [DEBUG][       Thread-255874][   transport.py][1871] : Switch to new keys ...
2025-06-13 13:07:46,087 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 13:07:46,088 [DEBUG][       Thread-255874][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 13:07:46,089 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 13:07:46,146 [DEBUG][       Thread-255874][   transport.py][1871] : userauth is OK
2025-06-13 13:07:46,147 [DEBUG][       Thread-255874][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 13:07:46,147 [DEBUG][       Thread-255874][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 13:07:46,147 [DEBUG][       Thread-255874][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 13:07:46,147 [DEBUG][       Thread-255874][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 13:07:46,166 [ INFO][       Thread-255874][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 13:07:46,166 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 13:07:46,166 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 13:07:47,208 [DEBUG][       Thread-255874][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 13:07:47,209 [DEBUG][       Thread-255874][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 13:07:47,259 [DEBUG][       Thread-255874][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 13:07:47,260 [DEBUG][       Thread-255874][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 13:07:47,268 [DEBUG][       Thread-255874][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 13:07:47,277 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 13:07:47,277 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 13:07:47,285 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 13:07:47,295 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 13:07:47,295 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 13:07:47,295 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 13:07:47,303 [DEBUG][       Thread-255874][   transport.py][1871] : EOF in transport thread
2025-06-13 13:07:47,332 [DEBUG][Thread-255876 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:07:49,469 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:07:49,470 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:07:56,365 [DEBUG][Thread-255877 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:07:57,300 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 13:07:57,300 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 13:07:57,300 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 13:07:57,303 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 13:07:57,765 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 13, 7, 40), 14.01, 38.0, 0.0, 12.18, 12.85, 0, 0, 0, 2, 0, 0),)
2025-06-13 13:07:57,765 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 13:07:40
2025-06-13 13:07:57,846 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 13:07:57,851 [DEBUG][       Thread-255878][   transport.py][1871] : starting thread (client mode): 0x84207cd0
2025-06-13 13:07:57,851 [DEBUG][       Thread-255878][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 13:07:57,872 [DEBUG][       Thread-255878][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 13:07:57,872 [ INFO][       Thread-255878][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 13:07:57,875 [DEBUG][       Thread-255878][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 13:07:57,875 [DEBUG][       Thread-255878][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 13:07:57,875 [DEBUG][       Thread-255878][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 13:07:57,875 [DEBUG][       Thread-255878][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:07:57,875 [DEBUG][       Thread-255878][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:07:57,875 [DEBUG][       Thread-255878][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:07:57,876 [DEBUG][       Thread-255878][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:07:57,876 [DEBUG][       Thread-255878][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 13:07:57,876 [DEBUG][       Thread-255878][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 13:07:57,876 [DEBUG][       Thread-255878][   transport.py][1871] : client lang: <none>
2025-06-13 13:07:57,876 [DEBUG][       Thread-255878][   transport.py][1871] : server lang: <none>
2025-06-13 13:07:57,876 [DEBUG][       Thread-255878][   transport.py][1871] : kex follows: False
2025-06-13 13:07:57,876 [DEBUG][       Thread-255878][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 13:07:57,876 [DEBUG][       Thread-255878][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 13:07:57,876 [DEBUG][       Thread-255878][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 13:07:57,876 [DEBUG][       Thread-255878][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 13:07:57,876 [DEBUG][       Thread-255878][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 13:07:57,876 [DEBUG][       Thread-255878][   transport.py][1871] : Compression: none
2025-06-13 13:07:57,876 [DEBUG][       Thread-255878][   transport.py][1871] : === End of kex handshake ===
2025-06-13 13:07:57,892 [DEBUG][       Thread-255878][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 13:07:57,893 [DEBUG][       Thread-255878][   transport.py][1871] : Switch to new keys ...
2025-06-13 13:07:57,893 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 13:07:57,893 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 13:07:57,894 [DEBUG][       Thread-255878][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 13:07:57,895 [DEBUG][       Thread-255878][   transport.py][1871] : userauth is OK
2025-06-13 13:07:57,920 [ INFO][       Thread-255878][   transport.py][1871] : Authentication (password) successful!
2025-06-13 13:07:57,921 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 13:07:58,607 [DEBUG][       Thread-255878][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 13:07:58,607 [DEBUG][       Thread-255878][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 13:07:58,649 [DEBUG][       Thread-255878][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 13:07:58,650 [DEBUG][       Thread-255878][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 13:07:58,653 [DEBUG][       Thread-255878][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 13:07:58,668 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 13:07:58,668 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 13:07:58,670 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 13:07:58,672 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 13:07:58,678 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 13:07:58,680 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 13:07:58,681 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 13:07:58,681 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 13:07:58,681 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.463479 -999.00  +13.00  13.38     42   +0.40 1 1 1 1 1   888    0 12.61 -4.43 ----- 14.9 13.4 36.4 18.9 17.8 -29.0 16.4 -31.5 16.4 -28.4 17.8 -27.6
2025-06-13 13:07:58,682 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 13:07:58,682 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 13:07:58,682 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.463479
2025-06-13 13:07:58,682 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 13:07:58,683 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 13:07:58,683 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 13:07:58,683 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 13:07:58,683 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 13:07:58,683 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T13:07:40', tmtdew=14.01, humidity=38.0, cloud=0.0, wind=12.18, temperature=12.85, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T11:07:24.586', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 13:07:58,683 [DEBUG][       Thread-255878][   transport.py][1871] : EOF in transport thread
2025-06-13 13:07:58,768 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 13:07:58,777 [DEBUG][       Thread-255881][   transport.py][1871] : starting thread (client mode): 0x863bc5b0
2025-06-13 13:07:58,777 [DEBUG][       Thread-255881][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 13:07:58,793 [DEBUG][       Thread-255881][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 13:07:58,793 [ INFO][       Thread-255881][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 13:07:58,801 [DEBUG][       Thread-255881][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 13:07:58,801 [DEBUG][       Thread-255881][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 13:07:58,801 [DEBUG][       Thread-255881][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 13:07:58,801 [DEBUG][       Thread-255881][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:07:58,801 [DEBUG][       Thread-255881][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:07:58,801 [DEBUG][       Thread-255881][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:07:58,801 [DEBUG][       Thread-255881][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:07:58,801 [DEBUG][       Thread-255881][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 13:07:58,801 [DEBUG][       Thread-255881][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 13:07:58,801 [DEBUG][       Thread-255881][   transport.py][1871] : client lang: <none>
2025-06-13 13:07:58,801 [DEBUG][       Thread-255881][   transport.py][1871] : server lang: <none>
2025-06-13 13:07:58,801 [DEBUG][       Thread-255881][   transport.py][1871] : kex follows: False
2025-06-13 13:07:58,801 [DEBUG][       Thread-255881][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 13:07:58,801 [DEBUG][       Thread-255881][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 13:07:58,801 [DEBUG][       Thread-255881][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 13:07:58,801 [DEBUG][       Thread-255881][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 13:07:58,801 [DEBUG][       Thread-255881][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 13:07:58,802 [DEBUG][       Thread-255881][   transport.py][1871] : Compression: none
2025-06-13 13:07:58,802 [DEBUG][       Thread-255881][   transport.py][1871] : === End of kex handshake ===
2025-06-13 13:07:58,858 [DEBUG][       Thread-255881][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 13:07:58,858 [DEBUG][       Thread-255881][   transport.py][1871] : Switch to new keys ...
2025-06-13 13:07:58,859 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 13:07:58,859 [DEBUG][       Thread-255881][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 13:07:58,860 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 13:07:58,918 [DEBUG][       Thread-255881][   transport.py][1871] : userauth is OK
2025-06-13 13:07:58,918 [DEBUG][       Thread-255881][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 13:07:58,918 [DEBUG][       Thread-255881][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 13:07:58,918 [DEBUG][       Thread-255881][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 13:07:58,919 [DEBUG][       Thread-255881][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 13:07:58,937 [ INFO][       Thread-255881][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 13:07:58,938 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 13:07:58,938 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 13:07:59,954 [DEBUG][       Thread-255881][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 13:07:59,954 [DEBUG][       Thread-255881][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 13:08:00,003 [DEBUG][       Thread-255881][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 13:08:00,003 [DEBUG][       Thread-255881][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 13:08:00,011 [DEBUG][       Thread-255881][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 13:08:00,019 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 13:08:00,019 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 13:08:00,027 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 13:08:00,036 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 13:08:00,036 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 13:08:00,036 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 13:08:00,044 [DEBUG][       Thread-255881][   transport.py][1871] : EOF in transport thread
2025-06-13 13:08:05,387 [DEBUG][Thread-255883 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:08:10,044 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 13:08:10,044 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 13:08:10,044 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 13:08:10,047 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 13:08:10,507 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 13, 7, 40), 14.01, 38.0, 0.0, 12.18, 12.85, 0, 0, 0, 2, 0, 0),)
2025-06-13 13:08:10,507 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 13:07:40
2025-06-13 13:08:10,588 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 13:08:10,595 [DEBUG][       Thread-255884][   transport.py][1871] : starting thread (client mode): 0x84206ad0
2025-06-13 13:08:10,595 [DEBUG][       Thread-255884][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 13:08:10,617 [DEBUG][       Thread-255884][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 13:08:10,617 [ INFO][       Thread-255884][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 13:08:10,620 [DEBUG][       Thread-255884][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 13:08:10,620 [DEBUG][       Thread-255884][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 13:08:10,620 [DEBUG][       Thread-255884][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 13:08:10,620 [DEBUG][       Thread-255884][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:08:10,620 [DEBUG][       Thread-255884][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:08:10,620 [DEBUG][       Thread-255884][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:08:10,621 [DEBUG][       Thread-255884][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:08:10,621 [DEBUG][       Thread-255884][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 13:08:10,621 [DEBUG][       Thread-255884][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 13:08:10,621 [DEBUG][       Thread-255884][   transport.py][1871] : client lang: <none>
2025-06-13 13:08:10,621 [DEBUG][       Thread-255884][   transport.py][1871] : server lang: <none>
2025-06-13 13:08:10,621 [DEBUG][       Thread-255884][   transport.py][1871] : kex follows: False
2025-06-13 13:08:10,621 [DEBUG][       Thread-255884][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 13:08:10,621 [DEBUG][       Thread-255884][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 13:08:10,621 [DEBUG][       Thread-255884][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 13:08:10,621 [DEBUG][       Thread-255884][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 13:08:10,621 [DEBUG][       Thread-255884][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 13:08:10,621 [DEBUG][       Thread-255884][   transport.py][1871] : Compression: none
2025-06-13 13:08:10,621 [DEBUG][       Thread-255884][   transport.py][1871] : === End of kex handshake ===
2025-06-13 13:08:10,637 [DEBUG][       Thread-255884][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 13:08:10,638 [DEBUG][       Thread-255884][   transport.py][1871] : Switch to new keys ...
2025-06-13 13:08:10,638 [DEBUG][       Thread-255884][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 13:08:10,639 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 13:08:10,639 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 13:08:10,640 [DEBUG][       Thread-255884][   transport.py][1871] : userauth is OK
2025-06-13 13:08:10,665 [ INFO][       Thread-255884][   transport.py][1871] : Authentication (password) successful!
2025-06-13 13:08:10,666 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 13:08:11,297 [DEBUG][       Thread-255884][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 13:08:11,297 [DEBUG][       Thread-255884][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 13:08:11,341 [DEBUG][       Thread-255884][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 13:08:11,341 [DEBUG][       Thread-255884][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 13:08:11,344 [DEBUG][       Thread-255884][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 13:08:11,357 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 13:08:11,357 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 13:08:11,359 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 13:08:11,361 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 13:08:11,367 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 13:08:11,369 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 13:08:11,369 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 13:08:11,370 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 13:08:11,370 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.463479 -999.00  +13.00  13.38     42   +0.40 1 1 1 1 1   888    0 12.61 -4.43 ----- 14.9 13.4 36.4 18.9 17.8 -29.0 16.4 -31.5 16.4 -28.4 17.8 -27.6
2025-06-13 13:08:11,370 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 13:08:11,370 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 13:08:11,370 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.463479
2025-06-13 13:08:11,370 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 13:08:11,371 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 13:08:11,371 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 13:08:11,371 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 13:08:11,371 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 13:08:11,371 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T13:07:40', tmtdew=14.01, humidity=38.0, cloud=0.0, wind=12.18, temperature=12.85, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T11:07:24.586', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 13:08:11,371 [DEBUG][       Thread-255884][   transport.py][1871] : EOF in transport thread
2025-06-13 13:08:11,455 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 13:08:11,468 [DEBUG][       Thread-255887][   transport.py][1871] : starting thread (client mode): 0x863ec730
2025-06-13 13:08:11,468 [DEBUG][       Thread-255887][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 13:08:11,485 [DEBUG][       Thread-255887][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 13:08:11,485 [ INFO][       Thread-255887][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 13:08:11,493 [DEBUG][       Thread-255887][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 13:08:11,493 [DEBUG][       Thread-255887][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 13:08:11,493 [DEBUG][       Thread-255887][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 13:08:11,493 [DEBUG][       Thread-255887][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:08:11,493 [DEBUG][       Thread-255887][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:08:11,494 [DEBUG][       Thread-255887][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:08:11,494 [DEBUG][       Thread-255887][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:08:11,494 [DEBUG][       Thread-255887][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 13:08:11,494 [DEBUG][       Thread-255887][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 13:08:11,494 [DEBUG][       Thread-255887][   transport.py][1871] : client lang: <none>
2025-06-13 13:08:11,494 [DEBUG][       Thread-255887][   transport.py][1871] : server lang: <none>
2025-06-13 13:08:11,494 [DEBUG][       Thread-255887][   transport.py][1871] : kex follows: False
2025-06-13 13:08:11,494 [DEBUG][       Thread-255887][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 13:08:11,494 [DEBUG][       Thread-255887][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 13:08:11,494 [DEBUG][       Thread-255887][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 13:08:11,494 [DEBUG][       Thread-255887][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 13:08:11,494 [DEBUG][       Thread-255887][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 13:08:11,494 [DEBUG][       Thread-255887][   transport.py][1871] : Compression: none
2025-06-13 13:08:11,494 [DEBUG][       Thread-255887][   transport.py][1871] : === End of kex handshake ===
2025-06-13 13:08:11,551 [DEBUG][       Thread-255887][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 13:08:11,552 [DEBUG][       Thread-255887][   transport.py][1871] : Switch to new keys ...
2025-06-13 13:08:11,552 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 13:08:11,553 [DEBUG][       Thread-255887][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 13:08:11,554 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 13:08:11,610 [DEBUG][       Thread-255887][   transport.py][1871] : userauth is OK
2025-06-13 13:08:11,611 [DEBUG][       Thread-255887][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 13:08:11,611 [DEBUG][       Thread-255887][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 13:08:11,611 [DEBUG][       Thread-255887][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 13:08:11,611 [DEBUG][       Thread-255887][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 13:08:11,637 [ INFO][       Thread-255887][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 13:08:11,637 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 13:08:11,637 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 13:08:11,740 [DEBUG][Thread-255889 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:08:12,658 [DEBUG][       Thread-255887][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 13:08:12,658 [DEBUG][       Thread-255887][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 13:08:12,710 [DEBUG][       Thread-255887][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 13:08:12,710 [DEBUG][       Thread-255887][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 13:08:12,718 [DEBUG][       Thread-255887][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 13:08:12,726 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 13:08:12,726 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 13:08:12,740 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 13:08:12,750 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 13:08:12,751 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 13:08:12,751 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 13:08:12,759 [DEBUG][       Thread-255887][   transport.py][1871] : EOF in transport thread
2025-06-13 13:08:12,812 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:08:12,812 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:08:14,190 [DEBUG][Thread-255890 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:08:14,406 [DEBUG][Thread-255891 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:08:22,761 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 13:08:22,762 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 13:08:22,762 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 13:08:22,765 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 13:08:23,229 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 13, 8, 12), 14.16, 37.46, 0.0, 11.29, 12.9, 0, 0, 0, 2, 0, 0),)
2025-06-13 13:08:23,229 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 13:08:12
2025-06-13 13:08:23,310 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 13:08:23,314 [DEBUG][       Thread-255892][   transport.py][1871] : starting thread (client mode): 0x84206380
2025-06-13 13:08:23,314 [DEBUG][       Thread-255892][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 13:08:23,334 [DEBUG][       Thread-255892][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 13:08:23,335 [ INFO][       Thread-255892][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 13:08:23,338 [DEBUG][       Thread-255892][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 13:08:23,338 [DEBUG][       Thread-255892][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 13:08:23,338 [DEBUG][       Thread-255892][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 13:08:23,338 [DEBUG][       Thread-255892][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:08:23,338 [DEBUG][       Thread-255892][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:08:23,338 [DEBUG][       Thread-255892][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:08:23,338 [DEBUG][       Thread-255892][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:08:23,338 [DEBUG][       Thread-255892][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 13:08:23,338 [DEBUG][       Thread-255892][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 13:08:23,338 [DEBUG][       Thread-255892][   transport.py][1871] : client lang: <none>
2025-06-13 13:08:23,338 [DEBUG][       Thread-255892][   transport.py][1871] : server lang: <none>
2025-06-13 13:08:23,338 [DEBUG][       Thread-255892][   transport.py][1871] : kex follows: False
2025-06-13 13:08:23,338 [DEBUG][       Thread-255892][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 13:08:23,338 [DEBUG][       Thread-255892][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 13:08:23,338 [DEBUG][       Thread-255892][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 13:08:23,338 [DEBUG][       Thread-255892][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 13:08:23,338 [DEBUG][       Thread-255892][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 13:08:23,338 [DEBUG][       Thread-255892][   transport.py][1871] : Compression: none
2025-06-13 13:08:23,338 [DEBUG][       Thread-255892][   transport.py][1871] : === End of kex handshake ===
2025-06-13 13:08:23,356 [DEBUG][       Thread-255892][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 13:08:23,356 [DEBUG][       Thread-255892][   transport.py][1871] : Switch to new keys ...
2025-06-13 13:08:23,357 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 13:08:23,357 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 13:08:23,358 [DEBUG][       Thread-255892][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 13:08:23,359 [DEBUG][       Thread-255892][   transport.py][1871] : userauth is OK
2025-06-13 13:08:23,373 [ INFO][       Thread-255892][   transport.py][1871] : Authentication (password) successful!
2025-06-13 13:08:23,373 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 13:08:23,425 [DEBUG][Thread-255894 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:08:24,000 [DEBUG][       Thread-255892][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 13:08:24,001 [DEBUG][       Thread-255892][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 13:08:24,045 [DEBUG][       Thread-255892][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 13:08:24,045 [DEBUG][       Thread-255892][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 13:08:24,049 [DEBUG][       Thread-255892][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 13:08:24,061 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 13:08:24,061 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 13:08:24,063 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 13:08:24,065 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 13:08:24,070 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 13:08:24,072 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 13:08:24,072 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 13:08:24,073 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 13:08:24,073 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.463826 -999.00  +12.80  14.73     41   +0.00 1 1 1 1 1   888    0 12.43 -2.21 ----- 13.2 14.7 45.8 20.2 17.7 -29.5 16.4 -31.0 16.4 -30.4 17.8 -27.5
2025-06-13 13:08:24,073 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 13:08:24,073 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 13:08:24,073 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.463826
2025-06-13 13:08:24,073 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 13:08:24,073 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 13:08:24,073 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 13:08:24,073 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 13:08:24,073 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 13:08:24,073 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T13:08:12', tmtdew=14.16, humidity=37.46, cloud=0.0, wind=11.29, temperature=12.9, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T11:07:54.566', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 13:08:24,073 [DEBUG][       Thread-255892][   transport.py][1871] : EOF in transport thread
2025-06-13 13:08:24,152 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 13:08:32,444 [DEBUG][Thread-255896 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:08:41,477 [DEBUG][Thread-255897 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:08:49,616 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:08:49,617 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:08:50,496 [DEBUG][Thread-255898 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:08:59,518 [DEBUG][Thread-255899 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:09:08,540 [DEBUG][Thread-255900 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:09:12,880 [DEBUG][Thread-255901 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:09:13,968 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:09:13,969 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:09:14,239 [DEBUG][Thread-255902 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:09:17,559 [DEBUG][Thread-255903 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:09:26,577 [DEBUG][Thread-255904 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:09:35,599 [DEBUG][Thread-255905 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:09:44,622 [DEBUG][Thread-255906 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:09:49,760 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:09:49,761 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:09:53,644 [DEBUG][Thread-255907 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:10:02,663 [DEBUG][Thread-255908 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:10:11,688 [DEBUG][Thread-255909 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:10:14,041 [DEBUG][Thread-255910 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:10:14,271 [DEBUG][Thread-255911 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:10:15,122 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:10:15,124 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:10:20,707 [DEBUG][Thread-255912 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:10:29,730 [DEBUG][Thread-255913 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:10:33,236 [WARNING][ poll_weather_worker][      driver.py][ 286] : Unable to open ssh connection for writing weather state to io.saao.ac.za: [Errno 110] Connection timed out
2025-06-13 13:10:38,748 [DEBUG][Thread-255914 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:10:43,247 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 13:10:43,247 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 13:10:43,247 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 13:10:43,250 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 13:10:43,742 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 13, 10, 19), 14.25, 37.24, 0.0, 11.98, 13.09, 0, 0, 0, 2, 0, 0),)
2025-06-13 13:10:43,742 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 13:10:19
2025-06-13 13:10:43,824 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 13:10:43,828 [DEBUG][       Thread-255915][   transport.py][1871] : starting thread (client mode): 0x86393bb0
2025-06-13 13:10:43,828 [DEBUG][       Thread-255915][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 13:10:43,850 [DEBUG][       Thread-255915][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 13:10:43,850 [ INFO][       Thread-255915][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 13:10:43,852 [DEBUG][       Thread-255915][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 13:10:43,852 [DEBUG][       Thread-255915][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 13:10:43,852 [DEBUG][       Thread-255915][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 13:10:43,853 [DEBUG][       Thread-255915][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:10:43,853 [DEBUG][       Thread-255915][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:10:43,853 [DEBUG][       Thread-255915][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:10:43,853 [DEBUG][       Thread-255915][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:10:43,853 [DEBUG][       Thread-255915][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 13:10:43,853 [DEBUG][       Thread-255915][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 13:10:43,853 [DEBUG][       Thread-255915][   transport.py][1871] : client lang: <none>
2025-06-13 13:10:43,853 [DEBUG][       Thread-255915][   transport.py][1871] : server lang: <none>
2025-06-13 13:10:43,853 [DEBUG][       Thread-255915][   transport.py][1871] : kex follows: False
2025-06-13 13:10:43,853 [DEBUG][       Thread-255915][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 13:10:43,853 [DEBUG][       Thread-255915][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 13:10:43,853 [DEBUG][       Thread-255915][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 13:10:43,853 [DEBUG][       Thread-255915][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 13:10:43,853 [DEBUG][       Thread-255915][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 13:10:43,853 [DEBUG][       Thread-255915][   transport.py][1871] : Compression: none
2025-06-13 13:10:43,853 [DEBUG][       Thread-255915][   transport.py][1871] : === End of kex handshake ===
2025-06-13 13:10:43,861 [DEBUG][       Thread-255915][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 13:10:43,861 [DEBUG][       Thread-255915][   transport.py][1871] : Switch to new keys ...
2025-06-13 13:10:43,862 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 13:10:43,862 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 13:10:43,863 [DEBUG][       Thread-255915][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 13:10:43,863 [DEBUG][       Thread-255915][   transport.py][1871] : userauth is OK
2025-06-13 13:10:43,876 [ INFO][       Thread-255915][   transport.py][1871] : Authentication (password) successful!
2025-06-13 13:10:43,876 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 13:10:44,525 [DEBUG][       Thread-255915][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 13:10:44,526 [DEBUG][       Thread-255915][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 13:10:44,569 [DEBUG][       Thread-255915][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 13:10:44,569 [DEBUG][       Thread-255915][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 13:10:44,573 [DEBUG][       Thread-255915][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 13:10:44,584 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 13:10:44,585 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 13:10:44,587 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 13:10:44,588 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 13:10:44,593 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 13:10:44,595 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 13:10:44,595 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 13:10:44,596 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 13:10:44,596 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.465562 -999.00  +12.90  13.26     41   +0.10 1 1 1 1 1   888    0 12.58 8.00 ----- 12.0 13.3 41.2 17.4 17.9 -29.4 16.6 -31.4 16.6 -28.8 18.1 -27.5
2025-06-13 13:10:44,596 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 13:10:44,596 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 13:10:44,596 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.465562
2025-06-13 13:10:44,597 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 13:10:44,597 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 13:10:44,598 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 13:10:44,598 [DEBUG][       Thread-255915][   transport.py][1871] : EOF in transport thread
2025-06-13 13:10:44,598 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 13:10:44,598 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 13:10:44,599 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T13:10:19', tmtdew=14.25, humidity=37.24, cloud=0.0, wind=11.98, temperature=13.09, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T11:10:24.557', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 13:10:44,683 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 13:10:44,695 [DEBUG][       Thread-255918][   transport.py][1871] : starting thread (client mode): 0x867fefb0
2025-06-13 13:10:44,695 [DEBUG][       Thread-255918][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 13:10:44,710 [DEBUG][       Thread-255918][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 13:10:44,710 [ INFO][       Thread-255918][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 13:10:44,718 [DEBUG][       Thread-255918][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 13:10:44,718 [DEBUG][       Thread-255918][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 13:10:44,718 [DEBUG][       Thread-255918][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 13:10:44,718 [DEBUG][       Thread-255918][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:10:44,718 [DEBUG][       Thread-255918][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:10:44,718 [DEBUG][       Thread-255918][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:10:44,718 [DEBUG][       Thread-255918][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:10:44,718 [DEBUG][       Thread-255918][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 13:10:44,718 [DEBUG][       Thread-255918][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 13:10:44,718 [DEBUG][       Thread-255918][   transport.py][1871] : client lang: <none>
2025-06-13 13:10:44,718 [DEBUG][       Thread-255918][   transport.py][1871] : server lang: <none>
2025-06-13 13:10:44,718 [DEBUG][       Thread-255918][   transport.py][1871] : kex follows: False
2025-06-13 13:10:44,718 [DEBUG][       Thread-255918][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 13:10:44,719 [DEBUG][       Thread-255918][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 13:10:44,719 [DEBUG][       Thread-255918][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 13:10:44,719 [DEBUG][       Thread-255918][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 13:10:44,719 [DEBUG][       Thread-255918][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 13:10:44,719 [DEBUG][       Thread-255918][   transport.py][1871] : Compression: none
2025-06-13 13:10:44,719 [DEBUG][       Thread-255918][   transport.py][1871] : === End of kex handshake ===
2025-06-13 13:10:44,786 [DEBUG][       Thread-255918][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 13:10:44,787 [DEBUG][       Thread-255918][   transport.py][1871] : Switch to new keys ...
2025-06-13 13:10:44,788 [DEBUG][       Thread-255918][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 13:10:44,788 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 13:10:44,789 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 13:10:44,842 [DEBUG][       Thread-255918][   transport.py][1871] : userauth is OK
2025-06-13 13:10:44,843 [DEBUG][       Thread-255918][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 13:10:44,843 [DEBUG][       Thread-255918][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 13:10:44,843 [DEBUG][       Thread-255918][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 13:10:44,843 [DEBUG][       Thread-255918][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 13:10:44,862 [ INFO][       Thread-255918][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 13:10:44,863 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 13:10:44,863 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 13:10:45,920 [DEBUG][       Thread-255918][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 13:10:45,920 [DEBUG][       Thread-255918][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 13:10:45,968 [DEBUG][       Thread-255918][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 13:10:45,968 [DEBUG][       Thread-255918][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 13:10:45,977 [DEBUG][       Thread-255918][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 13:10:45,986 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 13:10:45,986 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 13:10:45,995 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 13:10:46,004 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 13:10:46,005 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 13:10:46,005 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 13:10:46,013 [DEBUG][       Thread-255918][   transport.py][1871] : EOF in transport thread
2025-06-13 13:10:47,765 [DEBUG][Thread-255920 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:10:49,927 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:10:49,928 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:10:56,012 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 13:10:56,012 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 13:10:56,012 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 13:10:56,014 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 13:10:56,512 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 13, 10, 50), 14.2, 37.4, 0.0, 15.19, 13.17, 0, 0, 0, 2, 0, 0),)
2025-06-13 13:10:56,512 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 13:10:50
2025-06-13 13:10:56,594 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 13:10:56,598 [DEBUG][       Thread-255921][   transport.py][1871] : starting thread (client mode): 0x863bf490
2025-06-13 13:10:56,598 [DEBUG][       Thread-255921][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 13:10:56,618 [DEBUG][       Thread-255921][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 13:10:56,618 [ INFO][       Thread-255921][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 13:10:56,622 [DEBUG][       Thread-255921][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 13:10:56,622 [DEBUG][       Thread-255921][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 13:10:56,622 [DEBUG][       Thread-255921][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 13:10:56,622 [DEBUG][       Thread-255921][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:10:56,622 [DEBUG][       Thread-255921][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:10:56,622 [DEBUG][       Thread-255921][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:10:56,622 [DEBUG][       Thread-255921][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:10:56,622 [DEBUG][       Thread-255921][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 13:10:56,622 [DEBUG][       Thread-255921][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 13:10:56,622 [DEBUG][       Thread-255921][   transport.py][1871] : client lang: <none>
2025-06-13 13:10:56,622 [DEBUG][       Thread-255921][   transport.py][1871] : server lang: <none>
2025-06-13 13:10:56,622 [DEBUG][       Thread-255921][   transport.py][1871] : kex follows: False
2025-06-13 13:10:56,622 [DEBUG][       Thread-255921][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 13:10:56,622 [DEBUG][       Thread-255921][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 13:10:56,622 [DEBUG][       Thread-255921][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 13:10:56,622 [DEBUG][       Thread-255921][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 13:10:56,622 [DEBUG][       Thread-255921][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 13:10:56,622 [DEBUG][       Thread-255921][   transport.py][1871] : Compression: none
2025-06-13 13:10:56,622 [DEBUG][       Thread-255921][   transport.py][1871] : === End of kex handshake ===
2025-06-13 13:10:56,641 [DEBUG][       Thread-255921][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 13:10:56,642 [DEBUG][       Thread-255921][   transport.py][1871] : Switch to new keys ...
2025-06-13 13:10:56,642 [DEBUG][       Thread-255921][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 13:10:56,642 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 13:10:56,643 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 13:10:56,644 [DEBUG][       Thread-255921][   transport.py][1871] : userauth is OK
2025-06-13 13:10:56,657 [ INFO][       Thread-255921][   transport.py][1871] : Authentication (password) successful!
2025-06-13 13:10:56,657 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 13:10:56,800 [DEBUG][Thread-255923 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:10:57,363 [DEBUG][       Thread-255921][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 13:10:57,364 [DEBUG][       Thread-255921][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 13:10:57,405 [DEBUG][       Thread-255921][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 13:10:57,405 [DEBUG][       Thread-255921][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 13:10:57,407 [DEBUG][       Thread-255921][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 13:10:57,419 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 13:10:57,419 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 13:10:57,420 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 13:10:57,421 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 13:10:57,425 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 13:10:57,426 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 13:10:57,426 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 13:10:57,426 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 13:10:57,426 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.465562 -999.00  +12.90  13.26     41   +0.10 1 1 1 1 1   888    0 12.58 8.00 ----- 12.0 13.3 41.2 17.4 17.9 -29.4 16.6 -31.4 16.6 -28.8 18.1 -27.5
2025-06-13 13:10:57,426 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 13:10:57,426 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 13:10:57,426 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.465562
2025-06-13 13:10:57,426 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 13:10:57,426 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 13:10:57,426 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 13:10:57,426 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 13:10:57,426 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 13:10:57,426 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T13:10:50', tmtdew=14.2, humidity=37.4, cloud=0.0, wind=15.19, temperature=13.17, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T11:10:24.557', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 13:10:57,427 [DEBUG][       Thread-255921][   transport.py][1871] : EOF in transport thread
2025-06-13 13:10:57,498 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 13:10:57,508 [DEBUG][       Thread-255925][   transport.py][1871] : starting thread (client mode): 0x868c85e0
2025-06-13 13:10:57,508 [DEBUG][       Thread-255925][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 13:10:57,523 [DEBUG][       Thread-255925][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 13:10:57,523 [ INFO][       Thread-255925][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 13:10:57,530 [DEBUG][       Thread-255925][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 13:10:57,531 [DEBUG][       Thread-255925][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 13:10:57,531 [DEBUG][       Thread-255925][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 13:10:57,531 [DEBUG][       Thread-255925][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:10:57,531 [DEBUG][       Thread-255925][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:10:57,531 [DEBUG][       Thread-255925][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:10:57,531 [DEBUG][       Thread-255925][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:10:57,531 [DEBUG][       Thread-255925][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 13:10:57,531 [DEBUG][       Thread-255925][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 13:10:57,531 [DEBUG][       Thread-255925][   transport.py][1871] : client lang: <none>
2025-06-13 13:10:57,531 [DEBUG][       Thread-255925][   transport.py][1871] : server lang: <none>
2025-06-13 13:10:57,531 [DEBUG][       Thread-255925][   transport.py][1871] : kex follows: False
2025-06-13 13:10:57,531 [DEBUG][       Thread-255925][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 13:10:57,531 [DEBUG][       Thread-255925][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 13:10:57,531 [DEBUG][       Thread-255925][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 13:10:57,531 [DEBUG][       Thread-255925][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 13:10:57,531 [DEBUG][       Thread-255925][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 13:10:57,531 [DEBUG][       Thread-255925][   transport.py][1871] : Compression: none
2025-06-13 13:10:57,531 [DEBUG][       Thread-255925][   transport.py][1871] : === End of kex handshake ===
2025-06-13 13:10:57,590 [DEBUG][       Thread-255925][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 13:10:57,591 [DEBUG][       Thread-255925][   transport.py][1871] : Switch to new keys ...
2025-06-13 13:10:57,592 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 13:10:57,592 [DEBUG][       Thread-255925][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 13:10:57,593 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 13:10:57,646 [DEBUG][       Thread-255925][   transport.py][1871] : userauth is OK
2025-06-13 13:10:57,647 [DEBUG][       Thread-255925][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 13:10:57,647 [DEBUG][       Thread-255925][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 13:10:57,647 [DEBUG][       Thread-255925][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 13:10:57,647 [DEBUG][       Thread-255925][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 13:10:57,666 [ INFO][       Thread-255925][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 13:10:57,666 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 13:10:57,667 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 13:10:58,699 [DEBUG][       Thread-255925][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 13:10:58,700 [DEBUG][       Thread-255925][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 13:10:58,750 [DEBUG][       Thread-255925][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 13:10:58,751 [DEBUG][       Thread-255925][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 13:10:58,761 [DEBUG][       Thread-255925][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 13:10:58,775 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 13:10:58,775 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 13:10:58,785 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 13:10:58,794 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 13:10:58,794 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 13:10:58,795 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 13:10:58,806 [DEBUG][       Thread-255925][   transport.py][1871] : EOF in transport thread
2025-06-13 13:11:05,823 [DEBUG][Thread-255927 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:11:08,805 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 13:11:08,806 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 13:11:08,806 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 13:11:08,809 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 13:11:09,277 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 13, 10, 50), 14.2, 37.4, 0.0, 15.19, 13.17, 0, 0, 0, 2, 0, 0),)
2025-06-13 13:11:09,277 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 13:10:50
2025-06-13 13:11:09,359 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 13:11:09,363 [DEBUG][       Thread-255928][   transport.py][1871] : starting thread (client mode): 0x86393ca0
2025-06-13 13:11:09,364 [DEBUG][       Thread-255928][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 13:11:09,384 [DEBUG][       Thread-255928][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 13:11:09,384 [ INFO][       Thread-255928][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 13:11:09,386 [DEBUG][       Thread-255928][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 13:11:09,386 [DEBUG][       Thread-255928][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 13:11:09,386 [DEBUG][       Thread-255928][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 13:11:09,386 [DEBUG][       Thread-255928][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:11:09,386 [DEBUG][       Thread-255928][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:11:09,386 [DEBUG][       Thread-255928][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:11:09,386 [DEBUG][       Thread-255928][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:11:09,386 [DEBUG][       Thread-255928][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 13:11:09,386 [DEBUG][       Thread-255928][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 13:11:09,386 [DEBUG][       Thread-255928][   transport.py][1871] : client lang: <none>
2025-06-13 13:11:09,386 [DEBUG][       Thread-255928][   transport.py][1871] : server lang: <none>
2025-06-13 13:11:09,386 [DEBUG][       Thread-255928][   transport.py][1871] : kex follows: False
2025-06-13 13:11:09,386 [DEBUG][       Thread-255928][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 13:11:09,386 [DEBUG][       Thread-255928][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 13:11:09,386 [DEBUG][       Thread-255928][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 13:11:09,386 [DEBUG][       Thread-255928][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 13:11:09,386 [DEBUG][       Thread-255928][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 13:11:09,386 [DEBUG][       Thread-255928][   transport.py][1871] : Compression: none
2025-06-13 13:11:09,386 [DEBUG][       Thread-255928][   transport.py][1871] : === End of kex handshake ===
2025-06-13 13:11:09,399 [DEBUG][       Thread-255928][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 13:11:09,399 [DEBUG][       Thread-255928][   transport.py][1871] : Switch to new keys ...
2025-06-13 13:11:09,400 [DEBUG][       Thread-255928][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 13:11:09,400 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 13:11:09,400 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 13:11:09,402 [DEBUG][       Thread-255928][   transport.py][1871] : userauth is OK
2025-06-13 13:11:09,426 [ INFO][       Thread-255928][   transport.py][1871] : Authentication (password) successful!
2025-06-13 13:11:09,427 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 13:11:10,060 [DEBUG][       Thread-255928][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 13:11:10,060 [DEBUG][       Thread-255928][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 13:11:10,101 [DEBUG][       Thread-255928][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 13:11:10,101 [DEBUG][       Thread-255928][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 13:11:10,104 [DEBUG][       Thread-255928][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 13:11:10,115 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 13:11:10,116 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 13:11:10,118 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 13:11:10,120 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 13:11:10,124 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 13:11:10,126 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 13:11:10,127 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 13:11:10,127 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 13:11:10,127 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.465910 -999.00  +12.90  17.75     41   +0.20 1 1 1 1 1   888    0 12.84 9.72 ----- 13.0 17.8 45.8 22.1 17.9 -29.3 16.6 -30.8 16.6 -29.7 18.0 -27.6
2025-06-13 13:11:10,128 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 13:11:10,128 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 13:11:10,128 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.465910
2025-06-13 13:11:10,128 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 13:11:10,129 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 13:11:10,129 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 13:11:10,129 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 13:11:10,129 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 13:11:10,129 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T13:10:50', tmtdew=14.2, humidity=37.4, cloud=0.0, wind=15.19, temperature=13.17, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T11:10:54.624', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 13:11:10,130 [DEBUG][       Thread-255928][   transport.py][1871] : EOF in transport thread
2025-06-13 13:11:10,212 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 13:11:10,224 [DEBUG][       Thread-255931][   transport.py][1871] : starting thread (client mode): 0x863a7670
2025-06-13 13:11:10,224 [DEBUG][       Thread-255931][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 13:11:10,239 [DEBUG][       Thread-255931][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 13:11:10,239 [ INFO][       Thread-255931][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 13:11:10,247 [DEBUG][       Thread-255931][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 13:11:10,247 [DEBUG][       Thread-255931][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 13:11:10,247 [DEBUG][       Thread-255931][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 13:11:10,247 [DEBUG][       Thread-255931][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:11:10,247 [DEBUG][       Thread-255931][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:11:10,247 [DEBUG][       Thread-255931][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:11:10,247 [DEBUG][       Thread-255931][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:11:10,247 [DEBUG][       Thread-255931][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 13:11:10,247 [DEBUG][       Thread-255931][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 13:11:10,247 [DEBUG][       Thread-255931][   transport.py][1871] : client lang: <none>
2025-06-13 13:11:10,247 [DEBUG][       Thread-255931][   transport.py][1871] : server lang: <none>
2025-06-13 13:11:10,247 [DEBUG][       Thread-255931][   transport.py][1871] : kex follows: False
2025-06-13 13:11:10,248 [DEBUG][       Thread-255931][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 13:11:10,248 [DEBUG][       Thread-255931][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 13:11:10,248 [DEBUG][       Thread-255931][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 13:11:10,248 [DEBUG][       Thread-255931][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 13:11:10,248 [DEBUG][       Thread-255931][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 13:11:10,248 [DEBUG][       Thread-255931][   transport.py][1871] : Compression: none
2025-06-13 13:11:10,248 [DEBUG][       Thread-255931][   transport.py][1871] : === End of kex handshake ===
2025-06-13 13:11:10,306 [DEBUG][       Thread-255931][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 13:11:10,307 [DEBUG][       Thread-255931][   transport.py][1871] : Switch to new keys ...
2025-06-13 13:11:10,308 [DEBUG][       Thread-255931][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 13:11:10,308 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 13:11:10,309 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 13:11:10,367 [DEBUG][       Thread-255931][   transport.py][1871] : userauth is OK
2025-06-13 13:11:10,367 [DEBUG][       Thread-255931][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 13:11:10,367 [DEBUG][       Thread-255931][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 13:11:10,367 [DEBUG][       Thread-255931][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 13:11:10,367 [DEBUG][       Thread-255931][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 13:11:10,390 [ INFO][       Thread-255931][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 13:11:10,390 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 13:11:10,391 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 13:11:11,414 [DEBUG][       Thread-255931][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 13:11:11,414 [DEBUG][       Thread-255931][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 13:11:11,469 [DEBUG][       Thread-255931][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 13:11:11,470 [DEBUG][       Thread-255931][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 13:11:11,480 [DEBUG][       Thread-255931][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 13:11:11,490 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 13:11:11,490 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 13:11:11,499 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 13:11:11,508 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 13:11:11,509 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 13:11:11,509 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 13:11:11,517 [DEBUG][       Thread-255931][   transport.py][1871] : EOF in transport thread
2025-06-13 13:11:14,322 [DEBUG][Thread-255933 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:11:14,860 [DEBUG][Thread-255934 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:11:15,204 [DEBUG][Thread-255935 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:11:16,248 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:11:16,249 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:11:21,520 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 13:11:21,520 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 13:11:21,520 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 13:11:21,523 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 13:11:21,993 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 13, 10, 50), 14.2, 37.4, 0.0, 15.19, 13.17, 0, 0, 0, 2, 0, 0),)
2025-06-13 13:11:21,993 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 13:10:50
2025-06-13 13:11:22,075 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 13:11:22,079 [DEBUG][       Thread-255936][   transport.py][1871] : starting thread (client mode): 0x86350490
2025-06-13 13:11:22,079 [DEBUG][       Thread-255936][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 13:11:22,094 [DEBUG][       Thread-255936][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 13:11:22,094 [ INFO][       Thread-255936][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 13:11:22,098 [DEBUG][       Thread-255936][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 13:11:22,098 [DEBUG][       Thread-255936][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 13:11:22,098 [DEBUG][       Thread-255936][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 13:11:22,098 [DEBUG][       Thread-255936][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:11:22,098 [DEBUG][       Thread-255936][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:11:22,098 [DEBUG][       Thread-255936][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:11:22,098 [DEBUG][       Thread-255936][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:11:22,098 [DEBUG][       Thread-255936][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 13:11:22,098 [DEBUG][       Thread-255936][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 13:11:22,098 [DEBUG][       Thread-255936][   transport.py][1871] : client lang: <none>
2025-06-13 13:11:22,098 [DEBUG][       Thread-255936][   transport.py][1871] : server lang: <none>
2025-06-13 13:11:22,098 [DEBUG][       Thread-255936][   transport.py][1871] : kex follows: False
2025-06-13 13:11:22,098 [DEBUG][       Thread-255936][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 13:11:22,098 [DEBUG][       Thread-255936][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 13:11:22,098 [DEBUG][       Thread-255936][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 13:11:22,098 [DEBUG][       Thread-255936][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 13:11:22,098 [DEBUG][       Thread-255936][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 13:11:22,098 [DEBUG][       Thread-255936][   transport.py][1871] : Compression: none
2025-06-13 13:11:22,098 [DEBUG][       Thread-255936][   transport.py][1871] : === End of kex handshake ===
2025-06-13 13:11:22,113 [DEBUG][       Thread-255936][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 13:11:22,114 [DEBUG][       Thread-255936][   transport.py][1871] : Switch to new keys ...
2025-06-13 13:11:22,115 [DEBUG][       Thread-255936][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 13:11:22,115 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 13:11:22,115 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 13:11:22,116 [DEBUG][       Thread-255936][   transport.py][1871] : userauth is OK
2025-06-13 13:11:22,130 [ INFO][       Thread-255936][   transport.py][1871] : Authentication (password) successful!
2025-06-13 13:11:22,130 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 13:11:22,756 [DEBUG][       Thread-255936][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 13:11:22,756 [DEBUG][       Thread-255936][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 13:11:22,801 [DEBUG][       Thread-255936][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 13:11:22,801 [DEBUG][       Thread-255936][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 13:11:22,804 [DEBUG][       Thread-255936][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 13:11:22,811 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 13:11:22,811 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 13:11:22,813 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 13:11:22,815 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 13:11:22,821 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 13:11:22,823 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 13:11:22,823 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 13:11:22,824 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 13:11:22,824 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.465910 -999.00  +12.90  17.75     41   +0.20 1 1 1 1 1   888    0 12.84 9.72 ----- 13.0 17.8 45.8 22.1 17.9 -29.3 16.6 -30.8 16.6 -29.7 18.0 -27.6
2025-06-13 13:11:22,824 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 13:11:22,824 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 13:11:22,824 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.465910
2025-06-13 13:11:22,824 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 13:11:22,825 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 13:11:22,825 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 13:11:22,825 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 13:11:22,825 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 13:11:22,825 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T13:10:50', tmtdew=14.2, humidity=37.4, cloud=0.0, wind=15.19, temperature=13.17, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T11:10:54.624', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 13:11:22,826 [DEBUG][       Thread-255936][   transport.py][1871] : EOF in transport thread
2025-06-13 13:11:22,909 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 13:11:22,919 [DEBUG][       Thread-255939][   transport.py][1871] : starting thread (client mode): 0x86893df0
2025-06-13 13:11:22,919 [DEBUG][       Thread-255939][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 13:11:22,933 [DEBUG][       Thread-255939][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 13:11:22,933 [ INFO][       Thread-255939][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 13:11:22,941 [DEBUG][       Thread-255939][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 13:11:22,941 [DEBUG][       Thread-255939][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 13:11:22,941 [DEBUG][       Thread-255939][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 13:11:22,941 [DEBUG][       Thread-255939][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:11:22,941 [DEBUG][       Thread-255939][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:11:22,941 [DEBUG][       Thread-255939][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:11:22,941 [DEBUG][       Thread-255939][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:11:22,941 [DEBUG][       Thread-255939][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 13:11:22,941 [DEBUG][       Thread-255939][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 13:11:22,941 [DEBUG][       Thread-255939][   transport.py][1871] : client lang: <none>
2025-06-13 13:11:22,941 [DEBUG][       Thread-255939][   transport.py][1871] : server lang: <none>
2025-06-13 13:11:22,942 [DEBUG][       Thread-255939][   transport.py][1871] : kex follows: False
2025-06-13 13:11:22,942 [DEBUG][       Thread-255939][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 13:11:22,942 [DEBUG][       Thread-255939][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 13:11:22,942 [DEBUG][       Thread-255939][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 13:11:22,942 [DEBUG][       Thread-255939][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 13:11:22,942 [DEBUG][       Thread-255939][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 13:11:22,942 [DEBUG][       Thread-255939][   transport.py][1871] : Compression: none
2025-06-13 13:11:22,942 [DEBUG][       Thread-255939][   transport.py][1871] : === End of kex handshake ===
2025-06-13 13:11:22,998 [DEBUG][       Thread-255939][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 13:11:22,998 [DEBUG][       Thread-255939][   transport.py][1871] : Switch to new keys ...
2025-06-13 13:11:22,999 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 13:11:23,000 [DEBUG][       Thread-255939][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 13:11:23,000 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 13:11:23,062 [DEBUG][       Thread-255939][   transport.py][1871] : userauth is OK
2025-06-13 13:11:23,062 [DEBUG][       Thread-255939][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 13:11:23,062 [DEBUG][       Thread-255939][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 13:11:23,062 [DEBUG][       Thread-255939][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 13:11:23,062 [DEBUG][       Thread-255939][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 13:11:23,079 [ INFO][       Thread-255939][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 13:11:23,079 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 13:11:23,079 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 13:11:23,877 [DEBUG][Thread-255941 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:11:24,122 [DEBUG][       Thread-255939][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 13:11:24,122 [DEBUG][       Thread-255939][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 13:11:24,172 [DEBUG][       Thread-255939][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 13:11:24,172 [DEBUG][       Thread-255939][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 13:11:24,181 [DEBUG][       Thread-255939][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 13:11:24,189 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 13:11:24,189 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 13:11:24,197 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 13:11:24,205 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 13:11:24,205 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 13:11:24,205 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 13:11:24,213 [DEBUG][       Thread-255939][   transport.py][1871] : EOF in transport thread
2025-06-13 13:11:32,900 [DEBUG][Thread-255942 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:11:34,215 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 13:11:34,215 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 13:11:34,215 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 13:11:34,218 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 13:11:34,681 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 13, 11, 22), 14.41, 36.87, 0.0, 15.62, 13.14, 0, 0, 0, 2, 0, 0),)
2025-06-13 13:11:34,681 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 13:11:22
2025-06-13 13:11:34,762 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 13:11:34,767 [DEBUG][       Thread-255943][   transport.py][1871] : starting thread (client mode): 0x867fefb0
2025-06-13 13:11:34,767 [DEBUG][       Thread-255943][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 13:11:34,787 [DEBUG][       Thread-255943][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 13:11:34,787 [ INFO][       Thread-255943][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 13:11:34,790 [DEBUG][       Thread-255943][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 13:11:34,790 [DEBUG][       Thread-255943][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 13:11:34,790 [DEBUG][       Thread-255943][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 13:11:34,790 [DEBUG][       Thread-255943][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:11:34,790 [DEBUG][       Thread-255943][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:11:34,790 [DEBUG][       Thread-255943][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:11:34,790 [DEBUG][       Thread-255943][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:11:34,790 [DEBUG][       Thread-255943][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 13:11:34,790 [DEBUG][       Thread-255943][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 13:11:34,790 [DEBUG][       Thread-255943][   transport.py][1871] : client lang: <none>
2025-06-13 13:11:34,790 [DEBUG][       Thread-255943][   transport.py][1871] : server lang: <none>
2025-06-13 13:11:34,790 [DEBUG][       Thread-255943][   transport.py][1871] : kex follows: False
2025-06-13 13:11:34,790 [DEBUG][       Thread-255943][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 13:11:34,790 [DEBUG][       Thread-255943][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 13:11:34,790 [DEBUG][       Thread-255943][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 13:11:34,790 [DEBUG][       Thread-255943][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 13:11:34,790 [DEBUG][       Thread-255943][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 13:11:34,790 [DEBUG][       Thread-255943][   transport.py][1871] : Compression: none
2025-06-13 13:11:34,790 [DEBUG][       Thread-255943][   transport.py][1871] : === End of kex handshake ===
2025-06-13 13:11:34,806 [DEBUG][       Thread-255943][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 13:11:34,806 [DEBUG][       Thread-255943][   transport.py][1871] : Switch to new keys ...
2025-06-13 13:11:34,806 [DEBUG][       Thread-255943][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 13:11:34,806 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 13:11:34,806 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 13:11:34,807 [DEBUG][       Thread-255943][   transport.py][1871] : userauth is OK
2025-06-13 13:11:34,819 [ INFO][       Thread-255943][   transport.py][1871] : Authentication (password) successful!
2025-06-13 13:11:34,819 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 13:11:35,461 [DEBUG][       Thread-255943][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 13:11:35,461 [DEBUG][       Thread-255943][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 13:11:35,505 [DEBUG][       Thread-255943][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 13:11:35,505 [DEBUG][       Thread-255943][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 13:11:35,508 [DEBUG][       Thread-255943][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 13:11:35,521 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 13:11:35,522 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 13:11:35,523 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 13:11:35,525 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 13:11:35,531 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 13:11:35,533 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 13:11:35,533 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 13:11:35,534 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 13:11:35,534 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.465910 -999.00  +12.90  17.75     41   +0.20 1 1 1 1 1   888    0 12.84 9.72 ----- 13.0 17.8 45.8 22.1 17.9 -29.3 16.6 -30.8 16.6 -29.7 18.0 -27.6
2025-06-13 13:11:35,534 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 13:11:35,534 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 13:11:35,534 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.465910
2025-06-13 13:11:35,535 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 13:11:35,535 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 13:11:35,535 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 13:11:35,535 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 13:11:35,535 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 13:11:35,536 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T13:11:22', tmtdew=14.41, humidity=36.87, cloud=0.0, wind=15.62, temperature=13.14, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T11:10:54.624', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 13:11:35,537 [DEBUG][       Thread-255943][   transport.py][1871] : EOF in transport thread
2025-06-13 13:11:35,619 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 13:11:35,630 [DEBUG][       Thread-255946][   transport.py][1871] : starting thread (client mode): 0x84204b20
2025-06-13 13:11:35,630 [DEBUG][       Thread-255946][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 13:11:35,653 [DEBUG][       Thread-255946][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 13:11:35,653 [ INFO][       Thread-255946][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 13:11:35,661 [DEBUG][       Thread-255946][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 13:11:35,661 [DEBUG][       Thread-255946][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 13:11:35,661 [DEBUG][       Thread-255946][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 13:11:35,661 [DEBUG][       Thread-255946][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:11:35,661 [DEBUG][       Thread-255946][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:11:35,661 [DEBUG][       Thread-255946][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:11:35,661 [DEBUG][       Thread-255946][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:11:35,661 [DEBUG][       Thread-255946][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 13:11:35,661 [DEBUG][       Thread-255946][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 13:11:35,661 [DEBUG][       Thread-255946][   transport.py][1871] : client lang: <none>
2025-06-13 13:11:35,661 [DEBUG][       Thread-255946][   transport.py][1871] : server lang: <none>
2025-06-13 13:11:35,661 [DEBUG][       Thread-255946][   transport.py][1871] : kex follows: False
2025-06-13 13:11:35,662 [DEBUG][       Thread-255946][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 13:11:35,662 [DEBUG][       Thread-255946][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 13:11:35,662 [DEBUG][       Thread-255946][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 13:11:35,662 [DEBUG][       Thread-255946][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 13:11:35,662 [DEBUG][       Thread-255946][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 13:11:35,662 [DEBUG][       Thread-255946][   transport.py][1871] : Compression: none
2025-06-13 13:11:35,662 [DEBUG][       Thread-255946][   transport.py][1871] : === End of kex handshake ===
2025-06-13 13:11:35,718 [DEBUG][       Thread-255946][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 13:11:35,719 [DEBUG][       Thread-255946][   transport.py][1871] : Switch to new keys ...
2025-06-13 13:11:35,719 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 13:11:35,720 [DEBUG][       Thread-255946][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 13:11:35,721 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 13:11:35,774 [DEBUG][       Thread-255946][   transport.py][1871] : userauth is OK
2025-06-13 13:11:35,775 [DEBUG][       Thread-255946][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 13:11:35,775 [DEBUG][       Thread-255946][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 13:11:35,775 [DEBUG][       Thread-255946][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 13:11:35,775 [DEBUG][       Thread-255946][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 13:11:35,794 [ INFO][       Thread-255946][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 13:11:35,794 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 13:11:35,795 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 13:11:36,784 [DEBUG][       Thread-255946][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 13:11:36,785 [DEBUG][       Thread-255946][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 13:11:36,832 [DEBUG][       Thread-255946][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 13:11:36,832 [DEBUG][       Thread-255946][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 13:11:36,842 [DEBUG][       Thread-255946][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 13:11:36,855 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 13:11:36,855 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 13:11:36,864 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 13:11:36,874 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 13:11:36,874 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 13:11:36,875 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 13:11:36,883 [DEBUG][       Thread-255946][   transport.py][1871] : EOF in transport thread
2025-06-13 13:11:41,923 [DEBUG][Thread-255948 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:11:46,884 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 13:11:46,884 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 13:11:46,884 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 13:11:46,885 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 13:11:47,349 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 13, 11, 22), 14.41, 36.87, 0.0, 15.62, 13.14, 0, 0, 0, 2, 0, 0),)
2025-06-13 13:11:47,349 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 13:11:22
2025-06-13 13:11:47,431 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 13:11:47,435 [DEBUG][       Thread-255949][   transport.py][1871] : starting thread (client mode): 0x84206a70
2025-06-13 13:11:47,435 [DEBUG][       Thread-255949][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 13:11:47,456 [DEBUG][       Thread-255949][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 13:11:47,456 [ INFO][       Thread-255949][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 13:11:47,460 [DEBUG][       Thread-255949][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 13:11:47,460 [DEBUG][       Thread-255949][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 13:11:47,460 [DEBUG][       Thread-255949][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 13:11:47,460 [DEBUG][       Thread-255949][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:11:47,460 [DEBUG][       Thread-255949][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:11:47,460 [DEBUG][       Thread-255949][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:11:47,460 [DEBUG][       Thread-255949][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:11:47,460 [DEBUG][       Thread-255949][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 13:11:47,460 [DEBUG][       Thread-255949][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 13:11:47,460 [DEBUG][       Thread-255949][   transport.py][1871] : client lang: <none>
2025-06-13 13:11:47,460 [DEBUG][       Thread-255949][   transport.py][1871] : server lang: <none>
2025-06-13 13:11:47,460 [DEBUG][       Thread-255949][   transport.py][1871] : kex follows: False
2025-06-13 13:11:47,460 [DEBUG][       Thread-255949][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 13:11:47,460 [DEBUG][       Thread-255949][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 13:11:47,460 [DEBUG][       Thread-255949][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 13:11:47,460 [DEBUG][       Thread-255949][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 13:11:47,460 [DEBUG][       Thread-255949][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 13:11:47,460 [DEBUG][       Thread-255949][   transport.py][1871] : Compression: none
2025-06-13 13:11:47,460 [DEBUG][       Thread-255949][   transport.py][1871] : === End of kex handshake ===
2025-06-13 13:11:47,477 [DEBUG][       Thread-255949][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 13:11:47,477 [DEBUG][       Thread-255949][   transport.py][1871] : Switch to new keys ...
2025-06-13 13:11:47,478 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 13:11:47,478 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 13:11:47,478 [DEBUG][       Thread-255949][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 13:11:47,479 [DEBUG][       Thread-255949][   transport.py][1871] : userauth is OK
2025-06-13 13:11:47,492 [ INFO][       Thread-255949][   transport.py][1871] : Authentication (password) successful!
2025-06-13 13:11:47,492 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 13:11:48,138 [DEBUG][       Thread-255949][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 13:11:48,138 [DEBUG][       Thread-255949][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 13:11:48,181 [DEBUG][       Thread-255949][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 13:11:48,181 [DEBUG][       Thread-255949][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 13:11:48,184 [DEBUG][       Thread-255949][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 13:11:48,196 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 13:11:48,196 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 13:11:48,198 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 13:11:48,200 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 13:11:48,205 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 13:11:48,207 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 13:11:48,207 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 13:11:48,208 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 13:11:48,208 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.466257 -999.00  +13.20  18.43     41   +0.40 1 1 1 1 1   888    0 12.80 10.96 ----- 23.4 18.4 30.0 22.6 17.9 -29.0 16.6 -31.4 16.7 -28.2 18.0 -28.0
2025-06-13 13:11:48,208 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 13:11:48,208 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 13:11:48,208 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.466257
2025-06-13 13:11:48,208 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 13:11:48,209 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 13:11:48,209 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 13:11:48,209 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 13:11:48,209 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 13:11:48,209 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T13:11:22', tmtdew=14.41, humidity=36.87, cloud=0.0, wind=15.62, temperature=13.14, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T11:11:24.605', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 13:11:48,210 [DEBUG][       Thread-255949][   transport.py][1871] : EOF in transport thread
2025-06-13 13:11:48,293 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 13:11:48,303 [DEBUG][       Thread-255952][   transport.py][1871] : starting thread (client mode): 0x867fe3e0
2025-06-13 13:11:48,303 [DEBUG][       Thread-255952][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 13:11:48,317 [DEBUG][       Thread-255952][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 13:11:48,317 [ INFO][       Thread-255952][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 13:11:48,325 [DEBUG][       Thread-255952][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 13:11:48,326 [DEBUG][       Thread-255952][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 13:11:48,326 [DEBUG][       Thread-255952][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 13:11:48,326 [DEBUG][       Thread-255952][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:11:48,326 [DEBUG][       Thread-255952][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:11:48,326 [DEBUG][       Thread-255952][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:11:48,326 [DEBUG][       Thread-255952][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:11:48,326 [DEBUG][       Thread-255952][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 13:11:48,326 [DEBUG][       Thread-255952][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 13:11:48,326 [DEBUG][       Thread-255952][   transport.py][1871] : client lang: <none>
2025-06-13 13:11:48,326 [DEBUG][       Thread-255952][   transport.py][1871] : server lang: <none>
2025-06-13 13:11:48,326 [DEBUG][       Thread-255952][   transport.py][1871] : kex follows: False
2025-06-13 13:11:48,326 [DEBUG][       Thread-255952][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 13:11:48,326 [DEBUG][       Thread-255952][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 13:11:48,326 [DEBUG][       Thread-255952][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 13:11:48,326 [DEBUG][       Thread-255952][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 13:11:48,326 [DEBUG][       Thread-255952][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 13:11:48,326 [DEBUG][       Thread-255952][   transport.py][1871] : Compression: none
2025-06-13 13:11:48,326 [DEBUG][       Thread-255952][   transport.py][1871] : === End of kex handshake ===
2025-06-13 13:11:48,382 [DEBUG][       Thread-255952][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 13:11:48,382 [DEBUG][       Thread-255952][   transport.py][1871] : Switch to new keys ...
2025-06-13 13:11:48,382 [DEBUG][       Thread-255952][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 13:11:48,382 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 13:11:48,382 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 13:11:48,438 [DEBUG][       Thread-255952][   transport.py][1871] : userauth is OK
2025-06-13 13:11:48,439 [DEBUG][       Thread-255952][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 13:11:48,439 [DEBUG][       Thread-255952][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 13:11:48,439 [DEBUG][       Thread-255952][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 13:11:48,439 [DEBUG][       Thread-255952][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 13:11:48,458 [ INFO][       Thread-255952][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 13:11:48,458 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 13:11:48,459 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 13:11:49,464 [DEBUG][       Thread-255952][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 13:11:49,464 [DEBUG][       Thread-255952][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 13:11:49,512 [DEBUG][       Thread-255952][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 13:11:49,512 [DEBUG][       Thread-255952][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 13:11:49,522 [DEBUG][       Thread-255952][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 13:11:49,531 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 13:11:49,531 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 13:11:49,540 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 13:11:49,549 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 13:11:49,550 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 13:11:49,550 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 13:11:49,558 [DEBUG][       Thread-255952][   transport.py][1871] : EOF in transport thread
2025-06-13 13:11:50,071 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:11:50,072 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:11:50,958 [DEBUG][Thread-255954 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:11:59,560 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 13:11:59,561 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 13:11:59,561 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 13:11:59,563 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 13:11:59,981 [DEBUG][Thread-255955 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:12:00,030 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 13, 11, 54), 14.39, 36.9, 0.0, 16.64, 13.14, 0, 0, 0, 2, 0, 0),)
2025-06-13 13:12:00,030 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 13:11:54
2025-06-13 13:12:00,112 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 13:12:00,116 [DEBUG][       Thread-255956][   transport.py][1871] : starting thread (client mode): 0x84204970
2025-06-13 13:12:00,116 [DEBUG][       Thread-255956][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 13:12:00,137 [DEBUG][       Thread-255956][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 13:12:00,137 [ INFO][       Thread-255956][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 13:12:00,141 [DEBUG][       Thread-255956][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 13:12:00,141 [DEBUG][       Thread-255956][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 13:12:00,141 [DEBUG][       Thread-255956][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 13:12:00,141 [DEBUG][       Thread-255956][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:12:00,141 [DEBUG][       Thread-255956][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:12:00,141 [DEBUG][       Thread-255956][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:12:00,141 [DEBUG][       Thread-255956][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:12:00,141 [DEBUG][       Thread-255956][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 13:12:00,141 [DEBUG][       Thread-255956][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 13:12:00,141 [DEBUG][       Thread-255956][   transport.py][1871] : client lang: <none>
2025-06-13 13:12:00,141 [DEBUG][       Thread-255956][   transport.py][1871] : server lang: <none>
2025-06-13 13:12:00,141 [DEBUG][       Thread-255956][   transport.py][1871] : kex follows: False
2025-06-13 13:12:00,141 [DEBUG][       Thread-255956][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 13:12:00,141 [DEBUG][       Thread-255956][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 13:12:00,141 [DEBUG][       Thread-255956][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 13:12:00,141 [DEBUG][       Thread-255956][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 13:12:00,141 [DEBUG][       Thread-255956][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 13:12:00,141 [DEBUG][       Thread-255956][   transport.py][1871] : Compression: none
2025-06-13 13:12:00,141 [DEBUG][       Thread-255956][   transport.py][1871] : === End of kex handshake ===
2025-06-13 13:12:00,160 [DEBUG][       Thread-255956][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 13:12:00,160 [DEBUG][       Thread-255956][   transport.py][1871] : Switch to new keys ...
2025-06-13 13:12:00,161 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 13:12:00,161 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 13:12:00,162 [DEBUG][       Thread-255956][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 13:12:00,162 [DEBUG][       Thread-255956][   transport.py][1871] : userauth is OK
2025-06-13 13:12:00,175 [ INFO][       Thread-255956][   transport.py][1871] : Authentication (password) successful!
2025-06-13 13:12:00,176 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 13:12:00,827 [DEBUG][       Thread-255956][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 13:12:00,828 [DEBUG][       Thread-255956][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 13:12:00,869 [DEBUG][       Thread-255956][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 13:12:00,869 [DEBUG][       Thread-255956][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 13:12:00,872 [DEBUG][       Thread-255956][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 13:12:00,885 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 13:12:00,886 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 13:12:00,888 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 13:12:00,890 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 13:12:00,896 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 13:12:00,898 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 13:12:00,898 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 13:12:00,899 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 13:12:00,899 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.466257 -999.00  +13.20  18.43     41   +0.40 1 1 1 1 1   888    0 12.80 10.96 ----- 23.4 18.4 30.0 22.6 17.9 -29.0 16.6 -31.4 16.7 -28.2 18.0 -28.0
2025-06-13 13:12:00,899 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 13:12:00,899 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 13:12:00,899 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.466257
2025-06-13 13:12:00,899 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 13:12:00,900 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 13:12:00,900 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 13:12:00,901 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 13:12:00,901 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 13:12:00,901 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T13:11:54', tmtdew=14.39, humidity=36.9, cloud=0.0, wind=16.64, temperature=13.14, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T11:11:24.605', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 13:12:00,902 [DEBUG][       Thread-255956][   transport.py][1871] : EOF in transport thread
2025-06-13 13:12:00,987 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 13:12:00,999 [DEBUG][       Thread-255959][   transport.py][1871] : starting thread (client mode): 0x867b6c80
2025-06-13 13:12:00,999 [DEBUG][       Thread-255959][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 13:12:01,014 [DEBUG][       Thread-255959][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 13:12:01,014 [ INFO][       Thread-255959][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 13:12:01,022 [DEBUG][       Thread-255959][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 13:12:01,022 [DEBUG][       Thread-255959][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 13:12:01,022 [DEBUG][       Thread-255959][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 13:12:01,022 [DEBUG][       Thread-255959][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:12:01,022 [DEBUG][       Thread-255959][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:12:01,022 [DEBUG][       Thread-255959][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:12:01,022 [DEBUG][       Thread-255959][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:12:01,022 [DEBUG][       Thread-255959][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 13:12:01,022 [DEBUG][       Thread-255959][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 13:12:01,022 [DEBUG][       Thread-255959][   transport.py][1871] : client lang: <none>
2025-06-13 13:12:01,022 [DEBUG][       Thread-255959][   transport.py][1871] : server lang: <none>
2025-06-13 13:12:01,022 [DEBUG][       Thread-255959][   transport.py][1871] : kex follows: False
2025-06-13 13:12:01,022 [DEBUG][       Thread-255959][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 13:12:01,022 [DEBUG][       Thread-255959][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 13:12:01,023 [DEBUG][       Thread-255959][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 13:12:01,023 [DEBUG][       Thread-255959][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 13:12:01,023 [DEBUG][       Thread-255959][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 13:12:01,023 [DEBUG][       Thread-255959][   transport.py][1871] : Compression: none
2025-06-13 13:12:01,023 [DEBUG][       Thread-255959][   transport.py][1871] : === End of kex handshake ===
2025-06-13 13:12:01,078 [DEBUG][       Thread-255959][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 13:12:01,078 [DEBUG][       Thread-255959][   transport.py][1871] : Switch to new keys ...
2025-06-13 13:12:01,079 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 13:12:01,079 [DEBUG][       Thread-255959][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 13:12:01,080 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 13:12:01,138 [DEBUG][       Thread-255959][   transport.py][1871] : userauth is OK
2025-06-13 13:12:01,138 [DEBUG][       Thread-255959][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 13:12:01,139 [DEBUG][       Thread-255959][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 13:12:01,139 [DEBUG][       Thread-255959][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 13:12:01,139 [DEBUG][       Thread-255959][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 13:12:01,157 [ INFO][       Thread-255959][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 13:12:01,157 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 13:12:01,157 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 13:12:02,187 [DEBUG][       Thread-255959][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 13:12:02,188 [DEBUG][       Thread-255959][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 13:12:02,236 [DEBUG][       Thread-255959][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 13:12:02,236 [DEBUG][       Thread-255959][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 13:12:02,245 [DEBUG][       Thread-255959][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 13:12:02,254 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 13:12:02,254 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 13:12:02,262 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 13:12:02,272 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 13:12:02,272 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 13:12:02,272 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 13:12:02,280 [DEBUG][       Thread-255959][   transport.py][1871] : EOF in transport thread
2025-06-13 13:12:09,005 [DEBUG][Thread-255961 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:12:12,280 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 13:12:12,280 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 13:12:12,280 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 13:12:12,281 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 13:12:12,737 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 13, 11, 54), 14.39, 36.9, 0.0, 16.64, 13.14, 0, 0, 0, 2, 0, 0),)
2025-06-13 13:12:12,737 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 13:11:54
2025-06-13 13:12:12,819 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 13:12:12,826 [DEBUG][       Thread-255962][   transport.py][1871] : starting thread (client mode): 0x84204880
2025-06-13 13:12:12,826 [DEBUG][       Thread-255962][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 13:12:12,846 [DEBUG][       Thread-255962][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 13:12:12,846 [ INFO][       Thread-255962][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 13:12:12,849 [DEBUG][       Thread-255962][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 13:12:12,849 [DEBUG][       Thread-255962][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 13:12:12,849 [DEBUG][       Thread-255962][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 13:12:12,849 [DEBUG][       Thread-255962][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:12:12,850 [DEBUG][       Thread-255962][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:12:12,850 [DEBUG][       Thread-255962][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:12:12,850 [DEBUG][       Thread-255962][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:12:12,850 [DEBUG][       Thread-255962][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 13:12:12,850 [DEBUG][       Thread-255962][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 13:12:12,850 [DEBUG][       Thread-255962][   transport.py][1871] : client lang: <none>
2025-06-13 13:12:12,850 [DEBUG][       Thread-255962][   transport.py][1871] : server lang: <none>
2025-06-13 13:12:12,850 [DEBUG][       Thread-255962][   transport.py][1871] : kex follows: False
2025-06-13 13:12:12,850 [DEBUG][       Thread-255962][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 13:12:12,850 [DEBUG][       Thread-255962][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 13:12:12,850 [DEBUG][       Thread-255962][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 13:12:12,850 [DEBUG][       Thread-255962][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 13:12:12,850 [DEBUG][       Thread-255962][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 13:12:12,850 [DEBUG][       Thread-255962][   transport.py][1871] : Compression: none
2025-06-13 13:12:12,850 [DEBUG][       Thread-255962][   transport.py][1871] : === End of kex handshake ===
2025-06-13 13:12:12,867 [DEBUG][       Thread-255962][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 13:12:12,867 [DEBUG][       Thread-255962][   transport.py][1871] : Switch to new keys ...
2025-06-13 13:12:12,868 [DEBUG][       Thread-255962][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 13:12:12,868 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 13:12:12,868 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 13:12:12,869 [DEBUG][       Thread-255962][   transport.py][1871] : userauth is OK
2025-06-13 13:12:12,882 [ INFO][       Thread-255962][   transport.py][1871] : Authentication (password) successful!
2025-06-13 13:12:12,883 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 13:12:13,509 [DEBUG][       Thread-255962][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 13:12:13,509 [DEBUG][       Thread-255962][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 13:12:13,553 [DEBUG][       Thread-255962][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 13:12:13,553 [DEBUG][       Thread-255962][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 13:12:13,557 [DEBUG][       Thread-255962][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 13:12:13,567 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 13:12:13,568 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 13:12:13,570 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 13:12:13,572 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 13:12:13,578 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 13:12:13,580 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 13:12:13,580 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 13:12:13,581 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 13:12:13,581 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.466604 -999.00  +13.10  13.78     41   +0.20 1 1 1 1 1   888    0 12.87 11.56 ----- 16.8 13.8 39.2 26.3 17.9 -29.5 16.6 -30.8 16.6 -29.2 18.0 -27.6
2025-06-13 13:12:13,581 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 13:12:13,581 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 13:12:13,581 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.466604
2025-06-13 13:12:13,581 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 13:12:13,582 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 13:12:13,582 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 13:12:13,582 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 13:12:13,582 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 13:12:13,582 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T13:11:54', tmtdew=14.39, humidity=36.9, cloud=0.0, wind=16.64, temperature=13.14, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T11:11:54.586', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 13:12:13,583 [DEBUG][       Thread-255962][   transport.py][1871] : EOF in transport thread
2025-06-13 13:12:13,665 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 13:12:14,374 [DEBUG][Thread-255965 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:12:16,260 [DEBUG][Thread-255966 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:12:17,341 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:12:17,341 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:12:18,040 [DEBUG][Thread-255967 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:12:27,060 [DEBUG][Thread-255968 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:12:36,076 [DEBUG][Thread-255969 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:12:45,098 [DEBUG][Thread-255970 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:12:50,208 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:12:50,209 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:12:54,122 [DEBUG][Thread-255971 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:13:03,145 [DEBUG][Thread-255972 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:13:12,167 [DEBUG][Thread-255973 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:13:14,416 [DEBUG][Thread-255974 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:13:17,355 [DEBUG][Thread-255975 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:13:18,438 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:13:18,439 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:13:21,186 [DEBUG][Thread-255976 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:13:30,206 [DEBUG][Thread-255977 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:13:39,227 [DEBUG][Thread-255978 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:13:48,247 [DEBUG][Thread-255979 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:13:50,351 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:13:50,352 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:13:57,265 [DEBUG][Thread-255980 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:14:06,285 [DEBUG][Thread-255981 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:14:14,475 [DEBUG][Thread-255982 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:14:15,308 [DEBUG][Thread-255983 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:14:18,468 [DEBUG][Thread-255984 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:14:19,548 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:14:19,549 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:14:22,612 [WARNING][ poll_weather_worker][      driver.py][ 286] : Unable to open ssh connection for writing weather state to io.saao.ac.za: [Errno 110] Connection timed out
2025-06-13 13:14:24,330 [DEBUG][Thread-255985 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:14:32,631 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 13:14:32,632 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 13:14:32,632 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 13:14:32,635 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 13:14:33,114 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 13, 14, 1), 14.39, 36.91, 0.0, 10.41, 13.21, 0, 0, 0, 2, 0, 0),)
2025-06-13 13:14:33,114 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 13:14:01
2025-06-13 13:14:33,192 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 13:14:33,198 [DEBUG][       Thread-255986][   transport.py][1871] : starting thread (client mode): 0x8636a350
2025-06-13 13:14:33,198 [DEBUG][       Thread-255986][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 13:14:33,221 [DEBUG][       Thread-255986][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 13:14:33,221 [ INFO][       Thread-255986][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 13:14:33,224 [DEBUG][       Thread-255986][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 13:14:33,225 [DEBUG][       Thread-255986][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 13:14:33,225 [DEBUG][       Thread-255986][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 13:14:33,225 [DEBUG][       Thread-255986][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:14:33,225 [DEBUG][       Thread-255986][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:14:33,225 [DEBUG][       Thread-255986][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:14:33,225 [DEBUG][       Thread-255986][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:14:33,225 [DEBUG][       Thread-255986][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 13:14:33,225 [DEBUG][       Thread-255986][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 13:14:33,225 [DEBUG][       Thread-255986][   transport.py][1871] : client lang: <none>
2025-06-13 13:14:33,225 [DEBUG][       Thread-255986][   transport.py][1871] : server lang: <none>
2025-06-13 13:14:33,225 [DEBUG][       Thread-255986][   transport.py][1871] : kex follows: False
2025-06-13 13:14:33,225 [DEBUG][       Thread-255986][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 13:14:33,225 [DEBUG][       Thread-255986][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 13:14:33,225 [DEBUG][       Thread-255986][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 13:14:33,225 [DEBUG][       Thread-255986][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 13:14:33,225 [DEBUG][       Thread-255986][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 13:14:33,225 [DEBUG][       Thread-255986][   transport.py][1871] : Compression: none
2025-06-13 13:14:33,225 [DEBUG][       Thread-255986][   transport.py][1871] : === End of kex handshake ===
2025-06-13 13:14:33,246 [DEBUG][       Thread-255986][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 13:14:33,247 [DEBUG][       Thread-255986][   transport.py][1871] : Switch to new keys ...
2025-06-13 13:14:33,248 [DEBUG][       Thread-255986][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 13:14:33,248 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 13:14:33,248 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 13:14:33,249 [DEBUG][       Thread-255986][   transport.py][1871] : userauth is OK
2025-06-13 13:14:33,273 [ INFO][       Thread-255986][   transport.py][1871] : Authentication (password) successful!
2025-06-13 13:14:33,274 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 13:14:33,348 [DEBUG][Thread-255988 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:14:33,944 [DEBUG][       Thread-255986][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 13:14:33,945 [DEBUG][       Thread-255986][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 13:14:33,988 [DEBUG][       Thread-255986][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 13:14:33,988 [DEBUG][       Thread-255986][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 13:14:33,991 [DEBUG][       Thread-255986][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 13:14:34,002 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 13:14:34,002 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 13:14:34,003 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 13:14:34,004 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 13:14:34,007 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 13:14:34,008 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 13:14:34,008 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 13:14:34,008 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 13:14:34,008 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.467993 -999.00  +13.20  10.67     42   +0.60 1 1 1 1 1   888    0 13.16 16.32 ----- 11.2 10.7 346.9 15.5 18.0 -29.4 16.8 -30.8 16.8 -28.5 18.1 -27.4
2025-06-13 13:14:34,008 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 13:14:34,008 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 13:14:34,008 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.467993
2025-06-13 13:14:34,008 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 13:14:34,008 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 13:14:34,008 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 13:14:34,008 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 13:14:34,008 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 13:14:34,008 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T13:14:01', tmtdew=14.39, humidity=36.91, cloud=0.0, wind=10.41, temperature=13.21, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T11:13:54.595', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 13:14:34,008 [DEBUG][       Thread-255986][   transport.py][1871] : EOF in transport thread
2025-06-13 13:14:34,083 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 13:14:34,095 [DEBUG][       Thread-255990][   transport.py][1871] : starting thread (client mode): 0x84204730
2025-06-13 13:14:34,095 [DEBUG][       Thread-255990][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 13:14:34,109 [DEBUG][       Thread-255990][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 13:14:34,109 [ INFO][       Thread-255990][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 13:14:34,117 [DEBUG][       Thread-255990][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 13:14:34,117 [DEBUG][       Thread-255990][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 13:14:34,117 [DEBUG][       Thread-255990][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 13:14:34,117 [DEBUG][       Thread-255990][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:14:34,117 [DEBUG][       Thread-255990][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:14:34,117 [DEBUG][       Thread-255990][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:14:34,117 [DEBUG][       Thread-255990][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:14:34,117 [DEBUG][       Thread-255990][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 13:14:34,117 [DEBUG][       Thread-255990][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 13:14:34,117 [DEBUG][       Thread-255990][   transport.py][1871] : client lang: <none>
2025-06-13 13:14:34,117 [DEBUG][       Thread-255990][   transport.py][1871] : server lang: <none>
2025-06-13 13:14:34,117 [DEBUG][       Thread-255990][   transport.py][1871] : kex follows: False
2025-06-13 13:14:34,117 [DEBUG][       Thread-255990][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 13:14:34,117 [DEBUG][       Thread-255990][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 13:14:34,117 [DEBUG][       Thread-255990][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 13:14:34,117 [DEBUG][       Thread-255990][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 13:14:34,117 [DEBUG][       Thread-255990][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 13:14:34,117 [DEBUG][       Thread-255990][   transport.py][1871] : Compression: none
2025-06-13 13:14:34,117 [DEBUG][       Thread-255990][   transport.py][1871] : === End of kex handshake ===
2025-06-13 13:14:34,173 [DEBUG][       Thread-255990][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 13:14:34,173 [DEBUG][       Thread-255990][   transport.py][1871] : Switch to new keys ...
2025-06-13 13:14:34,173 [DEBUG][       Thread-255990][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 13:14:34,173 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 13:14:34,173 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 13:14:34,230 [DEBUG][       Thread-255990][   transport.py][1871] : userauth is OK
2025-06-13 13:14:34,231 [DEBUG][       Thread-255990][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 13:14:34,231 [DEBUG][       Thread-255990][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 13:14:34,231 [DEBUG][       Thread-255990][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 13:14:34,231 [DEBUG][       Thread-255990][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 13:14:34,245 [ INFO][       Thread-255990][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 13:14:34,245 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 13:14:34,245 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 13:14:35,317 [DEBUG][       Thread-255990][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 13:14:35,317 [DEBUG][       Thread-255990][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 13:14:35,368 [DEBUG][       Thread-255990][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 13:14:35,368 [DEBUG][       Thread-255990][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 13:14:35,377 [DEBUG][       Thread-255990][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 13:14:35,385 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 13:14:35,385 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 13:14:35,396 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 13:14:35,404 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 13:14:35,404 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 13:14:35,404 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 13:14:35,412 [DEBUG][       Thread-255990][   transport.py][1871] : EOF in transport thread
2025-06-13 13:14:42,368 [DEBUG][Thread-255992 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:14:45,415 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 13:14:45,415 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 13:14:45,415 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 13:14:45,418 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 13:14:45,902 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 13, 14, 32), 14.42, 37.0, 0.0, 10.18, 13.15, 0, 0, 0, 2, 0, 0),)
2025-06-13 13:14:45,902 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 13:14:32
2025-06-13 13:14:45,980 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 13:14:45,984 [DEBUG][       Thread-255993][   transport.py][1871] : starting thread (client mode): 0x84205120
2025-06-13 13:14:45,984 [DEBUG][       Thread-255993][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 13:14:46,006 [DEBUG][       Thread-255993][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 13:14:46,006 [ INFO][       Thread-255993][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 13:14:46,010 [DEBUG][       Thread-255993][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 13:14:46,010 [DEBUG][       Thread-255993][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 13:14:46,010 [DEBUG][       Thread-255993][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 13:14:46,010 [DEBUG][       Thread-255993][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:14:46,010 [DEBUG][       Thread-255993][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:14:46,010 [DEBUG][       Thread-255993][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:14:46,010 [DEBUG][       Thread-255993][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:14:46,010 [DEBUG][       Thread-255993][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 13:14:46,010 [DEBUG][       Thread-255993][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 13:14:46,010 [DEBUG][       Thread-255993][   transport.py][1871] : client lang: <none>
2025-06-13 13:14:46,010 [DEBUG][       Thread-255993][   transport.py][1871] : server lang: <none>
2025-06-13 13:14:46,010 [DEBUG][       Thread-255993][   transport.py][1871] : kex follows: False
2025-06-13 13:14:46,010 [DEBUG][       Thread-255993][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 13:14:46,011 [DEBUG][       Thread-255993][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 13:14:46,011 [DEBUG][       Thread-255993][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 13:14:46,011 [DEBUG][       Thread-255993][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 13:14:46,011 [DEBUG][       Thread-255993][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 13:14:46,011 [DEBUG][       Thread-255993][   transport.py][1871] : Compression: none
2025-06-13 13:14:46,011 [DEBUG][       Thread-255993][   transport.py][1871] : === End of kex handshake ===
2025-06-13 13:14:46,027 [DEBUG][       Thread-255993][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 13:14:46,028 [DEBUG][       Thread-255993][   transport.py][1871] : Switch to new keys ...
2025-06-13 13:14:46,028 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 13:14:46,028 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 13:14:46,029 [DEBUG][       Thread-255993][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 13:14:46,030 [DEBUG][       Thread-255993][   transport.py][1871] : userauth is OK
2025-06-13 13:14:46,043 [ INFO][       Thread-255993][   transport.py][1871] : Authentication (password) successful!
2025-06-13 13:14:46,044 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 13:14:46,687 [DEBUG][       Thread-255993][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 13:14:46,687 [DEBUG][       Thread-255993][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 13:14:46,729 [DEBUG][       Thread-255993][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 13:14:46,729 [DEBUG][       Thread-255993][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 13:14:46,731 [DEBUG][       Thread-255993][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 13:14:46,745 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 13:14:46,745 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 13:14:46,747 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 13:14:46,749 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 13:14:46,754 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 13:14:46,756 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 13:14:46,756 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 13:14:46,757 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 13:14:46,757 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.467993 -999.00  +13.20  10.67     42   +0.60 1 1 1 1 1   888    0 13.16 16.32 ----- 11.2 10.7 346.9 15.5 18.0 -29.4 16.8 -30.8 16.8 -28.5 18.1 -27.4
2025-06-13 13:14:46,757 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 13:14:46,757 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 13:14:46,757 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.467993
2025-06-13 13:14:46,758 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 13:14:46,758 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 13:14:46,759 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 13:14:46,759 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 13:14:46,759 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 13:14:46,759 [DEBUG][       Thread-255993][   transport.py][1871] : EOF in transport thread
2025-06-13 13:14:46,759 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T13:14:32', tmtdew=14.42, humidity=37.0, cloud=0.0, wind=10.18, temperature=13.15, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T11:13:54.595', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 13:14:46,846 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 13:14:46,856 [DEBUG][       Thread-255996][   transport.py][1871] : starting thread (client mode): 0x863beec0
2025-06-13 13:14:46,856 [DEBUG][       Thread-255996][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 13:14:46,871 [DEBUG][       Thread-255996][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 13:14:46,871 [ INFO][       Thread-255996][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 13:14:46,878 [DEBUG][       Thread-255996][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 13:14:46,878 [DEBUG][       Thread-255996][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 13:14:46,879 [DEBUG][       Thread-255996][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 13:14:46,879 [DEBUG][       Thread-255996][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:14:46,879 [DEBUG][       Thread-255996][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:14:46,879 [DEBUG][       Thread-255996][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:14:46,879 [DEBUG][       Thread-255996][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:14:46,879 [DEBUG][       Thread-255996][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 13:14:46,879 [DEBUG][       Thread-255996][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 13:14:46,879 [DEBUG][       Thread-255996][   transport.py][1871] : client lang: <none>
2025-06-13 13:14:46,879 [DEBUG][       Thread-255996][   transport.py][1871] : server lang: <none>
2025-06-13 13:14:46,879 [DEBUG][       Thread-255996][   transport.py][1871] : kex follows: False
2025-06-13 13:14:46,879 [DEBUG][       Thread-255996][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 13:14:46,879 [DEBUG][       Thread-255996][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 13:14:46,879 [DEBUG][       Thread-255996][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 13:14:46,879 [DEBUG][       Thread-255996][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 13:14:46,879 [DEBUG][       Thread-255996][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 13:14:46,879 [DEBUG][       Thread-255996][   transport.py][1871] : Compression: none
2025-06-13 13:14:46,879 [DEBUG][       Thread-255996][   transport.py][1871] : === End of kex handshake ===
2025-06-13 13:14:46,937 [DEBUG][       Thread-255996][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 13:14:46,937 [DEBUG][       Thread-255996][   transport.py][1871] : Switch to new keys ...
2025-06-13 13:14:46,937 [DEBUG][       Thread-255996][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 13:14:46,937 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 13:14:46,937 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 13:14:46,998 [DEBUG][       Thread-255996][   transport.py][1871] : userauth is OK
2025-06-13 13:14:46,998 [DEBUG][       Thread-255996][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 13:14:46,998 [DEBUG][       Thread-255996][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 13:14:46,998 [DEBUG][       Thread-255996][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 13:14:46,998 [DEBUG][       Thread-255996][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 13:14:47,018 [ INFO][       Thread-255996][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 13:14:47,018 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 13:14:47,018 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 13:14:48,077 [DEBUG][       Thread-255996][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 13:14:48,077 [DEBUG][       Thread-255996][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 13:14:48,130 [DEBUG][       Thread-255996][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 13:14:48,130 [DEBUG][       Thread-255996][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 13:14:48,139 [DEBUG][       Thread-255996][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 13:14:48,151 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 13:14:48,152 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 13:14:48,164 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 13:14:48,178 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 13:14:48,178 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 13:14:48,179 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 13:14:48,192 [DEBUG][       Thread-255996][   transport.py][1871] : EOF in transport thread
2025-06-13 13:14:50,497 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:14:50,498 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:14:51,402 [DEBUG][Thread-255998 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:14:58,189 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 13:14:58,189 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 13:14:58,189 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 13:14:58,192 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 13:14:58,675 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 13, 14, 32), 14.42, 37.0, 0.0, 10.18, 13.15, 0, 0, 0, 2, 0, 0),)
2025-06-13 13:14:58,675 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 13:14:32
2025-06-13 13:14:58,754 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 13:14:58,760 [DEBUG][       Thread-255999][   transport.py][1871] : starting thread (client mode): 0x84206f20
2025-06-13 13:14:58,760 [DEBUG][       Thread-255999][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 13:14:58,780 [DEBUG][       Thread-255999][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 13:14:58,780 [ INFO][       Thread-255999][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 13:14:58,784 [DEBUG][       Thread-255999][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 13:14:58,784 [DEBUG][       Thread-255999][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 13:14:58,784 [DEBUG][       Thread-255999][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 13:14:58,784 [DEBUG][       Thread-255999][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:14:58,784 [DEBUG][       Thread-255999][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:14:58,784 [DEBUG][       Thread-255999][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:14:58,784 [DEBUG][       Thread-255999][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:14:58,784 [DEBUG][       Thread-255999][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 13:14:58,784 [DEBUG][       Thread-255999][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 13:14:58,784 [DEBUG][       Thread-255999][   transport.py][1871] : client lang: <none>
2025-06-13 13:14:58,784 [DEBUG][       Thread-255999][   transport.py][1871] : server lang: <none>
2025-06-13 13:14:58,784 [DEBUG][       Thread-255999][   transport.py][1871] : kex follows: False
2025-06-13 13:14:58,784 [DEBUG][       Thread-255999][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 13:14:58,784 [DEBUG][       Thread-255999][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 13:14:58,785 [DEBUG][       Thread-255999][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 13:14:58,785 [DEBUG][       Thread-255999][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 13:14:58,785 [DEBUG][       Thread-255999][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 13:14:58,785 [DEBUG][       Thread-255999][   transport.py][1871] : Compression: none
2025-06-13 13:14:58,785 [DEBUG][       Thread-255999][   transport.py][1871] : === End of kex handshake ===
2025-06-13 13:14:58,800 [DEBUG][       Thread-255999][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 13:14:58,801 [DEBUG][       Thread-255999][   transport.py][1871] : Switch to new keys ...
2025-06-13 13:14:58,801 [DEBUG][       Thread-255999][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 13:14:58,801 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 13:14:58,802 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 13:14:58,803 [DEBUG][       Thread-255999][   transport.py][1871] : userauth is OK
2025-06-13 13:14:58,827 [ INFO][       Thread-255999][   transport.py][1871] : Authentication (password) successful!
2025-06-13 13:14:58,828 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 13:14:59,470 [DEBUG][       Thread-255999][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 13:14:59,470 [DEBUG][       Thread-255999][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 13:14:59,513 [DEBUG][       Thread-255999][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 13:14:59,513 [DEBUG][       Thread-255999][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 13:14:59,517 [DEBUG][       Thread-255999][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 13:14:59,529 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 13:14:59,530 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 13:14:59,532 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 13:14:59,534 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 13:14:59,541 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 13:14:59,543 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 13:14:59,543 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 13:14:59,544 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 13:14:59,545 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.468340 -999.00  +13.30   5.76     41   +0.60 1 1 1 1 1   888    0 13.17 15.32 ----- 8.7 5.8 344.3 14.7 18.1 -29.2 16.8 -30.8 16.9 -28.5 18.2 -27.5
2025-06-13 13:14:59,545 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 13:14:59,545 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 13:14:59,545 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.468340
2025-06-13 13:14:59,545 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 13:14:59,546 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 13:14:59,546 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 13:14:59,546 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 13:14:59,546 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 13:14:59,546 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T13:14:32', tmtdew=14.42, humidity=37.0, cloud=0.0, wind=10.18, temperature=13.15, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T11:14:24.576', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 13:14:59,547 [DEBUG][       Thread-255999][   transport.py][1871] : EOF in transport thread
2025-06-13 13:14:59,630 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 13:14:59,643 [DEBUG][       Thread-256002][   transport.py][1871] : starting thread (client mode): 0x863eceb0
2025-06-13 13:14:59,643 [DEBUG][       Thread-256002][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 13:14:59,659 [DEBUG][       Thread-256002][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 13:14:59,659 [ INFO][       Thread-256002][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 13:14:59,673 [DEBUG][       Thread-256002][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 13:14:59,673 [DEBUG][       Thread-256002][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 13:14:59,673 [DEBUG][       Thread-256002][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 13:14:59,673 [DEBUG][       Thread-256002][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:14:59,673 [DEBUG][       Thread-256002][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:14:59,674 [DEBUG][       Thread-256002][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:14:59,674 [DEBUG][       Thread-256002][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:14:59,674 [DEBUG][       Thread-256002][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 13:14:59,674 [DEBUG][       Thread-256002][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 13:14:59,674 [DEBUG][       Thread-256002][   transport.py][1871] : client lang: <none>
2025-06-13 13:14:59,674 [DEBUG][       Thread-256002][   transport.py][1871] : server lang: <none>
2025-06-13 13:14:59,674 [DEBUG][       Thread-256002][   transport.py][1871] : kex follows: False
2025-06-13 13:14:59,674 [DEBUG][       Thread-256002][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 13:14:59,674 [DEBUG][       Thread-256002][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 13:14:59,674 [DEBUG][       Thread-256002][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 13:14:59,674 [DEBUG][       Thread-256002][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 13:14:59,674 [DEBUG][       Thread-256002][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 13:14:59,674 [DEBUG][       Thread-256002][   transport.py][1871] : Compression: none
2025-06-13 13:14:59,674 [DEBUG][       Thread-256002][   transport.py][1871] : === End of kex handshake ===
2025-06-13 13:14:59,730 [DEBUG][       Thread-256002][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 13:14:59,731 [DEBUG][       Thread-256002][   transport.py][1871] : Switch to new keys ...
2025-06-13 13:14:59,732 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 13:14:59,732 [DEBUG][       Thread-256002][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 13:14:59,733 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 13:14:59,787 [DEBUG][       Thread-256002][   transport.py][1871] : userauth is OK
2025-06-13 13:14:59,787 [DEBUG][       Thread-256002][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 13:14:59,788 [DEBUG][       Thread-256002][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 13:14:59,788 [DEBUG][       Thread-256002][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 13:14:59,788 [DEBUG][       Thread-256002][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 13:14:59,809 [ INFO][       Thread-256002][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 13:14:59,810 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 13:14:59,810 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 13:15:00,443 [DEBUG][Thread-256004 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:15:00,838 [DEBUG][       Thread-256002][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 13:15:00,838 [DEBUG][       Thread-256002][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 13:15:00,888 [DEBUG][       Thread-256002][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 13:15:00,888 [DEBUG][       Thread-256002][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 13:15:00,897 [DEBUG][       Thread-256002][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 13:15:00,906 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 13:15:00,907 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 13:15:00,916 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 13:15:00,925 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 13:15:00,925 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 13:15:00,926 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 13:15:00,934 [DEBUG][       Thread-256002][   transport.py][1871] : EOF in transport thread
2025-06-13 13:15:09,464 [DEBUG][Thread-256005 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:15:10,936 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 13:15:10,937 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 13:15:10,937 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 13:15:10,939 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 13:15:11,404 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 13, 15, 4), 14.37, 37.16, 0.0, 13.97, 13.19, 0, 0, 0, 2, 0, 0),)
2025-06-13 13:15:11,404 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 13:15:04
2025-06-13 13:15:11,482 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 13:15:11,489 [DEBUG][       Thread-256006][   transport.py][1871] : starting thread (client mode): 0x86350970
2025-06-13 13:15:11,489 [DEBUG][       Thread-256006][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 13:15:11,510 [DEBUG][       Thread-256006][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 13:15:11,510 [ INFO][       Thread-256006][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 13:15:11,515 [DEBUG][       Thread-256006][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 13:15:11,515 [DEBUG][       Thread-256006][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 13:15:11,515 [DEBUG][       Thread-256006][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 13:15:11,515 [DEBUG][       Thread-256006][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:15:11,515 [DEBUG][       Thread-256006][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:15:11,515 [DEBUG][       Thread-256006][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:15:11,515 [DEBUG][       Thread-256006][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:15:11,515 [DEBUG][       Thread-256006][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 13:15:11,515 [DEBUG][       Thread-256006][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 13:15:11,515 [DEBUG][       Thread-256006][   transport.py][1871] : client lang: <none>
2025-06-13 13:15:11,515 [DEBUG][       Thread-256006][   transport.py][1871] : server lang: <none>
2025-06-13 13:15:11,515 [DEBUG][       Thread-256006][   transport.py][1871] : kex follows: False
2025-06-13 13:15:11,515 [DEBUG][       Thread-256006][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 13:15:11,515 [DEBUG][       Thread-256006][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 13:15:11,515 [DEBUG][       Thread-256006][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 13:15:11,515 [DEBUG][       Thread-256006][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 13:15:11,515 [DEBUG][       Thread-256006][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 13:15:11,515 [DEBUG][       Thread-256006][   transport.py][1871] : Compression: none
2025-06-13 13:15:11,515 [DEBUG][       Thread-256006][   transport.py][1871] : === End of kex handshake ===
2025-06-13 13:15:11,528 [DEBUG][       Thread-256006][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 13:15:11,528 [DEBUG][       Thread-256006][   transport.py][1871] : Switch to new keys ...
2025-06-13 13:15:11,529 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 13:15:11,529 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 13:15:11,530 [DEBUG][       Thread-256006][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 13:15:11,530 [DEBUG][       Thread-256006][   transport.py][1871] : userauth is OK
2025-06-13 13:15:11,555 [ INFO][       Thread-256006][   transport.py][1871] : Authentication (password) successful!
2025-06-13 13:15:11,555 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 13:15:14,479 [DEBUG][       Thread-256006][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 13:15:14,485 [DEBUG][       Thread-256006][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 13:15:14,520 [DEBUG][       Thread-256006][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 13:15:14,521 [DEBUG][       Thread-256006][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 13:15:14,523 [DEBUG][       Thread-256006][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 13:15:14,528 [DEBUG][Thread-256008 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:15:14,535 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 13:15:14,535 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 13:15:14,536 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 13:15:14,537 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 13:15:14,542 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 13:15:14,543 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 13:15:14,543 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 13:15:14,543 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 13:15:14,543 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.468340 -999.00  +13.30   5.76     41   +0.60 1 1 1 1 1   888    0 13.17 15.32 ----- 8.7 5.8 344.3 14.7 18.1 -29.2 16.8 -30.8 16.9 -28.5 18.2 -27.5
2025-06-13 13:15:14,543 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 13:15:14,543 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 13:15:14,543 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.468340
2025-06-13 13:15:14,543 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 13:15:14,544 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 13:15:14,544 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 13:15:14,544 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 13:15:14,544 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 13:15:14,544 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T13:15:04', tmtdew=14.37, humidity=37.16, cloud=0.0, wind=13.97, temperature=13.19, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T11:14:24.576', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 13:15:14,544 [DEBUG][       Thread-256006][   transport.py][1871] : EOF in transport thread
2025-06-13 13:15:14,618 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 13:15:14,633 [DEBUG][       Thread-256010][   transport.py][1871] : starting thread (client mode): 0x86893ca0
2025-06-13 13:15:14,633 [DEBUG][       Thread-256010][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 13:15:14,649 [DEBUG][       Thread-256010][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 13:15:14,650 [ INFO][       Thread-256010][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 13:15:14,657 [DEBUG][       Thread-256010][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 13:15:14,657 [DEBUG][       Thread-256010][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 13:15:14,657 [DEBUG][       Thread-256010][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 13:15:14,658 [DEBUG][       Thread-256010][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:15:14,658 [DEBUG][       Thread-256010][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:15:14,658 [DEBUG][       Thread-256010][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:15:14,658 [DEBUG][       Thread-256010][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:15:14,658 [DEBUG][       Thread-256010][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 13:15:14,658 [DEBUG][       Thread-256010][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 13:15:14,658 [DEBUG][       Thread-256010][   transport.py][1871] : client lang: <none>
2025-06-13 13:15:14,658 [DEBUG][       Thread-256010][   transport.py][1871] : server lang: <none>
2025-06-13 13:15:14,658 [DEBUG][       Thread-256010][   transport.py][1871] : kex follows: False
2025-06-13 13:15:14,658 [DEBUG][       Thread-256010][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 13:15:14,658 [DEBUG][       Thread-256010][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 13:15:14,658 [DEBUG][       Thread-256010][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 13:15:14,658 [DEBUG][       Thread-256010][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 13:15:14,658 [DEBUG][       Thread-256010][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 13:15:14,658 [DEBUG][       Thread-256010][   transport.py][1871] : Compression: none
2025-06-13 13:15:14,658 [DEBUG][       Thread-256010][   transport.py][1871] : === End of kex handshake ===
2025-06-13 13:15:14,714 [DEBUG][       Thread-256010][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 13:15:14,715 [DEBUG][       Thread-256010][   transport.py][1871] : Switch to new keys ...
2025-06-13 13:15:14,715 [DEBUG][       Thread-256010][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 13:15:14,715 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 13:15:14,716 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 13:15:14,770 [DEBUG][       Thread-256010][   transport.py][1871] : userauth is OK
2025-06-13 13:15:14,771 [DEBUG][       Thread-256010][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 13:15:14,771 [DEBUG][       Thread-256010][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 13:15:14,771 [DEBUG][       Thread-256010][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 13:15:14,771 [DEBUG][       Thread-256010][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 13:15:14,790 [ INFO][       Thread-256010][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 13:15:14,790 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 13:15:14,791 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 13:15:15,817 [DEBUG][       Thread-256010][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 13:15:15,817 [DEBUG][       Thread-256010][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 13:15:15,867 [DEBUG][       Thread-256010][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 13:15:15,867 [DEBUG][       Thread-256010][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 13:15:15,876 [DEBUG][       Thread-256010][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 13:15:15,884 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 13:15:15,884 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 13:15:15,892 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 13:15:15,906 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 13:15:15,906 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 13:15:15,906 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 13:15:15,914 [DEBUG][       Thread-256010][   transport.py][1871] : EOF in transport thread
2025-06-13 13:15:18,486 [DEBUG][Thread-256012 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:15:19,590 [DEBUG][Thread-256013 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:15:20,641 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:15:20,642 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:15:25,917 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 13:15:25,917 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 13:15:25,917 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 13:15:25,920 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 13:15:26,398 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 13, 15, 4), 14.37, 37.16, 0.0, 13.97, 13.19, 0, 0, 0, 2, 0, 0),)
2025-06-13 13:15:26,398 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 13:15:04
2025-06-13 13:15:26,477 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 13:15:26,481 [DEBUG][       Thread-256014][   transport.py][1871] : starting thread (client mode): 0x863bf880
2025-06-13 13:15:26,481 [DEBUG][       Thread-256014][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 13:15:26,501 [DEBUG][       Thread-256014][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 13:15:26,501 [ INFO][       Thread-256014][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 13:15:26,503 [DEBUG][       Thread-256014][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 13:15:26,504 [DEBUG][       Thread-256014][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 13:15:26,504 [DEBUG][       Thread-256014][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 13:15:26,504 [DEBUG][       Thread-256014][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:15:26,504 [DEBUG][       Thread-256014][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:15:26,504 [DEBUG][       Thread-256014][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:15:26,504 [DEBUG][       Thread-256014][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:15:26,504 [DEBUG][       Thread-256014][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 13:15:26,504 [DEBUG][       Thread-256014][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 13:15:26,504 [DEBUG][       Thread-256014][   transport.py][1871] : client lang: <none>
2025-06-13 13:15:26,504 [DEBUG][       Thread-256014][   transport.py][1871] : server lang: <none>
2025-06-13 13:15:26,504 [DEBUG][       Thread-256014][   transport.py][1871] : kex follows: False
2025-06-13 13:15:26,504 [DEBUG][       Thread-256014][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 13:15:26,504 [DEBUG][       Thread-256014][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 13:15:26,504 [DEBUG][       Thread-256014][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 13:15:26,504 [DEBUG][       Thread-256014][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 13:15:26,504 [DEBUG][       Thread-256014][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 13:15:26,504 [DEBUG][       Thread-256014][   transport.py][1871] : Compression: none
2025-06-13 13:15:26,504 [DEBUG][       Thread-256014][   transport.py][1871] : === End of kex handshake ===
2025-06-13 13:15:26,521 [DEBUG][       Thread-256014][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 13:15:26,521 [DEBUG][       Thread-256014][   transport.py][1871] : Switch to new keys ...
2025-06-13 13:15:26,522 [DEBUG][       Thread-256014][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 13:15:26,522 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 13:15:26,522 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 13:15:26,523 [DEBUG][       Thread-256014][   transport.py][1871] : userauth is OK
2025-06-13 13:15:26,547 [ INFO][       Thread-256014][   transport.py][1871] : Authentication (password) successful!
2025-06-13 13:15:26,548 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 13:15:27,206 [DEBUG][       Thread-256014][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 13:15:27,206 [DEBUG][       Thread-256014][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 13:15:27,249 [DEBUG][       Thread-256014][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 13:15:27,249 [DEBUG][       Thread-256014][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 13:15:27,252 [DEBUG][       Thread-256014][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 13:15:27,266 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 13:15:27,266 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 13:15:27,268 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 13:15:27,271 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 13:15:27,276 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 13:15:27,279 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 13:15:27,279 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 13:15:27,280 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 13:15:27,280 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.468340 -999.00  +13.30   5.76     41   +0.60 1 1 1 1 1   888    0 13.17 15.32 ----- 8.7 5.8 344.3 14.7 18.1 -29.2 16.8 -30.8 16.9 -28.5 18.2 -27.5
2025-06-13 13:15:27,280 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 13:15:27,280 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 13:15:27,280 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.468340
2025-06-13 13:15:27,280 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 13:15:27,281 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 13:15:27,281 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 13:15:27,281 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 13:15:27,281 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 13:15:27,281 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T13:15:04', tmtdew=14.37, humidity=37.16, cloud=0.0, wind=13.97, temperature=13.19, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T11:14:24.576', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 13:15:27,283 [DEBUG][       Thread-256014][   transport.py][1871] : EOF in transport thread
2025-06-13 13:15:27,365 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 13:15:27,375 [DEBUG][       Thread-256017][   transport.py][1871] : starting thread (client mode): 0x863ca6e0
2025-06-13 13:15:27,375 [DEBUG][       Thread-256017][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 13:15:27,389 [DEBUG][       Thread-256017][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 13:15:27,389 [ INFO][       Thread-256017][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 13:15:27,396 [DEBUG][       Thread-256017][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 13:15:27,397 [DEBUG][       Thread-256017][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 13:15:27,397 [DEBUG][       Thread-256017][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 13:15:27,397 [DEBUG][       Thread-256017][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:15:27,397 [DEBUG][       Thread-256017][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:15:27,397 [DEBUG][       Thread-256017][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:15:27,397 [DEBUG][       Thread-256017][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:15:27,397 [DEBUG][       Thread-256017][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 13:15:27,397 [DEBUG][       Thread-256017][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 13:15:27,397 [DEBUG][       Thread-256017][   transport.py][1871] : client lang: <none>
2025-06-13 13:15:27,397 [DEBUG][       Thread-256017][   transport.py][1871] : server lang: <none>
2025-06-13 13:15:27,397 [DEBUG][       Thread-256017][   transport.py][1871] : kex follows: False
2025-06-13 13:15:27,397 [DEBUG][       Thread-256017][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 13:15:27,397 [DEBUG][       Thread-256017][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 13:15:27,397 [DEBUG][       Thread-256017][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 13:15:27,397 [DEBUG][       Thread-256017][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 13:15:27,397 [DEBUG][       Thread-256017][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 13:15:27,397 [DEBUG][       Thread-256017][   transport.py][1871] : Compression: none
2025-06-13 13:15:27,397 [DEBUG][       Thread-256017][   transport.py][1871] : === End of kex handshake ===
2025-06-13 13:15:27,455 [DEBUG][       Thread-256017][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 13:15:27,455 [DEBUG][       Thread-256017][   transport.py][1871] : Switch to new keys ...
2025-06-13 13:15:27,456 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 13:15:27,457 [DEBUG][       Thread-256017][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 13:15:27,457 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 13:15:27,510 [DEBUG][       Thread-256017][   transport.py][1871] : userauth is OK
2025-06-13 13:15:27,511 [DEBUG][       Thread-256017][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 13:15:27,511 [DEBUG][       Thread-256017][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 13:15:27,511 [DEBUG][       Thread-256017][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 13:15:27,511 [DEBUG][       Thread-256017][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 13:15:27,519 [DEBUG][Thread-256019 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:15:27,529 [ INFO][       Thread-256017][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 13:15:27,530 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 13:15:27,530 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 13:15:28,596 [DEBUG][       Thread-256017][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 13:15:28,597 [DEBUG][       Thread-256017][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 13:15:28,648 [DEBUG][       Thread-256017][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 13:15:28,648 [DEBUG][       Thread-256017][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 13:15:28,657 [DEBUG][       Thread-256017][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 13:15:28,666 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 13:15:28,667 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 13:15:28,675 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 13:15:28,685 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 13:15:28,685 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 13:15:28,685 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 13:15:28,693 [DEBUG][       Thread-256017][   transport.py][1871] : EOF in transport thread
2025-06-13 13:15:36,541 [DEBUG][Thread-256020 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:15:38,696 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 13:15:38,696 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 13:15:38,696 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 13:15:38,699 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 13:15:39,166 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 13, 15, 36), 14.45, 36.78, 0.0, 15.02, 13.12, 0, 0, 0, 2, 0, 0),)
2025-06-13 13:15:39,166 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 13:15:36
2025-06-13 13:15:39,257 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 13:15:39,262 [DEBUG][       Thread-256021][   transport.py][1871] : starting thread (client mode): 0x863510f0
2025-06-13 13:15:39,262 [DEBUG][       Thread-256021][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 13:15:39,281 [DEBUG][       Thread-256021][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 13:15:39,281 [ INFO][       Thread-256021][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 13:15:39,284 [DEBUG][       Thread-256021][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 13:15:39,284 [DEBUG][       Thread-256021][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 13:15:39,284 [DEBUG][       Thread-256021][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 13:15:39,284 [DEBUG][       Thread-256021][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:15:39,284 [DEBUG][       Thread-256021][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:15:39,284 [DEBUG][       Thread-256021][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:15:39,284 [DEBUG][       Thread-256021][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:15:39,284 [DEBUG][       Thread-256021][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 13:15:39,284 [DEBUG][       Thread-256021][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 13:15:39,284 [DEBUG][       Thread-256021][   transport.py][1871] : client lang: <none>
2025-06-13 13:15:39,284 [DEBUG][       Thread-256021][   transport.py][1871] : server lang: <none>
2025-06-13 13:15:39,284 [DEBUG][       Thread-256021][   transport.py][1871] : kex follows: False
2025-06-13 13:15:39,284 [DEBUG][       Thread-256021][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 13:15:39,284 [DEBUG][       Thread-256021][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 13:15:39,284 [DEBUG][       Thread-256021][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 13:15:39,284 [DEBUG][       Thread-256021][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 13:15:39,284 [DEBUG][       Thread-256021][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 13:15:39,284 [DEBUG][       Thread-256021][   transport.py][1871] : Compression: none
2025-06-13 13:15:39,285 [DEBUG][       Thread-256021][   transport.py][1871] : === End of kex handshake ===
2025-06-13 13:15:39,297 [DEBUG][       Thread-256021][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 13:15:39,298 [DEBUG][       Thread-256021][   transport.py][1871] : Switch to new keys ...
2025-06-13 13:15:39,298 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 13:15:39,298 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 13:15:39,299 [DEBUG][       Thread-256021][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 13:15:39,299 [DEBUG][       Thread-256021][   transport.py][1871] : userauth is OK
2025-06-13 13:15:39,325 [ INFO][       Thread-256021][   transport.py][1871] : Authentication (password) successful!
2025-06-13 13:15:39,325 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 13:15:39,950 [DEBUG][       Thread-256021][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 13:15:39,950 [DEBUG][       Thread-256021][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 13:15:39,993 [DEBUG][       Thread-256021][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 13:15:39,993 [DEBUG][       Thread-256021][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 13:15:39,996 [DEBUG][       Thread-256021][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 13:15:40,009 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 13:15:40,010 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 13:15:40,011 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 13:15:40,013 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 13:15:40,019 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 13:15:40,021 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 13:15:40,021 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 13:15:40,022 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 13:15:40,022 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.469034 -999.00  +13.20  12.87     41   +0.50 1 1 1 1 1   888    0 12.97 14.59 ----- 8.6 12.9 2.3 17.4 18.2 -29.5 16.9 -30.7 16.9 -29.0 18.3 -27.7
2025-06-13 13:15:40,022 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 13:15:40,022 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 13:15:40,022 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.469034
2025-06-13 13:15:40,022 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 13:15:40,023 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 13:15:40,023 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 13:15:40,023 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 13:15:40,023 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 13:15:40,023 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T13:15:36', tmtdew=14.45, humidity=36.78, cloud=0.0, wind=15.02, temperature=13.12, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T11:15:24.538', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 13:15:40,024 [DEBUG][       Thread-256021][   transport.py][1871] : EOF in transport thread
2025-06-13 13:15:40,107 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 13:15:40,119 [DEBUG][       Thread-256024][   transport.py][1871] : starting thread (client mode): 0x863ec730
2025-06-13 13:15:40,119 [DEBUG][       Thread-256024][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 13:15:40,133 [DEBUG][       Thread-256024][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 13:15:40,134 [ INFO][       Thread-256024][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 13:15:40,141 [DEBUG][       Thread-256024][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 13:15:40,141 [DEBUG][       Thread-256024][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 13:15:40,142 [DEBUG][       Thread-256024][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 13:15:40,142 [DEBUG][       Thread-256024][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:15:40,142 [DEBUG][       Thread-256024][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:15:40,142 [DEBUG][       Thread-256024][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:15:40,142 [DEBUG][       Thread-256024][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:15:40,142 [DEBUG][       Thread-256024][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 13:15:40,142 [DEBUG][       Thread-256024][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 13:15:40,142 [DEBUG][       Thread-256024][   transport.py][1871] : client lang: <none>
2025-06-13 13:15:40,142 [DEBUG][       Thread-256024][   transport.py][1871] : server lang: <none>
2025-06-13 13:15:40,142 [DEBUG][       Thread-256024][   transport.py][1871] : kex follows: False
2025-06-13 13:15:40,142 [DEBUG][       Thread-256024][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 13:15:40,142 [DEBUG][       Thread-256024][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 13:15:40,142 [DEBUG][       Thread-256024][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 13:15:40,142 [DEBUG][       Thread-256024][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 13:15:40,142 [DEBUG][       Thread-256024][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 13:15:40,142 [DEBUG][       Thread-256024][   transport.py][1871] : Compression: none
2025-06-13 13:15:40,142 [DEBUG][       Thread-256024][   transport.py][1871] : === End of kex handshake ===
2025-06-13 13:15:40,200 [DEBUG][       Thread-256024][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 13:15:40,201 [DEBUG][       Thread-256024][   transport.py][1871] : Switch to new keys ...
2025-06-13 13:15:40,201 [DEBUG][       Thread-256024][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 13:15:40,202 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 13:15:40,202 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 13:15:40,258 [DEBUG][       Thread-256024][   transport.py][1871] : userauth is OK
2025-06-13 13:15:40,258 [DEBUG][       Thread-256024][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 13:15:40,259 [DEBUG][       Thread-256024][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 13:15:40,259 [DEBUG][       Thread-256024][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 13:15:40,259 [DEBUG][       Thread-256024][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 13:15:40,279 [ INFO][       Thread-256024][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 13:15:40,279 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 13:15:40,280 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 13:15:41,269 [DEBUG][       Thread-256024][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 13:15:41,269 [DEBUG][       Thread-256024][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 13:15:41,319 [DEBUG][       Thread-256024][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 13:15:41,319 [DEBUG][       Thread-256024][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 13:15:41,328 [DEBUG][       Thread-256024][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 13:15:41,336 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 13:15:41,336 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 13:15:41,349 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 13:15:41,357 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 13:15:41,357 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 13:15:41,357 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 13:15:41,365 [DEBUG][       Thread-256024][   transport.py][1871] : EOF in transport thread
2025-06-13 13:15:45,560 [DEBUG][Thread-256026 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:15:50,640 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:15:50,641 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:15:51,367 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 13:15:51,367 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 13:15:51,367 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 13:15:51,370 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 13:15:51,841 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 13, 15, 36), 14.45, 36.78, 0.0, 15.02, 13.12, 0, 0, 0, 2, 0, 0),)
2025-06-13 13:15:51,841 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 13:15:36
2025-06-13 13:15:51,922 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 13:15:51,926 [DEBUG][       Thread-256027][   transport.py][1871] : starting thread (client mode): 0x84205210
2025-06-13 13:15:51,926 [DEBUG][       Thread-256027][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 13:15:51,942 [DEBUG][       Thread-256027][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 13:15:51,942 [ INFO][       Thread-256027][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 13:15:51,944 [DEBUG][       Thread-256027][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 13:15:51,944 [DEBUG][       Thread-256027][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 13:15:51,944 [DEBUG][       Thread-256027][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 13:15:51,944 [DEBUG][       Thread-256027][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:15:51,944 [DEBUG][       Thread-256027][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:15:51,944 [DEBUG][       Thread-256027][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:15:51,944 [DEBUG][       Thread-256027][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:15:51,944 [DEBUG][       Thread-256027][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 13:15:51,944 [DEBUG][       Thread-256027][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 13:15:51,944 [DEBUG][       Thread-256027][   transport.py][1871] : client lang: <none>
2025-06-13 13:15:51,944 [DEBUG][       Thread-256027][   transport.py][1871] : server lang: <none>
2025-06-13 13:15:51,944 [DEBUG][       Thread-256027][   transport.py][1871] : kex follows: False
2025-06-13 13:15:51,944 [DEBUG][       Thread-256027][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 13:15:51,944 [DEBUG][       Thread-256027][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 13:15:51,944 [DEBUG][       Thread-256027][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 13:15:51,944 [DEBUG][       Thread-256027][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 13:15:51,944 [DEBUG][       Thread-256027][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 13:15:51,944 [DEBUG][       Thread-256027][   transport.py][1871] : Compression: none
2025-06-13 13:15:51,944 [DEBUG][       Thread-256027][   transport.py][1871] : === End of kex handshake ===
2025-06-13 13:15:51,958 [DEBUG][       Thread-256027][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 13:15:51,959 [DEBUG][       Thread-256027][   transport.py][1871] : Switch to new keys ...
2025-06-13 13:15:51,959 [DEBUG][       Thread-256027][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 13:15:51,959 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 13:15:51,960 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 13:15:51,961 [DEBUG][       Thread-256027][   transport.py][1871] : userauth is OK
2025-06-13 13:15:51,974 [ INFO][       Thread-256027][   transport.py][1871] : Authentication (password) successful!
2025-06-13 13:15:51,974 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 13:15:52,639 [DEBUG][       Thread-256027][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 13:15:52,639 [DEBUG][       Thread-256027][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 13:15:52,681 [DEBUG][       Thread-256027][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 13:15:52,681 [DEBUG][       Thread-256027][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 13:15:52,684 [DEBUG][       Thread-256027][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 13:15:52,696 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 13:15:52,696 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 13:15:52,698 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 13:15:52,700 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 13:15:52,706 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 13:15:52,708 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 13:15:52,708 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 13:15:52,708 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 13:15:52,709 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.469034 -999.00  +13.20  12.87     41   +0.50 1 1 1 1 1   888    0 12.97 14.59 ----- 8.6 12.9 2.3 17.4 18.2 -29.5 16.9 -30.7 16.9 -29.0 18.3 -27.7
2025-06-13 13:15:52,709 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 13:15:52,709 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 13:15:52,709 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.469034
2025-06-13 13:15:52,709 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 13:15:52,710 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 13:15:52,710 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 13:15:52,710 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 13:15:52,710 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 13:15:52,710 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T13:15:36', tmtdew=14.45, humidity=36.78, cloud=0.0, wind=15.02, temperature=13.12, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T11:15:24.538', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 13:15:52,711 [DEBUG][       Thread-256027][   transport.py][1871] : EOF in transport thread
2025-06-13 13:15:52,794 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 13:15:52,804 [DEBUG][       Thread-256030][   transport.py][1871] : starting thread (client mode): 0x867b78b0
2025-06-13 13:15:52,804 [DEBUG][       Thread-256030][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 13:15:52,820 [DEBUG][       Thread-256030][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 13:15:52,820 [ INFO][       Thread-256030][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 13:15:52,827 [DEBUG][       Thread-256030][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 13:15:52,828 [DEBUG][       Thread-256030][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 13:15:52,828 [DEBUG][       Thread-256030][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 13:15:52,828 [DEBUG][       Thread-256030][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:15:52,828 [DEBUG][       Thread-256030][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:15:52,828 [DEBUG][       Thread-256030][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:15:52,828 [DEBUG][       Thread-256030][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:15:52,828 [DEBUG][       Thread-256030][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 13:15:52,828 [DEBUG][       Thread-256030][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 13:15:52,828 [DEBUG][       Thread-256030][   transport.py][1871] : client lang: <none>
2025-06-13 13:15:52,828 [DEBUG][       Thread-256030][   transport.py][1871] : server lang: <none>
2025-06-13 13:15:52,828 [DEBUG][       Thread-256030][   transport.py][1871] : kex follows: False
2025-06-13 13:15:52,828 [DEBUG][       Thread-256030][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 13:15:52,828 [DEBUG][       Thread-256030][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 13:15:52,828 [DEBUG][       Thread-256030][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 13:15:52,828 [DEBUG][       Thread-256030][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 13:15:52,828 [DEBUG][       Thread-256030][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 13:15:52,828 [DEBUG][       Thread-256030][   transport.py][1871] : Compression: none
2025-06-13 13:15:52,828 [DEBUG][       Thread-256030][   transport.py][1871] : === End of kex handshake ===
2025-06-13 13:15:52,886 [DEBUG][       Thread-256030][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 13:15:52,887 [DEBUG][       Thread-256030][   transport.py][1871] : Switch to new keys ...
2025-06-13 13:15:52,887 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 13:15:52,888 [DEBUG][       Thread-256030][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 13:15:52,889 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 13:15:52,944 [DEBUG][       Thread-256030][   transport.py][1871] : userauth is OK
2025-06-13 13:15:52,944 [DEBUG][       Thread-256030][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 13:15:52,944 [DEBUG][       Thread-256030][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 13:15:52,944 [DEBUG][       Thread-256030][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 13:15:52,944 [DEBUG][       Thread-256030][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 13:15:52,966 [ INFO][       Thread-256030][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 13:15:52,966 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 13:15:52,967 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 13:15:53,973 [DEBUG][       Thread-256030][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 13:15:53,973 [DEBUG][       Thread-256030][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 13:15:54,029 [DEBUG][       Thread-256030][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 13:15:54,029 [DEBUG][       Thread-256030][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 13:15:54,041 [DEBUG][       Thread-256030][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 13:15:54,050 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 13:15:54,050 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 13:15:54,059 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 13:15:54,068 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 13:15:54,069 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 13:15:54,069 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 13:15:54,077 [DEBUG][       Thread-256030][   transport.py][1871] : EOF in transport thread
2025-06-13 13:15:54,597 [DEBUG][Thread-256032 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:16:03,619 [DEBUG][Thread-256033 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:16:04,079 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 13:16:04,080 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 13:16:04,080 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 13:16:04,083 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 13:16:04,548 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 13, 15, 36), 14.45, 36.78, 0.0, 15.02, 13.12, 0, 0, 0, 2, 0, 0),)
2025-06-13 13:16:04,548 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 13:15:36
2025-06-13 13:16:04,629 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 13:16:04,635 [DEBUG][       Thread-256034][   transport.py][1871] : starting thread (client mode): 0x86390fd0
2025-06-13 13:16:04,635 [DEBUG][       Thread-256034][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 13:16:04,655 [DEBUG][       Thread-256034][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 13:16:04,655 [ INFO][       Thread-256034][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 13:16:04,657 [DEBUG][       Thread-256034][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 13:16:04,657 [DEBUG][       Thread-256034][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 13:16:04,658 [DEBUG][       Thread-256034][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 13:16:04,658 [DEBUG][       Thread-256034][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:16:04,658 [DEBUG][       Thread-256034][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:16:04,658 [DEBUG][       Thread-256034][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:16:04,658 [DEBUG][       Thread-256034][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:16:04,658 [DEBUG][       Thread-256034][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 13:16:04,658 [DEBUG][       Thread-256034][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 13:16:04,658 [DEBUG][       Thread-256034][   transport.py][1871] : client lang: <none>
2025-06-13 13:16:04,658 [DEBUG][       Thread-256034][   transport.py][1871] : server lang: <none>
2025-06-13 13:16:04,658 [DEBUG][       Thread-256034][   transport.py][1871] : kex follows: False
2025-06-13 13:16:04,658 [DEBUG][       Thread-256034][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 13:16:04,658 [DEBUG][       Thread-256034][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 13:16:04,658 [DEBUG][       Thread-256034][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 13:16:04,658 [DEBUG][       Thread-256034][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 13:16:04,658 [DEBUG][       Thread-256034][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 13:16:04,658 [DEBUG][       Thread-256034][   transport.py][1871] : Compression: none
2025-06-13 13:16:04,658 [DEBUG][       Thread-256034][   transport.py][1871] : === End of kex handshake ===
2025-06-13 13:16:04,672 [DEBUG][       Thread-256034][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 13:16:04,673 [DEBUG][       Thread-256034][   transport.py][1871] : Switch to new keys ...
2025-06-13 13:16:04,673 [DEBUG][       Thread-256034][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 13:16:04,673 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 13:16:04,674 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 13:16:04,675 [DEBUG][       Thread-256034][   transport.py][1871] : userauth is OK
2025-06-13 13:16:04,688 [ INFO][       Thread-256034][   transport.py][1871] : Authentication (password) successful!
2025-06-13 13:16:04,688 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 13:16:05,338 [DEBUG][       Thread-256034][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 13:16:05,338 [DEBUG][       Thread-256034][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 13:16:05,381 [DEBUG][       Thread-256034][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 13:16:05,381 [DEBUG][       Thread-256034][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 13:16:05,384 [DEBUG][       Thread-256034][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 13:16:05,395 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 13:16:05,396 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 13:16:05,398 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 13:16:05,399 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 13:16:05,405 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 13:16:05,406 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 13:16:05,407 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 13:16:05,407 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 13:16:05,407 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.469382 -999.00  +13.30  10.08     42   +0.70 1 1 1 1 1   888    0 13.19 15.05 ----- 12.7 10.1 31.6 16.7 18.2 -29.2 16.9 -30.2 17.0 -28.8 18.4 -27.7
2025-06-13 13:16:05,408 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 13:16:05,408 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 13:16:05,408 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.469382
2025-06-13 13:16:05,408 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 13:16:05,409 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 13:16:05,409 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 13:16:05,409 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 13:16:05,409 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 13:16:05,409 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T13:15:36', tmtdew=14.45, humidity=36.78, cloud=0.0, wind=15.02, temperature=13.12, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T11:15:54.605', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 13:16:05,410 [DEBUG][       Thread-256034][   transport.py][1871] : EOF in transport thread
2025-06-13 13:16:05,493 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 13:16:05,506 [DEBUG][       Thread-256037][   transport.py][1871] : starting thread (client mode): 0x863ec730
2025-06-13 13:16:05,506 [DEBUG][       Thread-256037][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 13:16:05,520 [DEBUG][       Thread-256037][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 13:16:05,520 [ INFO][       Thread-256037][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 13:16:05,528 [DEBUG][       Thread-256037][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 13:16:05,528 [DEBUG][       Thread-256037][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 13:16:05,528 [DEBUG][       Thread-256037][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 13:16:05,529 [DEBUG][       Thread-256037][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:16:05,529 [DEBUG][       Thread-256037][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:16:05,529 [DEBUG][       Thread-256037][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:16:05,529 [DEBUG][       Thread-256037][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:16:05,529 [DEBUG][       Thread-256037][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 13:16:05,529 [DEBUG][       Thread-256037][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 13:16:05,529 [DEBUG][       Thread-256037][   transport.py][1871] : client lang: <none>
2025-06-13 13:16:05,529 [DEBUG][       Thread-256037][   transport.py][1871] : server lang: <none>
2025-06-13 13:16:05,529 [DEBUG][       Thread-256037][   transport.py][1871] : kex follows: False
2025-06-13 13:16:05,529 [DEBUG][       Thread-256037][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 13:16:05,529 [DEBUG][       Thread-256037][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 13:16:05,529 [DEBUG][       Thread-256037][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 13:16:05,529 [DEBUG][       Thread-256037][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 13:16:05,529 [DEBUG][       Thread-256037][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 13:16:05,529 [DEBUG][       Thread-256037][   transport.py][1871] : Compression: none
2025-06-13 13:16:05,529 [DEBUG][       Thread-256037][   transport.py][1871] : === End of kex handshake ===
2025-06-13 13:16:05,587 [DEBUG][       Thread-256037][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 13:16:05,587 [DEBUG][       Thread-256037][   transport.py][1871] : Switch to new keys ...
2025-06-13 13:16:05,588 [DEBUG][       Thread-256037][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 13:16:05,588 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 13:16:05,589 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 13:16:05,642 [DEBUG][       Thread-256037][   transport.py][1871] : userauth is OK
2025-06-13 13:16:05,642 [DEBUG][       Thread-256037][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 13:16:05,642 [DEBUG][       Thread-256037][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 13:16:05,642 [DEBUG][       Thread-256037][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 13:16:05,642 [DEBUG][       Thread-256037][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 13:16:05,657 [ INFO][       Thread-256037][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 13:16:05,657 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 13:16:05,657 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 13:16:06,747 [DEBUG][       Thread-256037][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 13:16:06,747 [DEBUG][       Thread-256037][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 13:16:06,796 [DEBUG][       Thread-256037][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 13:16:06,796 [DEBUG][       Thread-256037][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 13:16:06,805 [DEBUG][       Thread-256037][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 13:16:06,814 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 13:16:06,814 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 13:16:06,823 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 13:16:06,832 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 13:16:06,833 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 13:16:06,833 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 13:16:06,841 [DEBUG][       Thread-256037][   transport.py][1871] : EOF in transport thread
2025-06-13 13:16:12,642 [DEBUG][Thread-256039 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:16:14,577 [DEBUG][Thread-256040 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:16:16,844 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 13:16:16,844 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 13:16:16,844 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 13:16:16,847 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 13:16:17,315 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 13, 16, 7), 14.46, 36.77, 0.0, 15.39, 13.15, 0, 0, 0, 2, 0, 0),)
2025-06-13 13:16:17,315 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 13:16:07
2025-06-13 13:16:17,396 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 13:16:17,403 [DEBUG][       Thread-256041][   transport.py][1871] : starting thread (client mode): 0x86391780
2025-06-13 13:16:17,403 [DEBUG][       Thread-256041][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 13:16:17,425 [DEBUG][       Thread-256041][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 13:16:17,426 [ INFO][       Thread-256041][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 13:16:17,429 [DEBUG][       Thread-256041][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 13:16:17,429 [DEBUG][       Thread-256041][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 13:16:17,429 [DEBUG][       Thread-256041][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 13:16:17,429 [DEBUG][       Thread-256041][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:16:17,429 [DEBUG][       Thread-256041][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:16:17,429 [DEBUG][       Thread-256041][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:16:17,429 [DEBUG][       Thread-256041][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:16:17,429 [DEBUG][       Thread-256041][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 13:16:17,429 [DEBUG][       Thread-256041][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 13:16:17,429 [DEBUG][       Thread-256041][   transport.py][1871] : client lang: <none>
2025-06-13 13:16:17,429 [DEBUG][       Thread-256041][   transport.py][1871] : server lang: <none>
2025-06-13 13:16:17,429 [DEBUG][       Thread-256041][   transport.py][1871] : kex follows: False
2025-06-13 13:16:17,430 [DEBUG][       Thread-256041][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 13:16:17,430 [DEBUG][       Thread-256041][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 13:16:17,430 [DEBUG][       Thread-256041][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 13:16:17,430 [DEBUG][       Thread-256041][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 13:16:17,430 [DEBUG][       Thread-256041][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 13:16:17,430 [DEBUG][       Thread-256041][   transport.py][1871] : Compression: none
2025-06-13 13:16:17,430 [DEBUG][       Thread-256041][   transport.py][1871] : === End of kex handshake ===
2025-06-13 13:16:17,447 [DEBUG][       Thread-256041][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 13:16:17,447 [DEBUG][       Thread-256041][   transport.py][1871] : Switch to new keys ...
2025-06-13 13:16:17,448 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 13:16:17,448 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 13:16:17,448 [DEBUG][       Thread-256041][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 13:16:17,449 [DEBUG][       Thread-256041][   transport.py][1871] : userauth is OK
2025-06-13 13:16:17,462 [ INFO][       Thread-256041][   transport.py][1871] : Authentication (password) successful!
2025-06-13 13:16:17,462 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 13:16:18,075 [DEBUG][       Thread-256041][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 13:16:18,075 [DEBUG][       Thread-256041][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 13:16:18,117 [DEBUG][       Thread-256041][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 13:16:18,117 [DEBUG][       Thread-256041][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 13:16:18,119 [DEBUG][       Thread-256041][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 13:16:18,132 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 13:16:18,132 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 13:16:18,134 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 13:16:18,135 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 13:16:18,138 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 13:16:18,139 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 13:16:18,139 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 13:16:18,139 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 13:16:18,139 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.469382 -999.00  +13.30  10.08     42   +0.70 1 1 1 1 1   888    0 13.19 15.05 ----- 12.7 10.1 31.6 16.7 18.2 -29.2 16.9 -30.2 17.0 -28.8 18.4 -27.7
2025-06-13 13:16:18,139 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 13:16:18,139 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 13:16:18,139 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.469382
2025-06-13 13:16:18,139 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 13:16:18,139 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 13:16:18,139 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 13:16:18,139 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 13:16:18,139 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 13:16:18,139 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T13:16:07', tmtdew=14.46, humidity=36.77, cloud=0.0, wind=15.39, temperature=13.15, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T11:15:54.605', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 13:16:18,140 [DEBUG][       Thread-256041][   transport.py][1871] : EOF in transport thread
2025-06-13 13:16:18,210 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 13:16:18,226 [DEBUG][       Thread-256044][   transport.py][1871] : starting thread (client mode): 0x863ca0b0
2025-06-13 13:16:18,226 [DEBUG][       Thread-256044][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 13:16:18,246 [DEBUG][       Thread-256044][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 13:16:18,246 [ INFO][       Thread-256044][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 13:16:18,254 [DEBUG][       Thread-256044][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 13:16:18,254 [DEBUG][       Thread-256044][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 13:16:18,254 [DEBUG][       Thread-256044][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 13:16:18,254 [DEBUG][       Thread-256044][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:16:18,254 [DEBUG][       Thread-256044][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:16:18,254 [DEBUG][       Thread-256044][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:16:18,255 [DEBUG][       Thread-256044][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:16:18,255 [DEBUG][       Thread-256044][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 13:16:18,255 [DEBUG][       Thread-256044][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 13:16:18,255 [DEBUG][       Thread-256044][   transport.py][1871] : client lang: <none>
2025-06-13 13:16:18,255 [DEBUG][       Thread-256044][   transport.py][1871] : server lang: <none>
2025-06-13 13:16:18,255 [DEBUG][       Thread-256044][   transport.py][1871] : kex follows: False
2025-06-13 13:16:18,255 [DEBUG][       Thread-256044][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 13:16:18,255 [DEBUG][       Thread-256044][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 13:16:18,255 [DEBUG][       Thread-256044][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 13:16:18,255 [DEBUG][       Thread-256044][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 13:16:18,255 [DEBUG][       Thread-256044][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 13:16:18,255 [DEBUG][       Thread-256044][   transport.py][1871] : Compression: none
2025-06-13 13:16:18,255 [DEBUG][       Thread-256044][   transport.py][1871] : === End of kex handshake ===
2025-06-13 13:16:18,314 [DEBUG][       Thread-256044][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 13:16:18,315 [DEBUG][       Thread-256044][   transport.py][1871] : Switch to new keys ...
2025-06-13 13:16:18,315 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 13:16:18,316 [DEBUG][       Thread-256044][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 13:16:18,317 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 13:16:18,370 [DEBUG][       Thread-256044][   transport.py][1871] : userauth is OK
2025-06-13 13:16:18,370 [DEBUG][       Thread-256044][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 13:16:18,370 [DEBUG][       Thread-256044][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 13:16:18,370 [DEBUG][       Thread-256044][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 13:16:18,371 [DEBUG][       Thread-256044][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 13:16:18,388 [ INFO][       Thread-256044][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 13:16:18,388 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 13:16:18,389 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 13:16:19,465 [DEBUG][       Thread-256044][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 13:16:19,465 [DEBUG][       Thread-256044][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 13:16:19,515 [DEBUG][       Thread-256044][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 13:16:19,515 [DEBUG][       Thread-256044][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 13:16:19,523 [DEBUG][       Thread-256044][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 13:16:19,531 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 13:16:19,531 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 13:16:19,539 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 13:16:19,547 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 13:16:19,547 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 13:16:19,547 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 13:16:19,555 [DEBUG][       Thread-256044][   transport.py][1871] : EOF in transport thread
2025-06-13 13:16:20,720 [DEBUG][Thread-256046 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:16:21,661 [DEBUG][Thread-256047 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:16:21,774 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:16:21,774 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:16:29,557 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 13:16:29,558 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 13:16:29,558 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 13:16:29,560 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 13:16:30,022 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 13, 16, 7), 14.46, 36.77, 0.0, 15.39, 13.15, 0, 0, 0, 2, 0, 0),)
2025-06-13 13:16:30,022 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 13:16:07
2025-06-13 13:16:30,102 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 13:16:30,106 [DEBUG][       Thread-256048][   transport.py][1871] : starting thread (client mode): 0x86393d00
2025-06-13 13:16:30,106 [DEBUG][       Thread-256048][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 13:16:30,126 [DEBUG][       Thread-256048][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 13:16:30,126 [ INFO][       Thread-256048][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 13:16:30,129 [DEBUG][       Thread-256048][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 13:16:30,129 [DEBUG][       Thread-256048][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 13:16:30,129 [DEBUG][       Thread-256048][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 13:16:30,129 [DEBUG][       Thread-256048][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:16:30,130 [DEBUG][       Thread-256048][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:16:30,130 [DEBUG][       Thread-256048][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:16:30,130 [DEBUG][       Thread-256048][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:16:30,130 [DEBUG][       Thread-256048][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 13:16:30,130 [DEBUG][       Thread-256048][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 13:16:30,130 [DEBUG][       Thread-256048][   transport.py][1871] : client lang: <none>
2025-06-13 13:16:30,130 [DEBUG][       Thread-256048][   transport.py][1871] : server lang: <none>
2025-06-13 13:16:30,130 [DEBUG][       Thread-256048][   transport.py][1871] : kex follows: False
2025-06-13 13:16:30,130 [DEBUG][       Thread-256048][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 13:16:30,130 [DEBUG][       Thread-256048][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 13:16:30,130 [DEBUG][       Thread-256048][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 13:16:30,130 [DEBUG][       Thread-256048][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 13:16:30,130 [DEBUG][       Thread-256048][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 13:16:30,130 [DEBUG][       Thread-256048][   transport.py][1871] : Compression: none
2025-06-13 13:16:30,130 [DEBUG][       Thread-256048][   transport.py][1871] : === End of kex handshake ===
2025-06-13 13:16:30,146 [DEBUG][       Thread-256048][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 13:16:30,147 [DEBUG][       Thread-256048][   transport.py][1871] : Switch to new keys ...
2025-06-13 13:16:30,147 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 13:16:30,147 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 13:16:30,148 [DEBUG][       Thread-256048][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 13:16:30,149 [DEBUG][       Thread-256048][   transport.py][1871] : userauth is OK
2025-06-13 13:16:30,175 [ INFO][       Thread-256048][   transport.py][1871] : Authentication (password) successful!
2025-06-13 13:16:30,175 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 13:16:30,688 [DEBUG][Thread-256050 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:16:30,815 [DEBUG][       Thread-256048][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 13:16:30,815 [DEBUG][       Thread-256048][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 13:16:30,857 [DEBUG][       Thread-256048][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 13:16:30,857 [DEBUG][       Thread-256048][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 13:16:30,861 [DEBUG][       Thread-256048][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 13:16:30,874 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 13:16:30,875 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 13:16:30,877 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 13:16:30,879 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 13:16:30,884 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 13:16:30,886 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 13:16:30,887 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 13:16:30,887 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 13:16:30,888 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.469382 -999.00  +13.30  10.08     42   +0.70 1 1 1 1 1   888    0 13.19 15.05 ----- 12.7 10.1 31.6 16.7 18.2 -29.2 16.9 -30.2 17.0 -28.8 18.4 -27.7
2025-06-13 13:16:30,888 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 13:16:30,888 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 13:16:30,888 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.469382
2025-06-13 13:16:30,888 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 13:16:30,889 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 13:16:30,889 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 13:16:30,889 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 13:16:30,889 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 13:16:30,889 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T13:16:07', tmtdew=14.46, humidity=36.77, cloud=0.0, wind=15.39, temperature=13.15, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T11:15:54.605', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 13:16:30,890 [DEBUG][       Thread-256048][   transport.py][1871] : EOF in transport thread
2025-06-13 13:16:30,974 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 13:16:30,991 [DEBUG][       Thread-256052][   transport.py][1871] : starting thread (client mode): 0x863be620
2025-06-13 13:16:30,991 [DEBUG][       Thread-256052][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 13:16:31,006 [DEBUG][       Thread-256052][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 13:16:31,006 [ INFO][       Thread-256052][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 13:16:31,013 [DEBUG][       Thread-256052][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 13:16:31,014 [DEBUG][       Thread-256052][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 13:16:31,014 [DEBUG][       Thread-256052][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 13:16:31,014 [DEBUG][       Thread-256052][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:16:31,014 [DEBUG][       Thread-256052][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:16:31,014 [DEBUG][       Thread-256052][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:16:31,014 [DEBUG][       Thread-256052][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:16:31,014 [DEBUG][       Thread-256052][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 13:16:31,014 [DEBUG][       Thread-256052][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 13:16:31,014 [DEBUG][       Thread-256052][   transport.py][1871] : client lang: <none>
2025-06-13 13:16:31,014 [DEBUG][       Thread-256052][   transport.py][1871] : server lang: <none>
2025-06-13 13:16:31,014 [DEBUG][       Thread-256052][   transport.py][1871] : kex follows: False
2025-06-13 13:16:31,014 [DEBUG][       Thread-256052][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 13:16:31,014 [DEBUG][       Thread-256052][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 13:16:31,014 [DEBUG][       Thread-256052][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 13:16:31,014 [DEBUG][       Thread-256052][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 13:16:31,014 [DEBUG][       Thread-256052][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 13:16:31,014 [DEBUG][       Thread-256052][   transport.py][1871] : Compression: none
2025-06-13 13:16:31,015 [DEBUG][       Thread-256052][   transport.py][1871] : === End of kex handshake ===
2025-06-13 13:16:31,070 [DEBUG][       Thread-256052][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 13:16:31,071 [DEBUG][       Thread-256052][   transport.py][1871] : Switch to new keys ...
2025-06-13 13:16:31,071 [DEBUG][       Thread-256052][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 13:16:31,072 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 13:16:31,072 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 13:16:31,126 [DEBUG][       Thread-256052][   transport.py][1871] : userauth is OK
2025-06-13 13:16:31,127 [DEBUG][       Thread-256052][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 13:16:31,127 [DEBUG][       Thread-256052][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 13:16:31,127 [DEBUG][       Thread-256052][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 13:16:31,127 [DEBUG][       Thread-256052][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 13:16:31,145 [ INFO][       Thread-256052][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 13:16:31,146 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 13:16:31,146 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 13:16:32,153 [DEBUG][       Thread-256052][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 13:16:32,154 [DEBUG][       Thread-256052][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 13:16:32,204 [DEBUG][       Thread-256052][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 13:16:32,204 [DEBUG][       Thread-256052][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 13:16:32,214 [DEBUG][       Thread-256052][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 13:16:32,223 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 13:16:32,223 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 13:16:32,232 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 13:16:32,241 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 13:16:32,242 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 13:16:32,242 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 13:16:32,250 [DEBUG][       Thread-256052][   transport.py][1871] : EOF in transport thread
2025-06-13 13:16:39,712 [DEBUG][Thread-256054 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:16:42,252 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 13:16:42,253 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 13:16:42,253 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 13:16:42,255 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 13:16:42,727 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 13, 16, 39), 14.52, 36.78, 0.0, 16.36, 13.14, 0, 0, 0, 2, 0, 0),)
2025-06-13 13:16:42,727 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 13:16:39
2025-06-13 13:16:42,806 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 13:16:42,812 [DEBUG][       Thread-256055][   transport.py][1871] : starting thread (client mode): 0x867ff580
2025-06-13 13:16:42,812 [DEBUG][       Thread-256055][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 13:16:42,835 [DEBUG][       Thread-256055][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 13:16:42,835 [ INFO][       Thread-256055][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 13:16:42,838 [DEBUG][       Thread-256055][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 13:16:42,838 [DEBUG][       Thread-256055][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 13:16:42,838 [DEBUG][       Thread-256055][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 13:16:42,838 [DEBUG][       Thread-256055][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:16:42,838 [DEBUG][       Thread-256055][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:16:42,838 [DEBUG][       Thread-256055][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:16:42,838 [DEBUG][       Thread-256055][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:16:42,838 [DEBUG][       Thread-256055][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 13:16:42,838 [DEBUG][       Thread-256055][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 13:16:42,839 [DEBUG][       Thread-256055][   transport.py][1871] : client lang: <none>
2025-06-13 13:16:42,839 [DEBUG][       Thread-256055][   transport.py][1871] : server lang: <none>
2025-06-13 13:16:42,839 [DEBUG][       Thread-256055][   transport.py][1871] : kex follows: False
2025-06-13 13:16:42,839 [DEBUG][       Thread-256055][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 13:16:42,839 [DEBUG][       Thread-256055][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 13:16:42,839 [DEBUG][       Thread-256055][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 13:16:42,839 [DEBUG][       Thread-256055][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 13:16:42,839 [DEBUG][       Thread-256055][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 13:16:42,839 [DEBUG][       Thread-256055][   transport.py][1871] : Compression: none
2025-06-13 13:16:42,839 [DEBUG][       Thread-256055][   transport.py][1871] : === End of kex handshake ===
2025-06-13 13:16:42,856 [DEBUG][       Thread-256055][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 13:16:42,857 [DEBUG][       Thread-256055][   transport.py][1871] : Switch to new keys ...
2025-06-13 13:16:42,858 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 13:16:42,858 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 13:16:42,858 [DEBUG][       Thread-256055][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 13:16:42,859 [DEBUG][       Thread-256055][   transport.py][1871] : userauth is OK
2025-06-13 13:16:42,872 [ INFO][       Thread-256055][   transport.py][1871] : Authentication (password) successful!
2025-06-13 13:16:42,873 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 13:16:43,518 [DEBUG][       Thread-256055][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 13:16:43,518 [DEBUG][       Thread-256055][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 13:16:43,561 [DEBUG][       Thread-256055][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 13:16:43,561 [DEBUG][       Thread-256055][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 13:16:43,565 [DEBUG][       Thread-256055][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 13:16:43,577 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 13:16:43,578 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 13:16:43,579 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 13:16:43,581 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 13:16:43,587 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 13:16:43,589 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 13:16:43,589 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 13:16:43,590 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 13:16:43,590 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.469729 -999.00  +13.50  17.88     41   +0.70 1 1 1 1 1   888    0 13.06 15.90 ----- 18.5 17.9 48.2 20.8 18.3 -29.3 16.9 -30.6 17.1 -28.9 18.4 -27.7
2025-06-13 13:16:43,590 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 13:16:43,590 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 13:16:43,590 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.469729
2025-06-13 13:16:43,591 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 13:16:43,591 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 13:16:43,591 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 13:16:43,591 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 13:16:43,591 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 13:16:43,592 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T13:16:39', tmtdew=14.52, humidity=36.78, cloud=0.0, wind=16.36, temperature=13.14, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T11:16:24.586', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 13:16:43,593 [DEBUG][       Thread-256055][   transport.py][1871] : EOF in transport thread
2025-06-13 13:16:43,674 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 13:16:48,735 [DEBUG][Thread-256058 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:16:50,797 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:16:50,798 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:16:57,770 [DEBUG][Thread-256059 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:17:06,787 [DEBUG][Thread-256060 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:17:14,628 [DEBUG][Thread-256061 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:17:15,809 [DEBUG][Thread-256062 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:17:21,824 [DEBUG][Thread-256063 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:17:22,901 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:17:22,902 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:17:24,830 [DEBUG][Thread-256064 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:17:33,851 [DEBUG][Thread-256065 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:17:42,871 [DEBUG][Thread-256066 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:17:50,940 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:17:50,941 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:17:51,892 [DEBUG][Thread-256067 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:18:00,914 [DEBUG][Thread-256068 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:18:09,938 [DEBUG][Thread-256069 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:18:14,673 [DEBUG][Thread-256070 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:18:18,957 [DEBUG][Thread-256071 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:18:22,928 [DEBUG][Thread-256072 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:18:24,011 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:18:24,012 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:18:27,978 [DEBUG][Thread-256073 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:18:37,001 [DEBUG][Thread-256074 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:18:46,023 [DEBUG][Thread-256075 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:18:51,076 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:18:51,077 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:18:52,948 [WARNING][ poll_weather_worker][      driver.py][ 286] : Unable to open ssh connection for writing weather state to io.saao.ac.za: [Errno 110] Connection timed out
2025-06-13 13:18:55,043 [DEBUG][Thread-256076 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:19:02,958 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 13:19:02,959 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 13:19:02,959 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 13:19:02,962 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 13:19:03,430 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 13, 18, 46), 14.23, 37.41, 0.0, 10.8, 13.16, 0, 0, 0, 2, 0, 0),)
2025-06-13 13:19:03,431 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 13:18:46
2025-06-13 13:19:03,510 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 13:19:03,517 [DEBUG][       Thread-256077][   transport.py][1871] : starting thread (client mode): 0x84205360
2025-06-13 13:19:03,517 [DEBUG][       Thread-256077][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 13:19:03,534 [DEBUG][       Thread-256077][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 13:19:03,534 [ INFO][       Thread-256077][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 13:19:03,537 [DEBUG][       Thread-256077][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 13:19:03,537 [DEBUG][       Thread-256077][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 13:19:03,537 [DEBUG][       Thread-256077][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 13:19:03,537 [DEBUG][       Thread-256077][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:19:03,537 [DEBUG][       Thread-256077][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:19:03,537 [DEBUG][       Thread-256077][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:19:03,537 [DEBUG][       Thread-256077][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:19:03,537 [DEBUG][       Thread-256077][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 13:19:03,538 [DEBUG][       Thread-256077][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 13:19:03,538 [DEBUG][       Thread-256077][   transport.py][1871] : client lang: <none>
2025-06-13 13:19:03,538 [DEBUG][       Thread-256077][   transport.py][1871] : server lang: <none>
2025-06-13 13:19:03,538 [DEBUG][       Thread-256077][   transport.py][1871] : kex follows: False
2025-06-13 13:19:03,538 [DEBUG][       Thread-256077][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 13:19:03,538 [DEBUG][       Thread-256077][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 13:19:03,538 [DEBUG][       Thread-256077][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 13:19:03,538 [DEBUG][       Thread-256077][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 13:19:03,538 [DEBUG][       Thread-256077][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 13:19:03,538 [DEBUG][       Thread-256077][   transport.py][1871] : Compression: none
2025-06-13 13:19:03,538 [DEBUG][       Thread-256077][   transport.py][1871] : === End of kex handshake ===
2025-06-13 13:19:03,554 [DEBUG][       Thread-256077][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 13:19:03,555 [DEBUG][       Thread-256077][   transport.py][1871] : Switch to new keys ...
2025-06-13 13:19:03,555 [DEBUG][       Thread-256077][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 13:19:03,556 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 13:19:03,556 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 13:19:03,557 [DEBUG][       Thread-256077][   transport.py][1871] : userauth is OK
2025-06-13 13:19:03,571 [ INFO][       Thread-256077][   transport.py][1871] : Authentication (password) successful!
2025-06-13 13:19:03,571 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 13:19:04,063 [DEBUG][Thread-256079 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:19:04,185 [DEBUG][       Thread-256077][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 13:19:04,185 [DEBUG][       Thread-256077][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 13:19:04,229 [DEBUG][       Thread-256077][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 13:19:04,229 [DEBUG][       Thread-256077][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 13:19:04,233 [DEBUG][       Thread-256077][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 13:19:04,244 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 13:19:04,244 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 13:19:04,247 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 13:19:04,248 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 13:19:04,255 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 13:19:04,257 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 13:19:04,257 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 13:19:04,258 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 13:19:04,258 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.471118 -999.00  +13.20  10.81     41   +0.40 1 1 1 1 1   888    0 13.17 21.50 ----- 15.1 10.8 46.0 16.2 18.4 -29.7 17.1 -30.6 17.1 -28.6 18.5 -27.3
2025-06-13 13:19:04,258 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 13:19:04,258 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 13:19:04,258 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.471118
2025-06-13 13:19:04,259 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 13:19:04,259 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 13:19:04,259 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 13:19:04,259 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 13:19:04,259 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 13:19:04,260 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T13:18:46', tmtdew=14.23, humidity=37.41, cloud=0.0, wind=10.8, temperature=13.16, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T11:18:24.595', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 13:19:04,261 [DEBUG][       Thread-256077][   transport.py][1871] : EOF in transport thread
2025-06-13 13:19:04,343 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 13:19:04,355 [DEBUG][       Thread-256081][   transport.py][1871] : starting thread (client mode): 0x86893ca0
2025-06-13 13:19:04,355 [DEBUG][       Thread-256081][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 13:19:04,370 [DEBUG][       Thread-256081][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 13:19:04,370 [ INFO][       Thread-256081][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 13:19:04,379 [DEBUG][       Thread-256081][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 13:19:04,379 [DEBUG][       Thread-256081][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 13:19:04,379 [DEBUG][       Thread-256081][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 13:19:04,380 [DEBUG][       Thread-256081][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:19:04,380 [DEBUG][       Thread-256081][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:19:04,380 [DEBUG][       Thread-256081][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:19:04,380 [DEBUG][       Thread-256081][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:19:04,380 [DEBUG][       Thread-256081][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 13:19:04,380 [DEBUG][       Thread-256081][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 13:19:04,380 [DEBUG][       Thread-256081][   transport.py][1871] : client lang: <none>
2025-06-13 13:19:04,380 [DEBUG][       Thread-256081][   transport.py][1871] : server lang: <none>
2025-06-13 13:19:04,380 [DEBUG][       Thread-256081][   transport.py][1871] : kex follows: False
2025-06-13 13:19:04,380 [DEBUG][       Thread-256081][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 13:19:04,380 [DEBUG][       Thread-256081][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 13:19:04,380 [DEBUG][       Thread-256081][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 13:19:04,380 [DEBUG][       Thread-256081][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 13:19:04,380 [DEBUG][       Thread-256081][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 13:19:04,380 [DEBUG][       Thread-256081][   transport.py][1871] : Compression: none
2025-06-13 13:19:04,380 [DEBUG][       Thread-256081][   transport.py][1871] : === End of kex handshake ===
2025-06-13 13:19:04,443 [DEBUG][       Thread-256081][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 13:19:04,443 [DEBUG][       Thread-256081][   transport.py][1871] : Switch to new keys ...
2025-06-13 13:19:04,444 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 13:19:04,444 [DEBUG][       Thread-256081][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 13:19:04,446 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 13:19:04,504 [DEBUG][       Thread-256081][   transport.py][1871] : userauth is OK
2025-06-13 13:19:04,504 [DEBUG][       Thread-256081][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 13:19:04,505 [DEBUG][       Thread-256081][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 13:19:04,505 [DEBUG][       Thread-256081][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 13:19:04,505 [DEBUG][       Thread-256081][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 13:19:04,527 [ INFO][       Thread-256081][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 13:19:04,528 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 13:19:04,528 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 13:19:05,591 [DEBUG][       Thread-256081][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 13:19:05,591 [DEBUG][       Thread-256081][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 13:19:05,641 [DEBUG][       Thread-256081][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 13:19:05,642 [DEBUG][       Thread-256081][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 13:19:05,653 [DEBUG][       Thread-256081][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 13:19:05,664 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 13:19:05,664 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 13:19:05,674 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 13:19:05,685 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 13:19:05,685 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 13:19:05,686 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 13:19:05,696 [DEBUG][       Thread-256081][   transport.py][1871] : EOF in transport thread
2025-06-13 13:19:13,085 [DEBUG][Thread-256083 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:19:14,733 [DEBUG][Thread-256084 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:19:15,696 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 13:19:15,697 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 13:19:15,697 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 13:19:15,700 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 13:19:16,173 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 13, 18, 46), 14.23, 37.41, 0.0, 10.8, 13.16, 0, 0, 0, 2, 0, 0),)
2025-06-13 13:19:16,173 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 13:18:46
2025-06-13 13:19:16,252 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 13:19:16,258 [DEBUG][       Thread-256085][   transport.py][1871] : starting thread (client mode): 0x84205f90
2025-06-13 13:19:16,258 [DEBUG][       Thread-256085][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 13:19:16,278 [DEBUG][       Thread-256085][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 13:19:16,278 [ INFO][       Thread-256085][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 13:19:16,282 [DEBUG][       Thread-256085][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 13:19:16,282 [DEBUG][       Thread-256085][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 13:19:16,282 [DEBUG][       Thread-256085][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 13:19:16,282 [DEBUG][       Thread-256085][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:19:16,282 [DEBUG][       Thread-256085][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:19:16,282 [DEBUG][       Thread-256085][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:19:16,282 [DEBUG][       Thread-256085][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:19:16,282 [DEBUG][       Thread-256085][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 13:19:16,282 [DEBUG][       Thread-256085][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 13:19:16,282 [DEBUG][       Thread-256085][   transport.py][1871] : client lang: <none>
2025-06-13 13:19:16,282 [DEBUG][       Thread-256085][   transport.py][1871] : server lang: <none>
2025-06-13 13:19:16,282 [DEBUG][       Thread-256085][   transport.py][1871] : kex follows: False
2025-06-13 13:19:16,283 [DEBUG][       Thread-256085][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 13:19:16,283 [DEBUG][       Thread-256085][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 13:19:16,283 [DEBUG][       Thread-256085][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 13:19:16,283 [DEBUG][       Thread-256085][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 13:19:16,283 [DEBUG][       Thread-256085][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 13:19:16,283 [DEBUG][       Thread-256085][   transport.py][1871] : Compression: none
2025-06-13 13:19:16,283 [DEBUG][       Thread-256085][   transport.py][1871] : === End of kex handshake ===
2025-06-13 13:19:16,301 [DEBUG][       Thread-256085][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 13:19:16,302 [DEBUG][       Thread-256085][   transport.py][1871] : Switch to new keys ...
2025-06-13 13:19:16,302 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 13:19:16,303 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 13:19:16,303 [DEBUG][       Thread-256085][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 13:19:16,304 [DEBUG][       Thread-256085][   transport.py][1871] : userauth is OK
2025-06-13 13:19:16,351 [ INFO][       Thread-256085][   transport.py][1871] : Authentication (password) successful!
2025-06-13 13:19:16,352 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 13:19:16,992 [DEBUG][       Thread-256085][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 13:19:16,993 [DEBUG][       Thread-256085][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 13:19:17,033 [DEBUG][       Thread-256085][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 13:19:17,033 [DEBUG][       Thread-256085][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 13:19:17,036 [DEBUG][       Thread-256085][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 13:19:17,048 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 13:19:17,048 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 13:19:17,051 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 13:19:17,053 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 13:19:17,059 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 13:19:17,061 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 13:19:17,061 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 13:19:17,062 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 13:19:17,062 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.471118 -999.00  +13.20  10.81     41   +0.40 1 1 1 1 1   888    0 13.17 21.50 ----- 15.1 10.8 46.0 16.2 18.4 -29.7 17.1 -30.6 17.1 -28.6 18.5 -27.3
2025-06-13 13:19:17,062 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 13:19:17,062 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 13:19:17,062 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.471118
2025-06-13 13:19:17,063 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 13:19:17,063 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 13:19:17,064 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 13:19:17,064 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 13:19:17,064 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 13:19:17,064 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T13:18:46', tmtdew=14.23, humidity=37.41, cloud=0.0, wind=10.8, temperature=13.16, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T11:18:24.595', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 13:19:17,065 [DEBUG][       Thread-256085][   transport.py][1871] : EOF in transport thread
2025-06-13 13:19:17,147 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 13:19:17,160 [DEBUG][       Thread-256088][   transport.py][1871] : starting thread (client mode): 0x86893fd0
2025-06-13 13:19:17,160 [DEBUG][       Thread-256088][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 13:19:17,177 [DEBUG][       Thread-256088][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 13:19:17,177 [ INFO][       Thread-256088][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 13:19:17,188 [DEBUG][       Thread-256088][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 13:19:17,188 [DEBUG][       Thread-256088][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 13:19:17,188 [DEBUG][       Thread-256088][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 13:19:17,188 [DEBUG][       Thread-256088][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:19:17,188 [DEBUG][       Thread-256088][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:19:17,188 [DEBUG][       Thread-256088][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:19:17,189 [DEBUG][       Thread-256088][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:19:17,189 [DEBUG][       Thread-256088][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 13:19:17,189 [DEBUG][       Thread-256088][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 13:19:17,189 [DEBUG][       Thread-256088][   transport.py][1871] : client lang: <none>
2025-06-13 13:19:17,189 [DEBUG][       Thread-256088][   transport.py][1871] : server lang: <none>
2025-06-13 13:19:17,189 [DEBUG][       Thread-256088][   transport.py][1871] : kex follows: False
2025-06-13 13:19:17,189 [DEBUG][       Thread-256088][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 13:19:17,189 [DEBUG][       Thread-256088][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 13:19:17,189 [DEBUG][       Thread-256088][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 13:19:17,189 [DEBUG][       Thread-256088][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 13:19:17,189 [DEBUG][       Thread-256088][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 13:19:17,189 [DEBUG][       Thread-256088][   transport.py][1871] : Compression: none
2025-06-13 13:19:17,189 [DEBUG][       Thread-256088][   transport.py][1871] : === End of kex handshake ===
2025-06-13 13:19:17,250 [DEBUG][       Thread-256088][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 13:19:17,250 [DEBUG][       Thread-256088][   transport.py][1871] : Switch to new keys ...
2025-06-13 13:19:17,251 [DEBUG][       Thread-256088][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 13:19:17,251 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 13:19:17,252 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 13:19:17,308 [DEBUG][       Thread-256088][   transport.py][1871] : userauth is OK
2025-06-13 13:19:17,309 [DEBUG][       Thread-256088][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 13:19:17,309 [DEBUG][       Thread-256088][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 13:19:17,309 [DEBUG][       Thread-256088][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 13:19:17,309 [DEBUG][       Thread-256088][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 13:19:17,328 [ INFO][       Thread-256088][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 13:19:17,328 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 13:19:17,329 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 13:19:18,378 [DEBUG][       Thread-256088][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 13:19:18,379 [DEBUG][       Thread-256088][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 13:19:18,428 [DEBUG][       Thread-256088][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 13:19:18,429 [DEBUG][       Thread-256088][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 13:19:18,438 [DEBUG][       Thread-256088][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 13:19:18,447 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 13:19:18,448 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 13:19:18,457 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 13:19:18,466 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 13:19:18,466 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 13:19:18,467 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 13:19:18,475 [DEBUG][       Thread-256088][   transport.py][1871] : EOF in transport thread
2025-06-13 13:19:22,126 [DEBUG][Thread-256090 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:19:24,043 [DEBUG][Thread-256091 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:19:25,121 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:19:25,122 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:19:28,477 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 13:19:28,478 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 13:19:28,478 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 13:19:28,480 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 13:19:28,946 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 13, 19, 18), 14.6, 36.48, 0.0, 17.12, 13.28, 0, 0, 0, 2, 0, 0),)
2025-06-13 13:19:28,946 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 13:19:18
2025-06-13 13:19:29,026 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 13:19:29,030 [DEBUG][       Thread-256092][   transport.py][1871] : starting thread (client mode): 0x84204070
2025-06-13 13:19:29,030 [DEBUG][       Thread-256092][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 13:19:29,050 [DEBUG][       Thread-256092][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 13:19:29,050 [ INFO][       Thread-256092][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 13:19:29,053 [DEBUG][       Thread-256092][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 13:19:29,054 [DEBUG][       Thread-256092][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 13:19:29,054 [DEBUG][       Thread-256092][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 13:19:29,054 [DEBUG][       Thread-256092][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:19:29,054 [DEBUG][       Thread-256092][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:19:29,054 [DEBUG][       Thread-256092][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:19:29,054 [DEBUG][       Thread-256092][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:19:29,054 [DEBUG][       Thread-256092][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 13:19:29,054 [DEBUG][       Thread-256092][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 13:19:29,054 [DEBUG][       Thread-256092][   transport.py][1871] : client lang: <none>
2025-06-13 13:19:29,054 [DEBUG][       Thread-256092][   transport.py][1871] : server lang: <none>
2025-06-13 13:19:29,054 [DEBUG][       Thread-256092][   transport.py][1871] : kex follows: False
2025-06-13 13:19:29,054 [DEBUG][       Thread-256092][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 13:19:29,054 [DEBUG][       Thread-256092][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 13:19:29,054 [DEBUG][       Thread-256092][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 13:19:29,054 [DEBUG][       Thread-256092][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 13:19:29,054 [DEBUG][       Thread-256092][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 13:19:29,054 [DEBUG][       Thread-256092][   transport.py][1871] : Compression: none
2025-06-13 13:19:29,054 [DEBUG][       Thread-256092][   transport.py][1871] : === End of kex handshake ===
2025-06-13 13:19:29,069 [DEBUG][       Thread-256092][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 13:19:29,070 [DEBUG][       Thread-256092][   transport.py][1871] : Switch to new keys ...
2025-06-13 13:19:29,070 [DEBUG][       Thread-256092][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 13:19:29,071 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 13:19:29,071 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 13:19:29,072 [DEBUG][       Thread-256092][   transport.py][1871] : userauth is OK
2025-06-13 13:19:29,097 [ INFO][       Thread-256092][   transport.py][1871] : Authentication (password) successful!
2025-06-13 13:19:29,098 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 13:19:29,753 [DEBUG][       Thread-256092][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 13:19:29,754 [DEBUG][       Thread-256092][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 13:19:29,797 [DEBUG][       Thread-256092][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 13:19:29,797 [DEBUG][       Thread-256092][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 13:19:29,800 [DEBUG][       Thread-256092][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 13:19:29,812 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 13:19:29,812 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 13:19:29,814 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 13:19:29,816 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 13:19:29,823 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 13:19:29,825 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 13:19:29,825 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 13:19:29,826 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 13:19:29,826 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.471465 -999.00  +13.60  10.68     41   +0.50 1 1 1 1 1   888    0 13.34 24.53 ----- 15.7 10.7 4.1 20.8 18.4 -29.3 17.1 -31.4 17.1 -28.7 18.5 -28.7
2025-06-13 13:19:29,826 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 13:19:29,826 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 13:19:29,826 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.471465
2025-06-13 13:19:29,826 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 13:19:29,827 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 13:19:29,827 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 13:19:29,827 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 13:19:29,827 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 13:19:29,827 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T13:19:18', tmtdew=14.6, humidity=36.48, cloud=0.0, wind=17.12, temperature=13.28, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T11:18:54.576', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 13:19:29,828 [DEBUG][       Thread-256092][   transport.py][1871] : EOF in transport thread
2025-06-13 13:19:29,911 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 13:19:29,920 [DEBUG][       Thread-256095][   transport.py][1871] : starting thread (client mode): 0x86369ab0
2025-06-13 13:19:29,920 [DEBUG][       Thread-256095][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 13:19:29,936 [DEBUG][       Thread-256095][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 13:19:29,936 [ INFO][       Thread-256095][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 13:19:29,943 [DEBUG][       Thread-256095][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 13:19:29,944 [DEBUG][       Thread-256095][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 13:19:29,944 [DEBUG][       Thread-256095][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 13:19:29,944 [DEBUG][       Thread-256095][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:19:29,944 [DEBUG][       Thread-256095][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:19:29,944 [DEBUG][       Thread-256095][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:19:29,944 [DEBUG][       Thread-256095][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:19:29,944 [DEBUG][       Thread-256095][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 13:19:29,944 [DEBUG][       Thread-256095][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 13:19:29,944 [DEBUG][       Thread-256095][   transport.py][1871] : client lang: <none>
2025-06-13 13:19:29,944 [DEBUG][       Thread-256095][   transport.py][1871] : server lang: <none>
2025-06-13 13:19:29,944 [DEBUG][       Thread-256095][   transport.py][1871] : kex follows: False
2025-06-13 13:19:29,944 [DEBUG][       Thread-256095][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 13:19:29,944 [DEBUG][       Thread-256095][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 13:19:29,944 [DEBUG][       Thread-256095][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 13:19:29,944 [DEBUG][       Thread-256095][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 13:19:29,944 [DEBUG][       Thread-256095][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 13:19:29,944 [DEBUG][       Thread-256095][   transport.py][1871] : Compression: none
2025-06-13 13:19:29,944 [DEBUG][       Thread-256095][   transport.py][1871] : === End of kex handshake ===
2025-06-13 13:19:30,003 [DEBUG][       Thread-256095][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 13:19:30,003 [DEBUG][       Thread-256095][   transport.py][1871] : Switch to new keys ...
2025-06-13 13:19:30,004 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 13:19:30,005 [DEBUG][       Thread-256095][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 13:19:30,005 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 13:19:30,058 [DEBUG][       Thread-256095][   transport.py][1871] : userauth is OK
2025-06-13 13:19:30,059 [DEBUG][       Thread-256095][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 13:19:30,059 [DEBUG][       Thread-256095][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 13:19:30,059 [DEBUG][       Thread-256095][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 13:19:30,059 [DEBUG][       Thread-256095][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 13:19:30,078 [ INFO][       Thread-256095][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 13:19:30,078 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 13:19:30,079 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 13:19:31,076 [DEBUG][       Thread-256095][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 13:19:31,076 [DEBUG][       Thread-256095][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 13:19:31,131 [DEBUG][       Thread-256095][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 13:19:31,131 [DEBUG][       Thread-256095][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 13:19:31,140 [DEBUG][       Thread-256095][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 13:19:31,147 [DEBUG][Thread-256097 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:19:31,148 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 13:19:31,148 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 13:19:31,157 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 13:19:31,165 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 13:19:31,165 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 13:19:31,165 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 13:19:31,173 [DEBUG][       Thread-256095][   transport.py][1871] : EOF in transport thread
2025-06-13 13:19:40,172 [DEBUG][Thread-256098 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:19:41,175 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 13:19:41,175 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 13:19:41,176 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 13:19:41,178 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 13:19:41,654 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 13, 19, 18), 14.6, 36.48, 0.0, 17.12, 13.28, 0, 0, 0, 2, 0, 0),)
2025-06-13 13:19:41,654 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 13:19:18
2025-06-13 13:19:41,733 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 13:19:41,739 [DEBUG][       Thread-256099][   transport.py][1871] : starting thread (client mode): 0x86368d90
2025-06-13 13:19:41,739 [DEBUG][       Thread-256099][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 13:19:41,760 [DEBUG][       Thread-256099][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 13:19:41,760 [ INFO][       Thread-256099][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 13:19:41,764 [DEBUG][       Thread-256099][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 13:19:41,764 [DEBUG][       Thread-256099][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 13:19:41,764 [DEBUG][       Thread-256099][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 13:19:41,764 [DEBUG][       Thread-256099][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:19:41,764 [DEBUG][       Thread-256099][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:19:41,764 [DEBUG][       Thread-256099][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:19:41,764 [DEBUG][       Thread-256099][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:19:41,764 [DEBUG][       Thread-256099][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 13:19:41,764 [DEBUG][       Thread-256099][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 13:19:41,764 [DEBUG][       Thread-256099][   transport.py][1871] : client lang: <none>
2025-06-13 13:19:41,764 [DEBUG][       Thread-256099][   transport.py][1871] : server lang: <none>
2025-06-13 13:19:41,764 [DEBUG][       Thread-256099][   transport.py][1871] : kex follows: False
2025-06-13 13:19:41,764 [DEBUG][       Thread-256099][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 13:19:41,764 [DEBUG][       Thread-256099][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 13:19:41,764 [DEBUG][       Thread-256099][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 13:19:41,764 [DEBUG][       Thread-256099][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 13:19:41,764 [DEBUG][       Thread-256099][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 13:19:41,764 [DEBUG][       Thread-256099][   transport.py][1871] : Compression: none
2025-06-13 13:19:41,764 [DEBUG][       Thread-256099][   transport.py][1871] : === End of kex handshake ===
2025-06-13 13:19:41,781 [DEBUG][       Thread-256099][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 13:19:41,782 [DEBUG][       Thread-256099][   transport.py][1871] : Switch to new keys ...
2025-06-13 13:19:41,782 [DEBUG][       Thread-256099][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 13:19:41,782 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 13:19:41,783 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 13:19:41,784 [DEBUG][       Thread-256099][   transport.py][1871] : userauth is OK
2025-06-13 13:19:41,796 [ INFO][       Thread-256099][   transport.py][1871] : Authentication (password) successful!
2025-06-13 13:19:41,797 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 13:19:42,453 [DEBUG][       Thread-256099][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 13:19:42,453 [DEBUG][       Thread-256099][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 13:19:42,497 [DEBUG][       Thread-256099][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 13:19:42,497 [DEBUG][       Thread-256099][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 13:19:42,500 [DEBUG][       Thread-256099][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 13:19:42,512 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 13:19:42,512 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 13:19:42,514 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 13:19:42,516 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 13:19:42,522 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 13:19:42,524 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 13:19:42,524 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 13:19:42,525 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 13:19:42,525 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.471465 -999.00  +13.60  10.68     41   +0.50 1 1 1 1 1   888    0 13.34 24.53 ----- 15.7 10.7 4.1 20.8 18.4 -29.3 17.1 -31.4 17.1 -28.7 18.5 -28.7
2025-06-13 13:19:42,525 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 13:19:42,525 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 13:19:42,525 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.471465
2025-06-13 13:19:42,526 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 13:19:42,526 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 13:19:42,526 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 13:19:42,526 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 13:19:42,527 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 13:19:42,527 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T13:19:18', tmtdew=14.6, humidity=36.48, cloud=0.0, wind=17.12, temperature=13.28, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T11:18:54.576', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 13:19:42,528 [DEBUG][       Thread-256099][   transport.py][1871] : EOF in transport thread
2025-06-13 13:19:42,603 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 13:19:42,616 [DEBUG][       Thread-256102][   transport.py][1871] : starting thread (client mode): 0x863eeb60
2025-06-13 13:19:42,616 [DEBUG][       Thread-256102][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 13:19:42,635 [DEBUG][       Thread-256102][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 13:19:42,635 [ INFO][       Thread-256102][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 13:19:42,643 [DEBUG][       Thread-256102][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 13:19:42,644 [DEBUG][       Thread-256102][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 13:19:42,644 [DEBUG][       Thread-256102][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 13:19:42,644 [DEBUG][       Thread-256102][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:19:42,644 [DEBUG][       Thread-256102][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:19:42,644 [DEBUG][       Thread-256102][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:19:42,644 [DEBUG][       Thread-256102][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:19:42,644 [DEBUG][       Thread-256102][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 13:19:42,644 [DEBUG][       Thread-256102][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 13:19:42,644 [DEBUG][       Thread-256102][   transport.py][1871] : client lang: <none>
2025-06-13 13:19:42,644 [DEBUG][       Thread-256102][   transport.py][1871] : server lang: <none>
2025-06-13 13:19:42,644 [DEBUG][       Thread-256102][   transport.py][1871] : kex follows: False
2025-06-13 13:19:42,644 [DEBUG][       Thread-256102][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 13:19:42,644 [DEBUG][       Thread-256102][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 13:19:42,644 [DEBUG][       Thread-256102][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 13:19:42,644 [DEBUG][       Thread-256102][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 13:19:42,644 [DEBUG][       Thread-256102][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 13:19:42,645 [DEBUG][       Thread-256102][   transport.py][1871] : Compression: none
2025-06-13 13:19:42,645 [DEBUG][       Thread-256102][   transport.py][1871] : === End of kex handshake ===
2025-06-13 13:19:42,705 [DEBUG][       Thread-256102][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 13:19:42,706 [DEBUG][       Thread-256102][   transport.py][1871] : Switch to new keys ...
2025-06-13 13:19:42,707 [DEBUG][       Thread-256102][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 13:19:42,707 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 13:19:42,708 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 13:19:42,762 [DEBUG][       Thread-256102][   transport.py][1871] : userauth is OK
2025-06-13 13:19:42,762 [DEBUG][       Thread-256102][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 13:19:42,763 [DEBUG][       Thread-256102][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 13:19:42,763 [DEBUG][       Thread-256102][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 13:19:42,763 [DEBUG][       Thread-256102][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 13:19:42,781 [ INFO][       Thread-256102][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 13:19:42,782 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 13:19:42,782 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 13:19:43,776 [DEBUG][       Thread-256102][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 13:19:43,776 [DEBUG][       Thread-256102][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 13:19:43,828 [DEBUG][       Thread-256102][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 13:19:43,828 [DEBUG][       Thread-256102][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 13:19:43,837 [DEBUG][       Thread-256102][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 13:19:43,846 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 13:19:43,846 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 13:19:43,862 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 13:19:43,871 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 13:19:43,872 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 13:19:43,872 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 13:19:43,880 [DEBUG][       Thread-256102][   transport.py][1871] : EOF in transport thread
2025-06-13 13:19:49,194 [DEBUG][Thread-256104 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:19:51,217 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:19:51,218 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:19:53,877 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 13:19:53,878 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 13:19:53,878 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 13:19:53,879 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 13:19:54,346 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 13, 19, 49), 14.7, 36.24, 0.0, 15.69, 13.26, 0, 0, 0, 2, 0, 0),)
2025-06-13 13:19:54,346 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 13:19:49
2025-06-13 13:19:54,426 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 13:19:54,429 [DEBUG][       Thread-256105][   transport.py][1871] : starting thread (client mode): 0x863931f0
2025-06-13 13:19:54,429 [DEBUG][       Thread-256105][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 13:19:54,444 [DEBUG][       Thread-256105][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 13:19:54,444 [ INFO][       Thread-256105][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 13:19:54,445 [DEBUG][       Thread-256105][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 13:19:54,446 [DEBUG][       Thread-256105][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 13:19:54,446 [DEBUG][       Thread-256105][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 13:19:54,446 [DEBUG][       Thread-256105][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:19:54,446 [DEBUG][       Thread-256105][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:19:54,446 [DEBUG][       Thread-256105][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:19:54,446 [DEBUG][       Thread-256105][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:19:54,446 [DEBUG][       Thread-256105][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 13:19:54,446 [DEBUG][       Thread-256105][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 13:19:54,446 [DEBUG][       Thread-256105][   transport.py][1871] : client lang: <none>
2025-06-13 13:19:54,446 [DEBUG][       Thread-256105][   transport.py][1871] : server lang: <none>
2025-06-13 13:19:54,446 [DEBUG][       Thread-256105][   transport.py][1871] : kex follows: False
2025-06-13 13:19:54,446 [DEBUG][       Thread-256105][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 13:19:54,446 [DEBUG][       Thread-256105][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 13:19:54,446 [DEBUG][       Thread-256105][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 13:19:54,446 [DEBUG][       Thread-256105][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 13:19:54,446 [DEBUG][       Thread-256105][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 13:19:54,446 [DEBUG][       Thread-256105][   transport.py][1871] : Compression: none
2025-06-13 13:19:54,446 [DEBUG][       Thread-256105][   transport.py][1871] : === End of kex handshake ===
2025-06-13 13:19:54,453 [DEBUG][       Thread-256105][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 13:19:54,453 [DEBUG][       Thread-256105][   transport.py][1871] : Switch to new keys ...
2025-06-13 13:19:54,454 [DEBUG][       Thread-256105][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 13:19:54,454 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 13:19:54,454 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 13:19:54,455 [DEBUG][       Thread-256105][   transport.py][1871] : userauth is OK
2025-06-13 13:19:54,467 [ INFO][       Thread-256105][   transport.py][1871] : Authentication (password) successful!
2025-06-13 13:19:54,468 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 13:19:55,044 [DEBUG][       Thread-256105][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 13:19:55,044 [DEBUG][       Thread-256105][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 13:19:55,085 [DEBUG][       Thread-256105][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 13:19:55,085 [DEBUG][       Thread-256105][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 13:19:55,090 [DEBUG][       Thread-256105][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 13:19:55,097 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 13:19:55,097 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 13:19:55,099 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 13:19:55,101 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 13:19:55,106 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 13:19:55,107 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 13:19:55,107 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 13:19:55,108 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 13:19:55,108 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.471812 -999.00  +13.50  15.16     39   -0.00 1 1 1 1 1   888    0 13.17 28.03 ----- 11.1 15.2 23.2 20.9 18.3 -29.7 17.0 -31.7 17.1 -29.6 18.3 -31.1
2025-06-13 13:19:55,108 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 13:19:55,108 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 13:19:55,109 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.471812
2025-06-13 13:19:55,109 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 13:19:55,110 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 13:19:55,110 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 13:19:55,110 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 13:19:55,110 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 13:19:55,110 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T13:19:49', tmtdew=14.7, humidity=36.24, cloud=0.0, wind=15.69, temperature=13.26, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T11:19:24.557', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 13:19:55,111 [DEBUG][       Thread-256105][   transport.py][1871] : EOF in transport thread
2025-06-13 13:19:55,194 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 13:19:55,203 [DEBUG][       Thread-256108][   transport.py][1871] : starting thread (client mode): 0x863a4cd0
2025-06-13 13:19:55,203 [DEBUG][       Thread-256108][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 13:19:55,219 [DEBUG][       Thread-256108][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 13:19:55,219 [ INFO][       Thread-256108][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 13:19:55,226 [DEBUG][       Thread-256108][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 13:19:55,227 [DEBUG][       Thread-256108][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 13:19:55,227 [DEBUG][       Thread-256108][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 13:19:55,227 [DEBUG][       Thread-256108][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:19:55,227 [DEBUG][       Thread-256108][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:19:55,227 [DEBUG][       Thread-256108][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:19:55,227 [DEBUG][       Thread-256108][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:19:55,227 [DEBUG][       Thread-256108][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 13:19:55,227 [DEBUG][       Thread-256108][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 13:19:55,227 [DEBUG][       Thread-256108][   transport.py][1871] : client lang: <none>
2025-06-13 13:19:55,227 [DEBUG][       Thread-256108][   transport.py][1871] : server lang: <none>
2025-06-13 13:19:55,227 [DEBUG][       Thread-256108][   transport.py][1871] : kex follows: False
2025-06-13 13:19:55,227 [DEBUG][       Thread-256108][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 13:19:55,227 [DEBUG][       Thread-256108][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 13:19:55,227 [DEBUG][       Thread-256108][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 13:19:55,227 [DEBUG][       Thread-256108][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 13:19:55,227 [DEBUG][       Thread-256108][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 13:19:55,227 [DEBUG][       Thread-256108][   transport.py][1871] : Compression: none
2025-06-13 13:19:55,227 [DEBUG][       Thread-256108][   transport.py][1871] : === End of kex handshake ===
2025-06-13 13:19:55,306 [DEBUG][       Thread-256108][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 13:19:55,306 [DEBUG][       Thread-256108][   transport.py][1871] : Switch to new keys ...
2025-06-13 13:19:55,306 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 13:19:55,306 [DEBUG][       Thread-256108][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 13:19:55,306 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 13:19:55,363 [DEBUG][       Thread-256108][   transport.py][1871] : userauth is OK
2025-06-13 13:19:55,363 [DEBUG][       Thread-256108][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 13:19:55,363 [DEBUG][       Thread-256108][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 13:19:55,363 [DEBUG][       Thread-256108][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 13:19:55,363 [DEBUG][       Thread-256108][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 13:19:55,387 [ INFO][       Thread-256108][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 13:19:55,388 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 13:19:55,388 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 13:19:56,379 [DEBUG][       Thread-256108][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 13:19:56,379 [DEBUG][       Thread-256108][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 13:19:56,427 [DEBUG][       Thread-256108][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 13:19:56,428 [DEBUG][       Thread-256108][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 13:19:56,438 [DEBUG][       Thread-256108][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 13:19:56,447 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 13:19:56,448 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 13:19:56,459 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 13:19:56,468 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 13:19:56,468 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 13:19:56,469 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 13:19:56,476 [DEBUG][       Thread-256108][   transport.py][1871] : EOF in transport thread
2025-06-13 13:19:58,216 [DEBUG][Thread-256110 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:20:06,479 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 13:20:06,479 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 13:20:06,479 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 13:20:06,482 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 13:20:06,940 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 13, 19, 49), 14.7, 36.24, 0.0, 15.69, 13.26, 0, 0, 0, 2, 0, 0),)
2025-06-13 13:20:06,940 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 13:19:49
2025-06-13 13:20:07,020 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 13:20:07,025 [DEBUG][       Thread-256111][   transport.py][1871] : starting thread (client mode): 0x86368f70
2025-06-13 13:20:07,026 [DEBUG][       Thread-256111][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 13:20:07,047 [DEBUG][       Thread-256111][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 13:20:07,047 [ INFO][       Thread-256111][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 13:20:07,050 [DEBUG][       Thread-256111][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 13:20:07,051 [DEBUG][       Thread-256111][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 13:20:07,051 [DEBUG][       Thread-256111][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 13:20:07,051 [DEBUG][       Thread-256111][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:20:07,051 [DEBUG][       Thread-256111][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:20:07,051 [DEBUG][       Thread-256111][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:20:07,051 [DEBUG][       Thread-256111][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:20:07,051 [DEBUG][       Thread-256111][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 13:20:07,051 [DEBUG][       Thread-256111][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 13:20:07,051 [DEBUG][       Thread-256111][   transport.py][1871] : client lang: <none>
2025-06-13 13:20:07,051 [DEBUG][       Thread-256111][   transport.py][1871] : server lang: <none>
2025-06-13 13:20:07,051 [DEBUG][       Thread-256111][   transport.py][1871] : kex follows: False
2025-06-13 13:20:07,051 [DEBUG][       Thread-256111][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 13:20:07,051 [DEBUG][       Thread-256111][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 13:20:07,051 [DEBUG][       Thread-256111][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 13:20:07,051 [DEBUG][       Thread-256111][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 13:20:07,051 [DEBUG][       Thread-256111][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 13:20:07,051 [DEBUG][       Thread-256111][   transport.py][1871] : Compression: none
2025-06-13 13:20:07,051 [DEBUG][       Thread-256111][   transport.py][1871] : === End of kex handshake ===
2025-06-13 13:20:07,060 [DEBUG][       Thread-256111][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 13:20:07,060 [DEBUG][       Thread-256111][   transport.py][1871] : Switch to new keys ...
2025-06-13 13:20:07,060 [DEBUG][       Thread-256111][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 13:20:07,061 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 13:20:07,061 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 13:20:07,062 [DEBUG][       Thread-256111][   transport.py][1871] : userauth is OK
2025-06-13 13:20:07,075 [ INFO][       Thread-256111][   transport.py][1871] : Authentication (password) successful!
2025-06-13 13:20:07,075 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 13:20:07,252 [DEBUG][Thread-256113 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:20:08,212 [DEBUG][       Thread-256111][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 13:20:08,212 [DEBUG][       Thread-256111][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 13:20:08,253 [DEBUG][       Thread-256111][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 13:20:08,253 [DEBUG][       Thread-256111][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 13:20:08,256 [DEBUG][       Thread-256111][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 13:20:08,268 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 13:20:08,269 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 13:20:08,270 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 13:20:08,272 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 13:20:08,279 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 13:20:08,281 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 13:20:08,281 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 13:20:08,282 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 13:20:08,282 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.471812 -999.00  +13.50  15.16     39   -0.00 1 1 1 1 1   888    0 13.17 28.03 ----- 11.1 15.2 23.2 20.9 18.3 -29.7 17.0 -31.7 17.1 -29.6 18.3 -31.1
2025-06-13 13:20:08,282 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 13:20:08,282 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 13:20:08,282 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.471812
2025-06-13 13:20:08,283 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 13:20:08,283 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 13:20:08,283 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 13:20:08,283 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 13:20:08,283 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 13:20:08,284 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T13:19:49', tmtdew=14.7, humidity=36.24, cloud=0.0, wind=15.69, temperature=13.26, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T11:19:24.557', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 13:20:08,284 [DEBUG][       Thread-256111][   transport.py][1871] : EOF in transport thread
2025-06-13 13:20:08,358 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 13:20:08,368 [DEBUG][       Thread-256115][   transport.py][1871] : starting thread (client mode): 0x863ef340
2025-06-13 13:20:08,368 [DEBUG][       Thread-256115][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 13:20:08,383 [DEBUG][       Thread-256115][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 13:20:08,383 [ INFO][       Thread-256115][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 13:20:08,391 [DEBUG][       Thread-256115][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 13:20:08,391 [DEBUG][       Thread-256115][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 13:20:08,391 [DEBUG][       Thread-256115][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 13:20:08,391 [DEBUG][       Thread-256115][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:20:08,391 [DEBUG][       Thread-256115][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:20:08,391 [DEBUG][       Thread-256115][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:20:08,391 [DEBUG][       Thread-256115][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:20:08,391 [DEBUG][       Thread-256115][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 13:20:08,391 [DEBUG][       Thread-256115][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 13:20:08,391 [DEBUG][       Thread-256115][   transport.py][1871] : client lang: <none>
2025-06-13 13:20:08,391 [DEBUG][       Thread-256115][   transport.py][1871] : server lang: <none>
2025-06-13 13:20:08,391 [DEBUG][       Thread-256115][   transport.py][1871] : kex follows: False
2025-06-13 13:20:08,391 [DEBUG][       Thread-256115][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 13:20:08,391 [DEBUG][       Thread-256115][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 13:20:08,391 [DEBUG][       Thread-256115][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 13:20:08,391 [DEBUG][       Thread-256115][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 13:20:08,391 [DEBUG][       Thread-256115][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 13:20:08,391 [DEBUG][       Thread-256115][   transport.py][1871] : Compression: none
2025-06-13 13:20:08,391 [DEBUG][       Thread-256115][   transport.py][1871] : === End of kex handshake ===
2025-06-13 13:20:08,450 [DEBUG][       Thread-256115][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 13:20:08,451 [DEBUG][       Thread-256115][   transport.py][1871] : Switch to new keys ...
2025-06-13 13:20:08,451 [DEBUG][       Thread-256115][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 13:20:08,451 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 13:20:08,452 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 13:20:08,508 [DEBUG][       Thread-256115][   transport.py][1871] : userauth is OK
2025-06-13 13:20:08,508 [DEBUG][       Thread-256115][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 13:20:08,508 [DEBUG][       Thread-256115][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 13:20:08,508 [DEBUG][       Thread-256115][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 13:20:08,508 [DEBUG][       Thread-256115][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 13:20:08,527 [ INFO][       Thread-256115][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 13:20:08,527 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 13:20:08,528 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 13:20:09,821 [DEBUG][       Thread-256115][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 13:20:09,821 [DEBUG][       Thread-256115][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 13:20:09,871 [DEBUG][       Thread-256115][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 13:20:09,871 [DEBUG][       Thread-256115][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 13:20:09,880 [DEBUG][       Thread-256115][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 13:20:09,888 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 13:20:09,888 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 13:20:09,895 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 13:20:09,903 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 13:20:09,903 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 13:20:09,904 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 13:20:09,912 [DEBUG][       Thread-256115][   transport.py][1871] : EOF in transport thread
2025-06-13 13:20:14,785 [DEBUG][Thread-256117 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:20:16,271 [DEBUG][Thread-256118 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:20:19,912 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 13:20:19,912 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 13:20:19,912 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 13:20:19,915 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 13:20:20,387 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 13, 19, 49), 14.7, 36.24, 0.0, 15.69, 13.26, 0, 0, 0, 2, 0, 0),)
2025-06-13 13:20:20,387 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 13:19:49
2025-06-13 13:20:20,467 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 13:20:20,471 [DEBUG][       Thread-256119][   transport.py][1871] : starting thread (client mode): 0x86392410
2025-06-13 13:20:20,471 [DEBUG][       Thread-256119][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 13:20:20,492 [DEBUG][       Thread-256119][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 13:20:20,492 [ INFO][       Thread-256119][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 13:20:20,495 [DEBUG][       Thread-256119][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 13:20:20,495 [DEBUG][       Thread-256119][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 13:20:20,495 [DEBUG][       Thread-256119][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 13:20:20,495 [DEBUG][       Thread-256119][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:20:20,495 [DEBUG][       Thread-256119][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:20:20,495 [DEBUG][       Thread-256119][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:20:20,495 [DEBUG][       Thread-256119][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:20:20,495 [DEBUG][       Thread-256119][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 13:20:20,495 [DEBUG][       Thread-256119][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 13:20:20,495 [DEBUG][       Thread-256119][   transport.py][1871] : client lang: <none>
2025-06-13 13:20:20,495 [DEBUG][       Thread-256119][   transport.py][1871] : server lang: <none>
2025-06-13 13:20:20,495 [DEBUG][       Thread-256119][   transport.py][1871] : kex follows: False
2025-06-13 13:20:20,495 [DEBUG][       Thread-256119][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 13:20:20,495 [DEBUG][       Thread-256119][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 13:20:20,495 [DEBUG][       Thread-256119][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 13:20:20,495 [DEBUG][       Thread-256119][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 13:20:20,495 [DEBUG][       Thread-256119][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 13:20:20,495 [DEBUG][       Thread-256119][   transport.py][1871] : Compression: none
2025-06-13 13:20:20,495 [DEBUG][       Thread-256119][   transport.py][1871] : === End of kex handshake ===
2025-06-13 13:20:20,509 [DEBUG][       Thread-256119][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 13:20:20,510 [DEBUG][       Thread-256119][   transport.py][1871] : Switch to new keys ...
2025-06-13 13:20:20,510 [DEBUG][       Thread-256119][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 13:20:20,510 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 13:20:20,510 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 13:20:20,510 [DEBUG][       Thread-256119][   transport.py][1871] : userauth is OK
2025-06-13 13:20:20,523 [ INFO][       Thread-256119][   transport.py][1871] : Authentication (password) successful!
2025-06-13 13:20:20,523 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 13:20:21,120 [DEBUG][       Thread-256119][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 13:20:21,120 [DEBUG][       Thread-256119][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 13:20:21,161 [DEBUG][       Thread-256119][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 13:20:21,161 [DEBUG][       Thread-256119][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 13:20:21,164 [DEBUG][       Thread-256119][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 13:20:21,177 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 13:20:21,177 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 13:20:21,179 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 13:20:21,181 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 13:20:21,187 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 13:20:21,188 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 13:20:21,189 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 13:20:21,189 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 13:20:21,189 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.471812 -999.00  +13.50  15.16     39   -0.00 1 1 1 1 1   888    0 13.17 28.03 ----- 11.1 15.2 23.2 20.9 18.3 -29.7 17.0 -31.7 17.1 -29.6 18.3 -31.1
2025-06-13 13:20:21,189 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 13:20:21,189 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 13:20:21,190 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.471812
2025-06-13 13:20:21,190 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 13:20:21,190 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 13:20:21,191 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 13:20:21,191 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 13:20:21,191 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 13:20:21,191 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T13:19:49', tmtdew=14.7, humidity=36.24, cloud=0.0, wind=15.69, temperature=13.26, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T11:19:24.557', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 13:20:21,191 [DEBUG][       Thread-256119][   transport.py][1871] : EOF in transport thread
2025-06-13 13:20:21,275 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 13:20:21,288 [DEBUG][       Thread-256122][   transport.py][1871] : starting thread (client mode): 0x86893df0
2025-06-13 13:20:21,288 [DEBUG][       Thread-256122][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 13:20:21,304 [DEBUG][       Thread-256122][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 13:20:21,304 [ INFO][       Thread-256122][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 13:20:21,311 [DEBUG][       Thread-256122][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 13:20:21,311 [DEBUG][       Thread-256122][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 13:20:21,311 [DEBUG][       Thread-256122][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 13:20:21,311 [DEBUG][       Thread-256122][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:20:21,311 [DEBUG][       Thread-256122][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:20:21,312 [DEBUG][       Thread-256122][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:20:21,312 [DEBUG][       Thread-256122][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:20:21,312 [DEBUG][       Thread-256122][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 13:20:21,312 [DEBUG][       Thread-256122][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 13:20:21,312 [DEBUG][       Thread-256122][   transport.py][1871] : client lang: <none>
2025-06-13 13:20:21,312 [DEBUG][       Thread-256122][   transport.py][1871] : server lang: <none>
2025-06-13 13:20:21,312 [DEBUG][       Thread-256122][   transport.py][1871] : kex follows: False
2025-06-13 13:20:21,312 [DEBUG][       Thread-256122][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 13:20:21,312 [DEBUG][       Thread-256122][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 13:20:21,312 [DEBUG][       Thread-256122][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 13:20:21,312 [DEBUG][       Thread-256122][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 13:20:21,312 [DEBUG][       Thread-256122][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 13:20:21,312 [DEBUG][       Thread-256122][   transport.py][1871] : Compression: none
2025-06-13 13:20:21,312 [DEBUG][       Thread-256122][   transport.py][1871] : === End of kex handshake ===
2025-06-13 13:20:21,374 [DEBUG][       Thread-256122][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 13:20:21,375 [DEBUG][       Thread-256122][   transport.py][1871] : Switch to new keys ...
2025-06-13 13:20:21,375 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 13:20:21,376 [DEBUG][       Thread-256122][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 13:20:21,376 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 13:20:21,430 [DEBUG][       Thread-256122][   transport.py][1871] : userauth is OK
2025-06-13 13:20:21,431 [DEBUG][       Thread-256122][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 13:20:21,431 [DEBUG][       Thread-256122][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 13:20:21,431 [DEBUG][       Thread-256122][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 13:20:21,431 [DEBUG][       Thread-256122][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 13:20:21,450 [ INFO][       Thread-256122][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 13:20:21,450 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 13:20:21,451 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 13:20:22,442 [DEBUG][       Thread-256122][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 13:20:22,442 [DEBUG][       Thread-256122][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 13:20:22,491 [DEBUG][       Thread-256122][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 13:20:22,491 [DEBUG][       Thread-256122][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 13:20:22,499 [DEBUG][       Thread-256122][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 13:20:22,507 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 13:20:22,507 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 13:20:22,515 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 13:20:22,523 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 13:20:22,523 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 13:20:22,523 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 13:20:22,531 [DEBUG][       Thread-256122][   transport.py][1871] : EOF in transport thread
2025-06-13 13:20:25,149 [DEBUG][Thread-256124 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:20:25,298 [DEBUG][Thread-256125 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:20:26,239 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:20:26,240 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:20:32,534 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 13:20:32,534 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 13:20:32,534 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 13:20:32,537 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 13:20:33,009 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 13, 20, 21), 14.75, 36.04, 0.0, 17.68, 13.17, 0, 0, 0, 2, 0, 0),)
2025-06-13 13:20:33,009 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 13:20:21
2025-06-13 13:20:33,090 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 13:20:33,094 [DEBUG][       Thread-256126][   transport.py][1871] : starting thread (client mode): 0x86393b20
2025-06-13 13:20:33,094 [DEBUG][       Thread-256126][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 13:20:33,116 [DEBUG][       Thread-256126][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 13:20:33,116 [ INFO][       Thread-256126][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 13:20:33,120 [DEBUG][       Thread-256126][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 13:20:33,120 [DEBUG][       Thread-256126][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 13:20:33,120 [DEBUG][       Thread-256126][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 13:20:33,120 [DEBUG][       Thread-256126][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:20:33,120 [DEBUG][       Thread-256126][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:20:33,120 [DEBUG][       Thread-256126][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:20:33,120 [DEBUG][       Thread-256126][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:20:33,120 [DEBUG][       Thread-256126][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 13:20:33,120 [DEBUG][       Thread-256126][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 13:20:33,120 [DEBUG][       Thread-256126][   transport.py][1871] : client lang: <none>
2025-06-13 13:20:33,120 [DEBUG][       Thread-256126][   transport.py][1871] : server lang: <none>
2025-06-13 13:20:33,120 [DEBUG][       Thread-256126][   transport.py][1871] : kex follows: False
2025-06-13 13:20:33,120 [DEBUG][       Thread-256126][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 13:20:33,120 [DEBUG][       Thread-256126][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 13:20:33,120 [DEBUG][       Thread-256126][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 13:20:33,120 [DEBUG][       Thread-256126][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 13:20:33,121 [DEBUG][       Thread-256126][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 13:20:33,121 [DEBUG][       Thread-256126][   transport.py][1871] : Compression: none
2025-06-13 13:20:33,121 [DEBUG][       Thread-256126][   transport.py][1871] : === End of kex handshake ===
2025-06-13 13:20:33,129 [DEBUG][       Thread-256126][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 13:20:33,130 [DEBUG][       Thread-256126][   transport.py][1871] : Switch to new keys ...
2025-06-13 13:20:33,130 [DEBUG][       Thread-256126][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 13:20:33,130 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 13:20:33,130 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 13:20:33,131 [DEBUG][       Thread-256126][   transport.py][1871] : userauth is OK
2025-06-13 13:20:33,144 [ INFO][       Thread-256126][   transport.py][1871] : Authentication (password) successful!
2025-06-13 13:20:33,145 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 13:20:33,819 [DEBUG][       Thread-256126][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 13:20:33,819 [DEBUG][       Thread-256126][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 13:20:33,861 [DEBUG][       Thread-256126][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 13:20:33,861 [DEBUG][       Thread-256126][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 13:20:33,864 [DEBUG][       Thread-256126][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 13:20:33,877 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 13:20:33,877 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 13:20:33,879 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 13:20:33,881 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 13:20:33,887 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 13:20:33,889 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 13:20:33,889 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 13:20:33,890 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 13:20:33,890 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.472160 -999.00  +13.30   8.24     39   -0.20 1 1 1 1 1   888    0 14.09 38.15 ----- 14.4 8.2 11.6 18.8 18.2 -29.9 16.9 -32.0 17.1 -29.7 18.1 -29.0
2025-06-13 13:20:33,890 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 13:20:33,890 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 13:20:33,890 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.472160
2025-06-13 13:20:33,890 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 13:20:33,891 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 13:20:33,891 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 13:20:33,891 [DEBUG][       Thread-256126][   transport.py][1871] : EOF in transport thread
2025-06-13 13:20:33,891 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 13:20:33,892 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 13:20:33,892 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T13:20:21', tmtdew=14.75, humidity=36.04, cloud=0.0, wind=17.68, temperature=13.17, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T11:19:54.624', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 13:20:33,975 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 13:20:33,985 [DEBUG][       Thread-256129][   transport.py][1871] : starting thread (client mode): 0x863eceb0
2025-06-13 13:20:33,985 [DEBUG][       Thread-256129][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 13:20:34,000 [DEBUG][       Thread-256129][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 13:20:34,000 [ INFO][       Thread-256129][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 13:20:34,008 [DEBUG][       Thread-256129][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 13:20:34,008 [DEBUG][       Thread-256129][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 13:20:34,008 [DEBUG][       Thread-256129][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 13:20:34,008 [DEBUG][       Thread-256129][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:20:34,008 [DEBUG][       Thread-256129][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:20:34,008 [DEBUG][       Thread-256129][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:20:34,008 [DEBUG][       Thread-256129][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:20:34,008 [DEBUG][       Thread-256129][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 13:20:34,008 [DEBUG][       Thread-256129][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 13:20:34,008 [DEBUG][       Thread-256129][   transport.py][1871] : client lang: <none>
2025-06-13 13:20:34,008 [DEBUG][       Thread-256129][   transport.py][1871] : server lang: <none>
2025-06-13 13:20:34,009 [DEBUG][       Thread-256129][   transport.py][1871] : kex follows: False
2025-06-13 13:20:34,009 [DEBUG][       Thread-256129][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 13:20:34,009 [DEBUG][       Thread-256129][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 13:20:34,009 [DEBUG][       Thread-256129][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 13:20:34,009 [DEBUG][       Thread-256129][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 13:20:34,009 [DEBUG][       Thread-256129][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 13:20:34,009 [DEBUG][       Thread-256129][   transport.py][1871] : Compression: none
2025-06-13 13:20:34,009 [DEBUG][       Thread-256129][   transport.py][1871] : === End of kex handshake ===
2025-06-13 13:20:34,066 [DEBUG][       Thread-256129][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 13:20:34,067 [DEBUG][       Thread-256129][   transport.py][1871] : Switch to new keys ...
2025-06-13 13:20:34,067 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 13:20:34,068 [DEBUG][       Thread-256129][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 13:20:34,069 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 13:20:34,122 [DEBUG][       Thread-256129][   transport.py][1871] : userauth is OK
2025-06-13 13:20:34,123 [DEBUG][       Thread-256129][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 13:20:34,123 [DEBUG][       Thread-256129][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 13:20:34,123 [DEBUG][       Thread-256129][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 13:20:34,123 [DEBUG][       Thread-256129][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 13:20:34,145 [ INFO][       Thread-256129][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 13:20:34,146 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 13:20:34,146 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 13:20:34,320 [DEBUG][Thread-256131 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:20:35,174 [DEBUG][       Thread-256129][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 13:20:35,175 [DEBUG][       Thread-256129][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 13:20:35,224 [DEBUG][       Thread-256129][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 13:20:35,224 [DEBUG][       Thread-256129][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 13:20:35,234 [DEBUG][       Thread-256129][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 13:20:35,248 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 13:20:35,248 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 13:20:35,258 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 13:20:35,267 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 13:20:35,267 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 13:20:35,267 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 13:20:35,275 [DEBUG][       Thread-256129][   transport.py][1871] : EOF in transport thread
2025-06-13 13:20:43,356 [DEBUG][Thread-256132 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:20:45,278 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 13:20:45,278 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 13:20:45,278 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 13:20:45,281 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 13:20:45,749 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 13, 20, 21), 14.75, 36.04, 0.0, 17.68, 13.17, 0, 0, 0, 2, 0, 0),)
2025-06-13 13:20:45,749 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 13:20:21
2025-06-13 13:20:45,829 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 13:20:45,833 [DEBUG][       Thread-256133][   transport.py][1871] : starting thread (client mode): 0x86391690
2025-06-13 13:20:45,833 [DEBUG][       Thread-256133][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 13:20:45,852 [DEBUG][       Thread-256133][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 13:20:45,852 [ INFO][       Thread-256133][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 13:20:45,856 [DEBUG][       Thread-256133][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 13:20:45,856 [DEBUG][       Thread-256133][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 13:20:45,856 [DEBUG][       Thread-256133][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 13:20:45,856 [DEBUG][       Thread-256133][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:20:45,856 [DEBUG][       Thread-256133][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:20:45,856 [DEBUG][       Thread-256133][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:20:45,856 [DEBUG][       Thread-256133][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:20:45,856 [DEBUG][       Thread-256133][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 13:20:45,856 [DEBUG][       Thread-256133][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 13:20:45,856 [DEBUG][       Thread-256133][   transport.py][1871] : client lang: <none>
2025-06-13 13:20:45,856 [DEBUG][       Thread-256133][   transport.py][1871] : server lang: <none>
2025-06-13 13:20:45,856 [DEBUG][       Thread-256133][   transport.py][1871] : kex follows: False
2025-06-13 13:20:45,856 [DEBUG][       Thread-256133][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 13:20:45,856 [DEBUG][       Thread-256133][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 13:20:45,856 [DEBUG][       Thread-256133][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 13:20:45,856 [DEBUG][       Thread-256133][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 13:20:45,856 [DEBUG][       Thread-256133][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 13:20:45,856 [DEBUG][       Thread-256133][   transport.py][1871] : Compression: none
2025-06-13 13:20:45,856 [DEBUG][       Thread-256133][   transport.py][1871] : === End of kex handshake ===
2025-06-13 13:20:45,871 [DEBUG][       Thread-256133][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 13:20:45,871 [DEBUG][       Thread-256133][   transport.py][1871] : Switch to new keys ...
2025-06-13 13:20:45,871 [DEBUG][       Thread-256133][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 13:20:45,871 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 13:20:45,871 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 13:20:45,872 [DEBUG][       Thread-256133][   transport.py][1871] : userauth is OK
2025-06-13 13:20:45,896 [ INFO][       Thread-256133][   transport.py][1871] : Authentication (password) successful!
2025-06-13 13:20:45,896 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 13:20:46,523 [DEBUG][       Thread-256133][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 13:20:46,524 [DEBUG][       Thread-256133][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 13:20:46,565 [DEBUG][       Thread-256133][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 13:20:46,565 [DEBUG][       Thread-256133][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 13:20:46,568 [DEBUG][       Thread-256133][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 13:20:46,581 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 13:20:46,581 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 13:20:46,583 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 13:20:46,586 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 13:20:46,592 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 13:20:46,594 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 13:20:46,594 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 13:20:46,595 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 13:20:46,595 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.472160 -999.00  +13.30   8.24     39   -0.20 1 1 1 1 1   888    0 14.09 38.15 ----- 14.4 8.2 11.6 18.8 18.2 -29.9 16.9 -32.0 17.1 -29.7 18.1 -29.0
2025-06-13 13:20:46,595 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 13:20:46,595 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 13:20:46,595 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.472160
2025-06-13 13:20:46,596 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 13:20:46,596 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 13:20:46,596 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 13:20:46,596 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 13:20:46,597 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 13:20:46,597 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T13:20:21', tmtdew=14.75, humidity=36.04, cloud=0.0, wind=17.68, temperature=13.17, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T11:19:54.624', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 13:20:46,598 [DEBUG][       Thread-256133][   transport.py][1871] : EOF in transport thread
2025-06-13 13:20:46,680 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 13:20:46,692 [DEBUG][       Thread-256136][   transport.py][1871] : starting thread (client mode): 0x863ed030
2025-06-13 13:20:46,692 [DEBUG][       Thread-256136][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 13:20:46,707 [DEBUG][       Thread-256136][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 13:20:46,707 [ INFO][       Thread-256136][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 13:20:46,715 [DEBUG][       Thread-256136][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 13:20:46,715 [DEBUG][       Thread-256136][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 13:20:46,715 [DEBUG][       Thread-256136][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 13:20:46,715 [DEBUG][       Thread-256136][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:20:46,715 [DEBUG][       Thread-256136][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:20:46,715 [DEBUG][       Thread-256136][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:20:46,715 [DEBUG][       Thread-256136][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:20:46,715 [DEBUG][       Thread-256136][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 13:20:46,715 [DEBUG][       Thread-256136][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 13:20:46,715 [DEBUG][       Thread-256136][   transport.py][1871] : client lang: <none>
2025-06-13 13:20:46,715 [DEBUG][       Thread-256136][   transport.py][1871] : server lang: <none>
2025-06-13 13:20:46,715 [DEBUG][       Thread-256136][   transport.py][1871] : kex follows: False
2025-06-13 13:20:46,715 [DEBUG][       Thread-256136][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 13:20:46,715 [DEBUG][       Thread-256136][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 13:20:46,716 [DEBUG][       Thread-256136][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 13:20:46,716 [DEBUG][       Thread-256136][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 13:20:46,716 [DEBUG][       Thread-256136][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 13:20:46,716 [DEBUG][       Thread-256136][   transport.py][1871] : Compression: none
2025-06-13 13:20:46,716 [DEBUG][       Thread-256136][   transport.py][1871] : === End of kex handshake ===
2025-06-13 13:20:46,780 [DEBUG][       Thread-256136][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 13:20:46,780 [DEBUG][       Thread-256136][   transport.py][1871] : Switch to new keys ...
2025-06-13 13:20:46,781 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 13:20:46,781 [DEBUG][       Thread-256136][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 13:20:46,782 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 13:20:46,838 [DEBUG][       Thread-256136][   transport.py][1871] : userauth is OK
2025-06-13 13:20:46,838 [DEBUG][       Thread-256136][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 13:20:46,838 [DEBUG][       Thread-256136][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 13:20:46,838 [DEBUG][       Thread-256136][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 13:20:46,838 [DEBUG][       Thread-256136][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 13:20:46,853 [ INFO][       Thread-256136][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 13:20:46,854 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 13:20:46,854 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 13:20:47,873 [DEBUG][       Thread-256136][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 13:20:47,873 [DEBUG][       Thread-256136][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 13:20:47,925 [DEBUG][       Thread-256136][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 13:20:47,925 [DEBUG][       Thread-256136][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 13:20:47,937 [DEBUG][       Thread-256136][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 13:20:47,953 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 13:20:47,953 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 13:20:47,967 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 13:20:47,976 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 13:20:47,976 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 13:20:47,976 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 13:20:47,983 [DEBUG][       Thread-256136][   transport.py][1871] : EOF in transport thread
2025-06-13 13:20:51,356 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:20:51,357 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:20:52,376 [DEBUG][Thread-256138 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:20:57,986 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 13:20:57,986 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 13:20:57,986 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 13:20:57,989 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 13:20:58,451 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 13, 20, 53), 14.75, 36.07, 0.0, 15.69, 13.24, 0, 0, 0, 2, 0, 0),)
2025-06-13 13:20:58,451 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 13:20:53
2025-06-13 13:20:58,531 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 13:20:58,535 [DEBUG][       Thread-256139][   transport.py][1871] : starting thread (client mode): 0x86393310
2025-06-13 13:20:58,535 [DEBUG][       Thread-256139][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 13:20:58,555 [DEBUG][       Thread-256139][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 13:20:58,556 [ INFO][       Thread-256139][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 13:20:58,559 [DEBUG][       Thread-256139][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 13:20:58,559 [DEBUG][       Thread-256139][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 13:20:58,559 [DEBUG][       Thread-256139][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 13:20:58,559 [DEBUG][       Thread-256139][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:20:58,559 [DEBUG][       Thread-256139][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:20:58,559 [DEBUG][       Thread-256139][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:20:58,559 [DEBUG][       Thread-256139][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:20:58,559 [DEBUG][       Thread-256139][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 13:20:58,559 [DEBUG][       Thread-256139][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 13:20:58,559 [DEBUG][       Thread-256139][   transport.py][1871] : client lang: <none>
2025-06-13 13:20:58,559 [DEBUG][       Thread-256139][   transport.py][1871] : server lang: <none>
2025-06-13 13:20:58,559 [DEBUG][       Thread-256139][   transport.py][1871] : kex follows: False
2025-06-13 13:20:58,559 [DEBUG][       Thread-256139][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 13:20:58,559 [DEBUG][       Thread-256139][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 13:20:58,559 [DEBUG][       Thread-256139][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 13:20:58,559 [DEBUG][       Thread-256139][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 13:20:58,559 [DEBUG][       Thread-256139][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 13:20:58,559 [DEBUG][       Thread-256139][   transport.py][1871] : Compression: none
2025-06-13 13:20:58,559 [DEBUG][       Thread-256139][   transport.py][1871] : === End of kex handshake ===
2025-06-13 13:20:58,570 [DEBUG][       Thread-256139][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 13:20:58,570 [DEBUG][       Thread-256139][   transport.py][1871] : Switch to new keys ...
2025-06-13 13:20:58,570 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 13:20:58,571 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 13:20:58,571 [DEBUG][       Thread-256139][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 13:20:58,572 [DEBUG][       Thread-256139][   transport.py][1871] : userauth is OK
2025-06-13 13:20:58,596 [ INFO][       Thread-256139][   transport.py][1871] : Authentication (password) successful!
2025-06-13 13:20:58,597 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 13:20:59,205 [DEBUG][       Thread-256139][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 13:20:59,205 [DEBUG][       Thread-256139][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 13:20:59,249 [DEBUG][       Thread-256139][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 13:20:59,249 [DEBUG][       Thread-256139][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 13:20:59,252 [DEBUG][       Thread-256139][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 13:20:59,264 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 13:20:59,264 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 13:20:59,266 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 13:20:59,268 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 13:20:59,274 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 13:20:59,276 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 13:20:59,276 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 13:20:59,277 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 13:20:59,277 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.472160 -999.00  +13.30   8.24     39   -0.20 1 1 1 1 1   888    0 14.09 38.15 ----- 14.4 8.2 11.6 18.8 18.2 -29.9 16.9 -32.0 17.1 -29.7 18.1 -29.0
2025-06-13 13:20:59,277 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 13:20:59,277 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 13:20:59,277 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.472160
2025-06-13 13:20:59,277 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 13:20:59,278 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 13:20:59,278 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 13:20:59,278 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 13:20:59,278 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 13:20:59,278 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T13:20:53', tmtdew=14.75, humidity=36.07, cloud=0.0, wind=15.69, temperature=13.24, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T11:19:54.624', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 13:20:59,279 [DEBUG][       Thread-256139][   transport.py][1871] : EOF in transport thread
2025-06-13 13:20:59,362 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 13:20:59,371 [DEBUG][       Thread-256142][   transport.py][1871] : starting thread (client mode): 0x863ed210
2025-06-13 13:20:59,371 [DEBUG][       Thread-256142][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 13:20:59,386 [DEBUG][       Thread-256142][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 13:20:59,387 [ INFO][       Thread-256142][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 13:20:59,396 [DEBUG][       Thread-256142][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 13:20:59,396 [DEBUG][       Thread-256142][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 13:20:59,397 [DEBUG][       Thread-256142][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 13:20:59,397 [DEBUG][       Thread-256142][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:20:59,397 [DEBUG][       Thread-256142][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:20:59,397 [DEBUG][       Thread-256142][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:20:59,397 [DEBUG][       Thread-256142][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:20:59,397 [DEBUG][       Thread-256142][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 13:20:59,397 [DEBUG][       Thread-256142][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 13:20:59,397 [DEBUG][       Thread-256142][   transport.py][1871] : client lang: <none>
2025-06-13 13:20:59,397 [DEBUG][       Thread-256142][   transport.py][1871] : server lang: <none>
2025-06-13 13:20:59,397 [DEBUG][       Thread-256142][   transport.py][1871] : kex follows: False
2025-06-13 13:20:59,397 [DEBUG][       Thread-256142][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 13:20:59,397 [DEBUG][       Thread-256142][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 13:20:59,397 [DEBUG][       Thread-256142][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 13:20:59,397 [DEBUG][       Thread-256142][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 13:20:59,397 [DEBUG][       Thread-256142][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 13:20:59,397 [DEBUG][       Thread-256142][   transport.py][1871] : Compression: none
2025-06-13 13:20:59,397 [DEBUG][       Thread-256142][   transport.py][1871] : === End of kex handshake ===
2025-06-13 13:20:59,455 [DEBUG][       Thread-256142][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 13:20:59,455 [DEBUG][       Thread-256142][   transport.py][1871] : Switch to new keys ...
2025-06-13 13:20:59,456 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 13:20:59,457 [DEBUG][       Thread-256142][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 13:20:59,457 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 13:20:59,513 [DEBUG][       Thread-256142][   transport.py][1871] : userauth is OK
2025-06-13 13:20:59,514 [DEBUG][       Thread-256142][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 13:20:59,514 [DEBUG][       Thread-256142][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 13:20:59,514 [DEBUG][       Thread-256142][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 13:20:59,514 [DEBUG][       Thread-256142][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 13:20:59,532 [ INFO][       Thread-256142][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 13:20:59,533 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 13:20:59,533 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 13:21:00,560 [DEBUG][       Thread-256142][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 13:21:00,561 [DEBUG][       Thread-256142][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 13:21:00,612 [DEBUG][       Thread-256142][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 13:21:00,612 [DEBUG][       Thread-256142][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 13:21:00,621 [DEBUG][       Thread-256142][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 13:21:00,630 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 13:21:00,630 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 13:21:00,640 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 13:21:00,649 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 13:21:00,649 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 13:21:00,650 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 13:21:00,658 [DEBUG][       Thread-256142][   transport.py][1871] : EOF in transport thread
2025-06-13 13:21:01,399 [DEBUG][Thread-256144 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:21:10,437 [DEBUG][Thread-256145 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:21:10,660 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 13:21:10,660 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 13:21:10,660 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 13:21:10,663 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 13:21:11,137 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 13, 20, 53), 14.75, 36.07, 0.0, 15.69, 13.24, 0, 0, 0, 2, 0, 0),)
2025-06-13 13:21:11,137 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 13:20:53
2025-06-13 13:21:11,216 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 13:21:11,223 [DEBUG][       Thread-256146][   transport.py][1871] : starting thread (client mode): 0x86393010
2025-06-13 13:21:11,223 [DEBUG][       Thread-256146][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 13:21:11,244 [DEBUG][       Thread-256146][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 13:21:11,244 [ INFO][       Thread-256146][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 13:21:11,247 [DEBUG][       Thread-256146][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 13:21:11,248 [DEBUG][       Thread-256146][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 13:21:11,248 [DEBUG][       Thread-256146][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 13:21:11,248 [DEBUG][       Thread-256146][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:21:11,248 [DEBUG][       Thread-256146][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:21:11,248 [DEBUG][       Thread-256146][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:21:11,248 [DEBUG][       Thread-256146][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:21:11,248 [DEBUG][       Thread-256146][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 13:21:11,248 [DEBUG][       Thread-256146][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 13:21:11,248 [DEBUG][       Thread-256146][   transport.py][1871] : client lang: <none>
2025-06-13 13:21:11,248 [DEBUG][       Thread-256146][   transport.py][1871] : server lang: <none>
2025-06-13 13:21:11,248 [DEBUG][       Thread-256146][   transport.py][1871] : kex follows: False
2025-06-13 13:21:11,248 [DEBUG][       Thread-256146][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 13:21:11,248 [DEBUG][       Thread-256146][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 13:21:11,248 [DEBUG][       Thread-256146][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 13:21:11,248 [DEBUG][       Thread-256146][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 13:21:11,248 [DEBUG][       Thread-256146][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 13:21:11,248 [DEBUG][       Thread-256146][   transport.py][1871] : Compression: none
2025-06-13 13:21:11,248 [DEBUG][       Thread-256146][   transport.py][1871] : === End of kex handshake ===
2025-06-13 13:21:11,261 [DEBUG][       Thread-256146][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 13:21:11,261 [DEBUG][       Thread-256146][   transport.py][1871] : Switch to new keys ...
2025-06-13 13:21:11,262 [DEBUG][       Thread-256146][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 13:21:11,262 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 13:21:11,262 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 13:21:11,263 [DEBUG][       Thread-256146][   transport.py][1871] : userauth is OK
2025-06-13 13:21:11,288 [ INFO][       Thread-256146][   transport.py][1871] : Authentication (password) successful!
2025-06-13 13:21:11,289 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 13:21:11,920 [DEBUG][       Thread-256146][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 13:21:11,920 [DEBUG][       Thread-256146][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 13:21:11,965 [DEBUG][       Thread-256146][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 13:21:11,965 [DEBUG][       Thread-256146][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 13:21:11,968 [DEBUG][       Thread-256146][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 13:21:11,981 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 13:21:11,981 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 13:21:11,983 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 13:21:11,985 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 13:21:11,991 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 13:21:11,993 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 13:21:11,993 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 13:21:11,993 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 13:21:11,994 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.472854 -999.00  +13.20  10.30     39   -0.30 1 1 1 1 1   888    0 13.89 41.39 ----- 18.2 10.3 300.8 19.0 18.2 -30.1 16.9 -31.2 17.1 -30.0 18.2 -28.5
2025-06-13 13:21:11,994 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 13:21:11,994 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 13:21:11,994 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.472854
2025-06-13 13:21:11,994 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 13:21:11,995 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 13:21:11,995 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 13:21:11,995 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 13:21:11,995 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 13:21:11,995 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T13:20:53', tmtdew=14.75, humidity=36.07, cloud=0.0, wind=15.69, temperature=13.24, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T11:20:54.586', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 13:21:11,995 [DEBUG][       Thread-256146][   transport.py][1871] : EOF in transport thread
2025-06-13 13:21:12,079 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 13:21:12,091 [DEBUG][       Thread-256149][   transport.py][1871] : starting thread (client mode): 0x867ff040
2025-06-13 13:21:12,091 [DEBUG][       Thread-256149][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 13:21:12,106 [DEBUG][       Thread-256149][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 13:21:12,106 [ INFO][       Thread-256149][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 13:21:12,114 [DEBUG][       Thread-256149][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 13:21:12,114 [DEBUG][       Thread-256149][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 13:21:12,114 [DEBUG][       Thread-256149][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 13:21:12,114 [DEBUG][       Thread-256149][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:21:12,114 [DEBUG][       Thread-256149][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:21:12,114 [DEBUG][       Thread-256149][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:21:12,114 [DEBUG][       Thread-256149][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:21:12,115 [DEBUG][       Thread-256149][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 13:21:12,115 [DEBUG][       Thread-256149][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 13:21:12,115 [DEBUG][       Thread-256149][   transport.py][1871] : client lang: <none>
2025-06-13 13:21:12,115 [DEBUG][       Thread-256149][   transport.py][1871] : server lang: <none>
2025-06-13 13:21:12,115 [DEBUG][       Thread-256149][   transport.py][1871] : kex follows: False
2025-06-13 13:21:12,115 [DEBUG][       Thread-256149][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 13:21:12,115 [DEBUG][       Thread-256149][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 13:21:12,115 [DEBUG][       Thread-256149][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 13:21:12,115 [DEBUG][       Thread-256149][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 13:21:12,115 [DEBUG][       Thread-256149][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 13:21:12,115 [DEBUG][       Thread-256149][   transport.py][1871] : Compression: none
2025-06-13 13:21:12,115 [DEBUG][       Thread-256149][   transport.py][1871] : === End of kex handshake ===
2025-06-13 13:21:12,175 [DEBUG][       Thread-256149][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 13:21:12,175 [DEBUG][       Thread-256149][   transport.py][1871] : Switch to new keys ...
2025-06-13 13:21:12,176 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 13:21:12,177 [DEBUG][       Thread-256149][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 13:21:12,177 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 13:21:12,233 [DEBUG][       Thread-256149][   transport.py][1871] : userauth is OK
2025-06-13 13:21:12,233 [DEBUG][       Thread-256149][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 13:21:12,233 [DEBUG][       Thread-256149][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 13:21:12,233 [DEBUG][       Thread-256149][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 13:21:12,233 [DEBUG][       Thread-256149][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 13:21:12,252 [ INFO][       Thread-256149][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 13:21:12,252 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 13:21:12,253 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 13:21:13,279 [DEBUG][       Thread-256149][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 13:21:13,280 [DEBUG][       Thread-256149][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 13:21:13,328 [DEBUG][       Thread-256149][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 13:21:13,328 [DEBUG][       Thread-256149][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 13:21:13,341 [DEBUG][       Thread-256149][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 13:21:13,351 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 13:21:13,351 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 13:21:13,360 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 13:21:13,369 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 13:21:13,370 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 13:21:13,370 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 13:21:13,378 [DEBUG][       Thread-256149][   transport.py][1871] : EOF in transport thread
2025-06-13 13:21:14,832 [DEBUG][Thread-256151 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:21:19,457 [DEBUG][Thread-256152 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:21:23,381 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 13:21:23,381 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 13:21:23,381 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 13:21:23,382 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 13:21:23,839 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 13, 20, 53), 14.75, 36.07, 0.0, 15.69, 13.24, 0, 0, 0, 2, 0, 0),)
2025-06-13 13:21:23,839 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 13:20:53
2025-06-13 13:21:23,920 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 13:21:23,923 [DEBUG][       Thread-256153][   transport.py][1871] : starting thread (client mode): 0x84205060
2025-06-13 13:21:23,924 [DEBUG][       Thread-256153][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 13:21:23,945 [DEBUG][       Thread-256153][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 13:21:23,945 [ INFO][       Thread-256153][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 13:21:23,949 [DEBUG][       Thread-256153][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 13:21:23,949 [DEBUG][       Thread-256153][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 13:21:23,949 [DEBUG][       Thread-256153][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 13:21:23,949 [DEBUG][       Thread-256153][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:21:23,949 [DEBUG][       Thread-256153][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:21:23,949 [DEBUG][       Thread-256153][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:21:23,949 [DEBUG][       Thread-256153][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:21:23,949 [DEBUG][       Thread-256153][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 13:21:23,950 [DEBUG][       Thread-256153][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 13:21:23,950 [DEBUG][       Thread-256153][   transport.py][1871] : client lang: <none>
2025-06-13 13:21:23,950 [DEBUG][       Thread-256153][   transport.py][1871] : server lang: <none>
2025-06-13 13:21:23,950 [DEBUG][       Thread-256153][   transport.py][1871] : kex follows: False
2025-06-13 13:21:23,950 [DEBUG][       Thread-256153][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 13:21:23,950 [DEBUG][       Thread-256153][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 13:21:23,950 [DEBUG][       Thread-256153][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 13:21:23,950 [DEBUG][       Thread-256153][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 13:21:23,950 [DEBUG][       Thread-256153][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 13:21:23,950 [DEBUG][       Thread-256153][   transport.py][1871] : Compression: none
2025-06-13 13:21:23,950 [DEBUG][       Thread-256153][   transport.py][1871] : === End of kex handshake ===
2025-06-13 13:21:23,966 [DEBUG][       Thread-256153][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 13:21:23,966 [DEBUG][       Thread-256153][   transport.py][1871] : Switch to new keys ...
2025-06-13 13:21:23,967 [DEBUG][       Thread-256153][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 13:21:23,967 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 13:21:23,967 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 13:21:23,969 [DEBUG][       Thread-256153][   transport.py][1871] : userauth is OK
2025-06-13 13:21:23,994 [ INFO][       Thread-256153][   transport.py][1871] : Authentication (password) successful!
2025-06-13 13:21:23,994 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 13:21:24,634 [DEBUG][       Thread-256153][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 13:21:24,634 [DEBUG][       Thread-256153][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 13:21:24,676 [DEBUG][       Thread-256153][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 13:21:24,676 [DEBUG][       Thread-256153][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 13:21:24,679 [DEBUG][       Thread-256153][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 13:21:24,693 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 13:21:24,693 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 13:21:24,694 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 13:21:24,695 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 13:21:24,698 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 13:21:24,699 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 13:21:24,699 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 13:21:24,699 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 13:21:24,699 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.472854 -999.00  +13.20  10.30     39   -0.30 1 1 1 1 1   888    0 13.89 41.39 ----- 18.2 10.3 300.8 19.0 18.2 -30.1 16.9 -31.2 17.1 -30.0 18.2 -28.5
2025-06-13 13:21:24,699 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 13:21:24,699 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 13:21:24,699 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.472854
2025-06-13 13:21:24,700 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 13:21:24,700 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 13:21:24,700 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 13:21:24,700 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 13:21:24,700 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 13:21:24,700 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T13:20:53', tmtdew=14.75, humidity=36.07, cloud=0.0, wind=15.69, temperature=13.24, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T11:20:54.586', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 13:21:24,700 [DEBUG][       Thread-256153][   transport.py][1871] : EOF in transport thread
2025-06-13 13:21:24,772 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 13:21:24,784 [DEBUG][       Thread-256156][   transport.py][1871] : starting thread (client mode): 0x863ec730
2025-06-13 13:21:24,784 [DEBUG][       Thread-256156][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 13:21:24,799 [DEBUG][       Thread-256156][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 13:21:24,799 [ INFO][       Thread-256156][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 13:21:24,807 [DEBUG][       Thread-256156][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 13:21:24,807 [DEBUG][       Thread-256156][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 13:21:24,807 [DEBUG][       Thread-256156][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 13:21:24,807 [DEBUG][       Thread-256156][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:21:24,807 [DEBUG][       Thread-256156][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:21:24,807 [DEBUG][       Thread-256156][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:21:24,807 [DEBUG][       Thread-256156][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:21:24,807 [DEBUG][       Thread-256156][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 13:21:24,807 [DEBUG][       Thread-256156][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 13:21:24,807 [DEBUG][       Thread-256156][   transport.py][1871] : client lang: <none>
2025-06-13 13:21:24,807 [DEBUG][       Thread-256156][   transport.py][1871] : server lang: <none>
2025-06-13 13:21:24,807 [DEBUG][       Thread-256156][   transport.py][1871] : kex follows: False
2025-06-13 13:21:24,807 [DEBUG][       Thread-256156][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 13:21:24,807 [DEBUG][       Thread-256156][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 13:21:24,807 [DEBUG][       Thread-256156][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 13:21:24,807 [DEBUG][       Thread-256156][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 13:21:24,807 [DEBUG][       Thread-256156][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 13:21:24,807 [DEBUG][       Thread-256156][   transport.py][1871] : Compression: none
2025-06-13 13:21:24,807 [DEBUG][       Thread-256156][   transport.py][1871] : === End of kex handshake ===
2025-06-13 13:21:24,865 [DEBUG][       Thread-256156][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 13:21:24,866 [DEBUG][       Thread-256156][   transport.py][1871] : Switch to new keys ...
2025-06-13 13:21:24,866 [DEBUG][       Thread-256156][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 13:21:24,866 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 13:21:24,866 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 13:21:24,922 [DEBUG][       Thread-256156][   transport.py][1871] : userauth is OK
2025-06-13 13:21:24,922 [DEBUG][       Thread-256156][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 13:21:24,922 [DEBUG][       Thread-256156][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 13:21:24,922 [DEBUG][       Thread-256156][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 13:21:24,922 [DEBUG][       Thread-256156][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 13:21:24,937 [ INFO][       Thread-256156][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 13:21:24,937 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 13:21:24,937 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 13:21:25,970 [DEBUG][       Thread-256156][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 13:21:25,970 [DEBUG][       Thread-256156][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 13:21:26,025 [DEBUG][       Thread-256156][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 13:21:26,025 [DEBUG][       Thread-256156][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 13:21:26,033 [DEBUG][       Thread-256156][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 13:21:26,041 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 13:21:26,041 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 13:21:26,049 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 13:21:26,057 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 13:21:26,057 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 13:21:26,057 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 13:21:26,065 [DEBUG][       Thread-256156][   transport.py][1871] : EOF in transport thread
2025-06-13 13:21:26,316 [DEBUG][Thread-256158 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:21:27,374 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:21:27,374 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:21:28,473 [DEBUG][Thread-256159 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:21:36,058 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 13:21:36,058 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 13:21:36,059 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 13:21:36,061 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 13:21:36,528 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 13, 21, 24), 14.74, 36.12, 0.0, 13.69, 13.24, 0, 0, 0, 2, 0, 0),)
2025-06-13 13:21:36,528 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 13:21:24
2025-06-13 13:21:36,608 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 13:21:36,615 [DEBUG][       Thread-256160][   transport.py][1871] : starting thread (client mode): 0x863c9930
2025-06-13 13:21:36,615 [DEBUG][       Thread-256160][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 13:21:36,637 [DEBUG][       Thread-256160][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 13:21:36,637 [ INFO][       Thread-256160][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 13:21:36,638 [DEBUG][       Thread-256160][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 13:21:36,638 [DEBUG][       Thread-256160][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 13:21:36,639 [DEBUG][       Thread-256160][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 13:21:36,639 [DEBUG][       Thread-256160][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:21:36,639 [DEBUG][       Thread-256160][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:21:36,639 [DEBUG][       Thread-256160][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:21:36,639 [DEBUG][       Thread-256160][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:21:36,639 [DEBUG][       Thread-256160][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 13:21:36,639 [DEBUG][       Thread-256160][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 13:21:36,639 [DEBUG][       Thread-256160][   transport.py][1871] : client lang: <none>
2025-06-13 13:21:36,639 [DEBUG][       Thread-256160][   transport.py][1871] : server lang: <none>
2025-06-13 13:21:36,639 [DEBUG][       Thread-256160][   transport.py][1871] : kex follows: False
2025-06-13 13:21:36,639 [DEBUG][       Thread-256160][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 13:21:36,639 [DEBUG][       Thread-256160][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 13:21:36,639 [DEBUG][       Thread-256160][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 13:21:36,639 [DEBUG][       Thread-256160][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 13:21:36,639 [DEBUG][       Thread-256160][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 13:21:36,639 [DEBUG][       Thread-256160][   transport.py][1871] : Compression: none
2025-06-13 13:21:36,639 [DEBUG][       Thread-256160][   transport.py][1871] : === End of kex handshake ===
2025-06-13 13:21:36,649 [DEBUG][       Thread-256160][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 13:21:36,650 [DEBUG][       Thread-256160][   transport.py][1871] : Switch to new keys ...
2025-06-13 13:21:36,650 [DEBUG][       Thread-256160][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 13:21:36,651 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 13:21:36,651 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 13:21:36,652 [DEBUG][       Thread-256160][   transport.py][1871] : userauth is OK
2025-06-13 13:21:36,676 [ INFO][       Thread-256160][   transport.py][1871] : Authentication (password) successful!
2025-06-13 13:21:36,677 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 13:21:37,314 [DEBUG][       Thread-256160][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 13:21:37,314 [DEBUG][       Thread-256160][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 13:21:37,357 [DEBUG][       Thread-256160][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 13:21:37,357 [DEBUG][       Thread-256160][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 13:21:37,361 [DEBUG][       Thread-256160][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 13:21:37,372 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 13:21:37,372 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 13:21:37,375 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 13:21:37,377 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 13:21:37,384 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 13:21:37,386 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 13:21:37,387 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 13:21:37,387 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 13:21:37,388 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.473201 -999.00  +13.40  11.56     40   +0.10 1 1 1 1 1   888    0 13.79 40.17 ----- 16.4 11.6 25.1 21.6 18.2 -29.2 16.9 -31.6 17.1 -29.2 18.1 -33.5
2025-06-13 13:21:37,388 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 13:21:37,388 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 13:21:37,388 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.473201
2025-06-13 13:21:37,388 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 13:21:37,389 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 13:21:37,389 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 13:21:37,389 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 13:21:37,389 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 13:21:37,389 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T13:21:24', tmtdew=14.74, humidity=36.12, cloud=0.0, wind=13.69, temperature=13.24, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T11:21:24.566', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 13:21:37,391 [DEBUG][       Thread-256160][   transport.py][1871] : EOF in transport thread
2025-06-13 13:21:37,472 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 13:21:37,484 [DEBUG][       Thread-256163][   transport.py][1871] : starting thread (client mode): 0x863a7a00
2025-06-13 13:21:37,484 [DEBUG][       Thread-256163][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 13:21:37,493 [DEBUG][Thread-256164 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:21:37,502 [DEBUG][       Thread-256163][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 13:21:37,502 [ INFO][       Thread-256163][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 13:21:37,510 [DEBUG][       Thread-256163][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 13:21:37,510 [DEBUG][       Thread-256163][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 13:21:37,510 [DEBUG][       Thread-256163][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 13:21:37,510 [DEBUG][       Thread-256163][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:21:37,510 [DEBUG][       Thread-256163][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:21:37,510 [DEBUG][       Thread-256163][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:21:37,510 [DEBUG][       Thread-256163][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:21:37,510 [DEBUG][       Thread-256163][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 13:21:37,510 [DEBUG][       Thread-256163][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 13:21:37,510 [DEBUG][       Thread-256163][   transport.py][1871] : client lang: <none>
2025-06-13 13:21:37,511 [DEBUG][       Thread-256163][   transport.py][1871] : server lang: <none>
2025-06-13 13:21:37,511 [DEBUG][       Thread-256163][   transport.py][1871] : kex follows: False
2025-06-13 13:21:37,511 [DEBUG][       Thread-256163][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 13:21:37,511 [DEBUG][       Thread-256163][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 13:21:37,511 [DEBUG][       Thread-256163][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 13:21:37,511 [DEBUG][       Thread-256163][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 13:21:37,511 [DEBUG][       Thread-256163][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 13:21:37,511 [DEBUG][       Thread-256163][   transport.py][1871] : Compression: none
2025-06-13 13:21:37,511 [DEBUG][       Thread-256163][   transport.py][1871] : === End of kex handshake ===
2025-06-13 13:21:37,570 [DEBUG][       Thread-256163][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 13:21:37,571 [DEBUG][       Thread-256163][   transport.py][1871] : Switch to new keys ...
2025-06-13 13:21:37,571 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 13:21:37,572 [DEBUG][       Thread-256163][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 13:21:37,572 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 13:21:37,626 [DEBUG][       Thread-256163][   transport.py][1871] : userauth is OK
2025-06-13 13:21:37,627 [DEBUG][       Thread-256163][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 13:21:37,627 [DEBUG][       Thread-256163][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 13:21:37,627 [DEBUG][       Thread-256163][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 13:21:37,627 [DEBUG][       Thread-256163][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 13:21:37,646 [ INFO][       Thread-256163][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 13:21:37,646 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 13:21:37,647 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 13:21:38,621 [DEBUG][       Thread-256163][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 13:21:38,621 [DEBUG][       Thread-256163][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 13:21:38,672 [DEBUG][       Thread-256163][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 13:21:38,672 [DEBUG][       Thread-256163][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 13:21:38,682 [DEBUG][       Thread-256163][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 13:21:38,691 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 13:21:38,691 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 13:21:38,700 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 13:21:38,709 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 13:21:38,710 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 13:21:38,710 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 13:21:38,718 [DEBUG][       Thread-256163][   transport.py][1871] : EOF in transport thread
2025-06-13 13:21:46,523 [DEBUG][Thread-256166 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:21:48,721 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 13:21:48,721 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 13:21:48,721 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 13:21:48,724 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 13:21:49,190 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 13, 21, 24), 14.74, 36.12, 0.0, 13.69, 13.24, 0, 0, 0, 2, 0, 0),)
2025-06-13 13:21:49,190 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 13:21:24
2025-06-13 13:21:49,270 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 13:21:49,274 [DEBUG][       Thread-256167][   transport.py][1871] : starting thread (client mode): 0x863506d0
2025-06-13 13:21:49,274 [DEBUG][       Thread-256167][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 13:21:49,295 [DEBUG][       Thread-256167][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 13:21:49,295 [ INFO][       Thread-256167][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 13:21:49,298 [DEBUG][       Thread-256167][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 13:21:49,298 [DEBUG][       Thread-256167][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 13:21:49,298 [DEBUG][       Thread-256167][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 13:21:49,299 [DEBUG][       Thread-256167][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:21:49,299 [DEBUG][       Thread-256167][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:21:49,299 [DEBUG][       Thread-256167][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:21:49,299 [DEBUG][       Thread-256167][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:21:49,299 [DEBUG][       Thread-256167][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 13:21:49,299 [DEBUG][       Thread-256167][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 13:21:49,299 [DEBUG][       Thread-256167][   transport.py][1871] : client lang: <none>
2025-06-13 13:21:49,299 [DEBUG][       Thread-256167][   transport.py][1871] : server lang: <none>
2025-06-13 13:21:49,299 [DEBUG][       Thread-256167][   transport.py][1871] : kex follows: False
2025-06-13 13:21:49,299 [DEBUG][       Thread-256167][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 13:21:49,299 [DEBUG][       Thread-256167][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 13:21:49,299 [DEBUG][       Thread-256167][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 13:21:49,299 [DEBUG][       Thread-256167][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 13:21:49,299 [DEBUG][       Thread-256167][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 13:21:49,299 [DEBUG][       Thread-256167][   transport.py][1871] : Compression: none
2025-06-13 13:21:49,299 [DEBUG][       Thread-256167][   transport.py][1871] : === End of kex handshake ===
2025-06-13 13:21:49,315 [DEBUG][       Thread-256167][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 13:21:49,315 [DEBUG][       Thread-256167][   transport.py][1871] : Switch to new keys ...
2025-06-13 13:21:49,316 [DEBUG][       Thread-256167][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 13:21:49,316 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 13:21:49,316 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 13:21:49,318 [DEBUG][       Thread-256167][   transport.py][1871] : userauth is OK
2025-06-13 13:21:49,342 [ INFO][       Thread-256167][   transport.py][1871] : Authentication (password) successful!
2025-06-13 13:21:49,343 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 13:21:49,993 [DEBUG][       Thread-256167][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 13:21:49,993 [DEBUG][       Thread-256167][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 13:21:50,037 [DEBUG][       Thread-256167][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 13:21:50,037 [DEBUG][       Thread-256167][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 13:21:50,040 [DEBUG][       Thread-256167][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 13:21:50,052 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 13:21:50,053 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 13:21:50,055 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 13:21:50,057 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 13:21:50,063 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 13:21:50,065 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 13:21:50,065 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 13:21:50,066 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 13:21:50,066 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.473201 -999.00  +13.40  11.56     40   +0.10 1 1 1 1 1   888    0 13.79 40.17 ----- 16.4 11.6 25.1 21.6 18.2 -29.2 16.9 -31.6 17.1 -29.2 18.1 -33.5
2025-06-13 13:21:50,066 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 13:21:50,066 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 13:21:50,066 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.473201
2025-06-13 13:21:50,066 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 13:21:50,067 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 13:21:50,067 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 13:21:50,067 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 13:21:50,067 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 13:21:50,067 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T13:21:24', tmtdew=14.74, humidity=36.12, cloud=0.0, wind=13.69, temperature=13.24, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T11:21:24.566', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 13:21:50,068 [DEBUG][       Thread-256167][   transport.py][1871] : EOF in transport thread
2025-06-13 13:21:50,151 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 13:21:50,161 [DEBUG][       Thread-256170][   transport.py][1871] : starting thread (client mode): 0x867b78b0
2025-06-13 13:21:50,161 [DEBUG][       Thread-256170][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 13:21:50,181 [DEBUG][       Thread-256170][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 13:21:50,181 [ INFO][       Thread-256170][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 13:21:50,193 [DEBUG][       Thread-256170][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 13:21:50,194 [DEBUG][       Thread-256170][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 13:21:50,194 [DEBUG][       Thread-256170][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 13:21:50,194 [DEBUG][       Thread-256170][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:21:50,194 [DEBUG][       Thread-256170][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:21:50,194 [DEBUG][       Thread-256170][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:21:50,194 [DEBUG][       Thread-256170][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:21:50,194 [DEBUG][       Thread-256170][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 13:21:50,194 [DEBUG][       Thread-256170][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 13:21:50,194 [DEBUG][       Thread-256170][   transport.py][1871] : client lang: <none>
2025-06-13 13:21:50,194 [DEBUG][       Thread-256170][   transport.py][1871] : server lang: <none>
2025-06-13 13:21:50,194 [DEBUG][       Thread-256170][   transport.py][1871] : kex follows: False
2025-06-13 13:21:50,194 [DEBUG][       Thread-256170][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 13:21:50,194 [DEBUG][       Thread-256170][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 13:21:50,194 [DEBUG][       Thread-256170][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 13:21:50,194 [DEBUG][       Thread-256170][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 13:21:50,194 [DEBUG][       Thread-256170][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 13:21:50,195 [DEBUG][       Thread-256170][   transport.py][1871] : Compression: none
2025-06-13 13:21:50,195 [DEBUG][       Thread-256170][   transport.py][1871] : === End of kex handshake ===
2025-06-13 13:21:50,247 [DEBUG][       Thread-256170][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 13:21:50,248 [DEBUG][       Thread-256170][   transport.py][1871] : Switch to new keys ...
2025-06-13 13:21:50,249 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 13:21:50,249 [DEBUG][       Thread-256170][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 13:21:50,250 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 13:21:50,306 [DEBUG][       Thread-256170][   transport.py][1871] : userauth is OK
2025-06-13 13:21:50,307 [DEBUG][       Thread-256170][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 13:21:50,307 [DEBUG][       Thread-256170][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 13:21:50,307 [DEBUG][       Thread-256170][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 13:21:50,307 [DEBUG][       Thread-256170][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 13:21:50,326 [ INFO][       Thread-256170][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 13:21:50,327 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 13:21:50,327 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 13:21:51,352 [DEBUG][       Thread-256170][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 13:21:51,353 [DEBUG][       Thread-256170][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 13:21:51,404 [DEBUG][       Thread-256170][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 13:21:51,404 [DEBUG][       Thread-256170][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 13:21:51,413 [DEBUG][       Thread-256170][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 13:21:51,423 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 13:21:51,423 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 13:21:51,432 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 13:21:51,441 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 13:21:51,442 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 13:21:51,442 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 13:21:51,450 [DEBUG][       Thread-256170][   transport.py][1871] : EOF in transport thread
2025-06-13 13:21:51,497 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:21:51,498 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:21:55,546 [DEBUG][Thread-256172 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:22:01,453 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 13:22:01,453 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 13:22:01,453 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 13:22:01,456 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 13:22:01,910 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 13, 21, 56), 14.8, 35.97, 0.0, 14.98, 13.27, 0, 0, 0, 2, 0, 0),)
2025-06-13 13:22:01,910 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 13:21:56
2025-06-13 13:22:01,989 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 13:22:01,994 [DEBUG][       Thread-256173][   transport.py][1871] : starting thread (client mode): 0x86351d80
2025-06-13 13:22:01,994 [DEBUG][       Thread-256173][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 13:22:02,014 [DEBUG][       Thread-256173][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 13:22:02,014 [ INFO][       Thread-256173][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 13:22:02,017 [DEBUG][       Thread-256173][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 13:22:02,017 [DEBUG][       Thread-256173][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 13:22:02,017 [DEBUG][       Thread-256173][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 13:22:02,017 [DEBUG][       Thread-256173][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:22:02,017 [DEBUG][       Thread-256173][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:22:02,017 [DEBUG][       Thread-256173][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:22:02,017 [DEBUG][       Thread-256173][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:22:02,017 [DEBUG][       Thread-256173][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 13:22:02,017 [DEBUG][       Thread-256173][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 13:22:02,017 [DEBUG][       Thread-256173][   transport.py][1871] : client lang: <none>
2025-06-13 13:22:02,017 [DEBUG][       Thread-256173][   transport.py][1871] : server lang: <none>
2025-06-13 13:22:02,017 [DEBUG][       Thread-256173][   transport.py][1871] : kex follows: False
2025-06-13 13:22:02,017 [DEBUG][       Thread-256173][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 13:22:02,017 [DEBUG][       Thread-256173][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 13:22:02,017 [DEBUG][       Thread-256173][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 13:22:02,017 [DEBUG][       Thread-256173][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 13:22:02,017 [DEBUG][       Thread-256173][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 13:22:02,017 [DEBUG][       Thread-256173][   transport.py][1871] : Compression: none
2025-06-13 13:22:02,017 [DEBUG][       Thread-256173][   transport.py][1871] : === End of kex handshake ===
2025-06-13 13:22:02,032 [DEBUG][       Thread-256173][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 13:22:02,033 [DEBUG][       Thread-256173][   transport.py][1871] : Switch to new keys ...
2025-06-13 13:22:02,033 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 13:22:02,034 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 13:22:02,034 [DEBUG][       Thread-256173][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 13:22:02,035 [DEBUG][       Thread-256173][   transport.py][1871] : userauth is OK
2025-06-13 13:22:02,049 [ INFO][       Thread-256173][   transport.py][1871] : Authentication (password) successful!
2025-06-13 13:22:02,049 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 13:22:02,648 [DEBUG][       Thread-256173][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 13:22:02,648 [DEBUG][       Thread-256173][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 13:22:02,688 [DEBUG][       Thread-256173][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 13:22:02,689 [DEBUG][       Thread-256173][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 13:22:02,691 [DEBUG][       Thread-256173][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 13:22:02,702 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 13:22:02,702 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 13:22:02,704 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 13:22:02,705 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 13:22:02,708 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 13:22:02,709 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 13:22:02,709 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 13:22:02,709 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 13:22:02,709 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.473201 -999.00  +13.40  11.56     40   +0.10 1 1 1 1 1   888    0 13.79 40.17 ----- 16.4 11.6 25.1 21.6 18.2 -29.2 16.9 -31.6 17.1 -29.2 18.1 -33.5
2025-06-13 13:22:02,709 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 13:22:02,709 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 13:22:02,709 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.473201
2025-06-13 13:22:02,709 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 13:22:02,710 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 13:22:02,710 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 13:22:02,710 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 13:22:02,710 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 13:22:02,710 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T13:21:56', tmtdew=14.8, humidity=35.97, cloud=0.0, wind=14.98, temperature=13.27, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T11:21:24.566', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 13:22:02,710 [DEBUG][       Thread-256173][   transport.py][1871] : EOF in transport thread
2025-06-13 13:22:02,784 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 13:22:02,795 [DEBUG][       Thread-256176][   transport.py][1871] : starting thread (client mode): 0x863ef0d0
2025-06-13 13:22:02,795 [DEBUG][       Thread-256176][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 13:22:02,811 [DEBUG][       Thread-256176][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 13:22:02,811 [ INFO][       Thread-256176][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 13:22:02,818 [DEBUG][       Thread-256176][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 13:22:02,818 [DEBUG][       Thread-256176][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 13:22:02,818 [DEBUG][       Thread-256176][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 13:22:02,818 [DEBUG][       Thread-256176][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:22:02,818 [DEBUG][       Thread-256176][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:22:02,819 [DEBUG][       Thread-256176][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:22:02,819 [DEBUG][       Thread-256176][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:22:02,819 [DEBUG][       Thread-256176][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 13:22:02,819 [DEBUG][       Thread-256176][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 13:22:02,819 [DEBUG][       Thread-256176][   transport.py][1871] : client lang: <none>
2025-06-13 13:22:02,819 [DEBUG][       Thread-256176][   transport.py][1871] : server lang: <none>
2025-06-13 13:22:02,819 [DEBUG][       Thread-256176][   transport.py][1871] : kex follows: False
2025-06-13 13:22:02,819 [DEBUG][       Thread-256176][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 13:22:02,819 [DEBUG][       Thread-256176][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 13:22:02,819 [DEBUG][       Thread-256176][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 13:22:02,819 [DEBUG][       Thread-256176][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 13:22:02,819 [DEBUG][       Thread-256176][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 13:22:02,819 [DEBUG][       Thread-256176][   transport.py][1871] : Compression: none
2025-06-13 13:22:02,819 [DEBUG][       Thread-256176][   transport.py][1871] : === End of kex handshake ===
2025-06-13 13:22:02,876 [DEBUG][       Thread-256176][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 13:22:02,877 [DEBUG][       Thread-256176][   transport.py][1871] : Switch to new keys ...
2025-06-13 13:22:02,877 [DEBUG][       Thread-256176][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 13:22:02,877 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 13:22:02,877 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 13:22:02,934 [DEBUG][       Thread-256176][   transport.py][1871] : userauth is OK
2025-06-13 13:22:02,934 [DEBUG][       Thread-256176][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 13:22:02,934 [DEBUG][       Thread-256176][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 13:22:02,934 [DEBUG][       Thread-256176][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 13:22:02,934 [DEBUG][       Thread-256176][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 13:22:02,948 [ INFO][       Thread-256176][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 13:22:02,948 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 13:22:02,949 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 13:22:04,001 [DEBUG][       Thread-256176][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 13:22:04,001 [DEBUG][       Thread-256176][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 13:22:04,051 [DEBUG][       Thread-256176][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 13:22:04,051 [DEBUG][       Thread-256176][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 13:22:04,060 [DEBUG][       Thread-256176][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 13:22:04,070 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 13:22:04,070 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 13:22:04,082 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 13:22:04,098 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 13:22:04,098 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 13:22:04,098 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 13:22:04,105 [DEBUG][       Thread-256176][   transport.py][1871] : EOF in transport thread
2025-06-13 13:22:04,563 [DEBUG][Thread-256178 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:22:13,591 [DEBUG][Thread-256179 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:22:14,108 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 13:22:14,108 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 13:22:14,108 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 13:22:14,111 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 13:22:14,574 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 13, 21, 56), 14.8, 35.97, 0.0, 14.98, 13.27, 0, 0, 0, 2, 0, 0),)
2025-06-13 13:22:14,574 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 13:21:56
2025-06-13 13:22:14,653 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 13:22:14,658 [DEBUG][       Thread-256180][   transport.py][1871] : starting thread (client mode): 0x86393af0
2025-06-13 13:22:14,658 [DEBUG][       Thread-256180][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 13:22:14,679 [DEBUG][       Thread-256180][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 13:22:14,679 [ INFO][       Thread-256180][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 13:22:14,683 [DEBUG][       Thread-256180][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 13:22:14,683 [DEBUG][       Thread-256180][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 13:22:14,683 [DEBUG][       Thread-256180][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 13:22:14,683 [DEBUG][       Thread-256180][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:22:14,683 [DEBUG][       Thread-256180][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:22:14,683 [DEBUG][       Thread-256180][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:22:14,683 [DEBUG][       Thread-256180][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:22:14,683 [DEBUG][       Thread-256180][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 13:22:14,683 [DEBUG][       Thread-256180][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 13:22:14,683 [DEBUG][       Thread-256180][   transport.py][1871] : client lang: <none>
2025-06-13 13:22:14,683 [DEBUG][       Thread-256180][   transport.py][1871] : server lang: <none>
2025-06-13 13:22:14,684 [DEBUG][       Thread-256180][   transport.py][1871] : kex follows: False
2025-06-13 13:22:14,684 [DEBUG][       Thread-256180][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 13:22:14,684 [DEBUG][       Thread-256180][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 13:22:14,684 [DEBUG][       Thread-256180][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 13:22:14,684 [DEBUG][       Thread-256180][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 13:22:14,684 [DEBUG][       Thread-256180][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 13:22:14,684 [DEBUG][       Thread-256180][   transport.py][1871] : Compression: none
2025-06-13 13:22:14,684 [DEBUG][       Thread-256180][   transport.py][1871] : === End of kex handshake ===
2025-06-13 13:22:14,700 [DEBUG][       Thread-256180][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 13:22:14,700 [DEBUG][       Thread-256180][   transport.py][1871] : Switch to new keys ...
2025-06-13 13:22:14,701 [DEBUG][       Thread-256180][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 13:22:14,701 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 13:22:14,701 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 13:22:14,702 [DEBUG][       Thread-256180][   transport.py][1871] : userauth is OK
2025-06-13 13:22:14,716 [ INFO][       Thread-256180][   transport.py][1871] : Authentication (password) successful!
2025-06-13 13:22:14,717 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 13:22:14,892 [DEBUG][Thread-256182 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:22:15,323 [DEBUG][       Thread-256180][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 13:22:15,324 [DEBUG][       Thread-256180][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 13:22:15,365 [DEBUG][       Thread-256180][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 13:22:15,365 [DEBUG][       Thread-256180][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 13:22:15,368 [DEBUG][       Thread-256180][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 13:22:15,379 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 13:22:15,380 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 13:22:15,382 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 13:22:15,384 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 13:22:15,389 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 13:22:15,391 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 13:22:15,392 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 13:22:15,392 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 13:22:15,393 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.473548 -999.00  +13.40  16.48     39   -0.10 1 1 1 1 1   888    0 14.10 44.44 ----- 14.7 16.5 9.0 25.2 18.1 -29.4 16.9 -31.4 17.0 -29.9 18.1 -27.9
2025-06-13 13:22:15,393 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 13:22:15,393 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 13:22:15,393 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.473548
2025-06-13 13:22:15,393 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 13:22:15,394 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 13:22:15,394 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 13:22:15,394 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 13:22:15,394 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 13:22:15,394 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T13:21:56', tmtdew=14.8, humidity=35.97, cloud=0.0, wind=14.98, temperature=13.27, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T11:21:54.547', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 13:22:15,396 [DEBUG][       Thread-256180][   transport.py][1871] : EOF in transport thread
2025-06-13 13:22:15,479 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 13:22:15,491 [DEBUG][       Thread-256184][   transport.py][1871] : starting thread (client mode): 0x86350b50
2025-06-13 13:22:15,491 [DEBUG][       Thread-256184][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 13:22:15,506 [DEBUG][       Thread-256184][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 13:22:15,506 [ INFO][       Thread-256184][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 13:22:15,516 [DEBUG][       Thread-256184][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 13:22:15,516 [DEBUG][       Thread-256184][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 13:22:15,516 [DEBUG][       Thread-256184][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 13:22:15,516 [DEBUG][       Thread-256184][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:22:15,516 [DEBUG][       Thread-256184][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:22:15,517 [DEBUG][       Thread-256184][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:22:15,517 [DEBUG][       Thread-256184][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:22:15,517 [DEBUG][       Thread-256184][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 13:22:15,517 [DEBUG][       Thread-256184][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 13:22:15,517 [DEBUG][       Thread-256184][   transport.py][1871] : client lang: <none>
2025-06-13 13:22:15,517 [DEBUG][       Thread-256184][   transport.py][1871] : server lang: <none>
2025-06-13 13:22:15,517 [DEBUG][       Thread-256184][   transport.py][1871] : kex follows: False
2025-06-13 13:22:15,517 [DEBUG][       Thread-256184][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 13:22:15,517 [DEBUG][       Thread-256184][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 13:22:15,517 [DEBUG][       Thread-256184][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 13:22:15,517 [DEBUG][       Thread-256184][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 13:22:15,517 [DEBUG][       Thread-256184][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 13:22:15,517 [DEBUG][       Thread-256184][   transport.py][1871] : Compression: none
2025-06-13 13:22:15,517 [DEBUG][       Thread-256184][   transport.py][1871] : === End of kex handshake ===
2025-06-13 13:22:15,575 [DEBUG][       Thread-256184][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 13:22:15,575 [DEBUG][       Thread-256184][   transport.py][1871] : Switch to new keys ...
2025-06-13 13:22:15,576 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 13:22:15,576 [DEBUG][       Thread-256184][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 13:22:15,577 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 13:22:15,632 [DEBUG][       Thread-256184][   transport.py][1871] : userauth is OK
2025-06-13 13:22:15,632 [DEBUG][       Thread-256184][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 13:22:15,632 [DEBUG][       Thread-256184][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 13:22:15,632 [DEBUG][       Thread-256184][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 13:22:15,632 [DEBUG][       Thread-256184][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 13:22:15,651 [ INFO][       Thread-256184][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 13:22:15,651 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 13:22:15,652 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 13:22:16,680 [DEBUG][       Thread-256184][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 13:22:16,680 [DEBUG][       Thread-256184][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 13:22:16,728 [DEBUG][       Thread-256184][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 13:22:16,728 [DEBUG][       Thread-256184][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 13:22:16,737 [DEBUG][       Thread-256184][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 13:22:16,746 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 13:22:16,747 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 13:22:16,756 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 13:22:16,766 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 13:22:16,766 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 13:22:16,767 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 13:22:16,778 [DEBUG][       Thread-256184][   transport.py][1871] : EOF in transport thread
2025-06-13 13:22:22,612 [DEBUG][Thread-256186 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:22:26,777 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 13:22:26,777 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 13:22:26,778 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 13:22:26,780 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 13:22:27,229 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 13, 21, 56), 14.8, 35.97, 0.0, 14.98, 13.27, 0, 0, 0, 2, 0, 0),)
2025-06-13 13:22:27,229 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 13:21:56
2025-06-13 13:22:27,309 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 13:22:27,313 [DEBUG][       Thread-256187][   transport.py][1871] : starting thread (client mode): 0x86352350
2025-06-13 13:22:27,313 [DEBUG][       Thread-256187][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 13:22:27,334 [DEBUG][       Thread-256187][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 13:22:27,334 [ INFO][       Thread-256187][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 13:22:27,337 [DEBUG][       Thread-256187][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 13:22:27,337 [DEBUG][       Thread-256187][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 13:22:27,337 [DEBUG][       Thread-256187][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 13:22:27,337 [DEBUG][       Thread-256187][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:22:27,338 [DEBUG][       Thread-256187][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:22:27,338 [DEBUG][       Thread-256187][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:22:27,338 [DEBUG][       Thread-256187][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:22:27,338 [DEBUG][       Thread-256187][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 13:22:27,338 [DEBUG][       Thread-256187][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 13:22:27,338 [DEBUG][       Thread-256187][   transport.py][1871] : client lang: <none>
2025-06-13 13:22:27,338 [DEBUG][       Thread-256187][   transport.py][1871] : server lang: <none>
2025-06-13 13:22:27,338 [DEBUG][       Thread-256187][   transport.py][1871] : kex follows: False
2025-06-13 13:22:27,338 [DEBUG][       Thread-256187][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 13:22:27,338 [DEBUG][       Thread-256187][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 13:22:27,338 [DEBUG][       Thread-256187][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 13:22:27,338 [DEBUG][       Thread-256187][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 13:22:27,338 [DEBUG][       Thread-256187][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 13:22:27,338 [DEBUG][       Thread-256187][   transport.py][1871] : Compression: none
2025-06-13 13:22:27,338 [DEBUG][       Thread-256187][   transport.py][1871] : === End of kex handshake ===
2025-06-13 13:22:27,350 [DEBUG][       Thread-256187][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 13:22:27,351 [DEBUG][       Thread-256187][   transport.py][1871] : Switch to new keys ...
2025-06-13 13:22:27,351 [DEBUG][       Thread-256187][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 13:22:27,351 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 13:22:27,352 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 13:22:27,353 [DEBUG][       Thread-256187][   transport.py][1871] : userauth is OK
2025-06-13 13:22:27,366 [ INFO][       Thread-256187][   transport.py][1871] : Authentication (password) successful!
2025-06-13 13:22:27,367 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 13:22:27,441 [DEBUG][Thread-256189 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:22:27,981 [DEBUG][       Thread-256187][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 13:22:27,981 [DEBUG][       Thread-256187][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 13:22:28,025 [DEBUG][       Thread-256187][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 13:22:28,025 [DEBUG][       Thread-256187][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 13:22:28,029 [DEBUG][       Thread-256187][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 13:22:28,039 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 13:22:28,040 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 13:22:28,042 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 13:22:28,044 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 13:22:28,050 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 13:22:28,053 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 13:22:28,053 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 13:22:28,054 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 13:22:28,054 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.473548 -999.00  +13.40  16.48     39   -0.10 1 1 1 1 1   888    0 14.10 44.44 ----- 14.7 16.5 9.0 25.2 18.1 -29.4 16.9 -31.4 17.0 -29.9 18.1 -27.9
2025-06-13 13:22:28,054 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 13:22:28,054 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 13:22:28,054 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.473548
2025-06-13 13:22:28,054 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 13:22:28,055 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 13:22:28,055 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 13:22:28,055 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 13:22:28,055 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 13:22:28,055 [DEBUG][       Thread-256187][   transport.py][1871] : EOF in transport thread
2025-06-13 13:22:28,056 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T13:21:56', tmtdew=14.8, humidity=35.97, cloud=0.0, wind=14.98, temperature=13.27, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T11:21:54.547', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 13:22:28,139 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 13:22:28,150 [DEBUG][       Thread-256191][   transport.py][1871] : starting thread (client mode): 0x86393a00
2025-06-13 13:22:28,150 [DEBUG][       Thread-256191][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 13:22:28,165 [DEBUG][       Thread-256191][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 13:22:28,165 [ INFO][       Thread-256191][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 13:22:28,173 [DEBUG][       Thread-256191][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 13:22:28,173 [DEBUG][       Thread-256191][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 13:22:28,173 [DEBUG][       Thread-256191][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 13:22:28,173 [DEBUG][       Thread-256191][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:22:28,173 [DEBUG][       Thread-256191][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:22:28,173 [DEBUG][       Thread-256191][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:22:28,173 [DEBUG][       Thread-256191][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:22:28,173 [DEBUG][       Thread-256191][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 13:22:28,173 [DEBUG][       Thread-256191][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 13:22:28,173 [DEBUG][       Thread-256191][   transport.py][1871] : client lang: <none>
2025-06-13 13:22:28,173 [DEBUG][       Thread-256191][   transport.py][1871] : server lang: <none>
2025-06-13 13:22:28,173 [DEBUG][       Thread-256191][   transport.py][1871] : kex follows: False
2025-06-13 13:22:28,173 [DEBUG][       Thread-256191][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 13:22:28,173 [DEBUG][       Thread-256191][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 13:22:28,174 [DEBUG][       Thread-256191][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 13:22:28,174 [DEBUG][       Thread-256191][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 13:22:28,174 [DEBUG][       Thread-256191][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 13:22:28,174 [DEBUG][       Thread-256191][   transport.py][1871] : Compression: none
2025-06-13 13:22:28,174 [DEBUG][       Thread-256191][   transport.py][1871] : === End of kex handshake ===
2025-06-13 13:22:28,234 [DEBUG][       Thread-256191][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 13:22:28,234 [DEBUG][       Thread-256191][   transport.py][1871] : Switch to new keys ...
2025-06-13 13:22:28,235 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 13:22:28,236 [DEBUG][       Thread-256191][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 13:22:28,237 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 13:22:28,290 [DEBUG][       Thread-256191][   transport.py][1871] : userauth is OK
2025-06-13 13:22:28,290 [DEBUG][       Thread-256191][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 13:22:28,290 [DEBUG][       Thread-256191][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 13:22:28,290 [DEBUG][       Thread-256191][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 13:22:28,290 [DEBUG][       Thread-256191][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 13:22:28,305 [ INFO][       Thread-256191][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 13:22:28,305 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 13:22:28,305 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 13:22:28,525 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:22:28,527 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:22:29,384 [DEBUG][       Thread-256191][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 13:22:29,384 [DEBUG][       Thread-256191][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 13:22:29,432 [DEBUG][       Thread-256191][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 13:22:29,432 [DEBUG][       Thread-256191][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 13:22:29,441 [DEBUG][       Thread-256191][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 13:22:29,449 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 13:22:29,449 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 13:22:29,457 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 13:22:29,465 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 13:22:29,465 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 13:22:29,465 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 13:22:29,473 [DEBUG][       Thread-256191][   transport.py][1871] : EOF in transport thread
2025-06-13 13:22:31,634 [DEBUG][Thread-256193 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:22:39,474 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 13:22:39,474 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 13:22:39,474 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 13:22:39,477 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 13:22:39,945 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 13, 22, 28), 14.52, 36.85, 0.0, 17.12, 13.41, 0, 0, 0, 2, 0, 0),)
2025-06-13 13:22:39,945 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 13:22:28
2025-06-13 13:22:40,026 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 13:22:40,030 [DEBUG][       Thread-256194][   transport.py][1871] : starting thread (client mode): 0x86393f40
2025-06-13 13:22:40,030 [DEBUG][       Thread-256194][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 13:22:40,050 [DEBUG][       Thread-256194][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 13:22:40,050 [ INFO][       Thread-256194][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 13:22:40,052 [DEBUG][       Thread-256194][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 13:22:40,052 [DEBUG][       Thread-256194][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 13:22:40,052 [DEBUG][       Thread-256194][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 13:22:40,052 [DEBUG][       Thread-256194][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:22:40,052 [DEBUG][       Thread-256194][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:22:40,052 [DEBUG][       Thread-256194][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:22:40,052 [DEBUG][       Thread-256194][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:22:40,052 [DEBUG][       Thread-256194][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 13:22:40,052 [DEBUG][       Thread-256194][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 13:22:40,052 [DEBUG][       Thread-256194][   transport.py][1871] : client lang: <none>
2025-06-13 13:22:40,052 [DEBUG][       Thread-256194][   transport.py][1871] : server lang: <none>
2025-06-13 13:22:40,052 [DEBUG][       Thread-256194][   transport.py][1871] : kex follows: False
2025-06-13 13:22:40,052 [DEBUG][       Thread-256194][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 13:22:40,052 [DEBUG][       Thread-256194][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 13:22:40,052 [DEBUG][       Thread-256194][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 13:22:40,052 [DEBUG][       Thread-256194][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 13:22:40,052 [DEBUG][       Thread-256194][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 13:22:40,052 [DEBUG][       Thread-256194][   transport.py][1871] : Compression: none
2025-06-13 13:22:40,052 [DEBUG][       Thread-256194][   transport.py][1871] : === End of kex handshake ===
2025-06-13 13:22:40,069 [DEBUG][       Thread-256194][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 13:22:40,069 [DEBUG][       Thread-256194][   transport.py][1871] : Switch to new keys ...
2025-06-13 13:22:40,069 [DEBUG][       Thread-256194][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 13:22:40,069 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 13:22:40,069 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 13:22:40,070 [DEBUG][       Thread-256194][   transport.py][1871] : userauth is OK
2025-06-13 13:22:40,083 [ INFO][       Thread-256194][   transport.py][1871] : Authentication (password) successful!
2025-06-13 13:22:40,083 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 13:22:40,656 [DEBUG][Thread-256196 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:22:40,676 [DEBUG][       Thread-256194][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 13:22:40,676 [DEBUG][       Thread-256194][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 13:22:40,717 [DEBUG][       Thread-256194][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 13:22:40,717 [DEBUG][       Thread-256194][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 13:22:40,720 [DEBUG][       Thread-256194][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 13:22:40,731 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 13:22:40,731 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 13:22:40,731 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 13:22:40,732 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 13:22:40,735 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 13:22:40,736 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 13:22:40,736 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 13:22:40,736 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 13:22:40,736 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.473896 -999.00  +13.40  16.78     39   -0.00 1 1 1 1 1   888    0 14.59 55.91 ----- 18.1 16.8 19.3 22.1 18.1 -29.7 16.9 -30.8 17.0 -29.7 18.2 -27.6
2025-06-13 13:22:40,736 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 13:22:40,736 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 13:22:40,736 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.473896
2025-06-13 13:22:40,736 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 13:22:40,736 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 13:22:40,736 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 13:22:40,736 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 13:22:40,736 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 13:22:40,736 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T13:22:28', tmtdew=14.52, humidity=36.85, cloud=0.0, wind=17.12, temperature=13.41, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T11:22:24.614', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 13:22:40,737 [DEBUG][       Thread-256194][   transport.py][1871] : EOF in transport thread
2025-06-13 13:22:40,808 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 13:22:40,819 [DEBUG][       Thread-256198][   transport.py][1871] : starting thread (client mode): 0x863a7670
2025-06-13 13:22:40,819 [DEBUG][       Thread-256198][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 13:22:40,835 [DEBUG][       Thread-256198][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 13:22:40,835 [ INFO][       Thread-256198][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 13:22:40,842 [DEBUG][       Thread-256198][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 13:22:40,842 [DEBUG][       Thread-256198][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 13:22:40,842 [DEBUG][       Thread-256198][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 13:22:40,842 [DEBUG][       Thread-256198][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:22:40,842 [DEBUG][       Thread-256198][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:22:40,842 [DEBUG][       Thread-256198][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:22:40,842 [DEBUG][       Thread-256198][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:22:40,842 [DEBUG][       Thread-256198][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 13:22:40,842 [DEBUG][       Thread-256198][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 13:22:40,842 [DEBUG][       Thread-256198][   transport.py][1871] : client lang: <none>
2025-06-13 13:22:40,842 [DEBUG][       Thread-256198][   transport.py][1871] : server lang: <none>
2025-06-13 13:22:40,842 [DEBUG][       Thread-256198][   transport.py][1871] : kex follows: False
2025-06-13 13:22:40,842 [DEBUG][       Thread-256198][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 13:22:40,842 [DEBUG][       Thread-256198][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 13:22:40,842 [DEBUG][       Thread-256198][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 13:22:40,842 [DEBUG][       Thread-256198][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 13:22:40,842 [DEBUG][       Thread-256198][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 13:22:40,842 [DEBUG][       Thread-256198][   transport.py][1871] : Compression: none
2025-06-13 13:22:40,842 [DEBUG][       Thread-256198][   transport.py][1871] : === End of kex handshake ===
2025-06-13 13:22:40,902 [DEBUG][       Thread-256198][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 13:22:40,903 [DEBUG][       Thread-256198][   transport.py][1871] : Switch to new keys ...
2025-06-13 13:22:40,904 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 13:22:40,904 [DEBUG][       Thread-256198][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 13:22:40,905 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 13:22:40,958 [DEBUG][       Thread-256198][   transport.py][1871] : userauth is OK
2025-06-13 13:22:40,959 [DEBUG][       Thread-256198][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 13:22:40,959 [DEBUG][       Thread-256198][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 13:22:40,959 [DEBUG][       Thread-256198][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 13:22:40,959 [DEBUG][       Thread-256198][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 13:22:40,979 [ INFO][       Thread-256198][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 13:22:40,980 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 13:22:40,980 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 13:22:41,995 [DEBUG][       Thread-256198][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 13:22:41,996 [DEBUG][       Thread-256198][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 13:22:42,044 [DEBUG][       Thread-256198][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 13:22:42,044 [DEBUG][       Thread-256198][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 13:22:42,053 [DEBUG][       Thread-256198][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 13:22:42,062 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 13:22:42,062 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 13:22:42,071 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 13:22:42,080 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 13:22:42,080 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 13:22:42,081 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 13:22:42,088 [DEBUG][       Thread-256198][   transport.py][1871] : EOF in transport thread
2025-06-13 13:22:49,676 [DEBUG][Thread-256200 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:22:51,637 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:22:51,639 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:22:52,091 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 13:22:52,091 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 13:22:52,092 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 13:22:52,094 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 13:22:52,554 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 13, 22, 28), 14.52, 36.85, 0.0, 17.12, 13.41, 0, 0, 0, 2, 0, 0),)
2025-06-13 13:22:52,555 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 13:22:28
2025-06-13 13:22:52,635 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 13:22:52,639 [DEBUG][       Thread-256201][   transport.py][1871] : starting thread (client mode): 0x84206020
2025-06-13 13:22:52,639 [DEBUG][       Thread-256201][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 13:22:52,660 [DEBUG][       Thread-256201][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 13:22:52,660 [ INFO][       Thread-256201][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 13:22:52,664 [DEBUG][       Thread-256201][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 13:22:52,664 [DEBUG][       Thread-256201][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 13:22:52,664 [DEBUG][       Thread-256201][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 13:22:52,664 [DEBUG][       Thread-256201][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:22:52,664 [DEBUG][       Thread-256201][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:22:52,664 [DEBUG][       Thread-256201][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:22:52,664 [DEBUG][       Thread-256201][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:22:52,664 [DEBUG][       Thread-256201][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 13:22:52,664 [DEBUG][       Thread-256201][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 13:22:52,664 [DEBUG][       Thread-256201][   transport.py][1871] : client lang: <none>
2025-06-13 13:22:52,664 [DEBUG][       Thread-256201][   transport.py][1871] : server lang: <none>
2025-06-13 13:22:52,664 [DEBUG][       Thread-256201][   transport.py][1871] : kex follows: False
2025-06-13 13:22:52,664 [DEBUG][       Thread-256201][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 13:22:52,664 [DEBUG][       Thread-256201][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 13:22:52,664 [DEBUG][       Thread-256201][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 13:22:52,664 [DEBUG][       Thread-256201][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 13:22:52,664 [DEBUG][       Thread-256201][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 13:22:52,664 [DEBUG][       Thread-256201][   transport.py][1871] : Compression: none
2025-06-13 13:22:52,664 [DEBUG][       Thread-256201][   transport.py][1871] : === End of kex handshake ===
2025-06-13 13:22:52,682 [DEBUG][       Thread-256201][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 13:22:52,682 [DEBUG][       Thread-256201][   transport.py][1871] : Switch to new keys ...
2025-06-13 13:22:52,683 [DEBUG][       Thread-256201][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 13:22:52,683 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 13:22:52,683 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 13:22:52,685 [DEBUG][       Thread-256201][   transport.py][1871] : userauth is OK
2025-06-13 13:22:52,710 [ INFO][       Thread-256201][   transport.py][1871] : Authentication (password) successful!
2025-06-13 13:22:52,711 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 13:22:53,330 [DEBUG][       Thread-256201][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 13:22:53,330 [DEBUG][       Thread-256201][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 13:22:53,373 [DEBUG][       Thread-256201][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 13:22:53,373 [DEBUG][       Thread-256201][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 13:22:53,376 [DEBUG][       Thread-256201][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 13:22:53,390 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 13:22:53,391 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 13:22:53,392 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 13:22:53,394 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 13:22:53,399 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 13:22:53,402 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 13:22:53,402 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 13:22:53,402 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 13:22:53,403 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.473896 -999.00  +13.40  16.78     39   -0.00 1 1 1 1 1   888    0 14.59 55.91 ----- 18.1 16.8 19.3 22.1 18.1 -29.7 16.9 -30.8 17.0 -29.7 18.2 -27.6
2025-06-13 13:22:53,403 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 13:22:53,403 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 13:22:53,403 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.473896
2025-06-13 13:22:53,403 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 13:22:53,404 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 13:22:53,404 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 13:22:53,404 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 13:22:53,404 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 13:22:53,404 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T13:22:28', tmtdew=14.52, humidity=36.85, cloud=0.0, wind=17.12, temperature=13.41, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T11:22:24.614', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 13:22:53,405 [DEBUG][       Thread-256201][   transport.py][1871] : EOF in transport thread
2025-06-13 13:22:53,488 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 13:22:53,497 [DEBUG][       Thread-256204][   transport.py][1871] : starting thread (client mode): 0x86353af0
2025-06-13 13:22:53,497 [DEBUG][       Thread-256204][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 13:22:53,512 [DEBUG][       Thread-256204][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 13:22:53,512 [ INFO][       Thread-256204][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 13:22:53,520 [DEBUG][       Thread-256204][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 13:22:53,520 [DEBUG][       Thread-256204][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 13:22:53,520 [DEBUG][       Thread-256204][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 13:22:53,520 [DEBUG][       Thread-256204][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:22:53,520 [DEBUG][       Thread-256204][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:22:53,520 [DEBUG][       Thread-256204][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:22:53,520 [DEBUG][       Thread-256204][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:22:53,520 [DEBUG][       Thread-256204][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 13:22:53,520 [DEBUG][       Thread-256204][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 13:22:53,520 [DEBUG][       Thread-256204][   transport.py][1871] : client lang: <none>
2025-06-13 13:22:53,520 [DEBUG][       Thread-256204][   transport.py][1871] : server lang: <none>
2025-06-13 13:22:53,520 [DEBUG][       Thread-256204][   transport.py][1871] : kex follows: False
2025-06-13 13:22:53,520 [DEBUG][       Thread-256204][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 13:22:53,520 [DEBUG][       Thread-256204][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 13:22:53,520 [DEBUG][       Thread-256204][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 13:22:53,520 [DEBUG][       Thread-256204][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 13:22:53,521 [DEBUG][       Thread-256204][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 13:22:53,521 [DEBUG][       Thread-256204][   transport.py][1871] : Compression: none
2025-06-13 13:22:53,521 [DEBUG][       Thread-256204][   transport.py][1871] : === End of kex handshake ===
2025-06-13 13:22:53,578 [DEBUG][       Thread-256204][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 13:22:53,579 [DEBUG][       Thread-256204][   transport.py][1871] : Switch to new keys ...
2025-06-13 13:22:53,579 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 13:22:53,580 [DEBUG][       Thread-256204][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 13:22:53,580 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 13:22:53,634 [DEBUG][       Thread-256204][   transport.py][1871] : userauth is OK
2025-06-13 13:22:53,634 [DEBUG][       Thread-256204][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 13:22:53,635 [DEBUG][       Thread-256204][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 13:22:53,635 [DEBUG][       Thread-256204][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 13:22:53,635 [DEBUG][       Thread-256204][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 13:22:53,653 [ INFO][       Thread-256204][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 13:22:53,654 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 13:22:53,654 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 13:22:54,645 [DEBUG][       Thread-256204][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 13:22:54,646 [DEBUG][       Thread-256204][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 13:22:54,696 [DEBUG][       Thread-256204][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 13:22:54,696 [DEBUG][       Thread-256204][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 13:22:54,705 [DEBUG][       Thread-256204][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 13:22:54,715 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 13:22:54,715 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 13:22:54,724 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 13:22:54,733 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 13:22:54,734 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 13:22:54,734 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 13:22:54,742 [DEBUG][       Thread-256204][   transport.py][1871] : EOF in transport thread
2025-06-13 13:22:58,713 [DEBUG][Thread-256206 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:23:04,738 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 13:23:04,738 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 13:23:04,738 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 13:23:04,741 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 13:23:05,205 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 13, 22, 28), 14.52, 36.85, 0.0, 17.12, 13.41, 0, 0, 0, 2, 0, 0),)
2025-06-13 13:23:05,205 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 13:22:28
2025-06-13 13:23:05,287 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 13:23:05,291 [DEBUG][       Thread-256207][   transport.py][1871] : starting thread (client mode): 0x86392920
2025-06-13 13:23:05,291 [DEBUG][       Thread-256207][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 13:23:05,312 [DEBUG][       Thread-256207][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 13:23:05,312 [ INFO][       Thread-256207][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 13:23:05,315 [DEBUG][       Thread-256207][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 13:23:05,315 [DEBUG][       Thread-256207][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 13:23:05,315 [DEBUG][       Thread-256207][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 13:23:05,315 [DEBUG][       Thread-256207][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:23:05,315 [DEBUG][       Thread-256207][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:23:05,315 [DEBUG][       Thread-256207][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:23:05,315 [DEBUG][       Thread-256207][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:23:05,315 [DEBUG][       Thread-256207][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 13:23:05,315 [DEBUG][       Thread-256207][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 13:23:05,315 [DEBUG][       Thread-256207][   transport.py][1871] : client lang: <none>
2025-06-13 13:23:05,315 [DEBUG][       Thread-256207][   transport.py][1871] : server lang: <none>
2025-06-13 13:23:05,315 [DEBUG][       Thread-256207][   transport.py][1871] : kex follows: False
2025-06-13 13:23:05,315 [DEBUG][       Thread-256207][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 13:23:05,315 [DEBUG][       Thread-256207][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 13:23:05,315 [DEBUG][       Thread-256207][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 13:23:05,315 [DEBUG][       Thread-256207][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 13:23:05,315 [DEBUG][       Thread-256207][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 13:23:05,316 [DEBUG][       Thread-256207][   transport.py][1871] : Compression: none
2025-06-13 13:23:05,316 [DEBUG][       Thread-256207][   transport.py][1871] : === End of kex handshake ===
2025-06-13 13:23:05,333 [DEBUG][       Thread-256207][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 13:23:05,333 [DEBUG][       Thread-256207][   transport.py][1871] : Switch to new keys ...
2025-06-13 13:23:05,334 [DEBUG][       Thread-256207][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 13:23:05,334 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 13:23:05,334 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 13:23:05,336 [DEBUG][       Thread-256207][   transport.py][1871] : userauth is OK
2025-06-13 13:23:05,349 [ INFO][       Thread-256207][   transport.py][1871] : Authentication (password) successful!
2025-06-13 13:23:05,349 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 13:23:05,991 [DEBUG][       Thread-256207][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 13:23:05,991 [DEBUG][       Thread-256207][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 13:23:06,033 [DEBUG][       Thread-256207][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 13:23:06,033 [DEBUG][       Thread-256207][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 13:23:06,037 [DEBUG][       Thread-256207][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 13:23:06,050 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 13:23:06,051 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 13:23:06,053 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 13:23:06,055 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 13:23:06,061 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 13:23:06,063 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 13:23:06,064 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 13:23:06,064 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 13:23:06,064 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.473896 -999.00  +13.40  16.78     39   -0.00 1 1 1 1 1   888    0 14.59 55.91 ----- 18.1 16.8 19.3 22.1 18.1 -29.7 16.9 -30.8 17.0 -29.7 18.2 -27.6
2025-06-13 13:23:06,065 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 13:23:06,065 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 13:23:06,065 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.473896
2025-06-13 13:23:06,065 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 13:23:06,066 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 13:23:06,066 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 13:23:06,066 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 13:23:06,066 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 13:23:06,066 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T13:22:28', tmtdew=14.52, humidity=36.85, cloud=0.0, wind=17.12, temperature=13.41, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T11:22:24.614', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 13:23:06,066 [DEBUG][       Thread-256207][   transport.py][1871] : EOF in transport thread
2025-06-13 13:23:06,151 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 13:23:06,162 [DEBUG][       Thread-256210][   transport.py][1871] : starting thread (client mode): 0x863a7670
2025-06-13 13:23:06,162 [DEBUG][       Thread-256210][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 13:23:06,178 [DEBUG][       Thread-256210][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 13:23:06,178 [ INFO][       Thread-256210][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 13:23:06,192 [DEBUG][       Thread-256210][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 13:23:06,192 [DEBUG][       Thread-256210][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 13:23:06,193 [DEBUG][       Thread-256210][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 13:23:06,193 [DEBUG][       Thread-256210][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:23:06,193 [DEBUG][       Thread-256210][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:23:06,193 [DEBUG][       Thread-256210][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:23:06,193 [DEBUG][       Thread-256210][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:23:06,193 [DEBUG][       Thread-256210][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 13:23:06,193 [DEBUG][       Thread-256210][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 13:23:06,193 [DEBUG][       Thread-256210][   transport.py][1871] : client lang: <none>
2025-06-13 13:23:06,193 [DEBUG][       Thread-256210][   transport.py][1871] : server lang: <none>
2025-06-13 13:23:06,193 [DEBUG][       Thread-256210][   transport.py][1871] : kex follows: False
2025-06-13 13:23:06,193 [DEBUG][       Thread-256210][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 13:23:06,193 [DEBUG][       Thread-256210][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 13:23:06,193 [DEBUG][       Thread-256210][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 13:23:06,193 [DEBUG][       Thread-256210][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 13:23:06,193 [DEBUG][       Thread-256210][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 13:23:06,193 [DEBUG][       Thread-256210][   transport.py][1871] : Compression: none
2025-06-13 13:23:06,194 [DEBUG][       Thread-256210][   transport.py][1871] : === End of kex handshake ===
2025-06-13 13:23:06,247 [DEBUG][       Thread-256210][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 13:23:06,248 [DEBUG][       Thread-256210][   transport.py][1871] : Switch to new keys ...
2025-06-13 13:23:06,249 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 13:23:06,249 [DEBUG][       Thread-256210][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 13:23:06,250 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 13:23:06,321 [DEBUG][       Thread-256210][   transport.py][1871] : userauth is OK
2025-06-13 13:23:06,322 [DEBUG][       Thread-256210][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 13:23:06,322 [DEBUG][       Thread-256210][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 13:23:06,322 [DEBUG][       Thread-256210][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 13:23:06,322 [DEBUG][       Thread-256210][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 13:23:06,348 [ INFO][       Thread-256210][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 13:23:06,349 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 13:23:06,349 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 13:23:07,442 [DEBUG][       Thread-256210][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 13:23:07,442 [DEBUG][       Thread-256210][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 13:23:07,492 [DEBUG][       Thread-256210][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 13:23:07,492 [DEBUG][       Thread-256210][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 13:23:07,501 [DEBUG][       Thread-256210][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 13:23:07,510 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 13:23:07,511 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 13:23:07,519 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 13:23:07,528 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 13:23:07,529 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 13:23:07,529 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 13:23:07,537 [DEBUG][       Thread-256210][   transport.py][1871] : EOF in transport thread
2025-06-13 13:23:07,733 [DEBUG][Thread-256212 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:23:14,945 [DEBUG][Thread-256213 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:23:16,756 [DEBUG][Thread-256214 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:23:17,540 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 13:23:17,540 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 13:23:17,540 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 13:23:17,543 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 13:23:17,995 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 13, 22, 28), 14.52, 36.85, 0.0, 17.12, 13.41, 0, 0, 0, 2, 0, 0),)
2025-06-13 13:23:17,995 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 13:22:28
2025-06-13 13:23:18,078 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 13:23:18,082 [DEBUG][       Thread-256215][   transport.py][1871] : starting thread (client mode): 0x84205750
2025-06-13 13:23:18,082 [DEBUG][       Thread-256215][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 13:23:18,103 [DEBUG][       Thread-256215][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 13:23:18,103 [ INFO][       Thread-256215][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 13:23:18,106 [DEBUG][       Thread-256215][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 13:23:18,106 [DEBUG][       Thread-256215][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 13:23:18,106 [DEBUG][       Thread-256215][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 13:23:18,106 [DEBUG][       Thread-256215][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:23:18,106 [DEBUG][       Thread-256215][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:23:18,106 [DEBUG][       Thread-256215][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:23:18,106 [DEBUG][       Thread-256215][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:23:18,106 [DEBUG][       Thread-256215][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 13:23:18,106 [DEBUG][       Thread-256215][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 13:23:18,106 [DEBUG][       Thread-256215][   transport.py][1871] : client lang: <none>
2025-06-13 13:23:18,106 [DEBUG][       Thread-256215][   transport.py][1871] : server lang: <none>
2025-06-13 13:23:18,106 [DEBUG][       Thread-256215][   transport.py][1871] : kex follows: False
2025-06-13 13:23:18,106 [DEBUG][       Thread-256215][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 13:23:18,106 [DEBUG][       Thread-256215][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 13:23:18,106 [DEBUG][       Thread-256215][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 13:23:18,106 [DEBUG][       Thread-256215][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 13:23:18,106 [DEBUG][       Thread-256215][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 13:23:18,106 [DEBUG][       Thread-256215][   transport.py][1871] : Compression: none
2025-06-13 13:23:18,106 [DEBUG][       Thread-256215][   transport.py][1871] : === End of kex handshake ===
2025-06-13 13:23:18,122 [DEBUG][       Thread-256215][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 13:23:18,123 [DEBUG][       Thread-256215][   transport.py][1871] : Switch to new keys ...
2025-06-13 13:23:18,123 [DEBUG][       Thread-256215][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 13:23:18,123 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 13:23:18,123 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 13:23:18,123 [DEBUG][       Thread-256215][   transport.py][1871] : userauth is OK
2025-06-13 13:23:18,136 [ INFO][       Thread-256215][   transport.py][1871] : Authentication (password) successful!
2025-06-13 13:23:18,136 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 13:23:18,805 [DEBUG][       Thread-256215][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 13:23:18,805 [DEBUG][       Thread-256215][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 13:23:18,849 [DEBUG][       Thread-256215][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 13:23:18,849 [DEBUG][       Thread-256215][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 13:23:18,853 [DEBUG][       Thread-256215][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 13:23:18,866 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 13:23:18,866 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 13:23:18,868 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 13:23:18,871 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 13:23:18,877 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 13:23:18,879 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 13:23:18,879 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 13:23:18,880 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 13:23:18,880 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.474243 -999.00  +13.40  18.01     41   +0.40 1 1 1 1 1   888    0 14.36 57.19 ----- 14.8 18.0 42.8 28.4 18.1 -29.4 16.8 -31.3 17.0 -30.5 18.3 -27.5
2025-06-13 13:23:18,880 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 13:23:18,880 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 13:23:18,880 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.474243
2025-06-13 13:23:18,881 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 13:23:18,881 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 13:23:18,882 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 13:23:18,882 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 13:23:18,882 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 13:23:18,882 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T13:22:28', tmtdew=14.52, humidity=36.85, cloud=0.0, wind=17.12, temperature=13.41, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T11:22:54.595', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 13:23:18,882 [DEBUG][       Thread-256215][   transport.py][1871] : EOF in transport thread
2025-06-13 13:23:18,967 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 13:23:18,978 [DEBUG][       Thread-256218][   transport.py][1871] : starting thread (client mode): 0x867fc430
2025-06-13 13:23:18,978 [DEBUG][       Thread-256218][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 13:23:18,994 [DEBUG][       Thread-256218][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 13:23:18,994 [ INFO][       Thread-256218][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 13:23:19,002 [DEBUG][       Thread-256218][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 13:23:19,002 [DEBUG][       Thread-256218][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 13:23:19,002 [DEBUG][       Thread-256218][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 13:23:19,002 [DEBUG][       Thread-256218][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:23:19,002 [DEBUG][       Thread-256218][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:23:19,002 [DEBUG][       Thread-256218][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:23:19,002 [DEBUG][       Thread-256218][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:23:19,002 [DEBUG][       Thread-256218][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 13:23:19,002 [DEBUG][       Thread-256218][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 13:23:19,002 [DEBUG][       Thread-256218][   transport.py][1871] : client lang: <none>
2025-06-13 13:23:19,002 [DEBUG][       Thread-256218][   transport.py][1871] : server lang: <none>
2025-06-13 13:23:19,002 [DEBUG][       Thread-256218][   transport.py][1871] : kex follows: False
2025-06-13 13:23:19,002 [DEBUG][       Thread-256218][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 13:23:19,002 [DEBUG][       Thread-256218][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 13:23:19,002 [DEBUG][       Thread-256218][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 13:23:19,002 [DEBUG][       Thread-256218][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 13:23:19,002 [DEBUG][       Thread-256218][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 13:23:19,003 [DEBUG][       Thread-256218][   transport.py][1871] : Compression: none
2025-06-13 13:23:19,003 [DEBUG][       Thread-256218][   transport.py][1871] : === End of kex handshake ===
2025-06-13 13:23:19,060 [DEBUG][       Thread-256218][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 13:23:19,060 [DEBUG][       Thread-256218][   transport.py][1871] : Switch to new keys ...
2025-06-13 13:23:19,061 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 13:23:19,062 [DEBUG][       Thread-256218][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 13:23:19,063 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 13:23:19,118 [DEBUG][       Thread-256218][   transport.py][1871] : userauth is OK
2025-06-13 13:23:19,119 [DEBUG][       Thread-256218][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 13:23:19,119 [DEBUG][       Thread-256218][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 13:23:19,119 [DEBUG][       Thread-256218][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 13:23:19,119 [DEBUG][       Thread-256218][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 13:23:19,142 [ INFO][       Thread-256218][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 13:23:19,142 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 13:23:19,143 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 13:23:20,163 [DEBUG][       Thread-256218][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 13:23:20,163 [DEBUG][       Thread-256218][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 13:23:20,212 [DEBUG][       Thread-256218][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 13:23:20,212 [DEBUG][       Thread-256218][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 13:23:20,221 [DEBUG][       Thread-256218][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 13:23:20,237 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 13:23:20,237 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 13:23:20,246 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 13:23:20,255 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 13:23:20,255 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 13:23:20,256 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 13:23:20,264 [DEBUG][       Thread-256218][   transport.py][1871] : EOF in transport thread
2025-06-13 13:23:25,774 [DEBUG][Thread-256220 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:23:28,597 [DEBUG][Thread-256221 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:23:29,678 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:23:29,679 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:23:30,260 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 13:23:30,260 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 13:23:30,260 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 13:23:30,263 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 13:23:30,730 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 13, 22, 28), 14.52, 36.85, 0.0, 17.12, 13.41, 0, 0, 0, 2, 0, 0),)
2025-06-13 13:23:30,730 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 13:22:28
2025-06-13 13:23:30,812 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 13:23:30,817 [DEBUG][       Thread-256222][   transport.py][1871] : starting thread (client mode): 0x86391150
2025-06-13 13:23:30,817 [DEBUG][       Thread-256222][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 13:23:30,837 [DEBUG][       Thread-256222][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 13:23:30,837 [ INFO][       Thread-256222][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 13:23:30,841 [DEBUG][       Thread-256222][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 13:23:30,841 [DEBUG][       Thread-256222][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 13:23:30,841 [DEBUG][       Thread-256222][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 13:23:30,841 [DEBUG][       Thread-256222][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:23:30,841 [DEBUG][       Thread-256222][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:23:30,841 [DEBUG][       Thread-256222][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:23:30,841 [DEBUG][       Thread-256222][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:23:30,841 [DEBUG][       Thread-256222][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 13:23:30,841 [DEBUG][       Thread-256222][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 13:23:30,841 [DEBUG][       Thread-256222][   transport.py][1871] : client lang: <none>
2025-06-13 13:23:30,841 [DEBUG][       Thread-256222][   transport.py][1871] : server lang: <none>
2025-06-13 13:23:30,841 [DEBUG][       Thread-256222][   transport.py][1871] : kex follows: False
2025-06-13 13:23:30,841 [DEBUG][       Thread-256222][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 13:23:30,842 [DEBUG][       Thread-256222][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 13:23:30,842 [DEBUG][       Thread-256222][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 13:23:30,842 [DEBUG][       Thread-256222][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 13:23:30,842 [DEBUG][       Thread-256222][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 13:23:30,842 [DEBUG][       Thread-256222][   transport.py][1871] : Compression: none
2025-06-13 13:23:30,842 [DEBUG][       Thread-256222][   transport.py][1871] : === End of kex handshake ===
2025-06-13 13:23:30,861 [DEBUG][       Thread-256222][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 13:23:30,861 [DEBUG][       Thread-256222][   transport.py][1871] : Switch to new keys ...
2025-06-13 13:23:30,862 [DEBUG][       Thread-256222][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 13:23:30,862 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 13:23:30,862 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 13:23:30,863 [DEBUG][       Thread-256222][   transport.py][1871] : userauth is OK
2025-06-13 13:23:30,887 [ INFO][       Thread-256222][   transport.py][1871] : Authentication (password) successful!
2025-06-13 13:23:30,888 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 13:23:31,514 [DEBUG][       Thread-256222][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 13:23:31,514 [DEBUG][       Thread-256222][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 13:23:31,557 [DEBUG][       Thread-256222][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 13:23:31,557 [DEBUG][       Thread-256222][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 13:23:31,560 [DEBUG][       Thread-256222][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 13:23:31,574 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 13:23:31,574 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 13:23:31,576 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 13:23:31,578 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 13:23:31,584 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 13:23:31,586 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 13:23:31,586 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 13:23:31,587 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 13:23:31,587 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.474243 -999.00  +13.40  18.01     41   +0.40 1 1 1 1 1   888    0 14.36 57.19 ----- 14.8 18.0 42.8 28.4 18.1 -29.4 16.8 -31.3 17.0 -30.5 18.3 -27.5
2025-06-13 13:23:31,587 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 13:23:31,587 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 13:23:31,587 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.474243
2025-06-13 13:23:31,588 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 13:23:31,588 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 13:23:31,589 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 13:23:31,589 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 13:23:31,589 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 13:23:31,589 [DEBUG][       Thread-256222][   transport.py][1871] : EOF in transport thread
2025-06-13 13:23:31,589 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T13:22:28', tmtdew=14.52, humidity=36.85, cloud=0.0, wind=17.12, temperature=13.41, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T11:22:54.595', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 13:23:31,673 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 13:23:31,683 [DEBUG][       Thread-256225][   transport.py][1871] : starting thread (client mode): 0x863c9ff0
2025-06-13 13:23:31,683 [DEBUG][       Thread-256225][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 13:23:31,699 [DEBUG][       Thread-256225][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 13:23:31,699 [ INFO][       Thread-256225][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 13:23:31,708 [DEBUG][       Thread-256225][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 13:23:31,708 [DEBUG][       Thread-256225][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 13:23:31,708 [DEBUG][       Thread-256225][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 13:23:31,708 [DEBUG][       Thread-256225][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:23:31,708 [DEBUG][       Thread-256225][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:23:31,708 [DEBUG][       Thread-256225][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:23:31,708 [DEBUG][       Thread-256225][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:23:31,708 [DEBUG][       Thread-256225][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 13:23:31,708 [DEBUG][       Thread-256225][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 13:23:31,709 [DEBUG][       Thread-256225][   transport.py][1871] : client lang: <none>
2025-06-13 13:23:31,709 [DEBUG][       Thread-256225][   transport.py][1871] : server lang: <none>
2025-06-13 13:23:31,709 [DEBUG][       Thread-256225][   transport.py][1871] : kex follows: False
2025-06-13 13:23:31,709 [DEBUG][       Thread-256225][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 13:23:31,709 [DEBUG][       Thread-256225][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 13:23:31,709 [DEBUG][       Thread-256225][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 13:23:31,709 [DEBUG][       Thread-256225][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 13:23:31,709 [DEBUG][       Thread-256225][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 13:23:31,709 [DEBUG][       Thread-256225][   transport.py][1871] : Compression: none
2025-06-13 13:23:31,709 [DEBUG][       Thread-256225][   transport.py][1871] : === End of kex handshake ===
2025-06-13 13:23:31,765 [DEBUG][       Thread-256225][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 13:23:31,765 [DEBUG][       Thread-256225][   transport.py][1871] : Switch to new keys ...
2025-06-13 13:23:31,765 [DEBUG][       Thread-256225][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 13:23:31,765 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 13:23:31,765 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 13:23:31,826 [DEBUG][       Thread-256225][   transport.py][1871] : userauth is OK
2025-06-13 13:23:31,826 [DEBUG][       Thread-256225][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 13:23:31,826 [DEBUG][       Thread-256225][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 13:23:31,826 [DEBUG][       Thread-256225][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 13:23:31,826 [DEBUG][       Thread-256225][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 13:23:31,845 [ INFO][       Thread-256225][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 13:23:31,845 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 13:23:31,845 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 13:23:32,853 [DEBUG][       Thread-256225][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 13:23:32,853 [DEBUG][       Thread-256225][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 13:23:32,903 [DEBUG][       Thread-256225][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 13:23:32,903 [DEBUG][       Thread-256225][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 13:23:32,912 [DEBUG][       Thread-256225][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 13:23:32,922 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 13:23:32,922 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 13:23:32,933 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 13:23:32,941 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 13:23:32,941 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 13:23:32,941 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 13:23:32,949 [DEBUG][       Thread-256225][   transport.py][1871] : EOF in transport thread
2025-06-13 13:23:34,793 [DEBUG][Thread-256227 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:23:42,951 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 13:23:42,951 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 13:23:42,951 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 13:23:42,952 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 13:23:43,398 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 13, 23, 31), 14.82, 36.01, 0.0, 12.85, 13.36, 0, 0, 0, 2, 0, 0),)
2025-06-13 13:23:43,398 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 13:23:31
2025-06-13 13:23:43,480 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 13:23:43,484 [DEBUG][       Thread-256228][   transport.py][1871] : starting thread (client mode): 0x84207ee0
2025-06-13 13:23:43,484 [DEBUG][       Thread-256228][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 13:23:43,505 [DEBUG][       Thread-256228][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 13:23:43,505 [ INFO][       Thread-256228][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 13:23:43,509 [DEBUG][       Thread-256228][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 13:23:43,509 [DEBUG][       Thread-256228][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 13:23:43,509 [DEBUG][       Thread-256228][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 13:23:43,509 [DEBUG][       Thread-256228][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:23:43,509 [DEBUG][       Thread-256228][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:23:43,509 [DEBUG][       Thread-256228][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:23:43,509 [DEBUG][       Thread-256228][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:23:43,509 [DEBUG][       Thread-256228][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 13:23:43,509 [DEBUG][       Thread-256228][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 13:23:43,509 [DEBUG][       Thread-256228][   transport.py][1871] : client lang: <none>
2025-06-13 13:23:43,509 [DEBUG][       Thread-256228][   transport.py][1871] : server lang: <none>
2025-06-13 13:23:43,509 [DEBUG][       Thread-256228][   transport.py][1871] : kex follows: False
2025-06-13 13:23:43,509 [DEBUG][       Thread-256228][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 13:23:43,509 [DEBUG][       Thread-256228][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 13:23:43,509 [DEBUG][       Thread-256228][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 13:23:43,509 [DEBUG][       Thread-256228][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 13:23:43,509 [DEBUG][       Thread-256228][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 13:23:43,509 [DEBUG][       Thread-256228][   transport.py][1871] : Compression: none
2025-06-13 13:23:43,509 [DEBUG][       Thread-256228][   transport.py][1871] : === End of kex handshake ===
2025-06-13 13:23:43,527 [DEBUG][       Thread-256228][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 13:23:43,528 [DEBUG][       Thread-256228][   transport.py][1871] : Switch to new keys ...
2025-06-13 13:23:43,528 [DEBUG][       Thread-256228][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 13:23:43,529 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 13:23:43,529 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 13:23:43,530 [DEBUG][       Thread-256228][   transport.py][1871] : userauth is OK
2025-06-13 13:23:43,555 [ INFO][       Thread-256228][   transport.py][1871] : Authentication (password) successful!
2025-06-13 13:23:43,555 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 13:23:43,815 [DEBUG][Thread-256230 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:23:44,163 [DEBUG][       Thread-256228][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 13:23:44,163 [DEBUG][       Thread-256228][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 13:23:44,209 [DEBUG][       Thread-256228][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 13:23:44,209 [DEBUG][       Thread-256228][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 13:23:44,213 [DEBUG][       Thread-256228][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 13:23:44,219 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 13:23:44,220 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 13:23:44,221 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 13:23:44,223 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 13:23:44,228 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 13:23:44,230 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 13:23:44,230 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 13:23:44,231 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 13:23:44,231 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.474243 -999.00  +13.40  18.01     41   +0.40 1 1 1 1 1   888    0 14.36 57.19 ----- 14.8 18.0 42.8 28.4 18.1 -29.4 16.8 -31.3 17.0 -30.5 18.3 -27.5
2025-06-13 13:23:44,231 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 13:23:44,231 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 13:23:44,231 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.474243
2025-06-13 13:23:44,232 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 13:23:44,232 [DEBUG][       Thread-256228][   transport.py][1871] : EOF in transport thread
2025-06-13 13:23:44,233 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 13:23:44,234 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 13:23:44,234 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 13:23:44,234 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 13:23:44,234 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T13:23:31', tmtdew=14.82, humidity=36.01, cloud=0.0, wind=12.85, temperature=13.36, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T11:22:54.595', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 13:23:44,321 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 13:23:44,332 [DEBUG][       Thread-256232][   transport.py][1871] : starting thread (client mode): 0x868c85e0
2025-06-13 13:23:44,332 [DEBUG][       Thread-256232][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 13:23:44,347 [DEBUG][       Thread-256232][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 13:23:44,347 [ INFO][       Thread-256232][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 13:23:44,354 [DEBUG][       Thread-256232][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 13:23:44,355 [DEBUG][       Thread-256232][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 13:23:44,355 [DEBUG][       Thread-256232][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 13:23:44,355 [DEBUG][       Thread-256232][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:23:44,355 [DEBUG][       Thread-256232][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:23:44,355 [DEBUG][       Thread-256232][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:23:44,355 [DEBUG][       Thread-256232][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:23:44,355 [DEBUG][       Thread-256232][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 13:23:44,355 [DEBUG][       Thread-256232][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 13:23:44,355 [DEBUG][       Thread-256232][   transport.py][1871] : client lang: <none>
2025-06-13 13:23:44,355 [DEBUG][       Thread-256232][   transport.py][1871] : server lang: <none>
2025-06-13 13:23:44,355 [DEBUG][       Thread-256232][   transport.py][1871] : kex follows: False
2025-06-13 13:23:44,355 [DEBUG][       Thread-256232][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 13:23:44,355 [DEBUG][       Thread-256232][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 13:23:44,355 [DEBUG][       Thread-256232][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 13:23:44,355 [DEBUG][       Thread-256232][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 13:23:44,355 [DEBUG][       Thread-256232][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 13:23:44,355 [DEBUG][       Thread-256232][   transport.py][1871] : Compression: none
2025-06-13 13:23:44,355 [DEBUG][       Thread-256232][   transport.py][1871] : === End of kex handshake ===
2025-06-13 13:23:44,418 [DEBUG][       Thread-256232][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 13:23:44,419 [DEBUG][       Thread-256232][   transport.py][1871] : Switch to new keys ...
2025-06-13 13:23:44,419 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 13:23:44,420 [DEBUG][       Thread-256232][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 13:23:44,420 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 13:23:44,474 [DEBUG][       Thread-256232][   transport.py][1871] : userauth is OK
2025-06-13 13:23:44,474 [DEBUG][       Thread-256232][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 13:23:44,475 [DEBUG][       Thread-256232][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 13:23:44,475 [DEBUG][       Thread-256232][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 13:23:44,475 [DEBUG][       Thread-256232][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 13:23:44,493 [ INFO][       Thread-256232][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 13:23:44,493 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 13:23:44,494 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 13:23:45,530 [DEBUG][       Thread-256232][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 13:23:45,530 [DEBUG][       Thread-256232][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 13:23:45,581 [DEBUG][       Thread-256232][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 13:23:45,582 [DEBUG][       Thread-256232][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 13:23:45,591 [DEBUG][       Thread-256232][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 13:23:45,600 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 13:23:45,600 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 13:23:45,609 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 13:23:45,618 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 13:23:45,619 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 13:23:45,619 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 13:23:45,627 [DEBUG][       Thread-256232][   transport.py][1871] : EOF in transport thread
2025-06-13 13:23:51,777 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:23:51,778 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:23:52,838 [DEBUG][Thread-256234 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:23:55,628 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 13:23:55,628 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 13:23:55,628 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 13:23:55,630 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 13:23:56,088 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 13, 23, 31), 14.82, 36.01, 0.0, 12.85, 13.36, 0, 0, 0, 2, 0, 0),)
2025-06-13 13:23:56,088 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 13:23:31
2025-06-13 13:23:56,170 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 13:23:56,174 [DEBUG][       Thread-256235][   transport.py][1871] : starting thread (client mode): 0x84206b00
2025-06-13 13:23:56,174 [DEBUG][       Thread-256235][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 13:23:56,196 [DEBUG][       Thread-256235][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 13:23:56,196 [ INFO][       Thread-256235][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 13:23:56,199 [DEBUG][       Thread-256235][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 13:23:56,199 [DEBUG][       Thread-256235][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 13:23:56,200 [DEBUG][       Thread-256235][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 13:23:56,200 [DEBUG][       Thread-256235][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:23:56,200 [DEBUG][       Thread-256235][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:23:56,200 [DEBUG][       Thread-256235][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:23:56,200 [DEBUG][       Thread-256235][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:23:56,200 [DEBUG][       Thread-256235][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 13:23:56,200 [DEBUG][       Thread-256235][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 13:23:56,200 [DEBUG][       Thread-256235][   transport.py][1871] : client lang: <none>
2025-06-13 13:23:56,200 [DEBUG][       Thread-256235][   transport.py][1871] : server lang: <none>
2025-06-13 13:23:56,200 [DEBUG][       Thread-256235][   transport.py][1871] : kex follows: False
2025-06-13 13:23:56,200 [DEBUG][       Thread-256235][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 13:23:56,200 [DEBUG][       Thread-256235][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 13:23:56,200 [DEBUG][       Thread-256235][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 13:23:56,200 [DEBUG][       Thread-256235][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 13:23:56,200 [DEBUG][       Thread-256235][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 13:23:56,200 [DEBUG][       Thread-256235][   transport.py][1871] : Compression: none
2025-06-13 13:23:56,200 [DEBUG][       Thread-256235][   transport.py][1871] : === End of kex handshake ===
2025-06-13 13:23:56,216 [DEBUG][       Thread-256235][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 13:23:56,216 [DEBUG][       Thread-256235][   transport.py][1871] : Switch to new keys ...
2025-06-13 13:23:56,217 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 13:23:56,217 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 13:23:56,217 [DEBUG][       Thread-256235][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 13:23:56,218 [DEBUG][       Thread-256235][   transport.py][1871] : userauth is OK
2025-06-13 13:23:56,243 [ INFO][       Thread-256235][   transport.py][1871] : Authentication (password) successful!
2025-06-13 13:23:56,244 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 13:23:56,865 [DEBUG][       Thread-256235][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 13:23:56,865 [DEBUG][       Thread-256235][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 13:23:56,909 [DEBUG][       Thread-256235][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 13:23:56,909 [DEBUG][       Thread-256235][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 13:23:56,911 [DEBUG][       Thread-256235][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 13:23:56,925 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 13:23:56,925 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 13:23:56,927 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 13:23:56,928 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 13:23:56,933 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 13:23:56,935 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 13:23:56,935 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 13:23:56,936 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 13:23:56,936 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.474590 -999.00  +13.40  16.08     41   +0.60 1 1 1 1 1   888    0 14.67 62.14 ----- 15.6 16.1 37.8 18.2 18.1 -29.3 16.9 -30.8 17.0 -30.0 18.4 -27.6
2025-06-13 13:23:56,936 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 13:23:56,936 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 13:23:56,936 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.474590
2025-06-13 13:23:56,937 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 13:23:56,937 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 13:23:56,937 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 13:23:56,937 [DEBUG][       Thread-256235][   transport.py][1871] : EOF in transport thread
2025-06-13 13:23:56,937 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 13:23:56,938 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 13:23:56,938 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T13:23:31', tmtdew=14.82, humidity=36.01, cloud=0.0, wind=12.85, temperature=13.36, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T11:23:24.576', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 13:23:57,021 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 13:23:57,030 [DEBUG][       Thread-256238][   transport.py][1871] : starting thread (client mode): 0x863cb490
2025-06-13 13:23:57,030 [DEBUG][       Thread-256238][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 13:23:57,045 [DEBUG][       Thread-256238][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 13:23:57,045 [ INFO][       Thread-256238][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 13:23:57,053 [DEBUG][       Thread-256238][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 13:23:57,053 [DEBUG][       Thread-256238][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 13:23:57,053 [DEBUG][       Thread-256238][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 13:23:57,053 [DEBUG][       Thread-256238][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:23:57,054 [DEBUG][       Thread-256238][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:23:57,054 [DEBUG][       Thread-256238][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:23:57,054 [DEBUG][       Thread-256238][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:23:57,054 [DEBUG][       Thread-256238][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 13:23:57,054 [DEBUG][       Thread-256238][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 13:23:57,054 [DEBUG][       Thread-256238][   transport.py][1871] : client lang: <none>
2025-06-13 13:23:57,054 [DEBUG][       Thread-256238][   transport.py][1871] : server lang: <none>
2025-06-13 13:23:57,054 [DEBUG][       Thread-256238][   transport.py][1871] : kex follows: False
2025-06-13 13:23:57,054 [DEBUG][       Thread-256238][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 13:23:57,054 [DEBUG][       Thread-256238][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 13:23:57,054 [DEBUG][       Thread-256238][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 13:23:57,054 [DEBUG][       Thread-256238][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 13:23:57,054 [DEBUG][       Thread-256238][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 13:23:57,054 [DEBUG][       Thread-256238][   transport.py][1871] : Compression: none
2025-06-13 13:23:57,054 [DEBUG][       Thread-256238][   transport.py][1871] : === End of kex handshake ===
2025-06-13 13:23:57,110 [DEBUG][       Thread-256238][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 13:23:57,110 [DEBUG][       Thread-256238][   transport.py][1871] : Switch to new keys ...
2025-06-13 13:23:57,111 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 13:23:57,111 [DEBUG][       Thread-256238][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 13:23:57,112 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 13:23:57,166 [DEBUG][       Thread-256238][   transport.py][1871] : userauth is OK
2025-06-13 13:23:57,166 [DEBUG][       Thread-256238][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 13:23:57,167 [DEBUG][       Thread-256238][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 13:23:57,167 [DEBUG][       Thread-256238][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 13:23:57,167 [DEBUG][       Thread-256238][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 13:23:57,185 [ INFO][       Thread-256238][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 13:23:57,185 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 13:23:57,186 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 13:23:58,186 [DEBUG][       Thread-256238][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 13:23:58,186 [DEBUG][       Thread-256238][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 13:23:58,240 [DEBUG][       Thread-256238][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 13:23:58,240 [DEBUG][       Thread-256238][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 13:23:58,250 [DEBUG][       Thread-256238][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 13:23:58,261 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 13:23:58,261 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 13:23:58,273 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 13:23:58,285 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 13:23:58,285 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 13:23:58,286 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 13:23:58,300 [DEBUG][       Thread-256238][   transport.py][1871] : EOF in transport thread
2025-06-13 13:24:01,869 [DEBUG][Thread-256240 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:24:08,296 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 13:24:08,297 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 13:24:08,297 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 13:24:08,299 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 13:24:08,749 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 13, 24, 3), 15.0, 35.58, 0.0, 12.88, 13.34, 0, 0, 0, 2, 0, 0),)
2025-06-13 13:24:08,749 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 13:24:03
2025-06-13 13:24:08,830 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 13:24:08,834 [DEBUG][       Thread-256241][   transport.py][1871] : starting thread (client mode): 0x86350970
2025-06-13 13:24:08,835 [DEBUG][       Thread-256241][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 13:24:08,856 [DEBUG][       Thread-256241][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 13:24:08,856 [ INFO][       Thread-256241][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 13:24:08,860 [DEBUG][       Thread-256241][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 13:24:08,860 [DEBUG][       Thread-256241][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 13:24:08,860 [DEBUG][       Thread-256241][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 13:24:08,860 [DEBUG][       Thread-256241][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:24:08,860 [DEBUG][       Thread-256241][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:24:08,860 [DEBUG][       Thread-256241][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:24:08,860 [DEBUG][       Thread-256241][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:24:08,860 [DEBUG][       Thread-256241][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 13:24:08,860 [DEBUG][       Thread-256241][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 13:24:08,860 [DEBUG][       Thread-256241][   transport.py][1871] : client lang: <none>
2025-06-13 13:24:08,860 [DEBUG][       Thread-256241][   transport.py][1871] : server lang: <none>
2025-06-13 13:24:08,860 [DEBUG][       Thread-256241][   transport.py][1871] : kex follows: False
2025-06-13 13:24:08,860 [DEBUG][       Thread-256241][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 13:24:08,860 [DEBUG][       Thread-256241][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 13:24:08,860 [DEBUG][       Thread-256241][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 13:24:08,860 [DEBUG][       Thread-256241][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 13:24:08,860 [DEBUG][       Thread-256241][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 13:24:08,860 [DEBUG][       Thread-256241][   transport.py][1871] : Compression: none
2025-06-13 13:24:08,860 [DEBUG][       Thread-256241][   transport.py][1871] : === End of kex handshake ===
2025-06-13 13:24:08,876 [DEBUG][       Thread-256241][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 13:24:08,876 [DEBUG][       Thread-256241][   transport.py][1871] : Switch to new keys ...
2025-06-13 13:24:08,877 [DEBUG][       Thread-256241][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 13:24:08,877 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 13:24:08,877 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 13:24:08,878 [DEBUG][       Thread-256241][   transport.py][1871] : userauth is OK
2025-06-13 13:24:08,903 [ INFO][       Thread-256241][   transport.py][1871] : Authentication (password) successful!
2025-06-13 13:24:08,904 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 13:24:09,536 [DEBUG][       Thread-256241][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 13:24:09,536 [DEBUG][       Thread-256241][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 13:24:09,577 [DEBUG][       Thread-256241][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 13:24:09,577 [DEBUG][       Thread-256241][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 13:24:09,581 [DEBUG][       Thread-256241][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 13:24:09,594 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 13:24:09,594 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 13:24:09,596 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 13:24:09,598 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 13:24:09,604 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 13:24:09,607 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 13:24:09,607 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 13:24:09,608 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 13:24:09,608 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.474590 -999.00  +13.40  16.08     41   +0.60 1 1 1 1 1   888    0 14.67 62.14 ----- 15.6 16.1 37.8 18.2 18.1 -29.3 16.9 -30.8 17.0 -30.0 18.4 -27.6
2025-06-13 13:24:09,608 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 13:24:09,608 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 13:24:09,608 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.474590
2025-06-13 13:24:09,608 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 13:24:09,609 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 13:24:09,609 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 13:24:09,609 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 13:24:09,609 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 13:24:09,609 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T13:24:03', tmtdew=15.0, humidity=35.58, cloud=0.0, wind=12.88, temperature=13.34, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T11:23:24.576', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 13:24:09,611 [DEBUG][       Thread-256241][   transport.py][1871] : EOF in transport thread
2025-06-13 13:24:09,693 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 13:24:09,704 [DEBUG][       Thread-256244][   transport.py][1871] : starting thread (client mode): 0x842069e0
2025-06-13 13:24:09,704 [DEBUG][       Thread-256244][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 13:24:09,719 [DEBUG][       Thread-256244][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 13:24:09,719 [ INFO][       Thread-256244][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 13:24:09,730 [DEBUG][       Thread-256244][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 13:24:09,730 [DEBUG][       Thread-256244][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 13:24:09,730 [DEBUG][       Thread-256244][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 13:24:09,730 [DEBUG][       Thread-256244][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:24:09,730 [DEBUG][       Thread-256244][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:24:09,730 [DEBUG][       Thread-256244][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:24:09,730 [DEBUG][       Thread-256244][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:24:09,730 [DEBUG][       Thread-256244][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 13:24:09,730 [DEBUG][       Thread-256244][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 13:24:09,730 [DEBUG][       Thread-256244][   transport.py][1871] : client lang: <none>
2025-06-13 13:24:09,730 [DEBUG][       Thread-256244][   transport.py][1871] : server lang: <none>
2025-06-13 13:24:09,730 [DEBUG][       Thread-256244][   transport.py][1871] : kex follows: False
2025-06-13 13:24:09,730 [DEBUG][       Thread-256244][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 13:24:09,730 [DEBUG][       Thread-256244][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 13:24:09,730 [DEBUG][       Thread-256244][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 13:24:09,730 [DEBUG][       Thread-256244][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 13:24:09,731 [DEBUG][       Thread-256244][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 13:24:09,731 [DEBUG][       Thread-256244][   transport.py][1871] : Compression: none
2025-06-13 13:24:09,731 [DEBUG][       Thread-256244][   transport.py][1871] : === End of kex handshake ===
2025-06-13 13:24:09,786 [DEBUG][       Thread-256244][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 13:24:09,787 [DEBUG][       Thread-256244][   transport.py][1871] : Switch to new keys ...
2025-06-13 13:24:09,787 [DEBUG][       Thread-256244][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 13:24:09,787 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 13:24:09,788 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 13:24:09,842 [DEBUG][       Thread-256244][   transport.py][1871] : userauth is OK
2025-06-13 13:24:09,843 [DEBUG][       Thread-256244][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 13:24:09,843 [DEBUG][       Thread-256244][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 13:24:09,843 [DEBUG][       Thread-256244][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 13:24:09,843 [DEBUG][       Thread-256244][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 13:24:09,861 [ INFO][       Thread-256244][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 13:24:09,862 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 13:24:09,862 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 13:24:10,865 [DEBUG][       Thread-256244][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 13:24:10,865 [DEBUG][       Thread-256244][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 13:24:10,891 [DEBUG][Thread-256246 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:24:10,916 [DEBUG][       Thread-256244][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 13:24:10,916 [DEBUG][       Thread-256244][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 13:24:10,926 [DEBUG][       Thread-256244][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 13:24:10,934 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 13:24:10,934 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 13:24:10,942 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 13:24:10,950 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 13:24:10,950 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 13:24:10,950 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 13:24:10,958 [DEBUG][       Thread-256244][   transport.py][1871] : EOF in transport thread
2025-06-13 13:24:14,997 [DEBUG][Thread-256247 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:24:19,927 [DEBUG][Thread-256248 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:24:20,961 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 13:24:20,961 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 13:24:20,961 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 13:24:20,964 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 13:24:21,425 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 13, 24, 3), 15.0, 35.58, 0.0, 12.88, 13.34, 0, 0, 0, 2, 0, 0),)
2025-06-13 13:24:21,425 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 13:24:03
2025-06-13 13:24:21,507 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 13:24:21,511 [DEBUG][       Thread-256249][   transport.py][1871] : starting thread (client mode): 0x8636a110
2025-06-13 13:24:21,511 [DEBUG][       Thread-256249][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 13:24:21,523 [DEBUG][       Thread-256249][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 13:24:21,523 [ INFO][       Thread-256249][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 13:24:21,526 [DEBUG][       Thread-256249][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 13:24:21,526 [DEBUG][       Thread-256249][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 13:24:21,526 [DEBUG][       Thread-256249][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 13:24:21,526 [DEBUG][       Thread-256249][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:24:21,526 [DEBUG][       Thread-256249][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:24:21,526 [DEBUG][       Thread-256249][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:24:21,526 [DEBUG][       Thread-256249][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:24:21,526 [DEBUG][       Thread-256249][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 13:24:21,526 [DEBUG][       Thread-256249][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 13:24:21,526 [DEBUG][       Thread-256249][   transport.py][1871] : client lang: <none>
2025-06-13 13:24:21,526 [DEBUG][       Thread-256249][   transport.py][1871] : server lang: <none>
2025-06-13 13:24:21,526 [DEBUG][       Thread-256249][   transport.py][1871] : kex follows: False
2025-06-13 13:24:21,526 [DEBUG][       Thread-256249][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 13:24:21,526 [DEBUG][       Thread-256249][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 13:24:21,526 [DEBUG][       Thread-256249][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 13:24:21,526 [DEBUG][       Thread-256249][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 13:24:21,526 [DEBUG][       Thread-256249][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 13:24:21,526 [DEBUG][       Thread-256249][   transport.py][1871] : Compression: none
2025-06-13 13:24:21,526 [DEBUG][       Thread-256249][   transport.py][1871] : === End of kex handshake ===
2025-06-13 13:24:21,543 [DEBUG][       Thread-256249][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 13:24:21,544 [DEBUG][       Thread-256249][   transport.py][1871] : Switch to new keys ...
2025-06-13 13:24:21,544 [DEBUG][       Thread-256249][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 13:24:21,544 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 13:24:21,544 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 13:24:21,545 [DEBUG][       Thread-256249][   transport.py][1871] : userauth is OK
2025-06-13 13:24:21,558 [ INFO][       Thread-256249][   transport.py][1871] : Authentication (password) successful!
2025-06-13 13:24:21,559 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 13:24:22,200 [DEBUG][       Thread-256249][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 13:24:22,201 [DEBUG][       Thread-256249][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 13:24:22,245 [DEBUG][       Thread-256249][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 13:24:22,245 [DEBUG][       Thread-256249][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 13:24:22,249 [DEBUG][       Thread-256249][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 13:24:22,260 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 13:24:22,260 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 13:24:22,263 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 13:24:22,264 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 13:24:22,270 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 13:24:22,271 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 13:24:22,272 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 13:24:22,272 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 13:24:22,273 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.474937 -999.00  +13.50  14.44     40   +0.30 1 1 1 1 1   888    0 14.92 65.20 ----- 12.4 14.4 36.4 19.6 18.1 -29.1 16.9 -30.9 16.9 -30.2 18.3 -28.0
2025-06-13 13:24:22,273 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 13:24:22,273 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 13:24:22,273 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.474937
2025-06-13 13:24:22,273 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 13:24:22,274 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 13:24:22,274 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 13:24:22,274 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 13:24:22,274 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 13:24:22,274 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T13:24:03', tmtdew=15.0, humidity=35.58, cloud=0.0, wind=12.88, temperature=13.34, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T11:23:54.557', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 13:24:22,275 [DEBUG][       Thread-256249][   transport.py][1871] : EOF in transport thread
2025-06-13 13:24:22,357 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 13:24:22,367 [DEBUG][       Thread-256252][   transport.py][1871] : starting thread (client mode): 0x86369d20
2025-06-13 13:24:22,367 [DEBUG][       Thread-256252][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 13:24:22,382 [DEBUG][       Thread-256252][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 13:24:22,383 [ INFO][       Thread-256252][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 13:24:22,390 [DEBUG][       Thread-256252][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 13:24:22,390 [DEBUG][       Thread-256252][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 13:24:22,390 [DEBUG][       Thread-256252][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 13:24:22,390 [DEBUG][       Thread-256252][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:24:22,390 [DEBUG][       Thread-256252][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:24:22,390 [DEBUG][       Thread-256252][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:24:22,390 [DEBUG][       Thread-256252][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:24:22,390 [DEBUG][       Thread-256252][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 13:24:22,390 [DEBUG][       Thread-256252][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 13:24:22,390 [DEBUG][       Thread-256252][   transport.py][1871] : client lang: <none>
2025-06-13 13:24:22,390 [DEBUG][       Thread-256252][   transport.py][1871] : server lang: <none>
2025-06-13 13:24:22,390 [DEBUG][       Thread-256252][   transport.py][1871] : kex follows: False
2025-06-13 13:24:22,390 [DEBUG][       Thread-256252][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 13:24:22,391 [DEBUG][       Thread-256252][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 13:24:22,391 [DEBUG][       Thread-256252][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 13:24:22,391 [DEBUG][       Thread-256252][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 13:24:22,391 [DEBUG][       Thread-256252][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 13:24:22,391 [DEBUG][       Thread-256252][   transport.py][1871] : Compression: none
2025-06-13 13:24:22,391 [DEBUG][       Thread-256252][   transport.py][1871] : === End of kex handshake ===
2025-06-13 13:24:22,454 [DEBUG][       Thread-256252][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 13:24:22,455 [DEBUG][       Thread-256252][   transport.py][1871] : Switch to new keys ...
2025-06-13 13:24:22,455 [DEBUG][       Thread-256252][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 13:24:22,456 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 13:24:22,456 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 13:24:22,510 [DEBUG][       Thread-256252][   transport.py][1871] : userauth is OK
2025-06-13 13:24:22,510 [DEBUG][       Thread-256252][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 13:24:22,510 [DEBUG][       Thread-256252][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 13:24:22,510 [DEBUG][       Thread-256252][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 13:24:22,511 [DEBUG][       Thread-256252][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 13:24:22,530 [ INFO][       Thread-256252][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 13:24:22,530 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 13:24:22,531 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 13:24:23,604 [DEBUG][       Thread-256252][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 13:24:23,604 [DEBUG][       Thread-256252][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 13:24:23,653 [DEBUG][       Thread-256252][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 13:24:23,653 [DEBUG][       Thread-256252][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 13:24:23,662 [DEBUG][       Thread-256252][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 13:24:23,671 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 13:24:23,672 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 13:24:23,681 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 13:24:23,690 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 13:24:23,690 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 13:24:23,691 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 13:24:23,699 [DEBUG][       Thread-256252][   transport.py][1871] : EOF in transport thread
2025-06-13 13:24:28,948 [DEBUG][Thread-256254 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:24:29,762 [DEBUG][Thread-256255 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:24:30,840 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:24:30,842 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:24:33,701 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 13:24:33,702 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 13:24:33,702 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 13:24:33,705 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 13:24:34,168 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 13, 24, 3), 15.0, 35.58, 0.0, 12.88, 13.34, 0, 0, 0, 2, 0, 0),)
2025-06-13 13:24:34,168 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 13:24:03
2025-06-13 13:24:34,249 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 13:24:34,253 [DEBUG][       Thread-256256][   transport.py][1871] : starting thread (client mode): 0x84205c60
2025-06-13 13:24:34,253 [DEBUG][       Thread-256256][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 13:24:34,275 [DEBUG][       Thread-256256][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 13:24:34,275 [ INFO][       Thread-256256][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 13:24:34,278 [DEBUG][       Thread-256256][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 13:24:34,278 [DEBUG][       Thread-256256][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 13:24:34,278 [DEBUG][       Thread-256256][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 13:24:34,278 [DEBUG][       Thread-256256][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:24:34,278 [DEBUG][       Thread-256256][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:24:34,278 [DEBUG][       Thread-256256][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:24:34,278 [DEBUG][       Thread-256256][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:24:34,278 [DEBUG][       Thread-256256][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 13:24:34,278 [DEBUG][       Thread-256256][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 13:24:34,278 [DEBUG][       Thread-256256][   transport.py][1871] : client lang: <none>
2025-06-13 13:24:34,279 [DEBUG][       Thread-256256][   transport.py][1871] : server lang: <none>
2025-06-13 13:24:34,279 [DEBUG][       Thread-256256][   transport.py][1871] : kex follows: False
2025-06-13 13:24:34,279 [DEBUG][       Thread-256256][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 13:24:34,279 [DEBUG][       Thread-256256][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 13:24:34,279 [DEBUG][       Thread-256256][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 13:24:34,279 [DEBUG][       Thread-256256][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 13:24:34,279 [DEBUG][       Thread-256256][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 13:24:34,279 [DEBUG][       Thread-256256][   transport.py][1871] : Compression: none
2025-06-13 13:24:34,279 [DEBUG][       Thread-256256][   transport.py][1871] : === End of kex handshake ===
2025-06-13 13:24:34,295 [DEBUG][       Thread-256256][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 13:24:34,296 [DEBUG][       Thread-256256][   transport.py][1871] : Switch to new keys ...
2025-06-13 13:24:34,296 [DEBUG][       Thread-256256][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 13:24:34,296 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 13:24:34,297 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 13:24:34,298 [DEBUG][       Thread-256256][   transport.py][1871] : userauth is OK
2025-06-13 13:24:34,322 [ INFO][       Thread-256256][   transport.py][1871] : Authentication (password) successful!
2025-06-13 13:24:34,323 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 13:24:34,945 [DEBUG][       Thread-256256][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 13:24:34,945 [DEBUG][       Thread-256256][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 13:24:34,989 [DEBUG][       Thread-256256][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 13:24:34,989 [DEBUG][       Thread-256256][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 13:24:34,992 [DEBUG][       Thread-256256][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 13:24:35,006 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 13:24:35,007 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 13:24:35,008 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 13:24:35,010 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 13:24:35,016 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 13:24:35,019 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 13:24:35,019 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 13:24:35,020 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 13:24:35,020 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.474937 -999.00  +13.50  14.44     40   +0.30 1 1 1 1 1   888    0 14.92 65.20 ----- 12.4 14.4 36.4 19.6 18.1 -29.1 16.9 -30.9 16.9 -30.2 18.3 -28.0
2025-06-13 13:24:35,020 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 13:24:35,020 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 13:24:35,020 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.474937
2025-06-13 13:24:35,020 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 13:24:35,021 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 13:24:35,021 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 13:24:35,021 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 13:24:35,021 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 13:24:35,022 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T13:24:03', tmtdew=15.0, humidity=35.58, cloud=0.0, wind=12.88, temperature=13.34, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T11:23:54.557', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 13:24:35,022 [DEBUG][       Thread-256256][   transport.py][1871] : EOF in transport thread
2025-06-13 13:24:35,105 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 13:24:35,117 [DEBUG][       Thread-256259][   transport.py][1871] : starting thread (client mode): 0x868c85e0
2025-06-13 13:24:35,117 [DEBUG][       Thread-256259][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 13:24:35,134 [DEBUG][       Thread-256259][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 13:24:35,134 [ INFO][       Thread-256259][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 13:24:35,142 [DEBUG][       Thread-256259][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 13:24:35,142 [DEBUG][       Thread-256259][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 13:24:35,142 [DEBUG][       Thread-256259][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 13:24:35,142 [DEBUG][       Thread-256259][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:24:35,142 [DEBUG][       Thread-256259][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:24:35,142 [DEBUG][       Thread-256259][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:24:35,142 [DEBUG][       Thread-256259][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:24:35,142 [DEBUG][       Thread-256259][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 13:24:35,142 [DEBUG][       Thread-256259][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 13:24:35,142 [DEBUG][       Thread-256259][   transport.py][1871] : client lang: <none>
2025-06-13 13:24:35,143 [DEBUG][       Thread-256259][   transport.py][1871] : server lang: <none>
2025-06-13 13:24:35,143 [DEBUG][       Thread-256259][   transport.py][1871] : kex follows: False
2025-06-13 13:24:35,143 [DEBUG][       Thread-256259][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 13:24:35,143 [DEBUG][       Thread-256259][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 13:24:35,143 [DEBUG][       Thread-256259][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 13:24:35,143 [DEBUG][       Thread-256259][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 13:24:35,143 [DEBUG][       Thread-256259][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 13:24:35,143 [DEBUG][       Thread-256259][   transport.py][1871] : Compression: none
2025-06-13 13:24:35,143 [DEBUG][       Thread-256259][   transport.py][1871] : === End of kex handshake ===
2025-06-13 13:24:35,202 [DEBUG][       Thread-256259][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 13:24:35,202 [DEBUG][       Thread-256259][   transport.py][1871] : Switch to new keys ...
2025-06-13 13:24:35,203 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 13:24:35,203 [DEBUG][       Thread-256259][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 13:24:35,204 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 13:24:35,258 [DEBUG][       Thread-256259][   transport.py][1871] : userauth is OK
2025-06-13 13:24:35,258 [DEBUG][       Thread-256259][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 13:24:35,258 [DEBUG][       Thread-256259][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 13:24:35,258 [DEBUG][       Thread-256259][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 13:24:35,258 [DEBUG][       Thread-256259][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 13:24:35,278 [ INFO][       Thread-256259][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 13:24:35,278 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 13:24:35,278 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 13:24:36,308 [DEBUG][       Thread-256259][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 13:24:36,309 [DEBUG][       Thread-256259][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 13:24:36,363 [DEBUG][       Thread-256259][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 13:24:36,363 [DEBUG][       Thread-256259][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 13:24:36,372 [DEBUG][       Thread-256259][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 13:24:36,380 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 13:24:36,380 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 13:24:36,388 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 13:24:36,396 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 13:24:36,396 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 13:24:36,396 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 13:24:36,404 [DEBUG][       Thread-256259][   transport.py][1871] : EOF in transport thread
2025-06-13 13:24:37,967 [DEBUG][Thread-256261 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:24:46,406 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 13:24:46,406 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 13:24:46,407 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 13:24:46,409 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 13:24:46,861 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 13, 24, 35), 15.13, 35.33, 0.0, 12.55, 13.48, 0, 0, 0, 2, 0, 0),)
2025-06-13 13:24:46,862 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 13:24:35
2025-06-13 13:24:46,943 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 13:24:46,947 [DEBUG][       Thread-256262][   transport.py][1871] : starting thread (client mode): 0x8636ae00
2025-06-13 13:24:46,947 [DEBUG][       Thread-256262][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 13:24:46,967 [DEBUG][       Thread-256262][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 13:24:46,967 [ INFO][       Thread-256262][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 13:24:46,970 [DEBUG][       Thread-256262][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 13:24:46,970 [DEBUG][       Thread-256262][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 13:24:46,970 [DEBUG][       Thread-256262][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 13:24:46,970 [DEBUG][       Thread-256262][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:24:46,970 [DEBUG][       Thread-256262][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:24:46,970 [DEBUG][       Thread-256262][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:24:46,970 [DEBUG][       Thread-256262][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:24:46,970 [DEBUG][       Thread-256262][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 13:24:46,970 [DEBUG][       Thread-256262][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 13:24:46,970 [DEBUG][       Thread-256262][   transport.py][1871] : client lang: <none>
2025-06-13 13:24:46,970 [DEBUG][       Thread-256262][   transport.py][1871] : server lang: <none>
2025-06-13 13:24:46,970 [DEBUG][       Thread-256262][   transport.py][1871] : kex follows: False
2025-06-13 13:24:46,970 [DEBUG][       Thread-256262][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 13:24:46,970 [DEBUG][       Thread-256262][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 13:24:46,971 [DEBUG][       Thread-256262][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 13:24:46,971 [DEBUG][       Thread-256262][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 13:24:46,971 [DEBUG][       Thread-256262][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 13:24:46,971 [DEBUG][       Thread-256262][   transport.py][1871] : Compression: none
2025-06-13 13:24:46,971 [DEBUG][       Thread-256262][   transport.py][1871] : === End of kex handshake ===
2025-06-13 13:24:46,983 [DEBUG][Thread-256264 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:24:46,988 [DEBUG][       Thread-256262][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 13:24:46,988 [DEBUG][       Thread-256262][   transport.py][1871] : Switch to new keys ...
2025-06-13 13:24:46,988 [DEBUG][       Thread-256262][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 13:24:46,988 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 13:24:46,988 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 13:24:46,989 [DEBUG][       Thread-256262][   transport.py][1871] : userauth is OK
2025-06-13 13:24:47,013 [ INFO][       Thread-256262][   transport.py][1871] : Authentication (password) successful!
2025-06-13 13:24:47,013 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 13:24:47,692 [DEBUG][       Thread-256262][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 13:24:47,692 [DEBUG][       Thread-256262][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 13:24:47,733 [DEBUG][       Thread-256262][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 13:24:47,733 [DEBUG][       Thread-256262][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 13:24:47,737 [DEBUG][       Thread-256262][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 13:24:47,749 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 13:24:47,749 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 13:24:47,751 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 13:24:47,753 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 13:24:47,758 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 13:24:47,760 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 13:24:47,760 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 13:24:47,761 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 13:24:47,761 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.474937 -999.00  +13.50  14.44     40   +0.30 1 1 1 1 1   888    0 14.92 65.20 ----- 12.4 14.4 36.4 19.6 18.1 -29.1 16.9 -30.9 16.9 -30.2 18.3 -28.0
2025-06-13 13:24:47,761 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 13:24:47,761 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 13:24:47,761 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.474937
2025-06-13 13:24:47,762 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 13:24:47,762 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 13:24:47,762 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 13:24:47,763 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 13:24:47,763 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 13:24:47,763 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T13:24:35', tmtdew=15.13, humidity=35.33, cloud=0.0, wind=12.55, temperature=13.48, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T11:23:54.557', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 13:24:47,764 [DEBUG][       Thread-256262][   transport.py][1871] : EOF in transport thread
2025-06-13 13:24:47,846 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 13:24:47,855 [DEBUG][       Thread-256266][   transport.py][1871] : starting thread (client mode): 0x863bfdf0
2025-06-13 13:24:47,855 [DEBUG][       Thread-256266][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 13:24:47,870 [DEBUG][       Thread-256266][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 13:24:47,870 [ INFO][       Thread-256266][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 13:24:47,879 [DEBUG][       Thread-256266][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 13:24:47,879 [DEBUG][       Thread-256266][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 13:24:47,879 [DEBUG][       Thread-256266][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 13:24:47,879 [DEBUG][       Thread-256266][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:24:47,879 [DEBUG][       Thread-256266][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:24:47,879 [DEBUG][       Thread-256266][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:24:47,879 [DEBUG][       Thread-256266][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:24:47,879 [DEBUG][       Thread-256266][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 13:24:47,879 [DEBUG][       Thread-256266][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 13:24:47,879 [DEBUG][       Thread-256266][   transport.py][1871] : client lang: <none>
2025-06-13 13:24:47,879 [DEBUG][       Thread-256266][   transport.py][1871] : server lang: <none>
2025-06-13 13:24:47,879 [DEBUG][       Thread-256266][   transport.py][1871] : kex follows: False
2025-06-13 13:24:47,879 [DEBUG][       Thread-256266][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 13:24:47,879 [DEBUG][       Thread-256266][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 13:24:47,879 [DEBUG][       Thread-256266][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 13:24:47,879 [DEBUG][       Thread-256266][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 13:24:47,879 [DEBUG][       Thread-256266][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 13:24:47,879 [DEBUG][       Thread-256266][   transport.py][1871] : Compression: none
2025-06-13 13:24:47,880 [DEBUG][       Thread-256266][   transport.py][1871] : === End of kex handshake ===
2025-06-13 13:24:47,900 [DEBUG][       Thread-256266][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 13:24:47,900 [DEBUG][       Thread-256266][   transport.py][1871] : Switch to new keys ...
2025-06-13 13:24:47,900 [DEBUG][       Thread-256266][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 13:24:47,900 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 13:24:47,901 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 13:24:47,958 [DEBUG][       Thread-256266][   transport.py][1871] : userauth is OK
2025-06-13 13:24:47,958 [DEBUG][       Thread-256266][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 13:24:47,959 [DEBUG][       Thread-256266][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 13:24:47,959 [DEBUG][       Thread-256266][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 13:24:47,959 [DEBUG][       Thread-256266][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 13:24:47,977 [ INFO][       Thread-256266][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 13:24:47,977 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 13:24:47,978 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 13:24:48,993 [DEBUG][       Thread-256266][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 13:24:48,993 [DEBUG][       Thread-256266][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 13:24:49,044 [DEBUG][       Thread-256266][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 13:24:49,044 [DEBUG][       Thread-256266][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 13:24:49,054 [DEBUG][       Thread-256266][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 13:24:49,063 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 13:24:49,063 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 13:24:49,072 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 13:24:49,081 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 13:24:49,082 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 13:24:49,082 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 13:24:49,091 [DEBUG][       Thread-256266][   transport.py][1871] : EOF in transport thread
2025-06-13 13:24:51,917 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:24:51,918 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:24:56,005 [DEBUG][Thread-256268 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:24:59,093 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 13:24:59,093 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 13:24:59,093 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 13:24:59,096 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 13:24:59,557 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 13, 24, 35), 15.13, 35.33, 0.0, 12.55, 13.48, 0, 0, 0, 2, 0, 0),)
2025-06-13 13:24:59,557 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 13:24:35
2025-06-13 13:24:59,637 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 13:24:59,641 [DEBUG][       Thread-256269][   transport.py][1871] : starting thread (client mode): 0x84204ee0
2025-06-13 13:24:59,641 [DEBUG][       Thread-256269][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 13:24:59,662 [DEBUG][       Thread-256269][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 13:24:59,663 [ INFO][       Thread-256269][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 13:24:59,666 [DEBUG][       Thread-256269][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 13:24:59,666 [DEBUG][       Thread-256269][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 13:24:59,666 [DEBUG][       Thread-256269][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 13:24:59,666 [DEBUG][       Thread-256269][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:24:59,666 [DEBUG][       Thread-256269][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:24:59,666 [DEBUG][       Thread-256269][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:24:59,666 [DEBUG][       Thread-256269][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:24:59,666 [DEBUG][       Thread-256269][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 13:24:59,666 [DEBUG][       Thread-256269][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 13:24:59,666 [DEBUG][       Thread-256269][   transport.py][1871] : client lang: <none>
2025-06-13 13:24:59,666 [DEBUG][       Thread-256269][   transport.py][1871] : server lang: <none>
2025-06-13 13:24:59,667 [DEBUG][       Thread-256269][   transport.py][1871] : kex follows: False
2025-06-13 13:24:59,667 [DEBUG][       Thread-256269][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 13:24:59,667 [DEBUG][       Thread-256269][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 13:24:59,667 [DEBUG][       Thread-256269][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 13:24:59,667 [DEBUG][       Thread-256269][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 13:24:59,667 [DEBUG][       Thread-256269][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 13:24:59,667 [DEBUG][       Thread-256269][   transport.py][1871] : Compression: none
2025-06-13 13:24:59,667 [DEBUG][       Thread-256269][   transport.py][1871] : === End of kex handshake ===
2025-06-13 13:24:59,684 [DEBUG][       Thread-256269][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 13:24:59,685 [DEBUG][       Thread-256269][   transport.py][1871] : Switch to new keys ...
2025-06-13 13:24:59,685 [DEBUG][       Thread-256269][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 13:24:59,685 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 13:24:59,685 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 13:24:59,686 [DEBUG][       Thread-256269][   transport.py][1871] : userauth is OK
2025-06-13 13:24:59,711 [ INFO][       Thread-256269][   transport.py][1871] : Authentication (password) successful!
2025-06-13 13:24:59,712 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 13:25:00,304 [DEBUG][       Thread-256269][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 13:25:00,305 [DEBUG][       Thread-256269][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 13:25:00,349 [DEBUG][       Thread-256269][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 13:25:00,349 [DEBUG][       Thread-256269][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 13:25:00,353 [DEBUG][       Thread-256269][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 13:25:00,366 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 13:25:00,367 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 13:25:00,369 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 13:25:00,371 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 13:25:00,377 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 13:25:00,379 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 13:25:00,379 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 13:25:00,380 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 13:25:00,380 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.475284 -999.00  +13.40  17.06     38   -0.50 1 1 1 1 1   888    0 14.60 65.61 ----- 16.8 17.1 36.0 21.8 18.2 -30.5 16.9 -31.8 17.0 -29.6 18.3 -28.2
2025-06-13 13:25:00,380 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 13:25:00,380 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 13:25:00,380 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.475284
2025-06-13 13:25:00,381 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 13:25:00,381 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 13:25:00,381 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 13:25:00,381 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 13:25:00,381 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 13:25:00,382 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T13:24:35', tmtdew=15.13, humidity=35.33, cloud=0.0, wind=12.55, temperature=13.48, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T11:24:24.538', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 13:25:00,383 [DEBUG][       Thread-256269][   transport.py][1871] : EOF in transport thread
2025-06-13 13:25:00,466 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 13:25:00,483 [DEBUG][       Thread-256272][   transport.py][1871] : starting thread (client mode): 0x867fc790
2025-06-13 13:25:00,483 [DEBUG][       Thread-256272][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 13:25:00,505 [DEBUG][       Thread-256272][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 13:25:00,505 [ INFO][       Thread-256272][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 13:25:00,517 [DEBUG][       Thread-256272][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 13:25:00,517 [DEBUG][       Thread-256272][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 13:25:00,517 [DEBUG][       Thread-256272][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 13:25:00,517 [DEBUG][       Thread-256272][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:25:00,518 [DEBUG][       Thread-256272][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:25:00,518 [DEBUG][       Thread-256272][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:25:00,518 [DEBUG][       Thread-256272][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:25:00,518 [DEBUG][       Thread-256272][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 13:25:00,518 [DEBUG][       Thread-256272][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 13:25:00,518 [DEBUG][       Thread-256272][   transport.py][1871] : client lang: <none>
2025-06-13 13:25:00,518 [DEBUG][       Thread-256272][   transport.py][1871] : server lang: <none>
2025-06-13 13:25:00,518 [DEBUG][       Thread-256272][   transport.py][1871] : kex follows: False
2025-06-13 13:25:00,518 [DEBUG][       Thread-256272][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 13:25:00,518 [DEBUG][       Thread-256272][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 13:25:00,518 [DEBUG][       Thread-256272][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 13:25:00,518 [DEBUG][       Thread-256272][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 13:25:00,518 [DEBUG][       Thread-256272][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 13:25:00,518 [DEBUG][       Thread-256272][   transport.py][1871] : Compression: none
2025-06-13 13:25:00,518 [DEBUG][       Thread-256272][   transport.py][1871] : === End of kex handshake ===
2025-06-13 13:25:00,570 [DEBUG][       Thread-256272][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 13:25:00,570 [DEBUG][       Thread-256272][   transport.py][1871] : Switch to new keys ...
2025-06-13 13:25:00,571 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 13:25:00,572 [DEBUG][       Thread-256272][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 13:25:00,572 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 13:25:00,632 [DEBUG][       Thread-256272][   transport.py][1871] : userauth is OK
2025-06-13 13:25:00,632 [DEBUG][       Thread-256272][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 13:25:00,632 [DEBUG][       Thread-256272][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 13:25:00,632 [DEBUG][       Thread-256272][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 13:25:00,632 [DEBUG][       Thread-256272][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 13:25:00,651 [ INFO][       Thread-256272][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 13:25:00,652 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 13:25:00,652 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 13:25:01,701 [DEBUG][       Thread-256272][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 13:25:01,701 [DEBUG][       Thread-256272][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 13:25:01,755 [DEBUG][       Thread-256272][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 13:25:01,755 [DEBUG][       Thread-256272][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 13:25:01,764 [DEBUG][       Thread-256272][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 13:25:01,774 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 13:25:01,774 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 13:25:01,783 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 13:25:01,797 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 13:25:01,798 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 13:25:01,798 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 13:25:01,808 [DEBUG][       Thread-256272][   transport.py][1871] : EOF in transport thread
2025-06-13 13:25:05,039 [DEBUG][Thread-256274 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:25:11,802 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 13:25:11,802 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 13:25:11,802 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 13:25:11,805 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 13:25:12,256 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 13, 25, 6), 15.58, 34.11, 0.0, 12.35, 13.53, 0, 0, 0, 2, 0, 0),)
2025-06-13 13:25:12,256 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 13:25:06
2025-06-13 13:25:12,337 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 13:25:12,343 [DEBUG][       Thread-256275][   transport.py][1871] : starting thread (client mode): 0x863beb00
2025-06-13 13:25:12,343 [DEBUG][       Thread-256275][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 13:25:12,364 [DEBUG][       Thread-256275][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 13:25:12,365 [ INFO][       Thread-256275][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 13:25:12,368 [DEBUG][       Thread-256275][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 13:25:12,368 [DEBUG][       Thread-256275][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 13:25:12,368 [DEBUG][       Thread-256275][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 13:25:12,368 [DEBUG][       Thread-256275][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:25:12,368 [DEBUG][       Thread-256275][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:25:12,368 [DEBUG][       Thread-256275][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:25:12,368 [DEBUG][       Thread-256275][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:25:12,368 [DEBUG][       Thread-256275][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 13:25:12,368 [DEBUG][       Thread-256275][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 13:25:12,368 [DEBUG][       Thread-256275][   transport.py][1871] : client lang: <none>
2025-06-13 13:25:12,368 [DEBUG][       Thread-256275][   transport.py][1871] : server lang: <none>
2025-06-13 13:25:12,368 [DEBUG][       Thread-256275][   transport.py][1871] : kex follows: False
2025-06-13 13:25:12,368 [DEBUG][       Thread-256275][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 13:25:12,368 [DEBUG][       Thread-256275][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 13:25:12,368 [DEBUG][       Thread-256275][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 13:25:12,368 [DEBUG][       Thread-256275][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 13:25:12,368 [DEBUG][       Thread-256275][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 13:25:12,369 [DEBUG][       Thread-256275][   transport.py][1871] : Compression: none
2025-06-13 13:25:12,369 [DEBUG][       Thread-256275][   transport.py][1871] : === End of kex handshake ===
2025-06-13 13:25:12,386 [DEBUG][       Thread-256275][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 13:25:12,386 [DEBUG][       Thread-256275][   transport.py][1871] : Switch to new keys ...
2025-06-13 13:25:12,387 [DEBUG][       Thread-256275][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 13:25:12,387 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 13:25:12,387 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 13:25:12,388 [DEBUG][       Thread-256275][   transport.py][1871] : userauth is OK
2025-06-13 13:25:12,413 [ INFO][       Thread-256275][   transport.py][1871] : Authentication (password) successful!
2025-06-13 13:25:12,414 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 13:25:14,062 [DEBUG][Thread-256277 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:25:15,052 [DEBUG][Thread-256278 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:25:23,081 [DEBUG][Thread-256279 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:25:24,056 [DEBUG][       Thread-256275][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 13:25:24,056 [DEBUG][       Thread-256275][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 13:25:24,097 [DEBUG][       Thread-256275][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 13:25:24,097 [DEBUG][       Thread-256275][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 13:25:24,100 [DEBUG][       Thread-256275][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 13:25:24,169 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 13:25:24,169 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 13:25:24,171 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 13:25:24,173 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 13:25:24,179 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 13:25:24,181 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 13:25:24,181 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 13:25:24,182 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 13:25:24,182 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.475284 -999.00  +13.40  17.06     38   -0.50 1 1 1 1 1   888    0 14.60 65.61 ----- 16.8 17.1 36.0 21.8 18.2 -30.5 16.9 -31.8 17.0 -29.6 18.3 -28.2
2025-06-13 13:25:24,182 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 13:25:24,182 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 13:25:24,182 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.475284
2025-06-13 13:25:24,182 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 13:25:24,183 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 13:25:24,183 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 13:25:24,183 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 13:25:24,183 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 13:25:24,183 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T13:25:06', tmtdew=15.58, humidity=34.11, cloud=0.0, wind=12.35, temperature=13.53, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T11:24:24.538', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 13:25:24,184 [DEBUG][       Thread-256275][   transport.py][1871] : EOF in transport thread
2025-06-13 13:25:24,268 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 13:25:24,279 [DEBUG][       Thread-256281][   transport.py][1871] : starting thread (client mode): 0x863eceb0
2025-06-13 13:25:24,279 [DEBUG][       Thread-256281][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 13:25:24,294 [DEBUG][       Thread-256281][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 13:25:24,295 [ INFO][       Thread-256281][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 13:25:24,302 [DEBUG][       Thread-256281][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 13:25:24,302 [DEBUG][       Thread-256281][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 13:25:24,302 [DEBUG][       Thread-256281][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 13:25:24,303 [DEBUG][       Thread-256281][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:25:24,303 [DEBUG][       Thread-256281][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:25:24,303 [DEBUG][       Thread-256281][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:25:24,303 [DEBUG][       Thread-256281][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:25:24,303 [DEBUG][       Thread-256281][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 13:25:24,303 [DEBUG][       Thread-256281][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 13:25:24,303 [DEBUG][       Thread-256281][   transport.py][1871] : client lang: <none>
2025-06-13 13:25:24,303 [DEBUG][       Thread-256281][   transport.py][1871] : server lang: <none>
2025-06-13 13:25:24,303 [DEBUG][       Thread-256281][   transport.py][1871] : kex follows: False
2025-06-13 13:25:24,303 [DEBUG][       Thread-256281][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 13:25:24,303 [DEBUG][       Thread-256281][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 13:25:24,303 [DEBUG][       Thread-256281][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 13:25:24,303 [DEBUG][       Thread-256281][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 13:25:24,303 [DEBUG][       Thread-256281][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 13:25:24,303 [DEBUG][       Thread-256281][   transport.py][1871] : Compression: none
2025-06-13 13:25:24,303 [DEBUG][       Thread-256281][   transport.py][1871] : === End of kex handshake ===
2025-06-13 13:25:24,362 [DEBUG][       Thread-256281][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 13:25:24,363 [DEBUG][       Thread-256281][   transport.py][1871] : Switch to new keys ...
2025-06-13 13:25:24,363 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 13:25:24,364 [DEBUG][       Thread-256281][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 13:25:24,365 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 13:25:24,418 [DEBUG][       Thread-256281][   transport.py][1871] : userauth is OK
2025-06-13 13:25:24,419 [DEBUG][       Thread-256281][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 13:25:24,419 [DEBUG][       Thread-256281][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 13:25:24,419 [DEBUG][       Thread-256281][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 13:25:24,419 [DEBUG][       Thread-256281][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 13:25:24,439 [ INFO][       Thread-256281][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 13:25:24,439 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 13:25:24,439 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 13:25:25,495 [DEBUG][       Thread-256281][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 13:25:25,495 [DEBUG][       Thread-256281][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 13:25:25,550 [DEBUG][       Thread-256281][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 13:25:25,550 [DEBUG][       Thread-256281][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 13:25:25,562 [DEBUG][       Thread-256281][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 13:25:25,571 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 13:25:25,572 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 13:25:25,581 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 13:25:25,589 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 13:25:25,589 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 13:25:25,589 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 13:25:25,597 [DEBUG][       Thread-256281][   transport.py][1871] : EOF in transport thread
2025-06-13 13:25:30,886 [DEBUG][Thread-256283 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:25:31,977 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:25:31,978 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:25:32,101 [DEBUG][Thread-256284 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:25:35,599 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 13:25:35,599 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 13:25:35,599 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 13:25:35,601 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 13:25:36,063 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 13, 25, 6), 15.58, 34.11, 0.0, 12.35, 13.53, 0, 0, 0, 2, 0, 0),)
2025-06-13 13:25:36,063 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 13:25:06
2025-06-13 13:25:36,144 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 13:25:36,151 [DEBUG][       Thread-256285][   transport.py][1871] : starting thread (client mode): 0x84205360
2025-06-13 13:25:36,151 [DEBUG][       Thread-256285][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 13:25:36,172 [DEBUG][       Thread-256285][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 13:25:36,172 [ INFO][       Thread-256285][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 13:25:36,176 [DEBUG][       Thread-256285][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 13:25:36,176 [DEBUG][       Thread-256285][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 13:25:36,176 [DEBUG][       Thread-256285][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 13:25:36,176 [DEBUG][       Thread-256285][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:25:36,176 [DEBUG][       Thread-256285][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:25:36,176 [DEBUG][       Thread-256285][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:25:36,176 [DEBUG][       Thread-256285][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:25:36,176 [DEBUG][       Thread-256285][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 13:25:36,176 [DEBUG][       Thread-256285][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 13:25:36,176 [DEBUG][       Thread-256285][   transport.py][1871] : client lang: <none>
2025-06-13 13:25:36,176 [DEBUG][       Thread-256285][   transport.py][1871] : server lang: <none>
2025-06-13 13:25:36,176 [DEBUG][       Thread-256285][   transport.py][1871] : kex follows: False
2025-06-13 13:25:36,176 [DEBUG][       Thread-256285][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 13:25:36,176 [DEBUG][       Thread-256285][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 13:25:36,176 [DEBUG][       Thread-256285][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 13:25:36,176 [DEBUG][       Thread-256285][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 13:25:36,176 [DEBUG][       Thread-256285][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 13:25:36,176 [DEBUG][       Thread-256285][   transport.py][1871] : Compression: none
2025-06-13 13:25:36,176 [DEBUG][       Thread-256285][   transport.py][1871] : === End of kex handshake ===
2025-06-13 13:25:36,193 [DEBUG][       Thread-256285][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 13:25:36,193 [DEBUG][       Thread-256285][   transport.py][1871] : Switch to new keys ...
2025-06-13 13:25:36,193 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 13:25:36,194 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 13:25:36,194 [DEBUG][       Thread-256285][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 13:25:36,195 [DEBUG][       Thread-256285][   transport.py][1871] : userauth is OK
2025-06-13 13:25:36,208 [ INFO][       Thread-256285][   transport.py][1871] : Authentication (password) successful!
2025-06-13 13:25:36,208 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 13:25:36,804 [DEBUG][       Thread-256285][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 13:25:36,804 [DEBUG][       Thread-256285][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 13:25:36,845 [DEBUG][       Thread-256285][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 13:25:36,845 [DEBUG][       Thread-256285][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 13:25:36,848 [DEBUG][       Thread-256285][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 13:25:36,858 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 13:25:36,859 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 13:25:36,860 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 13:25:36,862 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 13:25:36,866 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 13:25:36,868 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 13:25:36,868 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 13:25:36,869 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 13:25:36,869 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.475632 -999.00  +13.40  19.70     38   -0.30 1 1 1 1 1   888    0 14.99 62.24 ----- 16.5 19.7 46.2 23.8 18.2 -29.9 17.0 -30.9 17.0 -29.3 18.4 -28.0
2025-06-13 13:25:36,869 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 13:25:36,869 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 13:25:36,869 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.475632
2025-06-13 13:25:36,870 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 13:25:36,870 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 13:25:36,870 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 13:25:36,870 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 13:25:36,870 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 13:25:36,870 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T13:25:06', tmtdew=15.58, humidity=34.11, cloud=0.0, wind=12.35, temperature=13.53, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T11:24:54.605', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 13:25:36,871 [DEBUG][       Thread-256285][   transport.py][1871] : EOF in transport thread
2025-06-13 13:25:36,957 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 13:25:36,967 [DEBUG][       Thread-256288][   transport.py][1871] : starting thread (client mode): 0xc54b6c20
2025-06-13 13:25:36,967 [DEBUG][       Thread-256288][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 13:25:36,981 [DEBUG][       Thread-256288][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 13:25:36,981 [ INFO][       Thread-256288][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 13:25:36,989 [DEBUG][       Thread-256288][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 13:25:36,989 [DEBUG][       Thread-256288][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 13:25:36,989 [DEBUG][       Thread-256288][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 13:25:36,989 [DEBUG][       Thread-256288][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:25:36,989 [DEBUG][       Thread-256288][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:25:36,989 [DEBUG][       Thread-256288][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:25:36,989 [DEBUG][       Thread-256288][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:25:36,989 [DEBUG][       Thread-256288][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 13:25:36,989 [DEBUG][       Thread-256288][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 13:25:36,989 [DEBUG][       Thread-256288][   transport.py][1871] : client lang: <none>
2025-06-13 13:25:36,989 [DEBUG][       Thread-256288][   transport.py][1871] : server lang: <none>
2025-06-13 13:25:36,989 [DEBUG][       Thread-256288][   transport.py][1871] : kex follows: False
2025-06-13 13:25:36,989 [DEBUG][       Thread-256288][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 13:25:36,989 [DEBUG][       Thread-256288][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 13:25:36,989 [DEBUG][       Thread-256288][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 13:25:36,989 [DEBUG][       Thread-256288][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 13:25:36,989 [DEBUG][       Thread-256288][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 13:25:36,989 [DEBUG][       Thread-256288][   transport.py][1871] : Compression: none
2025-06-13 13:25:36,990 [DEBUG][       Thread-256288][   transport.py][1871] : === End of kex handshake ===
2025-06-13 13:25:37,045 [DEBUG][       Thread-256288][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 13:25:37,045 [DEBUG][       Thread-256288][   transport.py][1871] : Switch to new keys ...
2025-06-13 13:25:37,046 [DEBUG][       Thread-256288][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 13:25:37,046 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 13:25:37,047 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 13:25:37,106 [DEBUG][       Thread-256288][   transport.py][1871] : userauth is OK
2025-06-13 13:25:37,106 [DEBUG][       Thread-256288][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 13:25:37,106 [DEBUG][       Thread-256288][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 13:25:37,106 [DEBUG][       Thread-256288][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 13:25:37,107 [DEBUG][       Thread-256288][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 13:25:37,125 [ INFO][       Thread-256288][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 13:25:37,125 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 13:25:37,126 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 13:25:38,155 [DEBUG][       Thread-256288][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 13:25:38,155 [DEBUG][       Thread-256288][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 13:25:38,204 [DEBUG][       Thread-256288][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 13:25:38,204 [DEBUG][       Thread-256288][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 13:25:38,213 [DEBUG][       Thread-256288][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 13:25:38,221 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 13:25:38,222 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 13:25:38,230 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 13:25:38,239 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 13:25:38,239 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 13:25:38,239 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 13:25:38,247 [DEBUG][       Thread-256288][   transport.py][1871] : EOF in transport thread
2025-06-13 13:25:41,131 [DEBUG][Thread-256290 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:25:48,250 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 13:25:48,250 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 13:25:48,250 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 13:25:48,253 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 13:25:48,704 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 13, 25, 38), 15.67, 33.8, 0.0, 14.73, 13.46, 0, 0, 0, 2, 0, 0),)
2025-06-13 13:25:48,704 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 13:25:38
2025-06-13 13:25:48,784 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 13:25:48,788 [DEBUG][       Thread-256291][   transport.py][1871] : starting thread (client mode): 0x86390280
2025-06-13 13:25:48,788 [DEBUG][       Thread-256291][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 13:25:48,810 [DEBUG][       Thread-256291][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 13:25:48,810 [ INFO][       Thread-256291][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 13:25:48,814 [DEBUG][       Thread-256291][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 13:25:48,814 [DEBUG][       Thread-256291][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 13:25:48,814 [DEBUG][       Thread-256291][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 13:25:48,814 [DEBUG][       Thread-256291][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:25:48,814 [DEBUG][       Thread-256291][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:25:48,814 [DEBUG][       Thread-256291][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:25:48,814 [DEBUG][       Thread-256291][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:25:48,814 [DEBUG][       Thread-256291][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 13:25:48,814 [DEBUG][       Thread-256291][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 13:25:48,814 [DEBUG][       Thread-256291][   transport.py][1871] : client lang: <none>
2025-06-13 13:25:48,814 [DEBUG][       Thread-256291][   transport.py][1871] : server lang: <none>
2025-06-13 13:25:48,814 [DEBUG][       Thread-256291][   transport.py][1871] : kex follows: False
2025-06-13 13:25:48,814 [DEBUG][       Thread-256291][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 13:25:48,814 [DEBUG][       Thread-256291][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 13:25:48,814 [DEBUG][       Thread-256291][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 13:25:48,814 [DEBUG][       Thread-256291][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 13:25:48,814 [DEBUG][       Thread-256291][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 13:25:48,814 [DEBUG][       Thread-256291][   transport.py][1871] : Compression: none
2025-06-13 13:25:48,814 [DEBUG][       Thread-256291][   transport.py][1871] : === End of kex handshake ===
2025-06-13 13:25:48,832 [DEBUG][       Thread-256291][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 13:25:48,832 [DEBUG][       Thread-256291][   transport.py][1871] : Switch to new keys ...
2025-06-13 13:25:48,833 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 13:25:48,833 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 13:25:48,834 [DEBUG][       Thread-256291][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 13:25:48,835 [DEBUG][       Thread-256291][   transport.py][1871] : userauth is OK
2025-06-13 13:25:48,847 [ INFO][       Thread-256291][   transport.py][1871] : Authentication (password) successful!
2025-06-13 13:25:48,848 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 13:25:49,450 [DEBUG][       Thread-256291][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 13:25:49,450 [DEBUG][       Thread-256291][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 13:25:49,493 [DEBUG][       Thread-256291][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 13:25:49,493 [DEBUG][       Thread-256291][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 13:25:49,496 [DEBUG][       Thread-256291][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 13:25:49,509 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 13:25:49,510 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 13:25:49,512 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 13:25:49,514 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 13:25:49,520 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 13:25:49,522 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 13:25:49,522 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 13:25:49,523 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 13:25:49,523 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.475632 -999.00  +13.40  19.70     38   -0.30 1 1 1 1 1   888    0 14.99 62.24 ----- 16.5 19.7 46.2 23.8 18.2 -29.9 17.0 -30.9 17.0 -29.3 18.4 -28.0
2025-06-13 13:25:49,523 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 13:25:49,523 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 13:25:49,523 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.475632
2025-06-13 13:25:49,524 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 13:25:49,524 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 13:25:49,524 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 13:25:49,524 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 13:25:49,524 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 13:25:49,524 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T13:25:38', tmtdew=15.67, humidity=33.8, cloud=0.0, wind=14.73, temperature=13.46, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T11:24:54.605', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 13:25:49,526 [DEBUG][       Thread-256291][   transport.py][1871] : EOF in transport thread
2025-06-13 13:25:49,607 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 13:25:49,618 [DEBUG][       Thread-256294][   transport.py][1871] : starting thread (client mode): 0x863c8fd0
2025-06-13 13:25:49,618 [DEBUG][       Thread-256294][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 13:25:49,633 [DEBUG][       Thread-256294][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 13:25:49,633 [ INFO][       Thread-256294][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 13:25:49,640 [DEBUG][       Thread-256294][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 13:25:49,641 [DEBUG][       Thread-256294][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 13:25:49,641 [DEBUG][       Thread-256294][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 13:25:49,641 [DEBUG][       Thread-256294][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:25:49,641 [DEBUG][       Thread-256294][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:25:49,641 [DEBUG][       Thread-256294][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:25:49,641 [DEBUG][       Thread-256294][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:25:49,641 [DEBUG][       Thread-256294][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 13:25:49,641 [DEBUG][       Thread-256294][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 13:25:49,641 [DEBUG][       Thread-256294][   transport.py][1871] : client lang: <none>
2025-06-13 13:25:49,641 [DEBUG][       Thread-256294][   transport.py][1871] : server lang: <none>
2025-06-13 13:25:49,641 [DEBUG][       Thread-256294][   transport.py][1871] : kex follows: False
2025-06-13 13:25:49,641 [DEBUG][       Thread-256294][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 13:25:49,641 [DEBUG][       Thread-256294][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 13:25:49,641 [DEBUG][       Thread-256294][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 13:25:49,641 [DEBUG][       Thread-256294][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 13:25:49,641 [DEBUG][       Thread-256294][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 13:25:49,641 [DEBUG][       Thread-256294][   transport.py][1871] : Compression: none
2025-06-13 13:25:49,641 [DEBUG][       Thread-256294][   transport.py][1871] : === End of kex handshake ===
2025-06-13 13:25:49,699 [DEBUG][       Thread-256294][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 13:25:49,699 [DEBUG][       Thread-256294][   transport.py][1871] : Switch to new keys ...
2025-06-13 13:25:49,700 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 13:25:49,701 [DEBUG][       Thread-256294][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 13:25:49,701 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 13:25:49,762 [DEBUG][       Thread-256294][   transport.py][1871] : userauth is OK
2025-06-13 13:25:49,762 [DEBUG][       Thread-256294][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 13:25:49,762 [DEBUG][       Thread-256294][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 13:25:49,762 [DEBUG][       Thread-256294][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 13:25:49,762 [DEBUG][       Thread-256294][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 13:25:49,781 [ INFO][       Thread-256294][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 13:25:49,781 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 13:25:49,782 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 13:25:50,153 [DEBUG][Thread-256296 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:25:50,835 [DEBUG][       Thread-256294][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 13:25:50,835 [DEBUG][       Thread-256294][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 13:25:50,884 [DEBUG][       Thread-256294][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 13:25:50,884 [DEBUG][       Thread-256294][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 13:25:50,894 [DEBUG][       Thread-256294][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 13:25:50,903 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 13:25:50,903 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 13:25:50,912 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 13:25:50,922 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 13:25:50,922 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 13:25:50,922 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 13:25:50,930 [DEBUG][       Thread-256294][   transport.py][1871] : EOF in transport thread
2025-06-13 13:25:52,056 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:25:52,058 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:25:59,198 [DEBUG][Thread-256297 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:26:00,933 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 13:26:00,933 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 13:26:00,933 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 13:26:00,936 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 13:26:01,401 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 13, 25, 38), 15.67, 33.8, 0.0, 14.73, 13.46, 0, 0, 0, 2, 0, 0),)
2025-06-13 13:26:01,401 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 13:25:38
2025-06-13 13:26:01,486 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 13:26:01,492 [DEBUG][       Thread-256298][   transport.py][1871] : starting thread (client mode): 0x84205480
2025-06-13 13:26:01,492 [DEBUG][       Thread-256298][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 13:26:01,510 [DEBUG][       Thread-256298][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 13:26:01,510 [ INFO][       Thread-256298][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 13:26:01,513 [DEBUG][       Thread-256298][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 13:26:01,513 [DEBUG][       Thread-256298][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 13:26:01,513 [DEBUG][       Thread-256298][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 13:26:01,513 [DEBUG][       Thread-256298][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:26:01,513 [DEBUG][       Thread-256298][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:26:01,513 [DEBUG][       Thread-256298][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:26:01,513 [DEBUG][       Thread-256298][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:26:01,514 [DEBUG][       Thread-256298][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 13:26:01,514 [DEBUG][       Thread-256298][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 13:26:01,514 [DEBUG][       Thread-256298][   transport.py][1871] : client lang: <none>
2025-06-13 13:26:01,514 [DEBUG][       Thread-256298][   transport.py][1871] : server lang: <none>
2025-06-13 13:26:01,514 [DEBUG][       Thread-256298][   transport.py][1871] : kex follows: False
2025-06-13 13:26:01,514 [DEBUG][       Thread-256298][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 13:26:01,514 [DEBUG][       Thread-256298][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 13:26:01,514 [DEBUG][       Thread-256298][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 13:26:01,514 [DEBUG][       Thread-256298][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 13:26:01,514 [DEBUG][       Thread-256298][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 13:26:01,514 [DEBUG][       Thread-256298][   transport.py][1871] : Compression: none
2025-06-13 13:26:01,514 [DEBUG][       Thread-256298][   transport.py][1871] : === End of kex handshake ===
2025-06-13 13:26:01,521 [DEBUG][       Thread-256298][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 13:26:01,522 [DEBUG][       Thread-256298][   transport.py][1871] : Switch to new keys ...
2025-06-13 13:26:01,522 [DEBUG][       Thread-256298][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 13:26:01,522 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 13:26:01,522 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 13:26:01,523 [DEBUG][       Thread-256298][   transport.py][1871] : userauth is OK
2025-06-13 13:26:01,536 [ INFO][       Thread-256298][   transport.py][1871] : Authentication (password) successful!
2025-06-13 13:26:01,536 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 13:26:02,167 [DEBUG][       Thread-256298][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 13:26:02,167 [DEBUG][       Thread-256298][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 13:26:02,209 [DEBUG][       Thread-256298][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 13:26:02,209 [DEBUG][       Thread-256298][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 13:26:02,213 [DEBUG][       Thread-256298][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 13:26:02,224 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 13:26:02,225 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 13:26:02,227 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 13:26:02,229 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 13:26:02,234 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 13:26:02,236 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 13:26:02,237 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 13:26:02,237 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 13:26:02,237 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.476326 -999.00  +13.40  18.24     38   -0.50 1 1 1 1 1   888    0 14.78 64.44 ----- 20.5 18.2 34.6 24.6 18.2 -29.7 16.9 -31.7 17.0 -28.8 18.3 -27.8
2025-06-13 13:26:02,237 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 13:26:02,238 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 13:26:02,238 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.476326
2025-06-13 13:26:02,238 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 13:26:02,239 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 13:26:02,239 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 13:26:02,239 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 13:26:02,239 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 13:26:02,239 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T13:25:38', tmtdew=15.67, humidity=33.8, cloud=0.0, wind=14.73, temperature=13.46, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T11:25:54.566', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 13:26:02,239 [DEBUG][       Thread-256298][   transport.py][1871] : EOF in transport thread
2025-06-13 13:26:02,323 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 13:26:02,332 [DEBUG][       Thread-256301][   transport.py][1871] : starting thread (client mode): 0x86392b60
2025-06-13 13:26:02,332 [DEBUG][       Thread-256301][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 13:26:02,347 [DEBUG][       Thread-256301][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 13:26:02,347 [ INFO][       Thread-256301][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 13:26:02,355 [DEBUG][       Thread-256301][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 13:26:02,355 [DEBUG][       Thread-256301][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 13:26:02,355 [DEBUG][       Thread-256301][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 13:26:02,355 [DEBUG][       Thread-256301][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:26:02,355 [DEBUG][       Thread-256301][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:26:02,355 [DEBUG][       Thread-256301][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:26:02,355 [DEBUG][       Thread-256301][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:26:02,355 [DEBUG][       Thread-256301][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 13:26:02,355 [DEBUG][       Thread-256301][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 13:26:02,355 [DEBUG][       Thread-256301][   transport.py][1871] : client lang: <none>
2025-06-13 13:26:02,355 [DEBUG][       Thread-256301][   transport.py][1871] : server lang: <none>
2025-06-13 13:26:02,355 [DEBUG][       Thread-256301][   transport.py][1871] : kex follows: False
2025-06-13 13:26:02,355 [DEBUG][       Thread-256301][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 13:26:02,355 [DEBUG][       Thread-256301][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 13:26:02,355 [DEBUG][       Thread-256301][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 13:26:02,355 [DEBUG][       Thread-256301][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 13:26:02,355 [DEBUG][       Thread-256301][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 13:26:02,355 [DEBUG][       Thread-256301][   transport.py][1871] : Compression: none
2025-06-13 13:26:02,355 [DEBUG][       Thread-256301][   transport.py][1871] : === End of kex handshake ===
2025-06-13 13:26:02,414 [DEBUG][       Thread-256301][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 13:26:02,414 [DEBUG][       Thread-256301][   transport.py][1871] : Switch to new keys ...
2025-06-13 13:26:02,415 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 13:26:02,415 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 13:26:02,416 [DEBUG][       Thread-256301][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 13:26:02,470 [DEBUG][       Thread-256301][   transport.py][1871] : userauth is OK
2025-06-13 13:26:02,470 [DEBUG][       Thread-256301][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 13:26:02,470 [DEBUG][       Thread-256301][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 13:26:02,470 [DEBUG][       Thread-256301][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 13:26:02,470 [DEBUG][       Thread-256301][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 13:26:02,488 [ INFO][       Thread-256301][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 13:26:02,489 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 13:26:02,489 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 13:26:03,544 [DEBUG][       Thread-256301][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 13:26:03,545 [DEBUG][       Thread-256301][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 13:26:03,598 [DEBUG][       Thread-256301][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 13:26:03,598 [DEBUG][       Thread-256301][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 13:26:03,610 [DEBUG][       Thread-256301][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 13:26:03,622 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 13:26:03,623 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 13:26:03,634 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 13:26:03,646 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 13:26:03,646 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 13:26:03,646 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 13:26:03,656 [DEBUG][       Thread-256301][   transport.py][1871] : EOF in transport thread
2025-06-13 13:26:08,220 [DEBUG][Thread-256303 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:26:13,657 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 13:26:13,657 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 13:26:13,657 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 13:26:13,660 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 13:26:14,113 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 13, 26, 10), 15.98, 33.11, 0.0, 13.09, 13.52, 0, 0, 0, 2, 0, 0),)
2025-06-13 13:26:14,113 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 13:26:10
2025-06-13 13:26:14,194 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 13:26:14,201 [DEBUG][       Thread-256304][   transport.py][1871] : starting thread (client mode): 0x84204dc0
2025-06-13 13:26:14,201 [DEBUG][       Thread-256304][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 13:26:14,223 [DEBUG][       Thread-256304][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 13:26:14,223 [ INFO][       Thread-256304][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 13:26:14,227 [DEBUG][       Thread-256304][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 13:26:14,227 [DEBUG][       Thread-256304][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 13:26:14,227 [DEBUG][       Thread-256304][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 13:26:14,227 [DEBUG][       Thread-256304][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:26:14,227 [DEBUG][       Thread-256304][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:26:14,227 [DEBUG][       Thread-256304][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:26:14,227 [DEBUG][       Thread-256304][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:26:14,227 [DEBUG][       Thread-256304][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 13:26:14,227 [DEBUG][       Thread-256304][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 13:26:14,227 [DEBUG][       Thread-256304][   transport.py][1871] : client lang: <none>
2025-06-13 13:26:14,227 [DEBUG][       Thread-256304][   transport.py][1871] : server lang: <none>
2025-06-13 13:26:14,227 [DEBUG][       Thread-256304][   transport.py][1871] : kex follows: False
2025-06-13 13:26:14,227 [DEBUG][       Thread-256304][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 13:26:14,227 [DEBUG][       Thread-256304][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 13:26:14,227 [DEBUG][       Thread-256304][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 13:26:14,227 [DEBUG][       Thread-256304][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 13:26:14,227 [DEBUG][       Thread-256304][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 13:26:14,227 [DEBUG][       Thread-256304][   transport.py][1871] : Compression: none
2025-06-13 13:26:14,227 [DEBUG][       Thread-256304][   transport.py][1871] : === End of kex handshake ===
2025-06-13 13:26:14,245 [DEBUG][       Thread-256304][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 13:26:14,245 [DEBUG][       Thread-256304][   transport.py][1871] : Switch to new keys ...
2025-06-13 13:26:14,246 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 13:26:14,246 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 13:26:14,246 [DEBUG][       Thread-256304][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 13:26:14,247 [DEBUG][       Thread-256304][   transport.py][1871] : userauth is OK
2025-06-13 13:26:14,260 [ INFO][       Thread-256304][   transport.py][1871] : Authentication (password) successful!
2025-06-13 13:26:14,260 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 13:26:14,892 [DEBUG][       Thread-256304][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 13:26:14,893 [DEBUG][       Thread-256304][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 13:26:14,937 [DEBUG][       Thread-256304][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 13:26:14,937 [DEBUG][       Thread-256304][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 13:26:14,940 [DEBUG][       Thread-256304][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 13:26:14,953 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 13:26:14,953 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 13:26:14,955 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 13:26:14,957 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 13:26:14,964 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 13:26:14,966 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 13:26:14,966 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 13:26:14,967 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 13:26:14,967 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.476326 -999.00  +13.40  18.24     38   -0.50 1 1 1 1 1   888    0 14.78 64.44 ----- 20.5 18.2 34.6 24.6 18.2 -29.7 16.9 -31.7 17.0 -28.8 18.3 -27.8
2025-06-13 13:26:14,967 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 13:26:14,967 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 13:26:14,967 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.476326
2025-06-13 13:26:14,967 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 13:26:14,968 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 13:26:14,968 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 13:26:14,968 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 13:26:14,968 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 13:26:14,968 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T13:26:10', tmtdew=15.98, humidity=33.11, cloud=0.0, wind=13.09, temperature=13.52, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T11:25:54.566', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 13:26:14,970 [DEBUG][       Thread-256304][   transport.py][1871] : EOF in transport thread
2025-06-13 13:26:15,051 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 13:26:15,063 [DEBUG][       Thread-256307][   transport.py][1871] : starting thread (client mode): 0x867b78e0
2025-06-13 13:26:15,063 [DEBUG][       Thread-256307][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 13:26:15,078 [DEBUG][       Thread-256307][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 13:26:15,078 [ INFO][       Thread-256307][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 13:26:15,086 [DEBUG][       Thread-256307][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 13:26:15,086 [DEBUG][       Thread-256307][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 13:26:15,086 [DEBUG][       Thread-256307][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 13:26:15,086 [DEBUG][       Thread-256307][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:26:15,086 [DEBUG][       Thread-256307][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:26:15,086 [DEBUG][       Thread-256307][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:26:15,086 [DEBUG][       Thread-256307][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:26:15,086 [DEBUG][       Thread-256307][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 13:26:15,086 [DEBUG][       Thread-256307][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 13:26:15,086 [DEBUG][       Thread-256307][   transport.py][1871] : client lang: <none>
2025-06-13 13:26:15,086 [DEBUG][       Thread-256307][   transport.py][1871] : server lang: <none>
2025-06-13 13:26:15,086 [DEBUG][       Thread-256307][   transport.py][1871] : kex follows: False
2025-06-13 13:26:15,086 [DEBUG][       Thread-256307][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 13:26:15,086 [DEBUG][       Thread-256307][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 13:26:15,086 [DEBUG][       Thread-256307][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 13:26:15,086 [DEBUG][       Thread-256307][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 13:26:15,086 [DEBUG][       Thread-256307][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 13:26:15,086 [DEBUG][       Thread-256307][   transport.py][1871] : Compression: none
2025-06-13 13:26:15,086 [DEBUG][       Thread-256307][   transport.py][1871] : === End of kex handshake ===
2025-06-13 13:26:15,098 [DEBUG][Thread-256309 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:26:15,146 [DEBUG][       Thread-256307][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 13:26:15,146 [DEBUG][       Thread-256307][   transport.py][1871] : Switch to new keys ...
2025-06-13 13:26:15,147 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 13:26:15,148 [DEBUG][       Thread-256307][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 13:26:15,148 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 13:26:15,202 [DEBUG][       Thread-256307][   transport.py][1871] : userauth is OK
2025-06-13 13:26:15,202 [DEBUG][       Thread-256307][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 13:26:15,202 [DEBUG][       Thread-256307][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 13:26:15,203 [DEBUG][       Thread-256307][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 13:26:15,203 [DEBUG][       Thread-256307][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 13:26:15,221 [ INFO][       Thread-256307][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 13:26:15,222 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 13:26:15,222 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 13:26:16,235 [DEBUG][       Thread-256307][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 13:26:16,235 [DEBUG][       Thread-256307][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 13:26:16,284 [DEBUG][       Thread-256307][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 13:26:16,284 [DEBUG][       Thread-256307][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 13:26:16,293 [DEBUG][       Thread-256307][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 13:26:16,306 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 13:26:16,307 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 13:26:16,316 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 13:26:16,325 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 13:26:16,326 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 13:26:16,326 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 13:26:16,334 [DEBUG][       Thread-256307][   transport.py][1871] : EOF in transport thread
2025-06-13 13:26:17,244 [DEBUG][Thread-256310 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:26:26,279 [DEBUG][Thread-256311 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:26:26,337 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 13:26:26,337 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 13:26:26,337 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 13:26:26,340 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 13:26:26,805 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 13, 26, 10), 15.98, 33.11, 0.0, 13.09, 13.52, 0, 0, 0, 2, 0, 0),)
2025-06-13 13:26:26,805 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 13:26:10
2025-06-13 13:26:26,886 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 13:26:26,890 [DEBUG][       Thread-256312][   transport.py][1871] : starting thread (client mode): 0x86390ee0
2025-06-13 13:26:26,890 [DEBUG][       Thread-256312][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 13:26:26,912 [DEBUG][       Thread-256312][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 13:26:26,913 [ INFO][       Thread-256312][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 13:26:26,916 [DEBUG][       Thread-256312][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 13:26:26,916 [DEBUG][       Thread-256312][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 13:26:26,916 [DEBUG][       Thread-256312][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 13:26:26,916 [DEBUG][       Thread-256312][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:26:26,916 [DEBUG][       Thread-256312][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:26:26,916 [DEBUG][       Thread-256312][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:26:26,916 [DEBUG][       Thread-256312][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:26:26,916 [DEBUG][       Thread-256312][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 13:26:26,916 [DEBUG][       Thread-256312][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 13:26:26,916 [DEBUG][       Thread-256312][   transport.py][1871] : client lang: <none>
2025-06-13 13:26:26,916 [DEBUG][       Thread-256312][   transport.py][1871] : server lang: <none>
2025-06-13 13:26:26,916 [DEBUG][       Thread-256312][   transport.py][1871] : kex follows: False
2025-06-13 13:26:26,916 [DEBUG][       Thread-256312][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 13:26:26,916 [DEBUG][       Thread-256312][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 13:26:26,916 [DEBUG][       Thread-256312][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 13:26:26,916 [DEBUG][       Thread-256312][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 13:26:26,916 [DEBUG][       Thread-256312][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 13:26:26,916 [DEBUG][       Thread-256312][   transport.py][1871] : Compression: none
2025-06-13 13:26:26,916 [DEBUG][       Thread-256312][   transport.py][1871] : === End of kex handshake ===
2025-06-13 13:26:26,936 [DEBUG][       Thread-256312][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 13:26:26,936 [DEBUG][       Thread-256312][   transport.py][1871] : Switch to new keys ...
2025-06-13 13:26:26,937 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 13:26:26,937 [DEBUG][       Thread-256312][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 13:26:26,937 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 13:26:26,939 [DEBUG][       Thread-256312][   transport.py][1871] : userauth is OK
2025-06-13 13:26:26,963 [ INFO][       Thread-256312][   transport.py][1871] : Authentication (password) successful!
2025-06-13 13:26:26,964 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 13:26:27,594 [DEBUG][       Thread-256312][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 13:26:27,594 [DEBUG][       Thread-256312][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 13:26:27,637 [DEBUG][       Thread-256312][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 13:26:27,637 [DEBUG][       Thread-256312][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 13:26:27,640 [DEBUG][       Thread-256312][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 13:26:27,654 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 13:26:27,654 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 13:26:27,656 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 13:26:27,658 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 13:26:27,663 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 13:26:27,665 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 13:26:27,666 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 13:26:27,666 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 13:26:27,666 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.476326 -999.00  +13.40  18.24     38   -0.50 1 1 1 1 1   888    0 14.78 64.44 ----- 20.5 18.2 34.6 24.6 18.2 -29.7 16.9 -31.7 17.0 -28.8 18.3 -27.8
2025-06-13 13:26:27,667 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 13:26:27,667 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 13:26:27,667 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.476326
2025-06-13 13:26:27,667 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 13:26:27,668 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 13:26:27,668 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 13:26:27,668 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 13:26:27,668 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 13:26:27,668 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T13:26:10', tmtdew=15.98, humidity=33.11, cloud=0.0, wind=13.09, temperature=13.52, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T11:25:54.566', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 13:26:27,669 [DEBUG][       Thread-256312][   transport.py][1871] : EOF in transport thread
2025-06-13 13:26:27,751 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 13:26:27,761 [DEBUG][       Thread-256315][   transport.py][1871] : starting thread (client mode): 0x863ee470
2025-06-13 13:26:27,761 [DEBUG][       Thread-256315][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 13:26:27,776 [DEBUG][       Thread-256315][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 13:26:27,776 [ INFO][       Thread-256315][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 13:26:27,784 [DEBUG][       Thread-256315][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 13:26:27,784 [DEBUG][       Thread-256315][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 13:26:27,784 [DEBUG][       Thread-256315][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 13:26:27,784 [DEBUG][       Thread-256315][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:26:27,784 [DEBUG][       Thread-256315][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:26:27,784 [DEBUG][       Thread-256315][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:26:27,784 [DEBUG][       Thread-256315][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:26:27,784 [DEBUG][       Thread-256315][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 13:26:27,784 [DEBUG][       Thread-256315][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 13:26:27,784 [DEBUG][       Thread-256315][   transport.py][1871] : client lang: <none>
2025-06-13 13:26:27,784 [DEBUG][       Thread-256315][   transport.py][1871] : server lang: <none>
2025-06-13 13:26:27,785 [DEBUG][       Thread-256315][   transport.py][1871] : kex follows: False
2025-06-13 13:26:27,785 [DEBUG][       Thread-256315][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 13:26:27,785 [DEBUG][       Thread-256315][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 13:26:27,785 [DEBUG][       Thread-256315][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 13:26:27,785 [DEBUG][       Thread-256315][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 13:26:27,785 [DEBUG][       Thread-256315][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 13:26:27,785 [DEBUG][       Thread-256315][   transport.py][1871] : Compression: none
2025-06-13 13:26:27,785 [DEBUG][       Thread-256315][   transport.py][1871] : === End of kex handshake ===
2025-06-13 13:26:27,840 [DEBUG][       Thread-256315][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 13:26:27,840 [DEBUG][       Thread-256315][   transport.py][1871] : Switch to new keys ...
2025-06-13 13:26:27,840 [DEBUG][       Thread-256315][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 13:26:27,840 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 13:26:27,840 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 13:26:27,897 [DEBUG][       Thread-256315][   transport.py][1871] : userauth is OK
2025-06-13 13:26:27,897 [DEBUG][       Thread-256315][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 13:26:27,897 [DEBUG][       Thread-256315][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 13:26:27,897 [DEBUG][       Thread-256315][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 13:26:27,897 [DEBUG][       Thread-256315][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 13:26:27,912 [ INFO][       Thread-256315][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 13:26:27,912 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 13:26:27,912 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 13:26:28,953 [DEBUG][       Thread-256315][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 13:26:28,953 [DEBUG][       Thread-256315][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 13:26:29,004 [DEBUG][       Thread-256315][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 13:26:29,004 [DEBUG][       Thread-256315][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 13:26:29,014 [DEBUG][       Thread-256315][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 13:26:29,022 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 13:26:29,023 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 13:26:29,031 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 13:26:29,043 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 13:26:29,043 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 13:26:29,044 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 13:26:29,052 [DEBUG][       Thread-256315][   transport.py][1871] : EOF in transport thread
2025-06-13 13:26:32,060 [DEBUG][Thread-256317 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:26:33,133 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:26:33,134 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:26:35,297 [DEBUG][Thread-256318 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:26:39,054 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 13:26:39,054 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 13:26:39,055 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 13:26:39,057 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 13:26:39,521 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 13, 26, 10), 15.98, 33.11, 0.0, 13.09, 13.52, 0, 0, 0, 2, 0, 0),)
2025-06-13 13:26:39,521 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 13:26:10
2025-06-13 13:26:39,603 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 13:26:39,610 [DEBUG][       Thread-256319][   transport.py][1871] : starting thread (client mode): 0x86369ae0
2025-06-13 13:26:39,610 [DEBUG][       Thread-256319][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 13:26:39,631 [DEBUG][       Thread-256319][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 13:26:39,631 [ INFO][       Thread-256319][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 13:26:39,635 [DEBUG][       Thread-256319][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 13:26:39,635 [DEBUG][       Thread-256319][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 13:26:39,635 [DEBUG][       Thread-256319][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 13:26:39,635 [DEBUG][       Thread-256319][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:26:39,635 [DEBUG][       Thread-256319][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:26:39,635 [DEBUG][       Thread-256319][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:26:39,635 [DEBUG][       Thread-256319][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:26:39,635 [DEBUG][       Thread-256319][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 13:26:39,635 [DEBUG][       Thread-256319][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 13:26:39,635 [DEBUG][       Thread-256319][   transport.py][1871] : client lang: <none>
2025-06-13 13:26:39,635 [DEBUG][       Thread-256319][   transport.py][1871] : server lang: <none>
2025-06-13 13:26:39,635 [DEBUG][       Thread-256319][   transport.py][1871] : kex follows: False
2025-06-13 13:26:39,635 [DEBUG][       Thread-256319][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 13:26:39,635 [DEBUG][       Thread-256319][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 13:26:39,635 [DEBUG][       Thread-256319][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 13:26:39,635 [DEBUG][       Thread-256319][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 13:26:39,635 [DEBUG][       Thread-256319][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 13:26:39,635 [DEBUG][       Thread-256319][   transport.py][1871] : Compression: none
2025-06-13 13:26:39,636 [DEBUG][       Thread-256319][   transport.py][1871] : === End of kex handshake ===
2025-06-13 13:26:39,653 [DEBUG][       Thread-256319][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 13:26:39,653 [DEBUG][       Thread-256319][   transport.py][1871] : Switch to new keys ...
2025-06-13 13:26:39,654 [DEBUG][       Thread-256319][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 13:26:39,654 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 13:26:39,654 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 13:26:39,655 [DEBUG][       Thread-256319][   transport.py][1871] : userauth is OK
2025-06-13 13:26:39,669 [ INFO][       Thread-256319][   transport.py][1871] : Authentication (password) successful!
2025-06-13 13:26:39,670 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 13:26:40,300 [DEBUG][       Thread-256319][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 13:26:40,300 [DEBUG][       Thread-256319][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 13:26:40,345 [DEBUG][       Thread-256319][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 13:26:40,345 [DEBUG][       Thread-256319][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 13:26:40,347 [DEBUG][       Thread-256319][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 13:26:40,359 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 13:26:40,359 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 13:26:40,360 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 13:26:40,361 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 13:26:40,364 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 13:26:40,365 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 13:26:40,365 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 13:26:40,365 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 13:26:40,365 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.476673 -999.00  +13.40  18.99     36   -1.20 1 1 1 1 1   888    0 15.05 70.55 ----- 19.4 19.0 33.8 23.4 18.1 -30.6 16.8 -32.5 17.0 -30.6 18.3 -28.1
2025-06-13 13:26:40,365 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 13:26:40,365 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 13:26:40,365 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.476673
2025-06-13 13:26:40,365 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 13:26:40,365 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 13:26:40,365 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 13:26:40,365 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 13:26:40,365 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 13:26:40,365 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T13:26:10', tmtdew=15.98, humidity=33.11, cloud=0.0, wind=13.09, temperature=13.52, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T11:26:24.547', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 13:26:40,366 [DEBUG][       Thread-256319][   transport.py][1871] : EOF in transport thread
2025-06-13 13:26:40,441 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 13:26:40,452 [DEBUG][       Thread-256322][   transport.py][1871] : starting thread (client mode): 0x867b6c80
2025-06-13 13:26:40,452 [DEBUG][       Thread-256322][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 13:26:40,467 [DEBUG][       Thread-256322][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 13:26:40,467 [ INFO][       Thread-256322][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 13:26:40,475 [DEBUG][       Thread-256322][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 13:26:40,475 [DEBUG][       Thread-256322][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 13:26:40,475 [DEBUG][       Thread-256322][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 13:26:40,475 [DEBUG][       Thread-256322][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:26:40,475 [DEBUG][       Thread-256322][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:26:40,475 [DEBUG][       Thread-256322][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:26:40,475 [DEBUG][       Thread-256322][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:26:40,475 [DEBUG][       Thread-256322][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 13:26:40,475 [DEBUG][       Thread-256322][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 13:26:40,475 [DEBUG][       Thread-256322][   transport.py][1871] : client lang: <none>
2025-06-13 13:26:40,475 [DEBUG][       Thread-256322][   transport.py][1871] : server lang: <none>
2025-06-13 13:26:40,475 [DEBUG][       Thread-256322][   transport.py][1871] : kex follows: False
2025-06-13 13:26:40,475 [DEBUG][       Thread-256322][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 13:26:40,476 [DEBUG][       Thread-256322][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 13:26:40,476 [DEBUG][       Thread-256322][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 13:26:40,476 [DEBUG][       Thread-256322][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 13:26:40,476 [DEBUG][       Thread-256322][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 13:26:40,476 [DEBUG][       Thread-256322][   transport.py][1871] : Compression: none
2025-06-13 13:26:40,476 [DEBUG][       Thread-256322][   transport.py][1871] : === End of kex handshake ===
2025-06-13 13:26:40,534 [DEBUG][       Thread-256322][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 13:26:40,534 [DEBUG][       Thread-256322][   transport.py][1871] : Switch to new keys ...
2025-06-13 13:26:40,535 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 13:26:40,536 [DEBUG][       Thread-256322][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 13:26:40,536 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 13:26:40,595 [DEBUG][       Thread-256322][   transport.py][1871] : userauth is OK
2025-06-13 13:26:40,596 [DEBUG][       Thread-256322][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 13:26:40,596 [DEBUG][       Thread-256322][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 13:26:40,596 [DEBUG][       Thread-256322][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 13:26:40,596 [DEBUG][       Thread-256322][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 13:26:40,615 [ INFO][       Thread-256322][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 13:26:40,616 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 13:26:40,616 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 13:26:41,647 [DEBUG][       Thread-256322][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 13:26:41,647 [DEBUG][       Thread-256322][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 13:26:41,699 [DEBUG][       Thread-256322][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 13:26:41,699 [DEBUG][       Thread-256322][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 13:26:41,713 [DEBUG][       Thread-256322][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 13:26:41,726 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 13:26:41,727 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 13:26:41,738 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 13:26:41,753 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 13:26:41,753 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 13:26:41,754 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 13:26:41,762 [DEBUG][       Thread-256322][   transport.py][1871] : EOF in transport thread
2025-06-13 13:26:44,319 [DEBUG][Thread-256324 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:26:51,758 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 13:26:51,758 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 13:26:51,758 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 13:26:51,759 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 13:26:52,196 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:26:52,197 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:26:52,209 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 13, 26, 42), 16.01, 33.02, 0.0, 14.68, 13.5, 0, 0, 0, 2, 0, 0),)
2025-06-13 13:26:52,209 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 13:26:42
2025-06-13 13:26:52,291 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 13:26:52,296 [DEBUG][       Thread-256325][   transport.py][1871] : starting thread (client mode): 0x863cb0d0
2025-06-13 13:26:52,296 [DEBUG][       Thread-256325][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 13:26:52,318 [DEBUG][       Thread-256325][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 13:26:52,318 [ INFO][       Thread-256325][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 13:26:52,322 [DEBUG][       Thread-256325][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 13:26:52,322 [DEBUG][       Thread-256325][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 13:26:52,322 [DEBUG][       Thread-256325][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 13:26:52,322 [DEBUG][       Thread-256325][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:26:52,322 [DEBUG][       Thread-256325][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:26:52,322 [DEBUG][       Thread-256325][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:26:52,322 [DEBUG][       Thread-256325][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:26:52,322 [DEBUG][       Thread-256325][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 13:26:52,322 [DEBUG][       Thread-256325][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 13:26:52,322 [DEBUG][       Thread-256325][   transport.py][1871] : client lang: <none>
2025-06-13 13:26:52,322 [DEBUG][       Thread-256325][   transport.py][1871] : server lang: <none>
2025-06-13 13:26:52,322 [DEBUG][       Thread-256325][   transport.py][1871] : kex follows: False
2025-06-13 13:26:52,322 [DEBUG][       Thread-256325][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 13:26:52,322 [DEBUG][       Thread-256325][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 13:26:52,323 [DEBUG][       Thread-256325][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 13:26:52,323 [DEBUG][       Thread-256325][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 13:26:52,323 [DEBUG][       Thread-256325][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 13:26:52,323 [DEBUG][       Thread-256325][   transport.py][1871] : Compression: none
2025-06-13 13:26:52,323 [DEBUG][       Thread-256325][   transport.py][1871] : === End of kex handshake ===
2025-06-13 13:26:52,339 [DEBUG][       Thread-256325][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 13:26:52,339 [DEBUG][       Thread-256325][   transport.py][1871] : Switch to new keys ...
2025-06-13 13:26:52,340 [DEBUG][       Thread-256325][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 13:26:52,340 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 13:26:52,340 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 13:26:52,341 [DEBUG][       Thread-256325][   transport.py][1871] : userauth is OK
2025-06-13 13:26:52,367 [ INFO][       Thread-256325][   transport.py][1871] : Authentication (password) successful!
2025-06-13 13:26:52,367 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 13:26:53,042 [DEBUG][       Thread-256325][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 13:26:53,042 [DEBUG][       Thread-256325][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 13:26:53,085 [DEBUG][       Thread-256325][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 13:26:53,085 [DEBUG][       Thread-256325][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 13:26:53,088 [DEBUG][       Thread-256325][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 13:26:53,100 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 13:26:53,100 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 13:26:53,102 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 13:26:53,103 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 13:26:53,110 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 13:26:53,111 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 13:26:53,112 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 13:26:53,112 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 13:26:53,113 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.476673 -999.00  +13.40  18.99     36   -1.20 1 1 1 1 1   888    0 15.05 70.55 ----- 19.4 19.0 33.8 23.4 18.1 -30.6 16.8 -32.5 17.0 -30.6 18.3 -28.1
2025-06-13 13:26:53,113 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 13:26:53,113 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 13:26:53,113 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.476673
2025-06-13 13:26:53,113 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 13:26:53,114 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 13:26:53,114 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 13:26:53,114 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 13:26:53,114 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 13:26:53,114 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T13:26:42', tmtdew=16.01, humidity=33.02, cloud=0.0, wind=14.68, temperature=13.5, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T11:26:24.547', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 13:26:53,115 [DEBUG][       Thread-256325][   transport.py][1871] : EOF in transport thread
2025-06-13 13:26:53,197 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 13:26:53,207 [DEBUG][       Thread-256328][   transport.py][1871] : starting thread (client mode): 0x86393010
2025-06-13 13:26:53,207 [DEBUG][       Thread-256328][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 13:26:53,223 [DEBUG][       Thread-256328][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 13:26:53,223 [ INFO][       Thread-256328][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 13:26:53,231 [DEBUG][       Thread-256328][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 13:26:53,232 [DEBUG][       Thread-256328][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 13:26:53,232 [DEBUG][       Thread-256328][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 13:26:53,232 [DEBUG][       Thread-256328][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:26:53,232 [DEBUG][       Thread-256328][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:26:53,232 [DEBUG][       Thread-256328][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:26:53,232 [DEBUG][       Thread-256328][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:26:53,232 [DEBUG][       Thread-256328][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 13:26:53,232 [DEBUG][       Thread-256328][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 13:26:53,232 [DEBUG][       Thread-256328][   transport.py][1871] : client lang: <none>
2025-06-13 13:26:53,232 [DEBUG][       Thread-256328][   transport.py][1871] : server lang: <none>
2025-06-13 13:26:53,232 [DEBUG][       Thread-256328][   transport.py][1871] : kex follows: False
2025-06-13 13:26:53,232 [DEBUG][       Thread-256328][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 13:26:53,232 [DEBUG][       Thread-256328][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 13:26:53,232 [DEBUG][       Thread-256328][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 13:26:53,232 [DEBUG][       Thread-256328][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 13:26:53,232 [DEBUG][       Thread-256328][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 13:26:53,232 [DEBUG][       Thread-256328][   transport.py][1871] : Compression: none
2025-06-13 13:26:53,232 [DEBUG][       Thread-256328][   transport.py][1871] : === End of kex handshake ===
2025-06-13 13:26:53,291 [DEBUG][       Thread-256328][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 13:26:53,291 [DEBUG][       Thread-256328][   transport.py][1871] : Switch to new keys ...
2025-06-13 13:26:53,292 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 13:26:53,293 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 13:26:53,293 [DEBUG][       Thread-256328][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 13:26:53,341 [DEBUG][Thread-256330 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:26:53,350 [DEBUG][       Thread-256328][   transport.py][1871] : userauth is OK
2025-06-13 13:26:53,350 [DEBUG][       Thread-256328][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 13:26:53,350 [DEBUG][       Thread-256328][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 13:26:53,350 [DEBUG][       Thread-256328][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 13:26:53,350 [DEBUG][       Thread-256328][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 13:26:53,368 [ INFO][       Thread-256328][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 13:26:53,369 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 13:26:53,369 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 13:26:54,387 [DEBUG][       Thread-256328][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 13:26:54,387 [DEBUG][       Thread-256328][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 13:26:54,436 [DEBUG][       Thread-256328][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 13:26:54,436 [DEBUG][       Thread-256328][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 13:26:54,445 [DEBUG][       Thread-256328][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 13:26:54,454 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 13:26:54,455 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 13:26:54,463 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 13:26:54,473 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 13:26:54,473 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 13:26:54,474 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 13:26:54,482 [DEBUG][       Thread-256328][   transport.py][1871] : EOF in transport thread
2025-06-13 13:27:02,376 [DEBUG][Thread-256331 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:27:04,475 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 13:27:04,476 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 13:27:04,476 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 13:27:04,479 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 13:27:04,925 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 13, 26, 42), 16.01, 33.02, 0.0, 14.68, 13.5, 0, 0, 0, 2, 0, 0),)
2025-06-13 13:27:04,925 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 13:26:42
2025-06-13 13:27:05,006 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 13:27:05,012 [DEBUG][       Thread-256332][   transport.py][1871] : starting thread (client mode): 0x86390ac0
2025-06-13 13:27:05,012 [DEBUG][       Thread-256332][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 13:27:05,032 [DEBUG][       Thread-256332][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 13:27:05,032 [ INFO][       Thread-256332][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 13:27:05,036 [DEBUG][       Thread-256332][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 13:27:05,036 [DEBUG][       Thread-256332][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 13:27:05,036 [DEBUG][       Thread-256332][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 13:27:05,036 [DEBUG][       Thread-256332][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:27:05,036 [DEBUG][       Thread-256332][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:27:05,036 [DEBUG][       Thread-256332][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:27:05,036 [DEBUG][       Thread-256332][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:27:05,036 [DEBUG][       Thread-256332][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 13:27:05,036 [DEBUG][       Thread-256332][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 13:27:05,036 [DEBUG][       Thread-256332][   transport.py][1871] : client lang: <none>
2025-06-13 13:27:05,036 [DEBUG][       Thread-256332][   transport.py][1871] : server lang: <none>
2025-06-13 13:27:05,036 [DEBUG][       Thread-256332][   transport.py][1871] : kex follows: False
2025-06-13 13:27:05,036 [DEBUG][       Thread-256332][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 13:27:05,036 [DEBUG][       Thread-256332][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 13:27:05,036 [DEBUG][       Thread-256332][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 13:27:05,036 [DEBUG][       Thread-256332][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 13:27:05,036 [DEBUG][       Thread-256332][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 13:27:05,036 [DEBUG][       Thread-256332][   transport.py][1871] : Compression: none
2025-06-13 13:27:05,036 [DEBUG][       Thread-256332][   transport.py][1871] : === End of kex handshake ===
2025-06-13 13:27:05,053 [DEBUG][       Thread-256332][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 13:27:05,053 [DEBUG][       Thread-256332][   transport.py][1871] : Switch to new keys ...
2025-06-13 13:27:05,054 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 13:27:05,054 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 13:27:05,054 [DEBUG][       Thread-256332][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 13:27:05,055 [DEBUG][       Thread-256332][   transport.py][1871] : userauth is OK
2025-06-13 13:27:05,079 [ INFO][       Thread-256332][   transport.py][1871] : Authentication (password) successful!
2025-06-13 13:27:05,080 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 13:27:05,654 [DEBUG][       Thread-256332][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 13:27:05,654 [DEBUG][       Thread-256332][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 13:27:05,697 [DEBUG][       Thread-256332][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 13:27:05,697 [DEBUG][       Thread-256332][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 13:27:05,699 [DEBUG][       Thread-256332][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 13:27:05,705 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 13:27:05,706 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 13:27:05,708 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 13:27:05,709 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 13:27:05,714 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 13:27:05,716 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 13:27:05,716 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 13:27:05,717 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 13:27:05,717 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.476673 -999.00  +13.40  18.99     36   -1.20 1 1 1 1 1   888    0 15.05 70.55 ----- 19.4 19.0 33.8 23.4 18.1 -30.6 16.8 -32.5 17.0 -30.6 18.3 -28.1
2025-06-13 13:27:05,717 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 13:27:05,717 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 13:27:05,717 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.476673
2025-06-13 13:27:05,718 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 13:27:05,718 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 13:27:05,718 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 13:27:05,718 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 13:27:05,719 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 13:27:05,719 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T13:26:42', tmtdew=16.01, humidity=33.02, cloud=0.0, wind=14.68, temperature=13.5, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T11:26:24.547', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 13:27:05,719 [DEBUG][       Thread-256332][   transport.py][1871] : EOF in transport thread
2025-06-13 13:27:05,802 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 13:27:05,812 [DEBUG][       Thread-256335][   transport.py][1871] : starting thread (client mode): 0x868c8400
2025-06-13 13:27:05,812 [DEBUG][       Thread-256335][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 13:27:05,827 [DEBUG][       Thread-256335][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 13:27:05,827 [ INFO][       Thread-256335][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 13:27:05,834 [DEBUG][       Thread-256335][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 13:27:05,834 [DEBUG][       Thread-256335][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 13:27:05,834 [DEBUG][       Thread-256335][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 13:27:05,834 [DEBUG][       Thread-256335][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:27:05,834 [DEBUG][       Thread-256335][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:27:05,834 [DEBUG][       Thread-256335][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:27:05,834 [DEBUG][       Thread-256335][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:27:05,835 [DEBUG][       Thread-256335][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 13:27:05,835 [DEBUG][       Thread-256335][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 13:27:05,835 [DEBUG][       Thread-256335][   transport.py][1871] : client lang: <none>
2025-06-13 13:27:05,835 [DEBUG][       Thread-256335][   transport.py][1871] : server lang: <none>
2025-06-13 13:27:05,835 [DEBUG][       Thread-256335][   transport.py][1871] : kex follows: False
2025-06-13 13:27:05,835 [DEBUG][       Thread-256335][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 13:27:05,835 [DEBUG][       Thread-256335][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 13:27:05,835 [DEBUG][       Thread-256335][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 13:27:05,835 [DEBUG][       Thread-256335][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 13:27:05,835 [DEBUG][       Thread-256335][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 13:27:05,835 [DEBUG][       Thread-256335][   transport.py][1871] : Compression: none
2025-06-13 13:27:05,835 [DEBUG][       Thread-256335][   transport.py][1871] : === End of kex handshake ===
2025-06-13 13:27:05,894 [DEBUG][       Thread-256335][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 13:27:05,894 [DEBUG][       Thread-256335][   transport.py][1871] : Switch to new keys ...
2025-06-13 13:27:05,895 [DEBUG][       Thread-256335][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 13:27:05,895 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 13:27:05,896 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 13:27:05,953 [DEBUG][       Thread-256335][   transport.py][1871] : userauth is OK
2025-06-13 13:27:05,953 [DEBUG][       Thread-256335][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 13:27:05,954 [DEBUG][       Thread-256335][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 13:27:05,954 [DEBUG][       Thread-256335][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 13:27:05,954 [DEBUG][       Thread-256335][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 13:27:05,972 [ INFO][       Thread-256335][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 13:27:05,972 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 13:27:05,972 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 13:27:06,984 [DEBUG][       Thread-256335][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 13:27:06,984 [DEBUG][       Thread-256335][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 13:27:07,032 [DEBUG][       Thread-256335][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 13:27:07,032 [DEBUG][       Thread-256335][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 13:27:07,041 [DEBUG][       Thread-256335][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 13:27:07,050 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 13:27:07,051 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 13:27:07,059 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 13:27:07,068 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 13:27:07,069 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 13:27:07,069 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 13:27:07,077 [DEBUG][       Thread-256335][   transport.py][1871] : EOF in transport thread
2025-06-13 13:27:11,399 [DEBUG][Thread-256337 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:27:15,143 [DEBUG][Thread-256338 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:27:17,080 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 13:27:17,080 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 13:27:17,080 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 13:27:17,083 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 13:27:17,543 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 13, 26, 42), 16.01, 33.02, 0.0, 14.68, 13.5, 0, 0, 0, 2, 0, 0),)
2025-06-13 13:27:17,543 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 13:26:42
2025-06-13 13:27:17,625 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 13:27:17,632 [DEBUG][       Thread-256339][   transport.py][1871] : starting thread (client mode): 0x863c8fd0
2025-06-13 13:27:17,632 [DEBUG][       Thread-256339][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 13:27:17,652 [DEBUG][       Thread-256339][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 13:27:17,652 [ INFO][       Thread-256339][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 13:27:17,656 [DEBUG][       Thread-256339][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 13:27:17,656 [DEBUG][       Thread-256339][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 13:27:17,656 [DEBUG][       Thread-256339][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 13:27:17,656 [DEBUG][       Thread-256339][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:27:17,656 [DEBUG][       Thread-256339][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:27:17,656 [DEBUG][       Thread-256339][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:27:17,656 [DEBUG][       Thread-256339][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:27:17,656 [DEBUG][       Thread-256339][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 13:27:17,656 [DEBUG][       Thread-256339][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 13:27:17,656 [DEBUG][       Thread-256339][   transport.py][1871] : client lang: <none>
2025-06-13 13:27:17,656 [DEBUG][       Thread-256339][   transport.py][1871] : server lang: <none>
2025-06-13 13:27:17,656 [DEBUG][       Thread-256339][   transport.py][1871] : kex follows: False
2025-06-13 13:27:17,656 [DEBUG][       Thread-256339][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 13:27:17,656 [DEBUG][       Thread-256339][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 13:27:17,656 [DEBUG][       Thread-256339][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 13:27:17,656 [DEBUG][       Thread-256339][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 13:27:17,656 [DEBUG][       Thread-256339][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 13:27:17,656 [DEBUG][       Thread-256339][   transport.py][1871] : Compression: none
2025-06-13 13:27:17,656 [DEBUG][       Thread-256339][   transport.py][1871] : === End of kex handshake ===
2025-06-13 13:27:17,670 [DEBUG][       Thread-256339][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 13:27:17,670 [DEBUG][       Thread-256339][   transport.py][1871] : Switch to new keys ...
2025-06-13 13:27:17,671 [DEBUG][       Thread-256339][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 13:27:17,671 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 13:27:17,671 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 13:27:17,671 [DEBUG][       Thread-256339][   transport.py][1871] : userauth is OK
2025-06-13 13:27:17,695 [ INFO][       Thread-256339][   transport.py][1871] : Authentication (password) successful!
2025-06-13 13:27:17,695 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 13:27:18,294 [DEBUG][       Thread-256339][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 13:27:18,294 [DEBUG][       Thread-256339][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 13:27:18,337 [DEBUG][       Thread-256339][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 13:27:18,337 [DEBUG][       Thread-256339][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 13:27:18,340 [DEBUG][       Thread-256339][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 13:27:18,352 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 13:27:18,352 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 13:27:18,354 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 13:27:18,355 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 13:27:18,360 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 13:27:18,362 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 13:27:18,362 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 13:27:18,363 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 13:27:18,363 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.477020 -999.00  +13.50  21.28     36   -1.00 1 1 1 1 1   888    0 15.03 72.20 ----- 23.8 21.3 46.6 25.6 18.1 -30.5 16.9 -32.4 17.0 -28.9 18.3 -30.0
2025-06-13 13:27:18,363 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 13:27:18,363 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 13:27:18,363 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.477020
2025-06-13 13:27:18,364 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 13:27:18,364 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 13:27:18,364 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 13:27:18,365 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 13:27:18,365 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 13:27:18,365 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T13:26:42', tmtdew=16.01, humidity=33.02, cloud=0.0, wind=14.68, temperature=13.5, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T11:26:54.528', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 13:27:18,366 [DEBUG][       Thread-256339][   transport.py][1871] : EOF in transport thread
2025-06-13 13:27:18,448 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 13:27:18,460 [DEBUG][       Thread-256342][   transport.py][1871] : starting thread (client mode): 0x863ef0d0
2025-06-13 13:27:18,460 [DEBUG][       Thread-256342][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 13:27:18,475 [DEBUG][       Thread-256342][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 13:27:18,475 [ INFO][       Thread-256342][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 13:27:18,482 [DEBUG][       Thread-256342][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 13:27:18,483 [DEBUG][       Thread-256342][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 13:27:18,483 [DEBUG][       Thread-256342][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 13:27:18,483 [DEBUG][       Thread-256342][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:27:18,483 [DEBUG][       Thread-256342][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:27:18,483 [DEBUG][       Thread-256342][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:27:18,483 [DEBUG][       Thread-256342][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:27:18,483 [DEBUG][       Thread-256342][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 13:27:18,483 [DEBUG][       Thread-256342][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 13:27:18,483 [DEBUG][       Thread-256342][   transport.py][1871] : client lang: <none>
2025-06-13 13:27:18,483 [DEBUG][       Thread-256342][   transport.py][1871] : server lang: <none>
2025-06-13 13:27:18,483 [DEBUG][       Thread-256342][   transport.py][1871] : kex follows: False
2025-06-13 13:27:18,483 [DEBUG][       Thread-256342][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 13:27:18,483 [DEBUG][       Thread-256342][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 13:27:18,483 [DEBUG][       Thread-256342][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 13:27:18,483 [DEBUG][       Thread-256342][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 13:27:18,483 [DEBUG][       Thread-256342][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 13:27:18,483 [DEBUG][       Thread-256342][   transport.py][1871] : Compression: none
2025-06-13 13:27:18,483 [DEBUG][       Thread-256342][   transport.py][1871] : === End of kex handshake ===
2025-06-13 13:27:18,542 [DEBUG][       Thread-256342][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 13:27:18,543 [DEBUG][       Thread-256342][   transport.py][1871] : Switch to new keys ...
2025-06-13 13:27:18,544 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 13:27:18,544 [DEBUG][       Thread-256342][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 13:27:18,545 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 13:27:18,598 [DEBUG][       Thread-256342][   transport.py][1871] : userauth is OK
2025-06-13 13:27:18,598 [DEBUG][       Thread-256342][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 13:27:18,598 [DEBUG][       Thread-256342][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 13:27:18,598 [DEBUG][       Thread-256342][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 13:27:18,599 [DEBUG][       Thread-256342][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 13:27:18,617 [ INFO][       Thread-256342][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 13:27:18,618 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 13:27:18,618 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 13:27:19,628 [DEBUG][       Thread-256342][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 13:27:19,628 [DEBUG][       Thread-256342][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 13:27:19,676 [DEBUG][       Thread-256342][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 13:27:19,677 [DEBUG][       Thread-256342][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 13:27:19,686 [DEBUG][       Thread-256342][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 13:27:19,695 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 13:27:19,695 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 13:27:19,706 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 13:27:19,718 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 13:27:19,719 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 13:27:19,719 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 13:27:19,729 [DEBUG][       Thread-256342][   transport.py][1871] : EOF in transport thread
2025-06-13 13:27:20,418 [DEBUG][Thread-256344 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:27:29,442 [DEBUG][Thread-256345 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:27:29,729 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 13:27:29,730 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 13:27:29,730 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 13:27:29,733 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 13:27:30,191 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 13, 26, 42), 16.01, 33.02, 0.0, 14.68, 13.5, 0, 0, 0, 2, 0, 0),)
2025-06-13 13:27:30,191 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 13:26:42
2025-06-13 13:27:30,271 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 13:27:30,276 [DEBUG][       Thread-256346][   transport.py][1871] : starting thread (client mode): 0x84206ef0
2025-06-13 13:27:30,276 [DEBUG][       Thread-256346][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 13:27:30,297 [DEBUG][       Thread-256346][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 13:27:30,298 [ INFO][       Thread-256346][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 13:27:30,301 [DEBUG][       Thread-256346][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 13:27:30,301 [DEBUG][       Thread-256346][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 13:27:30,301 [DEBUG][       Thread-256346][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 13:27:30,301 [DEBUG][       Thread-256346][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:27:30,301 [DEBUG][       Thread-256346][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:27:30,301 [DEBUG][       Thread-256346][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:27:30,301 [DEBUG][       Thread-256346][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:27:30,301 [DEBUG][       Thread-256346][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 13:27:30,301 [DEBUG][       Thread-256346][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 13:27:30,301 [DEBUG][       Thread-256346][   transport.py][1871] : client lang: <none>
2025-06-13 13:27:30,301 [DEBUG][       Thread-256346][   transport.py][1871] : server lang: <none>
2025-06-13 13:27:30,301 [DEBUG][       Thread-256346][   transport.py][1871] : kex follows: False
2025-06-13 13:27:30,301 [DEBUG][       Thread-256346][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 13:27:30,301 [DEBUG][       Thread-256346][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 13:27:30,301 [DEBUG][       Thread-256346][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 13:27:30,301 [DEBUG][       Thread-256346][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 13:27:30,301 [DEBUG][       Thread-256346][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 13:27:30,302 [DEBUG][       Thread-256346][   transport.py][1871] : Compression: none
2025-06-13 13:27:30,302 [DEBUG][       Thread-256346][   transport.py][1871] : === End of kex handshake ===
2025-06-13 13:27:30,312 [DEBUG][       Thread-256346][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 13:27:30,313 [DEBUG][       Thread-256346][   transport.py][1871] : Switch to new keys ...
2025-06-13 13:27:30,313 [DEBUG][       Thread-256346][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 13:27:30,313 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 13:27:30,313 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 13:27:30,315 [DEBUG][       Thread-256346][   transport.py][1871] : userauth is OK
2025-06-13 13:27:30,339 [ INFO][       Thread-256346][   transport.py][1871] : Authentication (password) successful!
2025-06-13 13:27:30,340 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 13:27:31,003 [DEBUG][       Thread-256346][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 13:27:31,003 [DEBUG][       Thread-256346][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 13:27:31,045 [DEBUG][       Thread-256346][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 13:27:31,045 [DEBUG][       Thread-256346][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 13:27:31,049 [DEBUG][       Thread-256346][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 13:27:31,061 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 13:27:31,061 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 13:27:31,063 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 13:27:31,065 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 13:27:31,071 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 13:27:31,073 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 13:27:31,073 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 13:27:31,074 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 13:27:31,074 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.477020 -999.00  +13.50  21.28     36   -1.00 1 1 1 1 1   888    0 15.03 72.20 ----- 23.8 21.3 46.6 25.6 18.1 -30.5 16.9 -32.4 17.0 -28.9 18.3 -30.0
2025-06-13 13:27:31,074 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 13:27:31,074 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 13:27:31,074 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.477020
2025-06-13 13:27:31,075 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 13:27:31,075 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 13:27:31,075 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 13:27:31,075 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 13:27:31,076 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 13:27:31,076 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T13:26:42', tmtdew=16.01, humidity=33.02, cloud=0.0, wind=14.68, temperature=13.5, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T11:26:54.528', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 13:27:31,077 [DEBUG][       Thread-256346][   transport.py][1871] : EOF in transport thread
2025-06-13 13:27:31,157 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 13:27:31,168 [DEBUG][       Thread-256349][   transport.py][1871] : starting thread (client mode): 0x86893fd0
2025-06-13 13:27:31,168 [DEBUG][       Thread-256349][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 13:27:31,188 [DEBUG][       Thread-256349][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 13:27:31,188 [ INFO][       Thread-256349][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 13:27:31,196 [DEBUG][       Thread-256349][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 13:27:31,196 [DEBUG][       Thread-256349][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 13:27:31,196 [DEBUG][       Thread-256349][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 13:27:31,196 [DEBUG][       Thread-256349][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:27:31,196 [DEBUG][       Thread-256349][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:27:31,196 [DEBUG][       Thread-256349][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:27:31,196 [DEBUG][       Thread-256349][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:27:31,196 [DEBUG][       Thread-256349][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 13:27:31,196 [DEBUG][       Thread-256349][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 13:27:31,196 [DEBUG][       Thread-256349][   transport.py][1871] : client lang: <none>
2025-06-13 13:27:31,196 [DEBUG][       Thread-256349][   transport.py][1871] : server lang: <none>
2025-06-13 13:27:31,196 [DEBUG][       Thread-256349][   transport.py][1871] : kex follows: False
2025-06-13 13:27:31,196 [DEBUG][       Thread-256349][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 13:27:31,196 [DEBUG][       Thread-256349][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 13:27:31,197 [DEBUG][       Thread-256349][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 13:27:31,197 [DEBUG][       Thread-256349][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 13:27:31,197 [DEBUG][       Thread-256349][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 13:27:31,197 [DEBUG][       Thread-256349][   transport.py][1871] : Compression: none
2025-06-13 13:27:31,197 [DEBUG][       Thread-256349][   transport.py][1871] : === End of kex handshake ===
2025-06-13 13:27:31,254 [DEBUG][       Thread-256349][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 13:27:31,255 [DEBUG][       Thread-256349][   transport.py][1871] : Switch to new keys ...
2025-06-13 13:27:31,256 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 13:27:31,256 [DEBUG][       Thread-256349][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 13:27:31,257 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 13:27:31,310 [DEBUG][       Thread-256349][   transport.py][1871] : userauth is OK
2025-06-13 13:27:31,310 [DEBUG][       Thread-256349][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 13:27:31,310 [DEBUG][       Thread-256349][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 13:27:31,311 [DEBUG][       Thread-256349][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 13:27:31,311 [DEBUG][       Thread-256349][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 13:27:31,330 [ INFO][       Thread-256349][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 13:27:31,330 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 13:27:31,330 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 13:27:32,383 [DEBUG][       Thread-256349][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 13:27:32,383 [DEBUG][       Thread-256349][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 13:27:32,437 [DEBUG][       Thread-256349][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 13:27:32,437 [DEBUG][       Thread-256349][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 13:27:32,455 [DEBUG][       Thread-256349][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 13:27:32,467 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 13:27:32,467 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 13:27:32,477 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 13:27:32,486 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 13:27:32,486 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 13:27:32,487 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 13:27:32,498 [DEBUG][       Thread-256349][   transport.py][1871] : EOF in transport thread
2025-06-13 13:27:33,165 [DEBUG][Thread-256351 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:27:34,227 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:27:34,229 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:27:38,466 [DEBUG][Thread-256352 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:27:42,496 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 13:27:42,496 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 13:27:42,496 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 13:27:42,497 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 13:27:42,944 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 13, 26, 42), 16.01, 33.02, 0.0, 14.68, 13.5, 0, 0, 0, 2, 0, 0),)
2025-06-13 13:27:42,944 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 13:26:42
2025-06-13 13:27:43,026 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 13:27:43,032 [DEBUG][       Thread-256353][   transport.py][1871] : starting thread (client mode): 0x84205120
2025-06-13 13:27:43,032 [DEBUG][       Thread-256353][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 13:27:43,053 [DEBUG][       Thread-256353][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 13:27:43,053 [ INFO][       Thread-256353][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 13:27:43,056 [DEBUG][       Thread-256353][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 13:27:43,056 [DEBUG][       Thread-256353][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 13:27:43,057 [DEBUG][       Thread-256353][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 13:27:43,057 [DEBUG][       Thread-256353][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:27:43,057 [DEBUG][       Thread-256353][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:27:43,057 [DEBUG][       Thread-256353][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:27:43,057 [DEBUG][       Thread-256353][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:27:43,057 [DEBUG][       Thread-256353][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 13:27:43,057 [DEBUG][       Thread-256353][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 13:27:43,057 [DEBUG][       Thread-256353][   transport.py][1871] : client lang: <none>
2025-06-13 13:27:43,057 [DEBUG][       Thread-256353][   transport.py][1871] : server lang: <none>
2025-06-13 13:27:43,057 [DEBUG][       Thread-256353][   transport.py][1871] : kex follows: False
2025-06-13 13:27:43,057 [DEBUG][       Thread-256353][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 13:27:43,057 [DEBUG][       Thread-256353][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 13:27:43,057 [DEBUG][       Thread-256353][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 13:27:43,057 [DEBUG][       Thread-256353][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 13:27:43,057 [DEBUG][       Thread-256353][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 13:27:43,057 [DEBUG][       Thread-256353][   transport.py][1871] : Compression: none
2025-06-13 13:27:43,057 [DEBUG][       Thread-256353][   transport.py][1871] : === End of kex handshake ===
2025-06-13 13:27:43,075 [DEBUG][       Thread-256353][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 13:27:43,075 [DEBUG][       Thread-256353][   transport.py][1871] : Switch to new keys ...
2025-06-13 13:27:43,076 [DEBUG][       Thread-256353][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 13:27:43,076 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 13:27:43,076 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 13:27:43,077 [DEBUG][       Thread-256353][   transport.py][1871] : userauth is OK
2025-06-13 13:27:43,090 [ INFO][       Thread-256353][   transport.py][1871] : Authentication (password) successful!
2025-06-13 13:27:43,090 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 13:27:43,729 [DEBUG][       Thread-256353][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 13:27:43,729 [DEBUG][       Thread-256353][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 13:27:43,773 [DEBUG][       Thread-256353][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 13:27:43,773 [DEBUG][       Thread-256353][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 13:27:43,776 [DEBUG][       Thread-256353][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 13:27:43,788 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 13:27:43,788 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 13:27:43,789 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 13:27:43,791 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 13:27:43,796 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 13:27:43,798 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 13:27:43,798 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 13:27:43,798 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 13:27:43,799 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.477368 -999.00  +13.50  19.11     36   -1.10 1 1 1 1 1   888    0 15.35 72.97 ----- 17.1 19.1 27.8 25.1 18.1 -30.4 16.9 -31.4 17.0 -30.0 18.3 -28.1
2025-06-13 13:27:43,799 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 13:27:43,799 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 13:27:43,799 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.477368
2025-06-13 13:27:43,799 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 13:27:43,800 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 13:27:43,800 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 13:27:43,800 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 13:27:43,800 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 13:27:43,800 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T13:26:42', tmtdew=16.01, humidity=33.02, cloud=0.0, wind=14.68, temperature=13.5, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T11:27:24.595', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 13:27:43,800 [DEBUG][       Thread-256353][   transport.py][1871] : EOF in transport thread
2025-06-13 13:27:43,884 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 13:27:43,895 [DEBUG][       Thread-256356][   transport.py][1871] : starting thread (client mode): 0x8636b940
2025-06-13 13:27:43,895 [DEBUG][       Thread-256356][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 13:27:43,910 [DEBUG][       Thread-256356][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 13:27:43,911 [ INFO][       Thread-256356][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 13:27:43,921 [DEBUG][       Thread-256356][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 13:27:43,922 [DEBUG][       Thread-256356][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 13:27:43,922 [DEBUG][       Thread-256356][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 13:27:43,922 [DEBUG][       Thread-256356][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:27:43,922 [DEBUG][       Thread-256356][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:27:43,922 [DEBUG][       Thread-256356][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:27:43,922 [DEBUG][       Thread-256356][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:27:43,922 [DEBUG][       Thread-256356][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 13:27:43,922 [DEBUG][       Thread-256356][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 13:27:43,922 [DEBUG][       Thread-256356][   transport.py][1871] : client lang: <none>
2025-06-13 13:27:43,922 [DEBUG][       Thread-256356][   transport.py][1871] : server lang: <none>
2025-06-13 13:27:43,922 [DEBUG][       Thread-256356][   transport.py][1871] : kex follows: False
2025-06-13 13:27:43,922 [DEBUG][       Thread-256356][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 13:27:43,922 [DEBUG][       Thread-256356][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 13:27:43,922 [DEBUG][       Thread-256356][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 13:27:43,922 [DEBUG][       Thread-256356][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 13:27:43,922 [DEBUG][       Thread-256356][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 13:27:43,923 [DEBUG][       Thread-256356][   transport.py][1871] : Compression: none
2025-06-13 13:27:43,923 [DEBUG][       Thread-256356][   transport.py][1871] : === End of kex handshake ===
2025-06-13 13:27:43,977 [DEBUG][       Thread-256356][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 13:27:43,977 [DEBUG][       Thread-256356][   transport.py][1871] : Switch to new keys ...
2025-06-13 13:27:43,978 [DEBUG][       Thread-256356][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 13:27:43,978 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 13:27:43,979 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 13:27:44,036 [DEBUG][       Thread-256356][   transport.py][1871] : userauth is OK
2025-06-13 13:27:44,036 [DEBUG][       Thread-256356][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 13:27:44,036 [DEBUG][       Thread-256356][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 13:27:44,036 [DEBUG][       Thread-256356][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 13:27:44,036 [DEBUG][       Thread-256356][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 13:27:44,055 [ INFO][       Thread-256356][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 13:27:44,055 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 13:27:44,055 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 13:27:45,078 [DEBUG][       Thread-256356][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 13:27:45,079 [DEBUG][       Thread-256356][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 13:27:45,135 [DEBUG][       Thread-256356][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 13:27:45,135 [DEBUG][       Thread-256356][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 13:27:45,144 [DEBUG][       Thread-256356][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 13:27:45,152 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 13:27:45,152 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 13:27:45,161 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 13:27:45,170 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 13:27:45,170 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 13:27:45,170 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 13:27:45,178 [DEBUG][       Thread-256356][   transport.py][1871] : EOF in transport thread
2025-06-13 13:27:47,485 [DEBUG][Thread-256358 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:27:52,335 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:27:52,336 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:27:55,174 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 13:27:55,174 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 13:27:55,174 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 13:27:55,177 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 13:27:55,632 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 13, 26, 42), 16.01, 33.02, 0.0, 14.68, 13.5, 0, 0, 0, 2, 0, 0),)
2025-06-13 13:27:55,632 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 13:26:42
2025-06-13 13:27:55,716 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 13:27:55,721 [DEBUG][       Thread-256359][   transport.py][1871] : starting thread (client mode): 0x842072b0
2025-06-13 13:27:55,721 [DEBUG][       Thread-256359][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 13:27:55,742 [DEBUG][       Thread-256359][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 13:27:55,742 [ INFO][       Thread-256359][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 13:27:55,745 [DEBUG][       Thread-256359][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 13:27:55,745 [DEBUG][       Thread-256359][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 13:27:55,745 [DEBUG][       Thread-256359][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 13:27:55,745 [DEBUG][       Thread-256359][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:27:55,745 [DEBUG][       Thread-256359][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:27:55,745 [DEBUG][       Thread-256359][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:27:55,745 [DEBUG][       Thread-256359][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:27:55,745 [DEBUG][       Thread-256359][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 13:27:55,745 [DEBUG][       Thread-256359][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 13:27:55,745 [DEBUG][       Thread-256359][   transport.py][1871] : client lang: <none>
2025-06-13 13:27:55,745 [DEBUG][       Thread-256359][   transport.py][1871] : server lang: <none>
2025-06-13 13:27:55,745 [DEBUG][       Thread-256359][   transport.py][1871] : kex follows: False
2025-06-13 13:27:55,745 [DEBUG][       Thread-256359][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 13:27:55,745 [DEBUG][       Thread-256359][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 13:27:55,745 [DEBUG][       Thread-256359][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 13:27:55,745 [DEBUG][       Thread-256359][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 13:27:55,745 [DEBUG][       Thread-256359][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 13:27:55,745 [DEBUG][       Thread-256359][   transport.py][1871] : Compression: none
2025-06-13 13:27:55,745 [DEBUG][       Thread-256359][   transport.py][1871] : === End of kex handshake ===
2025-06-13 13:27:55,755 [DEBUG][       Thread-256359][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 13:27:55,755 [DEBUG][       Thread-256359][   transport.py][1871] : Switch to new keys ...
2025-06-13 13:27:55,756 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 13:27:55,756 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 13:27:55,757 [DEBUG][       Thread-256359][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 13:27:55,757 [DEBUG][       Thread-256359][   transport.py][1871] : userauth is OK
2025-06-13 13:27:55,770 [ INFO][       Thread-256359][   transport.py][1871] : Authentication (password) successful!
2025-06-13 13:27:55,771 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 13:27:56,390 [DEBUG][       Thread-256359][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 13:27:56,390 [DEBUG][       Thread-256359][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 13:27:56,433 [DEBUG][       Thread-256359][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 13:27:56,433 [DEBUG][       Thread-256359][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 13:27:56,436 [DEBUG][       Thread-256359][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 13:27:56,448 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 13:27:56,448 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 13:27:56,450 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 13:27:56,452 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 13:27:56,458 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 13:27:56,460 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 13:27:56,460 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 13:27:56,461 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 13:27:56,461 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.477368 -999.00  +13.50  19.11     36   -1.10 1 1 1 1 1   888    0 15.35 72.97 ----- 17.1 19.1 27.8 25.1 18.1 -30.4 16.9 -31.4 17.0 -30.0 18.3 -28.1
2025-06-13 13:27:56,461 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 13:27:56,461 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 13:27:56,461 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.477368
2025-06-13 13:27:56,461 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 13:27:56,462 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 13:27:56,462 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 13:27:56,462 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 13:27:56,462 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 13:27:56,462 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T13:26:42', tmtdew=16.01, humidity=33.02, cloud=0.0, wind=14.68, temperature=13.5, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T11:27:24.595', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 13:27:56,463 [DEBUG][       Thread-256359][   transport.py][1871] : EOF in transport thread
2025-06-13 13:27:56,503 [DEBUG][Thread-256362 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:27:56,547 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 13:27:56,556 [DEBUG][       Thread-256363][   transport.py][1871] : starting thread (client mode): 0xc54b6c20
2025-06-13 13:27:56,556 [DEBUG][       Thread-256363][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 13:27:56,571 [DEBUG][       Thread-256363][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 13:27:56,571 [ INFO][       Thread-256363][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 13:27:56,579 [DEBUG][       Thread-256363][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 13:27:56,579 [DEBUG][       Thread-256363][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 13:27:56,579 [DEBUG][       Thread-256363][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 13:27:56,579 [DEBUG][       Thread-256363][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:27:56,579 [DEBUG][       Thread-256363][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:27:56,579 [DEBUG][       Thread-256363][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:27:56,579 [DEBUG][       Thread-256363][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:27:56,579 [DEBUG][       Thread-256363][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 13:27:56,579 [DEBUG][       Thread-256363][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 13:27:56,579 [DEBUG][       Thread-256363][   transport.py][1871] : client lang: <none>
2025-06-13 13:27:56,580 [DEBUG][       Thread-256363][   transport.py][1871] : server lang: <none>
2025-06-13 13:27:56,580 [DEBUG][       Thread-256363][   transport.py][1871] : kex follows: False
2025-06-13 13:27:56,580 [DEBUG][       Thread-256363][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 13:27:56,580 [DEBUG][       Thread-256363][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 13:27:56,580 [DEBUG][       Thread-256363][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 13:27:56,580 [DEBUG][       Thread-256363][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 13:27:56,580 [DEBUG][       Thread-256363][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 13:27:56,580 [DEBUG][       Thread-256363][   transport.py][1871] : Compression: none
2025-06-13 13:27:56,580 [DEBUG][       Thread-256363][   transport.py][1871] : === End of kex handshake ===
2025-06-13 13:27:56,637 [DEBUG][       Thread-256363][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 13:27:56,638 [DEBUG][       Thread-256363][   transport.py][1871] : Switch to new keys ...
2025-06-13 13:27:56,639 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 13:27:56,639 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 13:27:56,640 [DEBUG][       Thread-256363][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 13:27:56,694 [DEBUG][       Thread-256363][   transport.py][1871] : userauth is OK
2025-06-13 13:27:56,694 [DEBUG][       Thread-256363][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 13:27:56,694 [DEBUG][       Thread-256363][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 13:27:56,694 [DEBUG][       Thread-256363][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 13:27:56,694 [DEBUG][       Thread-256363][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 13:27:56,717 [ INFO][       Thread-256363][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 13:27:56,717 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 13:27:56,718 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 13:27:57,727 [DEBUG][       Thread-256363][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 13:27:57,728 [DEBUG][       Thread-256363][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 13:27:57,776 [DEBUG][       Thread-256363][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 13:27:57,776 [DEBUG][       Thread-256363][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 13:27:57,786 [DEBUG][       Thread-256363][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 13:27:57,797 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 13:27:57,798 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 13:27:57,807 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 13:27:57,817 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 13:27:57,818 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 13:27:57,818 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 13:27:57,827 [DEBUG][       Thread-256363][   transport.py][1871] : EOF in transport thread
2025-06-13 13:28:05,522 [DEBUG][Thread-256365 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:28:07,828 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 13:28:07,828 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 13:28:07,828 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 13:28:07,831 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 13:28:08,285 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 13, 26, 42), 16.01, 33.02, 0.0, 14.68, 13.5, 0, 0, 0, 2, 0, 0),)
2025-06-13 13:28:08,286 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 13:26:42
2025-06-13 13:28:08,367 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 13:28:08,372 [DEBUG][       Thread-256366][   transport.py][1871] : starting thread (client mode): 0x86392230
2025-06-13 13:28:08,373 [DEBUG][       Thread-256366][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 13:28:08,393 [DEBUG][       Thread-256366][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 13:28:08,393 [ INFO][       Thread-256366][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 13:28:08,396 [DEBUG][       Thread-256366][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 13:28:08,396 [DEBUG][       Thread-256366][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 13:28:08,396 [DEBUG][       Thread-256366][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 13:28:08,396 [DEBUG][       Thread-256366][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:28:08,396 [DEBUG][       Thread-256366][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:28:08,396 [DEBUG][       Thread-256366][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:28:08,396 [DEBUG][       Thread-256366][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:28:08,396 [DEBUG][       Thread-256366][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 13:28:08,396 [DEBUG][       Thread-256366][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 13:28:08,397 [DEBUG][       Thread-256366][   transport.py][1871] : client lang: <none>
2025-06-13 13:28:08,397 [DEBUG][       Thread-256366][   transport.py][1871] : server lang: <none>
2025-06-13 13:28:08,397 [DEBUG][       Thread-256366][   transport.py][1871] : kex follows: False
2025-06-13 13:28:08,397 [DEBUG][       Thread-256366][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 13:28:08,397 [DEBUG][       Thread-256366][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 13:28:08,397 [DEBUG][       Thread-256366][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 13:28:08,397 [DEBUG][       Thread-256366][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 13:28:08,397 [DEBUG][       Thread-256366][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 13:28:08,397 [DEBUG][       Thread-256366][   transport.py][1871] : Compression: none
2025-06-13 13:28:08,397 [DEBUG][       Thread-256366][   transport.py][1871] : === End of kex handshake ===
2025-06-13 13:28:08,413 [DEBUG][       Thread-256366][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 13:28:08,413 [DEBUG][       Thread-256366][   transport.py][1871] : Switch to new keys ...
2025-06-13 13:28:08,414 [DEBUG][       Thread-256366][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 13:28:08,414 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 13:28:08,414 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 13:28:08,416 [DEBUG][       Thread-256366][   transport.py][1871] : userauth is OK
2025-06-13 13:28:08,429 [ INFO][       Thread-256366][   transport.py][1871] : Authentication (password) successful!
2025-06-13 13:28:08,429 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 13:28:09,059 [DEBUG][       Thread-256366][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 13:28:09,059 [DEBUG][       Thread-256366][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 13:28:09,101 [DEBUG][       Thread-256366][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 13:28:09,101 [DEBUG][       Thread-256366][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 13:28:09,104 [DEBUG][       Thread-256366][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 13:28:09,118 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 13:28:09,118 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 13:28:09,120 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 13:28:09,122 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 13:28:09,128 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 13:28:09,130 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 13:28:09,130 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 13:28:09,131 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 13:28:09,131 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.477368 -999.00  +13.50  19.11     36   -1.10 1 1 1 1 1   888    0 15.35 72.97 ----- 17.1 19.1 27.8 25.1 18.1 -30.4 16.9 -31.4 17.0 -30.0 18.3 -28.1
2025-06-13 13:28:09,131 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 13:28:09,131 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 13:28:09,132 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.477368
2025-06-13 13:28:09,132 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 13:28:09,133 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 13:28:09,133 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 13:28:09,133 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 13:28:09,133 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 13:28:09,133 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T13:26:42', tmtdew=16.01, humidity=33.02, cloud=0.0, wind=14.68, temperature=13.5, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T11:27:24.595', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 13:28:09,134 [DEBUG][       Thread-256366][   transport.py][1871] : EOF in transport thread
2025-06-13 13:28:09,218 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 13:28:09,229 [DEBUG][       Thread-256369][   transport.py][1871] : starting thread (client mode): 0x84204040
2025-06-13 13:28:09,229 [DEBUG][       Thread-256369][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 13:28:09,244 [DEBUG][       Thread-256369][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 13:28:09,244 [ INFO][       Thread-256369][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 13:28:09,252 [DEBUG][       Thread-256369][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 13:28:09,252 [DEBUG][       Thread-256369][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 13:28:09,252 [DEBUG][       Thread-256369][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 13:28:09,252 [DEBUG][       Thread-256369][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:28:09,252 [DEBUG][       Thread-256369][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:28:09,252 [DEBUG][       Thread-256369][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:28:09,252 [DEBUG][       Thread-256369][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:28:09,253 [DEBUG][       Thread-256369][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 13:28:09,253 [DEBUG][       Thread-256369][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 13:28:09,253 [DEBUG][       Thread-256369][   transport.py][1871] : client lang: <none>
2025-06-13 13:28:09,253 [DEBUG][       Thread-256369][   transport.py][1871] : server lang: <none>
2025-06-13 13:28:09,253 [DEBUG][       Thread-256369][   transport.py][1871] : kex follows: False
2025-06-13 13:28:09,253 [DEBUG][       Thread-256369][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 13:28:09,253 [DEBUG][       Thread-256369][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 13:28:09,253 [DEBUG][       Thread-256369][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 13:28:09,253 [DEBUG][       Thread-256369][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 13:28:09,253 [DEBUG][       Thread-256369][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 13:28:09,253 [DEBUG][       Thread-256369][   transport.py][1871] : Compression: none
2025-06-13 13:28:09,253 [DEBUG][       Thread-256369][   transport.py][1871] : === End of kex handshake ===
2025-06-13 13:28:09,313 [DEBUG][       Thread-256369][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 13:28:09,314 [DEBUG][       Thread-256369][   transport.py][1871] : Switch to new keys ...
2025-06-13 13:28:09,315 [DEBUG][       Thread-256369][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 13:28:09,315 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 13:28:09,316 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 13:28:09,370 [DEBUG][       Thread-256369][   transport.py][1871] : userauth is OK
2025-06-13 13:28:09,370 [DEBUG][       Thread-256369][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 13:28:09,370 [DEBUG][       Thread-256369][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 13:28:09,370 [DEBUG][       Thread-256369][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 13:28:09,371 [DEBUG][       Thread-256369][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 13:28:09,388 [ INFO][       Thread-256369][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 13:28:09,389 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 13:28:09,389 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 13:28:10,424 [DEBUG][       Thread-256369][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 13:28:10,425 [DEBUG][       Thread-256369][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 13:28:10,476 [DEBUG][       Thread-256369][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 13:28:10,476 [DEBUG][       Thread-256369][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 13:28:10,485 [DEBUG][       Thread-256369][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 13:28:10,498 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 13:28:10,498 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 13:28:10,506 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 13:28:10,514 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 13:28:10,514 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 13:28:10,514 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 13:28:10,522 [DEBUG][       Thread-256369][   transport.py][1871] : EOF in transport thread
2025-06-13 13:28:14,546 [DEBUG][Thread-256371 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:28:15,175 [DEBUG][Thread-256372 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:28:20,520 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 13:28:20,520 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 13:28:20,520 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 13:28:20,521 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 13:28:20,957 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 13, 26, 42), 16.01, 33.02, 0.0, 14.68, 13.5, 0, 0, 0, 2, 0, 0),)
2025-06-13 13:28:20,957 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 13:26:42
2025-06-13 13:28:21,038 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 13:28:21,043 [DEBUG][       Thread-256373][   transport.py][1871] : starting thread (client mode): 0x863910f0
2025-06-13 13:28:21,043 [DEBUG][       Thread-256373][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 13:28:21,063 [DEBUG][       Thread-256373][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 13:28:21,063 [ INFO][       Thread-256373][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 13:28:21,066 [DEBUG][       Thread-256373][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 13:28:21,066 [DEBUG][       Thread-256373][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 13:28:21,066 [DEBUG][       Thread-256373][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 13:28:21,066 [DEBUG][       Thread-256373][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:28:21,066 [DEBUG][       Thread-256373][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:28:21,066 [DEBUG][       Thread-256373][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:28:21,066 [DEBUG][       Thread-256373][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:28:21,066 [DEBUG][       Thread-256373][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 13:28:21,067 [DEBUG][       Thread-256373][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 13:28:21,067 [DEBUG][       Thread-256373][   transport.py][1871] : client lang: <none>
2025-06-13 13:28:21,067 [DEBUG][       Thread-256373][   transport.py][1871] : server lang: <none>
2025-06-13 13:28:21,067 [DEBUG][       Thread-256373][   transport.py][1871] : kex follows: False
2025-06-13 13:28:21,067 [DEBUG][       Thread-256373][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 13:28:21,067 [DEBUG][       Thread-256373][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 13:28:21,067 [DEBUG][       Thread-256373][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 13:28:21,067 [DEBUG][       Thread-256373][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 13:28:21,067 [DEBUG][       Thread-256373][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 13:28:21,067 [DEBUG][       Thread-256373][   transport.py][1871] : Compression: none
2025-06-13 13:28:21,067 [DEBUG][       Thread-256373][   transport.py][1871] : === End of kex handshake ===
2025-06-13 13:28:21,084 [DEBUG][       Thread-256373][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 13:28:21,084 [DEBUG][       Thread-256373][   transport.py][1871] : Switch to new keys ...
2025-06-13 13:28:21,085 [DEBUG][       Thread-256373][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 13:28:21,085 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 13:28:21,085 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 13:28:21,086 [DEBUG][       Thread-256373][   transport.py][1871] : userauth is OK
2025-06-13 13:28:21,111 [ INFO][       Thread-256373][   transport.py][1871] : Authentication (password) successful!
2025-06-13 13:28:21,111 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 13:28:21,745 [DEBUG][       Thread-256373][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 13:28:21,745 [DEBUG][       Thread-256373][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 13:28:21,789 [DEBUG][       Thread-256373][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 13:28:21,789 [DEBUG][       Thread-256373][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 13:28:21,792 [DEBUG][       Thread-256373][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 13:28:21,806 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 13:28:21,807 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 13:28:21,808 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 13:28:21,810 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 13:28:21,815 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 13:28:21,816 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 13:28:21,817 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 13:28:21,817 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 13:28:21,817 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.477715 -999.00  +13.60  14.18     35   -1.40 1 1 1 1 1   888    0 15.33 73.52 ----- 18.2 14.2 18.8 20.3 18.1 -30.2 16.9 -31.7 17.0 -29.5 18.3 -29.0
2025-06-13 13:28:21,818 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 13:28:21,818 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 13:28:21,818 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.477715
2025-06-13 13:28:21,818 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 13:28:21,819 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 13:28:21,819 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 13:28:21,819 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 13:28:21,819 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 13:28:21,819 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T13:26:42', tmtdew=16.01, humidity=33.02, cloud=0.0, wind=14.68, temperature=13.5, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T11:27:54.576', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 13:28:21,819 [DEBUG][       Thread-256373][   transport.py][1871] : EOF in transport thread
2025-06-13 13:28:21,902 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 13:28:21,912 [DEBUG][       Thread-256376][   transport.py][1871] : starting thread (client mode): 0x86893ca0
2025-06-13 13:28:21,912 [DEBUG][       Thread-256376][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 13:28:21,927 [DEBUG][       Thread-256376][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 13:28:21,927 [ INFO][       Thread-256376][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 13:28:21,934 [DEBUG][       Thread-256376][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 13:28:21,934 [DEBUG][       Thread-256376][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 13:28:21,935 [DEBUG][       Thread-256376][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 13:28:21,935 [DEBUG][       Thread-256376][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:28:21,935 [DEBUG][       Thread-256376][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:28:21,935 [DEBUG][       Thread-256376][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:28:21,935 [DEBUG][       Thread-256376][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:28:21,935 [DEBUG][       Thread-256376][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 13:28:21,935 [DEBUG][       Thread-256376][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 13:28:21,935 [DEBUG][       Thread-256376][   transport.py][1871] : client lang: <none>
2025-06-13 13:28:21,935 [DEBUG][       Thread-256376][   transport.py][1871] : server lang: <none>
2025-06-13 13:28:21,935 [DEBUG][       Thread-256376][   transport.py][1871] : kex follows: False
2025-06-13 13:28:21,935 [DEBUG][       Thread-256376][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 13:28:21,935 [DEBUG][       Thread-256376][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 13:28:21,935 [DEBUG][       Thread-256376][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 13:28:21,935 [DEBUG][       Thread-256376][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 13:28:21,935 [DEBUG][       Thread-256376][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 13:28:21,935 [DEBUG][       Thread-256376][   transport.py][1871] : Compression: none
2025-06-13 13:28:21,935 [DEBUG][       Thread-256376][   transport.py][1871] : === End of kex handshake ===
2025-06-13 13:28:21,998 [DEBUG][       Thread-256376][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 13:28:21,999 [DEBUG][       Thread-256376][   transport.py][1871] : Switch to new keys ...
2025-06-13 13:28:21,999 [DEBUG][       Thread-256376][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 13:28:21,999 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 13:28:22,000 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 13:28:22,054 [DEBUG][       Thread-256376][   transport.py][1871] : userauth is OK
2025-06-13 13:28:22,054 [DEBUG][       Thread-256376][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 13:28:22,055 [DEBUG][       Thread-256376][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 13:28:22,055 [DEBUG][       Thread-256376][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 13:28:22,055 [DEBUG][       Thread-256376][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 13:28:22,073 [ INFO][       Thread-256376][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 13:28:22,074 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 13:28:22,074 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 13:28:23,060 [DEBUG][       Thread-256376][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 13:28:23,060 [DEBUG][       Thread-256376][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 13:28:23,112 [DEBUG][       Thread-256376][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 13:28:23,112 [DEBUG][       Thread-256376][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 13:28:23,122 [DEBUG][       Thread-256376][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 13:28:23,131 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 13:28:23,131 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 13:28:23,140 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 13:28:23,150 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 13:28:23,150 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 13:28:23,150 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 13:28:23,158 [DEBUG][       Thread-256376][   transport.py][1871] : EOF in transport thread
2025-06-13 13:28:23,567 [DEBUG][Thread-256378 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:28:32,588 [DEBUG][Thread-256379 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:28:33,161 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 13:28:33,161 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 13:28:33,161 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 13:28:33,164 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 13:28:33,586 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 13, 26, 42), 16.01, 33.02, 0.0, 14.68, 13.5, 0, 0, 0, 2, 0, 0),)
2025-06-13 13:28:33,586 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 13:26:42
2025-06-13 13:28:33,666 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 13:28:33,669 [DEBUG][       Thread-256380][   transport.py][1871] : starting thread (client mode): 0x842070d0
2025-06-13 13:28:33,669 [DEBUG][       Thread-256380][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 13:28:33,690 [DEBUG][       Thread-256380][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 13:28:33,690 [ INFO][       Thread-256380][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 13:28:33,693 [DEBUG][       Thread-256380][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 13:28:33,693 [DEBUG][       Thread-256380][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 13:28:33,693 [DEBUG][       Thread-256380][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 13:28:33,693 [DEBUG][       Thread-256380][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:28:33,694 [DEBUG][       Thread-256380][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:28:33,694 [DEBUG][       Thread-256380][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:28:33,694 [DEBUG][       Thread-256380][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:28:33,694 [DEBUG][       Thread-256380][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 13:28:33,694 [DEBUG][       Thread-256380][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 13:28:33,694 [DEBUG][       Thread-256380][   transport.py][1871] : client lang: <none>
2025-06-13 13:28:33,694 [DEBUG][       Thread-256380][   transport.py][1871] : server lang: <none>
2025-06-13 13:28:33,694 [DEBUG][       Thread-256380][   transport.py][1871] : kex follows: False
2025-06-13 13:28:33,694 [DEBUG][       Thread-256380][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 13:28:33,694 [DEBUG][       Thread-256380][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 13:28:33,694 [DEBUG][       Thread-256380][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 13:28:33,694 [DEBUG][       Thread-256380][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 13:28:33,694 [DEBUG][       Thread-256380][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 13:28:33,694 [DEBUG][       Thread-256380][   transport.py][1871] : Compression: none
2025-06-13 13:28:33,694 [DEBUG][       Thread-256380][   transport.py][1871] : === End of kex handshake ===
2025-06-13 13:28:33,713 [DEBUG][       Thread-256380][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 13:28:33,714 [DEBUG][       Thread-256380][   transport.py][1871] : Switch to new keys ...
2025-06-13 13:28:33,714 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 13:28:33,714 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 13:28:33,715 [DEBUG][       Thread-256380][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 13:28:33,716 [DEBUG][       Thread-256380][   transport.py][1871] : userauth is OK
2025-06-13 13:28:33,741 [ INFO][       Thread-256380][   transport.py][1871] : Authentication (password) successful!
2025-06-13 13:28:33,741 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 13:28:34,255 [DEBUG][Thread-256382 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:28:34,381 [DEBUG][       Thread-256380][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 13:28:34,381 [DEBUG][       Thread-256380][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 13:28:34,425 [DEBUG][       Thread-256380][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 13:28:34,425 [DEBUG][       Thread-256380][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 13:28:34,429 [DEBUG][       Thread-256380][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 13:28:34,441 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 13:28:34,441 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 13:28:34,443 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 13:28:34,445 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 13:28:34,450 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 13:28:34,452 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 13:28:34,452 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 13:28:34,453 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 13:28:34,453 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.477715 -999.00  +13.60  14.18     35   -1.40 1 1 1 1 1   888    0 15.33 73.52 ----- 18.2 14.2 18.8 20.3 18.1 -30.2 16.9 -31.7 17.0 -29.5 18.3 -29.0
2025-06-13 13:28:34,453 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 13:28:34,453 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 13:28:34,453 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.477715
2025-06-13 13:28:34,454 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 13:28:34,454 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 13:28:34,454 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 13:28:34,454 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 13:28:34,454 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 13:28:34,454 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T13:26:42', tmtdew=16.01, humidity=33.02, cloud=0.0, wind=14.68, temperature=13.5, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T11:27:54.576', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 13:28:34,456 [DEBUG][       Thread-256380][   transport.py][1871] : EOF in transport thread
2025-06-13 13:28:34,537 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 13:28:34,549 [DEBUG][       Thread-256384][   transport.py][1871] : starting thread (client mode): 0x867b78e0
2025-06-13 13:28:34,549 [DEBUG][       Thread-256384][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 13:28:34,564 [DEBUG][       Thread-256384][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 13:28:34,565 [ INFO][       Thread-256384][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 13:28:34,572 [DEBUG][       Thread-256384][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 13:28:34,572 [DEBUG][       Thread-256384][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 13:28:34,572 [DEBUG][       Thread-256384][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 13:28:34,572 [DEBUG][       Thread-256384][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:28:34,573 [DEBUG][       Thread-256384][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:28:34,573 [DEBUG][       Thread-256384][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:28:34,573 [DEBUG][       Thread-256384][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:28:34,573 [DEBUG][       Thread-256384][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 13:28:34,573 [DEBUG][       Thread-256384][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 13:28:34,573 [DEBUG][       Thread-256384][   transport.py][1871] : client lang: <none>
2025-06-13 13:28:34,573 [DEBUG][       Thread-256384][   transport.py][1871] : server lang: <none>
2025-06-13 13:28:34,573 [DEBUG][       Thread-256384][   transport.py][1871] : kex follows: False
2025-06-13 13:28:34,573 [DEBUG][       Thread-256384][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 13:28:34,573 [DEBUG][       Thread-256384][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 13:28:34,573 [DEBUG][       Thread-256384][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 13:28:34,573 [DEBUG][       Thread-256384][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 13:28:34,573 [DEBUG][       Thread-256384][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 13:28:34,573 [DEBUG][       Thread-256384][   transport.py][1871] : Compression: none
2025-06-13 13:28:34,573 [DEBUG][       Thread-256384][   transport.py][1871] : === End of kex handshake ===
2025-06-13 13:28:34,630 [DEBUG][       Thread-256384][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 13:28:34,630 [DEBUG][       Thread-256384][   transport.py][1871] : Switch to new keys ...
2025-06-13 13:28:34,631 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 13:28:34,632 [DEBUG][       Thread-256384][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 13:28:34,632 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 13:28:34,686 [DEBUG][       Thread-256384][   transport.py][1871] : userauth is OK
2025-06-13 13:28:34,686 [DEBUG][       Thread-256384][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 13:28:34,686 [DEBUG][       Thread-256384][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 13:28:34,686 [DEBUG][       Thread-256384][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 13:28:34,686 [DEBUG][       Thread-256384][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 13:28:34,705 [ INFO][       Thread-256384][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 13:28:34,706 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 13:28:34,706 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 13:28:35,335 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:28:35,337 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:28:35,800 [DEBUG][       Thread-256384][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 13:28:35,801 [DEBUG][       Thread-256384][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 13:28:35,852 [DEBUG][       Thread-256384][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 13:28:35,852 [DEBUG][       Thread-256384][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 13:28:35,861 [DEBUG][       Thread-256384][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 13:28:35,870 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 13:28:35,871 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 13:28:35,879 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 13:28:35,889 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 13:28:35,889 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 13:28:35,890 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 13:28:35,899 [DEBUG][       Thread-256384][   transport.py][1871] : EOF in transport thread
2025-06-13 13:28:41,608 [DEBUG][Thread-256386 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:28:45,897 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 13:28:45,897 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 13:28:45,897 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 13:28:45,900 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 13:28:46,347 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 13, 26, 42), 16.01, 33.02, 0.0, 14.68, 13.5, 0, 0, 0, 2, 0, 0),)
2025-06-13 13:28:46,347 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 13:26:42
2025-06-13 13:28:46,425 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 13:28:46,430 [DEBUG][       Thread-256387][   transport.py][1871] : starting thread (client mode): 0x86390bb0
2025-06-13 13:28:46,430 [DEBUG][       Thread-256387][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 13:28:46,450 [DEBUG][       Thread-256387][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 13:28:46,451 [ INFO][       Thread-256387][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 13:28:46,454 [DEBUG][       Thread-256387][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 13:28:46,454 [DEBUG][       Thread-256387][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 13:28:46,454 [DEBUG][       Thread-256387][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 13:28:46,454 [DEBUG][       Thread-256387][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:28:46,454 [DEBUG][       Thread-256387][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:28:46,454 [DEBUG][       Thread-256387][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:28:46,454 [DEBUG][       Thread-256387][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:28:46,454 [DEBUG][       Thread-256387][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 13:28:46,454 [DEBUG][       Thread-256387][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 13:28:46,454 [DEBUG][       Thread-256387][   transport.py][1871] : client lang: <none>
2025-06-13 13:28:46,454 [DEBUG][       Thread-256387][   transport.py][1871] : server lang: <none>
2025-06-13 13:28:46,454 [DEBUG][       Thread-256387][   transport.py][1871] : kex follows: False
2025-06-13 13:28:46,454 [DEBUG][       Thread-256387][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 13:28:46,454 [DEBUG][       Thread-256387][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 13:28:46,454 [DEBUG][       Thread-256387][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 13:28:46,455 [DEBUG][       Thread-256387][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 13:28:46,455 [DEBUG][       Thread-256387][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 13:28:46,455 [DEBUG][       Thread-256387][   transport.py][1871] : Compression: none
2025-06-13 13:28:46,455 [DEBUG][       Thread-256387][   transport.py][1871] : === End of kex handshake ===
2025-06-13 13:28:46,472 [DEBUG][       Thread-256387][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 13:28:46,472 [DEBUG][       Thread-256387][   transport.py][1871] : Switch to new keys ...
2025-06-13 13:28:46,473 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 13:28:46,473 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 13:28:46,474 [DEBUG][       Thread-256387][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 13:28:46,474 [DEBUG][       Thread-256387][   transport.py][1871] : userauth is OK
2025-06-13 13:28:46,488 [ INFO][       Thread-256387][   transport.py][1871] : Authentication (password) successful!
2025-06-13 13:28:46,488 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 13:28:47,112 [DEBUG][       Thread-256387][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 13:28:47,113 [DEBUG][       Thread-256387][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 13:28:47,157 [DEBUG][       Thread-256387][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 13:28:47,157 [DEBUG][       Thread-256387][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 13:28:47,159 [DEBUG][       Thread-256387][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 13:28:47,169 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 13:28:47,169 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 13:28:47,171 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 13:28:47,173 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 13:28:47,178 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 13:28:47,180 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 13:28:47,180 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 13:28:47,180 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 13:28:47,181 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.478062 -999.00  +13.40  21.64     36   -1.20 1 1 1 1 1   888    0 15.43 84.21 ----- 21.4 21.6 25.6 30.7 18.1 -30.7 16.9 -31.6 17.0 -29.6 18.2 -28.3
2025-06-13 13:28:47,181 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 13:28:47,181 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 13:28:47,181 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.478062
2025-06-13 13:28:47,181 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 13:28:47,182 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 13:28:47,182 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 13:28:47,182 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 13:28:47,182 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 13:28:47,182 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T13:26:42', tmtdew=16.01, humidity=33.02, cloud=0.0, wind=14.68, temperature=13.5, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T11:28:24.557', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 13:28:47,183 [DEBUG][       Thread-256387][   transport.py][1871] : EOF in transport thread
2025-06-13 13:28:47,266 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 13:28:47,275 [DEBUG][       Thread-256390][   transport.py][1871] : starting thread (client mode): 0x86893df0
2025-06-13 13:28:47,275 [DEBUG][       Thread-256390][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 13:28:47,290 [DEBUG][       Thread-256390][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 13:28:47,290 [ INFO][       Thread-256390][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 13:28:47,298 [DEBUG][       Thread-256390][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 13:28:47,298 [DEBUG][       Thread-256390][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 13:28:47,298 [DEBUG][       Thread-256390][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 13:28:47,298 [DEBUG][       Thread-256390][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:28:47,298 [DEBUG][       Thread-256390][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:28:47,298 [DEBUG][       Thread-256390][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:28:47,298 [DEBUG][       Thread-256390][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:28:47,298 [DEBUG][       Thread-256390][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 13:28:47,298 [DEBUG][       Thread-256390][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 13:28:47,298 [DEBUG][       Thread-256390][   transport.py][1871] : client lang: <none>
2025-06-13 13:28:47,298 [DEBUG][       Thread-256390][   transport.py][1871] : server lang: <none>
2025-06-13 13:28:47,298 [DEBUG][       Thread-256390][   transport.py][1871] : kex follows: False
2025-06-13 13:28:47,298 [DEBUG][       Thread-256390][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 13:28:47,298 [DEBUG][       Thread-256390][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 13:28:47,299 [DEBUG][       Thread-256390][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 13:28:47,299 [DEBUG][       Thread-256390][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 13:28:47,299 [DEBUG][       Thread-256390][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 13:28:47,299 [DEBUG][       Thread-256390][   transport.py][1871] : Compression: none
2025-06-13 13:28:47,299 [DEBUG][       Thread-256390][   transport.py][1871] : === End of kex handshake ===
2025-06-13 13:28:47,357 [DEBUG][       Thread-256390][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 13:28:47,358 [DEBUG][       Thread-256390][   transport.py][1871] : Switch to new keys ...
2025-06-13 13:28:47,358 [DEBUG][       Thread-256390][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 13:28:47,359 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 13:28:47,359 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 13:28:47,415 [DEBUG][       Thread-256390][   transport.py][1871] : userauth is OK
2025-06-13 13:28:47,415 [DEBUG][       Thread-256390][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 13:28:47,415 [DEBUG][       Thread-256390][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 13:28:47,415 [DEBUG][       Thread-256390][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 13:28:47,415 [DEBUG][       Thread-256390][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 13:28:47,435 [ INFO][       Thread-256390][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 13:28:47,436 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 13:28:47,436 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 13:28:48,524 [DEBUG][       Thread-256390][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 13:28:48,525 [DEBUG][       Thread-256390][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 13:28:48,576 [DEBUG][       Thread-256390][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 13:28:48,576 [DEBUG][       Thread-256390][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 13:28:48,585 [DEBUG][       Thread-256390][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 13:28:48,594 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 13:28:48,594 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 13:28:48,603 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 13:28:48,613 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 13:28:48,613 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 13:28:48,613 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 13:28:48,621 [DEBUG][       Thread-256390][   transport.py][1871] : EOF in transport thread
2025-06-13 13:28:50,630 [DEBUG][Thread-256392 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:28:52,472 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:28:52,473 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:28:58,624 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 13:28:58,624 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 13:28:58,624 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 13:28:58,627 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 13:28:59,063 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 13, 26, 42), 16.01, 33.02, 0.0, 14.68, 13.5, 0, 0, 0, 2, 0, 0),)
2025-06-13 13:28:59,063 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 13:26:42
2025-06-13 13:28:59,141 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 13:28:59,146 [DEBUG][       Thread-256393][   transport.py][1871] : starting thread (client mode): 0x84204040
2025-06-13 13:28:59,146 [DEBUG][       Thread-256393][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 13:28:59,166 [DEBUG][       Thread-256393][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 13:28:59,166 [ INFO][       Thread-256393][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 13:28:59,169 [DEBUG][       Thread-256393][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 13:28:59,169 [DEBUG][       Thread-256393][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 13:28:59,169 [DEBUG][       Thread-256393][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 13:28:59,169 [DEBUG][       Thread-256393][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:28:59,169 [DEBUG][       Thread-256393][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:28:59,169 [DEBUG][       Thread-256393][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:28:59,169 [DEBUG][       Thread-256393][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:28:59,169 [DEBUG][       Thread-256393][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 13:28:59,169 [DEBUG][       Thread-256393][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 13:28:59,169 [DEBUG][       Thread-256393][   transport.py][1871] : client lang: <none>
2025-06-13 13:28:59,169 [DEBUG][       Thread-256393][   transport.py][1871] : server lang: <none>
2025-06-13 13:28:59,169 [DEBUG][       Thread-256393][   transport.py][1871] : kex follows: False
2025-06-13 13:28:59,169 [DEBUG][       Thread-256393][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 13:28:59,170 [DEBUG][       Thread-256393][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 13:28:59,170 [DEBUG][       Thread-256393][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 13:28:59,170 [DEBUG][       Thread-256393][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 13:28:59,170 [DEBUG][       Thread-256393][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 13:28:59,170 [DEBUG][       Thread-256393][   transport.py][1871] : Compression: none
2025-06-13 13:28:59,170 [DEBUG][       Thread-256393][   transport.py][1871] : === End of kex handshake ===
2025-06-13 13:28:59,186 [DEBUG][       Thread-256393][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 13:28:59,186 [DEBUG][       Thread-256393][   transport.py][1871] : Switch to new keys ...
2025-06-13 13:28:59,187 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 13:28:59,187 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 13:28:59,187 [DEBUG][       Thread-256393][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 13:28:59,188 [DEBUG][       Thread-256393][   transport.py][1871] : userauth is OK
2025-06-13 13:28:59,212 [ INFO][       Thread-256393][   transport.py][1871] : Authentication (password) successful!
2025-06-13 13:28:59,213 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 13:28:59,654 [DEBUG][Thread-256395 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:28:59,849 [DEBUG][       Thread-256393][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 13:28:59,849 [DEBUG][       Thread-256393][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 13:28:59,893 [DEBUG][       Thread-256393][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 13:28:59,893 [DEBUG][       Thread-256393][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 13:28:59,896 [DEBUG][       Thread-256393][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 13:28:59,909 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 13:28:59,910 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 13:28:59,912 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 13:28:59,914 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 13:28:59,920 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 13:28:59,922 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 13:28:59,922 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 13:28:59,923 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 13:28:59,923 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.478062 -999.00  +13.40  21.64     36   -1.20 1 1 1 1 1   888    0 15.43 84.21 ----- 21.4 21.6 25.6 30.7 18.1 -30.7 16.9 -31.6 17.0 -29.6 18.2 -28.3
2025-06-13 13:28:59,923 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 13:28:59,923 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 13:28:59,923 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.478062
2025-06-13 13:28:59,923 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 13:28:59,924 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 13:28:59,924 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 13:28:59,924 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 13:28:59,924 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 13:28:59,924 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T13:26:42', tmtdew=16.01, humidity=33.02, cloud=0.0, wind=14.68, temperature=13.5, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T11:28:24.557', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 13:28:59,926 [DEBUG][       Thread-256393][   transport.py][1871] : EOF in transport thread
2025-06-13 13:29:00,008 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 13:29:00,020 [DEBUG][       Thread-256397][   transport.py][1871] : starting thread (client mode): 0x86893ca0
2025-06-13 13:29:00,020 [DEBUG][       Thread-256397][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 13:29:00,037 [DEBUG][       Thread-256397][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 13:29:00,037 [ INFO][       Thread-256397][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 13:29:00,044 [DEBUG][       Thread-256397][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 13:29:00,044 [DEBUG][       Thread-256397][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 13:29:00,044 [DEBUG][       Thread-256397][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 13:29:00,045 [DEBUG][       Thread-256397][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:29:00,045 [DEBUG][       Thread-256397][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:29:00,045 [DEBUG][       Thread-256397][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:29:00,045 [DEBUG][       Thread-256397][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:29:00,045 [DEBUG][       Thread-256397][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 13:29:00,045 [DEBUG][       Thread-256397][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 13:29:00,045 [DEBUG][       Thread-256397][   transport.py][1871] : client lang: <none>
2025-06-13 13:29:00,045 [DEBUG][       Thread-256397][   transport.py][1871] : server lang: <none>
2025-06-13 13:29:00,045 [DEBUG][       Thread-256397][   transport.py][1871] : kex follows: False
2025-06-13 13:29:00,045 [DEBUG][       Thread-256397][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 13:29:00,045 [DEBUG][       Thread-256397][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 13:29:00,045 [DEBUG][       Thread-256397][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 13:29:00,045 [DEBUG][       Thread-256397][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 13:29:00,045 [DEBUG][       Thread-256397][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 13:29:00,045 [DEBUG][       Thread-256397][   transport.py][1871] : Compression: none
2025-06-13 13:29:00,045 [DEBUG][       Thread-256397][   transport.py][1871] : === End of kex handshake ===
2025-06-13 13:29:00,102 [DEBUG][       Thread-256397][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 13:29:00,102 [DEBUG][       Thread-256397][   transport.py][1871] : Switch to new keys ...
2025-06-13 13:29:00,103 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 13:29:00,104 [DEBUG][       Thread-256397][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 13:29:00,104 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 13:29:00,161 [DEBUG][       Thread-256397][   transport.py][1871] : userauth is OK
2025-06-13 13:29:00,161 [DEBUG][       Thread-256397][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 13:29:00,161 [DEBUG][       Thread-256397][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 13:29:00,161 [DEBUG][       Thread-256397][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 13:29:00,161 [DEBUG][       Thread-256397][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 13:29:00,180 [ INFO][       Thread-256397][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 13:29:00,181 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 13:29:00,181 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 13:29:01,218 [DEBUG][       Thread-256397][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 13:29:01,218 [DEBUG][       Thread-256397][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 13:29:01,268 [DEBUG][       Thread-256397][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 13:29:01,268 [DEBUG][       Thread-256397][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 13:29:01,281 [DEBUG][       Thread-256397][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 13:29:01,292 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 13:29:01,292 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 13:29:01,310 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 13:29:01,319 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 13:29:01,319 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 13:29:01,320 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 13:29:01,328 [DEBUG][       Thread-256397][   transport.py][1871] : EOF in transport thread
2025-06-13 13:29:08,672 [DEBUG][Thread-256399 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:29:11,330 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 13:29:11,331 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 13:29:11,331 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 13:29:11,334 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 13:29:11,758 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 13, 26, 42), 16.01, 33.02, 0.0, 14.68, 13.5, 0, 0, 0, 2, 0, 0),)
2025-06-13 13:29:11,758 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 13:26:42
2025-06-13 13:29:11,833 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 13:29:11,839 [DEBUG][       Thread-256400][   transport.py][1871] : starting thread (client mode): 0x867fd300
2025-06-13 13:29:11,839 [DEBUG][       Thread-256400][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 13:29:11,860 [DEBUG][       Thread-256400][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 13:29:11,860 [ INFO][       Thread-256400][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 13:29:11,863 [DEBUG][       Thread-256400][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 13:29:11,864 [DEBUG][       Thread-256400][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 13:29:11,864 [DEBUG][       Thread-256400][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 13:29:11,864 [DEBUG][       Thread-256400][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:29:11,864 [DEBUG][       Thread-256400][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:29:11,864 [DEBUG][       Thread-256400][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:29:11,864 [DEBUG][       Thread-256400][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:29:11,864 [DEBUG][       Thread-256400][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 13:29:11,864 [DEBUG][       Thread-256400][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 13:29:11,864 [DEBUG][       Thread-256400][   transport.py][1871] : client lang: <none>
2025-06-13 13:29:11,864 [DEBUG][       Thread-256400][   transport.py][1871] : server lang: <none>
2025-06-13 13:29:11,864 [DEBUG][       Thread-256400][   transport.py][1871] : kex follows: False
2025-06-13 13:29:11,864 [DEBUG][       Thread-256400][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 13:29:11,864 [DEBUG][       Thread-256400][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 13:29:11,864 [DEBUG][       Thread-256400][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 13:29:11,864 [DEBUG][       Thread-256400][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 13:29:11,864 [DEBUG][       Thread-256400][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 13:29:11,864 [DEBUG][       Thread-256400][   transport.py][1871] : Compression: none
2025-06-13 13:29:11,864 [DEBUG][       Thread-256400][   transport.py][1871] : === End of kex handshake ===
2025-06-13 13:29:11,882 [DEBUG][       Thread-256400][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 13:29:11,883 [DEBUG][       Thread-256400][   transport.py][1871] : Switch to new keys ...
2025-06-13 13:29:11,884 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 13:29:11,884 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 13:29:11,884 [DEBUG][       Thread-256400][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 13:29:11,885 [DEBUG][       Thread-256400][   transport.py][1871] : userauth is OK
2025-06-13 13:29:11,898 [ INFO][       Thread-256400][   transport.py][1871] : Authentication (password) successful!
2025-06-13 13:29:11,899 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 13:29:12,561 [DEBUG][       Thread-256400][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 13:29:12,561 [DEBUG][       Thread-256400][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 13:29:12,605 [DEBUG][       Thread-256400][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 13:29:12,605 [DEBUG][       Thread-256400][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 13:29:12,609 [DEBUG][       Thread-256400][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 13:29:12,621 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 13:29:12,621 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 13:29:12,623 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 13:29:12,625 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 13:29:12,632 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 13:29:12,634 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 13:29:12,634 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 13:29:12,635 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 13:29:12,635 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.478062 -999.00  +13.40  21.64     36   -1.20 1 1 1 1 1   888    0 15.43 84.21 ----- 21.4 21.6 25.6 30.7 18.1 -30.7 16.9 -31.6 17.0 -29.6 18.2 -28.3
2025-06-13 13:29:12,635 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 13:29:12,635 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 13:29:12,635 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.478062
2025-06-13 13:29:12,635 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 13:29:12,636 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 13:29:12,636 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 13:29:12,636 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 13:29:12,636 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 13:29:12,636 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T13:26:42', tmtdew=16.01, humidity=33.02, cloud=0.0, wind=14.68, temperature=13.5, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T11:28:24.557', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 13:29:12,637 [DEBUG][       Thread-256400][   transport.py][1871] : EOF in transport thread
2025-06-13 13:29:12,720 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 13:29:12,732 [DEBUG][       Thread-256403][   transport.py][1871] : starting thread (client mode): 0x863bfdf0
2025-06-13 13:29:12,732 [DEBUG][       Thread-256403][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 13:29:12,751 [DEBUG][       Thread-256403][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 13:29:12,751 [ INFO][       Thread-256403][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 13:29:12,758 [DEBUG][       Thread-256403][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 13:29:12,758 [DEBUG][       Thread-256403][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 13:29:12,758 [DEBUG][       Thread-256403][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 13:29:12,758 [DEBUG][       Thread-256403][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:29:12,758 [DEBUG][       Thread-256403][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:29:12,758 [DEBUG][       Thread-256403][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:29:12,758 [DEBUG][       Thread-256403][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:29:12,758 [DEBUG][       Thread-256403][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 13:29:12,758 [DEBUG][       Thread-256403][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 13:29:12,758 [DEBUG][       Thread-256403][   transport.py][1871] : client lang: <none>
2025-06-13 13:29:12,758 [DEBUG][       Thread-256403][   transport.py][1871] : server lang: <none>
2025-06-13 13:29:12,758 [DEBUG][       Thread-256403][   transport.py][1871] : kex follows: False
2025-06-13 13:29:12,758 [DEBUG][       Thread-256403][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 13:29:12,758 [DEBUG][       Thread-256403][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 13:29:12,758 [DEBUG][       Thread-256403][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 13:29:12,758 [DEBUG][       Thread-256403][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 13:29:12,758 [DEBUG][       Thread-256403][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 13:29:12,758 [DEBUG][       Thread-256403][   transport.py][1871] : Compression: none
2025-06-13 13:29:12,758 [DEBUG][       Thread-256403][   transport.py][1871] : === End of kex handshake ===
2025-06-13 13:29:12,816 [DEBUG][       Thread-256403][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 13:29:12,816 [DEBUG][       Thread-256403][   transport.py][1871] : Switch to new keys ...
2025-06-13 13:29:12,816 [DEBUG][       Thread-256403][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 13:29:12,816 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 13:29:12,817 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 13:29:12,874 [DEBUG][       Thread-256403][   transport.py][1871] : userauth is OK
2025-06-13 13:29:12,874 [DEBUG][       Thread-256403][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 13:29:12,874 [DEBUG][       Thread-256403][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 13:29:12,874 [DEBUG][       Thread-256403][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 13:29:12,875 [DEBUG][       Thread-256403][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 13:29:12,893 [ INFO][       Thread-256403][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 13:29:12,893 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 13:29:12,894 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 13:29:13,909 [DEBUG][       Thread-256403][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 13:29:13,909 [DEBUG][       Thread-256403][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 13:29:13,960 [DEBUG][       Thread-256403][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 13:29:13,960 [DEBUG][       Thread-256403][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 13:29:13,970 [DEBUG][       Thread-256403][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 13:29:13,979 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 13:29:13,979 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 13:29:13,988 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 13:29:13,997 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 13:29:13,997 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 13:29:13,997 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 13:29:14,005 [DEBUG][       Thread-256403][   transport.py][1871] : EOF in transport thread
2025-06-13 13:29:15,230 [DEBUG][Thread-256405 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:29:17,695 [DEBUG][Thread-256406 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:29:24,008 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 13:29:24,008 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 13:29:24,008 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 13:29:24,009 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 13:29:24,487 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 13, 26, 42), 16.01, 33.02, 0.0, 14.68, 13.5, 0, 0, 0, 2, 0, 0),)
2025-06-13 13:29:24,487 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 13:26:42
2025-06-13 13:29:24,568 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 13:29:24,572 [DEBUG][       Thread-256407][   transport.py][1871] : starting thread (client mode): 0x867fcb80
2025-06-13 13:29:24,572 [DEBUG][       Thread-256407][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 13:29:24,593 [DEBUG][       Thread-256407][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 13:29:24,593 [ INFO][       Thread-256407][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 13:29:24,596 [DEBUG][       Thread-256407][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 13:29:24,596 [DEBUG][       Thread-256407][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 13:29:24,596 [DEBUG][       Thread-256407][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 13:29:24,596 [DEBUG][       Thread-256407][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:29:24,596 [DEBUG][       Thread-256407][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:29:24,596 [DEBUG][       Thread-256407][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:29:24,596 [DEBUG][       Thread-256407][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:29:24,596 [DEBUG][       Thread-256407][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 13:29:24,596 [DEBUG][       Thread-256407][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 13:29:24,596 [DEBUG][       Thread-256407][   transport.py][1871] : client lang: <none>
2025-06-13 13:29:24,596 [DEBUG][       Thread-256407][   transport.py][1871] : server lang: <none>
2025-06-13 13:29:24,596 [DEBUG][       Thread-256407][   transport.py][1871] : kex follows: False
2025-06-13 13:29:24,596 [DEBUG][       Thread-256407][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 13:29:24,596 [DEBUG][       Thread-256407][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 13:29:24,596 [DEBUG][       Thread-256407][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 13:29:24,596 [DEBUG][       Thread-256407][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 13:29:24,596 [DEBUG][       Thread-256407][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 13:29:24,596 [DEBUG][       Thread-256407][   transport.py][1871] : Compression: none
2025-06-13 13:29:24,596 [DEBUG][       Thread-256407][   transport.py][1871] : === End of kex handshake ===
2025-06-13 13:29:24,609 [DEBUG][       Thread-256407][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 13:29:24,610 [DEBUG][       Thread-256407][   transport.py][1871] : Switch to new keys ...
2025-06-13 13:29:24,610 [DEBUG][       Thread-256407][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 13:29:24,610 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 13:29:24,610 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 13:29:24,611 [DEBUG][       Thread-256407][   transport.py][1871] : userauth is OK
2025-06-13 13:29:24,634 [ INFO][       Thread-256407][   transport.py][1871] : Authentication (password) successful!
2025-06-13 13:29:24,634 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 13:29:25,240 [DEBUG][       Thread-256407][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 13:29:25,240 [DEBUG][       Thread-256407][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 13:29:25,288 [DEBUG][       Thread-256407][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 13:29:25,288 [DEBUG][       Thread-256407][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 13:29:25,291 [DEBUG][       Thread-256407][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 13:29:25,303 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 13:29:25,303 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 13:29:25,305 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 13:29:25,306 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 13:29:25,312 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 13:29:25,313 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 13:29:25,314 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 13:29:25,314 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 13:29:25,314 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.478409 -999.00  +13.60  17.92     36   -1.00 1 1 1 1 1   888    0 15.91 94.84 ----- 24.4 17.9 31.6 27.1 18.1 -30.0 16.9 -32.9 17.1 -29.8 18.2 -28.5
2025-06-13 13:29:25,314 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 13:29:25,314 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 13:29:25,315 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.478409
2025-06-13 13:29:25,315 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 13:29:25,315 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 13:29:25,315 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 13:29:25,316 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 13:29:25,316 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 13:29:25,316 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T13:26:42', tmtdew=16.01, humidity=33.02, cloud=0.0, wind=14.68, temperature=13.5, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T11:28:54.538', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 13:29:25,317 [DEBUG][       Thread-256407][   transport.py][1871] : EOF in transport thread
2025-06-13 13:29:25,399 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 13:29:25,409 [DEBUG][       Thread-256410][   transport.py][1871] : starting thread (client mode): 0x863ed030
2025-06-13 13:29:25,409 [DEBUG][       Thread-256410][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 13:29:25,423 [DEBUG][       Thread-256410][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 13:29:25,423 [ INFO][       Thread-256410][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 13:29:25,431 [DEBUG][       Thread-256410][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 13:29:25,431 [DEBUG][       Thread-256410][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 13:29:25,431 [DEBUG][       Thread-256410][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 13:29:25,431 [DEBUG][       Thread-256410][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:29:25,431 [DEBUG][       Thread-256410][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:29:25,431 [DEBUG][       Thread-256410][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:29:25,431 [DEBUG][       Thread-256410][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:29:25,431 [DEBUG][       Thread-256410][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 13:29:25,431 [DEBUG][       Thread-256410][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 13:29:25,431 [DEBUG][       Thread-256410][   transport.py][1871] : client lang: <none>
2025-06-13 13:29:25,431 [DEBUG][       Thread-256410][   transport.py][1871] : server lang: <none>
2025-06-13 13:29:25,431 [DEBUG][       Thread-256410][   transport.py][1871] : kex follows: False
2025-06-13 13:29:25,431 [DEBUG][       Thread-256410][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 13:29:25,432 [DEBUG][       Thread-256410][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 13:29:25,432 [DEBUG][       Thread-256410][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 13:29:25,432 [DEBUG][       Thread-256410][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 13:29:25,432 [DEBUG][       Thread-256410][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 13:29:25,432 [DEBUG][       Thread-256410][   transport.py][1871] : Compression: none
2025-06-13 13:29:25,432 [DEBUG][       Thread-256410][   transport.py][1871] : === End of kex handshake ===
2025-06-13 13:29:25,490 [DEBUG][       Thread-256410][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 13:29:25,490 [DEBUG][       Thread-256410][   transport.py][1871] : Switch to new keys ...
2025-06-13 13:29:25,491 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 13:29:25,492 [DEBUG][       Thread-256410][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 13:29:25,492 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 13:29:25,550 [DEBUG][       Thread-256410][   transport.py][1871] : userauth is OK
2025-06-13 13:29:25,550 [DEBUG][       Thread-256410][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 13:29:25,550 [DEBUG][       Thread-256410][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 13:29:25,550 [DEBUG][       Thread-256410][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 13:29:25,551 [DEBUG][       Thread-256410][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 13:29:25,572 [ INFO][       Thread-256410][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 13:29:25,572 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 13:29:25,573 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 13:29:26,716 [DEBUG][Thread-256412 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:29:27,012 [DEBUG][       Thread-256410][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 13:29:27,012 [DEBUG][       Thread-256410][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 13:29:27,060 [DEBUG][       Thread-256410][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 13:29:27,060 [DEBUG][       Thread-256410][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 13:29:27,069 [DEBUG][       Thread-256410][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 13:29:27,078 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 13:29:27,079 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 13:29:27,088 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 13:29:27,097 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 13:29:27,097 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 13:29:27,098 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 13:29:27,106 [DEBUG][       Thread-256410][   transport.py][1871] : EOF in transport thread
2025-06-13 13:29:35,417 [DEBUG][Thread-256413 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:29:35,739 [DEBUG][Thread-256414 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:29:36,493 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:29:36,502 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:29:37,108 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 13:29:37,109 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 13:29:37,109 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 13:29:37,112 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 13:29:37,550 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 13, 27, 13), 16.16, 32.7, 0.0, 19.64, 13.63, 0, 0, 0, 2, 0, 0),)
2025-06-13 13:29:37,551 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 13:27:13
2025-06-13 13:29:37,626 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 13:29:37,632 [DEBUG][       Thread-256415][   transport.py][1871] : starting thread (client mode): 0x86393bb0
2025-06-13 13:29:37,632 [DEBUG][       Thread-256415][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 13:29:37,653 [DEBUG][       Thread-256415][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 13:29:37,653 [ INFO][       Thread-256415][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 13:29:37,656 [DEBUG][       Thread-256415][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 13:29:37,656 [DEBUG][       Thread-256415][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 13:29:37,656 [DEBUG][       Thread-256415][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 13:29:37,656 [DEBUG][       Thread-256415][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:29:37,657 [DEBUG][       Thread-256415][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:29:37,657 [DEBUG][       Thread-256415][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:29:37,657 [DEBUG][       Thread-256415][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:29:37,657 [DEBUG][       Thread-256415][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 13:29:37,657 [DEBUG][       Thread-256415][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 13:29:37,657 [DEBUG][       Thread-256415][   transport.py][1871] : client lang: <none>
2025-06-13 13:29:37,657 [DEBUG][       Thread-256415][   transport.py][1871] : server lang: <none>
2025-06-13 13:29:37,657 [DEBUG][       Thread-256415][   transport.py][1871] : kex follows: False
2025-06-13 13:29:37,657 [DEBUG][       Thread-256415][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 13:29:37,657 [DEBUG][       Thread-256415][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 13:29:37,657 [DEBUG][       Thread-256415][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 13:29:37,657 [DEBUG][       Thread-256415][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 13:29:37,657 [DEBUG][       Thread-256415][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 13:29:37,657 [DEBUG][       Thread-256415][   transport.py][1871] : Compression: none
2025-06-13 13:29:37,657 [DEBUG][       Thread-256415][   transport.py][1871] : === End of kex handshake ===
2025-06-13 13:29:37,675 [DEBUG][       Thread-256415][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 13:29:37,676 [DEBUG][       Thread-256415][   transport.py][1871] : Switch to new keys ...
2025-06-13 13:29:37,676 [DEBUG][       Thread-256415][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 13:29:37,676 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 13:29:37,676 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 13:29:37,677 [DEBUG][       Thread-256415][   transport.py][1871] : userauth is OK
2025-06-13 13:29:37,700 [ INFO][       Thread-256415][   transport.py][1871] : Authentication (password) successful!
2025-06-13 13:29:37,701 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 13:29:38,334 [DEBUG][       Thread-256415][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 13:29:38,334 [DEBUG][       Thread-256415][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 13:29:38,377 [DEBUG][       Thread-256415][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 13:29:38,377 [DEBUG][       Thread-256415][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 13:29:38,381 [DEBUG][       Thread-256415][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 13:29:38,394 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 13:29:38,394 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 13:29:38,396 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 13:29:38,398 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 13:29:38,405 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 13:29:38,407 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 13:29:38,407 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 13:29:38,408 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 13:29:38,408 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.478409 -999.00  +13.60  17.92     36   -1.00 1 1 1 1 1   888    0 15.91 94.84 ----- 24.4 17.9 31.6 27.1 18.1 -30.0 16.9 -32.9 17.1 -29.8 18.2 -28.5
2025-06-13 13:29:38,408 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 13:29:38,408 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 13:29:38,408 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.478409
2025-06-13 13:29:38,408 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 13:29:38,409 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 13:29:38,409 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 13:29:38,409 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 13:29:38,409 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 13:29:38,409 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T13:27:13', tmtdew=16.16, humidity=32.7, cloud=0.0, wind=19.64, temperature=13.63, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T11:28:54.538', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 13:29:38,410 [DEBUG][       Thread-256415][   transport.py][1871] : EOF in transport thread
2025-06-13 13:29:38,493 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 13:29:38,504 [DEBUG][       Thread-256418][   transport.py][1871] : starting thread (client mode): 0x863924d0
2025-06-13 13:29:38,504 [DEBUG][       Thread-256418][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 13:29:38,519 [DEBUG][       Thread-256418][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 13:29:38,520 [ INFO][       Thread-256418][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 13:29:38,527 [DEBUG][       Thread-256418][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 13:29:38,527 [DEBUG][       Thread-256418][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 13:29:38,527 [DEBUG][       Thread-256418][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 13:29:38,527 [DEBUG][       Thread-256418][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:29:38,528 [DEBUG][       Thread-256418][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:29:38,528 [DEBUG][       Thread-256418][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:29:38,528 [DEBUG][       Thread-256418][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:29:38,528 [DEBUG][       Thread-256418][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 13:29:38,528 [DEBUG][       Thread-256418][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 13:29:38,528 [DEBUG][       Thread-256418][   transport.py][1871] : client lang: <none>
2025-06-13 13:29:38,528 [DEBUG][       Thread-256418][   transport.py][1871] : server lang: <none>
2025-06-13 13:29:38,528 [DEBUG][       Thread-256418][   transport.py][1871] : kex follows: False
2025-06-13 13:29:38,528 [DEBUG][       Thread-256418][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 13:29:38,528 [DEBUG][       Thread-256418][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 13:29:38,528 [DEBUG][       Thread-256418][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 13:29:38,528 [DEBUG][       Thread-256418][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 13:29:38,528 [DEBUG][       Thread-256418][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 13:29:38,528 [DEBUG][       Thread-256418][   transport.py][1871] : Compression: none
2025-06-13 13:29:38,528 [DEBUG][       Thread-256418][   transport.py][1871] : === End of kex handshake ===
2025-06-13 13:29:38,586 [DEBUG][       Thread-256418][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 13:29:38,587 [DEBUG][       Thread-256418][   transport.py][1871] : Switch to new keys ...
2025-06-13 13:29:38,587 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 13:29:38,588 [DEBUG][       Thread-256418][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 13:29:38,589 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 13:29:38,642 [DEBUG][       Thread-256418][   transport.py][1871] : userauth is OK
2025-06-13 13:29:38,642 [DEBUG][       Thread-256418][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 13:29:38,642 [DEBUG][       Thread-256418][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 13:29:38,642 [DEBUG][       Thread-256418][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 13:29:38,642 [DEBUG][       Thread-256418][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 13:29:38,661 [ INFO][       Thread-256418][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 13:29:38,661 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 13:29:38,662 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 13:29:39,694 [DEBUG][       Thread-256418][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 13:29:39,694 [DEBUG][       Thread-256418][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 13:29:39,746 [DEBUG][       Thread-256418][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 13:29:39,747 [DEBUG][       Thread-256418][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 13:29:39,756 [DEBUG][       Thread-256418][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 13:29:39,766 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 13:29:39,766 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 13:29:39,777 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 13:29:39,787 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 13:29:39,788 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 13:29:39,788 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 13:29:39,797 [DEBUG][       Thread-256418][   transport.py][1871] : EOF in transport thread
2025-06-13 13:29:44,758 [DEBUG][Thread-256420 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:29:49,799 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 13:29:49,799 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 13:29:49,799 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 13:29:49,802 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 13:29:50,243 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 13, 27, 13), 16.16, 32.7, 0.0, 19.64, 13.63, 0, 0, 0, 2, 0, 0),)
2025-06-13 13:29:50,243 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 13:27:13
2025-06-13 13:29:50,319 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 13:29:50,323 [DEBUG][       Thread-256421][   transport.py][1871] : starting thread (client mode): 0x86390f10
2025-06-13 13:29:50,323 [DEBUG][       Thread-256421][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 13:29:50,337 [DEBUG][       Thread-256421][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 13:29:50,337 [ INFO][       Thread-256421][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 13:29:50,343 [DEBUG][       Thread-256421][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 13:29:50,343 [DEBUG][       Thread-256421][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 13:29:50,343 [DEBUG][       Thread-256421][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 13:29:50,343 [DEBUG][       Thread-256421][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:29:50,343 [DEBUG][       Thread-256421][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:29:50,343 [DEBUG][       Thread-256421][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:29:50,343 [DEBUG][       Thread-256421][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:29:50,343 [DEBUG][       Thread-256421][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 13:29:50,343 [DEBUG][       Thread-256421][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 13:29:50,343 [DEBUG][       Thread-256421][   transport.py][1871] : client lang: <none>
2025-06-13 13:29:50,343 [DEBUG][       Thread-256421][   transport.py][1871] : server lang: <none>
2025-06-13 13:29:50,343 [DEBUG][       Thread-256421][   transport.py][1871] : kex follows: False
2025-06-13 13:29:50,343 [DEBUG][       Thread-256421][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 13:29:50,343 [DEBUG][       Thread-256421][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 13:29:50,343 [DEBUG][       Thread-256421][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 13:29:50,343 [DEBUG][       Thread-256421][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 13:29:50,343 [DEBUG][       Thread-256421][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 13:29:50,343 [DEBUG][       Thread-256421][   transport.py][1871] : Compression: none
2025-06-13 13:29:50,343 [DEBUG][       Thread-256421][   transport.py][1871] : === End of kex handshake ===
2025-06-13 13:29:50,354 [DEBUG][       Thread-256421][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 13:29:50,355 [DEBUG][       Thread-256421][   transport.py][1871] : Switch to new keys ...
2025-06-13 13:29:50,355 [DEBUG][       Thread-256421][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 13:29:50,355 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 13:29:50,356 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 13:29:50,357 [DEBUG][       Thread-256421][   transport.py][1871] : userauth is OK
2025-06-13 13:29:50,369 [ INFO][       Thread-256421][   transport.py][1871] : Authentication (password) successful!
2025-06-13 13:29:50,370 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 13:29:50,939 [DEBUG][       Thread-256421][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 13:29:50,940 [DEBUG][       Thread-256421][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 13:29:50,981 [DEBUG][       Thread-256421][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 13:29:50,981 [DEBUG][       Thread-256421][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 13:29:50,984 [DEBUG][       Thread-256421][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 13:29:50,997 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 13:29:50,997 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 13:29:51,003 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 13:29:51,005 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 13:29:51,009 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 13:29:51,011 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 13:29:51,011 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 13:29:51,012 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 13:29:51,012 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.478757 -999.00  +13.30  22.87     34   -1.80 1 1 1 1 1   888    0 15.98 92.03 ----- 20.9 22.9 40.0 26.9 17.9 -31.1 16.8 -33.0 16.9 -31.6 18.1 -28.8
2025-06-13 13:29:51,012 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 13:29:51,012 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 13:29:51,012 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.478757
2025-06-13 13:29:51,012 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 13:29:51,013 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 13:29:51,013 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 13:29:51,013 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 13:29:51,013 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 13:29:51,013 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T13:27:13', tmtdew=16.16, humidity=32.7, cloud=0.0, wind=19.64, temperature=13.63, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T11:29:24.605', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 13:29:51,013 [DEBUG][       Thread-256421][   transport.py][1871] : EOF in transport thread
2025-06-13 13:29:51,095 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 13:29:51,104 [DEBUG][       Thread-256424][   transport.py][1871] : starting thread (client mode): 0x863a6e60
2025-06-13 13:29:51,104 [DEBUG][       Thread-256424][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 13:29:51,118 [DEBUG][       Thread-256424][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 13:29:51,118 [ INFO][       Thread-256424][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 13:29:51,130 [DEBUG][       Thread-256424][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 13:29:51,130 [DEBUG][       Thread-256424][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 13:29:51,130 [DEBUG][       Thread-256424][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 13:29:51,130 [DEBUG][       Thread-256424][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:29:51,130 [DEBUG][       Thread-256424][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:29:51,130 [DEBUG][       Thread-256424][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:29:51,130 [DEBUG][       Thread-256424][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:29:51,130 [DEBUG][       Thread-256424][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 13:29:51,130 [DEBUG][       Thread-256424][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 13:29:51,130 [DEBUG][       Thread-256424][   transport.py][1871] : client lang: <none>
2025-06-13 13:29:51,130 [DEBUG][       Thread-256424][   transport.py][1871] : server lang: <none>
2025-06-13 13:29:51,130 [DEBUG][       Thread-256424][   transport.py][1871] : kex follows: False
2025-06-13 13:29:51,130 [DEBUG][       Thread-256424][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 13:29:51,130 [DEBUG][       Thread-256424][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 13:29:51,130 [DEBUG][       Thread-256424][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 13:29:51,130 [DEBUG][       Thread-256424][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 13:29:51,130 [DEBUG][       Thread-256424][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 13:29:51,131 [DEBUG][       Thread-256424][   transport.py][1871] : Compression: none
2025-06-13 13:29:51,131 [DEBUG][       Thread-256424][   transport.py][1871] : === End of kex handshake ===
2025-06-13 13:29:51,185 [DEBUG][       Thread-256424][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 13:29:51,185 [DEBUG][       Thread-256424][   transport.py][1871] : Switch to new keys ...
2025-06-13 13:29:51,186 [DEBUG][       Thread-256424][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 13:29:51,186 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 13:29:51,187 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 13:29:51,241 [DEBUG][       Thread-256424][   transport.py][1871] : userauth is OK
2025-06-13 13:29:51,242 [DEBUG][       Thread-256424][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 13:29:51,242 [DEBUG][       Thread-256424][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 13:29:51,242 [DEBUG][       Thread-256424][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 13:29:51,242 [DEBUG][       Thread-256424][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 13:29:51,261 [ INFO][       Thread-256424][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 13:29:51,261 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 13:29:51,261 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 13:29:52,312 [DEBUG][       Thread-256424][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 13:29:52,312 [DEBUG][       Thread-256424][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 13:29:52,360 [DEBUG][       Thread-256424][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 13:29:52,360 [DEBUG][       Thread-256424][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 13:29:52,369 [DEBUG][       Thread-256424][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 13:29:52,377 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 13:29:52,378 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 13:29:52,386 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 13:29:52,395 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 13:29:52,395 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 13:29:52,395 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 13:29:52,403 [DEBUG][       Thread-256424][   transport.py][1871] : EOF in transport thread
2025-06-13 13:29:52,633 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:29:52,634 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:29:53,780 [DEBUG][Thread-256426 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:30:02,404 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 13:30:02,404 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 13:30:02,404 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 13:30:02,407 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 13:30:02,800 [DEBUG][Thread-256427 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:30:02,857 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 13, 29, 54), 16.56, 31.85, 0.0, 13.74, 13.91, 0, 0, 0, 2, 0, 0),)
2025-06-13 13:30:02,857 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 13:29:54
2025-06-13 13:30:02,934 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 13:30:02,941 [DEBUG][       Thread-256428][   transport.py][1871] : starting thread (client mode): 0x86390fa0
2025-06-13 13:30:02,941 [DEBUG][       Thread-256428][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 13:30:02,961 [DEBUG][       Thread-256428][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 13:30:02,961 [ INFO][       Thread-256428][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 13:30:02,965 [DEBUG][       Thread-256428][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 13:30:02,965 [DEBUG][       Thread-256428][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 13:30:02,966 [DEBUG][       Thread-256428][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 13:30:02,966 [DEBUG][       Thread-256428][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:30:02,966 [DEBUG][       Thread-256428][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:30:02,966 [DEBUG][       Thread-256428][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:30:02,966 [DEBUG][       Thread-256428][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:30:02,966 [DEBUG][       Thread-256428][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 13:30:02,966 [DEBUG][       Thread-256428][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 13:30:02,966 [DEBUG][       Thread-256428][   transport.py][1871] : client lang: <none>
2025-06-13 13:30:02,966 [DEBUG][       Thread-256428][   transport.py][1871] : server lang: <none>
2025-06-13 13:30:02,966 [DEBUG][       Thread-256428][   transport.py][1871] : kex follows: False
2025-06-13 13:30:02,966 [DEBUG][       Thread-256428][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 13:30:02,966 [DEBUG][       Thread-256428][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 13:30:02,966 [DEBUG][       Thread-256428][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 13:30:02,966 [DEBUG][       Thread-256428][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 13:30:02,966 [DEBUG][       Thread-256428][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 13:30:02,966 [DEBUG][       Thread-256428][   transport.py][1871] : Compression: none
2025-06-13 13:30:02,966 [DEBUG][       Thread-256428][   transport.py][1871] : === End of kex handshake ===
2025-06-13 13:30:02,975 [DEBUG][       Thread-256428][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 13:30:02,975 [DEBUG][       Thread-256428][   transport.py][1871] : Switch to new keys ...
2025-06-13 13:30:02,976 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 13:30:02,976 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 13:30:02,977 [DEBUG][       Thread-256428][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 13:30:02,977 [DEBUG][       Thread-256428][   transport.py][1871] : userauth is OK
2025-06-13 13:30:02,990 [ INFO][       Thread-256428][   transport.py][1871] : Authentication (password) successful!
2025-06-13 13:30:02,990 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 13:30:08,042 [DEBUG][       Thread-256428][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 13:30:08,042 [DEBUG][       Thread-256428][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 13:30:08,085 [DEBUG][       Thread-256428][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 13:30:08,085 [DEBUG][       Thread-256428][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 13:30:08,088 [DEBUG][       Thread-256428][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 13:30:08,102 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 13:30:08,102 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 13:30:08,104 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 13:30:08,106 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 13:30:08,218 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 13:30:08,220 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 13:30:08,220 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 13:30:08,221 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 13:30:08,221 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.478757 -999.00  +13.30  22.87     34   -1.80 1 1 1 1 1   888    0 15.98 92.03 ----- 20.9 22.9 40.0 26.9 17.9 -31.1 16.8 -33.0 16.9 -31.6 18.1 -28.8
2025-06-13 13:30:08,221 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 13:30:08,221 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 13:30:08,221 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.478757
2025-06-13 13:30:08,222 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 13:30:08,222 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 13:30:08,222 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 13:30:08,222 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 13:30:08,223 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 13:30:08,223 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T13:29:54', tmtdew=16.56, humidity=31.85, cloud=0.0, wind=13.74, temperature=13.91, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T11:29:24.605', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 13:30:08,224 [DEBUG][       Thread-256428][   transport.py][1871] : EOF in transport thread
2025-06-13 13:30:08,308 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 13:30:08,320 [DEBUG][       Thread-256431][   transport.py][1871] : starting thread (client mode): 0x863694b0
2025-06-13 13:30:08,320 [DEBUG][       Thread-256431][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 13:30:08,339 [DEBUG][       Thread-256431][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 13:30:08,339 [ INFO][       Thread-256431][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 13:30:08,350 [DEBUG][       Thread-256431][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 13:30:08,350 [DEBUG][       Thread-256431][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 13:30:08,350 [DEBUG][       Thread-256431][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 13:30:08,350 [DEBUG][       Thread-256431][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:30:08,350 [DEBUG][       Thread-256431][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:30:08,350 [DEBUG][       Thread-256431][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:30:08,351 [DEBUG][       Thread-256431][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:30:08,351 [DEBUG][       Thread-256431][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 13:30:08,351 [DEBUG][       Thread-256431][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 13:30:08,351 [DEBUG][       Thread-256431][   transport.py][1871] : client lang: <none>
2025-06-13 13:30:08,351 [DEBUG][       Thread-256431][   transport.py][1871] : server lang: <none>
2025-06-13 13:30:08,351 [DEBUG][       Thread-256431][   transport.py][1871] : kex follows: False
2025-06-13 13:30:08,351 [DEBUG][       Thread-256431][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 13:30:08,351 [DEBUG][       Thread-256431][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 13:30:08,351 [DEBUG][       Thread-256431][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 13:30:08,351 [DEBUG][       Thread-256431][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 13:30:08,351 [DEBUG][       Thread-256431][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 13:30:08,351 [DEBUG][       Thread-256431][   transport.py][1871] : Compression: none
2025-06-13 13:30:08,351 [DEBUG][       Thread-256431][   transport.py][1871] : === End of kex handshake ===
2025-06-13 13:30:08,406 [DEBUG][       Thread-256431][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 13:30:08,407 [DEBUG][       Thread-256431][   transport.py][1871] : Switch to new keys ...
2025-06-13 13:30:08,407 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 13:30:08,408 [DEBUG][       Thread-256431][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 13:30:08,409 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 13:30:08,462 [DEBUG][       Thread-256431][   transport.py][1871] : userauth is OK
2025-06-13 13:30:08,463 [DEBUG][       Thread-256431][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 13:30:08,463 [DEBUG][       Thread-256431][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 13:30:08,463 [DEBUG][       Thread-256431][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 13:30:08,463 [DEBUG][       Thread-256431][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 13:30:08,482 [ INFO][       Thread-256431][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 13:30:08,482 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 13:30:08,483 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 13:30:09,533 [DEBUG][       Thread-256431][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 13:30:09,533 [DEBUG][       Thread-256431][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 13:30:09,584 [DEBUG][       Thread-256431][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 13:30:09,584 [DEBUG][       Thread-256431][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 13:30:09,594 [DEBUG][       Thread-256431][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 13:30:09,603 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 13:30:09,603 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 13:30:09,612 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 13:30:09,622 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 13:30:09,622 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 13:30:09,623 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 13:30:09,631 [DEBUG][       Thread-256431][   transport.py][1871] : EOF in transport thread
2025-06-13 13:30:11,821 [DEBUG][Thread-256433 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:30:15,279 [DEBUG][Thread-256434 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:30:19,628 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 13:30:19,628 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 13:30:19,628 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 13:30:19,631 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 13:30:20,073 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 13, 29, 54), 16.56, 31.85, 0.0, 13.74, 13.91, 0, 0, 0, 2, 0, 0),)
2025-06-13 13:30:20,073 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 13:29:54
2025-06-13 13:30:20,151 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 13:30:20,157 [DEBUG][       Thread-256435][   transport.py][1871] : starting thread (client mode): 0x842070d0
2025-06-13 13:30:20,157 [DEBUG][       Thread-256435][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 13:30:20,178 [DEBUG][       Thread-256435][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 13:30:20,178 [ INFO][       Thread-256435][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 13:30:20,182 [DEBUG][       Thread-256435][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 13:30:20,182 [DEBUG][       Thread-256435][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 13:30:20,182 [DEBUG][       Thread-256435][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 13:30:20,182 [DEBUG][       Thread-256435][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:30:20,182 [DEBUG][       Thread-256435][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:30:20,182 [DEBUG][       Thread-256435][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:30:20,182 [DEBUG][       Thread-256435][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:30:20,182 [DEBUG][       Thread-256435][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 13:30:20,182 [DEBUG][       Thread-256435][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 13:30:20,182 [DEBUG][       Thread-256435][   transport.py][1871] : client lang: <none>
2025-06-13 13:30:20,182 [DEBUG][       Thread-256435][   transport.py][1871] : server lang: <none>
2025-06-13 13:30:20,182 [DEBUG][       Thread-256435][   transport.py][1871] : kex follows: False
2025-06-13 13:30:20,182 [DEBUG][       Thread-256435][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 13:30:20,182 [DEBUG][       Thread-256435][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 13:30:20,182 [DEBUG][       Thread-256435][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 13:30:20,182 [DEBUG][       Thread-256435][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 13:30:20,182 [DEBUG][       Thread-256435][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 13:30:20,182 [DEBUG][       Thread-256435][   transport.py][1871] : Compression: none
2025-06-13 13:30:20,182 [DEBUG][       Thread-256435][   transport.py][1871] : === End of kex handshake ===
2025-06-13 13:30:20,194 [DEBUG][       Thread-256435][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 13:30:20,195 [DEBUG][       Thread-256435][   transport.py][1871] : Switch to new keys ...
2025-06-13 13:30:20,195 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 13:30:20,196 [DEBUG][       Thread-256435][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 13:30:20,196 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 13:30:20,197 [DEBUG][       Thread-256435][   transport.py][1871] : userauth is OK
2025-06-13 13:30:20,210 [ INFO][       Thread-256435][   transport.py][1871] : Authentication (password) successful!
2025-06-13 13:30:20,210 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 13:30:20,819 [DEBUG][       Thread-256435][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 13:30:20,819 [DEBUG][       Thread-256435][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 13:30:20,850 [DEBUG][Thread-256437 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:30:20,861 [DEBUG][       Thread-256435][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 13:30:20,861 [DEBUG][       Thread-256435][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 13:30:20,864 [DEBUG][       Thread-256435][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 13:30:20,869 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 13:30:20,869 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 13:30:20,871 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 13:30:20,872 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 13:30:20,878 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 13:30:20,879 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 13:30:20,880 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 13:30:20,880 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 13:30:20,880 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.478757 -999.00  +13.30  22.87     34   -1.80 1 1 1 1 1   888    0 15.98 92.03 ----- 20.9 22.9 40.0 26.9 17.9 -31.1 16.8 -33.0 16.9 -31.6 18.1 -28.8
2025-06-13 13:30:20,881 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 13:30:20,881 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 13:30:20,881 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.478757
2025-06-13 13:30:20,881 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 13:30:20,882 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 13:30:20,882 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 13:30:20,882 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 13:30:20,882 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 13:30:20,882 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T13:29:54', tmtdew=16.56, humidity=31.85, cloud=0.0, wind=13.74, temperature=13.91, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T11:29:24.605', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 13:30:20,883 [DEBUG][       Thread-256435][   transport.py][1871] : EOF in transport thread
2025-06-13 13:30:20,964 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 13:30:20,976 [DEBUG][       Thread-256439][   transport.py][1871] : starting thread (client mode): 0x86893fd0
2025-06-13 13:30:20,976 [DEBUG][       Thread-256439][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 13:30:20,990 [DEBUG][       Thread-256439][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 13:30:20,990 [ INFO][       Thread-256439][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 13:30:20,998 [DEBUG][       Thread-256439][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 13:30:20,998 [DEBUG][       Thread-256439][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 13:30:20,998 [DEBUG][       Thread-256439][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 13:30:20,998 [DEBUG][       Thread-256439][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:30:20,998 [DEBUG][       Thread-256439][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:30:20,998 [DEBUG][       Thread-256439][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:30:20,998 [DEBUG][       Thread-256439][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:30:20,998 [DEBUG][       Thread-256439][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 13:30:20,998 [DEBUG][       Thread-256439][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 13:30:20,998 [DEBUG][       Thread-256439][   transport.py][1871] : client lang: <none>
2025-06-13 13:30:20,998 [DEBUG][       Thread-256439][   transport.py][1871] : server lang: <none>
2025-06-13 13:30:20,998 [DEBUG][       Thread-256439][   transport.py][1871] : kex follows: False
2025-06-13 13:30:20,998 [DEBUG][       Thread-256439][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 13:30:20,998 [DEBUG][       Thread-256439][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 13:30:20,998 [DEBUG][       Thread-256439][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 13:30:20,998 [DEBUG][       Thread-256439][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 13:30:20,998 [DEBUG][       Thread-256439][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 13:30:20,998 [DEBUG][       Thread-256439][   transport.py][1871] : Compression: none
2025-06-13 13:30:20,998 [DEBUG][       Thread-256439][   transport.py][1871] : === End of kex handshake ===
2025-06-13 13:30:21,063 [DEBUG][       Thread-256439][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 13:30:21,064 [DEBUG][       Thread-256439][   transport.py][1871] : Switch to new keys ...
2025-06-13 13:30:21,064 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 13:30:21,065 [DEBUG][       Thread-256439][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 13:30:21,066 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 13:30:21,121 [DEBUG][       Thread-256439][   transport.py][1871] : userauth is OK
2025-06-13 13:30:21,121 [DEBUG][       Thread-256439][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 13:30:21,121 [DEBUG][       Thread-256439][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 13:30:21,121 [DEBUG][       Thread-256439][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 13:30:21,121 [DEBUG][       Thread-256439][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 13:30:21,135 [ INFO][       Thread-256439][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 13:30:21,135 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 13:30:21,136 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 13:30:22,150 [DEBUG][       Thread-256439][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 13:30:22,150 [DEBUG][       Thread-256439][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 13:30:22,200 [DEBUG][       Thread-256439][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 13:30:22,200 [DEBUG][       Thread-256439][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 13:30:22,210 [DEBUG][       Thread-256439][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 13:30:22,221 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 13:30:22,222 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 13:30:22,233 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 13:30:22,249 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 13:30:22,249 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 13:30:22,250 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 13:30:22,258 [DEBUG][       Thread-256439][   transport.py][1871] : EOF in transport thread
2025-06-13 13:30:29,869 [DEBUG][Thread-256441 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:30:32,260 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 13:30:32,260 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 13:30:32,261 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 13:30:32,263 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 13:30:32,714 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 13, 30, 26), 16.68, 31.61, 0.0, 15.02, 13.87, 0, 0, 0, 2, 0, 0),)
2025-06-13 13:30:32,714 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 13:30:26
2025-06-13 13:30:32,794 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 13:30:32,798 [DEBUG][       Thread-256442][   transport.py][1871] : starting thread (client mode): 0x8636bb80
2025-06-13 13:30:32,798 [DEBUG][       Thread-256442][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 13:30:32,820 [DEBUG][       Thread-256442][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 13:30:32,820 [ INFO][       Thread-256442][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 13:30:32,823 [DEBUG][       Thread-256442][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 13:30:32,824 [DEBUG][       Thread-256442][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 13:30:32,824 [DEBUG][       Thread-256442][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 13:30:32,824 [DEBUG][       Thread-256442][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:30:32,824 [DEBUG][       Thread-256442][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:30:32,824 [DEBUG][       Thread-256442][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:30:32,824 [DEBUG][       Thread-256442][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:30:32,824 [DEBUG][       Thread-256442][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 13:30:32,824 [DEBUG][       Thread-256442][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 13:30:32,824 [DEBUG][       Thread-256442][   transport.py][1871] : client lang: <none>
2025-06-13 13:30:32,824 [DEBUG][       Thread-256442][   transport.py][1871] : server lang: <none>
2025-06-13 13:30:32,824 [DEBUG][       Thread-256442][   transport.py][1871] : kex follows: False
2025-06-13 13:30:32,824 [DEBUG][       Thread-256442][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 13:30:32,824 [DEBUG][       Thread-256442][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 13:30:32,824 [DEBUG][       Thread-256442][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 13:30:32,824 [DEBUG][       Thread-256442][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 13:30:32,824 [DEBUG][       Thread-256442][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 13:30:32,824 [DEBUG][       Thread-256442][   transport.py][1871] : Compression: none
2025-06-13 13:30:32,824 [DEBUG][       Thread-256442][   transport.py][1871] : === End of kex handshake ===
2025-06-13 13:30:32,837 [DEBUG][       Thread-256442][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 13:30:32,838 [DEBUG][       Thread-256442][   transport.py][1871] : Switch to new keys ...
2025-06-13 13:30:32,838 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 13:30:32,839 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 13:30:32,839 [DEBUG][       Thread-256442][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 13:30:32,840 [DEBUG][       Thread-256442][   transport.py][1871] : userauth is OK
2025-06-13 13:30:32,852 [ INFO][       Thread-256442][   transport.py][1871] : Authentication (password) successful!
2025-06-13 13:30:32,853 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 13:30:33,493 [DEBUG][       Thread-256442][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 13:30:33,494 [DEBUG][       Thread-256442][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 13:30:33,537 [DEBUG][       Thread-256442][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 13:30:33,537 [DEBUG][       Thread-256442][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 13:30:33,541 [DEBUG][       Thread-256442][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 13:30:33,552 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 13:30:33,552 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 13:30:33,554 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 13:30:33,556 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 13:30:33,562 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 13:30:33,564 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 13:30:33,565 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 13:30:33,565 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 13:30:33,566 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.479104 -999.00  +13.10  24.26     35   -1.80 1 1 1 1 1   888    0 16.23 93.16 ----- 22.5 24.3 48.8 29.6 17.8 -31.0 16.6 -32.8 16.8 -31.8 18.1 -29.0
2025-06-13 13:30:33,566 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 13:30:33,566 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 13:30:33,566 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.479104
2025-06-13 13:30:33,566 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 13:30:33,567 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 13:30:33,567 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 13:30:33,567 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 13:30:33,567 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 13:30:33,567 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T13:30:26', tmtdew=16.68, humidity=31.61, cloud=0.0, wind=15.02, temperature=13.87, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T11:29:54.586', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 13:30:33,567 [DEBUG][       Thread-256442][   transport.py][1871] : EOF in transport thread
2025-06-13 13:30:33,639 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 13:30:33,648 [DEBUG][       Thread-256445][   transport.py][1871] : starting thread (client mode): 0x842066b0
2025-06-13 13:30:33,648 [DEBUG][       Thread-256445][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 13:30:33,664 [DEBUG][       Thread-256445][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 13:30:33,664 [ INFO][       Thread-256445][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 13:30:33,671 [DEBUG][       Thread-256445][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 13:30:33,671 [DEBUG][       Thread-256445][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 13:30:33,671 [DEBUG][       Thread-256445][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 13:30:33,671 [DEBUG][       Thread-256445][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:30:33,671 [DEBUG][       Thread-256445][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:30:33,671 [DEBUG][       Thread-256445][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:30:33,671 [DEBUG][       Thread-256445][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:30:33,671 [DEBUG][       Thread-256445][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 13:30:33,671 [DEBUG][       Thread-256445][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 13:30:33,671 [DEBUG][       Thread-256445][   transport.py][1871] : client lang: <none>
2025-06-13 13:30:33,671 [DEBUG][       Thread-256445][   transport.py][1871] : server lang: <none>
2025-06-13 13:30:33,671 [DEBUG][       Thread-256445][   transport.py][1871] : kex follows: False
2025-06-13 13:30:33,671 [DEBUG][       Thread-256445][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 13:30:33,671 [DEBUG][       Thread-256445][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 13:30:33,671 [DEBUG][       Thread-256445][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 13:30:33,671 [DEBUG][       Thread-256445][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 13:30:33,671 [DEBUG][       Thread-256445][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 13:30:33,671 [DEBUG][       Thread-256445][   transport.py][1871] : Compression: none
2025-06-13 13:30:33,671 [DEBUG][       Thread-256445][   transport.py][1871] : === End of kex handshake ===
2025-06-13 13:30:33,730 [DEBUG][       Thread-256445][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 13:30:33,730 [DEBUG][       Thread-256445][   transport.py][1871] : Switch to new keys ...
2025-06-13 13:30:33,731 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 13:30:33,731 [DEBUG][       Thread-256445][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 13:30:33,732 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 13:30:33,786 [DEBUG][       Thread-256445][   transport.py][1871] : userauth is OK
2025-06-13 13:30:33,786 [DEBUG][       Thread-256445][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 13:30:33,786 [DEBUG][       Thread-256445][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 13:30:33,786 [DEBUG][       Thread-256445][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 13:30:33,787 [DEBUG][       Thread-256445][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 13:30:33,822 [ INFO][       Thread-256445][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 13:30:33,823 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 13:30:33,823 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 13:30:34,825 [DEBUG][       Thread-256445][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 13:30:34,825 [DEBUG][       Thread-256445][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 13:30:34,876 [DEBUG][       Thread-256445][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 13:30:34,876 [DEBUG][       Thread-256445][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 13:30:34,894 [DEBUG][       Thread-256445][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 13:30:34,903 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 13:30:34,904 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 13:30:34,913 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 13:30:34,922 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 13:30:34,922 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 13:30:34,922 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 13:30:34,930 [DEBUG][       Thread-256445][   transport.py][1871] : EOF in transport thread
2025-06-13 13:30:36,554 [DEBUG][Thread-256447 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:30:37,636 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:30:37,638 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:30:38,891 [DEBUG][Thread-256448 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:30:44,933 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 13:30:44,933 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 13:30:44,942 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 13:30:44,945 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 13:30:45,404 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 13, 30, 26), 16.68, 31.61, 0.0, 15.02, 13.87, 0, 0, 0, 2, 0, 0),)
2025-06-13 13:30:45,404 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 13:30:26
2025-06-13 13:30:45,483 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 13:30:45,490 [DEBUG][       Thread-256449][   transport.py][1871] : starting thread (client mode): 0x842050c0
2025-06-13 13:30:45,490 [DEBUG][       Thread-256449][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 13:30:45,511 [DEBUG][       Thread-256449][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 13:30:45,511 [ INFO][       Thread-256449][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 13:30:45,514 [DEBUG][       Thread-256449][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 13:30:45,515 [DEBUG][       Thread-256449][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 13:30:45,515 [DEBUG][       Thread-256449][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 13:30:45,515 [DEBUG][       Thread-256449][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:30:45,515 [DEBUG][       Thread-256449][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:30:45,515 [DEBUG][       Thread-256449][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:30:45,515 [DEBUG][       Thread-256449][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:30:45,515 [DEBUG][       Thread-256449][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 13:30:45,515 [DEBUG][       Thread-256449][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 13:30:45,515 [DEBUG][       Thread-256449][   transport.py][1871] : client lang: <none>
2025-06-13 13:30:45,515 [DEBUG][       Thread-256449][   transport.py][1871] : server lang: <none>
2025-06-13 13:30:45,515 [DEBUG][       Thread-256449][   transport.py][1871] : kex follows: False
2025-06-13 13:30:45,515 [DEBUG][       Thread-256449][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 13:30:45,515 [DEBUG][       Thread-256449][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 13:30:45,515 [DEBUG][       Thread-256449][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 13:30:45,515 [DEBUG][       Thread-256449][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 13:30:45,515 [DEBUG][       Thread-256449][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 13:30:45,515 [DEBUG][       Thread-256449][   transport.py][1871] : Compression: none
2025-06-13 13:30:45,515 [DEBUG][       Thread-256449][   transport.py][1871] : === End of kex handshake ===
2025-06-13 13:30:45,533 [DEBUG][       Thread-256449][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 13:30:45,533 [DEBUG][       Thread-256449][   transport.py][1871] : Switch to new keys ...
2025-06-13 13:30:45,534 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 13:30:45,534 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 13:30:45,534 [DEBUG][       Thread-256449][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 13:30:45,536 [DEBUG][       Thread-256449][   transport.py][1871] : userauth is OK
2025-06-13 13:30:45,560 [ INFO][       Thread-256449][   transport.py][1871] : Authentication (password) successful!
2025-06-13 13:30:45,561 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 13:30:46,192 [DEBUG][       Thread-256449][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 13:30:46,192 [DEBUG][       Thread-256449][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 13:30:46,233 [DEBUG][       Thread-256449][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 13:30:46,233 [DEBUG][       Thread-256449][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 13:30:46,237 [DEBUG][       Thread-256449][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 13:30:46,250 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 13:30:46,250 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 13:30:46,252 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 13:30:46,255 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 13:30:46,261 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 13:30:46,263 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 13:30:46,263 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 13:30:46,264 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 13:30:46,264 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.479104 -999.00  +13.10  24.26     35   -1.80 1 1 1 1 1   888    0 16.23 93.16 ----- 22.5 24.3 48.8 29.6 17.8 -31.0 16.6 -32.8 16.8 -31.8 18.1 -29.0
2025-06-13 13:30:46,264 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 13:30:46,264 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 13:30:46,265 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.479104
2025-06-13 13:30:46,265 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 13:30:46,266 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 13:30:46,266 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 13:30:46,266 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 13:30:46,266 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 13:30:46,266 [DEBUG][       Thread-256449][   transport.py][1871] : EOF in transport thread
2025-06-13 13:30:46,266 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T13:30:26', tmtdew=16.68, humidity=31.61, cloud=0.0, wind=15.02, temperature=13.87, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T11:29:54.586', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 13:30:46,350 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 13:30:46,360 [DEBUG][       Thread-256452][   transport.py][1871] : starting thread (client mode): 0x863a6e60
2025-06-13 13:30:46,360 [DEBUG][       Thread-256452][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 13:30:46,375 [DEBUG][       Thread-256452][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 13:30:46,375 [ INFO][       Thread-256452][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 13:30:46,383 [DEBUG][       Thread-256452][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 13:30:46,383 [DEBUG][       Thread-256452][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 13:30:46,383 [DEBUG][       Thread-256452][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 13:30:46,383 [DEBUG][       Thread-256452][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:30:46,383 [DEBUG][       Thread-256452][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:30:46,383 [DEBUG][       Thread-256452][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:30:46,383 [DEBUG][       Thread-256452][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:30:46,383 [DEBUG][       Thread-256452][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 13:30:46,383 [DEBUG][       Thread-256452][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 13:30:46,383 [DEBUG][       Thread-256452][   transport.py][1871] : client lang: <none>
2025-06-13 13:30:46,383 [DEBUG][       Thread-256452][   transport.py][1871] : server lang: <none>
2025-06-13 13:30:46,383 [DEBUG][       Thread-256452][   transport.py][1871] : kex follows: False
2025-06-13 13:30:46,383 [DEBUG][       Thread-256452][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 13:30:46,383 [DEBUG][       Thread-256452][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 13:30:46,383 [DEBUG][       Thread-256452][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 13:30:46,384 [DEBUG][       Thread-256452][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 13:30:46,384 [DEBUG][       Thread-256452][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 13:30:46,384 [DEBUG][       Thread-256452][   transport.py][1871] : Compression: none
2025-06-13 13:30:46,384 [DEBUG][       Thread-256452][   transport.py][1871] : === End of kex handshake ===
2025-06-13 13:30:46,446 [DEBUG][       Thread-256452][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 13:30:46,446 [DEBUG][       Thread-256452][   transport.py][1871] : Switch to new keys ...
2025-06-13 13:30:46,447 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 13:30:46,447 [DEBUG][       Thread-256452][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 13:30:46,448 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 13:30:46,502 [DEBUG][       Thread-256452][   transport.py][1871] : userauth is OK
2025-06-13 13:30:46,502 [DEBUG][       Thread-256452][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 13:30:46,502 [DEBUG][       Thread-256452][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 13:30:46,502 [DEBUG][       Thread-256452][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 13:30:46,502 [DEBUG][       Thread-256452][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 13:30:46,521 [ INFO][       Thread-256452][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 13:30:46,522 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 13:30:46,522 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 13:30:47,544 [DEBUG][       Thread-256452][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 13:30:47,545 [DEBUG][       Thread-256452][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 13:30:47,596 [DEBUG][       Thread-256452][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 13:30:47,596 [DEBUG][       Thread-256452][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 13:30:47,605 [DEBUG][       Thread-256452][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 13:30:47,613 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 13:30:47,613 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 13:30:47,622 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 13:30:47,630 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 13:30:47,631 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 13:30:47,631 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 13:30:47,639 [DEBUG][       Thread-256452][   transport.py][1871] : EOF in transport thread
2025-06-13 13:30:47,937 [DEBUG][Thread-256454 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:30:52,781 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:30:52,782 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:30:56,957 [DEBUG][Thread-256455 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:30:57,641 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 13:30:57,642 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 13:30:57,642 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 13:30:57,644 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 13:30:58,104 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 13, 30, 26), 16.68, 31.61, 0.0, 15.02, 13.87, 0, 0, 0, 2, 0, 0),)
2025-06-13 13:30:58,104 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 13:30:26
2025-06-13 13:30:58,183 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 13:30:58,187 [DEBUG][       Thread-256456][   transport.py][1871] : starting thread (client mode): 0x86369270
2025-06-13 13:30:58,187 [DEBUG][       Thread-256456][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 13:30:58,198 [DEBUG][       Thread-256456][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 13:30:58,198 [ INFO][       Thread-256456][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 13:30:58,200 [DEBUG][       Thread-256456][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 13:30:58,200 [DEBUG][       Thread-256456][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 13:30:58,200 [DEBUG][       Thread-256456][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 13:30:58,200 [DEBUG][       Thread-256456][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:30:58,200 [DEBUG][       Thread-256456][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:30:58,200 [DEBUG][       Thread-256456][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:30:58,200 [DEBUG][       Thread-256456][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:30:58,200 [DEBUG][       Thread-256456][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 13:30:58,200 [DEBUG][       Thread-256456][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 13:30:58,200 [DEBUG][       Thread-256456][   transport.py][1871] : client lang: <none>
2025-06-13 13:30:58,200 [DEBUG][       Thread-256456][   transport.py][1871] : server lang: <none>
2025-06-13 13:30:58,200 [DEBUG][       Thread-256456][   transport.py][1871] : kex follows: False
2025-06-13 13:30:58,200 [DEBUG][       Thread-256456][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 13:30:58,200 [DEBUG][       Thread-256456][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 13:30:58,200 [DEBUG][       Thread-256456][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 13:30:58,200 [DEBUG][       Thread-256456][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 13:30:58,200 [DEBUG][       Thread-256456][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 13:30:58,200 [DEBUG][       Thread-256456][   transport.py][1871] : Compression: none
2025-06-13 13:30:58,200 [DEBUG][       Thread-256456][   transport.py][1871] : === End of kex handshake ===
2025-06-13 13:30:58,210 [DEBUG][       Thread-256456][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 13:30:58,211 [DEBUG][       Thread-256456][   transport.py][1871] : Switch to new keys ...
2025-06-13 13:30:58,211 [DEBUG][       Thread-256456][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 13:30:58,211 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 13:30:58,211 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 13:30:58,212 [DEBUG][       Thread-256456][   transport.py][1871] : userauth is OK
2025-06-13 13:30:58,224 [ INFO][       Thread-256456][   transport.py][1871] : Authentication (password) successful!
2025-06-13 13:30:58,225 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 13:30:58,765 [DEBUG][       Thread-256456][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 13:30:58,765 [DEBUG][       Thread-256456][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 13:30:58,812 [DEBUG][       Thread-256456][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 13:30:58,812 [DEBUG][       Thread-256456][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 13:30:58,814 [DEBUG][       Thread-256456][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 13:30:58,827 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 13:30:58,827 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 13:30:58,828 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 13:30:58,829 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 13:30:58,834 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 13:30:58,835 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 13:30:58,835 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 13:30:58,835 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 13:30:58,835 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.479451 -999.00  +13.00  22.72     35   -1.90 1 1 1 1 1   888    0 16.57 106.92 ----- 18.3 22.7 38.6 28.8 17.8 -30.2 16.7 -32.0 16.7 -31.7 18.1 -28.8
2025-06-13 13:30:58,835 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 13:30:58,835 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 13:30:58,835 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.479451
2025-06-13 13:30:58,836 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 13:30:58,836 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 13:30:58,836 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 13:30:58,836 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 13:30:58,836 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 13:30:58,836 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T13:30:26', tmtdew=16.68, humidity=31.61, cloud=0.0, wind=15.02, temperature=13.87, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T11:30:24.566', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 13:30:58,836 [DEBUG][       Thread-256456][   transport.py][1871] : EOF in transport thread
2025-06-13 13:30:58,909 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 13:30:58,921 [DEBUG][       Thread-256459][   transport.py][1871] : starting thread (client mode): 0x842078b0
2025-06-13 13:30:58,921 [DEBUG][       Thread-256459][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 13:30:58,936 [DEBUG][       Thread-256459][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 13:30:58,936 [ INFO][       Thread-256459][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 13:30:58,944 [DEBUG][       Thread-256459][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 13:30:58,944 [DEBUG][       Thread-256459][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 13:30:58,944 [DEBUG][       Thread-256459][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 13:30:58,944 [DEBUG][       Thread-256459][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:30:58,944 [DEBUG][       Thread-256459][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:30:58,944 [DEBUG][       Thread-256459][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:30:58,944 [DEBUG][       Thread-256459][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:30:58,944 [DEBUG][       Thread-256459][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 13:30:58,944 [DEBUG][       Thread-256459][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 13:30:58,944 [DEBUG][       Thread-256459][   transport.py][1871] : client lang: <none>
2025-06-13 13:30:58,944 [DEBUG][       Thread-256459][   transport.py][1871] : server lang: <none>
2025-06-13 13:30:58,944 [DEBUG][       Thread-256459][   transport.py][1871] : kex follows: False
2025-06-13 13:30:58,944 [DEBUG][       Thread-256459][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 13:30:58,944 [DEBUG][       Thread-256459][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 13:30:58,944 [DEBUG][       Thread-256459][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 13:30:58,944 [DEBUG][       Thread-256459][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 13:30:58,944 [DEBUG][       Thread-256459][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 13:30:58,944 [DEBUG][       Thread-256459][   transport.py][1871] : Compression: none
2025-06-13 13:30:58,944 [DEBUG][       Thread-256459][   transport.py][1871] : === End of kex handshake ===
2025-06-13 13:30:59,000 [DEBUG][       Thread-256459][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 13:30:59,000 [DEBUG][       Thread-256459][   transport.py][1871] : Switch to new keys ...
2025-06-13 13:30:59,000 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 13:30:59,000 [DEBUG][       Thread-256459][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 13:30:59,000 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 13:30:59,062 [DEBUG][       Thread-256459][   transport.py][1871] : userauth is OK
2025-06-13 13:30:59,062 [DEBUG][       Thread-256459][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 13:30:59,062 [DEBUG][       Thread-256459][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 13:30:59,062 [DEBUG][       Thread-256459][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 13:30:59,062 [DEBUG][       Thread-256459][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 13:30:59,078 [ INFO][       Thread-256459][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 13:30:59,078 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 13:30:59,078 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 13:31:00,131 [DEBUG][       Thread-256459][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 13:31:00,131 [DEBUG][       Thread-256459][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 13:31:00,179 [DEBUG][       Thread-256459][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 13:31:00,179 [DEBUG][       Thread-256459][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 13:31:00,187 [DEBUG][       Thread-256459][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 13:31:00,195 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 13:31:00,195 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 13:31:00,203 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 13:31:00,211 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 13:31:00,211 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 13:31:00,211 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 13:31:00,218 [DEBUG][       Thread-256459][   transport.py][1871] : EOF in transport thread
2025-06-13 13:31:05,974 [DEBUG][Thread-256461 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:31:10,215 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 13:31:10,215 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 13:31:10,215 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 13:31:10,218 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 13:31:10,684 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 13, 30, 58), 16.64, 31.69, 0.0, 14.86, 13.87, 0, 0, 0, 2, 0, 0),)
2025-06-13 13:31:10,684 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 13:30:58
2025-06-13 13:31:10,762 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 13:31:10,767 [DEBUG][       Thread-256462][   transport.py][1871] : starting thread (client mode): 0x8636bee0
2025-06-13 13:31:10,767 [DEBUG][       Thread-256462][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 13:31:10,787 [DEBUG][       Thread-256462][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 13:31:10,787 [ INFO][       Thread-256462][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 13:31:10,789 [DEBUG][       Thread-256462][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 13:31:10,789 [DEBUG][       Thread-256462][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 13:31:10,789 [DEBUG][       Thread-256462][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 13:31:10,789 [DEBUG][       Thread-256462][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:31:10,789 [DEBUG][       Thread-256462][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:31:10,789 [DEBUG][       Thread-256462][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:31:10,789 [DEBUG][       Thread-256462][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:31:10,789 [DEBUG][       Thread-256462][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 13:31:10,789 [DEBUG][       Thread-256462][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 13:31:10,789 [DEBUG][       Thread-256462][   transport.py][1871] : client lang: <none>
2025-06-13 13:31:10,789 [DEBUG][       Thread-256462][   transport.py][1871] : server lang: <none>
2025-06-13 13:31:10,789 [DEBUG][       Thread-256462][   transport.py][1871] : kex follows: False
2025-06-13 13:31:10,790 [DEBUG][       Thread-256462][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 13:31:10,790 [DEBUG][       Thread-256462][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 13:31:10,790 [DEBUG][       Thread-256462][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 13:31:10,790 [DEBUG][       Thread-256462][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 13:31:10,790 [DEBUG][       Thread-256462][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 13:31:10,790 [DEBUG][       Thread-256462][   transport.py][1871] : Compression: none
2025-06-13 13:31:10,790 [DEBUG][       Thread-256462][   transport.py][1871] : === End of kex handshake ===
2025-06-13 13:31:10,808 [DEBUG][       Thread-256462][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 13:31:10,809 [DEBUG][       Thread-256462][   transport.py][1871] : Switch to new keys ...
2025-06-13 13:31:10,809 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 13:31:10,810 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 13:31:10,810 [DEBUG][       Thread-256462][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 13:31:10,811 [DEBUG][       Thread-256462][   transport.py][1871] : userauth is OK
2025-06-13 13:31:10,824 [ INFO][       Thread-256462][   transport.py][1871] : Authentication (password) successful!
2025-06-13 13:31:10,825 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 13:31:11,433 [DEBUG][       Thread-256462][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 13:31:11,433 [DEBUG][       Thread-256462][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 13:31:11,477 [DEBUG][       Thread-256462][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 13:31:11,477 [DEBUG][       Thread-256462][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 13:31:11,481 [DEBUG][       Thread-256462][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 13:31:11,490 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 13:31:11,490 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 13:31:11,492 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 13:31:11,494 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 13:31:11,499 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 13:31:11,501 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 13:31:11,501 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 13:31:11,502 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 13:31:11,502 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.479451 -999.00  +13.00  22.72     35   -1.90 1 1 1 1 1   888    0 16.57 106.92 ----- 18.3 22.7 38.6 28.8 17.8 -30.2 16.7 -32.0 16.7 -31.7 18.1 -28.8
2025-06-13 13:31:11,502 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 13:31:11,502 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 13:31:11,502 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.479451
2025-06-13 13:31:11,503 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 13:31:11,503 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 13:31:11,503 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 13:31:11,503 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 13:31:11,503 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 13:31:11,504 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T13:30:58', tmtdew=16.64, humidity=31.69, cloud=0.0, wind=14.86, temperature=13.87, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T11:30:24.566', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 13:31:11,505 [DEBUG][       Thread-256462][   transport.py][1871] : EOF in transport thread
2025-06-13 13:31:11,587 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 13:31:11,599 [DEBUG][       Thread-256465][   transport.py][1871] : starting thread (client mode): 0x868c85e0
2025-06-13 13:31:11,599 [DEBUG][       Thread-256465][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 13:31:11,615 [DEBUG][       Thread-256465][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 13:31:11,615 [ INFO][       Thread-256465][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 13:31:11,623 [DEBUG][       Thread-256465][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 13:31:11,624 [DEBUG][       Thread-256465][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 13:31:11,624 [DEBUG][       Thread-256465][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 13:31:11,624 [DEBUG][       Thread-256465][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:31:11,624 [DEBUG][       Thread-256465][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:31:11,624 [DEBUG][       Thread-256465][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:31:11,624 [DEBUG][       Thread-256465][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:31:11,624 [DEBUG][       Thread-256465][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 13:31:11,624 [DEBUG][       Thread-256465][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 13:31:11,624 [DEBUG][       Thread-256465][   transport.py][1871] : client lang: <none>
2025-06-13 13:31:11,624 [DEBUG][       Thread-256465][   transport.py][1871] : server lang: <none>
2025-06-13 13:31:11,624 [DEBUG][       Thread-256465][   transport.py][1871] : kex follows: False
2025-06-13 13:31:11,624 [DEBUG][       Thread-256465][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 13:31:11,624 [DEBUG][       Thread-256465][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 13:31:11,624 [DEBUG][       Thread-256465][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 13:31:11,624 [DEBUG][       Thread-256465][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 13:31:11,624 [DEBUG][       Thread-256465][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 13:31:11,624 [DEBUG][       Thread-256465][   transport.py][1871] : Compression: none
2025-06-13 13:31:11,625 [DEBUG][       Thread-256465][   transport.py][1871] : === End of kex handshake ===
2025-06-13 13:31:11,682 [DEBUG][       Thread-256465][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 13:31:11,683 [DEBUG][       Thread-256465][   transport.py][1871] : Switch to new keys ...
2025-06-13 13:31:11,683 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 13:31:11,684 [DEBUG][       Thread-256465][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 13:31:11,685 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 13:31:11,738 [DEBUG][       Thread-256465][   transport.py][1871] : userauth is OK
2025-06-13 13:31:11,738 [DEBUG][       Thread-256465][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 13:31:11,738 [DEBUG][       Thread-256465][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 13:31:11,738 [DEBUG][       Thread-256465][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 13:31:11,738 [DEBUG][       Thread-256465][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 13:31:11,757 [ INFO][       Thread-256465][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 13:31:11,757 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 13:31:11,758 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 13:31:12,749 [DEBUG][       Thread-256465][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 13:31:12,749 [DEBUG][       Thread-256465][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 13:31:12,800 [DEBUG][       Thread-256465][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 13:31:12,800 [DEBUG][       Thread-256465][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 13:31:12,809 [DEBUG][       Thread-256465][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 13:31:12,819 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 13:31:12,819 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 13:31:12,830 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 13:31:12,844 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 13:31:12,844 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 13:31:12,845 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 13:31:12,855 [DEBUG][       Thread-256465][   transport.py][1871] : EOF in transport thread
2025-06-13 13:31:14,999 [DEBUG][Thread-256467 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:31:15,331 [DEBUG][Thread-256468 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:31:22,855 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 13:31:22,856 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 13:31:22,856 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 13:31:22,859 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 13:31:23,308 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 13, 30, 58), 16.64, 31.69, 0.0, 14.86, 13.87, 0, 0, 0, 2, 0, 0),)
2025-06-13 13:31:23,308 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 13:30:58
2025-06-13 13:31:23,387 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 13:31:23,390 [DEBUG][       Thread-256469][   transport.py][1871] : starting thread (client mode): 0x8636b7f0
2025-06-13 13:31:23,391 [DEBUG][       Thread-256469][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 13:31:23,411 [DEBUG][       Thread-256469][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 13:31:23,411 [ INFO][       Thread-256469][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 13:31:23,415 [DEBUG][       Thread-256469][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 13:31:23,415 [DEBUG][       Thread-256469][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 13:31:23,415 [DEBUG][       Thread-256469][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 13:31:23,415 [DEBUG][       Thread-256469][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:31:23,415 [DEBUG][       Thread-256469][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:31:23,415 [DEBUG][       Thread-256469][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:31:23,415 [DEBUG][       Thread-256469][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:31:23,415 [DEBUG][       Thread-256469][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 13:31:23,415 [DEBUG][       Thread-256469][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 13:31:23,415 [DEBUG][       Thread-256469][   transport.py][1871] : client lang: <none>
2025-06-13 13:31:23,415 [DEBUG][       Thread-256469][   transport.py][1871] : server lang: <none>
2025-06-13 13:31:23,415 [DEBUG][       Thread-256469][   transport.py][1871] : kex follows: False
2025-06-13 13:31:23,415 [DEBUG][       Thread-256469][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 13:31:23,415 [DEBUG][       Thread-256469][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 13:31:23,415 [DEBUG][       Thread-256469][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 13:31:23,415 [DEBUG][       Thread-256469][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 13:31:23,415 [DEBUG][       Thread-256469][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 13:31:23,415 [DEBUG][       Thread-256469][   transport.py][1871] : Compression: none
2025-06-13 13:31:23,415 [DEBUG][       Thread-256469][   transport.py][1871] : === End of kex handshake ===
2025-06-13 13:31:23,431 [DEBUG][       Thread-256469][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 13:31:23,431 [DEBUG][       Thread-256469][   transport.py][1871] : Switch to new keys ...
2025-06-13 13:31:23,431 [DEBUG][       Thread-256469][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 13:31:23,431 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 13:31:23,431 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 13:31:23,432 [DEBUG][       Thread-256469][   transport.py][1871] : userauth is OK
2025-06-13 13:31:23,455 [ INFO][       Thread-256469][   transport.py][1871] : Authentication (password) successful!
2025-06-13 13:31:23,455 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 13:31:24,034 [DEBUG][Thread-256471 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:31:24,087 [DEBUG][       Thread-256469][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 13:31:24,087 [DEBUG][       Thread-256469][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 13:31:24,129 [DEBUG][       Thread-256469][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 13:31:24,129 [DEBUG][       Thread-256469][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 13:31:24,132 [DEBUG][       Thread-256469][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 13:31:24,144 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 13:31:24,144 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 13:31:24,147 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 13:31:24,149 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 13:31:24,154 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 13:31:24,156 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 13:31:24,157 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 13:31:24,157 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 13:31:24,157 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.479451 -999.00  +13.00  22.72     35   -1.90 1 1 1 1 1   888    0 16.57 106.92 ----- 18.3 22.7 38.6 28.8 17.8 -30.2 16.7 -32.0 16.7 -31.7 18.1 -28.8
2025-06-13 13:31:24,158 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 13:31:24,158 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 13:31:24,158 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.479451
2025-06-13 13:31:24,158 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 13:31:24,158 [DEBUG][       Thread-256469][   transport.py][1871] : EOF in transport thread
2025-06-13 13:31:24,159 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 13:31:24,160 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 13:31:24,160 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 13:31:24,160 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 13:31:24,160 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T13:30:58', tmtdew=16.64, humidity=31.69, cloud=0.0, wind=14.86, temperature=13.87, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T11:30:24.566', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 13:31:24,243 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 13:31:24,252 [DEBUG][       Thread-256473][   transport.py][1871] : starting thread (client mode): 0x868c8070
2025-06-13 13:31:24,252 [DEBUG][       Thread-256473][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 13:31:24,271 [DEBUG][       Thread-256473][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 13:31:24,271 [ INFO][       Thread-256473][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 13:31:24,283 [DEBUG][       Thread-256473][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 13:31:24,283 [DEBUG][       Thread-256473][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 13:31:24,283 [DEBUG][       Thread-256473][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 13:31:24,283 [DEBUG][       Thread-256473][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:31:24,283 [DEBUG][       Thread-256473][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:31:24,283 [DEBUG][       Thread-256473][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:31:24,284 [DEBUG][       Thread-256473][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:31:24,284 [DEBUG][       Thread-256473][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 13:31:24,284 [DEBUG][       Thread-256473][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 13:31:24,284 [DEBUG][       Thread-256473][   transport.py][1871] : client lang: <none>
2025-06-13 13:31:24,284 [DEBUG][       Thread-256473][   transport.py][1871] : server lang: <none>
2025-06-13 13:31:24,284 [DEBUG][       Thread-256473][   transport.py][1871] : kex follows: False
2025-06-13 13:31:24,284 [DEBUG][       Thread-256473][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 13:31:24,284 [DEBUG][       Thread-256473][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 13:31:24,284 [DEBUG][       Thread-256473][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 13:31:24,284 [DEBUG][       Thread-256473][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 13:31:24,284 [DEBUG][       Thread-256473][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 13:31:24,284 [DEBUG][       Thread-256473][   transport.py][1871] : Compression: none
2025-06-13 13:31:24,284 [DEBUG][       Thread-256473][   transport.py][1871] : === End of kex handshake ===
2025-06-13 13:31:24,342 [DEBUG][       Thread-256473][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 13:31:24,343 [DEBUG][       Thread-256473][   transport.py][1871] : Switch to new keys ...
2025-06-13 13:31:24,343 [DEBUG][       Thread-256473][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 13:31:24,344 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 13:31:24,344 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 13:31:24,398 [DEBUG][       Thread-256473][   transport.py][1871] : userauth is OK
2025-06-13 13:31:24,398 [DEBUG][       Thread-256473][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 13:31:24,398 [DEBUG][       Thread-256473][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 13:31:24,398 [DEBUG][       Thread-256473][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 13:31:24,399 [DEBUG][       Thread-256473][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 13:31:24,421 [ INFO][       Thread-256473][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 13:31:24,422 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 13:31:24,422 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 13:31:25,480 [DEBUG][       Thread-256473][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 13:31:25,480 [DEBUG][       Thread-256473][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 13:31:25,528 [DEBUG][       Thread-256473][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 13:31:25,528 [DEBUG][       Thread-256473][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 13:31:25,537 [DEBUG][       Thread-256473][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 13:31:25,547 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 13:31:25,548 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 13:31:25,557 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 13:31:25,566 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 13:31:25,567 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 13:31:25,567 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 13:31:25,576 [DEBUG][       Thread-256473][   transport.py][1871] : EOF in transport thread
2025-06-13 13:31:33,056 [DEBUG][Thread-256475 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:31:35,576 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 13:31:35,576 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 13:31:35,576 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 13:31:35,579 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 13:31:36,032 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 13, 31, 29), 16.88, 31.03, 0.0, 18.12, 13.65, 0, 0, 0, 2, 0, 0),)
2025-06-13 13:31:36,032 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 13:31:29
2025-06-13 13:31:36,110 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 13:31:36,116 [DEBUG][       Thread-256476][   transport.py][1871] : starting thread (client mode): 0x863931f0
2025-06-13 13:31:36,116 [DEBUG][       Thread-256476][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 13:31:36,135 [DEBUG][       Thread-256476][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 13:31:36,135 [ INFO][       Thread-256476][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 13:31:36,139 [DEBUG][       Thread-256476][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 13:31:36,139 [DEBUG][       Thread-256476][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 13:31:36,139 [DEBUG][       Thread-256476][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 13:31:36,139 [DEBUG][       Thread-256476][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:31:36,139 [DEBUG][       Thread-256476][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:31:36,139 [DEBUG][       Thread-256476][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:31:36,139 [DEBUG][       Thread-256476][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:31:36,139 [DEBUG][       Thread-256476][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 13:31:36,139 [DEBUG][       Thread-256476][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 13:31:36,139 [DEBUG][       Thread-256476][   transport.py][1871] : client lang: <none>
2025-06-13 13:31:36,139 [DEBUG][       Thread-256476][   transport.py][1871] : server lang: <none>
2025-06-13 13:31:36,139 [DEBUG][       Thread-256476][   transport.py][1871] : kex follows: False
2025-06-13 13:31:36,139 [DEBUG][       Thread-256476][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 13:31:36,139 [DEBUG][       Thread-256476][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 13:31:36,139 [DEBUG][       Thread-256476][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 13:31:36,139 [DEBUG][       Thread-256476][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 13:31:36,139 [DEBUG][       Thread-256476][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 13:31:36,139 [DEBUG][       Thread-256476][   transport.py][1871] : Compression: none
2025-06-13 13:31:36,139 [DEBUG][       Thread-256476][   transport.py][1871] : === End of kex handshake ===
2025-06-13 13:31:36,156 [DEBUG][       Thread-256476][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 13:31:36,156 [DEBUG][       Thread-256476][   transport.py][1871] : Switch to new keys ...
2025-06-13 13:31:36,157 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 13:31:36,157 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 13:31:36,158 [DEBUG][       Thread-256476][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 13:31:36,158 [DEBUG][       Thread-256476][   transport.py][1871] : userauth is OK
2025-06-13 13:31:36,183 [ INFO][       Thread-256476][   transport.py][1871] : Authentication (password) successful!
2025-06-13 13:31:36,184 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 13:31:36,779 [DEBUG][       Thread-256476][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 13:31:36,779 [DEBUG][       Thread-256476][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 13:31:36,821 [DEBUG][       Thread-256476][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 13:31:36,821 [DEBUG][       Thread-256476][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 13:31:36,823 [DEBUG][       Thread-256476][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 13:31:36,834 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 13:31:36,835 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 13:31:36,836 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 13:31:36,837 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 13:31:36,840 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 13:31:36,840 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 13:31:36,840 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 13:31:36,841 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 13:31:36,841 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.480145 -999.00  +13.40  19.98     35   -1.50 1 1 1 1 1   888    0 16.56 103.59 ----- 22.3 20.0 41.2 26.6 17.9 -30.8 16.6 -32.3 16.8 -29.8 18.1 -28.3
2025-06-13 13:31:36,841 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 13:31:36,841 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 13:31:36,841 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.480145
2025-06-13 13:31:36,841 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 13:31:36,841 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 13:31:36,841 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 13:31:36,841 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 13:31:36,841 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 13:31:36,841 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T13:31:29', tmtdew=16.88, humidity=31.03, cloud=0.0, wind=18.12, temperature=13.65, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T11:31:24.528', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 13:31:36,842 [DEBUG][       Thread-256476][   transport.py][1871] : EOF in transport thread
2025-06-13 13:31:36,912 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 13:31:36,923 [DEBUG][       Thread-256479][   transport.py][1871] : starting thread (client mode): 0x863bd000
2025-06-13 13:31:36,923 [DEBUG][       Thread-256479][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 13:31:36,938 [DEBUG][       Thread-256479][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 13:31:36,938 [ INFO][       Thread-256479][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 13:31:36,946 [DEBUG][       Thread-256479][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 13:31:36,946 [DEBUG][       Thread-256479][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 13:31:36,946 [DEBUG][       Thread-256479][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 13:31:36,946 [DEBUG][       Thread-256479][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:31:36,946 [DEBUG][       Thread-256479][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:31:36,946 [DEBUG][       Thread-256479][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:31:36,946 [DEBUG][       Thread-256479][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:31:36,946 [DEBUG][       Thread-256479][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 13:31:36,946 [DEBUG][       Thread-256479][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 13:31:36,946 [DEBUG][       Thread-256479][   transport.py][1871] : client lang: <none>
2025-06-13 13:31:36,946 [DEBUG][       Thread-256479][   transport.py][1871] : server lang: <none>
2025-06-13 13:31:36,947 [DEBUG][       Thread-256479][   transport.py][1871] : kex follows: False
2025-06-13 13:31:36,947 [DEBUG][       Thread-256479][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 13:31:36,947 [DEBUG][       Thread-256479][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 13:31:36,947 [DEBUG][       Thread-256479][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 13:31:36,947 [DEBUG][       Thread-256479][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 13:31:36,947 [DEBUG][       Thread-256479][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 13:31:36,947 [DEBUG][       Thread-256479][   transport.py][1871] : Compression: none
2025-06-13 13:31:36,947 [DEBUG][       Thread-256479][   transport.py][1871] : === End of kex handshake ===
2025-06-13 13:31:37,006 [DEBUG][       Thread-256479][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 13:31:37,007 [DEBUG][       Thread-256479][   transport.py][1871] : Switch to new keys ...
2025-06-13 13:31:37,008 [DEBUG][       Thread-256479][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 13:31:37,008 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 13:31:37,009 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 13:31:37,062 [DEBUG][       Thread-256479][   transport.py][1871] : userauth is OK
2025-06-13 13:31:37,062 [DEBUG][       Thread-256479][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 13:31:37,062 [DEBUG][       Thread-256479][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 13:31:37,062 [DEBUG][       Thread-256479][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 13:31:37,062 [DEBUG][       Thread-256479][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 13:31:37,081 [ INFO][       Thread-256479][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 13:31:37,082 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 13:31:37,082 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 13:31:37,704 [DEBUG][Thread-256481 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:31:38,075 [DEBUG][       Thread-256479][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 13:31:38,075 [DEBUG][       Thread-256479][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 13:31:38,124 [DEBUG][       Thread-256479][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 13:31:38,124 [DEBUG][       Thread-256479][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 13:31:38,134 [DEBUG][       Thread-256479][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 13:31:38,143 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 13:31:38,143 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 13:31:38,152 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 13:31:38,161 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 13:31:38,162 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 13:31:38,162 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 13:31:38,170 [DEBUG][       Thread-256479][   transport.py][1871] : EOF in transport thread
2025-06-13 13:31:38,755 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:31:38,756 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:31:42,075 [DEBUG][Thread-256482 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:31:48,173 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 13:31:48,173 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 13:31:48,173 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 13:31:48,176 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 13:31:48,625 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 13, 31, 29), 16.88, 31.03, 0.0, 18.12, 13.65, 0, 0, 0, 2, 0, 0),)
2025-06-13 13:31:48,625 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 13:31:29
2025-06-13 13:31:48,704 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 13:31:48,709 [DEBUG][       Thread-256483][   transport.py][1871] : starting thread (client mode): 0x86392470
2025-06-13 13:31:48,709 [DEBUG][       Thread-256483][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 13:31:48,730 [DEBUG][       Thread-256483][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 13:31:48,730 [ INFO][       Thread-256483][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 13:31:48,733 [DEBUG][       Thread-256483][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 13:31:48,733 [DEBUG][       Thread-256483][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 13:31:48,733 [DEBUG][       Thread-256483][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 13:31:48,733 [DEBUG][       Thread-256483][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:31:48,733 [DEBUG][       Thread-256483][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:31:48,733 [DEBUG][       Thread-256483][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:31:48,734 [DEBUG][       Thread-256483][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:31:48,734 [DEBUG][       Thread-256483][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 13:31:48,734 [DEBUG][       Thread-256483][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 13:31:48,734 [DEBUG][       Thread-256483][   transport.py][1871] : client lang: <none>
2025-06-13 13:31:48,734 [DEBUG][       Thread-256483][   transport.py][1871] : server lang: <none>
2025-06-13 13:31:48,734 [DEBUG][       Thread-256483][   transport.py][1871] : kex follows: False
2025-06-13 13:31:48,734 [DEBUG][       Thread-256483][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 13:31:48,734 [DEBUG][       Thread-256483][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 13:31:48,734 [DEBUG][       Thread-256483][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 13:31:48,734 [DEBUG][       Thread-256483][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 13:31:48,734 [DEBUG][       Thread-256483][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 13:31:48,734 [DEBUG][       Thread-256483][   transport.py][1871] : Compression: none
2025-06-13 13:31:48,734 [DEBUG][       Thread-256483][   transport.py][1871] : === End of kex handshake ===
2025-06-13 13:31:48,751 [DEBUG][       Thread-256483][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 13:31:48,751 [DEBUG][       Thread-256483][   transport.py][1871] : Switch to new keys ...
2025-06-13 13:31:48,752 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 13:31:48,752 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 13:31:48,753 [DEBUG][       Thread-256483][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 13:31:48,753 [DEBUG][       Thread-256483][   transport.py][1871] : userauth is OK
2025-06-13 13:31:48,767 [ INFO][       Thread-256483][   transport.py][1871] : Authentication (password) successful!
2025-06-13 13:31:48,767 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 13:31:49,392 [DEBUG][       Thread-256483][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 13:31:49,392 [DEBUG][       Thread-256483][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 13:31:49,433 [DEBUG][       Thread-256483][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 13:31:49,433 [DEBUG][       Thread-256483][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 13:31:49,436 [DEBUG][       Thread-256483][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 13:31:49,449 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 13:31:49,449 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 13:31:49,451 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 13:31:49,453 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 13:31:49,458 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 13:31:49,461 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 13:31:49,461 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 13:31:49,461 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 13:31:49,462 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.480145 -999.00  +13.40  19.98     35   -1.50 1 1 1 1 1   888    0 16.56 103.59 ----- 22.3 20.0 41.2 26.6 17.9 -30.8 16.6 -32.3 16.8 -29.8 18.1 -28.3
2025-06-13 13:31:49,462 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 13:31:49,462 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 13:31:49,462 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.480145
2025-06-13 13:31:49,462 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 13:31:49,463 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 13:31:49,463 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 13:31:49,463 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 13:31:49,463 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 13:31:49,463 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T13:31:29', tmtdew=16.88, humidity=31.03, cloud=0.0, wind=18.12, temperature=13.65, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T11:31:24.528', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 13:31:49,463 [DEBUG][       Thread-256483][   transport.py][1871] : EOF in transport thread
2025-06-13 13:31:49,547 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 13:31:49,557 [DEBUG][       Thread-256486][   transport.py][1871] : starting thread (client mode): 0x868c8400
2025-06-13 13:31:49,557 [DEBUG][       Thread-256486][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 13:31:49,577 [DEBUG][       Thread-256486][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 13:31:49,577 [ INFO][       Thread-256486][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 13:31:49,587 [DEBUG][       Thread-256486][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 13:31:49,587 [DEBUG][       Thread-256486][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 13:31:49,587 [DEBUG][       Thread-256486][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 13:31:49,587 [DEBUG][       Thread-256486][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:31:49,588 [DEBUG][       Thread-256486][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:31:49,588 [DEBUG][       Thread-256486][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:31:49,588 [DEBUG][       Thread-256486][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:31:49,588 [DEBUG][       Thread-256486][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 13:31:49,588 [DEBUG][       Thread-256486][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 13:31:49,588 [DEBUG][       Thread-256486][   transport.py][1871] : client lang: <none>
2025-06-13 13:31:49,588 [DEBUG][       Thread-256486][   transport.py][1871] : server lang: <none>
2025-06-13 13:31:49,588 [DEBUG][       Thread-256486][   transport.py][1871] : kex follows: False
2025-06-13 13:31:49,588 [DEBUG][       Thread-256486][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 13:31:49,588 [DEBUG][       Thread-256486][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 13:31:49,588 [DEBUG][       Thread-256486][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 13:31:49,588 [DEBUG][       Thread-256486][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 13:31:49,588 [DEBUG][       Thread-256486][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 13:31:49,588 [DEBUG][       Thread-256486][   transport.py][1871] : Compression: none
2025-06-13 13:31:49,588 [DEBUG][       Thread-256486][   transport.py][1871] : === End of kex handshake ===
2025-06-13 13:31:49,645 [DEBUG][       Thread-256486][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 13:31:49,646 [DEBUG][       Thread-256486][   transport.py][1871] : Switch to new keys ...
2025-06-13 13:31:49,647 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 13:31:49,647 [DEBUG][       Thread-256486][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 13:31:49,648 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 13:31:49,703 [DEBUG][       Thread-256486][   transport.py][1871] : userauth is OK
2025-06-13 13:31:49,703 [DEBUG][       Thread-256486][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 13:31:49,703 [DEBUG][       Thread-256486][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 13:31:49,703 [DEBUG][       Thread-256486][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 13:31:49,703 [DEBUG][       Thread-256486][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 13:31:49,722 [ INFO][       Thread-256486][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 13:31:49,723 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 13:31:49,723 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 13:31:50,769 [DEBUG][       Thread-256486][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 13:31:50,769 [DEBUG][       Thread-256486][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 13:31:50,820 [DEBUG][       Thread-256486][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 13:31:50,820 [DEBUG][       Thread-256486][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 13:31:50,834 [DEBUG][       Thread-256486][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 13:31:50,847 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 13:31:50,848 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 13:31:50,857 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 13:31:50,866 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 13:31:50,866 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 13:31:50,867 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 13:31:50,875 [DEBUG][       Thread-256486][   transport.py][1871] : EOF in transport thread
2025-06-13 13:31:51,103 [DEBUG][Thread-256488 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:31:52,920 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:31:52,921 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:32:00,125 [DEBUG][Thread-256489 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:32:00,876 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 13:32:00,876 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 13:32:00,876 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 13:32:00,879 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 13:32:01,345 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 13, 31, 29), 16.88, 31.03, 0.0, 18.12, 13.65, 0, 0, 0, 2, 0, 0),)
2025-06-13 13:32:01,345 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 13:31:29
2025-06-13 13:32:01,423 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 13:32:01,429 [DEBUG][       Thread-256490][   transport.py][1871] : starting thread (client mode): 0x842052a0
2025-06-13 13:32:01,429 [DEBUG][       Thread-256490][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 13:32:01,449 [DEBUG][       Thread-256490][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 13:32:01,449 [ INFO][       Thread-256490][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 13:32:01,451 [DEBUG][       Thread-256490][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 13:32:01,451 [DEBUG][       Thread-256490][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 13:32:01,451 [DEBUG][       Thread-256490][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 13:32:01,451 [DEBUG][       Thread-256490][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:32:01,451 [DEBUG][       Thread-256490][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:32:01,451 [DEBUG][       Thread-256490][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:32:01,451 [DEBUG][       Thread-256490][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:32:01,451 [DEBUG][       Thread-256490][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 13:32:01,451 [DEBUG][       Thread-256490][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 13:32:01,451 [DEBUG][       Thread-256490][   transport.py][1871] : client lang: <none>
2025-06-13 13:32:01,451 [DEBUG][       Thread-256490][   transport.py][1871] : server lang: <none>
2025-06-13 13:32:01,451 [DEBUG][       Thread-256490][   transport.py][1871] : kex follows: False
2025-06-13 13:32:01,451 [DEBUG][       Thread-256490][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 13:32:01,451 [DEBUG][       Thread-256490][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 13:32:01,451 [DEBUG][       Thread-256490][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 13:32:01,451 [DEBUG][       Thread-256490][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 13:32:01,451 [DEBUG][       Thread-256490][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 13:32:01,451 [DEBUG][       Thread-256490][   transport.py][1871] : Compression: none
2025-06-13 13:32:01,451 [DEBUG][       Thread-256490][   transport.py][1871] : === End of kex handshake ===
2025-06-13 13:32:01,468 [DEBUG][       Thread-256490][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 13:32:01,468 [DEBUG][       Thread-256490][   transport.py][1871] : Switch to new keys ...
2025-06-13 13:32:01,469 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 13:32:01,469 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 13:32:01,469 [DEBUG][       Thread-256490][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 13:32:01,470 [DEBUG][       Thread-256490][   transport.py][1871] : userauth is OK
2025-06-13 13:32:01,494 [ INFO][       Thread-256490][   transport.py][1871] : Authentication (password) successful!
2025-06-13 13:32:01,495 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 13:32:02,070 [DEBUG][       Thread-256490][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 13:32:02,070 [DEBUG][       Thread-256490][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 13:32:02,112 [DEBUG][       Thread-256490][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 13:32:02,113 [DEBUG][       Thread-256490][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 13:32:02,115 [DEBUG][       Thread-256490][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 13:32:02,121 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 13:32:02,121 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 13:32:02,123 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 13:32:02,125 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 13:32:02,130 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 13:32:02,132 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 13:32:02,132 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 13:32:02,132 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 13:32:02,133 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.480145 -999.00  +13.40  19.98     35   -1.50 1 1 1 1 1   888    0 16.56 103.59 ----- 22.3 20.0 41.2 26.6 17.9 -30.8 16.6 -32.3 16.8 -29.8 18.1 -28.3
2025-06-13 13:32:02,133 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 13:32:02,133 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 13:32:02,133 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.480145
2025-06-13 13:32:02,133 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 13:32:02,134 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 13:32:02,134 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 13:32:02,134 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 13:32:02,134 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 13:32:02,134 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T13:31:29', tmtdew=16.88, humidity=31.03, cloud=0.0, wind=18.12, temperature=13.65, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T11:31:24.528', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 13:32:02,135 [DEBUG][       Thread-256490][   transport.py][1871] : EOF in transport thread
2025-06-13 13:32:02,217 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 13:32:02,229 [DEBUG][       Thread-256493][   transport.py][1871] : starting thread (client mode): 0x86393010
2025-06-13 13:32:02,229 [DEBUG][       Thread-256493][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 13:32:02,245 [DEBUG][       Thread-256493][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 13:32:02,245 [ INFO][       Thread-256493][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 13:32:02,252 [DEBUG][       Thread-256493][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 13:32:02,252 [DEBUG][       Thread-256493][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 13:32:02,252 [DEBUG][       Thread-256493][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 13:32:02,252 [DEBUG][       Thread-256493][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:32:02,252 [DEBUG][       Thread-256493][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:32:02,252 [DEBUG][       Thread-256493][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:32:02,252 [DEBUG][       Thread-256493][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:32:02,252 [DEBUG][       Thread-256493][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 13:32:02,252 [DEBUG][       Thread-256493][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 13:32:02,252 [DEBUG][       Thread-256493][   transport.py][1871] : client lang: <none>
2025-06-13 13:32:02,252 [DEBUG][       Thread-256493][   transport.py][1871] : server lang: <none>
2025-06-13 13:32:02,252 [DEBUG][       Thread-256493][   transport.py][1871] : kex follows: False
2025-06-13 13:32:02,252 [DEBUG][       Thread-256493][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 13:32:02,252 [DEBUG][       Thread-256493][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 13:32:02,252 [DEBUG][       Thread-256493][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 13:32:02,252 [DEBUG][       Thread-256493][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 13:32:02,252 [DEBUG][       Thread-256493][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 13:32:02,252 [DEBUG][       Thread-256493][   transport.py][1871] : Compression: none
2025-06-13 13:32:02,252 [DEBUG][       Thread-256493][   transport.py][1871] : === End of kex handshake ===
2025-06-13 13:32:02,308 [DEBUG][       Thread-256493][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 13:32:02,308 [DEBUG][       Thread-256493][   transport.py][1871] : Switch to new keys ...
2025-06-13 13:32:02,308 [DEBUG][       Thread-256493][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 13:32:02,308 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 13:32:02,309 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 13:32:02,365 [DEBUG][       Thread-256493][   transport.py][1871] : userauth is OK
2025-06-13 13:32:02,365 [DEBUG][       Thread-256493][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 13:32:02,365 [DEBUG][       Thread-256493][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 13:32:02,365 [DEBUG][       Thread-256493][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 13:32:02,365 [DEBUG][       Thread-256493][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 13:32:02,379 [ INFO][       Thread-256493][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 13:32:02,379 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 13:32:02,379 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 13:32:03,414 [DEBUG][       Thread-256493][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 13:32:03,414 [DEBUG][       Thread-256493][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 13:32:03,463 [DEBUG][       Thread-256493][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 13:32:03,463 [DEBUG][       Thread-256493][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 13:32:03,472 [DEBUG][       Thread-256493][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 13:32:03,479 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 13:32:03,479 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 13:32:03,487 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 13:32:03,495 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 13:32:03,495 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 13:32:03,495 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 13:32:03,503 [DEBUG][       Thread-256493][   transport.py][1871] : EOF in transport thread
2025-06-13 13:32:09,148 [DEBUG][Thread-256495 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:32:13,505 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 13:32:13,506 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 13:32:13,506 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 13:32:13,507 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 13:32:13,952 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 13, 32, 1), 16.76, 31.26, 0.0, 18.62, 13.63, 0, 0, 0, 2, 0, 0),)
2025-06-13 13:32:13,952 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 13:32:01
2025-06-13 13:32:14,031 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 13:32:14,037 [DEBUG][       Thread-256496][   transport.py][1871] : starting thread (client mode): 0x86390850
2025-06-13 13:32:14,037 [DEBUG][       Thread-256496][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 13:32:14,049 [DEBUG][       Thread-256496][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 13:32:14,049 [ INFO][       Thread-256496][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 13:32:14,052 [DEBUG][       Thread-256496][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 13:32:14,052 [DEBUG][       Thread-256496][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 13:32:14,052 [DEBUG][       Thread-256496][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 13:32:14,052 [DEBUG][       Thread-256496][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:32:14,052 [DEBUG][       Thread-256496][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:32:14,052 [DEBUG][       Thread-256496][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:32:14,052 [DEBUG][       Thread-256496][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:32:14,052 [DEBUG][       Thread-256496][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 13:32:14,053 [DEBUG][       Thread-256496][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 13:32:14,053 [DEBUG][       Thread-256496][   transport.py][1871] : client lang: <none>
2025-06-13 13:32:14,053 [DEBUG][       Thread-256496][   transport.py][1871] : server lang: <none>
2025-06-13 13:32:14,053 [DEBUG][       Thread-256496][   transport.py][1871] : kex follows: False
2025-06-13 13:32:14,053 [DEBUG][       Thread-256496][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 13:32:14,053 [DEBUG][       Thread-256496][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 13:32:14,053 [DEBUG][       Thread-256496][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 13:32:14,053 [DEBUG][       Thread-256496][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 13:32:14,053 [DEBUG][       Thread-256496][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 13:32:14,053 [DEBUG][       Thread-256496][   transport.py][1871] : Compression: none
2025-06-13 13:32:14,053 [DEBUG][       Thread-256496][   transport.py][1871] : === End of kex handshake ===
2025-06-13 13:32:14,066 [DEBUG][       Thread-256496][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 13:32:14,067 [DEBUG][       Thread-256496][   transport.py][1871] : Switch to new keys ...
2025-06-13 13:32:14,067 [DEBUG][       Thread-256496][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 13:32:14,067 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 13:32:14,067 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 13:32:14,067 [DEBUG][       Thread-256496][   transport.py][1871] : userauth is OK
2025-06-13 13:32:14,080 [ INFO][       Thread-256496][   transport.py][1871] : Authentication (password) successful!
2025-06-13 13:32:14,081 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 13:32:14,732 [DEBUG][       Thread-256496][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 13:32:14,732 [DEBUG][       Thread-256496][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 13:32:14,773 [DEBUG][       Thread-256496][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 13:32:14,773 [DEBUG][       Thread-256496][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 13:32:14,777 [DEBUG][       Thread-256496][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 13:32:14,788 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 13:32:14,789 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 13:32:14,791 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 13:32:14,793 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 13:32:14,799 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 13:32:14,801 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 13:32:14,801 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 13:32:14,801 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 13:32:14,802 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.480493 -999.00  +13.40  18.86     34   -1.80 1 1 1 1 1   888    0 17.01 116.17 ----- 21.4 18.9 41.2 24.3 17.8 -31.5 16.6 -32.0 16.9 -29.8 18.1 -28.1
2025-06-13 13:32:14,802 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 13:32:14,802 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 13:32:14,802 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.480493
2025-06-13 13:32:14,802 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 13:32:14,803 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 13:32:14,803 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 13:32:14,803 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 13:32:14,803 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 13:32:14,803 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T13:32:01', tmtdew=16.76, humidity=31.26, cloud=0.0, wind=18.62, temperature=13.63, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T11:31:54.595', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 13:32:14,803 [DEBUG][       Thread-256496][   transport.py][1871] : EOF in transport thread
2025-06-13 13:32:14,887 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 13:32:14,899 [DEBUG][       Thread-256499][   transport.py][1871] : starting thread (client mode): 0x86368f70
2025-06-13 13:32:14,899 [DEBUG][       Thread-256499][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 13:32:14,914 [DEBUG][       Thread-256499][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 13:32:14,914 [ INFO][       Thread-256499][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 13:32:14,922 [DEBUG][       Thread-256499][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 13:32:14,922 [DEBUG][       Thread-256499][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 13:32:14,922 [DEBUG][       Thread-256499][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 13:32:14,922 [DEBUG][       Thread-256499][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:32:14,922 [DEBUG][       Thread-256499][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:32:14,922 [DEBUG][       Thread-256499][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:32:14,922 [DEBUG][       Thread-256499][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:32:14,922 [DEBUG][       Thread-256499][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 13:32:14,922 [DEBUG][       Thread-256499][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 13:32:14,922 [DEBUG][       Thread-256499][   transport.py][1871] : client lang: <none>
2025-06-13 13:32:14,922 [DEBUG][       Thread-256499][   transport.py][1871] : server lang: <none>
2025-06-13 13:32:14,922 [DEBUG][       Thread-256499][   transport.py][1871] : kex follows: False
2025-06-13 13:32:14,922 [DEBUG][       Thread-256499][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 13:32:14,923 [DEBUG][       Thread-256499][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 13:32:14,923 [DEBUG][       Thread-256499][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 13:32:14,923 [DEBUG][       Thread-256499][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 13:32:14,923 [DEBUG][       Thread-256499][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 13:32:14,923 [DEBUG][       Thread-256499][   transport.py][1871] : Compression: none
2025-06-13 13:32:14,923 [DEBUG][       Thread-256499][   transport.py][1871] : === End of kex handshake ===
2025-06-13 13:32:14,982 [DEBUG][       Thread-256499][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 13:32:14,982 [DEBUG][       Thread-256499][   transport.py][1871] : Switch to new keys ...
2025-06-13 13:32:14,983 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 13:32:14,983 [DEBUG][       Thread-256499][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 13:32:14,984 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 13:32:15,039 [DEBUG][       Thread-256499][   transport.py][1871] : userauth is OK
2025-06-13 13:32:15,039 [DEBUG][       Thread-256499][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 13:32:15,039 [DEBUG][       Thread-256499][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 13:32:15,039 [DEBUG][       Thread-256499][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 13:32:15,039 [DEBUG][       Thread-256499][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 13:32:15,066 [ INFO][       Thread-256499][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 13:32:15,066 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 13:32:15,066 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 13:32:15,390 [DEBUG][Thread-256501 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:32:16,074 [DEBUG][       Thread-256499][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 13:32:16,074 [DEBUG][       Thread-256499][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 13:32:16,124 [DEBUG][       Thread-256499][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 13:32:16,124 [DEBUG][       Thread-256499][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 13:32:16,134 [DEBUG][       Thread-256499][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 13:32:16,143 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 13:32:16,143 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 13:32:16,152 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 13:32:16,162 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 13:32:16,162 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 13:32:16,162 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 13:32:16,171 [DEBUG][       Thread-256499][   transport.py][1871] : EOF in transport thread
2025-06-13 13:32:18,170 [DEBUG][Thread-256502 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:32:26,164 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 13:32:26,164 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 13:32:26,164 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 13:32:26,167 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 13:32:26,613 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 13, 32, 1), 16.76, 31.26, 0.0, 18.62, 13.63, 0, 0, 0, 2, 0, 0),)
2025-06-13 13:32:26,613 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 13:32:01
2025-06-13 13:32:26,693 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 13:32:26,697 [DEBUG][       Thread-256503][   transport.py][1871] : starting thread (client mode): 0x86390ac0
2025-06-13 13:32:26,697 [DEBUG][       Thread-256503][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 13:32:26,717 [DEBUG][       Thread-256503][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 13:32:26,717 [ INFO][       Thread-256503][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 13:32:26,721 [DEBUG][       Thread-256503][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 13:32:26,721 [DEBUG][       Thread-256503][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 13:32:26,721 [DEBUG][       Thread-256503][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 13:32:26,721 [DEBUG][       Thread-256503][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:32:26,721 [DEBUG][       Thread-256503][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:32:26,721 [DEBUG][       Thread-256503][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:32:26,721 [DEBUG][       Thread-256503][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:32:26,721 [DEBUG][       Thread-256503][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 13:32:26,721 [DEBUG][       Thread-256503][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 13:32:26,721 [DEBUG][       Thread-256503][   transport.py][1871] : client lang: <none>
2025-06-13 13:32:26,721 [DEBUG][       Thread-256503][   transport.py][1871] : server lang: <none>
2025-06-13 13:32:26,721 [DEBUG][       Thread-256503][   transport.py][1871] : kex follows: False
2025-06-13 13:32:26,721 [DEBUG][       Thread-256503][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 13:32:26,722 [DEBUG][       Thread-256503][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 13:32:26,722 [DEBUG][       Thread-256503][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 13:32:26,722 [DEBUG][       Thread-256503][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 13:32:26,722 [DEBUG][       Thread-256503][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 13:32:26,722 [DEBUG][       Thread-256503][   transport.py][1871] : Compression: none
2025-06-13 13:32:26,722 [DEBUG][       Thread-256503][   transport.py][1871] : === End of kex handshake ===
2025-06-13 13:32:26,730 [DEBUG][       Thread-256503][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 13:32:26,731 [DEBUG][       Thread-256503][   transport.py][1871] : Switch to new keys ...
2025-06-13 13:32:26,731 [DEBUG][       Thread-256503][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 13:32:26,732 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 13:32:26,732 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 13:32:26,733 [DEBUG][       Thread-256503][   transport.py][1871] : userauth is OK
2025-06-13 13:32:26,746 [ INFO][       Thread-256503][   transport.py][1871] : Authentication (password) successful!
2025-06-13 13:32:26,747 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 13:32:27,202 [DEBUG][Thread-256505 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:32:27,387 [DEBUG][       Thread-256503][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 13:32:27,388 [DEBUG][       Thread-256503][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 13:32:27,429 [DEBUG][       Thread-256503][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 13:32:27,429 [DEBUG][       Thread-256503][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 13:32:27,432 [DEBUG][       Thread-256503][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 13:32:27,445 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 13:32:27,446 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 13:32:27,448 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 13:32:27,450 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 13:32:27,456 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 13:32:27,458 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 13:32:27,458 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 13:32:27,459 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 13:32:27,459 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.480493 -999.00  +13.40  18.86     34   -1.80 1 1 1 1 1   888    0 17.01 116.17 ----- 21.4 18.9 41.2 24.3 17.8 -31.5 16.6 -32.0 16.9 -29.8 18.1 -28.1
2025-06-13 13:32:27,459 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 13:32:27,459 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 13:32:27,459 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.480493
2025-06-13 13:32:27,460 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 13:32:27,460 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 13:32:27,460 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 13:32:27,461 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 13:32:27,461 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 13:32:27,461 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T13:32:01', tmtdew=16.76, humidity=31.26, cloud=0.0, wind=18.62, temperature=13.63, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T11:31:54.595', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 13:32:27,462 [DEBUG][       Thread-256503][   transport.py][1871] : EOF in transport thread
2025-06-13 13:32:27,544 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 13:32:27,553 [DEBUG][       Thread-256507][   transport.py][1871] : starting thread (client mode): 0x868c85e0
2025-06-13 13:32:27,553 [DEBUG][       Thread-256507][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 13:32:27,568 [DEBUG][       Thread-256507][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 13:32:27,568 [ INFO][       Thread-256507][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 13:32:27,576 [DEBUG][       Thread-256507][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 13:32:27,576 [DEBUG][       Thread-256507][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 13:32:27,576 [DEBUG][       Thread-256507][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 13:32:27,576 [DEBUG][       Thread-256507][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:32:27,576 [DEBUG][       Thread-256507][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:32:27,576 [DEBUG][       Thread-256507][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:32:27,576 [DEBUG][       Thread-256507][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:32:27,576 [DEBUG][       Thread-256507][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 13:32:27,576 [DEBUG][       Thread-256507][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 13:32:27,576 [DEBUG][       Thread-256507][   transport.py][1871] : client lang: <none>
2025-06-13 13:32:27,576 [DEBUG][       Thread-256507][   transport.py][1871] : server lang: <none>
2025-06-13 13:32:27,576 [DEBUG][       Thread-256507][   transport.py][1871] : kex follows: False
2025-06-13 13:32:27,576 [DEBUG][       Thread-256507][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 13:32:27,576 [DEBUG][       Thread-256507][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 13:32:27,576 [DEBUG][       Thread-256507][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 13:32:27,577 [DEBUG][       Thread-256507][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 13:32:27,577 [DEBUG][       Thread-256507][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 13:32:27,577 [DEBUG][       Thread-256507][   transport.py][1871] : Compression: none
2025-06-13 13:32:27,577 [DEBUG][       Thread-256507][   transport.py][1871] : === End of kex handshake ===
2025-06-13 13:32:27,633 [DEBUG][       Thread-256507][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 13:32:27,634 [DEBUG][       Thread-256507][   transport.py][1871] : Switch to new keys ...
2025-06-13 13:32:27,635 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 13:32:27,635 [DEBUG][       Thread-256507][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 13:32:27,636 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 13:32:27,690 [DEBUG][       Thread-256507][   transport.py][1871] : userauth is OK
2025-06-13 13:32:27,690 [DEBUG][       Thread-256507][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 13:32:27,690 [DEBUG][       Thread-256507][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 13:32:27,690 [DEBUG][       Thread-256507][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 13:32:27,691 [DEBUG][       Thread-256507][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 13:32:27,709 [ INFO][       Thread-256507][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 13:32:27,710 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 13:32:27,710 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 13:32:28,745 [DEBUG][       Thread-256507][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 13:32:28,745 [DEBUG][       Thread-256507][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 13:32:28,795 [DEBUG][       Thread-256507][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 13:32:28,796 [DEBUG][       Thread-256507][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 13:32:28,804 [DEBUG][       Thread-256507][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 13:32:28,813 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 13:32:28,813 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 13:32:28,824 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 13:32:28,834 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 13:32:28,834 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 13:32:28,834 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 13:32:28,843 [DEBUG][       Thread-256507][   transport.py][1871] : EOF in transport thread
2025-06-13 13:32:36,223 [DEBUG][Thread-256509 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:32:38,806 [DEBUG][Thread-256510 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:32:38,836 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 13:32:38,836 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 13:32:38,836 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 13:32:38,839 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 13:32:39,284 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 13, 32, 33), 16.92, 30.94, 0.0, 22.29, 13.48, 0, 0, 0, 2, 0, 0),)
2025-06-13 13:32:39,284 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 13:32:33
2025-06-13 13:32:39,363 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 13:32:39,369 [DEBUG][       Thread-256511][   transport.py][1871] : starting thread (client mode): 0x863933d0
2025-06-13 13:32:39,369 [DEBUG][       Thread-256511][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 13:32:39,388 [DEBUG][       Thread-256511][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 13:32:39,388 [ INFO][       Thread-256511][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 13:32:39,391 [DEBUG][       Thread-256511][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 13:32:39,392 [DEBUG][       Thread-256511][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 13:32:39,392 [DEBUG][       Thread-256511][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 13:32:39,392 [DEBUG][       Thread-256511][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:32:39,392 [DEBUG][       Thread-256511][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:32:39,392 [DEBUG][       Thread-256511][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:32:39,392 [DEBUG][       Thread-256511][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:32:39,392 [DEBUG][       Thread-256511][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 13:32:39,392 [DEBUG][       Thread-256511][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 13:32:39,392 [DEBUG][       Thread-256511][   transport.py][1871] : client lang: <none>
2025-06-13 13:32:39,392 [DEBUG][       Thread-256511][   transport.py][1871] : server lang: <none>
2025-06-13 13:32:39,392 [DEBUG][       Thread-256511][   transport.py][1871] : kex follows: False
2025-06-13 13:32:39,392 [DEBUG][       Thread-256511][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 13:32:39,392 [DEBUG][       Thread-256511][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 13:32:39,392 [DEBUG][       Thread-256511][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 13:32:39,392 [DEBUG][       Thread-256511][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 13:32:39,392 [DEBUG][       Thread-256511][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 13:32:39,393 [DEBUG][       Thread-256511][   transport.py][1871] : Compression: none
2025-06-13 13:32:39,393 [DEBUG][       Thread-256511][   transport.py][1871] : === End of kex handshake ===
2025-06-13 13:32:39,402 [DEBUG][       Thread-256511][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 13:32:39,402 [DEBUG][       Thread-256511][   transport.py][1871] : Switch to new keys ...
2025-06-13 13:32:39,403 [DEBUG][       Thread-256511][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 13:32:39,403 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 13:32:39,403 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 13:32:39,404 [DEBUG][       Thread-256511][   transport.py][1871] : userauth is OK
2025-06-13 13:32:39,417 [ INFO][       Thread-256511][   transport.py][1871] : Authentication (password) successful!
2025-06-13 13:32:39,418 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 13:32:39,880 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:32:39,882 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:32:40,053 [DEBUG][       Thread-256511][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 13:32:40,053 [DEBUG][       Thread-256511][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 13:32:40,097 [DEBUG][       Thread-256511][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 13:32:40,097 [DEBUG][       Thread-256511][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 13:32:40,100 [DEBUG][       Thread-256511][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 13:32:40,113 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 13:32:40,114 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 13:32:40,115 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 13:32:40,117 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 13:32:40,123 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 13:32:40,125 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 13:32:40,126 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 13:32:40,126 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 13:32:40,126 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.480840 -999.00  +13.40  22.06     34   -2.00 1 1 1 1 1   888    0 16.71 118.60 ----- 20.1 22.1 35.6 25.7 17.9 -30.4 16.7 -31.5 16.9 -30.5 18.1 -28.3
2025-06-13 13:32:40,127 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 13:32:40,127 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 13:32:40,127 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.480840
2025-06-13 13:32:40,127 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 13:32:40,128 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 13:32:40,128 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 13:32:40,128 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 13:32:40,128 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 13:32:40,128 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T13:32:33', tmtdew=16.92, humidity=30.94, cloud=0.0, wind=22.29, temperature=13.48, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T11:32:24.576', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 13:32:40,129 [DEBUG][       Thread-256511][   transport.py][1871] : EOF in transport thread
2025-06-13 13:32:40,212 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 13:32:40,223 [DEBUG][       Thread-256514][   transport.py][1871] : starting thread (client mode): 0x863a4cd0
2025-06-13 13:32:40,224 [DEBUG][       Thread-256514][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 13:32:40,243 [DEBUG][       Thread-256514][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 13:32:40,243 [ INFO][       Thread-256514][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 13:32:40,258 [DEBUG][       Thread-256514][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 13:32:40,259 [DEBUG][       Thread-256514][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 13:32:40,259 [DEBUG][       Thread-256514][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 13:32:40,259 [DEBUG][       Thread-256514][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:32:40,259 [DEBUG][       Thread-256514][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:32:40,259 [DEBUG][       Thread-256514][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:32:40,259 [DEBUG][       Thread-256514][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:32:40,259 [DEBUG][       Thread-256514][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 13:32:40,259 [DEBUG][       Thread-256514][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 13:32:40,259 [DEBUG][       Thread-256514][   transport.py][1871] : client lang: <none>
2025-06-13 13:32:40,259 [DEBUG][       Thread-256514][   transport.py][1871] : server lang: <none>
2025-06-13 13:32:40,259 [DEBUG][       Thread-256514][   transport.py][1871] : kex follows: False
2025-06-13 13:32:40,259 [DEBUG][       Thread-256514][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 13:32:40,259 [DEBUG][       Thread-256514][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 13:32:40,259 [DEBUG][       Thread-256514][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 13:32:40,259 [DEBUG][       Thread-256514][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 13:32:40,260 [DEBUG][       Thread-256514][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 13:32:40,260 [DEBUG][       Thread-256514][   transport.py][1871] : Compression: none
2025-06-13 13:32:40,260 [DEBUG][       Thread-256514][   transport.py][1871] : === End of kex handshake ===
2025-06-13 13:32:40,318 [DEBUG][       Thread-256514][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 13:32:40,318 [DEBUG][       Thread-256514][   transport.py][1871] : Switch to new keys ...
2025-06-13 13:32:40,319 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 13:32:40,320 [DEBUG][       Thread-256514][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 13:32:40,320 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 13:32:40,374 [DEBUG][       Thread-256514][   transport.py][1871] : userauth is OK
2025-06-13 13:32:40,374 [DEBUG][       Thread-256514][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 13:32:40,374 [DEBUG][       Thread-256514][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 13:32:40,374 [DEBUG][       Thread-256514][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 13:32:40,374 [DEBUG][       Thread-256514][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 13:32:40,394 [ INFO][       Thread-256514][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 13:32:40,394 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 13:32:40,395 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 13:32:41,417 [DEBUG][       Thread-256514][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 13:32:41,418 [DEBUG][       Thread-256514][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 13:32:41,468 [DEBUG][       Thread-256514][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 13:32:41,468 [DEBUG][       Thread-256514][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 13:32:41,478 [DEBUG][       Thread-256514][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 13:32:41,486 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 13:32:41,487 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 13:32:41,495 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 13:32:41,505 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 13:32:41,505 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 13:32:41,506 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 13:32:41,514 [DEBUG][       Thread-256514][   transport.py][1871] : EOF in transport thread
2025-06-13 13:32:45,247 [DEBUG][Thread-256516 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:32:51,515 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 13:32:51,516 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 13:32:51,516 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 13:32:51,519 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 13:32:51,964 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 13, 32, 33), 16.92, 30.94, 0.0, 22.29, 13.48, 0, 0, 0, 2, 0, 0),)
2025-06-13 13:32:51,964 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 13:32:33
2025-06-13 13:32:52,044 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 13:32:52,048 [DEBUG][       Thread-256517][   transport.py][1871] : starting thread (client mode): 0x863922c0
2025-06-13 13:32:52,048 [DEBUG][       Thread-256517][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 13:32:52,070 [DEBUG][       Thread-256517][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 13:32:52,070 [ INFO][       Thread-256517][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 13:32:52,073 [DEBUG][       Thread-256517][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 13:32:52,073 [DEBUG][       Thread-256517][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 13:32:52,073 [DEBUG][       Thread-256517][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 13:32:52,073 [DEBUG][       Thread-256517][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:32:52,073 [DEBUG][       Thread-256517][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:32:52,073 [DEBUG][       Thread-256517][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:32:52,073 [DEBUG][       Thread-256517][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:32:52,073 [DEBUG][       Thread-256517][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 13:32:52,073 [DEBUG][       Thread-256517][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 13:32:52,073 [DEBUG][       Thread-256517][   transport.py][1871] : client lang: <none>
2025-06-13 13:32:52,073 [DEBUG][       Thread-256517][   transport.py][1871] : server lang: <none>
2025-06-13 13:32:52,073 [DEBUG][       Thread-256517][   transport.py][1871] : kex follows: False
2025-06-13 13:32:52,073 [DEBUG][       Thread-256517][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 13:32:52,073 [DEBUG][       Thread-256517][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 13:32:52,073 [DEBUG][       Thread-256517][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 13:32:52,074 [DEBUG][       Thread-256517][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 13:32:52,074 [DEBUG][       Thread-256517][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 13:32:52,074 [DEBUG][       Thread-256517][   transport.py][1871] : Compression: none
2025-06-13 13:32:52,074 [DEBUG][       Thread-256517][   transport.py][1871] : === End of kex handshake ===
2025-06-13 13:32:52,089 [DEBUG][       Thread-256517][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 13:32:52,090 [DEBUG][       Thread-256517][   transport.py][1871] : Switch to new keys ...
2025-06-13 13:32:52,090 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 13:32:52,090 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 13:32:52,091 [DEBUG][       Thread-256517][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 13:32:52,091 [DEBUG][       Thread-256517][   transport.py][1871] : userauth is OK
2025-06-13 13:32:52,116 [ INFO][       Thread-256517][   transport.py][1871] : Authentication (password) successful!
2025-06-13 13:32:52,117 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 13:32:52,751 [DEBUG][       Thread-256517][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 13:32:52,752 [DEBUG][       Thread-256517][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 13:32:52,793 [DEBUG][       Thread-256517][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 13:32:52,793 [DEBUG][       Thread-256517][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 13:32:52,796 [DEBUG][       Thread-256517][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 13:32:52,808 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 13:32:52,808 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 13:32:52,810 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 13:32:52,812 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 13:32:52,817 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 13:32:52,819 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 13:32:52,820 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 13:32:52,820 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 13:32:52,820 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.480840 -999.00  +13.40  22.06     34   -2.00 1 1 1 1 1   888    0 16.71 118.60 ----- 20.1 22.1 35.6 25.7 17.9 -30.4 16.7 -31.5 16.9 -30.5 18.1 -28.3
2025-06-13 13:32:52,820 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 13:32:52,821 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 13:32:52,821 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.480840
2025-06-13 13:32:52,821 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 13:32:52,822 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 13:32:52,822 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 13:32:52,822 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 13:32:52,822 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 13:32:52,822 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T13:32:33', tmtdew=16.92, humidity=30.94, cloud=0.0, wind=22.29, temperature=13.48, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T11:32:24.576', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 13:32:52,822 [DEBUG][       Thread-256517][   transport.py][1871] : EOF in transport thread
2025-06-13 13:32:52,905 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 13:32:52,915 [DEBUG][       Thread-256520][   transport.py][1871] : starting thread (client mode): 0x842052a0
2025-06-13 13:32:52,915 [DEBUG][       Thread-256520][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 13:32:52,930 [DEBUG][       Thread-256520][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 13:32:52,931 [ INFO][       Thread-256520][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 13:32:52,938 [DEBUG][       Thread-256520][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 13:32:52,938 [DEBUG][       Thread-256520][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 13:32:52,938 [DEBUG][       Thread-256520][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 13:32:52,938 [DEBUG][       Thread-256520][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:32:52,938 [DEBUG][       Thread-256520][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:32:52,938 [DEBUG][       Thread-256520][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:32:52,939 [DEBUG][       Thread-256520][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:32:52,939 [DEBUG][       Thread-256520][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 13:32:52,939 [DEBUG][       Thread-256520][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 13:32:52,939 [DEBUG][       Thread-256520][   transport.py][1871] : client lang: <none>
2025-06-13 13:32:52,939 [DEBUG][       Thread-256520][   transport.py][1871] : server lang: <none>
2025-06-13 13:32:52,939 [DEBUG][       Thread-256520][   transport.py][1871] : kex follows: False
2025-06-13 13:32:52,939 [DEBUG][       Thread-256520][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 13:32:52,939 [DEBUG][       Thread-256520][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 13:32:52,939 [DEBUG][       Thread-256520][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 13:32:52,939 [DEBUG][       Thread-256520][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 13:32:52,939 [DEBUG][       Thread-256520][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 13:32:52,939 [DEBUG][       Thread-256520][   transport.py][1871] : Compression: none
2025-06-13 13:32:52,939 [DEBUG][       Thread-256520][   transport.py][1871] : === End of kex handshake ===
2025-06-13 13:32:52,998 [DEBUG][       Thread-256520][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 13:32:52,998 [DEBUG][       Thread-256520][   transport.py][1871] : Switch to new keys ...
2025-06-13 13:32:52,999 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 13:32:52,999 [DEBUG][       Thread-256520][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 13:32:53,000 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 13:32:53,054 [DEBUG][       Thread-256520][   transport.py][1871] : userauth is OK
2025-06-13 13:32:53,054 [DEBUG][       Thread-256520][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 13:32:53,054 [DEBUG][       Thread-256520][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 13:32:53,054 [DEBUG][       Thread-256520][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 13:32:53,054 [DEBUG][       Thread-256520][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 13:32:53,059 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:32:53,060 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:32:53,073 [ INFO][       Thread-256520][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 13:32:53,073 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 13:32:53,074 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 13:32:54,073 [DEBUG][       Thread-256520][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 13:32:54,074 [DEBUG][       Thread-256520][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 13:32:54,124 [DEBUG][       Thread-256520][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 13:32:54,124 [DEBUG][       Thread-256520][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 13:32:54,133 [DEBUG][       Thread-256520][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 13:32:54,147 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 13:32:54,147 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 13:32:54,156 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 13:32:54,165 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 13:32:54,166 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 13:32:54,166 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 13:32:54,177 [DEBUG][       Thread-256520][   transport.py][1871] : EOF in transport thread
2025-06-13 13:32:54,282 [DEBUG][Thread-256522 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:33:03,302 [DEBUG][Thread-256523 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:33:04,176 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 13:33:04,177 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 13:33:04,177 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 13:33:04,180 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 13:33:04,623 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 13, 32, 33), 16.92, 30.94, 0.0, 22.29, 13.48, 0, 0, 0, 2, 0, 0),)
2025-06-13 13:33:04,623 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 13:32:33
2025-06-13 13:33:04,702 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 13:33:04,707 [DEBUG][       Thread-256524][   transport.py][1871] : starting thread (client mode): 0x86390940
2025-06-13 13:33:04,707 [DEBUG][       Thread-256524][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 13:33:04,728 [DEBUG][       Thread-256524][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 13:33:04,728 [ INFO][       Thread-256524][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 13:33:04,732 [DEBUG][       Thread-256524][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 13:33:04,732 [DEBUG][       Thread-256524][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 13:33:04,732 [DEBUG][       Thread-256524][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 13:33:04,732 [DEBUG][       Thread-256524][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:33:04,732 [DEBUG][       Thread-256524][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:33:04,732 [DEBUG][       Thread-256524][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:33:04,732 [DEBUG][       Thread-256524][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:33:04,733 [DEBUG][       Thread-256524][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 13:33:04,733 [DEBUG][       Thread-256524][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 13:33:04,733 [DEBUG][       Thread-256524][   transport.py][1871] : client lang: <none>
2025-06-13 13:33:04,733 [DEBUG][       Thread-256524][   transport.py][1871] : server lang: <none>
2025-06-13 13:33:04,733 [DEBUG][       Thread-256524][   transport.py][1871] : kex follows: False
2025-06-13 13:33:04,733 [DEBUG][       Thread-256524][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 13:33:04,733 [DEBUG][       Thread-256524][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 13:33:04,733 [DEBUG][       Thread-256524][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 13:33:04,733 [DEBUG][       Thread-256524][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 13:33:04,733 [DEBUG][       Thread-256524][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 13:33:04,733 [DEBUG][       Thread-256524][   transport.py][1871] : Compression: none
2025-06-13 13:33:04,733 [DEBUG][       Thread-256524][   transport.py][1871] : === End of kex handshake ===
2025-06-13 13:33:04,749 [DEBUG][       Thread-256524][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 13:33:04,750 [DEBUG][       Thread-256524][   transport.py][1871] : Switch to new keys ...
2025-06-13 13:33:04,750 [DEBUG][       Thread-256524][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 13:33:04,750 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 13:33:04,750 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 13:33:04,751 [DEBUG][       Thread-256524][   transport.py][1871] : userauth is OK
2025-06-13 13:33:04,765 [ INFO][       Thread-256524][   transport.py][1871] : Authentication (password) successful!
2025-06-13 13:33:04,766 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 13:33:05,392 [DEBUG][       Thread-256524][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 13:33:05,392 [DEBUG][       Thread-256524][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 13:33:05,433 [DEBUG][       Thread-256524][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 13:33:05,433 [DEBUG][       Thread-256524][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 13:33:05,436 [DEBUG][       Thread-256524][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 13:33:05,449 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 13:33:05,449 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 13:33:05,451 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 13:33:05,453 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 13:33:05,460 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 13:33:05,462 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 13:33:05,462 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 13:33:05,463 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 13:33:05,463 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.480840 -999.00  +13.40  22.06     34   -2.00 1 1 1 1 1   888    0 16.71 118.60 ----- 20.1 22.1 35.6 25.7 17.9 -30.4 16.7 -31.5 16.9 -30.5 18.1 -28.3
2025-06-13 13:33:05,463 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 13:33:05,463 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 13:33:05,463 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.480840
2025-06-13 13:33:05,464 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 13:33:05,464 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 13:33:05,464 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 13:33:05,465 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 13:33:05,465 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 13:33:05,465 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T13:32:33', tmtdew=16.92, humidity=30.94, cloud=0.0, wind=22.29, temperature=13.48, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T11:32:24.576', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 13:33:05,465 [DEBUG][       Thread-256524][   transport.py][1871] : EOF in transport thread
2025-06-13 13:33:05,548 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 13:33:05,559 [DEBUG][       Thread-256527][   transport.py][1871] : starting thread (client mode): 0x863c98a0
2025-06-13 13:33:05,559 [DEBUG][       Thread-256527][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 13:33:05,574 [DEBUG][       Thread-256527][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 13:33:05,574 [ INFO][       Thread-256527][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 13:33:05,586 [DEBUG][       Thread-256527][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 13:33:05,586 [DEBUG][       Thread-256527][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 13:33:05,586 [DEBUG][       Thread-256527][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 13:33:05,586 [DEBUG][       Thread-256527][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:33:05,586 [DEBUG][       Thread-256527][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:33:05,586 [DEBUG][       Thread-256527][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:33:05,586 [DEBUG][       Thread-256527][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:33:05,586 [DEBUG][       Thread-256527][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 13:33:05,586 [DEBUG][       Thread-256527][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 13:33:05,586 [DEBUG][       Thread-256527][   transport.py][1871] : client lang: <none>
2025-06-13 13:33:05,586 [DEBUG][       Thread-256527][   transport.py][1871] : server lang: <none>
2025-06-13 13:33:05,586 [DEBUG][       Thread-256527][   transport.py][1871] : kex follows: False
2025-06-13 13:33:05,586 [DEBUG][       Thread-256527][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 13:33:05,586 [DEBUG][       Thread-256527][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 13:33:05,586 [DEBUG][       Thread-256527][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 13:33:05,586 [DEBUG][       Thread-256527][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 13:33:05,586 [DEBUG][       Thread-256527][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 13:33:05,586 [DEBUG][       Thread-256527][   transport.py][1871] : Compression: none
2025-06-13 13:33:05,586 [DEBUG][       Thread-256527][   transport.py][1871] : === End of kex handshake ===
2025-06-13 13:33:05,640 [DEBUG][       Thread-256527][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 13:33:05,640 [DEBUG][       Thread-256527][   transport.py][1871] : Switch to new keys ...
2025-06-13 13:33:05,640 [DEBUG][       Thread-256527][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 13:33:05,640 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 13:33:05,640 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 13:33:05,697 [DEBUG][       Thread-256527][   transport.py][1871] : userauth is OK
2025-06-13 13:33:05,697 [DEBUG][       Thread-256527][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 13:33:05,697 [DEBUG][       Thread-256527][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 13:33:05,697 [DEBUG][       Thread-256527][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 13:33:05,697 [DEBUG][       Thread-256527][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 13:33:05,711 [ INFO][       Thread-256527][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 13:33:05,711 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 13:33:05,712 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 13:33:06,759 [DEBUG][       Thread-256527][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 13:33:06,759 [DEBUG][       Thread-256527][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 13:33:06,810 [DEBUG][       Thread-256527][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 13:33:06,810 [DEBUG][       Thread-256527][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 13:33:06,819 [DEBUG][       Thread-256527][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 13:33:06,830 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 13:33:06,830 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 13:33:06,840 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 13:33:06,849 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 13:33:06,849 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 13:33:06,849 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 13:33:06,859 [DEBUG][       Thread-256527][   transport.py][1871] : EOF in transport thread
2025-06-13 13:33:12,324 [DEBUG][Thread-256529 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:33:15,437 [DEBUG][Thread-256530 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:33:16,860 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 13:33:16,860 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 13:33:16,860 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 13:33:16,863 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 13:33:17,317 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 13, 33, 5), 16.89, 30.97, 0.0, 21.53, 13.43, 0, 0, 0, 2, 0, 0),)
2025-06-13 13:33:17,317 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 13:33:05
2025-06-13 13:33:17,396 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 13:33:17,401 [DEBUG][       Thread-256531][   transport.py][1871] : starting thread (client mode): 0x86392fb0
2025-06-13 13:33:17,401 [DEBUG][       Thread-256531][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 13:33:17,421 [DEBUG][       Thread-256531][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 13:33:17,421 [ INFO][       Thread-256531][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 13:33:17,425 [DEBUG][       Thread-256531][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 13:33:17,425 [DEBUG][       Thread-256531][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 13:33:17,425 [DEBUG][       Thread-256531][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 13:33:17,425 [DEBUG][       Thread-256531][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:33:17,425 [DEBUG][       Thread-256531][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:33:17,425 [DEBUG][       Thread-256531][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:33:17,425 [DEBUG][       Thread-256531][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:33:17,425 [DEBUG][       Thread-256531][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 13:33:17,425 [DEBUG][       Thread-256531][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 13:33:17,425 [DEBUG][       Thread-256531][   transport.py][1871] : client lang: <none>
2025-06-13 13:33:17,425 [DEBUG][       Thread-256531][   transport.py][1871] : server lang: <none>
2025-06-13 13:33:17,425 [DEBUG][       Thread-256531][   transport.py][1871] : kex follows: False
2025-06-13 13:33:17,425 [DEBUG][       Thread-256531][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 13:33:17,425 [DEBUG][       Thread-256531][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 13:33:17,425 [DEBUG][       Thread-256531][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 13:33:17,425 [DEBUG][       Thread-256531][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 13:33:17,425 [DEBUG][       Thread-256531][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 13:33:17,425 [DEBUG][       Thread-256531][   transport.py][1871] : Compression: none
2025-06-13 13:33:17,425 [DEBUG][       Thread-256531][   transport.py][1871] : === End of kex handshake ===
2025-06-13 13:33:17,442 [DEBUG][       Thread-256531][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 13:33:17,442 [DEBUG][       Thread-256531][   transport.py][1871] : Switch to new keys ...
2025-06-13 13:33:17,443 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 13:33:17,443 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 13:33:17,444 [DEBUG][       Thread-256531][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 13:33:17,444 [DEBUG][       Thread-256531][   transport.py][1871] : userauth is OK
2025-06-13 13:33:17,457 [ INFO][       Thread-256531][   transport.py][1871] : Authentication (password) successful!
2025-06-13 13:33:17,458 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 13:33:18,070 [DEBUG][       Thread-256531][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 13:33:18,070 [DEBUG][       Thread-256531][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 13:33:18,113 [DEBUG][       Thread-256531][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 13:33:18,113 [DEBUG][       Thread-256531][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 13:33:18,116 [DEBUG][       Thread-256531][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 13:33:18,130 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 13:33:18,130 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 13:33:18,132 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 13:33:18,134 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 13:33:18,139 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 13:33:18,141 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 13:33:18,142 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 13:33:18,142 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 13:33:18,142 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.481187 -999.00  +13.40  21.90     34   -1.70 1 1 1 1 1   888    0 17.55 135.67 ----- 18.5 21.9 19.4 23.2 17.9 -30.1 16.7 -31.7 16.9 -30.0 18.1 -27.9
2025-06-13 13:33:18,142 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 13:33:18,143 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 13:33:18,143 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.481187
2025-06-13 13:33:18,143 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 13:33:18,144 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 13:33:18,144 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 13:33:18,144 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 13:33:18,144 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 13:33:18,144 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T13:33:05', tmtdew=16.89, humidity=30.97, cloud=0.0, wind=21.53, temperature=13.43, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T11:32:54.557', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 13:33:18,144 [DEBUG][       Thread-256531][   transport.py][1871] : EOF in transport thread
2025-06-13 13:33:18,227 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 13:33:18,239 [DEBUG][       Thread-256534][   transport.py][1871] : starting thread (client mode): 0x8636b4f0
2025-06-13 13:33:18,239 [DEBUG][       Thread-256534][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 13:33:18,255 [DEBUG][       Thread-256534][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 13:33:18,255 [ INFO][       Thread-256534][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 13:33:18,263 [DEBUG][       Thread-256534][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 13:33:18,263 [DEBUG][       Thread-256534][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 13:33:18,263 [DEBUG][       Thread-256534][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 13:33:18,263 [DEBUG][       Thread-256534][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:33:18,263 [DEBUG][       Thread-256534][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:33:18,263 [DEBUG][       Thread-256534][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:33:18,263 [DEBUG][       Thread-256534][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:33:18,263 [DEBUG][       Thread-256534][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 13:33:18,263 [DEBUG][       Thread-256534][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 13:33:18,263 [DEBUG][       Thread-256534][   transport.py][1871] : client lang: <none>
2025-06-13 13:33:18,263 [DEBUG][       Thread-256534][   transport.py][1871] : server lang: <none>
2025-06-13 13:33:18,263 [DEBUG][       Thread-256534][   transport.py][1871] : kex follows: False
2025-06-13 13:33:18,263 [DEBUG][       Thread-256534][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 13:33:18,263 [DEBUG][       Thread-256534][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 13:33:18,263 [DEBUG][       Thread-256534][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 13:33:18,264 [DEBUG][       Thread-256534][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 13:33:18,264 [DEBUG][       Thread-256534][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 13:33:18,264 [DEBUG][       Thread-256534][   transport.py][1871] : Compression: none
2025-06-13 13:33:18,264 [DEBUG][       Thread-256534][   transport.py][1871] : === End of kex handshake ===
2025-06-13 13:33:18,322 [DEBUG][       Thread-256534][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 13:33:18,323 [DEBUG][       Thread-256534][   transport.py][1871] : Switch to new keys ...
2025-06-13 13:33:18,323 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 13:33:18,324 [DEBUG][       Thread-256534][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 13:33:18,325 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 13:33:18,378 [DEBUG][       Thread-256534][   transport.py][1871] : userauth is OK
2025-06-13 13:33:18,378 [DEBUG][       Thread-256534][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 13:33:18,379 [DEBUG][       Thread-256534][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 13:33:18,379 [DEBUG][       Thread-256534][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 13:33:18,379 [DEBUG][       Thread-256534][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 13:33:18,399 [ INFO][       Thread-256534][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 13:33:18,400 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 13:33:18,400 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 13:33:19,406 [DEBUG][       Thread-256534][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 13:33:19,406 [DEBUG][       Thread-256534][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 13:33:19,456 [DEBUG][       Thread-256534][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 13:33:19,456 [DEBUG][       Thread-256534][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 13:33:19,466 [DEBUG][       Thread-256534][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 13:33:19,475 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 13:33:19,475 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 13:33:19,484 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 13:33:19,492 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 13:33:19,492 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 13:33:19,493 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 13:33:19,500 [DEBUG][       Thread-256534][   transport.py][1871] : EOF in transport thread
2025-06-13 13:33:21,345 [DEBUG][Thread-256536 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:33:29,503 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 13:33:29,503 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 13:33:29,504 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 13:33:29,506 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 13:33:29,946 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 13, 33, 5), 16.89, 30.97, 0.0, 21.53, 13.43, 0, 0, 0, 2, 0, 0),)
2025-06-13 13:33:29,946 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 13:33:05
2025-06-13 13:33:30,026 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 13:33:30,031 [DEBUG][       Thread-256537][   transport.py][1871] : starting thread (client mode): 0x863bf310
2025-06-13 13:33:30,031 [DEBUG][       Thread-256537][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 13:33:30,052 [DEBUG][       Thread-256537][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 13:33:30,052 [ INFO][       Thread-256537][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 13:33:30,055 [DEBUG][       Thread-256537][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 13:33:30,055 [DEBUG][       Thread-256537][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 13:33:30,055 [DEBUG][       Thread-256537][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 13:33:30,055 [DEBUG][       Thread-256537][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:33:30,055 [DEBUG][       Thread-256537][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:33:30,055 [DEBUG][       Thread-256537][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:33:30,055 [DEBUG][       Thread-256537][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:33:30,055 [DEBUG][       Thread-256537][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 13:33:30,055 [DEBUG][       Thread-256537][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 13:33:30,055 [DEBUG][       Thread-256537][   transport.py][1871] : client lang: <none>
2025-06-13 13:33:30,055 [DEBUG][       Thread-256537][   transport.py][1871] : server lang: <none>
2025-06-13 13:33:30,055 [DEBUG][       Thread-256537][   transport.py][1871] : kex follows: False
2025-06-13 13:33:30,055 [DEBUG][       Thread-256537][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 13:33:30,055 [DEBUG][       Thread-256537][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 13:33:30,055 [DEBUG][       Thread-256537][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 13:33:30,055 [DEBUG][       Thread-256537][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 13:33:30,055 [DEBUG][       Thread-256537][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 13:33:30,055 [DEBUG][       Thread-256537][   transport.py][1871] : Compression: none
2025-06-13 13:33:30,055 [DEBUG][       Thread-256537][   transport.py][1871] : === End of kex handshake ===
2025-06-13 13:33:30,072 [DEBUG][       Thread-256537][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 13:33:30,073 [DEBUG][       Thread-256537][   transport.py][1871] : Switch to new keys ...
2025-06-13 13:33:30,073 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 13:33:30,074 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 13:33:30,074 [DEBUG][       Thread-256537][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 13:33:30,075 [DEBUG][       Thread-256537][   transport.py][1871] : userauth is OK
2025-06-13 13:33:30,100 [ INFO][       Thread-256537][   transport.py][1871] : Authentication (password) successful!
2025-06-13 13:33:30,100 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 13:33:30,381 [DEBUG][Thread-256539 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:33:30,741 [DEBUG][       Thread-256537][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 13:33:30,741 [DEBUG][       Thread-256537][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 13:33:30,785 [DEBUG][       Thread-256537][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 13:33:30,785 [DEBUG][       Thread-256537][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 13:33:30,789 [DEBUG][       Thread-256537][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 13:33:30,797 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 13:33:30,798 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 13:33:30,800 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 13:33:30,802 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 13:33:30,808 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 13:33:30,810 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 13:33:30,810 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 13:33:30,811 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 13:33:30,811 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.481187 -999.00  +13.40  21.90     34   -1.70 1 1 1 1 1   888    0 17.55 135.67 ----- 18.5 21.9 19.4 23.2 17.9 -30.1 16.7 -31.7 16.9 -30.0 18.1 -27.9
2025-06-13 13:33:30,811 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 13:33:30,811 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 13:33:30,811 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.481187
2025-06-13 13:33:30,812 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 13:33:30,812 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 13:33:30,813 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 13:33:30,813 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 13:33:30,813 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 13:33:30,813 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T13:33:05', tmtdew=16.89, humidity=30.97, cloud=0.0, wind=21.53, temperature=13.43, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T11:32:54.557', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 13:33:30,814 [DEBUG][       Thread-256537][   transport.py][1871] : EOF in transport thread
2025-06-13 13:33:30,896 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 13:33:30,907 [DEBUG][       Thread-256541][   transport.py][1871] : starting thread (client mode): 0x842054b0
2025-06-13 13:33:30,907 [DEBUG][       Thread-256541][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 13:33:30,925 [DEBUG][       Thread-256541][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 13:33:30,925 [ INFO][       Thread-256541][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 13:33:30,932 [DEBUG][       Thread-256541][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 13:33:30,932 [DEBUG][       Thread-256541][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 13:33:30,932 [DEBUG][       Thread-256541][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 13:33:30,932 [DEBUG][       Thread-256541][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:33:30,932 [DEBUG][       Thread-256541][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:33:30,932 [DEBUG][       Thread-256541][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:33:30,932 [DEBUG][       Thread-256541][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:33:30,932 [DEBUG][       Thread-256541][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 13:33:30,932 [DEBUG][       Thread-256541][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 13:33:30,932 [DEBUG][       Thread-256541][   transport.py][1871] : client lang: <none>
2025-06-13 13:33:30,932 [DEBUG][       Thread-256541][   transport.py][1871] : server lang: <none>
2025-06-13 13:33:30,932 [DEBUG][       Thread-256541][   transport.py][1871] : kex follows: False
2025-06-13 13:33:30,932 [DEBUG][       Thread-256541][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 13:33:30,932 [DEBUG][       Thread-256541][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 13:33:30,932 [DEBUG][       Thread-256541][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 13:33:30,932 [DEBUG][       Thread-256541][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 13:33:30,932 [DEBUG][       Thread-256541][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 13:33:30,932 [DEBUG][       Thread-256541][   transport.py][1871] : Compression: none
2025-06-13 13:33:30,932 [DEBUG][       Thread-256541][   transport.py][1871] : === End of kex handshake ===
2025-06-13 13:33:30,988 [DEBUG][       Thread-256541][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 13:33:30,988 [DEBUG][       Thread-256541][   transport.py][1871] : Switch to new keys ...
2025-06-13 13:33:30,988 [DEBUG][       Thread-256541][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 13:33:30,988 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 13:33:30,988 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 13:33:31,047 [DEBUG][       Thread-256541][   transport.py][1871] : userauth is OK
2025-06-13 13:33:31,047 [DEBUG][       Thread-256541][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 13:33:31,047 [DEBUG][       Thread-256541][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 13:33:31,047 [DEBUG][       Thread-256541][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 13:33:31,047 [DEBUG][       Thread-256541][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 13:33:31,070 [ INFO][       Thread-256541][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 13:33:31,070 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 13:33:31,071 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 13:33:32,067 [DEBUG][       Thread-256541][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 13:33:32,067 [DEBUG][       Thread-256541][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 13:33:32,116 [DEBUG][       Thread-256541][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 13:33:32,116 [DEBUG][       Thread-256541][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 13:33:32,125 [DEBUG][       Thread-256541][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 13:33:32,141 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 13:33:32,141 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 13:33:32,150 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 13:33:32,159 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 13:33:32,160 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 13:33:32,160 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 13:33:32,168 [DEBUG][       Thread-256541][   transport.py][1871] : EOF in transport thread
2025-06-13 13:33:39,401 [DEBUG][Thread-256543 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:33:39,899 [DEBUG][Thread-256544 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:33:40,977 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:33:40,978 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:33:42,171 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 13:33:42,171 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 13:33:42,171 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 13:33:42,174 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 13:33:42,632 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 13, 33, 36), 16.87, 31.07, 0.0, 19.73, 13.48, 0, 0, 0, 2, 0, 0),)
2025-06-13 13:33:42,632 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 13:33:36
2025-06-13 13:33:42,712 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 13:33:42,716 [DEBUG][       Thread-256545][   transport.py][1871] : starting thread (client mode): 0x84205750
2025-06-13 13:33:42,716 [DEBUG][       Thread-256545][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 13:33:42,736 [DEBUG][       Thread-256545][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 13:33:42,736 [ INFO][       Thread-256545][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 13:33:42,739 [DEBUG][       Thread-256545][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 13:33:42,739 [DEBUG][       Thread-256545][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 13:33:42,739 [DEBUG][       Thread-256545][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 13:33:42,739 [DEBUG][       Thread-256545][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:33:42,739 [DEBUG][       Thread-256545][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:33:42,739 [DEBUG][       Thread-256545][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:33:42,739 [DEBUG][       Thread-256545][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:33:42,739 [DEBUG][       Thread-256545][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 13:33:42,739 [DEBUG][       Thread-256545][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 13:33:42,739 [DEBUG][       Thread-256545][   transport.py][1871] : client lang: <none>
2025-06-13 13:33:42,739 [DEBUG][       Thread-256545][   transport.py][1871] : server lang: <none>
2025-06-13 13:33:42,739 [DEBUG][       Thread-256545][   transport.py][1871] : kex follows: False
2025-06-13 13:33:42,739 [DEBUG][       Thread-256545][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 13:33:42,739 [DEBUG][       Thread-256545][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 13:33:42,739 [DEBUG][       Thread-256545][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 13:33:42,739 [DEBUG][       Thread-256545][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 13:33:42,739 [DEBUG][       Thread-256545][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 13:33:42,739 [DEBUG][       Thread-256545][   transport.py][1871] : Compression: none
2025-06-13 13:33:42,739 [DEBUG][       Thread-256545][   transport.py][1871] : === End of kex handshake ===
2025-06-13 13:33:42,759 [DEBUG][       Thread-256545][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 13:33:42,760 [DEBUG][       Thread-256545][   transport.py][1871] : Switch to new keys ...
2025-06-13 13:33:42,760 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 13:33:42,760 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 13:33:42,761 [DEBUG][       Thread-256545][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 13:33:42,761 [DEBUG][       Thread-256545][   transport.py][1871] : userauth is OK
2025-06-13 13:33:42,774 [ INFO][       Thread-256545][   transport.py][1871] : Authentication (password) successful!
2025-06-13 13:33:42,775 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 13:33:43,360 [DEBUG][       Thread-256545][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 13:33:43,360 [DEBUG][       Thread-256545][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 13:33:43,400 [DEBUG][       Thread-256545][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 13:33:43,400 [DEBUG][       Thread-256545][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 13:33:43,403 [DEBUG][       Thread-256545][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 13:33:43,414 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 13:33:43,414 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 13:33:43,415 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 13:33:43,416 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 13:33:43,420 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 13:33:43,420 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 13:33:43,420 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 13:33:43,421 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 13:33:43,421 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.481534 -999.00  +13.60  22.61     34   -1.70 1 1 1 1 1   888    0 17.98 145.13 ----- 20.7 22.6 40.8 27.4 17.9 -30.2 16.8 -32.0 16.9 -29.8 18.1 -28.8
2025-06-13 13:33:43,421 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 13:33:43,421 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 13:33:43,421 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.481534
2025-06-13 13:33:43,421 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 13:33:43,421 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 13:33:43,421 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 13:33:43,421 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 13:33:43,421 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 13:33:43,421 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T13:33:36', tmtdew=16.87, humidity=31.07, cloud=0.0, wind=19.73, temperature=13.48, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T11:33:24.538', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 13:33:43,422 [DEBUG][       Thread-256545][   transport.py][1871] : EOF in transport thread
2025-06-13 13:33:43,492 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 13:33:43,503 [DEBUG][       Thread-256547][   transport.py][1871] : starting thread (client mode): 0x863a7f10
2025-06-13 13:33:43,503 [DEBUG][       Thread-256547][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 13:33:43,519 [DEBUG][       Thread-256547][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 13:33:43,519 [ INFO][       Thread-256547][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 13:33:43,527 [DEBUG][       Thread-256547][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 13:33:43,527 [DEBUG][       Thread-256547][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 13:33:43,527 [DEBUG][       Thread-256547][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 13:33:43,527 [DEBUG][       Thread-256547][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:33:43,527 [DEBUG][       Thread-256547][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:33:43,527 [DEBUG][       Thread-256547][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:33:43,527 [DEBUG][       Thread-256547][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:33:43,527 [DEBUG][       Thread-256547][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 13:33:43,527 [DEBUG][       Thread-256547][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 13:33:43,527 [DEBUG][       Thread-256547][   transport.py][1871] : client lang: <none>
2025-06-13 13:33:43,527 [DEBUG][       Thread-256547][   transport.py][1871] : server lang: <none>
2025-06-13 13:33:43,527 [DEBUG][       Thread-256547][   transport.py][1871] : kex follows: False
2025-06-13 13:33:43,528 [DEBUG][       Thread-256547][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 13:33:43,528 [DEBUG][       Thread-256547][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 13:33:43,528 [DEBUG][       Thread-256547][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 13:33:43,528 [DEBUG][       Thread-256547][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 13:33:43,528 [DEBUG][       Thread-256547][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 13:33:43,528 [DEBUG][       Thread-256547][   transport.py][1871] : Compression: none
2025-06-13 13:33:43,528 [DEBUG][       Thread-256547][   transport.py][1871] : === End of kex handshake ===
2025-06-13 13:33:43,585 [DEBUG][       Thread-256547][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 13:33:43,586 [DEBUG][       Thread-256547][   transport.py][1871] : Switch to new keys ...
2025-06-13 13:33:43,587 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 13:33:43,587 [DEBUG][       Thread-256547][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 13:33:43,588 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 13:33:43,644 [DEBUG][       Thread-256547][   transport.py][1871] : userauth is OK
2025-06-13 13:33:43,645 [DEBUG][       Thread-256547][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 13:33:43,645 [DEBUG][       Thread-256547][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 13:33:43,645 [DEBUG][       Thread-256547][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 13:33:43,645 [DEBUG][       Thread-256547][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 13:33:43,663 [ INFO][       Thread-256547][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 13:33:43,663 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 13:33:43,663 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 13:33:44,656 [DEBUG][       Thread-256547][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 13:33:44,656 [DEBUG][       Thread-256547][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 13:33:44,704 [DEBUG][       Thread-256547][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 13:33:44,704 [DEBUG][       Thread-256547][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 13:33:44,713 [DEBUG][       Thread-256547][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 13:33:44,722 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 13:33:44,722 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 13:33:44,731 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 13:33:44,741 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 13:33:44,741 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 13:33:44,741 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 13:33:44,749 [DEBUG][       Thread-256547][   transport.py][1871] : EOF in transport thread
2025-06-13 13:33:48,422 [DEBUG][Thread-256549 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:33:53,200 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:33:53,201 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:33:54,748 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 13:33:54,748 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 13:33:54,748 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 13:33:54,751 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 13:33:55,195 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 13, 33, 36), 16.87, 31.07, 0.0, 19.73, 13.48, 0, 0, 0, 2, 0, 0),)
2025-06-13 13:33:55,195 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 13:33:36
2025-06-13 13:33:55,276 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 13:33:55,280 [DEBUG][       Thread-256550][   transport.py][1871] : starting thread (client mode): 0x86352a10
2025-06-13 13:33:55,280 [DEBUG][       Thread-256550][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 13:33:55,301 [DEBUG][       Thread-256550][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 13:33:55,301 [ INFO][       Thread-256550][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 13:33:55,305 [DEBUG][       Thread-256550][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 13:33:55,305 [DEBUG][       Thread-256550][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 13:33:55,305 [DEBUG][       Thread-256550][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 13:33:55,305 [DEBUG][       Thread-256550][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:33:55,305 [DEBUG][       Thread-256550][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:33:55,305 [DEBUG][       Thread-256550][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:33:55,305 [DEBUG][       Thread-256550][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:33:55,305 [DEBUG][       Thread-256550][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 13:33:55,305 [DEBUG][       Thread-256550][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 13:33:55,305 [DEBUG][       Thread-256550][   transport.py][1871] : client lang: <none>
2025-06-13 13:33:55,305 [DEBUG][       Thread-256550][   transport.py][1871] : server lang: <none>
2025-06-13 13:33:55,305 [DEBUG][       Thread-256550][   transport.py][1871] : kex follows: False
2025-06-13 13:33:55,306 [DEBUG][       Thread-256550][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 13:33:55,306 [DEBUG][       Thread-256550][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 13:33:55,306 [DEBUG][       Thread-256550][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 13:33:55,306 [DEBUG][       Thread-256550][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 13:33:55,306 [DEBUG][       Thread-256550][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 13:33:55,306 [DEBUG][       Thread-256550][   transport.py][1871] : Compression: none
2025-06-13 13:33:55,306 [DEBUG][       Thread-256550][   transport.py][1871] : === End of kex handshake ===
2025-06-13 13:33:55,323 [DEBUG][       Thread-256550][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 13:33:55,323 [DEBUG][       Thread-256550][   transport.py][1871] : Switch to new keys ...
2025-06-13 13:33:55,324 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 13:33:55,324 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 13:33:55,324 [DEBUG][       Thread-256550][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 13:33:55,325 [DEBUG][       Thread-256550][   transport.py][1871] : userauth is OK
2025-06-13 13:33:55,338 [ INFO][       Thread-256550][   transport.py][1871] : Authentication (password) successful!
2025-06-13 13:33:55,339 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 13:33:55,970 [DEBUG][       Thread-256550][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 13:33:55,970 [DEBUG][       Thread-256550][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 13:33:56,013 [DEBUG][       Thread-256550][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 13:33:56,013 [DEBUG][       Thread-256550][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 13:33:56,016 [DEBUG][       Thread-256550][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 13:33:56,028 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 13:33:56,028 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 13:33:56,030 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 13:33:56,032 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 13:33:56,038 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 13:33:56,039 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 13:33:56,040 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 13:33:56,040 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 13:33:56,040 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.481534 -999.00  +13.60  22.61     34   -1.70 1 1 1 1 1   888    0 17.98 145.13 ----- 20.7 22.6 40.8 27.4 17.9 -30.2 16.8 -32.0 16.9 -29.8 18.1 -28.8
2025-06-13 13:33:56,040 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 13:33:56,040 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 13:33:56,041 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.481534
2025-06-13 13:33:56,041 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 13:33:56,041 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 13:33:56,042 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 13:33:56,042 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 13:33:56,042 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 13:33:56,042 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T13:33:36', tmtdew=16.87, humidity=31.07, cloud=0.0, wind=19.73, temperature=13.48, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T11:33:24.538', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 13:33:56,042 [DEBUG][       Thread-256550][   transport.py][1871] : EOF in transport thread
2025-06-13 13:33:56,127 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 13:33:56,136 [DEBUG][       Thread-256553][   transport.py][1871] : starting thread (client mode): 0x867b78b0
2025-06-13 13:33:56,137 [DEBUG][       Thread-256553][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 13:33:56,151 [DEBUG][       Thread-256553][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 13:33:56,152 [ INFO][       Thread-256553][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 13:33:56,159 [DEBUG][       Thread-256553][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 13:33:56,159 [DEBUG][       Thread-256553][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 13:33:56,159 [DEBUG][       Thread-256553][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 13:33:56,159 [DEBUG][       Thread-256553][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:33:56,159 [DEBUG][       Thread-256553][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:33:56,159 [DEBUG][       Thread-256553][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:33:56,159 [DEBUG][       Thread-256553][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:33:56,159 [DEBUG][       Thread-256553][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 13:33:56,159 [DEBUG][       Thread-256553][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 13:33:56,159 [DEBUG][       Thread-256553][   transport.py][1871] : client lang: <none>
2025-06-13 13:33:56,159 [DEBUG][       Thread-256553][   transport.py][1871] : server lang: <none>
2025-06-13 13:33:56,159 [DEBUG][       Thread-256553][   transport.py][1871] : kex follows: False
2025-06-13 13:33:56,160 [DEBUG][       Thread-256553][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 13:33:56,160 [DEBUG][       Thread-256553][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 13:33:56,160 [DEBUG][       Thread-256553][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 13:33:56,160 [DEBUG][       Thread-256553][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 13:33:56,160 [DEBUG][       Thread-256553][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 13:33:56,160 [DEBUG][       Thread-256553][   transport.py][1871] : Compression: none
2025-06-13 13:33:56,160 [DEBUG][       Thread-256553][   transport.py][1871] : === End of kex handshake ===
2025-06-13 13:33:56,217 [DEBUG][       Thread-256553][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 13:33:56,217 [DEBUG][       Thread-256553][   transport.py][1871] : Switch to new keys ...
2025-06-13 13:33:56,218 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 13:33:56,218 [DEBUG][       Thread-256553][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 13:33:56,219 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 13:33:56,273 [DEBUG][       Thread-256553][   transport.py][1871] : userauth is OK
2025-06-13 13:33:56,274 [DEBUG][       Thread-256553][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 13:33:56,274 [DEBUG][       Thread-256553][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 13:33:56,274 [DEBUG][       Thread-256553][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 13:33:56,274 [DEBUG][       Thread-256553][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 13:33:56,292 [ INFO][       Thread-256553][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 13:33:56,293 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 13:33:56,293 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 13:33:57,251 [DEBUG][       Thread-256553][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 13:33:57,252 [DEBUG][       Thread-256553][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 13:33:57,300 [DEBUG][       Thread-256553][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 13:33:57,300 [DEBUG][       Thread-256553][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 13:33:57,309 [DEBUG][       Thread-256553][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 13:33:57,317 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 13:33:57,317 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 13:33:57,326 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 13:33:57,335 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 13:33:57,335 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 13:33:57,335 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 13:33:57,343 [DEBUG][       Thread-256553][   transport.py][1871] : EOF in transport thread
2025-06-13 13:33:57,467 [DEBUG][Thread-256555 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:34:06,490 [DEBUG][Thread-256556 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:34:07,344 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 13:34:07,344 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 13:34:07,344 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 13:34:07,347 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 13:34:07,792 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 13, 33, 36), 16.87, 31.07, 0.0, 19.73, 13.48, 0, 0, 0, 2, 0, 0),)
2025-06-13 13:34:07,793 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 13:33:36
2025-06-13 13:34:07,873 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 13:34:07,878 [DEBUG][       Thread-256557][   transport.py][1871] : starting thread (client mode): 0x8636b130
2025-06-13 13:34:07,878 [DEBUG][       Thread-256557][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 13:34:07,899 [DEBUG][       Thread-256557][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 13:34:07,899 [ INFO][       Thread-256557][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 13:34:07,902 [DEBUG][       Thread-256557][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 13:34:07,902 [DEBUG][       Thread-256557][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 13:34:07,902 [DEBUG][       Thread-256557][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 13:34:07,902 [DEBUG][       Thread-256557][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:34:07,902 [DEBUG][       Thread-256557][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:34:07,902 [DEBUG][       Thread-256557][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:34:07,902 [DEBUG][       Thread-256557][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:34:07,902 [DEBUG][       Thread-256557][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 13:34:07,902 [DEBUG][       Thread-256557][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 13:34:07,902 [DEBUG][       Thread-256557][   transport.py][1871] : client lang: <none>
2025-06-13 13:34:07,902 [DEBUG][       Thread-256557][   transport.py][1871] : server lang: <none>
2025-06-13 13:34:07,902 [DEBUG][       Thread-256557][   transport.py][1871] : kex follows: False
2025-06-13 13:34:07,902 [DEBUG][       Thread-256557][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 13:34:07,902 [DEBUG][       Thread-256557][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 13:34:07,902 [DEBUG][       Thread-256557][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 13:34:07,902 [DEBUG][       Thread-256557][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 13:34:07,902 [DEBUG][       Thread-256557][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 13:34:07,902 [DEBUG][       Thread-256557][   transport.py][1871] : Compression: none
2025-06-13 13:34:07,902 [DEBUG][       Thread-256557][   transport.py][1871] : === End of kex handshake ===
2025-06-13 13:34:07,919 [DEBUG][       Thread-256557][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 13:34:07,919 [DEBUG][       Thread-256557][   transport.py][1871] : Switch to new keys ...
2025-06-13 13:34:07,920 [DEBUG][       Thread-256557][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 13:34:07,920 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 13:34:07,920 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 13:34:07,921 [DEBUG][       Thread-256557][   transport.py][1871] : userauth is OK
2025-06-13 13:34:07,934 [ INFO][       Thread-256557][   transport.py][1871] : Authentication (password) successful!
2025-06-13 13:34:07,935 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 13:34:08,556 [DEBUG][       Thread-256557][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 13:34:08,556 [DEBUG][       Thread-256557][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 13:34:08,601 [DEBUG][       Thread-256557][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 13:34:08,601 [DEBUG][       Thread-256557][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 13:34:08,604 [DEBUG][       Thread-256557][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 13:34:08,614 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 13:34:08,615 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 13:34:08,616 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 13:34:08,618 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 13:34:08,623 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 13:34:08,625 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 13:34:08,625 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 13:34:08,626 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 13:34:08,626 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.481534 -999.00  +13.60  22.61     34   -1.70 1 1 1 1 1   888    0 17.98 145.13 ----- 20.7 22.6 40.8 27.4 17.9 -30.2 16.8 -32.0 16.9 -29.8 18.1 -28.8
2025-06-13 13:34:08,626 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 13:34:08,626 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 13:34:08,626 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.481534
2025-06-13 13:34:08,626 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 13:34:08,627 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 13:34:08,627 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 13:34:08,627 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 13:34:08,627 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 13:34:08,627 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T13:33:36', tmtdew=16.87, humidity=31.07, cloud=0.0, wind=19.73, temperature=13.48, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T11:33:24.538', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 13:34:08,627 [DEBUG][       Thread-256557][   transport.py][1871] : EOF in transport thread
2025-06-13 13:34:08,709 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 13:34:08,721 [DEBUG][       Thread-256560][   transport.py][1871] : starting thread (client mode): 0x863519f0
2025-06-13 13:34:08,721 [DEBUG][       Thread-256560][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 13:34:08,735 [DEBUG][       Thread-256560][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 13:34:08,735 [ INFO][       Thread-256560][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 13:34:08,743 [DEBUG][       Thread-256560][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 13:34:08,743 [DEBUG][       Thread-256560][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 13:34:08,743 [DEBUG][       Thread-256560][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 13:34:08,743 [DEBUG][       Thread-256560][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:34:08,743 [DEBUG][       Thread-256560][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:34:08,743 [DEBUG][       Thread-256560][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:34:08,743 [DEBUG][       Thread-256560][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:34:08,743 [DEBUG][       Thread-256560][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 13:34:08,743 [DEBUG][       Thread-256560][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 13:34:08,743 [DEBUG][       Thread-256560][   transport.py][1871] : client lang: <none>
2025-06-13 13:34:08,743 [DEBUG][       Thread-256560][   transport.py][1871] : server lang: <none>
2025-06-13 13:34:08,743 [DEBUG][       Thread-256560][   transport.py][1871] : kex follows: False
2025-06-13 13:34:08,743 [DEBUG][       Thread-256560][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 13:34:08,743 [DEBUG][       Thread-256560][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 13:34:08,744 [DEBUG][       Thread-256560][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 13:34:08,744 [DEBUG][       Thread-256560][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 13:34:08,744 [DEBUG][       Thread-256560][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 13:34:08,744 [DEBUG][       Thread-256560][   transport.py][1871] : Compression: none
2025-06-13 13:34:08,744 [DEBUG][       Thread-256560][   transport.py][1871] : === End of kex handshake ===
2025-06-13 13:34:08,800 [DEBUG][       Thread-256560][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 13:34:08,801 [DEBUG][       Thread-256560][   transport.py][1871] : Switch to new keys ...
2025-06-13 13:34:08,801 [DEBUG][       Thread-256560][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 13:34:08,801 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 13:34:08,802 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 13:34:08,865 [DEBUG][       Thread-256560][   transport.py][1871] : userauth is OK
2025-06-13 13:34:08,865 [DEBUG][       Thread-256560][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 13:34:08,865 [DEBUG][       Thread-256560][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 13:34:08,865 [DEBUG][       Thread-256560][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 13:34:08,865 [DEBUG][       Thread-256560][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 13:34:08,884 [ INFO][       Thread-256560][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 13:34:08,884 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 13:34:08,884 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 13:34:09,875 [DEBUG][       Thread-256560][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 13:34:09,875 [DEBUG][       Thread-256560][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 13:34:09,925 [DEBUG][       Thread-256560][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 13:34:09,925 [DEBUG][       Thread-256560][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 13:34:09,937 [DEBUG][       Thread-256560][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 13:34:09,945 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 13:34:09,945 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 13:34:09,952 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 13:34:09,960 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 13:34:09,960 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 13:34:09,960 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 13:34:09,968 [DEBUG][       Thread-256560][   transport.py][1871] : EOF in transport thread
2025-06-13 13:34:15,488 [DEBUG][Thread-256562 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:34:15,509 [DEBUG][Thread-256563 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:34:19,971 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 13:34:19,971 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 13:34:19,971 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 13:34:19,973 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 13:34:20,431 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 13, 34, 8), 16.68, 31.45, 0.0, 18.49, 13.4, 0, 0, 0, 2, 0, 0),)
2025-06-13 13:34:20,431 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 13:34:08
2025-06-13 13:34:20,513 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 13:34:20,517 [DEBUG][       Thread-256564][   transport.py][1871] : starting thread (client mode): 0x86350970
2025-06-13 13:34:20,517 [DEBUG][       Thread-256564][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 13:34:20,538 [DEBUG][       Thread-256564][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 13:34:20,538 [ INFO][       Thread-256564][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 13:34:20,540 [DEBUG][       Thread-256564][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 13:34:20,540 [DEBUG][       Thread-256564][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 13:34:20,540 [DEBUG][       Thread-256564][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 13:34:20,540 [DEBUG][       Thread-256564][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:34:20,540 [DEBUG][       Thread-256564][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:34:20,540 [DEBUG][       Thread-256564][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:34:20,540 [DEBUG][       Thread-256564][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:34:20,540 [DEBUG][       Thread-256564][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 13:34:20,540 [DEBUG][       Thread-256564][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 13:34:20,540 [DEBUG][       Thread-256564][   transport.py][1871] : client lang: <none>
2025-06-13 13:34:20,540 [DEBUG][       Thread-256564][   transport.py][1871] : server lang: <none>
2025-06-13 13:34:20,540 [DEBUG][       Thread-256564][   transport.py][1871] : kex follows: False
2025-06-13 13:34:20,540 [DEBUG][       Thread-256564][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 13:34:20,540 [DEBUG][       Thread-256564][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 13:34:20,540 [DEBUG][       Thread-256564][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 13:34:20,540 [DEBUG][       Thread-256564][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 13:34:20,540 [DEBUG][       Thread-256564][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 13:34:20,540 [DEBUG][       Thread-256564][   transport.py][1871] : Compression: none
2025-06-13 13:34:20,540 [DEBUG][       Thread-256564][   transport.py][1871] : === End of kex handshake ===
2025-06-13 13:34:20,551 [DEBUG][       Thread-256564][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 13:34:20,552 [DEBUG][       Thread-256564][   transport.py][1871] : Switch to new keys ...
2025-06-13 13:34:20,552 [DEBUG][       Thread-256564][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 13:34:20,552 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 13:34:20,552 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 13:34:20,552 [DEBUG][       Thread-256564][   transport.py][1871] : userauth is OK
2025-06-13 13:34:20,576 [ INFO][       Thread-256564][   transport.py][1871] : Authentication (password) successful!
2025-06-13 13:34:20,576 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 13:34:21,193 [DEBUG][       Thread-256564][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 13:34:21,193 [DEBUG][       Thread-256564][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 13:34:21,237 [DEBUG][       Thread-256564][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 13:34:21,237 [DEBUG][       Thread-256564][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 13:34:21,240 [DEBUG][       Thread-256564][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 13:34:21,252 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 13:34:21,253 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 13:34:21,255 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 13:34:21,257 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 13:34:21,262 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 13:34:21,263 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 13:34:21,264 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 13:34:21,265 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 13:34:21,265 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.481881 -999.00  +13.50  22.42     35   -1.60 1 1 1 1 1   888    0 18.39 159.55 ----- 23.4 22.4 41.0 31.9 17.9 -30.6 16.7 -32.1 16.9 -30.3 18.1 -28.5
2025-06-13 13:34:21,265 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 13:34:21,265 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 13:34:21,265 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.481881
2025-06-13 13:34:21,266 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 13:34:21,267 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 13:34:21,267 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 13:34:21,267 [DEBUG][       Thread-256564][   transport.py][1871] : EOF in transport thread
2025-06-13 13:34:21,268 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 13:34:21,268 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 13:34:21,268 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T13:34:08', tmtdew=16.68, humidity=31.45, cloud=0.0, wind=18.49, temperature=13.4, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T11:33:54.518', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 13:34:21,358 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 13:34:21,368 [DEBUG][       Thread-256567][   transport.py][1871] : starting thread (client mode): 0x863926e0
2025-06-13 13:34:21,368 [DEBUG][       Thread-256567][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 13:34:21,387 [DEBUG][       Thread-256567][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 13:34:21,387 [ INFO][       Thread-256567][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 13:34:21,395 [DEBUG][       Thread-256567][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 13:34:21,395 [DEBUG][       Thread-256567][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 13:34:21,395 [DEBUG][       Thread-256567][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 13:34:21,395 [DEBUG][       Thread-256567][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:34:21,395 [DEBUG][       Thread-256567][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:34:21,395 [DEBUG][       Thread-256567][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:34:21,395 [DEBUG][       Thread-256567][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:34:21,395 [DEBUG][       Thread-256567][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 13:34:21,395 [DEBUG][       Thread-256567][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 13:34:21,395 [DEBUG][       Thread-256567][   transport.py][1871] : client lang: <none>
2025-06-13 13:34:21,395 [DEBUG][       Thread-256567][   transport.py][1871] : server lang: <none>
2025-06-13 13:34:21,395 [DEBUG][       Thread-256567][   transport.py][1871] : kex follows: False
2025-06-13 13:34:21,395 [DEBUG][       Thread-256567][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 13:34:21,395 [DEBUG][       Thread-256567][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 13:34:21,396 [DEBUG][       Thread-256567][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 13:34:21,396 [DEBUG][       Thread-256567][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 13:34:21,396 [DEBUG][       Thread-256567][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 13:34:21,396 [DEBUG][       Thread-256567][   transport.py][1871] : Compression: none
2025-06-13 13:34:21,396 [DEBUG][       Thread-256567][   transport.py][1871] : === End of kex handshake ===
2025-06-13 13:34:21,454 [DEBUG][       Thread-256567][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 13:34:21,454 [DEBUG][       Thread-256567][   transport.py][1871] : Switch to new keys ...
2025-06-13 13:34:21,455 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 13:34:21,455 [DEBUG][       Thread-256567][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 13:34:21,456 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 13:34:21,510 [DEBUG][       Thread-256567][   transport.py][1871] : userauth is OK
2025-06-13 13:34:21,510 [DEBUG][       Thread-256567][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 13:34:21,511 [DEBUG][       Thread-256567][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 13:34:21,511 [DEBUG][       Thread-256567][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 13:34:21,511 [DEBUG][       Thread-256567][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 13:34:21,529 [ INFO][       Thread-256567][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 13:34:21,529 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 13:34:21,530 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 13:34:22,499 [DEBUG][       Thread-256567][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 13:34:22,499 [DEBUG][       Thread-256567][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 13:34:22,549 [DEBUG][       Thread-256567][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 13:34:22,549 [DEBUG][       Thread-256567][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 13:34:22,558 [DEBUG][       Thread-256567][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 13:34:22,568 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 13:34:22,568 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 13:34:22,577 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 13:34:22,586 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 13:34:22,587 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 13:34:22,587 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 13:34:22,595 [DEBUG][       Thread-256567][   transport.py][1871] : EOF in transport thread
2025-06-13 13:34:24,528 [DEBUG][Thread-256569 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:34:32,598 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 13:34:32,598 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 13:34:32,598 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 13:34:32,601 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 13:34:33,056 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 13, 34, 8), 16.68, 31.45, 0.0, 18.49, 13.4, 0, 0, 0, 2, 0, 0),)
2025-06-13 13:34:33,056 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 13:34:08
2025-06-13 13:34:33,138 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 13:34:33,143 [DEBUG][       Thread-256570][   transport.py][1871] : starting thread (client mode): 0x86352dd0
2025-06-13 13:34:33,147 [DEBUG][       Thread-256570][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 13:34:33,165 [DEBUG][       Thread-256570][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 13:34:33,165 [ INFO][       Thread-256570][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 13:34:33,167 [DEBUG][       Thread-256570][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 13:34:33,167 [DEBUG][       Thread-256570][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 13:34:33,167 [DEBUG][       Thread-256570][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 13:34:33,167 [DEBUG][       Thread-256570][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:34:33,167 [DEBUG][       Thread-256570][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:34:33,167 [DEBUG][       Thread-256570][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:34:33,167 [DEBUG][       Thread-256570][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:34:33,167 [DEBUG][       Thread-256570][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 13:34:33,167 [DEBUG][       Thread-256570][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 13:34:33,167 [DEBUG][       Thread-256570][   transport.py][1871] : client lang: <none>
2025-06-13 13:34:33,167 [DEBUG][       Thread-256570][   transport.py][1871] : server lang: <none>
2025-06-13 13:34:33,167 [DEBUG][       Thread-256570][   transport.py][1871] : kex follows: False
2025-06-13 13:34:33,167 [DEBUG][       Thread-256570][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 13:34:33,167 [DEBUG][       Thread-256570][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 13:34:33,167 [DEBUG][       Thread-256570][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 13:34:33,167 [DEBUG][       Thread-256570][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 13:34:33,167 [DEBUG][       Thread-256570][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 13:34:33,167 [DEBUG][       Thread-256570][   transport.py][1871] : Compression: none
2025-06-13 13:34:33,167 [DEBUG][       Thread-256570][   transport.py][1871] : === End of kex handshake ===
2025-06-13 13:34:33,183 [DEBUG][       Thread-256570][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 13:34:33,183 [DEBUG][       Thread-256570][   transport.py][1871] : Switch to new keys ...
2025-06-13 13:34:33,183 [DEBUG][       Thread-256570][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 13:34:33,183 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 13:34:33,183 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 13:34:33,184 [DEBUG][       Thread-256570][   transport.py][1871] : userauth is OK
2025-06-13 13:34:33,196 [ INFO][       Thread-256570][   transport.py][1871] : Authentication (password) successful!
2025-06-13 13:34:33,196 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 13:34:33,563 [DEBUG][Thread-256572 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:34:33,847 [DEBUG][       Thread-256570][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 13:34:33,848 [DEBUG][       Thread-256570][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 13:34:33,889 [DEBUG][       Thread-256570][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 13:34:33,889 [DEBUG][       Thread-256570][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 13:34:33,892 [DEBUG][       Thread-256570][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 13:34:33,905 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 13:34:33,906 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 13:34:33,908 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 13:34:33,909 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 13:34:33,916 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 13:34:33,918 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 13:34:33,918 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 13:34:33,919 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 13:34:33,919 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.481881 -999.00  +13.50  22.42     35   -1.60 1 1 1 1 1   888    0 18.39 159.55 ----- 23.4 22.4 41.0 31.9 17.9 -30.6 16.7 -32.1 16.9 -30.3 18.1 -28.5
2025-06-13 13:34:33,919 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 13:34:33,919 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 13:34:33,919 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.481881
2025-06-13 13:34:33,920 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 13:34:33,920 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 13:34:33,920 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 13:34:33,920 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 13:34:33,920 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 13:34:33,920 [DEBUG][       Thread-256570][   transport.py][1871] : EOF in transport thread
2025-06-13 13:34:33,921 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T13:34:08', tmtdew=16.68, humidity=31.45, cloud=0.0, wind=18.49, temperature=13.4, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T11:33:54.518', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 13:34:34,004 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 13:34:34,023 [DEBUG][       Thread-256574][   transport.py][1871] : starting thread (client mode): 0x863c98a0
2025-06-13 13:34:34,023 [DEBUG][       Thread-256574][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 13:34:34,041 [DEBUG][       Thread-256574][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 13:34:34,042 [ INFO][       Thread-256574][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 13:34:34,049 [DEBUG][       Thread-256574][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 13:34:34,049 [DEBUG][       Thread-256574][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 13:34:34,049 [DEBUG][       Thread-256574][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 13:34:34,050 [DEBUG][       Thread-256574][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:34:34,050 [DEBUG][       Thread-256574][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:34:34,050 [DEBUG][       Thread-256574][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:34:34,050 [DEBUG][       Thread-256574][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:34:34,050 [DEBUG][       Thread-256574][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 13:34:34,050 [DEBUG][       Thread-256574][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 13:34:34,050 [DEBUG][       Thread-256574][   transport.py][1871] : client lang: <none>
2025-06-13 13:34:34,050 [DEBUG][       Thread-256574][   transport.py][1871] : server lang: <none>
2025-06-13 13:34:34,050 [DEBUG][       Thread-256574][   transport.py][1871] : kex follows: False
2025-06-13 13:34:34,050 [DEBUG][       Thread-256574][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 13:34:34,050 [DEBUG][       Thread-256574][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 13:34:34,050 [DEBUG][       Thread-256574][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 13:34:34,050 [DEBUG][       Thread-256574][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 13:34:34,050 [DEBUG][       Thread-256574][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 13:34:34,050 [DEBUG][       Thread-256574][   transport.py][1871] : Compression: none
2025-06-13 13:34:34,050 [DEBUG][       Thread-256574][   transport.py][1871] : === End of kex handshake ===
2025-06-13 13:34:34,110 [DEBUG][       Thread-256574][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 13:34:34,110 [DEBUG][       Thread-256574][   transport.py][1871] : Switch to new keys ...
2025-06-13 13:34:34,111 [DEBUG][       Thread-256574][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 13:34:34,111 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 13:34:34,112 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 13:34:34,166 [DEBUG][       Thread-256574][   transport.py][1871] : userauth is OK
2025-06-13 13:34:34,166 [DEBUG][       Thread-256574][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 13:34:34,166 [DEBUG][       Thread-256574][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 13:34:34,166 [DEBUG][       Thread-256574][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 13:34:34,166 [DEBUG][       Thread-256574][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 13:34:34,184 [ INFO][       Thread-256574][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 13:34:34,185 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 13:34:34,185 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 13:34:35,191 [DEBUG][       Thread-256574][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 13:34:35,192 [DEBUG][       Thread-256574][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 13:34:35,240 [DEBUG][       Thread-256574][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 13:34:35,240 [DEBUG][       Thread-256574][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 13:34:35,249 [DEBUG][       Thread-256574][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 13:34:35,258 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 13:34:35,259 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 13:34:35,268 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 13:34:35,277 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 13:34:35,277 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 13:34:35,278 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 13:34:35,285 [DEBUG][       Thread-256574][   transport.py][1871] : EOF in transport thread
2025-06-13 13:34:41,044 [DEBUG][Thread-256576 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:34:42,097 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:34:42,098 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:34:42,583 [DEBUG][Thread-256577 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:34:45,288 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 13:34:45,288 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 13:34:45,288 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 13:34:45,291 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 13:34:45,745 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 13, 34, 40), 16.59, 31.49, 0.0, 19.41, 13.38, 0, 0, 0, 2, 0, 0),)
2025-06-13 13:34:45,745 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 13:34:40
2025-06-13 13:34:45,827 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 13:34:45,831 [DEBUG][       Thread-256578][   transport.py][1871] : starting thread (client mode): 0x86393df0
2025-06-13 13:34:45,831 [DEBUG][       Thread-256578][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 13:34:45,852 [DEBUG][       Thread-256578][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 13:34:45,852 [ INFO][       Thread-256578][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 13:34:45,855 [DEBUG][       Thread-256578][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 13:34:45,855 [DEBUG][       Thread-256578][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 13:34:45,855 [DEBUG][       Thread-256578][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 13:34:45,855 [DEBUG][       Thread-256578][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:34:45,855 [DEBUG][       Thread-256578][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:34:45,855 [DEBUG][       Thread-256578][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:34:45,855 [DEBUG][       Thread-256578][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:34:45,855 [DEBUG][       Thread-256578][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 13:34:45,855 [DEBUG][       Thread-256578][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 13:34:45,856 [DEBUG][       Thread-256578][   transport.py][1871] : client lang: <none>
2025-06-13 13:34:45,856 [DEBUG][       Thread-256578][   transport.py][1871] : server lang: <none>
2025-06-13 13:34:45,856 [DEBUG][       Thread-256578][   transport.py][1871] : kex follows: False
2025-06-13 13:34:45,856 [DEBUG][       Thread-256578][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 13:34:45,856 [DEBUG][       Thread-256578][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 13:34:45,856 [DEBUG][       Thread-256578][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 13:34:45,856 [DEBUG][       Thread-256578][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 13:34:45,856 [DEBUG][       Thread-256578][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 13:34:45,856 [DEBUG][       Thread-256578][   transport.py][1871] : Compression: none
2025-06-13 13:34:45,856 [DEBUG][       Thread-256578][   transport.py][1871] : === End of kex handshake ===
2025-06-13 13:34:45,873 [DEBUG][       Thread-256578][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 13:34:45,874 [DEBUG][       Thread-256578][   transport.py][1871] : Switch to new keys ...
2025-06-13 13:34:45,874 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 13:34:45,874 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 13:34:45,875 [DEBUG][       Thread-256578][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 13:34:45,876 [DEBUG][       Thread-256578][   transport.py][1871] : userauth is OK
2025-06-13 13:34:45,901 [ INFO][       Thread-256578][   transport.py][1871] : Authentication (password) successful!
2025-06-13 13:34:45,902 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 13:34:46,554 [DEBUG][       Thread-256578][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 13:34:46,554 [DEBUG][       Thread-256578][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 13:34:46,597 [DEBUG][       Thread-256578][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 13:34:46,597 [DEBUG][       Thread-256578][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 13:34:46,600 [DEBUG][       Thread-256578][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 13:34:46,613 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 13:34:46,614 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 13:34:46,615 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 13:34:46,617 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 13:34:46,623 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 13:34:46,625 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 13:34:46,625 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 13:34:46,626 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 13:34:46,626 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.481881 -999.00  +13.50  22.42     35   -1.60 1 1 1 1 1   888    0 18.39 159.55 ----- 23.4 22.4 41.0 31.9 17.9 -30.6 16.7 -32.1 16.9 -30.3 18.1 -28.5
2025-06-13 13:34:46,626 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 13:34:46,626 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 13:34:46,626 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.481881
2025-06-13 13:34:46,627 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 13:34:46,627 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 13:34:46,627 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 13:34:46,628 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 13:34:46,628 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 13:34:46,628 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T13:34:40', tmtdew=16.59, humidity=31.49, cloud=0.0, wind=19.41, temperature=13.38, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T11:33:54.518', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 13:34:46,628 [DEBUG][       Thread-256578][   transport.py][1871] : EOF in transport thread
2025-06-13 13:34:46,712 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 13:34:46,722 [DEBUG][       Thread-256581][   transport.py][1871] : starting thread (client mode): 0x863ee470
2025-06-13 13:34:46,722 [DEBUG][       Thread-256581][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 13:34:46,736 [DEBUG][       Thread-256581][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 13:34:46,736 [ INFO][       Thread-256581][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 13:34:46,744 [DEBUG][       Thread-256581][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 13:34:46,744 [DEBUG][       Thread-256581][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 13:34:46,744 [DEBUG][       Thread-256581][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 13:34:46,744 [DEBUG][       Thread-256581][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:34:46,744 [DEBUG][       Thread-256581][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:34:46,744 [DEBUG][       Thread-256581][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:34:46,744 [DEBUG][       Thread-256581][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:34:46,744 [DEBUG][       Thread-256581][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 13:34:46,745 [DEBUG][       Thread-256581][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 13:34:46,745 [DEBUG][       Thread-256581][   transport.py][1871] : client lang: <none>
2025-06-13 13:34:46,745 [DEBUG][       Thread-256581][   transport.py][1871] : server lang: <none>
2025-06-13 13:34:46,745 [DEBUG][       Thread-256581][   transport.py][1871] : kex follows: False
2025-06-13 13:34:46,745 [DEBUG][       Thread-256581][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 13:34:46,745 [DEBUG][       Thread-256581][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 13:34:46,745 [DEBUG][       Thread-256581][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 13:34:46,745 [DEBUG][       Thread-256581][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 13:34:46,745 [DEBUG][       Thread-256581][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 13:34:46,745 [DEBUG][       Thread-256581][   transport.py][1871] : Compression: none
2025-06-13 13:34:46,745 [DEBUG][       Thread-256581][   transport.py][1871] : === End of kex handshake ===
2025-06-13 13:34:46,806 [DEBUG][       Thread-256581][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 13:34:46,807 [DEBUG][       Thread-256581][   transport.py][1871] : Switch to new keys ...
2025-06-13 13:34:46,807 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 13:34:46,808 [DEBUG][       Thread-256581][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 13:34:46,809 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 13:34:46,861 [DEBUG][       Thread-256581][   transport.py][1871] : userauth is OK
2025-06-13 13:34:46,861 [DEBUG][       Thread-256581][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 13:34:46,861 [DEBUG][       Thread-256581][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 13:34:46,861 [DEBUG][       Thread-256581][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 13:34:46,861 [DEBUG][       Thread-256581][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 13:34:46,875 [ INFO][       Thread-256581][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 13:34:46,875 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 13:34:46,875 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 13:34:47,894 [DEBUG][       Thread-256581][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 13:34:47,894 [DEBUG][       Thread-256581][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 13:34:47,944 [DEBUG][       Thread-256581][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 13:34:47,944 [DEBUG][       Thread-256581][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 13:34:47,954 [DEBUG][       Thread-256581][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 13:34:47,963 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 13:34:47,963 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 13:34:47,973 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 13:34:47,993 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 13:34:47,993 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 13:34:47,994 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 13:34:48,001 [DEBUG][       Thread-256581][   transport.py][1871] : EOF in transport thread
2025-06-13 13:34:51,600 [DEBUG][Thread-256583 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:34:53,340 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:34:53,340 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:34:58,000 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 13:34:58,001 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 13:34:58,001 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 13:34:58,004 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 13:34:58,464 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 13, 34, 40), 16.59, 31.49, 0.0, 19.41, 13.38, 0, 0, 0, 2, 0, 0),)
2025-06-13 13:34:58,464 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 13:34:40
2025-06-13 13:34:58,545 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 13:34:58,549 [DEBUG][       Thread-256584][   transport.py][1871] : starting thread (client mode): 0x86393310
2025-06-13 13:34:58,549 [DEBUG][       Thread-256584][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 13:34:58,570 [DEBUG][       Thread-256584][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 13:34:58,570 [ INFO][       Thread-256584][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 13:34:58,573 [DEBUG][       Thread-256584][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 13:34:58,573 [DEBUG][       Thread-256584][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 13:34:58,573 [DEBUG][       Thread-256584][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 13:34:58,573 [DEBUG][       Thread-256584][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:34:58,573 [DEBUG][       Thread-256584][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:34:58,573 [DEBUG][       Thread-256584][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:34:58,573 [DEBUG][       Thread-256584][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:34:58,573 [DEBUG][       Thread-256584][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 13:34:58,573 [DEBUG][       Thread-256584][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 13:34:58,573 [DEBUG][       Thread-256584][   transport.py][1871] : client lang: <none>
2025-06-13 13:34:58,573 [DEBUG][       Thread-256584][   transport.py][1871] : server lang: <none>
2025-06-13 13:34:58,573 [DEBUG][       Thread-256584][   transport.py][1871] : kex follows: False
2025-06-13 13:34:58,573 [DEBUG][       Thread-256584][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 13:34:58,573 [DEBUG][       Thread-256584][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 13:34:58,573 [DEBUG][       Thread-256584][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 13:34:58,574 [DEBUG][       Thread-256584][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 13:34:58,574 [DEBUG][       Thread-256584][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 13:34:58,574 [DEBUG][       Thread-256584][   transport.py][1871] : Compression: none
2025-06-13 13:34:58,574 [DEBUG][       Thread-256584][   transport.py][1871] : === End of kex handshake ===
2025-06-13 13:34:58,590 [DEBUG][       Thread-256584][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 13:34:58,591 [DEBUG][       Thread-256584][   transport.py][1871] : Switch to new keys ...
2025-06-13 13:34:58,591 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 13:34:58,592 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 13:34:58,592 [DEBUG][       Thread-256584][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 13:34:58,593 [DEBUG][       Thread-256584][   transport.py][1871] : userauth is OK
2025-06-13 13:34:58,618 [ INFO][       Thread-256584][   transport.py][1871] : Authentication (password) successful!
2025-06-13 13:34:58,618 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 13:34:59,231 [DEBUG][       Thread-256584][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 13:34:59,232 [DEBUG][       Thread-256584][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 13:34:59,273 [DEBUG][       Thread-256584][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 13:34:59,273 [DEBUG][       Thread-256584][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 13:34:59,276 [DEBUG][       Thread-256584][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 13:34:59,288 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 13:34:59,289 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 13:34:59,291 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 13:34:59,293 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 13:34:59,299 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 13:34:59,301 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 13:34:59,302 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 13:34:59,302 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 13:34:59,303 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.482229 -999.00  +13.30  23.69     35   -1.80 1 1 1 1 1   888    0 18.30 158.52 ----- 21.9 23.7 54.2 26.0 17.8 -30.4 16.6 -31.7 16.6 -31.1 18.1 -28.1
2025-06-13 13:34:59,303 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 13:34:59,303 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 13:34:59,303 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.482229
2025-06-13 13:34:59,303 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 13:34:59,304 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 13:34:59,304 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 13:34:59,304 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 13:34:59,304 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 13:34:59,305 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T13:34:40', tmtdew=16.59, humidity=31.49, cloud=0.0, wind=19.41, temperature=13.38, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T11:34:24.586', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 13:34:59,305 [DEBUG][       Thread-256584][   transport.py][1871] : EOF in transport thread
2025-06-13 13:34:59,381 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 13:34:59,392 [DEBUG][       Thread-256587][   transport.py][1871] : starting thread (client mode): 0x863bd240
2025-06-13 13:34:59,392 [DEBUG][       Thread-256587][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 13:34:59,406 [DEBUG][       Thread-256587][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 13:34:59,407 [ INFO][       Thread-256587][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 13:34:59,414 [DEBUG][       Thread-256587][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 13:34:59,415 [DEBUG][       Thread-256587][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 13:34:59,415 [DEBUG][       Thread-256587][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 13:34:59,415 [DEBUG][       Thread-256587][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:34:59,415 [DEBUG][       Thread-256587][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:34:59,415 [DEBUG][       Thread-256587][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:34:59,415 [DEBUG][       Thread-256587][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:34:59,415 [DEBUG][       Thread-256587][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 13:34:59,415 [DEBUG][       Thread-256587][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 13:34:59,415 [DEBUG][       Thread-256587][   transport.py][1871] : client lang: <none>
2025-06-13 13:34:59,415 [DEBUG][       Thread-256587][   transport.py][1871] : server lang: <none>
2025-06-13 13:34:59,415 [DEBUG][       Thread-256587][   transport.py][1871] : kex follows: False
2025-06-13 13:34:59,415 [DEBUG][       Thread-256587][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 13:34:59,415 [DEBUG][       Thread-256587][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 13:34:59,415 [DEBUG][       Thread-256587][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 13:34:59,415 [DEBUG][       Thread-256587][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 13:34:59,415 [DEBUG][       Thread-256587][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 13:34:59,415 [DEBUG][       Thread-256587][   transport.py][1871] : Compression: none
2025-06-13 13:34:59,415 [DEBUG][       Thread-256587][   transport.py][1871] : === End of kex handshake ===
2025-06-13 13:34:59,474 [DEBUG][       Thread-256587][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 13:34:59,474 [DEBUG][       Thread-256587][   transport.py][1871] : Switch to new keys ...
2025-06-13 13:34:59,475 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 13:34:59,476 [DEBUG][       Thread-256587][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 13:34:59,476 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 13:34:59,530 [DEBUG][       Thread-256587][   transport.py][1871] : userauth is OK
2025-06-13 13:34:59,530 [DEBUG][       Thread-256587][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 13:34:59,531 [DEBUG][       Thread-256587][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 13:34:59,531 [DEBUG][       Thread-256587][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 13:34:59,531 [DEBUG][       Thread-256587][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 13:34:59,549 [ INFO][       Thread-256587][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 13:34:59,550 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 13:34:59,550 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 13:35:00,560 [DEBUG][       Thread-256587][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 13:35:00,560 [DEBUG][       Thread-256587][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 13:35:00,612 [DEBUG][       Thread-256587][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 13:35:00,612 [DEBUG][       Thread-256587][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 13:35:00,621 [DEBUG][       Thread-256587][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 13:35:00,627 [DEBUG][Thread-256589 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:35:00,630 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 13:35:00,630 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 13:35:00,639 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 13:35:00,648 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 13:35:00,648 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 13:35:00,648 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 13:35:00,658 [DEBUG][       Thread-256587][   transport.py][1871] : EOF in transport thread
2025-06-13 13:35:09,650 [DEBUG][Thread-256590 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:35:10,659 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 13:35:10,659 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 13:35:10,659 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 13:35:10,662 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 13:35:11,118 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 13, 34, 40), 16.59, 31.49, 0.0, 19.41, 13.38, 0, 0, 0, 2, 0, 0),)
2025-06-13 13:35:11,118 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 13:34:40
2025-06-13 13:35:11,199 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 13:35:11,203 [DEBUG][       Thread-256591][   transport.py][1871] : starting thread (client mode): 0x86353a00
2025-06-13 13:35:11,203 [DEBUG][       Thread-256591][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 13:35:11,223 [DEBUG][       Thread-256591][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 13:35:11,223 [ INFO][       Thread-256591][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 13:35:11,227 [DEBUG][       Thread-256591][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 13:35:11,227 [DEBUG][       Thread-256591][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 13:35:11,227 [DEBUG][       Thread-256591][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 13:35:11,227 [DEBUG][       Thread-256591][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:35:11,227 [DEBUG][       Thread-256591][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:35:11,227 [DEBUG][       Thread-256591][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:35:11,227 [DEBUG][       Thread-256591][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:35:11,227 [DEBUG][       Thread-256591][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 13:35:11,227 [DEBUG][       Thread-256591][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 13:35:11,227 [DEBUG][       Thread-256591][   transport.py][1871] : client lang: <none>
2025-06-13 13:35:11,227 [DEBUG][       Thread-256591][   transport.py][1871] : server lang: <none>
2025-06-13 13:35:11,227 [DEBUG][       Thread-256591][   transport.py][1871] : kex follows: False
2025-06-13 13:35:11,227 [DEBUG][       Thread-256591][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 13:35:11,227 [DEBUG][       Thread-256591][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 13:35:11,227 [DEBUG][       Thread-256591][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 13:35:11,227 [DEBUG][       Thread-256591][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 13:35:11,227 [DEBUG][       Thread-256591][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 13:35:11,227 [DEBUG][       Thread-256591][   transport.py][1871] : Compression: none
2025-06-13 13:35:11,227 [DEBUG][       Thread-256591][   transport.py][1871] : === End of kex handshake ===
2025-06-13 13:35:11,246 [DEBUG][       Thread-256591][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 13:35:11,246 [DEBUG][       Thread-256591][   transport.py][1871] : Switch to new keys ...
2025-06-13 13:35:11,247 [DEBUG][       Thread-256591][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 13:35:11,247 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 13:35:11,247 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 13:35:11,248 [DEBUG][       Thread-256591][   transport.py][1871] : userauth is OK
2025-06-13 13:35:11,261 [ INFO][       Thread-256591][   transport.py][1871] : Authentication (password) successful!
2025-06-13 13:35:11,261 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 13:35:15,539 [DEBUG][Thread-256593 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:35:18,674 [DEBUG][Thread-256594 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:35:19,392 [DEBUG][       Thread-256591][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 13:35:19,393 [DEBUG][       Thread-256591][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 13:35:19,437 [DEBUG][       Thread-256591][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 13:35:19,437 [DEBUG][       Thread-256591][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 13:35:19,440 [DEBUG][       Thread-256591][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 13:35:19,512 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 13:35:19,513 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 13:35:19,514 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 13:35:19,516 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 13:35:19,545 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 13:35:19,546 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 13:35:19,547 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 13:35:19,547 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 13:35:19,547 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.482229 -999.00  +13.30  23.69     35   -1.80 1 1 1 1 1   888    0 18.30 158.52 ----- 21.9 23.7 54.2 26.0 17.8 -30.4 16.6 -31.7 16.6 -31.1 18.1 -28.1
2025-06-13 13:35:19,547 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 13:35:19,547 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 13:35:19,547 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.482229
2025-06-13 13:35:19,548 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 13:35:19,548 [DEBUG][       Thread-256591][   transport.py][1871] : EOF in transport thread
2025-06-13 13:35:19,549 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 13:35:19,549 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 13:35:19,549 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 13:35:19,549 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 13:35:19,550 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T13:34:40', tmtdew=16.59, humidity=31.49, cloud=0.0, wind=19.41, temperature=13.38, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T11:34:24.586', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 13:35:19,633 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 13:35:19,645 [DEBUG][       Thread-256596][   transport.py][1871] : starting thread (client mode): 0xc54b6c20
2025-06-13 13:35:19,645 [DEBUG][       Thread-256596][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 13:35:19,659 [DEBUG][       Thread-256596][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 13:35:19,660 [ INFO][       Thread-256596][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 13:35:19,667 [DEBUG][       Thread-256596][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 13:35:19,667 [DEBUG][       Thread-256596][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 13:35:19,667 [DEBUG][       Thread-256596][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 13:35:19,667 [DEBUG][       Thread-256596][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:35:19,667 [DEBUG][       Thread-256596][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:35:19,667 [DEBUG][       Thread-256596][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:35:19,667 [DEBUG][       Thread-256596][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:35:19,667 [DEBUG][       Thread-256596][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 13:35:19,667 [DEBUG][       Thread-256596][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 13:35:19,667 [DEBUG][       Thread-256596][   transport.py][1871] : client lang: <none>
2025-06-13 13:35:19,667 [DEBUG][       Thread-256596][   transport.py][1871] : server lang: <none>
2025-06-13 13:35:19,667 [DEBUG][       Thread-256596][   transport.py][1871] : kex follows: False
2025-06-13 13:35:19,667 [DEBUG][       Thread-256596][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 13:35:19,668 [DEBUG][       Thread-256596][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 13:35:19,668 [DEBUG][       Thread-256596][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 13:35:19,668 [DEBUG][       Thread-256596][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 13:35:19,668 [DEBUG][       Thread-256596][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 13:35:19,668 [DEBUG][       Thread-256596][   transport.py][1871] : Compression: none
2025-06-13 13:35:19,668 [DEBUG][       Thread-256596][   transport.py][1871] : === End of kex handshake ===
2025-06-13 13:35:19,725 [DEBUG][       Thread-256596][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 13:35:19,726 [DEBUG][       Thread-256596][   transport.py][1871] : Switch to new keys ...
2025-06-13 13:35:19,726 [DEBUG][       Thread-256596][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 13:35:19,727 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 13:35:19,727 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 13:35:19,781 [DEBUG][       Thread-256596][   transport.py][1871] : userauth is OK
2025-06-13 13:35:19,782 [DEBUG][       Thread-256596][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 13:35:19,782 [DEBUG][       Thread-256596][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 13:35:19,782 [DEBUG][       Thread-256596][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 13:35:19,782 [DEBUG][       Thread-256596][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 13:35:19,801 [ INFO][       Thread-256596][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 13:35:19,802 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 13:35:19,802 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 13:35:20,795 [DEBUG][       Thread-256596][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 13:35:20,795 [DEBUG][       Thread-256596][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 13:35:20,843 [DEBUG][       Thread-256596][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 13:35:20,844 [DEBUG][       Thread-256596][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 13:35:20,854 [DEBUG][       Thread-256596][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 13:35:20,865 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 13:35:20,865 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 13:35:20,875 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 13:35:20,887 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 13:35:20,887 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 13:35:20,888 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 13:35:20,897 [DEBUG][       Thread-256596][   transport.py][1871] : EOF in transport thread
2025-06-13 13:35:27,697 [DEBUG][Thread-256598 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:35:30,898 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 13:35:30,898 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 13:35:30,898 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 13:35:30,899 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 13:35:31,356 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 13, 35, 11), 17.29, 30.02, 0.0, 21.84, 13.54, 0, 0, 0, 2, 0, 0),)
2025-06-13 13:35:31,356 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 13:35:11
2025-06-13 13:35:31,436 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 13:35:31,442 [DEBUG][       Thread-256599][   transport.py][1871] : starting thread (client mode): 0x86392200
2025-06-13 13:35:31,442 [DEBUG][       Thread-256599][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 13:35:31,462 [DEBUG][       Thread-256599][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 13:35:31,462 [ INFO][       Thread-256599][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 13:35:31,466 [DEBUG][       Thread-256599][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 13:35:31,466 [DEBUG][       Thread-256599][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 13:35:31,466 [DEBUG][       Thread-256599][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 13:35:31,466 [DEBUG][       Thread-256599][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:35:31,466 [DEBUG][       Thread-256599][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:35:31,466 [DEBUG][       Thread-256599][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:35:31,466 [DEBUG][       Thread-256599][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:35:31,466 [DEBUG][       Thread-256599][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 13:35:31,466 [DEBUG][       Thread-256599][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 13:35:31,466 [DEBUG][       Thread-256599][   transport.py][1871] : client lang: <none>
2025-06-13 13:35:31,466 [DEBUG][       Thread-256599][   transport.py][1871] : server lang: <none>
2025-06-13 13:35:31,466 [DEBUG][       Thread-256599][   transport.py][1871] : kex follows: False
2025-06-13 13:35:31,466 [DEBUG][       Thread-256599][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 13:35:31,466 [DEBUG][       Thread-256599][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 13:35:31,466 [DEBUG][       Thread-256599][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 13:35:31,466 [DEBUG][       Thread-256599][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 13:35:31,466 [DEBUG][       Thread-256599][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 13:35:31,466 [DEBUG][       Thread-256599][   transport.py][1871] : Compression: none
2025-06-13 13:35:31,466 [DEBUG][       Thread-256599][   transport.py][1871] : === End of kex handshake ===
2025-06-13 13:35:31,484 [DEBUG][       Thread-256599][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 13:35:31,484 [DEBUG][       Thread-256599][   transport.py][1871] : Switch to new keys ...
2025-06-13 13:35:31,484 [DEBUG][       Thread-256599][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 13:35:31,485 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 13:35:31,485 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 13:35:31,485 [DEBUG][       Thread-256599][   transport.py][1871] : userauth is OK
2025-06-13 13:35:31,509 [ INFO][       Thread-256599][   transport.py][1871] : Authentication (password) successful!
2025-06-13 13:35:31,509 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 13:35:32,117 [DEBUG][       Thread-256599][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 13:35:32,117 [DEBUG][       Thread-256599][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 13:35:32,161 [DEBUG][       Thread-256599][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 13:35:32,161 [DEBUG][       Thread-256599][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 13:35:32,163 [DEBUG][       Thread-256599][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 13:35:32,168 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 13:35:32,168 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 13:35:32,169 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 13:35:32,170 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 13:35:32,173 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 13:35:32,173 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 13:35:32,174 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 13:35:32,174 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 13:35:32,174 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.482576 -999.00  +13.50  24.90     34   -1.60 1 1 1 1 1   888    0 18.84 169.88 ----- 22.5 24.9 28.2 27.4 17.8 -30.7 16.6 -32.2 16.9 -30.9 18.1 -28.8
2025-06-13 13:35:32,174 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 13:35:32,174 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 13:35:32,174 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.482576
2025-06-13 13:35:32,174 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 13:35:32,174 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 13:35:32,174 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 13:35:32,174 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 13:35:32,174 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 13:35:32,174 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T13:35:11', tmtdew=17.29, humidity=30.02, cloud=0.0, wind=21.84, temperature=13.54, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T11:34:54.566', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 13:35:32,175 [DEBUG][       Thread-256599][   transport.py][1871] : EOF in transport thread
2025-06-13 13:35:32,247 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 13:35:32,256 [DEBUG][       Thread-256602][   transport.py][1871] : starting thread (client mode): 0x863c91e0
2025-06-13 13:35:32,256 [DEBUG][       Thread-256602][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 13:35:32,271 [DEBUG][       Thread-256602][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 13:35:32,271 [ INFO][       Thread-256602][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 13:35:32,279 [DEBUG][       Thread-256602][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 13:35:32,279 [DEBUG][       Thread-256602][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 13:35:32,279 [DEBUG][       Thread-256602][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 13:35:32,279 [DEBUG][       Thread-256602][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:35:32,279 [DEBUG][       Thread-256602][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:35:32,279 [DEBUG][       Thread-256602][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:35:32,279 [DEBUG][       Thread-256602][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:35:32,279 [DEBUG][       Thread-256602][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 13:35:32,279 [DEBUG][       Thread-256602][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 13:35:32,279 [DEBUG][       Thread-256602][   transport.py][1871] : client lang: <none>
2025-06-13 13:35:32,279 [DEBUG][       Thread-256602][   transport.py][1871] : server lang: <none>
2025-06-13 13:35:32,279 [DEBUG][       Thread-256602][   transport.py][1871] : kex follows: False
2025-06-13 13:35:32,279 [DEBUG][       Thread-256602][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 13:35:32,279 [DEBUG][       Thread-256602][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 13:35:32,279 [DEBUG][       Thread-256602][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 13:35:32,279 [DEBUG][       Thread-256602][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 13:35:32,279 [DEBUG][       Thread-256602][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 13:35:32,279 [DEBUG][       Thread-256602][   transport.py][1871] : Compression: none
2025-06-13 13:35:32,279 [DEBUG][       Thread-256602][   transport.py][1871] : === End of kex handshake ===
2025-06-13 13:35:32,342 [DEBUG][       Thread-256602][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 13:35:32,342 [DEBUG][       Thread-256602][   transport.py][1871] : Switch to new keys ...
2025-06-13 13:35:32,342 [DEBUG][       Thread-256602][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 13:35:32,342 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 13:35:32,342 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 13:35:32,398 [DEBUG][       Thread-256602][   transport.py][1871] : userauth is OK
2025-06-13 13:35:32,398 [DEBUG][       Thread-256602][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 13:35:32,398 [DEBUG][       Thread-256602][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 13:35:32,398 [DEBUG][       Thread-256602][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 13:35:32,398 [DEBUG][       Thread-256602][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 13:35:32,417 [ INFO][       Thread-256602][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 13:35:32,418 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 13:35:32,418 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 13:35:33,475 [DEBUG][       Thread-256602][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 13:35:33,476 [DEBUG][       Thread-256602][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 13:35:33,524 [DEBUG][       Thread-256602][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 13:35:33,524 [DEBUG][       Thread-256602][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 13:35:33,533 [DEBUG][       Thread-256602][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 13:35:33,542 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 13:35:33,542 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 13:35:33,552 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 13:35:33,561 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 13:35:33,561 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 13:35:33,562 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 13:35:33,570 [DEBUG][       Thread-256602][   transport.py][1871] : EOF in transport thread
2025-06-13 13:35:36,718 [DEBUG][Thread-256604 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:35:42,166 [DEBUG][Thread-256605 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:35:43,240 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:35:43,240 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:35:43,572 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 13:35:43,572 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 13:35:43,581 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 13:35:43,584 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 13:35:44,042 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 13, 35, 11), 17.29, 30.02, 0.0, 21.84, 13.54, 0, 0, 0, 2, 0, 0),)
2025-06-13 13:35:44,042 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 13:35:11
2025-06-13 13:35:44,124 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 13:35:44,128 [DEBUG][       Thread-256606][   transport.py][1871] : starting thread (client mode): 0x842073a0
2025-06-13 13:35:44,128 [DEBUG][       Thread-256606][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 13:35:44,148 [DEBUG][       Thread-256606][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 13:35:44,148 [ INFO][       Thread-256606][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 13:35:44,151 [DEBUG][       Thread-256606][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 13:35:44,151 [DEBUG][       Thread-256606][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 13:35:44,151 [DEBUG][       Thread-256606][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 13:35:44,151 [DEBUG][       Thread-256606][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:35:44,151 [DEBUG][       Thread-256606][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:35:44,152 [DEBUG][       Thread-256606][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:35:44,152 [DEBUG][       Thread-256606][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:35:44,152 [DEBUG][       Thread-256606][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 13:35:44,152 [DEBUG][       Thread-256606][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 13:35:44,152 [DEBUG][       Thread-256606][   transport.py][1871] : client lang: <none>
2025-06-13 13:35:44,152 [DEBUG][       Thread-256606][   transport.py][1871] : server lang: <none>
2025-06-13 13:35:44,152 [DEBUG][       Thread-256606][   transport.py][1871] : kex follows: False
2025-06-13 13:35:44,152 [DEBUG][       Thread-256606][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 13:35:44,152 [DEBUG][       Thread-256606][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 13:35:44,152 [DEBUG][       Thread-256606][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 13:35:44,152 [DEBUG][       Thread-256606][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 13:35:44,152 [DEBUG][       Thread-256606][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 13:35:44,152 [DEBUG][       Thread-256606][   transport.py][1871] : Compression: none
2025-06-13 13:35:44,152 [DEBUG][       Thread-256606][   transport.py][1871] : === End of kex handshake ===
2025-06-13 13:35:44,168 [DEBUG][       Thread-256606][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 13:35:44,168 [DEBUG][       Thread-256606][   transport.py][1871] : Switch to new keys ...
2025-06-13 13:35:44,168 [DEBUG][       Thread-256606][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 13:35:44,168 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 13:35:44,168 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 13:35:44,169 [DEBUG][       Thread-256606][   transport.py][1871] : userauth is OK
2025-06-13 13:35:44,193 [ INFO][       Thread-256606][   transport.py][1871] : Authentication (password) successful!
2025-06-13 13:35:44,193 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 13:35:44,818 [DEBUG][       Thread-256606][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 13:35:44,818 [DEBUG][       Thread-256606][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 13:35:44,860 [DEBUG][       Thread-256606][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 13:35:44,860 [DEBUG][       Thread-256606][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 13:35:44,863 [DEBUG][       Thread-256606][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 13:35:44,874 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 13:35:44,874 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 13:35:44,875 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 13:35:44,876 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 13:35:44,879 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 13:35:44,880 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 13:35:44,880 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 13:35:44,880 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 13:35:44,880 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.482576 -999.00  +13.50  24.90     34   -1.60 1 1 1 1 1   888    0 18.84 169.88 ----- 22.5 24.9 28.2 27.4 17.8 -30.7 16.6 -32.2 16.9 -30.9 18.1 -28.8
2025-06-13 13:35:44,880 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 13:35:44,880 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 13:35:44,880 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.482576
2025-06-13 13:35:44,880 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 13:35:44,880 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 13:35:44,880 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 13:35:44,880 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 13:35:44,880 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 13:35:44,880 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T13:35:11', tmtdew=17.29, humidity=30.02, cloud=0.0, wind=21.84, temperature=13.54, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T11:34:54.566', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 13:35:44,881 [DEBUG][       Thread-256606][   transport.py][1871] : EOF in transport thread
2025-06-13 13:35:44,955 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 13:35:44,966 [DEBUG][       Thread-256609][   transport.py][1871] : starting thread (client mode): 0x867b7640
2025-06-13 13:35:44,966 [DEBUG][       Thread-256609][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 13:35:44,981 [DEBUG][       Thread-256609][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 13:35:44,981 [ INFO][       Thread-256609][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 13:35:44,989 [DEBUG][       Thread-256609][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 13:35:44,989 [DEBUG][       Thread-256609][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 13:35:44,989 [DEBUG][       Thread-256609][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 13:35:44,989 [DEBUG][       Thread-256609][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:35:44,989 [DEBUG][       Thread-256609][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:35:44,989 [DEBUG][       Thread-256609][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:35:44,989 [DEBUG][       Thread-256609][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:35:44,989 [DEBUG][       Thread-256609][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 13:35:44,989 [DEBUG][       Thread-256609][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 13:35:44,989 [DEBUG][       Thread-256609][   transport.py][1871] : client lang: <none>
2025-06-13 13:35:44,989 [DEBUG][       Thread-256609][   transport.py][1871] : server lang: <none>
2025-06-13 13:35:44,989 [DEBUG][       Thread-256609][   transport.py][1871] : kex follows: False
2025-06-13 13:35:44,989 [DEBUG][       Thread-256609][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 13:35:44,989 [DEBUG][       Thread-256609][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 13:35:44,989 [DEBUG][       Thread-256609][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 13:35:44,989 [DEBUG][       Thread-256609][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 13:35:44,989 [DEBUG][       Thread-256609][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 13:35:44,989 [DEBUG][       Thread-256609][   transport.py][1871] : Compression: none
2025-06-13 13:35:44,989 [DEBUG][       Thread-256609][   transport.py][1871] : === End of kex handshake ===
2025-06-13 13:35:45,044 [DEBUG][       Thread-256609][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 13:35:45,044 [DEBUG][       Thread-256609][   transport.py][1871] : Switch to new keys ...
2025-06-13 13:35:45,044 [DEBUG][       Thread-256609][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 13:35:45,044 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 13:35:45,044 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 13:35:45,103 [DEBUG][       Thread-256609][   transport.py][1871] : userauth is OK
2025-06-13 13:35:45,103 [DEBUG][       Thread-256609][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 13:35:45,103 [DEBUG][       Thread-256609][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 13:35:45,103 [DEBUG][       Thread-256609][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 13:35:45,103 [DEBUG][       Thread-256609][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 13:35:45,121 [ INFO][       Thread-256609][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 13:35:45,121 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 13:35:45,121 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 13:35:45,749 [DEBUG][Thread-256611 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:35:46,228 [DEBUG][       Thread-256609][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 13:35:46,228 [DEBUG][       Thread-256609][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 13:35:46,276 [DEBUG][       Thread-256609][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 13:35:46,276 [DEBUG][       Thread-256609][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 13:35:46,285 [DEBUG][       Thread-256609][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 13:35:46,296 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 13:35:46,296 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 13:35:46,307 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 13:35:46,317 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 13:35:46,317 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 13:35:46,317 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 13:35:46,325 [DEBUG][       Thread-256609][   transport.py][1871] : EOF in transport thread
2025-06-13 13:35:53,479 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:35:53,480 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:35:54,770 [DEBUG][Thread-256612 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:35:56,328 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 13:35:56,328 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 13:35:56,328 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 13:35:56,331 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 13:35:56,798 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 13, 35, 43), 17.44, 29.72, 0.0, 21.88, 13.53, 0, 0, 0, 2, 0, 0),)
2025-06-13 13:35:56,798 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 13:35:43
2025-06-13 13:35:56,880 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 13:35:56,886 [DEBUG][       Thread-256613][   transport.py][1871] : starting thread (client mode): 0x86390490
2025-06-13 13:35:56,886 [DEBUG][       Thread-256613][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 13:35:56,905 [DEBUG][       Thread-256613][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 13:35:56,905 [ INFO][       Thread-256613][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 13:35:56,908 [DEBUG][       Thread-256613][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 13:35:56,908 [DEBUG][       Thread-256613][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 13:35:56,908 [DEBUG][       Thread-256613][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 13:35:56,908 [DEBUG][       Thread-256613][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:35:56,908 [DEBUG][       Thread-256613][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:35:56,908 [DEBUG][       Thread-256613][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:35:56,908 [DEBUG][       Thread-256613][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:35:56,908 [DEBUG][       Thread-256613][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 13:35:56,909 [DEBUG][       Thread-256613][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 13:35:56,909 [DEBUG][       Thread-256613][   transport.py][1871] : client lang: <none>
2025-06-13 13:35:56,909 [DEBUG][       Thread-256613][   transport.py][1871] : server lang: <none>
2025-06-13 13:35:56,909 [DEBUG][       Thread-256613][   transport.py][1871] : kex follows: False
2025-06-13 13:35:56,909 [DEBUG][       Thread-256613][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 13:35:56,909 [DEBUG][       Thread-256613][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 13:35:56,909 [DEBUG][       Thread-256613][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 13:35:56,909 [DEBUG][       Thread-256613][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 13:35:56,909 [DEBUG][       Thread-256613][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 13:35:56,909 [DEBUG][       Thread-256613][   transport.py][1871] : Compression: none
2025-06-13 13:35:56,909 [DEBUG][       Thread-256613][   transport.py][1871] : === End of kex handshake ===
2025-06-13 13:35:56,926 [DEBUG][       Thread-256613][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 13:35:56,927 [DEBUG][       Thread-256613][   transport.py][1871] : Switch to new keys ...
2025-06-13 13:35:56,927 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 13:35:56,927 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 13:35:56,928 [DEBUG][       Thread-256613][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 13:35:56,928 [DEBUG][       Thread-256613][   transport.py][1871] : userauth is OK
2025-06-13 13:35:56,942 [ INFO][       Thread-256613][   transport.py][1871] : Authentication (password) successful!
2025-06-13 13:35:56,943 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 13:35:57,530 [DEBUG][       Thread-256613][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 13:35:57,531 [DEBUG][       Thread-256613][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 13:35:57,573 [DEBUG][       Thread-256613][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 13:35:57,573 [DEBUG][       Thread-256613][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 13:35:57,576 [DEBUG][       Thread-256613][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 13:35:57,589 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 13:35:57,589 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 13:35:57,591 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 13:35:57,592 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 13:35:57,597 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 13:35:57,599 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 13:35:57,599 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 13:35:57,600 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 13:35:57,600 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.482923 -999.00  +13.10  23.78     33   -2.40 1 1 1 1 1   888    0 19.52 189.26 ----- 22.1 23.8 46.4 31.6 17.7 -31.5 16.6 -33.1 16.7 -31.2 17.9 -28.6
2025-06-13 13:35:57,600 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 13:35:57,600 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 13:35:57,600 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.482923
2025-06-13 13:35:57,600 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 13:35:57,601 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 13:35:57,601 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 13:35:57,601 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 13:35:57,601 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 13:35:57,601 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T13:35:43', tmtdew=17.44, humidity=29.72, cloud=0.0, wind=21.88, temperature=13.53, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T11:35:24.547', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 13:35:57,602 [DEBUG][       Thread-256613][   transport.py][1871] : EOF in transport thread
2025-06-13 13:35:57,685 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 13:35:57,694 [DEBUG][       Thread-256616][   transport.py][1871] : starting thread (client mode): 0x84206830
2025-06-13 13:35:57,694 [DEBUG][       Thread-256616][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 13:35:57,710 [DEBUG][       Thread-256616][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 13:35:57,710 [ INFO][       Thread-256616][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 13:35:57,718 [DEBUG][       Thread-256616][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 13:35:57,718 [DEBUG][       Thread-256616][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 13:35:57,718 [DEBUG][       Thread-256616][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 13:35:57,718 [DEBUG][       Thread-256616][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:35:57,718 [DEBUG][       Thread-256616][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:35:57,718 [DEBUG][       Thread-256616][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:35:57,718 [DEBUG][       Thread-256616][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:35:57,718 [DEBUG][       Thread-256616][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 13:35:57,718 [DEBUG][       Thread-256616][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 13:35:57,718 [DEBUG][       Thread-256616][   transport.py][1871] : client lang: <none>
2025-06-13 13:35:57,718 [DEBUG][       Thread-256616][   transport.py][1871] : server lang: <none>
2025-06-13 13:35:57,718 [DEBUG][       Thread-256616][   transport.py][1871] : kex follows: False
2025-06-13 13:35:57,718 [DEBUG][       Thread-256616][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 13:35:57,718 [DEBUG][       Thread-256616][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 13:35:57,718 [DEBUG][       Thread-256616][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 13:35:57,719 [DEBUG][       Thread-256616][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 13:35:57,719 [DEBUG][       Thread-256616][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 13:35:57,719 [DEBUG][       Thread-256616][   transport.py][1871] : Compression: none
2025-06-13 13:35:57,719 [DEBUG][       Thread-256616][   transport.py][1871] : === End of kex handshake ===
2025-06-13 13:35:57,777 [DEBUG][       Thread-256616][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 13:35:57,778 [DEBUG][       Thread-256616][   transport.py][1871] : Switch to new keys ...
2025-06-13 13:35:57,779 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 13:35:57,779 [DEBUG][       Thread-256616][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 13:35:57,780 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 13:35:57,834 [DEBUG][       Thread-256616][   transport.py][1871] : userauth is OK
2025-06-13 13:35:57,834 [DEBUG][       Thread-256616][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 13:35:57,834 [DEBUG][       Thread-256616][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 13:35:57,834 [DEBUG][       Thread-256616][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 13:35:57,834 [DEBUG][       Thread-256616][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 13:35:57,853 [ INFO][       Thread-256616][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 13:35:57,854 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 13:35:57,854 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 13:35:58,865 [DEBUG][       Thread-256616][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 13:35:58,865 [DEBUG][       Thread-256616][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 13:35:58,916 [DEBUG][       Thread-256616][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 13:35:58,916 [DEBUG][       Thread-256616][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 13:35:58,926 [DEBUG][       Thread-256616][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 13:35:58,935 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 13:35:58,935 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 13:35:58,944 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 13:35:58,953 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 13:35:58,954 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 13:35:58,954 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 13:35:58,962 [DEBUG][       Thread-256616][   transport.py][1871] : EOF in transport thread
2025-06-13 13:36:03,793 [DEBUG][Thread-256618 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:36:08,964 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 13:36:08,964 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 13:36:08,964 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 13:36:08,965 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 13:36:09,438 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 13, 35, 43), 17.44, 29.72, 0.0, 21.88, 13.53, 0, 0, 0, 2, 0, 0),)
2025-06-13 13:36:09,438 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 13:35:43
2025-06-13 13:36:09,524 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 13:36:09,530 [DEBUG][       Thread-256619][   transport.py][1871] : starting thread (client mode): 0x867b78b0
2025-06-13 13:36:09,531 [DEBUG][       Thread-256619][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 13:36:09,551 [DEBUG][       Thread-256619][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 13:36:09,551 [ INFO][       Thread-256619][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 13:36:09,555 [DEBUG][       Thread-256619][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 13:36:09,555 [DEBUG][       Thread-256619][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 13:36:09,555 [DEBUG][       Thread-256619][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 13:36:09,555 [DEBUG][       Thread-256619][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:36:09,555 [DEBUG][       Thread-256619][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:36:09,555 [DEBUG][       Thread-256619][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:36:09,555 [DEBUG][       Thread-256619][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:36:09,555 [DEBUG][       Thread-256619][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 13:36:09,555 [DEBUG][       Thread-256619][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 13:36:09,555 [DEBUG][       Thread-256619][   transport.py][1871] : client lang: <none>
2025-06-13 13:36:09,555 [DEBUG][       Thread-256619][   transport.py][1871] : server lang: <none>
2025-06-13 13:36:09,555 [DEBUG][       Thread-256619][   transport.py][1871] : kex follows: False
2025-06-13 13:36:09,555 [DEBUG][       Thread-256619][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 13:36:09,555 [DEBUG][       Thread-256619][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 13:36:09,555 [DEBUG][       Thread-256619][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 13:36:09,555 [DEBUG][       Thread-256619][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 13:36:09,555 [DEBUG][       Thread-256619][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 13:36:09,555 [DEBUG][       Thread-256619][   transport.py][1871] : Compression: none
2025-06-13 13:36:09,555 [DEBUG][       Thread-256619][   transport.py][1871] : === End of kex handshake ===
2025-06-13 13:36:09,571 [DEBUG][       Thread-256619][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 13:36:09,571 [DEBUG][       Thread-256619][   transport.py][1871] : Switch to new keys ...
2025-06-13 13:36:09,571 [DEBUG][       Thread-256619][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 13:36:09,572 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 13:36:09,572 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 13:36:09,572 [DEBUG][       Thread-256619][   transport.py][1871] : userauth is OK
2025-06-13 13:36:09,596 [ INFO][       Thread-256619][   transport.py][1871] : Authentication (password) successful!
2025-06-13 13:36:09,596 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 13:36:10,262 [DEBUG][       Thread-256619][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 13:36:10,262 [DEBUG][       Thread-256619][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 13:36:10,304 [DEBUG][       Thread-256619][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 13:36:10,304 [DEBUG][       Thread-256619][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 13:36:10,307 [DEBUG][       Thread-256619][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 13:36:10,318 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 13:36:10,318 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 13:36:10,319 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 13:36:10,320 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 13:36:10,323 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 13:36:10,324 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 13:36:10,324 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 13:36:10,324 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 13:36:10,324 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.482923 -999.00  +13.10  23.78     33   -2.40 1 1 1 1 1   888    0 19.52 189.26 ----- 22.1 23.8 46.4 31.6 17.7 -31.5 16.6 -33.1 16.7 -31.2 17.9 -28.6
2025-06-13 13:36:10,324 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 13:36:10,324 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 13:36:10,324 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.482923
2025-06-13 13:36:10,324 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 13:36:10,324 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 13:36:10,324 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 13:36:10,324 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 13:36:10,324 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 13:36:10,324 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T13:35:43', tmtdew=17.44, humidity=29.72, cloud=0.0, wind=21.88, temperature=13.53, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T11:35:24.547', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 13:36:10,325 [DEBUG][       Thread-256619][   transport.py][1871] : EOF in transport thread
2025-06-13 13:36:10,397 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 13:36:10,408 [DEBUG][       Thread-256622][   transport.py][1871] : starting thread (client mode): 0x86893fd0
2025-06-13 13:36:10,408 [DEBUG][       Thread-256622][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 13:36:10,423 [DEBUG][       Thread-256622][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 13:36:10,423 [ INFO][       Thread-256622][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 13:36:10,431 [DEBUG][       Thread-256622][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 13:36:10,431 [DEBUG][       Thread-256622][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 13:36:10,431 [DEBUG][       Thread-256622][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 13:36:10,431 [DEBUG][       Thread-256622][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:36:10,431 [DEBUG][       Thread-256622][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:36:10,431 [DEBUG][       Thread-256622][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:36:10,431 [DEBUG][       Thread-256622][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:36:10,431 [DEBUG][       Thread-256622][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 13:36:10,431 [DEBUG][       Thread-256622][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 13:36:10,431 [DEBUG][       Thread-256622][   transport.py][1871] : client lang: <none>
2025-06-13 13:36:10,431 [DEBUG][       Thread-256622][   transport.py][1871] : server lang: <none>
2025-06-13 13:36:10,431 [DEBUG][       Thread-256622][   transport.py][1871] : kex follows: False
2025-06-13 13:36:10,431 [DEBUG][       Thread-256622][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 13:36:10,431 [DEBUG][       Thread-256622][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 13:36:10,431 [DEBUG][       Thread-256622][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 13:36:10,431 [DEBUG][       Thread-256622][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 13:36:10,431 [DEBUG][       Thread-256622][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 13:36:10,431 [DEBUG][       Thread-256622][   transport.py][1871] : Compression: none
2025-06-13 13:36:10,431 [DEBUG][       Thread-256622][   transport.py][1871] : === End of kex handshake ===
2025-06-13 13:36:10,494 [DEBUG][       Thread-256622][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 13:36:10,494 [DEBUG][       Thread-256622][   transport.py][1871] : Switch to new keys ...
2025-06-13 13:36:10,494 [DEBUG][       Thread-256622][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 13:36:10,495 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 13:36:10,495 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 13:36:10,549 [DEBUG][       Thread-256622][   transport.py][1871] : userauth is OK
2025-06-13 13:36:10,549 [DEBUG][       Thread-256622][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 13:36:10,549 [DEBUG][       Thread-256622][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 13:36:10,549 [DEBUG][       Thread-256622][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 13:36:10,549 [DEBUG][       Thread-256622][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 13:36:10,563 [ INFO][       Thread-256622][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 13:36:10,563 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 13:36:10,563 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 13:36:11,599 [DEBUG][       Thread-256622][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 13:36:11,599 [DEBUG][       Thread-256622][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 13:36:11,648 [DEBUG][       Thread-256622][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 13:36:11,648 [DEBUG][       Thread-256622][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 13:36:11,657 [DEBUG][       Thread-256622][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 13:36:11,667 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 13:36:11,667 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 13:36:11,678 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 13:36:11,692 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 13:36:11,692 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 13:36:11,693 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 13:36:11,700 [DEBUG][       Thread-256622][   transport.py][1871] : EOF in transport thread
2025-06-13 13:36:12,826 [DEBUG][Thread-256624 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:36:15,593 [DEBUG][Thread-256625 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:36:21,700 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 13:36:21,700 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 13:36:21,700 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 13:36:21,703 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 13:36:21,843 [DEBUG][Thread-256626 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:36:22,172 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 13, 36, 15), 17.3, 29.96, 0.0, 20.59, 13.34, 0, 0, 0, 2, 0, 0),)
2025-06-13 13:36:22,172 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 13:36:15
2025-06-13 13:36:22,250 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 13:36:22,255 [DEBUG][       Thread-256627][   transport.py][1871] : starting thread (client mode): 0x842047c0
2025-06-13 13:36:22,255 [DEBUG][       Thread-256627][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 13:36:22,276 [DEBUG][       Thread-256627][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 13:36:22,276 [ INFO][       Thread-256627][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 13:36:22,279 [DEBUG][       Thread-256627][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 13:36:22,280 [DEBUG][       Thread-256627][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 13:36:22,280 [DEBUG][       Thread-256627][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 13:36:22,280 [DEBUG][       Thread-256627][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:36:22,280 [DEBUG][       Thread-256627][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:36:22,280 [DEBUG][       Thread-256627][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:36:22,280 [DEBUG][       Thread-256627][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:36:22,280 [DEBUG][       Thread-256627][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 13:36:22,280 [DEBUG][       Thread-256627][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 13:36:22,280 [DEBUG][       Thread-256627][   transport.py][1871] : client lang: <none>
2025-06-13 13:36:22,280 [DEBUG][       Thread-256627][   transport.py][1871] : server lang: <none>
2025-06-13 13:36:22,280 [DEBUG][       Thread-256627][   transport.py][1871] : kex follows: False
2025-06-13 13:36:22,280 [DEBUG][       Thread-256627][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 13:36:22,280 [DEBUG][       Thread-256627][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 13:36:22,280 [DEBUG][       Thread-256627][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 13:36:22,280 [DEBUG][       Thread-256627][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 13:36:22,280 [DEBUG][       Thread-256627][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 13:36:22,280 [DEBUG][       Thread-256627][   transport.py][1871] : Compression: none
2025-06-13 13:36:22,280 [DEBUG][       Thread-256627][   transport.py][1871] : === End of kex handshake ===
2025-06-13 13:36:22,296 [DEBUG][       Thread-256627][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 13:36:22,297 [DEBUG][       Thread-256627][   transport.py][1871] : Switch to new keys ...
2025-06-13 13:36:22,297 [DEBUG][       Thread-256627][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 13:36:22,298 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 13:36:22,298 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 13:36:22,299 [DEBUG][       Thread-256627][   transport.py][1871] : userauth is OK
2025-06-13 13:36:22,312 [ INFO][       Thread-256627][   transport.py][1871] : Authentication (password) successful!
2025-06-13 13:36:22,313 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 13:36:22,958 [DEBUG][       Thread-256627][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 13:36:22,959 [DEBUG][       Thread-256627][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 13:36:23,001 [DEBUG][       Thread-256627][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 13:36:23,001 [DEBUG][       Thread-256627][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 13:36:23,005 [DEBUG][       Thread-256627][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 13:36:23,016 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 13:36:23,017 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 13:36:23,019 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 13:36:23,021 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 13:36:23,027 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 13:36:23,030 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 13:36:23,030 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 13:36:23,030 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 13:36:23,031 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.482923 -999.00  +13.10  23.78     33   -2.40 1 1 1 1 1   888    0 19.52 189.26 ----- 22.1 23.8 46.4 31.6 17.7 -31.5 16.6 -33.1 16.7 -31.2 17.9 -28.6
2025-06-13 13:36:23,031 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 13:36:23,031 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 13:36:23,031 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.482923
2025-06-13 13:36:23,031 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 13:36:23,032 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 13:36:23,032 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 13:36:23,032 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 13:36:23,032 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 13:36:23,032 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T13:36:15', tmtdew=17.3, humidity=29.96, cloud=0.0, wind=20.59, temperature=13.34, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T11:35:24.547', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 13:36:23,034 [DEBUG][       Thread-256627][   transport.py][1871] : EOF in transport thread
2025-06-13 13:36:23,116 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 13:36:23,125 [DEBUG][       Thread-256630][   transport.py][1871] : starting thread (client mode): 0x86739330
2025-06-13 13:36:23,125 [DEBUG][       Thread-256630][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 13:36:23,140 [DEBUG][       Thread-256630][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 13:36:23,140 [ INFO][       Thread-256630][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 13:36:23,148 [DEBUG][       Thread-256630][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 13:36:23,148 [DEBUG][       Thread-256630][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 13:36:23,148 [DEBUG][       Thread-256630][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 13:36:23,148 [DEBUG][       Thread-256630][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:36:23,148 [DEBUG][       Thread-256630][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:36:23,148 [DEBUG][       Thread-256630][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:36:23,148 [DEBUG][       Thread-256630][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:36:23,148 [DEBUG][       Thread-256630][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 13:36:23,148 [DEBUG][       Thread-256630][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 13:36:23,148 [DEBUG][       Thread-256630][   transport.py][1871] : client lang: <none>
2025-06-13 13:36:23,148 [DEBUG][       Thread-256630][   transport.py][1871] : server lang: <none>
2025-06-13 13:36:23,148 [DEBUG][       Thread-256630][   transport.py][1871] : kex follows: False
2025-06-13 13:36:23,148 [DEBUG][       Thread-256630][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 13:36:23,148 [DEBUG][       Thread-256630][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 13:36:23,148 [DEBUG][       Thread-256630][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 13:36:23,149 [DEBUG][       Thread-256630][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 13:36:23,149 [DEBUG][       Thread-256630][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 13:36:23,149 [DEBUG][       Thread-256630][   transport.py][1871] : Compression: none
2025-06-13 13:36:23,149 [DEBUG][       Thread-256630][   transport.py][1871] : === End of kex handshake ===
2025-06-13 13:36:23,206 [DEBUG][       Thread-256630][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 13:36:23,207 [DEBUG][       Thread-256630][   transport.py][1871] : Switch to new keys ...
2025-06-13 13:36:23,208 [DEBUG][       Thread-256630][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 13:36:23,208 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 13:36:23,209 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 13:36:23,269 [DEBUG][       Thread-256630][   transport.py][1871] : userauth is OK
2025-06-13 13:36:23,270 [DEBUG][       Thread-256630][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 13:36:23,270 [DEBUG][       Thread-256630][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 13:36:23,270 [DEBUG][       Thread-256630][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 13:36:23,270 [DEBUG][       Thread-256630][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 13:36:23,289 [ INFO][       Thread-256630][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 13:36:23,290 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 13:36:23,290 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 13:36:24,320 [DEBUG][       Thread-256630][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 13:36:24,320 [DEBUG][       Thread-256630][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 13:36:24,368 [DEBUG][       Thread-256630][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 13:36:24,368 [DEBUG][       Thread-256630][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 13:36:24,377 [DEBUG][       Thread-256630][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 13:36:24,386 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 13:36:24,387 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 13:36:24,396 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 13:36:24,405 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 13:36:24,405 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 13:36:24,406 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 13:36:24,414 [DEBUG][       Thread-256630][   transport.py][1871] : EOF in transport thread
2025-06-13 13:36:30,864 [DEBUG][Thread-256632 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:36:34,416 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 13:36:34,417 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 13:36:34,417 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 13:36:34,420 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 13:36:34,873 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 13, 36, 15), 17.3, 29.96, 0.0, 20.59, 13.34, 0, 0, 0, 2, 0, 0),)
2025-06-13 13:36:34,874 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 13:36:15
2025-06-13 13:36:34,953 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 13:36:34,957 [DEBUG][       Thread-256633][   transport.py][1871] : starting thread (client mode): 0x84204d30
2025-06-13 13:36:34,957 [DEBUG][       Thread-256633][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 13:36:34,977 [DEBUG][       Thread-256633][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 13:36:34,977 [ INFO][       Thread-256633][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 13:36:34,980 [DEBUG][       Thread-256633][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 13:36:34,980 [DEBUG][       Thread-256633][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 13:36:34,980 [DEBUG][       Thread-256633][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 13:36:34,981 [DEBUG][       Thread-256633][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:36:34,981 [DEBUG][       Thread-256633][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:36:34,981 [DEBUG][       Thread-256633][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:36:34,981 [DEBUG][       Thread-256633][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:36:34,981 [DEBUG][       Thread-256633][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 13:36:34,981 [DEBUG][       Thread-256633][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 13:36:34,981 [DEBUG][       Thread-256633][   transport.py][1871] : client lang: <none>
2025-06-13 13:36:34,981 [DEBUG][       Thread-256633][   transport.py][1871] : server lang: <none>
2025-06-13 13:36:34,981 [DEBUG][       Thread-256633][   transport.py][1871] : kex follows: False
2025-06-13 13:36:34,981 [DEBUG][       Thread-256633][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 13:36:34,981 [DEBUG][       Thread-256633][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 13:36:34,981 [DEBUG][       Thread-256633][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 13:36:34,981 [DEBUG][       Thread-256633][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 13:36:34,981 [DEBUG][       Thread-256633][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 13:36:34,981 [DEBUG][       Thread-256633][   transport.py][1871] : Compression: none
2025-06-13 13:36:34,981 [DEBUG][       Thread-256633][   transport.py][1871] : === End of kex handshake ===
2025-06-13 13:36:34,997 [DEBUG][       Thread-256633][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 13:36:34,998 [DEBUG][       Thread-256633][   transport.py][1871] : Switch to new keys ...
2025-06-13 13:36:34,998 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 13:36:34,999 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 13:36:34,999 [DEBUG][       Thread-256633][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 13:36:35,000 [DEBUG][       Thread-256633][   transport.py][1871] : userauth is OK
2025-06-13 13:36:35,024 [ INFO][       Thread-256633][   transport.py][1871] : Authentication (password) successful!
2025-06-13 13:36:35,025 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 13:36:35,646 [DEBUG][       Thread-256633][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 13:36:35,646 [DEBUG][       Thread-256633][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 13:36:35,689 [DEBUG][       Thread-256633][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 13:36:35,689 [DEBUG][       Thread-256633][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 13:36:35,693 [DEBUG][       Thread-256633][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 13:36:35,706 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 13:36:35,707 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 13:36:35,709 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 13:36:35,711 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 13:36:35,717 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 13:36:35,719 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 13:36:35,719 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 13:36:35,720 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 13:36:35,720 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.483617 -999.00  +13.30  25.78     34   -1.90 1 1 1 1 1   888    0 19.45 176.71 ----- 29.4 25.8 57.4 28.8 17.7 -30.7 16.5 -32.8 16.7 -30.8 18.0 -28.1
2025-06-13 13:36:35,720 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 13:36:35,720 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 13:36:35,720 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.483617
2025-06-13 13:36:35,721 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 13:36:35,721 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 13:36:35,721 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 13:36:35,721 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 13:36:35,721 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 13:36:35,722 [DEBUG][       Thread-256633][   transport.py][1871] : EOF in transport thread
2025-06-13 13:36:35,722 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T13:36:15', tmtdew=17.3, humidity=29.96, cloud=0.0, wind=20.59, temperature=13.34, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T11:36:24.509', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 13:36:35,805 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 13:36:35,816 [DEBUG][       Thread-256636][   transport.py][1871] : starting thread (client mode): 0x867b78b0
2025-06-13 13:36:35,816 [DEBUG][       Thread-256636][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 13:36:35,831 [DEBUG][       Thread-256636][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 13:36:35,832 [ INFO][       Thread-256636][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 13:36:35,839 [DEBUG][       Thread-256636][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 13:36:35,839 [DEBUG][       Thread-256636][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 13:36:35,839 [DEBUG][       Thread-256636][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 13:36:35,839 [DEBUG][       Thread-256636][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:36:35,839 [DEBUG][       Thread-256636][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:36:35,839 [DEBUG][       Thread-256636][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:36:35,839 [DEBUG][       Thread-256636][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:36:35,839 [DEBUG][       Thread-256636][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 13:36:35,839 [DEBUG][       Thread-256636][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 13:36:35,839 [DEBUG][       Thread-256636][   transport.py][1871] : client lang: <none>
2025-06-13 13:36:35,840 [DEBUG][       Thread-256636][   transport.py][1871] : server lang: <none>
2025-06-13 13:36:35,840 [DEBUG][       Thread-256636][   transport.py][1871] : kex follows: False
2025-06-13 13:36:35,840 [DEBUG][       Thread-256636][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 13:36:35,840 [DEBUG][       Thread-256636][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 13:36:35,840 [DEBUG][       Thread-256636][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 13:36:35,840 [DEBUG][       Thread-256636][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 13:36:35,840 [DEBUG][       Thread-256636][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 13:36:35,840 [DEBUG][       Thread-256636][   transport.py][1871] : Compression: none
2025-06-13 13:36:35,840 [DEBUG][       Thread-256636][   transport.py][1871] : === End of kex handshake ===
2025-06-13 13:36:35,897 [DEBUG][       Thread-256636][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 13:36:35,898 [DEBUG][       Thread-256636][   transport.py][1871] : Switch to new keys ...
2025-06-13 13:36:35,907 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 13:36:35,908 [DEBUG][       Thread-256636][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 13:36:35,909 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 13:36:35,954 [DEBUG][       Thread-256636][   transport.py][1871] : userauth is OK
2025-06-13 13:36:35,954 [DEBUG][       Thread-256636][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 13:36:35,954 [DEBUG][       Thread-256636][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 13:36:35,954 [DEBUG][       Thread-256636][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 13:36:35,954 [DEBUG][       Thread-256636][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 13:36:35,977 [ INFO][       Thread-256636][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 13:36:35,977 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 13:36:35,978 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 13:36:36,983 [DEBUG][       Thread-256636][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 13:36:36,983 [DEBUG][       Thread-256636][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 13:36:37,033 [DEBUG][       Thread-256636][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 13:36:37,033 [DEBUG][       Thread-256636][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 13:36:37,048 [DEBUG][       Thread-256636][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 13:36:37,057 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 13:36:37,057 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 13:36:37,066 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 13:36:37,076 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 13:36:37,076 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 13:36:37,076 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 13:36:37,084 [DEBUG][       Thread-256636][   transport.py][1871] : EOF in transport thread
2025-06-13 13:36:39,899 [DEBUG][Thread-256638 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:36:43,322 [DEBUG][Thread-256639 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:36:44,404 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:36:44,405 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:36:47,084 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 13:36:47,084 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 13:36:47,084 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 13:36:47,084 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 13:36:47,562 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 13, 36, 15), 17.3, 29.96, 0.0, 20.59, 13.34, 0, 0, 0, 2, 0, 0),)
2025-06-13 13:36:47,563 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 13:36:15
2025-06-13 13:36:47,644 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 13:36:47,648 [DEBUG][       Thread-256640][   transport.py][1871] : starting thread (client mode): 0x84205d80
2025-06-13 13:36:47,648 [DEBUG][       Thread-256640][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 13:36:47,663 [DEBUG][       Thread-256640][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 13:36:47,663 [ INFO][       Thread-256640][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 13:36:47,667 [DEBUG][       Thread-256640][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 13:36:47,667 [DEBUG][       Thread-256640][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 13:36:47,667 [DEBUG][       Thread-256640][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 13:36:47,667 [DEBUG][       Thread-256640][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:36:47,667 [DEBUG][       Thread-256640][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:36:47,667 [DEBUG][       Thread-256640][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:36:47,667 [DEBUG][       Thread-256640][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:36:47,667 [DEBUG][       Thread-256640][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 13:36:47,667 [DEBUG][       Thread-256640][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 13:36:47,667 [DEBUG][       Thread-256640][   transport.py][1871] : client lang: <none>
2025-06-13 13:36:47,668 [DEBUG][       Thread-256640][   transport.py][1871] : server lang: <none>
2025-06-13 13:36:47,668 [DEBUG][       Thread-256640][   transport.py][1871] : kex follows: False
2025-06-13 13:36:47,668 [DEBUG][       Thread-256640][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 13:36:47,668 [DEBUG][       Thread-256640][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 13:36:47,668 [DEBUG][       Thread-256640][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 13:36:47,668 [DEBUG][       Thread-256640][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 13:36:47,668 [DEBUG][       Thread-256640][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 13:36:47,668 [DEBUG][       Thread-256640][   transport.py][1871] : Compression: none
2025-06-13 13:36:47,668 [DEBUG][       Thread-256640][   transport.py][1871] : === End of kex handshake ===
2025-06-13 13:36:47,680 [DEBUG][       Thread-256640][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 13:36:47,680 [DEBUG][       Thread-256640][   transport.py][1871] : Switch to new keys ...
2025-06-13 13:36:47,680 [DEBUG][       Thread-256640][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 13:36:47,680 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 13:36:47,680 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 13:36:47,681 [DEBUG][       Thread-256640][   transport.py][1871] : userauth is OK
2025-06-13 13:36:47,693 [ INFO][       Thread-256640][   transport.py][1871] : Authentication (password) successful!
2025-06-13 13:36:47,693 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 13:36:48,320 [DEBUG][       Thread-256640][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 13:36:48,321 [DEBUG][       Thread-256640][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 13:36:48,364 [DEBUG][       Thread-256640][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 13:36:48,364 [DEBUG][       Thread-256640][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 13:36:48,367 [DEBUG][       Thread-256640][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 13:36:48,378 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 13:36:48,378 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 13:36:48,379 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 13:36:48,380 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 13:36:48,383 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 13:36:48,384 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 13:36:48,384 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 13:36:48,384 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 13:36:48,384 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.483617 -999.00  +13.30  25.78     34   -1.90 1 1 1 1 1   888    0 19.45 176.71 ----- 29.4 25.8 57.4 28.8 17.7 -30.7 16.5 -32.8 16.7 -30.8 18.0 -28.1
2025-06-13 13:36:48,384 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 13:36:48,384 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 13:36:48,384 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.483617
2025-06-13 13:36:48,384 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 13:36:48,384 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 13:36:48,384 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 13:36:48,384 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 13:36:48,384 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 13:36:48,384 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T13:36:15', tmtdew=17.3, humidity=29.96, cloud=0.0, wind=20.59, temperature=13.34, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T11:36:24.509', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 13:36:48,385 [DEBUG][       Thread-256640][   transport.py][1871] : EOF in transport thread
2025-06-13 13:36:48,459 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 13:36:48,468 [DEBUG][       Thread-256643][   transport.py][1871] : starting thread (client mode): 0x86369ae0
2025-06-13 13:36:48,468 [DEBUG][       Thread-256643][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 13:36:48,487 [DEBUG][       Thread-256643][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 13:36:48,487 [ INFO][       Thread-256643][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 13:36:48,495 [DEBUG][       Thread-256643][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 13:36:48,495 [DEBUG][       Thread-256643][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 13:36:48,495 [DEBUG][       Thread-256643][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 13:36:48,495 [DEBUG][       Thread-256643][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:36:48,495 [DEBUG][       Thread-256643][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:36:48,495 [DEBUG][       Thread-256643][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:36:48,495 [DEBUG][       Thread-256643][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:36:48,495 [DEBUG][       Thread-256643][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 13:36:48,495 [DEBUG][       Thread-256643][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 13:36:48,495 [DEBUG][       Thread-256643][   transport.py][1871] : client lang: <none>
2025-06-13 13:36:48,495 [DEBUG][       Thread-256643][   transport.py][1871] : server lang: <none>
2025-06-13 13:36:48,495 [DEBUG][       Thread-256643][   transport.py][1871] : kex follows: False
2025-06-13 13:36:48,495 [DEBUG][       Thread-256643][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 13:36:48,495 [DEBUG][       Thread-256643][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 13:36:48,495 [DEBUG][       Thread-256643][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 13:36:48,495 [DEBUG][       Thread-256643][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 13:36:48,495 [DEBUG][       Thread-256643][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 13:36:48,495 [DEBUG][       Thread-256643][   transport.py][1871] : Compression: none
2025-06-13 13:36:48,495 [DEBUG][       Thread-256643][   transport.py][1871] : === End of kex handshake ===
2025-06-13 13:36:48,552 [DEBUG][       Thread-256643][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 13:36:48,552 [DEBUG][       Thread-256643][   transport.py][1871] : Switch to new keys ...
2025-06-13 13:36:48,552 [DEBUG][       Thread-256643][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 13:36:48,552 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 13:36:48,553 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 13:36:48,609 [DEBUG][       Thread-256643][   transport.py][1871] : userauth is OK
2025-06-13 13:36:48,609 [DEBUG][       Thread-256643][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 13:36:48,609 [DEBUG][       Thread-256643][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 13:36:48,609 [DEBUG][       Thread-256643][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 13:36:48,609 [DEBUG][       Thread-256643][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 13:36:48,623 [ INFO][       Thread-256643][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 13:36:48,623 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 13:36:48,623 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 13:36:48,917 [DEBUG][Thread-256645 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:36:49,688 [DEBUG][       Thread-256643][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 13:36:49,688 [DEBUG][       Thread-256643][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 13:36:49,736 [DEBUG][       Thread-256643][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 13:36:49,736 [DEBUG][       Thread-256643][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 13:36:49,745 [DEBUG][       Thread-256643][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 13:36:49,754 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 13:36:49,755 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 13:36:49,763 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 13:36:49,772 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 13:36:49,773 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 13:36:49,773 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 13:36:49,781 [DEBUG][       Thread-256643][   transport.py][1871] : EOF in transport thread
2025-06-13 13:36:53,616 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:36:53,617 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:36:57,941 [DEBUG][Thread-256646 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:36:59,783 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 13:36:59,784 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 13:36:59,784 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 13:36:59,787 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 13:37:00,249 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 13, 36, 47), 17.16, 30.25, 0.0, 16.48, 13.34, 0, 0, 0, 2, 0, 0),)
2025-06-13 13:37:00,249 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 13:36:47
2025-06-13 13:37:00,327 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 13:37:00,332 [DEBUG][       Thread-256647][   transport.py][1871] : starting thread (client mode): 0x84205ff0
2025-06-13 13:37:00,332 [DEBUG][       Thread-256647][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 13:37:00,353 [DEBUG][       Thread-256647][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 13:37:00,353 [ INFO][       Thread-256647][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 13:37:00,357 [DEBUG][       Thread-256647][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 13:37:00,357 [DEBUG][       Thread-256647][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 13:37:00,357 [DEBUG][       Thread-256647][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 13:37:00,357 [DEBUG][       Thread-256647][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:37:00,357 [DEBUG][       Thread-256647][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:37:00,357 [DEBUG][       Thread-256647][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:37:00,357 [DEBUG][       Thread-256647][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:37:00,357 [DEBUG][       Thread-256647][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 13:37:00,357 [DEBUG][       Thread-256647][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 13:37:00,358 [DEBUG][       Thread-256647][   transport.py][1871] : client lang: <none>
2025-06-13 13:37:00,358 [DEBUG][       Thread-256647][   transport.py][1871] : server lang: <none>
2025-06-13 13:37:00,358 [DEBUG][       Thread-256647][   transport.py][1871] : kex follows: False
2025-06-13 13:37:00,358 [DEBUG][       Thread-256647][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 13:37:00,358 [DEBUG][       Thread-256647][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 13:37:00,358 [DEBUG][       Thread-256647][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 13:37:00,358 [DEBUG][       Thread-256647][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 13:37:00,358 [DEBUG][       Thread-256647][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 13:37:00,358 [DEBUG][       Thread-256647][   transport.py][1871] : Compression: none
2025-06-13 13:37:00,358 [DEBUG][       Thread-256647][   transport.py][1871] : === End of kex handshake ===
2025-06-13 13:37:00,376 [DEBUG][       Thread-256647][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 13:37:00,376 [DEBUG][       Thread-256647][   transport.py][1871] : Switch to new keys ...
2025-06-13 13:37:00,377 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 13:37:00,377 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 13:37:00,378 [DEBUG][       Thread-256647][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 13:37:00,379 [DEBUG][       Thread-256647][   transport.py][1871] : userauth is OK
2025-06-13 13:37:00,392 [ INFO][       Thread-256647][   transport.py][1871] : Authentication (password) successful!
2025-06-13 13:37:00,392 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 13:37:01,044 [DEBUG][       Thread-256647][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 13:37:01,044 [DEBUG][       Thread-256647][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 13:37:01,085 [DEBUG][       Thread-256647][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 13:37:01,085 [DEBUG][       Thread-256647][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 13:37:01,088 [DEBUG][       Thread-256647][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 13:37:01,100 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 13:37:01,100 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 13:37:01,102 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 13:37:01,104 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 13:37:01,110 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 13:37:01,111 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 13:37:01,112 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 13:37:01,112 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 13:37:01,112 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.483617 -999.00  +13.30  25.78     34   -1.90 1 1 1 1 1   888    0 19.45 176.71 ----- 29.4 25.8 57.4 28.8 17.7 -30.7 16.5 -32.8 16.7 -30.8 18.0 -28.1
2025-06-13 13:37:01,112 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 13:37:01,113 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 13:37:01,113 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.483617
2025-06-13 13:37:01,113 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 13:37:01,114 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 13:37:01,114 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 13:37:01,114 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 13:37:01,114 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 13:37:01,114 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T13:36:47', tmtdew=17.16, humidity=30.25, cloud=0.0, wind=16.48, temperature=13.34, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T11:36:24.509', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 13:37:01,114 [DEBUG][       Thread-256647][   transport.py][1871] : EOF in transport thread
2025-06-13 13:37:01,197 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 13:37:01,217 [DEBUG][       Thread-256650][   transport.py][1871] : starting thread (client mode): 0x863bde40
2025-06-13 13:37:01,217 [DEBUG][       Thread-256650][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 13:37:01,233 [DEBUG][       Thread-256650][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 13:37:01,233 [ INFO][       Thread-256650][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 13:37:01,245 [DEBUG][       Thread-256650][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 13:37:01,245 [DEBUG][       Thread-256650][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 13:37:01,245 [DEBUG][       Thread-256650][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 13:37:01,245 [DEBUG][       Thread-256650][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:37:01,245 [DEBUG][       Thread-256650][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:37:01,245 [DEBUG][       Thread-256650][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:37:01,245 [DEBUG][       Thread-256650][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:37:01,245 [DEBUG][       Thread-256650][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 13:37:01,245 [DEBUG][       Thread-256650][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 13:37:01,245 [DEBUG][       Thread-256650][   transport.py][1871] : client lang: <none>
2025-06-13 13:37:01,245 [DEBUG][       Thread-256650][   transport.py][1871] : server lang: <none>
2025-06-13 13:37:01,245 [DEBUG][       Thread-256650][   transport.py][1871] : kex follows: False
2025-06-13 13:37:01,245 [DEBUG][       Thread-256650][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 13:37:01,245 [DEBUG][       Thread-256650][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 13:37:01,246 [DEBUG][       Thread-256650][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 13:37:01,246 [DEBUG][       Thread-256650][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 13:37:01,246 [DEBUG][       Thread-256650][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 13:37:01,246 [DEBUG][       Thread-256650][   transport.py][1871] : Compression: none
2025-06-13 13:37:01,246 [DEBUG][       Thread-256650][   transport.py][1871] : === End of kex handshake ===
2025-06-13 13:37:01,302 [DEBUG][       Thread-256650][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 13:37:01,303 [DEBUG][       Thread-256650][   transport.py][1871] : Switch to new keys ...
2025-06-13 13:37:01,303 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 13:37:01,304 [DEBUG][       Thread-256650][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 13:37:01,305 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 13:37:01,358 [DEBUG][       Thread-256650][   transport.py][1871] : userauth is OK
2025-06-13 13:37:01,358 [DEBUG][       Thread-256650][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 13:37:01,358 [DEBUG][       Thread-256650][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 13:37:01,358 [DEBUG][       Thread-256650][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 13:37:01,358 [DEBUG][       Thread-256650][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 13:37:01,376 [ INFO][       Thread-256650][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 13:37:01,376 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 13:37:01,377 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 13:37:02,410 [DEBUG][       Thread-256650][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 13:37:02,410 [DEBUG][       Thread-256650][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 13:37:02,460 [DEBUG][       Thread-256650][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 13:37:02,460 [DEBUG][       Thread-256650][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 13:37:02,469 [DEBUG][       Thread-256650][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 13:37:02,478 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 13:37:02,478 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 13:37:02,486 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 13:37:02,494 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 13:37:02,494 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 13:37:02,494 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 13:37:02,502 [DEBUG][       Thread-256650][   transport.py][1871] : EOF in transport thread
2025-06-13 13:37:06,964 [DEBUG][Thread-256652 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:37:12,497 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 13:37:12,497 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 13:37:12,497 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 13:37:12,500 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 13:37:12,947 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 13, 36, 47), 17.16, 30.25, 0.0, 16.48, 13.34, 0, 0, 0, 2, 0, 0),)
2025-06-13 13:37:12,947 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 13:36:47
2025-06-13 13:37:13,026 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 13:37:13,032 [DEBUG][       Thread-256653][   transport.py][1871] : starting thread (client mode): 0x86352080
2025-06-13 13:37:13,032 [DEBUG][       Thread-256653][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 13:37:13,052 [DEBUG][       Thread-256653][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 13:37:13,052 [ INFO][       Thread-256653][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 13:37:13,056 [DEBUG][       Thread-256653][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 13:37:13,056 [DEBUG][       Thread-256653][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 13:37:13,056 [DEBUG][       Thread-256653][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 13:37:13,056 [DEBUG][       Thread-256653][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:37:13,056 [DEBUG][       Thread-256653][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:37:13,056 [DEBUG][       Thread-256653][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:37:13,056 [DEBUG][       Thread-256653][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:37:13,056 [DEBUG][       Thread-256653][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 13:37:13,056 [DEBUG][       Thread-256653][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 13:37:13,056 [DEBUG][       Thread-256653][   transport.py][1871] : client lang: <none>
2025-06-13 13:37:13,056 [DEBUG][       Thread-256653][   transport.py][1871] : server lang: <none>
2025-06-13 13:37:13,056 [DEBUG][       Thread-256653][   transport.py][1871] : kex follows: False
2025-06-13 13:37:13,056 [DEBUG][       Thread-256653][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 13:37:13,056 [DEBUG][       Thread-256653][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 13:37:13,056 [DEBUG][       Thread-256653][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 13:37:13,056 [DEBUG][       Thread-256653][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 13:37:13,056 [DEBUG][       Thread-256653][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 13:37:13,056 [DEBUG][       Thread-256653][   transport.py][1871] : Compression: none
2025-06-13 13:37:13,056 [DEBUG][       Thread-256653][   transport.py][1871] : === End of kex handshake ===
2025-06-13 13:37:13,073 [DEBUG][       Thread-256653][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 13:37:13,074 [DEBUG][       Thread-256653][   transport.py][1871] : Switch to new keys ...
2025-06-13 13:37:13,074 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 13:37:13,075 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 13:37:13,075 [DEBUG][       Thread-256653][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 13:37:13,076 [DEBUG][       Thread-256653][   transport.py][1871] : userauth is OK
2025-06-13 13:37:13,100 [ INFO][       Thread-256653][   transport.py][1871] : Authentication (password) successful!
2025-06-13 13:37:13,101 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 13:37:13,749 [DEBUG][       Thread-256653][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 13:37:13,750 [DEBUG][       Thread-256653][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 13:37:13,793 [DEBUG][       Thread-256653][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 13:37:13,793 [DEBUG][       Thread-256653][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 13:37:13,797 [DEBUG][       Thread-256653][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 13:37:13,809 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 13:37:13,810 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 13:37:13,812 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 13:37:13,814 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 13:37:13,820 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 13:37:13,822 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 13:37:13,822 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 13:37:13,823 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 13:37:13,823 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.483965 -999.00  +13.10  28.08     35   -1.80 1 1 1 1 1   888    0 19.02 169.72 ----- 28.8 28.1 45.6 35.4 17.6 -31.7 16.4 -32.6 16.6 -30.9 18.0 -28.7
2025-06-13 13:37:13,823 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 13:37:13,823 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 13:37:13,823 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.483965
2025-06-13 13:37:13,824 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 13:37:13,824 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 13:37:13,824 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 13:37:13,825 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 13:37:13,825 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 13:37:13,825 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T13:36:47', tmtdew=17.16, humidity=30.25, cloud=0.0, wind=16.48, temperature=13.34, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T11:36:54.576', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 13:37:13,825 [DEBUG][       Thread-256653][   transport.py][1871] : EOF in transport thread
2025-06-13 13:37:13,908 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 13:37:13,919 [DEBUG][       Thread-256656][   transport.py][1871] : starting thread (client mode): 0x863bca00
2025-06-13 13:37:13,919 [DEBUG][       Thread-256656][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 13:37:13,935 [DEBUG][       Thread-256656][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 13:37:13,935 [ INFO][       Thread-256656][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 13:37:13,942 [DEBUG][       Thread-256656][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 13:37:13,942 [DEBUG][       Thread-256656][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 13:37:13,942 [DEBUG][       Thread-256656][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 13:37:13,942 [DEBUG][       Thread-256656][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:37:13,942 [DEBUG][       Thread-256656][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:37:13,942 [DEBUG][       Thread-256656][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:37:13,942 [DEBUG][       Thread-256656][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:37:13,942 [DEBUG][       Thread-256656][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 13:37:13,942 [DEBUG][       Thread-256656][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 13:37:13,943 [DEBUG][       Thread-256656][   transport.py][1871] : client lang: <none>
2025-06-13 13:37:13,943 [DEBUG][       Thread-256656][   transport.py][1871] : server lang: <none>
2025-06-13 13:37:13,943 [DEBUG][       Thread-256656][   transport.py][1871] : kex follows: False
2025-06-13 13:37:13,943 [DEBUG][       Thread-256656][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 13:37:13,943 [DEBUG][       Thread-256656][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 13:37:13,943 [DEBUG][       Thread-256656][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 13:37:13,943 [DEBUG][       Thread-256656][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 13:37:13,943 [DEBUG][       Thread-256656][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 13:37:13,943 [DEBUG][       Thread-256656][   transport.py][1871] : Compression: none
2025-06-13 13:37:13,943 [DEBUG][       Thread-256656][   transport.py][1871] : === End of kex handshake ===
2025-06-13 13:37:14,002 [DEBUG][       Thread-256656][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 13:37:14,002 [DEBUG][       Thread-256656][   transport.py][1871] : Switch to new keys ...
2025-06-13 13:37:14,003 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 13:37:14,003 [DEBUG][       Thread-256656][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 13:37:14,004 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 13:37:14,058 [DEBUG][       Thread-256656][   transport.py][1871] : userauth is OK
2025-06-13 13:37:14,058 [DEBUG][       Thread-256656][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 13:37:14,058 [DEBUG][       Thread-256656][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 13:37:14,058 [DEBUG][       Thread-256656][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 13:37:14,059 [DEBUG][       Thread-256656][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 13:37:14,077 [ INFO][       Thread-256656][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 13:37:14,077 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 13:37:14,078 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 13:37:15,077 [DEBUG][       Thread-256656][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 13:37:15,077 [DEBUG][       Thread-256656][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 13:37:15,127 [DEBUG][       Thread-256656][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 13:37:15,128 [DEBUG][       Thread-256656][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 13:37:15,136 [DEBUG][       Thread-256656][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 13:37:15,145 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 13:37:15,145 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 13:37:15,153 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 13:37:15,161 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 13:37:15,161 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 13:37:15,161 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 13:37:15,169 [DEBUG][       Thread-256656][   transport.py][1871] : EOF in transport thread
2025-06-13 13:37:15,646 [DEBUG][Thread-256658 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:37:16,013 [DEBUG][Thread-256659 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:37:25,031 [DEBUG][Thread-256660 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:37:25,171 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 13:37:25,171 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 13:37:25,171 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 13:37:25,172 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 13:37:25,644 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 13, 37, 18), 17.1, 30.38, 0.0, 23.75, 13.5, 0, 0, 0, 2, 0, 0),)
2025-06-13 13:37:25,644 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 13:37:18
2025-06-13 13:37:25,730 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 13:37:25,733 [DEBUG][       Thread-256661][   transport.py][1871] : starting thread (client mode): 0x863bd6f0
2025-06-13 13:37:25,733 [DEBUG][       Thread-256661][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 13:37:25,754 [DEBUG][       Thread-256661][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 13:37:25,754 [ INFO][       Thread-256661][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 13:37:25,758 [DEBUG][       Thread-256661][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 13:37:25,758 [DEBUG][       Thread-256661][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 13:37:25,758 [DEBUG][       Thread-256661][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 13:37:25,758 [DEBUG][       Thread-256661][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:37:25,758 [DEBUG][       Thread-256661][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:37:25,758 [DEBUG][       Thread-256661][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:37:25,758 [DEBUG][       Thread-256661][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:37:25,758 [DEBUG][       Thread-256661][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 13:37:25,758 [DEBUG][       Thread-256661][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 13:37:25,758 [DEBUG][       Thread-256661][   transport.py][1871] : client lang: <none>
2025-06-13 13:37:25,758 [DEBUG][       Thread-256661][   transport.py][1871] : server lang: <none>
2025-06-13 13:37:25,758 [DEBUG][       Thread-256661][   transport.py][1871] : kex follows: False
2025-06-13 13:37:25,758 [DEBUG][       Thread-256661][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 13:37:25,758 [DEBUG][       Thread-256661][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 13:37:25,758 [DEBUG][       Thread-256661][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 13:37:25,758 [DEBUG][       Thread-256661][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 13:37:25,758 [DEBUG][       Thread-256661][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 13:37:25,758 [DEBUG][       Thread-256661][   transport.py][1871] : Compression: none
2025-06-13 13:37:25,758 [DEBUG][       Thread-256661][   transport.py][1871] : === End of kex handshake ===
2025-06-13 13:37:25,772 [DEBUG][       Thread-256661][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 13:37:25,772 [DEBUG][       Thread-256661][   transport.py][1871] : Switch to new keys ...
2025-06-13 13:37:25,772 [DEBUG][       Thread-256661][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 13:37:25,772 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 13:37:25,772 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 13:37:25,773 [DEBUG][       Thread-256661][   transport.py][1871] : userauth is OK
2025-06-13 13:37:25,785 [ INFO][       Thread-256661][   transport.py][1871] : Authentication (password) successful!
2025-06-13 13:37:25,785 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 13:37:26,408 [DEBUG][       Thread-256661][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 13:37:26,408 [DEBUG][       Thread-256661][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 13:37:26,448 [DEBUG][       Thread-256661][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 13:37:26,448 [DEBUG][       Thread-256661][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 13:37:26,451 [DEBUG][       Thread-256661][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 13:37:26,462 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 13:37:26,462 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 13:37:26,463 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 13:37:26,464 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 13:37:26,467 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 13:37:26,468 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 13:37:26,468 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 13:37:26,468 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 13:37:26,468 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.483965 -999.00  +13.10  28.08     35   -1.80 1 1 1 1 1   888    0 19.02 169.72 ----- 28.8 28.1 45.6 35.4 17.6 -31.7 16.4 -32.6 16.6 -30.9 18.0 -28.7
2025-06-13 13:37:26,468 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 13:37:26,468 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 13:37:26,468 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.483965
2025-06-13 13:37:26,468 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 13:37:26,469 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 13:37:26,469 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 13:37:26,469 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 13:37:26,469 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 13:37:26,469 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T13:37:18', tmtdew=17.1, humidity=30.38, cloud=0.0, wind=23.75, temperature=13.5, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T11:36:54.576', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 13:37:26,469 [DEBUG][       Thread-256661][   transport.py][1871] : EOF in transport thread
2025-06-13 13:37:26,543 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 13:37:26,553 [DEBUG][       Thread-256664][   transport.py][1871] : starting thread (client mode): 0x863c9ab0
2025-06-13 13:37:26,553 [DEBUG][       Thread-256664][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 13:37:26,568 [DEBUG][       Thread-256664][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 13:37:26,568 [ INFO][       Thread-256664][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 13:37:26,575 [DEBUG][       Thread-256664][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 13:37:26,575 [DEBUG][       Thread-256664][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 13:37:26,575 [DEBUG][       Thread-256664][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 13:37:26,575 [DEBUG][       Thread-256664][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:37:26,575 [DEBUG][       Thread-256664][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:37:26,575 [DEBUG][       Thread-256664][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:37:26,575 [DEBUG][       Thread-256664][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:37:26,575 [DEBUG][       Thread-256664][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 13:37:26,575 [DEBUG][       Thread-256664][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 13:37:26,575 [DEBUG][       Thread-256664][   transport.py][1871] : client lang: <none>
2025-06-13 13:37:26,575 [DEBUG][       Thread-256664][   transport.py][1871] : server lang: <none>
2025-06-13 13:37:26,575 [DEBUG][       Thread-256664][   transport.py][1871] : kex follows: False
2025-06-13 13:37:26,575 [DEBUG][       Thread-256664][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 13:37:26,575 [DEBUG][       Thread-256664][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 13:37:26,575 [DEBUG][       Thread-256664][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 13:37:26,575 [DEBUG][       Thread-256664][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 13:37:26,575 [DEBUG][       Thread-256664][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 13:37:26,575 [DEBUG][       Thread-256664][   transport.py][1871] : Compression: none
2025-06-13 13:37:26,575 [DEBUG][       Thread-256664][   transport.py][1871] : === End of kex handshake ===
2025-06-13 13:37:26,634 [DEBUG][       Thread-256664][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 13:37:26,634 [DEBUG][       Thread-256664][   transport.py][1871] : Switch to new keys ...
2025-06-13 13:37:26,634 [DEBUG][       Thread-256664][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 13:37:26,634 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 13:37:26,635 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 13:37:26,689 [DEBUG][       Thread-256664][   transport.py][1871] : userauth is OK
2025-06-13 13:37:26,689 [DEBUG][       Thread-256664][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 13:37:26,689 [DEBUG][       Thread-256664][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 13:37:26,689 [DEBUG][       Thread-256664][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 13:37:26,689 [DEBUG][       Thread-256664][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 13:37:26,703 [ INFO][       Thread-256664][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 13:37:26,703 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 13:37:26,703 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 13:37:27,770 [DEBUG][       Thread-256664][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 13:37:27,770 [DEBUG][       Thread-256664][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 13:37:27,820 [DEBUG][       Thread-256664][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 13:37:27,820 [DEBUG][       Thread-256664][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 13:37:27,830 [DEBUG][       Thread-256664][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 13:37:27,839 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 13:37:27,839 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 13:37:27,849 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 13:37:27,858 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 13:37:27,858 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 13:37:27,859 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 13:37:27,867 [DEBUG][       Thread-256664][   transport.py][1871] : EOF in transport thread
2025-06-13 13:37:34,051 [DEBUG][Thread-256666 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:37:37,870 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 13:37:37,870 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 13:37:37,870 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 13:37:37,874 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 13:37:38,341 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 13, 37, 18), 17.1, 30.38, 0.0, 23.75, 13.5, 0, 0, 0, 2, 0, 0),)
2025-06-13 13:37:38,341 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 13:37:18
2025-06-13 13:37:38,422 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 13:37:38,430 [DEBUG][       Thread-256667][   transport.py][1871] : starting thread (client mode): 0x863cb490
2025-06-13 13:37:38,430 [DEBUG][       Thread-256667][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 13:37:38,450 [DEBUG][       Thread-256667][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 13:37:38,450 [ INFO][       Thread-256667][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 13:37:38,454 [DEBUG][       Thread-256667][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 13:37:38,454 [DEBUG][       Thread-256667][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 13:37:38,454 [DEBUG][       Thread-256667][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 13:37:38,454 [DEBUG][       Thread-256667][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:37:38,454 [DEBUG][       Thread-256667][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:37:38,454 [DEBUG][       Thread-256667][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:37:38,454 [DEBUG][       Thread-256667][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:37:38,454 [DEBUG][       Thread-256667][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 13:37:38,454 [DEBUG][       Thread-256667][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 13:37:38,454 [DEBUG][       Thread-256667][   transport.py][1871] : client lang: <none>
2025-06-13 13:37:38,454 [DEBUG][       Thread-256667][   transport.py][1871] : server lang: <none>
2025-06-13 13:37:38,454 [DEBUG][       Thread-256667][   transport.py][1871] : kex follows: False
2025-06-13 13:37:38,454 [DEBUG][       Thread-256667][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 13:37:38,455 [DEBUG][       Thread-256667][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 13:37:38,455 [DEBUG][       Thread-256667][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 13:37:38,455 [DEBUG][       Thread-256667][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 13:37:38,455 [DEBUG][       Thread-256667][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 13:37:38,455 [DEBUG][       Thread-256667][   transport.py][1871] : Compression: none
2025-06-13 13:37:38,455 [DEBUG][       Thread-256667][   transport.py][1871] : === End of kex handshake ===
2025-06-13 13:37:38,470 [DEBUG][       Thread-256667][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 13:37:38,471 [DEBUG][       Thread-256667][   transport.py][1871] : Switch to new keys ...
2025-06-13 13:37:38,471 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 13:37:38,472 [DEBUG][       Thread-256667][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 13:37:38,472 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 13:37:38,474 [DEBUG][       Thread-256667][   transport.py][1871] : userauth is OK
2025-06-13 13:37:38,499 [ INFO][       Thread-256667][   transport.py][1871] : Authentication (password) successful!
2025-06-13 13:37:38,500 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 13:37:39,126 [DEBUG][       Thread-256667][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 13:37:39,127 [DEBUG][       Thread-256667][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 13:37:39,169 [DEBUG][       Thread-256667][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 13:37:39,169 [DEBUG][       Thread-256667][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 13:37:39,172 [DEBUG][       Thread-256667][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 13:37:39,184 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 13:37:39,185 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 13:37:39,187 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 13:37:39,189 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 13:37:39,194 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 13:37:39,196 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 13:37:39,196 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 13:37:39,197 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 13:37:39,197 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.484312 -999.00  +12.90  23.83     35   -1.80 1 1 1 1 1   888    0 18.47 156.70 ----- 27.9 23.8 39.8 32.3 17.5 -31.0 16.4 -32.5 16.5 -30.2 17.9 -28.7
2025-06-13 13:37:39,197 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 13:37:39,197 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 13:37:39,197 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.484312
2025-06-13 13:37:39,198 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 13:37:39,198 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 13:37:39,199 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 13:37:39,199 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 13:37:39,199 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 13:37:39,199 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T13:37:18', tmtdew=17.1, humidity=30.38, cloud=0.0, wind=23.75, temperature=13.5, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T11:37:24.557', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 13:37:39,199 [DEBUG][       Thread-256667][   transport.py][1871] : EOF in transport thread
2025-06-13 13:37:39,283 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 13:37:39,294 [DEBUG][       Thread-256670][   transport.py][1871] : starting thread (client mode): 0x86350310
2025-06-13 13:37:39,294 [DEBUG][       Thread-256670][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 13:37:39,308 [DEBUG][       Thread-256670][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 13:37:39,309 [ INFO][       Thread-256670][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 13:37:39,316 [DEBUG][       Thread-256670][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 13:37:39,316 [DEBUG][       Thread-256670][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 13:37:39,316 [DEBUG][       Thread-256670][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 13:37:39,317 [DEBUG][       Thread-256670][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:37:39,317 [DEBUG][       Thread-256670][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:37:39,317 [DEBUG][       Thread-256670][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:37:39,317 [DEBUG][       Thread-256670][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:37:39,317 [DEBUG][       Thread-256670][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 13:37:39,317 [DEBUG][       Thread-256670][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 13:37:39,317 [DEBUG][       Thread-256670][   transport.py][1871] : client lang: <none>
2025-06-13 13:37:39,317 [DEBUG][       Thread-256670][   transport.py][1871] : server lang: <none>
2025-06-13 13:37:39,317 [DEBUG][       Thread-256670][   transport.py][1871] : kex follows: False
2025-06-13 13:37:39,317 [DEBUG][       Thread-256670][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 13:37:39,317 [DEBUG][       Thread-256670][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 13:37:39,318 [DEBUG][       Thread-256670][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 13:37:39,318 [DEBUG][       Thread-256670][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 13:37:39,318 [DEBUG][       Thread-256670][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 13:37:39,318 [DEBUG][       Thread-256670][   transport.py][1871] : Compression: none
2025-06-13 13:37:39,318 [DEBUG][       Thread-256670][   transport.py][1871] : === End of kex handshake ===
2025-06-13 13:37:39,375 [DEBUG][       Thread-256670][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 13:37:39,375 [DEBUG][       Thread-256670][   transport.py][1871] : Switch to new keys ...
2025-06-13 13:37:39,376 [DEBUG][       Thread-256670][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 13:37:39,377 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 13:37:39,377 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 13:37:39,440 [DEBUG][       Thread-256670][   transport.py][1871] : userauth is OK
2025-06-13 13:37:39,440 [DEBUG][       Thread-256670][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 13:37:39,440 [DEBUG][       Thread-256670][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 13:37:39,441 [DEBUG][       Thread-256670][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 13:37:39,441 [DEBUG][       Thread-256670][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 13:37:39,463 [ INFO][       Thread-256670][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 13:37:39,463 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 13:37:39,464 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 13:37:40,468 [DEBUG][       Thread-256670][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 13:37:40,468 [DEBUG][       Thread-256670][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 13:37:40,516 [DEBUG][       Thread-256670][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 13:37:40,517 [DEBUG][       Thread-256670][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 13:37:40,526 [DEBUG][       Thread-256670][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 13:37:40,535 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 13:37:40,535 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 13:37:40,544 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 13:37:40,553 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 13:37:40,553 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 13:37:40,554 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 13:37:40,562 [DEBUG][       Thread-256670][   transport.py][1871] : EOF in transport thread
2025-06-13 13:37:43,091 [DEBUG][Thread-256672 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:37:44,449 [DEBUG][Thread-256673 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:37:45,531 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:37:45,532 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:37:50,564 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 13:37:50,565 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 13:37:50,565 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 13:37:50,568 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 13:37:51,037 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 13, 37, 18), 17.1, 30.38, 0.0, 23.75, 13.5, 0, 0, 0, 2, 0, 0),)
2025-06-13 13:37:51,037 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 13:37:18
2025-06-13 13:37:51,120 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 13:37:51,124 [DEBUG][       Thread-256674][   transport.py][1871] : starting thread (client mode): 0x86352260
2025-06-13 13:37:51,125 [DEBUG][       Thread-256674][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 13:37:51,146 [DEBUG][       Thread-256674][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 13:37:51,146 [ INFO][       Thread-256674][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 13:37:51,149 [DEBUG][       Thread-256674][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 13:37:51,149 [DEBUG][       Thread-256674][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 13:37:51,149 [DEBUG][       Thread-256674][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 13:37:51,149 [DEBUG][       Thread-256674][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:37:51,149 [DEBUG][       Thread-256674][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:37:51,149 [DEBUG][       Thread-256674][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:37:51,149 [DEBUG][       Thread-256674][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:37:51,149 [DEBUG][       Thread-256674][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 13:37:51,149 [DEBUG][       Thread-256674][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 13:37:51,149 [DEBUG][       Thread-256674][   transport.py][1871] : client lang: <none>
2025-06-13 13:37:51,149 [DEBUG][       Thread-256674][   transport.py][1871] : server lang: <none>
2025-06-13 13:37:51,149 [DEBUG][       Thread-256674][   transport.py][1871] : kex follows: False
2025-06-13 13:37:51,149 [DEBUG][       Thread-256674][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 13:37:51,149 [DEBUG][       Thread-256674][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 13:37:51,149 [DEBUG][       Thread-256674][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 13:37:51,149 [DEBUG][       Thread-256674][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 13:37:51,149 [DEBUG][       Thread-256674][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 13:37:51,149 [DEBUG][       Thread-256674][   transport.py][1871] : Compression: none
2025-06-13 13:37:51,149 [DEBUG][       Thread-256674][   transport.py][1871] : === End of kex handshake ===
2025-06-13 13:37:51,167 [DEBUG][       Thread-256674][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 13:37:51,167 [DEBUG][       Thread-256674][   transport.py][1871] : Switch to new keys ...
2025-06-13 13:37:51,167 [DEBUG][       Thread-256674][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 13:37:51,167 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 13:37:51,168 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 13:37:51,168 [DEBUG][       Thread-256674][   transport.py][1871] : userauth is OK
2025-06-13 13:37:51,181 [ INFO][       Thread-256674][   transport.py][1871] : Authentication (password) successful!
2025-06-13 13:37:51,181 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 13:37:51,855 [DEBUG][       Thread-256674][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 13:37:51,855 [DEBUG][       Thread-256674][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 13:37:51,896 [DEBUG][       Thread-256674][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 13:37:51,896 [DEBUG][       Thread-256674][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 13:37:51,899 [DEBUG][       Thread-256674][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 13:37:51,911 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 13:37:51,911 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 13:37:51,912 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 13:37:51,913 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 13:37:51,917 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 13:37:51,918 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 13:37:51,918 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 13:37:51,918 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 13:37:51,918 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.484312 -999.00  +12.90  23.83     35   -1.80 1 1 1 1 1   888    0 18.47 156.70 ----- 27.9 23.8 39.8 32.3 17.5 -31.0 16.4 -32.5 16.5 -30.2 17.9 -28.7
2025-06-13 13:37:51,918 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 13:37:51,918 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 13:37:51,918 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.484312
2025-06-13 13:37:51,918 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 13:37:51,918 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 13:37:51,918 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 13:37:51,918 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 13:37:51,918 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 13:37:51,918 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T13:37:18', tmtdew=17.1, humidity=30.38, cloud=0.0, wind=23.75, temperature=13.5, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T11:37:24.557', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 13:37:51,919 [DEBUG][       Thread-256674][   transport.py][1871] : EOF in transport thread
2025-06-13 13:37:51,993 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 13:37:52,002 [DEBUG][       Thread-256677][   transport.py][1871] : starting thread (client mode): 0x867b6c80
2025-06-13 13:37:52,002 [DEBUG][       Thread-256677][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 13:37:52,017 [DEBUG][       Thread-256677][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 13:37:52,017 [ INFO][       Thread-256677][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 13:37:52,025 [DEBUG][       Thread-256677][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 13:37:52,025 [DEBUG][       Thread-256677][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 13:37:52,025 [DEBUG][       Thread-256677][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 13:37:52,025 [DEBUG][       Thread-256677][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:37:52,025 [DEBUG][       Thread-256677][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:37:52,025 [DEBUG][       Thread-256677][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:37:52,025 [DEBUG][       Thread-256677][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:37:52,025 [DEBUG][       Thread-256677][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 13:37:52,025 [DEBUG][       Thread-256677][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 13:37:52,025 [DEBUG][       Thread-256677][   transport.py][1871] : client lang: <none>
2025-06-13 13:37:52,025 [DEBUG][       Thread-256677][   transport.py][1871] : server lang: <none>
2025-06-13 13:37:52,025 [DEBUG][       Thread-256677][   transport.py][1871] : kex follows: False
2025-06-13 13:37:52,025 [DEBUG][       Thread-256677][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 13:37:52,025 [DEBUG][       Thread-256677][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 13:37:52,025 [DEBUG][       Thread-256677][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 13:37:52,025 [DEBUG][       Thread-256677][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 13:37:52,025 [DEBUG][       Thread-256677][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 13:37:52,025 [DEBUG][       Thread-256677][   transport.py][1871] : Compression: none
2025-06-13 13:37:52,025 [DEBUG][       Thread-256677][   transport.py][1871] : === End of kex handshake ===
2025-06-13 13:37:52,083 [DEBUG][       Thread-256677][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 13:37:52,083 [DEBUG][       Thread-256677][   transport.py][1871] : Switch to new keys ...
2025-06-13 13:37:52,083 [DEBUG][       Thread-256677][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 13:37:52,083 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 13:37:52,083 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 13:37:52,110 [DEBUG][Thread-256679 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:37:52,141 [DEBUG][       Thread-256677][   transport.py][1871] : userauth is OK
2025-06-13 13:37:52,141 [DEBUG][       Thread-256677][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 13:37:52,141 [DEBUG][       Thread-256677][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 13:37:52,141 [DEBUG][       Thread-256677][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 13:37:52,141 [DEBUG][       Thread-256677][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 13:37:52,155 [ INFO][       Thread-256677][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 13:37:52,155 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 13:37:52,155 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 13:37:53,154 [DEBUG][       Thread-256677][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 13:37:53,154 [DEBUG][       Thread-256677][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 13:37:53,204 [DEBUG][       Thread-256677][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 13:37:53,204 [DEBUG][       Thread-256677][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 13:37:53,213 [DEBUG][       Thread-256677][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 13:37:53,225 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 13:37:53,225 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 13:37:53,234 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 13:37:53,244 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 13:37:53,244 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 13:37:53,245 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 13:37:53,252 [DEBUG][       Thread-256677][   transport.py][1871] : EOF in transport thread
2025-06-13 13:37:53,755 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:37:53,756 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:38:01,132 [DEBUG][Thread-256680 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:38:03,255 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 13:38:03,255 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 13:38:03,255 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 13:38:03,256 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 13:38:03,734 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 13, 37, 50), 16.98, 30.65, 0.0, 22.73, 13.53, 0, 0, 0, 2, 0, 0),)
2025-06-13 13:38:03,734 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 13:37:50
2025-06-13 13:38:03,819 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 13:38:03,823 [DEBUG][       Thread-256681][   transport.py][1871] : starting thread (client mode): 0x863508b0
2025-06-13 13:38:03,823 [DEBUG][       Thread-256681][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 13:38:03,844 [DEBUG][       Thread-256681][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 13:38:03,844 [ INFO][       Thread-256681][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 13:38:03,848 [DEBUG][       Thread-256681][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 13:38:03,848 [DEBUG][       Thread-256681][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 13:38:03,848 [DEBUG][       Thread-256681][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 13:38:03,848 [DEBUG][       Thread-256681][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:38:03,848 [DEBUG][       Thread-256681][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:38:03,848 [DEBUG][       Thread-256681][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:38:03,848 [DEBUG][       Thread-256681][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:38:03,848 [DEBUG][       Thread-256681][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 13:38:03,848 [DEBUG][       Thread-256681][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 13:38:03,848 [DEBUG][       Thread-256681][   transport.py][1871] : client lang: <none>
2025-06-13 13:38:03,848 [DEBUG][       Thread-256681][   transport.py][1871] : server lang: <none>
2025-06-13 13:38:03,848 [DEBUG][       Thread-256681][   transport.py][1871] : kex follows: False
2025-06-13 13:38:03,848 [DEBUG][       Thread-256681][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 13:38:03,848 [DEBUG][       Thread-256681][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 13:38:03,848 [DEBUG][       Thread-256681][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 13:38:03,848 [DEBUG][       Thread-256681][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 13:38:03,848 [DEBUG][       Thread-256681][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 13:38:03,848 [DEBUG][       Thread-256681][   transport.py][1871] : Compression: none
2025-06-13 13:38:03,848 [DEBUG][       Thread-256681][   transport.py][1871] : === End of kex handshake ===
2025-06-13 13:38:03,863 [DEBUG][       Thread-256681][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 13:38:03,863 [DEBUG][       Thread-256681][   transport.py][1871] : Switch to new keys ...
2025-06-13 13:38:03,863 [DEBUG][       Thread-256681][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 13:38:03,863 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 13:38:03,863 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 13:38:03,864 [DEBUG][       Thread-256681][   transport.py][1871] : userauth is OK
2025-06-13 13:38:03,888 [ INFO][       Thread-256681][   transport.py][1871] : Authentication (password) successful!
2025-06-13 13:38:03,888 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 13:38:04,518 [DEBUG][       Thread-256681][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 13:38:04,518 [DEBUG][       Thread-256681][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 13:38:04,560 [DEBUG][       Thread-256681][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 13:38:04,561 [DEBUG][       Thread-256681][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 13:38:04,563 [DEBUG][       Thread-256681][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 13:38:04,574 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 13:38:04,574 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 13:38:04,576 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 13:38:04,576 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 13:38:04,580 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 13:38:04,581 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 13:38:04,581 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 13:38:04,581 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 13:38:04,581 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.484312 -999.00  +12.90  23.83     35   -1.80 1 1 1 1 1   888    0 18.47 156.70 ----- 27.9 23.8 39.8 32.3 17.5 -31.0 16.4 -32.5 16.5 -30.2 17.9 -28.7
2025-06-13 13:38:04,581 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 13:38:04,581 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 13:38:04,581 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.484312
2025-06-13 13:38:04,581 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 13:38:04,582 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 13:38:04,582 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 13:38:04,582 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 13:38:04,582 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 13:38:04,582 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T13:37:50', tmtdew=16.98, humidity=30.65, cloud=0.0, wind=22.73, temperature=13.53, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T11:37:24.557', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 13:38:04,582 [DEBUG][       Thread-256681][   transport.py][1871] : EOF in transport thread
2025-06-13 13:38:04,656 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 13:38:04,666 [DEBUG][       Thread-256684][   transport.py][1871] : starting thread (client mode): 0x863beb30
2025-06-13 13:38:04,666 [DEBUG][       Thread-256684][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 13:38:04,681 [DEBUG][       Thread-256684][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 13:38:04,681 [ INFO][       Thread-256684][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 13:38:04,690 [DEBUG][       Thread-256684][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 13:38:04,690 [DEBUG][       Thread-256684][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 13:38:04,690 [DEBUG][       Thread-256684][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 13:38:04,690 [DEBUG][       Thread-256684][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:38:04,690 [DEBUG][       Thread-256684][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:38:04,690 [DEBUG][       Thread-256684][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:38:04,690 [DEBUG][       Thread-256684][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:38:04,690 [DEBUG][       Thread-256684][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 13:38:04,690 [DEBUG][       Thread-256684][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 13:38:04,690 [DEBUG][       Thread-256684][   transport.py][1871] : client lang: <none>
2025-06-13 13:38:04,690 [DEBUG][       Thread-256684][   transport.py][1871] : server lang: <none>
2025-06-13 13:38:04,690 [DEBUG][       Thread-256684][   transport.py][1871] : kex follows: False
2025-06-13 13:38:04,690 [DEBUG][       Thread-256684][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 13:38:04,690 [DEBUG][       Thread-256684][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 13:38:04,690 [DEBUG][       Thread-256684][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 13:38:04,690 [DEBUG][       Thread-256684][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 13:38:04,690 [DEBUG][       Thread-256684][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 13:38:04,690 [DEBUG][       Thread-256684][   transport.py][1871] : Compression: none
2025-06-13 13:38:04,690 [DEBUG][       Thread-256684][   transport.py][1871] : === End of kex handshake ===
2025-06-13 13:38:04,748 [DEBUG][       Thread-256684][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 13:38:04,748 [DEBUG][       Thread-256684][   transport.py][1871] : Switch to new keys ...
2025-06-13 13:38:04,749 [DEBUG][       Thread-256684][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 13:38:04,749 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 13:38:04,749 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 13:38:04,805 [DEBUG][       Thread-256684][   transport.py][1871] : userauth is OK
2025-06-13 13:38:04,805 [DEBUG][       Thread-256684][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 13:38:04,806 [DEBUG][       Thread-256684][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 13:38:04,806 [DEBUG][       Thread-256684][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 13:38:04,806 [DEBUG][       Thread-256684][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 13:38:04,821 [ INFO][       Thread-256684][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 13:38:04,822 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 13:38:04,822 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 13:38:05,833 [DEBUG][       Thread-256684][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 13:38:05,833 [DEBUG][       Thread-256684][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 13:38:05,883 [DEBUG][       Thread-256684][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 13:38:05,884 [DEBUG][       Thread-256684][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 13:38:05,892 [DEBUG][       Thread-256684][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 13:38:05,900 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 13:38:05,900 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 13:38:05,908 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 13:38:05,916 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 13:38:05,916 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 13:38:05,916 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 13:38:05,924 [DEBUG][       Thread-256684][   transport.py][1871] : EOF in transport thread
2025-06-13 13:38:10,154 [DEBUG][Thread-256686 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:38:15,698 [DEBUG][Thread-256687 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:38:15,926 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 13:38:15,927 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 13:38:15,927 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 13:38:15,930 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 13:38:16,404 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 13, 37, 50), 16.98, 30.65, 0.0, 22.73, 13.53, 0, 0, 0, 2, 0, 0),)
2025-06-13 13:38:16,404 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 13:37:50
2025-06-13 13:38:16,485 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 13:38:16,492 [DEBUG][       Thread-256688][   transport.py][1871] : starting thread (client mode): 0x86353550
2025-06-13 13:38:16,492 [DEBUG][       Thread-256688][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 13:38:16,512 [DEBUG][       Thread-256688][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 13:38:16,512 [ INFO][       Thread-256688][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 13:38:16,516 [DEBUG][       Thread-256688][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 13:38:16,516 [DEBUG][       Thread-256688][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 13:38:16,516 [DEBUG][       Thread-256688][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 13:38:16,516 [DEBUG][       Thread-256688][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:38:16,516 [DEBUG][       Thread-256688][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:38:16,516 [DEBUG][       Thread-256688][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:38:16,517 [DEBUG][       Thread-256688][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:38:16,517 [DEBUG][       Thread-256688][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 13:38:16,517 [DEBUG][       Thread-256688][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 13:38:16,517 [DEBUG][       Thread-256688][   transport.py][1871] : client lang: <none>
2025-06-13 13:38:16,517 [DEBUG][       Thread-256688][   transport.py][1871] : server lang: <none>
2025-06-13 13:38:16,517 [DEBUG][       Thread-256688][   transport.py][1871] : kex follows: False
2025-06-13 13:38:16,517 [DEBUG][       Thread-256688][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 13:38:16,517 [DEBUG][       Thread-256688][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 13:38:16,517 [DEBUG][       Thread-256688][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 13:38:16,517 [DEBUG][       Thread-256688][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 13:38:16,517 [DEBUG][       Thread-256688][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 13:38:16,517 [DEBUG][       Thread-256688][   transport.py][1871] : Compression: none
2025-06-13 13:38:16,517 [DEBUG][       Thread-256688][   transport.py][1871] : === End of kex handshake ===
2025-06-13 13:38:16,534 [DEBUG][       Thread-256688][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 13:38:16,534 [DEBUG][       Thread-256688][   transport.py][1871] : Switch to new keys ...
2025-06-13 13:38:16,535 [DEBUG][       Thread-256688][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 13:38:16,535 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 13:38:16,535 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 13:38:16,536 [DEBUG][       Thread-256688][   transport.py][1871] : userauth is OK
2025-06-13 13:38:16,550 [ INFO][       Thread-256688][   transport.py][1871] : Authentication (password) successful!
2025-06-13 13:38:16,550 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 13:38:17,173 [DEBUG][       Thread-256688][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 13:38:17,174 [DEBUG][       Thread-256688][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 13:38:17,217 [DEBUG][       Thread-256688][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 13:38:17,217 [DEBUG][       Thread-256688][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 13:38:17,219 [DEBUG][       Thread-256688][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 13:38:17,231 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 13:38:17,231 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 13:38:17,232 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 13:38:17,233 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 13:38:17,236 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 13:38:17,237 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 13:38:17,237 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 13:38:17,238 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 13:38:17,238 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.484659 -999.00  +12.80  27.63     36   -1.80 1 1 1 1 1   888    0 18.65 152.05 ----- 26.2 27.6 48.4 32.3 17.4 -30.4 16.3 -32.8 16.4 -30.8 17.8 -28.7
2025-06-13 13:38:17,238 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 13:38:17,238 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 13:38:17,238 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.484659
2025-06-13 13:38:17,238 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 13:38:17,238 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 13:38:17,238 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 13:38:17,238 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 13:38:17,238 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 13:38:17,238 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T13:37:50', tmtdew=16.98, humidity=30.65, cloud=0.0, wind=22.73, temperature=13.53, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T11:37:54.538', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 13:38:17,239 [DEBUG][       Thread-256688][   transport.py][1871] : EOF in transport thread
2025-06-13 13:38:17,309 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 13:38:17,320 [DEBUG][       Thread-256691][   transport.py][1871] : starting thread (client mode): 0x867b7640
2025-06-13 13:38:17,320 [DEBUG][       Thread-256691][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 13:38:17,335 [DEBUG][       Thread-256691][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 13:38:17,335 [ INFO][       Thread-256691][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 13:38:17,343 [DEBUG][       Thread-256691][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 13:38:17,343 [DEBUG][       Thread-256691][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 13:38:17,343 [DEBUG][       Thread-256691][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 13:38:17,343 [DEBUG][       Thread-256691][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:38:17,343 [DEBUG][       Thread-256691][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:38:17,343 [DEBUG][       Thread-256691][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:38:17,343 [DEBUG][       Thread-256691][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:38:17,343 [DEBUG][       Thread-256691][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 13:38:17,343 [DEBUG][       Thread-256691][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 13:38:17,343 [DEBUG][       Thread-256691][   transport.py][1871] : client lang: <none>
2025-06-13 13:38:17,343 [DEBUG][       Thread-256691][   transport.py][1871] : server lang: <none>
2025-06-13 13:38:17,344 [DEBUG][       Thread-256691][   transport.py][1871] : kex follows: False
2025-06-13 13:38:17,344 [DEBUG][       Thread-256691][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 13:38:17,344 [DEBUG][       Thread-256691][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 13:38:17,344 [DEBUG][       Thread-256691][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 13:38:17,344 [DEBUG][       Thread-256691][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 13:38:17,344 [DEBUG][       Thread-256691][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 13:38:17,344 [DEBUG][       Thread-256691][   transport.py][1871] : Compression: none
2025-06-13 13:38:17,344 [DEBUG][       Thread-256691][   transport.py][1871] : === End of kex handshake ===
2025-06-13 13:38:17,402 [DEBUG][       Thread-256691][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 13:38:17,403 [DEBUG][       Thread-256691][   transport.py][1871] : Switch to new keys ...
2025-06-13 13:38:17,404 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 13:38:17,404 [DEBUG][       Thread-256691][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 13:38:17,405 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 13:38:17,462 [DEBUG][       Thread-256691][   transport.py][1871] : userauth is OK
2025-06-13 13:38:17,462 [DEBUG][       Thread-256691][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 13:38:17,462 [DEBUG][       Thread-256691][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 13:38:17,462 [DEBUG][       Thread-256691][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 13:38:17,462 [DEBUG][       Thread-256691][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 13:38:17,481 [ INFO][       Thread-256691][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 13:38:17,481 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 13:38:17,482 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 13:38:18,479 [DEBUG][       Thread-256691][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 13:38:18,479 [DEBUG][       Thread-256691][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 13:38:18,528 [DEBUG][       Thread-256691][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 13:38:18,528 [DEBUG][       Thread-256691][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 13:38:18,539 [DEBUG][       Thread-256691][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 13:38:18,553 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 13:38:18,554 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 13:38:18,562 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 13:38:18,572 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 13:38:18,572 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 13:38:18,573 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 13:38:18,581 [DEBUG][       Thread-256691][   transport.py][1871] : EOF in transport thread
2025-06-13 13:38:19,194 [DEBUG][Thread-256693 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:38:28,214 [DEBUG][Thread-256694 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:38:28,583 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 13:38:28,584 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 13:38:28,584 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 13:38:28,587 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 13:38:29,053 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 13, 38, 22), 16.93, 30.55, 0.0, 21.19, 13.3, 0, 0, 0, 2, 0, 0),)
2025-06-13 13:38:29,053 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 13:38:22
2025-06-13 13:38:29,135 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 13:38:29,139 [DEBUG][       Thread-256695][   transport.py][1871] : starting thread (client mode): 0x84204730
2025-06-13 13:38:29,139 [DEBUG][       Thread-256695][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 13:38:29,159 [DEBUG][       Thread-256695][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 13:38:29,159 [ INFO][       Thread-256695][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 13:38:29,162 [DEBUG][       Thread-256695][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 13:38:29,162 [DEBUG][       Thread-256695][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 13:38:29,162 [DEBUG][       Thread-256695][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 13:38:29,163 [DEBUG][       Thread-256695][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:38:29,163 [DEBUG][       Thread-256695][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:38:29,163 [DEBUG][       Thread-256695][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:38:29,163 [DEBUG][       Thread-256695][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:38:29,163 [DEBUG][       Thread-256695][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 13:38:29,163 [DEBUG][       Thread-256695][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 13:38:29,163 [DEBUG][       Thread-256695][   transport.py][1871] : client lang: <none>
2025-06-13 13:38:29,163 [DEBUG][       Thread-256695][   transport.py][1871] : server lang: <none>
2025-06-13 13:38:29,163 [DEBUG][       Thread-256695][   transport.py][1871] : kex follows: False
2025-06-13 13:38:29,163 [DEBUG][       Thread-256695][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 13:38:29,163 [DEBUG][       Thread-256695][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 13:38:29,163 [DEBUG][       Thread-256695][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 13:38:29,163 [DEBUG][       Thread-256695][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 13:38:29,163 [DEBUG][       Thread-256695][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 13:38:29,163 [DEBUG][       Thread-256695][   transport.py][1871] : Compression: none
2025-06-13 13:38:29,163 [DEBUG][       Thread-256695][   transport.py][1871] : === End of kex handshake ===
2025-06-13 13:38:29,181 [DEBUG][       Thread-256695][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 13:38:29,182 [DEBUG][       Thread-256695][   transport.py][1871] : Switch to new keys ...
2025-06-13 13:38:29,182 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 13:38:29,182 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 13:38:29,183 [DEBUG][       Thread-256695][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 13:38:29,183 [DEBUG][       Thread-256695][   transport.py][1871] : userauth is OK
2025-06-13 13:38:29,196 [ INFO][       Thread-256695][   transport.py][1871] : Authentication (password) successful!
2025-06-13 13:38:29,197 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 13:38:29,748 [DEBUG][       Thread-256695][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 13:38:29,748 [DEBUG][       Thread-256695][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 13:38:29,789 [DEBUG][       Thread-256695][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 13:38:29,789 [DEBUG][       Thread-256695][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 13:38:29,792 [DEBUG][       Thread-256695][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 13:38:29,805 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 13:38:29,806 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 13:38:29,807 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 13:38:29,809 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 13:38:29,815 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 13:38:29,817 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 13:38:29,817 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 13:38:29,818 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 13:38:29,818 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.484659 -999.00  +12.80  27.63     36   -1.80 1 1 1 1 1   888    0 18.65 152.05 ----- 26.2 27.6 48.4 32.3 17.4 -30.4 16.3 -32.8 16.4 -30.8 17.8 -28.7
2025-06-13 13:38:29,818 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 13:38:29,818 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 13:38:29,818 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.484659
2025-06-13 13:38:29,819 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 13:38:29,819 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 13:38:29,819 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 13:38:29,819 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 13:38:29,819 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 13:38:29,820 [DEBUG][       Thread-256695][   transport.py][1871] : EOF in transport thread
2025-06-13 13:38:29,820 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T13:38:22', tmtdew=16.93, humidity=30.55, cloud=0.0, wind=21.19, temperature=13.3, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T11:37:54.538', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 13:38:29,903 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 13:38:29,914 [DEBUG][       Thread-256698][   transport.py][1871] : starting thread (client mode): 0x867fcbe0
2025-06-13 13:38:29,914 [DEBUG][       Thread-256698][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 13:38:29,934 [DEBUG][       Thread-256698][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 13:38:29,934 [ INFO][       Thread-256698][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 13:38:29,948 [DEBUG][       Thread-256698][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 13:38:29,948 [DEBUG][       Thread-256698][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 13:38:29,948 [DEBUG][       Thread-256698][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 13:38:29,948 [DEBUG][       Thread-256698][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:38:29,949 [DEBUG][       Thread-256698][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:38:29,949 [DEBUG][       Thread-256698][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:38:29,949 [DEBUG][       Thread-256698][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:38:29,949 [DEBUG][       Thread-256698][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 13:38:29,949 [DEBUG][       Thread-256698][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 13:38:29,949 [DEBUG][       Thread-256698][   transport.py][1871] : client lang: <none>
2025-06-13 13:38:29,949 [DEBUG][       Thread-256698][   transport.py][1871] : server lang: <none>
2025-06-13 13:38:29,949 [DEBUG][       Thread-256698][   transport.py][1871] : kex follows: False
2025-06-13 13:38:29,949 [DEBUG][       Thread-256698][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 13:38:29,949 [DEBUG][       Thread-256698][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 13:38:29,949 [DEBUG][       Thread-256698][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 13:38:29,949 [DEBUG][       Thread-256698][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 13:38:29,949 [DEBUG][       Thread-256698][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 13:38:29,949 [DEBUG][       Thread-256698][   transport.py][1871] : Compression: none
2025-06-13 13:38:29,949 [DEBUG][       Thread-256698][   transport.py][1871] : === End of kex handshake ===
2025-06-13 13:38:30,005 [DEBUG][       Thread-256698][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 13:38:30,005 [DEBUG][       Thread-256698][   transport.py][1871] : Switch to new keys ...
2025-06-13 13:38:30,006 [DEBUG][       Thread-256698][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 13:38:30,006 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 13:38:30,007 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 13:38:30,067 [DEBUG][       Thread-256698][   transport.py][1871] : userauth is OK
2025-06-13 13:38:30,067 [DEBUG][       Thread-256698][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 13:38:30,067 [DEBUG][       Thread-256698][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 13:38:30,067 [DEBUG][       Thread-256698][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 13:38:30,067 [DEBUG][       Thread-256698][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 13:38:30,087 [ INFO][       Thread-256698][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 13:38:30,087 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 13:38:30,088 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 13:38:31,127 [DEBUG][       Thread-256698][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 13:38:31,127 [DEBUG][       Thread-256698][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 13:38:31,182 [DEBUG][       Thread-256698][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 13:38:31,182 [DEBUG][       Thread-256698][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 13:38:31,192 [DEBUG][       Thread-256698][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 13:38:31,202 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 13:38:31,202 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 13:38:31,211 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 13:38:31,220 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 13:38:31,220 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 13:38:31,221 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 13:38:31,228 [DEBUG][       Thread-256698][   transport.py][1871] : EOF in transport thread
2025-06-13 13:38:37,237 [DEBUG][Thread-256700 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:38:41,231 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 13:38:41,231 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 13:38:41,231 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 13:38:41,232 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 13:38:41,719 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 13, 38, 22), 16.93, 30.55, 0.0, 21.19, 13.3, 0, 0, 0, 2, 0, 0),)
2025-06-13 13:38:41,719 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 13:38:22
2025-06-13 13:38:41,802 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 13:38:41,809 [DEBUG][       Thread-256701][   transport.py][1871] : starting thread (client mode): 0x84205e70
2025-06-13 13:38:41,809 [DEBUG][       Thread-256701][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 13:38:41,828 [DEBUG][       Thread-256701][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 13:38:41,828 [ INFO][       Thread-256701][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 13:38:41,829 [DEBUG][       Thread-256701][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 13:38:41,829 [DEBUG][       Thread-256701][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 13:38:41,829 [DEBUG][       Thread-256701][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 13:38:41,829 [DEBUG][       Thread-256701][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:38:41,830 [DEBUG][       Thread-256701][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:38:41,830 [DEBUG][       Thread-256701][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:38:41,830 [DEBUG][       Thread-256701][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:38:41,830 [DEBUG][       Thread-256701][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 13:38:41,830 [DEBUG][       Thread-256701][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 13:38:41,830 [DEBUG][       Thread-256701][   transport.py][1871] : client lang: <none>
2025-06-13 13:38:41,830 [DEBUG][       Thread-256701][   transport.py][1871] : server lang: <none>
2025-06-13 13:38:41,830 [DEBUG][       Thread-256701][   transport.py][1871] : kex follows: False
2025-06-13 13:38:41,830 [DEBUG][       Thread-256701][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 13:38:41,830 [DEBUG][       Thread-256701][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 13:38:41,830 [DEBUG][       Thread-256701][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 13:38:41,830 [DEBUG][       Thread-256701][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 13:38:41,830 [DEBUG][       Thread-256701][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 13:38:41,830 [DEBUG][       Thread-256701][   transport.py][1871] : Compression: none
2025-06-13 13:38:41,830 [DEBUG][       Thread-256701][   transport.py][1871] : === End of kex handshake ===
2025-06-13 13:38:41,840 [DEBUG][       Thread-256701][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 13:38:41,840 [DEBUG][       Thread-256701][   transport.py][1871] : Switch to new keys ...
2025-06-13 13:38:41,840 [DEBUG][       Thread-256701][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 13:38:41,840 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 13:38:41,840 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 13:38:41,841 [DEBUG][       Thread-256701][   transport.py][1871] : userauth is OK
2025-06-13 13:38:41,865 [ INFO][       Thread-256701][   transport.py][1871] : Authentication (password) successful!
2025-06-13 13:38:41,865 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 13:38:42,452 [DEBUG][       Thread-256701][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 13:38:42,452 [DEBUG][       Thread-256701][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 13:38:42,496 [DEBUG][       Thread-256701][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 13:38:42,496 [DEBUG][       Thread-256701][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 13:38:42,499 [DEBUG][       Thread-256701][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 13:38:42,510 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 13:38:42,510 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 13:38:42,514 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 13:38:42,518 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 13:38:42,530 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 13:38:42,534 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 13:38:42,534 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 13:38:42,534 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 13:38:42,535 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.485006 -999.00  +13.00  22.92     36   -1.50 1 1 1 1 1   888    0 18.50 160.57 ----- 23.0 22.9 42.8 27.6 17.5 -30.5 16.4 -31.6 16.4 -30.6 17.8 -28.3
2025-06-13 13:38:42,535 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 13:38:42,535 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 13:38:42,535 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.485006
2025-06-13 13:38:42,535 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 13:38:42,535 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 13:38:42,535 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 13:38:42,535 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 13:38:42,535 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 13:38:42,535 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T13:38:22', tmtdew=16.93, humidity=30.55, cloud=0.0, wind=21.19, temperature=13.3, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T11:38:24.518', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 13:38:42,535 [DEBUG][       Thread-256701][   transport.py][1871] : EOF in transport thread
2025-06-13 13:38:42,607 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 13:38:42,618 [DEBUG][       Thread-256704][   transport.py][1871] : starting thread (client mode): 0x867b78e0
2025-06-13 13:38:42,618 [DEBUG][       Thread-256704][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 13:38:42,633 [DEBUG][       Thread-256704][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 13:38:42,633 [ INFO][       Thread-256704][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 13:38:42,640 [DEBUG][       Thread-256704][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 13:38:42,640 [DEBUG][       Thread-256704][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 13:38:42,640 [DEBUG][       Thread-256704][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 13:38:42,640 [DEBUG][       Thread-256704][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:38:42,640 [DEBUG][       Thread-256704][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:38:42,640 [DEBUG][       Thread-256704][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:38:42,640 [DEBUG][       Thread-256704][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:38:42,640 [DEBUG][       Thread-256704][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 13:38:42,640 [DEBUG][       Thread-256704][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 13:38:42,640 [DEBUG][       Thread-256704][   transport.py][1871] : client lang: <none>
2025-06-13 13:38:42,640 [DEBUG][       Thread-256704][   transport.py][1871] : server lang: <none>
2025-06-13 13:38:42,640 [DEBUG][       Thread-256704][   transport.py][1871] : kex follows: False
2025-06-13 13:38:42,640 [DEBUG][       Thread-256704][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 13:38:42,640 [DEBUG][       Thread-256704][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 13:38:42,640 [DEBUG][       Thread-256704][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 13:38:42,640 [DEBUG][       Thread-256704][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 13:38:42,641 [DEBUG][       Thread-256704][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 13:38:42,641 [DEBUG][       Thread-256704][   transport.py][1871] : Compression: none
2025-06-13 13:38:42,641 [DEBUG][       Thread-256704][   transport.py][1871] : === End of kex handshake ===
2025-06-13 13:38:42,700 [DEBUG][       Thread-256704][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 13:38:42,700 [DEBUG][       Thread-256704][   transport.py][1871] : Switch to new keys ...
2025-06-13 13:38:42,700 [DEBUG][       Thread-256704][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 13:38:42,700 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 13:38:42,700 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 13:38:42,757 [DEBUG][       Thread-256704][   transport.py][1871] : userauth is OK
2025-06-13 13:38:42,757 [DEBUG][       Thread-256704][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 13:38:42,757 [DEBUG][       Thread-256704][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 13:38:42,757 [DEBUG][       Thread-256704][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 13:38:42,757 [DEBUG][       Thread-256704][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 13:38:42,771 [ INFO][       Thread-256704][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 13:38:42,771 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 13:38:42,771 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 13:38:44,024 [DEBUG][       Thread-256704][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 13:38:44,024 [DEBUG][       Thread-256704][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 13:38:44,075 [DEBUG][       Thread-256704][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 13:38:44,075 [DEBUG][       Thread-256704][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 13:38:44,083 [DEBUG][       Thread-256704][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 13:38:44,092 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 13:38:44,092 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 13:38:44,099 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 13:38:44,108 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 13:38:44,108 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 13:38:44,108 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 13:38:44,116 [DEBUG][       Thread-256704][   transport.py][1871] : EOF in transport thread
2025-06-13 13:38:45,558 [DEBUG][Thread-256706 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:38:46,271 [DEBUG][Thread-256707 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:38:46,638 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:38:46,639 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:38:53,921 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:38:53,922 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:38:54,118 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 13:38:54,118 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 13:38:54,119 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 13:38:54,122 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 13:38:54,603 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 13, 38, 22), 16.93, 30.55, 0.0, 21.19, 13.3, 0, 0, 0, 2, 0, 0),)
2025-06-13 13:38:54,603 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 13:38:22
2025-06-13 13:38:54,690 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 13:38:54,695 [DEBUG][       Thread-256708][   transport.py][1871] : starting thread (client mode): 0x842048b0
2025-06-13 13:38:54,695 [DEBUG][       Thread-256708][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 13:38:54,715 [DEBUG][       Thread-256708][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 13:38:54,716 [ INFO][       Thread-256708][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 13:38:54,719 [DEBUG][       Thread-256708][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 13:38:54,719 [DEBUG][       Thread-256708][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 13:38:54,719 [DEBUG][       Thread-256708][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 13:38:54,719 [DEBUG][       Thread-256708][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:38:54,719 [DEBUG][       Thread-256708][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:38:54,719 [DEBUG][       Thread-256708][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:38:54,719 [DEBUG][       Thread-256708][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:38:54,719 [DEBUG][       Thread-256708][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 13:38:54,719 [DEBUG][       Thread-256708][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 13:38:54,719 [DEBUG][       Thread-256708][   transport.py][1871] : client lang: <none>
2025-06-13 13:38:54,719 [DEBUG][       Thread-256708][   transport.py][1871] : server lang: <none>
2025-06-13 13:38:54,719 [DEBUG][       Thread-256708][   transport.py][1871] : kex follows: False
2025-06-13 13:38:54,719 [DEBUG][       Thread-256708][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 13:38:54,719 [DEBUG][       Thread-256708][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 13:38:54,719 [DEBUG][       Thread-256708][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 13:38:54,719 [DEBUG][       Thread-256708][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 13:38:54,719 [DEBUG][       Thread-256708][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 13:38:54,719 [DEBUG][       Thread-256708][   transport.py][1871] : Compression: none
2025-06-13 13:38:54,719 [DEBUG][       Thread-256708][   transport.py][1871] : === End of kex handshake ===
2025-06-13 13:38:54,736 [DEBUG][       Thread-256708][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 13:38:54,736 [DEBUG][       Thread-256708][   transport.py][1871] : Switch to new keys ...
2025-06-13 13:38:54,736 [DEBUG][       Thread-256708][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 13:38:54,736 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 13:38:54,736 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 13:38:54,737 [DEBUG][       Thread-256708][   transport.py][1871] : userauth is OK
2025-06-13 13:38:54,749 [ INFO][       Thread-256708][   transport.py][1871] : Authentication (password) successful!
2025-06-13 13:38:54,750 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 13:38:55,290 [DEBUG][Thread-256710 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:38:55,389 [DEBUG][       Thread-256708][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 13:38:55,389 [DEBUG][       Thread-256708][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 13:38:55,432 [DEBUG][       Thread-256708][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 13:38:55,432 [DEBUG][       Thread-256708][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 13:38:55,435 [DEBUG][       Thread-256708][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 13:38:55,447 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 13:38:55,447 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 13:38:55,448 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 13:38:55,449 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 13:38:55,453 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 13:38:55,454 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 13:38:55,454 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 13:38:55,454 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 13:38:55,454 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.485006 -999.00  +13.00  22.92     36   -1.50 1 1 1 1 1   888    0 18.50 160.57 ----- 23.0 22.9 42.8 27.6 17.5 -30.5 16.4 -31.6 16.4 -30.6 17.8 -28.3
2025-06-13 13:38:55,454 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 13:38:55,454 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 13:38:55,454 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.485006
2025-06-13 13:38:55,454 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 13:38:55,454 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 13:38:55,454 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 13:38:55,454 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 13:38:55,454 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 13:38:55,454 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T13:38:22', tmtdew=16.93, humidity=30.55, cloud=0.0, wind=21.19, temperature=13.3, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T11:38:24.518', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 13:38:55,455 [DEBUG][       Thread-256708][   transport.py][1871] : EOF in transport thread
2025-06-13 13:38:55,529 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 13:38:55,538 [DEBUG][       Thread-256712][   transport.py][1871] : starting thread (client mode): 0x863cb460
2025-06-13 13:38:55,538 [DEBUG][       Thread-256712][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 13:38:55,562 [DEBUG][       Thread-256712][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 13:38:55,562 [ INFO][       Thread-256712][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 13:38:55,573 [DEBUG][       Thread-256712][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 13:38:55,573 [DEBUG][       Thread-256712][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 13:38:55,573 [DEBUG][       Thread-256712][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 13:38:55,573 [DEBUG][       Thread-256712][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:38:55,573 [DEBUG][       Thread-256712][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:38:55,573 [DEBUG][       Thread-256712][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:38:55,573 [DEBUG][       Thread-256712][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:38:55,573 [DEBUG][       Thread-256712][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 13:38:55,573 [DEBUG][       Thread-256712][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 13:38:55,573 [DEBUG][       Thread-256712][   transport.py][1871] : client lang: <none>
2025-06-13 13:38:55,573 [DEBUG][       Thread-256712][   transport.py][1871] : server lang: <none>
2025-06-13 13:38:55,573 [DEBUG][       Thread-256712][   transport.py][1871] : kex follows: False
2025-06-13 13:38:55,573 [DEBUG][       Thread-256712][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 13:38:55,573 [DEBUG][       Thread-256712][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 13:38:55,573 [DEBUG][       Thread-256712][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 13:38:55,573 [DEBUG][       Thread-256712][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 13:38:55,573 [DEBUG][       Thread-256712][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 13:38:55,573 [DEBUG][       Thread-256712][   transport.py][1871] : Compression: none
2025-06-13 13:38:55,573 [DEBUG][       Thread-256712][   transport.py][1871] : === End of kex handshake ===
2025-06-13 13:38:55,624 [DEBUG][       Thread-256712][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 13:38:55,624 [DEBUG][       Thread-256712][   transport.py][1871] : Switch to new keys ...
2025-06-13 13:38:55,624 [DEBUG][       Thread-256712][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 13:38:55,624 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 13:38:55,624 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 13:38:55,681 [DEBUG][       Thread-256712][   transport.py][1871] : userauth is OK
2025-06-13 13:38:55,681 [DEBUG][       Thread-256712][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 13:38:55,681 [DEBUG][       Thread-256712][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 13:38:55,681 [DEBUG][       Thread-256712][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 13:38:55,681 [DEBUG][       Thread-256712][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 13:38:55,695 [ INFO][       Thread-256712][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 13:38:55,695 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 13:38:55,696 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 13:38:56,715 [DEBUG][       Thread-256712][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 13:38:56,716 [DEBUG][       Thread-256712][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 13:38:56,764 [DEBUG][       Thread-256712][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 13:38:56,764 [DEBUG][       Thread-256712][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 13:38:56,777 [DEBUG][       Thread-256712][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 13:38:56,790 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 13:38:56,790 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 13:38:56,799 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 13:38:56,811 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 13:38:56,811 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 13:38:56,812 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 13:38:56,820 [DEBUG][       Thread-256712][   transport.py][1871] : EOF in transport thread
2025-06-13 13:39:04,310 [DEBUG][Thread-256714 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:39:06,822 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 13:39:06,822 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 13:39:06,823 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 13:39:06,825 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 13:39:07,284 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 13, 38, 53), 16.99, 30.44, 0.0, 19.09, 13.35, 0, 0, 0, 2, 0, 0),)
2025-06-13 13:39:07,284 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 13:38:53
2025-06-13 13:39:07,366 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 13:39:07,371 [DEBUG][       Thread-256715][   transport.py][1871] : starting thread (client mode): 0x86350d00
2025-06-13 13:39:07,371 [DEBUG][       Thread-256715][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 13:39:07,393 [DEBUG][       Thread-256715][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 13:39:07,393 [ INFO][       Thread-256715][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 13:39:07,396 [DEBUG][       Thread-256715][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 13:39:07,396 [DEBUG][       Thread-256715][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 13:39:07,396 [DEBUG][       Thread-256715][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 13:39:07,396 [DEBUG][       Thread-256715][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:39:07,396 [DEBUG][       Thread-256715][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:39:07,396 [DEBUG][       Thread-256715][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:39:07,396 [DEBUG][       Thread-256715][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:39:07,396 [DEBUG][       Thread-256715][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 13:39:07,396 [DEBUG][       Thread-256715][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 13:39:07,396 [DEBUG][       Thread-256715][   transport.py][1871] : client lang: <none>
2025-06-13 13:39:07,396 [DEBUG][       Thread-256715][   transport.py][1871] : server lang: <none>
2025-06-13 13:39:07,396 [DEBUG][       Thread-256715][   transport.py][1871] : kex follows: False
2025-06-13 13:39:07,396 [DEBUG][       Thread-256715][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 13:39:07,396 [DEBUG][       Thread-256715][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 13:39:07,396 [DEBUG][       Thread-256715][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 13:39:07,396 [DEBUG][       Thread-256715][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 13:39:07,396 [DEBUG][       Thread-256715][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 13:39:07,397 [DEBUG][       Thread-256715][   transport.py][1871] : Compression: none
2025-06-13 13:39:07,397 [DEBUG][       Thread-256715][   transport.py][1871] : === End of kex handshake ===
2025-06-13 13:39:07,413 [DEBUG][       Thread-256715][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 13:39:07,414 [DEBUG][       Thread-256715][   transport.py][1871] : Switch to new keys ...
2025-06-13 13:39:07,414 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 13:39:07,415 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 13:39:07,415 [DEBUG][       Thread-256715][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 13:39:07,416 [DEBUG][       Thread-256715][   transport.py][1871] : userauth is OK
2025-06-13 13:39:07,429 [ INFO][       Thread-256715][   transport.py][1871] : Authentication (password) successful!
2025-06-13 13:39:07,429 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 13:39:08,030 [DEBUG][       Thread-256715][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 13:39:08,030 [DEBUG][       Thread-256715][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 13:39:08,073 [DEBUG][       Thread-256715][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 13:39:08,073 [DEBUG][       Thread-256715][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 13:39:08,077 [DEBUG][       Thread-256715][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 13:39:08,088 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 13:39:08,088 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 13:39:08,090 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 13:39:08,092 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 13:39:08,098 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 13:39:08,100 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 13:39:08,100 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 13:39:08,101 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 13:39:08,101 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.485006 -999.00  +13.00  22.92     36   -1.50 1 1 1 1 1   888    0 18.50 160.57 ----- 23.0 22.9 42.8 27.6 17.5 -30.5 16.4 -31.6 16.4 -30.6 17.8 -28.3
2025-06-13 13:39:08,101 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 13:39:08,102 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 13:39:08,102 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.485006
2025-06-13 13:39:08,102 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 13:39:08,103 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 13:39:08,103 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 13:39:08,103 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 13:39:08,103 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 13:39:08,103 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T13:38:53', tmtdew=16.99, humidity=30.44, cloud=0.0, wind=19.09, temperature=13.35, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T11:38:24.518', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 13:39:08,103 [DEBUG][       Thread-256715][   transport.py][1871] : EOF in transport thread
2025-06-13 13:39:08,187 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 13:39:08,199 [DEBUG][       Thread-256718][   transport.py][1871] : starting thread (client mode): 0x867fe920
2025-06-13 13:39:08,199 [DEBUG][       Thread-256718][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 13:39:08,217 [DEBUG][       Thread-256718][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 13:39:08,217 [ INFO][       Thread-256718][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 13:39:08,224 [DEBUG][       Thread-256718][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 13:39:08,225 [DEBUG][       Thread-256718][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 13:39:08,225 [DEBUG][       Thread-256718][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 13:39:08,225 [DEBUG][       Thread-256718][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:39:08,225 [DEBUG][       Thread-256718][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:39:08,225 [DEBUG][       Thread-256718][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:39:08,225 [DEBUG][       Thread-256718][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:39:08,225 [DEBUG][       Thread-256718][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 13:39:08,225 [DEBUG][       Thread-256718][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 13:39:08,225 [DEBUG][       Thread-256718][   transport.py][1871] : client lang: <none>
2025-06-13 13:39:08,225 [DEBUG][       Thread-256718][   transport.py][1871] : server lang: <none>
2025-06-13 13:39:08,225 [DEBUG][       Thread-256718][   transport.py][1871] : kex follows: False
2025-06-13 13:39:08,225 [DEBUG][       Thread-256718][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 13:39:08,225 [DEBUG][       Thread-256718][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 13:39:08,225 [DEBUG][       Thread-256718][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 13:39:08,225 [DEBUG][       Thread-256718][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 13:39:08,226 [DEBUG][       Thread-256718][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 13:39:08,226 [DEBUG][       Thread-256718][   transport.py][1871] : Compression: none
2025-06-13 13:39:08,226 [DEBUG][       Thread-256718][   transport.py][1871] : === End of kex handshake ===
2025-06-13 13:39:08,283 [DEBUG][       Thread-256718][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 13:39:08,283 [DEBUG][       Thread-256718][   transport.py][1871] : Switch to new keys ...
2025-06-13 13:39:08,284 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 13:39:08,284 [DEBUG][       Thread-256718][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 13:39:08,285 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 13:39:08,342 [DEBUG][       Thread-256718][   transport.py][1871] : userauth is OK
2025-06-13 13:39:08,343 [DEBUG][       Thread-256718][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 13:39:08,343 [DEBUG][       Thread-256718][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 13:39:08,343 [DEBUG][       Thread-256718][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 13:39:08,343 [DEBUG][       Thread-256718][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 13:39:08,367 [ INFO][       Thread-256718][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 13:39:08,368 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 13:39:08,368 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 13:39:09,410 [DEBUG][       Thread-256718][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 13:39:09,410 [DEBUG][       Thread-256718][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 13:39:09,460 [DEBUG][       Thread-256718][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 13:39:09,461 [DEBUG][       Thread-256718][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 13:39:09,472 [DEBUG][       Thread-256718][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 13:39:09,485 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 13:39:09,485 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 13:39:09,494 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 13:39:09,504 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 13:39:09,504 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 13:39:09,505 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 13:39:09,513 [DEBUG][       Thread-256718][   transport.py][1871] : EOF in transport thread
2025-06-13 13:39:13,335 [DEBUG][Thread-256720 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:39:15,743 [DEBUG][Thread-256721 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:39:19,515 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 13:39:19,515 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 13:39:19,515 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 13:39:19,516 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 13:39:19,979 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 13, 38, 53), 16.99, 30.44, 0.0, 19.09, 13.35, 0, 0, 0, 2, 0, 0),)
2025-06-13 13:39:19,979 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 13:38:53
2025-06-13 13:39:20,066 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 13:39:20,070 [DEBUG][       Thread-256722][   transport.py][1871] : starting thread (client mode): 0x84204820
2025-06-13 13:39:20,070 [DEBUG][       Thread-256722][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 13:39:20,091 [DEBUG][       Thread-256722][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 13:39:20,091 [ INFO][       Thread-256722][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 13:39:20,094 [DEBUG][       Thread-256722][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 13:39:20,094 [DEBUG][       Thread-256722][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 13:39:20,094 [DEBUG][       Thread-256722][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 13:39:20,094 [DEBUG][       Thread-256722][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:39:20,094 [DEBUG][       Thread-256722][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:39:20,094 [DEBUG][       Thread-256722][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:39:20,095 [DEBUG][       Thread-256722][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:39:20,095 [DEBUG][       Thread-256722][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 13:39:20,095 [DEBUG][       Thread-256722][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 13:39:20,095 [DEBUG][       Thread-256722][   transport.py][1871] : client lang: <none>
2025-06-13 13:39:20,095 [DEBUG][       Thread-256722][   transport.py][1871] : server lang: <none>
2025-06-13 13:39:20,095 [DEBUG][       Thread-256722][   transport.py][1871] : kex follows: False
2025-06-13 13:39:20,095 [DEBUG][       Thread-256722][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 13:39:20,095 [DEBUG][       Thread-256722][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 13:39:20,095 [DEBUG][       Thread-256722][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 13:39:20,095 [DEBUG][       Thread-256722][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 13:39:20,095 [DEBUG][       Thread-256722][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 13:39:20,095 [DEBUG][       Thread-256722][   transport.py][1871] : Compression: none
2025-06-13 13:39:20,095 [DEBUG][       Thread-256722][   transport.py][1871] : === End of kex handshake ===
2025-06-13 13:39:20,111 [DEBUG][       Thread-256722][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 13:39:20,111 [DEBUG][       Thread-256722][   transport.py][1871] : Switch to new keys ...
2025-06-13 13:39:20,111 [DEBUG][       Thread-256722][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 13:39:20,111 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 13:39:20,111 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 13:39:20,111 [DEBUG][       Thread-256722][   transport.py][1871] : userauth is OK
2025-06-13 13:39:20,135 [ INFO][       Thread-256722][   transport.py][1871] : Authentication (password) successful!
2025-06-13 13:39:20,135 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 13:39:20,780 [DEBUG][       Thread-256722][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 13:39:20,780 [DEBUG][       Thread-256722][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 13:39:20,824 [DEBUG][       Thread-256722][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 13:39:20,825 [DEBUG][       Thread-256722][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 13:39:20,827 [DEBUG][       Thread-256722][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 13:39:20,839 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 13:39:20,839 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 13:39:20,841 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 13:39:20,841 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 13:39:20,844 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 13:39:20,845 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 13:39:20,845 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 13:39:20,845 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 13:39:20,845 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.485354 -999.00  +13.00  22.84     35   -2.10 1 1 1 1 1   888    0 18.54 144.17 ----- 22.6 22.8 46.8 30.2 17.4 -31.1 16.3 -32.6 16.4 -30.6 17.8 -28.2
2025-06-13 13:39:20,845 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 13:39:20,845 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 13:39:20,845 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.485354
2025-06-13 13:39:20,845 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 13:39:20,846 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 13:39:20,846 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 13:39:20,846 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 13:39:20,846 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 13:39:20,846 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T13:38:53', tmtdew=16.99, humidity=30.44, cloud=0.0, wind=19.09, temperature=13.35, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T11:38:54.586', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 13:39:20,846 [DEBUG][       Thread-256722][   transport.py][1871] : EOF in transport thread
2025-06-13 13:39:20,920 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 13:39:20,931 [DEBUG][       Thread-256725][   transport.py][1871] : starting thread (client mode): 0x86893df0
2025-06-13 13:39:20,932 [DEBUG][       Thread-256725][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 13:39:20,946 [DEBUG][       Thread-256725][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 13:39:20,946 [ INFO][       Thread-256725][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 13:39:20,953 [DEBUG][       Thread-256725][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 13:39:20,953 [DEBUG][       Thread-256725][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 13:39:20,953 [DEBUG][       Thread-256725][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 13:39:20,953 [DEBUG][       Thread-256725][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:39:20,953 [DEBUG][       Thread-256725][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:39:20,953 [DEBUG][       Thread-256725][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:39:20,953 [DEBUG][       Thread-256725][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:39:20,953 [DEBUG][       Thread-256725][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 13:39:20,953 [DEBUG][       Thread-256725][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 13:39:20,953 [DEBUG][       Thread-256725][   transport.py][1871] : client lang: <none>
2025-06-13 13:39:20,953 [DEBUG][       Thread-256725][   transport.py][1871] : server lang: <none>
2025-06-13 13:39:20,953 [DEBUG][       Thread-256725][   transport.py][1871] : kex follows: False
2025-06-13 13:39:20,953 [DEBUG][       Thread-256725][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 13:39:20,954 [DEBUG][       Thread-256725][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 13:39:20,954 [DEBUG][       Thread-256725][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 13:39:20,954 [DEBUG][       Thread-256725][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 13:39:20,954 [DEBUG][       Thread-256725][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 13:39:20,954 [DEBUG][       Thread-256725][   transport.py][1871] : Compression: none
2025-06-13 13:39:20,954 [DEBUG][       Thread-256725][   transport.py][1871] : === End of kex handshake ===
2025-06-13 13:39:21,012 [DEBUG][       Thread-256725][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 13:39:21,012 [DEBUG][       Thread-256725][   transport.py][1871] : Switch to new keys ...
2025-06-13 13:39:21,012 [DEBUG][       Thread-256725][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 13:39:21,012 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 13:39:21,012 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 13:39:21,069 [DEBUG][       Thread-256725][   transport.py][1871] : userauth is OK
2025-06-13 13:39:21,069 [DEBUG][       Thread-256725][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 13:39:21,069 [DEBUG][       Thread-256725][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 13:39:21,069 [DEBUG][       Thread-256725][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 13:39:21,069 [DEBUG][       Thread-256725][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 13:39:21,083 [ INFO][       Thread-256725][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 13:39:21,083 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 13:39:21,083 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 13:39:22,078 [DEBUG][       Thread-256725][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 13:39:22,078 [DEBUG][       Thread-256725][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 13:39:22,127 [DEBUG][       Thread-256725][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 13:39:22,127 [DEBUG][       Thread-256725][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 13:39:22,135 [DEBUG][       Thread-256725][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 13:39:22,143 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 13:39:22,143 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 13:39:22,151 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 13:39:22,159 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 13:39:22,159 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 13:39:22,159 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 13:39:22,167 [DEBUG][       Thread-256725][   transport.py][1871] : EOF in transport thread
2025-06-13 13:39:22,370 [DEBUG][Thread-256727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:39:31,392 [DEBUG][Thread-256728 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:39:32,170 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 13:39:32,170 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 13:39:32,170 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 13:39:32,173 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 13:39:32,650 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 13, 39, 25), 17.0, 30.41, 0.0, 24.72, 13.32, 0, 0, 0, 2, 0, 0),)
2025-06-13 13:39:32,651 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 13:39:25
2025-06-13 13:39:32,732 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 13:39:32,736 [DEBUG][       Thread-256729][   transport.py][1871] : starting thread (client mode): 0x867fcd30
2025-06-13 13:39:32,736 [DEBUG][       Thread-256729][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 13:39:32,758 [DEBUG][       Thread-256729][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 13:39:32,758 [ INFO][       Thread-256729][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 13:39:32,759 [DEBUG][       Thread-256729][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 13:39:32,759 [DEBUG][       Thread-256729][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 13:39:32,759 [DEBUG][       Thread-256729][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 13:39:32,759 [DEBUG][       Thread-256729][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:39:32,759 [DEBUG][       Thread-256729][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:39:32,760 [DEBUG][       Thread-256729][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:39:32,760 [DEBUG][       Thread-256729][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:39:32,760 [DEBUG][       Thread-256729][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 13:39:32,760 [DEBUG][       Thread-256729][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 13:39:32,760 [DEBUG][       Thread-256729][   transport.py][1871] : client lang: <none>
2025-06-13 13:39:32,760 [DEBUG][       Thread-256729][   transport.py][1871] : server lang: <none>
2025-06-13 13:39:32,760 [DEBUG][       Thread-256729][   transport.py][1871] : kex follows: False
2025-06-13 13:39:32,760 [DEBUG][       Thread-256729][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 13:39:32,760 [DEBUG][       Thread-256729][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 13:39:32,760 [DEBUG][       Thread-256729][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 13:39:32,760 [DEBUG][       Thread-256729][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 13:39:32,760 [DEBUG][       Thread-256729][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 13:39:32,760 [DEBUG][       Thread-256729][   transport.py][1871] : Compression: none
2025-06-13 13:39:32,760 [DEBUG][       Thread-256729][   transport.py][1871] : === End of kex handshake ===
2025-06-13 13:39:32,768 [DEBUG][       Thread-256729][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 13:39:32,769 [DEBUG][       Thread-256729][   transport.py][1871] : Switch to new keys ...
2025-06-13 13:39:32,769 [DEBUG][       Thread-256729][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 13:39:32,770 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 13:39:32,770 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 13:39:32,771 [DEBUG][       Thread-256729][   transport.py][1871] : userauth is OK
2025-06-13 13:39:32,795 [ INFO][       Thread-256729][   transport.py][1871] : Authentication (password) successful!
2025-06-13 13:39:32,796 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 13:39:33,437 [DEBUG][       Thread-256729][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 13:39:33,437 [DEBUG][       Thread-256729][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 13:39:33,481 [DEBUG][       Thread-256729][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 13:39:33,481 [DEBUG][       Thread-256729][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 13:39:33,485 [DEBUG][       Thread-256729][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 13:39:33,498 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 13:39:33,498 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 13:39:33,500 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 13:39:33,502 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 13:39:33,508 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 13:39:33,511 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 13:39:33,511 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 13:39:33,512 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 13:39:33,512 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.485354 -999.00  +13.00  22.84     35   -2.10 1 1 1 1 1   888    0 18.54 144.17 ----- 22.6 22.8 46.8 30.2 17.4 -31.1 16.3 -32.6 16.4 -30.6 17.8 -28.2
2025-06-13 13:39:33,512 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 13:39:33,512 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 13:39:33,512 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.485354
2025-06-13 13:39:33,513 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 13:39:33,513 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 13:39:33,513 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 13:39:33,513 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 13:39:33,513 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 13:39:33,514 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T13:39:25', tmtdew=17.0, humidity=30.41, cloud=0.0, wind=24.72, temperature=13.32, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T11:38:54.586', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 13:39:33,514 [DEBUG][       Thread-256729][   transport.py][1871] : EOF in transport thread
2025-06-13 13:39:33,597 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 13:39:33,607 [DEBUG][       Thread-256732][   transport.py][1871] : starting thread (client mode): 0x84205780
2025-06-13 13:39:33,607 [DEBUG][       Thread-256732][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 13:39:33,622 [DEBUG][       Thread-256732][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 13:39:33,622 [ INFO][       Thread-256732][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 13:39:33,629 [DEBUG][       Thread-256732][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 13:39:33,630 [DEBUG][       Thread-256732][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 13:39:33,630 [DEBUG][       Thread-256732][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 13:39:33,630 [DEBUG][       Thread-256732][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:39:33,630 [DEBUG][       Thread-256732][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:39:33,630 [DEBUG][       Thread-256732][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:39:33,630 [DEBUG][       Thread-256732][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:39:33,630 [DEBUG][       Thread-256732][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 13:39:33,630 [DEBUG][       Thread-256732][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 13:39:33,630 [DEBUG][       Thread-256732][   transport.py][1871] : client lang: <none>
2025-06-13 13:39:33,630 [DEBUG][       Thread-256732][   transport.py][1871] : server lang: <none>
2025-06-13 13:39:33,630 [DEBUG][       Thread-256732][   transport.py][1871] : kex follows: False
2025-06-13 13:39:33,630 [DEBUG][       Thread-256732][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 13:39:33,630 [DEBUG][       Thread-256732][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 13:39:33,630 [DEBUG][       Thread-256732][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 13:39:33,630 [DEBUG][       Thread-256732][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 13:39:33,630 [DEBUG][       Thread-256732][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 13:39:33,630 [DEBUG][       Thread-256732][   transport.py][1871] : Compression: none
2025-06-13 13:39:33,630 [DEBUG][       Thread-256732][   transport.py][1871] : === End of kex handshake ===
2025-06-13 13:39:33,690 [DEBUG][       Thread-256732][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 13:39:33,690 [DEBUG][       Thread-256732][   transport.py][1871] : Switch to new keys ...
2025-06-13 13:39:33,691 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 13:39:33,692 [DEBUG][       Thread-256732][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 13:39:33,692 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 13:39:33,750 [DEBUG][       Thread-256732][   transport.py][1871] : userauth is OK
2025-06-13 13:39:33,750 [DEBUG][       Thread-256732][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 13:39:33,750 [DEBUG][       Thread-256732][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 13:39:33,750 [DEBUG][       Thread-256732][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 13:39:33,750 [DEBUG][       Thread-256732][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 13:39:33,768 [ INFO][       Thread-256732][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 13:39:33,769 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 13:39:33,769 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 13:39:34,767 [DEBUG][       Thread-256732][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 13:39:34,768 [DEBUG][       Thread-256732][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 13:39:34,816 [DEBUG][       Thread-256732][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 13:39:34,816 [DEBUG][       Thread-256732][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 13:39:34,825 [DEBUG][       Thread-256732][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 13:39:34,834 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 13:39:34,834 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 13:39:34,843 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 13:39:34,852 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 13:39:34,853 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 13:39:34,853 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 13:39:34,861 [DEBUG][       Thread-256732][   transport.py][1871] : EOF in transport thread
2025-06-13 13:39:40,415 [DEBUG][Thread-256734 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:39:44,864 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 13:39:44,864 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 13:39:44,864 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 13:39:44,867 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 13:39:45,324 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 13, 39, 25), 17.0, 30.41, 0.0, 24.72, 13.32, 0, 0, 0, 2, 0, 0),)
2025-06-13 13:39:45,324 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 13:39:25
2025-06-13 13:39:45,405 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 13:39:45,409 [DEBUG][       Thread-256735][   transport.py][1871] : starting thread (client mode): 0x863c98a0
2025-06-13 13:39:45,409 [DEBUG][       Thread-256735][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 13:39:45,430 [DEBUG][       Thread-256735][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 13:39:45,430 [ INFO][       Thread-256735][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 13:39:45,433 [DEBUG][       Thread-256735][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 13:39:45,439 [DEBUG][       Thread-256735][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 13:39:45,439 [DEBUG][       Thread-256735][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 13:39:45,439 [DEBUG][       Thread-256735][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:39:45,439 [DEBUG][       Thread-256735][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:39:45,440 [DEBUG][       Thread-256735][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:39:45,440 [DEBUG][       Thread-256735][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:39:45,440 [DEBUG][       Thread-256735][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 13:39:45,440 [DEBUG][       Thread-256735][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 13:39:45,440 [DEBUG][       Thread-256735][   transport.py][1871] : client lang: <none>
2025-06-13 13:39:45,440 [DEBUG][       Thread-256735][   transport.py][1871] : server lang: <none>
2025-06-13 13:39:45,440 [DEBUG][       Thread-256735][   transport.py][1871] : kex follows: False
2025-06-13 13:39:45,440 [DEBUG][       Thread-256735][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 13:39:45,440 [DEBUG][       Thread-256735][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 13:39:45,440 [DEBUG][       Thread-256735][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 13:39:45,440 [DEBUG][       Thread-256735][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 13:39:45,440 [DEBUG][       Thread-256735][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 13:39:45,440 [DEBUG][       Thread-256735][   transport.py][1871] : Compression: none
2025-06-13 13:39:45,440 [DEBUG][       Thread-256735][   transport.py][1871] : === End of kex handshake ===
2025-06-13 13:39:45,457 [DEBUG][       Thread-256735][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 13:39:45,458 [DEBUG][       Thread-256735][   transport.py][1871] : Switch to new keys ...
2025-06-13 13:39:45,458 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 13:39:45,459 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 13:39:45,459 [DEBUG][       Thread-256735][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 13:39:45,460 [DEBUG][       Thread-256735][   transport.py][1871] : userauth is OK
2025-06-13 13:39:45,485 [ INFO][       Thread-256735][   transport.py][1871] : Authentication (password) successful!
2025-06-13 13:39:45,486 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 13:39:46,100 [DEBUG][       Thread-256735][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 13:39:46,100 [DEBUG][       Thread-256735][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 13:39:46,141 [DEBUG][       Thread-256735][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 13:39:46,141 [DEBUG][       Thread-256735][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 13:39:46,145 [DEBUG][       Thread-256735][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 13:39:46,158 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 13:39:46,158 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 13:39:46,161 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 13:39:46,163 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 13:39:46,169 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 13:39:46,171 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 13:39:46,171 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 13:39:46,172 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 13:39:46,172 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.485354 -999.00  +13.00  22.84     35   -2.10 1 1 1 1 1   888    0 18.54 144.17 ----- 22.6 22.8 46.8 30.2 17.4 -31.1 16.3 -32.6 16.4 -30.6 17.8 -28.2
2025-06-13 13:39:46,172 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 13:39:46,172 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 13:39:46,172 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.485354
2025-06-13 13:39:46,173 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 13:39:46,173 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 13:39:46,173 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 13:39:46,174 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 13:39:46,174 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 13:39:46,174 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T13:39:25', tmtdew=17.0, humidity=30.41, cloud=0.0, wind=24.72, temperature=13.32, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T11:38:54.586', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 13:39:46,174 [DEBUG][       Thread-256735][   transport.py][1871] : EOF in transport thread
2025-06-13 13:39:46,257 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 13:39:46,269 [DEBUG][       Thread-256738][   transport.py][1871] : starting thread (client mode): 0x867fcd30
2025-06-13 13:39:46,269 [DEBUG][       Thread-256738][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 13:39:46,288 [DEBUG][       Thread-256738][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 13:39:46,288 [ INFO][       Thread-256738][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 13:39:46,296 [DEBUG][       Thread-256738][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 13:39:46,296 [DEBUG][       Thread-256738][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 13:39:46,296 [DEBUG][       Thread-256738][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 13:39:46,296 [DEBUG][       Thread-256738][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:39:46,296 [DEBUG][       Thread-256738][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:39:46,296 [DEBUG][       Thread-256738][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:39:46,296 [DEBUG][       Thread-256738][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:39:46,296 [DEBUG][       Thread-256738][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 13:39:46,296 [DEBUG][       Thread-256738][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 13:39:46,296 [DEBUG][       Thread-256738][   transport.py][1871] : client lang: <none>
2025-06-13 13:39:46,296 [DEBUG][       Thread-256738][   transport.py][1871] : server lang: <none>
2025-06-13 13:39:46,296 [DEBUG][       Thread-256738][   transport.py][1871] : kex follows: False
2025-06-13 13:39:46,296 [DEBUG][       Thread-256738][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 13:39:46,296 [DEBUG][       Thread-256738][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 13:39:46,297 [DEBUG][       Thread-256738][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 13:39:46,297 [DEBUG][       Thread-256738][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 13:39:46,297 [DEBUG][       Thread-256738][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 13:39:46,297 [DEBUG][       Thread-256738][   transport.py][1871] : Compression: none
2025-06-13 13:39:46,297 [DEBUG][       Thread-256738][   transport.py][1871] : === End of kex handshake ===
2025-06-13 13:39:46,354 [DEBUG][       Thread-256738][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 13:39:46,355 [DEBUG][       Thread-256738][   transport.py][1871] : Switch to new keys ...
2025-06-13 13:39:46,355 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 13:39:46,356 [DEBUG][       Thread-256738][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 13:39:46,357 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 13:39:46,409 [DEBUG][       Thread-256738][   transport.py][1871] : userauth is OK
2025-06-13 13:39:46,410 [DEBUG][       Thread-256738][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 13:39:46,410 [DEBUG][       Thread-256738][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 13:39:46,410 [DEBUG][       Thread-256738][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 13:39:46,410 [DEBUG][       Thread-256738][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 13:39:46,431 [ INFO][       Thread-256738][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 13:39:46,431 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 13:39:46,432 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 13:39:46,722 [DEBUG][Thread-256740 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:39:47,459 [DEBUG][       Thread-256738][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 13:39:47,459 [DEBUG][       Thread-256738][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 13:39:47,508 [DEBUG][       Thread-256738][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 13:39:47,508 [DEBUG][       Thread-256738][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 13:39:47,517 [DEBUG][       Thread-256738][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 13:39:47,526 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 13:39:47,527 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 13:39:47,538 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 13:39:47,547 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 13:39:47,548 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 13:39:47,548 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 13:39:47,556 [DEBUG][       Thread-256738][   transport.py][1871] : EOF in transport thread
2025-06-13 13:39:47,802 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:39:47,803 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:39:49,458 [DEBUG][Thread-256741 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:39:54,074 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:39:54,076 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:39:57,556 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 13:39:57,556 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 13:39:57,556 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 13:39:57,559 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 13:39:58,065 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 13, 39, 25), 17.0, 30.41, 0.0, 24.72, 13.32, 0, 0, 0, 2, 0, 0),)
2025-06-13 13:39:58,065 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 13:39:25
2025-06-13 13:39:58,152 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 13:39:58,156 [DEBUG][       Thread-256742][   transport.py][1871] : starting thread (client mode): 0x842069e0
2025-06-13 13:39:58,156 [DEBUG][       Thread-256742][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 13:39:58,179 [DEBUG][       Thread-256742][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 13:39:58,179 [ INFO][       Thread-256742][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 13:39:58,182 [DEBUG][       Thread-256742][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 13:39:58,182 [DEBUG][       Thread-256742][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 13:39:58,182 [DEBUG][       Thread-256742][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 13:39:58,182 [DEBUG][       Thread-256742][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:39:58,182 [DEBUG][       Thread-256742][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:39:58,182 [DEBUG][       Thread-256742][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:39:58,182 [DEBUG][       Thread-256742][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:39:58,182 [DEBUG][       Thread-256742][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 13:39:58,182 [DEBUG][       Thread-256742][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 13:39:58,182 [DEBUG][       Thread-256742][   transport.py][1871] : client lang: <none>
2025-06-13 13:39:58,182 [DEBUG][       Thread-256742][   transport.py][1871] : server lang: <none>
2025-06-13 13:39:58,182 [DEBUG][       Thread-256742][   transport.py][1871] : kex follows: False
2025-06-13 13:39:58,182 [DEBUG][       Thread-256742][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 13:39:58,182 [DEBUG][       Thread-256742][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 13:39:58,182 [DEBUG][       Thread-256742][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 13:39:58,182 [DEBUG][       Thread-256742][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 13:39:58,182 [DEBUG][       Thread-256742][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 13:39:58,182 [DEBUG][       Thread-256742][   transport.py][1871] : Compression: none
2025-06-13 13:39:58,182 [DEBUG][       Thread-256742][   transport.py][1871] : === End of kex handshake ===
2025-06-13 13:39:58,198 [DEBUG][       Thread-256742][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 13:39:58,198 [DEBUG][       Thread-256742][   transport.py][1871] : Switch to new keys ...
2025-06-13 13:39:58,198 [DEBUG][       Thread-256742][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 13:39:58,198 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 13:39:58,198 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 13:39:58,199 [DEBUG][       Thread-256742][   transport.py][1871] : userauth is OK
2025-06-13 13:39:58,223 [ INFO][       Thread-256742][   transport.py][1871] : Authentication (password) successful!
2025-06-13 13:39:58,223 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 13:39:58,479 [DEBUG][Thread-256744 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:39:58,865 [DEBUG][       Thread-256742][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 13:39:58,865 [DEBUG][       Thread-256742][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 13:39:58,908 [DEBUG][       Thread-256742][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 13:39:58,908 [DEBUG][       Thread-256742][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 13:39:58,911 [DEBUG][       Thread-256742][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 13:39:58,922 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 13:39:58,922 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 13:39:58,923 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 13:39:58,924 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 13:39:58,927 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 13:39:58,928 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 13:39:58,928 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 13:39:58,928 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 13:39:58,928 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.485701 -999.00  +12.80  22.87     35   -1.90 1 1 1 1 1   888    0 18.47 142.79 ----- 20.8 22.9 42.2 30.2 17.4 -30.6 16.3 -32.0 16.3 -30.9 17.7 -28.5
2025-06-13 13:39:58,928 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 13:39:58,928 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 13:39:58,928 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.485701
2025-06-13 13:39:58,928 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 13:39:58,929 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 13:39:58,929 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 13:39:58,929 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 13:39:58,929 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 13:39:58,929 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T13:39:25', tmtdew=17.0, humidity=30.41, cloud=0.0, wind=24.72, temperature=13.32, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T11:39:24.566', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 13:39:58,929 [DEBUG][       Thread-256742][   transport.py][1871] : EOF in transport thread
2025-06-13 13:39:59,010 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 13:39:59,020 [DEBUG][       Thread-256746][   transport.py][1871] : starting thread (client mode): 0x8636bee0
2025-06-13 13:39:59,020 [DEBUG][       Thread-256746][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 13:39:59,033 [DEBUG][       Thread-256746][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 13:39:59,033 [ INFO][       Thread-256746][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 13:39:59,041 [DEBUG][       Thread-256746][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 13:39:59,041 [DEBUG][       Thread-256746][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 13:39:59,041 [DEBUG][       Thread-256746][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 13:39:59,041 [DEBUG][       Thread-256746][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:39:59,041 [DEBUG][       Thread-256746][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:39:59,041 [DEBUG][       Thread-256746][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:39:59,041 [DEBUG][       Thread-256746][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:39:59,041 [DEBUG][       Thread-256746][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 13:39:59,041 [DEBUG][       Thread-256746][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 13:39:59,041 [DEBUG][       Thread-256746][   transport.py][1871] : client lang: <none>
2025-06-13 13:39:59,041 [DEBUG][       Thread-256746][   transport.py][1871] : server lang: <none>
2025-06-13 13:39:59,041 [DEBUG][       Thread-256746][   transport.py][1871] : kex follows: False
2025-06-13 13:39:59,041 [DEBUG][       Thread-256746][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 13:39:59,041 [DEBUG][       Thread-256746][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 13:39:59,041 [DEBUG][       Thread-256746][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 13:39:59,041 [DEBUG][       Thread-256746][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 13:39:59,041 [DEBUG][       Thread-256746][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 13:39:59,041 [DEBUG][       Thread-256746][   transport.py][1871] : Compression: none
2025-06-13 13:39:59,041 [DEBUG][       Thread-256746][   transport.py][1871] : === End of kex handshake ===
2025-06-13 13:39:59,097 [DEBUG][       Thread-256746][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 13:39:59,097 [DEBUG][       Thread-256746][   transport.py][1871] : Switch to new keys ...
2025-06-13 13:39:59,097 [DEBUG][       Thread-256746][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 13:39:59,097 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 13:39:59,098 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 13:39:59,155 [DEBUG][       Thread-256746][   transport.py][1871] : userauth is OK
2025-06-13 13:39:59,155 [DEBUG][       Thread-256746][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 13:39:59,155 [DEBUG][       Thread-256746][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 13:39:59,155 [DEBUG][       Thread-256746][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 13:39:59,155 [DEBUG][       Thread-256746][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 13:39:59,169 [ INFO][       Thread-256746][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 13:39:59,169 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 13:39:59,169 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 13:40:00,178 [DEBUG][       Thread-256746][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 13:40:00,178 [DEBUG][       Thread-256746][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 13:40:00,227 [DEBUG][       Thread-256746][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 13:40:00,227 [DEBUG][       Thread-256746][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 13:40:00,235 [DEBUG][       Thread-256746][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 13:40:00,243 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 13:40:00,243 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 13:40:00,251 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 13:40:00,259 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 13:40:00,259 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 13:40:00,259 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 13:40:00,267 [DEBUG][       Thread-256746][   transport.py][1871] : EOF in transport thread
2025-06-13 13:40:07,500 [DEBUG][Thread-256748 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:40:10,270 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 13:40:10,270 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 13:40:10,270 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 13:40:10,273 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 13:40:10,727 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 13, 39, 57), 17.03, 30.33, 0.0, 25.11, 13.24, 0, 0, 0, 2, 0, 0),)
2025-06-13 13:40:10,728 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 13:39:57
2025-06-13 13:40:10,807 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 13:40:10,813 [DEBUG][       Thread-256749][   transport.py][1871] : starting thread (client mode): 0x84205ae0
2025-06-13 13:40:10,813 [DEBUG][       Thread-256749][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 13:40:10,833 [DEBUG][       Thread-256749][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 13:40:10,833 [ INFO][       Thread-256749][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 13:40:10,836 [DEBUG][       Thread-256749][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 13:40:10,836 [DEBUG][       Thread-256749][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 13:40:10,836 [DEBUG][       Thread-256749][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 13:40:10,836 [DEBUG][       Thread-256749][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:40:10,836 [DEBUG][       Thread-256749][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:40:10,836 [DEBUG][       Thread-256749][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:40:10,836 [DEBUG][       Thread-256749][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:40:10,836 [DEBUG][       Thread-256749][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 13:40:10,836 [DEBUG][       Thread-256749][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 13:40:10,836 [DEBUG][       Thread-256749][   transport.py][1871] : client lang: <none>
2025-06-13 13:40:10,836 [DEBUG][       Thread-256749][   transport.py][1871] : server lang: <none>
2025-06-13 13:40:10,836 [DEBUG][       Thread-256749][   transport.py][1871] : kex follows: False
2025-06-13 13:40:10,836 [DEBUG][       Thread-256749][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 13:40:10,836 [DEBUG][       Thread-256749][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 13:40:10,836 [DEBUG][       Thread-256749][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 13:40:10,837 [DEBUG][       Thread-256749][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 13:40:10,837 [DEBUG][       Thread-256749][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 13:40:10,837 [DEBUG][       Thread-256749][   transport.py][1871] : Compression: none
2025-06-13 13:40:10,837 [DEBUG][       Thread-256749][   transport.py][1871] : === End of kex handshake ===
2025-06-13 13:40:10,853 [DEBUG][       Thread-256749][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 13:40:10,853 [DEBUG][       Thread-256749][   transport.py][1871] : Switch to new keys ...
2025-06-13 13:40:10,854 [DEBUG][       Thread-256749][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 13:40:10,854 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 13:40:10,854 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 13:40:10,856 [DEBUG][       Thread-256749][   transport.py][1871] : userauth is OK
2025-06-13 13:40:10,880 [ INFO][       Thread-256749][   transport.py][1871] : Authentication (password) successful!
2025-06-13 13:40:10,881 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 13:40:15,796 [DEBUG][Thread-256751 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:40:16,295 [DEBUG][       Thread-256749][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 13:40:16,295 [DEBUG][       Thread-256749][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 13:40:16,337 [DEBUG][       Thread-256749][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 13:40:16,337 [DEBUG][       Thread-256749][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 13:40:16,341 [DEBUG][       Thread-256749][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 13:40:16,353 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 13:40:16,354 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 13:40:16,356 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 13:40:16,358 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 13:40:16,365 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 13:40:16,367 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 13:40:16,367 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 13:40:16,368 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 13:40:16,368 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.485701 -999.00  +12.80  22.87     35   -1.90 1 1 1 1 1   888    0 18.47 142.79 ----- 20.8 22.9 42.2 30.2 17.4 -30.6 16.3 -32.0 16.3 -30.9 17.7 -28.5
2025-06-13 13:40:16,368 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 13:40:16,368 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 13:40:16,368 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.485701
2025-06-13 13:40:16,369 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 13:40:16,369 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 13:40:16,369 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 13:40:16,369 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 13:40:16,370 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 13:40:16,370 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T13:39:57', tmtdew=17.03, humidity=30.33, cloud=0.0, wind=25.11, temperature=13.24, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T11:39:24.566', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 13:40:16,371 [DEBUG][       Thread-256749][   transport.py][1871] : EOF in transport thread
2025-06-13 13:40:16,453 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 13:40:16,466 [DEBUG][       Thread-256753][   transport.py][1871] : starting thread (client mode): 0x867fe770
2025-06-13 13:40:16,466 [DEBUG][       Thread-256753][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 13:40:16,481 [DEBUG][       Thread-256753][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 13:40:16,481 [ INFO][       Thread-256753][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 13:40:16,488 [DEBUG][       Thread-256753][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 13:40:16,488 [DEBUG][       Thread-256753][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 13:40:16,488 [DEBUG][       Thread-256753][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 13:40:16,488 [DEBUG][       Thread-256753][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:40:16,488 [DEBUG][       Thread-256753][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:40:16,488 [DEBUG][       Thread-256753][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:40:16,488 [DEBUG][       Thread-256753][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:40:16,488 [DEBUG][       Thread-256753][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 13:40:16,489 [DEBUG][       Thread-256753][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 13:40:16,489 [DEBUG][       Thread-256753][   transport.py][1871] : client lang: <none>
2025-06-13 13:40:16,489 [DEBUG][       Thread-256753][   transport.py][1871] : server lang: <none>
2025-06-13 13:40:16,489 [DEBUG][       Thread-256753][   transport.py][1871] : kex follows: False
2025-06-13 13:40:16,489 [DEBUG][       Thread-256753][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 13:40:16,489 [DEBUG][       Thread-256753][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 13:40:16,489 [DEBUG][       Thread-256753][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 13:40:16,489 [DEBUG][       Thread-256753][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 13:40:16,489 [DEBUG][       Thread-256753][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 13:40:16,489 [DEBUG][       Thread-256753][   transport.py][1871] : Compression: none
2025-06-13 13:40:16,489 [DEBUG][       Thread-256753][   transport.py][1871] : === End of kex handshake ===
2025-06-13 13:40:16,526 [DEBUG][Thread-256755 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:40:16,545 [DEBUG][       Thread-256753][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 13:40:16,546 [DEBUG][       Thread-256753][   transport.py][1871] : Switch to new keys ...
2025-06-13 13:40:16,546 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 13:40:16,547 [DEBUG][       Thread-256753][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 13:40:16,547 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 13:40:16,606 [DEBUG][       Thread-256753][   transport.py][1871] : userauth is OK
2025-06-13 13:40:16,606 [DEBUG][       Thread-256753][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 13:40:16,606 [DEBUG][       Thread-256753][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 13:40:16,606 [DEBUG][       Thread-256753][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 13:40:16,606 [DEBUG][       Thread-256753][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 13:40:16,625 [ INFO][       Thread-256753][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 13:40:16,626 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 13:40:16,626 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 13:40:17,637 [DEBUG][       Thread-256753][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 13:40:17,637 [DEBUG][       Thread-256753][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 13:40:17,688 [DEBUG][       Thread-256753][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 13:40:17,688 [DEBUG][       Thread-256753][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 13:40:17,697 [DEBUG][       Thread-256753][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 13:40:17,707 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 13:40:17,707 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 13:40:17,725 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 13:40:17,734 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 13:40:17,735 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 13:40:17,735 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 13:40:17,743 [DEBUG][       Thread-256753][   transport.py][1871] : EOF in transport thread
2025-06-13 13:40:25,565 [DEBUG][Thread-256756 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:40:27,744 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 13:40:27,744 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 13:40:27,744 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 13:40:27,747 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 13:40:28,200 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 13, 39, 57), 17.03, 30.33, 0.0, 25.11, 13.24, 0, 0, 0, 2, 0, 0),)
2025-06-13 13:40:28,200 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 13:39:57
2025-06-13 13:40:28,281 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 13:40:28,285 [DEBUG][       Thread-256757][   transport.py][1871] : starting thread (client mode): 0x863bc5b0
2025-06-13 13:40:28,285 [DEBUG][       Thread-256757][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 13:40:28,304 [DEBUG][       Thread-256757][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 13:40:28,304 [ INFO][       Thread-256757][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 13:40:28,308 [DEBUG][       Thread-256757][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 13:40:28,308 [DEBUG][       Thread-256757][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 13:40:28,308 [DEBUG][       Thread-256757][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 13:40:28,308 [DEBUG][       Thread-256757][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:40:28,308 [DEBUG][       Thread-256757][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:40:28,308 [DEBUG][       Thread-256757][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:40:28,308 [DEBUG][       Thread-256757][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:40:28,308 [DEBUG][       Thread-256757][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 13:40:28,308 [DEBUG][       Thread-256757][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 13:40:28,308 [DEBUG][       Thread-256757][   transport.py][1871] : client lang: <none>
2025-06-13 13:40:28,308 [DEBUG][       Thread-256757][   transport.py][1871] : server lang: <none>
2025-06-13 13:40:28,308 [DEBUG][       Thread-256757][   transport.py][1871] : kex follows: False
2025-06-13 13:40:28,308 [DEBUG][       Thread-256757][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 13:40:28,308 [DEBUG][       Thread-256757][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 13:40:28,308 [DEBUG][       Thread-256757][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 13:40:28,309 [DEBUG][       Thread-256757][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 13:40:28,309 [DEBUG][       Thread-256757][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 13:40:28,309 [DEBUG][       Thread-256757][   transport.py][1871] : Compression: none
2025-06-13 13:40:28,309 [DEBUG][       Thread-256757][   transport.py][1871] : === End of kex handshake ===
2025-06-13 13:40:28,324 [DEBUG][       Thread-256757][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 13:40:28,325 [DEBUG][       Thread-256757][   transport.py][1871] : Switch to new keys ...
2025-06-13 13:40:28,325 [DEBUG][       Thread-256757][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 13:40:28,325 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 13:40:28,326 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 13:40:28,326 [DEBUG][       Thread-256757][   transport.py][1871] : userauth is OK
2025-06-13 13:40:28,350 [ INFO][       Thread-256757][   transport.py][1871] : Authentication (password) successful!
2025-06-13 13:40:28,351 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 13:40:28,938 [DEBUG][       Thread-256757][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 13:40:28,938 [DEBUG][       Thread-256757][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 13:40:28,981 [DEBUG][       Thread-256757][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 13:40:28,981 [DEBUG][       Thread-256757][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 13:40:28,984 [DEBUG][       Thread-256757][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 13:40:28,995 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 13:40:28,995 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 13:40:28,997 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 13:40:28,998 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 13:40:29,002 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 13:40:29,004 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 13:40:29,004 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 13:40:29,005 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 13:40:29,005 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.486048 -999.00  +13.00  19.56     36   -1.30 1 1 1 1 1   888    0 18.43 136.91 ----- 25.4 19.6 44.2 22.2 17.5 -30.3 16.3 -32.2 16.4 -29.9 17.6 -27.9
2025-06-13 13:40:29,005 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 13:40:29,005 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 13:40:29,005 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.486048
2025-06-13 13:40:29,005 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 13:40:29,006 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 13:40:29,006 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 13:40:29,006 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 13:40:29,006 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 13:40:29,006 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T13:39:57', tmtdew=17.03, humidity=30.33, cloud=0.0, wind=25.11, temperature=13.24, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T11:39:54.547', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 13:40:29,007 [DEBUG][       Thread-256757][   transport.py][1871] : EOF in transport thread
2025-06-13 13:40:29,089 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 13:40:29,098 [DEBUG][       Thread-256760][   transport.py][1871] : starting thread (client mode): 0x863528f0
2025-06-13 13:40:29,098 [DEBUG][       Thread-256760][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 13:40:29,114 [DEBUG][       Thread-256760][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 13:40:29,114 [ INFO][       Thread-256760][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 13:40:29,121 [DEBUG][       Thread-256760][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 13:40:29,121 [DEBUG][       Thread-256760][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 13:40:29,121 [DEBUG][       Thread-256760][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 13:40:29,121 [DEBUG][       Thread-256760][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:40:29,121 [DEBUG][       Thread-256760][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:40:29,121 [DEBUG][       Thread-256760][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:40:29,121 [DEBUG][       Thread-256760][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:40:29,121 [DEBUG][       Thread-256760][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 13:40:29,121 [DEBUG][       Thread-256760][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 13:40:29,121 [DEBUG][       Thread-256760][   transport.py][1871] : client lang: <none>
2025-06-13 13:40:29,121 [DEBUG][       Thread-256760][   transport.py][1871] : server lang: <none>
2025-06-13 13:40:29,121 [DEBUG][       Thread-256760][   transport.py][1871] : kex follows: False
2025-06-13 13:40:29,122 [DEBUG][       Thread-256760][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 13:40:29,122 [DEBUG][       Thread-256760][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 13:40:29,122 [DEBUG][       Thread-256760][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 13:40:29,122 [DEBUG][       Thread-256760][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 13:40:29,122 [DEBUG][       Thread-256760][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 13:40:29,122 [DEBUG][       Thread-256760][   transport.py][1871] : Compression: none
2025-06-13 13:40:29,122 [DEBUG][       Thread-256760][   transport.py][1871] : === End of kex handshake ===
2025-06-13 13:40:29,177 [DEBUG][       Thread-256760][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 13:40:29,177 [DEBUG][       Thread-256760][   transport.py][1871] : Switch to new keys ...
2025-06-13 13:40:29,178 [DEBUG][       Thread-256760][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 13:40:29,178 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 13:40:29,178 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 13:40:29,233 [DEBUG][       Thread-256760][   transport.py][1871] : userauth is OK
2025-06-13 13:40:29,233 [DEBUG][       Thread-256760][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 13:40:29,233 [DEBUG][       Thread-256760][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 13:40:29,233 [DEBUG][       Thread-256760][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 13:40:29,233 [DEBUG][       Thread-256760][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 13:40:29,256 [ INFO][       Thread-256760][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 13:40:29,257 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 13:40:29,257 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 13:40:30,365 [DEBUG][       Thread-256760][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 13:40:30,365 [DEBUG][       Thread-256760][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 13:40:30,417 [DEBUG][       Thread-256760][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 13:40:30,417 [DEBUG][       Thread-256760][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 13:40:30,425 [DEBUG][       Thread-256760][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 13:40:30,441 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 13:40:30,441 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 13:40:30,453 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 13:40:30,465 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 13:40:30,465 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 13:40:30,465 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 13:40:30,473 [DEBUG][       Thread-256760][   transport.py][1871] : EOF in transport thread
2025-06-13 13:40:34,584 [DEBUG][Thread-256762 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:40:40,472 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 13:40:40,472 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 13:40:40,472 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 13:40:40,473 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 13:40:40,927 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 13, 40, 29), 16.71, 31.25, 0.0, 21.37, 13.17, 0, 0, 0, 2, 0, 0),)
2025-06-13 13:40:40,927 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 13:40:29
2025-06-13 13:40:41,008 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 13:40:41,014 [DEBUG][       Thread-256763][   transport.py][1871] : starting thread (client mode): 0x863502b0
2025-06-13 13:40:41,014 [DEBUG][       Thread-256763][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 13:40:41,034 [DEBUG][       Thread-256763][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 13:40:41,034 [ INFO][       Thread-256763][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 13:40:41,037 [DEBUG][       Thread-256763][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 13:40:41,037 [DEBUG][       Thread-256763][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 13:40:41,037 [DEBUG][       Thread-256763][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 13:40:41,038 [DEBUG][       Thread-256763][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:40:41,038 [DEBUG][       Thread-256763][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:40:41,038 [DEBUG][       Thread-256763][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:40:41,038 [DEBUG][       Thread-256763][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:40:41,038 [DEBUG][       Thread-256763][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 13:40:41,038 [DEBUG][       Thread-256763][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 13:40:41,038 [DEBUG][       Thread-256763][   transport.py][1871] : client lang: <none>
2025-06-13 13:40:41,038 [DEBUG][       Thread-256763][   transport.py][1871] : server lang: <none>
2025-06-13 13:40:41,038 [DEBUG][       Thread-256763][   transport.py][1871] : kex follows: False
2025-06-13 13:40:41,038 [DEBUG][       Thread-256763][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 13:40:41,038 [DEBUG][       Thread-256763][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 13:40:41,038 [DEBUG][       Thread-256763][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 13:40:41,038 [DEBUG][       Thread-256763][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 13:40:41,038 [DEBUG][       Thread-256763][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 13:40:41,038 [DEBUG][       Thread-256763][   transport.py][1871] : Compression: none
2025-06-13 13:40:41,038 [DEBUG][       Thread-256763][   transport.py][1871] : === End of kex handshake ===
2025-06-13 13:40:41,054 [DEBUG][       Thread-256763][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 13:40:41,055 [DEBUG][       Thread-256763][   transport.py][1871] : Switch to new keys ...
2025-06-13 13:40:41,055 [DEBUG][       Thread-256763][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 13:40:41,056 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 13:40:41,056 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 13:40:41,057 [DEBUG][       Thread-256763][   transport.py][1871] : userauth is OK
2025-06-13 13:40:41,071 [ INFO][       Thread-256763][   transport.py][1871] : Authentication (password) successful!
2025-06-13 13:40:41,072 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 13:40:41,690 [DEBUG][       Thread-256763][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 13:40:41,690 [DEBUG][       Thread-256763][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 13:40:41,733 [DEBUG][       Thread-256763][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 13:40:41,733 [DEBUG][       Thread-256763][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 13:40:41,737 [DEBUG][       Thread-256763][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 13:40:41,749 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 13:40:41,749 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 13:40:41,751 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 13:40:41,754 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 13:40:41,759 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 13:40:41,761 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 13:40:41,762 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 13:40:41,762 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 13:40:41,762 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.486048 -999.00  +13.00  19.56     36   -1.30 1 1 1 1 1   888    0 18.43 136.91 ----- 25.4 19.6 44.2 22.2 17.5 -30.3 16.3 -32.2 16.4 -29.9 17.6 -27.9
2025-06-13 13:40:41,763 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 13:40:41,763 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 13:40:41,763 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.486048
2025-06-13 13:40:41,763 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 13:40:41,764 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 13:40:41,764 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 13:40:41,764 [DEBUG][       Thread-256763][   transport.py][1871] : EOF in transport thread
2025-06-13 13:40:41,764 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 13:40:41,765 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 13:40:41,765 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T13:40:29', tmtdew=16.71, humidity=31.25, cloud=0.0, wind=21.37, temperature=13.17, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T11:39:54.547', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 13:40:41,848 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 13:40:41,860 [DEBUG][       Thread-256766][   transport.py][1871] : starting thread (client mode): 0x86893ca0
2025-06-13 13:40:41,860 [DEBUG][       Thread-256766][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 13:40:41,878 [DEBUG][       Thread-256766][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 13:40:41,878 [ INFO][       Thread-256766][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 13:40:41,886 [DEBUG][       Thread-256766][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 13:40:41,886 [DEBUG][       Thread-256766][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 13:40:41,886 [DEBUG][       Thread-256766][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 13:40:41,886 [DEBUG][       Thread-256766][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:40:41,886 [DEBUG][       Thread-256766][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:40:41,886 [DEBUG][       Thread-256766][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:40:41,886 [DEBUG][       Thread-256766][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:40:41,886 [DEBUG][       Thread-256766][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 13:40:41,886 [DEBUG][       Thread-256766][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 13:40:41,886 [DEBUG][       Thread-256766][   transport.py][1871] : client lang: <none>
2025-06-13 13:40:41,886 [DEBUG][       Thread-256766][   transport.py][1871] : server lang: <none>
2025-06-13 13:40:41,886 [DEBUG][       Thread-256766][   transport.py][1871] : kex follows: False
2025-06-13 13:40:41,886 [DEBUG][       Thread-256766][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 13:40:41,887 [DEBUG][       Thread-256766][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 13:40:41,887 [DEBUG][       Thread-256766][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 13:40:41,887 [DEBUG][       Thread-256766][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 13:40:41,887 [DEBUG][       Thread-256766][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 13:40:41,887 [DEBUG][       Thread-256766][   transport.py][1871] : Compression: none
2025-06-13 13:40:41,887 [DEBUG][       Thread-256766][   transport.py][1871] : === End of kex handshake ===
2025-06-13 13:40:41,948 [DEBUG][       Thread-256766][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 13:40:41,948 [DEBUG][       Thread-256766][   transport.py][1871] : Switch to new keys ...
2025-06-13 13:40:41,949 [DEBUG][       Thread-256766][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 13:40:41,949 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 13:40:41,950 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 13:40:42,006 [DEBUG][       Thread-256766][   transport.py][1871] : userauth is OK
2025-06-13 13:40:42,006 [DEBUG][       Thread-256766][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 13:40:42,006 [DEBUG][       Thread-256766][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 13:40:42,006 [DEBUG][       Thread-256766][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 13:40:42,006 [DEBUG][       Thread-256766][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 13:40:42,025 [ INFO][       Thread-256766][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 13:40:42,025 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 13:40:42,026 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 13:40:43,066 [DEBUG][       Thread-256766][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 13:40:43,067 [DEBUG][       Thread-256766][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 13:40:43,116 [DEBUG][       Thread-256766][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 13:40:43,116 [DEBUG][       Thread-256766][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 13:40:43,125 [DEBUG][       Thread-256766][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 13:40:43,135 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 13:40:43,135 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 13:40:43,144 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 13:40:43,153 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 13:40:43,154 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 13:40:43,154 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 13:40:43,162 [DEBUG][       Thread-256766][   transport.py][1871] : EOF in transport thread
2025-06-13 13:40:43,603 [DEBUG][Thread-256768 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:40:47,886 [DEBUG][Thread-256769 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:40:48,962 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:40:48,964 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:40:52,641 [DEBUG][Thread-256770 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:40:53,165 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 13:40:53,165 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 13:40:53,165 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 13:40:53,168 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 13:40:53,622 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 13, 40, 29), 16.71, 31.25, 0.0, 21.37, 13.17, 0, 0, 0, 2, 0, 0),)
2025-06-13 13:40:53,622 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 13:40:29
2025-06-13 13:40:53,704 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 13:40:53,708 [DEBUG][       Thread-256771][   transport.py][1871] : starting thread (client mode): 0x84204b80
2025-06-13 13:40:53,708 [DEBUG][       Thread-256771][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 13:40:53,729 [DEBUG][       Thread-256771][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 13:40:53,729 [ INFO][       Thread-256771][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 13:40:53,732 [DEBUG][       Thread-256771][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 13:40:53,732 [DEBUG][       Thread-256771][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 13:40:53,732 [DEBUG][       Thread-256771][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 13:40:53,732 [DEBUG][       Thread-256771][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:40:53,732 [DEBUG][       Thread-256771][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:40:53,732 [DEBUG][       Thread-256771][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:40:53,732 [DEBUG][       Thread-256771][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:40:53,732 [DEBUG][       Thread-256771][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 13:40:53,732 [DEBUG][       Thread-256771][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 13:40:53,732 [DEBUG][       Thread-256771][   transport.py][1871] : client lang: <none>
2025-06-13 13:40:53,732 [DEBUG][       Thread-256771][   transport.py][1871] : server lang: <none>
2025-06-13 13:40:53,732 [DEBUG][       Thread-256771][   transport.py][1871] : kex follows: False
2025-06-13 13:40:53,732 [DEBUG][       Thread-256771][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 13:40:53,732 [DEBUG][       Thread-256771][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 13:40:53,732 [DEBUG][       Thread-256771][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 13:40:53,732 [DEBUG][       Thread-256771][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 13:40:53,732 [DEBUG][       Thread-256771][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 13:40:53,732 [DEBUG][       Thread-256771][   transport.py][1871] : Compression: none
2025-06-13 13:40:53,732 [DEBUG][       Thread-256771][   transport.py][1871] : === End of kex handshake ===
2025-06-13 13:40:53,749 [DEBUG][       Thread-256771][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 13:40:53,750 [DEBUG][       Thread-256771][   transport.py][1871] : Switch to new keys ...
2025-06-13 13:40:53,750 [DEBUG][       Thread-256771][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 13:40:53,751 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 13:40:53,751 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 13:40:53,752 [DEBUG][       Thread-256771][   transport.py][1871] : userauth is OK
2025-06-13 13:40:53,765 [ INFO][       Thread-256771][   transport.py][1871] : Authentication (password) successful!
2025-06-13 13:40:53,766 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 13:40:54,212 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:40:54,213 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:40:54,367 [DEBUG][       Thread-256771][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 13:40:54,367 [DEBUG][       Thread-256771][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 13:40:54,409 [DEBUG][       Thread-256771][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 13:40:54,409 [DEBUG][       Thread-256771][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 13:40:54,412 [DEBUG][       Thread-256771][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 13:40:54,425 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 13:40:54,425 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 13:40:54,427 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 13:40:54,430 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 13:40:54,435 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 13:40:54,437 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 13:40:54,438 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 13:40:54,438 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 13:40:54,439 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.486048 -999.00  +13.00  19.56     36   -1.30 1 1 1 1 1   888    0 18.43 136.91 ----- 25.4 19.6 44.2 22.2 17.5 -30.3 16.3 -32.2 16.4 -29.9 17.6 -27.9
2025-06-13 13:40:54,439 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 13:40:54,439 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 13:40:54,439 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.486048
2025-06-13 13:40:54,439 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 13:40:54,440 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 13:40:54,440 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 13:40:54,440 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 13:40:54,440 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 13:40:54,440 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T13:40:29', tmtdew=16.71, humidity=31.25, cloud=0.0, wind=21.37, temperature=13.17, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T11:39:54.547', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 13:40:54,441 [DEBUG][       Thread-256771][   transport.py][1871] : EOF in transport thread
2025-06-13 13:40:54,524 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 13:40:54,534 [DEBUG][       Thread-256774][   transport.py][1871] : starting thread (client mode): 0xc54b6c20
2025-06-13 13:40:54,534 [DEBUG][       Thread-256774][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 13:40:54,549 [DEBUG][       Thread-256774][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 13:40:54,549 [ INFO][       Thread-256774][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 13:40:54,556 [DEBUG][       Thread-256774][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 13:40:54,557 [DEBUG][       Thread-256774][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 13:40:54,557 [DEBUG][       Thread-256774][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 13:40:54,557 [DEBUG][       Thread-256774][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:40:54,557 [DEBUG][       Thread-256774][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:40:54,557 [DEBUG][       Thread-256774][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:40:54,557 [DEBUG][       Thread-256774][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:40:54,557 [DEBUG][       Thread-256774][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 13:40:54,557 [DEBUG][       Thread-256774][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 13:40:54,557 [DEBUG][       Thread-256774][   transport.py][1871] : client lang: <none>
2025-06-13 13:40:54,557 [DEBUG][       Thread-256774][   transport.py][1871] : server lang: <none>
2025-06-13 13:40:54,557 [DEBUG][       Thread-256774][   transport.py][1871] : kex follows: False
2025-06-13 13:40:54,557 [DEBUG][       Thread-256774][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 13:40:54,557 [DEBUG][       Thread-256774][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 13:40:54,557 [DEBUG][       Thread-256774][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 13:40:54,557 [DEBUG][       Thread-256774][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 13:40:54,557 [DEBUG][       Thread-256774][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 13:40:54,557 [DEBUG][       Thread-256774][   transport.py][1871] : Compression: none
2025-06-13 13:40:54,557 [DEBUG][       Thread-256774][   transport.py][1871] : === End of kex handshake ===
2025-06-13 13:40:54,618 [DEBUG][       Thread-256774][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 13:40:54,619 [DEBUG][       Thread-256774][   transport.py][1871] : Switch to new keys ...
2025-06-13 13:40:54,619 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 13:40:54,620 [DEBUG][       Thread-256774][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 13:40:54,620 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 13:40:54,674 [DEBUG][       Thread-256774][   transport.py][1871] : userauth is OK
2025-06-13 13:40:54,674 [DEBUG][       Thread-256774][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 13:40:54,674 [DEBUG][       Thread-256774][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 13:40:54,674 [DEBUG][       Thread-256774][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 13:40:54,674 [DEBUG][       Thread-256774][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 13:40:54,697 [ INFO][       Thread-256774][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 13:40:54,697 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 13:40:54,698 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 13:40:55,704 [DEBUG][       Thread-256774][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 13:40:55,704 [DEBUG][       Thread-256774][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 13:40:55,759 [DEBUG][       Thread-256774][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 13:40:55,759 [DEBUG][       Thread-256774][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 13:40:55,769 [DEBUG][       Thread-256774][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 13:40:55,777 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 13:40:55,778 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 13:40:55,786 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 13:40:55,794 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 13:40:55,794 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 13:40:55,794 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 13:40:55,801 [DEBUG][       Thread-256774][   transport.py][1871] : EOF in transport thread
2025-06-13 13:41:01,663 [DEBUG][Thread-256776 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:41:05,804 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 13:41:05,804 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 13:41:05,805 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 13:41:05,807 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 13:41:06,266 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 13, 41), 16.56, 31.59, 0.0, 26.43, 13.23, 0, 0, 0, 2, 0, 0),)
2025-06-13 13:41:06,266 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 13:41:00
2025-06-13 13:41:06,348 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 13:41:06,354 [DEBUG][       Thread-256777][   transport.py][1871] : starting thread (client mode): 0x863528f0
2025-06-13 13:41:06,354 [DEBUG][       Thread-256777][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 13:41:06,373 [DEBUG][       Thread-256777][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 13:41:06,374 [ INFO][       Thread-256777][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 13:41:06,377 [DEBUG][       Thread-256777][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 13:41:06,377 [DEBUG][       Thread-256777][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 13:41:06,377 [DEBUG][       Thread-256777][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 13:41:06,377 [DEBUG][       Thread-256777][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:41:06,377 [DEBUG][       Thread-256777][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:41:06,377 [DEBUG][       Thread-256777][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:41:06,377 [DEBUG][       Thread-256777][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:41:06,377 [DEBUG][       Thread-256777][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 13:41:06,377 [DEBUG][       Thread-256777][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 13:41:06,377 [DEBUG][       Thread-256777][   transport.py][1871] : client lang: <none>
2025-06-13 13:41:06,377 [DEBUG][       Thread-256777][   transport.py][1871] : server lang: <none>
2025-06-13 13:41:06,377 [DEBUG][       Thread-256777][   transport.py][1871] : kex follows: False
2025-06-13 13:41:06,377 [DEBUG][       Thread-256777][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 13:41:06,377 [DEBUG][       Thread-256777][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 13:41:06,377 [DEBUG][       Thread-256777][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 13:41:06,378 [DEBUG][       Thread-256777][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 13:41:06,378 [DEBUG][       Thread-256777][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 13:41:06,378 [DEBUG][       Thread-256777][   transport.py][1871] : Compression: none
2025-06-13 13:41:06,378 [DEBUG][       Thread-256777][   transport.py][1871] : === End of kex handshake ===
2025-06-13 13:41:06,397 [DEBUG][       Thread-256777][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 13:41:06,397 [DEBUG][       Thread-256777][   transport.py][1871] : Switch to new keys ...
2025-06-13 13:41:06,398 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 13:41:06,398 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 13:41:06,399 [DEBUG][       Thread-256777][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 13:41:06,399 [DEBUG][       Thread-256777][   transport.py][1871] : userauth is OK
2025-06-13 13:41:06,413 [ INFO][       Thread-256777][   transport.py][1871] : Authentication (password) successful!
2025-06-13 13:41:06,414 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 13:41:07,080 [DEBUG][       Thread-256777][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 13:41:07,080 [DEBUG][       Thread-256777][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 13:41:07,121 [DEBUG][       Thread-256777][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 13:41:07,121 [DEBUG][       Thread-256777][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 13:41:07,124 [DEBUG][       Thread-256777][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 13:41:07,136 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 13:41:07,136 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 13:41:07,138 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 13:41:07,140 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 13:41:07,145 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 13:41:07,147 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 13:41:07,147 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 13:41:07,148 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 13:41:07,148 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.486395 -999.00  +13.00  23.16     36   -1.60 1 1 1 1 1   888    0 17.82 126.12 ----- 29.3 23.2 44.2 28.6 17.4 -30.7 16.3 -31.8 16.3 -30.1 17.7 -28.2
2025-06-13 13:41:07,148 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 13:41:07,148 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 13:41:07,148 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.486395
2025-06-13 13:41:07,149 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 13:41:07,149 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 13:41:07,149 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 13:41:07,149 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 13:41:07,150 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 13:41:07,150 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T13:41:00', tmtdew=16.56, humidity=31.59, cloud=0.0, wind=26.43, temperature=13.23, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T11:40:24.528', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 13:41:07,151 [DEBUG][       Thread-256777][   transport.py][1871] : EOF in transport thread
2025-06-13 13:41:07,233 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 13:41:07,244 [DEBUG][       Thread-256780][   transport.py][1871] : starting thread (client mode): 0x863ef0d0
2025-06-13 13:41:07,245 [DEBUG][       Thread-256780][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 13:41:07,259 [DEBUG][       Thread-256780][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 13:41:07,259 [ INFO][       Thread-256780][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 13:41:07,266 [DEBUG][       Thread-256780][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 13:41:07,267 [DEBUG][       Thread-256780][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 13:41:07,267 [DEBUG][       Thread-256780][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 13:41:07,267 [DEBUG][       Thread-256780][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:41:07,267 [DEBUG][       Thread-256780][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:41:07,267 [DEBUG][       Thread-256780][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:41:07,267 [DEBUG][       Thread-256780][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:41:07,267 [DEBUG][       Thread-256780][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 13:41:07,267 [DEBUG][       Thread-256780][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 13:41:07,267 [DEBUG][       Thread-256780][   transport.py][1871] : client lang: <none>
2025-06-13 13:41:07,267 [DEBUG][       Thread-256780][   transport.py][1871] : server lang: <none>
2025-06-13 13:41:07,267 [DEBUG][       Thread-256780][   transport.py][1871] : kex follows: False
2025-06-13 13:41:07,267 [DEBUG][       Thread-256780][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 13:41:07,267 [DEBUG][       Thread-256780][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 13:41:07,267 [DEBUG][       Thread-256780][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 13:41:07,267 [DEBUG][       Thread-256780][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 13:41:07,267 [DEBUG][       Thread-256780][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 13:41:07,267 [DEBUG][       Thread-256780][   transport.py][1871] : Compression: none
2025-06-13 13:41:07,267 [DEBUG][       Thread-256780][   transport.py][1871] : === End of kex handshake ===
2025-06-13 13:41:07,327 [DEBUG][       Thread-256780][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 13:41:07,328 [DEBUG][       Thread-256780][   transport.py][1871] : Switch to new keys ...
2025-06-13 13:41:07,329 [DEBUG][       Thread-256780][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 13:41:07,329 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 13:41:07,329 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 13:41:07,386 [DEBUG][       Thread-256780][   transport.py][1871] : userauth is OK
2025-06-13 13:41:07,386 [DEBUG][       Thread-256780][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 13:41:07,386 [DEBUG][       Thread-256780][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 13:41:07,387 [DEBUG][       Thread-256780][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 13:41:07,387 [DEBUG][       Thread-256780][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 13:41:07,420 [ INFO][       Thread-256780][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 13:41:07,420 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 13:41:07,421 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 13:41:08,450 [DEBUG][       Thread-256780][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 13:41:08,450 [DEBUG][       Thread-256780][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 13:41:08,500 [DEBUG][       Thread-256780][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 13:41:08,500 [DEBUG][       Thread-256780][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 13:41:08,510 [DEBUG][       Thread-256780][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 13:41:08,519 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 13:41:08,519 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 13:41:08,528 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 13:41:08,537 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 13:41:08,537 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 13:41:08,538 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 13:41:08,548 [DEBUG][       Thread-256780][   transport.py][1871] : EOF in transport thread
2025-06-13 13:41:10,685 [DEBUG][Thread-256782 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:41:15,838 [DEBUG][Thread-256783 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:41:18,548 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 13:41:18,548 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 13:41:18,548 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 13:41:18,549 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 13:41:19,009 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 13, 41), 16.56, 31.59, 0.0, 26.43, 13.23, 0, 0, 0, 2, 0, 0),)
2025-06-13 13:41:19,009 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 13:41:00
2025-06-13 13:41:19,090 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 13:41:19,097 [DEBUG][       Thread-256784][   transport.py][1871] : starting thread (client mode): 0x86350340
2025-06-13 13:41:19,097 [DEBUG][       Thread-256784][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 13:41:19,113 [DEBUG][       Thread-256784][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 13:41:19,113 [ INFO][       Thread-256784][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 13:41:19,117 [DEBUG][       Thread-256784][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 13:41:19,117 [DEBUG][       Thread-256784][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 13:41:19,117 [DEBUG][       Thread-256784][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 13:41:19,117 [DEBUG][       Thread-256784][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:41:19,117 [DEBUG][       Thread-256784][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:41:19,117 [DEBUG][       Thread-256784][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:41:19,117 [DEBUG][       Thread-256784][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:41:19,117 [DEBUG][       Thread-256784][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 13:41:19,117 [DEBUG][       Thread-256784][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 13:41:19,117 [DEBUG][       Thread-256784][   transport.py][1871] : client lang: <none>
2025-06-13 13:41:19,117 [DEBUG][       Thread-256784][   transport.py][1871] : server lang: <none>
2025-06-13 13:41:19,117 [DEBUG][       Thread-256784][   transport.py][1871] : kex follows: False
2025-06-13 13:41:19,117 [DEBUG][       Thread-256784][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 13:41:19,117 [DEBUG][       Thread-256784][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 13:41:19,117 [DEBUG][       Thread-256784][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 13:41:19,117 [DEBUG][       Thread-256784][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 13:41:19,117 [DEBUG][       Thread-256784][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 13:41:19,117 [DEBUG][       Thread-256784][   transport.py][1871] : Compression: none
2025-06-13 13:41:19,117 [DEBUG][       Thread-256784][   transport.py][1871] : === End of kex handshake ===
2025-06-13 13:41:19,134 [DEBUG][       Thread-256784][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 13:41:19,134 [DEBUG][       Thread-256784][   transport.py][1871] : Switch to new keys ...
2025-06-13 13:41:19,135 [DEBUG][       Thread-256784][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 13:41:19,135 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 13:41:19,135 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 13:41:19,136 [DEBUG][       Thread-256784][   transport.py][1871] : userauth is OK
2025-06-13 13:41:19,161 [ INFO][       Thread-256784][   transport.py][1871] : Authentication (password) successful!
2025-06-13 13:41:19,161 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 13:41:19,718 [DEBUG][Thread-256786 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:41:19,788 [DEBUG][       Thread-256784][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 13:41:19,788 [DEBUG][       Thread-256784][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 13:41:19,828 [DEBUG][       Thread-256784][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 13:41:19,829 [DEBUG][       Thread-256784][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 13:41:19,831 [DEBUG][       Thread-256784][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 13:41:19,845 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 13:41:19,845 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 13:41:19,847 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 13:41:19,848 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 13:41:19,853 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 13:41:19,855 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 13:41:19,855 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 13:41:19,856 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 13:41:19,856 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.486395 -999.00  +13.00  23.16     36   -1.60 1 1 1 1 1   888    0 17.82 126.12 ----- 29.3 23.2 44.2 28.6 17.4 -30.7 16.3 -31.8 16.3 -30.1 17.7 -28.2
2025-06-13 13:41:19,856 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 13:41:19,856 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 13:41:19,856 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.486395
2025-06-13 13:41:19,856 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 13:41:19,857 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 13:41:19,857 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 13:41:19,857 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 13:41:19,857 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 13:41:19,857 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T13:41:00', tmtdew=16.56, humidity=31.59, cloud=0.0, wind=26.43, temperature=13.23, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T11:40:24.528', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 13:41:19,858 [DEBUG][       Thread-256784][   transport.py][1871] : EOF in transport thread
2025-06-13 13:41:19,937 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 13:41:19,953 [DEBUG][       Thread-256788][   transport.py][1871] : starting thread (client mode): 0x867fcbe0
2025-06-13 13:41:19,953 [DEBUG][       Thread-256788][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 13:41:19,968 [DEBUG][       Thread-256788][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 13:41:19,969 [ INFO][       Thread-256788][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 13:41:19,982 [DEBUG][       Thread-256788][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 13:41:19,982 [DEBUG][       Thread-256788][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 13:41:19,982 [DEBUG][       Thread-256788][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 13:41:19,982 [DEBUG][       Thread-256788][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:41:19,982 [DEBUG][       Thread-256788][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:41:19,982 [DEBUG][       Thread-256788][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:41:19,982 [DEBUG][       Thread-256788][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:41:19,982 [DEBUG][       Thread-256788][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 13:41:19,982 [DEBUG][       Thread-256788][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 13:41:19,983 [DEBUG][       Thread-256788][   transport.py][1871] : client lang: <none>
2025-06-13 13:41:19,983 [DEBUG][       Thread-256788][   transport.py][1871] : server lang: <none>
2025-06-13 13:41:19,983 [DEBUG][       Thread-256788][   transport.py][1871] : kex follows: False
2025-06-13 13:41:19,983 [DEBUG][       Thread-256788][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 13:41:19,983 [DEBUG][       Thread-256788][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 13:41:19,983 [DEBUG][       Thread-256788][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 13:41:19,983 [DEBUG][       Thread-256788][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 13:41:19,983 [DEBUG][       Thread-256788][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 13:41:19,983 [DEBUG][       Thread-256788][   transport.py][1871] : Compression: none
2025-06-13 13:41:19,983 [DEBUG][       Thread-256788][   transport.py][1871] : === End of kex handshake ===
2025-06-13 13:41:20,046 [DEBUG][       Thread-256788][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 13:41:20,046 [DEBUG][       Thread-256788][   transport.py][1871] : Switch to new keys ...
2025-06-13 13:41:20,047 [DEBUG][       Thread-256788][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 13:41:20,047 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 13:41:20,047 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 13:41:20,107 [DEBUG][       Thread-256788][   transport.py][1871] : userauth is OK
2025-06-13 13:41:20,107 [DEBUG][       Thread-256788][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 13:41:20,107 [DEBUG][       Thread-256788][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 13:41:20,107 [DEBUG][       Thread-256788][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 13:41:20,108 [DEBUG][       Thread-256788][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 13:41:20,126 [ INFO][       Thread-256788][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 13:41:20,127 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 13:41:20,127 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 13:41:21,132 [DEBUG][       Thread-256788][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 13:41:21,133 [DEBUG][       Thread-256788][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 13:41:21,184 [DEBUG][       Thread-256788][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 13:41:21,184 [DEBUG][       Thread-256788][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 13:41:21,193 [DEBUG][       Thread-256788][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 13:41:21,202 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 13:41:21,203 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 13:41:21,211 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 13:41:21,221 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 13:41:21,221 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 13:41:21,221 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 13:41:21,230 [DEBUG][       Thread-256788][   transport.py][1871] : EOF in transport thread
2025-06-13 13:41:28,740 [DEBUG][Thread-256790 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:41:31,232 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 13:41:31,232 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 13:41:31,232 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 13:41:31,235 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 13:41:31,688 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 13, 41), 16.56, 31.59, 0.0, 26.43, 13.23, 0, 0, 0, 2, 0, 0),)
2025-06-13 13:41:31,689 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 13:41:00
2025-06-13 13:41:31,770 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 13:41:31,775 [DEBUG][       Thread-256791][   transport.py][1871] : starting thread (client mode): 0x84205060
2025-06-13 13:41:31,775 [DEBUG][       Thread-256791][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 13:41:31,796 [DEBUG][       Thread-256791][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 13:41:31,796 [ INFO][       Thread-256791][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 13:41:31,800 [DEBUG][       Thread-256791][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 13:41:31,800 [DEBUG][       Thread-256791][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 13:41:31,800 [DEBUG][       Thread-256791][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 13:41:31,800 [DEBUG][       Thread-256791][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:41:31,800 [DEBUG][       Thread-256791][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:41:31,800 [DEBUG][       Thread-256791][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:41:31,800 [DEBUG][       Thread-256791][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:41:31,800 [DEBUG][       Thread-256791][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 13:41:31,800 [DEBUG][       Thread-256791][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 13:41:31,801 [DEBUG][       Thread-256791][   transport.py][1871] : client lang: <none>
2025-06-13 13:41:31,801 [DEBUG][       Thread-256791][   transport.py][1871] : server lang: <none>
2025-06-13 13:41:31,801 [DEBUG][       Thread-256791][   transport.py][1871] : kex follows: False
2025-06-13 13:41:31,801 [DEBUG][       Thread-256791][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 13:41:31,801 [DEBUG][       Thread-256791][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 13:41:31,801 [DEBUG][       Thread-256791][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 13:41:31,801 [DEBUG][       Thread-256791][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 13:41:31,801 [DEBUG][       Thread-256791][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 13:41:31,801 [DEBUG][       Thread-256791][   transport.py][1871] : Compression: none
2025-06-13 13:41:31,801 [DEBUG][       Thread-256791][   transport.py][1871] : === End of kex handshake ===
2025-06-13 13:41:31,818 [DEBUG][       Thread-256791][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 13:41:31,819 [DEBUG][       Thread-256791][   transport.py][1871] : Switch to new keys ...
2025-06-13 13:41:31,819 [DEBUG][       Thread-256791][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 13:41:31,820 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 13:41:31,820 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 13:41:31,821 [DEBUG][       Thread-256791][   transport.py][1871] : userauth is OK
2025-06-13 13:41:31,846 [ INFO][       Thread-256791][   transport.py][1871] : Authentication (password) successful!
2025-06-13 13:41:31,846 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 13:41:32,497 [DEBUG][       Thread-256791][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 13:41:32,498 [DEBUG][       Thread-256791][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 13:41:32,541 [DEBUG][       Thread-256791][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 13:41:32,541 [DEBUG][       Thread-256791][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 13:41:32,544 [DEBUG][       Thread-256791][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 13:41:32,558 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 13:41:32,559 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 13:41:32,561 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 13:41:32,563 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 13:41:32,569 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 13:41:32,571 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 13:41:32,571 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 13:41:32,572 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 13:41:32,572 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.487090 -999.00  +13.00  21.75     37   -1.10 1 1 1 1 1   888    0 17.90 124.45 ----- 27.3 21.8 31.8 27.7 17.4 -30.0 16.2 -32.3 16.4 -29.1 17.7 -28.2
2025-06-13 13:41:32,572 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 13:41:32,572 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 13:41:32,572 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.487090
2025-06-13 13:41:32,573 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 13:41:32,573 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 13:41:32,573 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 13:41:32,573 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 13:41:32,573 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 13:41:32,574 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T13:41:00', tmtdew=16.56, humidity=31.59, cloud=0.0, wind=26.43, temperature=13.23, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T11:41:24.576', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 13:41:32,574 [DEBUG][       Thread-256791][   transport.py][1871] : EOF in transport thread
2025-06-13 13:41:32,657 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 13:41:32,667 [DEBUG][       Thread-256794][   transport.py][1871] : starting thread (client mode): 0x84204c70
2025-06-13 13:41:32,667 [DEBUG][       Thread-256794][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 13:41:32,682 [DEBUG][       Thread-256794][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 13:41:32,682 [ INFO][       Thread-256794][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 13:41:32,689 [DEBUG][       Thread-256794][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 13:41:32,690 [DEBUG][       Thread-256794][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 13:41:32,690 [DEBUG][       Thread-256794][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 13:41:32,690 [DEBUG][       Thread-256794][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:41:32,690 [DEBUG][       Thread-256794][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:41:32,690 [DEBUG][       Thread-256794][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:41:32,690 [DEBUG][       Thread-256794][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:41:32,690 [DEBUG][       Thread-256794][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 13:41:32,690 [DEBUG][       Thread-256794][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 13:41:32,690 [DEBUG][       Thread-256794][   transport.py][1871] : client lang: <none>
2025-06-13 13:41:32,690 [DEBUG][       Thread-256794][   transport.py][1871] : server lang: <none>
2025-06-13 13:41:32,690 [DEBUG][       Thread-256794][   transport.py][1871] : kex follows: False
2025-06-13 13:41:32,690 [DEBUG][       Thread-256794][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 13:41:32,690 [DEBUG][       Thread-256794][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 13:41:32,690 [DEBUG][       Thread-256794][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 13:41:32,690 [DEBUG][       Thread-256794][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 13:41:32,690 [DEBUG][       Thread-256794][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 13:41:32,690 [DEBUG][       Thread-256794][   transport.py][1871] : Compression: none
2025-06-13 13:41:32,690 [DEBUG][       Thread-256794][   transport.py][1871] : === End of kex handshake ===
2025-06-13 13:41:32,750 [DEBUG][       Thread-256794][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 13:41:32,750 [DEBUG][       Thread-256794][   transport.py][1871] : Switch to new keys ...
2025-06-13 13:41:32,751 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 13:41:32,751 [DEBUG][       Thread-256794][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 13:41:32,752 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 13:41:32,806 [DEBUG][       Thread-256794][   transport.py][1871] : userauth is OK
2025-06-13 13:41:32,806 [DEBUG][       Thread-256794][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 13:41:32,806 [DEBUG][       Thread-256794][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 13:41:32,806 [DEBUG][       Thread-256794][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 13:41:32,806 [DEBUG][       Thread-256794][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 13:41:32,825 [ INFO][       Thread-256794][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 13:41:32,825 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 13:41:32,826 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 13:41:33,818 [DEBUG][       Thread-256794][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 13:41:33,818 [DEBUG][       Thread-256794][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 13:41:33,867 [DEBUG][       Thread-256794][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 13:41:33,867 [DEBUG][       Thread-256794][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 13:41:33,876 [DEBUG][       Thread-256794][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 13:41:33,883 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 13:41:33,884 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 13:41:33,891 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 13:41:33,899 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 13:41:33,900 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 13:41:33,900 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 13:41:33,907 [DEBUG][       Thread-256794][   transport.py][1871] : EOF in transport thread
2025-06-13 13:41:37,763 [DEBUG][Thread-256796 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:41:43,910 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 13:41:43,910 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 13:41:43,911 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 13:41:43,913 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 13:41:44,382 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 13, 41, 32), 16.59, 31.43, 0.0, 20.49, 13.42, 0, 0, 0, 2, 0, 0),)
2025-06-13 13:41:44,382 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 13:41:32
2025-06-13 13:41:44,464 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 13:41:44,472 [DEBUG][       Thread-256797][   transport.py][1871] : starting thread (client mode): 0x863bd6f0
2025-06-13 13:41:44,472 [DEBUG][       Thread-256797][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 13:41:44,492 [DEBUG][       Thread-256797][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 13:41:44,492 [ INFO][       Thread-256797][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 13:41:44,495 [DEBUG][       Thread-256797][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 13:41:44,495 [DEBUG][       Thread-256797][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 13:41:44,495 [DEBUG][       Thread-256797][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 13:41:44,495 [DEBUG][       Thread-256797][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:41:44,495 [DEBUG][       Thread-256797][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:41:44,495 [DEBUG][       Thread-256797][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:41:44,496 [DEBUG][       Thread-256797][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:41:44,496 [DEBUG][       Thread-256797][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 13:41:44,496 [DEBUG][       Thread-256797][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 13:41:44,496 [DEBUG][       Thread-256797][   transport.py][1871] : client lang: <none>
2025-06-13 13:41:44,496 [DEBUG][       Thread-256797][   transport.py][1871] : server lang: <none>
2025-06-13 13:41:44,496 [DEBUG][       Thread-256797][   transport.py][1871] : kex follows: False
2025-06-13 13:41:44,496 [DEBUG][       Thread-256797][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 13:41:44,496 [DEBUG][       Thread-256797][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 13:41:44,496 [DEBUG][       Thread-256797][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 13:41:44,496 [DEBUG][       Thread-256797][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 13:41:44,496 [DEBUG][       Thread-256797][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 13:41:44,496 [DEBUG][       Thread-256797][   transport.py][1871] : Compression: none
2025-06-13 13:41:44,496 [DEBUG][       Thread-256797][   transport.py][1871] : === End of kex handshake ===
2025-06-13 13:41:44,512 [DEBUG][       Thread-256797][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 13:41:44,513 [DEBUG][       Thread-256797][   transport.py][1871] : Switch to new keys ...
2025-06-13 13:41:44,513 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 13:41:44,514 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 13:41:44,514 [DEBUG][       Thread-256797][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 13:41:44,514 [DEBUG][       Thread-256797][   transport.py][1871] : userauth is OK
2025-06-13 13:41:44,527 [ INFO][       Thread-256797][   transport.py][1871] : Authentication (password) successful!
2025-06-13 13:41:44,527 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 13:41:45,170 [DEBUG][       Thread-256797][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 13:41:45,170 [DEBUG][       Thread-256797][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 13:41:45,213 [DEBUG][       Thread-256797][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 13:41:45,213 [DEBUG][       Thread-256797][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 13:41:45,217 [DEBUG][       Thread-256797][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 13:41:45,230 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 13:41:45,231 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 13:41:45,232 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 13:41:45,235 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 13:41:45,241 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 13:41:45,243 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 13:41:45,244 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 13:41:45,244 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 13:41:45,244 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.487090 -999.00  +13.00  21.75     37   -1.10 1 1 1 1 1   888    0 17.90 124.45 ----- 27.3 21.8 31.8 27.7 17.4 -30.0 16.2 -32.3 16.4 -29.1 17.7 -28.2
2025-06-13 13:41:45,245 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 13:41:45,245 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 13:41:45,245 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.487090
2025-06-13 13:41:45,245 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 13:41:45,246 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 13:41:45,246 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 13:41:45,246 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 13:41:45,246 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 13:41:45,246 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T13:41:32', tmtdew=16.59, humidity=31.43, cloud=0.0, wind=20.49, temperature=13.42, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T11:41:24.576', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 13:41:45,247 [DEBUG][       Thread-256797][   transport.py][1871] : EOF in transport thread
2025-06-13 13:41:45,330 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 13:41:45,341 [DEBUG][       Thread-256800][   transport.py][1871] : starting thread (client mode): 0x867b78e0
2025-06-13 13:41:45,341 [DEBUG][       Thread-256800][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 13:41:45,356 [DEBUG][       Thread-256800][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 13:41:45,356 [ INFO][       Thread-256800][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 13:41:45,364 [DEBUG][       Thread-256800][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 13:41:45,364 [DEBUG][       Thread-256800][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 13:41:45,364 [DEBUG][       Thread-256800][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 13:41:45,364 [DEBUG][       Thread-256800][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:41:45,364 [DEBUG][       Thread-256800][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:41:45,364 [DEBUG][       Thread-256800][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:41:45,364 [DEBUG][       Thread-256800][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:41:45,364 [DEBUG][       Thread-256800][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 13:41:45,364 [DEBUG][       Thread-256800][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 13:41:45,364 [DEBUG][       Thread-256800][   transport.py][1871] : client lang: <none>
2025-06-13 13:41:45,364 [DEBUG][       Thread-256800][   transport.py][1871] : server lang: <none>
2025-06-13 13:41:45,364 [DEBUG][       Thread-256800][   transport.py][1871] : kex follows: False
2025-06-13 13:41:45,364 [DEBUG][       Thread-256800][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 13:41:45,364 [DEBUG][       Thread-256800][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 13:41:45,364 [DEBUG][       Thread-256800][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 13:41:45,365 [DEBUG][       Thread-256800][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 13:41:45,365 [DEBUG][       Thread-256800][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 13:41:45,365 [DEBUG][       Thread-256800][   transport.py][1871] : Compression: none
2025-06-13 13:41:45,365 [DEBUG][       Thread-256800][   transport.py][1871] : === End of kex handshake ===
2025-06-13 13:41:45,423 [DEBUG][       Thread-256800][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 13:41:45,423 [DEBUG][       Thread-256800][   transport.py][1871] : Switch to new keys ...
2025-06-13 13:41:45,424 [DEBUG][       Thread-256800][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 13:41:45,424 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 13:41:45,425 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 13:41:45,482 [DEBUG][       Thread-256800][   transport.py][1871] : userauth is OK
2025-06-13 13:41:45,482 [DEBUG][       Thread-256800][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 13:41:45,482 [DEBUG][       Thread-256800][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 13:41:45,482 [DEBUG][       Thread-256800][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 13:41:45,483 [DEBUG][       Thread-256800][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 13:41:45,500 [ INFO][       Thread-256800][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 13:41:45,501 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 13:41:45,501 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 13:41:46,566 [DEBUG][       Thread-256800][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 13:41:46,566 [DEBUG][       Thread-256800][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 13:41:46,620 [DEBUG][       Thread-256800][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 13:41:46,620 [DEBUG][       Thread-256800][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 13:41:46,629 [DEBUG][       Thread-256800][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 13:41:46,638 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 13:41:46,639 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 13:41:46,647 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 13:41:46,657 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 13:41:46,657 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 13:41:46,657 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 13:41:46,665 [DEBUG][       Thread-256800][   transport.py][1871] : EOF in transport thread
2025-06-13 13:41:46,784 [DEBUG][Thread-256802 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:41:49,029 [DEBUG][Thread-256803 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:41:50,107 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:41:50,109 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:41:54,352 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:41:54,353 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:41:55,816 [DEBUG][Thread-256804 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:41:56,664 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 13:41:56,664 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 13:41:56,664 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 13:41:56,665 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 13:41:57,118 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 13, 41, 32), 16.59, 31.43, 0.0, 20.49, 13.42, 0, 0, 0, 2, 0, 0),)
2025-06-13 13:41:57,118 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 13:41:32
2025-06-13 13:41:57,199 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 13:41:57,203 [DEBUG][       Thread-256805][   transport.py][1871] : starting thread (client mode): 0x84204970
2025-06-13 13:41:57,204 [DEBUG][       Thread-256805][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 13:41:57,224 [DEBUG][       Thread-256805][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 13:41:57,224 [ INFO][       Thread-256805][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 13:41:57,226 [DEBUG][       Thread-256805][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 13:41:57,226 [DEBUG][       Thread-256805][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 13:41:57,226 [DEBUG][       Thread-256805][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 13:41:57,226 [DEBUG][       Thread-256805][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:41:57,226 [DEBUG][       Thread-256805][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:41:57,226 [DEBUG][       Thread-256805][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:41:57,226 [DEBUG][       Thread-256805][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:41:57,226 [DEBUG][       Thread-256805][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 13:41:57,226 [DEBUG][       Thread-256805][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 13:41:57,226 [DEBUG][       Thread-256805][   transport.py][1871] : client lang: <none>
2025-06-13 13:41:57,226 [DEBUG][       Thread-256805][   transport.py][1871] : server lang: <none>
2025-06-13 13:41:57,226 [DEBUG][       Thread-256805][   transport.py][1871] : kex follows: False
2025-06-13 13:41:57,226 [DEBUG][       Thread-256805][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 13:41:57,226 [DEBUG][       Thread-256805][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 13:41:57,226 [DEBUG][       Thread-256805][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 13:41:57,226 [DEBUG][       Thread-256805][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 13:41:57,226 [DEBUG][       Thread-256805][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 13:41:57,226 [DEBUG][       Thread-256805][   transport.py][1871] : Compression: none
2025-06-13 13:41:57,226 [DEBUG][       Thread-256805][   transport.py][1871] : === End of kex handshake ===
2025-06-13 13:41:57,233 [DEBUG][       Thread-256805][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 13:41:57,233 [DEBUG][       Thread-256805][   transport.py][1871] : Switch to new keys ...
2025-06-13 13:41:57,233 [DEBUG][       Thread-256805][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 13:41:57,233 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 13:41:57,233 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 13:41:57,233 [DEBUG][       Thread-256805][   transport.py][1871] : userauth is OK
2025-06-13 13:41:57,248 [ INFO][       Thread-256805][   transport.py][1871] : Authentication (password) successful!
2025-06-13 13:41:57,248 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 13:41:57,936 [DEBUG][       Thread-256805][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 13:41:57,936 [DEBUG][       Thread-256805][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 13:41:57,977 [DEBUG][       Thread-256805][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 13:41:57,977 [DEBUG][       Thread-256805][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 13:41:57,980 [DEBUG][       Thread-256805][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 13:41:57,992 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 13:41:57,993 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 13:41:57,995 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 13:41:57,997 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 13:41:58,003 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 13:41:58,005 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 13:41:58,005 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 13:41:58,006 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 13:41:58,006 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.487090 -999.00  +13.00  21.75     37   -1.10 1 1 1 1 1   888    0 17.90 124.45 ----- 27.3 21.8 31.8 27.7 17.4 -30.0 16.2 -32.3 16.4 -29.1 17.7 -28.2
2025-06-13 13:41:58,006 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 13:41:58,006 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 13:41:58,006 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.487090
2025-06-13 13:41:58,007 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 13:41:58,007 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 13:41:58,008 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 13:41:58,008 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 13:41:58,008 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 13:41:58,008 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T13:41:32', tmtdew=16.59, humidity=31.43, cloud=0.0, wind=20.49, temperature=13.42, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T11:41:24.576', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 13:41:58,009 [DEBUG][       Thread-256805][   transport.py][1871] : EOF in transport thread
2025-06-13 13:41:58,082 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 13:41:58,093 [DEBUG][       Thread-256808][   transport.py][1871] : starting thread (client mode): 0x863eeb60
2025-06-13 13:41:58,093 [DEBUG][       Thread-256808][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 13:41:58,112 [DEBUG][       Thread-256808][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 13:41:58,112 [ INFO][       Thread-256808][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 13:41:58,119 [DEBUG][       Thread-256808][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 13:41:58,120 [DEBUG][       Thread-256808][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 13:41:58,120 [DEBUG][       Thread-256808][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 13:41:58,120 [DEBUG][       Thread-256808][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:41:58,120 [DEBUG][       Thread-256808][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:41:58,120 [DEBUG][       Thread-256808][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:41:58,120 [DEBUG][       Thread-256808][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:41:58,120 [DEBUG][       Thread-256808][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 13:41:58,120 [DEBUG][       Thread-256808][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 13:41:58,120 [DEBUG][       Thread-256808][   transport.py][1871] : client lang: <none>
2025-06-13 13:41:58,120 [DEBUG][       Thread-256808][   transport.py][1871] : server lang: <none>
2025-06-13 13:41:58,120 [DEBUG][       Thread-256808][   transport.py][1871] : kex follows: False
2025-06-13 13:41:58,120 [DEBUG][       Thread-256808][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 13:41:58,120 [DEBUG][       Thread-256808][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 13:41:58,120 [DEBUG][       Thread-256808][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 13:41:58,120 [DEBUG][       Thread-256808][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 13:41:58,120 [DEBUG][       Thread-256808][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 13:41:58,120 [DEBUG][       Thread-256808][   transport.py][1871] : Compression: none
2025-06-13 13:41:58,120 [DEBUG][       Thread-256808][   transport.py][1871] : === End of kex handshake ===
2025-06-13 13:41:58,177 [DEBUG][       Thread-256808][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 13:41:58,178 [DEBUG][       Thread-256808][   transport.py][1871] : Switch to new keys ...
2025-06-13 13:41:58,179 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 13:41:58,179 [DEBUG][       Thread-256808][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 13:41:58,180 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 13:41:58,236 [DEBUG][       Thread-256808][   transport.py][1871] : userauth is OK
2025-06-13 13:41:58,236 [DEBUG][       Thread-256808][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 13:41:58,236 [DEBUG][       Thread-256808][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 13:41:58,236 [DEBUG][       Thread-256808][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 13:41:58,236 [DEBUG][       Thread-256808][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 13:41:58,254 [ INFO][       Thread-256808][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 13:41:58,255 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 13:41:58,255 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 13:41:59,247 [DEBUG][       Thread-256808][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 13:41:59,247 [DEBUG][       Thread-256808][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 13:41:59,296 [DEBUG][       Thread-256808][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 13:41:59,296 [DEBUG][       Thread-256808][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 13:41:59,305 [DEBUG][       Thread-256808][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 13:41:59,314 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 13:41:59,315 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 13:41:59,324 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 13:41:59,333 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 13:41:59,333 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 13:41:59,334 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 13:41:59,342 [DEBUG][       Thread-256808][   transport.py][1871] : EOF in transport thread
2025-06-13 13:42:04,836 [DEBUG][Thread-256810 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:42:09,335 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 13:42:09,336 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 13:42:09,336 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 13:42:09,339 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 13:42:09,793 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 13, 42, 4), 16.63, 31.34, 0.0, 21.53, 13.42, 0, 0, 0, 2, 0, 0),)
2025-06-13 13:42:09,793 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 13:42:04
2025-06-13 13:42:09,875 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 13:42:09,882 [DEBUG][       Thread-256811][   transport.py][1871] : starting thread (client mode): 0x863502b0
2025-06-13 13:42:09,882 [DEBUG][       Thread-256811][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 13:42:09,904 [DEBUG][       Thread-256811][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 13:42:09,904 [ INFO][       Thread-256811][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 13:42:09,907 [DEBUG][       Thread-256811][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 13:42:09,907 [DEBUG][       Thread-256811][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 13:42:09,908 [DEBUG][       Thread-256811][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 13:42:09,908 [DEBUG][       Thread-256811][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:42:09,908 [DEBUG][       Thread-256811][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:42:09,908 [DEBUG][       Thread-256811][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:42:09,908 [DEBUG][       Thread-256811][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:42:09,908 [DEBUG][       Thread-256811][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 13:42:09,908 [DEBUG][       Thread-256811][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 13:42:09,908 [DEBUG][       Thread-256811][   transport.py][1871] : client lang: <none>
2025-06-13 13:42:09,908 [DEBUG][       Thread-256811][   transport.py][1871] : server lang: <none>
2025-06-13 13:42:09,908 [DEBUG][       Thread-256811][   transport.py][1871] : kex follows: False
2025-06-13 13:42:09,908 [DEBUG][       Thread-256811][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 13:42:09,908 [DEBUG][       Thread-256811][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 13:42:09,908 [DEBUG][       Thread-256811][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 13:42:09,908 [DEBUG][       Thread-256811][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 13:42:09,908 [DEBUG][       Thread-256811][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 13:42:09,908 [DEBUG][       Thread-256811][   transport.py][1871] : Compression: none
2025-06-13 13:42:09,908 [DEBUG][       Thread-256811][   transport.py][1871] : === End of kex handshake ===
2025-06-13 13:42:09,925 [DEBUG][       Thread-256811][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 13:42:09,925 [DEBUG][       Thread-256811][   transport.py][1871] : Switch to new keys ...
2025-06-13 13:42:09,926 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 13:42:09,926 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 13:42:09,926 [DEBUG][       Thread-256811][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 13:42:09,927 [DEBUG][       Thread-256811][   transport.py][1871] : userauth is OK
2025-06-13 13:42:09,952 [ INFO][       Thread-256811][   transport.py][1871] : Authentication (password) successful!
2025-06-13 13:42:09,953 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 13:42:10,602 [DEBUG][       Thread-256811][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 13:42:10,602 [DEBUG][       Thread-256811][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 13:42:10,645 [DEBUG][       Thread-256811][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 13:42:10,645 [DEBUG][       Thread-256811][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 13:42:10,648 [DEBUG][       Thread-256811][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 13:42:10,662 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 13:42:10,662 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 13:42:10,664 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 13:42:10,666 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 13:42:10,672 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 13:42:10,674 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 13:42:10,675 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 13:42:10,675 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 13:42:10,675 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.487437 -999.00  +13.00  20.55     37   -1.10 1 1 1 1 1   888    0 17.65 111.31 ----- 19.3 20.6 41.6 34.6 17.3 -29.6 16.2 -31.5 16.3 -29.6 17.7 -28.3
2025-06-13 13:42:10,675 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 13:42:10,676 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 13:42:10,676 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.487437
2025-06-13 13:42:10,676 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 13:42:10,677 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 13:42:10,677 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 13:42:10,677 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 13:42:10,677 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 13:42:10,677 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T13:42:04', tmtdew=16.63, humidity=31.34, cloud=0.0, wind=21.53, temperature=13.42, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T11:41:54.557', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 13:42:10,678 [DEBUG][       Thread-256811][   transport.py][1871] : EOF in transport thread
2025-06-13 13:42:10,760 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 13:42:10,773 [DEBUG][       Thread-256814][   transport.py][1871] : starting thread (client mode): 0x863a4760
2025-06-13 13:42:10,773 [DEBUG][       Thread-256814][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 13:42:10,788 [DEBUG][       Thread-256814][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 13:42:10,788 [ INFO][       Thread-256814][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 13:42:10,795 [DEBUG][       Thread-256814][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 13:42:10,796 [DEBUG][       Thread-256814][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 13:42:10,796 [DEBUG][       Thread-256814][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 13:42:10,796 [DEBUG][       Thread-256814][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:42:10,796 [DEBUG][       Thread-256814][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:42:10,796 [DEBUG][       Thread-256814][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:42:10,796 [DEBUG][       Thread-256814][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:42:10,796 [DEBUG][       Thread-256814][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 13:42:10,796 [DEBUG][       Thread-256814][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 13:42:10,796 [DEBUG][       Thread-256814][   transport.py][1871] : client lang: <none>
2025-06-13 13:42:10,796 [DEBUG][       Thread-256814][   transport.py][1871] : server lang: <none>
2025-06-13 13:42:10,796 [DEBUG][       Thread-256814][   transport.py][1871] : kex follows: False
2025-06-13 13:42:10,796 [DEBUG][       Thread-256814][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 13:42:10,796 [DEBUG][       Thread-256814][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 13:42:10,796 [DEBUG][       Thread-256814][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 13:42:10,796 [DEBUG][       Thread-256814][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 13:42:10,796 [DEBUG][       Thread-256814][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 13:42:10,796 [DEBUG][       Thread-256814][   transport.py][1871] : Compression: none
2025-06-13 13:42:10,796 [DEBUG][       Thread-256814][   transport.py][1871] : === End of kex handshake ===
2025-06-13 13:42:10,854 [DEBUG][       Thread-256814][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 13:42:10,854 [DEBUG][       Thread-256814][   transport.py][1871] : Switch to new keys ...
2025-06-13 13:42:10,855 [DEBUG][       Thread-256814][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 13:42:10,855 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 13:42:10,856 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 13:42:10,910 [DEBUG][       Thread-256814][   transport.py][1871] : userauth is OK
2025-06-13 13:42:10,911 [DEBUG][       Thread-256814][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 13:42:10,911 [DEBUG][       Thread-256814][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 13:42:10,911 [DEBUG][       Thread-256814][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 13:42:10,911 [DEBUG][       Thread-256814][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 13:42:10,930 [ INFO][       Thread-256814][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 13:42:10,930 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 13:42:10,930 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 13:42:11,940 [DEBUG][       Thread-256814][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 13:42:11,941 [DEBUG][       Thread-256814][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 13:42:11,993 [DEBUG][       Thread-256814][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 13:42:11,993 [DEBUG][       Thread-256814][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 13:42:12,005 [DEBUG][       Thread-256814][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 13:42:12,021 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 13:42:12,021 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 13:42:12,029 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 13:42:12,039 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 13:42:12,039 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 13:42:12,039 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 13:42:12,048 [DEBUG][       Thread-256814][   transport.py][1871] : EOF in transport thread
2025-06-13 13:42:13,858 [DEBUG][Thread-256816 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:42:15,885 [DEBUG][Thread-256817 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:42:22,050 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 13:42:22,050 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 13:42:22,050 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 13:42:22,053 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 13:42:22,504 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 13, 42, 4), 16.63, 31.34, 0.0, 21.53, 13.42, 0, 0, 0, 2, 0, 0),)
2025-06-13 13:42:22,504 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 13:42:04
2025-06-13 13:42:22,586 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 13:42:22,590 [DEBUG][       Thread-256818][   transport.py][1871] : starting thread (client mode): 0x84207670
2025-06-13 13:42:22,590 [DEBUG][       Thread-256818][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 13:42:22,611 [DEBUG][       Thread-256818][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 13:42:22,611 [ INFO][       Thread-256818][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 13:42:22,614 [DEBUG][       Thread-256818][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 13:42:22,614 [DEBUG][       Thread-256818][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 13:42:22,614 [DEBUG][       Thread-256818][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 13:42:22,614 [DEBUG][       Thread-256818][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:42:22,614 [DEBUG][       Thread-256818][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:42:22,614 [DEBUG][       Thread-256818][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:42:22,614 [DEBUG][       Thread-256818][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:42:22,614 [DEBUG][       Thread-256818][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 13:42:22,614 [DEBUG][       Thread-256818][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 13:42:22,614 [DEBUG][       Thread-256818][   transport.py][1871] : client lang: <none>
2025-06-13 13:42:22,614 [DEBUG][       Thread-256818][   transport.py][1871] : server lang: <none>
2025-06-13 13:42:22,614 [DEBUG][       Thread-256818][   transport.py][1871] : kex follows: False
2025-06-13 13:42:22,614 [DEBUG][       Thread-256818][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 13:42:22,614 [DEBUG][       Thread-256818][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 13:42:22,614 [DEBUG][       Thread-256818][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 13:42:22,614 [DEBUG][       Thread-256818][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 13:42:22,614 [DEBUG][       Thread-256818][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 13:42:22,614 [DEBUG][       Thread-256818][   transport.py][1871] : Compression: none
2025-06-13 13:42:22,614 [DEBUG][       Thread-256818][   transport.py][1871] : === End of kex handshake ===
2025-06-13 13:42:22,633 [DEBUG][       Thread-256818][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 13:42:22,634 [DEBUG][       Thread-256818][   transport.py][1871] : Switch to new keys ...
2025-06-13 13:42:22,634 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 13:42:22,634 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 13:42:22,635 [DEBUG][       Thread-256818][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 13:42:22,635 [DEBUG][       Thread-256818][   transport.py][1871] : userauth is OK
2025-06-13 13:42:22,660 [ INFO][       Thread-256818][   transport.py][1871] : Authentication (password) successful!
2025-06-13 13:42:22,660 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 13:42:22,893 [DEBUG][Thread-256820 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:42:23,264 [DEBUG][       Thread-256818][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 13:42:23,265 [DEBUG][       Thread-256818][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 13:42:23,309 [DEBUG][       Thread-256818][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 13:42:23,309 [DEBUG][       Thread-256818][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 13:42:23,312 [DEBUG][       Thread-256818][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 13:42:23,326 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 13:42:23,326 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 13:42:23,328 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 13:42:23,331 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 13:42:23,337 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 13:42:23,339 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 13:42:23,339 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 13:42:23,340 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 13:42:23,340 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.487437 -999.00  +13.00  20.55     37   -1.10 1 1 1 1 1   888    0 17.65 111.31 ----- 19.3 20.6 41.6 34.6 17.3 -29.6 16.2 -31.5 16.3 -29.6 17.7 -28.3
2025-06-13 13:42:23,340 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 13:42:23,340 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 13:42:23,340 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.487437
2025-06-13 13:42:23,340 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 13:42:23,341 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 13:42:23,341 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 13:42:23,341 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 13:42:23,341 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 13:42:23,341 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T13:42:04', tmtdew=16.63, humidity=31.34, cloud=0.0, wind=21.53, temperature=13.42, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T11:41:54.557', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 13:42:23,342 [DEBUG][       Thread-256818][   transport.py][1871] : EOF in transport thread
2025-06-13 13:42:23,423 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 13:42:23,433 [DEBUG][       Thread-256822][   transport.py][1871] : starting thread (client mode): 0x863a7670
2025-06-13 13:42:23,433 [DEBUG][       Thread-256822][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 13:42:23,448 [DEBUG][       Thread-256822][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 13:42:23,448 [ INFO][       Thread-256822][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 13:42:23,456 [DEBUG][       Thread-256822][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 13:42:23,456 [DEBUG][       Thread-256822][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 13:42:23,456 [DEBUG][       Thread-256822][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 13:42:23,456 [DEBUG][       Thread-256822][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:42:23,456 [DEBUG][       Thread-256822][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:42:23,456 [DEBUG][       Thread-256822][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:42:23,456 [DEBUG][       Thread-256822][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:42:23,456 [DEBUG][       Thread-256822][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 13:42:23,456 [DEBUG][       Thread-256822][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 13:42:23,456 [DEBUG][       Thread-256822][   transport.py][1871] : client lang: <none>
2025-06-13 13:42:23,456 [DEBUG][       Thread-256822][   transport.py][1871] : server lang: <none>
2025-06-13 13:42:23,456 [DEBUG][       Thread-256822][   transport.py][1871] : kex follows: False
2025-06-13 13:42:23,456 [DEBUG][       Thread-256822][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 13:42:23,456 [DEBUG][       Thread-256822][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 13:42:23,456 [DEBUG][       Thread-256822][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 13:42:23,456 [DEBUG][       Thread-256822][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 13:42:23,456 [DEBUG][       Thread-256822][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 13:42:23,456 [DEBUG][       Thread-256822][   transport.py][1871] : Compression: none
2025-06-13 13:42:23,456 [DEBUG][       Thread-256822][   transport.py][1871] : === End of kex handshake ===
2025-06-13 13:42:23,514 [DEBUG][       Thread-256822][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 13:42:23,514 [DEBUG][       Thread-256822][   transport.py][1871] : Switch to new keys ...
2025-06-13 13:42:23,515 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 13:42:23,515 [DEBUG][       Thread-256822][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 13:42:23,516 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 13:42:23,570 [DEBUG][       Thread-256822][   transport.py][1871] : userauth is OK
2025-06-13 13:42:23,570 [DEBUG][       Thread-256822][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 13:42:23,570 [DEBUG][       Thread-256822][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 13:42:23,570 [DEBUG][       Thread-256822][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 13:42:23,570 [DEBUG][       Thread-256822][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 13:42:23,589 [ INFO][       Thread-256822][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 13:42:23,589 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 13:42:23,590 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 13:42:24,625 [DEBUG][       Thread-256822][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 13:42:24,625 [DEBUG][       Thread-256822][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 13:42:24,676 [DEBUG][       Thread-256822][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 13:42:24,676 [DEBUG][       Thread-256822][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 13:42:24,685 [DEBUG][       Thread-256822][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 13:42:24,694 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 13:42:24,694 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 13:42:24,703 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 13:42:24,716 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 13:42:24,716 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 13:42:24,716 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 13:42:24,726 [DEBUG][       Thread-256822][   transport.py][1871] : EOF in transport thread
2025-06-13 13:42:31,913 [DEBUG][Thread-256824 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:42:34,727 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 13:42:34,727 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 13:42:34,727 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 13:42:34,727 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 13:42:35,197 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 13, 42, 4), 16.63, 31.34, 0.0, 21.53, 13.42, 0, 0, 0, 2, 0, 0),)
2025-06-13 13:42:35,197 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 13:42:04
2025-06-13 13:42:35,282 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 13:42:35,286 [DEBUG][       Thread-256825][   transport.py][1871] : starting thread (client mode): 0x86352530
2025-06-13 13:42:35,286 [DEBUG][       Thread-256825][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 13:42:35,303 [DEBUG][       Thread-256825][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 13:42:35,303 [ INFO][       Thread-256825][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 13:42:35,304 [DEBUG][       Thread-256825][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 13:42:35,304 [DEBUG][       Thread-256825][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 13:42:35,304 [DEBUG][       Thread-256825][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 13:42:35,304 [DEBUG][       Thread-256825][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:42:35,304 [DEBUG][       Thread-256825][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:42:35,304 [DEBUG][       Thread-256825][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:42:35,304 [DEBUG][       Thread-256825][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:42:35,304 [DEBUG][       Thread-256825][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 13:42:35,304 [DEBUG][       Thread-256825][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 13:42:35,304 [DEBUG][       Thread-256825][   transport.py][1871] : client lang: <none>
2025-06-13 13:42:35,304 [DEBUG][       Thread-256825][   transport.py][1871] : server lang: <none>
2025-06-13 13:42:35,304 [DEBUG][       Thread-256825][   transport.py][1871] : kex follows: False
2025-06-13 13:42:35,304 [DEBUG][       Thread-256825][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 13:42:35,304 [DEBUG][       Thread-256825][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 13:42:35,304 [DEBUG][       Thread-256825][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 13:42:35,304 [DEBUG][       Thread-256825][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 13:42:35,304 [DEBUG][       Thread-256825][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 13:42:35,304 [DEBUG][       Thread-256825][   transport.py][1871] : Compression: none
2025-06-13 13:42:35,304 [DEBUG][       Thread-256825][   transport.py][1871] : === End of kex handshake ===
2025-06-13 13:42:35,312 [DEBUG][       Thread-256825][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 13:42:35,312 [DEBUG][       Thread-256825][   transport.py][1871] : Switch to new keys ...
2025-06-13 13:42:35,313 [DEBUG][       Thread-256825][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 13:42:35,313 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 13:42:35,313 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 13:42:35,313 [DEBUG][       Thread-256825][   transport.py][1871] : userauth is OK
2025-06-13 13:42:35,326 [ INFO][       Thread-256825][   transport.py][1871] : Authentication (password) successful!
2025-06-13 13:42:35,327 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 13:42:35,910 [DEBUG][       Thread-256825][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 13:42:35,910 [DEBUG][       Thread-256825][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 13:42:35,953 [DEBUG][       Thread-256825][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 13:42:35,953 [DEBUG][       Thread-256825][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 13:42:35,956 [DEBUG][       Thread-256825][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 13:42:35,966 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 13:42:35,966 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 13:42:35,968 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 13:42:35,969 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 13:42:35,974 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 13:42:35,975 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 13:42:35,975 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 13:42:35,976 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 13:42:35,976 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.487784 -999.00  +13.00  19.14     37   -1.10 1 1 1 1 1   888    0 17.45 106.38 ----- 19.8 19.1 30.6 21.3 17.4 -29.6 16.2 -31.1 16.4 -28.8 17.7 -27.6
2025-06-13 13:42:35,976 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 13:42:35,976 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 13:42:35,976 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.487784
2025-06-13 13:42:35,977 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 13:42:35,977 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 13:42:35,977 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 13:42:35,977 [DEBUG][       Thread-256825][   transport.py][1871] : EOF in transport thread
2025-06-13 13:42:35,978 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 13:42:35,978 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 13:42:35,978 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T13:42:04', tmtdew=16.63, humidity=31.34, cloud=0.0, wind=21.53, temperature=13.42, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T11:42:24.538', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 13:42:36,062 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 13:42:36,073 [DEBUG][       Thread-256828][   transport.py][1871] : starting thread (client mode): 0x863ed210
2025-06-13 13:42:36,073 [DEBUG][       Thread-256828][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 13:42:36,089 [DEBUG][       Thread-256828][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 13:42:36,089 [ INFO][       Thread-256828][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 13:42:36,096 [DEBUG][       Thread-256828][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 13:42:36,096 [DEBUG][       Thread-256828][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 13:42:36,096 [DEBUG][       Thread-256828][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 13:42:36,096 [DEBUG][       Thread-256828][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:42:36,097 [DEBUG][       Thread-256828][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:42:36,097 [DEBUG][       Thread-256828][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:42:36,097 [DEBUG][       Thread-256828][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:42:36,097 [DEBUG][       Thread-256828][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 13:42:36,097 [DEBUG][       Thread-256828][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 13:42:36,097 [DEBUG][       Thread-256828][   transport.py][1871] : client lang: <none>
2025-06-13 13:42:36,097 [DEBUG][       Thread-256828][   transport.py][1871] : server lang: <none>
2025-06-13 13:42:36,097 [DEBUG][       Thread-256828][   transport.py][1871] : kex follows: False
2025-06-13 13:42:36,097 [DEBUG][       Thread-256828][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 13:42:36,097 [DEBUG][       Thread-256828][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 13:42:36,097 [DEBUG][       Thread-256828][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 13:42:36,097 [DEBUG][       Thread-256828][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 13:42:36,097 [DEBUG][       Thread-256828][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 13:42:36,097 [DEBUG][       Thread-256828][   transport.py][1871] : Compression: none
2025-06-13 13:42:36,097 [DEBUG][       Thread-256828][   transport.py][1871] : === End of kex handshake ===
2025-06-13 13:42:36,156 [DEBUG][       Thread-256828][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 13:42:36,157 [DEBUG][       Thread-256828][   transport.py][1871] : Switch to new keys ...
2025-06-13 13:42:36,157 [DEBUG][       Thread-256828][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 13:42:36,157 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 13:42:36,158 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 13:42:36,213 [DEBUG][       Thread-256828][   transport.py][1871] : userauth is OK
2025-06-13 13:42:36,213 [DEBUG][       Thread-256828][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 13:42:36,213 [DEBUG][       Thread-256828][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 13:42:36,213 [DEBUG][       Thread-256828][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 13:42:36,213 [DEBUG][       Thread-256828][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 13:42:36,232 [ INFO][       Thread-256828][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 13:42:36,233 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 13:42:36,233 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 13:42:37,259 [DEBUG][       Thread-256828][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 13:42:37,259 [DEBUG][       Thread-256828][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 13:42:37,307 [DEBUG][       Thread-256828][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 13:42:37,308 [DEBUG][       Thread-256828][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 13:42:37,316 [DEBUG][       Thread-256828][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 13:42:37,324 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 13:42:37,324 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 13:42:37,336 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 13:42:37,344 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 13:42:37,344 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 13:42:37,344 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 13:42:37,351 [DEBUG][       Thread-256828][   transport.py][1871] : EOF in transport thread
2025-06-13 13:42:40,930 [DEBUG][Thread-256830 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:42:47,348 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 13:42:47,348 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 13:42:47,348 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 13:42:47,351 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 13:42:47,817 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 13, 42, 35), 16.42, 31.87, 0.0, 20.8, 13.44, 0, 0, 0, 2, 0, 0),)
2025-06-13 13:42:47,817 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 13:42:35
2025-06-13 13:42:47,899 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 13:42:47,904 [DEBUG][       Thread-256831][   transport.py][1871] : starting thread (client mode): 0x84204610
2025-06-13 13:42:47,904 [DEBUG][       Thread-256831][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 13:42:47,924 [DEBUG][       Thread-256831][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 13:42:47,924 [ INFO][       Thread-256831][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 13:42:47,928 [DEBUG][       Thread-256831][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 13:42:47,928 [DEBUG][       Thread-256831][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 13:42:47,928 [DEBUG][       Thread-256831][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 13:42:47,928 [DEBUG][       Thread-256831][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:42:47,928 [DEBUG][       Thread-256831][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:42:47,928 [DEBUG][       Thread-256831][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:42:47,928 [DEBUG][       Thread-256831][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:42:47,928 [DEBUG][       Thread-256831][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 13:42:47,928 [DEBUG][       Thread-256831][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 13:42:47,928 [DEBUG][       Thread-256831][   transport.py][1871] : client lang: <none>
2025-06-13 13:42:47,928 [DEBUG][       Thread-256831][   transport.py][1871] : server lang: <none>
2025-06-13 13:42:47,928 [DEBUG][       Thread-256831][   transport.py][1871] : kex follows: False
2025-06-13 13:42:47,928 [DEBUG][       Thread-256831][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 13:42:47,928 [DEBUG][       Thread-256831][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 13:42:47,928 [DEBUG][       Thread-256831][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 13:42:47,928 [DEBUG][       Thread-256831][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 13:42:47,928 [DEBUG][       Thread-256831][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 13:42:47,928 [DEBUG][       Thread-256831][   transport.py][1871] : Compression: none
2025-06-13 13:42:47,928 [DEBUG][       Thread-256831][   transport.py][1871] : === End of kex handshake ===
2025-06-13 13:42:47,944 [DEBUG][       Thread-256831][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 13:42:47,945 [DEBUG][       Thread-256831][   transport.py][1871] : Switch to new keys ...
2025-06-13 13:42:47,945 [DEBUG][       Thread-256831][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 13:42:47,946 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 13:42:47,946 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 13:42:47,947 [DEBUG][       Thread-256831][   transport.py][1871] : userauth is OK
2025-06-13 13:42:47,960 [ INFO][       Thread-256831][   transport.py][1871] : Authentication (password) successful!
2025-06-13 13:42:47,961 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 13:42:48,599 [DEBUG][       Thread-256831][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 13:42:48,599 [DEBUG][       Thread-256831][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 13:42:48,641 [DEBUG][       Thread-256831][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 13:42:48,641 [DEBUG][       Thread-256831][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 13:42:48,644 [DEBUG][       Thread-256831][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 13:42:48,657 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 13:42:48,657 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 13:42:48,659 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 13:42:48,661 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 13:42:48,668 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 13:42:48,670 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 13:42:48,670 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 13:42:48,671 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 13:42:48,671 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.487784 -999.00  +13.00  19.14     37   -1.10 1 1 1 1 1   888    0 17.45 106.38 ----- 19.8 19.1 30.6 21.3 17.4 -29.6 16.2 -31.1 16.4 -28.8 17.7 -27.6
2025-06-13 13:42:48,671 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 13:42:48,672 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 13:42:48,672 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.487784
2025-06-13 13:42:48,672 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 13:42:48,673 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 13:42:48,673 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 13:42:48,673 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 13:42:48,673 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 13:42:48,674 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T13:42:35', tmtdew=16.42, humidity=31.87, cloud=0.0, wind=20.8, temperature=13.44, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T11:42:24.538', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 13:42:48,675 [DEBUG][       Thread-256831][   transport.py][1871] : EOF in transport thread
2025-06-13 13:42:48,762 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 13:42:48,772 [DEBUG][       Thread-256834][   transport.py][1871] : starting thread (client mode): 0x863cb0d0
2025-06-13 13:42:48,772 [DEBUG][       Thread-256834][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 13:42:48,788 [DEBUG][       Thread-256834][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 13:42:48,788 [ INFO][       Thread-256834][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 13:42:48,796 [DEBUG][       Thread-256834][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 13:42:48,796 [DEBUG][       Thread-256834][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 13:42:48,796 [DEBUG][       Thread-256834][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 13:42:48,796 [DEBUG][       Thread-256834][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:42:48,796 [DEBUG][       Thread-256834][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:42:48,796 [DEBUG][       Thread-256834][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:42:48,796 [DEBUG][       Thread-256834][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:42:48,796 [DEBUG][       Thread-256834][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 13:42:48,796 [DEBUG][       Thread-256834][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 13:42:48,796 [DEBUG][       Thread-256834][   transport.py][1871] : client lang: <none>
2025-06-13 13:42:48,796 [DEBUG][       Thread-256834][   transport.py][1871] : server lang: <none>
2025-06-13 13:42:48,796 [DEBUG][       Thread-256834][   transport.py][1871] : kex follows: False
2025-06-13 13:42:48,796 [DEBUG][       Thread-256834][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 13:42:48,796 [DEBUG][       Thread-256834][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 13:42:48,796 [DEBUG][       Thread-256834][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 13:42:48,796 [DEBUG][       Thread-256834][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 13:42:48,796 [DEBUG][       Thread-256834][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 13:42:48,797 [DEBUG][       Thread-256834][   transport.py][1871] : Compression: none
2025-06-13 13:42:48,797 [DEBUG][       Thread-256834][   transport.py][1871] : === End of kex handshake ===
2025-06-13 13:42:48,854 [DEBUG][       Thread-256834][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 13:42:48,855 [DEBUG][       Thread-256834][   transport.py][1871] : Switch to new keys ...
2025-06-13 13:42:48,855 [DEBUG][       Thread-256834][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 13:42:48,856 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 13:42:48,856 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 13:42:48,914 [DEBUG][       Thread-256834][   transport.py][1871] : userauth is OK
2025-06-13 13:42:48,914 [DEBUG][       Thread-256834][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 13:42:48,914 [DEBUG][       Thread-256834][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 13:42:48,914 [DEBUG][       Thread-256834][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 13:42:48,914 [DEBUG][       Thread-256834][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 13:42:48,933 [ INFO][       Thread-256834][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 13:42:48,934 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 13:42:48,934 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 13:42:49,953 [DEBUG][Thread-256836 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:42:49,983 [DEBUG][       Thread-256834][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 13:42:49,984 [DEBUG][       Thread-256834][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 13:42:50,032 [DEBUG][       Thread-256834][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 13:42:50,032 [DEBUG][       Thread-256834][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 13:42:50,041 [DEBUG][       Thread-256834][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 13:42:50,050 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 13:42:50,050 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 13:42:50,059 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 13:42:50,068 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 13:42:50,068 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 13:42:50,069 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 13:42:50,080 [DEBUG][       Thread-256834][   transport.py][1871] : EOF in transport thread
2025-06-13 13:42:50,134 [DEBUG][Thread-256837 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:42:51,214 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:42:51,214 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:42:54,501 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:42:54,502 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:42:58,998 [DEBUG][Thread-256838 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:43:00,072 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 13:43:00,072 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 13:43:00,072 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 13:43:00,075 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 13:43:00,529 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 13, 42, 35), 16.42, 31.87, 0.0, 20.8, 13.44, 0, 0, 0, 2, 0, 0),)
2025-06-13 13:43:00,529 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 13:42:35
2025-06-13 13:43:00,610 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 13:43:00,614 [DEBUG][       Thread-256839][   transport.py][1871] : starting thread (client mode): 0x86351240
2025-06-13 13:43:00,614 [DEBUG][       Thread-256839][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 13:43:00,636 [DEBUG][       Thread-256839][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 13:43:00,636 [ INFO][       Thread-256839][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 13:43:00,639 [DEBUG][       Thread-256839][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 13:43:00,639 [DEBUG][       Thread-256839][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 13:43:00,639 [DEBUG][       Thread-256839][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 13:43:00,639 [DEBUG][       Thread-256839][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:43:00,639 [DEBUG][       Thread-256839][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:43:00,640 [DEBUG][       Thread-256839][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:43:00,640 [DEBUG][       Thread-256839][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:43:00,640 [DEBUG][       Thread-256839][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 13:43:00,640 [DEBUG][       Thread-256839][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 13:43:00,640 [DEBUG][       Thread-256839][   transport.py][1871] : client lang: <none>
2025-06-13 13:43:00,640 [DEBUG][       Thread-256839][   transport.py][1871] : server lang: <none>
2025-06-13 13:43:00,640 [DEBUG][       Thread-256839][   transport.py][1871] : kex follows: False
2025-06-13 13:43:00,640 [DEBUG][       Thread-256839][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 13:43:00,640 [DEBUG][       Thread-256839][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 13:43:00,640 [DEBUG][       Thread-256839][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 13:43:00,640 [DEBUG][       Thread-256839][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 13:43:00,640 [DEBUG][       Thread-256839][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 13:43:00,640 [DEBUG][       Thread-256839][   transport.py][1871] : Compression: none
2025-06-13 13:43:00,640 [DEBUG][       Thread-256839][   transport.py][1871] : === End of kex handshake ===
2025-06-13 13:43:00,657 [DEBUG][       Thread-256839][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 13:43:00,657 [DEBUG][       Thread-256839][   transport.py][1871] : Switch to new keys ...
2025-06-13 13:43:00,658 [DEBUG][       Thread-256839][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 13:43:00,658 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 13:43:00,658 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 13:43:00,659 [DEBUG][       Thread-256839][   transport.py][1871] : userauth is OK
2025-06-13 13:43:00,672 [ INFO][       Thread-256839][   transport.py][1871] : Authentication (password) successful!
2025-06-13 13:43:00,673 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 13:43:01,285 [DEBUG][       Thread-256839][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 13:43:01,286 [DEBUG][       Thread-256839][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 13:43:01,329 [DEBUG][       Thread-256839][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 13:43:01,329 [DEBUG][       Thread-256839][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 13:43:01,332 [DEBUG][       Thread-256839][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 13:43:01,346 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 13:43:01,347 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 13:43:01,348 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 13:43:01,350 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 13:43:01,355 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 13:43:01,357 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 13:43:01,357 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 13:43:01,358 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 13:43:01,358 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.487784 -999.00  +13.00  19.14     37   -1.10 1 1 1 1 1   888    0 17.45 106.38 ----- 19.8 19.1 30.6 21.3 17.4 -29.6 16.2 -31.1 16.4 -28.8 17.7 -27.6
2025-06-13 13:43:01,358 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 13:43:01,358 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 13:43:01,358 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.487784
2025-06-13 13:43:01,358 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 13:43:01,359 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 13:43:01,359 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 13:43:01,359 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 13:43:01,359 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 13:43:01,359 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T13:42:35', tmtdew=16.42, humidity=31.87, cloud=0.0, wind=20.8, temperature=13.44, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T11:42:24.538', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 13:43:01,360 [DEBUG][       Thread-256839][   transport.py][1871] : EOF in transport thread
2025-06-13 13:43:01,442 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 13:43:01,454 [DEBUG][       Thread-256842][   transport.py][1871] : starting thread (client mode): 0x867b78e0
2025-06-13 13:43:01,455 [DEBUG][       Thread-256842][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 13:43:01,470 [DEBUG][       Thread-256842][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 13:43:01,470 [ INFO][       Thread-256842][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 13:43:01,477 [DEBUG][       Thread-256842][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 13:43:01,478 [DEBUG][       Thread-256842][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 13:43:01,478 [DEBUG][       Thread-256842][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 13:43:01,478 [DEBUG][       Thread-256842][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:43:01,478 [DEBUG][       Thread-256842][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:43:01,478 [DEBUG][       Thread-256842][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:43:01,478 [DEBUG][       Thread-256842][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:43:01,478 [DEBUG][       Thread-256842][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 13:43:01,478 [DEBUG][       Thread-256842][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 13:43:01,478 [DEBUG][       Thread-256842][   transport.py][1871] : client lang: <none>
2025-06-13 13:43:01,478 [DEBUG][       Thread-256842][   transport.py][1871] : server lang: <none>
2025-06-13 13:43:01,478 [DEBUG][       Thread-256842][   transport.py][1871] : kex follows: False
2025-06-13 13:43:01,478 [DEBUG][       Thread-256842][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 13:43:01,478 [DEBUG][       Thread-256842][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 13:43:01,478 [DEBUG][       Thread-256842][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 13:43:01,478 [DEBUG][       Thread-256842][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 13:43:01,478 [DEBUG][       Thread-256842][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 13:43:01,478 [DEBUG][       Thread-256842][   transport.py][1871] : Compression: none
2025-06-13 13:43:01,479 [DEBUG][       Thread-256842][   transport.py][1871] : === End of kex handshake ===
2025-06-13 13:43:01,538 [DEBUG][       Thread-256842][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 13:43:01,538 [DEBUG][       Thread-256842][   transport.py][1871] : Switch to new keys ...
2025-06-13 13:43:01,539 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 13:43:01,539 [DEBUG][       Thread-256842][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 13:43:01,540 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 13:43:01,594 [DEBUG][       Thread-256842][   transport.py][1871] : userauth is OK
2025-06-13 13:43:01,595 [DEBUG][       Thread-256842][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 13:43:01,595 [DEBUG][       Thread-256842][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 13:43:01,595 [DEBUG][       Thread-256842][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 13:43:01,595 [DEBUG][       Thread-256842][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 13:43:01,624 [ INFO][       Thread-256842][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 13:43:01,624 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 13:43:01,625 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 13:43:02,626 [DEBUG][       Thread-256842][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 13:43:02,626 [DEBUG][       Thread-256842][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 13:43:02,677 [DEBUG][       Thread-256842][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 13:43:02,677 [DEBUG][       Thread-256842][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 13:43:02,689 [DEBUG][       Thread-256842][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 13:43:02,701 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 13:43:02,701 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 13:43:02,710 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 13:43:02,720 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 13:43:02,720 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 13:43:02,720 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 13:43:02,728 [DEBUG][       Thread-256842][   transport.py][1871] : EOF in transport thread
2025-06-13 13:43:08,020 [DEBUG][Thread-256844 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:43:12,724 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 13:43:12,724 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 13:43:12,724 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 13:43:12,725 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 13:43:13,192 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 13, 43, 8), 16.66, 31.37, 0.0, 23.61, 13.52, 0, 0, 0, 2, 0, 0),)
2025-06-13 13:43:13,193 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 13:43:08
2025-06-13 13:43:13,278 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 13:43:13,285 [DEBUG][       Thread-256845][   transport.py][1871] : starting thread (client mode): 0x86350f10
2025-06-13 13:43:13,285 [DEBUG][       Thread-256845][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 13:43:13,306 [DEBUG][       Thread-256845][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 13:43:13,306 [ INFO][       Thread-256845][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 13:43:13,308 [DEBUG][       Thread-256845][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 13:43:13,308 [DEBUG][       Thread-256845][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 13:43:13,308 [DEBUG][       Thread-256845][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 13:43:13,308 [DEBUG][       Thread-256845][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:43:13,308 [DEBUG][       Thread-256845][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:43:13,308 [DEBUG][       Thread-256845][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:43:13,308 [DEBUG][       Thread-256845][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:43:13,308 [DEBUG][       Thread-256845][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 13:43:13,308 [DEBUG][       Thread-256845][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 13:43:13,308 [DEBUG][       Thread-256845][   transport.py][1871] : client lang: <none>
2025-06-13 13:43:13,308 [DEBUG][       Thread-256845][   transport.py][1871] : server lang: <none>
2025-06-13 13:43:13,308 [DEBUG][       Thread-256845][   transport.py][1871] : kex follows: False
2025-06-13 13:43:13,308 [DEBUG][       Thread-256845][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 13:43:13,308 [DEBUG][       Thread-256845][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 13:43:13,308 [DEBUG][       Thread-256845][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 13:43:13,308 [DEBUG][       Thread-256845][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 13:43:13,308 [DEBUG][       Thread-256845][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 13:43:13,308 [DEBUG][       Thread-256845][   transport.py][1871] : Compression: none
2025-06-13 13:43:13,308 [DEBUG][       Thread-256845][   transport.py][1871] : === End of kex handshake ===
2025-06-13 13:43:13,315 [DEBUG][       Thread-256845][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 13:43:13,315 [DEBUG][       Thread-256845][   transport.py][1871] : Switch to new keys ...
2025-06-13 13:43:13,315 [DEBUG][       Thread-256845][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 13:43:13,315 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 13:43:13,315 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 13:43:13,316 [DEBUG][       Thread-256845][   transport.py][1871] : userauth is OK
2025-06-13 13:43:13,340 [ INFO][       Thread-256845][   transport.py][1871] : Authentication (password) successful!
2025-06-13 13:43:13,340 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 13:43:14,003 [DEBUG][       Thread-256845][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 13:43:14,003 [DEBUG][       Thread-256845][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 13:43:14,045 [DEBUG][       Thread-256845][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 13:43:14,045 [DEBUG][       Thread-256845][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 13:43:14,047 [DEBUG][       Thread-256845][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 13:43:14,060 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 13:43:14,060 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 13:43:14,061 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 13:43:14,062 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 13:43:14,065 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 13:43:14,066 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 13:43:14,066 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 13:43:14,066 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 13:43:14,066 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.488131 -999.00  +13.00  13.52     37   -1.10 1 1 1 1 1   888    0 17.42 101.16 ----- 19.2 13.5 329.7 25.0 17.5 -29.6 16.2 -31.2 16.4 -31.7 17.7 -27.7
2025-06-13 13:43:14,066 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 13:43:14,066 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 13:43:14,066 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.488131
2025-06-13 13:43:14,066 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 13:43:14,067 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 13:43:14,067 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 13:43:14,067 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 13:43:14,067 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 13:43:14,067 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T13:43:08', tmtdew=16.66, humidity=31.37, cloud=0.0, wind=23.61, temperature=13.52, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T11:42:54.518', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 13:43:14,067 [DEBUG][       Thread-256845][   transport.py][1871] : EOF in transport thread
2025-06-13 13:43:14,140 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 13:43:14,151 [DEBUG][       Thread-256848][   transport.py][1871] : starting thread (client mode): 0x863cb460
2025-06-13 13:43:14,151 [DEBUG][       Thread-256848][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 13:43:14,166 [DEBUG][       Thread-256848][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 13:43:14,166 [ INFO][       Thread-256848][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 13:43:14,174 [DEBUG][       Thread-256848][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 13:43:14,174 [DEBUG][       Thread-256848][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 13:43:14,174 [DEBUG][       Thread-256848][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 13:43:14,174 [DEBUG][       Thread-256848][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:43:14,174 [DEBUG][       Thread-256848][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:43:14,174 [DEBUG][       Thread-256848][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:43:14,174 [DEBUG][       Thread-256848][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:43:14,174 [DEBUG][       Thread-256848][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 13:43:14,174 [DEBUG][       Thread-256848][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 13:43:14,174 [DEBUG][       Thread-256848][   transport.py][1871] : client lang: <none>
2025-06-13 13:43:14,174 [DEBUG][       Thread-256848][   transport.py][1871] : server lang: <none>
2025-06-13 13:43:14,174 [DEBUG][       Thread-256848][   transport.py][1871] : kex follows: False
2025-06-13 13:43:14,174 [DEBUG][       Thread-256848][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 13:43:14,174 [DEBUG][       Thread-256848][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 13:43:14,175 [DEBUG][       Thread-256848][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 13:43:14,175 [DEBUG][       Thread-256848][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 13:43:14,175 [DEBUG][       Thread-256848][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 13:43:14,175 [DEBUG][       Thread-256848][   transport.py][1871] : Compression: none
2025-06-13 13:43:14,175 [DEBUG][       Thread-256848][   transport.py][1871] : === End of kex handshake ===
2025-06-13 13:43:14,235 [DEBUG][       Thread-256848][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 13:43:14,236 [DEBUG][       Thread-256848][   transport.py][1871] : Switch to new keys ...
2025-06-13 13:43:14,236 [DEBUG][       Thread-256848][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 13:43:14,236 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 13:43:14,237 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 13:43:14,308 [DEBUG][       Thread-256848][   transport.py][1871] : userauth is OK
2025-06-13 13:43:14,308 [DEBUG][       Thread-256848][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 13:43:14,308 [DEBUG][       Thread-256848][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 13:43:14,308 [DEBUG][       Thread-256848][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 13:43:14,309 [DEBUG][       Thread-256848][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 13:43:14,327 [ INFO][       Thread-256848][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 13:43:14,327 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 13:43:14,328 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 13:43:15,339 [DEBUG][       Thread-256848][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 13:43:15,339 [DEBUG][       Thread-256848][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 13:43:15,388 [DEBUG][       Thread-256848][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 13:43:15,388 [DEBUG][       Thread-256848][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 13:43:15,397 [DEBUG][       Thread-256848][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 13:43:15,407 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 13:43:15,407 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 13:43:15,415 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 13:43:15,424 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 13:43:15,425 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 13:43:15,425 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 13:43:15,433 [DEBUG][       Thread-256848][   transport.py][1871] : EOF in transport thread
2025-06-13 13:43:15,932 [DEBUG][Thread-256850 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:43:17,041 [DEBUG][Thread-256851 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:43:25,436 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 13:43:25,436 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 13:43:25,436 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 13:43:25,439 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 13:43:25,907 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 13, 43, 8), 16.66, 31.37, 0.0, 23.61, 13.52, 0, 0, 0, 2, 0, 0),)
2025-06-13 13:43:25,907 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 13:43:08
2025-06-13 13:43:25,989 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 13:43:25,993 [DEBUG][       Thread-256852][   transport.py][1871] : starting thread (client mode): 0x86350fa0
2025-06-13 13:43:25,993 [DEBUG][       Thread-256852][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 13:43:26,013 [DEBUG][       Thread-256852][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 13:43:26,013 [ INFO][       Thread-256852][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 13:43:26,017 [DEBUG][       Thread-256852][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 13:43:26,017 [DEBUG][       Thread-256852][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 13:43:26,017 [DEBUG][       Thread-256852][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 13:43:26,017 [DEBUG][       Thread-256852][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:43:26,017 [DEBUG][       Thread-256852][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:43:26,017 [DEBUG][       Thread-256852][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:43:26,017 [DEBUG][       Thread-256852][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:43:26,017 [DEBUG][       Thread-256852][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 13:43:26,017 [DEBUG][       Thread-256852][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 13:43:26,017 [DEBUG][       Thread-256852][   transport.py][1871] : client lang: <none>
2025-06-13 13:43:26,017 [DEBUG][       Thread-256852][   transport.py][1871] : server lang: <none>
2025-06-13 13:43:26,017 [DEBUG][       Thread-256852][   transport.py][1871] : kex follows: False
2025-06-13 13:43:26,017 [DEBUG][       Thread-256852][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 13:43:26,017 [DEBUG][       Thread-256852][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 13:43:26,017 [DEBUG][       Thread-256852][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 13:43:26,017 [DEBUG][       Thread-256852][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 13:43:26,017 [DEBUG][       Thread-256852][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 13:43:26,017 [DEBUG][       Thread-256852][   transport.py][1871] : Compression: none
2025-06-13 13:43:26,017 [DEBUG][       Thread-256852][   transport.py][1871] : === End of kex handshake ===
2025-06-13 13:43:26,035 [DEBUG][       Thread-256852][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 13:43:26,036 [DEBUG][       Thread-256852][   transport.py][1871] : Switch to new keys ...
2025-06-13 13:43:26,036 [DEBUG][       Thread-256852][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 13:43:26,036 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 13:43:26,036 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 13:43:26,037 [DEBUG][       Thread-256852][   transport.py][1871] : userauth is OK
2025-06-13 13:43:26,062 [ INFO][       Thread-256852][   transport.py][1871] : Authentication (password) successful!
2025-06-13 13:43:26,063 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 13:43:26,086 [DEBUG][Thread-256854 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:43:26,736 [DEBUG][       Thread-256852][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 13:43:26,736 [DEBUG][       Thread-256852][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 13:43:26,781 [DEBUG][       Thread-256852][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 13:43:26,781 [DEBUG][       Thread-256852][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 13:43:26,785 [DEBUG][       Thread-256852][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 13:43:26,798 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 13:43:26,798 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 13:43:26,800 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 13:43:26,802 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 13:43:26,807 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 13:43:26,809 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 13:43:26,809 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 13:43:26,810 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 13:43:26,810 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.488131 -999.00  +13.00  13.52     37   -1.10 1 1 1 1 1   888    0 17.42 101.16 ----- 19.2 13.5 329.7 25.0 17.5 -29.6 16.2 -31.2 16.4 -31.7 17.7 -27.7
2025-06-13 13:43:26,810 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 13:43:26,810 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 13:43:26,810 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.488131
2025-06-13 13:43:26,810 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 13:43:26,811 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 13:43:26,811 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 13:43:26,811 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 13:43:26,811 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 13:43:26,811 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T13:43:08', tmtdew=16.66, humidity=31.37, cloud=0.0, wind=23.61, temperature=13.52, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T11:42:54.518', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 13:43:26,812 [DEBUG][       Thread-256852][   transport.py][1871] : EOF in transport thread
2025-06-13 13:43:26,894 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 13:43:26,906 [DEBUG][       Thread-256856][   transport.py][1871] : starting thread (client mode): 0x868c85e0
2025-06-13 13:43:26,907 [DEBUG][       Thread-256856][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 13:43:26,921 [DEBUG][       Thread-256856][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 13:43:26,921 [ INFO][       Thread-256856][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 13:43:26,928 [DEBUG][       Thread-256856][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 13:43:26,928 [DEBUG][       Thread-256856][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 13:43:26,929 [DEBUG][       Thread-256856][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 13:43:26,929 [DEBUG][       Thread-256856][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:43:26,929 [DEBUG][       Thread-256856][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:43:26,929 [DEBUG][       Thread-256856][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:43:26,929 [DEBUG][       Thread-256856][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:43:26,929 [DEBUG][       Thread-256856][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 13:43:26,929 [DEBUG][       Thread-256856][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 13:43:26,929 [DEBUG][       Thread-256856][   transport.py][1871] : client lang: <none>
2025-06-13 13:43:26,929 [DEBUG][       Thread-256856][   transport.py][1871] : server lang: <none>
2025-06-13 13:43:26,929 [DEBUG][       Thread-256856][   transport.py][1871] : kex follows: False
2025-06-13 13:43:26,929 [DEBUG][       Thread-256856][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 13:43:26,929 [DEBUG][       Thread-256856][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 13:43:26,929 [DEBUG][       Thread-256856][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 13:43:26,929 [DEBUG][       Thread-256856][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 13:43:26,929 [DEBUG][       Thread-256856][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 13:43:26,929 [DEBUG][       Thread-256856][   transport.py][1871] : Compression: none
2025-06-13 13:43:26,929 [DEBUG][       Thread-256856][   transport.py][1871] : === End of kex handshake ===
2025-06-13 13:43:26,985 [DEBUG][       Thread-256856][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 13:43:26,986 [DEBUG][       Thread-256856][   transport.py][1871] : Switch to new keys ...
2025-06-13 13:43:26,987 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 13:43:26,987 [DEBUG][       Thread-256856][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 13:43:26,988 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 13:43:27,042 [DEBUG][       Thread-256856][   transport.py][1871] : userauth is OK
2025-06-13 13:43:27,042 [DEBUG][       Thread-256856][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 13:43:27,042 [DEBUG][       Thread-256856][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 13:43:27,042 [DEBUG][       Thread-256856][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 13:43:27,042 [DEBUG][       Thread-256856][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 13:43:27,061 [ INFO][       Thread-256856][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 13:43:27,061 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 13:43:27,061 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 13:43:28,106 [DEBUG][       Thread-256856][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 13:43:28,106 [DEBUG][       Thread-256856][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 13:43:28,159 [DEBUG][       Thread-256856][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 13:43:28,159 [DEBUG][       Thread-256856][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 13:43:28,173 [DEBUG][       Thread-256856][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 13:43:28,182 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 13:43:28,182 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 13:43:28,191 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 13:43:28,200 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 13:43:28,200 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 13:43:28,200 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 13:43:28,208 [DEBUG][       Thread-256856][   transport.py][1871] : EOF in transport thread
2025-06-13 13:43:35,109 [DEBUG][Thread-256858 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:43:38,211 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 13:43:38,211 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 13:43:38,211 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 13:43:38,214 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 13:43:38,667 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 13, 43, 8), 16.66, 31.37, 0.0, 23.61, 13.52, 0, 0, 0, 2, 0, 0),)
2025-06-13 13:43:38,667 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 13:43:08
2025-06-13 13:43:38,748 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 13:43:38,754 [DEBUG][       Thread-256859][   transport.py][1871] : starting thread (client mode): 0x863c98a0
2025-06-13 13:43:38,754 [DEBUG][       Thread-256859][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 13:43:38,774 [DEBUG][       Thread-256859][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 13:43:38,774 [ INFO][       Thread-256859][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 13:43:38,777 [DEBUG][       Thread-256859][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 13:43:38,777 [DEBUG][       Thread-256859][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 13:43:38,777 [DEBUG][       Thread-256859][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 13:43:38,777 [DEBUG][       Thread-256859][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:43:38,777 [DEBUG][       Thread-256859][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:43:38,777 [DEBUG][       Thread-256859][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:43:38,777 [DEBUG][       Thread-256859][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:43:38,777 [DEBUG][       Thread-256859][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 13:43:38,777 [DEBUG][       Thread-256859][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 13:43:38,777 [DEBUG][       Thread-256859][   transport.py][1871] : client lang: <none>
2025-06-13 13:43:38,777 [DEBUG][       Thread-256859][   transport.py][1871] : server lang: <none>
2025-06-13 13:43:38,777 [DEBUG][       Thread-256859][   transport.py][1871] : kex follows: False
2025-06-13 13:43:38,778 [DEBUG][       Thread-256859][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 13:43:38,778 [DEBUG][       Thread-256859][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 13:43:38,778 [DEBUG][       Thread-256859][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 13:43:38,778 [DEBUG][       Thread-256859][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 13:43:38,778 [DEBUG][       Thread-256859][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 13:43:38,778 [DEBUG][       Thread-256859][   transport.py][1871] : Compression: none
2025-06-13 13:43:38,778 [DEBUG][       Thread-256859][   transport.py][1871] : === End of kex handshake ===
2025-06-13 13:43:38,794 [DEBUG][       Thread-256859][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 13:43:38,794 [DEBUG][       Thread-256859][   transport.py][1871] : Switch to new keys ...
2025-06-13 13:43:38,795 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 13:43:38,795 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 13:43:38,796 [DEBUG][       Thread-256859][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 13:43:38,796 [DEBUG][       Thread-256859][   transport.py][1871] : userauth is OK
2025-06-13 13:43:38,809 [ INFO][       Thread-256859][   transport.py][1871] : Authentication (password) successful!
2025-06-13 13:43:38,810 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 13:43:39,445 [DEBUG][       Thread-256859][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 13:43:39,445 [DEBUG][       Thread-256859][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 13:43:39,489 [DEBUG][       Thread-256859][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 13:43:39,489 [DEBUG][       Thread-256859][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 13:43:39,492 [DEBUG][       Thread-256859][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 13:43:39,505 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 13:43:39,505 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 13:43:39,507 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 13:43:39,509 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 13:43:39,515 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 13:43:39,517 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 13:43:39,517 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 13:43:39,518 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 13:43:39,518 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.488131 -999.00  +13.00  13.52     37   -1.10 1 1 1 1 1   888    0 17.42 101.16 ----- 19.2 13.5 329.7 25.0 17.5 -29.6 16.2 -31.2 16.4 -31.7 17.7 -27.7
2025-06-13 13:43:39,518 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 13:43:39,518 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 13:43:39,518 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.488131
2025-06-13 13:43:39,519 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 13:43:39,519 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 13:43:39,519 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 13:43:39,519 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 13:43:39,519 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 13:43:39,520 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T13:43:08', tmtdew=16.66, humidity=31.37, cloud=0.0, wind=23.61, temperature=13.52, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T11:42:54.518', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 13:43:39,521 [DEBUG][       Thread-256859][   transport.py][1871] : EOF in transport thread
2025-06-13 13:43:39,603 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 13:43:39,617 [DEBUG][       Thread-256862][   transport.py][1871] : starting thread (client mode): 0x8636b940
2025-06-13 13:43:39,617 [DEBUG][       Thread-256862][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 13:43:39,632 [DEBUG][       Thread-256862][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 13:43:39,632 [ INFO][       Thread-256862][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 13:43:39,644 [DEBUG][       Thread-256862][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 13:43:39,644 [DEBUG][       Thread-256862][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 13:43:39,644 [DEBUG][       Thread-256862][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 13:43:39,644 [DEBUG][       Thread-256862][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:43:39,644 [DEBUG][       Thread-256862][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:43:39,644 [DEBUG][       Thread-256862][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:43:39,644 [DEBUG][       Thread-256862][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:43:39,644 [DEBUG][       Thread-256862][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 13:43:39,644 [DEBUG][       Thread-256862][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 13:43:39,644 [DEBUG][       Thread-256862][   transport.py][1871] : client lang: <none>
2025-06-13 13:43:39,644 [DEBUG][       Thread-256862][   transport.py][1871] : server lang: <none>
2025-06-13 13:43:39,644 [DEBUG][       Thread-256862][   transport.py][1871] : kex follows: False
2025-06-13 13:43:39,644 [DEBUG][       Thread-256862][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 13:43:39,645 [DEBUG][       Thread-256862][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 13:43:39,645 [DEBUG][       Thread-256862][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 13:43:39,645 [DEBUG][       Thread-256862][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 13:43:39,645 [DEBUG][       Thread-256862][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 13:43:39,645 [DEBUG][       Thread-256862][   transport.py][1871] : Compression: none
2025-06-13 13:43:39,645 [DEBUG][       Thread-256862][   transport.py][1871] : === End of kex handshake ===
2025-06-13 13:43:39,706 [DEBUG][       Thread-256862][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 13:43:39,706 [DEBUG][       Thread-256862][   transport.py][1871] : Switch to new keys ...
2025-06-13 13:43:39,707 [DEBUG][       Thread-256862][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 13:43:39,707 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 13:43:39,708 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 13:43:39,762 [DEBUG][       Thread-256862][   transport.py][1871] : userauth is OK
2025-06-13 13:43:39,762 [DEBUG][       Thread-256862][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 13:43:39,762 [DEBUG][       Thread-256862][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 13:43:39,762 [DEBUG][       Thread-256862][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 13:43:39,763 [DEBUG][       Thread-256862][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 13:43:39,782 [ INFO][       Thread-256862][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 13:43:39,782 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 13:43:39,783 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 13:43:40,838 [DEBUG][       Thread-256862][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 13:43:40,838 [DEBUG][       Thread-256862][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 13:43:40,887 [DEBUG][       Thread-256862][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 13:43:40,888 [DEBUG][       Thread-256862][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 13:43:40,896 [DEBUG][       Thread-256862][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 13:43:40,904 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 13:43:40,904 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 13:43:40,912 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 13:43:40,921 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 13:43:40,921 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 13:43:40,921 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 13:43:40,929 [DEBUG][       Thread-256862][   transport.py][1871] : EOF in transport thread
2025-06-13 13:43:44,131 [DEBUG][Thread-256864 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:43:50,928 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 13:43:50,928 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 13:43:50,928 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 13:43:50,929 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 13:43:51,284 [DEBUG][Thread-256865 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:43:51,406 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 13, 43, 39), 16.54, 31.6, 0.0, 20.77, 13.49, 0, 0, 0, 2, 0, 0),)
2025-06-13 13:43:51,406 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 13:43:39
2025-06-13 13:43:51,489 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 13:43:51,493 [DEBUG][       Thread-256866][   transport.py][1871] : starting thread (client mode): 0x867fe140
2025-06-13 13:43:51,493 [DEBUG][       Thread-256866][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 13:43:51,508 [DEBUG][       Thread-256866][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 13:43:51,508 [ INFO][       Thread-256866][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 13:43:51,510 [DEBUG][       Thread-256866][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 13:43:51,510 [DEBUG][       Thread-256866][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 13:43:51,510 [DEBUG][       Thread-256866][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 13:43:51,510 [DEBUG][       Thread-256866][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:43:51,510 [DEBUG][       Thread-256866][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:43:51,510 [DEBUG][       Thread-256866][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:43:51,510 [DEBUG][       Thread-256866][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:43:51,510 [DEBUG][       Thread-256866][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 13:43:51,510 [DEBUG][       Thread-256866][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 13:43:51,510 [DEBUG][       Thread-256866][   transport.py][1871] : client lang: <none>
2025-06-13 13:43:51,510 [DEBUG][       Thread-256866][   transport.py][1871] : server lang: <none>
2025-06-13 13:43:51,510 [DEBUG][       Thread-256866][   transport.py][1871] : kex follows: False
2025-06-13 13:43:51,510 [DEBUG][       Thread-256866][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 13:43:51,510 [DEBUG][       Thread-256866][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 13:43:51,510 [DEBUG][       Thread-256866][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 13:43:51,510 [DEBUG][       Thread-256866][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 13:43:51,510 [DEBUG][       Thread-256866][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 13:43:51,510 [DEBUG][       Thread-256866][   transport.py][1871] : Compression: none
2025-06-13 13:43:51,510 [DEBUG][       Thread-256866][   transport.py][1871] : === End of kex handshake ===
2025-06-13 13:43:51,528 [DEBUG][       Thread-256866][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 13:43:51,528 [DEBUG][       Thread-256866][   transport.py][1871] : Switch to new keys ...
2025-06-13 13:43:51,528 [DEBUG][       Thread-256866][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 13:43:51,528 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 13:43:51,528 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 13:43:51,529 [DEBUG][       Thread-256866][   transport.py][1871] : userauth is OK
2025-06-13 13:43:51,542 [ INFO][       Thread-256866][   transport.py][1871] : Authentication (password) successful!
2025-06-13 13:43:51,542 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 13:43:52,192 [DEBUG][       Thread-256866][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 13:43:52,193 [DEBUG][       Thread-256866][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 13:43:52,236 [DEBUG][       Thread-256866][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 13:43:52,236 [DEBUG][       Thread-256866][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 13:43:52,239 [DEBUG][       Thread-256866][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 13:43:52,251 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 13:43:52,251 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 13:43:52,252 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 13:43:52,253 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 13:43:52,256 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 13:43:52,256 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 13:43:52,256 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 13:43:52,257 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 13:43:52,257 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.488479 -999.00  +13.30  13.82     37   -0.70 1 1 1 1 1   888    0 17.63 109.64 ----- 21.9 13.8 31.2 21.2 17.5 -29.0 16.3 -31.2 16.6 -28.8 17.7 -27.2
2025-06-13 13:43:52,257 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 13:43:52,257 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 13:43:52,257 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.488479
2025-06-13 13:43:52,257 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 13:43:52,257 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 13:43:52,257 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 13:43:52,257 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 13:43:52,257 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 13:43:52,257 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T13:43:39', tmtdew=16.54, humidity=31.6, cloud=0.0, wind=20.77, temperature=13.49, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T11:43:24.586', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 13:43:52,258 [DEBUG][       Thread-256866][   transport.py][1871] : EOF in transport thread
2025-06-13 13:43:52,330 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 13:43:52,340 [DEBUG][       Thread-256869][   transport.py][1871] : starting thread (client mode): 0x868c85e0
2025-06-13 13:43:52,340 [DEBUG][       Thread-256869][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 13:43:52,342 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:43:52,342 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:43:52,355 [DEBUG][       Thread-256869][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 13:43:52,355 [ INFO][       Thread-256869][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 13:43:52,362 [DEBUG][       Thread-256869][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 13:43:52,362 [DEBUG][       Thread-256869][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 13:43:52,362 [DEBUG][       Thread-256869][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 13:43:52,363 [DEBUG][       Thread-256869][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:43:52,363 [DEBUG][       Thread-256869][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:43:52,363 [DEBUG][       Thread-256869][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:43:52,363 [DEBUG][       Thread-256869][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:43:52,363 [DEBUG][       Thread-256869][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 13:43:52,363 [DEBUG][       Thread-256869][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 13:43:52,363 [DEBUG][       Thread-256869][   transport.py][1871] : client lang: <none>
2025-06-13 13:43:52,363 [DEBUG][       Thread-256869][   transport.py][1871] : server lang: <none>
2025-06-13 13:43:52,363 [DEBUG][       Thread-256869][   transport.py][1871] : kex follows: False
2025-06-13 13:43:52,363 [DEBUG][       Thread-256869][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 13:43:52,363 [DEBUG][       Thread-256869][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 13:43:52,363 [DEBUG][       Thread-256869][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 13:43:52,363 [DEBUG][       Thread-256869][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 13:43:52,363 [DEBUG][       Thread-256869][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 13:43:52,363 [DEBUG][       Thread-256869][   transport.py][1871] : Compression: none
2025-06-13 13:43:52,363 [DEBUG][       Thread-256869][   transport.py][1871] : === End of kex handshake ===
2025-06-13 13:43:52,420 [DEBUG][       Thread-256869][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 13:43:52,420 [DEBUG][       Thread-256869][   transport.py][1871] : Switch to new keys ...
2025-06-13 13:43:52,420 [DEBUG][       Thread-256869][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 13:43:52,420 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 13:43:52,420 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 13:43:52,477 [DEBUG][       Thread-256869][   transport.py][1871] : userauth is OK
2025-06-13 13:43:52,477 [DEBUG][       Thread-256869][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 13:43:52,477 [DEBUG][       Thread-256869][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 13:43:52,477 [DEBUG][       Thread-256869][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 13:43:52,477 [DEBUG][       Thread-256869][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 13:43:52,491 [ INFO][       Thread-256869][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 13:43:52,492 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 13:43:52,492 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 13:43:53,148 [DEBUG][Thread-256871 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:43:53,644 [DEBUG][       Thread-256869][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 13:43:53,645 [DEBUG][       Thread-256869][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 13:43:53,696 [DEBUG][       Thread-256869][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 13:43:53,696 [DEBUG][       Thread-256869][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 13:43:53,705 [DEBUG][       Thread-256869][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 13:43:53,714 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 13:43:53,715 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 13:43:53,723 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 13:43:53,733 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 13:43:53,733 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 13:43:53,734 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 13:43:53,743 [DEBUG][       Thread-256869][   transport.py][1871] : EOF in transport thread
2025-06-13 13:43:54,643 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:43:54,644 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:44:02,177 [DEBUG][Thread-256872 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:44:03,744 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 13:44:03,745 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 13:44:03,745 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 13:44:03,747 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 13:44:04,203 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 13, 43, 39), 16.54, 31.6, 0.0, 20.77, 13.49, 0, 0, 0, 2, 0, 0),)
2025-06-13 13:44:04,203 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 13:43:39
2025-06-13 13:44:04,283 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 13:44:04,289 [DEBUG][       Thread-256873][   transport.py][1871] : starting thread (client mode): 0x863a7f10
2025-06-13 13:44:04,289 [DEBUG][       Thread-256873][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 13:44:04,311 [DEBUG][       Thread-256873][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 13:44:04,311 [ INFO][       Thread-256873][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 13:44:04,312 [DEBUG][       Thread-256873][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 13:44:04,313 [DEBUG][       Thread-256873][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 13:44:04,313 [DEBUG][       Thread-256873][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 13:44:04,313 [DEBUG][       Thread-256873][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:44:04,313 [DEBUG][       Thread-256873][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:44:04,313 [DEBUG][       Thread-256873][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:44:04,313 [DEBUG][       Thread-256873][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:44:04,313 [DEBUG][       Thread-256873][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 13:44:04,313 [DEBUG][       Thread-256873][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 13:44:04,313 [DEBUG][       Thread-256873][   transport.py][1871] : client lang: <none>
2025-06-13 13:44:04,313 [DEBUG][       Thread-256873][   transport.py][1871] : server lang: <none>
2025-06-13 13:44:04,313 [DEBUG][       Thread-256873][   transport.py][1871] : kex follows: False
2025-06-13 13:44:04,313 [DEBUG][       Thread-256873][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 13:44:04,313 [DEBUG][       Thread-256873][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 13:44:04,313 [DEBUG][       Thread-256873][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 13:44:04,313 [DEBUG][       Thread-256873][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 13:44:04,313 [DEBUG][       Thread-256873][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 13:44:04,313 [DEBUG][       Thread-256873][   transport.py][1871] : Compression: none
2025-06-13 13:44:04,313 [DEBUG][       Thread-256873][   transport.py][1871] : === End of kex handshake ===
2025-06-13 13:44:04,330 [DEBUG][       Thread-256873][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 13:44:04,330 [DEBUG][       Thread-256873][   transport.py][1871] : Switch to new keys ...
2025-06-13 13:44:04,331 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 13:44:04,331 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 13:44:04,332 [DEBUG][       Thread-256873][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 13:44:04,332 [DEBUG][       Thread-256873][   transport.py][1871] : userauth is OK
2025-06-13 13:44:04,356 [ INFO][       Thread-256873][   transport.py][1871] : Authentication (password) successful!
2025-06-13 13:44:04,357 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 13:44:04,974 [DEBUG][       Thread-256873][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 13:44:04,975 [DEBUG][       Thread-256873][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 13:44:05,017 [DEBUG][       Thread-256873][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 13:44:05,017 [DEBUG][       Thread-256873][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 13:44:05,021 [DEBUG][       Thread-256873][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 13:44:05,033 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 13:44:05,033 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 13:44:05,035 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 13:44:05,037 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 13:44:05,043 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 13:44:05,045 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 13:44:05,045 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 13:44:05,046 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 13:44:05,046 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.488479 -999.00  +13.30  13.82     37   -0.70 1 1 1 1 1   888    0 17.63 109.64 ----- 21.9 13.8 31.2 21.2 17.5 -29.0 16.3 -31.2 16.6 -28.8 17.7 -27.2
2025-06-13 13:44:05,046 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 13:44:05,046 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 13:44:05,046 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.488479
2025-06-13 13:44:05,047 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 13:44:05,047 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 13:44:05,048 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 13:44:05,048 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 13:44:05,048 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 13:44:05,048 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T13:43:39', tmtdew=16.54, humidity=31.6, cloud=0.0, wind=20.77, temperature=13.49, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T11:43:24.586', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 13:44:05,048 [DEBUG][       Thread-256873][   transport.py][1871] : EOF in transport thread
2025-06-13 13:44:05,132 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 13:44:05,144 [DEBUG][       Thread-256876][   transport.py][1871] : starting thread (client mode): 0x863eceb0
2025-06-13 13:44:05,144 [DEBUG][       Thread-256876][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 13:44:05,164 [DEBUG][       Thread-256876][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 13:44:05,164 [ INFO][       Thread-256876][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 13:44:05,173 [DEBUG][       Thread-256876][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 13:44:05,173 [DEBUG][       Thread-256876][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 13:44:05,173 [DEBUG][       Thread-256876][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 13:44:05,173 [DEBUG][       Thread-256876][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:44:05,173 [DEBUG][       Thread-256876][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:44:05,173 [DEBUG][       Thread-256876][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:44:05,173 [DEBUG][       Thread-256876][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:44:05,173 [DEBUG][       Thread-256876][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 13:44:05,173 [DEBUG][       Thread-256876][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 13:44:05,174 [DEBUG][       Thread-256876][   transport.py][1871] : client lang: <none>
2025-06-13 13:44:05,174 [DEBUG][       Thread-256876][   transport.py][1871] : server lang: <none>
2025-06-13 13:44:05,174 [DEBUG][       Thread-256876][   transport.py][1871] : kex follows: False
2025-06-13 13:44:05,174 [DEBUG][       Thread-256876][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 13:44:05,174 [DEBUG][       Thread-256876][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 13:44:05,174 [DEBUG][       Thread-256876][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 13:44:05,174 [DEBUG][       Thread-256876][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 13:44:05,174 [DEBUG][       Thread-256876][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 13:44:05,174 [DEBUG][       Thread-256876][   transport.py][1871] : Compression: none
2025-06-13 13:44:05,174 [DEBUG][       Thread-256876][   transport.py][1871] : === End of kex handshake ===
2025-06-13 13:44:05,191 [DEBUG][       Thread-256876][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 13:44:05,191 [DEBUG][       Thread-256876][   transport.py][1871] : Switch to new keys ...
2025-06-13 13:44:05,192 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 13:44:05,193 [DEBUG][       Thread-256876][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 13:44:05,193 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 13:44:05,249 [DEBUG][       Thread-256876][   transport.py][1871] : userauth is OK
2025-06-13 13:44:05,250 [DEBUG][       Thread-256876][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 13:44:05,250 [DEBUG][       Thread-256876][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 13:44:05,250 [DEBUG][       Thread-256876][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 13:44:05,250 [DEBUG][       Thread-256876][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 13:44:05,269 [ INFO][       Thread-256876][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 13:44:05,269 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 13:44:05,269 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 13:44:06,352 [DEBUG][       Thread-256876][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 13:44:06,352 [DEBUG][       Thread-256876][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 13:44:06,401 [DEBUG][       Thread-256876][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 13:44:06,401 [DEBUG][       Thread-256876][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 13:44:06,414 [DEBUG][       Thread-256876][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 13:44:06,423 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 13:44:06,423 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 13:44:06,431 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 13:44:06,439 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 13:44:06,439 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 13:44:06,439 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 13:44:06,447 [DEBUG][       Thread-256876][   transport.py][1871] : EOF in transport thread
2025-06-13 13:44:11,200 [DEBUG][Thread-256878 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:44:15,981 [DEBUG][Thread-256879 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:44:16,450 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 13:44:16,450 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 13:44:16,450 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 13:44:16,453 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 13:44:16,911 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 13, 44, 11), 16.71, 31.29, 0.0, 17.93, 13.67, 0, 0, 0, 2, 0, 0),)
2025-06-13 13:44:16,911 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 13:44:11
2025-06-13 13:44:16,991 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 13:44:16,996 [DEBUG][       Thread-256880][   transport.py][1871] : starting thread (client mode): 0x863bf580
2025-06-13 13:44:16,996 [DEBUG][       Thread-256880][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 13:44:17,017 [DEBUG][       Thread-256880][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 13:44:17,017 [ INFO][       Thread-256880][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 13:44:17,021 [DEBUG][       Thread-256880][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 13:44:17,021 [DEBUG][       Thread-256880][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 13:44:17,021 [DEBUG][       Thread-256880][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 13:44:17,021 [DEBUG][       Thread-256880][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:44:17,021 [DEBUG][       Thread-256880][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:44:17,021 [DEBUG][       Thread-256880][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:44:17,021 [DEBUG][       Thread-256880][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:44:17,021 [DEBUG][       Thread-256880][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 13:44:17,021 [DEBUG][       Thread-256880][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 13:44:17,021 [DEBUG][       Thread-256880][   transport.py][1871] : client lang: <none>
2025-06-13 13:44:17,021 [DEBUG][       Thread-256880][   transport.py][1871] : server lang: <none>
2025-06-13 13:44:17,021 [DEBUG][       Thread-256880][   transport.py][1871] : kex follows: False
2025-06-13 13:44:17,021 [DEBUG][       Thread-256880][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 13:44:17,022 [DEBUG][       Thread-256880][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 13:44:17,022 [DEBUG][       Thread-256880][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 13:44:17,022 [DEBUG][       Thread-256880][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 13:44:17,022 [DEBUG][       Thread-256880][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 13:44:17,022 [DEBUG][       Thread-256880][   transport.py][1871] : Compression: none
2025-06-13 13:44:17,022 [DEBUG][       Thread-256880][   transport.py][1871] : === End of kex handshake ===
2025-06-13 13:44:17,039 [DEBUG][       Thread-256880][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 13:44:17,040 [DEBUG][       Thread-256880][   transport.py][1871] : Switch to new keys ...
2025-06-13 13:44:17,040 [DEBUG][       Thread-256880][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 13:44:17,041 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 13:44:17,041 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 13:44:17,042 [DEBUG][       Thread-256880][   transport.py][1871] : userauth is OK
2025-06-13 13:44:17,054 [ INFO][       Thread-256880][   transport.py][1871] : Authentication (password) successful!
2025-06-13 13:44:17,055 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 13:44:17,657 [DEBUG][       Thread-256880][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 13:44:17,658 [DEBUG][       Thread-256880][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 13:44:17,701 [DEBUG][       Thread-256880][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 13:44:17,701 [DEBUG][       Thread-256880][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 13:44:17,705 [DEBUG][       Thread-256880][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 13:44:17,716 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 13:44:17,717 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 13:44:17,719 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 13:44:17,721 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 13:44:17,727 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 13:44:17,729 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 13:44:17,729 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 13:44:17,730 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 13:44:17,730 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.488826 -999.00  +13.30  27.79     36   -1.10 1 1 1 1 1   888    0 17.78 109.32 ----- 22.9 27.8 42.4 29.0 17.5 -29.7 16.3 -31.1 16.4 -29.5 17.8 -27.1
2025-06-13 13:44:17,730 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 13:44:17,730 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 13:44:17,730 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.488826
2025-06-13 13:44:17,731 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 13:44:17,731 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 13:44:17,731 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 13:44:17,731 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 13:44:17,731 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 13:44:17,732 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T13:44:11', tmtdew=16.71, humidity=31.29, cloud=0.0, wind=17.93, temperature=13.67, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T11:43:54.566', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 13:44:17,732 [DEBUG][       Thread-256880][   transport.py][1871] : EOF in transport thread
2025-06-13 13:44:17,815 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 13:44:17,829 [DEBUG][       Thread-256883][   transport.py][1871] : starting thread (client mode): 0x86369270
2025-06-13 13:44:17,829 [DEBUG][       Thread-256883][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 13:44:17,845 [DEBUG][       Thread-256883][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 13:44:17,846 [ INFO][       Thread-256883][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 13:44:17,857 [DEBUG][       Thread-256883][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 13:44:17,857 [DEBUG][       Thread-256883][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 13:44:17,857 [DEBUG][       Thread-256883][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 13:44:17,857 [DEBUG][       Thread-256883][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:44:17,857 [DEBUG][       Thread-256883][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:44:17,857 [DEBUG][       Thread-256883][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:44:17,857 [DEBUG][       Thread-256883][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:44:17,857 [DEBUG][       Thread-256883][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 13:44:17,858 [DEBUG][       Thread-256883][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 13:44:17,858 [DEBUG][       Thread-256883][   transport.py][1871] : client lang: <none>
2025-06-13 13:44:17,858 [DEBUG][       Thread-256883][   transport.py][1871] : server lang: <none>
2025-06-13 13:44:17,858 [DEBUG][       Thread-256883][   transport.py][1871] : kex follows: False
2025-06-13 13:44:17,858 [DEBUG][       Thread-256883][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 13:44:17,858 [DEBUG][       Thread-256883][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 13:44:17,858 [DEBUG][       Thread-256883][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 13:44:17,858 [DEBUG][       Thread-256883][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 13:44:17,858 [DEBUG][       Thread-256883][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 13:44:17,858 [DEBUG][       Thread-256883][   transport.py][1871] : Compression: none
2025-06-13 13:44:17,858 [DEBUG][       Thread-256883][   transport.py][1871] : === End of kex handshake ===
2025-06-13 13:44:17,913 [DEBUG][       Thread-256883][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 13:44:17,914 [DEBUG][       Thread-256883][   transport.py][1871] : Switch to new keys ...
2025-06-13 13:44:17,914 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 13:44:17,915 [DEBUG][       Thread-256883][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 13:44:17,916 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 13:44:17,970 [DEBUG][       Thread-256883][   transport.py][1871] : userauth is OK
2025-06-13 13:44:17,970 [DEBUG][       Thread-256883][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 13:44:17,970 [DEBUG][       Thread-256883][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 13:44:17,970 [DEBUG][       Thread-256883][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 13:44:17,970 [DEBUG][       Thread-256883][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 13:44:17,996 [ INFO][       Thread-256883][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 13:44:17,997 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 13:44:17,997 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 13:44:19,004 [DEBUG][       Thread-256883][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 13:44:19,004 [DEBUG][       Thread-256883][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 13:44:19,052 [DEBUG][       Thread-256883][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 13:44:19,053 [DEBUG][       Thread-256883][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 13:44:19,062 [DEBUG][       Thread-256883][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 13:44:19,071 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 13:44:19,071 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 13:44:19,082 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 13:44:19,091 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 13:44:19,091 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 13:44:19,092 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 13:44:19,100 [DEBUG][       Thread-256883][   transport.py][1871] : EOF in transport thread
2025-06-13 13:44:20,221 [DEBUG][Thread-256885 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:44:29,100 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 13:44:29,100 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 13:44:29,100 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 13:44:29,101 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 13:44:29,256 [DEBUG][Thread-256886 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:44:29,575 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 13, 44, 11), 16.71, 31.29, 0.0, 17.93, 13.67, 0, 0, 0, 2, 0, 0),)
2025-06-13 13:44:29,575 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 13:44:11
2025-06-13 13:44:29,659 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 13:44:29,663 [DEBUG][       Thread-256887][   transport.py][1871] : starting thread (client mode): 0x863527d0
2025-06-13 13:44:29,663 [DEBUG][       Thread-256887][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 13:44:29,685 [DEBUG][       Thread-256887][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 13:44:29,685 [ INFO][       Thread-256887][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 13:44:29,688 [DEBUG][       Thread-256887][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 13:44:29,688 [DEBUG][       Thread-256887][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 13:44:29,688 [DEBUG][       Thread-256887][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 13:44:29,688 [DEBUG][       Thread-256887][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:44:29,688 [DEBUG][       Thread-256887][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:44:29,688 [DEBUG][       Thread-256887][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:44:29,688 [DEBUG][       Thread-256887][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:44:29,688 [DEBUG][       Thread-256887][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 13:44:29,688 [DEBUG][       Thread-256887][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 13:44:29,688 [DEBUG][       Thread-256887][   transport.py][1871] : client lang: <none>
2025-06-13 13:44:29,688 [DEBUG][       Thread-256887][   transport.py][1871] : server lang: <none>
2025-06-13 13:44:29,688 [DEBUG][       Thread-256887][   transport.py][1871] : kex follows: False
2025-06-13 13:44:29,688 [DEBUG][       Thread-256887][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 13:44:29,688 [DEBUG][       Thread-256887][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 13:44:29,688 [DEBUG][       Thread-256887][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 13:44:29,688 [DEBUG][       Thread-256887][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 13:44:29,688 [DEBUG][       Thread-256887][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 13:44:29,688 [DEBUG][       Thread-256887][   transport.py][1871] : Compression: none
2025-06-13 13:44:29,688 [DEBUG][       Thread-256887][   transport.py][1871] : === End of kex handshake ===
2025-06-13 13:44:29,704 [DEBUG][       Thread-256887][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 13:44:29,704 [DEBUG][       Thread-256887][   transport.py][1871] : Switch to new keys ...
2025-06-13 13:44:29,704 [DEBUG][       Thread-256887][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 13:44:29,704 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 13:44:29,704 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 13:44:29,705 [DEBUG][       Thread-256887][   transport.py][1871] : userauth is OK
2025-06-13 13:44:29,729 [ INFO][       Thread-256887][   transport.py][1871] : Authentication (password) successful!
2025-06-13 13:44:29,729 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 13:44:30,377 [DEBUG][       Thread-256887][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 13:44:30,377 [DEBUG][       Thread-256887][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 13:44:30,420 [DEBUG][       Thread-256887][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 13:44:30,420 [DEBUG][       Thread-256887][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 13:44:30,423 [DEBUG][       Thread-256887][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 13:44:30,436 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 13:44:30,436 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 13:44:30,437 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 13:44:30,438 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 13:44:30,441 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 13:44:30,442 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 13:44:30,442 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 13:44:30,442 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 13:44:30,442 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.488826 -999.00  +13.30  27.79     36   -1.10 1 1 1 1 1   888    0 17.78 109.32 ----- 22.9 27.8 42.4 29.0 17.5 -29.7 16.3 -31.1 16.4 -29.5 17.8 -27.1
2025-06-13 13:44:30,442 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 13:44:30,442 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 13:44:30,442 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.488826
2025-06-13 13:44:30,442 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 13:44:30,443 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 13:44:30,443 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 13:44:30,443 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 13:44:30,443 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 13:44:30,443 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T13:44:11', tmtdew=16.71, humidity=31.29, cloud=0.0, wind=17.93, temperature=13.67, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T11:43:54.566', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 13:44:30,443 [DEBUG][       Thread-256887][   transport.py][1871] : EOF in transport thread
2025-06-13 13:44:30,516 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 13:44:30,526 [DEBUG][       Thread-256890][   transport.py][1871] : starting thread (client mode): 0x868c8400
2025-06-13 13:44:30,526 [DEBUG][       Thread-256890][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 13:44:30,540 [DEBUG][       Thread-256890][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 13:44:30,540 [ INFO][       Thread-256890][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 13:44:30,548 [DEBUG][       Thread-256890][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 13:44:30,548 [DEBUG][       Thread-256890][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 13:44:30,548 [DEBUG][       Thread-256890][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 13:44:30,548 [DEBUG][       Thread-256890][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:44:30,548 [DEBUG][       Thread-256890][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:44:30,548 [DEBUG][       Thread-256890][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:44:30,548 [DEBUG][       Thread-256890][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:44:30,548 [DEBUG][       Thread-256890][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 13:44:30,548 [DEBUG][       Thread-256890][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 13:44:30,548 [DEBUG][       Thread-256890][   transport.py][1871] : client lang: <none>
2025-06-13 13:44:30,548 [DEBUG][       Thread-256890][   transport.py][1871] : server lang: <none>
2025-06-13 13:44:30,548 [DEBUG][       Thread-256890][   transport.py][1871] : kex follows: False
2025-06-13 13:44:30,548 [DEBUG][       Thread-256890][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 13:44:30,548 [DEBUG][       Thread-256890][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 13:44:30,548 [DEBUG][       Thread-256890][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 13:44:30,548 [DEBUG][       Thread-256890][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 13:44:30,548 [DEBUG][       Thread-256890][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 13:44:30,548 [DEBUG][       Thread-256890][   transport.py][1871] : Compression: none
2025-06-13 13:44:30,548 [DEBUG][       Thread-256890][   transport.py][1871] : === End of kex handshake ===
2025-06-13 13:44:30,604 [DEBUG][       Thread-256890][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 13:44:30,604 [DEBUG][       Thread-256890][   transport.py][1871] : Switch to new keys ...
2025-06-13 13:44:30,604 [DEBUG][       Thread-256890][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 13:44:30,604 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 13:44:30,604 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 13:44:30,661 [DEBUG][       Thread-256890][   transport.py][1871] : userauth is OK
2025-06-13 13:44:30,661 [DEBUG][       Thread-256890][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 13:44:30,661 [DEBUG][       Thread-256890][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 13:44:30,661 [DEBUG][       Thread-256890][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 13:44:30,661 [DEBUG][       Thread-256890][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 13:44:30,676 [ INFO][       Thread-256890][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 13:44:30,676 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 13:44:30,676 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 13:44:31,692 [DEBUG][       Thread-256890][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 13:44:31,693 [DEBUG][       Thread-256890][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 13:44:31,744 [DEBUG][       Thread-256890][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 13:44:31,744 [DEBUG][       Thread-256890][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 13:44:31,754 [DEBUG][       Thread-256890][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 13:44:31,763 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 13:44:31,764 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 13:44:31,772 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 13:44:31,782 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 13:44:31,783 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 13:44:31,783 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 13:44:31,791 [DEBUG][       Thread-256890][   transport.py][1871] : EOF in transport thread
2025-06-13 13:44:38,276 [DEBUG][Thread-256892 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:44:41,794 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 13:44:41,794 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 13:44:41,803 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 13:44:41,807 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 13:44:42,264 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 13, 44, 11), 16.71, 31.29, 0.0, 17.93, 13.67, 0, 0, 0, 2, 0, 0),)
2025-06-13 13:44:42,264 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 13:44:11
2025-06-13 13:44:42,344 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 13:44:42,348 [DEBUG][       Thread-256893][   transport.py][1871] : starting thread (client mode): 0x84207940
2025-06-13 13:44:42,349 [DEBUG][       Thread-256893][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 13:44:42,369 [DEBUG][       Thread-256893][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 13:44:42,369 [ INFO][       Thread-256893][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 13:44:42,372 [DEBUG][       Thread-256893][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 13:44:42,373 [DEBUG][       Thread-256893][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 13:44:42,373 [DEBUG][       Thread-256893][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 13:44:42,373 [DEBUG][       Thread-256893][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:44:42,373 [DEBUG][       Thread-256893][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:44:42,373 [DEBUG][       Thread-256893][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:44:42,373 [DEBUG][       Thread-256893][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:44:42,373 [DEBUG][       Thread-256893][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 13:44:42,373 [DEBUG][       Thread-256893][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 13:44:42,373 [DEBUG][       Thread-256893][   transport.py][1871] : client lang: <none>
2025-06-13 13:44:42,373 [DEBUG][       Thread-256893][   transport.py][1871] : server lang: <none>
2025-06-13 13:44:42,373 [DEBUG][       Thread-256893][   transport.py][1871] : kex follows: False
2025-06-13 13:44:42,373 [DEBUG][       Thread-256893][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 13:44:42,373 [DEBUG][       Thread-256893][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 13:44:42,373 [DEBUG][       Thread-256893][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 13:44:42,373 [DEBUG][       Thread-256893][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 13:44:42,373 [DEBUG][       Thread-256893][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 13:44:42,373 [DEBUG][       Thread-256893][   transport.py][1871] : Compression: none
2025-06-13 13:44:42,373 [DEBUG][       Thread-256893][   transport.py][1871] : === End of kex handshake ===
2025-06-13 13:44:42,391 [DEBUG][       Thread-256893][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 13:44:42,391 [DEBUG][       Thread-256893][   transport.py][1871] : Switch to new keys ...
2025-06-13 13:44:42,392 [DEBUG][       Thread-256893][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 13:44:42,392 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 13:44:42,392 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 13:44:42,393 [DEBUG][       Thread-256893][   transport.py][1871] : userauth is OK
2025-06-13 13:44:42,407 [ INFO][       Thread-256893][   transport.py][1871] : Authentication (password) successful!
2025-06-13 13:44:42,407 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 13:44:43,031 [DEBUG][       Thread-256893][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 13:44:43,031 [DEBUG][       Thread-256893][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 13:44:43,073 [DEBUG][       Thread-256893][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 13:44:43,073 [DEBUG][       Thread-256893][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 13:44:43,076 [DEBUG][       Thread-256893][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 13:44:43,088 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 13:44:43,089 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 13:44:43,091 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 13:44:43,093 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 13:44:43,098 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 13:44:43,100 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 13:44:43,100 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 13:44:43,101 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 13:44:43,101 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.488826 -999.00  +13.30  27.79     36   -1.10 1 1 1 1 1   888    0 17.78 109.32 ----- 22.9 27.8 42.4 29.0 17.5 -29.7 16.3 -31.1 16.4 -29.5 17.8 -27.1
2025-06-13 13:44:43,101 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 13:44:43,101 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 13:44:43,101 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.488826
2025-06-13 13:44:43,102 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 13:44:43,102 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 13:44:43,102 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 13:44:43,102 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 13:44:43,102 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 13:44:43,103 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T13:44:11', tmtdew=16.71, humidity=31.29, cloud=0.0, wind=17.93, temperature=13.67, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T11:43:54.566', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 13:44:43,104 [DEBUG][       Thread-256893][   transport.py][1871] : EOF in transport thread
2025-06-13 13:44:43,186 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 13:44:43,205 [DEBUG][       Thread-256896][   transport.py][1871] : starting thread (client mode): 0x8636b940
2025-06-13 13:44:43,205 [DEBUG][       Thread-256896][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 13:44:43,220 [DEBUG][       Thread-256896][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 13:44:43,221 [ INFO][       Thread-256896][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 13:44:43,228 [DEBUG][       Thread-256896][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 13:44:43,228 [DEBUG][       Thread-256896][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 13:44:43,229 [DEBUG][       Thread-256896][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 13:44:43,229 [DEBUG][       Thread-256896][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:44:43,229 [DEBUG][       Thread-256896][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:44:43,229 [DEBUG][       Thread-256896][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:44:43,229 [DEBUG][       Thread-256896][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:44:43,229 [DEBUG][       Thread-256896][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 13:44:43,229 [DEBUG][       Thread-256896][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 13:44:43,229 [DEBUG][       Thread-256896][   transport.py][1871] : client lang: <none>
2025-06-13 13:44:43,229 [DEBUG][       Thread-256896][   transport.py][1871] : server lang: <none>
2025-06-13 13:44:43,229 [DEBUG][       Thread-256896][   transport.py][1871] : kex follows: False
2025-06-13 13:44:43,229 [DEBUG][       Thread-256896][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 13:44:43,229 [DEBUG][       Thread-256896][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 13:44:43,229 [DEBUG][       Thread-256896][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 13:44:43,229 [DEBUG][       Thread-256896][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 13:44:43,229 [DEBUG][       Thread-256896][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 13:44:43,229 [DEBUG][       Thread-256896][   transport.py][1871] : Compression: none
2025-06-13 13:44:43,229 [DEBUG][       Thread-256896][   transport.py][1871] : === End of kex handshake ===
2025-06-13 13:44:43,285 [DEBUG][       Thread-256896][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 13:44:43,286 [DEBUG][       Thread-256896][   transport.py][1871] : Switch to new keys ...
2025-06-13 13:44:43,287 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 13:44:43,287 [DEBUG][       Thread-256896][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 13:44:43,288 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 13:44:43,342 [DEBUG][       Thread-256896][   transport.py][1871] : userauth is OK
2025-06-13 13:44:43,343 [DEBUG][       Thread-256896][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 13:44:43,343 [DEBUG][       Thread-256896][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 13:44:43,343 [DEBUG][       Thread-256896][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 13:44:43,343 [DEBUG][       Thread-256896][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 13:44:43,362 [ INFO][       Thread-256896][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 13:44:43,362 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 13:44:43,362 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 13:44:44,402 [DEBUG][       Thread-256896][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 13:44:44,402 [DEBUG][       Thread-256896][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 13:44:44,451 [DEBUG][       Thread-256896][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 13:44:44,451 [DEBUG][       Thread-256896][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 13:44:44,460 [DEBUG][       Thread-256896][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 13:44:44,467 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 13:44:44,467 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 13:44:44,475 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 13:44:44,483 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 13:44:44,483 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 13:44:44,483 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 13:44:44,491 [DEBUG][       Thread-256896][   transport.py][1871] : EOF in transport thread
2025-06-13 13:44:47,295 [DEBUG][Thread-256898 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:44:52,377 [DEBUG][Thread-256899 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:44:53,463 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:44:53,464 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:44:54,494 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 13:44:54,494 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 13:44:54,494 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 13:44:54,498 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 13:44:54,788 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:44:54,788 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:44:54,965 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 13, 44, 42), 16.66, 31.43, 0.0, 18.93, 13.69, 0, 0, 0, 2, 0, 0),)
2025-06-13 13:44:54,965 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 13:44:42
2025-06-13 13:44:55,047 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 13:44:55,051 [DEBUG][       Thread-256900][   transport.py][1871] : starting thread (client mode): 0x84207f40
2025-06-13 13:44:55,051 [DEBUG][       Thread-256900][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 13:44:55,072 [DEBUG][       Thread-256900][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 13:44:55,072 [ INFO][       Thread-256900][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 13:44:55,075 [DEBUG][       Thread-256900][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 13:44:55,076 [DEBUG][       Thread-256900][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 13:44:55,076 [DEBUG][       Thread-256900][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 13:44:55,076 [DEBUG][       Thread-256900][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:44:55,076 [DEBUG][       Thread-256900][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:44:55,076 [DEBUG][       Thread-256900][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:44:55,076 [DEBUG][       Thread-256900][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:44:55,076 [DEBUG][       Thread-256900][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 13:44:55,076 [DEBUG][       Thread-256900][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 13:44:55,076 [DEBUG][       Thread-256900][   transport.py][1871] : client lang: <none>
2025-06-13 13:44:55,076 [DEBUG][       Thread-256900][   transport.py][1871] : server lang: <none>
2025-06-13 13:44:55,076 [DEBUG][       Thread-256900][   transport.py][1871] : kex follows: False
2025-06-13 13:44:55,076 [DEBUG][       Thread-256900][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 13:44:55,076 [DEBUG][       Thread-256900][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 13:44:55,076 [DEBUG][       Thread-256900][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 13:44:55,076 [DEBUG][       Thread-256900][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 13:44:55,076 [DEBUG][       Thread-256900][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 13:44:55,076 [DEBUG][       Thread-256900][   transport.py][1871] : Compression: none
2025-06-13 13:44:55,076 [DEBUG][       Thread-256900][   transport.py][1871] : === End of kex handshake ===
2025-06-13 13:44:55,092 [DEBUG][       Thread-256900][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 13:44:55,093 [DEBUG][       Thread-256900][   transport.py][1871] : Switch to new keys ...
2025-06-13 13:44:55,093 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 13:44:55,093 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 13:44:55,094 [DEBUG][       Thread-256900][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 13:44:55,094 [DEBUG][       Thread-256900][   transport.py][1871] : userauth is OK
2025-06-13 13:44:55,107 [ INFO][       Thread-256900][   transport.py][1871] : Authentication (password) successful!
2025-06-13 13:44:55,108 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 13:44:55,753 [DEBUG][       Thread-256900][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 13:44:55,754 [DEBUG][       Thread-256900][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 13:44:55,797 [DEBUG][       Thread-256900][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 13:44:55,797 [DEBUG][       Thread-256900][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 13:44:55,801 [DEBUG][       Thread-256900][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 13:44:55,812 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 13:44:55,813 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 13:44:55,815 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 13:44:55,817 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 13:44:55,824 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 13:44:55,826 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 13:44:55,826 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 13:44:55,827 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 13:44:55,827 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.489173 -999.00  +13.40  27.40     36   -1.20 1 1 1 1 1   888    0 17.80 115.81 ----- 22.6 27.4 57.2 28.8 17.5 -29.8 16.3 -31.1 16.5 -30.5 17.8 -27.5
2025-06-13 13:44:55,827 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 13:44:55,827 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 13:44:55,827 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.489173
2025-06-13 13:44:55,828 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 13:44:55,828 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 13:44:55,828 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 13:44:55,828 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 13:44:55,829 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 13:44:55,829 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T13:44:42', tmtdew=16.66, humidity=31.43, cloud=0.0, wind=18.93, temperature=13.69, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T11:44:24.547', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 13:44:55,830 [DEBUG][       Thread-256900][   transport.py][1871] : EOF in transport thread
2025-06-13 13:44:55,913 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 13:44:55,922 [DEBUG][       Thread-256903][   transport.py][1871] : starting thread (client mode): 0x863a4cd0
2025-06-13 13:44:55,922 [DEBUG][       Thread-256903][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 13:44:55,938 [DEBUG][       Thread-256903][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 13:44:55,938 [ INFO][       Thread-256903][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 13:44:55,945 [DEBUG][       Thread-256903][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 13:44:55,946 [DEBUG][       Thread-256903][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 13:44:55,946 [DEBUG][       Thread-256903][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 13:44:55,946 [DEBUG][       Thread-256903][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:44:55,946 [DEBUG][       Thread-256903][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:44:55,946 [DEBUG][       Thread-256903][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:44:55,946 [DEBUG][       Thread-256903][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:44:55,946 [DEBUG][       Thread-256903][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 13:44:55,946 [DEBUG][       Thread-256903][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 13:44:55,946 [DEBUG][       Thread-256903][   transport.py][1871] : client lang: <none>
2025-06-13 13:44:55,946 [DEBUG][       Thread-256903][   transport.py][1871] : server lang: <none>
2025-06-13 13:44:55,946 [DEBUG][       Thread-256903][   transport.py][1871] : kex follows: False
2025-06-13 13:44:55,946 [DEBUG][       Thread-256903][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 13:44:55,946 [DEBUG][       Thread-256903][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 13:44:55,946 [DEBUG][       Thread-256903][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 13:44:55,946 [DEBUG][       Thread-256903][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 13:44:55,946 [DEBUG][       Thread-256903][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 13:44:55,946 [DEBUG][       Thread-256903][   transport.py][1871] : Compression: none
2025-06-13 13:44:55,946 [DEBUG][       Thread-256903][   transport.py][1871] : === End of kex handshake ===
2025-06-13 13:44:56,006 [DEBUG][       Thread-256903][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 13:44:56,006 [DEBUG][       Thread-256903][   transport.py][1871] : Switch to new keys ...
2025-06-13 13:44:56,007 [DEBUG][       Thread-256903][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 13:44:56,007 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 13:44:56,008 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 13:44:56,062 [DEBUG][       Thread-256903][   transport.py][1871] : userauth is OK
2025-06-13 13:44:56,062 [DEBUG][       Thread-256903][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 13:44:56,062 [DEBUG][       Thread-256903][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 13:44:56,062 [DEBUG][       Thread-256903][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 13:44:56,062 [DEBUG][       Thread-256903][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 13:44:56,081 [ INFO][       Thread-256903][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 13:44:56,081 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 13:44:56,082 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 13:44:56,315 [DEBUG][Thread-256905 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:44:57,093 [DEBUG][       Thread-256903][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 13:44:57,093 [DEBUG][       Thread-256903][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 13:44:57,144 [DEBUG][       Thread-256903][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 13:44:57,144 [DEBUG][       Thread-256903][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 13:44:57,153 [DEBUG][       Thread-256903][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 13:44:57,162 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 13:44:57,162 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 13:44:57,171 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 13:44:57,180 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 13:44:57,181 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 13:44:57,181 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 13:44:57,189 [DEBUG][       Thread-256903][   transport.py][1871] : EOF in transport thread
2025-06-13 13:45:05,349 [DEBUG][Thread-256906 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:45:07,188 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 13:45:07,188 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 13:45:07,188 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 13:45:07,189 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 13:45:07,671 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 13, 44, 42), 16.66, 31.43, 0.0, 18.93, 13.69, 0, 0, 0, 2, 0, 0),)
2025-06-13 13:45:07,671 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 13:44:42
2025-06-13 13:45:07,755 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 13:45:07,759 [DEBUG][       Thread-256907][   transport.py][1871] : starting thread (client mode): 0x84205d80
2025-06-13 13:45:07,759 [DEBUG][       Thread-256907][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 13:45:07,787 [DEBUG][       Thread-256907][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 13:45:07,787 [ INFO][       Thread-256907][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 13:45:07,791 [DEBUG][       Thread-256907][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 13:45:07,791 [DEBUG][       Thread-256907][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 13:45:07,791 [DEBUG][       Thread-256907][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 13:45:07,791 [DEBUG][       Thread-256907][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:45:07,791 [DEBUG][       Thread-256907][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:45:07,791 [DEBUG][       Thread-256907][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:45:07,791 [DEBUG][       Thread-256907][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:45:07,791 [DEBUG][       Thread-256907][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 13:45:07,791 [DEBUG][       Thread-256907][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 13:45:07,791 [DEBUG][       Thread-256907][   transport.py][1871] : client lang: <none>
2025-06-13 13:45:07,791 [DEBUG][       Thread-256907][   transport.py][1871] : server lang: <none>
2025-06-13 13:45:07,791 [DEBUG][       Thread-256907][   transport.py][1871] : kex follows: False
2025-06-13 13:45:07,791 [DEBUG][       Thread-256907][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 13:45:07,791 [DEBUG][       Thread-256907][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 13:45:07,791 [DEBUG][       Thread-256907][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 13:45:07,791 [DEBUG][       Thread-256907][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 13:45:07,791 [DEBUG][       Thread-256907][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 13:45:07,791 [DEBUG][       Thread-256907][   transport.py][1871] : Compression: none
2025-06-13 13:45:07,791 [DEBUG][       Thread-256907][   transport.py][1871] : === End of kex handshake ===
2025-06-13 13:45:07,805 [DEBUG][       Thread-256907][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 13:45:07,805 [DEBUG][       Thread-256907][   transport.py][1871] : Switch to new keys ...
2025-06-13 13:45:07,806 [DEBUG][       Thread-256907][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 13:45:07,806 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 13:45:07,806 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 13:45:07,810 [DEBUG][       Thread-256907][   transport.py][1871] : userauth is OK
2025-06-13 13:45:07,834 [ INFO][       Thread-256907][   transport.py][1871] : Authentication (password) successful!
2025-06-13 13:45:07,834 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 13:45:10,541 [DEBUG][       Thread-256907][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 13:45:10,542 [DEBUG][       Thread-256907][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 13:45:10,585 [DEBUG][       Thread-256907][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 13:45:10,585 [DEBUG][       Thread-256907][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 13:45:10,588 [DEBUG][       Thread-256907][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 13:45:10,602 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 13:45:10,602 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 13:45:10,604 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 13:45:10,606 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 13:45:10,612 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 13:45:10,614 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 13:45:10,614 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 13:45:10,615 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 13:45:10,615 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.489173 -999.00  +13.40  27.40     36   -1.20 1 1 1 1 1   888    0 17.80 115.81 ----- 22.6 27.4 57.2 28.8 17.5 -29.8 16.3 -31.1 16.5 -30.5 17.8 -27.5
2025-06-13 13:45:10,615 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 13:45:10,615 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 13:45:10,615 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.489173
2025-06-13 13:45:10,616 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 13:45:10,616 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 13:45:10,616 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 13:45:10,616 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 13:45:10,616 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 13:45:10,617 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T13:44:42', tmtdew=16.66, humidity=31.43, cloud=0.0, wind=18.93, temperature=13.69, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T11:44:24.547', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 13:45:10,618 [DEBUG][       Thread-256907][   transport.py][1871] : EOF in transport thread
2025-06-13 13:45:10,700 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 13:45:10,710 [DEBUG][       Thread-256910][   transport.py][1871] : starting thread (client mode): 0x863c8fd0
2025-06-13 13:45:10,710 [DEBUG][       Thread-256910][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 13:45:10,725 [DEBUG][       Thread-256910][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 13:45:10,725 [ INFO][       Thread-256910][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 13:45:10,733 [DEBUG][       Thread-256910][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 13:45:10,733 [DEBUG][       Thread-256910][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 13:45:10,733 [DEBUG][       Thread-256910][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 13:45:10,733 [DEBUG][       Thread-256910][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:45:10,733 [DEBUG][       Thread-256910][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:45:10,733 [DEBUG][       Thread-256910][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:45:10,733 [DEBUG][       Thread-256910][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:45:10,733 [DEBUG][       Thread-256910][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 13:45:10,733 [DEBUG][       Thread-256910][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 13:45:10,733 [DEBUG][       Thread-256910][   transport.py][1871] : client lang: <none>
2025-06-13 13:45:10,733 [DEBUG][       Thread-256910][   transport.py][1871] : server lang: <none>
2025-06-13 13:45:10,733 [DEBUG][       Thread-256910][   transport.py][1871] : kex follows: False
2025-06-13 13:45:10,733 [DEBUG][       Thread-256910][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 13:45:10,733 [DEBUG][       Thread-256910][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 13:45:10,733 [DEBUG][       Thread-256910][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 13:45:10,733 [DEBUG][       Thread-256910][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 13:45:10,734 [DEBUG][       Thread-256910][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 13:45:10,734 [DEBUG][       Thread-256910][   transport.py][1871] : Compression: none
2025-06-13 13:45:10,734 [DEBUG][       Thread-256910][   transport.py][1871] : === End of kex handshake ===
2025-06-13 13:45:10,791 [DEBUG][       Thread-256910][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 13:45:10,792 [DEBUG][       Thread-256910][   transport.py][1871] : Switch to new keys ...
2025-06-13 13:45:10,792 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 13:45:10,793 [DEBUG][       Thread-256910][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 13:45:10,794 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 13:45:10,850 [DEBUG][       Thread-256910][   transport.py][1871] : userauth is OK
2025-06-13 13:45:10,850 [DEBUG][       Thread-256910][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 13:45:10,850 [DEBUG][       Thread-256910][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 13:45:10,851 [DEBUG][       Thread-256910][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 13:45:10,851 [DEBUG][       Thread-256910][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 13:45:10,872 [ INFO][       Thread-256910][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 13:45:10,872 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 13:45:10,873 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 13:45:11,904 [DEBUG][       Thread-256910][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 13:45:11,905 [DEBUG][       Thread-256910][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 13:45:11,955 [DEBUG][       Thread-256910][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 13:45:11,955 [DEBUG][       Thread-256910][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 13:45:11,967 [DEBUG][       Thread-256910][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 13:45:11,975 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 13:45:11,975 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 13:45:11,983 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 13:45:11,991 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 13:45:11,991 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 13:45:11,992 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 13:45:12,000 [DEBUG][       Thread-256910][   transport.py][1871] : EOF in transport thread
2025-06-13 13:45:14,370 [DEBUG][Thread-256912 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:45:16,031 [DEBUG][Thread-256913 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:45:22,002 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 13:45:22,002 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 13:45:22,002 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 13:45:22,005 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 13:45:22,474 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 13, 45, 14), 16.55, 31.78, 0.0, 22.07, 13.66, 0, 0, 0, 2, 0, 0),)
2025-06-13 13:45:22,474 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 13:45:14
2025-06-13 13:45:22,555 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 13:45:22,559 [DEBUG][       Thread-256914][   transport.py][1871] : starting thread (client mode): 0x8636b2b0
2025-06-13 13:45:22,559 [DEBUG][       Thread-256914][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 13:45:22,579 [DEBUG][       Thread-256914][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 13:45:22,579 [ INFO][       Thread-256914][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 13:45:22,581 [DEBUG][       Thread-256914][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 13:45:22,581 [DEBUG][       Thread-256914][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 13:45:22,581 [DEBUG][       Thread-256914][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 13:45:22,581 [DEBUG][       Thread-256914][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:45:22,581 [DEBUG][       Thread-256914][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:45:22,581 [DEBUG][       Thread-256914][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:45:22,581 [DEBUG][       Thread-256914][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:45:22,581 [DEBUG][       Thread-256914][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 13:45:22,581 [DEBUG][       Thread-256914][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 13:45:22,581 [DEBUG][       Thread-256914][   transport.py][1871] : client lang: <none>
2025-06-13 13:45:22,581 [DEBUG][       Thread-256914][   transport.py][1871] : server lang: <none>
2025-06-13 13:45:22,581 [DEBUG][       Thread-256914][   transport.py][1871] : kex follows: False
2025-06-13 13:45:22,581 [DEBUG][       Thread-256914][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 13:45:22,581 [DEBUG][       Thread-256914][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 13:45:22,581 [DEBUG][       Thread-256914][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 13:45:22,581 [DEBUG][       Thread-256914][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 13:45:22,582 [DEBUG][       Thread-256914][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 13:45:22,582 [DEBUG][       Thread-256914][   transport.py][1871] : Compression: none
2025-06-13 13:45:22,582 [DEBUG][       Thread-256914][   transport.py][1871] : === End of kex handshake ===
2025-06-13 13:45:22,596 [DEBUG][       Thread-256914][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 13:45:22,596 [DEBUG][       Thread-256914][   transport.py][1871] : Switch to new keys ...
2025-06-13 13:45:22,597 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 13:45:22,597 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 13:45:22,598 [DEBUG][       Thread-256914][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 13:45:22,598 [DEBUG][       Thread-256914][   transport.py][1871] : userauth is OK
2025-06-13 13:45:22,611 [ INFO][       Thread-256914][   transport.py][1871] : Authentication (password) successful!
2025-06-13 13:45:22,611 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 13:45:23,229 [DEBUG][       Thread-256914][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 13:45:23,230 [DEBUG][       Thread-256914][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 13:45:23,273 [DEBUG][       Thread-256914][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 13:45:23,273 [DEBUG][       Thread-256914][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 13:45:23,276 [DEBUG][       Thread-256914][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 13:45:23,288 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 13:45:23,288 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 13:45:23,290 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 13:45:23,292 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 13:45:23,299 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 13:45:23,302 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 13:45:23,302 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 13:45:23,303 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 13:45:23,303 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.489520 -999.00  +13.60  22.74     37   -0.70 1 1 1 1 1   888    0 17.24 97.91 ----- 18.6 22.7 42.7 27.8 17.6 -30.1 16.4 -31.8 16.6 -29.1 17.8 -27.5
2025-06-13 13:45:23,303 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 13:45:23,303 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 13:45:23,303 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.489520
2025-06-13 13:45:23,303 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 13:45:23,304 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 13:45:23,304 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 13:45:23,304 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 13:45:23,304 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 13:45:23,304 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T13:45:14', tmtdew=16.55, humidity=31.78, cloud=0.0, wind=22.07, temperature=13.66, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T11:44:54.528', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 13:45:23,305 [DEBUG][       Thread-256914][   transport.py][1871] : EOF in transport thread
2025-06-13 13:45:23,381 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 13:45:23,393 [DEBUG][Thread-256917 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:45:23,393 [DEBUG][       Thread-256918][   transport.py][1871] : starting thread (client mode): 0x842057e0
2025-06-13 13:45:23,393 [DEBUG][       Thread-256918][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 13:45:23,408 [DEBUG][       Thread-256918][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 13:45:23,408 [ INFO][       Thread-256918][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 13:45:23,417 [DEBUG][       Thread-256918][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 13:45:23,417 [DEBUG][       Thread-256918][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 13:45:23,417 [DEBUG][       Thread-256918][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 13:45:23,417 [DEBUG][       Thread-256918][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:45:23,417 [DEBUG][       Thread-256918][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:45:23,417 [DEBUG][       Thread-256918][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:45:23,417 [DEBUG][       Thread-256918][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:45:23,417 [DEBUG][       Thread-256918][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 13:45:23,417 [DEBUG][       Thread-256918][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 13:45:23,417 [DEBUG][       Thread-256918][   transport.py][1871] : client lang: <none>
2025-06-13 13:45:23,417 [DEBUG][       Thread-256918][   transport.py][1871] : server lang: <none>
2025-06-13 13:45:23,417 [DEBUG][       Thread-256918][   transport.py][1871] : kex follows: False
2025-06-13 13:45:23,417 [DEBUG][       Thread-256918][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 13:45:23,417 [DEBUG][       Thread-256918][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 13:45:23,417 [DEBUG][       Thread-256918][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 13:45:23,417 [DEBUG][       Thread-256918][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 13:45:23,417 [DEBUG][       Thread-256918][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 13:45:23,417 [DEBUG][       Thread-256918][   transport.py][1871] : Compression: none
2025-06-13 13:45:23,417 [DEBUG][       Thread-256918][   transport.py][1871] : === End of kex handshake ===
2025-06-13 13:45:23,473 [DEBUG][       Thread-256918][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 13:45:23,474 [DEBUG][       Thread-256918][   transport.py][1871] : Switch to new keys ...
2025-06-13 13:45:23,474 [DEBUG][       Thread-256918][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 13:45:23,475 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 13:45:23,475 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 13:45:23,530 [DEBUG][       Thread-256918][   transport.py][1871] : userauth is OK
2025-06-13 13:45:23,530 [DEBUG][       Thread-256918][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 13:45:23,530 [DEBUG][       Thread-256918][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 13:45:23,530 [DEBUG][       Thread-256918][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 13:45:23,530 [DEBUG][       Thread-256918][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 13:45:23,549 [ INFO][       Thread-256918][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 13:45:23,549 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 13:45:23,550 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 13:45:24,547 [DEBUG][       Thread-256918][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 13:45:24,547 [DEBUG][       Thread-256918][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 13:45:24,596 [DEBUG][       Thread-256918][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 13:45:24,596 [DEBUG][       Thread-256918][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 13:45:24,605 [DEBUG][       Thread-256918][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 13:45:24,614 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 13:45:24,615 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 13:45:24,624 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 13:45:24,633 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 13:45:24,633 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 13:45:24,634 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 13:45:24,642 [DEBUG][       Thread-256918][   transport.py][1871] : EOF in transport thread
2025-06-13 13:45:32,420 [DEBUG][Thread-256920 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:45:34,642 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 13:45:34,643 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 13:45:34,651 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 13:45:34,654 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 13:45:35,113 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 13, 45, 14), 16.55, 31.78, 0.0, 22.07, 13.66, 0, 0, 0, 2, 0, 0),)
2025-06-13 13:45:35,113 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 13:45:14
2025-06-13 13:45:35,195 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 13:45:35,199 [DEBUG][       Thread-256921][   transport.py][1871] : starting thread (client mode): 0x863535e0
2025-06-13 13:45:35,199 [DEBUG][       Thread-256921][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 13:45:35,220 [DEBUG][       Thread-256921][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 13:45:35,220 [ INFO][       Thread-256921][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 13:45:35,223 [DEBUG][       Thread-256921][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 13:45:35,223 [DEBUG][       Thread-256921][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 13:45:35,223 [DEBUG][       Thread-256921][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 13:45:35,223 [DEBUG][       Thread-256921][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:45:35,223 [DEBUG][       Thread-256921][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:45:35,223 [DEBUG][       Thread-256921][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:45:35,223 [DEBUG][       Thread-256921][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:45:35,223 [DEBUG][       Thread-256921][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 13:45:35,223 [DEBUG][       Thread-256921][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 13:45:35,223 [DEBUG][       Thread-256921][   transport.py][1871] : client lang: <none>
2025-06-13 13:45:35,223 [DEBUG][       Thread-256921][   transport.py][1871] : server lang: <none>
2025-06-13 13:45:35,223 [DEBUG][       Thread-256921][   transport.py][1871] : kex follows: False
2025-06-13 13:45:35,223 [DEBUG][       Thread-256921][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 13:45:35,223 [DEBUG][       Thread-256921][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 13:45:35,223 [DEBUG][       Thread-256921][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 13:45:35,223 [DEBUG][       Thread-256921][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 13:45:35,223 [DEBUG][       Thread-256921][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 13:45:35,223 [DEBUG][       Thread-256921][   transport.py][1871] : Compression: none
2025-06-13 13:45:35,223 [DEBUG][       Thread-256921][   transport.py][1871] : === End of kex handshake ===
2025-06-13 13:45:35,239 [DEBUG][       Thread-256921][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 13:45:35,240 [DEBUG][       Thread-256921][   transport.py][1871] : Switch to new keys ...
2025-06-13 13:45:35,240 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 13:45:35,240 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 13:45:35,241 [DEBUG][       Thread-256921][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 13:45:35,241 [DEBUG][       Thread-256921][   transport.py][1871] : userauth is OK
2025-06-13 13:45:35,265 [ INFO][       Thread-256921][   transport.py][1871] : Authentication (password) successful!
2025-06-13 13:45:35,266 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 13:45:37,084 [DEBUG][       Thread-256921][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 13:45:37,085 [DEBUG][       Thread-256921][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 13:45:37,129 [DEBUG][       Thread-256921][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 13:45:37,129 [DEBUG][       Thread-256921][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 13:45:37,133 [DEBUG][       Thread-256921][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 13:45:37,138 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 13:45:37,138 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 13:45:37,141 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 13:45:37,143 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 13:45:37,149 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 13:45:37,151 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 13:45:37,151 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 13:45:37,152 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 13:45:37,152 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.489520 -999.00  +13.60  22.74     37   -0.70 1 1 1 1 1   888    0 17.24 97.91 ----- 18.6 22.7 42.7 27.8 17.6 -30.1 16.4 -31.8 16.6 -29.1 17.8 -27.5
2025-06-13 13:45:37,152 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 13:45:37,152 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 13:45:37,152 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.489520
2025-06-13 13:45:37,153 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 13:45:37,153 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 13:45:37,154 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 13:45:37,154 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 13:45:37,154 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 13:45:37,154 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T13:45:14', tmtdew=16.55, humidity=31.78, cloud=0.0, wind=22.07, temperature=13.66, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T11:44:54.528', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 13:45:37,155 [DEBUG][       Thread-256921][   transport.py][1871] : EOF in transport thread
2025-06-13 13:45:37,237 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 13:45:37,246 [DEBUG][       Thread-256924][   transport.py][1871] : starting thread (client mode): 0x863bc970
2025-06-13 13:45:37,246 [DEBUG][       Thread-256924][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 13:45:37,261 [DEBUG][       Thread-256924][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 13:45:37,262 [ INFO][       Thread-256924][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 13:45:37,269 [DEBUG][       Thread-256924][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 13:45:37,269 [DEBUG][       Thread-256924][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 13:45:37,269 [DEBUG][       Thread-256924][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 13:45:37,269 [DEBUG][       Thread-256924][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:45:37,269 [DEBUG][       Thread-256924][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:45:37,269 [DEBUG][       Thread-256924][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:45:37,269 [DEBUG][       Thread-256924][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:45:37,269 [DEBUG][       Thread-256924][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 13:45:37,269 [DEBUG][       Thread-256924][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 13:45:37,269 [DEBUG][       Thread-256924][   transport.py][1871] : client lang: <none>
2025-06-13 13:45:37,269 [DEBUG][       Thread-256924][   transport.py][1871] : server lang: <none>
2025-06-13 13:45:37,269 [DEBUG][       Thread-256924][   transport.py][1871] : kex follows: False
2025-06-13 13:45:37,269 [DEBUG][       Thread-256924][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 13:45:37,270 [DEBUG][       Thread-256924][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 13:45:37,270 [DEBUG][       Thread-256924][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 13:45:37,270 [DEBUG][       Thread-256924][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 13:45:37,270 [DEBUG][       Thread-256924][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 13:45:37,270 [DEBUG][       Thread-256924][   transport.py][1871] : Compression: none
2025-06-13 13:45:37,270 [DEBUG][       Thread-256924][   transport.py][1871] : === End of kex handshake ===
2025-06-13 13:45:37,329 [DEBUG][       Thread-256924][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 13:45:37,330 [DEBUG][       Thread-256924][   transport.py][1871] : Switch to new keys ...
2025-06-13 13:45:37,331 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 13:45:37,331 [DEBUG][       Thread-256924][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 13:45:37,332 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 13:45:37,386 [DEBUG][       Thread-256924][   transport.py][1871] : userauth is OK
2025-06-13 13:45:37,386 [DEBUG][       Thread-256924][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 13:45:37,387 [DEBUG][       Thread-256924][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 13:45:37,387 [DEBUG][       Thread-256924][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 13:45:37,387 [DEBUG][       Thread-256924][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 13:45:37,405 [ INFO][       Thread-256924][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 13:45:37,405 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 13:45:37,406 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 13:45:38,424 [DEBUG][       Thread-256924][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 13:45:38,424 [DEBUG][       Thread-256924][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 13:45:38,472 [DEBUG][       Thread-256924][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 13:45:38,472 [DEBUG][       Thread-256924][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 13:45:38,482 [DEBUG][       Thread-256924][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 13:45:38,491 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 13:45:38,491 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 13:45:38,500 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 13:45:38,509 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 13:45:38,510 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 13:45:38,510 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 13:45:38,518 [DEBUG][       Thread-256924][   transport.py][1871] : EOF in transport thread
2025-06-13 13:45:41,442 [DEBUG][Thread-256926 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:45:48,520 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 13:45:48,521 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 13:45:48,521 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 13:45:48,523 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 13:45:48,995 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 13, 45, 46), 16.61, 31.64, 0.0, 21.67, 13.62, 0, 0, 0, 2, 0, 0),)
2025-06-13 13:45:48,995 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 13:45:46
2025-06-13 13:45:49,077 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 13:45:49,081 [DEBUG][       Thread-256927][   transport.py][1871] : starting thread (client mode): 0x867fdd50
2025-06-13 13:45:49,081 [DEBUG][       Thread-256927][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 13:45:49,097 [DEBUG][       Thread-256927][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 13:45:49,097 [ INFO][       Thread-256927][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 13:45:49,099 [DEBUG][       Thread-256927][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 13:45:49,099 [DEBUG][       Thread-256927][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 13:45:49,099 [DEBUG][       Thread-256927][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 13:45:49,099 [DEBUG][       Thread-256927][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:45:49,099 [DEBUG][       Thread-256927][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:45:49,099 [DEBUG][       Thread-256927][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:45:49,099 [DEBUG][       Thread-256927][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:45:49,099 [DEBUG][       Thread-256927][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 13:45:49,099 [DEBUG][       Thread-256927][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 13:45:49,099 [DEBUG][       Thread-256927][   transport.py][1871] : client lang: <none>
2025-06-13 13:45:49,099 [DEBUG][       Thread-256927][   transport.py][1871] : server lang: <none>
2025-06-13 13:45:49,099 [DEBUG][       Thread-256927][   transport.py][1871] : kex follows: False
2025-06-13 13:45:49,099 [DEBUG][       Thread-256927][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 13:45:49,099 [DEBUG][       Thread-256927][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 13:45:49,100 [DEBUG][       Thread-256927][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 13:45:49,100 [DEBUG][       Thread-256927][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 13:45:49,100 [DEBUG][       Thread-256927][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 13:45:49,100 [DEBUG][       Thread-256927][   transport.py][1871] : Compression: none
2025-06-13 13:45:49,100 [DEBUG][       Thread-256927][   transport.py][1871] : === End of kex handshake ===
2025-06-13 13:45:49,108 [DEBUG][       Thread-256927][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 13:45:49,109 [DEBUG][       Thread-256927][   transport.py][1871] : Switch to new keys ...
2025-06-13 13:45:49,109 [DEBUG][       Thread-256927][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 13:45:49,109 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 13:45:49,109 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 13:45:49,110 [DEBUG][       Thread-256927][   transport.py][1871] : userauth is OK
2025-06-13 13:45:49,134 [ INFO][       Thread-256927][   transport.py][1871] : Authentication (password) successful!
2025-06-13 13:45:49,135 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 13:45:49,926 [DEBUG][       Thread-256927][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 13:45:49,927 [DEBUG][       Thread-256927][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 13:45:49,969 [DEBUG][       Thread-256927][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 13:45:49,969 [DEBUG][       Thread-256927][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 13:45:49,972 [DEBUG][       Thread-256927][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 13:45:49,986 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 13:45:49,986 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 13:45:49,988 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 13:45:49,990 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 13:45:49,996 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 13:45:49,998 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 13:45:49,998 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 13:45:49,999 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 13:45:49,999 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.489520 -999.00  +13.60  22.74     37   -0.70 1 1 1 1 1   888    0 17.24 97.91 ----- 18.6 22.7 42.7 27.8 17.6 -30.1 16.4 -31.8 16.6 -29.1 17.8 -27.5
2025-06-13 13:45:49,999 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 13:45:49,999 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 13:45:49,999 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.489520
2025-06-13 13:45:50,000 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 13:45:50,000 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 13:45:50,000 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 13:45:50,000 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 13:45:50,000 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 13:45:50,001 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T13:45:46', tmtdew=16.61, humidity=31.64, cloud=0.0, wind=21.67, temperature=13.62, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T11:44:54.528', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 13:45:50,002 [DEBUG][       Thread-256927][   transport.py][1871] : EOF in transport thread
2025-06-13 13:45:50,084 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 13:45:50,096 [DEBUG][       Thread-256930][   transport.py][1871] : starting thread (client mode): 0xc54b6c20
2025-06-13 13:45:50,096 [DEBUG][       Thread-256930][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 13:45:50,112 [DEBUG][       Thread-256930][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 13:45:50,112 [ INFO][       Thread-256930][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 13:45:50,126 [DEBUG][       Thread-256930][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 13:45:50,126 [DEBUG][       Thread-256930][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 13:45:50,126 [DEBUG][       Thread-256930][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 13:45:50,126 [DEBUG][       Thread-256930][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:45:50,126 [DEBUG][       Thread-256930][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:45:50,126 [DEBUG][       Thread-256930][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:45:50,126 [DEBUG][       Thread-256930][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:45:50,126 [DEBUG][       Thread-256930][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 13:45:50,126 [DEBUG][       Thread-256930][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 13:45:50,126 [DEBUG][       Thread-256930][   transport.py][1871] : client lang: <none>
2025-06-13 13:45:50,127 [DEBUG][       Thread-256930][   transport.py][1871] : server lang: <none>
2025-06-13 13:45:50,127 [DEBUG][       Thread-256930][   transport.py][1871] : kex follows: False
2025-06-13 13:45:50,127 [DEBUG][       Thread-256930][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 13:45:50,127 [DEBUG][       Thread-256930][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 13:45:50,127 [DEBUG][       Thread-256930][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 13:45:50,127 [DEBUG][       Thread-256930][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 13:45:50,127 [DEBUG][       Thread-256930][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 13:45:50,127 [DEBUG][       Thread-256930][   transport.py][1871] : Compression: none
2025-06-13 13:45:50,127 [DEBUG][       Thread-256930][   transport.py][1871] : === End of kex handshake ===
2025-06-13 13:45:50,181 [DEBUG][       Thread-256930][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 13:45:50,182 [DEBUG][       Thread-256930][   transport.py][1871] : Switch to new keys ...
2025-06-13 13:45:50,183 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 13:45:50,183 [DEBUG][       Thread-256930][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 13:45:50,184 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 13:45:50,238 [DEBUG][       Thread-256930][   transport.py][1871] : userauth is OK
2025-06-13 13:45:50,238 [DEBUG][       Thread-256930][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 13:45:50,238 [DEBUG][       Thread-256930][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 13:45:50,238 [DEBUG][       Thread-256930][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 13:45:50,238 [DEBUG][       Thread-256930][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 13:45:50,257 [ INFO][       Thread-256930][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 13:45:50,257 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 13:45:50,258 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 13:45:50,460 [DEBUG][Thread-256932 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:45:51,280 [DEBUG][       Thread-256930][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 13:45:51,281 [DEBUG][       Thread-256930][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 13:45:51,332 [DEBUG][       Thread-256930][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 13:45:51,333 [DEBUG][       Thread-256930][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 13:45:51,346 [DEBUG][       Thread-256930][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 13:45:51,358 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 13:45:51,358 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 13:45:51,371 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 13:45:51,379 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 13:45:51,379 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 13:45:51,379 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 13:45:51,387 [DEBUG][       Thread-256930][   transport.py][1871] : EOF in transport thread
2025-06-13 13:45:53,494 [DEBUG][Thread-256933 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:45:54,567 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:45:54,567 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:45:54,948 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:45:54,949 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:45:59,495 [DEBUG][Thread-256934 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:46:01,389 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 13:46:01,390 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 13:46:01,390 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 13:46:01,393 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 13:46:01,852 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 13, 45, 46), 16.61, 31.64, 0.0, 21.67, 13.62, 0, 0, 0, 2, 0, 0),)
2025-06-13 13:46:01,853 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 13:45:46
2025-06-13 13:46:01,934 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 13:46:01,938 [DEBUG][       Thread-256935][   transport.py][1871] : starting thread (client mode): 0x863506d0
2025-06-13 13:46:01,938 [DEBUG][       Thread-256935][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 13:46:01,954 [DEBUG][       Thread-256935][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 13:46:01,954 [ INFO][       Thread-256935][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 13:46:01,956 [DEBUG][       Thread-256935][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 13:46:01,956 [DEBUG][       Thread-256935][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 13:46:01,956 [DEBUG][       Thread-256935][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 13:46:01,956 [DEBUG][       Thread-256935][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:46:01,956 [DEBUG][       Thread-256935][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:46:01,956 [DEBUG][       Thread-256935][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:46:01,956 [DEBUG][       Thread-256935][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:46:01,956 [DEBUG][       Thread-256935][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 13:46:01,956 [DEBUG][       Thread-256935][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 13:46:01,956 [DEBUG][       Thread-256935][   transport.py][1871] : client lang: <none>
2025-06-13 13:46:01,956 [DEBUG][       Thread-256935][   transport.py][1871] : server lang: <none>
2025-06-13 13:46:01,956 [DEBUG][       Thread-256935][   transport.py][1871] : kex follows: False
2025-06-13 13:46:01,956 [DEBUG][       Thread-256935][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 13:46:01,956 [DEBUG][       Thread-256935][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 13:46:01,956 [DEBUG][       Thread-256935][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 13:46:01,956 [DEBUG][       Thread-256935][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 13:46:01,956 [DEBUG][       Thread-256935][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 13:46:01,956 [DEBUG][       Thread-256935][   transport.py][1871] : Compression: none
2025-06-13 13:46:01,956 [DEBUG][       Thread-256935][   transport.py][1871] : === End of kex handshake ===
2025-06-13 13:46:01,969 [DEBUG][       Thread-256935][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 13:46:01,970 [DEBUG][       Thread-256935][   transport.py][1871] : Switch to new keys ...
2025-06-13 13:46:01,970 [DEBUG][       Thread-256935][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 13:46:01,970 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 13:46:01,971 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 13:46:01,972 [DEBUG][       Thread-256935][   transport.py][1871] : userauth is OK
2025-06-13 13:46:01,996 [ INFO][       Thread-256935][   transport.py][1871] : Authentication (password) successful!
2025-06-13 13:46:01,997 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 13:46:02,613 [DEBUG][       Thread-256935][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 13:46:02,613 [DEBUG][       Thread-256935][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 13:46:02,657 [DEBUG][       Thread-256935][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 13:46:02,657 [DEBUG][       Thread-256935][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 13:46:02,661 [DEBUG][       Thread-256935][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 13:46:02,673 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 13:46:02,674 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 13:46:02,675 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 13:46:02,677 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 13:46:02,683 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 13:46:02,685 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 13:46:02,686 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 13:46:02,686 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 13:46:02,686 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.489867 -999.00  +13.60  19.40     36   -0.80 1 1 1 1 1   888    0 17.47 100.25 ----- 23.5 19.4 45.0 22.2 17.5 -30.2 16.4 -31.7 16.6 -29.1 17.9 -27.9
2025-06-13 13:46:02,686 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 13:46:02,687 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 13:46:02,687 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.489867
2025-06-13 13:46:02,687 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 13:46:02,688 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 13:46:02,688 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 13:46:02,688 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 13:46:02,688 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 13:46:02,688 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T13:45:46', tmtdew=16.61, humidity=31.64, cloud=0.0, wind=21.67, temperature=13.62, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T11:45:24.509', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 13:46:02,689 [DEBUG][       Thread-256935][   transport.py][1871] : EOF in transport thread
2025-06-13 13:46:02,771 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 13:46:02,781 [DEBUG][       Thread-256938][   transport.py][1871] : starting thread (client mode): 0x84205120
2025-06-13 13:46:02,781 [DEBUG][       Thread-256938][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 13:46:02,796 [DEBUG][       Thread-256938][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 13:46:02,796 [ INFO][       Thread-256938][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 13:46:02,803 [DEBUG][       Thread-256938][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 13:46:02,803 [DEBUG][       Thread-256938][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 13:46:02,803 [DEBUG][       Thread-256938][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 13:46:02,804 [DEBUG][       Thread-256938][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:46:02,804 [DEBUG][       Thread-256938][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:46:02,804 [DEBUG][       Thread-256938][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:46:02,804 [DEBUG][       Thread-256938][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:46:02,804 [DEBUG][       Thread-256938][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 13:46:02,804 [DEBUG][       Thread-256938][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 13:46:02,804 [DEBUG][       Thread-256938][   transport.py][1871] : client lang: <none>
2025-06-13 13:46:02,804 [DEBUG][       Thread-256938][   transport.py][1871] : server lang: <none>
2025-06-13 13:46:02,804 [DEBUG][       Thread-256938][   transport.py][1871] : kex follows: False
2025-06-13 13:46:02,804 [DEBUG][       Thread-256938][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 13:46:02,804 [DEBUG][       Thread-256938][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 13:46:02,804 [DEBUG][       Thread-256938][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 13:46:02,804 [DEBUG][       Thread-256938][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 13:46:02,804 [DEBUG][       Thread-256938][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 13:46:02,804 [DEBUG][       Thread-256938][   transport.py][1871] : Compression: none
2025-06-13 13:46:02,804 [DEBUG][       Thread-256938][   transport.py][1871] : === End of kex handshake ===
2025-06-13 13:46:02,864 [DEBUG][       Thread-256938][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 13:46:02,865 [DEBUG][       Thread-256938][   transport.py][1871] : Switch to new keys ...
2025-06-13 13:46:02,865 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 13:46:02,866 [DEBUG][       Thread-256938][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 13:46:02,867 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 13:46:02,926 [DEBUG][       Thread-256938][   transport.py][1871] : userauth is OK
2025-06-13 13:46:02,926 [DEBUG][       Thread-256938][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 13:46:02,926 [DEBUG][       Thread-256938][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 13:46:02,926 [DEBUG][       Thread-256938][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 13:46:02,926 [DEBUG][       Thread-256938][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 13:46:02,946 [ INFO][       Thread-256938][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 13:46:02,946 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 13:46:02,947 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 13:46:03,995 [DEBUG][       Thread-256938][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 13:46:03,995 [DEBUG][       Thread-256938][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 13:46:04,044 [DEBUG][       Thread-256938][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 13:46:04,044 [DEBUG][       Thread-256938][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 13:46:04,058 [DEBUG][       Thread-256938][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 13:46:04,067 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 13:46:04,067 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 13:46:04,077 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 13:46:04,087 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 13:46:04,087 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 13:46:04,088 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 13:46:04,096 [DEBUG][       Thread-256938][   transport.py][1871] : EOF in transport thread
2025-06-13 13:46:08,518 [DEBUG][Thread-256940 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:46:14,098 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 13:46:14,099 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 13:46:14,099 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 13:46:14,101 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 13:46:14,569 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 13, 45, 46), 16.61, 31.64, 0.0, 21.67, 13.62, 0, 0, 0, 2, 0, 0),)
2025-06-13 13:46:14,569 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 13:45:46
2025-06-13 13:46:14,649 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 13:46:14,654 [DEBUG][       Thread-256941][   transport.py][1871] : starting thread (client mode): 0x84204070
2025-06-13 13:46:14,654 [DEBUG][       Thread-256941][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 13:46:14,664 [DEBUG][       Thread-256941][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 13:46:14,664 [ INFO][       Thread-256941][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 13:46:14,665 [DEBUG][       Thread-256941][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 13:46:14,666 [DEBUG][       Thread-256941][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 13:46:14,666 [DEBUG][       Thread-256941][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 13:46:14,666 [DEBUG][       Thread-256941][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:46:14,666 [DEBUG][       Thread-256941][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:46:14,666 [DEBUG][       Thread-256941][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:46:14,666 [DEBUG][       Thread-256941][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:46:14,666 [DEBUG][       Thread-256941][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 13:46:14,666 [DEBUG][       Thread-256941][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 13:46:14,666 [DEBUG][       Thread-256941][   transport.py][1871] : client lang: <none>
2025-06-13 13:46:14,666 [DEBUG][       Thread-256941][   transport.py][1871] : server lang: <none>
2025-06-13 13:46:14,666 [DEBUG][       Thread-256941][   transport.py][1871] : kex follows: False
2025-06-13 13:46:14,666 [DEBUG][       Thread-256941][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 13:46:14,666 [DEBUG][       Thread-256941][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 13:46:14,666 [DEBUG][       Thread-256941][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 13:46:14,666 [DEBUG][       Thread-256941][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 13:46:14,666 [DEBUG][       Thread-256941][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 13:46:14,666 [DEBUG][       Thread-256941][   transport.py][1871] : Compression: none
2025-06-13 13:46:14,666 [DEBUG][       Thread-256941][   transport.py][1871] : === End of kex handshake ===
2025-06-13 13:46:14,677 [DEBUG][       Thread-256941][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 13:46:14,677 [DEBUG][       Thread-256941][   transport.py][1871] : Switch to new keys ...
2025-06-13 13:46:14,678 [DEBUG][       Thread-256941][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 13:46:14,678 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 13:46:14,678 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 13:46:14,678 [DEBUG][       Thread-256941][   transport.py][1871] : userauth is OK
2025-06-13 13:46:14,691 [ INFO][       Thread-256941][   transport.py][1871] : Authentication (password) successful!
2025-06-13 13:46:14,692 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 13:46:15,437 [DEBUG][       Thread-256941][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 13:46:15,437 [DEBUG][       Thread-256941][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 13:46:15,481 [DEBUG][       Thread-256941][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 13:46:15,481 [DEBUG][       Thread-256941][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 13:46:15,484 [DEBUG][       Thread-256941][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 13:46:15,498 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 13:46:15,498 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 13:46:15,500 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 13:46:15,502 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 13:46:15,508 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 13:46:15,510 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 13:46:15,510 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 13:46:15,511 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 13:46:15,511 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.489867 -999.00  +13.60  19.40     36   -0.80 1 1 1 1 1   888    0 17.47 100.25 ----- 23.5 19.4 45.0 22.2 17.5 -30.2 16.4 -31.7 16.6 -29.1 17.9 -27.9
2025-06-13 13:46:15,511 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 13:46:15,511 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 13:46:15,512 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.489867
2025-06-13 13:46:15,512 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 13:46:15,513 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 13:46:15,513 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 13:46:15,513 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 13:46:15,513 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 13:46:15,513 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T13:45:46', tmtdew=16.61, humidity=31.64, cloud=0.0, wind=21.67, temperature=13.62, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T11:45:24.509', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 13:46:15,514 [DEBUG][       Thread-256941][   transport.py][1871] : EOF in transport thread
2025-06-13 13:46:15,597 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 13:46:16,083 [DEBUG][Thread-256944 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:46:17,537 [DEBUG][Thread-256945 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:46:26,555 [DEBUG][Thread-256946 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:46:35,577 [DEBUG][Thread-256947 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:46:44,599 [DEBUG][Thread-256948 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:46:53,619 [DEBUG][Thread-256949 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:46:54,639 [DEBUG][Thread-256950 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:46:55,106 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:46:55,107 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:46:55,689 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:46:55,690 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:47:02,634 [DEBUG][Thread-256951 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:47:11,653 [DEBUG][Thread-256952 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:47:16,136 [DEBUG][Thread-256953 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:47:20,675 [DEBUG][Thread-256954 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:47:29,696 [DEBUG][Thread-256955 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:47:38,717 [DEBUG][Thread-256956 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:47:47,736 [DEBUG][Thread-256957 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:47:55,250 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:47:55,251 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:47:55,721 [DEBUG][Thread-256958 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:47:56,759 [DEBUG][Thread-256959 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:47:56,772 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:47:56,773 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:48:05,780 [DEBUG][Thread-256960 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:48:14,802 [DEBUG][Thread-256961 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:48:16,195 [DEBUG][Thread-256962 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:48:23,820 [DEBUG][Thread-256963 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:48:24,468 [WARNING][ poll_weather_worker][      driver.py][ 286] : Unable to open ssh connection for writing weather state to io.saao.ac.za: [Errno 110] Connection timed out
2025-06-13 13:48:32,841 [DEBUG][Thread-256964 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:48:34,475 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 13:48:34,475 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 13:48:34,484 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 13:48:34,486 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 13:48:34,975 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 13, 48, 24), 17.09, 30.57, 0.0, 16.87, 13.71, 0, 0, 0, 2, 0, 0),)
2025-06-13 13:48:34,975 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 13:48:24
2025-06-13 13:48:35,057 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 13:48:35,061 [DEBUG][       Thread-256965][   transport.py][1871] : starting thread (client mode): 0x84206a10
2025-06-13 13:48:35,061 [DEBUG][       Thread-256965][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 13:48:35,082 [DEBUG][       Thread-256965][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 13:48:35,082 [ INFO][       Thread-256965][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 13:48:35,085 [DEBUG][       Thread-256965][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 13:48:35,085 [DEBUG][       Thread-256965][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 13:48:35,085 [DEBUG][       Thread-256965][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 13:48:35,085 [DEBUG][       Thread-256965][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:48:35,085 [DEBUG][       Thread-256965][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:48:35,085 [DEBUG][       Thread-256965][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:48:35,085 [DEBUG][       Thread-256965][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:48:35,086 [DEBUG][       Thread-256965][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 13:48:35,086 [DEBUG][       Thread-256965][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 13:48:35,086 [DEBUG][       Thread-256965][   transport.py][1871] : client lang: <none>
2025-06-13 13:48:35,086 [DEBUG][       Thread-256965][   transport.py][1871] : server lang: <none>
2025-06-13 13:48:35,086 [DEBUG][       Thread-256965][   transport.py][1871] : kex follows: False
2025-06-13 13:48:35,086 [DEBUG][       Thread-256965][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 13:48:35,086 [DEBUG][       Thread-256965][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 13:48:35,086 [DEBUG][       Thread-256965][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 13:48:35,086 [DEBUG][       Thread-256965][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 13:48:35,086 [DEBUG][       Thread-256965][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 13:48:35,086 [DEBUG][       Thread-256965][   transport.py][1871] : Compression: none
2025-06-13 13:48:35,086 [DEBUG][       Thread-256965][   transport.py][1871] : === End of kex handshake ===
2025-06-13 13:48:35,105 [DEBUG][       Thread-256965][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 13:48:35,106 [DEBUG][       Thread-256965][   transport.py][1871] : Switch to new keys ...
2025-06-13 13:48:35,106 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 13:48:35,106 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 13:48:35,107 [DEBUG][       Thread-256965][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 13:48:35,108 [DEBUG][       Thread-256965][   transport.py][1871] : userauth is OK
2025-06-13 13:48:35,121 [ INFO][       Thread-256965][   transport.py][1871] : Authentication (password) successful!
2025-06-13 13:48:35,121 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 13:48:35,887 [DEBUG][       Thread-256965][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 13:48:35,887 [DEBUG][       Thread-256965][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 13:48:35,929 [DEBUG][       Thread-256965][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 13:48:35,929 [DEBUG][       Thread-256965][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 13:48:35,933 [DEBUG][       Thread-256965][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 13:48:35,945 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 13:48:35,945 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 13:48:35,947 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 13:48:35,949 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 13:48:35,954 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 13:48:35,956 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 13:48:35,957 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 13:48:35,957 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 13:48:35,957 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.491603 -999.00  +13.70  22.08     36   -0.60 1 1 1 1 1   888    0 15.94 56.76 ----- 21.0 22.1 39.4 27.1 17.7 -30.1 16.6 -31.4 16.8 -29.1 17.9 -28.0
2025-06-13 13:48:35,957 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 13:48:35,957 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 13:48:35,958 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.491603
2025-06-13 13:48:35,958 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 13:48:35,958 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 13:48:35,959 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 13:48:35,959 [DEBUG][       Thread-256965][   transport.py][1871] : EOF in transport thread
2025-06-13 13:48:35,959 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 13:48:35,959 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 13:48:35,960 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T13:48:24', tmtdew=17.09, humidity=30.57, cloud=0.0, wind=16.87, temperature=13.71, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T11:47:54.499', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 13:48:36,043 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 13:48:36,056 [DEBUG][       Thread-256968][   transport.py][1871] : starting thread (client mode): 0x8636a740
2025-06-13 13:48:36,056 [DEBUG][       Thread-256968][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 13:48:36,070 [DEBUG][       Thread-256968][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 13:48:36,070 [ INFO][       Thread-256968][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 13:48:36,078 [DEBUG][       Thread-256968][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 13:48:36,078 [DEBUG][       Thread-256968][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 13:48:36,078 [DEBUG][       Thread-256968][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 13:48:36,078 [DEBUG][       Thread-256968][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:48:36,079 [DEBUG][       Thread-256968][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:48:36,079 [DEBUG][       Thread-256968][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:48:36,079 [DEBUG][       Thread-256968][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:48:36,079 [DEBUG][       Thread-256968][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 13:48:36,079 [DEBUG][       Thread-256968][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 13:48:36,079 [DEBUG][       Thread-256968][   transport.py][1871] : client lang: <none>
2025-06-13 13:48:36,079 [DEBUG][       Thread-256968][   transport.py][1871] : server lang: <none>
2025-06-13 13:48:36,079 [DEBUG][       Thread-256968][   transport.py][1871] : kex follows: False
2025-06-13 13:48:36,079 [DEBUG][       Thread-256968][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 13:48:36,079 [DEBUG][       Thread-256968][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 13:48:36,079 [DEBUG][       Thread-256968][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 13:48:36,079 [DEBUG][       Thread-256968][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 13:48:36,079 [DEBUG][       Thread-256968][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 13:48:36,079 [DEBUG][       Thread-256968][   transport.py][1871] : Compression: none
2025-06-13 13:48:36,079 [DEBUG][       Thread-256968][   transport.py][1871] : === End of kex handshake ===
2025-06-13 13:48:36,138 [DEBUG][       Thread-256968][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 13:48:36,138 [DEBUG][       Thread-256968][   transport.py][1871] : Switch to new keys ...
2025-06-13 13:48:36,139 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 13:48:36,139 [DEBUG][       Thread-256968][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 13:48:36,140 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 13:48:36,197 [DEBUG][       Thread-256968][   transport.py][1871] : userauth is OK
2025-06-13 13:48:36,197 [DEBUG][       Thread-256968][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 13:48:36,197 [DEBUG][       Thread-256968][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 13:48:36,197 [DEBUG][       Thread-256968][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 13:48:36,197 [DEBUG][       Thread-256968][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 13:48:36,212 [ INFO][       Thread-256968][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 13:48:36,212 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 13:48:36,212 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 13:48:37,206 [DEBUG][       Thread-256968][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 13:48:37,207 [DEBUG][       Thread-256968][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 13:48:37,256 [DEBUG][       Thread-256968][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 13:48:37,256 [DEBUG][       Thread-256968][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 13:48:37,265 [DEBUG][       Thread-256968][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 13:48:37,274 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 13:48:37,275 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 13:48:37,284 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 13:48:37,293 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 13:48:37,294 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 13:48:37,294 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 13:48:37,302 [DEBUG][       Thread-256968][   transport.py][1871] : EOF in transport thread
2025-06-13 13:48:41,863 [DEBUG][Thread-256970 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:48:47,304 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 13:48:47,304 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 13:48:47,304 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 13:48:47,307 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 13:48:47,787 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 13, 48, 24), 17.09, 30.57, 0.0, 16.87, 13.71, 0, 0, 0, 2, 0, 0),)
2025-06-13 13:48:47,787 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 13:48:24
2025-06-13 13:48:47,867 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 13:48:47,871 [DEBUG][       Thread-256971][   transport.py][1871] : starting thread (client mode): 0x8636a0e0
2025-06-13 13:48:47,871 [DEBUG][       Thread-256971][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 13:48:47,892 [DEBUG][       Thread-256971][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 13:48:47,892 [ INFO][       Thread-256971][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 13:48:47,895 [DEBUG][       Thread-256971][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 13:48:47,895 [DEBUG][       Thread-256971][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 13:48:47,896 [DEBUG][       Thread-256971][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 13:48:47,896 [DEBUG][       Thread-256971][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:48:47,896 [DEBUG][       Thread-256971][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:48:47,896 [DEBUG][       Thread-256971][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:48:47,896 [DEBUG][       Thread-256971][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:48:47,896 [DEBUG][       Thread-256971][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 13:48:47,896 [DEBUG][       Thread-256971][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 13:48:47,896 [DEBUG][       Thread-256971][   transport.py][1871] : client lang: <none>
2025-06-13 13:48:47,896 [DEBUG][       Thread-256971][   transport.py][1871] : server lang: <none>
2025-06-13 13:48:47,896 [DEBUG][       Thread-256971][   transport.py][1871] : kex follows: False
2025-06-13 13:48:47,896 [DEBUG][       Thread-256971][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 13:48:47,896 [DEBUG][       Thread-256971][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 13:48:47,896 [DEBUG][       Thread-256971][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 13:48:47,896 [DEBUG][       Thread-256971][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 13:48:47,896 [DEBUG][       Thread-256971][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 13:48:47,896 [DEBUG][       Thread-256971][   transport.py][1871] : Compression: none
2025-06-13 13:48:47,896 [DEBUG][       Thread-256971][   transport.py][1871] : === End of kex handshake ===
2025-06-13 13:48:47,912 [DEBUG][       Thread-256971][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 13:48:47,912 [DEBUG][       Thread-256971][   transport.py][1871] : Switch to new keys ...
2025-06-13 13:48:47,913 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 13:48:47,913 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 13:48:47,913 [DEBUG][       Thread-256971][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 13:48:47,914 [DEBUG][       Thread-256971][   transport.py][1871] : userauth is OK
2025-06-13 13:48:47,939 [ INFO][       Thread-256971][   transport.py][1871] : Authentication (password) successful!
2025-06-13 13:48:47,939 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 13:48:48,528 [DEBUG][       Thread-256971][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 13:48:48,528 [DEBUG][       Thread-256971][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 13:48:48,569 [DEBUG][       Thread-256971][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 13:48:48,569 [DEBUG][       Thread-256971][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 13:48:48,572 [DEBUG][       Thread-256971][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 13:48:48,579 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 13:48:48,579 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 13:48:48,581 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 13:48:48,583 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 13:48:48,588 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 13:48:48,590 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 13:48:48,591 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 13:48:48,591 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 13:48:48,592 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.491951 -999.00  +13.80  22.31     34   -1.50 1 1 1 1 1   888    0 15.90 53.07 ----- 25.2 22.3 49.4 26.3 17.7 -30.5 16.5 -31.8 16.8 -31.1 18.1 -28.0
2025-06-13 13:48:48,592 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 13:48:48,592 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 13:48:48,592 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.491951
2025-06-13 13:48:48,593 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 13:48:48,593 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 13:48:48,593 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 13:48:48,593 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 13:48:48,594 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 13:48:48,594 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T13:48:24', tmtdew=17.09, humidity=30.57, cloud=0.0, wind=16.87, temperature=13.71, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T11:48:24.566', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 13:48:48,595 [DEBUG][       Thread-256971][   transport.py][1871] : EOF in transport thread
2025-06-13 13:48:48,671 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 13:48:48,680 [DEBUG][       Thread-256974][   transport.py][1871] : starting thread (client mode): 0x842078b0
2025-06-13 13:48:48,680 [DEBUG][       Thread-256974][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 13:48:48,701 [DEBUG][       Thread-256974][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 13:48:48,702 [ INFO][       Thread-256974][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 13:48:48,709 [DEBUG][       Thread-256974][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 13:48:48,709 [DEBUG][       Thread-256974][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 13:48:48,709 [DEBUG][       Thread-256974][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 13:48:48,709 [DEBUG][       Thread-256974][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:48:48,709 [DEBUG][       Thread-256974][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:48:48,709 [DEBUG][       Thread-256974][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:48:48,709 [DEBUG][       Thread-256974][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:48:48,709 [DEBUG][       Thread-256974][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 13:48:48,709 [DEBUG][       Thread-256974][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 13:48:48,709 [DEBUG][       Thread-256974][   transport.py][1871] : client lang: <none>
2025-06-13 13:48:48,709 [DEBUG][       Thread-256974][   transport.py][1871] : server lang: <none>
2025-06-13 13:48:48,709 [DEBUG][       Thread-256974][   transport.py][1871] : kex follows: False
2025-06-13 13:48:48,709 [DEBUG][       Thread-256974][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 13:48:48,709 [DEBUG][       Thread-256974][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 13:48:48,709 [DEBUG][       Thread-256974][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 13:48:48,709 [DEBUG][       Thread-256974][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 13:48:48,709 [DEBUG][       Thread-256974][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 13:48:48,709 [DEBUG][       Thread-256974][   transport.py][1871] : Compression: none
2025-06-13 13:48:48,709 [DEBUG][       Thread-256974][   transport.py][1871] : === End of kex handshake ===
2025-06-13 13:48:48,765 [DEBUG][       Thread-256974][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 13:48:48,765 [DEBUG][       Thread-256974][   transport.py][1871] : Switch to new keys ...
2025-06-13 13:48:48,765 [DEBUG][       Thread-256974][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 13:48:48,766 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 13:48:48,766 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 13:48:48,822 [DEBUG][       Thread-256974][   transport.py][1871] : userauth is OK
2025-06-13 13:48:48,822 [DEBUG][       Thread-256974][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 13:48:48,822 [DEBUG][       Thread-256974][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 13:48:48,822 [DEBUG][       Thread-256974][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 13:48:48,822 [DEBUG][       Thread-256974][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 13:48:48,846 [ INFO][       Thread-256974][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 13:48:48,846 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 13:48:48,847 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 13:48:49,884 [DEBUG][       Thread-256974][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 13:48:49,884 [DEBUG][       Thread-256974][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 13:48:49,932 [DEBUG][       Thread-256974][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 13:48:49,932 [DEBUG][       Thread-256974][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 13:48:49,941 [DEBUG][       Thread-256974][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 13:48:49,954 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 13:48:49,955 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 13:48:49,963 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 13:48:49,973 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 13:48:49,973 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 13:48:49,973 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 13:48:49,981 [DEBUG][       Thread-256974][   transport.py][1871] : EOF in transport thread
2025-06-13 13:48:50,902 [DEBUG][Thread-256976 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:48:55,390 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:48:55,391 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:48:56,857 [DEBUG][Thread-256977 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:48:57,913 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:48:57,913 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:48:59,926 [DEBUG][Thread-256978 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:48:59,984 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 13:48:59,984 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 13:48:59,984 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 13:48:59,985 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 13:49:00,479 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 13, 48, 56), 16.91, 30.95, 0.0, 20.45, 13.74, 0, 0, 0, 2, 0, 0),)
2025-06-13 13:49:00,479 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 13:48:56
2025-06-13 13:49:00,561 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 13:49:00,566 [DEBUG][       Thread-256979][   transport.py][1871] : starting thread (client mode): 0x863c8670
2025-06-13 13:49:00,566 [DEBUG][       Thread-256979][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 13:49:00,585 [DEBUG][       Thread-256979][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 13:49:00,585 [ INFO][       Thread-256979][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 13:49:00,588 [DEBUG][       Thread-256979][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 13:49:00,588 [DEBUG][       Thread-256979][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 13:49:00,588 [DEBUG][       Thread-256979][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 13:49:00,588 [DEBUG][       Thread-256979][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:49:00,588 [DEBUG][       Thread-256979][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:49:00,588 [DEBUG][       Thread-256979][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:49:00,588 [DEBUG][       Thread-256979][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:49:00,588 [DEBUG][       Thread-256979][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 13:49:00,588 [DEBUG][       Thread-256979][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 13:49:00,588 [DEBUG][       Thread-256979][   transport.py][1871] : client lang: <none>
2025-06-13 13:49:00,589 [DEBUG][       Thread-256979][   transport.py][1871] : server lang: <none>
2025-06-13 13:49:00,589 [DEBUG][       Thread-256979][   transport.py][1871] : kex follows: False
2025-06-13 13:49:00,589 [DEBUG][       Thread-256979][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 13:49:00,589 [DEBUG][       Thread-256979][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 13:49:00,589 [DEBUG][       Thread-256979][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 13:49:00,589 [DEBUG][       Thread-256979][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 13:49:00,589 [DEBUG][       Thread-256979][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 13:49:00,589 [DEBUG][       Thread-256979][   transport.py][1871] : Compression: none
2025-06-13 13:49:00,589 [DEBUG][       Thread-256979][   transport.py][1871] : === End of kex handshake ===
2025-06-13 13:49:00,605 [DEBUG][       Thread-256979][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 13:49:00,605 [DEBUG][       Thread-256979][   transport.py][1871] : Switch to new keys ...
2025-06-13 13:49:00,606 [DEBUG][       Thread-256979][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 13:49:00,606 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 13:49:00,606 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 13:49:00,607 [DEBUG][       Thread-256979][   transport.py][1871] : userauth is OK
2025-06-13 13:49:00,620 [ INFO][       Thread-256979][   transport.py][1871] : Authentication (password) successful!
2025-06-13 13:49:00,620 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 13:49:01,257 [DEBUG][       Thread-256979][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 13:49:01,258 [DEBUG][       Thread-256979][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 13:49:01,301 [DEBUG][       Thread-256979][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 13:49:01,301 [DEBUG][       Thread-256979][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 13:49:01,304 [DEBUG][       Thread-256979][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 13:49:01,315 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 13:49:01,316 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 13:49:01,317 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 13:49:01,319 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 13:49:01,323 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 13:49:01,325 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 13:49:01,325 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 13:49:01,326 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 13:49:01,326 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.491951 -999.00  +13.80  22.31     34   -1.50 1 1 1 1 1   888    0 15.90 53.07 ----- 25.2 22.3 49.4 26.3 17.7 -30.5 16.5 -31.8 16.8 -31.1 18.1 -28.0
2025-06-13 13:49:01,326 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 13:49:01,326 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 13:49:01,326 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.491951
2025-06-13 13:49:01,327 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 13:49:01,327 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 13:49:01,327 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 13:49:01,327 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 13:49:01,327 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 13:49:01,327 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T13:48:56', tmtdew=16.91, humidity=30.95, cloud=0.0, wind=20.45, temperature=13.74, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T11:48:24.566', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 13:49:01,329 [DEBUG][       Thread-256979][   transport.py][1871] : EOF in transport thread
2025-06-13 13:49:01,412 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 13:49:01,423 [DEBUG][       Thread-256982][   transport.py][1871] : starting thread (client mode): 0x863bcfa0
2025-06-13 13:49:01,423 [DEBUG][       Thread-256982][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 13:49:01,438 [DEBUG][       Thread-256982][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 13:49:01,438 [ INFO][       Thread-256982][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 13:49:01,445 [DEBUG][       Thread-256982][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 13:49:01,446 [DEBUG][       Thread-256982][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 13:49:01,446 [DEBUG][       Thread-256982][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 13:49:01,446 [DEBUG][       Thread-256982][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:49:01,446 [DEBUG][       Thread-256982][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:49:01,446 [DEBUG][       Thread-256982][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:49:01,446 [DEBUG][       Thread-256982][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:49:01,446 [DEBUG][       Thread-256982][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 13:49:01,446 [DEBUG][       Thread-256982][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 13:49:01,446 [DEBUG][       Thread-256982][   transport.py][1871] : client lang: <none>
2025-06-13 13:49:01,446 [DEBUG][       Thread-256982][   transport.py][1871] : server lang: <none>
2025-06-13 13:49:01,446 [DEBUG][       Thread-256982][   transport.py][1871] : kex follows: False
2025-06-13 13:49:01,446 [DEBUG][       Thread-256982][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 13:49:01,446 [DEBUG][       Thread-256982][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 13:49:01,446 [DEBUG][       Thread-256982][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 13:49:01,446 [DEBUG][       Thread-256982][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 13:49:01,446 [DEBUG][       Thread-256982][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 13:49:01,446 [DEBUG][       Thread-256982][   transport.py][1871] : Compression: none
2025-06-13 13:49:01,446 [DEBUG][       Thread-256982][   transport.py][1871] : === End of kex handshake ===
2025-06-13 13:49:01,505 [DEBUG][       Thread-256982][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 13:49:01,505 [DEBUG][       Thread-256982][   transport.py][1871] : Switch to new keys ...
2025-06-13 13:49:01,506 [DEBUG][       Thread-256982][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 13:49:01,506 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 13:49:01,507 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 13:49:01,562 [DEBUG][       Thread-256982][   transport.py][1871] : userauth is OK
2025-06-13 13:49:01,562 [DEBUG][       Thread-256982][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 13:49:01,562 [DEBUG][       Thread-256982][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 13:49:01,562 [DEBUG][       Thread-256982][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 13:49:01,562 [DEBUG][       Thread-256982][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 13:49:01,581 [ INFO][       Thread-256982][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 13:49:01,581 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 13:49:01,581 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 13:49:03,241 [DEBUG][       Thread-256982][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 13:49:03,241 [DEBUG][       Thread-256982][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 13:49:03,292 [DEBUG][       Thread-256982][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 13:49:03,292 [DEBUG][       Thread-256982][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 13:49:03,301 [DEBUG][       Thread-256982][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 13:49:03,310 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 13:49:03,310 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 13:49:03,319 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 13:49:03,327 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 13:49:03,328 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 13:49:03,328 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 13:49:03,336 [DEBUG][       Thread-256982][   transport.py][1871] : EOF in transport thread
2025-06-13 13:49:08,945 [DEBUG][Thread-256984 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:49:13,332 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 13:49:13,332 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 13:49:13,332 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 13:49:13,335 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 13:49:13,813 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 13, 48, 56), 16.91, 30.95, 0.0, 20.45, 13.74, 0, 0, 0, 2, 0, 0),)
2025-06-13 13:49:13,813 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 13:48:56
2025-06-13 13:49:13,893 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 13:49:13,899 [DEBUG][       Thread-256985][   transport.py][1871] : starting thread (client mode): 0x863bd6c0
2025-06-13 13:49:13,899 [DEBUG][       Thread-256985][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 13:49:13,920 [DEBUG][       Thread-256985][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 13:49:13,920 [ INFO][       Thread-256985][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 13:49:13,922 [DEBUG][       Thread-256985][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 13:49:13,922 [DEBUG][       Thread-256985][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 13:49:13,922 [DEBUG][       Thread-256985][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 13:49:13,922 [DEBUG][       Thread-256985][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:49:13,922 [DEBUG][       Thread-256985][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:49:13,922 [DEBUG][       Thread-256985][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:49:13,922 [DEBUG][       Thread-256985][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:49:13,922 [DEBUG][       Thread-256985][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 13:49:13,922 [DEBUG][       Thread-256985][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 13:49:13,922 [DEBUG][       Thread-256985][   transport.py][1871] : client lang: <none>
2025-06-13 13:49:13,923 [DEBUG][       Thread-256985][   transport.py][1871] : server lang: <none>
2025-06-13 13:49:13,923 [DEBUG][       Thread-256985][   transport.py][1871] : kex follows: False
2025-06-13 13:49:13,923 [DEBUG][       Thread-256985][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 13:49:13,923 [DEBUG][       Thread-256985][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 13:49:13,923 [DEBUG][       Thread-256985][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 13:49:13,923 [DEBUG][       Thread-256985][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 13:49:13,923 [DEBUG][       Thread-256985][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 13:49:13,923 [DEBUG][       Thread-256985][   transport.py][1871] : Compression: none
2025-06-13 13:49:13,923 [DEBUG][       Thread-256985][   transport.py][1871] : === End of kex handshake ===
2025-06-13 13:49:13,942 [DEBUG][       Thread-256985][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 13:49:13,942 [DEBUG][       Thread-256985][   transport.py][1871] : Switch to new keys ...
2025-06-13 13:49:13,943 [DEBUG][       Thread-256985][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 13:49:13,943 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 13:49:13,943 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 13:49:13,944 [DEBUG][       Thread-256985][   transport.py][1871] : userauth is OK
2025-06-13 13:49:13,969 [ INFO][       Thread-256985][   transport.py][1871] : Authentication (password) successful!
2025-06-13 13:49:13,969 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 13:49:14,518 [DEBUG][       Thread-256985][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 13:49:14,518 [DEBUG][       Thread-256985][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 13:49:14,561 [DEBUG][       Thread-256985][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 13:49:14,561 [DEBUG][       Thread-256985][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 13:49:14,564 [DEBUG][       Thread-256985][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 13:49:14,578 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 13:49:14,578 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 13:49:14,580 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 13:49:14,582 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 13:49:14,587 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 13:49:14,589 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 13:49:14,589 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 13:49:14,590 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 13:49:14,590 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.492298 -999.00  +13.60  24.02     34   -1.80 1 1 1 1 1   888    0 16.09 49.93 ----- 24.3 24.0 43.0 31.3 17.6 -30.0 16.6 -31.8 16.8 -30.5 18.0 -28.2
2025-06-13 13:49:14,590 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 13:49:14,590 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 13:49:14,590 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.492298
2025-06-13 13:49:14,591 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 13:49:14,592 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 13:49:14,592 [DEBUG][       Thread-256985][   transport.py][1871] : EOF in transport thread
2025-06-13 13:49:14,592 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 13:49:14,593 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 13:49:14,593 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 13:49:14,593 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T13:48:56', tmtdew=16.91, humidity=30.95, cloud=0.0, wind=20.45, temperature=13.74, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T11:48:54.547', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 13:49:14,680 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 13:49:14,692 [DEBUG][       Thread-256988][   transport.py][1871] : starting thread (client mode): 0x863a7670
2025-06-13 13:49:14,692 [DEBUG][       Thread-256988][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 13:49:14,711 [DEBUG][       Thread-256988][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 13:49:14,711 [ INFO][       Thread-256988][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 13:49:14,718 [DEBUG][       Thread-256988][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 13:49:14,718 [DEBUG][       Thread-256988][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 13:49:14,718 [DEBUG][       Thread-256988][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 13:49:14,718 [DEBUG][       Thread-256988][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:49:14,718 [DEBUG][       Thread-256988][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:49:14,719 [DEBUG][       Thread-256988][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:49:14,719 [DEBUG][       Thread-256988][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:49:14,719 [DEBUG][       Thread-256988][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 13:49:14,719 [DEBUG][       Thread-256988][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 13:49:14,719 [DEBUG][       Thread-256988][   transport.py][1871] : client lang: <none>
2025-06-13 13:49:14,719 [DEBUG][       Thread-256988][   transport.py][1871] : server lang: <none>
2025-06-13 13:49:14,719 [DEBUG][       Thread-256988][   transport.py][1871] : kex follows: False
2025-06-13 13:49:14,719 [DEBUG][       Thread-256988][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 13:49:14,719 [DEBUG][       Thread-256988][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 13:49:14,719 [DEBUG][       Thread-256988][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 13:49:14,719 [DEBUG][       Thread-256988][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 13:49:14,719 [DEBUG][       Thread-256988][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 13:49:14,719 [DEBUG][       Thread-256988][   transport.py][1871] : Compression: none
2025-06-13 13:49:14,719 [DEBUG][       Thread-256988][   transport.py][1871] : === End of kex handshake ===
2025-06-13 13:49:14,783 [DEBUG][       Thread-256988][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 13:49:14,783 [DEBUG][       Thread-256988][   transport.py][1871] : Switch to new keys ...
2025-06-13 13:49:14,784 [DEBUG][       Thread-256988][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 13:49:14,784 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 13:49:14,785 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 13:49:14,842 [DEBUG][       Thread-256988][   transport.py][1871] : userauth is OK
2025-06-13 13:49:14,842 [DEBUG][       Thread-256988][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 13:49:14,842 [DEBUG][       Thread-256988][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 13:49:14,842 [DEBUG][       Thread-256988][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 13:49:14,842 [DEBUG][       Thread-256988][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 13:49:14,861 [ INFO][       Thread-256988][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 13:49:14,862 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 13:49:14,862 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 13:49:15,869 [DEBUG][       Thread-256988][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 13:49:15,870 [DEBUG][       Thread-256988][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 13:49:15,929 [DEBUG][       Thread-256988][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 13:49:15,930 [DEBUG][       Thread-256988][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 13:49:15,941 [DEBUG][       Thread-256988][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 13:49:15,950 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 13:49:15,950 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 13:49:15,959 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 13:49:15,969 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 13:49:15,969 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 13:49:15,970 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 13:49:15,978 [DEBUG][       Thread-256988][   transport.py][1871] : EOF in transport thread
2025-06-13 13:49:16,247 [DEBUG][Thread-256990 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:49:17,989 [DEBUG][Thread-256991 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:49:25,980 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 13:49:25,981 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 13:49:25,981 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 13:49:25,984 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 13:49:26,454 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 13, 48, 56), 16.91, 30.95, 0.0, 20.45, 13.74, 0, 0, 0, 2, 0, 0),)
2025-06-13 13:49:26,455 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 13:48:56
2025-06-13 13:49:26,535 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 13:49:26,539 [DEBUG][       Thread-256992][   transport.py][1871] : starting thread (client mode): 0x84207190
2025-06-13 13:49:26,539 [DEBUG][       Thread-256992][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 13:49:26,560 [DEBUG][       Thread-256992][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 13:49:26,560 [ INFO][       Thread-256992][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 13:49:26,562 [DEBUG][       Thread-256992][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 13:49:26,562 [DEBUG][       Thread-256992][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 13:49:26,562 [DEBUG][       Thread-256992][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 13:49:26,562 [DEBUG][       Thread-256992][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:49:26,562 [DEBUG][       Thread-256992][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:49:26,562 [DEBUG][       Thread-256992][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:49:26,562 [DEBUG][       Thread-256992][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:49:26,562 [DEBUG][       Thread-256992][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 13:49:26,562 [DEBUG][       Thread-256992][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 13:49:26,562 [DEBUG][       Thread-256992][   transport.py][1871] : client lang: <none>
2025-06-13 13:49:26,562 [DEBUG][       Thread-256992][   transport.py][1871] : server lang: <none>
2025-06-13 13:49:26,562 [DEBUG][       Thread-256992][   transport.py][1871] : kex follows: False
2025-06-13 13:49:26,562 [DEBUG][       Thread-256992][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 13:49:26,562 [DEBUG][       Thread-256992][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 13:49:26,562 [DEBUG][       Thread-256992][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 13:49:26,562 [DEBUG][       Thread-256992][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 13:49:26,562 [DEBUG][       Thread-256992][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 13:49:26,562 [DEBUG][       Thread-256992][   transport.py][1871] : Compression: none
2025-06-13 13:49:26,562 [DEBUG][       Thread-256992][   transport.py][1871] : === End of kex handshake ===
2025-06-13 13:49:26,581 [DEBUG][       Thread-256992][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 13:49:26,581 [DEBUG][       Thread-256992][   transport.py][1871] : Switch to new keys ...
2025-06-13 13:49:26,582 [DEBUG][       Thread-256992][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 13:49:26,582 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 13:49:26,582 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 13:49:26,583 [DEBUG][       Thread-256992][   transport.py][1871] : userauth is OK
2025-06-13 13:49:26,608 [ INFO][       Thread-256992][   transport.py][1871] : Authentication (password) successful!
2025-06-13 13:49:26,609 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 13:49:27,010 [DEBUG][Thread-256994 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:49:27,190 [DEBUG][       Thread-256992][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 13:49:27,190 [DEBUG][       Thread-256992][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 13:49:27,233 [DEBUG][       Thread-256992][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 13:49:27,233 [DEBUG][       Thread-256992][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 13:49:27,237 [DEBUG][       Thread-256992][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 13:49:27,250 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 13:49:27,250 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 13:49:27,252 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 13:49:27,254 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 13:49:27,260 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 13:49:27,262 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 13:49:27,262 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 13:49:27,263 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 13:49:27,263 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.492298 -999.00  +13.60  24.02     34   -1.80 1 1 1 1 1   888    0 16.09 49.93 ----- 24.3 24.0 43.0 31.3 17.6 -30.0 16.6 -31.8 16.8 -30.5 18.0 -28.2
2025-06-13 13:49:27,263 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 13:49:27,263 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 13:49:27,263 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.492298
2025-06-13 13:49:27,264 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 13:49:27,264 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 13:49:27,265 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 13:49:27,265 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 13:49:27,265 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 13:49:27,265 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T13:48:56', tmtdew=16.91, humidity=30.95, cloud=0.0, wind=20.45, temperature=13.74, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T11:48:54.547', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 13:49:27,265 [DEBUG][       Thread-256992][   transport.py][1871] : EOF in transport thread
2025-06-13 13:49:27,349 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 13:49:27,358 [DEBUG][       Thread-256996][   transport.py][1871] : starting thread (client mode): 0x863bf610
2025-06-13 13:49:27,358 [DEBUG][       Thread-256996][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 13:49:27,373 [DEBUG][       Thread-256996][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 13:49:27,373 [ INFO][       Thread-256996][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 13:49:27,381 [DEBUG][       Thread-256996][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 13:49:27,381 [DEBUG][       Thread-256996][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 13:49:27,381 [DEBUG][       Thread-256996][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 13:49:27,381 [DEBUG][       Thread-256996][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:49:27,381 [DEBUG][       Thread-256996][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:49:27,381 [DEBUG][       Thread-256996][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:49:27,381 [DEBUG][       Thread-256996][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:49:27,381 [DEBUG][       Thread-256996][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 13:49:27,381 [DEBUG][       Thread-256996][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 13:49:27,381 [DEBUG][       Thread-256996][   transport.py][1871] : client lang: <none>
2025-06-13 13:49:27,381 [DEBUG][       Thread-256996][   transport.py][1871] : server lang: <none>
2025-06-13 13:49:27,381 [DEBUG][       Thread-256996][   transport.py][1871] : kex follows: False
2025-06-13 13:49:27,382 [DEBUG][       Thread-256996][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 13:49:27,382 [DEBUG][       Thread-256996][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 13:49:27,382 [DEBUG][       Thread-256996][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 13:49:27,382 [DEBUG][       Thread-256996][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 13:49:27,382 [DEBUG][       Thread-256996][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 13:49:27,382 [DEBUG][       Thread-256996][   transport.py][1871] : Compression: none
2025-06-13 13:49:27,382 [DEBUG][       Thread-256996][   transport.py][1871] : === End of kex handshake ===
2025-06-13 13:49:27,438 [DEBUG][       Thread-256996][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 13:49:27,439 [DEBUG][       Thread-256996][   transport.py][1871] : Switch to new keys ...
2025-06-13 13:49:27,439 [DEBUG][       Thread-256996][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 13:49:27,439 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 13:49:27,440 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 13:49:27,493 [DEBUG][       Thread-256996][   transport.py][1871] : userauth is OK
2025-06-13 13:49:27,494 [DEBUG][       Thread-256996][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 13:49:27,494 [DEBUG][       Thread-256996][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 13:49:27,494 [DEBUG][       Thread-256996][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 13:49:27,494 [DEBUG][       Thread-256996][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 13:49:27,513 [ INFO][       Thread-256996][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 13:49:27,513 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 13:49:27,514 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 13:49:28,518 [DEBUG][       Thread-256996][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 13:49:28,519 [DEBUG][       Thread-256996][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 13:49:28,572 [DEBUG][       Thread-256996][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 13:49:28,572 [DEBUG][       Thread-256996][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 13:49:28,587 [DEBUG][       Thread-256996][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 13:49:28,596 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 13:49:28,596 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 13:49:28,605 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 13:49:28,614 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 13:49:28,614 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 13:49:28,615 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 13:49:28,623 [DEBUG][       Thread-256996][   transport.py][1871] : EOF in transport thread
2025-06-13 13:49:36,028 [DEBUG][Thread-256998 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:49:38,625 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 13:49:38,625 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 13:49:38,625 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 13:49:38,626 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 13:49:39,095 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 13, 49, 28), 17.29, 30.11, 0.0, 18.17, 13.81, 0, 0, 0, 2, 0, 0),)
2025-06-13 13:49:39,095 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 13:49:28
2025-06-13 13:49:39,175 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 13:49:39,181 [DEBUG][       Thread-256999][   transport.py][1871] : starting thread (client mode): 0x86350d30
2025-06-13 13:49:39,181 [DEBUG][       Thread-256999][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 13:49:39,191 [DEBUG][       Thread-256999][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 13:49:39,192 [ INFO][       Thread-256999][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 13:49:39,193 [DEBUG][       Thread-256999][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 13:49:39,193 [DEBUG][       Thread-256999][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 13:49:39,193 [DEBUG][       Thread-256999][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 13:49:39,193 [DEBUG][       Thread-256999][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:49:39,193 [DEBUG][       Thread-256999][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:49:39,193 [DEBUG][       Thread-256999][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:49:39,193 [DEBUG][       Thread-256999][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:49:39,193 [DEBUG][       Thread-256999][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 13:49:39,193 [DEBUG][       Thread-256999][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 13:49:39,193 [DEBUG][       Thread-256999][   transport.py][1871] : client lang: <none>
2025-06-13 13:49:39,193 [DEBUG][       Thread-256999][   transport.py][1871] : server lang: <none>
2025-06-13 13:49:39,193 [DEBUG][       Thread-256999][   transport.py][1871] : kex follows: False
2025-06-13 13:49:39,193 [DEBUG][       Thread-256999][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 13:49:39,193 [DEBUG][       Thread-256999][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 13:49:39,193 [DEBUG][       Thread-256999][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 13:49:39,193 [DEBUG][       Thread-256999][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 13:49:39,193 [DEBUG][       Thread-256999][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 13:49:39,193 [DEBUG][       Thread-256999][   transport.py][1871] : Compression: none
2025-06-13 13:49:39,193 [DEBUG][       Thread-256999][   transport.py][1871] : === End of kex handshake ===
2025-06-13 13:49:39,202 [DEBUG][       Thread-256999][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 13:49:39,202 [DEBUG][       Thread-256999][   transport.py][1871] : Switch to new keys ...
2025-06-13 13:49:39,202 [DEBUG][       Thread-256999][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 13:49:39,202 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 13:49:39,203 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 13:49:39,203 [DEBUG][       Thread-256999][   transport.py][1871] : userauth is OK
2025-06-13 13:49:39,216 [ INFO][       Thread-256999][   transport.py][1871] : Authentication (password) successful!
2025-06-13 13:49:39,216 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 13:49:39,861 [DEBUG][       Thread-256999][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 13:49:39,861 [DEBUG][       Thread-256999][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 13:49:39,905 [DEBUG][       Thread-256999][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 13:49:39,905 [DEBUG][       Thread-256999][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 13:49:39,908 [DEBUG][       Thread-256999][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 13:49:39,920 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 13:49:39,921 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 13:49:39,932 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 13:49:39,933 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 13:49:39,939 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 13:49:39,940 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 13:49:39,941 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 13:49:39,941 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 13:49:39,942 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.492298 -999.00  +13.60  24.02     34   -1.80 1 1 1 1 1   888    0 16.09 49.93 ----- 24.3 24.0 43.0 31.3 17.6 -30.0 16.6 -31.8 16.8 -30.5 18.0 -28.2
2025-06-13 13:49:39,942 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 13:49:39,942 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 13:49:39,942 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.492298
2025-06-13 13:49:39,942 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 13:49:39,943 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 13:49:39,943 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 13:49:39,943 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 13:49:39,943 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 13:49:39,943 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T13:49:28', tmtdew=17.29, humidity=30.11, cloud=0.0, wind=18.17, temperature=13.81, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T11:48:54.547', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 13:49:39,944 [DEBUG][       Thread-256999][   transport.py][1871] : EOF in transport thread
2025-06-13 13:49:40,027 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 13:49:45,048 [DEBUG][Thread-257002 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:49:54,083 [DEBUG][Thread-257003 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:49:55,531 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:49:55,532 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:49:57,980 [DEBUG][Thread-257004 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:49:59,067 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:49:59,068 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:50:03,103 [DEBUG][Thread-257005 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:50:12,125 [DEBUG][Thread-257006 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:50:16,299 [DEBUG][Thread-257007 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:50:21,145 [DEBUG][Thread-257008 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:50:30,167 [DEBUG][Thread-257009 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:50:39,190 [DEBUG][Thread-257010 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:50:48,213 [DEBUG][Thread-257011 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:50:55,672 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:50:55,672 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:50:57,232 [DEBUG][Thread-257012 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:50:59,138 [DEBUG][Thread-257013 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:51:00,222 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:51:00,224 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:51:06,253 [DEBUG][Thread-257014 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:51:15,271 [DEBUG][Thread-257015 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:51:16,364 [DEBUG][Thread-257016 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:51:24,290 [DEBUG][Thread-257017 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:51:33,307 [DEBUG][Thread-257018 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:51:42,327 [DEBUG][Thread-257019 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:51:49,268 [WARNING][ poll_weather_worker][      driver.py][ 286] : Unable to open ssh connection for writing weather state to io.saao.ac.za: [Errno 110] Connection timed out
2025-06-13 13:51:51,350 [DEBUG][Thread-257020 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:51:55,809 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:51:55,811 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:51:59,279 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 13:51:59,279 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 13:51:59,279 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 13:51:59,282 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 13:51:59,765 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 13, 51, 35), 17.11, 30.37, 0.0, 20.94, 13.31, 0, 0, 0, 2, 0, 0),)
2025-06-13 13:51:59,765 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 13:51:35
2025-06-13 13:51:59,847 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 13:51:59,851 [DEBUG][       Thread-257021][   transport.py][1871] : starting thread (client mode): 0x86350880
2025-06-13 13:51:59,851 [DEBUG][       Thread-257021][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 13:51:59,868 [DEBUG][       Thread-257021][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 13:51:59,868 [ INFO][       Thread-257021][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 13:51:59,870 [DEBUG][       Thread-257021][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 13:51:59,870 [DEBUG][       Thread-257021][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 13:51:59,870 [DEBUG][       Thread-257021][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 13:51:59,870 [DEBUG][       Thread-257021][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:51:59,870 [DEBUG][       Thread-257021][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:51:59,870 [DEBUG][       Thread-257021][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:51:59,870 [DEBUG][       Thread-257021][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:51:59,870 [DEBUG][       Thread-257021][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 13:51:59,870 [DEBUG][       Thread-257021][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 13:51:59,870 [DEBUG][       Thread-257021][   transport.py][1871] : client lang: <none>
2025-06-13 13:51:59,870 [DEBUG][       Thread-257021][   transport.py][1871] : server lang: <none>
2025-06-13 13:51:59,870 [DEBUG][       Thread-257021][   transport.py][1871] : kex follows: False
2025-06-13 13:51:59,870 [DEBUG][       Thread-257021][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 13:51:59,870 [DEBUG][       Thread-257021][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 13:51:59,871 [DEBUG][       Thread-257021][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 13:51:59,871 [DEBUG][       Thread-257021][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 13:51:59,871 [DEBUG][       Thread-257021][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 13:51:59,871 [DEBUG][       Thread-257021][   transport.py][1871] : Compression: none
2025-06-13 13:51:59,871 [DEBUG][       Thread-257021][   transport.py][1871] : === End of kex handshake ===
2025-06-13 13:51:59,884 [DEBUG][       Thread-257021][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 13:51:59,884 [DEBUG][       Thread-257021][   transport.py][1871] : Switch to new keys ...
2025-06-13 13:51:59,885 [DEBUG][       Thread-257021][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 13:51:59,885 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 13:51:59,885 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 13:51:59,886 [DEBUG][       Thread-257021][   transport.py][1871] : userauth is OK
2025-06-13 13:51:59,900 [ INFO][       Thread-257021][   transport.py][1871] : Authentication (password) successful!
2025-06-13 13:51:59,900 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 13:52:00,277 [DEBUG][Thread-257023 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:52:00,376 [DEBUG][Thread-257024 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:52:00,509 [DEBUG][       Thread-257021][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 13:52:00,510 [DEBUG][       Thread-257021][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 13:52:00,553 [DEBUG][       Thread-257021][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 13:52:00,553 [DEBUG][       Thread-257021][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 13:52:00,556 [DEBUG][       Thread-257021][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 13:52:00,565 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 13:52:00,565 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 13:52:00,567 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 13:52:00,569 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 13:52:00,575 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 13:52:00,578 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 13:52:00,578 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 13:52:00,579 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 13:52:00,579 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.494381 -999.00  +13.40  25.14     34   -1.80 1 1 1 1 1   887    0 15.61 34.13 ----- 24.2 25.1 53.7 32.5 17.6 -30.7 16.4 -32.2 16.6 -30.8 18.0 -28.7
2025-06-13 13:52:00,579 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 13:52:00,579 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 13:52:00,579 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.494381
2025-06-13 13:52:00,579 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 13:52:00,580 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 13:52:00,580 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 13:52:00,580 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 13:52:00,580 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 13:52:00,580 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T13:51:35', tmtdew=17.11, humidity=30.37, cloud=0.0, wind=20.94, temperature=13.31, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T11:51:54.518', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 13:52:00,582 [DEBUG][       Thread-257021][   transport.py][1871] : EOF in transport thread
2025-06-13 13:52:00,665 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 13:52:01,355 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:52:01,357 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:52:09,395 [DEBUG][Thread-257026 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:52:16,418 [DEBUG][Thread-257027 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:52:18,420 [DEBUG][Thread-257028 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:52:27,440 [DEBUG][Thread-257029 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:52:36,460 [DEBUG][Thread-257030 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:52:45,480 [DEBUG][Thread-257031 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:52:54,497 [DEBUG][Thread-257032 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:52:55,948 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:52:55,949 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:53:01,433 [DEBUG][Thread-257033 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:53:02,516 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:53:02,517 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:53:03,519 [DEBUG][Thread-257034 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:53:12,540 [DEBUG][Thread-257035 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:53:16,468 [DEBUG][Thread-257036 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:53:21,560 [DEBUG][Thread-257037 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:53:30,584 [DEBUG][Thread-257038 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:53:39,607 [DEBUG][Thread-257039 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:53:48,627 [DEBUG][Thread-257040 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:53:56,088 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:53:56,089 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:53:57,650 [DEBUG][Thread-257041 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:54:02,585 [DEBUG][Thread-257042 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:54:03,679 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:54:03,681 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:54:06,668 [DEBUG][Thread-257043 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:54:10,580 [WARNING][ poll_weather_worker][      driver.py][ 286] : Unable to open ssh connection for writing weather state to io.saao.ac.za: [Errno 110] Connection timed out
2025-06-13 13:54:15,687 [DEBUG][Thread-257044 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:54:16,517 [DEBUG][Thread-257045 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:54:20,588 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 13:54:20,588 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 13:54:20,588 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 13:54:20,589 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 13:54:21,067 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 13, 54, 13), 17.21, 30.16, 0.0, 17.59, 13.52, 0, 0, 0, 2, 0, 0),)
2025-06-13 13:54:21,067 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 13:54:13
2025-06-13 13:54:21,149 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 13:54:21,153 [DEBUG][       Thread-257046][   transport.py][1871] : starting thread (client mode): 0x86353340
2025-06-13 13:54:21,153 [DEBUG][       Thread-257046][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 13:54:21,173 [DEBUG][       Thread-257046][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 13:54:21,174 [ INFO][       Thread-257046][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 13:54:21,177 [DEBUG][       Thread-257046][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 13:54:21,177 [DEBUG][       Thread-257046][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 13:54:21,177 [DEBUG][       Thread-257046][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 13:54:21,177 [DEBUG][       Thread-257046][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:54:21,177 [DEBUG][       Thread-257046][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:54:21,177 [DEBUG][       Thread-257046][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:54:21,177 [DEBUG][       Thread-257046][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:54:21,177 [DEBUG][       Thread-257046][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 13:54:21,177 [DEBUG][       Thread-257046][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 13:54:21,177 [DEBUG][       Thread-257046][   transport.py][1871] : client lang: <none>
2025-06-13 13:54:21,177 [DEBUG][       Thread-257046][   transport.py][1871] : server lang: <none>
2025-06-13 13:54:21,177 [DEBUG][       Thread-257046][   transport.py][1871] : kex follows: False
2025-06-13 13:54:21,177 [DEBUG][       Thread-257046][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 13:54:21,177 [DEBUG][       Thread-257046][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 13:54:21,177 [DEBUG][       Thread-257046][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 13:54:21,177 [DEBUG][       Thread-257046][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 13:54:21,177 [DEBUG][       Thread-257046][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 13:54:21,177 [DEBUG][       Thread-257046][   transport.py][1871] : Compression: none
2025-06-13 13:54:21,177 [DEBUG][       Thread-257046][   transport.py][1871] : === End of kex handshake ===
2025-06-13 13:54:21,194 [DEBUG][       Thread-257046][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 13:54:21,195 [DEBUG][       Thread-257046][   transport.py][1871] : Switch to new keys ...
2025-06-13 13:54:21,195 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 13:54:21,195 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 13:54:21,196 [DEBUG][       Thread-257046][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 13:54:21,196 [DEBUG][       Thread-257046][   transport.py][1871] : userauth is OK
2025-06-13 13:54:21,209 [ INFO][       Thread-257046][   transport.py][1871] : Authentication (password) successful!
2025-06-13 13:54:21,210 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 13:54:21,808 [DEBUG][       Thread-257046][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 13:54:21,808 [DEBUG][       Thread-257046][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 13:54:21,849 [DEBUG][       Thread-257046][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 13:54:21,849 [DEBUG][       Thread-257046][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 13:54:21,852 [DEBUG][       Thread-257046][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 13:54:21,865 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 13:54:21,866 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 13:54:21,868 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 13:54:21,870 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 13:54:21,876 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 13:54:21,878 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 13:54:21,878 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 13:54:21,879 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 13:54:21,879 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.495770 -999.00  +13.40  21.51     34   -2.00 1 1 1 1 1   887    0 15.33 23.20 ----- 17.8 21.5 20.6 29.1 17.6 -30.0 16.4 -31.7 16.8 -29.9 18.0 -28.5
2025-06-13 13:54:21,879 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 13:54:21,879 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 13:54:21,879 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.495770
2025-06-13 13:54:21,880 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 13:54:21,880 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 13:54:21,880 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 13:54:21,880 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 13:54:21,881 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 13:54:21,881 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T13:54:13', tmtdew=17.21, humidity=30.16, cloud=0.0, wind=17.59, temperature=13.52, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T11:53:54.528', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 13:54:21,882 [DEBUG][       Thread-257046][   transport.py][1871] : EOF in transport thread
2025-06-13 13:54:21,964 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 13:54:21,975 [DEBUG][       Thread-257049][   transport.py][1871] : starting thread (client mode): 0x867fe1a0
2025-06-13 13:54:21,975 [DEBUG][       Thread-257049][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 13:54:21,990 [DEBUG][       Thread-257049][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 13:54:21,990 [ INFO][       Thread-257049][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 13:54:21,998 [DEBUG][       Thread-257049][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 13:54:21,998 [DEBUG][       Thread-257049][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 13:54:21,998 [DEBUG][       Thread-257049][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 13:54:21,998 [DEBUG][       Thread-257049][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:54:21,998 [DEBUG][       Thread-257049][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:54:21,998 [DEBUG][       Thread-257049][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:54:21,999 [DEBUG][       Thread-257049][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:54:21,999 [DEBUG][       Thread-257049][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 13:54:21,999 [DEBUG][       Thread-257049][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 13:54:21,999 [DEBUG][       Thread-257049][   transport.py][1871] : client lang: <none>
2025-06-13 13:54:21,999 [DEBUG][       Thread-257049][   transport.py][1871] : server lang: <none>
2025-06-13 13:54:21,999 [DEBUG][       Thread-257049][   transport.py][1871] : kex follows: False
2025-06-13 13:54:21,999 [DEBUG][       Thread-257049][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 13:54:21,999 [DEBUG][       Thread-257049][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 13:54:21,999 [DEBUG][       Thread-257049][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 13:54:21,999 [DEBUG][       Thread-257049][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 13:54:21,999 [DEBUG][       Thread-257049][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 13:54:21,999 [DEBUG][       Thread-257049][   transport.py][1871] : Compression: none
2025-06-13 13:54:21,999 [DEBUG][       Thread-257049][   transport.py][1871] : === End of kex handshake ===
2025-06-13 13:54:22,058 [DEBUG][       Thread-257049][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 13:54:22,059 [DEBUG][       Thread-257049][   transport.py][1871] : Switch to new keys ...
2025-06-13 13:54:22,059 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 13:54:22,060 [DEBUG][       Thread-257049][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 13:54:22,061 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 13:54:22,117 [DEBUG][       Thread-257049][   transport.py][1871] : userauth is OK
2025-06-13 13:54:22,118 [DEBUG][       Thread-257049][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 13:54:22,118 [DEBUG][       Thread-257049][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 13:54:22,118 [DEBUG][       Thread-257049][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 13:54:22,118 [DEBUG][       Thread-257049][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 13:54:22,136 [ INFO][       Thread-257049][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 13:54:22,137 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 13:54:22,137 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 13:54:23,137 [DEBUG][       Thread-257049][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 13:54:23,137 [DEBUG][       Thread-257049][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 13:54:23,188 [DEBUG][       Thread-257049][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 13:54:23,188 [DEBUG][       Thread-257049][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 13:54:23,198 [DEBUG][       Thread-257049][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 13:54:23,207 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 13:54:23,207 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 13:54:23,216 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 13:54:23,225 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 13:54:23,226 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 13:54:23,226 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 13:54:23,234 [DEBUG][       Thread-257049][   transport.py][1871] : EOF in transport thread
2025-06-13 13:54:24,707 [DEBUG][Thread-257051 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:54:33,237 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 13:54:33,237 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 13:54:33,237 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 13:54:33,240 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 13:54:33,725 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 13, 54, 13), 17.21, 30.16, 0.0, 17.59, 13.52, 0, 0, 0, 2, 0, 0),)
2025-06-13 13:54:33,726 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 13:54:13
2025-06-13 13:54:33,735 [DEBUG][Thread-257052 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:54:33,808 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 13:54:33,812 [DEBUG][       Thread-257053][   transport.py][1871] : starting thread (client mode): 0x86352020
2025-06-13 13:54:33,812 [DEBUG][       Thread-257053][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 13:54:33,833 [DEBUG][       Thread-257053][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 13:54:33,833 [ INFO][       Thread-257053][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 13:54:33,837 [DEBUG][       Thread-257053][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 13:54:33,837 [DEBUG][       Thread-257053][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 13:54:33,837 [DEBUG][       Thread-257053][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 13:54:33,837 [DEBUG][       Thread-257053][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:54:33,837 [DEBUG][       Thread-257053][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:54:33,837 [DEBUG][       Thread-257053][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:54:33,837 [DEBUG][       Thread-257053][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:54:33,837 [DEBUG][       Thread-257053][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 13:54:33,837 [DEBUG][       Thread-257053][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 13:54:33,837 [DEBUG][       Thread-257053][   transport.py][1871] : client lang: <none>
2025-06-13 13:54:33,837 [DEBUG][       Thread-257053][   transport.py][1871] : server lang: <none>
2025-06-13 13:54:33,837 [DEBUG][       Thread-257053][   transport.py][1871] : kex follows: False
2025-06-13 13:54:33,837 [DEBUG][       Thread-257053][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 13:54:33,837 [DEBUG][       Thread-257053][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 13:54:33,837 [DEBUG][       Thread-257053][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 13:54:33,837 [DEBUG][       Thread-257053][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 13:54:33,837 [DEBUG][       Thread-257053][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 13:54:33,838 [DEBUG][       Thread-257053][   transport.py][1871] : Compression: none
2025-06-13 13:54:33,838 [DEBUG][       Thread-257053][   transport.py][1871] : === End of kex handshake ===
2025-06-13 13:54:33,856 [DEBUG][       Thread-257053][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 13:54:33,856 [DEBUG][       Thread-257053][   transport.py][1871] : Switch to new keys ...
2025-06-13 13:54:33,857 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 13:54:33,857 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 13:54:33,857 [DEBUG][       Thread-257053][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 13:54:33,858 [DEBUG][       Thread-257053][   transport.py][1871] : userauth is OK
2025-06-13 13:54:33,871 [ INFO][       Thread-257053][   transport.py][1871] : Authentication (password) successful!
2025-06-13 13:54:33,871 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 13:54:34,506 [DEBUG][       Thread-257053][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 13:54:34,506 [DEBUG][       Thread-257053][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 13:54:34,549 [DEBUG][       Thread-257053][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 13:54:34,549 [DEBUG][       Thread-257053][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 13:54:34,552 [DEBUG][       Thread-257053][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 13:54:34,563 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 13:54:34,564 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 13:54:34,565 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 13:54:34,567 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 13:54:34,573 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 13:54:34,575 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 13:54:34,576 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 13:54:34,576 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 13:54:34,577 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.495770 -999.00  +13.40  21.51     34   -2.00 1 1 1 1 1   887    0 15.33 23.20 ----- 17.8 21.5 20.6 29.1 17.6 -30.0 16.4 -31.7 16.8 -29.9 18.0 -28.5
2025-06-13 13:54:34,577 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 13:54:34,577 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 13:54:34,577 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.495770
2025-06-13 13:54:34,577 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 13:54:34,578 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 13:54:34,578 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 13:54:34,578 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 13:54:34,578 [DEBUG][       Thread-257053][   transport.py][1871] : EOF in transport thread
2025-06-13 13:54:34,578 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 13:54:34,579 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T13:54:13', tmtdew=17.21, humidity=30.16, cloud=0.0, wind=17.59, temperature=13.52, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T11:53:54.528', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 13:54:34,662 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 13:54:34,674 [DEBUG][       Thread-257056][   transport.py][1871] : starting thread (client mode): 0x863a7f10
2025-06-13 13:54:34,674 [DEBUG][       Thread-257056][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 13:54:34,690 [DEBUG][       Thread-257056][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 13:54:34,690 [ INFO][       Thread-257056][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 13:54:34,698 [DEBUG][       Thread-257056][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 13:54:34,698 [DEBUG][       Thread-257056][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 13:54:34,698 [DEBUG][       Thread-257056][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 13:54:34,698 [DEBUG][       Thread-257056][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:54:34,698 [DEBUG][       Thread-257056][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:54:34,698 [DEBUG][       Thread-257056][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:54:34,698 [DEBUG][       Thread-257056][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:54:34,698 [DEBUG][       Thread-257056][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 13:54:34,698 [DEBUG][       Thread-257056][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 13:54:34,698 [DEBUG][       Thread-257056][   transport.py][1871] : client lang: <none>
2025-06-13 13:54:34,698 [DEBUG][       Thread-257056][   transport.py][1871] : server lang: <none>
2025-06-13 13:54:34,698 [DEBUG][       Thread-257056][   transport.py][1871] : kex follows: False
2025-06-13 13:54:34,698 [DEBUG][       Thread-257056][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 13:54:34,698 [DEBUG][       Thread-257056][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 13:54:34,698 [DEBUG][       Thread-257056][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 13:54:34,699 [DEBUG][       Thread-257056][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 13:54:34,699 [DEBUG][       Thread-257056][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 13:54:34,699 [DEBUG][       Thread-257056][   transport.py][1871] : Compression: none
2025-06-13 13:54:34,699 [DEBUG][       Thread-257056][   transport.py][1871] : === End of kex handshake ===
2025-06-13 13:54:34,757 [DEBUG][       Thread-257056][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 13:54:34,758 [DEBUG][       Thread-257056][   transport.py][1871] : Switch to new keys ...
2025-06-13 13:54:34,759 [DEBUG][       Thread-257056][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 13:54:34,759 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 13:54:34,760 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 13:54:34,813 [DEBUG][       Thread-257056][   transport.py][1871] : userauth is OK
2025-06-13 13:54:34,814 [DEBUG][       Thread-257056][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 13:54:34,814 [DEBUG][       Thread-257056][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 13:54:34,814 [DEBUG][       Thread-257056][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 13:54:34,814 [DEBUG][       Thread-257056][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 13:54:34,833 [ INFO][       Thread-257056][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 13:54:34,833 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 13:54:34,833 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 13:54:35,842 [DEBUG][       Thread-257056][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 13:54:35,842 [DEBUG][       Thread-257056][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 13:54:35,893 [DEBUG][       Thread-257056][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 13:54:35,893 [DEBUG][       Thread-257056][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 13:54:35,902 [DEBUG][       Thread-257056][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 13:54:35,912 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 13:54:35,912 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 13:54:35,921 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 13:54:35,930 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 13:54:35,930 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 13:54:35,931 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 13:54:35,939 [DEBUG][       Thread-257056][   transport.py][1871] : EOF in transport thread
2025-06-13 13:54:42,758 [DEBUG][Thread-257058 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:54:45,940 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 13:54:45,940 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 13:54:45,940 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 13:54:45,941 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 13:54:46,461 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 13, 54, 13), 17.21, 30.16, 0.0, 17.59, 13.52, 0, 0, 0, 2, 0, 0),)
2025-06-13 13:54:46,461 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 13:54:13
2025-06-13 13:54:46,551 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 13:54:46,555 [DEBUG][       Thread-257059][   transport.py][1871] : starting thread (client mode): 0x84205030
2025-06-13 13:54:46,555 [DEBUG][       Thread-257059][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 13:54:46,568 [DEBUG][       Thread-257059][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 13:54:46,568 [ INFO][       Thread-257059][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 13:54:46,569 [DEBUG][       Thread-257059][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 13:54:46,569 [DEBUG][       Thread-257059][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 13:54:46,569 [DEBUG][       Thread-257059][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 13:54:46,569 [DEBUG][       Thread-257059][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:54:46,569 [DEBUG][       Thread-257059][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:54:46,569 [DEBUG][       Thread-257059][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:54:46,569 [DEBUG][       Thread-257059][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:54:46,569 [DEBUG][       Thread-257059][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 13:54:46,569 [DEBUG][       Thread-257059][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 13:54:46,569 [DEBUG][       Thread-257059][   transport.py][1871] : client lang: <none>
2025-06-13 13:54:46,569 [DEBUG][       Thread-257059][   transport.py][1871] : server lang: <none>
2025-06-13 13:54:46,569 [DEBUG][       Thread-257059][   transport.py][1871] : kex follows: False
2025-06-13 13:54:46,569 [DEBUG][       Thread-257059][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 13:54:46,569 [DEBUG][       Thread-257059][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 13:54:46,569 [DEBUG][       Thread-257059][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 13:54:46,569 [DEBUG][       Thread-257059][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 13:54:46,569 [DEBUG][       Thread-257059][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 13:54:46,569 [DEBUG][       Thread-257059][   transport.py][1871] : Compression: none
2025-06-13 13:54:46,569 [DEBUG][       Thread-257059][   transport.py][1871] : === End of kex handshake ===
2025-06-13 13:54:46,582 [DEBUG][       Thread-257059][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 13:54:46,582 [DEBUG][       Thread-257059][   transport.py][1871] : Switch to new keys ...
2025-06-13 13:54:46,582 [DEBUG][       Thread-257059][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 13:54:46,582 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 13:54:46,582 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 13:54:46,583 [DEBUG][       Thread-257059][   transport.py][1871] : userauth is OK
2025-06-13 13:54:46,595 [ INFO][       Thread-257059][   transport.py][1871] : Authentication (password) successful!
2025-06-13 13:54:46,595 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 13:54:47,163 [DEBUG][       Thread-257059][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 13:54:47,164 [DEBUG][       Thread-257059][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 13:54:47,204 [DEBUG][       Thread-257059][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 13:54:47,205 [DEBUG][       Thread-257059][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 13:54:47,206 [DEBUG][       Thread-257059][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 13:54:47,217 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 13:54:47,217 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 13:54:47,218 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 13:54:47,219 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 13:54:47,221 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 13:54:47,222 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 13:54:47,222 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 13:54:47,222 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 13:54:47,222 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.496117 -999.00  +13.60  15.77     35   -1.40 1 1 1 1 1   887    0 15.35 18.00 ----- 14.5 15.8 24.2 20.6 17.7 -29.9 16.5 -31.0 16.9 -29.0 17.9 -27.7
2025-06-13 13:54:47,222 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 13:54:47,222 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 13:54:47,222 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.496117
2025-06-13 13:54:47,222 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 13:54:47,222 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 13:54:47,222 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 13:54:47,222 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 13:54:47,222 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 13:54:47,222 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T13:54:13', tmtdew=17.21, humidity=30.16, cloud=0.0, wind=17.59, temperature=13.52, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T11:54:24.509', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 13:54:47,223 [DEBUG][       Thread-257059][   transport.py][1871] : EOF in transport thread
2025-06-13 13:54:47,297 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 13:54:47,308 [DEBUG][       Thread-257062][   transport.py][1871] : starting thread (client mode): 0x8636a350
2025-06-13 13:54:47,308 [DEBUG][       Thread-257062][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 13:54:47,324 [DEBUG][       Thread-257062][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 13:54:47,324 [ INFO][       Thread-257062][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 13:54:47,331 [DEBUG][       Thread-257062][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 13:54:47,331 [DEBUG][       Thread-257062][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 13:54:47,331 [DEBUG][       Thread-257062][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 13:54:47,331 [DEBUG][       Thread-257062][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:54:47,331 [DEBUG][       Thread-257062][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:54:47,331 [DEBUG][       Thread-257062][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:54:47,331 [DEBUG][       Thread-257062][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:54:47,331 [DEBUG][       Thread-257062][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 13:54:47,331 [DEBUG][       Thread-257062][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 13:54:47,331 [DEBUG][       Thread-257062][   transport.py][1871] : client lang: <none>
2025-06-13 13:54:47,331 [DEBUG][       Thread-257062][   transport.py][1871] : server lang: <none>
2025-06-13 13:54:47,331 [DEBUG][       Thread-257062][   transport.py][1871] : kex follows: False
2025-06-13 13:54:47,331 [DEBUG][       Thread-257062][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 13:54:47,331 [DEBUG][       Thread-257062][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 13:54:47,331 [DEBUG][       Thread-257062][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 13:54:47,331 [DEBUG][       Thread-257062][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 13:54:47,331 [DEBUG][       Thread-257062][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 13:54:47,331 [DEBUG][       Thread-257062][   transport.py][1871] : Compression: none
2025-06-13 13:54:47,331 [DEBUG][       Thread-257062][   transport.py][1871] : === End of kex handshake ===
2025-06-13 13:54:47,392 [DEBUG][       Thread-257062][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 13:54:47,392 [DEBUG][       Thread-257062][   transport.py][1871] : Switch to new keys ...
2025-06-13 13:54:47,393 [DEBUG][       Thread-257062][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 13:54:47,393 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 13:54:47,393 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 13:54:47,453 [DEBUG][       Thread-257062][   transport.py][1871] : userauth is OK
2025-06-13 13:54:47,453 [DEBUG][       Thread-257062][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 13:54:47,453 [DEBUG][       Thread-257062][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 13:54:47,453 [DEBUG][       Thread-257062][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 13:54:47,453 [DEBUG][       Thread-257062][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 13:54:47,474 [ INFO][       Thread-257062][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 13:54:47,474 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 13:54:47,474 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 13:54:48,475 [DEBUG][       Thread-257062][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 13:54:48,475 [DEBUG][       Thread-257062][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 13:54:48,524 [DEBUG][       Thread-257062][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 13:54:48,524 [DEBUG][       Thread-257062][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 13:54:48,533 [DEBUG][       Thread-257062][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 13:54:48,543 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 13:54:48,543 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 13:54:48,552 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 13:54:48,562 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 13:54:48,562 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 13:54:48,563 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 13:54:48,570 [DEBUG][       Thread-257062][   transport.py][1871] : EOF in transport thread
2025-06-13 13:54:51,779 [DEBUG][Thread-257064 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:54:56,226 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:54:56,227 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:54:58,573 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 13:54:58,573 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 13:54:58,573 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 13:54:58,576 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 13:54:59,054 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 13, 54, 45), 17.47, 29.65, 0.0, 19.32, 13.57, 0, 0, 0, 2, 0, 0),)
2025-06-13 13:54:59,054 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 13:54:45
2025-06-13 13:54:59,135 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 13:54:59,139 [DEBUG][       Thread-257065][   transport.py][1871] : starting thread (client mode): 0x86369270
2025-06-13 13:54:59,139 [DEBUG][       Thread-257065][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 13:54:59,161 [DEBUG][       Thread-257065][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 13:54:59,161 [ INFO][       Thread-257065][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 13:54:59,162 [DEBUG][       Thread-257065][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 13:54:59,162 [DEBUG][       Thread-257065][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 13:54:59,162 [DEBUG][       Thread-257065][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 13:54:59,163 [DEBUG][       Thread-257065][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:54:59,163 [DEBUG][       Thread-257065][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:54:59,163 [DEBUG][       Thread-257065][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:54:59,163 [DEBUG][       Thread-257065][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:54:59,163 [DEBUG][       Thread-257065][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 13:54:59,163 [DEBUG][       Thread-257065][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 13:54:59,163 [DEBUG][       Thread-257065][   transport.py][1871] : client lang: <none>
2025-06-13 13:54:59,163 [DEBUG][       Thread-257065][   transport.py][1871] : server lang: <none>
2025-06-13 13:54:59,163 [DEBUG][       Thread-257065][   transport.py][1871] : kex follows: False
2025-06-13 13:54:59,163 [DEBUG][       Thread-257065][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 13:54:59,163 [DEBUG][       Thread-257065][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 13:54:59,163 [DEBUG][       Thread-257065][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 13:54:59,163 [DEBUG][       Thread-257065][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 13:54:59,163 [DEBUG][       Thread-257065][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 13:54:59,163 [DEBUG][       Thread-257065][   transport.py][1871] : Compression: none
2025-06-13 13:54:59,163 [DEBUG][       Thread-257065][   transport.py][1871] : === End of kex handshake ===
2025-06-13 13:54:59,180 [DEBUG][       Thread-257065][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 13:54:59,180 [DEBUG][       Thread-257065][   transport.py][1871] : Switch to new keys ...
2025-06-13 13:54:59,181 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 13:54:59,181 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 13:54:59,182 [DEBUG][       Thread-257065][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 13:54:59,182 [DEBUG][       Thread-257065][   transport.py][1871] : userauth is OK
2025-06-13 13:54:59,196 [ INFO][       Thread-257065][   transport.py][1871] : Authentication (password) successful!
2025-06-13 13:54:59,196 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 13:54:59,968 [DEBUG][       Thread-257065][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 13:54:59,969 [DEBUG][       Thread-257065][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 13:55:00,013 [DEBUG][       Thread-257065][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 13:55:00,013 [DEBUG][       Thread-257065][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 13:55:00,016 [DEBUG][       Thread-257065][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 13:55:00,031 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 13:55:00,031 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 13:55:00,033 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 13:55:00,035 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 13:55:00,041 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 13:55:00,043 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 13:55:00,043 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 13:55:00,044 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 13:55:00,044 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.496117 -999.00  +13.60  15.77     35   -1.40 1 1 1 1 1   887    0 15.35 18.00 ----- 14.5 15.8 24.2 20.6 17.7 -29.9 16.5 -31.0 16.9 -29.0 17.9 -27.7
2025-06-13 13:55:00,044 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 13:55:00,044 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 13:55:00,044 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.496117
2025-06-13 13:55:00,045 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 13:55:00,045 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 13:55:00,045 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 13:55:00,046 [DEBUG][       Thread-257065][   transport.py][1871] : EOF in transport thread
2025-06-13 13:55:00,046 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 13:55:00,046 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 13:55:00,047 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T13:54:45', tmtdew=17.47, humidity=29.65, cloud=0.0, wind=19.32, temperature=13.57, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T11:54:24.509', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 13:55:00,129 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 13:55:00,141 [DEBUG][       Thread-257068][   transport.py][1871] : starting thread (client mode): 0x867b6c80
2025-06-13 13:55:00,141 [DEBUG][       Thread-257068][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 13:55:00,159 [DEBUG][       Thread-257068][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 13:55:00,159 [ INFO][       Thread-257068][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 13:55:00,167 [DEBUG][       Thread-257068][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 13:55:00,167 [DEBUG][       Thread-257068][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 13:55:00,167 [DEBUG][       Thread-257068][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 13:55:00,167 [DEBUG][       Thread-257068][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:55:00,167 [DEBUG][       Thread-257068][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:55:00,167 [DEBUG][       Thread-257068][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:55:00,167 [DEBUG][       Thread-257068][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:55:00,167 [DEBUG][       Thread-257068][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 13:55:00,168 [DEBUG][       Thread-257068][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 13:55:00,168 [DEBUG][       Thread-257068][   transport.py][1871] : client lang: <none>
2025-06-13 13:55:00,168 [DEBUG][       Thread-257068][   transport.py][1871] : server lang: <none>
2025-06-13 13:55:00,168 [DEBUG][       Thread-257068][   transport.py][1871] : kex follows: False
2025-06-13 13:55:00,168 [DEBUG][       Thread-257068][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 13:55:00,168 [DEBUG][       Thread-257068][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 13:55:00,168 [DEBUG][       Thread-257068][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 13:55:00,168 [DEBUG][       Thread-257068][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 13:55:00,168 [DEBUG][       Thread-257068][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 13:55:00,168 [DEBUG][       Thread-257068][   transport.py][1871] : Compression: none
2025-06-13 13:55:00,168 [DEBUG][       Thread-257068][   transport.py][1871] : === End of kex handshake ===
2025-06-13 13:55:00,225 [DEBUG][       Thread-257068][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 13:55:00,226 [DEBUG][       Thread-257068][   transport.py][1871] : Switch to new keys ...
2025-06-13 13:55:00,226 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 13:55:00,227 [DEBUG][       Thread-257068][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 13:55:00,228 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 13:55:00,284 [DEBUG][       Thread-257068][   transport.py][1871] : userauth is OK
2025-06-13 13:55:00,284 [DEBUG][       Thread-257068][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 13:55:00,284 [DEBUG][       Thread-257068][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 13:55:00,285 [DEBUG][       Thread-257068][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 13:55:00,285 [DEBUG][       Thread-257068][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 13:55:00,304 [ INFO][       Thread-257068][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 13:55:00,304 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 13:55:00,305 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 13:55:00,800 [DEBUG][Thread-257070 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:55:01,308 [DEBUG][       Thread-257068][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 13:55:01,308 [DEBUG][       Thread-257068][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 13:55:01,356 [DEBUG][       Thread-257068][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 13:55:01,356 [DEBUG][       Thread-257068][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 13:55:01,365 [DEBUG][       Thread-257068][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 13:55:01,375 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 13:55:01,375 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 13:55:01,384 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 13:55:01,393 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 13:55:01,393 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 13:55:01,394 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 13:55:01,402 [DEBUG][       Thread-257068][   transport.py][1871] : EOF in transport thread
2025-06-13 13:55:03,763 [DEBUG][Thread-257071 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:55:04,855 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:55:04,856 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:55:09,838 [DEBUG][Thread-257072 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:55:11,404 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 13:55:11,404 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 13:55:11,404 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 13:55:11,405 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 13:55:11,884 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 13, 54, 45), 17.47, 29.65, 0.0, 19.32, 13.57, 0, 0, 0, 2, 0, 0),)
2025-06-13 13:55:11,884 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 13:54:45
2025-06-13 13:55:11,967 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 13:55:11,971 [DEBUG][       Thread-257073][   transport.py][1871] : starting thread (client mode): 0x863bc970
2025-06-13 13:55:11,971 [DEBUG][       Thread-257073][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 13:55:11,992 [DEBUG][       Thread-257073][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 13:55:11,992 [ INFO][       Thread-257073][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 13:55:11,995 [DEBUG][       Thread-257073][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 13:55:11,996 [DEBUG][       Thread-257073][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 13:55:11,996 [DEBUG][       Thread-257073][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 13:55:11,996 [DEBUG][       Thread-257073][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:55:11,996 [DEBUG][       Thread-257073][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:55:11,996 [DEBUG][       Thread-257073][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:55:11,996 [DEBUG][       Thread-257073][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:55:11,996 [DEBUG][       Thread-257073][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 13:55:11,996 [DEBUG][       Thread-257073][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 13:55:11,996 [DEBUG][       Thread-257073][   transport.py][1871] : client lang: <none>
2025-06-13 13:55:11,996 [DEBUG][       Thread-257073][   transport.py][1871] : server lang: <none>
2025-06-13 13:55:11,996 [DEBUG][       Thread-257073][   transport.py][1871] : kex follows: False
2025-06-13 13:55:11,996 [DEBUG][       Thread-257073][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 13:55:11,996 [DEBUG][       Thread-257073][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 13:55:11,996 [DEBUG][       Thread-257073][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 13:55:11,996 [DEBUG][       Thread-257073][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 13:55:11,996 [DEBUG][       Thread-257073][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 13:55:11,996 [DEBUG][       Thread-257073][   transport.py][1871] : Compression: none
2025-06-13 13:55:11,996 [DEBUG][       Thread-257073][   transport.py][1871] : === End of kex handshake ===
2025-06-13 13:55:12,014 [DEBUG][       Thread-257073][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 13:55:12,015 [DEBUG][       Thread-257073][   transport.py][1871] : Switch to new keys ...
2025-06-13 13:55:12,015 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 13:55:12,016 [DEBUG][       Thread-257073][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 13:55:12,016 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 13:55:12,017 [DEBUG][       Thread-257073][   transport.py][1871] : userauth is OK
2025-06-13 13:55:12,042 [ INFO][       Thread-257073][   transport.py][1871] : Authentication (password) successful!
2025-06-13 13:55:12,042 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 13:55:16,578 [DEBUG][Thread-257075 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:55:18,857 [DEBUG][Thread-257076 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:55:19,221 [DEBUG][       Thread-257073][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 13:55:19,221 [DEBUG][       Thread-257073][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 13:55:19,264 [DEBUG][       Thread-257073][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 13:55:19,265 [DEBUG][       Thread-257073][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 13:55:19,267 [DEBUG][       Thread-257073][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 13:55:19,317 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 13:55:19,317 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 13:55:19,318 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 13:55:19,319 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 13:55:19,336 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 13:55:19,337 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 13:55:19,337 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 13:55:19,337 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 13:55:19,338 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.496117 -999.00  +13.60  15.77     35   -1.40 1 1 1 1 1   887    0 15.35 18.00 ----- 14.5 15.8 24.2 20.6 17.7 -29.9 16.5 -31.0 16.9 -29.0 17.9 -27.7
2025-06-13 13:55:19,338 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 13:55:19,338 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 13:55:19,338 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.496117
2025-06-13 13:55:19,338 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 13:55:19,338 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 13:55:19,338 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 13:55:19,338 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 13:55:19,338 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 13:55:19,338 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T13:54:45', tmtdew=17.47, humidity=29.65, cloud=0.0, wind=19.32, temperature=13.57, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T11:54:24.509', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 13:55:19,339 [DEBUG][       Thread-257073][   transport.py][1871] : EOF in transport thread
2025-06-13 13:55:19,410 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 13:55:19,421 [DEBUG][       Thread-257078][   transport.py][1871] : starting thread (client mode): 0x863cb2e0
2025-06-13 13:55:19,421 [DEBUG][       Thread-257078][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 13:55:19,436 [DEBUG][       Thread-257078][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 13:55:19,436 [ INFO][       Thread-257078][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 13:55:19,449 [DEBUG][       Thread-257078][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 13:55:19,449 [DEBUG][       Thread-257078][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 13:55:19,449 [DEBUG][       Thread-257078][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 13:55:19,449 [DEBUG][       Thread-257078][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:55:19,449 [DEBUG][       Thread-257078][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:55:19,449 [DEBUG][       Thread-257078][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:55:19,449 [DEBUG][       Thread-257078][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:55:19,449 [DEBUG][       Thread-257078][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 13:55:19,449 [DEBUG][       Thread-257078][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 13:55:19,449 [DEBUG][       Thread-257078][   transport.py][1871] : client lang: <none>
2025-06-13 13:55:19,449 [DEBUG][       Thread-257078][   transport.py][1871] : server lang: <none>
2025-06-13 13:55:19,449 [DEBUG][       Thread-257078][   transport.py][1871] : kex follows: False
2025-06-13 13:55:19,449 [DEBUG][       Thread-257078][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 13:55:19,449 [DEBUG][       Thread-257078][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 13:55:19,449 [DEBUG][       Thread-257078][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 13:55:19,449 [DEBUG][       Thread-257078][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 13:55:19,449 [DEBUG][       Thread-257078][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 13:55:19,449 [DEBUG][       Thread-257078][   transport.py][1871] : Compression: none
2025-06-13 13:55:19,449 [DEBUG][       Thread-257078][   transport.py][1871] : === End of kex handshake ===
2025-06-13 13:55:19,506 [DEBUG][       Thread-257078][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 13:55:19,506 [DEBUG][       Thread-257078][   transport.py][1871] : Switch to new keys ...
2025-06-13 13:55:19,507 [DEBUG][       Thread-257078][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 13:55:19,507 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 13:55:19,508 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 13:55:19,561 [DEBUG][       Thread-257078][   transport.py][1871] : userauth is OK
2025-06-13 13:55:19,561 [DEBUG][       Thread-257078][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 13:55:19,561 [DEBUG][       Thread-257078][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 13:55:19,562 [DEBUG][       Thread-257078][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 13:55:19,562 [DEBUG][       Thread-257078][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 13:55:19,576 [ INFO][       Thread-257078][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 13:55:19,576 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 13:55:19,576 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 13:55:20,581 [DEBUG][       Thread-257078][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 13:55:20,581 [DEBUG][       Thread-257078][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 13:55:20,634 [DEBUG][       Thread-257078][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 13:55:20,634 [DEBUG][       Thread-257078][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 13:55:20,642 [DEBUG][       Thread-257078][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 13:55:20,651 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 13:55:20,651 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 13:55:20,662 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 13:55:20,670 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 13:55:20,671 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 13:55:20,671 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 13:55:20,679 [DEBUG][       Thread-257078][   transport.py][1871] : EOF in transport thread
2025-06-13 13:55:27,874 [DEBUG][Thread-257080 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:55:30,680 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 13:55:30,680 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 13:55:30,680 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 13:55:30,683 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 13:55:31,159 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 13, 55, 17), 17.89, 28.65, 0.0, 15.9, 13.78, 0, 0, 0, 2, 0, 0),)
2025-06-13 13:55:31,159 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 13:55:17
2025-06-13 13:55:31,242 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 13:55:31,246 [DEBUG][       Thread-257081][   transport.py][1871] : starting thread (client mode): 0x84204bb0
2025-06-13 13:55:31,246 [DEBUG][       Thread-257081][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 13:55:31,260 [DEBUG][       Thread-257081][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 13:55:31,260 [ INFO][       Thread-257081][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 13:55:31,263 [DEBUG][       Thread-257081][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 13:55:31,264 [DEBUG][       Thread-257081][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 13:55:31,264 [DEBUG][       Thread-257081][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 13:55:31,264 [DEBUG][       Thread-257081][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:55:31,264 [DEBUG][       Thread-257081][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:55:31,264 [DEBUG][       Thread-257081][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:55:31,264 [DEBUG][       Thread-257081][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:55:31,264 [DEBUG][       Thread-257081][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 13:55:31,264 [DEBUG][       Thread-257081][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 13:55:31,264 [DEBUG][       Thread-257081][   transport.py][1871] : client lang: <none>
2025-06-13 13:55:31,264 [DEBUG][       Thread-257081][   transport.py][1871] : server lang: <none>
2025-06-13 13:55:31,264 [DEBUG][       Thread-257081][   transport.py][1871] : kex follows: False
2025-06-13 13:55:31,264 [DEBUG][       Thread-257081][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 13:55:31,264 [DEBUG][       Thread-257081][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 13:55:31,264 [DEBUG][       Thread-257081][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 13:55:31,264 [DEBUG][       Thread-257081][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 13:55:31,264 [DEBUG][       Thread-257081][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 13:55:31,264 [DEBUG][       Thread-257081][   transport.py][1871] : Compression: none
2025-06-13 13:55:31,264 [DEBUG][       Thread-257081][   transport.py][1871] : === End of kex handshake ===
2025-06-13 13:55:31,278 [DEBUG][       Thread-257081][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 13:55:31,279 [DEBUG][       Thread-257081][   transport.py][1871] : Switch to new keys ...
2025-06-13 13:55:31,279 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 13:55:31,279 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 13:55:31,280 [DEBUG][       Thread-257081][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 13:55:31,280 [DEBUG][       Thread-257081][   transport.py][1871] : userauth is OK
2025-06-13 13:55:31,304 [ INFO][       Thread-257081][   transport.py][1871] : Authentication (password) successful!
2025-06-13 13:55:31,305 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 13:55:31,930 [DEBUG][       Thread-257081][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 13:55:31,930 [DEBUG][       Thread-257081][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 13:55:31,973 [DEBUG][       Thread-257081][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 13:55:31,973 [DEBUG][       Thread-257081][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 13:55:31,976 [DEBUG][       Thread-257081][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 13:55:31,989 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 13:55:31,990 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 13:55:31,991 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 13:55:31,993 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 13:55:31,998 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 13:55:32,000 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 13:55:32,000 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 13:55:32,001 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 13:55:32,001 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.496464 -999.00  +13.80  19.81     34   -1.60 1 1 1 1 1   887    0 15.16 15.74 ----- 26.7 19.8 37.4 24.6 17.6 -30.8 16.5 -33.0 16.9 -30.1 18.1 -27.9
2025-06-13 13:55:32,001 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 13:55:32,001 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 13:55:32,001 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.496464
2025-06-13 13:55:32,001 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 13:55:32,002 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 13:55:32,002 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 13:55:32,002 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 13:55:32,002 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 13:55:32,002 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T13:55:17', tmtdew=17.89, humidity=28.65, cloud=0.0, wind=15.9, temperature=13.78, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T11:54:54.490', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 13:55:32,003 [DEBUG][       Thread-257081][   transport.py][1871] : EOF in transport thread
2025-06-13 13:55:32,087 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 13:55:32,096 [DEBUG][       Thread-257084][   transport.py][1871] : starting thread (client mode): 0x863ed210
2025-06-13 13:55:32,096 [DEBUG][       Thread-257084][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 13:55:32,118 [DEBUG][       Thread-257084][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 13:55:32,118 [ INFO][       Thread-257084][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 13:55:32,125 [DEBUG][       Thread-257084][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 13:55:32,125 [DEBUG][       Thread-257084][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 13:55:32,126 [DEBUG][       Thread-257084][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 13:55:32,126 [DEBUG][       Thread-257084][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:55:32,126 [DEBUG][       Thread-257084][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:55:32,126 [DEBUG][       Thread-257084][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:55:32,126 [DEBUG][       Thread-257084][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:55:32,126 [DEBUG][       Thread-257084][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 13:55:32,126 [DEBUG][       Thread-257084][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 13:55:32,126 [DEBUG][       Thread-257084][   transport.py][1871] : client lang: <none>
2025-06-13 13:55:32,126 [DEBUG][       Thread-257084][   transport.py][1871] : server lang: <none>
2025-06-13 13:55:32,126 [DEBUG][       Thread-257084][   transport.py][1871] : kex follows: False
2025-06-13 13:55:32,126 [DEBUG][       Thread-257084][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 13:55:32,126 [DEBUG][       Thread-257084][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 13:55:32,126 [DEBUG][       Thread-257084][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 13:55:32,126 [DEBUG][       Thread-257084][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 13:55:32,126 [DEBUG][       Thread-257084][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 13:55:32,126 [DEBUG][       Thread-257084][   transport.py][1871] : Compression: none
2025-06-13 13:55:32,126 [DEBUG][       Thread-257084][   transport.py][1871] : === End of kex handshake ===
2025-06-13 13:55:32,181 [DEBUG][       Thread-257084][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 13:55:32,182 [DEBUG][       Thread-257084][   transport.py][1871] : Switch to new keys ...
2025-06-13 13:55:32,182 [DEBUG][       Thread-257084][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 13:55:32,183 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 13:55:32,183 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 13:55:32,237 [DEBUG][       Thread-257084][   transport.py][1871] : userauth is OK
2025-06-13 13:55:32,238 [DEBUG][       Thread-257084][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 13:55:32,238 [DEBUG][       Thread-257084][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 13:55:32,238 [DEBUG][       Thread-257084][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 13:55:32,238 [DEBUG][       Thread-257084][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 13:55:32,257 [ INFO][       Thread-257084][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 13:55:32,257 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 13:55:32,257 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 13:55:33,259 [DEBUG][       Thread-257084][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 13:55:33,259 [DEBUG][       Thread-257084][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 13:55:33,307 [DEBUG][       Thread-257084][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 13:55:33,307 [DEBUG][       Thread-257084][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 13:55:33,316 [DEBUG][       Thread-257084][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 13:55:33,324 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 13:55:33,325 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 13:55:33,333 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 13:55:33,342 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 13:55:33,342 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 13:55:33,342 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 13:55:33,350 [DEBUG][       Thread-257084][   transport.py][1871] : EOF in transport thread
2025-06-13 13:55:36,895 [DEBUG][Thread-257086 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:55:43,353 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 13:55:43,353 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 13:55:43,353 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 13:55:43,356 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 13:55:43,825 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 13, 55, 17), 17.89, 28.65, 0.0, 15.9, 13.78, 0, 0, 0, 2, 0, 0),)
2025-06-13 13:55:43,825 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 13:55:17
2025-06-13 13:55:43,907 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 13:55:43,912 [DEBUG][       Thread-257087][   transport.py][1871] : starting thread (client mode): 0x84206bc0
2025-06-13 13:55:43,912 [DEBUG][       Thread-257087][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 13:55:43,931 [DEBUG][       Thread-257087][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 13:55:43,932 [ INFO][       Thread-257087][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 13:55:43,933 [DEBUG][       Thread-257087][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 13:55:43,933 [DEBUG][       Thread-257087][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 13:55:43,933 [DEBUG][       Thread-257087][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 13:55:43,933 [DEBUG][       Thread-257087][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:55:43,933 [DEBUG][       Thread-257087][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:55:43,933 [DEBUG][       Thread-257087][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:55:43,933 [DEBUG][       Thread-257087][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:55:43,933 [DEBUG][       Thread-257087][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 13:55:43,933 [DEBUG][       Thread-257087][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 13:55:43,933 [DEBUG][       Thread-257087][   transport.py][1871] : client lang: <none>
2025-06-13 13:55:43,933 [DEBUG][       Thread-257087][   transport.py][1871] : server lang: <none>
2025-06-13 13:55:43,933 [DEBUG][       Thread-257087][   transport.py][1871] : kex follows: False
2025-06-13 13:55:43,933 [DEBUG][       Thread-257087][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 13:55:43,933 [DEBUG][       Thread-257087][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 13:55:43,933 [DEBUG][       Thread-257087][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 13:55:43,933 [DEBUG][       Thread-257087][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 13:55:43,933 [DEBUG][       Thread-257087][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 13:55:43,933 [DEBUG][       Thread-257087][   transport.py][1871] : Compression: none
2025-06-13 13:55:43,933 [DEBUG][       Thread-257087][   transport.py][1871] : === End of kex handshake ===
2025-06-13 13:55:43,958 [DEBUG][       Thread-257087][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 13:55:43,958 [DEBUG][       Thread-257087][   transport.py][1871] : Switch to new keys ...
2025-06-13 13:55:43,959 [DEBUG][       Thread-257087][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 13:55:43,959 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 13:55:43,959 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 13:55:43,960 [DEBUG][       Thread-257087][   transport.py][1871] : userauth is OK
2025-06-13 13:55:43,984 [ INFO][       Thread-257087][   transport.py][1871] : Authentication (password) successful!
2025-06-13 13:55:43,985 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 13:55:44,606 [DEBUG][       Thread-257087][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 13:55:44,607 [DEBUG][       Thread-257087][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 13:55:44,649 [DEBUG][       Thread-257087][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 13:55:44,649 [DEBUG][       Thread-257087][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 13:55:44,653 [DEBUG][       Thread-257087][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 13:55:44,664 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 13:55:44,664 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 13:55:44,666 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 13:55:44,668 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 13:55:44,674 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 13:55:44,676 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 13:55:44,677 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 13:55:44,677 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 13:55:44,677 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.496464 -999.00  +13.80  19.81     34   -1.60 1 1 1 1 1   887    0 15.16 15.74 ----- 26.7 19.8 37.4 24.6 17.6 -30.8 16.5 -33.0 16.9 -30.1 18.1 -27.9
2025-06-13 13:55:44,678 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 13:55:44,678 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 13:55:44,678 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.496464
2025-06-13 13:55:44,678 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 13:55:44,679 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 13:55:44,679 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 13:55:44,679 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 13:55:44,679 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 13:55:44,679 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T13:55:17', tmtdew=17.89, humidity=28.65, cloud=0.0, wind=15.9, temperature=13.78, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T11:54:54.490', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 13:55:44,679 [DEBUG][       Thread-257087][   transport.py][1871] : EOF in transport thread
2025-06-13 13:55:44,763 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 13:55:44,775 [DEBUG][       Thread-257090][   transport.py][1871] : starting thread (client mode): 0x867fe1a0
2025-06-13 13:55:44,775 [DEBUG][       Thread-257090][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 13:55:44,790 [DEBUG][       Thread-257090][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 13:55:44,790 [ INFO][       Thread-257090][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 13:55:44,799 [DEBUG][       Thread-257090][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 13:55:44,799 [DEBUG][       Thread-257090][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 13:55:44,799 [DEBUG][       Thread-257090][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 13:55:44,799 [DEBUG][       Thread-257090][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:55:44,800 [DEBUG][       Thread-257090][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:55:44,800 [DEBUG][       Thread-257090][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:55:44,800 [DEBUG][       Thread-257090][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:55:44,800 [DEBUG][       Thread-257090][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 13:55:44,800 [DEBUG][       Thread-257090][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 13:55:44,800 [DEBUG][       Thread-257090][   transport.py][1871] : client lang: <none>
2025-06-13 13:55:44,800 [DEBUG][       Thread-257090][   transport.py][1871] : server lang: <none>
2025-06-13 13:55:44,800 [DEBUG][       Thread-257090][   transport.py][1871] : kex follows: False
2025-06-13 13:55:44,800 [DEBUG][       Thread-257090][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 13:55:44,800 [DEBUG][       Thread-257090][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 13:55:44,800 [DEBUG][       Thread-257090][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 13:55:44,800 [DEBUG][       Thread-257090][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 13:55:44,800 [DEBUG][       Thread-257090][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 13:55:44,800 [DEBUG][       Thread-257090][   transport.py][1871] : Compression: none
2025-06-13 13:55:44,800 [DEBUG][       Thread-257090][   transport.py][1871] : === End of kex handshake ===
2025-06-13 13:55:44,862 [DEBUG][       Thread-257090][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 13:55:44,863 [DEBUG][       Thread-257090][   transport.py][1871] : Switch to new keys ...
2025-06-13 13:55:44,864 [DEBUG][       Thread-257090][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 13:55:44,864 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 13:55:44,865 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 13:55:44,924 [DEBUG][       Thread-257090][   transport.py][1871] : userauth is OK
2025-06-13 13:55:44,924 [DEBUG][       Thread-257090][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 13:55:44,924 [DEBUG][       Thread-257090][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 13:55:44,924 [DEBUG][       Thread-257090][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 13:55:44,924 [DEBUG][       Thread-257090][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 13:55:44,943 [ INFO][       Thread-257090][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 13:55:44,944 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 13:55:44,944 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 13:55:45,931 [DEBUG][Thread-257092 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:55:45,959 [DEBUG][       Thread-257090][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 13:55:45,959 [DEBUG][       Thread-257090][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 13:55:46,008 [DEBUG][       Thread-257090][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 13:55:46,008 [DEBUG][       Thread-257090][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 13:55:46,018 [DEBUG][       Thread-257090][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 13:55:46,026 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 13:55:46,027 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 13:55:46,036 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 13:55:46,045 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 13:55:46,045 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 13:55:46,046 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 13:55:46,054 [DEBUG][       Thread-257090][   transport.py][1871] : EOF in transport thread
2025-06-13 13:55:54,950 [DEBUG][Thread-257093 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:55:56,056 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 13:55:56,056 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 13:55:56,056 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 13:55:56,059 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 13:55:56,365 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:55:56,365 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:55:56,529 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 13, 55, 48), 17.67, 29.07, 0.0, 12.39, 13.76, 0, 0, 0, 2, 0, 0),)
2025-06-13 13:55:56,529 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 13:55:48
2025-06-13 13:55:56,610 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 13:55:56,613 [DEBUG][       Thread-257094][   transport.py][1871] : starting thread (client mode): 0x84207e50
2025-06-13 13:55:56,613 [DEBUG][       Thread-257094][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 13:55:56,634 [DEBUG][       Thread-257094][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 13:55:56,635 [ INFO][       Thread-257094][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 13:55:56,638 [DEBUG][       Thread-257094][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 13:55:56,638 [DEBUG][       Thread-257094][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 13:55:56,638 [DEBUG][       Thread-257094][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 13:55:56,638 [DEBUG][       Thread-257094][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:55:56,638 [DEBUG][       Thread-257094][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:55:56,638 [DEBUG][       Thread-257094][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:55:56,638 [DEBUG][       Thread-257094][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:55:56,638 [DEBUG][       Thread-257094][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 13:55:56,638 [DEBUG][       Thread-257094][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 13:55:56,638 [DEBUG][       Thread-257094][   transport.py][1871] : client lang: <none>
2025-06-13 13:55:56,638 [DEBUG][       Thread-257094][   transport.py][1871] : server lang: <none>
2025-06-13 13:55:56,638 [DEBUG][       Thread-257094][   transport.py][1871] : kex follows: False
2025-06-13 13:55:56,638 [DEBUG][       Thread-257094][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 13:55:56,639 [DEBUG][       Thread-257094][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 13:55:56,639 [DEBUG][       Thread-257094][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 13:55:56,639 [DEBUG][       Thread-257094][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 13:55:56,639 [DEBUG][       Thread-257094][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 13:55:56,639 [DEBUG][       Thread-257094][   transport.py][1871] : Compression: none
2025-06-13 13:55:56,639 [DEBUG][       Thread-257094][   transport.py][1871] : === End of kex handshake ===
2025-06-13 13:55:56,655 [DEBUG][       Thread-257094][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 13:55:56,656 [DEBUG][       Thread-257094][   transport.py][1871] : Switch to new keys ...
2025-06-13 13:55:56,656 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 13:55:56,656 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 13:55:56,657 [DEBUG][       Thread-257094][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 13:55:56,657 [DEBUG][       Thread-257094][   transport.py][1871] : userauth is OK
2025-06-13 13:55:56,671 [ INFO][       Thread-257094][   transport.py][1871] : Authentication (password) successful!
2025-06-13 13:55:56,672 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 13:55:57,329 [DEBUG][       Thread-257094][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 13:55:57,329 [DEBUG][       Thread-257094][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 13:55:57,373 [DEBUG][       Thread-257094][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 13:55:57,373 [DEBUG][       Thread-257094][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 13:55:57,376 [DEBUG][       Thread-257094][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 13:55:57,389 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 13:55:57,389 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 13:55:57,391 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 13:55:57,393 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 13:55:57,398 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 13:55:57,400 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 13:55:57,400 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 13:55:57,401 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 13:55:57,401 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.496812 -999.00  +13.50  28.55     32   -2.60 1 1 1 1 1   887    0 15.50 18.20 ----- 23.9 28.6 52.6 29.5 17.6 -30.4 16.5 -32.1 16.8 -30.5 18.1 -28.8
2025-06-13 13:55:57,401 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 13:55:57,401 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 13:55:57,401 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.496812
2025-06-13 13:55:57,402 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 13:55:57,402 [DEBUG][       Thread-257094][   transport.py][1871] : EOF in transport thread
2025-06-13 13:55:57,402 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 13:55:57,403 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 13:55:57,403 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 13:55:57,403 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 13:55:57,403 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T13:55:48', tmtdew=17.67, humidity=29.07, cloud=0.0, wind=12.39, temperature=13.76, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T11:55:24.557', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 13:55:57,479 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 13:55:57,488 [DEBUG][       Thread-257097][   transport.py][1871] : starting thread (client mode): 0x867b6c80
2025-06-13 13:55:57,488 [DEBUG][       Thread-257097][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 13:55:57,509 [DEBUG][       Thread-257097][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 13:55:57,510 [ INFO][       Thread-257097][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 13:55:57,517 [DEBUG][       Thread-257097][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 13:55:57,517 [DEBUG][       Thread-257097][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 13:55:57,517 [DEBUG][       Thread-257097][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 13:55:57,517 [DEBUG][       Thread-257097][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:55:57,517 [DEBUG][       Thread-257097][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:55:57,517 [DEBUG][       Thread-257097][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:55:57,517 [DEBUG][       Thread-257097][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:55:57,517 [DEBUG][       Thread-257097][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 13:55:57,517 [DEBUG][       Thread-257097][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 13:55:57,518 [DEBUG][       Thread-257097][   transport.py][1871] : client lang: <none>
2025-06-13 13:55:57,518 [DEBUG][       Thread-257097][   transport.py][1871] : server lang: <none>
2025-06-13 13:55:57,518 [DEBUG][       Thread-257097][   transport.py][1871] : kex follows: False
2025-06-13 13:55:57,518 [DEBUG][       Thread-257097][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 13:55:57,518 [DEBUG][       Thread-257097][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 13:55:57,518 [DEBUG][       Thread-257097][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 13:55:57,518 [DEBUG][       Thread-257097][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 13:55:57,518 [DEBUG][       Thread-257097][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 13:55:57,518 [DEBUG][       Thread-257097][   transport.py][1871] : Compression: none
2025-06-13 13:55:57,518 [DEBUG][       Thread-257097][   transport.py][1871] : === End of kex handshake ===
2025-06-13 13:55:57,575 [DEBUG][       Thread-257097][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 13:55:57,576 [DEBUG][       Thread-257097][   transport.py][1871] : Switch to new keys ...
2025-06-13 13:55:57,576 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 13:55:57,577 [DEBUG][       Thread-257097][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 13:55:57,578 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 13:55:57,634 [DEBUG][       Thread-257097][   transport.py][1871] : userauth is OK
2025-06-13 13:55:57,634 [DEBUG][       Thread-257097][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 13:55:57,634 [DEBUG][       Thread-257097][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 13:55:57,635 [DEBUG][       Thread-257097][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 13:55:57,635 [DEBUG][       Thread-257097][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 13:55:57,653 [ INFO][       Thread-257097][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 13:55:57,654 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 13:55:57,654 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 13:55:58,662 [DEBUG][       Thread-257097][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 13:55:58,662 [DEBUG][       Thread-257097][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 13:55:58,712 [DEBUG][       Thread-257097][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 13:55:58,712 [DEBUG][       Thread-257097][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 13:55:58,721 [DEBUG][       Thread-257097][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 13:55:58,730 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 13:55:58,731 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 13:55:58,739 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 13:55:58,749 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 13:55:58,749 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 13:55:58,749 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 13:55:58,757 [DEBUG][       Thread-257097][   transport.py][1871] : EOF in transport thread
2025-06-13 13:56:03,965 [DEBUG][Thread-257099 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:56:04,926 [DEBUG][Thread-257100 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:56:06,007 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:56:06,009 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:56:08,752 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 13:56:08,753 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 13:56:08,753 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 13:56:08,755 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 13:56:09,229 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 13, 55, 48), 17.67, 29.07, 0.0, 12.39, 13.76, 0, 0, 0, 2, 0, 0),)
2025-06-13 13:56:09,229 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 13:55:48
2025-06-13 13:56:09,312 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 13:56:09,315 [DEBUG][       Thread-257101][   transport.py][1871] : starting thread (client mode): 0x84206290
2025-06-13 13:56:09,316 [DEBUG][       Thread-257101][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 13:56:09,335 [DEBUG][       Thread-257101][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 13:56:09,336 [ INFO][       Thread-257101][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 13:56:09,337 [DEBUG][       Thread-257101][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 13:56:09,337 [DEBUG][       Thread-257101][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 13:56:09,337 [DEBUG][       Thread-257101][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 13:56:09,338 [DEBUG][       Thread-257101][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:56:09,338 [DEBUG][       Thread-257101][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:56:09,338 [DEBUG][       Thread-257101][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:56:09,338 [DEBUG][       Thread-257101][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:56:09,338 [DEBUG][       Thread-257101][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 13:56:09,338 [DEBUG][       Thread-257101][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 13:56:09,338 [DEBUG][       Thread-257101][   transport.py][1871] : client lang: <none>
2025-06-13 13:56:09,338 [DEBUG][       Thread-257101][   transport.py][1871] : server lang: <none>
2025-06-13 13:56:09,338 [DEBUG][       Thread-257101][   transport.py][1871] : kex follows: False
2025-06-13 13:56:09,338 [DEBUG][       Thread-257101][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 13:56:09,338 [DEBUG][       Thread-257101][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 13:56:09,338 [DEBUG][       Thread-257101][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 13:56:09,338 [DEBUG][       Thread-257101][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 13:56:09,338 [DEBUG][       Thread-257101][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 13:56:09,338 [DEBUG][       Thread-257101][   transport.py][1871] : Compression: none
2025-06-13 13:56:09,338 [DEBUG][       Thread-257101][   transport.py][1871] : === End of kex handshake ===
2025-06-13 13:56:09,347 [DEBUG][       Thread-257101][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 13:56:09,347 [DEBUG][       Thread-257101][   transport.py][1871] : Switch to new keys ...
2025-06-13 13:56:09,348 [DEBUG][       Thread-257101][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 13:56:09,348 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 13:56:09,348 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 13:56:09,349 [DEBUG][       Thread-257101][   transport.py][1871] : userauth is OK
2025-06-13 13:56:09,362 [ INFO][       Thread-257101][   transport.py][1871] : Authentication (password) successful!
2025-06-13 13:56:09,362 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 13:56:09,987 [DEBUG][       Thread-257101][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 13:56:09,987 [DEBUG][       Thread-257101][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 13:56:10,029 [DEBUG][       Thread-257101][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 13:56:10,029 [DEBUG][       Thread-257101][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 13:56:10,033 [DEBUG][       Thread-257101][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 13:56:10,046 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 13:56:10,046 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 13:56:10,048 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 13:56:10,050 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 13:56:10,056 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 13:56:10,058 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 13:56:10,059 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 13:56:10,059 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 13:56:10,059 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.496812 -999.00  +13.50  28.55     32   -2.60 1 1 1 1 1   887    0 15.50 18.20 ----- 23.9 28.6 52.6 29.5 17.6 -30.4 16.5 -32.1 16.8 -30.5 18.1 -28.8
2025-06-13 13:56:10,059 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 13:56:10,060 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 13:56:10,060 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.496812
2025-06-13 13:56:10,060 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 13:56:10,061 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 13:56:10,061 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 13:56:10,061 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 13:56:10,061 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 13:56:10,061 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T13:55:48', tmtdew=17.67, humidity=29.07, cloud=0.0, wind=12.39, temperature=13.76, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T11:55:24.557', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 13:56:10,062 [DEBUG][       Thread-257101][   transport.py][1871] : EOF in transport thread
2025-06-13 13:56:10,144 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 13:56:10,154 [DEBUG][       Thread-257104][   transport.py][1871] : starting thread (client mode): 0x86893fd0
2025-06-13 13:56:10,154 [DEBUG][       Thread-257104][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 13:56:10,168 [DEBUG][       Thread-257104][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 13:56:10,169 [ INFO][       Thread-257104][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 13:56:10,176 [DEBUG][       Thread-257104][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 13:56:10,176 [DEBUG][       Thread-257104][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 13:56:10,176 [DEBUG][       Thread-257104][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 13:56:10,176 [DEBUG][       Thread-257104][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:56:10,176 [DEBUG][       Thread-257104][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:56:10,176 [DEBUG][       Thread-257104][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:56:10,176 [DEBUG][       Thread-257104][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:56:10,176 [DEBUG][       Thread-257104][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 13:56:10,177 [DEBUG][       Thread-257104][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 13:56:10,177 [DEBUG][       Thread-257104][   transport.py][1871] : client lang: <none>
2025-06-13 13:56:10,177 [DEBUG][       Thread-257104][   transport.py][1871] : server lang: <none>
2025-06-13 13:56:10,177 [DEBUG][       Thread-257104][   transport.py][1871] : kex follows: False
2025-06-13 13:56:10,177 [DEBUG][       Thread-257104][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 13:56:10,177 [DEBUG][       Thread-257104][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 13:56:10,177 [DEBUG][       Thread-257104][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 13:56:10,177 [DEBUG][       Thread-257104][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 13:56:10,177 [DEBUG][       Thread-257104][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 13:56:10,177 [DEBUG][       Thread-257104][   transport.py][1871] : Compression: none
2025-06-13 13:56:10,177 [DEBUG][       Thread-257104][   transport.py][1871] : === End of kex handshake ===
2025-06-13 13:56:10,238 [DEBUG][       Thread-257104][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 13:56:10,238 [DEBUG][       Thread-257104][   transport.py][1871] : Switch to new keys ...
2025-06-13 13:56:10,239 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 13:56:10,239 [DEBUG][       Thread-257104][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 13:56:10,240 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 13:56:10,296 [DEBUG][       Thread-257104][   transport.py][1871] : userauth is OK
2025-06-13 13:56:10,297 [DEBUG][       Thread-257104][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 13:56:10,297 [DEBUG][       Thread-257104][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 13:56:10,297 [DEBUG][       Thread-257104][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 13:56:10,297 [DEBUG][       Thread-257104][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 13:56:10,316 [ INFO][       Thread-257104][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 13:56:10,316 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 13:56:10,317 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 13:56:11,316 [DEBUG][       Thread-257104][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 13:56:11,316 [DEBUG][       Thread-257104][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 13:56:11,364 [DEBUG][       Thread-257104][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 13:56:11,364 [DEBUG][       Thread-257104][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 13:56:11,373 [DEBUG][       Thread-257104][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 13:56:11,382 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 13:56:11,383 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 13:56:11,392 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 13:56:11,401 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 13:56:11,401 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 13:56:11,402 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 13:56:11,410 [DEBUG][       Thread-257104][   transport.py][1871] : EOF in transport thread
2025-06-13 13:56:12,992 [DEBUG][Thread-257106 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:56:16,628 [DEBUG][Thread-257107 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:56:21,412 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 13:56:21,412 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 13:56:21,412 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 13:56:21,413 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 13:56:21,921 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 13, 55, 48), 17.67, 29.07, 0.0, 12.39, 13.76, 0, 0, 0, 2, 0, 0),)
2025-06-13 13:56:21,921 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 13:55:48
2025-06-13 13:56:22,009 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 13:56:22,012 [DEBUG][Thread-257108 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:56:22,015 [DEBUG][       Thread-257109][   transport.py][1871] : starting thread (client mode): 0x84207310
2025-06-13 13:56:22,015 [DEBUG][       Thread-257109][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 13:56:22,036 [DEBUG][       Thread-257109][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 13:56:22,036 [ INFO][       Thread-257109][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 13:56:22,040 [DEBUG][       Thread-257109][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 13:56:22,040 [DEBUG][       Thread-257109][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 13:56:22,040 [DEBUG][       Thread-257109][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 13:56:22,040 [DEBUG][       Thread-257109][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:56:22,040 [DEBUG][       Thread-257109][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:56:22,040 [DEBUG][       Thread-257109][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:56:22,040 [DEBUG][       Thread-257109][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:56:22,040 [DEBUG][       Thread-257109][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 13:56:22,040 [DEBUG][       Thread-257109][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 13:56:22,040 [DEBUG][       Thread-257109][   transport.py][1871] : client lang: <none>
2025-06-13 13:56:22,040 [DEBUG][       Thread-257109][   transport.py][1871] : server lang: <none>
2025-06-13 13:56:22,040 [DEBUG][       Thread-257109][   transport.py][1871] : kex follows: False
2025-06-13 13:56:22,040 [DEBUG][       Thread-257109][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 13:56:22,040 [DEBUG][       Thread-257109][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 13:56:22,040 [DEBUG][       Thread-257109][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 13:56:22,040 [DEBUG][       Thread-257109][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 13:56:22,040 [DEBUG][       Thread-257109][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 13:56:22,040 [DEBUG][       Thread-257109][   transport.py][1871] : Compression: none
2025-06-13 13:56:22,040 [DEBUG][       Thread-257109][   transport.py][1871] : === End of kex handshake ===
2025-06-13 13:56:22,056 [DEBUG][       Thread-257109][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 13:56:22,056 [DEBUG][       Thread-257109][   transport.py][1871] : Switch to new keys ...
2025-06-13 13:56:22,056 [DEBUG][       Thread-257109][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 13:56:22,056 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 13:56:22,056 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 13:56:22,057 [DEBUG][       Thread-257109][   transport.py][1871] : userauth is OK
2025-06-13 13:56:22,069 [ INFO][       Thread-257109][   transport.py][1871] : Authentication (password) successful!
2025-06-13 13:56:22,069 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 13:56:22,697 [DEBUG][       Thread-257109][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 13:56:22,697 [DEBUG][       Thread-257109][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 13:56:22,741 [DEBUG][       Thread-257109][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 13:56:22,741 [DEBUG][       Thread-257109][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 13:56:22,744 [DEBUG][       Thread-257109][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 13:56:22,759 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 13:56:22,759 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 13:56:22,760 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 13:56:22,762 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 13:56:22,766 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 13:56:22,768 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 13:56:22,768 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 13:56:22,769 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 13:56:22,769 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.496812 -999.00  +13.50  28.55     32   -2.60 1 1 1 1 1   887    0 15.50 18.20 ----- 23.9 28.6 52.6 29.5 17.6 -30.4 16.5 -32.1 16.8 -30.5 18.1 -28.8
2025-06-13 13:56:22,769 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 13:56:22,769 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 13:56:22,769 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.496812
2025-06-13 13:56:22,770 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 13:56:22,770 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 13:56:22,770 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 13:56:22,770 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 13:56:22,770 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 13:56:22,771 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T13:55:48', tmtdew=17.67, humidity=29.07, cloud=0.0, wind=12.39, temperature=13.76, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T11:55:24.557', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 13:56:22,771 [DEBUG][       Thread-257109][   transport.py][1871] : EOF in transport thread
2025-06-13 13:56:22,857 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 13:56:22,866 [DEBUG][       Thread-257112][   transport.py][1871] : starting thread (client mode): 0x863beb00
2025-06-13 13:56:22,867 [DEBUG][       Thread-257112][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 13:56:22,882 [DEBUG][       Thread-257112][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 13:56:22,883 [ INFO][       Thread-257112][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 13:56:22,890 [DEBUG][       Thread-257112][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 13:56:22,890 [DEBUG][       Thread-257112][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 13:56:22,891 [DEBUG][       Thread-257112][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 13:56:22,891 [DEBUG][       Thread-257112][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:56:22,891 [DEBUG][       Thread-257112][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:56:22,891 [DEBUG][       Thread-257112][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:56:22,891 [DEBUG][       Thread-257112][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:56:22,891 [DEBUG][       Thread-257112][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 13:56:22,891 [DEBUG][       Thread-257112][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 13:56:22,891 [DEBUG][       Thread-257112][   transport.py][1871] : client lang: <none>
2025-06-13 13:56:22,891 [DEBUG][       Thread-257112][   transport.py][1871] : server lang: <none>
2025-06-13 13:56:22,891 [DEBUG][       Thread-257112][   transport.py][1871] : kex follows: False
2025-06-13 13:56:22,891 [DEBUG][       Thread-257112][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 13:56:22,891 [DEBUG][       Thread-257112][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 13:56:22,891 [DEBUG][       Thread-257112][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 13:56:22,891 [DEBUG][       Thread-257112][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 13:56:22,891 [DEBUG][       Thread-257112][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 13:56:22,891 [DEBUG][       Thread-257112][   transport.py][1871] : Compression: none
2025-06-13 13:56:22,891 [DEBUG][       Thread-257112][   transport.py][1871] : === End of kex handshake ===
2025-06-13 13:56:22,957 [DEBUG][       Thread-257112][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 13:56:22,957 [DEBUG][       Thread-257112][   transport.py][1871] : Switch to new keys ...
2025-06-13 13:56:22,957 [DEBUG][       Thread-257112][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 13:56:22,957 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 13:56:22,957 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 13:56:23,014 [DEBUG][       Thread-257112][   transport.py][1871] : userauth is OK
2025-06-13 13:56:23,014 [DEBUG][       Thread-257112][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 13:56:23,014 [DEBUG][       Thread-257112][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 13:56:23,014 [DEBUG][       Thread-257112][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 13:56:23,014 [DEBUG][       Thread-257112][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 13:56:23,028 [ INFO][       Thread-257112][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 13:56:23,028 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 13:56:23,028 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 13:56:24,037 [DEBUG][       Thread-257112][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 13:56:24,037 [DEBUG][       Thread-257112][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 13:56:24,088 [DEBUG][       Thread-257112][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 13:56:24,088 [DEBUG][       Thread-257112][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 13:56:24,097 [DEBUG][       Thread-257112][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 13:56:24,107 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 13:56:24,107 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 13:56:24,116 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 13:56:24,125 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 13:56:24,125 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 13:56:24,126 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 13:56:24,134 [DEBUG][       Thread-257112][   transport.py][1871] : EOF in transport thread
2025-06-13 13:56:31,033 [DEBUG][Thread-257114 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:56:34,136 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 13:56:34,136 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 13:56:34,137 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 13:56:34,139 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 13:56:34,609 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 13, 56, 20), 17.86, 28.87, 0.0, 18.23, 13.7, 0, 0, 0, 2, 0, 0),)
2025-06-13 13:56:34,609 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 13:56:20
2025-06-13 13:56:34,690 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 13:56:34,694 [DEBUG][       Thread-257115][   transport.py][1871] : starting thread (client mode): 0x8636ab60
2025-06-13 13:56:34,695 [DEBUG][       Thread-257115][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 13:56:34,715 [DEBUG][       Thread-257115][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 13:56:34,715 [ INFO][       Thread-257115][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 13:56:34,718 [DEBUG][       Thread-257115][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 13:56:34,718 [DEBUG][       Thread-257115][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 13:56:34,718 [DEBUG][       Thread-257115][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 13:56:34,718 [DEBUG][       Thread-257115][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:56:34,718 [DEBUG][       Thread-257115][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:56:34,718 [DEBUG][       Thread-257115][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:56:34,718 [DEBUG][       Thread-257115][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:56:34,718 [DEBUG][       Thread-257115][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 13:56:34,718 [DEBUG][       Thread-257115][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 13:56:34,719 [DEBUG][       Thread-257115][   transport.py][1871] : client lang: <none>
2025-06-13 13:56:34,719 [DEBUG][       Thread-257115][   transport.py][1871] : server lang: <none>
2025-06-13 13:56:34,719 [DEBUG][       Thread-257115][   transport.py][1871] : kex follows: False
2025-06-13 13:56:34,719 [DEBUG][       Thread-257115][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 13:56:34,719 [DEBUG][       Thread-257115][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 13:56:34,719 [DEBUG][       Thread-257115][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 13:56:34,719 [DEBUG][       Thread-257115][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 13:56:34,719 [DEBUG][       Thread-257115][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 13:56:34,719 [DEBUG][       Thread-257115][   transport.py][1871] : Compression: none
2025-06-13 13:56:34,719 [DEBUG][       Thread-257115][   transport.py][1871] : === End of kex handshake ===
2025-06-13 13:56:34,735 [DEBUG][       Thread-257115][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 13:56:34,736 [DEBUG][       Thread-257115][   transport.py][1871] : Switch to new keys ...
2025-06-13 13:56:34,737 [DEBUG][       Thread-257115][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 13:56:34,737 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 13:56:34,737 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 13:56:34,738 [DEBUG][       Thread-257115][   transport.py][1871] : userauth is OK
2025-06-13 13:56:34,751 [ INFO][       Thread-257115][   transport.py][1871] : Authentication (password) successful!
2025-06-13 13:56:34,752 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 13:56:35,388 [DEBUG][       Thread-257115][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 13:56:35,388 [DEBUG][       Thread-257115][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 13:56:35,433 [DEBUG][       Thread-257115][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 13:56:35,433 [DEBUG][       Thread-257115][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 13:56:35,435 [DEBUG][       Thread-257115][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 13:56:35,449 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 13:56:35,449 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 13:56:35,450 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 13:56:35,451 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 13:56:35,454 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 13:56:35,455 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 13:56:35,455 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 13:56:35,455 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 13:56:35,455 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.497159 -999.00  +13.40  23.31     32   -2.70 1 1 1 1 1   887    0 15.60 21.67 ----- 20.6 23.3 40.8 26.6 17.6 -31.1 16.5 -32.0 16.8 -29.8 18.1 -28.6
2025-06-13 13:56:35,455 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 13:56:35,455 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 13:56:35,455 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.497159
2025-06-13 13:56:35,455 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 13:56:35,455 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 13:56:35,455 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 13:56:35,455 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 13:56:35,455 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 13:56:35,455 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T13:56:20', tmtdew=17.86, humidity=28.87, cloud=0.0, wind=18.23, temperature=13.7, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T11:55:54.538', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 13:56:35,456 [DEBUG][       Thread-257115][   transport.py][1871] : EOF in transport thread
2025-06-13 13:56:35,526 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 13:56:35,538 [DEBUG][       Thread-257118][   transport.py][1871] : starting thread (client mode): 0x868c85e0
2025-06-13 13:56:35,538 [DEBUG][       Thread-257118][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 13:56:35,553 [DEBUG][       Thread-257118][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 13:56:35,553 [ INFO][       Thread-257118][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 13:56:35,560 [DEBUG][       Thread-257118][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 13:56:35,561 [DEBUG][       Thread-257118][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 13:56:35,561 [DEBUG][       Thread-257118][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 13:56:35,561 [DEBUG][       Thread-257118][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:56:35,561 [DEBUG][       Thread-257118][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:56:35,561 [DEBUG][       Thread-257118][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:56:35,561 [DEBUG][       Thread-257118][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:56:35,561 [DEBUG][       Thread-257118][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 13:56:35,561 [DEBUG][       Thread-257118][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 13:56:35,561 [DEBUG][       Thread-257118][   transport.py][1871] : client lang: <none>
2025-06-13 13:56:35,561 [DEBUG][       Thread-257118][   transport.py][1871] : server lang: <none>
2025-06-13 13:56:35,561 [DEBUG][       Thread-257118][   transport.py][1871] : kex follows: False
2025-06-13 13:56:35,561 [DEBUG][       Thread-257118][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 13:56:35,561 [DEBUG][       Thread-257118][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 13:56:35,561 [DEBUG][       Thread-257118][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 13:56:35,561 [DEBUG][       Thread-257118][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 13:56:35,561 [DEBUG][       Thread-257118][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 13:56:35,561 [DEBUG][       Thread-257118][   transport.py][1871] : Compression: none
2025-06-13 13:56:35,561 [DEBUG][       Thread-257118][   transport.py][1871] : === End of kex handshake ===
2025-06-13 13:56:35,618 [DEBUG][       Thread-257118][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 13:56:35,619 [DEBUG][       Thread-257118][   transport.py][1871] : Switch to new keys ...
2025-06-13 13:56:35,619 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 13:56:35,620 [DEBUG][       Thread-257118][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 13:56:35,620 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 13:56:35,675 [DEBUG][       Thread-257118][   transport.py][1871] : userauth is OK
2025-06-13 13:56:35,675 [DEBUG][       Thread-257118][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 13:56:35,675 [DEBUG][       Thread-257118][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 13:56:35,675 [DEBUG][       Thread-257118][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 13:56:35,675 [DEBUG][       Thread-257118][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 13:56:35,694 [ INFO][       Thread-257118][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 13:56:35,694 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 13:56:35,695 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 13:56:36,691 [DEBUG][       Thread-257118][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 13:56:36,691 [DEBUG][       Thread-257118][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 13:56:36,740 [DEBUG][       Thread-257118][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 13:56:36,740 [DEBUG][       Thread-257118][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 13:56:36,749 [DEBUG][       Thread-257118][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 13:56:36,758 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 13:56:36,758 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 13:56:36,767 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 13:56:36,776 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 13:56:36,776 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 13:56:36,777 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 13:56:36,790 [DEBUG][       Thread-257118][   transport.py][1871] : EOF in transport thread
2025-06-13 13:56:40,051 [DEBUG][Thread-257120 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:56:46,787 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 13:56:46,788 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 13:56:46,788 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 13:56:46,790 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 13:56:47,259 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 13, 56, 20), 17.86, 28.87, 0.0, 18.23, 13.7, 0, 0, 0, 2, 0, 0),)
2025-06-13 13:56:47,259 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 13:56:20
2025-06-13 13:56:47,340 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 13:56:47,346 [DEBUG][       Thread-257121][   transport.py][1871] : starting thread (client mode): 0x86352dd0
2025-06-13 13:56:47,346 [DEBUG][       Thread-257121][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 13:56:47,367 [DEBUG][       Thread-257121][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 13:56:47,367 [ INFO][       Thread-257121][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 13:56:47,370 [DEBUG][       Thread-257121][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 13:56:47,370 [DEBUG][       Thread-257121][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 13:56:47,370 [DEBUG][       Thread-257121][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 13:56:47,370 [DEBUG][       Thread-257121][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:56:47,370 [DEBUG][       Thread-257121][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:56:47,370 [DEBUG][       Thread-257121][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:56:47,370 [DEBUG][       Thread-257121][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:56:47,370 [DEBUG][       Thread-257121][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 13:56:47,370 [DEBUG][       Thread-257121][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 13:56:47,370 [DEBUG][       Thread-257121][   transport.py][1871] : client lang: <none>
2025-06-13 13:56:47,370 [DEBUG][       Thread-257121][   transport.py][1871] : server lang: <none>
2025-06-13 13:56:47,370 [DEBUG][       Thread-257121][   transport.py][1871] : kex follows: False
2025-06-13 13:56:47,370 [DEBUG][       Thread-257121][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 13:56:47,370 [DEBUG][       Thread-257121][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 13:56:47,370 [DEBUG][       Thread-257121][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 13:56:47,370 [DEBUG][       Thread-257121][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 13:56:47,370 [DEBUG][       Thread-257121][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 13:56:47,370 [DEBUG][       Thread-257121][   transport.py][1871] : Compression: none
2025-06-13 13:56:47,370 [DEBUG][       Thread-257121][   transport.py][1871] : === End of kex handshake ===
2025-06-13 13:56:47,387 [DEBUG][       Thread-257121][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 13:56:47,387 [DEBUG][       Thread-257121][   transport.py][1871] : Switch to new keys ...
2025-06-13 13:56:47,388 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 13:56:47,388 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 13:56:47,388 [DEBUG][       Thread-257121][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 13:56:47,389 [DEBUG][       Thread-257121][   transport.py][1871] : userauth is OK
2025-06-13 13:56:47,414 [ INFO][       Thread-257121][   transport.py][1871] : Authentication (password) successful!
2025-06-13 13:56:47,414 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 13:56:48,046 [DEBUG][       Thread-257121][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 13:56:48,046 [DEBUG][       Thread-257121][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 13:56:48,089 [DEBUG][       Thread-257121][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 13:56:48,089 [DEBUG][       Thread-257121][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 13:56:48,092 [DEBUG][       Thread-257121][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 13:56:48,104 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 13:56:48,105 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 13:56:48,107 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 13:56:48,109 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 13:56:48,115 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 13:56:48,117 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 13:56:48,117 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 13:56:48,118 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 13:56:48,118 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.497159 -999.00  +13.40  23.31     32   -2.70 1 1 1 1 1   887    0 15.60 21.67 ----- 20.6 23.3 40.8 26.6 17.6 -31.1 16.5 -32.0 16.8 -29.8 18.1 -28.6
2025-06-13 13:56:48,118 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 13:56:48,118 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 13:56:48,118 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.497159
2025-06-13 13:56:48,118 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 13:56:48,119 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 13:56:48,119 [DEBUG][       Thread-257121][   transport.py][1871] : EOF in transport thread
2025-06-13 13:56:48,119 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 13:56:48,120 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 13:56:48,120 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 13:56:48,120 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T13:56:20', tmtdew=17.86, humidity=28.87, cloud=0.0, wind=18.23, temperature=13.7, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T11:55:54.538', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 13:56:48,203 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 13:56:48,213 [DEBUG][       Thread-257124][   transport.py][1871] : starting thread (client mode): 0x863eeb60
2025-06-13 13:56:48,213 [DEBUG][       Thread-257124][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 13:56:48,234 [DEBUG][       Thread-257124][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 13:56:48,234 [ INFO][       Thread-257124][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 13:56:48,241 [DEBUG][       Thread-257124][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 13:56:48,242 [DEBUG][       Thread-257124][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 13:56:48,242 [DEBUG][       Thread-257124][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 13:56:48,242 [DEBUG][       Thread-257124][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:56:48,242 [DEBUG][       Thread-257124][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:56:48,242 [DEBUG][       Thread-257124][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:56:48,242 [DEBUG][       Thread-257124][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:56:48,242 [DEBUG][       Thread-257124][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 13:56:48,242 [DEBUG][       Thread-257124][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 13:56:48,242 [DEBUG][       Thread-257124][   transport.py][1871] : client lang: <none>
2025-06-13 13:56:48,242 [DEBUG][       Thread-257124][   transport.py][1871] : server lang: <none>
2025-06-13 13:56:48,242 [DEBUG][       Thread-257124][   transport.py][1871] : kex follows: False
2025-06-13 13:56:48,242 [DEBUG][       Thread-257124][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 13:56:48,242 [DEBUG][       Thread-257124][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 13:56:48,242 [DEBUG][       Thread-257124][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 13:56:48,242 [DEBUG][       Thread-257124][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 13:56:48,242 [DEBUG][       Thread-257124][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 13:56:48,242 [DEBUG][       Thread-257124][   transport.py][1871] : Compression: none
2025-06-13 13:56:48,243 [DEBUG][       Thread-257124][   transport.py][1871] : === End of kex handshake ===
2025-06-13 13:56:48,302 [DEBUG][       Thread-257124][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 13:56:48,303 [DEBUG][       Thread-257124][   transport.py][1871] : Switch to new keys ...
2025-06-13 13:56:48,304 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 13:56:48,304 [DEBUG][       Thread-257124][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 13:56:48,305 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 13:56:48,359 [DEBUG][       Thread-257124][   transport.py][1871] : userauth is OK
2025-06-13 13:56:48,359 [DEBUG][       Thread-257124][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 13:56:48,359 [DEBUG][       Thread-257124][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 13:56:48,359 [DEBUG][       Thread-257124][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 13:56:48,359 [DEBUG][       Thread-257124][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 13:56:48,378 [ INFO][       Thread-257124][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 13:56:48,379 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 13:56:48,379 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 13:56:49,077 [DEBUG][Thread-257126 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:56:49,387 [DEBUG][       Thread-257124][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 13:56:49,387 [DEBUG][       Thread-257124][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 13:56:49,436 [DEBUG][       Thread-257124][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 13:56:49,436 [DEBUG][       Thread-257124][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 13:56:49,445 [DEBUG][       Thread-257124][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 13:56:49,454 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 13:56:49,455 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 13:56:49,463 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 13:56:49,473 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 13:56:49,473 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 13:56:49,474 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 13:56:49,482 [DEBUG][       Thread-257124][   transport.py][1871] : EOF in transport thread
2025-06-13 13:56:56,504 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:56:56,505 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:56:58,097 [DEBUG][Thread-257127 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:56:59,482 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 13:56:59,483 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 13:56:59,483 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 13:56:59,483 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 13:56:59,930 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 13, 56, 52), 17.82, 28.96, 0.0, 20.45, 13.73, 0, 0, 0, 2, 0, 0),)
2025-06-13 13:56:59,930 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 13:56:52
2025-06-13 13:57:00,012 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 13:57:00,016 [DEBUG][       Thread-257128][   transport.py][1871] : starting thread (client mode): 0x86393a90
2025-06-13 13:57:00,016 [DEBUG][       Thread-257128][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 13:57:00,034 [DEBUG][       Thread-257128][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 13:57:00,034 [ INFO][       Thread-257128][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 13:57:00,038 [DEBUG][       Thread-257128][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 13:57:00,038 [DEBUG][       Thread-257128][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 13:57:00,038 [DEBUG][       Thread-257128][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 13:57:00,038 [DEBUG][       Thread-257128][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:57:00,038 [DEBUG][       Thread-257128][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:57:00,038 [DEBUG][       Thread-257128][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:57:00,038 [DEBUG][       Thread-257128][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:57:00,038 [DEBUG][       Thread-257128][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 13:57:00,038 [DEBUG][       Thread-257128][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 13:57:00,038 [DEBUG][       Thread-257128][   transport.py][1871] : client lang: <none>
2025-06-13 13:57:00,038 [DEBUG][       Thread-257128][   transport.py][1871] : server lang: <none>
2025-06-13 13:57:00,038 [DEBUG][       Thread-257128][   transport.py][1871] : kex follows: False
2025-06-13 13:57:00,038 [DEBUG][       Thread-257128][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 13:57:00,038 [DEBUG][       Thread-257128][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 13:57:00,038 [DEBUG][       Thread-257128][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 13:57:00,039 [DEBUG][       Thread-257128][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 13:57:00,039 [DEBUG][       Thread-257128][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 13:57:00,039 [DEBUG][       Thread-257128][   transport.py][1871] : Compression: none
2025-06-13 13:57:00,039 [DEBUG][       Thread-257128][   transport.py][1871] : === End of kex handshake ===
2025-06-13 13:57:00,055 [DEBUG][       Thread-257128][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 13:57:00,055 [DEBUG][       Thread-257128][   transport.py][1871] : Switch to new keys ...
2025-06-13 13:57:00,056 [DEBUG][       Thread-257128][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 13:57:00,056 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 13:57:00,056 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 13:57:00,057 [DEBUG][       Thread-257128][   transport.py][1871] : userauth is OK
2025-06-13 13:57:00,071 [ INFO][       Thread-257128][   transport.py][1871] : Authentication (password) successful!
2025-06-13 13:57:00,071 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 13:57:00,658 [DEBUG][       Thread-257128][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 13:57:00,658 [DEBUG][       Thread-257128][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 13:57:00,701 [DEBUG][       Thread-257128][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 13:57:00,701 [DEBUG][       Thread-257128][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 13:57:00,704 [DEBUG][       Thread-257128][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 13:57:00,719 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 13:57:00,719 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 13:57:00,721 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 13:57:00,723 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 13:57:00,729 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 13:57:00,731 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 13:57:00,731 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 13:57:00,732 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 13:57:00,732 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.497853 -999.00  +13.40  18.01     34   -2.10 1 1 1 1 1   887    0 15.59 20.14 ----- 21.7 18.0 43.6 27.2 17.7 -30.4 16.5 -31.5 16.8 -30.8 18.1 -28.5
2025-06-13 13:57:00,732 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 13:57:00,732 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 13:57:00,732 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.497853
2025-06-13 13:57:00,733 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 13:57:00,733 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 13:57:00,733 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 13:57:00,734 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 13:57:00,734 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 13:57:00,734 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T13:56:52', tmtdew=17.82, humidity=28.96, cloud=0.0, wind=20.45, temperature=13.73, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T11:56:54.499', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 13:57:00,735 [DEBUG][       Thread-257128][   transport.py][1871] : EOF in transport thread
2025-06-13 13:57:00,817 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 13:57:00,829 [DEBUG][       Thread-257131][   transport.py][1871] : starting thread (client mode): 0x8636a350
2025-06-13 13:57:00,829 [DEBUG][       Thread-257131][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 13:57:00,844 [DEBUG][       Thread-257131][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 13:57:00,845 [ INFO][       Thread-257131][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 13:57:00,852 [DEBUG][       Thread-257131][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 13:57:00,852 [DEBUG][       Thread-257131][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 13:57:00,852 [DEBUG][       Thread-257131][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 13:57:00,852 [DEBUG][       Thread-257131][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:57:00,853 [DEBUG][       Thread-257131][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:57:00,853 [DEBUG][       Thread-257131][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:57:00,853 [DEBUG][       Thread-257131][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:57:00,853 [DEBUG][       Thread-257131][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 13:57:00,853 [DEBUG][       Thread-257131][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 13:57:00,853 [DEBUG][       Thread-257131][   transport.py][1871] : client lang: <none>
2025-06-13 13:57:00,853 [DEBUG][       Thread-257131][   transport.py][1871] : server lang: <none>
2025-06-13 13:57:00,853 [DEBUG][       Thread-257131][   transport.py][1871] : kex follows: False
2025-06-13 13:57:00,853 [DEBUG][       Thread-257131][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 13:57:00,853 [DEBUG][       Thread-257131][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 13:57:00,853 [DEBUG][       Thread-257131][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 13:57:00,853 [DEBUG][       Thread-257131][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 13:57:00,853 [DEBUG][       Thread-257131][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 13:57:00,853 [DEBUG][       Thread-257131][   transport.py][1871] : Compression: none
2025-06-13 13:57:00,853 [DEBUG][       Thread-257131][   transport.py][1871] : === End of kex handshake ===
2025-06-13 13:57:00,911 [DEBUG][       Thread-257131][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 13:57:00,911 [DEBUG][       Thread-257131][   transport.py][1871] : Switch to new keys ...
2025-06-13 13:57:00,912 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 13:57:00,913 [DEBUG][       Thread-257131][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 13:57:00,914 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 13:57:00,967 [DEBUG][       Thread-257131][   transport.py][1871] : userauth is OK
2025-06-13 13:57:00,967 [DEBUG][       Thread-257131][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 13:57:00,967 [DEBUG][       Thread-257131][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 13:57:00,968 [DEBUG][       Thread-257131][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 13:57:00,968 [DEBUG][       Thread-257131][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 13:57:00,986 [ INFO][       Thread-257131][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 13:57:00,986 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 13:57:00,987 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 13:57:02,004 [DEBUG][       Thread-257131][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 13:57:02,005 [DEBUG][       Thread-257131][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 13:57:02,056 [DEBUG][       Thread-257131][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 13:57:02,056 [DEBUG][       Thread-257131][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 13:57:02,065 [DEBUG][       Thread-257131][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 13:57:02,074 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 13:57:02,075 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 13:57:02,084 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 13:57:02,093 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 13:57:02,093 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 13:57:02,094 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 13:57:02,101 [DEBUG][       Thread-257131][   transport.py][1871] : EOF in transport thread
2025-06-13 13:57:06,089 [DEBUG][Thread-257133 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:57:07,119 [DEBUG][Thread-257134 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:57:07,171 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:57:07,172 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:57:12,104 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 13:57:12,104 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 13:57:12,105 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 13:57:12,107 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 13:57:12,562 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 13, 56, 52), 17.82, 28.96, 0.0, 20.45, 13.73, 0, 0, 0, 2, 0, 0),)
2025-06-13 13:57:12,562 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 13:56:52
2025-06-13 13:57:12,644 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 13:57:12,650 [DEBUG][       Thread-257135][   transport.py][1871] : starting thread (client mode): 0x86392680
2025-06-13 13:57:12,650 [DEBUG][       Thread-257135][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 13:57:12,670 [DEBUG][       Thread-257135][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 13:57:12,671 [ INFO][       Thread-257135][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 13:57:12,674 [DEBUG][       Thread-257135][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 13:57:12,674 [DEBUG][       Thread-257135][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 13:57:12,674 [DEBUG][       Thread-257135][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 13:57:12,674 [DEBUG][       Thread-257135][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:57:12,674 [DEBUG][       Thread-257135][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:57:12,674 [DEBUG][       Thread-257135][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:57:12,674 [DEBUG][       Thread-257135][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:57:12,674 [DEBUG][       Thread-257135][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 13:57:12,674 [DEBUG][       Thread-257135][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 13:57:12,674 [DEBUG][       Thread-257135][   transport.py][1871] : client lang: <none>
2025-06-13 13:57:12,674 [DEBUG][       Thread-257135][   transport.py][1871] : server lang: <none>
2025-06-13 13:57:12,674 [DEBUG][       Thread-257135][   transport.py][1871] : kex follows: False
2025-06-13 13:57:12,674 [DEBUG][       Thread-257135][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 13:57:12,674 [DEBUG][       Thread-257135][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 13:57:12,674 [DEBUG][       Thread-257135][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 13:57:12,674 [DEBUG][       Thread-257135][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 13:57:12,674 [DEBUG][       Thread-257135][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 13:57:12,674 [DEBUG][       Thread-257135][   transport.py][1871] : Compression: none
2025-06-13 13:57:12,674 [DEBUG][       Thread-257135][   transport.py][1871] : === End of kex handshake ===
2025-06-13 13:57:12,689 [DEBUG][       Thread-257135][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 13:57:12,689 [DEBUG][       Thread-257135][   transport.py][1871] : Switch to new keys ...
2025-06-13 13:57:12,689 [DEBUG][       Thread-257135][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 13:57:12,689 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 13:57:12,689 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 13:57:12,690 [DEBUG][       Thread-257135][   transport.py][1871] : userauth is OK
2025-06-13 13:57:12,704 [ INFO][       Thread-257135][   transport.py][1871] : Authentication (password) successful!
2025-06-13 13:57:12,704 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 13:57:13,341 [DEBUG][       Thread-257135][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 13:57:13,342 [DEBUG][       Thread-257135][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 13:57:13,385 [DEBUG][       Thread-257135][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 13:57:13,385 [DEBUG][       Thread-257135][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 13:57:13,388 [DEBUG][       Thread-257135][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 13:57:13,400 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 13:57:13,401 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 13:57:13,403 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 13:57:13,405 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 13:57:13,410 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 13:57:13,412 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 13:57:13,412 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 13:57:13,413 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 13:57:13,413 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.497853 -999.00  +13.40  18.01     34   -2.10 1 1 1 1 1   887    0 15.59 20.14 ----- 21.7 18.0 43.6 27.2 17.7 -30.4 16.5 -31.5 16.8 -30.8 18.1 -28.5
2025-06-13 13:57:13,413 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 13:57:13,413 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 13:57:13,413 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.497853
2025-06-13 13:57:13,414 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 13:57:13,414 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 13:57:13,414 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 13:57:13,414 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 13:57:13,414 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 13:57:13,415 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T13:56:52', tmtdew=17.82, humidity=28.96, cloud=0.0, wind=20.45, temperature=13.73, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T11:56:54.499', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 13:57:13,416 [DEBUG][       Thread-257135][   transport.py][1871] : EOF in transport thread
2025-06-13 13:57:13,508 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 13:57:13,519 [DEBUG][       Thread-257138][   transport.py][1871] : starting thread (client mode): 0x867b78b0
2025-06-13 13:57:13,519 [DEBUG][       Thread-257138][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 13:57:13,534 [DEBUG][       Thread-257138][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 13:57:13,534 [ INFO][       Thread-257138][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 13:57:13,541 [DEBUG][       Thread-257138][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 13:57:13,541 [DEBUG][       Thread-257138][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 13:57:13,542 [DEBUG][       Thread-257138][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 13:57:13,542 [DEBUG][       Thread-257138][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:57:13,542 [DEBUG][       Thread-257138][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:57:13,542 [DEBUG][       Thread-257138][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:57:13,542 [DEBUG][       Thread-257138][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:57:13,542 [DEBUG][       Thread-257138][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 13:57:13,542 [DEBUG][       Thread-257138][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 13:57:13,542 [DEBUG][       Thread-257138][   transport.py][1871] : client lang: <none>
2025-06-13 13:57:13,542 [DEBUG][       Thread-257138][   transport.py][1871] : server lang: <none>
2025-06-13 13:57:13,542 [DEBUG][       Thread-257138][   transport.py][1871] : kex follows: False
2025-06-13 13:57:13,542 [DEBUG][       Thread-257138][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 13:57:13,542 [DEBUG][       Thread-257138][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 13:57:13,542 [DEBUG][       Thread-257138][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 13:57:13,542 [DEBUG][       Thread-257138][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 13:57:13,542 [DEBUG][       Thread-257138][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 13:57:13,542 [DEBUG][       Thread-257138][   transport.py][1871] : Compression: none
2025-06-13 13:57:13,542 [DEBUG][       Thread-257138][   transport.py][1871] : === End of kex handshake ===
2025-06-13 13:57:13,598 [DEBUG][       Thread-257138][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 13:57:13,599 [DEBUG][       Thread-257138][   transport.py][1871] : Switch to new keys ...
2025-06-13 13:57:13,599 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 13:57:13,600 [DEBUG][       Thread-257138][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 13:57:13,600 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 13:57:13,655 [DEBUG][       Thread-257138][   transport.py][1871] : userauth is OK
2025-06-13 13:57:13,655 [DEBUG][       Thread-257138][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 13:57:13,655 [DEBUG][       Thread-257138][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 13:57:13,655 [DEBUG][       Thread-257138][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 13:57:13,655 [DEBUG][       Thread-257138][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 13:57:13,675 [ INFO][       Thread-257138][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 13:57:13,675 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 13:57:13,676 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 13:57:14,678 [DEBUG][       Thread-257138][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 13:57:14,679 [DEBUG][       Thread-257138][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 13:57:14,728 [DEBUG][       Thread-257138][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 13:57:14,728 [DEBUG][       Thread-257138][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 13:57:14,737 [DEBUG][       Thread-257138][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 13:57:14,748 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 13:57:14,748 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 13:57:14,757 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 13:57:14,769 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 13:57:14,769 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 13:57:14,769 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 13:57:14,782 [DEBUG][       Thread-257138][   transport.py][1871] : EOF in transport thread
2025-06-13 13:57:16,155 [DEBUG][Thread-257140 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:57:16,674 [DEBUG][Thread-257141 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:57:24,776 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 13:57:24,776 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 13:57:24,776 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 13:57:24,776 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 13:57:25,173 [DEBUG][Thread-257142 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:57:25,264 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 13, 56, 52), 17.82, 28.96, 0.0, 20.45, 13.73, 0, 0, 0, 2, 0, 0),)
2025-06-13 13:57:25,264 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 13:56:52
2025-06-13 13:57:25,352 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 13:57:25,355 [DEBUG][       Thread-257143][   transport.py][1871] : starting thread (client mode): 0x86392320
2025-06-13 13:57:25,356 [DEBUG][       Thread-257143][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 13:57:25,376 [DEBUG][       Thread-257143][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 13:57:25,376 [ INFO][       Thread-257143][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 13:57:25,379 [DEBUG][       Thread-257143][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 13:57:25,379 [DEBUG][       Thread-257143][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 13:57:25,379 [DEBUG][       Thread-257143][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 13:57:25,379 [DEBUG][       Thread-257143][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:57:25,379 [DEBUG][       Thread-257143][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:57:25,379 [DEBUG][       Thread-257143][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:57:25,379 [DEBUG][       Thread-257143][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:57:25,379 [DEBUG][       Thread-257143][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 13:57:25,379 [DEBUG][       Thread-257143][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 13:57:25,379 [DEBUG][       Thread-257143][   transport.py][1871] : client lang: <none>
2025-06-13 13:57:25,379 [DEBUG][       Thread-257143][   transport.py][1871] : server lang: <none>
2025-06-13 13:57:25,379 [DEBUG][       Thread-257143][   transport.py][1871] : kex follows: False
2025-06-13 13:57:25,379 [DEBUG][       Thread-257143][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 13:57:25,379 [DEBUG][       Thread-257143][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 13:57:25,379 [DEBUG][       Thread-257143][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 13:57:25,379 [DEBUG][       Thread-257143][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 13:57:25,379 [DEBUG][       Thread-257143][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 13:57:25,379 [DEBUG][       Thread-257143][   transport.py][1871] : Compression: none
2025-06-13 13:57:25,379 [DEBUG][       Thread-257143][   transport.py][1871] : === End of kex handshake ===
2025-06-13 13:57:25,395 [DEBUG][       Thread-257143][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 13:57:25,395 [DEBUG][       Thread-257143][   transport.py][1871] : Switch to new keys ...
2025-06-13 13:57:25,395 [DEBUG][       Thread-257143][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 13:57:25,395 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 13:57:25,395 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 13:57:25,396 [DEBUG][       Thread-257143][   transport.py][1871] : userauth is OK
2025-06-13 13:57:25,420 [ INFO][       Thread-257143][   transport.py][1871] : Authentication (password) successful!
2025-06-13 13:57:25,420 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 13:57:26,035 [DEBUG][       Thread-257143][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 13:57:26,035 [DEBUG][       Thread-257143][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 13:57:26,076 [DEBUG][       Thread-257143][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 13:57:26,076 [DEBUG][       Thread-257143][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 13:57:26,078 [DEBUG][       Thread-257143][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 13:57:26,090 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 13:57:26,090 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 13:57:26,091 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 13:57:26,092 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 13:57:26,094 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 13:57:26,094 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 13:57:26,095 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 13:57:26,095 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 13:57:26,095 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.497853 -999.00  +13.40  18.01     34   -2.10 1 1 1 1 1   887    0 15.59 20.14 ----- 21.7 18.0 43.6 27.2 17.7 -30.4 16.5 -31.5 16.8 -30.8 18.1 -28.5
2025-06-13 13:57:26,095 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 13:57:26,095 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 13:57:26,095 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.497853
2025-06-13 13:57:26,095 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 13:57:26,095 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 13:57:26,095 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 13:57:26,095 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 13:57:26,095 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 13:57:26,095 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T13:56:52', tmtdew=17.82, humidity=28.96, cloud=0.0, wind=20.45, temperature=13.73, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T11:56:54.499', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 13:57:26,095 [DEBUG][       Thread-257143][   transport.py][1871] : EOF in transport thread
2025-06-13 13:57:26,168 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 13:57:26,178 [DEBUG][       Thread-257146][   transport.py][1871] : starting thread (client mode): 0x867b78b0
2025-06-13 13:57:26,178 [DEBUG][       Thread-257146][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 13:57:26,193 [DEBUG][       Thread-257146][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 13:57:26,193 [ INFO][       Thread-257146][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 13:57:26,201 [DEBUG][       Thread-257146][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 13:57:26,201 [DEBUG][       Thread-257146][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 13:57:26,201 [DEBUG][       Thread-257146][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 13:57:26,201 [DEBUG][       Thread-257146][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:57:26,201 [DEBUG][       Thread-257146][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:57:26,201 [DEBUG][       Thread-257146][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:57:26,201 [DEBUG][       Thread-257146][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:57:26,201 [DEBUG][       Thread-257146][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 13:57:26,202 [DEBUG][       Thread-257146][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 13:57:26,202 [DEBUG][       Thread-257146][   transport.py][1871] : client lang: <none>
2025-06-13 13:57:26,202 [DEBUG][       Thread-257146][   transport.py][1871] : server lang: <none>
2025-06-13 13:57:26,202 [DEBUG][       Thread-257146][   transport.py][1871] : kex follows: False
2025-06-13 13:57:26,202 [DEBUG][       Thread-257146][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 13:57:26,202 [DEBUG][       Thread-257146][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 13:57:26,202 [DEBUG][       Thread-257146][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 13:57:26,202 [DEBUG][       Thread-257146][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 13:57:26,202 [DEBUG][       Thread-257146][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 13:57:26,202 [DEBUG][       Thread-257146][   transport.py][1871] : Compression: none
2025-06-13 13:57:26,202 [DEBUG][       Thread-257146][   transport.py][1871] : === End of kex handshake ===
2025-06-13 13:57:26,263 [DEBUG][       Thread-257146][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 13:57:26,264 [DEBUG][       Thread-257146][   transport.py][1871] : Switch to new keys ...
2025-06-13 13:57:26,265 [DEBUG][       Thread-257146][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 13:57:26,265 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 13:57:26,266 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 13:57:26,319 [DEBUG][       Thread-257146][   transport.py][1871] : userauth is OK
2025-06-13 13:57:26,319 [DEBUG][       Thread-257146][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 13:57:26,319 [DEBUG][       Thread-257146][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 13:57:26,320 [DEBUG][       Thread-257146][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 13:57:26,320 [DEBUG][       Thread-257146][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 13:57:26,338 [ INFO][       Thread-257146][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 13:57:26,339 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 13:57:26,339 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 13:57:27,360 [DEBUG][       Thread-257146][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 13:57:27,361 [DEBUG][       Thread-257146][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 13:57:27,412 [DEBUG][       Thread-257146][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 13:57:27,412 [DEBUG][       Thread-257146][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 13:57:27,422 [DEBUG][       Thread-257146][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 13:57:27,432 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 13:57:27,432 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 13:57:27,442 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 13:57:27,454 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 13:57:27,454 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 13:57:27,455 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 13:57:27,463 [DEBUG][       Thread-257146][   transport.py][1871] : EOF in transport thread
2025-06-13 13:57:34,193 [DEBUG][Thread-257148 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:57:37,464 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 13:57:37,464 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 13:57:37,464 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 13:57:37,467 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 13:57:37,925 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 13, 57, 23), 17.58, 29.43, 0.0, 18.35, 13.67, 0, 0, 0, 2, 0, 0),)
2025-06-13 13:57:37,925 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 13:57:23
2025-06-13 13:57:38,007 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 13:57:38,012 [DEBUG][       Thread-257149][   transport.py][1871] : starting thread (client mode): 0x86393a00
2025-06-13 13:57:38,013 [DEBUG][       Thread-257149][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 13:57:38,035 [DEBUG][       Thread-257149][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 13:57:38,035 [ INFO][       Thread-257149][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 13:57:38,039 [DEBUG][       Thread-257149][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 13:57:38,039 [DEBUG][       Thread-257149][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 13:57:38,039 [DEBUG][       Thread-257149][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 13:57:38,039 [DEBUG][       Thread-257149][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:57:38,039 [DEBUG][       Thread-257149][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:57:38,039 [DEBUG][       Thread-257149][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:57:38,039 [DEBUG][       Thread-257149][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:57:38,039 [DEBUG][       Thread-257149][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 13:57:38,039 [DEBUG][       Thread-257149][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 13:57:38,039 [DEBUG][       Thread-257149][   transport.py][1871] : client lang: <none>
2025-06-13 13:57:38,039 [DEBUG][       Thread-257149][   transport.py][1871] : server lang: <none>
2025-06-13 13:57:38,039 [DEBUG][       Thread-257149][   transport.py][1871] : kex follows: False
2025-06-13 13:57:38,039 [DEBUG][       Thread-257149][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 13:57:38,039 [DEBUG][       Thread-257149][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 13:57:38,040 [DEBUG][       Thread-257149][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 13:57:38,040 [DEBUG][       Thread-257149][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 13:57:38,040 [DEBUG][       Thread-257149][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 13:57:38,040 [DEBUG][       Thread-257149][   transport.py][1871] : Compression: none
2025-06-13 13:57:38,040 [DEBUG][       Thread-257149][   transport.py][1871] : === End of kex handshake ===
2025-06-13 13:57:38,054 [DEBUG][       Thread-257149][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 13:57:38,054 [DEBUG][       Thread-257149][   transport.py][1871] : Switch to new keys ...
2025-06-13 13:57:38,055 [DEBUG][       Thread-257149][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 13:57:38,055 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 13:57:38,055 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 13:57:38,055 [DEBUG][       Thread-257149][   transport.py][1871] : userauth is OK
2025-06-13 13:57:38,079 [ INFO][       Thread-257149][   transport.py][1871] : Authentication (password) successful!
2025-06-13 13:57:38,080 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 13:57:38,735 [DEBUG][       Thread-257149][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 13:57:38,735 [DEBUG][       Thread-257149][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 13:57:38,777 [DEBUG][       Thread-257149][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 13:57:38,777 [DEBUG][       Thread-257149][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 13:57:38,779 [DEBUG][       Thread-257149][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 13:57:38,792 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 13:57:38,793 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 13:57:38,794 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 13:57:38,796 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 13:57:38,800 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 13:57:38,802 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 13:57:38,802 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 13:57:38,803 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 13:57:38,803 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.498201 -999.00  +13.50  24.74     35   -1.50 1 1 1 1 1   887    0 15.63 19.09 ----- 22.7 24.7 59.6 27.1 17.7 -29.8 16.5 -31.2 16.8 -30.4 18.1 -28.1
2025-06-13 13:57:38,803 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 13:57:38,803 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 13:57:38,803 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.498201
2025-06-13 13:57:38,803 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 13:57:38,804 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 13:57:38,804 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 13:57:38,804 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 13:57:38,804 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 13:57:38,804 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T13:57:23', tmtdew=17.58, humidity=29.43, cloud=0.0, wind=18.35, temperature=13.67, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T11:57:24.566', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 13:57:38,805 [DEBUG][       Thread-257149][   transport.py][1871] : EOF in transport thread
2025-06-13 13:57:38,886 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 13:57:38,898 [DEBUG][       Thread-257152][   transport.py][1871] : starting thread (client mode): 0x863ed030
2025-06-13 13:57:38,898 [DEBUG][       Thread-257152][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 13:57:38,912 [DEBUG][       Thread-257152][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 13:57:38,912 [ INFO][       Thread-257152][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 13:57:38,920 [DEBUG][       Thread-257152][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 13:57:38,920 [DEBUG][       Thread-257152][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 13:57:38,920 [DEBUG][       Thread-257152][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 13:57:38,920 [DEBUG][       Thread-257152][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:57:38,920 [DEBUG][       Thread-257152][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:57:38,920 [DEBUG][       Thread-257152][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:57:38,920 [DEBUG][       Thread-257152][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:57:38,920 [DEBUG][       Thread-257152][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 13:57:38,920 [DEBUG][       Thread-257152][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 13:57:38,920 [DEBUG][       Thread-257152][   transport.py][1871] : client lang: <none>
2025-06-13 13:57:38,920 [DEBUG][       Thread-257152][   transport.py][1871] : server lang: <none>
2025-06-13 13:57:38,920 [DEBUG][       Thread-257152][   transport.py][1871] : kex follows: False
2025-06-13 13:57:38,920 [DEBUG][       Thread-257152][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 13:57:38,920 [DEBUG][       Thread-257152][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 13:57:38,920 [DEBUG][       Thread-257152][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 13:57:38,920 [DEBUG][       Thread-257152][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 13:57:38,920 [DEBUG][       Thread-257152][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 13:57:38,920 [DEBUG][       Thread-257152][   transport.py][1871] : Compression: none
2025-06-13 13:57:38,920 [DEBUG][       Thread-257152][   transport.py][1871] : === End of kex handshake ===
2025-06-13 13:57:38,978 [DEBUG][       Thread-257152][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 13:57:38,978 [DEBUG][       Thread-257152][   transport.py][1871] : Switch to new keys ...
2025-06-13 13:57:38,979 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 13:57:38,979 [DEBUG][       Thread-257152][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 13:57:38,980 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 13:57:39,041 [DEBUG][       Thread-257152][   transport.py][1871] : userauth is OK
2025-06-13 13:57:39,042 [DEBUG][       Thread-257152][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 13:57:39,042 [DEBUG][       Thread-257152][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 13:57:39,042 [DEBUG][       Thread-257152][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 13:57:39,042 [DEBUG][       Thread-257152][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 13:57:39,071 [ INFO][       Thread-257152][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 13:57:39,071 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 13:57:39,072 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 13:57:40,051 [DEBUG][       Thread-257152][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 13:57:40,052 [DEBUG][       Thread-257152][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 13:57:40,102 [DEBUG][       Thread-257152][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 13:57:40,102 [DEBUG][       Thread-257152][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 13:57:40,111 [DEBUG][       Thread-257152][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 13:57:40,121 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 13:57:40,121 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 13:57:40,133 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 13:57:40,142 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 13:57:40,143 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 13:57:40,143 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 13:57:40,151 [DEBUG][       Thread-257152][   transport.py][1871] : EOF in transport thread
2025-06-13 13:57:43,211 [DEBUG][Thread-257154 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:57:50,153 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 13:57:50,153 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 13:57:50,154 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 13:57:50,155 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 13:57:50,607 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 13, 57, 23), 17.58, 29.43, 0.0, 18.35, 13.67, 0, 0, 0, 2, 0, 0),)
2025-06-13 13:57:50,607 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 13:57:23
2025-06-13 13:57:50,688 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 13:57:50,692 [DEBUG][       Thread-257155][   transport.py][1871] : starting thread (client mode): 0x86393ee0
2025-06-13 13:57:50,692 [DEBUG][       Thread-257155][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 13:57:50,714 [DEBUG][       Thread-257155][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 13:57:50,714 [ INFO][       Thread-257155][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 13:57:50,717 [DEBUG][       Thread-257155][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 13:57:50,717 [DEBUG][       Thread-257155][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 13:57:50,717 [DEBUG][       Thread-257155][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 13:57:50,717 [DEBUG][       Thread-257155][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:57:50,717 [DEBUG][       Thread-257155][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:57:50,717 [DEBUG][       Thread-257155][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:57:50,717 [DEBUG][       Thread-257155][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:57:50,717 [DEBUG][       Thread-257155][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 13:57:50,717 [DEBUG][       Thread-257155][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 13:57:50,717 [DEBUG][       Thread-257155][   transport.py][1871] : client lang: <none>
2025-06-13 13:57:50,717 [DEBUG][       Thread-257155][   transport.py][1871] : server lang: <none>
2025-06-13 13:57:50,717 [DEBUG][       Thread-257155][   transport.py][1871] : kex follows: False
2025-06-13 13:57:50,718 [DEBUG][       Thread-257155][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 13:57:50,718 [DEBUG][       Thread-257155][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 13:57:50,718 [DEBUG][       Thread-257155][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 13:57:50,718 [DEBUG][       Thread-257155][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 13:57:50,718 [DEBUG][       Thread-257155][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 13:57:50,718 [DEBUG][       Thread-257155][   transport.py][1871] : Compression: none
2025-06-13 13:57:50,718 [DEBUG][       Thread-257155][   transport.py][1871] : === End of kex handshake ===
2025-06-13 13:57:50,726 [DEBUG][       Thread-257155][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 13:57:50,726 [DEBUG][       Thread-257155][   transport.py][1871] : Switch to new keys ...
2025-06-13 13:57:50,726 [DEBUG][       Thread-257155][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 13:57:50,727 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 13:57:50,727 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 13:57:50,728 [DEBUG][       Thread-257155][   transport.py][1871] : userauth is OK
2025-06-13 13:57:50,741 [ INFO][       Thread-257155][   transport.py][1871] : Authentication (password) successful!
2025-06-13 13:57:50,741 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 13:57:51,383 [DEBUG][       Thread-257155][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 13:57:51,383 [DEBUG][       Thread-257155][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 13:57:51,429 [DEBUG][       Thread-257155][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 13:57:51,429 [DEBUG][       Thread-257155][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 13:57:51,432 [DEBUG][       Thread-257155][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 13:57:51,443 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 13:57:51,444 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 13:57:51,445 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 13:57:51,447 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 13:57:51,452 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 13:57:51,454 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 13:57:51,454 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 13:57:51,455 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 13:57:51,455 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.498201 -999.00  +13.50  24.74     35   -1.50 1 1 1 1 1   887    0 15.63 19.09 ----- 22.7 24.7 59.6 27.1 17.7 -29.8 16.5 -31.2 16.8 -30.4 18.1 -28.1
2025-06-13 13:57:51,455 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 13:57:51,455 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 13:57:51,455 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.498201
2025-06-13 13:57:51,456 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 13:57:51,456 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 13:57:51,456 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 13:57:51,456 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 13:57:51,456 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 13:57:51,456 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T13:57:23', tmtdew=17.58, humidity=29.43, cloud=0.0, wind=18.35, temperature=13.67, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T11:57:24.566', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 13:57:51,457 [DEBUG][       Thread-257155][   transport.py][1871] : EOF in transport thread
2025-06-13 13:57:51,539 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 13:57:51,549 [DEBUG][       Thread-257158][   transport.py][1871] : starting thread (client mode): 0x867b78b0
2025-06-13 13:57:51,549 [DEBUG][       Thread-257158][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 13:57:51,564 [DEBUG][       Thread-257158][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 13:57:51,564 [ INFO][       Thread-257158][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 13:57:51,572 [DEBUG][       Thread-257158][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 13:57:51,572 [DEBUG][       Thread-257158][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 13:57:51,572 [DEBUG][       Thread-257158][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 13:57:51,572 [DEBUG][       Thread-257158][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:57:51,572 [DEBUG][       Thread-257158][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:57:51,572 [DEBUG][       Thread-257158][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:57:51,572 [DEBUG][       Thread-257158][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:57:51,572 [DEBUG][       Thread-257158][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 13:57:51,572 [DEBUG][       Thread-257158][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 13:57:51,572 [DEBUG][       Thread-257158][   transport.py][1871] : client lang: <none>
2025-06-13 13:57:51,573 [DEBUG][       Thread-257158][   transport.py][1871] : server lang: <none>
2025-06-13 13:57:51,573 [DEBUG][       Thread-257158][   transport.py][1871] : kex follows: False
2025-06-13 13:57:51,573 [DEBUG][       Thread-257158][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 13:57:51,573 [DEBUG][       Thread-257158][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 13:57:51,573 [DEBUG][       Thread-257158][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 13:57:51,573 [DEBUG][       Thread-257158][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 13:57:51,573 [DEBUG][       Thread-257158][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 13:57:51,573 [DEBUG][       Thread-257158][   transport.py][1871] : Compression: none
2025-06-13 13:57:51,573 [DEBUG][       Thread-257158][   transport.py][1871] : === End of kex handshake ===
2025-06-13 13:57:51,634 [DEBUG][       Thread-257158][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 13:57:51,634 [DEBUG][       Thread-257158][   transport.py][1871] : Switch to new keys ...
2025-06-13 13:57:51,635 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 13:57:51,636 [DEBUG][       Thread-257158][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 13:57:51,636 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 13:57:51,699 [DEBUG][       Thread-257158][   transport.py][1871] : userauth is OK
2025-06-13 13:57:51,699 [DEBUG][       Thread-257158][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 13:57:51,699 [DEBUG][       Thread-257158][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 13:57:51,699 [DEBUG][       Thread-257158][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 13:57:51,699 [DEBUG][       Thread-257158][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 13:57:51,715 [ INFO][       Thread-257158][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 13:57:51,715 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 13:57:51,715 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 13:57:52,238 [DEBUG][Thread-257160 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:57:52,723 [DEBUG][       Thread-257158][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 13:57:52,723 [DEBUG][       Thread-257158][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 13:57:52,772 [DEBUG][       Thread-257158][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 13:57:52,772 [DEBUG][       Thread-257158][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 13:57:52,782 [DEBUG][       Thread-257158][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 13:57:52,791 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 13:57:52,791 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 13:57:52,800 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 13:57:52,809 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 13:57:52,809 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 13:57:52,810 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 13:57:52,818 [DEBUG][       Thread-257158][   transport.py][1871] : EOF in transport thread
2025-06-13 13:57:56,640 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:57:56,641 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:58:01,258 [DEBUG][Thread-257161 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:58:02,820 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 13:58:02,820 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 13:58:02,820 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 13:58:02,823 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 13:58:03,274 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 13, 57, 55), 17.42, 29.76, 0.0, 21.76, 13.66, 0, 0, 0, 2, 0, 0),)
2025-06-13 13:58:03,274 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 13:57:55
2025-06-13 13:58:03,356 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 13:58:03,360 [DEBUG][       Thread-257162][   transport.py][1871] : starting thread (client mode): 0x867fcf70
2025-06-13 13:58:03,360 [DEBUG][       Thread-257162][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 13:58:03,380 [DEBUG][       Thread-257162][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 13:58:03,380 [ INFO][       Thread-257162][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 13:58:03,384 [DEBUG][       Thread-257162][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 13:58:03,384 [DEBUG][       Thread-257162][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 13:58:03,384 [DEBUG][       Thread-257162][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 13:58:03,384 [DEBUG][       Thread-257162][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:58:03,384 [DEBUG][       Thread-257162][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:58:03,384 [DEBUG][       Thread-257162][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:58:03,384 [DEBUG][       Thread-257162][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:58:03,384 [DEBUG][       Thread-257162][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 13:58:03,384 [DEBUG][       Thread-257162][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 13:58:03,384 [DEBUG][       Thread-257162][   transport.py][1871] : client lang: <none>
2025-06-13 13:58:03,384 [DEBUG][       Thread-257162][   transport.py][1871] : server lang: <none>
2025-06-13 13:58:03,384 [DEBUG][       Thread-257162][   transport.py][1871] : kex follows: False
2025-06-13 13:58:03,384 [DEBUG][       Thread-257162][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 13:58:03,384 [DEBUG][       Thread-257162][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 13:58:03,384 [DEBUG][       Thread-257162][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 13:58:03,384 [DEBUG][       Thread-257162][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 13:58:03,384 [DEBUG][       Thread-257162][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 13:58:03,384 [DEBUG][       Thread-257162][   transport.py][1871] : Compression: none
2025-06-13 13:58:03,384 [DEBUG][       Thread-257162][   transport.py][1871] : === End of kex handshake ===
2025-06-13 13:58:03,403 [DEBUG][       Thread-257162][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 13:58:03,403 [DEBUG][       Thread-257162][   transport.py][1871] : Switch to new keys ...
2025-06-13 13:58:03,404 [DEBUG][       Thread-257162][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 13:58:03,404 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 13:58:03,404 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 13:58:03,405 [DEBUG][       Thread-257162][   transport.py][1871] : userauth is OK
2025-06-13 13:58:03,418 [ INFO][       Thread-257162][   transport.py][1871] : Authentication (password) successful!
2025-06-13 13:58:03,419 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 13:58:04,082 [DEBUG][       Thread-257162][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 13:58:04,082 [DEBUG][       Thread-257162][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 13:58:04,125 [DEBUG][       Thread-257162][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 13:58:04,125 [DEBUG][       Thread-257162][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 13:58:04,128 [DEBUG][       Thread-257162][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 13:58:04,142 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 13:58:04,142 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 13:58:04,144 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 13:58:04,146 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 13:58:04,152 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 13:58:04,154 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 13:58:04,155 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 13:58:04,155 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 13:58:04,156 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.498201 -999.00  +13.50  24.74     35   -1.50 1 1 1 1 1   887    0 15.63 19.09 ----- 22.7 24.7 59.6 27.1 17.7 -29.8 16.5 -31.2 16.8 -30.4 18.1 -28.1
2025-06-13 13:58:04,156 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 13:58:04,156 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 13:58:04,156 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.498201
2025-06-13 13:58:04,156 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 13:58:04,157 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 13:58:04,157 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 13:58:04,157 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 13:58:04,157 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 13:58:04,157 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T13:57:55', tmtdew=17.42, humidity=29.76, cloud=0.0, wind=21.76, temperature=13.66, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T11:57:24.566', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 13:58:04,158 [DEBUG][       Thread-257162][   transport.py][1871] : EOF in transport thread
2025-06-13 13:58:04,241 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 13:58:04,252 [DEBUG][       Thread-257165][   transport.py][1871] : starting thread (client mode): 0x863beb00
2025-06-13 13:58:04,252 [DEBUG][       Thread-257165][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 13:58:04,268 [DEBUG][       Thread-257165][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 13:58:04,268 [ INFO][       Thread-257165][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 13:58:04,286 [DEBUG][       Thread-257165][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 13:58:04,286 [DEBUG][       Thread-257165][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 13:58:04,286 [DEBUG][       Thread-257165][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 13:58:04,286 [DEBUG][       Thread-257165][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:58:04,286 [DEBUG][       Thread-257165][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:58:04,286 [DEBUG][       Thread-257165][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:58:04,286 [DEBUG][       Thread-257165][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:58:04,286 [DEBUG][       Thread-257165][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 13:58:04,286 [DEBUG][       Thread-257165][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 13:58:04,287 [DEBUG][       Thread-257165][   transport.py][1871] : client lang: <none>
2025-06-13 13:58:04,287 [DEBUG][       Thread-257165][   transport.py][1871] : server lang: <none>
2025-06-13 13:58:04,287 [DEBUG][       Thread-257165][   transport.py][1871] : kex follows: False
2025-06-13 13:58:04,287 [DEBUG][       Thread-257165][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 13:58:04,287 [DEBUG][       Thread-257165][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 13:58:04,287 [DEBUG][       Thread-257165][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 13:58:04,287 [DEBUG][       Thread-257165][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 13:58:04,287 [DEBUG][       Thread-257165][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 13:58:04,287 [DEBUG][       Thread-257165][   transport.py][1871] : Compression: none
2025-06-13 13:58:04,287 [DEBUG][       Thread-257165][   transport.py][1871] : === End of kex handshake ===
2025-06-13 13:58:04,341 [DEBUG][       Thread-257165][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 13:58:04,342 [DEBUG][       Thread-257165][   transport.py][1871] : Switch to new keys ...
2025-06-13 13:58:04,342 [DEBUG][       Thread-257165][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 13:58:04,343 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 13:58:04,343 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 13:58:04,399 [DEBUG][       Thread-257165][   transport.py][1871] : userauth is OK
2025-06-13 13:58:04,399 [DEBUG][       Thread-257165][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 13:58:04,400 [DEBUG][       Thread-257165][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 13:58:04,400 [DEBUG][       Thread-257165][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 13:58:04,400 [DEBUG][       Thread-257165][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 13:58:04,419 [ INFO][       Thread-257165][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 13:58:04,420 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 13:58:04,420 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 13:58:05,447 [DEBUG][       Thread-257165][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 13:58:05,447 [DEBUG][       Thread-257165][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 13:58:05,496 [DEBUG][       Thread-257165][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 13:58:05,496 [DEBUG][       Thread-257165][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 13:58:05,506 [DEBUG][       Thread-257165][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 13:58:05,515 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 13:58:05,515 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 13:58:05,524 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 13:58:05,533 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 13:58:05,533 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 13:58:05,534 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 13:58:05,542 [DEBUG][       Thread-257165][   transport.py][1871] : EOF in transport thread
2025-06-13 13:58:07,254 [DEBUG][Thread-257167 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:58:08,334 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:58:08,335 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:58:10,282 [DEBUG][Thread-257168 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:58:15,544 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 13:58:15,544 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 13:58:15,544 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 13:58:15,547 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 13:58:16,005 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 13, 57, 55), 17.42, 29.76, 0.0, 21.76, 13.66, 0, 0, 0, 2, 0, 0),)
2025-06-13 13:58:16,005 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 13:57:55
2025-06-13 13:58:16,086 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 13:58:16,092 [DEBUG][       Thread-257169][   transport.py][1871] : starting thread (client mode): 0x867ffdf0
2025-06-13 13:58:16,092 [DEBUG][       Thread-257169][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 13:58:16,112 [DEBUG][       Thread-257169][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 13:58:16,113 [ INFO][       Thread-257169][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 13:58:16,116 [DEBUG][       Thread-257169][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 13:58:16,116 [DEBUG][       Thread-257169][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 13:58:16,116 [DEBUG][       Thread-257169][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 13:58:16,116 [DEBUG][       Thread-257169][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:58:16,116 [DEBUG][       Thread-257169][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:58:16,116 [DEBUG][       Thread-257169][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:58:16,116 [DEBUG][       Thread-257169][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:58:16,116 [DEBUG][       Thread-257169][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 13:58:16,116 [DEBUG][       Thread-257169][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 13:58:16,116 [DEBUG][       Thread-257169][   transport.py][1871] : client lang: <none>
2025-06-13 13:58:16,116 [DEBUG][       Thread-257169][   transport.py][1871] : server lang: <none>
2025-06-13 13:58:16,116 [DEBUG][       Thread-257169][   transport.py][1871] : kex follows: False
2025-06-13 13:58:16,116 [DEBUG][       Thread-257169][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 13:58:16,116 [DEBUG][       Thread-257169][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 13:58:16,117 [DEBUG][       Thread-257169][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 13:58:16,117 [DEBUG][       Thread-257169][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 13:58:16,117 [DEBUG][       Thread-257169][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 13:58:16,117 [DEBUG][       Thread-257169][   transport.py][1871] : Compression: none
2025-06-13 13:58:16,117 [DEBUG][       Thread-257169][   transport.py][1871] : === End of kex handshake ===
2025-06-13 13:58:16,134 [DEBUG][       Thread-257169][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 13:58:16,134 [DEBUG][       Thread-257169][   transport.py][1871] : Switch to new keys ...
2025-06-13 13:58:16,135 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 13:58:16,135 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 13:58:16,136 [DEBUG][       Thread-257169][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 13:58:16,136 [DEBUG][       Thread-257169][   transport.py][1871] : userauth is OK
2025-06-13 13:58:16,161 [ INFO][       Thread-257169][   transport.py][1871] : Authentication (password) successful!
2025-06-13 13:58:16,162 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 13:58:16,722 [DEBUG][Thread-257171 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:58:16,782 [DEBUG][       Thread-257169][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 13:58:16,782 [DEBUG][       Thread-257169][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 13:58:16,825 [DEBUG][       Thread-257169][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 13:58:16,825 [DEBUG][       Thread-257169][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 13:58:16,828 [DEBUG][       Thread-257169][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 13:58:16,839 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 13:58:16,840 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 13:58:16,842 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 13:58:16,843 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 13:58:16,849 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 13:58:16,850 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 13:58:16,851 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 13:58:16,851 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 13:58:16,852 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.498548 -999.00  +13.50  23.48     35   -1.50 1 1 1 1 1   887    0 15.54 18.63 ----- 20.6 23.5 56.2 26.2 17.6 -30.9 16.5 -31.8 16.8 -30.6 18.1 -28.8
2025-06-13 13:58:16,852 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 13:58:16,852 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 13:58:16,852 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.498548
2025-06-13 13:58:16,852 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 13:58:16,853 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 13:58:16,853 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 13:58:16,853 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 13:58:16,853 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 13:58:16,853 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T13:57:55', tmtdew=17.42, humidity=29.76, cloud=0.0, wind=21.76, temperature=13.66, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T11:57:54.547', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 13:58:16,854 [DEBUG][       Thread-257169][   transport.py][1871] : EOF in transport thread
2025-06-13 13:58:16,936 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 13:58:16,948 [DEBUG][       Thread-257173][   transport.py][1871] : starting thread (client mode): 0x86351ba0
2025-06-13 13:58:16,948 [DEBUG][       Thread-257173][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 13:58:16,966 [DEBUG][       Thread-257173][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 13:58:16,966 [ INFO][       Thread-257173][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 13:58:16,982 [DEBUG][       Thread-257173][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 13:58:16,983 [DEBUG][       Thread-257173][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 13:58:16,983 [DEBUG][       Thread-257173][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 13:58:16,983 [DEBUG][       Thread-257173][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:58:16,983 [DEBUG][       Thread-257173][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:58:16,983 [DEBUG][       Thread-257173][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:58:16,983 [DEBUG][       Thread-257173][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:58:16,983 [DEBUG][       Thread-257173][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 13:58:16,983 [DEBUG][       Thread-257173][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 13:58:16,983 [DEBUG][       Thread-257173][   transport.py][1871] : client lang: <none>
2025-06-13 13:58:16,983 [DEBUG][       Thread-257173][   transport.py][1871] : server lang: <none>
2025-06-13 13:58:16,983 [DEBUG][       Thread-257173][   transport.py][1871] : kex follows: False
2025-06-13 13:58:16,983 [DEBUG][       Thread-257173][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 13:58:16,983 [DEBUG][       Thread-257173][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 13:58:16,983 [DEBUG][       Thread-257173][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 13:58:16,984 [DEBUG][       Thread-257173][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 13:58:16,984 [DEBUG][       Thread-257173][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 13:58:16,984 [DEBUG][       Thread-257173][   transport.py][1871] : Compression: none
2025-06-13 13:58:16,984 [DEBUG][       Thread-257173][   transport.py][1871] : === End of kex handshake ===
2025-06-13 13:58:17,051 [DEBUG][       Thread-257173][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 13:58:17,051 [DEBUG][       Thread-257173][   transport.py][1871] : Switch to new keys ...
2025-06-13 13:58:17,052 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 13:58:17,052 [DEBUG][       Thread-257173][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 13:58:17,053 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 13:58:17,116 [DEBUG][       Thread-257173][   transport.py][1871] : userauth is OK
2025-06-13 13:58:17,116 [DEBUG][       Thread-257173][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 13:58:17,117 [DEBUG][       Thread-257173][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 13:58:17,117 [DEBUG][       Thread-257173][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 13:58:17,117 [DEBUG][       Thread-257173][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 13:58:17,150 [ INFO][       Thread-257173][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 13:58:17,151 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 13:58:17,151 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 13:58:18,115 [DEBUG][       Thread-257173][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 13:58:18,115 [DEBUG][       Thread-257173][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 13:58:18,164 [DEBUG][       Thread-257173][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 13:58:18,164 [DEBUG][       Thread-257173][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 13:58:18,176 [DEBUG][       Thread-257173][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 13:58:18,185 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 13:58:18,186 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 13:58:18,201 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 13:58:18,214 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 13:58:18,214 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 13:58:18,214 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 13:58:18,227 [DEBUG][       Thread-257173][   transport.py][1871] : EOF in transport thread
2025-06-13 13:58:19,320 [DEBUG][Thread-257175 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:58:28,225 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 13:58:28,225 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 13:58:28,225 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 13:58:28,228 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 13:58:28,340 [DEBUG][Thread-257176 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:58:28,690 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 13, 57, 55), 17.42, 29.76, 0.0, 21.76, 13.66, 0, 0, 0, 2, 0, 0),)
2025-06-13 13:58:28,690 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 13:57:55
2025-06-13 13:58:28,771 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 13:58:28,776 [DEBUG][       Thread-257177][   transport.py][1871] : starting thread (client mode): 0x86351de0
2025-06-13 13:58:28,776 [DEBUG][       Thread-257177][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 13:58:28,796 [DEBUG][       Thread-257177][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 13:58:28,796 [ INFO][       Thread-257177][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 13:58:28,799 [DEBUG][       Thread-257177][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 13:58:28,799 [DEBUG][       Thread-257177][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 13:58:28,799 [DEBUG][       Thread-257177][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 13:58:28,799 [DEBUG][       Thread-257177][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:58:28,799 [DEBUG][       Thread-257177][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:58:28,799 [DEBUG][       Thread-257177][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:58:28,800 [DEBUG][       Thread-257177][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:58:28,800 [DEBUG][       Thread-257177][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 13:58:28,800 [DEBUG][       Thread-257177][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 13:58:28,800 [DEBUG][       Thread-257177][   transport.py][1871] : client lang: <none>
2025-06-13 13:58:28,800 [DEBUG][       Thread-257177][   transport.py][1871] : server lang: <none>
2025-06-13 13:58:28,800 [DEBUG][       Thread-257177][   transport.py][1871] : kex follows: False
2025-06-13 13:58:28,800 [DEBUG][       Thread-257177][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 13:58:28,800 [DEBUG][       Thread-257177][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 13:58:28,800 [DEBUG][       Thread-257177][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 13:58:28,800 [DEBUG][       Thread-257177][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 13:58:28,800 [DEBUG][       Thread-257177][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 13:58:28,800 [DEBUG][       Thread-257177][   transport.py][1871] : Compression: none
2025-06-13 13:58:28,800 [DEBUG][       Thread-257177][   transport.py][1871] : === End of kex handshake ===
2025-06-13 13:58:28,817 [DEBUG][       Thread-257177][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 13:58:28,818 [DEBUG][       Thread-257177][   transport.py][1871] : Switch to new keys ...
2025-06-13 13:58:28,818 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 13:58:28,818 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 13:58:28,819 [DEBUG][       Thread-257177][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 13:58:28,820 [DEBUG][       Thread-257177][   transport.py][1871] : userauth is OK
2025-06-13 13:58:28,832 [ INFO][       Thread-257177][   transport.py][1871] : Authentication (password) successful!
2025-06-13 13:58:28,833 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 13:58:29,479 [DEBUG][       Thread-257177][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 13:58:29,479 [DEBUG][       Thread-257177][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 13:58:29,521 [DEBUG][       Thread-257177][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 13:58:29,521 [DEBUG][       Thread-257177][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 13:58:29,524 [DEBUG][       Thread-257177][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 13:58:29,538 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 13:58:29,538 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 13:58:29,540 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 13:58:29,542 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 13:58:29,548 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 13:58:29,550 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 13:58:29,550 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 13:58:29,551 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 13:58:29,551 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.498548 -999.00  +13.50  23.48     35   -1.50 1 1 1 1 1   887    0 15.54 18.63 ----- 20.6 23.5 56.2 26.2 17.6 -30.9 16.5 -31.8 16.8 -30.6 18.1 -28.8
2025-06-13 13:58:29,551 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 13:58:29,551 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 13:58:29,551 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.498548
2025-06-13 13:58:29,552 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 13:58:29,552 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 13:58:29,552 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 13:58:29,552 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 13:58:29,552 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 13:58:29,552 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T13:57:55', tmtdew=17.42, humidity=29.76, cloud=0.0, wind=21.76, temperature=13.66, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T11:57:54.547', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 13:58:29,554 [DEBUG][       Thread-257177][   transport.py][1871] : EOF in transport thread
2025-06-13 13:58:29,636 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 13:58:29,646 [DEBUG][       Thread-257180][   transport.py][1871] : starting thread (client mode): 0x863be050
2025-06-13 13:58:29,646 [DEBUG][       Thread-257180][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 13:58:29,661 [DEBUG][       Thread-257180][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 13:58:29,661 [ INFO][       Thread-257180][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 13:58:29,668 [DEBUG][       Thread-257180][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 13:58:29,668 [DEBUG][       Thread-257180][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 13:58:29,668 [DEBUG][       Thread-257180][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 13:58:29,668 [DEBUG][       Thread-257180][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:58:29,669 [DEBUG][       Thread-257180][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:58:29,669 [DEBUG][       Thread-257180][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:58:29,669 [DEBUG][       Thread-257180][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:58:29,669 [DEBUG][       Thread-257180][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 13:58:29,669 [DEBUG][       Thread-257180][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 13:58:29,669 [DEBUG][       Thread-257180][   transport.py][1871] : client lang: <none>
2025-06-13 13:58:29,669 [DEBUG][       Thread-257180][   transport.py][1871] : server lang: <none>
2025-06-13 13:58:29,669 [DEBUG][       Thread-257180][   transport.py][1871] : kex follows: False
2025-06-13 13:58:29,669 [DEBUG][       Thread-257180][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 13:58:29,669 [DEBUG][       Thread-257180][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 13:58:29,669 [DEBUG][       Thread-257180][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 13:58:29,669 [DEBUG][       Thread-257180][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 13:58:29,669 [DEBUG][       Thread-257180][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 13:58:29,669 [DEBUG][       Thread-257180][   transport.py][1871] : Compression: none
2025-06-13 13:58:29,669 [DEBUG][       Thread-257180][   transport.py][1871] : === End of kex handshake ===
2025-06-13 13:58:29,733 [DEBUG][       Thread-257180][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 13:58:29,733 [DEBUG][       Thread-257180][   transport.py][1871] : Switch to new keys ...
2025-06-13 13:58:29,734 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 13:58:29,734 [DEBUG][       Thread-257180][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 13:58:29,735 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 13:58:29,791 [DEBUG][       Thread-257180][   transport.py][1871] : userauth is OK
2025-06-13 13:58:29,791 [DEBUG][       Thread-257180][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 13:58:29,792 [DEBUG][       Thread-257180][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 13:58:29,792 [DEBUG][       Thread-257180][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 13:58:29,792 [DEBUG][       Thread-257180][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 13:58:29,811 [ INFO][       Thread-257180][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 13:58:29,811 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 13:58:29,811 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 13:58:30,817 [DEBUG][       Thread-257180][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 13:58:30,817 [DEBUG][       Thread-257180][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 13:58:30,867 [DEBUG][       Thread-257180][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 13:58:30,867 [DEBUG][       Thread-257180][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 13:58:30,876 [DEBUG][       Thread-257180][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 13:58:30,883 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 13:58:30,883 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 13:58:30,891 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 13:58:30,899 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 13:58:30,899 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 13:58:30,899 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 13:58:30,907 [DEBUG][       Thread-257180][   transport.py][1871] : EOF in transport thread
2025-06-13 13:58:37,358 [DEBUG][Thread-257182 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:58:40,904 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 13:58:40,904 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 13:58:40,904 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 13:58:40,907 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 13:58:41,361 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 13, 58, 27), 17.36, 29.89, 0.0, 14.84, 13.85, 0, 0, 0, 2, 0, 0),)
2025-06-13 13:58:41,361 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 13:58:27
2025-06-13 13:58:41,443 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 13:58:41,448 [DEBUG][       Thread-257183][   transport.py][1871] : starting thread (client mode): 0x867fe590
2025-06-13 13:58:41,448 [DEBUG][       Thread-257183][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 13:58:41,464 [DEBUG][       Thread-257183][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 13:58:41,464 [ INFO][       Thread-257183][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 13:58:41,468 [DEBUG][       Thread-257183][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 13:58:41,468 [DEBUG][       Thread-257183][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 13:58:41,468 [DEBUG][       Thread-257183][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 13:58:41,468 [DEBUG][       Thread-257183][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:58:41,468 [DEBUG][       Thread-257183][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:58:41,468 [DEBUG][       Thread-257183][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:58:41,468 [DEBUG][       Thread-257183][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:58:41,468 [DEBUG][       Thread-257183][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 13:58:41,468 [DEBUG][       Thread-257183][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 13:58:41,469 [DEBUG][       Thread-257183][   transport.py][1871] : client lang: <none>
2025-06-13 13:58:41,469 [DEBUG][       Thread-257183][   transport.py][1871] : server lang: <none>
2025-06-13 13:58:41,469 [DEBUG][       Thread-257183][   transport.py][1871] : kex follows: False
2025-06-13 13:58:41,469 [DEBUG][       Thread-257183][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 13:58:41,469 [DEBUG][       Thread-257183][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 13:58:41,469 [DEBUG][       Thread-257183][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 13:58:41,469 [DEBUG][       Thread-257183][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 13:58:41,469 [DEBUG][       Thread-257183][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 13:58:41,469 [DEBUG][       Thread-257183][   transport.py][1871] : Compression: none
2025-06-13 13:58:41,469 [DEBUG][       Thread-257183][   transport.py][1871] : === End of kex handshake ===
2025-06-13 13:58:41,486 [DEBUG][       Thread-257183][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 13:58:41,486 [DEBUG][       Thread-257183][   transport.py][1871] : Switch to new keys ...
2025-06-13 13:58:41,487 [DEBUG][       Thread-257183][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 13:58:41,487 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 13:58:41,487 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 13:58:41,488 [DEBUG][       Thread-257183][   transport.py][1871] : userauth is OK
2025-06-13 13:58:41,513 [ INFO][       Thread-257183][   transport.py][1871] : Authentication (password) successful!
2025-06-13 13:58:41,514 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 13:58:42,183 [DEBUG][       Thread-257183][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 13:58:42,183 [DEBUG][       Thread-257183][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 13:58:42,225 [DEBUG][       Thread-257183][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 13:58:42,225 [DEBUG][       Thread-257183][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 13:58:42,228 [DEBUG][       Thread-257183][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 13:58:42,240 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 13:58:42,241 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 13:58:42,243 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 13:58:42,244 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 13:58:42,250 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 13:58:42,252 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 13:58:42,252 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 13:58:42,253 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 13:58:42,253 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.498895 -999.00  +13.50  23.55     34   -1.70 1 1 1 1 1   887    0 15.49 18.72 ----- 26.6 23.6 63.2 25.2 17.7 -30.2 16.4 -32.8 16.8 -31.0 18.2 -28.5
2025-06-13 13:58:42,253 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 13:58:42,253 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 13:58:42,253 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.498895
2025-06-13 13:58:42,254 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 13:58:42,254 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 13:58:42,254 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 13:58:42,254 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 13:58:42,254 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 13:58:42,255 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T13:58:27', tmtdew=17.36, humidity=29.89, cloud=0.0, wind=14.84, temperature=13.85, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T11:58:24.528', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 13:58:42,256 [DEBUG][       Thread-257183][   transport.py][1871] : EOF in transport thread
2025-06-13 13:58:42,338 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 13:58:42,350 [DEBUG][       Thread-257186][   transport.py][1871] : starting thread (client mode): 0x863ee470
2025-06-13 13:58:42,350 [DEBUG][       Thread-257186][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 13:58:42,365 [DEBUG][       Thread-257186][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 13:58:42,365 [ INFO][       Thread-257186][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 13:58:42,372 [DEBUG][       Thread-257186][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 13:58:42,372 [DEBUG][       Thread-257186][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 13:58:42,372 [DEBUG][       Thread-257186][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 13:58:42,372 [DEBUG][       Thread-257186][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:58:42,372 [DEBUG][       Thread-257186][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:58:42,373 [DEBUG][       Thread-257186][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:58:42,373 [DEBUG][       Thread-257186][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:58:42,373 [DEBUG][       Thread-257186][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 13:58:42,373 [DEBUG][       Thread-257186][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 13:58:42,373 [DEBUG][       Thread-257186][   transport.py][1871] : client lang: <none>
2025-06-13 13:58:42,373 [DEBUG][       Thread-257186][   transport.py][1871] : server lang: <none>
2025-06-13 13:58:42,373 [DEBUG][       Thread-257186][   transport.py][1871] : kex follows: False
2025-06-13 13:58:42,373 [DEBUG][       Thread-257186][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 13:58:42,373 [DEBUG][       Thread-257186][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 13:58:42,373 [DEBUG][       Thread-257186][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 13:58:42,373 [DEBUG][       Thread-257186][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 13:58:42,373 [DEBUG][       Thread-257186][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 13:58:42,373 [DEBUG][       Thread-257186][   transport.py][1871] : Compression: none
2025-06-13 13:58:42,373 [DEBUG][       Thread-257186][   transport.py][1871] : === End of kex handshake ===
2025-06-13 13:58:42,432 [DEBUG][       Thread-257186][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 13:58:42,432 [DEBUG][       Thread-257186][   transport.py][1871] : Switch to new keys ...
2025-06-13 13:58:42,433 [DEBUG][       Thread-257186][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 13:58:42,434 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 13:58:42,434 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 13:58:42,492 [DEBUG][       Thread-257186][   transport.py][1871] : userauth is OK
2025-06-13 13:58:42,492 [DEBUG][       Thread-257186][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 13:58:42,492 [DEBUG][       Thread-257186][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 13:58:42,492 [DEBUG][       Thread-257186][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 13:58:42,492 [DEBUG][       Thread-257186][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 13:58:42,510 [ INFO][       Thread-257186][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 13:58:42,511 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 13:58:42,511 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 13:58:43,546 [DEBUG][       Thread-257186][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 13:58:43,546 [DEBUG][       Thread-257186][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 13:58:43,599 [DEBUG][       Thread-257186][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 13:58:43,600 [DEBUG][       Thread-257186][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 13:58:43,609 [DEBUG][       Thread-257186][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 13:58:43,618 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 13:58:43,619 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 13:58:43,627 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 13:58:43,638 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 13:58:43,638 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 13:58:43,639 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 13:58:43,647 [DEBUG][       Thread-257186][   transport.py][1871] : EOF in transport thread
2025-06-13 13:58:46,381 [DEBUG][Thread-257188 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:58:53,649 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 13:58:53,650 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 13:58:53,650 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 13:58:53,653 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 13:58:54,105 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 13, 58, 27), 17.36, 29.89, 0.0, 14.84, 13.85, 0, 0, 0, 2, 0, 0),)
2025-06-13 13:58:54,105 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 13:58:27
2025-06-13 13:58:54,186 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 13:58:54,191 [DEBUG][       Thread-257189][   transport.py][1871] : starting thread (client mode): 0x86351f30
2025-06-13 13:58:54,191 [DEBUG][       Thread-257189][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 13:58:54,211 [DEBUG][       Thread-257189][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 13:58:54,211 [ INFO][       Thread-257189][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 13:58:54,214 [DEBUG][       Thread-257189][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 13:58:54,214 [DEBUG][       Thread-257189][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 13:58:54,214 [DEBUG][       Thread-257189][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 13:58:54,214 [DEBUG][       Thread-257189][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:58:54,214 [DEBUG][       Thread-257189][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:58:54,214 [DEBUG][       Thread-257189][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:58:54,214 [DEBUG][       Thread-257189][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:58:54,214 [DEBUG][       Thread-257189][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 13:58:54,214 [DEBUG][       Thread-257189][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 13:58:54,214 [DEBUG][       Thread-257189][   transport.py][1871] : client lang: <none>
2025-06-13 13:58:54,215 [DEBUG][       Thread-257189][   transport.py][1871] : server lang: <none>
2025-06-13 13:58:54,215 [DEBUG][       Thread-257189][   transport.py][1871] : kex follows: False
2025-06-13 13:58:54,215 [DEBUG][       Thread-257189][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 13:58:54,215 [DEBUG][       Thread-257189][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 13:58:54,215 [DEBUG][       Thread-257189][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 13:58:54,215 [DEBUG][       Thread-257189][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 13:58:54,215 [DEBUG][       Thread-257189][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 13:58:54,215 [DEBUG][       Thread-257189][   transport.py][1871] : Compression: none
2025-06-13 13:58:54,215 [DEBUG][       Thread-257189][   transport.py][1871] : === End of kex handshake ===
2025-06-13 13:58:54,232 [DEBUG][       Thread-257189][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 13:58:54,232 [DEBUG][       Thread-257189][   transport.py][1871] : Switch to new keys ...
2025-06-13 13:58:54,233 [DEBUG][       Thread-257189][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 13:58:54,233 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 13:58:54,233 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 13:58:54,234 [DEBUG][       Thread-257189][   transport.py][1871] : userauth is OK
2025-06-13 13:58:54,259 [ INFO][       Thread-257189][   transport.py][1871] : Authentication (password) successful!
2025-06-13 13:58:54,260 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 13:58:54,870 [DEBUG][       Thread-257189][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 13:58:54,871 [DEBUG][       Thread-257189][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 13:58:54,913 [DEBUG][       Thread-257189][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 13:58:54,913 [DEBUG][       Thread-257189][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 13:58:54,916 [DEBUG][       Thread-257189][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 13:58:54,929 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 13:58:54,930 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 13:58:54,932 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 13:58:54,934 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 13:58:54,940 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 13:58:54,942 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 13:58:54,942 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 13:58:54,943 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 13:58:54,943 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.498895 -999.00  +13.50  23.55     34   -1.70 1 1 1 1 1   887    0 15.49 18.72 ----- 26.6 23.6 63.2 25.2 17.7 -30.2 16.4 -32.8 16.8 -31.0 18.2 -28.5
2025-06-13 13:58:54,943 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 13:58:54,943 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 13:58:54,943 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.498895
2025-06-13 13:58:54,944 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 13:58:54,944 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 13:58:54,944 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 13:58:54,945 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 13:58:54,945 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 13:58:54,945 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T13:58:27', tmtdew=17.36, humidity=29.89, cloud=0.0, wind=14.84, temperature=13.85, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T11:58:24.528', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 13:58:54,946 [DEBUG][       Thread-257189][   transport.py][1871] : EOF in transport thread
2025-06-13 13:58:55,028 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 13:58:55,038 [DEBUG][       Thread-257192][   transport.py][1871] : starting thread (client mode): 0x863c8640
2025-06-13 13:58:55,038 [DEBUG][       Thread-257192][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 13:58:55,053 [DEBUG][       Thread-257192][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 13:58:55,053 [ INFO][       Thread-257192][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 13:58:55,060 [DEBUG][       Thread-257192][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 13:58:55,060 [DEBUG][       Thread-257192][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 13:58:55,061 [DEBUG][       Thread-257192][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 13:58:55,061 [DEBUG][       Thread-257192][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:58:55,061 [DEBUG][       Thread-257192][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:58:55,061 [DEBUG][       Thread-257192][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:58:55,061 [DEBUG][       Thread-257192][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:58:55,061 [DEBUG][       Thread-257192][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 13:58:55,061 [DEBUG][       Thread-257192][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 13:58:55,061 [DEBUG][       Thread-257192][   transport.py][1871] : client lang: <none>
2025-06-13 13:58:55,061 [DEBUG][       Thread-257192][   transport.py][1871] : server lang: <none>
2025-06-13 13:58:55,061 [DEBUG][       Thread-257192][   transport.py][1871] : kex follows: False
2025-06-13 13:58:55,061 [DEBUG][       Thread-257192][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 13:58:55,061 [DEBUG][       Thread-257192][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 13:58:55,061 [DEBUG][       Thread-257192][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 13:58:55,061 [DEBUG][       Thread-257192][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 13:58:55,061 [DEBUG][       Thread-257192][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 13:58:55,061 [DEBUG][       Thread-257192][   transport.py][1871] : Compression: none
2025-06-13 13:58:55,061 [DEBUG][       Thread-257192][   transport.py][1871] : === End of kex handshake ===
2025-06-13 13:58:55,119 [DEBUG][       Thread-257192][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 13:58:55,120 [DEBUG][       Thread-257192][   transport.py][1871] : Switch to new keys ...
2025-06-13 13:58:55,121 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 13:58:55,121 [DEBUG][       Thread-257192][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 13:58:55,122 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 13:58:55,176 [DEBUG][       Thread-257192][   transport.py][1871] : userauth is OK
2025-06-13 13:58:55,176 [DEBUG][       Thread-257192][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 13:58:55,176 [DEBUG][       Thread-257192][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 13:58:55,176 [DEBUG][       Thread-257192][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 13:58:55,176 [DEBUG][       Thread-257192][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 13:58:55,195 [ INFO][       Thread-257192][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 13:58:55,196 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 13:58:55,196 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 13:58:55,416 [DEBUG][Thread-257194 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:58:56,180 [DEBUG][       Thread-257192][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 13:58:56,181 [DEBUG][       Thread-257192][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 13:58:56,235 [DEBUG][       Thread-257192][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 13:58:56,235 [DEBUG][       Thread-257192][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 13:58:56,247 [DEBUG][       Thread-257192][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 13:58:56,256 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 13:58:56,257 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 13:58:56,265 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 13:58:56,274 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 13:58:56,275 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 13:58:56,275 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 13:58:56,283 [DEBUG][       Thread-257192][   transport.py][1871] : EOF in transport thread
2025-06-13 13:58:56,779 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:58:56,780 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:59:04,435 [DEBUG][Thread-257195 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:59:06,285 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 13:59:06,286 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 13:59:06,286 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 13:59:06,289 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 13:59:06,758 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 13, 59, 1), 17.47, 29.67, 0.0, 11.82, 13.8, 0, 0, 0, 2, 0, 0),)
2025-06-13 13:59:06,758 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 13:59:01
2025-06-13 13:59:06,840 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 13:59:06,846 [DEBUG][       Thread-257196][   transport.py][1871] : starting thread (client mode): 0x863c8640
2025-06-13 13:59:06,846 [DEBUG][       Thread-257196][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 13:59:06,866 [DEBUG][       Thread-257196][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 13:59:06,867 [ INFO][       Thread-257196][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 13:59:06,870 [DEBUG][       Thread-257196][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 13:59:06,870 [DEBUG][       Thread-257196][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 13:59:06,870 [DEBUG][       Thread-257196][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 13:59:06,870 [DEBUG][       Thread-257196][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:59:06,870 [DEBUG][       Thread-257196][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:59:06,870 [DEBUG][       Thread-257196][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:59:06,870 [DEBUG][       Thread-257196][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:59:06,870 [DEBUG][       Thread-257196][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 13:59:06,870 [DEBUG][       Thread-257196][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 13:59:06,870 [DEBUG][       Thread-257196][   transport.py][1871] : client lang: <none>
2025-06-13 13:59:06,870 [DEBUG][       Thread-257196][   transport.py][1871] : server lang: <none>
2025-06-13 13:59:06,870 [DEBUG][       Thread-257196][   transport.py][1871] : kex follows: False
2025-06-13 13:59:06,870 [DEBUG][       Thread-257196][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 13:59:06,870 [DEBUG][       Thread-257196][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 13:59:06,870 [DEBUG][       Thread-257196][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 13:59:06,870 [DEBUG][       Thread-257196][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 13:59:06,870 [DEBUG][       Thread-257196][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 13:59:06,870 [DEBUG][       Thread-257196][   transport.py][1871] : Compression: none
2025-06-13 13:59:06,870 [DEBUG][       Thread-257196][   transport.py][1871] : === End of kex handshake ===
2025-06-13 13:59:06,887 [DEBUG][       Thread-257196][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 13:59:06,888 [DEBUG][       Thread-257196][   transport.py][1871] : Switch to new keys ...
2025-06-13 13:59:06,888 [DEBUG][       Thread-257196][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 13:59:06,888 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 13:59:06,889 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 13:59:06,889 [DEBUG][       Thread-257196][   transport.py][1871] : userauth is OK
2025-06-13 13:59:06,903 [ INFO][       Thread-257196][   transport.py][1871] : Authentication (password) successful!
2025-06-13 13:59:06,903 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 13:59:07,521 [DEBUG][       Thread-257196][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 13:59:07,521 [DEBUG][       Thread-257196][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 13:59:07,565 [DEBUG][       Thread-257196][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 13:59:07,565 [DEBUG][       Thread-257196][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 13:59:07,569 [DEBUG][       Thread-257196][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 13:59:07,582 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 13:59:07,582 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 13:59:07,584 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 13:59:07,586 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 13:59:07,592 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 13:59:07,594 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 13:59:07,595 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 13:59:07,595 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 13:59:07,595 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.498895 -999.00  +13.50  23.55     34   -1.70 1 1 1 1 1   887    0 15.49 18.72 ----- 26.6 23.6 63.2 25.2 17.7 -30.2 16.4 -32.8 16.8 -31.0 18.2 -28.5
2025-06-13 13:59:07,596 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 13:59:07,596 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 13:59:07,596 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.498895
2025-06-13 13:59:07,596 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 13:59:07,597 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 13:59:07,597 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 13:59:07,597 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 13:59:07,597 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 13:59:07,597 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T13:59:01', tmtdew=17.47, humidity=29.67, cloud=0.0, wind=11.82, temperature=13.8, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T11:58:24.528', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 13:59:07,598 [DEBUG][       Thread-257196][   transport.py][1871] : EOF in transport thread
2025-06-13 13:59:07,680 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 13:59:07,689 [DEBUG][       Thread-257199][   transport.py][1871] : starting thread (client mode): 0x86893ca0
2025-06-13 13:59:07,689 [DEBUG][       Thread-257199][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 13:59:07,704 [DEBUG][       Thread-257199][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 13:59:07,704 [ INFO][       Thread-257199][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 13:59:07,713 [DEBUG][       Thread-257199][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 13:59:07,713 [DEBUG][       Thread-257199][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 13:59:07,713 [DEBUG][       Thread-257199][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 13:59:07,713 [DEBUG][       Thread-257199][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:59:07,713 [DEBUG][       Thread-257199][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:59:07,713 [DEBUG][       Thread-257199][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:59:07,713 [DEBUG][       Thread-257199][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:59:07,713 [DEBUG][       Thread-257199][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 13:59:07,713 [DEBUG][       Thread-257199][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 13:59:07,713 [DEBUG][       Thread-257199][   transport.py][1871] : client lang: <none>
2025-06-13 13:59:07,713 [DEBUG][       Thread-257199][   transport.py][1871] : server lang: <none>
2025-06-13 13:59:07,713 [DEBUG][       Thread-257199][   transport.py][1871] : kex follows: False
2025-06-13 13:59:07,713 [DEBUG][       Thread-257199][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 13:59:07,714 [DEBUG][       Thread-257199][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 13:59:07,714 [DEBUG][       Thread-257199][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 13:59:07,714 [DEBUG][       Thread-257199][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 13:59:07,714 [DEBUG][       Thread-257199][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 13:59:07,714 [DEBUG][       Thread-257199][   transport.py][1871] : Compression: none
2025-06-13 13:59:07,714 [DEBUG][       Thread-257199][   transport.py][1871] : === End of kex handshake ===
2025-06-13 13:59:07,779 [DEBUG][       Thread-257199][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 13:59:07,780 [DEBUG][       Thread-257199][   transport.py][1871] : Switch to new keys ...
2025-06-13 13:59:07,780 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 13:59:07,781 [DEBUG][       Thread-257199][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 13:59:07,782 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 13:59:07,835 [DEBUG][       Thread-257199][   transport.py][1871] : userauth is OK
2025-06-13 13:59:07,835 [DEBUG][       Thread-257199][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 13:59:07,835 [DEBUG][       Thread-257199][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 13:59:07,835 [DEBUG][       Thread-257199][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 13:59:07,835 [DEBUG][       Thread-257199][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 13:59:07,849 [ INFO][       Thread-257199][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 13:59:07,850 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 13:59:07,850 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 13:59:08,353 [DEBUG][Thread-257201 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:59:08,924 [DEBUG][       Thread-257199][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 13:59:08,925 [DEBUG][       Thread-257199][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 13:59:08,976 [DEBUG][       Thread-257199][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 13:59:08,976 [DEBUG][       Thread-257199][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 13:59:08,985 [DEBUG][       Thread-257199][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 13:59:08,994 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 13:59:08,994 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 13:59:09,003 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 13:59:09,012 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 13:59:09,013 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 13:59:09,013 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 13:59:09,021 [DEBUG][       Thread-257199][   transport.py][1871] : EOF in transport thread
2025-06-13 13:59:09,438 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:59:09,439 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:59:13,454 [DEBUG][Thread-257202 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:59:16,774 [DEBUG][Thread-257203 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:59:19,015 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 13:59:19,015 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 13:59:19,015 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 13:59:19,018 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 13:59:19,487 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 13, 59, 1), 17.47, 29.67, 0.0, 11.82, 13.8, 0, 0, 0, 2, 0, 0),)
2025-06-13 13:59:19,487 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 13:59:01
2025-06-13 13:59:19,570 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 13:59:19,574 [DEBUG][       Thread-257204][   transport.py][1871] : starting thread (client mode): 0x863931c0
2025-06-13 13:59:19,574 [DEBUG][       Thread-257204][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 13:59:19,596 [DEBUG][       Thread-257204][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 13:59:19,596 [ INFO][       Thread-257204][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 13:59:19,598 [DEBUG][       Thread-257204][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 13:59:19,598 [DEBUG][       Thread-257204][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 13:59:19,598 [DEBUG][       Thread-257204][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 13:59:19,598 [DEBUG][       Thread-257204][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:59:19,598 [DEBUG][       Thread-257204][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:59:19,598 [DEBUG][       Thread-257204][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:59:19,598 [DEBUG][       Thread-257204][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:59:19,598 [DEBUG][       Thread-257204][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 13:59:19,598 [DEBUG][       Thread-257204][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 13:59:19,598 [DEBUG][       Thread-257204][   transport.py][1871] : client lang: <none>
2025-06-13 13:59:19,598 [DEBUG][       Thread-257204][   transport.py][1871] : server lang: <none>
2025-06-13 13:59:19,598 [DEBUG][       Thread-257204][   transport.py][1871] : kex follows: False
2025-06-13 13:59:19,598 [DEBUG][       Thread-257204][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 13:59:19,598 [DEBUG][       Thread-257204][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 13:59:19,598 [DEBUG][       Thread-257204][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 13:59:19,598 [DEBUG][       Thread-257204][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 13:59:19,598 [DEBUG][       Thread-257204][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 13:59:19,598 [DEBUG][       Thread-257204][   transport.py][1871] : Compression: none
2025-06-13 13:59:19,598 [DEBUG][       Thread-257204][   transport.py][1871] : === End of kex handshake ===
2025-06-13 13:59:19,615 [DEBUG][       Thread-257204][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 13:59:19,615 [DEBUG][       Thread-257204][   transport.py][1871] : Switch to new keys ...
2025-06-13 13:59:19,616 [DEBUG][       Thread-257204][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 13:59:19,616 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 13:59:19,616 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 13:59:19,617 [DEBUG][       Thread-257204][   transport.py][1871] : userauth is OK
2025-06-13 13:59:19,641 [ INFO][       Thread-257204][   transport.py][1871] : Authentication (password) successful!
2025-06-13 13:59:19,642 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 13:59:20,347 [DEBUG][       Thread-257204][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 13:59:20,347 [DEBUG][       Thread-257204][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 13:59:20,389 [DEBUG][       Thread-257204][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 13:59:20,389 [DEBUG][       Thread-257204][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 13:59:20,392 [DEBUG][       Thread-257204][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 13:59:20,405 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 13:59:20,406 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 13:59:20,408 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 13:59:20,410 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 13:59:20,415 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 13:59:20,417 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 13:59:20,418 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 13:59:20,418 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 13:59:20,418 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.499242 -999.00  +13.40  23.18     35   -1.60 1 1 1 1 1   887    0 15.65 19.57 ----- 23.6 23.2 55.8 28.2 17.6 -30.3 16.6 -31.4 16.8 -30.8 18.2 -28.4
2025-06-13 13:59:20,418 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 13:59:20,419 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 13:59:20,419 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.499242
2025-06-13 13:59:20,419 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 13:59:20,420 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 13:59:20,420 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 13:59:20,420 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 13:59:20,420 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 13:59:20,420 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T13:59:01', tmtdew=17.47, humidity=29.67, cloud=0.0, wind=11.82, temperature=13.8, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T11:58:54.509', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 13:59:20,421 [DEBUG][       Thread-257204][   transport.py][1871] : EOF in transport thread
2025-06-13 13:59:20,504 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 13:59:20,515 [DEBUG][       Thread-257207][   transport.py][1871] : starting thread (client mode): 0x863a7f10
2025-06-13 13:59:20,515 [DEBUG][       Thread-257207][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 13:59:20,530 [DEBUG][       Thread-257207][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 13:59:20,530 [ INFO][       Thread-257207][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 13:59:20,538 [DEBUG][       Thread-257207][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 13:59:20,538 [DEBUG][       Thread-257207][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 13:59:20,538 [DEBUG][       Thread-257207][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 13:59:20,538 [DEBUG][       Thread-257207][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:59:20,538 [DEBUG][       Thread-257207][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:59:20,538 [DEBUG][       Thread-257207][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:59:20,538 [DEBUG][       Thread-257207][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:59:20,538 [DEBUG][       Thread-257207][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 13:59:20,538 [DEBUG][       Thread-257207][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 13:59:20,538 [DEBUG][       Thread-257207][   transport.py][1871] : client lang: <none>
2025-06-13 13:59:20,538 [DEBUG][       Thread-257207][   transport.py][1871] : server lang: <none>
2025-06-13 13:59:20,538 [DEBUG][       Thread-257207][   transport.py][1871] : kex follows: False
2025-06-13 13:59:20,538 [DEBUG][       Thread-257207][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 13:59:20,538 [DEBUG][       Thread-257207][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 13:59:20,538 [DEBUG][       Thread-257207][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 13:59:20,538 [DEBUG][       Thread-257207][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 13:59:20,538 [DEBUG][       Thread-257207][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 13:59:20,538 [DEBUG][       Thread-257207][   transport.py][1871] : Compression: none
2025-06-13 13:59:20,538 [DEBUG][       Thread-257207][   transport.py][1871] : === End of kex handshake ===
2025-06-13 13:59:20,594 [DEBUG][       Thread-257207][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 13:59:20,594 [DEBUG][       Thread-257207][   transport.py][1871] : Switch to new keys ...
2025-06-13 13:59:20,594 [DEBUG][       Thread-257207][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 13:59:20,594 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 13:59:20,594 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 13:59:20,652 [DEBUG][       Thread-257207][   transport.py][1871] : userauth is OK
2025-06-13 13:59:20,652 [DEBUG][       Thread-257207][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 13:59:20,652 [DEBUG][       Thread-257207][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 13:59:20,652 [DEBUG][       Thread-257207][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 13:59:20,652 [DEBUG][       Thread-257207][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 13:59:20,671 [ INFO][       Thread-257207][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 13:59:20,671 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 13:59:20,672 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 13:59:22,481 [DEBUG][Thread-257209 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:59:22,487 [DEBUG][       Thread-257207][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 13:59:22,487 [DEBUG][       Thread-257207][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 13:59:22,538 [DEBUG][       Thread-257207][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 13:59:22,538 [DEBUG][       Thread-257207][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 13:59:22,548 [DEBUG][       Thread-257207][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 13:59:22,557 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 13:59:22,557 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 13:59:22,566 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 13:59:22,576 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 13:59:22,576 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 13:59:22,576 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 13:59:22,584 [DEBUG][       Thread-257207][   transport.py][1871] : EOF in transport thread
2025-06-13 13:59:31,505 [DEBUG][Thread-257210 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:59:32,587 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 13:59:32,587 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 13:59:32,587 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 13:59:32,590 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 13:59:33,055 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 13, 59, 1), 17.47, 29.67, 0.0, 11.82, 13.8, 0, 0, 0, 2, 0, 0),)
2025-06-13 13:59:33,055 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 13:59:01
2025-06-13 13:59:33,137 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 13:59:33,141 [DEBUG][       Thread-257211][   transport.py][1871] : starting thread (client mode): 0x86393bb0
2025-06-13 13:59:33,141 [DEBUG][       Thread-257211][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 13:59:33,162 [DEBUG][       Thread-257211][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 13:59:33,162 [ INFO][       Thread-257211][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 13:59:33,165 [DEBUG][       Thread-257211][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 13:59:33,165 [DEBUG][       Thread-257211][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 13:59:33,165 [DEBUG][       Thread-257211][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 13:59:33,165 [DEBUG][       Thread-257211][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:59:33,165 [DEBUG][       Thread-257211][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:59:33,165 [DEBUG][       Thread-257211][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:59:33,165 [DEBUG][       Thread-257211][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:59:33,165 [DEBUG][       Thread-257211][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 13:59:33,165 [DEBUG][       Thread-257211][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 13:59:33,165 [DEBUG][       Thread-257211][   transport.py][1871] : client lang: <none>
2025-06-13 13:59:33,165 [DEBUG][       Thread-257211][   transport.py][1871] : server lang: <none>
2025-06-13 13:59:33,165 [DEBUG][       Thread-257211][   transport.py][1871] : kex follows: False
2025-06-13 13:59:33,165 [DEBUG][       Thread-257211][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 13:59:33,166 [DEBUG][       Thread-257211][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 13:59:33,166 [DEBUG][       Thread-257211][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 13:59:33,166 [DEBUG][       Thread-257211][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 13:59:33,166 [DEBUG][       Thread-257211][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 13:59:33,166 [DEBUG][       Thread-257211][   transport.py][1871] : Compression: none
2025-06-13 13:59:33,166 [DEBUG][       Thread-257211][   transport.py][1871] : === End of kex handshake ===
2025-06-13 13:59:33,184 [DEBUG][       Thread-257211][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 13:59:33,185 [DEBUG][       Thread-257211][   transport.py][1871] : Switch to new keys ...
2025-06-13 13:59:33,185 [DEBUG][       Thread-257211][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 13:59:33,185 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 13:59:33,186 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 13:59:33,187 [DEBUG][       Thread-257211][   transport.py][1871] : userauth is OK
2025-06-13 13:59:33,211 [ INFO][       Thread-257211][   transport.py][1871] : Authentication (password) successful!
2025-06-13 13:59:33,212 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 13:59:33,840 [DEBUG][       Thread-257211][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 13:59:33,840 [DEBUG][       Thread-257211][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 13:59:33,880 [DEBUG][       Thread-257211][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 13:59:33,880 [DEBUG][       Thread-257211][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 13:59:33,883 [DEBUG][       Thread-257211][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 13:59:33,894 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 13:59:33,894 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 13:59:33,896 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 13:59:33,897 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 13:59:33,900 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 13:59:33,901 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 13:59:33,901 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 13:59:33,901 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 13:59:33,901 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.499242 -999.00  +13.40  23.18     35   -1.60 1 1 1 1 1   887    0 15.65 19.57 ----- 23.6 23.2 55.8 28.2 17.6 -30.3 16.6 -31.4 16.8 -30.8 18.2 -28.4
2025-06-13 13:59:33,901 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 13:59:33,901 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 13:59:33,901 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.499242
2025-06-13 13:59:33,901 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 13:59:33,901 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 13:59:33,901 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 13:59:33,901 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 13:59:33,901 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 13:59:33,901 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T13:59:01', tmtdew=17.47, humidity=29.67, cloud=0.0, wind=11.82, temperature=13.8, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T11:58:54.509', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 13:59:33,902 [DEBUG][       Thread-257211][   transport.py][1871] : EOF in transport thread
2025-06-13 13:59:33,976 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 13:59:33,985 [DEBUG][       Thread-257214][   transport.py][1871] : starting thread (client mode): 0x863bd870
2025-06-13 13:59:33,985 [DEBUG][       Thread-257214][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 13:59:34,001 [DEBUG][       Thread-257214][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 13:59:34,001 [ INFO][       Thread-257214][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 13:59:34,008 [DEBUG][       Thread-257214][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 13:59:34,008 [DEBUG][       Thread-257214][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 13:59:34,008 [DEBUG][       Thread-257214][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 13:59:34,008 [DEBUG][       Thread-257214][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:59:34,008 [DEBUG][       Thread-257214][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:59:34,008 [DEBUG][       Thread-257214][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:59:34,008 [DEBUG][       Thread-257214][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:59:34,008 [DEBUG][       Thread-257214][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 13:59:34,008 [DEBUG][       Thread-257214][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 13:59:34,008 [DEBUG][       Thread-257214][   transport.py][1871] : client lang: <none>
2025-06-13 13:59:34,008 [DEBUG][       Thread-257214][   transport.py][1871] : server lang: <none>
2025-06-13 13:59:34,008 [DEBUG][       Thread-257214][   transport.py][1871] : kex follows: False
2025-06-13 13:59:34,008 [DEBUG][       Thread-257214][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 13:59:34,008 [DEBUG][       Thread-257214][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 13:59:34,008 [DEBUG][       Thread-257214][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 13:59:34,008 [DEBUG][       Thread-257214][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 13:59:34,008 [DEBUG][       Thread-257214][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 13:59:34,008 [DEBUG][       Thread-257214][   transport.py][1871] : Compression: none
2025-06-13 13:59:34,008 [DEBUG][       Thread-257214][   transport.py][1871] : === End of kex handshake ===
2025-06-13 13:59:34,066 [DEBUG][       Thread-257214][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 13:59:34,066 [DEBUG][       Thread-257214][   transport.py][1871] : Switch to new keys ...
2025-06-13 13:59:34,066 [DEBUG][       Thread-257214][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 13:59:34,066 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 13:59:34,067 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 13:59:34,123 [DEBUG][       Thread-257214][   transport.py][1871] : userauth is OK
2025-06-13 13:59:34,123 [DEBUG][       Thread-257214][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 13:59:34,123 [DEBUG][       Thread-257214][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 13:59:34,123 [DEBUG][       Thread-257214][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 13:59:34,123 [DEBUG][       Thread-257214][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 13:59:34,138 [ INFO][       Thread-257214][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 13:59:34,138 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 13:59:34,138 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 13:59:35,160 [DEBUG][       Thread-257214][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 13:59:35,160 [DEBUG][       Thread-257214][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 13:59:35,208 [DEBUG][       Thread-257214][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 13:59:35,208 [DEBUG][       Thread-257214][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 13:59:35,217 [DEBUG][       Thread-257214][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 13:59:35,226 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 13:59:35,226 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 13:59:35,235 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 13:59:35,245 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 13:59:35,245 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 13:59:35,245 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 13:59:35,255 [DEBUG][       Thread-257214][   transport.py][1871] : EOF in transport thread
2025-06-13 13:59:40,527 [DEBUG][Thread-257216 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:59:45,252 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 13:59:45,252 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 13:59:45,252 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 13:59:45,253 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 13:59:45,708 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 13, 59, 32), 17.31, 29.89, 0.0, 16.66, 13.82, 0, 0, 0, 2, 0, 0),)
2025-06-13 13:59:45,708 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 13:59:32
2025-06-13 13:59:45,790 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 13:59:45,794 [DEBUG][       Thread-257217][   transport.py][1871] : starting thread (client mode): 0x867fc430
2025-06-13 13:59:45,794 [DEBUG][       Thread-257217][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 13:59:45,813 [DEBUG][       Thread-257217][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 13:59:45,813 [ INFO][       Thread-257217][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 13:59:45,815 [DEBUG][       Thread-257217][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 13:59:45,815 [DEBUG][       Thread-257217][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 13:59:45,815 [DEBUG][       Thread-257217][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 13:59:45,815 [DEBUG][       Thread-257217][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:59:45,815 [DEBUG][       Thread-257217][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:59:45,815 [DEBUG][       Thread-257217][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:59:45,815 [DEBUG][       Thread-257217][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:59:45,815 [DEBUG][       Thread-257217][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 13:59:45,815 [DEBUG][       Thread-257217][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 13:59:45,815 [DEBUG][       Thread-257217][   transport.py][1871] : client lang: <none>
2025-06-13 13:59:45,816 [DEBUG][       Thread-257217][   transport.py][1871] : server lang: <none>
2025-06-13 13:59:45,816 [DEBUG][       Thread-257217][   transport.py][1871] : kex follows: False
2025-06-13 13:59:45,816 [DEBUG][       Thread-257217][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 13:59:45,816 [DEBUG][       Thread-257217][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 13:59:45,816 [DEBUG][       Thread-257217][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 13:59:45,816 [DEBUG][       Thread-257217][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 13:59:45,816 [DEBUG][       Thread-257217][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 13:59:45,816 [DEBUG][       Thread-257217][   transport.py][1871] : Compression: none
2025-06-13 13:59:45,816 [DEBUG][       Thread-257217][   transport.py][1871] : === End of kex handshake ===
2025-06-13 13:59:45,826 [DEBUG][       Thread-257217][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 13:59:45,826 [DEBUG][       Thread-257217][   transport.py][1871] : Switch to new keys ...
2025-06-13 13:59:45,826 [DEBUG][       Thread-257217][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 13:59:45,826 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 13:59:45,826 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 13:59:45,830 [DEBUG][       Thread-257217][   transport.py][1871] : userauth is OK
2025-06-13 13:59:45,842 [ INFO][       Thread-257217][   transport.py][1871] : Authentication (password) successful!
2025-06-13 13:59:45,843 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 13:59:46,427 [DEBUG][       Thread-257217][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 13:59:46,428 [DEBUG][       Thread-257217][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 13:59:46,469 [DEBUG][       Thread-257217][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 13:59:46,469 [DEBUG][       Thread-257217][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 13:59:46,471 [DEBUG][       Thread-257217][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 13:59:46,478 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 13:59:46,478 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 13:59:46,480 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 13:59:46,481 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 13:59:46,485 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 13:59:46,486 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 13:59:46,486 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 13:59:46,487 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 13:59:46,487 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.499589 -999.00  +13.50  21.84     34   -1.90 1 1 1 1 1   887    0 15.59 18.82 ----- 24.6 21.8 54.8 27.6 17.7 -30.2 16.4 -32.5 16.8 -31.4 18.2 -28.5
2025-06-13 13:59:46,487 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 13:59:46,487 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 13:59:46,487 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.499589
2025-06-13 13:59:46,487 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 13:59:46,487 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 13:59:46,487 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 13:59:46,488 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 13:59:46,488 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 13:59:46,488 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T13:59:32', tmtdew=17.31, humidity=29.89, cloud=0.0, wind=16.66, temperature=13.82, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T11:59:24.490', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 13:59:46,488 [DEBUG][       Thread-257217][   transport.py][1871] : EOF in transport thread
2025-06-13 13:59:46,566 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 13:59:46,577 [DEBUG][       Thread-257220][   transport.py][1871] : starting thread (client mode): 0x863a7a00
2025-06-13 13:59:46,577 [DEBUG][       Thread-257220][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 13:59:46,591 [DEBUG][       Thread-257220][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 13:59:46,591 [ INFO][       Thread-257220][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 13:59:46,598 [DEBUG][       Thread-257220][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 13:59:46,599 [DEBUG][       Thread-257220][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 13:59:46,599 [DEBUG][       Thread-257220][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 13:59:46,599 [DEBUG][       Thread-257220][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:59:46,599 [DEBUG][       Thread-257220][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:59:46,599 [DEBUG][       Thread-257220][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:59:46,599 [DEBUG][       Thread-257220][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:59:46,599 [DEBUG][       Thread-257220][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 13:59:46,599 [DEBUG][       Thread-257220][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 13:59:46,599 [DEBUG][       Thread-257220][   transport.py][1871] : client lang: <none>
2025-06-13 13:59:46,599 [DEBUG][       Thread-257220][   transport.py][1871] : server lang: <none>
2025-06-13 13:59:46,599 [DEBUG][       Thread-257220][   transport.py][1871] : kex follows: False
2025-06-13 13:59:46,599 [DEBUG][       Thread-257220][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 13:59:46,599 [DEBUG][       Thread-257220][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 13:59:46,599 [DEBUG][       Thread-257220][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 13:59:46,599 [DEBUG][       Thread-257220][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 13:59:46,599 [DEBUG][       Thread-257220][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 13:59:46,599 [DEBUG][       Thread-257220][   transport.py][1871] : Compression: none
2025-06-13 13:59:46,599 [DEBUG][       Thread-257220][   transport.py][1871] : === End of kex handshake ===
2025-06-13 13:59:46,660 [DEBUG][       Thread-257220][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 13:59:46,660 [DEBUG][       Thread-257220][   transport.py][1871] : Switch to new keys ...
2025-06-13 13:59:46,661 [DEBUG][       Thread-257220][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 13:59:46,661 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 13:59:46,661 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 13:59:46,715 [DEBUG][       Thread-257220][   transport.py][1871] : userauth is OK
2025-06-13 13:59:46,715 [DEBUG][       Thread-257220][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 13:59:46,716 [DEBUG][       Thread-257220][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 13:59:46,716 [DEBUG][       Thread-257220][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 13:59:46,716 [DEBUG][       Thread-257220][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 13:59:46,738 [ INFO][       Thread-257220][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 13:59:46,739 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 13:59:46,739 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 13:59:47,734 [DEBUG][       Thread-257220][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 13:59:47,734 [DEBUG][       Thread-257220][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 13:59:47,783 [DEBUG][       Thread-257220][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 13:59:47,784 [DEBUG][       Thread-257220][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 13:59:47,792 [DEBUG][       Thread-257220][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 13:59:47,801 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 13:59:47,802 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 13:59:47,810 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 13:59:47,824 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 13:59:47,824 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 13:59:47,825 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 13:59:47,841 [DEBUG][       Thread-257220][   transport.py][1871] : EOF in transport thread
2025-06-13 13:59:49,546 [DEBUG][Thread-257222 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:59:56,920 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:59:56,921 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:59:57,835 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 13:59:57,835 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 13:59:57,835 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 13:59:57,838 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 13:59:58,295 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 13, 59, 32), 17.31, 29.89, 0.0, 16.66, 13.82, 0, 0, 0, 2, 0, 0),)
2025-06-13 13:59:58,295 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 13:59:32
2025-06-13 13:59:58,376 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 13:59:58,380 [DEBUG][       Thread-257223][   transport.py][1871] : starting thread (client mode): 0x867fdd50
2025-06-13 13:59:58,380 [DEBUG][       Thread-257223][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 13:59:58,401 [DEBUG][       Thread-257223][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 13:59:58,402 [ INFO][       Thread-257223][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 13:59:58,405 [DEBUG][       Thread-257223][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 13:59:58,405 [DEBUG][       Thread-257223][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 13:59:58,405 [DEBUG][       Thread-257223][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 13:59:58,405 [DEBUG][       Thread-257223][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:59:58,405 [DEBUG][       Thread-257223][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:59:58,405 [DEBUG][       Thread-257223][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:59:58,405 [DEBUG][       Thread-257223][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:59:58,405 [DEBUG][       Thread-257223][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 13:59:58,405 [DEBUG][       Thread-257223][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 13:59:58,405 [DEBUG][       Thread-257223][   transport.py][1871] : client lang: <none>
2025-06-13 13:59:58,405 [DEBUG][       Thread-257223][   transport.py][1871] : server lang: <none>
2025-06-13 13:59:58,405 [DEBUG][       Thread-257223][   transport.py][1871] : kex follows: False
2025-06-13 13:59:58,405 [DEBUG][       Thread-257223][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 13:59:58,405 [DEBUG][       Thread-257223][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 13:59:58,405 [DEBUG][       Thread-257223][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 13:59:58,405 [DEBUG][       Thread-257223][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 13:59:58,405 [DEBUG][       Thread-257223][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 13:59:58,405 [DEBUG][       Thread-257223][   transport.py][1871] : Compression: none
2025-06-13 13:59:58,405 [DEBUG][       Thread-257223][   transport.py][1871] : === End of kex handshake ===
2025-06-13 13:59:58,422 [DEBUG][       Thread-257223][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 13:59:58,423 [DEBUG][       Thread-257223][   transport.py][1871] : Switch to new keys ...
2025-06-13 13:59:58,423 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 13:59:58,423 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 13:59:58,424 [DEBUG][       Thread-257223][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 13:59:58,425 [DEBUG][       Thread-257223][   transport.py][1871] : userauth is OK
2025-06-13 13:59:58,437 [ INFO][       Thread-257223][   transport.py][1871] : Authentication (password) successful!
2025-06-13 13:59:58,438 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 13:59:58,573 [DEBUG][Thread-257225 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 13:59:59,064 [DEBUG][       Thread-257223][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 13:59:59,064 [DEBUG][       Thread-257223][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 13:59:59,109 [DEBUG][       Thread-257223][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 13:59:59,109 [DEBUG][       Thread-257223][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 13:59:59,112 [DEBUG][       Thread-257223][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 13:59:59,124 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 13:59:59,124 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 13:59:59,126 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 13:59:59,128 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 13:59:59,133 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 13:59:59,135 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 13:59:59,135 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 13:59:59,136 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 13:59:59,136 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.499589 -999.00  +13.50  21.84     34   -1.90 1 1 1 1 1   887    0 15.59 18.82 ----- 24.6 21.8 54.8 27.6 17.7 -30.2 16.4 -32.5 16.8 -31.4 18.2 -28.5
2025-06-13 13:59:59,136 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 13:59:59,136 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 13:59:59,136 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.499589
2025-06-13 13:59:59,137 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 13:59:59,137 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 13:59:59,137 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 13:59:59,137 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 13:59:59,138 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 13:59:59,138 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T13:59:32', tmtdew=17.31, humidity=29.89, cloud=0.0, wind=16.66, temperature=13.82, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T11:59:24.490', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 13:59:59,138 [DEBUG][       Thread-257223][   transport.py][1871] : EOF in transport thread
2025-06-13 13:59:59,222 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 13:59:59,232 [DEBUG][       Thread-257227][   transport.py][1871] : starting thread (client mode): 0x863c98a0
2025-06-13 13:59:59,232 [DEBUG][       Thread-257227][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 13:59:59,247 [DEBUG][       Thread-257227][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 13:59:59,247 [ INFO][       Thread-257227][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 13:59:59,255 [DEBUG][       Thread-257227][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 13:59:59,255 [DEBUG][       Thread-257227][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 13:59:59,255 [DEBUG][       Thread-257227][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 13:59:59,255 [DEBUG][       Thread-257227][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:59:59,255 [DEBUG][       Thread-257227][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 13:59:59,255 [DEBUG][       Thread-257227][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:59:59,255 [DEBUG][       Thread-257227][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 13:59:59,256 [DEBUG][       Thread-257227][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 13:59:59,256 [DEBUG][       Thread-257227][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 13:59:59,256 [DEBUG][       Thread-257227][   transport.py][1871] : client lang: <none>
2025-06-13 13:59:59,256 [DEBUG][       Thread-257227][   transport.py][1871] : server lang: <none>
2025-06-13 13:59:59,256 [DEBUG][       Thread-257227][   transport.py][1871] : kex follows: False
2025-06-13 13:59:59,256 [DEBUG][       Thread-257227][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 13:59:59,256 [DEBUG][       Thread-257227][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 13:59:59,256 [DEBUG][       Thread-257227][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 13:59:59,256 [DEBUG][       Thread-257227][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 13:59:59,256 [DEBUG][       Thread-257227][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 13:59:59,256 [DEBUG][       Thread-257227][   transport.py][1871] : Compression: none
2025-06-13 13:59:59,256 [DEBUG][       Thread-257227][   transport.py][1871] : === End of kex handshake ===
2025-06-13 13:59:59,316 [DEBUG][       Thread-257227][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 13:59:59,316 [DEBUG][       Thread-257227][   transport.py][1871] : Switch to new keys ...
2025-06-13 13:59:59,317 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 13:59:59,318 [DEBUG][       Thread-257227][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 13:59:59,318 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 13:59:59,372 [DEBUG][       Thread-257227][   transport.py][1871] : userauth is OK
2025-06-13 13:59:59,373 [DEBUG][       Thread-257227][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 13:59:59,373 [DEBUG][       Thread-257227][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 13:59:59,373 [DEBUG][       Thread-257227][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 13:59:59,373 [DEBUG][       Thread-257227][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 13:59:59,391 [ INFO][       Thread-257227][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 13:59:59,392 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 13:59:59,392 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 14:00:00,407 [DEBUG][       Thread-257227][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 14:00:00,407 [DEBUG][       Thread-257227][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 14:00:00,456 [DEBUG][       Thread-257227][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 14:00:00,456 [DEBUG][       Thread-257227][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 14:00:00,465 [DEBUG][       Thread-257227][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 14:00:00,474 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 14:00:00,474 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 14:00:00,483 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 14:00:00,492 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 14:00:00,493 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 14:00:00,493 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 14:00:00,501 [DEBUG][       Thread-257227][   transport.py][1871] : EOF in transport thread
2025-06-13 14:00:07,594 [DEBUG][Thread-257229 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:00:09,521 [DEBUG][Thread-257230 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:00:10,503 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 14:00:10,504 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 14:00:10,504 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 14:00:10,507 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 14:00:10,592 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:00:10,592 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:00:10,969 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 14, 0, 4), 17.31, 29.91, 0.0, 17.33, 13.88, 0, 0, 0, 2, 0, 0),)
2025-06-13 14:00:10,969 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 14:00:04
2025-06-13 14:00:11,051 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 14:00:11,056 [DEBUG][       Thread-257231][   transport.py][1871] : starting thread (client mode): 0x863be050
2025-06-13 14:00:11,056 [DEBUG][       Thread-257231][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 14:00:11,076 [DEBUG][       Thread-257231][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 14:00:11,076 [ INFO][       Thread-257231][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 14:00:11,079 [DEBUG][       Thread-257231][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 14:00:11,080 [DEBUG][       Thread-257231][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 14:00:11,080 [DEBUG][       Thread-257231][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 14:00:11,080 [DEBUG][       Thread-257231][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:00:11,080 [DEBUG][       Thread-257231][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:00:11,080 [DEBUG][       Thread-257231][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:00:11,080 [DEBUG][       Thread-257231][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:00:11,080 [DEBUG][       Thread-257231][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 14:00:11,080 [DEBUG][       Thread-257231][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 14:00:11,080 [DEBUG][       Thread-257231][   transport.py][1871] : client lang: <none>
2025-06-13 14:00:11,080 [DEBUG][       Thread-257231][   transport.py][1871] : server lang: <none>
2025-06-13 14:00:11,080 [DEBUG][       Thread-257231][   transport.py][1871] : kex follows: False
2025-06-13 14:00:11,080 [DEBUG][       Thread-257231][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 14:00:11,080 [DEBUG][       Thread-257231][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 14:00:11,080 [DEBUG][       Thread-257231][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 14:00:11,080 [DEBUG][       Thread-257231][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 14:00:11,080 [DEBUG][       Thread-257231][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 14:00:11,080 [DEBUG][       Thread-257231][   transport.py][1871] : Compression: none
2025-06-13 14:00:11,080 [DEBUG][       Thread-257231][   transport.py][1871] : === End of kex handshake ===
2025-06-13 14:00:11,096 [DEBUG][       Thread-257231][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 14:00:11,097 [DEBUG][       Thread-257231][   transport.py][1871] : Switch to new keys ...
2025-06-13 14:00:11,097 [DEBUG][       Thread-257231][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 14:00:11,098 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 14:00:11,098 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 14:00:11,099 [DEBUG][       Thread-257231][   transport.py][1871] : userauth is OK
2025-06-13 14:00:11,124 [ INFO][       Thread-257231][   transport.py][1871] : Authentication (password) successful!
2025-06-13 14:00:11,124 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 14:00:14,095 [DEBUG][       Thread-257231][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 14:00:14,095 [DEBUG][       Thread-257231][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 14:00:14,137 [DEBUG][       Thread-257231][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 14:00:14,137 [DEBUG][       Thread-257231][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 14:00:14,140 [DEBUG][       Thread-257231][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 14:00:14,151 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 14:00:14,152 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 14:00:14,153 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 14:00:14,155 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 14:00:14,161 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 14:00:14,163 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 14:00:14,163 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 14:00:14,164 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 14:00:14,164 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.499589 -999.00  +13.50  21.84     34   -1.90 1 1 1 1 1   887    0 15.59 18.82 ----- 24.6 21.8 54.8 27.6 17.7 -30.2 16.4 -32.5 16.8 -31.4 18.2 -28.5
2025-06-13 14:00:14,164 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 14:00:14,164 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 14:00:14,164 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.499589
2025-06-13 14:00:14,165 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 14:00:14,165 [DEBUG][       Thread-257231][   transport.py][1871] : EOF in transport thread
2025-06-13 14:00:14,166 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 14:00:14,166 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 14:00:14,166 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 14:00:14,166 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 14:00:14,166 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T14:00:04', tmtdew=17.31, humidity=29.91, cloud=0.0, wind=17.33, temperature=13.88, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T11:59:24.490', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 14:00:14,248 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 14:00:14,260 [DEBUG][       Thread-257234][   transport.py][1871] : starting thread (client mode): 0x867b78e0
2025-06-13 14:00:14,260 [DEBUG][       Thread-257234][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 14:00:14,279 [DEBUG][       Thread-257234][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 14:00:14,279 [ INFO][       Thread-257234][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 14:00:14,290 [DEBUG][       Thread-257234][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 14:00:14,290 [DEBUG][       Thread-257234][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 14:00:14,290 [DEBUG][       Thread-257234][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 14:00:14,290 [DEBUG][       Thread-257234][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:00:14,291 [DEBUG][       Thread-257234][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:00:14,291 [DEBUG][       Thread-257234][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:00:14,291 [DEBUG][       Thread-257234][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:00:14,291 [DEBUG][       Thread-257234][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 14:00:14,291 [DEBUG][       Thread-257234][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 14:00:14,291 [DEBUG][       Thread-257234][   transport.py][1871] : client lang: <none>
2025-06-13 14:00:14,291 [DEBUG][       Thread-257234][   transport.py][1871] : server lang: <none>
2025-06-13 14:00:14,291 [DEBUG][       Thread-257234][   transport.py][1871] : kex follows: False
2025-06-13 14:00:14,291 [DEBUG][       Thread-257234][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 14:00:14,291 [DEBUG][       Thread-257234][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 14:00:14,291 [DEBUG][       Thread-257234][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 14:00:14,291 [DEBUG][       Thread-257234][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 14:00:14,291 [DEBUG][       Thread-257234][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 14:00:14,291 [DEBUG][       Thread-257234][   transport.py][1871] : Compression: none
2025-06-13 14:00:14,291 [DEBUG][       Thread-257234][   transport.py][1871] : === End of kex handshake ===
2025-06-13 14:00:14,344 [DEBUG][       Thread-257234][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 14:00:14,345 [DEBUG][       Thread-257234][   transport.py][1871] : Switch to new keys ...
2025-06-13 14:00:14,346 [DEBUG][       Thread-257234][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 14:00:14,346 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 14:00:14,347 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 14:00:14,400 [DEBUG][       Thread-257234][   transport.py][1871] : userauth is OK
2025-06-13 14:00:14,401 [DEBUG][       Thread-257234][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 14:00:14,401 [DEBUG][       Thread-257234][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 14:00:14,401 [DEBUG][       Thread-257234][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 14:00:14,401 [DEBUG][       Thread-257234][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 14:00:14,420 [ INFO][       Thread-257234][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 14:00:14,421 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 14:00:14,421 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 14:00:15,497 [DEBUG][       Thread-257234][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 14:00:15,497 [DEBUG][       Thread-257234][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 14:00:15,553 [DEBUG][       Thread-257234][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 14:00:15,553 [DEBUG][       Thread-257234][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 14:00:15,564 [DEBUG][       Thread-257234][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 14:00:15,574 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 14:00:15,575 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 14:00:15,587 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 14:00:15,596 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 14:00:15,596 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 14:00:15,597 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 14:00:15,605 [DEBUG][       Thread-257234][   transport.py][1871] : EOF in transport thread
2025-06-13 14:00:16,617 [DEBUG][Thread-257236 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:00:16,843 [DEBUG][Thread-257237 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:00:25,603 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 14:00:25,603 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 14:00:25,603 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 14:00:25,604 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 14:00:25,653 [DEBUG][Thread-257238 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:00:26,049 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 14, 0, 4), 17.31, 29.91, 0.0, 17.33, 13.88, 0, 0, 0, 2, 0, 0),)
2025-06-13 14:00:26,049 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 14:00:04
2025-06-13 14:00:26,131 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 14:00:26,135 [DEBUG][       Thread-257239][   transport.py][1871] : starting thread (client mode): 0x86352f50
2025-06-13 14:00:26,136 [DEBUG][       Thread-257239][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 14:00:26,156 [DEBUG][       Thread-257239][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 14:00:26,156 [ INFO][       Thread-257239][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 14:00:26,159 [DEBUG][       Thread-257239][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 14:00:26,159 [DEBUG][       Thread-257239][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 14:00:26,159 [DEBUG][       Thread-257239][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 14:00:26,159 [DEBUG][       Thread-257239][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:00:26,159 [DEBUG][       Thread-257239][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:00:26,159 [DEBUG][       Thread-257239][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:00:26,159 [DEBUG][       Thread-257239][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:00:26,159 [DEBUG][       Thread-257239][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 14:00:26,159 [DEBUG][       Thread-257239][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 14:00:26,159 [DEBUG][       Thread-257239][   transport.py][1871] : client lang: <none>
2025-06-13 14:00:26,159 [DEBUG][       Thread-257239][   transport.py][1871] : server lang: <none>
2025-06-13 14:00:26,159 [DEBUG][       Thread-257239][   transport.py][1871] : kex follows: False
2025-06-13 14:00:26,159 [DEBUG][       Thread-257239][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 14:00:26,159 [DEBUG][       Thread-257239][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 14:00:26,159 [DEBUG][       Thread-257239][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 14:00:26,159 [DEBUG][       Thread-257239][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 14:00:26,159 [DEBUG][       Thread-257239][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 14:00:26,159 [DEBUG][       Thread-257239][   transport.py][1871] : Compression: none
2025-06-13 14:00:26,159 [DEBUG][       Thread-257239][   transport.py][1871] : === End of kex handshake ===
2025-06-13 14:00:26,175 [DEBUG][       Thread-257239][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 14:00:26,176 [DEBUG][       Thread-257239][   transport.py][1871] : Switch to new keys ...
2025-06-13 14:00:26,176 [DEBUG][       Thread-257239][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 14:00:26,177 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 14:00:26,177 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 14:00:26,178 [DEBUG][       Thread-257239][   transport.py][1871] : userauth is OK
2025-06-13 14:00:26,203 [ INFO][       Thread-257239][   transport.py][1871] : Authentication (password) successful!
2025-06-13 14:00:26,204 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 14:00:26,873 [DEBUG][       Thread-257239][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 14:00:26,873 [DEBUG][       Thread-257239][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 14:00:26,917 [DEBUG][       Thread-257239][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 14:00:26,917 [DEBUG][       Thread-257239][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 14:00:26,920 [DEBUG][       Thread-257239][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 14:00:26,932 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 14:00:26,933 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 14:00:26,935 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 14:00:26,937 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 14:00:26,942 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 14:00:26,944 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 14:00:26,944 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 14:00:26,945 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 14:00:26,945 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.499937 -999.00  +13.50  21.22     35   -1.50 1 1 1 1 1   887    0 15.73 19.90 ----- 17.5 21.2 54.4 27.6 17.6 -30.2 16.6 -31.2 16.9 -29.5 18.2 -28.2
2025-06-13 14:00:26,945 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 14:00:26,945 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 14:00:26,946 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.499937
2025-06-13 14:00:26,946 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 14:00:26,946 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 14:00:26,947 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 14:00:26,947 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 14:00:26,947 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 14:00:26,947 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T14:00:04', tmtdew=17.31, humidity=29.91, cloud=0.0, wind=17.33, temperature=13.88, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T11:59:54.557', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 14:00:26,948 [DEBUG][       Thread-257239][   transport.py][1871] : EOF in transport thread
2025-06-13 14:00:27,030 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 14:00:27,040 [DEBUG][       Thread-257242][   transport.py][1871] : starting thread (client mode): 0x86392680
2025-06-13 14:00:27,040 [DEBUG][       Thread-257242][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 14:00:27,055 [DEBUG][       Thread-257242][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 14:00:27,055 [ INFO][       Thread-257242][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 14:00:27,067 [DEBUG][       Thread-257242][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 14:00:27,067 [DEBUG][       Thread-257242][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 14:00:27,067 [DEBUG][       Thread-257242][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 14:00:27,067 [DEBUG][       Thread-257242][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:00:27,067 [DEBUG][       Thread-257242][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:00:27,067 [DEBUG][       Thread-257242][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:00:27,067 [DEBUG][       Thread-257242][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:00:27,067 [DEBUG][       Thread-257242][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 14:00:27,067 [DEBUG][       Thread-257242][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 14:00:27,067 [DEBUG][       Thread-257242][   transport.py][1871] : client lang: <none>
2025-06-13 14:00:27,067 [DEBUG][       Thread-257242][   transport.py][1871] : server lang: <none>
2025-06-13 14:00:27,067 [DEBUG][       Thread-257242][   transport.py][1871] : kex follows: False
2025-06-13 14:00:27,067 [DEBUG][       Thread-257242][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 14:00:27,067 [DEBUG][       Thread-257242][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 14:00:27,068 [DEBUG][       Thread-257242][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 14:00:27,068 [DEBUG][       Thread-257242][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 14:00:27,068 [DEBUG][       Thread-257242][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 14:00:27,068 [DEBUG][       Thread-257242][   transport.py][1871] : Compression: none
2025-06-13 14:00:27,068 [DEBUG][       Thread-257242][   transport.py][1871] : === End of kex handshake ===
2025-06-13 14:00:27,125 [DEBUG][       Thread-257242][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 14:00:27,126 [DEBUG][       Thread-257242][   transport.py][1871] : Switch to new keys ...
2025-06-13 14:00:27,127 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 14:00:27,127 [DEBUG][       Thread-257242][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 14:00:27,128 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 14:00:27,184 [DEBUG][       Thread-257242][   transport.py][1871] : userauth is OK
2025-06-13 14:00:27,184 [DEBUG][       Thread-257242][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 14:00:27,184 [DEBUG][       Thread-257242][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 14:00:27,184 [DEBUG][       Thread-257242][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 14:00:27,184 [DEBUG][       Thread-257242][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 14:00:27,203 [ INFO][       Thread-257242][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 14:00:27,203 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 14:00:27,204 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 14:00:28,274 [DEBUG][       Thread-257242][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 14:00:28,274 [DEBUG][       Thread-257242][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 14:00:28,324 [DEBUG][       Thread-257242][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 14:00:28,324 [DEBUG][       Thread-257242][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 14:00:28,336 [DEBUG][       Thread-257242][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 14:00:28,350 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 14:00:28,350 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 14:00:28,358 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 14:00:28,366 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 14:00:28,366 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 14:00:28,366 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 14:00:28,374 [DEBUG][       Thread-257242][   transport.py][1871] : EOF in transport thread
2025-06-13 14:00:34,673 [DEBUG][Thread-257244 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:00:38,376 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 14:00:38,376 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 14:00:38,376 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 14:00:38,377 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 14:00:38,829 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 14, 0, 4), 17.31, 29.91, 0.0, 17.33, 13.88, 0, 0, 0, 2, 0, 0),)
2025-06-13 14:00:38,829 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 14:00:04
2025-06-13 14:00:38,910 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 14:00:38,917 [DEBUG][       Thread-257245][   transport.py][1871] : starting thread (client mode): 0x8636a4a0
2025-06-13 14:00:38,917 [DEBUG][       Thread-257245][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 14:00:38,937 [DEBUG][       Thread-257245][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 14:00:38,937 [ INFO][       Thread-257245][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 14:00:38,940 [DEBUG][       Thread-257245][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 14:00:38,940 [DEBUG][       Thread-257245][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 14:00:38,940 [DEBUG][       Thread-257245][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 14:00:38,940 [DEBUG][       Thread-257245][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:00:38,940 [DEBUG][       Thread-257245][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:00:38,940 [DEBUG][       Thread-257245][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:00:38,940 [DEBUG][       Thread-257245][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:00:38,940 [DEBUG][       Thread-257245][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 14:00:38,940 [DEBUG][       Thread-257245][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 14:00:38,940 [DEBUG][       Thread-257245][   transport.py][1871] : client lang: <none>
2025-06-13 14:00:38,940 [DEBUG][       Thread-257245][   transport.py][1871] : server lang: <none>
2025-06-13 14:00:38,940 [DEBUG][       Thread-257245][   transport.py][1871] : kex follows: False
2025-06-13 14:00:38,940 [DEBUG][       Thread-257245][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 14:00:38,940 [DEBUG][       Thread-257245][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 14:00:38,940 [DEBUG][       Thread-257245][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 14:00:38,940 [DEBUG][       Thread-257245][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 14:00:38,941 [DEBUG][       Thread-257245][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 14:00:38,941 [DEBUG][       Thread-257245][   transport.py][1871] : Compression: none
2025-06-13 14:00:38,941 [DEBUG][       Thread-257245][   transport.py][1871] : === End of kex handshake ===
2025-06-13 14:00:38,957 [DEBUG][       Thread-257245][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 14:00:38,957 [DEBUG][       Thread-257245][   transport.py][1871] : Switch to new keys ...
2025-06-13 14:00:38,958 [DEBUG][       Thread-257245][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 14:00:38,958 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 14:00:38,958 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 14:00:38,960 [DEBUG][       Thread-257245][   transport.py][1871] : userauth is OK
2025-06-13 14:00:38,973 [ INFO][       Thread-257245][   transport.py][1871] : Authentication (password) successful!
2025-06-13 14:00:38,974 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 14:00:39,603 [DEBUG][       Thread-257245][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 14:00:39,603 [DEBUG][       Thread-257245][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 14:00:39,645 [DEBUG][       Thread-257245][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 14:00:39,645 [DEBUG][       Thread-257245][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 14:00:39,648 [DEBUG][       Thread-257245][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 14:00:39,659 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 14:00:39,660 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 14:00:39,662 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 14:00:39,664 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 14:00:39,670 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 14:00:39,672 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 14:00:39,672 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 14:00:39,673 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 14:00:39,673 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.499937 -999.00  +13.50  21.22     35   -1.50 1 1 1 1 1   887    0 15.73 19.90 ----- 17.5 21.2 54.4 27.6 17.6 -30.2 16.6 -31.2 16.9 -29.5 18.2 -28.2
2025-06-13 14:00:39,673 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 14:00:39,673 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 14:00:39,673 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.499937
2025-06-13 14:00:39,674 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 14:00:39,674 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 14:00:39,674 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 14:00:39,674 [DEBUG][       Thread-257245][   transport.py][1871] : EOF in transport thread
2025-06-13 14:00:39,675 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 14:00:39,675 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 14:00:39,675 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T14:00:04', tmtdew=17.31, humidity=29.91, cloud=0.0, wind=17.33, temperature=13.88, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T11:59:54.557', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 14:00:39,760 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 14:00:39,771 [DEBUG][       Thread-257248][   transport.py][1871] : starting thread (client mode): 0x863ed210
2025-06-13 14:00:39,771 [DEBUG][       Thread-257248][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 14:00:39,786 [DEBUG][       Thread-257248][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 14:00:39,786 [ INFO][       Thread-257248][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 14:00:39,798 [DEBUG][       Thread-257248][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 14:00:39,798 [DEBUG][       Thread-257248][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 14:00:39,798 [DEBUG][       Thread-257248][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 14:00:39,798 [DEBUG][       Thread-257248][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:00:39,798 [DEBUG][       Thread-257248][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:00:39,798 [DEBUG][       Thread-257248][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:00:39,798 [DEBUG][       Thread-257248][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:00:39,799 [DEBUG][       Thread-257248][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 14:00:39,799 [DEBUG][       Thread-257248][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 14:00:39,799 [DEBUG][       Thread-257248][   transport.py][1871] : client lang: <none>
2025-06-13 14:00:39,799 [DEBUG][       Thread-257248][   transport.py][1871] : server lang: <none>
2025-06-13 14:00:39,799 [DEBUG][       Thread-257248][   transport.py][1871] : kex follows: False
2025-06-13 14:00:39,799 [DEBUG][       Thread-257248][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 14:00:39,799 [DEBUG][       Thread-257248][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 14:00:39,799 [DEBUG][       Thread-257248][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 14:00:39,799 [DEBUG][       Thread-257248][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 14:00:39,799 [DEBUG][       Thread-257248][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 14:00:39,799 [DEBUG][       Thread-257248][   transport.py][1871] : Compression: none
2025-06-13 14:00:39,799 [DEBUG][       Thread-257248][   transport.py][1871] : === End of kex handshake ===
2025-06-13 14:00:39,852 [DEBUG][       Thread-257248][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 14:00:39,853 [DEBUG][       Thread-257248][   transport.py][1871] : Switch to new keys ...
2025-06-13 14:00:39,853 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 14:00:39,854 [DEBUG][       Thread-257248][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 14:00:39,855 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 14:00:39,908 [DEBUG][       Thread-257248][   transport.py][1871] : userauth is OK
2025-06-13 14:00:39,909 [DEBUG][       Thread-257248][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 14:00:39,909 [DEBUG][       Thread-257248][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 14:00:39,909 [DEBUG][       Thread-257248][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 14:00:39,909 [DEBUG][       Thread-257248][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 14:00:39,928 [ INFO][       Thread-257248][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 14:00:39,928 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 14:00:39,929 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 14:00:40,973 [DEBUG][       Thread-257248][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 14:00:40,973 [DEBUG][       Thread-257248][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 14:00:41,024 [DEBUG][       Thread-257248][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 14:00:41,025 [DEBUG][       Thread-257248][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 14:00:41,034 [DEBUG][       Thread-257248][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 14:00:41,043 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 14:00:41,043 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 14:00:41,052 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 14:00:41,062 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 14:00:41,063 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 14:00:41,063 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 14:00:41,071 [DEBUG][       Thread-257248][   transport.py][1871] : EOF in transport thread
2025-06-13 14:00:43,696 [DEBUG][Thread-257250 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:00:51,074 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 14:00:51,074 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 14:00:51,074 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 14:00:51,077 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 14:00:51,524 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 14, 0, 36), 17.39, 29.62, 0.0, 20.7, 13.86, 0, 0, 0, 2, 0, 0),)
2025-06-13 14:00:51,524 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 14:00:36
2025-06-13 14:00:51,606 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 14:00:51,611 [DEBUG][       Thread-257251][   transport.py][1871] : starting thread (client mode): 0x86392230
2025-06-13 14:00:51,611 [DEBUG][       Thread-257251][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 14:00:51,631 [DEBUG][       Thread-257251][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 14:00:51,631 [ INFO][       Thread-257251][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 14:00:51,633 [DEBUG][       Thread-257251][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 14:00:51,633 [DEBUG][       Thread-257251][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 14:00:51,633 [DEBUG][       Thread-257251][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 14:00:51,633 [DEBUG][       Thread-257251][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:00:51,633 [DEBUG][       Thread-257251][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:00:51,633 [DEBUG][       Thread-257251][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:00:51,633 [DEBUG][       Thread-257251][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:00:51,633 [DEBUG][       Thread-257251][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 14:00:51,633 [DEBUG][       Thread-257251][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 14:00:51,633 [DEBUG][       Thread-257251][   transport.py][1871] : client lang: <none>
2025-06-13 14:00:51,633 [DEBUG][       Thread-257251][   transport.py][1871] : server lang: <none>
2025-06-13 14:00:51,634 [DEBUG][       Thread-257251][   transport.py][1871] : kex follows: False
2025-06-13 14:00:51,634 [DEBUG][       Thread-257251][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 14:00:51,634 [DEBUG][       Thread-257251][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 14:00:51,634 [DEBUG][       Thread-257251][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 14:00:51,634 [DEBUG][       Thread-257251][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 14:00:51,634 [DEBUG][       Thread-257251][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 14:00:51,634 [DEBUG][       Thread-257251][   transport.py][1871] : Compression: none
2025-06-13 14:00:51,634 [DEBUG][       Thread-257251][   transport.py][1871] : === End of kex handshake ===
2025-06-13 14:00:51,648 [DEBUG][       Thread-257251][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 14:00:51,649 [DEBUG][       Thread-257251][   transport.py][1871] : Switch to new keys ...
2025-06-13 14:00:51,649 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 14:00:51,649 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 14:00:51,650 [DEBUG][       Thread-257251][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 14:00:51,650 [DEBUG][       Thread-257251][   transport.py][1871] : userauth is OK
2025-06-13 14:00:51,663 [ INFO][       Thread-257251][   transport.py][1871] : Authentication (password) successful!
2025-06-13 14:00:51,663 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 14:00:52,260 [DEBUG][       Thread-257251][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 14:00:52,261 [DEBUG][       Thread-257251][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 14:00:52,305 [DEBUG][       Thread-257251][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 14:00:52,305 [DEBUG][       Thread-257251][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 14:00:52,308 [DEBUG][       Thread-257251][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 14:00:52,320 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 14:00:52,321 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 14:00:52,322 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 14:00:52,324 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 14:00:52,329 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 14:00:52,331 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 14:00:52,332 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 14:00:52,332 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 14:00:52,332 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.500284 -999.00  +13.50  26.55     34   -1.70 1 1 1 1 1   887    0 15.48 20.33 ----- 26.1 26.6 56.8 29.0 17.7 -29.5 16.4 -32.4 16.8 -30.9 18.4 -28.3
2025-06-13 14:00:52,333 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 14:00:52,333 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 14:00:52,333 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.500284
2025-06-13 14:00:52,333 [DEBUG][       Thread-257251][   transport.py][1871] : EOF in transport thread
2025-06-13 14:00:52,334 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 14:00:52,335 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 14:00:52,335 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 14:00:52,335 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 14:00:52,335 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 14:00:52,335 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T14:00:36', tmtdew=17.39, humidity=29.62, cloud=0.0, wind=20.7, temperature=13.86, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T12:00:24.538', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 14:00:52,418 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 14:00:52,427 [DEBUG][       Thread-257254][   transport.py][1871] : starting thread (client mode): 0x8636b2b0
2025-06-13 14:00:52,427 [DEBUG][       Thread-257254][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 14:00:52,442 [DEBUG][       Thread-257254][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 14:00:52,442 [ INFO][       Thread-257254][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 14:00:52,450 [DEBUG][       Thread-257254][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 14:00:52,450 [DEBUG][       Thread-257254][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 14:00:52,450 [DEBUG][       Thread-257254][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 14:00:52,450 [DEBUG][       Thread-257254][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:00:52,450 [DEBUG][       Thread-257254][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:00:52,450 [DEBUG][       Thread-257254][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:00:52,450 [DEBUG][       Thread-257254][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:00:52,450 [DEBUG][       Thread-257254][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 14:00:52,450 [DEBUG][       Thread-257254][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 14:00:52,450 [DEBUG][       Thread-257254][   transport.py][1871] : client lang: <none>
2025-06-13 14:00:52,450 [DEBUG][       Thread-257254][   transport.py][1871] : server lang: <none>
2025-06-13 14:00:52,450 [DEBUG][       Thread-257254][   transport.py][1871] : kex follows: False
2025-06-13 14:00:52,450 [DEBUG][       Thread-257254][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 14:00:52,450 [DEBUG][       Thread-257254][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 14:00:52,450 [DEBUG][       Thread-257254][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 14:00:52,450 [DEBUG][       Thread-257254][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 14:00:52,450 [DEBUG][       Thread-257254][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 14:00:52,450 [DEBUG][       Thread-257254][   transport.py][1871] : Compression: none
2025-06-13 14:00:52,450 [DEBUG][       Thread-257254][   transport.py][1871] : === End of kex handshake ===
2025-06-13 14:00:52,508 [DEBUG][       Thread-257254][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 14:00:52,509 [DEBUG][       Thread-257254][   transport.py][1871] : Switch to new keys ...
2025-06-13 14:00:52,509 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 14:00:52,510 [DEBUG][       Thread-257254][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 14:00:52,511 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 14:00:52,573 [DEBUG][       Thread-257254][   transport.py][1871] : userauth is OK
2025-06-13 14:00:52,573 [DEBUG][       Thread-257254][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 14:00:52,573 [DEBUG][       Thread-257254][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 14:00:52,574 [DEBUG][       Thread-257254][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 14:00:52,574 [DEBUG][       Thread-257254][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 14:00:52,594 [ INFO][       Thread-257254][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 14:00:52,594 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 14:00:52,595 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 14:00:52,720 [DEBUG][Thread-257256 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:00:53,613 [DEBUG][       Thread-257254][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 14:00:53,613 [DEBUG][       Thread-257254][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 14:00:53,663 [DEBUG][       Thread-257254][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 14:00:53,663 [DEBUG][       Thread-257254][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 14:00:53,672 [DEBUG][       Thread-257254][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 14:00:53,679 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 14:00:53,680 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 14:00:53,687 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 14:00:53,695 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 14:00:53,696 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 14:00:53,696 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 14:00:53,703 [DEBUG][       Thread-257254][   transport.py][1871] : EOF in transport thread
2025-06-13 14:00:57,075 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:00:57,076 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:01:01,757 [DEBUG][Thread-257257 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:01:03,706 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 14:01:03,707 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 14:01:03,707 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 14:01:03,710 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 14:01:04,153 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 14, 0, 36), 17.39, 29.62, 0.0, 20.7, 13.86, 0, 0, 0, 2, 0, 0),)
2025-06-13 14:01:04,153 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 14:00:36
2025-06-13 14:01:04,235 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 14:01:04,240 [DEBUG][       Thread-257258][   transport.py][1871] : starting thread (client mode): 0x86393490
2025-06-13 14:01:04,240 [DEBUG][       Thread-257258][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 14:01:04,261 [DEBUG][       Thread-257258][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 14:01:04,262 [ INFO][       Thread-257258][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 14:01:04,264 [DEBUG][       Thread-257258][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 14:01:04,264 [DEBUG][       Thread-257258][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 14:01:04,265 [DEBUG][       Thread-257258][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 14:01:04,265 [DEBUG][       Thread-257258][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:01:04,265 [DEBUG][       Thread-257258][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:01:04,265 [DEBUG][       Thread-257258][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:01:04,265 [DEBUG][       Thread-257258][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:01:04,265 [DEBUG][       Thread-257258][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 14:01:04,265 [DEBUG][       Thread-257258][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 14:01:04,265 [DEBUG][       Thread-257258][   transport.py][1871] : client lang: <none>
2025-06-13 14:01:04,265 [DEBUG][       Thread-257258][   transport.py][1871] : server lang: <none>
2025-06-13 14:01:04,265 [DEBUG][       Thread-257258][   transport.py][1871] : kex follows: False
2025-06-13 14:01:04,265 [DEBUG][       Thread-257258][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 14:01:04,265 [DEBUG][       Thread-257258][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 14:01:04,265 [DEBUG][       Thread-257258][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 14:01:04,265 [DEBUG][       Thread-257258][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 14:01:04,265 [DEBUG][       Thread-257258][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 14:01:04,265 [DEBUG][       Thread-257258][   transport.py][1871] : Compression: none
2025-06-13 14:01:04,265 [DEBUG][       Thread-257258][   transport.py][1871] : === End of kex handshake ===
2025-06-13 14:01:04,277 [DEBUG][       Thread-257258][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 14:01:04,277 [DEBUG][       Thread-257258][   transport.py][1871] : Switch to new keys ...
2025-06-13 14:01:04,278 [DEBUG][       Thread-257258][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 14:01:04,278 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 14:01:04,278 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 14:01:04,279 [DEBUG][       Thread-257258][   transport.py][1871] : userauth is OK
2025-06-13 14:01:04,292 [ INFO][       Thread-257258][   transport.py][1871] : Authentication (password) successful!
2025-06-13 14:01:04,293 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 14:01:04,999 [DEBUG][       Thread-257258][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 14:01:04,999 [DEBUG][       Thread-257258][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 14:01:05,041 [DEBUG][       Thread-257258][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 14:01:05,041 [DEBUG][       Thread-257258][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 14:01:05,045 [DEBUG][       Thread-257258][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 14:01:05,059 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 14:01:05,059 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 14:01:05,061 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 14:01:05,063 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 14:01:05,069 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 14:01:05,071 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 14:01:05,071 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 14:01:05,072 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 14:01:05,072 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.500284 -999.00  +13.50  26.55     34   -1.70 1 1 1 1 1   887    0 15.48 20.33 ----- 26.1 26.6 56.8 29.0 17.7 -29.5 16.4 -32.4 16.8 -30.9 18.4 -28.3
2025-06-13 14:01:05,072 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 14:01:05,072 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 14:01:05,072 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.500284
2025-06-13 14:01:05,072 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 14:01:05,073 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 14:01:05,073 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 14:01:05,073 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 14:01:05,073 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 14:01:05,073 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T14:00:36', tmtdew=17.39, humidity=29.62, cloud=0.0, wind=20.7, temperature=13.86, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T12:00:24.538', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 14:01:05,075 [DEBUG][       Thread-257258][   transport.py][1871] : EOF in transport thread
2025-06-13 14:01:05,157 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 14:01:05,172 [DEBUG][       Thread-257261][   transport.py][1871] : starting thread (client mode): 0x867b7640
2025-06-13 14:01:05,172 [DEBUG][       Thread-257261][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 14:01:05,187 [DEBUG][       Thread-257261][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 14:01:05,187 [ INFO][       Thread-257261][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 14:01:05,194 [DEBUG][       Thread-257261][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 14:01:05,195 [DEBUG][       Thread-257261][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 14:01:05,195 [DEBUG][       Thread-257261][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 14:01:05,195 [DEBUG][       Thread-257261][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:01:05,195 [DEBUG][       Thread-257261][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:01:05,195 [DEBUG][       Thread-257261][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:01:05,195 [DEBUG][       Thread-257261][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:01:05,195 [DEBUG][       Thread-257261][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 14:01:05,195 [DEBUG][       Thread-257261][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 14:01:05,195 [DEBUG][       Thread-257261][   transport.py][1871] : client lang: <none>
2025-06-13 14:01:05,195 [DEBUG][       Thread-257261][   transport.py][1871] : server lang: <none>
2025-06-13 14:01:05,195 [DEBUG][       Thread-257261][   transport.py][1871] : kex follows: False
2025-06-13 14:01:05,195 [DEBUG][       Thread-257261][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 14:01:05,195 [DEBUG][       Thread-257261][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 14:01:05,195 [DEBUG][       Thread-257261][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 14:01:05,195 [DEBUG][       Thread-257261][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 14:01:05,195 [DEBUG][       Thread-257261][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 14:01:05,195 [DEBUG][       Thread-257261][   transport.py][1871] : Compression: none
2025-06-13 14:01:05,196 [DEBUG][       Thread-257261][   transport.py][1871] : === End of kex handshake ===
2025-06-13 14:01:05,253 [DEBUG][       Thread-257261][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 14:01:05,253 [DEBUG][       Thread-257261][   transport.py][1871] : Switch to new keys ...
2025-06-13 14:01:05,254 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 14:01:05,254 [DEBUG][       Thread-257261][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 14:01:05,255 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 14:01:05,308 [DEBUG][       Thread-257261][   transport.py][1871] : userauth is OK
2025-06-13 14:01:05,308 [DEBUG][       Thread-257261][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 14:01:05,309 [DEBUG][       Thread-257261][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 14:01:05,309 [DEBUG][       Thread-257261][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 14:01:05,309 [DEBUG][       Thread-257261][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 14:01:05,328 [ INFO][       Thread-257261][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 14:01:05,328 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 14:01:05,329 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 14:01:06,397 [DEBUG][       Thread-257261][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 14:01:06,398 [DEBUG][       Thread-257261][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 14:01:06,448 [DEBUG][       Thread-257261][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 14:01:06,448 [DEBUG][       Thread-257261][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 14:01:06,458 [DEBUG][       Thread-257261][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 14:01:06,473 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 14:01:06,474 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 14:01:06,482 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 14:01:06,491 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 14:01:06,491 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 14:01:06,492 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 14:01:06,503 [DEBUG][       Thread-257261][   transport.py][1871] : EOF in transport thread
2025-06-13 14:01:10,658 [DEBUG][Thread-257263 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:01:10,776 [DEBUG][Thread-257264 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:01:11,722 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:01:11,723 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:01:16,500 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 14:01:16,500 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 14:01:16,500 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 14:01:16,503 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 14:01:16,899 [DEBUG][Thread-257265 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:01:16,963 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 14, 1, 7), 17.27, 29.88, 0.0, 19.22, 13.87, 0, 0, 0, 2, 0, 0),)
2025-06-13 14:01:16,963 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 14:01:07
2025-06-13 14:01:17,045 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 14:01:17,049 [DEBUG][       Thread-257266][   transport.py][1871] : starting thread (client mode): 0x86390c10
2025-06-13 14:01:17,049 [DEBUG][       Thread-257266][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 14:01:17,071 [DEBUG][       Thread-257266][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 14:01:17,071 [ INFO][       Thread-257266][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 14:01:17,074 [DEBUG][       Thread-257266][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 14:01:17,074 [DEBUG][       Thread-257266][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 14:01:17,074 [DEBUG][       Thread-257266][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 14:01:17,074 [DEBUG][       Thread-257266][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:01:17,074 [DEBUG][       Thread-257266][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:01:17,074 [DEBUG][       Thread-257266][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:01:17,074 [DEBUG][       Thread-257266][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:01:17,074 [DEBUG][       Thread-257266][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 14:01:17,074 [DEBUG][       Thread-257266][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 14:01:17,074 [DEBUG][       Thread-257266][   transport.py][1871] : client lang: <none>
2025-06-13 14:01:17,074 [DEBUG][       Thread-257266][   transport.py][1871] : server lang: <none>
2025-06-13 14:01:17,074 [DEBUG][       Thread-257266][   transport.py][1871] : kex follows: False
2025-06-13 14:01:17,074 [DEBUG][       Thread-257266][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 14:01:17,074 [DEBUG][       Thread-257266][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 14:01:17,074 [DEBUG][       Thread-257266][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 14:01:17,074 [DEBUG][       Thread-257266][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 14:01:17,074 [DEBUG][       Thread-257266][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 14:01:17,074 [DEBUG][       Thread-257266][   transport.py][1871] : Compression: none
2025-06-13 14:01:17,074 [DEBUG][       Thread-257266][   transport.py][1871] : === End of kex handshake ===
2025-06-13 14:01:17,091 [DEBUG][       Thread-257266][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 14:01:17,091 [DEBUG][       Thread-257266][   transport.py][1871] : Switch to new keys ...
2025-06-13 14:01:17,092 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 14:01:17,092 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 14:01:17,092 [DEBUG][       Thread-257266][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 14:01:17,093 [DEBUG][       Thread-257266][   transport.py][1871] : userauth is OK
2025-06-13 14:01:17,117 [ INFO][       Thread-257266][   transport.py][1871] : Authentication (password) successful!
2025-06-13 14:01:17,118 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 14:01:17,748 [DEBUG][       Thread-257266][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 14:01:17,749 [DEBUG][       Thread-257266][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 14:01:17,793 [DEBUG][       Thread-257266][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 14:01:17,793 [DEBUG][       Thread-257266][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 14:01:17,797 [DEBUG][       Thread-257266][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 14:01:17,811 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 14:01:17,811 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 14:01:17,813 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 14:01:17,814 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 14:01:17,820 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 14:01:17,822 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 14:01:17,822 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 14:01:17,823 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 14:01:17,823 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.500284 -999.00  +13.50  26.55     34   -1.70 1 1 1 1 1   887    0 15.48 20.33 ----- 26.1 26.6 56.8 29.0 17.7 -29.5 16.4 -32.4 16.8 -30.9 18.4 -28.3
2025-06-13 14:01:17,823 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 14:01:17,823 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 14:01:17,823 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.500284
2025-06-13 14:01:17,824 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 14:01:17,824 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 14:01:17,824 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 14:01:17,824 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 14:01:17,824 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 14:01:17,825 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T14:01:07', tmtdew=17.27, humidity=29.88, cloud=0.0, wind=19.22, temperature=13.87, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T12:00:24.538', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 14:01:17,826 [DEBUG][       Thread-257266][   transport.py][1871] : EOF in transport thread
2025-06-13 14:01:17,907 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 14:01:17,920 [DEBUG][       Thread-257269][   transport.py][1871] : starting thread (client mode): 0x867b78b0
2025-06-13 14:01:17,920 [DEBUG][       Thread-257269][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 14:01:17,934 [DEBUG][       Thread-257269][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 14:01:17,935 [ INFO][       Thread-257269][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 14:01:17,942 [DEBUG][       Thread-257269][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 14:01:17,942 [DEBUG][       Thread-257269][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 14:01:17,942 [DEBUG][       Thread-257269][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 14:01:17,942 [DEBUG][       Thread-257269][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:01:17,943 [DEBUG][       Thread-257269][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:01:17,943 [DEBUG][       Thread-257269][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:01:17,943 [DEBUG][       Thread-257269][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:01:17,943 [DEBUG][       Thread-257269][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 14:01:17,943 [DEBUG][       Thread-257269][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 14:01:17,943 [DEBUG][       Thread-257269][   transport.py][1871] : client lang: <none>
2025-06-13 14:01:17,943 [DEBUG][       Thread-257269][   transport.py][1871] : server lang: <none>
2025-06-13 14:01:17,943 [DEBUG][       Thread-257269][   transport.py][1871] : kex follows: False
2025-06-13 14:01:17,943 [DEBUG][       Thread-257269][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 14:01:17,943 [DEBUG][       Thread-257269][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 14:01:17,943 [DEBUG][       Thread-257269][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 14:01:17,943 [DEBUG][       Thread-257269][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 14:01:17,943 [DEBUG][       Thread-257269][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 14:01:17,943 [DEBUG][       Thread-257269][   transport.py][1871] : Compression: none
2025-06-13 14:01:17,943 [DEBUG][       Thread-257269][   transport.py][1871] : === End of kex handshake ===
2025-06-13 14:01:18,005 [DEBUG][       Thread-257269][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 14:01:18,005 [DEBUG][       Thread-257269][   transport.py][1871] : Switch to new keys ...
2025-06-13 14:01:18,006 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 14:01:18,007 [DEBUG][       Thread-257269][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 14:01:18,007 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 14:01:18,066 [DEBUG][       Thread-257269][   transport.py][1871] : userauth is OK
2025-06-13 14:01:18,066 [DEBUG][       Thread-257269][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 14:01:18,067 [DEBUG][       Thread-257269][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 14:01:18,067 [DEBUG][       Thread-257269][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 14:01:18,067 [DEBUG][       Thread-257269][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 14:01:18,085 [ INFO][       Thread-257269][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 14:01:18,086 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 14:01:18,086 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 14:01:19,097 [DEBUG][       Thread-257269][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 14:01:19,097 [DEBUG][       Thread-257269][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 14:01:19,148 [DEBUG][       Thread-257269][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 14:01:19,148 [DEBUG][       Thread-257269][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 14:01:19,157 [DEBUG][       Thread-257269][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 14:01:19,166 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 14:01:19,166 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 14:01:19,175 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 14:01:19,184 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 14:01:19,184 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 14:01:19,184 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 14:01:19,192 [DEBUG][       Thread-257269][   transport.py][1871] : EOF in transport thread
2025-06-13 14:01:19,795 [DEBUG][Thread-257271 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:01:28,833 [DEBUG][Thread-257272 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:01:29,192 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 14:01:29,193 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 14:01:29,193 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 14:01:29,196 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 14:01:29,639 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 14, 1, 7), 17.27, 29.88, 0.0, 19.22, 13.87, 0, 0, 0, 2, 0, 0),)
2025-06-13 14:01:29,639 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 14:01:07
2025-06-13 14:01:29,721 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 14:01:29,725 [DEBUG][       Thread-257273][   transport.py][1871] : starting thread (client mode): 0x863506d0
2025-06-13 14:01:29,725 [DEBUG][       Thread-257273][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 14:01:29,745 [DEBUG][       Thread-257273][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 14:01:29,745 [ INFO][       Thread-257273][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 14:01:29,747 [DEBUG][       Thread-257273][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 14:01:29,747 [DEBUG][       Thread-257273][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 14:01:29,747 [DEBUG][       Thread-257273][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 14:01:29,748 [DEBUG][       Thread-257273][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:01:29,748 [DEBUG][       Thread-257273][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:01:29,748 [DEBUG][       Thread-257273][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:01:29,748 [DEBUG][       Thread-257273][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:01:29,748 [DEBUG][       Thread-257273][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 14:01:29,748 [DEBUG][       Thread-257273][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 14:01:29,748 [DEBUG][       Thread-257273][   transport.py][1871] : client lang: <none>
2025-06-13 14:01:29,748 [DEBUG][       Thread-257273][   transport.py][1871] : server lang: <none>
2025-06-13 14:01:29,748 [DEBUG][       Thread-257273][   transport.py][1871] : kex follows: False
2025-06-13 14:01:29,748 [DEBUG][       Thread-257273][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 14:01:29,748 [DEBUG][       Thread-257273][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 14:01:29,748 [DEBUG][       Thread-257273][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 14:01:29,748 [DEBUG][       Thread-257273][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 14:01:29,748 [DEBUG][       Thread-257273][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 14:01:29,748 [DEBUG][       Thread-257273][   transport.py][1871] : Compression: none
2025-06-13 14:01:29,748 [DEBUG][       Thread-257273][   transport.py][1871] : === End of kex handshake ===
2025-06-13 14:01:29,765 [DEBUG][       Thread-257273][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 14:01:29,765 [DEBUG][       Thread-257273][   transport.py][1871] : Switch to new keys ...
2025-06-13 14:01:29,766 [DEBUG][       Thread-257273][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 14:01:29,766 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 14:01:29,766 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 14:01:29,768 [DEBUG][       Thread-257273][   transport.py][1871] : userauth is OK
2025-06-13 14:01:29,781 [ INFO][       Thread-257273][   transport.py][1871] : Authentication (password) successful!
2025-06-13 14:01:29,782 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 14:01:30,349 [DEBUG][       Thread-257273][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 14:01:30,349 [DEBUG][       Thread-257273][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 14:01:30,393 [DEBUG][       Thread-257273][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 14:01:30,393 [DEBUG][       Thread-257273][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 14:01:30,396 [DEBUG][       Thread-257273][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 14:01:30,409 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 14:01:30,410 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 14:01:30,412 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 14:01:30,414 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 14:01:30,419 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 14:01:30,421 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 14:01:30,422 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 14:01:30,422 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 14:01:30,423 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.500631 -999.00  +13.30  19.57     35   -1.60 1 1 1 1 1   887    0 15.62 20.64 ----- 19.9 19.6 40.2 28.6 17.6 -31.2 16.5 -31.6 16.9 -30.2 18.3 -28.6
2025-06-13 14:01:30,423 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 14:01:30,423 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 14:01:30,423 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.500631
2025-06-13 14:01:30,423 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 14:01:30,424 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 14:01:30,424 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 14:01:30,424 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 14:01:30,424 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 14:01:30,424 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T14:01:07', tmtdew=17.27, humidity=29.88, cloud=0.0, wind=19.22, temperature=13.87, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T12:00:54.518', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 14:01:30,425 [DEBUG][       Thread-257273][   transport.py][1871] : EOF in transport thread
2025-06-13 14:01:30,497 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 14:01:30,509 [DEBUG][       Thread-257276][   transport.py][1871] : starting thread (client mode): 0x86369f60
2025-06-13 14:01:30,509 [DEBUG][       Thread-257276][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 14:01:30,526 [DEBUG][       Thread-257276][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 14:01:30,526 [ INFO][       Thread-257276][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 14:01:30,536 [DEBUG][       Thread-257276][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 14:01:30,537 [DEBUG][       Thread-257276][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 14:01:30,537 [DEBUG][       Thread-257276][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 14:01:30,537 [DEBUG][       Thread-257276][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:01:30,537 [DEBUG][       Thread-257276][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:01:30,537 [DEBUG][       Thread-257276][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:01:30,537 [DEBUG][       Thread-257276][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:01:30,537 [DEBUG][       Thread-257276][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 14:01:30,537 [DEBUG][       Thread-257276][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 14:01:30,537 [DEBUG][       Thread-257276][   transport.py][1871] : client lang: <none>
2025-06-13 14:01:30,537 [DEBUG][       Thread-257276][   transport.py][1871] : server lang: <none>
2025-06-13 14:01:30,537 [DEBUG][       Thread-257276][   transport.py][1871] : kex follows: False
2025-06-13 14:01:30,537 [DEBUG][       Thread-257276][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 14:01:30,537 [DEBUG][       Thread-257276][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 14:01:30,537 [DEBUG][       Thread-257276][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 14:01:30,538 [DEBUG][       Thread-257276][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 14:01:30,538 [DEBUG][       Thread-257276][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 14:01:30,538 [DEBUG][       Thread-257276][   transport.py][1871] : Compression: none
2025-06-13 14:01:30,538 [DEBUG][       Thread-257276][   transport.py][1871] : === End of kex handshake ===
2025-06-13 14:01:30,595 [DEBUG][       Thread-257276][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 14:01:30,596 [DEBUG][       Thread-257276][   transport.py][1871] : Switch to new keys ...
2025-06-13 14:01:30,597 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 14:01:30,597 [DEBUG][       Thread-257276][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 14:01:30,598 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 14:01:30,657 [DEBUG][       Thread-257276][   transport.py][1871] : userauth is OK
2025-06-13 14:01:30,657 [DEBUG][       Thread-257276][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 14:01:30,657 [DEBUG][       Thread-257276][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 14:01:30,657 [DEBUG][       Thread-257276][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 14:01:30,657 [DEBUG][       Thread-257276][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 14:01:30,679 [ INFO][       Thread-257276][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 14:01:30,679 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 14:01:30,680 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 14:01:31,713 [DEBUG][       Thread-257276][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 14:01:31,713 [DEBUG][       Thread-257276][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 14:01:31,764 [DEBUG][       Thread-257276][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 14:01:31,764 [DEBUG][       Thread-257276][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 14:01:31,775 [DEBUG][       Thread-257276][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 14:01:31,785 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 14:01:31,785 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 14:01:31,794 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 14:01:31,803 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 14:01:31,803 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 14:01:31,803 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 14:01:31,811 [DEBUG][       Thread-257276][   transport.py][1871] : EOF in transport thread
2025-06-13 14:01:37,857 [DEBUG][Thread-257278 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:01:41,814 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 14:01:41,814 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 14:01:41,814 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 14:01:41,815 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 14:01:42,266 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 14, 1, 7), 17.27, 29.88, 0.0, 19.22, 13.87, 0, 0, 0, 2, 0, 0),)
2025-06-13 14:01:42,266 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 14:01:07
2025-06-13 14:01:42,347 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 14:01:42,351 [DEBUG][       Thread-257279][   transport.py][1871] : starting thread (client mode): 0x863be380
2025-06-13 14:01:42,351 [DEBUG][       Thread-257279][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 14:01:42,372 [DEBUG][       Thread-257279][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 14:01:42,372 [ INFO][       Thread-257279][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 14:01:42,375 [DEBUG][       Thread-257279][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 14:01:42,375 [DEBUG][       Thread-257279][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 14:01:42,375 [DEBUG][       Thread-257279][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 14:01:42,375 [DEBUG][       Thread-257279][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:01:42,375 [DEBUG][       Thread-257279][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:01:42,375 [DEBUG][       Thread-257279][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:01:42,375 [DEBUG][       Thread-257279][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:01:42,375 [DEBUG][       Thread-257279][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 14:01:42,376 [DEBUG][       Thread-257279][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 14:01:42,376 [DEBUG][       Thread-257279][   transport.py][1871] : client lang: <none>
2025-06-13 14:01:42,376 [DEBUG][       Thread-257279][   transport.py][1871] : server lang: <none>
2025-06-13 14:01:42,376 [DEBUG][       Thread-257279][   transport.py][1871] : kex follows: False
2025-06-13 14:01:42,376 [DEBUG][       Thread-257279][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 14:01:42,376 [DEBUG][       Thread-257279][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 14:01:42,376 [DEBUG][       Thread-257279][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 14:01:42,376 [DEBUG][       Thread-257279][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 14:01:42,376 [DEBUG][       Thread-257279][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 14:01:42,376 [DEBUG][       Thread-257279][   transport.py][1871] : Compression: none
2025-06-13 14:01:42,376 [DEBUG][       Thread-257279][   transport.py][1871] : === End of kex handshake ===
2025-06-13 14:01:42,392 [DEBUG][       Thread-257279][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 14:01:42,393 [DEBUG][       Thread-257279][   transport.py][1871] : Switch to new keys ...
2025-06-13 14:01:42,393 [DEBUG][       Thread-257279][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 14:01:42,393 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 14:01:42,394 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 14:01:42,395 [DEBUG][       Thread-257279][   transport.py][1871] : userauth is OK
2025-06-13 14:01:42,419 [ INFO][       Thread-257279][   transport.py][1871] : Authentication (password) successful!
2025-06-13 14:01:42,420 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 14:01:44,200 [DEBUG][       Thread-257279][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 14:01:44,200 [DEBUG][       Thread-257279][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 14:01:44,241 [DEBUG][       Thread-257279][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 14:01:44,241 [DEBUG][       Thread-257279][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 14:01:44,245 [DEBUG][       Thread-257279][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 14:01:44,257 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 14:01:44,258 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 14:01:44,259 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 14:01:44,261 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 14:01:44,267 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 14:01:44,269 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 14:01:44,269 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 14:01:44,270 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 14:01:44,270 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.500631 -999.00  +13.30  19.57     35   -1.60 1 1 1 1 1   887    0 15.62 20.64 ----- 19.9 19.6 40.2 28.6 17.6 -31.2 16.5 -31.6 16.9 -30.2 18.3 -28.6
2025-06-13 14:01:44,270 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 14:01:44,270 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 14:01:44,270 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.500631
2025-06-13 14:01:44,271 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 14:01:44,271 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 14:01:44,271 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 14:01:44,271 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 14:01:44,271 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 14:01:44,272 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T14:01:07', tmtdew=17.27, humidity=29.88, cloud=0.0, wind=19.22, temperature=13.87, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T12:00:54.518', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 14:01:44,273 [DEBUG][       Thread-257279][   transport.py][1871] : EOF in transport thread
2025-06-13 14:01:44,356 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 14:01:44,376 [DEBUG][       Thread-257282][   transport.py][1871] : starting thread (client mode): 0x867b78e0
2025-06-13 14:01:44,376 [DEBUG][       Thread-257282][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 14:01:44,395 [DEBUG][       Thread-257282][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 14:01:44,396 [ INFO][       Thread-257282][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 14:01:44,406 [DEBUG][       Thread-257282][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 14:01:44,406 [DEBUG][       Thread-257282][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 14:01:44,407 [DEBUG][       Thread-257282][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 14:01:44,407 [DEBUG][       Thread-257282][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:01:44,407 [DEBUG][       Thread-257282][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:01:44,407 [DEBUG][       Thread-257282][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:01:44,407 [DEBUG][       Thread-257282][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:01:44,407 [DEBUG][       Thread-257282][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 14:01:44,407 [DEBUG][       Thread-257282][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 14:01:44,407 [DEBUG][       Thread-257282][   transport.py][1871] : client lang: <none>
2025-06-13 14:01:44,407 [DEBUG][       Thread-257282][   transport.py][1871] : server lang: <none>
2025-06-13 14:01:44,407 [DEBUG][       Thread-257282][   transport.py][1871] : kex follows: False
2025-06-13 14:01:44,407 [DEBUG][       Thread-257282][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 14:01:44,407 [DEBUG][       Thread-257282][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 14:01:44,407 [DEBUG][       Thread-257282][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 14:01:44,407 [DEBUG][       Thread-257282][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 14:01:44,408 [DEBUG][       Thread-257282][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 14:01:44,408 [DEBUG][       Thread-257282][   transport.py][1871] : Compression: none
2025-06-13 14:01:44,408 [DEBUG][       Thread-257282][   transport.py][1871] : === End of kex handshake ===
2025-06-13 14:01:44,471 [DEBUG][       Thread-257282][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 14:01:44,471 [DEBUG][       Thread-257282][   transport.py][1871] : Switch to new keys ...
2025-06-13 14:01:44,472 [DEBUG][       Thread-257282][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 14:01:44,472 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 14:01:44,473 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 14:01:44,528 [DEBUG][       Thread-257282][   transport.py][1871] : userauth is OK
2025-06-13 14:01:44,529 [DEBUG][       Thread-257282][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 14:01:44,529 [DEBUG][       Thread-257282][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 14:01:44,529 [DEBUG][       Thread-257282][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 14:01:44,529 [DEBUG][       Thread-257282][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 14:01:44,548 [ INFO][       Thread-257282][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 14:01:44,549 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 14:01:44,549 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 14:01:45,584 [DEBUG][       Thread-257282][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 14:01:45,584 [DEBUG][       Thread-257282][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 14:01:45,644 [DEBUG][       Thread-257282][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 14:01:45,644 [DEBUG][       Thread-257282][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 14:01:45,653 [DEBUG][       Thread-257282][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 14:01:45,662 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 14:01:45,662 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 14:01:45,673 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 14:01:45,682 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 14:01:45,683 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 14:01:45,683 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 14:01:45,691 [DEBUG][       Thread-257282][   transport.py][1871] : EOF in transport thread
2025-06-13 14:01:46,876 [DEBUG][Thread-257284 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:01:55,692 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 14:01:55,692 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 14:01:55,692 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 14:01:55,695 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 14:01:55,892 [DEBUG][Thread-257285 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:01:56,158 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 14, 1, 39), 17.17, 30.47, 0.0, 13.62, 13.88, 0, 0, 0, 2, 0, 0),)
2025-06-13 14:01:56,158 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 14:01:39
2025-06-13 14:01:56,240 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 14:01:56,243 [DEBUG][       Thread-257286][   transport.py][1871] : starting thread (client mode): 0x863509d0
2025-06-13 14:01:56,243 [DEBUG][       Thread-257286][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 14:01:56,263 [DEBUG][       Thread-257286][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 14:01:56,263 [ INFO][       Thread-257286][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 14:01:56,266 [DEBUG][       Thread-257286][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 14:01:56,266 [DEBUG][       Thread-257286][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 14:01:56,266 [DEBUG][       Thread-257286][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 14:01:56,266 [DEBUG][       Thread-257286][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:01:56,266 [DEBUG][       Thread-257286][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:01:56,266 [DEBUG][       Thread-257286][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:01:56,266 [DEBUG][       Thread-257286][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:01:56,266 [DEBUG][       Thread-257286][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 14:01:56,266 [DEBUG][       Thread-257286][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 14:01:56,266 [DEBUG][       Thread-257286][   transport.py][1871] : client lang: <none>
2025-06-13 14:01:56,266 [DEBUG][       Thread-257286][   transport.py][1871] : server lang: <none>
2025-06-13 14:01:56,266 [DEBUG][       Thread-257286][   transport.py][1871] : kex follows: False
2025-06-13 14:01:56,266 [DEBUG][       Thread-257286][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 14:01:56,267 [DEBUG][       Thread-257286][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 14:01:56,267 [DEBUG][       Thread-257286][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 14:01:56,267 [DEBUG][       Thread-257286][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 14:01:56,267 [DEBUG][       Thread-257286][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 14:01:56,267 [DEBUG][       Thread-257286][   transport.py][1871] : Compression: none
2025-06-13 14:01:56,267 [DEBUG][       Thread-257286][   transport.py][1871] : === End of kex handshake ===
2025-06-13 14:01:56,284 [DEBUG][       Thread-257286][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 14:01:56,285 [DEBUG][       Thread-257286][   transport.py][1871] : Switch to new keys ...
2025-06-13 14:01:56,285 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 14:01:56,285 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 14:01:56,286 [DEBUG][       Thread-257286][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 14:01:56,286 [DEBUG][       Thread-257286][   transport.py][1871] : userauth is OK
2025-06-13 14:01:56,311 [ INFO][       Thread-257286][   transport.py][1871] : Authentication (password) successful!
2025-06-13 14:01:56,311 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 14:01:56,904 [DEBUG][       Thread-257286][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 14:01:56,904 [DEBUG][       Thread-257286][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 14:01:56,945 [DEBUG][       Thread-257286][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 14:01:56,945 [DEBUG][       Thread-257286][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 14:01:56,948 [DEBUG][       Thread-257286][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 14:01:56,970 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 14:01:56,970 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 14:01:56,972 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 14:01:56,973 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 14:01:56,978 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 14:01:56,979 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 14:01:56,979 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 14:01:56,980 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 14:01:56,980 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.500631 -999.00  +13.30  19.57     35   -1.60 1 1 1 1 1   887    0 15.62 20.64 ----- 19.9 19.6 40.2 28.6 17.6 -31.2 16.5 -31.6 16.9 -30.2 18.3 -28.6
2025-06-13 14:01:56,980 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 14:01:56,980 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 14:01:56,980 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.500631
2025-06-13 14:01:56,981 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 14:01:56,981 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 14:01:56,981 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 14:01:56,982 [DEBUG][       Thread-257286][   transport.py][1871] : EOF in transport thread
2025-06-13 14:01:56,982 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 14:01:56,982 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 14:01:56,982 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T14:01:39', tmtdew=17.17, humidity=30.47, cloud=0.0, wind=13.62, temperature=13.88, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T12:00:54.518', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 14:01:57,065 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 14:01:57,074 [DEBUG][       Thread-257289][   transport.py][1871] : starting thread (client mode): 0x868c85e0
2025-06-13 14:01:57,074 [DEBUG][       Thread-257289][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 14:01:57,092 [DEBUG][       Thread-257289][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 14:01:57,092 [ INFO][       Thread-257289][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 14:01:57,099 [DEBUG][       Thread-257289][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 14:01:57,099 [DEBUG][       Thread-257289][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 14:01:57,099 [DEBUG][       Thread-257289][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 14:01:57,099 [DEBUG][       Thread-257289][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:01:57,099 [DEBUG][       Thread-257289][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:01:57,099 [DEBUG][       Thread-257289][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:01:57,099 [DEBUG][       Thread-257289][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:01:57,099 [DEBUG][       Thread-257289][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 14:01:57,099 [DEBUG][       Thread-257289][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 14:01:57,099 [DEBUG][       Thread-257289][   transport.py][1871] : client lang: <none>
2025-06-13 14:01:57,099 [DEBUG][       Thread-257289][   transport.py][1871] : server lang: <none>
2025-06-13 14:01:57,099 [DEBUG][       Thread-257289][   transport.py][1871] : kex follows: False
2025-06-13 14:01:57,099 [DEBUG][       Thread-257289][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 14:01:57,099 [DEBUG][       Thread-257289][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 14:01:57,099 [DEBUG][       Thread-257289][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 14:01:57,099 [DEBUG][       Thread-257289][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 14:01:57,099 [DEBUG][       Thread-257289][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 14:01:57,099 [DEBUG][       Thread-257289][   transport.py][1871] : Compression: none
2025-06-13 14:01:57,099 [DEBUG][       Thread-257289][   transport.py][1871] : === End of kex handshake ===
2025-06-13 14:01:57,156 [DEBUG][       Thread-257289][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 14:01:57,156 [DEBUG][       Thread-257289][   transport.py][1871] : Switch to new keys ...
2025-06-13 14:01:57,156 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 14:01:57,157 [DEBUG][       Thread-257289][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 14:01:57,157 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 14:01:57,212 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:01:57,213 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:01:57,217 [DEBUG][       Thread-257289][   transport.py][1871] : userauth is OK
2025-06-13 14:01:57,217 [DEBUG][       Thread-257289][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 14:01:57,218 [DEBUG][       Thread-257289][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 14:01:57,218 [DEBUG][       Thread-257289][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 14:01:57,218 [DEBUG][       Thread-257289][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 14:01:57,242 [ INFO][       Thread-257289][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 14:01:57,242 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 14:01:57,242 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 14:01:58,234 [DEBUG][       Thread-257289][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 14:01:58,235 [DEBUG][       Thread-257289][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 14:01:58,287 [DEBUG][       Thread-257289][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 14:01:58,288 [DEBUG][       Thread-257289][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 14:01:58,296 [DEBUG][       Thread-257289][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 14:01:58,305 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 14:01:58,305 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 14:01:58,313 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 14:01:58,322 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 14:01:58,322 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 14:01:58,322 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 14:01:58,330 [DEBUG][       Thread-257289][   transport.py][1871] : EOF in transport thread
2025-06-13 14:02:04,912 [DEBUG][Thread-257291 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:02:08,333 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 14:02:08,333 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 14:02:08,333 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 14:02:08,334 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 14:02:08,778 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 14, 1, 39), 17.17, 30.47, 0.0, 13.62, 13.88, 0, 0, 0, 2, 0, 0),)
2025-06-13 14:02:08,778 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 14:01:39
2025-06-13 14:02:08,859 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 14:02:08,864 [DEBUG][       Thread-257292][   transport.py][1871] : starting thread (client mode): 0x863be0b0
2025-06-13 14:02:08,864 [DEBUG][       Thread-257292][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 14:02:08,884 [DEBUG][       Thread-257292][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 14:02:08,884 [ INFO][       Thread-257292][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 14:02:08,888 [DEBUG][       Thread-257292][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 14:02:08,888 [DEBUG][       Thread-257292][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 14:02:08,888 [DEBUG][       Thread-257292][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 14:02:08,888 [DEBUG][       Thread-257292][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:02:08,888 [DEBUG][       Thread-257292][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:02:08,888 [DEBUG][       Thread-257292][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:02:08,888 [DEBUG][       Thread-257292][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:02:08,888 [DEBUG][       Thread-257292][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 14:02:08,888 [DEBUG][       Thread-257292][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 14:02:08,888 [DEBUG][       Thread-257292][   transport.py][1871] : client lang: <none>
2025-06-13 14:02:08,888 [DEBUG][       Thread-257292][   transport.py][1871] : server lang: <none>
2025-06-13 14:02:08,888 [DEBUG][       Thread-257292][   transport.py][1871] : kex follows: False
2025-06-13 14:02:08,888 [DEBUG][       Thread-257292][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 14:02:08,888 [DEBUG][       Thread-257292][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 14:02:08,888 [DEBUG][       Thread-257292][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 14:02:08,888 [DEBUG][       Thread-257292][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 14:02:08,888 [DEBUG][       Thread-257292][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 14:02:08,888 [DEBUG][       Thread-257292][   transport.py][1871] : Compression: none
2025-06-13 14:02:08,888 [DEBUG][       Thread-257292][   transport.py][1871] : === End of kex handshake ===
2025-06-13 14:02:08,905 [DEBUG][       Thread-257292][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 14:02:08,906 [DEBUG][       Thread-257292][   transport.py][1871] : Switch to new keys ...
2025-06-13 14:02:08,906 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 14:02:08,906 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 14:02:08,907 [DEBUG][       Thread-257292][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 14:02:08,908 [DEBUG][       Thread-257292][   transport.py][1871] : userauth is OK
2025-06-13 14:02:08,921 [ INFO][       Thread-257292][   transport.py][1871] : Authentication (password) successful!
2025-06-13 14:02:08,922 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 14:02:09,505 [DEBUG][       Thread-257292][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 14:02:09,506 [DEBUG][       Thread-257292][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 14:02:09,549 [DEBUG][       Thread-257292][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 14:02:09,549 [DEBUG][       Thread-257292][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 14:02:09,552 [DEBUG][       Thread-257292][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 14:02:09,564 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 14:02:09,565 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 14:02:09,566 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 14:02:09,568 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 14:02:09,573 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 14:02:09,575 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 14:02:09,575 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 14:02:09,576 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 14:02:09,576 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.500978 -999.00  +13.40  21.56     36   -1.30 1 1 1 1 1   887    0 15.83 19.69 ----- 17.6 21.6 57.4 23.9 17.7 -30.5 16.6 -31.4 16.9 -29.6 18.2 -28.0
2025-06-13 14:02:09,576 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 14:02:09,576 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 14:02:09,577 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.500978
2025-06-13 14:02:09,577 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 14:02:09,577 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 14:02:09,578 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 14:02:09,578 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 14:02:09,578 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 14:02:09,578 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T14:01:39', tmtdew=17.17, humidity=30.47, cloud=0.0, wind=13.62, temperature=13.88, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T12:01:24.499', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 14:02:09,579 [DEBUG][       Thread-257292][   transport.py][1871] : EOF in transport thread
2025-06-13 14:02:09,661 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 14:02:09,672 [DEBUG][       Thread-257295][   transport.py][1871] : starting thread (client mode): 0x84206bc0
2025-06-13 14:02:09,672 [DEBUG][       Thread-257295][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 14:02:09,687 [DEBUG][       Thread-257295][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 14:02:09,687 [ INFO][       Thread-257295][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 14:02:09,695 [DEBUG][       Thread-257295][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 14:02:09,695 [DEBUG][       Thread-257295][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 14:02:09,695 [DEBUG][       Thread-257295][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 14:02:09,695 [DEBUG][       Thread-257295][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:02:09,695 [DEBUG][       Thread-257295][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:02:09,695 [DEBUG][       Thread-257295][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:02:09,695 [DEBUG][       Thread-257295][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:02:09,695 [DEBUG][       Thread-257295][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 14:02:09,695 [DEBUG][       Thread-257295][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 14:02:09,695 [DEBUG][       Thread-257295][   transport.py][1871] : client lang: <none>
2025-06-13 14:02:09,695 [DEBUG][       Thread-257295][   transport.py][1871] : server lang: <none>
2025-06-13 14:02:09,695 [DEBUG][       Thread-257295][   transport.py][1871] : kex follows: False
2025-06-13 14:02:09,695 [DEBUG][       Thread-257295][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 14:02:09,695 [DEBUG][       Thread-257295][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 14:02:09,695 [DEBUG][       Thread-257295][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 14:02:09,695 [DEBUG][       Thread-257295][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 14:02:09,696 [DEBUG][       Thread-257295][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 14:02:09,696 [DEBUG][       Thread-257295][   transport.py][1871] : Compression: none
2025-06-13 14:02:09,696 [DEBUG][       Thread-257295][   transport.py][1871] : === End of kex handshake ===
2025-06-13 14:02:09,754 [DEBUG][       Thread-257295][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 14:02:09,754 [DEBUG][       Thread-257295][   transport.py][1871] : Switch to new keys ...
2025-06-13 14:02:09,755 [DEBUG][       Thread-257295][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 14:02:09,755 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 14:02:09,756 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 14:02:09,817 [DEBUG][       Thread-257295][   transport.py][1871] : userauth is OK
2025-06-13 14:02:09,818 [DEBUG][       Thread-257295][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 14:02:09,818 [DEBUG][       Thread-257295][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 14:02:09,818 [DEBUG][       Thread-257295][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 14:02:09,818 [DEBUG][       Thread-257295][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 14:02:09,837 [ INFO][       Thread-257295][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 14:02:09,838 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 14:02:09,838 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 14:02:10,857 [DEBUG][       Thread-257295][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 14:02:10,857 [DEBUG][       Thread-257295][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 14:02:10,908 [DEBUG][       Thread-257295][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 14:02:10,908 [DEBUG][       Thread-257295][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 14:02:10,918 [DEBUG][       Thread-257295][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 14:02:10,930 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 14:02:10,930 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 14:02:10,939 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 14:02:10,948 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 14:02:10,949 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 14:02:10,949 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 14:02:10,957 [DEBUG][       Thread-257295][   transport.py][1871] : EOF in transport thread
2025-06-13 14:02:11,806 [DEBUG][Thread-257297 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:02:12,881 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:02:12,881 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:02:13,956 [DEBUG][Thread-257298 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:02:16,949 [DEBUG][Thread-257299 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:02:20,959 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 14:02:20,960 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 14:02:20,960 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 14:02:20,962 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 14:02:21,413 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 14, 2, 11), 17.08, 30.44, 0.0, 16.53, 14.08, 0, 0, 0, 2, 0, 0),)
2025-06-13 14:02:21,413 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 14:02:11
2025-06-13 14:02:21,494 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 14:02:21,499 [DEBUG][       Thread-257300][   transport.py][1871] : starting thread (client mode): 0x842058a0
2025-06-13 14:02:21,499 [DEBUG][       Thread-257300][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 14:02:21,515 [DEBUG][       Thread-257300][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 14:02:21,515 [ INFO][       Thread-257300][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 14:02:21,519 [DEBUG][       Thread-257300][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 14:02:21,519 [DEBUG][       Thread-257300][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 14:02:21,519 [DEBUG][       Thread-257300][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 14:02:21,519 [DEBUG][       Thread-257300][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:02:21,519 [DEBUG][       Thread-257300][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:02:21,519 [DEBUG][       Thread-257300][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:02:21,519 [DEBUG][       Thread-257300][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:02:21,519 [DEBUG][       Thread-257300][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 14:02:21,519 [DEBUG][       Thread-257300][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 14:02:21,519 [DEBUG][       Thread-257300][   transport.py][1871] : client lang: <none>
2025-06-13 14:02:21,519 [DEBUG][       Thread-257300][   transport.py][1871] : server lang: <none>
2025-06-13 14:02:21,519 [DEBUG][       Thread-257300][   transport.py][1871] : kex follows: False
2025-06-13 14:02:21,519 [DEBUG][       Thread-257300][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 14:02:21,519 [DEBUG][       Thread-257300][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 14:02:21,519 [DEBUG][       Thread-257300][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 14:02:21,519 [DEBUG][       Thread-257300][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 14:02:21,519 [DEBUG][       Thread-257300][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 14:02:21,519 [DEBUG][       Thread-257300][   transport.py][1871] : Compression: none
2025-06-13 14:02:21,519 [DEBUG][       Thread-257300][   transport.py][1871] : === End of kex handshake ===
2025-06-13 14:02:21,535 [DEBUG][       Thread-257300][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 14:02:21,536 [DEBUG][       Thread-257300][   transport.py][1871] : Switch to new keys ...
2025-06-13 14:02:21,536 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 14:02:21,536 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 14:02:21,537 [DEBUG][       Thread-257300][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 14:02:21,538 [DEBUG][       Thread-257300][   transport.py][1871] : userauth is OK
2025-06-13 14:02:21,563 [ INFO][       Thread-257300][   transport.py][1871] : Authentication (password) successful!
2025-06-13 14:02:21,564 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 14:02:22,231 [DEBUG][       Thread-257300][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 14:02:22,232 [DEBUG][       Thread-257300][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 14:02:22,273 [DEBUG][       Thread-257300][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 14:02:22,273 [DEBUG][       Thread-257300][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 14:02:22,276 [DEBUG][       Thread-257300][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 14:02:22,290 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 14:02:22,290 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 14:02:22,293 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 14:02:22,295 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 14:02:22,301 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 14:02:22,303 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 14:02:22,304 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 14:02:22,304 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 14:02:22,305 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.500978 -999.00  +13.40  21.56     36   -1.30 1 1 1 1 1   887    0 15.83 19.69 ----- 17.6 21.6 57.4 23.9 17.7 -30.5 16.6 -31.4 16.9 -29.6 18.2 -28.0
2025-06-13 14:02:22,305 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 14:02:22,305 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 14:02:22,305 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.500978
2025-06-13 14:02:22,305 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 14:02:22,306 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 14:02:22,306 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 14:02:22,306 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 14:02:22,306 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 14:02:22,306 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T14:02:11', tmtdew=17.08, humidity=30.44, cloud=0.0, wind=16.53, temperature=14.08, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T12:01:24.499', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 14:02:22,308 [DEBUG][       Thread-257300][   transport.py][1871] : EOF in transport thread
2025-06-13 14:02:22,392 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 14:02:22,401 [DEBUG][       Thread-257303][   transport.py][1871] : starting thread (client mode): 0x86893ca0
2025-06-13 14:02:22,401 [DEBUG][       Thread-257303][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 14:02:22,416 [DEBUG][       Thread-257303][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 14:02:22,416 [ INFO][       Thread-257303][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 14:02:22,424 [DEBUG][       Thread-257303][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 14:02:22,424 [DEBUG][       Thread-257303][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 14:02:22,424 [DEBUG][       Thread-257303][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 14:02:22,424 [DEBUG][       Thread-257303][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:02:22,424 [DEBUG][       Thread-257303][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:02:22,424 [DEBUG][       Thread-257303][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:02:22,424 [DEBUG][       Thread-257303][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:02:22,424 [DEBUG][       Thread-257303][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 14:02:22,424 [DEBUG][       Thread-257303][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 14:02:22,424 [DEBUG][       Thread-257303][   transport.py][1871] : client lang: <none>
2025-06-13 14:02:22,424 [DEBUG][       Thread-257303][   transport.py][1871] : server lang: <none>
2025-06-13 14:02:22,424 [DEBUG][       Thread-257303][   transport.py][1871] : kex follows: False
2025-06-13 14:02:22,424 [DEBUG][       Thread-257303][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 14:02:22,424 [DEBUG][       Thread-257303][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 14:02:22,424 [DEBUG][       Thread-257303][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 14:02:22,425 [DEBUG][       Thread-257303][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 14:02:22,425 [DEBUG][       Thread-257303][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 14:02:22,425 [DEBUG][       Thread-257303][   transport.py][1871] : Compression: none
2025-06-13 14:02:22,425 [DEBUG][       Thread-257303][   transport.py][1871] : === End of kex handshake ===
2025-06-13 14:02:22,483 [DEBUG][       Thread-257303][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 14:02:22,484 [DEBUG][       Thread-257303][   transport.py][1871] : Switch to new keys ...
2025-06-13 14:02:22,484 [DEBUG][       Thread-257303][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 14:02:22,485 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 14:02:22,485 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 14:02:22,540 [DEBUG][       Thread-257303][   transport.py][1871] : userauth is OK
2025-06-13 14:02:22,541 [DEBUG][       Thread-257303][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 14:02:22,541 [DEBUG][       Thread-257303][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 14:02:22,541 [DEBUG][       Thread-257303][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 14:02:22,541 [DEBUG][       Thread-257303][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 14:02:22,559 [ INFO][       Thread-257303][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 14:02:22,560 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 14:02:22,560 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 14:02:22,977 [DEBUG][Thread-257305 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:02:23,545 [DEBUG][       Thread-257303][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 14:02:23,545 [DEBUG][       Thread-257303][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 14:02:23,600 [DEBUG][       Thread-257303][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 14:02:23,600 [DEBUG][       Thread-257303][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 14:02:23,609 [DEBUG][       Thread-257303][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 14:02:23,617 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 14:02:23,617 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 14:02:23,624 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 14:02:23,633 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 14:02:23,633 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 14:02:23,633 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 14:02:23,641 [DEBUG][       Thread-257303][   transport.py][1871] : EOF in transport thread
2025-06-13 14:02:32,012 [DEBUG][Thread-257306 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:02:33,643 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 14:02:33,643 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 14:02:33,643 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 14:02:33,646 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 14:02:34,094 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 14, 2, 11), 17.08, 30.44, 0.0, 16.53, 14.08, 0, 0, 0, 2, 0, 0),)
2025-06-13 14:02:34,094 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 14:02:11
2025-06-13 14:02:34,175 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 14:02:34,179 [DEBUG][       Thread-257307][   transport.py][1871] : starting thread (client mode): 0x842076a0
2025-06-13 14:02:34,179 [DEBUG][       Thread-257307][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 14:02:34,199 [DEBUG][       Thread-257307][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 14:02:34,199 [ INFO][       Thread-257307][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 14:02:34,203 [DEBUG][       Thread-257307][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 14:02:34,203 [DEBUG][       Thread-257307][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 14:02:34,203 [DEBUG][       Thread-257307][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 14:02:34,203 [DEBUG][       Thread-257307][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:02:34,203 [DEBUG][       Thread-257307][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:02:34,203 [DEBUG][       Thread-257307][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:02:34,203 [DEBUG][       Thread-257307][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:02:34,203 [DEBUG][       Thread-257307][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 14:02:34,203 [DEBUG][       Thread-257307][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 14:02:34,203 [DEBUG][       Thread-257307][   transport.py][1871] : client lang: <none>
2025-06-13 14:02:34,203 [DEBUG][       Thread-257307][   transport.py][1871] : server lang: <none>
2025-06-13 14:02:34,203 [DEBUG][       Thread-257307][   transport.py][1871] : kex follows: False
2025-06-13 14:02:34,203 [DEBUG][       Thread-257307][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 14:02:34,203 [DEBUG][       Thread-257307][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 14:02:34,203 [DEBUG][       Thread-257307][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 14:02:34,203 [DEBUG][       Thread-257307][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 14:02:34,203 [DEBUG][       Thread-257307][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 14:02:34,203 [DEBUG][       Thread-257307][   transport.py][1871] : Compression: none
2025-06-13 14:02:34,203 [DEBUG][       Thread-257307][   transport.py][1871] : === End of kex handshake ===
2025-06-13 14:02:34,222 [DEBUG][       Thread-257307][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 14:02:34,222 [DEBUG][       Thread-257307][   transport.py][1871] : Switch to new keys ...
2025-06-13 14:02:34,223 [DEBUG][       Thread-257307][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 14:02:34,223 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 14:02:34,223 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 14:02:34,224 [DEBUG][       Thread-257307][   transport.py][1871] : userauth is OK
2025-06-13 14:02:34,237 [ INFO][       Thread-257307][   transport.py][1871] : Authentication (password) successful!
2025-06-13 14:02:34,238 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 14:02:34,890 [DEBUG][       Thread-257307][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 14:02:34,891 [DEBUG][       Thread-257307][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 14:02:34,933 [DEBUG][       Thread-257307][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 14:02:34,933 [DEBUG][       Thread-257307][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 14:02:34,937 [DEBUG][       Thread-257307][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 14:02:34,950 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 14:02:34,951 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 14:02:34,952 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 14:02:34,954 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 14:02:34,960 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 14:02:34,962 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 14:02:34,962 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 14:02:34,963 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 14:02:34,963 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.501673 -999.00  +13.70  22.46     36   -0.70 1 1 1 1 1   887    0 15.75 19.41 ----- 21.6 22.5 20.0 25.7 17.8 -29.7 16.6 -32.5 17.1 -29.7 18.4 -27.9
2025-06-13 14:02:34,963 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 14:02:34,963 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 14:02:34,963 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.501673
2025-06-13 14:02:34,964 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 14:02:34,964 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 14:02:34,964 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 14:02:34,965 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 14:02:34,965 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 14:02:34,965 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T14:02:11', tmtdew=17.08, humidity=30.44, cloud=0.0, wind=16.53, temperature=14.08, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T12:02:24.547', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 14:02:34,965 [DEBUG][       Thread-257307][   transport.py][1871] : EOF in transport thread
2025-06-13 14:02:35,048 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 14:02:35,060 [DEBUG][       Thread-257310][   transport.py][1871] : starting thread (client mode): 0x863ee470
2025-06-13 14:02:35,060 [DEBUG][       Thread-257310][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 14:02:35,074 [DEBUG][       Thread-257310][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 14:02:35,075 [ INFO][       Thread-257310][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 14:02:35,082 [DEBUG][       Thread-257310][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 14:02:35,082 [DEBUG][       Thread-257310][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 14:02:35,082 [DEBUG][       Thread-257310][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 14:02:35,082 [DEBUG][       Thread-257310][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:02:35,082 [DEBUG][       Thread-257310][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:02:35,082 [DEBUG][       Thread-257310][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:02:35,082 [DEBUG][       Thread-257310][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:02:35,082 [DEBUG][       Thread-257310][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 14:02:35,083 [DEBUG][       Thread-257310][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 14:02:35,083 [DEBUG][       Thread-257310][   transport.py][1871] : client lang: <none>
2025-06-13 14:02:35,083 [DEBUG][       Thread-257310][   transport.py][1871] : server lang: <none>
2025-06-13 14:02:35,083 [DEBUG][       Thread-257310][   transport.py][1871] : kex follows: False
2025-06-13 14:02:35,083 [DEBUG][       Thread-257310][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 14:02:35,083 [DEBUG][       Thread-257310][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 14:02:35,083 [DEBUG][       Thread-257310][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 14:02:35,083 [DEBUG][       Thread-257310][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 14:02:35,083 [DEBUG][       Thread-257310][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 14:02:35,083 [DEBUG][       Thread-257310][   transport.py][1871] : Compression: none
2025-06-13 14:02:35,083 [DEBUG][       Thread-257310][   transport.py][1871] : === End of kex handshake ===
2025-06-13 14:02:35,141 [DEBUG][       Thread-257310][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 14:02:35,142 [DEBUG][       Thread-257310][   transport.py][1871] : Switch to new keys ...
2025-06-13 14:02:35,142 [DEBUG][       Thread-257310][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 14:02:35,143 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 14:02:35,143 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 14:02:35,201 [DEBUG][       Thread-257310][   transport.py][1871] : userauth is OK
2025-06-13 14:02:35,201 [DEBUG][       Thread-257310][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 14:02:35,202 [DEBUG][       Thread-257310][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 14:02:35,202 [DEBUG][       Thread-257310][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 14:02:35,202 [DEBUG][       Thread-257310][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 14:02:35,220 [ INFO][       Thread-257310][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 14:02:35,221 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 14:02:35,221 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 14:02:36,276 [DEBUG][       Thread-257310][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 14:02:36,277 [DEBUG][       Thread-257310][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 14:02:36,327 [DEBUG][       Thread-257310][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 14:02:36,327 [DEBUG][       Thread-257310][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 14:02:36,336 [DEBUG][       Thread-257310][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 14:02:36,344 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 14:02:36,344 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 14:02:36,352 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 14:02:36,360 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 14:02:36,361 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 14:02:36,361 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 14:02:36,369 [DEBUG][       Thread-257310][   transport.py][1871] : EOF in transport thread
2025-06-13 14:02:41,036 [DEBUG][Thread-257312 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:02:46,371 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 14:02:46,372 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 14:02:46,372 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 14:02:46,374 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 14:02:46,850 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 14, 2, 43), 17.02, 30.56, 0.0, 16.89, 14.07, 0, 0, 0, 2, 0, 0),)
2025-06-13 14:02:46,850 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 14:02:43
2025-06-13 14:02:46,932 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 14:02:46,938 [DEBUG][       Thread-257313][   transport.py][1871] : starting thread (client mode): 0x842054b0
2025-06-13 14:02:46,938 [DEBUG][       Thread-257313][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 14:02:46,953 [DEBUG][       Thread-257313][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 14:02:46,953 [ INFO][       Thread-257313][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 14:02:46,956 [DEBUG][       Thread-257313][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 14:02:46,956 [DEBUG][       Thread-257313][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 14:02:46,956 [DEBUG][       Thread-257313][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 14:02:46,956 [DEBUG][       Thread-257313][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:02:46,956 [DEBUG][       Thread-257313][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:02:46,956 [DEBUG][       Thread-257313][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:02:46,956 [DEBUG][       Thread-257313][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:02:46,956 [DEBUG][       Thread-257313][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 14:02:46,956 [DEBUG][       Thread-257313][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 14:02:46,956 [DEBUG][       Thread-257313][   transport.py][1871] : client lang: <none>
2025-06-13 14:02:46,956 [DEBUG][       Thread-257313][   transport.py][1871] : server lang: <none>
2025-06-13 14:02:46,956 [DEBUG][       Thread-257313][   transport.py][1871] : kex follows: False
2025-06-13 14:02:46,956 [DEBUG][       Thread-257313][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 14:02:46,956 [DEBUG][       Thread-257313][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 14:02:46,956 [DEBUG][       Thread-257313][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 14:02:46,956 [DEBUG][       Thread-257313][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 14:02:46,956 [DEBUG][       Thread-257313][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 14:02:46,956 [DEBUG][       Thread-257313][   transport.py][1871] : Compression: none
2025-06-13 14:02:46,956 [DEBUG][       Thread-257313][   transport.py][1871] : === End of kex handshake ===
2025-06-13 14:02:46,971 [DEBUG][       Thread-257313][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 14:02:46,971 [DEBUG][       Thread-257313][   transport.py][1871] : Switch to new keys ...
2025-06-13 14:02:46,972 [DEBUG][       Thread-257313][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 14:02:46,972 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 14:02:46,972 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 14:02:46,973 [DEBUG][       Thread-257313][   transport.py][1871] : userauth is OK
2025-06-13 14:02:46,985 [ INFO][       Thread-257313][   transport.py][1871] : Authentication (password) successful!
2025-06-13 14:02:46,985 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 14:02:47,772 [DEBUG][       Thread-257313][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 14:02:47,773 [DEBUG][       Thread-257313][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 14:02:47,817 [DEBUG][       Thread-257313][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 14:02:47,817 [DEBUG][       Thread-257313][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 14:02:47,820 [DEBUG][       Thread-257313][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 14:02:47,834 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 14:02:47,834 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 14:02:47,836 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 14:02:47,838 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 14:02:47,844 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 14:02:47,846 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 14:02:47,847 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 14:02:47,847 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 14:02:47,847 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.501673 -999.00  +13.70  22.46     36   -0.70 1 1 1 1 1   887    0 15.75 19.41 ----- 21.6 22.5 20.0 25.7 17.8 -29.7 16.6 -32.5 17.1 -29.7 18.4 -27.9
2025-06-13 14:02:47,847 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 14:02:47,848 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 14:02:47,848 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.501673
2025-06-13 14:02:47,848 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 14:02:47,849 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 14:02:47,849 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 14:02:47,849 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 14:02:47,849 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 14:02:47,849 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T14:02:43', tmtdew=17.02, humidity=30.56, cloud=0.0, wind=16.89, temperature=14.07, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T12:02:24.547', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 14:02:47,850 [DEBUG][       Thread-257313][   transport.py][1871] : EOF in transport thread
2025-06-13 14:02:47,933 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 14:02:47,943 [DEBUG][       Thread-257316][   transport.py][1871] : starting thread (client mode): 0x863c91e0
2025-06-13 14:02:47,943 [DEBUG][       Thread-257316][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 14:02:47,968 [DEBUG][       Thread-257316][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 14:02:47,968 [ INFO][       Thread-257316][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 14:02:47,982 [DEBUG][       Thread-257316][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 14:02:47,982 [DEBUG][       Thread-257316][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 14:02:47,982 [DEBUG][       Thread-257316][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 14:02:47,982 [DEBUG][       Thread-257316][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:02:47,982 [DEBUG][       Thread-257316][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:02:47,983 [DEBUG][       Thread-257316][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:02:47,983 [DEBUG][       Thread-257316][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:02:47,983 [DEBUG][       Thread-257316][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 14:02:47,983 [DEBUG][       Thread-257316][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 14:02:47,983 [DEBUG][       Thread-257316][   transport.py][1871] : client lang: <none>
2025-06-13 14:02:47,983 [DEBUG][       Thread-257316][   transport.py][1871] : server lang: <none>
2025-06-13 14:02:47,983 [DEBUG][       Thread-257316][   transport.py][1871] : kex follows: False
2025-06-13 14:02:47,983 [DEBUG][       Thread-257316][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 14:02:47,983 [DEBUG][       Thread-257316][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 14:02:47,983 [DEBUG][       Thread-257316][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 14:02:47,983 [DEBUG][       Thread-257316][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 14:02:47,983 [DEBUG][       Thread-257316][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 14:02:47,983 [DEBUG][       Thread-257316][   transport.py][1871] : Compression: none
2025-06-13 14:02:47,983 [DEBUG][       Thread-257316][   transport.py][1871] : === End of kex handshake ===
2025-06-13 14:02:48,050 [DEBUG][       Thread-257316][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 14:02:48,050 [DEBUG][       Thread-257316][   transport.py][1871] : Switch to new keys ...
2025-06-13 14:02:48,051 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 14:02:48,052 [DEBUG][       Thread-257316][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 14:02:48,053 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 14:02:48,116 [DEBUG][       Thread-257316][   transport.py][1871] : userauth is OK
2025-06-13 14:02:48,117 [DEBUG][       Thread-257316][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 14:02:48,117 [DEBUG][       Thread-257316][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 14:02:48,117 [DEBUG][       Thread-257316][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 14:02:48,117 [DEBUG][       Thread-257316][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 14:02:48,141 [ INFO][       Thread-257316][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 14:02:48,141 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 14:02:48,142 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 14:02:49,223 [DEBUG][       Thread-257316][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 14:02:49,224 [DEBUG][       Thread-257316][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 14:02:49,276 [DEBUG][       Thread-257316][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 14:02:49,276 [DEBUG][       Thread-257316][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 14:02:49,286 [DEBUG][       Thread-257316][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 14:02:49,307 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 14:02:49,307 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 14:02:49,320 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 14:02:49,332 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 14:02:49,332 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 14:02:49,333 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 14:02:49,347 [DEBUG][       Thread-257316][   transport.py][1871] : EOF in transport thread
2025-06-13 14:02:50,058 [DEBUG][Thread-257318 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:02:57,352 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:02:57,353 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:02:59,096 [DEBUG][Thread-257319 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:02:59,335 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 14:02:59,335 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 14:02:59,336 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 14:02:59,338 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 14:02:59,800 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 14, 2, 43), 17.02, 30.56, 0.0, 16.89, 14.07, 0, 0, 0, 2, 0, 0),)
2025-06-13 14:02:59,800 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 14:02:43
2025-06-13 14:02:59,882 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 14:02:59,886 [DEBUG][       Thread-257320][   transport.py][1871] : starting thread (client mode): 0x842057e0
2025-06-13 14:02:59,886 [DEBUG][       Thread-257320][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 14:02:59,906 [DEBUG][       Thread-257320][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 14:02:59,906 [ INFO][       Thread-257320][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 14:02:59,910 [DEBUG][       Thread-257320][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 14:02:59,910 [DEBUG][       Thread-257320][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 14:02:59,910 [DEBUG][       Thread-257320][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 14:02:59,910 [DEBUG][       Thread-257320][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:02:59,910 [DEBUG][       Thread-257320][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:02:59,910 [DEBUG][       Thread-257320][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:02:59,910 [DEBUG][       Thread-257320][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:02:59,910 [DEBUG][       Thread-257320][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 14:02:59,910 [DEBUG][       Thread-257320][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 14:02:59,910 [DEBUG][       Thread-257320][   transport.py][1871] : client lang: <none>
2025-06-13 14:02:59,910 [DEBUG][       Thread-257320][   transport.py][1871] : server lang: <none>
2025-06-13 14:02:59,910 [DEBUG][       Thread-257320][   transport.py][1871] : kex follows: False
2025-06-13 14:02:59,910 [DEBUG][       Thread-257320][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 14:02:59,910 [DEBUG][       Thread-257320][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 14:02:59,910 [DEBUG][       Thread-257320][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 14:02:59,910 [DEBUG][       Thread-257320][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 14:02:59,910 [DEBUG][       Thread-257320][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 14:02:59,910 [DEBUG][       Thread-257320][   transport.py][1871] : Compression: none
2025-06-13 14:02:59,910 [DEBUG][       Thread-257320][   transport.py][1871] : === End of kex handshake ===
2025-06-13 14:02:59,927 [DEBUG][       Thread-257320][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 14:02:59,927 [DEBUG][       Thread-257320][   transport.py][1871] : Switch to new keys ...
2025-06-13 14:02:59,928 [DEBUG][       Thread-257320][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 14:02:59,928 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 14:02:59,928 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 14:02:59,971 [DEBUG][       Thread-257320][   transport.py][1871] : userauth is OK
2025-06-13 14:02:59,996 [ INFO][       Thread-257320][   transport.py][1871] : Authentication (password) successful!
2025-06-13 14:02:59,997 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 14:03:00,774 [DEBUG][       Thread-257320][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 14:03:00,774 [DEBUG][       Thread-257320][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 14:03:00,817 [DEBUG][       Thread-257320][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 14:03:00,817 [DEBUG][       Thread-257320][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 14:03:00,821 [DEBUG][       Thread-257320][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 14:03:00,834 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 14:03:00,835 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 14:03:00,836 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 14:03:00,838 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 14:03:00,844 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 14:03:00,846 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 14:03:00,846 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 14:03:00,847 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 14:03:00,847 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.501673 -999.00  +13.70  22.46     36   -0.70 1 1 1 1 1   887    0 15.75 19.41 ----- 21.6 22.5 20.0 25.7 17.8 -29.7 16.6 -32.5 17.1 -29.7 18.4 -27.9
2025-06-13 14:03:00,847 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 14:03:00,847 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 14:03:00,847 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.501673
2025-06-13 14:03:00,848 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 14:03:00,848 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 14:03:00,848 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 14:03:00,849 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 14:03:00,849 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 14:03:00,849 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T14:02:43', tmtdew=17.02, humidity=30.56, cloud=0.0, wind=16.89, temperature=14.07, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T12:02:24.547', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 14:03:00,850 [DEBUG][       Thread-257320][   transport.py][1871] : EOF in transport thread
2025-06-13 14:03:00,932 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 14:03:00,944 [DEBUG][       Thread-257323][   transport.py][1871] : starting thread (client mode): 0x863ef340
2025-06-13 14:03:00,944 [DEBUG][       Thread-257323][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 14:03:00,959 [DEBUG][       Thread-257323][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 14:03:00,959 [ INFO][       Thread-257323][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 14:03:00,967 [DEBUG][       Thread-257323][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 14:03:00,967 [DEBUG][       Thread-257323][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 14:03:00,967 [DEBUG][       Thread-257323][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 14:03:00,967 [DEBUG][       Thread-257323][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:03:00,967 [DEBUG][       Thread-257323][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:03:00,967 [DEBUG][       Thread-257323][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:03:00,967 [DEBUG][       Thread-257323][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:03:00,967 [DEBUG][       Thread-257323][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 14:03:00,967 [DEBUG][       Thread-257323][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 14:03:00,967 [DEBUG][       Thread-257323][   transport.py][1871] : client lang: <none>
2025-06-13 14:03:00,967 [DEBUG][       Thread-257323][   transport.py][1871] : server lang: <none>
2025-06-13 14:03:00,967 [DEBUG][       Thread-257323][   transport.py][1871] : kex follows: False
2025-06-13 14:03:00,967 [DEBUG][       Thread-257323][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 14:03:00,967 [DEBUG][       Thread-257323][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 14:03:00,967 [DEBUG][       Thread-257323][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 14:03:00,967 [DEBUG][       Thread-257323][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 14:03:00,968 [DEBUG][       Thread-257323][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 14:03:00,968 [DEBUG][       Thread-257323][   transport.py][1871] : Compression: none
2025-06-13 14:03:00,968 [DEBUG][       Thread-257323][   transport.py][1871] : === End of kex handshake ===
2025-06-13 14:03:01,024 [DEBUG][       Thread-257323][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 14:03:01,025 [DEBUG][       Thread-257323][   transport.py][1871] : Switch to new keys ...
2025-06-13 14:03:01,025 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 14:03:01,026 [DEBUG][       Thread-257323][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 14:03:01,026 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 14:03:01,082 [DEBUG][       Thread-257323][   transport.py][1871] : userauth is OK
2025-06-13 14:03:01,082 [DEBUG][       Thread-257323][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 14:03:01,082 [DEBUG][       Thread-257323][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 14:03:01,082 [DEBUG][       Thread-257323][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 14:03:01,082 [DEBUG][       Thread-257323][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 14:03:01,100 [ INFO][       Thread-257323][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 14:03:01,101 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 14:03:01,101 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 14:03:02,132 [DEBUG][       Thread-257323][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 14:03:02,132 [DEBUG][       Thread-257323][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 14:03:02,179 [DEBUG][       Thread-257323][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 14:03:02,179 [DEBUG][       Thread-257323][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 14:03:02,187 [DEBUG][       Thread-257323][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 14:03:02,195 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 14:03:02,195 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 14:03:02,203 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 14:03:02,211 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 14:03:02,212 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 14:03:02,212 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 14:03:02,223 [DEBUG][       Thread-257323][   transport.py][1871] : EOF in transport thread
2025-06-13 14:03:08,116 [DEBUG][Thread-257325 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:03:12,222 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 14:03:12,223 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 14:03:12,223 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 14:03:12,227 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 14:03:12,676 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 14, 2, 43), 17.02, 30.56, 0.0, 16.89, 14.07, 0, 0, 0, 2, 0, 0),)
2025-06-13 14:03:12,676 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 14:02:43
2025-06-13 14:03:12,758 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 14:03:12,764 [DEBUG][       Thread-257326][   transport.py][1871] : starting thread (client mode): 0x84207760
2025-06-13 14:03:12,764 [DEBUG][       Thread-257326][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 14:03:12,785 [DEBUG][       Thread-257326][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 14:03:12,785 [ INFO][       Thread-257326][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 14:03:12,788 [DEBUG][       Thread-257326][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 14:03:12,789 [DEBUG][       Thread-257326][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 14:03:12,789 [DEBUG][       Thread-257326][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 14:03:12,789 [DEBUG][       Thread-257326][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:03:12,789 [DEBUG][       Thread-257326][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:03:12,789 [DEBUG][       Thread-257326][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:03:12,789 [DEBUG][       Thread-257326][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:03:12,789 [DEBUG][       Thread-257326][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 14:03:12,789 [DEBUG][       Thread-257326][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 14:03:12,789 [DEBUG][       Thread-257326][   transport.py][1871] : client lang: <none>
2025-06-13 14:03:12,789 [DEBUG][       Thread-257326][   transport.py][1871] : server lang: <none>
2025-06-13 14:03:12,789 [DEBUG][       Thread-257326][   transport.py][1871] : kex follows: False
2025-06-13 14:03:12,789 [DEBUG][       Thread-257326][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 14:03:12,789 [DEBUG][       Thread-257326][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 14:03:12,789 [DEBUG][       Thread-257326][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 14:03:12,789 [DEBUG][       Thread-257326][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 14:03:12,789 [DEBUG][       Thread-257326][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 14:03:12,789 [DEBUG][       Thread-257326][   transport.py][1871] : Compression: none
2025-06-13 14:03:12,789 [DEBUG][       Thread-257326][   transport.py][1871] : === End of kex handshake ===
2025-06-13 14:03:12,808 [DEBUG][       Thread-257326][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 14:03:12,809 [DEBUG][       Thread-257326][   transport.py][1871] : Switch to new keys ...
2025-06-13 14:03:12,809 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 14:03:12,809 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 14:03:12,810 [DEBUG][       Thread-257326][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 14:03:12,811 [DEBUG][       Thread-257326][   transport.py][1871] : userauth is OK
2025-06-13 14:03:12,825 [ INFO][       Thread-257326][   transport.py][1871] : Authentication (password) successful!
2025-06-13 14:03:12,826 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 14:03:12,947 [DEBUG][Thread-257328 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:03:13,440 [DEBUG][       Thread-257326][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 14:03:13,441 [DEBUG][       Thread-257326][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 14:03:13,485 [DEBUG][       Thread-257326][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 14:03:13,485 [DEBUG][       Thread-257326][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 14:03:13,488 [DEBUG][       Thread-257326][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 14:03:13,501 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 14:03:13,501 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 14:03:13,503 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 14:03:13,505 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 14:03:13,511 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 14:03:13,514 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 14:03:13,514 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 14:03:13,514 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 14:03:13,515 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.502020 -999.00  +13.60  21.66     37   -0.70 1 1 1 1 1   887    0 15.64 21.53 ----- 19.6 21.7 38.6 27.4 17.7 -30.8 16.6 -31.6 17.1 -29.8 18.3 -28.6
2025-06-13 14:03:13,515 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 14:03:13,515 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 14:03:13,515 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.502020
2025-06-13 14:03:13,515 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 14:03:13,516 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 14:03:13,516 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 14:03:13,516 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 14:03:13,516 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 14:03:13,516 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T14:02:43', tmtdew=17.02, humidity=30.56, cloud=0.0, wind=16.89, temperature=14.07, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T12:02:54.528', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 14:03:13,517 [DEBUG][       Thread-257326][   transport.py][1871] : EOF in transport thread
2025-06-13 14:03:13,601 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 14:03:13,613 [DEBUG][       Thread-257330][   transport.py][1871] : starting thread (client mode): 0x8636b2b0
2025-06-13 14:03:13,614 [DEBUG][       Thread-257330][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 14:03:13,637 [DEBUG][       Thread-257330][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 14:03:13,637 [ INFO][       Thread-257330][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 14:03:13,644 [DEBUG][       Thread-257330][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 14:03:13,644 [DEBUG][       Thread-257330][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 14:03:13,644 [DEBUG][       Thread-257330][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 14:03:13,644 [DEBUG][       Thread-257330][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:03:13,644 [DEBUG][       Thread-257330][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:03:13,644 [DEBUG][       Thread-257330][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:03:13,644 [DEBUG][       Thread-257330][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:03:13,644 [DEBUG][       Thread-257330][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 14:03:13,645 [DEBUG][       Thread-257330][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 14:03:13,645 [DEBUG][       Thread-257330][   transport.py][1871] : client lang: <none>
2025-06-13 14:03:13,645 [DEBUG][       Thread-257330][   transport.py][1871] : server lang: <none>
2025-06-13 14:03:13,645 [DEBUG][       Thread-257330][   transport.py][1871] : kex follows: False
2025-06-13 14:03:13,645 [DEBUG][       Thread-257330][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 14:03:13,645 [DEBUG][       Thread-257330][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 14:03:13,645 [DEBUG][       Thread-257330][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 14:03:13,645 [DEBUG][       Thread-257330][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 14:03:13,645 [DEBUG][       Thread-257330][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 14:03:13,645 [DEBUG][       Thread-257330][   transport.py][1871] : Compression: none
2025-06-13 14:03:13,645 [DEBUG][       Thread-257330][   transport.py][1871] : === End of kex handshake ===
2025-06-13 14:03:13,700 [DEBUG][       Thread-257330][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 14:03:13,701 [DEBUG][       Thread-257330][   transport.py][1871] : Switch to new keys ...
2025-06-13 14:03:13,702 [DEBUG][       Thread-257330][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 14:03:13,702 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 14:03:13,703 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 14:03:13,757 [DEBUG][       Thread-257330][   transport.py][1871] : userauth is OK
2025-06-13 14:03:13,757 [DEBUG][       Thread-257330][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 14:03:13,757 [DEBUG][       Thread-257330][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 14:03:13,757 [DEBUG][       Thread-257330][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 14:03:13,757 [DEBUG][       Thread-257330][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 14:03:13,779 [ INFO][       Thread-257330][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 14:03:13,779 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 14:03:13,780 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 14:03:14,020 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:03:14,021 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:03:14,767 [DEBUG][       Thread-257330][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 14:03:14,767 [DEBUG][       Thread-257330][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 14:03:14,816 [DEBUG][       Thread-257330][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 14:03:14,816 [DEBUG][       Thread-257330][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 14:03:14,825 [DEBUG][       Thread-257330][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 14:03:14,834 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 14:03:14,834 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 14:03:14,843 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 14:03:14,852 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 14:03:14,853 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 14:03:14,853 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 14:03:14,861 [DEBUG][       Thread-257330][   transport.py][1871] : EOF in transport thread
2025-06-13 14:03:16,993 [DEBUG][Thread-257332 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:03:17,137 [DEBUG][Thread-257333 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:03:24,864 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 14:03:24,864 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 14:03:24,864 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 14:03:24,868 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 14:03:25,318 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 14, 3, 14), 16.94, 30.74, 0.0, 19.23, 14.08, 0, 0, 0, 2, 0, 0),)
2025-06-13 14:03:25,318 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 14:03:14
2025-06-13 14:03:25,400 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 14:03:25,404 [DEBUG][       Thread-257334][   transport.py][1871] : starting thread (client mode): 0x84204ee0
2025-06-13 14:03:25,404 [DEBUG][       Thread-257334][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 14:03:25,424 [DEBUG][       Thread-257334][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 14:03:25,425 [ INFO][       Thread-257334][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 14:03:25,428 [DEBUG][       Thread-257334][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 14:03:25,428 [DEBUG][       Thread-257334][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 14:03:25,428 [DEBUG][       Thread-257334][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 14:03:25,428 [DEBUG][       Thread-257334][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:03:25,428 [DEBUG][       Thread-257334][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:03:25,428 [DEBUG][       Thread-257334][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:03:25,428 [DEBUG][       Thread-257334][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:03:25,428 [DEBUG][       Thread-257334][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 14:03:25,428 [DEBUG][       Thread-257334][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 14:03:25,428 [DEBUG][       Thread-257334][   transport.py][1871] : client lang: <none>
2025-06-13 14:03:25,428 [DEBUG][       Thread-257334][   transport.py][1871] : server lang: <none>
2025-06-13 14:03:25,428 [DEBUG][       Thread-257334][   transport.py][1871] : kex follows: False
2025-06-13 14:03:25,428 [DEBUG][       Thread-257334][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 14:03:25,428 [DEBUG][       Thread-257334][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 14:03:25,428 [DEBUG][       Thread-257334][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 14:03:25,428 [DEBUG][       Thread-257334][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 14:03:25,428 [DEBUG][       Thread-257334][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 14:03:25,428 [DEBUG][       Thread-257334][   transport.py][1871] : Compression: none
2025-06-13 14:03:25,429 [DEBUG][       Thread-257334][   transport.py][1871] : === End of kex handshake ===
2025-06-13 14:03:25,445 [DEBUG][       Thread-257334][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 14:03:25,445 [DEBUG][       Thread-257334][   transport.py][1871] : Switch to new keys ...
2025-06-13 14:03:25,446 [DEBUG][       Thread-257334][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 14:03:25,446 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 14:03:25,446 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 14:03:25,448 [DEBUG][       Thread-257334][   transport.py][1871] : userauth is OK
2025-06-13 14:03:25,461 [ INFO][       Thread-257334][   transport.py][1871] : Authentication (password) successful!
2025-06-13 14:03:25,462 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 14:03:26,158 [DEBUG][Thread-257336 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:03:26,196 [DEBUG][       Thread-257334][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 14:03:26,196 [DEBUG][       Thread-257334][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 14:03:26,237 [DEBUG][       Thread-257334][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 14:03:26,237 [DEBUG][       Thread-257334][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 14:03:26,240 [DEBUG][       Thread-257334][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 14:03:26,252 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 14:03:26,252 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 14:03:26,254 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 14:03:26,256 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 14:03:26,261 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 14:03:26,263 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 14:03:26,263 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 14:03:26,264 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 14:03:26,264 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.502020 -999.00  +13.60  21.66     37   -0.70 1 1 1 1 1   887    0 15.64 21.53 ----- 19.6 21.7 38.6 27.4 17.7 -30.8 16.6 -31.6 17.1 -29.8 18.3 -28.6
2025-06-13 14:03:26,264 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 14:03:26,264 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 14:03:26,264 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.502020
2025-06-13 14:03:26,265 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 14:03:26,265 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 14:03:26,265 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 14:03:26,265 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 14:03:26,266 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 14:03:26,266 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T14:03:14', tmtdew=16.94, humidity=30.74, cloud=0.0, wind=19.23, temperature=14.08, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T12:02:54.528', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 14:03:26,267 [DEBUG][       Thread-257334][   transport.py][1871] : EOF in transport thread
2025-06-13 14:03:26,349 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 14:03:26,358 [DEBUG][       Thread-257338][   transport.py][1871] : starting thread (client mode): 0x867fcbe0
2025-06-13 14:03:26,358 [DEBUG][       Thread-257338][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 14:03:26,375 [DEBUG][       Thread-257338][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 14:03:26,375 [ INFO][       Thread-257338][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 14:03:26,382 [DEBUG][       Thread-257338][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 14:03:26,382 [DEBUG][       Thread-257338][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 14:03:26,382 [DEBUG][       Thread-257338][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 14:03:26,382 [DEBUG][       Thread-257338][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:03:26,382 [DEBUG][       Thread-257338][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:03:26,382 [DEBUG][       Thread-257338][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:03:26,382 [DEBUG][       Thread-257338][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:03:26,382 [DEBUG][       Thread-257338][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 14:03:26,382 [DEBUG][       Thread-257338][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 14:03:26,382 [DEBUG][       Thread-257338][   transport.py][1871] : client lang: <none>
2025-06-13 14:03:26,383 [DEBUG][       Thread-257338][   transport.py][1871] : server lang: <none>
2025-06-13 14:03:26,383 [DEBUG][       Thread-257338][   transport.py][1871] : kex follows: False
2025-06-13 14:03:26,383 [DEBUG][       Thread-257338][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 14:03:26,383 [DEBUG][       Thread-257338][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 14:03:26,383 [DEBUG][       Thread-257338][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 14:03:26,383 [DEBUG][       Thread-257338][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 14:03:26,383 [DEBUG][       Thread-257338][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 14:03:26,383 [DEBUG][       Thread-257338][   transport.py][1871] : Compression: none
2025-06-13 14:03:26,383 [DEBUG][       Thread-257338][   transport.py][1871] : === End of kex handshake ===
2025-06-13 14:03:26,441 [DEBUG][       Thread-257338][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 14:03:26,442 [DEBUG][       Thread-257338][   transport.py][1871] : Switch to new keys ...
2025-06-13 14:03:26,442 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 14:03:26,443 [DEBUG][       Thread-257338][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 14:03:26,444 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 14:03:26,497 [DEBUG][       Thread-257338][   transport.py][1871] : userauth is OK
2025-06-13 14:03:26,497 [DEBUG][       Thread-257338][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 14:03:26,497 [DEBUG][       Thread-257338][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 14:03:26,498 [DEBUG][       Thread-257338][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 14:03:26,498 [DEBUG][       Thread-257338][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 14:03:26,516 [ INFO][       Thread-257338][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 14:03:26,516 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 14:03:26,517 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 14:03:27,532 [DEBUG][       Thread-257338][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 14:03:27,532 [DEBUG][       Thread-257338][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 14:03:27,581 [DEBUG][       Thread-257338][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 14:03:27,581 [DEBUG][       Thread-257338][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 14:03:27,593 [DEBUG][       Thread-257338][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 14:03:27,604 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 14:03:27,605 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 14:03:27,616 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 14:03:27,627 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 14:03:27,628 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 14:03:27,628 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 14:03:27,639 [DEBUG][       Thread-257338][   transport.py][1871] : EOF in transport thread
2025-06-13 14:03:35,180 [DEBUG][Thread-257340 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:03:37,639 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 14:03:37,639 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 14:03:37,639 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 14:03:37,642 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 14:03:38,101 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 14, 3, 14), 16.94, 30.74, 0.0, 19.23, 14.08, 0, 0, 0, 2, 0, 0),)
2025-06-13 14:03:38,102 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 14:03:14
2025-06-13 14:03:38,183 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 14:03:38,187 [DEBUG][       Thread-257341][   transport.py][1871] : starting thread (client mode): 0x863be800
2025-06-13 14:03:38,187 [DEBUG][       Thread-257341][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 14:03:38,199 [DEBUG][       Thread-257341][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 14:03:38,199 [ INFO][       Thread-257341][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 14:03:38,201 [DEBUG][       Thread-257341][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 14:03:38,201 [DEBUG][       Thread-257341][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 14:03:38,201 [DEBUG][       Thread-257341][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 14:03:38,201 [DEBUG][       Thread-257341][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:03:38,201 [DEBUG][       Thread-257341][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:03:38,201 [DEBUG][       Thread-257341][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:03:38,201 [DEBUG][       Thread-257341][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:03:38,201 [DEBUG][       Thread-257341][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 14:03:38,201 [DEBUG][       Thread-257341][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 14:03:38,201 [DEBUG][       Thread-257341][   transport.py][1871] : client lang: <none>
2025-06-13 14:03:38,201 [DEBUG][       Thread-257341][   transport.py][1871] : server lang: <none>
2025-06-13 14:03:38,201 [DEBUG][       Thread-257341][   transport.py][1871] : kex follows: False
2025-06-13 14:03:38,201 [DEBUG][       Thread-257341][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 14:03:38,201 [DEBUG][       Thread-257341][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 14:03:38,201 [DEBUG][       Thread-257341][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 14:03:38,201 [DEBUG][       Thread-257341][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 14:03:38,201 [DEBUG][       Thread-257341][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 14:03:38,201 [DEBUG][       Thread-257341][   transport.py][1871] : Compression: none
2025-06-13 14:03:38,201 [DEBUG][       Thread-257341][   transport.py][1871] : === End of kex handshake ===
2025-06-13 14:03:38,215 [DEBUG][       Thread-257341][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 14:03:38,215 [DEBUG][       Thread-257341][   transport.py][1871] : Switch to new keys ...
2025-06-13 14:03:38,215 [DEBUG][       Thread-257341][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 14:03:38,215 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 14:03:38,216 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 14:03:38,217 [DEBUG][       Thread-257341][   transport.py][1871] : userauth is OK
2025-06-13 14:03:38,241 [ INFO][       Thread-257341][   transport.py][1871] : Authentication (password) successful!
2025-06-13 14:03:38,241 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 14:03:38,827 [DEBUG][       Thread-257341][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 14:03:38,827 [DEBUG][       Thread-257341][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 14:03:38,869 [DEBUG][       Thread-257341][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 14:03:38,869 [DEBUG][       Thread-257341][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 14:03:38,872 [DEBUG][       Thread-257341][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 14:03:38,883 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 14:03:38,884 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 14:03:38,886 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 14:03:38,888 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 14:03:38,894 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 14:03:38,896 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 14:03:38,896 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 14:03:38,897 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 14:03:38,897 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.502367 -999.00  +13.60  19.28     37   -0.70 1 1 1 1 1   887    0 15.40 20.95 ----- 21.2 19.3 16.6 22.7 17.8 -30.4 16.6 -31.6 17.1 -30.0 18.2 -28.3
2025-06-13 14:03:38,897 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 14:03:38,897 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 14:03:38,897 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.502367
2025-06-13 14:03:38,898 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 14:03:38,898 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 14:03:38,898 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 14:03:38,898 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 14:03:38,898 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 14:03:38,899 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T14:03:14', tmtdew=16.94, humidity=30.74, cloud=0.0, wind=19.23, temperature=14.08, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T12:03:24.509', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 14:03:38,900 [DEBUG][       Thread-257341][   transport.py][1871] : EOF in transport thread
2025-06-13 14:03:38,975 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 14:03:38,987 [DEBUG][       Thread-257344][   transport.py][1871] : starting thread (client mode): 0x86352770
2025-06-13 14:03:38,987 [DEBUG][       Thread-257344][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 14:03:39,005 [DEBUG][       Thread-257344][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 14:03:39,005 [ INFO][       Thread-257344][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 14:03:39,016 [DEBUG][       Thread-257344][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 14:03:39,017 [DEBUG][       Thread-257344][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 14:03:39,017 [DEBUG][       Thread-257344][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 14:03:39,017 [DEBUG][       Thread-257344][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:03:39,017 [DEBUG][       Thread-257344][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:03:39,017 [DEBUG][       Thread-257344][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:03:39,017 [DEBUG][       Thread-257344][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:03:39,017 [DEBUG][       Thread-257344][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 14:03:39,017 [DEBUG][       Thread-257344][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 14:03:39,017 [DEBUG][       Thread-257344][   transport.py][1871] : client lang: <none>
2025-06-13 14:03:39,017 [DEBUG][       Thread-257344][   transport.py][1871] : server lang: <none>
2025-06-13 14:03:39,017 [DEBUG][       Thread-257344][   transport.py][1871] : kex follows: False
2025-06-13 14:03:39,017 [DEBUG][       Thread-257344][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 14:03:39,017 [DEBUG][       Thread-257344][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 14:03:39,017 [DEBUG][       Thread-257344][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 14:03:39,018 [DEBUG][       Thread-257344][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 14:03:39,018 [DEBUG][       Thread-257344][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 14:03:39,018 [DEBUG][       Thread-257344][   transport.py][1871] : Compression: none
2025-06-13 14:03:39,018 [DEBUG][       Thread-257344][   transport.py][1871] : === End of kex handshake ===
2025-06-13 14:03:39,076 [DEBUG][       Thread-257344][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 14:03:39,077 [DEBUG][       Thread-257344][   transport.py][1871] : Switch to new keys ...
2025-06-13 14:03:39,077 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 14:03:39,078 [DEBUG][       Thread-257344][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 14:03:39,078 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 14:03:39,138 [DEBUG][       Thread-257344][   transport.py][1871] : userauth is OK
2025-06-13 14:03:39,139 [DEBUG][       Thread-257344][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 14:03:39,139 [DEBUG][       Thread-257344][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 14:03:39,139 [DEBUG][       Thread-257344][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 14:03:39,139 [DEBUG][       Thread-257344][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 14:03:39,160 [ INFO][       Thread-257344][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 14:03:39,161 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 14:03:39,161 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 14:03:40,162 [DEBUG][       Thread-257344][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 14:03:40,164 [DEBUG][       Thread-257344][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 14:03:40,211 [DEBUG][       Thread-257344][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 14:03:40,211 [DEBUG][       Thread-257344][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 14:03:40,220 [DEBUG][       Thread-257344][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 14:03:40,228 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 14:03:40,228 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 14:03:40,235 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 14:03:40,243 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 14:03:40,243 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 14:03:40,243 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 14:03:40,251 [DEBUG][       Thread-257344][   transport.py][1871] : EOF in transport thread
2025-06-13 14:03:44,210 [DEBUG][Thread-257346 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:03:50,254 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 14:03:50,254 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 14:03:50,254 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 14:03:50,257 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 14:03:50,712 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 14, 3, 46), 16.68, 31.32, 0.0, 18.81, 14.06, 0, 0, 0, 2, 0, 0),)
2025-06-13 14:03:50,712 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 14:03:46
2025-06-13 14:03:50,790 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 14:03:50,794 [DEBUG][       Thread-257347][   transport.py][1871] : starting thread (client mode): 0x84204eb0
2025-06-13 14:03:50,794 [DEBUG][       Thread-257347][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 14:03:50,815 [DEBUG][       Thread-257347][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 14:03:50,815 [ INFO][       Thread-257347][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 14:03:50,818 [DEBUG][       Thread-257347][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 14:03:50,818 [DEBUG][       Thread-257347][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 14:03:50,818 [DEBUG][       Thread-257347][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 14:03:50,818 [DEBUG][       Thread-257347][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:03:50,818 [DEBUG][       Thread-257347][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:03:50,818 [DEBUG][       Thread-257347][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:03:50,818 [DEBUG][       Thread-257347][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:03:50,818 [DEBUG][       Thread-257347][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 14:03:50,818 [DEBUG][       Thread-257347][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 14:03:50,818 [DEBUG][       Thread-257347][   transport.py][1871] : client lang: <none>
2025-06-13 14:03:50,818 [DEBUG][       Thread-257347][   transport.py][1871] : server lang: <none>
2025-06-13 14:03:50,818 [DEBUG][       Thread-257347][   transport.py][1871] : kex follows: False
2025-06-13 14:03:50,818 [DEBUG][       Thread-257347][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 14:03:50,819 [DEBUG][       Thread-257347][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 14:03:50,819 [DEBUG][       Thread-257347][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 14:03:50,819 [DEBUG][       Thread-257347][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 14:03:50,819 [DEBUG][       Thread-257347][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 14:03:50,819 [DEBUG][       Thread-257347][   transport.py][1871] : Compression: none
2025-06-13 14:03:50,819 [DEBUG][       Thread-257347][   transport.py][1871] : === End of kex handshake ===
2025-06-13 14:03:50,837 [DEBUG][       Thread-257347][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 14:03:50,837 [DEBUG][       Thread-257347][   transport.py][1871] : Switch to new keys ...
2025-06-13 14:03:50,838 [DEBUG][       Thread-257347][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 14:03:50,838 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 14:03:50,838 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 14:03:50,839 [DEBUG][       Thread-257347][   transport.py][1871] : userauth is OK
2025-06-13 14:03:50,864 [ INFO][       Thread-257347][   transport.py][1871] : Authentication (password) successful!
2025-06-13 14:03:50,865 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 14:03:51,675 [DEBUG][       Thread-257347][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 14:03:51,675 [DEBUG][       Thread-257347][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 14:03:51,717 [DEBUG][       Thread-257347][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 14:03:51,717 [DEBUG][       Thread-257347][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 14:03:51,721 [DEBUG][       Thread-257347][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 14:03:51,734 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 14:03:51,735 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 14:03:51,736 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 14:03:51,738 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 14:03:51,744 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 14:03:51,746 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 14:03:51,746 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 14:03:51,747 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 14:03:51,747 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.502367 -999.00  +13.60  19.28     37   -0.70 1 1 1 1 1   887    0 15.40 20.95 ----- 21.2 19.3 16.6 22.7 17.8 -30.4 16.6 -31.6 17.1 -30.0 18.2 -28.3
2025-06-13 14:03:51,747 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 14:03:51,748 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 14:03:51,748 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.502367
2025-06-13 14:03:51,748 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 14:03:51,749 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 14:03:51,749 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 14:03:51,749 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 14:03:51,749 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 14:03:51,749 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T14:03:46', tmtdew=16.68, humidity=31.32, cloud=0.0, wind=18.81, temperature=14.06, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T12:03:24.509', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 14:03:51,749 [DEBUG][       Thread-257347][   transport.py][1871] : EOF in transport thread
2025-06-13 14:03:51,833 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 14:03:51,847 [DEBUG][       Thread-257350][   transport.py][1871] : starting thread (client mode): 0x863c91e0
2025-06-13 14:03:51,847 [DEBUG][       Thread-257350][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 14:03:51,864 [DEBUG][       Thread-257350][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 14:03:51,865 [ INFO][       Thread-257350][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 14:03:51,873 [DEBUG][       Thread-257350][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 14:03:51,873 [DEBUG][       Thread-257350][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 14:03:51,873 [DEBUG][       Thread-257350][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 14:03:51,873 [DEBUG][       Thread-257350][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:03:51,873 [DEBUG][       Thread-257350][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:03:51,873 [DEBUG][       Thread-257350][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:03:51,873 [DEBUG][       Thread-257350][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:03:51,874 [DEBUG][       Thread-257350][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 14:03:51,874 [DEBUG][       Thread-257350][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 14:03:51,874 [DEBUG][       Thread-257350][   transport.py][1871] : client lang: <none>
2025-06-13 14:03:51,874 [DEBUG][       Thread-257350][   transport.py][1871] : server lang: <none>
2025-06-13 14:03:51,874 [DEBUG][       Thread-257350][   transport.py][1871] : kex follows: False
2025-06-13 14:03:51,874 [DEBUG][       Thread-257350][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 14:03:51,874 [DEBUG][       Thread-257350][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 14:03:51,874 [DEBUG][       Thread-257350][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 14:03:51,874 [DEBUG][       Thread-257350][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 14:03:51,874 [DEBUG][       Thread-257350][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 14:03:51,874 [DEBUG][       Thread-257350][   transport.py][1871] : Compression: none
2025-06-13 14:03:51,874 [DEBUG][       Thread-257350][   transport.py][1871] : === End of kex handshake ===
2025-06-13 14:03:51,933 [DEBUG][       Thread-257350][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 14:03:51,934 [DEBUG][       Thread-257350][   transport.py][1871] : Switch to new keys ...
2025-06-13 14:03:51,934 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 14:03:51,935 [DEBUG][       Thread-257350][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 14:03:51,936 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 14:03:51,989 [DEBUG][       Thread-257350][   transport.py][1871] : userauth is OK
2025-06-13 14:03:51,989 [DEBUG][       Thread-257350][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 14:03:51,990 [DEBUG][       Thread-257350][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 14:03:51,990 [DEBUG][       Thread-257350][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 14:03:51,990 [DEBUG][       Thread-257350][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 14:03:52,009 [ INFO][       Thread-257350][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 14:03:52,009 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 14:03:52,009 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 14:03:53,058 [DEBUG][       Thread-257350][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 14:03:53,058 [DEBUG][       Thread-257350][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 14:03:53,108 [DEBUG][       Thread-257350][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 14:03:53,108 [DEBUG][       Thread-257350][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 14:03:53,126 [DEBUG][       Thread-257350][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 14:03:53,135 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 14:03:53,135 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 14:03:53,144 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 14:03:53,157 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 14:03:53,158 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 14:03:53,158 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 14:03:53,166 [DEBUG][       Thread-257350][   transport.py][1871] : EOF in transport thread
2025-06-13 14:03:53,229 [DEBUG][Thread-257352 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:03:57,492 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:03:57,493 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:04:02,271 [DEBUG][Thread-257353 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:04:03,169 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 14:04:03,169 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 14:04:03,169 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 14:04:03,171 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 14:04:03,629 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 14, 3, 46), 16.68, 31.32, 0.0, 18.81, 14.06, 0, 0, 0, 2, 0, 0),)
2025-06-13 14:04:03,629 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 14:03:46
2025-06-13 14:04:03,705 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 14:04:03,708 [DEBUG][       Thread-257354][   transport.py][1871] : starting thread (client mode): 0x863c8670
2025-06-13 14:04:03,708 [DEBUG][       Thread-257354][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 14:04:03,727 [DEBUG][       Thread-257354][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 14:04:03,727 [ INFO][       Thread-257354][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 14:04:03,729 [DEBUG][       Thread-257354][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 14:04:03,729 [DEBUG][       Thread-257354][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 14:04:03,729 [DEBUG][       Thread-257354][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 14:04:03,729 [DEBUG][       Thread-257354][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:04:03,729 [DEBUG][       Thread-257354][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:04:03,729 [DEBUG][       Thread-257354][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:04:03,729 [DEBUG][       Thread-257354][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:04:03,729 [DEBUG][       Thread-257354][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 14:04:03,729 [DEBUG][       Thread-257354][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 14:04:03,730 [DEBUG][       Thread-257354][   transport.py][1871] : client lang: <none>
2025-06-13 14:04:03,730 [DEBUG][       Thread-257354][   transport.py][1871] : server lang: <none>
2025-06-13 14:04:03,730 [DEBUG][       Thread-257354][   transport.py][1871] : kex follows: False
2025-06-13 14:04:03,730 [DEBUG][       Thread-257354][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 14:04:03,730 [DEBUG][       Thread-257354][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 14:04:03,730 [DEBUG][       Thread-257354][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 14:04:03,730 [DEBUG][       Thread-257354][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 14:04:03,730 [DEBUG][       Thread-257354][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 14:04:03,730 [DEBUG][       Thread-257354][   transport.py][1871] : Compression: none
2025-06-13 14:04:03,730 [DEBUG][       Thread-257354][   transport.py][1871] : === End of kex handshake ===
2025-06-13 14:04:03,743 [DEBUG][       Thread-257354][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 14:04:03,744 [DEBUG][       Thread-257354][   transport.py][1871] : Switch to new keys ...
2025-06-13 14:04:03,744 [DEBUG][       Thread-257354][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 14:04:03,744 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 14:04:03,745 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 14:04:03,746 [DEBUG][       Thread-257354][   transport.py][1871] : userauth is OK
2025-06-13 14:04:03,758 [ INFO][       Thread-257354][   transport.py][1871] : Authentication (password) successful!
2025-06-13 14:04:03,759 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 14:04:04,541 [DEBUG][       Thread-257354][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 14:04:04,541 [DEBUG][       Thread-257354][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 14:04:04,585 [DEBUG][       Thread-257354][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 14:04:04,585 [DEBUG][       Thread-257354][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 14:04:04,588 [DEBUG][       Thread-257354][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 14:04:04,600 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 14:04:04,600 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 14:04:04,602 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 14:04:04,603 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 14:04:04,608 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 14:04:04,610 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 14:04:04,610 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 14:04:04,611 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 14:04:04,611 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.502367 -999.00  +13.60  19.28     37   -0.70 1 1 1 1 1   887    0 15.40 20.95 ----- 21.2 19.3 16.6 22.7 17.8 -30.4 16.6 -31.6 17.1 -30.0 18.2 -28.3
2025-06-13 14:04:04,611 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 14:04:04,611 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 14:04:04,611 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.502367
2025-06-13 14:04:04,612 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 14:04:04,612 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 14:04:04,612 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 14:04:04,612 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 14:04:04,612 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 14:04:04,613 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T14:03:46', tmtdew=16.68, humidity=31.32, cloud=0.0, wind=18.81, temperature=14.06, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T12:03:24.509', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 14:04:04,614 [DEBUG][       Thread-257354][   transport.py][1871] : EOF in transport thread
2025-06-13 14:04:04,695 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 14:04:04,706 [DEBUG][       Thread-257357][   transport.py][1871] : starting thread (client mode): 0x863533d0
2025-06-13 14:04:04,706 [DEBUG][       Thread-257357][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 14:04:04,720 [DEBUG][       Thread-257357][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 14:04:04,720 [ INFO][       Thread-257357][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 14:04:04,728 [DEBUG][       Thread-257357][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 14:04:04,728 [DEBUG][       Thread-257357][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 14:04:04,728 [DEBUG][       Thread-257357][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 14:04:04,728 [DEBUG][       Thread-257357][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:04:04,728 [DEBUG][       Thread-257357][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:04:04,728 [DEBUG][       Thread-257357][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:04:04,728 [DEBUG][       Thread-257357][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:04:04,728 [DEBUG][       Thread-257357][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 14:04:04,728 [DEBUG][       Thread-257357][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 14:04:04,728 [DEBUG][       Thread-257357][   transport.py][1871] : client lang: <none>
2025-06-13 14:04:04,728 [DEBUG][       Thread-257357][   transport.py][1871] : server lang: <none>
2025-06-13 14:04:04,728 [DEBUG][       Thread-257357][   transport.py][1871] : kex follows: False
2025-06-13 14:04:04,728 [DEBUG][       Thread-257357][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 14:04:04,728 [DEBUG][       Thread-257357][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 14:04:04,728 [DEBUG][       Thread-257357][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 14:04:04,728 [DEBUG][       Thread-257357][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 14:04:04,729 [DEBUG][       Thread-257357][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 14:04:04,729 [DEBUG][       Thread-257357][   transport.py][1871] : Compression: none
2025-06-13 14:04:04,729 [DEBUG][       Thread-257357][   transport.py][1871] : === End of kex handshake ===
2025-06-13 14:04:04,786 [DEBUG][       Thread-257357][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 14:04:04,786 [DEBUG][       Thread-257357][   transport.py][1871] : Switch to new keys ...
2025-06-13 14:04:04,787 [DEBUG][       Thread-257357][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 14:04:04,787 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 14:04:04,787 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 14:04:04,845 [DEBUG][       Thread-257357][   transport.py][1871] : userauth is OK
2025-06-13 14:04:04,845 [DEBUG][       Thread-257357][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 14:04:04,845 [DEBUG][       Thread-257357][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 14:04:04,845 [DEBUG][       Thread-257357][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 14:04:04,845 [DEBUG][       Thread-257357][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 14:04:04,864 [ INFO][       Thread-257357][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 14:04:04,865 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 14:04:04,865 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 14:04:05,877 [DEBUG][       Thread-257357][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 14:04:05,877 [DEBUG][       Thread-257357][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 14:04:05,928 [DEBUG][       Thread-257357][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 14:04:05,928 [DEBUG][       Thread-257357][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 14:04:05,937 [DEBUG][       Thread-257357][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 14:04:05,945 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 14:04:05,945 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 14:04:05,954 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 14:04:05,963 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 14:04:05,963 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 14:04:05,964 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 14:04:05,972 [DEBUG][       Thread-257357][   transport.py][1871] : EOF in transport thread
2025-06-13 14:04:11,294 [DEBUG][Thread-257359 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:04:14,053 [DEBUG][Thread-257360 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:04:15,106 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:04:15,108 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:04:15,974 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 14:04:15,975 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 14:04:15,975 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 14:04:15,978 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 14:04:16,433 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 14, 3, 46), 16.68, 31.32, 0.0, 18.81, 14.06, 0, 0, 0, 2, 0, 0),)
2025-06-13 14:04:16,433 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 14:03:46
2025-06-13 14:04:16,509 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 14:04:16,513 [DEBUG][       Thread-257361][   transport.py][1871] : starting thread (client mode): 0x863509d0
2025-06-13 14:04:16,513 [DEBUG][       Thread-257361][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 14:04:16,529 [DEBUG][       Thread-257361][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 14:04:16,530 [ INFO][       Thread-257361][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 14:04:16,533 [DEBUG][       Thread-257361][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 14:04:16,533 [DEBUG][       Thread-257361][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 14:04:16,533 [DEBUG][       Thread-257361][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 14:04:16,533 [DEBUG][       Thread-257361][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:04:16,533 [DEBUG][       Thread-257361][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:04:16,533 [DEBUG][       Thread-257361][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:04:16,533 [DEBUG][       Thread-257361][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:04:16,533 [DEBUG][       Thread-257361][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 14:04:16,533 [DEBUG][       Thread-257361][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 14:04:16,533 [DEBUG][       Thread-257361][   transport.py][1871] : client lang: <none>
2025-06-13 14:04:16,533 [DEBUG][       Thread-257361][   transport.py][1871] : server lang: <none>
2025-06-13 14:04:16,533 [DEBUG][       Thread-257361][   transport.py][1871] : kex follows: False
2025-06-13 14:04:16,533 [DEBUG][       Thread-257361][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 14:04:16,533 [DEBUG][       Thread-257361][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 14:04:16,533 [DEBUG][       Thread-257361][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 14:04:16,533 [DEBUG][       Thread-257361][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 14:04:16,533 [DEBUG][       Thread-257361][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 14:04:16,533 [DEBUG][       Thread-257361][   transport.py][1871] : Compression: none
2025-06-13 14:04:16,533 [DEBUG][       Thread-257361][   transport.py][1871] : === End of kex handshake ===
2025-06-13 14:04:16,549 [DEBUG][       Thread-257361][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 14:04:16,549 [DEBUG][       Thread-257361][   transport.py][1871] : Switch to new keys ...
2025-06-13 14:04:16,550 [DEBUG][       Thread-257361][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 14:04:16,550 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 14:04:16,550 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 14:04:16,551 [DEBUG][       Thread-257361][   transport.py][1871] : userauth is OK
2025-06-13 14:04:16,564 [ INFO][       Thread-257361][   transport.py][1871] : Authentication (password) successful!
2025-06-13 14:04:16,564 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 14:04:17,043 [DEBUG][Thread-257363 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:04:17,195 [DEBUG][       Thread-257361][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 14:04:17,195 [DEBUG][       Thread-257361][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 14:04:17,237 [DEBUG][       Thread-257361][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 14:04:17,237 [DEBUG][       Thread-257361][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 14:04:17,240 [DEBUG][       Thread-257361][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 14:04:17,252 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 14:04:17,253 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 14:04:17,254 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 14:04:17,256 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 14:04:17,262 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 14:04:17,264 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 14:04:17,264 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 14:04:17,265 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 14:04:17,265 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.502714 -999.00  +13.70  19.79     37   -0.50 1 1 1 1 1   887    0 15.28 19.47 ----- 18.0 19.8 29.4 24.8 17.8 -30.2 16.7 -31.7 17.1 -29.2 18.2 -28.0
2025-06-13 14:04:17,265 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 14:04:17,265 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 14:04:17,265 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.502714
2025-06-13 14:04:17,266 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 14:04:17,266 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 14:04:17,266 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 14:04:17,266 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 14:04:17,267 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 14:04:17,267 [DEBUG][       Thread-257361][   transport.py][1871] : EOF in transport thread
2025-06-13 14:04:17,267 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T14:03:46', tmtdew=16.68, humidity=31.32, cloud=0.0, wind=18.81, temperature=14.06, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T12:03:54.490', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 14:04:17,351 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 14:04:17,369 [DEBUG][       Thread-257365][   transport.py][1871] : starting thread (client mode): 0x867b7640
2025-06-13 14:04:17,369 [DEBUG][       Thread-257365][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 14:04:17,384 [DEBUG][       Thread-257365][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 14:04:17,385 [ INFO][       Thread-257365][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 14:04:17,392 [DEBUG][       Thread-257365][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 14:04:17,392 [DEBUG][       Thread-257365][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 14:04:17,392 [DEBUG][       Thread-257365][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 14:04:17,393 [DEBUG][       Thread-257365][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:04:17,393 [DEBUG][       Thread-257365][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:04:17,393 [DEBUG][       Thread-257365][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:04:17,393 [DEBUG][       Thread-257365][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:04:17,393 [DEBUG][       Thread-257365][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 14:04:17,393 [DEBUG][       Thread-257365][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 14:04:17,393 [DEBUG][       Thread-257365][   transport.py][1871] : client lang: <none>
2025-06-13 14:04:17,393 [DEBUG][       Thread-257365][   transport.py][1871] : server lang: <none>
2025-06-13 14:04:17,393 [DEBUG][       Thread-257365][   transport.py][1871] : kex follows: False
2025-06-13 14:04:17,393 [DEBUG][       Thread-257365][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 14:04:17,393 [DEBUG][       Thread-257365][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 14:04:17,393 [DEBUG][       Thread-257365][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 14:04:17,393 [DEBUG][       Thread-257365][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 14:04:17,393 [DEBUG][       Thread-257365][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 14:04:17,393 [DEBUG][       Thread-257365][   transport.py][1871] : Compression: none
2025-06-13 14:04:17,394 [DEBUG][       Thread-257365][   transport.py][1871] : === End of kex handshake ===
2025-06-13 14:04:17,449 [DEBUG][       Thread-257365][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 14:04:17,450 [DEBUG][       Thread-257365][   transport.py][1871] : Switch to new keys ...
2025-06-13 14:04:17,450 [DEBUG][       Thread-257365][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 14:04:17,451 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 14:04:17,451 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 14:04:17,505 [DEBUG][       Thread-257365][   transport.py][1871] : userauth is OK
2025-06-13 14:04:17,505 [DEBUG][       Thread-257365][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 14:04:17,506 [DEBUG][       Thread-257365][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 14:04:17,506 [DEBUG][       Thread-257365][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 14:04:17,506 [DEBUG][       Thread-257365][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 14:04:17,524 [ INFO][       Thread-257365][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 14:04:17,524 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 14:04:17,525 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 14:04:18,528 [DEBUG][       Thread-257365][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 14:04:18,528 [DEBUG][       Thread-257365][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 14:04:18,575 [DEBUG][       Thread-257365][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 14:04:18,575 [DEBUG][       Thread-257365][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 14:04:18,584 [DEBUG][       Thread-257365][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 14:04:18,592 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 14:04:18,592 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 14:04:18,599 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 14:04:18,607 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 14:04:18,608 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 14:04:18,608 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 14:04:18,615 [DEBUG][       Thread-257365][   transport.py][1871] : EOF in transport thread
2025-06-13 14:04:20,313 [DEBUG][Thread-257367 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:04:28,618 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 14:04:28,618 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 14:04:28,618 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 14:04:28,621 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 14:04:29,079 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 14, 4, 18), 16.85, 31.14, 0.0, 19.92, 13.93, 0, 0, 0, 2, 0, 0),)
2025-06-13 14:04:29,079 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 14:04:18
2025-06-13 14:04:29,155 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 14:04:29,159 [DEBUG][       Thread-257368][   transport.py][1871] : starting thread (client mode): 0x86350f10
2025-06-13 14:04:29,159 [DEBUG][       Thread-257368][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 14:04:29,180 [DEBUG][       Thread-257368][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 14:04:29,180 [ INFO][       Thread-257368][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 14:04:29,183 [DEBUG][       Thread-257368][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 14:04:29,183 [DEBUG][       Thread-257368][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 14:04:29,183 [DEBUG][       Thread-257368][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 14:04:29,183 [DEBUG][       Thread-257368][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:04:29,183 [DEBUG][       Thread-257368][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:04:29,183 [DEBUG][       Thread-257368][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:04:29,183 [DEBUG][       Thread-257368][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:04:29,183 [DEBUG][       Thread-257368][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 14:04:29,183 [DEBUG][       Thread-257368][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 14:04:29,183 [DEBUG][       Thread-257368][   transport.py][1871] : client lang: <none>
2025-06-13 14:04:29,183 [DEBUG][       Thread-257368][   transport.py][1871] : server lang: <none>
2025-06-13 14:04:29,183 [DEBUG][       Thread-257368][   transport.py][1871] : kex follows: False
2025-06-13 14:04:29,183 [DEBUG][       Thread-257368][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 14:04:29,184 [DEBUG][       Thread-257368][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 14:04:29,184 [DEBUG][       Thread-257368][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 14:04:29,184 [DEBUG][       Thread-257368][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 14:04:29,184 [DEBUG][       Thread-257368][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 14:04:29,184 [DEBUG][       Thread-257368][   transport.py][1871] : Compression: none
2025-06-13 14:04:29,184 [DEBUG][       Thread-257368][   transport.py][1871] : === End of kex handshake ===
2025-06-13 14:04:29,201 [DEBUG][       Thread-257368][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 14:04:29,201 [DEBUG][       Thread-257368][   transport.py][1871] : Switch to new keys ...
2025-06-13 14:04:29,202 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 14:04:29,202 [DEBUG][       Thread-257368][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 14:04:29,202 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 14:04:29,204 [DEBUG][       Thread-257368][   transport.py][1871] : userauth is OK
2025-06-13 14:04:29,217 [ INFO][       Thread-257368][   transport.py][1871] : Authentication (password) successful!
2025-06-13 14:04:29,217 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 14:04:29,333 [DEBUG][Thread-257370 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:04:29,987 [DEBUG][       Thread-257368][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 14:04:29,987 [DEBUG][       Thread-257368][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 14:04:30,029 [DEBUG][       Thread-257368][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 14:04:30,029 [DEBUG][       Thread-257368][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 14:04:30,033 [DEBUG][       Thread-257368][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 14:04:30,044 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 14:04:30,044 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 14:04:30,046 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 14:04:30,048 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 14:04:30,054 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 14:04:30,056 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 14:04:30,056 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 14:04:30,057 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 14:04:30,057 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.502714 -999.00  +13.70  19.79     37   -0.50 1 1 1 1 1   887    0 15.28 19.47 ----- 18.0 19.8 29.4 24.8 17.8 -30.2 16.7 -31.7 17.1 -29.2 18.2 -28.0
2025-06-13 14:04:30,057 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 14:04:30,057 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 14:04:30,057 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.502714
2025-06-13 14:04:30,058 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 14:04:30,058 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 14:04:30,059 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 14:04:30,059 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 14:04:30,059 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 14:04:30,059 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T14:04:18', tmtdew=16.85, humidity=31.14, cloud=0.0, wind=19.92, temperature=13.93, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T12:03:54.490', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 14:04:30,059 [DEBUG][       Thread-257368][   transport.py][1871] : EOF in transport thread
2025-06-13 14:04:30,143 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 14:04:30,152 [DEBUG][       Thread-257372][   transport.py][1871] : starting thread (client mode): 0x842071c0
2025-06-13 14:04:30,152 [DEBUG][       Thread-257372][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 14:04:30,167 [DEBUG][       Thread-257372][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 14:04:30,167 [ INFO][       Thread-257372][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 14:04:30,175 [DEBUG][       Thread-257372][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 14:04:30,175 [DEBUG][       Thread-257372][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 14:04:30,175 [DEBUG][       Thread-257372][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 14:04:30,175 [DEBUG][       Thread-257372][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:04:30,175 [DEBUG][       Thread-257372][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:04:30,175 [DEBUG][       Thread-257372][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:04:30,175 [DEBUG][       Thread-257372][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:04:30,175 [DEBUG][       Thread-257372][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 14:04:30,175 [DEBUG][       Thread-257372][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 14:04:30,175 [DEBUG][       Thread-257372][   transport.py][1871] : client lang: <none>
2025-06-13 14:04:30,175 [DEBUG][       Thread-257372][   transport.py][1871] : server lang: <none>
2025-06-13 14:04:30,175 [DEBUG][       Thread-257372][   transport.py][1871] : kex follows: False
2025-06-13 14:04:30,175 [DEBUG][       Thread-257372][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 14:04:30,175 [DEBUG][       Thread-257372][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 14:04:30,175 [DEBUG][       Thread-257372][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 14:04:30,175 [DEBUG][       Thread-257372][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 14:04:30,175 [DEBUG][       Thread-257372][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 14:04:30,175 [DEBUG][       Thread-257372][   transport.py][1871] : Compression: none
2025-06-13 14:04:30,175 [DEBUG][       Thread-257372][   transport.py][1871] : === End of kex handshake ===
2025-06-13 14:04:30,239 [DEBUG][       Thread-257372][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 14:04:30,239 [DEBUG][       Thread-257372][   transport.py][1871] : Switch to new keys ...
2025-06-13 14:04:30,240 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 14:04:30,241 [DEBUG][       Thread-257372][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 14:04:30,241 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 14:04:30,297 [DEBUG][       Thread-257372][   transport.py][1871] : userauth is OK
2025-06-13 14:04:30,297 [DEBUG][       Thread-257372][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 14:04:30,297 [DEBUG][       Thread-257372][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 14:04:30,297 [DEBUG][       Thread-257372][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 14:04:30,298 [DEBUG][       Thread-257372][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 14:04:30,316 [ INFO][       Thread-257372][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 14:04:30,316 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 14:04:30,317 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 14:04:32,098 [DEBUG][       Thread-257372][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 14:04:32,098 [DEBUG][       Thread-257372][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 14:04:32,150 [DEBUG][       Thread-257372][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 14:04:32,150 [DEBUG][       Thread-257372][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 14:04:32,160 [DEBUG][       Thread-257372][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 14:04:32,172 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 14:04:32,173 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 14:04:32,184 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 14:04:32,197 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 14:04:32,198 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 14:04:32,198 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 14:04:32,206 [DEBUG][       Thread-257372][   transport.py][1871] : EOF in transport thread
2025-06-13 14:04:38,356 [DEBUG][Thread-257374 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:04:42,209 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 14:04:42,209 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 14:04:42,209 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 14:04:42,212 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 14:04:42,678 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 14, 4, 18), 16.85, 31.14, 0.0, 19.92, 13.93, 0, 0, 0, 2, 0, 0),)
2025-06-13 14:04:42,678 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 14:04:18
2025-06-13 14:04:42,754 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 14:04:42,758 [DEBUG][       Thread-257375][   transport.py][1871] : starting thread (client mode): 0x863510f0
2025-06-13 14:04:42,758 [DEBUG][       Thread-257375][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 14:04:42,783 [DEBUG][       Thread-257375][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 14:04:42,783 [ INFO][       Thread-257375][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 14:04:42,786 [DEBUG][       Thread-257375][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 14:04:42,786 [DEBUG][       Thread-257375][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 14:04:42,786 [DEBUG][       Thread-257375][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 14:04:42,786 [DEBUG][       Thread-257375][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:04:42,786 [DEBUG][       Thread-257375][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:04:42,786 [DEBUG][       Thread-257375][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:04:42,786 [DEBUG][       Thread-257375][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:04:42,786 [DEBUG][       Thread-257375][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 14:04:42,786 [DEBUG][       Thread-257375][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 14:04:42,786 [DEBUG][       Thread-257375][   transport.py][1871] : client lang: <none>
2025-06-13 14:04:42,786 [DEBUG][       Thread-257375][   transport.py][1871] : server lang: <none>
2025-06-13 14:04:42,786 [DEBUG][       Thread-257375][   transport.py][1871] : kex follows: False
2025-06-13 14:04:42,786 [DEBUG][       Thread-257375][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 14:04:42,786 [DEBUG][       Thread-257375][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 14:04:42,786 [DEBUG][       Thread-257375][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 14:04:42,786 [DEBUG][       Thread-257375][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 14:04:42,786 [DEBUG][       Thread-257375][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 14:04:42,787 [DEBUG][       Thread-257375][   transport.py][1871] : Compression: none
2025-06-13 14:04:42,787 [DEBUG][       Thread-257375][   transport.py][1871] : === End of kex handshake ===
2025-06-13 14:04:42,804 [DEBUG][       Thread-257375][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 14:04:42,804 [DEBUG][       Thread-257375][   transport.py][1871] : Switch to new keys ...
2025-06-13 14:04:42,805 [DEBUG][       Thread-257375][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 14:04:42,805 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 14:04:42,805 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 14:04:42,806 [DEBUG][       Thread-257375][   transport.py][1871] : userauth is OK
2025-06-13 14:04:42,820 [ INFO][       Thread-257375][   transport.py][1871] : Authentication (password) successful!
2025-06-13 14:04:42,821 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 14:04:43,369 [DEBUG][       Thread-257375][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 14:04:43,370 [DEBUG][       Thread-257375][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 14:04:43,413 [DEBUG][       Thread-257375][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 14:04:43,413 [DEBUG][       Thread-257375][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 14:04:43,416 [DEBUG][       Thread-257375][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 14:04:43,428 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 14:04:43,429 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 14:04:43,431 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 14:04:43,433 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 14:04:43,439 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 14:04:43,442 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 14:04:43,442 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 14:04:43,442 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 14:04:43,443 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.503062 -999.00  +13.80  15.65     37   -0.50 1 1 1 1 1   887    0 15.45 16.96 ----- 22.0 15.7 23.3 23.6 17.8 -29.9 16.7 -31.7 17.1 -29.3 18.3 -27.9
2025-06-13 14:04:43,443 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 14:04:43,443 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 14:04:43,443 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.503062
2025-06-13 14:04:43,443 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 14:04:43,444 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 14:04:43,444 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 14:04:43,444 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 14:04:43,444 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 14:04:43,444 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T14:04:18', tmtdew=16.85, humidity=31.14, cloud=0.0, wind=19.92, temperature=13.93, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T12:04:24.557', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 14:04:43,446 [DEBUG][       Thread-257375][   transport.py][1871] : EOF in transport thread
2025-06-13 14:04:43,528 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 14:04:43,542 [DEBUG][       Thread-257378][   transport.py][1871] : starting thread (client mode): 0x863ed210
2025-06-13 14:04:43,542 [DEBUG][       Thread-257378][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 14:04:43,562 [DEBUG][       Thread-257378][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 14:04:43,562 [ INFO][       Thread-257378][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 14:04:43,569 [DEBUG][       Thread-257378][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 14:04:43,570 [DEBUG][       Thread-257378][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 14:04:43,570 [DEBUG][       Thread-257378][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 14:04:43,570 [DEBUG][       Thread-257378][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:04:43,570 [DEBUG][       Thread-257378][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:04:43,570 [DEBUG][       Thread-257378][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:04:43,570 [DEBUG][       Thread-257378][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:04:43,570 [DEBUG][       Thread-257378][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 14:04:43,570 [DEBUG][       Thread-257378][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 14:04:43,570 [DEBUG][       Thread-257378][   transport.py][1871] : client lang: <none>
2025-06-13 14:04:43,570 [DEBUG][       Thread-257378][   transport.py][1871] : server lang: <none>
2025-06-13 14:04:43,570 [DEBUG][       Thread-257378][   transport.py][1871] : kex follows: False
2025-06-13 14:04:43,570 [DEBUG][       Thread-257378][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 14:04:43,571 [DEBUG][       Thread-257378][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 14:04:43,571 [DEBUG][       Thread-257378][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 14:04:43,571 [DEBUG][       Thread-257378][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 14:04:43,571 [DEBUG][       Thread-257378][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 14:04:43,571 [DEBUG][       Thread-257378][   transport.py][1871] : Compression: none
2025-06-13 14:04:43,571 [DEBUG][       Thread-257378][   transport.py][1871] : === End of kex handshake ===
2025-06-13 14:04:43,629 [DEBUG][       Thread-257378][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 14:04:43,629 [DEBUG][       Thread-257378][   transport.py][1871] : Switch to new keys ...
2025-06-13 14:04:43,630 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 14:04:43,630 [DEBUG][       Thread-257378][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 14:04:43,631 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 14:04:43,686 [DEBUG][       Thread-257378][   transport.py][1871] : userauth is OK
2025-06-13 14:04:43,686 [DEBUG][       Thread-257378][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 14:04:43,686 [DEBUG][       Thread-257378][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 14:04:43,686 [DEBUG][       Thread-257378][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 14:04:43,686 [DEBUG][       Thread-257378][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 14:04:43,705 [ INFO][       Thread-257378][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 14:04:43,705 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 14:04:43,706 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 14:04:44,809 [DEBUG][       Thread-257378][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 14:04:44,810 [DEBUG][       Thread-257378][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 14:04:44,862 [DEBUG][       Thread-257378][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 14:04:44,863 [DEBUG][       Thread-257378][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 14:04:44,873 [DEBUG][       Thread-257378][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 14:04:44,882 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 14:04:44,882 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 14:04:44,891 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 14:04:44,900 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 14:04:44,901 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 14:04:44,901 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 14:04:44,913 [DEBUG][       Thread-257378][   transport.py][1871] : EOF in transport thread
2025-06-13 14:04:47,391 [DEBUG][Thread-257380 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:04:54,912 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 14:04:54,912 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 14:04:54,912 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 14:04:54,915 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 14:04:55,377 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 14, 4, 50), 17.01, 30.8, 0.0, 21.81, 13.93, 0, 0, 0, 2, 0, 0),)
2025-06-13 14:04:55,377 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 14:04:50
2025-06-13 14:04:55,457 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 14:04:55,461 [DEBUG][       Thread-257381][   transport.py][1871] : starting thread (client mode): 0x86351150
2025-06-13 14:04:55,461 [DEBUG][       Thread-257381][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 14:04:55,482 [DEBUG][       Thread-257381][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 14:04:55,482 [ INFO][       Thread-257381][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 14:04:55,485 [DEBUG][       Thread-257381][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 14:04:55,485 [DEBUG][       Thread-257381][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 14:04:55,485 [DEBUG][       Thread-257381][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 14:04:55,485 [DEBUG][       Thread-257381][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:04:55,485 [DEBUG][       Thread-257381][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:04:55,485 [DEBUG][       Thread-257381][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:04:55,485 [DEBUG][       Thread-257381][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:04:55,485 [DEBUG][       Thread-257381][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 14:04:55,485 [DEBUG][       Thread-257381][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 14:04:55,485 [DEBUG][       Thread-257381][   transport.py][1871] : client lang: <none>
2025-06-13 14:04:55,485 [DEBUG][       Thread-257381][   transport.py][1871] : server lang: <none>
2025-06-13 14:04:55,486 [DEBUG][       Thread-257381][   transport.py][1871] : kex follows: False
2025-06-13 14:04:55,486 [DEBUG][       Thread-257381][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 14:04:55,486 [DEBUG][       Thread-257381][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 14:04:55,486 [DEBUG][       Thread-257381][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 14:04:55,486 [DEBUG][       Thread-257381][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 14:04:55,486 [DEBUG][       Thread-257381][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 14:04:55,486 [DEBUG][       Thread-257381][   transport.py][1871] : Compression: none
2025-06-13 14:04:55,486 [DEBUG][       Thread-257381][   transport.py][1871] : === End of kex handshake ===
2025-06-13 14:04:55,494 [DEBUG][       Thread-257381][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 14:04:55,495 [DEBUG][       Thread-257381][   transport.py][1871] : Switch to new keys ...
2025-06-13 14:04:55,495 [DEBUG][       Thread-257381][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 14:04:55,495 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 14:04:55,496 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 14:04:55,497 [DEBUG][       Thread-257381][   transport.py][1871] : userauth is OK
2025-06-13 14:04:55,510 [ INFO][       Thread-257381][   transport.py][1871] : Authentication (password) successful!
2025-06-13 14:04:55,511 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 14:04:56,135 [DEBUG][       Thread-257381][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 14:04:56,135 [DEBUG][       Thread-257381][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 14:04:56,177 [DEBUG][       Thread-257381][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 14:04:56,177 [DEBUG][       Thread-257381][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 14:04:56,180 [DEBUG][       Thread-257381][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 14:04:56,192 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 14:04:56,192 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 14:04:56,194 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 14:04:56,196 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 14:04:56,202 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 14:04:56,204 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 14:04:56,204 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 14:04:56,205 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 14:04:56,205 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.503062 -999.00  +13.80  15.65     37   -0.50 1 1 1 1 1   887    0 15.45 16.96 ----- 22.0 15.7 23.3 23.6 17.8 -29.9 16.7 -31.7 17.1 -29.3 18.3 -27.9
2025-06-13 14:04:56,205 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 14:04:56,205 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 14:04:56,205 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.503062
2025-06-13 14:04:56,206 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 14:04:56,206 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 14:04:56,206 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 14:04:56,207 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 14:04:56,207 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 14:04:56,207 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T14:04:50', tmtdew=17.01, humidity=30.8, cloud=0.0, wind=21.81, temperature=13.93, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T12:04:24.557', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 14:04:56,207 [DEBUG][       Thread-257381][   transport.py][1871] : EOF in transport thread
2025-06-13 14:04:56,290 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 14:04:56,299 [DEBUG][       Thread-257384][   transport.py][1871] : starting thread (client mode): 0x863ed210
2025-06-13 14:04:56,300 [DEBUG][       Thread-257384][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 14:04:56,315 [DEBUG][       Thread-257384][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 14:04:56,315 [ INFO][       Thread-257384][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 14:04:56,322 [DEBUG][       Thread-257384][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 14:04:56,322 [DEBUG][       Thread-257384][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 14:04:56,322 [DEBUG][       Thread-257384][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 14:04:56,322 [DEBUG][       Thread-257384][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:04:56,322 [DEBUG][       Thread-257384][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:04:56,322 [DEBUG][       Thread-257384][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:04:56,322 [DEBUG][       Thread-257384][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:04:56,322 [DEBUG][       Thread-257384][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 14:04:56,322 [DEBUG][       Thread-257384][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 14:04:56,322 [DEBUG][       Thread-257384][   transport.py][1871] : client lang: <none>
2025-06-13 14:04:56,322 [DEBUG][       Thread-257384][   transport.py][1871] : server lang: <none>
2025-06-13 14:04:56,322 [DEBUG][       Thread-257384][   transport.py][1871] : kex follows: False
2025-06-13 14:04:56,322 [DEBUG][       Thread-257384][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 14:04:56,322 [DEBUG][       Thread-257384][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 14:04:56,322 [DEBUG][       Thread-257384][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 14:04:56,322 [DEBUG][       Thread-257384][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 14:04:56,322 [DEBUG][       Thread-257384][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 14:04:56,322 [DEBUG][       Thread-257384][   transport.py][1871] : Compression: none
2025-06-13 14:04:56,322 [DEBUG][       Thread-257384][   transport.py][1871] : === End of kex handshake ===
2025-06-13 14:04:56,380 [DEBUG][       Thread-257384][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 14:04:56,380 [DEBUG][       Thread-257384][   transport.py][1871] : Switch to new keys ...
2025-06-13 14:04:56,381 [DEBUG][       Thread-257384][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 14:04:56,381 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 14:04:56,381 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 14:04:56,413 [DEBUG][Thread-257386 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:04:56,437 [DEBUG][       Thread-257384][   transport.py][1871] : userauth is OK
2025-06-13 14:04:56,437 [DEBUG][       Thread-257384][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 14:04:56,437 [DEBUG][       Thread-257384][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 14:04:56,437 [DEBUG][       Thread-257384][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 14:04:56,437 [DEBUG][       Thread-257384][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 14:04:56,455 [ INFO][       Thread-257384][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 14:04:56,456 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 14:04:56,456 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 14:04:57,467 [DEBUG][       Thread-257384][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 14:04:57,467 [DEBUG][       Thread-257384][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 14:04:57,517 [DEBUG][       Thread-257384][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 14:04:57,517 [DEBUG][       Thread-257384][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 14:04:57,531 [DEBUG][       Thread-257384][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 14:04:57,539 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 14:04:57,539 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 14:04:57,547 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 14:04:57,555 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 14:04:57,555 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 14:04:57,555 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 14:04:57,563 [DEBUG][       Thread-257384][   transport.py][1871] : EOF in transport thread
2025-06-13 14:04:57,631 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:04:57,631 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:05:05,445 [DEBUG][Thread-257387 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:05:07,565 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 14:05:07,565 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 14:05:07,566 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 14:05:07,568 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 14:05:08,022 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 14, 4, 50), 17.01, 30.8, 0.0, 21.81, 13.93, 0, 0, 0, 2, 0, 0),)
2025-06-13 14:05:08,022 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 14:04:50
2025-06-13 14:05:08,100 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 14:05:08,104 [DEBUG][       Thread-257388][   transport.py][1871] : starting thread (client mode): 0x863c8520
2025-06-13 14:05:08,104 [DEBUG][       Thread-257388][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 14:05:08,125 [DEBUG][       Thread-257388][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 14:05:08,125 [ INFO][       Thread-257388][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 14:05:08,127 [DEBUG][       Thread-257388][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 14:05:08,127 [DEBUG][       Thread-257388][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 14:05:08,127 [DEBUG][       Thread-257388][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 14:05:08,127 [DEBUG][       Thread-257388][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:05:08,127 [DEBUG][       Thread-257388][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:05:08,127 [DEBUG][       Thread-257388][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:05:08,127 [DEBUG][       Thread-257388][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:05:08,127 [DEBUG][       Thread-257388][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 14:05:08,127 [DEBUG][       Thread-257388][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 14:05:08,127 [DEBUG][       Thread-257388][   transport.py][1871] : client lang: <none>
2025-06-13 14:05:08,127 [DEBUG][       Thread-257388][   transport.py][1871] : server lang: <none>
2025-06-13 14:05:08,127 [DEBUG][       Thread-257388][   transport.py][1871] : kex follows: False
2025-06-13 14:05:08,127 [DEBUG][       Thread-257388][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 14:05:08,128 [DEBUG][       Thread-257388][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 14:05:08,128 [DEBUG][       Thread-257388][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 14:05:08,128 [DEBUG][       Thread-257388][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 14:05:08,128 [DEBUG][       Thread-257388][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 14:05:08,128 [DEBUG][       Thread-257388][   transport.py][1871] : Compression: none
2025-06-13 14:05:08,128 [DEBUG][       Thread-257388][   transport.py][1871] : === End of kex handshake ===
2025-06-13 14:05:08,146 [DEBUG][       Thread-257388][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 14:05:08,146 [DEBUG][       Thread-257388][   transport.py][1871] : Switch to new keys ...
2025-06-13 14:05:08,147 [DEBUG][       Thread-257388][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 14:05:08,147 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 14:05:08,147 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 14:05:08,148 [DEBUG][       Thread-257388][   transport.py][1871] : userauth is OK
2025-06-13 14:05:08,161 [ INFO][       Thread-257388][   transport.py][1871] : Authentication (password) successful!
2025-06-13 14:05:08,162 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 14:05:14,466 [DEBUG][Thread-257390 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:05:15,189 [DEBUG][Thread-257391 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:05:15,196 [DEBUG][       Thread-257388][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 14:05:15,196 [DEBUG][       Thread-257388][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 14:05:15,236 [DEBUG][       Thread-257388][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 14:05:15,237 [DEBUG][       Thread-257388][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 14:05:15,240 [DEBUG][       Thread-257388][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 14:05:15,251 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 14:05:15,251 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 14:05:15,252 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 14:05:15,254 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 14:05:15,274 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 14:05:15,275 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 14:05:15,276 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 14:05:15,276 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 14:05:15,276 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.503062 -999.00  +13.80  15.65     37   -0.50 1 1 1 1 1   887    0 15.45 16.96 ----- 22.0 15.7 23.3 23.6 17.8 -29.9 16.7 -31.7 17.1 -29.3 18.3 -27.9
2025-06-13 14:05:15,276 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 14:05:15,276 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 14:05:15,276 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.503062
2025-06-13 14:05:15,276 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 14:05:15,277 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 14:05:15,277 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 14:05:15,277 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 14:05:15,277 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 14:05:15,277 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T14:04:50', tmtdew=17.01, humidity=30.8, cloud=0.0, wind=21.81, temperature=13.93, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T12:04:24.557', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 14:05:15,277 [DEBUG][       Thread-257388][   transport.py][1871] : EOF in transport thread
2025-06-13 14:05:15,351 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 14:05:15,364 [DEBUG][       Thread-257393][   transport.py][1871] : starting thread (client mode): 0x863a5690
2025-06-13 14:05:15,364 [DEBUG][       Thread-257393][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 14:05:15,380 [DEBUG][       Thread-257393][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 14:05:15,380 [ INFO][       Thread-257393][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 14:05:15,388 [DEBUG][       Thread-257393][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 14:05:15,389 [DEBUG][       Thread-257393][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 14:05:15,389 [DEBUG][       Thread-257393][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 14:05:15,389 [DEBUG][       Thread-257393][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:05:15,389 [DEBUG][       Thread-257393][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:05:15,389 [DEBUG][       Thread-257393][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:05:15,389 [DEBUG][       Thread-257393][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:05:15,389 [DEBUG][       Thread-257393][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 14:05:15,389 [DEBUG][       Thread-257393][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 14:05:15,389 [DEBUG][       Thread-257393][   transport.py][1871] : client lang: <none>
2025-06-13 14:05:15,389 [DEBUG][       Thread-257393][   transport.py][1871] : server lang: <none>
2025-06-13 14:05:15,389 [DEBUG][       Thread-257393][   transport.py][1871] : kex follows: False
2025-06-13 14:05:15,389 [DEBUG][       Thread-257393][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 14:05:15,389 [DEBUG][       Thread-257393][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 14:05:15,389 [DEBUG][       Thread-257393][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 14:05:15,389 [DEBUG][       Thread-257393][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 14:05:15,389 [DEBUG][       Thread-257393][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 14:05:15,389 [DEBUG][       Thread-257393][   transport.py][1871] : Compression: none
2025-06-13 14:05:15,390 [DEBUG][       Thread-257393][   transport.py][1871] : === End of kex handshake ===
2025-06-13 14:05:15,445 [DEBUG][       Thread-257393][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 14:05:15,446 [DEBUG][       Thread-257393][   transport.py][1871] : Switch to new keys ...
2025-06-13 14:05:15,447 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 14:05:15,447 [DEBUG][       Thread-257393][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 14:05:15,448 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 14:05:15,501 [DEBUG][       Thread-257393][   transport.py][1871] : userauth is OK
2025-06-13 14:05:15,502 [DEBUG][       Thread-257393][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 14:05:15,502 [DEBUG][       Thread-257393][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 14:05:15,502 [DEBUG][       Thread-257393][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 14:05:15,502 [DEBUG][       Thread-257393][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 14:05:15,521 [ INFO][       Thread-257393][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 14:05:15,522 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 14:05:15,522 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 14:05:16,264 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:05:16,264 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:05:16,569 [DEBUG][       Thread-257393][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 14:05:16,570 [DEBUG][       Thread-257393][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 14:05:16,620 [DEBUG][       Thread-257393][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 14:05:16,620 [DEBUG][       Thread-257393][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 14:05:16,630 [DEBUG][       Thread-257393][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 14:05:16,639 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 14:05:16,639 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 14:05:16,651 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 14:05:16,665 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 14:05:16,665 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 14:05:16,665 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 14:05:16,674 [DEBUG][       Thread-257393][   transport.py][1871] : EOF in transport thread
2025-06-13 14:05:17,092 [DEBUG][Thread-257395 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:05:23,485 [DEBUG][Thread-257396 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:05:26,669 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 14:05:26,669 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 14:05:26,669 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 14:05:26,672 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 14:05:27,120 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 14, 5, 21), 16.94, 30.75, 0.0, 16.83, 14.0, 0, 0, 0, 2, 0, 0),)
2025-06-13 14:05:27,120 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 14:05:21
2025-06-13 14:05:27,199 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 14:05:27,205 [DEBUG][       Thread-257397][   transport.py][1871] : starting thread (client mode): 0x86368040
2025-06-13 14:05:27,205 [DEBUG][       Thread-257397][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 14:05:27,226 [DEBUG][       Thread-257397][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 14:05:27,226 [ INFO][       Thread-257397][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 14:05:27,230 [DEBUG][       Thread-257397][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 14:05:27,230 [DEBUG][       Thread-257397][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 14:05:27,230 [DEBUG][       Thread-257397][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 14:05:27,230 [DEBUG][       Thread-257397][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:05:27,230 [DEBUG][       Thread-257397][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:05:27,230 [DEBUG][       Thread-257397][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:05:27,230 [DEBUG][       Thread-257397][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:05:27,230 [DEBUG][       Thread-257397][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 14:05:27,230 [DEBUG][       Thread-257397][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 14:05:27,230 [DEBUG][       Thread-257397][   transport.py][1871] : client lang: <none>
2025-06-13 14:05:27,230 [DEBUG][       Thread-257397][   transport.py][1871] : server lang: <none>
2025-06-13 14:05:27,230 [DEBUG][       Thread-257397][   transport.py][1871] : kex follows: False
2025-06-13 14:05:27,230 [DEBUG][       Thread-257397][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 14:05:27,230 [DEBUG][       Thread-257397][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 14:05:27,230 [DEBUG][       Thread-257397][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 14:05:27,230 [DEBUG][       Thread-257397][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 14:05:27,230 [DEBUG][       Thread-257397][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 14:05:27,230 [DEBUG][       Thread-257397][   transport.py][1871] : Compression: none
2025-06-13 14:05:27,230 [DEBUG][       Thread-257397][   transport.py][1871] : === End of kex handshake ===
2025-06-13 14:05:27,247 [DEBUG][       Thread-257397][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 14:05:27,248 [DEBUG][       Thread-257397][   transport.py][1871] : Switch to new keys ...
2025-06-13 14:05:27,248 [DEBUG][       Thread-257397][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 14:05:27,249 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 14:05:27,249 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 14:05:27,250 [DEBUG][       Thread-257397][   transport.py][1871] : userauth is OK
2025-06-13 14:05:27,275 [ INFO][       Thread-257397][   transport.py][1871] : Authentication (password) successful!
2025-06-13 14:05:27,275 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 14:05:27,905 [DEBUG][       Thread-257397][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 14:05:27,906 [DEBUG][       Thread-257397][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 14:05:27,949 [DEBUG][       Thread-257397][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 14:05:27,949 [DEBUG][       Thread-257397][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 14:05:27,953 [DEBUG][       Thread-257397][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 14:05:27,965 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 14:05:27,966 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 14:05:27,968 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 14:05:27,970 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 14:05:27,976 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 14:05:27,978 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 14:05:27,979 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 14:05:27,979 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 14:05:27,980 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.503409 -999.00  +13.60  22.24     35   -1.20 1 1 1 1 1   887    0 15.34 17.47 ----- 21.0 22.2 32.4 27.3 17.9 -30.1 16.6 -32.4 17.0 -31.4 18.3 -28.7
2025-06-13 14:05:27,980 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 14:05:27,980 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 14:05:27,980 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.503409
2025-06-13 14:05:27,980 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 14:05:27,981 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 14:05:27,981 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 14:05:27,981 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 14:05:27,981 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 14:05:27,981 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T14:05:21', tmtdew=16.94, humidity=30.75, cloud=0.0, wind=16.83, temperature=14.0, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T12:04:54.538', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 14:05:27,982 [DEBUG][       Thread-257397][   transport.py][1871] : EOF in transport thread
2025-06-13 14:05:28,067 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 14:05:28,077 [DEBUG][       Thread-257400][   transport.py][1871] : starting thread (client mode): 0x842068f0
2025-06-13 14:05:28,077 [DEBUG][       Thread-257400][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 14:05:28,093 [DEBUG][       Thread-257400][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 14:05:28,093 [ INFO][       Thread-257400][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 14:05:28,100 [DEBUG][       Thread-257400][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 14:05:28,100 [DEBUG][       Thread-257400][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 14:05:28,100 [DEBUG][       Thread-257400][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 14:05:28,100 [DEBUG][       Thread-257400][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:05:28,100 [DEBUG][       Thread-257400][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:05:28,100 [DEBUG][       Thread-257400][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:05:28,100 [DEBUG][       Thread-257400][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:05:28,100 [DEBUG][       Thread-257400][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 14:05:28,101 [DEBUG][       Thread-257400][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 14:05:28,101 [DEBUG][       Thread-257400][   transport.py][1871] : client lang: <none>
2025-06-13 14:05:28,101 [DEBUG][       Thread-257400][   transport.py][1871] : server lang: <none>
2025-06-13 14:05:28,101 [DEBUG][       Thread-257400][   transport.py][1871] : kex follows: False
2025-06-13 14:05:28,101 [DEBUG][       Thread-257400][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 14:05:28,101 [DEBUG][       Thread-257400][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 14:05:28,101 [DEBUG][       Thread-257400][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 14:05:28,101 [DEBUG][       Thread-257400][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 14:05:28,101 [DEBUG][       Thread-257400][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 14:05:28,101 [DEBUG][       Thread-257400][   transport.py][1871] : Compression: none
2025-06-13 14:05:28,101 [DEBUG][       Thread-257400][   transport.py][1871] : === End of kex handshake ===
2025-06-13 14:05:28,158 [DEBUG][       Thread-257400][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 14:05:28,159 [DEBUG][       Thread-257400][   transport.py][1871] : Switch to new keys ...
2025-06-13 14:05:28,159 [DEBUG][       Thread-257400][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 14:05:28,159 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 14:05:28,160 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 14:05:28,223 [DEBUG][       Thread-257400][   transport.py][1871] : userauth is OK
2025-06-13 14:05:28,223 [DEBUG][       Thread-257400][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 14:05:28,224 [DEBUG][       Thread-257400][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 14:05:28,224 [DEBUG][       Thread-257400][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 14:05:28,224 [DEBUG][       Thread-257400][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 14:05:28,243 [ INFO][       Thread-257400][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 14:05:28,243 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 14:05:28,244 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 14:05:29,280 [DEBUG][       Thread-257400][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 14:05:29,280 [DEBUG][       Thread-257400][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 14:05:29,328 [DEBUG][       Thread-257400][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 14:05:29,329 [DEBUG][       Thread-257400][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 14:05:29,341 [DEBUG][       Thread-257400][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 14:05:29,350 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 14:05:29,351 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 14:05:29,359 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 14:05:29,369 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 14:05:29,369 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 14:05:29,370 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 14:05:29,378 [DEBUG][       Thread-257400][   transport.py][1871] : EOF in transport thread
2025-06-13 14:05:32,505 [DEBUG][Thread-257402 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:05:39,380 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 14:05:39,380 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 14:05:39,380 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 14:05:39,383 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 14:05:39,841 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 14, 5, 21), 16.94, 30.75, 0.0, 16.83, 14.0, 0, 0, 0, 2, 0, 0),)
2025-06-13 14:05:39,841 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 14:05:21
2025-06-13 14:05:39,920 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 14:05:39,923 [DEBUG][       Thread-257403][   transport.py][1871] : starting thread (client mode): 0x84204e80
2025-06-13 14:05:39,923 [DEBUG][       Thread-257403][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 14:05:39,943 [DEBUG][       Thread-257403][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 14:05:39,943 [ INFO][       Thread-257403][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 14:05:39,946 [DEBUG][       Thread-257403][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 14:05:39,946 [DEBUG][       Thread-257403][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 14:05:39,947 [DEBUG][       Thread-257403][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 14:05:39,947 [DEBUG][       Thread-257403][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:05:39,947 [DEBUG][       Thread-257403][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:05:39,947 [DEBUG][       Thread-257403][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:05:39,947 [DEBUG][       Thread-257403][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:05:39,947 [DEBUG][       Thread-257403][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 14:05:39,947 [DEBUG][       Thread-257403][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 14:05:39,947 [DEBUG][       Thread-257403][   transport.py][1871] : client lang: <none>
2025-06-13 14:05:39,947 [DEBUG][       Thread-257403][   transport.py][1871] : server lang: <none>
2025-06-13 14:05:39,947 [DEBUG][       Thread-257403][   transport.py][1871] : kex follows: False
2025-06-13 14:05:39,947 [DEBUG][       Thread-257403][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 14:05:39,947 [DEBUG][       Thread-257403][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 14:05:39,947 [DEBUG][       Thread-257403][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 14:05:39,947 [DEBUG][       Thread-257403][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 14:05:39,947 [DEBUG][       Thread-257403][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 14:05:39,947 [DEBUG][       Thread-257403][   transport.py][1871] : Compression: none
2025-06-13 14:05:39,947 [DEBUG][       Thread-257403][   transport.py][1871] : === End of kex handshake ===
2025-06-13 14:05:39,964 [DEBUG][       Thread-257403][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 14:05:39,965 [DEBUG][       Thread-257403][   transport.py][1871] : Switch to new keys ...
2025-06-13 14:05:39,965 [DEBUG][       Thread-257403][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 14:05:39,965 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 14:05:39,966 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 14:05:39,967 [DEBUG][       Thread-257403][   transport.py][1871] : userauth is OK
2025-06-13 14:05:39,991 [ INFO][       Thread-257403][   transport.py][1871] : Authentication (password) successful!
2025-06-13 14:05:39,992 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 14:05:40,609 [DEBUG][       Thread-257403][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 14:05:40,609 [DEBUG][       Thread-257403][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 14:05:40,653 [DEBUG][       Thread-257403][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 14:05:40,653 [DEBUG][       Thread-257403][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 14:05:40,655 [DEBUG][       Thread-257403][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 14:05:40,663 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 14:05:40,664 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 14:05:40,665 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 14:05:40,667 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 14:05:40,671 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 14:05:40,673 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 14:05:40,673 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 14:05:40,674 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 14:05:40,674 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.503409 -999.00  +13.60  22.24     35   -1.20 1 1 1 1 1   887    0 15.34 17.47 ----- 21.0 22.2 32.4 27.3 17.9 -30.1 16.6 -32.4 17.0 -31.4 18.3 -28.7
2025-06-13 14:05:40,674 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 14:05:40,674 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 14:05:40,674 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.503409
2025-06-13 14:05:40,675 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 14:05:40,675 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 14:05:40,675 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 14:05:40,675 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 14:05:40,675 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 14:05:40,675 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T14:05:21', tmtdew=16.94, humidity=30.75, cloud=0.0, wind=16.83, temperature=14.0, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T12:04:54.538', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 14:05:40,677 [DEBUG][       Thread-257403][   transport.py][1871] : EOF in transport thread
2025-06-13 14:05:40,760 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 14:05:40,771 [DEBUG][       Thread-257406][   transport.py][1871] : starting thread (client mode): 0x863bca30
2025-06-13 14:05:40,771 [DEBUG][       Thread-257406][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 14:05:40,787 [DEBUG][       Thread-257406][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 14:05:40,787 [ INFO][       Thread-257406][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 14:05:40,794 [DEBUG][       Thread-257406][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 14:05:40,795 [DEBUG][       Thread-257406][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 14:05:40,795 [DEBUG][       Thread-257406][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 14:05:40,795 [DEBUG][       Thread-257406][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:05:40,795 [DEBUG][       Thread-257406][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:05:40,795 [DEBUG][       Thread-257406][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:05:40,795 [DEBUG][       Thread-257406][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:05:40,795 [DEBUG][       Thread-257406][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 14:05:40,795 [DEBUG][       Thread-257406][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 14:05:40,795 [DEBUG][       Thread-257406][   transport.py][1871] : client lang: <none>
2025-06-13 14:05:40,795 [DEBUG][       Thread-257406][   transport.py][1871] : server lang: <none>
2025-06-13 14:05:40,795 [DEBUG][       Thread-257406][   transport.py][1871] : kex follows: False
2025-06-13 14:05:40,795 [DEBUG][       Thread-257406][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 14:05:40,795 [DEBUG][       Thread-257406][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 14:05:40,795 [DEBUG][       Thread-257406][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 14:05:40,795 [DEBUG][       Thread-257406][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 14:05:40,795 [DEBUG][       Thread-257406][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 14:05:40,795 [DEBUG][       Thread-257406][   transport.py][1871] : Compression: none
2025-06-13 14:05:40,795 [DEBUG][       Thread-257406][   transport.py][1871] : === End of kex handshake ===
2025-06-13 14:05:40,853 [DEBUG][       Thread-257406][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 14:05:40,854 [DEBUG][       Thread-257406][   transport.py][1871] : Switch to new keys ...
2025-06-13 14:05:40,855 [DEBUG][       Thread-257406][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 14:05:40,855 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 14:05:40,856 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 14:05:40,919 [DEBUG][       Thread-257406][   transport.py][1871] : userauth is OK
2025-06-13 14:05:40,920 [DEBUG][       Thread-257406][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 14:05:40,920 [DEBUG][       Thread-257406][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 14:05:40,920 [DEBUG][       Thread-257406][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 14:05:40,920 [DEBUG][       Thread-257406][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 14:05:40,940 [ INFO][       Thread-257406][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 14:05:40,940 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 14:05:40,941 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 14:05:41,538 [DEBUG][Thread-257408 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:05:41,970 [DEBUG][       Thread-257406][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 14:05:41,971 [DEBUG][       Thread-257406][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 14:05:42,021 [DEBUG][       Thread-257406][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 14:05:42,022 [DEBUG][       Thread-257406][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 14:05:42,031 [DEBUG][       Thread-257406][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 14:05:42,042 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 14:05:42,043 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 14:05:42,051 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 14:05:42,061 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 14:05:42,061 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 14:05:42,062 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 14:05:42,070 [DEBUG][       Thread-257406][   transport.py][1871] : EOF in transport thread
2025-06-13 14:05:50,561 [DEBUG][Thread-257409 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:05:52,072 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 14:05:52,072 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 14:05:52,072 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 14:05:52,075 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 14:05:52,539 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 14, 5, 21), 16.94, 30.75, 0.0, 16.83, 14.0, 0, 0, 0, 2, 0, 0),)
2025-06-13 14:05:52,539 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 14:05:21
2025-06-13 14:05:52,617 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 14:05:52,623 [DEBUG][       Thread-257410][   transport.py][1871] : starting thread (client mode): 0x842078b0
2025-06-13 14:05:52,623 [DEBUG][       Thread-257410][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 14:05:52,644 [DEBUG][       Thread-257410][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 14:05:52,644 [ INFO][       Thread-257410][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 14:05:52,647 [DEBUG][       Thread-257410][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 14:05:52,647 [DEBUG][       Thread-257410][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 14:05:52,647 [DEBUG][       Thread-257410][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 14:05:52,647 [DEBUG][       Thread-257410][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:05:52,647 [DEBUG][       Thread-257410][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:05:52,647 [DEBUG][       Thread-257410][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:05:52,647 [DEBUG][       Thread-257410][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:05:52,647 [DEBUG][       Thread-257410][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 14:05:52,647 [DEBUG][       Thread-257410][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 14:05:52,647 [DEBUG][       Thread-257410][   transport.py][1871] : client lang: <none>
2025-06-13 14:05:52,648 [DEBUG][       Thread-257410][   transport.py][1871] : server lang: <none>
2025-06-13 14:05:52,648 [DEBUG][       Thread-257410][   transport.py][1871] : kex follows: False
2025-06-13 14:05:52,648 [DEBUG][       Thread-257410][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 14:05:52,648 [DEBUG][       Thread-257410][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 14:05:52,648 [DEBUG][       Thread-257410][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 14:05:52,648 [DEBUG][       Thread-257410][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 14:05:52,648 [DEBUG][       Thread-257410][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 14:05:52,648 [DEBUG][       Thread-257410][   transport.py][1871] : Compression: none
2025-06-13 14:05:52,648 [DEBUG][       Thread-257410][   transport.py][1871] : === End of kex handshake ===
2025-06-13 14:05:52,663 [DEBUG][       Thread-257410][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 14:05:52,663 [DEBUG][       Thread-257410][   transport.py][1871] : Switch to new keys ...
2025-06-13 14:05:52,664 [DEBUG][       Thread-257410][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 14:05:52,664 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 14:05:52,664 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 14:05:52,665 [DEBUG][       Thread-257410][   transport.py][1871] : userauth is OK
2025-06-13 14:05:52,690 [ INFO][       Thread-257410][   transport.py][1871] : Authentication (password) successful!
2025-06-13 14:05:52,691 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 14:05:53,324 [DEBUG][       Thread-257410][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 14:05:53,324 [DEBUG][       Thread-257410][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 14:05:53,365 [DEBUG][       Thread-257410][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 14:05:53,365 [DEBUG][       Thread-257410][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 14:05:53,368 [DEBUG][       Thread-257410][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 14:05:53,380 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 14:05:53,381 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 14:05:53,383 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 14:05:53,385 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 14:05:53,390 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 14:05:53,392 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 14:05:53,393 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 14:05:53,393 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 14:05:53,394 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.503756 -999.00  +13.80  18.34     36   -0.60 1 1 1 1 1   887    0 15.45 18.21 ----- 23.2 18.3 31.6 28.1 17.8 -31.0 16.8 -31.4 17.1 -29.2 18.3 -28.1
2025-06-13 14:05:53,394 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 14:05:53,394 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 14:05:53,394 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.503756
2025-06-13 14:05:53,394 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 14:05:53,395 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 14:05:53,395 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 14:05:53,395 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 14:05:53,395 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 14:05:53,395 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T14:05:21', tmtdew=16.94, humidity=30.75, cloud=0.0, wind=16.83, temperature=14.0, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T12:05:24.518', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 14:05:53,396 [DEBUG][       Thread-257410][   transport.py][1871] : EOF in transport thread
2025-06-13 14:05:53,479 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 14:05:53,488 [DEBUG][       Thread-257413][   transport.py][1871] : starting thread (client mode): 0x86893fd0
2025-06-13 14:05:53,488 [DEBUG][       Thread-257413][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 14:05:53,503 [DEBUG][       Thread-257413][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 14:05:53,503 [ INFO][       Thread-257413][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 14:05:53,511 [DEBUG][       Thread-257413][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 14:05:53,511 [DEBUG][       Thread-257413][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 14:05:53,511 [DEBUG][       Thread-257413][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 14:05:53,511 [DEBUG][       Thread-257413][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:05:53,511 [DEBUG][       Thread-257413][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:05:53,511 [DEBUG][       Thread-257413][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:05:53,511 [DEBUG][       Thread-257413][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:05:53,511 [DEBUG][       Thread-257413][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 14:05:53,511 [DEBUG][       Thread-257413][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 14:05:53,511 [DEBUG][       Thread-257413][   transport.py][1871] : client lang: <none>
2025-06-13 14:05:53,511 [DEBUG][       Thread-257413][   transport.py][1871] : server lang: <none>
2025-06-13 14:05:53,511 [DEBUG][       Thread-257413][   transport.py][1871] : kex follows: False
2025-06-13 14:05:53,511 [DEBUG][       Thread-257413][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 14:05:53,511 [DEBUG][       Thread-257413][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 14:05:53,511 [DEBUG][       Thread-257413][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 14:05:53,511 [DEBUG][       Thread-257413][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 14:05:53,511 [DEBUG][       Thread-257413][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 14:05:53,511 [DEBUG][       Thread-257413][   transport.py][1871] : Compression: none
2025-06-13 14:05:53,511 [DEBUG][       Thread-257413][   transport.py][1871] : === End of kex handshake ===
2025-06-13 14:05:53,569 [DEBUG][       Thread-257413][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 14:05:53,570 [DEBUG][       Thread-257413][   transport.py][1871] : Switch to new keys ...
2025-06-13 14:05:53,571 [DEBUG][       Thread-257413][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 14:05:53,571 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 14:05:53,571 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 14:05:53,631 [DEBUG][       Thread-257413][   transport.py][1871] : userauth is OK
2025-06-13 14:05:53,631 [DEBUG][       Thread-257413][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 14:05:53,632 [DEBUG][       Thread-257413][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 14:05:53,632 [DEBUG][       Thread-257413][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 14:05:53,632 [DEBUG][       Thread-257413][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 14:05:53,650 [ INFO][       Thread-257413][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 14:05:53,651 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 14:05:53,651 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 14:05:54,678 [DEBUG][       Thread-257413][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 14:05:54,678 [DEBUG][       Thread-257413][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 14:05:54,727 [DEBUG][       Thread-257413][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 14:05:54,727 [DEBUG][       Thread-257413][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 14:05:54,735 [DEBUG][       Thread-257413][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 14:05:54,743 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 14:05:54,743 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 14:05:54,751 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 14:05:54,759 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 14:05:54,759 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 14:05:54,759 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 14:05:54,767 [DEBUG][       Thread-257413][   transport.py][1871] : EOF in transport thread
2025-06-13 14:05:57,770 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:05:57,771 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:05:59,582 [DEBUG][Thread-257415 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:06:04,761 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 14:06:04,761 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 14:06:04,761 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 14:06:04,762 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 14:06:05,203 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 14, 5, 53), 16.91, 30.78, 0.0, 19.82, 13.89, 0, 0, 0, 2, 0, 0),)
2025-06-13 14:06:05,203 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 14:05:53
2025-06-13 14:06:05,281 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 14:06:05,285 [DEBUG][       Thread-257416][   transport.py][1871] : starting thread (client mode): 0x86350520
2025-06-13 14:06:05,285 [DEBUG][       Thread-257416][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 14:06:05,306 [DEBUG][       Thread-257416][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 14:06:05,306 [ INFO][       Thread-257416][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 14:06:05,310 [DEBUG][       Thread-257416][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 14:06:05,310 [DEBUG][       Thread-257416][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 14:06:05,310 [DEBUG][       Thread-257416][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 14:06:05,310 [DEBUG][       Thread-257416][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:06:05,310 [DEBUG][       Thread-257416][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:06:05,310 [DEBUG][       Thread-257416][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:06:05,310 [DEBUG][       Thread-257416][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:06:05,310 [DEBUG][       Thread-257416][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 14:06:05,310 [DEBUG][       Thread-257416][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 14:06:05,310 [DEBUG][       Thread-257416][   transport.py][1871] : client lang: <none>
2025-06-13 14:06:05,310 [DEBUG][       Thread-257416][   transport.py][1871] : server lang: <none>
2025-06-13 14:06:05,310 [DEBUG][       Thread-257416][   transport.py][1871] : kex follows: False
2025-06-13 14:06:05,310 [DEBUG][       Thread-257416][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 14:06:05,310 [DEBUG][       Thread-257416][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 14:06:05,310 [DEBUG][       Thread-257416][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 14:06:05,310 [DEBUG][       Thread-257416][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 14:06:05,310 [DEBUG][       Thread-257416][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 14:06:05,311 [DEBUG][       Thread-257416][   transport.py][1871] : Compression: none
2025-06-13 14:06:05,311 [DEBUG][       Thread-257416][   transport.py][1871] : === End of kex handshake ===
2025-06-13 14:06:05,328 [DEBUG][       Thread-257416][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 14:06:05,329 [DEBUG][       Thread-257416][   transport.py][1871] : Switch to new keys ...
2025-06-13 14:06:05,329 [DEBUG][       Thread-257416][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 14:06:05,330 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 14:06:05,330 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 14:06:05,331 [DEBUG][       Thread-257416][   transport.py][1871] : userauth is OK
2025-06-13 14:06:05,344 [ INFO][       Thread-257416][   transport.py][1871] : Authentication (password) successful!
2025-06-13 14:06:05,344 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 14:06:05,983 [DEBUG][       Thread-257416][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 14:06:05,983 [DEBUG][       Thread-257416][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 14:06:06,025 [DEBUG][       Thread-257416][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 14:06:06,025 [DEBUG][       Thread-257416][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 14:06:06,029 [DEBUG][       Thread-257416][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 14:06:06,041 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 14:06:06,042 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 14:06:06,044 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 14:06:06,046 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 14:06:06,052 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 14:06:06,054 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 14:06:06,054 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 14:06:06,055 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 14:06:06,055 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.503756 -999.00  +13.80  18.34     36   -0.60 1 1 1 1 1   887    0 15.45 18.21 ----- 23.2 18.3 31.6 28.1 17.8 -31.0 16.8 -31.4 17.1 -29.2 18.3 -28.1
2025-06-13 14:06:06,055 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 14:06:06,055 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 14:06:06,055 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.503756
2025-06-13 14:06:06,055 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 14:06:06,056 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 14:06:06,056 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 14:06:06,056 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 14:06:06,056 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 14:06:06,056 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T14:05:53', tmtdew=16.91, humidity=30.78, cloud=0.0, wind=19.82, temperature=13.89, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T12:05:24.518', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 14:06:06,058 [DEBUG][       Thread-257416][   transport.py][1871] : EOF in transport thread
2025-06-13 14:06:06,142 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 14:06:06,155 [DEBUG][       Thread-257419][   transport.py][1871] : starting thread (client mode): 0x86739330
2025-06-13 14:06:06,155 [DEBUG][       Thread-257419][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 14:06:06,173 [DEBUG][       Thread-257419][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 14:06:06,173 [ INFO][       Thread-257419][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 14:06:06,181 [DEBUG][       Thread-257419][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 14:06:06,181 [DEBUG][       Thread-257419][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 14:06:06,181 [DEBUG][       Thread-257419][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 14:06:06,181 [DEBUG][       Thread-257419][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:06:06,181 [DEBUG][       Thread-257419][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:06:06,181 [DEBUG][       Thread-257419][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:06:06,181 [DEBUG][       Thread-257419][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:06:06,181 [DEBUG][       Thread-257419][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 14:06:06,181 [DEBUG][       Thread-257419][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 14:06:06,181 [DEBUG][       Thread-257419][   transport.py][1871] : client lang: <none>
2025-06-13 14:06:06,181 [DEBUG][       Thread-257419][   transport.py][1871] : server lang: <none>
2025-06-13 14:06:06,182 [DEBUG][       Thread-257419][   transport.py][1871] : kex follows: False
2025-06-13 14:06:06,182 [DEBUG][       Thread-257419][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 14:06:06,182 [DEBUG][       Thread-257419][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 14:06:06,182 [DEBUG][       Thread-257419][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 14:06:06,182 [DEBUG][       Thread-257419][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 14:06:06,182 [DEBUG][       Thread-257419][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 14:06:06,182 [DEBUG][       Thread-257419][   transport.py][1871] : Compression: none
2025-06-13 14:06:06,182 [DEBUG][       Thread-257419][   transport.py][1871] : === End of kex handshake ===
2025-06-13 14:06:06,247 [DEBUG][       Thread-257419][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 14:06:06,248 [DEBUG][       Thread-257419][   transport.py][1871] : Switch to new keys ...
2025-06-13 14:06:06,249 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 14:06:06,249 [DEBUG][       Thread-257419][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 14:06:06,250 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 14:06:06,306 [DEBUG][       Thread-257419][   transport.py][1871] : userauth is OK
2025-06-13 14:06:06,306 [DEBUG][       Thread-257419][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 14:06:06,306 [DEBUG][       Thread-257419][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 14:06:06,306 [DEBUG][       Thread-257419][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 14:06:06,306 [DEBUG][       Thread-257419][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 14:06:06,336 [ INFO][       Thread-257419][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 14:06:06,337 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 14:06:06,337 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 14:06:07,412 [DEBUG][       Thread-257419][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 14:06:07,412 [DEBUG][       Thread-257419][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 14:06:07,460 [DEBUG][       Thread-257419][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 14:06:07,460 [DEBUG][       Thread-257419][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 14:06:07,470 [DEBUG][       Thread-257419][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 14:06:07,479 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 14:06:07,479 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 14:06:07,488 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 14:06:07,498 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 14:06:07,498 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 14:06:07,499 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 14:06:07,507 [DEBUG][       Thread-257419][   transport.py][1871] : EOF in transport thread
2025-06-13 14:06:08,603 [DEBUG][Thread-257421 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:06:16,344 [DEBUG][Thread-257422 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:06:17,119 [DEBUG][Thread-257423 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:06:17,401 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:06:17,402 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:06:17,509 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 14:06:17,510 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 14:06:17,510 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 14:06:17,512 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 14:06:17,631 [DEBUG][Thread-257424 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:06:17,955 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 14, 5, 53), 16.91, 30.78, 0.0, 19.82, 13.89, 0, 0, 0, 2, 0, 0),)
2025-06-13 14:06:17,955 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 14:05:53
2025-06-13 14:06:18,034 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 14:06:18,040 [DEBUG][       Thread-257425][   transport.py][1871] : starting thread (client mode): 0x84205b70
2025-06-13 14:06:18,040 [DEBUG][       Thread-257425][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 14:06:18,062 [DEBUG][       Thread-257425][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 14:06:18,062 [ INFO][       Thread-257425][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 14:06:18,065 [DEBUG][       Thread-257425][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 14:06:18,065 [DEBUG][       Thread-257425][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 14:06:18,065 [DEBUG][       Thread-257425][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 14:06:18,065 [DEBUG][       Thread-257425][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:06:18,065 [DEBUG][       Thread-257425][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:06:18,065 [DEBUG][       Thread-257425][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:06:18,065 [DEBUG][       Thread-257425][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:06:18,065 [DEBUG][       Thread-257425][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 14:06:18,065 [DEBUG][       Thread-257425][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 14:06:18,065 [DEBUG][       Thread-257425][   transport.py][1871] : client lang: <none>
2025-06-13 14:06:18,065 [DEBUG][       Thread-257425][   transport.py][1871] : server lang: <none>
2025-06-13 14:06:18,065 [DEBUG][       Thread-257425][   transport.py][1871] : kex follows: False
2025-06-13 14:06:18,065 [DEBUG][       Thread-257425][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 14:06:18,066 [DEBUG][       Thread-257425][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 14:06:18,066 [DEBUG][       Thread-257425][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 14:06:18,066 [DEBUG][       Thread-257425][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 14:06:18,066 [DEBUG][       Thread-257425][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 14:06:18,066 [DEBUG][       Thread-257425][   transport.py][1871] : Compression: none
2025-06-13 14:06:18,066 [DEBUG][       Thread-257425][   transport.py][1871] : === End of kex handshake ===
2025-06-13 14:06:18,082 [DEBUG][       Thread-257425][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 14:06:18,083 [DEBUG][       Thread-257425][   transport.py][1871] : Switch to new keys ...
2025-06-13 14:06:18,084 [DEBUG][       Thread-257425][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 14:06:18,084 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 14:06:18,084 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 14:06:18,085 [DEBUG][       Thread-257425][   transport.py][1871] : userauth is OK
2025-06-13 14:06:18,098 [ INFO][       Thread-257425][   transport.py][1871] : Authentication (password) successful!
2025-06-13 14:06:18,098 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 14:06:18,773 [DEBUG][       Thread-257425][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 14:06:18,773 [DEBUG][       Thread-257425][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 14:06:18,817 [DEBUG][       Thread-257425][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 14:06:18,817 [DEBUG][       Thread-257425][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 14:06:18,821 [DEBUG][       Thread-257425][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 14:06:18,832 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 14:06:18,833 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 14:06:18,834 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 14:06:18,836 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 14:06:18,842 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 14:06:18,844 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 14:06:18,845 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 14:06:18,845 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 14:06:18,846 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.503756 -999.00  +13.80  18.34     36   -0.60 1 1 1 1 1   887    0 15.45 18.21 ----- 23.2 18.3 31.6 28.1 17.8 -31.0 16.8 -31.4 17.1 -29.2 18.3 -28.1
2025-06-13 14:06:18,846 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 14:06:18,846 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 14:06:18,846 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.503756
2025-06-13 14:06:18,846 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 14:06:18,847 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 14:06:18,847 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 14:06:18,847 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 14:06:18,847 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 14:06:18,847 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T14:05:53', tmtdew=16.91, humidity=30.78, cloud=0.0, wind=19.82, temperature=13.89, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T12:05:24.518', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 14:06:18,847 [DEBUG][       Thread-257425][   transport.py][1871] : EOF in transport thread
2025-06-13 14:06:18,931 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 14:06:26,649 [DEBUG][Thread-257428 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:06:35,669 [DEBUG][Thread-257429 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:06:44,693 [DEBUG][Thread-257430 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:06:53,713 [DEBUG][Thread-257431 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:06:57,908 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:06:57,909 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:07:02,732 [DEBUG][Thread-257432 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:07:11,756 [DEBUG][Thread-257433 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:07:17,172 [DEBUG][Thread-257434 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:07:17,475 [DEBUG][Thread-257435 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:07:18,526 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:07:18,528 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:07:20,777 [DEBUG][Thread-257436 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:07:29,796 [DEBUG][Thread-257437 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:07:38,817 [DEBUG][Thread-257438 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:07:47,840 [DEBUG][Thread-257439 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:07:56,863 [DEBUG][Thread-257440 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:07:58,046 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:07:58,048 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:08:05,883 [DEBUG][Thread-257441 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:08:14,902 [DEBUG][Thread-257442 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:08:17,232 [DEBUG][Thread-257443 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:08:18,608 [DEBUG][Thread-257444 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:08:19,677 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:08:19,679 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:08:23,922 [DEBUG][Thread-257445 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:08:28,692 [WARNING][ poll_weather_worker][      driver.py][ 286] : Unable to open ssh connection for writing weather state to io.saao.ac.za: [Errno 110] Connection timed out
2025-06-13 14:08:32,943 [DEBUG][Thread-257446 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:08:38,703 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 14:08:38,703 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 14:08:38,703 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 14:08:38,706 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 14:08:39,175 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 14, 8, 32), 17.6, 29.23, 0.0, 18.81, 13.55, 0, 0, 0, 2, 0, 0),)
2025-06-13 14:08:39,175 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 14:08:32
2025-06-13 14:08:39,257 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 14:08:39,263 [DEBUG][       Thread-257447][   transport.py][1871] : starting thread (client mode): 0x84206050
2025-06-13 14:08:39,263 [DEBUG][       Thread-257447][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 14:08:39,284 [DEBUG][       Thread-257447][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 14:08:39,284 [ INFO][       Thread-257447][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 14:08:39,288 [DEBUG][       Thread-257447][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 14:08:39,288 [DEBUG][       Thread-257447][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 14:08:39,288 [DEBUG][       Thread-257447][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 14:08:39,288 [DEBUG][       Thread-257447][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:08:39,288 [DEBUG][       Thread-257447][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:08:39,288 [DEBUG][       Thread-257447][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:08:39,288 [DEBUG][       Thread-257447][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:08:39,288 [DEBUG][       Thread-257447][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 14:08:39,288 [DEBUG][       Thread-257447][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 14:08:39,288 [DEBUG][       Thread-257447][   transport.py][1871] : client lang: <none>
2025-06-13 14:08:39,288 [DEBUG][       Thread-257447][   transport.py][1871] : server lang: <none>
2025-06-13 14:08:39,288 [DEBUG][       Thread-257447][   transport.py][1871] : kex follows: False
2025-06-13 14:08:39,288 [DEBUG][       Thread-257447][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 14:08:39,288 [DEBUG][       Thread-257447][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 14:08:39,289 [DEBUG][       Thread-257447][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 14:08:39,289 [DEBUG][       Thread-257447][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 14:08:39,289 [DEBUG][       Thread-257447][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 14:08:39,289 [DEBUG][       Thread-257447][   transport.py][1871] : Compression: none
2025-06-13 14:08:39,289 [DEBUG][       Thread-257447][   transport.py][1871] : === End of kex handshake ===
2025-06-13 14:08:39,305 [DEBUG][       Thread-257447][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 14:08:39,306 [DEBUG][       Thread-257447][   transport.py][1871] : Switch to new keys ...
2025-06-13 14:08:39,306 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 14:08:39,307 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 14:08:39,307 [DEBUG][       Thread-257447][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 14:08:39,308 [DEBUG][       Thread-257447][   transport.py][1871] : userauth is OK
2025-06-13 14:08:39,321 [ INFO][       Thread-257447][   transport.py][1871] : Authentication (password) successful!
2025-06-13 14:08:39,321 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 14:08:39,983 [DEBUG][       Thread-257447][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 14:08:39,984 [DEBUG][       Thread-257447][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 14:08:40,025 [DEBUG][       Thread-257447][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 14:08:40,025 [DEBUG][       Thread-257447][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 14:08:40,029 [DEBUG][       Thread-257447][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 14:08:40,040 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 14:08:40,041 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 14:08:40,043 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 14:08:40,045 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 14:08:40,050 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 14:08:40,053 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 14:08:40,053 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 14:08:40,053 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 14:08:40,054 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.505839 -999.00  +13.40  23.46     34   -2.00 1 1 1 1 1   887    0 16.26 33.39 ----- 19.0 23.5 30.6 26.5 17.8 -31.5 16.7 -32.6 17.1 -30.5 18.4 -28.6
2025-06-13 14:08:40,054 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 14:08:40,054 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 14:08:40,054 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.505839
2025-06-13 14:08:40,054 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 14:08:40,055 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 14:08:40,055 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 14:08:40,055 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 14:08:40,055 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 14:08:40,055 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T14:08:32', tmtdew=17.6, humidity=29.23, cloud=0.0, wind=18.81, temperature=13.55, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T12:08:24.490', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 14:08:40,056 [DEBUG][       Thread-257447][   transport.py][1871] : EOF in transport thread
2025-06-13 14:08:40,132 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 14:08:40,144 [DEBUG][       Thread-257450][   transport.py][1871] : starting thread (client mode): 0x867fe1a0
2025-06-13 14:08:40,144 [DEBUG][       Thread-257450][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 14:08:40,159 [DEBUG][       Thread-257450][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 14:08:40,159 [ INFO][       Thread-257450][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 14:08:40,167 [DEBUG][       Thread-257450][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 14:08:40,167 [DEBUG][       Thread-257450][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 14:08:40,167 [DEBUG][       Thread-257450][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 14:08:40,167 [DEBUG][       Thread-257450][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:08:40,167 [DEBUG][       Thread-257450][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:08:40,167 [DEBUG][       Thread-257450][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:08:40,167 [DEBUG][       Thread-257450][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:08:40,167 [DEBUG][       Thread-257450][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 14:08:40,167 [DEBUG][       Thread-257450][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 14:08:40,167 [DEBUG][       Thread-257450][   transport.py][1871] : client lang: <none>
2025-06-13 14:08:40,167 [DEBUG][       Thread-257450][   transport.py][1871] : server lang: <none>
2025-06-13 14:08:40,167 [DEBUG][       Thread-257450][   transport.py][1871] : kex follows: False
2025-06-13 14:08:40,167 [DEBUG][       Thread-257450][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 14:08:40,167 [DEBUG][       Thread-257450][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 14:08:40,168 [DEBUG][       Thread-257450][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 14:08:40,168 [DEBUG][       Thread-257450][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 14:08:40,168 [DEBUG][       Thread-257450][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 14:08:40,168 [DEBUG][       Thread-257450][   transport.py][1871] : Compression: none
2025-06-13 14:08:40,168 [DEBUG][       Thread-257450][   transport.py][1871] : === End of kex handshake ===
2025-06-13 14:08:40,230 [DEBUG][       Thread-257450][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 14:08:40,231 [DEBUG][       Thread-257450][   transport.py][1871] : Switch to new keys ...
2025-06-13 14:08:40,232 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 14:08:40,232 [DEBUG][       Thread-257450][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 14:08:40,233 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 14:08:40,297 [DEBUG][       Thread-257450][   transport.py][1871] : userauth is OK
2025-06-13 14:08:40,297 [DEBUG][       Thread-257450][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 14:08:40,298 [DEBUG][       Thread-257450][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 14:08:40,298 [DEBUG][       Thread-257450][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 14:08:40,298 [DEBUG][       Thread-257450][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 14:08:40,315 [ INFO][       Thread-257450][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 14:08:40,315 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 14:08:40,315 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 14:08:41,310 [DEBUG][       Thread-257450][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 14:08:41,310 [DEBUG][       Thread-257450][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 14:08:41,361 [DEBUG][       Thread-257450][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 14:08:41,361 [DEBUG][       Thread-257450][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 14:08:41,371 [DEBUG][       Thread-257450][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 14:08:41,380 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 14:08:41,380 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 14:08:41,390 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 14:08:41,400 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 14:08:41,400 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 14:08:41,400 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 14:08:41,408 [DEBUG][       Thread-257450][   transport.py][1871] : EOF in transport thread
2025-06-13 14:08:41,966 [DEBUG][Thread-257452 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:08:51,001 [DEBUG][Thread-257453 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:08:51,408 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 14:08:51,408 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 14:08:51,408 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 14:08:51,409 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 14:08:51,890 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 14, 8, 32), 17.6, 29.23, 0.0, 18.81, 13.55, 0, 0, 0, 2, 0, 0),)
2025-06-13 14:08:51,891 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 14:08:32
2025-06-13 14:08:51,976 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 14:08:51,980 [DEBUG][       Thread-257454][   transport.py][1871] : starting thread (client mode): 0x8636b2b0
2025-06-13 14:08:51,980 [DEBUG][       Thread-257454][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 14:08:52,000 [DEBUG][       Thread-257454][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 14:08:52,000 [ INFO][       Thread-257454][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 14:08:52,004 [DEBUG][       Thread-257454][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 14:08:52,004 [DEBUG][       Thread-257454][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 14:08:52,004 [DEBUG][       Thread-257454][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 14:08:52,004 [DEBUG][       Thread-257454][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:08:52,004 [DEBUG][       Thread-257454][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:08:52,004 [DEBUG][       Thread-257454][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:08:52,004 [DEBUG][       Thread-257454][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:08:52,004 [DEBUG][       Thread-257454][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 14:08:52,004 [DEBUG][       Thread-257454][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 14:08:52,004 [DEBUG][       Thread-257454][   transport.py][1871] : client lang: <none>
2025-06-13 14:08:52,004 [DEBUG][       Thread-257454][   transport.py][1871] : server lang: <none>
2025-06-13 14:08:52,004 [DEBUG][       Thread-257454][   transport.py][1871] : kex follows: False
2025-06-13 14:08:52,004 [DEBUG][       Thread-257454][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 14:08:52,004 [DEBUG][       Thread-257454][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 14:08:52,004 [DEBUG][       Thread-257454][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 14:08:52,004 [DEBUG][       Thread-257454][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 14:08:52,004 [DEBUG][       Thread-257454][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 14:08:52,004 [DEBUG][       Thread-257454][   transport.py][1871] : Compression: none
2025-06-13 14:08:52,004 [DEBUG][       Thread-257454][   transport.py][1871] : === End of kex handshake ===
2025-06-13 14:08:52,019 [DEBUG][       Thread-257454][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 14:08:52,019 [DEBUG][       Thread-257454][   transport.py][1871] : Switch to new keys ...
2025-06-13 14:08:52,019 [DEBUG][       Thread-257454][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 14:08:52,019 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 14:08:52,019 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 14:08:52,020 [DEBUG][       Thread-257454][   transport.py][1871] : userauth is OK
2025-06-13 14:08:52,032 [ INFO][       Thread-257454][   transport.py][1871] : Authentication (password) successful!
2025-06-13 14:08:52,032 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 14:08:52,689 [DEBUG][       Thread-257454][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 14:08:52,690 [DEBUG][       Thread-257454][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 14:08:52,733 [DEBUG][       Thread-257454][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 14:08:52,733 [DEBUG][       Thread-257454][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 14:08:52,735 [DEBUG][       Thread-257454][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 14:08:52,748 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 14:08:52,748 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 14:08:52,750 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 14:08:52,751 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 14:08:52,755 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 14:08:52,756 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 14:08:52,756 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 14:08:52,756 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 14:08:52,756 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.505839 -999.00  +13.40  23.46     34   -2.00 1 1 1 1 1   887    0 16.26 33.39 ----- 19.0 23.5 30.6 26.5 17.8 -31.5 16.7 -32.6 17.1 -30.5 18.4 -28.6
2025-06-13 14:08:52,756 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 14:08:52,756 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 14:08:52,756 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.505839
2025-06-13 14:08:52,756 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 14:08:52,756 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 14:08:52,756 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 14:08:52,756 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 14:08:52,756 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 14:08:52,756 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T14:08:32', tmtdew=17.6, humidity=29.23, cloud=0.0, wind=18.81, temperature=13.55, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T12:08:24.490', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 14:08:52,757 [DEBUG][       Thread-257454][   transport.py][1871] : EOF in transport thread
2025-06-13 14:08:52,828 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 14:08:52,838 [DEBUG][       Thread-257457][   transport.py][1871] : starting thread (client mode): 0x863a6e60
2025-06-13 14:08:52,838 [DEBUG][       Thread-257457][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 14:08:52,853 [DEBUG][       Thread-257457][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 14:08:52,853 [ INFO][       Thread-257457][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 14:08:52,861 [DEBUG][       Thread-257457][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 14:08:52,861 [DEBUG][       Thread-257457][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 14:08:52,861 [DEBUG][       Thread-257457][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 14:08:52,861 [DEBUG][       Thread-257457][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:08:52,861 [DEBUG][       Thread-257457][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:08:52,861 [DEBUG][       Thread-257457][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:08:52,861 [DEBUG][       Thread-257457][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:08:52,861 [DEBUG][       Thread-257457][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 14:08:52,861 [DEBUG][       Thread-257457][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 14:08:52,861 [DEBUG][       Thread-257457][   transport.py][1871] : client lang: <none>
2025-06-13 14:08:52,861 [DEBUG][       Thread-257457][   transport.py][1871] : server lang: <none>
2025-06-13 14:08:52,861 [DEBUG][       Thread-257457][   transport.py][1871] : kex follows: False
2025-06-13 14:08:52,861 [DEBUG][       Thread-257457][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 14:08:52,861 [DEBUG][       Thread-257457][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 14:08:52,861 [DEBUG][       Thread-257457][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 14:08:52,861 [DEBUG][       Thread-257457][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 14:08:52,861 [DEBUG][       Thread-257457][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 14:08:52,861 [DEBUG][       Thread-257457][   transport.py][1871] : Compression: none
2025-06-13 14:08:52,861 [DEBUG][       Thread-257457][   transport.py][1871] : === End of kex handshake ===
2025-06-13 14:08:52,918 [DEBUG][       Thread-257457][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 14:08:52,918 [DEBUG][       Thread-257457][   transport.py][1871] : Switch to new keys ...
2025-06-13 14:08:52,919 [DEBUG][       Thread-257457][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 14:08:52,919 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 14:08:52,920 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 14:08:52,974 [DEBUG][       Thread-257457][   transport.py][1871] : userauth is OK
2025-06-13 14:08:52,974 [DEBUG][       Thread-257457][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 14:08:52,975 [DEBUG][       Thread-257457][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 14:08:52,975 [DEBUG][       Thread-257457][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 14:08:52,975 [DEBUG][       Thread-257457][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 14:08:52,994 [ INFO][       Thread-257457][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 14:08:52,994 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 14:08:52,995 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 14:08:54,040 [DEBUG][       Thread-257457][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 14:08:54,041 [DEBUG][       Thread-257457][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 14:08:54,092 [DEBUG][       Thread-257457][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 14:08:54,092 [DEBUG][       Thread-257457][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 14:08:54,103 [DEBUG][       Thread-257457][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 14:08:54,116 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 14:08:54,116 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 14:08:54,127 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 14:08:54,137 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 14:08:54,137 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 14:08:54,138 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 14:08:54,147 [DEBUG][       Thread-257457][   transport.py][1871] : EOF in transport thread
2025-06-13 14:08:58,191 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:08:58,192 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:09:00,020 [DEBUG][Thread-257459 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:09:04,140 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 14:09:04,140 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 14:09:04,141 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 14:09:04,143 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 14:09:04,638 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 14, 8, 32), 17.6, 29.23, 0.0, 18.81, 13.55, 0, 0, 0, 2, 0, 0),)
2025-06-13 14:09:04,638 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 14:08:32
2025-06-13 14:09:04,724 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 14:09:04,730 [DEBUG][       Thread-257460][   transport.py][1871] : starting thread (client mode): 0x842077c0
2025-06-13 14:09:04,730 [DEBUG][       Thread-257460][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 14:09:04,751 [DEBUG][       Thread-257460][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 14:09:04,751 [ INFO][       Thread-257460][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 14:09:04,754 [DEBUG][       Thread-257460][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 14:09:04,754 [DEBUG][       Thread-257460][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 14:09:04,754 [DEBUG][       Thread-257460][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 14:09:04,755 [DEBUG][       Thread-257460][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:09:04,755 [DEBUG][       Thread-257460][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:09:04,755 [DEBUG][       Thread-257460][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:09:04,755 [DEBUG][       Thread-257460][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:09:04,755 [DEBUG][       Thread-257460][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 14:09:04,755 [DEBUG][       Thread-257460][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 14:09:04,755 [DEBUG][       Thread-257460][   transport.py][1871] : client lang: <none>
2025-06-13 14:09:04,755 [DEBUG][       Thread-257460][   transport.py][1871] : server lang: <none>
2025-06-13 14:09:04,755 [DEBUG][       Thread-257460][   transport.py][1871] : kex follows: False
2025-06-13 14:09:04,755 [DEBUG][       Thread-257460][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 14:09:04,755 [DEBUG][       Thread-257460][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 14:09:04,755 [DEBUG][       Thread-257460][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 14:09:04,755 [DEBUG][       Thread-257460][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 14:09:04,755 [DEBUG][       Thread-257460][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 14:09:04,755 [DEBUG][       Thread-257460][   transport.py][1871] : Compression: none
2025-06-13 14:09:04,755 [DEBUG][       Thread-257460][   transport.py][1871] : === End of kex handshake ===
2025-06-13 14:09:04,769 [DEBUG][       Thread-257460][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 14:09:04,769 [DEBUG][       Thread-257460][   transport.py][1871] : Switch to new keys ...
2025-06-13 14:09:04,769 [DEBUG][       Thread-257460][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 14:09:04,769 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 14:09:04,769 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 14:09:04,770 [DEBUG][       Thread-257460][   transport.py][1871] : userauth is OK
2025-06-13 14:09:04,783 [ INFO][       Thread-257460][   transport.py][1871] : Authentication (password) successful!
2025-06-13 14:09:04,784 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 14:09:05,446 [DEBUG][       Thread-257460][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 14:09:05,446 [DEBUG][       Thread-257460][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 14:09:05,488 [DEBUG][       Thread-257460][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 14:09:05,488 [DEBUG][       Thread-257460][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 14:09:05,491 [DEBUG][       Thread-257460][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 14:09:05,502 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 14:09:05,502 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 14:09:05,503 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 14:09:05,505 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 14:09:05,508 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 14:09:05,508 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 14:09:05,509 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 14:09:05,509 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 14:09:05,509 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.505839 -999.00  +13.40  23.46     34   -2.00 1 1 1 1 1   887    0 16.26 33.39 ----- 19.0 23.5 30.6 26.5 17.8 -31.5 16.7 -32.6 17.1 -30.5 18.4 -28.6
2025-06-13 14:09:05,509 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 14:09:05,509 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 14:09:05,509 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.505839
2025-06-13 14:09:05,509 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 14:09:05,509 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 14:09:05,509 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 14:09:05,509 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 14:09:05,509 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 14:09:05,509 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T14:08:32', tmtdew=17.6, humidity=29.23, cloud=0.0, wind=18.81, temperature=13.55, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T12:08:24.490', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 14:09:05,510 [DEBUG][       Thread-257460][   transport.py][1871] : EOF in transport thread
2025-06-13 14:09:05,583 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 14:09:05,594 [DEBUG][       Thread-257463][   transport.py][1871] : starting thread (client mode): 0x863bf280
2025-06-13 14:09:05,594 [DEBUG][       Thread-257463][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 14:09:05,609 [DEBUG][       Thread-257463][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 14:09:05,609 [ INFO][       Thread-257463][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 14:09:05,618 [DEBUG][       Thread-257463][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 14:09:05,618 [DEBUG][       Thread-257463][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 14:09:05,618 [DEBUG][       Thread-257463][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 14:09:05,618 [DEBUG][       Thread-257463][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:09:05,618 [DEBUG][       Thread-257463][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:09:05,618 [DEBUG][       Thread-257463][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:09:05,618 [DEBUG][       Thread-257463][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:09:05,618 [DEBUG][       Thread-257463][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 14:09:05,618 [DEBUG][       Thread-257463][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 14:09:05,618 [DEBUG][       Thread-257463][   transport.py][1871] : client lang: <none>
2025-06-13 14:09:05,618 [DEBUG][       Thread-257463][   transport.py][1871] : server lang: <none>
2025-06-13 14:09:05,618 [DEBUG][       Thread-257463][   transport.py][1871] : kex follows: False
2025-06-13 14:09:05,618 [DEBUG][       Thread-257463][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 14:09:05,618 [DEBUG][       Thread-257463][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 14:09:05,618 [DEBUG][       Thread-257463][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 14:09:05,618 [DEBUG][       Thread-257463][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 14:09:05,618 [DEBUG][       Thread-257463][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 14:09:05,618 [DEBUG][       Thread-257463][   transport.py][1871] : Compression: none
2025-06-13 14:09:05,619 [DEBUG][       Thread-257463][   transport.py][1871] : === End of kex handshake ===
2025-06-13 14:09:05,677 [DEBUG][       Thread-257463][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 14:09:05,677 [DEBUG][       Thread-257463][   transport.py][1871] : Switch to new keys ...
2025-06-13 14:09:05,677 [DEBUG][       Thread-257463][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 14:09:05,677 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 14:09:05,677 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 14:09:05,737 [DEBUG][       Thread-257463][   transport.py][1871] : userauth is OK
2025-06-13 14:09:05,737 [DEBUG][       Thread-257463][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 14:09:05,737 [DEBUG][       Thread-257463][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 14:09:05,737 [DEBUG][       Thread-257463][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 14:09:05,737 [DEBUG][       Thread-257463][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 14:09:05,751 [ INFO][       Thread-257463][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 14:09:05,751 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 14:09:05,751 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 14:09:06,776 [DEBUG][       Thread-257463][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 14:09:06,776 [DEBUG][       Thread-257463][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 14:09:06,824 [DEBUG][       Thread-257463][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 14:09:06,824 [DEBUG][       Thread-257463][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 14:09:06,833 [DEBUG][       Thread-257463][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 14:09:06,842 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 14:09:06,842 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 14:09:06,851 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 14:09:06,860 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 14:09:06,861 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 14:09:06,861 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 14:09:06,869 [DEBUG][       Thread-257463][   transport.py][1871] : EOF in transport thread
2025-06-13 14:09:09,042 [DEBUG][Thread-257465 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:09:16,872 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 14:09:16,872 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 14:09:16,872 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 14:09:16,875 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 14:09:17,275 [DEBUG][Thread-257466 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:09:17,347 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 14, 9, 3), 17.56, 29.31, 0.0, 22.0, 13.52, 0, 0, 0, 2, 0, 0),)
2025-06-13 14:09:17,347 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 14:09:03
2025-06-13 14:09:17,428 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 14:09:17,435 [DEBUG][       Thread-257467][   transport.py][1871] : starting thread (client mode): 0x84206470
2025-06-13 14:09:17,435 [DEBUG][       Thread-257467][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 14:09:17,456 [DEBUG][       Thread-257467][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 14:09:17,456 [ INFO][       Thread-257467][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 14:09:17,459 [DEBUG][       Thread-257467][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 14:09:17,459 [DEBUG][       Thread-257467][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 14:09:17,459 [DEBUG][       Thread-257467][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 14:09:17,459 [DEBUG][       Thread-257467][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:09:17,459 [DEBUG][       Thread-257467][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:09:17,459 [DEBUG][       Thread-257467][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:09:17,459 [DEBUG][       Thread-257467][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:09:17,459 [DEBUG][       Thread-257467][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 14:09:17,459 [DEBUG][       Thread-257467][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 14:09:17,459 [DEBUG][       Thread-257467][   transport.py][1871] : client lang: <none>
2025-06-13 14:09:17,459 [DEBUG][       Thread-257467][   transport.py][1871] : server lang: <none>
2025-06-13 14:09:17,459 [DEBUG][       Thread-257467][   transport.py][1871] : kex follows: False
2025-06-13 14:09:17,459 [DEBUG][       Thread-257467][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 14:09:17,459 [DEBUG][       Thread-257467][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 14:09:17,459 [DEBUG][       Thread-257467][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 14:09:17,459 [DEBUG][       Thread-257467][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 14:09:17,459 [DEBUG][       Thread-257467][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 14:09:17,459 [DEBUG][       Thread-257467][   transport.py][1871] : Compression: none
2025-06-13 14:09:17,459 [DEBUG][       Thread-257467][   transport.py][1871] : === End of kex handshake ===
2025-06-13 14:09:17,477 [DEBUG][       Thread-257467][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 14:09:17,477 [DEBUG][       Thread-257467][   transport.py][1871] : Switch to new keys ...
2025-06-13 14:09:17,478 [DEBUG][       Thread-257467][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 14:09:17,478 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 14:09:17,478 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 14:09:17,479 [DEBUG][       Thread-257467][   transport.py][1871] : userauth is OK
2025-06-13 14:09:17,504 [ INFO][       Thread-257467][   transport.py][1871] : Authentication (password) successful!
2025-06-13 14:09:17,505 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 14:09:18,064 [DEBUG][Thread-257469 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:09:18,162 [DEBUG][       Thread-257467][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 14:09:18,162 [DEBUG][       Thread-257467][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 14:09:18,205 [DEBUG][       Thread-257467][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 14:09:18,205 [DEBUG][       Thread-257467][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 14:09:18,208 [DEBUG][       Thread-257467][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 14:09:18,222 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 14:09:18,222 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 14:09:18,224 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 14:09:18,227 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 14:09:18,233 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 14:09:18,235 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 14:09:18,235 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 14:09:18,236 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 14:09:18,236 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.506187 -999.00  +13.50  25.92     34   -1.70 1 1 1 1 1   887    0 15.80 33.64 ----- 19.3 25.9 56.4 27.9 17.8 -30.4 16.7 -32.2 17.0 -30.8 18.3 -28.6
2025-06-13 14:09:18,236 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 14:09:18,236 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 14:09:18,236 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.506187
2025-06-13 14:09:18,237 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 14:09:18,237 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 14:09:18,238 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 14:09:18,238 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 14:09:18,238 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 14:09:18,238 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T14:09:03', tmtdew=17.56, humidity=29.31, cloud=0.0, wind=22.0, temperature=13.52, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T12:08:54.557', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 14:09:18,239 [DEBUG][       Thread-257467][   transport.py][1871] : EOF in transport thread
2025-06-13 14:09:18,322 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 14:09:18,334 [DEBUG][       Thread-257471][   transport.py][1871] : starting thread (client mode): 0x867b78e0
2025-06-13 14:09:18,334 [DEBUG][       Thread-257471][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 14:09:18,349 [DEBUG][       Thread-257471][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 14:09:18,349 [ INFO][       Thread-257471][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 14:09:18,357 [DEBUG][       Thread-257471][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 14:09:18,357 [DEBUG][       Thread-257471][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 14:09:18,357 [DEBUG][       Thread-257471][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 14:09:18,357 [DEBUG][       Thread-257471][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:09:18,358 [DEBUG][       Thread-257471][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:09:18,358 [DEBUG][       Thread-257471][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:09:18,358 [DEBUG][       Thread-257471][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:09:18,358 [DEBUG][       Thread-257471][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 14:09:18,358 [DEBUG][       Thread-257471][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 14:09:18,358 [DEBUG][       Thread-257471][   transport.py][1871] : client lang: <none>
2025-06-13 14:09:18,358 [DEBUG][       Thread-257471][   transport.py][1871] : server lang: <none>
2025-06-13 14:09:18,358 [DEBUG][       Thread-257471][   transport.py][1871] : kex follows: False
2025-06-13 14:09:18,358 [DEBUG][       Thread-257471][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 14:09:18,358 [DEBUG][       Thread-257471][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 14:09:18,358 [DEBUG][       Thread-257471][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 14:09:18,358 [DEBUG][       Thread-257471][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 14:09:18,358 [DEBUG][       Thread-257471][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 14:09:18,358 [DEBUG][       Thread-257471][   transport.py][1871] : Compression: none
2025-06-13 14:09:18,358 [DEBUG][       Thread-257471][   transport.py][1871] : === End of kex handshake ===
2025-06-13 14:09:18,414 [DEBUG][       Thread-257471][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 14:09:18,414 [DEBUG][       Thread-257471][   transport.py][1871] : Switch to new keys ...
2025-06-13 14:09:18,415 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 14:09:18,416 [DEBUG][       Thread-257471][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 14:09:18,416 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 14:09:18,470 [DEBUG][       Thread-257471][   transport.py][1871] : userauth is OK
2025-06-13 14:09:18,470 [DEBUG][       Thread-257471][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 14:09:18,470 [DEBUG][       Thread-257471][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 14:09:18,471 [DEBUG][       Thread-257471][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 14:09:18,471 [DEBUG][       Thread-257471][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 14:09:18,491 [ INFO][       Thread-257471][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 14:09:18,491 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 14:09:18,492 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 14:09:19,523 [DEBUG][       Thread-257471][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 14:09:19,523 [DEBUG][       Thread-257471][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 14:09:19,571 [DEBUG][       Thread-257471][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 14:09:19,571 [DEBUG][       Thread-257471][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 14:09:19,580 [DEBUG][       Thread-257471][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 14:09:19,589 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 14:09:19,589 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 14:09:19,602 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 14:09:19,612 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 14:09:19,612 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 14:09:19,613 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 14:09:19,620 [DEBUG][       Thread-257471][   transport.py][1871] : EOF in transport thread
2025-06-13 14:09:19,733 [DEBUG][Thread-257473 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:09:20,813 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:09:20,813 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:09:27,084 [DEBUG][Thread-257474 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:09:29,620 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 14:09:29,620 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 14:09:29,620 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 14:09:29,621 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 14:09:30,112 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 14, 9, 3), 17.56, 29.31, 0.0, 22.0, 13.52, 0, 0, 0, 2, 0, 0),)
2025-06-13 14:09:30,113 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 14:09:03
2025-06-13 14:09:30,199 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 14:09:30,203 [DEBUG][       Thread-257475][   transport.py][1871] : starting thread (client mode): 0x86353850
2025-06-13 14:09:30,203 [DEBUG][       Thread-257475][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 14:09:30,224 [DEBUG][       Thread-257475][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 14:09:30,224 [ INFO][       Thread-257475][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 14:09:30,227 [DEBUG][       Thread-257475][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 14:09:30,227 [DEBUG][       Thread-257475][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 14:09:30,227 [DEBUG][       Thread-257475][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 14:09:30,227 [DEBUG][       Thread-257475][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:09:30,227 [DEBUG][       Thread-257475][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:09:30,227 [DEBUG][       Thread-257475][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:09:30,227 [DEBUG][       Thread-257475][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:09:30,227 [DEBUG][       Thread-257475][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 14:09:30,227 [DEBUG][       Thread-257475][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 14:09:30,227 [DEBUG][       Thread-257475][   transport.py][1871] : client lang: <none>
2025-06-13 14:09:30,227 [DEBUG][       Thread-257475][   transport.py][1871] : server lang: <none>
2025-06-13 14:09:30,227 [DEBUG][       Thread-257475][   transport.py][1871] : kex follows: False
2025-06-13 14:09:30,227 [DEBUG][       Thread-257475][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 14:09:30,228 [DEBUG][       Thread-257475][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 14:09:30,228 [DEBUG][       Thread-257475][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 14:09:30,228 [DEBUG][       Thread-257475][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 14:09:30,228 [DEBUG][       Thread-257475][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 14:09:30,228 [DEBUG][       Thread-257475][   transport.py][1871] : Compression: none
2025-06-13 14:09:30,228 [DEBUG][       Thread-257475][   transport.py][1871] : === End of kex handshake ===
2025-06-13 14:09:30,243 [DEBUG][       Thread-257475][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 14:09:30,243 [DEBUG][       Thread-257475][   transport.py][1871] : Switch to new keys ...
2025-06-13 14:09:30,243 [DEBUG][       Thread-257475][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 14:09:30,243 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 14:09:30,243 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 14:09:30,244 [DEBUG][       Thread-257475][   transport.py][1871] : userauth is OK
2025-06-13 14:09:30,268 [ INFO][       Thread-257475][   transport.py][1871] : Authentication (password) successful!
2025-06-13 14:09:30,268 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 14:09:30,882 [DEBUG][       Thread-257475][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 14:09:30,882 [DEBUG][       Thread-257475][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 14:09:30,925 [DEBUG][       Thread-257475][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 14:09:30,925 [DEBUG][       Thread-257475][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 14:09:30,929 [DEBUG][       Thread-257475][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 14:09:30,941 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 14:09:30,942 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 14:09:30,944 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 14:09:30,947 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 14:09:30,955 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 14:09:30,958 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 14:09:30,958 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 14:09:30,959 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 14:09:30,959 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.506187 -999.00  +13.50  25.92     34   -1.70 1 1 1 1 1   887    0 15.80 33.64 ----- 19.3 25.9 56.4 27.9 17.8 -30.4 16.7 -32.2 17.0 -30.8 18.3 -28.6
2025-06-13 14:09:30,959 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 14:09:30,959 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 14:09:30,959 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.506187
2025-06-13 14:09:30,960 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 14:09:30,961 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 14:09:30,961 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 14:09:30,961 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 14:09:30,961 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 14:09:30,962 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T14:09:03', tmtdew=17.56, humidity=29.31, cloud=0.0, wind=22.0, temperature=13.52, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T12:08:54.557', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 14:09:30,962 [DEBUG][       Thread-257475][   transport.py][1871] : EOF in transport thread
2025-06-13 14:09:31,048 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 14:09:31,058 [DEBUG][       Thread-257478][   transport.py][1871] : starting thread (client mode): 0x84206020
2025-06-13 14:09:31,058 [DEBUG][       Thread-257478][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 14:09:31,073 [DEBUG][       Thread-257478][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 14:09:31,073 [ INFO][       Thread-257478][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 14:09:31,081 [DEBUG][       Thread-257478][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 14:09:31,081 [DEBUG][       Thread-257478][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 14:09:31,081 [DEBUG][       Thread-257478][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 14:09:31,082 [DEBUG][       Thread-257478][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:09:31,082 [DEBUG][       Thread-257478][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:09:31,082 [DEBUG][       Thread-257478][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:09:31,082 [DEBUG][       Thread-257478][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:09:31,082 [DEBUG][       Thread-257478][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 14:09:31,082 [DEBUG][       Thread-257478][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 14:09:31,082 [DEBUG][       Thread-257478][   transport.py][1871] : client lang: <none>
2025-06-13 14:09:31,082 [DEBUG][       Thread-257478][   transport.py][1871] : server lang: <none>
2025-06-13 14:09:31,082 [DEBUG][       Thread-257478][   transport.py][1871] : kex follows: False
2025-06-13 14:09:31,082 [DEBUG][       Thread-257478][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 14:09:31,082 [DEBUG][       Thread-257478][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 14:09:31,082 [DEBUG][       Thread-257478][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 14:09:31,082 [DEBUG][       Thread-257478][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 14:09:31,082 [DEBUG][       Thread-257478][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 14:09:31,082 [DEBUG][       Thread-257478][   transport.py][1871] : Compression: none
2025-06-13 14:09:31,082 [DEBUG][       Thread-257478][   transport.py][1871] : === End of kex handshake ===
2025-06-13 14:09:31,142 [DEBUG][       Thread-257478][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 14:09:31,143 [DEBUG][       Thread-257478][   transport.py][1871] : Switch to new keys ...
2025-06-13 14:09:31,143 [DEBUG][       Thread-257478][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 14:09:31,144 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 14:09:31,145 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 14:09:31,198 [DEBUG][       Thread-257478][   transport.py][1871] : userauth is OK
2025-06-13 14:09:31,198 [DEBUG][       Thread-257478][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 14:09:31,199 [DEBUG][       Thread-257478][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 14:09:31,199 [DEBUG][       Thread-257478][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 14:09:31,199 [DEBUG][       Thread-257478][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 14:09:31,218 [ INFO][       Thread-257478][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 14:09:31,218 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 14:09:31,219 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 14:09:32,261 [DEBUG][       Thread-257478][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 14:09:32,261 [DEBUG][       Thread-257478][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 14:09:32,312 [DEBUG][       Thread-257478][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 14:09:32,312 [DEBUG][       Thread-257478][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 14:09:32,321 [DEBUG][       Thread-257478][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 14:09:32,331 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 14:09:32,331 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 14:09:32,340 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 14:09:32,349 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 14:09:32,350 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 14:09:32,350 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 14:09:32,358 [DEBUG][       Thread-257478][   transport.py][1871] : EOF in transport thread
2025-06-13 14:09:36,109 [DEBUG][Thread-257480 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:09:42,360 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 14:09:42,361 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 14:09:42,361 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 14:09:42,364 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 14:09:42,829 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 14, 9, 35), 17.28, 30.09, 0.0, 22.74, 13.66, 0, 0, 0, 2, 0, 0),)
2025-06-13 14:09:42,829 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 14:09:35
2025-06-13 14:09:42,910 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 14:09:42,916 [DEBUG][       Thread-257481][   transport.py][1871] : starting thread (client mode): 0x863521d0
2025-06-13 14:09:42,916 [DEBUG][       Thread-257481][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 14:09:42,937 [DEBUG][       Thread-257481][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 14:09:42,937 [ INFO][       Thread-257481][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 14:09:42,938 [DEBUG][       Thread-257481][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 14:09:42,938 [DEBUG][       Thread-257481][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 14:09:42,938 [DEBUG][       Thread-257481][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 14:09:42,938 [DEBUG][       Thread-257481][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:09:42,938 [DEBUG][       Thread-257481][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:09:42,938 [DEBUG][       Thread-257481][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:09:42,938 [DEBUG][       Thread-257481][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:09:42,938 [DEBUG][       Thread-257481][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 14:09:42,938 [DEBUG][       Thread-257481][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 14:09:42,938 [DEBUG][       Thread-257481][   transport.py][1871] : client lang: <none>
2025-06-13 14:09:42,938 [DEBUG][       Thread-257481][   transport.py][1871] : server lang: <none>
2025-06-13 14:09:42,938 [DEBUG][       Thread-257481][   transport.py][1871] : kex follows: False
2025-06-13 14:09:42,938 [DEBUG][       Thread-257481][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 14:09:42,938 [DEBUG][       Thread-257481][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 14:09:42,938 [DEBUG][       Thread-257481][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 14:09:42,938 [DEBUG][       Thread-257481][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 14:09:42,938 [DEBUG][       Thread-257481][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 14:09:42,938 [DEBUG][       Thread-257481][   transport.py][1871] : Compression: none
2025-06-13 14:09:42,938 [DEBUG][       Thread-257481][   transport.py][1871] : === End of kex handshake ===
2025-06-13 14:09:42,953 [DEBUG][       Thread-257481][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 14:09:42,954 [DEBUG][       Thread-257481][   transport.py][1871] : Switch to new keys ...
2025-06-13 14:09:42,954 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 14:09:42,955 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 14:09:42,955 [DEBUG][       Thread-257481][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 14:09:42,956 [DEBUG][       Thread-257481][   transport.py][1871] : userauth is OK
2025-06-13 14:09:42,968 [ INFO][       Thread-257481][   transport.py][1871] : Authentication (password) successful!
2025-06-13 14:09:42,969 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 14:09:43,567 [DEBUG][       Thread-257481][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 14:09:43,567 [DEBUG][       Thread-257481][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 14:09:43,609 [DEBUG][       Thread-257481][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 14:09:43,609 [DEBUG][       Thread-257481][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 14:09:43,612 [DEBUG][       Thread-257481][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 14:09:43,620 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 14:09:43,621 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 14:09:43,623 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 14:09:43,624 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 14:09:43,630 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 14:09:43,632 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 14:09:43,632 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 14:09:43,633 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 14:09:43,633 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.506534 -999.00  +13.60  18.92     34   -1.90 1 1 1 1 1   887    0 16.01 38.81 ----- 22.3 18.9 55.8 25.1 17.8 -30.6 16.8 -32.8 17.1 -30.7 18.4 -28.4
2025-06-13 14:09:43,633 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 14:09:43,633 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 14:09:43,633 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.506534
2025-06-13 14:09:43,634 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 14:09:43,634 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 14:09:43,634 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 14:09:43,634 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 14:09:43,634 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 14:09:43,634 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T14:09:35', tmtdew=17.28, humidity=30.09, cloud=0.0, wind=22.74, temperature=13.66, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T12:09:24.538', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 14:09:43,635 [DEBUG][       Thread-257481][   transport.py][1871] : EOF in transport thread
2025-06-13 14:09:43,721 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 14:09:43,732 [DEBUG][       Thread-257484][   transport.py][1871] : starting thread (client mode): 0x86893fd0
2025-06-13 14:09:43,732 [DEBUG][       Thread-257484][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 14:09:43,748 [DEBUG][       Thread-257484][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 14:09:43,748 [ INFO][       Thread-257484][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 14:09:43,756 [DEBUG][       Thread-257484][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 14:09:43,756 [DEBUG][       Thread-257484][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 14:09:43,756 [DEBUG][       Thread-257484][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 14:09:43,756 [DEBUG][       Thread-257484][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:09:43,756 [DEBUG][       Thread-257484][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:09:43,756 [DEBUG][       Thread-257484][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:09:43,756 [DEBUG][       Thread-257484][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:09:43,756 [DEBUG][       Thread-257484][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 14:09:43,756 [DEBUG][       Thread-257484][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 14:09:43,756 [DEBUG][       Thread-257484][   transport.py][1871] : client lang: <none>
2025-06-13 14:09:43,756 [DEBUG][       Thread-257484][   transport.py][1871] : server lang: <none>
2025-06-13 14:09:43,756 [DEBUG][       Thread-257484][   transport.py][1871] : kex follows: False
2025-06-13 14:09:43,756 [DEBUG][       Thread-257484][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 14:09:43,756 [DEBUG][       Thread-257484][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 14:09:43,756 [DEBUG][       Thread-257484][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 14:09:43,757 [DEBUG][       Thread-257484][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 14:09:43,757 [DEBUG][       Thread-257484][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 14:09:43,757 [DEBUG][       Thread-257484][   transport.py][1871] : Compression: none
2025-06-13 14:09:43,757 [DEBUG][       Thread-257484][   transport.py][1871] : === End of kex handshake ===
2025-06-13 14:09:43,814 [DEBUG][       Thread-257484][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 14:09:43,814 [DEBUG][       Thread-257484][   transport.py][1871] : Switch to new keys ...
2025-06-13 14:09:43,815 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 14:09:43,815 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 14:09:43,815 [DEBUG][       Thread-257484][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 14:09:43,870 [DEBUG][       Thread-257484][   transport.py][1871] : userauth is OK
2025-06-13 14:09:43,870 [DEBUG][       Thread-257484][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 14:09:43,870 [DEBUG][       Thread-257484][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 14:09:43,870 [DEBUG][       Thread-257484][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 14:09:43,870 [DEBUG][       Thread-257484][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 14:09:43,889 [ INFO][       Thread-257484][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 14:09:43,890 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 14:09:43,890 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 14:09:44,962 [DEBUG][       Thread-257484][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 14:09:44,962 [DEBUG][       Thread-257484][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 14:09:45,012 [DEBUG][       Thread-257484][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 14:09:45,012 [DEBUG][       Thread-257484][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 14:09:45,024 [DEBUG][       Thread-257484][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 14:09:45,038 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 14:09:45,038 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 14:09:45,047 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 14:09:45,057 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 14:09:45,057 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 14:09:45,058 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 14:09:45,066 [DEBUG][       Thread-257484][   transport.py][1871] : EOF in transport thread
2025-06-13 14:09:45,130 [DEBUG][Thread-257486 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:09:54,163 [DEBUG][Thread-257487 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:09:55,068 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 14:09:55,068 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 14:09:55,068 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 14:09:55,071 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 14:09:55,535 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 14, 9, 35), 17.28, 30.09, 0.0, 22.74, 13.66, 0, 0, 0, 2, 0, 0),)
2025-06-13 14:09:55,535 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 14:09:35
2025-06-13 14:09:55,616 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 14:09:55,620 [DEBUG][       Thread-257488][   transport.py][1871] : starting thread (client mode): 0x86353b80
2025-06-13 14:09:55,621 [DEBUG][       Thread-257488][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 14:09:55,641 [DEBUG][       Thread-257488][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 14:09:55,641 [ INFO][       Thread-257488][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 14:09:55,643 [DEBUG][       Thread-257488][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 14:09:55,643 [DEBUG][       Thread-257488][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 14:09:55,643 [DEBUG][       Thread-257488][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 14:09:55,643 [DEBUG][       Thread-257488][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:09:55,643 [DEBUG][       Thread-257488][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:09:55,643 [DEBUG][       Thread-257488][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:09:55,643 [DEBUG][       Thread-257488][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:09:55,644 [DEBUG][       Thread-257488][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 14:09:55,644 [DEBUG][       Thread-257488][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 14:09:55,644 [DEBUG][       Thread-257488][   transport.py][1871] : client lang: <none>
2025-06-13 14:09:55,644 [DEBUG][       Thread-257488][   transport.py][1871] : server lang: <none>
2025-06-13 14:09:55,644 [DEBUG][       Thread-257488][   transport.py][1871] : kex follows: False
2025-06-13 14:09:55,644 [DEBUG][       Thread-257488][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 14:09:55,644 [DEBUG][       Thread-257488][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 14:09:55,644 [DEBUG][       Thread-257488][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 14:09:55,644 [DEBUG][       Thread-257488][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 14:09:55,644 [DEBUG][       Thread-257488][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 14:09:55,644 [DEBUG][       Thread-257488][   transport.py][1871] : Compression: none
2025-06-13 14:09:55,644 [DEBUG][       Thread-257488][   transport.py][1871] : === End of kex handshake ===
2025-06-13 14:09:55,656 [DEBUG][       Thread-257488][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 14:09:55,657 [DEBUG][       Thread-257488][   transport.py][1871] : Switch to new keys ...
2025-06-13 14:09:55,657 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 14:09:55,657 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 14:09:55,658 [DEBUG][       Thread-257488][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 14:09:55,658 [DEBUG][       Thread-257488][   transport.py][1871] : userauth is OK
2025-06-13 14:09:55,672 [ INFO][       Thread-257488][   transport.py][1871] : Authentication (password) successful!
2025-06-13 14:09:55,672 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 14:09:56,274 [DEBUG][       Thread-257488][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 14:09:56,274 [DEBUG][       Thread-257488][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 14:09:56,317 [DEBUG][       Thread-257488][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 14:09:56,317 [DEBUG][       Thread-257488][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 14:09:56,321 [DEBUG][       Thread-257488][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 14:09:56,331 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 14:09:56,332 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 14:09:56,334 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 14:09:56,336 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 14:09:56,342 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 14:09:56,344 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 14:09:56,344 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 14:09:56,345 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 14:09:56,345 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.506534 -999.00  +13.60  18.92     34   -1.90 1 1 1 1 1   887    0 16.01 38.81 ----- 22.3 18.9 55.8 25.1 17.8 -30.6 16.8 -32.8 17.1 -30.7 18.4 -28.4
2025-06-13 14:09:56,345 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 14:09:56,345 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 14:09:56,345 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.506534
2025-06-13 14:09:56,346 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 14:09:56,346 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 14:09:56,346 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 14:09:56,346 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 14:09:56,346 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 14:09:56,347 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T14:09:35', tmtdew=17.28, humidity=30.09, cloud=0.0, wind=22.74, temperature=13.66, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T12:09:24.538', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 14:09:56,348 [DEBUG][       Thread-257488][   transport.py][1871] : EOF in transport thread
2025-06-13 14:09:56,430 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 14:09:56,439 [DEBUG][       Thread-257491][   transport.py][1871] : starting thread (client mode): 0x86368be0
2025-06-13 14:09:56,439 [DEBUG][       Thread-257491][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 14:09:56,455 [DEBUG][       Thread-257491][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 14:09:56,455 [ INFO][       Thread-257491][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 14:09:56,462 [DEBUG][       Thread-257491][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 14:09:56,463 [DEBUG][       Thread-257491][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 14:09:56,463 [DEBUG][       Thread-257491][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 14:09:56,463 [DEBUG][       Thread-257491][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:09:56,463 [DEBUG][       Thread-257491][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:09:56,463 [DEBUG][       Thread-257491][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:09:56,463 [DEBUG][       Thread-257491][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:09:56,463 [DEBUG][       Thread-257491][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 14:09:56,463 [DEBUG][       Thread-257491][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 14:09:56,463 [DEBUG][       Thread-257491][   transport.py][1871] : client lang: <none>
2025-06-13 14:09:56,463 [DEBUG][       Thread-257491][   transport.py][1871] : server lang: <none>
2025-06-13 14:09:56,463 [DEBUG][       Thread-257491][   transport.py][1871] : kex follows: False
2025-06-13 14:09:56,463 [DEBUG][       Thread-257491][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 14:09:56,463 [DEBUG][       Thread-257491][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 14:09:56,463 [DEBUG][       Thread-257491][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 14:09:56,463 [DEBUG][       Thread-257491][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 14:09:56,463 [DEBUG][       Thread-257491][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 14:09:56,463 [DEBUG][       Thread-257491][   transport.py][1871] : Compression: none
2025-06-13 14:09:56,463 [DEBUG][       Thread-257491][   transport.py][1871] : === End of kex handshake ===
2025-06-13 14:09:56,522 [DEBUG][       Thread-257491][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 14:09:56,522 [DEBUG][       Thread-257491][   transport.py][1871] : Switch to new keys ...
2025-06-13 14:09:56,523 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 14:09:56,524 [DEBUG][       Thread-257491][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 14:09:56,525 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 14:09:56,578 [DEBUG][       Thread-257491][   transport.py][1871] : userauth is OK
2025-06-13 14:09:56,578 [DEBUG][       Thread-257491][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 14:09:56,579 [DEBUG][       Thread-257491][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 14:09:56,579 [DEBUG][       Thread-257491][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 14:09:56,579 [DEBUG][       Thread-257491][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 14:09:56,598 [ INFO][       Thread-257491][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 14:09:56,598 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 14:09:56,599 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 14:09:57,641 [DEBUG][       Thread-257491][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 14:09:57,641 [DEBUG][       Thread-257491][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 14:09:57,692 [DEBUG][       Thread-257491][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 14:09:57,693 [DEBUG][       Thread-257491][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 14:09:57,702 [DEBUG][       Thread-257491][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 14:09:57,711 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 14:09:57,711 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 14:09:57,720 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 14:09:57,730 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 14:09:57,730 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 14:09:57,731 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 14:09:57,739 [DEBUG][       Thread-257491][   transport.py][1871] : EOF in transport thread
2025-06-13 14:09:58,328 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:09:58,329 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:10:03,185 [DEBUG][Thread-257493 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:10:07,740 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 14:10:07,740 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 14:10:07,740 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 14:10:07,741 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 14:10:08,239 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 14, 9, 35), 17.28, 30.09, 0.0, 22.74, 13.66, 0, 0, 0, 2, 0, 0),)
2025-06-13 14:10:08,239 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 14:09:35
2025-06-13 14:10:08,329 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 14:10:08,334 [DEBUG][       Thread-257494][   transport.py][1871] : starting thread (client mode): 0x867fe770
2025-06-13 14:10:08,334 [DEBUG][       Thread-257494][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 14:10:08,354 [DEBUG][       Thread-257494][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 14:10:08,355 [ INFO][       Thread-257494][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 14:10:08,358 [DEBUG][       Thread-257494][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 14:10:08,358 [DEBUG][       Thread-257494][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 14:10:08,358 [DEBUG][       Thread-257494][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 14:10:08,358 [DEBUG][       Thread-257494][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:10:08,358 [DEBUG][       Thread-257494][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:10:08,358 [DEBUG][       Thread-257494][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:10:08,358 [DEBUG][       Thread-257494][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:10:08,358 [DEBUG][       Thread-257494][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 14:10:08,358 [DEBUG][       Thread-257494][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 14:10:08,358 [DEBUG][       Thread-257494][   transport.py][1871] : client lang: <none>
2025-06-13 14:10:08,358 [DEBUG][       Thread-257494][   transport.py][1871] : server lang: <none>
2025-06-13 14:10:08,358 [DEBUG][       Thread-257494][   transport.py][1871] : kex follows: False
2025-06-13 14:10:08,358 [DEBUG][       Thread-257494][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 14:10:08,358 [DEBUG][       Thread-257494][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 14:10:08,358 [DEBUG][       Thread-257494][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 14:10:08,358 [DEBUG][       Thread-257494][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 14:10:08,358 [DEBUG][       Thread-257494][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 14:10:08,358 [DEBUG][       Thread-257494][   transport.py][1871] : Compression: none
2025-06-13 14:10:08,358 [DEBUG][       Thread-257494][   transport.py][1871] : === End of kex handshake ===
2025-06-13 14:10:08,372 [DEBUG][       Thread-257494][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 14:10:08,372 [DEBUG][       Thread-257494][   transport.py][1871] : Switch to new keys ...
2025-06-13 14:10:08,373 [DEBUG][       Thread-257494][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 14:10:08,373 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 14:10:08,373 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 14:10:08,373 [DEBUG][       Thread-257494][   transport.py][1871] : userauth is OK
2025-06-13 14:10:08,386 [ INFO][       Thread-257494][   transport.py][1871] : Authentication (password) successful!
2025-06-13 14:10:08,386 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 14:10:12,207 [DEBUG][Thread-257496 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:10:17,250 [DEBUG][       Thread-257494][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 14:10:17,251 [DEBUG][       Thread-257494][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 14:10:17,293 [DEBUG][       Thread-257494][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 14:10:17,293 [DEBUG][       Thread-257494][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 14:10:17,296 [DEBUG][       Thread-257494][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 14:10:17,307 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 14:10:17,307 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 14:10:17,308 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 14:10:17,309 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 14:10:17,312 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 14:10:17,313 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 14:10:17,313 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 14:10:17,313 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 14:10:17,313 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.506534 -999.00  +13.60  18.92     34   -1.90 1 1 1 1 1   887    0 16.01 38.81 ----- 22.3 18.9 55.8 25.1 17.8 -30.6 16.8 -32.8 17.1 -30.7 18.4 -28.4
2025-06-13 14:10:17,313 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 14:10:17,313 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 14:10:17,313 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.506534
2025-06-13 14:10:17,314 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 14:10:17,314 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 14:10:17,314 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 14:10:17,314 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 14:10:17,314 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 14:10:17,314 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T14:09:35', tmtdew=17.28, humidity=30.09, cloud=0.0, wind=22.74, temperature=13.66, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T12:09:24.538', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 14:10:17,314 [DEBUG][       Thread-257494][   transport.py][1871] : EOF in transport thread
2025-06-13 14:10:17,327 [DEBUG][Thread-257498 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:10:17,394 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 14:10:17,406 [DEBUG][       Thread-257499][   transport.py][1871] : starting thread (client mode): 0x868c8070
2025-06-13 14:10:17,406 [DEBUG][       Thread-257499][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 14:10:17,421 [DEBUG][       Thread-257499][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 14:10:17,421 [ INFO][       Thread-257499][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 14:10:17,429 [DEBUG][       Thread-257499][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 14:10:17,429 [DEBUG][       Thread-257499][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 14:10:17,429 [DEBUG][       Thread-257499][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 14:10:17,429 [DEBUG][       Thread-257499][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:10:17,429 [DEBUG][       Thread-257499][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:10:17,429 [DEBUG][       Thread-257499][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:10:17,429 [DEBUG][       Thread-257499][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:10:17,429 [DEBUG][       Thread-257499][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 14:10:17,429 [DEBUG][       Thread-257499][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 14:10:17,429 [DEBUG][       Thread-257499][   transport.py][1871] : client lang: <none>
2025-06-13 14:10:17,429 [DEBUG][       Thread-257499][   transport.py][1871] : server lang: <none>
2025-06-13 14:10:17,429 [DEBUG][       Thread-257499][   transport.py][1871] : kex follows: False
2025-06-13 14:10:17,430 [DEBUG][       Thread-257499][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 14:10:17,430 [DEBUG][       Thread-257499][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 14:10:17,430 [DEBUG][       Thread-257499][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 14:10:17,430 [DEBUG][       Thread-257499][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 14:10:17,430 [DEBUG][       Thread-257499][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 14:10:17,430 [DEBUG][       Thread-257499][   transport.py][1871] : Compression: none
2025-06-13 14:10:17,430 [DEBUG][       Thread-257499][   transport.py][1871] : === End of kex handshake ===
2025-06-13 14:10:17,490 [DEBUG][       Thread-257499][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 14:10:17,491 [DEBUG][       Thread-257499][   transport.py][1871] : Switch to new keys ...
2025-06-13 14:10:17,492 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 14:10:17,492 [DEBUG][       Thread-257499][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 14:10:17,493 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 14:10:17,547 [DEBUG][       Thread-257499][   transport.py][1871] : userauth is OK
2025-06-13 14:10:17,547 [DEBUG][       Thread-257499][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 14:10:17,548 [DEBUG][       Thread-257499][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 14:10:17,548 [DEBUG][       Thread-257499][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 14:10:17,548 [DEBUG][       Thread-257499][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 14:10:17,568 [ INFO][       Thread-257499][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 14:10:17,569 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 14:10:17,569 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 14:10:18,600 [DEBUG][       Thread-257499][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 14:10:18,600 [DEBUG][       Thread-257499][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 14:10:18,656 [DEBUG][       Thread-257499][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 14:10:18,656 [DEBUG][       Thread-257499][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 14:10:18,665 [DEBUG][       Thread-257499][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 14:10:18,675 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 14:10:18,675 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 14:10:18,684 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 14:10:18,693 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 14:10:18,693 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 14:10:18,694 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 14:10:18,702 [DEBUG][       Thread-257499][   transport.py][1871] : EOF in transport thread
2025-06-13 14:10:20,880 [DEBUG][Thread-257501 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:10:21,229 [DEBUG][Thread-257502 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:10:21,961 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:10:21,962 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:10:28,704 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 14:10:28,704 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 14:10:28,704 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 14:10:28,707 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 14:10:29,181 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 14, 10, 7), 17.23, 30.18, 0.0, 18.92, 13.64, 0, 0, 0, 2, 0, 0),)
2025-06-13 14:10:29,181 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 14:10:07
2025-06-13 14:10:29,262 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 14:10:29,266 [DEBUG][       Thread-257503][   transport.py][1871] : starting thread (client mode): 0x842052a0
2025-06-13 14:10:29,266 [DEBUG][       Thread-257503][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 14:10:29,287 [DEBUG][       Thread-257503][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 14:10:29,288 [ INFO][       Thread-257503][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 14:10:29,291 [DEBUG][       Thread-257503][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 14:10:29,291 [DEBUG][       Thread-257503][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 14:10:29,291 [DEBUG][       Thread-257503][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 14:10:29,291 [DEBUG][       Thread-257503][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:10:29,291 [DEBUG][       Thread-257503][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:10:29,291 [DEBUG][       Thread-257503][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:10:29,291 [DEBUG][       Thread-257503][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:10:29,291 [DEBUG][       Thread-257503][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 14:10:29,291 [DEBUG][       Thread-257503][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 14:10:29,291 [DEBUG][       Thread-257503][   transport.py][1871] : client lang: <none>
2025-06-13 14:10:29,291 [DEBUG][       Thread-257503][   transport.py][1871] : server lang: <none>
2025-06-13 14:10:29,291 [DEBUG][       Thread-257503][   transport.py][1871] : kex follows: False
2025-06-13 14:10:29,291 [DEBUG][       Thread-257503][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 14:10:29,291 [DEBUG][       Thread-257503][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 14:10:29,291 [DEBUG][       Thread-257503][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 14:10:29,291 [DEBUG][       Thread-257503][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 14:10:29,291 [DEBUG][       Thread-257503][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 14:10:29,291 [DEBUG][       Thread-257503][   transport.py][1871] : Compression: none
2025-06-13 14:10:29,291 [DEBUG][       Thread-257503][   transport.py][1871] : === End of kex handshake ===
2025-06-13 14:10:29,307 [DEBUG][       Thread-257503][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 14:10:29,308 [DEBUG][       Thread-257503][   transport.py][1871] : Switch to new keys ...
2025-06-13 14:10:29,308 [DEBUG][       Thread-257503][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 14:10:29,308 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 14:10:29,309 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 14:10:29,310 [DEBUG][       Thread-257503][   transport.py][1871] : userauth is OK
2025-06-13 14:10:29,323 [ INFO][       Thread-257503][   transport.py][1871] : Authentication (password) successful!
2025-06-13 14:10:29,324 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 14:10:29,934 [DEBUG][       Thread-257503][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 14:10:29,935 [DEBUG][       Thread-257503][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 14:10:29,977 [DEBUG][       Thread-257503][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 14:10:29,977 [DEBUG][       Thread-257503][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 14:10:29,979 [DEBUG][       Thread-257503][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 14:10:29,990 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 14:10:29,991 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 14:10:29,992 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 14:10:29,994 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 14:10:29,999 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 14:10:30,000 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 14:10:30,000 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 14:10:30,001 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 14:10:30,001 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.506881 -999.00  +13.60  23.16     35   -1.50 1 1 1 1 1   887    0 15.83 36.78 ----- 20.9 23.2 54.2 28.4 17.8 -30.7 16.7 -31.8 17.0 -30.0 18.4 -28.8
2025-06-13 14:10:30,001 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 14:10:30,001 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 14:10:30,001 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.506881
2025-06-13 14:10:30,002 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 14:10:30,002 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 14:10:30,002 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 14:10:30,003 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 14:10:30,003 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 14:10:30,003 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T14:10:07', tmtdew=17.23, humidity=30.18, cloud=0.0, wind=18.92, temperature=13.64, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T12:09:54.518', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 14:10:30,003 [DEBUG][       Thread-257503][   transport.py][1871] : EOF in transport thread
2025-06-13 14:10:30,085 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 14:10:30,094 [DEBUG][       Thread-257506][   transport.py][1871] : starting thread (client mode): 0x8636b2b0
2025-06-13 14:10:30,094 [DEBUG][       Thread-257506][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 14:10:30,108 [DEBUG][       Thread-257506][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 14:10:30,108 [ INFO][       Thread-257506][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 14:10:30,116 [DEBUG][       Thread-257506][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 14:10:30,116 [DEBUG][       Thread-257506][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 14:10:30,116 [DEBUG][       Thread-257506][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 14:10:30,116 [DEBUG][       Thread-257506][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:10:30,116 [DEBUG][       Thread-257506][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:10:30,116 [DEBUG][       Thread-257506][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:10:30,116 [DEBUG][       Thread-257506][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:10:30,116 [DEBUG][       Thread-257506][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 14:10:30,116 [DEBUG][       Thread-257506][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 14:10:30,116 [DEBUG][       Thread-257506][   transport.py][1871] : client lang: <none>
2025-06-13 14:10:30,116 [DEBUG][       Thread-257506][   transport.py][1871] : server lang: <none>
2025-06-13 14:10:30,116 [DEBUG][       Thread-257506][   transport.py][1871] : kex follows: False
2025-06-13 14:10:30,116 [DEBUG][       Thread-257506][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 14:10:30,116 [DEBUG][       Thread-257506][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 14:10:30,116 [DEBUG][       Thread-257506][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 14:10:30,116 [DEBUG][       Thread-257506][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 14:10:30,116 [DEBUG][       Thread-257506][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 14:10:30,116 [DEBUG][       Thread-257506][   transport.py][1871] : Compression: none
2025-06-13 14:10:30,117 [DEBUG][       Thread-257506][   transport.py][1871] : === End of kex handshake ===
2025-06-13 14:10:30,183 [DEBUG][       Thread-257506][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 14:10:30,184 [DEBUG][       Thread-257506][   transport.py][1871] : Switch to new keys ...
2025-06-13 14:10:30,184 [DEBUG][       Thread-257506][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 14:10:30,185 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 14:10:30,185 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 14:10:30,242 [DEBUG][       Thread-257506][   transport.py][1871] : userauth is OK
2025-06-13 14:10:30,242 [DEBUG][       Thread-257506][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 14:10:30,242 [DEBUG][       Thread-257506][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 14:10:30,242 [DEBUG][       Thread-257506][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 14:10:30,242 [DEBUG][       Thread-257506][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 14:10:30,249 [DEBUG][Thread-257508 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:10:30,264 [ INFO][       Thread-257506][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 14:10:30,265 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 14:10:30,265 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 14:10:31,293 [DEBUG][       Thread-257506][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 14:10:31,294 [DEBUG][       Thread-257506][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 14:10:31,343 [DEBUG][       Thread-257506][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 14:10:31,343 [DEBUG][       Thread-257506][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 14:10:31,352 [DEBUG][       Thread-257506][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 14:10:31,361 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 14:10:31,361 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 14:10:31,369 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 14:10:31,378 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 14:10:31,378 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 14:10:31,378 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 14:10:31,386 [DEBUG][       Thread-257506][   transport.py][1871] : EOF in transport thread
2025-06-13 14:10:39,281 [DEBUG][Thread-257509 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:10:41,385 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 14:10:41,385 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 14:10:41,385 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 14:10:41,387 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 14:10:41,856 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 14, 10, 39), 17.18, 30.11, 0.0, 17.56, 13.73, 0, 0, 0, 2, 0, 0),)
2025-06-13 14:10:41,856 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 14:10:39
2025-06-13 14:10:41,938 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 14:10:41,942 [DEBUG][       Thread-257510][   transport.py][1871] : starting thread (client mode): 0x863be0b0
2025-06-13 14:10:41,942 [DEBUG][       Thread-257510][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 14:10:41,956 [DEBUG][       Thread-257510][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 14:10:41,957 [ INFO][       Thread-257510][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 14:10:41,959 [DEBUG][       Thread-257510][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 14:10:41,959 [DEBUG][       Thread-257510][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 14:10:41,959 [DEBUG][       Thread-257510][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 14:10:41,959 [DEBUG][       Thread-257510][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:10:41,959 [DEBUG][       Thread-257510][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:10:41,959 [DEBUG][       Thread-257510][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:10:41,959 [DEBUG][       Thread-257510][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:10:41,959 [DEBUG][       Thread-257510][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 14:10:41,959 [DEBUG][       Thread-257510][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 14:10:41,959 [DEBUG][       Thread-257510][   transport.py][1871] : client lang: <none>
2025-06-13 14:10:41,959 [DEBUG][       Thread-257510][   transport.py][1871] : server lang: <none>
2025-06-13 14:10:41,959 [DEBUG][       Thread-257510][   transport.py][1871] : kex follows: False
2025-06-13 14:10:41,959 [DEBUG][       Thread-257510][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 14:10:41,959 [DEBUG][       Thread-257510][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 14:10:41,960 [DEBUG][       Thread-257510][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 14:10:41,960 [DEBUG][       Thread-257510][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 14:10:41,960 [DEBUG][       Thread-257510][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 14:10:41,960 [DEBUG][       Thread-257510][   transport.py][1871] : Compression: none
2025-06-13 14:10:41,960 [DEBUG][       Thread-257510][   transport.py][1871] : === End of kex handshake ===
2025-06-13 14:10:41,971 [DEBUG][       Thread-257510][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 14:10:41,971 [DEBUG][       Thread-257510][   transport.py][1871] : Switch to new keys ...
2025-06-13 14:10:41,971 [DEBUG][       Thread-257510][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 14:10:41,972 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 14:10:41,972 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 14:10:41,973 [DEBUG][       Thread-257510][   transport.py][1871] : userauth is OK
2025-06-13 14:10:41,997 [ INFO][       Thread-257510][   transport.py][1871] : Authentication (password) successful!
2025-06-13 14:10:41,998 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 14:10:42,599 [DEBUG][       Thread-257510][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 14:10:42,600 [DEBUG][       Thread-257510][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 14:10:42,641 [DEBUG][       Thread-257510][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 14:10:42,641 [DEBUG][       Thread-257510][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 14:10:42,645 [DEBUG][       Thread-257510][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 14:10:42,659 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 14:10:42,659 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 14:10:42,661 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 14:10:42,664 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 14:10:42,670 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 14:10:42,672 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 14:10:42,672 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 14:10:42,673 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 14:10:42,673 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.506881 -999.00  +13.60  23.16     35   -1.50 1 1 1 1 1   887    0 15.83 36.78 ----- 20.9 23.2 54.2 28.4 17.8 -30.7 16.7 -31.8 17.0 -30.0 18.4 -28.8
2025-06-13 14:10:42,673 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 14:10:42,673 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 14:10:42,673 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.506881
2025-06-13 14:10:42,674 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 14:10:42,674 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 14:10:42,674 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 14:10:42,674 [DEBUG][       Thread-257510][   transport.py][1871] : EOF in transport thread
2025-06-13 14:10:42,675 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 14:10:42,675 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 14:10:42,676 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T14:10:39', tmtdew=17.18, humidity=30.11, cloud=0.0, wind=17.56, temperature=13.73, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T12:09:54.518', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 14:10:42,760 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 14:10:42,771 [DEBUG][       Thread-257513][   transport.py][1871] : starting thread (client mode): 0x867fdae0
2025-06-13 14:10:42,771 [DEBUG][       Thread-257513][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 14:10:42,785 [DEBUG][       Thread-257513][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 14:10:42,786 [ INFO][       Thread-257513][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 14:10:42,793 [DEBUG][       Thread-257513][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 14:10:42,793 [DEBUG][       Thread-257513][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 14:10:42,793 [DEBUG][       Thread-257513][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 14:10:42,793 [DEBUG][       Thread-257513][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:10:42,793 [DEBUG][       Thread-257513][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:10:42,793 [DEBUG][       Thread-257513][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:10:42,793 [DEBUG][       Thread-257513][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:10:42,793 [DEBUG][       Thread-257513][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 14:10:42,793 [DEBUG][       Thread-257513][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 14:10:42,793 [DEBUG][       Thread-257513][   transport.py][1871] : client lang: <none>
2025-06-13 14:10:42,794 [DEBUG][       Thread-257513][   transport.py][1871] : server lang: <none>
2025-06-13 14:10:42,794 [DEBUG][       Thread-257513][   transport.py][1871] : kex follows: False
2025-06-13 14:10:42,794 [DEBUG][       Thread-257513][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 14:10:42,794 [DEBUG][       Thread-257513][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 14:10:42,794 [DEBUG][       Thread-257513][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 14:10:42,794 [DEBUG][       Thread-257513][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 14:10:42,794 [DEBUG][       Thread-257513][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 14:10:42,794 [DEBUG][       Thread-257513][   transport.py][1871] : Compression: none
2025-06-13 14:10:42,794 [DEBUG][       Thread-257513][   transport.py][1871] : === End of kex handshake ===
2025-06-13 14:10:42,850 [DEBUG][       Thread-257513][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 14:10:42,851 [DEBUG][       Thread-257513][   transport.py][1871] : Switch to new keys ...
2025-06-13 14:10:42,851 [DEBUG][       Thread-257513][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 14:10:42,852 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 14:10:42,853 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 14:10:42,909 [DEBUG][       Thread-257513][   transport.py][1871] : userauth is OK
2025-06-13 14:10:42,909 [DEBUG][       Thread-257513][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 14:10:42,909 [DEBUG][       Thread-257513][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 14:10:42,909 [DEBUG][       Thread-257513][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 14:10:42,909 [DEBUG][       Thread-257513][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 14:10:42,927 [ INFO][       Thread-257513][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 14:10:42,928 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 14:10:42,928 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 14:10:43,935 [DEBUG][       Thread-257513][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 14:10:43,935 [DEBUG][       Thread-257513][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 14:10:43,987 [DEBUG][       Thread-257513][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 14:10:43,987 [DEBUG][       Thread-257513][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 14:10:44,002 [DEBUG][       Thread-257513][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 14:10:44,011 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 14:10:44,011 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 14:10:44,021 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 14:10:44,033 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 14:10:44,033 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 14:10:44,033 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 14:10:44,041 [DEBUG][       Thread-257513][   transport.py][1871] : EOF in transport thread
2025-06-13 14:10:48,299 [DEBUG][Thread-257515 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:10:54,036 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 14:10:54,036 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 14:10:54,037 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 14:10:54,039 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 14:10:54,496 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 14, 10, 39), 17.18, 30.11, 0.0, 17.56, 13.73, 0, 0, 0, 2, 0, 0),)
2025-06-13 14:10:54,496 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 14:10:39
2025-06-13 14:10:54,577 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 14:10:54,581 [DEBUG][       Thread-257516][   transport.py][1871] : starting thread (client mode): 0x86353760
2025-06-13 14:10:54,581 [DEBUG][       Thread-257516][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 14:10:54,602 [DEBUG][       Thread-257516][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 14:10:54,602 [ INFO][       Thread-257516][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 14:10:54,605 [DEBUG][       Thread-257516][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 14:10:54,605 [DEBUG][       Thread-257516][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 14:10:54,605 [DEBUG][       Thread-257516][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 14:10:54,605 [DEBUG][       Thread-257516][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:10:54,605 [DEBUG][       Thread-257516][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:10:54,605 [DEBUG][       Thread-257516][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:10:54,605 [DEBUG][       Thread-257516][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:10:54,605 [DEBUG][       Thread-257516][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 14:10:54,606 [DEBUG][       Thread-257516][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 14:10:54,606 [DEBUG][       Thread-257516][   transport.py][1871] : client lang: <none>
2025-06-13 14:10:54,606 [DEBUG][       Thread-257516][   transport.py][1871] : server lang: <none>
2025-06-13 14:10:54,606 [DEBUG][       Thread-257516][   transport.py][1871] : kex follows: False
2025-06-13 14:10:54,606 [DEBUG][       Thread-257516][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 14:10:54,606 [DEBUG][       Thread-257516][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 14:10:54,606 [DEBUG][       Thread-257516][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 14:10:54,606 [DEBUG][       Thread-257516][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 14:10:54,606 [DEBUG][       Thread-257516][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 14:10:54,606 [DEBUG][       Thread-257516][   transport.py][1871] : Compression: none
2025-06-13 14:10:54,606 [DEBUG][       Thread-257516][   transport.py][1871] : === End of kex handshake ===
2025-06-13 14:10:54,624 [DEBUG][       Thread-257516][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 14:10:54,624 [DEBUG][       Thread-257516][   transport.py][1871] : Switch to new keys ...
2025-06-13 14:10:54,625 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 14:10:54,625 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 14:10:54,625 [DEBUG][       Thread-257516][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 14:10:54,626 [DEBUG][       Thread-257516][   transport.py][1871] : userauth is OK
2025-06-13 14:10:54,639 [ INFO][       Thread-257516][   transport.py][1871] : Authentication (password) successful!
2025-06-13 14:10:54,639 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 14:10:55,243 [DEBUG][       Thread-257516][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 14:10:55,243 [DEBUG][       Thread-257516][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 14:10:55,285 [DEBUG][       Thread-257516][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 14:10:55,285 [DEBUG][       Thread-257516][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 14:10:55,289 [DEBUG][       Thread-257516][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 14:10:55,301 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 14:10:55,302 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 14:10:55,303 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 14:10:55,305 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 14:10:55,311 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 14:10:55,313 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 14:10:55,313 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 14:10:55,314 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 14:10:55,314 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.507228 -999.00  +13.70  20.12     35   -1.20 1 1 1 1 1   887    0 16.04 33.78 ----- 23.8 20.1 48.4 26.1 17.8 -30.7 16.7 -32.4 17.1 -31.7 18.4 -28.4
2025-06-13 14:10:55,314 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 14:10:55,314 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 14:10:55,314 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.507228
2025-06-13 14:10:55,315 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 14:10:55,315 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 14:10:55,315 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 14:10:55,315 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 14:10:55,315 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 14:10:55,316 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T14:10:39', tmtdew=17.18, humidity=30.11, cloud=0.0, wind=17.56, temperature=13.73, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T12:10:24.499', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 14:10:55,316 [DEBUG][       Thread-257516][   transport.py][1871] : EOF in transport thread
2025-06-13 14:10:55,399 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 14:10:55,409 [DEBUG][       Thread-257519][   transport.py][1871] : starting thread (client mode): 0x863a7a00
2025-06-13 14:10:55,409 [DEBUG][       Thread-257519][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 14:10:55,424 [DEBUG][       Thread-257519][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 14:10:55,424 [ INFO][       Thread-257519][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 14:10:55,431 [DEBUG][       Thread-257519][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 14:10:55,432 [DEBUG][       Thread-257519][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 14:10:55,432 [DEBUG][       Thread-257519][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 14:10:55,432 [DEBUG][       Thread-257519][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:10:55,432 [DEBUG][       Thread-257519][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:10:55,432 [DEBUG][       Thread-257519][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:10:55,432 [DEBUG][       Thread-257519][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:10:55,432 [DEBUG][       Thread-257519][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 14:10:55,432 [DEBUG][       Thread-257519][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 14:10:55,432 [DEBUG][       Thread-257519][   transport.py][1871] : client lang: <none>
2025-06-13 14:10:55,432 [DEBUG][       Thread-257519][   transport.py][1871] : server lang: <none>
2025-06-13 14:10:55,432 [DEBUG][       Thread-257519][   transport.py][1871] : kex follows: False
2025-06-13 14:10:55,432 [DEBUG][       Thread-257519][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 14:10:55,432 [DEBUG][       Thread-257519][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 14:10:55,432 [DEBUG][       Thread-257519][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 14:10:55,432 [DEBUG][       Thread-257519][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 14:10:55,432 [DEBUG][       Thread-257519][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 14:10:55,432 [DEBUG][       Thread-257519][   transport.py][1871] : Compression: none
2025-06-13 14:10:55,432 [DEBUG][       Thread-257519][   transport.py][1871] : === End of kex handshake ===
2025-06-13 14:10:55,497 [DEBUG][       Thread-257519][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 14:10:55,498 [DEBUG][       Thread-257519][   transport.py][1871] : Switch to new keys ...
2025-06-13 14:10:55,499 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 14:10:55,499 [DEBUG][       Thread-257519][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 14:10:55,500 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 14:10:55,554 [DEBUG][       Thread-257519][   transport.py][1871] : userauth is OK
2025-06-13 14:10:55,555 [DEBUG][       Thread-257519][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 14:10:55,555 [DEBUG][       Thread-257519][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 14:10:55,555 [DEBUG][       Thread-257519][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 14:10:55,555 [DEBUG][       Thread-257519][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 14:10:55,573 [ INFO][       Thread-257519][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 14:10:55,574 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 14:10:55,574 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 14:10:56,586 [DEBUG][       Thread-257519][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 14:10:56,586 [DEBUG][       Thread-257519][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 14:10:56,636 [DEBUG][       Thread-257519][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 14:10:56,636 [DEBUG][       Thread-257519][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 14:10:56,645 [DEBUG][       Thread-257519][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 14:10:56,654 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 14:10:56,655 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 14:10:56,664 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 14:10:56,673 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 14:10:56,673 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 14:10:56,674 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 14:10:56,682 [DEBUG][       Thread-257519][   transport.py][1871] : EOF in transport thread
2025-06-13 14:10:57,335 [DEBUG][Thread-257521 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:10:58,467 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:10:58,468 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:11:06,357 [DEBUG][Thread-257522 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:11:06,684 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 14:11:06,684 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 14:11:06,685 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 14:11:06,687 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 14:11:07,159 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 14, 10, 39), 17.18, 30.11, 0.0, 17.56, 13.73, 0, 0, 0, 2, 0, 0),)
2025-06-13 14:11:07,159 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 14:10:39
2025-06-13 14:11:07,240 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 14:11:07,244 [DEBUG][       Thread-257523][   transport.py][1871] : starting thread (client mode): 0x86353fa0
2025-06-13 14:11:07,244 [DEBUG][       Thread-257523][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 14:11:07,264 [DEBUG][       Thread-257523][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 14:11:07,264 [ INFO][       Thread-257523][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 14:11:07,268 [DEBUG][       Thread-257523][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 14:11:07,268 [DEBUG][       Thread-257523][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 14:11:07,268 [DEBUG][       Thread-257523][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 14:11:07,268 [DEBUG][       Thread-257523][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:11:07,268 [DEBUG][       Thread-257523][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:11:07,268 [DEBUG][       Thread-257523][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:11:07,268 [DEBUG][       Thread-257523][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:11:07,268 [DEBUG][       Thread-257523][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 14:11:07,268 [DEBUG][       Thread-257523][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 14:11:07,268 [DEBUG][       Thread-257523][   transport.py][1871] : client lang: <none>
2025-06-13 14:11:07,268 [DEBUG][       Thread-257523][   transport.py][1871] : server lang: <none>
2025-06-13 14:11:07,268 [DEBUG][       Thread-257523][   transport.py][1871] : kex follows: False
2025-06-13 14:11:07,268 [DEBUG][       Thread-257523][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 14:11:07,268 [DEBUG][       Thread-257523][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 14:11:07,268 [DEBUG][       Thread-257523][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 14:11:07,268 [DEBUG][       Thread-257523][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 14:11:07,268 [DEBUG][       Thread-257523][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 14:11:07,268 [DEBUG][       Thread-257523][   transport.py][1871] : Compression: none
2025-06-13 14:11:07,269 [DEBUG][       Thread-257523][   transport.py][1871] : === End of kex handshake ===
2025-06-13 14:11:07,285 [DEBUG][       Thread-257523][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 14:11:07,285 [DEBUG][       Thread-257523][   transport.py][1871] : Switch to new keys ...
2025-06-13 14:11:07,286 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 14:11:07,286 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 14:11:07,287 [DEBUG][       Thread-257523][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 14:11:07,287 [DEBUG][       Thread-257523][   transport.py][1871] : userauth is OK
2025-06-13 14:11:07,312 [ INFO][       Thread-257523][   transport.py][1871] : Authentication (password) successful!
2025-06-13 14:11:07,312 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 14:11:07,949 [DEBUG][       Thread-257523][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 14:11:07,950 [DEBUG][       Thread-257523][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 14:11:07,993 [DEBUG][       Thread-257523][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 14:11:07,993 [DEBUG][       Thread-257523][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 14:11:07,997 [DEBUG][       Thread-257523][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 14:11:08,009 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 14:11:08,009 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 14:11:08,011 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 14:11:08,013 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 14:11:08,019 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 14:11:08,021 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 14:11:08,021 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 14:11:08,021 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 14:11:08,022 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.507228 -999.00  +13.70  20.12     35   -1.20 1 1 1 1 1   887    0 16.04 33.78 ----- 23.8 20.1 48.4 26.1 17.8 -30.7 16.7 -32.4 17.1 -31.7 18.4 -28.4
2025-06-13 14:11:08,022 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 14:11:08,022 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 14:11:08,022 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.507228
2025-06-13 14:11:08,022 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 14:11:08,023 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 14:11:08,023 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 14:11:08,023 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 14:11:08,023 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 14:11:08,023 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T14:10:39', tmtdew=17.18, humidity=30.11, cloud=0.0, wind=17.56, temperature=13.73, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T12:10:24.499', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 14:11:08,023 [DEBUG][       Thread-257523][   transport.py][1871] : EOF in transport thread
2025-06-13 14:11:08,107 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 14:11:08,116 [DEBUG][       Thread-257526][   transport.py][1871] : starting thread (client mode): 0x86368970
2025-06-13 14:11:08,116 [DEBUG][       Thread-257526][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 14:11:08,132 [DEBUG][       Thread-257526][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 14:11:08,132 [ INFO][       Thread-257526][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 14:11:08,139 [DEBUG][       Thread-257526][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 14:11:08,139 [DEBUG][       Thread-257526][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 14:11:08,139 [DEBUG][       Thread-257526][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 14:11:08,139 [DEBUG][       Thread-257526][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:11:08,139 [DEBUG][       Thread-257526][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:11:08,139 [DEBUG][       Thread-257526][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:11:08,139 [DEBUG][       Thread-257526][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:11:08,139 [DEBUG][       Thread-257526][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 14:11:08,140 [DEBUG][       Thread-257526][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 14:11:08,140 [DEBUG][       Thread-257526][   transport.py][1871] : client lang: <none>
2025-06-13 14:11:08,140 [DEBUG][       Thread-257526][   transport.py][1871] : server lang: <none>
2025-06-13 14:11:08,140 [DEBUG][       Thread-257526][   transport.py][1871] : kex follows: False
2025-06-13 14:11:08,140 [DEBUG][       Thread-257526][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 14:11:08,140 [DEBUG][       Thread-257526][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 14:11:08,140 [DEBUG][       Thread-257526][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 14:11:08,140 [DEBUG][       Thread-257526][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 14:11:08,140 [DEBUG][       Thread-257526][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 14:11:08,140 [DEBUG][       Thread-257526][   transport.py][1871] : Compression: none
2025-06-13 14:11:08,140 [DEBUG][       Thread-257526][   transport.py][1871] : === End of kex handshake ===
2025-06-13 14:11:08,205 [DEBUG][       Thread-257526][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 14:11:08,206 [DEBUG][       Thread-257526][   transport.py][1871] : Switch to new keys ...
2025-06-13 14:11:08,206 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 14:11:08,207 [DEBUG][       Thread-257526][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 14:11:08,208 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 14:11:08,263 [DEBUG][       Thread-257526][   transport.py][1871] : userauth is OK
2025-06-13 14:11:08,263 [DEBUG][       Thread-257526][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 14:11:08,263 [DEBUG][       Thread-257526][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 14:11:08,263 [DEBUG][       Thread-257526][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 14:11:08,263 [DEBUG][       Thread-257526][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 14:11:08,283 [ INFO][       Thread-257526][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 14:11:08,283 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 14:11:08,284 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 14:11:09,290 [DEBUG][       Thread-257526][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 14:11:09,290 [DEBUG][       Thread-257526][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 14:11:09,340 [DEBUG][       Thread-257526][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 14:11:09,340 [DEBUG][       Thread-257526][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 14:11:09,349 [DEBUG][       Thread-257526][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 14:11:09,361 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 14:11:09,361 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 14:11:09,375 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 14:11:09,385 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 14:11:09,385 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 14:11:09,385 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 14:11:09,393 [DEBUG][       Thread-257526][   transport.py][1871] : EOF in transport thread
2025-06-13 14:11:15,378 [DEBUG][Thread-257528 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:11:17,380 [DEBUG][Thread-257529 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:11:19,396 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 14:11:19,396 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 14:11:19,396 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 14:11:19,399 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 14:11:19,875 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 14, 11, 10), 17.06, 30.43, 0.0, 20.33, 13.68, 0, 0, 0, 2, 0, 0),)
2025-06-13 14:11:19,875 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 14:11:10
2025-06-13 14:11:19,957 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 14:11:19,963 [DEBUG][       Thread-257530][   transport.py][1871] : starting thread (client mode): 0x86350910
2025-06-13 14:11:19,963 [DEBUG][       Thread-257530][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 14:11:19,984 [DEBUG][       Thread-257530][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 14:11:19,984 [ INFO][       Thread-257530][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 14:11:19,988 [DEBUG][       Thread-257530][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 14:11:19,988 [DEBUG][       Thread-257530][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 14:11:19,988 [DEBUG][       Thread-257530][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 14:11:19,988 [DEBUG][       Thread-257530][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:11:19,988 [DEBUG][       Thread-257530][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:11:19,988 [DEBUG][       Thread-257530][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:11:19,988 [DEBUG][       Thread-257530][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:11:19,988 [DEBUG][       Thread-257530][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 14:11:19,988 [DEBUG][       Thread-257530][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 14:11:19,988 [DEBUG][       Thread-257530][   transport.py][1871] : client lang: <none>
2025-06-13 14:11:19,988 [DEBUG][       Thread-257530][   transport.py][1871] : server lang: <none>
2025-06-13 14:11:19,988 [DEBUG][       Thread-257530][   transport.py][1871] : kex follows: False
2025-06-13 14:11:19,988 [DEBUG][       Thread-257530][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 14:11:19,988 [DEBUG][       Thread-257530][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 14:11:19,988 [DEBUG][       Thread-257530][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 14:11:19,988 [DEBUG][       Thread-257530][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 14:11:19,988 [DEBUG][       Thread-257530][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 14:11:19,988 [DEBUG][       Thread-257530][   transport.py][1871] : Compression: none
2025-06-13 14:11:19,988 [DEBUG][       Thread-257530][   transport.py][1871] : === End of kex handshake ===
2025-06-13 14:11:20,005 [DEBUG][       Thread-257530][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 14:11:20,006 [DEBUG][       Thread-257530][   transport.py][1871] : Switch to new keys ...
2025-06-13 14:11:20,006 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 14:11:20,006 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 14:11:20,007 [DEBUG][       Thread-257530][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 14:11:20,008 [DEBUG][       Thread-257530][   transport.py][1871] : userauth is OK
2025-06-13 14:11:20,022 [ INFO][       Thread-257530][   transport.py][1871] : Authentication (password) successful!
2025-06-13 14:11:20,022 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 14:11:20,658 [DEBUG][       Thread-257530][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 14:11:20,658 [DEBUG][       Thread-257530][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 14:11:20,701 [DEBUG][       Thread-257530][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 14:11:20,701 [DEBUG][       Thread-257530][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 14:11:20,704 [DEBUG][       Thread-257530][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 14:11:20,715 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 14:11:20,716 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 14:11:20,717 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 14:11:20,718 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 14:11:20,723 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 14:11:20,725 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 14:11:20,725 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 14:11:20,726 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 14:11:20,726 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.507228 -999.00  +13.70  20.12     35   -1.20 1 1 1 1 1   887    0 16.04 33.78 ----- 23.8 20.1 48.4 26.1 17.8 -30.7 16.7 -32.4 17.1 -31.7 18.4 -28.4
2025-06-13 14:11:20,726 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 14:11:20,726 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 14:11:20,726 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.507228
2025-06-13 14:11:20,727 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 14:11:20,727 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 14:11:20,727 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 14:11:20,727 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 14:11:20,727 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 14:11:20,728 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T14:11:10', tmtdew=17.06, humidity=30.43, cloud=0.0, wind=20.33, temperature=13.68, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T12:10:24.499', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 14:11:20,729 [DEBUG][       Thread-257530][   transport.py][1871] : EOF in transport thread
2025-06-13 14:11:20,811 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 14:11:20,823 [DEBUG][       Thread-257533][   transport.py][1871] : starting thread (client mode): 0x863a7f10
2025-06-13 14:11:20,823 [DEBUG][       Thread-257533][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 14:11:20,838 [DEBUG][       Thread-257533][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 14:11:20,838 [ INFO][       Thread-257533][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 14:11:20,847 [DEBUG][       Thread-257533][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 14:11:20,847 [DEBUG][       Thread-257533][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 14:11:20,847 [DEBUG][       Thread-257533][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 14:11:20,847 [DEBUG][       Thread-257533][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:11:20,848 [DEBUG][       Thread-257533][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:11:20,848 [DEBUG][       Thread-257533][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:11:20,848 [DEBUG][       Thread-257533][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:11:20,848 [DEBUG][       Thread-257533][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 14:11:20,848 [DEBUG][       Thread-257533][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 14:11:20,848 [DEBUG][       Thread-257533][   transport.py][1871] : client lang: <none>
2025-06-13 14:11:20,848 [DEBUG][       Thread-257533][   transport.py][1871] : server lang: <none>
2025-06-13 14:11:20,848 [DEBUG][       Thread-257533][   transport.py][1871] : kex follows: False
2025-06-13 14:11:20,848 [DEBUG][       Thread-257533][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 14:11:20,848 [DEBUG][       Thread-257533][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 14:11:20,848 [DEBUG][       Thread-257533][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 14:11:20,848 [DEBUG][       Thread-257533][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 14:11:20,848 [DEBUG][       Thread-257533][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 14:11:20,848 [DEBUG][       Thread-257533][   transport.py][1871] : Compression: none
2025-06-13 14:11:20,848 [DEBUG][       Thread-257533][   transport.py][1871] : === End of kex handshake ===
2025-06-13 14:11:20,910 [DEBUG][       Thread-257533][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 14:11:20,910 [DEBUG][       Thread-257533][   transport.py][1871] : Switch to new keys ...
2025-06-13 14:11:20,910 [DEBUG][       Thread-257533][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 14:11:20,911 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 14:11:20,911 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 14:11:20,966 [DEBUG][       Thread-257533][   transport.py][1871] : userauth is OK
2025-06-13 14:11:20,966 [DEBUG][       Thread-257533][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 14:11:20,966 [DEBUG][       Thread-257533][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 14:11:20,966 [DEBUG][       Thread-257533][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 14:11:20,966 [DEBUG][       Thread-257533][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 14:11:20,985 [ INFO][       Thread-257533][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 14:11:20,985 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 14:11:20,986 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 14:11:22,021 [DEBUG][       Thread-257533][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 14:11:22,021 [DEBUG][       Thread-257533][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 14:11:22,032 [DEBUG][Thread-257535 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:11:22,074 [DEBUG][       Thread-257533][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 14:11:22,074 [DEBUG][       Thread-257533][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 14:11:22,089 [DEBUG][       Thread-257533][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 14:11:22,105 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 14:11:22,105 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 14:11:22,116 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 14:11:22,128 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 14:11:22,128 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 14:11:22,128 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 14:11:22,139 [DEBUG][       Thread-257533][   transport.py][1871] : EOF in transport thread
2025-06-13 14:11:23,086 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:11:23,086 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:11:24,397 [DEBUG][Thread-257536 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:11:32,137 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 14:11:32,137 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 14:11:32,137 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 14:11:32,140 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 14:11:32,597 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 14, 11, 10), 17.06, 30.43, 0.0, 20.33, 13.68, 0, 0, 0, 2, 0, 0),)
2025-06-13 14:11:32,597 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 14:11:10
2025-06-13 14:11:32,678 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 14:11:32,683 [DEBUG][       Thread-257537][   transport.py][1871] : starting thread (client mode): 0x863510f0
2025-06-13 14:11:32,683 [DEBUG][       Thread-257537][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 14:11:32,705 [DEBUG][       Thread-257537][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 14:11:32,705 [ INFO][       Thread-257537][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 14:11:32,709 [DEBUG][       Thread-257537][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 14:11:32,709 [DEBUG][       Thread-257537][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 14:11:32,709 [DEBUG][       Thread-257537][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 14:11:32,709 [DEBUG][       Thread-257537][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:11:32,710 [DEBUG][       Thread-257537][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:11:32,710 [DEBUG][       Thread-257537][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:11:32,710 [DEBUG][       Thread-257537][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:11:32,710 [DEBUG][       Thread-257537][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 14:11:32,710 [DEBUG][       Thread-257537][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 14:11:32,710 [DEBUG][       Thread-257537][   transport.py][1871] : client lang: <none>
2025-06-13 14:11:32,710 [DEBUG][       Thread-257537][   transport.py][1871] : server lang: <none>
2025-06-13 14:11:32,710 [DEBUG][       Thread-257537][   transport.py][1871] : kex follows: False
2025-06-13 14:11:32,710 [DEBUG][       Thread-257537][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 14:11:32,710 [DEBUG][       Thread-257537][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 14:11:32,710 [DEBUG][       Thread-257537][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 14:11:32,710 [DEBUG][       Thread-257537][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 14:11:32,710 [DEBUG][       Thread-257537][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 14:11:32,710 [DEBUG][       Thread-257537][   transport.py][1871] : Compression: none
2025-06-13 14:11:32,710 [DEBUG][       Thread-257537][   transport.py][1871] : === End of kex handshake ===
2025-06-13 14:11:32,727 [DEBUG][       Thread-257537][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 14:11:32,727 [DEBUG][       Thread-257537][   transport.py][1871] : Switch to new keys ...
2025-06-13 14:11:32,728 [DEBUG][       Thread-257537][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 14:11:32,728 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 14:11:32,728 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 14:11:32,729 [DEBUG][       Thread-257537][   transport.py][1871] : userauth is OK
2025-06-13 14:11:32,754 [ INFO][       Thread-257537][   transport.py][1871] : Authentication (password) successful!
2025-06-13 14:11:32,755 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 14:11:33,405 [DEBUG][       Thread-257537][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 14:11:33,405 [DEBUG][       Thread-257537][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 14:11:33,422 [DEBUG][Thread-257539 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:11:33,449 [DEBUG][       Thread-257537][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 14:11:33,449 [DEBUG][       Thread-257537][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 14:11:33,452 [DEBUG][       Thread-257537][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 14:11:33,465 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 14:11:33,465 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 14:11:33,467 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 14:11:33,468 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 14:11:33,474 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 14:11:33,476 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 14:11:33,476 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 14:11:33,477 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 14:11:33,477 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.507576 -999.00  +13.70  18.40     35   -1.10 1 1 1 1 1   887    0 15.75 29.31 ----- 17.6 18.4 39.0 26.1 17.8 -30.3 16.8 -32.2 17.1 -29.8 18.4 -28.4
2025-06-13 14:11:33,477 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 14:11:33,477 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 14:11:33,477 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.507576
2025-06-13 14:11:33,478 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 14:11:33,478 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 14:11:33,478 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 14:11:33,478 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 14:11:33,478 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 14:11:33,479 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T14:11:10', tmtdew=17.06, humidity=30.43, cloud=0.0, wind=20.33, temperature=13.68, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T12:10:54.566', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 14:11:33,479 [DEBUG][       Thread-257537][   transport.py][1871] : EOF in transport thread
2025-06-13 14:11:33,562 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 14:11:33,572 [DEBUG][       Thread-257541][   transport.py][1871] : starting thread (client mode): 0x868c8400
2025-06-13 14:11:33,572 [DEBUG][       Thread-257541][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 14:11:33,587 [DEBUG][       Thread-257541][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 14:11:33,587 [ INFO][       Thread-257541][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 14:11:33,594 [DEBUG][       Thread-257541][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 14:11:33,594 [DEBUG][       Thread-257541][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 14:11:33,595 [DEBUG][       Thread-257541][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 14:11:33,595 [DEBUG][       Thread-257541][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:11:33,595 [DEBUG][       Thread-257541][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:11:33,595 [DEBUG][       Thread-257541][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:11:33,595 [DEBUG][       Thread-257541][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:11:33,595 [DEBUG][       Thread-257541][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 14:11:33,595 [DEBUG][       Thread-257541][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 14:11:33,595 [DEBUG][       Thread-257541][   transport.py][1871] : client lang: <none>
2025-06-13 14:11:33,595 [DEBUG][       Thread-257541][   transport.py][1871] : server lang: <none>
2025-06-13 14:11:33,595 [DEBUG][       Thread-257541][   transport.py][1871] : kex follows: False
2025-06-13 14:11:33,595 [DEBUG][       Thread-257541][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 14:11:33,595 [DEBUG][       Thread-257541][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 14:11:33,595 [DEBUG][       Thread-257541][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 14:11:33,595 [DEBUG][       Thread-257541][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 14:11:33,595 [DEBUG][       Thread-257541][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 14:11:33,595 [DEBUG][       Thread-257541][   transport.py][1871] : Compression: none
2025-06-13 14:11:33,595 [DEBUG][       Thread-257541][   transport.py][1871] : === End of kex handshake ===
2025-06-13 14:11:33,655 [DEBUG][       Thread-257541][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 14:11:33,656 [DEBUG][       Thread-257541][   transport.py][1871] : Switch to new keys ...
2025-06-13 14:11:33,656 [DEBUG][       Thread-257541][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 14:11:33,657 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 14:11:33,657 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 14:11:33,714 [DEBUG][       Thread-257541][   transport.py][1871] : userauth is OK
2025-06-13 14:11:33,715 [DEBUG][       Thread-257541][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 14:11:33,715 [DEBUG][       Thread-257541][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 14:11:33,715 [DEBUG][       Thread-257541][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 14:11:33,715 [DEBUG][       Thread-257541][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 14:11:33,734 [ INFO][       Thread-257541][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 14:11:33,734 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 14:11:33,734 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 14:11:34,731 [DEBUG][       Thread-257541][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 14:11:34,731 [DEBUG][       Thread-257541][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 14:11:34,784 [DEBUG][       Thread-257541][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 14:11:34,784 [DEBUG][       Thread-257541][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 14:11:34,793 [DEBUG][       Thread-257541][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 14:11:34,802 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 14:11:34,802 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 14:11:34,811 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 14:11:34,820 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 14:11:34,820 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 14:11:34,821 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 14:11:34,828 [DEBUG][       Thread-257541][   transport.py][1871] : EOF in transport thread
2025-06-13 14:11:42,445 [DEBUG][Thread-257543 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:11:44,831 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 14:11:44,831 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 14:11:44,831 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 14:11:44,831 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 14:11:45,280 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 14, 11, 10), 17.06, 30.43, 0.0, 20.33, 13.68, 0, 0, 0, 2, 0, 0),)
2025-06-13 14:11:45,281 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 14:11:10
2025-06-13 14:11:45,361 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 14:11:45,367 [DEBUG][       Thread-257544][   transport.py][1871] : starting thread (client mode): 0x8636b2e0
2025-06-13 14:11:45,367 [DEBUG][       Thread-257544][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 14:11:45,388 [DEBUG][       Thread-257544][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 14:11:45,389 [ INFO][       Thread-257544][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 14:11:45,392 [DEBUG][       Thread-257544][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 14:11:45,392 [DEBUG][       Thread-257544][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 14:11:45,392 [DEBUG][       Thread-257544][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 14:11:45,392 [DEBUG][       Thread-257544][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:11:45,392 [DEBUG][       Thread-257544][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:11:45,392 [DEBUG][       Thread-257544][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:11:45,392 [DEBUG][       Thread-257544][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:11:45,392 [DEBUG][       Thread-257544][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 14:11:45,393 [DEBUG][       Thread-257544][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 14:11:45,393 [DEBUG][       Thread-257544][   transport.py][1871] : client lang: <none>
2025-06-13 14:11:45,393 [DEBUG][       Thread-257544][   transport.py][1871] : server lang: <none>
2025-06-13 14:11:45,393 [DEBUG][       Thread-257544][   transport.py][1871] : kex follows: False
2025-06-13 14:11:45,393 [DEBUG][       Thread-257544][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 14:11:45,393 [DEBUG][       Thread-257544][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 14:11:45,393 [DEBUG][       Thread-257544][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 14:11:45,393 [DEBUG][       Thread-257544][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 14:11:45,393 [DEBUG][       Thread-257544][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 14:11:45,393 [DEBUG][       Thread-257544][   transport.py][1871] : Compression: none
2025-06-13 14:11:45,393 [DEBUG][       Thread-257544][   transport.py][1871] : === End of kex handshake ===
2025-06-13 14:11:45,408 [DEBUG][       Thread-257544][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 14:11:45,408 [DEBUG][       Thread-257544][   transport.py][1871] : Switch to new keys ...
2025-06-13 14:11:45,409 [DEBUG][       Thread-257544][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 14:11:45,409 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 14:11:45,409 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 14:11:45,410 [DEBUG][       Thread-257544][   transport.py][1871] : userauth is OK
2025-06-13 14:11:45,435 [ INFO][       Thread-257544][   transport.py][1871] : Authentication (password) successful!
2025-06-13 14:11:45,436 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 14:11:46,085 [DEBUG][       Thread-257544][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 14:11:46,086 [DEBUG][       Thread-257544][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 14:11:46,129 [DEBUG][       Thread-257544][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 14:11:46,129 [DEBUG][       Thread-257544][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 14:11:46,132 [DEBUG][       Thread-257544][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 14:11:46,145 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 14:11:46,146 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 14:11:46,148 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 14:11:46,149 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 14:11:46,155 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 14:11:46,157 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 14:11:46,157 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 14:11:46,157 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 14:11:46,158 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.507576 -999.00  +13.70  18.40     35   -1.10 1 1 1 1 1   887    0 15.75 29.31 ----- 17.6 18.4 39.0 26.1 17.8 -30.3 16.8 -32.2 17.1 -29.8 18.4 -28.4
2025-06-13 14:11:46,158 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 14:11:46,158 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 14:11:46,158 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.507576
2025-06-13 14:11:46,158 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 14:11:46,159 [DEBUG][       Thread-257544][   transport.py][1871] : EOF in transport thread
2025-06-13 14:11:46,159 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 14:11:46,160 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 14:11:46,160 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 14:11:46,160 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 14:11:46,160 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T14:11:10', tmtdew=17.06, humidity=30.43, cloud=0.0, wind=20.33, temperature=13.68, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T12:10:54.566', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 14:11:46,243 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 14:11:46,255 [DEBUG][       Thread-257547][   transport.py][1871] : starting thread (client mode): 0x867fe590
2025-06-13 14:11:46,255 [DEBUG][       Thread-257547][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 14:11:46,270 [DEBUG][       Thread-257547][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 14:11:46,270 [ INFO][       Thread-257547][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 14:11:46,279 [DEBUG][       Thread-257547][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 14:11:46,280 [DEBUG][       Thread-257547][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 14:11:46,280 [DEBUG][       Thread-257547][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 14:11:46,280 [DEBUG][       Thread-257547][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:11:46,280 [DEBUG][       Thread-257547][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:11:46,280 [DEBUG][       Thread-257547][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:11:46,280 [DEBUG][       Thread-257547][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:11:46,280 [DEBUG][       Thread-257547][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 14:11:46,280 [DEBUG][       Thread-257547][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 14:11:46,280 [DEBUG][       Thread-257547][   transport.py][1871] : client lang: <none>
2025-06-13 14:11:46,280 [DEBUG][       Thread-257547][   transport.py][1871] : server lang: <none>
2025-06-13 14:11:46,280 [DEBUG][       Thread-257547][   transport.py][1871] : kex follows: False
2025-06-13 14:11:46,280 [DEBUG][       Thread-257547][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 14:11:46,280 [DEBUG][       Thread-257547][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 14:11:46,280 [DEBUG][       Thread-257547][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 14:11:46,280 [DEBUG][       Thread-257547][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 14:11:46,280 [DEBUG][       Thread-257547][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 14:11:46,280 [DEBUG][       Thread-257547][   transport.py][1871] : Compression: none
2025-06-13 14:11:46,280 [DEBUG][       Thread-257547][   transport.py][1871] : === End of kex handshake ===
2025-06-13 14:11:46,338 [DEBUG][       Thread-257547][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 14:11:46,339 [DEBUG][       Thread-257547][   transport.py][1871] : Switch to new keys ...
2025-06-13 14:11:46,340 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 14:11:46,340 [DEBUG][       Thread-257547][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 14:11:46,341 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 14:11:46,394 [DEBUG][       Thread-257547][   transport.py][1871] : userauth is OK
2025-06-13 14:11:46,394 [DEBUG][       Thread-257547][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 14:11:46,395 [DEBUG][       Thread-257547][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 14:11:46,395 [DEBUG][       Thread-257547][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 14:11:46,395 [DEBUG][       Thread-257547][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 14:11:46,413 [ INFO][       Thread-257547][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 14:11:46,413 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 14:11:46,414 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 14:11:47,450 [DEBUG][       Thread-257547][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 14:11:47,451 [DEBUG][       Thread-257547][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 14:11:47,500 [DEBUG][       Thread-257547][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 14:11:47,500 [DEBUG][       Thread-257547][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 14:11:47,509 [DEBUG][       Thread-257547][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 14:11:47,522 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 14:11:47,523 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 14:11:47,531 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 14:11:47,540 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 14:11:47,541 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 14:11:47,541 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 14:11:47,552 [DEBUG][       Thread-257547][   transport.py][1871] : EOF in transport thread
2025-06-13 14:11:51,472 [DEBUG][Thread-257549 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:11:57,544 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 14:11:57,544 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 14:11:57,544 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 14:11:57,547 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 14:11:57,998 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 14, 11, 42), 17.07, 30.4, 0.0, 17.24, 13.66, 0, 0, 0, 2, 0, 0),)
2025-06-13 14:11:57,999 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 14:11:42
2025-06-13 14:11:58,080 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 14:11:58,084 [DEBUG][       Thread-257550][   transport.py][1871] : starting thread (client mode): 0x842052a0
2025-06-13 14:11:58,084 [DEBUG][       Thread-257550][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 14:11:58,094 [DEBUG][       Thread-257550][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 14:11:58,094 [ INFO][       Thread-257550][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 14:11:58,095 [DEBUG][       Thread-257550][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 14:11:58,095 [DEBUG][       Thread-257550][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 14:11:58,095 [DEBUG][       Thread-257550][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 14:11:58,095 [DEBUG][       Thread-257550][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:11:58,095 [DEBUG][       Thread-257550][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:11:58,095 [DEBUG][       Thread-257550][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:11:58,095 [DEBUG][       Thread-257550][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:11:58,095 [DEBUG][       Thread-257550][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 14:11:58,095 [DEBUG][       Thread-257550][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 14:11:58,095 [DEBUG][       Thread-257550][   transport.py][1871] : client lang: <none>
2025-06-13 14:11:58,095 [DEBUG][       Thread-257550][   transport.py][1871] : server lang: <none>
2025-06-13 14:11:58,095 [DEBUG][       Thread-257550][   transport.py][1871] : kex follows: False
2025-06-13 14:11:58,095 [DEBUG][       Thread-257550][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 14:11:58,095 [DEBUG][       Thread-257550][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 14:11:58,095 [DEBUG][       Thread-257550][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 14:11:58,095 [DEBUG][       Thread-257550][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 14:11:58,095 [DEBUG][       Thread-257550][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 14:11:58,095 [DEBUG][       Thread-257550][   transport.py][1871] : Compression: none
2025-06-13 14:11:58,095 [DEBUG][       Thread-257550][   transport.py][1871] : === End of kex handshake ===
2025-06-13 14:11:58,104 [DEBUG][       Thread-257550][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 14:11:58,104 [DEBUG][       Thread-257550][   transport.py][1871] : Switch to new keys ...
2025-06-13 14:11:58,104 [DEBUG][       Thread-257550][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 14:11:58,104 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 14:11:58,104 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 14:11:58,105 [DEBUG][       Thread-257550][   transport.py][1871] : userauth is OK
2025-06-13 14:11:58,118 [ INFO][       Thread-257550][   transport.py][1871] : Authentication (password) successful!
2025-06-13 14:11:58,118 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 14:11:58,607 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:11:58,608 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:11:58,680 [DEBUG][       Thread-257550][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 14:11:58,680 [DEBUG][       Thread-257550][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 14:11:58,725 [DEBUG][       Thread-257550][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 14:11:58,725 [DEBUG][       Thread-257550][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 14:11:58,731 [DEBUG][       Thread-257550][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 14:11:58,738 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 14:11:58,738 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 14:11:58,743 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 14:11:58,747 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 14:11:58,754 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 14:11:58,756 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 14:11:58,756 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 14:11:58,756 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 14:11:58,757 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.507923 -999.00  +13.70  17.06     35   -1.10 1 1 1 1 1   887    0 15.92 29.71 ----- 17.6 17.1 31.4 19.9 17.9 -30.8 16.8 -31.7 17.2 -29.6 18.4 -28.5
2025-06-13 14:11:58,757 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 14:11:58,757 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 14:11:58,757 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.507923
2025-06-13 14:11:58,757 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 14:11:58,758 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 14:11:58,758 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 14:11:58,758 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 14:11:58,758 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 14:11:58,758 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T14:11:42', tmtdew=17.07, humidity=30.4, cloud=0.0, wind=17.24, temperature=13.66, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T12:11:24.547', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 14:11:58,759 [DEBUG][       Thread-257550][   transport.py][1871] : EOF in transport thread
2025-06-13 14:11:58,840 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 14:11:58,849 [DEBUG][       Thread-257553][   transport.py][1871] : starting thread (client mode): 0x86893820
2025-06-13 14:11:58,849 [DEBUG][       Thread-257553][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 14:11:58,864 [DEBUG][       Thread-257553][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 14:11:58,864 [ INFO][       Thread-257553][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 14:11:58,872 [DEBUG][       Thread-257553][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 14:11:58,872 [DEBUG][       Thread-257553][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 14:11:58,872 [DEBUG][       Thread-257553][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 14:11:58,872 [DEBUG][       Thread-257553][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:11:58,872 [DEBUG][       Thread-257553][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:11:58,872 [DEBUG][       Thread-257553][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:11:58,872 [DEBUG][       Thread-257553][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:11:58,872 [DEBUG][       Thread-257553][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 14:11:58,872 [DEBUG][       Thread-257553][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 14:11:58,872 [DEBUG][       Thread-257553][   transport.py][1871] : client lang: <none>
2025-06-13 14:11:58,872 [DEBUG][       Thread-257553][   transport.py][1871] : server lang: <none>
2025-06-13 14:11:58,872 [DEBUG][       Thread-257553][   transport.py][1871] : kex follows: False
2025-06-13 14:11:58,872 [DEBUG][       Thread-257553][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 14:11:58,872 [DEBUG][       Thread-257553][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 14:11:58,872 [DEBUG][       Thread-257553][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 14:11:58,872 [DEBUG][       Thread-257553][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 14:11:58,872 [DEBUG][       Thread-257553][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 14:11:58,872 [DEBUG][       Thread-257553][   transport.py][1871] : Compression: none
2025-06-13 14:11:58,872 [DEBUG][       Thread-257553][   transport.py][1871] : === End of kex handshake ===
2025-06-13 14:11:58,934 [DEBUG][       Thread-257553][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 14:11:58,934 [DEBUG][       Thread-257553][   transport.py][1871] : Switch to new keys ...
2025-06-13 14:11:58,935 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 14:11:58,936 [DEBUG][       Thread-257553][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 14:11:58,937 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 14:11:58,990 [DEBUG][       Thread-257553][   transport.py][1871] : userauth is OK
2025-06-13 14:11:58,990 [DEBUG][       Thread-257553][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 14:11:58,990 [DEBUG][       Thread-257553][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 14:11:58,991 [DEBUG][       Thread-257553][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 14:11:58,991 [DEBUG][       Thread-257553][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 14:11:59,015 [ INFO][       Thread-257553][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 14:11:59,015 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 14:11:59,015 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 14:12:00,008 [DEBUG][       Thread-257553][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 14:12:00,008 [DEBUG][       Thread-257553][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 14:12:00,057 [DEBUG][       Thread-257553][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 14:12:00,057 [DEBUG][       Thread-257553][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 14:12:00,068 [DEBUG][       Thread-257553][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 14:12:00,077 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 14:12:00,077 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 14:12:00,086 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 14:12:00,095 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 14:12:00,096 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 14:12:00,096 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 14:12:00,108 [DEBUG][       Thread-257553][   transport.py][1871] : EOF in transport thread
2025-06-13 14:12:00,494 [DEBUG][Thread-257555 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:12:09,530 [DEBUG][Thread-257556 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:12:10,104 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 14:12:10,104 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 14:12:10,105 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 14:12:10,107 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 14:12:10,567 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 14, 11, 42), 17.07, 30.4, 0.0, 17.24, 13.66, 0, 0, 0, 2, 0, 0),)
2025-06-13 14:12:10,567 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 14:11:42
2025-06-13 14:12:10,649 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 14:12:10,655 [DEBUG][       Thread-257557][   transport.py][1871] : starting thread (client mode): 0x86352a10
2025-06-13 14:12:10,655 [DEBUG][       Thread-257557][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 14:12:10,676 [DEBUG][       Thread-257557][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 14:12:10,676 [ INFO][       Thread-257557][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 14:12:10,680 [DEBUG][       Thread-257557][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 14:12:10,680 [DEBUG][       Thread-257557][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 14:12:10,680 [DEBUG][       Thread-257557][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 14:12:10,680 [DEBUG][       Thread-257557][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:12:10,680 [DEBUG][       Thread-257557][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:12:10,680 [DEBUG][       Thread-257557][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:12:10,680 [DEBUG][       Thread-257557][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:12:10,680 [DEBUG][       Thread-257557][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 14:12:10,680 [DEBUG][       Thread-257557][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 14:12:10,680 [DEBUG][       Thread-257557][   transport.py][1871] : client lang: <none>
2025-06-13 14:12:10,680 [DEBUG][       Thread-257557][   transport.py][1871] : server lang: <none>
2025-06-13 14:12:10,680 [DEBUG][       Thread-257557][   transport.py][1871] : kex follows: False
2025-06-13 14:12:10,680 [DEBUG][       Thread-257557][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 14:12:10,680 [DEBUG][       Thread-257557][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 14:12:10,680 [DEBUG][       Thread-257557][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 14:12:10,680 [DEBUG][       Thread-257557][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 14:12:10,680 [DEBUG][       Thread-257557][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 14:12:10,680 [DEBUG][       Thread-257557][   transport.py][1871] : Compression: none
2025-06-13 14:12:10,680 [DEBUG][       Thread-257557][   transport.py][1871] : === End of kex handshake ===
2025-06-13 14:12:10,696 [DEBUG][       Thread-257557][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 14:12:10,697 [DEBUG][       Thread-257557][   transport.py][1871] : Switch to new keys ...
2025-06-13 14:12:10,697 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 14:12:10,697 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 14:12:10,698 [DEBUG][       Thread-257557][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 14:12:10,699 [DEBUG][       Thread-257557][   transport.py][1871] : userauth is OK
2025-06-13 14:12:10,725 [ INFO][       Thread-257557][   transport.py][1871] : Authentication (password) successful!
2025-06-13 14:12:10,726 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 14:12:11,381 [DEBUG][       Thread-257557][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 14:12:11,382 [DEBUG][       Thread-257557][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 14:12:11,425 [DEBUG][       Thread-257557][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 14:12:11,425 [DEBUG][       Thread-257557][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 14:12:11,429 [DEBUG][       Thread-257557][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 14:12:11,441 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 14:12:11,442 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 14:12:11,444 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 14:12:11,445 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 14:12:11,451 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 14:12:11,453 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 14:12:11,453 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 14:12:11,454 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 14:12:11,454 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.507923 -999.00  +13.70  17.06     35   -1.10 1 1 1 1 1   887    0 15.92 29.71 ----- 17.6 17.1 31.4 19.9 17.9 -30.8 16.8 -31.7 17.2 -29.6 18.4 -28.5
2025-06-13 14:12:11,454 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 14:12:11,454 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 14:12:11,455 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.507923
2025-06-13 14:12:11,455 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 14:12:11,456 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 14:12:11,456 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 14:12:11,456 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 14:12:11,456 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 14:12:11,457 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T14:11:42', tmtdew=17.07, humidity=30.4, cloud=0.0, wind=17.24, temperature=13.66, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T12:11:24.547', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 14:12:11,458 [DEBUG][       Thread-257557][   transport.py][1871] : EOF in transport thread
2025-06-13 14:12:11,531 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 14:12:11,545 [DEBUG][       Thread-257560][   transport.py][1871] : starting thread (client mode): 0x867b78b0
2025-06-13 14:12:11,545 [DEBUG][       Thread-257560][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 14:12:11,565 [DEBUG][       Thread-257560][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 14:12:11,565 [ INFO][       Thread-257560][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 14:12:11,573 [DEBUG][       Thread-257560][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 14:12:11,573 [DEBUG][       Thread-257560][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 14:12:11,573 [DEBUG][       Thread-257560][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 14:12:11,573 [DEBUG][       Thread-257560][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:12:11,573 [DEBUG][       Thread-257560][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:12:11,573 [DEBUG][       Thread-257560][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:12:11,573 [DEBUG][       Thread-257560][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:12:11,573 [DEBUG][       Thread-257560][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 14:12:11,574 [DEBUG][       Thread-257560][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 14:12:11,574 [DEBUG][       Thread-257560][   transport.py][1871] : client lang: <none>
2025-06-13 14:12:11,574 [DEBUG][       Thread-257560][   transport.py][1871] : server lang: <none>
2025-06-13 14:12:11,574 [DEBUG][       Thread-257560][   transport.py][1871] : kex follows: False
2025-06-13 14:12:11,574 [DEBUG][       Thread-257560][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 14:12:11,574 [DEBUG][       Thread-257560][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 14:12:11,574 [DEBUG][       Thread-257560][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 14:12:11,574 [DEBUG][       Thread-257560][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 14:12:11,574 [DEBUG][       Thread-257560][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 14:12:11,574 [DEBUG][       Thread-257560][   transport.py][1871] : Compression: none
2025-06-13 14:12:11,574 [DEBUG][       Thread-257560][   transport.py][1871] : === End of kex handshake ===
2025-06-13 14:12:11,630 [DEBUG][       Thread-257560][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 14:12:11,631 [DEBUG][       Thread-257560][   transport.py][1871] : Switch to new keys ...
2025-06-13 14:12:11,631 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 14:12:11,632 [DEBUG][       Thread-257560][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 14:12:11,633 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 14:12:11,686 [DEBUG][       Thread-257560][   transport.py][1871] : userauth is OK
2025-06-13 14:12:11,687 [DEBUG][       Thread-257560][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 14:12:11,687 [DEBUG][       Thread-257560][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 14:12:11,687 [DEBUG][       Thread-257560][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 14:12:11,687 [DEBUG][       Thread-257560][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 14:12:11,714 [ INFO][       Thread-257560][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 14:12:11,714 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 14:12:11,715 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 14:12:12,768 [DEBUG][       Thread-257560][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 14:12:12,769 [DEBUG][       Thread-257560][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 14:12:12,820 [DEBUG][       Thread-257560][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 14:12:12,820 [DEBUG][       Thread-257560][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 14:12:12,829 [DEBUG][       Thread-257560][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 14:12:12,838 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 14:12:12,839 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 14:12:12,848 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 14:12:12,857 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 14:12:12,858 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 14:12:12,858 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 14:12:12,866 [DEBUG][       Thread-257560][   transport.py][1871] : EOF in transport thread
2025-06-13 14:12:17,432 [DEBUG][Thread-257562 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:12:18,551 [DEBUG][Thread-257563 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:12:22,869 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 14:12:22,869 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 14:12:22,869 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 14:12:22,872 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 14:12:23,106 [DEBUG][Thread-257564 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:12:23,332 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 14, 12, 14), 16.75, 30.99, 0.0, 16.59, 13.66, 0, 0, 0, 2, 0, 0),)
2025-06-13 14:12:23,332 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 14:12:14
2025-06-13 14:12:23,413 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 14:12:23,416 [DEBUG][       Thread-257565][   transport.py][1871] : starting thread (client mode): 0x84206ec0
2025-06-13 14:12:23,416 [DEBUG][       Thread-257565][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 14:12:23,443 [DEBUG][       Thread-257565][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 14:12:23,443 [ INFO][       Thread-257565][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 14:12:23,447 [DEBUG][       Thread-257565][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 14:12:23,447 [DEBUG][       Thread-257565][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 14:12:23,447 [DEBUG][       Thread-257565][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 14:12:23,447 [DEBUG][       Thread-257565][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:12:23,447 [DEBUG][       Thread-257565][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:12:23,447 [DEBUG][       Thread-257565][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:12:23,447 [DEBUG][       Thread-257565][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:12:23,447 [DEBUG][       Thread-257565][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 14:12:23,447 [DEBUG][       Thread-257565][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 14:12:23,448 [DEBUG][       Thread-257565][   transport.py][1871] : client lang: <none>
2025-06-13 14:12:23,448 [DEBUG][       Thread-257565][   transport.py][1871] : server lang: <none>
2025-06-13 14:12:23,448 [DEBUG][       Thread-257565][   transport.py][1871] : kex follows: False
2025-06-13 14:12:23,448 [DEBUG][       Thread-257565][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 14:12:23,448 [DEBUG][       Thread-257565][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 14:12:23,448 [DEBUG][       Thread-257565][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 14:12:23,448 [DEBUG][       Thread-257565][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 14:12:23,448 [DEBUG][       Thread-257565][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 14:12:23,448 [DEBUG][       Thread-257565][   transport.py][1871] : Compression: none
2025-06-13 14:12:23,448 [DEBUG][       Thread-257565][   transport.py][1871] : === End of kex handshake ===
2025-06-13 14:12:23,466 [DEBUG][       Thread-257565][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 14:12:23,467 [DEBUG][       Thread-257565][   transport.py][1871] : Switch to new keys ...
2025-06-13 14:12:23,467 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 14:12:23,467 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 14:12:23,468 [DEBUG][       Thread-257565][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 14:12:23,468 [DEBUG][       Thread-257565][   transport.py][1871] : userauth is OK
2025-06-13 14:12:23,493 [ INFO][       Thread-257565][   transport.py][1871] : Authentication (password) successful!
2025-06-13 14:12:23,494 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 14:12:24,148 [DEBUG][       Thread-257565][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 14:12:24,148 [DEBUG][       Thread-257565][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 14:12:24,170 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:12:24,171 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:12:24,193 [DEBUG][       Thread-257565][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 14:12:24,193 [DEBUG][       Thread-257565][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 14:12:24,196 [DEBUG][       Thread-257565][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 14:12:24,208 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 14:12:24,208 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 14:12:24,209 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 14:12:24,211 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 14:12:24,215 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 14:12:24,217 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 14:12:24,218 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 14:12:24,218 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 14:12:24,218 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.507923 -999.00  +13.70  17.06     35   -1.10 1 1 1 1 1   887    0 15.92 29.71 ----- 17.6 17.1 31.4 19.9 17.9 -30.8 16.8 -31.7 17.2 -29.6 18.4 -28.5
2025-06-13 14:12:24,218 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 14:12:24,218 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 14:12:24,218 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.507923
2025-06-13 14:12:24,219 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 14:12:24,219 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 14:12:24,220 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 14:12:24,220 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 14:12:24,220 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 14:12:24,220 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T14:12:14', tmtdew=16.75, humidity=30.99, cloud=0.0, wind=16.59, temperature=13.66, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T12:11:24.547', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 14:12:24,221 [DEBUG][       Thread-257565][   transport.py][1871] : EOF in transport thread
2025-06-13 14:12:24,305 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 14:12:24,316 [DEBUG][       Thread-257568][   transport.py][1871] : starting thread (client mode): 0x867ffeb0
2025-06-13 14:12:24,316 [DEBUG][       Thread-257568][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 14:12:24,334 [DEBUG][       Thread-257568][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 14:12:24,334 [ INFO][       Thread-257568][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 14:12:24,348 [DEBUG][       Thread-257568][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 14:12:24,348 [DEBUG][       Thread-257568][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 14:12:24,348 [DEBUG][       Thread-257568][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 14:12:24,348 [DEBUG][       Thread-257568][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:12:24,348 [DEBUG][       Thread-257568][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:12:24,348 [DEBUG][       Thread-257568][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:12:24,348 [DEBUG][       Thread-257568][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:12:24,348 [DEBUG][       Thread-257568][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 14:12:24,348 [DEBUG][       Thread-257568][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 14:12:24,348 [DEBUG][       Thread-257568][   transport.py][1871] : client lang: <none>
2025-06-13 14:12:24,348 [DEBUG][       Thread-257568][   transport.py][1871] : server lang: <none>
2025-06-13 14:12:24,348 [DEBUG][       Thread-257568][   transport.py][1871] : kex follows: False
2025-06-13 14:12:24,348 [DEBUG][       Thread-257568][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 14:12:24,348 [DEBUG][       Thread-257568][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 14:12:24,348 [DEBUG][       Thread-257568][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 14:12:24,348 [DEBUG][       Thread-257568][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 14:12:24,348 [DEBUG][       Thread-257568][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 14:12:24,348 [DEBUG][       Thread-257568][   transport.py][1871] : Compression: none
2025-06-13 14:12:24,348 [DEBUG][       Thread-257568][   transport.py][1871] : === End of kex handshake ===
2025-06-13 14:12:24,409 [DEBUG][       Thread-257568][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 14:12:24,409 [DEBUG][       Thread-257568][   transport.py][1871] : Switch to new keys ...
2025-06-13 14:12:24,410 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 14:12:24,410 [DEBUG][       Thread-257568][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 14:12:24,411 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 14:12:24,477 [DEBUG][       Thread-257568][   transport.py][1871] : userauth is OK
2025-06-13 14:12:24,478 [DEBUG][       Thread-257568][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 14:12:24,487 [DEBUG][       Thread-257568][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 14:12:24,487 [DEBUG][       Thread-257568][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 14:12:24,487 [DEBUG][       Thread-257568][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 14:12:24,507 [ INFO][       Thread-257568][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 14:12:24,507 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 14:12:24,508 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 14:12:25,525 [DEBUG][       Thread-257568][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 14:12:25,526 [DEBUG][       Thread-257568][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 14:12:25,576 [DEBUG][       Thread-257568][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 14:12:25,576 [DEBUG][       Thread-257568][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 14:12:25,585 [DEBUG][       Thread-257568][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 14:12:25,594 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 14:12:25,595 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 14:12:25,603 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 14:12:25,613 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 14:12:25,613 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 14:12:25,613 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 14:12:25,621 [DEBUG][       Thread-257568][   transport.py][1871] : EOF in transport thread
2025-06-13 14:12:27,572 [DEBUG][Thread-257570 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:12:35,624 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 14:12:35,624 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 14:12:35,624 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 14:12:35,626 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 14:12:36,073 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 14, 12, 14), 16.75, 30.99, 0.0, 16.59, 13.66, 0, 0, 0, 2, 0, 0),)
2025-06-13 14:12:36,073 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 14:12:14
2025-06-13 14:12:36,155 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 14:12:36,160 [DEBUG][       Thread-257571][   transport.py][1871] : starting thread (client mode): 0x86369ae0
2025-06-13 14:12:36,160 [DEBUG][       Thread-257571][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 14:12:36,181 [DEBUG][       Thread-257571][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 14:12:36,181 [ INFO][       Thread-257571][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 14:12:36,184 [DEBUG][       Thread-257571][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 14:12:36,184 [DEBUG][       Thread-257571][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 14:12:36,185 [DEBUG][       Thread-257571][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 14:12:36,185 [DEBUG][       Thread-257571][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:12:36,185 [DEBUG][       Thread-257571][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:12:36,185 [DEBUG][       Thread-257571][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:12:36,185 [DEBUG][       Thread-257571][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:12:36,185 [DEBUG][       Thread-257571][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 14:12:36,185 [DEBUG][       Thread-257571][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 14:12:36,185 [DEBUG][       Thread-257571][   transport.py][1871] : client lang: <none>
2025-06-13 14:12:36,185 [DEBUG][       Thread-257571][   transport.py][1871] : server lang: <none>
2025-06-13 14:12:36,185 [DEBUG][       Thread-257571][   transport.py][1871] : kex follows: False
2025-06-13 14:12:36,185 [DEBUG][       Thread-257571][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 14:12:36,185 [DEBUG][       Thread-257571][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 14:12:36,185 [DEBUG][       Thread-257571][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 14:12:36,185 [DEBUG][       Thread-257571][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 14:12:36,185 [DEBUG][       Thread-257571][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 14:12:36,185 [DEBUG][       Thread-257571][   transport.py][1871] : Compression: none
2025-06-13 14:12:36,185 [DEBUG][       Thread-257571][   transport.py][1871] : === End of kex handshake ===
2025-06-13 14:12:36,201 [DEBUG][       Thread-257571][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 14:12:36,202 [DEBUG][       Thread-257571][   transport.py][1871] : Switch to new keys ...
2025-06-13 14:12:36,202 [DEBUG][       Thread-257571][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 14:12:36,203 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 14:12:36,203 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 14:12:36,204 [DEBUG][       Thread-257571][   transport.py][1871] : userauth is OK
2025-06-13 14:12:36,216 [ INFO][       Thread-257571][   transport.py][1871] : Authentication (password) successful!
2025-06-13 14:12:36,217 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 14:12:36,606 [DEBUG][Thread-257573 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:12:36,875 [DEBUG][       Thread-257571][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 14:12:36,875 [DEBUG][       Thread-257571][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 14:12:36,917 [DEBUG][       Thread-257571][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 14:12:36,917 [DEBUG][       Thread-257571][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 14:12:36,920 [DEBUG][       Thread-257571][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 14:12:36,931 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 14:12:36,931 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 14:12:36,933 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 14:12:36,935 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 14:12:36,939 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 14:12:36,941 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 14:12:36,941 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 14:12:36,942 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 14:12:36,942 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.508617 -999.00  +14.10  19.40     36   -0.60 1 1 1 1 1   887    0 15.39 18.23 ----- 18.0 19.4 10.0 27.9 18.0 -29.9 16.9 -32.1 17.3 -30.3 18.6 -28.3
2025-06-13 14:12:36,942 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 14:12:36,942 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 14:12:36,942 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.508617
2025-06-13 14:12:36,942 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 14:12:36,943 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 14:12:36,943 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 14:12:36,943 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 14:12:36,943 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 14:12:36,943 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T14:12:14', tmtdew=16.75, humidity=30.99, cloud=0.0, wind=16.59, temperature=13.66, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T12:12:24.509', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 14:12:36,943 [DEBUG][       Thread-257571][   transport.py][1871] : EOF in transport thread
2025-06-13 14:12:37,027 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 14:12:37,039 [DEBUG][       Thread-257575][   transport.py][1871] : starting thread (client mode): 0x867b78e0
2025-06-13 14:12:37,039 [DEBUG][       Thread-257575][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 14:12:37,055 [DEBUG][       Thread-257575][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 14:12:37,055 [ INFO][       Thread-257575][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 14:12:37,064 [DEBUG][       Thread-257575][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 14:12:37,064 [DEBUG][       Thread-257575][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 14:12:37,064 [DEBUG][       Thread-257575][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 14:12:37,064 [DEBUG][       Thread-257575][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:12:37,064 [DEBUG][       Thread-257575][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:12:37,064 [DEBUG][       Thread-257575][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:12:37,064 [DEBUG][       Thread-257575][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:12:37,064 [DEBUG][       Thread-257575][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 14:12:37,064 [DEBUG][       Thread-257575][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 14:12:37,064 [DEBUG][       Thread-257575][   transport.py][1871] : client lang: <none>
2025-06-13 14:12:37,064 [DEBUG][       Thread-257575][   transport.py][1871] : server lang: <none>
2025-06-13 14:12:37,064 [DEBUG][       Thread-257575][   transport.py][1871] : kex follows: False
2025-06-13 14:12:37,064 [DEBUG][       Thread-257575][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 14:12:37,064 [DEBUG][       Thread-257575][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 14:12:37,065 [DEBUG][       Thread-257575][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 14:12:37,065 [DEBUG][       Thread-257575][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 14:12:37,065 [DEBUG][       Thread-257575][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 14:12:37,065 [DEBUG][       Thread-257575][   transport.py][1871] : Compression: none
2025-06-13 14:12:37,065 [DEBUG][       Thread-257575][   transport.py][1871] : === End of kex handshake ===
2025-06-13 14:12:37,121 [DEBUG][       Thread-257575][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 14:12:37,122 [DEBUG][       Thread-257575][   transport.py][1871] : Switch to new keys ...
2025-06-13 14:12:37,122 [DEBUG][       Thread-257575][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 14:12:37,122 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 14:12:37,123 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 14:12:37,178 [DEBUG][       Thread-257575][   transport.py][1871] : userauth is OK
2025-06-13 14:12:37,178 [DEBUG][       Thread-257575][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 14:12:37,178 [DEBUG][       Thread-257575][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 14:12:37,178 [DEBUG][       Thread-257575][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 14:12:37,178 [DEBUG][       Thread-257575][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 14:12:37,198 [ INFO][       Thread-257575][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 14:12:37,198 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 14:12:37,198 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 14:12:38,270 [DEBUG][       Thread-257575][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 14:12:38,270 [DEBUG][       Thread-257575][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 14:12:38,320 [DEBUG][       Thread-257575][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 14:12:38,320 [DEBUG][       Thread-257575][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 14:12:38,329 [DEBUG][       Thread-257575][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 14:12:38,340 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 14:12:38,341 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 14:12:38,349 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 14:12:38,360 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 14:12:38,360 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 14:12:38,361 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 14:12:38,372 [DEBUG][       Thread-257575][   transport.py][1871] : EOF in transport thread
2025-06-13 14:12:45,625 [DEBUG][Thread-257577 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:12:48,371 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 14:12:48,372 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 14:12:48,372 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 14:12:48,374 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 14:12:48,829 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 14, 12, 46), 16.71, 31.09, 0.0, 11.63, 13.74, 0, 0, 0, 2, 0, 0),)
2025-06-13 14:12:48,829 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 14:12:46
2025-06-13 14:12:48,919 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 14:12:48,923 [DEBUG][       Thread-257578][   transport.py][1871] : starting thread (client mode): 0x84205ff0
2025-06-13 14:12:48,923 [DEBUG][       Thread-257578][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 14:12:48,944 [DEBUG][       Thread-257578][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 14:12:48,944 [ INFO][       Thread-257578][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 14:12:48,948 [DEBUG][       Thread-257578][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 14:12:48,948 [DEBUG][       Thread-257578][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 14:12:48,948 [DEBUG][       Thread-257578][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 14:12:48,948 [DEBUG][       Thread-257578][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:12:48,948 [DEBUG][       Thread-257578][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:12:48,948 [DEBUG][       Thread-257578][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:12:48,948 [DEBUG][       Thread-257578][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:12:48,948 [DEBUG][       Thread-257578][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 14:12:48,948 [DEBUG][       Thread-257578][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 14:12:48,948 [DEBUG][       Thread-257578][   transport.py][1871] : client lang: <none>
2025-06-13 14:12:48,948 [DEBUG][       Thread-257578][   transport.py][1871] : server lang: <none>
2025-06-13 14:12:48,948 [DEBUG][       Thread-257578][   transport.py][1871] : kex follows: False
2025-06-13 14:12:48,948 [DEBUG][       Thread-257578][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 14:12:48,948 [DEBUG][       Thread-257578][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 14:12:48,948 [DEBUG][       Thread-257578][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 14:12:48,948 [DEBUG][       Thread-257578][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 14:12:48,948 [DEBUG][       Thread-257578][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 14:12:48,948 [DEBUG][       Thread-257578][   transport.py][1871] : Compression: none
2025-06-13 14:12:48,948 [DEBUG][       Thread-257578][   transport.py][1871] : === End of kex handshake ===
2025-06-13 14:12:48,966 [DEBUG][       Thread-257578][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 14:12:48,966 [DEBUG][       Thread-257578][   transport.py][1871] : Switch to new keys ...
2025-06-13 14:12:48,967 [DEBUG][       Thread-257578][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 14:12:48,967 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 14:12:48,967 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 14:12:48,968 [DEBUG][       Thread-257578][   transport.py][1871] : userauth is OK
2025-06-13 14:12:48,992 [ INFO][       Thread-257578][   transport.py][1871] : Authentication (password) successful!
2025-06-13 14:12:48,993 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 14:12:49,651 [DEBUG][       Thread-257578][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 14:12:49,651 [DEBUG][       Thread-257578][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 14:12:49,693 [DEBUG][       Thread-257578][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 14:12:49,693 [DEBUG][       Thread-257578][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 14:12:49,697 [DEBUG][       Thread-257578][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 14:12:49,708 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 14:12:49,709 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 14:12:49,711 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 14:12:49,713 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 14:12:49,718 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 14:12:49,720 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 14:12:49,721 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 14:12:49,721 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 14:12:49,721 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.508617 -999.00  +14.10  19.40     36   -0.60 1 1 1 1 1   887    0 15.39 18.23 ----- 18.0 19.4 10.0 27.9 18.0 -29.9 16.9 -32.1 17.3 -30.3 18.6 -28.3
2025-06-13 14:12:49,721 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 14:12:49,722 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 14:12:49,722 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.508617
2025-06-13 14:12:49,722 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 14:12:49,722 [DEBUG][       Thread-257578][   transport.py][1871] : EOF in transport thread
2025-06-13 14:12:49,723 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 14:12:49,724 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 14:12:49,724 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 14:12:49,724 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 14:12:49,724 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T14:12:46', tmtdew=16.71, humidity=31.09, cloud=0.0, wind=11.63, temperature=13.74, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T12:12:24.509', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 14:12:49,807 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 14:12:49,819 [DEBUG][       Thread-257581][   transport.py][1871] : starting thread (client mode): 0x863bc970
2025-06-13 14:12:49,819 [DEBUG][       Thread-257581][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 14:12:49,835 [DEBUG][       Thread-257581][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 14:12:49,835 [ INFO][       Thread-257581][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 14:12:49,843 [DEBUG][       Thread-257581][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 14:12:49,843 [DEBUG][       Thread-257581][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 14:12:49,843 [DEBUG][       Thread-257581][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 14:12:49,843 [DEBUG][       Thread-257581][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:12:49,843 [DEBUG][       Thread-257581][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:12:49,843 [DEBUG][       Thread-257581][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:12:49,843 [DEBUG][       Thread-257581][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:12:49,843 [DEBUG][       Thread-257581][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 14:12:49,843 [DEBUG][       Thread-257581][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 14:12:49,843 [DEBUG][       Thread-257581][   transport.py][1871] : client lang: <none>
2025-06-13 14:12:49,843 [DEBUG][       Thread-257581][   transport.py][1871] : server lang: <none>
2025-06-13 14:12:49,843 [DEBUG][       Thread-257581][   transport.py][1871] : kex follows: False
2025-06-13 14:12:49,843 [DEBUG][       Thread-257581][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 14:12:49,843 [DEBUG][       Thread-257581][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 14:12:49,843 [DEBUG][       Thread-257581][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 14:12:49,843 [DEBUG][       Thread-257581][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 14:12:49,843 [DEBUG][       Thread-257581][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 14:12:49,844 [DEBUG][       Thread-257581][   transport.py][1871] : Compression: none
2025-06-13 14:12:49,844 [DEBUG][       Thread-257581][   transport.py][1871] : === End of kex handshake ===
2025-06-13 14:12:49,905 [DEBUG][       Thread-257581][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 14:12:49,906 [DEBUG][       Thread-257581][   transport.py][1871] : Switch to new keys ...
2025-06-13 14:12:49,906 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 14:12:49,907 [DEBUG][       Thread-257581][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 14:12:49,908 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 14:12:49,973 [DEBUG][       Thread-257581][   transport.py][1871] : userauth is OK
2025-06-13 14:12:49,974 [DEBUG][       Thread-257581][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 14:12:49,974 [DEBUG][       Thread-257581][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 14:12:49,974 [DEBUG][       Thread-257581][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 14:12:49,974 [DEBUG][       Thread-257581][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 14:12:49,992 [ INFO][       Thread-257581][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 14:12:49,993 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 14:12:49,993 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 14:12:51,045 [DEBUG][       Thread-257581][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 14:12:51,045 [DEBUG][       Thread-257581][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 14:12:51,096 [DEBUG][       Thread-257581][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 14:12:51,096 [DEBUG][       Thread-257581][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 14:12:51,105 [DEBUG][       Thread-257581][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 14:12:51,114 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 14:12:51,114 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 14:12:51,125 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 14:12:51,134 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 14:12:51,134 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 14:12:51,135 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 14:12:51,143 [DEBUG][       Thread-257581][   transport.py][1871] : EOF in transport thread
2025-06-13 14:12:54,646 [DEBUG][Thread-257583 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:12:58,744 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:12:58,745 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:13:01,136 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 14:13:01,136 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 14:13:01,137 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 14:13:01,139 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 14:13:01,594 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 14, 12, 46), 16.71, 31.09, 0.0, 11.63, 13.74, 0, 0, 0, 2, 0, 0),)
2025-06-13 14:13:01,595 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 14:12:46
2025-06-13 14:13:01,676 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 14:13:01,681 [DEBUG][       Thread-257584][   transport.py][1871] : starting thread (client mode): 0x863922c0
2025-06-13 14:13:01,681 [DEBUG][       Thread-257584][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 14:13:01,702 [DEBUG][       Thread-257584][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 14:13:01,702 [ INFO][       Thread-257584][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 14:13:01,705 [DEBUG][       Thread-257584][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 14:13:01,706 [DEBUG][       Thread-257584][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 14:13:01,706 [DEBUG][       Thread-257584][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 14:13:01,706 [DEBUG][       Thread-257584][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:13:01,706 [DEBUG][       Thread-257584][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:13:01,706 [DEBUG][       Thread-257584][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:13:01,706 [DEBUG][       Thread-257584][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:13:01,706 [DEBUG][       Thread-257584][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 14:13:01,706 [DEBUG][       Thread-257584][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 14:13:01,706 [DEBUG][       Thread-257584][   transport.py][1871] : client lang: <none>
2025-06-13 14:13:01,706 [DEBUG][       Thread-257584][   transport.py][1871] : server lang: <none>
2025-06-13 14:13:01,706 [DEBUG][       Thread-257584][   transport.py][1871] : kex follows: False
2025-06-13 14:13:01,706 [DEBUG][       Thread-257584][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 14:13:01,706 [DEBUG][       Thread-257584][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 14:13:01,706 [DEBUG][       Thread-257584][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 14:13:01,706 [DEBUG][       Thread-257584][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 14:13:01,706 [DEBUG][       Thread-257584][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 14:13:01,706 [DEBUG][       Thread-257584][   transport.py][1871] : Compression: none
2025-06-13 14:13:01,706 [DEBUG][       Thread-257584][   transport.py][1871] : === End of kex handshake ===
2025-06-13 14:13:01,722 [DEBUG][       Thread-257584][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 14:13:01,723 [DEBUG][       Thread-257584][   transport.py][1871] : Switch to new keys ...
2025-06-13 14:13:01,723 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 14:13:01,724 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 14:13:01,724 [DEBUG][       Thread-257584][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 14:13:01,725 [DEBUG][       Thread-257584][   transport.py][1871] : userauth is OK
2025-06-13 14:13:01,738 [ INFO][       Thread-257584][   transport.py][1871] : Authentication (password) successful!
2025-06-13 14:13:01,738 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 14:13:02,372 [DEBUG][       Thread-257584][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 14:13:02,373 [DEBUG][       Thread-257584][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 14:13:02,417 [DEBUG][       Thread-257584][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 14:13:02,417 [DEBUG][       Thread-257584][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 14:13:02,421 [DEBUG][       Thread-257584][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 14:13:02,436 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 14:13:02,436 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 14:13:02,438 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 14:13:02,440 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 14:13:02,445 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 14:13:02,447 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 14:13:02,448 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 14:13:02,448 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 14:13:02,448 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.508617 -999.00  +14.10  19.40     36   -0.60 1 1 1 1 1   887    0 15.39 18.23 ----- 18.0 19.4 10.0 27.9 18.0 -29.9 16.9 -32.1 17.3 -30.3 18.6 -28.3
2025-06-13 14:13:02,449 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 14:13:02,449 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 14:13:02,449 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.508617
2025-06-13 14:13:02,449 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 14:13:02,450 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 14:13:02,450 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 14:13:02,450 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 14:13:02,450 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 14:13:02,450 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T14:12:46', tmtdew=16.71, humidity=31.09, cloud=0.0, wind=11.63, temperature=13.74, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T12:12:24.509', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 14:13:02,451 [DEBUG][       Thread-257584][   transport.py][1871] : EOF in transport thread
2025-06-13 14:13:02,534 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 14:13:02,546 [DEBUG][       Thread-257587][   transport.py][1871] : starting thread (client mode): 0x863cb0d0
2025-06-13 14:13:02,546 [DEBUG][       Thread-257587][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 14:13:02,565 [DEBUG][       Thread-257587][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 14:13:02,566 [ INFO][       Thread-257587][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 14:13:02,574 [DEBUG][       Thread-257587][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 14:13:02,574 [DEBUG][       Thread-257587][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 14:13:02,574 [DEBUG][       Thread-257587][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 14:13:02,574 [DEBUG][       Thread-257587][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:13:02,574 [DEBUG][       Thread-257587][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:13:02,574 [DEBUG][       Thread-257587][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:13:02,574 [DEBUG][       Thread-257587][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:13:02,574 [DEBUG][       Thread-257587][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 14:13:02,574 [DEBUG][       Thread-257587][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 14:13:02,575 [DEBUG][       Thread-257587][   transport.py][1871] : client lang: <none>
2025-06-13 14:13:02,575 [DEBUG][       Thread-257587][   transport.py][1871] : server lang: <none>
2025-06-13 14:13:02,575 [DEBUG][       Thread-257587][   transport.py][1871] : kex follows: False
2025-06-13 14:13:02,575 [DEBUG][       Thread-257587][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 14:13:02,575 [DEBUG][       Thread-257587][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 14:13:02,575 [DEBUG][       Thread-257587][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 14:13:02,575 [DEBUG][       Thread-257587][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 14:13:02,575 [DEBUG][       Thread-257587][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 14:13:02,575 [DEBUG][       Thread-257587][   transport.py][1871] : Compression: none
2025-06-13 14:13:02,575 [DEBUG][       Thread-257587][   transport.py][1871] : === End of kex handshake ===
2025-06-13 14:13:02,640 [DEBUG][       Thread-257587][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 14:13:02,641 [DEBUG][       Thread-257587][   transport.py][1871] : Switch to new keys ...
2025-06-13 14:13:02,642 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 14:13:02,643 [DEBUG][       Thread-257587][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 14:13:02,643 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 14:13:02,698 [DEBUG][       Thread-257587][   transport.py][1871] : userauth is OK
2025-06-13 14:13:02,699 [DEBUG][       Thread-257587][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 14:13:02,699 [DEBUG][       Thread-257587][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 14:13:02,699 [DEBUG][       Thread-257587][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 14:13:02,699 [DEBUG][       Thread-257587][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 14:13:02,717 [ INFO][       Thread-257587][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 14:13:02,718 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 14:13:02,718 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 14:13:03,681 [DEBUG][Thread-257589 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:13:03,793 [DEBUG][       Thread-257587][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 14:13:03,794 [DEBUG][       Thread-257587][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 14:13:03,844 [DEBUG][       Thread-257587][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 14:13:03,844 [DEBUG][       Thread-257587][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 14:13:03,854 [DEBUG][       Thread-257587][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 14:13:03,869 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 14:13:03,869 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 14:13:03,879 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 14:13:03,888 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 14:13:03,888 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 14:13:03,889 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 14:13:03,897 [DEBUG][       Thread-257587][   transport.py][1871] : EOF in transport thread
2025-06-13 14:13:12,707 [DEBUG][Thread-257590 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:13:13,899 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 14:13:13,899 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 14:13:13,900 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 14:13:13,902 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 14:13:14,360 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 14, 12, 46), 16.71, 31.09, 0.0, 11.63, 13.74, 0, 0, 0, 2, 0, 0),)
2025-06-13 14:13:14,361 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 14:12:46
2025-06-13 14:13:14,442 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 14:13:14,449 [DEBUG][       Thread-257591][   transport.py][1871] : starting thread (client mode): 0x84204df0
2025-06-13 14:13:14,449 [DEBUG][       Thread-257591][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 14:13:14,468 [DEBUG][       Thread-257591][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 14:13:14,468 [ INFO][       Thread-257591][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 14:13:14,471 [DEBUG][       Thread-257591][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 14:13:14,471 [DEBUG][       Thread-257591][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 14:13:14,471 [DEBUG][       Thread-257591][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 14:13:14,471 [DEBUG][       Thread-257591][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:13:14,471 [DEBUG][       Thread-257591][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:13:14,471 [DEBUG][       Thread-257591][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:13:14,471 [DEBUG][       Thread-257591][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:13:14,471 [DEBUG][       Thread-257591][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 14:13:14,471 [DEBUG][       Thread-257591][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 14:13:14,471 [DEBUG][       Thread-257591][   transport.py][1871] : client lang: <none>
2025-06-13 14:13:14,472 [DEBUG][       Thread-257591][   transport.py][1871] : server lang: <none>
2025-06-13 14:13:14,472 [DEBUG][       Thread-257591][   transport.py][1871] : kex follows: False
2025-06-13 14:13:14,472 [DEBUG][       Thread-257591][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 14:13:14,472 [DEBUG][       Thread-257591][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 14:13:14,472 [DEBUG][       Thread-257591][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 14:13:14,472 [DEBUG][       Thread-257591][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 14:13:14,472 [DEBUG][       Thread-257591][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 14:13:14,472 [DEBUG][       Thread-257591][   transport.py][1871] : Compression: none
2025-06-13 14:13:14,472 [DEBUG][       Thread-257591][   transport.py][1871] : === End of kex handshake ===
2025-06-13 14:13:14,491 [DEBUG][       Thread-257591][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 14:13:14,491 [DEBUG][       Thread-257591][   transport.py][1871] : Switch to new keys ...
2025-06-13 14:13:14,491 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 14:13:14,492 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 14:13:14,492 [DEBUG][       Thread-257591][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 14:13:14,493 [DEBUG][       Thread-257591][   transport.py][1871] : userauth is OK
2025-06-13 14:13:14,517 [ INFO][       Thread-257591][   transport.py][1871] : Authentication (password) successful!
2025-06-13 14:13:14,518 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 14:13:15,194 [DEBUG][       Thread-257591][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 14:13:15,194 [DEBUG][       Thread-257591][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 14:13:15,237 [DEBUG][       Thread-257591][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 14:13:15,237 [DEBUG][       Thread-257591][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 14:13:15,240 [DEBUG][       Thread-257591][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 14:13:15,253 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 14:13:15,253 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 14:13:15,255 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 14:13:15,258 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 14:13:15,264 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 14:13:15,267 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 14:13:15,267 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 14:13:15,268 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 14:13:15,268 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.508964 -999.00  +13.70  23.31     36   -1.00 1 1 1 1 1   887    0 15.38 14.71 ----- 22.9 23.3 23.0 25.4 17.9 -30.7 16.8 -31.9 17.3 -30.3 18.5 -28.5
2025-06-13 14:13:15,268 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 14:13:15,268 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 14:13:15,268 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.508964
2025-06-13 14:13:15,269 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 14:13:15,270 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 14:13:15,270 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 14:13:15,270 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 14:13:15,270 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 14:13:15,271 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T14:12:46', tmtdew=16.71, humidity=31.09, cloud=0.0, wind=11.63, temperature=13.74, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T12:12:54.490', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 14:13:15,272 [DEBUG][       Thread-257591][   transport.py][1871] : EOF in transport thread
2025-06-13 14:13:15,359 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 14:13:15,371 [DEBUG][       Thread-257594][   transport.py][1871] : starting thread (client mode): 0x86893df0
2025-06-13 14:13:15,371 [DEBUG][       Thread-257594][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 14:13:15,387 [DEBUG][       Thread-257594][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 14:13:15,387 [ INFO][       Thread-257594][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 14:13:15,395 [DEBUG][       Thread-257594][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 14:13:15,395 [DEBUG][       Thread-257594][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 14:13:15,395 [DEBUG][       Thread-257594][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 14:13:15,396 [DEBUG][       Thread-257594][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:13:15,396 [DEBUG][       Thread-257594][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:13:15,396 [DEBUG][       Thread-257594][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:13:15,396 [DEBUG][       Thread-257594][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:13:15,396 [DEBUG][       Thread-257594][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 14:13:15,396 [DEBUG][       Thread-257594][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 14:13:15,396 [DEBUG][       Thread-257594][   transport.py][1871] : client lang: <none>
2025-06-13 14:13:15,396 [DEBUG][       Thread-257594][   transport.py][1871] : server lang: <none>
2025-06-13 14:13:15,396 [DEBUG][       Thread-257594][   transport.py][1871] : kex follows: False
2025-06-13 14:13:15,396 [DEBUG][       Thread-257594][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 14:13:15,396 [DEBUG][       Thread-257594][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 14:13:15,396 [DEBUG][       Thread-257594][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 14:13:15,396 [DEBUG][       Thread-257594][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 14:13:15,396 [DEBUG][       Thread-257594][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 14:13:15,396 [DEBUG][       Thread-257594][   transport.py][1871] : Compression: none
2025-06-13 14:13:15,396 [DEBUG][       Thread-257594][   transport.py][1871] : === End of kex handshake ===
2025-06-13 14:13:15,455 [DEBUG][       Thread-257594][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 14:13:15,455 [DEBUG][       Thread-257594][   transport.py][1871] : Switch to new keys ...
2025-06-13 14:13:15,456 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 14:13:15,457 [DEBUG][       Thread-257594][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 14:13:15,458 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 14:13:15,519 [DEBUG][       Thread-257594][   transport.py][1871] : userauth is OK
2025-06-13 14:13:15,520 [DEBUG][       Thread-257594][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 14:13:15,520 [DEBUG][       Thread-257594][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 14:13:15,520 [DEBUG][       Thread-257594][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 14:13:15,520 [DEBUG][       Thread-257594][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 14:13:15,540 [ INFO][       Thread-257594][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 14:13:15,540 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 14:13:15,541 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 14:13:16,563 [DEBUG][       Thread-257594][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 14:13:16,563 [DEBUG][       Thread-257594][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 14:13:16,612 [DEBUG][       Thread-257594][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 14:13:16,612 [DEBUG][       Thread-257594][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 14:13:16,622 [DEBUG][       Thread-257594][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 14:13:16,631 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 14:13:16,631 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 14:13:16,640 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 14:13:16,650 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 14:13:16,651 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 14:13:16,651 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 14:13:16,664 [DEBUG][       Thread-257594][   transport.py][1871] : EOF in transport thread
2025-06-13 14:13:17,481 [DEBUG][Thread-257596 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:13:21,726 [DEBUG][Thread-257597 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:13:24,241 [DEBUG][Thread-257598 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:13:25,333 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:13:25,334 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:13:26,662 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 14:13:26,662 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 14:13:26,662 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 14:13:26,664 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 14:13:27,119 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 14, 13, 17), 16.9, 31.05, 0.0, 14.06, 13.96, 0, 0, 0, 2, 0, 0),)
2025-06-13 14:13:27,120 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 14:13:17
2025-06-13 14:13:27,201 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 14:13:27,206 [DEBUG][       Thread-257599][   transport.py][1871] : starting thread (client mode): 0x84205660
2025-06-13 14:13:27,206 [DEBUG][       Thread-257599][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 14:13:27,226 [DEBUG][       Thread-257599][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 14:13:27,226 [ INFO][       Thread-257599][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 14:13:27,230 [DEBUG][       Thread-257599][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 14:13:27,231 [DEBUG][       Thread-257599][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 14:13:27,231 [DEBUG][       Thread-257599][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 14:13:27,231 [DEBUG][       Thread-257599][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:13:27,231 [DEBUG][       Thread-257599][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:13:27,231 [DEBUG][       Thread-257599][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:13:27,231 [DEBUG][       Thread-257599][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:13:27,231 [DEBUG][       Thread-257599][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 14:13:27,231 [DEBUG][       Thread-257599][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 14:13:27,231 [DEBUG][       Thread-257599][   transport.py][1871] : client lang: <none>
2025-06-13 14:13:27,231 [DEBUG][       Thread-257599][   transport.py][1871] : server lang: <none>
2025-06-13 14:13:27,231 [DEBUG][       Thread-257599][   transport.py][1871] : kex follows: False
2025-06-13 14:13:27,231 [DEBUG][       Thread-257599][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 14:13:27,231 [DEBUG][       Thread-257599][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 14:13:27,231 [DEBUG][       Thread-257599][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 14:13:27,231 [DEBUG][       Thread-257599][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 14:13:27,231 [DEBUG][       Thread-257599][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 14:13:27,231 [DEBUG][       Thread-257599][   transport.py][1871] : Compression: none
2025-06-13 14:13:27,231 [DEBUG][       Thread-257599][   transport.py][1871] : === End of kex handshake ===
2025-06-13 14:13:27,249 [DEBUG][       Thread-257599][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 14:13:27,249 [DEBUG][       Thread-257599][   transport.py][1871] : Switch to new keys ...
2025-06-13 14:13:27,250 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 14:13:27,250 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 14:13:27,251 [DEBUG][       Thread-257599][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 14:13:27,251 [DEBUG][       Thread-257599][   transport.py][1871] : userauth is OK
2025-06-13 14:13:27,264 [ INFO][       Thread-257599][   transport.py][1871] : Authentication (password) successful!
2025-06-13 14:13:27,265 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 14:13:27,886 [DEBUG][       Thread-257599][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 14:13:27,887 [DEBUG][       Thread-257599][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 14:13:27,929 [DEBUG][       Thread-257599][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 14:13:27,929 [DEBUG][       Thread-257599][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 14:13:27,933 [DEBUG][       Thread-257599][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 14:13:27,945 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 14:13:27,945 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 14:13:27,947 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 14:13:27,950 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 14:13:27,956 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 14:13:27,958 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 14:13:27,958 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 14:13:27,959 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 14:13:27,959 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.508964 -999.00  +13.70  23.31     36   -1.00 1 1 1 1 1   887    0 15.38 14.71 ----- 22.9 23.3 23.0 25.4 17.9 -30.7 16.8 -31.9 17.3 -30.3 18.5 -28.5
2025-06-13 14:13:27,959 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 14:13:27,959 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 14:13:27,960 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.508964
2025-06-13 14:13:27,960 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 14:13:27,961 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 14:13:27,961 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 14:13:27,961 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 14:13:27,961 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 14:13:27,961 [DEBUG][       Thread-257599][   transport.py][1871] : EOF in transport thread
2025-06-13 14:13:27,961 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T14:13:17', tmtdew=16.9, humidity=31.05, cloud=0.0, wind=14.06, temperature=13.96, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T12:12:54.490', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 14:13:28,045 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 14:13:28,054 [DEBUG][       Thread-257602][   transport.py][1871] : starting thread (client mode): 0x867b6c80
2025-06-13 14:13:28,054 [DEBUG][       Thread-257602][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 14:13:28,069 [DEBUG][       Thread-257602][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 14:13:28,069 [ INFO][       Thread-257602][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 14:13:28,077 [DEBUG][       Thread-257602][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 14:13:28,077 [DEBUG][       Thread-257602][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 14:13:28,077 [DEBUG][       Thread-257602][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 14:13:28,077 [DEBUG][       Thread-257602][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:13:28,077 [DEBUG][       Thread-257602][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:13:28,077 [DEBUG][       Thread-257602][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:13:28,077 [DEBUG][       Thread-257602][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:13:28,077 [DEBUG][       Thread-257602][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 14:13:28,077 [DEBUG][       Thread-257602][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 14:13:28,077 [DEBUG][       Thread-257602][   transport.py][1871] : client lang: <none>
2025-06-13 14:13:28,077 [DEBUG][       Thread-257602][   transport.py][1871] : server lang: <none>
2025-06-13 14:13:28,078 [DEBUG][       Thread-257602][   transport.py][1871] : kex follows: False
2025-06-13 14:13:28,078 [DEBUG][       Thread-257602][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 14:13:28,078 [DEBUG][       Thread-257602][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 14:13:28,078 [DEBUG][       Thread-257602][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 14:13:28,078 [DEBUG][       Thread-257602][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 14:13:28,078 [DEBUG][       Thread-257602][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 14:13:28,078 [DEBUG][       Thread-257602][   transport.py][1871] : Compression: none
2025-06-13 14:13:28,078 [DEBUG][       Thread-257602][   transport.py][1871] : === End of kex handshake ===
2025-06-13 14:13:28,135 [DEBUG][       Thread-257602][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 14:13:28,135 [DEBUG][       Thread-257602][   transport.py][1871] : Switch to new keys ...
2025-06-13 14:13:28,136 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 14:13:28,137 [DEBUG][       Thread-257602][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 14:13:28,137 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 14:13:28,195 [DEBUG][       Thread-257602][   transport.py][1871] : userauth is OK
2025-06-13 14:13:28,195 [DEBUG][       Thread-257602][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 14:13:28,195 [DEBUG][       Thread-257602][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 14:13:28,195 [DEBUG][       Thread-257602][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 14:13:28,195 [DEBUG][       Thread-257602][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 14:13:28,214 [ INFO][       Thread-257602][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 14:13:28,214 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 14:13:28,214 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 14:13:29,281 [DEBUG][       Thread-257602][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 14:13:29,282 [DEBUG][       Thread-257602][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 14:13:29,332 [DEBUG][       Thread-257602][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 14:13:29,332 [DEBUG][       Thread-257602][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 14:13:29,341 [DEBUG][       Thread-257602][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 14:13:29,354 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 14:13:29,354 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 14:13:29,364 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 14:13:29,373 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 14:13:29,374 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 14:13:29,374 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 14:13:29,384 [DEBUG][       Thread-257602][   transport.py][1871] : EOF in transport thread
2025-06-13 14:13:30,747 [DEBUG][Thread-257604 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:13:39,384 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 14:13:39,385 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 14:13:39,393 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 14:13:39,396 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 14:13:39,791 [DEBUG][Thread-257605 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:13:39,848 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 14, 13, 17), 16.9, 31.05, 0.0, 14.06, 13.96, 0, 0, 0, 2, 0, 0),)
2025-06-13 14:13:39,849 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 14:13:17
2025-06-13 14:13:39,930 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 14:13:39,936 [DEBUG][       Thread-257606][   transport.py][1871] : starting thread (client mode): 0x86368970
2025-06-13 14:13:39,936 [DEBUG][       Thread-257606][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 14:13:39,956 [DEBUG][       Thread-257606][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 14:13:39,956 [ INFO][       Thread-257606][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 14:13:39,959 [DEBUG][       Thread-257606][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 14:13:39,959 [DEBUG][       Thread-257606][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 14:13:39,960 [DEBUG][       Thread-257606][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 14:13:39,960 [DEBUG][       Thread-257606][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:13:39,960 [DEBUG][       Thread-257606][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:13:39,960 [DEBUG][       Thread-257606][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:13:39,960 [DEBUG][       Thread-257606][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:13:39,960 [DEBUG][       Thread-257606][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 14:13:39,960 [DEBUG][       Thread-257606][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 14:13:39,960 [DEBUG][       Thread-257606][   transport.py][1871] : client lang: <none>
2025-06-13 14:13:39,960 [DEBUG][       Thread-257606][   transport.py][1871] : server lang: <none>
2025-06-13 14:13:39,960 [DEBUG][       Thread-257606][   transport.py][1871] : kex follows: False
2025-06-13 14:13:39,960 [DEBUG][       Thread-257606][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 14:13:39,960 [DEBUG][       Thread-257606][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 14:13:39,960 [DEBUG][       Thread-257606][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 14:13:39,960 [DEBUG][       Thread-257606][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 14:13:39,960 [DEBUG][       Thread-257606][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 14:13:39,960 [DEBUG][       Thread-257606][   transport.py][1871] : Compression: none
2025-06-13 14:13:39,960 [DEBUG][       Thread-257606][   transport.py][1871] : === End of kex handshake ===
2025-06-13 14:13:39,977 [DEBUG][       Thread-257606][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 14:13:39,977 [DEBUG][       Thread-257606][   transport.py][1871] : Switch to new keys ...
2025-06-13 14:13:39,978 [DEBUG][       Thread-257606][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 14:13:39,978 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 14:13:39,978 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 14:13:39,980 [DEBUG][       Thread-257606][   transport.py][1871] : userauth is OK
2025-06-13 14:13:40,005 [ INFO][       Thread-257606][   transport.py][1871] : Authentication (password) successful!
2025-06-13 14:13:40,006 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 14:13:40,605 [DEBUG][       Thread-257606][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 14:13:40,605 [DEBUG][       Thread-257606][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 14:13:40,649 [DEBUG][       Thread-257606][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 14:13:40,649 [DEBUG][       Thread-257606][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 14:13:40,652 [DEBUG][       Thread-257606][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 14:13:40,664 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 14:13:40,664 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 14:13:40,666 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 14:13:40,668 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 14:13:40,674 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 14:13:40,676 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 14:13:40,676 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 14:13:40,676 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 14:13:40,677 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.509311 -999.00  +13.90  15.04     36   -0.50 1 1 1 1 1   887    0 14.94 7.41 ----- 12.7 15.0 12.6 25.7 17.9 -30.2 16.9 -31.3 17.4 -29.6 18.5 -28.5
2025-06-13 14:13:40,677 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 14:13:40,677 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 14:13:40,677 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.509311
2025-06-13 14:13:40,677 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 14:13:40,678 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 14:13:40,678 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 14:13:40,678 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 14:13:40,678 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 14:13:40,678 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T14:13:17', tmtdew=16.9, humidity=31.05, cloud=0.0, wind=14.06, temperature=13.96, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T12:13:24.470', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 14:13:40,679 [DEBUG][       Thread-257606][   transport.py][1871] : EOF in transport thread
2025-06-13 14:13:40,761 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 14:13:40,773 [DEBUG][       Thread-257609][   transport.py][1871] : starting thread (client mode): 0x868c8070
2025-06-13 14:13:40,773 [DEBUG][       Thread-257609][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 14:13:40,789 [DEBUG][       Thread-257609][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 14:13:40,789 [ INFO][       Thread-257609][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 14:13:40,801 [DEBUG][       Thread-257609][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 14:13:40,802 [DEBUG][       Thread-257609][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 14:13:40,802 [DEBUG][       Thread-257609][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 14:13:40,802 [DEBUG][       Thread-257609][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:13:40,802 [DEBUG][       Thread-257609][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:13:40,802 [DEBUG][       Thread-257609][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:13:40,802 [DEBUG][       Thread-257609][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:13:40,802 [DEBUG][       Thread-257609][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 14:13:40,802 [DEBUG][       Thread-257609][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 14:13:40,802 [DEBUG][       Thread-257609][   transport.py][1871] : client lang: <none>
2025-06-13 14:13:40,802 [DEBUG][       Thread-257609][   transport.py][1871] : server lang: <none>
2025-06-13 14:13:40,802 [DEBUG][       Thread-257609][   transport.py][1871] : kex follows: False
2025-06-13 14:13:40,802 [DEBUG][       Thread-257609][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 14:13:40,802 [DEBUG][       Thread-257609][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 14:13:40,802 [DEBUG][       Thread-257609][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 14:13:40,803 [DEBUG][       Thread-257609][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 14:13:40,803 [DEBUG][       Thread-257609][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 14:13:40,803 [DEBUG][       Thread-257609][   transport.py][1871] : Compression: none
2025-06-13 14:13:40,803 [DEBUG][       Thread-257609][   transport.py][1871] : === End of kex handshake ===
2025-06-13 14:13:40,855 [DEBUG][       Thread-257609][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 14:13:40,855 [DEBUG][       Thread-257609][   transport.py][1871] : Switch to new keys ...
2025-06-13 14:13:40,856 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 14:13:40,857 [DEBUG][       Thread-257609][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 14:13:40,857 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 14:13:40,911 [DEBUG][       Thread-257609][   transport.py][1871] : userauth is OK
2025-06-13 14:13:40,911 [DEBUG][       Thread-257609][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 14:13:40,911 [DEBUG][       Thread-257609][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 14:13:40,911 [DEBUG][       Thread-257609][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 14:13:40,911 [DEBUG][       Thread-257609][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 14:13:40,931 [ INFO][       Thread-257609][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 14:13:40,931 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 14:13:40,931 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 14:13:41,936 [DEBUG][       Thread-257609][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 14:13:41,936 [DEBUG][       Thread-257609][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 14:13:41,984 [DEBUG][       Thread-257609][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 14:13:41,984 [DEBUG][       Thread-257609][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 14:13:41,993 [DEBUG][       Thread-257609][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 14:13:42,002 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 14:13:42,002 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 14:13:42,011 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 14:13:42,020 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 14:13:42,020 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 14:13:42,021 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 14:13:42,028 [DEBUG][       Thread-257609][   transport.py][1871] : EOF in transport thread
2025-06-13 14:13:48,812 [DEBUG][Thread-257611 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:13:52,025 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 14:13:52,025 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 14:13:52,025 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 14:13:52,027 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 14:13:52,494 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 14, 13, 49), 16.94, 30.95, 0.0, 12.23, 13.87, 0, 0, 0, 2, 0, 0),)
2025-06-13 14:13:52,494 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 14:13:49
2025-06-13 14:13:52,576 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 14:13:52,580 [DEBUG][       Thread-257612][   transport.py][1871] : starting thread (client mode): 0x84204ee0
2025-06-13 14:13:52,580 [DEBUG][       Thread-257612][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 14:13:52,601 [DEBUG][       Thread-257612][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 14:13:52,601 [ INFO][       Thread-257612][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 14:13:52,605 [DEBUG][       Thread-257612][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 14:13:52,605 [DEBUG][       Thread-257612][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 14:13:52,605 [DEBUG][       Thread-257612][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 14:13:52,605 [DEBUG][       Thread-257612][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:13:52,605 [DEBUG][       Thread-257612][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:13:52,605 [DEBUG][       Thread-257612][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:13:52,605 [DEBUG][       Thread-257612][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:13:52,605 [DEBUG][       Thread-257612][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 14:13:52,605 [DEBUG][       Thread-257612][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 14:13:52,605 [DEBUG][       Thread-257612][   transport.py][1871] : client lang: <none>
2025-06-13 14:13:52,605 [DEBUG][       Thread-257612][   transport.py][1871] : server lang: <none>
2025-06-13 14:13:52,605 [DEBUG][       Thread-257612][   transport.py][1871] : kex follows: False
2025-06-13 14:13:52,605 [DEBUG][       Thread-257612][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 14:13:52,605 [DEBUG][       Thread-257612][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 14:13:52,605 [DEBUG][       Thread-257612][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 14:13:52,605 [DEBUG][       Thread-257612][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 14:13:52,605 [DEBUG][       Thread-257612][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 14:13:52,605 [DEBUG][       Thread-257612][   transport.py][1871] : Compression: none
2025-06-13 14:13:52,605 [DEBUG][       Thread-257612][   transport.py][1871] : === End of kex handshake ===
2025-06-13 14:13:52,620 [DEBUG][       Thread-257612][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 14:13:52,621 [DEBUG][       Thread-257612][   transport.py][1871] : Switch to new keys ...
2025-06-13 14:13:52,621 [DEBUG][       Thread-257612][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 14:13:52,622 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 14:13:52,622 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 14:13:52,623 [DEBUG][       Thread-257612][   transport.py][1871] : userauth is OK
2025-06-13 14:13:52,636 [ INFO][       Thread-257612][   transport.py][1871] : Authentication (password) successful!
2025-06-13 14:13:52,637 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 14:13:53,263 [DEBUG][       Thread-257612][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 14:13:53,264 [DEBUG][       Thread-257612][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 14:13:53,305 [DEBUG][       Thread-257612][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 14:13:53,305 [DEBUG][       Thread-257612][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 14:13:53,308 [DEBUG][       Thread-257612][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 14:13:53,322 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 14:13:53,322 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 14:13:53,324 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 14:13:53,326 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 14:13:53,332 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 14:13:53,334 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 14:13:53,334 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 14:13:53,335 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 14:13:53,335 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.509311 -999.00  +13.90  15.04     36   -0.50 1 1 1 1 1   887    0 14.94 7.41 ----- 12.7 15.0 12.6 25.7 17.9 -30.2 16.9 -31.3 17.4 -29.6 18.5 -28.5
2025-06-13 14:13:53,335 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 14:13:53,335 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 14:13:53,335 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.509311
2025-06-13 14:13:53,336 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 14:13:53,337 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 14:13:53,337 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 14:13:53,337 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 14:13:53,337 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 14:13:53,337 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T14:13:49', tmtdew=16.94, humidity=30.95, cloud=0.0, wind=12.23, temperature=13.87, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T12:13:24.470', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 14:13:53,338 [DEBUG][       Thread-257612][   transport.py][1871] : EOF in transport thread
2025-06-13 14:13:53,422 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 14:13:53,431 [DEBUG][       Thread-257615][   transport.py][1871] : starting thread (client mode): 0x867b78b0
2025-06-13 14:13:53,431 [DEBUG][       Thread-257615][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 14:13:53,446 [DEBUG][       Thread-257615][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 14:13:53,447 [ INFO][       Thread-257615][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 14:13:53,454 [DEBUG][       Thread-257615][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 14:13:53,454 [DEBUG][       Thread-257615][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 14:13:53,454 [DEBUG][       Thread-257615][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 14:13:53,455 [DEBUG][       Thread-257615][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:13:53,455 [DEBUG][       Thread-257615][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:13:53,455 [DEBUG][       Thread-257615][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:13:53,455 [DEBUG][       Thread-257615][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:13:53,455 [DEBUG][       Thread-257615][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 14:13:53,455 [DEBUG][       Thread-257615][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 14:13:53,455 [DEBUG][       Thread-257615][   transport.py][1871] : client lang: <none>
2025-06-13 14:13:53,455 [DEBUG][       Thread-257615][   transport.py][1871] : server lang: <none>
2025-06-13 14:13:53,455 [DEBUG][       Thread-257615][   transport.py][1871] : kex follows: False
2025-06-13 14:13:53,455 [DEBUG][       Thread-257615][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 14:13:53,455 [DEBUG][       Thread-257615][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 14:13:53,455 [DEBUG][       Thread-257615][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 14:13:53,455 [DEBUG][       Thread-257615][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 14:13:53,455 [DEBUG][       Thread-257615][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 14:13:53,455 [DEBUG][       Thread-257615][   transport.py][1871] : Compression: none
2025-06-13 14:13:53,455 [DEBUG][       Thread-257615][   transport.py][1871] : === End of kex handshake ===
2025-06-13 14:13:53,518 [DEBUG][       Thread-257615][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 14:13:53,519 [DEBUG][       Thread-257615][   transport.py][1871] : Switch to new keys ...
2025-06-13 14:13:53,520 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 14:13:53,520 [DEBUG][       Thread-257615][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 14:13:53,521 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 14:13:53,578 [DEBUG][       Thread-257615][   transport.py][1871] : userauth is OK
2025-06-13 14:13:53,579 [DEBUG][       Thread-257615][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 14:13:53,579 [DEBUG][       Thread-257615][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 14:13:53,579 [DEBUG][       Thread-257615][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 14:13:53,579 [DEBUG][       Thread-257615][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 14:13:53,602 [ INFO][       Thread-257615][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 14:13:53,602 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 14:13:53,603 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 14:13:54,660 [DEBUG][       Thread-257615][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 14:13:54,661 [DEBUG][       Thread-257615][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 14:13:54,712 [DEBUG][       Thread-257615][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 14:13:54,712 [DEBUG][       Thread-257615][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 14:13:54,722 [DEBUG][       Thread-257615][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 14:13:54,733 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 14:13:54,733 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 14:13:54,755 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 14:13:54,765 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 14:13:54,765 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 14:13:54,765 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 14:13:54,773 [DEBUG][       Thread-257615][   transport.py][1871] : EOF in transport thread
2025-06-13 14:13:57,830 [DEBUG][Thread-257617 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:13:58,902 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:13:58,902 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:14:04,776 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 14:14:04,776 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 14:14:04,776 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 14:14:04,779 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 14:14:05,231 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 14, 13, 49), 16.94, 30.95, 0.0, 12.23, 13.87, 0, 0, 0, 2, 0, 0),)
2025-06-13 14:14:05,231 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 14:13:49
2025-06-13 14:14:05,312 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 14:14:05,317 [DEBUG][       Thread-257618][   transport.py][1871] : starting thread (client mode): 0x86369f60
2025-06-13 14:14:05,318 [DEBUG][       Thread-257618][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 14:14:05,338 [DEBUG][       Thread-257618][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 14:14:05,338 [ INFO][       Thread-257618][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 14:14:05,341 [DEBUG][       Thread-257618][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 14:14:05,342 [DEBUG][       Thread-257618][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 14:14:05,342 [DEBUG][       Thread-257618][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 14:14:05,342 [DEBUG][       Thread-257618][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:14:05,342 [DEBUG][       Thread-257618][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:14:05,342 [DEBUG][       Thread-257618][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:14:05,342 [DEBUG][       Thread-257618][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:14:05,342 [DEBUG][       Thread-257618][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 14:14:05,342 [DEBUG][       Thread-257618][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 14:14:05,342 [DEBUG][       Thread-257618][   transport.py][1871] : client lang: <none>
2025-06-13 14:14:05,342 [DEBUG][       Thread-257618][   transport.py][1871] : server lang: <none>
2025-06-13 14:14:05,342 [DEBUG][       Thread-257618][   transport.py][1871] : kex follows: False
2025-06-13 14:14:05,342 [DEBUG][       Thread-257618][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 14:14:05,342 [DEBUG][       Thread-257618][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 14:14:05,342 [DEBUG][       Thread-257618][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 14:14:05,342 [DEBUG][       Thread-257618][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 14:14:05,342 [DEBUG][       Thread-257618][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 14:14:05,342 [DEBUG][       Thread-257618][   transport.py][1871] : Compression: none
2025-06-13 14:14:05,342 [DEBUG][       Thread-257618][   transport.py][1871] : === End of kex handshake ===
2025-06-13 14:14:05,358 [DEBUG][       Thread-257618][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 14:14:05,359 [DEBUG][       Thread-257618][   transport.py][1871] : Switch to new keys ...
2025-06-13 14:14:05,359 [DEBUG][       Thread-257618][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 14:14:05,360 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 14:14:05,360 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 14:14:05,361 [DEBUG][       Thread-257618][   transport.py][1871] : userauth is OK
2025-06-13 14:14:05,386 [ INFO][       Thread-257618][   transport.py][1871] : Authentication (password) successful!
2025-06-13 14:14:05,386 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 14:14:06,007 [DEBUG][       Thread-257618][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 14:14:06,007 [DEBUG][       Thread-257618][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 14:14:06,053 [DEBUG][       Thread-257618][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 14:14:06,053 [DEBUG][       Thread-257618][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 14:14:06,056 [DEBUG][       Thread-257618][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 14:14:06,067 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 14:14:06,068 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 14:14:06,070 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 14:14:06,072 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 14:14:06,077 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 14:14:06,078 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 14:14:06,079 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 14:14:06,079 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 14:14:06,079 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.509311 -999.00  +13.90  15.04     36   -0.50 1 1 1 1 1   887    0 14.94 7.41 ----- 12.7 15.0 12.6 25.7 17.9 -30.2 16.9 -31.3 17.4 -29.6 18.5 -28.5
2025-06-13 14:14:06,079 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 14:14:06,079 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 14:14:06,080 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.509311
2025-06-13 14:14:06,080 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 14:14:06,081 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 14:14:06,081 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 14:14:06,081 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 14:14:06,081 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 14:14:06,081 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T14:13:49', tmtdew=16.94, humidity=30.95, cloud=0.0, wind=12.23, temperature=13.87, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T12:13:24.470', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 14:14:06,082 [DEBUG][       Thread-257618][   transport.py][1871] : EOF in transport thread
2025-06-13 14:14:06,162 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 14:14:06,179 [DEBUG][       Thread-257621][   transport.py][1871] : starting thread (client mode): 0x863a4760
2025-06-13 14:14:06,179 [DEBUG][       Thread-257621][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 14:14:06,194 [DEBUG][       Thread-257621][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 14:14:06,194 [ INFO][       Thread-257621][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 14:14:06,201 [DEBUG][       Thread-257621][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 14:14:06,202 [DEBUG][       Thread-257621][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 14:14:06,202 [DEBUG][       Thread-257621][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 14:14:06,202 [DEBUG][       Thread-257621][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:14:06,202 [DEBUG][       Thread-257621][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:14:06,202 [DEBUG][       Thread-257621][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:14:06,202 [DEBUG][       Thread-257621][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:14:06,202 [DEBUG][       Thread-257621][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 14:14:06,202 [DEBUG][       Thread-257621][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 14:14:06,202 [DEBUG][       Thread-257621][   transport.py][1871] : client lang: <none>
2025-06-13 14:14:06,202 [DEBUG][       Thread-257621][   transport.py][1871] : server lang: <none>
2025-06-13 14:14:06,202 [DEBUG][       Thread-257621][   transport.py][1871] : kex follows: False
2025-06-13 14:14:06,202 [DEBUG][       Thread-257621][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 14:14:06,202 [DEBUG][       Thread-257621][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 14:14:06,202 [DEBUG][       Thread-257621][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 14:14:06,202 [DEBUG][       Thread-257621][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 14:14:06,202 [DEBUG][       Thread-257621][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 14:14:06,202 [DEBUG][       Thread-257621][   transport.py][1871] : Compression: none
2025-06-13 14:14:06,203 [DEBUG][       Thread-257621][   transport.py][1871] : === End of kex handshake ===
2025-06-13 14:14:06,258 [DEBUG][       Thread-257621][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 14:14:06,259 [DEBUG][       Thread-257621][   transport.py][1871] : Switch to new keys ...
2025-06-13 14:14:06,259 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 14:14:06,260 [DEBUG][       Thread-257621][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 14:14:06,260 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 14:14:06,328 [DEBUG][       Thread-257621][   transport.py][1871] : userauth is OK
2025-06-13 14:14:06,328 [DEBUG][       Thread-257621][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 14:14:06,328 [DEBUG][       Thread-257621][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 14:14:06,328 [DEBUG][       Thread-257621][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 14:14:06,329 [DEBUG][       Thread-257621][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 14:14:06,347 [ INFO][       Thread-257621][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 14:14:06,348 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 14:14:06,348 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 14:14:06,856 [DEBUG][Thread-257623 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:14:07,382 [DEBUG][       Thread-257621][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 14:14:07,382 [DEBUG][       Thread-257621][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 14:14:07,432 [DEBUG][       Thread-257621][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 14:14:07,432 [DEBUG][       Thread-257621][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 14:14:07,442 [DEBUG][       Thread-257621][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 14:14:07,451 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 14:14:07,451 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 14:14:07,460 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 14:14:07,469 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 14:14:07,470 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 14:14:07,470 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 14:14:07,478 [DEBUG][       Thread-257621][   transport.py][1871] : EOF in transport thread
2025-06-13 14:14:15,879 [DEBUG][Thread-257624 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:14:17,481 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 14:14:17,481 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 14:14:17,481 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 14:14:17,484 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 14:14:17,527 [DEBUG][Thread-257625 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:14:17,947 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 14, 13, 49), 16.94, 30.95, 0.0, 12.23, 13.87, 0, 0, 0, 2, 0, 0),)
2025-06-13 14:14:17,947 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 14:13:49
2025-06-13 14:14:18,028 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 14:14:18,033 [DEBUG][       Thread-257626][   transport.py][1871] : starting thread (client mode): 0x842050c0
2025-06-13 14:14:18,033 [DEBUG][       Thread-257626][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 14:14:18,053 [DEBUG][       Thread-257626][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 14:14:18,053 [ INFO][       Thread-257626][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 14:14:18,057 [DEBUG][       Thread-257626][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 14:14:18,057 [DEBUG][       Thread-257626][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 14:14:18,057 [DEBUG][       Thread-257626][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 14:14:18,057 [DEBUG][       Thread-257626][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:14:18,057 [DEBUG][       Thread-257626][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:14:18,057 [DEBUG][       Thread-257626][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:14:18,057 [DEBUG][       Thread-257626][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:14:18,057 [DEBUG][       Thread-257626][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 14:14:18,057 [DEBUG][       Thread-257626][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 14:14:18,057 [DEBUG][       Thread-257626][   transport.py][1871] : client lang: <none>
2025-06-13 14:14:18,057 [DEBUG][       Thread-257626][   transport.py][1871] : server lang: <none>
2025-06-13 14:14:18,057 [DEBUG][       Thread-257626][   transport.py][1871] : kex follows: False
2025-06-13 14:14:18,057 [DEBUG][       Thread-257626][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 14:14:18,057 [DEBUG][       Thread-257626][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 14:14:18,057 [DEBUG][       Thread-257626][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 14:14:18,057 [DEBUG][       Thread-257626][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 14:14:18,058 [DEBUG][       Thread-257626][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 14:14:18,058 [DEBUG][       Thread-257626][   transport.py][1871] : Compression: none
2025-06-13 14:14:18,058 [DEBUG][       Thread-257626][   transport.py][1871] : === End of kex handshake ===
2025-06-13 14:14:18,072 [DEBUG][       Thread-257626][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 14:14:18,072 [DEBUG][       Thread-257626][   transport.py][1871] : Switch to new keys ...
2025-06-13 14:14:18,073 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 14:14:18,073 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 14:14:18,074 [DEBUG][       Thread-257626][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 14:14:18,075 [DEBUG][       Thread-257626][   transport.py][1871] : userauth is OK
2025-06-13 14:14:18,122 [ INFO][       Thread-257626][   transport.py][1871] : Authentication (password) successful!
2025-06-13 14:14:18,123 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 14:14:18,778 [DEBUG][       Thread-257626][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 14:14:18,779 [DEBUG][       Thread-257626][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 14:14:18,825 [DEBUG][       Thread-257626][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 14:14:18,825 [DEBUG][       Thread-257626][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 14:14:18,828 [DEBUG][       Thread-257626][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 14:14:18,840 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 14:14:18,841 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 14:14:18,843 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 14:14:18,845 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 14:14:18,850 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 14:14:18,852 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 14:14:18,852 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 14:14:18,853 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 14:14:18,853 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.509659 -999.00  +13.90  17.82     37   -0.40 1 1 1 1 1   887    0 15.06 -0.14 ----- 21.2 17.8 35.6 22.8 18.1 -30.4 16.9 -32.0 17.5 -29.9 18.6 -28.6
2025-06-13 14:14:18,853 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 14:14:18,853 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 14:14:18,854 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.509659
2025-06-13 14:14:18,854 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 14:14:18,855 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 14:14:18,855 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 14:14:18,855 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 14:14:18,855 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 14:14:18,855 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T14:13:49', tmtdew=16.94, humidity=30.95, cloud=0.0, wind=12.23, temperature=13.87, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T12:13:54.538', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 14:14:18,856 [DEBUG][       Thread-257626][   transport.py][1871] : EOF in transport thread
2025-06-13 14:14:18,939 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 14:14:18,951 [DEBUG][       Thread-257629][   transport.py][1871] : starting thread (client mode): 0x86893820
2025-06-13 14:14:18,951 [DEBUG][       Thread-257629][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 14:14:18,971 [DEBUG][       Thread-257629][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 14:14:18,971 [ INFO][       Thread-257629][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 14:14:18,979 [DEBUG][       Thread-257629][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 14:14:18,979 [DEBUG][       Thread-257629][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 14:14:18,979 [DEBUG][       Thread-257629][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 14:14:18,979 [DEBUG][       Thread-257629][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:14:18,979 [DEBUG][       Thread-257629][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:14:18,980 [DEBUG][       Thread-257629][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:14:18,980 [DEBUG][       Thread-257629][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:14:18,980 [DEBUG][       Thread-257629][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 14:14:18,980 [DEBUG][       Thread-257629][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 14:14:18,980 [DEBUG][       Thread-257629][   transport.py][1871] : client lang: <none>
2025-06-13 14:14:18,980 [DEBUG][       Thread-257629][   transport.py][1871] : server lang: <none>
2025-06-13 14:14:18,980 [DEBUG][       Thread-257629][   transport.py][1871] : kex follows: False
2025-06-13 14:14:18,980 [DEBUG][       Thread-257629][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 14:14:18,980 [DEBUG][       Thread-257629][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 14:14:18,980 [DEBUG][       Thread-257629][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 14:14:18,980 [DEBUG][       Thread-257629][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 14:14:18,980 [DEBUG][       Thread-257629][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 14:14:18,980 [DEBUG][       Thread-257629][   transport.py][1871] : Compression: none
2025-06-13 14:14:18,980 [DEBUG][       Thread-257629][   transport.py][1871] : === End of kex handshake ===
2025-06-13 14:14:19,038 [DEBUG][       Thread-257629][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 14:14:19,039 [DEBUG][       Thread-257629][   transport.py][1871] : Switch to new keys ...
2025-06-13 14:14:19,039 [DEBUG][       Thread-257629][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 14:14:19,040 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 14:14:19,040 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 14:14:19,095 [DEBUG][       Thread-257629][   transport.py][1871] : userauth is OK
2025-06-13 14:14:19,095 [DEBUG][       Thread-257629][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 14:14:19,095 [DEBUG][       Thread-257629][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 14:14:19,096 [DEBUG][       Thread-257629][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 14:14:19,096 [DEBUG][       Thread-257629][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 14:14:19,114 [ INFO][       Thread-257629][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 14:14:19,114 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 14:14:19,115 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 14:14:20,135 [DEBUG][       Thread-257629][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 14:14:20,135 [DEBUG][       Thread-257629][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 14:14:20,184 [DEBUG][       Thread-257629][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 14:14:20,184 [DEBUG][       Thread-257629][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 14:14:20,193 [DEBUG][       Thread-257629][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 14:14:20,204 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 14:14:20,204 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 14:14:20,213 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 14:14:20,226 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 14:14:20,226 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 14:14:20,226 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 14:14:20,237 [DEBUG][       Thread-257629][   transport.py][1871] : EOF in transport thread
2025-06-13 14:14:24,900 [DEBUG][Thread-257631 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:14:25,406 [DEBUG][Thread-257632 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:14:26,483 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:14:26,484 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:14:30,228 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 14:14:30,228 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 14:14:30,229 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 14:14:30,231 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 14:14:30,695 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 14, 14, 21), 16.74, 31.15, 0.0, 14.8, 13.76, 0, 0, 0, 2, 0, 0),)
2025-06-13 14:14:30,696 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 14:14:21
2025-06-13 14:14:30,777 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 14:14:30,782 [DEBUG][       Thread-257633][   transport.py][1871] : starting thread (client mode): 0x867ff520
2025-06-13 14:14:30,782 [DEBUG][       Thread-257633][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 14:14:30,804 [DEBUG][       Thread-257633][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 14:14:30,804 [ INFO][       Thread-257633][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 14:14:30,808 [DEBUG][       Thread-257633][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 14:14:30,808 [DEBUG][       Thread-257633][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 14:14:30,808 [DEBUG][       Thread-257633][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 14:14:30,808 [DEBUG][       Thread-257633][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:14:30,808 [DEBUG][       Thread-257633][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:14:30,808 [DEBUG][       Thread-257633][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:14:30,808 [DEBUG][       Thread-257633][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:14:30,808 [DEBUG][       Thread-257633][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 14:14:30,808 [DEBUG][       Thread-257633][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 14:14:30,808 [DEBUG][       Thread-257633][   transport.py][1871] : client lang: <none>
2025-06-13 14:14:30,808 [DEBUG][       Thread-257633][   transport.py][1871] : server lang: <none>
2025-06-13 14:14:30,808 [DEBUG][       Thread-257633][   transport.py][1871] : kex follows: False
2025-06-13 14:14:30,808 [DEBUG][       Thread-257633][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 14:14:30,808 [DEBUG][       Thread-257633][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 14:14:30,808 [DEBUG][       Thread-257633][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 14:14:30,808 [DEBUG][       Thread-257633][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 14:14:30,808 [DEBUG][       Thread-257633][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 14:14:30,808 [DEBUG][       Thread-257633][   transport.py][1871] : Compression: none
2025-06-13 14:14:30,808 [DEBUG][       Thread-257633][   transport.py][1871] : === End of kex handshake ===
2025-06-13 14:14:30,826 [DEBUG][       Thread-257633][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 14:14:30,827 [DEBUG][       Thread-257633][   transport.py][1871] : Switch to new keys ...
2025-06-13 14:14:30,827 [DEBUG][       Thread-257633][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 14:14:30,828 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 14:14:30,828 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 14:14:30,829 [DEBUG][       Thread-257633][   transport.py][1871] : userauth is OK
2025-06-13 14:14:30,842 [ INFO][       Thread-257633][   transport.py][1871] : Authentication (password) successful!
2025-06-13 14:14:30,843 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 14:14:31,473 [DEBUG][       Thread-257633][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 14:14:31,473 [DEBUG][       Thread-257633][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 14:14:31,517 [DEBUG][       Thread-257633][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 14:14:31,517 [DEBUG][       Thread-257633][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 14:14:31,519 [DEBUG][       Thread-257633][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 14:14:31,532 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 14:14:31,533 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 14:14:31,534 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 14:14:31,535 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 14:14:31,539 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 14:14:31,541 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 14:14:31,541 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 14:14:31,542 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 14:14:31,542 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.509659 -999.00  +13.90  17.82     37   -0.40 1 1 1 1 1   887    0 15.06 -0.14 ----- 21.2 17.8 35.6 22.8 18.1 -30.4 16.9 -32.0 17.5 -29.9 18.6 -28.6
2025-06-13 14:14:31,542 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 14:14:31,542 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 14:14:31,542 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.509659
2025-06-13 14:14:31,542 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 14:14:31,543 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 14:14:31,543 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 14:14:31,543 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 14:14:31,543 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 14:14:31,543 [DEBUG][       Thread-257633][   transport.py][1871] : EOF in transport thread
2025-06-13 14:14:31,543 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T14:14:21', tmtdew=16.74, humidity=31.15, cloud=0.0, wind=14.8, temperature=13.76, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T12:13:54.538', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 14:14:31,641 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 14:14:31,650 [DEBUG][       Thread-257636][   transport.py][1871] : starting thread (client mode): 0x863a5690
2025-06-13 14:14:31,650 [DEBUG][       Thread-257636][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 14:14:31,666 [DEBUG][       Thread-257636][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 14:14:31,666 [ INFO][       Thread-257636][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 14:14:31,673 [DEBUG][       Thread-257636][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 14:14:31,674 [DEBUG][       Thread-257636][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 14:14:31,674 [DEBUG][       Thread-257636][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 14:14:31,674 [DEBUG][       Thread-257636][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:14:31,674 [DEBUG][       Thread-257636][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:14:31,674 [DEBUG][       Thread-257636][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:14:31,674 [DEBUG][       Thread-257636][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:14:31,674 [DEBUG][       Thread-257636][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 14:14:31,674 [DEBUG][       Thread-257636][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 14:14:31,674 [DEBUG][       Thread-257636][   transport.py][1871] : client lang: <none>
2025-06-13 14:14:31,674 [DEBUG][       Thread-257636][   transport.py][1871] : server lang: <none>
2025-06-13 14:14:31,674 [DEBUG][       Thread-257636][   transport.py][1871] : kex follows: False
2025-06-13 14:14:31,674 [DEBUG][       Thread-257636][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 14:14:31,674 [DEBUG][       Thread-257636][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 14:14:31,674 [DEBUG][       Thread-257636][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 14:14:31,674 [DEBUG][       Thread-257636][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 14:14:31,674 [DEBUG][       Thread-257636][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 14:14:31,674 [DEBUG][       Thread-257636][   transport.py][1871] : Compression: none
2025-06-13 14:14:31,674 [DEBUG][       Thread-257636][   transport.py][1871] : === End of kex handshake ===
2025-06-13 14:14:31,731 [DEBUG][       Thread-257636][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 14:14:31,732 [DEBUG][       Thread-257636][   transport.py][1871] : Switch to new keys ...
2025-06-13 14:14:31,732 [DEBUG][       Thread-257636][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 14:14:31,733 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 14:14:31,733 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 14:14:31,787 [DEBUG][       Thread-257636][   transport.py][1871] : userauth is OK
2025-06-13 14:14:31,787 [DEBUG][       Thread-257636][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 14:14:31,787 [DEBUG][       Thread-257636][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 14:14:31,787 [DEBUG][       Thread-257636][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 14:14:31,787 [DEBUG][       Thread-257636][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 14:14:31,805 [ INFO][       Thread-257636][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 14:14:31,806 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 14:14:31,806 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 14:14:32,819 [DEBUG][       Thread-257636][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 14:14:32,819 [DEBUG][       Thread-257636][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 14:14:32,868 [DEBUG][       Thread-257636][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 14:14:32,868 [DEBUG][       Thread-257636][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 14:14:32,877 [DEBUG][       Thread-257636][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 14:14:32,886 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 14:14:32,886 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 14:14:32,896 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 14:14:32,909 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 14:14:32,909 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 14:14:32,910 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 14:14:32,921 [DEBUG][       Thread-257636][   transport.py][1871] : EOF in transport thread
2025-06-13 14:14:33,920 [DEBUG][Thread-257638 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:14:42,920 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 14:14:42,920 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 14:14:42,920 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 14:14:42,923 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 14:14:42,945 [DEBUG][Thread-257639 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:14:43,388 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 14, 14, 21), 16.74, 31.15, 0.0, 14.8, 13.76, 0, 0, 0, 2, 0, 0),)
2025-06-13 14:14:43,388 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 14:14:21
2025-06-13 14:14:43,471 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 14:14:43,474 [DEBUG][       Thread-257640][   transport.py][1871] : starting thread (client mode): 0x86392aa0
2025-06-13 14:14:43,474 [DEBUG][       Thread-257640][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 14:14:43,496 [DEBUG][       Thread-257640][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 14:14:43,496 [ INFO][       Thread-257640][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 14:14:43,500 [DEBUG][       Thread-257640][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 14:14:43,500 [DEBUG][       Thread-257640][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 14:14:43,500 [DEBUG][       Thread-257640][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 14:14:43,500 [DEBUG][       Thread-257640][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:14:43,500 [DEBUG][       Thread-257640][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:14:43,500 [DEBUG][       Thread-257640][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:14:43,500 [DEBUG][       Thread-257640][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:14:43,500 [DEBUG][       Thread-257640][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 14:14:43,500 [DEBUG][       Thread-257640][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 14:14:43,500 [DEBUG][       Thread-257640][   transport.py][1871] : client lang: <none>
2025-06-13 14:14:43,500 [DEBUG][       Thread-257640][   transport.py][1871] : server lang: <none>
2025-06-13 14:14:43,500 [DEBUG][       Thread-257640][   transport.py][1871] : kex follows: False
2025-06-13 14:14:43,500 [DEBUG][       Thread-257640][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 14:14:43,500 [DEBUG][       Thread-257640][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 14:14:43,500 [DEBUG][       Thread-257640][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 14:14:43,500 [DEBUG][       Thread-257640][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 14:14:43,500 [DEBUG][       Thread-257640][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 14:14:43,500 [DEBUG][       Thread-257640][   transport.py][1871] : Compression: none
2025-06-13 14:14:43,500 [DEBUG][       Thread-257640][   transport.py][1871] : === End of kex handshake ===
2025-06-13 14:14:43,515 [DEBUG][       Thread-257640][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 14:14:43,515 [DEBUG][       Thread-257640][   transport.py][1871] : Switch to new keys ...
2025-06-13 14:14:43,516 [DEBUG][       Thread-257640][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 14:14:43,516 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 14:14:43,516 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 14:14:43,517 [DEBUG][       Thread-257640][   transport.py][1871] : userauth is OK
2025-06-13 14:14:43,530 [ INFO][       Thread-257640][   transport.py][1871] : Authentication (password) successful!
2025-06-13 14:14:43,530 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 14:14:44,089 [DEBUG][       Thread-257640][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 14:14:44,089 [DEBUG][       Thread-257640][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 14:14:44,133 [DEBUG][       Thread-257640][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 14:14:44,133 [DEBUG][       Thread-257640][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 14:14:44,136 [DEBUG][       Thread-257640][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 14:14:44,142 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 14:14:44,143 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 14:14:44,144 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 14:14:44,146 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 14:14:44,151 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 14:14:44,153 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 14:14:44,153 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 14:14:44,154 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 14:14:44,154 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.510006 -999.00  +13.90  16.87     36   -0.50 1 1 1 1 1   887    0 14.55 -6.52 ----- 18.8 16.9 46.8 24.1 18.1 -30.5 17.0 -31.4 17.4 -29.7 18.6 -28.2
2025-06-13 14:14:44,154 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 14:14:44,154 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 14:14:44,154 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.510006
2025-06-13 14:14:44,154 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 14:14:44,155 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 14:14:44,155 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 14:14:44,155 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 14:14:44,155 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 14:14:44,155 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T14:14:21', tmtdew=16.74, humidity=31.15, cloud=0.0, wind=14.8, temperature=13.76, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T12:14:24.518', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 14:14:44,155 [DEBUG][       Thread-257640][   transport.py][1871] : EOF in transport thread
2025-06-13 14:14:44,238 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 14:14:44,249 [DEBUG][       Thread-257643][   transport.py][1871] : starting thread (client mode): 0x867b78e0
2025-06-13 14:14:44,250 [DEBUG][       Thread-257643][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 14:14:44,266 [DEBUG][       Thread-257643][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 14:14:44,266 [ INFO][       Thread-257643][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 14:14:44,274 [DEBUG][       Thread-257643][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 14:14:44,274 [DEBUG][       Thread-257643][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 14:14:44,274 [DEBUG][       Thread-257643][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 14:14:44,274 [DEBUG][       Thread-257643][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:14:44,274 [DEBUG][       Thread-257643][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:14:44,274 [DEBUG][       Thread-257643][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:14:44,274 [DEBUG][       Thread-257643][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:14:44,274 [DEBUG][       Thread-257643][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 14:14:44,274 [DEBUG][       Thread-257643][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 14:14:44,274 [DEBUG][       Thread-257643][   transport.py][1871] : client lang: <none>
2025-06-13 14:14:44,274 [DEBUG][       Thread-257643][   transport.py][1871] : server lang: <none>
2025-06-13 14:14:44,274 [DEBUG][       Thread-257643][   transport.py][1871] : kex follows: False
2025-06-13 14:14:44,274 [DEBUG][       Thread-257643][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 14:14:44,274 [DEBUG][       Thread-257643][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 14:14:44,274 [DEBUG][       Thread-257643][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 14:14:44,274 [DEBUG][       Thread-257643][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 14:14:44,274 [DEBUG][       Thread-257643][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 14:14:44,274 [DEBUG][       Thread-257643][   transport.py][1871] : Compression: none
2025-06-13 14:14:44,274 [DEBUG][       Thread-257643][   transport.py][1871] : === End of kex handshake ===
2025-06-13 14:14:44,332 [DEBUG][       Thread-257643][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 14:14:44,332 [DEBUG][       Thread-257643][   transport.py][1871] : Switch to new keys ...
2025-06-13 14:14:44,332 [DEBUG][       Thread-257643][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 14:14:44,332 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 14:14:44,332 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 14:14:44,390 [DEBUG][       Thread-257643][   transport.py][1871] : userauth is OK
2025-06-13 14:14:44,390 [DEBUG][       Thread-257643][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 14:14:44,391 [DEBUG][       Thread-257643][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 14:14:44,391 [DEBUG][       Thread-257643][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 14:14:44,391 [DEBUG][       Thread-257643][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 14:14:44,414 [ INFO][       Thread-257643][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 14:14:44,414 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 14:14:44,415 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 14:14:45,481 [DEBUG][       Thread-257643][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 14:14:45,481 [DEBUG][       Thread-257643][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 14:14:45,531 [DEBUG][       Thread-257643][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 14:14:45,532 [DEBUG][       Thread-257643][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 14:14:45,541 [DEBUG][       Thread-257643][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 14:14:45,550 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 14:14:45,550 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 14:14:45,558 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 14:14:45,567 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 14:14:45,567 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 14:14:45,568 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 14:14:45,576 [DEBUG][       Thread-257643][   transport.py][1871] : EOF in transport thread
2025-06-13 14:14:51,964 [DEBUG][Thread-257645 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:14:55,578 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 14:14:55,579 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 14:14:55,579 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 14:14:55,581 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 14:14:56,035 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 14, 14, 53), 16.6, 31.47, 0.0, 15.02, 13.78, 0, 0, 0, 2, 0, 0),)
2025-06-13 14:14:56,035 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 14:14:53
2025-06-13 14:14:56,117 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 14:14:56,121 [DEBUG][       Thread-257646][   transport.py][1871] : starting thread (client mode): 0x867fe920
2025-06-13 14:14:56,121 [DEBUG][       Thread-257646][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 14:14:56,143 [DEBUG][       Thread-257646][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 14:14:56,143 [ INFO][       Thread-257646][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 14:14:56,146 [DEBUG][       Thread-257646][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 14:14:56,146 [DEBUG][       Thread-257646][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 14:14:56,146 [DEBUG][       Thread-257646][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 14:14:56,146 [DEBUG][       Thread-257646][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:14:56,146 [DEBUG][       Thread-257646][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:14:56,146 [DEBUG][       Thread-257646][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:14:56,146 [DEBUG][       Thread-257646][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:14:56,146 [DEBUG][       Thread-257646][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 14:14:56,146 [DEBUG][       Thread-257646][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 14:14:56,146 [DEBUG][       Thread-257646][   transport.py][1871] : client lang: <none>
2025-06-13 14:14:56,146 [DEBUG][       Thread-257646][   transport.py][1871] : server lang: <none>
2025-06-13 14:14:56,146 [DEBUG][       Thread-257646][   transport.py][1871] : kex follows: False
2025-06-13 14:14:56,147 [DEBUG][       Thread-257646][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 14:14:56,147 [DEBUG][       Thread-257646][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 14:14:56,147 [DEBUG][       Thread-257646][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 14:14:56,147 [DEBUG][       Thread-257646][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 14:14:56,147 [DEBUG][       Thread-257646][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 14:14:56,147 [DEBUG][       Thread-257646][   transport.py][1871] : Compression: none
2025-06-13 14:14:56,147 [DEBUG][       Thread-257646][   transport.py][1871] : === End of kex handshake ===
2025-06-13 14:14:56,163 [DEBUG][       Thread-257646][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 14:14:56,164 [DEBUG][       Thread-257646][   transport.py][1871] : Switch to new keys ...
2025-06-13 14:14:56,164 [DEBUG][       Thread-257646][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 14:14:56,165 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 14:14:56,165 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 14:14:56,166 [DEBUG][       Thread-257646][   transport.py][1871] : userauth is OK
2025-06-13 14:14:56,191 [ INFO][       Thread-257646][   transport.py][1871] : Authentication (password) successful!
2025-06-13 14:14:56,192 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 14:14:56,841 [DEBUG][       Thread-257646][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 14:14:56,842 [DEBUG][       Thread-257646][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 14:14:56,885 [DEBUG][       Thread-257646][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 14:14:56,885 [DEBUG][       Thread-257646][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 14:14:56,889 [DEBUG][       Thread-257646][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 14:14:56,903 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 14:14:56,903 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 14:14:56,905 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 14:14:56,907 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 14:14:56,914 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 14:14:56,916 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 14:14:56,916 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 14:14:56,916 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 14:14:56,917 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.510006 -999.00  +13.90  16.87     36   -0.50 1 1 1 1 1   887    0 14.55 -6.52 ----- 18.8 16.9 46.8 24.1 18.1 -30.5 17.0 -31.4 17.4 -29.7 18.6 -28.2
2025-06-13 14:14:56,917 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 14:14:56,917 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 14:14:56,917 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.510006
2025-06-13 14:14:56,917 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 14:14:56,918 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 14:14:56,918 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 14:14:56,918 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 14:14:56,918 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 14:14:56,918 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T14:14:53', tmtdew=16.6, humidity=31.47, cloud=0.0, wind=15.02, temperature=13.78, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T12:14:24.518', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 14:14:56,918 [DEBUG][       Thread-257646][   transport.py][1871] : EOF in transport thread
2025-06-13 14:14:57,001 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 14:14:57,011 [DEBUG][       Thread-257649][   transport.py][1871] : starting thread (client mode): 0x863a7670
2025-06-13 14:14:57,011 [DEBUG][       Thread-257649][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 14:14:57,026 [DEBUG][       Thread-257649][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 14:14:57,027 [ INFO][       Thread-257649][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 14:14:57,034 [DEBUG][       Thread-257649][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 14:14:57,034 [DEBUG][       Thread-257649][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 14:14:57,034 [DEBUG][       Thread-257649][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 14:14:57,034 [DEBUG][       Thread-257649][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:14:57,034 [DEBUG][       Thread-257649][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:14:57,034 [DEBUG][       Thread-257649][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:14:57,034 [DEBUG][       Thread-257649][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:14:57,035 [DEBUG][       Thread-257649][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 14:14:57,035 [DEBUG][       Thread-257649][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 14:14:57,035 [DEBUG][       Thread-257649][   transport.py][1871] : client lang: <none>
2025-06-13 14:14:57,035 [DEBUG][       Thread-257649][   transport.py][1871] : server lang: <none>
2025-06-13 14:14:57,035 [DEBUG][       Thread-257649][   transport.py][1871] : kex follows: False
2025-06-13 14:14:57,035 [DEBUG][       Thread-257649][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 14:14:57,035 [DEBUG][       Thread-257649][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 14:14:57,035 [DEBUG][       Thread-257649][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 14:14:57,035 [DEBUG][       Thread-257649][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 14:14:57,035 [DEBUG][       Thread-257649][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 14:14:57,035 [DEBUG][       Thread-257649][   transport.py][1871] : Compression: none
2025-06-13 14:14:57,035 [DEBUG][       Thread-257649][   transport.py][1871] : === End of kex handshake ===
2025-06-13 14:14:57,095 [DEBUG][       Thread-257649][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 14:14:57,095 [DEBUG][       Thread-257649][   transport.py][1871] : Switch to new keys ...
2025-06-13 14:14:57,096 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 14:14:57,096 [DEBUG][       Thread-257649][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 14:14:57,097 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 14:14:57,151 [DEBUG][       Thread-257649][   transport.py][1871] : userauth is OK
2025-06-13 14:14:57,151 [DEBUG][       Thread-257649][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 14:14:57,151 [DEBUG][       Thread-257649][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 14:14:57,151 [DEBUG][       Thread-257649][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 14:14:57,151 [DEBUG][       Thread-257649][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 14:14:57,169 [ INFO][       Thread-257649][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 14:14:57,170 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 14:14:57,170 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 14:14:58,188 [DEBUG][       Thread-257649][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 14:14:58,189 [DEBUG][       Thread-257649][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 14:14:58,239 [DEBUG][       Thread-257649][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 14:14:58,240 [DEBUG][       Thread-257649][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 14:14:58,249 [DEBUG][       Thread-257649][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 14:14:58,258 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 14:14:58,258 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 14:14:58,267 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 14:14:58,275 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 14:14:58,276 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 14:14:58,276 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 14:14:58,284 [DEBUG][       Thread-257649][   transport.py][1871] : EOF in transport thread
2025-06-13 14:14:59,036 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:14:59,038 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:15:00,985 [DEBUG][Thread-257651 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:15:08,286 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 14:15:08,287 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 14:15:08,287 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 14:15:08,287 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 14:15:08,737 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 14, 14, 53), 16.6, 31.47, 0.0, 15.02, 13.78, 0, 0, 0, 2, 0, 0),)
2025-06-13 14:15:08,737 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 14:14:53
2025-06-13 14:15:08,819 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 14:15:08,824 [DEBUG][       Thread-257652][   transport.py][1871] : starting thread (client mode): 0x863a4760
2025-06-13 14:15:08,824 [DEBUG][       Thread-257652][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 14:15:08,846 [DEBUG][       Thread-257652][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 14:15:08,846 [ INFO][       Thread-257652][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 14:15:08,850 [DEBUG][       Thread-257652][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 14:15:08,850 [DEBUG][       Thread-257652][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 14:15:08,850 [DEBUG][       Thread-257652][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 14:15:08,850 [DEBUG][       Thread-257652][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:15:08,850 [DEBUG][       Thread-257652][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:15:08,851 [DEBUG][       Thread-257652][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:15:08,851 [DEBUG][       Thread-257652][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:15:08,851 [DEBUG][       Thread-257652][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 14:15:08,851 [DEBUG][       Thread-257652][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 14:15:08,851 [DEBUG][       Thread-257652][   transport.py][1871] : client lang: <none>
2025-06-13 14:15:08,851 [DEBUG][       Thread-257652][   transport.py][1871] : server lang: <none>
2025-06-13 14:15:08,851 [DEBUG][       Thread-257652][   transport.py][1871] : kex follows: False
2025-06-13 14:15:08,851 [DEBUG][       Thread-257652][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 14:15:08,851 [DEBUG][       Thread-257652][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 14:15:08,851 [DEBUG][       Thread-257652][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 14:15:08,851 [DEBUG][       Thread-257652][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 14:15:08,851 [DEBUG][       Thread-257652][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 14:15:08,851 [DEBUG][       Thread-257652][   transport.py][1871] : Compression: none
2025-06-13 14:15:08,851 [DEBUG][       Thread-257652][   transport.py][1871] : === End of kex handshake ===
2025-06-13 14:15:08,867 [DEBUG][       Thread-257652][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 14:15:08,867 [DEBUG][       Thread-257652][   transport.py][1871] : Switch to new keys ...
2025-06-13 14:15:08,868 [DEBUG][       Thread-257652][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 14:15:08,868 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 14:15:08,868 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 14:15:08,870 [DEBUG][       Thread-257652][   transport.py][1871] : userauth is OK
2025-06-13 14:15:08,894 [ INFO][       Thread-257652][   transport.py][1871] : Authentication (password) successful!
2025-06-13 14:15:08,894 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 14:15:10,022 [DEBUG][Thread-257654 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:15:12,891 [DEBUG][       Thread-257652][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 14:15:12,891 [DEBUG][       Thread-257652][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 14:15:12,932 [DEBUG][       Thread-257652][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 14:15:12,933 [DEBUG][       Thread-257652][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 14:15:12,935 [DEBUG][       Thread-257652][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 14:15:12,947 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 14:15:12,947 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 14:15:12,948 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 14:15:12,949 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 14:15:12,952 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 14:15:12,953 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 14:15:12,953 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 14:15:12,953 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 14:15:12,953 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.510006 -999.00  +13.90  16.87     36   -0.50 1 1 1 1 1   887    0 14.55 -6.52 ----- 18.8 16.9 46.8 24.1 18.1 -30.5 17.0 -31.4 17.4 -29.7 18.6 -28.2
2025-06-13 14:15:12,953 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 14:15:12,953 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 14:15:12,953 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.510006
2025-06-13 14:15:12,953 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 14:15:12,953 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 14:15:12,953 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 14:15:12,953 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 14:15:12,953 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 14:15:12,953 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T14:14:53', tmtdew=16.6, humidity=31.47, cloud=0.0, wind=15.02, temperature=13.78, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T12:14:24.518', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 14:15:12,954 [DEBUG][       Thread-257652][   transport.py][1871] : EOF in transport thread
2025-06-13 14:15:13,028 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 14:15:17,577 [DEBUG][Thread-257656 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:15:19,042 [DEBUG][Thread-257657 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:15:26,555 [DEBUG][Thread-257658 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:15:27,616 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:15:27,617 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:15:28,063 [DEBUG][Thread-257659 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:15:37,086 [DEBUG][Thread-257660 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:15:46,111 [DEBUG][Thread-257661 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:15:55,131 [DEBUG][Thread-257662 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:15:59,200 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:15:59,201 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:16:04,155 [DEBUG][Thread-257663 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:16:13,182 [DEBUG][Thread-257664 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:16:17,628 [DEBUG][Thread-257665 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:16:22,207 [DEBUG][Thread-257666 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:16:27,684 [DEBUG][Thread-257667 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:16:28,777 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:16:28,777 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:16:31,228 [DEBUG][Thread-257668 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:16:40,250 [DEBUG][Thread-257669 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:16:49,272 [DEBUG][Thread-257670 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:16:58,292 [DEBUG][Thread-257671 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:16:59,338 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:16:59,339 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:17:07,314 [DEBUG][Thread-257672 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:17:16,334 [DEBUG][Thread-257673 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:17:17,677 [DEBUG][Thread-257674 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:17:23,220 [WARNING][ poll_weather_worker][      driver.py][ 286] : Unable to open ssh connection for writing weather state to io.saao.ac.za: [Errno 110] Connection timed out
2025-06-13 14:17:25,355 [DEBUG][Thread-257675 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:17:28,821 [DEBUG][Thread-257676 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:17:29,905 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:17:29,906 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:17:33,231 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 14:17:33,231 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 14:17:33,231 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 14:17:33,231 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 14:17:33,736 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 14, 16, 28), 16.86, 30.91, 0.0, 18.76, 14.07, 0, 0, 0, 2, 0, 0),)
2025-06-13 14:17:33,736 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 14:16:28
2025-06-13 14:17:33,821 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 14:17:33,826 [DEBUG][       Thread-257677][   transport.py][1871] : starting thread (client mode): 0x842202b0
2025-06-13 14:17:33,826 [DEBUG][       Thread-257677][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 14:17:33,848 [DEBUG][       Thread-257677][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 14:17:33,848 [ INFO][       Thread-257677][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 14:17:33,851 [DEBUG][       Thread-257677][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 14:17:33,852 [DEBUG][       Thread-257677][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 14:17:33,852 [DEBUG][       Thread-257677][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 14:17:33,852 [DEBUG][       Thread-257677][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:17:33,852 [DEBUG][       Thread-257677][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:17:33,852 [DEBUG][       Thread-257677][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:17:33,852 [DEBUG][       Thread-257677][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:17:33,852 [DEBUG][       Thread-257677][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 14:17:33,852 [DEBUG][       Thread-257677][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 14:17:33,852 [DEBUG][       Thread-257677][   transport.py][1871] : client lang: <none>
2025-06-13 14:17:33,852 [DEBUG][       Thread-257677][   transport.py][1871] : server lang: <none>
2025-06-13 14:17:33,852 [DEBUG][       Thread-257677][   transport.py][1871] : kex follows: False
2025-06-13 14:17:33,852 [DEBUG][       Thread-257677][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 14:17:33,852 [DEBUG][       Thread-257677][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 14:17:33,852 [DEBUG][       Thread-257677][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 14:17:33,852 [DEBUG][       Thread-257677][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 14:17:33,852 [DEBUG][       Thread-257677][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 14:17:33,852 [DEBUG][       Thread-257677][   transport.py][1871] : Compression: none
2025-06-13 14:17:33,852 [DEBUG][       Thread-257677][   transport.py][1871] : === End of kex handshake ===
2025-06-13 14:17:33,870 [DEBUG][       Thread-257677][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 14:17:33,870 [DEBUG][       Thread-257677][   transport.py][1871] : Switch to new keys ...
2025-06-13 14:17:33,871 [DEBUG][       Thread-257677][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 14:17:33,871 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 14:17:33,871 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 14:17:33,872 [DEBUG][       Thread-257677][   transport.py][1871] : userauth is OK
2025-06-13 14:17:33,886 [ INFO][       Thread-257677][   transport.py][1871] : Authentication (password) successful!
2025-06-13 14:17:33,887 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 14:17:34,376 [DEBUG][Thread-257679 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:17:34,543 [DEBUG][       Thread-257677][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 14:17:34,543 [DEBUG][       Thread-257677][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 14:17:34,585 [DEBUG][       Thread-257677][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 14:17:34,585 [DEBUG][       Thread-257677][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 14:17:34,589 [DEBUG][       Thread-257677][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 14:17:34,600 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 14:17:34,601 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 14:17:34,603 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 14:17:34,605 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 14:17:34,612 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 14:17:34,614 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 14:17:34,614 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 14:17:34,615 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 14:17:34,615 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.512089 -999.00  +13.70  21.65     37   -0.40 1 1 1 1 1   887    0 14.07 -37.24 ----- 20.4 21.6 48.8 24.9 18.0 -30.5 16.9 -32.1 17.3 -30.5 18.7 -28.9
2025-06-13 14:17:34,615 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 14:17:34,615 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 14:17:34,615 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.512089
2025-06-13 14:17:34,616 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 14:17:34,617 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 14:17:34,617 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 14:17:34,617 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 14:17:34,617 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 14:17:34,617 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T14:16:28', tmtdew=16.86, humidity=30.91, cloud=0.0, wind=18.76, temperature=14.07, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T12:17:24.490', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 14:17:34,618 [DEBUG][       Thread-257677][   transport.py][1871] : EOF in transport thread
2025-06-13 14:17:34,701 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 14:17:34,714 [DEBUG][       Thread-257681][   transport.py][1871] : starting thread (client mode): 0x863cac50
2025-06-13 14:17:34,714 [DEBUG][       Thread-257681][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 14:17:34,729 [DEBUG][       Thread-257681][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 14:17:34,729 [ INFO][       Thread-257681][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 14:17:34,736 [DEBUG][       Thread-257681][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 14:17:34,737 [DEBUG][       Thread-257681][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 14:17:34,737 [DEBUG][       Thread-257681][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 14:17:34,737 [DEBUG][       Thread-257681][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:17:34,737 [DEBUG][       Thread-257681][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:17:34,737 [DEBUG][       Thread-257681][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:17:34,737 [DEBUG][       Thread-257681][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:17:34,737 [DEBUG][       Thread-257681][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 14:17:34,737 [DEBUG][       Thread-257681][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 14:17:34,737 [DEBUG][       Thread-257681][   transport.py][1871] : client lang: <none>
2025-06-13 14:17:34,737 [DEBUG][       Thread-257681][   transport.py][1871] : server lang: <none>
2025-06-13 14:17:34,737 [DEBUG][       Thread-257681][   transport.py][1871] : kex follows: False
2025-06-13 14:17:34,737 [DEBUG][       Thread-257681][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 14:17:34,737 [DEBUG][       Thread-257681][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 14:17:34,737 [DEBUG][       Thread-257681][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 14:17:34,737 [DEBUG][       Thread-257681][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 14:17:34,737 [DEBUG][       Thread-257681][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 14:17:34,738 [DEBUG][       Thread-257681][   transport.py][1871] : Compression: none
2025-06-13 14:17:34,738 [DEBUG][       Thread-257681][   transport.py][1871] : === End of kex handshake ===
2025-06-13 14:17:34,795 [DEBUG][       Thread-257681][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 14:17:34,796 [DEBUG][       Thread-257681][   transport.py][1871] : Switch to new keys ...
2025-06-13 14:17:34,796 [DEBUG][       Thread-257681][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 14:17:34,797 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 14:17:34,797 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 14:17:34,855 [DEBUG][       Thread-257681][   transport.py][1871] : userauth is OK
2025-06-13 14:17:34,855 [DEBUG][       Thread-257681][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 14:17:34,855 [DEBUG][       Thread-257681][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 14:17:34,855 [DEBUG][       Thread-257681][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 14:17:34,855 [DEBUG][       Thread-257681][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 14:17:34,874 [ INFO][       Thread-257681][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 14:17:34,875 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 14:17:34,875 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 14:17:35,923 [DEBUG][       Thread-257681][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 14:17:35,923 [DEBUG][       Thread-257681][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 14:17:35,972 [DEBUG][       Thread-257681][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 14:17:35,972 [DEBUG][       Thread-257681][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 14:17:35,988 [DEBUG][       Thread-257681][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 14:17:36,005 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 14:17:36,006 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 14:17:36,015 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 14:17:36,024 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 14:17:36,024 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 14:17:36,025 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 14:17:36,032 [DEBUG][       Thread-257681][   transport.py][1871] : EOF in transport thread
2025-06-13 14:17:43,400 [DEBUG][Thread-257683 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:17:46,035 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 14:17:46,035 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 14:17:46,036 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 14:17:46,038 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 14:17:46,528 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 14, 17, 31), 16.81, 30.98, 0.0, 23.2, 13.78, 0, 0, 0, 2, 0, 0),)
2025-06-13 14:17:46,528 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 14:17:31
2025-06-13 14:17:46,613 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 14:17:46,617 [DEBUG][       Thread-257684][   transport.py][1871] : starting thread (client mode): 0x86368d90
2025-06-13 14:17:46,617 [DEBUG][       Thread-257684][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 14:17:46,639 [DEBUG][       Thread-257684][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 14:17:46,639 [ INFO][       Thread-257684][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 14:17:46,643 [DEBUG][       Thread-257684][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 14:17:46,643 [DEBUG][       Thread-257684][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 14:17:46,643 [DEBUG][       Thread-257684][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 14:17:46,643 [DEBUG][       Thread-257684][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:17:46,643 [DEBUG][       Thread-257684][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:17:46,643 [DEBUG][       Thread-257684][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:17:46,643 [DEBUG][       Thread-257684][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:17:46,643 [DEBUG][       Thread-257684][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 14:17:46,643 [DEBUG][       Thread-257684][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 14:17:46,643 [DEBUG][       Thread-257684][   transport.py][1871] : client lang: <none>
2025-06-13 14:17:46,643 [DEBUG][       Thread-257684][   transport.py][1871] : server lang: <none>
2025-06-13 14:17:46,643 [DEBUG][       Thread-257684][   transport.py][1871] : kex follows: False
2025-06-13 14:17:46,643 [DEBUG][       Thread-257684][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 14:17:46,643 [DEBUG][       Thread-257684][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 14:17:46,643 [DEBUG][       Thread-257684][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 14:17:46,643 [DEBUG][       Thread-257684][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 14:17:46,643 [DEBUG][       Thread-257684][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 14:17:46,643 [DEBUG][       Thread-257684][   transport.py][1871] : Compression: none
2025-06-13 14:17:46,643 [DEBUG][       Thread-257684][   transport.py][1871] : === End of kex handshake ===
2025-06-13 14:17:46,658 [DEBUG][       Thread-257684][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 14:17:46,659 [DEBUG][       Thread-257684][   transport.py][1871] : Switch to new keys ...
2025-06-13 14:17:46,659 [DEBUG][       Thread-257684][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 14:17:46,659 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 14:17:46,659 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 14:17:46,659 [DEBUG][       Thread-257684][   transport.py][1871] : userauth is OK
2025-06-13 14:17:46,672 [ INFO][       Thread-257684][   transport.py][1871] : Authentication (password) successful!
2025-06-13 14:17:46,672 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 14:17:47,318 [DEBUG][       Thread-257684][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 14:17:47,319 [DEBUG][       Thread-257684][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 14:17:47,360 [DEBUG][       Thread-257684][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 14:17:47,360 [DEBUG][       Thread-257684][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 14:17:47,363 [DEBUG][       Thread-257684][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 14:17:47,375 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 14:17:47,375 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 14:17:47,376 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 14:17:47,377 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 14:17:47,380 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 14:17:47,381 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 14:17:47,381 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 14:17:47,381 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 14:17:47,381 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.512089 -999.00  +13.70  21.65     37   -0.40 1 1 1 1 1   887    0 14.07 -37.24 ----- 20.4 21.6 48.8 24.9 18.0 -30.5 16.9 -32.1 17.3 -30.5 18.7 -28.9
2025-06-13 14:17:47,381 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 14:17:47,381 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 14:17:47,381 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.512089
2025-06-13 14:17:47,381 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 14:17:47,381 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 14:17:47,382 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 14:17:47,382 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 14:17:47,382 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 14:17:47,382 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T14:17:31', tmtdew=16.81, humidity=30.98, cloud=0.0, wind=23.2, temperature=13.78, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T12:17:24.490', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 14:17:47,382 [DEBUG][       Thread-257684][   transport.py][1871] : EOF in transport thread
2025-06-13 14:17:47,456 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 14:17:47,466 [DEBUG][       Thread-257687][   transport.py][1871] : starting thread (client mode): 0x84205ff0
2025-06-13 14:17:47,466 [DEBUG][       Thread-257687][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 14:17:47,481 [DEBUG][       Thread-257687][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 14:17:47,481 [ INFO][       Thread-257687][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 14:17:47,488 [DEBUG][       Thread-257687][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 14:17:47,488 [DEBUG][       Thread-257687][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 14:17:47,488 [DEBUG][       Thread-257687][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 14:17:47,488 [DEBUG][       Thread-257687][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:17:47,488 [DEBUG][       Thread-257687][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:17:47,488 [DEBUG][       Thread-257687][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:17:47,488 [DEBUG][       Thread-257687][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:17:47,488 [DEBUG][       Thread-257687][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 14:17:47,488 [DEBUG][       Thread-257687][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 14:17:47,488 [DEBUG][       Thread-257687][   transport.py][1871] : client lang: <none>
2025-06-13 14:17:47,488 [DEBUG][       Thread-257687][   transport.py][1871] : server lang: <none>
2025-06-13 14:17:47,488 [DEBUG][       Thread-257687][   transport.py][1871] : kex follows: False
2025-06-13 14:17:47,488 [DEBUG][       Thread-257687][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 14:17:47,488 [DEBUG][       Thread-257687][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 14:17:47,489 [DEBUG][       Thread-257687][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 14:17:47,489 [DEBUG][       Thread-257687][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 14:17:47,489 [DEBUG][       Thread-257687][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 14:17:47,489 [DEBUG][       Thread-257687][   transport.py][1871] : Compression: none
2025-06-13 14:17:47,489 [DEBUG][       Thread-257687][   transport.py][1871] : === End of kex handshake ===
2025-06-13 14:17:47,545 [DEBUG][       Thread-257687][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 14:17:47,546 [DEBUG][       Thread-257687][   transport.py][1871] : Switch to new keys ...
2025-06-13 14:17:47,546 [DEBUG][       Thread-257687][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 14:17:47,546 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 14:17:47,546 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 14:17:47,602 [DEBUG][       Thread-257687][   transport.py][1871] : userauth is OK
2025-06-13 14:17:47,602 [DEBUG][       Thread-257687][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 14:17:47,602 [DEBUG][       Thread-257687][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 14:17:47,602 [DEBUG][       Thread-257687][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 14:17:47,602 [DEBUG][       Thread-257687][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 14:17:47,616 [ INFO][       Thread-257687][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 14:17:47,617 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 14:17:47,617 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 14:17:48,670 [DEBUG][       Thread-257687][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 14:17:48,670 [DEBUG][       Thread-257687][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 14:17:48,719 [DEBUG][       Thread-257687][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 14:17:48,719 [DEBUG][       Thread-257687][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 14:17:48,728 [DEBUG][       Thread-257687][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 14:17:48,736 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 14:17:48,736 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 14:17:48,744 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 14:17:48,753 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 14:17:48,753 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 14:17:48,753 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 14:17:48,761 [DEBUG][       Thread-257687][   transport.py][1871] : EOF in transport thread
2025-06-13 14:17:52,434 [DEBUG][Thread-257689 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:17:58,763 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 14:17:58,763 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 14:17:58,764 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 14:17:58,767 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 14:17:59,237 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 14, 17, 31), 16.81, 30.98, 0.0, 23.2, 13.78, 0, 0, 0, 2, 0, 0),)
2025-06-13 14:17:59,237 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 14:17:31
2025-06-13 14:17:59,323 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 14:17:59,327 [DEBUG][       Thread-257690][   transport.py][1871] : starting thread (client mode): 0x84205660
2025-06-13 14:17:59,327 [DEBUG][       Thread-257690][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 14:17:59,347 [DEBUG][       Thread-257690][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 14:17:59,348 [ INFO][       Thread-257690][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 14:17:59,351 [DEBUG][       Thread-257690][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 14:17:59,351 [DEBUG][       Thread-257690][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 14:17:59,351 [DEBUG][       Thread-257690][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 14:17:59,351 [DEBUG][       Thread-257690][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:17:59,351 [DEBUG][       Thread-257690][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:17:59,352 [DEBUG][       Thread-257690][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:17:59,352 [DEBUG][       Thread-257690][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:17:59,352 [DEBUG][       Thread-257690][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 14:17:59,352 [DEBUG][       Thread-257690][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 14:17:59,352 [DEBUG][       Thread-257690][   transport.py][1871] : client lang: <none>
2025-06-13 14:17:59,352 [DEBUG][       Thread-257690][   transport.py][1871] : server lang: <none>
2025-06-13 14:17:59,352 [DEBUG][       Thread-257690][   transport.py][1871] : kex follows: False
2025-06-13 14:17:59,352 [DEBUG][       Thread-257690][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 14:17:59,352 [DEBUG][       Thread-257690][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 14:17:59,352 [DEBUG][       Thread-257690][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 14:17:59,352 [DEBUG][       Thread-257690][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 14:17:59,352 [DEBUG][       Thread-257690][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 14:17:59,352 [DEBUG][       Thread-257690][   transport.py][1871] : Compression: none
2025-06-13 14:17:59,352 [DEBUG][       Thread-257690][   transport.py][1871] : === End of kex handshake ===
2025-06-13 14:17:59,369 [DEBUG][       Thread-257690][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 14:17:59,370 [DEBUG][       Thread-257690][   transport.py][1871] : Switch to new keys ...
2025-06-13 14:17:59,370 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 14:17:59,370 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 14:17:59,371 [DEBUG][       Thread-257690][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 14:17:59,371 [DEBUG][       Thread-257690][   transport.py][1871] : userauth is OK
2025-06-13 14:17:59,384 [ INFO][       Thread-257690][   transport.py][1871] : Authentication (password) successful!
2025-06-13 14:17:59,385 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 14:17:59,476 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:17:59,477 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:17:59,985 [DEBUG][       Thread-257690][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 14:17:59,985 [DEBUG][       Thread-257690][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 14:18:00,029 [DEBUG][       Thread-257690][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 14:18:00,029 [DEBUG][       Thread-257690][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 14:18:00,032 [DEBUG][       Thread-257690][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 14:18:00,044 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 14:18:00,045 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 14:18:00,046 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 14:18:00,048 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 14:18:00,053 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 14:18:00,055 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 14:18:00,055 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 14:18:00,056 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 14:18:00,056 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.512089 -999.00  +13.70  21.65     37   -0.40 1 1 1 1 1   887    0 14.07 -37.24 ----- 20.4 21.6 48.8 24.9 18.0 -30.5 16.9 -32.1 17.3 -30.5 18.7 -28.9
2025-06-13 14:18:00,056 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 14:18:00,056 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 14:18:00,056 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.512089
2025-06-13 14:18:00,057 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 14:18:00,057 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 14:18:00,057 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 14:18:00,057 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 14:18:00,057 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 14:18:00,058 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T14:17:31', tmtdew=16.81, humidity=30.98, cloud=0.0, wind=23.2, temperature=13.78, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T12:17:24.490', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 14:18:00,059 [DEBUG][       Thread-257690][   transport.py][1871] : EOF in transport thread
2025-06-13 14:18:00,141 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 14:18:00,158 [DEBUG][       Thread-257693][   transport.py][1871] : starting thread (client mode): 0x863cac50
2025-06-13 14:18:00,158 [DEBUG][       Thread-257693][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 14:18:00,176 [DEBUG][       Thread-257693][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 14:18:00,177 [ INFO][       Thread-257693][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 14:18:00,184 [DEBUG][       Thread-257693][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 14:18:00,184 [DEBUG][       Thread-257693][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 14:18:00,184 [DEBUG][       Thread-257693][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 14:18:00,184 [DEBUG][       Thread-257693][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:18:00,184 [DEBUG][       Thread-257693][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:18:00,184 [DEBUG][       Thread-257693][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:18:00,184 [DEBUG][       Thread-257693][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:18:00,185 [DEBUG][       Thread-257693][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 14:18:00,185 [DEBUG][       Thread-257693][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 14:18:00,185 [DEBUG][       Thread-257693][   transport.py][1871] : client lang: <none>
2025-06-13 14:18:00,185 [DEBUG][       Thread-257693][   transport.py][1871] : server lang: <none>
2025-06-13 14:18:00,185 [DEBUG][       Thread-257693][   transport.py][1871] : kex follows: False
2025-06-13 14:18:00,185 [DEBUG][       Thread-257693][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 14:18:00,185 [DEBUG][       Thread-257693][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 14:18:00,185 [DEBUG][       Thread-257693][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 14:18:00,185 [DEBUG][       Thread-257693][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 14:18:00,185 [DEBUG][       Thread-257693][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 14:18:00,185 [DEBUG][       Thread-257693][   transport.py][1871] : Compression: none
2025-06-13 14:18:00,185 [DEBUG][       Thread-257693][   transport.py][1871] : === End of kex handshake ===
2025-06-13 14:18:00,247 [DEBUG][       Thread-257693][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 14:18:00,247 [DEBUG][       Thread-257693][   transport.py][1871] : Switch to new keys ...
2025-06-13 14:18:00,247 [DEBUG][       Thread-257693][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 14:18:00,247 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 14:18:00,247 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 14:18:00,304 [DEBUG][       Thread-257693][   transport.py][1871] : userauth is OK
2025-06-13 14:18:00,304 [DEBUG][       Thread-257693][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 14:18:00,304 [DEBUG][       Thread-257693][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 14:18:00,304 [DEBUG][       Thread-257693][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 14:18:00,304 [DEBUG][       Thread-257693][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 14:18:00,319 [ INFO][       Thread-257693][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 14:18:00,319 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 14:18:00,319 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 14:18:01,336 [DEBUG][       Thread-257693][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 14:18:01,336 [DEBUG][       Thread-257693][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 14:18:01,388 [DEBUG][       Thread-257693][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 14:18:01,388 [DEBUG][       Thread-257693][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 14:18:01,398 [DEBUG][       Thread-257693][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 14:18:01,407 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 14:18:01,407 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 14:18:01,418 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 14:18:01,430 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 14:18:01,431 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 14:18:01,431 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 14:18:01,439 [DEBUG][       Thread-257693][   transport.py][1871] : EOF in transport thread
2025-06-13 14:18:01,475 [DEBUG][Thread-257695 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:18:10,498 [DEBUG][Thread-257696 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:18:11,442 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 14:18:11,442 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 14:18:11,442 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 14:18:11,445 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 14:18:11,925 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 14, 18, 3), 16.74, 31.14, 0.0, 23.98, 13.8, 0, 0, 0, 2, 0, 0),)
2025-06-13 14:18:11,925 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 14:18:03
2025-06-13 14:18:12,005 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 14:18:12,012 [DEBUG][       Thread-257697][   transport.py][1871] : starting thread (client mode): 0x863504f0
2025-06-13 14:18:12,012 [DEBUG][       Thread-257697][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 14:18:12,033 [DEBUG][       Thread-257697][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 14:18:12,033 [ INFO][       Thread-257697][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 14:18:12,037 [DEBUG][       Thread-257697][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 14:18:12,037 [DEBUG][       Thread-257697][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 14:18:12,037 [DEBUG][       Thread-257697][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 14:18:12,037 [DEBUG][       Thread-257697][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:18:12,037 [DEBUG][       Thread-257697][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:18:12,037 [DEBUG][       Thread-257697][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:18:12,037 [DEBUG][       Thread-257697][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:18:12,037 [DEBUG][       Thread-257697][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 14:18:12,037 [DEBUG][       Thread-257697][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 14:18:12,037 [DEBUG][       Thread-257697][   transport.py][1871] : client lang: <none>
2025-06-13 14:18:12,037 [DEBUG][       Thread-257697][   transport.py][1871] : server lang: <none>
2025-06-13 14:18:12,037 [DEBUG][       Thread-257697][   transport.py][1871] : kex follows: False
2025-06-13 14:18:12,037 [DEBUG][       Thread-257697][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 14:18:12,038 [DEBUG][       Thread-257697][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 14:18:12,038 [DEBUG][       Thread-257697][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 14:18:12,038 [DEBUG][       Thread-257697][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 14:18:12,038 [DEBUG][       Thread-257697][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 14:18:12,038 [DEBUG][       Thread-257697][   transport.py][1871] : Compression: none
2025-06-13 14:18:12,038 [DEBUG][       Thread-257697][   transport.py][1871] : === End of kex handshake ===
2025-06-13 14:18:12,057 [DEBUG][       Thread-257697][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 14:18:12,058 [DEBUG][       Thread-257697][   transport.py][1871] : Switch to new keys ...
2025-06-13 14:18:12,058 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 14:18:12,058 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 14:18:12,059 [DEBUG][       Thread-257697][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 14:18:12,059 [DEBUG][       Thread-257697][   transport.py][1871] : userauth is OK
2025-06-13 14:18:12,084 [ INFO][       Thread-257697][   transport.py][1871] : Authentication (password) successful!
2025-06-13 14:18:12,084 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 14:18:12,730 [DEBUG][       Thread-257697][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 14:18:12,730 [DEBUG][       Thread-257697][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 14:18:12,776 [DEBUG][       Thread-257697][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 14:18:12,776 [DEBUG][       Thread-257697][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 14:18:12,779 [DEBUG][       Thread-257697][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 14:18:12,792 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 14:18:12,792 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 14:18:12,794 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 14:18:12,795 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 14:18:12,798 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 14:18:12,798 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 14:18:12,799 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 14:18:12,799 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 14:18:12,799 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.512436 -999.00  +13.70  20.91     36   -0.70 1 1 1 1 1   887    0 13.72 -42.15 ----- 24.3 20.9 38.4 24.1 18.0 -30.7 16.9 -32.4 17.3 -30.8 18.7 -29.0
2025-06-13 14:18:12,799 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 14:18:12,799 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 14:18:12,799 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.512436
2025-06-13 14:18:12,799 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 14:18:12,799 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 14:18:12,799 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 14:18:12,799 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 14:18:12,799 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 14:18:12,799 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T14:18:03', tmtdew=16.74, humidity=31.14, cloud=0.0, wind=23.98, temperature=13.8, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T12:17:54.470', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 14:18:12,800 [DEBUG][       Thread-257697][   transport.py][1871] : EOF in transport thread
2025-06-13 14:18:12,870 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 14:18:12,881 [DEBUG][       Thread-257700][   transport.py][1871] : starting thread (client mode): 0x842066b0
2025-06-13 14:18:12,881 [DEBUG][       Thread-257700][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 14:18:12,897 [DEBUG][       Thread-257700][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 14:18:12,897 [ INFO][       Thread-257700][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 14:18:12,905 [DEBUG][       Thread-257700][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 14:18:12,905 [DEBUG][       Thread-257700][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 14:18:12,905 [DEBUG][       Thread-257700][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 14:18:12,905 [DEBUG][       Thread-257700][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:18:12,905 [DEBUG][       Thread-257700][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:18:12,905 [DEBUG][       Thread-257700][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:18:12,906 [DEBUG][       Thread-257700][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:18:12,906 [DEBUG][       Thread-257700][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 14:18:12,906 [DEBUG][       Thread-257700][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 14:18:12,906 [DEBUG][       Thread-257700][   transport.py][1871] : client lang: <none>
2025-06-13 14:18:12,906 [DEBUG][       Thread-257700][   transport.py][1871] : server lang: <none>
2025-06-13 14:18:12,906 [DEBUG][       Thread-257700][   transport.py][1871] : kex follows: False
2025-06-13 14:18:12,906 [DEBUG][       Thread-257700][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 14:18:12,906 [DEBUG][       Thread-257700][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 14:18:12,906 [DEBUG][       Thread-257700][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 14:18:12,906 [DEBUG][       Thread-257700][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 14:18:12,906 [DEBUG][       Thread-257700][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 14:18:12,906 [DEBUG][       Thread-257700][   transport.py][1871] : Compression: none
2025-06-13 14:18:12,906 [DEBUG][       Thread-257700][   transport.py][1871] : === End of kex handshake ===
2025-06-13 14:18:12,963 [DEBUG][       Thread-257700][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 14:18:12,964 [DEBUG][       Thread-257700][   transport.py][1871] : Switch to new keys ...
2025-06-13 14:18:12,964 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 14:18:12,965 [DEBUG][       Thread-257700][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 14:18:12,966 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 14:18:13,019 [DEBUG][       Thread-257700][   transport.py][1871] : userauth is OK
2025-06-13 14:18:13,019 [DEBUG][       Thread-257700][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 14:18:13,019 [DEBUG][       Thread-257700][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 14:18:13,020 [DEBUG][       Thread-257700][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 14:18:13,020 [DEBUG][       Thread-257700][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 14:18:13,038 [ INFO][       Thread-257700][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 14:18:13,039 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 14:18:13,039 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 14:18:14,115 [DEBUG][       Thread-257700][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 14:18:14,116 [DEBUG][       Thread-257700][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 14:18:14,164 [DEBUG][       Thread-257700][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 14:18:14,164 [DEBUG][       Thread-257700][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 14:18:14,173 [DEBUG][       Thread-257700][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 14:18:14,182 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 14:18:14,182 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 14:18:14,190 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 14:18:14,199 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 14:18:14,200 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 14:18:14,200 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 14:18:14,208 [DEBUG][       Thread-257700][   transport.py][1871] : EOF in transport thread
2025-06-13 14:18:17,727 [DEBUG][Thread-257702 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:18:19,518 [DEBUG][Thread-257703 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:18:24,211 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 14:18:24,211 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 14:18:24,211 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 14:18:24,214 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 14:18:24,692 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 14, 18, 3), 16.74, 31.14, 0.0, 23.98, 13.8, 0, 0, 0, 2, 0, 0),)
2025-06-13 14:18:24,692 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 14:18:03
2025-06-13 14:18:24,779 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 14:18:24,783 [DEBUG][       Thread-257704][   transport.py][1871] : starting thread (client mode): 0x84207cd0
2025-06-13 14:18:24,783 [DEBUG][       Thread-257704][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 14:18:24,804 [DEBUG][       Thread-257704][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 14:18:24,804 [ INFO][       Thread-257704][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 14:18:24,809 [DEBUG][       Thread-257704][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 14:18:24,809 [DEBUG][       Thread-257704][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 14:18:24,809 [DEBUG][       Thread-257704][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 14:18:24,809 [DEBUG][       Thread-257704][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:18:24,809 [DEBUG][       Thread-257704][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:18:24,809 [DEBUG][       Thread-257704][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:18:24,809 [DEBUG][       Thread-257704][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:18:24,809 [DEBUG][       Thread-257704][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 14:18:24,809 [DEBUG][       Thread-257704][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 14:18:24,809 [DEBUG][       Thread-257704][   transport.py][1871] : client lang: <none>
2025-06-13 14:18:24,809 [DEBUG][       Thread-257704][   transport.py][1871] : server lang: <none>
2025-06-13 14:18:24,809 [DEBUG][       Thread-257704][   transport.py][1871] : kex follows: False
2025-06-13 14:18:24,809 [DEBUG][       Thread-257704][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 14:18:24,809 [DEBUG][       Thread-257704][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 14:18:24,809 [DEBUG][       Thread-257704][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 14:18:24,809 [DEBUG][       Thread-257704][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 14:18:24,809 [DEBUG][       Thread-257704][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 14:18:24,809 [DEBUG][       Thread-257704][   transport.py][1871] : Compression: none
2025-06-13 14:18:24,809 [DEBUG][       Thread-257704][   transport.py][1871] : === End of kex handshake ===
2025-06-13 14:18:24,826 [DEBUG][       Thread-257704][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 14:18:24,826 [DEBUG][       Thread-257704][   transport.py][1871] : Switch to new keys ...
2025-06-13 14:18:24,826 [DEBUG][       Thread-257704][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 14:18:24,826 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 14:18:24,826 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 14:18:24,827 [DEBUG][       Thread-257704][   transport.py][1871] : userauth is OK
2025-06-13 14:18:24,839 [ INFO][       Thread-257704][   transport.py][1871] : Authentication (password) successful!
2025-06-13 14:18:24,840 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 14:18:25,424 [DEBUG][       Thread-257704][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 14:18:25,424 [DEBUG][       Thread-257704][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 14:18:25,465 [DEBUG][       Thread-257704][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 14:18:25,465 [DEBUG][       Thread-257704][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 14:18:25,467 [DEBUG][       Thread-257704][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 14:18:25,480 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 14:18:25,480 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 14:18:25,482 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 14:18:25,482 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 14:18:25,485 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 14:18:25,486 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 14:18:25,486 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 14:18:25,486 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 14:18:25,486 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.512436 -999.00  +13.70  20.91     36   -0.70 1 1 1 1 1   887    0 13.72 -42.15 ----- 24.3 20.9 38.4 24.1 18.0 -30.7 16.9 -32.4 17.3 -30.8 18.7 -29.0
2025-06-13 14:18:25,486 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 14:18:25,486 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 14:18:25,486 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.512436
2025-06-13 14:18:25,486 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 14:18:25,487 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 14:18:25,487 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 14:18:25,487 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 14:18:25,487 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 14:18:25,487 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T14:18:03', tmtdew=16.74, humidity=31.14, cloud=0.0, wind=23.98, temperature=13.8, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T12:17:54.470', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 14:18:25,487 [DEBUG][       Thread-257704][   transport.py][1871] : EOF in transport thread
2025-06-13 14:18:25,561 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 14:18:25,570 [DEBUG][       Thread-257707][   transport.py][1871] : starting thread (client mode): 0x863a6e60
2025-06-13 14:18:25,571 [DEBUG][       Thread-257707][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 14:18:25,590 [DEBUG][       Thread-257707][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 14:18:25,590 [ INFO][       Thread-257707][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 14:18:25,598 [DEBUG][       Thread-257707][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 14:18:25,598 [DEBUG][       Thread-257707][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 14:18:25,598 [DEBUG][       Thread-257707][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 14:18:25,598 [DEBUG][       Thread-257707][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:18:25,598 [DEBUG][       Thread-257707][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:18:25,598 [DEBUG][       Thread-257707][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:18:25,598 [DEBUG][       Thread-257707][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:18:25,598 [DEBUG][       Thread-257707][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 14:18:25,598 [DEBUG][       Thread-257707][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 14:18:25,598 [DEBUG][       Thread-257707][   transport.py][1871] : client lang: <none>
2025-06-13 14:18:25,598 [DEBUG][       Thread-257707][   transport.py][1871] : server lang: <none>
2025-06-13 14:18:25,598 [DEBUG][       Thread-257707][   transport.py][1871] : kex follows: False
2025-06-13 14:18:25,598 [DEBUG][       Thread-257707][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 14:18:25,598 [DEBUG][       Thread-257707][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 14:18:25,598 [DEBUG][       Thread-257707][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 14:18:25,598 [DEBUG][       Thread-257707][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 14:18:25,598 [DEBUG][       Thread-257707][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 14:18:25,598 [DEBUG][       Thread-257707][   transport.py][1871] : Compression: none
2025-06-13 14:18:25,598 [DEBUG][       Thread-257707][   transport.py][1871] : === End of kex handshake ===
2025-06-13 14:18:25,661 [DEBUG][       Thread-257707][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 14:18:25,662 [DEBUG][       Thread-257707][   transport.py][1871] : Switch to new keys ...
2025-06-13 14:18:25,662 [DEBUG][       Thread-257707][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 14:18:25,662 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 14:18:25,662 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 14:18:25,723 [DEBUG][       Thread-257707][   transport.py][1871] : userauth is OK
2025-06-13 14:18:25,723 [DEBUG][       Thread-257707][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 14:18:25,723 [DEBUG][       Thread-257707][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 14:18:25,723 [DEBUG][       Thread-257707][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 14:18:25,723 [DEBUG][       Thread-257707][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 14:18:25,737 [ INFO][       Thread-257707][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 14:18:25,737 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 14:18:25,737 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 14:18:26,791 [DEBUG][       Thread-257707][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 14:18:26,791 [DEBUG][       Thread-257707][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 14:18:26,840 [DEBUG][       Thread-257707][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 14:18:26,840 [DEBUG][       Thread-257707][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 14:18:26,848 [DEBUG][       Thread-257707][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 14:18:26,856 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 14:18:26,856 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 14:18:26,864 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 14:18:26,872 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 14:18:26,872 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 14:18:26,872 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 14:18:26,880 [DEBUG][       Thread-257707][   transport.py][1871] : EOF in transport thread
2025-06-13 14:18:28,547 [DEBUG][Thread-257709 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:18:29,985 [DEBUG][Thread-257710 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:18:31,045 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:18:31,046 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:18:36,883 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 14:18:36,883 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 14:18:36,883 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 14:18:36,883 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 14:18:37,374 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 14, 18, 3), 16.74, 31.14, 0.0, 23.98, 13.8, 0, 0, 0, 2, 0, 0),)
2025-06-13 14:18:37,374 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 14:18:03
2025-06-13 14:18:37,455 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 14:18:37,460 [DEBUG][       Thread-257711][   transport.py][1871] : starting thread (client mode): 0x84206ad0
2025-06-13 14:18:37,460 [DEBUG][       Thread-257711][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 14:18:37,481 [DEBUG][       Thread-257711][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 14:18:37,481 [ INFO][       Thread-257711][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 14:18:37,484 [DEBUG][       Thread-257711][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 14:18:37,484 [DEBUG][       Thread-257711][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 14:18:37,484 [DEBUG][       Thread-257711][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 14:18:37,484 [DEBUG][       Thread-257711][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:18:37,484 [DEBUG][       Thread-257711][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:18:37,484 [DEBUG][       Thread-257711][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:18:37,485 [DEBUG][       Thread-257711][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:18:37,485 [DEBUG][       Thread-257711][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 14:18:37,485 [DEBUG][       Thread-257711][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 14:18:37,485 [DEBUG][       Thread-257711][   transport.py][1871] : client lang: <none>
2025-06-13 14:18:37,485 [DEBUG][       Thread-257711][   transport.py][1871] : server lang: <none>
2025-06-13 14:18:37,485 [DEBUG][       Thread-257711][   transport.py][1871] : kex follows: False
2025-06-13 14:18:37,485 [DEBUG][       Thread-257711][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 14:18:37,485 [DEBUG][       Thread-257711][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 14:18:37,485 [DEBUG][       Thread-257711][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 14:18:37,485 [DEBUG][       Thread-257711][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 14:18:37,485 [DEBUG][       Thread-257711][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 14:18:37,485 [DEBUG][       Thread-257711][   transport.py][1871] : Compression: none
2025-06-13 14:18:37,485 [DEBUG][       Thread-257711][   transport.py][1871] : === End of kex handshake ===
2025-06-13 14:18:37,493 [DEBUG][       Thread-257711][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 14:18:37,493 [DEBUG][       Thread-257711][   transport.py][1871] : Switch to new keys ...
2025-06-13 14:18:37,493 [DEBUG][       Thread-257711][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 14:18:37,493 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 14:18:37,493 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 14:18:37,494 [DEBUG][       Thread-257711][   transport.py][1871] : userauth is OK
2025-06-13 14:18:37,518 [ INFO][       Thread-257711][   transport.py][1871] : Authentication (password) successful!
2025-06-13 14:18:37,519 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 14:18:37,567 [DEBUG][Thread-257713 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:18:38,087 [DEBUG][       Thread-257711][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 14:18:38,087 [DEBUG][       Thread-257711][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 14:18:38,129 [DEBUG][       Thread-257711][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 14:18:38,129 [DEBUG][       Thread-257711][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 14:18:38,132 [DEBUG][       Thread-257711][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 14:18:38,146 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 14:18:38,146 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 14:18:38,148 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 14:18:38,150 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 14:18:38,156 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 14:18:38,158 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 14:18:38,158 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 14:18:38,159 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 14:18:38,159 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.512784 -999.00  +13.50  23.70     36   -1.20 1 1 1 1 1   887    0 13.66 -45.00 ----- 22.3 23.7 41.8 26.3 18.0 -31.2 16.8 -33.2 17.2 -30.7 18.6 -29.0
2025-06-13 14:18:38,159 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 14:18:38,159 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 14:18:38,160 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.512784
2025-06-13 14:18:38,160 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 14:18:38,161 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 14:18:38,161 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 14:18:38,161 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 14:18:38,161 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 14:18:38,161 [DEBUG][       Thread-257711][   transport.py][1871] : EOF in transport thread
2025-06-13 14:18:38,161 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T14:18:03', tmtdew=16.74, humidity=31.14, cloud=0.0, wind=23.98, temperature=13.8, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T12:18:24.538', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 14:18:38,245 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 14:18:38,257 [DEBUG][       Thread-257715][   transport.py][1871] : starting thread (client mode): 0x863bca00
2025-06-13 14:18:38,257 [DEBUG][       Thread-257715][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 14:18:38,271 [DEBUG][       Thread-257715][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 14:18:38,271 [ INFO][       Thread-257715][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 14:18:38,279 [DEBUG][       Thread-257715][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 14:18:38,279 [DEBUG][       Thread-257715][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 14:18:38,279 [DEBUG][       Thread-257715][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 14:18:38,279 [DEBUG][       Thread-257715][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:18:38,279 [DEBUG][       Thread-257715][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:18:38,279 [DEBUG][       Thread-257715][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:18:38,280 [DEBUG][       Thread-257715][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:18:38,280 [DEBUG][       Thread-257715][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 14:18:38,280 [DEBUG][       Thread-257715][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 14:18:38,280 [DEBUG][       Thread-257715][   transport.py][1871] : client lang: <none>
2025-06-13 14:18:38,280 [DEBUG][       Thread-257715][   transport.py][1871] : server lang: <none>
2025-06-13 14:18:38,280 [DEBUG][       Thread-257715][   transport.py][1871] : kex follows: False
2025-06-13 14:18:38,280 [DEBUG][       Thread-257715][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 14:18:38,280 [DEBUG][       Thread-257715][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 14:18:38,280 [DEBUG][       Thread-257715][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 14:18:38,280 [DEBUG][       Thread-257715][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 14:18:38,280 [DEBUG][       Thread-257715][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 14:18:38,280 [DEBUG][       Thread-257715][   transport.py][1871] : Compression: none
2025-06-13 14:18:38,280 [DEBUG][       Thread-257715][   transport.py][1871] : === End of kex handshake ===
2025-06-13 14:18:38,339 [DEBUG][       Thread-257715][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 14:18:38,339 [DEBUG][       Thread-257715][   transport.py][1871] : Switch to new keys ...
2025-06-13 14:18:38,340 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 14:18:38,340 [DEBUG][       Thread-257715][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 14:18:38,341 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 14:18:38,400 [DEBUG][       Thread-257715][   transport.py][1871] : userauth is OK
2025-06-13 14:18:38,400 [DEBUG][       Thread-257715][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 14:18:38,400 [DEBUG][       Thread-257715][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 14:18:38,400 [DEBUG][       Thread-257715][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 14:18:38,400 [DEBUG][       Thread-257715][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 14:18:38,419 [ INFO][       Thread-257715][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 14:18:38,420 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 14:18:38,420 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 14:18:39,433 [DEBUG][       Thread-257715][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 14:18:39,433 [DEBUG][       Thread-257715][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 14:18:39,484 [DEBUG][       Thread-257715][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 14:18:39,484 [DEBUG][       Thread-257715][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 14:18:39,496 [DEBUG][       Thread-257715][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 14:18:39,509 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 14:18:39,510 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 14:18:39,520 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 14:18:39,530 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 14:18:39,530 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 14:18:39,531 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 14:18:39,539 [DEBUG][       Thread-257715][   transport.py][1871] : EOF in transport thread
2025-06-13 14:18:46,589 [DEBUG][Thread-257717 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:18:49,541 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 14:18:49,541 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 14:18:49,541 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 14:18:49,544 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 14:18:50,023 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 14, 18, 35), 16.59, 31.7, 0.0, 19.92, 13.74, 0, 0, 0, 2, 0, 0),)
2025-06-13 14:18:50,023 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 14:18:35
2025-06-13 14:18:50,104 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 14:18:50,108 [DEBUG][       Thread-257718][   transport.py][1871] : starting thread (client mode): 0x863bc970
2025-06-13 14:18:50,108 [DEBUG][       Thread-257718][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 14:18:50,129 [DEBUG][       Thread-257718][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 14:18:50,129 [ INFO][       Thread-257718][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 14:18:50,130 [DEBUG][       Thread-257718][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 14:18:50,130 [DEBUG][       Thread-257718][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 14:18:50,130 [DEBUG][       Thread-257718][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 14:18:50,130 [DEBUG][       Thread-257718][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:18:50,130 [DEBUG][       Thread-257718][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:18:50,130 [DEBUG][       Thread-257718][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:18:50,130 [DEBUG][       Thread-257718][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:18:50,130 [DEBUG][       Thread-257718][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 14:18:50,130 [DEBUG][       Thread-257718][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 14:18:50,130 [DEBUG][       Thread-257718][   transport.py][1871] : client lang: <none>
2025-06-13 14:18:50,130 [DEBUG][       Thread-257718][   transport.py][1871] : server lang: <none>
2025-06-13 14:18:50,130 [DEBUG][       Thread-257718][   transport.py][1871] : kex follows: False
2025-06-13 14:18:50,131 [DEBUG][       Thread-257718][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 14:18:50,131 [DEBUG][       Thread-257718][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 14:18:50,131 [DEBUG][       Thread-257718][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 14:18:50,131 [DEBUG][       Thread-257718][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 14:18:50,131 [DEBUG][       Thread-257718][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 14:18:50,131 [DEBUG][       Thread-257718][   transport.py][1871] : Compression: none
2025-06-13 14:18:50,131 [DEBUG][       Thread-257718][   transport.py][1871] : === End of kex handshake ===
2025-06-13 14:18:50,146 [DEBUG][       Thread-257718][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 14:18:50,146 [DEBUG][       Thread-257718][   transport.py][1871] : Switch to new keys ...
2025-06-13 14:18:50,146 [DEBUG][       Thread-257718][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 14:18:50,146 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 14:18:50,146 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 14:18:50,147 [DEBUG][       Thread-257718][   transport.py][1871] : userauth is OK
2025-06-13 14:18:50,160 [ INFO][       Thread-257718][   transport.py][1871] : Authentication (password) successful!
2025-06-13 14:18:50,160 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 14:18:50,828 [DEBUG][       Thread-257718][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 14:18:50,828 [DEBUG][       Thread-257718][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 14:18:50,869 [DEBUG][       Thread-257718][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 14:18:50,869 [DEBUG][       Thread-257718][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 14:18:50,873 [DEBUG][       Thread-257718][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 14:18:50,886 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 14:18:50,887 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 14:18:50,889 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 14:18:50,891 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 14:18:50,898 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 14:18:50,900 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 14:18:50,900 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 14:18:50,901 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 14:18:50,901 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.512784 -999.00  +13.50  23.70     36   -1.20 1 1 1 1 1   887    0 13.66 -45.00 ----- 22.3 23.7 41.8 26.3 18.0 -31.2 16.8 -33.2 17.2 -30.7 18.6 -29.0
2025-06-13 14:18:50,901 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 14:18:50,901 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 14:18:50,901 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.512784
2025-06-13 14:18:50,902 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 14:18:50,902 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 14:18:50,902 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 14:18:50,903 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 14:18:50,903 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 14:18:50,903 [DEBUG][       Thread-257718][   transport.py][1871] : EOF in transport thread
2025-06-13 14:18:50,903 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T14:18:35', tmtdew=16.59, humidity=31.7, cloud=0.0, wind=19.92, temperature=13.74, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T12:18:24.538', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 14:18:50,988 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 14:18:50,997 [DEBUG][       Thread-257721][   transport.py][1871] : starting thread (client mode): 0x863cb0d0
2025-06-13 14:18:50,997 [DEBUG][       Thread-257721][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 14:18:51,014 [DEBUG][       Thread-257721][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 14:18:51,014 [ INFO][       Thread-257721][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 14:18:51,021 [DEBUG][       Thread-257721][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 14:18:51,022 [DEBUG][       Thread-257721][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 14:18:51,022 [DEBUG][       Thread-257721][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 14:18:51,022 [DEBUG][       Thread-257721][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:18:51,022 [DEBUG][       Thread-257721][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:18:51,022 [DEBUG][       Thread-257721][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:18:51,022 [DEBUG][       Thread-257721][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:18:51,022 [DEBUG][       Thread-257721][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 14:18:51,022 [DEBUG][       Thread-257721][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 14:18:51,022 [DEBUG][       Thread-257721][   transport.py][1871] : client lang: <none>
2025-06-13 14:18:51,022 [DEBUG][       Thread-257721][   transport.py][1871] : server lang: <none>
2025-06-13 14:18:51,022 [DEBUG][       Thread-257721][   transport.py][1871] : kex follows: False
2025-06-13 14:18:51,022 [DEBUG][       Thread-257721][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 14:18:51,022 [DEBUG][       Thread-257721][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 14:18:51,022 [DEBUG][       Thread-257721][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 14:18:51,022 [DEBUG][       Thread-257721][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 14:18:51,022 [DEBUG][       Thread-257721][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 14:18:51,022 [DEBUG][       Thread-257721][   transport.py][1871] : Compression: none
2025-06-13 14:18:51,022 [DEBUG][       Thread-257721][   transport.py][1871] : === End of kex handshake ===
2025-06-13 14:18:51,079 [DEBUG][       Thread-257721][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 14:18:51,080 [DEBUG][       Thread-257721][   transport.py][1871] : Switch to new keys ...
2025-06-13 14:18:51,081 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 14:18:51,081 [DEBUG][       Thread-257721][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 14:18:51,082 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 14:18:51,135 [DEBUG][       Thread-257721][   transport.py][1871] : userauth is OK
2025-06-13 14:18:51,135 [DEBUG][       Thread-257721][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 14:18:51,135 [DEBUG][       Thread-257721][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 14:18:51,135 [DEBUG][       Thread-257721][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 14:18:51,136 [DEBUG][       Thread-257721][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 14:18:51,154 [ INFO][       Thread-257721][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 14:18:51,155 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 14:18:51,164 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 14:18:52,163 [DEBUG][       Thread-257721][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 14:18:52,164 [DEBUG][       Thread-257721][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 14:18:52,212 [DEBUG][       Thread-257721][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 14:18:52,212 [DEBUG][       Thread-257721][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 14:18:52,221 [DEBUG][       Thread-257721][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 14:18:52,230 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 14:18:52,231 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 14:18:52,239 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 14:18:52,248 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 14:18:52,248 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 14:18:52,249 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 14:18:52,256 [DEBUG][       Thread-257721][   transport.py][1871] : EOF in transport thread
2025-06-13 14:18:55,613 [DEBUG][Thread-257723 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:18:59,612 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:18:59,613 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:19:02,259 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 14:19:02,259 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 14:19:02,259 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 14:19:02,262 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 14:19:02,748 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 14, 18, 35), 16.59, 31.7, 0.0, 19.92, 13.74, 0, 0, 0, 2, 0, 0),)
2025-06-13 14:19:02,748 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 14:18:35
2025-06-13 14:19:02,834 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 14:19:02,838 [DEBUG][       Thread-257724][   transport.py][1871] : starting thread (client mode): 0x86391360
2025-06-13 14:19:02,838 [DEBUG][       Thread-257724][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 14:19:02,860 [DEBUG][       Thread-257724][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 14:19:02,860 [ INFO][       Thread-257724][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 14:19:02,864 [DEBUG][       Thread-257724][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 14:19:02,864 [DEBUG][       Thread-257724][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 14:19:02,864 [DEBUG][       Thread-257724][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 14:19:02,864 [DEBUG][       Thread-257724][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:19:02,864 [DEBUG][       Thread-257724][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:19:02,864 [DEBUG][       Thread-257724][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:19:02,864 [DEBUG][       Thread-257724][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:19:02,864 [DEBUG][       Thread-257724][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 14:19:02,864 [DEBUG][       Thread-257724][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 14:19:02,864 [DEBUG][       Thread-257724][   transport.py][1871] : client lang: <none>
2025-06-13 14:19:02,864 [DEBUG][       Thread-257724][   transport.py][1871] : server lang: <none>
2025-06-13 14:19:02,864 [DEBUG][       Thread-257724][   transport.py][1871] : kex follows: False
2025-06-13 14:19:02,864 [DEBUG][       Thread-257724][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 14:19:02,864 [DEBUG][       Thread-257724][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 14:19:02,864 [DEBUG][       Thread-257724][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 14:19:02,864 [DEBUG][       Thread-257724][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 14:19:02,864 [DEBUG][       Thread-257724][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 14:19:02,864 [DEBUG][       Thread-257724][   transport.py][1871] : Compression: none
2025-06-13 14:19:02,864 [DEBUG][       Thread-257724][   transport.py][1871] : === End of kex handshake ===
2025-06-13 14:19:02,871 [DEBUG][       Thread-257724][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 14:19:02,871 [DEBUG][       Thread-257724][   transport.py][1871] : Switch to new keys ...
2025-06-13 14:19:02,871 [DEBUG][       Thread-257724][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 14:19:02,871 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 14:19:02,871 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 14:19:02,872 [DEBUG][       Thread-257724][   transport.py][1871] : userauth is OK
2025-06-13 14:19:02,896 [ INFO][       Thread-257724][   transport.py][1871] : Authentication (password) successful!
2025-06-13 14:19:02,896 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 14:19:03,525 [DEBUG][       Thread-257724][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 14:19:03,525 [DEBUG][       Thread-257724][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 14:19:03,568 [DEBUG][       Thread-257724][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 14:19:03,569 [DEBUG][       Thread-257724][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 14:19:03,571 [DEBUG][       Thread-257724][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 14:19:03,583 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 14:19:03,583 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 14:19:03,584 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 14:19:03,585 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 14:19:03,588 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 14:19:03,589 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 14:19:03,589 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 14:19:03,589 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 14:19:03,589 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.512784 -999.00  +13.50  23.70     36   -1.20 1 1 1 1 1   887    0 13.66 -45.00 ----- 22.3 23.7 41.8 26.3 18.0 -31.2 16.8 -33.2 17.2 -30.7 18.6 -29.0
2025-06-13 14:19:03,589 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 14:19:03,589 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 14:19:03,589 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.512784
2025-06-13 14:19:03,589 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 14:19:03,589 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 14:19:03,589 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 14:19:03,589 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 14:19:03,589 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 14:19:03,589 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T14:18:35', tmtdew=16.59, humidity=31.7, cloud=0.0, wind=19.92, temperature=13.74, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T12:18:24.538', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 14:19:03,590 [DEBUG][       Thread-257724][   transport.py][1871] : EOF in transport thread
2025-06-13 14:19:03,664 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 14:19:03,676 [DEBUG][       Thread-257727][   transport.py][1871] : starting thread (client mode): 0x863ed210
2025-06-13 14:19:03,676 [DEBUG][       Thread-257727][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 14:19:03,695 [DEBUG][       Thread-257727][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 14:19:03,695 [ INFO][       Thread-257727][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 14:19:03,703 [DEBUG][       Thread-257727][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 14:19:03,703 [DEBUG][       Thread-257727][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 14:19:03,703 [DEBUG][       Thread-257727][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 14:19:03,703 [DEBUG][       Thread-257727][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:19:03,703 [DEBUG][       Thread-257727][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:19:03,703 [DEBUG][       Thread-257727][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:19:03,703 [DEBUG][       Thread-257727][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:19:03,703 [DEBUG][       Thread-257727][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 14:19:03,703 [DEBUG][       Thread-257727][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 14:19:03,703 [DEBUG][       Thread-257727][   transport.py][1871] : client lang: <none>
2025-06-13 14:19:03,703 [DEBUG][       Thread-257727][   transport.py][1871] : server lang: <none>
2025-06-13 14:19:03,703 [DEBUG][       Thread-257727][   transport.py][1871] : kex follows: False
2025-06-13 14:19:03,703 [DEBUG][       Thread-257727][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 14:19:03,703 [DEBUG][       Thread-257727][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 14:19:03,703 [DEBUG][       Thread-257727][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 14:19:03,703 [DEBUG][       Thread-257727][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 14:19:03,703 [DEBUG][       Thread-257727][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 14:19:03,703 [DEBUG][       Thread-257727][   transport.py][1871] : Compression: none
2025-06-13 14:19:03,703 [DEBUG][       Thread-257727][   transport.py][1871] : === End of kex handshake ===
2025-06-13 14:19:03,761 [DEBUG][       Thread-257727][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 14:19:03,761 [DEBUG][       Thread-257727][   transport.py][1871] : Switch to new keys ...
2025-06-13 14:19:03,762 [DEBUG][       Thread-257727][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 14:19:03,762 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 14:19:03,762 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 14:19:03,822 [DEBUG][       Thread-257727][   transport.py][1871] : userauth is OK
2025-06-13 14:19:03,822 [DEBUG][       Thread-257727][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 14:19:03,823 [DEBUG][       Thread-257727][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 14:19:03,823 [DEBUG][       Thread-257727][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 14:19:03,823 [DEBUG][       Thread-257727][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 14:19:03,836 [ INFO][       Thread-257727][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 14:19:03,836 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 14:19:03,836 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 14:19:04,642 [DEBUG][Thread-257729 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:19:04,914 [DEBUG][       Thread-257727][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 14:19:04,914 [DEBUG][       Thread-257727][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 14:19:04,964 [DEBUG][       Thread-257727][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 14:19:04,964 [DEBUG][       Thread-257727][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 14:19:04,973 [DEBUG][       Thread-257727][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 14:19:04,984 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 14:19:04,984 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 14:19:04,992 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 14:19:05,001 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 14:19:05,001 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 14:19:05,001 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 14:19:05,012 [DEBUG][       Thread-257727][   transport.py][1871] : EOF in transport thread
2025-06-13 14:19:13,663 [DEBUG][Thread-257730 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:19:15,008 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 14:19:15,008 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 14:19:15,008 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 14:19:15,009 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 14:19:15,473 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 14, 19, 6), 16.6, 31.69, 0.0, 18.35, 13.75, 0, 0, 0, 2, 0, 0),)
2025-06-13 14:19:15,473 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 14:19:06
2025-06-13 14:19:15,553 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 14:19:15,559 [DEBUG][       Thread-257731][   transport.py][1871] : starting thread (client mode): 0x863926e0
2025-06-13 14:19:15,559 [DEBUG][       Thread-257731][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 14:19:15,580 [DEBUG][       Thread-257731][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 14:19:15,580 [ INFO][       Thread-257731][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 14:19:15,583 [DEBUG][       Thread-257731][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 14:19:15,583 [DEBUG][       Thread-257731][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 14:19:15,583 [DEBUG][       Thread-257731][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 14:19:15,583 [DEBUG][       Thread-257731][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:19:15,583 [DEBUG][       Thread-257731][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:19:15,583 [DEBUG][       Thread-257731][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:19:15,583 [DEBUG][       Thread-257731][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:19:15,583 [DEBUG][       Thread-257731][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 14:19:15,583 [DEBUG][       Thread-257731][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 14:19:15,583 [DEBUG][       Thread-257731][   transport.py][1871] : client lang: <none>
2025-06-13 14:19:15,583 [DEBUG][       Thread-257731][   transport.py][1871] : server lang: <none>
2025-06-13 14:19:15,583 [DEBUG][       Thread-257731][   transport.py][1871] : kex follows: False
2025-06-13 14:19:15,583 [DEBUG][       Thread-257731][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 14:19:15,584 [DEBUG][       Thread-257731][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 14:19:15,584 [DEBUG][       Thread-257731][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 14:19:15,584 [DEBUG][       Thread-257731][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 14:19:15,584 [DEBUG][       Thread-257731][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 14:19:15,584 [DEBUG][       Thread-257731][   transport.py][1871] : Compression: none
2025-06-13 14:19:15,584 [DEBUG][       Thread-257731][   transport.py][1871] : === End of kex handshake ===
2025-06-13 14:19:15,601 [DEBUG][       Thread-257731][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 14:19:15,601 [DEBUG][       Thread-257731][   transport.py][1871] : Switch to new keys ...
2025-06-13 14:19:15,602 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 14:19:15,602 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 14:19:15,603 [DEBUG][       Thread-257731][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 14:19:15,603 [DEBUG][       Thread-257731][   transport.py][1871] : userauth is OK
2025-06-13 14:19:15,615 [ INFO][       Thread-257731][   transport.py][1871] : Authentication (password) successful!
2025-06-13 14:19:15,616 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 14:19:16,252 [DEBUG][       Thread-257731][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 14:19:16,253 [DEBUG][       Thread-257731][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 14:19:16,297 [DEBUG][       Thread-257731][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 14:19:16,297 [DEBUG][       Thread-257731][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 14:19:16,300 [DEBUG][       Thread-257731][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 14:19:16,313 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 14:19:16,313 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 14:19:16,315 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 14:19:16,316 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 14:19:16,321 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 14:19:16,323 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 14:19:16,323 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 14:19:16,324 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 14:19:16,324 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.513131 -999.00  +13.40  22.07     36   -1.10 1 1 1 1 1   887    0 13.65 -41.70 ----- 20.6 22.1 36.0 27.7 17.9 -31.0 16.8 -32.3 17.2 -30.4 18.6 -29.6
2025-06-13 14:19:16,324 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 14:19:16,324 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 14:19:16,324 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.513131
2025-06-13 14:19:16,325 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 14:19:16,325 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 14:19:16,325 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 14:19:16,325 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 14:19:16,325 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 14:19:16,325 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T14:19:06', tmtdew=16.6, humidity=31.69, cloud=0.0, wind=18.35, temperature=13.75, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T12:18:54.518', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 14:19:16,326 [DEBUG][       Thread-257731][   transport.py][1871] : EOF in transport thread
2025-06-13 14:19:16,411 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 14:19:16,423 [DEBUG][       Thread-257734][   transport.py][1871] : starting thread (client mode): 0x8636a740
2025-06-13 14:19:16,423 [DEBUG][       Thread-257734][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 14:19:16,438 [DEBUG][       Thread-257734][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 14:19:16,438 [ INFO][       Thread-257734][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 14:19:16,446 [DEBUG][       Thread-257734][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 14:19:16,446 [DEBUG][       Thread-257734][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 14:19:16,446 [DEBUG][       Thread-257734][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 14:19:16,446 [DEBUG][       Thread-257734][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:19:16,446 [DEBUG][       Thread-257734][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:19:16,446 [DEBUG][       Thread-257734][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:19:16,446 [DEBUG][       Thread-257734][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:19:16,446 [DEBUG][       Thread-257734][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 14:19:16,446 [DEBUG][       Thread-257734][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 14:19:16,446 [DEBUG][       Thread-257734][   transport.py][1871] : client lang: <none>
2025-06-13 14:19:16,446 [DEBUG][       Thread-257734][   transport.py][1871] : server lang: <none>
2025-06-13 14:19:16,446 [DEBUG][       Thread-257734][   transport.py][1871] : kex follows: False
2025-06-13 14:19:16,447 [DEBUG][       Thread-257734][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 14:19:16,447 [DEBUG][       Thread-257734][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 14:19:16,447 [DEBUG][       Thread-257734][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 14:19:16,447 [DEBUG][       Thread-257734][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 14:19:16,447 [DEBUG][       Thread-257734][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 14:19:16,447 [DEBUG][       Thread-257734][   transport.py][1871] : Compression: none
2025-06-13 14:19:16,447 [DEBUG][       Thread-257734][   transport.py][1871] : === End of kex handshake ===
2025-06-13 14:19:16,506 [DEBUG][       Thread-257734][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 14:19:16,507 [DEBUG][       Thread-257734][   transport.py][1871] : Switch to new keys ...
2025-06-13 14:19:16,507 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 14:19:16,508 [DEBUG][       Thread-257734][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 14:19:16,508 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 14:19:16,565 [DEBUG][       Thread-257734][   transport.py][1871] : userauth is OK
2025-06-13 14:19:16,565 [DEBUG][       Thread-257734][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 14:19:16,565 [DEBUG][       Thread-257734][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 14:19:16,566 [DEBUG][       Thread-257734][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 14:19:16,566 [DEBUG][       Thread-257734][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 14:19:16,585 [ INFO][       Thread-257734][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 14:19:16,586 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 14:19:16,586 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 14:19:17,644 [DEBUG][       Thread-257734][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 14:19:17,644 [DEBUG][       Thread-257734][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 14:19:17,693 [DEBUG][       Thread-257734][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 14:19:17,693 [DEBUG][       Thread-257734][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 14:19:17,706 [DEBUG][       Thread-257734][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 14:19:17,716 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 14:19:17,716 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 14:19:17,725 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 14:19:17,749 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 14:19:17,749 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 14:19:17,750 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 14:19:17,760 [DEBUG][       Thread-257734][   transport.py][1871] : EOF in transport thread
2025-06-13 14:19:17,774 [DEBUG][Thread-257736 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:19:22,684 [DEBUG][Thread-257737 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:19:27,760 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 14:19:27,761 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 14:19:27,770 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 14:19:27,773 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 14:19:28,243 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 14, 19, 6), 16.6, 31.69, 0.0, 18.35, 13.75, 0, 0, 0, 2, 0, 0),)
2025-06-13 14:19:28,243 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 14:19:06
2025-06-13 14:19:28,324 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 14:19:28,328 [DEBUG][       Thread-257738][   transport.py][1871] : starting thread (client mode): 0x863a6e60
2025-06-13 14:19:28,328 [DEBUG][       Thread-257738][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 14:19:28,348 [DEBUG][       Thread-257738][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 14:19:28,348 [ INFO][       Thread-257738][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 14:19:28,351 [DEBUG][       Thread-257738][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 14:19:28,351 [DEBUG][       Thread-257738][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 14:19:28,351 [DEBUG][       Thread-257738][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 14:19:28,351 [DEBUG][       Thread-257738][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:19:28,352 [DEBUG][       Thread-257738][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:19:28,352 [DEBUG][       Thread-257738][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:19:28,352 [DEBUG][       Thread-257738][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:19:28,352 [DEBUG][       Thread-257738][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 14:19:28,352 [DEBUG][       Thread-257738][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 14:19:28,352 [DEBUG][       Thread-257738][   transport.py][1871] : client lang: <none>
2025-06-13 14:19:28,352 [DEBUG][       Thread-257738][   transport.py][1871] : server lang: <none>
2025-06-13 14:19:28,352 [DEBUG][       Thread-257738][   transport.py][1871] : kex follows: False
2025-06-13 14:19:28,352 [DEBUG][       Thread-257738][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 14:19:28,352 [DEBUG][       Thread-257738][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 14:19:28,352 [DEBUG][       Thread-257738][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 14:19:28,352 [DEBUG][       Thread-257738][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 14:19:28,352 [DEBUG][       Thread-257738][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 14:19:28,352 [DEBUG][       Thread-257738][   transport.py][1871] : Compression: none
2025-06-13 14:19:28,352 [DEBUG][       Thread-257738][   transport.py][1871] : === End of kex handshake ===
2025-06-13 14:19:28,369 [DEBUG][       Thread-257738][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 14:19:28,369 [DEBUG][       Thread-257738][   transport.py][1871] : Switch to new keys ...
2025-06-13 14:19:28,370 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 14:19:28,370 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 14:19:28,371 [DEBUG][       Thread-257738][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 14:19:28,371 [DEBUG][       Thread-257738][   transport.py][1871] : userauth is OK
2025-06-13 14:19:28,385 [ INFO][       Thread-257738][   transport.py][1871] : Authentication (password) successful!
2025-06-13 14:19:28,385 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 14:19:29,019 [DEBUG][       Thread-257738][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 14:19:29,019 [DEBUG][       Thread-257738][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 14:19:29,061 [DEBUG][       Thread-257738][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 14:19:29,061 [DEBUG][       Thread-257738][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 14:19:29,065 [DEBUG][       Thread-257738][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 14:19:29,076 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 14:19:29,076 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 14:19:29,078 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 14:19:29,080 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 14:19:29,086 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 14:19:29,088 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 14:19:29,088 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 14:19:29,089 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 14:19:29,089 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.513131 -999.00  +13.40  22.07     36   -1.10 1 1 1 1 1   887    0 13.65 -41.70 ----- 20.6 22.1 36.0 27.7 17.9 -31.0 16.8 -32.3 17.2 -30.4 18.6 -29.6
2025-06-13 14:19:29,089 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 14:19:29,089 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 14:19:29,089 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.513131
2025-06-13 14:19:29,090 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 14:19:29,090 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 14:19:29,091 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 14:19:29,091 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 14:19:29,091 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 14:19:29,091 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T14:19:06', tmtdew=16.6, humidity=31.69, cloud=0.0, wind=18.35, temperature=13.75, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T12:18:54.518', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 14:19:29,091 [DEBUG][       Thread-257738][   transport.py][1871] : EOF in transport thread
2025-06-13 14:19:29,174 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 14:19:29,186 [DEBUG][       Thread-257741][   transport.py][1871] : starting thread (client mode): 0x863ef340
2025-06-13 14:19:29,186 [DEBUG][       Thread-257741][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 14:19:29,205 [DEBUG][       Thread-257741][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 14:19:29,206 [ INFO][       Thread-257741][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 14:19:29,216 [DEBUG][       Thread-257741][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 14:19:29,217 [DEBUG][       Thread-257741][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 14:19:29,217 [DEBUG][       Thread-257741][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 14:19:29,217 [DEBUG][       Thread-257741][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:19:29,217 [DEBUG][       Thread-257741][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:19:29,217 [DEBUG][       Thread-257741][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:19:29,217 [DEBUG][       Thread-257741][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:19:29,217 [DEBUG][       Thread-257741][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 14:19:29,217 [DEBUG][       Thread-257741][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 14:19:29,217 [DEBUG][       Thread-257741][   transport.py][1871] : client lang: <none>
2025-06-13 14:19:29,217 [DEBUG][       Thread-257741][   transport.py][1871] : server lang: <none>
2025-06-13 14:19:29,217 [DEBUG][       Thread-257741][   transport.py][1871] : kex follows: False
2025-06-13 14:19:29,217 [DEBUG][       Thread-257741][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 14:19:29,217 [DEBUG][       Thread-257741][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 14:19:29,217 [DEBUG][       Thread-257741][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 14:19:29,217 [DEBUG][       Thread-257741][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 14:19:29,217 [DEBUG][       Thread-257741][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 14:19:29,218 [DEBUG][       Thread-257741][   transport.py][1871] : Compression: none
2025-06-13 14:19:29,218 [DEBUG][       Thread-257741][   transport.py][1871] : === End of kex handshake ===
2025-06-13 14:19:29,275 [DEBUG][       Thread-257741][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 14:19:29,276 [DEBUG][       Thread-257741][   transport.py][1871] : Switch to new keys ...
2025-06-13 14:19:29,277 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 14:19:29,277 [DEBUG][       Thread-257741][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 14:19:29,278 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 14:19:29,334 [DEBUG][       Thread-257741][   transport.py][1871] : userauth is OK
2025-06-13 14:19:29,335 [DEBUG][       Thread-257741][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 14:19:29,335 [DEBUG][       Thread-257741][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 14:19:29,335 [DEBUG][       Thread-257741][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 14:19:29,335 [DEBUG][       Thread-257741][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 14:19:29,357 [ INFO][       Thread-257741][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 14:19:29,357 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 14:19:29,358 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 14:19:30,352 [DEBUG][       Thread-257741][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 14:19:30,353 [DEBUG][       Thread-257741][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 14:19:30,407 [DEBUG][       Thread-257741][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 14:19:30,407 [DEBUG][       Thread-257741][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 14:19:30,418 [DEBUG][       Thread-257741][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 14:19:30,427 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 14:19:30,427 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 14:19:30,436 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 14:19:30,446 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 14:19:30,446 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 14:19:30,447 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 14:19:30,455 [DEBUG][       Thread-257741][   transport.py][1871] : EOF in transport thread
2025-06-13 14:19:31,094 [DEBUG][Thread-257743 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:19:31,724 [DEBUG][Thread-257744 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:19:32,174 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:19:32,175 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:19:40,457 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 14:19:40,457 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 14:19:40,458 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 14:19:40,460 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 14:19:40,746 [DEBUG][Thread-257745 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:19:40,938 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 14, 19, 6), 16.6, 31.69, 0.0, 18.35, 13.75, 0, 0, 0, 2, 0, 0),)
2025-06-13 14:19:40,938 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 14:19:06
2025-06-13 14:19:41,026 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 14:19:41,030 [DEBUG][       Thread-257746][   transport.py][1871] : starting thread (client mode): 0x84207a30
2025-06-13 14:19:41,030 [DEBUG][       Thread-257746][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 14:19:41,051 [DEBUG][       Thread-257746][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 14:19:41,051 [ INFO][       Thread-257746][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 14:19:41,053 [DEBUG][       Thread-257746][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 14:19:41,053 [DEBUG][       Thread-257746][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 14:19:41,053 [DEBUG][       Thread-257746][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 14:19:41,053 [DEBUG][       Thread-257746][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:19:41,053 [DEBUG][       Thread-257746][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:19:41,053 [DEBUG][       Thread-257746][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:19:41,053 [DEBUG][       Thread-257746][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:19:41,053 [DEBUG][       Thread-257746][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 14:19:41,053 [DEBUG][       Thread-257746][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 14:19:41,053 [DEBUG][       Thread-257746][   transport.py][1871] : client lang: <none>
2025-06-13 14:19:41,053 [DEBUG][       Thread-257746][   transport.py][1871] : server lang: <none>
2025-06-13 14:19:41,053 [DEBUG][       Thread-257746][   transport.py][1871] : kex follows: False
2025-06-13 14:19:41,053 [DEBUG][       Thread-257746][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 14:19:41,053 [DEBUG][       Thread-257746][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 14:19:41,053 [DEBUG][       Thread-257746][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 14:19:41,053 [DEBUG][       Thread-257746][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 14:19:41,053 [DEBUG][       Thread-257746][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 14:19:41,053 [DEBUG][       Thread-257746][   transport.py][1871] : Compression: none
2025-06-13 14:19:41,053 [DEBUG][       Thread-257746][   transport.py][1871] : === End of kex handshake ===
2025-06-13 14:19:41,060 [DEBUG][       Thread-257746][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 14:19:41,060 [DEBUG][       Thread-257746][   transport.py][1871] : Switch to new keys ...
2025-06-13 14:19:41,060 [DEBUG][       Thread-257746][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 14:19:41,060 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 14:19:41,060 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 14:19:41,061 [DEBUG][       Thread-257746][   transport.py][1871] : userauth is OK
2025-06-13 14:19:41,073 [ INFO][       Thread-257746][   transport.py][1871] : Authentication (password) successful!
2025-06-13 14:19:41,073 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 14:19:41,676 [DEBUG][       Thread-257746][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 14:19:41,676 [DEBUG][       Thread-257746][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 14:19:41,716 [DEBUG][       Thread-257746][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 14:19:41,717 [DEBUG][       Thread-257746][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 14:19:41,719 [DEBUG][       Thread-257746][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 14:19:41,733 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 14:19:41,733 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 14:19:41,734 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 14:19:41,735 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 14:19:41,737 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 14:19:41,738 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 14:19:41,738 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 14:19:41,738 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 14:19:41,738 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.513478 -999.00  +13.50  20.65     36   -1.00 1 1 1 1 1   887    0 13.56 -39.16 ----- 21.9 20.6 47.2 24.1 17.9 -30.7 16.8 -32.6 17.2 -30.6 18.5 -28.4
2025-06-13 14:19:41,738 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 14:19:41,738 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 14:19:41,738 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.513478
2025-06-13 14:19:41,738 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 14:19:41,738 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 14:19:41,738 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 14:19:41,738 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 14:19:41,738 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 14:19:41,738 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T14:19:06', tmtdew=16.6, humidity=31.69, cloud=0.0, wind=18.35, temperature=13.75, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T12:19:24.499', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 14:19:41,738 [DEBUG][       Thread-257746][   transport.py][1871] : EOF in transport thread
2025-06-13 14:19:41,812 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 14:19:41,823 [DEBUG][       Thread-257749][   transport.py][1871] : starting thread (client mode): 0x867b6c80
2025-06-13 14:19:41,823 [DEBUG][       Thread-257749][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 14:19:41,837 [DEBUG][       Thread-257749][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 14:19:41,837 [ INFO][       Thread-257749][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 14:19:41,845 [DEBUG][       Thread-257749][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 14:19:41,845 [DEBUG][       Thread-257749][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 14:19:41,845 [DEBUG][       Thread-257749][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 14:19:41,845 [DEBUG][       Thread-257749][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:19:41,845 [DEBUG][       Thread-257749][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:19:41,845 [DEBUG][       Thread-257749][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:19:41,845 [DEBUG][       Thread-257749][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:19:41,845 [DEBUG][       Thread-257749][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 14:19:41,845 [DEBUG][       Thread-257749][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 14:19:41,845 [DEBUG][       Thread-257749][   transport.py][1871] : client lang: <none>
2025-06-13 14:19:41,845 [DEBUG][       Thread-257749][   transport.py][1871] : server lang: <none>
2025-06-13 14:19:41,845 [DEBUG][       Thread-257749][   transport.py][1871] : kex follows: False
2025-06-13 14:19:41,845 [DEBUG][       Thread-257749][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 14:19:41,845 [DEBUG][       Thread-257749][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 14:19:41,845 [DEBUG][       Thread-257749][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 14:19:41,845 [DEBUG][       Thread-257749][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 14:19:41,845 [DEBUG][       Thread-257749][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 14:19:41,845 [DEBUG][       Thread-257749][   transport.py][1871] : Compression: none
2025-06-13 14:19:41,845 [DEBUG][       Thread-257749][   transport.py][1871] : === End of kex handshake ===
2025-06-13 14:19:41,901 [DEBUG][       Thread-257749][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 14:19:41,901 [DEBUG][       Thread-257749][   transport.py][1871] : Switch to new keys ...
2025-06-13 14:19:41,902 [DEBUG][       Thread-257749][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 14:19:41,902 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 14:19:41,902 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 14:19:41,962 [DEBUG][       Thread-257749][   transport.py][1871] : userauth is OK
2025-06-13 14:19:41,962 [DEBUG][       Thread-257749][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 14:19:41,962 [DEBUG][       Thread-257749][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 14:19:41,962 [DEBUG][       Thread-257749][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 14:19:41,962 [DEBUG][       Thread-257749][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 14:19:41,978 [ INFO][       Thread-257749][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 14:19:41,979 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 14:19:41,979 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 14:19:42,967 [DEBUG][       Thread-257749][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 14:19:42,967 [DEBUG][       Thread-257749][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 14:19:43,019 [DEBUG][       Thread-257749][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 14:19:43,019 [DEBUG][       Thread-257749][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 14:19:43,028 [DEBUG][       Thread-257749][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 14:19:43,036 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 14:19:43,037 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 14:19:43,046 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 14:19:43,054 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 14:19:43,054 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 14:19:43,054 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 14:19:43,068 [DEBUG][       Thread-257749][   transport.py][1871] : EOF in transport thread
2025-06-13 14:19:49,765 [DEBUG][Thread-257751 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:19:53,065 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 14:19:53,065 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 14:19:53,065 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 14:19:53,068 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 14:19:53,533 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 14, 19, 38), 16.8, 31.21, 0.0, 21.35, 13.7, 0, 0, 0, 2, 0, 0),)
2025-06-13 14:19:53,533 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 14:19:38
2025-06-13 14:19:53,612 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 14:19:53,616 [DEBUG][       Thread-257752][   transport.py][1871] : starting thread (client mode): 0x86352f50
2025-06-13 14:19:53,617 [DEBUG][       Thread-257752][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 14:19:53,637 [DEBUG][       Thread-257752][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 14:19:53,637 [ INFO][       Thread-257752][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 14:19:53,641 [DEBUG][       Thread-257752][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 14:19:53,641 [DEBUG][       Thread-257752][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 14:19:53,641 [DEBUG][       Thread-257752][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 14:19:53,641 [DEBUG][       Thread-257752][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:19:53,641 [DEBUG][       Thread-257752][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:19:53,641 [DEBUG][       Thread-257752][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:19:53,641 [DEBUG][       Thread-257752][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:19:53,641 [DEBUG][       Thread-257752][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 14:19:53,641 [DEBUG][       Thread-257752][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 14:19:53,641 [DEBUG][       Thread-257752][   transport.py][1871] : client lang: <none>
2025-06-13 14:19:53,641 [DEBUG][       Thread-257752][   transport.py][1871] : server lang: <none>
2025-06-13 14:19:53,641 [DEBUG][       Thread-257752][   transport.py][1871] : kex follows: False
2025-06-13 14:19:53,641 [DEBUG][       Thread-257752][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 14:19:53,641 [DEBUG][       Thread-257752][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 14:19:53,641 [DEBUG][       Thread-257752][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 14:19:53,641 [DEBUG][       Thread-257752][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 14:19:53,641 [DEBUG][       Thread-257752][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 14:19:53,641 [DEBUG][       Thread-257752][   transport.py][1871] : Compression: none
2025-06-13 14:19:53,641 [DEBUG][       Thread-257752][   transport.py][1871] : === End of kex handshake ===
2025-06-13 14:19:53,658 [DEBUG][       Thread-257752][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 14:19:53,659 [DEBUG][       Thread-257752][   transport.py][1871] : Switch to new keys ...
2025-06-13 14:19:53,660 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 14:19:53,660 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 14:19:53,660 [DEBUG][       Thread-257752][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 14:19:53,661 [DEBUG][       Thread-257752][   transport.py][1871] : userauth is OK
2025-06-13 14:19:53,674 [ INFO][       Thread-257752][   transport.py][1871] : Authentication (password) successful!
2025-06-13 14:19:53,675 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 14:19:54,275 [DEBUG][       Thread-257752][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 14:19:54,275 [DEBUG][       Thread-257752][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 14:19:54,317 [DEBUG][       Thread-257752][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 14:19:54,318 [DEBUG][       Thread-257752][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 14:19:54,321 [DEBUG][       Thread-257752][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 14:19:54,334 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 14:19:54,335 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 14:19:54,337 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 14:19:54,339 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 14:19:54,345 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 14:19:54,348 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 14:19:54,348 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 14:19:54,349 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 14:19:54,349 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.513478 -999.00  +13.50  20.65     36   -1.00 1 1 1 1 1   887    0 13.56 -39.16 ----- 21.9 20.6 47.2 24.1 17.9 -30.7 16.8 -32.6 17.2 -30.6 18.5 -28.4
2025-06-13 14:19:54,349 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 14:19:54,349 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 14:19:54,349 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.513478
2025-06-13 14:19:54,349 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 14:19:54,350 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 14:19:54,350 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 14:19:54,350 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 14:19:54,350 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 14:19:54,350 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T14:19:38', tmtdew=16.8, humidity=31.21, cloud=0.0, wind=21.35, temperature=13.7, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T12:19:24.499', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 14:19:54,351 [DEBUG][       Thread-257752][   transport.py][1871] : EOF in transport thread
2025-06-13 14:19:54,435 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 14:19:54,444 [DEBUG][       Thread-257755][   transport.py][1871] : starting thread (client mode): 0x863a6e60
2025-06-13 14:19:54,444 [DEBUG][       Thread-257755][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 14:19:54,459 [DEBUG][       Thread-257755][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 14:19:54,459 [ INFO][       Thread-257755][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 14:19:54,467 [DEBUG][       Thread-257755][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 14:19:54,467 [DEBUG][       Thread-257755][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 14:19:54,467 [DEBUG][       Thread-257755][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 14:19:54,467 [DEBUG][       Thread-257755][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:19:54,467 [DEBUG][       Thread-257755][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:19:54,467 [DEBUG][       Thread-257755][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:19:54,467 [DEBUG][       Thread-257755][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:19:54,467 [DEBUG][       Thread-257755][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 14:19:54,467 [DEBUG][       Thread-257755][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 14:19:54,467 [DEBUG][       Thread-257755][   transport.py][1871] : client lang: <none>
2025-06-13 14:19:54,467 [DEBUG][       Thread-257755][   transport.py][1871] : server lang: <none>
2025-06-13 14:19:54,467 [DEBUG][       Thread-257755][   transport.py][1871] : kex follows: False
2025-06-13 14:19:54,467 [DEBUG][       Thread-257755][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 14:19:54,467 [DEBUG][       Thread-257755][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 14:19:54,467 [DEBUG][       Thread-257755][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 14:19:54,467 [DEBUG][       Thread-257755][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 14:19:54,468 [DEBUG][       Thread-257755][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 14:19:54,468 [DEBUG][       Thread-257755][   transport.py][1871] : Compression: none
2025-06-13 14:19:54,468 [DEBUG][       Thread-257755][   transport.py][1871] : === End of kex handshake ===
2025-06-13 14:19:54,528 [DEBUG][       Thread-257755][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 14:19:54,528 [DEBUG][       Thread-257755][   transport.py][1871] : Switch to new keys ...
2025-06-13 14:19:54,529 [DEBUG][       Thread-257755][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 14:19:54,529 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 14:19:54,530 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 14:19:54,587 [DEBUG][       Thread-257755][   transport.py][1871] : userauth is OK
2025-06-13 14:19:54,588 [DEBUG][       Thread-257755][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 14:19:54,588 [DEBUG][       Thread-257755][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 14:19:54,588 [DEBUG][       Thread-257755][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 14:19:54,588 [DEBUG][       Thread-257755][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 14:19:54,606 [ INFO][       Thread-257755][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 14:19:54,607 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 14:19:54,607 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 14:19:55,619 [DEBUG][       Thread-257755][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 14:19:55,619 [DEBUG][       Thread-257755][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 14:19:55,669 [DEBUG][       Thread-257755][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 14:19:55,669 [DEBUG][       Thread-257755][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 14:19:55,678 [DEBUG][       Thread-257755][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 14:19:55,690 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 14:19:55,690 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 14:19:55,699 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 14:19:55,711 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 14:19:55,711 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 14:19:55,711 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 14:19:55,721 [DEBUG][       Thread-257755][   transport.py][1871] : EOF in transport thread
2025-06-13 14:19:58,787 [DEBUG][Thread-257757 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:19:59,752 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:19:59,753 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:20:05,722 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 14:20:05,722 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 14:20:05,722 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 14:20:05,725 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 14:20:06,184 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 14, 19, 38), 16.8, 31.21, 0.0, 21.35, 13.7, 0, 0, 0, 2, 0, 0),)
2025-06-13 14:20:06,184 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 14:19:38
2025-06-13 14:20:06,262 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 14:20:06,267 [DEBUG][       Thread-257758][   transport.py][1871] : starting thread (client mode): 0x863ca230
2025-06-13 14:20:06,267 [DEBUG][       Thread-257758][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 14:20:06,288 [DEBUG][       Thread-257758][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 14:20:06,288 [ INFO][       Thread-257758][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 14:20:06,291 [DEBUG][       Thread-257758][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 14:20:06,291 [DEBUG][       Thread-257758][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 14:20:06,291 [DEBUG][       Thread-257758][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 14:20:06,291 [DEBUG][       Thread-257758][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:20:06,291 [DEBUG][       Thread-257758][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:20:06,291 [DEBUG][       Thread-257758][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:20:06,291 [DEBUG][       Thread-257758][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:20:06,291 [DEBUG][       Thread-257758][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 14:20:06,291 [DEBUG][       Thread-257758][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 14:20:06,291 [DEBUG][       Thread-257758][   transport.py][1871] : client lang: <none>
2025-06-13 14:20:06,291 [DEBUG][       Thread-257758][   transport.py][1871] : server lang: <none>
2025-06-13 14:20:06,291 [DEBUG][       Thread-257758][   transport.py][1871] : kex follows: False
2025-06-13 14:20:06,291 [DEBUG][       Thread-257758][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 14:20:06,292 [DEBUG][       Thread-257758][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 14:20:06,292 [DEBUG][       Thread-257758][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 14:20:06,292 [DEBUG][       Thread-257758][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 14:20:06,292 [DEBUG][       Thread-257758][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 14:20:06,292 [DEBUG][       Thread-257758][   transport.py][1871] : Compression: none
2025-06-13 14:20:06,292 [DEBUG][       Thread-257758][   transport.py][1871] : === End of kex handshake ===
2025-06-13 14:20:06,308 [DEBUG][       Thread-257758][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 14:20:06,308 [DEBUG][       Thread-257758][   transport.py][1871] : Switch to new keys ...
2025-06-13 14:20:06,309 [DEBUG][       Thread-257758][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 14:20:06,309 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 14:20:06,309 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 14:20:06,310 [DEBUG][       Thread-257758][   transport.py][1871] : userauth is OK
2025-06-13 14:20:06,335 [ INFO][       Thread-257758][   transport.py][1871] : Authentication (password) successful!
2025-06-13 14:20:06,336 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 14:20:07,822 [DEBUG][Thread-257760 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:20:14,255 [DEBUG][       Thread-257758][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 14:20:14,255 [DEBUG][       Thread-257758][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 14:20:14,297 [DEBUG][       Thread-257758][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 14:20:14,297 [DEBUG][       Thread-257758][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 14:20:14,301 [DEBUG][       Thread-257758][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 14:20:14,403 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 14:20:14,403 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 14:20:14,405 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 14:20:14,407 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 14:20:14,417 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 14:20:14,420 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 14:20:14,421 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 14:20:14,421 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 14:20:14,422 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.513478 -999.00  +13.50  20.65     36   -1.00 1 1 1 1 1   887    0 13.56 -39.16 ----- 21.9 20.6 47.2 24.1 17.9 -30.7 16.8 -32.6 17.2 -30.6 18.5 -28.4
2025-06-13 14:20:14,422 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 14:20:14,422 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 14:20:14,422 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.513478
2025-06-13 14:20:14,422 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 14:20:14,423 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 14:20:14,423 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 14:20:14,423 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 14:20:14,423 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 14:20:14,423 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T14:19:38', tmtdew=16.8, humidity=31.21, cloud=0.0, wind=21.35, temperature=13.7, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T12:19:24.499', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 14:20:14,424 [DEBUG][       Thread-257758][   transport.py][1871] : EOF in transport thread
2025-06-13 14:20:14,509 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 14:20:14,519 [DEBUG][       Thread-257762][   transport.py][1871] : starting thread (client mode): 0x863bd240
2025-06-13 14:20:14,519 [DEBUG][       Thread-257762][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 14:20:14,534 [DEBUG][       Thread-257762][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 14:20:14,534 [ INFO][       Thread-257762][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 14:20:14,542 [DEBUG][       Thread-257762][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 14:20:14,542 [DEBUG][       Thread-257762][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 14:20:14,542 [DEBUG][       Thread-257762][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 14:20:14,542 [DEBUG][       Thread-257762][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:20:14,542 [DEBUG][       Thread-257762][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:20:14,542 [DEBUG][       Thread-257762][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:20:14,543 [DEBUG][       Thread-257762][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:20:14,543 [DEBUG][       Thread-257762][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 14:20:14,543 [DEBUG][       Thread-257762][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 14:20:14,543 [DEBUG][       Thread-257762][   transport.py][1871] : client lang: <none>
2025-06-13 14:20:14,543 [DEBUG][       Thread-257762][   transport.py][1871] : server lang: <none>
2025-06-13 14:20:14,543 [DEBUG][       Thread-257762][   transport.py][1871] : kex follows: False
2025-06-13 14:20:14,543 [DEBUG][       Thread-257762][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 14:20:14,543 [DEBUG][       Thread-257762][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 14:20:14,543 [DEBUG][       Thread-257762][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 14:20:14,543 [DEBUG][       Thread-257762][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 14:20:14,543 [DEBUG][       Thread-257762][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 14:20:14,543 [DEBUG][       Thread-257762][   transport.py][1871] : Compression: none
2025-06-13 14:20:14,543 [DEBUG][       Thread-257762][   transport.py][1871] : === End of kex handshake ===
2025-06-13 14:20:14,599 [DEBUG][       Thread-257762][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 14:20:14,600 [DEBUG][       Thread-257762][   transport.py][1871] : Switch to new keys ...
2025-06-13 14:20:14,601 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 14:20:14,601 [DEBUG][       Thread-257762][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 14:20:14,602 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 14:20:14,656 [DEBUG][       Thread-257762][   transport.py][1871] : userauth is OK
2025-06-13 14:20:14,656 [DEBUG][       Thread-257762][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 14:20:14,656 [DEBUG][       Thread-257762][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 14:20:14,656 [DEBUG][       Thread-257762][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 14:20:14,657 [DEBUG][       Thread-257762][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 14:20:14,675 [ INFO][       Thread-257762][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 14:20:14,676 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 14:20:14,676 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 14:20:15,743 [DEBUG][       Thread-257762][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 14:20:15,743 [DEBUG][       Thread-257762][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 14:20:15,791 [DEBUG][       Thread-257762][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 14:20:15,791 [DEBUG][       Thread-257762][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 14:20:15,804 [DEBUG][       Thread-257762][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 14:20:15,815 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 14:20:15,815 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 14:20:15,823 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 14:20:15,833 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 14:20:15,833 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 14:20:15,833 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 14:20:15,842 [DEBUG][       Thread-257762][   transport.py][1871] : EOF in transport thread
2025-06-13 14:20:16,844 [DEBUG][Thread-257764 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:20:17,823 [DEBUG][Thread-257765 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:20:25,840 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 14:20:25,840 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 14:20:25,840 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 14:20:25,843 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 14:20:25,863 [DEBUG][Thread-257766 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:20:26,314 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 14, 20, 11), 16.78, 31.19, 0.0, 17.21, 13.77, 0, 0, 0, 2, 0, 0),)
2025-06-13 14:20:26,314 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 14:20:11
2025-06-13 14:20:26,394 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 14:20:26,400 [DEBUG][       Thread-257767][   transport.py][1871] : starting thread (client mode): 0x86352e60
2025-06-13 14:20:26,400 [DEBUG][       Thread-257767][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 14:20:26,421 [DEBUG][       Thread-257767][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 14:20:26,421 [ INFO][       Thread-257767][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 14:20:26,424 [DEBUG][       Thread-257767][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 14:20:26,424 [DEBUG][       Thread-257767][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 14:20:26,424 [DEBUG][       Thread-257767][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 14:20:26,424 [DEBUG][       Thread-257767][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:20:26,424 [DEBUG][       Thread-257767][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:20:26,424 [DEBUG][       Thread-257767][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:20:26,424 [DEBUG][       Thread-257767][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:20:26,424 [DEBUG][       Thread-257767][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 14:20:26,424 [DEBUG][       Thread-257767][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 14:20:26,424 [DEBUG][       Thread-257767][   transport.py][1871] : client lang: <none>
2025-06-13 14:20:26,424 [DEBUG][       Thread-257767][   transport.py][1871] : server lang: <none>
2025-06-13 14:20:26,424 [DEBUG][       Thread-257767][   transport.py][1871] : kex follows: False
2025-06-13 14:20:26,424 [DEBUG][       Thread-257767][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 14:20:26,424 [DEBUG][       Thread-257767][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 14:20:26,424 [DEBUG][       Thread-257767][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 14:20:26,424 [DEBUG][       Thread-257767][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 14:20:26,425 [DEBUG][       Thread-257767][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 14:20:26,425 [DEBUG][       Thread-257767][   transport.py][1871] : Compression: none
2025-06-13 14:20:26,425 [DEBUG][       Thread-257767][   transport.py][1871] : === End of kex handshake ===
2025-06-13 14:20:26,441 [DEBUG][       Thread-257767][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 14:20:26,442 [DEBUG][       Thread-257767][   transport.py][1871] : Switch to new keys ...
2025-06-13 14:20:26,442 [DEBUG][       Thread-257767][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 14:20:26,442 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 14:20:26,443 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 14:20:26,443 [DEBUG][       Thread-257767][   transport.py][1871] : userauth is OK
2025-06-13 14:20:26,456 [ INFO][       Thread-257767][   transport.py][1871] : Authentication (password) successful!
2025-06-13 14:20:26,457 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 14:20:27,103 [DEBUG][       Thread-257767][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 14:20:27,104 [DEBUG][       Thread-257767][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 14:20:27,146 [DEBUG][       Thread-257767][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 14:20:27,146 [DEBUG][       Thread-257767][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 14:20:27,149 [DEBUG][       Thread-257767][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 14:20:27,156 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 14:20:27,157 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 14:20:27,159 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 14:20:27,161 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 14:20:27,166 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 14:20:27,168 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 14:20:27,168 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 14:20:27,169 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 14:20:27,169 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.513825 -999.00  +13.40  19.72     36   -1.10 1 1 1 1 1   887    0 13.83 -36.26 ----- 19.7 19.7 44.8 25.6 17.9 -31.0 16.8 -32.6 17.2 -30.2 18.5 -29.0
2025-06-13 14:20:27,169 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 14:20:27,169 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 14:20:27,169 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.513825
2025-06-13 14:20:27,170 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 14:20:27,170 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 14:20:27,171 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 14:20:27,171 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 14:20:27,171 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 14:20:27,171 [DEBUG][       Thread-257767][   transport.py][1871] : EOF in transport thread
2025-06-13 14:20:27,171 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T14:20:11', tmtdew=16.78, humidity=31.19, cloud=0.0, wind=17.21, temperature=13.77, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T12:19:54.480', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 14:20:27,254 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 14:20:27,263 [DEBUG][       Thread-257770][   transport.py][1871] : starting thread (client mode): 0x86368ee0
2025-06-13 14:20:27,264 [DEBUG][       Thread-257770][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 14:20:27,279 [DEBUG][       Thread-257770][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 14:20:27,279 [ INFO][       Thread-257770][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 14:20:27,286 [DEBUG][       Thread-257770][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 14:20:27,286 [DEBUG][       Thread-257770][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 14:20:27,286 [DEBUG][       Thread-257770][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 14:20:27,287 [DEBUG][       Thread-257770][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:20:27,287 [DEBUG][       Thread-257770][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:20:27,287 [DEBUG][       Thread-257770][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:20:27,287 [DEBUG][       Thread-257770][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:20:27,287 [DEBUG][       Thread-257770][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 14:20:27,287 [DEBUG][       Thread-257770][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 14:20:27,287 [DEBUG][       Thread-257770][   transport.py][1871] : client lang: <none>
2025-06-13 14:20:27,287 [DEBUG][       Thread-257770][   transport.py][1871] : server lang: <none>
2025-06-13 14:20:27,287 [DEBUG][       Thread-257770][   transport.py][1871] : kex follows: False
2025-06-13 14:20:27,287 [DEBUG][       Thread-257770][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 14:20:27,287 [DEBUG][       Thread-257770][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 14:20:27,287 [DEBUG][       Thread-257770][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 14:20:27,287 [DEBUG][       Thread-257770][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 14:20:27,287 [DEBUG][       Thread-257770][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 14:20:27,287 [DEBUG][       Thread-257770][   transport.py][1871] : Compression: none
2025-06-13 14:20:27,287 [DEBUG][       Thread-257770][   transport.py][1871] : === End of kex handshake ===
2025-06-13 14:20:27,343 [DEBUG][       Thread-257770][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 14:20:27,344 [DEBUG][       Thread-257770][   transport.py][1871] : Switch to new keys ...
2025-06-13 14:20:27,345 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 14:20:27,345 [DEBUG][       Thread-257770][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 14:20:27,346 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 14:20:27,403 [DEBUG][       Thread-257770][   transport.py][1871] : userauth is OK
2025-06-13 14:20:27,404 [DEBUG][       Thread-257770][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 14:20:27,404 [DEBUG][       Thread-257770][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 14:20:27,404 [DEBUG][       Thread-257770][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 14:20:27,404 [DEBUG][       Thread-257770][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 14:20:27,428 [ INFO][       Thread-257770][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 14:20:27,429 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 14:20:27,429 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 14:20:28,472 [DEBUG][       Thread-257770][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 14:20:28,472 [DEBUG][       Thread-257770][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 14:20:28,520 [DEBUG][       Thread-257770][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 14:20:28,520 [DEBUG][       Thread-257770][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 14:20:28,530 [DEBUG][       Thread-257770][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 14:20:28,538 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 14:20:28,539 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 14:20:28,548 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 14:20:28,557 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 14:20:28,557 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 14:20:28,558 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 14:20:28,566 [DEBUG][       Thread-257770][   transport.py][1871] : EOF in transport thread
2025-06-13 14:20:32,247 [DEBUG][Thread-257772 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:20:33,299 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:20:33,300 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:20:34,884 [DEBUG][Thread-257773 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:20:38,568 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 14:20:38,568 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 14:20:38,568 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 14:20:38,571 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 14:20:39,035 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 14, 20, 11), 16.78, 31.19, 0.0, 17.21, 13.77, 0, 0, 0, 2, 0, 0),)
2025-06-13 14:20:39,035 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 14:20:11
2025-06-13 14:20:39,114 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 14:20:39,119 [DEBUG][       Thread-257774][   transport.py][1871] : starting thread (client mode): 0x8636b2e0
2025-06-13 14:20:39,119 [DEBUG][       Thread-257774][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 14:20:39,139 [DEBUG][       Thread-257774][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 14:20:39,140 [ INFO][       Thread-257774][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 14:20:39,143 [DEBUG][       Thread-257774][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 14:20:39,143 [DEBUG][       Thread-257774][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 14:20:39,143 [DEBUG][       Thread-257774][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 14:20:39,143 [DEBUG][       Thread-257774][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:20:39,143 [DEBUG][       Thread-257774][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:20:39,143 [DEBUG][       Thread-257774][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:20:39,143 [DEBUG][       Thread-257774][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:20:39,143 [DEBUG][       Thread-257774][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 14:20:39,143 [DEBUG][       Thread-257774][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 14:20:39,143 [DEBUG][       Thread-257774][   transport.py][1871] : client lang: <none>
2025-06-13 14:20:39,143 [DEBUG][       Thread-257774][   transport.py][1871] : server lang: <none>
2025-06-13 14:20:39,144 [DEBUG][       Thread-257774][   transport.py][1871] : kex follows: False
2025-06-13 14:20:39,144 [DEBUG][       Thread-257774][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 14:20:39,144 [DEBUG][       Thread-257774][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 14:20:39,144 [DEBUG][       Thread-257774][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 14:20:39,144 [DEBUG][       Thread-257774][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 14:20:39,144 [DEBUG][       Thread-257774][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 14:20:39,144 [DEBUG][       Thread-257774][   transport.py][1871] : Compression: none
2025-06-13 14:20:39,144 [DEBUG][       Thread-257774][   transport.py][1871] : === End of kex handshake ===
2025-06-13 14:20:39,161 [DEBUG][       Thread-257774][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 14:20:39,162 [DEBUG][       Thread-257774][   transport.py][1871] : Switch to new keys ...
2025-06-13 14:20:39,162 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 14:20:39,162 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 14:20:39,163 [DEBUG][       Thread-257774][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 14:20:39,164 [DEBUG][       Thread-257774][   transport.py][1871] : userauth is OK
2025-06-13 14:20:39,212 [ INFO][       Thread-257774][   transport.py][1871] : Authentication (password) successful!
2025-06-13 14:20:39,213 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 14:20:39,819 [DEBUG][       Thread-257774][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 14:20:39,819 [DEBUG][       Thread-257774][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 14:20:39,861 [DEBUG][       Thread-257774][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 14:20:39,861 [DEBUG][       Thread-257774][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 14:20:39,864 [DEBUG][       Thread-257774][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 14:20:39,877 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 14:20:39,878 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 14:20:39,879 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 14:20:39,881 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 14:20:39,887 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 14:20:39,889 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 14:20:39,890 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 14:20:39,890 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 14:20:39,891 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.513825 -999.00  +13.40  19.72     36   -1.10 1 1 1 1 1   887    0 13.83 -36.26 ----- 19.7 19.7 44.8 25.6 17.9 -31.0 16.8 -32.6 17.2 -30.2 18.5 -29.0
2025-06-13 14:20:39,891 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 14:20:39,891 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 14:20:39,891 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.513825
2025-06-13 14:20:39,891 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 14:20:39,892 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 14:20:39,892 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 14:20:39,892 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 14:20:39,892 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 14:20:39,892 [DEBUG][       Thread-257774][   transport.py][1871] : EOF in transport thread
2025-06-13 14:20:39,893 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T14:20:11', tmtdew=16.78, humidity=31.19, cloud=0.0, wind=17.21, temperature=13.77, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T12:19:54.480', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 14:20:39,977 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 14:20:39,989 [DEBUG][       Thread-257777][   transport.py][1871] : starting thread (client mode): 0x86893820
2025-06-13 14:20:39,989 [DEBUG][       Thread-257777][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 14:20:40,004 [DEBUG][       Thread-257777][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 14:20:40,004 [ INFO][       Thread-257777][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 14:20:40,016 [DEBUG][       Thread-257777][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 14:20:40,016 [DEBUG][       Thread-257777][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 14:20:40,016 [DEBUG][       Thread-257777][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 14:20:40,016 [DEBUG][       Thread-257777][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:20:40,017 [DEBUG][       Thread-257777][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:20:40,017 [DEBUG][       Thread-257777][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:20:40,017 [DEBUG][       Thread-257777][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:20:40,017 [DEBUG][       Thread-257777][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 14:20:40,017 [DEBUG][       Thread-257777][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 14:20:40,017 [DEBUG][       Thread-257777][   transport.py][1871] : client lang: <none>
2025-06-13 14:20:40,017 [DEBUG][       Thread-257777][   transport.py][1871] : server lang: <none>
2025-06-13 14:20:40,017 [DEBUG][       Thread-257777][   transport.py][1871] : kex follows: False
2025-06-13 14:20:40,017 [DEBUG][       Thread-257777][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 14:20:40,017 [DEBUG][       Thread-257777][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 14:20:40,017 [DEBUG][       Thread-257777][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 14:20:40,017 [DEBUG][       Thread-257777][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 14:20:40,017 [DEBUG][       Thread-257777][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 14:20:40,017 [DEBUG][       Thread-257777][   transport.py][1871] : Compression: none
2025-06-13 14:20:40,017 [DEBUG][       Thread-257777][   transport.py][1871] : === End of kex handshake ===
2025-06-13 14:20:40,076 [DEBUG][       Thread-257777][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 14:20:40,076 [DEBUG][       Thread-257777][   transport.py][1871] : Switch to new keys ...
2025-06-13 14:20:40,077 [DEBUG][       Thread-257777][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 14:20:40,077 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 14:20:40,078 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 14:20:40,133 [DEBUG][       Thread-257777][   transport.py][1871] : userauth is OK
2025-06-13 14:20:40,133 [DEBUG][       Thread-257777][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 14:20:40,133 [DEBUG][       Thread-257777][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 14:20:40,133 [DEBUG][       Thread-257777][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 14:20:40,133 [DEBUG][       Thread-257777][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 14:20:40,152 [ INFO][       Thread-257777][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 14:20:40,152 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 14:20:40,153 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 14:20:41,176 [DEBUG][       Thread-257777][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 14:20:41,184 [DEBUG][       Thread-257777][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 14:20:41,228 [DEBUG][       Thread-257777][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 14:20:41,228 [DEBUG][       Thread-257777][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 14:20:41,238 [DEBUG][       Thread-257777][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 14:20:41,248 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 14:20:41,249 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 14:20:41,258 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 14:20:41,267 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 14:20:41,267 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 14:20:41,268 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 14:20:41,276 [DEBUG][       Thread-257777][   transport.py][1871] : EOF in transport thread
2025-06-13 14:20:43,930 [DEBUG][Thread-257779 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:20:51,278 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 14:20:51,279 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 14:20:51,279 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 14:20:51,282 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 14:20:51,748 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 14, 20, 43), 16.75, 31.26, 0.0, 20.98, 13.76, 0, 0, 0, 2, 0, 0),)
2025-06-13 14:20:51,748 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 14:20:43
2025-06-13 14:20:51,829 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 14:20:51,835 [DEBUG][       Thread-257780][   transport.py][1871] : starting thread (client mode): 0x863902b0
2025-06-13 14:20:51,835 [DEBUG][       Thread-257780][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 14:20:51,855 [DEBUG][       Thread-257780][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 14:20:51,855 [ INFO][       Thread-257780][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 14:20:51,859 [DEBUG][       Thread-257780][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 14:20:51,859 [DEBUG][       Thread-257780][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 14:20:51,859 [DEBUG][       Thread-257780][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 14:20:51,859 [DEBUG][       Thread-257780][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:20:51,859 [DEBUG][       Thread-257780][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:20:51,859 [DEBUG][       Thread-257780][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:20:51,859 [DEBUG][       Thread-257780][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:20:51,859 [DEBUG][       Thread-257780][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 14:20:51,859 [DEBUG][       Thread-257780][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 14:20:51,859 [DEBUG][       Thread-257780][   transport.py][1871] : client lang: <none>
2025-06-13 14:20:51,859 [DEBUG][       Thread-257780][   transport.py][1871] : server lang: <none>
2025-06-13 14:20:51,859 [DEBUG][       Thread-257780][   transport.py][1871] : kex follows: False
2025-06-13 14:20:51,859 [DEBUG][       Thread-257780][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 14:20:51,859 [DEBUG][       Thread-257780][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 14:20:51,859 [DEBUG][       Thread-257780][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 14:20:51,859 [DEBUG][       Thread-257780][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 14:20:51,859 [DEBUG][       Thread-257780][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 14:20:51,859 [DEBUG][       Thread-257780][   transport.py][1871] : Compression: none
2025-06-13 14:20:51,860 [DEBUG][       Thread-257780][   transport.py][1871] : === End of kex handshake ===
2025-06-13 14:20:51,877 [DEBUG][       Thread-257780][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 14:20:51,878 [DEBUG][       Thread-257780][   transport.py][1871] : Switch to new keys ...
2025-06-13 14:20:51,878 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 14:20:51,878 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 14:20:51,879 [DEBUG][       Thread-257780][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 14:20:51,880 [DEBUG][       Thread-257780][   transport.py][1871] : userauth is OK
2025-06-13 14:20:51,904 [ INFO][       Thread-257780][   transport.py][1871] : Authentication (password) successful!
2025-06-13 14:20:51,905 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 14:20:52,508 [DEBUG][       Thread-257780][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 14:20:52,508 [DEBUG][       Thread-257780][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 14:20:52,549 [DEBUG][       Thread-257780][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 14:20:52,549 [DEBUG][       Thread-257780][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 14:20:52,553 [DEBUG][       Thread-257780][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 14:20:52,566 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 14:20:52,567 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 14:20:52,568 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 14:20:52,569 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 14:20:52,571 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 14:20:52,572 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 14:20:52,572 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 14:20:52,572 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 14:20:52,572 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.514173 -999.00  +13.50  24.12     36   -1.10 1 1 1 1 1   887    0 14.06 -34.43 ----- 21.0 24.1 41.8 26.1 17.9 -30.7 16.8 -32.8 17.2 -29.7 18.5 -28.9
2025-06-13 14:20:52,572 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 14:20:52,572 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 14:20:52,572 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.514173
2025-06-13 14:20:52,572 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 14:20:52,572 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 14:20:52,572 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 14:20:52,572 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 14:20:52,572 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 14:20:52,572 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T14:20:43', tmtdew=16.75, humidity=31.26, cloud=0.0, wind=20.98, temperature=13.76, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T12:20:24.547', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 14:20:52,573 [DEBUG][       Thread-257780][   transport.py][1871] : EOF in transport thread
2025-06-13 14:20:52,647 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 14:20:52,657 [DEBUG][       Thread-257783][   transport.py][1871] : starting thread (client mode): 0x863cb0d0
2025-06-13 14:20:52,657 [DEBUG][       Thread-257783][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 14:20:52,672 [DEBUG][       Thread-257783][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 14:20:52,672 [ INFO][       Thread-257783][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 14:20:52,680 [DEBUG][       Thread-257783][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 14:20:52,680 [DEBUG][       Thread-257783][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 14:20:52,680 [DEBUG][       Thread-257783][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 14:20:52,680 [DEBUG][       Thread-257783][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:20:52,680 [DEBUG][       Thread-257783][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:20:52,680 [DEBUG][       Thread-257783][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:20:52,680 [DEBUG][       Thread-257783][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:20:52,680 [DEBUG][       Thread-257783][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 14:20:52,680 [DEBUG][       Thread-257783][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 14:20:52,680 [DEBUG][       Thread-257783][   transport.py][1871] : client lang: <none>
2025-06-13 14:20:52,680 [DEBUG][       Thread-257783][   transport.py][1871] : server lang: <none>
2025-06-13 14:20:52,680 [DEBUG][       Thread-257783][   transport.py][1871] : kex follows: False
2025-06-13 14:20:52,680 [DEBUG][       Thread-257783][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 14:20:52,680 [DEBUG][       Thread-257783][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 14:20:52,681 [DEBUG][       Thread-257783][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 14:20:52,681 [DEBUG][       Thread-257783][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 14:20:52,681 [DEBUG][       Thread-257783][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 14:20:52,681 [DEBUG][       Thread-257783][   transport.py][1871] : Compression: none
2025-06-13 14:20:52,681 [DEBUG][       Thread-257783][   transport.py][1871] : === End of kex handshake ===
2025-06-13 14:20:52,741 [DEBUG][       Thread-257783][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 14:20:52,742 [DEBUG][       Thread-257783][   transport.py][1871] : Switch to new keys ...
2025-06-13 14:20:52,742 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 14:20:52,743 [DEBUG][       Thread-257783][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 14:20:52,744 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 14:20:52,804 [DEBUG][       Thread-257783][   transport.py][1871] : userauth is OK
2025-06-13 14:20:52,804 [DEBUG][       Thread-257783][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 14:20:52,805 [DEBUG][       Thread-257783][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 14:20:52,805 [DEBUG][       Thread-257783][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 14:20:52,805 [DEBUG][       Thread-257783][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 14:20:52,823 [ INFO][       Thread-257783][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 14:20:52,824 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 14:20:52,824 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 14:20:52,949 [DEBUG][Thread-257785 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:20:53,840 [DEBUG][       Thread-257783][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 14:20:53,841 [DEBUG][       Thread-257783][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 14:20:53,901 [DEBUG][       Thread-257783][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 14:20:53,901 [DEBUG][       Thread-257783][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 14:20:53,910 [DEBUG][       Thread-257783][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 14:20:53,920 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 14:20:53,920 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 14:20:53,929 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 14:20:53,938 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 14:20:53,938 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 14:20:53,939 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 14:20:53,947 [DEBUG][       Thread-257783][   transport.py][1871] : EOF in transport thread
2025-06-13 14:20:59,890 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:20:59,891 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:21:01,978 [DEBUG][Thread-257786 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:21:03,949 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 14:21:03,950 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 14:21:03,950 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 14:21:03,951 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 14:21:04,412 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 14, 20, 43), 16.75, 31.26, 0.0, 20.98, 13.76, 0, 0, 0, 2, 0, 0),)
2025-06-13 14:21:04,412 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 14:20:43
2025-06-13 14:21:04,493 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 14:21:04,498 [DEBUG][       Thread-257787][   transport.py][1871] : starting thread (client mode): 0x86392410
2025-06-13 14:21:04,498 [DEBUG][       Thread-257787][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 14:21:04,517 [DEBUG][       Thread-257787][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 14:21:04,518 [ INFO][       Thread-257787][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 14:21:04,521 [DEBUG][       Thread-257787][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 14:21:04,521 [DEBUG][       Thread-257787][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 14:21:04,521 [DEBUG][       Thread-257787][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 14:21:04,521 [DEBUG][       Thread-257787][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:21:04,521 [DEBUG][       Thread-257787][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:21:04,521 [DEBUG][       Thread-257787][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:21:04,521 [DEBUG][       Thread-257787][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:21:04,521 [DEBUG][       Thread-257787][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 14:21:04,521 [DEBUG][       Thread-257787][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 14:21:04,521 [DEBUG][       Thread-257787][   transport.py][1871] : client lang: <none>
2025-06-13 14:21:04,521 [DEBUG][       Thread-257787][   transport.py][1871] : server lang: <none>
2025-06-13 14:21:04,521 [DEBUG][       Thread-257787][   transport.py][1871] : kex follows: False
2025-06-13 14:21:04,521 [DEBUG][       Thread-257787][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 14:21:04,521 [DEBUG][       Thread-257787][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 14:21:04,521 [DEBUG][       Thread-257787][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 14:21:04,521 [DEBUG][       Thread-257787][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 14:21:04,521 [DEBUG][       Thread-257787][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 14:21:04,521 [DEBUG][       Thread-257787][   transport.py][1871] : Compression: none
2025-06-13 14:21:04,521 [DEBUG][       Thread-257787][   transport.py][1871] : === End of kex handshake ===
2025-06-13 14:21:04,539 [DEBUG][       Thread-257787][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 14:21:04,539 [DEBUG][       Thread-257787][   transport.py][1871] : Switch to new keys ...
2025-06-13 14:21:04,548 [DEBUG][       Thread-257787][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 14:21:04,549 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 14:21:04,549 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 14:21:04,550 [DEBUG][       Thread-257787][   transport.py][1871] : userauth is OK
2025-06-13 14:21:04,575 [ INFO][       Thread-257787][   transport.py][1871] : Authentication (password) successful!
2025-06-13 14:21:04,575 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 14:21:05,235 [DEBUG][       Thread-257787][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 14:21:05,235 [DEBUG][       Thread-257787][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 14:21:05,277 [DEBUG][       Thread-257787][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 14:21:05,277 [DEBUG][       Thread-257787][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 14:21:05,280 [DEBUG][       Thread-257787][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 14:21:05,291 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 14:21:05,291 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 14:21:05,293 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 14:21:05,294 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 14:21:05,299 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 14:21:05,301 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 14:21:05,301 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 14:21:05,302 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 14:21:05,302 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.514173 -999.00  +13.50  24.12     36   -1.10 1 1 1 1 1   887    0 14.06 -34.43 ----- 21.0 24.1 41.8 26.1 17.9 -30.7 16.8 -32.8 17.2 -29.7 18.5 -28.9
2025-06-13 14:21:05,302 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 14:21:05,302 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 14:21:05,302 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.514173
2025-06-13 14:21:05,302 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 14:21:05,303 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 14:21:05,303 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 14:21:05,303 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 14:21:05,303 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 14:21:05,303 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T14:20:43', tmtdew=16.75, humidity=31.26, cloud=0.0, wind=20.98, temperature=13.76, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T12:20:24.547', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 14:21:05,303 [DEBUG][       Thread-257787][   transport.py][1871] : EOF in transport thread
2025-06-13 14:21:05,388 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 14:21:05,399 [DEBUG][       Thread-257790][   transport.py][1871] : starting thread (client mode): 0x86368340
2025-06-13 14:21:05,399 [DEBUG][       Thread-257790][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 14:21:05,416 [DEBUG][       Thread-257790][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 14:21:05,416 [ INFO][       Thread-257790][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 14:21:05,423 [DEBUG][       Thread-257790][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 14:21:05,423 [DEBUG][       Thread-257790][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 14:21:05,423 [DEBUG][       Thread-257790][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 14:21:05,423 [DEBUG][       Thread-257790][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:21:05,423 [DEBUG][       Thread-257790][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:21:05,423 [DEBUG][       Thread-257790][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:21:05,424 [DEBUG][       Thread-257790][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:21:05,424 [DEBUG][       Thread-257790][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 14:21:05,424 [DEBUG][       Thread-257790][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 14:21:05,424 [DEBUG][       Thread-257790][   transport.py][1871] : client lang: <none>
2025-06-13 14:21:05,424 [DEBUG][       Thread-257790][   transport.py][1871] : server lang: <none>
2025-06-13 14:21:05,424 [DEBUG][       Thread-257790][   transport.py][1871] : kex follows: False
2025-06-13 14:21:05,424 [DEBUG][       Thread-257790][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 14:21:05,424 [DEBUG][       Thread-257790][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 14:21:05,424 [DEBUG][       Thread-257790][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 14:21:05,424 [DEBUG][       Thread-257790][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 14:21:05,424 [DEBUG][       Thread-257790][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 14:21:05,424 [DEBUG][       Thread-257790][   transport.py][1871] : Compression: none
2025-06-13 14:21:05,424 [DEBUG][       Thread-257790][   transport.py][1871] : === End of kex handshake ===
2025-06-13 14:21:05,483 [DEBUG][       Thread-257790][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 14:21:05,483 [DEBUG][       Thread-257790][   transport.py][1871] : Switch to new keys ...
2025-06-13 14:21:05,484 [DEBUG][       Thread-257790][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 14:21:05,484 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 14:21:05,485 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 14:21:05,540 [DEBUG][       Thread-257790][   transport.py][1871] : userauth is OK
2025-06-13 14:21:05,541 [DEBUG][       Thread-257790][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 14:21:05,541 [DEBUG][       Thread-257790][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 14:21:05,541 [DEBUG][       Thread-257790][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 14:21:05,541 [DEBUG][       Thread-257790][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 14:21:05,565 [ INFO][       Thread-257790][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 14:21:05,565 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 14:21:05,566 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 14:21:06,697 [DEBUG][       Thread-257790][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 14:21:06,697 [DEBUG][       Thread-257790][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 14:21:06,747 [DEBUG][       Thread-257790][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 14:21:06,748 [DEBUG][       Thread-257790][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 14:21:06,757 [DEBUG][       Thread-257790][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 14:21:06,765 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 14:21:06,766 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 14:21:06,776 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 14:21:06,794 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 14:21:06,794 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 14:21:06,795 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 14:21:06,802 [DEBUG][       Thread-257790][   transport.py][1871] : EOF in transport thread
2025-06-13 14:21:11,000 [DEBUG][Thread-257792 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:21:16,804 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 14:21:16,804 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 14:21:16,804 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 14:21:16,804 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 14:21:17,306 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 14, 20, 43), 16.75, 31.26, 0.0, 20.98, 13.76, 0, 0, 0, 2, 0, 0),)
2025-06-13 14:21:17,306 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 14:20:43
2025-06-13 14:21:17,393 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 14:21:17,399 [DEBUG][       Thread-257793][   transport.py][1871] : starting thread (client mode): 0x84207940
2025-06-13 14:21:17,399 [DEBUG][       Thread-257793][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 14:21:17,411 [DEBUG][       Thread-257793][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 14:21:17,411 [ INFO][       Thread-257793][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 14:21:17,414 [DEBUG][       Thread-257793][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 14:21:17,414 [DEBUG][       Thread-257793][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 14:21:17,414 [DEBUG][       Thread-257793][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 14:21:17,414 [DEBUG][       Thread-257793][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:21:17,414 [DEBUG][       Thread-257793][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:21:17,414 [DEBUG][       Thread-257793][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:21:17,414 [DEBUG][       Thread-257793][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:21:17,414 [DEBUG][       Thread-257793][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 14:21:17,414 [DEBUG][       Thread-257793][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 14:21:17,414 [DEBUG][       Thread-257793][   transport.py][1871] : client lang: <none>
2025-06-13 14:21:17,414 [DEBUG][       Thread-257793][   transport.py][1871] : server lang: <none>
2025-06-13 14:21:17,414 [DEBUG][       Thread-257793][   transport.py][1871] : kex follows: False
2025-06-13 14:21:17,414 [DEBUG][       Thread-257793][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 14:21:17,414 [DEBUG][       Thread-257793][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 14:21:17,414 [DEBUG][       Thread-257793][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 14:21:17,414 [DEBUG][       Thread-257793][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 14:21:17,414 [DEBUG][       Thread-257793][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 14:21:17,414 [DEBUG][       Thread-257793][   transport.py][1871] : Compression: none
2025-06-13 14:21:17,414 [DEBUG][       Thread-257793][   transport.py][1871] : === End of kex handshake ===
2025-06-13 14:21:17,430 [DEBUG][       Thread-257793][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 14:21:17,430 [DEBUG][       Thread-257793][   transport.py][1871] : Switch to new keys ...
2025-06-13 14:21:17,430 [DEBUG][       Thread-257793][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 14:21:17,430 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 14:21:17,430 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 14:21:17,431 [DEBUG][       Thread-257793][   transport.py][1871] : userauth is OK
2025-06-13 14:21:17,443 [ INFO][       Thread-257793][   transport.py][1871] : Authentication (password) successful!
2025-06-13 14:21:17,443 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 14:21:17,875 [DEBUG][Thread-257795 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:21:18,096 [DEBUG][       Thread-257793][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 14:21:18,096 [DEBUG][       Thread-257793][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 14:21:18,137 [DEBUG][       Thread-257793][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 14:21:18,137 [DEBUG][       Thread-257793][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 14:21:18,141 [DEBUG][       Thread-257793][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 14:21:18,153 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 14:21:18,153 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 14:21:18,155 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 14:21:18,157 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 14:21:18,163 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 14:21:18,165 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 14:21:18,166 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 14:21:18,166 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 14:21:18,166 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.514173 -999.00  +13.50  24.12     36   -1.10 1 1 1 1 1   887    0 14.06 -34.43 ----- 21.0 24.1 41.8 26.1 17.9 -30.7 16.8 -32.8 17.2 -29.7 18.5 -28.9
2025-06-13 14:21:18,167 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 14:21:18,167 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 14:21:18,167 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.514173
2025-06-13 14:21:18,167 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 14:21:18,168 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 14:21:18,168 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 14:21:18,168 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 14:21:18,168 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 14:21:18,168 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T14:20:43', tmtdew=16.75, humidity=31.26, cloud=0.0, wind=20.98, temperature=13.76, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T12:20:24.547', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 14:21:18,169 [DEBUG][       Thread-257793][   transport.py][1871] : EOF in transport thread
2025-06-13 14:21:18,253 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 14:21:18,265 [DEBUG][       Thread-257797][   transport.py][1871] : starting thread (client mode): 0xc5988130
2025-06-13 14:21:18,265 [DEBUG][       Thread-257797][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 14:21:18,280 [DEBUG][       Thread-257797][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 14:21:18,281 [ INFO][       Thread-257797][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 14:21:18,289 [DEBUG][       Thread-257797][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 14:21:18,289 [DEBUG][       Thread-257797][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 14:21:18,289 [DEBUG][       Thread-257797][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 14:21:18,289 [DEBUG][       Thread-257797][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:21:18,289 [DEBUG][       Thread-257797][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:21:18,289 [DEBUG][       Thread-257797][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:21:18,289 [DEBUG][       Thread-257797][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:21:18,289 [DEBUG][       Thread-257797][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 14:21:18,289 [DEBUG][       Thread-257797][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 14:21:18,289 [DEBUG][       Thread-257797][   transport.py][1871] : client lang: <none>
2025-06-13 14:21:18,289 [DEBUG][       Thread-257797][   transport.py][1871] : server lang: <none>
2025-06-13 14:21:18,289 [DEBUG][       Thread-257797][   transport.py][1871] : kex follows: False
2025-06-13 14:21:18,289 [DEBUG][       Thread-257797][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 14:21:18,289 [DEBUG][       Thread-257797][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 14:21:18,289 [DEBUG][       Thread-257797][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 14:21:18,289 [DEBUG][       Thread-257797][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 14:21:18,290 [DEBUG][       Thread-257797][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 14:21:18,290 [DEBUG][       Thread-257797][   transport.py][1871] : Compression: none
2025-06-13 14:21:18,290 [DEBUG][       Thread-257797][   transport.py][1871] : === End of kex handshake ===
2025-06-13 14:21:18,348 [DEBUG][       Thread-257797][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 14:21:18,348 [DEBUG][       Thread-257797][   transport.py][1871] : Switch to new keys ...
2025-06-13 14:21:18,349 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 14:21:18,349 [DEBUG][       Thread-257797][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 14:21:18,350 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 14:21:18,404 [DEBUG][       Thread-257797][   transport.py][1871] : userauth is OK
2025-06-13 14:21:18,404 [DEBUG][       Thread-257797][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 14:21:18,404 [DEBUG][       Thread-257797][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 14:21:18,404 [DEBUG][       Thread-257797][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 14:21:18,404 [DEBUG][       Thread-257797][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 14:21:18,424 [ INFO][       Thread-257797][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 14:21:18,424 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 14:21:18,425 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 14:21:19,451 [DEBUG][       Thread-257797][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 14:21:19,451 [DEBUG][       Thread-257797][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 14:21:19,506 [DEBUG][       Thread-257797][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 14:21:19,506 [DEBUG][       Thread-257797][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 14:21:19,517 [DEBUG][       Thread-257797][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 14:21:19,527 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 14:21:19,527 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 14:21:19,540 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 14:21:19,549 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 14:21:19,549 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 14:21:19,550 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 14:21:19,557 [DEBUG][       Thread-257797][   transport.py][1871] : EOF in transport thread
2025-06-13 14:21:20,019 [DEBUG][Thread-257799 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:21:29,042 [DEBUG][Thread-257800 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:21:29,560 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 14:21:29,560 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 14:21:29,560 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 14:21:29,563 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 14:21:30,025 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 14, 21, 15), 16.86, 31.11, 0.0, 16.82, 13.93, 0, 0, 0, 2, 0, 0),)
2025-06-13 14:21:30,025 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 14:21:15
2025-06-13 14:21:30,107 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 14:21:30,111 [DEBUG][       Thread-257801][   transport.py][1871] : starting thread (client mode): 0x842050c0
2025-06-13 14:21:30,111 [DEBUG][       Thread-257801][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 14:21:30,132 [DEBUG][       Thread-257801][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 14:21:30,132 [ INFO][       Thread-257801][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 14:21:30,135 [DEBUG][       Thread-257801][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 14:21:30,135 [DEBUG][       Thread-257801][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 14:21:30,135 [DEBUG][       Thread-257801][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 14:21:30,135 [DEBUG][       Thread-257801][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:21:30,135 [DEBUG][       Thread-257801][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:21:30,135 [DEBUG][       Thread-257801][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:21:30,135 [DEBUG][       Thread-257801][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:21:30,135 [DEBUG][       Thread-257801][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 14:21:30,135 [DEBUG][       Thread-257801][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 14:21:30,135 [DEBUG][       Thread-257801][   transport.py][1871] : client lang: <none>
2025-06-13 14:21:30,135 [DEBUG][       Thread-257801][   transport.py][1871] : server lang: <none>
2025-06-13 14:21:30,135 [DEBUG][       Thread-257801][   transport.py][1871] : kex follows: False
2025-06-13 14:21:30,135 [DEBUG][       Thread-257801][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 14:21:30,136 [DEBUG][       Thread-257801][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 14:21:30,136 [DEBUG][       Thread-257801][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 14:21:30,136 [DEBUG][       Thread-257801][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 14:21:30,136 [DEBUG][       Thread-257801][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 14:21:30,136 [DEBUG][       Thread-257801][   transport.py][1871] : Compression: none
2025-06-13 14:21:30,136 [DEBUG][       Thread-257801][   transport.py][1871] : === End of kex handshake ===
2025-06-13 14:21:30,152 [DEBUG][       Thread-257801][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 14:21:30,153 [DEBUG][       Thread-257801][   transport.py][1871] : Switch to new keys ...
2025-06-13 14:21:30,153 [DEBUG][       Thread-257801][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 14:21:30,153 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 14:21:30,154 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 14:21:30,155 [DEBUG][       Thread-257801][   transport.py][1871] : userauth is OK
2025-06-13 14:21:30,179 [ INFO][       Thread-257801][   transport.py][1871] : Authentication (password) successful!
2025-06-13 14:21:30,179 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 14:21:30,784 [DEBUG][       Thread-257801][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 14:21:30,784 [DEBUG][       Thread-257801][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 14:21:30,825 [DEBUG][       Thread-257801][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 14:21:30,825 [DEBUG][       Thread-257801][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 14:21:30,828 [DEBUG][       Thread-257801][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 14:21:30,840 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 14:21:30,840 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 14:21:30,842 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 14:21:30,844 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 14:21:30,850 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 14:21:30,852 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 14:21:30,852 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 14:21:30,853 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 14:21:30,853 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.514520 -999.00  +13.50  21.85     35   -1.40 1 1 1 1 1   887    0 13.69 -36.98 ----- 19.9 21.9 16.0 23.6 17.9 -30.7 16.8 -31.3 17.3 -30.7 18.6 -28.7
2025-06-13 14:21:30,853 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 14:21:30,853 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 14:21:30,853 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.514520
2025-06-13 14:21:30,854 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 14:21:30,854 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 14:21:30,854 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 14:21:30,854 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 14:21:30,854 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 14:21:30,855 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T14:21:15', tmtdew=16.86, humidity=31.11, cloud=0.0, wind=16.82, temperature=13.93, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T12:20:54.528', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 14:21:30,856 [DEBUG][       Thread-257801][   transport.py][1871] : EOF in transport thread
2025-06-13 14:21:30,931 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 14:21:30,940 [DEBUG][       Thread-257804][   transport.py][1871] : starting thread (client mode): 0x86893820
2025-06-13 14:21:30,940 [DEBUG][       Thread-257804][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 14:21:30,955 [DEBUG][       Thread-257804][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 14:21:30,955 [ INFO][       Thread-257804][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 14:21:30,964 [DEBUG][       Thread-257804][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 14:21:30,964 [DEBUG][       Thread-257804][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 14:21:30,965 [DEBUG][       Thread-257804][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 14:21:30,965 [DEBUG][       Thread-257804][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:21:30,965 [DEBUG][       Thread-257804][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:21:30,965 [DEBUG][       Thread-257804][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:21:30,965 [DEBUG][       Thread-257804][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:21:30,965 [DEBUG][       Thread-257804][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 14:21:30,965 [DEBUG][       Thread-257804][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 14:21:30,965 [DEBUG][       Thread-257804][   transport.py][1871] : client lang: <none>
2025-06-13 14:21:30,965 [DEBUG][       Thread-257804][   transport.py][1871] : server lang: <none>
2025-06-13 14:21:30,965 [DEBUG][       Thread-257804][   transport.py][1871] : kex follows: False
2025-06-13 14:21:30,965 [DEBUG][       Thread-257804][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 14:21:30,965 [DEBUG][       Thread-257804][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 14:21:30,965 [DEBUG][       Thread-257804][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 14:21:30,965 [DEBUG][       Thread-257804][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 14:21:30,965 [DEBUG][       Thread-257804][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 14:21:30,965 [DEBUG][       Thread-257804][   transport.py][1871] : Compression: none
2025-06-13 14:21:30,965 [DEBUG][       Thread-257804][   transport.py][1871] : === End of kex handshake ===
2025-06-13 14:21:31,023 [DEBUG][       Thread-257804][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 14:21:31,024 [DEBUG][       Thread-257804][   transport.py][1871] : Switch to new keys ...
2025-06-13 14:21:31,024 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 14:21:31,025 [DEBUG][       Thread-257804][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 14:21:31,026 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 14:21:31,079 [DEBUG][       Thread-257804][   transport.py][1871] : userauth is OK
2025-06-13 14:21:31,079 [DEBUG][       Thread-257804][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 14:21:31,080 [DEBUG][       Thread-257804][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 14:21:31,080 [DEBUG][       Thread-257804][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 14:21:31,080 [DEBUG][       Thread-257804][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 14:21:31,098 [ INFO][       Thread-257804][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 14:21:31,098 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 14:21:31,099 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 14:21:32,099 [DEBUG][       Thread-257804][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 14:21:32,099 [DEBUG][       Thread-257804][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 14:21:32,148 [DEBUG][       Thread-257804][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 14:21:32,148 [DEBUG][       Thread-257804][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 14:21:32,157 [DEBUG][       Thread-257804][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 14:21:32,166 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 14:21:32,166 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 14:21:32,175 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 14:21:32,184 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 14:21:32,185 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 14:21:32,185 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 14:21:32,196 [DEBUG][       Thread-257804][   transport.py][1871] : EOF in transport thread
2025-06-13 14:21:33,382 [DEBUG][Thread-257806 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:21:34,465 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:21:34,466 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:21:38,060 [DEBUG][Thread-257807 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:21:42,196 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 14:21:42,196 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 14:21:42,196 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 14:21:42,199 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 14:21:42,664 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 14, 21, 15), 16.86, 31.11, 0.0, 16.82, 13.93, 0, 0, 0, 2, 0, 0),)
2025-06-13 14:21:42,664 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 14:21:15
2025-06-13 14:21:42,744 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 14:21:42,750 [DEBUG][       Thread-257808][   transport.py][1871] : starting thread (client mode): 0x863beec0
2025-06-13 14:21:42,750 [DEBUG][       Thread-257808][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 14:21:42,770 [DEBUG][       Thread-257808][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 14:21:42,770 [ INFO][       Thread-257808][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 14:21:42,773 [DEBUG][       Thread-257808][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 14:21:42,773 [DEBUG][       Thread-257808][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 14:21:42,773 [DEBUG][       Thread-257808][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 14:21:42,773 [DEBUG][       Thread-257808][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:21:42,773 [DEBUG][       Thread-257808][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:21:42,773 [DEBUG][       Thread-257808][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:21:42,773 [DEBUG][       Thread-257808][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:21:42,773 [DEBUG][       Thread-257808][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 14:21:42,773 [DEBUG][       Thread-257808][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 14:21:42,773 [DEBUG][       Thread-257808][   transport.py][1871] : client lang: <none>
2025-06-13 14:21:42,773 [DEBUG][       Thread-257808][   transport.py][1871] : server lang: <none>
2025-06-13 14:21:42,773 [DEBUG][       Thread-257808][   transport.py][1871] : kex follows: False
2025-06-13 14:21:42,773 [DEBUG][       Thread-257808][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 14:21:42,773 [DEBUG][       Thread-257808][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 14:21:42,773 [DEBUG][       Thread-257808][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 14:21:42,774 [DEBUG][       Thread-257808][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 14:21:42,774 [DEBUG][       Thread-257808][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 14:21:42,774 [DEBUG][       Thread-257808][   transport.py][1871] : Compression: none
2025-06-13 14:21:42,774 [DEBUG][       Thread-257808][   transport.py][1871] : === End of kex handshake ===
2025-06-13 14:21:42,782 [DEBUG][       Thread-257808][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 14:21:42,782 [DEBUG][       Thread-257808][   transport.py][1871] : Switch to new keys ...
2025-06-13 14:21:42,782 [DEBUG][       Thread-257808][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 14:21:42,783 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 14:21:42,783 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 14:21:42,784 [DEBUG][       Thread-257808][   transport.py][1871] : userauth is OK
2025-06-13 14:21:42,797 [ INFO][       Thread-257808][   transport.py][1871] : Authentication (password) successful!
2025-06-13 14:21:42,797 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 14:21:43,441 [DEBUG][       Thread-257808][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 14:21:43,441 [DEBUG][       Thread-257808][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 14:21:43,485 [DEBUG][       Thread-257808][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 14:21:43,485 [DEBUG][       Thread-257808][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 14:21:43,489 [DEBUG][       Thread-257808][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 14:21:43,500 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 14:21:43,501 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 14:21:43,503 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 14:21:43,504 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 14:21:43,510 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 14:21:43,513 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 14:21:43,513 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 14:21:43,514 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 14:21:43,514 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.514520 -999.00  +13.50  21.85     35   -1.40 1 1 1 1 1   887    0 13.69 -36.98 ----- 19.9 21.9 16.0 23.6 17.9 -30.7 16.8 -31.3 17.3 -30.7 18.6 -28.7
2025-06-13 14:21:43,514 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 14:21:43,514 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 14:21:43,514 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.514520
2025-06-13 14:21:43,514 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 14:21:43,515 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 14:21:43,515 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 14:21:43,515 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 14:21:43,515 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 14:21:43,515 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T14:21:15', tmtdew=16.86, humidity=31.11, cloud=0.0, wind=16.82, temperature=13.93, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T12:20:54.528', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 14:21:43,516 [DEBUG][       Thread-257808][   transport.py][1871] : EOF in transport thread
2025-06-13 14:21:43,600 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 14:21:43,612 [DEBUG][       Thread-257811][   transport.py][1871] : starting thread (client mode): 0x863ef340
2025-06-13 14:21:43,613 [DEBUG][       Thread-257811][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 14:21:43,629 [DEBUG][       Thread-257811][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 14:21:43,629 [ INFO][       Thread-257811][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 14:21:43,638 [DEBUG][       Thread-257811][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 14:21:43,638 [DEBUG][       Thread-257811][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 14:21:43,639 [DEBUG][       Thread-257811][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 14:21:43,639 [DEBUG][       Thread-257811][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:21:43,639 [DEBUG][       Thread-257811][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:21:43,639 [DEBUG][       Thread-257811][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:21:43,639 [DEBUG][       Thread-257811][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:21:43,639 [DEBUG][       Thread-257811][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 14:21:43,639 [DEBUG][       Thread-257811][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 14:21:43,639 [DEBUG][       Thread-257811][   transport.py][1871] : client lang: <none>
2025-06-13 14:21:43,639 [DEBUG][       Thread-257811][   transport.py][1871] : server lang: <none>
2025-06-13 14:21:43,639 [DEBUG][       Thread-257811][   transport.py][1871] : kex follows: False
2025-06-13 14:21:43,639 [DEBUG][       Thread-257811][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 14:21:43,639 [DEBUG][       Thread-257811][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 14:21:43,639 [DEBUG][       Thread-257811][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 14:21:43,639 [DEBUG][       Thread-257811][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 14:21:43,639 [DEBUG][       Thread-257811][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 14:21:43,639 [DEBUG][       Thread-257811][   transport.py][1871] : Compression: none
2025-06-13 14:21:43,640 [DEBUG][       Thread-257811][   transport.py][1871] : === End of kex handshake ===
2025-06-13 14:21:43,699 [DEBUG][       Thread-257811][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 14:21:43,700 [DEBUG][       Thread-257811][   transport.py][1871] : Switch to new keys ...
2025-06-13 14:21:43,700 [DEBUG][       Thread-257811][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 14:21:43,701 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 14:21:43,701 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 14:21:43,759 [DEBUG][       Thread-257811][   transport.py][1871] : userauth is OK
2025-06-13 14:21:43,760 [DEBUG][       Thread-257811][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 14:21:43,760 [DEBUG][       Thread-257811][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 14:21:43,760 [DEBUG][       Thread-257811][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 14:21:43,760 [DEBUG][       Thread-257811][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 14:21:43,779 [ INFO][       Thread-257811][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 14:21:43,780 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 14:21:43,780 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 14:21:44,810 [DEBUG][       Thread-257811][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 14:21:44,810 [DEBUG][       Thread-257811][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 14:21:44,861 [DEBUG][       Thread-257811][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 14:21:44,861 [DEBUG][       Thread-257811][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 14:21:44,870 [DEBUG][       Thread-257811][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 14:21:44,881 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 14:21:44,881 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 14:21:44,890 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 14:21:44,899 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 14:21:44,900 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 14:21:44,900 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 14:21:44,908 [DEBUG][       Thread-257811][   transport.py][1871] : EOF in transport thread
2025-06-13 14:21:47,087 [DEBUG][Thread-257813 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:21:54,905 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 14:21:54,905 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 14:21:54,905 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 14:21:54,908 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 14:21:55,361 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 14, 21, 47), 17.0, 30.8, 0.0, 16.52, 13.85, 0, 0, 0, 2, 0, 0),)
2025-06-13 14:21:55,361 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 14:21:47
2025-06-13 14:21:55,442 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 14:21:55,446 [DEBUG][       Thread-257814][   transport.py][1871] : starting thread (client mode): 0x86392fe0
2025-06-13 14:21:55,446 [DEBUG][       Thread-257814][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 14:21:55,467 [DEBUG][       Thread-257814][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 14:21:55,467 [ INFO][       Thread-257814][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 14:21:55,469 [DEBUG][       Thread-257814][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 14:21:55,469 [DEBUG][       Thread-257814][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 14:21:55,469 [DEBUG][       Thread-257814][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 14:21:55,469 [DEBUG][       Thread-257814][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:21:55,469 [DEBUG][       Thread-257814][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:21:55,469 [DEBUG][       Thread-257814][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:21:55,469 [DEBUG][       Thread-257814][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:21:55,469 [DEBUG][       Thread-257814][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 14:21:55,469 [DEBUG][       Thread-257814][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 14:21:55,469 [DEBUG][       Thread-257814][   transport.py][1871] : client lang: <none>
2025-06-13 14:21:55,469 [DEBUG][       Thread-257814][   transport.py][1871] : server lang: <none>
2025-06-13 14:21:55,469 [DEBUG][       Thread-257814][   transport.py][1871] : kex follows: False
2025-06-13 14:21:55,469 [DEBUG][       Thread-257814][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 14:21:55,469 [DEBUG][       Thread-257814][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 14:21:55,469 [DEBUG][       Thread-257814][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 14:21:55,469 [DEBUG][       Thread-257814][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 14:21:55,469 [DEBUG][       Thread-257814][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 14:21:55,469 [DEBUG][       Thread-257814][   transport.py][1871] : Compression: none
2025-06-13 14:21:55,469 [DEBUG][       Thread-257814][   transport.py][1871] : === End of kex handshake ===
2025-06-13 14:21:55,481 [DEBUG][       Thread-257814][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 14:21:55,482 [DEBUG][       Thread-257814][   transport.py][1871] : Switch to new keys ...
2025-06-13 14:21:55,482 [DEBUG][       Thread-257814][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 14:21:55,482 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 14:21:55,483 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 14:21:55,484 [DEBUG][       Thread-257814][   transport.py][1871] : userauth is OK
2025-06-13 14:21:55,498 [ INFO][       Thread-257814][   transport.py][1871] : Authentication (password) successful!
2025-06-13 14:21:55,498 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 14:21:56,080 [DEBUG][       Thread-257814][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 14:21:56,081 [DEBUG][       Thread-257814][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 14:21:56,109 [DEBUG][Thread-257816 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:21:56,125 [DEBUG][       Thread-257814][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 14:21:56,125 [DEBUG][       Thread-257814][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 14:21:56,129 [DEBUG][       Thread-257814][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 14:21:56,140 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 14:21:56,140 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 14:21:56,142 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 14:21:56,144 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 14:21:56,148 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 14:21:56,149 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 14:21:56,149 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 14:21:56,149 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 14:21:56,149 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.514867 -999.00  +13.50  16.53     36   -1.00 1 1 1 1 1   887    0 13.76 -37.36 ----- 17.5 16.5 30.9 22.4 17.9 -30.8 16.8 -32.3 17.4 -29.7 18.4 -31.6
2025-06-13 14:21:56,149 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 14:21:56,149 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 14:21:56,149 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.514867
2025-06-13 14:21:56,149 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 14:21:56,149 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 14:21:56,149 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 14:21:56,149 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 14:21:56,149 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 14:21:56,149 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T14:21:47', tmtdew=17.0, humidity=30.8, cloud=0.0, wind=16.52, temperature=13.85, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T12:21:24.509', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 14:21:56,150 [DEBUG][       Thread-257814][   transport.py][1871] : EOF in transport thread
2025-06-13 14:21:56,220 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 14:21:56,230 [DEBUG][       Thread-257818][   transport.py][1871] : starting thread (client mode): 0x863a6e60
2025-06-13 14:21:56,230 [DEBUG][       Thread-257818][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 14:21:56,244 [DEBUG][       Thread-257818][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 14:21:56,244 [ INFO][       Thread-257818][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 14:21:56,252 [DEBUG][       Thread-257818][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 14:21:56,252 [DEBUG][       Thread-257818][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 14:21:56,252 [DEBUG][       Thread-257818][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 14:21:56,252 [DEBUG][       Thread-257818][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:21:56,252 [DEBUG][       Thread-257818][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:21:56,252 [DEBUG][       Thread-257818][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:21:56,252 [DEBUG][       Thread-257818][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:21:56,252 [DEBUG][       Thread-257818][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 14:21:56,252 [DEBUG][       Thread-257818][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 14:21:56,252 [DEBUG][       Thread-257818][   transport.py][1871] : client lang: <none>
2025-06-13 14:21:56,252 [DEBUG][       Thread-257818][   transport.py][1871] : server lang: <none>
2025-06-13 14:21:56,252 [DEBUG][       Thread-257818][   transport.py][1871] : kex follows: False
2025-06-13 14:21:56,252 [DEBUG][       Thread-257818][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 14:21:56,252 [DEBUG][       Thread-257818][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 14:21:56,252 [DEBUG][       Thread-257818][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 14:21:56,252 [DEBUG][       Thread-257818][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 14:21:56,253 [DEBUG][       Thread-257818][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 14:21:56,253 [DEBUG][       Thread-257818][   transport.py][1871] : Compression: none
2025-06-13 14:21:56,253 [DEBUG][       Thread-257818][   transport.py][1871] : === End of kex handshake ===
2025-06-13 14:21:56,312 [DEBUG][       Thread-257818][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 14:21:56,312 [DEBUG][       Thread-257818][   transport.py][1871] : Switch to new keys ...
2025-06-13 14:21:56,313 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 14:21:56,313 [DEBUG][       Thread-257818][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 14:21:56,314 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 14:21:56,368 [DEBUG][       Thread-257818][   transport.py][1871] : userauth is OK
2025-06-13 14:21:56,368 [DEBUG][       Thread-257818][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 14:21:56,368 [DEBUG][       Thread-257818][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 14:21:56,368 [DEBUG][       Thread-257818][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 14:21:56,368 [DEBUG][       Thread-257818][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 14:21:56,386 [ INFO][       Thread-257818][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 14:21:56,387 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 14:21:56,387 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 14:21:57,392 [DEBUG][       Thread-257818][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 14:21:57,392 [DEBUG][       Thread-257818][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 14:21:57,441 [DEBUG][       Thread-257818][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 14:21:57,441 [DEBUG][       Thread-257818][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 14:21:57,452 [DEBUG][       Thread-257818][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 14:21:57,463 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 14:21:57,463 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 14:21:57,473 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 14:21:57,484 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 14:21:57,484 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 14:21:57,485 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 14:21:57,496 [DEBUG][       Thread-257818][   transport.py][1871] : EOF in transport thread
2025-06-13 14:22:00,030 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:22:00,031 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:22:05,131 [DEBUG][Thread-257820 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:22:07,495 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 14:22:07,496 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 14:22:07,496 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 14:22:07,499 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 14:22:07,947 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 14, 21, 47), 17.0, 30.8, 0.0, 16.52, 13.85, 0, 0, 0, 2, 0, 0),)
2025-06-13 14:22:07,947 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 14:21:47
2025-06-13 14:22:08,028 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 14:22:08,033 [DEBUG][       Thread-257821][   transport.py][1871] : starting thread (client mode): 0x867ff040
2025-06-13 14:22:08,033 [DEBUG][       Thread-257821][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 14:22:08,054 [DEBUG][       Thread-257821][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 14:22:08,054 [ INFO][       Thread-257821][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 14:22:08,057 [DEBUG][       Thread-257821][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 14:22:08,057 [DEBUG][       Thread-257821][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 14:22:08,057 [DEBUG][       Thread-257821][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 14:22:08,057 [DEBUG][       Thread-257821][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:22:08,057 [DEBUG][       Thread-257821][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:22:08,057 [DEBUG][       Thread-257821][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:22:08,057 [DEBUG][       Thread-257821][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:22:08,057 [DEBUG][       Thread-257821][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 14:22:08,057 [DEBUG][       Thread-257821][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 14:22:08,057 [DEBUG][       Thread-257821][   transport.py][1871] : client lang: <none>
2025-06-13 14:22:08,057 [DEBUG][       Thread-257821][   transport.py][1871] : server lang: <none>
2025-06-13 14:22:08,057 [DEBUG][       Thread-257821][   transport.py][1871] : kex follows: False
2025-06-13 14:22:08,057 [DEBUG][       Thread-257821][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 14:22:08,057 [DEBUG][       Thread-257821][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 14:22:08,057 [DEBUG][       Thread-257821][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 14:22:08,057 [DEBUG][       Thread-257821][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 14:22:08,057 [DEBUG][       Thread-257821][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 14:22:08,057 [DEBUG][       Thread-257821][   transport.py][1871] : Compression: none
2025-06-13 14:22:08,057 [DEBUG][       Thread-257821][   transport.py][1871] : === End of kex handshake ===
2025-06-13 14:22:08,076 [DEBUG][       Thread-257821][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 14:22:08,077 [DEBUG][       Thread-257821][   transport.py][1871] : Switch to new keys ...
2025-06-13 14:22:08,077 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 14:22:08,077 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 14:22:08,078 [DEBUG][       Thread-257821][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 14:22:08,078 [DEBUG][       Thread-257821][   transport.py][1871] : userauth is OK
2025-06-13 14:22:08,092 [ INFO][       Thread-257821][   transport.py][1871] : Authentication (password) successful!
2025-06-13 14:22:08,092 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 14:22:08,746 [DEBUG][       Thread-257821][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 14:22:08,746 [DEBUG][       Thread-257821][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 14:22:08,789 [DEBUG][       Thread-257821][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 14:22:08,789 [DEBUG][       Thread-257821][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 14:22:08,792 [DEBUG][       Thread-257821][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 14:22:08,807 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 14:22:08,807 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 14:22:08,809 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 14:22:08,811 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 14:22:08,817 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 14:22:08,819 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 14:22:08,819 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 14:22:08,820 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 14:22:08,820 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.514867 -999.00  +13.50  16.53     36   -1.00 1 1 1 1 1   887    0 13.76 -37.36 ----- 17.5 16.5 30.9 22.4 17.9 -30.8 16.8 -32.3 17.4 -29.7 18.4 -31.6
2025-06-13 14:22:08,820 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 14:22:08,820 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 14:22:08,821 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.514867
2025-06-13 14:22:08,821 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 14:22:08,822 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 14:22:08,822 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 14:22:08,822 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 14:22:08,822 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 14:22:08,822 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T14:21:47', tmtdew=17.0, humidity=30.8, cloud=0.0, wind=16.52, temperature=13.85, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T12:21:24.509', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 14:22:08,823 [DEBUG][       Thread-257821][   transport.py][1871] : EOF in transport thread
2025-06-13 14:22:08,905 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 14:22:08,917 [DEBUG][       Thread-257824][   transport.py][1871] : starting thread (client mode): 0x863ef0d0
2025-06-13 14:22:08,917 [DEBUG][       Thread-257824][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 14:22:08,933 [DEBUG][       Thread-257824][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 14:22:08,933 [ INFO][       Thread-257824][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 14:22:08,940 [DEBUG][       Thread-257824][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 14:22:08,941 [DEBUG][       Thread-257824][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 14:22:08,941 [DEBUG][       Thread-257824][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 14:22:08,941 [DEBUG][       Thread-257824][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:22:08,941 [DEBUG][       Thread-257824][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:22:08,941 [DEBUG][       Thread-257824][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:22:08,941 [DEBUG][       Thread-257824][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:22:08,941 [DEBUG][       Thread-257824][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 14:22:08,941 [DEBUG][       Thread-257824][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 14:22:08,941 [DEBUG][       Thread-257824][   transport.py][1871] : client lang: <none>
2025-06-13 14:22:08,941 [DEBUG][       Thread-257824][   transport.py][1871] : server lang: <none>
2025-06-13 14:22:08,941 [DEBUG][       Thread-257824][   transport.py][1871] : kex follows: False
2025-06-13 14:22:08,941 [DEBUG][       Thread-257824][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 14:22:08,941 [DEBUG][       Thread-257824][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 14:22:08,941 [DEBUG][       Thread-257824][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 14:22:08,941 [DEBUG][       Thread-257824][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 14:22:08,941 [DEBUG][       Thread-257824][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 14:22:08,941 [DEBUG][       Thread-257824][   transport.py][1871] : Compression: none
2025-06-13 14:22:08,941 [DEBUG][       Thread-257824][   transport.py][1871] : === End of kex handshake ===
2025-06-13 14:22:08,999 [DEBUG][       Thread-257824][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 14:22:09,000 [DEBUG][       Thread-257824][   transport.py][1871] : Switch to new keys ...
2025-06-13 14:22:09,000 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 14:22:09,001 [DEBUG][       Thread-257824][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 14:22:09,002 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 14:22:09,068 [DEBUG][       Thread-257824][   transport.py][1871] : userauth is OK
2025-06-13 14:22:09,068 [DEBUG][       Thread-257824][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 14:22:09,068 [DEBUG][       Thread-257824][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 14:22:09,068 [DEBUG][       Thread-257824][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 14:22:09,068 [DEBUG][       Thread-257824][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 14:22:09,093 [ INFO][       Thread-257824][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 14:22:09,093 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 14:22:09,094 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 14:22:10,129 [DEBUG][       Thread-257824][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 14:22:10,129 [DEBUG][       Thread-257824][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 14:22:10,180 [DEBUG][       Thread-257824][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 14:22:10,180 [DEBUG][       Thread-257824][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 14:22:10,190 [DEBUG][       Thread-257824][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 14:22:10,200 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 14:22:10,201 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 14:22:10,213 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 14:22:10,222 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 14:22:10,223 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 14:22:10,223 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 14:22:10,231 [DEBUG][       Thread-257824][   transport.py][1871] : EOF in transport thread
2025-06-13 14:22:14,165 [DEBUG][Thread-257826 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:22:17,928 [DEBUG][Thread-257827 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:22:20,233 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 14:22:20,233 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 14:22:20,234 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 14:22:20,234 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 14:22:20,721 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 14, 21, 47), 17.0, 30.8, 0.0, 16.52, 13.85, 0, 0, 0, 2, 0, 0),)
2025-06-13 14:22:20,721 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 14:21:47
2025-06-13 14:22:20,807 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 14:22:20,811 [DEBUG][       Thread-257828][   transport.py][1871] : starting thread (client mode): 0x86390e20
2025-06-13 14:22:20,811 [DEBUG][       Thread-257828][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 14:22:20,831 [DEBUG][       Thread-257828][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 14:22:20,831 [ INFO][       Thread-257828][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 14:22:20,834 [DEBUG][       Thread-257828][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 14:22:20,834 [DEBUG][       Thread-257828][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 14:22:20,834 [DEBUG][       Thread-257828][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 14:22:20,834 [DEBUG][       Thread-257828][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:22:20,834 [DEBUG][       Thread-257828][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:22:20,834 [DEBUG][       Thread-257828][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:22:20,834 [DEBUG][       Thread-257828][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:22:20,834 [DEBUG][       Thread-257828][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 14:22:20,834 [DEBUG][       Thread-257828][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 14:22:20,834 [DEBUG][       Thread-257828][   transport.py][1871] : client lang: <none>
2025-06-13 14:22:20,834 [DEBUG][       Thread-257828][   transport.py][1871] : server lang: <none>
2025-06-13 14:22:20,834 [DEBUG][       Thread-257828][   transport.py][1871] : kex follows: False
2025-06-13 14:22:20,834 [DEBUG][       Thread-257828][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 14:22:20,834 [DEBUG][       Thread-257828][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 14:22:20,834 [DEBUG][       Thread-257828][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 14:22:20,834 [DEBUG][       Thread-257828][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 14:22:20,834 [DEBUG][       Thread-257828][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 14:22:20,834 [DEBUG][       Thread-257828][   transport.py][1871] : Compression: none
2025-06-13 14:22:20,834 [DEBUG][       Thread-257828][   transport.py][1871] : === End of kex handshake ===
2025-06-13 14:22:20,848 [DEBUG][       Thread-257828][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 14:22:20,848 [DEBUG][       Thread-257828][   transport.py][1871] : Switch to new keys ...
2025-06-13 14:22:20,848 [DEBUG][       Thread-257828][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 14:22:20,848 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 14:22:20,849 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 14:22:20,849 [DEBUG][       Thread-257828][   transport.py][1871] : userauth is OK
2025-06-13 14:22:20,873 [ INFO][       Thread-257828][   transport.py][1871] : Authentication (password) successful!
2025-06-13 14:22:20,873 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 14:22:21,487 [DEBUG][       Thread-257828][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 14:22:21,487 [DEBUG][       Thread-257828][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 14:22:21,529 [DEBUG][       Thread-257828][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 14:22:21,529 [DEBUG][       Thread-257828][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 14:22:21,533 [DEBUG][       Thread-257828][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 14:22:21,544 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 14:22:21,545 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 14:22:21,547 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 14:22:21,549 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 14:22:21,554 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 14:22:21,556 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 14:22:21,556 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 14:22:21,557 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 14:22:21,557 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.514867 -999.00  +13.50  16.53     36   -1.00 1 1 1 1 1   887    0 13.76 -37.36 ----- 17.5 16.5 30.9 22.4 17.9 -30.8 16.8 -32.3 17.4 -29.7 18.4 -31.6
2025-06-13 14:22:21,557 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 14:22:21,557 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 14:22:21,558 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.514867
2025-06-13 14:22:21,558 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 14:22:21,559 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 14:22:21,559 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 14:22:21,559 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 14:22:21,559 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 14:22:21,559 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T14:21:47', tmtdew=17.0, humidity=30.8, cloud=0.0, wind=16.52, temperature=13.85, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T12:21:24.509', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 14:22:21,559 [DEBUG][       Thread-257828][   transport.py][1871] : EOF in transport thread
2025-06-13 14:22:21,643 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 14:22:21,653 [DEBUG][       Thread-257831][   transport.py][1871] : starting thread (client mode): 0x86893fd0
2025-06-13 14:22:21,653 [DEBUG][       Thread-257831][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 14:22:21,670 [DEBUG][       Thread-257831][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 14:22:21,670 [ INFO][       Thread-257831][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 14:22:21,678 [DEBUG][       Thread-257831][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 14:22:21,678 [DEBUG][       Thread-257831][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 14:22:21,678 [DEBUG][       Thread-257831][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 14:22:21,678 [DEBUG][       Thread-257831][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:22:21,678 [DEBUG][       Thread-257831][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:22:21,678 [DEBUG][       Thread-257831][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:22:21,678 [DEBUG][       Thread-257831][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:22:21,678 [DEBUG][       Thread-257831][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 14:22:21,678 [DEBUG][       Thread-257831][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 14:22:21,678 [DEBUG][       Thread-257831][   transport.py][1871] : client lang: <none>
2025-06-13 14:22:21,678 [DEBUG][       Thread-257831][   transport.py][1871] : server lang: <none>
2025-06-13 14:22:21,678 [DEBUG][       Thread-257831][   transport.py][1871] : kex follows: False
2025-06-13 14:22:21,678 [DEBUG][       Thread-257831][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 14:22:21,678 [DEBUG][       Thread-257831][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 14:22:21,678 [DEBUG][       Thread-257831][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 14:22:21,678 [DEBUG][       Thread-257831][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 14:22:21,678 [DEBUG][       Thread-257831][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 14:22:21,678 [DEBUG][       Thread-257831][   transport.py][1871] : Compression: none
2025-06-13 14:22:21,678 [DEBUG][       Thread-257831][   transport.py][1871] : === End of kex handshake ===
2025-06-13 14:22:21,737 [DEBUG][       Thread-257831][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 14:22:21,737 [DEBUG][       Thread-257831][   transport.py][1871] : Switch to new keys ...
2025-06-13 14:22:21,738 [DEBUG][       Thread-257831][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 14:22:21,738 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 14:22:21,739 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 14:22:21,796 [DEBUG][       Thread-257831][   transport.py][1871] : userauth is OK
2025-06-13 14:22:21,796 [DEBUG][       Thread-257831][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 14:22:21,796 [DEBUG][       Thread-257831][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 14:22:21,796 [DEBUG][       Thread-257831][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 14:22:21,796 [DEBUG][       Thread-257831][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 14:22:21,815 [ INFO][       Thread-257831][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 14:22:21,816 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 14:22:21,816 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 14:22:22,857 [DEBUG][       Thread-257831][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 14:22:22,857 [DEBUG][       Thread-257831][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 14:22:22,912 [DEBUG][       Thread-257831][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 14:22:22,912 [DEBUG][       Thread-257831][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 14:22:22,922 [DEBUG][       Thread-257831][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 14:22:22,931 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 14:22:22,931 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 14:22:22,940 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 14:22:22,950 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 14:22:22,950 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 14:22:22,951 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 14:22:22,958 [DEBUG][       Thread-257831][   transport.py][1871] : EOF in transport thread
2025-06-13 14:22:23,183 [DEBUG][Thread-257833 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:22:32,205 [DEBUG][Thread-257834 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:22:32,961 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 14:22:32,962 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 14:22:32,971 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 14:22:32,973 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 14:22:33,437 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 14, 22, 18), 17.11, 30.43, 0.0, 18.67, 13.91, 0, 0, 0, 2, 0, 0),)
2025-06-13 14:22:33,438 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 14:22:18
2025-06-13 14:22:33,518 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 14:22:33,523 [DEBUG][       Thread-257835][   transport.py][1871] : starting thread (client mode): 0x86392890
2025-06-13 14:22:33,523 [DEBUG][       Thread-257835][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 14:22:33,543 [DEBUG][       Thread-257835][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 14:22:33,543 [ INFO][       Thread-257835][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 14:22:33,546 [DEBUG][       Thread-257835][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 14:22:33,546 [DEBUG][       Thread-257835][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 14:22:33,547 [DEBUG][       Thread-257835][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 14:22:33,547 [DEBUG][       Thread-257835][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:22:33,547 [DEBUG][       Thread-257835][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:22:33,547 [DEBUG][       Thread-257835][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:22:33,547 [DEBUG][       Thread-257835][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:22:33,547 [DEBUG][       Thread-257835][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 14:22:33,547 [DEBUG][       Thread-257835][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 14:22:33,547 [DEBUG][       Thread-257835][   transport.py][1871] : client lang: <none>
2025-06-13 14:22:33,547 [DEBUG][       Thread-257835][   transport.py][1871] : server lang: <none>
2025-06-13 14:22:33,547 [DEBUG][       Thread-257835][   transport.py][1871] : kex follows: False
2025-06-13 14:22:33,547 [DEBUG][       Thread-257835][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 14:22:33,547 [DEBUG][       Thread-257835][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 14:22:33,547 [DEBUG][       Thread-257835][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 14:22:33,547 [DEBUG][       Thread-257835][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 14:22:33,547 [DEBUG][       Thread-257835][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 14:22:33,547 [DEBUG][       Thread-257835][   transport.py][1871] : Compression: none
2025-06-13 14:22:33,547 [DEBUG][       Thread-257835][   transport.py][1871] : === End of kex handshake ===
2025-06-13 14:22:33,563 [DEBUG][       Thread-257835][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 14:22:33,564 [DEBUG][       Thread-257835][   transport.py][1871] : Switch to new keys ...
2025-06-13 14:22:33,564 [DEBUG][       Thread-257835][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 14:22:33,565 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 14:22:33,565 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 14:22:33,566 [DEBUG][       Thread-257835][   transport.py][1871] : userauth is OK
2025-06-13 14:22:33,579 [ INFO][       Thread-257835][   transport.py][1871] : Authentication (password) successful!
2025-06-13 14:22:33,580 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 14:22:34,201 [DEBUG][       Thread-257835][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 14:22:34,201 [DEBUG][       Thread-257835][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 14:22:34,245 [DEBUG][       Thread-257835][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 14:22:34,245 [DEBUG][       Thread-257835][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 14:22:34,248 [DEBUG][       Thread-257835][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 14:22:34,262 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 14:22:34,262 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 14:22:34,264 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 14:22:34,266 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 14:22:34,271 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 14:22:34,273 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 14:22:34,273 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 14:22:34,274 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 14:22:34,274 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.515561 -999.00  +13.80  22.70     35   -1.10 1 1 1 1 1   887    0 13.50 -40.33 ----- 22.6 22.7 61.6 25.9 17.9 -31.1 16.9 -32.3 17.2 -31.9 18.5 -29.5
2025-06-13 14:22:34,274 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 14:22:34,274 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 14:22:34,274 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.515561
2025-06-13 14:22:34,275 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 14:22:34,275 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 14:22:34,275 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 14:22:34,275 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 14:22:34,275 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 14:22:34,276 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T14:22:18', tmtdew=17.11, humidity=30.43, cloud=0.0, wind=18.67, temperature=13.91, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T12:22:24.470', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 14:22:34,277 [DEBUG][       Thread-257835][   transport.py][1871] : EOF in transport thread
2025-06-13 14:22:34,370 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 14:22:34,382 [DEBUG][       Thread-257838][   transport.py][1871] : starting thread (client mode): 0x84204070
2025-06-13 14:22:34,382 [DEBUG][       Thread-257838][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 14:22:34,397 [DEBUG][       Thread-257838][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 14:22:34,397 [ INFO][       Thread-257838][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 14:22:34,408 [DEBUG][       Thread-257838][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 14:22:34,408 [DEBUG][       Thread-257838][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 14:22:34,409 [DEBUG][       Thread-257838][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 14:22:34,409 [DEBUG][       Thread-257838][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:22:34,409 [DEBUG][       Thread-257838][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:22:34,409 [DEBUG][       Thread-257838][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:22:34,409 [DEBUG][       Thread-257838][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:22:34,409 [DEBUG][       Thread-257838][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 14:22:34,409 [DEBUG][       Thread-257838][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 14:22:34,409 [DEBUG][       Thread-257838][   transport.py][1871] : client lang: <none>
2025-06-13 14:22:34,409 [DEBUG][       Thread-257838][   transport.py][1871] : server lang: <none>
2025-06-13 14:22:34,409 [DEBUG][       Thread-257838][   transport.py][1871] : kex follows: False
2025-06-13 14:22:34,409 [DEBUG][       Thread-257838][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 14:22:34,409 [DEBUG][       Thread-257838][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 14:22:34,409 [DEBUG][       Thread-257838][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 14:22:34,409 [DEBUG][       Thread-257838][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 14:22:34,409 [DEBUG][       Thread-257838][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 14:22:34,409 [DEBUG][       Thread-257838][   transport.py][1871] : Compression: none
2025-06-13 14:22:34,410 [DEBUG][       Thread-257838][   transport.py][1871] : === End of kex handshake ===
2025-06-13 14:22:34,467 [DEBUG][       Thread-257838][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 14:22:34,468 [DEBUG][       Thread-257838][   transport.py][1871] : Switch to new keys ...
2025-06-13 14:22:34,468 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 14:22:34,469 [DEBUG][       Thread-257838][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 14:22:34,469 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 14:22:34,525 [DEBUG][       Thread-257838][   transport.py][1871] : userauth is OK
2025-06-13 14:22:34,525 [DEBUG][       Thread-257838][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 14:22:34,525 [DEBUG][       Thread-257838][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 14:22:34,525 [DEBUG][       Thread-257838][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 14:22:34,525 [DEBUG][       Thread-257838][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 14:22:34,538 [DEBUG][Thread-257840 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:22:34,545 [ INFO][       Thread-257838][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 14:22:34,545 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 14:22:34,545 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 14:22:35,552 [DEBUG][       Thread-257838][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 14:22:35,552 [DEBUG][       Thread-257838][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 14:22:35,600 [DEBUG][       Thread-257838][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 14:22:35,600 [DEBUG][       Thread-257838][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 14:22:35,609 [DEBUG][       Thread-257838][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 14:22:35,613 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:22:35,615 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:22:35,619 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 14:22:35,619 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 14:22:35,627 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 14:22:35,636 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 14:22:35,636 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 14:22:35,637 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 14:22:35,645 [DEBUG][       Thread-257838][   transport.py][1871] : EOF in transport thread
2025-06-13 14:22:41,229 [DEBUG][Thread-257841 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:22:45,644 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 14:22:45,645 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 14:22:45,645 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 14:22:45,648 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 14:22:46,097 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 14, 22, 18), 17.11, 30.43, 0.0, 18.67, 13.91, 0, 0, 0, 2, 0, 0),)
2025-06-13 14:22:46,097 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 14:22:18
2025-06-13 14:22:46,178 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 14:22:46,182 [DEBUG][       Thread-257842][   transport.py][1871] : starting thread (client mode): 0x86392440
2025-06-13 14:22:46,182 [DEBUG][       Thread-257842][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 14:22:46,203 [DEBUG][       Thread-257842][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 14:22:46,203 [ INFO][       Thread-257842][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 14:22:46,206 [DEBUG][       Thread-257842][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 14:22:46,206 [DEBUG][       Thread-257842][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 14:22:46,206 [DEBUG][       Thread-257842][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 14:22:46,206 [DEBUG][       Thread-257842][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:22:46,206 [DEBUG][       Thread-257842][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:22:46,206 [DEBUG][       Thread-257842][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:22:46,206 [DEBUG][       Thread-257842][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:22:46,206 [DEBUG][       Thread-257842][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 14:22:46,206 [DEBUG][       Thread-257842][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 14:22:46,206 [DEBUG][       Thread-257842][   transport.py][1871] : client lang: <none>
2025-06-13 14:22:46,206 [DEBUG][       Thread-257842][   transport.py][1871] : server lang: <none>
2025-06-13 14:22:46,206 [DEBUG][       Thread-257842][   transport.py][1871] : kex follows: False
2025-06-13 14:22:46,206 [DEBUG][       Thread-257842][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 14:22:46,206 [DEBUG][       Thread-257842][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 14:22:46,206 [DEBUG][       Thread-257842][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 14:22:46,206 [DEBUG][       Thread-257842][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 14:22:46,207 [DEBUG][       Thread-257842][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 14:22:46,207 [DEBUG][       Thread-257842][   transport.py][1871] : Compression: none
2025-06-13 14:22:46,207 [DEBUG][       Thread-257842][   transport.py][1871] : === End of kex handshake ===
2025-06-13 14:22:46,224 [DEBUG][       Thread-257842][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 14:22:46,224 [DEBUG][       Thread-257842][   transport.py][1871] : Switch to new keys ...
2025-06-13 14:22:46,225 [DEBUG][       Thread-257842][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 14:22:46,225 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 14:22:46,225 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 14:22:46,227 [DEBUG][       Thread-257842][   transport.py][1871] : userauth is OK
2025-06-13 14:22:46,241 [ INFO][       Thread-257842][   transport.py][1871] : Authentication (password) successful!
2025-06-13 14:22:46,241 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 14:22:46,870 [DEBUG][       Thread-257842][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 14:22:46,870 [DEBUG][       Thread-257842][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 14:22:46,913 [DEBUG][       Thread-257842][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 14:22:46,913 [DEBUG][       Thread-257842][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 14:22:46,915 [DEBUG][       Thread-257842][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 14:22:46,926 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 14:22:46,926 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 14:22:46,927 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 14:22:46,928 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 14:22:46,931 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 14:22:46,932 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 14:22:46,932 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 14:22:46,932 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 14:22:46,932 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.515561 -999.00  +13.80  22.70     35   -1.10 1 1 1 1 1   887    0 13.50 -40.33 ----- 22.6 22.7 61.6 25.9 17.9 -31.1 16.9 -32.3 17.2 -31.9 18.5 -29.5
2025-06-13 14:22:46,932 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 14:22:46,932 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 14:22:46,932 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.515561
2025-06-13 14:22:46,932 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 14:22:46,932 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 14:22:46,932 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 14:22:46,932 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 14:22:46,933 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 14:22:46,933 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T14:22:18', tmtdew=17.11, humidity=30.43, cloud=0.0, wind=18.67, temperature=13.91, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T12:22:24.470', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 14:22:46,933 [DEBUG][       Thread-257842][   transport.py][1871] : EOF in transport thread
2025-06-13 14:22:47,029 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 14:22:47,040 [DEBUG][       Thread-257845][   transport.py][1871] : starting thread (client mode): 0x863c8520
2025-06-13 14:22:47,040 [DEBUG][       Thread-257845][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 14:22:47,056 [DEBUG][       Thread-257845][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 14:22:47,056 [ INFO][       Thread-257845][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 14:22:47,063 [DEBUG][       Thread-257845][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 14:22:47,063 [DEBUG][       Thread-257845][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 14:22:47,063 [DEBUG][       Thread-257845][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 14:22:47,063 [DEBUG][       Thread-257845][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:22:47,063 [DEBUG][       Thread-257845][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:22:47,063 [DEBUG][       Thread-257845][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:22:47,063 [DEBUG][       Thread-257845][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:22:47,063 [DEBUG][       Thread-257845][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 14:22:47,063 [DEBUG][       Thread-257845][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 14:22:47,063 [DEBUG][       Thread-257845][   transport.py][1871] : client lang: <none>
2025-06-13 14:22:47,063 [DEBUG][       Thread-257845][   transport.py][1871] : server lang: <none>
2025-06-13 14:22:47,063 [DEBUG][       Thread-257845][   transport.py][1871] : kex follows: False
2025-06-13 14:22:47,063 [DEBUG][       Thread-257845][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 14:22:47,063 [DEBUG][       Thread-257845][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 14:22:47,063 [DEBUG][       Thread-257845][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 14:22:47,064 [DEBUG][       Thread-257845][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 14:22:47,064 [DEBUG][       Thread-257845][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 14:22:47,064 [DEBUG][       Thread-257845][   transport.py][1871] : Compression: none
2025-06-13 14:22:47,064 [DEBUG][       Thread-257845][   transport.py][1871] : === End of kex handshake ===
2025-06-13 14:22:47,124 [DEBUG][       Thread-257845][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 14:22:47,125 [DEBUG][       Thread-257845][   transport.py][1871] : Switch to new keys ...
2025-06-13 14:22:47,125 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 14:22:47,126 [DEBUG][       Thread-257845][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 14:22:47,126 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 14:22:47,183 [DEBUG][       Thread-257845][   transport.py][1871] : userauth is OK
2025-06-13 14:22:47,183 [DEBUG][       Thread-257845][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 14:22:47,184 [DEBUG][       Thread-257845][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 14:22:47,184 [DEBUG][       Thread-257845][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 14:22:47,184 [DEBUG][       Thread-257845][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 14:22:47,202 [ INFO][       Thread-257845][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 14:22:47,202 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 14:22:47,203 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 14:22:48,215 [DEBUG][       Thread-257845][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 14:22:48,215 [DEBUG][       Thread-257845][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 14:22:48,263 [DEBUG][       Thread-257845][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 14:22:48,263 [DEBUG][       Thread-257845][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 14:22:48,272 [DEBUG][       Thread-257845][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 14:22:48,280 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 14:22:48,280 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 14:22:48,288 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 14:22:48,296 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 14:22:48,296 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 14:22:48,296 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 14:22:48,304 [DEBUG][       Thread-257845][   transport.py][1871] : EOF in transport thread
2025-06-13 14:22:50,264 [DEBUG][Thread-257847 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:22:58,306 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 14:22:58,307 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 14:22:58,307 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 14:22:58,310 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 14:22:58,764 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 14, 22, 50), 16.99, 30.67, 0.0, 17.75, 13.86, 0, 0, 0, 2, 0, 0),)
2025-06-13 14:22:58,764 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 14:22:50
2025-06-13 14:22:58,845 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 14:22:58,850 [DEBUG][       Thread-257848][   transport.py][1871] : starting thread (client mode): 0x86392d10
2025-06-13 14:22:58,850 [DEBUG][       Thread-257848][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 14:22:58,871 [DEBUG][       Thread-257848][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 14:22:58,871 [ INFO][       Thread-257848][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 14:22:58,874 [DEBUG][       Thread-257848][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 14:22:58,874 [DEBUG][       Thread-257848][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 14:22:58,874 [DEBUG][       Thread-257848][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 14:22:58,874 [DEBUG][       Thread-257848][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:22:58,874 [DEBUG][       Thread-257848][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:22:58,874 [DEBUG][       Thread-257848][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:22:58,874 [DEBUG][       Thread-257848][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:22:58,874 [DEBUG][       Thread-257848][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 14:22:58,874 [DEBUG][       Thread-257848][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 14:22:58,874 [DEBUG][       Thread-257848][   transport.py][1871] : client lang: <none>
2025-06-13 14:22:58,874 [DEBUG][       Thread-257848][   transport.py][1871] : server lang: <none>
2025-06-13 14:22:58,874 [DEBUG][       Thread-257848][   transport.py][1871] : kex follows: False
2025-06-13 14:22:58,874 [DEBUG][       Thread-257848][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 14:22:58,874 [DEBUG][       Thread-257848][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 14:22:58,874 [DEBUG][       Thread-257848][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 14:22:58,874 [DEBUG][       Thread-257848][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 14:22:58,875 [DEBUG][       Thread-257848][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 14:22:58,875 [DEBUG][       Thread-257848][   transport.py][1871] : Compression: none
2025-06-13 14:22:58,875 [DEBUG][       Thread-257848][   transport.py][1871] : === End of kex handshake ===
2025-06-13 14:22:58,891 [DEBUG][       Thread-257848][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 14:22:58,892 [DEBUG][       Thread-257848][   transport.py][1871] : Switch to new keys ...
2025-06-13 14:22:58,892 [DEBUG][       Thread-257848][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 14:22:58,893 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 14:22:58,893 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 14:22:58,894 [DEBUG][       Thread-257848][   transport.py][1871] : userauth is OK
2025-06-13 14:22:58,907 [ INFO][       Thread-257848][   transport.py][1871] : Authentication (password) successful!
2025-06-13 14:22:58,908 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 14:22:59,282 [DEBUG][Thread-257850 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:22:59,516 [DEBUG][       Thread-257848][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 14:22:59,516 [DEBUG][       Thread-257848][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 14:22:59,557 [DEBUG][       Thread-257848][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 14:22:59,557 [DEBUG][       Thread-257848][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 14:22:59,560 [DEBUG][       Thread-257848][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 14:22:59,574 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 14:22:59,574 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 14:22:59,575 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 14:22:59,576 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 14:22:59,581 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 14:22:59,583 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 14:22:59,583 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 14:22:59,584 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 14:22:59,584 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.515561 -999.00  +13.80  22.70     35   -1.10 1 1 1 1 1   887    0 13.50 -40.33 ----- 22.6 22.7 61.6 25.9 17.9 -31.1 16.9 -32.3 17.2 -31.9 18.5 -29.5
2025-06-13 14:22:59,584 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 14:22:59,584 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 14:22:59,584 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.515561
2025-06-13 14:22:59,584 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 14:22:59,585 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 14:22:59,585 [DEBUG][       Thread-257848][   transport.py][1871] : EOF in transport thread
2025-06-13 14:22:59,585 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 14:22:59,585 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 14:22:59,585 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 14:22:59,585 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T14:22:50', tmtdew=16.99, humidity=30.67, cloud=0.0, wind=17.75, temperature=13.86, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T12:22:24.470', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 14:22:59,661 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 14:22:59,673 [DEBUG][       Thread-257852][   transport.py][1871] : starting thread (client mode): 0x863513f0
2025-06-13 14:22:59,673 [DEBUG][       Thread-257852][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 14:22:59,687 [DEBUG][       Thread-257852][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 14:22:59,688 [ INFO][       Thread-257852][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 14:22:59,695 [DEBUG][       Thread-257852][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 14:22:59,695 [DEBUG][       Thread-257852][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 14:22:59,695 [DEBUG][       Thread-257852][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 14:22:59,695 [DEBUG][       Thread-257852][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:22:59,695 [DEBUG][       Thread-257852][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:22:59,695 [DEBUG][       Thread-257852][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:22:59,695 [DEBUG][       Thread-257852][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:22:59,695 [DEBUG][       Thread-257852][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 14:22:59,696 [DEBUG][       Thread-257852][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 14:22:59,696 [DEBUG][       Thread-257852][   transport.py][1871] : client lang: <none>
2025-06-13 14:22:59,696 [DEBUG][       Thread-257852][   transport.py][1871] : server lang: <none>
2025-06-13 14:22:59,696 [DEBUG][       Thread-257852][   transport.py][1871] : kex follows: False
2025-06-13 14:22:59,696 [DEBUG][       Thread-257852][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 14:22:59,696 [DEBUG][       Thread-257852][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 14:22:59,696 [DEBUG][       Thread-257852][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 14:22:59,696 [DEBUG][       Thread-257852][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 14:22:59,696 [DEBUG][       Thread-257852][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 14:22:59,696 [DEBUG][       Thread-257852][   transport.py][1871] : Compression: none
2025-06-13 14:22:59,696 [DEBUG][       Thread-257852][   transport.py][1871] : === End of kex handshake ===
2025-06-13 14:22:59,751 [DEBUG][       Thread-257852][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 14:22:59,751 [DEBUG][       Thread-257852][   transport.py][1871] : Switch to new keys ...
2025-06-13 14:22:59,752 [DEBUG][       Thread-257852][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 14:22:59,752 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 14:22:59,753 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 14:22:59,813 [DEBUG][       Thread-257852][   transport.py][1871] : userauth is OK
2025-06-13 14:22:59,813 [DEBUG][       Thread-257852][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 14:22:59,813 [DEBUG][       Thread-257852][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 14:22:59,813 [DEBUG][       Thread-257852][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 14:22:59,813 [DEBUG][       Thread-257852][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 14:22:59,835 [ INFO][       Thread-257852][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 14:22:59,835 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 14:22:59,836 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 14:23:00,170 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:23:00,171 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:23:00,844 [DEBUG][       Thread-257852][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 14:23:00,845 [DEBUG][       Thread-257852][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 14:23:00,895 [DEBUG][       Thread-257852][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 14:23:00,896 [DEBUG][       Thread-257852][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 14:23:00,905 [DEBUG][       Thread-257852][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 14:23:00,914 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 14:23:00,914 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 14:23:00,924 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 14:23:00,933 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 14:23:00,933 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 14:23:00,934 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 14:23:00,942 [DEBUG][       Thread-257852][   transport.py][1871] : EOF in transport thread
2025-06-13 14:23:08,302 [DEBUG][Thread-257854 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:23:10,944 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 14:23:10,945 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 14:23:10,945 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 14:23:10,947 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 14:23:11,394 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 14, 22, 50), 16.99, 30.67, 0.0, 17.75, 13.86, 0, 0, 0, 2, 0, 0),)
2025-06-13 14:23:11,394 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 14:22:50
2025-06-13 14:23:11,475 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 14:23:11,482 [DEBUG][       Thread-257855][   transport.py][1871] : starting thread (client mode): 0x86369f60
2025-06-13 14:23:11,482 [DEBUG][       Thread-257855][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 14:23:11,499 [DEBUG][       Thread-257855][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 14:23:11,499 [ INFO][       Thread-257855][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 14:23:11,502 [DEBUG][       Thread-257855][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 14:23:11,502 [DEBUG][       Thread-257855][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 14:23:11,502 [DEBUG][       Thread-257855][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 14:23:11,502 [DEBUG][       Thread-257855][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:23:11,502 [DEBUG][       Thread-257855][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:23:11,502 [DEBUG][       Thread-257855][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:23:11,502 [DEBUG][       Thread-257855][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:23:11,502 [DEBUG][       Thread-257855][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 14:23:11,502 [DEBUG][       Thread-257855][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 14:23:11,502 [DEBUG][       Thread-257855][   transport.py][1871] : client lang: <none>
2025-06-13 14:23:11,502 [DEBUG][       Thread-257855][   transport.py][1871] : server lang: <none>
2025-06-13 14:23:11,502 [DEBUG][       Thread-257855][   transport.py][1871] : kex follows: False
2025-06-13 14:23:11,502 [DEBUG][       Thread-257855][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 14:23:11,502 [DEBUG][       Thread-257855][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 14:23:11,502 [DEBUG][       Thread-257855][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 14:23:11,502 [DEBUG][       Thread-257855][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 14:23:11,502 [DEBUG][       Thread-257855][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 14:23:11,502 [DEBUG][       Thread-257855][   transport.py][1871] : Compression: none
2025-06-13 14:23:11,502 [DEBUG][       Thread-257855][   transport.py][1871] : === End of kex handshake ===
2025-06-13 14:23:11,520 [DEBUG][       Thread-257855][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 14:23:11,520 [DEBUG][       Thread-257855][   transport.py][1871] : Switch to new keys ...
2025-06-13 14:23:11,521 [DEBUG][       Thread-257855][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 14:23:11,521 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 14:23:11,521 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 14:23:11,523 [DEBUG][       Thread-257855][   transport.py][1871] : userauth is OK
2025-06-13 14:23:11,548 [ INFO][       Thread-257855][   transport.py][1871] : Authentication (password) successful!
2025-06-13 14:23:11,548 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 14:23:12,190 [DEBUG][       Thread-257855][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 14:23:12,190 [DEBUG][       Thread-257855][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 14:23:12,233 [DEBUG][       Thread-257855][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 14:23:12,233 [DEBUG][       Thread-257855][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 14:23:12,236 [DEBUG][       Thread-257855][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 14:23:12,248 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 14:23:12,248 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 14:23:12,250 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 14:23:12,251 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 14:23:12,256 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 14:23:12,258 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 14:23:12,258 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 14:23:12,259 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 14:23:12,259 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.515909 -999.00  +13.80  21.07     36   -0.80 1 1 1 1 1   887    0 13.77 -39.08 ----- 22.6 21.1 37.2 27.0 17.9 -30.5 16.8 -32.1 17.4 -30.7 18.6 -28.7
2025-06-13 14:23:12,259 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 14:23:12,259 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 14:23:12,259 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.515909
2025-06-13 14:23:12,260 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 14:23:12,261 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 14:23:12,261 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 14:23:12,261 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 14:23:12,261 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 14:23:12,261 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T14:22:50', tmtdew=16.99, humidity=30.67, cloud=0.0, wind=17.75, temperature=13.86, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T12:22:54.538', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 14:23:12,261 [DEBUG][       Thread-257855][   transport.py][1871] : EOF in transport thread
2025-06-13 14:23:12,345 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 14:23:12,358 [DEBUG][       Thread-257858][   transport.py][1871] : starting thread (client mode): 0x867ff520
2025-06-13 14:23:12,358 [DEBUG][       Thread-257858][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 14:23:12,375 [DEBUG][       Thread-257858][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 14:23:12,375 [ INFO][       Thread-257858][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 14:23:12,384 [DEBUG][       Thread-257858][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 14:23:12,384 [DEBUG][       Thread-257858][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 14:23:12,384 [DEBUG][       Thread-257858][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 14:23:12,384 [DEBUG][       Thread-257858][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:23:12,384 [DEBUG][       Thread-257858][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:23:12,384 [DEBUG][       Thread-257858][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:23:12,384 [DEBUG][       Thread-257858][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:23:12,384 [DEBUG][       Thread-257858][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 14:23:12,384 [DEBUG][       Thread-257858][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 14:23:12,384 [DEBUG][       Thread-257858][   transport.py][1871] : client lang: <none>
2025-06-13 14:23:12,384 [DEBUG][       Thread-257858][   transport.py][1871] : server lang: <none>
2025-06-13 14:23:12,384 [DEBUG][       Thread-257858][   transport.py][1871] : kex follows: False
2025-06-13 14:23:12,385 [DEBUG][       Thread-257858][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 14:23:12,385 [DEBUG][       Thread-257858][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 14:23:12,385 [DEBUG][       Thread-257858][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 14:23:12,385 [DEBUG][       Thread-257858][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 14:23:12,385 [DEBUG][       Thread-257858][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 14:23:12,385 [DEBUG][       Thread-257858][   transport.py][1871] : Compression: none
2025-06-13 14:23:12,385 [DEBUG][       Thread-257858][   transport.py][1871] : === End of kex handshake ===
2025-06-13 14:23:12,439 [DEBUG][       Thread-257858][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 14:23:12,440 [DEBUG][       Thread-257858][   transport.py][1871] : Switch to new keys ...
2025-06-13 14:23:12,440 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 14:23:12,441 [DEBUG][       Thread-257858][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 14:23:12,442 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 14:23:12,498 [DEBUG][       Thread-257858][   transport.py][1871] : userauth is OK
2025-06-13 14:23:12,498 [DEBUG][       Thread-257858][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 14:23:12,499 [DEBUG][       Thread-257858][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 14:23:12,499 [DEBUG][       Thread-257858][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 14:23:12,499 [DEBUG][       Thread-257858][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 14:23:12,526 [ INFO][       Thread-257858][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 14:23:12,527 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 14:23:12,527 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 14:23:13,521 [DEBUG][       Thread-257858][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 14:23:13,521 [DEBUG][       Thread-257858][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 14:23:13,571 [DEBUG][       Thread-257858][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 14:23:13,572 [DEBUG][       Thread-257858][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 14:23:13,580 [DEBUG][       Thread-257858][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 14:23:13,589 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 14:23:13,589 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 14:23:13,597 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 14:23:13,606 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 14:23:13,606 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 14:23:13,607 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 14:23:13,614 [DEBUG][       Thread-257858][   transport.py][1871] : EOF in transport thread
2025-06-13 14:23:17,327 [DEBUG][Thread-257860 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:23:17,970 [DEBUG][Thread-257861 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:23:23,616 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 14:23:23,616 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 14:23:23,616 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 14:23:23,617 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 14:23:24,104 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 14, 22, 50), 16.99, 30.67, 0.0, 17.75, 13.86, 0, 0, 0, 2, 0, 0),)
2025-06-13 14:23:24,104 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 14:22:50
2025-06-13 14:23:24,191 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 14:23:24,195 [DEBUG][       Thread-257862][   transport.py][1871] : starting thread (client mode): 0x842048b0
2025-06-13 14:23:24,195 [DEBUG][       Thread-257862][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 14:23:24,214 [DEBUG][       Thread-257862][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 14:23:24,214 [ INFO][       Thread-257862][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 14:23:24,218 [DEBUG][       Thread-257862][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 14:23:24,218 [DEBUG][       Thread-257862][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 14:23:24,218 [DEBUG][       Thread-257862][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 14:23:24,218 [DEBUG][       Thread-257862][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:23:24,218 [DEBUG][       Thread-257862][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:23:24,218 [DEBUG][       Thread-257862][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:23:24,218 [DEBUG][       Thread-257862][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:23:24,218 [DEBUG][       Thread-257862][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 14:23:24,218 [DEBUG][       Thread-257862][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 14:23:24,218 [DEBUG][       Thread-257862][   transport.py][1871] : client lang: <none>
2025-06-13 14:23:24,218 [DEBUG][       Thread-257862][   transport.py][1871] : server lang: <none>
2025-06-13 14:23:24,218 [DEBUG][       Thread-257862][   transport.py][1871] : kex follows: False
2025-06-13 14:23:24,218 [DEBUG][       Thread-257862][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 14:23:24,218 [DEBUG][       Thread-257862][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 14:23:24,218 [DEBUG][       Thread-257862][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 14:23:24,218 [DEBUG][       Thread-257862][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 14:23:24,218 [DEBUG][       Thread-257862][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 14:23:24,218 [DEBUG][       Thread-257862][   transport.py][1871] : Compression: none
2025-06-13 14:23:24,218 [DEBUG][       Thread-257862][   transport.py][1871] : === End of kex handshake ===
2025-06-13 14:23:24,234 [DEBUG][       Thread-257862][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 14:23:24,234 [DEBUG][       Thread-257862][   transport.py][1871] : Switch to new keys ...
2025-06-13 14:23:24,234 [DEBUG][       Thread-257862][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 14:23:24,234 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 14:23:24,234 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 14:23:24,235 [DEBUG][       Thread-257862][   transport.py][1871] : userauth is OK
2025-06-13 14:23:24,247 [ INFO][       Thread-257862][   transport.py][1871] : Authentication (password) successful!
2025-06-13 14:23:24,248 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 14:23:24,879 [DEBUG][       Thread-257862][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 14:23:24,879 [DEBUG][       Thread-257862][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 14:23:24,921 [DEBUG][       Thread-257862][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 14:23:24,921 [DEBUG][       Thread-257862][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 14:23:24,924 [DEBUG][       Thread-257862][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 14:23:24,937 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 14:23:24,937 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 14:23:24,939 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 14:23:24,941 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 14:23:24,947 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 14:23:24,949 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 14:23:24,950 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 14:23:24,950 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 14:23:24,950 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.515909 -999.00  +13.80  21.07     36   -0.80 1 1 1 1 1   887    0 13.77 -39.08 ----- 22.6 21.1 37.2 27.0 17.9 -30.5 16.8 -32.1 17.4 -30.7 18.6 -28.7
2025-06-13 14:23:24,950 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 14:23:24,951 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 14:23:24,951 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.515909
2025-06-13 14:23:24,951 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 14:23:24,951 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 14:23:24,952 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 14:23:24,952 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 14:23:24,952 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 14:23:24,952 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T14:22:50', tmtdew=16.99, humidity=30.67, cloud=0.0, wind=17.75, temperature=13.86, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T12:22:54.538', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 14:23:24,953 [DEBUG][       Thread-257862][   transport.py][1871] : EOF in transport thread
2025-06-13 14:23:25,025 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 14:23:25,034 [DEBUG][       Thread-257865][   transport.py][1871] : starting thread (client mode): 0x863ee470
2025-06-13 14:23:25,034 [DEBUG][       Thread-257865][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 14:23:25,050 [DEBUG][       Thread-257865][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 14:23:25,050 [ INFO][       Thread-257865][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 14:23:25,058 [DEBUG][       Thread-257865][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 14:23:25,058 [DEBUG][       Thread-257865][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 14:23:25,058 [DEBUG][       Thread-257865][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 14:23:25,058 [DEBUG][       Thread-257865][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:23:25,058 [DEBUG][       Thread-257865][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:23:25,058 [DEBUG][       Thread-257865][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:23:25,058 [DEBUG][       Thread-257865][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:23:25,058 [DEBUG][       Thread-257865][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 14:23:25,058 [DEBUG][       Thread-257865][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 14:23:25,059 [DEBUG][       Thread-257865][   transport.py][1871] : client lang: <none>
2025-06-13 14:23:25,059 [DEBUG][       Thread-257865][   transport.py][1871] : server lang: <none>
2025-06-13 14:23:25,059 [DEBUG][       Thread-257865][   transport.py][1871] : kex follows: False
2025-06-13 14:23:25,059 [DEBUG][       Thread-257865][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 14:23:25,059 [DEBUG][       Thread-257865][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 14:23:25,059 [DEBUG][       Thread-257865][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 14:23:25,059 [DEBUG][       Thread-257865][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 14:23:25,059 [DEBUG][       Thread-257865][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 14:23:25,059 [DEBUG][       Thread-257865][   transport.py][1871] : Compression: none
2025-06-13 14:23:25,059 [DEBUG][       Thread-257865][   transport.py][1871] : === End of kex handshake ===
2025-06-13 14:23:25,116 [DEBUG][       Thread-257865][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 14:23:25,117 [DEBUG][       Thread-257865][   transport.py][1871] : Switch to new keys ...
2025-06-13 14:23:25,117 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 14:23:25,118 [DEBUG][       Thread-257865][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 14:23:25,119 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 14:23:25,172 [DEBUG][       Thread-257865][   transport.py][1871] : userauth is OK
2025-06-13 14:23:25,172 [DEBUG][       Thread-257865][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 14:23:25,172 [DEBUG][       Thread-257865][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 14:23:25,173 [DEBUG][       Thread-257865][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 14:23:25,173 [DEBUG][       Thread-257865][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 14:23:25,191 [ INFO][       Thread-257865][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 14:23:25,192 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 14:23:25,192 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 14:23:26,237 [DEBUG][       Thread-257865][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 14:23:26,237 [DEBUG][       Thread-257865][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 14:23:26,288 [DEBUG][       Thread-257865][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 14:23:26,288 [DEBUG][       Thread-257865][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 14:23:26,297 [DEBUG][       Thread-257865][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 14:23:26,310 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 14:23:26,310 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 14:23:26,320 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 14:23:26,328 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 14:23:26,328 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 14:23:26,328 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 14:23:26,336 [DEBUG][       Thread-257865][   transport.py][1871] : EOF in transport thread
2025-06-13 14:23:26,344 [DEBUG][Thread-257867 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:23:35,362 [DEBUG][Thread-257868 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:23:35,685 [DEBUG][Thread-257869 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:23:36,338 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 14:23:36,338 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 14:23:36,338 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 14:23:36,339 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 14:23:36,754 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:23:36,755 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:23:36,788 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 14, 23, 22), 17.02, 30.56, 0.0, 19.5, 13.93, 0, 0, 0, 2, 0, 0),)
2025-06-13 14:23:36,788 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 14:23:22
2025-06-13 14:23:36,869 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 14:23:36,876 [DEBUG][       Thread-257870][   transport.py][1871] : starting thread (client mode): 0x863bd600
2025-06-13 14:23:36,876 [DEBUG][       Thread-257870][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 14:23:36,895 [DEBUG][       Thread-257870][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 14:23:36,895 [ INFO][       Thread-257870][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 14:23:36,897 [DEBUG][       Thread-257870][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 14:23:36,897 [DEBUG][       Thread-257870][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 14:23:36,897 [DEBUG][       Thread-257870][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 14:23:36,897 [DEBUG][       Thread-257870][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:23:36,897 [DEBUG][       Thread-257870][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:23:36,897 [DEBUG][       Thread-257870][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:23:36,897 [DEBUG][       Thread-257870][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:23:36,897 [DEBUG][       Thread-257870][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 14:23:36,897 [DEBUG][       Thread-257870][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 14:23:36,897 [DEBUG][       Thread-257870][   transport.py][1871] : client lang: <none>
2025-06-13 14:23:36,897 [DEBUG][       Thread-257870][   transport.py][1871] : server lang: <none>
2025-06-13 14:23:36,897 [DEBUG][       Thread-257870][   transport.py][1871] : kex follows: False
2025-06-13 14:23:36,897 [DEBUG][       Thread-257870][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 14:23:36,897 [DEBUG][       Thread-257870][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 14:23:36,897 [DEBUG][       Thread-257870][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 14:23:36,897 [DEBUG][       Thread-257870][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 14:23:36,897 [DEBUG][       Thread-257870][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 14:23:36,897 [DEBUG][       Thread-257870][   transport.py][1871] : Compression: none
2025-06-13 14:23:36,897 [DEBUG][       Thread-257870][   transport.py][1871] : === End of kex handshake ===
2025-06-13 14:23:36,909 [DEBUG][       Thread-257870][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 14:23:36,909 [DEBUG][       Thread-257870][   transport.py][1871] : Switch to new keys ...
2025-06-13 14:23:36,910 [DEBUG][       Thread-257870][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 14:23:36,910 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 14:23:36,910 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 14:23:36,911 [DEBUG][       Thread-257870][   transport.py][1871] : userauth is OK
2025-06-13 14:23:36,924 [ INFO][       Thread-257870][   transport.py][1871] : Authentication (password) successful!
2025-06-13 14:23:36,925 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 14:23:37,601 [DEBUG][       Thread-257870][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 14:23:37,602 [DEBUG][       Thread-257870][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 14:23:37,645 [DEBUG][       Thread-257870][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 14:23:37,645 [DEBUG][       Thread-257870][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 14:23:37,649 [DEBUG][       Thread-257870][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 14:23:37,661 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 14:23:37,661 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 14:23:37,663 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 14:23:37,666 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 14:23:37,672 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 14:23:37,674 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 14:23:37,674 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 14:23:37,675 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 14:23:37,675 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.516256 -999.00  +13.50  23.16     35   -1.20 1 1 1 1 1   887    0 13.57 -35.72 ----- 21.4 23.2 54.8 31.7 17.9 -32.0 16.9 -32.8 17.2 -31.3 18.5 -29.2
2025-06-13 14:23:37,675 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 14:23:37,675 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 14:23:37,675 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.516256
2025-06-13 14:23:37,675 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 14:23:37,676 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 14:23:37,676 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 14:23:37,676 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 14:23:37,676 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 14:23:37,676 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T14:23:22', tmtdew=17.02, humidity=30.56, cloud=0.0, wind=19.5, temperature=13.93, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T12:23:24.518', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 14:23:37,677 [DEBUG][       Thread-257870][   transport.py][1871] : EOF in transport thread
2025-06-13 14:23:37,760 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 14:23:37,771 [DEBUG][       Thread-257873][   transport.py][1871] : starting thread (client mode): 0x86351c90
2025-06-13 14:23:37,771 [DEBUG][       Thread-257873][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 14:23:37,786 [DEBUG][       Thread-257873][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 14:23:37,786 [ INFO][       Thread-257873][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 14:23:37,794 [DEBUG][       Thread-257873][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 14:23:37,794 [DEBUG][       Thread-257873][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 14:23:37,794 [DEBUG][       Thread-257873][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 14:23:37,794 [DEBUG][       Thread-257873][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:23:37,794 [DEBUG][       Thread-257873][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:23:37,794 [DEBUG][       Thread-257873][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:23:37,794 [DEBUG][       Thread-257873][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:23:37,794 [DEBUG][       Thread-257873][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 14:23:37,794 [DEBUG][       Thread-257873][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 14:23:37,794 [DEBUG][       Thread-257873][   transport.py][1871] : client lang: <none>
2025-06-13 14:23:37,794 [DEBUG][       Thread-257873][   transport.py][1871] : server lang: <none>
2025-06-13 14:23:37,794 [DEBUG][       Thread-257873][   transport.py][1871] : kex follows: False
2025-06-13 14:23:37,794 [DEBUG][       Thread-257873][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 14:23:37,794 [DEBUG][       Thread-257873][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 14:23:37,794 [DEBUG][       Thread-257873][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 14:23:37,795 [DEBUG][       Thread-257873][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 14:23:37,795 [DEBUG][       Thread-257873][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 14:23:37,795 [DEBUG][       Thread-257873][   transport.py][1871] : Compression: none
2025-06-13 14:23:37,795 [DEBUG][       Thread-257873][   transport.py][1871] : === End of kex handshake ===
2025-06-13 14:23:37,851 [DEBUG][       Thread-257873][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 14:23:37,852 [DEBUG][       Thread-257873][   transport.py][1871] : Switch to new keys ...
2025-06-13 14:23:37,852 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 14:23:37,853 [DEBUG][       Thread-257873][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 14:23:37,854 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 14:23:37,908 [DEBUG][       Thread-257873][   transport.py][1871] : userauth is OK
2025-06-13 14:23:37,908 [DEBUG][       Thread-257873][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 14:23:37,908 [DEBUG][       Thread-257873][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 14:23:37,908 [DEBUG][       Thread-257873][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 14:23:37,909 [DEBUG][       Thread-257873][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 14:23:37,929 [ INFO][       Thread-257873][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 14:23:37,929 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 14:23:37,930 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 14:23:38,943 [DEBUG][       Thread-257873][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 14:23:38,943 [DEBUG][       Thread-257873][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 14:23:38,992 [DEBUG][       Thread-257873][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 14:23:38,992 [DEBUG][       Thread-257873][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 14:23:39,001 [DEBUG][       Thread-257873][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 14:23:39,010 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 14:23:39,011 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 14:23:39,020 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 14:23:39,029 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 14:23:39,029 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 14:23:39,029 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 14:23:39,037 [DEBUG][       Thread-257873][   transport.py][1871] : EOF in transport thread
2025-06-13 14:23:44,385 [DEBUG][Thread-257875 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:23:49,040 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 14:23:49,040 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 14:23:49,040 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 14:23:49,043 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 14:23:49,490 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 14, 23, 22), 17.02, 30.56, 0.0, 19.5, 13.93, 0, 0, 0, 2, 0, 0),)
2025-06-13 14:23:49,490 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 14:23:22
2025-06-13 14:23:49,571 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 14:23:49,576 [DEBUG][       Thread-257876][   transport.py][1871] : starting thread (client mode): 0x86368340
2025-06-13 14:23:49,576 [DEBUG][       Thread-257876][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 14:23:49,596 [DEBUG][       Thread-257876][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 14:23:49,596 [ INFO][       Thread-257876][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 14:23:49,599 [DEBUG][       Thread-257876][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 14:23:49,599 [DEBUG][       Thread-257876][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 14:23:49,599 [DEBUG][       Thread-257876][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 14:23:49,599 [DEBUG][       Thread-257876][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:23:49,599 [DEBUG][       Thread-257876][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:23:49,600 [DEBUG][       Thread-257876][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:23:49,600 [DEBUG][       Thread-257876][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:23:49,600 [DEBUG][       Thread-257876][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 14:23:49,600 [DEBUG][       Thread-257876][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 14:23:49,600 [DEBUG][       Thread-257876][   transport.py][1871] : client lang: <none>
2025-06-13 14:23:49,600 [DEBUG][       Thread-257876][   transport.py][1871] : server lang: <none>
2025-06-13 14:23:49,600 [DEBUG][       Thread-257876][   transport.py][1871] : kex follows: False
2025-06-13 14:23:49,600 [DEBUG][       Thread-257876][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 14:23:49,600 [DEBUG][       Thread-257876][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 14:23:49,600 [DEBUG][       Thread-257876][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 14:23:49,600 [DEBUG][       Thread-257876][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 14:23:49,600 [DEBUG][       Thread-257876][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 14:23:49,600 [DEBUG][       Thread-257876][   transport.py][1871] : Compression: none
2025-06-13 14:23:49,600 [DEBUG][       Thread-257876][   transport.py][1871] : === End of kex handshake ===
2025-06-13 14:23:49,617 [DEBUG][       Thread-257876][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 14:23:49,618 [DEBUG][       Thread-257876][   transport.py][1871] : Switch to new keys ...
2025-06-13 14:23:49,618 [DEBUG][       Thread-257876][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 14:23:49,619 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 14:23:49,619 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 14:23:49,620 [DEBUG][       Thread-257876][   transport.py][1871] : userauth is OK
2025-06-13 14:23:49,634 [ INFO][       Thread-257876][   transport.py][1871] : Authentication (password) successful!
2025-06-13 14:23:49,634 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 14:23:50,258 [DEBUG][       Thread-257876][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 14:23:50,259 [DEBUG][       Thread-257876][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 14:23:50,301 [DEBUG][       Thread-257876][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 14:23:50,301 [DEBUG][       Thread-257876][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 14:23:50,305 [DEBUG][       Thread-257876][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 14:23:50,319 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 14:23:50,319 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 14:23:50,321 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 14:23:50,323 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 14:23:50,329 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 14:23:50,331 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 14:23:50,331 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 14:23:50,332 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 14:23:50,332 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.516256 -999.00  +13.50  23.16     35   -1.20 1 1 1 1 1   887    0 13.57 -35.72 ----- 21.4 23.2 54.8 31.7 17.9 -32.0 16.9 -32.8 17.2 -31.3 18.5 -29.2
2025-06-13 14:23:50,332 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 14:23:50,332 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 14:23:50,332 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.516256
2025-06-13 14:23:50,333 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 14:23:50,333 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 14:23:50,333 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 14:23:50,333 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 14:23:50,334 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 14:23:50,334 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T14:23:22', tmtdew=17.02, humidity=30.56, cloud=0.0, wind=19.5, temperature=13.93, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T12:23:24.518', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 14:23:50,335 [DEBUG][       Thread-257876][   transport.py][1871] : EOF in transport thread
2025-06-13 14:23:50,417 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 14:23:50,426 [DEBUG][       Thread-257879][   transport.py][1871] : starting thread (client mode): 0x863eeb60
2025-06-13 14:23:50,426 [DEBUG][       Thread-257879][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 14:23:50,443 [DEBUG][       Thread-257879][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 14:23:50,443 [ INFO][       Thread-257879][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 14:23:50,450 [DEBUG][       Thread-257879][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 14:23:50,450 [DEBUG][       Thread-257879][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 14:23:50,450 [DEBUG][       Thread-257879][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 14:23:50,450 [DEBUG][       Thread-257879][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:23:50,450 [DEBUG][       Thread-257879][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:23:50,450 [DEBUG][       Thread-257879][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:23:50,450 [DEBUG][       Thread-257879][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:23:50,450 [DEBUG][       Thread-257879][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 14:23:50,450 [DEBUG][       Thread-257879][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 14:23:50,450 [DEBUG][       Thread-257879][   transport.py][1871] : client lang: <none>
2025-06-13 14:23:50,451 [DEBUG][       Thread-257879][   transport.py][1871] : server lang: <none>
2025-06-13 14:23:50,451 [DEBUG][       Thread-257879][   transport.py][1871] : kex follows: False
2025-06-13 14:23:50,451 [DEBUG][       Thread-257879][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 14:23:50,451 [DEBUG][       Thread-257879][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 14:23:50,451 [DEBUG][       Thread-257879][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 14:23:50,451 [DEBUG][       Thread-257879][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 14:23:50,451 [DEBUG][       Thread-257879][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 14:23:50,451 [DEBUG][       Thread-257879][   transport.py][1871] : Compression: none
2025-06-13 14:23:50,451 [DEBUG][       Thread-257879][   transport.py][1871] : === End of kex handshake ===
2025-06-13 14:23:50,512 [DEBUG][       Thread-257879][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 14:23:50,513 [DEBUG][       Thread-257879][   transport.py][1871] : Switch to new keys ...
2025-06-13 14:23:50,513 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 14:23:50,514 [DEBUG][       Thread-257879][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 14:23:50,514 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 14:23:50,577 [DEBUG][       Thread-257879][   transport.py][1871] : userauth is OK
2025-06-13 14:23:50,577 [DEBUG][       Thread-257879][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 14:23:50,577 [DEBUG][       Thread-257879][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 14:23:50,578 [DEBUG][       Thread-257879][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 14:23:50,578 [DEBUG][       Thread-257879][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 14:23:50,598 [ INFO][       Thread-257879][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 14:23:50,599 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 14:23:50,599 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 14:23:51,641 [DEBUG][       Thread-257879][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 14:23:51,641 [DEBUG][       Thread-257879][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 14:23:51,692 [DEBUG][       Thread-257879][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 14:23:51,692 [DEBUG][       Thread-257879][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 14:23:51,704 [DEBUG][       Thread-257879][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 14:23:51,718 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 14:23:51,718 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 14:23:51,730 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 14:23:51,740 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 14:23:51,740 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 14:23:51,741 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 14:23:51,753 [DEBUG][       Thread-257879][   transport.py][1871] : EOF in transport thread
2025-06-13 14:23:53,421 [DEBUG][Thread-257881 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:24:00,308 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:24:00,310 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:24:01,751 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 14:24:01,752 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 14:24:01,752 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 14:24:01,755 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 14:24:02,214 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 14, 23, 54), 16.92, 30.81, 0.0, 20.82, 13.99, 0, 0, 0, 2, 0, 0),)
2025-06-13 14:24:02,214 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 14:23:54
2025-06-13 14:24:02,296 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 14:24:02,303 [DEBUG][       Thread-257882][   transport.py][1871] : starting thread (client mode): 0x863528f0
2025-06-13 14:24:02,303 [DEBUG][       Thread-257882][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 14:24:02,324 [DEBUG][       Thread-257882][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 14:24:02,324 [ INFO][       Thread-257882][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 14:24:02,328 [DEBUG][       Thread-257882][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 14:24:02,328 [DEBUG][       Thread-257882][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 14:24:02,328 [DEBUG][       Thread-257882][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 14:24:02,328 [DEBUG][       Thread-257882][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:24:02,328 [DEBUG][       Thread-257882][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:24:02,328 [DEBUG][       Thread-257882][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:24:02,328 [DEBUG][       Thread-257882][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:24:02,328 [DEBUG][       Thread-257882][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 14:24:02,328 [DEBUG][       Thread-257882][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 14:24:02,328 [DEBUG][       Thread-257882][   transport.py][1871] : client lang: <none>
2025-06-13 14:24:02,328 [DEBUG][       Thread-257882][   transport.py][1871] : server lang: <none>
2025-06-13 14:24:02,328 [DEBUG][       Thread-257882][   transport.py][1871] : kex follows: False
2025-06-13 14:24:02,328 [DEBUG][       Thread-257882][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 14:24:02,329 [DEBUG][       Thread-257882][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 14:24:02,329 [DEBUG][       Thread-257882][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 14:24:02,329 [DEBUG][       Thread-257882][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 14:24:02,329 [DEBUG][       Thread-257882][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 14:24:02,329 [DEBUG][       Thread-257882][   transport.py][1871] : Compression: none
2025-06-13 14:24:02,329 [DEBUG][       Thread-257882][   transport.py][1871] : === End of kex handshake ===
2025-06-13 14:24:02,346 [DEBUG][       Thread-257882][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 14:24:02,346 [DEBUG][       Thread-257882][   transport.py][1871] : Switch to new keys ...
2025-06-13 14:24:02,347 [DEBUG][       Thread-257882][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 14:24:02,347 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 14:24:02,347 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 14:24:02,349 [DEBUG][       Thread-257882][   transport.py][1871] : userauth is OK
2025-06-13 14:24:02,373 [ INFO][       Thread-257882][   transport.py][1871] : Authentication (password) successful!
2025-06-13 14:24:02,374 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 14:24:02,442 [DEBUG][Thread-257884 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:24:03,000 [DEBUG][       Thread-257882][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 14:24:03,000 [DEBUG][       Thread-257882][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 14:24:03,041 [DEBUG][       Thread-257882][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 14:24:03,041 [DEBUG][       Thread-257882][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 14:24:03,044 [DEBUG][       Thread-257882][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 14:24:03,056 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 14:24:03,056 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 14:24:03,058 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 14:24:03,060 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 14:24:03,066 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 14:24:03,068 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 14:24:03,069 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 14:24:03,069 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 14:24:03,069 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.516256 -999.00  +13.50  23.16     35   -1.20 1 1 1 1 1   887    0 13.57 -35.72 ----- 21.4 23.2 54.8 31.7 17.9 -32.0 16.9 -32.8 17.2 -31.3 18.5 -29.2
2025-06-13 14:24:03,070 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 14:24:03,070 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 14:24:03,070 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.516256
2025-06-13 14:24:03,070 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 14:24:03,071 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 14:24:03,071 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 14:24:03,071 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 14:24:03,071 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 14:24:03,071 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T14:23:54', tmtdew=16.92, humidity=30.81, cloud=0.0, wind=20.82, temperature=13.99, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T12:23:24.518', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 14:24:03,071 [DEBUG][       Thread-257882][   transport.py][1871] : EOF in transport thread
2025-06-13 14:24:03,155 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 14:24:03,167 [DEBUG][       Thread-257886][   transport.py][1871] : starting thread (client mode): 0x863ed210
2025-06-13 14:24:03,167 [DEBUG][       Thread-257886][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 14:24:03,182 [DEBUG][       Thread-257886][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 14:24:03,182 [ INFO][       Thread-257886][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 14:24:03,190 [DEBUG][       Thread-257886][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 14:24:03,190 [DEBUG][       Thread-257886][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 14:24:03,190 [DEBUG][       Thread-257886][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 14:24:03,190 [DEBUG][       Thread-257886][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:24:03,190 [DEBUG][       Thread-257886][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:24:03,190 [DEBUG][       Thread-257886][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:24:03,190 [DEBUG][       Thread-257886][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:24:03,190 [DEBUG][       Thread-257886][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 14:24:03,190 [DEBUG][       Thread-257886][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 14:24:03,190 [DEBUG][       Thread-257886][   transport.py][1871] : client lang: <none>
2025-06-13 14:24:03,190 [DEBUG][       Thread-257886][   transport.py][1871] : server lang: <none>
2025-06-13 14:24:03,190 [DEBUG][       Thread-257886][   transport.py][1871] : kex follows: False
2025-06-13 14:24:03,190 [DEBUG][       Thread-257886][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 14:24:03,190 [DEBUG][       Thread-257886][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 14:24:03,190 [DEBUG][       Thread-257886][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 14:24:03,190 [DEBUG][       Thread-257886][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 14:24:03,190 [DEBUG][       Thread-257886][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 14:24:03,191 [DEBUG][       Thread-257886][   transport.py][1871] : Compression: none
2025-06-13 14:24:03,191 [DEBUG][       Thread-257886][   transport.py][1871] : === End of kex handshake ===
2025-06-13 14:24:03,248 [DEBUG][       Thread-257886][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 14:24:03,249 [DEBUG][       Thread-257886][   transport.py][1871] : Switch to new keys ...
2025-06-13 14:24:03,250 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 14:24:03,250 [DEBUG][       Thread-257886][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 14:24:03,251 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 14:24:03,304 [DEBUG][       Thread-257886][   transport.py][1871] : userauth is OK
2025-06-13 14:24:03,304 [DEBUG][       Thread-257886][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 14:24:03,304 [DEBUG][       Thread-257886][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 14:24:03,304 [DEBUG][       Thread-257886][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 14:24:03,304 [DEBUG][       Thread-257886][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 14:24:03,329 [ INFO][       Thread-257886][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 14:24:03,330 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 14:24:03,330 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 14:24:04,426 [DEBUG][       Thread-257886][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 14:24:04,426 [DEBUG][       Thread-257886][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 14:24:04,476 [DEBUG][       Thread-257886][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 14:24:04,476 [DEBUG][       Thread-257886][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 14:24:04,485 [DEBUG][       Thread-257886][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 14:24:04,495 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 14:24:04,495 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 14:24:04,504 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 14:24:04,513 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 14:24:04,513 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 14:24:04,513 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 14:24:04,522 [DEBUG][       Thread-257886][   transport.py][1871] : EOF in transport thread
2025-06-13 14:24:11,463 [DEBUG][Thread-257888 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:24:14,524 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 14:24:14,524 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 14:24:14,524 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 14:24:14,527 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 14:24:14,979 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 14, 23, 54), 16.92, 30.81, 0.0, 20.82, 13.99, 0, 0, 0, 2, 0, 0),)
2025-06-13 14:24:14,980 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 14:23:54
2025-06-13 14:24:15,061 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 14:24:15,068 [DEBUG][       Thread-257889][   transport.py][1871] : starting thread (client mode): 0x86391120
2025-06-13 14:24:15,068 [DEBUG][       Thread-257889][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 14:24:15,089 [DEBUG][       Thread-257889][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 14:24:15,089 [ INFO][       Thread-257889][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 14:24:15,090 [DEBUG][       Thread-257889][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 14:24:15,090 [DEBUG][       Thread-257889][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 14:24:15,091 [DEBUG][       Thread-257889][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 14:24:15,091 [DEBUG][       Thread-257889][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:24:15,091 [DEBUG][       Thread-257889][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:24:15,091 [DEBUG][       Thread-257889][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:24:15,091 [DEBUG][       Thread-257889][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:24:15,091 [DEBUG][       Thread-257889][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 14:24:15,091 [DEBUG][       Thread-257889][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 14:24:15,091 [DEBUG][       Thread-257889][   transport.py][1871] : client lang: <none>
2025-06-13 14:24:15,091 [DEBUG][       Thread-257889][   transport.py][1871] : server lang: <none>
2025-06-13 14:24:15,091 [DEBUG][       Thread-257889][   transport.py][1871] : kex follows: False
2025-06-13 14:24:15,091 [DEBUG][       Thread-257889][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 14:24:15,091 [DEBUG][       Thread-257889][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 14:24:15,091 [DEBUG][       Thread-257889][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 14:24:15,091 [DEBUG][       Thread-257889][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 14:24:15,091 [DEBUG][       Thread-257889][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 14:24:15,091 [DEBUG][       Thread-257889][   transport.py][1871] : Compression: none
2025-06-13 14:24:15,091 [DEBUG][       Thread-257889][   transport.py][1871] : === End of kex handshake ===
2025-06-13 14:24:15,099 [DEBUG][       Thread-257889][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 14:24:15,100 [DEBUG][       Thread-257889][   transport.py][1871] : Switch to new keys ...
2025-06-13 14:24:15,100 [DEBUG][       Thread-257889][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 14:24:15,101 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 14:24:15,101 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 14:24:15,102 [DEBUG][       Thread-257889][   transport.py][1871] : userauth is OK
2025-06-13 14:24:15,116 [ INFO][       Thread-257889][   transport.py][1871] : Authentication (password) successful!
2025-06-13 14:24:15,117 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 14:24:15,712 [DEBUG][       Thread-257889][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 14:24:15,713 [DEBUG][       Thread-257889][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 14:24:15,757 [DEBUG][       Thread-257889][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 14:24:15,757 [DEBUG][       Thread-257889][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 14:24:15,760 [DEBUG][       Thread-257889][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 14:24:15,774 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 14:24:15,774 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 14:24:15,776 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 14:24:15,778 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 14:24:15,783 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 14:24:15,785 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 14:24:15,785 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 14:24:15,786 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 14:24:15,786 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.516603 -999.00  +13.50  28.43     36   -1.00 1 1 1 1 1   887    0 13.39 -37.14 ----- 23.8 28.4 49.8 30.5 17.8 -31.1 16.7 -32.4 17.1 -31.5 18.5 -29.0
2025-06-13 14:24:15,786 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 14:24:15,786 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 14:24:15,786 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.516603
2025-06-13 14:24:15,787 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 14:24:15,787 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 14:24:15,787 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 14:24:15,788 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 14:24:15,788 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 14:24:15,788 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T14:23:54', tmtdew=16.92, humidity=30.81, cloud=0.0, wind=20.82, temperature=13.99, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T12:23:54.499', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 14:24:15,789 [DEBUG][       Thread-257889][   transport.py][1871] : EOF in transport thread
2025-06-13 14:24:15,871 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 14:24:15,883 [DEBUG][       Thread-257892][   transport.py][1871] : starting thread (client mode): 0x863cb460
2025-06-13 14:24:15,883 [DEBUG][       Thread-257892][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 14:24:15,898 [DEBUG][       Thread-257892][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 14:24:15,898 [ INFO][       Thread-257892][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 14:24:15,906 [DEBUG][       Thread-257892][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 14:24:15,906 [DEBUG][       Thread-257892][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 14:24:15,906 [DEBUG][       Thread-257892][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 14:24:15,906 [DEBUG][       Thread-257892][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:24:15,906 [DEBUG][       Thread-257892][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:24:15,906 [DEBUG][       Thread-257892][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:24:15,906 [DEBUG][       Thread-257892][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:24:15,906 [DEBUG][       Thread-257892][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 14:24:15,906 [DEBUG][       Thread-257892][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 14:24:15,906 [DEBUG][       Thread-257892][   transport.py][1871] : client lang: <none>
2025-06-13 14:24:15,906 [DEBUG][       Thread-257892][   transport.py][1871] : server lang: <none>
2025-06-13 14:24:15,906 [DEBUG][       Thread-257892][   transport.py][1871] : kex follows: False
2025-06-13 14:24:15,906 [DEBUG][       Thread-257892][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 14:24:15,906 [DEBUG][       Thread-257892][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 14:24:15,907 [DEBUG][       Thread-257892][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 14:24:15,907 [DEBUG][       Thread-257892][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 14:24:15,907 [DEBUG][       Thread-257892][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 14:24:15,907 [DEBUG][       Thread-257892][   transport.py][1871] : Compression: none
2025-06-13 14:24:15,907 [DEBUG][       Thread-257892][   transport.py][1871] : === End of kex handshake ===
2025-06-13 14:24:15,964 [DEBUG][       Thread-257892][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 14:24:15,965 [DEBUG][       Thread-257892][   transport.py][1871] : Switch to new keys ...
2025-06-13 14:24:15,965 [DEBUG][       Thread-257892][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 14:24:15,965 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 14:24:15,966 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 14:24:16,019 [DEBUG][       Thread-257892][   transport.py][1871] : userauth is OK
2025-06-13 14:24:16,020 [DEBUG][       Thread-257892][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 14:24:16,020 [DEBUG][       Thread-257892][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 14:24:16,020 [DEBUG][       Thread-257892][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 14:24:16,020 [DEBUG][       Thread-257892][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 14:24:16,039 [ INFO][       Thread-257892][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 14:24:16,039 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 14:24:16,040 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 14:24:17,044 [DEBUG][       Thread-257892][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 14:24:17,044 [DEBUG][       Thread-257892][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 14:24:17,092 [DEBUG][       Thread-257892][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 14:24:17,092 [DEBUG][       Thread-257892][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 14:24:17,105 [DEBUG][       Thread-257892][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 14:24:17,114 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 14:24:17,114 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 14:24:17,125 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 14:24:17,135 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 14:24:17,135 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 14:24:17,136 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 14:24:17,144 [DEBUG][       Thread-257892][   transport.py][1871] : EOF in transport thread
2025-06-13 14:24:18,015 [DEBUG][Thread-257894 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:24:20,499 [DEBUG][Thread-257895 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:24:27,144 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 14:24:27,144 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 14:24:27,144 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 14:24:27,145 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 14:24:27,633 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 14, 23, 54), 16.92, 30.81, 0.0, 20.82, 13.99, 0, 0, 0, 2, 0, 0),)
2025-06-13 14:24:27,633 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 14:23:54
2025-06-13 14:24:27,720 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 14:24:27,724 [DEBUG][       Thread-257896][   transport.py][1871] : starting thread (client mode): 0x86390910
2025-06-13 14:24:27,724 [DEBUG][       Thread-257896][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 14:24:27,746 [DEBUG][       Thread-257896][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 14:24:27,746 [ INFO][       Thread-257896][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 14:24:27,750 [DEBUG][       Thread-257896][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 14:24:27,750 [DEBUG][       Thread-257896][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 14:24:27,750 [DEBUG][       Thread-257896][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 14:24:27,750 [DEBUG][       Thread-257896][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:24:27,750 [DEBUG][       Thread-257896][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:24:27,750 [DEBUG][       Thread-257896][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:24:27,750 [DEBUG][       Thread-257896][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:24:27,750 [DEBUG][       Thread-257896][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 14:24:27,750 [DEBUG][       Thread-257896][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 14:24:27,750 [DEBUG][       Thread-257896][   transport.py][1871] : client lang: <none>
2025-06-13 14:24:27,750 [DEBUG][       Thread-257896][   transport.py][1871] : server lang: <none>
2025-06-13 14:24:27,750 [DEBUG][       Thread-257896][   transport.py][1871] : kex follows: False
2025-06-13 14:24:27,750 [DEBUG][       Thread-257896][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 14:24:27,750 [DEBUG][       Thread-257896][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 14:24:27,750 [DEBUG][       Thread-257896][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 14:24:27,750 [DEBUG][       Thread-257896][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 14:24:27,750 [DEBUG][       Thread-257896][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 14:24:27,750 [DEBUG][       Thread-257896][   transport.py][1871] : Compression: none
2025-06-13 14:24:27,750 [DEBUG][       Thread-257896][   transport.py][1871] : === End of kex handshake ===
2025-06-13 14:24:27,764 [DEBUG][       Thread-257896][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 14:24:27,764 [DEBUG][       Thread-257896][   transport.py][1871] : Switch to new keys ...
2025-06-13 14:24:27,765 [DEBUG][       Thread-257896][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 14:24:27,765 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 14:24:27,765 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 14:24:27,765 [DEBUG][       Thread-257896][   transport.py][1871] : userauth is OK
2025-06-13 14:24:27,778 [ INFO][       Thread-257896][   transport.py][1871] : Authentication (password) successful!
2025-06-13 14:24:27,778 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 14:24:28,417 [DEBUG][       Thread-257896][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 14:24:28,417 [DEBUG][       Thread-257896][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 14:24:28,461 [DEBUG][       Thread-257896][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 14:24:28,461 [DEBUG][       Thread-257896][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 14:24:28,465 [DEBUG][       Thread-257896][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 14:24:28,477 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 14:24:28,477 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 14:24:28,479 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 14:24:28,481 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 14:24:28,487 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 14:24:28,489 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 14:24:28,490 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 14:24:28,490 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 14:24:28,490 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.516603 -999.00  +13.50  28.43     36   -1.00 1 1 1 1 1   887    0 13.39 -37.14 ----- 23.8 28.4 49.8 30.5 17.8 -31.1 16.7 -32.4 17.1 -31.5 18.5 -29.0
2025-06-13 14:24:28,490 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 14:24:28,490 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 14:24:28,491 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.516603
2025-06-13 14:24:28,491 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 14:24:28,491 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 14:24:28,492 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 14:24:28,492 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 14:24:28,492 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 14:24:28,492 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T14:23:54', tmtdew=16.92, humidity=30.81, cloud=0.0, wind=20.82, temperature=13.99, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T12:23:54.499', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 14:24:28,493 [DEBUG][       Thread-257896][   transport.py][1871] : EOF in transport thread
2025-06-13 14:24:28,576 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 14:24:28,588 [DEBUG][       Thread-257899][   transport.py][1871] : starting thread (client mode): 0x863ca6e0
2025-06-13 14:24:28,588 [DEBUG][       Thread-257899][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 14:24:28,603 [DEBUG][       Thread-257899][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 14:24:28,603 [ INFO][       Thread-257899][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 14:24:28,610 [DEBUG][       Thread-257899][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 14:24:28,611 [DEBUG][       Thread-257899][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 14:24:28,611 [DEBUG][       Thread-257899][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 14:24:28,611 [DEBUG][       Thread-257899][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:24:28,611 [DEBUG][       Thread-257899][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:24:28,611 [DEBUG][       Thread-257899][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:24:28,611 [DEBUG][       Thread-257899][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:24:28,611 [DEBUG][       Thread-257899][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 14:24:28,611 [DEBUG][       Thread-257899][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 14:24:28,611 [DEBUG][       Thread-257899][   transport.py][1871] : client lang: <none>
2025-06-13 14:24:28,611 [DEBUG][       Thread-257899][   transport.py][1871] : server lang: <none>
2025-06-13 14:24:28,611 [DEBUG][       Thread-257899][   transport.py][1871] : kex follows: False
2025-06-13 14:24:28,611 [DEBUG][       Thread-257899][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 14:24:28,611 [DEBUG][       Thread-257899][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 14:24:28,611 [DEBUG][       Thread-257899][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 14:24:28,611 [DEBUG][       Thread-257899][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 14:24:28,611 [DEBUG][       Thread-257899][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 14:24:28,611 [DEBUG][       Thread-257899][   transport.py][1871] : Compression: none
2025-06-13 14:24:28,611 [DEBUG][       Thread-257899][   transport.py][1871] : === End of kex handshake ===
2025-06-13 14:24:28,667 [DEBUG][       Thread-257899][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 14:24:28,668 [DEBUG][       Thread-257899][   transport.py][1871] : Switch to new keys ...
2025-06-13 14:24:28,669 [DEBUG][       Thread-257899][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 14:24:28,669 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 14:24:28,670 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 14:24:28,726 [DEBUG][       Thread-257899][   transport.py][1871] : userauth is OK
2025-06-13 14:24:28,726 [DEBUG][       Thread-257899][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 14:24:28,726 [DEBUG][       Thread-257899][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 14:24:28,726 [DEBUG][       Thread-257899][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 14:24:28,726 [DEBUG][       Thread-257899][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 14:24:28,749 [ INFO][       Thread-257899][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 14:24:28,749 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 14:24:28,750 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 14:24:29,520 [DEBUG][Thread-257901 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:24:29,789 [DEBUG][       Thread-257899][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 14:24:29,790 [DEBUG][       Thread-257899][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 14:24:29,840 [DEBUG][       Thread-257899][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 14:24:29,840 [DEBUG][       Thread-257899][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 14:24:29,850 [DEBUG][       Thread-257899][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 14:24:29,859 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 14:24:29,859 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 14:24:29,868 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 14:24:29,878 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 14:24:29,878 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 14:24:29,879 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 14:24:29,887 [DEBUG][       Thread-257899][   transport.py][1871] : EOF in transport thread
2025-06-13 14:24:36,822 [DEBUG][Thread-257902 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:24:37,909 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:24:37,910 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:24:38,540 [DEBUG][Thread-257903 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:24:39,889 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 14:24:39,890 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 14:24:39,890 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 14:24:39,893 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 14:24:40,355 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 14, 24, 25), 16.64, 31.33, 0.0, 25.9, 13.84, 0, 0, 0, 2, 0, 0),)
2025-06-13 14:24:40,355 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 14:24:25
2025-06-13 14:24:40,436 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 14:24:40,442 [DEBUG][       Thread-257904][   transport.py][1871] : starting thread (client mode): 0x863ed210
2025-06-13 14:24:40,442 [DEBUG][       Thread-257904][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 14:24:40,452 [DEBUG][       Thread-257904][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 14:24:40,452 [ INFO][       Thread-257904][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 14:24:40,454 [DEBUG][       Thread-257904][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 14:24:40,454 [DEBUG][       Thread-257904][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 14:24:40,454 [DEBUG][       Thread-257904][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 14:24:40,454 [DEBUG][       Thread-257904][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:24:40,454 [DEBUG][       Thread-257904][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:24:40,454 [DEBUG][       Thread-257904][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:24:40,454 [DEBUG][       Thread-257904][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:24:40,454 [DEBUG][       Thread-257904][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 14:24:40,454 [DEBUG][       Thread-257904][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 14:24:40,454 [DEBUG][       Thread-257904][   transport.py][1871] : client lang: <none>
2025-06-13 14:24:40,454 [DEBUG][       Thread-257904][   transport.py][1871] : server lang: <none>
2025-06-13 14:24:40,454 [DEBUG][       Thread-257904][   transport.py][1871] : kex follows: False
2025-06-13 14:24:40,454 [DEBUG][       Thread-257904][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 14:24:40,454 [DEBUG][       Thread-257904][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 14:24:40,454 [DEBUG][       Thread-257904][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 14:24:40,454 [DEBUG][       Thread-257904][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 14:24:40,454 [DEBUG][       Thread-257904][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 14:24:40,454 [DEBUG][       Thread-257904][   transport.py][1871] : Compression: none
2025-06-13 14:24:40,454 [DEBUG][       Thread-257904][   transport.py][1871] : === End of kex handshake ===
2025-06-13 14:24:40,465 [DEBUG][       Thread-257904][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 14:24:40,465 [DEBUG][       Thread-257904][   transport.py][1871] : Switch to new keys ...
2025-06-13 14:24:40,465 [DEBUG][       Thread-257904][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 14:24:40,465 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 14:24:40,465 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 14:24:40,466 [DEBUG][       Thread-257904][   transport.py][1871] : userauth is OK
2025-06-13 14:24:40,495 [ INFO][       Thread-257904][   transport.py][1871] : Authentication (password) successful!
2025-06-13 14:24:40,496 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 14:24:41,049 [DEBUG][       Thread-257904][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 14:24:41,049 [DEBUG][       Thread-257904][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 14:24:41,093 [DEBUG][       Thread-257904][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 14:24:41,093 [DEBUG][       Thread-257904][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 14:24:41,096 [DEBUG][       Thread-257904][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 14:24:41,110 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 14:24:41,110 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 14:24:41,112 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 14:24:41,114 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 14:24:41,119 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 14:24:41,121 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 14:24:41,121 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 14:24:41,122 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 14:24:41,122 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.516950 -999.00  +13.50  28.64     36   -1.00 1 1 1 1 1   887    0 13.88 -39.06 ----- 25.0 28.6 47.4 30.6 17.8 -30.8 16.7 -32.8 17.1 -31.4 18.5 -28.8
2025-06-13 14:24:41,122 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 14:24:41,122 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 14:24:41,122 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.516950
2025-06-13 14:24:41,123 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 14:24:41,123 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 14:24:41,123 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 14:24:41,123 [DEBUG][       Thread-257904][   transport.py][1871] : EOF in transport thread
2025-06-13 14:24:41,123 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 14:24:41,124 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 14:24:41,124 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T14:24:25', tmtdew=16.64, humidity=31.33, cloud=0.0, wind=25.9, temperature=13.84, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T12:24:24.480', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 14:24:41,206 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 14:24:47,558 [DEBUG][Thread-257907 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:24:56,586 [DEBUG][Thread-257908 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:25:00,448 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:25:00,449 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:25:05,608 [DEBUG][Thread-257909 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:25:14,632 [DEBUG][Thread-257910 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:25:18,068 [DEBUG][Thread-257911 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:25:23,652 [DEBUG][Thread-257912 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:25:32,670 [DEBUG][Thread-257913 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:25:37,981 [DEBUG][Thread-257914 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:25:39,062 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:25:39,063 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:25:41,695 [DEBUG][Thread-257915 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:25:50,717 [DEBUG][Thread-257916 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:25:59,738 [DEBUG][Thread-257917 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:26:00,588 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:26:00,589 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:26:08,757 [DEBUG][Thread-257918 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:26:17,777 [DEBUG][Thread-257919 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:26:18,094 [DEBUG][Thread-257920 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:26:26,798 [DEBUG][Thread-257921 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:26:35,817 [DEBUG][Thread-257922 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:26:39,144 [DEBUG][Thread-257923 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:26:40,239 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:26:40,241 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:26:44,836 [DEBUG][Thread-257924 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:26:50,516 [WARNING][ poll_weather_worker][      driver.py][ 286] : Unable to open ssh connection for writing weather state to io.saao.ac.za: [Errno 110] Connection timed out
2025-06-13 14:26:53,857 [DEBUG][Thread-257925 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:27:00,527 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 14:27:00,527 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 14:27:00,527 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 14:27:00,530 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 14:27:00,728 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:27:00,729 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:27:01,017 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 14, 26, 33), 16.89, 31.07, 0.0, 22.37, 14.07, 0, 0, 0, 2, 0, 0),)
2025-06-13 14:27:01,017 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 14:26:33
2025-06-13 14:27:01,099 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 14:27:01,105 [DEBUG][       Thread-257926][   transport.py][1871] : starting thread (client mode): 0x84220d60
2025-06-13 14:27:01,105 [DEBUG][       Thread-257926][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 14:27:01,125 [DEBUG][       Thread-257926][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 14:27:01,125 [ INFO][       Thread-257926][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 14:27:01,129 [DEBUG][       Thread-257926][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 14:27:01,129 [DEBUG][       Thread-257926][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 14:27:01,129 [DEBUG][       Thread-257926][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 14:27:01,129 [DEBUG][       Thread-257926][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:27:01,129 [DEBUG][       Thread-257926][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:27:01,129 [DEBUG][       Thread-257926][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:27:01,129 [DEBUG][       Thread-257926][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:27:01,129 [DEBUG][       Thread-257926][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 14:27:01,129 [DEBUG][       Thread-257926][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 14:27:01,129 [DEBUG][       Thread-257926][   transport.py][1871] : client lang: <none>
2025-06-13 14:27:01,129 [DEBUG][       Thread-257926][   transport.py][1871] : server lang: <none>
2025-06-13 14:27:01,129 [DEBUG][       Thread-257926][   transport.py][1871] : kex follows: False
2025-06-13 14:27:01,129 [DEBUG][       Thread-257926][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 14:27:01,129 [DEBUG][       Thread-257926][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 14:27:01,129 [DEBUG][       Thread-257926][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 14:27:01,129 [DEBUG][       Thread-257926][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 14:27:01,129 [DEBUG][       Thread-257926][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 14:27:01,130 [DEBUG][       Thread-257926][   transport.py][1871] : Compression: none
2025-06-13 14:27:01,130 [DEBUG][       Thread-257926][   transport.py][1871] : === End of kex handshake ===
2025-06-13 14:27:01,147 [DEBUG][       Thread-257926][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 14:27:01,147 [DEBUG][       Thread-257926][   transport.py][1871] : Switch to new keys ...
2025-06-13 14:27:01,148 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 14:27:01,148 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 14:27:01,148 [DEBUG][       Thread-257926][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 14:27:01,149 [DEBUG][       Thread-257926][   transport.py][1871] : userauth is OK
2025-06-13 14:27:01,163 [ INFO][       Thread-257926][   transport.py][1871] : Authentication (password) successful!
2025-06-13 14:27:01,164 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 14:27:01,956 [DEBUG][       Thread-257926][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 14:27:01,957 [DEBUG][       Thread-257926][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 14:27:01,997 [DEBUG][       Thread-257926][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 14:27:01,997 [DEBUG][       Thread-257926][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 14:27:02,000 [DEBUG][       Thread-257926][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 14:27:02,007 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 14:27:02,007 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 14:27:02,009 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 14:27:02,011 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 14:27:02,018 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 14:27:02,020 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 14:27:02,020 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 14:27:02,021 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 14:27:02,021 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.518339 -999.00  +13.60  23.24     36   -0.90 1 1 1 1 1   887    0 14.08 -27.81 ----- 22.7 23.2 28.8 29.2 17.8 -30.7 16.7 -31.7 17.2 -31.6 18.3 -30.9
2025-06-13 14:27:02,021 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 14:27:02,021 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 14:27:02,021 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.518339
2025-06-13 14:27:02,022 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 14:27:02,022 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 14:27:02,022 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 14:27:02,022 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 14:27:02,022 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 14:27:02,022 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T14:26:33', tmtdew=16.89, humidity=31.07, cloud=0.0, wind=22.37, temperature=14.07, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T12:26:24.490', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 14:27:02,023 [DEBUG][       Thread-257926][   transport.py][1871] : EOF in transport thread
2025-06-13 14:27:02,106 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 14:27:02,122 [DEBUG][       Thread-257929][   transport.py][1871] : starting thread (client mode): 0x84204dc0
2025-06-13 14:27:02,122 [DEBUG][       Thread-257929][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 14:27:02,136 [DEBUG][       Thread-257929][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 14:27:02,136 [ INFO][       Thread-257929][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 14:27:02,144 [DEBUG][       Thread-257929][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 14:27:02,144 [DEBUG][       Thread-257929][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 14:27:02,144 [DEBUG][       Thread-257929][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 14:27:02,144 [DEBUG][       Thread-257929][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:27:02,144 [DEBUG][       Thread-257929][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:27:02,144 [DEBUG][       Thread-257929][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:27:02,144 [DEBUG][       Thread-257929][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:27:02,144 [DEBUG][       Thread-257929][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 14:27:02,144 [DEBUG][       Thread-257929][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 14:27:02,144 [DEBUG][       Thread-257929][   transport.py][1871] : client lang: <none>
2025-06-13 14:27:02,144 [DEBUG][       Thread-257929][   transport.py][1871] : server lang: <none>
2025-06-13 14:27:02,145 [DEBUG][       Thread-257929][   transport.py][1871] : kex follows: False
2025-06-13 14:27:02,145 [DEBUG][       Thread-257929][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 14:27:02,145 [DEBUG][       Thread-257929][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 14:27:02,145 [DEBUG][       Thread-257929][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 14:27:02,145 [DEBUG][       Thread-257929][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 14:27:02,145 [DEBUG][       Thread-257929][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 14:27:02,145 [DEBUG][       Thread-257929][   transport.py][1871] : Compression: none
2025-06-13 14:27:02,145 [DEBUG][       Thread-257929][   transport.py][1871] : === End of kex handshake ===
2025-06-13 14:27:02,212 [DEBUG][       Thread-257929][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 14:27:02,213 [DEBUG][       Thread-257929][   transport.py][1871] : Switch to new keys ...
2025-06-13 14:27:02,214 [DEBUG][       Thread-257929][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 14:27:02,214 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 14:27:02,215 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 14:27:02,272 [DEBUG][       Thread-257929][   transport.py][1871] : userauth is OK
2025-06-13 14:27:02,272 [DEBUG][       Thread-257929][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 14:27:02,272 [DEBUG][       Thread-257929][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 14:27:02,272 [DEBUG][       Thread-257929][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 14:27:02,272 [DEBUG][       Thread-257929][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 14:27:02,291 [ INFO][       Thread-257929][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 14:27:02,292 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 14:27:02,292 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 14:27:02,879 [DEBUG][Thread-257931 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:27:03,327 [DEBUG][       Thread-257929][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 14:27:03,327 [DEBUG][       Thread-257929][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 14:27:03,376 [DEBUG][       Thread-257929][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 14:27:03,376 [DEBUG][       Thread-257929][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 14:27:03,386 [DEBUG][       Thread-257929][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 14:27:03,395 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 14:27:03,395 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 14:27:03,406 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 14:27:03,415 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 14:27:03,415 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 14:27:03,416 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 14:27:03,424 [DEBUG][       Thread-257929][   transport.py][1871] : EOF in transport thread
2025-06-13 14:27:11,917 [DEBUG][Thread-257932 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:27:13,426 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 14:27:13,427 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 14:27:13,427 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 14:27:13,430 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 14:27:13,900 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 14, 27, 5), 16.97, 30.88, 0.0, 22.14, 13.97, 0, 0, 0, 2, 0, 0),)
2025-06-13 14:27:13,900 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 14:27:05
2025-06-13 14:27:13,980 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 14:27:13,987 [DEBUG][       Thread-257933][   transport.py][1871] : starting thread (client mode): 0x84206110
2025-06-13 14:27:13,987 [DEBUG][       Thread-257933][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 14:27:14,010 [DEBUG][       Thread-257933][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 14:27:14,010 [ INFO][       Thread-257933][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 14:27:14,011 [DEBUG][       Thread-257933][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 14:27:14,012 [DEBUG][       Thread-257933][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 14:27:14,012 [DEBUG][       Thread-257933][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 14:27:14,012 [DEBUG][       Thread-257933][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:27:14,012 [DEBUG][       Thread-257933][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:27:14,012 [DEBUG][       Thread-257933][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:27:14,012 [DEBUG][       Thread-257933][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:27:14,012 [DEBUG][       Thread-257933][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 14:27:14,012 [DEBUG][       Thread-257933][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 14:27:14,012 [DEBUG][       Thread-257933][   transport.py][1871] : client lang: <none>
2025-06-13 14:27:14,012 [DEBUG][       Thread-257933][   transport.py][1871] : server lang: <none>
2025-06-13 14:27:14,012 [DEBUG][       Thread-257933][   transport.py][1871] : kex follows: False
2025-06-13 14:27:14,012 [DEBUG][       Thread-257933][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 14:27:14,012 [DEBUG][       Thread-257933][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 14:27:14,012 [DEBUG][       Thread-257933][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 14:27:14,012 [DEBUG][       Thread-257933][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 14:27:14,012 [DEBUG][       Thread-257933][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 14:27:14,012 [DEBUG][       Thread-257933][   transport.py][1871] : Compression: none
2025-06-13 14:27:14,012 [DEBUG][       Thread-257933][   transport.py][1871] : === End of kex handshake ===
2025-06-13 14:27:14,029 [DEBUG][       Thread-257933][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 14:27:14,029 [DEBUG][       Thread-257933][   transport.py][1871] : Switch to new keys ...
2025-06-13 14:27:14,030 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 14:27:14,030 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 14:27:14,031 [DEBUG][       Thread-257933][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 14:27:14,031 [DEBUG][       Thread-257933][   transport.py][1871] : userauth is OK
2025-06-13 14:27:14,044 [ INFO][       Thread-257933][   transport.py][1871] : Authentication (password) successful!
2025-06-13 14:27:14,044 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 14:27:14,693 [DEBUG][       Thread-257933][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 14:27:14,694 [DEBUG][       Thread-257933][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 14:27:14,737 [DEBUG][       Thread-257933][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 14:27:14,737 [DEBUG][       Thread-257933][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 14:27:14,740 [DEBUG][       Thread-257933][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 14:27:14,752 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 14:27:14,753 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 14:27:14,754 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 14:27:14,756 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 14:27:14,762 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 14:27:14,764 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 14:27:14,764 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 14:27:14,765 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 14:27:14,765 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.518686 -999.00  +13.70  19.09     36   -0.80 1 1 1 1 1   887    0 13.83 -25.40 ----- 22.4 19.1 23.5 25.8 17.8 -30.2 16.6 -32.4 17.2 -30.1 18.3 -28.5
2025-06-13 14:27:14,765 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 14:27:14,765 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 14:27:14,765 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.518686
2025-06-13 14:27:14,765 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 14:27:14,766 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 14:27:14,766 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 14:27:14,766 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 14:27:14,766 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 14:27:14,766 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T14:27:05', tmtdew=16.97, humidity=30.88, cloud=0.0, wind=22.14, temperature=13.97, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T12:26:54.470', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 14:27:14,767 [DEBUG][       Thread-257933][   transport.py][1871] : EOF in transport thread
2025-06-13 14:27:14,850 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 14:27:14,862 [DEBUG][       Thread-257936][   transport.py][1871] : starting thread (client mode): 0x867fd300
2025-06-13 14:27:14,862 [DEBUG][       Thread-257936][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 14:27:14,877 [DEBUG][       Thread-257936][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 14:27:14,877 [ INFO][       Thread-257936][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 14:27:14,884 [DEBUG][       Thread-257936][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 14:27:14,884 [DEBUG][       Thread-257936][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 14:27:14,884 [DEBUG][       Thread-257936][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 14:27:14,884 [DEBUG][       Thread-257936][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:27:14,884 [DEBUG][       Thread-257936][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:27:14,884 [DEBUG][       Thread-257936][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:27:14,884 [DEBUG][       Thread-257936][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:27:14,884 [DEBUG][       Thread-257936][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 14:27:14,884 [DEBUG][       Thread-257936][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 14:27:14,885 [DEBUG][       Thread-257936][   transport.py][1871] : client lang: <none>
2025-06-13 14:27:14,885 [DEBUG][       Thread-257936][   transport.py][1871] : server lang: <none>
2025-06-13 14:27:14,885 [DEBUG][       Thread-257936][   transport.py][1871] : kex follows: False
2025-06-13 14:27:14,885 [DEBUG][       Thread-257936][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 14:27:14,885 [DEBUG][       Thread-257936][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 14:27:14,885 [DEBUG][       Thread-257936][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 14:27:14,885 [DEBUG][       Thread-257936][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 14:27:14,885 [DEBUG][       Thread-257936][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 14:27:14,885 [DEBUG][       Thread-257936][   transport.py][1871] : Compression: none
2025-06-13 14:27:14,885 [DEBUG][       Thread-257936][   transport.py][1871] : === End of kex handshake ===
2025-06-13 14:27:14,944 [DEBUG][       Thread-257936][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 14:27:14,945 [DEBUG][       Thread-257936][   transport.py][1871] : Switch to new keys ...
2025-06-13 14:27:14,945 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 14:27:14,946 [DEBUG][       Thread-257936][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 14:27:14,947 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 14:27:15,007 [DEBUG][       Thread-257936][   transport.py][1871] : userauth is OK
2025-06-13 14:27:15,007 [DEBUG][       Thread-257936][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 14:27:15,007 [DEBUG][       Thread-257936][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 14:27:15,007 [DEBUG][       Thread-257936][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 14:27:15,007 [DEBUG][       Thread-257936][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 14:27:15,026 [ INFO][       Thread-257936][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 14:27:15,026 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 14:27:15,027 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 14:27:16,052 [DEBUG][       Thread-257936][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 14:27:16,052 [DEBUG][       Thread-257936][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 14:27:16,100 [DEBUG][       Thread-257936][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 14:27:16,100 [DEBUG][       Thread-257936][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 14:27:16,109 [DEBUG][       Thread-257936][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 14:27:16,118 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 14:27:16,118 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 14:27:16,127 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 14:27:16,136 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 14:27:16,136 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 14:27:16,136 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 14:27:16,144 [DEBUG][       Thread-257936][   transport.py][1871] : EOF in transport thread
2025-06-13 14:27:18,126 [DEBUG][Thread-257938 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:27:20,935 [DEBUG][Thread-257939 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:27:26,146 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 14:27:26,147 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 14:27:26,147 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 14:27:26,150 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 14:27:26,629 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 14, 27, 5), 16.97, 30.88, 0.0, 22.14, 13.97, 0, 0, 0, 2, 0, 0),)
2025-06-13 14:27:26,629 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 14:27:05
2025-06-13 14:27:26,709 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 14:27:26,713 [DEBUG][       Thread-257940][   transport.py][1871] : starting thread (client mode): 0x863bca00
2025-06-13 14:27:26,713 [DEBUG][       Thread-257940][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 14:27:26,730 [DEBUG][       Thread-257940][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 14:27:26,730 [ INFO][       Thread-257940][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 14:27:26,734 [DEBUG][       Thread-257940][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 14:27:26,734 [DEBUG][       Thread-257940][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 14:27:26,734 [DEBUG][       Thread-257940][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 14:27:26,734 [DEBUG][       Thread-257940][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:27:26,734 [DEBUG][       Thread-257940][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:27:26,734 [DEBUG][       Thread-257940][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:27:26,734 [DEBUG][       Thread-257940][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:27:26,734 [DEBUG][       Thread-257940][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 14:27:26,734 [DEBUG][       Thread-257940][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 14:27:26,734 [DEBUG][       Thread-257940][   transport.py][1871] : client lang: <none>
2025-06-13 14:27:26,734 [DEBUG][       Thread-257940][   transport.py][1871] : server lang: <none>
2025-06-13 14:27:26,734 [DEBUG][       Thread-257940][   transport.py][1871] : kex follows: False
2025-06-13 14:27:26,734 [DEBUG][       Thread-257940][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 14:27:26,734 [DEBUG][       Thread-257940][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 14:27:26,734 [DEBUG][       Thread-257940][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 14:27:26,734 [DEBUG][       Thread-257940][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 14:27:26,734 [DEBUG][       Thread-257940][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 14:27:26,734 [DEBUG][       Thread-257940][   transport.py][1871] : Compression: none
2025-06-13 14:27:26,734 [DEBUG][       Thread-257940][   transport.py][1871] : === End of kex handshake ===
2025-06-13 14:27:26,751 [DEBUG][       Thread-257940][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 14:27:26,752 [DEBUG][       Thread-257940][   transport.py][1871] : Switch to new keys ...
2025-06-13 14:27:26,752 [DEBUG][       Thread-257940][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 14:27:26,753 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 14:27:26,753 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 14:27:26,754 [DEBUG][       Thread-257940][   transport.py][1871] : userauth is OK
2025-06-13 14:27:26,767 [ INFO][       Thread-257940][   transport.py][1871] : Authentication (password) successful!
2025-06-13 14:27:26,767 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 14:27:27,413 [DEBUG][       Thread-257940][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 14:27:27,413 [DEBUG][       Thread-257940][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 14:27:27,457 [DEBUG][       Thread-257940][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 14:27:27,457 [DEBUG][       Thread-257940][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 14:27:27,461 [DEBUG][       Thread-257940][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 14:27:27,475 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 14:27:27,476 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 14:27:27,478 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 14:27:27,479 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 14:27:27,485 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 14:27:27,487 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 14:27:27,488 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 14:27:27,488 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 14:27:27,489 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.518686 -999.00  +13.70  19.09     36   -0.80 1 1 1 1 1   887    0 13.83 -25.40 ----- 22.4 19.1 23.5 25.8 17.8 -30.2 16.6 -32.4 17.2 -30.1 18.3 -28.5
2025-06-13 14:27:27,489 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 14:27:27,489 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 14:27:27,489 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.518686
2025-06-13 14:27:27,489 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 14:27:27,490 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 14:27:27,490 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 14:27:27,490 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 14:27:27,490 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 14:27:27,490 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T14:27:05', tmtdew=16.97, humidity=30.88, cloud=0.0, wind=22.14, temperature=13.97, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T12:26:54.470', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 14:27:27,491 [DEBUG][       Thread-257940][   transport.py][1871] : EOF in transport thread
2025-06-13 14:27:27,574 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 14:27:27,583 [DEBUG][       Thread-257943][   transport.py][1871] : starting thread (client mode): 0x86393e20
2025-06-13 14:27:27,583 [DEBUG][       Thread-257943][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 14:27:27,599 [DEBUG][       Thread-257943][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 14:27:27,599 [ INFO][       Thread-257943][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 14:27:27,607 [DEBUG][       Thread-257943][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 14:27:27,607 [DEBUG][       Thread-257943][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 14:27:27,607 [DEBUG][       Thread-257943][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 14:27:27,607 [DEBUG][       Thread-257943][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:27:27,607 [DEBUG][       Thread-257943][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:27:27,607 [DEBUG][       Thread-257943][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:27:27,607 [DEBUG][       Thread-257943][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:27:27,607 [DEBUG][       Thread-257943][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 14:27:27,607 [DEBUG][       Thread-257943][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 14:27:27,607 [DEBUG][       Thread-257943][   transport.py][1871] : client lang: <none>
2025-06-13 14:27:27,607 [DEBUG][       Thread-257943][   transport.py][1871] : server lang: <none>
2025-06-13 14:27:27,608 [DEBUG][       Thread-257943][   transport.py][1871] : kex follows: False
2025-06-13 14:27:27,608 [DEBUG][       Thread-257943][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 14:27:27,608 [DEBUG][       Thread-257943][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 14:27:27,608 [DEBUG][       Thread-257943][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 14:27:27,608 [DEBUG][       Thread-257943][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 14:27:27,608 [DEBUG][       Thread-257943][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 14:27:27,608 [DEBUG][       Thread-257943][   transport.py][1871] : Compression: none
2025-06-13 14:27:27,608 [DEBUG][       Thread-257943][   transport.py][1871] : === End of kex handshake ===
2025-06-13 14:27:27,670 [DEBUG][       Thread-257943][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 14:27:27,670 [DEBUG][       Thread-257943][   transport.py][1871] : Switch to new keys ...
2025-06-13 14:27:27,671 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 14:27:27,671 [DEBUG][       Thread-257943][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 14:27:27,672 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 14:27:27,728 [DEBUG][       Thread-257943][   transport.py][1871] : userauth is OK
2025-06-13 14:27:27,729 [DEBUG][       Thread-257943][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 14:27:27,729 [DEBUG][       Thread-257943][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 14:27:27,729 [DEBUG][       Thread-257943][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 14:27:27,729 [DEBUG][       Thread-257943][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 14:27:27,748 [ INFO][       Thread-257943][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 14:27:27,748 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 14:27:27,749 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 14:27:28,870 [DEBUG][       Thread-257943][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 14:27:28,871 [DEBUG][       Thread-257943][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 14:27:28,921 [DEBUG][       Thread-257943][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 14:27:28,921 [DEBUG][       Thread-257943][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 14:27:28,930 [DEBUG][       Thread-257943][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 14:27:28,940 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 14:27:28,940 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 14:27:28,949 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 14:27:28,958 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 14:27:28,958 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 14:27:28,959 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 14:27:28,967 [DEBUG][       Thread-257943][   transport.py][1871] : EOF in transport thread
2025-06-13 14:27:29,960 [DEBUG][Thread-257945 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:27:38,969 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 14:27:38,969 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 14:27:38,969 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 14:27:38,970 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 14:27:38,977 [DEBUG][Thread-257946 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:27:39,464 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 14, 27, 5), 16.97, 30.88, 0.0, 22.14, 13.97, 0, 0, 0, 2, 0, 0),)
2025-06-13 14:27:39,464 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 14:27:05
2025-06-13 14:27:39,543 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 14:27:39,549 [DEBUG][       Thread-257947][   transport.py][1871] : starting thread (client mode): 0x86390ee0
2025-06-13 14:27:39,550 [DEBUG][       Thread-257947][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 14:27:39,571 [DEBUG][       Thread-257947][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 14:27:39,571 [ INFO][       Thread-257947][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 14:27:39,573 [DEBUG][       Thread-257947][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 14:27:39,573 [DEBUG][       Thread-257947][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 14:27:39,573 [DEBUG][       Thread-257947][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 14:27:39,573 [DEBUG][       Thread-257947][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:27:39,573 [DEBUG][       Thread-257947][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:27:39,573 [DEBUG][       Thread-257947][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:27:39,573 [DEBUG][       Thread-257947][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:27:39,573 [DEBUG][       Thread-257947][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 14:27:39,573 [DEBUG][       Thread-257947][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 14:27:39,573 [DEBUG][       Thread-257947][   transport.py][1871] : client lang: <none>
2025-06-13 14:27:39,573 [DEBUG][       Thread-257947][   transport.py][1871] : server lang: <none>
2025-06-13 14:27:39,573 [DEBUG][       Thread-257947][   transport.py][1871] : kex follows: False
2025-06-13 14:27:39,573 [DEBUG][       Thread-257947][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 14:27:39,573 [DEBUG][       Thread-257947][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 14:27:39,573 [DEBUG][       Thread-257947][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 14:27:39,573 [DEBUG][       Thread-257947][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 14:27:39,573 [DEBUG][       Thread-257947][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 14:27:39,574 [DEBUG][       Thread-257947][   transport.py][1871] : Compression: none
2025-06-13 14:27:39,574 [DEBUG][       Thread-257947][   transport.py][1871] : === End of kex handshake ===
2025-06-13 14:27:39,583 [DEBUG][       Thread-257947][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 14:27:39,584 [DEBUG][       Thread-257947][   transport.py][1871] : Switch to new keys ...
2025-06-13 14:27:39,585 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 14:27:39,585 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 14:27:39,585 [DEBUG][       Thread-257947][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 14:27:39,586 [DEBUG][       Thread-257947][   transport.py][1871] : userauth is OK
2025-06-13 14:27:39,611 [ INFO][       Thread-257947][   transport.py][1871] : Authentication (password) successful!
2025-06-13 14:27:39,611 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 14:27:40,268 [DEBUG][       Thread-257947][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 14:27:40,269 [DEBUG][       Thread-257947][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 14:27:40,311 [DEBUG][Thread-257949 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:27:40,313 [DEBUG][       Thread-257947][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 14:27:40,313 [DEBUG][       Thread-257947][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 14:27:40,317 [DEBUG][       Thread-257947][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 14:27:40,329 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 14:27:40,329 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 14:27:40,331 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 14:27:40,333 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 14:27:40,339 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 14:27:40,341 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 14:27:40,341 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 14:27:40,341 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 14:27:40,342 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.519034 -999.00  +13.70  21.28     36   -0.90 1 1 1 1 1   887    0 13.69 -24.66 ----- 24.1 21.3 53.6 26.2 17.8 -31.1 16.7 -31.7 17.2 -31.2 18.3 -28.7
2025-06-13 14:27:40,342 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 14:27:40,342 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 14:27:40,342 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.519034
2025-06-13 14:27:40,342 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 14:27:40,343 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 14:27:40,343 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 14:27:40,343 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 14:27:40,343 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 14:27:40,343 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T14:27:05', tmtdew=16.97, humidity=30.88, cloud=0.0, wind=22.14, temperature=13.97, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T12:27:24.538', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 14:27:40,343 [DEBUG][       Thread-257947][   transport.py][1871] : EOF in transport thread
2025-06-13 14:27:40,427 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 14:27:40,439 [DEBUG][       Thread-257951][   transport.py][1871] : starting thread (client mode): 0x863c8640
2025-06-13 14:27:40,439 [DEBUG][       Thread-257951][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 14:27:40,454 [DEBUG][       Thread-257951][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 14:27:40,454 [ INFO][       Thread-257951][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 14:27:40,461 [DEBUG][       Thread-257951][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 14:27:40,462 [DEBUG][       Thread-257951][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 14:27:40,462 [DEBUG][       Thread-257951][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 14:27:40,462 [DEBUG][       Thread-257951][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:27:40,462 [DEBUG][       Thread-257951][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:27:40,462 [DEBUG][       Thread-257951][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:27:40,462 [DEBUG][       Thread-257951][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:27:40,462 [DEBUG][       Thread-257951][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 14:27:40,462 [DEBUG][       Thread-257951][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 14:27:40,462 [DEBUG][       Thread-257951][   transport.py][1871] : client lang: <none>
2025-06-13 14:27:40,462 [DEBUG][       Thread-257951][   transport.py][1871] : server lang: <none>
2025-06-13 14:27:40,462 [DEBUG][       Thread-257951][   transport.py][1871] : kex follows: False
2025-06-13 14:27:40,462 [DEBUG][       Thread-257951][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 14:27:40,462 [DEBUG][       Thread-257951][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 14:27:40,462 [DEBUG][       Thread-257951][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 14:27:40,462 [DEBUG][       Thread-257951][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 14:27:40,462 [DEBUG][       Thread-257951][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 14:27:40,462 [DEBUG][       Thread-257951][   transport.py][1871] : Compression: none
2025-06-13 14:27:40,462 [DEBUG][       Thread-257951][   transport.py][1871] : === End of kex handshake ===
2025-06-13 14:27:40,524 [DEBUG][       Thread-257951][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 14:27:40,525 [DEBUG][       Thread-257951][   transport.py][1871] : Switch to new keys ...
2025-06-13 14:27:40,525 [DEBUG][       Thread-257951][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 14:27:40,526 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 14:27:40,526 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 14:27:40,584 [DEBUG][       Thread-257951][   transport.py][1871] : userauth is OK
2025-06-13 14:27:40,584 [DEBUG][       Thread-257951][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 14:27:40,585 [DEBUG][       Thread-257951][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 14:27:40,585 [DEBUG][       Thread-257951][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 14:27:40,585 [DEBUG][       Thread-257951][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 14:27:40,604 [ INFO][       Thread-257951][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 14:27:40,604 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 14:27:40,605 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 14:27:41,392 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:27:41,394 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:27:41,622 [DEBUG][       Thread-257951][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 14:27:41,623 [DEBUG][       Thread-257951][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 14:27:41,672 [DEBUG][       Thread-257951][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 14:27:41,672 [DEBUG][       Thread-257951][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 14:27:41,682 [DEBUG][       Thread-257951][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 14:27:41,691 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 14:27:41,692 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 14:27:41,701 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 14:27:41,710 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 14:27:41,710 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 14:27:41,711 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 14:27:41,719 [DEBUG][       Thread-257951][   transport.py][1871] : EOF in transport thread
2025-06-13 14:27:47,998 [DEBUG][Thread-257953 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:27:51,721 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 14:27:51,722 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 14:27:51,722 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 14:27:51,725 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 14:27:52,182 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 14, 27, 37), 17.27, 30.15, 0.0, 18.46, 13.98, 0, 0, 0, 2, 0, 0),)
2025-06-13 14:27:52,182 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 14:27:37
2025-06-13 14:27:52,263 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 14:27:52,267 [DEBUG][       Thread-257954][   transport.py][1871] : starting thread (client mode): 0x86390400
2025-06-13 14:27:52,267 [DEBUG][       Thread-257954][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 14:27:52,288 [DEBUG][       Thread-257954][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 14:27:52,288 [ INFO][       Thread-257954][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 14:27:52,292 [DEBUG][       Thread-257954][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 14:27:52,292 [DEBUG][       Thread-257954][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 14:27:52,292 [DEBUG][       Thread-257954][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 14:27:52,292 [DEBUG][       Thread-257954][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:27:52,292 [DEBUG][       Thread-257954][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:27:52,292 [DEBUG][       Thread-257954][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:27:52,292 [DEBUG][       Thread-257954][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:27:52,292 [DEBUG][       Thread-257954][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 14:27:52,293 [DEBUG][       Thread-257954][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 14:27:52,293 [DEBUG][       Thread-257954][   transport.py][1871] : client lang: <none>
2025-06-13 14:27:52,293 [DEBUG][       Thread-257954][   transport.py][1871] : server lang: <none>
2025-06-13 14:27:52,293 [DEBUG][       Thread-257954][   transport.py][1871] : kex follows: False
2025-06-13 14:27:52,293 [DEBUG][       Thread-257954][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 14:27:52,293 [DEBUG][       Thread-257954][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 14:27:52,293 [DEBUG][       Thread-257954][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 14:27:52,293 [DEBUG][       Thread-257954][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 14:27:52,293 [DEBUG][       Thread-257954][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 14:27:52,293 [DEBUG][       Thread-257954][   transport.py][1871] : Compression: none
2025-06-13 14:27:52,293 [DEBUG][       Thread-257954][   transport.py][1871] : === End of kex handshake ===
2025-06-13 14:27:52,311 [DEBUG][       Thread-257954][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 14:27:52,312 [DEBUG][       Thread-257954][   transport.py][1871] : Switch to new keys ...
2025-06-13 14:27:52,312 [DEBUG][       Thread-257954][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 14:27:52,312 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 14:27:52,313 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 14:27:52,314 [DEBUG][       Thread-257954][   transport.py][1871] : userauth is OK
2025-06-13 14:27:52,339 [ INFO][       Thread-257954][   transport.py][1871] : Authentication (password) successful!
2025-06-13 14:27:52,340 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 14:27:52,969 [DEBUG][       Thread-257954][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 14:27:52,969 [DEBUG][       Thread-257954][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 14:27:53,013 [DEBUG][       Thread-257954][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 14:27:53,013 [DEBUG][       Thread-257954][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 14:27:53,016 [DEBUG][       Thread-257954][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 14:27:53,028 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 14:27:53,029 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 14:27:53,031 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 14:27:53,033 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 14:27:53,038 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 14:27:53,040 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 14:27:53,041 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 14:27:53,041 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 14:27:53,041 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.519034 -999.00  +13.70  21.28     36   -0.90 1 1 1 1 1   887    0 13.69 -24.66 ----- 24.1 21.3 53.6 26.2 17.8 -31.1 16.7 -31.7 17.2 -31.2 18.3 -28.7
2025-06-13 14:27:53,042 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 14:27:53,042 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 14:27:53,042 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.519034
2025-06-13 14:27:53,042 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 14:27:53,043 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 14:27:53,043 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 14:27:53,043 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 14:27:53,043 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 14:27:53,043 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T14:27:37', tmtdew=17.27, humidity=30.15, cloud=0.0, wind=18.46, temperature=13.98, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T12:27:24.538', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 14:27:53,043 [DEBUG][       Thread-257954][   transport.py][1871] : EOF in transport thread
2025-06-13 14:27:53,126 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 14:27:53,135 [DEBUG][       Thread-257957][   transport.py][1871] : starting thread (client mode): 0xc5988130
2025-06-13 14:27:53,135 [DEBUG][       Thread-257957][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 14:27:53,150 [DEBUG][       Thread-257957][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 14:27:53,150 [ INFO][       Thread-257957][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 14:27:53,158 [DEBUG][       Thread-257957][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 14:27:53,158 [DEBUG][       Thread-257957][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 14:27:53,158 [DEBUG][       Thread-257957][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 14:27:53,158 [DEBUG][       Thread-257957][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:27:53,158 [DEBUG][       Thread-257957][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:27:53,158 [DEBUG][       Thread-257957][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:27:53,158 [DEBUG][       Thread-257957][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:27:53,158 [DEBUG][       Thread-257957][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 14:27:53,158 [DEBUG][       Thread-257957][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 14:27:53,158 [DEBUG][       Thread-257957][   transport.py][1871] : client lang: <none>
2025-06-13 14:27:53,158 [DEBUG][       Thread-257957][   transport.py][1871] : server lang: <none>
2025-06-13 14:27:53,158 [DEBUG][       Thread-257957][   transport.py][1871] : kex follows: False
2025-06-13 14:27:53,158 [DEBUG][       Thread-257957][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 14:27:53,158 [DEBUG][       Thread-257957][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 14:27:53,158 [DEBUG][       Thread-257957][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 14:27:53,158 [DEBUG][       Thread-257957][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 14:27:53,158 [DEBUG][       Thread-257957][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 14:27:53,158 [DEBUG][       Thread-257957][   transport.py][1871] : Compression: none
2025-06-13 14:27:53,158 [DEBUG][       Thread-257957][   transport.py][1871] : === End of kex handshake ===
2025-06-13 14:27:53,217 [DEBUG][       Thread-257957][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 14:27:53,218 [DEBUG][       Thread-257957][   transport.py][1871] : Switch to new keys ...
2025-06-13 14:27:53,218 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 14:27:53,219 [DEBUG][       Thread-257957][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 14:27:53,219 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 14:27:53,282 [DEBUG][       Thread-257957][   transport.py][1871] : userauth is OK
2025-06-13 14:27:53,282 [DEBUG][       Thread-257957][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 14:27:53,282 [DEBUG][       Thread-257957][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 14:27:53,282 [DEBUG][       Thread-257957][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 14:27:53,283 [DEBUG][       Thread-257957][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 14:27:53,305 [ INFO][       Thread-257957][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 14:27:53,305 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 14:27:53,306 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 14:27:54,300 [DEBUG][       Thread-257957][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 14:27:54,300 [DEBUG][       Thread-257957][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 14:27:54,350 [DEBUG][       Thread-257957][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 14:27:54,351 [DEBUG][       Thread-257957][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 14:27:54,363 [DEBUG][       Thread-257957][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 14:27:54,374 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 14:27:54,374 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 14:27:54,383 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 14:27:54,395 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 14:27:54,396 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 14:27:54,396 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 14:27:54,404 [DEBUG][       Thread-257957][   transport.py][1871] : EOF in transport thread
2025-06-13 14:27:57,022 [DEBUG][Thread-257959 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:28:00,866 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:28:00,867 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:28:04,407 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 14:28:04,407 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 14:28:04,407 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 14:28:04,410 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 14:28:04,866 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 14, 27, 37), 17.27, 30.15, 0.0, 18.46, 13.98, 0, 0, 0, 2, 0, 0),)
2025-06-13 14:28:04,866 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 14:27:37
2025-06-13 14:28:04,947 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 14:28:04,952 [DEBUG][       Thread-257960][   transport.py][1871] : starting thread (client mode): 0x84206f20
2025-06-13 14:28:04,952 [DEBUG][       Thread-257960][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 14:28:04,973 [DEBUG][       Thread-257960][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 14:28:04,973 [ INFO][       Thread-257960][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 14:28:04,974 [DEBUG][       Thread-257960][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 14:28:04,974 [DEBUG][       Thread-257960][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 14:28:04,974 [DEBUG][       Thread-257960][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 14:28:04,974 [DEBUG][       Thread-257960][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:28:04,974 [DEBUG][       Thread-257960][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:28:04,974 [DEBUG][       Thread-257960][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:28:04,974 [DEBUG][       Thread-257960][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:28:04,974 [DEBUG][       Thread-257960][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 14:28:04,974 [DEBUG][       Thread-257960][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 14:28:04,974 [DEBUG][       Thread-257960][   transport.py][1871] : client lang: <none>
2025-06-13 14:28:04,974 [DEBUG][       Thread-257960][   transport.py][1871] : server lang: <none>
2025-06-13 14:28:04,974 [DEBUG][       Thread-257960][   transport.py][1871] : kex follows: False
2025-06-13 14:28:04,974 [DEBUG][       Thread-257960][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 14:28:04,974 [DEBUG][       Thread-257960][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 14:28:04,974 [DEBUG][       Thread-257960][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 14:28:04,974 [DEBUG][       Thread-257960][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 14:28:04,974 [DEBUG][       Thread-257960][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 14:28:04,974 [DEBUG][       Thread-257960][   transport.py][1871] : Compression: none
2025-06-13 14:28:04,974 [DEBUG][       Thread-257960][   transport.py][1871] : === End of kex handshake ===
2025-06-13 14:28:04,982 [DEBUG][       Thread-257960][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 14:28:04,983 [DEBUG][       Thread-257960][   transport.py][1871] : Switch to new keys ...
2025-06-13 14:28:04,983 [DEBUG][       Thread-257960][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 14:28:04,983 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 14:28:04,984 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 14:28:04,984 [DEBUG][       Thread-257960][   transport.py][1871] : userauth is OK
2025-06-13 14:28:05,012 [ INFO][       Thread-257960][   transport.py][1871] : Authentication (password) successful!
2025-06-13 14:28:05,012 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 14:28:05,592 [DEBUG][       Thread-257960][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 14:28:05,592 [DEBUG][       Thread-257960][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 14:28:05,633 [DEBUG][       Thread-257960][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 14:28:05,633 [DEBUG][       Thread-257960][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 14:28:05,636 [DEBUG][       Thread-257960][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 14:28:05,647 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 14:28:05,648 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 14:28:05,650 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 14:28:05,652 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 14:28:05,659 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 14:28:05,662 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 14:28:05,662 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 14:28:05,663 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 14:28:05,663 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.519034 -999.00  +13.70  21.28     36   -0.90 1 1 1 1 1   887    0 13.69 -24.66 ----- 24.1 21.3 53.6 26.2 17.8 -31.1 16.7 -31.7 17.2 -31.2 18.3 -28.7
2025-06-13 14:28:05,663 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 14:28:05,663 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 14:28:05,663 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.519034
2025-06-13 14:28:05,663 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 14:28:05,664 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 14:28:05,664 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 14:28:05,664 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 14:28:05,664 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 14:28:05,664 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T14:27:37', tmtdew=17.27, humidity=30.15, cloud=0.0, wind=18.46, temperature=13.98, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T12:27:24.538', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 14:28:05,666 [DEBUG][       Thread-257960][   transport.py][1871] : EOF in transport thread
2025-06-13 14:28:05,748 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 14:28:05,759 [DEBUG][       Thread-257963][   transport.py][1871] : starting thread (client mode): 0x863c8250
2025-06-13 14:28:05,759 [DEBUG][       Thread-257963][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 14:28:05,774 [DEBUG][       Thread-257963][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 14:28:05,774 [ INFO][       Thread-257963][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 14:28:05,781 [DEBUG][       Thread-257963][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 14:28:05,782 [DEBUG][       Thread-257963][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 14:28:05,782 [DEBUG][       Thread-257963][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 14:28:05,782 [DEBUG][       Thread-257963][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:28:05,782 [DEBUG][       Thread-257963][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:28:05,782 [DEBUG][       Thread-257963][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:28:05,782 [DEBUG][       Thread-257963][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:28:05,782 [DEBUG][       Thread-257963][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 14:28:05,782 [DEBUG][       Thread-257963][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 14:28:05,782 [DEBUG][       Thread-257963][   transport.py][1871] : client lang: <none>
2025-06-13 14:28:05,782 [DEBUG][       Thread-257963][   transport.py][1871] : server lang: <none>
2025-06-13 14:28:05,782 [DEBUG][       Thread-257963][   transport.py][1871] : kex follows: False
2025-06-13 14:28:05,782 [DEBUG][       Thread-257963][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 14:28:05,782 [DEBUG][       Thread-257963][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 14:28:05,782 [DEBUG][       Thread-257963][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 14:28:05,782 [DEBUG][       Thread-257963][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 14:28:05,782 [DEBUG][       Thread-257963][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 14:28:05,782 [DEBUG][       Thread-257963][   transport.py][1871] : Compression: none
2025-06-13 14:28:05,782 [DEBUG][       Thread-257963][   transport.py][1871] : === End of kex handshake ===
2025-06-13 14:28:05,840 [DEBUG][       Thread-257963][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 14:28:05,841 [DEBUG][       Thread-257963][   transport.py][1871] : Switch to new keys ...
2025-06-13 14:28:05,841 [DEBUG][       Thread-257963][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 14:28:05,842 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 14:28:05,842 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 14:28:05,896 [DEBUG][       Thread-257963][   transport.py][1871] : userauth is OK
2025-06-13 14:28:05,896 [DEBUG][       Thread-257963][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 14:28:05,896 [DEBUG][       Thread-257963][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 14:28:05,896 [DEBUG][       Thread-257963][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 14:28:05,897 [DEBUG][       Thread-257963][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 14:28:05,915 [ INFO][       Thread-257963][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 14:28:05,916 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 14:28:05,916 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 14:28:06,058 [DEBUG][Thread-257965 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:28:06,976 [DEBUG][       Thread-257963][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 14:28:06,976 [DEBUG][       Thread-257963][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 14:28:07,023 [DEBUG][       Thread-257963][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 14:28:07,023 [DEBUG][       Thread-257963][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 14:28:07,032 [DEBUG][       Thread-257963][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 14:28:07,039 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 14:28:07,040 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 14:28:07,047 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 14:28:07,055 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 14:28:07,055 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 14:28:07,056 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 14:28:07,063 [DEBUG][       Thread-257963][   transport.py][1871] : EOF in transport thread
2025-06-13 14:28:15,084 [DEBUG][Thread-257966 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:28:17,066 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 14:28:17,066 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 14:28:17,066 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 14:28:17,069 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 14:28:17,545 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 14, 28, 9), 17.09, 30.47, 0.0, 19.96, 13.85, 0, 0, 0, 2, 0, 0),)
2025-06-13 14:28:17,545 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 14:28:09
2025-06-13 14:28:17,627 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 14:28:17,634 [DEBUG][       Thread-257967][   transport.py][1871] : starting thread (client mode): 0x84207280
2025-06-13 14:28:17,634 [DEBUG][       Thread-257967][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 14:28:17,654 [DEBUG][       Thread-257967][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 14:28:17,654 [ INFO][       Thread-257967][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 14:28:17,657 [DEBUG][       Thread-257967][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 14:28:17,657 [DEBUG][       Thread-257967][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 14:28:17,657 [DEBUG][       Thread-257967][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 14:28:17,657 [DEBUG][       Thread-257967][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:28:17,657 [DEBUG][       Thread-257967][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:28:17,657 [DEBUG][       Thread-257967][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:28:17,657 [DEBUG][       Thread-257967][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:28:17,657 [DEBUG][       Thread-257967][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 14:28:17,657 [DEBUG][       Thread-257967][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 14:28:17,658 [DEBUG][       Thread-257967][   transport.py][1871] : client lang: <none>
2025-06-13 14:28:17,658 [DEBUG][       Thread-257967][   transport.py][1871] : server lang: <none>
2025-06-13 14:28:17,658 [DEBUG][       Thread-257967][   transport.py][1871] : kex follows: False
2025-06-13 14:28:17,658 [DEBUG][       Thread-257967][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 14:28:17,658 [DEBUG][       Thread-257967][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 14:28:17,658 [DEBUG][       Thread-257967][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 14:28:17,658 [DEBUG][       Thread-257967][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 14:28:17,658 [DEBUG][       Thread-257967][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 14:28:17,658 [DEBUG][       Thread-257967][   transport.py][1871] : Compression: none
2025-06-13 14:28:17,658 [DEBUG][       Thread-257967][   transport.py][1871] : === End of kex handshake ===
2025-06-13 14:28:17,675 [DEBUG][       Thread-257967][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 14:28:17,676 [DEBUG][       Thread-257967][   transport.py][1871] : Switch to new keys ...
2025-06-13 14:28:17,676 [DEBUG][       Thread-257967][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 14:28:17,677 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 14:28:17,677 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 14:28:17,678 [DEBUG][       Thread-257967][   transport.py][1871] : userauth is OK
2025-06-13 14:28:17,702 [ INFO][       Thread-257967][   transport.py][1871] : Authentication (password) successful!
2025-06-13 14:28:17,703 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 14:28:18,171 [DEBUG][Thread-257969 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:28:18,309 [DEBUG][       Thread-257967][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 14:28:18,310 [DEBUG][       Thread-257967][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 14:28:18,353 [DEBUG][       Thread-257967][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 14:28:18,353 [DEBUG][       Thread-257967][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 14:28:18,357 [DEBUG][       Thread-257967][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 14:28:18,368 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 14:28:18,368 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 14:28:18,370 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 14:28:18,372 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 14:28:18,377 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 14:28:18,379 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 14:28:18,379 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 14:28:18,380 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 14:28:18,380 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.519381 -999.00  +13.90  23.10     35   -1.20 1 1 1 1 1   887    0 13.96 -22.73 ----- 22.9 23.1 48.2 30.4 17.8 -30.8 16.7 -32.0 17.2 -31.7 18.4 -28.5
2025-06-13 14:28:18,380 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 14:28:18,381 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 14:28:18,381 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.519381
2025-06-13 14:28:18,381 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 14:28:18,382 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 14:28:18,382 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 14:28:18,382 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 14:28:18,382 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 14:28:18,382 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T14:28:09', tmtdew=17.09, humidity=30.47, cloud=0.0, wind=19.96, temperature=13.85, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T12:27:54.518', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 14:28:18,383 [DEBUG][       Thread-257967][   transport.py][1871] : EOF in transport thread
2025-06-13 14:28:18,465 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 14:28:18,477 [DEBUG][       Thread-257971][   transport.py][1871] : starting thread (client mode): 0x867fe3e0
2025-06-13 14:28:18,477 [DEBUG][       Thread-257971][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 14:28:18,492 [DEBUG][       Thread-257971][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 14:28:18,492 [ INFO][       Thread-257971][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 14:28:18,501 [DEBUG][       Thread-257971][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 14:28:18,501 [DEBUG][       Thread-257971][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 14:28:18,501 [DEBUG][       Thread-257971][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 14:28:18,501 [DEBUG][       Thread-257971][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:28:18,501 [DEBUG][       Thread-257971][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:28:18,501 [DEBUG][       Thread-257971][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:28:18,501 [DEBUG][       Thread-257971][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:28:18,502 [DEBUG][       Thread-257971][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 14:28:18,502 [DEBUG][       Thread-257971][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 14:28:18,502 [DEBUG][       Thread-257971][   transport.py][1871] : client lang: <none>
2025-06-13 14:28:18,502 [DEBUG][       Thread-257971][   transport.py][1871] : server lang: <none>
2025-06-13 14:28:18,502 [DEBUG][       Thread-257971][   transport.py][1871] : kex follows: False
2025-06-13 14:28:18,502 [DEBUG][       Thread-257971][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 14:28:18,502 [DEBUG][       Thread-257971][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 14:28:18,502 [DEBUG][       Thread-257971][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 14:28:18,502 [DEBUG][       Thread-257971][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 14:28:18,502 [DEBUG][       Thread-257971][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 14:28:18,502 [DEBUG][       Thread-257971][   transport.py][1871] : Compression: none
2025-06-13 14:28:18,502 [DEBUG][       Thread-257971][   transport.py][1871] : === End of kex handshake ===
2025-06-13 14:28:18,557 [DEBUG][       Thread-257971][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 14:28:18,557 [DEBUG][       Thread-257971][   transport.py][1871] : Switch to new keys ...
2025-06-13 14:28:18,558 [DEBUG][       Thread-257971][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 14:28:18,558 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 14:28:18,558 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 14:28:18,612 [DEBUG][       Thread-257971][   transport.py][1871] : userauth is OK
2025-06-13 14:28:18,612 [DEBUG][       Thread-257971][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 14:28:18,612 [DEBUG][       Thread-257971][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 14:28:18,613 [DEBUG][       Thread-257971][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 14:28:18,613 [DEBUG][       Thread-257971][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 14:28:18,632 [ INFO][       Thread-257971][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 14:28:18,632 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 14:28:18,633 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 14:28:19,636 [DEBUG][       Thread-257971][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 14:28:19,636 [DEBUG][       Thread-257971][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 14:28:19,683 [DEBUG][       Thread-257971][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 14:28:19,684 [DEBUG][       Thread-257971][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 14:28:19,693 [DEBUG][       Thread-257971][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 14:28:19,701 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 14:28:19,701 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 14:28:19,709 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 14:28:19,718 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 14:28:19,718 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 14:28:19,719 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 14:28:19,726 [DEBUG][       Thread-257971][   transport.py][1871] : EOF in transport thread
2025-06-13 14:28:24,106 [DEBUG][Thread-257973 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:28:29,723 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 14:28:29,724 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 14:28:29,724 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 14:28:29,727 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 14:28:30,202 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 14, 28, 9), 17.09, 30.47, 0.0, 19.96, 13.85, 0, 0, 0, 2, 0, 0),)
2025-06-13 14:28:30,202 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 14:28:09
2025-06-13 14:28:30,282 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 14:28:30,286 [DEBUG][       Thread-257974][   transport.py][1871] : starting thread (client mode): 0x863bd240
2025-06-13 14:28:30,287 [DEBUG][       Thread-257974][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 14:28:30,307 [DEBUG][       Thread-257974][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 14:28:30,307 [ INFO][       Thread-257974][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 14:28:30,311 [DEBUG][       Thread-257974][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 14:28:30,311 [DEBUG][       Thread-257974][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 14:28:30,311 [DEBUG][       Thread-257974][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 14:28:30,311 [DEBUG][       Thread-257974][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:28:30,311 [DEBUG][       Thread-257974][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:28:30,311 [DEBUG][       Thread-257974][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:28:30,311 [DEBUG][       Thread-257974][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:28:30,311 [DEBUG][       Thread-257974][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 14:28:30,311 [DEBUG][       Thread-257974][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 14:28:30,311 [DEBUG][       Thread-257974][   transport.py][1871] : client lang: <none>
2025-06-13 14:28:30,311 [DEBUG][       Thread-257974][   transport.py][1871] : server lang: <none>
2025-06-13 14:28:30,311 [DEBUG][       Thread-257974][   transport.py][1871] : kex follows: False
2025-06-13 14:28:30,311 [DEBUG][       Thread-257974][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 14:28:30,311 [DEBUG][       Thread-257974][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 14:28:30,311 [DEBUG][       Thread-257974][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 14:28:30,311 [DEBUG][       Thread-257974][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 14:28:30,311 [DEBUG][       Thread-257974][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 14:28:30,311 [DEBUG][       Thread-257974][   transport.py][1871] : Compression: none
2025-06-13 14:28:30,311 [DEBUG][       Thread-257974][   transport.py][1871] : === End of kex handshake ===
2025-06-13 14:28:30,328 [DEBUG][       Thread-257974][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 14:28:30,328 [DEBUG][       Thread-257974][   transport.py][1871] : Switch to new keys ...
2025-06-13 14:28:30,329 [DEBUG][       Thread-257974][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 14:28:30,329 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 14:28:30,329 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 14:28:30,330 [DEBUG][       Thread-257974][   transport.py][1871] : userauth is OK
2025-06-13 14:28:30,355 [ INFO][       Thread-257974][   transport.py][1871] : Authentication (password) successful!
2025-06-13 14:28:30,355 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 14:28:30,995 [DEBUG][       Thread-257974][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 14:28:30,995 [DEBUG][       Thread-257974][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 14:28:31,037 [DEBUG][       Thread-257974][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 14:28:31,037 [DEBUG][       Thread-257974][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 14:28:31,040 [DEBUG][       Thread-257974][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 14:28:31,053 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 14:28:31,053 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 14:28:31,055 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 14:28:31,057 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 14:28:31,063 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 14:28:31,065 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 14:28:31,065 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 14:28:31,066 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 14:28:31,066 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.519381 -999.00  +13.90  23.10     35   -1.20 1 1 1 1 1   887    0 13.96 -22.73 ----- 22.9 23.1 48.2 30.4 17.8 -30.8 16.7 -32.0 17.2 -31.7 18.4 -28.5
2025-06-13 14:28:31,066 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 14:28:31,066 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 14:28:31,066 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.519381
2025-06-13 14:28:31,067 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 14:28:31,067 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 14:28:31,067 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 14:28:31,067 [DEBUG][       Thread-257974][   transport.py][1871] : EOF in transport thread
2025-06-13 14:28:31,068 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 14:28:31,068 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 14:28:31,068 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T14:28:09', tmtdew=17.09, humidity=30.47, cloud=0.0, wind=19.96, temperature=13.85, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T12:27:54.518', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 14:28:31,151 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 14:28:31,160 [DEBUG][       Thread-257977][   transport.py][1871] : starting thread (client mode): 0x86391ab0
2025-06-13 14:28:31,160 [DEBUG][       Thread-257977][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 14:28:31,176 [DEBUG][       Thread-257977][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 14:28:31,176 [ INFO][       Thread-257977][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 14:28:31,184 [DEBUG][       Thread-257977][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 14:28:31,184 [DEBUG][       Thread-257977][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 14:28:31,184 [DEBUG][       Thread-257977][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 14:28:31,184 [DEBUG][       Thread-257977][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:28:31,184 [DEBUG][       Thread-257977][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:28:31,184 [DEBUG][       Thread-257977][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:28:31,184 [DEBUG][       Thread-257977][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:28:31,184 [DEBUG][       Thread-257977][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 14:28:31,184 [DEBUG][       Thread-257977][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 14:28:31,184 [DEBUG][       Thread-257977][   transport.py][1871] : client lang: <none>
2025-06-13 14:28:31,184 [DEBUG][       Thread-257977][   transport.py][1871] : server lang: <none>
2025-06-13 14:28:31,184 [DEBUG][       Thread-257977][   transport.py][1871] : kex follows: False
2025-06-13 14:28:31,184 [DEBUG][       Thread-257977][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 14:28:31,184 [DEBUG][       Thread-257977][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 14:28:31,184 [DEBUG][       Thread-257977][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 14:28:31,184 [DEBUG][       Thread-257977][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 14:28:31,185 [DEBUG][       Thread-257977][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 14:28:31,185 [DEBUG][       Thread-257977][   transport.py][1871] : Compression: none
2025-06-13 14:28:31,185 [DEBUG][       Thread-257977][   transport.py][1871] : === End of kex handshake ===
2025-06-13 14:28:31,240 [DEBUG][       Thread-257977][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 14:28:31,240 [DEBUG][       Thread-257977][   transport.py][1871] : Switch to new keys ...
2025-06-13 14:28:31,241 [DEBUG][       Thread-257977][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 14:28:31,241 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 14:28:31,242 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 14:28:31,296 [DEBUG][       Thread-257977][   transport.py][1871] : userauth is OK
2025-06-13 14:28:31,296 [DEBUG][       Thread-257977][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 14:28:31,296 [DEBUG][       Thread-257977][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 14:28:31,296 [DEBUG][       Thread-257977][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 14:28:31,297 [DEBUG][       Thread-257977][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 14:28:31,315 [ INFO][       Thread-257977][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 14:28:31,316 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 14:28:31,316 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 14:28:32,372 [DEBUG][       Thread-257977][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 14:28:32,373 [DEBUG][       Thread-257977][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 14:28:32,424 [DEBUG][       Thread-257977][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 14:28:32,424 [DEBUG][       Thread-257977][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 14:28:32,433 [DEBUG][       Thread-257977][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 14:28:32,442 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 14:28:32,442 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 14:28:32,451 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 14:28:32,460 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 14:28:32,460 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 14:28:32,461 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 14:28:32,469 [DEBUG][       Thread-257977][   transport.py][1871] : EOF in transport thread
2025-06-13 14:28:33,141 [DEBUG][Thread-257979 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:28:41,472 [DEBUG][Thread-257980 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:28:42,162 [DEBUG][Thread-257981 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:28:42,468 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 14:28:42,468 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 14:28:42,468 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 14:28:42,469 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 14:28:42,526 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:28:42,526 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:28:42,959 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 14, 28, 9), 17.09, 30.47, 0.0, 19.96, 13.85, 0, 0, 0, 2, 0, 0),)
2025-06-13 14:28:42,959 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 14:28:09
2025-06-13 14:28:43,046 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 14:28:43,052 [DEBUG][       Thread-257982][   transport.py][1871] : starting thread (client mode): 0x863bfd90
2025-06-13 14:28:43,052 [DEBUG][       Thread-257982][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 14:28:43,066 [DEBUG][       Thread-257982][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 14:28:43,066 [ INFO][       Thread-257982][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 14:28:43,069 [DEBUG][       Thread-257982][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 14:28:43,069 [DEBUG][       Thread-257982][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 14:28:43,069 [DEBUG][       Thread-257982][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 14:28:43,069 [DEBUG][       Thread-257982][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:28:43,069 [DEBUG][       Thread-257982][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:28:43,069 [DEBUG][       Thread-257982][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:28:43,069 [DEBUG][       Thread-257982][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:28:43,070 [DEBUG][       Thread-257982][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 14:28:43,070 [DEBUG][       Thread-257982][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 14:28:43,070 [DEBUG][       Thread-257982][   transport.py][1871] : client lang: <none>
2025-06-13 14:28:43,070 [DEBUG][       Thread-257982][   transport.py][1871] : server lang: <none>
2025-06-13 14:28:43,070 [DEBUG][       Thread-257982][   transport.py][1871] : kex follows: False
2025-06-13 14:28:43,070 [DEBUG][       Thread-257982][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 14:28:43,070 [DEBUG][       Thread-257982][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 14:28:43,070 [DEBUG][       Thread-257982][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 14:28:43,070 [DEBUG][       Thread-257982][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 14:28:43,070 [DEBUG][       Thread-257982][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 14:28:43,070 [DEBUG][       Thread-257982][   transport.py][1871] : Compression: none
2025-06-13 14:28:43,070 [DEBUG][       Thread-257982][   transport.py][1871] : === End of kex handshake ===
2025-06-13 14:28:43,087 [DEBUG][       Thread-257982][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 14:28:43,087 [DEBUG][       Thread-257982][   transport.py][1871] : Switch to new keys ...
2025-06-13 14:28:43,088 [DEBUG][       Thread-257982][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 14:28:43,088 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 14:28:43,088 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 14:28:43,089 [DEBUG][       Thread-257982][   transport.py][1871] : userauth is OK
2025-06-13 14:28:43,114 [ INFO][       Thread-257982][   transport.py][1871] : Authentication (password) successful!
2025-06-13 14:28:43,114 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 14:28:43,709 [DEBUG][       Thread-257982][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 14:28:43,709 [DEBUG][       Thread-257982][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 14:28:43,753 [DEBUG][       Thread-257982][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 14:28:43,753 [DEBUG][       Thread-257982][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 14:28:43,756 [DEBUG][       Thread-257982][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 14:28:43,764 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 14:28:43,764 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 14:28:43,766 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 14:28:43,768 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 14:28:43,773 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 14:28:43,775 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 14:28:43,775 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 14:28:43,776 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 14:28:43,776 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.519728 -999.00  +13.70  26.89     34   -1.60 1 1 1 1 1   887    0 14.13 -20.41 ----- 28.1 26.9 45.4 31.3 17.8 -30.8 16.7 -32.4 17.1 -31.1 18.4 -29.1
2025-06-13 14:28:43,776 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 14:28:43,776 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 14:28:43,776 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.519728
2025-06-13 14:28:43,777 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 14:28:43,778 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 14:28:43,778 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 14:28:43,778 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 14:28:43,778 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 14:28:43,778 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T14:28:09', tmtdew=17.09, humidity=30.47, cloud=0.0, wind=19.96, temperature=13.85, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T12:28:24.499', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 14:28:43,779 [DEBUG][       Thread-257982][   transport.py][1871] : EOF in transport thread
2025-06-13 14:28:43,861 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 14:28:43,873 [DEBUG][       Thread-257985][   transport.py][1871] : starting thread (client mode): 0x86351000
2025-06-13 14:28:43,873 [DEBUG][       Thread-257985][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 14:28:43,887 [DEBUG][       Thread-257985][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 14:28:43,888 [ INFO][       Thread-257985][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 14:28:43,895 [DEBUG][       Thread-257985][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 14:28:43,896 [DEBUG][       Thread-257985][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 14:28:43,896 [DEBUG][       Thread-257985][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 14:28:43,896 [DEBUG][       Thread-257985][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:28:43,896 [DEBUG][       Thread-257985][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:28:43,896 [DEBUG][       Thread-257985][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:28:43,896 [DEBUG][       Thread-257985][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:28:43,896 [DEBUG][       Thread-257985][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 14:28:43,896 [DEBUG][       Thread-257985][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 14:28:43,896 [DEBUG][       Thread-257985][   transport.py][1871] : client lang: <none>
2025-06-13 14:28:43,896 [DEBUG][       Thread-257985][   transport.py][1871] : server lang: <none>
2025-06-13 14:28:43,896 [DEBUG][       Thread-257985][   transport.py][1871] : kex follows: False
2025-06-13 14:28:43,896 [DEBUG][       Thread-257985][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 14:28:43,896 [DEBUG][       Thread-257985][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 14:28:43,896 [DEBUG][       Thread-257985][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 14:28:43,896 [DEBUG][       Thread-257985][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 14:28:43,896 [DEBUG][       Thread-257985][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 14:28:43,896 [DEBUG][       Thread-257985][   transport.py][1871] : Compression: none
2025-06-13 14:28:43,896 [DEBUG][       Thread-257985][   transport.py][1871] : === End of kex handshake ===
2025-06-13 14:28:43,952 [DEBUG][       Thread-257985][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 14:28:43,953 [DEBUG][       Thread-257985][   transport.py][1871] : Switch to new keys ...
2025-06-13 14:28:43,954 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 14:28:43,954 [DEBUG][       Thread-257985][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 14:28:43,955 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 14:28:44,008 [DEBUG][       Thread-257985][   transport.py][1871] : userauth is OK
2025-06-13 14:28:44,009 [DEBUG][       Thread-257985][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 14:28:44,009 [DEBUG][       Thread-257985][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 14:28:44,009 [DEBUG][       Thread-257985][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 14:28:44,009 [DEBUG][       Thread-257985][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 14:28:44,028 [ INFO][       Thread-257985][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 14:28:44,028 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 14:28:44,029 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 14:28:45,058 [DEBUG][       Thread-257985][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 14:28:45,058 [DEBUG][       Thread-257985][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 14:28:45,108 [DEBUG][       Thread-257985][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 14:28:45,108 [DEBUG][       Thread-257985][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 14:28:45,117 [DEBUG][       Thread-257985][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 14:28:45,127 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 14:28:45,127 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 14:28:45,136 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 14:28:45,145 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 14:28:45,146 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 14:28:45,146 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 14:28:45,154 [DEBUG][       Thread-257985][   transport.py][1871] : EOF in transport thread
2025-06-13 14:28:51,183 [DEBUG][Thread-257987 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:28:55,156 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 14:28:55,157 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 14:28:55,157 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 14:28:55,160 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 14:28:55,625 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 14, 28, 40), 17.23, 30.32, 0.0, 22.62, 13.8, 0, 0, 0, 2, 0, 0),)
2025-06-13 14:28:55,625 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 14:28:40
2025-06-13 14:28:55,706 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 14:28:55,710 [DEBUG][       Thread-257988][   transport.py][1871] : starting thread (client mode): 0x863bf310
2025-06-13 14:28:55,710 [DEBUG][       Thread-257988][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 14:28:55,731 [DEBUG][       Thread-257988][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 14:28:55,731 [ INFO][       Thread-257988][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 14:28:55,734 [DEBUG][       Thread-257988][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 14:28:55,734 [DEBUG][       Thread-257988][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 14:28:55,734 [DEBUG][       Thread-257988][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 14:28:55,734 [DEBUG][       Thread-257988][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:28:55,734 [DEBUG][       Thread-257988][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:28:55,734 [DEBUG][       Thread-257988][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:28:55,734 [DEBUG][       Thread-257988][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:28:55,734 [DEBUG][       Thread-257988][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 14:28:55,734 [DEBUG][       Thread-257988][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 14:28:55,734 [DEBUG][       Thread-257988][   transport.py][1871] : client lang: <none>
2025-06-13 14:28:55,734 [DEBUG][       Thread-257988][   transport.py][1871] : server lang: <none>
2025-06-13 14:28:55,734 [DEBUG][       Thread-257988][   transport.py][1871] : kex follows: False
2025-06-13 14:28:55,735 [DEBUG][       Thread-257988][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 14:28:55,735 [DEBUG][       Thread-257988][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 14:28:55,735 [DEBUG][       Thread-257988][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 14:28:55,735 [DEBUG][       Thread-257988][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 14:28:55,735 [DEBUG][       Thread-257988][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 14:28:55,735 [DEBUG][       Thread-257988][   transport.py][1871] : Compression: none
2025-06-13 14:28:55,735 [DEBUG][       Thread-257988][   transport.py][1871] : === End of kex handshake ===
2025-06-13 14:28:55,752 [DEBUG][       Thread-257988][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 14:28:55,753 [DEBUG][       Thread-257988][   transport.py][1871] : Switch to new keys ...
2025-06-13 14:28:55,753 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 14:28:55,754 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 14:28:55,754 [DEBUG][       Thread-257988][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 14:28:55,755 [DEBUG][       Thread-257988][   transport.py][1871] : userauth is OK
2025-06-13 14:28:55,768 [ INFO][       Thread-257988][   transport.py][1871] : Authentication (password) successful!
2025-06-13 14:28:55,769 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 14:28:56,391 [DEBUG][       Thread-257988][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 14:28:56,392 [DEBUG][       Thread-257988][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 14:28:56,433 [DEBUG][       Thread-257988][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 14:28:56,433 [DEBUG][       Thread-257988][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 14:28:56,437 [DEBUG][       Thread-257988][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 14:28:56,449 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 14:28:56,450 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 14:28:56,451 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 14:28:56,453 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 14:28:56,459 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 14:28:56,461 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 14:28:56,461 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 14:28:56,462 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 14:28:56,462 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.519728 -999.00  +13.70  26.89     34   -1.60 1 1 1 1 1   887    0 14.13 -20.41 ----- 28.1 26.9 45.4 31.3 17.8 -30.8 16.7 -32.4 17.1 -31.1 18.4 -29.1
2025-06-13 14:28:56,462 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 14:28:56,462 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 14:28:56,462 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.519728
2025-06-13 14:28:56,462 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 14:28:56,463 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 14:28:56,463 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 14:28:56,463 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 14:28:56,463 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 14:28:56,463 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T14:28:40', tmtdew=17.23, humidity=30.32, cloud=0.0, wind=22.62, temperature=13.8, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T12:28:24.499', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 14:28:56,464 [DEBUG][       Thread-257988][   transport.py][1871] : EOF in transport thread
2025-06-13 14:28:56,547 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 14:28:56,556 [DEBUG][       Thread-257991][   transport.py][1871] : starting thread (client mode): 0x863c8250
2025-06-13 14:28:56,556 [DEBUG][       Thread-257991][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 14:28:56,572 [DEBUG][       Thread-257991][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 14:28:56,572 [ INFO][       Thread-257991][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 14:28:56,579 [DEBUG][       Thread-257991][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 14:28:56,579 [DEBUG][       Thread-257991][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 14:28:56,579 [DEBUG][       Thread-257991][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 14:28:56,579 [DEBUG][       Thread-257991][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:28:56,579 [DEBUG][       Thread-257991][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:28:56,579 [DEBUG][       Thread-257991][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:28:56,579 [DEBUG][       Thread-257991][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:28:56,579 [DEBUG][       Thread-257991][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 14:28:56,579 [DEBUG][       Thread-257991][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 14:28:56,579 [DEBUG][       Thread-257991][   transport.py][1871] : client lang: <none>
2025-06-13 14:28:56,579 [DEBUG][       Thread-257991][   transport.py][1871] : server lang: <none>
2025-06-13 14:28:56,579 [DEBUG][       Thread-257991][   transport.py][1871] : kex follows: False
2025-06-13 14:28:56,580 [DEBUG][       Thread-257991][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 14:28:56,580 [DEBUG][       Thread-257991][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 14:28:56,580 [DEBUG][       Thread-257991][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 14:28:56,580 [DEBUG][       Thread-257991][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 14:28:56,580 [DEBUG][       Thread-257991][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 14:28:56,580 [DEBUG][       Thread-257991][   transport.py][1871] : Compression: none
2025-06-13 14:28:56,580 [DEBUG][       Thread-257991][   transport.py][1871] : === End of kex handshake ===
2025-06-13 14:28:56,636 [DEBUG][       Thread-257991][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 14:28:56,636 [DEBUG][       Thread-257991][   transport.py][1871] : Switch to new keys ...
2025-06-13 14:28:56,637 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 14:28:56,637 [DEBUG][       Thread-257991][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 14:28:56,638 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 14:28:56,692 [DEBUG][       Thread-257991][   transport.py][1871] : userauth is OK
2025-06-13 14:28:56,692 [DEBUG][       Thread-257991][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 14:28:56,693 [DEBUG][       Thread-257991][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 14:28:56,693 [DEBUG][       Thread-257991][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 14:28:56,693 [DEBUG][       Thread-257991][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 14:28:56,715 [ INFO][       Thread-257991][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 14:28:56,715 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 14:28:56,716 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 14:28:57,743 [DEBUG][       Thread-257991][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 14:28:57,743 [DEBUG][       Thread-257991][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 14:28:57,792 [DEBUG][       Thread-257991][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 14:28:57,792 [DEBUG][       Thread-257991][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 14:28:57,802 [DEBUG][       Thread-257991][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 14:28:57,810 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 14:28:57,811 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 14:28:57,819 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 14:28:57,829 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 14:28:57,830 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 14:28:57,830 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 14:28:57,839 [DEBUG][       Thread-257991][   transport.py][1871] : EOF in transport thread
2025-06-13 14:29:00,205 [DEBUG][Thread-257993 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:29:01,005 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:29:01,006 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:29:07,837 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 14:29:07,838 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 14:29:07,838 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 14:29:07,841 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 14:29:08,321 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 14, 28, 40), 17.23, 30.32, 0.0, 22.62, 13.8, 0, 0, 0, 2, 0, 0),)
2025-06-13 14:29:08,321 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 14:28:40
2025-06-13 14:29:08,401 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 14:29:08,407 [DEBUG][       Thread-257994][   transport.py][1871] : starting thread (client mode): 0x86390970
2025-06-13 14:29:08,407 [DEBUG][       Thread-257994][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 14:29:08,428 [DEBUG][       Thread-257994][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 14:29:08,428 [ INFO][       Thread-257994][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 14:29:08,429 [DEBUG][       Thread-257994][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 14:29:08,429 [DEBUG][       Thread-257994][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 14:29:08,429 [DEBUG][       Thread-257994][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 14:29:08,429 [DEBUG][       Thread-257994][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:29:08,429 [DEBUG][       Thread-257994][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:29:08,429 [DEBUG][       Thread-257994][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:29:08,429 [DEBUG][       Thread-257994][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:29:08,429 [DEBUG][       Thread-257994][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 14:29:08,429 [DEBUG][       Thread-257994][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 14:29:08,429 [DEBUG][       Thread-257994][   transport.py][1871] : client lang: <none>
2025-06-13 14:29:08,429 [DEBUG][       Thread-257994][   transport.py][1871] : server lang: <none>
2025-06-13 14:29:08,429 [DEBUG][       Thread-257994][   transport.py][1871] : kex follows: False
2025-06-13 14:29:08,429 [DEBUG][       Thread-257994][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 14:29:08,429 [DEBUG][       Thread-257994][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 14:29:08,429 [DEBUG][       Thread-257994][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 14:29:08,429 [DEBUG][       Thread-257994][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 14:29:08,429 [DEBUG][       Thread-257994][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 14:29:08,429 [DEBUG][       Thread-257994][   transport.py][1871] : Compression: none
2025-06-13 14:29:08,429 [DEBUG][       Thread-257994][   transport.py][1871] : === End of kex handshake ===
2025-06-13 14:29:08,437 [DEBUG][       Thread-257994][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 14:29:08,438 [DEBUG][       Thread-257994][   transport.py][1871] : Switch to new keys ...
2025-06-13 14:29:08,438 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 14:29:08,438 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 14:29:08,439 [DEBUG][       Thread-257994][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 14:29:08,439 [DEBUG][       Thread-257994][   transport.py][1871] : userauth is OK
2025-06-13 14:29:08,452 [ INFO][       Thread-257994][   transport.py][1871] : Authentication (password) successful!
2025-06-13 14:29:08,453 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 14:29:09,081 [DEBUG][       Thread-257994][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 14:29:09,081 [DEBUG][       Thread-257994][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 14:29:09,125 [DEBUG][       Thread-257994][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 14:29:09,125 [DEBUG][       Thread-257994][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 14:29:09,129 [DEBUG][       Thread-257994][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 14:29:09,138 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 14:29:09,138 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 14:29:09,140 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 14:29:09,143 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 14:29:09,149 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 14:29:09,151 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 14:29:09,151 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 14:29:09,152 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 14:29:09,152 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.519728 -999.00  +13.70  26.89     34   -1.60 1 1 1 1 1   887    0 14.13 -20.41 ----- 28.1 26.9 45.4 31.3 17.8 -30.8 16.7 -32.4 17.1 -31.1 18.4 -29.1
2025-06-13 14:29:09,152 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 14:29:09,152 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 14:29:09,152 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.519728
2025-06-13 14:29:09,153 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 14:29:09,153 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 14:29:09,154 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 14:29:09,154 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 14:29:09,154 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 14:29:09,154 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T14:28:40', tmtdew=17.23, humidity=30.32, cloud=0.0, wind=22.62, temperature=13.8, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T12:28:24.499', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 14:29:09,155 [DEBUG][       Thread-257994][   transport.py][1871] : EOF in transport thread
2025-06-13 14:29:09,239 [DEBUG][Thread-257997 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:29:09,239 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 14:29:09,251 [DEBUG][       Thread-257998][   transport.py][1871] : starting thread (client mode): 0x863c8fd0
2025-06-13 14:29:09,251 [DEBUG][       Thread-257998][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 14:29:09,266 [DEBUG][       Thread-257998][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 14:29:09,266 [ INFO][       Thread-257998][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 14:29:09,274 [DEBUG][       Thread-257998][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 14:29:09,274 [DEBUG][       Thread-257998][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 14:29:09,274 [DEBUG][       Thread-257998][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 14:29:09,274 [DEBUG][       Thread-257998][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:29:09,274 [DEBUG][       Thread-257998][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:29:09,274 [DEBUG][       Thread-257998][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:29:09,274 [DEBUG][       Thread-257998][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:29:09,274 [DEBUG][       Thread-257998][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 14:29:09,274 [DEBUG][       Thread-257998][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 14:29:09,274 [DEBUG][       Thread-257998][   transport.py][1871] : client lang: <none>
2025-06-13 14:29:09,274 [DEBUG][       Thread-257998][   transport.py][1871] : server lang: <none>
2025-06-13 14:29:09,274 [DEBUG][       Thread-257998][   transport.py][1871] : kex follows: False
2025-06-13 14:29:09,274 [DEBUG][       Thread-257998][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 14:29:09,274 [DEBUG][       Thread-257998][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 14:29:09,274 [DEBUG][       Thread-257998][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 14:29:09,274 [DEBUG][       Thread-257998][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 14:29:09,274 [DEBUG][       Thread-257998][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 14:29:09,274 [DEBUG][       Thread-257998][   transport.py][1871] : Compression: none
2025-06-13 14:29:09,274 [DEBUG][       Thread-257998][   transport.py][1871] : === End of kex handshake ===
2025-06-13 14:29:09,332 [DEBUG][       Thread-257998][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 14:29:09,333 [DEBUG][       Thread-257998][   transport.py][1871] : Switch to new keys ...
2025-06-13 14:29:09,333 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 14:29:09,334 [DEBUG][       Thread-257998][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 14:29:09,335 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 14:29:09,388 [DEBUG][       Thread-257998][   transport.py][1871] : userauth is OK
2025-06-13 14:29:09,388 [DEBUG][       Thread-257998][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 14:29:09,388 [DEBUG][       Thread-257998][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 14:29:09,388 [DEBUG][       Thread-257998][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 14:29:09,389 [DEBUG][       Thread-257998][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 14:29:09,408 [ INFO][       Thread-257998][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 14:29:09,408 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 14:29:09,409 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 14:29:10,462 [DEBUG][       Thread-257998][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 14:29:10,462 [DEBUG][       Thread-257998][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 14:29:10,512 [DEBUG][       Thread-257998][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 14:29:10,512 [DEBUG][       Thread-257998][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 14:29:10,521 [DEBUG][       Thread-257998][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 14:29:10,531 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 14:29:10,531 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 14:29:10,539 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 14:29:10,549 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 14:29:10,549 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 14:29:10,549 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 14:29:10,558 [DEBUG][       Thread-257998][   transport.py][1871] : EOF in transport thread
2025-06-13 14:29:18,197 [DEBUG][Thread-258000 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:29:18,256 [DEBUG][Thread-258001 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:29:20,560 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 14:29:20,560 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 14:29:20,560 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 14:29:20,561 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 14:29:21,028 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 14, 29, 12), 17.38, 29.88, 0.0, 25.06, 13.77, 0, 0, 0, 2, 0, 0),)
2025-06-13 14:29:21,029 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 14:29:12
2025-06-13 14:29:21,107 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 14:29:21,112 [DEBUG][       Thread-258002][   transport.py][1871] : starting thread (client mode): 0x86391f30
2025-06-13 14:29:21,112 [DEBUG][       Thread-258002][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 14:29:21,133 [DEBUG][       Thread-258002][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 14:29:21,133 [ INFO][       Thread-258002][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 14:29:21,136 [DEBUG][       Thread-258002][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 14:29:21,136 [DEBUG][       Thread-258002][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 14:29:21,136 [DEBUG][       Thread-258002][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 14:29:21,136 [DEBUG][       Thread-258002][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:29:21,136 [DEBUG][       Thread-258002][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:29:21,136 [DEBUG][       Thread-258002][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:29:21,137 [DEBUG][       Thread-258002][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:29:21,137 [DEBUG][       Thread-258002][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 14:29:21,137 [DEBUG][       Thread-258002][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 14:29:21,137 [DEBUG][       Thread-258002][   transport.py][1871] : client lang: <none>
2025-06-13 14:29:21,137 [DEBUG][       Thread-258002][   transport.py][1871] : server lang: <none>
2025-06-13 14:29:21,137 [DEBUG][       Thread-258002][   transport.py][1871] : kex follows: False
2025-06-13 14:29:21,137 [DEBUG][       Thread-258002][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 14:29:21,137 [DEBUG][       Thread-258002][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 14:29:21,137 [DEBUG][       Thread-258002][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 14:29:21,137 [DEBUG][       Thread-258002][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 14:29:21,137 [DEBUG][       Thread-258002][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 14:29:21,137 [DEBUG][       Thread-258002][   transport.py][1871] : Compression: none
2025-06-13 14:29:21,137 [DEBUG][       Thread-258002][   transport.py][1871] : === End of kex handshake ===
2025-06-13 14:29:21,154 [DEBUG][       Thread-258002][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 14:29:21,155 [DEBUG][       Thread-258002][   transport.py][1871] : Switch to new keys ...
2025-06-13 14:29:21,156 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 14:29:21,156 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 14:29:21,156 [DEBUG][       Thread-258002][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 14:29:21,157 [DEBUG][       Thread-258002][   transport.py][1871] : userauth is OK
2025-06-13 14:29:21,170 [ INFO][       Thread-258002][   transport.py][1871] : Authentication (password) successful!
2025-06-13 14:29:21,171 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 14:29:21,762 [DEBUG][       Thread-258002][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 14:29:21,763 [DEBUG][       Thread-258002][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 14:29:21,805 [DEBUG][       Thread-258002][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 14:29:21,805 [DEBUG][       Thread-258002][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 14:29:21,809 [DEBUG][       Thread-258002][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 14:29:21,822 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 14:29:21,823 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 14:29:21,824 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 14:29:21,826 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 14:29:21,832 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 14:29:21,834 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 14:29:21,834 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 14:29:21,835 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 14:29:21,835 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.520075 -999.00  +13.60  22.98     34   -1.90 1 1 1 1 1   887    0 14.24 -13.81 ----- 26.6 23.0 48.4 29.1 17.6 -31.4 16.6 -32.8 17.1 -31.7 18.3 -29.2
2025-06-13 14:29:21,835 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 14:29:21,835 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 14:29:21,835 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.520075
2025-06-13 14:29:21,836 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 14:29:21,836 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 14:29:21,836 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 14:29:21,836 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 14:29:21,837 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 14:29:21,837 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T14:29:12', tmtdew=17.38, humidity=29.88, cloud=0.0, wind=25.06, temperature=13.77, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T12:28:54.480', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 14:29:21,837 [DEBUG][       Thread-258002][   transport.py][1871] : EOF in transport thread
2025-06-13 14:29:21,920 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 14:29:21,931 [DEBUG][       Thread-258005][   transport.py][1871] : starting thread (client mode): 0x863be230
2025-06-13 14:29:21,931 [DEBUG][       Thread-258005][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 14:29:21,949 [DEBUG][       Thread-258005][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 14:29:21,949 [ INFO][       Thread-258005][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 14:29:21,959 [DEBUG][       Thread-258005][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 14:29:21,960 [DEBUG][       Thread-258005][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 14:29:21,960 [DEBUG][       Thread-258005][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 14:29:21,960 [DEBUG][       Thread-258005][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:29:21,960 [DEBUG][       Thread-258005][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:29:21,960 [DEBUG][       Thread-258005][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:29:21,960 [DEBUG][       Thread-258005][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:29:21,960 [DEBUG][       Thread-258005][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 14:29:21,960 [DEBUG][       Thread-258005][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 14:29:21,960 [DEBUG][       Thread-258005][   transport.py][1871] : client lang: <none>
2025-06-13 14:29:21,960 [DEBUG][       Thread-258005][   transport.py][1871] : server lang: <none>
2025-06-13 14:29:21,960 [DEBUG][       Thread-258005][   transport.py][1871] : kex follows: False
2025-06-13 14:29:21,960 [DEBUG][       Thread-258005][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 14:29:21,960 [DEBUG][       Thread-258005][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 14:29:21,961 [DEBUG][       Thread-258005][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 14:29:21,961 [DEBUG][       Thread-258005][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 14:29:21,961 [DEBUG][       Thread-258005][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 14:29:21,961 [DEBUG][       Thread-258005][   transport.py][1871] : Compression: none
2025-06-13 14:29:21,961 [DEBUG][       Thread-258005][   transport.py][1871] : === End of kex handshake ===
2025-06-13 14:29:22,020 [DEBUG][       Thread-258005][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 14:29:22,020 [DEBUG][       Thread-258005][   transport.py][1871] : Switch to new keys ...
2025-06-13 14:29:22,021 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 14:29:22,021 [DEBUG][       Thread-258005][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 14:29:22,022 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 14:29:22,076 [DEBUG][       Thread-258005][   transport.py][1871] : userauth is OK
2025-06-13 14:29:22,076 [DEBUG][       Thread-258005][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 14:29:22,076 [DEBUG][       Thread-258005][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 14:29:22,077 [DEBUG][       Thread-258005][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 14:29:22,077 [DEBUG][       Thread-258005][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 14:29:22,099 [ INFO][       Thread-258005][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 14:29:22,099 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 14:29:22,100 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 14:29:23,129 [DEBUG][       Thread-258005][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 14:29:23,129 [DEBUG][       Thread-258005][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 14:29:23,180 [DEBUG][       Thread-258005][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 14:29:23,180 [DEBUG][       Thread-258005][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 14:29:23,191 [DEBUG][       Thread-258005][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 14:29:23,200 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 14:29:23,200 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 14:29:23,215 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 14:29:23,227 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 14:29:23,227 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 14:29:23,228 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 14:29:23,236 [DEBUG][       Thread-258005][   transport.py][1871] : EOF in transport thread
2025-06-13 14:29:27,277 [DEBUG][Thread-258007 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:29:33,238 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 14:29:33,239 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 14:29:33,239 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 14:29:33,242 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 14:29:33,709 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 14, 29, 12), 17.38, 29.88, 0.0, 25.06, 13.77, 0, 0, 0, 2, 0, 0),)
2025-06-13 14:29:33,710 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 14:29:12
2025-06-13 14:29:33,786 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 14:29:33,790 [DEBUG][       Thread-258008][   transport.py][1871] : starting thread (client mode): 0x863bd0f0
2025-06-13 14:29:33,790 [DEBUG][       Thread-258008][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 14:29:33,812 [DEBUG][       Thread-258008][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 14:29:33,812 [ INFO][       Thread-258008][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 14:29:33,815 [DEBUG][       Thread-258008][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 14:29:33,815 [DEBUG][       Thread-258008][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 14:29:33,815 [DEBUG][       Thread-258008][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 14:29:33,815 [DEBUG][       Thread-258008][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:29:33,816 [DEBUG][       Thread-258008][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:29:33,816 [DEBUG][       Thread-258008][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:29:33,816 [DEBUG][       Thread-258008][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:29:33,816 [DEBUG][       Thread-258008][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 14:29:33,816 [DEBUG][       Thread-258008][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 14:29:33,816 [DEBUG][       Thread-258008][   transport.py][1871] : client lang: <none>
2025-06-13 14:29:33,816 [DEBUG][       Thread-258008][   transport.py][1871] : server lang: <none>
2025-06-13 14:29:33,816 [DEBUG][       Thread-258008][   transport.py][1871] : kex follows: False
2025-06-13 14:29:33,816 [DEBUG][       Thread-258008][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 14:29:33,816 [DEBUG][       Thread-258008][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 14:29:33,816 [DEBUG][       Thread-258008][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 14:29:33,816 [DEBUG][       Thread-258008][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 14:29:33,816 [DEBUG][       Thread-258008][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 14:29:33,816 [DEBUG][       Thread-258008][   transport.py][1871] : Compression: none
2025-06-13 14:29:33,816 [DEBUG][       Thread-258008][   transport.py][1871] : === End of kex handshake ===
2025-06-13 14:29:33,836 [DEBUG][       Thread-258008][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 14:29:33,837 [DEBUG][       Thread-258008][   transport.py][1871] : Switch to new keys ...
2025-06-13 14:29:33,838 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 14:29:33,838 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 14:29:33,838 [DEBUG][       Thread-258008][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 14:29:33,839 [DEBUG][       Thread-258008][   transport.py][1871] : userauth is OK
2025-06-13 14:29:33,864 [ INFO][       Thread-258008][   transport.py][1871] : Authentication (password) successful!
2025-06-13 14:29:33,865 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 14:29:34,494 [DEBUG][       Thread-258008][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 14:29:34,494 [DEBUG][       Thread-258008][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 14:29:34,537 [DEBUG][       Thread-258008][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 14:29:34,537 [DEBUG][       Thread-258008][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 14:29:34,540 [DEBUG][       Thread-258008][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 14:29:34,554 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 14:29:34,554 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 14:29:34,556 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 14:29:34,558 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 14:29:34,564 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 14:29:34,566 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 14:29:34,567 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 14:29:34,567 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 14:29:34,568 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.520075 -999.00  +13.60  22.98     34   -1.90 1 1 1 1 1   887    0 14.24 -13.81 ----- 26.6 23.0 48.4 29.1 17.6 -31.4 16.6 -32.8 17.1 -31.7 18.3 -29.2
2025-06-13 14:29:34,568 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 14:29:34,568 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 14:29:34,568 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.520075
2025-06-13 14:29:34,568 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 14:29:34,569 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 14:29:34,569 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 14:29:34,569 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 14:29:34,569 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 14:29:34,569 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T14:29:12', tmtdew=17.38, humidity=29.88, cloud=0.0, wind=25.06, temperature=13.77, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T12:28:54.480', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 14:29:34,570 [DEBUG][       Thread-258008][   transport.py][1871] : EOF in transport thread
2025-06-13 14:29:34,652 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 14:29:34,663 [DEBUG][       Thread-258011][   transport.py][1871] : starting thread (client mode): 0x867b78b0
2025-06-13 14:29:34,663 [DEBUG][       Thread-258011][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 14:29:34,678 [DEBUG][       Thread-258011][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 14:29:34,678 [ INFO][       Thread-258011][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 14:29:34,685 [DEBUG][       Thread-258011][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 14:29:34,686 [DEBUG][       Thread-258011][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 14:29:34,686 [DEBUG][       Thread-258011][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 14:29:34,686 [DEBUG][       Thread-258011][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:29:34,686 [DEBUG][       Thread-258011][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:29:34,686 [DEBUG][       Thread-258011][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:29:34,686 [DEBUG][       Thread-258011][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:29:34,686 [DEBUG][       Thread-258011][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 14:29:34,686 [DEBUG][       Thread-258011][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 14:29:34,686 [DEBUG][       Thread-258011][   transport.py][1871] : client lang: <none>
2025-06-13 14:29:34,686 [DEBUG][       Thread-258011][   transport.py][1871] : server lang: <none>
2025-06-13 14:29:34,686 [DEBUG][       Thread-258011][   transport.py][1871] : kex follows: False
2025-06-13 14:29:34,686 [DEBUG][       Thread-258011][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 14:29:34,686 [DEBUG][       Thread-258011][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 14:29:34,686 [DEBUG][       Thread-258011][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 14:29:34,686 [DEBUG][       Thread-258011][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 14:29:34,686 [DEBUG][       Thread-258011][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 14:29:34,686 [DEBUG][       Thread-258011][   transport.py][1871] : Compression: none
2025-06-13 14:29:34,686 [DEBUG][       Thread-258011][   transport.py][1871] : === End of kex handshake ===
2025-06-13 14:29:34,744 [DEBUG][       Thread-258011][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 14:29:34,744 [DEBUG][       Thread-258011][   transport.py][1871] : Switch to new keys ...
2025-06-13 14:29:34,745 [DEBUG][       Thread-258011][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 14:29:34,745 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 14:29:34,746 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 14:29:34,804 [DEBUG][       Thread-258011][   transport.py][1871] : userauth is OK
2025-06-13 14:29:34,804 [DEBUG][       Thread-258011][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 14:29:34,804 [DEBUG][       Thread-258011][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 14:29:34,804 [DEBUG][       Thread-258011][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 14:29:34,804 [DEBUG][       Thread-258011][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 14:29:34,825 [ INFO][       Thread-258011][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 14:29:34,826 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 14:29:34,826 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 14:29:35,853 [DEBUG][       Thread-258011][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 14:29:35,853 [DEBUG][       Thread-258011][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 14:29:35,904 [DEBUG][       Thread-258011][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 14:29:35,904 [DEBUG][       Thread-258011][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 14:29:35,914 [DEBUG][       Thread-258011][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 14:29:35,923 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 14:29:35,923 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 14:29:35,932 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 14:29:35,942 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 14:29:35,942 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 14:29:35,943 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 14:29:35,951 [DEBUG][       Thread-258011][   transport.py][1871] : EOF in transport thread
2025-06-13 14:29:36,313 [DEBUG][Thread-258013 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:29:42,593 [DEBUG][Thread-258014 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:29:43,671 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:29:43,672 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:29:45,335 [DEBUG][Thread-258015 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:29:45,953 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 14:29:45,953 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 14:29:45,953 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 14:29:45,954 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 14:29:46,445 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 14, 29, 12), 17.38, 29.88, 0.0, 25.06, 13.77, 0, 0, 0, 2, 0, 0),)
2025-06-13 14:29:46,445 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 14:29:12
2025-06-13 14:29:46,520 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 14:29:46,525 [DEBUG][       Thread-258016][   transport.py][1871] : starting thread (client mode): 0x86390220
2025-06-13 14:29:46,525 [DEBUG][       Thread-258016][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 14:29:46,545 [DEBUG][       Thread-258016][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 14:29:46,545 [ INFO][       Thread-258016][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 14:29:46,548 [DEBUG][       Thread-258016][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 14:29:46,548 [DEBUG][       Thread-258016][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 14:29:46,548 [DEBUG][       Thread-258016][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 14:29:46,548 [DEBUG][       Thread-258016][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:29:46,548 [DEBUG][       Thread-258016][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:29:46,548 [DEBUG][       Thread-258016][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:29:46,548 [DEBUG][       Thread-258016][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:29:46,548 [DEBUG][       Thread-258016][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 14:29:46,548 [DEBUG][       Thread-258016][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 14:29:46,548 [DEBUG][       Thread-258016][   transport.py][1871] : client lang: <none>
2025-06-13 14:29:46,548 [DEBUG][       Thread-258016][   transport.py][1871] : server lang: <none>
2025-06-13 14:29:46,548 [DEBUG][       Thread-258016][   transport.py][1871] : kex follows: False
2025-06-13 14:29:46,548 [DEBUG][       Thread-258016][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 14:29:46,548 [DEBUG][       Thread-258016][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 14:29:46,548 [DEBUG][       Thread-258016][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 14:29:46,548 [DEBUG][       Thread-258016][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 14:29:46,548 [DEBUG][       Thread-258016][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 14:29:46,548 [DEBUG][       Thread-258016][   transport.py][1871] : Compression: none
2025-06-13 14:29:46,549 [DEBUG][       Thread-258016][   transport.py][1871] : === End of kex handshake ===
2025-06-13 14:29:46,564 [DEBUG][       Thread-258016][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 14:29:46,564 [DEBUG][       Thread-258016][   transport.py][1871] : Switch to new keys ...
2025-06-13 14:29:46,564 [DEBUG][       Thread-258016][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 14:29:46,564 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 14:29:46,564 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 14:29:46,565 [DEBUG][       Thread-258016][   transport.py][1871] : userauth is OK
2025-06-13 14:29:46,577 [ INFO][       Thread-258016][   transport.py][1871] : Authentication (password) successful!
2025-06-13 14:29:46,577 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 14:29:47,195 [DEBUG][       Thread-258016][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 14:29:47,195 [DEBUG][       Thread-258016][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 14:29:47,237 [DEBUG][       Thread-258016][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 14:29:47,237 [DEBUG][       Thread-258016][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 14:29:47,240 [DEBUG][       Thread-258016][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 14:29:47,255 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 14:29:47,255 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 14:29:47,257 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 14:29:47,258 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 14:29:47,264 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 14:29:47,265 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 14:29:47,265 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 14:29:47,266 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 14:29:47,266 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.520075 -999.00  +13.60  22.98     34   -1.90 1 1 1 1 1   887    0 14.24 -13.81 ----- 26.6 23.0 48.4 29.1 17.6 -31.4 16.6 -32.8 17.1 -31.7 18.3 -29.2
2025-06-13 14:29:47,266 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 14:29:47,266 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 14:29:47,266 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.520075
2025-06-13 14:29:47,267 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 14:29:47,267 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 14:29:47,268 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 14:29:47,268 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 14:29:47,268 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 14:29:47,268 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T14:29:12', tmtdew=17.38, humidity=29.88, cloud=0.0, wind=25.06, temperature=13.77, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T12:28:54.480', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 14:29:47,268 [DEBUG][       Thread-258016][   transport.py][1871] : EOF in transport thread
2025-06-13 14:29:47,352 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 14:29:47,362 [DEBUG][       Thread-258019][   transport.py][1871] : starting thread (client mode): 0x863a7a00
2025-06-13 14:29:47,362 [DEBUG][       Thread-258019][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 14:29:47,379 [DEBUG][       Thread-258019][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 14:29:47,379 [ INFO][       Thread-258019][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 14:29:47,387 [DEBUG][       Thread-258019][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 14:29:47,387 [DEBUG][       Thread-258019][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 14:29:47,387 [DEBUG][       Thread-258019][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 14:29:47,387 [DEBUG][       Thread-258019][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:29:47,387 [DEBUG][       Thread-258019][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:29:47,387 [DEBUG][       Thread-258019][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:29:47,387 [DEBUG][       Thread-258019][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:29:47,387 [DEBUG][       Thread-258019][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 14:29:47,387 [DEBUG][       Thread-258019][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 14:29:47,388 [DEBUG][       Thread-258019][   transport.py][1871] : client lang: <none>
2025-06-13 14:29:47,388 [DEBUG][       Thread-258019][   transport.py][1871] : server lang: <none>
2025-06-13 14:29:47,388 [DEBUG][       Thread-258019][   transport.py][1871] : kex follows: False
2025-06-13 14:29:47,388 [DEBUG][       Thread-258019][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 14:29:47,388 [DEBUG][       Thread-258019][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 14:29:47,388 [DEBUG][       Thread-258019][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 14:29:47,388 [DEBUG][       Thread-258019][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 14:29:47,388 [DEBUG][       Thread-258019][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 14:29:47,388 [DEBUG][       Thread-258019][   transport.py][1871] : Compression: none
2025-06-13 14:29:47,388 [DEBUG][       Thread-258019][   transport.py][1871] : === End of kex handshake ===
2025-06-13 14:29:47,447 [DEBUG][       Thread-258019][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 14:29:47,447 [DEBUG][       Thread-258019][   transport.py][1871] : Switch to new keys ...
2025-06-13 14:29:47,447 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 14:29:47,448 [DEBUG][       Thread-258019][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 14:29:47,449 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 14:29:47,503 [DEBUG][       Thread-258019][   transport.py][1871] : userauth is OK
2025-06-13 14:29:47,504 [DEBUG][       Thread-258019][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 14:29:47,504 [DEBUG][       Thread-258019][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 14:29:47,504 [DEBUG][       Thread-258019][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 14:29:47,504 [DEBUG][       Thread-258019][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 14:29:47,524 [ INFO][       Thread-258019][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 14:29:47,525 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 14:29:47,525 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 14:29:48,584 [DEBUG][       Thread-258019][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 14:29:48,584 [DEBUG][       Thread-258019][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 14:29:48,632 [DEBUG][       Thread-258019][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 14:29:48,632 [DEBUG][       Thread-258019][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 14:29:48,641 [DEBUG][       Thread-258019][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 14:29:48,651 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 14:29:48,651 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 14:29:48,660 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 14:29:48,669 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 14:29:48,669 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 14:29:48,670 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 14:29:48,678 [DEBUG][       Thread-258019][   transport.py][1871] : EOF in transport thread
2025-06-13 14:29:54,354 [DEBUG][Thread-258021 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:29:58,680 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 14:29:58,680 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 14:29:58,680 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 14:29:58,681 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 14:29:59,149 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 14, 29, 44), 17.38, 29.87, 0.0, 22.87, 13.75, 0, 0, 0, 2, 0, 0),)
2025-06-13 14:29:59,149 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 14:29:44
2025-06-13 14:29:59,225 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 14:29:59,229 [DEBUG][       Thread-258022][   transport.py][1871] : starting thread (client mode): 0x842077c0
2025-06-13 14:29:59,229 [DEBUG][       Thread-258022][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 14:29:59,248 [DEBUG][       Thread-258022][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 14:29:59,248 [ INFO][       Thread-258022][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 14:29:59,252 [DEBUG][       Thread-258022][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 14:29:59,252 [DEBUG][       Thread-258022][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 14:29:59,252 [DEBUG][       Thread-258022][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 14:29:59,252 [DEBUG][       Thread-258022][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:29:59,252 [DEBUG][       Thread-258022][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:29:59,252 [DEBUG][       Thread-258022][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:29:59,252 [DEBUG][       Thread-258022][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:29:59,252 [DEBUG][       Thread-258022][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 14:29:59,252 [DEBUG][       Thread-258022][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 14:29:59,252 [DEBUG][       Thread-258022][   transport.py][1871] : client lang: <none>
2025-06-13 14:29:59,252 [DEBUG][       Thread-258022][   transport.py][1871] : server lang: <none>
2025-06-13 14:29:59,252 [DEBUG][       Thread-258022][   transport.py][1871] : kex follows: False
2025-06-13 14:29:59,252 [DEBUG][       Thread-258022][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 14:29:59,252 [DEBUG][       Thread-258022][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 14:29:59,252 [DEBUG][       Thread-258022][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 14:29:59,252 [DEBUG][       Thread-258022][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 14:29:59,252 [DEBUG][       Thread-258022][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 14:29:59,252 [DEBUG][       Thread-258022][   transport.py][1871] : Compression: none
2025-06-13 14:29:59,252 [DEBUG][       Thread-258022][   transport.py][1871] : === End of kex handshake ===
2025-06-13 14:29:59,267 [DEBUG][       Thread-258022][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 14:29:59,268 [DEBUG][       Thread-258022][   transport.py][1871] : Switch to new keys ...
2025-06-13 14:29:59,268 [DEBUG][       Thread-258022][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 14:29:59,269 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 14:29:59,269 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 14:29:59,270 [DEBUG][       Thread-258022][   transport.py][1871] : userauth is OK
2025-06-13 14:29:59,295 [ INFO][       Thread-258022][   transport.py][1871] : Authentication (password) successful!
2025-06-13 14:29:59,296 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 14:29:59,904 [DEBUG][       Thread-258022][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 14:29:59,904 [DEBUG][       Thread-258022][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 14:29:59,949 [DEBUG][       Thread-258022][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 14:29:59,949 [DEBUG][       Thread-258022][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 14:29:59,952 [DEBUG][       Thread-258022][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 14:29:59,966 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 14:29:59,966 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 14:29:59,968 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 14:29:59,971 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 14:29:59,976 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 14:29:59,978 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 14:29:59,978 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 14:29:59,979 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 14:29:59,979 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.520422 -999.00  +13.40  26.63     34   -2.00 1 1 1 1 1   887    0 14.47 -8.75 ----- 26.0 26.6 42.2 31.7 17.6 -31.6 16.6 -32.6 17.0 -31.4 18.3 -29.2
2025-06-13 14:29:59,979 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 14:29:59,979 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 14:29:59,979 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.520422
2025-06-13 14:29:59,980 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 14:29:59,980 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 14:29:59,980 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 14:29:59,980 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 14:29:59,980 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 14:29:59,981 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T14:29:44', tmtdew=17.38, humidity=29.87, cloud=0.0, wind=22.87, temperature=13.75, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T12:29:24.461', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 14:29:59,981 [DEBUG][       Thread-258022][   transport.py][1871] : EOF in transport thread
2025-06-13 14:30:00,069 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 14:30:00,081 [DEBUG][       Thread-258025][   transport.py][1871] : starting thread (client mode): 0x863c8fd0
2025-06-13 14:30:00,081 [DEBUG][       Thread-258025][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 14:30:00,096 [DEBUG][       Thread-258025][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 14:30:00,096 [ INFO][       Thread-258025][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 14:30:00,103 [DEBUG][       Thread-258025][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 14:30:00,103 [DEBUG][       Thread-258025][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 14:30:00,103 [DEBUG][       Thread-258025][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 14:30:00,103 [DEBUG][       Thread-258025][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:30:00,103 [DEBUG][       Thread-258025][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:30:00,103 [DEBUG][       Thread-258025][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:30:00,104 [DEBUG][       Thread-258025][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:30:00,104 [DEBUG][       Thread-258025][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 14:30:00,104 [DEBUG][       Thread-258025][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 14:30:00,104 [DEBUG][       Thread-258025][   transport.py][1871] : client lang: <none>
2025-06-13 14:30:00,104 [DEBUG][       Thread-258025][   transport.py][1871] : server lang: <none>
2025-06-13 14:30:00,104 [DEBUG][       Thread-258025][   transport.py][1871] : kex follows: False
2025-06-13 14:30:00,104 [DEBUG][       Thread-258025][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 14:30:00,104 [DEBUG][       Thread-258025][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 14:30:00,104 [DEBUG][       Thread-258025][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 14:30:00,104 [DEBUG][       Thread-258025][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 14:30:00,104 [DEBUG][       Thread-258025][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 14:30:00,104 [DEBUG][       Thread-258025][   transport.py][1871] : Compression: none
2025-06-13 14:30:00,104 [DEBUG][       Thread-258025][   transport.py][1871] : === End of kex handshake ===
2025-06-13 14:30:00,159 [DEBUG][       Thread-258025][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 14:30:00,160 [DEBUG][       Thread-258025][   transport.py][1871] : Switch to new keys ...
2025-06-13 14:30:00,160 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 14:30:00,161 [DEBUG][       Thread-258025][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 14:30:00,161 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 14:30:00,215 [DEBUG][       Thread-258025][   transport.py][1871] : userauth is OK
2025-06-13 14:30:00,216 [DEBUG][       Thread-258025][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 14:30:00,216 [DEBUG][       Thread-258025][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 14:30:00,216 [DEBUG][       Thread-258025][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 14:30:00,216 [DEBUG][       Thread-258025][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 14:30:00,235 [ INFO][       Thread-258025][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 14:30:00,235 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 14:30:00,235 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 14:30:01,146 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:30:01,148 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:30:01,245 [DEBUG][       Thread-258025][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 14:30:01,245 [DEBUG][       Thread-258025][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 14:30:01,299 [DEBUG][       Thread-258025][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 14:30:01,299 [DEBUG][       Thread-258025][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 14:30:01,307 [DEBUG][       Thread-258025][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 14:30:01,315 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 14:30:01,315 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 14:30:01,323 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 14:30:01,331 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 14:30:01,331 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 14:30:01,331 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 14:30:01,339 [DEBUG][       Thread-258025][   transport.py][1871] : EOF in transport thread
2025-06-13 14:30:03,374 [DEBUG][Thread-258027 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:30:11,341 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 14:30:11,342 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 14:30:11,342 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 14:30:11,344 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 14:30:11,812 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 14, 29, 44), 17.38, 29.87, 0.0, 22.87, 13.75, 0, 0, 0, 2, 0, 0),)
2025-06-13 14:30:11,812 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 14:29:44
2025-06-13 14:30:11,887 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 14:30:11,894 [DEBUG][       Thread-258028][   transport.py][1871] : starting thread (client mode): 0x84205780
2025-06-13 14:30:11,894 [DEBUG][       Thread-258028][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 14:30:11,915 [DEBUG][       Thread-258028][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 14:30:11,915 [ INFO][       Thread-258028][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 14:30:11,918 [DEBUG][       Thread-258028][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 14:30:11,918 [DEBUG][       Thread-258028][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 14:30:11,918 [DEBUG][       Thread-258028][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 14:30:11,918 [DEBUG][       Thread-258028][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:30:11,918 [DEBUG][       Thread-258028][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:30:11,918 [DEBUG][       Thread-258028][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:30:11,918 [DEBUG][       Thread-258028][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:30:11,918 [DEBUG][       Thread-258028][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 14:30:11,918 [DEBUG][       Thread-258028][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 14:30:11,918 [DEBUG][       Thread-258028][   transport.py][1871] : client lang: <none>
2025-06-13 14:30:11,918 [DEBUG][       Thread-258028][   transport.py][1871] : server lang: <none>
2025-06-13 14:30:11,918 [DEBUG][       Thread-258028][   transport.py][1871] : kex follows: False
2025-06-13 14:30:11,918 [DEBUG][       Thread-258028][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 14:30:11,918 [DEBUG][       Thread-258028][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 14:30:11,919 [DEBUG][       Thread-258028][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 14:30:11,919 [DEBUG][       Thread-258028][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 14:30:11,919 [DEBUG][       Thread-258028][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 14:30:11,919 [DEBUG][       Thread-258028][   transport.py][1871] : Compression: none
2025-06-13 14:30:11,919 [DEBUG][       Thread-258028][   transport.py][1871] : === End of kex handshake ===
2025-06-13 14:30:11,936 [DEBUG][       Thread-258028][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 14:30:11,936 [DEBUG][       Thread-258028][   transport.py][1871] : Switch to new keys ...
2025-06-13 14:30:11,937 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 14:30:11,937 [DEBUG][       Thread-258028][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 14:30:11,937 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 14:30:11,939 [DEBUG][       Thread-258028][   transport.py][1871] : userauth is OK
2025-06-13 14:30:11,952 [ INFO][       Thread-258028][   transport.py][1871] : Authentication (password) successful!
2025-06-13 14:30:11,953 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 14:30:12,420 [DEBUG][Thread-258030 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:30:13,286 [DEBUG][       Thread-258028][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 14:30:13,287 [DEBUG][       Thread-258028][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 14:30:13,329 [DEBUG][       Thread-258028][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 14:30:13,329 [DEBUG][       Thread-258028][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 14:30:13,331 [DEBUG][       Thread-258028][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 14:30:13,338 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 14:30:13,338 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 14:30:13,340 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 14:30:13,342 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 14:30:13,347 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 14:30:13,349 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 14:30:13,349 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 14:30:13,350 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 14:30:13,350 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.520422 -999.00  +13.40  26.63     34   -2.00 1 1 1 1 1   887    0 14.47 -8.75 ----- 26.0 26.6 42.2 31.7 17.6 -31.6 16.6 -32.6 17.0 -31.4 18.3 -29.2
2025-06-13 14:30:13,350 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 14:30:13,350 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 14:30:13,350 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.520422
2025-06-13 14:30:13,351 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 14:30:13,351 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 14:30:13,351 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 14:30:13,351 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 14:30:13,351 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 14:30:13,352 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T14:29:44', tmtdew=17.38, humidity=29.87, cloud=0.0, wind=22.87, temperature=13.75, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T12:29:24.461', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 14:30:13,353 [DEBUG][       Thread-258028][   transport.py][1871] : EOF in transport thread
2025-06-13 14:30:13,432 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 14:30:13,445 [DEBUG][       Thread-258032][   transport.py][1871] : starting thread (client mode): 0x867fe8c0
2025-06-13 14:30:13,445 [DEBUG][       Thread-258032][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 14:30:13,465 [DEBUG][       Thread-258032][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 14:30:13,465 [ INFO][       Thread-258032][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 14:30:13,474 [DEBUG][       Thread-258032][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 14:30:13,474 [DEBUG][       Thread-258032][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 14:30:13,474 [DEBUG][       Thread-258032][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 14:30:13,474 [DEBUG][       Thread-258032][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:30:13,474 [DEBUG][       Thread-258032][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:30:13,474 [DEBUG][       Thread-258032][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:30:13,474 [DEBUG][       Thread-258032][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:30:13,474 [DEBUG][       Thread-258032][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 14:30:13,474 [DEBUG][       Thread-258032][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 14:30:13,474 [DEBUG][       Thread-258032][   transport.py][1871] : client lang: <none>
2025-06-13 14:30:13,474 [DEBUG][       Thread-258032][   transport.py][1871] : server lang: <none>
2025-06-13 14:30:13,475 [DEBUG][       Thread-258032][   transport.py][1871] : kex follows: False
2025-06-13 14:30:13,475 [DEBUG][       Thread-258032][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 14:30:13,475 [DEBUG][       Thread-258032][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 14:30:13,475 [DEBUG][       Thread-258032][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 14:30:13,475 [DEBUG][       Thread-258032][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 14:30:13,475 [DEBUG][       Thread-258032][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 14:30:13,475 [DEBUG][       Thread-258032][   transport.py][1871] : Compression: none
2025-06-13 14:30:13,475 [DEBUG][       Thread-258032][   transport.py][1871] : === End of kex handshake ===
2025-06-13 14:30:13,537 [DEBUG][       Thread-258032][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 14:30:13,538 [DEBUG][       Thread-258032][   transport.py][1871] : Switch to new keys ...
2025-06-13 14:30:13,538 [DEBUG][       Thread-258032][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 14:30:13,538 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 14:30:13,539 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 14:30:13,602 [DEBUG][       Thread-258032][   transport.py][1871] : userauth is OK
2025-06-13 14:30:13,602 [DEBUG][       Thread-258032][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 14:30:13,602 [DEBUG][       Thread-258032][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 14:30:13,602 [DEBUG][       Thread-258032][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 14:30:13,602 [DEBUG][       Thread-258032][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 14:30:13,622 [ INFO][       Thread-258032][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 14:30:13,622 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 14:30:13,622 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 14:30:14,661 [DEBUG][       Thread-258032][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 14:30:14,662 [DEBUG][       Thread-258032][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 14:30:14,715 [DEBUG][       Thread-258032][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 14:30:14,715 [DEBUG][       Thread-258032][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 14:30:14,728 [DEBUG][       Thread-258032][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 14:30:14,737 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 14:30:14,737 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 14:30:14,746 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 14:30:14,755 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 14:30:14,756 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 14:30:14,756 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 14:30:14,764 [DEBUG][       Thread-258032][   transport.py][1871] : EOF in transport thread
2025-06-13 14:30:18,248 [DEBUG][Thread-258034 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:30:21,441 [DEBUG][Thread-258035 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:30:24,767 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 14:30:24,767 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 14:30:24,768 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 14:30:24,771 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 14:30:25,252 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 14, 30, 15), 17.12, 30.4, 0.0, 21.77, 13.68, 0, 0, 0, 2, 0, 0),)
2025-06-13 14:30:25,252 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 14:30:15
2025-06-13 14:30:25,328 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 14:30:25,333 [DEBUG][       Thread-258036][   transport.py][1871] : starting thread (client mode): 0x84205e10
2025-06-13 14:30:25,333 [DEBUG][       Thread-258036][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 14:30:25,356 [DEBUG][       Thread-258036][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 14:30:25,356 [ INFO][       Thread-258036][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 14:30:25,359 [DEBUG][       Thread-258036][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 14:30:25,359 [DEBUG][       Thread-258036][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 14:30:25,360 [DEBUG][       Thread-258036][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 14:30:25,360 [DEBUG][       Thread-258036][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:30:25,360 [DEBUG][       Thread-258036][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:30:25,360 [DEBUG][       Thread-258036][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:30:25,360 [DEBUG][       Thread-258036][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:30:25,360 [DEBUG][       Thread-258036][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 14:30:25,360 [DEBUG][       Thread-258036][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 14:30:25,360 [DEBUG][       Thread-258036][   transport.py][1871] : client lang: <none>
2025-06-13 14:30:25,360 [DEBUG][       Thread-258036][   transport.py][1871] : server lang: <none>
2025-06-13 14:30:25,360 [DEBUG][       Thread-258036][   transport.py][1871] : kex follows: False
2025-06-13 14:30:25,360 [DEBUG][       Thread-258036][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 14:30:25,360 [DEBUG][       Thread-258036][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 14:30:25,360 [DEBUG][       Thread-258036][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 14:30:25,360 [DEBUG][       Thread-258036][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 14:30:25,360 [DEBUG][       Thread-258036][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 14:30:25,360 [DEBUG][       Thread-258036][   transport.py][1871] : Compression: none
2025-06-13 14:30:25,360 [DEBUG][       Thread-258036][   transport.py][1871] : === End of kex handshake ===
2025-06-13 14:30:25,377 [DEBUG][       Thread-258036][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 14:30:25,377 [DEBUG][       Thread-258036][   transport.py][1871] : Switch to new keys ...
2025-06-13 14:30:25,378 [DEBUG][       Thread-258036][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 14:30:25,378 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 14:30:25,378 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 14:30:25,379 [DEBUG][       Thread-258036][   transport.py][1871] : userauth is OK
2025-06-13 14:30:25,392 [ INFO][       Thread-258036][   transport.py][1871] : Authentication (password) successful!
2025-06-13 14:30:25,393 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 14:30:25,987 [DEBUG][       Thread-258036][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 14:30:25,987 [DEBUG][       Thread-258036][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 14:30:26,029 [DEBUG][       Thread-258036][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 14:30:26,029 [DEBUG][       Thread-258036][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 14:30:26,032 [DEBUG][       Thread-258036][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 14:30:26,044 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 14:30:26,044 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 14:30:26,046 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 14:30:26,048 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 14:30:26,054 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 14:30:26,056 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 14:30:26,056 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 14:30:26,057 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 14:30:26,057 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.520770 -999.00  +13.40  25.62     34   -1.70 1 1 1 1 1   887    0 14.64 -3.67 ----- 23.4 25.6 39.2 29.6 17.6 -30.8 16.5 -32.8 17.0 -31.4 18.3 -28.9
2025-06-13 14:30:26,057 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 14:30:26,057 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 14:30:26,058 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.520770
2025-06-13 14:30:26,058 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 14:30:26,059 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 14:30:26,059 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 14:30:26,059 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 14:30:26,059 [DEBUG][       Thread-258036][   transport.py][1871] : EOF in transport thread
2025-06-13 14:30:26,060 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 14:30:26,060 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T14:30:15', tmtdew=17.12, humidity=30.4, cloud=0.0, wind=21.77, temperature=13.68, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T12:29:54.528', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 14:30:26,146 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 14:30:26,155 [DEBUG][       Thread-258039][   transport.py][1871] : starting thread (client mode): 0x86392140
2025-06-13 14:30:26,155 [DEBUG][       Thread-258039][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 14:30:26,170 [DEBUG][       Thread-258039][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 14:30:26,170 [ INFO][       Thread-258039][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 14:30:26,178 [DEBUG][       Thread-258039][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 14:30:26,178 [DEBUG][       Thread-258039][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 14:30:26,178 [DEBUG][       Thread-258039][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 14:30:26,178 [DEBUG][       Thread-258039][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:30:26,178 [DEBUG][       Thread-258039][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:30:26,178 [DEBUG][       Thread-258039][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:30:26,178 [DEBUG][       Thread-258039][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:30:26,178 [DEBUG][       Thread-258039][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 14:30:26,178 [DEBUG][       Thread-258039][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 14:30:26,178 [DEBUG][       Thread-258039][   transport.py][1871] : client lang: <none>
2025-06-13 14:30:26,178 [DEBUG][       Thread-258039][   transport.py][1871] : server lang: <none>
2025-06-13 14:30:26,178 [DEBUG][       Thread-258039][   transport.py][1871] : kex follows: False
2025-06-13 14:30:26,178 [DEBUG][       Thread-258039][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 14:30:26,178 [DEBUG][       Thread-258039][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 14:30:26,178 [DEBUG][       Thread-258039][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 14:30:26,178 [DEBUG][       Thread-258039][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 14:30:26,179 [DEBUG][       Thread-258039][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 14:30:26,179 [DEBUG][       Thread-258039][   transport.py][1871] : Compression: none
2025-06-13 14:30:26,179 [DEBUG][       Thread-258039][   transport.py][1871] : === End of kex handshake ===
2025-06-13 14:30:26,236 [DEBUG][       Thread-258039][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 14:30:26,237 [DEBUG][       Thread-258039][   transport.py][1871] : Switch to new keys ...
2025-06-13 14:30:26,238 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 14:30:26,238 [DEBUG][       Thread-258039][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 14:30:26,239 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 14:30:26,292 [DEBUG][       Thread-258039][   transport.py][1871] : userauth is OK
2025-06-13 14:30:26,292 [DEBUG][       Thread-258039][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 14:30:26,292 [DEBUG][       Thread-258039][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 14:30:26,292 [DEBUG][       Thread-258039][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 14:30:26,292 [DEBUG][       Thread-258039][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 14:30:26,316 [ INFO][       Thread-258039][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 14:30:26,317 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 14:30:26,317 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 14:30:27,361 [DEBUG][       Thread-258039][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 14:30:27,362 [DEBUG][       Thread-258039][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 14:30:27,412 [DEBUG][       Thread-258039][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 14:30:27,412 [DEBUG][       Thread-258039][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 14:30:27,421 [DEBUG][       Thread-258039][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 14:30:27,430 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 14:30:27,431 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 14:30:27,440 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 14:30:27,449 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 14:30:27,449 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 14:30:27,450 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 14:30:27,458 [DEBUG][       Thread-258039][   transport.py][1871] : EOF in transport thread
2025-06-13 14:30:30,462 [DEBUG][Thread-258041 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:30:37,460 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 14:30:37,461 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 14:30:37,461 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 14:30:37,463 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 14:30:37,928 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 14, 30, 15), 17.12, 30.4, 0.0, 21.77, 13.68, 0, 0, 0, 2, 0, 0),)
2025-06-13 14:30:37,928 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 14:30:15
2025-06-13 14:30:38,003 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 14:30:38,009 [DEBUG][       Thread-258042][   transport.py][1871] : starting thread (client mode): 0x84205ed0
2025-06-13 14:30:38,009 [DEBUG][       Thread-258042][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 14:30:38,030 [DEBUG][       Thread-258042][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 14:30:38,030 [ INFO][       Thread-258042][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 14:30:38,034 [DEBUG][       Thread-258042][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 14:30:38,034 [DEBUG][       Thread-258042][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 14:30:38,034 [DEBUG][       Thread-258042][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 14:30:38,034 [DEBUG][       Thread-258042][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:30:38,034 [DEBUG][       Thread-258042][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:30:38,034 [DEBUG][       Thread-258042][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:30:38,034 [DEBUG][       Thread-258042][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:30:38,034 [DEBUG][       Thread-258042][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 14:30:38,034 [DEBUG][       Thread-258042][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 14:30:38,034 [DEBUG][       Thread-258042][   transport.py][1871] : client lang: <none>
2025-06-13 14:30:38,034 [DEBUG][       Thread-258042][   transport.py][1871] : server lang: <none>
2025-06-13 14:30:38,034 [DEBUG][       Thread-258042][   transport.py][1871] : kex follows: False
2025-06-13 14:30:38,034 [DEBUG][       Thread-258042][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 14:30:38,034 [DEBUG][       Thread-258042][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 14:30:38,034 [DEBUG][       Thread-258042][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 14:30:38,034 [DEBUG][       Thread-258042][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 14:30:38,034 [DEBUG][       Thread-258042][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 14:30:38,034 [DEBUG][       Thread-258042][   transport.py][1871] : Compression: none
2025-06-13 14:30:38,035 [DEBUG][       Thread-258042][   transport.py][1871] : === End of kex handshake ===
2025-06-13 14:30:38,043 [DEBUG][       Thread-258042][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 14:30:38,043 [DEBUG][       Thread-258042][   transport.py][1871] : Switch to new keys ...
2025-06-13 14:30:38,044 [DEBUG][       Thread-258042][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 14:30:38,044 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 14:30:38,044 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 14:30:38,046 [DEBUG][       Thread-258042][   transport.py][1871] : userauth is OK
2025-06-13 14:30:38,058 [ INFO][       Thread-258042][   transport.py][1871] : Authentication (password) successful!
2025-06-13 14:30:38,059 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 14:30:38,867 [DEBUG][       Thread-258042][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 14:30:38,868 [DEBUG][       Thread-258042][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 14:30:38,909 [DEBUG][       Thread-258042][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 14:30:38,909 [DEBUG][       Thread-258042][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 14:30:38,913 [DEBUG][       Thread-258042][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 14:30:38,925 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 14:30:38,925 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 14:30:38,927 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 14:30:38,929 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 14:30:38,936 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 14:30:38,938 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 14:30:38,938 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 14:30:38,939 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 14:30:38,939 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.520770 -999.00  +13.40  25.62     34   -1.70 1 1 1 1 1   887    0 14.64 -3.67 ----- 23.4 25.6 39.2 29.6 17.6 -30.8 16.5 -32.8 17.0 -31.4 18.3 -28.9
2025-06-13 14:30:38,939 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 14:30:38,939 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 14:30:38,939 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.520770
2025-06-13 14:30:38,940 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 14:30:38,940 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 14:30:38,941 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 14:30:38,941 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 14:30:38,941 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 14:30:38,941 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T14:30:15', tmtdew=17.12, humidity=30.4, cloud=0.0, wind=21.77, temperature=13.68, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T12:29:54.528', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 14:30:38,942 [DEBUG][       Thread-258042][   transport.py][1871] : EOF in transport thread
2025-06-13 14:30:39,025 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 14:30:39,036 [DEBUG][       Thread-258045][   transport.py][1871] : starting thread (client mode): 0x842071c0
2025-06-13 14:30:39,036 [DEBUG][       Thread-258045][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 14:30:39,051 [DEBUG][       Thread-258045][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 14:30:39,051 [ INFO][       Thread-258045][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 14:30:39,059 [DEBUG][       Thread-258045][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 14:30:39,059 [DEBUG][       Thread-258045][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 14:30:39,059 [DEBUG][       Thread-258045][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 14:30:39,059 [DEBUG][       Thread-258045][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:30:39,059 [DEBUG][       Thread-258045][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:30:39,059 [DEBUG][       Thread-258045][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:30:39,059 [DEBUG][       Thread-258045][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:30:39,059 [DEBUG][       Thread-258045][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 14:30:39,059 [DEBUG][       Thread-258045][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 14:30:39,059 [DEBUG][       Thread-258045][   transport.py][1871] : client lang: <none>
2025-06-13 14:30:39,059 [DEBUG][       Thread-258045][   transport.py][1871] : server lang: <none>
2025-06-13 14:30:39,059 [DEBUG][       Thread-258045][   transport.py][1871] : kex follows: False
2025-06-13 14:30:39,059 [DEBUG][       Thread-258045][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 14:30:39,059 [DEBUG][       Thread-258045][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 14:30:39,059 [DEBUG][       Thread-258045][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 14:30:39,060 [DEBUG][       Thread-258045][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 14:30:39,060 [DEBUG][       Thread-258045][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 14:30:39,060 [DEBUG][       Thread-258045][   transport.py][1871] : Compression: none
2025-06-13 14:30:39,060 [DEBUG][       Thread-258045][   transport.py][1871] : === End of kex handshake ===
2025-06-13 14:30:39,119 [DEBUG][       Thread-258045][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 14:30:39,119 [DEBUG][       Thread-258045][   transport.py][1871] : Switch to new keys ...
2025-06-13 14:30:39,120 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 14:30:39,121 [DEBUG][       Thread-258045][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 14:30:39,121 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 14:30:39,176 [DEBUG][       Thread-258045][   transport.py][1871] : userauth is OK
2025-06-13 14:30:39,176 [DEBUG][       Thread-258045][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 14:30:39,176 [DEBUG][       Thread-258045][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 14:30:39,176 [DEBUG][       Thread-258045][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 14:30:39,176 [DEBUG][       Thread-258045][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 14:30:39,195 [ INFO][       Thread-258045][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 14:30:39,196 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 14:30:39,196 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 14:30:39,494 [DEBUG][Thread-258047 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:30:40,200 [DEBUG][       Thread-258045][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 14:30:40,200 [DEBUG][       Thread-258045][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 14:30:40,252 [DEBUG][       Thread-258045][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 14:30:40,252 [DEBUG][       Thread-258045][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 14:30:40,261 [DEBUG][       Thread-258045][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 14:30:40,270 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 14:30:40,271 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 14:30:40,280 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 14:30:40,295 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 14:30:40,296 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 14:30:40,296 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 14:30:40,306 [DEBUG][       Thread-258045][   transport.py][1871] : EOF in transport thread
2025-06-13 14:30:43,726 [DEBUG][Thread-258048 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:30:44,801 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:30:44,802 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:30:48,513 [DEBUG][Thread-258049 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:30:50,298 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 14:30:50,299 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 14:30:50,299 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 14:30:50,302 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 14:30:50,782 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 14, 30, 47), 17.01, 30.62, 0.0, 19.07, 13.67, 0, 0, 0, 2, 0, 0),)
2025-06-13 14:30:50,782 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 14:30:47
2025-06-13 14:30:50,858 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 14:30:50,863 [DEBUG][       Thread-258050][   transport.py][1871] : starting thread (client mode): 0x863932e0
2025-06-13 14:30:50,863 [DEBUG][       Thread-258050][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 14:30:50,882 [DEBUG][       Thread-258050][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 14:30:50,883 [ INFO][       Thread-258050][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 14:30:50,886 [DEBUG][       Thread-258050][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 14:30:50,886 [DEBUG][       Thread-258050][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 14:30:50,886 [DEBUG][       Thread-258050][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 14:30:50,886 [DEBUG][       Thread-258050][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:30:50,886 [DEBUG][       Thread-258050][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:30:50,886 [DEBUG][       Thread-258050][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:30:50,886 [DEBUG][       Thread-258050][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:30:50,886 [DEBUG][       Thread-258050][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 14:30:50,886 [DEBUG][       Thread-258050][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 14:30:50,886 [DEBUG][       Thread-258050][   transport.py][1871] : client lang: <none>
2025-06-13 14:30:50,886 [DEBUG][       Thread-258050][   transport.py][1871] : server lang: <none>
2025-06-13 14:30:50,886 [DEBUG][       Thread-258050][   transport.py][1871] : kex follows: False
2025-06-13 14:30:50,886 [DEBUG][       Thread-258050][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 14:30:50,886 [DEBUG][       Thread-258050][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 14:30:50,886 [DEBUG][       Thread-258050][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 14:30:50,886 [DEBUG][       Thread-258050][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 14:30:50,886 [DEBUG][       Thread-258050][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 14:30:50,886 [DEBUG][       Thread-258050][   transport.py][1871] : Compression: none
2025-06-13 14:30:50,886 [DEBUG][       Thread-258050][   transport.py][1871] : === End of kex handshake ===
2025-06-13 14:30:50,903 [DEBUG][       Thread-258050][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 14:30:50,904 [DEBUG][       Thread-258050][   transport.py][1871] : Switch to new keys ...
2025-06-13 14:30:50,904 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 14:30:50,905 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 14:30:50,905 [DEBUG][       Thread-258050][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 14:30:50,906 [DEBUG][       Thread-258050][   transport.py][1871] : userauth is OK
2025-06-13 14:30:50,918 [ INFO][       Thread-258050][   transport.py][1871] : Authentication (password) successful!
2025-06-13 14:30:50,919 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 14:30:51,578 [DEBUG][       Thread-258050][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 14:30:51,578 [DEBUG][       Thread-258050][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 14:30:51,621 [DEBUG][       Thread-258050][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 14:30:51,621 [DEBUG][       Thread-258050][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 14:30:51,624 [DEBUG][       Thread-258050][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 14:30:51,636 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 14:30:51,636 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 14:30:51,638 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 14:30:51,640 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 14:30:51,645 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 14:30:51,648 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 14:30:51,648 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 14:30:51,648 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 14:30:51,649 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.520770 -999.00  +13.40  25.62     34   -1.70 1 1 1 1 1   887    0 14.64 -3.67 ----- 23.4 25.6 39.2 29.6 17.6 -30.8 16.5 -32.8 17.0 -31.4 18.3 -28.9
2025-06-13 14:30:51,649 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 14:30:51,649 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 14:30:51,649 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.520770
2025-06-13 14:30:51,649 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 14:30:51,650 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 14:30:51,650 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 14:30:51,650 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 14:30:51,650 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 14:30:51,650 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T14:30:47', tmtdew=17.01, humidity=30.62, cloud=0.0, wind=19.07, temperature=13.67, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T12:29:54.528', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 14:30:51,651 [DEBUG][       Thread-258050][   transport.py][1871] : EOF in transport thread
2025-06-13 14:30:51,734 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 14:30:51,743 [DEBUG][       Thread-258053][   transport.py][1871] : starting thread (client mode): 0x863eceb0
2025-06-13 14:30:51,743 [DEBUG][       Thread-258053][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 14:30:51,758 [DEBUG][       Thread-258053][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 14:30:51,758 [ INFO][       Thread-258053][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 14:30:51,766 [DEBUG][       Thread-258053][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 14:30:51,766 [DEBUG][       Thread-258053][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 14:30:51,766 [DEBUG][       Thread-258053][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 14:30:51,766 [DEBUG][       Thread-258053][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:30:51,766 [DEBUG][       Thread-258053][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:30:51,766 [DEBUG][       Thread-258053][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:30:51,766 [DEBUG][       Thread-258053][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:30:51,766 [DEBUG][       Thread-258053][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 14:30:51,766 [DEBUG][       Thread-258053][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 14:30:51,766 [DEBUG][       Thread-258053][   transport.py][1871] : client lang: <none>
2025-06-13 14:30:51,766 [DEBUG][       Thread-258053][   transport.py][1871] : server lang: <none>
2025-06-13 14:30:51,766 [DEBUG][       Thread-258053][   transport.py][1871] : kex follows: False
2025-06-13 14:30:51,766 [DEBUG][       Thread-258053][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 14:30:51,766 [DEBUG][       Thread-258053][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 14:30:51,766 [DEBUG][       Thread-258053][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 14:30:51,766 [DEBUG][       Thread-258053][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 14:30:51,766 [DEBUG][       Thread-258053][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 14:30:51,766 [DEBUG][       Thread-258053][   transport.py][1871] : Compression: none
2025-06-13 14:30:51,766 [DEBUG][       Thread-258053][   transport.py][1871] : === End of kex handshake ===
2025-06-13 14:30:51,822 [DEBUG][       Thread-258053][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 14:30:51,822 [DEBUG][       Thread-258053][   transport.py][1871] : Switch to new keys ...
2025-06-13 14:30:51,822 [DEBUG][       Thread-258053][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 14:30:51,822 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 14:30:51,823 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 14:30:51,883 [DEBUG][       Thread-258053][   transport.py][1871] : userauth is OK
2025-06-13 14:30:51,883 [DEBUG][       Thread-258053][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 14:30:51,883 [DEBUG][       Thread-258053][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 14:30:51,883 [DEBUG][       Thread-258053][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 14:30:51,883 [DEBUG][       Thread-258053][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 14:30:51,897 [ INFO][       Thread-258053][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 14:30:51,897 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 14:30:51,897 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 14:30:52,912 [DEBUG][       Thread-258053][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 14:30:52,913 [DEBUG][       Thread-258053][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 14:30:52,964 [DEBUG][       Thread-258053][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 14:30:52,964 [DEBUG][       Thread-258053][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 14:30:52,973 [DEBUG][       Thread-258053][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 14:30:52,982 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 14:30:52,983 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 14:30:52,991 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 14:30:53,001 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 14:30:53,001 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 14:30:53,001 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 14:30:53,009 [DEBUG][       Thread-258053][   transport.py][1871] : EOF in transport thread
2025-06-13 14:30:57,535 [DEBUG][Thread-258055 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:31:01,284 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:31:01,285 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:31:03,004 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 14:31:03,004 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 14:31:03,004 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 14:31:03,007 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 14:31:03,486 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 14, 30, 47), 17.01, 30.62, 0.0, 19.07, 13.67, 0, 0, 0, 2, 0, 0),)
2025-06-13 14:31:03,486 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 14:30:47
2025-06-13 14:31:03,567 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 14:31:03,572 [DEBUG][       Thread-258056][   transport.py][1871] : starting thread (client mode): 0x863beb00
2025-06-13 14:31:03,572 [DEBUG][       Thread-258056][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 14:31:03,594 [DEBUG][       Thread-258056][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 14:31:03,594 [ INFO][       Thread-258056][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 14:31:03,597 [DEBUG][       Thread-258056][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 14:31:03,597 [DEBUG][       Thread-258056][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 14:31:03,597 [DEBUG][       Thread-258056][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 14:31:03,597 [DEBUG][       Thread-258056][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:31:03,598 [DEBUG][       Thread-258056][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:31:03,598 [DEBUG][       Thread-258056][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:31:03,598 [DEBUG][       Thread-258056][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:31:03,598 [DEBUG][       Thread-258056][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 14:31:03,598 [DEBUG][       Thread-258056][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 14:31:03,598 [DEBUG][       Thread-258056][   transport.py][1871] : client lang: <none>
2025-06-13 14:31:03,598 [DEBUG][       Thread-258056][   transport.py][1871] : server lang: <none>
2025-06-13 14:31:03,598 [DEBUG][       Thread-258056][   transport.py][1871] : kex follows: False
2025-06-13 14:31:03,598 [DEBUG][       Thread-258056][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 14:31:03,598 [DEBUG][       Thread-258056][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 14:31:03,598 [DEBUG][       Thread-258056][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 14:31:03,598 [DEBUG][       Thread-258056][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 14:31:03,598 [DEBUG][       Thread-258056][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 14:31:03,598 [DEBUG][       Thread-258056][   transport.py][1871] : Compression: none
2025-06-13 14:31:03,598 [DEBUG][       Thread-258056][   transport.py][1871] : === End of kex handshake ===
2025-06-13 14:31:03,615 [DEBUG][       Thread-258056][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 14:31:03,615 [DEBUG][       Thread-258056][   transport.py][1871] : Switch to new keys ...
2025-06-13 14:31:03,616 [DEBUG][       Thread-258056][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 14:31:03,616 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 14:31:03,616 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 14:31:03,617 [DEBUG][       Thread-258056][   transport.py][1871] : userauth is OK
2025-06-13 14:31:03,642 [ INFO][       Thread-258056][   transport.py][1871] : Authentication (password) successful!
2025-06-13 14:31:03,642 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 14:31:04,229 [DEBUG][       Thread-258056][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 14:31:04,230 [DEBUG][       Thread-258056][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 14:31:04,273 [DEBUG][       Thread-258056][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 14:31:04,273 [DEBUG][       Thread-258056][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 14:31:04,276 [DEBUG][       Thread-258056][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 14:31:04,289 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 14:31:04,289 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 14:31:04,290 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 14:31:04,290 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 14:31:04,293 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 14:31:04,293 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 14:31:04,293 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 14:31:04,294 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 14:31:04,294 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.521117 -999.00  +13.40  23.88     35   -1.50 1 1 1 1 1   887    0 14.37 -0.63 ----- 24.1 23.9 41.6 29.9 17.6 -31.5 16.6 -32.9 17.0 -30.7 18.2 -29.1
2025-06-13 14:31:04,294 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 14:31:04,294 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 14:31:04,294 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.521117
2025-06-13 14:31:04,294 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 14:31:04,294 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 14:31:04,294 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 14:31:04,294 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 14:31:04,294 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 14:31:04,294 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T14:30:47', tmtdew=17.01, humidity=30.62, cloud=0.0, wind=19.07, temperature=13.67, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T12:30:24.509', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 14:31:04,294 [DEBUG][       Thread-258056][   transport.py][1871] : EOF in transport thread
2025-06-13 14:31:04,366 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 14:31:04,376 [DEBUG][       Thread-258059][   transport.py][1871] : starting thread (client mode): 0x86893820
2025-06-13 14:31:04,377 [DEBUG][       Thread-258059][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 14:31:04,392 [DEBUG][       Thread-258059][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 14:31:04,392 [ INFO][       Thread-258059][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 14:31:04,399 [DEBUG][       Thread-258059][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 14:31:04,399 [DEBUG][       Thread-258059][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 14:31:04,399 [DEBUG][       Thread-258059][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 14:31:04,399 [DEBUG][       Thread-258059][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:31:04,399 [DEBUG][       Thread-258059][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:31:04,399 [DEBUG][       Thread-258059][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:31:04,399 [DEBUG][       Thread-258059][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:31:04,399 [DEBUG][       Thread-258059][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 14:31:04,399 [DEBUG][       Thread-258059][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 14:31:04,399 [DEBUG][       Thread-258059][   transport.py][1871] : client lang: <none>
2025-06-13 14:31:04,399 [DEBUG][       Thread-258059][   transport.py][1871] : server lang: <none>
2025-06-13 14:31:04,399 [DEBUG][       Thread-258059][   transport.py][1871] : kex follows: False
2025-06-13 14:31:04,399 [DEBUG][       Thread-258059][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 14:31:04,399 [DEBUG][       Thread-258059][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 14:31:04,399 [DEBUG][       Thread-258059][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 14:31:04,400 [DEBUG][       Thread-258059][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 14:31:04,400 [DEBUG][       Thread-258059][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 14:31:04,400 [DEBUG][       Thread-258059][   transport.py][1871] : Compression: none
2025-06-13 14:31:04,400 [DEBUG][       Thread-258059][   transport.py][1871] : === End of kex handshake ===
2025-06-13 14:31:04,459 [DEBUG][       Thread-258059][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 14:31:04,460 [DEBUG][       Thread-258059][   transport.py][1871] : Switch to new keys ...
2025-06-13 14:31:04,461 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 14:31:04,461 [DEBUG][       Thread-258059][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 14:31:04,462 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 14:31:04,516 [DEBUG][       Thread-258059][   transport.py][1871] : userauth is OK
2025-06-13 14:31:04,516 [DEBUG][       Thread-258059][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 14:31:04,516 [DEBUG][       Thread-258059][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 14:31:04,516 [DEBUG][       Thread-258059][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 14:31:04,516 [DEBUG][       Thread-258059][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 14:31:04,535 [ INFO][       Thread-258059][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 14:31:04,535 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 14:31:04,535 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 14:31:05,610 [DEBUG][       Thread-258059][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 14:31:05,611 [DEBUG][       Thread-258059][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 14:31:05,660 [DEBUG][       Thread-258059][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 14:31:05,660 [DEBUG][       Thread-258059][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 14:31:05,669 [DEBUG][       Thread-258059][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 14:31:05,678 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 14:31:05,679 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 14:31:05,688 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 14:31:05,697 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 14:31:05,697 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 14:31:05,698 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 14:31:05,706 [DEBUG][       Thread-258059][   transport.py][1871] : EOF in transport thread
2025-06-13 14:31:06,579 [DEBUG][Thread-258061 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:31:15,599 [DEBUG][Thread-258062 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:31:15,708 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 14:31:15,709 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 14:31:15,709 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 14:31:15,712 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 14:31:16,189 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 14, 30, 47), 17.01, 30.62, 0.0, 19.07, 13.67, 0, 0, 0, 2, 0, 0),)
2025-06-13 14:31:16,189 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 14:30:47
2025-06-13 14:31:16,271 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 14:31:16,278 [DEBUG][       Thread-258063][   transport.py][1871] : starting thread (client mode): 0x86393880
2025-06-13 14:31:16,278 [DEBUG][       Thread-258063][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 14:31:16,297 [DEBUG][       Thread-258063][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 14:31:16,297 [ INFO][       Thread-258063][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 14:31:16,300 [DEBUG][       Thread-258063][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 14:31:16,300 [DEBUG][       Thread-258063][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 14:31:16,300 [DEBUG][       Thread-258063][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 14:31:16,300 [DEBUG][       Thread-258063][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:31:16,300 [DEBUG][       Thread-258063][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:31:16,300 [DEBUG][       Thread-258063][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:31:16,300 [DEBUG][       Thread-258063][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:31:16,301 [DEBUG][       Thread-258063][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 14:31:16,301 [DEBUG][       Thread-258063][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 14:31:16,301 [DEBUG][       Thread-258063][   transport.py][1871] : client lang: <none>
2025-06-13 14:31:16,301 [DEBUG][       Thread-258063][   transport.py][1871] : server lang: <none>
2025-06-13 14:31:16,301 [DEBUG][       Thread-258063][   transport.py][1871] : kex follows: False
2025-06-13 14:31:16,301 [DEBUG][       Thread-258063][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 14:31:16,301 [DEBUG][       Thread-258063][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 14:31:16,301 [DEBUG][       Thread-258063][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 14:31:16,301 [DEBUG][       Thread-258063][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 14:31:16,301 [DEBUG][       Thread-258063][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 14:31:16,301 [DEBUG][       Thread-258063][   transport.py][1871] : Compression: none
2025-06-13 14:31:16,301 [DEBUG][       Thread-258063][   transport.py][1871] : === End of kex handshake ===
2025-06-13 14:31:16,318 [DEBUG][       Thread-258063][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 14:31:16,319 [DEBUG][       Thread-258063][   transport.py][1871] : Switch to new keys ...
2025-06-13 14:31:16,319 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 14:31:16,320 [DEBUG][       Thread-258063][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 14:31:16,320 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 14:31:16,321 [DEBUG][       Thread-258063][   transport.py][1871] : userauth is OK
2025-06-13 14:31:16,334 [ INFO][       Thread-258063][   transport.py][1871] : Authentication (password) successful!
2025-06-13 14:31:16,335 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 14:31:16,991 [DEBUG][       Thread-258063][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 14:31:16,992 [DEBUG][       Thread-258063][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 14:31:17,033 [DEBUG][       Thread-258063][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 14:31:17,033 [DEBUG][       Thread-258063][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 14:31:17,036 [DEBUG][       Thread-258063][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 14:31:17,048 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 14:31:17,048 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 14:31:17,050 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 14:31:17,052 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 14:31:17,058 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 14:31:17,060 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 14:31:17,060 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 14:31:17,061 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 14:31:17,061 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.521117 -999.00  +13.40  23.88     35   -1.50 1 1 1 1 1   887    0 14.37 -0.63 ----- 24.1 23.9 41.6 29.9 17.6 -31.5 16.6 -32.9 17.0 -30.7 18.2 -29.1
2025-06-13 14:31:17,061 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 14:31:17,061 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 14:31:17,061 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.521117
2025-06-13 14:31:17,062 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 14:31:17,062 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 14:31:17,062 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 14:31:17,062 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 14:31:17,062 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 14:31:17,063 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T14:30:47', tmtdew=17.01, humidity=30.62, cloud=0.0, wind=19.07, temperature=13.67, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T12:30:24.509', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 14:31:17,064 [DEBUG][       Thread-258063][   transport.py][1871] : EOF in transport thread
2025-06-13 14:31:17,146 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 14:31:17,157 [DEBUG][       Thread-258066][   transport.py][1871] : starting thread (client mode): 0x867fcb50
2025-06-13 14:31:17,157 [DEBUG][       Thread-258066][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 14:31:17,172 [DEBUG][       Thread-258066][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 14:31:17,172 [ INFO][       Thread-258066][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 14:31:17,180 [DEBUG][       Thread-258066][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 14:31:17,180 [DEBUG][       Thread-258066][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 14:31:17,180 [DEBUG][       Thread-258066][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 14:31:17,180 [DEBUG][       Thread-258066][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:31:17,180 [DEBUG][       Thread-258066][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:31:17,180 [DEBUG][       Thread-258066][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:31:17,180 [DEBUG][       Thread-258066][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:31:17,180 [DEBUG][       Thread-258066][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 14:31:17,180 [DEBUG][       Thread-258066][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 14:31:17,181 [DEBUG][       Thread-258066][   transport.py][1871] : client lang: <none>
2025-06-13 14:31:17,181 [DEBUG][       Thread-258066][   transport.py][1871] : server lang: <none>
2025-06-13 14:31:17,181 [DEBUG][       Thread-258066][   transport.py][1871] : kex follows: False
2025-06-13 14:31:17,181 [DEBUG][       Thread-258066][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 14:31:17,181 [DEBUG][       Thread-258066][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 14:31:17,181 [DEBUG][       Thread-258066][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 14:31:17,181 [DEBUG][       Thread-258066][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 14:31:17,181 [DEBUG][       Thread-258066][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 14:31:17,181 [DEBUG][       Thread-258066][   transport.py][1871] : Compression: none
2025-06-13 14:31:17,181 [DEBUG][       Thread-258066][   transport.py][1871] : === End of kex handshake ===
2025-06-13 14:31:17,244 [DEBUG][       Thread-258066][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 14:31:17,245 [DEBUG][       Thread-258066][   transport.py][1871] : Switch to new keys ...
2025-06-13 14:31:17,246 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 14:31:17,246 [DEBUG][       Thread-258066][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 14:31:17,247 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 14:31:17,304 [DEBUG][       Thread-258066][   transport.py][1871] : userauth is OK
2025-06-13 14:31:17,304 [DEBUG][       Thread-258066][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 14:31:17,304 [DEBUG][       Thread-258066][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 14:31:17,304 [DEBUG][       Thread-258066][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 14:31:17,304 [DEBUG][       Thread-258066][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 14:31:17,323 [ INFO][       Thread-258066][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 14:31:17,324 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 14:31:17,324 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 14:31:18,279 [DEBUG][Thread-258068 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:31:18,351 [DEBUG][       Thread-258066][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 14:31:18,351 [DEBUG][       Thread-258066][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 14:31:18,400 [DEBUG][       Thread-258066][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 14:31:18,400 [DEBUG][       Thread-258066][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 14:31:18,409 [DEBUG][       Thread-258066][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 14:31:18,418 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 14:31:18,419 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 14:31:18,427 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 14:31:18,437 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 14:31:18,437 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 14:31:18,438 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 14:31:18,445 [DEBUG][       Thread-258066][   transport.py][1871] : EOF in transport thread
2025-06-13 14:31:24,620 [DEBUG][Thread-258069 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:31:28,448 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 14:31:28,448 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 14:31:28,448 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 14:31:28,451 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 14:31:28,913 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 14, 31, 19), 16.95, 30.89, 0.0, 19.39, 13.83, 0, 0, 0, 2, 0, 0),)
2025-06-13 14:31:28,913 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 14:31:19
2025-06-13 14:31:28,995 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 14:31:28,999 [DEBUG][       Thread-258070][   transport.py][1871] : starting thread (client mode): 0x863932e0
2025-06-13 14:31:28,999 [DEBUG][       Thread-258070][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 14:31:29,019 [DEBUG][       Thread-258070][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 14:31:29,019 [ INFO][       Thread-258070][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 14:31:29,021 [DEBUG][       Thread-258070][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 14:31:29,021 [DEBUG][       Thread-258070][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 14:31:29,021 [DEBUG][       Thread-258070][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 14:31:29,021 [DEBUG][       Thread-258070][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:31:29,021 [DEBUG][       Thread-258070][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:31:29,021 [DEBUG][       Thread-258070][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:31:29,021 [DEBUG][       Thread-258070][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:31:29,021 [DEBUG][       Thread-258070][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 14:31:29,021 [DEBUG][       Thread-258070][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 14:31:29,021 [DEBUG][       Thread-258070][   transport.py][1871] : client lang: <none>
2025-06-13 14:31:29,021 [DEBUG][       Thread-258070][   transport.py][1871] : server lang: <none>
2025-06-13 14:31:29,021 [DEBUG][       Thread-258070][   transport.py][1871] : kex follows: False
2025-06-13 14:31:29,021 [DEBUG][       Thread-258070][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 14:31:29,021 [DEBUG][       Thread-258070][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 14:31:29,022 [DEBUG][       Thread-258070][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 14:31:29,022 [DEBUG][       Thread-258070][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 14:31:29,022 [DEBUG][       Thread-258070][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 14:31:29,022 [DEBUG][       Thread-258070][   transport.py][1871] : Compression: none
2025-06-13 14:31:29,022 [DEBUG][       Thread-258070][   transport.py][1871] : === End of kex handshake ===
2025-06-13 14:31:29,038 [DEBUG][       Thread-258070][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 14:31:29,039 [DEBUG][       Thread-258070][   transport.py][1871] : Switch to new keys ...
2025-06-13 14:31:29,039 [DEBUG][       Thread-258070][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 14:31:29,040 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 14:31:29,040 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 14:31:29,041 [DEBUG][       Thread-258070][   transport.py][1871] : userauth is OK
2025-06-13 14:31:29,054 [ INFO][       Thread-258070][   transport.py][1871] : Authentication (password) successful!
2025-06-13 14:31:29,055 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 14:31:29,656 [DEBUG][       Thread-258070][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 14:31:29,656 [DEBUG][       Thread-258070][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 14:31:29,697 [DEBUG][       Thread-258070][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 14:31:29,697 [DEBUG][       Thread-258070][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 14:31:29,700 [DEBUG][       Thread-258070][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 14:31:29,711 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 14:31:29,711 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 14:31:29,713 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 14:31:29,715 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 14:31:29,720 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 14:31:29,722 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 14:31:29,722 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 14:31:29,723 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 14:31:29,723 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.521464 -999.00  +13.60  23.42     35   -1.20 1 1 1 1 1   887    0 14.74 1.82 ----- 21.6 23.4 46.4 27.6 17.6 -30.7 16.6 -32.4 17.0 -30.0 18.2 -29.3
2025-06-13 14:31:29,723 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 14:31:29,723 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 14:31:29,723 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.521464
2025-06-13 14:31:29,724 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 14:31:29,724 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 14:31:29,724 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 14:31:29,725 [DEBUG][       Thread-258070][   transport.py][1871] : EOF in transport thread
2025-06-13 14:31:29,725 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 14:31:29,725 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 14:31:29,726 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T14:31:19', tmtdew=16.95, humidity=30.89, cloud=0.0, wind=19.39, temperature=13.83, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T12:30:54.490', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 14:31:29,808 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 14:31:29,819 [DEBUG][       Thread-258073][   transport.py][1871] : starting thread (client mode): 0x863ef340
2025-06-13 14:31:29,819 [DEBUG][       Thread-258073][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 14:31:29,839 [DEBUG][       Thread-258073][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 14:31:29,839 [ INFO][       Thread-258073][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 14:31:29,847 [DEBUG][       Thread-258073][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 14:31:29,847 [DEBUG][       Thread-258073][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 14:31:29,847 [DEBUG][       Thread-258073][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 14:31:29,848 [DEBUG][       Thread-258073][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:31:29,848 [DEBUG][       Thread-258073][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:31:29,848 [DEBUG][       Thread-258073][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:31:29,848 [DEBUG][       Thread-258073][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:31:29,848 [DEBUG][       Thread-258073][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 14:31:29,848 [DEBUG][       Thread-258073][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 14:31:29,848 [DEBUG][       Thread-258073][   transport.py][1871] : client lang: <none>
2025-06-13 14:31:29,848 [DEBUG][       Thread-258073][   transport.py][1871] : server lang: <none>
2025-06-13 14:31:29,848 [DEBUG][       Thread-258073][   transport.py][1871] : kex follows: False
2025-06-13 14:31:29,848 [DEBUG][       Thread-258073][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 14:31:29,848 [DEBUG][       Thread-258073][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 14:31:29,848 [DEBUG][       Thread-258073][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 14:31:29,848 [DEBUG][       Thread-258073][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 14:31:29,848 [DEBUG][       Thread-258073][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 14:31:29,848 [DEBUG][       Thread-258073][   transport.py][1871] : Compression: none
2025-06-13 14:31:29,848 [DEBUG][       Thread-258073][   transport.py][1871] : === End of kex handshake ===
2025-06-13 14:31:29,907 [DEBUG][       Thread-258073][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 14:31:29,908 [DEBUG][       Thread-258073][   transport.py][1871] : Switch to new keys ...
2025-06-13 14:31:29,909 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 14:31:29,909 [DEBUG][       Thread-258073][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 14:31:29,910 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 14:31:29,968 [DEBUG][       Thread-258073][   transport.py][1871] : userauth is OK
2025-06-13 14:31:29,969 [DEBUG][       Thread-258073][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 14:31:29,969 [DEBUG][       Thread-258073][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 14:31:29,969 [DEBUG][       Thread-258073][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 14:31:29,969 [DEBUG][       Thread-258073][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 14:31:29,987 [ INFO][       Thread-258073][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 14:31:29,987 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 14:31:29,988 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 14:31:31,040 [DEBUG][       Thread-258073][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 14:31:31,041 [DEBUG][       Thread-258073][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 14:31:31,092 [DEBUG][       Thread-258073][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 14:31:31,092 [DEBUG][       Thread-258073][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 14:31:31,101 [DEBUG][       Thread-258073][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 14:31:31,111 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 14:31:31,111 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 14:31:31,120 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 14:31:31,133 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 14:31:31,133 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 14:31:31,134 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 14:31:31,144 [DEBUG][       Thread-258073][   transport.py][1871] : EOF in transport thread
2025-06-13 14:31:33,642 [DEBUG][Thread-258075 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:31:41,144 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 14:31:41,144 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 14:31:41,144 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 14:31:41,147 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 14:31:41,620 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 14, 31, 19), 16.95, 30.89, 0.0, 19.39, 13.83, 0, 0, 0, 2, 0, 0),)
2025-06-13 14:31:41,620 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 14:31:19
2025-06-13 14:31:41,702 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 14:31:41,708 [DEBUG][       Thread-258076][   transport.py][1871] : starting thread (client mode): 0x86393010
2025-06-13 14:31:41,708 [DEBUG][       Thread-258076][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 14:31:41,729 [DEBUG][       Thread-258076][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 14:31:41,729 [ INFO][       Thread-258076][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 14:31:41,733 [DEBUG][       Thread-258076][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 14:31:41,733 [DEBUG][       Thread-258076][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 14:31:41,733 [DEBUG][       Thread-258076][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 14:31:41,733 [DEBUG][       Thread-258076][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:31:41,733 [DEBUG][       Thread-258076][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:31:41,733 [DEBUG][       Thread-258076][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:31:41,733 [DEBUG][       Thread-258076][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:31:41,733 [DEBUG][       Thread-258076][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 14:31:41,733 [DEBUG][       Thread-258076][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 14:31:41,733 [DEBUG][       Thread-258076][   transport.py][1871] : client lang: <none>
2025-06-13 14:31:41,733 [DEBUG][       Thread-258076][   transport.py][1871] : server lang: <none>
2025-06-13 14:31:41,733 [DEBUG][       Thread-258076][   transport.py][1871] : kex follows: False
2025-06-13 14:31:41,733 [DEBUG][       Thread-258076][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 14:31:41,733 [DEBUG][       Thread-258076][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 14:31:41,733 [DEBUG][       Thread-258076][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 14:31:41,733 [DEBUG][       Thread-258076][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 14:31:41,733 [DEBUG][       Thread-258076][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 14:31:41,733 [DEBUG][       Thread-258076][   transport.py][1871] : Compression: none
2025-06-13 14:31:41,733 [DEBUG][       Thread-258076][   transport.py][1871] : === End of kex handshake ===
2025-06-13 14:31:41,750 [DEBUG][       Thread-258076][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 14:31:41,751 [DEBUG][       Thread-258076][   transport.py][1871] : Switch to new keys ...
2025-06-13 14:31:41,752 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 14:31:41,752 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 14:31:41,752 [DEBUG][       Thread-258076][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 14:31:41,753 [DEBUG][       Thread-258076][   transport.py][1871] : userauth is OK
2025-06-13 14:31:41,778 [ INFO][       Thread-258076][   transport.py][1871] : Authentication (password) successful!
2025-06-13 14:31:41,779 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 14:31:42,423 [DEBUG][       Thread-258076][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 14:31:42,423 [DEBUG][       Thread-258076][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 14:31:42,465 [DEBUG][       Thread-258076][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 14:31:42,465 [DEBUG][       Thread-258076][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 14:31:42,469 [DEBUG][       Thread-258076][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 14:31:42,481 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 14:31:42,482 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 14:31:42,484 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 14:31:42,485 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 14:31:42,491 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 14:31:42,493 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 14:31:42,493 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 14:31:42,493 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 14:31:42,494 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.521464 -999.00  +13.60  23.42     35   -1.20 1 1 1 1 1   887    0 14.74 1.82 ----- 21.6 23.4 46.4 27.6 17.6 -30.7 16.6 -32.4 17.0 -30.0 18.2 -29.3
2025-06-13 14:31:42,494 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 14:31:42,494 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 14:31:42,494 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.521464
2025-06-13 14:31:42,494 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 14:31:42,495 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 14:31:42,495 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 14:31:42,495 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 14:31:42,495 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 14:31:42,495 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T14:31:19', tmtdew=16.95, humidity=30.89, cloud=0.0, wind=19.39, temperature=13.83, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T12:30:54.490', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 14:31:42,496 [DEBUG][       Thread-258076][   transport.py][1871] : EOF in transport thread
2025-06-13 14:31:42,579 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 14:31:42,590 [DEBUG][       Thread-258079][   transport.py][1871] : starting thread (client mode): 0x863bdd50
2025-06-13 14:31:42,590 [DEBUG][       Thread-258079][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 14:31:42,606 [DEBUG][       Thread-258079][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 14:31:42,606 [ INFO][       Thread-258079][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 14:31:42,613 [DEBUG][       Thread-258079][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 14:31:42,614 [DEBUG][       Thread-258079][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 14:31:42,614 [DEBUG][       Thread-258079][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 14:31:42,614 [DEBUG][       Thread-258079][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:31:42,614 [DEBUG][       Thread-258079][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:31:42,614 [DEBUG][       Thread-258079][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:31:42,614 [DEBUG][       Thread-258079][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:31:42,614 [DEBUG][       Thread-258079][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 14:31:42,614 [DEBUG][       Thread-258079][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 14:31:42,614 [DEBUG][       Thread-258079][   transport.py][1871] : client lang: <none>
2025-06-13 14:31:42,614 [DEBUG][       Thread-258079][   transport.py][1871] : server lang: <none>
2025-06-13 14:31:42,614 [DEBUG][       Thread-258079][   transport.py][1871] : kex follows: False
2025-06-13 14:31:42,614 [DEBUG][       Thread-258079][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 14:31:42,614 [DEBUG][       Thread-258079][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 14:31:42,614 [DEBUG][       Thread-258079][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 14:31:42,614 [DEBUG][       Thread-258079][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 14:31:42,614 [DEBUG][       Thread-258079][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 14:31:42,614 [DEBUG][       Thread-258079][   transport.py][1871] : Compression: none
2025-06-13 14:31:42,614 [DEBUG][       Thread-258079][   transport.py][1871] : === End of kex handshake ===
2025-06-13 14:31:42,676 [DEBUG][Thread-258081 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:31:42,681 [DEBUG][       Thread-258079][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 14:31:42,682 [DEBUG][       Thread-258079][   transport.py][1871] : Switch to new keys ...
2025-06-13 14:31:42,682 [DEBUG][       Thread-258079][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 14:31:42,682 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 14:31:42,683 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 14:31:42,739 [DEBUG][       Thread-258079][   transport.py][1871] : userauth is OK
2025-06-13 14:31:42,740 [DEBUG][       Thread-258079][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 14:31:42,740 [DEBUG][       Thread-258079][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 14:31:42,740 [DEBUG][       Thread-258079][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 14:31:42,740 [DEBUG][       Thread-258079][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 14:31:42,759 [ INFO][       Thread-258079][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 14:31:42,759 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 14:31:42,760 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 14:31:43,791 [DEBUG][       Thread-258079][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 14:31:43,791 [DEBUG][       Thread-258079][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 14:31:43,840 [DEBUG][       Thread-258079][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 14:31:43,840 [DEBUG][       Thread-258079][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 14:31:43,849 [DEBUG][       Thread-258079][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 14:31:43,858 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 14:31:43,859 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 14:31:43,868 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 14:31:43,877 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 14:31:43,877 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 14:31:43,878 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 14:31:43,886 [DEBUG][       Thread-258079][   transport.py][1871] : EOF in transport thread
2025-06-13 14:31:44,873 [DEBUG][Thread-258082 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:31:45,957 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:31:45,958 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:31:51,694 [DEBUG][Thread-258083 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:31:53,888 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 14:31:53,888 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 14:31:53,888 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 14:31:53,889 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 14:31:54,354 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 14, 31, 51), 16.99, 30.81, 0.0, 22.59, 13.86, 0, 0, 0, 2, 0, 0),)
2025-06-13 14:31:54,354 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 14:31:51
2025-06-13 14:31:54,435 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 14:31:54,440 [DEBUG][       Thread-258084][   transport.py][1871] : starting thread (client mode): 0x86393010
2025-06-13 14:31:54,440 [DEBUG][       Thread-258084][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 14:31:54,460 [DEBUG][       Thread-258084][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 14:31:54,461 [ INFO][       Thread-258084][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 14:31:54,464 [DEBUG][       Thread-258084][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 14:31:54,464 [DEBUG][       Thread-258084][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 14:31:54,464 [DEBUG][       Thread-258084][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 14:31:54,464 [DEBUG][       Thread-258084][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:31:54,464 [DEBUG][       Thread-258084][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:31:54,464 [DEBUG][       Thread-258084][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:31:54,464 [DEBUG][       Thread-258084][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:31:54,464 [DEBUG][       Thread-258084][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 14:31:54,464 [DEBUG][       Thread-258084][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 14:31:54,464 [DEBUG][       Thread-258084][   transport.py][1871] : client lang: <none>
2025-06-13 14:31:54,464 [DEBUG][       Thread-258084][   transport.py][1871] : server lang: <none>
2025-06-13 14:31:54,464 [DEBUG][       Thread-258084][   transport.py][1871] : kex follows: False
2025-06-13 14:31:54,464 [DEBUG][       Thread-258084][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 14:31:54,464 [DEBUG][       Thread-258084][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 14:31:54,464 [DEBUG][       Thread-258084][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 14:31:54,464 [DEBUG][       Thread-258084][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 14:31:54,464 [DEBUG][       Thread-258084][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 14:31:54,464 [DEBUG][       Thread-258084][   transport.py][1871] : Compression: none
2025-06-13 14:31:54,465 [DEBUG][       Thread-258084][   transport.py][1871] : === End of kex handshake ===
2025-06-13 14:31:54,483 [DEBUG][       Thread-258084][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 14:31:54,483 [DEBUG][       Thread-258084][   transport.py][1871] : Switch to new keys ...
2025-06-13 14:31:54,484 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 14:31:54,484 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 14:31:54,484 [DEBUG][       Thread-258084][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 14:31:54,485 [DEBUG][       Thread-258084][   transport.py][1871] : userauth is OK
2025-06-13 14:31:54,498 [ INFO][       Thread-258084][   transport.py][1871] : Authentication (password) successful!
2025-06-13 14:31:54,498 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 14:31:55,115 [DEBUG][       Thread-258084][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 14:31:55,116 [DEBUG][       Thread-258084][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 14:31:55,157 [DEBUG][       Thread-258084][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 14:31:55,157 [DEBUG][       Thread-258084][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 14:31:55,161 [DEBUG][       Thread-258084][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 14:31:55,172 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 14:31:55,173 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 14:31:55,175 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 14:31:55,177 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 14:31:55,183 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 14:31:55,185 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 14:31:55,185 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 14:31:55,186 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 14:31:55,186 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.521464 -999.00  +13.60  23.42     35   -1.20 1 1 1 1 1   887    0 14.74 1.82 ----- 21.6 23.4 46.4 27.6 17.6 -30.7 16.6 -32.4 17.0 -30.0 18.2 -29.3
2025-06-13 14:31:55,186 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 14:31:55,186 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 14:31:55,186 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.521464
2025-06-13 14:31:55,186 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 14:31:55,187 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 14:31:55,187 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 14:31:55,187 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 14:31:55,187 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 14:31:55,187 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T14:31:51', tmtdew=16.99, humidity=30.81, cloud=0.0, wind=22.59, temperature=13.86, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T12:30:54.490', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 14:31:55,188 [DEBUG][       Thread-258084][   transport.py][1871] : EOF in transport thread
2025-06-13 14:31:55,263 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 14:31:55,273 [DEBUG][       Thread-258087][   transport.py][1871] : starting thread (client mode): 0x86893fd0
2025-06-13 14:31:55,273 [DEBUG][       Thread-258087][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 14:31:55,288 [DEBUG][       Thread-258087][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 14:31:55,288 [ INFO][       Thread-258087][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 14:31:55,298 [DEBUG][       Thread-258087][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 14:31:55,298 [DEBUG][       Thread-258087][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 14:31:55,299 [DEBUG][       Thread-258087][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 14:31:55,299 [DEBUG][       Thread-258087][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:31:55,299 [DEBUG][       Thread-258087][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:31:55,299 [DEBUG][       Thread-258087][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:31:55,299 [DEBUG][       Thread-258087][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:31:55,299 [DEBUG][       Thread-258087][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 14:31:55,299 [DEBUG][       Thread-258087][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 14:31:55,299 [DEBUG][       Thread-258087][   transport.py][1871] : client lang: <none>
2025-06-13 14:31:55,299 [DEBUG][       Thread-258087][   transport.py][1871] : server lang: <none>
2025-06-13 14:31:55,299 [DEBUG][       Thread-258087][   transport.py][1871] : kex follows: False
2025-06-13 14:31:55,299 [DEBUG][       Thread-258087][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 14:31:55,299 [DEBUG][       Thread-258087][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 14:31:55,299 [DEBUG][       Thread-258087][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 14:31:55,299 [DEBUG][       Thread-258087][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 14:31:55,299 [DEBUG][       Thread-258087][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 14:31:55,299 [DEBUG][       Thread-258087][   transport.py][1871] : Compression: none
2025-06-13 14:31:55,299 [DEBUG][       Thread-258087][   transport.py][1871] : === End of kex handshake ===
2025-06-13 14:31:55,356 [DEBUG][       Thread-258087][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 14:31:55,356 [DEBUG][       Thread-258087][   transport.py][1871] : Switch to new keys ...
2025-06-13 14:31:55,357 [DEBUG][       Thread-258087][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 14:31:55,357 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 14:31:55,358 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 14:31:55,412 [DEBUG][       Thread-258087][   transport.py][1871] : userauth is OK
2025-06-13 14:31:55,412 [DEBUG][       Thread-258087][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 14:31:55,412 [DEBUG][       Thread-258087][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 14:31:55,412 [DEBUG][       Thread-258087][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 14:31:55,413 [DEBUG][       Thread-258087][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 14:31:55,434 [ INFO][       Thread-258087][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 14:31:55,434 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 14:31:55,435 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 14:31:56,428 [DEBUG][       Thread-258087][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 14:31:56,428 [DEBUG][       Thread-258087][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 14:31:56,476 [DEBUG][       Thread-258087][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 14:31:56,476 [DEBUG][       Thread-258087][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 14:31:56,486 [DEBUG][       Thread-258087][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 14:31:56,499 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 14:31:56,499 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 14:31:56,511 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 14:31:56,520 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 14:31:56,520 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 14:31:56,520 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 14:31:56,528 [DEBUG][       Thread-258087][   transport.py][1871] : EOF in transport thread
2025-06-13 14:32:00,713 [DEBUG][Thread-258089 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:32:01,423 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:32:01,424 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:32:06,528 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 14:32:06,528 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 14:32:06,528 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 14:32:06,529 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 14:32:06,989 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 14, 31, 51), 16.99, 30.81, 0.0, 22.59, 13.86, 0, 0, 0, 2, 0, 0),)
2025-06-13 14:32:06,989 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 14:31:51
2025-06-13 14:32:07,071 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 14:32:07,076 [DEBUG][       Thread-258090][   transport.py][1871] : starting thread (client mode): 0x863930a0
2025-06-13 14:32:07,076 [DEBUG][       Thread-258090][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 14:32:07,097 [DEBUG][       Thread-258090][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 14:32:07,097 [ INFO][       Thread-258090][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 14:32:07,100 [DEBUG][       Thread-258090][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 14:32:07,100 [DEBUG][       Thread-258090][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 14:32:07,100 [DEBUG][       Thread-258090][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 14:32:07,100 [DEBUG][       Thread-258090][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:32:07,100 [DEBUG][       Thread-258090][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:32:07,101 [DEBUG][       Thread-258090][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:32:07,101 [DEBUG][       Thread-258090][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:32:07,101 [DEBUG][       Thread-258090][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 14:32:07,101 [DEBUG][       Thread-258090][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 14:32:07,101 [DEBUG][       Thread-258090][   transport.py][1871] : client lang: <none>
2025-06-13 14:32:07,101 [DEBUG][       Thread-258090][   transport.py][1871] : server lang: <none>
2025-06-13 14:32:07,101 [DEBUG][       Thread-258090][   transport.py][1871] : kex follows: False
2025-06-13 14:32:07,101 [DEBUG][       Thread-258090][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 14:32:07,101 [DEBUG][       Thread-258090][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 14:32:07,101 [DEBUG][       Thread-258090][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 14:32:07,101 [DEBUG][       Thread-258090][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 14:32:07,101 [DEBUG][       Thread-258090][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 14:32:07,101 [DEBUG][       Thread-258090][   transport.py][1871] : Compression: none
2025-06-13 14:32:07,101 [DEBUG][       Thread-258090][   transport.py][1871] : === End of kex handshake ===
2025-06-13 14:32:07,117 [DEBUG][       Thread-258090][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 14:32:07,118 [DEBUG][       Thread-258090][   transport.py][1871] : Switch to new keys ...
2025-06-13 14:32:07,118 [DEBUG][       Thread-258090][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 14:32:07,118 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 14:32:07,119 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 14:32:07,120 [DEBUG][       Thread-258090][   transport.py][1871] : userauth is OK
2025-06-13 14:32:07,133 [ INFO][       Thread-258090][   transport.py][1871] : Authentication (password) successful!
2025-06-13 14:32:07,134 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 14:32:07,754 [DEBUG][       Thread-258090][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 14:32:07,754 [DEBUG][       Thread-258090][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 14:32:07,797 [DEBUG][       Thread-258090][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 14:32:07,797 [DEBUG][       Thread-258090][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 14:32:07,800 [DEBUG][       Thread-258090][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 14:32:07,815 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 14:32:07,815 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 14:32:07,817 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 14:32:07,819 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 14:32:07,825 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 14:32:07,827 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 14:32:07,828 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 14:32:07,828 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 14:32:07,829 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.522158 -999.00  +13.50  20.73     35   -1.20 1 1 1 1 1   887    0 14.51 4.65 ----- 22.4 20.7 32.2 25.6 17.6 -30.7 16.5 -32.6 17.1 -31.4 18.2 -28.5
2025-06-13 14:32:07,829 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 14:32:07,829 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 14:32:07,829 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.522158
2025-06-13 14:32:07,829 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 14:32:07,830 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 14:32:07,830 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 14:32:07,830 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 14:32:07,830 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 14:32:07,830 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T14:31:51', tmtdew=16.99, humidity=30.81, cloud=0.0, wind=22.59, temperature=13.86, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T12:31:54.451', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 14:32:07,831 [DEBUG][       Thread-258090][   transport.py][1871] : EOF in transport thread
2025-06-13 14:32:07,914 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 14:32:07,924 [DEBUG][       Thread-258093][   transport.py][1871] : starting thread (client mode): 0x867fd9f0
2025-06-13 14:32:07,924 [DEBUG][       Thread-258093][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 14:32:07,944 [DEBUG][       Thread-258093][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 14:32:07,944 [ INFO][       Thread-258093][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 14:32:07,953 [DEBUG][       Thread-258093][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 14:32:07,954 [DEBUG][       Thread-258093][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 14:32:07,954 [DEBUG][       Thread-258093][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 14:32:07,954 [DEBUG][       Thread-258093][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:32:07,954 [DEBUG][       Thread-258093][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:32:07,954 [DEBUG][       Thread-258093][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:32:07,954 [DEBUG][       Thread-258093][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:32:07,954 [DEBUG][       Thread-258093][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 14:32:07,954 [DEBUG][       Thread-258093][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 14:32:07,954 [DEBUG][       Thread-258093][   transport.py][1871] : client lang: <none>
2025-06-13 14:32:07,954 [DEBUG][       Thread-258093][   transport.py][1871] : server lang: <none>
2025-06-13 14:32:07,954 [DEBUG][       Thread-258093][   transport.py][1871] : kex follows: False
2025-06-13 14:32:07,954 [DEBUG][       Thread-258093][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 14:32:07,954 [DEBUG][       Thread-258093][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 14:32:07,955 [DEBUG][       Thread-258093][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 14:32:07,955 [DEBUG][       Thread-258093][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 14:32:07,955 [DEBUG][       Thread-258093][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 14:32:07,955 [DEBUG][       Thread-258093][   transport.py][1871] : Compression: none
2025-06-13 14:32:07,955 [DEBUG][       Thread-258093][   transport.py][1871] : === End of kex handshake ===
2025-06-13 14:32:08,011 [DEBUG][       Thread-258093][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 14:32:08,012 [DEBUG][       Thread-258093][   transport.py][1871] : Switch to new keys ...
2025-06-13 14:32:08,013 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 14:32:08,013 [DEBUG][       Thread-258093][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 14:32:08,014 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 14:32:08,067 [DEBUG][       Thread-258093][   transport.py][1871] : userauth is OK
2025-06-13 14:32:08,068 [DEBUG][       Thread-258093][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 14:32:08,068 [DEBUG][       Thread-258093][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 14:32:08,068 [DEBUG][       Thread-258093][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 14:32:08,068 [DEBUG][       Thread-258093][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 14:32:08,087 [ INFO][       Thread-258093][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 14:32:08,088 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 14:32:08,088 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 14:32:09,137 [DEBUG][       Thread-258093][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 14:32:09,137 [DEBUG][       Thread-258093][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 14:32:09,190 [DEBUG][       Thread-258093][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 14:32:09,190 [DEBUG][       Thread-258093][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 14:32:09,199 [DEBUG][       Thread-258093][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 14:32:09,209 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 14:32:09,209 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 14:32:09,218 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 14:32:09,230 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 14:32:09,231 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 14:32:09,231 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 14:32:09,239 [DEBUG][       Thread-258093][   transport.py][1871] : EOF in transport thread
2025-06-13 14:32:09,752 [DEBUG][Thread-258095 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:32:18,343 [DEBUG][Thread-258096 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:32:18,775 [DEBUG][Thread-258097 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:32:19,242 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 14:32:19,242 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 14:32:19,242 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 14:32:19,245 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 14:32:19,713 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 14, 31, 51), 16.99, 30.81, 0.0, 22.59, 13.86, 0, 0, 0, 2, 0, 0),)
2025-06-13 14:32:19,713 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 14:31:51
2025-06-13 14:32:19,794 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 14:32:19,800 [DEBUG][       Thread-258098][   transport.py][1871] : starting thread (client mode): 0x86390100
2025-06-13 14:32:19,800 [DEBUG][       Thread-258098][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 14:32:19,816 [DEBUG][       Thread-258098][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 14:32:19,816 [ INFO][       Thread-258098][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 14:32:19,820 [DEBUG][       Thread-258098][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 14:32:19,820 [DEBUG][       Thread-258098][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 14:32:19,820 [DEBUG][       Thread-258098][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 14:32:19,820 [DEBUG][       Thread-258098][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:32:19,820 [DEBUG][       Thread-258098][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:32:19,820 [DEBUG][       Thread-258098][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:32:19,820 [DEBUG][       Thread-258098][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:32:19,820 [DEBUG][       Thread-258098][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 14:32:19,820 [DEBUG][       Thread-258098][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 14:32:19,820 [DEBUG][       Thread-258098][   transport.py][1871] : client lang: <none>
2025-06-13 14:32:19,820 [DEBUG][       Thread-258098][   transport.py][1871] : server lang: <none>
2025-06-13 14:32:19,820 [DEBUG][       Thread-258098][   transport.py][1871] : kex follows: False
2025-06-13 14:32:19,820 [DEBUG][       Thread-258098][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 14:32:19,820 [DEBUG][       Thread-258098][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 14:32:19,820 [DEBUG][       Thread-258098][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 14:32:19,820 [DEBUG][       Thread-258098][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 14:32:19,820 [DEBUG][       Thread-258098][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 14:32:19,820 [DEBUG][       Thread-258098][   transport.py][1871] : Compression: none
2025-06-13 14:32:19,820 [DEBUG][       Thread-258098][   transport.py][1871] : === End of kex handshake ===
2025-06-13 14:32:19,837 [DEBUG][       Thread-258098][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 14:32:19,837 [DEBUG][       Thread-258098][   transport.py][1871] : Switch to new keys ...
2025-06-13 14:32:19,838 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 14:32:19,838 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 14:32:19,838 [DEBUG][       Thread-258098][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 14:32:19,839 [DEBUG][       Thread-258098][   transport.py][1871] : userauth is OK
2025-06-13 14:32:19,863 [ INFO][       Thread-258098][   transport.py][1871] : Authentication (password) successful!
2025-06-13 14:32:19,864 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 14:32:20,513 [DEBUG][       Thread-258098][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 14:32:20,513 [DEBUG][       Thread-258098][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 14:32:20,556 [DEBUG][       Thread-258098][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 14:32:20,556 [DEBUG][       Thread-258098][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 14:32:20,559 [DEBUG][       Thread-258098][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 14:32:20,570 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 14:32:20,570 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 14:32:20,571 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 14:32:20,572 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 14:32:20,575 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 14:32:20,576 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 14:32:20,576 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 14:32:20,576 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 14:32:20,576 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.522158 -999.00  +13.50  20.73     35   -1.20 1 1 1 1 1   887    0 14.51 4.65 ----- 22.4 20.7 32.2 25.6 17.6 -30.7 16.5 -32.6 17.1 -31.4 18.2 -28.5
2025-06-13 14:32:20,576 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 14:32:20,576 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 14:32:20,576 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.522158
2025-06-13 14:32:20,576 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 14:32:20,576 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 14:32:20,576 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 14:32:20,576 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 14:32:20,576 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 14:32:20,576 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T14:31:51', tmtdew=16.99, humidity=30.81, cloud=0.0, wind=22.59, temperature=13.86, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T12:31:54.451', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 14:32:20,577 [DEBUG][       Thread-258098][   transport.py][1871] : EOF in transport thread
2025-06-13 14:32:20,648 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 14:32:20,668 [DEBUG][       Thread-258101][   transport.py][1871] : starting thread (client mode): 0x863c91e0
2025-06-13 14:32:20,668 [DEBUG][       Thread-258101][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 14:32:20,685 [DEBUG][       Thread-258101][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 14:32:20,685 [ INFO][       Thread-258101][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 14:32:20,693 [DEBUG][       Thread-258101][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 14:32:20,693 [DEBUG][       Thread-258101][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 14:32:20,693 [DEBUG][       Thread-258101][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 14:32:20,693 [DEBUG][       Thread-258101][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:32:20,693 [DEBUG][       Thread-258101][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:32:20,693 [DEBUG][       Thread-258101][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:32:20,693 [DEBUG][       Thread-258101][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:32:20,693 [DEBUG][       Thread-258101][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 14:32:20,693 [DEBUG][       Thread-258101][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 14:32:20,693 [DEBUG][       Thread-258101][   transport.py][1871] : client lang: <none>
2025-06-13 14:32:20,693 [DEBUG][       Thread-258101][   transport.py][1871] : server lang: <none>
2025-06-13 14:32:20,693 [DEBUG][       Thread-258101][   transport.py][1871] : kex follows: False
2025-06-13 14:32:20,693 [DEBUG][       Thread-258101][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 14:32:20,693 [DEBUG][       Thread-258101][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 14:32:20,693 [DEBUG][       Thread-258101][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 14:32:20,693 [DEBUG][       Thread-258101][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 14:32:20,693 [DEBUG][       Thread-258101][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 14:32:20,693 [DEBUG][       Thread-258101][   transport.py][1871] : Compression: none
2025-06-13 14:32:20,693 [DEBUG][       Thread-258101][   transport.py][1871] : === End of kex handshake ===
2025-06-13 14:32:20,752 [DEBUG][       Thread-258101][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 14:32:20,752 [DEBUG][       Thread-258101][   transport.py][1871] : Switch to new keys ...
2025-06-13 14:32:20,753 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 14:32:20,753 [DEBUG][       Thread-258101][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 14:32:20,754 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 14:32:20,811 [DEBUG][       Thread-258101][   transport.py][1871] : userauth is OK
2025-06-13 14:32:20,811 [DEBUG][       Thread-258101][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 14:32:20,811 [DEBUG][       Thread-258101][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 14:32:20,811 [DEBUG][       Thread-258101][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 14:32:20,811 [DEBUG][       Thread-258101][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 14:32:20,830 [ INFO][       Thread-258101][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 14:32:20,831 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 14:32:20,831 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 14:32:21,836 [DEBUG][       Thread-258101][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 14:32:21,836 [DEBUG][       Thread-258101][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 14:32:21,886 [DEBUG][       Thread-258101][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 14:32:21,887 [DEBUG][       Thread-258101][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 14:32:21,898 [DEBUG][       Thread-258101][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 14:32:21,909 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 14:32:21,910 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 14:32:21,920 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 14:32:21,930 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 14:32:21,930 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 14:32:21,931 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 14:32:21,939 [DEBUG][       Thread-258101][   transport.py][1871] : EOF in transport thread
2025-06-13 14:32:27,796 [DEBUG][Thread-258103 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:32:31,940 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 14:32:31,940 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 14:32:31,940 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 14:32:31,941 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 14:32:32,404 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 14, 32, 22), 17.01, 30.58, 0.0, 25.04, 13.84, 0, 0, 0, 2, 0, 0),)
2025-06-13 14:32:32,404 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 14:32:22
2025-06-13 14:32:32,486 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 14:32:32,490 [DEBUG][       Thread-258104][   transport.py][1871] : starting thread (client mode): 0x863bd6c0
2025-06-13 14:32:32,490 [DEBUG][       Thread-258104][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 14:32:32,511 [DEBUG][       Thread-258104][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 14:32:32,511 [ INFO][       Thread-258104][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 14:32:32,514 [DEBUG][       Thread-258104][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 14:32:32,514 [DEBUG][       Thread-258104][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 14:32:32,514 [DEBUG][       Thread-258104][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 14:32:32,514 [DEBUG][       Thread-258104][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:32:32,514 [DEBUG][       Thread-258104][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:32:32,514 [DEBUG][       Thread-258104][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:32:32,514 [DEBUG][       Thread-258104][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:32:32,514 [DEBUG][       Thread-258104][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 14:32:32,514 [DEBUG][       Thread-258104][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 14:32:32,514 [DEBUG][       Thread-258104][   transport.py][1871] : client lang: <none>
2025-06-13 14:32:32,514 [DEBUG][       Thread-258104][   transport.py][1871] : server lang: <none>
2025-06-13 14:32:32,514 [DEBUG][       Thread-258104][   transport.py][1871] : kex follows: False
2025-06-13 14:32:32,514 [DEBUG][       Thread-258104][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 14:32:32,514 [DEBUG][       Thread-258104][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 14:32:32,514 [DEBUG][       Thread-258104][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 14:32:32,514 [DEBUG][       Thread-258104][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 14:32:32,514 [DEBUG][       Thread-258104][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 14:32:32,514 [DEBUG][       Thread-258104][   transport.py][1871] : Compression: none
2025-06-13 14:32:32,514 [DEBUG][       Thread-258104][   transport.py][1871] : === End of kex handshake ===
2025-06-13 14:32:32,533 [DEBUG][       Thread-258104][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 14:32:32,533 [DEBUG][       Thread-258104][   transport.py][1871] : Switch to new keys ...
2025-06-13 14:32:32,533 [DEBUG][       Thread-258104][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 14:32:32,533 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 14:32:32,533 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 14:32:32,534 [DEBUG][       Thread-258104][   transport.py][1871] : userauth is OK
2025-06-13 14:32:32,559 [ INFO][       Thread-258104][   transport.py][1871] : Authentication (password) successful!
2025-06-13 14:32:32,559 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 14:32:33,196 [DEBUG][       Thread-258104][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 14:32:33,196 [DEBUG][       Thread-258104][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 14:32:33,237 [DEBUG][       Thread-258104][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 14:32:33,237 [DEBUG][       Thread-258104][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 14:32:33,241 [DEBUG][       Thread-258104][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 14:32:33,253 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 14:32:33,253 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 14:32:33,255 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 14:32:33,257 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 14:32:33,263 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 14:32:33,265 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 14:32:33,265 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 14:32:33,266 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 14:32:33,266 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.522158 -999.00  +13.50  20.73     35   -1.20 1 1 1 1 1   887    0 14.51 4.65 ----- 22.4 20.7 32.2 25.6 17.6 -30.7 16.5 -32.6 17.1 -31.4 18.2 -28.5
2025-06-13 14:32:33,266 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 14:32:33,266 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 14:32:33,266 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.522158
2025-06-13 14:32:33,267 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 14:32:33,267 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 14:32:33,267 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 14:32:33,267 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 14:32:33,267 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 14:32:33,268 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T14:32:22', tmtdew=17.01, humidity=30.58, cloud=0.0, wind=25.04, temperature=13.84, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T12:31:54.451', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 14:32:33,268 [DEBUG][       Thread-258104][   transport.py][1871] : EOF in transport thread
2025-06-13 14:32:33,359 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 14:32:33,369 [DEBUG][       Thread-258107][   transport.py][1871] : starting thread (client mode): 0x863a7a00
2025-06-13 14:32:33,369 [DEBUG][       Thread-258107][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 14:32:33,384 [DEBUG][       Thread-258107][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 14:32:33,384 [ INFO][       Thread-258107][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 14:32:33,392 [DEBUG][       Thread-258107][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 14:32:33,392 [DEBUG][       Thread-258107][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 14:32:33,392 [DEBUG][       Thread-258107][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 14:32:33,392 [DEBUG][       Thread-258107][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:32:33,392 [DEBUG][       Thread-258107][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:32:33,392 [DEBUG][       Thread-258107][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:32:33,392 [DEBUG][       Thread-258107][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:32:33,392 [DEBUG][       Thread-258107][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 14:32:33,392 [DEBUG][       Thread-258107][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 14:32:33,392 [DEBUG][       Thread-258107][   transport.py][1871] : client lang: <none>
2025-06-13 14:32:33,392 [DEBUG][       Thread-258107][   transport.py][1871] : server lang: <none>
2025-06-13 14:32:33,392 [DEBUG][       Thread-258107][   transport.py][1871] : kex follows: False
2025-06-13 14:32:33,392 [DEBUG][       Thread-258107][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 14:32:33,393 [DEBUG][       Thread-258107][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 14:32:33,393 [DEBUG][       Thread-258107][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 14:32:33,393 [DEBUG][       Thread-258107][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 14:32:33,393 [DEBUG][       Thread-258107][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 14:32:33,393 [DEBUG][       Thread-258107][   transport.py][1871] : Compression: none
2025-06-13 14:32:33,393 [DEBUG][       Thread-258107][   transport.py][1871] : === End of kex handshake ===
2025-06-13 14:32:33,461 [DEBUG][       Thread-258107][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 14:32:33,462 [DEBUG][       Thread-258107][   transport.py][1871] : Switch to new keys ...
2025-06-13 14:32:33,462 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 14:32:33,463 [DEBUG][       Thread-258107][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 14:32:33,464 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 14:32:33,519 [DEBUG][       Thread-258107][   transport.py][1871] : userauth is OK
2025-06-13 14:32:33,520 [DEBUG][       Thread-258107][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 14:32:33,520 [DEBUG][       Thread-258107][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 14:32:33,520 [DEBUG][       Thread-258107][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 14:32:33,520 [DEBUG][       Thread-258107][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 14:32:33,540 [ INFO][       Thread-258107][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 14:32:33,540 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 14:32:33,541 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 14:32:34,582 [DEBUG][       Thread-258107][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 14:32:34,583 [DEBUG][       Thread-258107][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 14:32:34,632 [DEBUG][       Thread-258107][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 14:32:34,632 [DEBUG][       Thread-258107][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 14:32:34,641 [DEBUG][       Thread-258107][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 14:32:34,650 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 14:32:34,650 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 14:32:34,659 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 14:32:34,668 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 14:32:34,668 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 14:32:34,669 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 14:32:34,678 [DEBUG][       Thread-258107][   transport.py][1871] : EOF in transport thread
2025-06-13 14:32:36,817 [DEBUG][Thread-258109 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:32:44,675 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 14:32:44,675 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 14:32:44,675 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 14:32:44,678 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 14:32:45,155 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 14, 32, 22), 17.01, 30.58, 0.0, 25.04, 13.84, 0, 0, 0, 2, 0, 0),)
2025-06-13 14:32:45,155 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 14:32:22
2025-06-13 14:32:45,237 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 14:32:45,243 [DEBUG][       Thread-258110][   transport.py][1871] : starting thread (client mode): 0x86353280
2025-06-13 14:32:45,243 [DEBUG][       Thread-258110][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 14:32:45,263 [DEBUG][       Thread-258110][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 14:32:45,263 [ INFO][       Thread-258110][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 14:32:45,266 [DEBUG][       Thread-258110][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 14:32:45,266 [DEBUG][       Thread-258110][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 14:32:45,266 [DEBUG][       Thread-258110][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 14:32:45,266 [DEBUG][       Thread-258110][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:32:45,266 [DEBUG][       Thread-258110][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:32:45,266 [DEBUG][       Thread-258110][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:32:45,266 [DEBUG][       Thread-258110][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:32:45,266 [DEBUG][       Thread-258110][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 14:32:45,266 [DEBUG][       Thread-258110][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 14:32:45,266 [DEBUG][       Thread-258110][   transport.py][1871] : client lang: <none>
2025-06-13 14:32:45,266 [DEBUG][       Thread-258110][   transport.py][1871] : server lang: <none>
2025-06-13 14:32:45,266 [DEBUG][       Thread-258110][   transport.py][1871] : kex follows: False
2025-06-13 14:32:45,266 [DEBUG][       Thread-258110][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 14:32:45,267 [DEBUG][       Thread-258110][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 14:32:45,267 [DEBUG][       Thread-258110][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 14:32:45,267 [DEBUG][       Thread-258110][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 14:32:45,267 [DEBUG][       Thread-258110][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 14:32:45,267 [DEBUG][       Thread-258110][   transport.py][1871] : Compression: none
2025-06-13 14:32:45,267 [DEBUG][       Thread-258110][   transport.py][1871] : === End of kex handshake ===
2025-06-13 14:32:45,283 [DEBUG][       Thread-258110][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 14:32:45,284 [DEBUG][       Thread-258110][   transport.py][1871] : Switch to new keys ...
2025-06-13 14:32:45,284 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 14:32:45,284 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 14:32:45,285 [DEBUG][       Thread-258110][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 14:32:45,286 [DEBUG][       Thread-258110][   transport.py][1871] : userauth is OK
2025-06-13 14:32:45,311 [ INFO][       Thread-258110][   transport.py][1871] : Authentication (password) successful!
2025-06-13 14:32:45,312 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 14:32:45,864 [DEBUG][Thread-258112 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:32:45,961 [DEBUG][       Thread-258110][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 14:32:45,962 [DEBUG][       Thread-258110][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 14:32:46,005 [DEBUG][       Thread-258110][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 14:32:46,005 [DEBUG][       Thread-258110][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 14:32:46,006 [DEBUG][Thread-258113 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:32:46,010 [DEBUG][       Thread-258110][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 14:32:46,021 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 14:32:46,022 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 14:32:46,024 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 14:32:46,026 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 14:32:46,030 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 14:32:46,031 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 14:32:46,031 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 14:32:46,032 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 14:32:46,032 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.522506 -999.00  +13.50  27.30     35   -1.50 1 1 1 1 1   887    0 14.99 4.84 ----- 24.1 27.3 50.6 30.4 17.6 -31.4 16.6 -32.6 16.9 -30.7 18.2 -29.1
2025-06-13 14:32:46,032 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 14:32:46,032 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 14:32:46,032 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.522506
2025-06-13 14:32:46,032 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 14:32:46,032 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 14:32:46,033 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 14:32:46,033 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 14:32:46,033 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 14:32:46,033 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T14:32:22', tmtdew=17.01, humidity=30.58, cloud=0.0, wind=25.04, temperature=13.84, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T12:32:24.518', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 14:32:46,033 [DEBUG][       Thread-258110][   transport.py][1871] : EOF in transport thread
2025-06-13 14:32:46,116 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 14:32:46,128 [DEBUG][       Thread-258115][   transport.py][1871] : starting thread (client mode): 0x863eeb60
2025-06-13 14:32:46,129 [DEBUG][       Thread-258115][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 14:32:46,143 [DEBUG][       Thread-258115][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 14:32:46,143 [ INFO][       Thread-258115][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 14:32:46,154 [DEBUG][       Thread-258115][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 14:32:46,154 [DEBUG][       Thread-258115][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 14:32:46,154 [DEBUG][       Thread-258115][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 14:32:46,154 [DEBUG][       Thread-258115][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:32:46,154 [DEBUG][       Thread-258115][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:32:46,154 [DEBUG][       Thread-258115][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:32:46,154 [DEBUG][       Thread-258115][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:32:46,154 [DEBUG][       Thread-258115][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 14:32:46,154 [DEBUG][       Thread-258115][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 14:32:46,154 [DEBUG][       Thread-258115][   transport.py][1871] : client lang: <none>
2025-06-13 14:32:46,154 [DEBUG][       Thread-258115][   transport.py][1871] : server lang: <none>
2025-06-13 14:32:46,154 [DEBUG][       Thread-258115][   transport.py][1871] : kex follows: False
2025-06-13 14:32:46,154 [DEBUG][       Thread-258115][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 14:32:46,154 [DEBUG][       Thread-258115][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 14:32:46,155 [DEBUG][       Thread-258115][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 14:32:46,155 [DEBUG][       Thread-258115][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 14:32:46,155 [DEBUG][       Thread-258115][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 14:32:46,155 [DEBUG][       Thread-258115][   transport.py][1871] : Compression: none
2025-06-13 14:32:46,155 [DEBUG][       Thread-258115][   transport.py][1871] : === End of kex handshake ===
2025-06-13 14:32:46,212 [DEBUG][       Thread-258115][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 14:32:46,213 [DEBUG][       Thread-258115][   transport.py][1871] : Switch to new keys ...
2025-06-13 14:32:46,213 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 14:32:46,214 [DEBUG][       Thread-258115][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 14:32:46,215 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 14:32:46,267 [DEBUG][       Thread-258115][   transport.py][1871] : userauth is OK
2025-06-13 14:32:46,268 [DEBUG][       Thread-258115][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 14:32:46,268 [DEBUG][       Thread-258115][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 14:32:46,268 [DEBUG][       Thread-258115][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 14:32:46,268 [DEBUG][       Thread-258115][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 14:32:46,287 [ INFO][       Thread-258115][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 14:32:46,287 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 14:32:46,287 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 14:32:47,080 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:32:47,081 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:32:47,341 [DEBUG][       Thread-258115][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 14:32:47,341 [DEBUG][       Thread-258115][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 14:32:47,392 [DEBUG][       Thread-258115][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 14:32:47,392 [DEBUG][       Thread-258115][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 14:32:47,401 [DEBUG][       Thread-258115][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 14:32:47,409 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 14:32:47,410 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 14:32:47,418 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 14:32:47,427 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 14:32:47,427 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 14:32:47,427 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 14:32:47,435 [DEBUG][       Thread-258115][   transport.py][1871] : EOF in transport thread
2025-06-13 14:32:54,886 [DEBUG][Thread-258117 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:32:57,428 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 14:32:57,428 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 14:32:57,428 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 14:32:57,431 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 14:32:57,899 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 14, 32, 54), 16.88, 30.87, 0.0, 22.41, 13.88, 0, 0, 0, 2, 0, 0),)
2025-06-13 14:32:57,899 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 14:32:54
2025-06-13 14:32:57,981 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 14:32:57,985 [DEBUG][       Thread-258118][   transport.py][1871] : starting thread (client mode): 0x863bde40
2025-06-13 14:32:57,985 [DEBUG][       Thread-258118][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 14:32:58,004 [DEBUG][       Thread-258118][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 14:32:58,005 [ INFO][       Thread-258118][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 14:32:58,008 [DEBUG][       Thread-258118][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 14:32:58,008 [DEBUG][       Thread-258118][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 14:32:58,008 [DEBUG][       Thread-258118][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 14:32:58,008 [DEBUG][       Thread-258118][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:32:58,008 [DEBUG][       Thread-258118][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:32:58,008 [DEBUG][       Thread-258118][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:32:58,008 [DEBUG][       Thread-258118][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:32:58,008 [DEBUG][       Thread-258118][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 14:32:58,008 [DEBUG][       Thread-258118][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 14:32:58,008 [DEBUG][       Thread-258118][   transport.py][1871] : client lang: <none>
2025-06-13 14:32:58,008 [DEBUG][       Thread-258118][   transport.py][1871] : server lang: <none>
2025-06-13 14:32:58,008 [DEBUG][       Thread-258118][   transport.py][1871] : kex follows: False
2025-06-13 14:32:58,008 [DEBUG][       Thread-258118][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 14:32:58,009 [DEBUG][       Thread-258118][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 14:32:58,009 [DEBUG][       Thread-258118][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 14:32:58,009 [DEBUG][       Thread-258118][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 14:32:58,009 [DEBUG][       Thread-258118][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 14:32:58,009 [DEBUG][       Thread-258118][   transport.py][1871] : Compression: none
2025-06-13 14:32:58,009 [DEBUG][       Thread-258118][   transport.py][1871] : === End of kex handshake ===
2025-06-13 14:32:58,024 [DEBUG][       Thread-258118][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 14:32:58,025 [DEBUG][       Thread-258118][   transport.py][1871] : Switch to new keys ...
2025-06-13 14:32:58,025 [DEBUG][       Thread-258118][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 14:32:58,025 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 14:32:58,026 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 14:32:58,027 [DEBUG][       Thread-258118][   transport.py][1871] : userauth is OK
2025-06-13 14:32:58,051 [ INFO][       Thread-258118][   transport.py][1871] : Authentication (password) successful!
2025-06-13 14:32:58,052 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 14:32:58,690 [DEBUG][       Thread-258118][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 14:32:58,691 [DEBUG][       Thread-258118][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 14:32:58,733 [DEBUG][       Thread-258118][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 14:32:58,733 [DEBUG][       Thread-258118][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 14:32:58,737 [DEBUG][       Thread-258118][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 14:32:58,749 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 14:32:58,750 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 14:32:58,751 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 14:32:58,753 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 14:32:58,759 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 14:32:58,762 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 14:32:58,762 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 14:32:58,763 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 14:32:58,763 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.522506 -999.00  +13.50  27.30     35   -1.50 1 1 1 1 1   887    0 14.99 4.84 ----- 24.1 27.3 50.6 30.4 17.6 -31.4 16.6 -32.6 16.9 -30.7 18.2 -29.1
2025-06-13 14:32:58,763 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 14:32:58,763 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 14:32:58,763 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.522506
2025-06-13 14:32:58,764 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 14:32:58,764 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 14:32:58,764 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 14:32:58,764 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 14:32:58,764 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 14:32:58,765 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T14:32:54', tmtdew=16.88, humidity=30.87, cloud=0.0, wind=22.41, temperature=13.88, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T12:32:24.518', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 14:32:58,766 [DEBUG][       Thread-258118][   transport.py][1871] : EOF in transport thread
2025-06-13 14:32:58,848 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 14:32:58,857 [DEBUG][       Thread-258121][   transport.py][1871] : starting thread (client mode): 0x863eeb60
2025-06-13 14:32:58,857 [DEBUG][       Thread-258121][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 14:32:58,872 [DEBUG][       Thread-258121][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 14:32:58,872 [ INFO][       Thread-258121][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 14:32:58,880 [DEBUG][       Thread-258121][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 14:32:58,880 [DEBUG][       Thread-258121][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 14:32:58,880 [DEBUG][       Thread-258121][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 14:32:58,880 [DEBUG][       Thread-258121][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:32:58,880 [DEBUG][       Thread-258121][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:32:58,880 [DEBUG][       Thread-258121][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:32:58,880 [DEBUG][       Thread-258121][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:32:58,881 [DEBUG][       Thread-258121][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 14:32:58,881 [DEBUG][       Thread-258121][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 14:32:58,881 [DEBUG][       Thread-258121][   transport.py][1871] : client lang: <none>
2025-06-13 14:32:58,881 [DEBUG][       Thread-258121][   transport.py][1871] : server lang: <none>
2025-06-13 14:32:58,881 [DEBUG][       Thread-258121][   transport.py][1871] : kex follows: False
2025-06-13 14:32:58,881 [DEBUG][       Thread-258121][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 14:32:58,881 [DEBUG][       Thread-258121][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 14:32:58,881 [DEBUG][       Thread-258121][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 14:32:58,881 [DEBUG][       Thread-258121][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 14:32:58,881 [DEBUG][       Thread-258121][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 14:32:58,881 [DEBUG][       Thread-258121][   transport.py][1871] : Compression: none
2025-06-13 14:32:58,881 [DEBUG][       Thread-258121][   transport.py][1871] : === End of kex handshake ===
2025-06-13 14:32:58,940 [DEBUG][       Thread-258121][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 14:32:58,940 [DEBUG][       Thread-258121][   transport.py][1871] : Switch to new keys ...
2025-06-13 14:32:58,941 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 14:32:58,942 [DEBUG][       Thread-258121][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 14:32:58,942 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 14:32:58,997 [DEBUG][       Thread-258121][   transport.py][1871] : userauth is OK
2025-06-13 14:32:58,997 [DEBUG][       Thread-258121][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 14:32:58,997 [DEBUG][       Thread-258121][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 14:32:58,997 [DEBUG][       Thread-258121][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 14:32:58,997 [DEBUG][       Thread-258121][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 14:32:59,016 [ INFO][       Thread-258121][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 14:32:59,016 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 14:32:59,017 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 14:33:00,026 [DEBUG][       Thread-258121][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 14:33:00,026 [DEBUG][       Thread-258121][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 14:33:00,078 [DEBUG][       Thread-258121][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 14:33:00,078 [DEBUG][       Thread-258121][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 14:33:00,091 [DEBUG][       Thread-258121][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 14:33:00,103 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 14:33:00,103 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 14:33:00,113 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 14:33:00,122 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 14:33:00,123 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 14:33:00,123 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 14:33:00,135 [DEBUG][       Thread-258121][   transport.py][1871] : EOF in transport thread
2025-06-13 14:33:01,565 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:33:01,566 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:33:03,911 [DEBUG][Thread-258123 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:33:10,133 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 14:33:10,133 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 14:33:10,133 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 14:33:10,134 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 14:33:10,617 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 14, 32, 54), 16.88, 30.87, 0.0, 22.41, 13.88, 0, 0, 0, 2, 0, 0),)
2025-06-13 14:33:10,617 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 14:32:54
2025-06-13 14:33:10,699 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 14:33:10,704 [DEBUG][       Thread-258124][   transport.py][1871] : starting thread (client mode): 0x842076d0
2025-06-13 14:33:10,704 [DEBUG][       Thread-258124][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 14:33:10,724 [DEBUG][       Thread-258124][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 14:33:10,724 [ INFO][       Thread-258124][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 14:33:10,727 [DEBUG][       Thread-258124][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 14:33:10,727 [DEBUG][       Thread-258124][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 14:33:10,727 [DEBUG][       Thread-258124][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 14:33:10,727 [DEBUG][       Thread-258124][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:33:10,727 [DEBUG][       Thread-258124][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:33:10,727 [DEBUG][       Thread-258124][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:33:10,727 [DEBUG][       Thread-258124][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:33:10,727 [DEBUG][       Thread-258124][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 14:33:10,727 [DEBUG][       Thread-258124][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 14:33:10,727 [DEBUG][       Thread-258124][   transport.py][1871] : client lang: <none>
2025-06-13 14:33:10,727 [DEBUG][       Thread-258124][   transport.py][1871] : server lang: <none>
2025-06-13 14:33:10,727 [DEBUG][       Thread-258124][   transport.py][1871] : kex follows: False
2025-06-13 14:33:10,727 [DEBUG][       Thread-258124][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 14:33:10,727 [DEBUG][       Thread-258124][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 14:33:10,727 [DEBUG][       Thread-258124][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 14:33:10,727 [DEBUG][       Thread-258124][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 14:33:10,727 [DEBUG][       Thread-258124][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 14:33:10,727 [DEBUG][       Thread-258124][   transport.py][1871] : Compression: none
2025-06-13 14:33:10,727 [DEBUG][       Thread-258124][   transport.py][1871] : === End of kex handshake ===
2025-06-13 14:33:10,742 [DEBUG][       Thread-258124][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 14:33:10,742 [DEBUG][       Thread-258124][   transport.py][1871] : Switch to new keys ...
2025-06-13 14:33:10,742 [DEBUG][       Thread-258124][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 14:33:10,742 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 14:33:10,743 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 14:33:10,743 [DEBUG][       Thread-258124][   transport.py][1871] : userauth is OK
2025-06-13 14:33:10,755 [ INFO][       Thread-258124][   transport.py][1871] : Authentication (password) successful!
2025-06-13 14:33:10,756 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 14:33:11,394 [DEBUG][       Thread-258124][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 14:33:11,394 [DEBUG][       Thread-258124][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 14:33:11,437 [DEBUG][       Thread-258124][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 14:33:11,437 [DEBUG][       Thread-258124][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 14:33:11,440 [DEBUG][       Thread-258124][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 14:33:11,453 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 14:33:11,453 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 14:33:11,456 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 14:33:11,458 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 14:33:11,464 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 14:33:11,466 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 14:33:11,466 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 14:33:11,467 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 14:33:11,467 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.522853 -999.00  +13.40  23.80     35   -1.60 1 1 1 1 1   887    0 15.00 4.00 ----- 24.8 23.8 41.4 30.6 17.6 -30.9 16.5 -32.4 16.9 -30.7 18.2 -28.7
2025-06-13 14:33:11,467 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 14:33:11,467 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 14:33:11,467 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.522853
2025-06-13 14:33:11,468 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 14:33:11,469 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 14:33:11,469 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 14:33:11,469 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 14:33:11,469 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 14:33:11,469 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T14:32:54', tmtdew=16.88, humidity=30.87, cloud=0.0, wind=22.41, temperature=13.88, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T12:32:54.499', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 14:33:11,470 [DEBUG][       Thread-258124][   transport.py][1871] : EOF in transport thread
2025-06-13 14:33:11,562 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 14:33:11,575 [DEBUG][       Thread-258127][   transport.py][1871] : starting thread (client mode): 0x86739330
2025-06-13 14:33:11,575 [DEBUG][       Thread-258127][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 14:33:11,592 [DEBUG][       Thread-258127][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 14:33:11,593 [ INFO][       Thread-258127][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 14:33:11,601 [DEBUG][       Thread-258127][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 14:33:11,601 [DEBUG][       Thread-258127][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 14:33:11,601 [DEBUG][       Thread-258127][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 14:33:11,601 [DEBUG][       Thread-258127][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:33:11,601 [DEBUG][       Thread-258127][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:33:11,601 [DEBUG][       Thread-258127][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:33:11,601 [DEBUG][       Thread-258127][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:33:11,601 [DEBUG][       Thread-258127][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 14:33:11,601 [DEBUG][       Thread-258127][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 14:33:11,601 [DEBUG][       Thread-258127][   transport.py][1871] : client lang: <none>
2025-06-13 14:33:11,601 [DEBUG][       Thread-258127][   transport.py][1871] : server lang: <none>
2025-06-13 14:33:11,601 [DEBUG][       Thread-258127][   transport.py][1871] : kex follows: False
2025-06-13 14:33:11,601 [DEBUG][       Thread-258127][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 14:33:11,602 [DEBUG][       Thread-258127][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 14:33:11,602 [DEBUG][       Thread-258127][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 14:33:11,602 [DEBUG][       Thread-258127][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 14:33:11,602 [DEBUG][       Thread-258127][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 14:33:11,602 [DEBUG][       Thread-258127][   transport.py][1871] : Compression: none
2025-06-13 14:33:11,602 [DEBUG][       Thread-258127][   transport.py][1871] : === End of kex handshake ===
2025-06-13 14:33:11,660 [DEBUG][       Thread-258127][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 14:33:11,660 [DEBUG][       Thread-258127][   transport.py][1871] : Switch to new keys ...
2025-06-13 14:33:11,661 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 14:33:11,661 [DEBUG][       Thread-258127][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 14:33:11,662 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 14:33:11,719 [DEBUG][       Thread-258127][   transport.py][1871] : userauth is OK
2025-06-13 14:33:11,720 [DEBUG][       Thread-258127][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 14:33:11,720 [DEBUG][       Thread-258127][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 14:33:11,720 [DEBUG][       Thread-258127][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 14:33:11,720 [DEBUG][       Thread-258127][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 14:33:11,739 [ INFO][       Thread-258127][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 14:33:11,739 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 14:33:11,740 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 14:33:12,788 [DEBUG][       Thread-258127][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 14:33:12,788 [DEBUG][       Thread-258127][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 14:33:12,843 [DEBUG][       Thread-258127][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 14:33:12,843 [DEBUG][       Thread-258127][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 14:33:12,853 [DEBUG][       Thread-258127][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 14:33:12,862 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 14:33:12,862 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 14:33:12,871 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 14:33:12,880 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 14:33:12,880 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 14:33:12,881 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 14:33:12,889 [DEBUG][       Thread-258127][   transport.py][1871] : EOF in transport thread
2025-06-13 14:33:12,951 [DEBUG][Thread-258129 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:33:18,394 [DEBUG][Thread-258130 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:33:21,975 [DEBUG][Thread-258131 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:33:22,891 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 14:33:22,892 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 14:33:22,892 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 14:33:22,895 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 14:33:23,375 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 14, 32, 54), 16.88, 30.87, 0.0, 22.41, 13.88, 0, 0, 0, 2, 0, 0),)
2025-06-13 14:33:23,375 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 14:32:54
2025-06-13 14:33:23,455 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 14:33:23,459 [DEBUG][       Thread-258132][   transport.py][1871] : starting thread (client mode): 0x867ff520
2025-06-13 14:33:23,460 [DEBUG][       Thread-258132][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 14:33:23,480 [DEBUG][       Thread-258132][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 14:33:23,480 [ INFO][       Thread-258132][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 14:33:23,484 [DEBUG][       Thread-258132][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 14:33:23,484 [DEBUG][       Thread-258132][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 14:33:23,484 [DEBUG][       Thread-258132][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 14:33:23,484 [DEBUG][       Thread-258132][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:33:23,484 [DEBUG][       Thread-258132][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:33:23,484 [DEBUG][       Thread-258132][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:33:23,484 [DEBUG][       Thread-258132][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:33:23,484 [DEBUG][       Thread-258132][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 14:33:23,484 [DEBUG][       Thread-258132][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 14:33:23,484 [DEBUG][       Thread-258132][   transport.py][1871] : client lang: <none>
2025-06-13 14:33:23,484 [DEBUG][       Thread-258132][   transport.py][1871] : server lang: <none>
2025-06-13 14:33:23,484 [DEBUG][       Thread-258132][   transport.py][1871] : kex follows: False
2025-06-13 14:33:23,484 [DEBUG][       Thread-258132][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 14:33:23,484 [DEBUG][       Thread-258132][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 14:33:23,484 [DEBUG][       Thread-258132][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 14:33:23,485 [DEBUG][       Thread-258132][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 14:33:23,485 [DEBUG][       Thread-258132][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 14:33:23,485 [DEBUG][       Thread-258132][   transport.py][1871] : Compression: none
2025-06-13 14:33:23,485 [DEBUG][       Thread-258132][   transport.py][1871] : === End of kex handshake ===
2025-06-13 14:33:23,503 [DEBUG][       Thread-258132][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 14:33:23,503 [DEBUG][       Thread-258132][   transport.py][1871] : Switch to new keys ...
2025-06-13 14:33:23,504 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 14:33:23,504 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 14:33:23,504 [DEBUG][       Thread-258132][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 14:33:23,505 [DEBUG][       Thread-258132][   transport.py][1871] : userauth is OK
2025-06-13 14:33:23,518 [ INFO][       Thread-258132][   transport.py][1871] : Authentication (password) successful!
2025-06-13 14:33:23,519 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 14:33:24,151 [DEBUG][       Thread-258132][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 14:33:24,152 [DEBUG][       Thread-258132][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 14:33:24,193 [DEBUG][       Thread-258132][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 14:33:24,193 [DEBUG][       Thread-258132][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 14:33:24,196 [DEBUG][       Thread-258132][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 14:33:24,207 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 14:33:24,208 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 14:33:24,210 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 14:33:24,212 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 14:33:24,217 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 14:33:24,219 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 14:33:24,220 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 14:33:24,220 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 14:33:24,221 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.522853 -999.00  +13.40  23.80     35   -1.60 1 1 1 1 1   887    0 15.00 4.00 ----- 24.8 23.8 41.4 30.6 17.6 -30.9 16.5 -32.4 16.9 -30.7 18.2 -28.7
2025-06-13 14:33:24,221 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 14:33:24,221 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 14:33:24,221 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.522853
2025-06-13 14:33:24,221 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 14:33:24,222 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 14:33:24,222 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 14:33:24,222 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 14:33:24,222 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 14:33:24,222 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T14:32:54', tmtdew=16.88, humidity=30.87, cloud=0.0, wind=22.41, temperature=13.88, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T12:32:54.499', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 14:33:24,223 [DEBUG][       Thread-258132][   transport.py][1871] : EOF in transport thread
2025-06-13 14:33:24,307 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 14:33:30,995 [DEBUG][Thread-258135 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:33:40,018 [DEBUG][Thread-258136 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:33:47,156 [DEBUG][Thread-258137 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:33:48,217 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:33:48,218 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:33:49,036 [DEBUG][Thread-258138 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:33:58,055 [DEBUG][Thread-258139 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:34:01,726 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:34:01,727 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:34:07,075 [DEBUG][Thread-258140 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:34:16,098 [DEBUG][Thread-258141 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:34:18,446 [DEBUG][Thread-258142 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:34:25,123 [DEBUG][Thread-258143 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:34:34,141 [DEBUG][Thread-258144 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:34:43,164 [DEBUG][Thread-258145 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:34:48,258 [DEBUG][Thread-258146 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:34:49,319 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:34:49,320 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:34:52,188 [DEBUG][Thread-258147 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:35:01,210 [DEBUG][Thread-258148 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:35:01,864 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:35:01,865 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:35:10,231 [DEBUG][Thread-258149 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:35:18,492 [DEBUG][Thread-258150 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:35:19,254 [DEBUG][Thread-258151 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:35:28,276 [DEBUG][Thread-258152 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:35:32,756 [WARNING][ poll_weather_worker][      driver.py][ 286] : Unable to open ssh connection for writing weather state to io.saao.ac.za: [Errno 110] Connection timed out
2025-06-13 14:35:37,299 [DEBUG][Thread-258153 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:35:42,764 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 14:35:42,764 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 14:35:42,764 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 14:35:42,765 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 14:35:43,276 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 14, 35, 33), 17.02, 30.77, 0.0, 17.72, 14.23, 0, 0, 0, 2, 0, 0),)
2025-06-13 14:35:43,276 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 14:35:33
2025-06-13 14:35:43,359 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 14:35:43,363 [DEBUG][       Thread-258154][   transport.py][1871] : starting thread (client mode): 0x863923e0
2025-06-13 14:35:43,363 [DEBUG][       Thread-258154][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 14:35:43,384 [DEBUG][       Thread-258154][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 14:35:43,384 [ INFO][       Thread-258154][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 14:35:43,388 [DEBUG][       Thread-258154][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 14:35:43,388 [DEBUG][       Thread-258154][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 14:35:43,388 [DEBUG][       Thread-258154][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 14:35:43,388 [DEBUG][       Thread-258154][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:35:43,388 [DEBUG][       Thread-258154][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:35:43,388 [DEBUG][       Thread-258154][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:35:43,388 [DEBUG][       Thread-258154][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:35:43,388 [DEBUG][       Thread-258154][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 14:35:43,388 [DEBUG][       Thread-258154][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 14:35:43,388 [DEBUG][       Thread-258154][   transport.py][1871] : client lang: <none>
2025-06-13 14:35:43,388 [DEBUG][       Thread-258154][   transport.py][1871] : server lang: <none>
2025-06-13 14:35:43,388 [DEBUG][       Thread-258154][   transport.py][1871] : kex follows: False
2025-06-13 14:35:43,388 [DEBUG][       Thread-258154][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 14:35:43,388 [DEBUG][       Thread-258154][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 14:35:43,388 [DEBUG][       Thread-258154][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 14:35:43,388 [DEBUG][       Thread-258154][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 14:35:43,388 [DEBUG][       Thread-258154][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 14:35:43,388 [DEBUG][       Thread-258154][   transport.py][1871] : Compression: none
2025-06-13 14:35:43,388 [DEBUG][       Thread-258154][   transport.py][1871] : === End of kex handshake ===
2025-06-13 14:35:43,404 [DEBUG][       Thread-258154][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 14:35:43,404 [DEBUG][       Thread-258154][   transport.py][1871] : Switch to new keys ...
2025-06-13 14:35:43,404 [DEBUG][       Thread-258154][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 14:35:43,404 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 14:35:43,404 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 14:35:43,405 [DEBUG][       Thread-258154][   transport.py][1871] : userauth is OK
2025-06-13 14:35:43,417 [ INFO][       Thread-258154][   transport.py][1871] : Authentication (password) successful!
2025-06-13 14:35:43,417 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 14:35:44,029 [DEBUG][       Thread-258154][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 14:35:44,029 [DEBUG][       Thread-258154][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 14:35:44,072 [DEBUG][       Thread-258154][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 14:35:44,072 [DEBUG][       Thread-258154][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 14:35:44,075 [DEBUG][       Thread-258154][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 14:35:44,081 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 14:35:44,081 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 14:35:44,082 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 14:35:44,083 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 14:35:44,085 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 14:35:44,086 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 14:35:44,086 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 14:35:44,086 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 14:35:44,086 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.524242 -999.00  +13.70  17.48     36   -0.90 1 1 1 1 1   887    0 14.72 -5.22 ----- 26.3 17.5 358.8 26.5 17.7 -30.5 16.6 -31.5 17.1 -29.7 18.2 -29.2
2025-06-13 14:35:44,086 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 14:35:44,086 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 14:35:44,086 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.524242
2025-06-13 14:35:44,086 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 14:35:44,086 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 14:35:44,086 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 14:35:44,086 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 14:35:44,086 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 14:35:44,086 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T14:35:33', tmtdew=17.02, humidity=30.77, cloud=0.0, wind=17.72, temperature=14.23, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T12:34:54.509', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 14:35:44,087 [DEBUG][       Thread-258154][   transport.py][1871] : EOF in transport thread
2025-06-13 14:35:44,160 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 14:35:44,172 [DEBUG][       Thread-258157][   transport.py][1871] : starting thread (client mode): 0x863cb0d0
2025-06-13 14:35:44,172 [DEBUG][       Thread-258157][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 14:35:44,187 [DEBUG][       Thread-258157][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 14:35:44,188 [ INFO][       Thread-258157][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 14:35:44,196 [DEBUG][       Thread-258157][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 14:35:44,196 [DEBUG][       Thread-258157][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 14:35:44,196 [DEBUG][       Thread-258157][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 14:35:44,196 [DEBUG][       Thread-258157][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:35:44,196 [DEBUG][       Thread-258157][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:35:44,196 [DEBUG][       Thread-258157][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:35:44,196 [DEBUG][       Thread-258157][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:35:44,196 [DEBUG][       Thread-258157][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 14:35:44,196 [DEBUG][       Thread-258157][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 14:35:44,196 [DEBUG][       Thread-258157][   transport.py][1871] : client lang: <none>
2025-06-13 14:35:44,196 [DEBUG][       Thread-258157][   transport.py][1871] : server lang: <none>
2025-06-13 14:35:44,196 [DEBUG][       Thread-258157][   transport.py][1871] : kex follows: False
2025-06-13 14:35:44,196 [DEBUG][       Thread-258157][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 14:35:44,196 [DEBUG][       Thread-258157][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 14:35:44,196 [DEBUG][       Thread-258157][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 14:35:44,196 [DEBUG][       Thread-258157][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 14:35:44,196 [DEBUG][       Thread-258157][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 14:35:44,196 [DEBUG][       Thread-258157][   transport.py][1871] : Compression: none
2025-06-13 14:35:44,196 [DEBUG][       Thread-258157][   transport.py][1871] : === End of kex handshake ===
2025-06-13 14:35:44,253 [DEBUG][       Thread-258157][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 14:35:44,253 [DEBUG][       Thread-258157][   transport.py][1871] : Switch to new keys ...
2025-06-13 14:35:44,254 [DEBUG][       Thread-258157][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 14:35:44,254 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 14:35:44,254 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 14:35:44,313 [DEBUG][       Thread-258157][   transport.py][1871] : userauth is OK
2025-06-13 14:35:44,313 [DEBUG][       Thread-258157][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 14:35:44,313 [DEBUG][       Thread-258157][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 14:35:44,313 [DEBUG][       Thread-258157][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 14:35:44,313 [DEBUG][       Thread-258157][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 14:35:44,327 [ INFO][       Thread-258157][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 14:35:44,327 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 14:35:44,327 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 14:35:45,354 [DEBUG][       Thread-258157][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 14:35:45,355 [DEBUG][       Thread-258157][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 14:35:45,404 [DEBUG][       Thread-258157][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 14:35:45,404 [DEBUG][       Thread-258157][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 14:35:45,413 [DEBUG][       Thread-258157][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 14:35:45,422 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 14:35:45,423 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 14:35:45,432 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 14:35:45,441 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 14:35:45,441 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 14:35:45,442 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 14:35:45,450 [DEBUG][       Thread-258157][   transport.py][1871] : EOF in transport thread
2025-06-13 14:35:46,321 [DEBUG][Thread-258159 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:35:49,366 [DEBUG][Thread-258160 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:35:50,426 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:35:50,428 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:35:55,367 [DEBUG][Thread-258161 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:35:55,452 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 14:35:55,453 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 14:35:55,453 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 14:35:55,456 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 14:35:55,939 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 14, 35, 33), 17.02, 30.77, 0.0, 17.72, 14.23, 0, 0, 0, 2, 0, 0),)
2025-06-13 14:35:55,939 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 14:35:33
2025-06-13 14:35:56,018 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 14:35:56,022 [DEBUG][       Thread-258162][   transport.py][1871] : starting thread (client mode): 0x86350340
2025-06-13 14:35:56,022 [DEBUG][       Thread-258162][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 14:35:56,033 [DEBUG][       Thread-258162][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 14:35:56,033 [ INFO][       Thread-258162][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 14:35:56,035 [DEBUG][       Thread-258162][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 14:35:56,035 [DEBUG][       Thread-258162][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 14:35:56,035 [DEBUG][       Thread-258162][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 14:35:56,035 [DEBUG][       Thread-258162][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:35:56,035 [DEBUG][       Thread-258162][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:35:56,035 [DEBUG][       Thread-258162][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:35:56,035 [DEBUG][       Thread-258162][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:35:56,035 [DEBUG][       Thread-258162][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 14:35:56,035 [DEBUG][       Thread-258162][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 14:35:56,035 [DEBUG][       Thread-258162][   transport.py][1871] : client lang: <none>
2025-06-13 14:35:56,035 [DEBUG][       Thread-258162][   transport.py][1871] : server lang: <none>
2025-06-13 14:35:56,035 [DEBUG][       Thread-258162][   transport.py][1871] : kex follows: False
2025-06-13 14:35:56,035 [DEBUG][       Thread-258162][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 14:35:56,035 [DEBUG][       Thread-258162][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 14:35:56,035 [DEBUG][       Thread-258162][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 14:35:56,035 [DEBUG][       Thread-258162][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 14:35:56,035 [DEBUG][       Thread-258162][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 14:35:56,035 [DEBUG][       Thread-258162][   transport.py][1871] : Compression: none
2025-06-13 14:35:56,035 [DEBUG][       Thread-258162][   transport.py][1871] : === End of kex handshake ===
2025-06-13 14:35:56,042 [DEBUG][       Thread-258162][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 14:35:56,042 [DEBUG][       Thread-258162][   transport.py][1871] : Switch to new keys ...
2025-06-13 14:35:56,042 [DEBUG][       Thread-258162][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 14:35:56,042 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 14:35:56,042 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 14:35:56,043 [DEBUG][       Thread-258162][   transport.py][1871] : userauth is OK
2025-06-13 14:35:56,056 [ INFO][       Thread-258162][   transport.py][1871] : Authentication (password) successful!
2025-06-13 14:35:56,057 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 14:35:56,640 [DEBUG][       Thread-258162][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 14:35:56,641 [DEBUG][       Thread-258162][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 14:35:56,685 [DEBUG][       Thread-258162][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 14:35:56,685 [DEBUG][       Thread-258162][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 14:35:56,687 [DEBUG][       Thread-258162][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 14:35:56,700 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 14:35:56,700 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 14:35:56,701 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 14:35:56,702 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 14:35:56,704 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 14:35:56,705 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 14:35:56,705 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 14:35:56,705 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 14:35:56,705 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.524589 -999.00  +13.60  15.04     36   -1.00 1 1 1 1 1   887    0 14.82 -6.30 ----- 15.6 15.0 16.3 22.8 17.7 -30.9 16.6 -32.7 17.1 -30.1 18.2 -29.8
2025-06-13 14:35:56,705 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 14:35:56,705 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 14:35:56,705 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.524589
2025-06-13 14:35:56,705 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 14:35:56,705 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 14:35:56,705 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 14:35:56,705 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 14:35:56,705 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 14:35:56,705 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T14:35:33', tmtdew=17.02, humidity=30.77, cloud=0.0, wind=17.72, temperature=14.23, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T12:35:24.490', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 14:35:56,706 [DEBUG][       Thread-258162][   transport.py][1871] : EOF in transport thread
2025-06-13 14:35:56,777 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 14:36:02,003 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:36:02,004 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:36:04,388 [DEBUG][Thread-258165 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:36:13,410 [DEBUG][Thread-258166 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:36:18,536 [DEBUG][Thread-258167 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:36:22,429 [DEBUG][Thread-258168 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:36:31,450 [DEBUG][Thread-258169 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:36:40,472 [DEBUG][Thread-258170 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:36:49,494 [DEBUG][Thread-258171 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:36:50,456 [DEBUG][Thread-258172 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:36:51,537 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:36:51,538 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:36:58,514 [DEBUG][Thread-258173 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:37:02,142 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:37:02,143 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:37:07,531 [DEBUG][Thread-258174 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:37:16,552 [DEBUG][Thread-258175 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:37:18,589 [DEBUG][Thread-258176 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:37:25,574 [DEBUG][Thread-258177 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:37:34,596 [DEBUG][Thread-258178 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:37:43,616 [DEBUG][Thread-258179 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:37:51,581 [DEBUG][Thread-258180 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:37:52,640 [DEBUG][Thread-258181 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:37:52,672 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:37:52,673 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:38:01,662 [DEBUG][Thread-258182 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:38:02,280 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:38:02,282 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:38:06,356 [WARNING][ poll_weather_worker][      driver.py][ 286] : Unable to open ssh connection for writing weather state to io.saao.ac.za: [Errno 110] Connection timed out
2025-06-13 14:38:10,686 [DEBUG][Thread-258183 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:38:16,364 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 14:38:16,364 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 14:38:16,364 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 14:38:16,365 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 14:38:16,879 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 14, 38, 11), 17.33, 30.16, 0.0, 23.24, 14.19, 0, 0, 0, 2, 0, 0),)
2025-06-13 14:38:16,879 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 14:38:11
2025-06-13 14:38:16,965 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 14:38:16,971 [DEBUG][       Thread-258184][   transport.py][1871] : starting thread (client mode): 0x863522f0
2025-06-13 14:38:16,971 [DEBUG][       Thread-258184][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 14:38:16,981 [DEBUG][       Thread-258184][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 14:38:16,982 [ INFO][       Thread-258184][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 14:38:16,985 [DEBUG][       Thread-258184][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 14:38:16,985 [DEBUG][       Thread-258184][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 14:38:16,985 [DEBUG][       Thread-258184][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 14:38:16,985 [DEBUG][       Thread-258184][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:38:16,985 [DEBUG][       Thread-258184][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:38:16,985 [DEBUG][       Thread-258184][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:38:16,985 [DEBUG][       Thread-258184][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:38:16,985 [DEBUG][       Thread-258184][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 14:38:16,985 [DEBUG][       Thread-258184][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 14:38:16,985 [DEBUG][       Thread-258184][   transport.py][1871] : client lang: <none>
2025-06-13 14:38:16,985 [DEBUG][       Thread-258184][   transport.py][1871] : server lang: <none>
2025-06-13 14:38:16,985 [DEBUG][       Thread-258184][   transport.py][1871] : kex follows: False
2025-06-13 14:38:16,985 [DEBUG][       Thread-258184][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 14:38:16,985 [DEBUG][       Thread-258184][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 14:38:16,985 [DEBUG][       Thread-258184][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 14:38:16,985 [DEBUG][       Thread-258184][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 14:38:16,985 [DEBUG][       Thread-258184][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 14:38:16,985 [DEBUG][       Thread-258184][   transport.py][1871] : Compression: none
2025-06-13 14:38:16,985 [DEBUG][       Thread-258184][   transport.py][1871] : === End of kex handshake ===
2025-06-13 14:38:17,001 [DEBUG][       Thread-258184][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 14:38:17,001 [DEBUG][       Thread-258184][   transport.py][1871] : Switch to new keys ...
2025-06-13 14:38:17,001 [DEBUG][       Thread-258184][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 14:38:17,001 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 14:38:17,001 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 14:38:17,002 [DEBUG][       Thread-258184][   transport.py][1871] : userauth is OK
2025-06-13 14:38:17,026 [ INFO][       Thread-258184][   transport.py][1871] : Authentication (password) successful!
2025-06-13 14:38:17,026 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 14:38:17,637 [DEBUG][       Thread-258184][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 14:38:17,637 [DEBUG][       Thread-258184][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 14:38:17,680 [DEBUG][       Thread-258184][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 14:38:17,681 [DEBUG][       Thread-258184][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 14:38:17,683 [DEBUG][       Thread-258184][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 14:38:17,695 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 14:38:17,695 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 14:38:17,696 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 14:38:17,697 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 14:38:17,700 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 14:38:17,701 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 14:38:17,701 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 14:38:17,701 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 14:38:17,701 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.526325 -999.00  +14.10  19.90     35   -0.80 1 1 1 1 1   887    0 14.89 1.23 ----- 17.4 19.9 21.0 26.3 17.7 -30.5 16.6 -32.2 17.2 -30.2 18.3 -28.9
2025-06-13 14:38:17,701 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 14:38:17,701 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 14:38:17,701 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.526325
2025-06-13 14:38:17,701 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 14:38:17,701 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 14:38:17,701 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 14:38:17,701 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 14:38:17,701 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 14:38:17,701 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T14:38:11', tmtdew=17.33, humidity=30.16, cloud=0.0, wind=23.24, temperature=14.19, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T12:37:54.480', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 14:38:17,702 [DEBUG][       Thread-258184][   transport.py][1871] : EOF in transport thread
2025-06-13 14:38:17,776 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 14:38:17,787 [DEBUG][       Thread-258187][   transport.py][1871] : starting thread (client mode): 0x867fcb50
2025-06-13 14:38:17,787 [DEBUG][       Thread-258187][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 14:38:17,803 [DEBUG][       Thread-258187][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 14:38:17,803 [ INFO][       Thread-258187][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 14:38:17,811 [DEBUG][       Thread-258187][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 14:38:17,811 [DEBUG][       Thread-258187][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 14:38:17,811 [DEBUG][       Thread-258187][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 14:38:17,811 [DEBUG][       Thread-258187][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:38:17,811 [DEBUG][       Thread-258187][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:38:17,811 [DEBUG][       Thread-258187][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:38:17,811 [DEBUG][       Thread-258187][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:38:17,811 [DEBUG][       Thread-258187][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 14:38:17,811 [DEBUG][       Thread-258187][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 14:38:17,811 [DEBUG][       Thread-258187][   transport.py][1871] : client lang: <none>
2025-06-13 14:38:17,811 [DEBUG][       Thread-258187][   transport.py][1871] : server lang: <none>
2025-06-13 14:38:17,811 [DEBUG][       Thread-258187][   transport.py][1871] : kex follows: False
2025-06-13 14:38:17,811 [DEBUG][       Thread-258187][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 14:38:17,811 [DEBUG][       Thread-258187][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 14:38:17,811 [DEBUG][       Thread-258187][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 14:38:17,811 [DEBUG][       Thread-258187][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 14:38:17,811 [DEBUG][       Thread-258187][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 14:38:17,811 [DEBUG][       Thread-258187][   transport.py][1871] : Compression: none
2025-06-13 14:38:17,811 [DEBUG][       Thread-258187][   transport.py][1871] : === End of kex handshake ===
2025-06-13 14:38:17,869 [DEBUG][       Thread-258187][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 14:38:17,869 [DEBUG][       Thread-258187][   transport.py][1871] : Switch to new keys ...
2025-06-13 14:38:17,869 [DEBUG][       Thread-258187][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 14:38:17,869 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 14:38:17,870 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 14:38:17,926 [DEBUG][       Thread-258187][   transport.py][1871] : userauth is OK
2025-06-13 14:38:17,926 [DEBUG][       Thread-258187][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 14:38:17,926 [DEBUG][       Thread-258187][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 14:38:17,926 [DEBUG][       Thread-258187][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 14:38:17,926 [DEBUG][       Thread-258187][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 14:38:17,940 [ INFO][       Thread-258187][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 14:38:17,940 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 14:38:17,940 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 14:38:18,636 [DEBUG][Thread-258189 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:38:18,936 [DEBUG][       Thread-258187][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 14:38:18,936 [DEBUG][       Thread-258187][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 14:38:18,984 [DEBUG][       Thread-258187][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 14:38:18,984 [DEBUG][       Thread-258187][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 14:38:18,993 [DEBUG][       Thread-258187][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 14:38:19,003 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 14:38:19,003 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 14:38:19,012 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 14:38:19,021 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 14:38:19,021 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 14:38:19,022 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 14:38:19,030 [DEBUG][       Thread-258187][   transport.py][1871] : EOF in transport thread
2025-06-13 14:38:19,705 [DEBUG][Thread-258190 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:38:28,744 [DEBUG][Thread-258191 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:38:29,032 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 14:38:29,033 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 14:38:29,033 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 14:38:29,036 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 14:38:29,521 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 14, 38, 11), 17.33, 30.16, 0.0, 23.24, 14.19, 0, 0, 0, 2, 0, 0),)
2025-06-13 14:38:29,521 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 14:38:11
2025-06-13 14:38:29,602 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 14:38:29,606 [DEBUG][       Thread-258192][   transport.py][1871] : starting thread (client mode): 0x84205870
2025-06-13 14:38:29,606 [DEBUG][       Thread-258192][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 14:38:29,627 [DEBUG][       Thread-258192][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 14:38:29,627 [ INFO][       Thread-258192][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 14:38:29,630 [DEBUG][       Thread-258192][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 14:38:29,630 [DEBUG][       Thread-258192][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 14:38:29,630 [DEBUG][       Thread-258192][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 14:38:29,630 [DEBUG][       Thread-258192][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:38:29,630 [DEBUG][       Thread-258192][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:38:29,630 [DEBUG][       Thread-258192][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:38:29,630 [DEBUG][       Thread-258192][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:38:29,630 [DEBUG][       Thread-258192][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 14:38:29,630 [DEBUG][       Thread-258192][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 14:38:29,630 [DEBUG][       Thread-258192][   transport.py][1871] : client lang: <none>
2025-06-13 14:38:29,630 [DEBUG][       Thread-258192][   transport.py][1871] : server lang: <none>
2025-06-13 14:38:29,630 [DEBUG][       Thread-258192][   transport.py][1871] : kex follows: False
2025-06-13 14:38:29,630 [DEBUG][       Thread-258192][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 14:38:29,630 [DEBUG][       Thread-258192][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 14:38:29,631 [DEBUG][       Thread-258192][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 14:38:29,631 [DEBUG][       Thread-258192][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 14:38:29,631 [DEBUG][       Thread-258192][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 14:38:29,631 [DEBUG][       Thread-258192][   transport.py][1871] : Compression: none
2025-06-13 14:38:29,631 [DEBUG][       Thread-258192][   transport.py][1871] : === End of kex handshake ===
2025-06-13 14:38:29,649 [DEBUG][       Thread-258192][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 14:38:29,650 [DEBUG][       Thread-258192][   transport.py][1871] : Switch to new keys ...
2025-06-13 14:38:29,650 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 14:38:29,651 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 14:38:29,651 [DEBUG][       Thread-258192][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 14:38:29,652 [DEBUG][       Thread-258192][   transport.py][1871] : userauth is OK
2025-06-13 14:38:29,667 [ INFO][       Thread-258192][   transport.py][1871] : Authentication (password) successful!
2025-06-13 14:38:29,667 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 14:38:30,291 [DEBUG][       Thread-258192][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 14:38:30,291 [DEBUG][       Thread-258192][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 14:38:30,333 [DEBUG][       Thread-258192][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 14:38:30,333 [DEBUG][       Thread-258192][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 14:38:30,336 [DEBUG][       Thread-258192][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 14:38:30,351 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 14:38:30,351 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 14:38:30,353 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 14:38:30,354 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 14:38:30,360 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 14:38:30,362 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 14:38:30,362 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 14:38:30,363 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 14:38:30,363 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.526325 -999.00  +14.10  19.90     35   -0.80 1 1 1 1 1   887    0 14.89 1.23 ----- 17.4 19.9 21.0 26.3 17.7 -30.5 16.6 -32.2 17.2 -30.2 18.3 -28.9
2025-06-13 14:38:30,363 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 14:38:30,363 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 14:38:30,363 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.526325
2025-06-13 14:38:30,363 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 14:38:30,364 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 14:38:30,364 [DEBUG][       Thread-258192][   transport.py][1871] : EOF in transport thread
2025-06-13 14:38:30,364 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 14:38:30,365 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 14:38:30,365 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 14:38:30,365 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T14:38:11', tmtdew=17.33, humidity=30.16, cloud=0.0, wind=23.24, temperature=14.19, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T12:37:54.480', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 14:38:30,448 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 14:38:30,458 [DEBUG][       Thread-258195][   transport.py][1871] : starting thread (client mode): 0x863a4cd0
2025-06-13 14:38:30,458 [DEBUG][       Thread-258195][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 14:38:30,474 [DEBUG][       Thread-258195][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 14:38:30,474 [ INFO][       Thread-258195][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 14:38:30,482 [DEBUG][       Thread-258195][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 14:38:30,483 [DEBUG][       Thread-258195][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 14:38:30,483 [DEBUG][       Thread-258195][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 14:38:30,483 [DEBUG][       Thread-258195][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:38:30,483 [DEBUG][       Thread-258195][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:38:30,483 [DEBUG][       Thread-258195][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:38:30,483 [DEBUG][       Thread-258195][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:38:30,483 [DEBUG][       Thread-258195][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 14:38:30,483 [DEBUG][       Thread-258195][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 14:38:30,483 [DEBUG][       Thread-258195][   transport.py][1871] : client lang: <none>
2025-06-13 14:38:30,483 [DEBUG][       Thread-258195][   transport.py][1871] : server lang: <none>
2025-06-13 14:38:30,483 [DEBUG][       Thread-258195][   transport.py][1871] : kex follows: False
2025-06-13 14:38:30,483 [DEBUG][       Thread-258195][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 14:38:30,483 [DEBUG][       Thread-258195][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 14:38:30,483 [DEBUG][       Thread-258195][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 14:38:30,483 [DEBUG][       Thread-258195][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 14:38:30,483 [DEBUG][       Thread-258195][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 14:38:30,483 [DEBUG][       Thread-258195][   transport.py][1871] : Compression: none
2025-06-13 14:38:30,483 [DEBUG][       Thread-258195][   transport.py][1871] : === End of kex handshake ===
2025-06-13 14:38:30,548 [DEBUG][       Thread-258195][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 14:38:30,549 [DEBUG][       Thread-258195][   transport.py][1871] : Switch to new keys ...
2025-06-13 14:38:30,549 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 14:38:30,550 [DEBUG][       Thread-258195][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 14:38:30,551 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 14:38:30,609 [DEBUG][       Thread-258195][   transport.py][1871] : userauth is OK
2025-06-13 14:38:30,609 [DEBUG][       Thread-258195][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 14:38:30,609 [DEBUG][       Thread-258195][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 14:38:30,609 [DEBUG][       Thread-258195][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 14:38:30,609 [DEBUG][       Thread-258195][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 14:38:30,628 [ INFO][       Thread-258195][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 14:38:30,629 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 14:38:30,629 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 14:38:31,680 [DEBUG][       Thread-258195][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 14:38:31,681 [DEBUG][       Thread-258195][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 14:38:31,735 [DEBUG][       Thread-258195][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 14:38:31,735 [DEBUG][       Thread-258195][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 14:38:31,744 [DEBUG][       Thread-258195][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 14:38:31,757 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 14:38:31,757 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 14:38:31,768 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 14:38:31,778 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 14:38:31,778 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 14:38:31,778 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 14:38:31,786 [DEBUG][       Thread-258195][   transport.py][1871] : EOF in transport thread
2025-06-13 14:38:37,768 [DEBUG][Thread-258197 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:38:41,780 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 14:38:41,781 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 14:38:41,781 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 14:38:41,784 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 14:38:42,271 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 14, 38, 11), 17.33, 30.16, 0.0, 23.24, 14.19, 0, 0, 0, 2, 0, 0),)
2025-06-13 14:38:42,271 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 14:38:11
2025-06-13 14:38:42,353 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 14:38:42,359 [DEBUG][       Thread-258198][   transport.py][1871] : starting thread (client mode): 0x863530a0
2025-06-13 14:38:42,359 [DEBUG][       Thread-258198][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 14:38:42,378 [DEBUG][       Thread-258198][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 14:38:42,378 [ INFO][       Thread-258198][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 14:38:42,382 [DEBUG][       Thread-258198][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 14:38:42,382 [DEBUG][       Thread-258198][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 14:38:42,382 [DEBUG][       Thread-258198][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 14:38:42,382 [DEBUG][       Thread-258198][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:38:42,382 [DEBUG][       Thread-258198][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:38:42,382 [DEBUG][       Thread-258198][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:38:42,382 [DEBUG][       Thread-258198][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:38:42,382 [DEBUG][       Thread-258198][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 14:38:42,382 [DEBUG][       Thread-258198][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 14:38:42,382 [DEBUG][       Thread-258198][   transport.py][1871] : client lang: <none>
2025-06-13 14:38:42,382 [DEBUG][       Thread-258198][   transport.py][1871] : server lang: <none>
2025-06-13 14:38:42,382 [DEBUG][       Thread-258198][   transport.py][1871] : kex follows: False
2025-06-13 14:38:42,382 [DEBUG][       Thread-258198][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 14:38:42,382 [DEBUG][       Thread-258198][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 14:38:42,382 [DEBUG][       Thread-258198][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 14:38:42,382 [DEBUG][       Thread-258198][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 14:38:42,383 [DEBUG][       Thread-258198][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 14:38:42,383 [DEBUG][       Thread-258198][   transport.py][1871] : Compression: none
2025-06-13 14:38:42,383 [DEBUG][       Thread-258198][   transport.py][1871] : === End of kex handshake ===
2025-06-13 14:38:42,399 [DEBUG][       Thread-258198][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 14:38:42,400 [DEBUG][       Thread-258198][   transport.py][1871] : Switch to new keys ...
2025-06-13 14:38:42,400 [DEBUG][       Thread-258198][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 14:38:42,401 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 14:38:42,401 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 14:38:42,402 [DEBUG][       Thread-258198][   transport.py][1871] : userauth is OK
2025-06-13 14:38:42,415 [ INFO][       Thread-258198][   transport.py][1871] : Authentication (password) successful!
2025-06-13 14:38:42,416 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 14:38:43,056 [DEBUG][       Thread-258198][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 14:38:43,057 [DEBUG][       Thread-258198][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 14:38:43,101 [DEBUG][       Thread-258198][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 14:38:43,101 [DEBUG][       Thread-258198][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 14:38:43,105 [DEBUG][       Thread-258198][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 14:38:43,117 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 14:38:43,118 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 14:38:43,119 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 14:38:43,121 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 14:38:43,127 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 14:38:43,129 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 14:38:43,130 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 14:38:43,130 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 14:38:43,131 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.526672 -999.00  +14.00  18.71     35   -1.00 1 1 1 1 1   887    0 14.95 4.89 ----- 22.0 18.7 35.0 28.1 17.7 -30.8 16.6 -32.4 17.2 -30.7 18.3 -28.5
2025-06-13 14:38:43,131 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 14:38:43,131 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 14:38:43,131 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.526672
2025-06-13 14:38:43,131 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 14:38:43,132 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 14:38:43,132 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 14:38:43,132 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 14:38:43,132 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 14:38:43,132 [DEBUG][       Thread-258198][   transport.py][1871] : EOF in transport thread
2025-06-13 14:38:43,133 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T14:38:11', tmtdew=17.33, humidity=30.16, cloud=0.0, wind=23.24, temperature=14.19, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T12:38:24.461', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 14:38:43,230 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 14:38:43,241 [DEBUG][       Thread-258201][   transport.py][1871] : starting thread (client mode): 0x86352170
2025-06-13 14:38:43,241 [DEBUG][       Thread-258201][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 14:38:43,256 [DEBUG][       Thread-258201][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 14:38:43,256 [ INFO][       Thread-258201][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 14:38:43,264 [DEBUG][       Thread-258201][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 14:38:43,264 [DEBUG][       Thread-258201][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 14:38:43,264 [DEBUG][       Thread-258201][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 14:38:43,264 [DEBUG][       Thread-258201][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:38:43,264 [DEBUG][       Thread-258201][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:38:43,264 [DEBUG][       Thread-258201][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:38:43,264 [DEBUG][       Thread-258201][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:38:43,264 [DEBUG][       Thread-258201][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 14:38:43,264 [DEBUG][       Thread-258201][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 14:38:43,264 [DEBUG][       Thread-258201][   transport.py][1871] : client lang: <none>
2025-06-13 14:38:43,264 [DEBUG][       Thread-258201][   transport.py][1871] : server lang: <none>
2025-06-13 14:38:43,264 [DEBUG][       Thread-258201][   transport.py][1871] : kex follows: False
2025-06-13 14:38:43,264 [DEBUG][       Thread-258201][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 14:38:43,264 [DEBUG][       Thread-258201][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 14:38:43,264 [DEBUG][       Thread-258201][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 14:38:43,264 [DEBUG][       Thread-258201][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 14:38:43,265 [DEBUG][       Thread-258201][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 14:38:43,265 [DEBUG][       Thread-258201][   transport.py][1871] : Compression: none
2025-06-13 14:38:43,265 [DEBUG][       Thread-258201][   transport.py][1871] : === End of kex handshake ===
2025-06-13 14:38:43,325 [DEBUG][       Thread-258201][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 14:38:43,326 [DEBUG][       Thread-258201][   transport.py][1871] : Switch to new keys ...
2025-06-13 14:38:43,326 [DEBUG][       Thread-258201][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 14:38:43,327 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 14:38:43,327 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 14:38:43,383 [DEBUG][       Thread-258201][   transport.py][1871] : userauth is OK
2025-06-13 14:38:43,383 [DEBUG][       Thread-258201][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 14:38:43,383 [DEBUG][       Thread-258201][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 14:38:43,384 [DEBUG][       Thread-258201][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 14:38:43,384 [DEBUG][       Thread-258201][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 14:38:43,402 [ INFO][       Thread-258201][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 14:38:43,403 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 14:38:43,403 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 14:38:44,386 [DEBUG][       Thread-258201][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 14:38:44,386 [DEBUG][       Thread-258201][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 14:38:44,435 [DEBUG][       Thread-258201][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 14:38:44,435 [DEBUG][       Thread-258201][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 14:38:44,444 [DEBUG][       Thread-258201][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 14:38:44,452 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 14:38:44,452 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 14:38:44,460 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 14:38:44,468 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 14:38:44,468 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 14:38:44,468 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 14:38:44,476 [DEBUG][       Thread-258201][   transport.py][1871] : EOF in transport thread
2025-06-13 14:38:46,791 [DEBUG][Thread-258203 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:38:52,714 [DEBUG][Thread-258204 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:38:53,768 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:38:53,768 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:38:54,478 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 14:38:54,478 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 14:38:54,478 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 14:38:54,479 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 14:38:54,987 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 14, 38, 43), 17.45, 29.92, 0.0, 22.21, 14.2, 0, 0, 0, 2, 0, 0),)
2025-06-13 14:38:54,987 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 14:38:43
2025-06-13 14:38:55,073 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 14:38:55,077 [DEBUG][       Thread-258205][   transport.py][1871] : starting thread (client mode): 0x86353850
2025-06-13 14:38:55,077 [DEBUG][       Thread-258205][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 14:38:55,098 [DEBUG][       Thread-258205][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 14:38:55,098 [ INFO][       Thread-258205][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 14:38:55,102 [DEBUG][       Thread-258205][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 14:38:55,102 [DEBUG][       Thread-258205][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 14:38:55,102 [DEBUG][       Thread-258205][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 14:38:55,102 [DEBUG][       Thread-258205][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:38:55,102 [DEBUG][       Thread-258205][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:38:55,102 [DEBUG][       Thread-258205][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:38:55,102 [DEBUG][       Thread-258205][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:38:55,102 [DEBUG][       Thread-258205][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 14:38:55,102 [DEBUG][       Thread-258205][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 14:38:55,102 [DEBUG][       Thread-258205][   transport.py][1871] : client lang: <none>
2025-06-13 14:38:55,102 [DEBUG][       Thread-258205][   transport.py][1871] : server lang: <none>
2025-06-13 14:38:55,102 [DEBUG][       Thread-258205][   transport.py][1871] : kex follows: False
2025-06-13 14:38:55,102 [DEBUG][       Thread-258205][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 14:38:55,102 [DEBUG][       Thread-258205][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 14:38:55,102 [DEBUG][       Thread-258205][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 14:38:55,102 [DEBUG][       Thread-258205][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 14:38:55,102 [DEBUG][       Thread-258205][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 14:38:55,102 [DEBUG][       Thread-258205][   transport.py][1871] : Compression: none
2025-06-13 14:38:55,102 [DEBUG][       Thread-258205][   transport.py][1871] : === End of kex handshake ===
2025-06-13 14:38:55,117 [DEBUG][       Thread-258205][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 14:38:55,118 [DEBUG][       Thread-258205][   transport.py][1871] : Switch to new keys ...
2025-06-13 14:38:55,118 [DEBUG][       Thread-258205][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 14:38:55,118 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 14:38:55,118 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 14:38:55,118 [DEBUG][       Thread-258205][   transport.py][1871] : userauth is OK
2025-06-13 14:38:55,131 [ INFO][       Thread-258205][   transport.py][1871] : Authentication (password) successful!
2025-06-13 14:38:55,131 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 14:38:55,735 [DEBUG][       Thread-258205][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 14:38:55,735 [DEBUG][       Thread-258205][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 14:38:55,776 [DEBUG][       Thread-258205][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 14:38:55,776 [DEBUG][       Thread-258205][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 14:38:55,778 [DEBUG][       Thread-258205][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 14:38:55,790 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 14:38:55,790 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 14:38:55,791 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 14:38:55,792 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 14:38:55,795 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 14:38:55,796 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 14:38:55,796 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 14:38:55,796 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 14:38:55,796 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.526672 -999.00  +14.00  18.71     35   -1.00 1 1 1 1 1   887    0 14.95 4.89 ----- 22.0 18.7 35.0 28.1 17.7 -30.8 16.6 -32.4 17.2 -30.7 18.3 -28.5
2025-06-13 14:38:55,796 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 14:38:55,797 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 14:38:55,797 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.526672
2025-06-13 14:38:55,797 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 14:38:55,797 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 14:38:55,797 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 14:38:55,797 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 14:38:55,797 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 14:38:55,797 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T14:38:43', tmtdew=17.45, humidity=29.92, cloud=0.0, wind=22.21, temperature=14.2, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T12:38:24.461', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 14:38:55,797 [DEBUG][       Thread-258205][   transport.py][1871] : EOF in transport thread
2025-06-13 14:38:55,809 [DEBUG][Thread-258208 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:38:55,875 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 14:38:55,884 [DEBUG][       Thread-258209][   transport.py][1871] : starting thread (client mode): 0x86739330
2025-06-13 14:38:55,884 [DEBUG][       Thread-258209][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 14:38:55,900 [DEBUG][       Thread-258209][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 14:38:55,900 [ INFO][       Thread-258209][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 14:38:55,907 [DEBUG][       Thread-258209][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 14:38:55,907 [DEBUG][       Thread-258209][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 14:38:55,907 [DEBUG][       Thread-258209][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 14:38:55,907 [DEBUG][       Thread-258209][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:38:55,907 [DEBUG][       Thread-258209][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:38:55,907 [DEBUG][       Thread-258209][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:38:55,907 [DEBUG][       Thread-258209][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:38:55,907 [DEBUG][       Thread-258209][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 14:38:55,907 [DEBUG][       Thread-258209][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 14:38:55,907 [DEBUG][       Thread-258209][   transport.py][1871] : client lang: <none>
2025-06-13 14:38:55,907 [DEBUG][       Thread-258209][   transport.py][1871] : server lang: <none>
2025-06-13 14:38:55,907 [DEBUG][       Thread-258209][   transport.py][1871] : kex follows: False
2025-06-13 14:38:55,907 [DEBUG][       Thread-258209][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 14:38:55,907 [DEBUG][       Thread-258209][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 14:38:55,907 [DEBUG][       Thread-258209][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 14:38:55,907 [DEBUG][       Thread-258209][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 14:38:55,907 [DEBUG][       Thread-258209][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 14:38:55,907 [DEBUG][       Thread-258209][   transport.py][1871] : Compression: none
2025-06-13 14:38:55,907 [DEBUG][       Thread-258209][   transport.py][1871] : === End of kex handshake ===
2025-06-13 14:38:55,965 [DEBUG][       Thread-258209][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 14:38:55,965 [DEBUG][       Thread-258209][   transport.py][1871] : Switch to new keys ...
2025-06-13 14:38:55,965 [DEBUG][       Thread-258209][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 14:38:55,965 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 14:38:55,965 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 14:38:56,023 [DEBUG][       Thread-258209][   transport.py][1871] : userauth is OK
2025-06-13 14:38:56,023 [DEBUG][       Thread-258209][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 14:38:56,023 [DEBUG][       Thread-258209][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 14:38:56,023 [DEBUG][       Thread-258209][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 14:38:56,023 [DEBUG][       Thread-258209][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 14:38:56,040 [ INFO][       Thread-258209][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 14:38:56,040 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 14:38:56,040 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 14:38:57,030 [DEBUG][       Thread-258209][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 14:38:57,030 [DEBUG][       Thread-258209][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 14:38:57,082 [DEBUG][       Thread-258209][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 14:38:57,082 [DEBUG][       Thread-258209][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 14:38:57,093 [DEBUG][       Thread-258209][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 14:38:57,102 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 14:38:57,102 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 14:38:57,111 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 14:38:57,119 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 14:38:57,119 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 14:38:57,119 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 14:38:57,127 [DEBUG][       Thread-258209][   transport.py][1871] : EOF in transport thread
2025-06-13 14:39:02,423 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:39:02,424 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:39:04,835 [DEBUG][Thread-258211 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:39:07,121 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 14:39:07,121 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 14:39:07,121 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 14:39:07,122 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 14:39:07,600 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 14, 38, 43), 17.45, 29.92, 0.0, 22.21, 14.2, 0, 0, 0, 2, 0, 0),)
2025-06-13 14:39:07,600 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 14:38:43
2025-06-13 14:39:07,681 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 14:39:07,686 [DEBUG][       Thread-258212][   transport.py][1871] : starting thread (client mode): 0x863beb30
2025-06-13 14:39:07,686 [DEBUG][       Thread-258212][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 14:39:07,706 [DEBUG][       Thread-258212][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 14:39:07,706 [ INFO][       Thread-258212][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 14:39:07,710 [DEBUG][       Thread-258212][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 14:39:07,710 [DEBUG][       Thread-258212][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 14:39:07,710 [DEBUG][       Thread-258212][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 14:39:07,710 [DEBUG][       Thread-258212][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:39:07,710 [DEBUG][       Thread-258212][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:39:07,710 [DEBUG][       Thread-258212][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:39:07,710 [DEBUG][       Thread-258212][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:39:07,710 [DEBUG][       Thread-258212][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 14:39:07,710 [DEBUG][       Thread-258212][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 14:39:07,710 [DEBUG][       Thread-258212][   transport.py][1871] : client lang: <none>
2025-06-13 14:39:07,710 [DEBUG][       Thread-258212][   transport.py][1871] : server lang: <none>
2025-06-13 14:39:07,710 [DEBUG][       Thread-258212][   transport.py][1871] : kex follows: False
2025-06-13 14:39:07,710 [DEBUG][       Thread-258212][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 14:39:07,710 [DEBUG][       Thread-258212][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 14:39:07,710 [DEBUG][       Thread-258212][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 14:39:07,710 [DEBUG][       Thread-258212][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 14:39:07,710 [DEBUG][       Thread-258212][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 14:39:07,710 [DEBUG][       Thread-258212][   transport.py][1871] : Compression: none
2025-06-13 14:39:07,710 [DEBUG][       Thread-258212][   transport.py][1871] : === End of kex handshake ===
2025-06-13 14:39:07,728 [DEBUG][       Thread-258212][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 14:39:07,729 [DEBUG][       Thread-258212][   transport.py][1871] : Switch to new keys ...
2025-06-13 14:39:07,730 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 14:39:07,730 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 14:39:07,730 [DEBUG][       Thread-258212][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 14:39:07,771 [DEBUG][       Thread-258212][   transport.py][1871] : userauth is OK
2025-06-13 14:39:07,796 [ INFO][       Thread-258212][   transport.py][1871] : Authentication (password) successful!
2025-06-13 14:39:07,797 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 14:39:08,426 [DEBUG][       Thread-258212][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 14:39:08,427 [DEBUG][       Thread-258212][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 14:39:08,469 [DEBUG][       Thread-258212][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 14:39:08,469 [DEBUG][       Thread-258212][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 14:39:08,473 [DEBUG][       Thread-258212][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 14:39:08,486 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 14:39:08,487 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 14:39:08,488 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 14:39:08,490 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 14:39:08,495 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 14:39:08,497 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 14:39:08,497 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 14:39:08,498 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 14:39:08,498 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.526672 -999.00  +14.00  18.71     35   -1.00 1 1 1 1 1   887    0 14.95 4.89 ----- 22.0 18.7 35.0 28.1 17.7 -30.8 16.6 -32.4 17.2 -30.7 18.3 -28.5
2025-06-13 14:39:08,498 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 14:39:08,498 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 14:39:08,498 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.526672
2025-06-13 14:39:08,499 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 14:39:08,499 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 14:39:08,500 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 14:39:08,500 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 14:39:08,500 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 14:39:08,500 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T14:38:43', tmtdew=17.45, humidity=29.92, cloud=0.0, wind=22.21, temperature=14.2, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T12:38:24.461', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 14:39:08,500 [DEBUG][       Thread-258212][   transport.py][1871] : EOF in transport thread
2025-06-13 14:39:08,583 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 14:39:08,594 [DEBUG][       Thread-258215][   transport.py][1871] : starting thread (client mode): 0x867fd030
2025-06-13 14:39:08,594 [DEBUG][       Thread-258215][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 14:39:08,610 [DEBUG][       Thread-258215][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 14:39:08,610 [ INFO][       Thread-258215][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 14:39:08,617 [DEBUG][       Thread-258215][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 14:39:08,617 [DEBUG][       Thread-258215][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 14:39:08,617 [DEBUG][       Thread-258215][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 14:39:08,618 [DEBUG][       Thread-258215][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:39:08,618 [DEBUG][       Thread-258215][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:39:08,618 [DEBUG][       Thread-258215][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:39:08,618 [DEBUG][       Thread-258215][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:39:08,618 [DEBUG][       Thread-258215][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 14:39:08,618 [DEBUG][       Thread-258215][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 14:39:08,618 [DEBUG][       Thread-258215][   transport.py][1871] : client lang: <none>
2025-06-13 14:39:08,618 [DEBUG][       Thread-258215][   transport.py][1871] : server lang: <none>
2025-06-13 14:39:08,618 [DEBUG][       Thread-258215][   transport.py][1871] : kex follows: False
2025-06-13 14:39:08,618 [DEBUG][       Thread-258215][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 14:39:08,618 [DEBUG][       Thread-258215][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 14:39:08,618 [DEBUG][       Thread-258215][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 14:39:08,618 [DEBUG][       Thread-258215][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 14:39:08,618 [DEBUG][       Thread-258215][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 14:39:08,618 [DEBUG][       Thread-258215][   transport.py][1871] : Compression: none
2025-06-13 14:39:08,618 [DEBUG][       Thread-258215][   transport.py][1871] : === End of kex handshake ===
2025-06-13 14:39:08,675 [DEBUG][       Thread-258215][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 14:39:08,676 [DEBUG][       Thread-258215][   transport.py][1871] : Switch to new keys ...
2025-06-13 14:39:08,676 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 14:39:08,677 [DEBUG][       Thread-258215][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 14:39:08,678 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 14:39:08,731 [DEBUG][       Thread-258215][   transport.py][1871] : userauth is OK
2025-06-13 14:39:08,732 [DEBUG][       Thread-258215][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 14:39:08,732 [DEBUG][       Thread-258215][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 14:39:08,732 [DEBUG][       Thread-258215][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 14:39:08,732 [DEBUG][       Thread-258215][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 14:39:08,751 [ INFO][       Thread-258215][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 14:39:08,751 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 14:39:08,752 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 14:39:09,787 [DEBUG][       Thread-258215][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 14:39:09,787 [DEBUG][       Thread-258215][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 14:39:09,836 [DEBUG][       Thread-258215][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 14:39:09,836 [DEBUG][       Thread-258215][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 14:39:09,845 [DEBUG][       Thread-258215][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 14:39:09,854 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 14:39:09,854 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 14:39:09,863 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 14:39:09,873 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 14:39:09,873 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 14:39:09,874 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 14:39:09,881 [DEBUG][       Thread-258215][   transport.py][1871] : EOF in transport thread
2025-06-13 14:39:13,857 [DEBUG][Thread-258217 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:39:18,689 [DEBUG][Thread-258218 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:39:19,877 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 14:39:19,878 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 14:39:19,878 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 14:39:19,880 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 14:39:20,353 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 14, 39, 14), 17.24, 30.37, 0.0, 17.61, 14.09, 0, 0, 0, 2, 0, 0),)
2025-06-13 14:39:20,353 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 14:39:14
2025-06-13 14:39:20,434 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 14:39:20,438 [DEBUG][       Thread-258219][   transport.py][1871] : starting thread (client mode): 0x86368640
2025-06-13 14:39:20,438 [DEBUG][       Thread-258219][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 14:39:20,460 [DEBUG][       Thread-258219][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 14:39:20,460 [ INFO][       Thread-258219][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 14:39:20,461 [DEBUG][       Thread-258219][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 14:39:20,461 [DEBUG][       Thread-258219][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 14:39:20,461 [DEBUG][       Thread-258219][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 14:39:20,461 [DEBUG][       Thread-258219][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:39:20,462 [DEBUG][       Thread-258219][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:39:20,462 [DEBUG][       Thread-258219][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:39:20,462 [DEBUG][       Thread-258219][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:39:20,462 [DEBUG][       Thread-258219][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 14:39:20,462 [DEBUG][       Thread-258219][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 14:39:20,462 [DEBUG][       Thread-258219][   transport.py][1871] : client lang: <none>
2025-06-13 14:39:20,462 [DEBUG][       Thread-258219][   transport.py][1871] : server lang: <none>
2025-06-13 14:39:20,462 [DEBUG][       Thread-258219][   transport.py][1871] : kex follows: False
2025-06-13 14:39:20,462 [DEBUG][       Thread-258219][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 14:39:20,462 [DEBUG][       Thread-258219][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 14:39:20,462 [DEBUG][       Thread-258219][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 14:39:20,462 [DEBUG][       Thread-258219][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 14:39:20,462 [DEBUG][       Thread-258219][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 14:39:20,462 [DEBUG][       Thread-258219][   transport.py][1871] : Compression: none
2025-06-13 14:39:20,462 [DEBUG][       Thread-258219][   transport.py][1871] : === End of kex handshake ===
2025-06-13 14:39:20,470 [DEBUG][       Thread-258219][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 14:39:20,471 [DEBUG][       Thread-258219][   transport.py][1871] : Switch to new keys ...
2025-06-13 14:39:20,471 [DEBUG][       Thread-258219][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 14:39:20,471 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 14:39:20,472 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 14:39:20,473 [DEBUG][       Thread-258219][   transport.py][1871] : userauth is OK
2025-06-13 14:39:20,486 [ INFO][       Thread-258219][   transport.py][1871] : Authentication (password) successful!
2025-06-13 14:39:20,486 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 14:39:21,108 [DEBUG][       Thread-258219][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 14:39:21,108 [DEBUG][       Thread-258219][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 14:39:21,149 [DEBUG][       Thread-258219][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 14:39:21,149 [DEBUG][       Thread-258219][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 14:39:21,153 [DEBUG][       Thread-258219][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 14:39:21,164 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 14:39:21,165 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 14:39:21,167 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 14:39:21,168 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 14:39:21,175 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 14:39:21,177 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 14:39:21,177 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 14:39:21,178 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 14:39:21,178 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.527020 -999.00  +14.20  21.43     35   -0.80 1 1 1 1 1   887    0 14.88 7.97 ----- 20.9 21.4 44.4 25.4 17.7 -30.7 16.6 -31.4 17.3 -29.7 18.4 -28.6
2025-06-13 14:39:21,178 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 14:39:21,178 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 14:39:21,178 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.527020
2025-06-13 14:39:21,179 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 14:39:21,179 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 14:39:21,179 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 14:39:21,179 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 14:39:21,179 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 14:39:21,180 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T14:39:14', tmtdew=17.24, humidity=30.37, cloud=0.0, wind=17.61, temperature=14.09, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T12:38:54.528', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 14:39:21,181 [DEBUG][       Thread-258219][   transport.py][1871] : EOF in transport thread
2025-06-13 14:39:21,263 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 14:39:21,275 [DEBUG][       Thread-258222][   transport.py][1871] : starting thread (client mode): 0x84204820
2025-06-13 14:39:21,275 [DEBUG][       Thread-258222][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 14:39:21,290 [DEBUG][       Thread-258222][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 14:39:21,290 [ INFO][       Thread-258222][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 14:39:21,298 [DEBUG][       Thread-258222][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 14:39:21,298 [DEBUG][       Thread-258222][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 14:39:21,298 [DEBUG][       Thread-258222][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 14:39:21,298 [DEBUG][       Thread-258222][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:39:21,298 [DEBUG][       Thread-258222][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:39:21,298 [DEBUG][       Thread-258222][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:39:21,298 [DEBUG][       Thread-258222][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:39:21,298 [DEBUG][       Thread-258222][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 14:39:21,298 [DEBUG][       Thread-258222][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 14:39:21,298 [DEBUG][       Thread-258222][   transport.py][1871] : client lang: <none>
2025-06-13 14:39:21,299 [DEBUG][       Thread-258222][   transport.py][1871] : server lang: <none>
2025-06-13 14:39:21,299 [DEBUG][       Thread-258222][   transport.py][1871] : kex follows: False
2025-06-13 14:39:21,299 [DEBUG][       Thread-258222][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 14:39:21,299 [DEBUG][       Thread-258222][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 14:39:21,299 [DEBUG][       Thread-258222][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 14:39:21,299 [DEBUG][       Thread-258222][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 14:39:21,299 [DEBUG][       Thread-258222][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 14:39:21,299 [DEBUG][       Thread-258222][   transport.py][1871] : Compression: none
2025-06-13 14:39:21,299 [DEBUG][       Thread-258222][   transport.py][1871] : === End of kex handshake ===
2025-06-13 14:39:21,355 [DEBUG][       Thread-258222][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 14:39:21,356 [DEBUG][       Thread-258222][   transport.py][1871] : Switch to new keys ...
2025-06-13 14:39:21,356 [DEBUG][       Thread-258222][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 14:39:21,357 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 14:39:21,357 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 14:39:21,411 [DEBUG][       Thread-258222][   transport.py][1871] : userauth is OK
2025-06-13 14:39:21,411 [DEBUG][       Thread-258222][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 14:39:21,411 [DEBUG][       Thread-258222][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 14:39:21,411 [DEBUG][       Thread-258222][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 14:39:21,412 [DEBUG][       Thread-258222][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 14:39:21,430 [ INFO][       Thread-258222][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 14:39:21,430 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 14:39:21,431 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 14:39:22,417 [DEBUG][       Thread-258222][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 14:39:22,417 [DEBUG][       Thread-258222][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 14:39:22,468 [DEBUG][       Thread-258222][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 14:39:22,468 [DEBUG][       Thread-258222][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 14:39:22,477 [DEBUG][       Thread-258222][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 14:39:22,486 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 14:39:22,486 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 14:39:22,495 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 14:39:22,505 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 14:39:22,505 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 14:39:22,506 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 14:39:22,514 [DEBUG][       Thread-258222][   transport.py][1871] : EOF in transport thread
2025-06-13 14:39:22,878 [DEBUG][Thread-258224 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:39:31,913 [DEBUG][Thread-258225 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:39:32,516 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 14:39:32,516 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 14:39:32,516 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 14:39:32,517 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 14:39:33,010 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 14, 39, 14), 17.24, 30.37, 0.0, 17.61, 14.09, 0, 0, 0, 2, 0, 0),)
2025-06-13 14:39:33,010 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 14:39:14
2025-06-13 14:39:33,095 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 14:39:33,099 [DEBUG][       Thread-258226][   transport.py][1871] : starting thread (client mode): 0x842057e0
2025-06-13 14:39:33,099 [DEBUG][       Thread-258226][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 14:39:33,119 [DEBUG][       Thread-258226][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 14:39:33,119 [ INFO][       Thread-258226][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 14:39:33,123 [DEBUG][       Thread-258226][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 14:39:33,123 [DEBUG][       Thread-258226][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 14:39:33,123 [DEBUG][       Thread-258226][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 14:39:33,123 [DEBUG][       Thread-258226][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:39:33,123 [DEBUG][       Thread-258226][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:39:33,123 [DEBUG][       Thread-258226][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:39:33,123 [DEBUG][       Thread-258226][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:39:33,123 [DEBUG][       Thread-258226][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 14:39:33,123 [DEBUG][       Thread-258226][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 14:39:33,123 [DEBUG][       Thread-258226][   transport.py][1871] : client lang: <none>
2025-06-13 14:39:33,123 [DEBUG][       Thread-258226][   transport.py][1871] : server lang: <none>
2025-06-13 14:39:33,123 [DEBUG][       Thread-258226][   transport.py][1871] : kex follows: False
2025-06-13 14:39:33,123 [DEBUG][       Thread-258226][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 14:39:33,123 [DEBUG][       Thread-258226][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 14:39:33,123 [DEBUG][       Thread-258226][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 14:39:33,123 [DEBUG][       Thread-258226][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 14:39:33,123 [DEBUG][       Thread-258226][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 14:39:33,123 [DEBUG][       Thread-258226][   transport.py][1871] : Compression: none
2025-06-13 14:39:33,123 [DEBUG][       Thread-258226][   transport.py][1871] : === End of kex handshake ===
2025-06-13 14:39:33,138 [DEBUG][       Thread-258226][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 14:39:33,138 [DEBUG][       Thread-258226][   transport.py][1871] : Switch to new keys ...
2025-06-13 14:39:33,138 [DEBUG][       Thread-258226][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 14:39:33,139 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 14:39:33,139 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 14:39:33,139 [DEBUG][       Thread-258226][   transport.py][1871] : userauth is OK
2025-06-13 14:39:33,152 [ INFO][       Thread-258226][   transport.py][1871] : Authentication (password) successful!
2025-06-13 14:39:33,152 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 14:39:33,771 [DEBUG][       Thread-258226][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 14:39:33,771 [DEBUG][       Thread-258226][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 14:39:33,812 [DEBUG][       Thread-258226][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 14:39:33,812 [DEBUG][       Thread-258226][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 14:39:33,814 [DEBUG][       Thread-258226][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 14:39:33,826 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 14:39:33,827 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 14:39:33,828 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 14:39:33,829 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 14:39:33,832 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 14:39:33,833 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 14:39:33,833 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 14:39:33,833 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 14:39:33,833 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.527020 -999.00  +14.20  21.43     35   -0.80 1 1 1 1 1   887    0 14.88 7.97 ----- 20.9 21.4 44.4 25.4 17.7 -30.7 16.6 -31.4 17.3 -29.7 18.4 -28.6
2025-06-13 14:39:33,833 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 14:39:33,833 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 14:39:33,833 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.527020
2025-06-13 14:39:33,833 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 14:39:33,833 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 14:39:33,833 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 14:39:33,833 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 14:39:33,833 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 14:39:33,833 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T14:39:14', tmtdew=17.24, humidity=30.37, cloud=0.0, wind=17.61, temperature=14.09, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T12:38:54.528', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 14:39:33,834 [DEBUG][       Thread-258226][   transport.py][1871] : EOF in transport thread
2025-06-13 14:39:33,908 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 14:39:33,920 [DEBUG][       Thread-258229][   transport.py][1871] : starting thread (client mode): 0x86352b30
2025-06-13 14:39:33,920 [DEBUG][       Thread-258229][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 14:39:33,935 [DEBUG][       Thread-258229][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 14:39:33,935 [ INFO][       Thread-258229][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 14:39:33,942 [DEBUG][       Thread-258229][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 14:39:33,942 [DEBUG][       Thread-258229][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 14:39:33,942 [DEBUG][       Thread-258229][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 14:39:33,942 [DEBUG][       Thread-258229][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:39:33,942 [DEBUG][       Thread-258229][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:39:33,942 [DEBUG][       Thread-258229][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:39:33,943 [DEBUG][       Thread-258229][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:39:33,943 [DEBUG][       Thread-258229][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 14:39:33,943 [DEBUG][       Thread-258229][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 14:39:33,943 [DEBUG][       Thread-258229][   transport.py][1871] : client lang: <none>
2025-06-13 14:39:33,943 [DEBUG][       Thread-258229][   transport.py][1871] : server lang: <none>
2025-06-13 14:39:33,943 [DEBUG][       Thread-258229][   transport.py][1871] : kex follows: False
2025-06-13 14:39:33,943 [DEBUG][       Thread-258229][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 14:39:33,943 [DEBUG][       Thread-258229][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 14:39:33,943 [DEBUG][       Thread-258229][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 14:39:33,943 [DEBUG][       Thread-258229][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 14:39:33,943 [DEBUG][       Thread-258229][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 14:39:33,943 [DEBUG][       Thread-258229][   transport.py][1871] : Compression: none
2025-06-13 14:39:33,943 [DEBUG][       Thread-258229][   transport.py][1871] : === End of kex handshake ===
2025-06-13 14:39:33,997 [DEBUG][       Thread-258229][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 14:39:33,997 [DEBUG][       Thread-258229][   transport.py][1871] : Switch to new keys ...
2025-06-13 14:39:33,997 [DEBUG][       Thread-258229][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 14:39:33,998 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 14:39:33,998 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 14:39:34,054 [DEBUG][       Thread-258229][   transport.py][1871] : userauth is OK
2025-06-13 14:39:34,054 [DEBUG][       Thread-258229][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 14:39:34,054 [DEBUG][       Thread-258229][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 14:39:34,054 [DEBUG][       Thread-258229][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 14:39:34,054 [DEBUG][       Thread-258229][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 14:39:34,073 [ INFO][       Thread-258229][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 14:39:34,073 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 14:39:34,073 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 14:39:35,068 [DEBUG][       Thread-258229][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 14:39:35,068 [DEBUG][       Thread-258229][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 14:39:35,119 [DEBUG][       Thread-258229][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 14:39:35,119 [DEBUG][       Thread-258229][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 14:39:35,128 [DEBUG][       Thread-258229][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 14:39:35,136 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 14:39:35,136 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 14:39:35,144 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 14:39:35,152 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 14:39:35,152 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 14:39:35,152 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 14:39:35,160 [DEBUG][       Thread-258229][   transport.py][1871] : EOF in transport thread
2025-06-13 14:39:40,932 [DEBUG][Thread-258231 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:39:45,162 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 14:39:45,163 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 14:39:45,163 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 14:39:45,166 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 14:39:45,648 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 14, 39, 14), 17.24, 30.37, 0.0, 17.61, 14.09, 0, 0, 0, 2, 0, 0),)
2025-06-13 14:39:45,648 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 14:39:14
2025-06-13 14:39:45,729 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 14:39:45,734 [DEBUG][       Thread-258232][   transport.py][1871] : starting thread (client mode): 0x842071c0
2025-06-13 14:39:45,734 [DEBUG][       Thread-258232][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 14:39:45,755 [DEBUG][       Thread-258232][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 14:39:45,755 [ INFO][       Thread-258232][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 14:39:45,756 [DEBUG][       Thread-258232][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 14:39:45,756 [DEBUG][       Thread-258232][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 14:39:45,756 [DEBUG][       Thread-258232][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 14:39:45,756 [DEBUG][       Thread-258232][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:39:45,757 [DEBUG][       Thread-258232][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:39:45,757 [DEBUG][       Thread-258232][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:39:45,757 [DEBUG][       Thread-258232][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:39:45,757 [DEBUG][       Thread-258232][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 14:39:45,757 [DEBUG][       Thread-258232][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 14:39:45,757 [DEBUG][       Thread-258232][   transport.py][1871] : client lang: <none>
2025-06-13 14:39:45,757 [DEBUG][       Thread-258232][   transport.py][1871] : server lang: <none>
2025-06-13 14:39:45,757 [DEBUG][       Thread-258232][   transport.py][1871] : kex follows: False
2025-06-13 14:39:45,757 [DEBUG][       Thread-258232][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 14:39:45,757 [DEBUG][       Thread-258232][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 14:39:45,757 [DEBUG][       Thread-258232][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 14:39:45,757 [DEBUG][       Thread-258232][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 14:39:45,757 [DEBUG][       Thread-258232][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 14:39:45,757 [DEBUG][       Thread-258232][   transport.py][1871] : Compression: none
2025-06-13 14:39:45,757 [DEBUG][       Thread-258232][   transport.py][1871] : === End of kex handshake ===
2025-06-13 14:39:45,765 [DEBUG][       Thread-258232][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 14:39:45,765 [DEBUG][       Thread-258232][   transport.py][1871] : Switch to new keys ...
2025-06-13 14:39:45,765 [DEBUG][       Thread-258232][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 14:39:45,766 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 14:39:45,766 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 14:39:45,767 [DEBUG][       Thread-258232][   transport.py][1871] : userauth is OK
2025-06-13 14:39:45,791 [ INFO][       Thread-258232][   transport.py][1871] : Authentication (password) successful!
2025-06-13 14:39:45,792 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 14:39:46,364 [DEBUG][       Thread-258232][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 14:39:46,364 [DEBUG][       Thread-258232][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 14:39:46,405 [DEBUG][       Thread-258232][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 14:39:46,405 [DEBUG][       Thread-258232][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 14:39:46,407 [DEBUG][       Thread-258232][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 14:39:46,413 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 14:39:46,413 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 14:39:46,415 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 14:39:46,416 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 14:39:46,421 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 14:39:46,422 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 14:39:46,423 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 14:39:46,423 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 14:39:46,423 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.527367 -999.00  +14.00  22.64     35   -1.10 1 1 1 1 1   887    0 15.23 11.88 ----- 22.9 22.6 53.8 26.0 17.8 -31.0 16.7 -31.7 17.3 -29.9 18.4 -28.8
2025-06-13 14:39:46,423 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 14:39:46,424 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 14:39:46,424 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.527367
2025-06-13 14:39:46,424 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 14:39:46,425 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 14:39:46,425 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 14:39:46,425 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 14:39:46,425 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 14:39:46,425 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T14:39:14', tmtdew=17.24, humidity=30.37, cloud=0.0, wind=17.61, temperature=14.09, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T12:39:24.509', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 14:39:46,426 [DEBUG][       Thread-258232][   transport.py][1871] : EOF in transport thread
2025-06-13 14:39:46,506 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 14:39:46,518 [DEBUG][       Thread-258235][   transport.py][1871] : starting thread (client mode): 0x863cb2e0
2025-06-13 14:39:46,518 [DEBUG][       Thread-258235][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 14:39:46,533 [DEBUG][       Thread-258235][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 14:39:46,533 [ INFO][       Thread-258235][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 14:39:46,540 [DEBUG][       Thread-258235][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 14:39:46,540 [DEBUG][       Thread-258235][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 14:39:46,540 [DEBUG][       Thread-258235][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 14:39:46,540 [DEBUG][       Thread-258235][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:39:46,540 [DEBUG][       Thread-258235][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:39:46,540 [DEBUG][       Thread-258235][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:39:46,540 [DEBUG][       Thread-258235][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:39:46,541 [DEBUG][       Thread-258235][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 14:39:46,541 [DEBUG][       Thread-258235][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 14:39:46,541 [DEBUG][       Thread-258235][   transport.py][1871] : client lang: <none>
2025-06-13 14:39:46,541 [DEBUG][       Thread-258235][   transport.py][1871] : server lang: <none>
2025-06-13 14:39:46,541 [DEBUG][       Thread-258235][   transport.py][1871] : kex follows: False
2025-06-13 14:39:46,541 [DEBUG][       Thread-258235][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 14:39:46,541 [DEBUG][       Thread-258235][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 14:39:46,541 [DEBUG][       Thread-258235][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 14:39:46,541 [DEBUG][       Thread-258235][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 14:39:46,541 [DEBUG][       Thread-258235][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 14:39:46,541 [DEBUG][       Thread-258235][   transport.py][1871] : Compression: none
2025-06-13 14:39:46,541 [DEBUG][       Thread-258235][   transport.py][1871] : === End of kex handshake ===
2025-06-13 14:39:46,599 [DEBUG][       Thread-258235][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 14:39:46,600 [DEBUG][       Thread-258235][   transport.py][1871] : Switch to new keys ...
2025-06-13 14:39:46,600 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 14:39:46,601 [DEBUG][       Thread-258235][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 14:39:46,602 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 14:39:46,655 [DEBUG][       Thread-258235][   transport.py][1871] : userauth is OK
2025-06-13 14:39:46,655 [DEBUG][       Thread-258235][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 14:39:46,655 [DEBUG][       Thread-258235][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 14:39:46,656 [DEBUG][       Thread-258235][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 14:39:46,656 [DEBUG][       Thread-258235][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 14:39:46,681 [ INFO][       Thread-258235][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 14:39:46,682 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 14:39:46,682 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 14:39:47,696 [DEBUG][       Thread-258235][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 14:39:47,696 [DEBUG][       Thread-258235][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 14:39:47,743 [DEBUG][       Thread-258235][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 14:39:47,743 [DEBUG][       Thread-258235][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 14:39:47,751 [DEBUG][       Thread-258235][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 14:39:47,759 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 14:39:47,759 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 14:39:47,767 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 14:39:47,775 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 14:39:47,775 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 14:39:47,775 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 14:39:47,783 [DEBUG][       Thread-258235][   transport.py][1871] : EOF in transport thread
2025-06-13 14:39:49,954 [DEBUG][Thread-258237 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:39:53,836 [DEBUG][Thread-258238 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:39:54,915 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:39:54,917 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:39:57,779 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 14:39:57,779 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 14:39:57,779 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 14:39:57,782 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 14:39:58,257 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 14, 39, 46), 17.23, 30.36, 0.0, 17.06, 14.0, 0, 0, 0, 2, 0, 0),)
2025-06-13 14:39:58,257 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 14:39:46
2025-06-13 14:39:58,338 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 14:39:58,342 [DEBUG][       Thread-258239][   transport.py][1871] : starting thread (client mode): 0x84207190
2025-06-13 14:39:58,342 [DEBUG][       Thread-258239][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 14:39:58,363 [DEBUG][       Thread-258239][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 14:39:58,363 [ INFO][       Thread-258239][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 14:39:58,366 [DEBUG][       Thread-258239][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 14:39:58,366 [DEBUG][       Thread-258239][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 14:39:58,366 [DEBUG][       Thread-258239][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 14:39:58,366 [DEBUG][       Thread-258239][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:39:58,366 [DEBUG][       Thread-258239][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:39:58,366 [DEBUG][       Thread-258239][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:39:58,366 [DEBUG][       Thread-258239][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:39:58,366 [DEBUG][       Thread-258239][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 14:39:58,366 [DEBUG][       Thread-258239][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 14:39:58,366 [DEBUG][       Thread-258239][   transport.py][1871] : client lang: <none>
2025-06-13 14:39:58,366 [DEBUG][       Thread-258239][   transport.py][1871] : server lang: <none>
2025-06-13 14:39:58,366 [DEBUG][       Thread-258239][   transport.py][1871] : kex follows: False
2025-06-13 14:39:58,366 [DEBUG][       Thread-258239][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 14:39:58,366 [DEBUG][       Thread-258239][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 14:39:58,367 [DEBUG][       Thread-258239][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 14:39:58,367 [DEBUG][       Thread-258239][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 14:39:58,367 [DEBUG][       Thread-258239][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 14:39:58,367 [DEBUG][       Thread-258239][   transport.py][1871] : Compression: none
2025-06-13 14:39:58,367 [DEBUG][       Thread-258239][   transport.py][1871] : === End of kex handshake ===
2025-06-13 14:39:58,385 [DEBUG][       Thread-258239][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 14:39:58,385 [DEBUG][       Thread-258239][   transport.py][1871] : Switch to new keys ...
2025-06-13 14:39:58,386 [DEBUG][       Thread-258239][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 14:39:58,386 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 14:39:58,386 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 14:39:58,387 [DEBUG][       Thread-258239][   transport.py][1871] : userauth is OK
2025-06-13 14:39:58,401 [ INFO][       Thread-258239][   transport.py][1871] : Authentication (password) successful!
2025-06-13 14:39:58,402 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 14:39:58,975 [DEBUG][Thread-258241 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:39:59,074 [DEBUG][       Thread-258239][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 14:39:59,075 [DEBUG][       Thread-258239][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 14:39:59,117 [DEBUG][       Thread-258239][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 14:39:59,117 [DEBUG][       Thread-258239][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 14:39:59,121 [DEBUG][       Thread-258239][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 14:39:59,134 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 14:39:59,134 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 14:39:59,136 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 14:39:59,138 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 14:39:59,144 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 14:39:59,146 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 14:39:59,146 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 14:39:59,147 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 14:39:59,147 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.527367 -999.00  +14.00  22.64     35   -1.10 1 1 1 1 1   887    0 15.23 11.88 ----- 22.9 22.6 53.8 26.0 17.8 -31.0 16.7 -31.7 17.3 -29.9 18.4 -28.8
2025-06-13 14:39:59,147 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 14:39:59,147 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 14:39:59,147 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.527367
2025-06-13 14:39:59,148 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 14:39:59,148 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 14:39:59,148 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 14:39:59,148 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 14:39:59,148 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 14:39:59,149 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T14:39:46', tmtdew=17.23, humidity=30.36, cloud=0.0, wind=17.06, temperature=14.0, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T12:39:24.509', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 14:39:59,149 [DEBUG][       Thread-258239][   transport.py][1871] : EOF in transport thread
2025-06-13 14:39:59,233 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 14:39:59,245 [DEBUG][       Thread-258243][   transport.py][1871] : starting thread (client mode): 0x86893fd0
2025-06-13 14:39:59,245 [DEBUG][       Thread-258243][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 14:39:59,261 [DEBUG][       Thread-258243][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 14:39:59,262 [ INFO][       Thread-258243][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 14:39:59,269 [DEBUG][       Thread-258243][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 14:39:59,269 [DEBUG][       Thread-258243][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 14:39:59,269 [DEBUG][       Thread-258243][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 14:39:59,269 [DEBUG][       Thread-258243][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:39:59,269 [DEBUG][       Thread-258243][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:39:59,269 [DEBUG][       Thread-258243][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:39:59,269 [DEBUG][       Thread-258243][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:39:59,269 [DEBUG][       Thread-258243][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 14:39:59,269 [DEBUG][       Thread-258243][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 14:39:59,269 [DEBUG][       Thread-258243][   transport.py][1871] : client lang: <none>
2025-06-13 14:39:59,269 [DEBUG][       Thread-258243][   transport.py][1871] : server lang: <none>
2025-06-13 14:39:59,270 [DEBUG][       Thread-258243][   transport.py][1871] : kex follows: False
2025-06-13 14:39:59,270 [DEBUG][       Thread-258243][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 14:39:59,270 [DEBUG][       Thread-258243][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 14:39:59,270 [DEBUG][       Thread-258243][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 14:39:59,270 [DEBUG][       Thread-258243][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 14:39:59,270 [DEBUG][       Thread-258243][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 14:39:59,270 [DEBUG][       Thread-258243][   transport.py][1871] : Compression: none
2025-06-13 14:39:59,270 [DEBUG][       Thread-258243][   transport.py][1871] : === End of kex handshake ===
2025-06-13 14:39:59,327 [DEBUG][       Thread-258243][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 14:39:59,327 [DEBUG][       Thread-258243][   transport.py][1871] : Switch to new keys ...
2025-06-13 14:39:59,328 [DEBUG][       Thread-258243][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 14:39:59,328 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 14:39:59,329 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 14:39:59,383 [DEBUG][       Thread-258243][   transport.py][1871] : userauth is OK
2025-06-13 14:39:59,383 [DEBUG][       Thread-258243][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 14:39:59,384 [DEBUG][       Thread-258243][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 14:39:59,384 [DEBUG][       Thread-258243][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 14:39:59,384 [DEBUG][       Thread-258243][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 14:39:59,398 [ INFO][       Thread-258243][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 14:39:59,398 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 14:39:59,398 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 14:40:00,409 [DEBUG][       Thread-258243][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 14:40:00,409 [DEBUG][       Thread-258243][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 14:40:00,463 [DEBUG][       Thread-258243][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 14:40:00,463 [DEBUG][       Thread-258243][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 14:40:00,474 [DEBUG][       Thread-258243][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 14:40:00,487 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 14:40:00,487 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 14:40:00,496 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 14:40:00,505 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 14:40:00,505 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 14:40:00,506 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 14:40:00,513 [DEBUG][       Thread-258243][   transport.py][1871] : EOF in transport thread
2025-06-13 14:40:02,560 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:40:02,561 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:40:07,998 [DEBUG][Thread-258245 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:40:10,516 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 14:40:10,516 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 14:40:10,516 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 14:40:10,516 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 14:40:11,013 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 14, 39, 46), 17.23, 30.36, 0.0, 17.06, 14.0, 0, 0, 0, 2, 0, 0),)
2025-06-13 14:40:11,013 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 14:39:46
2025-06-13 14:40:11,096 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 14:40:11,102 [DEBUG][       Thread-258246][   transport.py][1871] : starting thread (client mode): 0x86351ea0
2025-06-13 14:40:11,102 [DEBUG][       Thread-258246][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 14:40:11,123 [DEBUG][       Thread-258246][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 14:40:11,123 [ INFO][       Thread-258246][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 14:40:11,127 [DEBUG][       Thread-258246][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 14:40:11,127 [DEBUG][       Thread-258246][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 14:40:11,127 [DEBUG][       Thread-258246][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 14:40:11,127 [DEBUG][       Thread-258246][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:40:11,127 [DEBUG][       Thread-258246][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:40:11,127 [DEBUG][       Thread-258246][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:40:11,127 [DEBUG][       Thread-258246][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:40:11,127 [DEBUG][       Thread-258246][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 14:40:11,127 [DEBUG][       Thread-258246][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 14:40:11,127 [DEBUG][       Thread-258246][   transport.py][1871] : client lang: <none>
2025-06-13 14:40:11,127 [DEBUG][       Thread-258246][   transport.py][1871] : server lang: <none>
2025-06-13 14:40:11,127 [DEBUG][       Thread-258246][   transport.py][1871] : kex follows: False
2025-06-13 14:40:11,127 [DEBUG][       Thread-258246][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 14:40:11,127 [DEBUG][       Thread-258246][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 14:40:11,127 [DEBUG][       Thread-258246][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 14:40:11,127 [DEBUG][       Thread-258246][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 14:40:11,127 [DEBUG][       Thread-258246][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 14:40:11,127 [DEBUG][       Thread-258246][   transport.py][1871] : Compression: none
2025-06-13 14:40:11,127 [DEBUG][       Thread-258246][   transport.py][1871] : === End of kex handshake ===
2025-06-13 14:40:11,141 [DEBUG][       Thread-258246][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 14:40:11,141 [DEBUG][       Thread-258246][   transport.py][1871] : Switch to new keys ...
2025-06-13 14:40:11,141 [DEBUG][       Thread-258246][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 14:40:11,141 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 14:40:11,141 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 14:40:11,142 [DEBUG][       Thread-258246][   transport.py][1871] : userauth is OK
2025-06-13 14:40:11,167 [ INFO][       Thread-258246][   transport.py][1871] : Authentication (password) successful!
2025-06-13 14:40:11,167 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 14:40:15,202 [DEBUG][       Thread-258246][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 14:40:15,203 [DEBUG][       Thread-258246][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 14:40:15,245 [DEBUG][       Thread-258246][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 14:40:15,245 [DEBUG][       Thread-258246][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 14:40:15,248 [DEBUG][       Thread-258246][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 14:40:15,261 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 14:40:15,262 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 14:40:15,264 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 14:40:15,266 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 14:40:15,271 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 14:40:15,273 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 14:40:15,273 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 14:40:15,274 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 14:40:15,274 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.527367 -999.00  +14.00  22.64     35   -1.10 1 1 1 1 1   887    0 15.23 11.88 ----- 22.9 22.6 53.8 26.0 17.8 -31.0 16.7 -31.7 17.3 -29.9 18.4 -28.8
2025-06-13 14:40:15,274 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 14:40:15,274 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 14:40:15,274 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.527367
2025-06-13 14:40:15,275 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 14:40:15,275 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 14:40:15,275 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 14:40:15,276 [DEBUG][       Thread-258246][   transport.py][1871] : EOF in transport thread
2025-06-13 14:40:15,276 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 14:40:15,276 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 14:40:15,276 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T14:39:46', tmtdew=17.23, humidity=30.36, cloud=0.0, wind=17.06, temperature=14.0, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T12:39:24.509', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 14:40:15,360 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 14:40:15,372 [DEBUG][       Thread-258249][   transport.py][1871] : starting thread (client mode): 0x863c8250
2025-06-13 14:40:15,372 [DEBUG][       Thread-258249][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 14:40:15,387 [DEBUG][       Thread-258249][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 14:40:15,387 [ INFO][       Thread-258249][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 14:40:15,394 [DEBUG][       Thread-258249][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 14:40:15,395 [DEBUG][       Thread-258249][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 14:40:15,395 [DEBUG][       Thread-258249][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 14:40:15,395 [DEBUG][       Thread-258249][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:40:15,395 [DEBUG][       Thread-258249][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:40:15,395 [DEBUG][       Thread-258249][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:40:15,395 [DEBUG][       Thread-258249][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:40:15,395 [DEBUG][       Thread-258249][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 14:40:15,395 [DEBUG][       Thread-258249][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 14:40:15,395 [DEBUG][       Thread-258249][   transport.py][1871] : client lang: <none>
2025-06-13 14:40:15,395 [DEBUG][       Thread-258249][   transport.py][1871] : server lang: <none>
2025-06-13 14:40:15,395 [DEBUG][       Thread-258249][   transport.py][1871] : kex follows: False
2025-06-13 14:40:15,395 [DEBUG][       Thread-258249][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 14:40:15,395 [DEBUG][       Thread-258249][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 14:40:15,395 [DEBUG][       Thread-258249][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 14:40:15,395 [DEBUG][       Thread-258249][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 14:40:15,395 [DEBUG][       Thread-258249][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 14:40:15,396 [DEBUG][       Thread-258249][   transport.py][1871] : Compression: none
2025-06-13 14:40:15,396 [DEBUG][       Thread-258249][   transport.py][1871] : === End of kex handshake ===
2025-06-13 14:40:15,451 [DEBUG][       Thread-258249][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 14:40:15,451 [DEBUG][       Thread-258249][   transport.py][1871] : Switch to new keys ...
2025-06-13 14:40:15,452 [DEBUG][       Thread-258249][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 14:40:15,452 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 14:40:15,453 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 14:40:15,507 [DEBUG][       Thread-258249][   transport.py][1871] : userauth is OK
2025-06-13 14:40:15,507 [DEBUG][       Thread-258249][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 14:40:15,508 [DEBUG][       Thread-258249][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 14:40:15,508 [DEBUG][       Thread-258249][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 14:40:15,508 [DEBUG][       Thread-258249][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 14:40:15,526 [ INFO][       Thread-258249][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 14:40:15,527 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 14:40:15,527 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 14:40:16,518 [DEBUG][       Thread-258249][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 14:40:16,518 [DEBUG][       Thread-258249][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 14:40:16,568 [DEBUG][       Thread-258249][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 14:40:16,568 [DEBUG][       Thread-258249][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 14:40:16,577 [DEBUG][       Thread-258249][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 14:40:16,586 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 14:40:16,586 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 14:40:16,600 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 14:40:16,612 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 14:40:16,613 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 14:40:16,613 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 14:40:16,621 [DEBUG][       Thread-258249][   transport.py][1871] : EOF in transport thread
2025-06-13 14:40:17,039 [DEBUG][Thread-258251 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:40:18,734 [DEBUG][Thread-258252 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:40:26,058 [DEBUG][Thread-258253 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:40:26,624 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 14:40:26,624 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 14:40:26,624 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 14:40:26,627 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 14:40:27,104 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 14, 40, 18), 17.19, 30.44, 0.0, 16.38, 13.94, 0, 0, 0, 2, 0, 0),)
2025-06-13 14:40:27,104 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 14:40:18
2025-06-13 14:40:27,184 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 14:40:27,187 [DEBUG][       Thread-258254][   transport.py][1871] : starting thread (client mode): 0x863923e0
2025-06-13 14:40:27,188 [DEBUG][       Thread-258254][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 14:40:27,210 [DEBUG][       Thread-258254][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 14:40:27,210 [ INFO][       Thread-258254][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 14:40:27,214 [DEBUG][       Thread-258254][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 14:40:27,214 [DEBUG][       Thread-258254][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 14:40:27,214 [DEBUG][       Thread-258254][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 14:40:27,214 [DEBUG][       Thread-258254][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:40:27,214 [DEBUG][       Thread-258254][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:40:27,214 [DEBUG][       Thread-258254][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:40:27,214 [DEBUG][       Thread-258254][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:40:27,214 [DEBUG][       Thread-258254][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 14:40:27,214 [DEBUG][       Thread-258254][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 14:40:27,214 [DEBUG][       Thread-258254][   transport.py][1871] : client lang: <none>
2025-06-13 14:40:27,214 [DEBUG][       Thread-258254][   transport.py][1871] : server lang: <none>
2025-06-13 14:40:27,214 [DEBUG][       Thread-258254][   transport.py][1871] : kex follows: False
2025-06-13 14:40:27,214 [DEBUG][       Thread-258254][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 14:40:27,214 [DEBUG][       Thread-258254][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 14:40:27,214 [DEBUG][       Thread-258254][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 14:40:27,214 [DEBUG][       Thread-258254][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 14:40:27,214 [DEBUG][       Thread-258254][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 14:40:27,215 [DEBUG][       Thread-258254][   transport.py][1871] : Compression: none
2025-06-13 14:40:27,215 [DEBUG][       Thread-258254][   transport.py][1871] : === End of kex handshake ===
2025-06-13 14:40:27,231 [DEBUG][       Thread-258254][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 14:40:27,232 [DEBUG][       Thread-258254][   transport.py][1871] : Switch to new keys ...
2025-06-13 14:40:27,232 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 14:40:27,232 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 14:40:27,233 [DEBUG][       Thread-258254][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 14:40:27,233 [DEBUG][       Thread-258254][   transport.py][1871] : userauth is OK
2025-06-13 14:40:27,258 [ INFO][       Thread-258254][   transport.py][1871] : Authentication (password) successful!
2025-06-13 14:40:27,258 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 14:40:27,905 [DEBUG][       Thread-258254][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 14:40:27,905 [DEBUG][       Thread-258254][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 14:40:27,949 [DEBUG][       Thread-258254][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 14:40:27,949 [DEBUG][       Thread-258254][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 14:40:27,953 [DEBUG][       Thread-258254][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 14:40:27,965 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 14:40:27,966 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 14:40:27,968 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 14:40:27,970 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 14:40:27,976 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 14:40:27,977 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 14:40:27,978 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 14:40:27,978 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 14:40:27,979 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.527714 -999.00  +13.80  19.00     35   -1.10 1 1 1 1 1   887    0 15.01 17.05 ----- 19.6 19.0 45.4 27.8 17.7 -31.3 16.6 -32.2 17.1 -31.3 18.4 -28.7
2025-06-13 14:40:27,979 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 14:40:27,979 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 14:40:27,979 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.527714
2025-06-13 14:40:27,979 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 14:40:27,980 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 14:40:27,980 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 14:40:27,980 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 14:40:27,980 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 14:40:27,980 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T14:40:18', tmtdew=17.19, humidity=30.44, cloud=0.0, wind=16.38, temperature=13.94, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T12:39:54.490', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 14:40:27,981 [DEBUG][       Thread-258254][   transport.py][1871] : EOF in transport thread
2025-06-13 14:40:28,063 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 14:40:28,073 [DEBUG][       Thread-258257][   transport.py][1871] : starting thread (client mode): 0x86392260
2025-06-13 14:40:28,073 [DEBUG][       Thread-258257][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 14:40:28,088 [DEBUG][       Thread-258257][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 14:40:28,088 [ INFO][       Thread-258257][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 14:40:28,096 [DEBUG][       Thread-258257][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 14:40:28,096 [DEBUG][       Thread-258257][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 14:40:28,096 [DEBUG][       Thread-258257][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 14:40:28,096 [DEBUG][       Thread-258257][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:40:28,096 [DEBUG][       Thread-258257][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:40:28,096 [DEBUG][       Thread-258257][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:40:28,096 [DEBUG][       Thread-258257][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:40:28,096 [DEBUG][       Thread-258257][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 14:40:28,096 [DEBUG][       Thread-258257][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 14:40:28,096 [DEBUG][       Thread-258257][   transport.py][1871] : client lang: <none>
2025-06-13 14:40:28,096 [DEBUG][       Thread-258257][   transport.py][1871] : server lang: <none>
2025-06-13 14:40:28,096 [DEBUG][       Thread-258257][   transport.py][1871] : kex follows: False
2025-06-13 14:40:28,096 [DEBUG][       Thread-258257][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 14:40:28,096 [DEBUG][       Thread-258257][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 14:40:28,096 [DEBUG][       Thread-258257][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 14:40:28,096 [DEBUG][       Thread-258257][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 14:40:28,096 [DEBUG][       Thread-258257][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 14:40:28,096 [DEBUG][       Thread-258257][   transport.py][1871] : Compression: none
2025-06-13 14:40:28,096 [DEBUG][       Thread-258257][   transport.py][1871] : === End of kex handshake ===
2025-06-13 14:40:28,165 [DEBUG][       Thread-258257][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 14:40:28,165 [DEBUG][       Thread-258257][   transport.py][1871] : Switch to new keys ...
2025-06-13 14:40:28,166 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 14:40:28,166 [DEBUG][       Thread-258257][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 14:40:28,167 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 14:40:28,231 [DEBUG][       Thread-258257][   transport.py][1871] : userauth is OK
2025-06-13 14:40:28,232 [DEBUG][       Thread-258257][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 14:40:28,232 [DEBUG][       Thread-258257][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 14:40:28,232 [DEBUG][       Thread-258257][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 14:40:28,232 [DEBUG][       Thread-258257][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 14:40:28,251 [ INFO][       Thread-258257][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 14:40:28,252 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 14:40:28,252 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 14:40:29,274 [DEBUG][       Thread-258257][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 14:40:29,274 [DEBUG][       Thread-258257][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 14:40:29,329 [DEBUG][       Thread-258257][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 14:40:29,330 [DEBUG][       Thread-258257][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 14:40:29,339 [DEBUG][       Thread-258257][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 14:40:29,347 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 14:40:29,347 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 14:40:29,356 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 14:40:29,365 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 14:40:29,365 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 14:40:29,365 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 14:40:29,373 [DEBUG][       Thread-258257][   transport.py][1871] : EOF in transport thread
2025-06-13 14:40:35,080 [DEBUG][Thread-258259 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:40:39,376 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 14:40:39,376 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 14:40:39,376 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 14:40:39,379 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 14:40:39,837 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 14, 40, 18), 17.19, 30.44, 0.0, 16.38, 13.94, 0, 0, 0, 2, 0, 0),)
2025-06-13 14:40:39,837 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 14:40:18
2025-06-13 14:40:39,918 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 14:40:39,924 [DEBUG][       Thread-258260][   transport.py][1871] : starting thread (client mode): 0x86391150
2025-06-13 14:40:39,924 [DEBUG][       Thread-258260][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 14:40:39,944 [DEBUG][       Thread-258260][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 14:40:39,945 [ INFO][       Thread-258260][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 14:40:39,948 [DEBUG][       Thread-258260][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 14:40:39,948 [DEBUG][       Thread-258260][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 14:40:39,948 [DEBUG][       Thread-258260][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 14:40:39,948 [DEBUG][       Thread-258260][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:40:39,948 [DEBUG][       Thread-258260][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:40:39,948 [DEBUG][       Thread-258260][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:40:39,948 [DEBUG][       Thread-258260][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:40:39,948 [DEBUG][       Thread-258260][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 14:40:39,948 [DEBUG][       Thread-258260][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 14:40:39,948 [DEBUG][       Thread-258260][   transport.py][1871] : client lang: <none>
2025-06-13 14:40:39,948 [DEBUG][       Thread-258260][   transport.py][1871] : server lang: <none>
2025-06-13 14:40:39,948 [DEBUG][       Thread-258260][   transport.py][1871] : kex follows: False
2025-06-13 14:40:39,948 [DEBUG][       Thread-258260][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 14:40:39,948 [DEBUG][       Thread-258260][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 14:40:39,948 [DEBUG][       Thread-258260][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 14:40:39,948 [DEBUG][       Thread-258260][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 14:40:39,948 [DEBUG][       Thread-258260][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 14:40:39,949 [DEBUG][       Thread-258260][   transport.py][1871] : Compression: none
2025-06-13 14:40:39,949 [DEBUG][       Thread-258260][   transport.py][1871] : === End of kex handshake ===
2025-06-13 14:40:39,966 [DEBUG][       Thread-258260][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 14:40:39,966 [DEBUG][       Thread-258260][   transport.py][1871] : Switch to new keys ...
2025-06-13 14:40:39,967 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 14:40:39,967 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 14:40:39,968 [DEBUG][       Thread-258260][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 14:40:39,968 [DEBUG][       Thread-258260][   transport.py][1871] : userauth is OK
2025-06-13 14:40:39,982 [ INFO][       Thread-258260][   transport.py][1871] : Authentication (password) successful!
2025-06-13 14:40:39,982 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 14:40:40,597 [DEBUG][       Thread-258260][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 14:40:40,597 [DEBUG][       Thread-258260][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 14:40:40,641 [DEBUG][       Thread-258260][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 14:40:40,641 [DEBUG][       Thread-258260][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 14:40:40,645 [DEBUG][       Thread-258260][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 14:40:40,657 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 14:40:40,658 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 14:40:40,659 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 14:40:40,661 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 14:40:40,667 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 14:40:40,669 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 14:40:40,669 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 14:40:40,670 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 14:40:40,670 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.527714 -999.00  +13.80  19.00     35   -1.10 1 1 1 1 1   887    0 15.01 17.05 ----- 19.6 19.0 45.4 27.8 17.7 -31.3 16.6 -32.2 17.1 -31.3 18.4 -28.7
2025-06-13 14:40:40,670 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 14:40:40,670 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 14:40:40,670 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.527714
2025-06-13 14:40:40,671 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 14:40:40,671 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 14:40:40,671 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 14:40:40,671 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 14:40:40,671 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 14:40:40,671 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T14:40:18', tmtdew=17.19, humidity=30.44, cloud=0.0, wind=16.38, temperature=13.94, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T12:39:54.490', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 14:40:40,672 [DEBUG][       Thread-258260][   transport.py][1871] : EOF in transport thread
2025-06-13 14:40:40,756 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 14:40:40,767 [DEBUG][       Thread-258263][   transport.py][1871] : starting thread (client mode): 0x867fe8c0
2025-06-13 14:40:40,767 [DEBUG][       Thread-258263][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 14:40:40,782 [DEBUG][       Thread-258263][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 14:40:40,783 [ INFO][       Thread-258263][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 14:40:40,790 [DEBUG][       Thread-258263][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 14:40:40,790 [DEBUG][       Thread-258263][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 14:40:40,790 [DEBUG][       Thread-258263][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 14:40:40,790 [DEBUG][       Thread-258263][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:40:40,791 [DEBUG][       Thread-258263][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:40:40,791 [DEBUG][       Thread-258263][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:40:40,791 [DEBUG][       Thread-258263][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:40:40,791 [DEBUG][       Thread-258263][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 14:40:40,791 [DEBUG][       Thread-258263][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 14:40:40,791 [DEBUG][       Thread-258263][   transport.py][1871] : client lang: <none>
2025-06-13 14:40:40,791 [DEBUG][       Thread-258263][   transport.py][1871] : server lang: <none>
2025-06-13 14:40:40,791 [DEBUG][       Thread-258263][   transport.py][1871] : kex follows: False
2025-06-13 14:40:40,791 [DEBUG][       Thread-258263][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 14:40:40,791 [DEBUG][       Thread-258263][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 14:40:40,791 [DEBUG][       Thread-258263][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 14:40:40,791 [DEBUG][       Thread-258263][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 14:40:40,791 [DEBUG][       Thread-258263][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 14:40:40,791 [DEBUG][       Thread-258263][   transport.py][1871] : Compression: none
2025-06-13 14:40:40,791 [DEBUG][       Thread-258263][   transport.py][1871] : === End of kex handshake ===
2025-06-13 14:40:40,848 [DEBUG][       Thread-258263][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 14:40:40,849 [DEBUG][       Thread-258263][   transport.py][1871] : Switch to new keys ...
2025-06-13 14:40:40,849 [DEBUG][       Thread-258263][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 14:40:40,850 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 14:40:40,850 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 14:40:40,910 [DEBUG][       Thread-258263][   transport.py][1871] : userauth is OK
2025-06-13 14:40:40,911 [DEBUG][       Thread-258263][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 14:40:40,911 [DEBUG][       Thread-258263][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 14:40:40,911 [DEBUG][       Thread-258263][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 14:40:40,911 [DEBUG][       Thread-258263][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 14:40:40,930 [ INFO][       Thread-258263][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 14:40:40,931 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 14:40:40,931 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 14:40:41,951 [DEBUG][       Thread-258263][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 14:40:41,951 [DEBUG][       Thread-258263][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 14:40:42,000 [DEBUG][       Thread-258263][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 14:40:42,000 [DEBUG][       Thread-258263][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 14:40:42,010 [DEBUG][       Thread-258263][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 14:40:42,019 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 14:40:42,019 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 14:40:42,028 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 14:40:42,038 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 14:40:42,038 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 14:40:42,038 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 14:40:42,046 [DEBUG][       Thread-258263][   transport.py][1871] : EOF in transport thread
2025-06-13 14:40:44,125 [DEBUG][Thread-258265 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:40:52,048 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 14:40:52,048 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 14:40:52,048 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 14:40:52,048 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 14:40:52,535 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 14, 40, 49), 17.15, 30.51, 0.0, 16.94, 13.95, 0, 0, 0, 2, 0, 0),)
2025-06-13 14:40:52,535 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 14:40:49
2025-06-13 14:40:52,615 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 14:40:52,619 [DEBUG][       Thread-258266][   transport.py][1871] : starting thread (client mode): 0x86352b30
2025-06-13 14:40:52,619 [DEBUG][       Thread-258266][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 14:40:52,633 [DEBUG][       Thread-258266][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 14:40:52,634 [ INFO][       Thread-258266][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 14:40:52,635 [DEBUG][       Thread-258266][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 14:40:52,635 [DEBUG][       Thread-258266][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 14:40:52,635 [DEBUG][       Thread-258266][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 14:40:52,635 [DEBUG][       Thread-258266][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:40:52,635 [DEBUG][       Thread-258266][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:40:52,635 [DEBUG][       Thread-258266][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:40:52,635 [DEBUG][       Thread-258266][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:40:52,635 [DEBUG][       Thread-258266][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 14:40:52,635 [DEBUG][       Thread-258266][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 14:40:52,635 [DEBUG][       Thread-258266][   transport.py][1871] : client lang: <none>
2025-06-13 14:40:52,635 [DEBUG][       Thread-258266][   transport.py][1871] : server lang: <none>
2025-06-13 14:40:52,635 [DEBUG][       Thread-258266][   transport.py][1871] : kex follows: False
2025-06-13 14:40:52,635 [DEBUG][       Thread-258266][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 14:40:52,635 [DEBUG][       Thread-258266][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 14:40:52,635 [DEBUG][       Thread-258266][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 14:40:52,635 [DEBUG][       Thread-258266][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 14:40:52,635 [DEBUG][       Thread-258266][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 14:40:52,635 [DEBUG][       Thread-258266][   transport.py][1871] : Compression: none
2025-06-13 14:40:52,635 [DEBUG][       Thread-258266][   transport.py][1871] : === End of kex handshake ===
2025-06-13 14:40:52,643 [DEBUG][       Thread-258266][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 14:40:52,643 [DEBUG][       Thread-258266][   transport.py][1871] : Switch to new keys ...
2025-06-13 14:40:52,643 [DEBUG][       Thread-258266][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 14:40:52,644 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 14:40:52,644 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 14:40:52,644 [DEBUG][       Thread-258266][   transport.py][1871] : userauth is OK
2025-06-13 14:40:52,658 [ INFO][       Thread-258266][   transport.py][1871] : Authentication (password) successful!
2025-06-13 14:40:52,658 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 14:40:53,144 [DEBUG][Thread-258268 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:40:53,221 [DEBUG][       Thread-258266][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 14:40:53,221 [DEBUG][       Thread-258266][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 14:40:53,265 [DEBUG][       Thread-258266][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 14:40:53,265 [DEBUG][       Thread-258266][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 14:40:53,268 [DEBUG][       Thread-258266][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 14:40:53,279 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 14:40:53,280 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 14:40:53,282 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 14:40:53,284 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 14:40:53,289 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 14:40:53,291 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 14:40:53,291 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 14:40:53,292 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 14:40:53,292 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.528061 -999.00  +13.80  22.49     35   -1.10 1 1 1 1 1   887    0 15.24 18.65 ----- 23.9 22.5 53.2 25.1 17.7 -30.8 16.7 -31.9 17.2 -30.8 18.5 -28.9
2025-06-13 14:40:53,292 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 14:40:53,292 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 14:40:53,292 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.528061
2025-06-13 14:40:53,292 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 14:40:53,293 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 14:40:53,293 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 14:40:53,293 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 14:40:53,293 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 14:40:53,293 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T14:40:49', tmtdew=17.15, humidity=30.51, cloud=0.0, wind=16.94, temperature=13.95, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T12:40:24.470', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 14:40:53,294 [DEBUG][       Thread-258266][   transport.py][1871] : EOF in transport thread
2025-06-13 14:40:53,377 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 14:40:53,387 [DEBUG][       Thread-258270][   transport.py][1871] : starting thread (client mode): 0x84206770
2025-06-13 14:40:53,387 [DEBUG][       Thread-258270][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 14:40:53,401 [DEBUG][       Thread-258270][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 14:40:53,401 [ INFO][       Thread-258270][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 14:40:53,409 [DEBUG][       Thread-258270][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 14:40:53,409 [DEBUG][       Thread-258270][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 14:40:53,409 [DEBUG][       Thread-258270][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 14:40:53,409 [DEBUG][       Thread-258270][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:40:53,409 [DEBUG][       Thread-258270][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:40:53,409 [DEBUG][       Thread-258270][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:40:53,409 [DEBUG][       Thread-258270][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:40:53,409 [DEBUG][       Thread-258270][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 14:40:53,409 [DEBUG][       Thread-258270][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 14:40:53,409 [DEBUG][       Thread-258270][   transport.py][1871] : client lang: <none>
2025-06-13 14:40:53,409 [DEBUG][       Thread-258270][   transport.py][1871] : server lang: <none>
2025-06-13 14:40:53,409 [DEBUG][       Thread-258270][   transport.py][1871] : kex follows: False
2025-06-13 14:40:53,409 [DEBUG][       Thread-258270][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 14:40:53,410 [DEBUG][       Thread-258270][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 14:40:53,410 [DEBUG][       Thread-258270][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 14:40:53,410 [DEBUG][       Thread-258270][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 14:40:53,410 [DEBUG][       Thread-258270][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 14:40:53,410 [DEBUG][       Thread-258270][   transport.py][1871] : Compression: none
2025-06-13 14:40:53,410 [DEBUG][       Thread-258270][   transport.py][1871] : === End of kex handshake ===
2025-06-13 14:40:53,468 [DEBUG][       Thread-258270][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 14:40:53,469 [DEBUG][       Thread-258270][   transport.py][1871] : Switch to new keys ...
2025-06-13 14:40:53,469 [DEBUG][       Thread-258270][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 14:40:53,469 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 14:40:53,470 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 14:40:53,527 [DEBUG][       Thread-258270][   transport.py][1871] : userauth is OK
2025-06-13 14:40:53,527 [DEBUG][       Thread-258270][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 14:40:53,527 [DEBUG][       Thread-258270][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 14:40:53,527 [DEBUG][       Thread-258270][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 14:40:53,528 [DEBUG][       Thread-258270][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 14:40:53,547 [ INFO][       Thread-258270][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 14:40:53,547 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 14:40:53,548 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 14:40:54,550 [DEBUG][       Thread-258270][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 14:40:54,550 [DEBUG][       Thread-258270][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 14:40:54,612 [DEBUG][       Thread-258270][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 14:40:54,613 [DEBUG][       Thread-258270][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 14:40:54,622 [DEBUG][       Thread-258270][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 14:40:54,631 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 14:40:54,632 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 14:40:54,641 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 14:40:54,650 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 14:40:54,650 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 14:40:54,651 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 14:40:54,659 [DEBUG][       Thread-258270][   transport.py][1871] : EOF in transport thread
2025-06-13 14:40:54,998 [DEBUG][Thread-258272 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:40:56,077 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:40:56,078 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:41:02,165 [DEBUG][Thread-258273 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:41:02,708 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:41:02,709 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:41:04,652 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 14:41:04,652 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 14:41:04,652 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 14:41:04,655 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 14:41:05,111 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 14, 40, 49), 17.15, 30.51, 0.0, 16.94, 13.95, 0, 0, 0, 2, 0, 0),)
2025-06-13 14:41:05,111 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 14:40:49
2025-06-13 14:41:05,192 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 14:41:05,197 [DEBUG][       Thread-258274][   transport.py][1871] : starting thread (client mode): 0x84207760
2025-06-13 14:41:05,197 [DEBUG][       Thread-258274][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 14:41:05,217 [DEBUG][       Thread-258274][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 14:41:05,218 [ INFO][       Thread-258274][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 14:41:05,221 [DEBUG][       Thread-258274][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 14:41:05,221 [DEBUG][       Thread-258274][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 14:41:05,221 [DEBUG][       Thread-258274][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 14:41:05,221 [DEBUG][       Thread-258274][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:41:05,221 [DEBUG][       Thread-258274][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:41:05,221 [DEBUG][       Thread-258274][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:41:05,221 [DEBUG][       Thread-258274][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:41:05,221 [DEBUG][       Thread-258274][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 14:41:05,221 [DEBUG][       Thread-258274][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 14:41:05,221 [DEBUG][       Thread-258274][   transport.py][1871] : client lang: <none>
2025-06-13 14:41:05,221 [DEBUG][       Thread-258274][   transport.py][1871] : server lang: <none>
2025-06-13 14:41:05,221 [DEBUG][       Thread-258274][   transport.py][1871] : kex follows: False
2025-06-13 14:41:05,221 [DEBUG][       Thread-258274][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 14:41:05,221 [DEBUG][       Thread-258274][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 14:41:05,221 [DEBUG][       Thread-258274][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 14:41:05,221 [DEBUG][       Thread-258274][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 14:41:05,222 [DEBUG][       Thread-258274][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 14:41:05,222 [DEBUG][       Thread-258274][   transport.py][1871] : Compression: none
2025-06-13 14:41:05,222 [DEBUG][       Thread-258274][   transport.py][1871] : === End of kex handshake ===
2025-06-13 14:41:05,239 [DEBUG][       Thread-258274][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 14:41:05,239 [DEBUG][       Thread-258274][   transport.py][1871] : Switch to new keys ...
2025-06-13 14:41:05,240 [DEBUG][       Thread-258274][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 14:41:05,240 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 14:41:05,240 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 14:41:05,242 [DEBUG][       Thread-258274][   transport.py][1871] : userauth is OK
2025-06-13 14:41:05,255 [ INFO][       Thread-258274][   transport.py][1871] : Authentication (password) successful!
2025-06-13 14:41:05,255 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 14:41:05,881 [DEBUG][       Thread-258274][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 14:41:05,881 [DEBUG][       Thread-258274][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 14:41:05,925 [DEBUG][       Thread-258274][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 14:41:05,925 [DEBUG][       Thread-258274][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 14:41:05,928 [DEBUG][       Thread-258274][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 14:41:05,940 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 14:41:05,940 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 14:41:05,942 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 14:41:05,944 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 14:41:05,950 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 14:41:05,952 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 14:41:05,952 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 14:41:05,953 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 14:41:05,953 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.528061 -999.00  +13.80  22.49     35   -1.10 1 1 1 1 1   887    0 15.24 18.65 ----- 23.9 22.5 53.2 25.1 17.7 -30.8 16.7 -31.9 17.2 -30.8 18.5 -28.9
2025-06-13 14:41:05,953 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 14:41:05,953 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 14:41:05,953 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.528061
2025-06-13 14:41:05,954 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 14:41:05,954 [DEBUG][       Thread-258274][   transport.py][1871] : EOF in transport thread
2025-06-13 14:41:05,954 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 14:41:05,955 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 14:41:05,955 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 14:41:05,955 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 14:41:05,956 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T14:40:49', tmtdew=17.15, humidity=30.51, cloud=0.0, wind=16.94, temperature=13.95, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T12:40:24.470', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 14:41:06,038 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 14:41:06,050 [DEBUG][       Thread-258277][   transport.py][1871] : starting thread (client mode): 0x863bfe50
2025-06-13 14:41:06,050 [DEBUG][       Thread-258277][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 14:41:06,071 [DEBUG][       Thread-258277][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 14:41:06,071 [ INFO][       Thread-258277][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 14:41:06,078 [DEBUG][       Thread-258277][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 14:41:06,078 [DEBUG][       Thread-258277][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 14:41:06,079 [DEBUG][       Thread-258277][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 14:41:06,079 [DEBUG][       Thread-258277][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:41:06,079 [DEBUG][       Thread-258277][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:41:06,079 [DEBUG][       Thread-258277][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:41:06,079 [DEBUG][       Thread-258277][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:41:06,079 [DEBUG][       Thread-258277][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 14:41:06,079 [DEBUG][       Thread-258277][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 14:41:06,079 [DEBUG][       Thread-258277][   transport.py][1871] : client lang: <none>
2025-06-13 14:41:06,079 [DEBUG][       Thread-258277][   transport.py][1871] : server lang: <none>
2025-06-13 14:41:06,079 [DEBUG][       Thread-258277][   transport.py][1871] : kex follows: False
2025-06-13 14:41:06,079 [DEBUG][       Thread-258277][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 14:41:06,079 [DEBUG][       Thread-258277][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 14:41:06,079 [DEBUG][       Thread-258277][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 14:41:06,079 [DEBUG][       Thread-258277][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 14:41:06,079 [DEBUG][       Thread-258277][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 14:41:06,079 [DEBUG][       Thread-258277][   transport.py][1871] : Compression: none
2025-06-13 14:41:06,080 [DEBUG][       Thread-258277][   transport.py][1871] : === End of kex handshake ===
2025-06-13 14:41:06,139 [DEBUG][       Thread-258277][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 14:41:06,139 [DEBUG][       Thread-258277][   transport.py][1871] : Switch to new keys ...
2025-06-13 14:41:06,140 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 14:41:06,141 [DEBUG][       Thread-258277][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 14:41:06,141 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 14:41:06,195 [DEBUG][       Thread-258277][   transport.py][1871] : userauth is OK
2025-06-13 14:41:06,196 [DEBUG][       Thread-258277][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 14:41:06,196 [DEBUG][       Thread-258277][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 14:41:06,196 [DEBUG][       Thread-258277][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 14:41:06,196 [DEBUG][       Thread-258277][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 14:41:06,215 [ INFO][       Thread-258277][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 14:41:06,215 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 14:41:06,216 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 14:41:07,210 [DEBUG][       Thread-258277][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 14:41:07,210 [DEBUG][       Thread-258277][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 14:41:07,260 [DEBUG][       Thread-258277][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 14:41:07,260 [DEBUG][       Thread-258277][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 14:41:07,271 [DEBUG][       Thread-258277][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 14:41:07,285 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 14:41:07,285 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 14:41:07,294 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 14:41:07,303 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 14:41:07,303 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 14:41:07,304 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 14:41:07,311 [DEBUG][       Thread-258277][   transport.py][1871] : EOF in transport thread
2025-06-13 14:41:11,211 [DEBUG][Thread-258279 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:41:17,314 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 14:41:17,314 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 14:41:17,315 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 14:41:17,318 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 14:41:17,769 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 14, 40, 49), 17.15, 30.51, 0.0, 16.94, 13.95, 0, 0, 0, 2, 0, 0),)
2025-06-13 14:41:17,769 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 14:40:49
2025-06-13 14:41:17,849 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 14:41:17,853 [DEBUG][       Thread-258280][   transport.py][1871] : starting thread (client mode): 0x84205390
2025-06-13 14:41:17,853 [DEBUG][       Thread-258280][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 14:41:17,874 [DEBUG][       Thread-258280][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 14:41:17,874 [ INFO][       Thread-258280][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 14:41:17,877 [DEBUG][       Thread-258280][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 14:41:17,877 [DEBUG][       Thread-258280][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 14:41:17,877 [DEBUG][       Thread-258280][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 14:41:17,877 [DEBUG][       Thread-258280][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:41:17,877 [DEBUG][       Thread-258280][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:41:17,877 [DEBUG][       Thread-258280][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:41:17,877 [DEBUG][       Thread-258280][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:41:17,877 [DEBUG][       Thread-258280][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 14:41:17,877 [DEBUG][       Thread-258280][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 14:41:17,877 [DEBUG][       Thread-258280][   transport.py][1871] : client lang: <none>
2025-06-13 14:41:17,877 [DEBUG][       Thread-258280][   transport.py][1871] : server lang: <none>
2025-06-13 14:41:17,877 [DEBUG][       Thread-258280][   transport.py][1871] : kex follows: False
2025-06-13 14:41:17,878 [DEBUG][       Thread-258280][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 14:41:17,878 [DEBUG][       Thread-258280][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 14:41:17,878 [DEBUG][       Thread-258280][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 14:41:17,878 [DEBUG][       Thread-258280][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 14:41:17,878 [DEBUG][       Thread-258280][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 14:41:17,878 [DEBUG][       Thread-258280][   transport.py][1871] : Compression: none
2025-06-13 14:41:17,878 [DEBUG][       Thread-258280][   transport.py][1871] : === End of kex handshake ===
2025-06-13 14:41:17,897 [DEBUG][       Thread-258280][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 14:41:17,897 [DEBUG][       Thread-258280][   transport.py][1871] : Switch to new keys ...
2025-06-13 14:41:17,898 [DEBUG][       Thread-258280][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 14:41:17,898 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 14:41:17,898 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 14:41:17,900 [DEBUG][       Thread-258280][   transport.py][1871] : userauth is OK
2025-06-13 14:41:17,924 [ INFO][       Thread-258280][   transport.py][1871] : Authentication (password) successful!
2025-06-13 14:41:17,925 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 14:41:18,566 [DEBUG][       Thread-258280][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 14:41:18,566 [DEBUG][       Thread-258280][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 14:41:18,613 [DEBUG][       Thread-258280][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 14:41:18,613 [DEBUG][       Thread-258280][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 14:41:18,617 [DEBUG][       Thread-258280][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 14:41:18,629 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 14:41:18,630 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 14:41:18,632 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 14:41:18,634 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 14:41:18,639 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 14:41:18,641 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 14:41:18,641 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 14:41:18,642 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 14:41:18,642 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.528061 -999.00  +13.80  22.49     35   -1.10 1 1 1 1 1   887    0 15.24 18.65 ----- 23.9 22.5 53.2 25.1 17.7 -30.8 16.7 -31.9 17.2 -30.8 18.5 -28.9
2025-06-13 14:41:18,642 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 14:41:18,642 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 14:41:18,642 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.528061
2025-06-13 14:41:18,643 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 14:41:18,643 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 14:41:18,643 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 14:41:18,643 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 14:41:18,644 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 14:41:18,644 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T14:40:49', tmtdew=17.15, humidity=30.51, cloud=0.0, wind=16.94, temperature=13.95, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T12:40:24.470', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 14:41:18,645 [DEBUG][       Thread-258280][   transport.py][1871] : EOF in transport thread
2025-06-13 14:41:18,727 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 14:41:18,744 [DEBUG][       Thread-258283][   transport.py][1871] : starting thread (client mode): 0x842068f0
2025-06-13 14:41:18,744 [DEBUG][       Thread-258283][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 14:41:18,758 [DEBUG][       Thread-258283][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 14:41:18,758 [ INFO][       Thread-258283][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 14:41:18,766 [DEBUG][       Thread-258283][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 14:41:18,766 [DEBUG][       Thread-258283][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 14:41:18,766 [DEBUG][       Thread-258283][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 14:41:18,766 [DEBUG][       Thread-258283][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:41:18,766 [DEBUG][       Thread-258283][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:41:18,766 [DEBUG][       Thread-258283][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:41:18,766 [DEBUG][       Thread-258283][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:41:18,766 [DEBUG][       Thread-258283][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 14:41:18,766 [DEBUG][       Thread-258283][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 14:41:18,766 [DEBUG][       Thread-258283][   transport.py][1871] : client lang: <none>
2025-06-13 14:41:18,766 [DEBUG][       Thread-258283][   transport.py][1871] : server lang: <none>
2025-06-13 14:41:18,766 [DEBUG][       Thread-258283][   transport.py][1871] : kex follows: False
2025-06-13 14:41:18,766 [DEBUG][       Thread-258283][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 14:41:18,766 [DEBUG][       Thread-258283][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 14:41:18,766 [DEBUG][       Thread-258283][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 14:41:18,766 [DEBUG][       Thread-258283][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 14:41:18,766 [DEBUG][       Thread-258283][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 14:41:18,766 [DEBUG][       Thread-258283][   transport.py][1871] : Compression: none
2025-06-13 14:41:18,766 [DEBUG][       Thread-258283][   transport.py][1871] : === End of kex handshake ===
2025-06-13 14:41:18,784 [DEBUG][Thread-258285 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:41:18,823 [DEBUG][       Thread-258283][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 14:41:18,823 [DEBUG][       Thread-258283][   transport.py][1871] : Switch to new keys ...
2025-06-13 14:41:18,824 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 14:41:18,825 [DEBUG][       Thread-258283][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 14:41:18,825 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 14:41:18,890 [DEBUG][       Thread-258283][   transport.py][1871] : userauth is OK
2025-06-13 14:41:18,891 [DEBUG][       Thread-258283][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 14:41:18,891 [DEBUG][       Thread-258283][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 14:41:18,891 [DEBUG][       Thread-258283][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 14:41:18,891 [DEBUG][       Thread-258283][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 14:41:18,910 [ INFO][       Thread-258283][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 14:41:18,911 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 14:41:18,911 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 14:41:19,916 [DEBUG][       Thread-258283][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 14:41:19,916 [DEBUG][       Thread-258283][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 14:41:19,964 [DEBUG][       Thread-258283][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 14:41:19,964 [DEBUG][       Thread-258283][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 14:41:19,973 [DEBUG][       Thread-258283][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 14:41:19,984 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 14:41:19,984 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 14:41:19,992 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 14:41:20,001 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 14:41:20,001 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 14:41:20,002 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 14:41:20,009 [DEBUG][       Thread-258283][   transport.py][1871] : EOF in transport thread
2025-06-13 14:41:20,231 [DEBUG][Thread-258286 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:41:29,249 [DEBUG][Thread-258287 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:41:30,012 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 14:41:30,012 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 14:41:30,012 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 14:41:30,013 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 14:41:30,472 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 14, 41, 21), 17.19, 30.56, 0.0, 19.48, 14.05, 0, 0, 0, 2, 0, 0),)
2025-06-13 14:41:30,472 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 14:41:21
2025-06-13 14:41:30,554 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 14:41:30,558 [DEBUG][       Thread-258288][   transport.py][1871] : starting thread (client mode): 0x842046d0
2025-06-13 14:41:30,558 [DEBUG][       Thread-258288][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 14:41:30,579 [DEBUG][       Thread-258288][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 14:41:30,580 [ INFO][       Thread-258288][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 14:41:30,583 [DEBUG][       Thread-258288][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 14:41:30,583 [DEBUG][       Thread-258288][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 14:41:30,583 [DEBUG][       Thread-258288][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 14:41:30,583 [DEBUG][       Thread-258288][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:41:30,583 [DEBUG][       Thread-258288][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:41:30,583 [DEBUG][       Thread-258288][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:41:30,583 [DEBUG][       Thread-258288][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:41:30,583 [DEBUG][       Thread-258288][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 14:41:30,583 [DEBUG][       Thread-258288][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 14:41:30,583 [DEBUG][       Thread-258288][   transport.py][1871] : client lang: <none>
2025-06-13 14:41:30,583 [DEBUG][       Thread-258288][   transport.py][1871] : server lang: <none>
2025-06-13 14:41:30,583 [DEBUG][       Thread-258288][   transport.py][1871] : kex follows: False
2025-06-13 14:41:30,583 [DEBUG][       Thread-258288][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 14:41:30,583 [DEBUG][       Thread-258288][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 14:41:30,583 [DEBUG][       Thread-258288][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 14:41:30,583 [DEBUG][       Thread-258288][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 14:41:30,583 [DEBUG][       Thread-258288][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 14:41:30,583 [DEBUG][       Thread-258288][   transport.py][1871] : Compression: none
2025-06-13 14:41:30,583 [DEBUG][       Thread-258288][   transport.py][1871] : === End of kex handshake ===
2025-06-13 14:41:30,599 [DEBUG][       Thread-258288][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 14:41:30,599 [DEBUG][       Thread-258288][   transport.py][1871] : Switch to new keys ...
2025-06-13 14:41:30,599 [DEBUG][       Thread-258288][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 14:41:30,599 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 14:41:30,599 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 14:41:30,600 [DEBUG][       Thread-258288][   transport.py][1871] : userauth is OK
2025-06-13 14:41:30,612 [ INFO][       Thread-258288][   transport.py][1871] : Authentication (password) successful!
2025-06-13 14:41:30,612 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 14:41:31,237 [DEBUG][       Thread-258288][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 14:41:31,237 [DEBUG][       Thread-258288][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 14:41:31,281 [DEBUG][       Thread-258288][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 14:41:31,281 [DEBUG][       Thread-258288][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 14:41:31,283 [DEBUG][       Thread-258288][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 14:41:31,294 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 14:41:31,295 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 14:41:31,296 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 14:41:31,297 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 14:41:31,300 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 14:41:31,301 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 14:41:31,301 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 14:41:31,301 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 14:41:31,301 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.528408 -999.00  +13.60  20.73     35   -1.30 1 1 1 1 1   887    0 15.59 19.10 ----- 18.7 20.7 52.4 29.4 17.7 -31.0 16.6 -32.3 17.1 -30.8 18.5 -28.7
2025-06-13 14:41:31,301 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 14:41:31,301 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 14:41:31,301 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.528408
2025-06-13 14:41:31,301 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 14:41:31,302 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 14:41:31,302 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 14:41:31,302 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 14:41:31,302 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 14:41:31,302 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T14:41:21', tmtdew=17.19, humidity=30.56, cloud=0.0, wind=19.48, temperature=14.05, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T12:40:54.451', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 14:41:31,302 [DEBUG][       Thread-258288][   transport.py][1871] : EOF in transport thread
2025-06-13 14:41:31,392 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 14:41:31,406 [DEBUG][       Thread-258291][   transport.py][1871] : starting thread (client mode): 0x863cb490
2025-06-13 14:41:31,406 [DEBUG][       Thread-258291][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 14:41:31,420 [DEBUG][       Thread-258291][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 14:41:31,420 [ INFO][       Thread-258291][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 14:41:31,428 [DEBUG][       Thread-258291][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 14:41:31,428 [DEBUG][       Thread-258291][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 14:41:31,428 [DEBUG][       Thread-258291][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 14:41:31,428 [DEBUG][       Thread-258291][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:41:31,429 [DEBUG][       Thread-258291][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:41:31,429 [DEBUG][       Thread-258291][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:41:31,429 [DEBUG][       Thread-258291][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:41:31,429 [DEBUG][       Thread-258291][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 14:41:31,429 [DEBUG][       Thread-258291][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 14:41:31,429 [DEBUG][       Thread-258291][   transport.py][1871] : client lang: <none>
2025-06-13 14:41:31,429 [DEBUG][       Thread-258291][   transport.py][1871] : server lang: <none>
2025-06-13 14:41:31,429 [DEBUG][       Thread-258291][   transport.py][1871] : kex follows: False
2025-06-13 14:41:31,429 [DEBUG][       Thread-258291][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 14:41:31,429 [DEBUG][       Thread-258291][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 14:41:31,429 [DEBUG][       Thread-258291][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 14:41:31,429 [DEBUG][       Thread-258291][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 14:41:31,429 [DEBUG][       Thread-258291][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 14:41:31,429 [DEBUG][       Thread-258291][   transport.py][1871] : Compression: none
2025-06-13 14:41:31,429 [DEBUG][       Thread-258291][   transport.py][1871] : === End of kex handshake ===
2025-06-13 14:41:31,487 [DEBUG][       Thread-258291][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 14:41:31,488 [DEBUG][       Thread-258291][   transport.py][1871] : Switch to new keys ...
2025-06-13 14:41:31,488 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 14:41:31,489 [DEBUG][       Thread-258291][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 14:41:31,490 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 14:41:31,543 [DEBUG][       Thread-258291][   transport.py][1871] : userauth is OK
2025-06-13 14:41:31,543 [DEBUG][       Thread-258291][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 14:41:31,543 [DEBUG][       Thread-258291][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 14:41:31,543 [DEBUG][       Thread-258291][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 14:41:31,544 [DEBUG][       Thread-258291][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 14:41:31,563 [ INFO][       Thread-258291][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 14:41:31,563 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 14:41:31,563 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 14:41:32,562 [DEBUG][       Thread-258291][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 14:41:32,562 [DEBUG][       Thread-258291][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 14:41:32,612 [DEBUG][       Thread-258291][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 14:41:32,612 [DEBUG][       Thread-258291][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 14:41:32,621 [DEBUG][       Thread-258291][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 14:41:32,631 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 14:41:32,631 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 14:41:32,639 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 14:41:32,649 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 14:41:32,649 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 14:41:32,649 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 14:41:32,657 [DEBUG][       Thread-258291][   transport.py][1871] : EOF in transport thread
2025-06-13 14:41:38,269 [DEBUG][Thread-258293 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:41:42,660 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 14:41:42,660 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 14:41:42,660 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 14:41:42,663 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 14:41:43,119 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 14, 41, 21), 17.19, 30.56, 0.0, 19.48, 14.05, 0, 0, 0, 2, 0, 0),)
2025-06-13 14:41:43,119 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 14:41:21
2025-06-13 14:41:43,201 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 14:41:43,205 [DEBUG][       Thread-258294][   transport.py][1871] : starting thread (client mode): 0x842066b0
2025-06-13 14:41:43,205 [DEBUG][       Thread-258294][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 14:41:43,225 [DEBUG][       Thread-258294][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 14:41:43,225 [ INFO][       Thread-258294][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 14:41:43,228 [DEBUG][       Thread-258294][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 14:41:43,228 [DEBUG][       Thread-258294][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 14:41:43,229 [DEBUG][       Thread-258294][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 14:41:43,229 [DEBUG][       Thread-258294][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:41:43,229 [DEBUG][       Thread-258294][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:41:43,229 [DEBUG][       Thread-258294][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:41:43,229 [DEBUG][       Thread-258294][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:41:43,229 [DEBUG][       Thread-258294][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 14:41:43,229 [DEBUG][       Thread-258294][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 14:41:43,229 [DEBUG][       Thread-258294][   transport.py][1871] : client lang: <none>
2025-06-13 14:41:43,229 [DEBUG][       Thread-258294][   transport.py][1871] : server lang: <none>
2025-06-13 14:41:43,229 [DEBUG][       Thread-258294][   transport.py][1871] : kex follows: False
2025-06-13 14:41:43,229 [DEBUG][       Thread-258294][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 14:41:43,229 [DEBUG][       Thread-258294][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 14:41:43,229 [DEBUG][       Thread-258294][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 14:41:43,229 [DEBUG][       Thread-258294][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 14:41:43,229 [DEBUG][       Thread-258294][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 14:41:43,229 [DEBUG][       Thread-258294][   transport.py][1871] : Compression: none
2025-06-13 14:41:43,229 [DEBUG][       Thread-258294][   transport.py][1871] : === End of kex handshake ===
2025-06-13 14:41:43,245 [DEBUG][       Thread-258294][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 14:41:43,245 [DEBUG][       Thread-258294][   transport.py][1871] : Switch to new keys ...
2025-06-13 14:41:43,246 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 14:41:43,246 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 14:41:43,246 [DEBUG][       Thread-258294][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 14:41:43,247 [DEBUG][       Thread-258294][   transport.py][1871] : userauth is OK
2025-06-13 14:41:43,271 [ INFO][       Thread-258294][   transport.py][1871] : Authentication (password) successful!
2025-06-13 14:41:43,272 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 14:41:43,903 [DEBUG][       Thread-258294][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 14:41:43,903 [DEBUG][       Thread-258294][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 14:41:43,945 [DEBUG][       Thread-258294][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 14:41:43,945 [DEBUG][       Thread-258294][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 14:41:43,949 [DEBUG][       Thread-258294][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 14:41:43,962 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 14:41:43,963 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 14:41:43,965 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 14:41:43,967 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 14:41:43,973 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 14:41:43,975 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 14:41:43,975 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 14:41:43,976 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 14:41:43,976 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.528408 -999.00  +13.60  20.73     35   -1.30 1 1 1 1 1   887    0 15.59 19.10 ----- 18.7 20.7 52.4 29.4 17.7 -31.0 16.6 -32.3 17.1 -30.8 18.5 -28.7
2025-06-13 14:41:43,976 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 14:41:43,976 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 14:41:43,976 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.528408
2025-06-13 14:41:43,977 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 14:41:43,977 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 14:41:43,977 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 14:41:43,977 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 14:41:43,978 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 14:41:43,978 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T14:41:21', tmtdew=17.19, humidity=30.56, cloud=0.0, wind=19.48, temperature=14.05, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T12:40:54.451', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 14:41:43,979 [DEBUG][       Thread-258294][   transport.py][1871] : EOF in transport thread
2025-06-13 14:41:44,056 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 14:41:44,067 [DEBUG][       Thread-258297][   transport.py][1871] : starting thread (client mode): 0x863eeb60
2025-06-13 14:41:44,067 [DEBUG][       Thread-258297][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 14:41:44,083 [DEBUG][       Thread-258297][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 14:41:44,083 [ INFO][       Thread-258297][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 14:41:44,091 [DEBUG][       Thread-258297][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 14:41:44,091 [DEBUG][       Thread-258297][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 14:41:44,091 [DEBUG][       Thread-258297][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 14:41:44,091 [DEBUG][       Thread-258297][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:41:44,091 [DEBUG][       Thread-258297][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:41:44,091 [DEBUG][       Thread-258297][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:41:44,091 [DEBUG][       Thread-258297][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:41:44,091 [DEBUG][       Thread-258297][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 14:41:44,091 [DEBUG][       Thread-258297][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 14:41:44,091 [DEBUG][       Thread-258297][   transport.py][1871] : client lang: <none>
2025-06-13 14:41:44,091 [DEBUG][       Thread-258297][   transport.py][1871] : server lang: <none>
2025-06-13 14:41:44,091 [DEBUG][       Thread-258297][   transport.py][1871] : kex follows: False
2025-06-13 14:41:44,091 [DEBUG][       Thread-258297][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 14:41:44,091 [DEBUG][       Thread-258297][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 14:41:44,091 [DEBUG][       Thread-258297][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 14:41:44,091 [DEBUG][       Thread-258297][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 14:41:44,092 [DEBUG][       Thread-258297][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 14:41:44,092 [DEBUG][       Thread-258297][   transport.py][1871] : Compression: none
2025-06-13 14:41:44,092 [DEBUG][       Thread-258297][   transport.py][1871] : === End of kex handshake ===
2025-06-13 14:41:44,151 [DEBUG][       Thread-258297][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 14:41:44,151 [DEBUG][       Thread-258297][   transport.py][1871] : Switch to new keys ...
2025-06-13 14:41:44,152 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 14:41:44,153 [DEBUG][       Thread-258297][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 14:41:44,153 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 14:41:44,207 [DEBUG][       Thread-258297][   transport.py][1871] : userauth is OK
2025-06-13 14:41:44,207 [DEBUG][       Thread-258297][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 14:41:44,207 [DEBUG][       Thread-258297][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 14:41:44,207 [DEBUG][       Thread-258297][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 14:41:44,207 [DEBUG][       Thread-258297][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 14:41:44,226 [ INFO][       Thread-258297][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 14:41:44,226 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 14:41:44,227 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 14:41:45,241 [DEBUG][       Thread-258297][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 14:41:45,241 [DEBUG][       Thread-258297][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 14:41:45,292 [DEBUG][       Thread-258297][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 14:41:45,292 [DEBUG][       Thread-258297][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 14:41:45,307 [DEBUG][       Thread-258297][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 14:41:45,316 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 14:41:45,316 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 14:41:45,326 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 14:41:45,335 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 14:41:45,335 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 14:41:45,336 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 14:41:45,344 [DEBUG][       Thread-258297][   transport.py][1871] : EOF in transport thread
2025-06-13 14:41:47,307 [DEBUG][Thread-258299 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:41:55,344 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 14:41:55,344 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 14:41:55,344 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 14:41:55,344 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 14:41:55,800 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 14, 41, 21), 17.19, 30.56, 0.0, 19.48, 14.05, 0, 0, 0, 2, 0, 0),)
2025-06-13 14:41:55,800 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 14:41:21
2025-06-13 14:41:55,882 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 14:41:55,886 [DEBUG][       Thread-258300][   transport.py][1871] : starting thread (client mode): 0x842055a0
2025-06-13 14:41:55,886 [DEBUG][       Thread-258300][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 14:41:55,907 [DEBUG][       Thread-258300][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 14:41:55,907 [ INFO][       Thread-258300][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 14:41:55,910 [DEBUG][       Thread-258300][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 14:41:55,910 [DEBUG][       Thread-258300][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 14:41:55,911 [DEBUG][       Thread-258300][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 14:41:55,911 [DEBUG][       Thread-258300][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:41:55,911 [DEBUG][       Thread-258300][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:41:55,911 [DEBUG][       Thread-258300][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:41:55,911 [DEBUG][       Thread-258300][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:41:55,911 [DEBUG][       Thread-258300][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 14:41:55,911 [DEBUG][       Thread-258300][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 14:41:55,911 [DEBUG][       Thread-258300][   transport.py][1871] : client lang: <none>
2025-06-13 14:41:55,911 [DEBUG][       Thread-258300][   transport.py][1871] : server lang: <none>
2025-06-13 14:41:55,911 [DEBUG][       Thread-258300][   transport.py][1871] : kex follows: False
2025-06-13 14:41:55,911 [DEBUG][       Thread-258300][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 14:41:55,911 [DEBUG][       Thread-258300][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 14:41:55,911 [DEBUG][       Thread-258300][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 14:41:55,911 [DEBUG][       Thread-258300][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 14:41:55,911 [DEBUG][       Thread-258300][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 14:41:55,911 [DEBUG][       Thread-258300][   transport.py][1871] : Compression: none
2025-06-13 14:41:55,911 [DEBUG][       Thread-258300][   transport.py][1871] : === End of kex handshake ===
2025-06-13 14:41:55,928 [DEBUG][       Thread-258300][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 14:41:55,929 [DEBUG][       Thread-258300][   transport.py][1871] : Switch to new keys ...
2025-06-13 14:41:55,929 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 14:41:55,930 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 14:41:55,930 [DEBUG][       Thread-258300][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 14:41:55,931 [DEBUG][       Thread-258300][   transport.py][1871] : userauth is OK
2025-06-13 14:41:55,945 [ INFO][       Thread-258300][   transport.py][1871] : Authentication (password) successful!
2025-06-13 14:41:55,946 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 14:41:56,150 [DEBUG][Thread-258302 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:41:56,328 [DEBUG][Thread-258303 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:41:56,561 [DEBUG][       Thread-258300][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 14:41:56,561 [DEBUG][       Thread-258300][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 14:41:56,605 [DEBUG][       Thread-258300][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 14:41:56,605 [DEBUG][       Thread-258300][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 14:41:56,609 [DEBUG][       Thread-258300][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 14:41:56,622 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 14:41:56,623 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 14:41:56,625 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 14:41:56,627 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 14:41:56,634 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 14:41:56,636 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 14:41:56,636 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 14:41:56,637 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 14:41:56,637 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.528408 -999.00  +13.60  20.73     35   -1.30 1 1 1 1 1   887    0 15.59 19.10 ----- 18.7 20.7 52.4 29.4 17.7 -31.0 16.6 -32.3 17.1 -30.8 18.5 -28.7
2025-06-13 14:41:56,637 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 14:41:56,637 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 14:41:56,637 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.528408
2025-06-13 14:41:56,638 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 14:41:56,638 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 14:41:56,638 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 14:41:56,638 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 14:41:56,639 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 14:41:56,639 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T14:41:21', tmtdew=17.19, humidity=30.56, cloud=0.0, wind=19.48, temperature=14.05, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T12:40:54.451', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 14:41:56,640 [DEBUG][       Thread-258300][   transport.py][1871] : EOF in transport thread
2025-06-13 14:41:56,725 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 14:41:56,736 [DEBUG][       Thread-258305][   transport.py][1871] : starting thread (client mode): 0x863cb490
2025-06-13 14:41:56,736 [DEBUG][       Thread-258305][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 14:41:56,751 [DEBUG][       Thread-258305][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 14:41:56,751 [ INFO][       Thread-258305][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 14:41:56,758 [DEBUG][       Thread-258305][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 14:41:56,759 [DEBUG][       Thread-258305][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 14:41:56,759 [DEBUG][       Thread-258305][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 14:41:56,759 [DEBUG][       Thread-258305][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:41:56,759 [DEBUG][       Thread-258305][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:41:56,759 [DEBUG][       Thread-258305][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:41:56,759 [DEBUG][       Thread-258305][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:41:56,759 [DEBUG][       Thread-258305][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 14:41:56,759 [DEBUG][       Thread-258305][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 14:41:56,759 [DEBUG][       Thread-258305][   transport.py][1871] : client lang: <none>
2025-06-13 14:41:56,759 [DEBUG][       Thread-258305][   transport.py][1871] : server lang: <none>
2025-06-13 14:41:56,759 [DEBUG][       Thread-258305][   transport.py][1871] : kex follows: False
2025-06-13 14:41:56,759 [DEBUG][       Thread-258305][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 14:41:56,759 [DEBUG][       Thread-258305][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 14:41:56,759 [DEBUG][       Thread-258305][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 14:41:56,759 [DEBUG][       Thread-258305][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 14:41:56,759 [DEBUG][       Thread-258305][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 14:41:56,759 [DEBUG][       Thread-258305][   transport.py][1871] : Compression: none
2025-06-13 14:41:56,759 [DEBUG][       Thread-258305][   transport.py][1871] : === End of kex handshake ===
2025-06-13 14:41:56,820 [DEBUG][       Thread-258305][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 14:41:56,820 [DEBUG][       Thread-258305][   transport.py][1871] : Switch to new keys ...
2025-06-13 14:41:56,821 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 14:41:56,821 [DEBUG][       Thread-258305][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 14:41:56,822 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 14:41:56,875 [DEBUG][       Thread-258305][   transport.py][1871] : userauth is OK
2025-06-13 14:41:56,875 [DEBUG][       Thread-258305][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 14:41:56,875 [DEBUG][       Thread-258305][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 14:41:56,875 [DEBUG][       Thread-258305][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 14:41:56,876 [DEBUG][       Thread-258305][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 14:41:56,894 [ INFO][       Thread-258305][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 14:41:56,895 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 14:41:56,895 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 14:41:57,221 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:41:57,223 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:41:57,877 [DEBUG][       Thread-258305][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 14:41:57,877 [DEBUG][       Thread-258305][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 14:41:57,928 [DEBUG][       Thread-258305][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 14:41:57,928 [DEBUG][       Thread-258305][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 14:41:57,937 [DEBUG][       Thread-258305][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 14:41:57,946 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 14:41:57,946 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 14:41:57,955 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 14:41:57,964 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 14:41:57,964 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 14:41:57,964 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 14:41:57,972 [DEBUG][       Thread-258305][   transport.py][1871] : EOF in transport thread
2025-06-13 14:42:02,852 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:42:02,853 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:42:05,349 [DEBUG][Thread-258307 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:42:07,972 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 14:42:07,972 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 14:42:07,972 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 14:42:07,973 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 14:42:08,456 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 14, 41, 53), 17.35, 30.25, 0.0, 17.68, 14.09, 0, 0, 0, 2, 0, 0),)
2025-06-13 14:42:08,456 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 14:41:53
2025-06-13 14:42:08,542 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 14:42:08,546 [DEBUG][       Thread-258308][   transport.py][1871] : starting thread (client mode): 0x84204dc0
2025-06-13 14:42:08,546 [DEBUG][       Thread-258308][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 14:42:08,566 [DEBUG][       Thread-258308][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 14:42:08,566 [ INFO][       Thread-258308][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 14:42:08,569 [DEBUG][       Thread-258308][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 14:42:08,569 [DEBUG][       Thread-258308][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 14:42:08,569 [DEBUG][       Thread-258308][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 14:42:08,569 [DEBUG][       Thread-258308][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:42:08,569 [DEBUG][       Thread-258308][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:42:08,569 [DEBUG][       Thread-258308][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:42:08,569 [DEBUG][       Thread-258308][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:42:08,569 [DEBUG][       Thread-258308][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 14:42:08,569 [DEBUG][       Thread-258308][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 14:42:08,569 [DEBUG][       Thread-258308][   transport.py][1871] : client lang: <none>
2025-06-13 14:42:08,569 [DEBUG][       Thread-258308][   transport.py][1871] : server lang: <none>
2025-06-13 14:42:08,569 [DEBUG][       Thread-258308][   transport.py][1871] : kex follows: False
2025-06-13 14:42:08,569 [DEBUG][       Thread-258308][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 14:42:08,569 [DEBUG][       Thread-258308][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 14:42:08,569 [DEBUG][       Thread-258308][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 14:42:08,569 [DEBUG][       Thread-258308][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 14:42:08,569 [DEBUG][       Thread-258308][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 14:42:08,569 [DEBUG][       Thread-258308][   transport.py][1871] : Compression: none
2025-06-13 14:42:08,569 [DEBUG][       Thread-258308][   transport.py][1871] : === End of kex handshake ===
2025-06-13 14:42:08,586 [DEBUG][       Thread-258308][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 14:42:08,586 [DEBUG][       Thread-258308][   transport.py][1871] : Switch to new keys ...
2025-06-13 14:42:08,586 [DEBUG][       Thread-258308][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 14:42:08,586 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 14:42:08,586 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 14:42:08,586 [DEBUG][       Thread-258308][   transport.py][1871] : userauth is OK
2025-06-13 14:42:08,611 [ INFO][       Thread-258308][   transport.py][1871] : Authentication (password) successful!
2025-06-13 14:42:08,611 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 14:42:09,248 [DEBUG][       Thread-258308][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 14:42:09,248 [DEBUG][       Thread-258308][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 14:42:09,292 [DEBUG][       Thread-258308][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 14:42:09,292 [DEBUG][       Thread-258308][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 14:42:09,295 [DEBUG][       Thread-258308][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 14:42:09,307 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 14:42:09,308 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 14:42:09,309 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 14:42:09,310 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 14:42:09,313 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 14:42:09,314 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 14:42:09,315 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 14:42:09,315 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 14:42:09,315 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.529103 -999.00  +13.70  22.05     36   -1.00 1 1 1 1 1   887    0 15.28 21.63 ----- 20.8 22.1 31.0 29.1 17.7 -30.7 16.6 -32.1 17.1 -31.3 18.4 -28.5
2025-06-13 14:42:09,315 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 14:42:09,315 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 14:42:09,315 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.529103
2025-06-13 14:42:09,315 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 14:42:09,315 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 14:42:09,315 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 14:42:09,315 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 14:42:09,315 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 14:42:09,315 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T14:41:53', tmtdew=17.35, humidity=30.25, cloud=0.0, wind=17.68, temperature=14.09, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T12:41:54.499', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 14:42:09,316 [DEBUG][       Thread-258308][   transport.py][1871] : EOF in transport thread
2025-06-13 14:42:09,388 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 14:42:09,399 [DEBUG][       Thread-258311][   transport.py][1871] : starting thread (client mode): 0x863ef0d0
2025-06-13 14:42:09,400 [DEBUG][       Thread-258311][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 14:42:09,418 [DEBUG][       Thread-258311][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 14:42:09,418 [ INFO][       Thread-258311][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 14:42:09,427 [DEBUG][       Thread-258311][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 14:42:09,427 [DEBUG][       Thread-258311][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 14:42:09,427 [DEBUG][       Thread-258311][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 14:42:09,427 [DEBUG][       Thread-258311][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:42:09,427 [DEBUG][       Thread-258311][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:42:09,427 [DEBUG][       Thread-258311][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:42:09,427 [DEBUG][       Thread-258311][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:42:09,427 [DEBUG][       Thread-258311][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 14:42:09,427 [DEBUG][       Thread-258311][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 14:42:09,427 [DEBUG][       Thread-258311][   transport.py][1871] : client lang: <none>
2025-06-13 14:42:09,427 [DEBUG][       Thread-258311][   transport.py][1871] : server lang: <none>
2025-06-13 14:42:09,427 [DEBUG][       Thread-258311][   transport.py][1871] : kex follows: False
2025-06-13 14:42:09,427 [DEBUG][       Thread-258311][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 14:42:09,427 [DEBUG][       Thread-258311][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 14:42:09,427 [DEBUG][       Thread-258311][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 14:42:09,427 [DEBUG][       Thread-258311][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 14:42:09,427 [DEBUG][       Thread-258311][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 14:42:09,427 [DEBUG][       Thread-258311][   transport.py][1871] : Compression: none
2025-06-13 14:42:09,427 [DEBUG][       Thread-258311][   transport.py][1871] : === End of kex handshake ===
2025-06-13 14:42:09,484 [DEBUG][       Thread-258311][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 14:42:09,484 [DEBUG][       Thread-258311][   transport.py][1871] : Switch to new keys ...
2025-06-13 14:42:09,484 [DEBUG][       Thread-258311][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 14:42:09,484 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 14:42:09,484 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 14:42:09,544 [DEBUG][       Thread-258311][   transport.py][1871] : userauth is OK
2025-06-13 14:42:09,544 [DEBUG][       Thread-258311][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 14:42:09,544 [DEBUG][       Thread-258311][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 14:42:09,544 [DEBUG][       Thread-258311][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 14:42:09,544 [DEBUG][       Thread-258311][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 14:42:09,559 [ INFO][       Thread-258311][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 14:42:09,559 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 14:42:09,559 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 14:42:10,616 [DEBUG][       Thread-258311][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 14:42:10,617 [DEBUG][       Thread-258311][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 14:42:10,668 [DEBUG][       Thread-258311][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 14:42:10,668 [DEBUG][       Thread-258311][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 14:42:10,683 [DEBUG][       Thread-258311][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 14:42:10,692 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 14:42:10,692 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 14:42:10,701 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 14:42:10,710 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 14:42:10,710 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 14:42:10,711 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 14:42:10,718 [DEBUG][       Thread-258311][   transport.py][1871] : EOF in transport thread
2025-06-13 14:42:14,370 [DEBUG][Thread-258313 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:42:18,832 [DEBUG][Thread-258314 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:42:20,721 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 14:42:20,721 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 14:42:20,721 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 14:42:20,724 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 14:42:21,195 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 14, 41, 53), 17.35, 30.25, 0.0, 17.68, 14.09, 0, 0, 0, 2, 0, 0),)
2025-06-13 14:42:21,195 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 14:41:53
2025-06-13 14:42:21,276 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 14:42:21,280 [DEBUG][       Thread-258315][   transport.py][1871] : starting thread (client mode): 0x86393eb0
2025-06-13 14:42:21,280 [DEBUG][       Thread-258315][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 14:42:21,301 [DEBUG][       Thread-258315][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 14:42:21,301 [ INFO][       Thread-258315][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 14:42:21,304 [DEBUG][       Thread-258315][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 14:42:21,309 [DEBUG][       Thread-258315][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 14:42:21,310 [DEBUG][       Thread-258315][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 14:42:21,310 [DEBUG][       Thread-258315][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:42:21,310 [DEBUG][       Thread-258315][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:42:21,310 [DEBUG][       Thread-258315][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:42:21,310 [DEBUG][       Thread-258315][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:42:21,310 [DEBUG][       Thread-258315][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 14:42:21,310 [DEBUG][       Thread-258315][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 14:42:21,310 [DEBUG][       Thread-258315][   transport.py][1871] : client lang: <none>
2025-06-13 14:42:21,310 [DEBUG][       Thread-258315][   transport.py][1871] : server lang: <none>
2025-06-13 14:42:21,310 [DEBUG][       Thread-258315][   transport.py][1871] : kex follows: False
2025-06-13 14:42:21,310 [DEBUG][       Thread-258315][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 14:42:21,310 [DEBUG][       Thread-258315][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 14:42:21,310 [DEBUG][       Thread-258315][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 14:42:21,310 [DEBUG][       Thread-258315][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 14:42:21,310 [DEBUG][       Thread-258315][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 14:42:21,310 [DEBUG][       Thread-258315][   transport.py][1871] : Compression: none
2025-06-13 14:42:21,310 [DEBUG][       Thread-258315][   transport.py][1871] : === End of kex handshake ===
2025-06-13 14:42:21,329 [DEBUG][       Thread-258315][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 14:42:21,329 [DEBUG][       Thread-258315][   transport.py][1871] : Switch to new keys ...
2025-06-13 14:42:21,330 [DEBUG][       Thread-258315][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 14:42:21,330 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 14:42:21,330 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 14:42:21,331 [DEBUG][       Thread-258315][   transport.py][1871] : userauth is OK
2025-06-13 14:42:21,344 [ INFO][       Thread-258315][   transport.py][1871] : Authentication (password) successful!
2025-06-13 14:42:21,345 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 14:42:21,988 [DEBUG][       Thread-258315][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 14:42:21,988 [DEBUG][       Thread-258315][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 14:42:22,029 [DEBUG][       Thread-258315][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 14:42:22,029 [DEBUG][       Thread-258315][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 14:42:22,032 [DEBUG][       Thread-258315][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 14:42:22,045 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 14:42:22,045 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 14:42:22,047 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 14:42:22,048 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 14:42:22,053 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 14:42:22,055 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 14:42:22,055 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 14:42:22,056 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 14:42:22,056 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.529103 -999.00  +13.70  22.05     36   -1.00 1 1 1 1 1   887    0 15.28 21.63 ----- 20.8 22.1 31.0 29.1 17.7 -30.7 16.6 -32.1 17.1 -31.3 18.4 -28.5
2025-06-13 14:42:22,056 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 14:42:22,056 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 14:42:22,056 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.529103
2025-06-13 14:42:22,057 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 14:42:22,057 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 14:42:22,057 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 14:42:22,058 [DEBUG][       Thread-258315][   transport.py][1871] : EOF in transport thread
2025-06-13 14:42:22,058 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 14:42:22,058 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 14:42:22,059 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T14:41:53', tmtdew=17.35, humidity=30.25, cloud=0.0, wind=17.68, temperature=14.09, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T12:41:54.499', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 14:42:22,141 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 14:42:22,153 [DEBUG][       Thread-258318][   transport.py][1871] : starting thread (client mode): 0x863ef0d0
2025-06-13 14:42:22,153 [DEBUG][       Thread-258318][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 14:42:22,172 [DEBUG][       Thread-258318][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 14:42:22,172 [ INFO][       Thread-258318][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 14:42:22,181 [DEBUG][       Thread-258318][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 14:42:22,181 [DEBUG][       Thread-258318][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 14:42:22,181 [DEBUG][       Thread-258318][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 14:42:22,181 [DEBUG][       Thread-258318][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:42:22,181 [DEBUG][       Thread-258318][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:42:22,181 [DEBUG][       Thread-258318][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:42:22,181 [DEBUG][       Thread-258318][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:42:22,181 [DEBUG][       Thread-258318][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 14:42:22,181 [DEBUG][       Thread-258318][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 14:42:22,181 [DEBUG][       Thread-258318][   transport.py][1871] : client lang: <none>
2025-06-13 14:42:22,181 [DEBUG][       Thread-258318][   transport.py][1871] : server lang: <none>
2025-06-13 14:42:22,181 [DEBUG][       Thread-258318][   transport.py][1871] : kex follows: False
2025-06-13 14:42:22,181 [DEBUG][       Thread-258318][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 14:42:22,182 [DEBUG][       Thread-258318][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 14:42:22,182 [DEBUG][       Thread-258318][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 14:42:22,182 [DEBUG][       Thread-258318][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 14:42:22,182 [DEBUG][       Thread-258318][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 14:42:22,182 [DEBUG][       Thread-258318][   transport.py][1871] : Compression: none
2025-06-13 14:42:22,182 [DEBUG][       Thread-258318][   transport.py][1871] : === End of kex handshake ===
2025-06-13 14:42:22,239 [DEBUG][       Thread-258318][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 14:42:22,239 [DEBUG][       Thread-258318][   transport.py][1871] : Switch to new keys ...
2025-06-13 14:42:22,240 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 14:42:22,241 [DEBUG][       Thread-258318][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 14:42:22,241 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 14:42:22,295 [DEBUG][       Thread-258318][   transport.py][1871] : userauth is OK
2025-06-13 14:42:22,295 [DEBUG][       Thread-258318][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 14:42:22,295 [DEBUG][       Thread-258318][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 14:42:22,296 [DEBUG][       Thread-258318][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 14:42:22,296 [DEBUG][       Thread-258318][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 14:42:22,314 [ INFO][       Thread-258318][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 14:42:22,315 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 14:42:22,315 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 14:42:23,344 [DEBUG][       Thread-258318][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 14:42:23,344 [DEBUG][       Thread-258318][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 14:42:23,393 [DEBUG][       Thread-258318][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 14:42:23,393 [DEBUG][       Thread-258318][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 14:42:23,404 [DEBUG][Thread-258320 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:42:23,406 [DEBUG][       Thread-258318][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 14:42:23,423 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 14:42:23,424 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 14:42:23,436 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 14:42:23,445 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 14:42:23,445 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 14:42:23,445 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 14:42:23,453 [DEBUG][       Thread-258318][   transport.py][1871] : EOF in transport thread
2025-06-13 14:42:32,423 [DEBUG][Thread-258321 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:42:33,448 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 14:42:33,448 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 14:42:33,448 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 14:42:33,451 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 14:42:33,918 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 14, 42, 24), 17.3, 30.0, 0.0, 18.23, 14.1, 0, 0, 0, 2, 0, 0),)
2025-06-13 14:42:33,918 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 14:42:24
2025-06-13 14:42:33,999 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 14:42:34,003 [DEBUG][       Thread-258322][   transport.py][1871] : starting thread (client mode): 0x863be950
2025-06-13 14:42:34,003 [DEBUG][       Thread-258322][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 14:42:34,025 [DEBUG][       Thread-258322][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 14:42:34,025 [ INFO][       Thread-258322][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 14:42:34,027 [DEBUG][       Thread-258322][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 14:42:34,027 [DEBUG][       Thread-258322][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 14:42:34,027 [DEBUG][       Thread-258322][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 14:42:34,027 [DEBUG][       Thread-258322][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:42:34,027 [DEBUG][       Thread-258322][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:42:34,027 [DEBUG][       Thread-258322][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:42:34,027 [DEBUG][       Thread-258322][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:42:34,027 [DEBUG][       Thread-258322][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 14:42:34,027 [DEBUG][       Thread-258322][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 14:42:34,027 [DEBUG][       Thread-258322][   transport.py][1871] : client lang: <none>
2025-06-13 14:42:34,027 [DEBUG][       Thread-258322][   transport.py][1871] : server lang: <none>
2025-06-13 14:42:34,027 [DEBUG][       Thread-258322][   transport.py][1871] : kex follows: False
2025-06-13 14:42:34,027 [DEBUG][       Thread-258322][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 14:42:34,027 [DEBUG][       Thread-258322][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 14:42:34,028 [DEBUG][       Thread-258322][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 14:42:34,028 [DEBUG][       Thread-258322][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 14:42:34,028 [DEBUG][       Thread-258322][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 14:42:34,028 [DEBUG][       Thread-258322][   transport.py][1871] : Compression: none
2025-06-13 14:42:34,028 [DEBUG][       Thread-258322][   transport.py][1871] : === End of kex handshake ===
2025-06-13 14:42:34,036 [DEBUG][       Thread-258322][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 14:42:34,036 [DEBUG][       Thread-258322][   transport.py][1871] : Switch to new keys ...
2025-06-13 14:42:34,037 [DEBUG][       Thread-258322][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 14:42:34,037 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 14:42:34,037 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 14:42:34,038 [DEBUG][       Thread-258322][   transport.py][1871] : userauth is OK
2025-06-13 14:42:34,052 [ INFO][       Thread-258322][   transport.py][1871] : Authentication (password) successful!
2025-06-13 14:42:34,052 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 14:42:34,700 [DEBUG][       Thread-258322][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 14:42:34,700 [DEBUG][       Thread-258322][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 14:42:34,741 [DEBUG][       Thread-258322][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 14:42:34,741 [DEBUG][       Thread-258322][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 14:42:34,745 [DEBUG][       Thread-258322][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 14:42:34,757 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 14:42:34,757 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 14:42:34,759 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 14:42:34,761 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 14:42:34,767 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 14:42:34,769 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 14:42:34,769 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 14:42:34,770 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 14:42:34,770 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.529450 -999.00  +13.90  20.79     36   -0.80 1 1 1 1 1   887    0 15.51 22.17 ----- 20.0 20.8 38.2 26.2 17.7 -30.7 16.6 -31.7 17.2 -29.8 18.4 -28.5
2025-06-13 14:42:34,770 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 14:42:34,770 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 14:42:34,770 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.529450
2025-06-13 14:42:34,771 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 14:42:34,771 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 14:42:34,771 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 14:42:34,771 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 14:42:34,771 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 14:42:34,771 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T14:42:24', tmtdew=17.3, humidity=30.0, cloud=0.0, wind=18.23, temperature=14.1, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T12:42:24.480', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 14:42:34,772 [DEBUG][       Thread-258322][   transport.py][1871] : EOF in transport thread
2025-06-13 14:42:34,855 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 14:42:34,866 [DEBUG][       Thread-258325][   transport.py][1871] : starting thread (client mode): 0x863ca230
2025-06-13 14:42:34,866 [DEBUG][       Thread-258325][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 14:42:34,882 [DEBUG][       Thread-258325][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 14:42:34,882 [ INFO][       Thread-258325][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 14:42:34,889 [DEBUG][       Thread-258325][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 14:42:34,890 [DEBUG][       Thread-258325][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 14:42:34,890 [DEBUG][       Thread-258325][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 14:42:34,890 [DEBUG][       Thread-258325][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:42:34,890 [DEBUG][       Thread-258325][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:42:34,890 [DEBUG][       Thread-258325][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:42:34,890 [DEBUG][       Thread-258325][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:42:34,890 [DEBUG][       Thread-258325][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 14:42:34,890 [DEBUG][       Thread-258325][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 14:42:34,890 [DEBUG][       Thread-258325][   transport.py][1871] : client lang: <none>
2025-06-13 14:42:34,890 [DEBUG][       Thread-258325][   transport.py][1871] : server lang: <none>
2025-06-13 14:42:34,890 [DEBUG][       Thread-258325][   transport.py][1871] : kex follows: False
2025-06-13 14:42:34,890 [DEBUG][       Thread-258325][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 14:42:34,890 [DEBUG][       Thread-258325][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 14:42:34,890 [DEBUG][       Thread-258325][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 14:42:34,890 [DEBUG][       Thread-258325][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 14:42:34,890 [DEBUG][       Thread-258325][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 14:42:34,890 [DEBUG][       Thread-258325][   transport.py][1871] : Compression: none
2025-06-13 14:42:34,891 [DEBUG][       Thread-258325][   transport.py][1871] : === End of kex handshake ===
2025-06-13 14:42:34,945 [DEBUG][       Thread-258325][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 14:42:34,945 [DEBUG][       Thread-258325][   transport.py][1871] : Switch to new keys ...
2025-06-13 14:42:34,946 [DEBUG][       Thread-258325][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 14:42:34,946 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 14:42:34,946 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 14:42:35,002 [DEBUG][       Thread-258325][   transport.py][1871] : userauth is OK
2025-06-13 14:42:35,002 [DEBUG][       Thread-258325][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 14:42:35,002 [DEBUG][       Thread-258325][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 14:42:35,002 [DEBUG][       Thread-258325][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 14:42:35,002 [DEBUG][       Thread-258325][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 14:42:35,016 [ INFO][       Thread-258325][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 14:42:35,016 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 14:42:35,016 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 14:42:36,037 [DEBUG][       Thread-258325][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 14:42:36,037 [DEBUG][       Thread-258325][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 14:42:36,088 [DEBUG][       Thread-258325][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 14:42:36,088 [DEBUG][       Thread-258325][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 14:42:36,097 [DEBUG][       Thread-258325][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 14:42:36,106 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 14:42:36,107 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 14:42:36,115 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 14:42:36,125 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 14:42:36,125 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 14:42:36,126 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 14:42:36,134 [DEBUG][       Thread-258325][   transport.py][1871] : EOF in transport thread
2025-06-13 14:42:41,445 [DEBUG][Thread-258327 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:42:46,136 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 14:42:46,136 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 14:42:46,136 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 14:42:46,136 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 14:42:46,629 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 14, 42, 24), 17.3, 30.0, 0.0, 18.23, 14.1, 0, 0, 0, 2, 0, 0),)
2025-06-13 14:42:46,629 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 14:42:24
2025-06-13 14:42:46,713 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 14:42:46,717 [DEBUG][       Thread-258328][   transport.py][1871] : starting thread (client mode): 0x863923e0
2025-06-13 14:42:46,717 [DEBUG][       Thread-258328][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 14:42:46,737 [DEBUG][       Thread-258328][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 14:42:46,737 [ INFO][       Thread-258328][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 14:42:46,740 [DEBUG][       Thread-258328][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 14:42:46,740 [DEBUG][       Thread-258328][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 14:42:46,740 [DEBUG][       Thread-258328][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 14:42:46,740 [DEBUG][       Thread-258328][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:42:46,740 [DEBUG][       Thread-258328][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:42:46,740 [DEBUG][       Thread-258328][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:42:46,740 [DEBUG][       Thread-258328][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:42:46,740 [DEBUG][       Thread-258328][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 14:42:46,740 [DEBUG][       Thread-258328][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 14:42:46,740 [DEBUG][       Thread-258328][   transport.py][1871] : client lang: <none>
2025-06-13 14:42:46,740 [DEBUG][       Thread-258328][   transport.py][1871] : server lang: <none>
2025-06-13 14:42:46,740 [DEBUG][       Thread-258328][   transport.py][1871] : kex follows: False
2025-06-13 14:42:46,740 [DEBUG][       Thread-258328][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 14:42:46,740 [DEBUG][       Thread-258328][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 14:42:46,740 [DEBUG][       Thread-258328][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 14:42:46,740 [DEBUG][       Thread-258328][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 14:42:46,740 [DEBUG][       Thread-258328][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 14:42:46,740 [DEBUG][       Thread-258328][   transport.py][1871] : Compression: none
2025-06-13 14:42:46,740 [DEBUG][       Thread-258328][   transport.py][1871] : === End of kex handshake ===
2025-06-13 14:42:46,755 [DEBUG][       Thread-258328][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 14:42:46,755 [DEBUG][       Thread-258328][   transport.py][1871] : Switch to new keys ...
2025-06-13 14:42:46,756 [DEBUG][       Thread-258328][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 14:42:46,756 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 14:42:46,756 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 14:42:46,756 [DEBUG][       Thread-258328][   transport.py][1871] : userauth is OK
2025-06-13 14:42:46,769 [ INFO][       Thread-258328][   transport.py][1871] : Authentication (password) successful!
2025-06-13 14:42:46,769 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 14:42:47,417 [DEBUG][       Thread-258328][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 14:42:47,418 [DEBUG][       Thread-258328][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 14:42:47,461 [DEBUG][       Thread-258328][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 14:42:47,461 [DEBUG][       Thread-258328][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 14:42:47,463 [DEBUG][       Thread-258328][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 14:42:47,475 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 14:42:47,475 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 14:42:47,476 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 14:42:47,477 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 14:42:47,481 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 14:42:47,482 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 14:42:47,482 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 14:42:47,482 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 14:42:47,482 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.529450 -999.00  +13.90  20.79     36   -0.80 1 1 1 1 1   887    0 15.51 22.17 ----- 20.0 20.8 38.2 26.2 17.7 -30.7 16.6 -31.7 17.2 -29.8 18.4 -28.5
2025-06-13 14:42:47,482 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 14:42:47,482 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 14:42:47,482 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.529450
2025-06-13 14:42:47,482 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 14:42:47,482 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 14:42:47,482 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 14:42:47,482 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 14:42:47,483 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 14:42:47,483 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T14:42:24', tmtdew=17.3, humidity=30.0, cloud=0.0, wind=18.23, temperature=14.1, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T12:42:24.480', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 14:42:47,483 [DEBUG][       Thread-258328][   transport.py][1871] : EOF in transport thread
2025-06-13 14:42:47,554 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 14:42:47,566 [DEBUG][       Thread-258331][   transport.py][1871] : starting thread (client mode): 0x863ee470
2025-06-13 14:42:47,566 [DEBUG][       Thread-258331][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 14:42:47,583 [DEBUG][       Thread-258331][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 14:42:47,583 [ INFO][       Thread-258331][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 14:42:47,590 [DEBUG][       Thread-258331][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 14:42:47,590 [DEBUG][       Thread-258331][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 14:42:47,590 [DEBUG][       Thread-258331][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 14:42:47,590 [DEBUG][       Thread-258331][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:42:47,590 [DEBUG][       Thread-258331][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:42:47,590 [DEBUG][       Thread-258331][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:42:47,590 [DEBUG][       Thread-258331][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:42:47,591 [DEBUG][       Thread-258331][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 14:42:47,591 [DEBUG][       Thread-258331][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 14:42:47,591 [DEBUG][       Thread-258331][   transport.py][1871] : client lang: <none>
2025-06-13 14:42:47,591 [DEBUG][       Thread-258331][   transport.py][1871] : server lang: <none>
2025-06-13 14:42:47,591 [DEBUG][       Thread-258331][   transport.py][1871] : kex follows: False
2025-06-13 14:42:47,591 [DEBUG][       Thread-258331][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 14:42:47,591 [DEBUG][       Thread-258331][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 14:42:47,591 [DEBUG][       Thread-258331][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 14:42:47,591 [DEBUG][       Thread-258331][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 14:42:47,591 [DEBUG][       Thread-258331][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 14:42:47,591 [DEBUG][       Thread-258331][   transport.py][1871] : Compression: none
2025-06-13 14:42:47,591 [DEBUG][       Thread-258331][   transport.py][1871] : === End of kex handshake ===
2025-06-13 14:42:47,650 [DEBUG][       Thread-258331][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 14:42:47,650 [DEBUG][       Thread-258331][   transport.py][1871] : Switch to new keys ...
2025-06-13 14:42:47,650 [DEBUG][       Thread-258331][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 14:42:47,650 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 14:42:47,650 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 14:42:47,706 [DEBUG][       Thread-258331][   transport.py][1871] : userauth is OK
2025-06-13 14:42:47,706 [DEBUG][       Thread-258331][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 14:42:47,706 [DEBUG][       Thread-258331][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 14:42:47,706 [DEBUG][       Thread-258331][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 14:42:47,706 [DEBUG][       Thread-258331][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 14:42:47,720 [ INFO][       Thread-258331][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 14:42:47,721 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 14:42:47,721 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 14:42:48,754 [DEBUG][       Thread-258331][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 14:42:48,754 [DEBUG][       Thread-258331][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 14:42:48,804 [DEBUG][       Thread-258331][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 14:42:48,804 [DEBUG][       Thread-258331][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 14:42:48,813 [DEBUG][       Thread-258331][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 14:42:48,822 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 14:42:48,822 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 14:42:48,831 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 14:42:48,840 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 14:42:48,841 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 14:42:48,841 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 14:42:48,849 [DEBUG][       Thread-258331][   transport.py][1871] : EOF in transport thread
2025-06-13 14:42:50,478 [DEBUG][Thread-258333 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:42:57,303 [DEBUG][Thread-258334 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:42:58,359 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:42:58,359 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:42:58,851 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 14:42:58,852 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 14:42:58,852 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 14:42:58,853 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 14:42:59,320 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 14, 42, 56), 17.26, 30.07, 0.0, 17.66, 14.05, 0, 0, 0, 2, 0, 0),)
2025-06-13 14:42:59,320 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 14:42:56
2025-06-13 14:42:59,401 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 14:42:59,406 [DEBUG][       Thread-258335][   transport.py][1871] : starting thread (client mode): 0x86351d20
2025-06-13 14:42:59,406 [DEBUG][       Thread-258335][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 14:42:59,428 [DEBUG][       Thread-258335][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 14:42:59,428 [ INFO][       Thread-258335][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 14:42:59,432 [DEBUG][       Thread-258335][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 14:42:59,432 [DEBUG][       Thread-258335][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 14:42:59,432 [DEBUG][       Thread-258335][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 14:42:59,432 [DEBUG][       Thread-258335][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:42:59,432 [DEBUG][       Thread-258335][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:42:59,432 [DEBUG][       Thread-258335][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:42:59,432 [DEBUG][       Thread-258335][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:42:59,432 [DEBUG][       Thread-258335][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 14:42:59,432 [DEBUG][       Thread-258335][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 14:42:59,432 [DEBUG][       Thread-258335][   transport.py][1871] : client lang: <none>
2025-06-13 14:42:59,432 [DEBUG][       Thread-258335][   transport.py][1871] : server lang: <none>
2025-06-13 14:42:59,432 [DEBUG][       Thread-258335][   transport.py][1871] : kex follows: False
2025-06-13 14:42:59,432 [DEBUG][       Thread-258335][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 14:42:59,432 [DEBUG][       Thread-258335][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 14:42:59,432 [DEBUG][       Thread-258335][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 14:42:59,432 [DEBUG][       Thread-258335][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 14:42:59,432 [DEBUG][       Thread-258335][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 14:42:59,432 [DEBUG][       Thread-258335][   transport.py][1871] : Compression: none
2025-06-13 14:42:59,432 [DEBUG][       Thread-258335][   transport.py][1871] : === End of kex handshake ===
2025-06-13 14:42:59,448 [DEBUG][       Thread-258335][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 14:42:59,449 [DEBUG][       Thread-258335][   transport.py][1871] : Switch to new keys ...
2025-06-13 14:42:59,449 [DEBUG][       Thread-258335][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 14:42:59,450 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 14:42:59,450 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 14:42:59,451 [DEBUG][       Thread-258335][   transport.py][1871] : userauth is OK
2025-06-13 14:42:59,476 [ INFO][       Thread-258335][   transport.py][1871] : Authentication (password) successful!
2025-06-13 14:42:59,476 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 14:42:59,498 [DEBUG][Thread-258337 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:43:00,123 [DEBUG][       Thread-258335][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 14:43:00,124 [DEBUG][       Thread-258335][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 14:43:00,165 [DEBUG][       Thread-258335][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 14:43:00,165 [DEBUG][       Thread-258335][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 14:43:00,169 [DEBUG][       Thread-258335][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 14:43:00,180 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 14:43:00,181 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 14:43:00,182 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 14:43:00,184 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 14:43:00,190 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 14:43:00,192 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 14:43:00,193 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 14:43:00,193 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 14:43:00,194 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.529450 -999.00  +13.90  20.79     36   -0.80 1 1 1 1 1   887    0 15.51 22.17 ----- 20.0 20.8 38.2 26.2 17.7 -30.7 16.6 -31.7 17.2 -29.8 18.4 -28.5
2025-06-13 14:43:00,194 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 14:43:00,194 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 14:43:00,194 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.529450
2025-06-13 14:43:00,194 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 14:43:00,195 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 14:43:00,195 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 14:43:00,195 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 14:43:00,195 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 14:43:00,195 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T14:42:56', tmtdew=17.26, humidity=30.07, cloud=0.0, wind=17.66, temperature=14.05, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T12:42:24.480', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 14:43:00,195 [DEBUG][       Thread-258335][   transport.py][1871] : EOF in transport thread
2025-06-13 14:43:00,280 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 14:43:00,297 [DEBUG][       Thread-258339][   transport.py][1871] : starting thread (client mode): 0x863ef340
2025-06-13 14:43:00,297 [DEBUG][       Thread-258339][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 14:43:00,316 [DEBUG][       Thread-258339][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 14:43:00,316 [ INFO][       Thread-258339][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 14:43:00,323 [DEBUG][       Thread-258339][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 14:43:00,324 [DEBUG][       Thread-258339][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 14:43:00,324 [DEBUG][       Thread-258339][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 14:43:00,324 [DEBUG][       Thread-258339][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:43:00,324 [DEBUG][       Thread-258339][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:43:00,324 [DEBUG][       Thread-258339][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:43:00,324 [DEBUG][       Thread-258339][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:43:00,324 [DEBUG][       Thread-258339][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 14:43:00,324 [DEBUG][       Thread-258339][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 14:43:00,324 [DEBUG][       Thread-258339][   transport.py][1871] : client lang: <none>
2025-06-13 14:43:00,324 [DEBUG][       Thread-258339][   transport.py][1871] : server lang: <none>
2025-06-13 14:43:00,324 [DEBUG][       Thread-258339][   transport.py][1871] : kex follows: False
2025-06-13 14:43:00,324 [DEBUG][       Thread-258339][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 14:43:00,324 [DEBUG][       Thread-258339][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 14:43:00,325 [DEBUG][       Thread-258339][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 14:43:00,325 [DEBUG][       Thread-258339][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 14:43:00,325 [DEBUG][       Thread-258339][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 14:43:00,325 [DEBUG][       Thread-258339][   transport.py][1871] : Compression: none
2025-06-13 14:43:00,325 [DEBUG][       Thread-258339][   transport.py][1871] : === End of kex handshake ===
2025-06-13 14:43:00,383 [DEBUG][       Thread-258339][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 14:43:00,383 [DEBUG][       Thread-258339][   transport.py][1871] : Switch to new keys ...
2025-06-13 14:43:00,384 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 14:43:00,384 [DEBUG][       Thread-258339][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 14:43:00,385 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 14:43:00,439 [DEBUG][       Thread-258339][   transport.py][1871] : userauth is OK
2025-06-13 14:43:00,439 [DEBUG][       Thread-258339][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 14:43:00,439 [DEBUG][       Thread-258339][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 14:43:00,439 [DEBUG][       Thread-258339][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 14:43:00,439 [DEBUG][       Thread-258339][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 14:43:00,453 [ INFO][       Thread-258339][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 14:43:00,453 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 14:43:00,453 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 14:43:01,483 [DEBUG][       Thread-258339][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 14:43:01,483 [DEBUG][       Thread-258339][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 14:43:01,535 [DEBUG][       Thread-258339][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 14:43:01,535 [DEBUG][       Thread-258339][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 14:43:01,544 [DEBUG][       Thread-258339][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 14:43:01,551 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 14:43:01,552 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 14:43:01,559 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 14:43:01,567 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 14:43:01,567 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 14:43:01,568 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 14:43:01,575 [DEBUG][       Thread-258339][   transport.py][1871] : EOF in transport thread
2025-06-13 14:43:02,991 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:43:02,992 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:43:08,519 [DEBUG][Thread-258341 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:43:11,578 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 14:43:11,578 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 14:43:11,578 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 14:43:11,581 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 14:43:12,047 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 14, 42, 56), 17.26, 30.07, 0.0, 17.66, 14.05, 0, 0, 0, 2, 0, 0),)
2025-06-13 14:43:12,047 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 14:42:56
2025-06-13 14:43:12,129 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 14:43:12,135 [DEBUG][       Thread-258342][   transport.py][1871] : starting thread (client mode): 0x84205b70
2025-06-13 14:43:12,135 [DEBUG][       Thread-258342][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 14:43:12,156 [DEBUG][       Thread-258342][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 14:43:12,156 [ INFO][       Thread-258342][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 14:43:12,159 [DEBUG][       Thread-258342][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 14:43:12,159 [DEBUG][       Thread-258342][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 14:43:12,159 [DEBUG][       Thread-258342][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 14:43:12,159 [DEBUG][       Thread-258342][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:43:12,159 [DEBUG][       Thread-258342][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:43:12,160 [DEBUG][       Thread-258342][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:43:12,160 [DEBUG][       Thread-258342][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:43:12,160 [DEBUG][       Thread-258342][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 14:43:12,160 [DEBUG][       Thread-258342][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 14:43:12,160 [DEBUG][       Thread-258342][   transport.py][1871] : client lang: <none>
2025-06-13 14:43:12,160 [DEBUG][       Thread-258342][   transport.py][1871] : server lang: <none>
2025-06-13 14:43:12,160 [DEBUG][       Thread-258342][   transport.py][1871] : kex follows: False
2025-06-13 14:43:12,160 [DEBUG][       Thread-258342][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 14:43:12,160 [DEBUG][       Thread-258342][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 14:43:12,160 [DEBUG][       Thread-258342][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 14:43:12,160 [DEBUG][       Thread-258342][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 14:43:12,160 [DEBUG][       Thread-258342][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 14:43:12,160 [DEBUG][       Thread-258342][   transport.py][1871] : Compression: none
2025-06-13 14:43:12,160 [DEBUG][       Thread-258342][   transport.py][1871] : === End of kex handshake ===
2025-06-13 14:43:12,177 [DEBUG][       Thread-258342][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 14:43:12,178 [DEBUG][       Thread-258342][   transport.py][1871] : Switch to new keys ...
2025-06-13 14:43:12,178 [DEBUG][       Thread-258342][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 14:43:12,178 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 14:43:12,178 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 14:43:12,180 [DEBUG][       Thread-258342][   transport.py][1871] : userauth is OK
2025-06-13 14:43:12,192 [ INFO][       Thread-258342][   transport.py][1871] : Authentication (password) successful!
2025-06-13 14:43:12,193 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 14:43:12,835 [DEBUG][       Thread-258342][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 14:43:12,835 [DEBUG][       Thread-258342][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 14:43:12,877 [DEBUG][       Thread-258342][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 14:43:12,877 [DEBUG][       Thread-258342][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 14:43:12,880 [DEBUG][       Thread-258342][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 14:43:12,893 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 14:43:12,894 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 14:43:12,895 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 14:43:12,897 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 14:43:12,904 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 14:43:12,905 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 14:43:12,906 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 14:43:12,906 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 14:43:12,907 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.529797 -999.00  +13.80  21.06     34   -1.50 1 1 1 1 1   887    0 15.45 23.13 ----- 21.8 21.1 48.4 25.2 17.7 -31.4 16.7 -31.3 17.3 -29.7 18.4 -29.1
2025-06-13 14:43:12,907 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 14:43:12,907 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 14:43:12,907 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.529797
2025-06-13 14:43:12,907 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 14:43:12,908 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 14:43:12,908 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 14:43:12,908 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 14:43:12,908 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 14:43:12,908 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T14:42:56', tmtdew=17.26, humidity=30.07, cloud=0.0, wind=17.66, temperature=14.05, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T12:42:54.461', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 14:43:12,909 [DEBUG][       Thread-258342][   transport.py][1871] : EOF in transport thread
2025-06-13 14:43:12,992 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 14:43:13,010 [DEBUG][       Thread-258345][   transport.py][1871] : starting thread (client mode): 0x84205480
2025-06-13 14:43:13,010 [DEBUG][       Thread-258345][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 14:43:13,025 [DEBUG][       Thread-258345][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 14:43:13,025 [ INFO][       Thread-258345][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 14:43:13,032 [DEBUG][       Thread-258345][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 14:43:13,033 [DEBUG][       Thread-258345][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 14:43:13,033 [DEBUG][       Thread-258345][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 14:43:13,033 [DEBUG][       Thread-258345][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:43:13,033 [DEBUG][       Thread-258345][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:43:13,033 [DEBUG][       Thread-258345][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:43:13,033 [DEBUG][       Thread-258345][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:43:13,033 [DEBUG][       Thread-258345][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 14:43:13,033 [DEBUG][       Thread-258345][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 14:43:13,033 [DEBUG][       Thread-258345][   transport.py][1871] : client lang: <none>
2025-06-13 14:43:13,033 [DEBUG][       Thread-258345][   transport.py][1871] : server lang: <none>
2025-06-13 14:43:13,033 [DEBUG][       Thread-258345][   transport.py][1871] : kex follows: False
2025-06-13 14:43:13,033 [DEBUG][       Thread-258345][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 14:43:13,033 [DEBUG][       Thread-258345][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 14:43:13,033 [DEBUG][       Thread-258345][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 14:43:13,033 [DEBUG][       Thread-258345][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 14:43:13,034 [DEBUG][       Thread-258345][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 14:43:13,034 [DEBUG][       Thread-258345][   transport.py][1871] : Compression: none
2025-06-13 14:43:13,034 [DEBUG][       Thread-258345][   transport.py][1871] : === End of kex handshake ===
2025-06-13 14:43:13,096 [DEBUG][       Thread-258345][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 14:43:13,096 [DEBUG][       Thread-258345][   transport.py][1871] : Switch to new keys ...
2025-06-13 14:43:13,097 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 14:43:13,098 [DEBUG][       Thread-258345][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 14:43:13,098 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 14:43:13,159 [DEBUG][       Thread-258345][   transport.py][1871] : userauth is OK
2025-06-13 14:43:13,159 [DEBUG][       Thread-258345][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 14:43:13,159 [DEBUG][       Thread-258345][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 14:43:13,160 [DEBUG][       Thread-258345][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 14:43:13,160 [DEBUG][       Thread-258345][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 14:43:13,178 [ INFO][       Thread-258345][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 14:43:13,179 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 14:43:13,179 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 14:43:14,206 [DEBUG][       Thread-258345][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 14:43:14,206 [DEBUG][       Thread-258345][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 14:43:14,256 [DEBUG][       Thread-258345][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 14:43:14,256 [DEBUG][       Thread-258345][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 14:43:14,266 [DEBUG][       Thread-258345][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 14:43:14,275 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 14:43:14,275 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 14:43:14,284 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 14:43:14,293 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 14:43:14,293 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 14:43:14,294 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 14:43:14,301 [DEBUG][       Thread-258345][   transport.py][1871] : EOF in transport thread
2025-06-13 14:43:17,555 [DEBUG][Thread-258347 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:43:18,884 [DEBUG][Thread-258348 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:43:24,304 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 14:43:24,304 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 14:43:24,304 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 14:43:24,305 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 14:43:24,780 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 14, 42, 56), 17.26, 30.07, 0.0, 17.66, 14.05, 0, 0, 0, 2, 0, 0),)
2025-06-13 14:43:24,780 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 14:42:56
2025-06-13 14:43:24,867 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 14:43:24,871 [DEBUG][       Thread-258349][   transport.py][1871] : starting thread (client mode): 0x867fe1a0
2025-06-13 14:43:24,871 [DEBUG][       Thread-258349][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 14:43:24,891 [DEBUG][       Thread-258349][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 14:43:24,891 [ INFO][       Thread-258349][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 14:43:24,894 [DEBUG][       Thread-258349][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 14:43:24,894 [DEBUG][       Thread-258349][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 14:43:24,894 [DEBUG][       Thread-258349][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 14:43:24,894 [DEBUG][       Thread-258349][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:43:24,894 [DEBUG][       Thread-258349][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:43:24,894 [DEBUG][       Thread-258349][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:43:24,894 [DEBUG][       Thread-258349][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:43:24,894 [DEBUG][       Thread-258349][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 14:43:24,894 [DEBUG][       Thread-258349][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 14:43:24,894 [DEBUG][       Thread-258349][   transport.py][1871] : client lang: <none>
2025-06-13 14:43:24,894 [DEBUG][       Thread-258349][   transport.py][1871] : server lang: <none>
2025-06-13 14:43:24,894 [DEBUG][       Thread-258349][   transport.py][1871] : kex follows: False
2025-06-13 14:43:24,894 [DEBUG][       Thread-258349][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 14:43:24,894 [DEBUG][       Thread-258349][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 14:43:24,894 [DEBUG][       Thread-258349][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 14:43:24,894 [DEBUG][       Thread-258349][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 14:43:24,894 [DEBUG][       Thread-258349][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 14:43:24,894 [DEBUG][       Thread-258349][   transport.py][1871] : Compression: none
2025-06-13 14:43:24,894 [DEBUG][       Thread-258349][   transport.py][1871] : === End of kex handshake ===
2025-06-13 14:43:24,909 [DEBUG][       Thread-258349][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 14:43:24,909 [DEBUG][       Thread-258349][   transport.py][1871] : Switch to new keys ...
2025-06-13 14:43:24,909 [DEBUG][       Thread-258349][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 14:43:24,909 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 14:43:24,909 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 14:43:24,910 [DEBUG][       Thread-258349][   transport.py][1871] : userauth is OK
2025-06-13 14:43:24,923 [ INFO][       Thread-258349][   transport.py][1871] : Authentication (password) successful!
2025-06-13 14:43:24,923 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 14:43:25,566 [DEBUG][       Thread-258349][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 14:43:25,566 [DEBUG][       Thread-258349][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 14:43:25,609 [DEBUG][       Thread-258349][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 14:43:25,609 [DEBUG][       Thread-258349][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 14:43:25,611 [DEBUG][       Thread-258349][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 14:43:25,622 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 14:43:25,622 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 14:43:25,623 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 14:43:25,624 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 14:43:25,628 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 14:43:25,629 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 14:43:25,629 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 14:43:25,629 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 14:43:25,629 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.529797 -999.00  +13.80  21.06     34   -1.50 1 1 1 1 1   887    0 15.45 23.13 ----- 21.8 21.1 48.4 25.2 17.7 -31.4 16.7 -31.3 17.3 -29.7 18.4 -29.1
2025-06-13 14:43:25,630 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 14:43:25,630 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 14:43:25,630 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.529797
2025-06-13 14:43:25,630 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 14:43:25,630 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 14:43:25,630 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 14:43:25,630 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 14:43:25,630 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 14:43:25,630 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T14:42:56', tmtdew=17.26, humidity=30.07, cloud=0.0, wind=17.66, temperature=14.05, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T12:42:54.461', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 14:43:25,631 [DEBUG][       Thread-258349][   transport.py][1871] : EOF in transport thread
2025-06-13 14:43:25,702 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 14:43:25,716 [DEBUG][       Thread-258352][   transport.py][1871] : starting thread (client mode): 0x863934c0
2025-06-13 14:43:25,716 [DEBUG][       Thread-258352][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 14:43:25,732 [DEBUG][       Thread-258352][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 14:43:25,732 [ INFO][       Thread-258352][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 14:43:25,739 [DEBUG][       Thread-258352][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 14:43:25,739 [DEBUG][       Thread-258352][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 14:43:25,739 [DEBUG][       Thread-258352][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 14:43:25,739 [DEBUG][       Thread-258352][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:43:25,739 [DEBUG][       Thread-258352][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:43:25,739 [DEBUG][       Thread-258352][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:43:25,739 [DEBUG][       Thread-258352][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:43:25,739 [DEBUG][       Thread-258352][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 14:43:25,739 [DEBUG][       Thread-258352][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 14:43:25,739 [DEBUG][       Thread-258352][   transport.py][1871] : client lang: <none>
2025-06-13 14:43:25,739 [DEBUG][       Thread-258352][   transport.py][1871] : server lang: <none>
2025-06-13 14:43:25,739 [DEBUG][       Thread-258352][   transport.py][1871] : kex follows: False
2025-06-13 14:43:25,739 [DEBUG][       Thread-258352][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 14:43:25,739 [DEBUG][       Thread-258352][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 14:43:25,739 [DEBUG][       Thread-258352][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 14:43:25,739 [DEBUG][       Thread-258352][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 14:43:25,739 [DEBUG][       Thread-258352][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 14:43:25,739 [DEBUG][       Thread-258352][   transport.py][1871] : Compression: none
2025-06-13 14:43:25,739 [DEBUG][       Thread-258352][   transport.py][1871] : === End of kex handshake ===
2025-06-13 14:43:25,806 [DEBUG][       Thread-258352][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 14:43:25,806 [DEBUG][       Thread-258352][   transport.py][1871] : Switch to new keys ...
2025-06-13 14:43:25,806 [DEBUG][       Thread-258352][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 14:43:25,806 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 14:43:25,806 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 14:43:25,867 [DEBUG][       Thread-258352][   transport.py][1871] : userauth is OK
2025-06-13 14:43:25,867 [DEBUG][       Thread-258352][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 14:43:25,867 [DEBUG][       Thread-258352][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 14:43:25,867 [DEBUG][       Thread-258352][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 14:43:25,867 [DEBUG][       Thread-258352][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 14:43:25,887 [ INFO][       Thread-258352][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 14:43:25,887 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 14:43:25,887 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 14:43:26,574 [DEBUG][Thread-258354 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:43:26,976 [DEBUG][       Thread-258352][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 14:43:26,976 [DEBUG][       Thread-258352][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 14:43:27,025 [DEBUG][       Thread-258352][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 14:43:27,025 [DEBUG][       Thread-258352][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 14:43:27,036 [DEBUG][       Thread-258352][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 14:43:27,047 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 14:43:27,048 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 14:43:27,056 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 14:43:27,066 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 14:43:27,066 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 14:43:27,067 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 14:43:27,075 [DEBUG][       Thread-258352][   transport.py][1871] : EOF in transport thread
2025-06-13 14:43:35,595 [DEBUG][Thread-258355 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:43:37,077 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 14:43:37,077 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 14:43:37,078 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 14:43:37,081 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 14:43:37,543 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 14, 43, 28), 17.25, 30.15, 0.0, 16.27, 14.05, 0, 0, 0, 2, 0, 0),)
2025-06-13 14:43:37,543 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 14:43:28
2025-06-13 14:43:37,625 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 14:43:37,631 [DEBUG][       Thread-258356][   transport.py][1871] : starting thread (client mode): 0x84204d30
2025-06-13 14:43:37,631 [DEBUG][       Thread-258356][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 14:43:37,651 [DEBUG][       Thread-258356][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 14:43:37,651 [ INFO][       Thread-258356][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 14:43:37,654 [DEBUG][       Thread-258356][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 14:43:37,654 [DEBUG][       Thread-258356][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 14:43:37,654 [DEBUG][       Thread-258356][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 14:43:37,654 [DEBUG][       Thread-258356][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:43:37,654 [DEBUG][       Thread-258356][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:43:37,654 [DEBUG][       Thread-258356][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:43:37,654 [DEBUG][       Thread-258356][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:43:37,654 [DEBUG][       Thread-258356][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 14:43:37,654 [DEBUG][       Thread-258356][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 14:43:37,654 [DEBUG][       Thread-258356][   transport.py][1871] : client lang: <none>
2025-06-13 14:43:37,654 [DEBUG][       Thread-258356][   transport.py][1871] : server lang: <none>
2025-06-13 14:43:37,654 [DEBUG][       Thread-258356][   transport.py][1871] : kex follows: False
2025-06-13 14:43:37,654 [DEBUG][       Thread-258356][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 14:43:37,654 [DEBUG][       Thread-258356][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 14:43:37,654 [DEBUG][       Thread-258356][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 14:43:37,654 [DEBUG][       Thread-258356][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 14:43:37,655 [DEBUG][       Thread-258356][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 14:43:37,655 [DEBUG][       Thread-258356][   transport.py][1871] : Compression: none
2025-06-13 14:43:37,655 [DEBUG][       Thread-258356][   transport.py][1871] : === End of kex handshake ===
2025-06-13 14:43:37,671 [DEBUG][       Thread-258356][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 14:43:37,671 [DEBUG][       Thread-258356][   transport.py][1871] : Switch to new keys ...
2025-06-13 14:43:37,672 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 14:43:37,672 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 14:43:37,673 [DEBUG][       Thread-258356][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 14:43:37,673 [DEBUG][       Thread-258356][   transport.py][1871] : userauth is OK
2025-06-13 14:43:37,699 [ INFO][       Thread-258356][   transport.py][1871] : Authentication (password) successful!
2025-06-13 14:43:37,699 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 14:43:38,289 [DEBUG][       Thread-258356][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 14:43:38,289 [DEBUG][       Thread-258356][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 14:43:38,333 [DEBUG][       Thread-258356][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 14:43:38,333 [DEBUG][       Thread-258356][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 14:43:38,336 [DEBUG][       Thread-258356][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 14:43:38,349 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 14:43:38,350 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 14:43:38,351 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 14:43:38,353 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 14:43:38,358 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 14:43:38,360 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 14:43:38,360 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 14:43:38,361 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 14:43:38,361 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.529797 -999.00  +13.80  21.06     34   -1.50 1 1 1 1 1   887    0 15.45 23.13 ----- 21.8 21.1 48.4 25.2 17.7 -31.4 16.7 -31.3 17.3 -29.7 18.4 -29.1
2025-06-13 14:43:38,361 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 14:43:38,361 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 14:43:38,361 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.529797
2025-06-13 14:43:38,361 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 14:43:38,362 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 14:43:38,362 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 14:43:38,362 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 14:43:38,362 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 14:43:38,362 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T14:43:28', tmtdew=17.25, humidity=30.15, cloud=0.0, wind=16.27, temperature=14.05, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T12:42:54.461', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 14:43:38,363 [DEBUG][       Thread-258356][   transport.py][1871] : EOF in transport thread
2025-06-13 14:43:38,447 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 14:43:38,463 [DEBUG][       Thread-258359][   transport.py][1871] : starting thread (client mode): 0x8636b4f0
2025-06-13 14:43:38,463 [DEBUG][       Thread-258359][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 14:43:38,480 [DEBUG][       Thread-258359][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 14:43:38,481 [ INFO][       Thread-258359][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 14:43:38,488 [DEBUG][       Thread-258359][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 14:43:38,488 [DEBUG][       Thread-258359][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 14:43:38,489 [DEBUG][       Thread-258359][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 14:43:38,489 [DEBUG][       Thread-258359][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:43:38,489 [DEBUG][       Thread-258359][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:43:38,489 [DEBUG][       Thread-258359][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:43:38,489 [DEBUG][       Thread-258359][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:43:38,489 [DEBUG][       Thread-258359][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 14:43:38,489 [DEBUG][       Thread-258359][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 14:43:38,489 [DEBUG][       Thread-258359][   transport.py][1871] : client lang: <none>
2025-06-13 14:43:38,489 [DEBUG][       Thread-258359][   transport.py][1871] : server lang: <none>
2025-06-13 14:43:38,489 [DEBUG][       Thread-258359][   transport.py][1871] : kex follows: False
2025-06-13 14:43:38,489 [DEBUG][       Thread-258359][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 14:43:38,489 [DEBUG][       Thread-258359][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 14:43:38,489 [DEBUG][       Thread-258359][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 14:43:38,489 [DEBUG][       Thread-258359][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 14:43:38,489 [DEBUG][       Thread-258359][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 14:43:38,489 [DEBUG][       Thread-258359][   transport.py][1871] : Compression: none
2025-06-13 14:43:38,490 [DEBUG][       Thread-258359][   transport.py][1871] : === End of kex handshake ===
2025-06-13 14:43:38,546 [DEBUG][       Thread-258359][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 14:43:38,547 [DEBUG][       Thread-258359][   transport.py][1871] : Switch to new keys ...
2025-06-13 14:43:38,547 [DEBUG][       Thread-258359][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 14:43:38,548 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 14:43:38,548 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 14:43:38,608 [DEBUG][       Thread-258359][   transport.py][1871] : userauth is OK
2025-06-13 14:43:38,608 [DEBUG][       Thread-258359][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 14:43:38,608 [DEBUG][       Thread-258359][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 14:43:38,608 [DEBUG][       Thread-258359][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 14:43:38,608 [DEBUG][       Thread-258359][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 14:43:38,627 [ INFO][       Thread-258359][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 14:43:38,627 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 14:43:38,628 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 14:43:39,635 [DEBUG][       Thread-258359][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 14:43:39,635 [DEBUG][       Thread-258359][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 14:43:39,684 [DEBUG][       Thread-258359][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 14:43:39,684 [DEBUG][       Thread-258359][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 14:43:39,693 [DEBUG][       Thread-258359][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 14:43:39,701 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 14:43:39,702 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 14:43:39,712 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 14:43:39,721 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 14:43:39,721 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 14:43:39,721 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 14:43:39,730 [DEBUG][       Thread-258359][   transport.py][1871] : EOF in transport thread
2025-06-13 14:43:44,617 [DEBUG][Thread-258361 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:43:49,728 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 14:43:49,728 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 14:43:49,728 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 14:43:49,730 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 14:43:50,198 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 14, 43, 28), 17.25, 30.15, 0.0, 16.27, 14.05, 0, 0, 0, 2, 0, 0),)
2025-06-13 14:43:50,198 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 14:43:28
2025-06-13 14:43:50,280 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 14:43:50,284 [DEBUG][       Thread-258362][   transport.py][1871] : starting thread (client mode): 0x84207d30
2025-06-13 14:43:50,284 [DEBUG][       Thread-258362][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 14:43:50,304 [DEBUG][       Thread-258362][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 14:43:50,304 [ INFO][       Thread-258362][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 14:43:50,306 [DEBUG][       Thread-258362][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 14:43:50,306 [DEBUG][       Thread-258362][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 14:43:50,306 [DEBUG][       Thread-258362][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 14:43:50,306 [DEBUG][       Thread-258362][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:43:50,306 [DEBUG][       Thread-258362][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:43:50,306 [DEBUG][       Thread-258362][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:43:50,306 [DEBUG][       Thread-258362][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:43:50,306 [DEBUG][       Thread-258362][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 14:43:50,306 [DEBUG][       Thread-258362][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 14:43:50,306 [DEBUG][       Thread-258362][   transport.py][1871] : client lang: <none>
2025-06-13 14:43:50,306 [DEBUG][       Thread-258362][   transport.py][1871] : server lang: <none>
2025-06-13 14:43:50,306 [DEBUG][       Thread-258362][   transport.py][1871] : kex follows: False
2025-06-13 14:43:50,306 [DEBUG][       Thread-258362][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 14:43:50,306 [DEBUG][       Thread-258362][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 14:43:50,306 [DEBUG][       Thread-258362][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 14:43:50,306 [DEBUG][       Thread-258362][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 14:43:50,306 [DEBUG][       Thread-258362][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 14:43:50,306 [DEBUG][       Thread-258362][   transport.py][1871] : Compression: none
2025-06-13 14:43:50,306 [DEBUG][       Thread-258362][   transport.py][1871] : === End of kex handshake ===
2025-06-13 14:43:50,314 [DEBUG][       Thread-258362][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 14:43:50,314 [DEBUG][       Thread-258362][   transport.py][1871] : Switch to new keys ...
2025-06-13 14:43:50,314 [DEBUG][       Thread-258362][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 14:43:50,315 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 14:43:50,315 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 14:43:50,316 [DEBUG][       Thread-258362][   transport.py][1871] : userauth is OK
2025-06-13 14:43:50,340 [ INFO][       Thread-258362][   transport.py][1871] : Authentication (password) successful!
2025-06-13 14:43:50,340 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 14:43:50,917 [DEBUG][       Thread-258362][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 14:43:50,917 [DEBUG][       Thread-258362][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 14:43:50,961 [DEBUG][       Thread-258362][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 14:43:50,961 [DEBUG][       Thread-258362][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 14:43:50,964 [DEBUG][       Thread-258362][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 14:43:50,978 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 14:43:50,979 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 14:43:50,980 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 14:43:50,983 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 14:43:50,988 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 14:43:50,990 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 14:43:50,991 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 14:43:50,991 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 14:43:50,992 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.530145 -999.00  +13.80  26.42     35   -1.30 1 1 1 1 1   887    0 15.31 22.95 ----- 22.1 26.4 41.8 27.7 17.7 -30.9 16.6 -32.1 17.2 -31.0 18.5 -29.4
2025-06-13 14:43:50,992 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 14:43:50,992 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 14:43:50,992 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.530145
2025-06-13 14:43:50,992 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 14:43:50,993 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 14:43:50,993 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 14:43:50,993 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 14:43:50,993 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 14:43:50,993 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T14:43:28', tmtdew=17.25, humidity=30.15, cloud=0.0, wind=16.27, temperature=14.05, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T12:43:24.528', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 14:43:50,994 [DEBUG][       Thread-258362][   transport.py][1871] : EOF in transport thread
2025-06-13 14:43:51,077 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 14:43:51,086 [DEBUG][       Thread-258365][   transport.py][1871] : starting thread (client mode): 0x863ef340
2025-06-13 14:43:51,086 [DEBUG][       Thread-258365][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 14:43:51,101 [DEBUG][       Thread-258365][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 14:43:51,101 [ INFO][       Thread-258365][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 14:43:51,109 [DEBUG][       Thread-258365][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 14:43:51,109 [DEBUG][       Thread-258365][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 14:43:51,110 [DEBUG][       Thread-258365][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 14:43:51,110 [DEBUG][       Thread-258365][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:43:51,110 [DEBUG][       Thread-258365][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:43:51,110 [DEBUG][       Thread-258365][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:43:51,110 [DEBUG][       Thread-258365][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:43:51,110 [DEBUG][       Thread-258365][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 14:43:51,110 [DEBUG][       Thread-258365][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 14:43:51,110 [DEBUG][       Thread-258365][   transport.py][1871] : client lang: <none>
2025-06-13 14:43:51,110 [DEBUG][       Thread-258365][   transport.py][1871] : server lang: <none>
2025-06-13 14:43:51,110 [DEBUG][       Thread-258365][   transport.py][1871] : kex follows: False
2025-06-13 14:43:51,110 [DEBUG][       Thread-258365][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 14:43:51,110 [DEBUG][       Thread-258365][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 14:43:51,110 [DEBUG][       Thread-258365][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 14:43:51,110 [DEBUG][       Thread-258365][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 14:43:51,110 [DEBUG][       Thread-258365][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 14:43:51,110 [DEBUG][       Thread-258365][   transport.py][1871] : Compression: none
2025-06-13 14:43:51,110 [DEBUG][       Thread-258365][   transport.py][1871] : === End of kex handshake ===
2025-06-13 14:43:51,167 [DEBUG][       Thread-258365][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 14:43:51,167 [DEBUG][       Thread-258365][   transport.py][1871] : Switch to new keys ...
2025-06-13 14:43:51,168 [DEBUG][       Thread-258365][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 14:43:51,168 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 14:43:51,169 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 14:43:51,223 [DEBUG][       Thread-258365][   transport.py][1871] : userauth is OK
2025-06-13 14:43:51,223 [DEBUG][       Thread-258365][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 14:43:51,223 [DEBUG][       Thread-258365][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 14:43:51,223 [DEBUG][       Thread-258365][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 14:43:51,223 [DEBUG][       Thread-258365][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 14:43:51,242 [ INFO][       Thread-258365][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 14:43:51,242 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 14:43:51,243 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 14:43:52,266 [DEBUG][       Thread-258365][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 14:43:52,267 [DEBUG][       Thread-258365][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 14:43:52,316 [DEBUG][       Thread-258365][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 14:43:52,316 [DEBUG][       Thread-258365][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 14:43:52,325 [DEBUG][       Thread-258365][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 14:43:52,334 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 14:43:52,335 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 14:43:52,343 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 14:43:52,352 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 14:43:52,353 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 14:43:52,353 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 14:43:52,361 [DEBUG][       Thread-258365][   transport.py][1871] : EOF in transport thread
2025-06-13 14:43:53,660 [DEBUG][Thread-258367 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:43:58,427 [DEBUG][Thread-258368 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:43:59,508 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:43:59,509 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:44:02,360 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 14:44:02,360 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 14:44:02,360 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 14:44:02,361 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 14:44:02,678 [DEBUG][Thread-258369 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:44:02,833 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 14, 43, 28), 17.25, 30.15, 0.0, 16.27, 14.05, 0, 0, 0, 2, 0, 0),)
2025-06-13 14:44:02,833 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 14:43:28
2025-06-13 14:44:02,919 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 14:44:02,925 [DEBUG][       Thread-258370][   transport.py][1871] : starting thread (client mode): 0x863508b0
2025-06-13 14:44:02,925 [DEBUG][       Thread-258370][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 14:44:02,945 [DEBUG][       Thread-258370][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 14:44:02,946 [ INFO][       Thread-258370][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 14:44:02,949 [DEBUG][       Thread-258370][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 14:44:02,949 [DEBUG][       Thread-258370][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 14:44:02,949 [DEBUG][       Thread-258370][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 14:44:02,949 [DEBUG][       Thread-258370][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:44:02,949 [DEBUG][       Thread-258370][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:44:02,949 [DEBUG][       Thread-258370][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:44:02,949 [DEBUG][       Thread-258370][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:44:02,949 [DEBUG][       Thread-258370][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 14:44:02,949 [DEBUG][       Thread-258370][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 14:44:02,949 [DEBUG][       Thread-258370][   transport.py][1871] : client lang: <none>
2025-06-13 14:44:02,949 [DEBUG][       Thread-258370][   transport.py][1871] : server lang: <none>
2025-06-13 14:44:02,949 [DEBUG][       Thread-258370][   transport.py][1871] : kex follows: False
2025-06-13 14:44:02,949 [DEBUG][       Thread-258370][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 14:44:02,949 [DEBUG][       Thread-258370][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 14:44:02,949 [DEBUG][       Thread-258370][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 14:44:02,949 [DEBUG][       Thread-258370][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 14:44:02,949 [DEBUG][       Thread-258370][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 14:44:02,949 [DEBUG][       Thread-258370][   transport.py][1871] : Compression: none
2025-06-13 14:44:02,949 [DEBUG][       Thread-258370][   transport.py][1871] : === End of kex handshake ===
2025-06-13 14:44:02,966 [DEBUG][       Thread-258370][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 14:44:02,966 [DEBUG][       Thread-258370][   transport.py][1871] : Switch to new keys ...
2025-06-13 14:44:02,966 [DEBUG][       Thread-258370][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 14:44:02,966 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 14:44:02,966 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 14:44:02,967 [DEBUG][       Thread-258370][   transport.py][1871] : userauth is OK
2025-06-13 14:44:02,979 [ INFO][       Thread-258370][   transport.py][1871] : Authentication (password) successful!
2025-06-13 14:44:02,979 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 14:44:03,131 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:44:03,131 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:44:03,603 [DEBUG][       Thread-258370][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 14:44:03,603 [DEBUG][       Thread-258370][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 14:44:03,644 [DEBUG][       Thread-258370][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 14:44:03,645 [DEBUG][       Thread-258370][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 14:44:03,647 [DEBUG][       Thread-258370][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 14:44:03,660 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 14:44:03,660 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 14:44:03,661 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 14:44:03,662 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 14:44:03,666 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 14:44:03,667 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 14:44:03,667 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 14:44:03,667 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 14:44:03,667 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.530145 -999.00  +13.80  26.42     35   -1.30 1 1 1 1 1   887    0 15.31 22.95 ----- 22.1 26.4 41.8 27.7 17.7 -30.9 16.6 -32.1 17.2 -31.0 18.5 -29.4
2025-06-13 14:44:03,667 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 14:44:03,667 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 14:44:03,667 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.530145
2025-06-13 14:44:03,667 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 14:44:03,667 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 14:44:03,667 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 14:44:03,667 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 14:44:03,667 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 14:44:03,667 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T14:43:28', tmtdew=17.25, humidity=30.15, cloud=0.0, wind=16.27, temperature=14.05, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T12:43:24.528', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 14:44:03,668 [DEBUG][       Thread-258370][   transport.py][1871] : EOF in transport thread
2025-06-13 14:44:03,739 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 14:44:03,750 [DEBUG][       Thread-258373][   transport.py][1871] : starting thread (client mode): 0x863c8250
2025-06-13 14:44:03,750 [DEBUG][       Thread-258373][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 14:44:03,765 [DEBUG][       Thread-258373][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 14:44:03,765 [ INFO][       Thread-258373][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 14:44:03,773 [DEBUG][       Thread-258373][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 14:44:03,773 [DEBUG][       Thread-258373][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 14:44:03,773 [DEBUG][       Thread-258373][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 14:44:03,773 [DEBUG][       Thread-258373][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:44:03,773 [DEBUG][       Thread-258373][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:44:03,773 [DEBUG][       Thread-258373][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:44:03,773 [DEBUG][       Thread-258373][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:44:03,773 [DEBUG][       Thread-258373][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 14:44:03,773 [DEBUG][       Thread-258373][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 14:44:03,773 [DEBUG][       Thread-258373][   transport.py][1871] : client lang: <none>
2025-06-13 14:44:03,773 [DEBUG][       Thread-258373][   transport.py][1871] : server lang: <none>
2025-06-13 14:44:03,773 [DEBUG][       Thread-258373][   transport.py][1871] : kex follows: False
2025-06-13 14:44:03,773 [DEBUG][       Thread-258373][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 14:44:03,773 [DEBUG][       Thread-258373][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 14:44:03,773 [DEBUG][       Thread-258373][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 14:44:03,773 [DEBUG][       Thread-258373][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 14:44:03,773 [DEBUG][       Thread-258373][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 14:44:03,773 [DEBUG][       Thread-258373][   transport.py][1871] : Compression: none
2025-06-13 14:44:03,773 [DEBUG][       Thread-258373][   transport.py][1871] : === End of kex handshake ===
2025-06-13 14:44:03,829 [DEBUG][       Thread-258373][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 14:44:03,829 [DEBUG][       Thread-258373][   transport.py][1871] : Switch to new keys ...
2025-06-13 14:44:03,829 [DEBUG][       Thread-258373][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 14:44:03,829 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 14:44:03,830 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 14:44:03,890 [DEBUG][       Thread-258373][   transport.py][1871] : userauth is OK
2025-06-13 14:44:03,890 [DEBUG][       Thread-258373][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 14:44:03,890 [DEBUG][       Thread-258373][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 14:44:03,891 [DEBUG][       Thread-258373][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 14:44:03,891 [DEBUG][       Thread-258373][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 14:44:03,904 [ INFO][       Thread-258373][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 14:44:03,904 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 14:44:03,904 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 14:44:04,948 [DEBUG][       Thread-258373][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 14:44:04,949 [DEBUG][       Thread-258373][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 14:44:05,000 [DEBUG][       Thread-258373][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 14:44:05,000 [DEBUG][       Thread-258373][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 14:44:05,010 [DEBUG][       Thread-258373][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 14:44:05,019 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 14:44:05,019 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 14:44:05,028 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 14:44:05,038 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 14:44:05,038 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 14:44:05,039 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 14:44:05,047 [DEBUG][       Thread-258373][   transport.py][1871] : EOF in transport thread
2025-06-13 14:44:11,703 [DEBUG][Thread-258375 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:44:15,049 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 14:44:15,050 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 14:44:15,050 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 14:44:15,053 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 14:44:15,509 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 14, 43, 28), 17.25, 30.15, 0.0, 16.27, 14.05, 0, 0, 0, 2, 0, 0),)
2025-06-13 14:44:15,509 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 14:43:28
2025-06-13 14:44:15,590 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 14:44:15,595 [DEBUG][       Thread-258376][   transport.py][1871] : starting thread (client mode): 0x8636bd00
2025-06-13 14:44:15,595 [DEBUG][       Thread-258376][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 14:44:15,616 [DEBUG][       Thread-258376][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 14:44:15,616 [ INFO][       Thread-258376][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 14:44:15,619 [DEBUG][       Thread-258376][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 14:44:15,619 [DEBUG][       Thread-258376][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 14:44:15,619 [DEBUG][       Thread-258376][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 14:44:15,619 [DEBUG][       Thread-258376][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:44:15,619 [DEBUG][       Thread-258376][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:44:15,619 [DEBUG][       Thread-258376][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:44:15,619 [DEBUG][       Thread-258376][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:44:15,619 [DEBUG][       Thread-258376][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 14:44:15,619 [DEBUG][       Thread-258376][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 14:44:15,619 [DEBUG][       Thread-258376][   transport.py][1871] : client lang: <none>
2025-06-13 14:44:15,619 [DEBUG][       Thread-258376][   transport.py][1871] : server lang: <none>
2025-06-13 14:44:15,619 [DEBUG][       Thread-258376][   transport.py][1871] : kex follows: False
2025-06-13 14:44:15,619 [DEBUG][       Thread-258376][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 14:44:15,619 [DEBUG][       Thread-258376][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 14:44:15,620 [DEBUG][       Thread-258376][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 14:44:15,620 [DEBUG][       Thread-258376][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 14:44:15,620 [DEBUG][       Thread-258376][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 14:44:15,620 [DEBUG][       Thread-258376][   transport.py][1871] : Compression: none
2025-06-13 14:44:15,620 [DEBUG][       Thread-258376][   transport.py][1871] : === End of kex handshake ===
2025-06-13 14:44:15,637 [DEBUG][       Thread-258376][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 14:44:15,637 [DEBUG][       Thread-258376][   transport.py][1871] : Switch to new keys ...
2025-06-13 14:44:15,638 [DEBUG][       Thread-258376][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 14:44:15,638 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 14:44:15,638 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 14:44:15,639 [DEBUG][       Thread-258376][   transport.py][1871] : userauth is OK
2025-06-13 14:44:15,653 [ INFO][       Thread-258376][   transport.py][1871] : Authentication (password) successful!
2025-06-13 14:44:15,653 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 14:44:16,248 [DEBUG][       Thread-258376][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 14:44:16,248 [DEBUG][       Thread-258376][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 14:44:16,289 [DEBUG][       Thread-258376][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 14:44:16,289 [DEBUG][       Thread-258376][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 14:44:16,293 [DEBUG][       Thread-258376][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 14:44:16,304 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 14:44:16,304 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 14:44:16,306 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 14:44:16,307 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 14:44:16,312 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 14:44:16,314 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 14:44:16,314 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 14:44:16,314 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 14:44:16,315 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.530492 -999.00  +13.80  19.30     35   -1.20 1 1 1 1 1   887    0 15.49 23.35 ----- 20.7 19.3 43.8 31.5 17.7 -31.6 16.6 -31.9 17.2 -30.1 18.5 -28.5
2025-06-13 14:44:16,315 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 14:44:16,315 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 14:44:16,315 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.530492
2025-06-13 14:44:16,315 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 14:44:16,316 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 14:44:16,316 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 14:44:16,316 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 14:44:16,316 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 14:44:16,316 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T14:43:28', tmtdew=17.25, humidity=30.15, cloud=0.0, wind=16.27, temperature=14.05, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T12:43:54.509', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 14:44:16,317 [DEBUG][       Thread-258376][   transport.py][1871] : EOF in transport thread
2025-06-13 14:44:16,399 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 14:44:16,412 [DEBUG][       Thread-258379][   transport.py][1871] : starting thread (client mode): 0x86739330
2025-06-13 14:44:16,412 [DEBUG][       Thread-258379][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 14:44:16,428 [DEBUG][       Thread-258379][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 14:44:16,428 [ INFO][       Thread-258379][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 14:44:16,436 [DEBUG][       Thread-258379][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 14:44:16,436 [DEBUG][       Thread-258379][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 14:44:16,436 [DEBUG][       Thread-258379][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 14:44:16,436 [DEBUG][       Thread-258379][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:44:16,436 [DEBUG][       Thread-258379][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:44:16,436 [DEBUG][       Thread-258379][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:44:16,436 [DEBUG][       Thread-258379][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:44:16,436 [DEBUG][       Thread-258379][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 14:44:16,436 [DEBUG][       Thread-258379][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 14:44:16,436 [DEBUG][       Thread-258379][   transport.py][1871] : client lang: <none>
2025-06-13 14:44:16,436 [DEBUG][       Thread-258379][   transport.py][1871] : server lang: <none>
2025-06-13 14:44:16,436 [DEBUG][       Thread-258379][   transport.py][1871] : kex follows: False
2025-06-13 14:44:16,436 [DEBUG][       Thread-258379][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 14:44:16,436 [DEBUG][       Thread-258379][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 14:44:16,436 [DEBUG][       Thread-258379][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 14:44:16,437 [DEBUG][       Thread-258379][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 14:44:16,437 [DEBUG][       Thread-258379][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 14:44:16,437 [DEBUG][       Thread-258379][   transport.py][1871] : Compression: none
2025-06-13 14:44:16,437 [DEBUG][       Thread-258379][   transport.py][1871] : === End of kex handshake ===
2025-06-13 14:44:16,496 [DEBUG][       Thread-258379][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 14:44:16,496 [DEBUG][       Thread-258379][   transport.py][1871] : Switch to new keys ...
2025-06-13 14:44:16,497 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 14:44:16,498 [DEBUG][       Thread-258379][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 14:44:16,498 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 14:44:16,555 [DEBUG][       Thread-258379][   transport.py][1871] : userauth is OK
2025-06-13 14:44:16,555 [DEBUG][       Thread-258379][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 14:44:16,555 [DEBUG][       Thread-258379][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 14:44:16,555 [DEBUG][       Thread-258379][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 14:44:16,555 [DEBUG][       Thread-258379][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 14:44:16,580 [ INFO][       Thread-258379][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 14:44:16,580 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 14:44:16,580 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 14:44:17,590 [DEBUG][       Thread-258379][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 14:44:17,590 [DEBUG][       Thread-258379][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 14:44:17,639 [DEBUG][       Thread-258379][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 14:44:17,639 [DEBUG][       Thread-258379][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 14:44:17,648 [DEBUG][       Thread-258379][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 14:44:17,656 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 14:44:17,656 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 14:44:17,664 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 14:44:17,672 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 14:44:17,672 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 14:44:17,672 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 14:44:17,680 [DEBUG][       Thread-258379][   transport.py][1871] : EOF in transport thread
2025-06-13 14:44:18,938 [DEBUG][Thread-258381 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:44:20,723 [DEBUG][Thread-258382 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:44:27,682 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 14:44:27,683 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 14:44:27,683 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 14:44:27,686 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 14:44:28,145 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 14, 43, 28), 17.25, 30.15, 0.0, 16.27, 14.05, 0, 0, 0, 2, 0, 0),)
2025-06-13 14:44:28,145 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 14:43:28
2025-06-13 14:44:28,226 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 14:44:28,231 [DEBUG][       Thread-258383][   transport.py][1871] : starting thread (client mode): 0x86351f90
2025-06-13 14:44:28,231 [DEBUG][       Thread-258383][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 14:44:28,253 [DEBUG][       Thread-258383][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 14:44:28,253 [ INFO][       Thread-258383][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 14:44:28,256 [DEBUG][       Thread-258383][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 14:44:28,257 [DEBUG][       Thread-258383][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 14:44:28,257 [DEBUG][       Thread-258383][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 14:44:28,257 [DEBUG][       Thread-258383][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:44:28,257 [DEBUG][       Thread-258383][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:44:28,257 [DEBUG][       Thread-258383][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:44:28,257 [DEBUG][       Thread-258383][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:44:28,257 [DEBUG][       Thread-258383][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 14:44:28,257 [DEBUG][       Thread-258383][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 14:44:28,257 [DEBUG][       Thread-258383][   transport.py][1871] : client lang: <none>
2025-06-13 14:44:28,257 [DEBUG][       Thread-258383][   transport.py][1871] : server lang: <none>
2025-06-13 14:44:28,257 [DEBUG][       Thread-258383][   transport.py][1871] : kex follows: False
2025-06-13 14:44:28,257 [DEBUG][       Thread-258383][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 14:44:28,257 [DEBUG][       Thread-258383][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 14:44:28,257 [DEBUG][       Thread-258383][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 14:44:28,257 [DEBUG][       Thread-258383][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 14:44:28,257 [DEBUG][       Thread-258383][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 14:44:28,257 [DEBUG][       Thread-258383][   transport.py][1871] : Compression: none
2025-06-13 14:44:28,257 [DEBUG][       Thread-258383][   transport.py][1871] : === End of kex handshake ===
2025-06-13 14:44:28,273 [DEBUG][       Thread-258383][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 14:44:28,274 [DEBUG][       Thread-258383][   transport.py][1871] : Switch to new keys ...
2025-06-13 14:44:28,274 [DEBUG][       Thread-258383][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 14:44:28,274 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 14:44:28,275 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 14:44:28,276 [DEBUG][       Thread-258383][   transport.py][1871] : userauth is OK
2025-06-13 14:44:28,300 [ INFO][       Thread-258383][   transport.py][1871] : Authentication (password) successful!
2025-06-13 14:44:28,301 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 14:44:28,981 [DEBUG][       Thread-258383][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 14:44:28,981 [DEBUG][       Thread-258383][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 14:44:29,025 [DEBUG][       Thread-258383][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 14:44:29,025 [DEBUG][       Thread-258383][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 14:44:29,028 [DEBUG][       Thread-258383][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 14:44:29,035 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 14:44:29,035 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 14:44:29,037 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 14:44:29,039 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 14:44:29,044 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 14:44:29,046 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 14:44:29,046 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 14:44:29,047 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 14:44:29,047 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.530492 -999.00  +13.80  19.30     35   -1.20 1 1 1 1 1   887    0 15.49 23.35 ----- 20.7 19.3 43.8 31.5 17.7 -31.6 16.6 -31.9 17.2 -30.1 18.5 -28.5
2025-06-13 14:44:29,047 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 14:44:29,047 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 14:44:29,047 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.530492
2025-06-13 14:44:29,048 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 14:44:29,048 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 14:44:29,048 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 14:44:29,048 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 14:44:29,049 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 14:44:29,049 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T14:43:28', tmtdew=17.25, humidity=30.15, cloud=0.0, wind=16.27, temperature=14.05, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T12:43:54.509', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 14:44:29,050 [DEBUG][       Thread-258383][   transport.py][1871] : EOF in transport thread
2025-06-13 14:44:29,132 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 14:44:29,148 [DEBUG][       Thread-258386][   transport.py][1871] : starting thread (client mode): 0x86893ca0
2025-06-13 14:44:29,148 [DEBUG][       Thread-258386][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 14:44:29,165 [DEBUG][       Thread-258386][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 14:44:29,165 [ INFO][       Thread-258386][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 14:44:29,173 [DEBUG][       Thread-258386][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 14:44:29,173 [DEBUG][       Thread-258386][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 14:44:29,173 [DEBUG][       Thread-258386][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 14:44:29,173 [DEBUG][       Thread-258386][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:44:29,174 [DEBUG][       Thread-258386][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:44:29,174 [DEBUG][       Thread-258386][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:44:29,174 [DEBUG][       Thread-258386][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:44:29,174 [DEBUG][       Thread-258386][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 14:44:29,174 [DEBUG][       Thread-258386][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 14:44:29,174 [DEBUG][       Thread-258386][   transport.py][1871] : client lang: <none>
2025-06-13 14:44:29,174 [DEBUG][       Thread-258386][   transport.py][1871] : server lang: <none>
2025-06-13 14:44:29,174 [DEBUG][       Thread-258386][   transport.py][1871] : kex follows: False
2025-06-13 14:44:29,174 [DEBUG][       Thread-258386][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 14:44:29,174 [DEBUG][       Thread-258386][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 14:44:29,174 [DEBUG][       Thread-258386][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 14:44:29,174 [DEBUG][       Thread-258386][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 14:44:29,174 [DEBUG][       Thread-258386][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 14:44:29,174 [DEBUG][       Thread-258386][   transport.py][1871] : Compression: none
2025-06-13 14:44:29,174 [DEBUG][       Thread-258386][   transport.py][1871] : === End of kex handshake ===
2025-06-13 14:44:29,233 [DEBUG][       Thread-258386][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 14:44:29,233 [DEBUG][       Thread-258386][   transport.py][1871] : Switch to new keys ...
2025-06-13 14:44:29,234 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 14:44:29,235 [DEBUG][       Thread-258386][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 14:44:29,235 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 14:44:29,296 [DEBUG][       Thread-258386][   transport.py][1871] : userauth is OK
2025-06-13 14:44:29,297 [DEBUG][       Thread-258386][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 14:44:29,297 [DEBUG][       Thread-258386][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 14:44:29,297 [DEBUG][       Thread-258386][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 14:44:29,297 [DEBUG][       Thread-258386][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 14:44:29,323 [ INFO][       Thread-258386][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 14:44:29,323 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 14:44:29,324 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 14:44:29,743 [DEBUG][Thread-258388 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:44:30,411 [DEBUG][       Thread-258386][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 14:44:30,411 [DEBUG][       Thread-258386][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 14:44:30,461 [DEBUG][       Thread-258386][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 14:44:30,461 [DEBUG][       Thread-258386][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 14:44:30,476 [DEBUG][       Thread-258386][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 14:44:30,492 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 14:44:30,492 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 14:44:30,504 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 14:44:30,515 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 14:44:30,515 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 14:44:30,516 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 14:44:30,529 [DEBUG][       Thread-258386][   transport.py][1871] : EOF in transport thread
2025-06-13 14:44:38,761 [DEBUG][Thread-258389 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:44:40,524 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 14:44:40,524 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 14:44:40,524 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 14:44:40,525 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 14:44:41,006 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 14, 44, 31), 17.35, 30.07, 0.0, 18.25, 13.9, 0, 0, 0, 2, 0, 0),)
2025-06-13 14:44:41,006 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 14:44:31
2025-06-13 14:44:41,091 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 14:44:41,095 [DEBUG][       Thread-258390][   transport.py][1871] : starting thread (client mode): 0x84205240
2025-06-13 14:44:41,095 [DEBUG][       Thread-258390][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 14:44:41,115 [DEBUG][       Thread-258390][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 14:44:41,115 [ INFO][       Thread-258390][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 14:44:41,119 [DEBUG][       Thread-258390][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 14:44:41,119 [DEBUG][       Thread-258390][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 14:44:41,119 [DEBUG][       Thread-258390][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 14:44:41,119 [DEBUG][       Thread-258390][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:44:41,119 [DEBUG][       Thread-258390][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:44:41,119 [DEBUG][       Thread-258390][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:44:41,119 [DEBUG][       Thread-258390][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:44:41,119 [DEBUG][       Thread-258390][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 14:44:41,119 [DEBUG][       Thread-258390][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 14:44:41,119 [DEBUG][       Thread-258390][   transport.py][1871] : client lang: <none>
2025-06-13 14:44:41,119 [DEBUG][       Thread-258390][   transport.py][1871] : server lang: <none>
2025-06-13 14:44:41,119 [DEBUG][       Thread-258390][   transport.py][1871] : kex follows: False
2025-06-13 14:44:41,119 [DEBUG][       Thread-258390][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 14:44:41,119 [DEBUG][       Thread-258390][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 14:44:41,119 [DEBUG][       Thread-258390][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 14:44:41,119 [DEBUG][       Thread-258390][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 14:44:41,119 [DEBUG][       Thread-258390][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 14:44:41,119 [DEBUG][       Thread-258390][   transport.py][1871] : Compression: none
2025-06-13 14:44:41,119 [DEBUG][       Thread-258390][   transport.py][1871] : === End of kex handshake ===
2025-06-13 14:44:41,135 [DEBUG][       Thread-258390][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 14:44:41,135 [DEBUG][       Thread-258390][   transport.py][1871] : Switch to new keys ...
2025-06-13 14:44:41,135 [DEBUG][       Thread-258390][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 14:44:41,135 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 14:44:41,135 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 14:44:41,136 [DEBUG][       Thread-258390][   transport.py][1871] : userauth is OK
2025-06-13 14:44:41,160 [ INFO][       Thread-258390][   transport.py][1871] : Authentication (password) successful!
2025-06-13 14:44:41,160 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 14:44:41,830 [DEBUG][       Thread-258390][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 14:44:41,830 [DEBUG][       Thread-258390][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 14:44:41,872 [DEBUG][       Thread-258390][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 14:44:41,873 [DEBUG][       Thread-258390][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 14:44:41,875 [DEBUG][       Thread-258390][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 14:44:41,887 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 14:44:41,887 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 14:44:41,888 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 14:44:41,889 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 14:44:41,893 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 14:44:41,894 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 14:44:41,894 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 14:44:41,894 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 14:44:41,894 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.530492 -999.00  +13.80  19.30     35   -1.20 1 1 1 1 1   887    0 15.49 23.35 ----- 20.7 19.3 43.8 31.5 17.7 -31.6 16.6 -31.9 17.2 -30.1 18.5 -28.5
2025-06-13 14:44:41,894 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 14:44:41,894 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 14:44:41,894 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.530492
2025-06-13 14:44:41,894 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 14:44:41,894 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 14:44:41,894 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 14:44:41,894 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 14:44:41,894 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 14:44:41,894 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T14:44:31', tmtdew=17.35, humidity=30.07, cloud=0.0, wind=18.25, temperature=13.9, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T12:43:54.509', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 14:44:41,895 [DEBUG][       Thread-258390][   transport.py][1871] : EOF in transport thread
2025-06-13 14:44:41,968 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 14:44:41,979 [DEBUG][       Thread-258393][   transport.py][1871] : starting thread (client mode): 0x863eeb60
2025-06-13 14:44:41,979 [DEBUG][       Thread-258393][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 14:44:41,994 [DEBUG][       Thread-258393][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 14:44:41,994 [ INFO][       Thread-258393][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 14:44:42,001 [DEBUG][       Thread-258393][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 14:44:42,001 [DEBUG][       Thread-258393][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 14:44:42,001 [DEBUG][       Thread-258393][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 14:44:42,001 [DEBUG][       Thread-258393][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:44:42,001 [DEBUG][       Thread-258393][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:44:42,001 [DEBUG][       Thread-258393][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:44:42,001 [DEBUG][       Thread-258393][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:44:42,001 [DEBUG][       Thread-258393][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 14:44:42,001 [DEBUG][       Thread-258393][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 14:44:42,001 [DEBUG][       Thread-258393][   transport.py][1871] : client lang: <none>
2025-06-13 14:44:42,001 [DEBUG][       Thread-258393][   transport.py][1871] : server lang: <none>
2025-06-13 14:44:42,001 [DEBUG][       Thread-258393][   transport.py][1871] : kex follows: False
2025-06-13 14:44:42,001 [DEBUG][       Thread-258393][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 14:44:42,001 [DEBUG][       Thread-258393][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 14:44:42,001 [DEBUG][       Thread-258393][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 14:44:42,002 [DEBUG][       Thread-258393][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 14:44:42,002 [DEBUG][       Thread-258393][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 14:44:42,002 [DEBUG][       Thread-258393][   transport.py][1871] : Compression: none
2025-06-13 14:44:42,002 [DEBUG][       Thread-258393][   transport.py][1871] : === End of kex handshake ===
2025-06-13 14:44:42,057 [DEBUG][       Thread-258393][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 14:44:42,057 [DEBUG][       Thread-258393][   transport.py][1871] : Switch to new keys ...
2025-06-13 14:44:42,057 [DEBUG][       Thread-258393][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 14:44:42,057 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 14:44:42,057 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 14:44:42,114 [DEBUG][       Thread-258393][   transport.py][1871] : userauth is OK
2025-06-13 14:44:42,114 [DEBUG][       Thread-258393][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 14:44:42,114 [DEBUG][       Thread-258393][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 14:44:42,114 [DEBUG][       Thread-258393][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 14:44:42,114 [DEBUG][       Thread-258393][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 14:44:42,128 [ INFO][       Thread-258393][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 14:44:42,128 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 14:44:42,128 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 14:44:43,145 [DEBUG][       Thread-258393][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 14:44:43,145 [DEBUG][       Thread-258393][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 14:44:43,196 [DEBUG][       Thread-258393][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 14:44:43,196 [DEBUG][       Thread-258393][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 14:44:43,205 [DEBUG][       Thread-258393][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 14:44:43,215 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 14:44:43,215 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 14:44:43,229 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 14:44:43,242 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 14:44:43,242 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 14:44:43,243 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 14:44:43,251 [DEBUG][       Thread-258393][   transport.py][1871] : EOF in transport thread
2025-06-13 14:44:47,779 [DEBUG][Thread-258395 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:44:53,254 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 14:44:53,254 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 14:44:53,254 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 14:44:53,258 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 14:44:53,731 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 14, 44, 31), 17.35, 30.07, 0.0, 18.25, 13.9, 0, 0, 0, 2, 0, 0),)
2025-06-13 14:44:53,731 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 14:44:31
2025-06-13 14:44:53,814 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 14:44:53,819 [DEBUG][       Thread-258396][   transport.py][1871] : starting thread (client mode): 0x86368ee0
2025-06-13 14:44:53,819 [DEBUG][       Thread-258396][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 14:44:53,841 [DEBUG][       Thread-258396][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 14:44:53,841 [ INFO][       Thread-258396][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 14:44:53,845 [DEBUG][       Thread-258396][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 14:44:53,845 [DEBUG][       Thread-258396][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 14:44:53,845 [DEBUG][       Thread-258396][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 14:44:53,845 [DEBUG][       Thread-258396][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:44:53,845 [DEBUG][       Thread-258396][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:44:53,845 [DEBUG][       Thread-258396][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:44:53,845 [DEBUG][       Thread-258396][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:44:53,845 [DEBUG][       Thread-258396][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 14:44:53,845 [DEBUG][       Thread-258396][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 14:44:53,845 [DEBUG][       Thread-258396][   transport.py][1871] : client lang: <none>
2025-06-13 14:44:53,845 [DEBUG][       Thread-258396][   transport.py][1871] : server lang: <none>
2025-06-13 14:44:53,845 [DEBUG][       Thread-258396][   transport.py][1871] : kex follows: False
2025-06-13 14:44:53,846 [DEBUG][       Thread-258396][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 14:44:53,846 [DEBUG][       Thread-258396][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 14:44:53,846 [DEBUG][       Thread-258396][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 14:44:53,846 [DEBUG][       Thread-258396][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 14:44:53,846 [DEBUG][       Thread-258396][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 14:44:53,846 [DEBUG][       Thread-258396][   transport.py][1871] : Compression: none
2025-06-13 14:44:53,846 [DEBUG][       Thread-258396][   transport.py][1871] : === End of kex handshake ===
2025-06-13 14:44:53,863 [DEBUG][       Thread-258396][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 14:44:53,863 [DEBUG][       Thread-258396][   transport.py][1871] : Switch to new keys ...
2025-06-13 14:44:53,864 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 14:44:53,864 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 14:44:53,864 [DEBUG][       Thread-258396][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 14:44:53,865 [DEBUG][       Thread-258396][   transport.py][1871] : userauth is OK
2025-06-13 14:44:53,892 [ INFO][       Thread-258396][   transport.py][1871] : Authentication (password) successful!
2025-06-13 14:44:53,892 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 14:44:54,567 [DEBUG][       Thread-258396][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 14:44:54,567 [DEBUG][       Thread-258396][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 14:44:54,609 [DEBUG][       Thread-258396][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 14:44:54,609 [DEBUG][       Thread-258396][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 14:44:54,612 [DEBUG][       Thread-258396][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 14:44:54,624 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 14:44:54,625 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 14:44:54,627 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 14:44:54,629 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 14:44:54,634 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 14:44:54,636 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 14:44:54,637 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 14:44:54,637 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 14:44:54,637 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.530839 -999.00  +13.80  22.93     34   -1.40 1 1 1 1 1   887    0 15.52 24.15 ----- 22.1 22.9 48.4 25.7 17.7 -30.8 16.7 -31.9 17.3 -30.4 18.5 -29.3
2025-06-13 14:44:54,637 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 14:44:54,638 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 14:44:54,638 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.530839
2025-06-13 14:44:54,638 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 14:44:54,639 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 14:44:54,639 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 14:44:54,639 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 14:44:54,639 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 14:44:54,639 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T14:44:31', tmtdew=17.35, humidity=30.07, cloud=0.0, wind=18.25, temperature=13.9, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T12:44:24.490', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 14:44:54,639 [DEBUG][       Thread-258396][   transport.py][1871] : EOF in transport thread
2025-06-13 14:44:54,722 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 14:44:54,732 [DEBUG][       Thread-258399][   transport.py][1871] : starting thread (client mode): 0x86352260
2025-06-13 14:44:54,732 [DEBUG][       Thread-258399][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 14:44:54,747 [DEBUG][       Thread-258399][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 14:44:54,747 [ INFO][       Thread-258399][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 14:44:54,754 [DEBUG][       Thread-258399][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 14:44:54,754 [DEBUG][       Thread-258399][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 14:44:54,755 [DEBUG][       Thread-258399][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 14:44:54,755 [DEBUG][       Thread-258399][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:44:54,755 [DEBUG][       Thread-258399][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:44:54,755 [DEBUG][       Thread-258399][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:44:54,755 [DEBUG][       Thread-258399][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:44:54,755 [DEBUG][       Thread-258399][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 14:44:54,755 [DEBUG][       Thread-258399][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 14:44:54,755 [DEBUG][       Thread-258399][   transport.py][1871] : client lang: <none>
2025-06-13 14:44:54,755 [DEBUG][       Thread-258399][   transport.py][1871] : server lang: <none>
2025-06-13 14:44:54,755 [DEBUG][       Thread-258399][   transport.py][1871] : kex follows: False
2025-06-13 14:44:54,755 [DEBUG][       Thread-258399][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 14:44:54,755 [DEBUG][       Thread-258399][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 14:44:54,755 [DEBUG][       Thread-258399][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 14:44:54,755 [DEBUG][       Thread-258399][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 14:44:54,755 [DEBUG][       Thread-258399][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 14:44:54,755 [DEBUG][       Thread-258399][   transport.py][1871] : Compression: none
2025-06-13 14:44:54,755 [DEBUG][       Thread-258399][   transport.py][1871] : === End of kex handshake ===
2025-06-13 14:44:54,811 [DEBUG][       Thread-258399][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 14:44:54,811 [DEBUG][       Thread-258399][   transport.py][1871] : Switch to new keys ...
2025-06-13 14:44:54,812 [DEBUG][       Thread-258399][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 14:44:54,812 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 14:44:54,813 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 14:44:54,867 [DEBUG][       Thread-258399][   transport.py][1871] : userauth is OK
2025-06-13 14:44:54,867 [DEBUG][       Thread-258399][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 14:44:54,867 [DEBUG][       Thread-258399][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 14:44:54,867 [DEBUG][       Thread-258399][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 14:44:54,868 [DEBUG][       Thread-258399][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 14:44:54,894 [ INFO][       Thread-258399][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 14:44:54,895 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 14:44:54,895 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 14:44:55,900 [DEBUG][       Thread-258399][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 14:44:55,901 [DEBUG][       Thread-258399][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 14:44:55,952 [DEBUG][       Thread-258399][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 14:44:55,952 [DEBUG][       Thread-258399][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 14:44:55,961 [DEBUG][       Thread-258399][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 14:44:55,970 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 14:44:55,970 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 14:44:55,979 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 14:44:55,988 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 14:44:55,988 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 14:44:55,989 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 14:44:55,996 [DEBUG][       Thread-258399][   transport.py][1871] : EOF in transport thread
2025-06-13 14:44:56,813 [DEBUG][Thread-258401 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:44:59,585 [DEBUG][Thread-258402 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:45:00,644 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:45:00,646 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:45:03,268 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:45:03,270 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:45:05,833 [DEBUG][Thread-258403 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:45:05,992 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 14:45:05,992 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 14:45:05,992 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 14:45:05,995 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 14:45:06,457 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 14, 45, 3), 17.14, 30.58, 0.0, 18.37, 13.9, 0, 0, 0, 2, 0, 0),)
2025-06-13 14:45:06,457 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 14:45:03
2025-06-13 14:45:06,539 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 14:45:06,543 [DEBUG][       Thread-258404][   transport.py][1871] : starting thread (client mode): 0x84205000
2025-06-13 14:45:06,543 [DEBUG][       Thread-258404][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 14:45:06,564 [DEBUG][       Thread-258404][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 14:45:06,564 [ INFO][       Thread-258404][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 14:45:06,568 [DEBUG][       Thread-258404][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 14:45:06,568 [DEBUG][       Thread-258404][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 14:45:06,568 [DEBUG][       Thread-258404][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 14:45:06,568 [DEBUG][       Thread-258404][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:45:06,568 [DEBUG][       Thread-258404][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:45:06,568 [DEBUG][       Thread-258404][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:45:06,568 [DEBUG][       Thread-258404][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:45:06,568 [DEBUG][       Thread-258404][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 14:45:06,568 [DEBUG][       Thread-258404][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 14:45:06,568 [DEBUG][       Thread-258404][   transport.py][1871] : client lang: <none>
2025-06-13 14:45:06,568 [DEBUG][       Thread-258404][   transport.py][1871] : server lang: <none>
2025-06-13 14:45:06,568 [DEBUG][       Thread-258404][   transport.py][1871] : kex follows: False
2025-06-13 14:45:06,568 [DEBUG][       Thread-258404][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 14:45:06,568 [DEBUG][       Thread-258404][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 14:45:06,568 [DEBUG][       Thread-258404][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 14:45:06,568 [DEBUG][       Thread-258404][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 14:45:06,568 [DEBUG][       Thread-258404][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 14:45:06,568 [DEBUG][       Thread-258404][   transport.py][1871] : Compression: none
2025-06-13 14:45:06,568 [DEBUG][       Thread-258404][   transport.py][1871] : === End of kex handshake ===
2025-06-13 14:45:06,584 [DEBUG][       Thread-258404][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 14:45:06,585 [DEBUG][       Thread-258404][   transport.py][1871] : Switch to new keys ...
2025-06-13 14:45:06,586 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 14:45:06,586 [DEBUG][       Thread-258404][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 14:45:06,586 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 14:45:06,588 [DEBUG][       Thread-258404][   transport.py][1871] : userauth is OK
2025-06-13 14:45:06,612 [ INFO][       Thread-258404][   transport.py][1871] : Authentication (password) successful!
2025-06-13 14:45:06,613 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 14:45:12,642 [DEBUG][       Thread-258404][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 14:45:12,642 [DEBUG][       Thread-258404][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 14:45:12,685 [DEBUG][       Thread-258404][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 14:45:12,685 [DEBUG][       Thread-258404][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 14:45:12,688 [DEBUG][       Thread-258404][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 14:45:12,841 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 14:45:12,841 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 14:45:12,843 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 14:45:12,845 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 14:45:12,850 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 14:45:12,851 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 14:45:12,852 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 14:45:12,852 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 14:45:12,852 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.530839 -999.00  +13.80  22.93     34   -1.40 1 1 1 1 1   887    0 15.52 24.15 ----- 22.1 22.9 48.4 25.7 17.7 -30.8 16.7 -31.9 17.3 -30.4 18.5 -29.3
2025-06-13 14:45:12,853 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 14:45:12,853 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 14:45:12,853 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.530839
2025-06-13 14:45:12,853 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 14:45:12,854 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 14:45:12,854 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 14:45:12,854 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 14:45:12,854 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 14:45:12,854 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T14:45:03', tmtdew=17.14, humidity=30.58, cloud=0.0, wind=18.37, temperature=13.9, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T12:44:24.490', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 14:45:12,855 [DEBUG][       Thread-258404][   transport.py][1871] : EOF in transport thread
2025-06-13 14:45:12,939 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 14:45:12,951 [DEBUG][       Thread-258407][   transport.py][1871] : starting thread (client mode): 0x86893fd0
2025-06-13 14:45:12,951 [DEBUG][       Thread-258407][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 14:45:12,966 [DEBUG][       Thread-258407][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 14:45:12,966 [ INFO][       Thread-258407][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 14:45:12,973 [DEBUG][       Thread-258407][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 14:45:12,973 [DEBUG][       Thread-258407][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 14:45:12,973 [DEBUG][       Thread-258407][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 14:45:12,973 [DEBUG][       Thread-258407][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:45:12,973 [DEBUG][       Thread-258407][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:45:12,973 [DEBUG][       Thread-258407][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:45:12,973 [DEBUG][       Thread-258407][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:45:12,974 [DEBUG][       Thread-258407][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 14:45:12,974 [DEBUG][       Thread-258407][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 14:45:12,974 [DEBUG][       Thread-258407][   transport.py][1871] : client lang: <none>
2025-06-13 14:45:12,974 [DEBUG][       Thread-258407][   transport.py][1871] : server lang: <none>
2025-06-13 14:45:12,974 [DEBUG][       Thread-258407][   transport.py][1871] : kex follows: False
2025-06-13 14:45:12,974 [DEBUG][       Thread-258407][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 14:45:12,974 [DEBUG][       Thread-258407][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 14:45:12,974 [DEBUG][       Thread-258407][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 14:45:12,974 [DEBUG][       Thread-258407][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 14:45:12,974 [DEBUG][       Thread-258407][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 14:45:12,974 [DEBUG][       Thread-258407][   transport.py][1871] : Compression: none
2025-06-13 14:45:12,974 [DEBUG][       Thread-258407][   transport.py][1871] : === End of kex handshake ===
2025-06-13 14:45:13,031 [DEBUG][       Thread-258407][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 14:45:13,031 [DEBUG][       Thread-258407][   transport.py][1871] : Switch to new keys ...
2025-06-13 14:45:13,032 [DEBUG][       Thread-258407][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 14:45:13,032 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 14:45:13,033 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 14:45:13,087 [DEBUG][       Thread-258407][   transport.py][1871] : userauth is OK
2025-06-13 14:45:13,087 [DEBUG][       Thread-258407][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 14:45:13,087 [DEBUG][       Thread-258407][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 14:45:13,087 [DEBUG][       Thread-258407][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 14:45:13,087 [DEBUG][       Thread-258407][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 14:45:13,109 [ INFO][       Thread-258407][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 14:45:13,109 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 14:45:13,109 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 14:45:14,196 [DEBUG][       Thread-258407][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 14:45:14,196 [DEBUG][       Thread-258407][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 14:45:14,248 [DEBUG][       Thread-258407][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 14:45:14,248 [DEBUG][       Thread-258407][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 14:45:14,264 [DEBUG][       Thread-258407][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 14:45:14,273 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 14:45:14,273 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 14:45:14,281 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 14:45:14,290 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 14:45:14,291 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 14:45:14,291 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 14:45:14,299 [DEBUG][       Thread-258407][   transport.py][1871] : EOF in transport thread
2025-06-13 14:45:14,853 [DEBUG][Thread-258409 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:45:18,988 [DEBUG][Thread-258410 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:45:23,880 [DEBUG][Thread-258411 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:45:24,299 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 14:45:24,299 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 14:45:24,299 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 14:45:24,302 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 14:45:24,769 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 14, 45, 3), 17.14, 30.58, 0.0, 18.37, 13.9, 0, 0, 0, 2, 0, 0),)
2025-06-13 14:45:24,769 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 14:45:03
2025-06-13 14:45:24,851 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 14:45:24,858 [DEBUG][       Thread-258412][   transport.py][1871] : starting thread (client mode): 0x84205d80
2025-06-13 14:45:24,858 [DEBUG][       Thread-258412][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 14:45:24,879 [DEBUG][       Thread-258412][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 14:45:24,879 [ INFO][       Thread-258412][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 14:45:24,882 [DEBUG][       Thread-258412][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 14:45:24,882 [DEBUG][       Thread-258412][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 14:45:24,882 [DEBUG][       Thread-258412][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 14:45:24,882 [DEBUG][       Thread-258412][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:45:24,882 [DEBUG][       Thread-258412][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:45:24,882 [DEBUG][       Thread-258412][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:45:24,883 [DEBUG][       Thread-258412][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:45:24,883 [DEBUG][       Thread-258412][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 14:45:24,883 [DEBUG][       Thread-258412][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 14:45:24,883 [DEBUG][       Thread-258412][   transport.py][1871] : client lang: <none>
2025-06-13 14:45:24,883 [DEBUG][       Thread-258412][   transport.py][1871] : server lang: <none>
2025-06-13 14:45:24,883 [DEBUG][       Thread-258412][   transport.py][1871] : kex follows: False
2025-06-13 14:45:24,883 [DEBUG][       Thread-258412][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 14:45:24,883 [DEBUG][       Thread-258412][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 14:45:24,883 [DEBUG][       Thread-258412][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 14:45:24,883 [DEBUG][       Thread-258412][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 14:45:24,883 [DEBUG][       Thread-258412][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 14:45:24,883 [DEBUG][       Thread-258412][   transport.py][1871] : Compression: none
2025-06-13 14:45:24,883 [DEBUG][       Thread-258412][   transport.py][1871] : === End of kex handshake ===
2025-06-13 14:45:24,899 [DEBUG][       Thread-258412][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 14:45:24,899 [DEBUG][       Thread-258412][   transport.py][1871] : Switch to new keys ...
2025-06-13 14:45:24,900 [DEBUG][       Thread-258412][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 14:45:24,900 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 14:45:24,900 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 14:45:24,901 [DEBUG][       Thread-258412][   transport.py][1871] : userauth is OK
2025-06-13 14:45:24,914 [ INFO][       Thread-258412][   transport.py][1871] : Authentication (password) successful!
2025-06-13 14:45:24,915 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 14:45:25,506 [DEBUG][       Thread-258412][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 14:45:25,506 [DEBUG][       Thread-258412][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 14:45:25,549 [DEBUG][       Thread-258412][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 14:45:25,549 [DEBUG][       Thread-258412][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 14:45:25,552 [DEBUG][       Thread-258412][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 14:45:25,564 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 14:45:25,565 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 14:45:25,566 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 14:45:25,568 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 14:45:25,573 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 14:45:25,575 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 14:45:25,575 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 14:45:25,575 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 14:45:25,576 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.531186 -999.00  +13.70  20.47     35   -1.40 1 1 1 1 1   887    0 15.46 23.95 ----- 23.2 20.5 43.0 23.4 17.7 -31.1 16.7 -32.3 17.2 -30.6 18.5 -29.2
2025-06-13 14:45:25,576 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 14:45:25,576 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 14:45:25,576 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.531186
2025-06-13 14:45:25,576 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 14:45:25,577 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 14:45:25,577 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 14:45:25,577 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 14:45:25,577 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 14:45:25,577 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T14:45:03', tmtdew=17.14, humidity=30.58, cloud=0.0, wind=18.37, temperature=13.9, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T12:44:54.470', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 14:45:25,578 [DEBUG][       Thread-258412][   transport.py][1871] : EOF in transport thread
2025-06-13 14:45:25,660 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 14:45:25,670 [DEBUG][       Thread-258415][   transport.py][1871] : starting thread (client mode): 0x863cb490
2025-06-13 14:45:25,670 [DEBUG][       Thread-258415][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 14:45:25,686 [DEBUG][       Thread-258415][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 14:45:25,687 [ INFO][       Thread-258415][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 14:45:25,694 [DEBUG][       Thread-258415][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 14:45:25,694 [DEBUG][       Thread-258415][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 14:45:25,694 [DEBUG][       Thread-258415][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 14:45:25,694 [DEBUG][       Thread-258415][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:45:25,694 [DEBUG][       Thread-258415][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:45:25,694 [DEBUG][       Thread-258415][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:45:25,694 [DEBUG][       Thread-258415][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:45:25,695 [DEBUG][       Thread-258415][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 14:45:25,695 [DEBUG][       Thread-258415][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 14:45:25,695 [DEBUG][       Thread-258415][   transport.py][1871] : client lang: <none>
2025-06-13 14:45:25,695 [DEBUG][       Thread-258415][   transport.py][1871] : server lang: <none>
2025-06-13 14:45:25,695 [DEBUG][       Thread-258415][   transport.py][1871] : kex follows: False
2025-06-13 14:45:25,695 [DEBUG][       Thread-258415][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 14:45:25,695 [DEBUG][       Thread-258415][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 14:45:25,695 [DEBUG][       Thread-258415][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 14:45:25,695 [DEBUG][       Thread-258415][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 14:45:25,695 [DEBUG][       Thread-258415][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 14:45:25,695 [DEBUG][       Thread-258415][   transport.py][1871] : Compression: none
2025-06-13 14:45:25,695 [DEBUG][       Thread-258415][   transport.py][1871] : === End of kex handshake ===
2025-06-13 14:45:25,751 [DEBUG][       Thread-258415][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 14:45:25,751 [DEBUG][       Thread-258415][   transport.py][1871] : Switch to new keys ...
2025-06-13 14:45:25,752 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 14:45:25,752 [DEBUG][       Thread-258415][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 14:45:25,753 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 14:45:25,807 [DEBUG][       Thread-258415][   transport.py][1871] : userauth is OK
2025-06-13 14:45:25,807 [DEBUG][       Thread-258415][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 14:45:25,807 [DEBUG][       Thread-258415][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 14:45:25,808 [DEBUG][       Thread-258415][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 14:45:25,808 [DEBUG][       Thread-258415][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 14:45:25,826 [ INFO][       Thread-258415][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 14:45:25,827 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 14:45:25,827 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 14:45:26,898 [DEBUG][       Thread-258415][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 14:45:26,899 [DEBUG][       Thread-258415][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 14:45:26,948 [DEBUG][       Thread-258415][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 14:45:26,948 [DEBUG][       Thread-258415][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 14:45:26,958 [DEBUG][       Thread-258415][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 14:45:26,967 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 14:45:26,967 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 14:45:26,976 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 14:45:26,985 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 14:45:26,985 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 14:45:26,986 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 14:45:26,994 [DEBUG][       Thread-258415][   transport.py][1871] : EOF in transport thread
2025-06-13 14:45:32,905 [DEBUG][Thread-258417 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:45:36,996 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 14:45:36,996 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 14:45:36,996 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 14:45:36,997 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 14:45:37,492 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 14, 45, 3), 17.14, 30.58, 0.0, 18.37, 13.9, 0, 0, 0, 2, 0, 0),)
2025-06-13 14:45:37,492 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 14:45:03
2025-06-13 14:45:37,578 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 14:45:37,582 [DEBUG][       Thread-258418][   transport.py][1871] : starting thread (client mode): 0x867fd030
2025-06-13 14:45:37,582 [DEBUG][       Thread-258418][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 14:45:37,605 [DEBUG][       Thread-258418][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 14:45:37,605 [ INFO][       Thread-258418][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 14:45:37,609 [DEBUG][       Thread-258418][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 14:45:37,609 [DEBUG][       Thread-258418][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 14:45:37,609 [DEBUG][       Thread-258418][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 14:45:37,609 [DEBUG][       Thread-258418][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:45:37,609 [DEBUG][       Thread-258418][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:45:37,609 [DEBUG][       Thread-258418][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:45:37,609 [DEBUG][       Thread-258418][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:45:37,609 [DEBUG][       Thread-258418][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 14:45:37,609 [DEBUG][       Thread-258418][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 14:45:37,609 [DEBUG][       Thread-258418][   transport.py][1871] : client lang: <none>
2025-06-13 14:45:37,609 [DEBUG][       Thread-258418][   transport.py][1871] : server lang: <none>
2025-06-13 14:45:37,609 [DEBUG][       Thread-258418][   transport.py][1871] : kex follows: False
2025-06-13 14:45:37,609 [DEBUG][       Thread-258418][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 14:45:37,609 [DEBUG][       Thread-258418][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 14:45:37,609 [DEBUG][       Thread-258418][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 14:45:37,609 [DEBUG][       Thread-258418][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 14:45:37,609 [DEBUG][       Thread-258418][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 14:45:37,609 [DEBUG][       Thread-258418][   transport.py][1871] : Compression: none
2025-06-13 14:45:37,609 [DEBUG][       Thread-258418][   transport.py][1871] : === End of kex handshake ===
2025-06-13 14:45:37,622 [DEBUG][       Thread-258418][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 14:45:37,622 [DEBUG][       Thread-258418][   transport.py][1871] : Switch to new keys ...
2025-06-13 14:45:37,622 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 14:45:37,622 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 14:45:37,622 [DEBUG][       Thread-258418][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 14:45:37,623 [DEBUG][       Thread-258418][   transport.py][1871] : userauth is OK
2025-06-13 14:45:37,646 [ INFO][       Thread-258418][   transport.py][1871] : Authentication (password) successful!
2025-06-13 14:45:37,647 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 14:45:38,216 [DEBUG][       Thread-258418][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 14:45:38,216 [DEBUG][       Thread-258418][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 14:45:38,257 [DEBUG][       Thread-258418][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 14:45:38,257 [DEBUG][       Thread-258418][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 14:45:38,261 [DEBUG][       Thread-258418][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 14:45:38,274 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 14:45:38,275 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 14:45:38,276 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 14:45:38,278 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 14:45:38,284 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 14:45:38,286 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 14:45:38,286 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 14:45:38,287 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 14:45:38,287 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.531186 -999.00  +13.70  20.47     35   -1.40 1 1 1 1 1   887    0 15.46 23.95 ----- 23.2 20.5 43.0 23.4 17.7 -31.1 16.7 -32.3 17.2 -30.6 18.5 -29.2
2025-06-13 14:45:38,287 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 14:45:38,287 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 14:45:38,287 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.531186
2025-06-13 14:45:38,287 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 14:45:38,288 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 14:45:38,288 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 14:45:38,288 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 14:45:38,288 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 14:45:38,288 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T14:45:03', tmtdew=17.14, humidity=30.58, cloud=0.0, wind=18.37, temperature=13.9, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T12:44:54.470', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 14:45:38,289 [DEBUG][       Thread-258418][   transport.py][1871] : EOF in transport thread
2025-06-13 14:45:38,373 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 14:45:38,384 [DEBUG][       Thread-258421][   transport.py][1871] : starting thread (client mode): 0x8636bd00
2025-06-13 14:45:38,384 [DEBUG][       Thread-258421][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 14:45:38,399 [DEBUG][       Thread-258421][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 14:45:38,399 [ INFO][       Thread-258421][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 14:45:38,407 [DEBUG][       Thread-258421][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 14:45:38,407 [DEBUG][       Thread-258421][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 14:45:38,407 [DEBUG][       Thread-258421][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 14:45:38,407 [DEBUG][       Thread-258421][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:45:38,407 [DEBUG][       Thread-258421][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:45:38,407 [DEBUG][       Thread-258421][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:45:38,407 [DEBUG][       Thread-258421][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:45:38,407 [DEBUG][       Thread-258421][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 14:45:38,407 [DEBUG][       Thread-258421][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 14:45:38,407 [DEBUG][       Thread-258421][   transport.py][1871] : client lang: <none>
2025-06-13 14:45:38,407 [DEBUG][       Thread-258421][   transport.py][1871] : server lang: <none>
2025-06-13 14:45:38,407 [DEBUG][       Thread-258421][   transport.py][1871] : kex follows: False
2025-06-13 14:45:38,407 [DEBUG][       Thread-258421][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 14:45:38,407 [DEBUG][       Thread-258421][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 14:45:38,407 [DEBUG][       Thread-258421][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 14:45:38,407 [DEBUG][       Thread-258421][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 14:45:38,407 [DEBUG][       Thread-258421][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 14:45:38,407 [DEBUG][       Thread-258421][   transport.py][1871] : Compression: none
2025-06-13 14:45:38,408 [DEBUG][       Thread-258421][   transport.py][1871] : === End of kex handshake ===
2025-06-13 14:45:38,467 [DEBUG][       Thread-258421][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 14:45:38,467 [DEBUG][       Thread-258421][   transport.py][1871] : Switch to new keys ...
2025-06-13 14:45:38,468 [DEBUG][       Thread-258421][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 14:45:38,468 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 14:45:38,469 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 14:45:38,523 [DEBUG][       Thread-258421][   transport.py][1871] : userauth is OK
2025-06-13 14:45:38,523 [DEBUG][       Thread-258421][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 14:45:38,523 [DEBUG][       Thread-258421][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 14:45:38,523 [DEBUG][       Thread-258421][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 14:45:38,523 [DEBUG][       Thread-258421][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 14:45:38,542 [ INFO][       Thread-258421][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 14:45:38,542 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 14:45:38,542 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 14:45:39,541 [DEBUG][       Thread-258421][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 14:45:39,542 [DEBUG][       Thread-258421][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 14:45:39,595 [DEBUG][       Thread-258421][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 14:45:39,596 [DEBUG][       Thread-258421][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 14:45:39,607 [DEBUG][       Thread-258421][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 14:45:39,626 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 14:45:39,626 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 14:45:39,638 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 14:45:39,647 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 14:45:39,648 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 14:45:39,648 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 14:45:39,659 [DEBUG][       Thread-258421][   transport.py][1871] : EOF in transport thread
2025-06-13 14:45:41,926 [DEBUG][Thread-258423 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:45:49,656 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 14:45:49,656 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 14:45:49,657 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 14:45:49,659 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 14:45:50,129 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 14, 45, 35), 16.9, 30.97, 0.0, 20.73, 13.79, 0, 0, 0, 2, 0, 0),)
2025-06-13 14:45:50,129 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 14:45:35
2025-06-13 14:45:50,210 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 14:45:50,217 [DEBUG][       Thread-258424][   transport.py][1871] : starting thread (client mode): 0x86392350
2025-06-13 14:45:50,217 [DEBUG][       Thread-258424][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 14:45:50,236 [DEBUG][       Thread-258424][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 14:45:50,236 [ INFO][       Thread-258424][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 14:45:50,240 [DEBUG][       Thread-258424][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 14:45:50,240 [DEBUG][       Thread-258424][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 14:45:50,240 [DEBUG][       Thread-258424][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 14:45:50,240 [DEBUG][       Thread-258424][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:45:50,240 [DEBUG][       Thread-258424][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:45:50,240 [DEBUG][       Thread-258424][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:45:50,240 [DEBUG][       Thread-258424][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:45:50,240 [DEBUG][       Thread-258424][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 14:45:50,240 [DEBUG][       Thread-258424][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 14:45:50,240 [DEBUG][       Thread-258424][   transport.py][1871] : client lang: <none>
2025-06-13 14:45:50,240 [DEBUG][       Thread-258424][   transport.py][1871] : server lang: <none>
2025-06-13 14:45:50,240 [DEBUG][       Thread-258424][   transport.py][1871] : kex follows: False
2025-06-13 14:45:50,240 [DEBUG][       Thread-258424][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 14:45:50,240 [DEBUG][       Thread-258424][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 14:45:50,240 [DEBUG][       Thread-258424][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 14:45:50,240 [DEBUG][       Thread-258424][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 14:45:50,240 [DEBUG][       Thread-258424][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 14:45:50,240 [DEBUG][       Thread-258424][   transport.py][1871] : Compression: none
2025-06-13 14:45:50,240 [DEBUG][       Thread-258424][   transport.py][1871] : === End of kex handshake ===
2025-06-13 14:45:50,258 [DEBUG][       Thread-258424][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 14:45:50,258 [DEBUG][       Thread-258424][   transport.py][1871] : Switch to new keys ...
2025-06-13 14:45:50,259 [DEBUG][       Thread-258424][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 14:45:50,259 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 14:45:50,259 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 14:45:50,261 [DEBUG][       Thread-258424][   transport.py][1871] : userauth is OK
2025-06-13 14:45:50,285 [ INFO][       Thread-258424][   transport.py][1871] : Authentication (password) successful!
2025-06-13 14:45:50,285 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 14:45:50,934 [DEBUG][       Thread-258424][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 14:45:50,935 [DEBUG][       Thread-258424][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 14:45:50,949 [DEBUG][Thread-258426 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:45:50,977 [DEBUG][       Thread-258424][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 14:45:50,977 [DEBUG][       Thread-258424][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 14:45:50,979 [DEBUG][       Thread-258424][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 14:45:50,992 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 14:45:50,992 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 14:45:50,993 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 14:45:50,994 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 14:45:50,997 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 14:45:50,998 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 14:45:50,998 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 14:45:50,998 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 14:45:50,998 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.531186 -999.00  +13.70  20.47     35   -1.40 1 1 1 1 1   887    0 15.46 23.95 ----- 23.2 20.5 43.0 23.4 17.7 -31.1 16.7 -32.3 17.2 -30.6 18.5 -29.2
2025-06-13 14:45:50,998 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 14:45:50,998 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 14:45:50,998 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.531186
2025-06-13 14:45:50,998 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 14:45:50,998 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 14:45:50,998 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 14:45:50,998 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 14:45:50,998 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 14:45:50,998 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T14:45:35', tmtdew=16.9, humidity=30.97, cloud=0.0, wind=20.73, temperature=13.79, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T12:44:54.470', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 14:45:50,999 [DEBUG][       Thread-258424][   transport.py][1871] : EOF in transport thread
2025-06-13 14:45:51,070 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 14:45:51,080 [DEBUG][       Thread-258428][   transport.py][1871] : starting thread (client mode): 0x868c8070
2025-06-13 14:45:51,080 [DEBUG][       Thread-258428][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 14:45:51,098 [DEBUG][       Thread-258428][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 14:45:51,098 [ INFO][       Thread-258428][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 14:45:51,107 [DEBUG][       Thread-258428][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 14:45:51,107 [DEBUG][       Thread-258428][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 14:45:51,107 [DEBUG][       Thread-258428][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 14:45:51,107 [DEBUG][       Thread-258428][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:45:51,107 [DEBUG][       Thread-258428][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:45:51,107 [DEBUG][       Thread-258428][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:45:51,107 [DEBUG][       Thread-258428][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:45:51,107 [DEBUG][       Thread-258428][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 14:45:51,107 [DEBUG][       Thread-258428][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 14:45:51,107 [DEBUG][       Thread-258428][   transport.py][1871] : client lang: <none>
2025-06-13 14:45:51,107 [DEBUG][       Thread-258428][   transport.py][1871] : server lang: <none>
2025-06-13 14:45:51,107 [DEBUG][       Thread-258428][   transport.py][1871] : kex follows: False
2025-06-13 14:45:51,107 [DEBUG][       Thread-258428][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 14:45:51,108 [DEBUG][       Thread-258428][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 14:45:51,108 [DEBUG][       Thread-258428][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 14:45:51,108 [DEBUG][       Thread-258428][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 14:45:51,108 [DEBUG][       Thread-258428][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 14:45:51,108 [DEBUG][       Thread-258428][   transport.py][1871] : Compression: none
2025-06-13 14:45:51,108 [DEBUG][       Thread-258428][   transport.py][1871] : === End of kex handshake ===
2025-06-13 14:45:51,163 [DEBUG][       Thread-258428][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 14:45:51,163 [DEBUG][       Thread-258428][   transport.py][1871] : Switch to new keys ...
2025-06-13 14:45:51,164 [DEBUG][       Thread-258428][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 14:45:51,164 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 14:45:51,165 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 14:45:51,235 [DEBUG][       Thread-258428][   transport.py][1871] : userauth is OK
2025-06-13 14:45:51,235 [DEBUG][       Thread-258428][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 14:45:51,236 [DEBUG][       Thread-258428][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 14:45:51,236 [DEBUG][       Thread-258428][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 14:45:51,236 [DEBUG][       Thread-258428][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 14:45:51,255 [ INFO][       Thread-258428][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 14:45:51,255 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 14:45:51,256 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 14:45:52,280 [DEBUG][       Thread-258428][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 14:45:52,280 [DEBUG][       Thread-258428][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 14:45:52,328 [DEBUG][       Thread-258428][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 14:45:52,328 [DEBUG][       Thread-258428][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 14:45:52,337 [DEBUG][       Thread-258428][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 14:45:52,346 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 14:45:52,347 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 14:45:52,360 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 14:45:52,369 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 14:45:52,370 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 14:45:52,370 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 14:45:52,383 [DEBUG][       Thread-258428][   transport.py][1871] : EOF in transport thread
2025-06-13 14:45:59,968 [DEBUG][Thread-258430 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:46:00,726 [DEBUG][Thread-258431 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:46:01,776 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:46:01,777 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:46:02,380 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 14:46:02,381 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 14:46:02,381 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 14:46:02,383 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 14:46:02,849 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 14, 45, 35), 16.9, 30.97, 0.0, 20.73, 13.79, 0, 0, 0, 2, 0, 0),)
2025-06-13 14:46:02,849 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 14:45:35
2025-06-13 14:46:02,930 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 14:46:02,934 [DEBUG][       Thread-258432][   transport.py][1871] : starting thread (client mode): 0x86350310
2025-06-13 14:46:02,934 [DEBUG][       Thread-258432][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 14:46:02,955 [DEBUG][       Thread-258432][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 14:46:02,955 [ INFO][       Thread-258432][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 14:46:02,959 [DEBUG][       Thread-258432][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 14:46:02,959 [DEBUG][       Thread-258432][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 14:46:02,959 [DEBUG][       Thread-258432][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 14:46:02,959 [DEBUG][       Thread-258432][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:46:02,959 [DEBUG][       Thread-258432][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:46:02,959 [DEBUG][       Thread-258432][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:46:02,959 [DEBUG][       Thread-258432][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:46:02,959 [DEBUG][       Thread-258432][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 14:46:02,959 [DEBUG][       Thread-258432][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 14:46:02,959 [DEBUG][       Thread-258432][   transport.py][1871] : client lang: <none>
2025-06-13 14:46:02,959 [DEBUG][       Thread-258432][   transport.py][1871] : server lang: <none>
2025-06-13 14:46:02,959 [DEBUG][       Thread-258432][   transport.py][1871] : kex follows: False
2025-06-13 14:46:02,959 [DEBUG][       Thread-258432][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 14:46:02,959 [DEBUG][       Thread-258432][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 14:46:02,959 [DEBUG][       Thread-258432][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 14:46:02,959 [DEBUG][       Thread-258432][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 14:46:02,959 [DEBUG][       Thread-258432][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 14:46:02,959 [DEBUG][       Thread-258432][   transport.py][1871] : Compression: none
2025-06-13 14:46:02,959 [DEBUG][       Thread-258432][   transport.py][1871] : === End of kex handshake ===
2025-06-13 14:46:02,977 [DEBUG][       Thread-258432][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 14:46:02,977 [DEBUG][       Thread-258432][   transport.py][1871] : Switch to new keys ...
2025-06-13 14:46:02,978 [DEBUG][       Thread-258432][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 14:46:02,978 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 14:46:02,978 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 14:46:02,979 [DEBUG][       Thread-258432][   transport.py][1871] : userauth is OK
2025-06-13 14:46:02,993 [ INFO][       Thread-258432][   transport.py][1871] : Authentication (password) successful!
2025-06-13 14:46:02,994 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 14:46:03,407 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:46:03,408 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:46:03,637 [DEBUG][       Thread-258432][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 14:46:03,637 [DEBUG][       Thread-258432][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 14:46:03,681 [DEBUG][       Thread-258432][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 14:46:03,681 [DEBUG][       Thread-258432][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 14:46:03,685 [DEBUG][       Thread-258432][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 14:46:03,697 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 14:46:03,698 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 14:46:03,700 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 14:46:03,702 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 14:46:03,708 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 14:46:03,710 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 14:46:03,710 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 14:46:03,711 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 14:46:03,711 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.531533 -999.00  +13.60  20.19     35   -1.40 1 1 1 1 1   887    0 15.65 23.98 ----- 16.8 20.2 56.2 24.7 17.7 -31.2 16.6 -32.3 17.3 -30.1 18.5 -28.9
2025-06-13 14:46:03,711 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 14:46:03,711 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 14:46:03,711 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.531533
2025-06-13 14:46:03,712 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 14:46:03,712 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 14:46:03,712 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 14:46:03,713 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 14:46:03,713 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 14:46:03,713 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T14:45:35', tmtdew=16.9, humidity=30.97, cloud=0.0, wind=20.73, temperature=13.79, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T12:45:24.451', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 14:46:03,713 [DEBUG][       Thread-258432][   transport.py][1871] : EOF in transport thread
2025-06-13 14:46:03,796 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 14:46:03,807 [DEBUG][       Thread-258435][   transport.py][1871] : starting thread (client mode): 0x867b78b0
2025-06-13 14:46:03,807 [DEBUG][       Thread-258435][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 14:46:03,823 [DEBUG][       Thread-258435][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 14:46:03,823 [ INFO][       Thread-258435][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 14:46:03,830 [DEBUG][       Thread-258435][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 14:46:03,831 [DEBUG][       Thread-258435][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 14:46:03,831 [DEBUG][       Thread-258435][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 14:46:03,831 [DEBUG][       Thread-258435][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:46:03,831 [DEBUG][       Thread-258435][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:46:03,831 [DEBUG][       Thread-258435][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:46:03,831 [DEBUG][       Thread-258435][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:46:03,831 [DEBUG][       Thread-258435][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 14:46:03,831 [DEBUG][       Thread-258435][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 14:46:03,831 [DEBUG][       Thread-258435][   transport.py][1871] : client lang: <none>
2025-06-13 14:46:03,831 [DEBUG][       Thread-258435][   transport.py][1871] : server lang: <none>
2025-06-13 14:46:03,831 [DEBUG][       Thread-258435][   transport.py][1871] : kex follows: False
2025-06-13 14:46:03,831 [DEBUG][       Thread-258435][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 14:46:03,831 [DEBUG][       Thread-258435][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 14:46:03,831 [DEBUG][       Thread-258435][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 14:46:03,831 [DEBUG][       Thread-258435][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 14:46:03,831 [DEBUG][       Thread-258435][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 14:46:03,831 [DEBUG][       Thread-258435][   transport.py][1871] : Compression: none
2025-06-13 14:46:03,831 [DEBUG][       Thread-258435][   transport.py][1871] : === End of kex handshake ===
2025-06-13 14:46:03,895 [DEBUG][       Thread-258435][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 14:46:03,895 [DEBUG][       Thread-258435][   transport.py][1871] : Switch to new keys ...
2025-06-13 14:46:03,896 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 14:46:03,897 [DEBUG][       Thread-258435][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 14:46:03,897 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 14:46:03,951 [DEBUG][       Thread-258435][   transport.py][1871] : userauth is OK
2025-06-13 14:46:03,951 [DEBUG][       Thread-258435][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 14:46:03,952 [DEBUG][       Thread-258435][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 14:46:03,952 [DEBUG][       Thread-258435][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 14:46:03,952 [DEBUG][       Thread-258435][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 14:46:03,969 [ INFO][       Thread-258435][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 14:46:03,970 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 14:46:03,970 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 14:46:04,989 [DEBUG][       Thread-258435][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 14:46:04,989 [DEBUG][       Thread-258435][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 14:46:05,040 [DEBUG][       Thread-258435][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 14:46:05,040 [DEBUG][       Thread-258435][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 14:46:05,050 [DEBUG][       Thread-258435][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 14:46:05,058 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 14:46:05,059 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 14:46:05,068 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 14:46:05,077 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 14:46:05,077 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 14:46:05,078 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 14:46:05,086 [DEBUG][       Thread-258435][   transport.py][1871] : EOF in transport thread
2025-06-13 14:46:09,002 [DEBUG][Thread-258437 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:46:15,088 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 14:46:15,089 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 14:46:15,089 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 14:46:15,091 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 14:46:15,560 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 14, 46, 7), 17.04, 30.67, 0.0, 18.37, 13.82, 0, 0, 0, 2, 0, 0),)
2025-06-13 14:46:15,560 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 14:46:07
2025-06-13 14:46:15,641 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 14:46:15,647 [DEBUG][       Thread-258438][   transport.py][1871] : starting thread (client mode): 0x863902b0
2025-06-13 14:46:15,647 [DEBUG][       Thread-258438][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 14:46:15,661 [DEBUG][       Thread-258438][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 14:46:15,661 [ INFO][       Thread-258438][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 14:46:15,662 [DEBUG][       Thread-258438][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 14:46:15,662 [DEBUG][       Thread-258438][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 14:46:15,662 [DEBUG][       Thread-258438][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 14:46:15,662 [DEBUG][       Thread-258438][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:46:15,662 [DEBUG][       Thread-258438][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:46:15,662 [DEBUG][       Thread-258438][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:46:15,662 [DEBUG][       Thread-258438][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:46:15,662 [DEBUG][       Thread-258438][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 14:46:15,662 [DEBUG][       Thread-258438][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 14:46:15,662 [DEBUG][       Thread-258438][   transport.py][1871] : client lang: <none>
2025-06-13 14:46:15,662 [DEBUG][       Thread-258438][   transport.py][1871] : server lang: <none>
2025-06-13 14:46:15,662 [DEBUG][       Thread-258438][   transport.py][1871] : kex follows: False
2025-06-13 14:46:15,662 [DEBUG][       Thread-258438][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 14:46:15,662 [DEBUG][       Thread-258438][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 14:46:15,663 [DEBUG][       Thread-258438][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 14:46:15,663 [DEBUG][       Thread-258438][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 14:46:15,663 [DEBUG][       Thread-258438][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 14:46:15,663 [DEBUG][       Thread-258438][   transport.py][1871] : Compression: none
2025-06-13 14:46:15,663 [DEBUG][       Thread-258438][   transport.py][1871] : === End of kex handshake ===
2025-06-13 14:46:15,671 [DEBUG][       Thread-258438][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 14:46:15,671 [DEBUG][       Thread-258438][   transport.py][1871] : Switch to new keys ...
2025-06-13 14:46:15,671 [DEBUG][       Thread-258438][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 14:46:15,671 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 14:46:15,671 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 14:46:15,672 [DEBUG][       Thread-258438][   transport.py][1871] : userauth is OK
2025-06-13 14:46:15,696 [ INFO][       Thread-258438][   transport.py][1871] : Authentication (password) successful!
2025-06-13 14:46:15,697 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 14:46:16,357 [DEBUG][       Thread-258438][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 14:46:16,357 [DEBUG][       Thread-258438][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 14:46:16,401 [DEBUG][       Thread-258438][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 14:46:16,401 [DEBUG][       Thread-258438][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 14:46:16,405 [DEBUG][       Thread-258438][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 14:46:16,417 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 14:46:16,417 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 14:46:16,419 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 14:46:16,421 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 14:46:16,427 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 14:46:16,429 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 14:46:16,429 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 14:46:16,430 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 14:46:16,430 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.531533 -999.00  +13.60  20.19     35   -1.40 1 1 1 1 1   887    0 15.65 23.98 ----- 16.8 20.2 56.2 24.7 17.7 -31.2 16.6 -32.3 17.3 -30.1 18.5 -28.9
2025-06-13 14:46:16,430 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 14:46:16,430 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 14:46:16,430 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.531533
2025-06-13 14:46:16,431 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 14:46:16,431 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 14:46:16,432 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 14:46:16,432 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 14:46:16,432 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 14:46:16,432 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T14:46:07', tmtdew=17.04, humidity=30.67, cloud=0.0, wind=18.37, temperature=13.82, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T12:45:24.451', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 14:46:16,433 [DEBUG][       Thread-258438][   transport.py][1871] : EOF in transport thread
2025-06-13 14:46:16,515 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 14:46:16,527 [DEBUG][       Thread-258441][   transport.py][1871] : starting thread (client mode): 0x867b6c80
2025-06-13 14:46:16,527 [DEBUG][       Thread-258441][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 14:46:16,542 [DEBUG][       Thread-258441][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 14:46:16,542 [ INFO][       Thread-258441][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 14:46:16,549 [DEBUG][       Thread-258441][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 14:46:16,550 [DEBUG][       Thread-258441][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 14:46:16,550 [DEBUG][       Thread-258441][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 14:46:16,550 [DEBUG][       Thread-258441][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:46:16,550 [DEBUG][       Thread-258441][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:46:16,550 [DEBUG][       Thread-258441][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:46:16,550 [DEBUG][       Thread-258441][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:46:16,550 [DEBUG][       Thread-258441][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 14:46:16,550 [DEBUG][       Thread-258441][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 14:46:16,550 [DEBUG][       Thread-258441][   transport.py][1871] : client lang: <none>
2025-06-13 14:46:16,550 [DEBUG][       Thread-258441][   transport.py][1871] : server lang: <none>
2025-06-13 14:46:16,550 [DEBUG][       Thread-258441][   transport.py][1871] : kex follows: False
2025-06-13 14:46:16,550 [DEBUG][       Thread-258441][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 14:46:16,550 [DEBUG][       Thread-258441][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 14:46:16,550 [DEBUG][       Thread-258441][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 14:46:16,550 [DEBUG][       Thread-258441][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 14:46:16,550 [DEBUG][       Thread-258441][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 14:46:16,550 [DEBUG][       Thread-258441][   transport.py][1871] : Compression: none
2025-06-13 14:46:16,550 [DEBUG][       Thread-258441][   transport.py][1871] : === End of kex handshake ===
2025-06-13 14:46:16,607 [DEBUG][       Thread-258441][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 14:46:16,608 [DEBUG][       Thread-258441][   transport.py][1871] : Switch to new keys ...
2025-06-13 14:46:16,608 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 14:46:16,609 [DEBUG][       Thread-258441][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 14:46:16,609 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 14:46:16,663 [DEBUG][       Thread-258441][   transport.py][1871] : userauth is OK
2025-06-13 14:46:16,663 [DEBUG][       Thread-258441][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 14:46:16,664 [DEBUG][       Thread-258441][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 14:46:16,664 [DEBUG][       Thread-258441][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 14:46:16,664 [DEBUG][       Thread-258441][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 14:46:16,683 [ INFO][       Thread-258441][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 14:46:16,683 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 14:46:16,684 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 14:46:17,686 [DEBUG][       Thread-258441][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 14:46:17,687 [DEBUG][       Thread-258441][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 14:46:17,736 [DEBUG][       Thread-258441][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 14:46:17,736 [DEBUG][       Thread-258441][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 14:46:17,745 [DEBUG][       Thread-258441][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 14:46:17,754 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 14:46:17,754 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 14:46:17,762 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 14:46:17,771 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 14:46:17,772 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 14:46:17,772 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 14:46:17,780 [DEBUG][       Thread-258441][   transport.py][1871] : EOF in transport thread
2025-06-13 14:46:18,024 [DEBUG][Thread-258443 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:46:19,031 [DEBUG][Thread-258444 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:46:27,063 [DEBUG][Thread-258445 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:46:27,778 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 14:46:27,779 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 14:46:27,779 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 14:46:27,782 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 14:46:28,246 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 14, 46, 7), 17.04, 30.67, 0.0, 18.37, 13.82, 0, 0, 0, 2, 0, 0),)
2025-06-13 14:46:28,246 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 14:46:07
2025-06-13 14:46:28,327 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 14:46:28,331 [DEBUG][       Thread-258446][   transport.py][1871] : starting thread (client mode): 0x86350520
2025-06-13 14:46:28,331 [DEBUG][       Thread-258446][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 14:46:28,351 [DEBUG][       Thread-258446][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 14:46:28,351 [ INFO][       Thread-258446][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 14:46:28,353 [DEBUG][       Thread-258446][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 14:46:28,353 [DEBUG][       Thread-258446][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 14:46:28,353 [DEBUG][       Thread-258446][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 14:46:28,353 [DEBUG][       Thread-258446][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:46:28,353 [DEBUG][       Thread-258446][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:46:28,353 [DEBUG][       Thread-258446][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:46:28,353 [DEBUG][       Thread-258446][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:46:28,353 [DEBUG][       Thread-258446][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 14:46:28,353 [DEBUG][       Thread-258446][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 14:46:28,353 [DEBUG][       Thread-258446][   transport.py][1871] : client lang: <none>
2025-06-13 14:46:28,353 [DEBUG][       Thread-258446][   transport.py][1871] : server lang: <none>
2025-06-13 14:46:28,353 [DEBUG][       Thread-258446][   transport.py][1871] : kex follows: False
2025-06-13 14:46:28,353 [DEBUG][       Thread-258446][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 14:46:28,353 [DEBUG][       Thread-258446][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 14:46:28,353 [DEBUG][       Thread-258446][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 14:46:28,353 [DEBUG][       Thread-258446][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 14:46:28,353 [DEBUG][       Thread-258446][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 14:46:28,353 [DEBUG][       Thread-258446][   transport.py][1871] : Compression: none
2025-06-13 14:46:28,353 [DEBUG][       Thread-258446][   transport.py][1871] : === End of kex handshake ===
2025-06-13 14:46:28,360 [DEBUG][       Thread-258446][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 14:46:28,360 [DEBUG][       Thread-258446][   transport.py][1871] : Switch to new keys ...
2025-06-13 14:46:28,360 [DEBUG][       Thread-258446][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 14:46:28,360 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 14:46:28,360 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 14:46:28,361 [DEBUG][       Thread-258446][   transport.py][1871] : userauth is OK
2025-06-13 14:46:28,374 [ INFO][       Thread-258446][   transport.py][1871] : Authentication (password) successful!
2025-06-13 14:46:28,374 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 14:46:29,012 [DEBUG][       Thread-258446][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 14:46:29,012 [DEBUG][       Thread-258446][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 14:46:29,057 [DEBUG][       Thread-258446][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 14:46:29,057 [DEBUG][       Thread-258446][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 14:46:29,060 [DEBUG][       Thread-258446][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 14:46:29,072 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 14:46:29,073 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 14:46:29,075 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 14:46:29,076 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 14:46:29,082 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 14:46:29,084 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 14:46:29,084 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 14:46:29,084 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 14:46:29,085 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.531881 -999.00  +13.70  21.64     35   -1.30 1 1 1 1 1   887    0 15.58 24.58 ----- 23.1 21.6 43.0 27.4 17.7 -31.4 16.7 -32.0 17.2 -30.3 18.5 -29.0
2025-06-13 14:46:29,085 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 14:46:29,085 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 14:46:29,085 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.531881
2025-06-13 14:46:29,085 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 14:46:29,086 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 14:46:29,086 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 14:46:29,086 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 14:46:29,086 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 14:46:29,086 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T14:46:07', tmtdew=17.04, humidity=30.67, cloud=0.0, wind=18.37, temperature=13.82, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T12:45:54.518', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 14:46:29,086 [DEBUG][       Thread-258446][   transport.py][1871] : EOF in transport thread
2025-06-13 14:46:29,169 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 14:46:29,179 [DEBUG][       Thread-258449][   transport.py][1871] : starting thread (client mode): 0x863cb490
2025-06-13 14:46:29,179 [DEBUG][       Thread-258449][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 14:46:29,195 [DEBUG][       Thread-258449][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 14:46:29,195 [ INFO][       Thread-258449][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 14:46:29,203 [DEBUG][       Thread-258449][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 14:46:29,203 [DEBUG][       Thread-258449][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 14:46:29,203 [DEBUG][       Thread-258449][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 14:46:29,203 [DEBUG][       Thread-258449][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:46:29,203 [DEBUG][       Thread-258449][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:46:29,203 [DEBUG][       Thread-258449][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:46:29,203 [DEBUG][       Thread-258449][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:46:29,203 [DEBUG][       Thread-258449][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 14:46:29,203 [DEBUG][       Thread-258449][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 14:46:29,203 [DEBUG][       Thread-258449][   transport.py][1871] : client lang: <none>
2025-06-13 14:46:29,203 [DEBUG][       Thread-258449][   transport.py][1871] : server lang: <none>
2025-06-13 14:46:29,203 [DEBUG][       Thread-258449][   transport.py][1871] : kex follows: False
2025-06-13 14:46:29,203 [DEBUG][       Thread-258449][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 14:46:29,204 [DEBUG][       Thread-258449][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 14:46:29,204 [DEBUG][       Thread-258449][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 14:46:29,204 [DEBUG][       Thread-258449][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 14:46:29,204 [DEBUG][       Thread-258449][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 14:46:29,204 [DEBUG][       Thread-258449][   transport.py][1871] : Compression: none
2025-06-13 14:46:29,204 [DEBUG][       Thread-258449][   transport.py][1871] : === End of kex handshake ===
2025-06-13 14:46:29,266 [DEBUG][       Thread-258449][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 14:46:29,267 [DEBUG][       Thread-258449][   transport.py][1871] : Switch to new keys ...
2025-06-13 14:46:29,267 [DEBUG][       Thread-258449][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 14:46:29,268 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 14:46:29,268 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 14:46:29,323 [DEBUG][       Thread-258449][   transport.py][1871] : userauth is OK
2025-06-13 14:46:29,323 [DEBUG][       Thread-258449][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 14:46:29,323 [DEBUG][       Thread-258449][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 14:46:29,323 [DEBUG][       Thread-258449][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 14:46:29,323 [DEBUG][       Thread-258449][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 14:46:29,343 [ INFO][       Thread-258449][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 14:46:29,343 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 14:46:29,344 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 14:46:30,458 [DEBUG][       Thread-258449][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 14:46:30,458 [DEBUG][       Thread-258449][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 14:46:30,508 [DEBUG][       Thread-258449][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 14:46:30,508 [DEBUG][       Thread-258449][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 14:46:30,517 [DEBUG][       Thread-258449][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 14:46:30,526 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 14:46:30,526 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 14:46:30,534 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 14:46:30,543 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 14:46:30,543 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 14:46:30,544 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 14:46:30,551 [DEBUG][       Thread-258449][   transport.py][1871] : EOF in transport thread
2025-06-13 14:46:36,083 [DEBUG][Thread-258451 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:46:40,554 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 14:46:40,554 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 14:46:40,554 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 14:46:40,555 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 14:46:41,047 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 14, 46, 7), 17.04, 30.67, 0.0, 18.37, 13.82, 0, 0, 0, 2, 0, 0),)
2025-06-13 14:46:41,047 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 14:46:07
2025-06-13 14:46:41,133 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 14:46:41,138 [DEBUG][       Thread-258452][   transport.py][1871] : starting thread (client mode): 0x8636a0e0
2025-06-13 14:46:41,138 [DEBUG][       Thread-258452][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 14:46:41,159 [DEBUG][       Thread-258452][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 14:46:41,159 [ INFO][       Thread-258452][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 14:46:41,161 [DEBUG][       Thread-258452][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 14:46:41,161 [DEBUG][       Thread-258452][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 14:46:41,161 [DEBUG][       Thread-258452][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 14:46:41,161 [DEBUG][       Thread-258452][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:46:41,161 [DEBUG][       Thread-258452][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:46:41,161 [DEBUG][       Thread-258452][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:46:41,161 [DEBUG][       Thread-258452][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:46:41,161 [DEBUG][       Thread-258452][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 14:46:41,161 [DEBUG][       Thread-258452][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 14:46:41,161 [DEBUG][       Thread-258452][   transport.py][1871] : client lang: <none>
2025-06-13 14:46:41,161 [DEBUG][       Thread-258452][   transport.py][1871] : server lang: <none>
2025-06-13 14:46:41,161 [DEBUG][       Thread-258452][   transport.py][1871] : kex follows: False
2025-06-13 14:46:41,161 [DEBUG][       Thread-258452][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 14:46:41,161 [DEBUG][       Thread-258452][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 14:46:41,161 [DEBUG][       Thread-258452][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 14:46:41,162 [DEBUG][       Thread-258452][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 14:46:41,162 [DEBUG][       Thread-258452][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 14:46:41,162 [DEBUG][       Thread-258452][   transport.py][1871] : Compression: none
2025-06-13 14:46:41,162 [DEBUG][       Thread-258452][   transport.py][1871] : === End of kex handshake ===
2025-06-13 14:46:41,172 [DEBUG][       Thread-258452][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 14:46:41,172 [DEBUG][       Thread-258452][   transport.py][1871] : Switch to new keys ...
2025-06-13 14:46:41,172 [DEBUG][       Thread-258452][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 14:46:41,172 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 14:46:41,172 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 14:46:41,173 [DEBUG][       Thread-258452][   transport.py][1871] : userauth is OK
2025-06-13 14:46:41,185 [ INFO][       Thread-258452][   transport.py][1871] : Authentication (password) successful!
2025-06-13 14:46:41,185 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 14:46:41,818 [DEBUG][       Thread-258452][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 14:46:41,819 [DEBUG][       Thread-258452][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 14:46:41,861 [DEBUG][       Thread-258452][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 14:46:41,861 [DEBUG][       Thread-258452][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 14:46:41,864 [DEBUG][       Thread-258452][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 14:46:41,876 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 14:46:41,876 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 14:46:41,878 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 14:46:41,879 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 14:46:41,884 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 14:46:41,886 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 14:46:41,886 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 14:46:41,887 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 14:46:41,887 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.531881 -999.00  +13.70  21.64     35   -1.30 1 1 1 1 1   887    0 15.58 24.58 ----- 23.1 21.6 43.0 27.4 17.7 -31.4 16.7 -32.0 17.2 -30.3 18.5 -29.0
2025-06-13 14:46:41,887 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 14:46:41,887 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 14:46:41,887 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.531881
2025-06-13 14:46:41,887 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 14:46:41,888 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 14:46:41,888 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 14:46:41,888 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 14:46:41,888 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 14:46:41,888 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T14:46:07', tmtdew=17.04, humidity=30.67, cloud=0.0, wind=18.37, temperature=13.82, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T12:45:54.518', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 14:46:41,889 [DEBUG][       Thread-258452][   transport.py][1871] : EOF in transport thread
2025-06-13 14:46:41,969 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 14:46:41,980 [DEBUG][       Thread-258455][   transport.py][1871] : starting thread (client mode): 0x863524a0
2025-06-13 14:46:41,980 [DEBUG][       Thread-258455][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 14:46:41,996 [DEBUG][       Thread-258455][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 14:46:41,996 [ INFO][       Thread-258455][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 14:46:42,004 [DEBUG][       Thread-258455][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 14:46:42,004 [DEBUG][       Thread-258455][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 14:46:42,004 [DEBUG][       Thread-258455][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 14:46:42,004 [DEBUG][       Thread-258455][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:46:42,004 [DEBUG][       Thread-258455][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:46:42,004 [DEBUG][       Thread-258455][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:46:42,004 [DEBUG][       Thread-258455][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:46:42,004 [DEBUG][       Thread-258455][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 14:46:42,005 [DEBUG][       Thread-258455][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 14:46:42,005 [DEBUG][       Thread-258455][   transport.py][1871] : client lang: <none>
2025-06-13 14:46:42,005 [DEBUG][       Thread-258455][   transport.py][1871] : server lang: <none>
2025-06-13 14:46:42,005 [DEBUG][       Thread-258455][   transport.py][1871] : kex follows: False
2025-06-13 14:46:42,005 [DEBUG][       Thread-258455][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 14:46:42,005 [DEBUG][       Thread-258455][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 14:46:42,005 [DEBUG][       Thread-258455][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 14:46:42,005 [DEBUG][       Thread-258455][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 14:46:42,005 [DEBUG][       Thread-258455][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 14:46:42,005 [DEBUG][       Thread-258455][   transport.py][1871] : Compression: none
2025-06-13 14:46:42,005 [DEBUG][       Thread-258455][   transport.py][1871] : === End of kex handshake ===
2025-06-13 14:46:42,069 [DEBUG][       Thread-258455][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 14:46:42,069 [DEBUG][       Thread-258455][   transport.py][1871] : Switch to new keys ...
2025-06-13 14:46:42,070 [DEBUG][       Thread-258455][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 14:46:42,070 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 14:46:42,071 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 14:46:42,126 [DEBUG][       Thread-258455][   transport.py][1871] : userauth is OK
2025-06-13 14:46:42,127 [DEBUG][       Thread-258455][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 14:46:42,127 [DEBUG][       Thread-258455][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 14:46:42,127 [DEBUG][       Thread-258455][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 14:46:42,127 [DEBUG][       Thread-258455][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 14:46:42,145 [ INFO][       Thread-258455][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 14:46:42,145 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 14:46:42,146 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 14:46:43,149 [DEBUG][       Thread-258455][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 14:46:43,149 [DEBUG][       Thread-258455][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 14:46:43,199 [DEBUG][       Thread-258455][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 14:46:43,199 [DEBUG][       Thread-258455][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 14:46:43,208 [DEBUG][       Thread-258455][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 14:46:43,218 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 14:46:43,218 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 14:46:43,226 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 14:46:43,235 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 14:46:43,235 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 14:46:43,236 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 14:46:43,243 [DEBUG][       Thread-258455][   transport.py][1871] : EOF in transport thread
2025-06-13 14:46:45,102 [DEBUG][Thread-258457 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:46:53,246 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 14:46:53,246 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 14:46:53,246 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 14:46:53,247 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 14:46:53,698 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 14, 46, 39), 17.03, 30.84, 0.0, 19.06, 13.86, 0, 0, 0, 2, 0, 0),)
2025-06-13 14:46:53,698 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 14:46:39
2025-06-13 14:46:53,776 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 14:46:53,780 [DEBUG][       Thread-258458][   transport.py][1871] : starting thread (client mode): 0x84207040
2025-06-13 14:46:53,780 [DEBUG][       Thread-258458][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 14:46:53,801 [DEBUG][       Thread-258458][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 14:46:53,801 [ INFO][       Thread-258458][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 14:46:53,802 [DEBUG][       Thread-258458][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 14:46:53,802 [DEBUG][       Thread-258458][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 14:46:53,803 [DEBUG][       Thread-258458][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 14:46:53,803 [DEBUG][       Thread-258458][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:46:53,803 [DEBUG][       Thread-258458][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:46:53,803 [DEBUG][       Thread-258458][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:46:53,803 [DEBUG][       Thread-258458][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:46:53,803 [DEBUG][       Thread-258458][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 14:46:53,803 [DEBUG][       Thread-258458][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 14:46:53,803 [DEBUG][       Thread-258458][   transport.py][1871] : client lang: <none>
2025-06-13 14:46:53,803 [DEBUG][       Thread-258458][   transport.py][1871] : server lang: <none>
2025-06-13 14:46:53,803 [DEBUG][       Thread-258458][   transport.py][1871] : kex follows: False
2025-06-13 14:46:53,803 [DEBUG][       Thread-258458][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 14:46:53,803 [DEBUG][       Thread-258458][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 14:46:53,803 [DEBUG][       Thread-258458][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 14:46:53,803 [DEBUG][       Thread-258458][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 14:46:53,803 [DEBUG][       Thread-258458][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 14:46:53,803 [DEBUG][       Thread-258458][   transport.py][1871] : Compression: none
2025-06-13 14:46:53,803 [DEBUG][       Thread-258458][   transport.py][1871] : === End of kex handshake ===
2025-06-13 14:46:53,815 [DEBUG][       Thread-258458][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 14:46:53,815 [DEBUG][       Thread-258458][   transport.py][1871] : Switch to new keys ...
2025-06-13 14:46:53,816 [DEBUG][       Thread-258458][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 14:46:53,816 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 14:46:53,816 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 14:46:53,817 [DEBUG][       Thread-258458][   transport.py][1871] : userauth is OK
2025-06-13 14:46:53,831 [ INFO][       Thread-258458][   transport.py][1871] : Authentication (password) successful!
2025-06-13 14:46:53,831 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 14:46:54,125 [DEBUG][Thread-258460 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:46:54,459 [DEBUG][       Thread-258458][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 14:46:54,459 [DEBUG][       Thread-258458][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 14:46:54,501 [DEBUG][       Thread-258458][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 14:46:54,501 [DEBUG][       Thread-258458][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 14:46:54,503 [DEBUG][       Thread-258458][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 14:46:54,515 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 14:46:54,516 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 14:46:54,517 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 14:46:54,519 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 14:46:54,524 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 14:46:54,526 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 14:46:54,526 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 14:46:54,527 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 14:46:54,527 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.531881 -999.00  +13.70  21.64     35   -1.30 1 1 1 1 1   887    0 15.58 24.58 ----- 23.1 21.6 43.0 27.4 17.7 -31.4 16.7 -32.0 17.2 -30.3 18.5 -29.0
2025-06-13 14:46:54,527 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 14:46:54,527 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 14:46:54,527 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.531881
2025-06-13 14:46:54,528 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 14:46:54,528 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 14:46:54,528 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 14:46:54,528 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 14:46:54,528 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 14:46:54,529 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T14:46:39', tmtdew=17.03, humidity=30.84, cloud=0.0, wind=19.06, temperature=13.86, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T12:45:54.518', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 14:46:54,529 [DEBUG][       Thread-258458][   transport.py][1871] : EOF in transport thread
2025-06-13 14:46:54,612 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 14:46:54,622 [DEBUG][       Thread-258462][   transport.py][1871] : starting thread (client mode): 0x863a4cd0
2025-06-13 14:46:54,622 [DEBUG][       Thread-258462][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 14:46:54,637 [DEBUG][       Thread-258462][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 14:46:54,637 [ INFO][       Thread-258462][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 14:46:54,647 [DEBUG][       Thread-258462][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 14:46:54,648 [DEBUG][       Thread-258462][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 14:46:54,648 [DEBUG][       Thread-258462][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 14:46:54,648 [DEBUG][       Thread-258462][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:46:54,648 [DEBUG][       Thread-258462][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:46:54,648 [DEBUG][       Thread-258462][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:46:54,648 [DEBUG][       Thread-258462][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:46:54,648 [DEBUG][       Thread-258462][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 14:46:54,648 [DEBUG][       Thread-258462][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 14:46:54,648 [DEBUG][       Thread-258462][   transport.py][1871] : client lang: <none>
2025-06-13 14:46:54,648 [DEBUG][       Thread-258462][   transport.py][1871] : server lang: <none>
2025-06-13 14:46:54,648 [DEBUG][       Thread-258462][   transport.py][1871] : kex follows: False
2025-06-13 14:46:54,648 [DEBUG][       Thread-258462][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 14:46:54,648 [DEBUG][       Thread-258462][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 14:46:54,648 [DEBUG][       Thread-258462][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 14:46:54,648 [DEBUG][       Thread-258462][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 14:46:54,648 [DEBUG][       Thread-258462][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 14:46:54,648 [DEBUG][       Thread-258462][   transport.py][1871] : Compression: none
2025-06-13 14:46:54,648 [DEBUG][       Thread-258462][   transport.py][1871] : === End of kex handshake ===
2025-06-13 14:46:54,707 [DEBUG][       Thread-258462][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 14:46:54,707 [DEBUG][       Thread-258462][   transport.py][1871] : Switch to new keys ...
2025-06-13 14:46:54,708 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 14:46:54,709 [DEBUG][       Thread-258462][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 14:46:54,709 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 14:46:54,769 [DEBUG][       Thread-258462][   transport.py][1871] : userauth is OK
2025-06-13 14:46:54,769 [DEBUG][       Thread-258462][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 14:46:54,769 [DEBUG][       Thread-258462][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 14:46:54,769 [DEBUG][       Thread-258462][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 14:46:54,769 [DEBUG][       Thread-258462][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 14:46:54,784 [ INFO][       Thread-258462][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 14:46:54,784 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 14:46:54,784 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 14:46:55,805 [DEBUG][       Thread-258462][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 14:46:55,806 [DEBUG][       Thread-258462][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 14:46:55,856 [DEBUG][       Thread-258462][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 14:46:55,856 [DEBUG][       Thread-258462][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 14:46:55,866 [DEBUG][       Thread-258462][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 14:46:55,875 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 14:46:55,875 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 14:46:55,884 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 14:46:55,894 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 14:46:55,894 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 14:46:55,895 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 14:46:55,903 [DEBUG][       Thread-258462][   transport.py][1871] : EOF in transport thread
2025-06-13 14:47:01,859 [DEBUG][Thread-258464 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:47:02,946 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:47:02,948 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:47:03,149 [DEBUG][Thread-258465 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:47:03,544 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:47:03,546 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:47:05,905 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 14:47:05,905 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 14:47:05,905 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 14:47:05,908 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 14:47:06,361 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 14, 46, 39), 17.03, 30.84, 0.0, 19.06, 13.86, 0, 0, 0, 2, 0, 0),)
2025-06-13 14:47:06,361 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 14:46:39
2025-06-13 14:47:06,439 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 14:47:06,445 [DEBUG][       Thread-258466][   transport.py][1871] : starting thread (client mode): 0x863535b0
2025-06-13 14:47:06,445 [DEBUG][       Thread-258466][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 14:47:06,460 [DEBUG][       Thread-258466][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 14:47:06,460 [ INFO][       Thread-258466][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 14:47:06,464 [DEBUG][       Thread-258466][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 14:47:06,464 [DEBUG][       Thread-258466][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 14:47:06,464 [DEBUG][       Thread-258466][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 14:47:06,464 [DEBUG][       Thread-258466][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:47:06,464 [DEBUG][       Thread-258466][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:47:06,464 [DEBUG][       Thread-258466][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:47:06,464 [DEBUG][       Thread-258466][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:47:06,464 [DEBUG][       Thread-258466][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 14:47:06,464 [DEBUG][       Thread-258466][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 14:47:06,464 [DEBUG][       Thread-258466][   transport.py][1871] : client lang: <none>
2025-06-13 14:47:06,464 [DEBUG][       Thread-258466][   transport.py][1871] : server lang: <none>
2025-06-13 14:47:06,464 [DEBUG][       Thread-258466][   transport.py][1871] : kex follows: False
2025-06-13 14:47:06,464 [DEBUG][       Thread-258466][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 14:47:06,464 [DEBUG][       Thread-258466][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 14:47:06,464 [DEBUG][       Thread-258466][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 14:47:06,464 [DEBUG][       Thread-258466][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 14:47:06,464 [DEBUG][       Thread-258466][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 14:47:06,464 [DEBUG][       Thread-258466][   transport.py][1871] : Compression: none
2025-06-13 14:47:06,464 [DEBUG][       Thread-258466][   transport.py][1871] : === End of kex handshake ===
2025-06-13 14:47:06,481 [DEBUG][       Thread-258466][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 14:47:06,482 [DEBUG][       Thread-258466][   transport.py][1871] : Switch to new keys ...
2025-06-13 14:47:06,482 [DEBUG][       Thread-258466][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 14:47:06,483 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 14:47:06,483 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 14:47:06,484 [DEBUG][       Thread-258466][   transport.py][1871] : userauth is OK
2025-06-13 14:47:06,497 [ INFO][       Thread-258466][   transport.py][1871] : Authentication (password) successful!
2025-06-13 14:47:06,497 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 14:47:07,132 [DEBUG][       Thread-258466][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 14:47:07,132 [DEBUG][       Thread-258466][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 14:47:07,173 [DEBUG][       Thread-258466][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 14:47:07,173 [DEBUG][       Thread-258466][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 14:47:07,177 [DEBUG][       Thread-258466][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 14:47:07,190 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 14:47:07,190 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 14:47:07,192 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 14:47:07,194 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 14:47:07,199 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 14:47:07,202 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 14:47:07,202 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 14:47:07,202 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 14:47:07,203 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.532575 -999.00  +13.70  18.40     36   -1.00 1 1 1 1 1   887    0 15.36 21.78 ----- 17.9 18.4 40.2 25.6 17.8 -30.8 16.6 -31.8 17.3 -29.7 18.5 -28.6
2025-06-13 14:47:07,203 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 14:47:07,203 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 14:47:07,203 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.532575
2025-06-13 14:47:07,203 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 14:47:07,204 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 14:47:07,204 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 14:47:07,204 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 14:47:07,204 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 14:47:07,204 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T14:46:39', tmtdew=17.03, humidity=30.84, cloud=0.0, wind=19.06, temperature=13.86, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T12:46:54.480', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 14:47:07,205 [DEBUG][       Thread-258466][   transport.py][1871] : EOF in transport thread
2025-06-13 14:47:07,287 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 14:47:12,184 [DEBUG][Thread-258469 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:47:19,090 [DEBUG][Thread-258470 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:47:21,201 [DEBUG][Thread-258471 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:47:30,223 [DEBUG][Thread-258472 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:47:39,245 [DEBUG][Thread-258473 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:47:48,267 [DEBUG][Thread-258474 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:47:57,287 [DEBUG][Thread-258475 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:48:03,031 [DEBUG][Thread-258476 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:48:03,683 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:48:03,684 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:48:04,083 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:48:04,084 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:48:06,308 [DEBUG][Thread-258477 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:48:15,336 [DEBUG][Thread-258478 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:48:19,140 [DEBUG][Thread-258479 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:48:24,356 [DEBUG][Thread-258480 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:48:33,376 [DEBUG][Thread-258481 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:48:42,398 [DEBUG][Thread-258482 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:48:51,417 [DEBUG][Thread-258483 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:49:00,437 [DEBUG][Thread-258484 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:49:03,822 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:49:03,824 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:49:04,156 [DEBUG][Thread-258485 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:49:05,237 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:49:05,238 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:49:09,458 [DEBUG][Thread-258486 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:49:16,052 [WARNING][ poll_weather_worker][      driver.py][ 286] : Unable to open ssh connection for writing weather state to io.saao.ac.za: [Errno 110] Connection timed out
2025-06-13 14:49:18,478 [DEBUG][Thread-258487 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:49:19,187 [DEBUG][Thread-258488 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:49:26,063 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 14:49:26,063 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 14:49:26,063 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 14:49:26,066 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 14:49:26,550 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 14, 49, 17), 17.17, 30.38, 29.3, 18.37, 13.82, 0, 0, 0, 0, 0, 0),)
2025-06-13 14:49:26,550 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 14:49:17
2025-06-13 14:49:26,632 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 14:49:26,636 [DEBUG][       Thread-258489][   transport.py][1871] : starting thread (client mode): 0x84204eb0
2025-06-13 14:49:26,636 [DEBUG][       Thread-258489][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 14:49:26,657 [DEBUG][       Thread-258489][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 14:49:26,657 [ INFO][       Thread-258489][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 14:49:26,660 [DEBUG][       Thread-258489][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 14:49:26,660 [DEBUG][       Thread-258489][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 14:49:26,660 [DEBUG][       Thread-258489][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 14:49:26,660 [DEBUG][       Thread-258489][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:49:26,661 [DEBUG][       Thread-258489][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:49:26,661 [DEBUG][       Thread-258489][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:49:26,661 [DEBUG][       Thread-258489][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:49:26,661 [DEBUG][       Thread-258489][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 14:49:26,661 [DEBUG][       Thread-258489][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 14:49:26,661 [DEBUG][       Thread-258489][   transport.py][1871] : client lang: <none>
2025-06-13 14:49:26,661 [DEBUG][       Thread-258489][   transport.py][1871] : server lang: <none>
2025-06-13 14:49:26,661 [DEBUG][       Thread-258489][   transport.py][1871] : kex follows: False
2025-06-13 14:49:26,661 [DEBUG][       Thread-258489][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 14:49:26,661 [DEBUG][       Thread-258489][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 14:49:26,661 [DEBUG][       Thread-258489][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 14:49:26,661 [DEBUG][       Thread-258489][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 14:49:26,661 [DEBUG][       Thread-258489][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 14:49:26,661 [DEBUG][       Thread-258489][   transport.py][1871] : Compression: none
2025-06-13 14:49:26,661 [DEBUG][       Thread-258489][   transport.py][1871] : === End of kex handshake ===
2025-06-13 14:49:26,677 [DEBUG][       Thread-258489][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 14:49:26,678 [DEBUG][       Thread-258489][   transport.py][1871] : Switch to new keys ...
2025-06-13 14:49:26,678 [DEBUG][       Thread-258489][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 14:49:26,678 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 14:49:26,679 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 14:49:26,680 [DEBUG][       Thread-258489][   transport.py][1871] : userauth is OK
2025-06-13 14:49:26,693 [ INFO][       Thread-258489][   transport.py][1871] : Authentication (password) successful!
2025-06-13 14:49:26,693 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 14:49:27,357 [DEBUG][       Thread-258489][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 14:49:27,358 [DEBUG][       Thread-258489][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 14:49:27,401 [DEBUG][       Thread-258489][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 14:49:27,401 [DEBUG][       Thread-258489][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 14:49:27,405 [DEBUG][       Thread-258489][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 14:49:27,417 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 14:49:27,418 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 14:49:27,420 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 14:49:27,422 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 14:49:27,428 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 14:49:27,430 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 14:49:27,431 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 14:49:27,431 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 14:49:27,432 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.533964 -999.00  +13.60  18.61     35   -1.30 1 1 1 1 1   887    0 15.43 21.28 ----- 18.0 18.6 42.2 21.5 17.7 -30.9 16.6 -32.2 17.2 -30.8 18.6 -28.9
2025-06-13 14:49:27,432 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 14:49:27,432 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 14:49:27,432 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.533964
2025-06-13 14:49:27,432 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 14:49:27,433 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 14:49:27,433 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 14:49:27,433 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 14:49:27,433 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 14:49:27,433 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T14:49:17', tmtdew=17.17, humidity=30.38, cloud=29.3, wind=18.37, temperature=13.82, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=0, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T12:48:54.490', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 14:49:27,434 [DEBUG][       Thread-258489][   transport.py][1871] : EOF in transport thread
2025-06-13 14:49:27,497 [DEBUG][Thread-258492 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:49:27,511 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 14:49:27,528 [DEBUG][       Thread-258493][   transport.py][1871] : starting thread (client mode): 0x867b78b0
2025-06-13 14:49:27,528 [DEBUG][       Thread-258493][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 14:49:27,544 [DEBUG][       Thread-258493][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 14:49:27,544 [ INFO][       Thread-258493][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 14:49:27,551 [DEBUG][       Thread-258493][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 14:49:27,552 [DEBUG][       Thread-258493][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 14:49:27,552 [DEBUG][       Thread-258493][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 14:49:27,552 [DEBUG][       Thread-258493][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:49:27,552 [DEBUG][       Thread-258493][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:49:27,552 [DEBUG][       Thread-258493][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:49:27,552 [DEBUG][       Thread-258493][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:49:27,552 [DEBUG][       Thread-258493][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 14:49:27,552 [DEBUG][       Thread-258493][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 14:49:27,552 [DEBUG][       Thread-258493][   transport.py][1871] : client lang: <none>
2025-06-13 14:49:27,552 [DEBUG][       Thread-258493][   transport.py][1871] : server lang: <none>
2025-06-13 14:49:27,552 [DEBUG][       Thread-258493][   transport.py][1871] : kex follows: False
2025-06-13 14:49:27,552 [DEBUG][       Thread-258493][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 14:49:27,552 [DEBUG][       Thread-258493][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 14:49:27,552 [DEBUG][       Thread-258493][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 14:49:27,553 [DEBUG][       Thread-258493][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 14:49:27,553 [DEBUG][       Thread-258493][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 14:49:27,553 [DEBUG][       Thread-258493][   transport.py][1871] : Compression: none
2025-06-13 14:49:27,553 [DEBUG][       Thread-258493][   transport.py][1871] : === End of kex handshake ===
2025-06-13 14:49:27,611 [DEBUG][       Thread-258493][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 14:49:27,611 [DEBUG][       Thread-258493][   transport.py][1871] : Switch to new keys ...
2025-06-13 14:49:27,612 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 14:49:27,613 [DEBUG][       Thread-258493][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 14:49:27,613 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 14:49:27,667 [DEBUG][       Thread-258493][   transport.py][1871] : userauth is OK
2025-06-13 14:49:27,667 [DEBUG][       Thread-258493][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 14:49:27,667 [DEBUG][       Thread-258493][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 14:49:27,667 [DEBUG][       Thread-258493][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 14:49:27,667 [DEBUG][       Thread-258493][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 14:49:27,687 [ INFO][       Thread-258493][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 14:49:27,687 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 14:49:27,688 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 14:49:28,728 [DEBUG][       Thread-258493][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 14:49:28,728 [DEBUG][       Thread-258493][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 14:49:28,779 [DEBUG][       Thread-258493][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 14:49:28,779 [DEBUG][       Thread-258493][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 14:49:28,788 [DEBUG][       Thread-258493][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 14:49:28,805 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 14:49:28,805 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 14:49:28,813 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 14:49:28,821 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 14:49:28,821 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 14:49:28,822 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 14:49:28,829 [DEBUG][       Thread-258493][   transport.py][1871] : EOF in transport thread
2025-06-13 14:49:36,525 [DEBUG][Thread-258495 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:49:38,832 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 14:49:38,832 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 14:49:38,833 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 14:49:38,835 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 14:49:39,327 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 14, 49, 17), 17.17, 30.38, 29.3, 18.37, 13.82, 0, 0, 0, 0, 0, 0),)
2025-06-13 14:49:39,327 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 14:49:17
2025-06-13 14:49:39,409 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 14:49:39,413 [DEBUG][       Thread-258496][   transport.py][1871] : starting thread (client mode): 0x86352f20
2025-06-13 14:49:39,413 [DEBUG][       Thread-258496][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 14:49:39,435 [DEBUG][       Thread-258496][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 14:49:39,435 [ INFO][       Thread-258496][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 14:49:39,438 [DEBUG][       Thread-258496][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 14:49:39,438 [DEBUG][       Thread-258496][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 14:49:39,438 [DEBUG][       Thread-258496][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 14:49:39,438 [DEBUG][       Thread-258496][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:49:39,438 [DEBUG][       Thread-258496][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:49:39,438 [DEBUG][       Thread-258496][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:49:39,438 [DEBUG][       Thread-258496][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:49:39,438 [DEBUG][       Thread-258496][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 14:49:39,439 [DEBUG][       Thread-258496][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 14:49:39,439 [DEBUG][       Thread-258496][   transport.py][1871] : client lang: <none>
2025-06-13 14:49:39,439 [DEBUG][       Thread-258496][   transport.py][1871] : server lang: <none>
2025-06-13 14:49:39,439 [DEBUG][       Thread-258496][   transport.py][1871] : kex follows: False
2025-06-13 14:49:39,439 [DEBUG][       Thread-258496][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 14:49:39,439 [DEBUG][       Thread-258496][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 14:49:39,439 [DEBUG][       Thread-258496][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 14:49:39,439 [DEBUG][       Thread-258496][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 14:49:39,439 [DEBUG][       Thread-258496][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 14:49:39,439 [DEBUG][       Thread-258496][   transport.py][1871] : Compression: none
2025-06-13 14:49:39,439 [DEBUG][       Thread-258496][   transport.py][1871] : === End of kex handshake ===
2025-06-13 14:49:39,454 [DEBUG][       Thread-258496][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 14:49:39,455 [DEBUG][       Thread-258496][   transport.py][1871] : Switch to new keys ...
2025-06-13 14:49:39,456 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 14:49:39,456 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 14:49:39,456 [DEBUG][       Thread-258496][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 14:49:39,457 [DEBUG][       Thread-258496][   transport.py][1871] : userauth is OK
2025-06-13 14:49:39,470 [ INFO][       Thread-258496][   transport.py][1871] : Authentication (password) successful!
2025-06-13 14:49:39,470 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 14:49:40,144 [DEBUG][       Thread-258496][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 14:49:40,144 [DEBUG][       Thread-258496][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 14:49:40,185 [DEBUG][       Thread-258496][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 14:49:40,185 [DEBUG][       Thread-258496][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 14:49:40,188 [DEBUG][       Thread-258496][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 14:49:40,202 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 14:49:40,203 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 14:49:40,205 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 14:49:40,207 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 14:49:40,213 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 14:49:40,215 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 14:49:40,215 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 14:49:40,216 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 14:49:40,216 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.533964 -999.00  +13.60  18.61     35   -1.30 1 1 1 1 1   887    0 15.43 21.28 ----- 18.0 18.6 42.2 21.5 17.7 -30.9 16.6 -32.2 17.2 -30.8 18.6 -28.9
2025-06-13 14:49:40,216 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 14:49:40,216 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 14:49:40,216 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.533964
2025-06-13 14:49:40,217 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 14:49:40,217 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 14:49:40,217 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 14:49:40,218 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 14:49:40,218 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 14:49:40,218 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T14:49:17', tmtdew=17.17, humidity=30.38, cloud=29.3, wind=18.37, temperature=13.82, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=0, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T12:48:54.490', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 14:49:40,218 [DEBUG][       Thread-258496][   transport.py][1871] : EOF in transport thread
2025-06-13 14:49:40,301 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 14:49:40,312 [DEBUG][       Thread-258499][   transport.py][1871] : starting thread (client mode): 0x863ef340
2025-06-13 14:49:40,312 [DEBUG][       Thread-258499][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 14:49:40,329 [DEBUG][       Thread-258499][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 14:49:40,329 [ INFO][       Thread-258499][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 14:49:40,341 [DEBUG][       Thread-258499][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 14:49:40,341 [DEBUG][       Thread-258499][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 14:49:40,341 [DEBUG][       Thread-258499][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 14:49:40,342 [DEBUG][       Thread-258499][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:49:40,342 [DEBUG][       Thread-258499][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:49:40,342 [DEBUG][       Thread-258499][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:49:40,342 [DEBUG][       Thread-258499][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:49:40,342 [DEBUG][       Thread-258499][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 14:49:40,342 [DEBUG][       Thread-258499][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 14:49:40,342 [DEBUG][       Thread-258499][   transport.py][1871] : client lang: <none>
2025-06-13 14:49:40,342 [DEBUG][       Thread-258499][   transport.py][1871] : server lang: <none>
2025-06-13 14:49:40,342 [DEBUG][       Thread-258499][   transport.py][1871] : kex follows: False
2025-06-13 14:49:40,342 [DEBUG][       Thread-258499][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 14:49:40,342 [DEBUG][       Thread-258499][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 14:49:40,342 [DEBUG][       Thread-258499][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 14:49:40,342 [DEBUG][       Thread-258499][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 14:49:40,342 [DEBUG][       Thread-258499][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 14:49:40,342 [DEBUG][       Thread-258499][   transport.py][1871] : Compression: none
2025-06-13 14:49:40,342 [DEBUG][       Thread-258499][   transport.py][1871] : === End of kex handshake ===
2025-06-13 14:49:40,395 [DEBUG][       Thread-258499][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 14:49:40,396 [DEBUG][       Thread-258499][   transport.py][1871] : Switch to new keys ...
2025-06-13 14:49:40,397 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 14:49:40,397 [DEBUG][       Thread-258499][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 14:49:40,398 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 14:49:40,452 [DEBUG][       Thread-258499][   transport.py][1871] : userauth is OK
2025-06-13 14:49:40,452 [DEBUG][       Thread-258499][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 14:49:40,452 [DEBUG][       Thread-258499][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 14:49:40,452 [DEBUG][       Thread-258499][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 14:49:40,452 [DEBUG][       Thread-258499][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 14:49:40,471 [ INFO][       Thread-258499][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 14:49:40,471 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 14:49:40,472 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 14:49:41,511 [DEBUG][       Thread-258499][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 14:49:41,512 [DEBUG][       Thread-258499][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 14:49:41,563 [DEBUG][       Thread-258499][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 14:49:41,563 [DEBUG][       Thread-258499][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 14:49:41,572 [DEBUG][       Thread-258499][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 14:49:41,581 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 14:49:41,581 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 14:49:41,590 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 14:49:41,599 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 14:49:41,599 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 14:49:41,599 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 14:49:41,607 [DEBUG][       Thread-258499][   transport.py][1871] : EOF in transport thread
2025-06-13 14:49:45,545 [DEBUG][Thread-258501 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:49:51,609 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 14:49:51,609 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 14:49:51,609 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 14:49:51,610 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 14:49:52,090 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 14, 49, 49), 17.13, 30.47, 29.3, 17.7, 13.82, 0, 0, 0, 0, 0, 0),)
2025-06-13 14:49:52,090 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 14:49:49
2025-06-13 14:49:52,172 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 14:49:52,176 [DEBUG][       Thread-258502][   transport.py][1871] : starting thread (client mode): 0x86392a10
2025-06-13 14:49:52,176 [DEBUG][       Thread-258502][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 14:49:52,197 [DEBUG][       Thread-258502][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 14:49:52,197 [ INFO][       Thread-258502][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 14:49:52,200 [DEBUG][       Thread-258502][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 14:49:52,200 [DEBUG][       Thread-258502][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 14:49:52,200 [DEBUG][       Thread-258502][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 14:49:52,200 [DEBUG][       Thread-258502][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:49:52,200 [DEBUG][       Thread-258502][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:49:52,200 [DEBUG][       Thread-258502][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:49:52,200 [DEBUG][       Thread-258502][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:49:52,200 [DEBUG][       Thread-258502][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 14:49:52,200 [DEBUG][       Thread-258502][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 14:49:52,200 [DEBUG][       Thread-258502][   transport.py][1871] : client lang: <none>
2025-06-13 14:49:52,200 [DEBUG][       Thread-258502][   transport.py][1871] : server lang: <none>
2025-06-13 14:49:52,201 [DEBUG][       Thread-258502][   transport.py][1871] : kex follows: False
2025-06-13 14:49:52,201 [DEBUG][       Thread-258502][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 14:49:52,201 [DEBUG][       Thread-258502][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 14:49:52,201 [DEBUG][       Thread-258502][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 14:49:52,201 [DEBUG][       Thread-258502][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 14:49:52,201 [DEBUG][       Thread-258502][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 14:49:52,201 [DEBUG][       Thread-258502][   transport.py][1871] : Compression: none
2025-06-13 14:49:52,201 [DEBUG][       Thread-258502][   transport.py][1871] : === End of kex handshake ===
2025-06-13 14:49:52,217 [DEBUG][       Thread-258502][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 14:49:52,218 [DEBUG][       Thread-258502][   transport.py][1871] : Switch to new keys ...
2025-06-13 14:49:52,218 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 14:49:52,218 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 14:49:52,219 [DEBUG][       Thread-258502][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 14:49:52,219 [DEBUG][       Thread-258502][   transport.py][1871] : userauth is OK
2025-06-13 14:49:52,232 [ INFO][       Thread-258502][   transport.py][1871] : Authentication (password) successful!
2025-06-13 14:49:52,232 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 14:49:52,862 [DEBUG][       Thread-258502][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 14:49:52,862 [DEBUG][       Thread-258502][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 14:49:52,905 [DEBUG][       Thread-258502][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 14:49:52,905 [DEBUG][       Thread-258502][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 14:49:52,909 [DEBUG][       Thread-258502][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 14:49:52,922 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 14:49:52,922 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 14:49:52,924 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 14:49:52,926 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 14:49:52,932 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 14:49:52,935 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 14:49:52,935 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 14:49:52,935 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 14:49:52,936 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.534311 -999.00  +13.80  18.71     35   -1.00 1 1 1 1 1   887    0 15.50 20.69 ----- 22.6 18.7 48.8 24.5 17.8 -30.4 16.7 -32.0 17.3 -31.0 18.6 -28.4
2025-06-13 14:49:52,936 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 14:49:52,936 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 14:49:52,936 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.534311
2025-06-13 14:49:52,936 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 14:49:52,937 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 14:49:52,937 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 14:49:52,937 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 14:49:52,937 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 14:49:52,937 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T14:49:49', tmtdew=17.13, humidity=30.47, cloud=29.3, wind=17.7, temperature=13.82, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=0, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T12:49:24.470', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 14:49:52,939 [DEBUG][       Thread-258502][   transport.py][1871] : EOF in transport thread
2025-06-13 14:49:53,021 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 14:49:53,032 [DEBUG][       Thread-258505][   transport.py][1871] : starting thread (client mode): 0x86393b20
2025-06-13 14:49:53,032 [DEBUG][       Thread-258505][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 14:49:53,047 [DEBUG][       Thread-258505][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 14:49:53,047 [ INFO][       Thread-258505][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 14:49:53,054 [DEBUG][       Thread-258505][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 14:49:53,054 [DEBUG][       Thread-258505][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 14:49:53,054 [DEBUG][       Thread-258505][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 14:49:53,054 [DEBUG][       Thread-258505][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:49:53,054 [DEBUG][       Thread-258505][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:49:53,054 [DEBUG][       Thread-258505][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:49:53,054 [DEBUG][       Thread-258505][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:49:53,054 [DEBUG][       Thread-258505][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 14:49:53,054 [DEBUG][       Thread-258505][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 14:49:53,054 [DEBUG][       Thread-258505][   transport.py][1871] : client lang: <none>
2025-06-13 14:49:53,055 [DEBUG][       Thread-258505][   transport.py][1871] : server lang: <none>
2025-06-13 14:49:53,055 [DEBUG][       Thread-258505][   transport.py][1871] : kex follows: False
2025-06-13 14:49:53,055 [DEBUG][       Thread-258505][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 14:49:53,055 [DEBUG][       Thread-258505][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 14:49:53,055 [DEBUG][       Thread-258505][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 14:49:53,055 [DEBUG][       Thread-258505][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 14:49:53,055 [DEBUG][       Thread-258505][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 14:49:53,055 [DEBUG][       Thread-258505][   transport.py][1871] : Compression: none
2025-06-13 14:49:53,055 [DEBUG][       Thread-258505][   transport.py][1871] : === End of kex handshake ===
2025-06-13 14:49:53,111 [DEBUG][       Thread-258505][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 14:49:53,111 [DEBUG][       Thread-258505][   transport.py][1871] : Switch to new keys ...
2025-06-13 14:49:53,112 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 14:49:53,113 [DEBUG][       Thread-258505][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 14:49:53,113 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 14:49:53,167 [DEBUG][       Thread-258505][   transport.py][1871] : userauth is OK
2025-06-13 14:49:53,167 [DEBUG][       Thread-258505][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 14:49:53,167 [DEBUG][       Thread-258505][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 14:49:53,168 [DEBUG][       Thread-258505][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 14:49:53,168 [DEBUG][       Thread-258505][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 14:49:53,186 [ INFO][       Thread-258505][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 14:49:53,186 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 14:49:53,187 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 14:49:54,184 [DEBUG][       Thread-258505][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 14:49:54,184 [DEBUG][       Thread-258505][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 14:49:54,232 [DEBUG][       Thread-258505][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 14:49:54,232 [DEBUG][       Thread-258505][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 14:49:54,241 [DEBUG][       Thread-258505][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 14:49:54,251 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 14:49:54,251 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 14:49:54,261 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 14:49:54,276 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 14:49:54,277 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 14:49:54,277 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 14:49:54,285 [DEBUG][       Thread-258505][   transport.py][1871] : EOF in transport thread
2025-06-13 14:49:54,563 [DEBUG][Thread-258507 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:50:03,606 [DEBUG][Thread-258508 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:50:03,960 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:50:03,962 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:50:04,288 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 14:50:04,288 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 14:50:04,288 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 14:50:04,291 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 14:50:04,771 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 14, 49, 49), 17.13, 30.47, 29.3, 17.7, 13.82, 0, 0, 0, 0, 0, 0),)
2025-06-13 14:50:04,771 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 14:49:49
2025-06-13 14:50:04,853 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 14:50:04,857 [DEBUG][       Thread-258509][   transport.py][1871] : starting thread (client mode): 0x86393b20
2025-06-13 14:50:04,857 [DEBUG][       Thread-258509][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 14:50:04,875 [DEBUG][       Thread-258509][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 14:50:04,875 [ INFO][       Thread-258509][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 14:50:04,878 [DEBUG][       Thread-258509][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 14:50:04,878 [DEBUG][       Thread-258509][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 14:50:04,878 [DEBUG][       Thread-258509][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 14:50:04,878 [DEBUG][       Thread-258509][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:50:04,878 [DEBUG][       Thread-258509][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:50:04,878 [DEBUG][       Thread-258509][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:50:04,878 [DEBUG][       Thread-258509][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:50:04,878 [DEBUG][       Thread-258509][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 14:50:04,879 [DEBUG][       Thread-258509][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 14:50:04,879 [DEBUG][       Thread-258509][   transport.py][1871] : client lang: <none>
2025-06-13 14:50:04,879 [DEBUG][       Thread-258509][   transport.py][1871] : server lang: <none>
2025-06-13 14:50:04,879 [DEBUG][       Thread-258509][   transport.py][1871] : kex follows: False
2025-06-13 14:50:04,879 [DEBUG][       Thread-258509][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 14:50:04,879 [DEBUG][       Thread-258509][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 14:50:04,879 [DEBUG][       Thread-258509][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 14:50:04,879 [DEBUG][       Thread-258509][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 14:50:04,879 [DEBUG][       Thread-258509][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 14:50:04,879 [DEBUG][       Thread-258509][   transport.py][1871] : Compression: none
2025-06-13 14:50:04,879 [DEBUG][       Thread-258509][   transport.py][1871] : === End of kex handshake ===
2025-06-13 14:50:04,895 [DEBUG][       Thread-258509][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 14:50:04,895 [DEBUG][       Thread-258509][   transport.py][1871] : Switch to new keys ...
2025-06-13 14:50:04,896 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 14:50:04,896 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 14:50:04,897 [DEBUG][       Thread-258509][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 14:50:04,897 [DEBUG][       Thread-258509][   transport.py][1871] : userauth is OK
2025-06-13 14:50:04,911 [ INFO][       Thread-258509][   transport.py][1871] : Authentication (password) successful!
2025-06-13 14:50:04,912 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 14:50:05,281 [DEBUG][Thread-258511 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:50:06,361 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:50:06,363 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:50:12,629 [DEBUG][Thread-258512 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:50:12,771 [DEBUG][       Thread-258509][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 14:50:12,771 [DEBUG][       Thread-258509][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 14:50:12,813 [DEBUG][       Thread-258509][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 14:50:12,813 [DEBUG][       Thread-258509][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 14:50:12,816 [DEBUG][       Thread-258509][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 14:50:12,829 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 14:50:12,829 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 14:50:12,831 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 14:50:12,833 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 14:50:12,854 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 14:50:12,856 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 14:50:12,857 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 14:50:12,857 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 14:50:12,857 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.534311 -999.00  +13.80  18.71     35   -1.00 1 1 1 1 1   887    0 15.50 20.69 ----- 22.6 18.7 48.8 24.5 17.8 -30.4 16.7 -32.0 17.3 -31.0 18.6 -28.4
2025-06-13 14:50:12,857 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 14:50:12,857 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 14:50:12,858 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.534311
2025-06-13 14:50:12,858 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 14:50:12,858 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 14:50:12,859 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 14:50:12,859 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 14:50:12,859 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 14:50:12,859 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T14:49:49', tmtdew=17.13, humidity=30.47, cloud=29.3, wind=17.7, temperature=13.82, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=0, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T12:49:24.470', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 14:50:12,860 [DEBUG][       Thread-258509][   transport.py][1871] : EOF in transport thread
2025-06-13 14:50:12,944 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 14:50:12,963 [DEBUG][       Thread-258514][   transport.py][1871] : starting thread (client mode): 0x863694e0
2025-06-13 14:50:12,963 [DEBUG][       Thread-258514][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 14:50:12,983 [DEBUG][       Thread-258514][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 14:50:12,984 [ INFO][       Thread-258514][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 14:50:12,991 [DEBUG][       Thread-258514][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 14:50:12,991 [DEBUG][       Thread-258514][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 14:50:12,991 [DEBUG][       Thread-258514][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 14:50:12,991 [DEBUG][       Thread-258514][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:50:12,991 [DEBUG][       Thread-258514][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:50:12,992 [DEBUG][       Thread-258514][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:50:12,992 [DEBUG][       Thread-258514][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:50:12,992 [DEBUG][       Thread-258514][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 14:50:12,992 [DEBUG][       Thread-258514][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 14:50:12,992 [DEBUG][       Thread-258514][   transport.py][1871] : client lang: <none>
2025-06-13 14:50:12,992 [DEBUG][       Thread-258514][   transport.py][1871] : server lang: <none>
2025-06-13 14:50:12,992 [DEBUG][       Thread-258514][   transport.py][1871] : kex follows: False
2025-06-13 14:50:12,992 [DEBUG][       Thread-258514][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 14:50:12,992 [DEBUG][       Thread-258514][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 14:50:12,992 [DEBUG][       Thread-258514][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 14:50:12,992 [DEBUG][       Thread-258514][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 14:50:12,992 [DEBUG][       Thread-258514][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 14:50:12,992 [DEBUG][       Thread-258514][   transport.py][1871] : Compression: none
2025-06-13 14:50:12,992 [DEBUG][       Thread-258514][   transport.py][1871] : === End of kex handshake ===
2025-06-13 14:50:13,051 [DEBUG][       Thread-258514][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 14:50:13,052 [DEBUG][       Thread-258514][   transport.py][1871] : Switch to new keys ...
2025-06-13 14:50:13,052 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 14:50:13,053 [DEBUG][       Thread-258514][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 14:50:13,054 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 14:50:13,108 [DEBUG][       Thread-258514][   transport.py][1871] : userauth is OK
2025-06-13 14:50:13,109 [DEBUG][       Thread-258514][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 14:50:13,109 [DEBUG][       Thread-258514][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 14:50:13,109 [DEBUG][       Thread-258514][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 14:50:13,109 [DEBUG][       Thread-258514][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 14:50:13,128 [ INFO][       Thread-258514][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 14:50:13,129 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 14:50:13,129 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 14:50:14,175 [DEBUG][       Thread-258514][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 14:50:14,175 [DEBUG][       Thread-258514][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 14:50:14,227 [DEBUG][       Thread-258514][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 14:50:14,228 [DEBUG][       Thread-258514][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 14:50:14,237 [DEBUG][       Thread-258514][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 14:50:14,247 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 14:50:14,248 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 14:50:14,256 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 14:50:14,265 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 14:50:14,266 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 14:50:14,266 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 14:50:14,279 [DEBUG][       Thread-258514][   transport.py][1871] : EOF in transport thread
2025-06-13 14:50:19,249 [DEBUG][Thread-258516 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:50:21,649 [DEBUG][Thread-258517 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:50:24,276 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 14:50:24,276 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 14:50:24,276 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 14:50:24,276 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 14:50:24,785 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 14, 50, 21), 17.13, 30.29, 29.3, 25.21, 13.9, 0, 0, 0, 0, 0, 0),)
2025-06-13 14:50:24,785 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 14:50:21
2025-06-13 14:50:24,871 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 14:50:24,876 [DEBUG][       Thread-258518][   transport.py][1871] : starting thread (client mode): 0x863be950
2025-06-13 14:50:24,876 [DEBUG][       Thread-258518][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 14:50:24,895 [DEBUG][       Thread-258518][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 14:50:24,895 [ INFO][       Thread-258518][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 14:50:24,899 [DEBUG][       Thread-258518][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 14:50:24,899 [DEBUG][       Thread-258518][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 14:50:24,899 [DEBUG][       Thread-258518][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 14:50:24,899 [DEBUG][       Thread-258518][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:50:24,899 [DEBUG][       Thread-258518][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:50:24,899 [DEBUG][       Thread-258518][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:50:24,899 [DEBUG][       Thread-258518][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:50:24,899 [DEBUG][       Thread-258518][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 14:50:24,899 [DEBUG][       Thread-258518][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 14:50:24,899 [DEBUG][       Thread-258518][   transport.py][1871] : client lang: <none>
2025-06-13 14:50:24,899 [DEBUG][       Thread-258518][   transport.py][1871] : server lang: <none>
2025-06-13 14:50:24,899 [DEBUG][       Thread-258518][   transport.py][1871] : kex follows: False
2025-06-13 14:50:24,899 [DEBUG][       Thread-258518][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 14:50:24,899 [DEBUG][       Thread-258518][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 14:50:24,899 [DEBUG][       Thread-258518][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 14:50:24,899 [DEBUG][       Thread-258518][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 14:50:24,899 [DEBUG][       Thread-258518][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 14:50:24,899 [DEBUG][       Thread-258518][   transport.py][1871] : Compression: none
2025-06-13 14:50:24,899 [DEBUG][       Thread-258518][   transport.py][1871] : === End of kex handshake ===
2025-06-13 14:50:24,912 [DEBUG][       Thread-258518][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 14:50:24,912 [DEBUG][       Thread-258518][   transport.py][1871] : Switch to new keys ...
2025-06-13 14:50:24,912 [DEBUG][       Thread-258518][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 14:50:24,912 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 14:50:24,912 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 14:50:24,913 [DEBUG][       Thread-258518][   transport.py][1871] : userauth is OK
2025-06-13 14:50:24,925 [ INFO][       Thread-258518][   transport.py][1871] : Authentication (password) successful!
2025-06-13 14:50:24,925 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 14:50:25,497 [DEBUG][       Thread-258518][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 14:50:25,497 [DEBUG][       Thread-258518][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 14:50:25,540 [DEBUG][       Thread-258518][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 14:50:25,540 [DEBUG][       Thread-258518][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 14:50:25,542 [DEBUG][       Thread-258518][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 14:50:25,549 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 14:50:25,549 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 14:50:25,550 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 14:50:25,551 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 14:50:25,554 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 14:50:25,555 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 14:50:25,555 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 14:50:25,555 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 14:50:25,555 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.534658 -999.00  +14.00  29.25     34   -1.30 1 1 1 1 1   887    0 15.22 21.71 ----- 23.8 29.2 47.6 31.9 17.8 -31.0 16.8 -31.4 17.4 -30.1 18.6 -29.9
2025-06-13 14:50:25,555 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 14:50:25,555 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 14:50:25,555 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.534658
2025-06-13 14:50:25,555 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 14:50:25,555 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 14:50:25,555 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 14:50:25,555 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 14:50:25,555 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 14:50:25,555 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T14:50:21', tmtdew=17.13, humidity=30.29, cloud=29.3, wind=25.21, temperature=13.9, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=0, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T12:49:54.451', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 14:50:25,556 [DEBUG][       Thread-258518][   transport.py][1871] : EOF in transport thread
2025-06-13 14:50:25,630 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 14:50:25,639 [DEBUG][       Thread-258521][   transport.py][1871] : starting thread (client mode): 0x863ca6e0
2025-06-13 14:50:25,639 [DEBUG][       Thread-258521][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 14:50:25,654 [DEBUG][       Thread-258521][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 14:50:25,655 [ INFO][       Thread-258521][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 14:50:25,662 [DEBUG][       Thread-258521][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 14:50:25,662 [DEBUG][       Thread-258521][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 14:50:25,662 [DEBUG][       Thread-258521][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 14:50:25,662 [DEBUG][       Thread-258521][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:50:25,662 [DEBUG][       Thread-258521][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:50:25,662 [DEBUG][       Thread-258521][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:50:25,662 [DEBUG][       Thread-258521][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:50:25,662 [DEBUG][       Thread-258521][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 14:50:25,662 [DEBUG][       Thread-258521][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 14:50:25,662 [DEBUG][       Thread-258521][   transport.py][1871] : client lang: <none>
2025-06-13 14:50:25,662 [DEBUG][       Thread-258521][   transport.py][1871] : server lang: <none>
2025-06-13 14:50:25,662 [DEBUG][       Thread-258521][   transport.py][1871] : kex follows: False
2025-06-13 14:50:25,662 [DEBUG][       Thread-258521][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 14:50:25,662 [DEBUG][       Thread-258521][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 14:50:25,662 [DEBUG][       Thread-258521][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 14:50:25,662 [DEBUG][       Thread-258521][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 14:50:25,662 [DEBUG][       Thread-258521][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 14:50:25,662 [DEBUG][       Thread-258521][   transport.py][1871] : Compression: none
2025-06-13 14:50:25,662 [DEBUG][       Thread-258521][   transport.py][1871] : === End of kex handshake ===
2025-06-13 14:50:25,717 [DEBUG][       Thread-258521][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 14:50:25,718 [DEBUG][       Thread-258521][   transport.py][1871] : Switch to new keys ...
2025-06-13 14:50:25,718 [DEBUG][       Thread-258521][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 14:50:25,718 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 14:50:25,718 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 14:50:25,774 [DEBUG][       Thread-258521][   transport.py][1871] : userauth is OK
2025-06-13 14:50:25,774 [DEBUG][       Thread-258521][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 14:50:25,774 [DEBUG][       Thread-258521][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 14:50:25,774 [DEBUG][       Thread-258521][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 14:50:25,774 [DEBUG][       Thread-258521][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 14:50:25,789 [ INFO][       Thread-258521][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 14:50:25,789 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 14:50:25,789 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 14:50:26,803 [DEBUG][       Thread-258521][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 14:50:26,803 [DEBUG][       Thread-258521][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 14:50:26,851 [DEBUG][       Thread-258521][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 14:50:26,851 [DEBUG][       Thread-258521][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 14:50:26,860 [DEBUG][       Thread-258521][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 14:50:26,867 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 14:50:26,868 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 14:50:26,875 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 14:50:26,883 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 14:50:26,883 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 14:50:26,884 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 14:50:26,897 [DEBUG][       Thread-258521][   transport.py][1871] : EOF in transport thread
2025-06-13 14:50:30,666 [DEBUG][Thread-258523 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:50:36,888 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 14:50:36,888 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 14:50:36,888 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 14:50:36,891 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 14:50:37,369 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 14, 50, 21), 17.13, 30.29, 29.3, 25.21, 13.9, 0, 0, 0, 0, 0, 0),)
2025-06-13 14:50:37,369 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 14:50:21
2025-06-13 14:50:37,451 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 14:50:37,455 [DEBUG][       Thread-258524][   transport.py][1871] : starting thread (client mode): 0x86392fb0
2025-06-13 14:50:37,455 [DEBUG][       Thread-258524][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 14:50:37,476 [DEBUG][       Thread-258524][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 14:50:37,476 [ INFO][       Thread-258524][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 14:50:37,480 [DEBUG][       Thread-258524][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 14:50:37,480 [DEBUG][       Thread-258524][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 14:50:37,480 [DEBUG][       Thread-258524][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 14:50:37,480 [DEBUG][       Thread-258524][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:50:37,480 [DEBUG][       Thread-258524][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:50:37,480 [DEBUG][       Thread-258524][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:50:37,480 [DEBUG][       Thread-258524][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:50:37,480 [DEBUG][       Thread-258524][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 14:50:37,480 [DEBUG][       Thread-258524][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 14:50:37,480 [DEBUG][       Thread-258524][   transport.py][1871] : client lang: <none>
2025-06-13 14:50:37,480 [DEBUG][       Thread-258524][   transport.py][1871] : server lang: <none>
2025-06-13 14:50:37,480 [DEBUG][       Thread-258524][   transport.py][1871] : kex follows: False
2025-06-13 14:50:37,480 [DEBUG][       Thread-258524][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 14:50:37,480 [DEBUG][       Thread-258524][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 14:50:37,480 [DEBUG][       Thread-258524][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 14:50:37,480 [DEBUG][       Thread-258524][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 14:50:37,480 [DEBUG][       Thread-258524][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 14:50:37,480 [DEBUG][       Thread-258524][   transport.py][1871] : Compression: none
2025-06-13 14:50:37,480 [DEBUG][       Thread-258524][   transport.py][1871] : === End of kex handshake ===
2025-06-13 14:50:37,497 [DEBUG][       Thread-258524][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 14:50:37,497 [DEBUG][       Thread-258524][   transport.py][1871] : Switch to new keys ...
2025-06-13 14:50:37,498 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 14:50:37,498 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 14:50:37,498 [DEBUG][       Thread-258524][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 14:50:37,499 [DEBUG][       Thread-258524][   transport.py][1871] : userauth is OK
2025-06-13 14:50:37,523 [ INFO][       Thread-258524][   transport.py][1871] : Authentication (password) successful!
2025-06-13 14:50:37,524 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 14:50:38,128 [DEBUG][       Thread-258524][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 14:50:38,129 [DEBUG][       Thread-258524][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 14:50:38,173 [DEBUG][       Thread-258524][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 14:50:38,173 [DEBUG][       Thread-258524][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 14:50:38,176 [DEBUG][       Thread-258524][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 14:50:38,188 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 14:50:38,189 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 14:50:38,190 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 14:50:38,192 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 14:50:38,198 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 14:50:38,199 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 14:50:38,200 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 14:50:38,200 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 14:50:38,201 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.534658 -999.00  +14.00  29.25     34   -1.30 1 1 1 1 1   887    0 15.22 21.71 ----- 23.8 29.2 47.6 31.9 17.8 -31.0 16.8 -31.4 17.4 -30.1 18.6 -29.9
2025-06-13 14:50:38,201 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 14:50:38,201 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 14:50:38,201 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.534658
2025-06-13 14:50:38,201 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 14:50:38,202 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 14:50:38,202 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 14:50:38,202 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 14:50:38,202 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 14:50:38,202 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T14:50:21', tmtdew=17.13, humidity=30.29, cloud=29.3, wind=25.21, temperature=13.9, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=0, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T12:49:54.451', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 14:50:38,203 [DEBUG][       Thread-258524][   transport.py][1871] : EOF in transport thread
2025-06-13 14:50:38,286 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 14:50:38,300 [DEBUG][       Thread-258527][   transport.py][1871] : starting thread (client mode): 0x863ef340
2025-06-13 14:50:38,300 [DEBUG][       Thread-258527][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 14:50:38,316 [DEBUG][       Thread-258527][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 14:50:38,316 [ INFO][       Thread-258527][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 14:50:38,329 [DEBUG][       Thread-258527][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 14:50:38,330 [DEBUG][       Thread-258527][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 14:50:38,330 [DEBUG][       Thread-258527][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 14:50:38,330 [DEBUG][       Thread-258527][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:50:38,330 [DEBUG][       Thread-258527][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:50:38,330 [DEBUG][       Thread-258527][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:50:38,330 [DEBUG][       Thread-258527][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:50:38,330 [DEBUG][       Thread-258527][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 14:50:38,330 [DEBUG][       Thread-258527][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 14:50:38,330 [DEBUG][       Thread-258527][   transport.py][1871] : client lang: <none>
2025-06-13 14:50:38,330 [DEBUG][       Thread-258527][   transport.py][1871] : server lang: <none>
2025-06-13 14:50:38,330 [DEBUG][       Thread-258527][   transport.py][1871] : kex follows: False
2025-06-13 14:50:38,330 [DEBUG][       Thread-258527][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 14:50:38,330 [DEBUG][       Thread-258527][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 14:50:38,330 [DEBUG][       Thread-258527][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 14:50:38,330 [DEBUG][       Thread-258527][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 14:50:38,330 [DEBUG][       Thread-258527][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 14:50:38,330 [DEBUG][       Thread-258527][   transport.py][1871] : Compression: none
2025-06-13 14:50:38,330 [DEBUG][       Thread-258527][   transport.py][1871] : === End of kex handshake ===
2025-06-13 14:50:38,386 [DEBUG][       Thread-258527][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 14:50:38,387 [DEBUG][       Thread-258527][   transport.py][1871] : Switch to new keys ...
2025-06-13 14:50:38,388 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 14:50:38,388 [DEBUG][       Thread-258527][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 14:50:38,389 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 14:50:38,450 [DEBUG][       Thread-258527][   transport.py][1871] : userauth is OK
2025-06-13 14:50:38,450 [DEBUG][       Thread-258527][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 14:50:38,450 [DEBUG][       Thread-258527][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 14:50:38,450 [DEBUG][       Thread-258527][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 14:50:38,450 [DEBUG][       Thread-258527][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 14:50:38,474 [ INFO][       Thread-258527][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 14:50:38,474 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 14:50:38,474 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 14:50:39,524 [DEBUG][       Thread-258527][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 14:50:39,524 [DEBUG][       Thread-258527][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 14:50:39,573 [DEBUG][       Thread-258527][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 14:50:39,573 [DEBUG][       Thread-258527][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 14:50:39,591 [DEBUG][       Thread-258527][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 14:50:39,609 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 14:50:39,609 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 14:50:39,618 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 14:50:39,630 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 14:50:39,630 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 14:50:39,631 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 14:50:39,643 [DEBUG][       Thread-258527][   transport.py][1871] : EOF in transport thread
2025-06-13 14:50:39,710 [DEBUG][Thread-258529 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:50:48,733 [DEBUG][Thread-258530 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:50:49,640 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 14:50:49,640 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 14:50:49,640 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 14:50:49,641 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 14:50:50,100 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 14, 50, 21), 17.13, 30.29, 29.3, 25.21, 13.9, 0, 0, 0, 0, 0, 0),)
2025-06-13 14:50:50,100 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 14:50:21
2025-06-13 14:50:50,181 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 14:50:50,185 [DEBUG][       Thread-258531][   transport.py][1871] : starting thread (client mode): 0x86368970
2025-06-13 14:50:50,186 [DEBUG][       Thread-258531][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 14:50:50,202 [DEBUG][       Thread-258531][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 14:50:50,202 [ INFO][       Thread-258531][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 14:50:50,205 [DEBUG][       Thread-258531][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 14:50:50,205 [DEBUG][       Thread-258531][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 14:50:50,206 [DEBUG][       Thread-258531][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 14:50:50,206 [DEBUG][       Thread-258531][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:50:50,206 [DEBUG][       Thread-258531][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:50:50,206 [DEBUG][       Thread-258531][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:50:50,206 [DEBUG][       Thread-258531][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:50:50,206 [DEBUG][       Thread-258531][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 14:50:50,206 [DEBUG][       Thread-258531][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 14:50:50,206 [DEBUG][       Thread-258531][   transport.py][1871] : client lang: <none>
2025-06-13 14:50:50,206 [DEBUG][       Thread-258531][   transport.py][1871] : server lang: <none>
2025-06-13 14:50:50,206 [DEBUG][       Thread-258531][   transport.py][1871] : kex follows: False
2025-06-13 14:50:50,206 [DEBUG][       Thread-258531][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 14:50:50,206 [DEBUG][       Thread-258531][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 14:50:50,206 [DEBUG][       Thread-258531][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 14:50:50,206 [DEBUG][       Thread-258531][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 14:50:50,206 [DEBUG][       Thread-258531][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 14:50:50,206 [DEBUG][       Thread-258531][   transport.py][1871] : Compression: none
2025-06-13 14:50:50,206 [DEBUG][       Thread-258531][   transport.py][1871] : === End of kex handshake ===
2025-06-13 14:50:50,222 [DEBUG][       Thread-258531][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 14:50:50,222 [DEBUG][       Thread-258531][   transport.py][1871] : Switch to new keys ...
2025-06-13 14:50:50,223 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 14:50:50,223 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 14:50:50,224 [DEBUG][       Thread-258531][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 14:50:50,224 [DEBUG][       Thread-258531][   transport.py][1871] : userauth is OK
2025-06-13 14:50:50,237 [ INFO][       Thread-258531][   transport.py][1871] : Authentication (password) successful!
2025-06-13 14:50:50,238 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 14:50:50,969 [DEBUG][       Thread-258531][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 14:50:50,969 [DEBUG][       Thread-258531][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 14:50:51,013 [DEBUG][       Thread-258531][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 14:50:51,013 [DEBUG][       Thread-258531][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 14:50:51,017 [DEBUG][       Thread-258531][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 14:50:51,030 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 14:50:51,031 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 14:50:51,033 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 14:50:51,035 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 14:50:51,041 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 14:50:51,043 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 14:50:51,043 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 14:50:51,044 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 14:50:51,044 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.535006 -999.00  +13.80  28.67     34   -1.70 1 1 1 1 1   887    0 15.39 23.36 ----- 27.6 28.7 45.4 31.6 17.7 -31.5 16.8 -32.8 17.3 -31.3 18.5 -29.8
2025-06-13 14:50:51,044 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 14:50:51,044 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 14:50:51,044 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.535006
2025-06-13 14:50:51,044 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 14:50:51,045 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 14:50:51,045 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 14:50:51,045 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 14:50:51,045 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 14:50:51,045 [DEBUG][       Thread-258531][   transport.py][1871] : EOF in transport thread
2025-06-13 14:50:51,046 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T14:50:21', tmtdew=17.13, humidity=30.29, cloud=29.3, wind=25.21, temperature=13.9, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=0, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T12:50:24.518', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 14:50:51,129 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 14:50:51,139 [DEBUG][       Thread-258534][   transport.py][1871] : starting thread (client mode): 0x842075e0
2025-06-13 14:50:51,139 [DEBUG][       Thread-258534][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 14:50:51,154 [DEBUG][       Thread-258534][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 14:50:51,154 [ INFO][       Thread-258534][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 14:50:51,162 [DEBUG][       Thread-258534][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 14:50:51,162 [DEBUG][       Thread-258534][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 14:50:51,162 [DEBUG][       Thread-258534][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 14:50:51,162 [DEBUG][       Thread-258534][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:50:51,163 [DEBUG][       Thread-258534][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:50:51,163 [DEBUG][       Thread-258534][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:50:51,163 [DEBUG][       Thread-258534][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:50:51,163 [DEBUG][       Thread-258534][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 14:50:51,163 [DEBUG][       Thread-258534][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 14:50:51,163 [DEBUG][       Thread-258534][   transport.py][1871] : client lang: <none>
2025-06-13 14:50:51,163 [DEBUG][       Thread-258534][   transport.py][1871] : server lang: <none>
2025-06-13 14:50:51,163 [DEBUG][       Thread-258534][   transport.py][1871] : kex follows: False
2025-06-13 14:50:51,163 [DEBUG][       Thread-258534][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 14:50:51,163 [DEBUG][       Thread-258534][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 14:50:51,163 [DEBUG][       Thread-258534][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 14:50:51,163 [DEBUG][       Thread-258534][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 14:50:51,163 [DEBUG][       Thread-258534][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 14:50:51,163 [DEBUG][       Thread-258534][   transport.py][1871] : Compression: none
2025-06-13 14:50:51,163 [DEBUG][       Thread-258534][   transport.py][1871] : === End of kex handshake ===
2025-06-13 14:50:51,219 [DEBUG][       Thread-258534][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 14:50:51,219 [DEBUG][       Thread-258534][   transport.py][1871] : Switch to new keys ...
2025-06-13 14:50:51,220 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 14:50:51,221 [DEBUG][       Thread-258534][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 14:50:51,221 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 14:50:51,279 [DEBUG][       Thread-258534][   transport.py][1871] : userauth is OK
2025-06-13 14:50:51,280 [DEBUG][       Thread-258534][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 14:50:51,280 [DEBUG][       Thread-258534][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 14:50:51,280 [DEBUG][       Thread-258534][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 14:50:51,280 [DEBUG][       Thread-258534][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 14:50:51,299 [ INFO][       Thread-258534][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 14:50:51,299 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 14:50:51,300 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 14:50:52,306 [DEBUG][       Thread-258534][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 14:50:52,307 [DEBUG][       Thread-258534][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 14:50:52,356 [DEBUG][       Thread-258534][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 14:50:52,356 [DEBUG][       Thread-258534][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 14:50:52,365 [DEBUG][       Thread-258534][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 14:50:52,375 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 14:50:52,375 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 14:50:52,384 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 14:50:52,393 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 14:50:52,393 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 14:50:52,394 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 14:50:52,402 [DEBUG][       Thread-258534][   transport.py][1871] : EOF in transport thread
2025-06-13 14:50:57,754 [DEBUG][Thread-258536 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:51:02,404 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 14:51:02,405 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 14:51:02,405 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 14:51:02,407 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 14:51:02,872 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 14, 50, 52), 16.99, 30.6, 29.3, 19.48, 13.98, 0, 0, 0, 0, 0, 0),)
2025-06-13 14:51:02,872 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 14:50:52
2025-06-13 14:51:02,954 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 14:51:02,958 [DEBUG][       Thread-258537][   transport.py][1871] : starting thread (client mode): 0x84222f50
2025-06-13 14:51:02,958 [DEBUG][       Thread-258537][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 14:51:02,973 [DEBUG][       Thread-258537][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 14:51:02,973 [ INFO][       Thread-258537][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 14:51:02,977 [DEBUG][       Thread-258537][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 14:51:02,977 [DEBUG][       Thread-258537][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 14:51:02,977 [DEBUG][       Thread-258537][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 14:51:02,977 [DEBUG][       Thread-258537][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:51:02,977 [DEBUG][       Thread-258537][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:51:02,977 [DEBUG][       Thread-258537][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:51:02,977 [DEBUG][       Thread-258537][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:51:02,977 [DEBUG][       Thread-258537][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 14:51:02,977 [DEBUG][       Thread-258537][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 14:51:02,977 [DEBUG][       Thread-258537][   transport.py][1871] : client lang: <none>
2025-06-13 14:51:02,977 [DEBUG][       Thread-258537][   transport.py][1871] : server lang: <none>
2025-06-13 14:51:02,977 [DEBUG][       Thread-258537][   transport.py][1871] : kex follows: False
2025-06-13 14:51:02,977 [DEBUG][       Thread-258537][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 14:51:02,977 [DEBUG][       Thread-258537][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 14:51:02,977 [DEBUG][       Thread-258537][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 14:51:02,977 [DEBUG][       Thread-258537][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 14:51:02,977 [DEBUG][       Thread-258537][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 14:51:02,977 [DEBUG][       Thread-258537][   transport.py][1871] : Compression: none
2025-06-13 14:51:02,977 [DEBUG][       Thread-258537][   transport.py][1871] : === End of kex handshake ===
2025-06-13 14:51:02,993 [DEBUG][       Thread-258537][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 14:51:02,993 [DEBUG][       Thread-258537][   transport.py][1871] : Switch to new keys ...
2025-06-13 14:51:02,994 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 14:51:02,994 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 14:51:02,995 [DEBUG][       Thread-258537][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 14:51:02,995 [DEBUG][       Thread-258537][   transport.py][1871] : userauth is OK
2025-06-13 14:51:03,008 [ INFO][       Thread-258537][   transport.py][1871] : Authentication (password) successful!
2025-06-13 14:51:03,008 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 14:51:03,618 [DEBUG][       Thread-258537][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 14:51:03,618 [DEBUG][       Thread-258537][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 14:51:03,660 [DEBUG][       Thread-258537][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 14:51:03,660 [DEBUG][       Thread-258537][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 14:51:03,663 [DEBUG][       Thread-258537][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 14:51:03,669 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 14:51:03,669 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 14:51:03,670 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 14:51:03,671 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 14:51:03,673 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 14:51:03,673 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 14:51:03,673 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 14:51:03,674 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 14:51:03,674 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.535006 -999.00  +13.80  28.67     34   -1.70 1 1 1 1 1   887    0 15.39 23.36 ----- 27.6 28.7 45.4 31.6 17.7 -31.5 16.8 -32.8 17.3 -31.3 18.5 -29.8
2025-06-13 14:51:03,674 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 14:51:03,674 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 14:51:03,674 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.535006
2025-06-13 14:51:03,674 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 14:51:03,674 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 14:51:03,674 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 14:51:03,674 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 14:51:03,674 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 14:51:03,674 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T14:50:52', tmtdew=16.99, humidity=30.6, cloud=29.3, wind=19.48, temperature=13.98, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=0, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T12:50:24.518', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 14:51:03,674 [DEBUG][       Thread-258537][   transport.py][1871] : EOF in transport thread
2025-06-13 14:51:03,746 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 14:51:03,756 [DEBUG][       Thread-258540][   transport.py][1871] : starting thread (client mode): 0x863beec0
2025-06-13 14:51:03,756 [DEBUG][       Thread-258540][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 14:51:03,771 [DEBUG][       Thread-258540][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 14:51:03,771 [ INFO][       Thread-258540][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 14:51:03,778 [DEBUG][       Thread-258540][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 14:51:03,778 [DEBUG][       Thread-258540][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 14:51:03,778 [DEBUG][       Thread-258540][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 14:51:03,778 [DEBUG][       Thread-258540][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:51:03,778 [DEBUG][       Thread-258540][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:51:03,778 [DEBUG][       Thread-258540][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:51:03,778 [DEBUG][       Thread-258540][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:51:03,778 [DEBUG][       Thread-258540][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 14:51:03,778 [DEBUG][       Thread-258540][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 14:51:03,778 [DEBUG][       Thread-258540][   transport.py][1871] : client lang: <none>
2025-06-13 14:51:03,778 [DEBUG][       Thread-258540][   transport.py][1871] : server lang: <none>
2025-06-13 14:51:03,778 [DEBUG][       Thread-258540][   transport.py][1871] : kex follows: False
2025-06-13 14:51:03,778 [DEBUG][       Thread-258540][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 14:51:03,778 [DEBUG][       Thread-258540][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 14:51:03,778 [DEBUG][       Thread-258540][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 14:51:03,778 [DEBUG][       Thread-258540][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 14:51:03,778 [DEBUG][       Thread-258540][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 14:51:03,778 [DEBUG][       Thread-258540][   transport.py][1871] : Compression: none
2025-06-13 14:51:03,778 [DEBUG][       Thread-258540][   transport.py][1871] : === End of kex handshake ===
2025-06-13 14:51:03,840 [DEBUG][       Thread-258540][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 14:51:03,840 [DEBUG][       Thread-258540][   transport.py][1871] : Switch to new keys ...
2025-06-13 14:51:03,840 [DEBUG][       Thread-258540][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 14:51:03,841 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 14:51:03,841 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 14:51:03,898 [DEBUG][       Thread-258540][   transport.py][1871] : userauth is OK
2025-06-13 14:51:03,898 [DEBUG][       Thread-258540][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 14:51:03,898 [DEBUG][       Thread-258540][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 14:51:03,898 [DEBUG][       Thread-258540][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 14:51:03,898 [DEBUG][       Thread-258540][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 14:51:03,912 [ INFO][       Thread-258540][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 14:51:03,912 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 14:51:03,913 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 14:51:04,100 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:51:04,101 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:51:04,973 [DEBUG][       Thread-258540][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 14:51:04,973 [DEBUG][       Thread-258540][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 14:51:05,023 [DEBUG][       Thread-258540][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 14:51:05,023 [DEBUG][       Thread-258540][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 14:51:05,032 [DEBUG][       Thread-258540][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 14:51:05,039 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 14:51:05,039 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 14:51:05,047 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 14:51:05,055 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 14:51:05,055 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 14:51:05,055 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 14:51:05,063 [DEBUG][       Thread-258540][   transport.py][1871] : EOF in transport thread
2025-06-13 14:51:06,432 [DEBUG][Thread-258542 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:51:06,770 [DEBUG][Thread-258543 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:51:07,489 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:51:07,490 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:51:15,065 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 14:51:15,066 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 14:51:15,066 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 14:51:15,069 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 14:51:15,527 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 14, 50, 52), 16.99, 30.6, 29.3, 19.48, 13.98, 0, 0, 0, 0, 0, 0),)
2025-06-13 14:51:15,527 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 14:50:52
2025-06-13 14:51:15,609 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 14:51:15,616 [DEBUG][       Thread-258544][   transport.py][1871] : starting thread (client mode): 0x84222e60
2025-06-13 14:51:15,616 [DEBUG][       Thread-258544][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 14:51:15,635 [DEBUG][       Thread-258544][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 14:51:15,636 [ INFO][       Thread-258544][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 14:51:15,639 [DEBUG][       Thread-258544][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 14:51:15,639 [DEBUG][       Thread-258544][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 14:51:15,639 [DEBUG][       Thread-258544][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 14:51:15,639 [DEBUG][       Thread-258544][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:51:15,639 [DEBUG][       Thread-258544][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:51:15,639 [DEBUG][       Thread-258544][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:51:15,639 [DEBUG][       Thread-258544][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:51:15,639 [DEBUG][       Thread-258544][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 14:51:15,639 [DEBUG][       Thread-258544][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 14:51:15,639 [DEBUG][       Thread-258544][   transport.py][1871] : client lang: <none>
2025-06-13 14:51:15,639 [DEBUG][       Thread-258544][   transport.py][1871] : server lang: <none>
2025-06-13 14:51:15,639 [DEBUG][       Thread-258544][   transport.py][1871] : kex follows: False
2025-06-13 14:51:15,639 [DEBUG][       Thread-258544][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 14:51:15,639 [DEBUG][       Thread-258544][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 14:51:15,639 [DEBUG][       Thread-258544][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 14:51:15,640 [DEBUG][       Thread-258544][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 14:51:15,640 [DEBUG][       Thread-258544][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 14:51:15,640 [DEBUG][       Thread-258544][   transport.py][1871] : Compression: none
2025-06-13 14:51:15,640 [DEBUG][       Thread-258544][   transport.py][1871] : === End of kex handshake ===
2025-06-13 14:51:15,656 [DEBUG][       Thread-258544][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 14:51:15,656 [DEBUG][       Thread-258544][   transport.py][1871] : Switch to new keys ...
2025-06-13 14:51:15,657 [DEBUG][       Thread-258544][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 14:51:15,657 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 14:51:15,657 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 14:51:15,658 [DEBUG][       Thread-258544][   transport.py][1871] : userauth is OK
2025-06-13 14:51:15,683 [ INFO][       Thread-258544][   transport.py][1871] : Authentication (password) successful!
2025-06-13 14:51:15,683 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 14:51:15,797 [DEBUG][Thread-258546 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:51:16,325 [DEBUG][       Thread-258544][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 14:51:16,325 [DEBUG][       Thread-258544][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 14:51:16,369 [DEBUG][       Thread-258544][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 14:51:16,369 [DEBUG][       Thread-258544][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 14:51:16,373 [DEBUG][       Thread-258544][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 14:51:16,388 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 14:51:16,388 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 14:51:16,390 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 14:51:16,392 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 14:51:16,397 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 14:51:16,399 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 14:51:16,399 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 14:51:16,400 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 14:51:16,400 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.535006 -999.00  +13.80  28.67     34   -1.70 1 1 1 1 1   887    0 15.39 23.36 ----- 27.6 28.7 45.4 31.6 17.7 -31.5 16.8 -32.8 17.3 -31.3 18.5 -29.8
2025-06-13 14:51:16,400 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 14:51:16,400 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 14:51:16,400 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.535006
2025-06-13 14:51:16,400 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 14:51:16,401 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 14:51:16,401 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 14:51:16,401 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 14:51:16,401 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 14:51:16,401 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T14:50:52', tmtdew=16.99, humidity=30.6, cloud=29.3, wind=19.48, temperature=13.98, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=0, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T12:50:24.518', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 14:51:16,403 [DEBUG][       Thread-258544][   transport.py][1871] : EOF in transport thread
2025-06-13 14:51:16,486 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 14:51:16,497 [DEBUG][       Thread-258548][   transport.py][1871] : starting thread (client mode): 0x863eeb60
2025-06-13 14:51:16,497 [DEBUG][       Thread-258548][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 14:51:16,512 [DEBUG][       Thread-258548][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 14:51:16,512 [ INFO][       Thread-258548][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 14:51:16,519 [DEBUG][       Thread-258548][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 14:51:16,520 [DEBUG][       Thread-258548][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 14:51:16,520 [DEBUG][       Thread-258548][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 14:51:16,520 [DEBUG][       Thread-258548][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:51:16,520 [DEBUG][       Thread-258548][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:51:16,520 [DEBUG][       Thread-258548][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:51:16,520 [DEBUG][       Thread-258548][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:51:16,520 [DEBUG][       Thread-258548][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 14:51:16,520 [DEBUG][       Thread-258548][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 14:51:16,520 [DEBUG][       Thread-258548][   transport.py][1871] : client lang: <none>
2025-06-13 14:51:16,520 [DEBUG][       Thread-258548][   transport.py][1871] : server lang: <none>
2025-06-13 14:51:16,520 [DEBUG][       Thread-258548][   transport.py][1871] : kex follows: False
2025-06-13 14:51:16,520 [DEBUG][       Thread-258548][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 14:51:16,520 [DEBUG][       Thread-258548][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 14:51:16,520 [DEBUG][       Thread-258548][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 14:51:16,520 [DEBUG][       Thread-258548][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 14:51:16,520 [DEBUG][       Thread-258548][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 14:51:16,520 [DEBUG][       Thread-258548][   transport.py][1871] : Compression: none
2025-06-13 14:51:16,520 [DEBUG][       Thread-258548][   transport.py][1871] : === End of kex handshake ===
2025-06-13 14:51:16,579 [DEBUG][       Thread-258548][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 14:51:16,579 [DEBUG][       Thread-258548][   transport.py][1871] : Switch to new keys ...
2025-06-13 14:51:16,580 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 14:51:16,580 [DEBUG][       Thread-258548][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 14:51:16,581 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 14:51:16,635 [DEBUG][       Thread-258548][   transport.py][1871] : userauth is OK
2025-06-13 14:51:16,635 [DEBUG][       Thread-258548][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 14:51:16,635 [DEBUG][       Thread-258548][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 14:51:16,635 [DEBUG][       Thread-258548][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 14:51:16,635 [DEBUG][       Thread-258548][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 14:51:16,654 [ INFO][       Thread-258548][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 14:51:16,655 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 14:51:16,655 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 14:51:17,672 [DEBUG][       Thread-258548][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 14:51:17,672 [DEBUG][       Thread-258548][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 14:51:17,724 [DEBUG][       Thread-258548][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 14:51:17,724 [DEBUG][       Thread-258548][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 14:51:17,736 [DEBUG][       Thread-258548][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 14:51:17,751 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 14:51:17,751 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 14:51:17,760 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 14:51:17,769 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 14:51:17,769 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 14:51:17,769 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 14:51:17,777 [DEBUG][       Thread-258548][   transport.py][1871] : EOF in transport thread
2025-06-13 14:51:19,299 [DEBUG][Thread-258550 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:51:24,820 [DEBUG][Thread-258551 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:51:27,780 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 14:51:27,780 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 14:51:27,780 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 14:51:27,783 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 14:51:28,241 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 14, 51, 24), 17.15, 30.63, 29.3, 22.97, 14.03, 0, 0, 0, 0, 0, 0),)
2025-06-13 14:51:28,242 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 14:51:24
2025-06-13 14:51:28,323 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 14:51:28,327 [DEBUG][       Thread-258552][   transport.py][1871] : starting thread (client mode): 0x8636a350
2025-06-13 14:51:28,327 [DEBUG][       Thread-258552][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 14:51:28,347 [DEBUG][       Thread-258552][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 14:51:28,347 [ INFO][       Thread-258552][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 14:51:28,351 [DEBUG][       Thread-258552][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 14:51:28,351 [DEBUG][       Thread-258552][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 14:51:28,351 [DEBUG][       Thread-258552][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 14:51:28,351 [DEBUG][       Thread-258552][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:51:28,351 [DEBUG][       Thread-258552][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:51:28,351 [DEBUG][       Thread-258552][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:51:28,351 [DEBUG][       Thread-258552][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:51:28,351 [DEBUG][       Thread-258552][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 14:51:28,351 [DEBUG][       Thread-258552][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 14:51:28,351 [DEBUG][       Thread-258552][   transport.py][1871] : client lang: <none>
2025-06-13 14:51:28,351 [DEBUG][       Thread-258552][   transport.py][1871] : server lang: <none>
2025-06-13 14:51:28,351 [DEBUG][       Thread-258552][   transport.py][1871] : kex follows: False
2025-06-13 14:51:28,351 [DEBUG][       Thread-258552][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 14:51:28,351 [DEBUG][       Thread-258552][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 14:51:28,351 [DEBUG][       Thread-258552][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 14:51:28,351 [DEBUG][       Thread-258552][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 14:51:28,351 [DEBUG][       Thread-258552][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 14:51:28,352 [DEBUG][       Thread-258552][   transport.py][1871] : Compression: none
2025-06-13 14:51:28,352 [DEBUG][       Thread-258552][   transport.py][1871] : === End of kex handshake ===
2025-06-13 14:51:28,370 [DEBUG][       Thread-258552][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 14:51:28,370 [DEBUG][       Thread-258552][   transport.py][1871] : Switch to new keys ...
2025-06-13 14:51:28,371 [DEBUG][       Thread-258552][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 14:51:28,371 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 14:51:28,371 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 14:51:28,372 [DEBUG][       Thread-258552][   transport.py][1871] : userauth is OK
2025-06-13 14:51:28,385 [ INFO][       Thread-258552][   transport.py][1871] : Authentication (password) successful!
2025-06-13 14:51:28,385 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 14:51:29,017 [DEBUG][       Thread-258552][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 14:51:29,017 [DEBUG][       Thread-258552][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 14:51:29,061 [DEBUG][       Thread-258552][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 14:51:29,061 [DEBUG][       Thread-258552][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 14:51:29,065 [DEBUG][       Thread-258552][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 14:51:29,077 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 14:51:29,077 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 14:51:29,079 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 14:51:29,081 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 14:51:29,087 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 14:51:29,089 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 14:51:29,089 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 14:51:29,090 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 14:51:29,090 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.535353 -999.00  +13.60  25.62     34   -1.50 1 1 1 1 1   887    0 16.00 25.55 ----- 24.0 25.6 38.2 30.3 17.6 -32.1 16.6 -33.3 17.2 -32.1 18.4 -29.6
2025-06-13 14:51:29,090 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 14:51:29,090 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 14:51:29,090 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.535353
2025-06-13 14:51:29,091 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 14:51:29,091 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 14:51:29,091 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 14:51:29,091 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 14:51:29,091 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 14:51:29,092 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T14:51:24', tmtdew=17.15, humidity=30.63, cloud=29.3, wind=22.97, temperature=14.03, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=0, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T12:50:54.499', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 14:51:29,092 [DEBUG][       Thread-258552][   transport.py][1871] : EOF in transport thread
2025-06-13 14:51:29,175 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 14:51:29,184 [DEBUG][       Thread-258555][   transport.py][1871] : starting thread (client mode): 0x863be380
2025-06-13 14:51:29,184 [DEBUG][       Thread-258555][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 14:51:29,202 [DEBUG][       Thread-258555][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 14:51:29,202 [ INFO][       Thread-258555][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 14:51:29,209 [DEBUG][       Thread-258555][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 14:51:29,210 [DEBUG][       Thread-258555][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 14:51:29,210 [DEBUG][       Thread-258555][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 14:51:29,210 [DEBUG][       Thread-258555][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:51:29,210 [DEBUG][       Thread-258555][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:51:29,210 [DEBUG][       Thread-258555][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:51:29,210 [DEBUG][       Thread-258555][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:51:29,210 [DEBUG][       Thread-258555][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 14:51:29,210 [DEBUG][       Thread-258555][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 14:51:29,210 [DEBUG][       Thread-258555][   transport.py][1871] : client lang: <none>
2025-06-13 14:51:29,210 [DEBUG][       Thread-258555][   transport.py][1871] : server lang: <none>
2025-06-13 14:51:29,210 [DEBUG][       Thread-258555][   transport.py][1871] : kex follows: False
2025-06-13 14:51:29,210 [DEBUG][       Thread-258555][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 14:51:29,210 [DEBUG][       Thread-258555][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 14:51:29,210 [DEBUG][       Thread-258555][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 14:51:29,210 [DEBUG][       Thread-258555][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 14:51:29,210 [DEBUG][       Thread-258555][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 14:51:29,210 [DEBUG][       Thread-258555][   transport.py][1871] : Compression: none
2025-06-13 14:51:29,211 [DEBUG][       Thread-258555][   transport.py][1871] : === End of kex handshake ===
2025-06-13 14:51:29,269 [DEBUG][       Thread-258555][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 14:51:29,269 [DEBUG][       Thread-258555][   transport.py][1871] : Switch to new keys ...
2025-06-13 14:51:29,270 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 14:51:29,271 [DEBUG][       Thread-258555][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 14:51:29,271 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 14:51:29,327 [DEBUG][       Thread-258555][   transport.py][1871] : userauth is OK
2025-06-13 14:51:29,327 [DEBUG][       Thread-258555][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 14:51:29,327 [DEBUG][       Thread-258555][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 14:51:29,327 [DEBUG][       Thread-258555][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 14:51:29,327 [DEBUG][       Thread-258555][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 14:51:29,347 [ INFO][       Thread-258555][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 14:51:29,347 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 14:51:29,348 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 14:51:30,441 [DEBUG][       Thread-258555][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 14:51:30,442 [DEBUG][       Thread-258555][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 14:51:30,492 [DEBUG][       Thread-258555][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 14:51:30,492 [DEBUG][       Thread-258555][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 14:51:30,501 [DEBUG][       Thread-258555][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 14:51:30,510 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 14:51:30,511 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 14:51:30,520 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 14:51:30,529 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 14:51:30,529 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 14:51:30,530 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 14:51:30,537 [DEBUG][       Thread-258555][   transport.py][1871] : EOF in transport thread
2025-06-13 14:51:33,843 [DEBUG][Thread-258557 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:51:40,535 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 14:51:40,535 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 14:51:40,535 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 14:51:40,538 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 14:51:41,008 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 14, 51, 24), 17.15, 30.63, 29.3, 22.97, 14.03, 0, 0, 0, 0, 0, 0),)
2025-06-13 14:51:41,008 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 14:51:24
2025-06-13 14:51:41,087 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 14:51:41,093 [DEBUG][       Thread-258558][   transport.py][1871] : starting thread (client mode): 0x86392c50
2025-06-13 14:51:41,093 [DEBUG][       Thread-258558][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 14:51:41,114 [DEBUG][       Thread-258558][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 14:51:41,114 [ INFO][       Thread-258558][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 14:51:41,117 [DEBUG][       Thread-258558][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 14:51:41,118 [DEBUG][       Thread-258558][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 14:51:41,118 [DEBUG][       Thread-258558][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 14:51:41,118 [DEBUG][       Thread-258558][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:51:41,118 [DEBUG][       Thread-258558][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:51:41,118 [DEBUG][       Thread-258558][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:51:41,118 [DEBUG][       Thread-258558][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:51:41,118 [DEBUG][       Thread-258558][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 14:51:41,118 [DEBUG][       Thread-258558][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 14:51:41,118 [DEBUG][       Thread-258558][   transport.py][1871] : client lang: <none>
2025-06-13 14:51:41,118 [DEBUG][       Thread-258558][   transport.py][1871] : server lang: <none>
2025-06-13 14:51:41,118 [DEBUG][       Thread-258558][   transport.py][1871] : kex follows: False
2025-06-13 14:51:41,118 [DEBUG][       Thread-258558][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 14:51:41,118 [DEBUG][       Thread-258558][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 14:51:41,118 [DEBUG][       Thread-258558][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 14:51:41,118 [DEBUG][       Thread-258558][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 14:51:41,118 [DEBUG][       Thread-258558][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 14:51:41,118 [DEBUG][       Thread-258558][   transport.py][1871] : Compression: none
2025-06-13 14:51:41,118 [DEBUG][       Thread-258558][   transport.py][1871] : === End of kex handshake ===
2025-06-13 14:51:41,135 [DEBUG][       Thread-258558][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 14:51:41,136 [DEBUG][       Thread-258558][   transport.py][1871] : Switch to new keys ...
2025-06-13 14:51:41,136 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 14:51:41,137 [DEBUG][       Thread-258558][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 14:51:41,137 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 14:51:41,139 [DEBUG][       Thread-258558][   transport.py][1871] : userauth is OK
2025-06-13 14:51:41,164 [ INFO][       Thread-258558][   transport.py][1871] : Authentication (password) successful!
2025-06-13 14:51:41,164 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 14:51:41,798 [DEBUG][       Thread-258558][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 14:51:41,798 [DEBUG][       Thread-258558][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 14:51:41,840 [DEBUG][       Thread-258558][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 14:51:41,840 [DEBUG][       Thread-258558][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 14:51:41,843 [DEBUG][       Thread-258558][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 14:51:41,856 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 14:51:41,856 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 14:51:41,857 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 14:51:41,858 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 14:51:41,860 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 14:51:41,860 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 14:51:41,860 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 14:51:41,861 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 14:51:41,861 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.535353 -999.00  +13.60  25.62     34   -1.50 1 1 1 1 1   887    0 16.00 25.55 ----- 24.0 25.6 38.2 30.3 17.6 -32.1 16.6 -33.3 17.2 -32.1 18.4 -29.6
2025-06-13 14:51:41,861 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 14:51:41,861 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 14:51:41,861 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.535353
2025-06-13 14:51:41,861 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 14:51:41,861 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 14:51:41,861 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 14:51:41,861 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 14:51:41,861 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 14:51:41,861 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T14:51:24', tmtdew=17.15, humidity=30.63, cloud=29.3, wind=22.97, temperature=14.03, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=0, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T12:50:54.499', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 14:51:41,861 [DEBUG][       Thread-258558][   transport.py][1871] : EOF in transport thread
2025-06-13 14:51:41,935 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 14:51:41,947 [DEBUG][       Thread-258561][   transport.py][1871] : starting thread (client mode): 0x863524a0
2025-06-13 14:51:41,947 [DEBUG][       Thread-258561][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 14:51:41,961 [DEBUG][       Thread-258561][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 14:51:41,961 [ INFO][       Thread-258561][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 14:51:41,969 [DEBUG][       Thread-258561][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 14:51:41,969 [DEBUG][       Thread-258561][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 14:51:41,969 [DEBUG][       Thread-258561][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 14:51:41,969 [DEBUG][       Thread-258561][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:51:41,969 [DEBUG][       Thread-258561][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:51:41,969 [DEBUG][       Thread-258561][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:51:41,969 [DEBUG][       Thread-258561][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:51:41,969 [DEBUG][       Thread-258561][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 14:51:41,969 [DEBUG][       Thread-258561][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 14:51:41,969 [DEBUG][       Thread-258561][   transport.py][1871] : client lang: <none>
2025-06-13 14:51:41,969 [DEBUG][       Thread-258561][   transport.py][1871] : server lang: <none>
2025-06-13 14:51:41,969 [DEBUG][       Thread-258561][   transport.py][1871] : kex follows: False
2025-06-13 14:51:41,969 [DEBUG][       Thread-258561][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 14:51:41,969 [DEBUG][       Thread-258561][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 14:51:41,969 [DEBUG][       Thread-258561][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 14:51:41,969 [DEBUG][       Thread-258561][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 14:51:41,969 [DEBUG][       Thread-258561][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 14:51:41,969 [DEBUG][       Thread-258561][   transport.py][1871] : Compression: none
2025-06-13 14:51:41,969 [DEBUG][       Thread-258561][   transport.py][1871] : === End of kex handshake ===
2025-06-13 14:51:42,025 [DEBUG][       Thread-258561][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 14:51:42,025 [DEBUG][       Thread-258561][   transport.py][1871] : Switch to new keys ...
2025-06-13 14:51:42,025 [DEBUG][       Thread-258561][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 14:51:42,025 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 14:51:42,025 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 14:51:42,082 [DEBUG][       Thread-258561][   transport.py][1871] : userauth is OK
2025-06-13 14:51:42,082 [DEBUG][       Thread-258561][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 14:51:42,082 [DEBUG][       Thread-258561][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 14:51:42,082 [DEBUG][       Thread-258561][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 14:51:42,082 [DEBUG][       Thread-258561][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 14:51:42,096 [ INFO][       Thread-258561][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 14:51:42,097 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 14:51:42,097 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 14:51:42,875 [DEBUG][Thread-258563 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:51:43,118 [DEBUG][       Thread-258561][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 14:51:43,118 [DEBUG][       Thread-258561][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 14:51:43,167 [DEBUG][       Thread-258561][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 14:51:43,167 [DEBUG][       Thread-258561][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 14:51:43,175 [DEBUG][       Thread-258561][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 14:51:43,184 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 14:51:43,184 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 14:51:43,196 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 14:51:43,204 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 14:51:43,204 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 14:51:43,204 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 14:51:43,212 [DEBUG][       Thread-258561][   transport.py][1871] : EOF in transport thread
2025-06-13 14:51:51,893 [DEBUG][Thread-258564 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:51:53,214 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 14:51:53,215 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 14:51:53,215 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 14:51:53,218 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 14:51:53,690 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 14, 51, 24), 17.15, 30.63, 29.3, 22.97, 14.03, 0, 0, 0, 0, 0, 0),)
2025-06-13 14:51:53,690 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 14:51:24
2025-06-13 14:51:53,769 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 14:51:53,774 [DEBUG][       Thread-258565][   transport.py][1871] : starting thread (client mode): 0x863a6e60
2025-06-13 14:51:53,774 [DEBUG][       Thread-258565][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 14:51:53,795 [DEBUG][       Thread-258565][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 14:51:53,795 [ INFO][       Thread-258565][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 14:51:53,798 [DEBUG][       Thread-258565][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 14:51:53,798 [DEBUG][       Thread-258565][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 14:51:53,798 [DEBUG][       Thread-258565][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 14:51:53,798 [DEBUG][       Thread-258565][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:51:53,798 [DEBUG][       Thread-258565][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:51:53,798 [DEBUG][       Thread-258565][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:51:53,798 [DEBUG][       Thread-258565][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:51:53,798 [DEBUG][       Thread-258565][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 14:51:53,798 [DEBUG][       Thread-258565][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 14:51:53,798 [DEBUG][       Thread-258565][   transport.py][1871] : client lang: <none>
2025-06-13 14:51:53,798 [DEBUG][       Thread-258565][   transport.py][1871] : server lang: <none>
2025-06-13 14:51:53,798 [DEBUG][       Thread-258565][   transport.py][1871] : kex follows: False
2025-06-13 14:51:53,798 [DEBUG][       Thread-258565][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 14:51:53,798 [DEBUG][       Thread-258565][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 14:51:53,798 [DEBUG][       Thread-258565][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 14:51:53,798 [DEBUG][       Thread-258565][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 14:51:53,798 [DEBUG][       Thread-258565][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 14:51:53,798 [DEBUG][       Thread-258565][   transport.py][1871] : Compression: none
2025-06-13 14:51:53,798 [DEBUG][       Thread-258565][   transport.py][1871] : === End of kex handshake ===
2025-06-13 14:51:53,815 [DEBUG][       Thread-258565][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 14:51:53,816 [DEBUG][       Thread-258565][   transport.py][1871] : Switch to new keys ...
2025-06-13 14:51:53,816 [DEBUG][       Thread-258565][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 14:51:53,816 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 14:51:53,817 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 14:51:53,818 [DEBUG][       Thread-258565][   transport.py][1871] : userauth is OK
2025-06-13 14:51:53,832 [ INFO][       Thread-258565][   transport.py][1871] : Authentication (password) successful!
2025-06-13 14:51:53,832 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 14:51:54,486 [DEBUG][       Thread-258565][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 14:51:54,486 [DEBUG][       Thread-258565][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 14:51:54,529 [DEBUG][       Thread-258565][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 14:51:54,529 [DEBUG][       Thread-258565][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 14:51:54,533 [DEBUG][       Thread-258565][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 14:51:54,546 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 14:51:54,546 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 14:51:54,548 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 14:51:54,550 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 14:51:54,555 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 14:51:54,557 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 14:51:54,557 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 14:51:54,557 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 14:51:54,558 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.535353 -999.00  +13.60  25.62     34   -1.50 1 1 1 1 1   887    0 16.00 25.55 ----- 24.0 25.6 38.2 30.3 17.6 -32.1 16.6 -33.3 17.2 -32.1 18.4 -29.6
2025-06-13 14:51:54,558 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 14:51:54,558 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 14:51:54,558 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.535353
2025-06-13 14:51:54,558 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 14:51:54,559 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 14:51:54,559 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 14:51:54,559 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 14:51:54,559 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 14:51:54,559 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T14:51:24', tmtdew=17.15, humidity=30.63, cloud=29.3, wind=22.97, temperature=14.03, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=0, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T12:50:54.499', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 14:51:54,560 [DEBUG][       Thread-258565][   transport.py][1871] : EOF in transport thread
2025-06-13 14:51:54,644 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 14:51:54,654 [DEBUG][       Thread-258568][   transport.py][1871] : starting thread (client mode): 0x863ee470
2025-06-13 14:51:54,654 [DEBUG][       Thread-258568][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 14:51:54,668 [DEBUG][       Thread-258568][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 14:51:54,668 [ INFO][       Thread-258568][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 14:51:54,677 [DEBUG][       Thread-258568][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 14:51:54,677 [DEBUG][       Thread-258568][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 14:51:54,677 [DEBUG][       Thread-258568][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 14:51:54,677 [DEBUG][       Thread-258568][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:51:54,677 [DEBUG][       Thread-258568][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:51:54,677 [DEBUG][       Thread-258568][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:51:54,677 [DEBUG][       Thread-258568][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:51:54,677 [DEBUG][       Thread-258568][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 14:51:54,677 [DEBUG][       Thread-258568][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 14:51:54,677 [DEBUG][       Thread-258568][   transport.py][1871] : client lang: <none>
2025-06-13 14:51:54,677 [DEBUG][       Thread-258568][   transport.py][1871] : server lang: <none>
2025-06-13 14:51:54,678 [DEBUG][       Thread-258568][   transport.py][1871] : kex follows: False
2025-06-13 14:51:54,678 [DEBUG][       Thread-258568][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 14:51:54,678 [DEBUG][       Thread-258568][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 14:51:54,678 [DEBUG][       Thread-258568][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 14:51:54,678 [DEBUG][       Thread-258568][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 14:51:54,678 [DEBUG][       Thread-258568][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 14:51:54,678 [DEBUG][       Thread-258568][   transport.py][1871] : Compression: none
2025-06-13 14:51:54,678 [DEBUG][       Thread-258568][   transport.py][1871] : === End of kex handshake ===
2025-06-13 14:51:54,735 [DEBUG][       Thread-258568][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 14:51:54,735 [DEBUG][       Thread-258568][   transport.py][1871] : Switch to new keys ...
2025-06-13 14:51:54,736 [DEBUG][       Thread-258568][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 14:51:54,737 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 14:51:54,737 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 14:51:54,791 [DEBUG][       Thread-258568][   transport.py][1871] : userauth is OK
2025-06-13 14:51:54,791 [DEBUG][       Thread-258568][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 14:51:54,792 [DEBUG][       Thread-258568][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 14:51:54,792 [DEBUG][       Thread-258568][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 14:51:54,792 [DEBUG][       Thread-258568][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 14:51:54,810 [ INFO][       Thread-258568][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 14:51:54,810 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 14:51:54,811 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 14:51:55,865 [DEBUG][       Thread-258568][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 14:51:55,866 [DEBUG][       Thread-258568][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 14:51:55,916 [DEBUG][       Thread-258568][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 14:51:55,916 [DEBUG][       Thread-258568][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 14:51:55,928 [DEBUG][       Thread-258568][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 14:51:55,939 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 14:51:55,940 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 14:51:55,951 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 14:51:55,961 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 14:51:55,961 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 14:51:55,961 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 14:51:55,970 [DEBUG][       Thread-258568][   transport.py][1871] : EOF in transport thread
2025-06-13 14:52:00,912 [DEBUG][Thread-258570 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:52:04,238 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:52:04,239 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:52:05,968 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 14:52:05,968 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 14:52:05,968 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 14:52:05,971 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 14:52:06,430 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 14, 51, 56), 17.22, 30.48, 29.3, 21.63, 14.09, 0, 0, 0, 0, 0, 0),)
2025-06-13 14:52:06,430 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 14:51:56
2025-06-13 14:52:06,509 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 14:52:06,515 [DEBUG][       Thread-258571][   transport.py][1871] : starting thread (client mode): 0x86390e20
2025-06-13 14:52:06,515 [DEBUG][       Thread-258571][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 14:52:06,534 [DEBUG][       Thread-258571][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 14:52:06,534 [ INFO][       Thread-258571][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 14:52:06,537 [DEBUG][       Thread-258571][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 14:52:06,537 [DEBUG][       Thread-258571][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 14:52:06,537 [DEBUG][       Thread-258571][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 14:52:06,537 [DEBUG][       Thread-258571][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:52:06,537 [DEBUG][       Thread-258571][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:52:06,537 [DEBUG][       Thread-258571][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:52:06,537 [DEBUG][       Thread-258571][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:52:06,537 [DEBUG][       Thread-258571][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 14:52:06,537 [DEBUG][       Thread-258571][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 14:52:06,537 [DEBUG][       Thread-258571][   transport.py][1871] : client lang: <none>
2025-06-13 14:52:06,537 [DEBUG][       Thread-258571][   transport.py][1871] : server lang: <none>
2025-06-13 14:52:06,537 [DEBUG][       Thread-258571][   transport.py][1871] : kex follows: False
2025-06-13 14:52:06,537 [DEBUG][       Thread-258571][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 14:52:06,537 [DEBUG][       Thread-258571][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 14:52:06,538 [DEBUG][       Thread-258571][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 14:52:06,538 [DEBUG][       Thread-258571][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 14:52:06,538 [DEBUG][       Thread-258571][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 14:52:06,538 [DEBUG][       Thread-258571][   transport.py][1871] : Compression: none
2025-06-13 14:52:06,538 [DEBUG][       Thread-258571][   transport.py][1871] : === End of kex handshake ===
2025-06-13 14:52:06,554 [DEBUG][       Thread-258571][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 14:52:06,554 [DEBUG][       Thread-258571][   transport.py][1871] : Switch to new keys ...
2025-06-13 14:52:06,555 [DEBUG][       Thread-258571][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 14:52:06,555 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 14:52:06,555 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 14:52:06,556 [DEBUG][       Thread-258571][   transport.py][1871] : userauth is OK
2025-06-13 14:52:06,581 [ INFO][       Thread-258571][   transport.py][1871] : Authentication (password) successful!
2025-06-13 14:52:06,581 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 14:52:07,232 [DEBUG][       Thread-258571][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 14:52:07,232 [DEBUG][       Thread-258571][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 14:52:07,273 [DEBUG][       Thread-258571][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 14:52:07,273 [DEBUG][       Thread-258571][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 14:52:07,276 [DEBUG][       Thread-258571][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 14:52:07,289 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 14:52:07,289 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 14:52:07,291 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 14:52:07,293 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 14:52:07,298 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 14:52:07,300 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 14:52:07,300 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 14:52:07,301 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 14:52:07,301 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.535700 -999.00  +13.80  17.81     35   -1.00 1 1 1 1 1   887    0 15.29 24.78 ----- 20.4 17.8 39.2 28.9 17.7 -31.0 16.6 -32.5 17.1 -30.1 18.4 -28.9
2025-06-13 14:52:07,301 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 14:52:07,301 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 14:52:07,301 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.535700
2025-06-13 14:52:07,302 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 14:52:07,302 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 14:52:07,302 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 14:52:07,302 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 14:52:07,303 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 14:52:07,303 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T14:51:56', tmtdew=17.22, humidity=30.48, cloud=29.3, wind=21.63, temperature=14.09, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=0, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T12:51:24.480', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 14:52:07,303 [DEBUG][       Thread-258571][   transport.py][1871] : EOF in transport thread
2025-06-13 14:52:07,377 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 14:52:07,386 [DEBUG][       Thread-258574][   transport.py][1871] : starting thread (client mode): 0x8636b130
2025-06-13 14:52:07,386 [DEBUG][       Thread-258574][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 14:52:07,402 [DEBUG][       Thread-258574][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 14:52:07,402 [ INFO][       Thread-258574][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 14:52:07,409 [DEBUG][       Thread-258574][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 14:52:07,409 [DEBUG][       Thread-258574][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 14:52:07,409 [DEBUG][       Thread-258574][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 14:52:07,409 [DEBUG][       Thread-258574][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:52:07,409 [DEBUG][       Thread-258574][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:52:07,410 [DEBUG][       Thread-258574][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:52:07,410 [DEBUG][       Thread-258574][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:52:07,410 [DEBUG][       Thread-258574][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 14:52:07,410 [DEBUG][       Thread-258574][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 14:52:07,410 [DEBUG][       Thread-258574][   transport.py][1871] : client lang: <none>
2025-06-13 14:52:07,410 [DEBUG][       Thread-258574][   transport.py][1871] : server lang: <none>
2025-06-13 14:52:07,410 [DEBUG][       Thread-258574][   transport.py][1871] : kex follows: False
2025-06-13 14:52:07,410 [DEBUG][       Thread-258574][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 14:52:07,410 [DEBUG][       Thread-258574][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 14:52:07,410 [DEBUG][       Thread-258574][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 14:52:07,410 [DEBUG][       Thread-258574][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 14:52:07,410 [DEBUG][       Thread-258574][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 14:52:07,410 [DEBUG][       Thread-258574][   transport.py][1871] : Compression: none
2025-06-13 14:52:07,410 [DEBUG][       Thread-258574][   transport.py][1871] : === End of kex handshake ===
2025-06-13 14:52:07,465 [DEBUG][       Thread-258574][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 14:52:07,465 [DEBUG][       Thread-258574][   transport.py][1871] : Switch to new keys ...
2025-06-13 14:52:07,465 [DEBUG][       Thread-258574][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 14:52:07,465 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 14:52:07,466 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 14:52:07,523 [DEBUG][       Thread-258574][   transport.py][1871] : userauth is OK
2025-06-13 14:52:07,523 [DEBUG][       Thread-258574][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 14:52:07,523 [DEBUG][       Thread-258574][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 14:52:07,523 [DEBUG][       Thread-258574][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 14:52:07,523 [DEBUG][       Thread-258574][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 14:52:07,544 [ INFO][       Thread-258574][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 14:52:07,545 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 14:52:07,545 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 14:52:07,570 [DEBUG][Thread-258576 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:52:08,611 [DEBUG][       Thread-258574][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 14:52:08,611 [DEBUG][       Thread-258574][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 14:52:08,630 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:52:08,631 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:52:08,663 [DEBUG][       Thread-258574][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 14:52:08,663 [DEBUG][       Thread-258574][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 14:52:08,680 [DEBUG][       Thread-258574][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 14:52:08,689 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 14:52:08,689 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 14:52:08,704 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 14:52:08,717 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 14:52:08,717 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 14:52:08,718 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 14:52:08,726 [DEBUG][       Thread-258574][   transport.py][1871] : EOF in transport thread
2025-06-13 14:52:09,937 [DEBUG][Thread-258577 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:52:18,728 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 14:52:18,729 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 14:52:18,729 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 14:52:18,732 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 14:52:18,981 [DEBUG][Thread-258578 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:52:19,190 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 14, 51, 56), 17.22, 30.48, 29.3, 21.63, 14.09, 0, 0, 0, 0, 0, 0),)
2025-06-13 14:52:19,191 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 14:51:56
2025-06-13 14:52:19,270 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 14:52:19,276 [DEBUG][       Thread-258579][   transport.py][1871] : starting thread (client mode): 0x8636bb80
2025-06-13 14:52:19,277 [DEBUG][       Thread-258579][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 14:52:19,298 [DEBUG][       Thread-258579][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 14:52:19,298 [ INFO][       Thread-258579][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 14:52:19,300 [DEBUG][       Thread-258579][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 14:52:19,300 [DEBUG][       Thread-258579][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 14:52:19,300 [DEBUG][       Thread-258579][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 14:52:19,300 [DEBUG][       Thread-258579][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:52:19,300 [DEBUG][       Thread-258579][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:52:19,300 [DEBUG][       Thread-258579][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:52:19,300 [DEBUG][       Thread-258579][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:52:19,300 [DEBUG][       Thread-258579][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 14:52:19,300 [DEBUG][       Thread-258579][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 14:52:19,300 [DEBUG][       Thread-258579][   transport.py][1871] : client lang: <none>
2025-06-13 14:52:19,300 [DEBUG][       Thread-258579][   transport.py][1871] : server lang: <none>
2025-06-13 14:52:19,300 [DEBUG][       Thread-258579][   transport.py][1871] : kex follows: False
2025-06-13 14:52:19,300 [DEBUG][       Thread-258579][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 14:52:19,300 [DEBUG][       Thread-258579][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 14:52:19,300 [DEBUG][       Thread-258579][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 14:52:19,300 [DEBUG][       Thread-258579][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 14:52:19,301 [DEBUG][       Thread-258579][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 14:52:19,301 [DEBUG][       Thread-258579][   transport.py][1871] : Compression: none
2025-06-13 14:52:19,301 [DEBUG][       Thread-258579][   transport.py][1871] : === End of kex handshake ===
2025-06-13 14:52:19,318 [DEBUG][       Thread-258579][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 14:52:19,318 [DEBUG][       Thread-258579][   transport.py][1871] : Switch to new keys ...
2025-06-13 14:52:19,319 [DEBUG][       Thread-258579][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 14:52:19,319 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 14:52:19,319 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 14:52:19,320 [DEBUG][       Thread-258579][   transport.py][1871] : userauth is OK
2025-06-13 14:52:19,333 [ INFO][       Thread-258579][   transport.py][1871] : Authentication (password) successful!
2025-06-13 14:52:19,333 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 14:52:19,347 [DEBUG][Thread-258581 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:52:19,972 [DEBUG][       Thread-258579][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 14:52:19,972 [DEBUG][       Thread-258579][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 14:52:20,012 [DEBUG][       Thread-258579][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 14:52:20,012 [DEBUG][       Thread-258579][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 14:52:20,015 [DEBUG][       Thread-258579][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 14:52:20,028 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 14:52:20,028 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 14:52:20,029 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 14:52:20,030 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 14:52:20,033 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 14:52:20,034 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 14:52:20,034 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 14:52:20,034 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 14:52:20,034 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.535700 -999.00  +13.80  17.81     35   -1.00 1 1 1 1 1   887    0 15.29 24.78 ----- 20.4 17.8 39.2 28.9 17.7 -31.0 16.6 -32.5 17.1 -30.1 18.4 -28.9
2025-06-13 14:52:20,034 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 14:52:20,034 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 14:52:20,034 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.535700
2025-06-13 14:52:20,034 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 14:52:20,034 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 14:52:20,034 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 14:52:20,034 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 14:52:20,034 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 14:52:20,034 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T14:51:56', tmtdew=17.22, humidity=30.48, cloud=29.3, wind=21.63, temperature=14.09, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=0, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T12:51:24.480', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 14:52:20,035 [DEBUG][       Thread-258579][   transport.py][1871] : EOF in transport thread
2025-06-13 14:52:20,109 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 14:52:20,123 [DEBUG][       Thread-258583][   transport.py][1871] : starting thread (client mode): 0x863a7a00
2025-06-13 14:52:20,123 [DEBUG][       Thread-258583][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 14:52:20,137 [DEBUG][       Thread-258583][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 14:52:20,138 [ INFO][       Thread-258583][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 14:52:20,145 [DEBUG][       Thread-258583][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 14:52:20,145 [DEBUG][       Thread-258583][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 14:52:20,145 [DEBUG][       Thread-258583][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 14:52:20,145 [DEBUG][       Thread-258583][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:52:20,145 [DEBUG][       Thread-258583][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:52:20,145 [DEBUG][       Thread-258583][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:52:20,145 [DEBUG][       Thread-258583][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:52:20,145 [DEBUG][       Thread-258583][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 14:52:20,145 [DEBUG][       Thread-258583][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 14:52:20,145 [DEBUG][       Thread-258583][   transport.py][1871] : client lang: <none>
2025-06-13 14:52:20,145 [DEBUG][       Thread-258583][   transport.py][1871] : server lang: <none>
2025-06-13 14:52:20,145 [DEBUG][       Thread-258583][   transport.py][1871] : kex follows: False
2025-06-13 14:52:20,145 [DEBUG][       Thread-258583][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 14:52:20,145 [DEBUG][       Thread-258583][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 14:52:20,146 [DEBUG][       Thread-258583][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 14:52:20,146 [DEBUG][       Thread-258583][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 14:52:20,146 [DEBUG][       Thread-258583][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 14:52:20,146 [DEBUG][       Thread-258583][   transport.py][1871] : Compression: none
2025-06-13 14:52:20,146 [DEBUG][       Thread-258583][   transport.py][1871] : === End of kex handshake ===
2025-06-13 14:52:20,201 [DEBUG][       Thread-258583][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 14:52:20,201 [DEBUG][       Thread-258583][   transport.py][1871] : Switch to new keys ...
2025-06-13 14:52:20,201 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 14:52:20,201 [DEBUG][       Thread-258583][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 14:52:20,202 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 14:52:20,258 [DEBUG][       Thread-258583][   transport.py][1871] : userauth is OK
2025-06-13 14:52:20,258 [DEBUG][       Thread-258583][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 14:52:20,258 [DEBUG][       Thread-258583][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 14:52:20,258 [DEBUG][       Thread-258583][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 14:52:20,259 [DEBUG][       Thread-258583][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 14:52:20,276 [ INFO][       Thread-258583][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 14:52:20,276 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 14:52:20,276 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 14:52:21,243 [DEBUG][       Thread-258583][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 14:52:21,243 [DEBUG][       Thread-258583][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 14:52:21,291 [DEBUG][       Thread-258583][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 14:52:21,291 [DEBUG][       Thread-258583][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 14:52:21,299 [DEBUG][       Thread-258583][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 14:52:21,307 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 14:52:21,307 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 14:52:21,316 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 14:52:21,324 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 14:52:21,324 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 14:52:21,325 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 14:52:21,332 [DEBUG][       Thread-258583][   transport.py][1871] : EOF in transport thread
2025-06-13 14:52:28,000 [DEBUG][Thread-258585 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:52:31,335 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 14:52:31,335 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 14:52:31,335 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 14:52:31,338 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 14:52:31,798 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 14, 52, 28), 17.12, 30.47, 29.3, 15.81, 14.06, 0, 0, 0, 0, 0, 0),)
2025-06-13 14:52:31,798 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 14:52:28
2025-06-13 14:52:31,877 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 14:52:31,881 [DEBUG][       Thread-258586][   transport.py][1871] : starting thread (client mode): 0x86893df0
2025-06-13 14:52:31,881 [DEBUG][       Thread-258586][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 14:52:31,902 [DEBUG][       Thread-258586][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 14:52:31,902 [ INFO][       Thread-258586][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 14:52:31,905 [DEBUG][       Thread-258586][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 14:52:31,905 [DEBUG][       Thread-258586][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 14:52:31,906 [DEBUG][       Thread-258586][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 14:52:31,906 [DEBUG][       Thread-258586][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:52:31,906 [DEBUG][       Thread-258586][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:52:31,906 [DEBUG][       Thread-258586][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:52:31,906 [DEBUG][       Thread-258586][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:52:31,906 [DEBUG][       Thread-258586][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 14:52:31,906 [DEBUG][       Thread-258586][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 14:52:31,906 [DEBUG][       Thread-258586][   transport.py][1871] : client lang: <none>
2025-06-13 14:52:31,906 [DEBUG][       Thread-258586][   transport.py][1871] : server lang: <none>
2025-06-13 14:52:31,906 [DEBUG][       Thread-258586][   transport.py][1871] : kex follows: False
2025-06-13 14:52:31,906 [DEBUG][       Thread-258586][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 14:52:31,906 [DEBUG][       Thread-258586][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 14:52:31,906 [DEBUG][       Thread-258586][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 14:52:31,906 [DEBUG][       Thread-258586][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 14:52:31,906 [DEBUG][       Thread-258586][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 14:52:31,906 [DEBUG][       Thread-258586][   transport.py][1871] : Compression: none
2025-06-13 14:52:31,906 [DEBUG][       Thread-258586][   transport.py][1871] : === End of kex handshake ===
2025-06-13 14:52:31,919 [DEBUG][       Thread-258586][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 14:52:31,920 [DEBUG][       Thread-258586][   transport.py][1871] : Switch to new keys ...
2025-06-13 14:52:31,921 [DEBUG][       Thread-258586][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 14:52:31,921 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 14:52:31,921 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 14:52:31,922 [DEBUG][       Thread-258586][   transport.py][1871] : userauth is OK
2025-06-13 14:52:31,935 [ INFO][       Thread-258586][   transport.py][1871] : Authentication (password) successful!
2025-06-13 14:52:31,936 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 14:52:32,514 [DEBUG][       Thread-258586][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 14:52:32,514 [DEBUG][       Thread-258586][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 14:52:32,557 [DEBUG][       Thread-258586][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 14:52:32,557 [DEBUG][       Thread-258586][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 14:52:32,560 [DEBUG][       Thread-258586][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 14:52:32,572 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 14:52:32,573 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 14:52:32,576 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 14:52:32,580 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 14:52:32,589 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 14:52:32,591 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 14:52:32,591 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 14:52:32,591 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 14:52:32,592 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.536394 -999.00  +13.70  19.73     35   -1.20 1 1 1 1 1   887    0 15.54 23.50 ----- 25.1 19.7 44.0 24.3 17.7 -31.2 16.6 -32.4 17.2 -30.6 18.4 -29.2
2025-06-13 14:52:32,592 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 14:52:32,592 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 14:52:32,592 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.536394
2025-06-13 14:52:32,592 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 14:52:32,593 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 14:52:32,593 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 14:52:32,593 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 14:52:32,593 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 14:52:32,593 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T14:52:28', tmtdew=17.12, humidity=30.47, cloud=29.3, wind=15.81, temperature=14.06, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=0, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T12:52:24.442', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 14:52:32,594 [DEBUG][       Thread-258586][   transport.py][1871] : EOF in transport thread
2025-06-13 14:52:32,679 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 14:52:32,693 [DEBUG][       Thread-258589][   transport.py][1871] : starting thread (client mode): 0x8636b100
2025-06-13 14:52:32,693 [DEBUG][       Thread-258589][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 14:52:32,708 [DEBUG][       Thread-258589][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 14:52:32,708 [ INFO][       Thread-258589][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 14:52:32,715 [DEBUG][       Thread-258589][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 14:52:32,716 [DEBUG][       Thread-258589][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 14:52:32,716 [DEBUG][       Thread-258589][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 14:52:32,716 [DEBUG][       Thread-258589][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:52:32,716 [DEBUG][       Thread-258589][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:52:32,716 [DEBUG][       Thread-258589][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:52:32,716 [DEBUG][       Thread-258589][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:52:32,716 [DEBUG][       Thread-258589][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 14:52:32,716 [DEBUG][       Thread-258589][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 14:52:32,716 [DEBUG][       Thread-258589][   transport.py][1871] : client lang: <none>
2025-06-13 14:52:32,716 [DEBUG][       Thread-258589][   transport.py][1871] : server lang: <none>
2025-06-13 14:52:32,716 [DEBUG][       Thread-258589][   transport.py][1871] : kex follows: False
2025-06-13 14:52:32,716 [DEBUG][       Thread-258589][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 14:52:32,716 [DEBUG][       Thread-258589][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 14:52:32,716 [DEBUG][       Thread-258589][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 14:52:32,716 [DEBUG][       Thread-258589][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 14:52:32,716 [DEBUG][       Thread-258589][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 14:52:32,716 [DEBUG][       Thread-258589][   transport.py][1871] : Compression: none
2025-06-13 14:52:32,716 [DEBUG][       Thread-258589][   transport.py][1871] : === End of kex handshake ===
2025-06-13 14:52:32,775 [DEBUG][       Thread-258589][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 14:52:32,775 [DEBUG][       Thread-258589][   transport.py][1871] : Switch to new keys ...
2025-06-13 14:52:32,776 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 14:52:32,777 [DEBUG][       Thread-258589][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 14:52:32,777 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 14:52:32,835 [DEBUG][       Thread-258589][   transport.py][1871] : userauth is OK
2025-06-13 14:52:32,836 [DEBUG][       Thread-258589][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 14:52:32,836 [DEBUG][       Thread-258589][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 14:52:32,836 [DEBUG][       Thread-258589][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 14:52:32,836 [DEBUG][       Thread-258589][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 14:52:32,855 [ INFO][       Thread-258589][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 14:52:32,855 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 14:52:32,855 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 14:52:33,846 [DEBUG][       Thread-258589][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 14:52:33,847 [DEBUG][       Thread-258589][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 14:52:33,896 [DEBUG][       Thread-258589][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 14:52:33,896 [DEBUG][       Thread-258589][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 14:52:33,906 [DEBUG][       Thread-258589][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 14:52:33,915 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 14:52:33,915 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 14:52:33,924 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 14:52:33,933 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 14:52:33,934 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 14:52:33,934 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 14:52:33,942 [DEBUG][       Thread-258589][   transport.py][1871] : EOF in transport thread
2025-06-13 14:52:37,021 [DEBUG][Thread-258591 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:52:43,936 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 14:52:43,936 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 14:52:43,937 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 14:52:43,940 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 14:52:44,410 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 14, 52, 28), 17.12, 30.47, 29.3, 15.81, 14.06, 0, 0, 0, 0, 0, 0),)
2025-06-13 14:52:44,410 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 14:52:28
2025-06-13 14:52:44,489 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 14:52:44,495 [DEBUG][       Thread-258592][   transport.py][1871] : starting thread (client mode): 0x84223f70
2025-06-13 14:52:44,495 [DEBUG][       Thread-258592][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 14:52:44,515 [DEBUG][       Thread-258592][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 14:52:44,515 [ INFO][       Thread-258592][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 14:52:44,518 [DEBUG][       Thread-258592][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 14:52:44,518 [DEBUG][       Thread-258592][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 14:52:44,518 [DEBUG][       Thread-258592][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 14:52:44,518 [DEBUG][       Thread-258592][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:52:44,518 [DEBUG][       Thread-258592][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:52:44,518 [DEBUG][       Thread-258592][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:52:44,518 [DEBUG][       Thread-258592][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:52:44,518 [DEBUG][       Thread-258592][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 14:52:44,518 [DEBUG][       Thread-258592][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 14:52:44,518 [DEBUG][       Thread-258592][   transport.py][1871] : client lang: <none>
2025-06-13 14:52:44,518 [DEBUG][       Thread-258592][   transport.py][1871] : server lang: <none>
2025-06-13 14:52:44,518 [DEBUG][       Thread-258592][   transport.py][1871] : kex follows: False
2025-06-13 14:52:44,518 [DEBUG][       Thread-258592][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 14:52:44,519 [DEBUG][       Thread-258592][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 14:52:44,519 [DEBUG][       Thread-258592][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 14:52:44,519 [DEBUG][       Thread-258592][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 14:52:44,519 [DEBUG][       Thread-258592][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 14:52:44,519 [DEBUG][       Thread-258592][   transport.py][1871] : Compression: none
2025-06-13 14:52:44,519 [DEBUG][       Thread-258592][   transport.py][1871] : === End of kex handshake ===
2025-06-13 14:52:44,538 [DEBUG][       Thread-258592][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 14:52:44,538 [DEBUG][       Thread-258592][   transport.py][1871] : Switch to new keys ...
2025-06-13 14:52:44,539 [DEBUG][       Thread-258592][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 14:52:44,539 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 14:52:44,539 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 14:52:44,540 [DEBUG][       Thread-258592][   transport.py][1871] : userauth is OK
2025-06-13 14:52:44,565 [ INFO][       Thread-258592][   transport.py][1871] : Authentication (password) successful!
2025-06-13 14:52:44,566 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 14:52:45,231 [DEBUG][       Thread-258592][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 14:52:45,231 [DEBUG][       Thread-258592][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 14:52:45,273 [DEBUG][       Thread-258592][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 14:52:45,273 [DEBUG][       Thread-258592][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 14:52:45,276 [DEBUG][       Thread-258592][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 14:52:45,289 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 14:52:45,289 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 14:52:45,291 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 14:52:45,293 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 14:52:45,299 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 14:52:45,301 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 14:52:45,301 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 14:52:45,302 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 14:52:45,302 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.536394 -999.00  +13.70  19.73     35   -1.20 1 1 1 1 1   887    0 15.54 23.50 ----- 25.1 19.7 44.0 24.3 17.7 -31.2 16.6 -32.4 17.2 -30.6 18.4 -29.2
2025-06-13 14:52:45,302 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 14:52:45,302 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 14:52:45,302 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.536394
2025-06-13 14:52:45,303 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 14:52:45,303 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 14:52:45,303 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 14:52:45,303 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 14:52:45,303 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 14:52:45,304 [DEBUG][       Thread-258592][   transport.py][1871] : EOF in transport thread
2025-06-13 14:52:45,304 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T14:52:28', tmtdew=17.12, humidity=30.47, cloud=29.3, wind=15.81, temperature=14.06, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=0, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T12:52:24.442', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 14:52:45,388 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 14:52:45,400 [DEBUG][       Thread-258595][   transport.py][1871] : starting thread (client mode): 0x863924d0
2025-06-13 14:52:45,400 [DEBUG][       Thread-258595][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 14:52:45,415 [DEBUG][       Thread-258595][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 14:52:45,415 [ INFO][       Thread-258595][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 14:52:45,422 [DEBUG][       Thread-258595][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 14:52:45,422 [DEBUG][       Thread-258595][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 14:52:45,422 [DEBUG][       Thread-258595][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 14:52:45,422 [DEBUG][       Thread-258595][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:52:45,422 [DEBUG][       Thread-258595][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:52:45,422 [DEBUG][       Thread-258595][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:52:45,423 [DEBUG][       Thread-258595][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:52:45,423 [DEBUG][       Thread-258595][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 14:52:45,423 [DEBUG][       Thread-258595][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 14:52:45,423 [DEBUG][       Thread-258595][   transport.py][1871] : client lang: <none>
2025-06-13 14:52:45,423 [DEBUG][       Thread-258595][   transport.py][1871] : server lang: <none>
2025-06-13 14:52:45,423 [DEBUG][       Thread-258595][   transport.py][1871] : kex follows: False
2025-06-13 14:52:45,423 [DEBUG][       Thread-258595][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 14:52:45,423 [DEBUG][       Thread-258595][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 14:52:45,423 [DEBUG][       Thread-258595][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 14:52:45,423 [DEBUG][       Thread-258595][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 14:52:45,423 [DEBUG][       Thread-258595][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 14:52:45,423 [DEBUG][       Thread-258595][   transport.py][1871] : Compression: none
2025-06-13 14:52:45,423 [DEBUG][       Thread-258595][   transport.py][1871] : === End of kex handshake ===
2025-06-13 14:52:45,480 [DEBUG][       Thread-258595][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 14:52:45,480 [DEBUG][       Thread-258595][   transport.py][1871] : Switch to new keys ...
2025-06-13 14:52:45,481 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 14:52:45,481 [DEBUG][       Thread-258595][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 14:52:45,482 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 14:52:45,539 [DEBUG][       Thread-258595][   transport.py][1871] : userauth is OK
2025-06-13 14:52:45,539 [DEBUG][       Thread-258595][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 14:52:45,540 [DEBUG][       Thread-258595][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 14:52:45,540 [DEBUG][       Thread-258595][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 14:52:45,540 [DEBUG][       Thread-258595][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 14:52:45,558 [ INFO][       Thread-258595][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 14:52:45,559 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 14:52:45,559 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 14:52:46,066 [DEBUG][Thread-258597 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:52:46,577 [DEBUG][       Thread-258595][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 14:52:46,577 [DEBUG][       Thread-258595][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 14:52:46,628 [DEBUG][       Thread-258595][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 14:52:46,628 [DEBUG][       Thread-258595][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 14:52:46,637 [DEBUG][       Thread-258595][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 14:52:46,646 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 14:52:46,647 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 14:52:46,656 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 14:52:46,665 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 14:52:46,665 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 14:52:46,666 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 14:52:46,674 [DEBUG][       Thread-258595][   transport.py][1871] : EOF in transport thread
2025-06-13 14:52:55,087 [DEBUG][Thread-258598 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:52:56,677 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 14:52:56,677 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 14:52:56,677 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 14:52:56,680 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 14:52:57,150 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 14, 52, 28), 17.12, 30.47, 29.3, 15.81, 14.06, 0, 0, 0, 0, 0, 0),)
2025-06-13 14:52:57,151 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 14:52:28
2025-06-13 14:52:57,230 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 14:52:57,234 [DEBUG][       Thread-258599][   transport.py][1871] : starting thread (client mode): 0x84223f70
2025-06-13 14:52:57,234 [DEBUG][       Thread-258599][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 14:52:57,255 [DEBUG][       Thread-258599][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 14:52:57,255 [ INFO][       Thread-258599][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 14:52:57,257 [DEBUG][       Thread-258599][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 14:52:57,257 [DEBUG][       Thread-258599][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 14:52:57,257 [DEBUG][       Thread-258599][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 14:52:57,257 [DEBUG][       Thread-258599][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:52:57,257 [DEBUG][       Thread-258599][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:52:57,257 [DEBUG][       Thread-258599][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:52:57,257 [DEBUG][       Thread-258599][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:52:57,257 [DEBUG][       Thread-258599][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 14:52:57,257 [DEBUG][       Thread-258599][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 14:52:57,257 [DEBUG][       Thread-258599][   transport.py][1871] : client lang: <none>
2025-06-13 14:52:57,257 [DEBUG][       Thread-258599][   transport.py][1871] : server lang: <none>
2025-06-13 14:52:57,257 [DEBUG][       Thread-258599][   transport.py][1871] : kex follows: False
2025-06-13 14:52:57,257 [DEBUG][       Thread-258599][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 14:52:57,257 [DEBUG][       Thread-258599][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 14:52:57,257 [DEBUG][       Thread-258599][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 14:52:57,257 [DEBUG][       Thread-258599][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 14:52:57,257 [DEBUG][       Thread-258599][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 14:52:57,257 [DEBUG][       Thread-258599][   transport.py][1871] : Compression: none
2025-06-13 14:52:57,257 [DEBUG][       Thread-258599][   transport.py][1871] : === End of kex handshake ===
2025-06-13 14:52:57,274 [DEBUG][       Thread-258599][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 14:52:57,275 [DEBUG][       Thread-258599][   transport.py][1871] : Switch to new keys ...
2025-06-13 14:52:57,275 [DEBUG][       Thread-258599][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 14:52:57,275 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 14:52:57,276 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 14:52:57,277 [DEBUG][       Thread-258599][   transport.py][1871] : userauth is OK
2025-06-13 14:52:57,301 [ INFO][       Thread-258599][   transport.py][1871] : Authentication (password) successful!
2025-06-13 14:52:57,302 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 14:52:57,936 [DEBUG][       Thread-258599][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 14:52:57,937 [DEBUG][       Thread-258599][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 14:52:57,981 [DEBUG][       Thread-258599][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 14:52:57,981 [DEBUG][       Thread-258599][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 14:52:57,985 [DEBUG][       Thread-258599][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 14:52:57,996 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 14:52:57,997 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 14:52:57,999 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 14:52:58,000 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 14:52:58,006 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 14:52:58,008 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 14:52:58,008 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 14:52:58,009 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 14:52:58,009 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.536394 -999.00  +13.70  19.73     35   -1.20 1 1 1 1 1   887    0 15.54 23.50 ----- 25.1 19.7 44.0 24.3 17.7 -31.2 16.6 -32.4 17.2 -30.6 18.4 -29.2
2025-06-13 14:52:58,009 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 14:52:58,009 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 14:52:58,010 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.536394
2025-06-13 14:52:58,010 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 14:52:58,011 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 14:52:58,011 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 14:52:58,011 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 14:52:58,011 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 14:52:58,011 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T14:52:28', tmtdew=17.12, humidity=30.47, cloud=29.3, wind=15.81, temperature=14.06, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=0, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T12:52:24.442', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 14:52:58,011 [DEBUG][       Thread-258599][   transport.py][1871] : EOF in transport thread
2025-06-13 14:52:58,095 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 14:52:58,104 [DEBUG][       Thread-258602][   transport.py][1871] : starting thread (client mode): 0x863c8fd0
2025-06-13 14:52:58,104 [DEBUG][       Thread-258602][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 14:52:58,124 [DEBUG][       Thread-258602][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 14:52:58,124 [ INFO][       Thread-258602][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 14:52:58,131 [DEBUG][       Thread-258602][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 14:52:58,132 [DEBUG][       Thread-258602][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 14:52:58,132 [DEBUG][       Thread-258602][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 14:52:58,132 [DEBUG][       Thread-258602][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:52:58,132 [DEBUG][       Thread-258602][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:52:58,132 [DEBUG][       Thread-258602][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:52:58,132 [DEBUG][       Thread-258602][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:52:58,132 [DEBUG][       Thread-258602][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 14:52:58,132 [DEBUG][       Thread-258602][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 14:52:58,132 [DEBUG][       Thread-258602][   transport.py][1871] : client lang: <none>
2025-06-13 14:52:58,132 [DEBUG][       Thread-258602][   transport.py][1871] : server lang: <none>
2025-06-13 14:52:58,132 [DEBUG][       Thread-258602][   transport.py][1871] : kex follows: False
2025-06-13 14:52:58,132 [DEBUG][       Thread-258602][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 14:52:58,132 [DEBUG][       Thread-258602][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 14:52:58,132 [DEBUG][       Thread-258602][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 14:52:58,132 [DEBUG][       Thread-258602][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 14:52:58,132 [DEBUG][       Thread-258602][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 14:52:58,133 [DEBUG][       Thread-258602][   transport.py][1871] : Compression: none
2025-06-13 14:52:58,133 [DEBUG][       Thread-258602][   transport.py][1871] : === End of kex handshake ===
2025-06-13 14:52:58,191 [DEBUG][       Thread-258602][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 14:52:58,191 [DEBUG][       Thread-258602][   transport.py][1871] : Switch to new keys ...
2025-06-13 14:52:58,192 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 14:52:58,193 [DEBUG][       Thread-258602][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 14:52:58,193 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 14:52:58,247 [DEBUG][       Thread-258602][   transport.py][1871] : userauth is OK
2025-06-13 14:52:58,247 [DEBUG][       Thread-258602][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 14:52:58,248 [DEBUG][       Thread-258602][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 14:52:58,248 [DEBUG][       Thread-258602][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 14:52:58,248 [DEBUG][       Thread-258602][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 14:52:58,267 [ INFO][       Thread-258602][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 14:52:58,267 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 14:52:58,268 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 14:52:59,368 [DEBUG][       Thread-258602][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 14:52:59,368 [DEBUG][       Thread-258602][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 14:52:59,419 [DEBUG][       Thread-258602][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 14:52:59,419 [DEBUG][       Thread-258602][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 14:52:59,428 [DEBUG][       Thread-258602][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 14:52:59,436 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 14:52:59,436 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 14:52:59,444 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 14:52:59,452 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 14:52:59,452 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 14:52:59,452 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 14:52:59,460 [DEBUG][       Thread-258602][   transport.py][1871] : EOF in transport thread
2025-06-13 14:53:04,111 [DEBUG][Thread-258604 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:53:04,378 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:53:04,379 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:53:08,712 [DEBUG][Thread-258605 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:53:09,462 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 14:53:09,463 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 14:53:09,472 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 14:53:09,474 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 14:53:09,780 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:53:09,781 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:53:09,935 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 14, 52, 59), 17.16, 30.38, 29.3, 16.37, 14.02, 0, 0, 0, 0, 0, 0),)
2025-06-13 14:53:09,935 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 14:52:59
2025-06-13 14:53:10,016 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 14:53:10,022 [DEBUG][       Thread-258606][   transport.py][1871] : starting thread (client mode): 0x86392590
2025-06-13 14:53:10,022 [DEBUG][       Thread-258606][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 14:53:10,043 [DEBUG][       Thread-258606][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 14:53:10,043 [ INFO][       Thread-258606][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 14:53:10,046 [DEBUG][       Thread-258606][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 14:53:10,046 [DEBUG][       Thread-258606][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 14:53:10,047 [DEBUG][       Thread-258606][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 14:53:10,047 [DEBUG][       Thread-258606][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:53:10,047 [DEBUG][       Thread-258606][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:53:10,047 [DEBUG][       Thread-258606][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:53:10,047 [DEBUG][       Thread-258606][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:53:10,047 [DEBUG][       Thread-258606][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 14:53:10,047 [DEBUG][       Thread-258606][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 14:53:10,047 [DEBUG][       Thread-258606][   transport.py][1871] : client lang: <none>
2025-06-13 14:53:10,047 [DEBUG][       Thread-258606][   transport.py][1871] : server lang: <none>
2025-06-13 14:53:10,047 [DEBUG][       Thread-258606][   transport.py][1871] : kex follows: False
2025-06-13 14:53:10,047 [DEBUG][       Thread-258606][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 14:53:10,047 [DEBUG][       Thread-258606][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 14:53:10,047 [DEBUG][       Thread-258606][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 14:53:10,048 [DEBUG][       Thread-258606][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 14:53:10,048 [DEBUG][       Thread-258606][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 14:53:10,048 [DEBUG][       Thread-258606][   transport.py][1871] : Compression: none
2025-06-13 14:53:10,048 [DEBUG][       Thread-258606][   transport.py][1871] : === End of kex handshake ===
2025-06-13 14:53:10,065 [DEBUG][       Thread-258606][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 14:53:10,065 [DEBUG][       Thread-258606][   transport.py][1871] : Switch to new keys ...
2025-06-13 14:53:10,066 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 14:53:10,066 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 14:53:10,067 [DEBUG][       Thread-258606][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 14:53:10,067 [DEBUG][       Thread-258606][   transport.py][1871] : userauth is OK
2025-06-13 14:53:10,080 [ INFO][       Thread-258606][   transport.py][1871] : Authentication (password) successful!
2025-06-13 14:53:10,081 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 14:53:10,699 [DEBUG][       Thread-258606][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 14:53:10,699 [DEBUG][       Thread-258606][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 14:53:10,741 [DEBUG][       Thread-258606][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 14:53:10,741 [DEBUG][       Thread-258606][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 14:53:10,744 [DEBUG][       Thread-258606][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 14:53:10,757 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 14:53:10,757 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 14:53:10,759 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 14:53:10,761 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 14:53:10,766 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 14:53:10,767 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 14:53:10,768 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 14:53:10,768 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 14:53:10,769 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.536742 -999.00  +13.70  22.85     35   -1.20 1 1 1 1 1   887    0 15.81 26.06 ----- 21.9 22.9 40.8 27.0 17.6 -30.6 16.6 -32.7 17.1 -31.5 18.4 -29.4
2025-06-13 14:53:10,769 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 14:53:10,769 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 14:53:10,769 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.536742
2025-06-13 14:53:10,769 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 14:53:10,770 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 14:53:10,770 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 14:53:10,770 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 14:53:10,770 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 14:53:10,770 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T14:52:59', tmtdew=17.16, humidity=30.38, cloud=29.3, wind=16.37, temperature=14.02, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=0, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T12:52:54.509', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 14:53:10,770 [DEBUG][       Thread-258606][   transport.py][1871] : EOF in transport thread
2025-06-13 14:53:10,855 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 14:53:10,867 [DEBUG][       Thread-258609][   transport.py][1871] : starting thread (client mode): 0x863bc970
2025-06-13 14:53:10,867 [DEBUG][       Thread-258609][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 14:53:10,883 [DEBUG][       Thread-258609][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 14:53:10,884 [ INFO][       Thread-258609][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 14:53:10,891 [DEBUG][       Thread-258609][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 14:53:10,891 [DEBUG][       Thread-258609][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 14:53:10,891 [DEBUG][       Thread-258609][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 14:53:10,891 [DEBUG][       Thread-258609][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:53:10,891 [DEBUG][       Thread-258609][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:53:10,892 [DEBUG][       Thread-258609][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:53:10,892 [DEBUG][       Thread-258609][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:53:10,892 [DEBUG][       Thread-258609][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 14:53:10,892 [DEBUG][       Thread-258609][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 14:53:10,892 [DEBUG][       Thread-258609][   transport.py][1871] : client lang: <none>
2025-06-13 14:53:10,892 [DEBUG][       Thread-258609][   transport.py][1871] : server lang: <none>
2025-06-13 14:53:10,892 [DEBUG][       Thread-258609][   transport.py][1871] : kex follows: False
2025-06-13 14:53:10,892 [DEBUG][       Thread-258609][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 14:53:10,892 [DEBUG][       Thread-258609][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 14:53:10,892 [DEBUG][       Thread-258609][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 14:53:10,893 [DEBUG][       Thread-258609][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 14:53:10,893 [DEBUG][       Thread-258609][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 14:53:10,893 [DEBUG][       Thread-258609][   transport.py][1871] : Compression: none
2025-06-13 14:53:10,893 [DEBUG][       Thread-258609][   transport.py][1871] : === End of kex handshake ===
2025-06-13 14:53:10,951 [DEBUG][       Thread-258609][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 14:53:10,951 [DEBUG][       Thread-258609][   transport.py][1871] : Switch to new keys ...
2025-06-13 14:53:10,952 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 14:53:10,953 [DEBUG][       Thread-258609][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 14:53:10,953 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 14:53:11,010 [DEBUG][       Thread-258609][   transport.py][1871] : userauth is OK
2025-06-13 14:53:11,010 [DEBUG][       Thread-258609][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 14:53:11,010 [DEBUG][       Thread-258609][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 14:53:11,010 [DEBUG][       Thread-258609][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 14:53:11,011 [DEBUG][       Thread-258609][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 14:53:11,031 [ INFO][       Thread-258609][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 14:53:11,032 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 14:53:11,032 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 14:53:12,030 [DEBUG][       Thread-258609][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 14:53:12,030 [DEBUG][       Thread-258609][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 14:53:12,080 [DEBUG][       Thread-258609][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 14:53:12,080 [DEBUG][       Thread-258609][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 14:53:12,089 [DEBUG][       Thread-258609][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 14:53:12,097 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 14:53:12,098 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 14:53:12,106 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 14:53:12,116 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 14:53:12,116 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 14:53:12,116 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 14:53:12,124 [DEBUG][       Thread-258609][   transport.py][1871] : EOF in transport thread
2025-06-13 14:53:13,133 [DEBUG][Thread-258611 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:53:19,401 [DEBUG][Thread-258612 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:53:22,122 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 14:53:22,122 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 14:53:22,122 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 14:53:22,123 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 14:53:22,164 [DEBUG][Thread-258613 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:53:22,569 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 14, 52, 59), 17.16, 30.38, 29.3, 16.37, 14.02, 0, 0, 0, 0, 0, 0),)
2025-06-13 14:53:22,569 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 14:52:59
2025-06-13 14:53:22,650 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 14:53:22,654 [DEBUG][       Thread-258614][   transport.py][1871] : starting thread (client mode): 0x863bdfc0
2025-06-13 14:53:22,654 [DEBUG][       Thread-258614][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 14:53:22,674 [DEBUG][       Thread-258614][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 14:53:22,675 [ INFO][       Thread-258614][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 14:53:22,678 [DEBUG][       Thread-258614][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 14:53:22,678 [DEBUG][       Thread-258614][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 14:53:22,678 [DEBUG][       Thread-258614][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 14:53:22,678 [DEBUG][       Thread-258614][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:53:22,678 [DEBUG][       Thread-258614][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:53:22,678 [DEBUG][       Thread-258614][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:53:22,678 [DEBUG][       Thread-258614][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:53:22,678 [DEBUG][       Thread-258614][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 14:53:22,678 [DEBUG][       Thread-258614][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 14:53:22,678 [DEBUG][       Thread-258614][   transport.py][1871] : client lang: <none>
2025-06-13 14:53:22,678 [DEBUG][       Thread-258614][   transport.py][1871] : server lang: <none>
2025-06-13 14:53:22,678 [DEBUG][       Thread-258614][   transport.py][1871] : kex follows: False
2025-06-13 14:53:22,678 [DEBUG][       Thread-258614][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 14:53:22,678 [DEBUG][       Thread-258614][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 14:53:22,678 [DEBUG][       Thread-258614][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 14:53:22,678 [DEBUG][       Thread-258614][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 14:53:22,678 [DEBUG][       Thread-258614][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 14:53:22,679 [DEBUG][       Thread-258614][   transport.py][1871] : Compression: none
2025-06-13 14:53:22,679 [DEBUG][       Thread-258614][   transport.py][1871] : === End of kex handshake ===
2025-06-13 14:53:22,695 [DEBUG][       Thread-258614][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 14:53:22,696 [DEBUG][       Thread-258614][   transport.py][1871] : Switch to new keys ...
2025-06-13 14:53:22,696 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 14:53:22,697 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 14:53:22,697 [DEBUG][       Thread-258614][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 14:53:22,698 [DEBUG][       Thread-258614][   transport.py][1871] : userauth is OK
2025-06-13 14:53:22,711 [ INFO][       Thread-258614][   transport.py][1871] : Authentication (password) successful!
2025-06-13 14:53:22,712 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 14:53:23,301 [DEBUG][       Thread-258614][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 14:53:23,302 [DEBUG][       Thread-258614][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 14:53:23,345 [DEBUG][       Thread-258614][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 14:53:23,345 [DEBUG][       Thread-258614][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 14:53:23,349 [DEBUG][       Thread-258614][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 14:53:23,360 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 14:53:23,361 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 14:53:23,362 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 14:53:23,365 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 14:53:23,370 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 14:53:23,372 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 14:53:23,373 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 14:53:23,373 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 14:53:23,374 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.536742 -999.00  +13.70  22.85     35   -1.20 1 1 1 1 1   887    0 15.81 26.06 ----- 21.9 22.9 40.8 27.0 17.6 -30.6 16.6 -32.7 17.1 -31.5 18.4 -29.4
2025-06-13 14:53:23,374 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 14:53:23,374 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 14:53:23,374 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.536742
2025-06-13 14:53:23,374 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 14:53:23,375 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 14:53:23,375 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 14:53:23,375 [DEBUG][       Thread-258614][   transport.py][1871] : EOF in transport thread
2025-06-13 14:53:23,375 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 14:53:23,376 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 14:53:23,376 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T14:52:59', tmtdew=17.16, humidity=30.38, cloud=29.3, wind=16.37, temperature=14.02, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=0, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T12:52:54.509', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 14:53:23,459 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 14:53:23,469 [DEBUG][       Thread-258617][   transport.py][1871] : starting thread (client mode): 0xc54b6c20
2025-06-13 14:53:23,469 [DEBUG][       Thread-258617][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 14:53:23,484 [DEBUG][       Thread-258617][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 14:53:23,484 [ INFO][       Thread-258617][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 14:53:23,492 [DEBUG][       Thread-258617][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 14:53:23,492 [DEBUG][       Thread-258617][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 14:53:23,492 [DEBUG][       Thread-258617][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 14:53:23,492 [DEBUG][       Thread-258617][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:53:23,492 [DEBUG][       Thread-258617][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:53:23,492 [DEBUG][       Thread-258617][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:53:23,492 [DEBUG][       Thread-258617][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:53:23,492 [DEBUG][       Thread-258617][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 14:53:23,492 [DEBUG][       Thread-258617][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 14:53:23,492 [DEBUG][       Thread-258617][   transport.py][1871] : client lang: <none>
2025-06-13 14:53:23,492 [DEBUG][       Thread-258617][   transport.py][1871] : server lang: <none>
2025-06-13 14:53:23,492 [DEBUG][       Thread-258617][   transport.py][1871] : kex follows: False
2025-06-13 14:53:23,492 [DEBUG][       Thread-258617][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 14:53:23,492 [DEBUG][       Thread-258617][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 14:53:23,492 [DEBUG][       Thread-258617][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 14:53:23,492 [DEBUG][       Thread-258617][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 14:53:23,493 [DEBUG][       Thread-258617][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 14:53:23,493 [DEBUG][       Thread-258617][   transport.py][1871] : Compression: none
2025-06-13 14:53:23,493 [DEBUG][       Thread-258617][   transport.py][1871] : === End of kex handshake ===
2025-06-13 14:53:23,552 [DEBUG][       Thread-258617][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 14:53:23,552 [DEBUG][       Thread-258617][   transport.py][1871] : Switch to new keys ...
2025-06-13 14:53:23,553 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 14:53:23,553 [DEBUG][       Thread-258617][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 14:53:23,554 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 14:53:23,611 [DEBUG][       Thread-258617][   transport.py][1871] : userauth is OK
2025-06-13 14:53:23,611 [DEBUG][       Thread-258617][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 14:53:23,611 [DEBUG][       Thread-258617][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 14:53:23,611 [DEBUG][       Thread-258617][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 14:53:23,611 [DEBUG][       Thread-258617][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 14:53:23,630 [ INFO][       Thread-258617][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 14:53:23,630 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 14:53:23,631 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 14:53:24,685 [DEBUG][       Thread-258617][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 14:53:24,685 [DEBUG][       Thread-258617][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 14:53:24,736 [DEBUG][       Thread-258617][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 14:53:24,736 [DEBUG][       Thread-258617][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 14:53:24,746 [DEBUG][       Thread-258617][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 14:53:24,755 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 14:53:24,755 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 14:53:24,764 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 14:53:24,773 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 14:53:24,773 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 14:53:24,774 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 14:53:24,782 [DEBUG][       Thread-258617][   transport.py][1871] : EOF in transport thread
2025-06-13 14:53:31,185 [DEBUG][Thread-258619 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:53:34,784 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 14:53:34,784 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 14:53:34,785 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 14:53:34,787 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 14:53:35,246 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 14, 53, 32), 17.08, 30.64, 29.3, 20.63, 14.09, 0, 0, 0, 0, 0, 0),)
2025-06-13 14:53:35,246 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 14:53:32
2025-06-13 14:53:35,334 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 14:53:35,340 [DEBUG][       Thread-258620][   transport.py][1871] : starting thread (client mode): 0x86352aa0
2025-06-13 14:53:35,340 [DEBUG][       Thread-258620][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 14:53:35,360 [DEBUG][       Thread-258620][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 14:53:35,360 [ INFO][       Thread-258620][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 14:53:35,364 [DEBUG][       Thread-258620][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 14:53:35,364 [DEBUG][       Thread-258620][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 14:53:35,364 [DEBUG][       Thread-258620][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 14:53:35,364 [DEBUG][       Thread-258620][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:53:35,364 [DEBUG][       Thread-258620][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:53:35,364 [DEBUG][       Thread-258620][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:53:35,364 [DEBUG][       Thread-258620][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:53:35,364 [DEBUG][       Thread-258620][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 14:53:35,364 [DEBUG][       Thread-258620][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 14:53:35,365 [DEBUG][       Thread-258620][   transport.py][1871] : client lang: <none>
2025-06-13 14:53:35,365 [DEBUG][       Thread-258620][   transport.py][1871] : server lang: <none>
2025-06-13 14:53:35,365 [DEBUG][       Thread-258620][   transport.py][1871] : kex follows: False
2025-06-13 14:53:35,365 [DEBUG][       Thread-258620][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 14:53:35,365 [DEBUG][       Thread-258620][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 14:53:35,365 [DEBUG][       Thread-258620][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 14:53:35,365 [DEBUG][       Thread-258620][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 14:53:35,365 [DEBUG][       Thread-258620][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 14:53:35,365 [DEBUG][       Thread-258620][   transport.py][1871] : Compression: none
2025-06-13 14:53:35,365 [DEBUG][       Thread-258620][   transport.py][1871] : === End of kex handshake ===
2025-06-13 14:53:35,379 [DEBUG][       Thread-258620][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 14:53:35,379 [DEBUG][       Thread-258620][   transport.py][1871] : Switch to new keys ...
2025-06-13 14:53:35,380 [DEBUG][       Thread-258620][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 14:53:35,380 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 14:53:35,380 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 14:53:35,381 [DEBUG][       Thread-258620][   transport.py][1871] : userauth is OK
2025-06-13 14:53:35,394 [ INFO][       Thread-258620][   transport.py][1871] : Authentication (password) successful!
2025-06-13 14:53:35,395 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 14:53:36,017 [DEBUG][       Thread-258620][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 14:53:36,017 [DEBUG][       Thread-258620][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 14:53:36,061 [DEBUG][       Thread-258620][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 14:53:36,061 [DEBUG][       Thread-258620][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 14:53:36,065 [DEBUG][       Thread-258620][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 14:53:36,078 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 14:53:36,079 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 14:53:36,081 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 14:53:36,082 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 14:53:36,088 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 14:53:36,090 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 14:53:36,090 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 14:53:36,091 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 14:53:36,091 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.536742 -999.00  +13.70  22.85     35   -1.20 1 1 1 1 1   887    0 15.81 26.06 ----- 21.9 22.9 40.8 27.0 17.6 -30.6 16.6 -32.7 17.1 -31.5 18.4 -29.4
2025-06-13 14:53:36,091 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 14:53:36,091 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 14:53:36,091 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.536742
2025-06-13 14:53:36,091 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 14:53:36,092 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 14:53:36,092 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 14:53:36,092 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 14:53:36,092 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 14:53:36,092 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T14:53:32', tmtdew=17.08, humidity=30.64, cloud=29.3, wind=20.63, temperature=14.09, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=0, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T12:52:54.509', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 14:53:36,093 [DEBUG][       Thread-258620][   transport.py][1871] : EOF in transport thread
2025-06-13 14:53:36,176 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 14:53:36,190 [DEBUG][       Thread-258623][   transport.py][1871] : starting thread (client mode): 0x867b78b0
2025-06-13 14:53:36,190 [DEBUG][       Thread-258623][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 14:53:36,205 [DEBUG][       Thread-258623][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 14:53:36,206 [ INFO][       Thread-258623][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 14:53:36,218 [DEBUG][       Thread-258623][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 14:53:36,219 [DEBUG][       Thread-258623][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 14:53:36,219 [DEBUG][       Thread-258623][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 14:53:36,219 [DEBUG][       Thread-258623][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:53:36,219 [DEBUG][       Thread-258623][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:53:36,219 [DEBUG][       Thread-258623][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:53:36,219 [DEBUG][       Thread-258623][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:53:36,219 [DEBUG][       Thread-258623][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 14:53:36,219 [DEBUG][       Thread-258623][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 14:53:36,219 [DEBUG][       Thread-258623][   transport.py][1871] : client lang: <none>
2025-06-13 14:53:36,219 [DEBUG][       Thread-258623][   transport.py][1871] : server lang: <none>
2025-06-13 14:53:36,219 [DEBUG][       Thread-258623][   transport.py][1871] : kex follows: False
2025-06-13 14:53:36,219 [DEBUG][       Thread-258623][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 14:53:36,219 [DEBUG][       Thread-258623][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 14:53:36,219 [DEBUG][       Thread-258623][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 14:53:36,219 [DEBUG][       Thread-258623][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 14:53:36,220 [DEBUG][       Thread-258623][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 14:53:36,220 [DEBUG][       Thread-258623][   transport.py][1871] : Compression: none
2025-06-13 14:53:36,220 [DEBUG][       Thread-258623][   transport.py][1871] : === End of kex handshake ===
2025-06-13 14:53:36,275 [DEBUG][       Thread-258623][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 14:53:36,275 [DEBUG][       Thread-258623][   transport.py][1871] : Switch to new keys ...
2025-06-13 14:53:36,276 [DEBUG][       Thread-258623][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 14:53:36,276 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 14:53:36,277 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 14:53:36,333 [DEBUG][       Thread-258623][   transport.py][1871] : userauth is OK
2025-06-13 14:53:36,333 [DEBUG][       Thread-258623][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 14:53:36,333 [DEBUG][       Thread-258623][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 14:53:36,333 [DEBUG][       Thread-258623][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 14:53:36,333 [DEBUG][       Thread-258623][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 14:53:36,352 [ INFO][       Thread-258623][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 14:53:36,353 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 14:53:36,353 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 14:53:37,407 [DEBUG][       Thread-258623][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 14:53:37,407 [DEBUG][       Thread-258623][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 14:53:37,455 [DEBUG][       Thread-258623][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 14:53:37,455 [DEBUG][       Thread-258623][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 14:53:37,464 [DEBUG][       Thread-258623][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 14:53:37,471 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 14:53:37,472 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 14:53:37,479 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 14:53:37,488 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 14:53:37,488 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 14:53:37,488 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 14:53:37,495 [DEBUG][       Thread-258623][   transport.py][1871] : EOF in transport thread
2025-06-13 14:53:40,203 [DEBUG][Thread-258625 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:53:47,498 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 14:53:47,498 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 14:53:47,498 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 14:53:47,501 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 14:53:47,959 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 14, 53, 32), 17.08, 30.64, 29.3, 20.63, 14.09, 0, 0, 0, 0, 0, 0),)
2025-06-13 14:53:47,959 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 14:53:32
2025-06-13 14:53:48,038 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 14:53:48,043 [DEBUG][       Thread-258626][   transport.py][1871] : starting thread (client mode): 0x86393370
2025-06-13 14:53:48,043 [DEBUG][       Thread-258626][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 14:53:48,063 [DEBUG][       Thread-258626][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 14:53:48,063 [ INFO][       Thread-258626][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 14:53:48,066 [DEBUG][       Thread-258626][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 14:53:48,066 [DEBUG][       Thread-258626][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 14:53:48,066 [DEBUG][       Thread-258626][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 14:53:48,066 [DEBUG][       Thread-258626][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:53:48,066 [DEBUG][       Thread-258626][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:53:48,067 [DEBUG][       Thread-258626][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:53:48,067 [DEBUG][       Thread-258626][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:53:48,067 [DEBUG][       Thread-258626][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 14:53:48,067 [DEBUG][       Thread-258626][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 14:53:48,067 [DEBUG][       Thread-258626][   transport.py][1871] : client lang: <none>
2025-06-13 14:53:48,067 [DEBUG][       Thread-258626][   transport.py][1871] : server lang: <none>
2025-06-13 14:53:48,067 [DEBUG][       Thread-258626][   transport.py][1871] : kex follows: False
2025-06-13 14:53:48,067 [DEBUG][       Thread-258626][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 14:53:48,067 [DEBUG][       Thread-258626][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 14:53:48,067 [DEBUG][       Thread-258626][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 14:53:48,067 [DEBUG][       Thread-258626][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 14:53:48,067 [DEBUG][       Thread-258626][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 14:53:48,067 [DEBUG][       Thread-258626][   transport.py][1871] : Compression: none
2025-06-13 14:53:48,067 [DEBUG][       Thread-258626][   transport.py][1871] : === End of kex handshake ===
2025-06-13 14:53:48,083 [DEBUG][       Thread-258626][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 14:53:48,083 [DEBUG][       Thread-258626][   transport.py][1871] : Switch to new keys ...
2025-06-13 14:53:48,084 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 14:53:48,084 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 14:53:48,085 [DEBUG][       Thread-258626][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 14:53:48,085 [DEBUG][       Thread-258626][   transport.py][1871] : userauth is OK
2025-06-13 14:53:48,099 [ INFO][       Thread-258626][   transport.py][1871] : Authentication (password) successful!
2025-06-13 14:53:48,100 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 14:53:48,726 [DEBUG][       Thread-258626][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 14:53:48,727 [DEBUG][       Thread-258626][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 14:53:48,769 [DEBUG][       Thread-258626][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 14:53:48,769 [DEBUG][       Thread-258626][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 14:53:48,772 [DEBUG][       Thread-258626][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 14:53:48,784 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 14:53:48,784 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 14:53:48,786 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 14:53:48,788 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 14:53:48,793 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 14:53:48,795 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 14:53:48,796 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 14:53:48,796 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 14:53:48,796 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.537089 -999.00  +13.60  21.81     35   -1.50 1 1 1 1 1   887    0 15.40 28.45 ----- 22.1 21.8 45.4 25.3 17.6 -31.4 16.6 -32.4 17.2 -31.0 18.3 -29.3
2025-06-13 14:53:48,797 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 14:53:48,797 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 14:53:48,797 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.537089
2025-06-13 14:53:48,797 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 14:53:48,798 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 14:53:48,798 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 14:53:48,798 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 14:53:48,798 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 14:53:48,798 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T14:53:32', tmtdew=17.08, humidity=30.64, cloud=29.3, wind=20.63, temperature=14.09, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=0, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T12:53:24.490', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 14:53:48,799 [DEBUG][       Thread-258626][   transport.py][1871] : EOF in transport thread
2025-06-13 14:53:48,881 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 14:53:49,229 [DEBUG][Thread-258629 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:53:58,252 [DEBUG][Thread-258630 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:54:04,518 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:54:04,519 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:54:07,272 [DEBUG][Thread-258631 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:54:09,827 [DEBUG][Thread-258632 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:54:10,903 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:54:10,905 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:54:16,291 [DEBUG][Thread-258633 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:54:19,445 [DEBUG][Thread-258634 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:54:25,311 [DEBUG][Thread-258635 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:54:34,336 [DEBUG][Thread-258636 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:54:43,357 [DEBUG][Thread-258637 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:54:52,378 [DEBUG][Thread-258638 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:55:01,396 [DEBUG][Thread-258639 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:55:04,658 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:55:04,659 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:55:10,420 [DEBUG][Thread-258640 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:55:10,972 [DEBUG][Thread-258641 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:55:12,033 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:55:12,035 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:55:19,442 [DEBUG][Thread-258642 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:55:19,493 [DEBUG][Thread-258643 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:55:28,464 [DEBUG][Thread-258644 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:55:37,484 [DEBUG][Thread-258645 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:55:46,505 [DEBUG][Thread-258646 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:55:55,527 [DEBUG][Thread-258647 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:55:57,460 [WARNING][ poll_weather_worker][      driver.py][ 286] : Unable to open ssh connection for writing weather state to io.saao.ac.za: [Errno 110] Connection timed out
2025-06-13 14:56:04,549 [DEBUG][Thread-258648 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:56:04,796 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:56:04,797 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:56:07,471 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 14:56:07,471 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 14:56:07,471 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 14:56:07,474 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 14:56:07,953 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 14, 55, 38), 17.63, 29.45, 0.0, 15.63, 14.23, 0, 0, 0, 2, 0, 0),)
2025-06-13 14:56:07,954 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 14:55:38
2025-06-13 14:56:08,034 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 14:56:08,038 [DEBUG][       Thread-258649][   transport.py][1871] : starting thread (client mode): 0x86390100
2025-06-13 14:56:08,038 [DEBUG][       Thread-258649][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 14:56:08,059 [DEBUG][       Thread-258649][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 14:56:08,059 [ INFO][       Thread-258649][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 14:56:08,062 [DEBUG][       Thread-258649][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 14:56:08,062 [DEBUG][       Thread-258649][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 14:56:08,062 [DEBUG][       Thread-258649][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 14:56:08,062 [DEBUG][       Thread-258649][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:56:08,062 [DEBUG][       Thread-258649][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:56:08,062 [DEBUG][       Thread-258649][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:56:08,062 [DEBUG][       Thread-258649][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:56:08,062 [DEBUG][       Thread-258649][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 14:56:08,062 [DEBUG][       Thread-258649][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 14:56:08,062 [DEBUG][       Thread-258649][   transport.py][1871] : client lang: <none>
2025-06-13 14:56:08,062 [DEBUG][       Thread-258649][   transport.py][1871] : server lang: <none>
2025-06-13 14:56:08,062 [DEBUG][       Thread-258649][   transport.py][1871] : kex follows: False
2025-06-13 14:56:08,062 [DEBUG][       Thread-258649][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 14:56:08,062 [DEBUG][       Thread-258649][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 14:56:08,062 [DEBUG][       Thread-258649][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 14:56:08,062 [DEBUG][       Thread-258649][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 14:56:08,062 [DEBUG][       Thread-258649][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 14:56:08,062 [DEBUG][       Thread-258649][   transport.py][1871] : Compression: none
2025-06-13 14:56:08,062 [DEBUG][       Thread-258649][   transport.py][1871] : === End of kex handshake ===
2025-06-13 14:56:08,081 [DEBUG][       Thread-258649][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 14:56:08,082 [DEBUG][       Thread-258649][   transport.py][1871] : Switch to new keys ...
2025-06-13 14:56:08,082 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 14:56:08,082 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 14:56:08,083 [DEBUG][       Thread-258649][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 14:56:08,124 [DEBUG][       Thread-258649][   transport.py][1871] : userauth is OK
2025-06-13 14:56:08,148 [ INFO][       Thread-258649][   transport.py][1871] : Authentication (password) successful!
2025-06-13 14:56:08,149 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 14:56:08,804 [DEBUG][       Thread-258649][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 14:56:08,804 [DEBUG][       Thread-258649][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 14:56:08,845 [DEBUG][       Thread-258649][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 14:56:08,845 [DEBUG][       Thread-258649][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 14:56:08,849 [DEBUG][       Thread-258649][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 14:56:08,862 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 14:56:08,863 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 14:56:08,865 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 14:56:08,867 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 14:56:08,872 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 14:56:08,874 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 14:56:08,875 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 14:56:08,875 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 14:56:08,875 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.538478 -999.00  +14.30  18.94     34   -1.10 1 1 1 1 1   887    0 15.59 19.05 ----- 18.3 18.9 40.4 21.9 17.8 -31.0 16.7 -31.7 17.4 -30.1 18.5 -28.9
2025-06-13 14:56:08,876 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 14:56:08,876 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 14:56:08,876 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.538478
2025-06-13 14:56:08,876 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 14:56:08,877 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 14:56:08,877 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 14:56:08,877 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 14:56:08,877 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 14:56:08,877 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T14:55:38', tmtdew=17.63, humidity=29.45, cloud=0.0, wind=15.63, temperature=14.23, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T12:55:24.499', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 14:56:08,878 [DEBUG][       Thread-258649][   transport.py][1871] : EOF in transport thread
2025-06-13 14:56:08,961 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 14:56:08,977 [DEBUG][       Thread-258652][   transport.py][1871] : starting thread (client mode): 0x863c9300
2025-06-13 14:56:08,977 [DEBUG][       Thread-258652][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 14:56:08,997 [DEBUG][       Thread-258652][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 14:56:08,997 [ INFO][       Thread-258652][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 14:56:09,004 [DEBUG][       Thread-258652][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 14:56:09,005 [DEBUG][       Thread-258652][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 14:56:09,005 [DEBUG][       Thread-258652][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 14:56:09,005 [DEBUG][       Thread-258652][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:56:09,005 [DEBUG][       Thread-258652][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:56:09,005 [DEBUG][       Thread-258652][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:56:09,005 [DEBUG][       Thread-258652][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:56:09,005 [DEBUG][       Thread-258652][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 14:56:09,005 [DEBUG][       Thread-258652][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 14:56:09,005 [DEBUG][       Thread-258652][   transport.py][1871] : client lang: <none>
2025-06-13 14:56:09,005 [DEBUG][       Thread-258652][   transport.py][1871] : server lang: <none>
2025-06-13 14:56:09,005 [DEBUG][       Thread-258652][   transport.py][1871] : kex follows: False
2025-06-13 14:56:09,005 [DEBUG][       Thread-258652][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 14:56:09,005 [DEBUG][       Thread-258652][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 14:56:09,005 [DEBUG][       Thread-258652][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 14:56:09,005 [DEBUG][       Thread-258652][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 14:56:09,006 [DEBUG][       Thread-258652][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 14:56:09,006 [DEBUG][       Thread-258652][   transport.py][1871] : Compression: none
2025-06-13 14:56:09,006 [DEBUG][       Thread-258652][   transport.py][1871] : === End of kex handshake ===
2025-06-13 14:56:09,063 [DEBUG][       Thread-258652][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 14:56:09,064 [DEBUG][       Thread-258652][   transport.py][1871] : Switch to new keys ...
2025-06-13 14:56:09,064 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 14:56:09,065 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 14:56:09,065 [DEBUG][       Thread-258652][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 14:56:09,119 [DEBUG][       Thread-258652][   transport.py][1871] : userauth is OK
2025-06-13 14:56:09,119 [DEBUG][       Thread-258652][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 14:56:09,119 [DEBUG][       Thread-258652][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 14:56:09,119 [DEBUG][       Thread-258652][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 14:56:09,119 [DEBUG][       Thread-258652][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 14:56:09,138 [ INFO][       Thread-258652][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 14:56:09,139 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 14:56:09,139 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 14:56:10,145 [DEBUG][       Thread-258652][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 14:56:10,145 [DEBUG][       Thread-258652][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 14:56:10,196 [DEBUG][       Thread-258652][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 14:56:10,196 [DEBUG][       Thread-258652][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 14:56:10,205 [DEBUG][       Thread-258652][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 14:56:10,213 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 14:56:10,214 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 14:56:10,222 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 14:56:10,234 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 14:56:10,234 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 14:56:10,234 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 14:56:10,242 [DEBUG][       Thread-258652][   transport.py][1871] : EOF in transport thread
2025-06-13 14:56:12,100 [DEBUG][Thread-258654 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:56:13,157 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:56:13,158 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:56:13,571 [DEBUG][Thread-258655 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:56:19,544 [DEBUG][Thread-258656 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:56:20,245 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 14:56:20,245 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 14:56:20,245 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 14:56:20,247 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 14:56:20,722 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 14, 56, 10), 17.8, 29.13, 0.0, 14.01, 14.37, 0, 0, 0, 2, 0, 0),)
2025-06-13 14:56:20,722 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 14:56:10
2025-06-13 14:56:20,804 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 14:56:20,816 [DEBUG][       Thread-258657][   transport.py][1871] : starting thread (client mode): 0x863a53f0
2025-06-13 14:56:20,816 [DEBUG][       Thread-258657][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 14:56:20,836 [DEBUG][       Thread-258657][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 14:56:20,836 [ INFO][       Thread-258657][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 14:56:20,840 [DEBUG][       Thread-258657][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 14:56:20,840 [DEBUG][       Thread-258657][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 14:56:20,840 [DEBUG][       Thread-258657][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 14:56:20,840 [DEBUG][       Thread-258657][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:56:20,840 [DEBUG][       Thread-258657][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:56:20,840 [DEBUG][       Thread-258657][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:56:20,840 [DEBUG][       Thread-258657][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:56:20,840 [DEBUG][       Thread-258657][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 14:56:20,840 [DEBUG][       Thread-258657][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 14:56:20,840 [DEBUG][       Thread-258657][   transport.py][1871] : client lang: <none>
2025-06-13 14:56:20,840 [DEBUG][       Thread-258657][   transport.py][1871] : server lang: <none>
2025-06-13 14:56:20,840 [DEBUG][       Thread-258657][   transport.py][1871] : kex follows: False
2025-06-13 14:56:20,840 [DEBUG][       Thread-258657][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 14:56:20,840 [DEBUG][       Thread-258657][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 14:56:20,840 [DEBUG][       Thread-258657][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 14:56:20,840 [DEBUG][       Thread-258657][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 14:56:20,841 [DEBUG][       Thread-258657][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 14:56:20,841 [DEBUG][       Thread-258657][   transport.py][1871] : Compression: none
2025-06-13 14:56:20,841 [DEBUG][       Thread-258657][   transport.py][1871] : === End of kex handshake ===
2025-06-13 14:56:20,858 [DEBUG][       Thread-258657][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 14:56:20,858 [DEBUG][       Thread-258657][   transport.py][1871] : Switch to new keys ...
2025-06-13 14:56:20,859 [DEBUG][       Thread-258657][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 14:56:20,859 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 14:56:20,859 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 14:56:20,860 [DEBUG][       Thread-258657][   transport.py][1871] : userauth is OK
2025-06-13 14:56:20,884 [ INFO][       Thread-258657][   transport.py][1871] : Authentication (password) successful!
2025-06-13 14:56:20,884 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 14:56:21,574 [DEBUG][       Thread-258657][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 14:56:21,574 [DEBUG][       Thread-258657][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 14:56:21,617 [DEBUG][       Thread-258657][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 14:56:21,617 [DEBUG][       Thread-258657][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 14:56:21,620 [DEBUG][       Thread-258657][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 14:56:21,634 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 14:56:21,634 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 14:56:21,636 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 14:56:21,638 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 14:56:21,644 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 14:56:21,645 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 14:56:21,646 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 14:56:21,646 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 14:56:21,646 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.538478 -999.00  +14.30  18.94     34   -1.10 1 1 1 1 1   887    0 15.59 19.05 ----- 18.3 18.9 40.4 21.9 17.8 -31.0 16.7 -31.7 17.4 -30.1 18.5 -28.9
2025-06-13 14:56:21,646 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 14:56:21,646 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 14:56:21,647 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.538478
2025-06-13 14:56:21,647 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 14:56:21,647 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 14:56:21,648 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 14:56:21,648 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 14:56:21,648 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 14:56:21,648 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T14:56:10', tmtdew=17.8, humidity=29.13, cloud=0.0, wind=14.01, temperature=14.37, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T12:55:24.499', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 14:56:21,649 [DEBUG][       Thread-258657][   transport.py][1871] : EOF in transport thread
2025-06-13 14:56:21,731 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 14:56:21,741 [DEBUG][       Thread-258660][   transport.py][1871] : starting thread (client mode): 0x868c8280
2025-06-13 14:56:21,741 [DEBUG][       Thread-258660][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 14:56:21,757 [DEBUG][       Thread-258660][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 14:56:21,757 [ INFO][       Thread-258660][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 14:56:21,766 [DEBUG][       Thread-258660][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 14:56:21,766 [DEBUG][       Thread-258660][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 14:56:21,766 [DEBUG][       Thread-258660][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 14:56:21,766 [DEBUG][       Thread-258660][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:56:21,766 [DEBUG][       Thread-258660][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:56:21,766 [DEBUG][       Thread-258660][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:56:21,766 [DEBUG][       Thread-258660][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:56:21,766 [DEBUG][       Thread-258660][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 14:56:21,766 [DEBUG][       Thread-258660][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 14:56:21,766 [DEBUG][       Thread-258660][   transport.py][1871] : client lang: <none>
2025-06-13 14:56:21,766 [DEBUG][       Thread-258660][   transport.py][1871] : server lang: <none>
2025-06-13 14:56:21,766 [DEBUG][       Thread-258660][   transport.py][1871] : kex follows: False
2025-06-13 14:56:21,766 [DEBUG][       Thread-258660][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 14:56:21,766 [DEBUG][       Thread-258660][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 14:56:21,766 [DEBUG][       Thread-258660][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 14:56:21,767 [DEBUG][       Thread-258660][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 14:56:21,767 [DEBUG][       Thread-258660][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 14:56:21,767 [DEBUG][       Thread-258660][   transport.py][1871] : Compression: none
2025-06-13 14:56:21,767 [DEBUG][       Thread-258660][   transport.py][1871] : === End of kex handshake ===
2025-06-13 14:56:21,823 [DEBUG][       Thread-258660][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 14:56:21,823 [DEBUG][       Thread-258660][   transport.py][1871] : Switch to new keys ...
2025-06-13 14:56:21,824 [DEBUG][       Thread-258660][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 14:56:21,824 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 14:56:21,825 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 14:56:21,879 [DEBUG][       Thread-258660][   transport.py][1871] : userauth is OK
2025-06-13 14:56:21,879 [DEBUG][       Thread-258660][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 14:56:21,879 [DEBUG][       Thread-258660][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 14:56:21,879 [DEBUG][       Thread-258660][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 14:56:21,879 [DEBUG][       Thread-258660][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 14:56:21,898 [ INFO][       Thread-258660][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 14:56:21,898 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 14:56:21,898 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 14:56:22,595 [DEBUG][Thread-258662 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:56:22,910 [DEBUG][       Thread-258660][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 14:56:22,911 [DEBUG][       Thread-258660][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 14:56:22,960 [DEBUG][       Thread-258660][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 14:56:22,960 [DEBUG][       Thread-258660][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 14:56:22,969 [DEBUG][       Thread-258660][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 14:56:22,982 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 14:56:22,982 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 14:56:22,991 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 14:56:23,000 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 14:56:23,001 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 14:56:23,001 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 14:56:23,009 [DEBUG][       Thread-258660][   transport.py][1871] : EOF in transport thread
2025-06-13 14:56:31,624 [DEBUG][Thread-258663 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:56:33,003 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 14:56:33,003 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 14:56:33,004 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 14:56:33,006 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 14:56:33,485 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 14, 56, 10), 17.8, 29.13, 0.0, 14.01, 14.37, 0, 0, 0, 2, 0, 0),)
2025-06-13 14:56:33,485 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 14:56:10
2025-06-13 14:56:33,567 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 14:56:33,571 [DEBUG][       Thread-258664][   transport.py][1871] : starting thread (client mode): 0x863a50c0
2025-06-13 14:56:33,571 [DEBUG][       Thread-258664][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 14:56:33,592 [DEBUG][       Thread-258664][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 14:56:33,592 [ INFO][       Thread-258664][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 14:56:33,595 [DEBUG][       Thread-258664][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 14:56:33,595 [DEBUG][       Thread-258664][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 14:56:33,595 [DEBUG][       Thread-258664][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 14:56:33,595 [DEBUG][       Thread-258664][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:56:33,595 [DEBUG][       Thread-258664][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:56:33,595 [DEBUG][       Thread-258664][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:56:33,595 [DEBUG][       Thread-258664][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:56:33,595 [DEBUG][       Thread-258664][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 14:56:33,595 [DEBUG][       Thread-258664][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 14:56:33,595 [DEBUG][       Thread-258664][   transport.py][1871] : client lang: <none>
2025-06-13 14:56:33,595 [DEBUG][       Thread-258664][   transport.py][1871] : server lang: <none>
2025-06-13 14:56:33,595 [DEBUG][       Thread-258664][   transport.py][1871] : kex follows: False
2025-06-13 14:56:33,595 [DEBUG][       Thread-258664][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 14:56:33,595 [DEBUG][       Thread-258664][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 14:56:33,595 [DEBUG][       Thread-258664][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 14:56:33,595 [DEBUG][       Thread-258664][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 14:56:33,595 [DEBUG][       Thread-258664][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 14:56:33,595 [DEBUG][       Thread-258664][   transport.py][1871] : Compression: none
2025-06-13 14:56:33,596 [DEBUG][       Thread-258664][   transport.py][1871] : === End of kex handshake ===
2025-06-13 14:56:33,604 [DEBUG][       Thread-258664][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 14:56:33,604 [DEBUG][       Thread-258664][   transport.py][1871] : Switch to new keys ...
2025-06-13 14:56:33,604 [DEBUG][       Thread-258664][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 14:56:33,605 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 14:56:33,605 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 14:56:33,606 [DEBUG][       Thread-258664][   transport.py][1871] : userauth is OK
2025-06-13 14:56:33,620 [ INFO][       Thread-258664][   transport.py][1871] : Authentication (password) successful!
2025-06-13 14:56:33,620 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 14:56:34,270 [DEBUG][       Thread-258664][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 14:56:34,271 [DEBUG][       Thread-258664][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 14:56:34,313 [DEBUG][       Thread-258664][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 14:56:34,313 [DEBUG][       Thread-258664][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 14:56:34,316 [DEBUG][       Thread-258664][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 14:56:34,329 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 14:56:34,329 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 14:56:34,331 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 14:56:34,333 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 14:56:34,339 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 14:56:34,341 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 14:56:34,341 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 14:56:34,341 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 14:56:34,342 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.538825 -999.00  +14.30  16.69     33   -1.30 1 1 1 1 1   887    0 15.58 18.64 ----- 17.6 16.7 45.6 24.3 17.8 -30.7 16.8 -31.8 17.4 -30.7 18.6 -29.0
2025-06-13 14:56:34,342 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 14:56:34,342 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 14:56:34,342 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.538825
2025-06-13 14:56:34,342 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 14:56:34,343 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 14:56:34,343 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 14:56:34,343 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 14:56:34,343 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 14:56:34,343 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T14:56:10', tmtdew=17.8, humidity=29.13, cloud=0.0, wind=14.01, temperature=14.37, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T12:55:54.480', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 14:56:34,343 [DEBUG][       Thread-258664][   transport.py][1871] : EOF in transport thread
2025-06-13 14:56:34,427 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 14:56:34,443 [DEBUG][       Thread-258667][   transport.py][1871] : starting thread (client mode): 0x868c83a0
2025-06-13 14:56:34,444 [DEBUG][       Thread-258667][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 14:56:34,464 [DEBUG][       Thread-258667][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 14:56:34,464 [ INFO][       Thread-258667][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 14:56:34,471 [DEBUG][       Thread-258667][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 14:56:34,471 [DEBUG][       Thread-258667][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 14:56:34,471 [DEBUG][       Thread-258667][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 14:56:34,471 [DEBUG][       Thread-258667][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:56:34,471 [DEBUG][       Thread-258667][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:56:34,472 [DEBUG][       Thread-258667][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:56:34,472 [DEBUG][       Thread-258667][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:56:34,472 [DEBUG][       Thread-258667][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 14:56:34,472 [DEBUG][       Thread-258667][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 14:56:34,472 [DEBUG][       Thread-258667][   transport.py][1871] : client lang: <none>
2025-06-13 14:56:34,472 [DEBUG][       Thread-258667][   transport.py][1871] : server lang: <none>
2025-06-13 14:56:34,472 [DEBUG][       Thread-258667][   transport.py][1871] : kex follows: False
2025-06-13 14:56:34,472 [DEBUG][       Thread-258667][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 14:56:34,472 [DEBUG][       Thread-258667][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 14:56:34,472 [DEBUG][       Thread-258667][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 14:56:34,472 [DEBUG][       Thread-258667][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 14:56:34,472 [DEBUG][       Thread-258667][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 14:56:34,472 [DEBUG][       Thread-258667][   transport.py][1871] : Compression: none
2025-06-13 14:56:34,472 [DEBUG][       Thread-258667][   transport.py][1871] : === End of kex handshake ===
2025-06-13 14:56:34,531 [DEBUG][       Thread-258667][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 14:56:34,532 [DEBUG][       Thread-258667][   transport.py][1871] : Switch to new keys ...
2025-06-13 14:56:34,532 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 14:56:34,533 [DEBUG][       Thread-258667][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 14:56:34,534 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 14:56:34,587 [DEBUG][       Thread-258667][   transport.py][1871] : userauth is OK
2025-06-13 14:56:34,587 [DEBUG][       Thread-258667][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 14:56:34,588 [DEBUG][       Thread-258667][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 14:56:34,588 [DEBUG][       Thread-258667][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 14:56:34,588 [DEBUG][       Thread-258667][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 14:56:34,606 [ INFO][       Thread-258667][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 14:56:34,607 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 14:56:34,607 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 14:56:35,615 [DEBUG][       Thread-258667][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 14:56:35,615 [DEBUG][       Thread-258667][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 14:56:35,664 [DEBUG][       Thread-258667][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 14:56:35,664 [DEBUG][       Thread-258667][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 14:56:35,674 [DEBUG][       Thread-258667][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 14:56:35,682 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 14:56:35,683 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 14:56:35,692 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 14:56:35,701 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 14:56:35,701 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 14:56:35,702 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 14:56:35,710 [DEBUG][       Thread-258667][   transport.py][1871] : EOF in transport thread
2025-06-13 14:56:40,645 [DEBUG][Thread-258669 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:56:45,712 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 14:56:45,712 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 14:56:45,712 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 14:56:45,715 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 14:56:46,196 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 14, 56, 42), 17.96, 28.82, 0.0, 17.06, 14.39, 0, 0, 0, 2, 0, 0),)
2025-06-13 14:56:46,196 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 14:56:42
2025-06-13 14:56:46,277 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 14:56:46,281 [DEBUG][       Thread-258670][   transport.py][1871] : starting thread (client mode): 0x863ed720
2025-06-13 14:56:46,281 [DEBUG][       Thread-258670][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 14:56:46,302 [DEBUG][       Thread-258670][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 14:56:46,302 [ INFO][       Thread-258670][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 14:56:46,306 [DEBUG][       Thread-258670][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 14:56:46,306 [DEBUG][       Thread-258670][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 14:56:46,306 [DEBUG][       Thread-258670][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 14:56:46,306 [DEBUG][       Thread-258670][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:56:46,306 [DEBUG][       Thread-258670][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:56:46,306 [DEBUG][       Thread-258670][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:56:46,306 [DEBUG][       Thread-258670][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:56:46,306 [DEBUG][       Thread-258670][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 14:56:46,306 [DEBUG][       Thread-258670][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 14:56:46,306 [DEBUG][       Thread-258670][   transport.py][1871] : client lang: <none>
2025-06-13 14:56:46,306 [DEBUG][       Thread-258670][   transport.py][1871] : server lang: <none>
2025-06-13 14:56:46,306 [DEBUG][       Thread-258670][   transport.py][1871] : kex follows: False
2025-06-13 14:56:46,306 [DEBUG][       Thread-258670][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 14:56:46,306 [DEBUG][       Thread-258670][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 14:56:46,306 [DEBUG][       Thread-258670][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 14:56:46,307 [DEBUG][       Thread-258670][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 14:56:46,307 [DEBUG][       Thread-258670][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 14:56:46,307 [DEBUG][       Thread-258670][   transport.py][1871] : Compression: none
2025-06-13 14:56:46,307 [DEBUG][       Thread-258670][   transport.py][1871] : === End of kex handshake ===
2025-06-13 14:56:46,327 [DEBUG][       Thread-258670][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 14:56:46,327 [DEBUG][       Thread-258670][   transport.py][1871] : Switch to new keys ...
2025-06-13 14:56:46,328 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 14:56:46,328 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 14:56:46,328 [DEBUG][       Thread-258670][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 14:56:46,329 [DEBUG][       Thread-258670][   transport.py][1871] : userauth is OK
2025-06-13 14:56:46,356 [ INFO][       Thread-258670][   transport.py][1871] : Authentication (password) successful!
2025-06-13 14:56:46,356 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 14:56:46,959 [DEBUG][       Thread-258670][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 14:56:46,959 [DEBUG][       Thread-258670][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 14:56:47,000 [DEBUG][       Thread-258670][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 14:56:47,000 [DEBUG][       Thread-258670][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 14:56:47,003 [DEBUG][       Thread-258670][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 14:56:47,016 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 14:56:47,016 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 14:56:47,017 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 14:56:47,019 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 14:56:47,022 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 14:56:47,023 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 14:56:47,023 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 14:56:47,023 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 14:56:47,023 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.538825 -999.00  +14.30  16.69     33   -1.30 1 1 1 1 1   887    0 15.58 18.64 ----- 17.6 16.7 45.6 24.3 17.8 -30.7 16.8 -31.8 17.4 -30.7 18.6 -29.0
2025-06-13 14:56:47,023 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 14:56:47,023 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 14:56:47,023 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.538825
2025-06-13 14:56:47,023 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 14:56:47,023 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 14:56:47,023 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 14:56:47,023 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 14:56:47,023 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 14:56:47,023 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T14:56:42', tmtdew=17.96, humidity=28.82, cloud=0.0, wind=17.06, temperature=14.39, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T12:55:54.480', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 14:56:47,024 [DEBUG][       Thread-258670][   transport.py][1871] : EOF in transport thread
2025-06-13 14:56:47,095 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 14:56:49,663 [DEBUG][Thread-258673 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:56:58,692 [DEBUG][Thread-258674 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:57:04,955 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:57:04,956 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:57:07,715 [DEBUG][Thread-258675 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:57:13,225 [DEBUG][Thread-258676 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:57:14,299 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:57:14,300 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:57:16,741 [DEBUG][Thread-258677 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:57:19,593 [DEBUG][Thread-258678 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:57:25,762 [DEBUG][Thread-258679 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:57:34,783 [DEBUG][Thread-258680 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:57:43,805 [DEBUG][Thread-258681 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:57:52,825 [DEBUG][Thread-258682 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:58:01,848 [DEBUG][Thread-258683 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:58:05,113 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:58:05,113 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:58:10,871 [DEBUG][Thread-258684 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:58:14,372 [DEBUG][Thread-258685 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:58:15,456 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:58:15,457 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:58:19,638 [DEBUG][Thread-258686 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:58:19,892 [DEBUG][Thread-258687 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:58:28,912 [DEBUG][Thread-258688 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:58:37,937 [DEBUG][Thread-258689 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:58:46,956 [DEBUG][Thread-258690 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:58:55,636 [WARNING][ poll_weather_worker][      driver.py][ 286] : Unable to open ssh connection for writing weather state to io.saao.ac.za: [Errno 110] Connection timed out
2025-06-13 14:58:55,976 [DEBUG][Thread-258691 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:59:05,000 [DEBUG][Thread-258692 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:59:05,250 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:59:05,252 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:59:05,647 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 14:59:05,647 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 14:59:05,647 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 14:59:05,650 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 14:59:06,152 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 14, 58, 50), 17.91, 28.78, 0.0, 20.61, 14.2, 0, 0, 0, 2, 0, 0),)
2025-06-13 14:59:06,152 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 14:58:50
2025-06-13 14:59:06,233 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 14:59:06,239 [DEBUG][       Thread-258693][   transport.py][1871] : starting thread (client mode): 0x863edc60
2025-06-13 14:59:06,239 [DEBUG][       Thread-258693][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 14:59:06,258 [DEBUG][       Thread-258693][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 14:59:06,258 [ INFO][       Thread-258693][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 14:59:06,260 [DEBUG][       Thread-258693][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 14:59:06,260 [DEBUG][       Thread-258693][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 14:59:06,260 [DEBUG][       Thread-258693][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 14:59:06,260 [DEBUG][       Thread-258693][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:59:06,260 [DEBUG][       Thread-258693][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:59:06,260 [DEBUG][       Thread-258693][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:59:06,260 [DEBUG][       Thread-258693][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:59:06,260 [DEBUG][       Thread-258693][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 14:59:06,260 [DEBUG][       Thread-258693][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 14:59:06,260 [DEBUG][       Thread-258693][   transport.py][1871] : client lang: <none>
2025-06-13 14:59:06,260 [DEBUG][       Thread-258693][   transport.py][1871] : server lang: <none>
2025-06-13 14:59:06,260 [DEBUG][       Thread-258693][   transport.py][1871] : kex follows: False
2025-06-13 14:59:06,260 [DEBUG][       Thread-258693][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 14:59:06,260 [DEBUG][       Thread-258693][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 14:59:06,260 [DEBUG][       Thread-258693][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 14:59:06,260 [DEBUG][       Thread-258693][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 14:59:06,261 [DEBUG][       Thread-258693][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 14:59:06,261 [DEBUG][       Thread-258693][   transport.py][1871] : Compression: none
2025-06-13 14:59:06,261 [DEBUG][       Thread-258693][   transport.py][1871] : === End of kex handshake ===
2025-06-13 14:59:06,269 [DEBUG][       Thread-258693][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 14:59:06,269 [DEBUG][       Thread-258693][   transport.py][1871] : Switch to new keys ...
2025-06-13 14:59:06,270 [DEBUG][       Thread-258693][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 14:59:06,270 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 14:59:06,270 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 14:59:06,271 [DEBUG][       Thread-258693][   transport.py][1871] : userauth is OK
2025-06-13 14:59:06,296 [ INFO][       Thread-258693][   transport.py][1871] : Authentication (password) successful!
2025-06-13 14:59:06,297 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 14:59:07,111 [DEBUG][       Thread-258693][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 14:59:07,111 [DEBUG][       Thread-258693][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 14:59:07,153 [DEBUG][       Thread-258693][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 14:59:07,153 [DEBUG][       Thread-258693][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 14:59:07,157 [DEBUG][       Thread-258693][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 14:59:07,169 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 14:59:07,169 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 14:59:07,171 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 14:59:07,173 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 14:59:07,179 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 14:59:07,182 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 14:59:07,182 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 14:59:07,182 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 14:59:07,183 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.540561 -999.00  +14.00  20.35     33   -1.80 1 1 1 1 1   887    0 15.70 24.79 ----- 20.3 20.4 39.4 24.6 17.8 -32.1 16.8 -32.2 17.4 -30.4 18.6 -29.7
2025-06-13 14:59:07,183 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 14:59:07,183 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 14:59:07,183 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.540561
2025-06-13 14:59:07,183 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 14:59:07,184 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 14:59:07,184 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 14:59:07,184 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 14:59:07,184 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 14:59:07,184 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T14:58:50', tmtdew=17.91, humidity=28.78, cloud=0.0, wind=20.61, temperature=14.2, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T12:58:24.470', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 14:59:07,185 [DEBUG][       Thread-258693][   transport.py][1871] : EOF in transport thread
2025-06-13 14:59:07,269 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 14:59:07,281 [DEBUG][       Thread-258696][   transport.py][1871] : starting thread (client mode): 0x86893be0
2025-06-13 14:59:07,281 [DEBUG][       Thread-258696][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 14:59:07,295 [DEBUG][       Thread-258696][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 14:59:07,295 [ INFO][       Thread-258696][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 14:59:07,303 [DEBUG][       Thread-258696][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 14:59:07,303 [DEBUG][       Thread-258696][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 14:59:07,303 [DEBUG][       Thread-258696][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 14:59:07,303 [DEBUG][       Thread-258696][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:59:07,303 [DEBUG][       Thread-258696][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:59:07,303 [DEBUG][       Thread-258696][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:59:07,303 [DEBUG][       Thread-258696][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:59:07,303 [DEBUG][       Thread-258696][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 14:59:07,303 [DEBUG][       Thread-258696][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 14:59:07,303 [DEBUG][       Thread-258696][   transport.py][1871] : client lang: <none>
2025-06-13 14:59:07,303 [DEBUG][       Thread-258696][   transport.py][1871] : server lang: <none>
2025-06-13 14:59:07,303 [DEBUG][       Thread-258696][   transport.py][1871] : kex follows: False
2025-06-13 14:59:07,303 [DEBUG][       Thread-258696][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 14:59:07,304 [DEBUG][       Thread-258696][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 14:59:07,304 [DEBUG][       Thread-258696][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 14:59:07,304 [DEBUG][       Thread-258696][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 14:59:07,304 [DEBUG][       Thread-258696][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 14:59:07,304 [DEBUG][       Thread-258696][   transport.py][1871] : Compression: none
2025-06-13 14:59:07,304 [DEBUG][       Thread-258696][   transport.py][1871] : === End of kex handshake ===
2025-06-13 14:59:07,367 [DEBUG][       Thread-258696][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 14:59:07,367 [DEBUG][       Thread-258696][   transport.py][1871] : Switch to new keys ...
2025-06-13 14:59:07,368 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 14:59:07,369 [DEBUG][       Thread-258696][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 14:59:07,370 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 14:59:07,422 [DEBUG][       Thread-258696][   transport.py][1871] : userauth is OK
2025-06-13 14:59:07,422 [DEBUG][       Thread-258696][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 14:59:07,422 [DEBUG][       Thread-258696][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 14:59:07,422 [DEBUG][       Thread-258696][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 14:59:07,422 [DEBUG][       Thread-258696][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 14:59:07,436 [ INFO][       Thread-258696][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 14:59:07,436 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 14:59:07,436 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 14:59:08,437 [DEBUG][       Thread-258696][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 14:59:08,437 [DEBUG][       Thread-258696][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 14:59:08,488 [DEBUG][       Thread-258696][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 14:59:08,488 [DEBUG][       Thread-258696][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 14:59:08,498 [DEBUG][       Thread-258696][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 14:59:08,507 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 14:59:08,507 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 14:59:08,516 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 14:59:08,527 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 14:59:08,527 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 14:59:08,528 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 14:59:08,536 [DEBUG][       Thread-258696][   transport.py][1871] : EOF in transport thread
2025-06-13 14:59:14,025 [DEBUG][Thread-258698 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:59:15,526 [DEBUG][Thread-258699 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:59:16,609 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:59:16,611 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:59:18,536 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 14:59:18,536 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 14:59:18,545 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 14:59:18,548 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 14:59:19,028 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 14, 58, 50), 17.91, 28.78, 0.0, 20.61, 14.2, 0, 0, 0, 2, 0, 0),)
2025-06-13 14:59:19,028 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 14:58:50
2025-06-13 14:59:19,110 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 14:59:19,114 [DEBUG][       Thread-258700][   transport.py][1871] : starting thread (client mode): 0x863a7fa0
2025-06-13 14:59:19,114 [DEBUG][       Thread-258700][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 14:59:19,134 [DEBUG][       Thread-258700][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 14:59:19,134 [ INFO][       Thread-258700][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 14:59:19,138 [DEBUG][       Thread-258700][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 14:59:19,138 [DEBUG][       Thread-258700][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 14:59:19,138 [DEBUG][       Thread-258700][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 14:59:19,138 [DEBUG][       Thread-258700][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:59:19,138 [DEBUG][       Thread-258700][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:59:19,138 [DEBUG][       Thread-258700][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:59:19,138 [DEBUG][       Thread-258700][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:59:19,138 [DEBUG][       Thread-258700][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 14:59:19,138 [DEBUG][       Thread-258700][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 14:59:19,138 [DEBUG][       Thread-258700][   transport.py][1871] : client lang: <none>
2025-06-13 14:59:19,138 [DEBUG][       Thread-258700][   transport.py][1871] : server lang: <none>
2025-06-13 14:59:19,138 [DEBUG][       Thread-258700][   transport.py][1871] : kex follows: False
2025-06-13 14:59:19,138 [DEBUG][       Thread-258700][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 14:59:19,138 [DEBUG][       Thread-258700][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 14:59:19,138 [DEBUG][       Thread-258700][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 14:59:19,138 [DEBUG][       Thread-258700][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 14:59:19,138 [DEBUG][       Thread-258700][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 14:59:19,138 [DEBUG][       Thread-258700][   transport.py][1871] : Compression: none
2025-06-13 14:59:19,138 [DEBUG][       Thread-258700][   transport.py][1871] : === End of kex handshake ===
2025-06-13 14:59:19,155 [DEBUG][       Thread-258700][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 14:59:19,155 [DEBUG][       Thread-258700][   transport.py][1871] : Switch to new keys ...
2025-06-13 14:59:19,156 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 14:59:19,156 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 14:59:19,157 [DEBUG][       Thread-258700][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 14:59:19,200 [DEBUG][       Thread-258700][   transport.py][1871] : userauth is OK
2025-06-13 14:59:19,224 [ INFO][       Thread-258700][   transport.py][1871] : Authentication (password) successful!
2025-06-13 14:59:19,225 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 14:59:19,688 [DEBUG][Thread-258702 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:59:19,852 [DEBUG][       Thread-258700][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 14:59:19,852 [DEBUG][       Thread-258700][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 14:59:19,900 [DEBUG][       Thread-258700][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 14:59:19,900 [DEBUG][       Thread-258700][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 14:59:19,902 [DEBUG][       Thread-258700][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 14:59:19,915 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 14:59:19,915 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 14:59:19,916 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 14:59:19,917 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 14:59:19,919 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 14:59:19,920 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 14:59:19,920 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 14:59:19,921 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 14:59:19,921 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.540908 -999.00  +14.00  21.02     33   -1.60 1 1 1 1 1   887    0 15.87 27.50 ----- 26.2 21.0 49.8 26.7 17.8 -31.1 16.8 -32.7 17.4 -31.3 18.6 -29.9
2025-06-13 14:59:19,921 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 14:59:19,921 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 14:59:19,921 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.540908
2025-06-13 14:59:19,921 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 14:59:19,921 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 14:59:19,921 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 14:59:19,921 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 14:59:19,921 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 14:59:19,921 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T14:58:50', tmtdew=17.91, humidity=28.78, cloud=0.0, wind=20.61, temperature=14.2, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T12:58:54.451', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 14:59:19,922 [DEBUG][       Thread-258700][   transport.py][1871] : EOF in transport thread
2025-06-13 14:59:19,992 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 14:59:20,010 [DEBUG][       Thread-258704][   transport.py][1871] : starting thread (client mode): 0x868c80a0
2025-06-13 14:59:20,011 [DEBUG][       Thread-258704][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 14:59:20,025 [DEBUG][       Thread-258704][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 14:59:20,025 [ INFO][       Thread-258704][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 14:59:20,033 [DEBUG][       Thread-258704][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 14:59:20,033 [DEBUG][       Thread-258704][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 14:59:20,033 [DEBUG][       Thread-258704][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 14:59:20,033 [DEBUG][       Thread-258704][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:59:20,033 [DEBUG][       Thread-258704][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:59:20,033 [DEBUG][       Thread-258704][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:59:20,033 [DEBUG][       Thread-258704][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:59:20,033 [DEBUG][       Thread-258704][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 14:59:20,033 [DEBUG][       Thread-258704][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 14:59:20,033 [DEBUG][       Thread-258704][   transport.py][1871] : client lang: <none>
2025-06-13 14:59:20,033 [DEBUG][       Thread-258704][   transport.py][1871] : server lang: <none>
2025-06-13 14:59:20,033 [DEBUG][       Thread-258704][   transport.py][1871] : kex follows: False
2025-06-13 14:59:20,033 [DEBUG][       Thread-258704][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 14:59:20,033 [DEBUG][       Thread-258704][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 14:59:20,034 [DEBUG][       Thread-258704][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 14:59:20,034 [DEBUG][       Thread-258704][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 14:59:20,034 [DEBUG][       Thread-258704][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 14:59:20,034 [DEBUG][       Thread-258704][   transport.py][1871] : Compression: none
2025-06-13 14:59:20,034 [DEBUG][       Thread-258704][   transport.py][1871] : === End of kex handshake ===
2025-06-13 14:59:20,092 [DEBUG][       Thread-258704][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 14:59:20,092 [DEBUG][       Thread-258704][   transport.py][1871] : Switch to new keys ...
2025-06-13 14:59:20,093 [DEBUG][       Thread-258704][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 14:59:20,093 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 14:59:20,094 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 14:59:20,152 [DEBUG][       Thread-258704][   transport.py][1871] : userauth is OK
2025-06-13 14:59:20,153 [DEBUG][       Thread-258704][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 14:59:20,153 [DEBUG][       Thread-258704][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 14:59:20,153 [DEBUG][       Thread-258704][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 14:59:20,153 [DEBUG][       Thread-258704][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 14:59:20,171 [ INFO][       Thread-258704][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 14:59:20,171 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 14:59:20,171 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 14:59:21,138 [DEBUG][       Thread-258704][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 14:59:21,138 [DEBUG][       Thread-258704][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 14:59:21,187 [DEBUG][       Thread-258704][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 14:59:21,188 [DEBUG][       Thread-258704][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 14:59:21,197 [DEBUG][       Thread-258704][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 14:59:21,205 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 14:59:21,206 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 14:59:21,214 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 14:59:21,222 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 14:59:21,223 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 14:59:21,223 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 14:59:21,230 [DEBUG][       Thread-258704][   transport.py][1871] : EOF in transport thread
2025-06-13 14:59:23,060 [DEBUG][Thread-258706 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:59:31,233 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 14:59:31,233 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 14:59:31,233 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 14:59:31,235 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 14:59:31,712 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 14, 59, 21), 17.84, 29.13, 0.0, 13.59, 14.22, 0, 0, 0, 2, 0, 0),)
2025-06-13 14:59:31,712 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 14:59:21
2025-06-13 14:59:31,794 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 14:59:31,797 [DEBUG][       Thread-258707][   transport.py][1871] : starting thread (client mode): 0x863a5ea0
2025-06-13 14:59:31,797 [DEBUG][       Thread-258707][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 14:59:31,818 [DEBUG][       Thread-258707][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 14:59:31,818 [ INFO][       Thread-258707][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 14:59:31,821 [DEBUG][       Thread-258707][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 14:59:31,822 [DEBUG][       Thread-258707][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 14:59:31,822 [DEBUG][       Thread-258707][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 14:59:31,822 [DEBUG][       Thread-258707][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:59:31,822 [DEBUG][       Thread-258707][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:59:31,822 [DEBUG][       Thread-258707][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:59:31,822 [DEBUG][       Thread-258707][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:59:31,822 [DEBUG][       Thread-258707][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 14:59:31,822 [DEBUG][       Thread-258707][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 14:59:31,822 [DEBUG][       Thread-258707][   transport.py][1871] : client lang: <none>
2025-06-13 14:59:31,822 [DEBUG][       Thread-258707][   transport.py][1871] : server lang: <none>
2025-06-13 14:59:31,822 [DEBUG][       Thread-258707][   transport.py][1871] : kex follows: False
2025-06-13 14:59:31,822 [DEBUG][       Thread-258707][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 14:59:31,822 [DEBUG][       Thread-258707][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 14:59:31,822 [DEBUG][       Thread-258707][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 14:59:31,822 [DEBUG][       Thread-258707][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 14:59:31,822 [DEBUG][       Thread-258707][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 14:59:31,822 [DEBUG][       Thread-258707][   transport.py][1871] : Compression: none
2025-06-13 14:59:31,822 [DEBUG][       Thread-258707][   transport.py][1871] : === End of kex handshake ===
2025-06-13 14:59:31,838 [DEBUG][       Thread-258707][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 14:59:31,839 [DEBUG][       Thread-258707][   transport.py][1871] : Switch to new keys ...
2025-06-13 14:59:31,839 [DEBUG][       Thread-258707][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 14:59:31,840 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 14:59:31,840 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 14:59:31,841 [DEBUG][       Thread-258707][   transport.py][1871] : userauth is OK
2025-06-13 14:59:31,866 [ INFO][       Thread-258707][   transport.py][1871] : Authentication (password) successful!
2025-06-13 14:59:31,866 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 14:59:32,080 [DEBUG][Thread-258709 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:59:32,481 [DEBUG][       Thread-258707][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 14:59:32,482 [DEBUG][       Thread-258707][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 14:59:32,525 [DEBUG][       Thread-258707][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 14:59:32,525 [DEBUG][       Thread-258707][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 14:59:32,528 [DEBUG][       Thread-258707][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 14:59:32,540 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 14:59:32,540 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 14:59:32,542 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 14:59:32,543 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 14:59:32,549 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 14:59:32,550 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 14:59:32,550 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 14:59:32,551 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 14:59:32,551 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.540908 -999.00  +14.00  21.02     33   -1.60 1 1 1 1 1   887    0 15.87 27.50 ----- 26.2 21.0 49.8 26.7 17.8 -31.1 16.8 -32.7 17.4 -31.3 18.6 -29.9
2025-06-13 14:59:32,551 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 14:59:32,551 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 14:59:32,551 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.540908
2025-06-13 14:59:32,552 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 14:59:32,552 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 14:59:32,552 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 14:59:32,552 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 14:59:32,552 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 14:59:32,553 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T14:59:21', tmtdew=17.84, humidity=29.13, cloud=0.0, wind=13.59, temperature=14.22, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T12:58:54.451', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 14:59:32,553 [DEBUG][       Thread-258707][   transport.py][1871] : EOF in transport thread
2025-06-13 14:59:32,637 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 14:59:32,646 [DEBUG][       Thread-258711][   transport.py][1871] : starting thread (client mode): 0x868938b0
2025-06-13 14:59:32,646 [DEBUG][       Thread-258711][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 14:59:32,662 [DEBUG][       Thread-258711][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 14:59:32,662 [ INFO][       Thread-258711][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 14:59:32,670 [DEBUG][       Thread-258711][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 14:59:32,670 [DEBUG][       Thread-258711][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 14:59:32,670 [DEBUG][       Thread-258711][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 14:59:32,670 [DEBUG][       Thread-258711][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:59:32,670 [DEBUG][       Thread-258711][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:59:32,670 [DEBUG][       Thread-258711][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:59:32,670 [DEBUG][       Thread-258711][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:59:32,670 [DEBUG][       Thread-258711][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 14:59:32,670 [DEBUG][       Thread-258711][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 14:59:32,670 [DEBUG][       Thread-258711][   transport.py][1871] : client lang: <none>
2025-06-13 14:59:32,670 [DEBUG][       Thread-258711][   transport.py][1871] : server lang: <none>
2025-06-13 14:59:32,670 [DEBUG][       Thread-258711][   transport.py][1871] : kex follows: False
2025-06-13 14:59:32,670 [DEBUG][       Thread-258711][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 14:59:32,670 [DEBUG][       Thread-258711][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 14:59:32,670 [DEBUG][       Thread-258711][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 14:59:32,670 [DEBUG][       Thread-258711][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 14:59:32,671 [DEBUG][       Thread-258711][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 14:59:32,671 [DEBUG][       Thread-258711][   transport.py][1871] : Compression: none
2025-06-13 14:59:32,671 [DEBUG][       Thread-258711][   transport.py][1871] : === End of kex handshake ===
2025-06-13 14:59:32,726 [DEBUG][       Thread-258711][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 14:59:32,727 [DEBUG][       Thread-258711][   transport.py][1871] : Switch to new keys ...
2025-06-13 14:59:32,727 [DEBUG][       Thread-258711][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 14:59:32,727 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 14:59:32,728 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 14:59:32,783 [DEBUG][       Thread-258711][   transport.py][1871] : userauth is OK
2025-06-13 14:59:32,783 [DEBUG][       Thread-258711][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 14:59:32,783 [DEBUG][       Thread-258711][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 14:59:32,783 [DEBUG][       Thread-258711][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 14:59:32,783 [DEBUG][       Thread-258711][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 14:59:32,803 [ INFO][       Thread-258711][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 14:59:32,803 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 14:59:32,804 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 14:59:33,831 [DEBUG][       Thread-258711][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 14:59:33,832 [DEBUG][       Thread-258711][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 14:59:33,884 [DEBUG][       Thread-258711][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 14:59:33,884 [DEBUG][       Thread-258711][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 14:59:33,892 [DEBUG][       Thread-258711][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 14:59:33,901 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 14:59:33,901 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 14:59:33,910 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 14:59:33,919 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 14:59:33,919 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 14:59:33,920 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 14:59:33,927 [DEBUG][       Thread-258711][   transport.py][1871] : EOF in transport thread
2025-06-13 14:59:41,101 [DEBUG][Thread-258713 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:59:43,920 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 14:59:43,921 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 14:59:43,921 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 14:59:43,924 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 14:59:44,398 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 14, 59, 21), 17.84, 29.13, 0.0, 13.59, 14.22, 0, 0, 0, 2, 0, 0),)
2025-06-13 14:59:44,398 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 14:59:21
2025-06-13 14:59:44,480 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 14:59:44,484 [DEBUG][       Thread-258714][   transport.py][1871] : starting thread (client mode): 0x863a74f0
2025-06-13 14:59:44,484 [DEBUG][       Thread-258714][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 14:59:44,501 [DEBUG][       Thread-258714][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 14:59:44,501 [ INFO][       Thread-258714][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 14:59:44,504 [DEBUG][       Thread-258714][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 14:59:44,504 [DEBUG][       Thread-258714][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 14:59:44,504 [DEBUG][       Thread-258714][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 14:59:44,504 [DEBUG][       Thread-258714][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:59:44,504 [DEBUG][       Thread-258714][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:59:44,504 [DEBUG][       Thread-258714][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:59:44,504 [DEBUG][       Thread-258714][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:59:44,504 [DEBUG][       Thread-258714][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 14:59:44,504 [DEBUG][       Thread-258714][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 14:59:44,504 [DEBUG][       Thread-258714][   transport.py][1871] : client lang: <none>
2025-06-13 14:59:44,504 [DEBUG][       Thread-258714][   transport.py][1871] : server lang: <none>
2025-06-13 14:59:44,504 [DEBUG][       Thread-258714][   transport.py][1871] : kex follows: False
2025-06-13 14:59:44,504 [DEBUG][       Thread-258714][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 14:59:44,504 [DEBUG][       Thread-258714][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 14:59:44,504 [DEBUG][       Thread-258714][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 14:59:44,505 [DEBUG][       Thread-258714][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 14:59:44,505 [DEBUG][       Thread-258714][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 14:59:44,505 [DEBUG][       Thread-258714][   transport.py][1871] : Compression: none
2025-06-13 14:59:44,505 [DEBUG][       Thread-258714][   transport.py][1871] : === End of kex handshake ===
2025-06-13 14:59:44,522 [DEBUG][       Thread-258714][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 14:59:44,523 [DEBUG][       Thread-258714][   transport.py][1871] : Switch to new keys ...
2025-06-13 14:59:44,523 [DEBUG][       Thread-258714][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 14:59:44,524 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 14:59:44,524 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 14:59:44,525 [DEBUG][       Thread-258714][   transport.py][1871] : userauth is OK
2025-06-13 14:59:44,549 [ INFO][       Thread-258714][   transport.py][1871] : Authentication (password) successful!
2025-06-13 14:59:44,550 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 14:59:45,168 [DEBUG][       Thread-258714][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 14:59:45,168 [DEBUG][       Thread-258714][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 14:59:45,209 [DEBUG][       Thread-258714][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 14:59:45,209 [DEBUG][       Thread-258714][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 14:59:45,213 [DEBUG][       Thread-258714][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 14:59:45,219 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 14:59:45,219 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 14:59:45,221 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 14:59:45,223 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 14:59:45,229 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 14:59:45,231 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 14:59:45,231 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 14:59:45,232 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 14:59:45,232 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.540908 -999.00  +14.00  21.02     33   -1.60 1 1 1 1 1   887    0 15.87 27.50 ----- 26.2 21.0 49.8 26.7 17.8 -31.1 16.8 -32.7 17.4 -31.3 18.6 -29.9
2025-06-13 14:59:45,232 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 14:59:45,232 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 14:59:45,233 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.540908
2025-06-13 14:59:45,233 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 14:59:45,234 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 14:59:45,234 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 14:59:45,234 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 14:59:45,234 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 14:59:45,234 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T14:59:21', tmtdew=17.84, humidity=29.13, cloud=0.0, wind=13.59, temperature=14.22, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T12:58:54.451', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 14:59:45,235 [DEBUG][       Thread-258714][   transport.py][1871] : EOF in transport thread
2025-06-13 14:59:45,317 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 14:59:45,330 [DEBUG][       Thread-258717][   transport.py][1871] : starting thread (client mode): 0x863a7130
2025-06-13 14:59:45,330 [DEBUG][       Thread-258717][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 14:59:45,345 [DEBUG][       Thread-258717][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 14:59:45,345 [ INFO][       Thread-258717][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 14:59:45,358 [DEBUG][       Thread-258717][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 14:59:45,358 [DEBUG][       Thread-258717][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 14:59:45,358 [DEBUG][       Thread-258717][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 14:59:45,358 [DEBUG][       Thread-258717][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:59:45,358 [DEBUG][       Thread-258717][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:59:45,358 [DEBUG][       Thread-258717][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:59:45,358 [DEBUG][       Thread-258717][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:59:45,358 [DEBUG][       Thread-258717][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 14:59:45,358 [DEBUG][       Thread-258717][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 14:59:45,358 [DEBUG][       Thread-258717][   transport.py][1871] : client lang: <none>
2025-06-13 14:59:45,358 [DEBUG][       Thread-258717][   transport.py][1871] : server lang: <none>
2025-06-13 14:59:45,358 [DEBUG][       Thread-258717][   transport.py][1871] : kex follows: False
2025-06-13 14:59:45,358 [DEBUG][       Thread-258717][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 14:59:45,359 [DEBUG][       Thread-258717][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 14:59:45,359 [DEBUG][       Thread-258717][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 14:59:45,359 [DEBUG][       Thread-258717][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 14:59:45,359 [DEBUG][       Thread-258717][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 14:59:45,359 [DEBUG][       Thread-258717][   transport.py][1871] : Compression: none
2025-06-13 14:59:45,359 [DEBUG][       Thread-258717][   transport.py][1871] : === End of kex handshake ===
2025-06-13 14:59:45,411 [DEBUG][       Thread-258717][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 14:59:45,411 [DEBUG][       Thread-258717][   transport.py][1871] : Switch to new keys ...
2025-06-13 14:59:45,412 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 14:59:45,413 [DEBUG][       Thread-258717][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 14:59:45,413 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 14:59:45,467 [DEBUG][       Thread-258717][   transport.py][1871] : userauth is OK
2025-06-13 14:59:45,467 [DEBUG][       Thread-258717][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 14:59:45,467 [DEBUG][       Thread-258717][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 14:59:45,468 [DEBUG][       Thread-258717][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 14:59:45,468 [DEBUG][       Thread-258717][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 14:59:45,489 [ INFO][       Thread-258717][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 14:59:45,490 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 14:59:45,491 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 14:59:46,502 [DEBUG][       Thread-258717][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 14:59:46,502 [DEBUG][       Thread-258717][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 14:59:46,552 [DEBUG][       Thread-258717][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 14:59:46,552 [DEBUG][       Thread-258717][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 14:59:46,561 [DEBUG][       Thread-258717][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 14:59:46,571 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 14:59:46,571 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 14:59:46,586 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 14:59:46,598 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 14:59:46,599 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 14:59:46,599 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 14:59:46,607 [DEBUG][       Thread-258717][   transport.py][1871] : EOF in transport thread
2025-06-13 14:59:50,138 [DEBUG][Thread-258719 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 14:59:56,610 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 14:59:56,610 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 14:59:56,611 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 14:59:56,614 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 14:59:57,081 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 14, 59, 53), 17.9, 29.01, 0.0, 14.13, 14.19, 0, 0, 0, 2, 0, 0),)
2025-06-13 14:59:57,081 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 14:59:53
2025-06-13 14:59:57,162 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 14:59:57,166 [DEBUG][       Thread-258720][   transport.py][1871] : starting thread (client mode): 0x863a7640
2025-06-13 14:59:57,166 [DEBUG][       Thread-258720][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 14:59:57,188 [DEBUG][       Thread-258720][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 14:59:57,188 [ INFO][       Thread-258720][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 14:59:57,191 [DEBUG][       Thread-258720][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 14:59:57,191 [DEBUG][       Thread-258720][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 14:59:57,191 [DEBUG][       Thread-258720][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 14:59:57,191 [DEBUG][       Thread-258720][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:59:57,191 [DEBUG][       Thread-258720][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 14:59:57,191 [DEBUG][       Thread-258720][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:59:57,191 [DEBUG][       Thread-258720][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 14:59:57,191 [DEBUG][       Thread-258720][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 14:59:57,191 [DEBUG][       Thread-258720][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 14:59:57,191 [DEBUG][       Thread-258720][   transport.py][1871] : client lang: <none>
2025-06-13 14:59:57,191 [DEBUG][       Thread-258720][   transport.py][1871] : server lang: <none>
2025-06-13 14:59:57,191 [DEBUG][       Thread-258720][   transport.py][1871] : kex follows: False
2025-06-13 14:59:57,191 [DEBUG][       Thread-258720][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 14:59:57,191 [DEBUG][       Thread-258720][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 14:59:57,191 [DEBUG][       Thread-258720][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 14:59:57,191 [DEBUG][       Thread-258720][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 14:59:57,191 [DEBUG][       Thread-258720][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 14:59:57,191 [DEBUG][       Thread-258720][   transport.py][1871] : Compression: none
2025-06-13 14:59:57,191 [DEBUG][       Thread-258720][   transport.py][1871] : === End of kex handshake ===
2025-06-13 14:59:57,208 [DEBUG][       Thread-258720][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 14:59:57,208 [DEBUG][       Thread-258720][   transport.py][1871] : Switch to new keys ...
2025-06-13 14:59:57,208 [DEBUG][       Thread-258720][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 14:59:57,208 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 14:59:57,208 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 14:59:57,209 [DEBUG][       Thread-258720][   transport.py][1871] : userauth is OK
2025-06-13 14:59:57,233 [ INFO][       Thread-258720][   transport.py][1871] : Authentication (password) successful!
2025-06-13 14:59:57,233 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 14:59:57,887 [DEBUG][       Thread-258720][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 14:59:57,887 [DEBUG][       Thread-258720][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 14:59:57,929 [DEBUG][       Thread-258720][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 14:59:57,929 [DEBUG][       Thread-258720][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 14:59:57,933 [DEBUG][       Thread-258720][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 14:59:57,944 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 14:59:57,945 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 14:59:57,947 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 14:59:57,949 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 14:59:57,954 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 14:59:57,956 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 14:59:57,956 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 14:59:57,957 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 14:59:57,957 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.541255 -999.00  +13.70  23.51     33   -1.80 1 1 1 1 1   887    0 16.10 31.72 ----- 22.7 23.5 41.2 30.0 17.7 -32.1 16.7 -32.8 17.3 -31.9 18.5 -29.5
2025-06-13 14:59:57,957 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 14:59:57,957 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 14:59:57,957 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.541255
2025-06-13 14:59:57,958 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 14:59:57,958 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 14:59:57,958 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 14:59:57,959 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 14:59:57,959 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 14:59:57,959 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T14:59:53', tmtdew=17.9, humidity=29.01, cloud=0.0, wind=14.13, temperature=14.19, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T12:59:24.432', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 14:59:57,960 [DEBUG][       Thread-258720][   transport.py][1871] : EOF in transport thread
2025-06-13 14:59:58,038 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 14:59:59,161 [DEBUG][Thread-258723 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:00:05,388 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:00:05,389 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:00:08,194 [DEBUG][Thread-258724 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:00:16,690 [DEBUG][Thread-258725 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:00:17,220 [DEBUG][Thread-258726 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:00:17,769 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:00:17,778 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:00:19,746 [DEBUG][Thread-258727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:00:26,240 [DEBUG][Thread-258728 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:00:35,259 [DEBUG][Thread-258729 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:00:44,280 [DEBUG][Thread-258730 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:00:53,303 [DEBUG][Thread-258731 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:01:02,326 [DEBUG][Thread-258732 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:01:02,620 [DEBUG][       Thread-258733][   transport.py][1871] : starting thread (client mode): 0xc5988130
2025-06-13 15:01:02,620 [DEBUG][       Thread-258733][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 15:01:02,635 [DEBUG][       Thread-258733][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 15:01:02,635 [ INFO][       Thread-258733][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 15:01:02,643 [DEBUG][       Thread-258733][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 15:01:02,643 [DEBUG][       Thread-258733][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 15:01:02,643 [DEBUG][       Thread-258733][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 15:01:02,643 [DEBUG][       Thread-258733][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:01:02,643 [DEBUG][       Thread-258733][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:01:02,643 [DEBUG][       Thread-258733][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:01:02,643 [DEBUG][       Thread-258733][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:01:02,643 [DEBUG][       Thread-258733][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 15:01:02,643 [DEBUG][       Thread-258733][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 15:01:02,643 [DEBUG][       Thread-258733][   transport.py][1871] : client lang: <none>
2025-06-13 15:01:02,643 [DEBUG][       Thread-258733][   transport.py][1871] : server lang: <none>
2025-06-13 15:01:02,643 [DEBUG][       Thread-258733][   transport.py][1871] : kex follows: False
2025-06-13 15:01:02,643 [DEBUG][       Thread-258733][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 15:01:02,643 [DEBUG][       Thread-258733][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 15:01:02,644 [DEBUG][       Thread-258733][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 15:01:02,644 [DEBUG][       Thread-258733][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 15:01:02,644 [DEBUG][       Thread-258733][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 15:01:02,644 [DEBUG][       Thread-258733][   transport.py][1871] : Compression: none
2025-06-13 15:01:02,644 [DEBUG][       Thread-258733][   transport.py][1871] : === End of kex handshake ===
2025-06-13 15:01:02,703 [DEBUG][       Thread-258733][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 15:01:02,704 [DEBUG][       Thread-258733][   transport.py][1871] : Switch to new keys ...
2025-06-13 15:01:02,704 [DEBUG][       Thread-258733][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 15:01:02,704 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 15:01:02,705 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 15:01:02,758 [DEBUG][       Thread-258733][   transport.py][1871] : userauth is OK
2025-06-13 15:01:02,759 [DEBUG][       Thread-258733][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 15:01:02,759 [DEBUG][       Thread-258733][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 15:01:02,759 [DEBUG][       Thread-258733][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 15:01:02,759 [DEBUG][       Thread-258733][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 15:01:02,779 [ INFO][       Thread-258733][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 15:01:02,779 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 15:01:02,779 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 15:01:03,825 [DEBUG][       Thread-258733][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 15:01:03,825 [DEBUG][       Thread-258733][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 15:01:03,876 [DEBUG][       Thread-258733][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 15:01:03,876 [DEBUG][       Thread-258733][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 15:01:03,886 [DEBUG][       Thread-258733][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 15:01:03,895 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 15:01:03,895 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 15:01:03,907 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 15:01:03,917 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 15:01:03,917 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 15:01:03,918 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 15:01:03,925 [DEBUG][       Thread-258733][   transport.py][1871] : EOF in transport thread
2025-06-13 15:01:05,526 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:01:05,527 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:01:11,351 [DEBUG][Thread-258735 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:01:13,928 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 15:01:13,928 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 15:01:13,929 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 15:01:13,931 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 15:01:14,419 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 15, 0, 57), 17.95, 28.81, 0.0, 18.63, 14.07, 0, 0, 0, 2, 0, 0),)
2025-06-13 15:01:14,419 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 15:00:57
2025-06-13 15:01:14,499 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 15:01:14,503 [DEBUG][       Thread-258736][   transport.py][1871] : starting thread (client mode): 0x863a7010
2025-06-13 15:01:14,503 [DEBUG][       Thread-258736][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 15:01:14,524 [DEBUG][       Thread-258736][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 15:01:14,524 [ INFO][       Thread-258736][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 15:01:14,527 [DEBUG][       Thread-258736][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 15:01:14,527 [DEBUG][       Thread-258736][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 15:01:14,527 [DEBUG][       Thread-258736][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 15:01:14,527 [DEBUG][       Thread-258736][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:01:14,527 [DEBUG][       Thread-258736][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:01:14,527 [DEBUG][       Thread-258736][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:01:14,527 [DEBUG][       Thread-258736][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:01:14,527 [DEBUG][       Thread-258736][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 15:01:14,527 [DEBUG][       Thread-258736][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 15:01:14,527 [DEBUG][       Thread-258736][   transport.py][1871] : client lang: <none>
2025-06-13 15:01:14,527 [DEBUG][       Thread-258736][   transport.py][1871] : server lang: <none>
2025-06-13 15:01:14,527 [DEBUG][       Thread-258736][   transport.py][1871] : kex follows: False
2025-06-13 15:01:14,527 [DEBUG][       Thread-258736][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 15:01:14,527 [DEBUG][       Thread-258736][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 15:01:14,527 [DEBUG][       Thread-258736][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 15:01:14,527 [DEBUG][       Thread-258736][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 15:01:14,527 [DEBUG][       Thread-258736][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 15:01:14,528 [DEBUG][       Thread-258736][   transport.py][1871] : Compression: none
2025-06-13 15:01:14,528 [DEBUG][       Thread-258736][   transport.py][1871] : === End of kex handshake ===
2025-06-13 15:01:14,544 [DEBUG][       Thread-258736][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 15:01:14,545 [DEBUG][       Thread-258736][   transport.py][1871] : Switch to new keys ...
2025-06-13 15:01:14,545 [DEBUG][       Thread-258736][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 15:01:14,545 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 15:01:14,546 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 15:01:14,546 [DEBUG][       Thread-258736][   transport.py][1871] : userauth is OK
2025-06-13 15:01:14,560 [ INFO][       Thread-258736][   transport.py][1871] : Authentication (password) successful!
2025-06-13 15:01:14,560 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 15:01:15,318 [DEBUG][       Thread-258736][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 15:01:15,318 [DEBUG][       Thread-258736][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 15:01:15,361 [DEBUG][       Thread-258736][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 15:01:15,361 [DEBUG][       Thread-258736][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 15:01:15,364 [DEBUG][       Thread-258736][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 15:01:15,377 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 15:01:15,378 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 15:01:15,379 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 15:01:15,381 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 15:01:15,386 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 15:01:15,388 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 15:01:15,388 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 15:01:15,389 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 15:01:15,389 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.541950 -999.00  +13.70  24.10     34   -1.80 1 1 1 1 1   887    0 16.28 33.27 ----- 26.2 24.1 55.6 25.6 17.7 -31.4 16.6 -32.6 17.3 -31.4 18.5 -29.8
2025-06-13 15:01:15,389 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 15:01:15,389 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 15:01:15,389 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.541950
2025-06-13 15:01:15,390 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 15:01:15,390 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 15:01:15,390 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 15:01:15,390 [DEBUG][       Thread-258736][   transport.py][1871] : EOF in transport thread
2025-06-13 15:01:15,391 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 15:01:15,391 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 15:01:15,391 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T15:00:57', tmtdew=17.95, humidity=28.81, cloud=0.0, wind=18.63, temperature=14.07, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T13:00:24.480', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 15:01:15,474 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 15:01:15,487 [DEBUG][       Thread-258739][   transport.py][1871] : starting thread (client mode): 0x86893df0
2025-06-13 15:01:15,487 [DEBUG][       Thread-258739][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 15:01:15,501 [DEBUG][       Thread-258739][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 15:01:15,501 [ INFO][       Thread-258739][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 15:01:15,509 [DEBUG][       Thread-258739][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 15:01:15,509 [DEBUG][       Thread-258739][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 15:01:15,509 [DEBUG][       Thread-258739][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 15:01:15,509 [DEBUG][       Thread-258739][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:01:15,509 [DEBUG][       Thread-258739][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:01:15,509 [DEBUG][       Thread-258739][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:01:15,509 [DEBUG][       Thread-258739][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:01:15,509 [DEBUG][       Thread-258739][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 15:01:15,509 [DEBUG][       Thread-258739][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 15:01:15,509 [DEBUG][       Thread-258739][   transport.py][1871] : client lang: <none>
2025-06-13 15:01:15,509 [DEBUG][       Thread-258739][   transport.py][1871] : server lang: <none>
2025-06-13 15:01:15,509 [DEBUG][       Thread-258739][   transport.py][1871] : kex follows: False
2025-06-13 15:01:15,509 [DEBUG][       Thread-258739][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 15:01:15,509 [DEBUG][       Thread-258739][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 15:01:15,509 [DEBUG][       Thread-258739][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 15:01:15,509 [DEBUG][       Thread-258739][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 15:01:15,510 [DEBUG][       Thread-258739][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 15:01:15,510 [DEBUG][       Thread-258739][   transport.py][1871] : Compression: none
2025-06-13 15:01:15,510 [DEBUG][       Thread-258739][   transport.py][1871] : === End of kex handshake ===
2025-06-13 15:01:15,567 [DEBUG][       Thread-258739][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 15:01:15,567 [DEBUG][       Thread-258739][   transport.py][1871] : Switch to new keys ...
2025-06-13 15:01:15,568 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 15:01:15,568 [DEBUG][       Thread-258739][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 15:01:15,569 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 15:01:15,623 [DEBUG][       Thread-258739][   transport.py][1871] : userauth is OK
2025-06-13 15:01:15,623 [DEBUG][       Thread-258739][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 15:01:15,623 [DEBUG][       Thread-258739][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 15:01:15,623 [DEBUG][       Thread-258739][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 15:01:15,623 [DEBUG][       Thread-258739][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 15:01:15,642 [ INFO][       Thread-258739][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 15:01:15,643 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 15:01:15,643 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 15:01:16,944 [DEBUG][       Thread-258739][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 15:01:16,945 [DEBUG][       Thread-258739][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 15:01:16,996 [DEBUG][       Thread-258739][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 15:01:16,996 [DEBUG][       Thread-258739][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 15:01:17,007 [DEBUG][       Thread-258739][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 15:01:17,023 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 15:01:17,024 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 15:01:17,032 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 15:01:17,041 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 15:01:17,041 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 15:01:17,042 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 15:01:17,049 [DEBUG][       Thread-258739][   transport.py][1871] : EOF in transport thread
2025-06-13 15:01:17,844 [DEBUG][Thread-258741 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:01:18,878 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:01:18,878 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:01:19,793 [DEBUG][Thread-258742 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:01:20,369 [DEBUG][Thread-258743 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:01:27,045 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 15:01:27,045 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 15:01:27,045 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 15:01:27,048 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 15:01:27,522 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 15, 0, 57), 17.95, 28.81, 0.0, 18.63, 14.07, 0, 0, 0, 2, 0, 0),)
2025-06-13 15:01:27,522 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 15:00:57
2025-06-13 15:01:27,601 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 15:01:27,606 [DEBUG][       Thread-258744][   transport.py][1871] : starting thread (client mode): 0x863a51e0
2025-06-13 15:01:27,606 [DEBUG][       Thread-258744][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 15:01:27,626 [DEBUG][       Thread-258744][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 15:01:27,626 [ INFO][       Thread-258744][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 15:01:27,631 [DEBUG][       Thread-258744][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 15:01:27,631 [DEBUG][       Thread-258744][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 15:01:27,631 [DEBUG][       Thread-258744][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 15:01:27,631 [DEBUG][       Thread-258744][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:01:27,631 [DEBUG][       Thread-258744][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:01:27,631 [DEBUG][       Thread-258744][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:01:27,631 [DEBUG][       Thread-258744][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:01:27,631 [DEBUG][       Thread-258744][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 15:01:27,631 [DEBUG][       Thread-258744][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 15:01:27,631 [DEBUG][       Thread-258744][   transport.py][1871] : client lang: <none>
2025-06-13 15:01:27,631 [DEBUG][       Thread-258744][   transport.py][1871] : server lang: <none>
2025-06-13 15:01:27,631 [DEBUG][       Thread-258744][   transport.py][1871] : kex follows: False
2025-06-13 15:01:27,631 [DEBUG][       Thread-258744][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 15:01:27,631 [DEBUG][       Thread-258744][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 15:01:27,631 [DEBUG][       Thread-258744][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 15:01:27,631 [DEBUG][       Thread-258744][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 15:01:27,631 [DEBUG][       Thread-258744][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 15:01:27,631 [DEBUG][       Thread-258744][   transport.py][1871] : Compression: none
2025-06-13 15:01:27,631 [DEBUG][       Thread-258744][   transport.py][1871] : === End of kex handshake ===
2025-06-13 15:01:27,649 [DEBUG][       Thread-258744][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 15:01:27,649 [DEBUG][       Thread-258744][   transport.py][1871] : Switch to new keys ...
2025-06-13 15:01:27,650 [DEBUG][       Thread-258744][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 15:01:27,650 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 15:01:27,650 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 15:01:27,691 [DEBUG][       Thread-258744][   transport.py][1871] : userauth is OK
2025-06-13 15:01:27,716 [ INFO][       Thread-258744][   transport.py][1871] : Authentication (password) successful!
2025-06-13 15:01:27,717 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 15:01:28,484 [DEBUG][       Thread-258744][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 15:01:28,484 [DEBUG][       Thread-258744][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 15:01:28,525 [DEBUG][       Thread-258744][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 15:01:28,525 [DEBUG][       Thread-258744][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 15:01:28,529 [DEBUG][       Thread-258744][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 15:01:28,542 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 15:01:28,542 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 15:01:28,544 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 15:01:28,546 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 15:01:28,552 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 15:01:28,554 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 15:01:28,554 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 15:01:28,555 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 15:01:28,555 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.541950 -999.00  +13.70  24.10     34   -1.80 1 1 1 1 1   887    0 16.28 33.27 ----- 26.2 24.1 55.6 25.6 17.7 -31.4 16.6 -32.6 17.3 -31.4 18.5 -29.8
2025-06-13 15:01:28,555 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 15:01:28,556 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 15:01:28,556 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.541950
2025-06-13 15:01:28,556 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 15:01:28,557 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 15:01:28,557 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 15:01:28,557 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 15:01:28,557 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 15:01:28,557 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T15:00:57', tmtdew=17.95, humidity=28.81, cloud=0.0, wind=18.63, temperature=14.07, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T13:00:24.480', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 15:01:28,558 [DEBUG][       Thread-258744][   transport.py][1871] : EOF in transport thread
2025-06-13 15:01:28,640 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 15:01:28,650 [DEBUG][       Thread-258747][   transport.py][1871] : starting thread (client mode): 0x863ef610
2025-06-13 15:01:28,650 [DEBUG][       Thread-258747][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 15:01:28,664 [DEBUG][       Thread-258747][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 15:01:28,664 [ INFO][       Thread-258747][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 15:01:28,672 [DEBUG][       Thread-258747][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 15:01:28,672 [DEBUG][       Thread-258747][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 15:01:28,672 [DEBUG][       Thread-258747][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 15:01:28,672 [DEBUG][       Thread-258747][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:01:28,672 [DEBUG][       Thread-258747][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:01:28,672 [DEBUG][       Thread-258747][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:01:28,672 [DEBUG][       Thread-258747][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:01:28,672 [DEBUG][       Thread-258747][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 15:01:28,672 [DEBUG][       Thread-258747][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 15:01:28,672 [DEBUG][       Thread-258747][   transport.py][1871] : client lang: <none>
2025-06-13 15:01:28,672 [DEBUG][       Thread-258747][   transport.py][1871] : server lang: <none>
2025-06-13 15:01:28,672 [DEBUG][       Thread-258747][   transport.py][1871] : kex follows: False
2025-06-13 15:01:28,672 [DEBUG][       Thread-258747][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 15:01:28,672 [DEBUG][       Thread-258747][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 15:01:28,672 [DEBUG][       Thread-258747][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 15:01:28,672 [DEBUG][       Thread-258747][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 15:01:28,672 [DEBUG][       Thread-258747][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 15:01:28,673 [DEBUG][       Thread-258747][   transport.py][1871] : Compression: none
2025-06-13 15:01:28,673 [DEBUG][       Thread-258747][   transport.py][1871] : === End of kex handshake ===
2025-06-13 15:01:28,731 [DEBUG][       Thread-258747][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 15:01:28,732 [DEBUG][       Thread-258747][   transport.py][1871] : Switch to new keys ...
2025-06-13 15:01:28,733 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 15:01:28,733 [DEBUG][       Thread-258747][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 15:01:28,734 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 15:01:28,789 [DEBUG][       Thread-258747][   transport.py][1871] : userauth is OK
2025-06-13 15:01:28,790 [DEBUG][       Thread-258747][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 15:01:28,790 [DEBUG][       Thread-258747][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 15:01:28,790 [DEBUG][       Thread-258747][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 15:01:28,790 [DEBUG][       Thread-258747][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 15:01:28,811 [ INFO][       Thread-258747][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 15:01:28,812 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 15:01:28,812 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 15:01:29,397 [DEBUG][Thread-258749 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:01:29,828 [DEBUG][       Thread-258747][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 15:01:29,828 [DEBUG][       Thread-258747][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 15:01:29,879 [DEBUG][       Thread-258747][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 15:01:29,879 [DEBUG][       Thread-258747][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 15:01:29,887 [DEBUG][       Thread-258747][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 15:01:29,896 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 15:01:29,896 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 15:01:29,904 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 15:01:29,912 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 15:01:29,912 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 15:01:29,912 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 15:01:29,920 [DEBUG][       Thread-258747][   transport.py][1871] : EOF in transport thread
2025-06-13 15:01:38,418 [DEBUG][Thread-258750 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:01:39,920 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 15:01:39,920 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 15:01:39,920 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 15:01:39,921 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 15:01:40,394 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 15, 1, 28), 17.81, 28.96, 0.0, 24.76, 14.05, 0, 0, 0, 2, 0, 0),)
2025-06-13 15:01:40,394 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 15:01:28
2025-06-13 15:01:40,474 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 15:01:40,478 [DEBUG][       Thread-258751][   transport.py][1871] : starting thread (client mode): 0x863a7fa0
2025-06-13 15:01:40,478 [DEBUG][       Thread-258751][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 15:01:40,497 [DEBUG][       Thread-258751][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 15:01:40,497 [ INFO][       Thread-258751][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 15:01:40,501 [DEBUG][       Thread-258751][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 15:01:40,501 [DEBUG][       Thread-258751][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 15:01:40,501 [DEBUG][       Thread-258751][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 15:01:40,501 [DEBUG][       Thread-258751][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:01:40,501 [DEBUG][       Thread-258751][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:01:40,501 [DEBUG][       Thread-258751][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:01:40,501 [DEBUG][       Thread-258751][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:01:40,501 [DEBUG][       Thread-258751][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 15:01:40,501 [DEBUG][       Thread-258751][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 15:01:40,501 [DEBUG][       Thread-258751][   transport.py][1871] : client lang: <none>
2025-06-13 15:01:40,501 [DEBUG][       Thread-258751][   transport.py][1871] : server lang: <none>
2025-06-13 15:01:40,501 [DEBUG][       Thread-258751][   transport.py][1871] : kex follows: False
2025-06-13 15:01:40,501 [DEBUG][       Thread-258751][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 15:01:40,501 [DEBUG][       Thread-258751][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 15:01:40,501 [DEBUG][       Thread-258751][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 15:01:40,501 [DEBUG][       Thread-258751][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 15:01:40,501 [DEBUG][       Thread-258751][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 15:01:40,501 [DEBUG][       Thread-258751][   transport.py][1871] : Compression: none
2025-06-13 15:01:40,501 [DEBUG][       Thread-258751][   transport.py][1871] : === End of kex handshake ===
2025-06-13 15:01:40,516 [DEBUG][       Thread-258751][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 15:01:40,517 [DEBUG][       Thread-258751][   transport.py][1871] : Switch to new keys ...
2025-06-13 15:01:40,517 [DEBUG][       Thread-258751][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 15:01:40,518 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 15:01:40,518 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 15:01:40,519 [DEBUG][       Thread-258751][   transport.py][1871] : userauth is OK
2025-06-13 15:01:40,543 [ INFO][       Thread-258751][   transport.py][1871] : Authentication (password) successful!
2025-06-13 15:01:40,543 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 15:01:41,177 [DEBUG][       Thread-258751][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 15:01:41,177 [DEBUG][       Thread-258751][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 15:01:41,221 [DEBUG][       Thread-258751][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 15:01:41,221 [DEBUG][       Thread-258751][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 15:01:41,224 [DEBUG][       Thread-258751][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 15:01:41,236 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 15:01:41,236 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 15:01:41,238 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 15:01:41,240 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 15:01:41,245 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 15:01:41,247 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 15:01:41,247 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 15:01:41,248 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 15:01:41,248 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.542644 -999.00  +13.70  21.76     33   -2.00 1 1 1 1 1   887    0 16.22 36.42 ----- 20.3 21.8 52.0 26.8 17.6 -31.0 16.6 -32.8 17.2 -30.9 18.5 -29.1
2025-06-13 15:01:41,248 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 15:01:41,248 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 15:01:41,248 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.542644
2025-06-13 15:01:41,249 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 15:01:41,249 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 15:01:41,249 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 15:01:41,249 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 15:01:41,249 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 15:01:41,250 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T15:01:28', tmtdew=17.81, humidity=28.96, cloud=0.0, wind=24.76, temperature=14.05, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T13:01:24.442', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 15:01:41,250 [DEBUG][       Thread-258751][   transport.py][1871] : EOF in transport thread
2025-06-13 15:01:41,337 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 15:01:41,347 [DEBUG][       Thread-258754][   transport.py][1871] : starting thread (client mode): 0x868938b0
2025-06-13 15:01:41,347 [DEBUG][       Thread-258754][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 15:01:41,368 [DEBUG][       Thread-258754][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 15:01:41,368 [ INFO][       Thread-258754][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 15:01:41,375 [DEBUG][       Thread-258754][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 15:01:41,376 [DEBUG][       Thread-258754][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 15:01:41,376 [DEBUG][       Thread-258754][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 15:01:41,376 [DEBUG][       Thread-258754][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:01:41,376 [DEBUG][       Thread-258754][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:01:41,376 [DEBUG][       Thread-258754][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:01:41,376 [DEBUG][       Thread-258754][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:01:41,376 [DEBUG][       Thread-258754][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 15:01:41,376 [DEBUG][       Thread-258754][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 15:01:41,376 [DEBUG][       Thread-258754][   transport.py][1871] : client lang: <none>
2025-06-13 15:01:41,376 [DEBUG][       Thread-258754][   transport.py][1871] : server lang: <none>
2025-06-13 15:01:41,376 [DEBUG][       Thread-258754][   transport.py][1871] : kex follows: False
2025-06-13 15:01:41,376 [DEBUG][       Thread-258754][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 15:01:41,376 [DEBUG][       Thread-258754][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 15:01:41,376 [DEBUG][       Thread-258754][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 15:01:41,376 [DEBUG][       Thread-258754][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 15:01:41,376 [DEBUG][       Thread-258754][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 15:01:41,377 [DEBUG][       Thread-258754][   transport.py][1871] : Compression: none
2025-06-13 15:01:41,377 [DEBUG][       Thread-258754][   transport.py][1871] : === End of kex handshake ===
2025-06-13 15:01:41,438 [DEBUG][       Thread-258754][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 15:01:41,438 [DEBUG][       Thread-258754][   transport.py][1871] : Switch to new keys ...
2025-06-13 15:01:41,439 [DEBUG][       Thread-258754][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 15:01:41,439 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 15:01:41,440 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 15:01:41,494 [DEBUG][       Thread-258754][   transport.py][1871] : userauth is OK
2025-06-13 15:01:41,495 [DEBUG][       Thread-258754][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 15:01:41,495 [DEBUG][       Thread-258754][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 15:01:41,495 [DEBUG][       Thread-258754][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 15:01:41,495 [DEBUG][       Thread-258754][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 15:01:41,514 [ INFO][       Thread-258754][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 15:01:41,514 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 15:01:41,514 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 15:01:42,519 [DEBUG][       Thread-258754][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 15:01:42,519 [DEBUG][       Thread-258754][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 15:01:42,567 [DEBUG][       Thread-258754][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 15:01:42,568 [DEBUG][       Thread-258754][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 15:01:42,577 [DEBUG][       Thread-258754][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 15:01:42,585 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 15:01:42,585 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 15:01:42,594 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 15:01:42,603 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 15:01:42,603 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 15:01:42,603 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 15:01:42,611 [DEBUG][       Thread-258754][   transport.py][1871] : EOF in transport thread
2025-06-13 15:01:47,438 [DEBUG][Thread-258756 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:01:52,614 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 15:01:52,614 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 15:01:52,614 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 15:01:52,617 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 15:01:53,090 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 15, 1, 28), 17.81, 28.96, 0.0, 24.76, 14.05, 0, 0, 0, 2, 0, 0),)
2025-06-13 15:01:53,090 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 15:01:28
2025-06-13 15:01:53,170 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 15:01:53,174 [DEBUG][       Thread-258757][   transport.py][1871] : starting thread (client mode): 0x863a47c0
2025-06-13 15:01:53,174 [DEBUG][       Thread-258757][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 15:01:53,187 [DEBUG][       Thread-258757][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 15:01:53,187 [ INFO][       Thread-258757][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 15:01:53,190 [DEBUG][       Thread-258757][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 15:01:53,190 [DEBUG][       Thread-258757][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 15:01:53,190 [DEBUG][       Thread-258757][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 15:01:53,190 [DEBUG][       Thread-258757][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:01:53,190 [DEBUG][       Thread-258757][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:01:53,190 [DEBUG][       Thread-258757][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:01:53,190 [DEBUG][       Thread-258757][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:01:53,190 [DEBUG][       Thread-258757][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 15:01:53,190 [DEBUG][       Thread-258757][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 15:01:53,190 [DEBUG][       Thread-258757][   transport.py][1871] : client lang: <none>
2025-06-13 15:01:53,190 [DEBUG][       Thread-258757][   transport.py][1871] : server lang: <none>
2025-06-13 15:01:53,190 [DEBUG][       Thread-258757][   transport.py][1871] : kex follows: False
2025-06-13 15:01:53,190 [DEBUG][       Thread-258757][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 15:01:53,190 [DEBUG][       Thread-258757][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 15:01:53,190 [DEBUG][       Thread-258757][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 15:01:53,190 [DEBUG][       Thread-258757][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 15:01:53,191 [DEBUG][       Thread-258757][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 15:01:53,191 [DEBUG][       Thread-258757][   transport.py][1871] : Compression: none
2025-06-13 15:01:53,191 [DEBUG][       Thread-258757][   transport.py][1871] : === End of kex handshake ===
2025-06-13 15:01:53,207 [DEBUG][       Thread-258757][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 15:01:53,207 [DEBUG][       Thread-258757][   transport.py][1871] : Switch to new keys ...
2025-06-13 15:01:53,208 [DEBUG][       Thread-258757][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 15:01:53,208 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 15:01:53,208 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 15:01:53,209 [DEBUG][       Thread-258757][   transport.py][1871] : userauth is OK
2025-06-13 15:01:53,234 [ INFO][       Thread-258757][   transport.py][1871] : Authentication (password) successful!
2025-06-13 15:01:53,235 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 15:01:54,008 [DEBUG][       Thread-258757][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 15:01:54,009 [DEBUG][       Thread-258757][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 15:01:54,053 [DEBUG][       Thread-258757][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 15:01:54,053 [DEBUG][       Thread-258757][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 15:01:54,057 [DEBUG][       Thread-258757][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 15:01:54,069 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 15:01:54,069 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 15:01:54,071 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 15:01:54,073 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 15:01:54,079 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 15:01:54,081 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 15:01:54,082 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 15:01:54,082 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 15:01:54,082 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.542644 -999.00  +13.70  21.76     33   -2.00 1 1 1 1 1   887    0 16.22 36.42 ----- 20.3 21.8 52.0 26.8 17.6 -31.0 16.6 -32.8 17.2 -30.9 18.5 -29.1
2025-06-13 15:01:54,082 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 15:01:54,083 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 15:01:54,083 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.542644
2025-06-13 15:01:54,083 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 15:01:54,084 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 15:01:54,084 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 15:01:54,084 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 15:01:54,084 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 15:01:54,084 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T15:01:28', tmtdew=17.81, humidity=28.96, cloud=0.0, wind=24.76, temperature=14.05, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T13:01:24.442', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 15:01:54,085 [DEBUG][       Thread-258757][   transport.py][1871] : EOF in transport thread
2025-06-13 15:01:54,168 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 15:01:54,177 [DEBUG][       Thread-258760][   transport.py][1871] : starting thread (client mode): 0x863a4160
2025-06-13 15:01:54,177 [DEBUG][       Thread-258760][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 15:01:54,192 [DEBUG][       Thread-258760][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 15:01:54,192 [ INFO][       Thread-258760][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 15:01:54,200 [DEBUG][       Thread-258760][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 15:01:54,200 [DEBUG][       Thread-258760][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 15:01:54,200 [DEBUG][       Thread-258760][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 15:01:54,200 [DEBUG][       Thread-258760][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:01:54,200 [DEBUG][       Thread-258760][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:01:54,200 [DEBUG][       Thread-258760][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:01:54,200 [DEBUG][       Thread-258760][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:01:54,200 [DEBUG][       Thread-258760][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 15:01:54,200 [DEBUG][       Thread-258760][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 15:01:54,200 [DEBUG][       Thread-258760][   transport.py][1871] : client lang: <none>
2025-06-13 15:01:54,200 [DEBUG][       Thread-258760][   transport.py][1871] : server lang: <none>
2025-06-13 15:01:54,200 [DEBUG][       Thread-258760][   transport.py][1871] : kex follows: False
2025-06-13 15:01:54,200 [DEBUG][       Thread-258760][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 15:01:54,200 [DEBUG][       Thread-258760][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 15:01:54,200 [DEBUG][       Thread-258760][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 15:01:54,200 [DEBUG][       Thread-258760][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 15:01:54,200 [DEBUG][       Thread-258760][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 15:01:54,200 [DEBUG][       Thread-258760][   transport.py][1871] : Compression: none
2025-06-13 15:01:54,200 [DEBUG][       Thread-258760][   transport.py][1871] : === End of kex handshake ===
2025-06-13 15:01:54,259 [DEBUG][       Thread-258760][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 15:01:54,259 [DEBUG][       Thread-258760][   transport.py][1871] : Switch to new keys ...
2025-06-13 15:01:54,260 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 15:01:54,260 [DEBUG][       Thread-258760][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 15:01:54,261 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 15:01:54,322 [DEBUG][       Thread-258760][   transport.py][1871] : userauth is OK
2025-06-13 15:01:54,322 [DEBUG][       Thread-258760][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 15:01:54,322 [DEBUG][       Thread-258760][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 15:01:54,322 [DEBUG][       Thread-258760][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 15:01:54,322 [DEBUG][       Thread-258760][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 15:01:54,341 [ INFO][       Thread-258760][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 15:01:54,342 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 15:01:54,342 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 15:01:55,344 [DEBUG][       Thread-258760][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 15:01:55,344 [DEBUG][       Thread-258760][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 15:01:55,391 [DEBUG][       Thread-258760][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 15:01:55,391 [DEBUG][       Thread-258760][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 15:01:55,400 [DEBUG][       Thread-258760][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 15:01:55,408 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 15:01:55,408 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 15:01:55,416 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 15:01:55,424 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 15:01:55,424 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 15:01:55,424 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 15:01:55,432 [DEBUG][       Thread-258760][   transport.py][1871] : EOF in transport thread
2025-06-13 15:01:56,470 [DEBUG][Thread-258762 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:02:05,432 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 15:02:05,432 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 15:02:05,432 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 15:02:05,435 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 15:02:05,488 [DEBUG][Thread-258763 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:02:05,664 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:02:05,665 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:02:05,917 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 15, 1, 28), 17.81, 28.96, 0.0, 24.76, 14.05, 0, 0, 0, 2, 0, 0),)
2025-06-13 15:02:05,917 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 15:01:28
2025-06-13 15:02:05,998 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 15:02:06,004 [DEBUG][       Thread-258764][   transport.py][1871] : starting thread (client mode): 0x863a5e70
2025-06-13 15:02:06,004 [DEBUG][       Thread-258764][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 15:02:06,024 [DEBUG][       Thread-258764][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 15:02:06,025 [ INFO][       Thread-258764][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 15:02:06,028 [DEBUG][       Thread-258764][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 15:02:06,028 [DEBUG][       Thread-258764][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 15:02:06,028 [DEBUG][       Thread-258764][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 15:02:06,028 [DEBUG][       Thread-258764][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:02:06,028 [DEBUG][       Thread-258764][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:02:06,028 [DEBUG][       Thread-258764][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:02:06,028 [DEBUG][       Thread-258764][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:02:06,028 [DEBUG][       Thread-258764][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 15:02:06,029 [DEBUG][       Thread-258764][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 15:02:06,029 [DEBUG][       Thread-258764][   transport.py][1871] : client lang: <none>
2025-06-13 15:02:06,029 [DEBUG][       Thread-258764][   transport.py][1871] : server lang: <none>
2025-06-13 15:02:06,029 [DEBUG][       Thread-258764][   transport.py][1871] : kex follows: False
2025-06-13 15:02:06,029 [DEBUG][       Thread-258764][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 15:02:06,029 [DEBUG][       Thread-258764][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 15:02:06,029 [DEBUG][       Thread-258764][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 15:02:06,029 [DEBUG][       Thread-258764][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 15:02:06,029 [DEBUG][       Thread-258764][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 15:02:06,029 [DEBUG][       Thread-258764][   transport.py][1871] : Compression: none
2025-06-13 15:02:06,029 [DEBUG][       Thread-258764][   transport.py][1871] : === End of kex handshake ===
2025-06-13 15:02:06,043 [DEBUG][       Thread-258764][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 15:02:06,043 [DEBUG][       Thread-258764][   transport.py][1871] : Switch to new keys ...
2025-06-13 15:02:06,044 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 15:02:06,044 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 15:02:06,044 [DEBUG][       Thread-258764][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 15:02:06,047 [DEBUG][       Thread-258764][   transport.py][1871] : userauth is OK
2025-06-13 15:02:06,071 [ INFO][       Thread-258764][   transport.py][1871] : Authentication (password) successful!
2025-06-13 15:02:06,072 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 15:02:06,627 [DEBUG][       Thread-258764][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 15:02:06,627 [DEBUG][       Thread-258764][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 15:02:06,669 [DEBUG][       Thread-258764][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 15:02:06,669 [DEBUG][       Thread-258764][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 15:02:06,671 [DEBUG][       Thread-258764][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 15:02:06,684 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 15:02:06,684 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 15:02:06,686 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 15:02:06,687 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 15:02:06,693 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 15:02:06,695 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 15:02:06,695 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 15:02:06,696 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 15:02:06,696 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.542991 -999.00  +13.90  19.97     33   -1.80 1 1 1 1 1   887    0 16.29 39.27 ----- 23.4 20.0 35.0 26.9 17.6 -31.3 16.6 -31.6 17.4 -30.1 18.5 -29.1
2025-06-13 15:02:06,696 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 15:02:06,696 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 15:02:06,696 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.542991
2025-06-13 15:02:06,697 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 15:02:06,697 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 15:02:06,697 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 15:02:06,698 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 15:02:06,698 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 15:02:06,698 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T15:01:28', tmtdew=17.81, humidity=28.96, cloud=0.0, wind=24.76, temperature=14.05, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T13:01:54.422', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 15:02:06,698 [DEBUG][       Thread-258764][   transport.py][1871] : EOF in transport thread
2025-06-13 15:02:06,782 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 15:02:06,794 [DEBUG][       Thread-258767][   transport.py][1871] : starting thread (client mode): 0x86893ca0
2025-06-13 15:02:06,794 [DEBUG][       Thread-258767][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 15:02:06,810 [DEBUG][       Thread-258767][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 15:02:06,810 [ INFO][       Thread-258767][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 15:02:06,818 [DEBUG][       Thread-258767][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 15:02:06,818 [DEBUG][       Thread-258767][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 15:02:06,818 [DEBUG][       Thread-258767][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 15:02:06,818 [DEBUG][       Thread-258767][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:02:06,818 [DEBUG][       Thread-258767][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:02:06,818 [DEBUG][       Thread-258767][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:02:06,818 [DEBUG][       Thread-258767][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:02:06,818 [DEBUG][       Thread-258767][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 15:02:06,818 [DEBUG][       Thread-258767][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 15:02:06,818 [DEBUG][       Thread-258767][   transport.py][1871] : client lang: <none>
2025-06-13 15:02:06,818 [DEBUG][       Thread-258767][   transport.py][1871] : server lang: <none>
2025-06-13 15:02:06,818 [DEBUG][       Thread-258767][   transport.py][1871] : kex follows: False
2025-06-13 15:02:06,818 [DEBUG][       Thread-258767][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 15:02:06,818 [DEBUG][       Thread-258767][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 15:02:06,818 [DEBUG][       Thread-258767][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 15:02:06,818 [DEBUG][       Thread-258767][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 15:02:06,819 [DEBUG][       Thread-258767][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 15:02:06,819 [DEBUG][       Thread-258767][   transport.py][1871] : Compression: none
2025-06-13 15:02:06,819 [DEBUG][       Thread-258767][   transport.py][1871] : === End of kex handshake ===
2025-06-13 15:02:06,876 [DEBUG][       Thread-258767][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 15:02:06,876 [DEBUG][       Thread-258767][   transport.py][1871] : Switch to new keys ...
2025-06-13 15:02:06,877 [DEBUG][       Thread-258767][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 15:02:06,877 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 15:02:06,878 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 15:02:06,935 [DEBUG][       Thread-258767][   transport.py][1871] : userauth is OK
2025-06-13 15:02:06,935 [DEBUG][       Thread-258767][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 15:02:06,935 [DEBUG][       Thread-258767][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 15:02:06,935 [DEBUG][       Thread-258767][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 15:02:06,935 [DEBUG][       Thread-258767][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 15:02:06,954 [ INFO][       Thread-258767][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 15:02:06,955 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 15:02:06,955 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 15:02:07,983 [DEBUG][       Thread-258767][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 15:02:07,984 [DEBUG][       Thread-258767][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 15:02:08,032 [DEBUG][       Thread-258767][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 15:02:08,032 [DEBUG][       Thread-258767][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 15:02:08,041 [DEBUG][       Thread-258767][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 15:02:08,051 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 15:02:08,051 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 15:02:08,059 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 15:02:08,068 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 15:02:08,069 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 15:02:08,069 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 15:02:08,077 [DEBUG][       Thread-258767][   transport.py][1871] : EOF in transport thread
2025-06-13 15:02:14,510 [DEBUG][Thread-258769 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:02:18,079 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 15:02:18,079 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 15:02:18,079 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 15:02:18,082 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 15:02:18,551 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 15, 1, 28), 17.81, 28.96, 0.0, 24.76, 14.05, 0, 0, 0, 2, 0, 0),)
2025-06-13 15:02:18,551 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 15:01:28
2025-06-13 15:02:18,632 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 15:02:18,638 [DEBUG][       Thread-258770][   transport.py][1871] : starting thread (client mode): 0x863a41f0
2025-06-13 15:02:18,639 [DEBUG][       Thread-258770][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 15:02:18,660 [DEBUG][       Thread-258770][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 15:02:18,660 [ INFO][       Thread-258770][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 15:02:18,664 [DEBUG][       Thread-258770][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 15:02:18,664 [DEBUG][       Thread-258770][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 15:02:18,664 [DEBUG][       Thread-258770][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 15:02:18,664 [DEBUG][       Thread-258770][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:02:18,664 [DEBUG][       Thread-258770][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:02:18,664 [DEBUG][       Thread-258770][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:02:18,664 [DEBUG][       Thread-258770][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:02:18,664 [DEBUG][       Thread-258770][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 15:02:18,664 [DEBUG][       Thread-258770][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 15:02:18,664 [DEBUG][       Thread-258770][   transport.py][1871] : client lang: <none>
2025-06-13 15:02:18,664 [DEBUG][       Thread-258770][   transport.py][1871] : server lang: <none>
2025-06-13 15:02:18,664 [DEBUG][       Thread-258770][   transport.py][1871] : kex follows: False
2025-06-13 15:02:18,664 [DEBUG][       Thread-258770][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 15:02:18,664 [DEBUG][       Thread-258770][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 15:02:18,664 [DEBUG][       Thread-258770][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 15:02:18,664 [DEBUG][       Thread-258770][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 15:02:18,664 [DEBUG][       Thread-258770][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 15:02:18,664 [DEBUG][       Thread-258770][   transport.py][1871] : Compression: none
2025-06-13 15:02:18,664 [DEBUG][       Thread-258770][   transport.py][1871] : === End of kex handshake ===
2025-06-13 15:02:18,673 [DEBUG][       Thread-258770][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 15:02:18,673 [DEBUG][       Thread-258770][   transport.py][1871] : Switch to new keys ...
2025-06-13 15:02:18,674 [DEBUG][       Thread-258770][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 15:02:18,674 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 15:02:18,674 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 15:02:18,675 [DEBUG][       Thread-258770][   transport.py][1871] : userauth is OK
2025-06-13 15:02:18,688 [ INFO][       Thread-258770][   transport.py][1871] : Authentication (password) successful!
2025-06-13 15:02:18,688 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 15:02:18,934 [DEBUG][Thread-258772 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:02:19,360 [DEBUG][       Thread-258770][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 15:02:19,361 [DEBUG][       Thread-258770][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 15:02:19,405 [DEBUG][       Thread-258770][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 15:02:19,405 [DEBUG][       Thread-258770][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 15:02:19,409 [DEBUG][       Thread-258770][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 15:02:19,421 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 15:02:19,421 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 15:02:19,423 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 15:02:19,425 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 15:02:19,431 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 15:02:19,433 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 15:02:19,433 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 15:02:19,434 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 15:02:19,434 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.542991 -999.00  +13.90  19.97     33   -1.80 1 1 1 1 1   887    0 16.29 39.27 ----- 23.4 20.0 35.0 26.9 17.6 -31.3 16.6 -31.6 17.4 -30.1 18.5 -29.1
2025-06-13 15:02:19,434 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 15:02:19,434 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 15:02:19,434 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.542991
2025-06-13 15:02:19,434 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 15:02:19,435 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 15:02:19,435 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 15:02:19,435 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 15:02:19,435 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 15:02:19,435 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T15:01:28', tmtdew=17.81, humidity=28.96, cloud=0.0, wind=24.76, temperature=14.05, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T13:01:54.422', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 15:02:19,436 [DEBUG][       Thread-258770][   transport.py][1871] : EOF in transport thread
2025-06-13 15:02:19,519 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 15:02:19,531 [DEBUG][       Thread-258774][   transport.py][1871] : starting thread (client mode): 0x863a5690
2025-06-13 15:02:19,531 [DEBUG][       Thread-258774][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 15:02:19,546 [DEBUG][       Thread-258774][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 15:02:19,546 [ INFO][       Thread-258774][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 15:02:19,553 [DEBUG][       Thread-258774][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 15:02:19,553 [DEBUG][       Thread-258774][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 15:02:19,553 [DEBUG][       Thread-258774][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 15:02:19,553 [DEBUG][       Thread-258774][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:02:19,553 [DEBUG][       Thread-258774][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:02:19,553 [DEBUG][       Thread-258774][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:02:19,553 [DEBUG][       Thread-258774][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:02:19,553 [DEBUG][       Thread-258774][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 15:02:19,553 [DEBUG][       Thread-258774][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 15:02:19,553 [DEBUG][       Thread-258774][   transport.py][1871] : client lang: <none>
2025-06-13 15:02:19,553 [DEBUG][       Thread-258774][   transport.py][1871] : server lang: <none>
2025-06-13 15:02:19,553 [DEBUG][       Thread-258774][   transport.py][1871] : kex follows: False
2025-06-13 15:02:19,554 [DEBUG][       Thread-258774][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 15:02:19,554 [DEBUG][       Thread-258774][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 15:02:19,554 [DEBUG][       Thread-258774][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 15:02:19,554 [DEBUG][       Thread-258774][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 15:02:19,554 [DEBUG][       Thread-258774][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 15:02:19,554 [DEBUG][       Thread-258774][   transport.py][1871] : Compression: none
2025-06-13 15:02:19,554 [DEBUG][       Thread-258774][   transport.py][1871] : === End of kex handshake ===
2025-06-13 15:02:19,611 [DEBUG][       Thread-258774][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 15:02:19,612 [DEBUG][       Thread-258774][   transport.py][1871] : Switch to new keys ...
2025-06-13 15:02:19,612 [DEBUG][       Thread-258774][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 15:02:19,612 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 15:02:19,613 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 15:02:19,676 [DEBUG][       Thread-258774][   transport.py][1871] : userauth is OK
2025-06-13 15:02:19,676 [DEBUG][       Thread-258774][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 15:02:19,677 [DEBUG][       Thread-258774][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 15:02:19,677 [DEBUG][       Thread-258774][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 15:02:19,677 [DEBUG][       Thread-258774][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 15:02:19,697 [ INFO][       Thread-258774][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 15:02:19,697 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 15:02:19,698 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 15:02:19,833 [DEBUG][Thread-258776 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:02:20,013 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:02:20,014 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:02:20,682 [DEBUG][       Thread-258774][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 15:02:20,682 [DEBUG][       Thread-258774][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 15:02:20,732 [DEBUG][       Thread-258774][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 15:02:20,732 [DEBUG][       Thread-258774][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 15:02:20,740 [DEBUG][       Thread-258774][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 15:02:20,749 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 15:02:20,749 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 15:02:20,757 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 15:02:20,767 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 15:02:20,767 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 15:02:20,767 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 15:02:20,775 [DEBUG][       Thread-258774][   transport.py][1871] : EOF in transport thread
2025-06-13 15:02:23,531 [DEBUG][Thread-258777 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:02:30,778 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 15:02:30,778 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 15:02:30,778 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 15:02:30,780 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 15:02:31,248 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 15, 1, 28), 17.81, 28.96, 0.0, 24.76, 14.05, 0, 0, 0, 2, 0, 0),)
2025-06-13 15:02:31,248 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 15:01:28
2025-06-13 15:02:31,330 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 15:02:31,333 [DEBUG][       Thread-258778][   transport.py][1871] : starting thread (client mode): 0x863a4910
2025-06-13 15:02:31,333 [DEBUG][       Thread-258778][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 15:02:31,354 [DEBUG][       Thread-258778][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 15:02:31,354 [ INFO][       Thread-258778][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 15:02:31,357 [DEBUG][       Thread-258778][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 15:02:31,357 [DEBUG][       Thread-258778][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 15:02:31,357 [DEBUG][       Thread-258778][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 15:02:31,357 [DEBUG][       Thread-258778][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:02:31,357 [DEBUG][       Thread-258778][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:02:31,357 [DEBUG][       Thread-258778][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:02:31,358 [DEBUG][       Thread-258778][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:02:31,358 [DEBUG][       Thread-258778][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 15:02:31,358 [DEBUG][       Thread-258778][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 15:02:31,358 [DEBUG][       Thread-258778][   transport.py][1871] : client lang: <none>
2025-06-13 15:02:31,358 [DEBUG][       Thread-258778][   transport.py][1871] : server lang: <none>
2025-06-13 15:02:31,358 [DEBUG][       Thread-258778][   transport.py][1871] : kex follows: False
2025-06-13 15:02:31,358 [DEBUG][       Thread-258778][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 15:02:31,358 [DEBUG][       Thread-258778][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 15:02:31,358 [DEBUG][       Thread-258778][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 15:02:31,358 [DEBUG][       Thread-258778][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 15:02:31,358 [DEBUG][       Thread-258778][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 15:02:31,358 [DEBUG][       Thread-258778][   transport.py][1871] : Compression: none
2025-06-13 15:02:31,358 [DEBUG][       Thread-258778][   transport.py][1871] : === End of kex handshake ===
2025-06-13 15:02:31,374 [DEBUG][       Thread-258778][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 15:02:31,375 [DEBUG][       Thread-258778][   transport.py][1871] : Switch to new keys ...
2025-06-13 15:02:31,376 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 15:02:31,376 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 15:02:31,376 [DEBUG][       Thread-258778][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 15:02:31,377 [DEBUG][       Thread-258778][   transport.py][1871] : userauth is OK
2025-06-13 15:02:31,390 [ INFO][       Thread-258778][   transport.py][1871] : Authentication (password) successful!
2025-06-13 15:02:31,390 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 15:02:32,068 [DEBUG][       Thread-258778][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 15:02:32,068 [DEBUG][       Thread-258778][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 15:02:32,109 [DEBUG][       Thread-258778][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 15:02:32,109 [DEBUG][       Thread-258778][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 15:02:32,112 [DEBUG][       Thread-258778][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 15:02:32,120 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 15:02:32,120 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 15:02:32,122 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 15:02:32,124 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 15:02:32,130 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 15:02:32,132 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 15:02:32,132 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 15:02:32,133 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 15:02:32,133 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.542991 -999.00  +13.90  19.97     33   -1.80 1 1 1 1 1   887    0 16.29 39.27 ----- 23.4 20.0 35.0 26.9 17.6 -31.3 16.6 -31.6 17.4 -30.1 18.5 -29.1
2025-06-13 15:02:32,133 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 15:02:32,133 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 15:02:32,133 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.542991
2025-06-13 15:02:32,134 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 15:02:32,134 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 15:02:32,134 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 15:02:32,135 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 15:02:32,135 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 15:02:32,135 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T15:01:28', tmtdew=17.81, humidity=28.96, cloud=0.0, wind=24.76, temperature=14.05, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T13:01:54.422', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 15:02:32,136 [DEBUG][       Thread-258778][   transport.py][1871] : EOF in transport thread
2025-06-13 15:02:32,221 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 15:02:32,230 [DEBUG][       Thread-258781][   transport.py][1871] : starting thread (client mode): 0x863a5ae0
2025-06-13 15:02:32,231 [DEBUG][       Thread-258781][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 15:02:32,245 [DEBUG][       Thread-258781][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 15:02:32,245 [ INFO][       Thread-258781][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 15:02:32,253 [DEBUG][       Thread-258781][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 15:02:32,253 [DEBUG][       Thread-258781][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 15:02:32,253 [DEBUG][       Thread-258781][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 15:02:32,253 [DEBUG][       Thread-258781][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:02:32,253 [DEBUG][       Thread-258781][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:02:32,253 [DEBUG][       Thread-258781][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:02:32,253 [DEBUG][       Thread-258781][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:02:32,253 [DEBUG][       Thread-258781][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 15:02:32,253 [DEBUG][       Thread-258781][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 15:02:32,253 [DEBUG][       Thread-258781][   transport.py][1871] : client lang: <none>
2025-06-13 15:02:32,254 [DEBUG][       Thread-258781][   transport.py][1871] : server lang: <none>
2025-06-13 15:02:32,254 [DEBUG][       Thread-258781][   transport.py][1871] : kex follows: False
2025-06-13 15:02:32,254 [DEBUG][       Thread-258781][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 15:02:32,254 [DEBUG][       Thread-258781][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 15:02:32,254 [DEBUG][       Thread-258781][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 15:02:32,254 [DEBUG][       Thread-258781][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 15:02:32,254 [DEBUG][       Thread-258781][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 15:02:32,254 [DEBUG][       Thread-258781][   transport.py][1871] : Compression: none
2025-06-13 15:02:32,254 [DEBUG][       Thread-258781][   transport.py][1871] : === End of kex handshake ===
2025-06-13 15:02:32,318 [DEBUG][       Thread-258781][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 15:02:32,319 [DEBUG][       Thread-258781][   transport.py][1871] : Switch to new keys ...
2025-06-13 15:02:32,319 [DEBUG][       Thread-258781][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 15:02:32,320 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 15:02:32,321 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 15:02:32,375 [DEBUG][       Thread-258781][   transport.py][1871] : userauth is OK
2025-06-13 15:02:32,376 [DEBUG][       Thread-258781][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 15:02:32,376 [DEBUG][       Thread-258781][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 15:02:32,376 [DEBUG][       Thread-258781][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 15:02:32,376 [DEBUG][       Thread-258781][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 15:02:32,396 [ INFO][       Thread-258781][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 15:02:32,397 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 15:02:32,397 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 15:02:32,553 [DEBUG][Thread-258783 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:02:33,388 [DEBUG][       Thread-258781][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 15:02:33,388 [DEBUG][       Thread-258781][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 15:02:33,437 [DEBUG][       Thread-258781][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 15:02:33,437 [DEBUG][       Thread-258781][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 15:02:33,445 [DEBUG][       Thread-258781][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 15:02:33,455 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 15:02:33,455 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 15:02:33,463 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 15:02:33,474 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 15:02:33,474 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 15:02:33,474 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 15:02:33,482 [DEBUG][       Thread-258781][   transport.py][1871] : EOF in transport thread
2025-06-13 15:02:41,573 [DEBUG][Thread-258784 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:02:43,485 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 15:02:43,485 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 15:02:43,485 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 15:02:43,488 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 15:02:43,947 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 15, 2, 32), 17.98, 28.77, 0.0, 21.56, 14.21, 0, 0, 0, 2, 0, 0),)
2025-06-13 15:02:43,947 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 15:02:32
2025-06-13 15:02:44,028 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 15:02:44,034 [DEBUG][       Thread-258785][   transport.py][1871] : starting thread (client mode): 0x863ec670
2025-06-13 15:02:44,034 [DEBUG][       Thread-258785][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 15:02:44,055 [DEBUG][       Thread-258785][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 15:02:44,055 [ INFO][       Thread-258785][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 15:02:44,059 [DEBUG][       Thread-258785][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 15:02:44,059 [DEBUG][       Thread-258785][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 15:02:44,059 [DEBUG][       Thread-258785][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 15:02:44,059 [DEBUG][       Thread-258785][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:02:44,059 [DEBUG][       Thread-258785][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:02:44,059 [DEBUG][       Thread-258785][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:02:44,059 [DEBUG][       Thread-258785][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:02:44,059 [DEBUG][       Thread-258785][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 15:02:44,059 [DEBUG][       Thread-258785][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 15:02:44,059 [DEBUG][       Thread-258785][   transport.py][1871] : client lang: <none>
2025-06-13 15:02:44,059 [DEBUG][       Thread-258785][   transport.py][1871] : server lang: <none>
2025-06-13 15:02:44,059 [DEBUG][       Thread-258785][   transport.py][1871] : kex follows: False
2025-06-13 15:02:44,059 [DEBUG][       Thread-258785][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 15:02:44,059 [DEBUG][       Thread-258785][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 15:02:44,059 [DEBUG][       Thread-258785][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 15:02:44,059 [DEBUG][       Thread-258785][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 15:02:44,059 [DEBUG][       Thread-258785][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 15:02:44,059 [DEBUG][       Thread-258785][   transport.py][1871] : Compression: none
2025-06-13 15:02:44,060 [DEBUG][       Thread-258785][   transport.py][1871] : === End of kex handshake ===
2025-06-13 15:02:44,077 [DEBUG][       Thread-258785][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 15:02:44,077 [DEBUG][       Thread-258785][   transport.py][1871] : Switch to new keys ...
2025-06-13 15:02:44,078 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 15:02:44,078 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 15:02:44,079 [DEBUG][       Thread-258785][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 15:02:44,079 [DEBUG][       Thread-258785][   transport.py][1871] : userauth is OK
2025-06-13 15:02:44,092 [ INFO][       Thread-258785][   transport.py][1871] : Authentication (password) successful!
2025-06-13 15:02:44,093 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 15:02:44,763 [DEBUG][       Thread-258785][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 15:02:44,764 [DEBUG][       Thread-258785][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 15:02:44,805 [DEBUG][       Thread-258785][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 15:02:44,805 [DEBUG][       Thread-258785][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 15:02:44,809 [DEBUG][       Thread-258785][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 15:02:44,822 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 15:02:44,823 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 15:02:44,825 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 15:02:44,827 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 15:02:44,833 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 15:02:44,835 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 15:02:44,836 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 15:02:44,836 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 15:02:44,837 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.543339 -999.00  +14.00  25.44     33   -2.00 1 1 1 1 1   887    0 16.12 39.39 ----- 24.3 25.4 37.8 28.5 17.6 -32.1 16.6 -31.9 17.4 -32.2 18.5 -30.1
2025-06-13 15:02:44,837 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 15:02:44,837 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 15:02:44,837 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.543339
2025-06-13 15:02:44,837 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 15:02:44,838 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 15:02:44,838 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 15:02:44,838 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 15:02:44,838 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 15:02:44,838 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T15:02:32', tmtdew=17.98, humidity=28.77, cloud=0.0, wind=21.56, temperature=14.21, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T13:02:24.490', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 15:02:44,839 [DEBUG][       Thread-258785][   transport.py][1871] : EOF in transport thread
2025-06-13 15:02:44,922 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 15:02:44,933 [DEBUG][       Thread-258788][   transport.py][1871] : starting thread (client mode): 0x863a7a90
2025-06-13 15:02:44,933 [DEBUG][       Thread-258788][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 15:02:44,950 [DEBUG][       Thread-258788][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 15:02:44,950 [ INFO][       Thread-258788][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 15:02:44,959 [DEBUG][       Thread-258788][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 15:02:44,959 [DEBUG][       Thread-258788][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 15:02:44,960 [DEBUG][       Thread-258788][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 15:02:44,960 [DEBUG][       Thread-258788][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:02:44,960 [DEBUG][       Thread-258788][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:02:44,960 [DEBUG][       Thread-258788][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:02:44,960 [DEBUG][       Thread-258788][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:02:44,960 [DEBUG][       Thread-258788][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 15:02:44,960 [DEBUG][       Thread-258788][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 15:02:44,960 [DEBUG][       Thread-258788][   transport.py][1871] : client lang: <none>
2025-06-13 15:02:44,960 [DEBUG][       Thread-258788][   transport.py][1871] : server lang: <none>
2025-06-13 15:02:44,960 [DEBUG][       Thread-258788][   transport.py][1871] : kex follows: False
2025-06-13 15:02:44,960 [DEBUG][       Thread-258788][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 15:02:44,960 [DEBUG][       Thread-258788][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 15:02:44,960 [DEBUG][       Thread-258788][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 15:02:44,960 [DEBUG][       Thread-258788][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 15:02:44,960 [DEBUG][       Thread-258788][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 15:02:44,960 [DEBUG][       Thread-258788][   transport.py][1871] : Compression: none
2025-06-13 15:02:44,960 [DEBUG][       Thread-258788][   transport.py][1871] : === End of kex handshake ===
2025-06-13 15:02:45,015 [DEBUG][       Thread-258788][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 15:02:45,015 [DEBUG][       Thread-258788][   transport.py][1871] : Switch to new keys ...
2025-06-13 15:02:45,016 [DEBUG][       Thread-258788][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 15:02:45,016 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 15:02:45,017 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 15:02:45,075 [DEBUG][       Thread-258788][   transport.py][1871] : userauth is OK
2025-06-13 15:02:45,075 [DEBUG][       Thread-258788][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 15:02:45,075 [DEBUG][       Thread-258788][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 15:02:45,075 [DEBUG][       Thread-258788][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 15:02:45,075 [DEBUG][       Thread-258788][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 15:02:45,094 [ INFO][       Thread-258788][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 15:02:45,094 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 15:02:45,095 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 15:02:46,092 [DEBUG][       Thread-258788][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 15:02:46,092 [DEBUG][       Thread-258788][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 15:02:46,140 [DEBUG][       Thread-258788][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 15:02:46,140 [DEBUG][       Thread-258788][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 15:02:46,149 [DEBUG][       Thread-258788][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 15:02:46,166 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 15:02:46,166 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 15:02:46,175 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 15:02:46,184 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 15:02:46,184 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 15:02:46,185 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 15:02:46,192 [DEBUG][       Thread-258788][   transport.py][1871] : EOF in transport thread
2025-06-13 15:02:50,594 [DEBUG][Thread-258790 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:02:56,195 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 15:02:56,195 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 15:02:56,195 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 15:02:56,196 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 15:02:56,649 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 15, 2, 32), 17.98, 28.77, 0.0, 21.56, 14.21, 0, 0, 0, 2, 0, 0),)
2025-06-13 15:02:56,649 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 15:02:32
2025-06-13 15:02:56,731 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 15:02:56,735 [DEBUG][       Thread-258791][   transport.py][1871] : starting thread (client mode): 0x863eff40
2025-06-13 15:02:56,735 [DEBUG][       Thread-258791][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 15:02:56,756 [DEBUG][       Thread-258791][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 15:02:56,757 [ INFO][       Thread-258791][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 15:02:56,760 [DEBUG][       Thread-258791][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 15:02:56,761 [DEBUG][       Thread-258791][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 15:02:56,761 [DEBUG][       Thread-258791][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 15:02:56,761 [DEBUG][       Thread-258791][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:02:56,761 [DEBUG][       Thread-258791][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:02:56,761 [DEBUG][       Thread-258791][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:02:56,761 [DEBUG][       Thread-258791][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:02:56,761 [DEBUG][       Thread-258791][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 15:02:56,761 [DEBUG][       Thread-258791][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 15:02:56,761 [DEBUG][       Thread-258791][   transport.py][1871] : client lang: <none>
2025-06-13 15:02:56,761 [DEBUG][       Thread-258791][   transport.py][1871] : server lang: <none>
2025-06-13 15:02:56,761 [DEBUG][       Thread-258791][   transport.py][1871] : kex follows: False
2025-06-13 15:02:56,761 [DEBUG][       Thread-258791][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 15:02:56,761 [DEBUG][       Thread-258791][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 15:02:56,761 [DEBUG][       Thread-258791][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 15:02:56,761 [DEBUG][       Thread-258791][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 15:02:56,761 [DEBUG][       Thread-258791][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 15:02:56,761 [DEBUG][       Thread-258791][   transport.py][1871] : Compression: none
2025-06-13 15:02:56,761 [DEBUG][       Thread-258791][   transport.py][1871] : === End of kex handshake ===
2025-06-13 15:02:56,777 [DEBUG][       Thread-258791][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 15:02:56,777 [DEBUG][       Thread-258791][   transport.py][1871] : Switch to new keys ...
2025-06-13 15:02:56,778 [DEBUG][       Thread-258791][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 15:02:56,778 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 15:02:56,778 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 15:02:56,779 [DEBUG][       Thread-258791][   transport.py][1871] : userauth is OK
2025-06-13 15:02:56,803 [ INFO][       Thread-258791][   transport.py][1871] : Authentication (password) successful!
2025-06-13 15:02:56,804 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 15:02:57,468 [DEBUG][       Thread-258791][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 15:02:57,468 [DEBUG][       Thread-258791][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 15:02:57,509 [DEBUG][       Thread-258791][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 15:02:57,509 [DEBUG][       Thread-258791][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 15:02:57,512 [DEBUG][       Thread-258791][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 15:02:57,525 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 15:02:57,525 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 15:02:57,527 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 15:02:57,529 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 15:02:57,535 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 15:02:57,536 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 15:02:57,537 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 15:02:57,537 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 15:02:57,537 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.543339 -999.00  +14.00  25.44     33   -2.00 1 1 1 1 1   887    0 16.12 39.39 ----- 24.3 25.4 37.8 28.5 17.6 -32.1 16.6 -31.9 17.4 -32.2 18.5 -30.1
2025-06-13 15:02:57,538 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 15:02:57,538 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 15:02:57,538 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.543339
2025-06-13 15:02:57,538 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 15:02:57,539 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 15:02:57,539 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 15:02:57,539 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 15:02:57,539 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 15:02:57,539 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T15:02:32', tmtdew=17.98, humidity=28.77, cloud=0.0, wind=21.56, temperature=14.21, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T13:02:24.490', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 15:02:57,539 [DEBUG][       Thread-258791][   transport.py][1871] : EOF in transport thread
2025-06-13 15:02:57,623 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 15:02:57,633 [DEBUG][       Thread-258794][   transport.py][1871] : starting thread (client mode): 0x863a7190
2025-06-13 15:02:57,633 [DEBUG][       Thread-258794][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 15:02:57,648 [DEBUG][       Thread-258794][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 15:02:57,649 [ INFO][       Thread-258794][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 15:02:57,656 [DEBUG][       Thread-258794][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 15:02:57,656 [DEBUG][       Thread-258794][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 15:02:57,656 [DEBUG][       Thread-258794][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 15:02:57,656 [DEBUG][       Thread-258794][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:02:57,656 [DEBUG][       Thread-258794][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:02:57,656 [DEBUG][       Thread-258794][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:02:57,656 [DEBUG][       Thread-258794][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:02:57,656 [DEBUG][       Thread-258794][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 15:02:57,656 [DEBUG][       Thread-258794][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 15:02:57,656 [DEBUG][       Thread-258794][   transport.py][1871] : client lang: <none>
2025-06-13 15:02:57,656 [DEBUG][       Thread-258794][   transport.py][1871] : server lang: <none>
2025-06-13 15:02:57,656 [DEBUG][       Thread-258794][   transport.py][1871] : kex follows: False
2025-06-13 15:02:57,656 [DEBUG][       Thread-258794][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 15:02:57,656 [DEBUG][       Thread-258794][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 15:02:57,656 [DEBUG][       Thread-258794][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 15:02:57,656 [DEBUG][       Thread-258794][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 15:02:57,656 [DEBUG][       Thread-258794][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 15:02:57,656 [DEBUG][       Thread-258794][   transport.py][1871] : Compression: none
2025-06-13 15:02:57,656 [DEBUG][       Thread-258794][   transport.py][1871] : === End of kex handshake ===
2025-06-13 15:02:57,713 [DEBUG][       Thread-258794][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 15:02:57,713 [DEBUG][       Thread-258794][   transport.py][1871] : Switch to new keys ...
2025-06-13 15:02:57,713 [DEBUG][       Thread-258794][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 15:02:57,713 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 15:02:57,714 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 15:02:57,770 [DEBUG][       Thread-258794][   transport.py][1871] : userauth is OK
2025-06-13 15:02:57,771 [DEBUG][       Thread-258794][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 15:02:57,771 [DEBUG][       Thread-258794][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 15:02:57,771 [DEBUG][       Thread-258794][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 15:02:57,771 [DEBUG][       Thread-258794][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 15:02:57,790 [ INFO][       Thread-258794][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 15:02:57,790 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 15:02:57,791 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 15:02:58,776 [DEBUG][       Thread-258794][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 15:02:58,776 [DEBUG][       Thread-258794][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 15:02:58,824 [DEBUG][       Thread-258794][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 15:02:58,824 [DEBUG][       Thread-258794][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 15:02:58,834 [DEBUG][       Thread-258794][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 15:02:58,844 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 15:02:58,845 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 15:02:58,856 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 15:02:58,867 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 15:02:58,868 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 15:02:58,868 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 15:02:58,881 [DEBUG][       Thread-258794][   transport.py][1871] : EOF in transport thread
2025-06-13 15:02:59,631 [DEBUG][Thread-258796 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:03:05,799 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:03:05,800 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:03:08,652 [DEBUG][Thread-258797 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:03:08,879 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 15:03:08,879 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 15:03:08,879 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 15:03:08,883 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 15:03:09,341 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 15, 3, 3), 18.08, 28.6, 0.0, 19.8, 14.22, 0, 0, 0, 2, 0, 0),)
2025-06-13 15:03:09,341 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 15:03:03
2025-06-13 15:03:09,424 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 15:03:09,430 [DEBUG][       Thread-258798][   transport.py][1871] : starting thread (client mode): 0x863ef220
2025-06-13 15:03:09,431 [DEBUG][       Thread-258798][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 15:03:09,450 [DEBUG][       Thread-258798][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 15:03:09,451 [ INFO][       Thread-258798][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 15:03:09,452 [DEBUG][       Thread-258798][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 15:03:09,452 [DEBUG][       Thread-258798][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 15:03:09,452 [DEBUG][       Thread-258798][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 15:03:09,453 [DEBUG][       Thread-258798][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:03:09,453 [DEBUG][       Thread-258798][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:03:09,453 [DEBUG][       Thread-258798][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:03:09,453 [DEBUG][       Thread-258798][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:03:09,453 [DEBUG][       Thread-258798][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 15:03:09,453 [DEBUG][       Thread-258798][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 15:03:09,453 [DEBUG][       Thread-258798][   transport.py][1871] : client lang: <none>
2025-06-13 15:03:09,453 [DEBUG][       Thread-258798][   transport.py][1871] : server lang: <none>
2025-06-13 15:03:09,453 [DEBUG][       Thread-258798][   transport.py][1871] : kex follows: False
2025-06-13 15:03:09,453 [DEBUG][       Thread-258798][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 15:03:09,453 [DEBUG][       Thread-258798][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 15:03:09,453 [DEBUG][       Thread-258798][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 15:03:09,453 [DEBUG][       Thread-258798][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 15:03:09,453 [DEBUG][       Thread-258798][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 15:03:09,453 [DEBUG][       Thread-258798][   transport.py][1871] : Compression: none
2025-06-13 15:03:09,453 [DEBUG][       Thread-258798][   transport.py][1871] : === End of kex handshake ===
2025-06-13 15:03:09,462 [DEBUG][       Thread-258798][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 15:03:09,462 [DEBUG][       Thread-258798][   transport.py][1871] : Switch to new keys ...
2025-06-13 15:03:09,463 [DEBUG][       Thread-258798][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 15:03:09,463 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 15:03:09,463 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 15:03:09,464 [DEBUG][       Thread-258798][   transport.py][1871] : userauth is OK
2025-06-13 15:03:09,488 [ INFO][       Thread-258798][   transport.py][1871] : Authentication (password) successful!
2025-06-13 15:03:09,489 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 15:03:10,166 [DEBUG][       Thread-258798][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 15:03:10,167 [DEBUG][       Thread-258798][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 15:03:10,208 [DEBUG][       Thread-258798][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 15:03:10,209 [DEBUG][       Thread-258798][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 15:03:10,211 [DEBUG][       Thread-258798][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 15:03:10,225 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 15:03:10,225 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 15:03:10,226 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 15:03:10,227 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 15:03:10,230 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 15:03:10,231 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 15:03:10,231 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 15:03:10,231 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 15:03:10,231 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.543339 -999.00  +14.00  25.44     33   -2.00 1 1 1 1 1   887    0 16.12 39.39 ----- 24.3 25.4 37.8 28.5 17.6 -32.1 16.6 -31.9 17.4 -32.2 18.5 -30.1
2025-06-13 15:03:10,231 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 15:03:10,231 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 15:03:10,231 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.543339
2025-06-13 15:03:10,231 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 15:03:10,231 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 15:03:10,231 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 15:03:10,231 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 15:03:10,232 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 15:03:10,232 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T15:03:03', tmtdew=18.08, humidity=28.6, cloud=0.0, wind=19.8, temperature=14.22, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T13:02:24.490', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 15:03:10,232 [DEBUG][       Thread-258798][   transport.py][1871] : EOF in transport thread
2025-06-13 15:03:10,302 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 15:03:10,315 [DEBUG][       Thread-258801][   transport.py][1871] : starting thread (client mode): 0x863a6e60
2025-06-13 15:03:10,315 [DEBUG][       Thread-258801][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 15:03:10,330 [DEBUG][       Thread-258801][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 15:03:10,331 [ INFO][       Thread-258801][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 15:03:10,338 [DEBUG][       Thread-258801][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 15:03:10,338 [DEBUG][       Thread-258801][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 15:03:10,338 [DEBUG][       Thread-258801][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 15:03:10,338 [DEBUG][       Thread-258801][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:03:10,338 [DEBUG][       Thread-258801][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:03:10,339 [DEBUG][       Thread-258801][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:03:10,339 [DEBUG][       Thread-258801][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:03:10,339 [DEBUG][       Thread-258801][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 15:03:10,339 [DEBUG][       Thread-258801][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 15:03:10,339 [DEBUG][       Thread-258801][   transport.py][1871] : client lang: <none>
2025-06-13 15:03:10,339 [DEBUG][       Thread-258801][   transport.py][1871] : server lang: <none>
2025-06-13 15:03:10,339 [DEBUG][       Thread-258801][   transport.py][1871] : kex follows: False
2025-06-13 15:03:10,339 [DEBUG][       Thread-258801][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 15:03:10,339 [DEBUG][       Thread-258801][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 15:03:10,339 [DEBUG][       Thread-258801][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 15:03:10,339 [DEBUG][       Thread-258801][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 15:03:10,339 [DEBUG][       Thread-258801][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 15:03:10,339 [DEBUG][       Thread-258801][   transport.py][1871] : Compression: none
2025-06-13 15:03:10,339 [DEBUG][       Thread-258801][   transport.py][1871] : === End of kex handshake ===
2025-06-13 15:03:10,398 [DEBUG][       Thread-258801][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 15:03:10,399 [DEBUG][       Thread-258801][   transport.py][1871] : Switch to new keys ...
2025-06-13 15:03:10,400 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 15:03:10,400 [DEBUG][       Thread-258801][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 15:03:10,401 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 15:03:10,454 [DEBUG][       Thread-258801][   transport.py][1871] : userauth is OK
2025-06-13 15:03:10,455 [DEBUG][       Thread-258801][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 15:03:10,455 [DEBUG][       Thread-258801][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 15:03:10,455 [DEBUG][       Thread-258801][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 15:03:10,455 [DEBUG][       Thread-258801][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 15:03:10,474 [ INFO][       Thread-258801][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 15:03:10,474 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 15:03:10,475 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 15:03:11,486 [DEBUG][       Thread-258801][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 15:03:11,487 [DEBUG][       Thread-258801][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 15:03:11,539 [DEBUG][       Thread-258801][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 15:03:11,539 [DEBUG][       Thread-258801][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 15:03:11,549 [DEBUG][       Thread-258801][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 15:03:11,558 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 15:03:11,558 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 15:03:11,567 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 15:03:11,577 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 15:03:11,577 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 15:03:11,578 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 15:03:11,585 [DEBUG][       Thread-258801][   transport.py][1871] : EOF in transport thread
2025-06-13 15:03:17,674 [DEBUG][Thread-258803 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:03:19,887 [DEBUG][Thread-258804 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:03:20,084 [DEBUG][Thread-258805 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:03:21,142 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:03:21,144 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:03:21,588 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 15:03:21,588 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 15:03:21,588 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 15:03:21,591 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 15:03:22,057 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 15, 3, 3), 18.08, 28.6, 0.0, 19.8, 14.22, 0, 0, 0, 2, 0, 0),)
2025-06-13 15:03:22,058 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 15:03:03
2025-06-13 15:03:22,138 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 15:03:22,143 [DEBUG][       Thread-258806][   transport.py][1871] : starting thread (client mode): 0x863a5870
2025-06-13 15:03:22,143 [DEBUG][       Thread-258806][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 15:03:22,166 [DEBUG][       Thread-258806][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 15:03:22,166 [ INFO][       Thread-258806][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 15:03:22,169 [DEBUG][       Thread-258806][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 15:03:22,170 [DEBUG][       Thread-258806][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 15:03:22,170 [DEBUG][       Thread-258806][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 15:03:22,170 [DEBUG][       Thread-258806][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:03:22,170 [DEBUG][       Thread-258806][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:03:22,170 [DEBUG][       Thread-258806][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:03:22,170 [DEBUG][       Thread-258806][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:03:22,170 [DEBUG][       Thread-258806][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 15:03:22,170 [DEBUG][       Thread-258806][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 15:03:22,170 [DEBUG][       Thread-258806][   transport.py][1871] : client lang: <none>
2025-06-13 15:03:22,170 [DEBUG][       Thread-258806][   transport.py][1871] : server lang: <none>
2025-06-13 15:03:22,170 [DEBUG][       Thread-258806][   transport.py][1871] : kex follows: False
2025-06-13 15:03:22,170 [DEBUG][       Thread-258806][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 15:03:22,170 [DEBUG][       Thread-258806][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 15:03:22,170 [DEBUG][       Thread-258806][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 15:03:22,170 [DEBUG][       Thread-258806][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 15:03:22,170 [DEBUG][       Thread-258806][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 15:03:22,170 [DEBUG][       Thread-258806][   transport.py][1871] : Compression: none
2025-06-13 15:03:22,170 [DEBUG][       Thread-258806][   transport.py][1871] : === End of kex handshake ===
2025-06-13 15:03:22,187 [DEBUG][       Thread-258806][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 15:03:22,188 [DEBUG][       Thread-258806][   transport.py][1871] : Switch to new keys ...
2025-06-13 15:03:22,188 [DEBUG][       Thread-258806][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 15:03:22,188 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 15:03:22,189 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 15:03:22,190 [DEBUG][       Thread-258806][   transport.py][1871] : userauth is OK
2025-06-13 15:03:22,203 [ INFO][       Thread-258806][   transport.py][1871] : Authentication (password) successful!
2025-06-13 15:03:22,203 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 15:03:22,867 [DEBUG][       Thread-258806][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 15:03:22,868 [DEBUG][       Thread-258806][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 15:03:22,909 [DEBUG][       Thread-258806][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 15:03:22,909 [DEBUG][       Thread-258806][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 15:03:22,912 [DEBUG][       Thread-258806][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 15:03:22,926 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 15:03:22,927 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 15:03:22,929 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 15:03:22,930 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 15:03:22,936 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 15:03:22,938 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 15:03:22,938 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 15:03:22,938 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 15:03:22,939 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.543686 -999.00  +13.80  21.72     32   -2.20 1 1 1 1 1   887    0 16.66 43.19 ----- 22.2 21.7 51.2 28.1 17.6 -31.6 16.6 -33.1 17.2 -32.4 18.4 -29.6
2025-06-13 15:03:22,939 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 15:03:22,939 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 15:03:22,939 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.543686
2025-06-13 15:03:22,939 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 15:03:22,940 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 15:03:22,940 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 15:03:22,940 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 15:03:22,940 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 15:03:22,940 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T15:03:03', tmtdew=18.08, humidity=28.6, cloud=0.0, wind=19.8, temperature=14.22, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T13:02:54.470', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 15:03:22,941 [DEBUG][       Thread-258806][   transport.py][1871] : EOF in transport thread
2025-06-13 15:03:23,023 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 15:03:23,033 [DEBUG][       Thread-258809][   transport.py][1871] : starting thread (client mode): 0x863ec220
2025-06-13 15:03:23,033 [DEBUG][       Thread-258809][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 15:03:23,049 [DEBUG][       Thread-258809][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 15:03:23,049 [ INFO][       Thread-258809][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 15:03:23,057 [DEBUG][       Thread-258809][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 15:03:23,057 [DEBUG][       Thread-258809][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 15:03:23,057 [DEBUG][       Thread-258809][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 15:03:23,057 [DEBUG][       Thread-258809][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:03:23,057 [DEBUG][       Thread-258809][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:03:23,057 [DEBUG][       Thread-258809][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:03:23,057 [DEBUG][       Thread-258809][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:03:23,057 [DEBUG][       Thread-258809][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 15:03:23,057 [DEBUG][       Thread-258809][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 15:03:23,057 [DEBUG][       Thread-258809][   transport.py][1871] : client lang: <none>
2025-06-13 15:03:23,057 [DEBUG][       Thread-258809][   transport.py][1871] : server lang: <none>
2025-06-13 15:03:23,057 [DEBUG][       Thread-258809][   transport.py][1871] : kex follows: False
2025-06-13 15:03:23,057 [DEBUG][       Thread-258809][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 15:03:23,057 [DEBUG][       Thread-258809][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 15:03:23,057 [DEBUG][       Thread-258809][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 15:03:23,057 [DEBUG][       Thread-258809][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 15:03:23,058 [DEBUG][       Thread-258809][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 15:03:23,058 [DEBUG][       Thread-258809][   transport.py][1871] : Compression: none
2025-06-13 15:03:23,058 [DEBUG][       Thread-258809][   transport.py][1871] : === End of kex handshake ===
2025-06-13 15:03:23,114 [DEBUG][       Thread-258809][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 15:03:23,115 [DEBUG][       Thread-258809][   transport.py][1871] : Switch to new keys ...
2025-06-13 15:03:23,116 [DEBUG][       Thread-258809][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 15:03:23,116 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 15:03:23,117 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 15:03:23,170 [DEBUG][       Thread-258809][   transport.py][1871] : userauth is OK
2025-06-13 15:03:23,171 [DEBUG][       Thread-258809][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 15:03:23,171 [DEBUG][       Thread-258809][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 15:03:23,171 [DEBUG][       Thread-258809][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 15:03:23,171 [DEBUG][       Thread-258809][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 15:03:23,190 [ INFO][       Thread-258809][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 15:03:23,190 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 15:03:23,191 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 15:03:24,185 [DEBUG][       Thread-258809][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 15:03:24,185 [DEBUG][       Thread-258809][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 15:03:24,237 [DEBUG][       Thread-258809][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 15:03:24,237 [DEBUG][       Thread-258809][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 15:03:24,247 [DEBUG][       Thread-258809][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 15:03:24,260 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 15:03:24,260 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 15:03:24,275 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 15:03:24,287 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 15:03:24,288 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 15:03:24,288 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 15:03:24,299 [DEBUG][       Thread-258809][   transport.py][1871] : EOF in transport thread
2025-06-13 15:03:26,707 [DEBUG][Thread-258811 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:03:34,299 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 15:03:34,299 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 15:03:34,299 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 15:03:34,302 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 15:03:34,754 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 15, 3, 3), 18.08, 28.6, 0.0, 19.8, 14.22, 0, 0, 0, 2, 0, 0),)
2025-06-13 15:03:34,754 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 15:03:03
2025-06-13 15:03:34,836 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 15:03:34,840 [DEBUG][       Thread-258812][   transport.py][1871] : starting thread (client mode): 0x863ee290
2025-06-13 15:03:34,840 [DEBUG][       Thread-258812][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 15:03:34,860 [DEBUG][       Thread-258812][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 15:03:34,860 [ INFO][       Thread-258812][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 15:03:34,863 [DEBUG][       Thread-258812][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 15:03:34,863 [DEBUG][       Thread-258812][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 15:03:34,863 [DEBUG][       Thread-258812][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 15:03:34,863 [DEBUG][       Thread-258812][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:03:34,863 [DEBUG][       Thread-258812][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:03:34,863 [DEBUG][       Thread-258812][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:03:34,863 [DEBUG][       Thread-258812][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:03:34,863 [DEBUG][       Thread-258812][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 15:03:34,863 [DEBUG][       Thread-258812][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 15:03:34,863 [DEBUG][       Thread-258812][   transport.py][1871] : client lang: <none>
2025-06-13 15:03:34,863 [DEBUG][       Thread-258812][   transport.py][1871] : server lang: <none>
2025-06-13 15:03:34,864 [DEBUG][       Thread-258812][   transport.py][1871] : kex follows: False
2025-06-13 15:03:34,864 [DEBUG][       Thread-258812][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 15:03:34,864 [DEBUG][       Thread-258812][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 15:03:34,864 [DEBUG][       Thread-258812][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 15:03:34,864 [DEBUG][       Thread-258812][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 15:03:34,864 [DEBUG][       Thread-258812][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 15:03:34,864 [DEBUG][       Thread-258812][   transport.py][1871] : Compression: none
2025-06-13 15:03:34,864 [DEBUG][       Thread-258812][   transport.py][1871] : === End of kex handshake ===
2025-06-13 15:03:34,879 [DEBUG][       Thread-258812][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 15:03:34,880 [DEBUG][       Thread-258812][   transport.py][1871] : Switch to new keys ...
2025-06-13 15:03:34,880 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 15:03:34,880 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 15:03:34,881 [DEBUG][       Thread-258812][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 15:03:34,881 [DEBUG][       Thread-258812][   transport.py][1871] : userauth is OK
2025-06-13 15:03:34,907 [ INFO][       Thread-258812][   transport.py][1871] : Authentication (password) successful!
2025-06-13 15:03:34,908 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 15:03:35,592 [DEBUG][       Thread-258812][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 15:03:35,592 [DEBUG][       Thread-258812][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 15:03:35,633 [DEBUG][       Thread-258812][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 15:03:35,633 [DEBUG][       Thread-258812][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 15:03:35,637 [DEBUG][       Thread-258812][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 15:03:35,649 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 15:03:35,650 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 15:03:35,652 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 15:03:35,653 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 15:03:35,659 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 15:03:35,661 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 15:03:35,661 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 15:03:35,662 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 15:03:35,662 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.543686 -999.00  +13.80  21.72     32   -2.20 1 1 1 1 1   887    0 16.66 43.19 ----- 22.2 21.7 51.2 28.1 17.6 -31.6 16.6 -33.1 17.2 -32.4 18.4 -29.6
2025-06-13 15:03:35,662 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 15:03:35,662 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 15:03:35,662 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.543686
2025-06-13 15:03:35,663 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 15:03:35,663 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 15:03:35,663 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 15:03:35,663 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 15:03:35,663 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 15:03:35,664 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T15:03:03', tmtdew=18.08, humidity=28.6, cloud=0.0, wind=19.8, temperature=14.22, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T13:02:54.470', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 15:03:35,665 [DEBUG][       Thread-258812][   transport.py][1871] : EOF in transport thread
2025-06-13 15:03:35,728 [DEBUG][Thread-258815 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:03:35,747 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 15:03:35,763 [DEBUG][       Thread-258816][   transport.py][1871] : starting thread (client mode): 0xc54b6c20
2025-06-13 15:03:35,763 [DEBUG][       Thread-258816][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 15:03:35,787 [DEBUG][       Thread-258816][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 15:03:35,787 [ INFO][       Thread-258816][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 15:03:35,796 [DEBUG][       Thread-258816][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 15:03:35,796 [DEBUG][       Thread-258816][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 15:03:35,796 [DEBUG][       Thread-258816][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 15:03:35,796 [DEBUG][       Thread-258816][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:03:35,796 [DEBUG][       Thread-258816][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:03:35,796 [DEBUG][       Thread-258816][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:03:35,797 [DEBUG][       Thread-258816][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:03:35,797 [DEBUG][       Thread-258816][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 15:03:35,797 [DEBUG][       Thread-258816][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 15:03:35,797 [DEBUG][       Thread-258816][   transport.py][1871] : client lang: <none>
2025-06-13 15:03:35,797 [DEBUG][       Thread-258816][   transport.py][1871] : server lang: <none>
2025-06-13 15:03:35,797 [DEBUG][       Thread-258816][   transport.py][1871] : kex follows: False
2025-06-13 15:03:35,797 [DEBUG][       Thread-258816][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 15:03:35,797 [DEBUG][       Thread-258816][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 15:03:35,797 [DEBUG][       Thread-258816][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 15:03:35,797 [DEBUG][       Thread-258816][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 15:03:35,797 [DEBUG][       Thread-258816][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 15:03:35,797 [DEBUG][       Thread-258816][   transport.py][1871] : Compression: none
2025-06-13 15:03:35,797 [DEBUG][       Thread-258816][   transport.py][1871] : === End of kex handshake ===
2025-06-13 15:03:35,858 [DEBUG][       Thread-258816][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 15:03:35,859 [DEBUG][       Thread-258816][   transport.py][1871] : Switch to new keys ...
2025-06-13 15:03:35,859 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 15:03:35,860 [DEBUG][       Thread-258816][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 15:03:35,861 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 15:03:35,931 [DEBUG][       Thread-258816][   transport.py][1871] : userauth is OK
2025-06-13 15:03:35,931 [DEBUG][       Thread-258816][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 15:03:35,931 [DEBUG][       Thread-258816][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 15:03:35,931 [DEBUG][       Thread-258816][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 15:03:35,932 [DEBUG][       Thread-258816][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 15:03:35,954 [ INFO][       Thread-258816][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 15:03:35,955 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 15:03:35,955 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 15:03:36,922 [DEBUG][       Thread-258816][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 15:03:36,922 [DEBUG][       Thread-258816][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 15:03:36,977 [DEBUG][       Thread-258816][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 15:03:36,977 [DEBUG][       Thread-258816][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 15:03:36,995 [DEBUG][       Thread-258816][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 15:03:37,010 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 15:03:37,010 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 15:03:37,018 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 15:03:37,027 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 15:03:37,027 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 15:03:37,027 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 15:03:37,035 [DEBUG][       Thread-258816][   transport.py][1871] : EOF in transport thread
2025-06-13 15:03:44,748 [DEBUG][Thread-258818 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:03:47,036 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 15:03:47,036 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 15:03:47,036 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 15:03:47,037 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 15:03:47,495 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 15, 3, 35), 18.17, 28.17, 0.0, 17.91, 14.07, 0, 0, 0, 2, 0, 0),)
2025-06-13 15:03:47,495 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 15:03:35
2025-06-13 15:03:47,577 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 15:03:47,580 [DEBUG][       Thread-258819][   transport.py][1871] : starting thread (client mode): 0x863a5930
2025-06-13 15:03:47,580 [DEBUG][       Thread-258819][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 15:03:47,599 [DEBUG][       Thread-258819][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 15:03:47,599 [ INFO][       Thread-258819][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 15:03:47,603 [DEBUG][       Thread-258819][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 15:03:47,603 [DEBUG][       Thread-258819][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 15:03:47,603 [DEBUG][       Thread-258819][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 15:03:47,603 [DEBUG][       Thread-258819][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:03:47,603 [DEBUG][       Thread-258819][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:03:47,603 [DEBUG][       Thread-258819][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:03:47,603 [DEBUG][       Thread-258819][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:03:47,603 [DEBUG][       Thread-258819][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 15:03:47,603 [DEBUG][       Thread-258819][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 15:03:47,603 [DEBUG][       Thread-258819][   transport.py][1871] : client lang: <none>
2025-06-13 15:03:47,603 [DEBUG][       Thread-258819][   transport.py][1871] : server lang: <none>
2025-06-13 15:03:47,603 [DEBUG][       Thread-258819][   transport.py][1871] : kex follows: False
2025-06-13 15:03:47,603 [DEBUG][       Thread-258819][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 15:03:47,603 [DEBUG][       Thread-258819][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 15:03:47,603 [DEBUG][       Thread-258819][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 15:03:47,603 [DEBUG][       Thread-258819][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 15:03:47,603 [DEBUG][       Thread-258819][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 15:03:47,603 [DEBUG][       Thread-258819][   transport.py][1871] : Compression: none
2025-06-13 15:03:47,603 [DEBUG][       Thread-258819][   transport.py][1871] : === End of kex handshake ===
2025-06-13 15:03:47,619 [DEBUG][       Thread-258819][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 15:03:47,619 [DEBUG][       Thread-258819][   transport.py][1871] : Switch to new keys ...
2025-06-13 15:03:47,619 [DEBUG][       Thread-258819][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 15:03:47,619 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 15:03:47,619 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 15:03:47,620 [DEBUG][       Thread-258819][   transport.py][1871] : userauth is OK
2025-06-13 15:03:47,632 [ INFO][       Thread-258819][   transport.py][1871] : Authentication (password) successful!
2025-06-13 15:03:47,632 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 15:03:48,288 [DEBUG][       Thread-258819][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 15:03:48,289 [DEBUG][       Thread-258819][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 15:03:48,333 [DEBUG][       Thread-258819][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 15:03:48,333 [DEBUG][       Thread-258819][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 15:03:48,336 [DEBUG][       Thread-258819][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 15:03:48,350 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 15:03:48,350 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 15:03:48,352 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 15:03:48,353 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 15:03:48,359 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 15:03:48,360 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 15:03:48,361 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 15:03:48,361 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 15:03:48,361 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.544033 -999.00  +13.80  22.72     33   -1.80 1 1 1 1 1   887    0 16.47 45.47 ----- 22.9 22.7 25.4 26.7 17.6 -31.5 16.6 -32.9 17.2 -31.3 18.4 -29.7
2025-06-13 15:03:48,361 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 15:03:48,361 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 15:03:48,362 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.544033
2025-06-13 15:03:48,362 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 15:03:48,362 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 15:03:48,362 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 15:03:48,363 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 15:03:48,363 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 15:03:48,363 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T15:03:35', tmtdew=18.17, humidity=28.17, cloud=0.0, wind=17.91, temperature=14.07, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T13:03:24.451', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 15:03:48,364 [DEBUG][       Thread-258819][   transport.py][1871] : EOF in transport thread
2025-06-13 15:03:48,453 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 15:03:48,468 [DEBUG][       Thread-258822][   transport.py][1871] : starting thread (client mode): 0x863ec250
2025-06-13 15:03:48,468 [DEBUG][       Thread-258822][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 15:03:48,486 [DEBUG][       Thread-258822][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 15:03:48,486 [ INFO][       Thread-258822][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 15:03:48,495 [DEBUG][       Thread-258822][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 15:03:48,495 [DEBUG][       Thread-258822][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 15:03:48,495 [DEBUG][       Thread-258822][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 15:03:48,495 [DEBUG][       Thread-258822][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:03:48,495 [DEBUG][       Thread-258822][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:03:48,495 [DEBUG][       Thread-258822][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:03:48,495 [DEBUG][       Thread-258822][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:03:48,495 [DEBUG][       Thread-258822][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 15:03:48,495 [DEBUG][       Thread-258822][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 15:03:48,496 [DEBUG][       Thread-258822][   transport.py][1871] : client lang: <none>
2025-06-13 15:03:48,496 [DEBUG][       Thread-258822][   transport.py][1871] : server lang: <none>
2025-06-13 15:03:48,496 [DEBUG][       Thread-258822][   transport.py][1871] : kex follows: False
2025-06-13 15:03:48,496 [DEBUG][       Thread-258822][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 15:03:48,496 [DEBUG][       Thread-258822][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 15:03:48,496 [DEBUG][       Thread-258822][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 15:03:48,496 [DEBUG][       Thread-258822][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 15:03:48,496 [DEBUG][       Thread-258822][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 15:03:48,496 [DEBUG][       Thread-258822][   transport.py][1871] : Compression: none
2025-06-13 15:03:48,496 [DEBUG][       Thread-258822][   transport.py][1871] : === End of kex handshake ===
2025-06-13 15:03:48,558 [DEBUG][       Thread-258822][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 15:03:48,558 [DEBUG][       Thread-258822][   transport.py][1871] : Switch to new keys ...
2025-06-13 15:03:48,559 [DEBUG][       Thread-258822][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 15:03:48,559 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 15:03:48,560 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 15:03:48,618 [DEBUG][       Thread-258822][   transport.py][1871] : userauth is OK
2025-06-13 15:03:48,618 [DEBUG][       Thread-258822][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 15:03:48,618 [DEBUG][       Thread-258822][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 15:03:48,618 [DEBUG][       Thread-258822][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 15:03:48,618 [DEBUG][       Thread-258822][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 15:03:48,637 [ INFO][       Thread-258822][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 15:03:48,637 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 15:03:48,637 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 15:03:49,669 [DEBUG][       Thread-258822][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 15:03:49,669 [DEBUG][       Thread-258822][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 15:03:49,719 [DEBUG][       Thread-258822][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 15:03:49,720 [DEBUG][       Thread-258822][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 15:03:49,728 [DEBUG][       Thread-258822][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 15:03:49,737 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 15:03:49,737 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 15:03:49,745 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 15:03:49,754 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 15:03:49,754 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 15:03:49,755 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 15:03:49,762 [DEBUG][       Thread-258822][   transport.py][1871] : EOF in transport thread
2025-06-13 15:03:53,765 [DEBUG][Thread-258824 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:03:59,756 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 15:03:59,757 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 15:03:59,757 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 15:03:59,759 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 15:04:00,222 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 15, 3, 35), 18.17, 28.17, 0.0, 17.91, 14.07, 0, 0, 0, 2, 0, 0),)
2025-06-13 15:04:00,223 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 15:03:35
2025-06-13 15:04:00,304 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 15:04:00,307 [DEBUG][       Thread-258825][   transport.py][1871] : starting thread (client mode): 0x863ef5b0
2025-06-13 15:04:00,308 [DEBUG][       Thread-258825][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 15:04:00,328 [DEBUG][       Thread-258825][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 15:04:00,328 [ INFO][       Thread-258825][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 15:04:00,331 [DEBUG][       Thread-258825][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 15:04:00,331 [DEBUG][       Thread-258825][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 15:04:00,331 [DEBUG][       Thread-258825][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 15:04:00,331 [DEBUG][       Thread-258825][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:04:00,331 [DEBUG][       Thread-258825][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:04:00,331 [DEBUG][       Thread-258825][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:04:00,331 [DEBUG][       Thread-258825][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:04:00,331 [DEBUG][       Thread-258825][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 15:04:00,331 [DEBUG][       Thread-258825][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 15:04:00,331 [DEBUG][       Thread-258825][   transport.py][1871] : client lang: <none>
2025-06-13 15:04:00,331 [DEBUG][       Thread-258825][   transport.py][1871] : server lang: <none>
2025-06-13 15:04:00,331 [DEBUG][       Thread-258825][   transport.py][1871] : kex follows: False
2025-06-13 15:04:00,331 [DEBUG][       Thread-258825][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 15:04:00,331 [DEBUG][       Thread-258825][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 15:04:00,331 [DEBUG][       Thread-258825][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 15:04:00,331 [DEBUG][       Thread-258825][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 15:04:00,331 [DEBUG][       Thread-258825][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 15:04:00,331 [DEBUG][       Thread-258825][   transport.py][1871] : Compression: none
2025-06-13 15:04:00,331 [DEBUG][       Thread-258825][   transport.py][1871] : === End of kex handshake ===
2025-06-13 15:04:00,341 [DEBUG][       Thread-258825][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 15:04:00,341 [DEBUG][       Thread-258825][   transport.py][1871] : Switch to new keys ...
2025-06-13 15:04:00,342 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 15:04:00,342 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 15:04:00,342 [DEBUG][       Thread-258825][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 15:04:00,343 [DEBUG][       Thread-258825][   transport.py][1871] : userauth is OK
2025-06-13 15:04:00,356 [ INFO][       Thread-258825][   transport.py][1871] : Authentication (password) successful!
2025-06-13 15:04:00,357 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 15:04:01,026 [DEBUG][       Thread-258825][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 15:04:01,026 [DEBUG][       Thread-258825][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 15:04:01,069 [DEBUG][       Thread-258825][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 15:04:01,069 [DEBUG][       Thread-258825][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 15:04:01,073 [DEBUG][       Thread-258825][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 15:04:01,084 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 15:04:01,084 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 15:04:01,086 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 15:04:01,088 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 15:04:01,093 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 15:04:01,095 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 15:04:01,096 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 15:04:01,096 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 15:04:01,097 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.544033 -999.00  +13.80  22.72     33   -1.80 1 1 1 1 1   887    0 16.47 45.47 ----- 22.9 22.7 25.4 26.7 17.6 -31.5 16.6 -32.9 17.2 -31.3 18.4 -29.7
2025-06-13 15:04:01,097 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 15:04:01,097 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 15:04:01,097 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.544033
2025-06-13 15:04:01,097 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 15:04:01,098 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 15:04:01,098 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 15:04:01,098 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 15:04:01,098 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 15:04:01,098 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T15:03:35', tmtdew=18.17, humidity=28.17, cloud=0.0, wind=17.91, temperature=14.07, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T13:03:24.451', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 15:04:01,099 [DEBUG][       Thread-258825][   transport.py][1871] : EOF in transport thread
2025-06-13 15:04:01,182 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 15:04:01,193 [DEBUG][       Thread-258828][   transport.py][1871] : starting thread (client mode): 0x863a5780
2025-06-13 15:04:01,193 [DEBUG][       Thread-258828][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 15:04:01,208 [DEBUG][       Thread-258828][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 15:04:01,208 [ INFO][       Thread-258828][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 15:04:01,216 [DEBUG][       Thread-258828][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 15:04:01,216 [DEBUG][       Thread-258828][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 15:04:01,216 [DEBUG][       Thread-258828][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 15:04:01,216 [DEBUG][       Thread-258828][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:04:01,216 [DEBUG][       Thread-258828][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:04:01,216 [DEBUG][       Thread-258828][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:04:01,216 [DEBUG][       Thread-258828][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:04:01,216 [DEBUG][       Thread-258828][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 15:04:01,216 [DEBUG][       Thread-258828][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 15:04:01,216 [DEBUG][       Thread-258828][   transport.py][1871] : client lang: <none>
2025-06-13 15:04:01,216 [DEBUG][       Thread-258828][   transport.py][1871] : server lang: <none>
2025-06-13 15:04:01,216 [DEBUG][       Thread-258828][   transport.py][1871] : kex follows: False
2025-06-13 15:04:01,216 [DEBUG][       Thread-258828][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 15:04:01,216 [DEBUG][       Thread-258828][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 15:04:01,216 [DEBUG][       Thread-258828][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 15:04:01,216 [DEBUG][       Thread-258828][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 15:04:01,216 [DEBUG][       Thread-258828][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 15:04:01,216 [DEBUG][       Thread-258828][   transport.py][1871] : Compression: none
2025-06-13 15:04:01,217 [DEBUG][       Thread-258828][   transport.py][1871] : === End of kex handshake ===
2025-06-13 15:04:01,274 [DEBUG][       Thread-258828][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 15:04:01,275 [DEBUG][       Thread-258828][   transport.py][1871] : Switch to new keys ...
2025-06-13 15:04:01,275 [DEBUG][       Thread-258828][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 15:04:01,276 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 15:04:01,276 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 15:04:01,330 [DEBUG][       Thread-258828][   transport.py][1871] : userauth is OK
2025-06-13 15:04:01,330 [DEBUG][       Thread-258828][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 15:04:01,330 [DEBUG][       Thread-258828][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 15:04:01,330 [DEBUG][       Thread-258828][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 15:04:01,331 [DEBUG][       Thread-258828][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 15:04:01,349 [ INFO][       Thread-258828][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 15:04:01,349 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 15:04:01,350 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 15:04:02,349 [DEBUG][       Thread-258828][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 15:04:02,349 [DEBUG][       Thread-258828][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 15:04:02,401 [DEBUG][       Thread-258828][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 15:04:02,402 [DEBUG][       Thread-258828][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 15:04:02,411 [DEBUG][       Thread-258828][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 15:04:02,420 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 15:04:02,420 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 15:04:02,429 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 15:04:02,438 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 15:04:02,439 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 15:04:02,439 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 15:04:02,447 [DEBUG][       Thread-258828][   transport.py][1871] : EOF in transport thread
2025-06-13 15:04:02,790 [DEBUG][Thread-258830 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:04:05,937 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:04:05,938 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:04:11,813 [DEBUG][Thread-258831 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:04:12,450 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 15:04:12,450 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 15:04:12,450 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 15:04:12,453 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 15:04:12,922 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 15, 4, 7), 17.98, 28.54, 0.0, 20.98, 14.02, 0, 0, 0, 2, 0, 0),)
2025-06-13 15:04:12,922 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 15:04:07
2025-06-13 15:04:13,004 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 15:04:13,010 [DEBUG][       Thread-258832][   transport.py][1871] : starting thread (client mode): 0x863ec730
2025-06-13 15:04:13,010 [DEBUG][       Thread-258832][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 15:04:13,031 [DEBUG][       Thread-258832][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 15:04:13,031 [ INFO][       Thread-258832][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 15:04:13,035 [DEBUG][       Thread-258832][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 15:04:13,035 [DEBUG][       Thread-258832][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 15:04:13,035 [DEBUG][       Thread-258832][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 15:04:13,035 [DEBUG][       Thread-258832][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:04:13,035 [DEBUG][       Thread-258832][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:04:13,035 [DEBUG][       Thread-258832][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:04:13,035 [DEBUG][       Thread-258832][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:04:13,035 [DEBUG][       Thread-258832][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 15:04:13,035 [DEBUG][       Thread-258832][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 15:04:13,035 [DEBUG][       Thread-258832][   transport.py][1871] : client lang: <none>
2025-06-13 15:04:13,035 [DEBUG][       Thread-258832][   transport.py][1871] : server lang: <none>
2025-06-13 15:04:13,035 [DEBUG][       Thread-258832][   transport.py][1871] : kex follows: False
2025-06-13 15:04:13,035 [DEBUG][       Thread-258832][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 15:04:13,035 [DEBUG][       Thread-258832][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 15:04:13,035 [DEBUG][       Thread-258832][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 15:04:13,035 [DEBUG][       Thread-258832][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 15:04:13,036 [DEBUG][       Thread-258832][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 15:04:13,036 [DEBUG][       Thread-258832][   transport.py][1871] : Compression: none
2025-06-13 15:04:13,036 [DEBUG][       Thread-258832][   transport.py][1871] : === End of kex handshake ===
2025-06-13 15:04:13,052 [DEBUG][       Thread-258832][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 15:04:13,053 [DEBUG][       Thread-258832][   transport.py][1871] : Switch to new keys ...
2025-06-13 15:04:13,053 [DEBUG][       Thread-258832][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 15:04:13,053 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 15:04:13,054 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 15:04:13,055 [DEBUG][       Thread-258832][   transport.py][1871] : userauth is OK
2025-06-13 15:04:13,068 [ INFO][       Thread-258832][   transport.py][1871] : Authentication (password) successful!
2025-06-13 15:04:13,069 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 15:04:13,669 [DEBUG][       Thread-258832][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 15:04:13,670 [DEBUG][       Thread-258832][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 15:04:13,713 [DEBUG][       Thread-258832][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 15:04:13,713 [DEBUG][       Thread-258832][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 15:04:13,716 [DEBUG][       Thread-258832][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 15:04:13,728 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 15:04:13,729 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 15:04:13,731 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 15:04:13,733 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 15:04:13,738 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 15:04:13,740 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 15:04:13,741 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 15:04:13,741 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 15:04:13,741 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.544033 -999.00  +13.80  22.72     33   -1.80 1 1 1 1 1   887    0 16.47 45.47 ----- 22.9 22.7 25.4 26.7 17.6 -31.5 16.6 -32.9 17.2 -31.3 18.4 -29.7
2025-06-13 15:04:13,741 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 15:04:13,742 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 15:04:13,742 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.544033
2025-06-13 15:04:13,742 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 15:04:13,743 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 15:04:13,743 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 15:04:13,743 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 15:04:13,743 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 15:04:13,743 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T15:04:07', tmtdew=17.98, humidity=28.54, cloud=0.0, wind=20.98, temperature=14.02, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T13:03:24.451', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 15:04:13,743 [DEBUG][       Thread-258832][   transport.py][1871] : EOF in transport thread
2025-06-13 15:04:13,827 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 15:04:13,839 [DEBUG][       Thread-258835][   transport.py][1871] : starting thread (client mode): 0x863a7a90
2025-06-13 15:04:13,839 [DEBUG][       Thread-258835][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 15:04:13,855 [DEBUG][       Thread-258835][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 15:04:13,855 [ INFO][       Thread-258835][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 15:04:13,864 [DEBUG][       Thread-258835][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 15:04:13,864 [DEBUG][       Thread-258835][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 15:04:13,864 [DEBUG][       Thread-258835][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 15:04:13,864 [DEBUG][       Thread-258835][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:04:13,864 [DEBUG][       Thread-258835][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:04:13,864 [DEBUG][       Thread-258835][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:04:13,864 [DEBUG][       Thread-258835][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:04:13,864 [DEBUG][       Thread-258835][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 15:04:13,864 [DEBUG][       Thread-258835][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 15:04:13,864 [DEBUG][       Thread-258835][   transport.py][1871] : client lang: <none>
2025-06-13 15:04:13,864 [DEBUG][       Thread-258835][   transport.py][1871] : server lang: <none>
2025-06-13 15:04:13,864 [DEBUG][       Thread-258835][   transport.py][1871] : kex follows: False
2025-06-13 15:04:13,864 [DEBUG][       Thread-258835][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 15:04:13,864 [DEBUG][       Thread-258835][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 15:04:13,865 [DEBUG][       Thread-258835][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 15:04:13,865 [DEBUG][       Thread-258835][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 15:04:13,865 [DEBUG][       Thread-258835][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 15:04:13,865 [DEBUG][       Thread-258835][   transport.py][1871] : Compression: none
2025-06-13 15:04:13,865 [DEBUG][       Thread-258835][   transport.py][1871] : === End of kex handshake ===
2025-06-13 15:04:13,922 [DEBUG][       Thread-258835][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 15:04:13,923 [DEBUG][       Thread-258835][   transport.py][1871] : Switch to new keys ...
2025-06-13 15:04:13,923 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 15:04:13,924 [DEBUG][       Thread-258835][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 15:04:13,925 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 15:04:13,978 [DEBUG][       Thread-258835][   transport.py][1871] : userauth is OK
2025-06-13 15:04:13,978 [DEBUG][       Thread-258835][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 15:04:13,978 [DEBUG][       Thread-258835][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 15:04:13,978 [DEBUG][       Thread-258835][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 15:04:13,978 [DEBUG][       Thread-258835][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 15:04:13,997 [ INFO][       Thread-258835][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 15:04:13,998 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 15:04:13,998 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 15:04:14,994 [DEBUG][       Thread-258835][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 15:04:14,995 [DEBUG][       Thread-258835][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 15:04:15,044 [DEBUG][       Thread-258835][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 15:04:15,044 [DEBUG][       Thread-258835][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 15:04:15,053 [DEBUG][       Thread-258835][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 15:04:15,062 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 15:04:15,063 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 15:04:15,071 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 15:04:15,081 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 15:04:15,081 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 15:04:15,081 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 15:04:15,089 [DEBUG][       Thread-258835][   transport.py][1871] : EOF in transport thread
2025-06-13 15:04:19,939 [DEBUG][Thread-258837 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:04:20,836 [DEBUG][Thread-258838 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:04:21,225 [DEBUG][Thread-258839 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:04:22,306 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:04:22,307 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:04:25,092 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 15:04:25,092 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 15:04:25,092 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 15:04:25,095 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 15:04:25,551 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 15, 4, 7), 17.98, 28.54, 0.0, 20.98, 14.02, 0, 0, 0, 2, 0, 0),)
2025-06-13 15:04:25,551 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 15:04:07
2025-06-13 15:04:25,633 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 15:04:25,637 [DEBUG][       Thread-258840][   transport.py][1871] : starting thread (client mode): 0x863ec610
2025-06-13 15:04:25,637 [DEBUG][       Thread-258840][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 15:04:25,658 [DEBUG][       Thread-258840][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 15:04:25,658 [ INFO][       Thread-258840][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 15:04:25,661 [DEBUG][       Thread-258840][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 15:04:25,661 [DEBUG][       Thread-258840][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 15:04:25,661 [DEBUG][       Thread-258840][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 15:04:25,661 [DEBUG][       Thread-258840][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:04:25,661 [DEBUG][       Thread-258840][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:04:25,661 [DEBUG][       Thread-258840][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:04:25,661 [DEBUG][       Thread-258840][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:04:25,661 [DEBUG][       Thread-258840][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 15:04:25,661 [DEBUG][       Thread-258840][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 15:04:25,661 [DEBUG][       Thread-258840][   transport.py][1871] : client lang: <none>
2025-06-13 15:04:25,661 [DEBUG][       Thread-258840][   transport.py][1871] : server lang: <none>
2025-06-13 15:04:25,661 [DEBUG][       Thread-258840][   transport.py][1871] : kex follows: False
2025-06-13 15:04:25,661 [DEBUG][       Thread-258840][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 15:04:25,661 [DEBUG][       Thread-258840][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 15:04:25,661 [DEBUG][       Thread-258840][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 15:04:25,661 [DEBUG][       Thread-258840][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 15:04:25,661 [DEBUG][       Thread-258840][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 15:04:25,661 [DEBUG][       Thread-258840][   transport.py][1871] : Compression: none
2025-06-13 15:04:25,661 [DEBUG][       Thread-258840][   transport.py][1871] : === End of kex handshake ===
2025-06-13 15:04:25,678 [DEBUG][       Thread-258840][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 15:04:25,678 [DEBUG][       Thread-258840][   transport.py][1871] : Switch to new keys ...
2025-06-13 15:04:25,679 [DEBUG][       Thread-258840][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 15:04:25,679 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 15:04:25,679 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 15:04:25,681 [DEBUG][       Thread-258840][   transport.py][1871] : userauth is OK
2025-06-13 15:04:25,694 [ INFO][       Thread-258840][   transport.py][1871] : Authentication (password) successful!
2025-06-13 15:04:25,694 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 15:04:26,349 [DEBUG][       Thread-258840][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 15:04:26,349 [DEBUG][       Thread-258840][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 15:04:26,393 [DEBUG][       Thread-258840][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 15:04:26,393 [DEBUG][       Thread-258840][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 15:04:26,397 [DEBUG][       Thread-258840][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 15:04:26,409 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 15:04:26,409 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 15:04:26,411 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 15:04:26,413 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 15:04:26,419 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 15:04:26,421 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 15:04:26,421 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 15:04:26,422 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 15:04:26,422 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.544380 -999.00  +13.80  27.80     33   -2.10 1 1 1 1 1   887    0 16.45 44.05 ----- 28.4 27.8 50.0 32.6 17.6 -31.9 16.6 -33.2 17.3 -31.4 18.4 -30.2
2025-06-13 15:04:26,422 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 15:04:26,422 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 15:04:26,422 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.544380
2025-06-13 15:04:26,423 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 15:04:26,423 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 15:04:26,423 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 15:04:26,423 [DEBUG][       Thread-258840][   transport.py][1871] : EOF in transport thread
2025-06-13 15:04:26,424 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 15:04:26,424 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 15:04:26,424 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T15:04:07', tmtdew=17.98, humidity=28.54, cloud=0.0, wind=20.98, temperature=14.02, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T13:03:54.432', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 15:04:26,508 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 15:04:26,518 [DEBUG][       Thread-258843][   transport.py][1871] : starting thread (client mode): 0x863a75b0
2025-06-13 15:04:26,518 [DEBUG][       Thread-258843][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 15:04:26,532 [DEBUG][       Thread-258843][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 15:04:26,533 [ INFO][       Thread-258843][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 15:04:26,540 [DEBUG][       Thread-258843][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 15:04:26,540 [DEBUG][       Thread-258843][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 15:04:26,541 [DEBUG][       Thread-258843][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 15:04:26,541 [DEBUG][       Thread-258843][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:04:26,541 [DEBUG][       Thread-258843][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:04:26,541 [DEBUG][       Thread-258843][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:04:26,541 [DEBUG][       Thread-258843][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:04:26,541 [DEBUG][       Thread-258843][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 15:04:26,541 [DEBUG][       Thread-258843][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 15:04:26,541 [DEBUG][       Thread-258843][   transport.py][1871] : client lang: <none>
2025-06-13 15:04:26,541 [DEBUG][       Thread-258843][   transport.py][1871] : server lang: <none>
2025-06-13 15:04:26,541 [DEBUG][       Thread-258843][   transport.py][1871] : kex follows: False
2025-06-13 15:04:26,541 [DEBUG][       Thread-258843][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 15:04:26,541 [DEBUG][       Thread-258843][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 15:04:26,541 [DEBUG][       Thread-258843][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 15:04:26,541 [DEBUG][       Thread-258843][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 15:04:26,541 [DEBUG][       Thread-258843][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 15:04:26,541 [DEBUG][       Thread-258843][   transport.py][1871] : Compression: none
2025-06-13 15:04:26,541 [DEBUG][       Thread-258843][   transport.py][1871] : === End of kex handshake ===
2025-06-13 15:04:26,598 [DEBUG][       Thread-258843][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 15:04:26,599 [DEBUG][       Thread-258843][   transport.py][1871] : Switch to new keys ...
2025-06-13 15:04:26,600 [DEBUG][       Thread-258843][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 15:04:26,600 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 15:04:26,601 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 15:04:26,657 [DEBUG][       Thread-258843][   transport.py][1871] : userauth is OK
2025-06-13 15:04:26,657 [DEBUG][       Thread-258843][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 15:04:26,657 [DEBUG][       Thread-258843][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 15:04:26,657 [DEBUG][       Thread-258843][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 15:04:26,657 [DEBUG][       Thread-258843][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 15:04:26,674 [ INFO][       Thread-258843][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 15:04:26,674 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 15:04:26,675 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 15:04:27,695 [DEBUG][       Thread-258843][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 15:04:27,695 [DEBUG][       Thread-258843][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 15:04:27,744 [DEBUG][       Thread-258843][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 15:04:27,744 [DEBUG][       Thread-258843][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 15:04:27,753 [DEBUG][       Thread-258843][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 15:04:27,762 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 15:04:27,762 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 15:04:27,771 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 15:04:27,780 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 15:04:27,780 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 15:04:27,781 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 15:04:27,796 [DEBUG][       Thread-258843][   transport.py][1871] : EOF in transport thread
2025-06-13 15:04:29,871 [DEBUG][Thread-258845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:04:37,791 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 15:04:37,792 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 15:04:37,792 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 15:04:37,794 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 15:04:38,250 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 15, 4, 7), 17.98, 28.54, 0.0, 20.98, 14.02, 0, 0, 0, 2, 0, 0),)
2025-06-13 15:04:38,250 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 15:04:07
2025-06-13 15:04:38,332 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 15:04:38,338 [DEBUG][       Thread-258846][   transport.py][1871] : starting thread (client mode): 0x863ecc40
2025-06-13 15:04:38,338 [DEBUG][       Thread-258846][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 15:04:38,358 [DEBUG][       Thread-258846][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 15:04:38,358 [ INFO][       Thread-258846][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 15:04:38,362 [DEBUG][       Thread-258846][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 15:04:38,362 [DEBUG][       Thread-258846][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 15:04:38,362 [DEBUG][       Thread-258846][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 15:04:38,362 [DEBUG][       Thread-258846][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:04:38,362 [DEBUG][       Thread-258846][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:04:38,362 [DEBUG][       Thread-258846][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:04:38,362 [DEBUG][       Thread-258846][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:04:38,362 [DEBUG][       Thread-258846][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 15:04:38,362 [DEBUG][       Thread-258846][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 15:04:38,362 [DEBUG][       Thread-258846][   transport.py][1871] : client lang: <none>
2025-06-13 15:04:38,362 [DEBUG][       Thread-258846][   transport.py][1871] : server lang: <none>
2025-06-13 15:04:38,362 [DEBUG][       Thread-258846][   transport.py][1871] : kex follows: False
2025-06-13 15:04:38,362 [DEBUG][       Thread-258846][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 15:04:38,362 [DEBUG][       Thread-258846][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 15:04:38,362 [DEBUG][       Thread-258846][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 15:04:38,362 [DEBUG][       Thread-258846][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 15:04:38,362 [DEBUG][       Thread-258846][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 15:04:38,362 [DEBUG][       Thread-258846][   transport.py][1871] : Compression: none
2025-06-13 15:04:38,362 [DEBUG][       Thread-258846][   transport.py][1871] : === End of kex handshake ===
2025-06-13 15:04:38,378 [DEBUG][       Thread-258846][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 15:04:38,378 [DEBUG][       Thread-258846][   transport.py][1871] : Switch to new keys ...
2025-06-13 15:04:38,379 [DEBUG][       Thread-258846][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 15:04:38,379 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 15:04:38,379 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 15:04:38,380 [DEBUG][       Thread-258846][   transport.py][1871] : userauth is OK
2025-06-13 15:04:38,405 [ INFO][       Thread-258846][   transport.py][1871] : Authentication (password) successful!
2025-06-13 15:04:38,406 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 15:04:38,891 [DEBUG][Thread-258848 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:04:38,984 [DEBUG][       Thread-258846][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 15:04:38,984 [DEBUG][       Thread-258846][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 15:04:39,025 [DEBUG][       Thread-258846][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 15:04:39,025 [DEBUG][       Thread-258846][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 15:04:39,027 [DEBUG][       Thread-258846][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 15:04:39,040 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 15:04:39,041 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 15:04:39,042 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 15:04:39,044 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 15:04:39,049 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 15:04:39,050 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 15:04:39,050 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 15:04:39,051 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 15:04:39,051 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.544380 -999.00  +13.80  27.80     33   -2.10 1 1 1 1 1   887    0 16.45 44.05 ----- 28.4 27.8 50.0 32.6 17.6 -31.9 16.6 -33.2 17.3 -31.4 18.4 -30.2
2025-06-13 15:04:39,051 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 15:04:39,051 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 15:04:39,051 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.544380
2025-06-13 15:04:39,052 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 15:04:39,052 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 15:04:39,053 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 15:04:39,053 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 15:04:39,053 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 15:04:39,053 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T15:04:07', tmtdew=17.98, humidity=28.54, cloud=0.0, wind=20.98, temperature=14.02, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T13:03:54.432', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 15:04:39,054 [DEBUG][       Thread-258846][   transport.py][1871] : EOF in transport thread
2025-06-13 15:04:39,147 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 15:04:39,159 [DEBUG][       Thread-258850][   transport.py][1871] : starting thread (client mode): 0x86893a60
2025-06-13 15:04:39,159 [DEBUG][       Thread-258850][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 15:04:39,175 [DEBUG][       Thread-258850][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 15:04:39,175 [ INFO][       Thread-258850][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 15:04:39,184 [DEBUG][       Thread-258850][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 15:04:39,185 [DEBUG][       Thread-258850][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 15:04:39,185 [DEBUG][       Thread-258850][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 15:04:39,185 [DEBUG][       Thread-258850][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:04:39,185 [DEBUG][       Thread-258850][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:04:39,185 [DEBUG][       Thread-258850][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:04:39,185 [DEBUG][       Thread-258850][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:04:39,185 [DEBUG][       Thread-258850][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 15:04:39,185 [DEBUG][       Thread-258850][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 15:04:39,185 [DEBUG][       Thread-258850][   transport.py][1871] : client lang: <none>
2025-06-13 15:04:39,185 [DEBUG][       Thread-258850][   transport.py][1871] : server lang: <none>
2025-06-13 15:04:39,185 [DEBUG][       Thread-258850][   transport.py][1871] : kex follows: False
2025-06-13 15:04:39,185 [DEBUG][       Thread-258850][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 15:04:39,185 [DEBUG][       Thread-258850][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 15:04:39,185 [DEBUG][       Thread-258850][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 15:04:39,185 [DEBUG][       Thread-258850][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 15:04:39,185 [DEBUG][       Thread-258850][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 15:04:39,186 [DEBUG][       Thread-258850][   transport.py][1871] : Compression: none
2025-06-13 15:04:39,186 [DEBUG][       Thread-258850][   transport.py][1871] : === End of kex handshake ===
2025-06-13 15:04:39,243 [DEBUG][       Thread-258850][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 15:04:39,244 [DEBUG][       Thread-258850][   transport.py][1871] : Switch to new keys ...
2025-06-13 15:04:39,244 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 15:04:39,245 [DEBUG][       Thread-258850][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 15:04:39,246 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 15:04:39,302 [DEBUG][       Thread-258850][   transport.py][1871] : userauth is OK
2025-06-13 15:04:39,303 [DEBUG][       Thread-258850][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 15:04:39,303 [DEBUG][       Thread-258850][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 15:04:39,303 [DEBUG][       Thread-258850][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 15:04:39,303 [DEBUG][       Thread-258850][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 15:04:39,322 [ INFO][       Thread-258850][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 15:04:39,322 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 15:04:39,323 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 15:04:40,300 [DEBUG][       Thread-258850][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 15:04:40,300 [DEBUG][       Thread-258850][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 15:04:40,351 [DEBUG][       Thread-258850][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 15:04:40,351 [DEBUG][       Thread-258850][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 15:04:40,359 [DEBUG][       Thread-258850][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 15:04:40,367 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 15:04:40,367 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 15:04:40,375 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 15:04:40,383 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 15:04:40,383 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 15:04:40,383 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 15:04:40,391 [DEBUG][       Thread-258850][   transport.py][1871] : EOF in transport thread
2025-06-13 15:04:47,913 [DEBUG][Thread-258852 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:04:50,391 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 15:04:50,391 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 15:04:50,391 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 15:04:50,394 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 15:04:50,850 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 15, 4, 38), 17.79, 28.98, 0.0, 18.62, 13.96, 0, 0, 0, 2, 0, 0),)
2025-06-13 15:04:50,850 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 15:04:38
2025-06-13 15:04:50,933 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 15:04:50,937 [DEBUG][       Thread-258853][   transport.py][1871] : starting thread (client mode): 0x863a7070
2025-06-13 15:04:50,937 [DEBUG][       Thread-258853][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 15:04:50,952 [DEBUG][       Thread-258853][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 15:04:50,953 [ INFO][       Thread-258853][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 15:04:50,956 [DEBUG][       Thread-258853][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 15:04:50,956 [DEBUG][       Thread-258853][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 15:04:50,956 [DEBUG][       Thread-258853][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 15:04:50,956 [DEBUG][       Thread-258853][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:04:50,956 [DEBUG][       Thread-258853][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:04:50,956 [DEBUG][       Thread-258853][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:04:50,956 [DEBUG][       Thread-258853][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:04:50,956 [DEBUG][       Thread-258853][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 15:04:50,956 [DEBUG][       Thread-258853][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 15:04:50,956 [DEBUG][       Thread-258853][   transport.py][1871] : client lang: <none>
2025-06-13 15:04:50,956 [DEBUG][       Thread-258853][   transport.py][1871] : server lang: <none>
2025-06-13 15:04:50,956 [DEBUG][       Thread-258853][   transport.py][1871] : kex follows: False
2025-06-13 15:04:50,956 [DEBUG][       Thread-258853][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 15:04:50,956 [DEBUG][       Thread-258853][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 15:04:50,956 [DEBUG][       Thread-258853][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 15:04:50,956 [DEBUG][       Thread-258853][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 15:04:50,956 [DEBUG][       Thread-258853][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 15:04:50,956 [DEBUG][       Thread-258853][   transport.py][1871] : Compression: none
2025-06-13 15:04:50,956 [DEBUG][       Thread-258853][   transport.py][1871] : === End of kex handshake ===
2025-06-13 15:04:50,973 [DEBUG][       Thread-258853][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 15:04:50,974 [DEBUG][       Thread-258853][   transport.py][1871] : Switch to new keys ...
2025-06-13 15:04:50,974 [DEBUG][       Thread-258853][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 15:04:50,975 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 15:04:50,975 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 15:04:50,976 [DEBUG][       Thread-258853][   transport.py][1871] : userauth is OK
2025-06-13 15:04:51,001 [ INFO][       Thread-258853][   transport.py][1871] : Authentication (password) successful!
2025-06-13 15:04:51,001 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 15:04:51,610 [DEBUG][       Thread-258853][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 15:04:51,610 [DEBUG][       Thread-258853][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 15:04:51,653 [DEBUG][       Thread-258853][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 15:04:51,653 [DEBUG][       Thread-258853][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 15:04:51,655 [DEBUG][       Thread-258853][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 15:04:51,668 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 15:04:51,669 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 15:04:51,670 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 15:04:51,671 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 15:04:51,676 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 15:04:51,678 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 15:04:51,678 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 15:04:51,679 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 15:04:51,679 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.544728 -999.00  +13.70  22.69     33   -2.00 1 1 1 1 1   887    0 16.81 48.35 ----- 25.8 22.7 46.8 29.4 17.5 -31.4 16.5 -33.3 17.1 -31.3 18.4 -29.9
2025-06-13 15:04:51,679 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 15:04:51,679 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 15:04:51,679 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.544728
2025-06-13 15:04:51,680 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 15:04:51,680 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 15:04:51,680 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 15:04:51,680 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 15:04:51,680 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 15:04:51,681 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T15:04:38', tmtdew=17.79, humidity=28.98, cloud=0.0, wind=18.62, temperature=13.96, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T13:04:24.499', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 15:04:51,682 [DEBUG][       Thread-258853][   transport.py][1871] : EOF in transport thread
2025-06-13 15:04:51,767 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 15:04:51,776 [DEBUG][       Thread-258856][   transport.py][1871] : starting thread (client mode): 0x863ef430
2025-06-13 15:04:51,776 [DEBUG][       Thread-258856][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 15:04:51,792 [DEBUG][       Thread-258856][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 15:04:51,792 [ INFO][       Thread-258856][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 15:04:51,800 [DEBUG][       Thread-258856][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 15:04:51,800 [DEBUG][       Thread-258856][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 15:04:51,800 [DEBUG][       Thread-258856][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 15:04:51,800 [DEBUG][       Thread-258856][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:04:51,800 [DEBUG][       Thread-258856][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:04:51,800 [DEBUG][       Thread-258856][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:04:51,800 [DEBUG][       Thread-258856][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:04:51,800 [DEBUG][       Thread-258856][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 15:04:51,800 [DEBUG][       Thread-258856][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 15:04:51,800 [DEBUG][       Thread-258856][   transport.py][1871] : client lang: <none>
2025-06-13 15:04:51,800 [DEBUG][       Thread-258856][   transport.py][1871] : server lang: <none>
2025-06-13 15:04:51,800 [DEBUG][       Thread-258856][   transport.py][1871] : kex follows: False
2025-06-13 15:04:51,801 [DEBUG][       Thread-258856][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 15:04:51,801 [DEBUG][       Thread-258856][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 15:04:51,801 [DEBUG][       Thread-258856][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 15:04:51,801 [DEBUG][       Thread-258856][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 15:04:51,801 [DEBUG][       Thread-258856][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 15:04:51,801 [DEBUG][       Thread-258856][   transport.py][1871] : Compression: none
2025-06-13 15:04:51,801 [DEBUG][       Thread-258856][   transport.py][1871] : === End of kex handshake ===
2025-06-13 15:04:51,861 [DEBUG][       Thread-258856][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 15:04:51,861 [DEBUG][       Thread-258856][   transport.py][1871] : Switch to new keys ...
2025-06-13 15:04:51,862 [DEBUG][       Thread-258856][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 15:04:51,862 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 15:04:51,863 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 15:04:51,917 [DEBUG][       Thread-258856][   transport.py][1871] : userauth is OK
2025-06-13 15:04:51,918 [DEBUG][       Thread-258856][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 15:04:51,918 [DEBUG][       Thread-258856][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 15:04:51,918 [DEBUG][       Thread-258856][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 15:04:51,918 [DEBUG][       Thread-258856][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 15:04:51,937 [ INFO][       Thread-258856][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 15:04:51,937 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 15:04:51,938 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 15:04:52,926 [DEBUG][       Thread-258856][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 15:04:52,926 [DEBUG][       Thread-258856][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 15:04:52,979 [DEBUG][       Thread-258856][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 15:04:52,979 [DEBUG][       Thread-258856][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 15:04:52,988 [DEBUG][       Thread-258856][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 15:04:52,997 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 15:04:52,997 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 15:04:53,007 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 15:04:53,016 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 15:04:53,016 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 15:04:53,017 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 15:04:53,025 [DEBUG][       Thread-258856][   transport.py][1871] : EOF in transport thread
2025-06-13 15:04:56,935 [DEBUG][Thread-258858 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:05:03,021 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 15:05:03,022 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 15:05:03,022 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 15:05:03,024 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 15:05:03,498 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 15, 4, 38), 17.79, 28.98, 0.0, 18.62, 13.96, 0, 0, 0, 2, 0, 0),)
2025-06-13 15:05:03,499 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 15:04:38
2025-06-13 15:05:03,580 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 15:05:03,586 [DEBUG][       Thread-258859][   transport.py][1871] : starting thread (client mode): 0x863ef4f0
2025-06-13 15:05:03,586 [DEBUG][       Thread-258859][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 15:05:03,608 [DEBUG][       Thread-258859][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 15:05:03,608 [ INFO][       Thread-258859][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 15:05:03,612 [DEBUG][       Thread-258859][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 15:05:03,612 [DEBUG][       Thread-258859][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 15:05:03,612 [DEBUG][       Thread-258859][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 15:05:03,612 [DEBUG][       Thread-258859][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:05:03,612 [DEBUG][       Thread-258859][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:05:03,612 [DEBUG][       Thread-258859][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:05:03,612 [DEBUG][       Thread-258859][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:05:03,612 [DEBUG][       Thread-258859][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 15:05:03,612 [DEBUG][       Thread-258859][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 15:05:03,612 [DEBUG][       Thread-258859][   transport.py][1871] : client lang: <none>
2025-06-13 15:05:03,612 [DEBUG][       Thread-258859][   transport.py][1871] : server lang: <none>
2025-06-13 15:05:03,612 [DEBUG][       Thread-258859][   transport.py][1871] : kex follows: False
2025-06-13 15:05:03,612 [DEBUG][       Thread-258859][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 15:05:03,612 [DEBUG][       Thread-258859][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 15:05:03,612 [DEBUG][       Thread-258859][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 15:05:03,612 [DEBUG][       Thread-258859][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 15:05:03,612 [DEBUG][       Thread-258859][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 15:05:03,613 [DEBUG][       Thread-258859][   transport.py][1871] : Compression: none
2025-06-13 15:05:03,613 [DEBUG][       Thread-258859][   transport.py][1871] : === End of kex handshake ===
2025-06-13 15:05:03,635 [DEBUG][       Thread-258859][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 15:05:03,636 [DEBUG][       Thread-258859][   transport.py][1871] : Switch to new keys ...
2025-06-13 15:05:03,636 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 15:05:03,636 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 15:05:03,637 [DEBUG][       Thread-258859][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 15:05:03,637 [DEBUG][       Thread-258859][   transport.py][1871] : userauth is OK
2025-06-13 15:05:03,662 [ INFO][       Thread-258859][   transport.py][1871] : Authentication (password) successful!
2025-06-13 15:05:03,662 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 15:05:05,980 [DEBUG][Thread-258861 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:05:06,077 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:05:06,078 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:05:11,988 [DEBUG][       Thread-258859][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 15:05:11,988 [DEBUG][       Thread-258859][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 15:05:12,028 [DEBUG][       Thread-258859][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 15:05:12,028 [DEBUG][       Thread-258859][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 15:05:12,031 [DEBUG][       Thread-258859][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 15:05:12,124 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 15:05:12,124 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 15:05:12,125 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 15:05:12,126 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 15:05:12,140 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 15:05:12,141 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 15:05:12,141 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 15:05:12,141 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 15:05:12,141 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.544728 -999.00  +13.70  22.69     33   -2.00 1 1 1 1 1   887    0 16.81 48.35 ----- 25.8 22.7 46.8 29.4 17.5 -31.4 16.5 -33.3 17.1 -31.3 18.4 -29.9
2025-06-13 15:05:12,141 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 15:05:12,141 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 15:05:12,141 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.544728
2025-06-13 15:05:12,141 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 15:05:12,141 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 15:05:12,141 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 15:05:12,141 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 15:05:12,141 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 15:05:12,141 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T15:04:38', tmtdew=17.79, humidity=28.98, cloud=0.0, wind=18.62, temperature=13.96, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T13:04:24.499', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 15:05:12,142 [DEBUG][       Thread-258859][   transport.py][1871] : EOF in transport thread
2025-06-13 15:05:12,216 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 15:05:12,229 [DEBUG][       Thread-258863][   transport.py][1871] : starting thread (client mode): 0x868c8520
2025-06-13 15:05:12,229 [DEBUG][       Thread-258863][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 15:05:12,243 [DEBUG][       Thread-258863][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 15:05:12,244 [ INFO][       Thread-258863][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 15:05:12,251 [DEBUG][       Thread-258863][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 15:05:12,251 [DEBUG][       Thread-258863][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 15:05:12,251 [DEBUG][       Thread-258863][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 15:05:12,251 [DEBUG][       Thread-258863][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:05:12,251 [DEBUG][       Thread-258863][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:05:12,251 [DEBUG][       Thread-258863][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:05:12,251 [DEBUG][       Thread-258863][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:05:12,251 [DEBUG][       Thread-258863][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 15:05:12,251 [DEBUG][       Thread-258863][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 15:05:12,251 [DEBUG][       Thread-258863][   transport.py][1871] : client lang: <none>
2025-06-13 15:05:12,251 [DEBUG][       Thread-258863][   transport.py][1871] : server lang: <none>
2025-06-13 15:05:12,251 [DEBUG][       Thread-258863][   transport.py][1871] : kex follows: False
2025-06-13 15:05:12,251 [DEBUG][       Thread-258863][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 15:05:12,251 [DEBUG][       Thread-258863][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 15:05:12,251 [DEBUG][       Thread-258863][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 15:05:12,252 [DEBUG][       Thread-258863][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 15:05:12,252 [DEBUG][       Thread-258863][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 15:05:12,252 [DEBUG][       Thread-258863][   transport.py][1871] : Compression: none
2025-06-13 15:05:12,252 [DEBUG][       Thread-258863][   transport.py][1871] : === End of kex handshake ===
2025-06-13 15:05:12,308 [DEBUG][       Thread-258863][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 15:05:12,308 [DEBUG][       Thread-258863][   transport.py][1871] : Switch to new keys ...
2025-06-13 15:05:12,308 [DEBUG][       Thread-258863][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 15:05:12,308 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 15:05:12,308 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 15:05:12,365 [DEBUG][       Thread-258863][   transport.py][1871] : userauth is OK
2025-06-13 15:05:12,365 [DEBUG][       Thread-258863][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 15:05:12,365 [DEBUG][       Thread-258863][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 15:05:12,365 [DEBUG][       Thread-258863][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 15:05:12,365 [DEBUG][       Thread-258863][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 15:05:12,383 [ INFO][       Thread-258863][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 15:05:12,383 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 15:05:12,383 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 15:05:13,386 [DEBUG][       Thread-258863][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 15:05:13,386 [DEBUG][       Thread-258863][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 15:05:13,438 [DEBUG][       Thread-258863][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 15:05:13,439 [DEBUG][       Thread-258863][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 15:05:13,450 [DEBUG][       Thread-258863][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 15:05:13,460 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 15:05:13,460 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 15:05:13,470 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 15:05:13,479 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 15:05:13,480 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 15:05:13,480 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 15:05:13,488 [DEBUG][       Thread-258863][   transport.py][1871] : EOF in transport thread
2025-06-13 15:05:15,001 [DEBUG][Thread-258865 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:05:19,993 [DEBUG][Thread-258866 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:05:22,379 [DEBUG][Thread-258867 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:05:23,456 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:05:23,466 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:05:23,491 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 15:05:23,491 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 15:05:23,491 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 15:05:23,493 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 15:05:23,959 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 15, 5, 10), 17.89, 28.77, 0.0, 21.44, 14.01, 0, 0, 0, 2, 0, 0),)
2025-06-13 15:05:23,959 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 15:05:10
2025-06-13 15:05:24,020 [DEBUG][Thread-258868 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:05:24,040 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 15:05:24,046 [DEBUG][       Thread-258869][   transport.py][1871] : starting thread (client mode): 0x863a62f0
2025-06-13 15:05:24,046 [DEBUG][       Thread-258869][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 15:05:24,067 [DEBUG][       Thread-258869][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 15:05:24,067 [ INFO][       Thread-258869][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 15:05:24,070 [DEBUG][       Thread-258869][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 15:05:24,070 [DEBUG][       Thread-258869][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 15:05:24,070 [DEBUG][       Thread-258869][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 15:05:24,070 [DEBUG][       Thread-258869][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:05:24,070 [DEBUG][       Thread-258869][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:05:24,070 [DEBUG][       Thread-258869][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:05:24,070 [DEBUG][       Thread-258869][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:05:24,070 [DEBUG][       Thread-258869][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 15:05:24,070 [DEBUG][       Thread-258869][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 15:05:24,071 [DEBUG][       Thread-258869][   transport.py][1871] : client lang: <none>
2025-06-13 15:05:24,071 [DEBUG][       Thread-258869][   transport.py][1871] : server lang: <none>
2025-06-13 15:05:24,071 [DEBUG][       Thread-258869][   transport.py][1871] : kex follows: False
2025-06-13 15:05:24,071 [DEBUG][       Thread-258869][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 15:05:24,071 [DEBUG][       Thread-258869][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 15:05:24,071 [DEBUG][       Thread-258869][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 15:05:24,071 [DEBUG][       Thread-258869][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 15:05:24,071 [DEBUG][       Thread-258869][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 15:05:24,071 [DEBUG][       Thread-258869][   transport.py][1871] : Compression: none
2025-06-13 15:05:24,071 [DEBUG][       Thread-258869][   transport.py][1871] : === End of kex handshake ===
2025-06-13 15:05:24,087 [DEBUG][       Thread-258869][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 15:05:24,088 [DEBUG][       Thread-258869][   transport.py][1871] : Switch to new keys ...
2025-06-13 15:05:24,088 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 15:05:24,089 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 15:05:24,089 [DEBUG][       Thread-258869][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 15:05:24,090 [DEBUG][       Thread-258869][   transport.py][1871] : userauth is OK
2025-06-13 15:05:24,137 [ INFO][       Thread-258869][   transport.py][1871] : Authentication (password) successful!
2025-06-13 15:05:24,138 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 15:05:25,218 [DEBUG][       Thread-258869][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 15:05:25,219 [DEBUG][       Thread-258869][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 15:05:25,261 [DEBUG][       Thread-258869][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 15:05:25,261 [DEBUG][       Thread-258869][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 15:05:25,264 [DEBUG][       Thread-258869][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 15:05:25,279 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 15:05:25,279 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 15:05:25,281 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 15:05:25,283 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 15:05:25,289 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 15:05:25,291 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 15:05:25,292 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 15:05:25,293 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 15:05:25,293 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.545075 -999.00  +13.70  26.14     33   -1.80 1 1 1 1 1   887    0 16.38 45.19 ----- 20.8 26.1 45.0 28.4 17.5 -32.2 16.6 -32.5 17.2 -30.5 18.3 -29.5
2025-06-13 15:05:25,293 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 15:05:25,293 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 15:05:25,293 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.545075
2025-06-13 15:05:25,294 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 15:05:25,294 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 15:05:25,295 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 15:05:25,295 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 15:05:25,295 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 15:05:25,295 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T15:05:10', tmtdew=17.89, humidity=28.77, cloud=0.0, wind=21.44, temperature=14.01, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T13:04:54.480', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 15:05:25,295 [DEBUG][       Thread-258869][   transport.py][1871] : EOF in transport thread
2025-06-13 15:05:25,389 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 15:05:25,401 [DEBUG][       Thread-258872][   transport.py][1871] : starting thread (client mode): 0x867b5a80
2025-06-13 15:05:25,401 [DEBUG][       Thread-258872][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 15:05:25,419 [DEBUG][       Thread-258872][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 15:05:25,419 [ INFO][       Thread-258872][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 15:05:25,427 [DEBUG][       Thread-258872][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 15:05:25,428 [DEBUG][       Thread-258872][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 15:05:25,428 [DEBUG][       Thread-258872][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 15:05:25,428 [DEBUG][       Thread-258872][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:05:25,428 [DEBUG][       Thread-258872][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:05:25,428 [DEBUG][       Thread-258872][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:05:25,428 [DEBUG][       Thread-258872][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:05:25,428 [DEBUG][       Thread-258872][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 15:05:25,428 [DEBUG][       Thread-258872][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 15:05:25,428 [DEBUG][       Thread-258872][   transport.py][1871] : client lang: <none>
2025-06-13 15:05:25,428 [DEBUG][       Thread-258872][   transport.py][1871] : server lang: <none>
2025-06-13 15:05:25,428 [DEBUG][       Thread-258872][   transport.py][1871] : kex follows: False
2025-06-13 15:05:25,428 [DEBUG][       Thread-258872][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 15:05:25,428 [DEBUG][       Thread-258872][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 15:05:25,429 [DEBUG][       Thread-258872][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 15:05:25,429 [DEBUG][       Thread-258872][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 15:05:25,429 [DEBUG][       Thread-258872][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 15:05:25,429 [DEBUG][       Thread-258872][   transport.py][1871] : Compression: none
2025-06-13 15:05:25,429 [DEBUG][       Thread-258872][   transport.py][1871] : === End of kex handshake ===
2025-06-13 15:05:25,486 [DEBUG][       Thread-258872][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 15:05:25,486 [DEBUG][       Thread-258872][   transport.py][1871] : Switch to new keys ...
2025-06-13 15:05:25,487 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 15:05:25,487 [DEBUG][       Thread-258872][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 15:05:25,488 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 15:05:25,542 [DEBUG][       Thread-258872][   transport.py][1871] : userauth is OK
2025-06-13 15:05:25,542 [DEBUG][       Thread-258872][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 15:05:25,542 [DEBUG][       Thread-258872][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 15:05:25,542 [DEBUG][       Thread-258872][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 15:05:25,542 [DEBUG][       Thread-258872][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 15:05:25,561 [ INFO][       Thread-258872][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 15:05:25,562 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 15:05:25,562 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 15:05:26,669 [DEBUG][       Thread-258872][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 15:05:26,670 [DEBUG][       Thread-258872][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 15:05:26,722 [DEBUG][       Thread-258872][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 15:05:26,722 [DEBUG][       Thread-258872][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 15:05:26,732 [DEBUG][       Thread-258872][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 15:05:26,741 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 15:05:26,742 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 15:05:26,754 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 15:05:26,763 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 15:05:26,763 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 15:05:26,764 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 15:05:26,772 [DEBUG][       Thread-258872][   transport.py][1871] : EOF in transport thread
2025-06-13 15:05:33,040 [DEBUG][Thread-258874 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:05:36,773 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 15:05:36,773 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 15:05:36,773 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 15:05:36,776 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 15:05:37,227 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 15, 5, 10), 17.89, 28.77, 0.0, 21.44, 14.01, 0, 0, 0, 2, 0, 0),)
2025-06-13 15:05:37,228 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 15:05:10
2025-06-13 15:05:37,308 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 15:05:37,312 [DEBUG][       Thread-258875][   transport.py][1871] : starting thread (client mode): 0x867b5330
2025-06-13 15:05:37,312 [DEBUG][       Thread-258875][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 15:05:37,332 [DEBUG][       Thread-258875][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 15:05:37,332 [ INFO][       Thread-258875][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 15:05:37,336 [DEBUG][       Thread-258875][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 15:05:37,336 [DEBUG][       Thread-258875][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 15:05:37,336 [DEBUG][       Thread-258875][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 15:05:37,336 [DEBUG][       Thread-258875][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:05:37,336 [DEBUG][       Thread-258875][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:05:37,336 [DEBUG][       Thread-258875][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:05:37,336 [DEBUG][       Thread-258875][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:05:37,336 [DEBUG][       Thread-258875][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 15:05:37,336 [DEBUG][       Thread-258875][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 15:05:37,336 [DEBUG][       Thread-258875][   transport.py][1871] : client lang: <none>
2025-06-13 15:05:37,336 [DEBUG][       Thread-258875][   transport.py][1871] : server lang: <none>
2025-06-13 15:05:37,336 [DEBUG][       Thread-258875][   transport.py][1871] : kex follows: False
2025-06-13 15:05:37,336 [DEBUG][       Thread-258875][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 15:05:37,336 [DEBUG][       Thread-258875][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 15:05:37,336 [DEBUG][       Thread-258875][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 15:05:37,336 [DEBUG][       Thread-258875][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 15:05:37,336 [DEBUG][       Thread-258875][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 15:05:37,336 [DEBUG][       Thread-258875][   transport.py][1871] : Compression: none
2025-06-13 15:05:37,336 [DEBUG][       Thread-258875][   transport.py][1871] : === End of kex handshake ===
2025-06-13 15:05:37,344 [DEBUG][       Thread-258875][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 15:05:37,345 [DEBUG][       Thread-258875][   transport.py][1871] : Switch to new keys ...
2025-06-13 15:05:37,345 [DEBUG][       Thread-258875][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 15:05:37,345 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 15:05:37,345 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 15:05:37,346 [DEBUG][       Thread-258875][   transport.py][1871] : userauth is OK
2025-06-13 15:05:37,361 [ INFO][       Thread-258875][   transport.py][1871] : Authentication (password) successful!
2025-06-13 15:05:37,362 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 15:05:37,944 [DEBUG][       Thread-258875][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 15:05:37,944 [DEBUG][       Thread-258875][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 15:05:37,985 [DEBUG][       Thread-258875][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 15:05:37,985 [DEBUG][       Thread-258875][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 15:05:37,988 [DEBUG][       Thread-258875][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 15:05:38,001 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 15:05:38,001 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 15:05:38,003 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 15:05:38,005 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 15:05:38,011 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 15:05:38,013 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 15:05:38,013 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 15:05:38,014 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 15:05:38,014 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.545075 -999.00  +13.70  26.14     33   -1.80 1 1 1 1 1   887    0 16.38 45.19 ----- 20.8 26.1 45.0 28.4 17.5 -32.2 16.6 -32.5 17.2 -30.5 18.3 -29.5
2025-06-13 15:05:38,014 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 15:05:38,014 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 15:05:38,014 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.545075
2025-06-13 15:05:38,015 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 15:05:38,016 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 15:05:38,016 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 15:05:38,016 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 15:05:38,016 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 15:05:38,016 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T15:05:10', tmtdew=17.89, humidity=28.77, cloud=0.0, wind=21.44, temperature=14.01, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T13:04:54.480', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 15:05:38,017 [DEBUG][       Thread-258875][   transport.py][1871] : EOF in transport thread
2025-06-13 15:05:38,100 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 15:05:38,112 [DEBUG][       Thread-258878][   transport.py][1871] : starting thread (client mode): 0x863a75b0
2025-06-13 15:05:38,113 [DEBUG][       Thread-258878][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 15:05:38,127 [DEBUG][       Thread-258878][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 15:05:38,128 [ INFO][       Thread-258878][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 15:05:38,135 [DEBUG][       Thread-258878][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 15:05:38,135 [DEBUG][       Thread-258878][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 15:05:38,135 [DEBUG][       Thread-258878][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 15:05:38,135 [DEBUG][       Thread-258878][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:05:38,135 [DEBUG][       Thread-258878][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:05:38,135 [DEBUG][       Thread-258878][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:05:38,135 [DEBUG][       Thread-258878][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:05:38,135 [DEBUG][       Thread-258878][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 15:05:38,135 [DEBUG][       Thread-258878][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 15:05:38,136 [DEBUG][       Thread-258878][   transport.py][1871] : client lang: <none>
2025-06-13 15:05:38,136 [DEBUG][       Thread-258878][   transport.py][1871] : server lang: <none>
2025-06-13 15:05:38,136 [DEBUG][       Thread-258878][   transport.py][1871] : kex follows: False
2025-06-13 15:05:38,136 [DEBUG][       Thread-258878][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 15:05:38,136 [DEBUG][       Thread-258878][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 15:05:38,136 [DEBUG][       Thread-258878][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 15:05:38,136 [DEBUG][       Thread-258878][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 15:05:38,136 [DEBUG][       Thread-258878][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 15:05:38,136 [DEBUG][       Thread-258878][   transport.py][1871] : Compression: none
2025-06-13 15:05:38,136 [DEBUG][       Thread-258878][   transport.py][1871] : === End of kex handshake ===
2025-06-13 15:05:38,199 [DEBUG][       Thread-258878][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 15:05:38,200 [DEBUG][       Thread-258878][   transport.py][1871] : Switch to new keys ...
2025-06-13 15:05:38,201 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 15:05:38,201 [DEBUG][       Thread-258878][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 15:05:38,202 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 15:05:38,259 [DEBUG][       Thread-258878][   transport.py][1871] : userauth is OK
2025-06-13 15:05:38,259 [DEBUG][       Thread-258878][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 15:05:38,259 [DEBUG][       Thread-258878][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 15:05:38,260 [DEBUG][       Thread-258878][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 15:05:38,260 [DEBUG][       Thread-258878][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 15:05:38,281 [ INFO][       Thread-258878][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 15:05:38,282 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 15:05:38,282 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 15:05:39,297 [DEBUG][       Thread-258878][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 15:05:39,297 [DEBUG][       Thread-258878][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 15:05:39,348 [DEBUG][       Thread-258878][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 15:05:39,348 [DEBUG][       Thread-258878][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 15:05:39,357 [DEBUG][       Thread-258878][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 15:05:39,365 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 15:05:39,365 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 15:05:39,373 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 15:05:39,382 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 15:05:39,382 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 15:05:39,382 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 15:05:39,391 [DEBUG][       Thread-258878][   transport.py][1871] : EOF in transport thread
2025-06-13 15:05:42,076 [DEBUG][Thread-258880 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:05:49,392 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 15:05:49,392 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 15:05:49,392 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 15:05:49,393 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 15:05:49,862 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 15, 5, 42), 17.87, 28.8, 0.0, 22.64, 14.01, 0, 0, 0, 2, 0, 0),)
2025-06-13 15:05:49,863 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 15:05:42
2025-06-13 15:05:49,942 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 15:05:49,948 [DEBUG][       Thread-258881][   transport.py][1871] : starting thread (client mode): 0x867b7ee0
2025-06-13 15:05:49,948 [DEBUG][       Thread-258881][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 15:05:49,961 [DEBUG][       Thread-258881][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 15:05:49,961 [ INFO][       Thread-258881][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 15:05:49,964 [DEBUG][       Thread-258881][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 15:05:49,964 [DEBUG][       Thread-258881][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 15:05:49,964 [DEBUG][       Thread-258881][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 15:05:49,964 [DEBUG][       Thread-258881][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:05:49,964 [DEBUG][       Thread-258881][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:05:49,964 [DEBUG][       Thread-258881][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:05:49,964 [DEBUG][       Thread-258881][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:05:49,964 [DEBUG][       Thread-258881][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 15:05:49,964 [DEBUG][       Thread-258881][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 15:05:49,964 [DEBUG][       Thread-258881][   transport.py][1871] : client lang: <none>
2025-06-13 15:05:49,964 [DEBUG][       Thread-258881][   transport.py][1871] : server lang: <none>
2025-06-13 15:05:49,964 [DEBUG][       Thread-258881][   transport.py][1871] : kex follows: False
2025-06-13 15:05:49,964 [DEBUG][       Thread-258881][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 15:05:49,964 [DEBUG][       Thread-258881][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 15:05:49,964 [DEBUG][       Thread-258881][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 15:05:49,964 [DEBUG][       Thread-258881][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 15:05:49,964 [DEBUG][       Thread-258881][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 15:05:49,964 [DEBUG][       Thread-258881][   transport.py][1871] : Compression: none
2025-06-13 15:05:49,964 [DEBUG][       Thread-258881][   transport.py][1871] : === End of kex handshake ===
2025-06-13 15:05:49,983 [DEBUG][       Thread-258881][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 15:05:49,983 [DEBUG][       Thread-258881][   transport.py][1871] : Switch to new keys ...
2025-06-13 15:05:49,983 [DEBUG][       Thread-258881][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 15:05:49,983 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 15:05:49,983 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 15:05:49,984 [DEBUG][       Thread-258881][   transport.py][1871] : userauth is OK
2025-06-13 15:05:50,007 [ INFO][       Thread-258881][   transport.py][1871] : Authentication (password) successful!
2025-06-13 15:05:50,008 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 15:05:50,608 [DEBUG][       Thread-258881][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 15:05:50,608 [DEBUG][       Thread-258881][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 15:05:50,649 [DEBUG][       Thread-258881][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 15:05:50,649 [DEBUG][       Thread-258881][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 15:05:50,651 [DEBUG][       Thread-258881][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 15:05:50,659 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 15:05:50,659 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 15:05:50,661 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 15:05:50,662 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 15:05:50,665 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 15:05:50,666 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 15:05:50,666 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 15:05:50,666 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 15:05:50,666 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.545075 -999.00  +13.70  26.14     33   -1.80 1 1 1 1 1   887    0 16.38 45.19 ----- 20.8 26.1 45.0 28.4 17.5 -32.2 16.6 -32.5 17.2 -30.5 18.3 -29.5
2025-06-13 15:05:50,666 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 15:05:50,666 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 15:05:50,666 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.545075
2025-06-13 15:05:50,667 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 15:05:50,667 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 15:05:50,667 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 15:05:50,667 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 15:05:50,667 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 15:05:50,667 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T15:05:42', tmtdew=17.87, humidity=28.8, cloud=0.0, wind=22.64, temperature=14.01, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T13:04:54.480', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 15:05:50,667 [DEBUG][       Thread-258881][   transport.py][1871] : EOF in transport thread
2025-06-13 15:05:50,746 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 15:05:50,756 [DEBUG][       Thread-258884][   transport.py][1871] : starting thread (client mode): 0x863a5c30
2025-06-13 15:05:50,756 [DEBUG][       Thread-258884][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 15:05:50,771 [DEBUG][       Thread-258884][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 15:05:50,771 [ INFO][       Thread-258884][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 15:05:50,779 [DEBUG][       Thread-258884][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 15:05:50,779 [DEBUG][       Thread-258884][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 15:05:50,779 [DEBUG][       Thread-258884][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 15:05:50,779 [DEBUG][       Thread-258884][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:05:50,779 [DEBUG][       Thread-258884][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:05:50,779 [DEBUG][       Thread-258884][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:05:50,779 [DEBUG][       Thread-258884][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:05:50,780 [DEBUG][       Thread-258884][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 15:05:50,780 [DEBUG][       Thread-258884][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 15:05:50,780 [DEBUG][       Thread-258884][   transport.py][1871] : client lang: <none>
2025-06-13 15:05:50,780 [DEBUG][       Thread-258884][   transport.py][1871] : server lang: <none>
2025-06-13 15:05:50,780 [DEBUG][       Thread-258884][   transport.py][1871] : kex follows: False
2025-06-13 15:05:50,780 [DEBUG][       Thread-258884][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 15:05:50,780 [DEBUG][       Thread-258884][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 15:05:50,780 [DEBUG][       Thread-258884][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 15:05:50,780 [DEBUG][       Thread-258884][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 15:05:50,780 [DEBUG][       Thread-258884][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 15:05:50,780 [DEBUG][       Thread-258884][   transport.py][1871] : Compression: none
2025-06-13 15:05:50,780 [DEBUG][       Thread-258884][   transport.py][1871] : === End of kex handshake ===
2025-06-13 15:05:50,838 [DEBUG][       Thread-258884][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 15:05:50,839 [DEBUG][       Thread-258884][   transport.py][1871] : Switch to new keys ...
2025-06-13 15:05:50,839 [DEBUG][       Thread-258884][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 15:05:50,840 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 15:05:50,840 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 15:05:50,898 [DEBUG][       Thread-258884][   transport.py][1871] : userauth is OK
2025-06-13 15:05:50,898 [DEBUG][       Thread-258884][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 15:05:50,898 [DEBUG][       Thread-258884][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 15:05:50,898 [DEBUG][       Thread-258884][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 15:05:50,898 [DEBUG][       Thread-258884][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 15:05:50,917 [ INFO][       Thread-258884][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 15:05:50,918 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 15:05:50,918 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 15:05:51,095 [DEBUG][Thread-258886 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:05:51,941 [DEBUG][       Thread-258884][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 15:05:51,941 [DEBUG][       Thread-258884][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 15:05:51,992 [DEBUG][       Thread-258884][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 15:05:51,992 [DEBUG][       Thread-258884][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 15:05:52,001 [DEBUG][       Thread-258884][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 15:05:52,011 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 15:05:52,011 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 15:05:52,021 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 15:05:52,030 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 15:05:52,030 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 15:05:52,031 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 15:05:52,038 [DEBUG][       Thread-258884][   transport.py][1871] : EOF in transport thread
2025-06-13 15:06:00,130 [DEBUG][Thread-258887 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:06:02,040 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 15:06:02,040 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 15:06:02,040 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 15:06:02,043 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 15:06:02,513 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 15, 5, 42), 17.87, 28.8, 0.0, 22.64, 14.01, 0, 0, 0, 2, 0, 0),)
2025-06-13 15:06:02,513 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 15:05:42
2025-06-13 15:06:02,592 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 15:06:02,596 [DEBUG][       Thread-258888][   transport.py][1871] : starting thread (client mode): 0x867b6a10
2025-06-13 15:06:02,596 [DEBUG][       Thread-258888][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 15:06:02,617 [DEBUG][       Thread-258888][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 15:06:02,617 [ INFO][       Thread-258888][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 15:06:02,618 [DEBUG][       Thread-258888][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 15:06:02,619 [DEBUG][       Thread-258888][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 15:06:02,619 [DEBUG][       Thread-258888][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 15:06:02,619 [DEBUG][       Thread-258888][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:06:02,619 [DEBUG][       Thread-258888][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:06:02,619 [DEBUG][       Thread-258888][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:06:02,619 [DEBUG][       Thread-258888][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:06:02,619 [DEBUG][       Thread-258888][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 15:06:02,619 [DEBUG][       Thread-258888][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 15:06:02,619 [DEBUG][       Thread-258888][   transport.py][1871] : client lang: <none>
2025-06-13 15:06:02,619 [DEBUG][       Thread-258888][   transport.py][1871] : server lang: <none>
2025-06-13 15:06:02,619 [DEBUG][       Thread-258888][   transport.py][1871] : kex follows: False
2025-06-13 15:06:02,619 [DEBUG][       Thread-258888][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 15:06:02,619 [DEBUG][       Thread-258888][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 15:06:02,619 [DEBUG][       Thread-258888][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 15:06:02,619 [DEBUG][       Thread-258888][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 15:06:02,619 [DEBUG][       Thread-258888][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 15:06:02,619 [DEBUG][       Thread-258888][   transport.py][1871] : Compression: none
2025-06-13 15:06:02,619 [DEBUG][       Thread-258888][   transport.py][1871] : === End of kex handshake ===
2025-06-13 15:06:02,639 [DEBUG][       Thread-258888][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 15:06:02,639 [DEBUG][       Thread-258888][   transport.py][1871] : Switch to new keys ...
2025-06-13 15:06:02,640 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 15:06:02,640 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 15:06:02,641 [DEBUG][       Thread-258888][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 15:06:02,642 [DEBUG][       Thread-258888][   transport.py][1871] : userauth is OK
2025-06-13 15:06:02,655 [ INFO][       Thread-258888][   transport.py][1871] : Authentication (password) successful!
2025-06-13 15:06:02,655 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 15:06:03,284 [DEBUG][       Thread-258888][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 15:06:03,284 [DEBUG][       Thread-258888][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 15:06:03,325 [DEBUG][       Thread-258888][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 15:06:03,325 [DEBUG][       Thread-258888][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 15:06:03,327 [DEBUG][       Thread-258888][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 15:06:03,333 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 15:06:03,333 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 15:06:03,335 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 15:06:03,337 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 15:06:03,343 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 15:06:03,345 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 15:06:03,345 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 15:06:03,346 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 15:06:03,346 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.545769 -999.00  +13.60  23.64     34   -1.80 1 1 1 1 1   887    0 16.41 38.16 ----- 22.1 23.6 51.8 28.3 17.4 -31.3 16.4 -33.2 17.0 -32.5 18.2 -29.6
2025-06-13 15:06:03,346 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 15:06:03,346 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 15:06:03,346 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.545769
2025-06-13 15:06:03,347 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 15:06:03,347 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 15:06:03,347 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 15:06:03,347 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 15:06:03,347 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 15:06:03,347 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T15:05:42', tmtdew=17.87, humidity=28.8, cloud=0.0, wind=22.64, temperature=14.01, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T13:05:54.442', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 15:06:03,348 [DEBUG][       Thread-258888][   transport.py][1871] : EOF in transport thread
2025-06-13 15:06:03,431 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 15:06:03,446 [DEBUG][       Thread-258891][   transport.py][1871] : starting thread (client mode): 0x863a7130
2025-06-13 15:06:03,446 [DEBUG][       Thread-258891][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 15:06:03,461 [DEBUG][       Thread-258891][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 15:06:03,461 [ INFO][       Thread-258891][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 15:06:03,472 [DEBUG][       Thread-258891][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 15:06:03,473 [DEBUG][       Thread-258891][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 15:06:03,473 [DEBUG][       Thread-258891][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 15:06:03,473 [DEBUG][       Thread-258891][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:06:03,473 [DEBUG][       Thread-258891][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:06:03,473 [DEBUG][       Thread-258891][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:06:03,473 [DEBUG][       Thread-258891][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:06:03,473 [DEBUG][       Thread-258891][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 15:06:03,473 [DEBUG][       Thread-258891][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 15:06:03,473 [DEBUG][       Thread-258891][   transport.py][1871] : client lang: <none>
2025-06-13 15:06:03,473 [DEBUG][       Thread-258891][   transport.py][1871] : server lang: <none>
2025-06-13 15:06:03,473 [DEBUG][       Thread-258891][   transport.py][1871] : kex follows: False
2025-06-13 15:06:03,473 [DEBUG][       Thread-258891][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 15:06:03,473 [DEBUG][       Thread-258891][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 15:06:03,473 [DEBUG][       Thread-258891][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 15:06:03,473 [DEBUG][       Thread-258891][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 15:06:03,473 [DEBUG][       Thread-258891][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 15:06:03,473 [DEBUG][       Thread-258891][   transport.py][1871] : Compression: none
2025-06-13 15:06:03,473 [DEBUG][       Thread-258891][   transport.py][1871] : === End of kex handshake ===
2025-06-13 15:06:03,533 [DEBUG][       Thread-258891][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 15:06:03,533 [DEBUG][       Thread-258891][   transport.py][1871] : Switch to new keys ...
2025-06-13 15:06:03,534 [DEBUG][       Thread-258891][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 15:06:03,534 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 15:06:03,535 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 15:06:03,590 [DEBUG][       Thread-258891][   transport.py][1871] : userauth is OK
2025-06-13 15:06:03,590 [DEBUG][       Thread-258891][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 15:06:03,590 [DEBUG][       Thread-258891][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 15:06:03,591 [DEBUG][       Thread-258891][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 15:06:03,591 [DEBUG][       Thread-258891][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 15:06:03,612 [ INFO][       Thread-258891][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 15:06:03,613 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 15:06:03,613 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 15:06:04,612 [DEBUG][       Thread-258891][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 15:06:04,612 [DEBUG][       Thread-258891][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 15:06:04,660 [DEBUG][       Thread-258891][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 15:06:04,660 [DEBUG][       Thread-258891][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 15:06:04,669 [DEBUG][       Thread-258891][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 15:06:04,678 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 15:06:04,678 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 15:06:04,687 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 15:06:04,696 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 15:06:04,697 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 15:06:04,697 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 15:06:04,705 [DEBUG][       Thread-258891][   transport.py][1871] : EOF in transport thread
2025-06-13 15:06:06,215 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:06:06,217 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:06:09,154 [DEBUG][Thread-258893 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:06:14,707 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 15:06:14,707 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 15:06:14,707 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 15:06:14,708 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 15:06:15,207 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 15, 5, 42), 17.87, 28.8, 0.0, 22.64, 14.01, 0, 0, 0, 2, 0, 0),)
2025-06-13 15:06:15,207 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 15:05:42
2025-06-13 15:06:15,291 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 15:06:15,298 [DEBUG][       Thread-258894][   transport.py][1871] : starting thread (client mode): 0x867b55d0
2025-06-13 15:06:15,298 [DEBUG][       Thread-258894][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 15:06:15,318 [DEBUG][       Thread-258894][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 15:06:15,318 [ INFO][       Thread-258894][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 15:06:15,321 [DEBUG][       Thread-258894][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 15:06:15,321 [DEBUG][       Thread-258894][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 15:06:15,321 [DEBUG][       Thread-258894][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 15:06:15,321 [DEBUG][       Thread-258894][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:06:15,321 [DEBUG][       Thread-258894][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:06:15,321 [DEBUG][       Thread-258894][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:06:15,321 [DEBUG][       Thread-258894][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:06:15,321 [DEBUG][       Thread-258894][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 15:06:15,321 [DEBUG][       Thread-258894][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 15:06:15,322 [DEBUG][       Thread-258894][   transport.py][1871] : client lang: <none>
2025-06-13 15:06:15,322 [DEBUG][       Thread-258894][   transport.py][1871] : server lang: <none>
2025-06-13 15:06:15,322 [DEBUG][       Thread-258894][   transport.py][1871] : kex follows: False
2025-06-13 15:06:15,322 [DEBUG][       Thread-258894][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 15:06:15,322 [DEBUG][       Thread-258894][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 15:06:15,322 [DEBUG][       Thread-258894][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 15:06:15,322 [DEBUG][       Thread-258894][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 15:06:15,322 [DEBUG][       Thread-258894][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 15:06:15,322 [DEBUG][       Thread-258894][   transport.py][1871] : Compression: none
2025-06-13 15:06:15,322 [DEBUG][       Thread-258894][   transport.py][1871] : === End of kex handshake ===
2025-06-13 15:06:15,336 [DEBUG][       Thread-258894][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 15:06:15,337 [DEBUG][       Thread-258894][   transport.py][1871] : Switch to new keys ...
2025-06-13 15:06:15,337 [DEBUG][       Thread-258894][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 15:06:15,337 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 15:06:15,337 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 15:06:15,379 [DEBUG][       Thread-258894][   transport.py][1871] : userauth is OK
2025-06-13 15:06:15,426 [ INFO][       Thread-258894][   transport.py][1871] : Authentication (password) successful!
2025-06-13 15:06:15,426 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 15:06:16,090 [DEBUG][       Thread-258894][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 15:06:16,090 [DEBUG][       Thread-258894][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 15:06:16,132 [DEBUG][       Thread-258894][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 15:06:16,132 [DEBUG][       Thread-258894][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 15:06:16,135 [DEBUG][       Thread-258894][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 15:06:16,146 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 15:06:16,146 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 15:06:16,147 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 15:06:16,148 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 15:06:16,151 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 15:06:16,151 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 15:06:16,152 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 15:06:16,152 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 15:06:16,152 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.545769 -999.00  +13.60  23.64     34   -1.80 1 1 1 1 1   887    0 16.41 38.16 ----- 22.1 23.6 51.8 28.3 17.4 -31.3 16.4 -33.2 17.0 -32.5 18.2 -29.6
2025-06-13 15:06:16,152 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 15:06:16,152 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 15:06:16,152 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.545769
2025-06-13 15:06:16,152 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 15:06:16,152 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 15:06:16,152 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 15:06:16,152 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 15:06:16,152 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 15:06:16,152 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T15:05:42', tmtdew=17.87, humidity=28.8, cloud=0.0, wind=22.64, temperature=14.01, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T13:05:54.442', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 15:06:16,153 [DEBUG][       Thread-258894][   transport.py][1871] : EOF in transport thread
2025-06-13 15:06:16,226 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 15:06:18,174 [DEBUG][Thread-258897 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:06:20,044 [DEBUG][Thread-258898 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:06:23,510 [DEBUG][Thread-258899 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:06:24,598 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:06:24,608 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:06:27,193 [DEBUG][Thread-258900 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:06:36,215 [DEBUG][Thread-258901 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:06:45,237 [DEBUG][Thread-258902 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:06:54,258 [DEBUG][Thread-258903 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:07:03,281 [DEBUG][Thread-258904 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:07:06,351 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:07:06,352 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:07:12,301 [DEBUG][Thread-258905 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:07:20,093 [DEBUG][Thread-258906 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:07:21,321 [DEBUG][Thread-258907 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:07:24,690 [DEBUG][Thread-258908 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:07:25,772 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:07:25,773 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:07:30,345 [DEBUG][Thread-258909 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:07:39,367 [DEBUG][Thread-258910 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:07:48,387 [DEBUG][Thread-258911 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:07:57,410 [DEBUG][Thread-258912 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:08:06,432 [DEBUG][Thread-258913 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:08:06,500 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:08:06,501 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:08:15,455 [DEBUG][Thread-258914 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:08:20,145 [DEBUG][Thread-258915 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:08:24,473 [DEBUG][Thread-258916 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:08:24,980 [WARNING][ poll_weather_worker][      driver.py][ 286] : Unable to open ssh connection for writing weather state to io.saao.ac.za: [Errno 110] Connection timed out
2025-06-13 15:08:25,814 [DEBUG][Thread-258917 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:08:26,866 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:08:26,867 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:08:33,498 [DEBUG][Thread-258918 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:08:34,981 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 15:08:34,981 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 15:08:34,981 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 15:08:34,984 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 15:08:35,467 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 15, 8, 20), 18.08, 28.48, 0.0, 15.92, 14.08, 0, 0, 0, 2, 0, 0),)
2025-06-13 15:08:35,467 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 15:08:20
2025-06-13 15:08:35,548 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 15:08:35,553 [DEBUG][       Thread-258919][   transport.py][1871] : starting thread (client mode): 0x867b68c0
2025-06-13 15:08:35,553 [DEBUG][       Thread-258919][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 15:08:35,574 [DEBUG][       Thread-258919][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 15:08:35,574 [ INFO][       Thread-258919][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 15:08:35,578 [DEBUG][       Thread-258919][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 15:08:35,578 [DEBUG][       Thread-258919][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 15:08:35,578 [DEBUG][       Thread-258919][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 15:08:35,578 [DEBUG][       Thread-258919][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:08:35,578 [DEBUG][       Thread-258919][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:08:35,578 [DEBUG][       Thread-258919][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:08:35,578 [DEBUG][       Thread-258919][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:08:35,578 [DEBUG][       Thread-258919][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 15:08:35,578 [DEBUG][       Thread-258919][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 15:08:35,578 [DEBUG][       Thread-258919][   transport.py][1871] : client lang: <none>
2025-06-13 15:08:35,578 [DEBUG][       Thread-258919][   transport.py][1871] : server lang: <none>
2025-06-13 15:08:35,578 [DEBUG][       Thread-258919][   transport.py][1871] : kex follows: False
2025-06-13 15:08:35,578 [DEBUG][       Thread-258919][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 15:08:35,578 [DEBUG][       Thread-258919][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 15:08:35,578 [DEBUG][       Thread-258919][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 15:08:35,578 [DEBUG][       Thread-258919][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 15:08:35,578 [DEBUG][       Thread-258919][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 15:08:35,578 [DEBUG][       Thread-258919][   transport.py][1871] : Compression: none
2025-06-13 15:08:35,578 [DEBUG][       Thread-258919][   transport.py][1871] : === End of kex handshake ===
2025-06-13 15:08:35,597 [DEBUG][       Thread-258919][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 15:08:35,598 [DEBUG][       Thread-258919][   transport.py][1871] : Switch to new keys ...
2025-06-13 15:08:35,598 [DEBUG][       Thread-258919][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 15:08:35,599 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 15:08:35,599 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 15:08:35,600 [DEBUG][       Thread-258919][   transport.py][1871] : userauth is OK
2025-06-13 15:08:35,625 [ INFO][       Thread-258919][   transport.py][1871] : Authentication (password) successful!
2025-06-13 15:08:35,626 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 15:08:36,379 [DEBUG][       Thread-258919][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 15:08:36,379 [DEBUG][       Thread-258919][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 15:08:36,421 [DEBUG][       Thread-258919][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 15:08:36,421 [DEBUG][       Thread-258919][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 15:08:36,423 [DEBUG][       Thread-258919][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 15:08:36,435 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 15:08:36,436 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 15:08:36,438 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 15:08:36,440 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 15:08:36,445 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 15:08:36,447 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 15:08:36,447 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 15:08:36,448 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 15:08:36,448 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.547158 -999.00  +13.60  30.11     33   -1.90 1 1 2 1 1   887    0 16.58 39.53 ----- 25.2 30.1 54.6 30.5 17.3 -31.0 16.3 -32.0 17.1 -30.3 18.3 -29.5
2025-06-13 15:08:36,448 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 15:08:36,448 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 15:08:36,449 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.547158
2025-06-13 15:08:36,449 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 15:08:36,450 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 15:08:36,450 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 15:08:36,450 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 15:08:36,450 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 15:08:36,450 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T15:08:20', tmtdew=18.08, humidity=28.48, cloud=0.0, wind=15.92, temperature=14.08, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T13:07:54.451', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 15:08:36,451 [DEBUG][       Thread-258919][   transport.py][1871] : EOF in transport thread
2025-06-13 15:08:36,534 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 15:08:36,545 [DEBUG][       Thread-258922][   transport.py][1871] : starting thread (client mode): 0x863a5f60
2025-06-13 15:08:36,545 [DEBUG][       Thread-258922][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 15:08:36,560 [DEBUG][       Thread-258922][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 15:08:36,560 [ INFO][       Thread-258922][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 15:08:36,568 [DEBUG][       Thread-258922][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 15:08:36,568 [DEBUG][       Thread-258922][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 15:08:36,568 [DEBUG][       Thread-258922][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 15:08:36,568 [DEBUG][       Thread-258922][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:08:36,569 [DEBUG][       Thread-258922][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:08:36,569 [DEBUG][       Thread-258922][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:08:36,569 [DEBUG][       Thread-258922][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:08:36,569 [DEBUG][       Thread-258922][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 15:08:36,569 [DEBUG][       Thread-258922][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 15:08:36,569 [DEBUG][       Thread-258922][   transport.py][1871] : client lang: <none>
2025-06-13 15:08:36,569 [DEBUG][       Thread-258922][   transport.py][1871] : server lang: <none>
2025-06-13 15:08:36,569 [DEBUG][       Thread-258922][   transport.py][1871] : kex follows: False
2025-06-13 15:08:36,569 [DEBUG][       Thread-258922][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 15:08:36,569 [DEBUG][       Thread-258922][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 15:08:36,569 [DEBUG][       Thread-258922][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 15:08:36,569 [DEBUG][       Thread-258922][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 15:08:36,569 [DEBUG][       Thread-258922][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 15:08:36,569 [DEBUG][       Thread-258922][   transport.py][1871] : Compression: none
2025-06-13 15:08:36,569 [DEBUG][       Thread-258922][   transport.py][1871] : === End of kex handshake ===
2025-06-13 15:08:36,624 [DEBUG][       Thread-258922][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 15:08:36,625 [DEBUG][       Thread-258922][   transport.py][1871] : Switch to new keys ...
2025-06-13 15:08:36,625 [DEBUG][       Thread-258922][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 15:08:36,626 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 15:08:36,626 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 15:08:36,681 [DEBUG][       Thread-258922][   transport.py][1871] : userauth is OK
2025-06-13 15:08:36,681 [DEBUG][       Thread-258922][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 15:08:36,681 [DEBUG][       Thread-258922][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 15:08:36,681 [DEBUG][       Thread-258922][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 15:08:36,681 [DEBUG][       Thread-258922][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 15:08:36,700 [ INFO][       Thread-258922][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 15:08:36,701 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 15:08:36,701 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 15:08:37,695 [DEBUG][       Thread-258922][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 15:08:37,696 [DEBUG][       Thread-258922][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 15:08:37,748 [DEBUG][       Thread-258922][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 15:08:37,748 [DEBUG][       Thread-258922][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 15:08:37,758 [DEBUG][       Thread-258922][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 15:08:37,768 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 15:08:37,768 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 15:08:37,777 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 15:08:37,787 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 15:08:37,787 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 15:08:37,788 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 15:08:37,795 [DEBUG][       Thread-258922][   transport.py][1871] : EOF in transport thread
2025-06-13 15:08:42,520 [DEBUG][Thread-258924 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:08:47,798 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 15:08:47,798 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 15:08:47,799 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 15:08:47,801 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 15:08:48,279 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 15, 8, 20), 18.08, 28.48, 0.0, 15.92, 14.08, 0, 0, 0, 2, 0, 0),)
2025-06-13 15:08:48,280 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 15:08:20
2025-06-13 15:08:48,360 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 15:08:48,364 [DEBUG][       Thread-258925][   transport.py][1871] : starting thread (client mode): 0x863a79d0
2025-06-13 15:08:48,365 [DEBUG][       Thread-258925][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 15:08:48,385 [DEBUG][       Thread-258925][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 15:08:48,385 [ INFO][       Thread-258925][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 15:08:48,388 [DEBUG][       Thread-258925][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 15:08:48,388 [DEBUG][       Thread-258925][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 15:08:48,388 [DEBUG][       Thread-258925][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 15:08:48,388 [DEBUG][       Thread-258925][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:08:48,388 [DEBUG][       Thread-258925][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:08:48,388 [DEBUG][       Thread-258925][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:08:48,388 [DEBUG][       Thread-258925][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:08:48,388 [DEBUG][       Thread-258925][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 15:08:48,388 [DEBUG][       Thread-258925][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 15:08:48,388 [DEBUG][       Thread-258925][   transport.py][1871] : client lang: <none>
2025-06-13 15:08:48,389 [DEBUG][       Thread-258925][   transport.py][1871] : server lang: <none>
2025-06-13 15:08:48,389 [DEBUG][       Thread-258925][   transport.py][1871] : kex follows: False
2025-06-13 15:08:48,389 [DEBUG][       Thread-258925][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 15:08:48,389 [DEBUG][       Thread-258925][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 15:08:48,389 [DEBUG][       Thread-258925][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 15:08:48,389 [DEBUG][       Thread-258925][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 15:08:48,389 [DEBUG][       Thread-258925][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 15:08:48,389 [DEBUG][       Thread-258925][   transport.py][1871] : Compression: none
2025-06-13 15:08:48,389 [DEBUG][       Thread-258925][   transport.py][1871] : === End of kex handshake ===
2025-06-13 15:08:48,404 [DEBUG][       Thread-258925][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 15:08:48,405 [DEBUG][       Thread-258925][   transport.py][1871] : Switch to new keys ...
2025-06-13 15:08:48,405 [DEBUG][       Thread-258925][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 15:08:48,405 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 15:08:48,406 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 15:08:48,407 [DEBUG][       Thread-258925][   transport.py][1871] : userauth is OK
2025-06-13 15:08:48,420 [ INFO][       Thread-258925][   transport.py][1871] : Authentication (password) successful!
2025-06-13 15:08:48,420 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 15:08:49,014 [DEBUG][       Thread-258925][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 15:08:49,015 [DEBUG][       Thread-258925][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 15:08:49,057 [DEBUG][       Thread-258925][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 15:08:49,057 [DEBUG][       Thread-258925][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 15:08:49,060 [DEBUG][       Thread-258925][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 15:08:49,072 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 15:08:49,073 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 15:08:49,075 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 15:08:49,077 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 15:08:49,083 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 15:08:49,085 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 15:08:49,085 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 15:08:49,086 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 15:08:49,086 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.547505 -999.00  +13.70  23.01     33   -2.00 1 1 1 1 1   887    0 16.53 40.94 ----- 20.3 23.0 43.8 29.5 17.2 -31.5 16.3 -33.0 17.1 -32.4 18.2 -29.6
2025-06-13 15:08:49,086 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 15:08:49,086 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 15:08:49,086 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.547505
2025-06-13 15:08:49,086 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 15:08:49,087 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 15:08:49,087 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 15:08:49,087 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 15:08:49,087 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 15:08:49,087 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T15:08:20', tmtdew=18.08, humidity=28.48, cloud=0.0, wind=15.92, temperature=14.08, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T13:08:24.432', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 15:08:49,088 [DEBUG][       Thread-258925][   transport.py][1871] : EOF in transport thread
2025-06-13 15:08:49,183 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 15:08:49,192 [DEBUG][       Thread-258928][   transport.py][1871] : starting thread (client mode): 0x867b63e0
2025-06-13 15:08:49,192 [DEBUG][       Thread-258928][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 15:08:49,207 [DEBUG][       Thread-258928][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 15:08:49,207 [ INFO][       Thread-258928][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 15:08:49,215 [DEBUG][       Thread-258928][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 15:08:49,215 [DEBUG][       Thread-258928][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 15:08:49,215 [DEBUG][       Thread-258928][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 15:08:49,215 [DEBUG][       Thread-258928][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:08:49,215 [DEBUG][       Thread-258928][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:08:49,215 [DEBUG][       Thread-258928][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:08:49,215 [DEBUG][       Thread-258928][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:08:49,215 [DEBUG][       Thread-258928][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 15:08:49,215 [DEBUG][       Thread-258928][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 15:08:49,215 [DEBUG][       Thread-258928][   transport.py][1871] : client lang: <none>
2025-06-13 15:08:49,215 [DEBUG][       Thread-258928][   transport.py][1871] : server lang: <none>
2025-06-13 15:08:49,215 [DEBUG][       Thread-258928][   transport.py][1871] : kex follows: False
2025-06-13 15:08:49,215 [DEBUG][       Thread-258928][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 15:08:49,215 [DEBUG][       Thread-258928][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 15:08:49,215 [DEBUG][       Thread-258928][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 15:08:49,215 [DEBUG][       Thread-258928][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 15:08:49,215 [DEBUG][       Thread-258928][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 15:08:49,215 [DEBUG][       Thread-258928][   transport.py][1871] : Compression: none
2025-06-13 15:08:49,215 [DEBUG][       Thread-258928][   transport.py][1871] : === End of kex handshake ===
2025-06-13 15:08:49,280 [DEBUG][       Thread-258928][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 15:08:49,280 [DEBUG][       Thread-258928][   transport.py][1871] : Switch to new keys ...
2025-06-13 15:08:49,281 [DEBUG][       Thread-258928][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 15:08:49,281 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 15:08:49,281 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 15:08:49,344 [DEBUG][       Thread-258928][   transport.py][1871] : userauth is OK
2025-06-13 15:08:49,344 [DEBUG][       Thread-258928][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 15:08:49,344 [DEBUG][       Thread-258928][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 15:08:49,344 [DEBUG][       Thread-258928][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 15:08:49,344 [DEBUG][       Thread-258928][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 15:08:49,363 [ INFO][       Thread-258928][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 15:08:49,363 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 15:08:49,363 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 15:08:50,388 [DEBUG][       Thread-258928][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 15:08:50,389 [DEBUG][       Thread-258928][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 15:08:50,440 [DEBUG][       Thread-258928][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 15:08:50,440 [DEBUG][       Thread-258928][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 15:08:50,451 [DEBUG][       Thread-258928][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 15:08:50,460 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 15:08:50,460 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 15:08:50,469 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 15:08:50,480 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 15:08:50,480 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 15:08:50,481 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 15:08:50,489 [DEBUG][       Thread-258928][   transport.py][1871] : EOF in transport thread
2025-06-13 15:08:51,555 [DEBUG][Thread-258930 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:09:00,491 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 15:09:00,491 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 15:09:00,491 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 15:09:00,492 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 15:09:00,573 [DEBUG][Thread-258931 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:09:01,000 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 15, 8, 52), 17.96, 28.71, 0.0, 14.31, 14.03, 0, 0, 0, 2, 0, 0),)
2025-06-13 15:09:01,000 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 15:08:52
2025-06-13 15:09:01,086 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 15:09:01,092 [DEBUG][       Thread-258932][   transport.py][1871] : starting thread (client mode): 0x863efac0
2025-06-13 15:09:01,092 [DEBUG][       Thread-258932][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 15:09:01,113 [DEBUG][       Thread-258932][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 15:09:01,113 [ INFO][       Thread-258932][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 15:09:01,116 [DEBUG][       Thread-258932][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 15:09:01,117 [DEBUG][       Thread-258932][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 15:09:01,117 [DEBUG][       Thread-258932][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 15:09:01,117 [DEBUG][       Thread-258932][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:09:01,117 [DEBUG][       Thread-258932][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:09:01,117 [DEBUG][       Thread-258932][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:09:01,117 [DEBUG][       Thread-258932][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:09:01,117 [DEBUG][       Thread-258932][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 15:09:01,117 [DEBUG][       Thread-258932][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 15:09:01,117 [DEBUG][       Thread-258932][   transport.py][1871] : client lang: <none>
2025-06-13 15:09:01,117 [DEBUG][       Thread-258932][   transport.py][1871] : server lang: <none>
2025-06-13 15:09:01,117 [DEBUG][       Thread-258932][   transport.py][1871] : kex follows: False
2025-06-13 15:09:01,117 [DEBUG][       Thread-258932][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 15:09:01,117 [DEBUG][       Thread-258932][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 15:09:01,117 [DEBUG][       Thread-258932][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 15:09:01,117 [DEBUG][       Thread-258932][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 15:09:01,117 [DEBUG][       Thread-258932][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 15:09:01,117 [DEBUG][       Thread-258932][   transport.py][1871] : Compression: none
2025-06-13 15:09:01,117 [DEBUG][       Thread-258932][   transport.py][1871] : === End of kex handshake ===
2025-06-13 15:09:01,132 [DEBUG][       Thread-258932][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 15:09:01,132 [DEBUG][       Thread-258932][   transport.py][1871] : Switch to new keys ...
2025-06-13 15:09:01,132 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 15:09:01,132 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 15:09:01,133 [DEBUG][       Thread-258932][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 15:09:01,133 [DEBUG][       Thread-258932][   transport.py][1871] : userauth is OK
2025-06-13 15:09:01,157 [ INFO][       Thread-258932][   transport.py][1871] : Authentication (password) successful!
2025-06-13 15:09:01,157 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 15:09:01,745 [DEBUG][       Thread-258932][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 15:09:01,745 [DEBUG][       Thread-258932][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 15:09:01,788 [DEBUG][       Thread-258932][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 15:09:01,788 [DEBUG][       Thread-258932][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 15:09:01,791 [DEBUG][       Thread-258932][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 15:09:01,803 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 15:09:01,804 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 15:09:01,805 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 15:09:01,806 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 15:09:01,809 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 15:09:01,810 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 15:09:01,810 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 15:09:01,810 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 15:09:01,810 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.547505 -999.00  +13.70  23.01     33   -2.00 1 1 1 1 1   887    0 16.53 40.94 ----- 20.3 23.0 43.8 29.5 17.2 -31.5 16.3 -33.0 17.1 -32.4 18.2 -29.6
2025-06-13 15:09:01,810 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 15:09:01,810 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 15:09:01,810 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.547505
2025-06-13 15:09:01,810 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 15:09:01,811 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 15:09:01,811 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 15:09:01,811 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 15:09:01,811 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 15:09:01,811 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T15:08:52', tmtdew=17.96, humidity=28.71, cloud=0.0, wind=14.31, temperature=14.03, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T13:08:24.432', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 15:09:01,811 [DEBUG][       Thread-258932][   transport.py][1871] : EOF in transport thread
2025-06-13 15:09:01,886 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 15:09:01,900 [DEBUG][       Thread-258935][   transport.py][1871] : starting thread (client mode): 0x868938b0
2025-06-13 15:09:01,901 [DEBUG][       Thread-258935][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 15:09:01,915 [DEBUG][       Thread-258935][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 15:09:01,915 [ INFO][       Thread-258935][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 15:09:01,923 [DEBUG][       Thread-258935][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 15:09:01,923 [DEBUG][       Thread-258935][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 15:09:01,923 [DEBUG][       Thread-258935][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 15:09:01,923 [DEBUG][       Thread-258935][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:09:01,923 [DEBUG][       Thread-258935][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:09:01,923 [DEBUG][       Thread-258935][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:09:01,923 [DEBUG][       Thread-258935][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:09:01,923 [DEBUG][       Thread-258935][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 15:09:01,923 [DEBUG][       Thread-258935][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 15:09:01,923 [DEBUG][       Thread-258935][   transport.py][1871] : client lang: <none>
2025-06-13 15:09:01,923 [DEBUG][       Thread-258935][   transport.py][1871] : server lang: <none>
2025-06-13 15:09:01,923 [DEBUG][       Thread-258935][   transport.py][1871] : kex follows: False
2025-06-13 15:09:01,923 [DEBUG][       Thread-258935][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 15:09:01,923 [DEBUG][       Thread-258935][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 15:09:01,923 [DEBUG][       Thread-258935][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 15:09:01,923 [DEBUG][       Thread-258935][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 15:09:01,923 [DEBUG][       Thread-258935][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 15:09:01,923 [DEBUG][       Thread-258935][   transport.py][1871] : Compression: none
2025-06-13 15:09:01,923 [DEBUG][       Thread-258935][   transport.py][1871] : === End of kex handshake ===
2025-06-13 15:09:01,979 [DEBUG][       Thread-258935][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 15:09:01,979 [DEBUG][       Thread-258935][   transport.py][1871] : Switch to new keys ...
2025-06-13 15:09:01,979 [DEBUG][       Thread-258935][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 15:09:01,979 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 15:09:01,979 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 15:09:02,036 [DEBUG][       Thread-258935][   transport.py][1871] : userauth is OK
2025-06-13 15:09:02,036 [DEBUG][       Thread-258935][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 15:09:02,036 [DEBUG][       Thread-258935][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 15:09:02,036 [DEBUG][       Thread-258935][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 15:09:02,036 [DEBUG][       Thread-258935][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 15:09:02,050 [ INFO][       Thread-258935][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 15:09:02,050 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 15:09:02,050 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 15:09:03,044 [DEBUG][       Thread-258935][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 15:09:03,044 [DEBUG][       Thread-258935][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 15:09:03,095 [DEBUG][       Thread-258935][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 15:09:03,095 [DEBUG][       Thread-258935][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 15:09:03,104 [DEBUG][       Thread-258935][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 15:09:03,112 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 15:09:03,112 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 15:09:03,120 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 15:09:03,130 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 15:09:03,130 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 15:09:03,130 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 15:09:03,138 [DEBUG][       Thread-258935][   transport.py][1871] : EOF in transport thread
2025-06-13 15:09:06,639 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:09:06,640 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:09:09,593 [DEBUG][Thread-258937 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:09:13,141 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 15:09:13,141 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 15:09:13,141 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 15:09:13,144 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 15:09:13,633 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 15, 8, 52), 17.96, 28.71, 0.0, 14.31, 14.03, 0, 0, 0, 2, 0, 0),)
2025-06-13 15:09:13,633 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 15:08:52
2025-06-13 15:09:13,714 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 15:09:13,720 [DEBUG][       Thread-258938][   transport.py][1871] : starting thread (client mode): 0x863a4550
2025-06-13 15:09:13,720 [DEBUG][       Thread-258938][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 15:09:13,741 [DEBUG][       Thread-258938][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 15:09:13,741 [ INFO][       Thread-258938][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 15:09:13,744 [DEBUG][       Thread-258938][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 15:09:13,744 [DEBUG][       Thread-258938][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 15:09:13,744 [DEBUG][       Thread-258938][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 15:09:13,744 [DEBUG][       Thread-258938][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:09:13,744 [DEBUG][       Thread-258938][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:09:13,744 [DEBUG][       Thread-258938][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:09:13,744 [DEBUG][       Thread-258938][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:09:13,744 [DEBUG][       Thread-258938][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 15:09:13,744 [DEBUG][       Thread-258938][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 15:09:13,744 [DEBUG][       Thread-258938][   transport.py][1871] : client lang: <none>
2025-06-13 15:09:13,744 [DEBUG][       Thread-258938][   transport.py][1871] : server lang: <none>
2025-06-13 15:09:13,744 [DEBUG][       Thread-258938][   transport.py][1871] : kex follows: False
2025-06-13 15:09:13,744 [DEBUG][       Thread-258938][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 15:09:13,744 [DEBUG][       Thread-258938][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 15:09:13,744 [DEBUG][       Thread-258938][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 15:09:13,744 [DEBUG][       Thread-258938][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 15:09:13,744 [DEBUG][       Thread-258938][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 15:09:13,744 [DEBUG][       Thread-258938][   transport.py][1871] : Compression: none
2025-06-13 15:09:13,745 [DEBUG][       Thread-258938][   transport.py][1871] : === End of kex handshake ===
2025-06-13 15:09:13,753 [DEBUG][       Thread-258938][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 15:09:13,754 [DEBUG][       Thread-258938][   transport.py][1871] : Switch to new keys ...
2025-06-13 15:09:13,754 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 15:09:13,754 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 15:09:13,755 [DEBUG][       Thread-258938][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 15:09:13,755 [DEBUG][       Thread-258938][   transport.py][1871] : userauth is OK
2025-06-13 15:09:13,769 [ INFO][       Thread-258938][   transport.py][1871] : Authentication (password) successful!
2025-06-13 15:09:13,769 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 15:09:14,420 [DEBUG][       Thread-258938][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 15:09:14,420 [DEBUG][       Thread-258938][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 15:09:14,465 [DEBUG][       Thread-258938][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 15:09:14,465 [DEBUG][       Thread-258938][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 15:09:14,469 [DEBUG][       Thread-258938][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 15:09:14,482 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 15:09:14,483 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 15:09:14,485 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 15:09:14,487 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 15:09:14,493 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 15:09:14,496 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 15:09:14,496 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 15:09:14,497 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 15:09:14,497 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.547505 -999.00  +13.70  23.01     33   -2.00 1 1 1 1 1   887    0 16.53 40.94 ----- 20.3 23.0 43.8 29.5 17.2 -31.5 16.3 -33.0 17.1 -32.4 18.2 -29.6
2025-06-13 15:09:14,497 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 15:09:14,497 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 15:09:14,497 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.547505
2025-06-13 15:09:14,497 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 15:09:14,498 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 15:09:14,498 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 15:09:14,498 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 15:09:14,498 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 15:09:14,498 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T15:08:52', tmtdew=17.96, humidity=28.71, cloud=0.0, wind=14.31, temperature=14.03, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T13:08:24.432', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 15:09:14,500 [DEBUG][       Thread-258938][   transport.py][1871] : EOF in transport thread
2025-06-13 15:09:14,582 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 15:09:14,594 [DEBUG][       Thread-258941][   transport.py][1871] : starting thread (client mode): 0x867b60b0
2025-06-13 15:09:14,594 [DEBUG][       Thread-258941][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 15:09:14,611 [DEBUG][       Thread-258941][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 15:09:14,611 [ INFO][       Thread-258941][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 15:09:14,619 [DEBUG][       Thread-258941][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 15:09:14,619 [DEBUG][       Thread-258941][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 15:09:14,619 [DEBUG][       Thread-258941][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 15:09:14,619 [DEBUG][       Thread-258941][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:09:14,619 [DEBUG][       Thread-258941][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:09:14,619 [DEBUG][       Thread-258941][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:09:14,619 [DEBUG][       Thread-258941][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:09:14,619 [DEBUG][       Thread-258941][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 15:09:14,619 [DEBUG][       Thread-258941][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 15:09:14,619 [DEBUG][       Thread-258941][   transport.py][1871] : client lang: <none>
2025-06-13 15:09:14,619 [DEBUG][       Thread-258941][   transport.py][1871] : server lang: <none>
2025-06-13 15:09:14,619 [DEBUG][       Thread-258941][   transport.py][1871] : kex follows: False
2025-06-13 15:09:14,619 [DEBUG][       Thread-258941][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 15:09:14,619 [DEBUG][       Thread-258941][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 15:09:14,620 [DEBUG][       Thread-258941][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 15:09:14,620 [DEBUG][       Thread-258941][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 15:09:14,620 [DEBUG][       Thread-258941][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 15:09:14,620 [DEBUG][       Thread-258941][   transport.py][1871] : Compression: none
2025-06-13 15:09:14,620 [DEBUG][       Thread-258941][   transport.py][1871] : === End of kex handshake ===
2025-06-13 15:09:14,677 [DEBUG][       Thread-258941][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 15:09:14,678 [DEBUG][       Thread-258941][   transport.py][1871] : Switch to new keys ...
2025-06-13 15:09:14,678 [DEBUG][       Thread-258941][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 15:09:14,678 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 15:09:14,678 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 15:09:14,736 [DEBUG][       Thread-258941][   transport.py][1871] : userauth is OK
2025-06-13 15:09:14,736 [DEBUG][       Thread-258941][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 15:09:14,736 [DEBUG][       Thread-258941][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 15:09:14,737 [DEBUG][       Thread-258941][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 15:09:14,737 [DEBUG][       Thread-258941][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 15:09:14,759 [ INFO][       Thread-258941][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 15:09:14,760 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 15:09:14,760 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 15:09:15,764 [DEBUG][       Thread-258941][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 15:09:15,764 [DEBUG][       Thread-258941][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 15:09:15,816 [DEBUG][       Thread-258941][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 15:09:15,816 [DEBUG][       Thread-258941][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 15:09:15,827 [DEBUG][       Thread-258941][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 15:09:15,837 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 15:09:15,837 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 15:09:15,847 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 15:09:15,856 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 15:09:15,857 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 15:09:15,857 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 15:09:15,865 [DEBUG][       Thread-258941][   transport.py][1871] : EOF in transport thread
2025-06-13 15:09:18,628 [DEBUG][Thread-258943 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:09:20,193 [DEBUG][Thread-258944 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:09:25,864 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 15:09:25,864 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 15:09:25,864 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 15:09:25,865 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 15:09:26,366 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 15, 8, 52), 17.96, 28.71, 0.0, 14.31, 14.03, 0, 0, 0, 2, 0, 0),)
2025-06-13 15:09:26,366 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 15:08:52
2025-06-13 15:09:26,447 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 15:09:26,451 [DEBUG][       Thread-258945][   transport.py][1871] : starting thread (client mode): 0x863ecd90
2025-06-13 15:09:26,451 [DEBUG][       Thread-258945][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 15:09:26,472 [DEBUG][       Thread-258945][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 15:09:26,472 [ INFO][       Thread-258945][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 15:09:26,473 [DEBUG][       Thread-258945][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 15:09:26,473 [DEBUG][       Thread-258945][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 15:09:26,473 [DEBUG][       Thread-258945][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 15:09:26,473 [DEBUG][       Thread-258945][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:09:26,473 [DEBUG][       Thread-258945][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:09:26,473 [DEBUG][       Thread-258945][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:09:26,474 [DEBUG][       Thread-258945][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:09:26,474 [DEBUG][       Thread-258945][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 15:09:26,474 [DEBUG][       Thread-258945][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 15:09:26,474 [DEBUG][       Thread-258945][   transport.py][1871] : client lang: <none>
2025-06-13 15:09:26,474 [DEBUG][       Thread-258945][   transport.py][1871] : server lang: <none>
2025-06-13 15:09:26,474 [DEBUG][       Thread-258945][   transport.py][1871] : kex follows: False
2025-06-13 15:09:26,474 [DEBUG][       Thread-258945][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 15:09:26,474 [DEBUG][       Thread-258945][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 15:09:26,474 [DEBUG][       Thread-258945][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 15:09:26,474 [DEBUG][       Thread-258945][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 15:09:26,474 [DEBUG][       Thread-258945][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 15:09:26,474 [DEBUG][       Thread-258945][   transport.py][1871] : Compression: none
2025-06-13 15:09:26,474 [DEBUG][       Thread-258945][   transport.py][1871] : === End of kex handshake ===
2025-06-13 15:09:26,480 [DEBUG][       Thread-258945][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 15:09:26,481 [DEBUG][       Thread-258945][   transport.py][1871] : Switch to new keys ...
2025-06-13 15:09:26,481 [DEBUG][       Thread-258945][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 15:09:26,481 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 15:09:26,481 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 15:09:26,481 [DEBUG][       Thread-258945][   transport.py][1871] : userauth is OK
2025-06-13 15:09:26,505 [ INFO][       Thread-258945][   transport.py][1871] : Authentication (password) successful!
2025-06-13 15:09:26,505 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 15:09:26,940 [DEBUG][Thread-258947 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:09:27,111 [DEBUG][       Thread-258945][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 15:09:27,112 [DEBUG][       Thread-258945][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 15:09:27,153 [DEBUG][       Thread-258945][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 15:09:27,153 [DEBUG][       Thread-258945][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 15:09:27,156 [DEBUG][       Thread-258945][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 15:09:27,168 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 15:09:27,168 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 15:09:27,170 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 15:09:27,173 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 15:09:27,179 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 15:09:27,181 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 15:09:27,181 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 15:09:27,182 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 15:09:27,182 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.547853 -999.00  +13.60  21.20     33   -2.00 1 1 1 1 1   887    0 16.54 40.91 ----- 15.8 21.2 49.8 24.0 17.3 -31.4 16.3 -33.1 17.0 -31.9 18.2 -29.2
2025-06-13 15:09:27,182 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 15:09:27,182 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 15:09:27,182 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.547853
2025-06-13 15:09:27,183 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 15:09:27,183 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 15:09:27,183 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 15:09:27,183 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 15:09:27,183 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 15:09:27,184 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T15:08:52', tmtdew=17.96, humidity=28.71, cloud=0.0, wind=14.31, temperature=14.03, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T13:08:54.499', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 15:09:27,185 [DEBUG][       Thread-258945][   transport.py][1871] : EOF in transport thread
2025-06-13 15:09:27,267 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 15:09:27,280 [DEBUG][       Thread-258949][   transport.py][1871] : starting thread (client mode): 0x863a6ec0
2025-06-13 15:09:27,280 [DEBUG][       Thread-258949][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 15:09:27,295 [DEBUG][       Thread-258949][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 15:09:27,295 [ INFO][       Thread-258949][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 15:09:27,303 [DEBUG][       Thread-258949][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 15:09:27,303 [DEBUG][       Thread-258949][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 15:09:27,303 [DEBUG][       Thread-258949][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 15:09:27,303 [DEBUG][       Thread-258949][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:09:27,303 [DEBUG][       Thread-258949][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:09:27,303 [DEBUG][       Thread-258949][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:09:27,303 [DEBUG][       Thread-258949][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:09:27,303 [DEBUG][       Thread-258949][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 15:09:27,304 [DEBUG][       Thread-258949][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 15:09:27,304 [DEBUG][       Thread-258949][   transport.py][1871] : client lang: <none>
2025-06-13 15:09:27,304 [DEBUG][       Thread-258949][   transport.py][1871] : server lang: <none>
2025-06-13 15:09:27,304 [DEBUG][       Thread-258949][   transport.py][1871] : kex follows: False
2025-06-13 15:09:27,304 [DEBUG][       Thread-258949][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 15:09:27,304 [DEBUG][       Thread-258949][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 15:09:27,304 [DEBUG][       Thread-258949][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 15:09:27,304 [DEBUG][       Thread-258949][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 15:09:27,304 [DEBUG][       Thread-258949][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 15:09:27,304 [DEBUG][       Thread-258949][   transport.py][1871] : Compression: none
2025-06-13 15:09:27,304 [DEBUG][       Thread-258949][   transport.py][1871] : === End of kex handshake ===
2025-06-13 15:09:27,360 [DEBUG][       Thread-258949][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 15:09:27,361 [DEBUG][       Thread-258949][   transport.py][1871] : Switch to new keys ...
2025-06-13 15:09:27,361 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 15:09:27,362 [DEBUG][       Thread-258949][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 15:09:27,363 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 15:09:27,424 [DEBUG][       Thread-258949][   transport.py][1871] : userauth is OK
2025-06-13 15:09:27,424 [DEBUG][       Thread-258949][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 15:09:27,424 [DEBUG][       Thread-258949][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 15:09:27,425 [DEBUG][       Thread-258949][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 15:09:27,425 [DEBUG][       Thread-258949][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 15:09:27,444 [ INFO][       Thread-258949][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 15:09:27,445 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 15:09:27,445 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 15:09:27,649 [DEBUG][Thread-258951 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:09:28,020 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:09:28,021 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:09:28,438 [DEBUG][       Thread-258949][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 15:09:28,439 [DEBUG][       Thread-258949][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 15:09:28,488 [DEBUG][       Thread-258949][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 15:09:28,488 [DEBUG][       Thread-258949][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 15:09:28,500 [DEBUG][       Thread-258949][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 15:09:28,509 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 15:09:28,509 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 15:09:28,518 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 15:09:28,527 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 15:09:28,527 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 15:09:28,528 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 15:09:28,535 [DEBUG][       Thread-258949][   transport.py][1871] : EOF in transport thread
2025-06-13 15:09:36,674 [DEBUG][Thread-258952 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:09:38,536 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 15:09:38,536 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 15:09:38,536 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 15:09:38,537 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 15:09:39,042 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 15, 9, 24), 17.84, 28.88, 0.0, 20.26, 14.02, 0, 0, 0, 2, 0, 0),)
2025-06-13 15:09:39,042 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 15:09:24
2025-06-13 15:09:39,129 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 15:09:39,134 [DEBUG][       Thread-258953][   transport.py][1871] : starting thread (client mode): 0x863be860
2025-06-13 15:09:39,135 [DEBUG][       Thread-258953][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 15:09:39,155 [DEBUG][       Thread-258953][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 15:09:39,155 [ INFO][       Thread-258953][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 15:09:39,159 [DEBUG][       Thread-258953][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 15:09:39,159 [DEBUG][       Thread-258953][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 15:09:39,159 [DEBUG][       Thread-258953][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 15:09:39,159 [DEBUG][       Thread-258953][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:09:39,159 [DEBUG][       Thread-258953][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:09:39,159 [DEBUG][       Thread-258953][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:09:39,159 [DEBUG][       Thread-258953][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:09:39,159 [DEBUG][       Thread-258953][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 15:09:39,159 [DEBUG][       Thread-258953][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 15:09:39,159 [DEBUG][       Thread-258953][   transport.py][1871] : client lang: <none>
2025-06-13 15:09:39,159 [DEBUG][       Thread-258953][   transport.py][1871] : server lang: <none>
2025-06-13 15:09:39,159 [DEBUG][       Thread-258953][   transport.py][1871] : kex follows: False
2025-06-13 15:09:39,159 [DEBUG][       Thread-258953][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 15:09:39,159 [DEBUG][       Thread-258953][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 15:09:39,159 [DEBUG][       Thread-258953][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 15:09:39,159 [DEBUG][       Thread-258953][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 15:09:39,159 [DEBUG][       Thread-258953][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 15:09:39,159 [DEBUG][       Thread-258953][   transport.py][1871] : Compression: none
2025-06-13 15:09:39,159 [DEBUG][       Thread-258953][   transport.py][1871] : === End of kex handshake ===
2025-06-13 15:09:39,174 [DEBUG][       Thread-258953][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 15:09:39,174 [DEBUG][       Thread-258953][   transport.py][1871] : Switch to new keys ...
2025-06-13 15:09:39,174 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 15:09:39,174 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 15:09:39,174 [DEBUG][       Thread-258953][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 15:09:39,174 [DEBUG][       Thread-258953][   transport.py][1871] : userauth is OK
2025-06-13 15:09:39,198 [ INFO][       Thread-258953][   transport.py][1871] : Authentication (password) successful!
2025-06-13 15:09:39,198 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 15:09:39,842 [DEBUG][       Thread-258953][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 15:09:39,842 [DEBUG][       Thread-258953][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 15:09:39,884 [DEBUG][       Thread-258953][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 15:09:39,884 [DEBUG][       Thread-258953][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 15:09:39,886 [DEBUG][       Thread-258953][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 15:09:39,898 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 15:09:39,898 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 15:09:39,899 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 15:09:39,900 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 15:09:39,902 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 15:09:39,903 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 15:09:39,903 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 15:09:39,903 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 15:09:39,903 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.547853 -999.00  +13.60  21.20     33   -2.00 1 1 1 1 1   887    0 16.54 40.91 ----- 15.8 21.2 49.8 24.0 17.3 -31.4 16.3 -33.1 17.0 -31.9 18.2 -29.2
2025-06-13 15:09:39,903 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 15:09:39,903 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 15:09:39,903 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.547853
2025-06-13 15:09:39,903 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 15:09:39,903 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 15:09:39,903 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 15:09:39,903 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 15:09:39,903 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 15:09:39,903 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T15:09:24', tmtdew=17.84, humidity=28.88, cloud=0.0, wind=20.26, temperature=14.02, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T13:08:54.499', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 15:09:39,904 [DEBUG][       Thread-258953][   transport.py][1871] : EOF in transport thread
2025-06-13 15:09:39,977 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 15:09:39,989 [DEBUG][       Thread-258956][   transport.py][1871] : starting thread (client mode): 0x867b5450
2025-06-13 15:09:39,989 [DEBUG][       Thread-258956][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 15:09:40,004 [DEBUG][       Thread-258956][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 15:09:40,004 [ INFO][       Thread-258956][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 15:09:40,011 [DEBUG][       Thread-258956][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 15:09:40,011 [DEBUG][       Thread-258956][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 15:09:40,011 [DEBUG][       Thread-258956][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 15:09:40,011 [DEBUG][       Thread-258956][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:09:40,011 [DEBUG][       Thread-258956][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:09:40,011 [DEBUG][       Thread-258956][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:09:40,011 [DEBUG][       Thread-258956][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:09:40,011 [DEBUG][       Thread-258956][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 15:09:40,011 [DEBUG][       Thread-258956][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 15:09:40,011 [DEBUG][       Thread-258956][   transport.py][1871] : client lang: <none>
2025-06-13 15:09:40,011 [DEBUG][       Thread-258956][   transport.py][1871] : server lang: <none>
2025-06-13 15:09:40,011 [DEBUG][       Thread-258956][   transport.py][1871] : kex follows: False
2025-06-13 15:09:40,011 [DEBUG][       Thread-258956][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 15:09:40,011 [DEBUG][       Thread-258956][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 15:09:40,011 [DEBUG][       Thread-258956][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 15:09:40,011 [DEBUG][       Thread-258956][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 15:09:40,011 [DEBUG][       Thread-258956][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 15:09:40,011 [DEBUG][       Thread-258956][   transport.py][1871] : Compression: none
2025-06-13 15:09:40,011 [DEBUG][       Thread-258956][   transport.py][1871] : === End of kex handshake ===
2025-06-13 15:09:40,066 [DEBUG][       Thread-258956][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 15:09:40,066 [DEBUG][       Thread-258956][   transport.py][1871] : Switch to new keys ...
2025-06-13 15:09:40,066 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 15:09:40,066 [DEBUG][       Thread-258956][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 15:09:40,067 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 15:09:40,125 [DEBUG][       Thread-258956][   transport.py][1871] : userauth is OK
2025-06-13 15:09:40,125 [DEBUG][       Thread-258956][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 15:09:40,125 [DEBUG][       Thread-258956][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 15:09:40,125 [DEBUG][       Thread-258956][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 15:09:40,125 [DEBUG][       Thread-258956][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 15:09:40,139 [ INFO][       Thread-258956][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 15:09:40,139 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 15:09:40,139 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 15:09:41,108 [DEBUG][       Thread-258956][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 15:09:41,108 [DEBUG][       Thread-258956][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 15:09:41,159 [DEBUG][       Thread-258956][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 15:09:41,159 [DEBUG][       Thread-258956][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 15:09:41,168 [DEBUG][       Thread-258956][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 15:09:41,181 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 15:09:41,181 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 15:09:41,194 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 15:09:41,202 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 15:09:41,202 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 15:09:41,202 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 15:09:41,210 [DEBUG][       Thread-258956][   transport.py][1871] : EOF in transport thread
2025-06-13 15:09:45,693 [DEBUG][Thread-258958 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:09:51,213 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 15:09:51,213 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 15:09:51,213 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 15:09:51,216 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 15:09:51,701 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 15, 9, 24), 17.84, 28.88, 0.0, 20.26, 14.02, 0, 0, 0, 2, 0, 0),)
2025-06-13 15:09:51,701 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 15:09:24
2025-06-13 15:09:51,782 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 15:09:51,786 [DEBUG][       Thread-258959][   transport.py][1871] : starting thread (client mode): 0x863bcb20
2025-06-13 15:09:51,786 [DEBUG][       Thread-258959][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 15:09:51,796 [DEBUG][       Thread-258959][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 15:09:51,796 [ INFO][       Thread-258959][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 15:09:51,798 [DEBUG][       Thread-258959][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 15:09:51,798 [DEBUG][       Thread-258959][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 15:09:51,798 [DEBUG][       Thread-258959][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 15:09:51,798 [DEBUG][       Thread-258959][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:09:51,798 [DEBUG][       Thread-258959][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:09:51,798 [DEBUG][       Thread-258959][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:09:51,798 [DEBUG][       Thread-258959][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:09:51,798 [DEBUG][       Thread-258959][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 15:09:51,798 [DEBUG][       Thread-258959][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 15:09:51,798 [DEBUG][       Thread-258959][   transport.py][1871] : client lang: <none>
2025-06-13 15:09:51,798 [DEBUG][       Thread-258959][   transport.py][1871] : server lang: <none>
2025-06-13 15:09:51,798 [DEBUG][       Thread-258959][   transport.py][1871] : kex follows: False
2025-06-13 15:09:51,798 [DEBUG][       Thread-258959][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 15:09:51,798 [DEBUG][       Thread-258959][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 15:09:51,798 [DEBUG][       Thread-258959][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 15:09:51,798 [DEBUG][       Thread-258959][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 15:09:51,798 [DEBUG][       Thread-258959][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 15:09:51,798 [DEBUG][       Thread-258959][   transport.py][1871] : Compression: none
2025-06-13 15:09:51,798 [DEBUG][       Thread-258959][   transport.py][1871] : === End of kex handshake ===
2025-06-13 15:09:51,806 [DEBUG][       Thread-258959][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 15:09:51,806 [DEBUG][       Thread-258959][   transport.py][1871] : Switch to new keys ...
2025-06-13 15:09:51,807 [DEBUG][       Thread-258959][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 15:09:51,807 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 15:09:51,807 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 15:09:51,807 [DEBUG][       Thread-258959][   transport.py][1871] : userauth is OK
2025-06-13 15:09:51,821 [ INFO][       Thread-258959][   transport.py][1871] : Authentication (password) successful!
2025-06-13 15:09:51,821 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 15:09:52,394 [DEBUG][       Thread-258959][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 15:09:52,395 [DEBUG][       Thread-258959][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 15:09:52,437 [DEBUG][       Thread-258959][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 15:09:52,437 [DEBUG][       Thread-258959][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 15:09:52,439 [DEBUG][       Thread-258959][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 15:09:52,451 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 15:09:52,452 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 15:09:52,453 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 15:09:52,455 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 15:09:52,459 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 15:09:52,461 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 15:09:52,462 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 15:09:52,462 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 15:09:52,462 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.548200 -999.00  +13.70  20.79     34   -1.80 1 1 1 1 1   887    0 16.53 40.33 ----- 21.3 20.8 49.2 24.4 17.4 -31.3 16.3 -32.7 17.1 -30.9 18.3 -29.4
2025-06-13 15:09:52,462 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 15:09:52,463 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 15:09:52,463 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.548200
2025-06-13 15:09:52,463 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 15:09:52,464 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 15:09:52,464 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 15:09:52,464 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 15:09:52,464 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 15:09:52,464 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T15:09:24', tmtdew=17.84, humidity=28.88, cloud=0.0, wind=20.26, temperature=14.02, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T13:09:24.480', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 15:09:52,465 [DEBUG][       Thread-258959][   transport.py][1871] : EOF in transport thread
2025-06-13 15:09:52,548 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 15:09:52,557 [DEBUG][       Thread-258962][   transport.py][1871] : starting thread (client mode): 0x863eca90
2025-06-13 15:09:52,557 [DEBUG][       Thread-258962][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 15:09:52,574 [DEBUG][       Thread-258962][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 15:09:52,574 [ INFO][       Thread-258962][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 15:09:52,581 [DEBUG][       Thread-258962][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 15:09:52,582 [DEBUG][       Thread-258962][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 15:09:52,582 [DEBUG][       Thread-258962][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 15:09:52,582 [DEBUG][       Thread-258962][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:09:52,582 [DEBUG][       Thread-258962][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:09:52,582 [DEBUG][       Thread-258962][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:09:52,582 [DEBUG][       Thread-258962][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:09:52,582 [DEBUG][       Thread-258962][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 15:09:52,582 [DEBUG][       Thread-258962][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 15:09:52,582 [DEBUG][       Thread-258962][   transport.py][1871] : client lang: <none>
2025-06-13 15:09:52,582 [DEBUG][       Thread-258962][   transport.py][1871] : server lang: <none>
2025-06-13 15:09:52,582 [DEBUG][       Thread-258962][   transport.py][1871] : kex follows: False
2025-06-13 15:09:52,582 [DEBUG][       Thread-258962][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 15:09:52,582 [DEBUG][       Thread-258962][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 15:09:52,582 [DEBUG][       Thread-258962][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 15:09:52,582 [DEBUG][       Thread-258962][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 15:09:52,582 [DEBUG][       Thread-258962][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 15:09:52,582 [DEBUG][       Thread-258962][   transport.py][1871] : Compression: none
2025-06-13 15:09:52,582 [DEBUG][       Thread-258962][   transport.py][1871] : === End of kex handshake ===
2025-06-13 15:09:52,647 [DEBUG][       Thread-258962][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 15:09:52,647 [DEBUG][       Thread-258962][   transport.py][1871] : Switch to new keys ...
2025-06-13 15:09:52,648 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 15:09:52,649 [DEBUG][       Thread-258962][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 15:09:52,649 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 15:09:52,704 [DEBUG][       Thread-258962][   transport.py][1871] : userauth is OK
2025-06-13 15:09:52,704 [DEBUG][       Thread-258962][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 15:09:52,704 [DEBUG][       Thread-258962][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 15:09:52,704 [DEBUG][       Thread-258962][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 15:09:52,704 [DEBUG][       Thread-258962][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 15:09:52,729 [ INFO][       Thread-258962][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 15:09:52,729 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 15:09:52,730 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 15:09:53,721 [DEBUG][       Thread-258962][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 15:09:53,721 [DEBUG][       Thread-258962][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 15:09:53,772 [DEBUG][       Thread-258962][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 15:09:53,773 [DEBUG][       Thread-258962][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 15:09:53,782 [DEBUG][       Thread-258962][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 15:09:53,791 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 15:09:53,792 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 15:09:53,801 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 15:09:53,810 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 15:09:53,810 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 15:09:53,810 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 15:09:53,818 [DEBUG][       Thread-258962][   transport.py][1871] : EOF in transport thread
2025-06-13 15:09:54,736 [DEBUG][Thread-258964 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:10:03,758 [DEBUG][Thread-258965 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:10:03,812 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 15:10:03,812 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 15:10:03,812 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 15:10:03,813 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 15:10:04,282 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 15, 9, 55), 17.92, 28.74, 0.0, 21.03, 14.1, 0, 0, 0, 2, 0, 0),)
2025-06-13 15:10:04,282 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 15:09:55
2025-06-13 15:10:04,366 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 15:10:04,371 [DEBUG][       Thread-258966][   transport.py][1871] : starting thread (client mode): 0x863bce80
2025-06-13 15:10:04,371 [DEBUG][       Thread-258966][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 15:10:04,395 [DEBUG][       Thread-258966][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 15:10:04,395 [ INFO][       Thread-258966][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 15:10:04,399 [DEBUG][       Thread-258966][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 15:10:04,399 [DEBUG][       Thread-258966][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 15:10:04,399 [DEBUG][       Thread-258966][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 15:10:04,399 [DEBUG][       Thread-258966][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:10:04,399 [DEBUG][       Thread-258966][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:10:04,399 [DEBUG][       Thread-258966][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:10:04,399 [DEBUG][       Thread-258966][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:10:04,399 [DEBUG][       Thread-258966][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 15:10:04,399 [DEBUG][       Thread-258966][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 15:10:04,399 [DEBUG][       Thread-258966][   transport.py][1871] : client lang: <none>
2025-06-13 15:10:04,399 [DEBUG][       Thread-258966][   transport.py][1871] : server lang: <none>
2025-06-13 15:10:04,399 [DEBUG][       Thread-258966][   transport.py][1871] : kex follows: False
2025-06-13 15:10:04,399 [DEBUG][       Thread-258966][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 15:10:04,399 [DEBUG][       Thread-258966][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 15:10:04,399 [DEBUG][       Thread-258966][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 15:10:04,399 [DEBUG][       Thread-258966][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 15:10:04,399 [DEBUG][       Thread-258966][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 15:10:04,399 [DEBUG][       Thread-258966][   transport.py][1871] : Compression: none
2025-06-13 15:10:04,399 [DEBUG][       Thread-258966][   transport.py][1871] : === End of kex handshake ===
2025-06-13 15:10:04,413 [DEBUG][       Thread-258966][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 15:10:04,413 [DEBUG][       Thread-258966][   transport.py][1871] : Switch to new keys ...
2025-06-13 15:10:04,414 [DEBUG][       Thread-258966][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 15:10:04,414 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 15:10:04,414 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 15:10:04,415 [DEBUG][       Thread-258966][   transport.py][1871] : userauth is OK
2025-06-13 15:10:04,440 [ INFO][       Thread-258966][   transport.py][1871] : Authentication (password) successful!
2025-06-13 15:10:04,441 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 15:10:06,778 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:10:06,779 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:10:12,108 [DEBUG][       Thread-258966][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 15:10:12,108 [DEBUG][       Thread-258966][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 15:10:12,149 [DEBUG][       Thread-258966][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 15:10:12,149 [DEBUG][       Thread-258966][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 15:10:12,152 [DEBUG][       Thread-258966][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 15:10:12,237 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 15:10:12,237 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 15:10:12,239 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 15:10:12,240 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 15:10:12,309 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 15:10:12,311 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 15:10:12,311 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 15:10:12,311 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 15:10:12,311 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.548200 -999.00  +13.70  20.79     34   -1.80 1 1 1 1 1   887    0 16.53 40.33 ----- 21.3 20.8 49.2 24.4 17.4 -31.3 16.3 -32.7 17.1 -30.9 18.3 -29.4
2025-06-13 15:10:12,311 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 15:10:12,311 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 15:10:12,311 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.548200
2025-06-13 15:10:12,312 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 15:10:12,312 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 15:10:12,312 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 15:10:12,312 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 15:10:12,312 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 15:10:12,313 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T15:09:55', tmtdew=17.92, humidity=28.74, cloud=0.0, wind=21.03, temperature=14.1, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T13:09:24.480', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 15:10:12,313 [DEBUG][       Thread-258966][   transport.py][1871] : EOF in transport thread
2025-06-13 15:10:12,389 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 15:10:12,400 [DEBUG][       Thread-258969][   transport.py][1871] : starting thread (client mode): 0x867b7bb0
2025-06-13 15:10:12,400 [DEBUG][       Thread-258969][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 15:10:12,415 [DEBUG][       Thread-258969][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 15:10:12,415 [ INFO][       Thread-258969][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 15:10:12,422 [DEBUG][       Thread-258969][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 15:10:12,423 [DEBUG][       Thread-258969][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 15:10:12,423 [DEBUG][       Thread-258969][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 15:10:12,423 [DEBUG][       Thread-258969][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:10:12,423 [DEBUG][       Thread-258969][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:10:12,423 [DEBUG][       Thread-258969][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:10:12,423 [DEBUG][       Thread-258969][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:10:12,423 [DEBUG][       Thread-258969][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 15:10:12,423 [DEBUG][       Thread-258969][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 15:10:12,423 [DEBUG][       Thread-258969][   transport.py][1871] : client lang: <none>
2025-06-13 15:10:12,423 [DEBUG][       Thread-258969][   transport.py][1871] : server lang: <none>
2025-06-13 15:10:12,423 [DEBUG][       Thread-258969][   transport.py][1871] : kex follows: False
2025-06-13 15:10:12,423 [DEBUG][       Thread-258969][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 15:10:12,423 [DEBUG][       Thread-258969][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 15:10:12,423 [DEBUG][       Thread-258969][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 15:10:12,423 [DEBUG][       Thread-258969][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 15:10:12,423 [DEBUG][       Thread-258969][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 15:10:12,423 [DEBUG][       Thread-258969][   transport.py][1871] : Compression: none
2025-06-13 15:10:12,423 [DEBUG][       Thread-258969][   transport.py][1871] : === End of kex handshake ===
2025-06-13 15:10:12,479 [DEBUG][       Thread-258969][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 15:10:12,479 [DEBUG][       Thread-258969][   transport.py][1871] : Switch to new keys ...
2025-06-13 15:10:12,480 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 15:10:12,480 [DEBUG][       Thread-258969][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 15:10:12,481 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 15:10:12,536 [DEBUG][       Thread-258969][   transport.py][1871] : userauth is OK
2025-06-13 15:10:12,536 [DEBUG][       Thread-258969][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 15:10:12,536 [DEBUG][       Thread-258969][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 15:10:12,536 [DEBUG][       Thread-258969][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 15:10:12,536 [DEBUG][       Thread-258969][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 15:10:12,555 [ INFO][       Thread-258969][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 15:10:12,556 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 15:10:12,556 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 15:10:12,777 [DEBUG][Thread-258971 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:10:13,564 [DEBUG][       Thread-258969][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 15:10:13,564 [DEBUG][       Thread-258969][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 15:10:13,615 [DEBUG][       Thread-258969][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 15:10:13,615 [DEBUG][       Thread-258969][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 15:10:13,624 [DEBUG][       Thread-258969][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 15:10:13,633 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 15:10:13,633 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 15:10:13,641 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 15:10:13,650 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 15:10:13,650 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 15:10:13,651 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 15:10:13,658 [DEBUG][       Thread-258969][   transport.py][1871] : EOF in transport thread
2025-06-13 15:10:20,248 [DEBUG][Thread-258972 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:10:21,800 [DEBUG][Thread-258973 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:10:23,661 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 15:10:23,661 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 15:10:23,661 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 15:10:23,664 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 15:10:24,132 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 15, 9, 55), 17.92, 28.74, 0.0, 21.03, 14.1, 0, 0, 0, 2, 0, 0),)
2025-06-13 15:10:24,132 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 15:09:55
2025-06-13 15:10:24,214 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 15:10:24,218 [DEBUG][       Thread-258974][   transport.py][1871] : starting thread (client mode): 0x863ef1c0
2025-06-13 15:10:24,218 [DEBUG][       Thread-258974][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 15:10:24,238 [DEBUG][       Thread-258974][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 15:10:24,238 [ INFO][       Thread-258974][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 15:10:24,241 [DEBUG][       Thread-258974][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 15:10:24,241 [DEBUG][       Thread-258974][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 15:10:24,241 [DEBUG][       Thread-258974][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 15:10:24,241 [DEBUG][       Thread-258974][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:10:24,241 [DEBUG][       Thread-258974][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:10:24,241 [DEBUG][       Thread-258974][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:10:24,242 [DEBUG][       Thread-258974][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:10:24,242 [DEBUG][       Thread-258974][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 15:10:24,242 [DEBUG][       Thread-258974][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 15:10:24,242 [DEBUG][       Thread-258974][   transport.py][1871] : client lang: <none>
2025-06-13 15:10:24,242 [DEBUG][       Thread-258974][   transport.py][1871] : server lang: <none>
2025-06-13 15:10:24,242 [DEBUG][       Thread-258974][   transport.py][1871] : kex follows: False
2025-06-13 15:10:24,242 [DEBUG][       Thread-258974][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 15:10:24,242 [DEBUG][       Thread-258974][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 15:10:24,242 [DEBUG][       Thread-258974][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 15:10:24,242 [DEBUG][       Thread-258974][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 15:10:24,242 [DEBUG][       Thread-258974][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 15:10:24,242 [DEBUG][       Thread-258974][   transport.py][1871] : Compression: none
2025-06-13 15:10:24,242 [DEBUG][       Thread-258974][   transport.py][1871] : === End of kex handshake ===
2025-06-13 15:10:24,259 [DEBUG][       Thread-258974][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 15:10:24,260 [DEBUG][       Thread-258974][   transport.py][1871] : Switch to new keys ...
2025-06-13 15:10:24,260 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 15:10:24,260 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 15:10:24,261 [DEBUG][       Thread-258974][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 15:10:24,262 [DEBUG][       Thread-258974][   transport.py][1871] : userauth is OK
2025-06-13 15:10:24,275 [ INFO][       Thread-258974][   transport.py][1871] : Authentication (password) successful!
2025-06-13 15:10:24,276 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 15:10:25,625 [DEBUG][       Thread-258974][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 15:10:25,625 [DEBUG][       Thread-258974][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 15:10:25,668 [DEBUG][       Thread-258974][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 15:10:25,668 [DEBUG][       Thread-258974][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 15:10:25,671 [DEBUG][       Thread-258974][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 15:10:25,678 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 15:10:25,678 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 15:10:25,679 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 15:10:25,680 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 15:10:25,683 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 15:10:25,684 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 15:10:25,684 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 15:10:25,685 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 15:10:25,685 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.548547 -999.00  +13.80  20.87     34   -1.70 1 1 1 1 1   887    0 16.98 42.70 ----- 22.8 20.9 51.6 25.0 17.4 -31.0 16.4 -32.8 17.1 -30.6 18.3 -29.5
2025-06-13 15:10:25,685 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 15:10:25,685 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 15:10:25,685 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.548547
2025-06-13 15:10:25,685 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 15:10:25,685 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 15:10:25,685 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 15:10:25,685 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 15:10:25,685 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 15:10:25,685 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T15:09:55', tmtdew=17.92, humidity=28.74, cloud=0.0, wind=21.03, temperature=14.1, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T13:09:54.461', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 15:10:25,685 [DEBUG][       Thread-258974][   transport.py][1871] : EOF in transport thread
2025-06-13 15:10:25,756 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 15:10:25,766 [DEBUG][       Thread-258977][   transport.py][1871] : starting thread (client mode): 0x863bd150
2025-06-13 15:10:25,766 [DEBUG][       Thread-258977][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 15:10:25,780 [DEBUG][       Thread-258977][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 15:10:25,780 [ INFO][       Thread-258977][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 15:10:25,788 [DEBUG][       Thread-258977][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 15:10:25,788 [DEBUG][       Thread-258977][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 15:10:25,788 [DEBUG][       Thread-258977][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 15:10:25,788 [DEBUG][       Thread-258977][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:10:25,788 [DEBUG][       Thread-258977][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:10:25,788 [DEBUG][       Thread-258977][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:10:25,788 [DEBUG][       Thread-258977][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:10:25,789 [DEBUG][       Thread-258977][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 15:10:25,789 [DEBUG][       Thread-258977][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 15:10:25,789 [DEBUG][       Thread-258977][   transport.py][1871] : client lang: <none>
2025-06-13 15:10:25,789 [DEBUG][       Thread-258977][   transport.py][1871] : server lang: <none>
2025-06-13 15:10:25,789 [DEBUG][       Thread-258977][   transport.py][1871] : kex follows: False
2025-06-13 15:10:25,789 [DEBUG][       Thread-258977][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 15:10:25,789 [DEBUG][       Thread-258977][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 15:10:25,789 [DEBUG][       Thread-258977][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 15:10:25,789 [DEBUG][       Thread-258977][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 15:10:25,789 [DEBUG][       Thread-258977][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 15:10:25,789 [DEBUG][       Thread-258977][   transport.py][1871] : Compression: none
2025-06-13 15:10:25,789 [DEBUG][       Thread-258977][   transport.py][1871] : === End of kex handshake ===
2025-06-13 15:10:25,847 [DEBUG][       Thread-258977][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 15:10:25,848 [DEBUG][       Thread-258977][   transport.py][1871] : Switch to new keys ...
2025-06-13 15:10:25,848 [DEBUG][       Thread-258977][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 15:10:25,848 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 15:10:25,849 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 15:10:25,904 [DEBUG][       Thread-258977][   transport.py][1871] : userauth is OK
2025-06-13 15:10:25,904 [DEBUG][       Thread-258977][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 15:10:25,904 [DEBUG][       Thread-258977][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 15:10:25,904 [DEBUG][       Thread-258977][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 15:10:25,904 [DEBUG][       Thread-258977][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 15:10:25,923 [ INFO][       Thread-258977][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 15:10:25,923 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 15:10:25,924 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 15:10:26,907 [DEBUG][       Thread-258977][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 15:10:26,907 [DEBUG][       Thread-258977][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 15:10:26,956 [DEBUG][       Thread-258977][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 15:10:26,956 [DEBUG][       Thread-258977][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 15:10:26,965 [DEBUG][       Thread-258977][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 15:10:26,974 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 15:10:26,974 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 15:10:26,983 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 15:10:26,993 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 15:10:26,993 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 15:10:26,994 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 15:10:27,004 [DEBUG][       Thread-258977][   transport.py][1871] : EOF in transport thread
2025-06-13 15:10:28,092 [DEBUG][Thread-258979 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:10:29,174 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:10:29,175 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:10:30,821 [DEBUG][Thread-258980 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:10:37,004 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 15:10:37,004 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 15:10:37,004 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 15:10:37,006 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 15:10:37,471 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 15, 10, 28), 17.89, 28.89, 0.0, 16.62, 14.11, 0, 0, 0, 2, 0, 0),)
2025-06-13 15:10:37,471 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 15:10:28
2025-06-13 15:10:37,553 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 15:10:37,557 [DEBUG][       Thread-258981][   transport.py][1871] : starting thread (client mode): 0x863bf520
2025-06-13 15:10:37,557 [DEBUG][       Thread-258981][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 15:10:37,577 [DEBUG][       Thread-258981][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 15:10:37,577 [ INFO][       Thread-258981][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 15:10:37,581 [DEBUG][       Thread-258981][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 15:10:37,581 [DEBUG][       Thread-258981][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 15:10:37,581 [DEBUG][       Thread-258981][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 15:10:37,581 [DEBUG][       Thread-258981][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:10:37,581 [DEBUG][       Thread-258981][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:10:37,581 [DEBUG][       Thread-258981][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:10:37,581 [DEBUG][       Thread-258981][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:10:37,581 [DEBUG][       Thread-258981][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 15:10:37,581 [DEBUG][       Thread-258981][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 15:10:37,581 [DEBUG][       Thread-258981][   transport.py][1871] : client lang: <none>
2025-06-13 15:10:37,581 [DEBUG][       Thread-258981][   transport.py][1871] : server lang: <none>
2025-06-13 15:10:37,581 [DEBUG][       Thread-258981][   transport.py][1871] : kex follows: False
2025-06-13 15:10:37,581 [DEBUG][       Thread-258981][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 15:10:37,581 [DEBUG][       Thread-258981][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 15:10:37,581 [DEBUG][       Thread-258981][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 15:10:37,581 [DEBUG][       Thread-258981][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 15:10:37,581 [DEBUG][       Thread-258981][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 15:10:37,581 [DEBUG][       Thread-258981][   transport.py][1871] : Compression: none
2025-06-13 15:10:37,581 [DEBUG][       Thread-258981][   transport.py][1871] : === End of kex handshake ===
2025-06-13 15:10:37,597 [DEBUG][       Thread-258981][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 15:10:37,598 [DEBUG][       Thread-258981][   transport.py][1871] : Switch to new keys ...
2025-06-13 15:10:37,598 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 15:10:37,598 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 15:10:37,599 [DEBUG][       Thread-258981][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 15:10:37,600 [DEBUG][       Thread-258981][   transport.py][1871] : userauth is OK
2025-06-13 15:10:37,613 [ INFO][       Thread-258981][   transport.py][1871] : Authentication (password) successful!
2025-06-13 15:10:37,614 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 15:10:38,287 [DEBUG][       Thread-258981][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 15:10:38,287 [DEBUG][       Thread-258981][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 15:10:38,329 [DEBUG][       Thread-258981][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 15:10:38,329 [DEBUG][       Thread-258981][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 15:10:38,332 [DEBUG][       Thread-258981][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 15:10:38,345 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 15:10:38,345 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 15:10:38,347 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 15:10:38,348 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 15:10:38,353 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 15:10:38,355 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 15:10:38,355 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 15:10:38,356 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 15:10:38,356 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.548547 -999.00  +13.80  20.87     34   -1.70 1 1 1 1 1   887    0 16.98 42.70 ----- 22.8 20.9 51.6 25.0 17.4 -31.0 16.4 -32.8 17.1 -30.6 18.3 -29.5
2025-06-13 15:10:38,356 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 15:10:38,356 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 15:10:38,356 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.548547
2025-06-13 15:10:38,357 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 15:10:38,357 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 15:10:38,357 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 15:10:38,358 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 15:10:38,358 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 15:10:38,358 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T15:10:28', tmtdew=17.89, humidity=28.89, cloud=0.0, wind=16.62, temperature=14.11, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T13:09:54.461', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 15:10:38,359 [DEBUG][       Thread-258981][   transport.py][1871] : EOF in transport thread
2025-06-13 15:10:38,435 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 15:10:38,447 [DEBUG][       Thread-258984][   transport.py][1871] : starting thread (client mode): 0x867b7d90
2025-06-13 15:10:38,447 [DEBUG][       Thread-258984][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 15:10:38,462 [DEBUG][       Thread-258984][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 15:10:38,462 [ INFO][       Thread-258984][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 15:10:38,470 [DEBUG][       Thread-258984][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 15:10:38,470 [DEBUG][       Thread-258984][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 15:10:38,471 [DEBUG][       Thread-258984][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 15:10:38,471 [DEBUG][       Thread-258984][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:10:38,471 [DEBUG][       Thread-258984][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:10:38,471 [DEBUG][       Thread-258984][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:10:38,471 [DEBUG][       Thread-258984][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:10:38,471 [DEBUG][       Thread-258984][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 15:10:38,471 [DEBUG][       Thread-258984][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 15:10:38,471 [DEBUG][       Thread-258984][   transport.py][1871] : client lang: <none>
2025-06-13 15:10:38,471 [DEBUG][       Thread-258984][   transport.py][1871] : server lang: <none>
2025-06-13 15:10:38,471 [DEBUG][       Thread-258984][   transport.py][1871] : kex follows: False
2025-06-13 15:10:38,471 [DEBUG][       Thread-258984][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 15:10:38,471 [DEBUG][       Thread-258984][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 15:10:38,471 [DEBUG][       Thread-258984][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 15:10:38,471 [DEBUG][       Thread-258984][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 15:10:38,471 [DEBUG][       Thread-258984][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 15:10:38,471 [DEBUG][       Thread-258984][   transport.py][1871] : Compression: none
2025-06-13 15:10:38,471 [DEBUG][       Thread-258984][   transport.py][1871] : === End of kex handshake ===
2025-06-13 15:10:38,528 [DEBUG][       Thread-258984][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 15:10:38,528 [DEBUG][       Thread-258984][   transport.py][1871] : Switch to new keys ...
2025-06-13 15:10:38,529 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 15:10:38,529 [DEBUG][       Thread-258984][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 15:10:38,530 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 15:10:38,584 [DEBUG][       Thread-258984][   transport.py][1871] : userauth is OK
2025-06-13 15:10:38,584 [DEBUG][       Thread-258984][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 15:10:38,584 [DEBUG][       Thread-258984][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 15:10:38,584 [DEBUG][       Thread-258984][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 15:10:38,585 [DEBUG][       Thread-258984][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 15:10:38,603 [ INFO][       Thread-258984][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 15:10:38,604 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 15:10:38,604 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 15:10:39,611 [DEBUG][       Thread-258984][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 15:10:39,612 [DEBUG][       Thread-258984][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 15:10:39,660 [DEBUG][       Thread-258984][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 15:10:39,660 [DEBUG][       Thread-258984][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 15:10:39,670 [DEBUG][       Thread-258984][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 15:10:39,679 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 15:10:39,680 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 15:10:39,688 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 15:10:39,706 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 15:10:39,706 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 15:10:39,707 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 15:10:39,715 [DEBUG][       Thread-258984][   transport.py][1871] : EOF in transport thread
2025-06-13 15:10:39,841 [DEBUG][Thread-258986 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:10:48,874 [DEBUG][Thread-258987 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:10:49,716 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 15:10:49,716 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 15:10:49,716 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 15:10:49,717 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 15:10:50,179 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 15, 10, 28), 17.89, 28.89, 0.0, 16.62, 14.11, 0, 0, 0, 2, 0, 0),)
2025-06-13 15:10:50,179 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 15:10:28
2025-06-13 15:10:50,261 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 15:10:50,265 [DEBUG][       Thread-258988][   transport.py][1871] : starting thread (client mode): 0x863bfe50
2025-06-13 15:10:50,265 [DEBUG][       Thread-258988][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 15:10:50,281 [DEBUG][       Thread-258988][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 15:10:50,281 [ INFO][       Thread-258988][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 15:10:50,284 [DEBUG][       Thread-258988][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 15:10:50,285 [DEBUG][       Thread-258988][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 15:10:50,285 [DEBUG][       Thread-258988][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 15:10:50,285 [DEBUG][       Thread-258988][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:10:50,285 [DEBUG][       Thread-258988][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:10:50,285 [DEBUG][       Thread-258988][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:10:50,285 [DEBUG][       Thread-258988][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:10:50,285 [DEBUG][       Thread-258988][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 15:10:50,285 [DEBUG][       Thread-258988][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 15:10:50,285 [DEBUG][       Thread-258988][   transport.py][1871] : client lang: <none>
2025-06-13 15:10:50,285 [DEBUG][       Thread-258988][   transport.py][1871] : server lang: <none>
2025-06-13 15:10:50,285 [DEBUG][       Thread-258988][   transport.py][1871] : kex follows: False
2025-06-13 15:10:50,285 [DEBUG][       Thread-258988][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 15:10:50,285 [DEBUG][       Thread-258988][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 15:10:50,285 [DEBUG][       Thread-258988][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 15:10:50,285 [DEBUG][       Thread-258988][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 15:10:50,285 [DEBUG][       Thread-258988][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 15:10:50,285 [DEBUG][       Thread-258988][   transport.py][1871] : Compression: none
2025-06-13 15:10:50,285 [DEBUG][       Thread-258988][   transport.py][1871] : === End of kex handshake ===
2025-06-13 15:10:50,300 [DEBUG][       Thread-258988][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 15:10:50,300 [DEBUG][       Thread-258988][   transport.py][1871] : Switch to new keys ...
2025-06-13 15:10:50,301 [DEBUG][       Thread-258988][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 15:10:50,301 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 15:10:50,301 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 15:10:50,302 [DEBUG][       Thread-258988][   transport.py][1871] : userauth is OK
2025-06-13 15:10:50,327 [ INFO][       Thread-258988][   transport.py][1871] : Authentication (password) successful!
2025-06-13 15:10:50,328 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 15:10:50,936 [DEBUG][       Thread-258988][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 15:10:50,936 [DEBUG][       Thread-258988][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 15:10:50,977 [DEBUG][       Thread-258988][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 15:10:50,977 [DEBUG][       Thread-258988][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 15:10:50,980 [DEBUG][       Thread-258988][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 15:10:50,992 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 15:10:50,993 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 15:10:50,994 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 15:10:50,996 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 15:10:51,000 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 15:10:51,002 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 15:10:51,002 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 15:10:51,003 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 15:10:51,003 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.548547 -999.00  +13.80  20.87     34   -1.70 1 1 1 1 1   887    0 16.98 42.70 ----- 22.8 20.9 51.6 25.0 17.4 -31.0 16.4 -32.8 17.1 -30.6 18.3 -29.5
2025-06-13 15:10:51,003 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 15:10:51,003 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 15:10:51,003 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.548547
2025-06-13 15:10:51,003 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 15:10:51,004 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 15:10:51,004 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 15:10:51,004 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 15:10:51,004 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 15:10:51,004 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T15:10:28', tmtdew=17.89, humidity=28.89, cloud=0.0, wind=16.62, temperature=14.11, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T13:09:54.461', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 15:10:51,005 [DEBUG][       Thread-258988][   transport.py][1871] : EOF in transport thread
2025-06-13 15:10:51,087 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 15:10:51,097 [DEBUG][       Thread-258991][   transport.py][1871] : starting thread (client mode): 0x863a6050
2025-06-13 15:10:51,097 [DEBUG][       Thread-258991][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 15:10:51,113 [DEBUG][       Thread-258991][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 15:10:51,113 [ INFO][       Thread-258991][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 15:10:51,121 [DEBUG][       Thread-258991][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 15:10:51,121 [DEBUG][       Thread-258991][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 15:10:51,121 [DEBUG][       Thread-258991][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 15:10:51,121 [DEBUG][       Thread-258991][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:10:51,121 [DEBUG][       Thread-258991][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:10:51,121 [DEBUG][       Thread-258991][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:10:51,121 [DEBUG][       Thread-258991][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:10:51,121 [DEBUG][       Thread-258991][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 15:10:51,121 [DEBUG][       Thread-258991][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 15:10:51,121 [DEBUG][       Thread-258991][   transport.py][1871] : client lang: <none>
2025-06-13 15:10:51,121 [DEBUG][       Thread-258991][   transport.py][1871] : server lang: <none>
2025-06-13 15:10:51,121 [DEBUG][       Thread-258991][   transport.py][1871] : kex follows: False
2025-06-13 15:10:51,121 [DEBUG][       Thread-258991][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 15:10:51,121 [DEBUG][       Thread-258991][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 15:10:51,121 [DEBUG][       Thread-258991][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 15:10:51,121 [DEBUG][       Thread-258991][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 15:10:51,121 [DEBUG][       Thread-258991][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 15:10:51,121 [DEBUG][       Thread-258991][   transport.py][1871] : Compression: none
2025-06-13 15:10:51,121 [DEBUG][       Thread-258991][   transport.py][1871] : === End of kex handshake ===
2025-06-13 15:10:51,179 [DEBUG][       Thread-258991][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 15:10:51,180 [DEBUG][       Thread-258991][   transport.py][1871] : Switch to new keys ...
2025-06-13 15:10:51,180 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 15:10:51,181 [DEBUG][       Thread-258991][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 15:10:51,182 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 15:10:51,236 [DEBUG][       Thread-258991][   transport.py][1871] : userauth is OK
2025-06-13 15:10:51,236 [DEBUG][       Thread-258991][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 15:10:51,236 [DEBUG][       Thread-258991][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 15:10:51,236 [DEBUG][       Thread-258991][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 15:10:51,236 [DEBUG][       Thread-258991][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 15:10:51,255 [ INFO][       Thread-258991][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 15:10:51,255 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 15:10:51,256 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 15:10:52,273 [DEBUG][       Thread-258991][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 15:10:52,273 [DEBUG][       Thread-258991][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 15:10:52,324 [DEBUG][       Thread-258991][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 15:10:52,324 [DEBUG][       Thread-258991][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 15:10:52,333 [DEBUG][       Thread-258991][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 15:10:52,342 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 15:10:52,343 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 15:10:52,351 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 15:10:52,359 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 15:10:52,360 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 15:10:52,361 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 15:10:52,368 [DEBUG][       Thread-258991][   transport.py][1871] : EOF in transport thread
2025-06-13 15:10:57,892 [DEBUG][Thread-258993 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:11:02,371 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 15:11:02,371 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 15:11:02,371 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 15:11:02,372 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 15:11:02,865 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 15, 10, 28), 17.89, 28.89, 0.0, 16.62, 14.11, 0, 0, 0, 2, 0, 0),)
2025-06-13 15:11:02,865 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 15:10:28
2025-06-13 15:11:02,948 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 15:11:02,951 [DEBUG][       Thread-258994][   transport.py][1871] : starting thread (client mode): 0x863bdc00
2025-06-13 15:11:02,952 [DEBUG][       Thread-258994][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 15:11:02,972 [DEBUG][       Thread-258994][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 15:11:02,972 [ INFO][       Thread-258994][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 15:11:02,975 [DEBUG][       Thread-258994][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 15:11:02,975 [DEBUG][       Thread-258994][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 15:11:02,975 [DEBUG][       Thread-258994][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 15:11:02,975 [DEBUG][       Thread-258994][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:11:02,975 [DEBUG][       Thread-258994][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:11:02,975 [DEBUG][       Thread-258994][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:11:02,975 [DEBUG][       Thread-258994][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:11:02,975 [DEBUG][       Thread-258994][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 15:11:02,975 [DEBUG][       Thread-258994][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 15:11:02,975 [DEBUG][       Thread-258994][   transport.py][1871] : client lang: <none>
2025-06-13 15:11:02,975 [DEBUG][       Thread-258994][   transport.py][1871] : server lang: <none>
2025-06-13 15:11:02,975 [DEBUG][       Thread-258994][   transport.py][1871] : kex follows: False
2025-06-13 15:11:02,975 [DEBUG][       Thread-258994][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 15:11:02,975 [DEBUG][       Thread-258994][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 15:11:02,975 [DEBUG][       Thread-258994][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 15:11:02,975 [DEBUG][       Thread-258994][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 15:11:02,975 [DEBUG][       Thread-258994][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 15:11:02,975 [DEBUG][       Thread-258994][   transport.py][1871] : Compression: none
2025-06-13 15:11:02,975 [DEBUG][       Thread-258994][   transport.py][1871] : === End of kex handshake ===
2025-06-13 15:11:02,989 [DEBUG][       Thread-258994][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 15:11:02,989 [DEBUG][       Thread-258994][   transport.py][1871] : Switch to new keys ...
2025-06-13 15:11:02,989 [DEBUG][       Thread-258994][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 15:11:02,989 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 15:11:02,989 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 15:11:02,990 [DEBUG][       Thread-258994][   transport.py][1871] : userauth is OK
2025-06-13 15:11:03,003 [ INFO][       Thread-258994][   transport.py][1871] : Authentication (password) successful!
2025-06-13 15:11:03,003 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 15:11:03,602 [DEBUG][       Thread-258994][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 15:11:03,603 [DEBUG][       Thread-258994][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 15:11:03,645 [DEBUG][       Thread-258994][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 15:11:03,645 [DEBUG][       Thread-258994][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 15:11:03,648 [DEBUG][       Thread-258994][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 15:11:03,660 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 15:11:03,660 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 15:11:03,662 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 15:11:03,664 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 15:11:03,669 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 15:11:03,671 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 15:11:03,671 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 15:11:03,671 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 15:11:03,672 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.549241 -999.00  +14.10  25.50     33   -1.50 1 1 1 1 1   887    0 16.87 45.26 ----- 19.8 25.5 51.2 29.0 17.5 -31.4 16.4 -33.6 17.2 -31.7 18.4 -29.5
2025-06-13 15:11:03,672 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 15:11:03,672 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 15:11:03,672 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.549241
2025-06-13 15:11:03,672 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 15:11:03,673 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 15:11:03,673 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 15:11:03,673 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 15:11:03,673 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 15:11:03,673 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T15:10:28', tmtdew=17.89, humidity=28.89, cloud=0.0, wind=16.62, temperature=14.11, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T13:10:54.422', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 15:11:03,674 [DEBUG][       Thread-258994][   transport.py][1871] : EOF in transport thread
2025-06-13 15:11:03,756 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 15:11:03,775 [DEBUG][       Thread-258997][   transport.py][1871] : starting thread (client mode): 0x863ec280
2025-06-13 15:11:03,775 [DEBUG][       Thread-258997][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 15:11:03,794 [DEBUG][       Thread-258997][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 15:11:03,794 [ INFO][       Thread-258997][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 15:11:03,803 [DEBUG][       Thread-258997][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 15:11:03,803 [DEBUG][       Thread-258997][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 15:11:03,803 [DEBUG][       Thread-258997][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 15:11:03,803 [DEBUG][       Thread-258997][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:11:03,803 [DEBUG][       Thread-258997][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:11:03,804 [DEBUG][       Thread-258997][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:11:03,804 [DEBUG][       Thread-258997][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:11:03,804 [DEBUG][       Thread-258997][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 15:11:03,804 [DEBUG][       Thread-258997][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 15:11:03,804 [DEBUG][       Thread-258997][   transport.py][1871] : client lang: <none>
2025-06-13 15:11:03,804 [DEBUG][       Thread-258997][   transport.py][1871] : server lang: <none>
2025-06-13 15:11:03,804 [DEBUG][       Thread-258997][   transport.py][1871] : kex follows: False
2025-06-13 15:11:03,804 [DEBUG][       Thread-258997][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 15:11:03,804 [DEBUG][       Thread-258997][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 15:11:03,804 [DEBUG][       Thread-258997][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 15:11:03,804 [DEBUG][       Thread-258997][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 15:11:03,804 [DEBUG][       Thread-258997][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 15:11:03,804 [DEBUG][       Thread-258997][   transport.py][1871] : Compression: none
2025-06-13 15:11:03,804 [DEBUG][       Thread-258997][   transport.py][1871] : === End of kex handshake ===
2025-06-13 15:11:03,864 [DEBUG][       Thread-258997][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 15:11:03,865 [DEBUG][       Thread-258997][   transport.py][1871] : Switch to new keys ...
2025-06-13 15:11:03,865 [DEBUG][       Thread-258997][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 15:11:03,866 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 15:11:03,866 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 15:11:03,937 [DEBUG][       Thread-258997][   transport.py][1871] : userauth is OK
2025-06-13 15:11:03,937 [DEBUG][       Thread-258997][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 15:11:03,937 [DEBUG][       Thread-258997][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 15:11:03,937 [DEBUG][       Thread-258997][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 15:11:03,937 [DEBUG][       Thread-258997][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 15:11:03,960 [ INFO][       Thread-258997][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 15:11:03,961 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 15:11:03,961 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 15:11:05,037 [DEBUG][       Thread-258997][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 15:11:05,037 [DEBUG][       Thread-258997][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 15:11:05,088 [DEBUG][       Thread-258997][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 15:11:05,088 [DEBUG][       Thread-258997][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 15:11:05,103 [DEBUG][       Thread-258997][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 15:11:05,115 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 15:11:05,115 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 15:11:05,128 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 15:11:05,140 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 15:11:05,140 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 15:11:05,141 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 15:11:05,156 [DEBUG][       Thread-258997][   transport.py][1871] : EOF in transport thread
2025-06-13 15:11:06,911 [DEBUG][Thread-258999 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:11:06,916 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:11:06,917 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:11:15,151 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 15:11:15,152 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 15:11:15,152 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 15:11:15,155 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 15:11:15,634 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 15, 11), 17.94, 28.78, 0.0, 14.89, 14.08, 0, 0, 0, 2, 0, 0),)
2025-06-13 15:11:15,634 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 15:11:00
2025-06-13 15:11:15,716 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 15:11:15,722 [DEBUG][       Thread-259000][   transport.py][1871] : starting thread (client mode): 0x863bc490
2025-06-13 15:11:15,722 [DEBUG][       Thread-259000][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 15:11:15,742 [DEBUG][       Thread-259000][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 15:11:15,742 [ INFO][       Thread-259000][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 15:11:15,746 [DEBUG][       Thread-259000][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 15:11:15,746 [DEBUG][       Thread-259000][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 15:11:15,746 [DEBUG][       Thread-259000][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 15:11:15,746 [DEBUG][       Thread-259000][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:11:15,746 [DEBUG][       Thread-259000][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:11:15,746 [DEBUG][       Thread-259000][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:11:15,746 [DEBUG][       Thread-259000][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:11:15,746 [DEBUG][       Thread-259000][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 15:11:15,746 [DEBUG][       Thread-259000][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 15:11:15,746 [DEBUG][       Thread-259000][   transport.py][1871] : client lang: <none>
2025-06-13 15:11:15,746 [DEBUG][       Thread-259000][   transport.py][1871] : server lang: <none>
2025-06-13 15:11:15,746 [DEBUG][       Thread-259000][   transport.py][1871] : kex follows: False
2025-06-13 15:11:15,746 [DEBUG][       Thread-259000][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 15:11:15,746 [DEBUG][       Thread-259000][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 15:11:15,746 [DEBUG][       Thread-259000][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 15:11:15,746 [DEBUG][       Thread-259000][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 15:11:15,746 [DEBUG][       Thread-259000][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 15:11:15,746 [DEBUG][       Thread-259000][   transport.py][1871] : Compression: none
2025-06-13 15:11:15,746 [DEBUG][       Thread-259000][   transport.py][1871] : === End of kex handshake ===
2025-06-13 15:11:15,763 [DEBUG][       Thread-259000][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 15:11:15,763 [DEBUG][       Thread-259000][   transport.py][1871] : Switch to new keys ...
2025-06-13 15:11:15,764 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 15:11:15,764 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 15:11:15,764 [DEBUG][       Thread-259000][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 15:11:15,807 [DEBUG][       Thread-259000][   transport.py][1871] : userauth is OK
2025-06-13 15:11:15,832 [ INFO][       Thread-259000][   transport.py][1871] : Authentication (password) successful!
2025-06-13 15:11:15,833 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 15:11:15,933 [DEBUG][Thread-259002 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:11:16,499 [DEBUG][       Thread-259000][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 15:11:16,500 [DEBUG][       Thread-259000][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 15:11:16,541 [DEBUG][       Thread-259000][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 15:11:16,541 [DEBUG][       Thread-259000][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 15:11:16,545 [DEBUG][       Thread-259000][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 15:11:16,558 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 15:11:16,559 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 15:11:16,561 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 15:11:16,563 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 15:11:16,569 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 15:11:16,571 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 15:11:16,572 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 15:11:16,572 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 15:11:16,573 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.549241 -999.00  +14.10  25.50     33   -1.50 1 1 1 1 1   887    0 16.87 45.26 ----- 19.8 25.5 51.2 29.0 17.5 -31.4 16.4 -33.6 17.2 -31.7 18.4 -29.5
2025-06-13 15:11:16,573 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 15:11:16,573 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 15:11:16,573 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.549241
2025-06-13 15:11:16,573 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 15:11:16,574 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 15:11:16,574 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 15:11:16,574 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 15:11:16,574 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 15:11:16,574 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T15:11:00', tmtdew=17.94, humidity=28.78, cloud=0.0, wind=14.89, temperature=14.08, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T13:10:54.422', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 15:11:16,575 [DEBUG][       Thread-259000][   transport.py][1871] : EOF in transport thread
2025-06-13 15:11:16,651 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 15:11:20,295 [DEBUG][Thread-259004 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:11:24,962 [DEBUG][Thread-259005 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:11:29,254 [DEBUG][Thread-259006 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:11:30,336 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:11:30,338 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:11:33,993 [DEBUG][Thread-259007 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:11:43,013 [DEBUG][Thread-259008 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:11:52,035 [DEBUG][Thread-259009 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:12:01,058 [DEBUG][Thread-259010 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:12:07,055 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:12:07,055 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:12:10,081 [DEBUG][Thread-259011 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:12:19,101 [DEBUG][Thread-259012 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:12:20,348 [DEBUG][Thread-259013 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:12:28,123 [DEBUG][Thread-259014 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:12:30,409 [DEBUG][Thread-259015 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:12:31,486 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:12:31,496 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:12:37,144 [DEBUG][Thread-259016 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:12:46,164 [DEBUG][Thread-259017 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:12:55,184 [DEBUG][Thread-259018 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:13:04,206 [DEBUG][Thread-259019 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:13:07,193 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:13:07,195 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:13:13,227 [DEBUG][Thread-259020 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:13:20,395 [DEBUG][Thread-259021 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:13:22,251 [DEBUG][Thread-259022 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:13:26,036 [WARNING][ poll_weather_worker][      driver.py][ 286] : Unable to open ssh connection for writing weather state to io.saao.ac.za: [Errno 110] Connection timed out
2025-06-13 15:13:31,276 [DEBUG][Thread-259023 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:13:31,577 [DEBUG][Thread-259024 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:13:32,662 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:13:32,663 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:13:36,042 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 15:13:36,042 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 15:13:36,042 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 15:13:36,045 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 15:13:36,539 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 15, 13, 7), 18.02, 28.75, 0.0, 19.02, 14.2, 0, 0, 0, 2, 0, 0),)
2025-06-13 15:13:36,539 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 15:13:07
2025-06-13 15:13:36,621 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 15:13:36,627 [DEBUG][       Thread-259025][   transport.py][1871] : starting thread (client mode): 0x863bde70
2025-06-13 15:13:36,627 [DEBUG][       Thread-259025][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 15:13:36,650 [DEBUG][       Thread-259025][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 15:13:36,650 [ INFO][       Thread-259025][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 15:13:36,654 [DEBUG][       Thread-259025][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 15:13:36,654 [DEBUG][       Thread-259025][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 15:13:36,654 [DEBUG][       Thread-259025][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 15:13:36,655 [DEBUG][       Thread-259025][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:13:36,655 [DEBUG][       Thread-259025][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:13:36,655 [DEBUG][       Thread-259025][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:13:36,655 [DEBUG][       Thread-259025][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:13:36,655 [DEBUG][       Thread-259025][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 15:13:36,655 [DEBUG][       Thread-259025][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 15:13:36,655 [DEBUG][       Thread-259025][   transport.py][1871] : client lang: <none>
2025-06-13 15:13:36,655 [DEBUG][       Thread-259025][   transport.py][1871] : server lang: <none>
2025-06-13 15:13:36,655 [DEBUG][       Thread-259025][   transport.py][1871] : kex follows: False
2025-06-13 15:13:36,655 [DEBUG][       Thread-259025][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 15:13:36,655 [DEBUG][       Thread-259025][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 15:13:36,655 [DEBUG][       Thread-259025][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 15:13:36,655 [DEBUG][       Thread-259025][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 15:13:36,655 [DEBUG][       Thread-259025][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 15:13:36,655 [DEBUG][       Thread-259025][   transport.py][1871] : Compression: none
2025-06-13 15:13:36,655 [DEBUG][       Thread-259025][   transport.py][1871] : === End of kex handshake ===
2025-06-13 15:13:36,675 [DEBUG][       Thread-259025][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 15:13:36,675 [DEBUG][       Thread-259025][   transport.py][1871] : Switch to new keys ...
2025-06-13 15:13:36,676 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 15:13:36,676 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 15:13:36,677 [DEBUG][       Thread-259025][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 15:13:36,678 [DEBUG][       Thread-259025][   transport.py][1871] : userauth is OK
2025-06-13 15:13:36,702 [ INFO][       Thread-259025][   transport.py][1871] : Authentication (password) successful!
2025-06-13 15:13:36,703 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 15:13:37,516 [DEBUG][       Thread-259025][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 15:13:37,516 [DEBUG][       Thread-259025][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 15:13:37,557 [DEBUG][       Thread-259025][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 15:13:37,557 [DEBUG][       Thread-259025][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 15:13:37,560 [DEBUG][       Thread-259025][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 15:13:37,572 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 15:13:37,573 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 15:13:37,574 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 15:13:37,577 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 15:13:37,583 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 15:13:37,585 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 15:13:37,585 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 15:13:37,585 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 15:13:37,586 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.550630 -999.00  +13.90  18.27     34   -1.60 1 1 1 1 1   887    0 17.03 43.38 ----- 18.1 18.3 50.4 25.5 17.4 -31.4 16.3 -33.4 17.1 -31.9 18.3 -29.5
2025-06-13 15:13:37,586 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 15:13:37,586 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 15:13:37,586 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.550630
2025-06-13 15:13:37,586 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 15:13:37,587 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 15:13:37,587 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 15:13:37,587 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 15:13:37,587 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 15:13:37,587 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T15:13:07', tmtdew=18.02, humidity=28.75, cloud=0.0, wind=19.02, temperature=14.2, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T13:12:54.432', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 15:13:37,587 [DEBUG][       Thread-259025][   transport.py][1871] : EOF in transport thread
2025-06-13 15:13:37,671 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 15:13:37,684 [DEBUG][       Thread-259028][   transport.py][1871] : starting thread (client mode): 0x863ecbe0
2025-06-13 15:13:37,684 [DEBUG][       Thread-259028][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 15:13:37,698 [DEBUG][       Thread-259028][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 15:13:37,698 [ INFO][       Thread-259028][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 15:13:37,707 [DEBUG][       Thread-259028][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 15:13:37,707 [DEBUG][       Thread-259028][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 15:13:37,707 [DEBUG][       Thread-259028][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 15:13:37,707 [DEBUG][       Thread-259028][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:13:37,707 [DEBUG][       Thread-259028][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:13:37,707 [DEBUG][       Thread-259028][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:13:37,707 [DEBUG][       Thread-259028][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:13:37,707 [DEBUG][       Thread-259028][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 15:13:37,708 [DEBUG][       Thread-259028][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 15:13:37,708 [DEBUG][       Thread-259028][   transport.py][1871] : client lang: <none>
2025-06-13 15:13:37,708 [DEBUG][       Thread-259028][   transport.py][1871] : server lang: <none>
2025-06-13 15:13:37,708 [DEBUG][       Thread-259028][   transport.py][1871] : kex follows: False
2025-06-13 15:13:37,708 [DEBUG][       Thread-259028][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 15:13:37,708 [DEBUG][       Thread-259028][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 15:13:37,708 [DEBUG][       Thread-259028][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 15:13:37,708 [DEBUG][       Thread-259028][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 15:13:37,708 [DEBUG][       Thread-259028][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 15:13:37,708 [DEBUG][       Thread-259028][   transport.py][1871] : Compression: none
2025-06-13 15:13:37,708 [DEBUG][       Thread-259028][   transport.py][1871] : === End of kex handshake ===
2025-06-13 15:13:37,768 [DEBUG][       Thread-259028][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 15:13:37,769 [DEBUG][       Thread-259028][   transport.py][1871] : Switch to new keys ...
2025-06-13 15:13:37,769 [DEBUG][       Thread-259028][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 15:13:37,769 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 15:13:37,770 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 15:13:37,827 [DEBUG][       Thread-259028][   transport.py][1871] : userauth is OK
2025-06-13 15:13:37,827 [DEBUG][       Thread-259028][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 15:13:37,828 [DEBUG][       Thread-259028][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 15:13:37,828 [DEBUG][       Thread-259028][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 15:13:37,828 [DEBUG][       Thread-259028][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 15:13:37,846 [ INFO][       Thread-259028][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 15:13:37,847 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 15:13:37,847 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 15:13:39,473 [DEBUG][       Thread-259028][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 15:13:39,474 [DEBUG][       Thread-259028][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 15:13:39,524 [DEBUG][       Thread-259028][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 15:13:39,524 [DEBUG][       Thread-259028][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 15:13:39,533 [DEBUG][       Thread-259028][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 15:13:39,542 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 15:13:39,542 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 15:13:39,553 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 15:13:39,564 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 15:13:39,565 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 15:13:39,565 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 15:13:39,573 [DEBUG][       Thread-259028][   transport.py][1871] : EOF in transport thread
2025-06-13 15:13:40,294 [DEBUG][Thread-259030 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:13:49,322 [DEBUG][Thread-259031 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:13:49,575 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 15:13:49,575 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 15:13:49,575 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 15:13:49,578 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 15:13:50,054 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 15, 13, 39), 18.05, 28.64, 0.0, 20.2, 14.05, 0, 0, 0, 2, 0, 0),)
2025-06-13 15:13:50,054 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 15:13:39
2025-06-13 15:13:50,135 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 15:13:50,139 [DEBUG][       Thread-259032][   transport.py][1871] : starting thread (client mode): 0x863be890
2025-06-13 15:13:50,139 [DEBUG][       Thread-259032][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 15:13:50,160 [DEBUG][       Thread-259032][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 15:13:50,160 [ INFO][       Thread-259032][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 15:13:50,163 [DEBUG][       Thread-259032][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 15:13:50,163 [DEBUG][       Thread-259032][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 15:13:50,163 [DEBUG][       Thread-259032][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 15:13:50,163 [DEBUG][       Thread-259032][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:13:50,163 [DEBUG][       Thread-259032][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:13:50,163 [DEBUG][       Thread-259032][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:13:50,163 [DEBUG][       Thread-259032][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:13:50,164 [DEBUG][       Thread-259032][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 15:13:50,164 [DEBUG][       Thread-259032][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 15:13:50,164 [DEBUG][       Thread-259032][   transport.py][1871] : client lang: <none>
2025-06-13 15:13:50,164 [DEBUG][       Thread-259032][   transport.py][1871] : server lang: <none>
2025-06-13 15:13:50,164 [DEBUG][       Thread-259032][   transport.py][1871] : kex follows: False
2025-06-13 15:13:50,164 [DEBUG][       Thread-259032][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 15:13:50,164 [DEBUG][       Thread-259032][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 15:13:50,164 [DEBUG][       Thread-259032][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 15:13:50,164 [DEBUG][       Thread-259032][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 15:13:50,164 [DEBUG][       Thread-259032][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 15:13:50,164 [DEBUG][       Thread-259032][   transport.py][1871] : Compression: none
2025-06-13 15:13:50,164 [DEBUG][       Thread-259032][   transport.py][1871] : === End of kex handshake ===
2025-06-13 15:13:50,181 [DEBUG][       Thread-259032][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 15:13:50,181 [DEBUG][       Thread-259032][   transport.py][1871] : Switch to new keys ...
2025-06-13 15:13:50,182 [DEBUG][       Thread-259032][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 15:13:50,182 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 15:13:50,182 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 15:13:50,184 [DEBUG][       Thread-259032][   transport.py][1871] : userauth is OK
2025-06-13 15:13:50,197 [ INFO][       Thread-259032][   transport.py][1871] : Authentication (password) successful!
2025-06-13 15:13:50,197 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 15:13:50,810 [DEBUG][       Thread-259032][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 15:13:50,810 [DEBUG][       Thread-259032][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 15:13:50,853 [DEBUG][       Thread-259032][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 15:13:50,853 [DEBUG][       Thread-259032][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 15:13:50,856 [DEBUG][       Thread-259032][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 15:13:50,867 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 15:13:50,868 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 15:13:50,870 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 15:13:50,871 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 15:13:50,877 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 15:13:50,878 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 15:13:50,879 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 15:13:50,879 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 15:13:50,879 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.550977 -999.00  +13.90  26.66     33   -2.00 1 1 1 1 1   887    0 16.62 41.63 ----- 22.2 26.7 54.2 30.1 17.4 -32.0 16.4 -33.3 17.1 -31.6 18.3 -30.0
2025-06-13 15:13:50,880 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 15:13:50,880 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 15:13:50,880 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.550977
2025-06-13 15:13:50,880 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 15:13:50,881 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 15:13:50,881 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 15:13:50,881 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 15:13:50,881 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 15:13:50,881 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T15:13:39', tmtdew=18.05, humidity=28.64, cloud=0.0, wind=20.2, temperature=14.05, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T13:13:24.413', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 15:13:50,881 [DEBUG][       Thread-259032][   transport.py][1871] : EOF in transport thread
2025-06-13 15:13:50,965 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 15:13:50,975 [DEBUG][       Thread-259035][   transport.py][1871] : starting thread (client mode): 0x863a63b0
2025-06-13 15:13:50,975 [DEBUG][       Thread-259035][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 15:13:50,990 [DEBUG][       Thread-259035][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 15:13:50,990 [ INFO][       Thread-259035][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 15:13:50,998 [DEBUG][       Thread-259035][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 15:13:50,998 [DEBUG][       Thread-259035][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 15:13:50,998 [DEBUG][       Thread-259035][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 15:13:50,998 [DEBUG][       Thread-259035][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:13:50,998 [DEBUG][       Thread-259035][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:13:50,998 [DEBUG][       Thread-259035][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:13:50,998 [DEBUG][       Thread-259035][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:13:50,998 [DEBUG][       Thread-259035][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 15:13:50,998 [DEBUG][       Thread-259035][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 15:13:50,998 [DEBUG][       Thread-259035][   transport.py][1871] : client lang: <none>
2025-06-13 15:13:50,998 [DEBUG][       Thread-259035][   transport.py][1871] : server lang: <none>
2025-06-13 15:13:50,998 [DEBUG][       Thread-259035][   transport.py][1871] : kex follows: False
2025-06-13 15:13:50,998 [DEBUG][       Thread-259035][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 15:13:50,998 [DEBUG][       Thread-259035][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 15:13:50,998 [DEBUG][       Thread-259035][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 15:13:50,998 [DEBUG][       Thread-259035][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 15:13:50,998 [DEBUG][       Thread-259035][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 15:13:50,998 [DEBUG][       Thread-259035][   transport.py][1871] : Compression: none
2025-06-13 15:13:50,998 [DEBUG][       Thread-259035][   transport.py][1871] : === End of kex handshake ===
2025-06-13 15:13:51,057 [DEBUG][       Thread-259035][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 15:13:51,058 [DEBUG][       Thread-259035][   transport.py][1871] : Switch to new keys ...
2025-06-13 15:13:51,058 [DEBUG][       Thread-259035][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 15:13:51,058 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 15:13:51,058 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 15:13:51,122 [DEBUG][       Thread-259035][   transport.py][1871] : userauth is OK
2025-06-13 15:13:51,122 [DEBUG][       Thread-259035][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 15:13:51,123 [DEBUG][       Thread-259035][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 15:13:51,123 [DEBUG][       Thread-259035][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 15:13:51,123 [DEBUG][       Thread-259035][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 15:13:51,143 [ INFO][       Thread-259035][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 15:13:51,144 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 15:13:51,144 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 15:13:52,141 [DEBUG][       Thread-259035][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 15:13:52,141 [DEBUG][       Thread-259035][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 15:13:52,192 [DEBUG][       Thread-259035][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 15:13:52,192 [DEBUG][       Thread-259035][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 15:13:52,201 [DEBUG][       Thread-259035][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 15:13:52,210 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 15:13:52,211 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 15:13:52,219 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 15:13:52,229 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 15:13:52,229 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 15:13:52,230 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 15:13:52,243 [DEBUG][       Thread-259035][   transport.py][1871] : EOF in transport thread
2025-06-13 15:13:58,345 [DEBUG][Thread-259037 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:14:02,240 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 15:14:02,241 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 15:14:02,241 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 15:14:02,244 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 15:14:02,715 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 15, 13, 39), 18.05, 28.64, 0.0, 20.2, 14.05, 0, 0, 0, 2, 0, 0),)
2025-06-13 15:14:02,715 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 15:13:39
2025-06-13 15:14:02,796 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 15:14:02,804 [DEBUG][       Thread-259038][   transport.py][1871] : starting thread (client mode): 0x863bff10
2025-06-13 15:14:02,804 [DEBUG][       Thread-259038][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 15:14:02,825 [DEBUG][       Thread-259038][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 15:14:02,825 [ INFO][       Thread-259038][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 15:14:02,828 [DEBUG][       Thread-259038][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 15:14:02,828 [DEBUG][       Thread-259038][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 15:14:02,828 [DEBUG][       Thread-259038][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 15:14:02,829 [DEBUG][       Thread-259038][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:14:02,829 [DEBUG][       Thread-259038][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:14:02,829 [DEBUG][       Thread-259038][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:14:02,829 [DEBUG][       Thread-259038][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:14:02,829 [DEBUG][       Thread-259038][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 15:14:02,829 [DEBUG][       Thread-259038][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 15:14:02,829 [DEBUG][       Thread-259038][   transport.py][1871] : client lang: <none>
2025-06-13 15:14:02,829 [DEBUG][       Thread-259038][   transport.py][1871] : server lang: <none>
2025-06-13 15:14:02,829 [DEBUG][       Thread-259038][   transport.py][1871] : kex follows: False
2025-06-13 15:14:02,829 [DEBUG][       Thread-259038][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 15:14:02,829 [DEBUG][       Thread-259038][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 15:14:02,829 [DEBUG][       Thread-259038][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 15:14:02,829 [DEBUG][       Thread-259038][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 15:14:02,829 [DEBUG][       Thread-259038][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 15:14:02,829 [DEBUG][       Thread-259038][   transport.py][1871] : Compression: none
2025-06-13 15:14:02,829 [DEBUG][       Thread-259038][   transport.py][1871] : === End of kex handshake ===
2025-06-13 15:14:02,846 [DEBUG][       Thread-259038][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 15:14:02,847 [DEBUG][       Thread-259038][   transport.py][1871] : Switch to new keys ...
2025-06-13 15:14:02,847 [DEBUG][       Thread-259038][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 15:14:02,848 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 15:14:02,848 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 15:14:02,849 [DEBUG][       Thread-259038][   transport.py][1871] : userauth is OK
2025-06-13 15:14:02,862 [ INFO][       Thread-259038][   transport.py][1871] : Authentication (password) successful!
2025-06-13 15:14:02,863 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 15:14:03,491 [DEBUG][       Thread-259038][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 15:14:03,492 [DEBUG][       Thread-259038][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 15:14:03,533 [DEBUG][       Thread-259038][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 15:14:03,533 [DEBUG][       Thread-259038][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 15:14:03,537 [DEBUG][       Thread-259038][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 15:14:03,548 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 15:14:03,548 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 15:14:03,550 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 15:14:03,552 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 15:14:03,557 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 15:14:03,559 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 15:14:03,559 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 15:14:03,560 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 15:14:03,560 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.550977 -999.00  +13.90  26.66     33   -2.00 1 1 1 1 1   887    0 16.62 41.63 ----- 22.2 26.7 54.2 30.1 17.4 -32.0 16.4 -33.3 17.1 -31.6 18.3 -30.0
2025-06-13 15:14:03,560 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 15:14:03,560 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 15:14:03,560 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.550977
2025-06-13 15:14:03,561 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 15:14:03,561 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 15:14:03,561 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 15:14:03,561 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 15:14:03,562 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 15:14:03,562 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T15:13:39', tmtdew=18.05, humidity=28.64, cloud=0.0, wind=20.2, temperature=14.05, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T13:13:24.413', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 15:14:03,562 [DEBUG][       Thread-259038][   transport.py][1871] : EOF in transport thread
2025-06-13 15:14:03,645 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 15:14:03,657 [DEBUG][       Thread-259041][   transport.py][1871] : starting thread (client mode): 0x863ed1b0
2025-06-13 15:14:03,657 [DEBUG][       Thread-259041][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 15:14:03,672 [DEBUG][       Thread-259041][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 15:14:03,672 [ INFO][       Thread-259041][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 15:14:03,680 [DEBUG][       Thread-259041][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 15:14:03,680 [DEBUG][       Thread-259041][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 15:14:03,680 [DEBUG][       Thread-259041][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 15:14:03,680 [DEBUG][       Thread-259041][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:14:03,680 [DEBUG][       Thread-259041][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:14:03,680 [DEBUG][       Thread-259041][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:14:03,680 [DEBUG][       Thread-259041][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:14:03,680 [DEBUG][       Thread-259041][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 15:14:03,680 [DEBUG][       Thread-259041][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 15:14:03,680 [DEBUG][       Thread-259041][   transport.py][1871] : client lang: <none>
2025-06-13 15:14:03,680 [DEBUG][       Thread-259041][   transport.py][1871] : server lang: <none>
2025-06-13 15:14:03,680 [DEBUG][       Thread-259041][   transport.py][1871] : kex follows: False
2025-06-13 15:14:03,680 [DEBUG][       Thread-259041][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 15:14:03,680 [DEBUG][       Thread-259041][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 15:14:03,681 [DEBUG][       Thread-259041][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 15:14:03,681 [DEBUG][       Thread-259041][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 15:14:03,681 [DEBUG][       Thread-259041][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 15:14:03,681 [DEBUG][       Thread-259041][   transport.py][1871] : Compression: none
2025-06-13 15:14:03,681 [DEBUG][       Thread-259041][   transport.py][1871] : === End of kex handshake ===
2025-06-13 15:14:03,743 [DEBUG][       Thread-259041][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 15:14:03,744 [DEBUG][       Thread-259041][   transport.py][1871] : Switch to new keys ...
2025-06-13 15:14:03,744 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 15:14:03,745 [DEBUG][       Thread-259041][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 15:14:03,746 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 15:14:03,803 [DEBUG][       Thread-259041][   transport.py][1871] : userauth is OK
2025-06-13 15:14:03,803 [DEBUG][       Thread-259041][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 15:14:03,803 [DEBUG][       Thread-259041][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 15:14:03,803 [DEBUG][       Thread-259041][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 15:14:03,803 [DEBUG][       Thread-259041][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 15:14:03,822 [ INFO][       Thread-259041][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 15:14:03,823 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 15:14:03,823 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 15:14:04,837 [DEBUG][       Thread-259041][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 15:14:04,837 [DEBUG][       Thread-259041][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 15:14:04,888 [DEBUG][       Thread-259041][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 15:14:04,888 [DEBUG][       Thread-259041][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 15:14:04,897 [DEBUG][       Thread-259041][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 15:14:04,906 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 15:14:04,906 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 15:14:04,914 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 15:14:04,924 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 15:14:04,924 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 15:14:04,925 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 15:14:04,937 [DEBUG][       Thread-259041][   transport.py][1871] : EOF in transport thread
2025-06-13 15:14:07,331 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:14:07,332 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:14:07,376 [DEBUG][Thread-259043 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:14:14,932 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 15:14:14,932 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 15:14:14,932 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 15:14:14,936 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 15:14:15,407 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 15, 14, 10), 18.22, 28.25, 0.0, 18.7, 14.06, 0, 0, 0, 2, 0, 0),)
2025-06-13 15:14:15,407 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 15:14:10
2025-06-13 15:14:15,488 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 15:14:15,496 [DEBUG][       Thread-259044][   transport.py][1871] : starting thread (client mode): 0x863bdf90
2025-06-13 15:14:15,496 [DEBUG][       Thread-259044][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 15:14:15,517 [DEBUG][       Thread-259044][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 15:14:15,517 [ INFO][       Thread-259044][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 15:14:15,520 [DEBUG][       Thread-259044][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 15:14:15,521 [DEBUG][       Thread-259044][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 15:14:15,521 [DEBUG][       Thread-259044][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 15:14:15,521 [DEBUG][       Thread-259044][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:14:15,521 [DEBUG][       Thread-259044][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:14:15,521 [DEBUG][       Thread-259044][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:14:15,521 [DEBUG][       Thread-259044][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:14:15,521 [DEBUG][       Thread-259044][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 15:14:15,521 [DEBUG][       Thread-259044][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 15:14:15,521 [DEBUG][       Thread-259044][   transport.py][1871] : client lang: <none>
2025-06-13 15:14:15,521 [DEBUG][       Thread-259044][   transport.py][1871] : server lang: <none>
2025-06-13 15:14:15,521 [DEBUG][       Thread-259044][   transport.py][1871] : kex follows: False
2025-06-13 15:14:15,521 [DEBUG][       Thread-259044][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 15:14:15,521 [DEBUG][       Thread-259044][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 15:14:15,521 [DEBUG][       Thread-259044][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 15:14:15,521 [DEBUG][       Thread-259044][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 15:14:15,521 [DEBUG][       Thread-259044][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 15:14:15,521 [DEBUG][       Thread-259044][   transport.py][1871] : Compression: none
2025-06-13 15:14:15,521 [DEBUG][       Thread-259044][   transport.py][1871] : === End of kex handshake ===
2025-06-13 15:14:15,539 [DEBUG][       Thread-259044][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 15:14:15,539 [DEBUG][       Thread-259044][   transport.py][1871] : Switch to new keys ...
2025-06-13 15:14:15,540 [DEBUG][       Thread-259044][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 15:14:15,540 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 15:14:15,540 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 15:14:15,542 [DEBUG][       Thread-259044][   transport.py][1871] : userauth is OK
2025-06-13 15:14:15,554 [ INFO][       Thread-259044][   transport.py][1871] : Authentication (password) successful!
2025-06-13 15:14:15,555 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 15:14:16,180 [DEBUG][       Thread-259044][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 15:14:16,180 [DEBUG][       Thread-259044][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 15:14:16,221 [DEBUG][       Thread-259044][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 15:14:16,221 [DEBUG][       Thread-259044][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 15:14:16,224 [DEBUG][       Thread-259044][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 15:14:16,234 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 15:14:16,234 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 15:14:16,236 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 15:14:16,238 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 15:14:16,243 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 15:14:16,245 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 15:14:16,245 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 15:14:16,246 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 15:14:16,247 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.550977 -999.00  +13.90  26.66     33   -2.00 1 1 1 1 1   887    0 16.62 41.63 ----- 22.2 26.7 54.2 30.1 17.4 -32.0 16.4 -33.3 17.1 -31.6 18.3 -30.0
2025-06-13 15:14:16,247 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 15:14:16,247 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 15:14:16,247 [DEBUG][       Thread-259044][   transport.py][1871] : EOF in transport thread
2025-06-13 15:14:16,247 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.550977
2025-06-13 15:14:16,248 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 15:14:16,249 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 15:14:16,249 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 15:14:16,249 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 15:14:16,249 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 15:14:16,250 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T15:14:10', tmtdew=18.22, humidity=28.25, cloud=0.0, wind=18.7, temperature=14.06, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T13:13:24.413', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 15:14:16,338 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 15:14:16,350 [DEBUG][       Thread-259047][   transport.py][1871] : starting thread (client mode): 0x863a68f0
2025-06-13 15:14:16,350 [DEBUG][       Thread-259047][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 15:14:16,365 [DEBUG][       Thread-259047][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 15:14:16,365 [ INFO][       Thread-259047][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 15:14:16,373 [DEBUG][       Thread-259047][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 15:14:16,373 [DEBUG][       Thread-259047][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 15:14:16,374 [DEBUG][       Thread-259047][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 15:14:16,374 [DEBUG][       Thread-259047][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:14:16,374 [DEBUG][       Thread-259047][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:14:16,374 [DEBUG][       Thread-259047][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:14:16,374 [DEBUG][       Thread-259047][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:14:16,374 [DEBUG][       Thread-259047][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 15:14:16,374 [DEBUG][       Thread-259047][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 15:14:16,374 [DEBUG][       Thread-259047][   transport.py][1871] : client lang: <none>
2025-06-13 15:14:16,374 [DEBUG][       Thread-259047][   transport.py][1871] : server lang: <none>
2025-06-13 15:14:16,374 [DEBUG][       Thread-259047][   transport.py][1871] : kex follows: False
2025-06-13 15:14:16,374 [DEBUG][       Thread-259047][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 15:14:16,374 [DEBUG][       Thread-259047][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 15:14:16,374 [DEBUG][       Thread-259047][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 15:14:16,374 [DEBUG][       Thread-259047][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 15:14:16,374 [DEBUG][       Thread-259047][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 15:14:16,374 [DEBUG][       Thread-259047][   transport.py][1871] : Compression: none
2025-06-13 15:14:16,374 [DEBUG][       Thread-259047][   transport.py][1871] : === End of kex handshake ===
2025-06-13 15:14:16,395 [DEBUG][Thread-259049 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:14:16,430 [DEBUG][       Thread-259047][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 15:14:16,431 [DEBUG][       Thread-259047][   transport.py][1871] : Switch to new keys ...
2025-06-13 15:14:16,431 [DEBUG][       Thread-259047][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 15:14:16,431 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 15:14:16,432 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 15:14:16,487 [DEBUG][       Thread-259047][   transport.py][1871] : userauth is OK
2025-06-13 15:14:16,487 [DEBUG][       Thread-259047][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 15:14:16,487 [DEBUG][       Thread-259047][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 15:14:16,487 [DEBUG][       Thread-259047][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 15:14:16,487 [DEBUG][       Thread-259047][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 15:14:16,506 [ INFO][       Thread-259047][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 15:14:16,506 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 15:14:16,507 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 15:14:17,497 [DEBUG][       Thread-259047][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 15:14:17,497 [DEBUG][       Thread-259047][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 15:14:17,548 [DEBUG][       Thread-259047][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 15:14:17,548 [DEBUG][       Thread-259047][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 15:14:17,558 [DEBUG][       Thread-259047][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 15:14:17,569 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 15:14:17,570 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 15:14:17,580 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 15:14:17,590 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 15:14:17,590 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 15:14:17,591 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 15:14:17,599 [DEBUG][       Thread-259047][   transport.py][1871] : EOF in transport thread
2025-06-13 15:14:20,448 [DEBUG][Thread-259050 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:14:25,439 [DEBUG][Thread-259051 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:14:27,601 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 15:14:27,602 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 15:14:27,602 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 15:14:27,604 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 15:14:28,085 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 15, 14, 10), 18.22, 28.25, 0.0, 18.7, 14.06, 0, 0, 0, 2, 0, 0),)
2025-06-13 15:14:28,085 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 15:14:10
2025-06-13 15:14:28,167 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 15:14:28,171 [DEBUG][       Thread-259052][   transport.py][1871] : starting thread (client mode): 0x863bfd90
2025-06-13 15:14:28,171 [DEBUG][       Thread-259052][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 15:14:28,191 [DEBUG][       Thread-259052][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 15:14:28,191 [ INFO][       Thread-259052][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 15:14:28,194 [DEBUG][       Thread-259052][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 15:14:28,194 [DEBUG][       Thread-259052][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 15:14:28,194 [DEBUG][       Thread-259052][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 15:14:28,194 [DEBUG][       Thread-259052][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:14:28,194 [DEBUG][       Thread-259052][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:14:28,194 [DEBUG][       Thread-259052][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:14:28,194 [DEBUG][       Thread-259052][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:14:28,194 [DEBUG][       Thread-259052][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 15:14:28,194 [DEBUG][       Thread-259052][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 15:14:28,194 [DEBUG][       Thread-259052][   transport.py][1871] : client lang: <none>
2025-06-13 15:14:28,194 [DEBUG][       Thread-259052][   transport.py][1871] : server lang: <none>
2025-06-13 15:14:28,194 [DEBUG][       Thread-259052][   transport.py][1871] : kex follows: False
2025-06-13 15:14:28,194 [DEBUG][       Thread-259052][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 15:14:28,194 [DEBUG][       Thread-259052][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 15:14:28,194 [DEBUG][       Thread-259052][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 15:14:28,195 [DEBUG][       Thread-259052][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 15:14:28,195 [DEBUG][       Thread-259052][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 15:14:28,195 [DEBUG][       Thread-259052][   transport.py][1871] : Compression: none
2025-06-13 15:14:28,195 [DEBUG][       Thread-259052][   transport.py][1871] : === End of kex handshake ===
2025-06-13 15:14:28,210 [DEBUG][       Thread-259052][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 15:14:28,210 [DEBUG][       Thread-259052][   transport.py][1871] : Switch to new keys ...
2025-06-13 15:14:28,211 [DEBUG][       Thread-259052][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 15:14:28,211 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 15:14:28,211 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 15:14:28,212 [DEBUG][       Thread-259052][   transport.py][1871] : userauth is OK
2025-06-13 15:14:28,236 [ INFO][       Thread-259052][   transport.py][1871] : Authentication (password) successful!
2025-06-13 15:14:28,237 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 15:14:28,894 [DEBUG][       Thread-259052][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 15:14:28,894 [DEBUG][       Thread-259052][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 15:14:28,937 [DEBUG][       Thread-259052][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 15:14:28,937 [DEBUG][       Thread-259052][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 15:14:28,939 [DEBUG][       Thread-259052][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 15:14:28,951 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 15:14:28,951 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 15:14:28,953 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 15:14:28,955 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 15:14:28,959 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 15:14:28,961 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 15:14:28,961 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 15:14:28,962 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 15:14:28,962 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.551325 -999.00  +13.80  22.13     33   -2.10 1 1 1 1 1   887    0 16.47 38.92 ----- 22.6 22.1 38.0 24.7 17.4 -31.9 16.4 -33.3 17.1 -31.3 18.3 -30.4
2025-06-13 15:14:28,962 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 15:14:28,962 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 15:14:28,962 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.551325
2025-06-13 15:14:28,962 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 15:14:28,963 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 15:14:28,963 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 15:14:28,963 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 15:14:28,963 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 15:14:28,963 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T15:14:10', tmtdew=18.22, humidity=28.25, cloud=0.0, wind=18.7, temperature=14.06, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T13:13:54.480', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 15:14:28,963 [DEBUG][       Thread-259052][   transport.py][1871] : EOF in transport thread
2025-06-13 15:14:29,050 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 15:14:29,059 [DEBUG][       Thread-259055][   transport.py][1871] : starting thread (client mode): 0x863ee140
2025-06-13 15:14:29,059 [DEBUG][       Thread-259055][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 15:14:29,074 [DEBUG][       Thread-259055][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 15:14:29,074 [ INFO][       Thread-259055][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 15:14:29,082 [DEBUG][       Thread-259055][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 15:14:29,082 [DEBUG][       Thread-259055][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 15:14:29,082 [DEBUG][       Thread-259055][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 15:14:29,082 [DEBUG][       Thread-259055][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:14:29,082 [DEBUG][       Thread-259055][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:14:29,082 [DEBUG][       Thread-259055][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:14:29,082 [DEBUG][       Thread-259055][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:14:29,082 [DEBUG][       Thread-259055][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 15:14:29,082 [DEBUG][       Thread-259055][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 15:14:29,082 [DEBUG][       Thread-259055][   transport.py][1871] : client lang: <none>
2025-06-13 15:14:29,082 [DEBUG][       Thread-259055][   transport.py][1871] : server lang: <none>
2025-06-13 15:14:29,082 [DEBUG][       Thread-259055][   transport.py][1871] : kex follows: False
2025-06-13 15:14:29,082 [DEBUG][       Thread-259055][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 15:14:29,082 [DEBUG][       Thread-259055][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 15:14:29,082 [DEBUG][       Thread-259055][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 15:14:29,082 [DEBUG][       Thread-259055][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 15:14:29,082 [DEBUG][       Thread-259055][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 15:14:29,082 [DEBUG][       Thread-259055][   transport.py][1871] : Compression: none
2025-06-13 15:14:29,082 [DEBUG][       Thread-259055][   transport.py][1871] : === End of kex handshake ===
2025-06-13 15:14:29,138 [DEBUG][       Thread-259055][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 15:14:29,138 [DEBUG][       Thread-259055][   transport.py][1871] : Switch to new keys ...
2025-06-13 15:14:29,139 [DEBUG][       Thread-259055][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 15:14:29,139 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 15:14:29,139 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 15:14:29,194 [DEBUG][       Thread-259055][   transport.py][1871] : userauth is OK
2025-06-13 15:14:29,194 [DEBUG][       Thread-259055][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 15:14:29,195 [DEBUG][       Thread-259055][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 15:14:29,195 [DEBUG][       Thread-259055][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 15:14:29,195 [DEBUG][       Thread-259055][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 15:14:29,213 [ INFO][       Thread-259055][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 15:14:29,214 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 15:14:29,214 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 15:14:30,247 [DEBUG][       Thread-259055][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 15:14:30,247 [DEBUG][       Thread-259055][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 15:14:30,295 [DEBUG][       Thread-259055][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 15:14:30,295 [DEBUG][       Thread-259055][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 15:14:30,304 [DEBUG][       Thread-259055][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 15:14:30,312 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 15:14:30,313 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 15:14:30,321 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 15:14:30,332 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 15:14:30,332 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 15:14:30,332 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 15:14:30,344 [DEBUG][       Thread-259055][   transport.py][1871] : EOF in transport thread
2025-06-13 15:14:32,734 [DEBUG][Thread-259057 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:14:33,810 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:14:33,811 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:14:34,458 [DEBUG][Thread-259058 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:14:40,343 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 15:14:40,343 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 15:14:40,343 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 15:14:40,346 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 15:14:40,830 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 15, 14, 10), 18.22, 28.25, 0.0, 18.7, 14.06, 0, 0, 0, 2, 0, 0),)
2025-06-13 15:14:40,830 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 15:14:10
2025-06-13 15:14:40,910 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 15:14:40,916 [DEBUG][       Thread-259059][   transport.py][1871] : starting thread (client mode): 0x863bf670
2025-06-13 15:14:40,916 [DEBUG][       Thread-259059][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 15:14:40,938 [DEBUG][       Thread-259059][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 15:14:40,938 [ INFO][       Thread-259059][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 15:14:40,941 [DEBUG][       Thread-259059][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 15:14:40,941 [DEBUG][       Thread-259059][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 15:14:40,941 [DEBUG][       Thread-259059][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 15:14:40,941 [DEBUG][       Thread-259059][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:14:40,941 [DEBUG][       Thread-259059][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:14:40,941 [DEBUG][       Thread-259059][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:14:40,941 [DEBUG][       Thread-259059][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:14:40,942 [DEBUG][       Thread-259059][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 15:14:40,942 [DEBUG][       Thread-259059][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 15:14:40,942 [DEBUG][       Thread-259059][   transport.py][1871] : client lang: <none>
2025-06-13 15:14:40,942 [DEBUG][       Thread-259059][   transport.py][1871] : server lang: <none>
2025-06-13 15:14:40,942 [DEBUG][       Thread-259059][   transport.py][1871] : kex follows: False
2025-06-13 15:14:40,942 [DEBUG][       Thread-259059][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 15:14:40,942 [DEBUG][       Thread-259059][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 15:14:40,942 [DEBUG][       Thread-259059][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 15:14:40,942 [DEBUG][       Thread-259059][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 15:14:40,942 [DEBUG][       Thread-259059][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 15:14:40,942 [DEBUG][       Thread-259059][   transport.py][1871] : Compression: none
2025-06-13 15:14:40,942 [DEBUG][       Thread-259059][   transport.py][1871] : === End of kex handshake ===
2025-06-13 15:14:40,959 [DEBUG][       Thread-259059][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 15:14:40,959 [DEBUG][       Thread-259059][   transport.py][1871] : Switch to new keys ...
2025-06-13 15:14:40,960 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 15:14:40,960 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 15:14:40,960 [DEBUG][       Thread-259059][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 15:14:40,961 [DEBUG][       Thread-259059][   transport.py][1871] : userauth is OK
2025-06-13 15:14:40,974 [ INFO][       Thread-259059][   transport.py][1871] : Authentication (password) successful!
2025-06-13 15:14:40,975 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 15:14:41,644 [DEBUG][       Thread-259059][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 15:14:41,645 [DEBUG][       Thread-259059][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 15:14:41,689 [DEBUG][       Thread-259059][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 15:14:41,689 [DEBUG][       Thread-259059][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 15:14:41,692 [DEBUG][       Thread-259059][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 15:14:41,698 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 15:14:41,698 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 15:14:41,700 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 15:14:41,702 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 15:14:41,708 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 15:14:41,710 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 15:14:41,710 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 15:14:41,710 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 15:14:41,711 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.551325 -999.00  +13.80  22.13     33   -2.10 1 1 1 1 1   887    0 16.47 38.92 ----- 22.6 22.1 38.0 24.7 17.4 -31.9 16.4 -33.3 17.1 -31.3 18.3 -30.4
2025-06-13 15:14:41,711 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 15:14:41,711 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 15:14:41,711 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.551325
2025-06-13 15:14:41,711 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 15:14:41,712 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 15:14:41,712 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 15:14:41,712 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 15:14:41,712 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 15:14:41,712 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T15:14:10', tmtdew=18.22, humidity=28.25, cloud=0.0, wind=18.7, temperature=14.06, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T13:13:54.480', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 15:14:41,713 [DEBUG][       Thread-259059][   transport.py][1871] : EOF in transport thread
2025-06-13 15:14:41,795 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 15:14:41,808 [DEBUG][       Thread-259062][   transport.py][1871] : starting thread (client mode): 0x863bc730
2025-06-13 15:14:41,808 [DEBUG][       Thread-259062][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 15:14:41,826 [DEBUG][       Thread-259062][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 15:14:41,826 [ INFO][       Thread-259062][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 15:14:41,835 [DEBUG][       Thread-259062][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 15:14:41,835 [DEBUG][       Thread-259062][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 15:14:41,835 [DEBUG][       Thread-259062][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 15:14:41,835 [DEBUG][       Thread-259062][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:14:41,835 [DEBUG][       Thread-259062][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:14:41,835 [DEBUG][       Thread-259062][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:14:41,835 [DEBUG][       Thread-259062][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:14:41,835 [DEBUG][       Thread-259062][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 15:14:41,835 [DEBUG][       Thread-259062][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 15:14:41,835 [DEBUG][       Thread-259062][   transport.py][1871] : client lang: <none>
2025-06-13 15:14:41,835 [DEBUG][       Thread-259062][   transport.py][1871] : server lang: <none>
2025-06-13 15:14:41,835 [DEBUG][       Thread-259062][   transport.py][1871] : kex follows: False
2025-06-13 15:14:41,835 [DEBUG][       Thread-259062][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 15:14:41,835 [DEBUG][       Thread-259062][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 15:14:41,836 [DEBUG][       Thread-259062][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 15:14:41,836 [DEBUG][       Thread-259062][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 15:14:41,836 [DEBUG][       Thread-259062][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 15:14:41,836 [DEBUG][       Thread-259062][   transport.py][1871] : Compression: none
2025-06-13 15:14:41,836 [DEBUG][       Thread-259062][   transport.py][1871] : === End of kex handshake ===
2025-06-13 15:14:41,896 [DEBUG][       Thread-259062][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 15:14:41,897 [DEBUG][       Thread-259062][   transport.py][1871] : Switch to new keys ...
2025-06-13 15:14:41,898 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 15:14:41,898 [DEBUG][       Thread-259062][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 15:14:41,899 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 15:14:41,956 [DEBUG][       Thread-259062][   transport.py][1871] : userauth is OK
2025-06-13 15:14:41,956 [DEBUG][       Thread-259062][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 15:14:41,956 [DEBUG][       Thread-259062][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 15:14:41,956 [DEBUG][       Thread-259062][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 15:14:41,956 [DEBUG][       Thread-259062][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 15:14:41,975 [ INFO][       Thread-259062][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 15:14:41,975 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 15:14:41,975 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 15:14:42,974 [DEBUG][       Thread-259062][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 15:14:42,974 [DEBUG][       Thread-259062][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 15:14:43,023 [DEBUG][       Thread-259062][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 15:14:43,023 [DEBUG][       Thread-259062][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 15:14:43,032 [DEBUG][       Thread-259062][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 15:14:43,040 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 15:14:43,040 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 15:14:43,048 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 15:14:43,056 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 15:14:43,057 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 15:14:43,057 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 15:14:43,064 [DEBUG][       Thread-259062][   transport.py][1871] : EOF in transport thread
2025-06-13 15:14:43,478 [DEBUG][Thread-259064 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:14:52,498 [DEBUG][Thread-259065 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:14:53,067 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 15:14:53,067 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 15:14:53,067 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 15:14:53,069 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 15:14:53,541 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 15, 14, 42), 18.26, 28.16, 0.0, 18.74, 14.07, 0, 0, 0, 2, 0, 0),)
2025-06-13 15:14:53,541 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 15:14:42
2025-06-13 15:14:53,622 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 15:14:53,626 [DEBUG][       Thread-259066][   transport.py][1871] : starting thread (client mode): 0x863bc640
2025-06-13 15:14:53,626 [DEBUG][       Thread-259066][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 15:14:53,647 [DEBUG][       Thread-259066][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 15:14:53,647 [ INFO][       Thread-259066][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 15:14:53,650 [DEBUG][       Thread-259066][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 15:14:53,650 [DEBUG][       Thread-259066][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 15:14:53,650 [DEBUG][       Thread-259066][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 15:14:53,650 [DEBUG][       Thread-259066][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:14:53,650 [DEBUG][       Thread-259066][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:14:53,650 [DEBUG][       Thread-259066][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:14:53,650 [DEBUG][       Thread-259066][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:14:53,650 [DEBUG][       Thread-259066][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 15:14:53,651 [DEBUG][       Thread-259066][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 15:14:53,651 [DEBUG][       Thread-259066][   transport.py][1871] : client lang: <none>
2025-06-13 15:14:53,651 [DEBUG][       Thread-259066][   transport.py][1871] : server lang: <none>
2025-06-13 15:14:53,651 [DEBUG][       Thread-259066][   transport.py][1871] : kex follows: False
2025-06-13 15:14:53,651 [DEBUG][       Thread-259066][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 15:14:53,651 [DEBUG][       Thread-259066][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 15:14:53,651 [DEBUG][       Thread-259066][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 15:14:53,651 [DEBUG][       Thread-259066][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 15:14:53,651 [DEBUG][       Thread-259066][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 15:14:53,651 [DEBUG][       Thread-259066][   transport.py][1871] : Compression: none
2025-06-13 15:14:53,651 [DEBUG][       Thread-259066][   transport.py][1871] : === End of kex handshake ===
2025-06-13 15:14:53,667 [DEBUG][       Thread-259066][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 15:14:53,668 [DEBUG][       Thread-259066][   transport.py][1871] : Switch to new keys ...
2025-06-13 15:14:53,668 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 15:14:53,669 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 15:14:53,669 [DEBUG][       Thread-259066][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 15:14:53,670 [DEBUG][       Thread-259066][   transport.py][1871] : userauth is OK
2025-06-13 15:14:53,695 [ INFO][       Thread-259066][   transport.py][1871] : Authentication (password) successful!
2025-06-13 15:14:53,696 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 15:14:54,312 [DEBUG][       Thread-259066][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 15:14:54,312 [DEBUG][       Thread-259066][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 15:14:54,353 [DEBUG][       Thread-259066][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 15:14:54,353 [DEBUG][       Thread-259066][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 15:14:54,356 [DEBUG][       Thread-259066][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 15:14:54,368 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 15:14:54,369 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 15:14:54,370 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 15:14:54,372 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 15:14:54,379 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 15:14:54,381 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 15:14:54,381 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 15:14:54,382 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 15:14:54,382 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.551672 -999.00  +13.80  26.01     32   -2.20 1 1 1 1 1   887    0 17.14 42.54 ----- 23.7 26.0 49.6 27.2 17.4 -32.4 16.3 -33.9 17.1 -32.0 18.3 -30.0
2025-06-13 15:14:54,382 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 15:14:54,382 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 15:14:54,382 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.551672
2025-06-13 15:14:54,383 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 15:14:54,383 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 15:14:54,383 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 15:14:54,383 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 15:14:54,383 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 15:14:54,384 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T15:14:42', tmtdew=18.26, humidity=28.16, cloud=0.0, wind=18.74, temperature=14.07, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T13:14:24.461', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 15:14:54,385 [DEBUG][       Thread-259066][   transport.py][1871] : EOF in transport thread
2025-06-13 15:14:54,468 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 15:14:54,477 [DEBUG][       Thread-259069][   transport.py][1871] : starting thread (client mode): 0x867b7670
2025-06-13 15:14:54,477 [DEBUG][       Thread-259069][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 15:14:54,493 [DEBUG][       Thread-259069][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 15:14:54,493 [ INFO][       Thread-259069][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 15:14:54,500 [DEBUG][       Thread-259069][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 15:14:54,500 [DEBUG][       Thread-259069][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 15:14:54,500 [DEBUG][       Thread-259069][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 15:14:54,501 [DEBUG][       Thread-259069][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:14:54,501 [DEBUG][       Thread-259069][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:14:54,501 [DEBUG][       Thread-259069][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:14:54,501 [DEBUG][       Thread-259069][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:14:54,501 [DEBUG][       Thread-259069][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 15:14:54,501 [DEBUG][       Thread-259069][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 15:14:54,501 [DEBUG][       Thread-259069][   transport.py][1871] : client lang: <none>
2025-06-13 15:14:54,501 [DEBUG][       Thread-259069][   transport.py][1871] : server lang: <none>
2025-06-13 15:14:54,501 [DEBUG][       Thread-259069][   transport.py][1871] : kex follows: False
2025-06-13 15:14:54,501 [DEBUG][       Thread-259069][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 15:14:54,501 [DEBUG][       Thread-259069][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 15:14:54,501 [DEBUG][       Thread-259069][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 15:14:54,501 [DEBUG][       Thread-259069][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 15:14:54,501 [DEBUG][       Thread-259069][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 15:14:54,501 [DEBUG][       Thread-259069][   transport.py][1871] : Compression: none
2025-06-13 15:14:54,501 [DEBUG][       Thread-259069][   transport.py][1871] : === End of kex handshake ===
2025-06-13 15:14:54,559 [DEBUG][       Thread-259069][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 15:14:54,560 [DEBUG][       Thread-259069][   transport.py][1871] : Switch to new keys ...
2025-06-13 15:14:54,560 [DEBUG][       Thread-259069][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 15:14:54,561 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 15:14:54,562 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 15:14:54,620 [DEBUG][       Thread-259069][   transport.py][1871] : userauth is OK
2025-06-13 15:14:54,620 [DEBUG][       Thread-259069][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 15:14:54,621 [DEBUG][       Thread-259069][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 15:14:54,621 [DEBUG][       Thread-259069][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 15:14:54,621 [DEBUG][       Thread-259069][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 15:14:54,641 [ INFO][       Thread-259069][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 15:14:54,641 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 15:14:54,642 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 15:14:55,669 [DEBUG][       Thread-259069][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 15:14:55,669 [DEBUG][       Thread-259069][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 15:14:55,720 [DEBUG][       Thread-259069][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 15:14:55,720 [DEBUG][       Thread-259069][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 15:14:55,729 [DEBUG][       Thread-259069][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 15:14:55,739 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 15:14:55,739 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 15:14:55,748 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 15:14:55,757 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 15:14:55,758 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 15:14:55,758 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 15:14:55,769 [DEBUG][       Thread-259069][   transport.py][1871] : EOF in transport thread
2025-06-13 15:15:01,519 [DEBUG][Thread-259071 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:15:05,768 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 15:15:05,769 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 15:15:05,769 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 15:15:05,771 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 15:15:06,260 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 15, 14, 42), 18.26, 28.16, 0.0, 18.74, 14.07, 0, 0, 0, 2, 0, 0),)
2025-06-13 15:15:06,260 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 15:14:42
2025-06-13 15:15:06,342 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 15:15:06,347 [DEBUG][       Thread-259072][   transport.py][1871] : starting thread (client mode): 0x863a4280
2025-06-13 15:15:06,347 [DEBUG][       Thread-259072][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 15:15:06,368 [DEBUG][       Thread-259072][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 15:15:06,368 [ INFO][       Thread-259072][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 15:15:06,371 [DEBUG][       Thread-259072][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 15:15:06,371 [DEBUG][       Thread-259072][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 15:15:06,371 [DEBUG][       Thread-259072][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 15:15:06,371 [DEBUG][       Thread-259072][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:15:06,371 [DEBUG][       Thread-259072][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:15:06,371 [DEBUG][       Thread-259072][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:15:06,371 [DEBUG][       Thread-259072][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:15:06,371 [DEBUG][       Thread-259072][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 15:15:06,371 [DEBUG][       Thread-259072][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 15:15:06,371 [DEBUG][       Thread-259072][   transport.py][1871] : client lang: <none>
2025-06-13 15:15:06,371 [DEBUG][       Thread-259072][   transport.py][1871] : server lang: <none>
2025-06-13 15:15:06,371 [DEBUG][       Thread-259072][   transport.py][1871] : kex follows: False
2025-06-13 15:15:06,371 [DEBUG][       Thread-259072][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 15:15:06,371 [DEBUG][       Thread-259072][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 15:15:06,371 [DEBUG][       Thread-259072][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 15:15:06,371 [DEBUG][       Thread-259072][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 15:15:06,371 [DEBUG][       Thread-259072][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 15:15:06,371 [DEBUG][       Thread-259072][   transport.py][1871] : Compression: none
2025-06-13 15:15:06,371 [DEBUG][       Thread-259072][   transport.py][1871] : === End of kex handshake ===
2025-06-13 15:15:06,387 [DEBUG][       Thread-259072][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 15:15:06,388 [DEBUG][       Thread-259072][   transport.py][1871] : Switch to new keys ...
2025-06-13 15:15:06,389 [DEBUG][       Thread-259072][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 15:15:06,389 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 15:15:06,389 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 15:15:06,390 [DEBUG][       Thread-259072][   transport.py][1871] : userauth is OK
2025-06-13 15:15:06,403 [ INFO][       Thread-259072][   transport.py][1871] : Authentication (password) successful!
2025-06-13 15:15:06,404 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 15:15:07,471 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:15:07,473 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:15:10,542 [DEBUG][Thread-259074 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:15:14,850 [DEBUG][       Thread-259072][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 15:15:14,850 [DEBUG][       Thread-259072][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 15:15:14,893 [DEBUG][       Thread-259072][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 15:15:14,893 [DEBUG][       Thread-259072][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 15:15:14,896 [DEBUG][       Thread-259072][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 15:15:15,016 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 15:15:15,016 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 15:15:15,017 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 15:15:15,018 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 15:15:15,042 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 15:15:15,043 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 15:15:15,043 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 15:15:15,043 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 15:15:15,043 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.551672 -999.00  +13.80  26.01     32   -2.20 1 1 1 1 1   887    0 17.14 42.54 ----- 23.7 26.0 49.6 27.2 17.4 -32.4 16.3 -33.9 17.1 -32.0 18.3 -30.0
2025-06-13 15:15:15,043 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 15:15:15,043 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 15:15:15,043 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.551672
2025-06-13 15:15:15,043 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 15:15:15,044 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 15:15:15,044 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 15:15:15,044 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 15:15:15,044 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 15:15:15,044 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T15:14:42', tmtdew=18.26, humidity=28.16, cloud=0.0, wind=18.74, temperature=14.07, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T13:14:24.461', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 15:15:15,044 [DEBUG][       Thread-259072][   transport.py][1871] : EOF in transport thread
2025-06-13 15:15:15,118 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 15:15:15,129 [DEBUG][       Thread-259076][   transport.py][1871] : starting thread (client mode): 0x863bc700
2025-06-13 15:15:15,129 [DEBUG][       Thread-259076][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 15:15:15,147 [DEBUG][       Thread-259076][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 15:15:15,147 [ INFO][       Thread-259076][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 15:15:15,157 [DEBUG][       Thread-259076][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 15:15:15,157 [DEBUG][       Thread-259076][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 15:15:15,157 [DEBUG][       Thread-259076][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 15:15:15,157 [DEBUG][       Thread-259076][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:15:15,157 [DEBUG][       Thread-259076][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:15:15,157 [DEBUG][       Thread-259076][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:15:15,157 [DEBUG][       Thread-259076][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:15:15,157 [DEBUG][       Thread-259076][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 15:15:15,157 [DEBUG][       Thread-259076][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 15:15:15,157 [DEBUG][       Thread-259076][   transport.py][1871] : client lang: <none>
2025-06-13 15:15:15,157 [DEBUG][       Thread-259076][   transport.py][1871] : server lang: <none>
2025-06-13 15:15:15,157 [DEBUG][       Thread-259076][   transport.py][1871] : kex follows: False
2025-06-13 15:15:15,157 [DEBUG][       Thread-259076][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 15:15:15,157 [DEBUG][       Thread-259076][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 15:15:15,157 [DEBUG][       Thread-259076][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 15:15:15,157 [DEBUG][       Thread-259076][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 15:15:15,157 [DEBUG][       Thread-259076][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 15:15:15,157 [DEBUG][       Thread-259076][   transport.py][1871] : Compression: none
2025-06-13 15:15:15,157 [DEBUG][       Thread-259076][   transport.py][1871] : === End of kex handshake ===
2025-06-13 15:15:15,219 [DEBUG][       Thread-259076][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 15:15:15,219 [DEBUG][       Thread-259076][   transport.py][1871] : Switch to new keys ...
2025-06-13 15:15:15,219 [DEBUG][       Thread-259076][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 15:15:15,220 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 15:15:15,220 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 15:15:15,280 [DEBUG][       Thread-259076][   transport.py][1871] : userauth is OK
2025-06-13 15:15:15,280 [DEBUG][       Thread-259076][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 15:15:15,280 [DEBUG][       Thread-259076][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 15:15:15,280 [DEBUG][       Thread-259076][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 15:15:15,280 [DEBUG][       Thread-259076][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 15:15:15,294 [ INFO][       Thread-259076][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 15:15:15,294 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 15:15:15,294 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 15:15:16,282 [DEBUG][       Thread-259076][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 15:15:16,282 [DEBUG][       Thread-259076][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 15:15:16,331 [DEBUG][       Thread-259076][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 15:15:16,331 [DEBUG][       Thread-259076][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 15:15:16,340 [DEBUG][       Thread-259076][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 15:15:16,348 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 15:15:16,348 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 15:15:16,360 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 15:15:16,370 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 15:15:16,370 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 15:15:16,371 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 15:15:16,382 [DEBUG][       Thread-259076][   transport.py][1871] : EOF in transport thread
2025-06-13 15:15:19,562 [DEBUG][Thread-259078 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:15:20,502 [DEBUG][Thread-259079 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:15:26,380 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 15:15:26,380 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 15:15:26,380 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 15:15:26,381 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 15:15:26,883 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 15, 15, 14), 18.37, 27.65, 0.0, 14.75, 13.92, 0, 0, 0, 2, 0, 0),)
2025-06-13 15:15:26,883 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 15:15:14
2025-06-13 15:15:26,968 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 15:15:26,974 [DEBUG][       Thread-259080][   transport.py][1871] : starting thread (client mode): 0x863beda0
2025-06-13 15:15:26,975 [DEBUG][       Thread-259080][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 15:15:26,994 [DEBUG][       Thread-259080][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 15:15:26,995 [ INFO][       Thread-259080][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 15:15:26,998 [DEBUG][       Thread-259080][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 15:15:26,998 [DEBUG][       Thread-259080][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 15:15:26,998 [DEBUG][       Thread-259080][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 15:15:26,998 [DEBUG][       Thread-259080][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:15:26,998 [DEBUG][       Thread-259080][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:15:26,998 [DEBUG][       Thread-259080][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:15:26,998 [DEBUG][       Thread-259080][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:15:26,998 [DEBUG][       Thread-259080][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 15:15:26,998 [DEBUG][       Thread-259080][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 15:15:26,998 [DEBUG][       Thread-259080][   transport.py][1871] : client lang: <none>
2025-06-13 15:15:26,998 [DEBUG][       Thread-259080][   transport.py][1871] : server lang: <none>
2025-06-13 15:15:26,998 [DEBUG][       Thread-259080][   transport.py][1871] : kex follows: False
2025-06-13 15:15:26,998 [DEBUG][       Thread-259080][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 15:15:26,998 [DEBUG][       Thread-259080][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 15:15:26,998 [DEBUG][       Thread-259080][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 15:15:26,998 [DEBUG][       Thread-259080][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 15:15:26,998 [DEBUG][       Thread-259080][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 15:15:26,998 [DEBUG][       Thread-259080][   transport.py][1871] : Compression: none
2025-06-13 15:15:26,998 [DEBUG][       Thread-259080][   transport.py][1871] : === End of kex handshake ===
2025-06-13 15:15:27,007 [DEBUG][       Thread-259080][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 15:15:27,007 [DEBUG][       Thread-259080][   transport.py][1871] : Switch to new keys ...
2025-06-13 15:15:27,008 [DEBUG][       Thread-259080][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 15:15:27,008 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 15:15:27,008 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 15:15:27,008 [DEBUG][       Thread-259080][   transport.py][1871] : userauth is OK
2025-06-13 15:15:27,033 [ INFO][       Thread-259080][   transport.py][1871] : Authentication (password) successful!
2025-06-13 15:15:27,033 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 15:15:27,616 [DEBUG][       Thread-259080][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 15:15:27,616 [DEBUG][       Thread-259080][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 15:15:27,657 [DEBUG][       Thread-259080][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 15:15:27,657 [DEBUG][       Thread-259080][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 15:15:27,659 [DEBUG][       Thread-259080][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 15:15:27,670 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 15:15:27,671 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 15:15:27,672 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 15:15:27,674 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 15:15:27,679 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 15:15:27,681 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 15:15:27,681 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 15:15:27,682 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 15:15:27,682 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.552019 -999.00  +13.60  23.33     32   -2.60 1 1 1 1 1   887    0 17.07 46.22 ----- 21.5 23.3 49.0 26.9 17.3 -31.7 16.3 -34.2 17.1 -32.4 18.2 -29.7
2025-06-13 15:15:27,682 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 15:15:27,682 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 15:15:27,682 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.552019
2025-06-13 15:15:27,682 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 15:15:27,683 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 15:15:27,683 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 15:15:27,683 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 15:15:27,683 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 15:15:27,683 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T15:15:14', tmtdew=18.37, humidity=27.65, cloud=0.0, wind=14.75, temperature=13.92, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T13:14:54.442', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 15:15:27,683 [DEBUG][       Thread-259080][   transport.py][1871] : EOF in transport thread
2025-06-13 15:15:27,766 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 15:15:27,776 [DEBUG][       Thread-259083][   transport.py][1871] : starting thread (client mode): 0x863a6e00
2025-06-13 15:15:27,776 [DEBUG][       Thread-259083][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 15:15:27,796 [DEBUG][       Thread-259083][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 15:15:27,796 [ INFO][       Thread-259083][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 15:15:27,803 [DEBUG][       Thread-259083][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 15:15:27,804 [DEBUG][       Thread-259083][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 15:15:27,804 [DEBUG][       Thread-259083][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 15:15:27,804 [DEBUG][       Thread-259083][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:15:27,804 [DEBUG][       Thread-259083][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:15:27,804 [DEBUG][       Thread-259083][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:15:27,804 [DEBUG][       Thread-259083][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:15:27,804 [DEBUG][       Thread-259083][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 15:15:27,804 [DEBUG][       Thread-259083][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 15:15:27,804 [DEBUG][       Thread-259083][   transport.py][1871] : client lang: <none>
2025-06-13 15:15:27,804 [DEBUG][       Thread-259083][   transport.py][1871] : server lang: <none>
2025-06-13 15:15:27,804 [DEBUG][       Thread-259083][   transport.py][1871] : kex follows: False
2025-06-13 15:15:27,804 [DEBUG][       Thread-259083][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 15:15:27,804 [DEBUG][       Thread-259083][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 15:15:27,804 [DEBUG][       Thread-259083][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 15:15:27,804 [DEBUG][       Thread-259083][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 15:15:27,804 [DEBUG][       Thread-259083][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 15:15:27,804 [DEBUG][       Thread-259083][   transport.py][1871] : Compression: none
2025-06-13 15:15:27,805 [DEBUG][       Thread-259083][   transport.py][1871] : === End of kex handshake ===
2025-06-13 15:15:27,863 [DEBUG][       Thread-259083][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 15:15:27,863 [DEBUG][       Thread-259083][   transport.py][1871] : Switch to new keys ...
2025-06-13 15:15:27,864 [DEBUG][       Thread-259083][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 15:15:27,864 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 15:15:27,865 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 15:15:27,919 [DEBUG][       Thread-259083][   transport.py][1871] : userauth is OK
2025-06-13 15:15:27,919 [DEBUG][       Thread-259083][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 15:15:27,919 [DEBUG][       Thread-259083][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 15:15:27,919 [DEBUG][       Thread-259083][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 15:15:27,919 [DEBUG][       Thread-259083][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 15:15:27,938 [ INFO][       Thread-259083][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 15:15:27,938 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 15:15:27,939 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 15:15:28,581 [DEBUG][Thread-259085 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:15:28,947 [DEBUG][       Thread-259083][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 15:15:28,947 [DEBUG][       Thread-259083][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 15:15:28,996 [DEBUG][       Thread-259083][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 15:15:28,996 [DEBUG][       Thread-259083][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 15:15:29,006 [DEBUG][       Thread-259083][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 15:15:29,015 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 15:15:29,015 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 15:15:29,023 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 15:15:29,032 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 15:15:29,033 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 15:15:29,033 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 15:15:29,041 [DEBUG][       Thread-259083][   transport.py][1871] : EOF in transport thread
2025-06-13 15:15:33,858 [DEBUG][Thread-259086 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:15:34,939 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:15:34,941 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:15:37,619 [DEBUG][Thread-259087 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:15:39,043 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 15:15:39,044 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 15:15:39,044 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 15:15:39,047 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 15:15:39,534 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 15, 15, 14), 18.37, 27.65, 0.0, 14.75, 13.92, 0, 0, 0, 2, 0, 0),)
2025-06-13 15:15:39,535 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 15:15:14
2025-06-13 15:15:39,616 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 15:15:39,620 [DEBUG][       Thread-259088][   transport.py][1871] : starting thread (client mode): 0x863bd6c0
2025-06-13 15:15:39,620 [DEBUG][       Thread-259088][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 15:15:39,642 [DEBUG][       Thread-259088][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 15:15:39,642 [ INFO][       Thread-259088][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 15:15:39,645 [DEBUG][       Thread-259088][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 15:15:39,645 [DEBUG][       Thread-259088][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 15:15:39,645 [DEBUG][       Thread-259088][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 15:15:39,645 [DEBUG][       Thread-259088][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:15:39,645 [DEBUG][       Thread-259088][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:15:39,645 [DEBUG][       Thread-259088][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:15:39,645 [DEBUG][       Thread-259088][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:15:39,645 [DEBUG][       Thread-259088][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 15:15:39,645 [DEBUG][       Thread-259088][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 15:15:39,645 [DEBUG][       Thread-259088][   transport.py][1871] : client lang: <none>
2025-06-13 15:15:39,645 [DEBUG][       Thread-259088][   transport.py][1871] : server lang: <none>
2025-06-13 15:15:39,645 [DEBUG][       Thread-259088][   transport.py][1871] : kex follows: False
2025-06-13 15:15:39,645 [DEBUG][       Thread-259088][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 15:15:39,645 [DEBUG][       Thread-259088][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 15:15:39,645 [DEBUG][       Thread-259088][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 15:15:39,645 [DEBUG][       Thread-259088][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 15:15:39,646 [DEBUG][       Thread-259088][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 15:15:39,646 [DEBUG][       Thread-259088][   transport.py][1871] : Compression: none
2025-06-13 15:15:39,646 [DEBUG][       Thread-259088][   transport.py][1871] : === End of kex handshake ===
2025-06-13 15:15:39,663 [DEBUG][       Thread-259088][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 15:15:39,664 [DEBUG][       Thread-259088][   transport.py][1871] : Switch to new keys ...
2025-06-13 15:15:39,664 [DEBUG][       Thread-259088][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 15:15:39,664 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 15:15:39,664 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 15:15:39,665 [DEBUG][       Thread-259088][   transport.py][1871] : userauth is OK
2025-06-13 15:15:39,690 [ INFO][       Thread-259088][   transport.py][1871] : Authentication (password) successful!
2025-06-13 15:15:39,691 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 15:15:40,330 [DEBUG][       Thread-259088][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 15:15:40,330 [DEBUG][       Thread-259088][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 15:15:40,373 [DEBUG][       Thread-259088][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 15:15:40,373 [DEBUG][       Thread-259088][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 15:15:40,377 [DEBUG][       Thread-259088][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 15:15:40,388 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 15:15:40,389 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 15:15:40,391 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 15:15:40,393 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 15:15:40,399 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 15:15:40,401 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 15:15:40,401 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 15:15:40,402 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 15:15:40,402 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.552019 -999.00  +13.60  23.33     32   -2.60 1 1 1 1 1   887    0 17.07 46.22 ----- 21.5 23.3 49.0 26.9 17.3 -31.7 16.3 -34.2 17.1 -32.4 18.2 -29.7
2025-06-13 15:15:40,402 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 15:15:40,403 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 15:15:40,403 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.552019
2025-06-13 15:15:40,403 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 15:15:40,404 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 15:15:40,404 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 15:15:40,404 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 15:15:40,404 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 15:15:40,404 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T15:15:14', tmtdew=18.37, humidity=27.65, cloud=0.0, wind=14.75, temperature=13.92, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T13:14:54.442', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 15:15:40,404 [DEBUG][       Thread-259088][   transport.py][1871] : EOF in transport thread
2025-06-13 15:15:40,484 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 15:15:40,496 [DEBUG][       Thread-259091][   transport.py][1871] : starting thread (client mode): 0x867b52a0
2025-06-13 15:15:40,496 [DEBUG][       Thread-259091][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 15:15:40,511 [DEBUG][       Thread-259091][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 15:15:40,511 [ INFO][       Thread-259091][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 15:15:40,519 [DEBUG][       Thread-259091][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 15:15:40,519 [DEBUG][       Thread-259091][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 15:15:40,519 [DEBUG][       Thread-259091][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 15:15:40,519 [DEBUG][       Thread-259091][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:15:40,519 [DEBUG][       Thread-259091][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:15:40,519 [DEBUG][       Thread-259091][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:15:40,519 [DEBUG][       Thread-259091][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:15:40,519 [DEBUG][       Thread-259091][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 15:15:40,519 [DEBUG][       Thread-259091][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 15:15:40,519 [DEBUG][       Thread-259091][   transport.py][1871] : client lang: <none>
2025-06-13 15:15:40,519 [DEBUG][       Thread-259091][   transport.py][1871] : server lang: <none>
2025-06-13 15:15:40,519 [DEBUG][       Thread-259091][   transport.py][1871] : kex follows: False
2025-06-13 15:15:40,519 [DEBUG][       Thread-259091][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 15:15:40,520 [DEBUG][       Thread-259091][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 15:15:40,520 [DEBUG][       Thread-259091][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 15:15:40,520 [DEBUG][       Thread-259091][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 15:15:40,520 [DEBUG][       Thread-259091][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 15:15:40,520 [DEBUG][       Thread-259091][   transport.py][1871] : Compression: none
2025-06-13 15:15:40,520 [DEBUG][       Thread-259091][   transport.py][1871] : === End of kex handshake ===
2025-06-13 15:15:40,587 [DEBUG][       Thread-259091][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 15:15:40,587 [DEBUG][       Thread-259091][   transport.py][1871] : Switch to new keys ...
2025-06-13 15:15:40,596 [DEBUG][       Thread-259091][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 15:15:40,597 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 15:15:40,597 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 15:15:40,643 [DEBUG][       Thread-259091][   transport.py][1871] : userauth is OK
2025-06-13 15:15:40,643 [DEBUG][       Thread-259091][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 15:15:40,644 [DEBUG][       Thread-259091][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 15:15:40,644 [DEBUG][       Thread-259091][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 15:15:40,644 [DEBUG][       Thread-259091][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 15:15:40,670 [ INFO][       Thread-259091][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 15:15:40,670 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 15:15:40,671 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 15:15:41,685 [DEBUG][       Thread-259091][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 15:15:41,685 [DEBUG][       Thread-259091][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 15:15:41,739 [DEBUG][       Thread-259091][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 15:15:41,739 [DEBUG][       Thread-259091][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 15:15:41,749 [DEBUG][       Thread-259091][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 15:15:41,758 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 15:15:41,758 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 15:15:41,769 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 15:15:41,784 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 15:15:41,785 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 15:15:41,785 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 15:15:41,795 [DEBUG][       Thread-259091][   transport.py][1871] : EOF in transport thread
2025-06-13 15:15:46,640 [DEBUG][Thread-259093 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:15:51,795 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 15:15:51,796 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 15:15:51,796 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 15:15:51,799 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 15:15:52,284 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 15, 15, 45), 18.34, 27.71, 0.0, 15.3, 13.89, 0, 0, 0, 2, 0, 0),)
2025-06-13 15:15:52,284 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 15:15:45
2025-06-13 15:15:52,366 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 15:15:52,372 [DEBUG][       Thread-259094][   transport.py][1871] : starting thread (client mode): 0x863bc1c0
2025-06-13 15:15:52,372 [DEBUG][       Thread-259094][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 15:15:52,385 [DEBUG][       Thread-259094][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 15:15:52,385 [ INFO][       Thread-259094][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 15:15:52,389 [DEBUG][       Thread-259094][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 15:15:52,389 [DEBUG][       Thread-259094][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 15:15:52,389 [DEBUG][       Thread-259094][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 15:15:52,389 [DEBUG][       Thread-259094][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:15:52,389 [DEBUG][       Thread-259094][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:15:52,389 [DEBUG][       Thread-259094][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:15:52,389 [DEBUG][       Thread-259094][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:15:52,389 [DEBUG][       Thread-259094][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 15:15:52,389 [DEBUG][       Thread-259094][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 15:15:52,389 [DEBUG][       Thread-259094][   transport.py][1871] : client lang: <none>
2025-06-13 15:15:52,389 [DEBUG][       Thread-259094][   transport.py][1871] : server lang: <none>
2025-06-13 15:15:52,389 [DEBUG][       Thread-259094][   transport.py][1871] : kex follows: False
2025-06-13 15:15:52,389 [DEBUG][       Thread-259094][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 15:15:52,389 [DEBUG][       Thread-259094][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 15:15:52,389 [DEBUG][       Thread-259094][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 15:15:52,389 [DEBUG][       Thread-259094][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 15:15:52,389 [DEBUG][       Thread-259094][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 15:15:52,389 [DEBUG][       Thread-259094][   transport.py][1871] : Compression: none
2025-06-13 15:15:52,389 [DEBUG][       Thread-259094][   transport.py][1871] : === End of kex handshake ===
2025-06-13 15:15:52,405 [DEBUG][       Thread-259094][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 15:15:52,406 [DEBUG][       Thread-259094][   transport.py][1871] : Switch to new keys ...
2025-06-13 15:15:52,406 [DEBUG][       Thread-259094][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 15:15:52,406 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 15:15:52,407 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 15:15:52,407 [DEBUG][       Thread-259094][   transport.py][1871] : userauth is OK
2025-06-13 15:15:52,420 [ INFO][       Thread-259094][   transport.py][1871] : Authentication (password) successful!
2025-06-13 15:15:52,421 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 15:15:53,173 [DEBUG][       Thread-259094][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 15:15:53,174 [DEBUG][       Thread-259094][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 15:15:53,217 [DEBUG][       Thread-259094][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 15:15:53,217 [DEBUG][       Thread-259094][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 15:15:53,221 [DEBUG][       Thread-259094][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 15:15:53,232 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 15:15:53,233 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 15:15:53,235 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 15:15:53,237 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 15:15:53,243 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 15:15:53,245 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 15:15:53,245 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 15:15:53,246 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 15:15:53,246 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.552019 -999.00  +13.60  23.33     32   -2.60 1 1 1 1 1   887    0 17.07 46.22 ----- 21.5 23.3 49.0 26.9 17.3 -31.7 16.3 -34.2 17.1 -32.4 18.2 -29.7
2025-06-13 15:15:53,246 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 15:15:53,246 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 15:15:53,246 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.552019
2025-06-13 15:15:53,247 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 15:15:53,247 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 15:15:53,247 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 15:15:53,247 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 15:15:53,248 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 15:15:53,248 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T15:15:45', tmtdew=18.34, humidity=27.71, cloud=0.0, wind=15.3, temperature=13.89, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T13:14:54.442', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 15:15:53,249 [DEBUG][       Thread-259094][   transport.py][1871] : EOF in transport thread
2025-06-13 15:15:53,331 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 15:15:53,341 [DEBUG][       Thread-259097][   transport.py][1871] : starting thread (client mode): 0x863a65f0
2025-06-13 15:15:53,341 [DEBUG][       Thread-259097][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 15:15:53,356 [DEBUG][       Thread-259097][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 15:15:53,356 [ INFO][       Thread-259097][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 15:15:53,364 [DEBUG][       Thread-259097][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 15:15:53,364 [DEBUG][       Thread-259097][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 15:15:53,364 [DEBUG][       Thread-259097][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 15:15:53,364 [DEBUG][       Thread-259097][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:15:53,364 [DEBUG][       Thread-259097][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:15:53,364 [DEBUG][       Thread-259097][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:15:53,364 [DEBUG][       Thread-259097][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:15:53,364 [DEBUG][       Thread-259097][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 15:15:53,364 [DEBUG][       Thread-259097][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 15:15:53,364 [DEBUG][       Thread-259097][   transport.py][1871] : client lang: <none>
2025-06-13 15:15:53,364 [DEBUG][       Thread-259097][   transport.py][1871] : server lang: <none>
2025-06-13 15:15:53,364 [DEBUG][       Thread-259097][   transport.py][1871] : kex follows: False
2025-06-13 15:15:53,364 [DEBUG][       Thread-259097][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 15:15:53,364 [DEBUG][       Thread-259097][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 15:15:53,364 [DEBUG][       Thread-259097][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 15:15:53,365 [DEBUG][       Thread-259097][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 15:15:53,365 [DEBUG][       Thread-259097][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 15:15:53,365 [DEBUG][       Thread-259097][   transport.py][1871] : Compression: none
2025-06-13 15:15:53,365 [DEBUG][       Thread-259097][   transport.py][1871] : === End of kex handshake ===
2025-06-13 15:15:53,426 [DEBUG][       Thread-259097][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 15:15:53,427 [DEBUG][       Thread-259097][   transport.py][1871] : Switch to new keys ...
2025-06-13 15:15:53,427 [DEBUG][       Thread-259097][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 15:15:53,428 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 15:15:53,429 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 15:15:53,484 [DEBUG][       Thread-259097][   transport.py][1871] : userauth is OK
2025-06-13 15:15:53,484 [DEBUG][       Thread-259097][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 15:15:53,484 [DEBUG][       Thread-259097][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 15:15:53,484 [DEBUG][       Thread-259097][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 15:15:53,484 [DEBUG][       Thread-259097][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 15:15:53,507 [ INFO][       Thread-259097][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 15:15:53,507 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 15:15:53,507 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 15:15:54,508 [DEBUG][       Thread-259097][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 15:15:54,508 [DEBUG][       Thread-259097][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 15:15:54,556 [DEBUG][       Thread-259097][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 15:15:54,556 [DEBUG][       Thread-259097][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 15:15:54,567 [DEBUG][       Thread-259097][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 15:15:54,580 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 15:15:54,581 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 15:15:54,590 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 15:15:54,599 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 15:15:54,600 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 15:15:54,600 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 15:15:54,609 [DEBUG][       Thread-259097][   transport.py][1871] : EOF in transport thread
2025-06-13 15:15:55,660 [DEBUG][Thread-259099 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:16:04,608 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 15:16:04,608 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 15:16:04,608 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 15:16:04,608 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 15:16:04,695 [DEBUG][Thread-259100 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:16:05,106 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 15, 15, 45), 18.34, 27.71, 0.0, 15.3, 13.89, 0, 0, 0, 2, 0, 0),)
2025-06-13 15:16:05,106 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 15:15:45
2025-06-13 15:16:05,191 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 15:16:05,194 [DEBUG][       Thread-259101][   transport.py][1871] : starting thread (client mode): 0x863bc490
2025-06-13 15:16:05,195 [DEBUG][       Thread-259101][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 15:16:05,215 [DEBUG][       Thread-259101][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 15:16:05,215 [ INFO][       Thread-259101][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 15:16:05,219 [DEBUG][       Thread-259101][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 15:16:05,219 [DEBUG][       Thread-259101][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 15:16:05,219 [DEBUG][       Thread-259101][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 15:16:05,219 [DEBUG][       Thread-259101][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:16:05,219 [DEBUG][       Thread-259101][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:16:05,219 [DEBUG][       Thread-259101][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:16:05,219 [DEBUG][       Thread-259101][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:16:05,219 [DEBUG][       Thread-259101][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 15:16:05,219 [DEBUG][       Thread-259101][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 15:16:05,219 [DEBUG][       Thread-259101][   transport.py][1871] : client lang: <none>
2025-06-13 15:16:05,219 [DEBUG][       Thread-259101][   transport.py][1871] : server lang: <none>
2025-06-13 15:16:05,219 [DEBUG][       Thread-259101][   transport.py][1871] : kex follows: False
2025-06-13 15:16:05,219 [DEBUG][       Thread-259101][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 15:16:05,219 [DEBUG][       Thread-259101][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 15:16:05,219 [DEBUG][       Thread-259101][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 15:16:05,219 [DEBUG][       Thread-259101][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 15:16:05,219 [DEBUG][       Thread-259101][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 15:16:05,219 [DEBUG][       Thread-259101][   transport.py][1871] : Compression: none
2025-06-13 15:16:05,219 [DEBUG][       Thread-259101][   transport.py][1871] : === End of kex handshake ===
2025-06-13 15:16:05,234 [DEBUG][       Thread-259101][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 15:16:05,234 [DEBUG][       Thread-259101][   transport.py][1871] : Switch to new keys ...
2025-06-13 15:16:05,234 [DEBUG][       Thread-259101][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 15:16:05,234 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 15:16:05,234 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 15:16:05,234 [DEBUG][       Thread-259101][   transport.py][1871] : userauth is OK
2025-06-13 15:16:05,247 [ INFO][       Thread-259101][   transport.py][1871] : Authentication (password) successful!
2025-06-13 15:16:05,247 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 15:16:05,882 [DEBUG][       Thread-259101][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 15:16:05,882 [DEBUG][       Thread-259101][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 15:16:05,925 [DEBUG][       Thread-259101][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 15:16:05,925 [DEBUG][       Thread-259101][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 15:16:05,927 [DEBUG][       Thread-259101][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 15:16:05,939 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 15:16:05,939 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 15:16:05,941 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 15:16:05,942 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 15:16:05,945 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 15:16:05,946 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 15:16:05,946 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 15:16:05,946 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 15:16:05,946 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.552366 -999.00  +13.70  24.63     32   -2.30 1 1 1 1 1   887    0 16.62 47.50 ----- 24.8 24.6 59.4 28.3 17.3 -31.5 16.3 -33.9 17.0 -32.1 18.1 -30.2
2025-06-13 15:16:05,946 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 15:16:05,946 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 15:16:05,946 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.552366
2025-06-13 15:16:05,946 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 15:16:05,946 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 15:16:05,946 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 15:16:05,946 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 15:16:05,946 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 15:16:05,947 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T15:15:45', tmtdew=18.34, humidity=27.71, cloud=0.0, wind=15.3, temperature=13.89, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T13:15:24.422', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 15:16:05,948 [DEBUG][       Thread-259101][   transport.py][1871] : EOF in transport thread
2025-06-13 15:16:06,019 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 15:16:06,030 [DEBUG][       Thread-259104][   transport.py][1871] : starting thread (client mode): 0x863ee7d0
2025-06-13 15:16:06,030 [DEBUG][       Thread-259104][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 15:16:06,045 [DEBUG][       Thread-259104][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 15:16:06,045 [ INFO][       Thread-259104][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 15:16:06,052 [DEBUG][       Thread-259104][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 15:16:06,052 [DEBUG][       Thread-259104][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 15:16:06,052 [DEBUG][       Thread-259104][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 15:16:06,052 [DEBUG][       Thread-259104][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:16:06,052 [DEBUG][       Thread-259104][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:16:06,052 [DEBUG][       Thread-259104][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:16:06,052 [DEBUG][       Thread-259104][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:16:06,052 [DEBUG][       Thread-259104][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 15:16:06,052 [DEBUG][       Thread-259104][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 15:16:06,052 [DEBUG][       Thread-259104][   transport.py][1871] : client lang: <none>
2025-06-13 15:16:06,052 [DEBUG][       Thread-259104][   transport.py][1871] : server lang: <none>
2025-06-13 15:16:06,052 [DEBUG][       Thread-259104][   transport.py][1871] : kex follows: False
2025-06-13 15:16:06,052 [DEBUG][       Thread-259104][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 15:16:06,053 [DEBUG][       Thread-259104][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 15:16:06,053 [DEBUG][       Thread-259104][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 15:16:06,053 [DEBUG][       Thread-259104][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 15:16:06,053 [DEBUG][       Thread-259104][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 15:16:06,053 [DEBUG][       Thread-259104][   transport.py][1871] : Compression: none
2025-06-13 15:16:06,053 [DEBUG][       Thread-259104][   transport.py][1871] : === End of kex handshake ===
2025-06-13 15:16:06,116 [DEBUG][       Thread-259104][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 15:16:06,116 [DEBUG][       Thread-259104][   transport.py][1871] : Switch to new keys ...
2025-06-13 15:16:06,116 [DEBUG][       Thread-259104][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 15:16:06,116 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 15:16:06,116 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 15:16:06,175 [DEBUG][       Thread-259104][   transport.py][1871] : userauth is OK
2025-06-13 15:16:06,175 [DEBUG][       Thread-259104][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 15:16:06,175 [DEBUG][       Thread-259104][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 15:16:06,175 [DEBUG][       Thread-259104][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 15:16:06,175 [DEBUG][       Thread-259104][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 15:16:06,196 [ INFO][       Thread-259104][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 15:16:06,196 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 15:16:06,196 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 15:16:07,289 [DEBUG][       Thread-259104][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 15:16:07,289 [DEBUG][       Thread-259104][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 15:16:07,340 [DEBUG][       Thread-259104][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 15:16:07,340 [DEBUG][       Thread-259104][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 15:16:07,350 [DEBUG][       Thread-259104][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 15:16:07,359 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 15:16:07,360 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 15:16:07,369 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 15:16:07,378 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 15:16:07,378 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 15:16:07,379 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 15:16:07,387 [DEBUG][       Thread-259104][   transport.py][1871] : EOF in transport thread
2025-06-13 15:16:07,628 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:16:07,630 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:16:13,715 [DEBUG][Thread-259106 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:16:17,389 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 15:16:17,390 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 15:16:17,390 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 15:16:17,393 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 15:16:17,877 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 15, 15, 45), 18.34, 27.71, 0.0, 15.3, 13.89, 0, 0, 0, 2, 0, 0),)
2025-06-13 15:16:17,877 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 15:15:45
2025-06-13 15:16:17,958 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 15:16:17,965 [DEBUG][       Thread-259107][   transport.py][1871] : starting thread (client mode): 0x863bfe80
2025-06-13 15:16:17,965 [DEBUG][       Thread-259107][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 15:16:17,980 [DEBUG][       Thread-259107][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 15:16:17,980 [ INFO][       Thread-259107][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 15:16:17,983 [DEBUG][       Thread-259107][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 15:16:17,984 [DEBUG][       Thread-259107][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 15:16:17,984 [DEBUG][       Thread-259107][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 15:16:17,984 [DEBUG][       Thread-259107][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:16:17,984 [DEBUG][       Thread-259107][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:16:17,984 [DEBUG][       Thread-259107][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:16:17,984 [DEBUG][       Thread-259107][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:16:17,984 [DEBUG][       Thread-259107][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 15:16:17,984 [DEBUG][       Thread-259107][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 15:16:17,984 [DEBUG][       Thread-259107][   transport.py][1871] : client lang: <none>
2025-06-13 15:16:17,984 [DEBUG][       Thread-259107][   transport.py][1871] : server lang: <none>
2025-06-13 15:16:17,984 [DEBUG][       Thread-259107][   transport.py][1871] : kex follows: False
2025-06-13 15:16:17,984 [DEBUG][       Thread-259107][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 15:16:17,984 [DEBUG][       Thread-259107][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 15:16:17,984 [DEBUG][       Thread-259107][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 15:16:17,984 [DEBUG][       Thread-259107][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 15:16:17,984 [DEBUG][       Thread-259107][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 15:16:17,984 [DEBUG][       Thread-259107][   transport.py][1871] : Compression: none
2025-06-13 15:16:17,984 [DEBUG][       Thread-259107][   transport.py][1871] : === End of kex handshake ===
2025-06-13 15:16:18,001 [DEBUG][       Thread-259107][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 15:16:18,001 [DEBUG][       Thread-259107][   transport.py][1871] : Switch to new keys ...
2025-06-13 15:16:18,002 [DEBUG][       Thread-259107][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 15:16:18,002 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 15:16:18,002 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 15:16:18,003 [DEBUG][       Thread-259107][   transport.py][1871] : userauth is OK
2025-06-13 15:16:18,028 [ INFO][       Thread-259107][   transport.py][1871] : Authentication (password) successful!
2025-06-13 15:16:18,029 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 15:16:18,709 [DEBUG][       Thread-259107][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 15:16:18,709 [DEBUG][       Thread-259107][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 15:16:18,753 [DEBUG][       Thread-259107][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 15:16:18,753 [DEBUG][       Thread-259107][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 15:16:18,755 [DEBUG][       Thread-259107][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 15:16:18,767 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 15:16:18,767 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 15:16:18,768 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 15:16:18,769 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 15:16:18,772 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 15:16:18,773 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 15:16:18,773 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 15:16:18,773 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 15:16:18,773 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.552366 -999.00  +13.70  24.63     32   -2.30 1 1 1 1 1   887    0 16.62 47.50 ----- 24.8 24.6 59.4 28.3 17.3 -31.5 16.3 -33.9 17.0 -32.1 18.1 -30.2
2025-06-13 15:16:18,773 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 15:16:18,773 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 15:16:18,773 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.552366
2025-06-13 15:16:18,773 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 15:16:18,773 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 15:16:18,773 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 15:16:18,773 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 15:16:18,773 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 15:16:18,773 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T15:15:45', tmtdew=18.34, humidity=27.71, cloud=0.0, wind=15.3, temperature=13.89, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T13:15:24.422', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 15:16:18,774 [DEBUG][       Thread-259107][   transport.py][1871] : EOF in transport thread
2025-06-13 15:16:18,847 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 15:16:18,859 [DEBUG][       Thread-259110][   transport.py][1871] : starting thread (client mode): 0x863be1a0
2025-06-13 15:16:18,859 [DEBUG][       Thread-259110][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 15:16:18,874 [DEBUG][       Thread-259110][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 15:16:18,874 [ INFO][       Thread-259110][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 15:16:18,881 [DEBUG][       Thread-259110][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 15:16:18,881 [DEBUG][       Thread-259110][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 15:16:18,881 [DEBUG][       Thread-259110][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 15:16:18,881 [DEBUG][       Thread-259110][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:16:18,881 [DEBUG][       Thread-259110][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:16:18,881 [DEBUG][       Thread-259110][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:16:18,881 [DEBUG][       Thread-259110][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:16:18,881 [DEBUG][       Thread-259110][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 15:16:18,882 [DEBUG][       Thread-259110][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 15:16:18,882 [DEBUG][       Thread-259110][   transport.py][1871] : client lang: <none>
2025-06-13 15:16:18,882 [DEBUG][       Thread-259110][   transport.py][1871] : server lang: <none>
2025-06-13 15:16:18,882 [DEBUG][       Thread-259110][   transport.py][1871] : kex follows: False
2025-06-13 15:16:18,882 [DEBUG][       Thread-259110][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 15:16:18,882 [DEBUG][       Thread-259110][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 15:16:18,882 [DEBUG][       Thread-259110][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 15:16:18,882 [DEBUG][       Thread-259110][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 15:16:18,882 [DEBUG][       Thread-259110][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 15:16:18,882 [DEBUG][       Thread-259110][   transport.py][1871] : Compression: none
2025-06-13 15:16:18,882 [DEBUG][       Thread-259110][   transport.py][1871] : === End of kex handshake ===
2025-06-13 15:16:18,937 [DEBUG][       Thread-259110][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 15:16:18,937 [DEBUG][       Thread-259110][   transport.py][1871] : Switch to new keys ...
2025-06-13 15:16:18,937 [DEBUG][       Thread-259110][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 15:16:18,937 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 15:16:18,937 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 15:16:18,994 [DEBUG][       Thread-259110][   transport.py][1871] : userauth is OK
2025-06-13 15:16:18,994 [DEBUG][       Thread-259110][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 15:16:18,994 [DEBUG][       Thread-259110][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 15:16:18,994 [DEBUG][       Thread-259110][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 15:16:18,994 [DEBUG][       Thread-259110][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 15:16:19,009 [ INFO][       Thread-259110][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 15:16:19,009 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 15:16:19,009 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 15:16:19,985 [DEBUG][       Thread-259110][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 15:16:19,985 [DEBUG][       Thread-259110][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 15:16:20,035 [DEBUG][       Thread-259110][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 15:16:20,035 [DEBUG][       Thread-259110][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 15:16:20,044 [DEBUG][       Thread-259110][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 15:16:20,053 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 15:16:20,053 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 15:16:20,061 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 15:16:20,070 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 15:16:20,070 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 15:16:20,070 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 15:16:20,078 [DEBUG][       Thread-259110][   transport.py][1871] : EOF in transport thread
2025-06-13 15:16:20,555 [DEBUG][Thread-259112 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:16:22,735 [DEBUG][Thread-259113 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:16:30,081 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 15:16:30,081 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 15:16:30,081 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 15:16:30,084 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 15:16:30,552 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 15, 16, 17), 18.19, 27.97, 0.0, 21.03, 13.73, 0, 0, 0, 2, 0, 0),)
2025-06-13 15:16:30,552 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 15:16:17
2025-06-13 15:16:30,634 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 15:16:30,637 [DEBUG][       Thread-259114][   transport.py][1871] : starting thread (client mode): 0x863ee2c0
2025-06-13 15:16:30,637 [DEBUG][       Thread-259114][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 15:16:30,658 [DEBUG][       Thread-259114][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 15:16:30,658 [ INFO][       Thread-259114][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 15:16:30,659 [DEBUG][       Thread-259114][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 15:16:30,659 [DEBUG][       Thread-259114][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 15:16:30,659 [DEBUG][       Thread-259114][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 15:16:30,660 [DEBUG][       Thread-259114][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:16:30,660 [DEBUG][       Thread-259114][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:16:30,660 [DEBUG][       Thread-259114][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:16:30,660 [DEBUG][       Thread-259114][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:16:30,660 [DEBUG][       Thread-259114][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 15:16:30,660 [DEBUG][       Thread-259114][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 15:16:30,660 [DEBUG][       Thread-259114][   transport.py][1871] : client lang: <none>
2025-06-13 15:16:30,660 [DEBUG][       Thread-259114][   transport.py][1871] : server lang: <none>
2025-06-13 15:16:30,660 [DEBUG][       Thread-259114][   transport.py][1871] : kex follows: False
2025-06-13 15:16:30,660 [DEBUG][       Thread-259114][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 15:16:30,660 [DEBUG][       Thread-259114][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 15:16:30,660 [DEBUG][       Thread-259114][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 15:16:30,660 [DEBUG][       Thread-259114][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 15:16:30,660 [DEBUG][       Thread-259114][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 15:16:30,660 [DEBUG][       Thread-259114][   transport.py][1871] : Compression: none
2025-06-13 15:16:30,660 [DEBUG][       Thread-259114][   transport.py][1871] : === End of kex handshake ===
2025-06-13 15:16:30,668 [DEBUG][       Thread-259114][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 15:16:30,669 [DEBUG][       Thread-259114][   transport.py][1871] : Switch to new keys ...
2025-06-13 15:16:30,669 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 15:16:30,669 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 15:16:30,670 [DEBUG][       Thread-259114][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 15:16:30,670 [DEBUG][       Thread-259114][   transport.py][1871] : userauth is OK
2025-06-13 15:16:30,683 [ INFO][       Thread-259114][   transport.py][1871] : Authentication (password) successful!
2025-06-13 15:16:30,684 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 15:16:31,342 [DEBUG][       Thread-259114][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 15:16:31,343 [DEBUG][       Thread-259114][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 15:16:31,385 [DEBUG][       Thread-259114][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 15:16:31,385 [DEBUG][       Thread-259114][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 15:16:31,388 [DEBUG][       Thread-259114][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 15:16:31,402 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 15:16:31,402 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 15:16:31,404 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 15:16:31,406 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 15:16:31,411 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 15:16:31,413 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 15:16:31,413 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 15:16:31,414 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 15:16:31,414 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.553061 -999.00  +13.60  15.30     32   -2.50 1 1 1 1 1   887    0 17.32 51.76 ----- 14.1 15.3 44.0 20.4 17.3 -31.1 16.3 -34.1 17.0 -31.9 18.3 -29.7
2025-06-13 15:16:31,414 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 15:16:31,414 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 15:16:31,414 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.553061
2025-06-13 15:16:31,414 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 15:16:31,415 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 15:16:31,415 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 15:16:31,415 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 15:16:31,415 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 15:16:31,415 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T15:16:17', tmtdew=18.19, humidity=27.97, cloud=0.0, wind=21.03, temperature=13.73, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T13:16:24.470', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 15:16:31,416 [DEBUG][       Thread-259114][   transport.py][1871] : EOF in transport thread
2025-06-13 15:16:31,499 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 15:16:31,509 [DEBUG][       Thread-259117][   transport.py][1871] : starting thread (client mode): 0x863bc100
2025-06-13 15:16:31,509 [DEBUG][       Thread-259117][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 15:16:31,530 [DEBUG][       Thread-259117][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 15:16:31,530 [ INFO][       Thread-259117][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 15:16:31,538 [DEBUG][       Thread-259117][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 15:16:31,538 [DEBUG][       Thread-259117][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 15:16:31,538 [DEBUG][       Thread-259117][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 15:16:31,538 [DEBUG][       Thread-259117][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:16:31,538 [DEBUG][       Thread-259117][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:16:31,538 [DEBUG][       Thread-259117][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:16:31,539 [DEBUG][       Thread-259117][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:16:31,539 [DEBUG][       Thread-259117][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 15:16:31,539 [DEBUG][       Thread-259117][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 15:16:31,539 [DEBUG][       Thread-259117][   transport.py][1871] : client lang: <none>
2025-06-13 15:16:31,539 [DEBUG][       Thread-259117][   transport.py][1871] : server lang: <none>
2025-06-13 15:16:31,539 [DEBUG][       Thread-259117][   transport.py][1871] : kex follows: False
2025-06-13 15:16:31,539 [DEBUG][       Thread-259117][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 15:16:31,539 [DEBUG][       Thread-259117][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 15:16:31,539 [DEBUG][       Thread-259117][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 15:16:31,539 [DEBUG][       Thread-259117][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 15:16:31,539 [DEBUG][       Thread-259117][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 15:16:31,539 [DEBUG][       Thread-259117][   transport.py][1871] : Compression: none
2025-06-13 15:16:31,539 [DEBUG][       Thread-259117][   transport.py][1871] : === End of kex handshake ===
2025-06-13 15:16:31,598 [DEBUG][       Thread-259117][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 15:16:31,599 [DEBUG][       Thread-259117][   transport.py][1871] : Switch to new keys ...
2025-06-13 15:16:31,600 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 15:16:31,600 [DEBUG][       Thread-259117][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 15:16:31,601 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 15:16:31,667 [DEBUG][       Thread-259117][   transport.py][1871] : userauth is OK
2025-06-13 15:16:31,667 [DEBUG][       Thread-259117][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 15:16:31,667 [DEBUG][       Thread-259117][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 15:16:31,667 [DEBUG][       Thread-259117][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 15:16:31,667 [DEBUG][       Thread-259117][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 15:16:31,686 [ INFO][       Thread-259117][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 15:16:31,686 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 15:16:31,687 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 15:16:31,757 [DEBUG][Thread-259119 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:16:32,671 [DEBUG][       Thread-259117][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 15:16:32,672 [DEBUG][       Thread-259117][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 15:16:32,719 [DEBUG][       Thread-259117][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 15:16:32,719 [DEBUG][       Thread-259117][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 15:16:32,728 [DEBUG][       Thread-259117][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 15:16:32,736 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 15:16:32,736 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 15:16:32,744 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 15:16:32,752 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 15:16:32,752 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 15:16:32,752 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 15:16:32,760 [DEBUG][       Thread-259117][   transport.py][1871] : EOF in transport thread
2025-06-13 15:16:35,020 [DEBUG][Thread-259120 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:16:36,098 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:16:36,100 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:16:40,799 [DEBUG][Thread-259121 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:16:42,760 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 15:16:42,760 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 15:16:42,760 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 15:16:42,761 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 15:16:43,244 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 15, 16, 17), 18.19, 27.97, 0.0, 21.03, 13.73, 0, 0, 0, 2, 0, 0),)
2025-06-13 15:16:43,244 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 15:16:17
2025-06-13 15:16:43,330 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 15:16:43,336 [DEBUG][       Thread-259122][   transport.py][1871] : starting thread (client mode): 0x863a6bc0
2025-06-13 15:16:43,336 [DEBUG][       Thread-259122][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 15:16:43,356 [DEBUG][       Thread-259122][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 15:16:43,356 [ INFO][       Thread-259122][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 15:16:43,359 [DEBUG][       Thread-259122][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 15:16:43,359 [DEBUG][       Thread-259122][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 15:16:43,359 [DEBUG][       Thread-259122][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 15:16:43,359 [DEBUG][       Thread-259122][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:16:43,359 [DEBUG][       Thread-259122][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:16:43,359 [DEBUG][       Thread-259122][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:16:43,359 [DEBUG][       Thread-259122][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:16:43,359 [DEBUG][       Thread-259122][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 15:16:43,359 [DEBUG][       Thread-259122][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 15:16:43,359 [DEBUG][       Thread-259122][   transport.py][1871] : client lang: <none>
2025-06-13 15:16:43,359 [DEBUG][       Thread-259122][   transport.py][1871] : server lang: <none>
2025-06-13 15:16:43,359 [DEBUG][       Thread-259122][   transport.py][1871] : kex follows: False
2025-06-13 15:16:43,359 [DEBUG][       Thread-259122][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 15:16:43,359 [DEBUG][       Thread-259122][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 15:16:43,359 [DEBUG][       Thread-259122][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 15:16:43,359 [DEBUG][       Thread-259122][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 15:16:43,359 [DEBUG][       Thread-259122][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 15:16:43,359 [DEBUG][       Thread-259122][   transport.py][1871] : Compression: none
2025-06-13 15:16:43,359 [DEBUG][       Thread-259122][   transport.py][1871] : === End of kex handshake ===
2025-06-13 15:16:43,374 [DEBUG][       Thread-259122][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 15:16:43,374 [DEBUG][       Thread-259122][   transport.py][1871] : Switch to new keys ...
2025-06-13 15:16:43,374 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 15:16:43,374 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 15:16:43,374 [DEBUG][       Thread-259122][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 15:16:43,375 [DEBUG][       Thread-259122][   transport.py][1871] : userauth is OK
2025-06-13 15:16:43,388 [ INFO][       Thread-259122][   transport.py][1871] : Authentication (password) successful!
2025-06-13 15:16:43,388 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 15:16:44,031 [DEBUG][       Thread-259122][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 15:16:44,031 [DEBUG][       Thread-259122][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 15:16:44,073 [DEBUG][       Thread-259122][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 15:16:44,073 [DEBUG][       Thread-259122][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 15:16:44,075 [DEBUG][       Thread-259122][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 15:16:44,086 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 15:16:44,086 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 15:16:44,088 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 15:16:44,089 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 15:16:44,092 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 15:16:44,093 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 15:16:44,093 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 15:16:44,093 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 15:16:44,093 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.553061 -999.00  +13.60  15.30     32   -2.50 1 1 1 1 1   887    0 17.32 51.76 ----- 14.1 15.3 44.0 20.4 17.3 -31.1 16.3 -34.1 17.0 -31.9 18.3 -29.7
2025-06-13 15:16:44,093 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 15:16:44,093 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 15:16:44,093 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.553061
2025-06-13 15:16:44,093 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 15:16:44,094 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 15:16:44,094 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 15:16:44,094 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 15:16:44,094 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 15:16:44,094 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T15:16:17', tmtdew=18.19, humidity=27.97, cloud=0.0, wind=21.03, temperature=13.73, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T13:16:24.470', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 15:16:44,095 [DEBUG][       Thread-259122][   transport.py][1871] : EOF in transport thread
2025-06-13 15:16:44,168 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 15:16:49,816 [DEBUG][Thread-259125 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:16:58,838 [DEBUG][Thread-259126 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:17:07,774 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:17:07,775 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:17:07,861 [DEBUG][Thread-259127 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:17:16,883 [DEBUG][Thread-259128 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:17:20,610 [DEBUG][Thread-259129 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:17:25,902 [DEBUG][Thread-259130 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:17:34,923 [DEBUG][Thread-259131 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:17:36,123 [DEBUG][Thread-259132 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:17:37,174 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:17:37,182 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:17:43,944 [DEBUG][Thread-259133 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:17:52,965 [DEBUG][Thread-259134 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:18:01,983 [DEBUG][Thread-259135 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:18:07,911 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:18:07,912 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:18:11,006 [DEBUG][Thread-259136 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:18:20,027 [DEBUG][Thread-259137 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:18:20,653 [DEBUG][Thread-259138 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:18:29,047 [DEBUG][Thread-259139 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:18:37,260 [DEBUG][Thread-259140 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:18:38,066 [DEBUG][Thread-259141 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:18:38,315 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:18:38,315 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:18:47,084 [DEBUG][Thread-259142 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:18:53,716 [WARNING][ poll_weather_worker][      driver.py][ 286] : Unable to open ssh connection for writing weather state to io.saao.ac.za: [Errno 110] Connection timed out
2025-06-13 15:18:56,103 [DEBUG][Thread-259143 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:19:03,724 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 15:19:03,724 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 15:19:03,724 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 15:19:03,725 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 15:19:04,209 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 15, 18, 56), 18.16, 28.31, 0.0, 20.8, 14.09, 0, 0, 0, 2, 0, 0),)
2025-06-13 15:19:04,209 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 15:18:56
2025-06-13 15:19:04,291 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 15:19:04,297 [DEBUG][       Thread-259144][   transport.py][1871] : starting thread (client mode): 0x867b7220
2025-06-13 15:19:04,297 [DEBUG][       Thread-259144][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 15:19:04,318 [DEBUG][       Thread-259144][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 15:19:04,318 [ INFO][       Thread-259144][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 15:19:04,322 [DEBUG][       Thread-259144][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 15:19:04,322 [DEBUG][       Thread-259144][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 15:19:04,322 [DEBUG][       Thread-259144][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 15:19:04,322 [DEBUG][       Thread-259144][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:19:04,322 [DEBUG][       Thread-259144][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:19:04,322 [DEBUG][       Thread-259144][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:19:04,322 [DEBUG][       Thread-259144][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:19:04,322 [DEBUG][       Thread-259144][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 15:19:04,322 [DEBUG][       Thread-259144][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 15:19:04,322 [DEBUG][       Thread-259144][   transport.py][1871] : client lang: <none>
2025-06-13 15:19:04,322 [DEBUG][       Thread-259144][   transport.py][1871] : server lang: <none>
2025-06-13 15:19:04,322 [DEBUG][       Thread-259144][   transport.py][1871] : kex follows: False
2025-06-13 15:19:04,322 [DEBUG][       Thread-259144][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 15:19:04,322 [DEBUG][       Thread-259144][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 15:19:04,322 [DEBUG][       Thread-259144][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 15:19:04,322 [DEBUG][       Thread-259144][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 15:19:04,322 [DEBUG][       Thread-259144][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 15:19:04,322 [DEBUG][       Thread-259144][   transport.py][1871] : Compression: none
2025-06-13 15:19:04,322 [DEBUG][       Thread-259144][   transport.py][1871] : === End of kex handshake ===
2025-06-13 15:19:04,340 [DEBUG][       Thread-259144][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 15:19:04,341 [DEBUG][       Thread-259144][   transport.py][1871] : Switch to new keys ...
2025-06-13 15:19:04,341 [DEBUG][       Thread-259144][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 15:19:04,341 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 15:19:04,341 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 15:19:04,342 [DEBUG][       Thread-259144][   transport.py][1871] : userauth is OK
2025-06-13 15:19:04,367 [ INFO][       Thread-259144][   transport.py][1871] : Authentication (password) successful!
2025-06-13 15:19:04,367 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 15:19:05,041 [DEBUG][       Thread-259144][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 15:19:05,041 [DEBUG][       Thread-259144][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 15:19:05,085 [DEBUG][       Thread-259144][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 15:19:05,085 [DEBUG][       Thread-259144][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 15:19:05,088 [DEBUG][       Thread-259144][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 15:19:05,103 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 15:19:05,103 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 15:19:05,105 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 15:19:05,107 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 15:19:05,112 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 15:19:05,113 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 15:19:05,113 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 15:19:05,114 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 15:19:05,114 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.554450 -999.00  +13.50  19.21     32   -2.40 1 1 1 1 1   887    0 16.78 41.47 ----- 22.9 19.2 42.4 24.9 17.3 -32.8 16.3 -33.8 17.0 -32.9 18.1 -30.2
2025-06-13 15:19:05,114 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 15:19:05,114 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 15:19:05,114 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.554450
2025-06-13 15:19:05,115 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 15:19:05,115 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 15:19:05,115 [DEBUG][       Thread-259144][   transport.py][1871] : EOF in transport thread
2025-06-13 15:19:05,115 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 15:19:05,116 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 15:19:05,116 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 15:19:05,116 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T15:18:56', tmtdew=18.16, humidity=28.31, cloud=0.0, wind=20.8, temperature=14.09, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T13:18:24.480', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 15:19:05,122 [DEBUG][Thread-259147 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:19:05,198 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 15:19:05,208 [DEBUG][       Thread-259148][   transport.py][1871] : starting thread (client mode): 0x86893df0
2025-06-13 15:19:05,208 [DEBUG][       Thread-259148][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 15:19:05,223 [DEBUG][       Thread-259148][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 15:19:05,223 [ INFO][       Thread-259148][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 15:19:05,231 [DEBUG][       Thread-259148][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 15:19:05,231 [DEBUG][       Thread-259148][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 15:19:05,231 [DEBUG][       Thread-259148][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 15:19:05,231 [DEBUG][       Thread-259148][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:19:05,231 [DEBUG][       Thread-259148][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:19:05,231 [DEBUG][       Thread-259148][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:19:05,231 [DEBUG][       Thread-259148][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:19:05,231 [DEBUG][       Thread-259148][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 15:19:05,231 [DEBUG][       Thread-259148][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 15:19:05,231 [DEBUG][       Thread-259148][   transport.py][1871] : client lang: <none>
2025-06-13 15:19:05,231 [DEBUG][       Thread-259148][   transport.py][1871] : server lang: <none>
2025-06-13 15:19:05,231 [DEBUG][       Thread-259148][   transport.py][1871] : kex follows: False
2025-06-13 15:19:05,231 [DEBUG][       Thread-259148][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 15:19:05,232 [DEBUG][       Thread-259148][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 15:19:05,232 [DEBUG][       Thread-259148][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 15:19:05,232 [DEBUG][       Thread-259148][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 15:19:05,232 [DEBUG][       Thread-259148][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 15:19:05,232 [DEBUG][       Thread-259148][   transport.py][1871] : Compression: none
2025-06-13 15:19:05,232 [DEBUG][       Thread-259148][   transport.py][1871] : === End of kex handshake ===
2025-06-13 15:19:05,290 [DEBUG][       Thread-259148][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 15:19:05,290 [DEBUG][       Thread-259148][   transport.py][1871] : Switch to new keys ...
2025-06-13 15:19:05,291 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 15:19:05,292 [DEBUG][       Thread-259148][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 15:19:05,292 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 15:19:05,351 [DEBUG][       Thread-259148][   transport.py][1871] : userauth is OK
2025-06-13 15:19:05,351 [DEBUG][       Thread-259148][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 15:19:05,352 [DEBUG][       Thread-259148][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 15:19:05,352 [DEBUG][       Thread-259148][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 15:19:05,352 [DEBUG][       Thread-259148][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 15:19:05,371 [ INFO][       Thread-259148][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 15:19:05,371 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 15:19:05,372 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 15:19:06,380 [DEBUG][       Thread-259148][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 15:19:06,380 [DEBUG][       Thread-259148][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 15:19:06,430 [DEBUG][       Thread-259148][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 15:19:06,430 [DEBUG][       Thread-259148][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 15:19:06,440 [DEBUG][       Thread-259148][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 15:19:06,451 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 15:19:06,452 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 15:19:06,466 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 15:19:06,476 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 15:19:06,476 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 15:19:06,476 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 15:19:06,484 [DEBUG][       Thread-259148][   transport.py][1871] : EOF in transport thread
2025-06-13 15:19:08,053 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:19:08,055 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:19:14,151 [DEBUG][Thread-259150 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:19:16,484 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 15:19:16,484 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 15:19:16,484 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 15:19:16,485 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 15:19:16,991 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 15, 18, 56), 18.16, 28.31, 0.0, 20.8, 14.09, 0, 0, 0, 2, 0, 0),)
2025-06-13 15:19:16,991 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 15:18:56
2025-06-13 15:19:17,077 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 15:19:17,084 [DEBUG][       Thread-259151][   transport.py][1871] : starting thread (client mode): 0x863ee950
2025-06-13 15:19:17,084 [DEBUG][       Thread-259151][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 15:19:17,095 [DEBUG][       Thread-259151][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 15:19:17,095 [ INFO][       Thread-259151][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 15:19:17,097 [DEBUG][       Thread-259151][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 15:19:17,097 [DEBUG][       Thread-259151][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 15:19:17,097 [DEBUG][       Thread-259151][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 15:19:17,097 [DEBUG][       Thread-259151][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:19:17,097 [DEBUG][       Thread-259151][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:19:17,097 [DEBUG][       Thread-259151][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:19:17,097 [DEBUG][       Thread-259151][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:19:17,097 [DEBUG][       Thread-259151][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 15:19:17,097 [DEBUG][       Thread-259151][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 15:19:17,097 [DEBUG][       Thread-259151][   transport.py][1871] : client lang: <none>
2025-06-13 15:19:17,097 [DEBUG][       Thread-259151][   transport.py][1871] : server lang: <none>
2025-06-13 15:19:17,097 [DEBUG][       Thread-259151][   transport.py][1871] : kex follows: False
2025-06-13 15:19:17,097 [DEBUG][       Thread-259151][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 15:19:17,097 [DEBUG][       Thread-259151][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 15:19:17,097 [DEBUG][       Thread-259151][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 15:19:17,097 [DEBUG][       Thread-259151][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 15:19:17,097 [DEBUG][       Thread-259151][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 15:19:17,097 [DEBUG][       Thread-259151][   transport.py][1871] : Compression: none
2025-06-13 15:19:17,097 [DEBUG][       Thread-259151][   transport.py][1871] : === End of kex handshake ===
2025-06-13 15:19:17,104 [DEBUG][       Thread-259151][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 15:19:17,104 [DEBUG][       Thread-259151][   transport.py][1871] : Switch to new keys ...
2025-06-13 15:19:17,105 [DEBUG][       Thread-259151][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 15:19:17,105 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 15:19:17,105 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 15:19:17,105 [DEBUG][       Thread-259151][   transport.py][1871] : userauth is OK
2025-06-13 15:19:17,118 [ INFO][       Thread-259151][   transport.py][1871] : Authentication (password) successful!
2025-06-13 15:19:17,118 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 15:19:17,702 [DEBUG][       Thread-259151][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 15:19:17,702 [DEBUG][       Thread-259151][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 15:19:17,744 [DEBUG][       Thread-259151][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 15:19:17,744 [DEBUG][       Thread-259151][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 15:19:17,747 [DEBUG][       Thread-259151][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 15:19:17,758 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 15:19:17,758 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 15:19:17,759 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 15:19:17,760 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 15:19:17,764 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 15:19:17,765 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 15:19:17,765 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 15:19:17,765 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 15:19:17,765 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.554797 -999.00  +13.50  18.36     33   -2.40 1 1 1 1 1   887    0 16.91 41.42 ----- 17.0 18.4 41.4 22.8 17.2 -31.9 16.2 -33.9 17.0 -31.1 18.1 -29.8
2025-06-13 15:19:17,765 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 15:19:17,765 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 15:19:17,765 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.554797
2025-06-13 15:19:17,766 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 15:19:17,766 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 15:19:17,766 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 15:19:17,766 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 15:19:17,766 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 15:19:17,766 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T15:18:56', tmtdew=18.16, humidity=28.31, cloud=0.0, wind=20.8, temperature=14.09, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T13:18:54.461', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 15:19:17,767 [DEBUG][       Thread-259151][   transport.py][1871] : EOF in transport thread
2025-06-13 15:19:17,848 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 15:19:17,865 [DEBUG][       Thread-259154][   transport.py][1871] : starting thread (client mode): 0x86739330
2025-06-13 15:19:17,865 [DEBUG][       Thread-259154][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 15:19:17,881 [DEBUG][       Thread-259154][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 15:19:17,881 [ INFO][       Thread-259154][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 15:19:17,889 [DEBUG][       Thread-259154][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 15:19:17,889 [DEBUG][       Thread-259154][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 15:19:17,889 [DEBUG][       Thread-259154][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 15:19:17,889 [DEBUG][       Thread-259154][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:19:17,889 [DEBUG][       Thread-259154][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:19:17,889 [DEBUG][       Thread-259154][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:19:17,889 [DEBUG][       Thread-259154][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:19:17,889 [DEBUG][       Thread-259154][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 15:19:17,889 [DEBUG][       Thread-259154][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 15:19:17,889 [DEBUG][       Thread-259154][   transport.py][1871] : client lang: <none>
2025-06-13 15:19:17,890 [DEBUG][       Thread-259154][   transport.py][1871] : server lang: <none>
2025-06-13 15:19:17,890 [DEBUG][       Thread-259154][   transport.py][1871] : kex follows: False
2025-06-13 15:19:17,890 [DEBUG][       Thread-259154][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 15:19:17,890 [DEBUG][       Thread-259154][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 15:19:17,890 [DEBUG][       Thread-259154][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 15:19:17,890 [DEBUG][       Thread-259154][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 15:19:17,890 [DEBUG][       Thread-259154][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 15:19:17,890 [DEBUG][       Thread-259154][   transport.py][1871] : Compression: none
2025-06-13 15:19:17,890 [DEBUG][       Thread-259154][   transport.py][1871] : === End of kex handshake ===
2025-06-13 15:19:17,953 [DEBUG][       Thread-259154][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 15:19:17,953 [DEBUG][       Thread-259154][   transport.py][1871] : Switch to new keys ...
2025-06-13 15:19:17,953 [DEBUG][       Thread-259154][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 15:19:17,954 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 15:19:17,954 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 15:19:18,010 [DEBUG][       Thread-259154][   transport.py][1871] : userauth is OK
2025-06-13 15:19:18,010 [DEBUG][       Thread-259154][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 15:19:18,011 [DEBUG][       Thread-259154][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 15:19:18,011 [DEBUG][       Thread-259154][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 15:19:18,011 [DEBUG][       Thread-259154][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 15:19:18,032 [ INFO][       Thread-259154][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 15:19:18,033 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 15:19:18,033 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 15:19:19,036 [DEBUG][       Thread-259154][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 15:19:19,036 [DEBUG][       Thread-259154][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 15:19:19,084 [DEBUG][       Thread-259154][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 15:19:19,085 [DEBUG][       Thread-259154][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 15:19:19,100 [DEBUG][       Thread-259154][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 15:19:19,109 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 15:19:19,110 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 15:19:19,118 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 15:19:19,127 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 15:19:19,127 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 15:19:19,128 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 15:19:19,136 [DEBUG][       Thread-259154][   transport.py][1871] : EOF in transport thread
2025-06-13 15:19:20,695 [DEBUG][Thread-259156 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:19:23,170 [DEBUG][Thread-259157 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:19:29,136 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 15:19:29,136 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 15:19:29,136 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 15:19:29,136 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 15:19:29,647 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 15, 18, 56), 18.16, 28.31, 0.0, 20.8, 14.09, 0, 0, 0, 2, 0, 0),)
2025-06-13 15:19:29,647 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 15:18:56
2025-06-13 15:19:29,733 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 15:19:29,737 [DEBUG][       Thread-259158][   transport.py][1871] : starting thread (client mode): 0x863a5600
2025-06-13 15:19:29,737 [DEBUG][       Thread-259158][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 15:19:29,755 [DEBUG][       Thread-259158][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 15:19:29,755 [ INFO][       Thread-259158][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 15:19:29,758 [DEBUG][       Thread-259158][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 15:19:29,758 [DEBUG][       Thread-259158][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 15:19:29,758 [DEBUG][       Thread-259158][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 15:19:29,758 [DEBUG][       Thread-259158][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:19:29,758 [DEBUG][       Thread-259158][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:19:29,758 [DEBUG][       Thread-259158][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:19:29,758 [DEBUG][       Thread-259158][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:19:29,758 [DEBUG][       Thread-259158][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 15:19:29,758 [DEBUG][       Thread-259158][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 15:19:29,758 [DEBUG][       Thread-259158][   transport.py][1871] : client lang: <none>
2025-06-13 15:19:29,758 [DEBUG][       Thread-259158][   transport.py][1871] : server lang: <none>
2025-06-13 15:19:29,758 [DEBUG][       Thread-259158][   transport.py][1871] : kex follows: False
2025-06-13 15:19:29,758 [DEBUG][       Thread-259158][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 15:19:29,758 [DEBUG][       Thread-259158][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 15:19:29,758 [DEBUG][       Thread-259158][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 15:19:29,758 [DEBUG][       Thread-259158][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 15:19:29,758 [DEBUG][       Thread-259158][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 15:19:29,758 [DEBUG][       Thread-259158][   transport.py][1871] : Compression: none
2025-06-13 15:19:29,758 [DEBUG][       Thread-259158][   transport.py][1871] : === End of kex handshake ===
2025-06-13 15:19:29,773 [DEBUG][       Thread-259158][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 15:19:29,774 [DEBUG][       Thread-259158][   transport.py][1871] : Switch to new keys ...
2025-06-13 15:19:29,774 [DEBUG][       Thread-259158][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 15:19:29,774 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 15:19:29,774 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 15:19:29,774 [DEBUG][       Thread-259158][   transport.py][1871] : userauth is OK
2025-06-13 15:19:29,787 [ INFO][       Thread-259158][   transport.py][1871] : Authentication (password) successful!
2025-06-13 15:19:29,787 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 15:19:30,450 [DEBUG][       Thread-259158][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 15:19:30,450 [DEBUG][       Thread-259158][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 15:19:30,493 [DEBUG][       Thread-259158][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 15:19:30,493 [DEBUG][       Thread-259158][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 15:19:30,497 [DEBUG][       Thread-259158][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 15:19:30,508 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 15:19:30,508 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 15:19:30,510 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 15:19:30,512 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 15:19:30,518 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 15:19:30,520 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 15:19:30,520 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 15:19:30,521 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 15:19:30,521 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.554797 -999.00  +13.50  18.36     33   -2.40 1 1 1 1 1   887    0 16.91 41.42 ----- 17.0 18.4 41.4 22.8 17.2 -31.9 16.2 -33.9 17.0 -31.1 18.1 -29.8
2025-06-13 15:19:30,521 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 15:19:30,521 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 15:19:30,521 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.554797
2025-06-13 15:19:30,522 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 15:19:30,522 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 15:19:30,522 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 15:19:30,522 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 15:19:30,523 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 15:19:30,523 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T15:18:56', tmtdew=18.16, humidity=28.31, cloud=0.0, wind=20.8, temperature=14.09, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T13:18:54.461', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 15:19:30,523 [DEBUG][       Thread-259158][   transport.py][1871] : EOF in transport thread
2025-06-13 15:19:30,607 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 15:19:30,616 [DEBUG][       Thread-259161][   transport.py][1871] : starting thread (client mode): 0x863bd8d0
2025-06-13 15:19:30,616 [DEBUG][       Thread-259161][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 15:19:30,631 [DEBUG][       Thread-259161][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 15:19:30,631 [ INFO][       Thread-259161][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 15:19:30,638 [DEBUG][       Thread-259161][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 15:19:30,638 [DEBUG][       Thread-259161][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 15:19:30,638 [DEBUG][       Thread-259161][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 15:19:30,638 [DEBUG][       Thread-259161][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:19:30,638 [DEBUG][       Thread-259161][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:19:30,638 [DEBUG][       Thread-259161][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:19:30,638 [DEBUG][       Thread-259161][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:19:30,639 [DEBUG][       Thread-259161][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 15:19:30,639 [DEBUG][       Thread-259161][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 15:19:30,639 [DEBUG][       Thread-259161][   transport.py][1871] : client lang: <none>
2025-06-13 15:19:30,639 [DEBUG][       Thread-259161][   transport.py][1871] : server lang: <none>
2025-06-13 15:19:30,639 [DEBUG][       Thread-259161][   transport.py][1871] : kex follows: False
2025-06-13 15:19:30,639 [DEBUG][       Thread-259161][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 15:19:30,639 [DEBUG][       Thread-259161][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 15:19:30,639 [DEBUG][       Thread-259161][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 15:19:30,639 [DEBUG][       Thread-259161][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 15:19:30,639 [DEBUG][       Thread-259161][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 15:19:30,639 [DEBUG][       Thread-259161][   transport.py][1871] : Compression: none
2025-06-13 15:19:30,639 [DEBUG][       Thread-259161][   transport.py][1871] : === End of kex handshake ===
2025-06-13 15:19:30,698 [DEBUG][       Thread-259161][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 15:19:30,699 [DEBUG][       Thread-259161][   transport.py][1871] : Switch to new keys ...
2025-06-13 15:19:30,699 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 15:19:30,700 [DEBUG][       Thread-259161][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 15:19:30,700 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 15:19:30,760 [DEBUG][       Thread-259161][   transport.py][1871] : userauth is OK
2025-06-13 15:19:30,760 [DEBUG][       Thread-259161][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 15:19:30,760 [DEBUG][       Thread-259161][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 15:19:30,760 [DEBUG][       Thread-259161][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 15:19:30,760 [DEBUG][       Thread-259161][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 15:19:30,779 [ INFO][       Thread-259161][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 15:19:30,779 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 15:19:30,780 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 15:19:31,747 [DEBUG][       Thread-259161][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 15:19:31,747 [DEBUG][       Thread-259161][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 15:19:31,796 [DEBUG][       Thread-259161][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 15:19:31,796 [DEBUG][       Thread-259161][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 15:19:31,805 [DEBUG][       Thread-259161][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 15:19:31,815 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 15:19:31,815 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 15:19:31,824 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 15:19:31,833 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 15:19:31,834 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 15:19:31,834 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 15:19:31,842 [DEBUG][       Thread-259161][   transport.py][1871] : EOF in transport thread
2025-06-13 15:19:32,192 [DEBUG][Thread-259163 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:19:38,366 [DEBUG][Thread-259164 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:19:39,436 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:19:39,436 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:19:41,215 [DEBUG][Thread-259165 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:19:41,845 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 15:19:41,845 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 15:19:41,845 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 15:19:41,848 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 15:19:42,323 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 15, 19, 27), 18.12, 28.31, 0.0, 16.41, 14.04, 0, 0, 0, 2, 0, 0),)
2025-06-13 15:19:42,323 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 15:19:27
2025-06-13 15:19:42,404 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 15:19:42,409 [DEBUG][       Thread-259166][   transport.py][1871] : starting thread (client mode): 0x863ef130
2025-06-13 15:19:42,410 [DEBUG][       Thread-259166][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 15:19:42,429 [DEBUG][       Thread-259166][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 15:19:42,429 [ INFO][       Thread-259166][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 15:19:42,433 [DEBUG][       Thread-259166][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 15:19:42,433 [DEBUG][       Thread-259166][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 15:19:42,433 [DEBUG][       Thread-259166][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 15:19:42,433 [DEBUG][       Thread-259166][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:19:42,433 [DEBUG][       Thread-259166][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:19:42,433 [DEBUG][       Thread-259166][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:19:42,433 [DEBUG][       Thread-259166][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:19:42,433 [DEBUG][       Thread-259166][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 15:19:42,433 [DEBUG][       Thread-259166][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 15:19:42,433 [DEBUG][       Thread-259166][   transport.py][1871] : client lang: <none>
2025-06-13 15:19:42,433 [DEBUG][       Thread-259166][   transport.py][1871] : server lang: <none>
2025-06-13 15:19:42,433 [DEBUG][       Thread-259166][   transport.py][1871] : kex follows: False
2025-06-13 15:19:42,433 [DEBUG][       Thread-259166][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 15:19:42,433 [DEBUG][       Thread-259166][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 15:19:42,433 [DEBUG][       Thread-259166][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 15:19:42,433 [DEBUG][       Thread-259166][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 15:19:42,433 [DEBUG][       Thread-259166][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 15:19:42,433 [DEBUG][       Thread-259166][   transport.py][1871] : Compression: none
2025-06-13 15:19:42,433 [DEBUG][       Thread-259166][   transport.py][1871] : === End of kex handshake ===
2025-06-13 15:19:42,449 [DEBUG][       Thread-259166][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 15:19:42,449 [DEBUG][       Thread-259166][   transport.py][1871] : Switch to new keys ...
2025-06-13 15:19:42,450 [DEBUG][       Thread-259166][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 15:19:42,450 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 15:19:42,450 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 15:19:42,491 [DEBUG][       Thread-259166][   transport.py][1871] : userauth is OK
2025-06-13 15:19:42,515 [ INFO][       Thread-259166][   transport.py][1871] : Authentication (password) successful!
2025-06-13 15:19:42,515 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 15:19:43,128 [DEBUG][       Thread-259166][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 15:19:43,128 [DEBUG][       Thread-259166][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 15:19:43,169 [DEBUG][       Thread-259166][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 15:19:43,169 [DEBUG][       Thread-259166][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 15:19:43,173 [DEBUG][       Thread-259166][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 15:19:43,187 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 15:19:43,187 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 15:19:43,189 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 15:19:43,191 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 15:19:43,198 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 15:19:43,201 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 15:19:43,201 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 15:19:43,202 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 15:19:43,202 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.554797 -999.00  +13.50  18.36     33   -2.40 1 1 1 1 1   887    0 16.91 41.42 ----- 17.0 18.4 41.4 22.8 17.2 -31.9 16.2 -33.9 17.0 -31.1 18.1 -29.8
2025-06-13 15:19:43,202 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 15:19:43,202 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 15:19:43,202 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.554797
2025-06-13 15:19:43,203 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 15:19:43,203 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 15:19:43,203 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 15:19:43,203 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 15:19:43,203 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 15:19:43,204 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T15:19:27', tmtdew=18.12, humidity=28.31, cloud=0.0, wind=16.41, temperature=14.04, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T13:18:54.461', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 15:19:43,205 [DEBUG][       Thread-259166][   transport.py][1871] : EOF in transport thread
2025-06-13 15:19:43,281 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 15:19:43,296 [DEBUG][       Thread-259169][   transport.py][1871] : starting thread (client mode): 0x86893df0
2025-06-13 15:19:43,296 [DEBUG][       Thread-259169][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 15:19:43,312 [DEBUG][       Thread-259169][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 15:19:43,312 [ INFO][       Thread-259169][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 15:19:43,319 [DEBUG][       Thread-259169][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 15:19:43,320 [DEBUG][       Thread-259169][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 15:19:43,320 [DEBUG][       Thread-259169][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 15:19:43,320 [DEBUG][       Thread-259169][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:19:43,320 [DEBUG][       Thread-259169][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:19:43,320 [DEBUG][       Thread-259169][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:19:43,320 [DEBUG][       Thread-259169][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:19:43,320 [DEBUG][       Thread-259169][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 15:19:43,320 [DEBUG][       Thread-259169][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 15:19:43,320 [DEBUG][       Thread-259169][   transport.py][1871] : client lang: <none>
2025-06-13 15:19:43,320 [DEBUG][       Thread-259169][   transport.py][1871] : server lang: <none>
2025-06-13 15:19:43,320 [DEBUG][       Thread-259169][   transport.py][1871] : kex follows: False
2025-06-13 15:19:43,320 [DEBUG][       Thread-259169][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 15:19:43,320 [DEBUG][       Thread-259169][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 15:19:43,321 [DEBUG][       Thread-259169][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 15:19:43,321 [DEBUG][       Thread-259169][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 15:19:43,321 [DEBUG][       Thread-259169][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 15:19:43,321 [DEBUG][       Thread-259169][   transport.py][1871] : Compression: none
2025-06-13 15:19:43,321 [DEBUG][       Thread-259169][   transport.py][1871] : === End of kex handshake ===
2025-06-13 15:19:43,378 [DEBUG][       Thread-259169][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 15:19:43,379 [DEBUG][       Thread-259169][   transport.py][1871] : Switch to new keys ...
2025-06-13 15:19:43,388 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 15:19:43,389 [DEBUG][       Thread-259169][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 15:19:43,389 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 15:19:43,434 [DEBUG][       Thread-259169][   transport.py][1871] : userauth is OK
2025-06-13 15:19:43,434 [DEBUG][       Thread-259169][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 15:19:43,435 [DEBUG][       Thread-259169][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 15:19:43,435 [DEBUG][       Thread-259169][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 15:19:43,435 [DEBUG][       Thread-259169][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 15:19:43,454 [ INFO][       Thread-259169][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 15:19:43,454 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 15:19:43,455 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 15:19:44,457 [DEBUG][       Thread-259169][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 15:19:44,457 [DEBUG][       Thread-259169][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 15:19:44,510 [DEBUG][       Thread-259169][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 15:19:44,511 [DEBUG][       Thread-259169][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 15:19:44,521 [DEBUG][       Thread-259169][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 15:19:44,530 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 15:19:44,530 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 15:19:44,542 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 15:19:44,551 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 15:19:44,551 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 15:19:44,552 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 15:19:44,559 [DEBUG][       Thread-259169][   transport.py][1871] : EOF in transport thread
2025-06-13 15:19:50,238 [DEBUG][Thread-259171 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:19:54,560 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 15:19:54,560 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 15:19:54,560 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 15:19:54,560 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 15:19:55,053 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 15, 19, 27), 18.12, 28.31, 0.0, 16.41, 14.04, 0, 0, 0, 2, 0, 0),)
2025-06-13 15:19:55,053 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 15:19:27
2025-06-13 15:19:55,138 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 15:19:55,142 [DEBUG][       Thread-259172][   transport.py][1871] : starting thread (client mode): 0x863a5150
2025-06-13 15:19:55,142 [DEBUG][       Thread-259172][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 15:19:55,154 [DEBUG][       Thread-259172][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 15:19:55,154 [ INFO][       Thread-259172][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 15:19:55,157 [DEBUG][       Thread-259172][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 15:19:55,157 [DEBUG][       Thread-259172][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 15:19:55,157 [DEBUG][       Thread-259172][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 15:19:55,157 [DEBUG][       Thread-259172][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:19:55,157 [DEBUG][       Thread-259172][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:19:55,157 [DEBUG][       Thread-259172][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:19:55,157 [DEBUG][       Thread-259172][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:19:55,157 [DEBUG][       Thread-259172][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 15:19:55,157 [DEBUG][       Thread-259172][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 15:19:55,157 [DEBUG][       Thread-259172][   transport.py][1871] : client lang: <none>
2025-06-13 15:19:55,157 [DEBUG][       Thread-259172][   transport.py][1871] : server lang: <none>
2025-06-13 15:19:55,157 [DEBUG][       Thread-259172][   transport.py][1871] : kex follows: False
2025-06-13 15:19:55,157 [DEBUG][       Thread-259172][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 15:19:55,157 [DEBUG][       Thread-259172][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 15:19:55,157 [DEBUG][       Thread-259172][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 15:19:55,157 [DEBUG][       Thread-259172][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 15:19:55,157 [DEBUG][       Thread-259172][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 15:19:55,157 [DEBUG][       Thread-259172][   transport.py][1871] : Compression: none
2025-06-13 15:19:55,157 [DEBUG][       Thread-259172][   transport.py][1871] : === End of kex handshake ===
2025-06-13 15:19:55,171 [DEBUG][       Thread-259172][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 15:19:55,171 [DEBUG][       Thread-259172][   transport.py][1871] : Switch to new keys ...
2025-06-13 15:19:55,171 [DEBUG][       Thread-259172][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 15:19:55,171 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 15:19:55,171 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 15:19:55,172 [DEBUG][       Thread-259172][   transport.py][1871] : userauth is OK
2025-06-13 15:19:55,184 [ INFO][       Thread-259172][   transport.py][1871] : Authentication (password) successful!
2025-06-13 15:19:55,184 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 15:19:55,764 [DEBUG][       Thread-259172][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 15:19:55,764 [DEBUG][       Thread-259172][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 15:19:55,804 [DEBUG][       Thread-259172][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 15:19:55,805 [DEBUG][       Thread-259172][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 15:19:55,807 [DEBUG][       Thread-259172][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 15:19:55,819 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 15:19:55,819 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 15:19:55,820 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 15:19:55,822 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 15:19:55,825 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 15:19:55,826 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 15:19:55,826 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 15:19:55,826 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 15:19:55,826 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.555144 -999.00  +13.50  20.90     33   -2.30 1 1 1 1 1   887    0 16.80 39.64 ----- 22.7 20.9 48.8 21.5 17.2 -32.5 16.2 -33.5 17.0 -31.4 18.1 -30.2
2025-06-13 15:19:55,826 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 15:19:55,826 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 15:19:55,826 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.555144
2025-06-13 15:19:55,826 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 15:19:55,826 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 15:19:55,826 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 15:19:55,826 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 15:19:55,826 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 15:19:55,826 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T15:19:27', tmtdew=18.12, humidity=28.31, cloud=0.0, wind=16.41, temperature=14.04, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T13:19:24.442', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 15:19:55,827 [DEBUG][       Thread-259172][   transport.py][1871] : EOF in transport thread
2025-06-13 15:19:55,898 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 15:19:55,910 [DEBUG][       Thread-259175][   transport.py][1871] : starting thread (client mode): 0x86893df0
2025-06-13 15:19:55,910 [DEBUG][       Thread-259175][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 15:19:55,925 [DEBUG][       Thread-259175][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 15:19:55,925 [ INFO][       Thread-259175][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 15:19:55,934 [DEBUG][       Thread-259175][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 15:19:55,934 [DEBUG][       Thread-259175][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 15:19:55,934 [DEBUG][       Thread-259175][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 15:19:55,934 [DEBUG][       Thread-259175][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:19:55,934 [DEBUG][       Thread-259175][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:19:55,934 [DEBUG][       Thread-259175][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:19:55,934 [DEBUG][       Thread-259175][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:19:55,934 [DEBUG][       Thread-259175][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 15:19:55,934 [DEBUG][       Thread-259175][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 15:19:55,934 [DEBUG][       Thread-259175][   transport.py][1871] : client lang: <none>
2025-06-13 15:19:55,934 [DEBUG][       Thread-259175][   transport.py][1871] : server lang: <none>
2025-06-13 15:19:55,934 [DEBUG][       Thread-259175][   transport.py][1871] : kex follows: False
2025-06-13 15:19:55,934 [DEBUG][       Thread-259175][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 15:19:55,934 [DEBUG][       Thread-259175][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 15:19:55,934 [DEBUG][       Thread-259175][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 15:19:55,934 [DEBUG][       Thread-259175][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 15:19:55,934 [DEBUG][       Thread-259175][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 15:19:55,934 [DEBUG][       Thread-259175][   transport.py][1871] : Compression: none
2025-06-13 15:19:55,934 [DEBUG][       Thread-259175][   transport.py][1871] : === End of kex handshake ===
2025-06-13 15:19:55,988 [DEBUG][       Thread-259175][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 15:19:55,988 [DEBUG][       Thread-259175][   transport.py][1871] : Switch to new keys ...
2025-06-13 15:19:55,988 [DEBUG][       Thread-259175][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 15:19:55,988 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 15:19:55,988 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 15:19:56,046 [DEBUG][       Thread-259175][   transport.py][1871] : userauth is OK
2025-06-13 15:19:56,046 [DEBUG][       Thread-259175][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 15:19:56,046 [DEBUG][       Thread-259175][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 15:19:56,046 [DEBUG][       Thread-259175][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 15:19:56,046 [DEBUG][       Thread-259175][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 15:19:56,060 [ INFO][       Thread-259175][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 15:19:56,060 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 15:19:56,060 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 15:19:57,023 [DEBUG][       Thread-259175][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 15:19:57,023 [DEBUG][       Thread-259175][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 15:19:57,072 [DEBUG][       Thread-259175][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 15:19:57,072 [DEBUG][       Thread-259175][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 15:19:57,082 [DEBUG][       Thread-259175][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 15:19:57,091 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 15:19:57,091 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 15:19:57,100 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 15:19:57,110 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 15:19:57,110 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 15:19:57,111 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 15:19:57,119 [DEBUG][       Thread-259175][   transport.py][1871] : EOF in transport thread
2025-06-13 15:19:59,271 [DEBUG][Thread-259177 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:20:07,121 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 15:20:07,121 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 15:20:07,121 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 15:20:07,124 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 15:20:07,605 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 15, 19, 59), 18.05, 28.46, 0.0, 16.73, 14.07, 0, 0, 0, 2, 0, 0),)
2025-06-13 15:20:07,605 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 15:19:59
2025-06-13 15:20:07,685 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 15:20:07,701 [DEBUG][       Thread-259178][   transport.py][1871] : starting thread (client mode): 0x863bea70
2025-06-13 15:20:07,701 [DEBUG][       Thread-259178][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 15:20:07,721 [DEBUG][       Thread-259178][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 15:20:07,722 [ INFO][       Thread-259178][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 15:20:07,725 [DEBUG][       Thread-259178][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 15:20:07,725 [DEBUG][       Thread-259178][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 15:20:07,725 [DEBUG][       Thread-259178][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 15:20:07,725 [DEBUG][       Thread-259178][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:20:07,725 [DEBUG][       Thread-259178][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:20:07,725 [DEBUG][       Thread-259178][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:20:07,725 [DEBUG][       Thread-259178][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:20:07,726 [DEBUG][       Thread-259178][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 15:20:07,726 [DEBUG][       Thread-259178][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 15:20:07,726 [DEBUG][       Thread-259178][   transport.py][1871] : client lang: <none>
2025-06-13 15:20:07,726 [DEBUG][       Thread-259178][   transport.py][1871] : server lang: <none>
2025-06-13 15:20:07,726 [DEBUG][       Thread-259178][   transport.py][1871] : kex follows: False
2025-06-13 15:20:07,726 [DEBUG][       Thread-259178][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 15:20:07,726 [DEBUG][       Thread-259178][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 15:20:07,726 [DEBUG][       Thread-259178][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 15:20:07,726 [DEBUG][       Thread-259178][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 15:20:07,726 [DEBUG][       Thread-259178][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 15:20:07,726 [DEBUG][       Thread-259178][   transport.py][1871] : Compression: none
2025-06-13 15:20:07,726 [DEBUG][       Thread-259178][   transport.py][1871] : === End of kex handshake ===
2025-06-13 15:20:07,745 [DEBUG][       Thread-259178][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 15:20:07,745 [DEBUG][       Thread-259178][   transport.py][1871] : Switch to new keys ...
2025-06-13 15:20:07,746 [DEBUG][       Thread-259178][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 15:20:07,746 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 15:20:07,746 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 15:20:07,747 [DEBUG][       Thread-259178][   transport.py][1871] : userauth is OK
2025-06-13 15:20:07,760 [ INFO][       Thread-259178][   transport.py][1871] : Authentication (password) successful!
2025-06-13 15:20:07,760 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 15:20:08,193 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:20:08,194 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:20:08,291 [DEBUG][Thread-259180 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:20:17,313 [DEBUG][Thread-259181 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:20:17,875 [DEBUG][       Thread-259178][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 15:20:17,876 [DEBUG][       Thread-259178][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 15:20:17,921 [DEBUG][       Thread-259178][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 15:20:17,921 [DEBUG][       Thread-259178][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 15:20:17,925 [DEBUG][       Thread-259178][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 15:20:18,004 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 15:20:18,005 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 15:20:18,007 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 15:20:18,009 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 15:20:18,038 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 15:20:18,040 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 15:20:18,040 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 15:20:18,041 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 15:20:18,041 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.555144 -999.00  +13.50  20.90     33   -2.30 1 1 1 1 1   887    0 16.80 39.64 ----- 22.7 20.9 48.8 21.5 17.2 -32.5 16.2 -33.5 17.0 -31.4 18.1 -30.2
2025-06-13 15:20:18,041 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 15:20:18,041 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 15:20:18,041 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.555144
2025-06-13 15:20:18,042 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 15:20:18,042 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 15:20:18,042 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 15:20:18,042 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 15:20:18,042 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 15:20:18,042 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T15:19:59', tmtdew=18.05, humidity=28.46, cloud=0.0, wind=16.73, temperature=14.07, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T13:19:24.442', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 15:20:18,043 [DEBUG][       Thread-259178][   transport.py][1871] : EOF in transport thread
2025-06-13 15:20:18,138 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 15:20:18,150 [DEBUG][       Thread-259183][   transport.py][1871] : starting thread (client mode): 0x863a5930
2025-06-13 15:20:18,150 [DEBUG][       Thread-259183][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 15:20:18,164 [DEBUG][       Thread-259183][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 15:20:18,165 [ INFO][       Thread-259183][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 15:20:18,172 [DEBUG][       Thread-259183][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 15:20:18,172 [DEBUG][       Thread-259183][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 15:20:18,172 [DEBUG][       Thread-259183][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 15:20:18,173 [DEBUG][       Thread-259183][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:20:18,173 [DEBUG][       Thread-259183][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:20:18,173 [DEBUG][       Thread-259183][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:20:18,173 [DEBUG][       Thread-259183][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:20:18,173 [DEBUG][       Thread-259183][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 15:20:18,173 [DEBUG][       Thread-259183][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 15:20:18,173 [DEBUG][       Thread-259183][   transport.py][1871] : client lang: <none>
2025-06-13 15:20:18,173 [DEBUG][       Thread-259183][   transport.py][1871] : server lang: <none>
2025-06-13 15:20:18,173 [DEBUG][       Thread-259183][   transport.py][1871] : kex follows: False
2025-06-13 15:20:18,173 [DEBUG][       Thread-259183][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 15:20:18,173 [DEBUG][       Thread-259183][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 15:20:18,173 [DEBUG][       Thread-259183][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 15:20:18,173 [DEBUG][       Thread-259183][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 15:20:18,173 [DEBUG][       Thread-259183][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 15:20:18,173 [DEBUG][       Thread-259183][   transport.py][1871] : Compression: none
2025-06-13 15:20:18,173 [DEBUG][       Thread-259183][   transport.py][1871] : === End of kex handshake ===
2025-06-13 15:20:18,232 [DEBUG][       Thread-259183][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 15:20:18,232 [DEBUG][       Thread-259183][   transport.py][1871] : Switch to new keys ...
2025-06-13 15:20:18,233 [DEBUG][       Thread-259183][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 15:20:18,233 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 15:20:18,234 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 15:20:18,290 [DEBUG][       Thread-259183][   transport.py][1871] : userauth is OK
2025-06-13 15:20:18,290 [DEBUG][       Thread-259183][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 15:20:18,290 [DEBUG][       Thread-259183][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 15:20:18,290 [DEBUG][       Thread-259183][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 15:20:18,290 [DEBUG][       Thread-259183][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 15:20:18,309 [ INFO][       Thread-259183][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 15:20:18,310 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 15:20:18,310 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 15:20:19,333 [DEBUG][       Thread-259183][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 15:20:19,333 [DEBUG][       Thread-259183][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 15:20:19,384 [DEBUG][       Thread-259183][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 15:20:19,384 [DEBUG][       Thread-259183][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 15:20:19,394 [DEBUG][       Thread-259183][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 15:20:19,402 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 15:20:19,402 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 15:20:19,411 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 15:20:19,420 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 15:20:19,421 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 15:20:19,421 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 15:20:19,434 [DEBUG][       Thread-259183][   transport.py][1871] : EOF in transport thread
2025-06-13 15:20:20,742 [DEBUG][Thread-259185 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:20:26,335 [DEBUG][Thread-259186 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:20:29,432 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 15:20:29,432 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 15:20:29,432 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 15:20:29,435 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 15:20:29,898 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 15, 19, 59), 18.05, 28.46, 0.0, 16.73, 14.07, 0, 0, 0, 2, 0, 0),)
2025-06-13 15:20:29,898 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 15:19:59
2025-06-13 15:20:29,979 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 15:20:29,983 [DEBUG][       Thread-259187][   transport.py][1871] : starting thread (client mode): 0x86391c00
2025-06-13 15:20:29,983 [DEBUG][       Thread-259187][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 15:20:30,005 [DEBUG][       Thread-259187][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 15:20:30,005 [ INFO][       Thread-259187][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 15:20:30,008 [DEBUG][       Thread-259187][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 15:20:30,008 [DEBUG][       Thread-259187][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 15:20:30,008 [DEBUG][       Thread-259187][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 15:20:30,008 [DEBUG][       Thread-259187][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:20:30,008 [DEBUG][       Thread-259187][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:20:30,008 [DEBUG][       Thread-259187][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:20:30,008 [DEBUG][       Thread-259187][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:20:30,008 [DEBUG][       Thread-259187][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 15:20:30,008 [DEBUG][       Thread-259187][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 15:20:30,008 [DEBUG][       Thread-259187][   transport.py][1871] : client lang: <none>
2025-06-13 15:20:30,008 [DEBUG][       Thread-259187][   transport.py][1871] : server lang: <none>
2025-06-13 15:20:30,008 [DEBUG][       Thread-259187][   transport.py][1871] : kex follows: False
2025-06-13 15:20:30,008 [DEBUG][       Thread-259187][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 15:20:30,008 [DEBUG][       Thread-259187][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 15:20:30,008 [DEBUG][       Thread-259187][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 15:20:30,008 [DEBUG][       Thread-259187][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 15:20:30,009 [DEBUG][       Thread-259187][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 15:20:30,009 [DEBUG][       Thread-259187][   transport.py][1871] : Compression: none
2025-06-13 15:20:30,009 [DEBUG][       Thread-259187][   transport.py][1871] : === End of kex handshake ===
2025-06-13 15:20:30,017 [DEBUG][       Thread-259187][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 15:20:30,018 [DEBUG][       Thread-259187][   transport.py][1871] : Switch to new keys ...
2025-06-13 15:20:30,018 [DEBUG][       Thread-259187][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 15:20:30,018 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 15:20:30,018 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 15:20:30,020 [DEBUG][       Thread-259187][   transport.py][1871] : userauth is OK
2025-06-13 15:20:30,067 [ INFO][       Thread-259187][   transport.py][1871] : Authentication (password) successful!
2025-06-13 15:20:30,068 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 15:20:30,673 [DEBUG][       Thread-259187][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 15:20:30,673 [DEBUG][       Thread-259187][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 15:20:30,716 [DEBUG][       Thread-259187][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 15:20:30,717 [DEBUG][       Thread-259187][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 15:20:30,719 [DEBUG][       Thread-259187][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 15:20:30,729 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 15:20:30,729 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 15:20:30,730 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 15:20:30,731 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 15:20:30,734 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 15:20:30,735 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 15:20:30,735 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 15:20:30,735 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 15:20:30,735 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.555491 -999.00  +13.60  19.60     33   -2.00 1 1 1 1 1   887    0 16.77 34.86 ----- 20.3 19.6 56.0 23.1 17.3 -32.2 16.2 -33.7 16.9 -31.4 18.1 -30.2
2025-06-13 15:20:30,735 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 15:20:30,735 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 15:20:30,735 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.555491
2025-06-13 15:20:30,735 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 15:20:30,735 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 15:20:30,735 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 15:20:30,735 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 15:20:30,735 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 15:20:30,736 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T15:19:59', tmtdew=18.05, humidity=28.46, cloud=0.0, wind=16.73, temperature=14.07, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T13:19:54.422', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 15:20:30,736 [DEBUG][       Thread-259187][   transport.py][1871] : EOF in transport thread
2025-06-13 15:20:30,808 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 15:20:30,820 [DEBUG][       Thread-259190][   transport.py][1871] : starting thread (client mode): 0x863bc880
2025-06-13 15:20:30,820 [DEBUG][       Thread-259190][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 15:20:30,835 [DEBUG][       Thread-259190][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 15:20:30,835 [ INFO][       Thread-259190][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 15:20:30,842 [DEBUG][       Thread-259190][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 15:20:30,842 [DEBUG][       Thread-259190][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 15:20:30,842 [DEBUG][       Thread-259190][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 15:20:30,842 [DEBUG][       Thread-259190][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:20:30,842 [DEBUG][       Thread-259190][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:20:30,842 [DEBUG][       Thread-259190][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:20:30,842 [DEBUG][       Thread-259190][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:20:30,842 [DEBUG][       Thread-259190][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 15:20:30,842 [DEBUG][       Thread-259190][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 15:20:30,842 [DEBUG][       Thread-259190][   transport.py][1871] : client lang: <none>
2025-06-13 15:20:30,842 [DEBUG][       Thread-259190][   transport.py][1871] : server lang: <none>
2025-06-13 15:20:30,842 [DEBUG][       Thread-259190][   transport.py][1871] : kex follows: False
2025-06-13 15:20:30,842 [DEBUG][       Thread-259190][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 15:20:30,842 [DEBUG][       Thread-259190][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 15:20:30,842 [DEBUG][       Thread-259190][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 15:20:30,842 [DEBUG][       Thread-259190][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 15:20:30,842 [DEBUG][       Thread-259190][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 15:20:30,842 [DEBUG][       Thread-259190][   transport.py][1871] : Compression: none
2025-06-13 15:20:30,842 [DEBUG][       Thread-259190][   transport.py][1871] : === End of kex handshake ===
2025-06-13 15:20:30,900 [DEBUG][       Thread-259190][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 15:20:30,900 [DEBUG][       Thread-259190][   transport.py][1871] : Switch to new keys ...
2025-06-13 15:20:30,900 [DEBUG][       Thread-259190][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 15:20:30,901 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 15:20:30,901 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 15:20:30,961 [DEBUG][       Thread-259190][   transport.py][1871] : userauth is OK
2025-06-13 15:20:30,961 [DEBUG][       Thread-259190][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 15:20:30,961 [DEBUG][       Thread-259190][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 15:20:30,962 [DEBUG][       Thread-259190][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 15:20:30,962 [DEBUG][       Thread-259190][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 15:20:30,980 [ INFO][       Thread-259190][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 15:20:30,980 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 15:20:30,980 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 15:20:32,064 [DEBUG][       Thread-259190][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 15:20:32,064 [DEBUG][       Thread-259190][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 15:20:32,116 [DEBUG][       Thread-259190][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 15:20:32,116 [DEBUG][       Thread-259190][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 15:20:32,125 [DEBUG][       Thread-259190][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 15:20:32,134 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 15:20:32,134 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 15:20:32,145 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 15:20:32,153 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 15:20:32,153 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 15:20:32,153 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 15:20:32,161 [DEBUG][       Thread-259190][   transport.py][1871] : EOF in transport thread
2025-06-13 15:20:35,366 [DEBUG][Thread-259192 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:20:39,503 [DEBUG][Thread-259193 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:20:40,581 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:20:40,582 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:20:42,163 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 15:20:42,164 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 15:20:42,173 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 15:20:42,176 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 15:20:42,643 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 15, 20, 31), 18.13, 28.35, 0.0, 21.62, 13.96, 0, 0, 0, 2, 0, 0),)
2025-06-13 15:20:42,643 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 15:20:31
2025-06-13 15:20:42,723 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 15:20:42,727 [DEBUG][       Thread-259194][   transport.py][1871] : starting thread (client mode): 0x86392cb0
2025-06-13 15:20:42,727 [DEBUG][       Thread-259194][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 15:20:42,746 [DEBUG][       Thread-259194][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 15:20:42,746 [ INFO][       Thread-259194][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 15:20:42,750 [DEBUG][       Thread-259194][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 15:20:42,750 [DEBUG][       Thread-259194][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 15:20:42,750 [DEBUG][       Thread-259194][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 15:20:42,750 [DEBUG][       Thread-259194][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:20:42,750 [DEBUG][       Thread-259194][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:20:42,750 [DEBUG][       Thread-259194][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:20:42,750 [DEBUG][       Thread-259194][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:20:42,750 [DEBUG][       Thread-259194][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 15:20:42,750 [DEBUG][       Thread-259194][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 15:20:42,750 [DEBUG][       Thread-259194][   transport.py][1871] : client lang: <none>
2025-06-13 15:20:42,750 [DEBUG][       Thread-259194][   transport.py][1871] : server lang: <none>
2025-06-13 15:20:42,750 [DEBUG][       Thread-259194][   transport.py][1871] : kex follows: False
2025-06-13 15:20:42,750 [DEBUG][       Thread-259194][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 15:20:42,750 [DEBUG][       Thread-259194][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 15:20:42,750 [DEBUG][       Thread-259194][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 15:20:42,750 [DEBUG][       Thread-259194][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 15:20:42,750 [DEBUG][       Thread-259194][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 15:20:42,750 [DEBUG][       Thread-259194][   transport.py][1871] : Compression: none
2025-06-13 15:20:42,750 [DEBUG][       Thread-259194][   transport.py][1871] : === End of kex handshake ===
2025-06-13 15:20:42,766 [DEBUG][       Thread-259194][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 15:20:42,766 [DEBUG][       Thread-259194][   transport.py][1871] : Switch to new keys ...
2025-06-13 15:20:42,767 [DEBUG][       Thread-259194][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 15:20:42,767 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 15:20:42,767 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 15:20:42,768 [DEBUG][       Thread-259194][   transport.py][1871] : userauth is OK
2025-06-13 15:20:42,781 [ INFO][       Thread-259194][   transport.py][1871] : Authentication (password) successful!
2025-06-13 15:20:42,781 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 15:20:43,438 [DEBUG][       Thread-259194][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 15:20:43,438 [DEBUG][       Thread-259194][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 15:20:43,481 [DEBUG][       Thread-259194][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 15:20:43,481 [DEBUG][       Thread-259194][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 15:20:43,484 [DEBUG][       Thread-259194][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 15:20:43,496 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 15:20:43,496 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 15:20:43,498 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 15:20:43,499 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 15:20:43,505 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 15:20:43,507 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 15:20:43,507 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 15:20:43,508 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 15:20:43,508 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.555491 -999.00  +13.60  19.60     33   -2.00 1 1 1 1 1   887    0 16.77 34.86 ----- 20.3 19.6 56.0 23.1 17.3 -32.2 16.2 -33.7 16.9 -31.4 18.1 -30.2
2025-06-13 15:20:43,508 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 15:20:43,508 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 15:20:43,508 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.555491
2025-06-13 15:20:43,509 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 15:20:43,509 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 15:20:43,509 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 15:20:43,509 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 15:20:43,510 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 15:20:43,510 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T15:20:31', tmtdew=18.13, humidity=28.35, cloud=0.0, wind=21.62, temperature=13.96, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T13:19:54.422', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 15:20:43,511 [DEBUG][       Thread-259194][   transport.py][1871] : EOF in transport thread
2025-06-13 15:20:43,593 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 15:20:43,605 [DEBUG][       Thread-259197][   transport.py][1871] : starting thread (client mode): 0x863a7460
2025-06-13 15:20:43,605 [DEBUG][       Thread-259197][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 15:20:43,620 [DEBUG][       Thread-259197][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 15:20:43,620 [ INFO][       Thread-259197][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 15:20:43,627 [DEBUG][       Thread-259197][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 15:20:43,627 [DEBUG][       Thread-259197][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 15:20:43,628 [DEBUG][       Thread-259197][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 15:20:43,628 [DEBUG][       Thread-259197][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:20:43,628 [DEBUG][       Thread-259197][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:20:43,628 [DEBUG][       Thread-259197][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:20:43,628 [DEBUG][       Thread-259197][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:20:43,628 [DEBUG][       Thread-259197][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 15:20:43,628 [DEBUG][       Thread-259197][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 15:20:43,628 [DEBUG][       Thread-259197][   transport.py][1871] : client lang: <none>
2025-06-13 15:20:43,628 [DEBUG][       Thread-259197][   transport.py][1871] : server lang: <none>
2025-06-13 15:20:43,628 [DEBUG][       Thread-259197][   transport.py][1871] : kex follows: False
2025-06-13 15:20:43,628 [DEBUG][       Thread-259197][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 15:20:43,628 [DEBUG][       Thread-259197][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 15:20:43,628 [DEBUG][       Thread-259197][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 15:20:43,628 [DEBUG][       Thread-259197][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 15:20:43,628 [DEBUG][       Thread-259197][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 15:20:43,628 [DEBUG][       Thread-259197][   transport.py][1871] : Compression: none
2025-06-13 15:20:43,628 [DEBUG][       Thread-259197][   transport.py][1871] : === End of kex handshake ===
2025-06-13 15:20:43,686 [DEBUG][       Thread-259197][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 15:20:43,686 [DEBUG][       Thread-259197][   transport.py][1871] : Switch to new keys ...
2025-06-13 15:20:43,687 [DEBUG][       Thread-259197][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 15:20:43,687 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 15:20:43,688 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 15:20:43,742 [DEBUG][       Thread-259197][   transport.py][1871] : userauth is OK
2025-06-13 15:20:43,742 [DEBUG][       Thread-259197][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 15:20:43,742 [DEBUG][       Thread-259197][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 15:20:43,743 [DEBUG][       Thread-259197][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 15:20:43,743 [DEBUG][       Thread-259197][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 15:20:43,763 [ INFO][       Thread-259197][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 15:20:43,763 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 15:20:43,763 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 15:20:44,387 [DEBUG][Thread-259199 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:20:44,732 [DEBUG][       Thread-259197][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 15:20:44,732 [DEBUG][       Thread-259197][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 15:20:44,782 [DEBUG][       Thread-259197][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 15:20:44,782 [DEBUG][       Thread-259197][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 15:20:44,790 [DEBUG][       Thread-259197][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 15:20:44,798 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 15:20:44,798 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 15:20:44,806 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 15:20:44,814 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 15:20:44,815 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 15:20:44,815 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 15:20:44,822 [DEBUG][       Thread-259197][   transport.py][1871] : EOF in transport thread
2025-06-13 15:20:53,422 [DEBUG][Thread-259200 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:20:54,825 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 15:20:54,825 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 15:20:54,825 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 15:20:54,828 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 15:20:55,294 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 15, 20, 31), 18.13, 28.35, 0.0, 21.62, 13.96, 0, 0, 0, 2, 0, 0),)
2025-06-13 15:20:55,294 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 15:20:31
2025-06-13 15:20:55,375 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 15:20:55,379 [DEBUG][       Thread-259201][   transport.py][1871] : starting thread (client mode): 0x863a65f0
2025-06-13 15:20:55,379 [DEBUG][       Thread-259201][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 15:20:55,398 [DEBUG][       Thread-259201][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 15:20:55,399 [ INFO][       Thread-259201][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 15:20:55,402 [DEBUG][       Thread-259201][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 15:20:55,402 [DEBUG][       Thread-259201][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 15:20:55,402 [DEBUG][       Thread-259201][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 15:20:55,402 [DEBUG][       Thread-259201][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:20:55,402 [DEBUG][       Thread-259201][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:20:55,402 [DEBUG][       Thread-259201][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:20:55,402 [DEBUG][       Thread-259201][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:20:55,402 [DEBUG][       Thread-259201][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 15:20:55,402 [DEBUG][       Thread-259201][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 15:20:55,402 [DEBUG][       Thread-259201][   transport.py][1871] : client lang: <none>
2025-06-13 15:20:55,402 [DEBUG][       Thread-259201][   transport.py][1871] : server lang: <none>
2025-06-13 15:20:55,402 [DEBUG][       Thread-259201][   transport.py][1871] : kex follows: False
2025-06-13 15:20:55,402 [DEBUG][       Thread-259201][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 15:20:55,402 [DEBUG][       Thread-259201][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 15:20:55,402 [DEBUG][       Thread-259201][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 15:20:55,402 [DEBUG][       Thread-259201][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 15:20:55,403 [DEBUG][       Thread-259201][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 15:20:55,403 [DEBUG][       Thread-259201][   transport.py][1871] : Compression: none
2025-06-13 15:20:55,403 [DEBUG][       Thread-259201][   transport.py][1871] : === End of kex handshake ===
2025-06-13 15:20:55,420 [DEBUG][       Thread-259201][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 15:20:55,420 [DEBUG][       Thread-259201][   transport.py][1871] : Switch to new keys ...
2025-06-13 15:20:55,421 [DEBUG][       Thread-259201][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 15:20:55,421 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 15:20:55,421 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 15:20:55,422 [DEBUG][       Thread-259201][   transport.py][1871] : userauth is OK
2025-06-13 15:20:55,435 [ INFO][       Thread-259201][   transport.py][1871] : Authentication (password) successful!
2025-06-13 15:20:55,435 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 15:20:56,039 [DEBUG][       Thread-259201][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 15:20:56,039 [DEBUG][       Thread-259201][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 15:20:56,081 [DEBUG][       Thread-259201][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 15:20:56,081 [DEBUG][       Thread-259201][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 15:20:56,084 [DEBUG][       Thread-259201][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 15:20:56,097 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 15:20:56,097 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 15:20:56,099 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 15:20:56,100 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 15:20:56,105 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 15:20:56,106 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 15:20:56,107 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 15:20:56,107 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 15:20:56,107 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.555491 -999.00  +13.60  19.60     33   -2.00 1 1 1 1 1   887    0 16.77 34.86 ----- 20.3 19.6 56.0 23.1 17.3 -32.2 16.2 -33.7 16.9 -31.4 18.1 -30.2
2025-06-13 15:20:56,107 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 15:20:56,107 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 15:20:56,107 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.555491
2025-06-13 15:20:56,108 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 15:20:56,108 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 15:20:56,108 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 15:20:56,108 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 15:20:56,109 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 15:20:56,109 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T15:20:31', tmtdew=18.13, humidity=28.35, cloud=0.0, wind=21.62, temperature=13.96, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T13:19:54.422', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 15:20:56,109 [DEBUG][       Thread-259201][   transport.py][1871] : EOF in transport thread
2025-06-13 15:20:56,192 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 15:20:56,201 [DEBUG][       Thread-259204][   transport.py][1871] : starting thread (client mode): 0x867b5b10
2025-06-13 15:20:56,202 [DEBUG][       Thread-259204][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 15:20:56,216 [DEBUG][       Thread-259204][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 15:20:56,216 [ INFO][       Thread-259204][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 15:20:56,223 [DEBUG][       Thread-259204][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 15:20:56,223 [DEBUG][       Thread-259204][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 15:20:56,223 [DEBUG][       Thread-259204][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 15:20:56,223 [DEBUG][       Thread-259204][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:20:56,223 [DEBUG][       Thread-259204][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:20:56,223 [DEBUG][       Thread-259204][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:20:56,223 [DEBUG][       Thread-259204][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:20:56,223 [DEBUG][       Thread-259204][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 15:20:56,223 [DEBUG][       Thread-259204][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 15:20:56,223 [DEBUG][       Thread-259204][   transport.py][1871] : client lang: <none>
2025-06-13 15:20:56,223 [DEBUG][       Thread-259204][   transport.py][1871] : server lang: <none>
2025-06-13 15:20:56,223 [DEBUG][       Thread-259204][   transport.py][1871] : kex follows: False
2025-06-13 15:20:56,223 [DEBUG][       Thread-259204][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 15:20:56,223 [DEBUG][       Thread-259204][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 15:20:56,223 [DEBUG][       Thread-259204][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 15:20:56,224 [DEBUG][       Thread-259204][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 15:20:56,224 [DEBUG][       Thread-259204][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 15:20:56,224 [DEBUG][       Thread-259204][   transport.py][1871] : Compression: none
2025-06-13 15:20:56,224 [DEBUG][       Thread-259204][   transport.py][1871] : === End of kex handshake ===
2025-06-13 15:20:56,281 [DEBUG][       Thread-259204][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 15:20:56,282 [DEBUG][       Thread-259204][   transport.py][1871] : Switch to new keys ...
2025-06-13 15:20:56,282 [DEBUG][       Thread-259204][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 15:20:56,282 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 15:20:56,284 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 15:20:56,337 [DEBUG][       Thread-259204][   transport.py][1871] : userauth is OK
2025-06-13 15:20:56,338 [DEBUG][       Thread-259204][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 15:20:56,338 [DEBUG][       Thread-259204][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 15:20:56,338 [DEBUG][       Thread-259204][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 15:20:56,338 [DEBUG][       Thread-259204][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 15:20:56,357 [ INFO][       Thread-259204][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 15:20:56,358 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 15:20:56,358 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 15:20:57,322 [DEBUG][       Thread-259204][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 15:20:57,322 [DEBUG][       Thread-259204][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 15:20:57,372 [DEBUG][       Thread-259204][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 15:20:57,372 [DEBUG][       Thread-259204][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 15:20:57,381 [DEBUG][       Thread-259204][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 15:20:57,389 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 15:20:57,389 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 15:20:57,398 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 15:20:57,407 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 15:20:57,408 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 15:20:57,408 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 15:20:57,417 [DEBUG][       Thread-259204][   transport.py][1871] : EOF in transport thread
2025-06-13 15:21:02,443 [DEBUG][Thread-259206 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:21:07,419 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 15:21:07,419 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 15:21:07,419 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 15:21:07,422 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 15:21:07,875 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 15, 21, 3), 18.14, 28.33, 0.0, 22.55, 13.91, 0, 0, 0, 2, 0, 0),)
2025-06-13 15:21:07,875 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 15:21:03
2025-06-13 15:21:07,956 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 15:21:07,959 [DEBUG][       Thread-259207][   transport.py][1871] : starting thread (client mode): 0x863eceb0
2025-06-13 15:21:07,960 [DEBUG][       Thread-259207][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 15:21:07,980 [DEBUG][       Thread-259207][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 15:21:07,980 [ INFO][       Thread-259207][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 15:21:07,983 [DEBUG][       Thread-259207][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 15:21:07,983 [DEBUG][       Thread-259207][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 15:21:07,983 [DEBUG][       Thread-259207][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 15:21:07,983 [DEBUG][       Thread-259207][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:21:07,983 [DEBUG][       Thread-259207][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:21:07,983 [DEBUG][       Thread-259207][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:21:07,983 [DEBUG][       Thread-259207][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:21:07,983 [DEBUG][       Thread-259207][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 15:21:07,983 [DEBUG][       Thread-259207][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 15:21:07,983 [DEBUG][       Thread-259207][   transport.py][1871] : client lang: <none>
2025-06-13 15:21:07,983 [DEBUG][       Thread-259207][   transport.py][1871] : server lang: <none>
2025-06-13 15:21:07,983 [DEBUG][       Thread-259207][   transport.py][1871] : kex follows: False
2025-06-13 15:21:07,983 [DEBUG][       Thread-259207][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 15:21:07,983 [DEBUG][       Thread-259207][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 15:21:07,983 [DEBUG][       Thread-259207][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 15:21:07,983 [DEBUG][       Thread-259207][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 15:21:07,983 [DEBUG][       Thread-259207][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 15:21:07,983 [DEBUG][       Thread-259207][   transport.py][1871] : Compression: none
2025-06-13 15:21:07,984 [DEBUG][       Thread-259207][   transport.py][1871] : === End of kex handshake ===
2025-06-13 15:21:07,999 [DEBUG][       Thread-259207][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 15:21:08,000 [DEBUG][       Thread-259207][   transport.py][1871] : Switch to new keys ...
2025-06-13 15:21:08,000 [DEBUG][       Thread-259207][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 15:21:08,001 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 15:21:08,001 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 15:21:08,002 [DEBUG][       Thread-259207][   transport.py][1871] : userauth is OK
2025-06-13 15:21:08,015 [ INFO][       Thread-259207][   transport.py][1871] : Authentication (password) successful!
2025-06-13 15:21:08,015 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 15:21:08,329 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:21:08,331 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:21:08,640 [DEBUG][       Thread-259207][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 15:21:08,640 [DEBUG][       Thread-259207][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 15:21:08,681 [DEBUG][       Thread-259207][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 15:21:08,681 [DEBUG][       Thread-259207][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 15:21:08,685 [DEBUG][       Thread-259207][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 15:21:08,697 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 15:21:08,697 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 15:21:08,699 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 15:21:08,701 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 15:21:08,707 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 15:21:08,709 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 15:21:08,710 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 15:21:08,710 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 15:21:08,711 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.555838 -999.00  +13.60  23.02     33   -2.10 1 1 1 1 1   887    0 16.64 35.96 ----- 21.0 23.0 46.6 29.7 17.2 -31.8 16.2 -34.1 16.8 -32.8 18.0 -30.2
2025-06-13 15:21:08,711 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 15:21:08,711 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 15:21:08,711 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.555838
2025-06-13 15:21:08,711 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 15:21:08,712 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 15:21:08,712 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 15:21:08,712 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 15:21:08,712 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 15:21:08,712 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T15:21:03', tmtdew=18.14, humidity=28.33, cloud=0.0, wind=22.55, temperature=13.91, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T13:20:24.403', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 15:21:08,713 [DEBUG][       Thread-259207][   transport.py][1871] : EOF in transport thread
2025-06-13 15:21:08,805 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 15:21:08,816 [DEBUG][       Thread-259210][   transport.py][1871] : starting thread (client mode): 0x863a7f40
2025-06-13 15:21:08,816 [DEBUG][       Thread-259210][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 15:21:08,834 [DEBUG][       Thread-259210][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 15:21:08,834 [ INFO][       Thread-259210][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 15:21:08,843 [DEBUG][       Thread-259210][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 15:21:08,843 [DEBUG][       Thread-259210][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 15:21:08,843 [DEBUG][       Thread-259210][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 15:21:08,843 [DEBUG][       Thread-259210][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:21:08,843 [DEBUG][       Thread-259210][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:21:08,844 [DEBUG][       Thread-259210][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:21:08,844 [DEBUG][       Thread-259210][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:21:08,844 [DEBUG][       Thread-259210][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 15:21:08,844 [DEBUG][       Thread-259210][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 15:21:08,844 [DEBUG][       Thread-259210][   transport.py][1871] : client lang: <none>
2025-06-13 15:21:08,844 [DEBUG][       Thread-259210][   transport.py][1871] : server lang: <none>
2025-06-13 15:21:08,844 [DEBUG][       Thread-259210][   transport.py][1871] : kex follows: False
2025-06-13 15:21:08,844 [DEBUG][       Thread-259210][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 15:21:08,844 [DEBUG][       Thread-259210][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 15:21:08,844 [DEBUG][       Thread-259210][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 15:21:08,844 [DEBUG][       Thread-259210][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 15:21:08,844 [DEBUG][       Thread-259210][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 15:21:08,844 [DEBUG][       Thread-259210][   transport.py][1871] : Compression: none
2025-06-13 15:21:08,844 [DEBUG][       Thread-259210][   transport.py][1871] : === End of kex handshake ===
2025-06-13 15:21:08,902 [DEBUG][       Thread-259210][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 15:21:08,902 [DEBUG][       Thread-259210][   transport.py][1871] : Switch to new keys ...
2025-06-13 15:21:08,903 [DEBUG][       Thread-259210][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 15:21:08,903 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 15:21:08,904 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 15:21:08,958 [DEBUG][       Thread-259210][   transport.py][1871] : userauth is OK
2025-06-13 15:21:08,958 [DEBUG][       Thread-259210][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 15:21:08,959 [DEBUG][       Thread-259210][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 15:21:08,959 [DEBUG][       Thread-259210][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 15:21:08,959 [DEBUG][       Thread-259210][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 15:21:08,977 [ INFO][       Thread-259210][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 15:21:08,978 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 15:21:08,978 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 15:21:09,951 [DEBUG][       Thread-259210][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 15:21:09,952 [DEBUG][       Thread-259210][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 15:21:10,000 [DEBUG][       Thread-259210][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 15:21:10,000 [DEBUG][       Thread-259210][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 15:21:10,009 [DEBUG][       Thread-259210][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 15:21:10,019 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 15:21:10,019 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 15:21:10,030 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 15:21:10,039 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 15:21:10,040 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 15:21:10,040 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 15:21:10,048 [DEBUG][       Thread-259210][   transport.py][1871] : EOF in transport thread
2025-06-13 15:21:11,465 [DEBUG][Thread-259212 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:21:20,050 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 15:21:20,051 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 15:21:20,051 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 15:21:20,053 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 15:21:20,488 [DEBUG][Thread-259213 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:21:20,502 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 15, 21, 3), 18.14, 28.33, 0.0, 22.55, 13.91, 0, 0, 0, 2, 0, 0),)
2025-06-13 15:21:20,502 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 15:21:03
2025-06-13 15:21:20,582 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 15:21:20,589 [DEBUG][       Thread-259214][   transport.py][1871] : starting thread (client mode): 0x863a62c0
2025-06-13 15:21:20,589 [DEBUG][       Thread-259214][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 15:21:20,609 [DEBUG][       Thread-259214][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 15:21:20,609 [ INFO][       Thread-259214][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 15:21:20,613 [DEBUG][       Thread-259214][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 15:21:20,613 [DEBUG][       Thread-259214][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 15:21:20,613 [DEBUG][       Thread-259214][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 15:21:20,613 [DEBUG][       Thread-259214][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:21:20,613 [DEBUG][       Thread-259214][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:21:20,613 [DEBUG][       Thread-259214][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:21:20,613 [DEBUG][       Thread-259214][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:21:20,613 [DEBUG][       Thread-259214][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 15:21:20,613 [DEBUG][       Thread-259214][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 15:21:20,613 [DEBUG][       Thread-259214][   transport.py][1871] : client lang: <none>
2025-06-13 15:21:20,613 [DEBUG][       Thread-259214][   transport.py][1871] : server lang: <none>
2025-06-13 15:21:20,613 [DEBUG][       Thread-259214][   transport.py][1871] : kex follows: False
2025-06-13 15:21:20,613 [DEBUG][       Thread-259214][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 15:21:20,613 [DEBUG][       Thread-259214][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 15:21:20,613 [DEBUG][       Thread-259214][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 15:21:20,613 [DEBUG][       Thread-259214][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 15:21:20,613 [DEBUG][       Thread-259214][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 15:21:20,613 [DEBUG][       Thread-259214][   transport.py][1871] : Compression: none
2025-06-13 15:21:20,613 [DEBUG][       Thread-259214][   transport.py][1871] : === End of kex handshake ===
2025-06-13 15:21:20,620 [DEBUG][       Thread-259214][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 15:21:20,621 [DEBUG][       Thread-259214][   transport.py][1871] : Switch to new keys ...
2025-06-13 15:21:20,621 [DEBUG][       Thread-259214][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 15:21:20,621 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 15:21:20,621 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 15:21:20,621 [DEBUG][       Thread-259214][   transport.py][1871] : userauth is OK
2025-06-13 15:21:20,633 [ INFO][       Thread-259214][   transport.py][1871] : Authentication (password) successful!
2025-06-13 15:21:20,634 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 15:21:20,794 [DEBUG][Thread-259216 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:21:21,277 [DEBUG][       Thread-259214][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 15:21:21,277 [DEBUG][       Thread-259214][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 15:21:21,322 [DEBUG][       Thread-259214][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 15:21:21,322 [DEBUG][       Thread-259214][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 15:21:21,325 [DEBUG][       Thread-259214][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 15:21:21,337 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 15:21:21,338 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 15:21:21,340 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 15:21:21,342 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 15:21:21,349 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 15:21:21,351 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 15:21:21,351 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 15:21:21,352 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 15:21:21,352 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.555838 -999.00  +13.60  23.02     33   -2.10 1 1 1 1 1   887    0 16.64 35.96 ----- 21.0 23.0 46.6 29.7 17.2 -31.8 16.2 -34.1 16.8 -32.8 18.0 -30.2
2025-06-13 15:21:21,352 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 15:21:21,352 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 15:21:21,352 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.555838
2025-06-13 15:21:21,352 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 15:21:21,353 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 15:21:21,353 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 15:21:21,353 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 15:21:21,353 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 15:21:21,353 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T15:21:03', tmtdew=18.14, humidity=28.33, cloud=0.0, wind=22.55, temperature=13.91, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T13:20:24.403', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 15:21:21,355 [DEBUG][       Thread-259214][   transport.py][1871] : EOF in transport thread
2025-06-13 15:21:21,435 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 15:21:21,447 [DEBUG][       Thread-259218][   transport.py][1871] : starting thread (client mode): 0x867b65f0
2025-06-13 15:21:21,447 [DEBUG][       Thread-259218][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 15:21:21,463 [DEBUG][       Thread-259218][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 15:21:21,463 [ INFO][       Thread-259218][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 15:21:21,471 [DEBUG][       Thread-259218][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 15:21:21,471 [DEBUG][       Thread-259218][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 15:21:21,471 [DEBUG][       Thread-259218][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 15:21:21,471 [DEBUG][       Thread-259218][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:21:21,471 [DEBUG][       Thread-259218][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:21:21,471 [DEBUG][       Thread-259218][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:21:21,471 [DEBUG][       Thread-259218][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:21:21,471 [DEBUG][       Thread-259218][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 15:21:21,471 [DEBUG][       Thread-259218][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 15:21:21,471 [DEBUG][       Thread-259218][   transport.py][1871] : client lang: <none>
2025-06-13 15:21:21,471 [DEBUG][       Thread-259218][   transport.py][1871] : server lang: <none>
2025-06-13 15:21:21,471 [DEBUG][       Thread-259218][   transport.py][1871] : kex follows: False
2025-06-13 15:21:21,471 [DEBUG][       Thread-259218][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 15:21:21,471 [DEBUG][       Thread-259218][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 15:21:21,471 [DEBUG][       Thread-259218][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 15:21:21,471 [DEBUG][       Thread-259218][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 15:21:21,471 [DEBUG][       Thread-259218][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 15:21:21,472 [DEBUG][       Thread-259218][   transport.py][1871] : Compression: none
2025-06-13 15:21:21,472 [DEBUG][       Thread-259218][   transport.py][1871] : === End of kex handshake ===
2025-06-13 15:21:21,530 [DEBUG][       Thread-259218][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 15:21:21,530 [DEBUG][       Thread-259218][   transport.py][1871] : Switch to new keys ...
2025-06-13 15:21:21,531 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 15:21:21,531 [DEBUG][       Thread-259218][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 15:21:21,532 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 15:21:21,589 [DEBUG][       Thread-259218][   transport.py][1871] : userauth is OK
2025-06-13 15:21:21,589 [DEBUG][       Thread-259218][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 15:21:21,589 [DEBUG][       Thread-259218][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 15:21:21,589 [DEBUG][       Thread-259218][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 15:21:21,589 [DEBUG][       Thread-259218][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 15:21:21,611 [ INFO][       Thread-259218][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 15:21:21,612 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 15:21:21,612 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 15:21:22,617 [DEBUG][       Thread-259218][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 15:21:22,618 [DEBUG][       Thread-259218][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 15:21:22,668 [DEBUG][       Thread-259218][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 15:21:22,668 [DEBUG][       Thread-259218][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 15:21:22,678 [DEBUG][       Thread-259218][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 15:21:22,692 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 15:21:22,692 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 15:21:22,701 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 15:21:22,710 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 15:21:22,711 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 15:21:22,711 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 15:21:22,719 [DEBUG][       Thread-259218][   transport.py][1871] : EOF in transport thread
2025-06-13 15:21:29,510 [DEBUG][Thread-259220 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:21:32,722 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 15:21:32,722 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 15:21:32,722 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 15:21:32,725 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 15:21:33,170 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 15, 21, 3), 18.14, 28.33, 0.0, 22.55, 13.91, 0, 0, 0, 2, 0, 0),)
2025-06-13 15:21:33,170 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 15:21:03
2025-06-13 15:21:33,251 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 15:21:33,255 [DEBUG][       Thread-259221][   transport.py][1871] : starting thread (client mode): 0x867b47c0
2025-06-13 15:21:33,255 [DEBUG][       Thread-259221][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 15:21:33,276 [DEBUG][       Thread-259221][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 15:21:33,276 [ INFO][       Thread-259221][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 15:21:33,279 [DEBUG][       Thread-259221][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 15:21:33,280 [DEBUG][       Thread-259221][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 15:21:33,280 [DEBUG][       Thread-259221][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 15:21:33,280 [DEBUG][       Thread-259221][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:21:33,280 [DEBUG][       Thread-259221][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:21:33,280 [DEBUG][       Thread-259221][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:21:33,280 [DEBUG][       Thread-259221][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:21:33,280 [DEBUG][       Thread-259221][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 15:21:33,280 [DEBUG][       Thread-259221][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 15:21:33,280 [DEBUG][       Thread-259221][   transport.py][1871] : client lang: <none>
2025-06-13 15:21:33,280 [DEBUG][       Thread-259221][   transport.py][1871] : server lang: <none>
2025-06-13 15:21:33,280 [DEBUG][       Thread-259221][   transport.py][1871] : kex follows: False
2025-06-13 15:21:33,280 [DEBUG][       Thread-259221][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 15:21:33,280 [DEBUG][       Thread-259221][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 15:21:33,280 [DEBUG][       Thread-259221][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 15:21:33,280 [DEBUG][       Thread-259221][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 15:21:33,280 [DEBUG][       Thread-259221][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 15:21:33,280 [DEBUG][       Thread-259221][   transport.py][1871] : Compression: none
2025-06-13 15:21:33,280 [DEBUG][       Thread-259221][   transport.py][1871] : === End of kex handshake ===
2025-06-13 15:21:33,297 [DEBUG][       Thread-259221][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 15:21:33,298 [DEBUG][       Thread-259221][   transport.py][1871] : Switch to new keys ...
2025-06-13 15:21:33,298 [DEBUG][       Thread-259221][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 15:21:33,299 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 15:21:33,299 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 15:21:33,300 [DEBUG][       Thread-259221][   transport.py][1871] : userauth is OK
2025-06-13 15:21:33,313 [ INFO][       Thread-259221][   transport.py][1871] : Authentication (password) successful!
2025-06-13 15:21:33,314 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 15:21:33,933 [DEBUG][       Thread-259221][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 15:21:33,933 [DEBUG][       Thread-259221][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 15:21:33,977 [DEBUG][       Thread-259221][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 15:21:33,977 [DEBUG][       Thread-259221][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 15:21:33,981 [DEBUG][       Thread-259221][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 15:21:33,987 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 15:21:33,987 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 15:21:33,989 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 15:21:33,990 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 15:21:33,996 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 15:21:33,998 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 15:21:33,998 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 15:21:33,999 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 15:21:33,999 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.556533 -999.00  +13.80  24.14     34   -1.70 1 1 1 1 1   887    0 16.64 26.18 ----- 22.8 24.1 56.2 29.4 17.2 -32.4 16.2 -33.7 16.9 -31.8 18.1 -30.7
2025-06-13 15:21:33,999 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 15:21:33,999 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 15:21:33,999 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.556533
2025-06-13 15:21:34,000 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 15:21:34,000 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 15:21:34,000 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 15:21:34,000 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 15:21:34,000 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 15:21:34,001 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T15:21:03', tmtdew=18.14, humidity=28.33, cloud=0.0, wind=22.55, temperature=13.91, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T13:21:24.451', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 15:21:34,002 [DEBUG][       Thread-259221][   transport.py][1871] : EOF in transport thread
2025-06-13 15:21:34,083 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 15:21:34,093 [DEBUG][       Thread-259224][   transport.py][1871] : starting thread (client mode): 0x863a54e0
2025-06-13 15:21:34,093 [DEBUG][       Thread-259224][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 15:21:34,108 [DEBUG][       Thread-259224][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 15:21:34,108 [ INFO][       Thread-259224][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 15:21:34,119 [DEBUG][       Thread-259224][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 15:21:34,119 [DEBUG][       Thread-259224][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 15:21:34,119 [DEBUG][       Thread-259224][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 15:21:34,119 [DEBUG][       Thread-259224][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:21:34,119 [DEBUG][       Thread-259224][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:21:34,119 [DEBUG][       Thread-259224][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:21:34,119 [DEBUG][       Thread-259224][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:21:34,119 [DEBUG][       Thread-259224][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 15:21:34,119 [DEBUG][       Thread-259224][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 15:21:34,119 [DEBUG][       Thread-259224][   transport.py][1871] : client lang: <none>
2025-06-13 15:21:34,119 [DEBUG][       Thread-259224][   transport.py][1871] : server lang: <none>
2025-06-13 15:21:34,119 [DEBUG][       Thread-259224][   transport.py][1871] : kex follows: False
2025-06-13 15:21:34,119 [DEBUG][       Thread-259224][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 15:21:34,120 [DEBUG][       Thread-259224][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 15:21:34,120 [DEBUG][       Thread-259224][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 15:21:34,120 [DEBUG][       Thread-259224][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 15:21:34,120 [DEBUG][       Thread-259224][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 15:21:34,120 [DEBUG][       Thread-259224][   transport.py][1871] : Compression: none
2025-06-13 15:21:34,120 [DEBUG][       Thread-259224][   transport.py][1871] : === End of kex handshake ===
2025-06-13 15:21:34,173 [DEBUG][       Thread-259224][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 15:21:34,174 [DEBUG][       Thread-259224][   transport.py][1871] : Switch to new keys ...
2025-06-13 15:21:34,175 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 15:21:34,175 [DEBUG][       Thread-259224][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 15:21:34,176 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 15:21:34,234 [DEBUG][       Thread-259224][   transport.py][1871] : userauth is OK
2025-06-13 15:21:34,234 [DEBUG][       Thread-259224][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 15:21:34,234 [DEBUG][       Thread-259224][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 15:21:34,235 [DEBUG][       Thread-259224][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 15:21:34,235 [DEBUG][       Thread-259224][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 15:21:34,254 [ INFO][       Thread-259224][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 15:21:34,255 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 15:21:34,255 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 15:21:35,220 [DEBUG][       Thread-259224][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 15:21:35,221 [DEBUG][       Thread-259224][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 15:21:35,272 [DEBUG][       Thread-259224][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 15:21:35,272 [DEBUG][       Thread-259224][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 15:21:35,281 [DEBUG][       Thread-259224][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 15:21:35,289 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 15:21:35,290 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 15:21:35,298 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 15:21:35,306 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 15:21:35,306 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 15:21:35,306 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 15:21:35,314 [DEBUG][       Thread-259224][   transport.py][1871] : EOF in transport thread
2025-06-13 15:21:38,530 [DEBUG][Thread-259226 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:21:40,642 [DEBUG][Thread-259227 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:21:41,726 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:21:41,727 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:21:45,317 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 15:21:45,317 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 15:21:45,317 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 15:21:45,320 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 15:21:45,770 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 15, 21, 34), 18.01, 28.72, 0.0, 22.82, 13.93, 0, 0, 0, 2, 0, 0),)
2025-06-13 15:21:45,770 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 15:21:34
2025-06-13 15:21:45,850 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 15:21:45,856 [DEBUG][       Thread-259228][   transport.py][1871] : starting thread (client mode): 0x86393d30
2025-06-13 15:21:45,856 [DEBUG][       Thread-259228][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 15:21:45,878 [DEBUG][       Thread-259228][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 15:21:45,878 [ INFO][       Thread-259228][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 15:21:45,882 [DEBUG][       Thread-259228][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 15:21:45,882 [DEBUG][       Thread-259228][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 15:21:45,882 [DEBUG][       Thread-259228][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 15:21:45,882 [DEBUG][       Thread-259228][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:21:45,882 [DEBUG][       Thread-259228][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:21:45,882 [DEBUG][       Thread-259228][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:21:45,882 [DEBUG][       Thread-259228][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:21:45,882 [DEBUG][       Thread-259228][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 15:21:45,882 [DEBUG][       Thread-259228][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 15:21:45,882 [DEBUG][       Thread-259228][   transport.py][1871] : client lang: <none>
2025-06-13 15:21:45,882 [DEBUG][       Thread-259228][   transport.py][1871] : server lang: <none>
2025-06-13 15:21:45,882 [DEBUG][       Thread-259228][   transport.py][1871] : kex follows: False
2025-06-13 15:21:45,882 [DEBUG][       Thread-259228][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 15:21:45,882 [DEBUG][       Thread-259228][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 15:21:45,882 [DEBUG][       Thread-259228][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 15:21:45,882 [DEBUG][       Thread-259228][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 15:21:45,882 [DEBUG][       Thread-259228][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 15:21:45,882 [DEBUG][       Thread-259228][   transport.py][1871] : Compression: none
2025-06-13 15:21:45,882 [DEBUG][       Thread-259228][   transport.py][1871] : === End of kex handshake ===
2025-06-13 15:21:45,900 [DEBUG][       Thread-259228][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 15:21:45,901 [DEBUG][       Thread-259228][   transport.py][1871] : Switch to new keys ...
2025-06-13 15:21:45,901 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 15:21:45,902 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 15:21:45,902 [DEBUG][       Thread-259228][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 15:21:45,903 [DEBUG][       Thread-259228][   transport.py][1871] : userauth is OK
2025-06-13 15:21:45,928 [ INFO][       Thread-259228][   transport.py][1871] : Authentication (password) successful!
2025-06-13 15:21:45,929 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 15:21:46,617 [DEBUG][       Thread-259228][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 15:21:46,617 [DEBUG][       Thread-259228][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 15:21:46,661 [DEBUG][       Thread-259228][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 15:21:46,661 [DEBUG][       Thread-259228][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 15:21:46,665 [DEBUG][       Thread-259228][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 15:21:46,678 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 15:21:46,678 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 15:21:46,680 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 15:21:46,682 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 15:21:46,688 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 15:21:46,690 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 15:21:46,691 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 15:21:46,691 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 15:21:46,691 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.556533 -999.00  +13.80  24.14     34   -1.70 1 1 1 1 1   887    0 16.64 26.18 ----- 22.8 24.1 56.2 29.4 17.2 -32.4 16.2 -33.7 16.9 -31.8 18.1 -30.7
2025-06-13 15:21:46,691 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 15:21:46,692 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 15:21:46,692 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.556533
2025-06-13 15:21:46,692 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 15:21:46,693 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 15:21:46,693 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 15:21:46,693 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 15:21:46,693 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 15:21:46,693 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T15:21:34', tmtdew=18.01, humidity=28.72, cloud=0.0, wind=22.82, temperature=13.93, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T13:21:24.451', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 15:21:46,693 [DEBUG][       Thread-259228][   transport.py][1871] : EOF in transport thread
2025-06-13 15:21:46,776 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 15:21:46,788 [DEBUG][       Thread-259231][   transport.py][1871] : starting thread (client mode): 0x867b4670
2025-06-13 15:21:46,788 [DEBUG][       Thread-259231][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 15:21:46,803 [DEBUG][       Thread-259231][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 15:21:46,803 [ INFO][       Thread-259231][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 15:21:46,811 [DEBUG][       Thread-259231][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 15:21:46,811 [DEBUG][       Thread-259231][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 15:21:46,811 [DEBUG][       Thread-259231][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 15:21:46,811 [DEBUG][       Thread-259231][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:21:46,811 [DEBUG][       Thread-259231][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:21:46,811 [DEBUG][       Thread-259231][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:21:46,811 [DEBUG][       Thread-259231][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:21:46,811 [DEBUG][       Thread-259231][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 15:21:46,811 [DEBUG][       Thread-259231][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 15:21:46,811 [DEBUG][       Thread-259231][   transport.py][1871] : client lang: <none>
2025-06-13 15:21:46,811 [DEBUG][       Thread-259231][   transport.py][1871] : server lang: <none>
2025-06-13 15:21:46,811 [DEBUG][       Thread-259231][   transport.py][1871] : kex follows: False
2025-06-13 15:21:46,811 [DEBUG][       Thread-259231][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 15:21:46,811 [DEBUG][       Thread-259231][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 15:21:46,811 [DEBUG][       Thread-259231][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 15:21:46,811 [DEBUG][       Thread-259231][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 15:21:46,811 [DEBUG][       Thread-259231][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 15:21:46,812 [DEBUG][       Thread-259231][   transport.py][1871] : Compression: none
2025-06-13 15:21:46,812 [DEBUG][       Thread-259231][   transport.py][1871] : === End of kex handshake ===
2025-06-13 15:21:46,870 [DEBUG][       Thread-259231][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 15:21:46,870 [DEBUG][       Thread-259231][   transport.py][1871] : Switch to new keys ...
2025-06-13 15:21:46,870 [DEBUG][       Thread-259231][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 15:21:46,870 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 15:21:46,870 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 15:21:46,925 [DEBUG][       Thread-259231][   transport.py][1871] : userauth is OK
2025-06-13 15:21:46,925 [DEBUG][       Thread-259231][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 15:21:46,925 [DEBUG][       Thread-259231][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 15:21:46,925 [DEBUG][       Thread-259231][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 15:21:46,925 [DEBUG][       Thread-259231][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 15:21:46,948 [ INFO][       Thread-259231][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 15:21:46,948 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 15:21:46,948 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 15:21:47,551 [DEBUG][Thread-259233 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:21:47,946 [DEBUG][       Thread-259231][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 15:21:47,946 [DEBUG][       Thread-259231][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 15:21:47,999 [DEBUG][       Thread-259231][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 15:21:48,000 [DEBUG][       Thread-259231][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 15:21:48,008 [DEBUG][       Thread-259231][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 15:21:48,016 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 15:21:48,016 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 15:21:48,024 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 15:21:48,032 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 15:21:48,032 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 15:21:48,032 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 15:21:48,039 [DEBUG][       Thread-259231][   transport.py][1871] : EOF in transport thread
2025-06-13 15:21:56,583 [DEBUG][Thread-259234 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:21:58,042 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 15:21:58,042 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 15:21:58,042 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 15:21:58,045 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 15:21:58,507 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 15, 21, 34), 18.01, 28.72, 0.0, 22.82, 13.93, 0, 0, 0, 2, 0, 0),)
2025-06-13 15:21:58,507 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 15:21:34
2025-06-13 15:21:58,588 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 15:21:58,592 [DEBUG][       Thread-259235][   transport.py][1871] : starting thread (client mode): 0x86392a70
2025-06-13 15:21:58,592 [DEBUG][       Thread-259235][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 15:21:58,613 [DEBUG][       Thread-259235][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 15:21:58,613 [ INFO][       Thread-259235][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 15:21:58,617 [DEBUG][       Thread-259235][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 15:21:58,617 [DEBUG][       Thread-259235][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 15:21:58,617 [DEBUG][       Thread-259235][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 15:21:58,617 [DEBUG][       Thread-259235][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:21:58,617 [DEBUG][       Thread-259235][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:21:58,617 [DEBUG][       Thread-259235][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:21:58,617 [DEBUG][       Thread-259235][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:21:58,617 [DEBUG][       Thread-259235][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 15:21:58,617 [DEBUG][       Thread-259235][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 15:21:58,617 [DEBUG][       Thread-259235][   transport.py][1871] : client lang: <none>
2025-06-13 15:21:58,617 [DEBUG][       Thread-259235][   transport.py][1871] : server lang: <none>
2025-06-13 15:21:58,617 [DEBUG][       Thread-259235][   transport.py][1871] : kex follows: False
2025-06-13 15:21:58,617 [DEBUG][       Thread-259235][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 15:21:58,617 [DEBUG][       Thread-259235][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 15:21:58,618 [DEBUG][       Thread-259235][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 15:21:58,618 [DEBUG][       Thread-259235][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 15:21:58,618 [DEBUG][       Thread-259235][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 15:21:58,618 [DEBUG][       Thread-259235][   transport.py][1871] : Compression: none
2025-06-13 15:21:58,618 [DEBUG][       Thread-259235][   transport.py][1871] : === End of kex handshake ===
2025-06-13 15:21:58,633 [DEBUG][       Thread-259235][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 15:21:58,634 [DEBUG][       Thread-259235][   transport.py][1871] : Switch to new keys ...
2025-06-13 15:21:58,635 [DEBUG][       Thread-259235][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 15:21:58,635 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 15:21:58,635 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 15:21:58,636 [DEBUG][       Thread-259235][   transport.py][1871] : userauth is OK
2025-06-13 15:21:58,661 [ INFO][       Thread-259235][   transport.py][1871] : Authentication (password) successful!
2025-06-13 15:21:58,662 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 15:21:59,315 [DEBUG][       Thread-259235][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 15:21:59,316 [DEBUG][       Thread-259235][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 15:21:59,357 [DEBUG][       Thread-259235][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 15:21:59,357 [DEBUG][       Thread-259235][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 15:21:59,361 [DEBUG][       Thread-259235][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 15:21:59,372 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 15:21:59,372 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 15:21:59,373 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 15:21:59,374 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 15:21:59,378 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 15:21:59,378 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 15:21:59,378 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 15:21:59,379 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 15:21:59,379 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.556533 -999.00  +13.80  24.14     34   -1.70 1 1 1 1 1   887    0 16.64 26.18 ----- 22.8 24.1 56.2 29.4 17.2 -32.4 16.2 -33.7 16.9 -31.8 18.1 -30.7
2025-06-13 15:21:59,379 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 15:21:59,379 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 15:21:59,379 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.556533
2025-06-13 15:21:59,379 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 15:21:59,379 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 15:21:59,379 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 15:21:59,379 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 15:21:59,379 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 15:21:59,379 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T15:21:34', tmtdew=18.01, humidity=28.72, cloud=0.0, wind=22.82, temperature=13.93, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T13:21:24.451', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 15:21:59,380 [DEBUG][       Thread-259235][   transport.py][1871] : EOF in transport thread
2025-06-13 15:21:59,451 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 15:21:59,460 [DEBUG][       Thread-259238][   transport.py][1871] : starting thread (client mode): 0x863a6dd0
2025-06-13 15:21:59,460 [DEBUG][       Thread-259238][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 15:21:59,475 [DEBUG][       Thread-259238][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 15:21:59,476 [ INFO][       Thread-259238][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 15:21:59,484 [DEBUG][       Thread-259238][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 15:21:59,484 [DEBUG][       Thread-259238][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 15:21:59,484 [DEBUG][       Thread-259238][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 15:21:59,484 [DEBUG][       Thread-259238][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:21:59,484 [DEBUG][       Thread-259238][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:21:59,484 [DEBUG][       Thread-259238][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:21:59,484 [DEBUG][       Thread-259238][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:21:59,484 [DEBUG][       Thread-259238][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 15:21:59,484 [DEBUG][       Thread-259238][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 15:21:59,484 [DEBUG][       Thread-259238][   transport.py][1871] : client lang: <none>
2025-06-13 15:21:59,484 [DEBUG][       Thread-259238][   transport.py][1871] : server lang: <none>
2025-06-13 15:21:59,484 [DEBUG][       Thread-259238][   transport.py][1871] : kex follows: False
2025-06-13 15:21:59,484 [DEBUG][       Thread-259238][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 15:21:59,484 [DEBUG][       Thread-259238][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 15:21:59,484 [DEBUG][       Thread-259238][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 15:21:59,484 [DEBUG][       Thread-259238][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 15:21:59,484 [DEBUG][       Thread-259238][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 15:21:59,484 [DEBUG][       Thread-259238][   transport.py][1871] : Compression: none
2025-06-13 15:21:59,484 [DEBUG][       Thread-259238][   transport.py][1871] : === End of kex handshake ===
2025-06-13 15:21:59,550 [DEBUG][       Thread-259238][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 15:21:59,551 [DEBUG][       Thread-259238][   transport.py][1871] : Switch to new keys ...
2025-06-13 15:21:59,551 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 15:21:59,552 [DEBUG][       Thread-259238][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 15:21:59,553 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 15:21:59,606 [DEBUG][       Thread-259238][   transport.py][1871] : userauth is OK
2025-06-13 15:21:59,606 [DEBUG][       Thread-259238][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 15:21:59,606 [DEBUG][       Thread-259238][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 15:21:59,606 [DEBUG][       Thread-259238][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 15:21:59,606 [DEBUG][       Thread-259238][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 15:21:59,624 [ INFO][       Thread-259238][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 15:21:59,625 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 15:21:59,625 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 15:22:00,662 [DEBUG][       Thread-259238][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 15:22:00,662 [DEBUG][       Thread-259238][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 15:22:00,712 [DEBUG][       Thread-259238][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 15:22:00,712 [DEBUG][       Thread-259238][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 15:22:00,722 [DEBUG][       Thread-259238][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 15:22:00,731 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 15:22:00,732 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 15:22:00,740 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 15:22:00,750 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 15:22:00,750 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 15:22:00,750 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 15:22:00,758 [DEBUG][       Thread-259238][   transport.py][1871] : EOF in transport thread
2025-06-13 15:22:05,602 [DEBUG][Thread-259240 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:22:08,477 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:22:08,478 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:22:10,756 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 15:22:10,756 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 15:22:10,756 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 15:22:10,759 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 15:22:11,223 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 15, 22, 6), 18.08, 28.56, 0.0, 23.08, 13.86, 0, 0, 0, 2, 0, 0),)
2025-06-13 15:22:11,223 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 15:22:06
2025-06-13 15:22:11,300 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 15:22:11,307 [DEBUG][       Thread-259241][   transport.py][1871] : starting thread (client mode): 0x863900d0
2025-06-13 15:22:11,307 [DEBUG][       Thread-259241][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 15:22:11,330 [DEBUG][       Thread-259241][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 15:22:11,330 [ INFO][       Thread-259241][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 15:22:11,333 [DEBUG][       Thread-259241][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 15:22:11,333 [DEBUG][       Thread-259241][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 15:22:11,333 [DEBUG][       Thread-259241][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 15:22:11,333 [DEBUG][       Thread-259241][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:22:11,333 [DEBUG][       Thread-259241][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:22:11,333 [DEBUG][       Thread-259241][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:22:11,333 [DEBUG][       Thread-259241][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:22:11,333 [DEBUG][       Thread-259241][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 15:22:11,334 [DEBUG][       Thread-259241][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 15:22:11,334 [DEBUG][       Thread-259241][   transport.py][1871] : client lang: <none>
2025-06-13 15:22:11,334 [DEBUG][       Thread-259241][   transport.py][1871] : server lang: <none>
2025-06-13 15:22:11,334 [DEBUG][       Thread-259241][   transport.py][1871] : kex follows: False
2025-06-13 15:22:11,334 [DEBUG][       Thread-259241][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 15:22:11,334 [DEBUG][       Thread-259241][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 15:22:11,334 [DEBUG][       Thread-259241][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 15:22:11,334 [DEBUG][       Thread-259241][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 15:22:11,334 [DEBUG][       Thread-259241][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 15:22:11,334 [DEBUG][       Thread-259241][   transport.py][1871] : Compression: none
2025-06-13 15:22:11,334 [DEBUG][       Thread-259241][   transport.py][1871] : === End of kex handshake ===
2025-06-13 15:22:11,351 [DEBUG][       Thread-259241][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 15:22:11,351 [DEBUG][       Thread-259241][   transport.py][1871] : Switch to new keys ...
2025-06-13 15:22:11,352 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 15:22:11,352 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 15:22:11,352 [DEBUG][       Thread-259241][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 15:22:11,354 [DEBUG][       Thread-259241][   transport.py][1871] : userauth is OK
2025-06-13 15:22:11,367 [ INFO][       Thread-259241][   transport.py][1871] : Authentication (password) successful!
2025-06-13 15:22:11,367 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 15:22:11,979 [DEBUG][       Thread-259241][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 15:22:11,979 [DEBUG][       Thread-259241][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 15:22:12,021 [DEBUG][       Thread-259241][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 15:22:12,021 [DEBUG][       Thread-259241][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 15:22:12,024 [DEBUG][       Thread-259241][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 15:22:12,038 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 15:22:12,038 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 15:22:12,041 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 15:22:12,042 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 15:22:12,048 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 15:22:12,051 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 15:22:12,051 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 15:22:12,051 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 15:22:12,052 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.556880 -999.00  +13.80  22.44     33   -1.80 1 1 1 1 1   887    0 16.12 22.13 ----- 22.9 22.4 54.4 27.7 17.2 -31.9 16.1 -33.6 16.8 -33.1 18.0 -30.3
2025-06-13 15:22:12,052 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 15:22:12,052 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 15:22:12,052 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.556880
2025-06-13 15:22:12,052 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 15:22:12,053 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 15:22:12,053 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 15:22:12,053 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 15:22:12,053 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 15:22:12,053 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T15:22:06', tmtdew=18.08, humidity=28.56, cloud=0.0, wind=23.08, temperature=13.86, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T13:21:54.432', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 15:22:12,054 [DEBUG][       Thread-259241][   transport.py][1871] : EOF in transport thread
2025-06-13 15:22:12,136 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 15:22:12,149 [DEBUG][       Thread-259244][   transport.py][1871] : starting thread (client mode): 0x863a7160
2025-06-13 15:22:12,149 [DEBUG][       Thread-259244][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 15:22:12,165 [DEBUG][       Thread-259244][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 15:22:12,165 [ INFO][       Thread-259244][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 15:22:12,172 [DEBUG][       Thread-259244][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 15:22:12,173 [DEBUG][       Thread-259244][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 15:22:12,173 [DEBUG][       Thread-259244][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 15:22:12,173 [DEBUG][       Thread-259244][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:22:12,173 [DEBUG][       Thread-259244][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:22:12,173 [DEBUG][       Thread-259244][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:22:12,173 [DEBUG][       Thread-259244][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:22:12,173 [DEBUG][       Thread-259244][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 15:22:12,173 [DEBUG][       Thread-259244][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 15:22:12,173 [DEBUG][       Thread-259244][   transport.py][1871] : client lang: <none>
2025-06-13 15:22:12,173 [DEBUG][       Thread-259244][   transport.py][1871] : server lang: <none>
2025-06-13 15:22:12,173 [DEBUG][       Thread-259244][   transport.py][1871] : kex follows: False
2025-06-13 15:22:12,173 [DEBUG][       Thread-259244][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 15:22:12,173 [DEBUG][       Thread-259244][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 15:22:12,173 [DEBUG][       Thread-259244][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 15:22:12,173 [DEBUG][       Thread-259244][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 15:22:12,173 [DEBUG][       Thread-259244][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 15:22:12,173 [DEBUG][       Thread-259244][   transport.py][1871] : Compression: none
2025-06-13 15:22:12,173 [DEBUG][       Thread-259244][   transport.py][1871] : === End of kex handshake ===
2025-06-13 15:22:12,232 [DEBUG][       Thread-259244][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 15:22:12,232 [DEBUG][       Thread-259244][   transport.py][1871] : Switch to new keys ...
2025-06-13 15:22:12,233 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 15:22:12,233 [DEBUG][       Thread-259244][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 15:22:12,234 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 15:22:12,292 [DEBUG][       Thread-259244][   transport.py][1871] : userauth is OK
2025-06-13 15:22:12,292 [DEBUG][       Thread-259244][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 15:22:12,293 [DEBUG][       Thread-259244][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 15:22:12,293 [DEBUG][       Thread-259244][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 15:22:12,293 [DEBUG][       Thread-259244][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 15:22:12,311 [ INFO][       Thread-259244][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 15:22:12,311 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 15:22:12,311 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 15:22:13,321 [DEBUG][       Thread-259244][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 15:22:13,321 [DEBUG][       Thread-259244][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 15:22:13,372 [DEBUG][       Thread-259244][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 15:22:13,372 [DEBUG][       Thread-259244][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 15:22:13,382 [DEBUG][       Thread-259244][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 15:22:13,391 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 15:22:13,391 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 15:22:13,400 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 15:22:13,409 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 15:22:13,409 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 15:22:13,410 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 15:22:13,418 [DEBUG][       Thread-259244][   transport.py][1871] : EOF in transport thread
2025-06-13 15:22:14,622 [DEBUG][Thread-259246 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:22:20,844 [DEBUG][Thread-259247 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:22:23,420 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 15:22:23,420 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 15:22:23,420 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 15:22:23,422 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 15:22:23,665 [DEBUG][Thread-259248 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:22:23,865 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 15, 22, 6), 18.08, 28.56, 0.0, 23.08, 13.86, 0, 0, 0, 2, 0, 0),)
2025-06-13 15:22:23,865 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 15:22:06
2025-06-13 15:22:23,943 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 15:22:23,947 [DEBUG][       Thread-259249][   transport.py][1871] : starting thread (client mode): 0x863a6230
2025-06-13 15:22:23,948 [DEBUG][       Thread-259249][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 15:22:23,970 [DEBUG][       Thread-259249][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 15:22:23,970 [ INFO][       Thread-259249][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 15:22:23,973 [DEBUG][       Thread-259249][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 15:22:23,973 [DEBUG][       Thread-259249][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 15:22:23,973 [DEBUG][       Thread-259249][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 15:22:23,973 [DEBUG][       Thread-259249][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:22:23,973 [DEBUG][       Thread-259249][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:22:23,973 [DEBUG][       Thread-259249][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:22:23,973 [DEBUG][       Thread-259249][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:22:23,973 [DEBUG][       Thread-259249][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 15:22:23,973 [DEBUG][       Thread-259249][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 15:22:23,973 [DEBUG][       Thread-259249][   transport.py][1871] : client lang: <none>
2025-06-13 15:22:23,973 [DEBUG][       Thread-259249][   transport.py][1871] : server lang: <none>
2025-06-13 15:22:23,973 [DEBUG][       Thread-259249][   transport.py][1871] : kex follows: False
2025-06-13 15:22:23,973 [DEBUG][       Thread-259249][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 15:22:23,974 [DEBUG][       Thread-259249][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 15:22:23,974 [DEBUG][       Thread-259249][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 15:22:23,974 [DEBUG][       Thread-259249][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 15:22:23,974 [DEBUG][       Thread-259249][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 15:22:23,974 [DEBUG][       Thread-259249][   transport.py][1871] : Compression: none
2025-06-13 15:22:23,974 [DEBUG][       Thread-259249][   transport.py][1871] : === End of kex handshake ===
2025-06-13 15:22:23,991 [DEBUG][       Thread-259249][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 15:22:23,991 [DEBUG][       Thread-259249][   transport.py][1871] : Switch to new keys ...
2025-06-13 15:22:23,991 [DEBUG][       Thread-259249][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 15:22:23,992 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 15:22:23,992 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 15:22:23,993 [DEBUG][       Thread-259249][   transport.py][1871] : userauth is OK
2025-06-13 15:22:24,007 [ INFO][       Thread-259249][   transport.py][1871] : Authentication (password) successful!
2025-06-13 15:22:24,007 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 15:22:24,654 [DEBUG][       Thread-259249][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 15:22:24,654 [DEBUG][       Thread-259249][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 15:22:24,697 [DEBUG][       Thread-259249][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 15:22:24,697 [DEBUG][       Thread-259249][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 15:22:24,699 [DEBUG][       Thread-259249][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 15:22:24,712 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 15:22:24,712 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 15:22:24,714 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 15:22:24,715 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 15:22:24,721 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 15:22:24,723 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 15:22:24,724 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 15:22:24,724 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 15:22:24,724 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.556880 -999.00  +13.80  22.44     33   -1.80 1 1 1 1 1   887    0 16.12 22.13 ----- 22.9 22.4 54.4 27.7 17.2 -31.9 16.1 -33.6 16.8 -33.1 18.0 -30.3
2025-06-13 15:22:24,724 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 15:22:24,724 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 15:22:24,724 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.556880
2025-06-13 15:22:24,725 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 15:22:24,725 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 15:22:24,726 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 15:22:24,726 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 15:22:24,726 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 15:22:24,726 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T15:22:06', tmtdew=18.08, humidity=28.56, cloud=0.0, wind=23.08, temperature=13.86, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T13:21:54.432', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 15:22:24,727 [DEBUG][       Thread-259249][   transport.py][1871] : EOF in transport thread
2025-06-13 15:22:24,809 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 15:22:24,819 [DEBUG][       Thread-259252][   transport.py][1871] : starting thread (client mode): 0x863be9e0
2025-06-13 15:22:24,819 [DEBUG][       Thread-259252][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 15:22:24,835 [DEBUG][       Thread-259252][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 15:22:24,835 [ INFO][       Thread-259252][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 15:22:24,843 [DEBUG][       Thread-259252][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 15:22:24,843 [DEBUG][       Thread-259252][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 15:22:24,843 [DEBUG][       Thread-259252][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 15:22:24,843 [DEBUG][       Thread-259252][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:22:24,843 [DEBUG][       Thread-259252][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:22:24,843 [DEBUG][       Thread-259252][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:22:24,843 [DEBUG][       Thread-259252][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:22:24,843 [DEBUG][       Thread-259252][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 15:22:24,843 [DEBUG][       Thread-259252][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 15:22:24,843 [DEBUG][       Thread-259252][   transport.py][1871] : client lang: <none>
2025-06-13 15:22:24,843 [DEBUG][       Thread-259252][   transport.py][1871] : server lang: <none>
2025-06-13 15:22:24,843 [DEBUG][       Thread-259252][   transport.py][1871] : kex follows: False
2025-06-13 15:22:24,843 [DEBUG][       Thread-259252][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 15:22:24,843 [DEBUG][       Thread-259252][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 15:22:24,843 [DEBUG][       Thread-259252][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 15:22:24,843 [DEBUG][       Thread-259252][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 15:22:24,844 [DEBUG][       Thread-259252][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 15:22:24,844 [DEBUG][       Thread-259252][   transport.py][1871] : Compression: none
2025-06-13 15:22:24,844 [DEBUG][       Thread-259252][   transport.py][1871] : === End of kex handshake ===
2025-06-13 15:22:24,906 [DEBUG][       Thread-259252][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 15:22:24,906 [DEBUG][       Thread-259252][   transport.py][1871] : Switch to new keys ...
2025-06-13 15:22:24,907 [DEBUG][       Thread-259252][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 15:22:24,907 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 15:22:24,908 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 15:22:24,962 [DEBUG][       Thread-259252][   transport.py][1871] : userauth is OK
2025-06-13 15:22:24,962 [DEBUG][       Thread-259252][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 15:22:24,963 [DEBUG][       Thread-259252][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 15:22:24,963 [DEBUG][       Thread-259252][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 15:22:24,963 [DEBUG][       Thread-259252][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 15:22:24,990 [ INFO][       Thread-259252][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 15:22:24,990 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 15:22:24,991 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 15:22:26,030 [DEBUG][       Thread-259252][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 15:22:26,031 [DEBUG][       Thread-259252][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 15:22:26,080 [DEBUG][       Thread-259252][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 15:22:26,080 [DEBUG][       Thread-259252][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 15:22:26,089 [DEBUG][       Thread-259252][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 15:22:26,098 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 15:22:26,098 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 15:22:26,107 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 15:22:26,117 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 15:22:26,117 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 15:22:26,117 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 15:22:26,125 [DEBUG][       Thread-259252][   transport.py][1871] : EOF in transport thread
2025-06-13 15:22:32,685 [DEBUG][Thread-259254 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:22:36,124 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 15:22:36,124 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 15:22:36,124 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 15:22:36,127 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 15:22:36,589 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 15, 22, 6), 18.08, 28.56, 0.0, 23.08, 13.86, 0, 0, 0, 2, 0, 0),)
2025-06-13 15:22:36,589 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 15:22:06
2025-06-13 15:22:36,667 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 15:22:36,673 [DEBUG][       Thread-259255][   transport.py][1871] : starting thread (client mode): 0x863bd150
2025-06-13 15:22:36,673 [DEBUG][       Thread-259255][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 15:22:36,693 [DEBUG][       Thread-259255][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 15:22:36,693 [ INFO][       Thread-259255][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 15:22:36,694 [DEBUG][       Thread-259255][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 15:22:36,695 [DEBUG][       Thread-259255][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 15:22:36,695 [DEBUG][       Thread-259255][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 15:22:36,695 [DEBUG][       Thread-259255][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:22:36,695 [DEBUG][       Thread-259255][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:22:36,695 [DEBUG][       Thread-259255][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:22:36,695 [DEBUG][       Thread-259255][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:22:36,695 [DEBUG][       Thread-259255][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 15:22:36,695 [DEBUG][       Thread-259255][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 15:22:36,695 [DEBUG][       Thread-259255][   transport.py][1871] : client lang: <none>
2025-06-13 15:22:36,695 [DEBUG][       Thread-259255][   transport.py][1871] : server lang: <none>
2025-06-13 15:22:36,695 [DEBUG][       Thread-259255][   transport.py][1871] : kex follows: False
2025-06-13 15:22:36,695 [DEBUG][       Thread-259255][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 15:22:36,695 [DEBUG][       Thread-259255][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 15:22:36,695 [DEBUG][       Thread-259255][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 15:22:36,695 [DEBUG][       Thread-259255][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 15:22:36,695 [DEBUG][       Thread-259255][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 15:22:36,695 [DEBUG][       Thread-259255][   transport.py][1871] : Compression: none
2025-06-13 15:22:36,695 [DEBUG][       Thread-259255][   transport.py][1871] : === End of kex handshake ===
2025-06-13 15:22:36,708 [DEBUG][       Thread-259255][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 15:22:36,708 [DEBUG][       Thread-259255][   transport.py][1871] : Switch to new keys ...
2025-06-13 15:22:36,708 [DEBUG][       Thread-259255][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 15:22:36,708 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 15:22:36,708 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 15:22:36,708 [DEBUG][       Thread-259255][   transport.py][1871] : userauth is OK
2025-06-13 15:22:36,733 [ INFO][       Thread-259255][   transport.py][1871] : Authentication (password) successful!
2025-06-13 15:22:36,733 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 15:22:37,311 [DEBUG][       Thread-259255][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 15:22:37,311 [DEBUG][       Thread-259255][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 15:22:37,353 [DEBUG][       Thread-259255][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 15:22:37,353 [DEBUG][       Thread-259255][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 15:22:37,355 [DEBUG][       Thread-259255][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 15:22:37,368 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 15:22:37,369 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 15:22:37,371 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 15:22:37,373 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 15:22:37,378 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 15:22:37,379 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 15:22:37,380 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 15:22:37,380 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 15:22:37,381 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.557228 -999.00  +13.80  27.24     33   -1.70 1 1 1 1 1   887    0 16.13 18.08 ----- 24.4 27.2 58.8 28.7 17.2 -32.0 16.1 -33.4 17.0 -31.8 18.0 -30.1
2025-06-13 15:22:37,381 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 15:22:37,381 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 15:22:37,381 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.557228
2025-06-13 15:22:37,381 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 15:22:37,382 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 15:22:37,382 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 15:22:37,382 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 15:22:37,382 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 15:22:37,382 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T15:22:06', tmtdew=18.08, humidity=28.56, cloud=0.0, wind=23.08, temperature=13.86, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T13:22:24.499', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 15:22:37,383 [DEBUG][       Thread-259255][   transport.py][1871] : EOF in transport thread
2025-06-13 15:22:37,464 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 15:22:37,477 [DEBUG][       Thread-259258][   transport.py][1871] : starting thread (client mode): 0x863a7c70
2025-06-13 15:22:37,477 [DEBUG][       Thread-259258][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 15:22:37,492 [DEBUG][       Thread-259258][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 15:22:37,492 [ INFO][       Thread-259258][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 15:22:37,500 [DEBUG][       Thread-259258][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 15:22:37,500 [DEBUG][       Thread-259258][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 15:22:37,500 [DEBUG][       Thread-259258][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 15:22:37,500 [DEBUG][       Thread-259258][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:22:37,500 [DEBUG][       Thread-259258][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:22:37,500 [DEBUG][       Thread-259258][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:22:37,500 [DEBUG][       Thread-259258][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:22:37,500 [DEBUG][       Thread-259258][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 15:22:37,501 [DEBUG][       Thread-259258][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 15:22:37,501 [DEBUG][       Thread-259258][   transport.py][1871] : client lang: <none>
2025-06-13 15:22:37,501 [DEBUG][       Thread-259258][   transport.py][1871] : server lang: <none>
2025-06-13 15:22:37,501 [DEBUG][       Thread-259258][   transport.py][1871] : kex follows: False
2025-06-13 15:22:37,501 [DEBUG][       Thread-259258][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 15:22:37,501 [DEBUG][       Thread-259258][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 15:22:37,501 [DEBUG][       Thread-259258][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 15:22:37,501 [DEBUG][       Thread-259258][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 15:22:37,501 [DEBUG][       Thread-259258][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 15:22:37,501 [DEBUG][       Thread-259258][   transport.py][1871] : Compression: none
2025-06-13 15:22:37,501 [DEBUG][       Thread-259258][   transport.py][1871] : === End of kex handshake ===
2025-06-13 15:22:37,557 [DEBUG][       Thread-259258][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 15:22:37,558 [DEBUG][       Thread-259258][   transport.py][1871] : Switch to new keys ...
2025-06-13 15:22:37,558 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 15:22:37,559 [DEBUG][       Thread-259258][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 15:22:37,560 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 15:22:37,614 [DEBUG][       Thread-259258][   transport.py][1871] : userauth is OK
2025-06-13 15:22:37,614 [DEBUG][       Thread-259258][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 15:22:37,614 [DEBUG][       Thread-259258][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 15:22:37,614 [DEBUG][       Thread-259258][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 15:22:37,614 [DEBUG][       Thread-259258][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 15:22:37,634 [ INFO][       Thread-259258][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 15:22:37,634 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 15:22:37,635 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 15:22:38,660 [DEBUG][       Thread-259258][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 15:22:38,661 [DEBUG][       Thread-259258][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 15:22:38,712 [DEBUG][       Thread-259258][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 15:22:38,712 [DEBUG][       Thread-259258][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 15:22:38,724 [DEBUG][       Thread-259258][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 15:22:38,733 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 15:22:38,734 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 15:22:38,744 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 15:22:38,755 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 15:22:38,755 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 15:22:38,756 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 15:22:38,765 [DEBUG][       Thread-259258][   transport.py][1871] : EOF in transport thread
2025-06-13 15:22:41,708 [DEBUG][Thread-259260 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:22:41,797 [DEBUG][Thread-259261 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:22:42,879 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:22:42,880 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:22:48,766 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 15:22:48,767 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 15:22:48,776 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 15:22:48,779 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 15:22:49,236 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 15, 22, 38), 17.96, 28.66, 0.0, 19.75, 13.92, 0, 0, 0, 2, 0, 0),)
2025-06-13 15:22:49,236 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 15:22:38
2025-06-13 15:22:49,315 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 15:22:49,319 [DEBUG][       Thread-259262][   transport.py][1871] : starting thread (client mode): 0x863a7c70
2025-06-13 15:22:49,319 [DEBUG][       Thread-259262][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 15:22:49,340 [DEBUG][       Thread-259262][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 15:22:49,340 [ INFO][       Thread-259262][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 15:22:49,343 [DEBUG][       Thread-259262][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 15:22:49,343 [DEBUG][       Thread-259262][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 15:22:49,343 [DEBUG][       Thread-259262][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 15:22:49,343 [DEBUG][       Thread-259262][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:22:49,343 [DEBUG][       Thread-259262][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:22:49,343 [DEBUG][       Thread-259262][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:22:49,343 [DEBUG][       Thread-259262][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:22:49,343 [DEBUG][       Thread-259262][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 15:22:49,343 [DEBUG][       Thread-259262][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 15:22:49,343 [DEBUG][       Thread-259262][   transport.py][1871] : client lang: <none>
2025-06-13 15:22:49,343 [DEBUG][       Thread-259262][   transport.py][1871] : server lang: <none>
2025-06-13 15:22:49,343 [DEBUG][       Thread-259262][   transport.py][1871] : kex follows: False
2025-06-13 15:22:49,343 [DEBUG][       Thread-259262][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 15:22:49,343 [DEBUG][       Thread-259262][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 15:22:49,343 [DEBUG][       Thread-259262][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 15:22:49,344 [DEBUG][       Thread-259262][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 15:22:49,344 [DEBUG][       Thread-259262][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 15:22:49,344 [DEBUG][       Thread-259262][   transport.py][1871] : Compression: none
2025-06-13 15:22:49,344 [DEBUG][       Thread-259262][   transport.py][1871] : === End of kex handshake ===
2025-06-13 15:22:49,362 [DEBUG][       Thread-259262][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 15:22:49,362 [DEBUG][       Thread-259262][   transport.py][1871] : Switch to new keys ...
2025-06-13 15:22:49,363 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 15:22:49,363 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 15:22:49,364 [DEBUG][       Thread-259262][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 15:22:49,364 [DEBUG][       Thread-259262][   transport.py][1871] : userauth is OK
2025-06-13 15:22:49,377 [ INFO][       Thread-259262][   transport.py][1871] : Authentication (password) successful!
2025-06-13 15:22:49,378 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 15:22:50,005 [DEBUG][       Thread-259262][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 15:22:50,005 [DEBUG][       Thread-259262][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 15:22:50,049 [DEBUG][       Thread-259262][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 15:22:50,050 [DEBUG][       Thread-259262][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 15:22:50,053 [DEBUG][       Thread-259262][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 15:22:50,065 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 15:22:50,065 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 15:22:50,067 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 15:22:50,070 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 15:22:50,076 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 15:22:50,078 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 15:22:50,078 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 15:22:50,079 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 15:22:50,079 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.557228 -999.00  +13.80  27.24     33   -1.70 1 1 1 1 1   887    0 16.13 18.08 ----- 24.4 27.2 58.8 28.7 17.2 -32.0 16.1 -33.4 17.0 -31.8 18.0 -30.1
2025-06-13 15:22:50,079 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 15:22:50,079 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 15:22:50,079 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.557228
2025-06-13 15:22:50,080 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 15:22:50,080 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 15:22:50,080 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 15:22:50,081 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 15:22:50,081 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 15:22:50,081 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T15:22:38', tmtdew=17.96, humidity=28.66, cloud=0.0, wind=19.75, temperature=13.92, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T13:22:24.499', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 15:22:50,082 [DEBUG][       Thread-259262][   transport.py][1871] : EOF in transport thread
2025-06-13 15:22:50,165 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 15:22:50,174 [DEBUG][       Thread-259265][   transport.py][1871] : starting thread (client mode): 0x86390280
2025-06-13 15:22:50,174 [DEBUG][       Thread-259265][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 15:22:50,189 [DEBUG][       Thread-259265][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 15:22:50,190 [ INFO][       Thread-259265][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 15:22:50,197 [DEBUG][       Thread-259265][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 15:22:50,197 [DEBUG][       Thread-259265][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 15:22:50,197 [DEBUG][       Thread-259265][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 15:22:50,197 [DEBUG][       Thread-259265][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:22:50,197 [DEBUG][       Thread-259265][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:22:50,197 [DEBUG][       Thread-259265][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:22:50,197 [DEBUG][       Thread-259265][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:22:50,197 [DEBUG][       Thread-259265][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 15:22:50,197 [DEBUG][       Thread-259265][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 15:22:50,198 [DEBUG][       Thread-259265][   transport.py][1871] : client lang: <none>
2025-06-13 15:22:50,198 [DEBUG][       Thread-259265][   transport.py][1871] : server lang: <none>
2025-06-13 15:22:50,198 [DEBUG][       Thread-259265][   transport.py][1871] : kex follows: False
2025-06-13 15:22:50,198 [DEBUG][       Thread-259265][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 15:22:50,198 [DEBUG][       Thread-259265][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 15:22:50,198 [DEBUG][       Thread-259265][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 15:22:50,198 [DEBUG][       Thread-259265][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 15:22:50,198 [DEBUG][       Thread-259265][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 15:22:50,198 [DEBUG][       Thread-259265][   transport.py][1871] : Compression: none
2025-06-13 15:22:50,198 [DEBUG][       Thread-259265][   transport.py][1871] : === End of kex handshake ===
2025-06-13 15:22:50,254 [DEBUG][       Thread-259265][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 15:22:50,255 [DEBUG][       Thread-259265][   transport.py][1871] : Switch to new keys ...
2025-06-13 15:22:50,256 [DEBUG][       Thread-259265][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 15:22:50,256 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 15:22:50,257 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 15:22:50,318 [DEBUG][       Thread-259265][   transport.py][1871] : userauth is OK
2025-06-13 15:22:50,318 [DEBUG][       Thread-259265][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 15:22:50,318 [DEBUG][       Thread-259265][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 15:22:50,318 [DEBUG][       Thread-259265][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 15:22:50,318 [DEBUG][       Thread-259265][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 15:22:50,337 [ INFO][       Thread-259265][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 15:22:50,337 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 15:22:50,338 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 15:22:50,730 [DEBUG][Thread-259267 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:22:51,373 [DEBUG][       Thread-259265][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 15:22:51,374 [DEBUG][       Thread-259265][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 15:22:51,424 [DEBUG][       Thread-259265][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 15:22:51,424 [DEBUG][       Thread-259265][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 15:22:51,433 [DEBUG][       Thread-259265][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 15:22:51,443 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 15:22:51,443 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 15:22:51,452 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 15:22:51,462 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 15:22:51,462 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 15:22:51,462 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 15:22:51,471 [DEBUG][       Thread-259265][   transport.py][1871] : EOF in transport thread
2025-06-13 15:22:59,776 [DEBUG][Thread-259268 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:23:01,472 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 15:23:01,472 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 15:23:01,472 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 15:23:01,473 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 15:23:01,917 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 15, 22, 38), 17.96, 28.66, 0.0, 19.75, 13.92, 0, 0, 0, 2, 0, 0),)
2025-06-13 15:23:01,917 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 15:22:38
2025-06-13 15:23:01,995 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 15:23:02,002 [DEBUG][       Thread-259269][   transport.py][1871] : starting thread (client mode): 0x86391480
2025-06-13 15:23:02,002 [DEBUG][       Thread-259269][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 15:23:02,023 [DEBUG][       Thread-259269][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 15:23:02,023 [ INFO][       Thread-259269][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 15:23:02,026 [DEBUG][       Thread-259269][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 15:23:02,026 [DEBUG][       Thread-259269][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 15:23:02,027 [DEBUG][       Thread-259269][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 15:23:02,027 [DEBUG][       Thread-259269][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:23:02,027 [DEBUG][       Thread-259269][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:23:02,027 [DEBUG][       Thread-259269][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:23:02,027 [DEBUG][       Thread-259269][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:23:02,027 [DEBUG][       Thread-259269][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 15:23:02,027 [DEBUG][       Thread-259269][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 15:23:02,027 [DEBUG][       Thread-259269][   transport.py][1871] : client lang: <none>
2025-06-13 15:23:02,027 [DEBUG][       Thread-259269][   transport.py][1871] : server lang: <none>
2025-06-13 15:23:02,027 [DEBUG][       Thread-259269][   transport.py][1871] : kex follows: False
2025-06-13 15:23:02,027 [DEBUG][       Thread-259269][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 15:23:02,027 [DEBUG][       Thread-259269][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 15:23:02,027 [DEBUG][       Thread-259269][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 15:23:02,027 [DEBUG][       Thread-259269][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 15:23:02,027 [DEBUG][       Thread-259269][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 15:23:02,027 [DEBUG][       Thread-259269][   transport.py][1871] : Compression: none
2025-06-13 15:23:02,027 [DEBUG][       Thread-259269][   transport.py][1871] : === End of kex handshake ===
2025-06-13 15:23:02,043 [DEBUG][       Thread-259269][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 15:23:02,044 [DEBUG][       Thread-259269][   transport.py][1871] : Switch to new keys ...
2025-06-13 15:23:02,045 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 15:23:02,045 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 15:23:02,045 [DEBUG][       Thread-259269][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 15:23:02,046 [DEBUG][       Thread-259269][   transport.py][1871] : userauth is OK
2025-06-13 15:23:02,070 [ INFO][       Thread-259269][   transport.py][1871] : Authentication (password) successful!
2025-06-13 15:23:02,071 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 15:23:02,717 [DEBUG][       Thread-259269][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 15:23:02,718 [DEBUG][       Thread-259269][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 15:23:02,761 [DEBUG][       Thread-259269][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 15:23:02,761 [DEBUG][       Thread-259269][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 15:23:02,764 [DEBUG][       Thread-259269][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 15:23:02,775 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 15:23:02,775 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 15:23:02,777 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 15:23:02,779 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 15:23:02,784 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 15:23:02,786 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 15:23:02,786 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 15:23:02,786 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 15:23:02,786 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.557228 -999.00  +13.80  27.24     33   -1.70 1 1 1 1 1   887    0 16.13 18.08 ----- 24.4 27.2 58.8 28.7 17.2 -32.0 16.1 -33.4 17.0 -31.8 18.0 -30.1
2025-06-13 15:23:02,787 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 15:23:02,787 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 15:23:02,787 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.557228
2025-06-13 15:23:02,787 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 15:23:02,787 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 15:23:02,788 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 15:23:02,788 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 15:23:02,788 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 15:23:02,788 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T15:22:38', tmtdew=17.96, humidity=28.66, cloud=0.0, wind=19.75, temperature=13.92, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T13:22:24.499', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 15:23:02,789 [DEBUG][       Thread-259269][   transport.py][1871] : EOF in transport thread
2025-06-13 15:23:02,871 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 15:23:02,887 [DEBUG][       Thread-259272][   transport.py][1871] : starting thread (client mode): 0x863a7fd0
2025-06-13 15:23:02,887 [DEBUG][       Thread-259272][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 15:23:02,902 [DEBUG][       Thread-259272][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 15:23:02,902 [ INFO][       Thread-259272][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 15:23:02,909 [DEBUG][       Thread-259272][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 15:23:02,909 [DEBUG][       Thread-259272][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 15:23:02,909 [DEBUG][       Thread-259272][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 15:23:02,909 [DEBUG][       Thread-259272][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:23:02,909 [DEBUG][       Thread-259272][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:23:02,909 [DEBUG][       Thread-259272][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:23:02,910 [DEBUG][       Thread-259272][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:23:02,910 [DEBUG][       Thread-259272][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 15:23:02,910 [DEBUG][       Thread-259272][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 15:23:02,910 [DEBUG][       Thread-259272][   transport.py][1871] : client lang: <none>
2025-06-13 15:23:02,910 [DEBUG][       Thread-259272][   transport.py][1871] : server lang: <none>
2025-06-13 15:23:02,910 [DEBUG][       Thread-259272][   transport.py][1871] : kex follows: False
2025-06-13 15:23:02,910 [DEBUG][       Thread-259272][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 15:23:02,910 [DEBUG][       Thread-259272][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 15:23:02,910 [DEBUG][       Thread-259272][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 15:23:02,910 [DEBUG][       Thread-259272][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 15:23:02,910 [DEBUG][       Thread-259272][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 15:23:02,910 [DEBUG][       Thread-259272][   transport.py][1871] : Compression: none
2025-06-13 15:23:02,910 [DEBUG][       Thread-259272][   transport.py][1871] : === End of kex handshake ===
2025-06-13 15:23:02,976 [DEBUG][       Thread-259272][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 15:23:02,977 [DEBUG][       Thread-259272][   transport.py][1871] : Switch to new keys ...
2025-06-13 15:23:02,977 [DEBUG][       Thread-259272][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 15:23:02,978 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 15:23:02,978 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 15:23:03,033 [DEBUG][       Thread-259272][   transport.py][1871] : userauth is OK
2025-06-13 15:23:03,033 [DEBUG][       Thread-259272][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 15:23:03,033 [DEBUG][       Thread-259272][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 15:23:03,033 [DEBUG][       Thread-259272][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 15:23:03,033 [DEBUG][       Thread-259272][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 15:23:03,052 [ INFO][       Thread-259272][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 15:23:03,052 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 15:23:03,052 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 15:23:04,069 [DEBUG][       Thread-259272][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 15:23:04,069 [DEBUG][       Thread-259272][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 15:23:04,120 [DEBUG][       Thread-259272][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 15:23:04,120 [DEBUG][       Thread-259272][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 15:23:04,129 [DEBUG][       Thread-259272][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 15:23:04,137 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 15:23:04,138 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 15:23:04,146 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 15:23:04,155 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 15:23:04,155 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 15:23:04,155 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 15:23:04,163 [DEBUG][       Thread-259272][   transport.py][1871] : EOF in transport thread
2025-06-13 15:23:08,618 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:23:08,619 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:23:08,793 [DEBUG][Thread-259274 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:23:14,165 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 15:23:14,166 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 15:23:14,166 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 15:23:14,167 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 15:23:14,629 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 15, 23, 10), 18.2, 28.12, 0.0, 19.94, 13.92, 0, 0, 0, 2, 0, 0),)
2025-06-13 15:23:14,629 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 15:23:10
2025-06-13 15:23:14,708 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 15:23:14,714 [DEBUG][       Thread-259275][   transport.py][1871] : starting thread (client mode): 0x86393370
2025-06-13 15:23:14,715 [DEBUG][       Thread-259275][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 15:23:14,735 [DEBUG][       Thread-259275][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 15:23:14,735 [ INFO][       Thread-259275][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 15:23:14,738 [DEBUG][       Thread-259275][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 15:23:14,739 [DEBUG][       Thread-259275][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 15:23:14,739 [DEBUG][       Thread-259275][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 15:23:14,739 [DEBUG][       Thread-259275][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:23:14,739 [DEBUG][       Thread-259275][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:23:14,739 [DEBUG][       Thread-259275][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:23:14,739 [DEBUG][       Thread-259275][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:23:14,739 [DEBUG][       Thread-259275][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 15:23:14,739 [DEBUG][       Thread-259275][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 15:23:14,739 [DEBUG][       Thread-259275][   transport.py][1871] : client lang: <none>
2025-06-13 15:23:14,739 [DEBUG][       Thread-259275][   transport.py][1871] : server lang: <none>
2025-06-13 15:23:14,739 [DEBUG][       Thread-259275][   transport.py][1871] : kex follows: False
2025-06-13 15:23:14,739 [DEBUG][       Thread-259275][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 15:23:14,739 [DEBUG][       Thread-259275][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 15:23:14,739 [DEBUG][       Thread-259275][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 15:23:14,739 [DEBUG][       Thread-259275][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 15:23:14,739 [DEBUG][       Thread-259275][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 15:23:14,739 [DEBUG][       Thread-259275][   transport.py][1871] : Compression: none
2025-06-13 15:23:14,739 [DEBUG][       Thread-259275][   transport.py][1871] : === End of kex handshake ===
2025-06-13 15:23:14,755 [DEBUG][       Thread-259275][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 15:23:14,756 [DEBUG][       Thread-259275][   transport.py][1871] : Switch to new keys ...
2025-06-13 15:23:14,756 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 15:23:14,756 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 15:23:14,757 [DEBUG][       Thread-259275][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 15:23:14,757 [DEBUG][       Thread-259275][   transport.py][1871] : userauth is OK
2025-06-13 15:23:14,770 [ INFO][       Thread-259275][   transport.py][1871] : Authentication (password) successful!
2025-06-13 15:23:14,770 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 15:23:15,426 [DEBUG][       Thread-259275][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 15:23:15,426 [DEBUG][       Thread-259275][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 15:23:15,469 [DEBUG][       Thread-259275][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 15:23:15,469 [DEBUG][       Thread-259275][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 15:23:15,472 [DEBUG][       Thread-259275][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 15:23:15,484 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 15:23:15,485 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 15:23:15,487 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 15:23:15,489 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 15:23:15,495 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 15:23:15,497 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 15:23:15,497 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 15:23:15,498 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 15:23:15,498 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.557575 -999.00  +13.80  22.01     33   -2.00 1 1 1 1 1   887    0 16.24 17.15 ----- 21.1 22.0 57.0 26.1 17.1 -32.1 16.1 -34.3 16.9 -32.4 18.0 -30.3
2025-06-13 15:23:15,498 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 15:23:15,498 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 15:23:15,498 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.557575
2025-06-13 15:23:15,499 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 15:23:15,499 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 15:23:15,499 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 15:23:15,500 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 15:23:15,500 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 15:23:15,500 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T15:23:10', tmtdew=18.2, humidity=28.12, cloud=0.0, wind=19.94, temperature=13.92, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T13:22:54.480', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 15:23:15,501 [DEBUG][       Thread-259275][   transport.py][1871] : EOF in transport thread
2025-06-13 15:23:15,583 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 15:23:15,595 [DEBUG][       Thread-259278][   transport.py][1871] : starting thread (client mode): 0x863bd300
2025-06-13 15:23:15,596 [DEBUG][       Thread-259278][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 15:23:15,610 [DEBUG][       Thread-259278][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 15:23:15,610 [ INFO][       Thread-259278][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 15:23:15,624 [DEBUG][       Thread-259278][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 15:23:15,625 [DEBUG][       Thread-259278][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 15:23:15,625 [DEBUG][       Thread-259278][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 15:23:15,625 [DEBUG][       Thread-259278][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:23:15,625 [DEBUG][       Thread-259278][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:23:15,625 [DEBUG][       Thread-259278][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:23:15,625 [DEBUG][       Thread-259278][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:23:15,625 [DEBUG][       Thread-259278][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 15:23:15,625 [DEBUG][       Thread-259278][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 15:23:15,625 [DEBUG][       Thread-259278][   transport.py][1871] : client lang: <none>
2025-06-13 15:23:15,625 [DEBUG][       Thread-259278][   transport.py][1871] : server lang: <none>
2025-06-13 15:23:15,625 [DEBUG][       Thread-259278][   transport.py][1871] : kex follows: False
2025-06-13 15:23:15,625 [DEBUG][       Thread-259278][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 15:23:15,625 [DEBUG][       Thread-259278][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 15:23:15,626 [DEBUG][       Thread-259278][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 15:23:15,626 [DEBUG][       Thread-259278][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 15:23:15,626 [DEBUG][       Thread-259278][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 15:23:15,626 [DEBUG][       Thread-259278][   transport.py][1871] : Compression: none
2025-06-13 15:23:15,626 [DEBUG][       Thread-259278][   transport.py][1871] : === End of kex handshake ===
2025-06-13 15:23:15,678 [DEBUG][       Thread-259278][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 15:23:15,679 [DEBUG][       Thread-259278][   transport.py][1871] : Switch to new keys ...
2025-06-13 15:23:15,679 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 15:23:15,680 [DEBUG][       Thread-259278][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 15:23:15,681 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 15:23:15,734 [DEBUG][       Thread-259278][   transport.py][1871] : userauth is OK
2025-06-13 15:23:15,734 [DEBUG][       Thread-259278][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 15:23:15,734 [DEBUG][       Thread-259278][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 15:23:15,734 [DEBUG][       Thread-259278][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 15:23:15,734 [DEBUG][       Thread-259278][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 15:23:15,753 [ INFO][       Thread-259278][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 15:23:15,753 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 15:23:15,754 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 15:23:16,735 [DEBUG][       Thread-259278][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 15:23:16,735 [DEBUG][       Thread-259278][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 15:23:16,784 [DEBUG][       Thread-259278][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 15:23:16,784 [DEBUG][       Thread-259278][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 15:23:16,794 [DEBUG][       Thread-259278][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 15:23:16,803 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 15:23:16,803 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 15:23:16,813 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 15:23:16,823 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 15:23:16,823 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 15:23:16,823 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 15:23:16,831 [DEBUG][       Thread-259278][   transport.py][1871] : EOF in transport thread
2025-06-13 15:23:17,812 [DEBUG][Thread-259280 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:23:20,897 [DEBUG][Thread-259281 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:23:26,834 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 15:23:26,834 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 15:23:26,834 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 15:23:26,837 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 15:23:26,847 [DEBUG][Thread-259282 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:23:27,301 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 15, 23, 10), 18.2, 28.12, 0.0, 19.94, 13.92, 0, 0, 0, 2, 0, 0),)
2025-06-13 15:23:27,301 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 15:23:10
2025-06-13 15:23:27,380 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 15:23:27,384 [DEBUG][       Thread-259283][   transport.py][1871] : starting thread (client mode): 0x86392410
2025-06-13 15:23:27,384 [DEBUG][       Thread-259283][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 15:23:27,406 [DEBUG][       Thread-259283][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 15:23:27,407 [ INFO][       Thread-259283][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 15:23:27,410 [DEBUG][       Thread-259283][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 15:23:27,410 [DEBUG][       Thread-259283][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 15:23:27,410 [DEBUG][       Thread-259283][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 15:23:27,410 [DEBUG][       Thread-259283][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:23:27,410 [DEBUG][       Thread-259283][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:23:27,410 [DEBUG][       Thread-259283][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:23:27,410 [DEBUG][       Thread-259283][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:23:27,410 [DEBUG][       Thread-259283][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 15:23:27,410 [DEBUG][       Thread-259283][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 15:23:27,410 [DEBUG][       Thread-259283][   transport.py][1871] : client lang: <none>
2025-06-13 15:23:27,410 [DEBUG][       Thread-259283][   transport.py][1871] : server lang: <none>
2025-06-13 15:23:27,410 [DEBUG][       Thread-259283][   transport.py][1871] : kex follows: False
2025-06-13 15:23:27,410 [DEBUG][       Thread-259283][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 15:23:27,410 [DEBUG][       Thread-259283][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 15:23:27,410 [DEBUG][       Thread-259283][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 15:23:27,410 [DEBUG][       Thread-259283][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 15:23:27,410 [DEBUG][       Thread-259283][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 15:23:27,410 [DEBUG][       Thread-259283][   transport.py][1871] : Compression: none
2025-06-13 15:23:27,411 [DEBUG][       Thread-259283][   transport.py][1871] : === End of kex handshake ===
2025-06-13 15:23:27,428 [DEBUG][       Thread-259283][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 15:23:27,428 [DEBUG][       Thread-259283][   transport.py][1871] : Switch to new keys ...
2025-06-13 15:23:27,429 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 15:23:27,429 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 15:23:27,429 [DEBUG][       Thread-259283][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 15:23:27,430 [DEBUG][       Thread-259283][   transport.py][1871] : userauth is OK
2025-06-13 15:23:27,455 [ INFO][       Thread-259283][   transport.py][1871] : Authentication (password) successful!
2025-06-13 15:23:27,455 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 15:23:28,092 [DEBUG][       Thread-259283][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 15:23:28,092 [DEBUG][       Thread-259283][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 15:23:28,138 [DEBUG][       Thread-259283][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 15:23:28,138 [DEBUG][       Thread-259283][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 15:23:28,141 [DEBUG][       Thread-259283][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 15:23:28,154 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 15:23:28,154 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 15:23:28,156 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 15:23:28,159 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 15:23:28,165 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 15:23:28,167 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 15:23:28,167 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 15:23:28,168 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 15:23:28,168 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.557575 -999.00  +13.80  22.01     33   -2.00 1 1 1 1 1   887    0 16.24 17.15 ----- 21.1 22.0 57.0 26.1 17.1 -32.1 16.1 -34.3 16.9 -32.4 18.0 -30.3
2025-06-13 15:23:28,168 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 15:23:28,168 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 15:23:28,168 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.557575
2025-06-13 15:23:28,169 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 15:23:28,169 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 15:23:28,170 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 15:23:28,170 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 15:23:28,170 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 15:23:28,170 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T15:23:10', tmtdew=18.2, humidity=28.12, cloud=0.0, wind=19.94, temperature=13.92, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T13:22:54.480', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 15:23:28,171 [DEBUG][       Thread-259283][   transport.py][1871] : EOF in transport thread
2025-06-13 15:23:28,253 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 15:23:28,265 [DEBUG][       Thread-259286][   transport.py][1871] : starting thread (client mode): 0x863a5900
2025-06-13 15:23:28,265 [DEBUG][       Thread-259286][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 15:23:28,282 [DEBUG][       Thread-259286][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 15:23:28,282 [ INFO][       Thread-259286][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 15:23:28,293 [DEBUG][       Thread-259286][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 15:23:28,293 [DEBUG][       Thread-259286][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 15:23:28,293 [DEBUG][       Thread-259286][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 15:23:28,293 [DEBUG][       Thread-259286][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:23:28,293 [DEBUG][       Thread-259286][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:23:28,293 [DEBUG][       Thread-259286][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:23:28,293 [DEBUG][       Thread-259286][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:23:28,293 [DEBUG][       Thread-259286][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 15:23:28,293 [DEBUG][       Thread-259286][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 15:23:28,293 [DEBUG][       Thread-259286][   transport.py][1871] : client lang: <none>
2025-06-13 15:23:28,293 [DEBUG][       Thread-259286][   transport.py][1871] : server lang: <none>
2025-06-13 15:23:28,293 [DEBUG][       Thread-259286][   transport.py][1871] : kex follows: False
2025-06-13 15:23:28,293 [DEBUG][       Thread-259286][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 15:23:28,294 [DEBUG][       Thread-259286][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 15:23:28,294 [DEBUG][       Thread-259286][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 15:23:28,294 [DEBUG][       Thread-259286][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 15:23:28,294 [DEBUG][       Thread-259286][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 15:23:28,294 [DEBUG][       Thread-259286][   transport.py][1871] : Compression: none
2025-06-13 15:23:28,294 [DEBUG][       Thread-259286][   transport.py][1871] : === End of kex handshake ===
2025-06-13 15:23:28,350 [DEBUG][       Thread-259286][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 15:23:28,351 [DEBUG][       Thread-259286][   transport.py][1871] : Switch to new keys ...
2025-06-13 15:23:28,351 [DEBUG][       Thread-259286][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 15:23:28,352 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 15:23:28,352 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 15:23:28,417 [DEBUG][       Thread-259286][   transport.py][1871] : userauth is OK
2025-06-13 15:23:28,417 [DEBUG][       Thread-259286][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 15:23:28,417 [DEBUG][       Thread-259286][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 15:23:28,417 [DEBUG][       Thread-259286][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 15:23:28,417 [DEBUG][       Thread-259286][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 15:23:28,439 [ INFO][       Thread-259286][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 15:23:28,439 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 15:23:28,440 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 15:23:29,551 [DEBUG][       Thread-259286][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 15:23:29,552 [DEBUG][       Thread-259286][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 15:23:29,599 [DEBUG][       Thread-259286][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 15:23:29,599 [DEBUG][       Thread-259286][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 15:23:29,608 [DEBUG][       Thread-259286][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 15:23:29,616 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 15:23:29,616 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 15:23:29,624 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 15:23:29,631 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 15:23:29,631 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 15:23:29,632 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 15:23:29,642 [DEBUG][       Thread-259286][   transport.py][1871] : EOF in transport thread
2025-06-13 15:23:35,868 [DEBUG][Thread-259288 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:23:39,642 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 15:23:39,642 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 15:23:39,642 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 15:23:39,645 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 15:23:40,101 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 15, 23, 10), 18.2, 28.12, 0.0, 19.94, 13.92, 0, 0, 0, 2, 0, 0),)
2025-06-13 15:23:40,101 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 15:23:10
2025-06-13 15:23:40,182 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 15:23:40,187 [DEBUG][       Thread-259289][   transport.py][1871] : starting thread (client mode): 0x86390250
2025-06-13 15:23:40,187 [DEBUG][       Thread-259289][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 15:23:40,208 [DEBUG][       Thread-259289][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 15:23:40,209 [ INFO][       Thread-259289][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 15:23:40,212 [DEBUG][       Thread-259289][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 15:23:40,212 [DEBUG][       Thread-259289][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 15:23:40,212 [DEBUG][       Thread-259289][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 15:23:40,212 [DEBUG][       Thread-259289][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:23:40,212 [DEBUG][       Thread-259289][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:23:40,212 [DEBUG][       Thread-259289][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:23:40,212 [DEBUG][       Thread-259289][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:23:40,212 [DEBUG][       Thread-259289][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 15:23:40,212 [DEBUG][       Thread-259289][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 15:23:40,212 [DEBUG][       Thread-259289][   transport.py][1871] : client lang: <none>
2025-06-13 15:23:40,212 [DEBUG][       Thread-259289][   transport.py][1871] : server lang: <none>
2025-06-13 15:23:40,212 [DEBUG][       Thread-259289][   transport.py][1871] : kex follows: False
2025-06-13 15:23:40,212 [DEBUG][       Thread-259289][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 15:23:40,212 [DEBUG][       Thread-259289][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 15:23:40,212 [DEBUG][       Thread-259289][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 15:23:40,213 [DEBUG][       Thread-259289][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 15:23:40,213 [DEBUG][       Thread-259289][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 15:23:40,213 [DEBUG][       Thread-259289][   transport.py][1871] : Compression: none
2025-06-13 15:23:40,213 [DEBUG][       Thread-259289][   transport.py][1871] : === End of kex handshake ===
2025-06-13 15:23:40,222 [DEBUG][       Thread-259289][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 15:23:40,222 [DEBUG][       Thread-259289][   transport.py][1871] : Switch to new keys ...
2025-06-13 15:23:40,223 [DEBUG][       Thread-259289][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 15:23:40,223 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 15:23:40,223 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 15:23:40,224 [DEBUG][       Thread-259289][   transport.py][1871] : userauth is OK
2025-06-13 15:23:40,250 [ INFO][       Thread-259289][   transport.py][1871] : Authentication (password) successful!
2025-06-13 15:23:40,250 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 15:23:40,876 [DEBUG][       Thread-259289][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 15:23:40,876 [DEBUG][       Thread-259289][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 15:23:40,917 [DEBUG][       Thread-259289][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 15:23:40,917 [DEBUG][       Thread-259289][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 15:23:40,921 [DEBUG][       Thread-259289][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 15:23:40,934 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 15:23:40,934 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 15:23:40,937 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 15:23:40,939 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 15:23:40,945 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 15:23:40,947 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 15:23:40,947 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 15:23:40,948 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 15:23:40,948 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.557575 -999.00  +13.80  22.01     33   -2.00 1 1 1 1 1   887    0 16.24 17.15 ----- 21.1 22.0 57.0 26.1 17.1 -32.1 16.1 -34.3 16.9 -32.4 18.0 -30.3
2025-06-13 15:23:40,948 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 15:23:40,948 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 15:23:40,948 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.557575
2025-06-13 15:23:40,948 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 15:23:40,949 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 15:23:40,949 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 15:23:40,949 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 15:23:40,949 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 15:23:40,949 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T15:23:10', tmtdew=18.2, humidity=28.12, cloud=0.0, wind=19.94, temperature=13.92, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T13:22:54.480', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 15:23:40,949 [DEBUG][       Thread-259289][   transport.py][1871] : EOF in transport thread
2025-06-13 15:23:41,034 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 15:23:41,053 [DEBUG][       Thread-259292][   transport.py][1871] : starting thread (client mode): 0x863bc100
2025-06-13 15:23:41,053 [DEBUG][       Thread-259292][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 15:23:41,071 [DEBUG][       Thread-259292][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 15:23:41,072 [ INFO][       Thread-259292][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 15:23:41,081 [DEBUG][       Thread-259292][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 15:23:41,081 [DEBUG][       Thread-259292][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 15:23:41,082 [DEBUG][       Thread-259292][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 15:23:41,082 [DEBUG][       Thread-259292][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:23:41,082 [DEBUG][       Thread-259292][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:23:41,082 [DEBUG][       Thread-259292][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:23:41,082 [DEBUG][       Thread-259292][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:23:41,082 [DEBUG][       Thread-259292][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 15:23:41,082 [DEBUG][       Thread-259292][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 15:23:41,082 [DEBUG][       Thread-259292][   transport.py][1871] : client lang: <none>
2025-06-13 15:23:41,082 [DEBUG][       Thread-259292][   transport.py][1871] : server lang: <none>
2025-06-13 15:23:41,082 [DEBUG][       Thread-259292][   transport.py][1871] : kex follows: False
2025-06-13 15:23:41,082 [DEBUG][       Thread-259292][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 15:23:41,082 [DEBUG][       Thread-259292][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 15:23:41,082 [DEBUG][       Thread-259292][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 15:23:41,082 [DEBUG][       Thread-259292][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 15:23:41,082 [DEBUG][       Thread-259292][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 15:23:41,082 [DEBUG][       Thread-259292][   transport.py][1871] : Compression: none
2025-06-13 15:23:41,083 [DEBUG][       Thread-259292][   transport.py][1871] : === End of kex handshake ===
2025-06-13 15:23:41,143 [DEBUG][       Thread-259292][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 15:23:41,144 [DEBUG][       Thread-259292][   transport.py][1871] : Switch to new keys ...
2025-06-13 15:23:41,144 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 15:23:41,145 [DEBUG][       Thread-259292][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 15:23:41,146 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 15:23:41,208 [DEBUG][       Thread-259292][   transport.py][1871] : userauth is OK
2025-06-13 15:23:41,208 [DEBUG][       Thread-259292][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 15:23:41,208 [DEBUG][       Thread-259292][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 15:23:41,208 [DEBUG][       Thread-259292][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 15:23:41,208 [DEBUG][       Thread-259292][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 15:23:41,229 [ INFO][       Thread-259292][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 15:23:41,229 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 15:23:41,229 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 15:23:42,212 [DEBUG][       Thread-259292][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 15:23:42,213 [DEBUG][       Thread-259292][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 15:23:42,267 [DEBUG][       Thread-259292][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 15:23:42,268 [DEBUG][       Thread-259292][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 15:23:42,277 [DEBUG][       Thread-259292][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 15:23:42,285 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 15:23:42,285 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 15:23:42,293 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 15:23:42,300 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 15:23:42,301 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 15:23:42,301 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 15:23:42,308 [DEBUG][       Thread-259292][   transport.py][1871] : EOF in transport thread
2025-06-13 15:23:42,950 [DEBUG][Thread-259294 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:23:44,006 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:23:44,007 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:23:44,886 [DEBUG][Thread-259295 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:23:52,311 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 15:23:52,311 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 15:23:52,311 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 15:23:52,314 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 15:23:52,770 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 15, 23, 41), 18.14, 28.24, 0.0, 18.95, 13.89, 0, 0, 0, 2, 0, 0),)
2025-06-13 15:23:52,770 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 15:23:41
2025-06-13 15:23:52,850 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 15:23:52,854 [DEBUG][       Thread-259296][   transport.py][1871] : starting thread (client mode): 0x863ef5b0
2025-06-13 15:23:52,854 [DEBUG][       Thread-259296][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 15:23:52,875 [DEBUG][       Thread-259296][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 15:23:52,875 [ INFO][       Thread-259296][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 15:23:52,879 [DEBUG][       Thread-259296][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 15:23:52,879 [DEBUG][       Thread-259296][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 15:23:52,879 [DEBUG][       Thread-259296][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 15:23:52,879 [DEBUG][       Thread-259296][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:23:52,879 [DEBUG][       Thread-259296][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:23:52,879 [DEBUG][       Thread-259296][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:23:52,879 [DEBUG][       Thread-259296][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:23:52,879 [DEBUG][       Thread-259296][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 15:23:52,879 [DEBUG][       Thread-259296][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 15:23:52,879 [DEBUG][       Thread-259296][   transport.py][1871] : client lang: <none>
2025-06-13 15:23:52,879 [DEBUG][       Thread-259296][   transport.py][1871] : server lang: <none>
2025-06-13 15:23:52,879 [DEBUG][       Thread-259296][   transport.py][1871] : kex follows: False
2025-06-13 15:23:52,879 [DEBUG][       Thread-259296][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 15:23:52,879 [DEBUG][       Thread-259296][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 15:23:52,880 [DEBUG][       Thread-259296][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 15:23:52,880 [DEBUG][       Thread-259296][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 15:23:52,880 [DEBUG][       Thread-259296][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 15:23:52,880 [DEBUG][       Thread-259296][   transport.py][1871] : Compression: none
2025-06-13 15:23:52,880 [DEBUG][       Thread-259296][   transport.py][1871] : === End of kex handshake ===
2025-06-13 15:23:52,898 [DEBUG][       Thread-259296][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 15:23:52,898 [DEBUG][       Thread-259296][   transport.py][1871] : Switch to new keys ...
2025-06-13 15:23:52,899 [DEBUG][       Thread-259296][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 15:23:52,899 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 15:23:52,899 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 15:23:52,900 [DEBUG][       Thread-259296][   transport.py][1871] : userauth is OK
2025-06-13 15:23:52,913 [ INFO][       Thread-259296][   transport.py][1871] : Authentication (password) successful!
2025-06-13 15:23:52,914 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 15:23:53,578 [DEBUG][       Thread-259296][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 15:23:53,578 [DEBUG][       Thread-259296][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 15:23:53,621 [DEBUG][       Thread-259296][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 15:23:53,621 [DEBUG][       Thread-259296][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 15:23:53,625 [DEBUG][       Thread-259296][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 15:23:53,639 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 15:23:53,640 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 15:23:53,642 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 15:23:53,644 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 15:23:53,650 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 15:23:53,652 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 15:23:53,652 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 15:23:53,653 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 15:23:53,653 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.557922 -999.00  +13.70  25.29     33   -2.10 1 1 1 1 1   887    0 16.18 14.86 ----- 25.7 25.3 54.4 32.3 17.1 -32.0 16.1 -33.5 16.8 -33.5 18.0 -30.7
2025-06-13 15:23:53,653 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 15:23:53,653 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 15:23:53,653 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.557922
2025-06-13 15:23:53,653 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 15:23:53,654 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 15:23:53,654 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 15:23:53,654 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 15:23:53,654 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 15:23:53,654 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T15:23:41', tmtdew=18.14, humidity=28.24, cloud=0.0, wind=18.95, temperature=13.89, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T13:23:24.461', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 15:23:53,656 [DEBUG][       Thread-259296][   transport.py][1871] : EOF in transport thread
2025-06-13 15:23:53,733 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 15:23:53,905 [DEBUG][Thread-259299 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:24:02,942 [DEBUG][Thread-259300 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:24:08,760 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:24:08,761 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:24:11,967 [DEBUG][Thread-259301 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:24:20,950 [DEBUG][Thread-259302 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:24:20,987 [DEBUG][Thread-259303 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:24:30,007 [DEBUG][Thread-259304 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:24:39,029 [DEBUG][Thread-259305 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:24:44,082 [DEBUG][Thread-259306 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:24:45,133 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:24:45,134 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:24:48,051 [DEBUG][Thread-259307 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:24:57,073 [DEBUG][Thread-259308 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:25:06,090 [DEBUG][Thread-259309 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:25:08,899 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:25:08,900 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:25:15,108 [DEBUG][Thread-259310 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:25:21,002 [DEBUG][Thread-259311 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:25:24,128 [DEBUG][Thread-259312 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:25:33,152 [DEBUG][Thread-259313 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:25:42,172 [DEBUG][Thread-259314 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:25:45,207 [DEBUG][Thread-259315 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:25:46,285 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:25:46,286 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:25:51,193 [DEBUG][Thread-259316 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:26:00,215 [DEBUG][Thread-259317 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:26:03,796 [WARNING][ poll_weather_worker][      driver.py][ 286] : Unable to open ssh connection for writing weather state to io.saao.ac.za: [Errno 110] Connection timed out
2025-06-13 15:26:09,039 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:26:09,041 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:26:09,240 [DEBUG][Thread-259318 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:26:13,807 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 15:26:13,807 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 15:26:13,807 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 15:26:13,811 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 15:26:14,307 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 15, 25, 48), 18.33, 27.87, 0.0, 20.24, 13.77, 0, 0, 0, 2, 0, 0),)
2025-06-13 15:26:14,307 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 15:25:48
2025-06-13 15:26:14,389 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 15:26:14,396 [DEBUG][       Thread-259319][   transport.py][1871] : starting thread (client mode): 0x863a6410
2025-06-13 15:26:14,397 [DEBUG][       Thread-259319][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 15:26:14,418 [DEBUG][       Thread-259319][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 15:26:14,418 [ INFO][       Thread-259319][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 15:26:14,421 [DEBUG][       Thread-259319][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 15:26:14,421 [DEBUG][       Thread-259319][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 15:26:14,421 [DEBUG][       Thread-259319][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 15:26:14,421 [DEBUG][       Thread-259319][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:26:14,421 [DEBUG][       Thread-259319][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:26:14,421 [DEBUG][       Thread-259319][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:26:14,421 [DEBUG][       Thread-259319][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:26:14,421 [DEBUG][       Thread-259319][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 15:26:14,421 [DEBUG][       Thread-259319][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 15:26:14,421 [DEBUG][       Thread-259319][   transport.py][1871] : client lang: <none>
2025-06-13 15:26:14,421 [DEBUG][       Thread-259319][   transport.py][1871] : server lang: <none>
2025-06-13 15:26:14,421 [DEBUG][       Thread-259319][   transport.py][1871] : kex follows: False
2025-06-13 15:26:14,421 [DEBUG][       Thread-259319][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 15:26:14,421 [DEBUG][       Thread-259319][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 15:26:14,421 [DEBUG][       Thread-259319][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 15:26:14,421 [DEBUG][       Thread-259319][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 15:26:14,421 [DEBUG][       Thread-259319][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 15:26:14,421 [DEBUG][       Thread-259319][   transport.py][1871] : Compression: none
2025-06-13 15:26:14,421 [DEBUG][       Thread-259319][   transport.py][1871] : === End of kex handshake ===
2025-06-13 15:26:14,438 [DEBUG][       Thread-259319][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 15:26:14,439 [DEBUG][       Thread-259319][   transport.py][1871] : Switch to new keys ...
2025-06-13 15:26:14,439 [DEBUG][       Thread-259319][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 15:26:14,440 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 15:26:14,440 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 15:26:14,441 [DEBUG][       Thread-259319][   transport.py][1871] : userauth is OK
2025-06-13 15:26:14,454 [ INFO][       Thread-259319][   transport.py][1871] : Authentication (password) successful!
2025-06-13 15:26:14,454 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 15:26:15,112 [DEBUG][       Thread-259319][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 15:26:15,112 [DEBUG][       Thread-259319][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 15:26:15,153 [DEBUG][       Thread-259319][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 15:26:15,153 [DEBUG][       Thread-259319][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 15:26:15,156 [DEBUG][       Thread-259319][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 15:26:15,169 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 15:26:15,170 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 15:26:15,172 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 15:26:15,174 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 15:26:15,179 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 15:26:15,181 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 15:26:15,181 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 15:26:15,182 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 15:26:15,182 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.559658 -999.00  +13.70  23.39     32   -2.50 1 1 1 1 1   887    0 16.05 9.35 ----- 26.0 23.4 53.8 28.8 17.0 -32.2 16.0 -34.1 16.8 -32.6 17.9 -29.9
2025-06-13 15:26:15,182 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 15:26:15,182 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 15:26:15,182 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.559658
2025-06-13 15:26:15,182 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 15:26:15,183 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 15:26:15,183 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 15:26:15,183 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 15:26:15,183 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 15:26:15,183 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T15:25:48', tmtdew=18.33, humidity=27.87, cloud=0.0, wind=20.24, temperature=13.77, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T13:25:54.451', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 15:26:15,184 [DEBUG][       Thread-259319][   transport.py][1871] : EOF in transport thread
2025-06-13 15:26:15,267 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 15:26:15,280 [DEBUG][       Thread-259322][   transport.py][1871] : starting thread (client mode): 0x867b6410
2025-06-13 15:26:15,280 [DEBUG][       Thread-259322][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 15:26:15,295 [DEBUG][       Thread-259322][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 15:26:15,295 [ INFO][       Thread-259322][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 15:26:15,303 [DEBUG][       Thread-259322][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 15:26:15,303 [DEBUG][       Thread-259322][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 15:26:15,304 [DEBUG][       Thread-259322][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 15:26:15,304 [DEBUG][       Thread-259322][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:26:15,304 [DEBUG][       Thread-259322][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:26:15,304 [DEBUG][       Thread-259322][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:26:15,304 [DEBUG][       Thread-259322][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:26:15,304 [DEBUG][       Thread-259322][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 15:26:15,304 [DEBUG][       Thread-259322][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 15:26:15,304 [DEBUG][       Thread-259322][   transport.py][1871] : client lang: <none>
2025-06-13 15:26:15,304 [DEBUG][       Thread-259322][   transport.py][1871] : server lang: <none>
2025-06-13 15:26:15,304 [DEBUG][       Thread-259322][   transport.py][1871] : kex follows: False
2025-06-13 15:26:15,304 [DEBUG][       Thread-259322][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 15:26:15,304 [DEBUG][       Thread-259322][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 15:26:15,304 [DEBUG][       Thread-259322][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 15:26:15,304 [DEBUG][       Thread-259322][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 15:26:15,304 [DEBUG][       Thread-259322][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 15:26:15,304 [DEBUG][       Thread-259322][   transport.py][1871] : Compression: none
2025-06-13 15:26:15,304 [DEBUG][       Thread-259322][   transport.py][1871] : === End of kex handshake ===
2025-06-13 15:26:15,364 [DEBUG][       Thread-259322][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 15:26:15,364 [DEBUG][       Thread-259322][   transport.py][1871] : Switch to new keys ...
2025-06-13 15:26:15,365 [DEBUG][       Thread-259322][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 15:26:15,365 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 15:26:15,366 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 15:26:15,421 [DEBUG][       Thread-259322][   transport.py][1871] : userauth is OK
2025-06-13 15:26:15,422 [DEBUG][       Thread-259322][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 15:26:15,422 [DEBUG][       Thread-259322][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 15:26:15,422 [DEBUG][       Thread-259322][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 15:26:15,422 [DEBUG][       Thread-259322][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 15:26:15,441 [ INFO][       Thread-259322][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 15:26:15,442 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 15:26:15,442 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 15:26:16,413 [DEBUG][       Thread-259322][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 15:26:16,414 [DEBUG][       Thread-259322][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 15:26:16,463 [DEBUG][       Thread-259322][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 15:26:16,463 [DEBUG][       Thread-259322][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 15:26:16,471 [DEBUG][       Thread-259322][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 15:26:16,479 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 15:26:16,479 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 15:26:16,487 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 15:26:16,495 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 15:26:16,495 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 15:26:16,495 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 15:26:16,503 [DEBUG][       Thread-259322][   transport.py][1871] : EOF in transport thread
2025-06-13 15:26:18,260 [DEBUG][Thread-259324 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:26:21,051 [DEBUG][Thread-259325 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:26:26,505 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 15:26:26,506 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 15:26:26,506 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 15:26:26,509 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 15:26:27,003 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 15, 26, 20), 18.33, 27.94, 0.0, 12.14, 13.83, 0, 0, 0, 2, 0, 0),)
2025-06-13 15:26:27,003 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 15:26:20
2025-06-13 15:26:27,084 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 15:26:27,088 [DEBUG][       Thread-259326][   transport.py][1871] : starting thread (client mode): 0x863bd690
2025-06-13 15:26:27,088 [DEBUG][       Thread-259326][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 15:26:27,109 [DEBUG][       Thread-259326][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 15:26:27,109 [ INFO][       Thread-259326][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 15:26:27,112 [DEBUG][       Thread-259326][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 15:26:27,112 [DEBUG][       Thread-259326][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 15:26:27,112 [DEBUG][       Thread-259326][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 15:26:27,112 [DEBUG][       Thread-259326][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:26:27,112 [DEBUG][       Thread-259326][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:26:27,112 [DEBUG][       Thread-259326][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:26:27,112 [DEBUG][       Thread-259326][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:26:27,112 [DEBUG][       Thread-259326][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 15:26:27,112 [DEBUG][       Thread-259326][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 15:26:27,112 [DEBUG][       Thread-259326][   transport.py][1871] : client lang: <none>
2025-06-13 15:26:27,113 [DEBUG][       Thread-259326][   transport.py][1871] : server lang: <none>
2025-06-13 15:26:27,113 [DEBUG][       Thread-259326][   transport.py][1871] : kex follows: False
2025-06-13 15:26:27,113 [DEBUG][       Thread-259326][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 15:26:27,113 [DEBUG][       Thread-259326][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 15:26:27,113 [DEBUG][       Thread-259326][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 15:26:27,113 [DEBUG][       Thread-259326][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 15:26:27,113 [DEBUG][       Thread-259326][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 15:26:27,113 [DEBUG][       Thread-259326][   transport.py][1871] : Compression: none
2025-06-13 15:26:27,113 [DEBUG][       Thread-259326][   transport.py][1871] : === End of kex handshake ===
2025-06-13 15:26:27,130 [DEBUG][       Thread-259326][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 15:26:27,130 [DEBUG][       Thread-259326][   transport.py][1871] : Switch to new keys ...
2025-06-13 15:26:27,131 [DEBUG][       Thread-259326][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 15:26:27,131 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 15:26:27,131 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 15:26:27,133 [DEBUG][       Thread-259326][   transport.py][1871] : userauth is OK
2025-06-13 15:26:27,157 [ INFO][       Thread-259326][   transport.py][1871] : Authentication (password) successful!
2025-06-13 15:26:27,157 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 15:26:27,285 [DEBUG][Thread-259328 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:26:27,859 [DEBUG][       Thread-259326][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 15:26:27,859 [DEBUG][       Thread-259326][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 15:26:27,901 [DEBUG][       Thread-259326][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 15:26:27,901 [DEBUG][       Thread-259326][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 15:26:27,905 [DEBUG][       Thread-259326][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 15:26:27,917 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 15:26:27,917 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 15:26:27,919 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 15:26:27,921 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 15:26:27,927 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 15:26:27,929 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 15:26:27,929 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 15:26:27,930 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 15:26:27,930 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.559658 -999.00  +13.70  23.39     32   -2.50 1 1 1 1 1   887    0 16.05 9.35 ----- 26.0 23.4 53.8 28.8 17.0 -32.2 16.0 -34.1 16.8 -32.6 17.9 -29.9
2025-06-13 15:26:27,930 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 15:26:27,930 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 15:26:27,931 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.559658
2025-06-13 15:26:27,931 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 15:26:27,932 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 15:26:27,932 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 15:26:27,932 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 15:26:27,932 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 15:26:27,932 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T15:26:20', tmtdew=18.33, humidity=27.94, cloud=0.0, wind=12.14, temperature=13.83, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T13:25:54.451', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 15:26:27,932 [DEBUG][       Thread-259326][   transport.py][1871] : EOF in transport thread
2025-06-13 15:26:28,018 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 15:26:28,028 [DEBUG][       Thread-259330][   transport.py][1871] : starting thread (client mode): 0x863a6050
2025-06-13 15:26:28,028 [DEBUG][       Thread-259330][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 15:26:28,042 [DEBUG][       Thread-259330][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 15:26:28,042 [ INFO][       Thread-259330][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 15:26:28,050 [DEBUG][       Thread-259330][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 15:26:28,050 [DEBUG][       Thread-259330][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 15:26:28,050 [DEBUG][       Thread-259330][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 15:26:28,050 [DEBUG][       Thread-259330][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:26:28,050 [DEBUG][       Thread-259330][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:26:28,050 [DEBUG][       Thread-259330][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:26:28,050 [DEBUG][       Thread-259330][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:26:28,050 [DEBUG][       Thread-259330][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 15:26:28,050 [DEBUG][       Thread-259330][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 15:26:28,050 [DEBUG][       Thread-259330][   transport.py][1871] : client lang: <none>
2025-06-13 15:26:28,050 [DEBUG][       Thread-259330][   transport.py][1871] : server lang: <none>
2025-06-13 15:26:28,050 [DEBUG][       Thread-259330][   transport.py][1871] : kex follows: False
2025-06-13 15:26:28,050 [DEBUG][       Thread-259330][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 15:26:28,050 [DEBUG][       Thread-259330][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 15:26:28,050 [DEBUG][       Thread-259330][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 15:26:28,050 [DEBUG][       Thread-259330][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 15:26:28,050 [DEBUG][       Thread-259330][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 15:26:28,051 [DEBUG][       Thread-259330][   transport.py][1871] : Compression: none
2025-06-13 15:26:28,051 [DEBUG][       Thread-259330][   transport.py][1871] : === End of kex handshake ===
2025-06-13 15:26:28,114 [DEBUG][       Thread-259330][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 15:26:28,114 [DEBUG][       Thread-259330][   transport.py][1871] : Switch to new keys ...
2025-06-13 15:26:28,115 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 15:26:28,115 [DEBUG][       Thread-259330][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 15:26:28,116 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 15:26:28,188 [DEBUG][       Thread-259330][   transport.py][1871] : userauth is OK
2025-06-13 15:26:28,188 [DEBUG][       Thread-259330][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 15:26:28,188 [DEBUG][       Thread-259330][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 15:26:28,188 [DEBUG][       Thread-259330][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 15:26:28,188 [DEBUG][       Thread-259330][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 15:26:28,207 [ INFO][       Thread-259330][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 15:26:28,207 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 15:26:28,207 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 15:26:29,244 [DEBUG][       Thread-259330][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 15:26:29,244 [DEBUG][       Thread-259330][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 15:26:29,292 [DEBUG][       Thread-259330][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 15:26:29,292 [DEBUG][       Thread-259330][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 15:26:29,302 [DEBUG][       Thread-259330][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 15:26:29,311 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 15:26:29,311 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 15:26:29,322 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 15:26:29,334 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 15:26:29,334 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 15:26:29,334 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 15:26:29,342 [DEBUG][       Thread-259330][   transport.py][1871] : EOF in transport thread
2025-06-13 15:26:36,306 [DEBUG][Thread-259332 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:26:39,345 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 15:26:39,345 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 15:26:39,345 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 15:26:39,348 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 15:26:39,827 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 15, 26, 20), 18.33, 27.94, 0.0, 12.14, 13.83, 0, 0, 0, 2, 0, 0),)
2025-06-13 15:26:39,827 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 15:26:20
2025-06-13 15:26:39,908 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 15:26:39,914 [DEBUG][       Thread-259333][   transport.py][1871] : starting thread (client mode): 0x863a40a0
2025-06-13 15:26:39,914 [DEBUG][       Thread-259333][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 15:26:39,934 [DEBUG][       Thread-259333][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 15:26:39,934 [ INFO][       Thread-259333][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 15:26:39,938 [DEBUG][       Thread-259333][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 15:26:39,938 [DEBUG][       Thread-259333][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 15:26:39,938 [DEBUG][       Thread-259333][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 15:26:39,938 [DEBUG][       Thread-259333][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:26:39,938 [DEBUG][       Thread-259333][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:26:39,938 [DEBUG][       Thread-259333][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:26:39,938 [DEBUG][       Thread-259333][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:26:39,938 [DEBUG][       Thread-259333][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 15:26:39,938 [DEBUG][       Thread-259333][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 15:26:39,938 [DEBUG][       Thread-259333][   transport.py][1871] : client lang: <none>
2025-06-13 15:26:39,938 [DEBUG][       Thread-259333][   transport.py][1871] : server lang: <none>
2025-06-13 15:26:39,939 [DEBUG][       Thread-259333][   transport.py][1871] : kex follows: False
2025-06-13 15:26:39,939 [DEBUG][       Thread-259333][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 15:26:39,939 [DEBUG][       Thread-259333][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 15:26:39,939 [DEBUG][       Thread-259333][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 15:26:39,939 [DEBUG][       Thread-259333][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 15:26:39,939 [DEBUG][       Thread-259333][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 15:26:39,939 [DEBUG][       Thread-259333][   transport.py][1871] : Compression: none
2025-06-13 15:26:39,939 [DEBUG][       Thread-259333][   transport.py][1871] : === End of kex handshake ===
2025-06-13 15:26:39,955 [DEBUG][       Thread-259333][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 15:26:39,956 [DEBUG][       Thread-259333][   transport.py][1871] : Switch to new keys ...
2025-06-13 15:26:39,956 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 15:26:39,956 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 15:26:39,957 [DEBUG][       Thread-259333][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 15:26:39,957 [DEBUG][       Thread-259333][   transport.py][1871] : userauth is OK
2025-06-13 15:26:39,981 [ INFO][       Thread-259333][   transport.py][1871] : Authentication (password) successful!
2025-06-13 15:26:39,982 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 15:26:40,621 [DEBUG][       Thread-259333][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 15:26:40,621 [DEBUG][       Thread-259333][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 15:26:40,665 [DEBUG][       Thread-259333][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 15:26:40,665 [DEBUG][       Thread-259333][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 15:26:40,668 [DEBUG][       Thread-259333][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 15:26:40,682 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 15:26:40,682 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 15:26:40,684 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 15:26:40,686 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 15:26:40,692 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 15:26:40,694 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 15:26:40,694 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 15:26:40,694 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 15:26:40,695 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.560005 -999.00  +13.60  23.68     32   -2.40 1 1 1 1 1   887    0 16.01 10.32 ----- 21.5 23.7 56.2 25.6 17.1 -31.4 16.0 -33.4 16.8 -31.6 17.9 -30.1
2025-06-13 15:26:40,695 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 15:26:40,695 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 15:26:40,695 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.560005
2025-06-13 15:26:40,695 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 15:26:40,696 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 15:26:40,696 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 15:26:40,696 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 15:26:40,696 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 15:26:40,696 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T15:26:20', tmtdew=18.33, humidity=27.94, cloud=0.0, wind=12.14, temperature=13.83, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T13:26:24.432', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 15:26:40,698 [DEBUG][       Thread-259333][   transport.py][1871] : EOF in transport thread
2025-06-13 15:26:40,780 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 15:26:40,791 [DEBUG][       Thread-259336][   transport.py][1871] : starting thread (client mode): 0x867b7640
2025-06-13 15:26:40,791 [DEBUG][       Thread-259336][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 15:26:40,806 [DEBUG][       Thread-259336][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 15:26:40,806 [ INFO][       Thread-259336][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 15:26:40,814 [DEBUG][       Thread-259336][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 15:26:40,814 [DEBUG][       Thread-259336][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 15:26:40,814 [DEBUG][       Thread-259336][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 15:26:40,814 [DEBUG][       Thread-259336][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:26:40,814 [DEBUG][       Thread-259336][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:26:40,814 [DEBUG][       Thread-259336][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:26:40,814 [DEBUG][       Thread-259336][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:26:40,814 [DEBUG][       Thread-259336][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 15:26:40,814 [DEBUG][       Thread-259336][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 15:26:40,814 [DEBUG][       Thread-259336][   transport.py][1871] : client lang: <none>
2025-06-13 15:26:40,814 [DEBUG][       Thread-259336][   transport.py][1871] : server lang: <none>
2025-06-13 15:26:40,814 [DEBUG][       Thread-259336][   transport.py][1871] : kex follows: False
2025-06-13 15:26:40,814 [DEBUG][       Thread-259336][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 15:26:40,815 [DEBUG][       Thread-259336][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 15:26:40,815 [DEBUG][       Thread-259336][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 15:26:40,815 [DEBUG][       Thread-259336][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 15:26:40,815 [DEBUG][       Thread-259336][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 15:26:40,815 [DEBUG][       Thread-259336][   transport.py][1871] : Compression: none
2025-06-13 15:26:40,815 [DEBUG][       Thread-259336][   transport.py][1871] : === End of kex handshake ===
2025-06-13 15:26:40,876 [DEBUG][       Thread-259336][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 15:26:40,877 [DEBUG][       Thread-259336][   transport.py][1871] : Switch to new keys ...
2025-06-13 15:26:40,878 [DEBUG][       Thread-259336][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 15:26:40,878 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 15:26:40,879 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 15:26:40,939 [DEBUG][       Thread-259336][   transport.py][1871] : userauth is OK
2025-06-13 15:26:40,939 [DEBUG][       Thread-259336][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 15:26:40,939 [DEBUG][       Thread-259336][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 15:26:40,939 [DEBUG][       Thread-259336][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 15:26:40,939 [DEBUG][       Thread-259336][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 15:26:40,958 [ INFO][       Thread-259336][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 15:26:40,958 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 15:26:40,959 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 15:26:41,972 [DEBUG][       Thread-259336][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 15:26:41,972 [DEBUG][       Thread-259336][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 15:26:42,020 [DEBUG][       Thread-259336][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 15:26:42,020 [DEBUG][       Thread-259336][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 15:26:42,030 [DEBUG][       Thread-259336][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 15:26:42,039 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 15:26:42,039 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 15:26:42,047 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 15:26:42,056 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 15:26:42,056 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 15:26:42,056 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 15:26:42,064 [DEBUG][       Thread-259336][   transport.py][1871] : EOF in transport thread
2025-06-13 15:26:45,334 [DEBUG][Thread-259338 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:26:46,366 [DEBUG][Thread-259339 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:26:47,441 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:26:47,443 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:26:52,067 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 15:26:52,067 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 15:26:52,067 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 15:26:52,068 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 15:26:52,545 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 15, 26, 20), 18.33, 27.94, 0.0, 12.14, 13.83, 0, 0, 0, 2, 0, 0),)
2025-06-13 15:26:52,545 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 15:26:20
2025-06-13 15:26:52,627 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 15:26:52,631 [DEBUG][       Thread-259340][   transport.py][1871] : starting thread (client mode): 0x863ef3d0
2025-06-13 15:26:52,631 [DEBUG][       Thread-259340][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 15:26:52,644 [DEBUG][       Thread-259340][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 15:26:52,644 [ INFO][       Thread-259340][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 15:26:52,647 [DEBUG][       Thread-259340][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 15:26:52,647 [DEBUG][       Thread-259340][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 15:26:52,647 [DEBUG][       Thread-259340][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 15:26:52,647 [DEBUG][       Thread-259340][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:26:52,647 [DEBUG][       Thread-259340][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:26:52,647 [DEBUG][       Thread-259340][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:26:52,647 [DEBUG][       Thread-259340][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:26:52,647 [DEBUG][       Thread-259340][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 15:26:52,647 [DEBUG][       Thread-259340][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 15:26:52,647 [DEBUG][       Thread-259340][   transport.py][1871] : client lang: <none>
2025-06-13 15:26:52,647 [DEBUG][       Thread-259340][   transport.py][1871] : server lang: <none>
2025-06-13 15:26:52,647 [DEBUG][       Thread-259340][   transport.py][1871] : kex follows: False
2025-06-13 15:26:52,648 [DEBUG][       Thread-259340][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 15:26:52,648 [DEBUG][       Thread-259340][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 15:26:52,648 [DEBUG][       Thread-259340][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 15:26:52,648 [DEBUG][       Thread-259340][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 15:26:52,648 [DEBUG][       Thread-259340][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 15:26:52,648 [DEBUG][       Thread-259340][   transport.py][1871] : Compression: none
2025-06-13 15:26:52,648 [DEBUG][       Thread-259340][   transport.py][1871] : === End of kex handshake ===
2025-06-13 15:26:52,662 [DEBUG][       Thread-259340][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 15:26:52,662 [DEBUG][       Thread-259340][   transport.py][1871] : Switch to new keys ...
2025-06-13 15:26:52,662 [DEBUG][       Thread-259340][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 15:26:52,663 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 15:26:52,663 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 15:26:52,663 [DEBUG][       Thread-259340][   transport.py][1871] : userauth is OK
2025-06-13 15:26:52,675 [ INFO][       Thread-259340][   transport.py][1871] : Authentication (password) successful!
2025-06-13 15:26:52,676 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 15:26:53,340 [DEBUG][       Thread-259340][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 15:26:53,341 [DEBUG][       Thread-259340][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 15:26:53,385 [DEBUG][       Thread-259340][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 15:26:53,385 [DEBUG][       Thread-259340][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 15:26:53,387 [DEBUG][       Thread-259340][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 15:26:53,402 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 15:26:53,402 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 15:26:53,403 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 15:26:53,404 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 15:26:53,407 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 15:26:53,407 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 15:26:53,407 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 15:26:53,408 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 15:26:53,408 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.560005 -999.00  +13.60  23.68     32   -2.40 1 1 1 1 1   887    0 16.01 10.32 ----- 21.5 23.7 56.2 25.6 17.1 -31.4 16.0 -33.4 16.8 -31.6 17.9 -30.1
2025-06-13 15:26:53,408 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 15:26:53,408 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 15:26:53,408 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.560005
2025-06-13 15:26:53,408 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 15:26:53,408 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 15:26:53,408 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 15:26:53,408 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 15:26:53,408 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 15:26:53,408 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T15:26:20', tmtdew=18.33, humidity=27.94, cloud=0.0, wind=12.14, temperature=13.83, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T13:26:24.432', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 15:26:53,409 [DEBUG][       Thread-259340][   transport.py][1871] : EOF in transport thread
2025-06-13 15:26:53,482 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 15:26:53,492 [DEBUG][       Thread-259343][   transport.py][1871] : starting thread (client mode): 0x86393310
2025-06-13 15:26:53,492 [DEBUG][       Thread-259343][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 15:26:53,507 [DEBUG][       Thread-259343][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 15:26:53,507 [ INFO][       Thread-259343][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 15:26:53,515 [DEBUG][       Thread-259343][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 15:26:53,515 [DEBUG][       Thread-259343][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 15:26:53,515 [DEBUG][       Thread-259343][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 15:26:53,515 [DEBUG][       Thread-259343][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:26:53,515 [DEBUG][       Thread-259343][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:26:53,515 [DEBUG][       Thread-259343][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:26:53,515 [DEBUG][       Thread-259343][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:26:53,515 [DEBUG][       Thread-259343][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 15:26:53,515 [DEBUG][       Thread-259343][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 15:26:53,515 [DEBUG][       Thread-259343][   transport.py][1871] : client lang: <none>
2025-06-13 15:26:53,515 [DEBUG][       Thread-259343][   transport.py][1871] : server lang: <none>
2025-06-13 15:26:53,515 [DEBUG][       Thread-259343][   transport.py][1871] : kex follows: False
2025-06-13 15:26:53,515 [DEBUG][       Thread-259343][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 15:26:53,515 [DEBUG][       Thread-259343][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 15:26:53,515 [DEBUG][       Thread-259343][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 15:26:53,515 [DEBUG][       Thread-259343][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 15:26:53,515 [DEBUG][       Thread-259343][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 15:26:53,515 [DEBUG][       Thread-259343][   transport.py][1871] : Compression: none
2025-06-13 15:26:53,515 [DEBUG][       Thread-259343][   transport.py][1871] : === End of kex handshake ===
2025-06-13 15:26:53,571 [DEBUG][       Thread-259343][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 15:26:53,571 [DEBUG][       Thread-259343][   transport.py][1871] : Switch to new keys ...
2025-06-13 15:26:53,572 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 15:26:53,572 [DEBUG][       Thread-259343][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 15:26:53,572 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 15:26:53,629 [DEBUG][       Thread-259343][   transport.py][1871] : userauth is OK
2025-06-13 15:26:53,629 [DEBUG][       Thread-259343][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 15:26:53,629 [DEBUG][       Thread-259343][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 15:26:53,629 [DEBUG][       Thread-259343][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 15:26:53,629 [DEBUG][       Thread-259343][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 15:26:53,642 [ INFO][       Thread-259343][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 15:26:53,643 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 15:26:53,643 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 15:26:54,354 [DEBUG][Thread-259345 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:26:54,663 [DEBUG][       Thread-259343][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 15:26:54,663 [DEBUG][       Thread-259343][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 15:26:54,712 [DEBUG][       Thread-259343][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 15:26:54,712 [DEBUG][       Thread-259343][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 15:26:54,721 [DEBUG][       Thread-259343][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 15:26:54,729 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 15:26:54,729 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 15:26:54,737 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 15:26:54,745 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 15:26:54,745 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 15:26:54,746 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 15:26:54,753 [DEBUG][       Thread-259343][   transport.py][1871] : EOF in transport thread
2025-06-13 15:27:03,374 [DEBUG][Thread-259346 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:27:04,756 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 15:27:04,756 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 15:27:04,756 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 15:27:04,759 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 15:27:05,234 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 15, 26, 52), 18.39, 27.83, 0.0, 14.15, 13.87, 0, 0, 0, 2, 0, 0),)
2025-06-13 15:27:05,234 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 15:26:52
2025-06-13 15:27:05,316 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 15:27:05,321 [DEBUG][       Thread-259347][   transport.py][1871] : starting thread (client mode): 0x863917b0
2025-06-13 15:27:05,321 [DEBUG][       Thread-259347][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 15:27:05,339 [DEBUG][       Thread-259347][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 15:27:05,339 [ INFO][       Thread-259347][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 15:27:05,341 [DEBUG][       Thread-259347][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 15:27:05,341 [DEBUG][       Thread-259347][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 15:27:05,341 [DEBUG][       Thread-259347][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 15:27:05,341 [DEBUG][       Thread-259347][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:27:05,341 [DEBUG][       Thread-259347][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:27:05,341 [DEBUG][       Thread-259347][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:27:05,341 [DEBUG][       Thread-259347][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:27:05,341 [DEBUG][       Thread-259347][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 15:27:05,341 [DEBUG][       Thread-259347][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 15:27:05,341 [DEBUG][       Thread-259347][   transport.py][1871] : client lang: <none>
2025-06-13 15:27:05,341 [DEBUG][       Thread-259347][   transport.py][1871] : server lang: <none>
2025-06-13 15:27:05,341 [DEBUG][       Thread-259347][   transport.py][1871] : kex follows: False
2025-06-13 15:27:05,341 [DEBUG][       Thread-259347][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 15:27:05,341 [DEBUG][       Thread-259347][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 15:27:05,341 [DEBUG][       Thread-259347][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 15:27:05,341 [DEBUG][       Thread-259347][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 15:27:05,341 [DEBUG][       Thread-259347][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 15:27:05,341 [DEBUG][       Thread-259347][   transport.py][1871] : Compression: none
2025-06-13 15:27:05,341 [DEBUG][       Thread-259347][   transport.py][1871] : === End of kex handshake ===
2025-06-13 15:27:05,348 [DEBUG][       Thread-259347][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 15:27:05,349 [DEBUG][       Thread-259347][   transport.py][1871] : Switch to new keys ...
2025-06-13 15:27:05,349 [DEBUG][       Thread-259347][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 15:27:05,349 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 15:27:05,349 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 15:27:05,350 [DEBUG][       Thread-259347][   transport.py][1871] : userauth is OK
2025-06-13 15:27:05,375 [ INFO][       Thread-259347][   transport.py][1871] : Authentication (password) successful!
2025-06-13 15:27:05,375 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 15:27:05,949 [DEBUG][       Thread-259347][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 15:27:05,949 [DEBUG][       Thread-259347][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 15:27:05,992 [DEBUG][       Thread-259347][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 15:27:05,993 [DEBUG][       Thread-259347][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 15:27:05,995 [DEBUG][       Thread-259347][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 15:27:06,006 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 15:27:06,006 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 15:27:06,008 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 15:27:06,010 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 15:27:06,014 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 15:27:06,016 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 15:27:06,016 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 15:27:06,016 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 15:27:06,017 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.560352 -999.00  +13.70  25.11     33   -2.20 1 1 1 1 1   887    0 16.00 11.72 ----- 27.3 25.1 53.8 29.3 17.0 -32.0 16.0 -33.2 16.8 -32.1 17.9 -30.6
2025-06-13 15:27:06,017 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 15:27:06,017 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 15:27:06,017 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.560352
2025-06-13 15:27:06,017 [DEBUG][       Thread-259347][   transport.py][1871] : EOF in transport thread
2025-06-13 15:27:06,018 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 15:27:06,019 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 15:27:06,019 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 15:27:06,019 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 15:27:06,019 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 15:27:06,019 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T15:26:52', tmtdew=18.39, humidity=27.83, cloud=0.0, wind=14.15, temperature=13.87, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T13:26:54.413', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 15:27:06,102 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 15:27:06,118 [DEBUG][       Thread-259350][   transport.py][1871] : starting thread (client mode): 0x867b4970
2025-06-13 15:27:06,118 [DEBUG][       Thread-259350][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 15:27:06,134 [DEBUG][       Thread-259350][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 15:27:06,134 [ INFO][       Thread-259350][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 15:27:06,146 [DEBUG][       Thread-259350][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 15:27:06,146 [DEBUG][       Thread-259350][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 15:27:06,146 [DEBUG][       Thread-259350][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 15:27:06,146 [DEBUG][       Thread-259350][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:27:06,146 [DEBUG][       Thread-259350][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:27:06,146 [DEBUG][       Thread-259350][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:27:06,146 [DEBUG][       Thread-259350][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:27:06,146 [DEBUG][       Thread-259350][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 15:27:06,146 [DEBUG][       Thread-259350][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 15:27:06,146 [DEBUG][       Thread-259350][   transport.py][1871] : client lang: <none>
2025-06-13 15:27:06,146 [DEBUG][       Thread-259350][   transport.py][1871] : server lang: <none>
2025-06-13 15:27:06,146 [DEBUG][       Thread-259350][   transport.py][1871] : kex follows: False
2025-06-13 15:27:06,146 [DEBUG][       Thread-259350][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 15:27:06,146 [DEBUG][       Thread-259350][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 15:27:06,146 [DEBUG][       Thread-259350][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 15:27:06,146 [DEBUG][       Thread-259350][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 15:27:06,146 [DEBUG][       Thread-259350][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 15:27:06,146 [DEBUG][       Thread-259350][   transport.py][1871] : Compression: none
2025-06-13 15:27:06,146 [DEBUG][       Thread-259350][   transport.py][1871] : === End of kex handshake ===
2025-06-13 15:27:06,201 [DEBUG][       Thread-259350][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 15:27:06,202 [DEBUG][       Thread-259350][   transport.py][1871] : Switch to new keys ...
2025-06-13 15:27:06,202 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 15:27:06,203 [DEBUG][       Thread-259350][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 15:27:06,204 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 15:27:06,257 [DEBUG][       Thread-259350][   transport.py][1871] : userauth is OK
2025-06-13 15:27:06,257 [DEBUG][       Thread-259350][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 15:27:06,257 [DEBUG][       Thread-259350][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 15:27:06,257 [DEBUG][       Thread-259350][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 15:27:06,257 [DEBUG][       Thread-259350][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 15:27:06,277 [ INFO][       Thread-259350][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 15:27:06,277 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 15:27:06,277 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 15:27:07,326 [DEBUG][       Thread-259350][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 15:27:07,326 [DEBUG][       Thread-259350][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 15:27:07,375 [DEBUG][       Thread-259350][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 15:27:07,375 [DEBUG][       Thread-259350][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 15:27:07,384 [DEBUG][       Thread-259350][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 15:27:07,395 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 15:27:07,395 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 15:27:07,405 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 15:27:07,414 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 15:27:07,414 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 15:27:07,414 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 15:27:07,422 [DEBUG][       Thread-259350][   transport.py][1871] : EOF in transport thread
2025-06-13 15:27:09,180 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:27:09,181 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:27:12,399 [DEBUG][Thread-259352 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:27:17,424 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 15:27:17,424 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 15:27:17,424 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 15:27:17,427 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 15:27:17,891 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 15, 26, 52), 18.39, 27.83, 0.0, 14.15, 13.87, 0, 0, 0, 2, 0, 0),)
2025-06-13 15:27:17,891 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 15:26:52
2025-06-13 15:27:17,972 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 15:27:17,978 [DEBUG][       Thread-259353][   transport.py][1871] : starting thread (client mode): 0x867b54b0
2025-06-13 15:27:17,978 [DEBUG][       Thread-259353][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 15:27:17,997 [DEBUG][       Thread-259353][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 15:27:17,997 [ INFO][       Thread-259353][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 15:27:18,000 [DEBUG][       Thread-259353][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 15:27:18,000 [DEBUG][       Thread-259353][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 15:27:18,000 [DEBUG][       Thread-259353][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 15:27:18,000 [DEBUG][       Thread-259353][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:27:18,000 [DEBUG][       Thread-259353][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:27:18,000 [DEBUG][       Thread-259353][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:27:18,000 [DEBUG][       Thread-259353][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:27:18,000 [DEBUG][       Thread-259353][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 15:27:18,000 [DEBUG][       Thread-259353][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 15:27:18,000 [DEBUG][       Thread-259353][   transport.py][1871] : client lang: <none>
2025-06-13 15:27:18,000 [DEBUG][       Thread-259353][   transport.py][1871] : server lang: <none>
2025-06-13 15:27:18,000 [DEBUG][       Thread-259353][   transport.py][1871] : kex follows: False
2025-06-13 15:27:18,000 [DEBUG][       Thread-259353][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 15:27:18,001 [DEBUG][       Thread-259353][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 15:27:18,001 [DEBUG][       Thread-259353][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 15:27:18,001 [DEBUG][       Thread-259353][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 15:27:18,001 [DEBUG][       Thread-259353][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 15:27:18,001 [DEBUG][       Thread-259353][   transport.py][1871] : Compression: none
2025-06-13 15:27:18,001 [DEBUG][       Thread-259353][   transport.py][1871] : === End of kex handshake ===
2025-06-13 15:27:18,017 [DEBUG][       Thread-259353][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 15:27:18,018 [DEBUG][       Thread-259353][   transport.py][1871] : Switch to new keys ...
2025-06-13 15:27:18,018 [DEBUG][       Thread-259353][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 15:27:18,018 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 15:27:18,018 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 15:27:18,020 [DEBUG][       Thread-259353][   transport.py][1871] : userauth is OK
2025-06-13 15:27:18,032 [ INFO][       Thread-259353][   transport.py][1871] : Authentication (password) successful!
2025-06-13 15:27:18,033 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 15:27:18,663 [DEBUG][       Thread-259353][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 15:27:18,663 [DEBUG][       Thread-259353][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 15:27:18,705 [DEBUG][       Thread-259353][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 15:27:18,705 [DEBUG][       Thread-259353][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 15:27:18,708 [DEBUG][       Thread-259353][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 15:27:18,719 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 15:27:18,719 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 15:27:18,721 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 15:27:18,722 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 15:27:18,727 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 15:27:18,728 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 15:27:18,728 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 15:27:18,729 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 15:27:18,729 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.560352 -999.00  +13.70  25.11     33   -2.20 1 1 1 1 1   887    0 16.00 11.72 ----- 27.3 25.1 53.8 29.3 17.0 -32.0 16.0 -33.2 16.8 -32.1 17.9 -30.6
2025-06-13 15:27:18,729 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 15:27:18,729 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 15:27:18,729 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.560352
2025-06-13 15:27:18,730 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 15:27:18,730 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 15:27:18,730 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 15:27:18,730 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 15:27:18,730 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 15:27:18,730 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T15:26:52', tmtdew=18.39, humidity=27.83, cloud=0.0, wind=14.15, temperature=13.87, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T13:26:54.413', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 15:27:18,731 [DEBUG][       Thread-259353][   transport.py][1871] : EOF in transport thread
2025-06-13 15:27:18,814 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 15:27:18,829 [DEBUG][       Thread-259356][   transport.py][1871] : starting thread (client mode): 0x86390ac0
2025-06-13 15:27:18,829 [DEBUG][       Thread-259356][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 15:27:18,846 [DEBUG][       Thread-259356][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 15:27:18,846 [ INFO][       Thread-259356][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 15:27:18,855 [DEBUG][       Thread-259356][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 15:27:18,855 [DEBUG][       Thread-259356][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 15:27:18,855 [DEBUG][       Thread-259356][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 15:27:18,856 [DEBUG][       Thread-259356][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:27:18,856 [DEBUG][       Thread-259356][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:27:18,856 [DEBUG][       Thread-259356][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:27:18,856 [DEBUG][       Thread-259356][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:27:18,856 [DEBUG][       Thread-259356][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 15:27:18,856 [DEBUG][       Thread-259356][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 15:27:18,856 [DEBUG][       Thread-259356][   transport.py][1871] : client lang: <none>
2025-06-13 15:27:18,856 [DEBUG][       Thread-259356][   transport.py][1871] : server lang: <none>
2025-06-13 15:27:18,856 [DEBUG][       Thread-259356][   transport.py][1871] : kex follows: False
2025-06-13 15:27:18,856 [DEBUG][       Thread-259356][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 15:27:18,856 [DEBUG][       Thread-259356][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 15:27:18,856 [DEBUG][       Thread-259356][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 15:27:18,856 [DEBUG][       Thread-259356][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 15:27:18,856 [DEBUG][       Thread-259356][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 15:27:18,856 [DEBUG][       Thread-259356][   transport.py][1871] : Compression: none
2025-06-13 15:27:18,856 [DEBUG][       Thread-259356][   transport.py][1871] : === End of kex handshake ===
2025-06-13 15:27:18,912 [DEBUG][       Thread-259356][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 15:27:18,913 [DEBUG][       Thread-259356][   transport.py][1871] : Switch to new keys ...
2025-06-13 15:27:18,913 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 15:27:18,914 [DEBUG][       Thread-259356][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 15:27:18,914 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 15:27:18,969 [DEBUG][       Thread-259356][   transport.py][1871] : userauth is OK
2025-06-13 15:27:18,969 [DEBUG][       Thread-259356][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 15:27:18,969 [DEBUG][       Thread-259356][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 15:27:18,969 [DEBUG][       Thread-259356][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 15:27:18,969 [DEBUG][       Thread-259356][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 15:27:18,991 [ INFO][       Thread-259356][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 15:27:18,992 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 15:27:18,992 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 15:27:19,958 [DEBUG][       Thread-259356][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 15:27:19,958 [DEBUG][       Thread-259356][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 15:27:20,007 [DEBUG][       Thread-259356][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 15:27:20,007 [DEBUG][       Thread-259356][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 15:27:20,016 [DEBUG][       Thread-259356][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 15:27:20,025 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 15:27:20,025 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 15:27:20,033 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 15:27:20,042 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 15:27:20,042 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 15:27:20,043 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 15:27:20,055 [DEBUG][       Thread-259356][   transport.py][1871] : EOF in transport thread
2025-06-13 15:27:21,099 [DEBUG][Thread-259358 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:27:21,433 [DEBUG][Thread-259359 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:27:30,045 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 15:27:30,046 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 15:27:30,046 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 15:27:30,049 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 15:27:30,452 [DEBUG][Thread-259360 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:27:30,522 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 15, 27, 23), 18.38, 27.52, 0.0, 17.79, 13.85, 0, 0, 0, 2, 0, 0),)
2025-06-13 15:27:30,522 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 15:27:23
2025-06-13 15:27:30,602 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 15:27:30,607 [DEBUG][       Thread-259361][   transport.py][1871] : starting thread (client mode): 0x86353850
2025-06-13 15:27:30,607 [DEBUG][       Thread-259361][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 15:27:30,629 [DEBUG][       Thread-259361][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 15:27:30,629 [ INFO][       Thread-259361][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 15:27:30,633 [DEBUG][       Thread-259361][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 15:27:30,633 [DEBUG][       Thread-259361][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 15:27:30,633 [DEBUG][       Thread-259361][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 15:27:30,633 [DEBUG][       Thread-259361][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:27:30,633 [DEBUG][       Thread-259361][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:27:30,633 [DEBUG][       Thread-259361][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:27:30,633 [DEBUG][       Thread-259361][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:27:30,633 [DEBUG][       Thread-259361][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 15:27:30,633 [DEBUG][       Thread-259361][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 15:27:30,633 [DEBUG][       Thread-259361][   transport.py][1871] : client lang: <none>
2025-06-13 15:27:30,633 [DEBUG][       Thread-259361][   transport.py][1871] : server lang: <none>
2025-06-13 15:27:30,633 [DEBUG][       Thread-259361][   transport.py][1871] : kex follows: False
2025-06-13 15:27:30,633 [DEBUG][       Thread-259361][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 15:27:30,633 [DEBUG][       Thread-259361][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 15:27:30,633 [DEBUG][       Thread-259361][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 15:27:30,633 [DEBUG][       Thread-259361][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 15:27:30,633 [DEBUG][       Thread-259361][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 15:27:30,633 [DEBUG][       Thread-259361][   transport.py][1871] : Compression: none
2025-06-13 15:27:30,633 [DEBUG][       Thread-259361][   transport.py][1871] : === End of kex handshake ===
2025-06-13 15:27:30,649 [DEBUG][       Thread-259361][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 15:27:30,649 [DEBUG][       Thread-259361][   transport.py][1871] : Switch to new keys ...
2025-06-13 15:27:30,650 [DEBUG][       Thread-259361][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 15:27:30,650 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 15:27:30,650 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 15:27:30,651 [DEBUG][       Thread-259361][   transport.py][1871] : userauth is OK
2025-06-13 15:27:30,675 [ INFO][       Thread-259361][   transport.py][1871] : Authentication (password) successful!
2025-06-13 15:27:30,676 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 15:27:31,300 [DEBUG][       Thread-259361][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 15:27:31,300 [DEBUG][       Thread-259361][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 15:27:31,341 [DEBUG][       Thread-259361][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 15:27:31,341 [DEBUG][       Thread-259361][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 15:27:31,345 [DEBUG][       Thread-259361][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 15:27:31,358 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 15:27:31,359 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 15:27:31,361 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 15:27:31,363 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 15:27:31,369 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 15:27:31,372 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 15:27:31,372 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 15:27:31,373 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 15:27:31,373 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.560352 -999.00  +13.70  25.11     33   -2.20 1 1 1 1 1   887    0 16.00 11.72 ----- 27.3 25.1 53.8 29.3 17.0 -32.0 16.0 -33.2 16.8 -32.1 17.9 -30.6
2025-06-13 15:27:31,373 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 15:27:31,373 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 15:27:31,373 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.560352
2025-06-13 15:27:31,373 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 15:27:31,374 [DEBUG][       Thread-259361][   transport.py][1871] : EOF in transport thread
2025-06-13 15:27:31,374 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 15:27:31,375 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 15:27:31,375 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 15:27:31,375 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 15:27:31,375 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T15:27:23', tmtdew=18.38, humidity=27.52, cloud=0.0, wind=17.79, temperature=13.85, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T13:26:54.413', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 15:27:31,458 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 15:27:31,467 [DEBUG][       Thread-259364][   transport.py][1871] : starting thread (client mode): 0x863a62c0
2025-06-13 15:27:31,467 [DEBUG][       Thread-259364][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 15:27:31,482 [DEBUG][       Thread-259364][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 15:27:31,482 [ INFO][       Thread-259364][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 15:27:31,489 [DEBUG][       Thread-259364][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 15:27:31,489 [DEBUG][       Thread-259364][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 15:27:31,489 [DEBUG][       Thread-259364][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 15:27:31,489 [DEBUG][       Thread-259364][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:27:31,489 [DEBUG][       Thread-259364][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:27:31,489 [DEBUG][       Thread-259364][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:27:31,489 [DEBUG][       Thread-259364][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:27:31,489 [DEBUG][       Thread-259364][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 15:27:31,490 [DEBUG][       Thread-259364][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 15:27:31,490 [DEBUG][       Thread-259364][   transport.py][1871] : client lang: <none>
2025-06-13 15:27:31,490 [DEBUG][       Thread-259364][   transport.py][1871] : server lang: <none>
2025-06-13 15:27:31,490 [DEBUG][       Thread-259364][   transport.py][1871] : kex follows: False
2025-06-13 15:27:31,490 [DEBUG][       Thread-259364][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 15:27:31,490 [DEBUG][       Thread-259364][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 15:27:31,490 [DEBUG][       Thread-259364][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 15:27:31,490 [DEBUG][       Thread-259364][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 15:27:31,490 [DEBUG][       Thread-259364][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 15:27:31,490 [DEBUG][       Thread-259364][   transport.py][1871] : Compression: none
2025-06-13 15:27:31,490 [DEBUG][       Thread-259364][   transport.py][1871] : === End of kex handshake ===
2025-06-13 15:27:31,550 [DEBUG][       Thread-259364][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 15:27:31,551 [DEBUG][       Thread-259364][   transport.py][1871] : Switch to new keys ...
2025-06-13 15:27:31,552 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 15:27:31,553 [DEBUG][       Thread-259364][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 15:27:31,553 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 15:27:31,609 [DEBUG][       Thread-259364][   transport.py][1871] : userauth is OK
2025-06-13 15:27:31,609 [DEBUG][       Thread-259364][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 15:27:31,610 [DEBUG][       Thread-259364][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 15:27:31,610 [DEBUG][       Thread-259364][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 15:27:31,610 [DEBUG][       Thread-259364][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 15:27:31,629 [ INFO][       Thread-259364][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 15:27:31,629 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 15:27:31,630 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 15:27:32,672 [DEBUG][       Thread-259364][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 15:27:32,672 [DEBUG][       Thread-259364][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 15:27:32,719 [DEBUG][       Thread-259364][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 15:27:32,719 [DEBUG][       Thread-259364][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 15:27:32,728 [DEBUG][       Thread-259364][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 15:27:32,735 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 15:27:32,736 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 15:27:32,743 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 15:27:32,751 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 15:27:32,751 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 15:27:32,751 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 15:27:32,759 [DEBUG][       Thread-259364][   transport.py][1871] : EOF in transport thread
2025-06-13 15:27:39,471 [DEBUG][Thread-259366 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:27:42,762 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 15:27:42,762 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 15:27:42,762 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 15:27:42,765 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 15:27:43,238 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 15, 27, 23), 18.38, 27.52, 0.0, 17.79, 13.85, 0, 0, 0, 2, 0, 0),)
2025-06-13 15:27:43,238 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 15:27:23
2025-06-13 15:27:43,319 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 15:27:43,326 [DEBUG][       Thread-259367][   transport.py][1871] : starting thread (client mode): 0x863539a0
2025-06-13 15:27:43,326 [DEBUG][       Thread-259367][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 15:27:43,345 [DEBUG][       Thread-259367][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 15:27:43,345 [ INFO][       Thread-259367][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 15:27:43,346 [DEBUG][       Thread-259367][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 15:27:43,347 [DEBUG][       Thread-259367][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 15:27:43,347 [DEBUG][       Thread-259367][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 15:27:43,347 [DEBUG][       Thread-259367][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:27:43,347 [DEBUG][       Thread-259367][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:27:43,347 [DEBUG][       Thread-259367][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:27:43,347 [DEBUG][       Thread-259367][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:27:43,347 [DEBUG][       Thread-259367][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 15:27:43,347 [DEBUG][       Thread-259367][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 15:27:43,347 [DEBUG][       Thread-259367][   transport.py][1871] : client lang: <none>
2025-06-13 15:27:43,347 [DEBUG][       Thread-259367][   transport.py][1871] : server lang: <none>
2025-06-13 15:27:43,347 [DEBUG][       Thread-259367][   transport.py][1871] : kex follows: False
2025-06-13 15:27:43,347 [DEBUG][       Thread-259367][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 15:27:43,347 [DEBUG][       Thread-259367][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 15:27:43,347 [DEBUG][       Thread-259367][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 15:27:43,347 [DEBUG][       Thread-259367][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 15:27:43,347 [DEBUG][       Thread-259367][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 15:27:43,347 [DEBUG][       Thread-259367][   transport.py][1871] : Compression: none
2025-06-13 15:27:43,347 [DEBUG][       Thread-259367][   transport.py][1871] : === End of kex handshake ===
2025-06-13 15:27:43,355 [DEBUG][       Thread-259367][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 15:27:43,355 [DEBUG][       Thread-259367][   transport.py][1871] : Switch to new keys ...
2025-06-13 15:27:43,356 [DEBUG][       Thread-259367][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 15:27:43,356 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 15:27:43,356 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 15:27:43,357 [DEBUG][       Thread-259367][   transport.py][1871] : userauth is OK
2025-06-13 15:27:43,370 [ INFO][       Thread-259367][   transport.py][1871] : Authentication (password) successful!
2025-06-13 15:27:43,370 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 15:27:44,018 [DEBUG][       Thread-259367][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 15:27:44,018 [DEBUG][       Thread-259367][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 15:27:44,061 [DEBUG][       Thread-259367][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 15:27:44,061 [DEBUG][       Thread-259367][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 15:27:44,064 [DEBUG][       Thread-259367][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 15:27:44,078 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 15:27:44,079 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 15:27:44,081 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 15:27:44,083 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 15:27:44,090 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 15:27:44,092 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 15:27:44,092 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 15:27:44,093 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 15:27:44,093 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.560700 -999.00  +13.70  21.51     32   -2.30 1 1 1 1 1   887    0 16.42 13.02 ----- 23.2 21.5 49.4 29.4 17.0 -31.8 15.9 -34.1 16.8 -31.7 17.9 -30.7
2025-06-13 15:27:44,093 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 15:27:44,094 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 15:27:44,094 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.560700
2025-06-13 15:27:44,094 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 15:27:44,095 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 15:27:44,095 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 15:27:44,095 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 15:27:44,095 [DEBUG][       Thread-259367][   transport.py][1871] : EOF in transport thread
2025-06-13 15:27:44,096 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 15:27:44,096 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T15:27:23', tmtdew=18.38, humidity=27.52, cloud=0.0, wind=17.79, temperature=13.85, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T13:27:24.480', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 15:27:44,188 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 15:27:44,204 [DEBUG][       Thread-259370][   transport.py][1871] : starting thread (client mode): 0x867b5270
2025-06-13 15:27:44,204 [DEBUG][       Thread-259370][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 15:27:44,219 [DEBUG][       Thread-259370][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 15:27:44,219 [ INFO][       Thread-259370][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 15:27:44,227 [DEBUG][       Thread-259370][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 15:27:44,227 [DEBUG][       Thread-259370][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 15:27:44,227 [DEBUG][       Thread-259370][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 15:27:44,227 [DEBUG][       Thread-259370][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:27:44,227 [DEBUG][       Thread-259370][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:27:44,227 [DEBUG][       Thread-259370][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:27:44,227 [DEBUG][       Thread-259370][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:27:44,227 [DEBUG][       Thread-259370][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 15:27:44,227 [DEBUG][       Thread-259370][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 15:27:44,227 [DEBUG][       Thread-259370][   transport.py][1871] : client lang: <none>
2025-06-13 15:27:44,227 [DEBUG][       Thread-259370][   transport.py][1871] : server lang: <none>
2025-06-13 15:27:44,228 [DEBUG][       Thread-259370][   transport.py][1871] : kex follows: False
2025-06-13 15:27:44,228 [DEBUG][       Thread-259370][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 15:27:44,228 [DEBUG][       Thread-259370][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 15:27:44,228 [DEBUG][       Thread-259370][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 15:27:44,228 [DEBUG][       Thread-259370][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 15:27:44,228 [DEBUG][       Thread-259370][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 15:27:44,228 [DEBUG][       Thread-259370][   transport.py][1871] : Compression: none
2025-06-13 15:27:44,228 [DEBUG][       Thread-259370][   transport.py][1871] : === End of kex handshake ===
2025-06-13 15:27:44,285 [DEBUG][       Thread-259370][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 15:27:44,285 [DEBUG][       Thread-259370][   transport.py][1871] : Switch to new keys ...
2025-06-13 15:27:44,286 [DEBUG][       Thread-259370][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 15:27:44,286 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 15:27:44,287 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 15:27:44,341 [DEBUG][       Thread-259370][   transport.py][1871] : userauth is OK
2025-06-13 15:27:44,342 [DEBUG][       Thread-259370][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 15:27:44,342 [DEBUG][       Thread-259370][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 15:27:44,342 [DEBUG][       Thread-259370][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 15:27:44,342 [DEBUG][       Thread-259370][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 15:27:44,362 [ INFO][       Thread-259370][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 15:27:44,362 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 15:27:44,363 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 15:27:45,361 [DEBUG][       Thread-259370][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 15:27:45,362 [DEBUG][       Thread-259370][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 15:27:45,412 [DEBUG][       Thread-259370][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 15:27:45,412 [DEBUG][       Thread-259370][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 15:27:45,421 [DEBUG][       Thread-259370][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 15:27:45,430 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 15:27:45,431 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 15:27:45,444 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 15:27:45,456 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 15:27:45,456 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 15:27:45,456 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 15:27:45,464 [DEBUG][       Thread-259370][   transport.py][1871] : EOF in transport thread
2025-06-13 15:27:47,501 [DEBUG][Thread-259372 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:27:48,511 [DEBUG][Thread-259373 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:27:48,575 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:27:48,577 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:27:55,467 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 15:27:55,467 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 15:27:55,467 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 15:27:55,470 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 15:27:55,939 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 15, 27, 23), 18.38, 27.52, 0.0, 17.79, 13.85, 0, 0, 0, 2, 0, 0),)
2025-06-13 15:27:55,939 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 15:27:23
2025-06-13 15:27:56,021 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 15:27:56,025 [DEBUG][       Thread-259374][   transport.py][1871] : starting thread (client mode): 0x863936d0
2025-06-13 15:27:56,025 [DEBUG][       Thread-259374][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 15:27:56,045 [DEBUG][       Thread-259374][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 15:27:56,045 [ INFO][       Thread-259374][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 15:27:56,048 [DEBUG][       Thread-259374][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 15:27:56,048 [DEBUG][       Thread-259374][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 15:27:56,049 [DEBUG][       Thread-259374][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 15:27:56,049 [DEBUG][       Thread-259374][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:27:56,049 [DEBUG][       Thread-259374][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:27:56,049 [DEBUG][       Thread-259374][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:27:56,049 [DEBUG][       Thread-259374][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:27:56,049 [DEBUG][       Thread-259374][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 15:27:56,049 [DEBUG][       Thread-259374][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 15:27:56,049 [DEBUG][       Thread-259374][   transport.py][1871] : client lang: <none>
2025-06-13 15:27:56,049 [DEBUG][       Thread-259374][   transport.py][1871] : server lang: <none>
2025-06-13 15:27:56,049 [DEBUG][       Thread-259374][   transport.py][1871] : kex follows: False
2025-06-13 15:27:56,049 [DEBUG][       Thread-259374][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 15:27:56,049 [DEBUG][       Thread-259374][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 15:27:56,049 [DEBUG][       Thread-259374][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 15:27:56,049 [DEBUG][       Thread-259374][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 15:27:56,049 [DEBUG][       Thread-259374][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 15:27:56,049 [DEBUG][       Thread-259374][   transport.py][1871] : Compression: none
2025-06-13 15:27:56,049 [DEBUG][       Thread-259374][   transport.py][1871] : === End of kex handshake ===
2025-06-13 15:27:56,066 [DEBUG][       Thread-259374][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 15:27:56,066 [DEBUG][       Thread-259374][   transport.py][1871] : Switch to new keys ...
2025-06-13 15:27:56,067 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 15:27:56,067 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 15:27:56,067 [DEBUG][       Thread-259374][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 15:27:56,068 [DEBUG][       Thread-259374][   transport.py][1871] : userauth is OK
2025-06-13 15:27:56,081 [ INFO][       Thread-259374][   transport.py][1871] : Authentication (password) successful!
2025-06-13 15:27:56,082 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 15:27:56,680 [DEBUG][       Thread-259374][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 15:27:56,680 [DEBUG][       Thread-259374][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 15:27:56,721 [DEBUG][       Thread-259374][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 15:27:56,721 [DEBUG][       Thread-259374][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 15:27:56,723 [DEBUG][       Thread-259374][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 15:27:56,737 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 15:27:56,737 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 15:27:56,738 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 15:27:56,739 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 15:27:56,743 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 15:27:56,745 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 15:27:56,745 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 15:27:56,745 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 15:27:56,745 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.560700 -999.00  +13.70  21.51     32   -2.30 1 1 1 1 1   887    0 16.42 13.02 ----- 23.2 21.5 49.4 29.4 17.0 -31.8 15.9 -34.1 16.8 -31.7 17.9 -30.7
2025-06-13 15:27:56,745 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 15:27:56,745 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 15:27:56,745 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.560700
2025-06-13 15:27:56,746 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 15:27:56,746 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 15:27:56,746 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 15:27:56,746 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 15:27:56,746 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 15:27:56,746 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T15:27:23', tmtdew=18.38, humidity=27.52, cloud=0.0, wind=17.79, temperature=13.85, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T13:27:24.480', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 15:27:56,747 [DEBUG][       Thread-259374][   transport.py][1871] : EOF in transport thread
2025-06-13 15:27:56,829 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 15:27:56,838 [DEBUG][       Thread-259377][   transport.py][1871] : starting thread (client mode): 0x863a55a0
2025-06-13 15:27:56,838 [DEBUG][       Thread-259377][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 15:27:56,853 [DEBUG][       Thread-259377][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 15:27:56,853 [ INFO][       Thread-259377][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 15:27:56,860 [DEBUG][       Thread-259377][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 15:27:56,860 [DEBUG][       Thread-259377][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 15:27:56,860 [DEBUG][       Thread-259377][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 15:27:56,860 [DEBUG][       Thread-259377][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:27:56,860 [DEBUG][       Thread-259377][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:27:56,860 [DEBUG][       Thread-259377][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:27:56,860 [DEBUG][       Thread-259377][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:27:56,861 [DEBUG][       Thread-259377][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 15:27:56,861 [DEBUG][       Thread-259377][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 15:27:56,861 [DEBUG][       Thread-259377][   transport.py][1871] : client lang: <none>
2025-06-13 15:27:56,861 [DEBUG][       Thread-259377][   transport.py][1871] : server lang: <none>
2025-06-13 15:27:56,861 [DEBUG][       Thread-259377][   transport.py][1871] : kex follows: False
2025-06-13 15:27:56,861 [DEBUG][       Thread-259377][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 15:27:56,861 [DEBUG][       Thread-259377][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 15:27:56,861 [DEBUG][       Thread-259377][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 15:27:56,861 [DEBUG][       Thread-259377][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 15:27:56,861 [DEBUG][       Thread-259377][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 15:27:56,861 [DEBUG][       Thread-259377][   transport.py][1871] : Compression: none
2025-06-13 15:27:56,861 [DEBUG][       Thread-259377][   transport.py][1871] : === End of kex handshake ===
2025-06-13 15:27:56,915 [DEBUG][       Thread-259377][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 15:27:56,915 [DEBUG][       Thread-259377][   transport.py][1871] : Switch to new keys ...
2025-06-13 15:27:56,915 [DEBUG][       Thread-259377][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 15:27:56,915 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 15:27:56,916 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 15:27:56,973 [DEBUG][       Thread-259377][   transport.py][1871] : userauth is OK
2025-06-13 15:27:56,973 [DEBUG][       Thread-259377][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 15:27:56,973 [DEBUG][       Thread-259377][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 15:27:56,973 [DEBUG][       Thread-259377][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 15:27:56,973 [DEBUG][       Thread-259377][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 15:27:56,987 [ INFO][       Thread-259377][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 15:27:56,987 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 15:27:56,987 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 15:27:57,530 [DEBUG][Thread-259379 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:27:57,990 [DEBUG][       Thread-259377][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 15:27:57,990 [DEBUG][       Thread-259377][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 15:27:58,039 [DEBUG][       Thread-259377][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 15:27:58,039 [DEBUG][       Thread-259377][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 15:27:58,048 [DEBUG][       Thread-259377][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 15:27:58,056 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 15:27:58,056 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 15:27:58,067 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 15:27:58,082 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 15:27:58,082 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 15:27:58,082 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 15:27:58,090 [DEBUG][       Thread-259377][   transport.py][1871] : EOF in transport thread
2025-06-13 15:28:06,547 [DEBUG][Thread-259380 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:28:08,083 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 15:28:08,084 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 15:28:08,084 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 15:28:08,086 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 15:28:08,548 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 15, 27, 56), 18.21, 27.86, 0.0, 17.95, 13.88, 0, 0, 0, 2, 0, 0),)
2025-06-13 15:28:08,548 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 15:27:56
2025-06-13 15:28:08,629 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 15:28:08,635 [DEBUG][       Thread-259381][   transport.py][1871] : starting thread (client mode): 0x863efc10
2025-06-13 15:28:08,635 [DEBUG][       Thread-259381][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 15:28:08,656 [DEBUG][       Thread-259381][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 15:28:08,656 [ INFO][       Thread-259381][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 15:28:08,659 [DEBUG][       Thread-259381][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 15:28:08,659 [DEBUG][       Thread-259381][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 15:28:08,659 [DEBUG][       Thread-259381][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 15:28:08,659 [DEBUG][       Thread-259381][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:28:08,659 [DEBUG][       Thread-259381][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:28:08,659 [DEBUG][       Thread-259381][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:28:08,659 [DEBUG][       Thread-259381][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:28:08,659 [DEBUG][       Thread-259381][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 15:28:08,659 [DEBUG][       Thread-259381][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 15:28:08,659 [DEBUG][       Thread-259381][   transport.py][1871] : client lang: <none>
2025-06-13 15:28:08,659 [DEBUG][       Thread-259381][   transport.py][1871] : server lang: <none>
2025-06-13 15:28:08,659 [DEBUG][       Thread-259381][   transport.py][1871] : kex follows: False
2025-06-13 15:28:08,659 [DEBUG][       Thread-259381][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 15:28:08,659 [DEBUG][       Thread-259381][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 15:28:08,660 [DEBUG][       Thread-259381][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 15:28:08,660 [DEBUG][       Thread-259381][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 15:28:08,660 [DEBUG][       Thread-259381][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 15:28:08,660 [DEBUG][       Thread-259381][   transport.py][1871] : Compression: none
2025-06-13 15:28:08,660 [DEBUG][       Thread-259381][   transport.py][1871] : === End of kex handshake ===
2025-06-13 15:28:08,676 [DEBUG][       Thread-259381][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 15:28:08,677 [DEBUG][       Thread-259381][   transport.py][1871] : Switch to new keys ...
2025-06-13 15:28:08,677 [DEBUG][       Thread-259381][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 15:28:08,677 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 15:28:08,677 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 15:28:08,678 [DEBUG][       Thread-259381][   transport.py][1871] : userauth is OK
2025-06-13 15:28:08,692 [ INFO][       Thread-259381][   transport.py][1871] : Authentication (password) successful!
2025-06-13 15:28:08,693 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 15:28:09,319 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:28:09,320 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:28:09,354 [DEBUG][       Thread-259381][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 15:28:09,354 [DEBUG][       Thread-259381][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 15:28:09,397 [DEBUG][       Thread-259381][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 15:28:09,397 [DEBUG][       Thread-259381][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 15:28:09,401 [DEBUG][       Thread-259381][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 15:28:09,412 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 15:28:09,413 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 15:28:09,415 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 15:28:09,417 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 15:28:09,424 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 15:28:09,426 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 15:28:09,426 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 15:28:09,427 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 15:28:09,427 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.560700 -999.00  +13.70  21.51     32   -2.30 1 1 1 1 1   887    0 16.42 13.02 ----- 23.2 21.5 49.4 29.4 17.0 -31.8 15.9 -34.1 16.8 -31.7 17.9 -30.7
2025-06-13 15:28:09,427 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 15:28:09,427 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 15:28:09,427 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.560700
2025-06-13 15:28:09,428 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 15:28:09,429 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 15:28:09,429 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 15:28:09,429 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 15:28:09,429 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 15:28:09,429 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T15:27:56', tmtdew=18.21, humidity=27.86, cloud=0.0, wind=17.95, temperature=13.88, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T13:27:24.480', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 15:28:09,430 [DEBUG][       Thread-259381][   transport.py][1871] : EOF in transport thread
2025-06-13 15:28:09,513 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 15:28:09,523 [DEBUG][       Thread-259384][   transport.py][1871] : starting thread (client mode): 0x863be9e0
2025-06-13 15:28:09,524 [DEBUG][       Thread-259384][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 15:28:09,540 [DEBUG][       Thread-259384][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 15:28:09,540 [ INFO][       Thread-259384][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 15:28:09,548 [DEBUG][       Thread-259384][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 15:28:09,548 [DEBUG][       Thread-259384][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 15:28:09,548 [DEBUG][       Thread-259384][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 15:28:09,548 [DEBUG][       Thread-259384][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:28:09,548 [DEBUG][       Thread-259384][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:28:09,548 [DEBUG][       Thread-259384][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:28:09,549 [DEBUG][       Thread-259384][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:28:09,549 [DEBUG][       Thread-259384][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 15:28:09,549 [DEBUG][       Thread-259384][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 15:28:09,549 [DEBUG][       Thread-259384][   transport.py][1871] : client lang: <none>
2025-06-13 15:28:09,549 [DEBUG][       Thread-259384][   transport.py][1871] : server lang: <none>
2025-06-13 15:28:09,549 [DEBUG][       Thread-259384][   transport.py][1871] : kex follows: False
2025-06-13 15:28:09,549 [DEBUG][       Thread-259384][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 15:28:09,549 [DEBUG][       Thread-259384][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 15:28:09,549 [DEBUG][       Thread-259384][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 15:28:09,549 [DEBUG][       Thread-259384][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 15:28:09,549 [DEBUG][       Thread-259384][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 15:28:09,549 [DEBUG][       Thread-259384][   transport.py][1871] : Compression: none
2025-06-13 15:28:09,549 [DEBUG][       Thread-259384][   transport.py][1871] : === End of kex handshake ===
2025-06-13 15:28:09,605 [DEBUG][       Thread-259384][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 15:28:09,606 [DEBUG][       Thread-259384][   transport.py][1871] : Switch to new keys ...
2025-06-13 15:28:09,606 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 15:28:09,607 [DEBUG][       Thread-259384][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 15:28:09,607 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 15:28:09,661 [DEBUG][       Thread-259384][   transport.py][1871] : userauth is OK
2025-06-13 15:28:09,661 [DEBUG][       Thread-259384][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 15:28:09,661 [DEBUG][       Thread-259384][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 15:28:09,661 [DEBUG][       Thread-259384][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 15:28:09,661 [DEBUG][       Thread-259384][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 15:28:09,675 [ INFO][       Thread-259384][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 15:28:09,675 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 15:28:09,675 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 15:28:10,662 [DEBUG][       Thread-259384][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 15:28:10,663 [DEBUG][       Thread-259384][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 15:28:10,718 [DEBUG][       Thread-259384][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 15:28:10,718 [DEBUG][       Thread-259384][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 15:28:10,730 [DEBUG][       Thread-259384][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 15:28:10,742 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 15:28:10,743 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 15:28:10,752 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 15:28:10,761 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 15:28:10,761 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 15:28:10,762 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 15:28:10,769 [DEBUG][       Thread-259384][   transport.py][1871] : EOF in transport thread
2025-06-13 15:28:15,566 [DEBUG][Thread-259386 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:28:20,772 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 15:28:20,772 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 15:28:20,772 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 15:28:20,775 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 15:28:21,146 [DEBUG][Thread-259387 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:28:21,239 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 15, 27, 56), 18.21, 27.86, 0.0, 17.95, 13.88, 0, 0, 0, 2, 0, 0),)
2025-06-13 15:28:21,239 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 15:27:56
2025-06-13 15:28:21,320 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 15:28:21,324 [DEBUG][       Thread-259388][   transport.py][1871] : starting thread (client mode): 0x86391750
2025-06-13 15:28:21,324 [DEBUG][       Thread-259388][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 15:28:21,344 [DEBUG][       Thread-259388][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 15:28:21,344 [ INFO][       Thread-259388][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 15:28:21,347 [DEBUG][       Thread-259388][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 15:28:21,347 [DEBUG][       Thread-259388][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 15:28:21,347 [DEBUG][       Thread-259388][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 15:28:21,347 [DEBUG][       Thread-259388][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:28:21,347 [DEBUG][       Thread-259388][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:28:21,347 [DEBUG][       Thread-259388][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:28:21,347 [DEBUG][       Thread-259388][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:28:21,347 [DEBUG][       Thread-259388][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 15:28:21,347 [DEBUG][       Thread-259388][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 15:28:21,347 [DEBUG][       Thread-259388][   transport.py][1871] : client lang: <none>
2025-06-13 15:28:21,347 [DEBUG][       Thread-259388][   transport.py][1871] : server lang: <none>
2025-06-13 15:28:21,347 [DEBUG][       Thread-259388][   transport.py][1871] : kex follows: False
2025-06-13 15:28:21,348 [DEBUG][       Thread-259388][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 15:28:21,348 [DEBUG][       Thread-259388][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 15:28:21,348 [DEBUG][       Thread-259388][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 15:28:21,348 [DEBUG][       Thread-259388][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 15:28:21,348 [DEBUG][       Thread-259388][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 15:28:21,348 [DEBUG][       Thread-259388][   transport.py][1871] : Compression: none
2025-06-13 15:28:21,348 [DEBUG][       Thread-259388][   transport.py][1871] : === End of kex handshake ===
2025-06-13 15:28:21,363 [DEBUG][       Thread-259388][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 15:28:21,364 [DEBUG][       Thread-259388][   transport.py][1871] : Switch to new keys ...
2025-06-13 15:28:21,364 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 15:28:21,365 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 15:28:21,365 [DEBUG][       Thread-259388][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 15:28:21,365 [DEBUG][       Thread-259388][   transport.py][1871] : userauth is OK
2025-06-13 15:28:21,379 [ INFO][       Thread-259388][   transport.py][1871] : Authentication (password) successful!
2025-06-13 15:28:21,379 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 15:28:21,959 [DEBUG][       Thread-259388][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 15:28:21,960 [DEBUG][       Thread-259388][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 15:28:22,001 [DEBUG][       Thread-259388][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 15:28:22,001 [DEBUG][       Thread-259388][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 15:28:22,004 [DEBUG][       Thread-259388][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 15:28:22,017 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 15:28:22,018 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 15:28:22,019 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 15:28:22,021 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 15:28:22,027 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 15:28:22,029 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 15:28:22,029 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 15:28:22,030 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 15:28:22,030 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.561047 -999.00  +13.70  23.33     32   -2.30 1 1 1 1 1   887    0 16.27 14.59 ----- 18.6 23.3 30.8 27.9 17.0 -31.7 16.0 -33.7 16.8 -31.1 17.9 -30.6
2025-06-13 15:28:22,030 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 15:28:22,030 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 15:28:22,030 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.561047
2025-06-13 15:28:22,031 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 15:28:22,031 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 15:28:22,031 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 15:28:22,031 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 15:28:22,031 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 15:28:22,032 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T15:27:56', tmtdew=18.21, humidity=27.86, cloud=0.0, wind=17.95, temperature=13.88, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T13:27:54.461', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 15:28:22,032 [DEBUG][       Thread-259388][   transport.py][1871] : EOF in transport thread
2025-06-13 15:28:22,116 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 15:28:22,126 [DEBUG][       Thread-259391][   transport.py][1871] : starting thread (client mode): 0x868c85e0
2025-06-13 15:28:22,126 [DEBUG][       Thread-259391][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 15:28:22,140 [DEBUG][       Thread-259391][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 15:28:22,140 [ INFO][       Thread-259391][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 15:28:22,148 [DEBUG][       Thread-259391][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 15:28:22,148 [DEBUG][       Thread-259391][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 15:28:22,148 [DEBUG][       Thread-259391][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 15:28:22,148 [DEBUG][       Thread-259391][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:28:22,148 [DEBUG][       Thread-259391][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:28:22,148 [DEBUG][       Thread-259391][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:28:22,148 [DEBUG][       Thread-259391][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:28:22,148 [DEBUG][       Thread-259391][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 15:28:22,148 [DEBUG][       Thread-259391][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 15:28:22,148 [DEBUG][       Thread-259391][   transport.py][1871] : client lang: <none>
2025-06-13 15:28:22,148 [DEBUG][       Thread-259391][   transport.py][1871] : server lang: <none>
2025-06-13 15:28:22,148 [DEBUG][       Thread-259391][   transport.py][1871] : kex follows: False
2025-06-13 15:28:22,148 [DEBUG][       Thread-259391][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 15:28:22,148 [DEBUG][       Thread-259391][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 15:28:22,148 [DEBUG][       Thread-259391][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 15:28:22,148 [DEBUG][       Thread-259391][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 15:28:22,148 [DEBUG][       Thread-259391][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 15:28:22,148 [DEBUG][       Thread-259391][   transport.py][1871] : Compression: none
2025-06-13 15:28:22,148 [DEBUG][       Thread-259391][   transport.py][1871] : === End of kex handshake ===
2025-06-13 15:28:22,204 [DEBUG][       Thread-259391][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 15:28:22,205 [DEBUG][       Thread-259391][   transport.py][1871] : Switch to new keys ...
2025-06-13 15:28:22,205 [DEBUG][       Thread-259391][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 15:28:22,206 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 15:28:22,207 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 15:28:22,261 [DEBUG][       Thread-259391][   transport.py][1871] : userauth is OK
2025-06-13 15:28:22,262 [DEBUG][       Thread-259391][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 15:28:22,262 [DEBUG][       Thread-259391][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 15:28:22,262 [DEBUG][       Thread-259391][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 15:28:22,262 [DEBUG][       Thread-259391][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 15:28:22,283 [ INFO][       Thread-259391][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 15:28:22,284 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 15:28:22,284 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 15:28:23,281 [DEBUG][       Thread-259391][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 15:28:23,282 [DEBUG][       Thread-259391][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 15:28:23,332 [DEBUG][       Thread-259391][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 15:28:23,332 [DEBUG][       Thread-259391][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 15:28:23,341 [DEBUG][       Thread-259391][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 15:28:23,350 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 15:28:23,351 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 15:28:23,360 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 15:28:23,369 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 15:28:23,370 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 15:28:23,370 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 15:28:23,378 [DEBUG][       Thread-259391][   transport.py][1871] : EOF in transport thread
2025-06-13 15:28:24,611 [DEBUG][Thread-259393 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:28:33,376 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 15:28:33,376 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 15:28:33,376 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 15:28:33,380 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 15:28:33,631 [DEBUG][Thread-259394 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:28:33,844 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 15, 28, 27), 18.37, 27.71, 0.0, 16.0, 14.02, 0, 0, 0, 2, 0, 0),)
2025-06-13 15:28:33,844 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 15:28:27
2025-06-13 15:28:33,925 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 15:28:33,929 [DEBUG][       Thread-259395][   transport.py][1871] : starting thread (client mode): 0x863a7190
2025-06-13 15:28:33,929 [DEBUG][       Thread-259395][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 15:28:33,950 [DEBUG][       Thread-259395][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 15:28:33,950 [ INFO][       Thread-259395][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 15:28:33,954 [DEBUG][       Thread-259395][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 15:28:33,954 [DEBUG][       Thread-259395][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 15:28:33,954 [DEBUG][       Thread-259395][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 15:28:33,954 [DEBUG][       Thread-259395][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:28:33,954 [DEBUG][       Thread-259395][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:28:33,954 [DEBUG][       Thread-259395][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:28:33,954 [DEBUG][       Thread-259395][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:28:33,954 [DEBUG][       Thread-259395][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 15:28:33,954 [DEBUG][       Thread-259395][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 15:28:33,954 [DEBUG][       Thread-259395][   transport.py][1871] : client lang: <none>
2025-06-13 15:28:33,954 [DEBUG][       Thread-259395][   transport.py][1871] : server lang: <none>
2025-06-13 15:28:33,954 [DEBUG][       Thread-259395][   transport.py][1871] : kex follows: False
2025-06-13 15:28:33,954 [DEBUG][       Thread-259395][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 15:28:33,954 [DEBUG][       Thread-259395][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 15:28:33,954 [DEBUG][       Thread-259395][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 15:28:33,954 [DEBUG][       Thread-259395][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 15:28:33,954 [DEBUG][       Thread-259395][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 15:28:33,954 [DEBUG][       Thread-259395][   transport.py][1871] : Compression: none
2025-06-13 15:28:33,954 [DEBUG][       Thread-259395][   transport.py][1871] : === End of kex handshake ===
2025-06-13 15:28:33,971 [DEBUG][       Thread-259395][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 15:28:33,971 [DEBUG][       Thread-259395][   transport.py][1871] : Switch to new keys ...
2025-06-13 15:28:33,972 [DEBUG][       Thread-259395][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 15:28:33,972 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 15:28:33,972 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 15:28:33,974 [DEBUG][       Thread-259395][   transport.py][1871] : userauth is OK
2025-06-13 15:28:33,998 [ INFO][       Thread-259395][   transport.py][1871] : Authentication (password) successful!
2025-06-13 15:28:33,999 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 15:28:34,643 [DEBUG][       Thread-259395][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 15:28:34,643 [DEBUG][       Thread-259395][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 15:28:34,685 [DEBUG][       Thread-259395][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 15:28:34,685 [DEBUG][       Thread-259395][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 15:28:34,688 [DEBUG][       Thread-259395][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 15:28:34,700 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 15:28:34,701 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 15:28:34,703 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 15:28:34,705 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 15:28:34,710 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 15:28:34,712 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 15:28:34,712 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 15:28:34,713 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 15:28:34,713 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.561047 -999.00  +13.70  23.33     32   -2.30 1 1 1 1 1   887    0 16.27 14.59 ----- 18.6 23.3 30.8 27.9 17.0 -31.7 16.0 -33.7 16.8 -31.1 17.9 -30.6
2025-06-13 15:28:34,713 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 15:28:34,713 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 15:28:34,713 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.561047
2025-06-13 15:28:34,714 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 15:28:34,714 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 15:28:34,715 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 15:28:34,715 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 15:28:34,715 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 15:28:34,715 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T15:28:27', tmtdew=18.37, humidity=27.71, cloud=0.0, wind=16.0, temperature=14.02, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T13:27:54.461', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 15:28:34,715 [DEBUG][       Thread-259395][   transport.py][1871] : EOF in transport thread
2025-06-13 15:28:34,798 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 15:28:34,810 [DEBUG][       Thread-259398][   transport.py][1871] : starting thread (client mode): 0x863521d0
2025-06-13 15:28:34,810 [DEBUG][       Thread-259398][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 15:28:34,825 [DEBUG][       Thread-259398][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 15:28:34,825 [ INFO][       Thread-259398][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 15:28:34,832 [DEBUG][       Thread-259398][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 15:28:34,832 [DEBUG][       Thread-259398][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 15:28:34,832 [DEBUG][       Thread-259398][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 15:28:34,832 [DEBUG][       Thread-259398][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:28:34,833 [DEBUG][       Thread-259398][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:28:34,833 [DEBUG][       Thread-259398][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:28:34,833 [DEBUG][       Thread-259398][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:28:34,833 [DEBUG][       Thread-259398][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 15:28:34,833 [DEBUG][       Thread-259398][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 15:28:34,833 [DEBUG][       Thread-259398][   transport.py][1871] : client lang: <none>
2025-06-13 15:28:34,833 [DEBUG][       Thread-259398][   transport.py][1871] : server lang: <none>
2025-06-13 15:28:34,833 [DEBUG][       Thread-259398][   transport.py][1871] : kex follows: False
2025-06-13 15:28:34,833 [DEBUG][       Thread-259398][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 15:28:34,833 [DEBUG][       Thread-259398][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 15:28:34,833 [DEBUG][       Thread-259398][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 15:28:34,833 [DEBUG][       Thread-259398][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 15:28:34,833 [DEBUG][       Thread-259398][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 15:28:34,833 [DEBUG][       Thread-259398][   transport.py][1871] : Compression: none
2025-06-13 15:28:34,833 [DEBUG][       Thread-259398][   transport.py][1871] : === End of kex handshake ===
2025-06-13 15:28:34,895 [DEBUG][       Thread-259398][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 15:28:34,896 [DEBUG][       Thread-259398][   transport.py][1871] : Switch to new keys ...
2025-06-13 15:28:34,897 [DEBUG][       Thread-259398][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 15:28:34,897 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 15:28:34,898 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 15:28:34,961 [DEBUG][       Thread-259398][   transport.py][1871] : userauth is OK
2025-06-13 15:28:34,962 [DEBUG][       Thread-259398][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 15:28:34,962 [DEBUG][       Thread-259398][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 15:28:34,962 [DEBUG][       Thread-259398][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 15:28:34,962 [DEBUG][       Thread-259398][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 15:28:34,983 [ INFO][       Thread-259398][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 15:28:34,984 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 15:28:34,984 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 15:28:35,990 [DEBUG][       Thread-259398][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 15:28:35,990 [DEBUG][       Thread-259398][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 15:28:36,040 [DEBUG][       Thread-259398][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 15:28:36,040 [DEBUG][       Thread-259398][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 15:28:36,050 [DEBUG][       Thread-259398][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 15:28:36,059 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 15:28:36,059 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 15:28:36,069 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 15:28:36,078 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 15:28:36,079 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 15:28:36,079 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 15:28:36,087 [DEBUG][       Thread-259398][   transport.py][1871] : EOF in transport thread
2025-06-13 15:28:42,653 [DEBUG][Thread-259400 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:28:46,090 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 15:28:46,090 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 15:28:46,090 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 15:28:46,092 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 15:28:46,552 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 15, 28, 27), 18.37, 27.71, 0.0, 16.0, 14.02, 0, 0, 0, 2, 0, 0),)
2025-06-13 15:28:46,552 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 15:28:27
2025-06-13 15:28:46,633 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 15:28:46,638 [DEBUG][       Thread-259401][   transport.py][1871] : starting thread (client mode): 0x863520b0
2025-06-13 15:28:46,638 [DEBUG][       Thread-259401][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 15:28:46,663 [DEBUG][       Thread-259401][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 15:28:46,663 [ INFO][       Thread-259401][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 15:28:46,666 [DEBUG][       Thread-259401][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 15:28:46,667 [DEBUG][       Thread-259401][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 15:28:46,667 [DEBUG][       Thread-259401][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 15:28:46,667 [DEBUG][       Thread-259401][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:28:46,667 [DEBUG][       Thread-259401][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:28:46,667 [DEBUG][       Thread-259401][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:28:46,667 [DEBUG][       Thread-259401][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:28:46,667 [DEBUG][       Thread-259401][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 15:28:46,667 [DEBUG][       Thread-259401][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 15:28:46,667 [DEBUG][       Thread-259401][   transport.py][1871] : client lang: <none>
2025-06-13 15:28:46,667 [DEBUG][       Thread-259401][   transport.py][1871] : server lang: <none>
2025-06-13 15:28:46,667 [DEBUG][       Thread-259401][   transport.py][1871] : kex follows: False
2025-06-13 15:28:46,667 [DEBUG][       Thread-259401][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 15:28:46,667 [DEBUG][       Thread-259401][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 15:28:46,667 [DEBUG][       Thread-259401][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 15:28:46,667 [DEBUG][       Thread-259401][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 15:28:46,667 [DEBUG][       Thread-259401][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 15:28:46,667 [DEBUG][       Thread-259401][   transport.py][1871] : Compression: none
2025-06-13 15:28:46,667 [DEBUG][       Thread-259401][   transport.py][1871] : === End of kex handshake ===
2025-06-13 15:28:46,688 [DEBUG][       Thread-259401][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 15:28:46,688 [DEBUG][       Thread-259401][   transport.py][1871] : Switch to new keys ...
2025-06-13 15:28:46,689 [DEBUG][       Thread-259401][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 15:28:46,689 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 15:28:46,689 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 15:28:46,690 [DEBUG][       Thread-259401][   transport.py][1871] : userauth is OK
2025-06-13 15:28:46,703 [ INFO][       Thread-259401][   transport.py][1871] : Authentication (password) successful!
2025-06-13 15:28:46,704 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 15:28:47,338 [DEBUG][       Thread-259401][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 15:28:47,338 [DEBUG][       Thread-259401][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 15:28:47,380 [DEBUG][       Thread-259401][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 15:28:47,381 [DEBUG][       Thread-259401][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 15:28:47,383 [DEBUG][       Thread-259401][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 15:28:47,395 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 15:28:47,395 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 15:28:47,397 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 15:28:47,398 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 15:28:47,403 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 15:28:47,405 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 15:28:47,405 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 15:28:47,406 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 15:28:47,406 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.561394 -999.00  +13.80  19.65     33   -2.00 1 1 1 1 1   887    0 16.10 15.93 ----- 22.7 19.6 59.6 21.7 17.1 -31.8 16.0 -33.3 16.9 -31.1 17.9 -29.8
2025-06-13 15:28:47,406 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 15:28:47,406 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 15:28:47,406 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.561394
2025-06-13 15:28:47,406 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 15:28:47,407 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 15:28:47,407 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 15:28:47,407 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 15:28:47,407 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 15:28:47,407 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T15:28:27', tmtdew=18.37, humidity=27.71, cloud=0.0, wind=16.0, temperature=14.02, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T13:28:24.442', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 15:28:47,407 [DEBUG][       Thread-259401][   transport.py][1871] : EOF in transport thread
2025-06-13 15:28:47,491 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 15:28:47,500 [DEBUG][       Thread-259404][   transport.py][1871] : starting thread (client mode): 0x863efcd0
2025-06-13 15:28:47,500 [DEBUG][       Thread-259404][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 15:28:47,514 [DEBUG][       Thread-259404][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 15:28:47,514 [ INFO][       Thread-259404][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 15:28:47,522 [DEBUG][       Thread-259404][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 15:28:47,522 [DEBUG][       Thread-259404][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 15:28:47,522 [DEBUG][       Thread-259404][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 15:28:47,522 [DEBUG][       Thread-259404][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:28:47,522 [DEBUG][       Thread-259404][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:28:47,522 [DEBUG][       Thread-259404][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:28:47,522 [DEBUG][       Thread-259404][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:28:47,522 [DEBUG][       Thread-259404][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 15:28:47,522 [DEBUG][       Thread-259404][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 15:28:47,522 [DEBUG][       Thread-259404][   transport.py][1871] : client lang: <none>
2025-06-13 15:28:47,522 [DEBUG][       Thread-259404][   transport.py][1871] : server lang: <none>
2025-06-13 15:28:47,522 [DEBUG][       Thread-259404][   transport.py][1871] : kex follows: False
2025-06-13 15:28:47,522 [DEBUG][       Thread-259404][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 15:28:47,522 [DEBUG][       Thread-259404][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 15:28:47,522 [DEBUG][       Thread-259404][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 15:28:47,523 [DEBUG][       Thread-259404][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 15:28:47,523 [DEBUG][       Thread-259404][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 15:28:47,523 [DEBUG][       Thread-259404][   transport.py][1871] : Compression: none
2025-06-13 15:28:47,523 [DEBUG][       Thread-259404][   transport.py][1871] : === End of kex handshake ===
2025-06-13 15:28:47,581 [DEBUG][       Thread-259404][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 15:28:47,582 [DEBUG][       Thread-259404][   transport.py][1871] : Switch to new keys ...
2025-06-13 15:28:47,582 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 15:28:47,583 [DEBUG][       Thread-259404][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 15:28:47,584 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 15:28:47,637 [DEBUG][       Thread-259404][   transport.py][1871] : userauth is OK
2025-06-13 15:28:47,637 [DEBUG][       Thread-259404][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 15:28:47,637 [DEBUG][       Thread-259404][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 15:28:47,638 [DEBUG][       Thread-259404][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 15:28:47,638 [DEBUG][       Thread-259404][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 15:28:47,663 [ INFO][       Thread-259404][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 15:28:47,664 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 15:28:47,672 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 15:28:48,646 [DEBUG][Thread-259406 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:28:48,665 [DEBUG][       Thread-259404][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 15:28:48,665 [DEBUG][       Thread-259404][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 15:28:48,715 [DEBUG][       Thread-259404][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 15:28:48,715 [DEBUG][       Thread-259404][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 15:28:48,724 [DEBUG][       Thread-259404][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 15:28:48,732 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 15:28:48,732 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 15:28:48,741 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 15:28:48,750 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 15:28:48,750 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 15:28:48,751 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 15:28:48,758 [DEBUG][       Thread-259404][   transport.py][1871] : EOF in transport thread
2025-06-13 15:28:49,714 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:28:49,715 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:28:51,688 [DEBUG][Thread-259407 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:28:58,761 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 15:28:58,762 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 15:28:58,762 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 15:28:58,765 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 15:28:59,224 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 15, 28, 27), 18.37, 27.71, 0.0, 16.0, 14.02, 0, 0, 0, 2, 0, 0),)
2025-06-13 15:28:59,224 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 15:28:27
2025-06-13 15:28:59,305 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 15:28:59,309 [DEBUG][       Thread-259408][   transport.py][1871] : starting thread (client mode): 0x86353850
2025-06-13 15:28:59,309 [DEBUG][       Thread-259408][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 15:28:59,331 [DEBUG][       Thread-259408][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 15:28:59,331 [ INFO][       Thread-259408][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 15:28:59,334 [DEBUG][       Thread-259408][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 15:28:59,334 [DEBUG][       Thread-259408][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 15:28:59,335 [DEBUG][       Thread-259408][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 15:28:59,335 [DEBUG][       Thread-259408][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:28:59,335 [DEBUG][       Thread-259408][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:28:59,335 [DEBUG][       Thread-259408][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:28:59,335 [DEBUG][       Thread-259408][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:28:59,335 [DEBUG][       Thread-259408][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 15:28:59,335 [DEBUG][       Thread-259408][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 15:28:59,335 [DEBUG][       Thread-259408][   transport.py][1871] : client lang: <none>
2025-06-13 15:28:59,335 [DEBUG][       Thread-259408][   transport.py][1871] : server lang: <none>
2025-06-13 15:28:59,335 [DEBUG][       Thread-259408][   transport.py][1871] : kex follows: False
2025-06-13 15:28:59,335 [DEBUG][       Thread-259408][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 15:28:59,335 [DEBUG][       Thread-259408][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 15:28:59,335 [DEBUG][       Thread-259408][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 15:28:59,335 [DEBUG][       Thread-259408][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 15:28:59,335 [DEBUG][       Thread-259408][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 15:28:59,335 [DEBUG][       Thread-259408][   transport.py][1871] : Compression: none
2025-06-13 15:28:59,335 [DEBUG][       Thread-259408][   transport.py][1871] : === End of kex handshake ===
2025-06-13 15:28:59,352 [DEBUG][       Thread-259408][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 15:28:59,353 [DEBUG][       Thread-259408][   transport.py][1871] : Switch to new keys ...
2025-06-13 15:28:59,353 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 15:28:59,354 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 15:28:59,354 [DEBUG][       Thread-259408][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 15:28:59,355 [DEBUG][       Thread-259408][   transport.py][1871] : userauth is OK
2025-06-13 15:28:59,380 [ INFO][       Thread-259408][   transport.py][1871] : Authentication (password) successful!
2025-06-13 15:28:59,381 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 15:29:00,025 [DEBUG][       Thread-259408][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 15:29:00,025 [DEBUG][       Thread-259408][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 15:29:00,069 [DEBUG][       Thread-259408][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 15:29:00,069 [DEBUG][       Thread-259408][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 15:29:00,073 [DEBUG][       Thread-259408][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 15:29:00,084 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 15:29:00,084 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 15:29:00,086 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 15:29:00,087 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 15:29:00,093 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 15:29:00,095 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 15:29:00,095 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 15:29:00,096 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 15:29:00,096 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.561394 -999.00  +13.80  19.65     33   -2.00 1 1 1 1 1   887    0 16.10 15.93 ----- 22.7 19.6 59.6 21.7 17.1 -31.8 16.0 -33.3 16.9 -31.1 17.9 -29.8
2025-06-13 15:29:00,096 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 15:29:00,096 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 15:29:00,096 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.561394
2025-06-13 15:29:00,096 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 15:29:00,097 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 15:29:00,097 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 15:29:00,097 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 15:29:00,097 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 15:29:00,097 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T15:28:27', tmtdew=18.37, humidity=27.71, cloud=0.0, wind=16.0, temperature=14.02, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T13:28:24.442', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 15:29:00,098 [DEBUG][       Thread-259408][   transport.py][1871] : EOF in transport thread
2025-06-13 15:29:00,180 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 15:29:00,192 [DEBUG][       Thread-259411][   transport.py][1871] : starting thread (client mode): 0x867b7130
2025-06-13 15:29:00,192 [DEBUG][       Thread-259411][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 15:29:00,206 [DEBUG][       Thread-259411][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 15:29:00,206 [ INFO][       Thread-259411][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 15:29:00,216 [DEBUG][       Thread-259411][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 15:29:00,216 [DEBUG][       Thread-259411][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 15:29:00,216 [DEBUG][       Thread-259411][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 15:29:00,216 [DEBUG][       Thread-259411][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:29:00,216 [DEBUG][       Thread-259411][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:29:00,216 [DEBUG][       Thread-259411][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:29:00,216 [DEBUG][       Thread-259411][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:29:00,216 [DEBUG][       Thread-259411][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 15:29:00,216 [DEBUG][       Thread-259411][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 15:29:00,216 [DEBUG][       Thread-259411][   transport.py][1871] : client lang: <none>
2025-06-13 15:29:00,216 [DEBUG][       Thread-259411][   transport.py][1871] : server lang: <none>
2025-06-13 15:29:00,216 [DEBUG][       Thread-259411][   transport.py][1871] : kex follows: False
2025-06-13 15:29:00,216 [DEBUG][       Thread-259411][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 15:29:00,216 [DEBUG][       Thread-259411][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 15:29:00,217 [DEBUG][       Thread-259411][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 15:29:00,217 [DEBUG][       Thread-259411][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 15:29:00,217 [DEBUG][       Thread-259411][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 15:29:00,217 [DEBUG][       Thread-259411][   transport.py][1871] : Compression: none
2025-06-13 15:29:00,217 [DEBUG][       Thread-259411][   transport.py][1871] : === End of kex handshake ===
2025-06-13 15:29:00,276 [DEBUG][       Thread-259411][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 15:29:00,276 [DEBUG][       Thread-259411][   transport.py][1871] : Switch to new keys ...
2025-06-13 15:29:00,276 [DEBUG][       Thread-259411][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 15:29:00,276 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 15:29:00,276 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 15:29:00,337 [DEBUG][       Thread-259411][   transport.py][1871] : userauth is OK
2025-06-13 15:29:00,337 [DEBUG][       Thread-259411][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 15:29:00,337 [DEBUG][       Thread-259411][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 15:29:00,337 [DEBUG][       Thread-259411][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 15:29:00,337 [DEBUG][       Thread-259411][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 15:29:00,355 [ INFO][       Thread-259411][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 15:29:00,355 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 15:29:00,355 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 15:29:00,706 [DEBUG][Thread-259413 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:29:01,336 [DEBUG][       Thread-259411][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 15:29:01,336 [DEBUG][       Thread-259411][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 15:29:01,383 [DEBUG][       Thread-259411][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 15:29:01,383 [DEBUG][       Thread-259411][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 15:29:01,392 [DEBUG][       Thread-259411][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 15:29:01,399 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 15:29:01,399 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 15:29:01,407 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 15:29:01,415 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 15:29:01,415 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 15:29:01,415 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 15:29:01,423 [DEBUG][       Thread-259411][   transport.py][1871] : EOF in transport thread
2025-06-13 15:29:09,460 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:29:09,461 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:29:09,729 [DEBUG][Thread-259414 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:29:11,425 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 15:29:11,426 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 15:29:11,426 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 15:29:11,428 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 15:29:11,884 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 15, 28, 59), 18.46, 27.53, 0.0, 15.35, 14.02, 0, 0, 0, 2, 0, 0),)
2025-06-13 15:29:11,884 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 15:28:59
2025-06-13 15:29:11,965 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 15:29:11,971 [DEBUG][       Thread-259415][   transport.py][1871] : starting thread (client mode): 0x863515a0
2025-06-13 15:29:11,972 [DEBUG][       Thread-259415][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 15:29:11,991 [DEBUG][       Thread-259415][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 15:29:11,992 [ INFO][       Thread-259415][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 15:29:11,995 [DEBUG][       Thread-259415][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 15:29:11,995 [DEBUG][       Thread-259415][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 15:29:11,995 [DEBUG][       Thread-259415][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 15:29:11,995 [DEBUG][       Thread-259415][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:29:11,995 [DEBUG][       Thread-259415][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:29:11,995 [DEBUG][       Thread-259415][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:29:11,995 [DEBUG][       Thread-259415][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:29:11,995 [DEBUG][       Thread-259415][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 15:29:11,995 [DEBUG][       Thread-259415][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 15:29:11,995 [DEBUG][       Thread-259415][   transport.py][1871] : client lang: <none>
2025-06-13 15:29:11,995 [DEBUG][       Thread-259415][   transport.py][1871] : server lang: <none>
2025-06-13 15:29:11,995 [DEBUG][       Thread-259415][   transport.py][1871] : kex follows: False
2025-06-13 15:29:11,995 [DEBUG][       Thread-259415][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 15:29:11,995 [DEBUG][       Thread-259415][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 15:29:11,995 [DEBUG][       Thread-259415][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 15:29:11,995 [DEBUG][       Thread-259415][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 15:29:11,995 [DEBUG][       Thread-259415][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 15:29:11,995 [DEBUG][       Thread-259415][   transport.py][1871] : Compression: none
2025-06-13 15:29:11,995 [DEBUG][       Thread-259415][   transport.py][1871] : === End of kex handshake ===
2025-06-13 15:29:12,012 [DEBUG][       Thread-259415][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 15:29:12,012 [DEBUG][       Thread-259415][   transport.py][1871] : Switch to new keys ...
2025-06-13 15:29:12,013 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 15:29:12,013 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 15:29:12,014 [DEBUG][       Thread-259415][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 15:29:12,014 [DEBUG][       Thread-259415][   transport.py][1871] : userauth is OK
2025-06-13 15:29:12,027 [ INFO][       Thread-259415][   transport.py][1871] : Authentication (password) successful!
2025-06-13 15:29:12,028 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 15:29:12,679 [DEBUG][       Thread-259415][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 15:29:12,680 [DEBUG][       Thread-259415][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 15:29:12,721 [DEBUG][       Thread-259415][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 15:29:12,721 [DEBUG][       Thread-259415][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 15:29:12,725 [DEBUG][       Thread-259415][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 15:29:12,737 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 15:29:12,738 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 15:29:12,740 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 15:29:12,742 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 15:29:12,749 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 15:29:12,751 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 15:29:12,751 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 15:29:12,752 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 15:29:12,752 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.561394 -999.00  +13.80  19.65     33   -2.00 1 1 1 1 1   887    0 16.10 15.93 ----- 22.7 19.6 59.6 21.7 17.1 -31.8 16.0 -33.3 16.9 -31.1 17.9 -29.8
2025-06-13 15:29:12,752 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 15:29:12,752 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 15:29:12,752 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.561394
2025-06-13 15:29:12,752 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 15:29:12,753 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 15:29:12,753 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 15:29:12,753 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 15:29:12,753 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 15:29:12,753 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T15:28:59', tmtdew=18.46, humidity=27.53, cloud=0.0, wind=15.35, temperature=14.02, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T13:28:24.442', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 15:29:12,755 [DEBUG][       Thread-259415][   transport.py][1871] : EOF in transport thread
2025-06-13 15:29:12,838 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 15:29:12,850 [DEBUG][       Thread-259418][   transport.py][1871] : starting thread (client mode): 0x863ecdc0
2025-06-13 15:29:12,850 [DEBUG][       Thread-259418][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 15:29:12,866 [DEBUG][       Thread-259418][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 15:29:12,866 [ INFO][       Thread-259418][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 15:29:12,876 [DEBUG][       Thread-259418][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 15:29:12,876 [DEBUG][       Thread-259418][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 15:29:12,876 [DEBUG][       Thread-259418][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 15:29:12,876 [DEBUG][       Thread-259418][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:29:12,877 [DEBUG][       Thread-259418][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:29:12,877 [DEBUG][       Thread-259418][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:29:12,877 [DEBUG][       Thread-259418][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:29:12,877 [DEBUG][       Thread-259418][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 15:29:12,877 [DEBUG][       Thread-259418][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 15:29:12,877 [DEBUG][       Thread-259418][   transport.py][1871] : client lang: <none>
2025-06-13 15:29:12,877 [DEBUG][       Thread-259418][   transport.py][1871] : server lang: <none>
2025-06-13 15:29:12,877 [DEBUG][       Thread-259418][   transport.py][1871] : kex follows: False
2025-06-13 15:29:12,877 [DEBUG][       Thread-259418][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 15:29:12,877 [DEBUG][       Thread-259418][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 15:29:12,877 [DEBUG][       Thread-259418][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 15:29:12,877 [DEBUG][       Thread-259418][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 15:29:12,877 [DEBUG][       Thread-259418][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 15:29:12,877 [DEBUG][       Thread-259418][   transport.py][1871] : Compression: none
2025-06-13 15:29:12,877 [DEBUG][       Thread-259418][   transport.py][1871] : === End of kex handshake ===
2025-06-13 15:29:12,933 [DEBUG][       Thread-259418][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 15:29:12,934 [DEBUG][       Thread-259418][   transport.py][1871] : Switch to new keys ...
2025-06-13 15:29:12,934 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 15:29:12,935 [DEBUG][       Thread-259418][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 15:29:12,936 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 15:29:12,989 [DEBUG][       Thread-259418][   transport.py][1871] : userauth is OK
2025-06-13 15:29:12,989 [DEBUG][       Thread-259418][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 15:29:12,989 [DEBUG][       Thread-259418][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 15:29:12,989 [DEBUG][       Thread-259418][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 15:29:12,989 [DEBUG][       Thread-259418][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 15:29:13,009 [ INFO][       Thread-259418][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 15:29:13,009 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 15:29:13,010 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 15:29:13,976 [DEBUG][       Thread-259418][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 15:29:13,976 [DEBUG][       Thread-259418][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 15:29:14,024 [DEBUG][       Thread-259418][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 15:29:14,024 [DEBUG][       Thread-259418][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 15:29:14,033 [DEBUG][       Thread-259418][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 15:29:14,042 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 15:29:14,042 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 15:29:14,051 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 15:29:14,060 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 15:29:14,060 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 15:29:14,061 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 15:29:14,069 [DEBUG][       Thread-259418][   transport.py][1871] : EOF in transport thread
2025-06-13 15:29:18,751 [DEBUG][Thread-259420 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:29:21,197 [DEBUG][Thread-259421 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:29:24,071 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 15:29:24,071 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 15:29:24,071 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 15:29:24,074 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 15:29:24,528 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 15, 28, 59), 18.46, 27.53, 0.0, 15.35, 14.02, 0, 0, 0, 2, 0, 0),)
2025-06-13 15:29:24,528 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 15:28:59
2025-06-13 15:29:24,608 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 15:29:24,612 [DEBUG][       Thread-259422][   transport.py][1871] : starting thread (client mode): 0x863ed540
2025-06-13 15:29:24,612 [DEBUG][       Thread-259422][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 15:29:24,634 [DEBUG][       Thread-259422][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 15:29:24,634 [ INFO][       Thread-259422][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 15:29:24,638 [DEBUG][       Thread-259422][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 15:29:24,638 [DEBUG][       Thread-259422][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 15:29:24,638 [DEBUG][       Thread-259422][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 15:29:24,638 [DEBUG][       Thread-259422][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:29:24,638 [DEBUG][       Thread-259422][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:29:24,638 [DEBUG][       Thread-259422][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:29:24,638 [DEBUG][       Thread-259422][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:29:24,638 [DEBUG][       Thread-259422][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 15:29:24,638 [DEBUG][       Thread-259422][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 15:29:24,638 [DEBUG][       Thread-259422][   transport.py][1871] : client lang: <none>
2025-06-13 15:29:24,638 [DEBUG][       Thread-259422][   transport.py][1871] : server lang: <none>
2025-06-13 15:29:24,638 [DEBUG][       Thread-259422][   transport.py][1871] : kex follows: False
2025-06-13 15:29:24,638 [DEBUG][       Thread-259422][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 15:29:24,638 [DEBUG][       Thread-259422][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 15:29:24,638 [DEBUG][       Thread-259422][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 15:29:24,639 [DEBUG][       Thread-259422][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 15:29:24,639 [DEBUG][       Thread-259422][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 15:29:24,639 [DEBUG][       Thread-259422][   transport.py][1871] : Compression: none
2025-06-13 15:29:24,639 [DEBUG][       Thread-259422][   transport.py][1871] : === End of kex handshake ===
2025-06-13 15:29:24,655 [DEBUG][       Thread-259422][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 15:29:24,655 [DEBUG][       Thread-259422][   transport.py][1871] : Switch to new keys ...
2025-06-13 15:29:24,656 [DEBUG][       Thread-259422][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 15:29:24,656 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 15:29:24,656 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 15:29:24,657 [DEBUG][       Thread-259422][   transport.py][1871] : userauth is OK
2025-06-13 15:29:24,670 [ INFO][       Thread-259422][   transport.py][1871] : Authentication (password) successful!
2025-06-13 15:29:24,670 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 15:29:25,321 [DEBUG][       Thread-259422][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 15:29:25,321 [DEBUG][       Thread-259422][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 15:29:25,365 [DEBUG][       Thread-259422][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 15:29:25,365 [DEBUG][       Thread-259422][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 15:29:25,368 [DEBUG][       Thread-259422][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 15:29:25,380 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 15:29:25,380 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 15:29:25,382 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 15:29:25,383 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 15:29:25,388 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 15:29:25,390 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 15:29:25,390 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 15:29:25,391 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 15:29:25,391 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.561741 -999.00  +13.70  21.64     32   -2.40 1 1 1 1 1   887    0 16.11 17.80 ----- 21.3 21.6 45.2 31.2 17.0 -32.1 16.0 -33.7 16.9 -32.6 17.9 -31.1
2025-06-13 15:29:25,391 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 15:29:25,391 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 15:29:25,391 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.561741
2025-06-13 15:29:25,391 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 15:29:25,392 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 15:29:25,392 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 15:29:25,392 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 15:29:25,392 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 15:29:25,392 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T15:28:59', tmtdew=18.46, humidity=27.53, cloud=0.0, wind=15.35, temperature=14.02, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T13:28:54.422', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 15:29:25,393 [DEBUG][       Thread-259422][   transport.py][1871] : EOF in transport thread
2025-06-13 15:29:25,474 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 15:29:25,483 [DEBUG][       Thread-259425][   transport.py][1871] : starting thread (client mode): 0x863be1a0
2025-06-13 15:29:25,484 [DEBUG][       Thread-259425][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 15:29:25,499 [DEBUG][       Thread-259425][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 15:29:25,499 [ INFO][       Thread-259425][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 15:29:25,506 [DEBUG][       Thread-259425][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 15:29:25,506 [DEBUG][       Thread-259425][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 15:29:25,507 [DEBUG][       Thread-259425][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 15:29:25,507 [DEBUG][       Thread-259425][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:29:25,507 [DEBUG][       Thread-259425][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:29:25,507 [DEBUG][       Thread-259425][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:29:25,507 [DEBUG][       Thread-259425][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:29:25,507 [DEBUG][       Thread-259425][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 15:29:25,507 [DEBUG][       Thread-259425][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 15:29:25,507 [DEBUG][       Thread-259425][   transport.py][1871] : client lang: <none>
2025-06-13 15:29:25,507 [DEBUG][       Thread-259425][   transport.py][1871] : server lang: <none>
2025-06-13 15:29:25,507 [DEBUG][       Thread-259425][   transport.py][1871] : kex follows: False
2025-06-13 15:29:25,507 [DEBUG][       Thread-259425][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 15:29:25,507 [DEBUG][       Thread-259425][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 15:29:25,507 [DEBUG][       Thread-259425][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 15:29:25,507 [DEBUG][       Thread-259425][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 15:29:25,507 [DEBUG][       Thread-259425][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 15:29:25,507 [DEBUG][       Thread-259425][   transport.py][1871] : Compression: none
2025-06-13 15:29:25,507 [DEBUG][       Thread-259425][   transport.py][1871] : === End of kex handshake ===
2025-06-13 15:29:25,564 [DEBUG][       Thread-259425][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 15:29:25,564 [DEBUG][       Thread-259425][   transport.py][1871] : Switch to new keys ...
2025-06-13 15:29:25,565 [DEBUG][       Thread-259425][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 15:29:25,565 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 15:29:25,566 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 15:29:25,621 [DEBUG][       Thread-259425][   transport.py][1871] : userauth is OK
2025-06-13 15:29:25,621 [DEBUG][       Thread-259425][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 15:29:25,621 [DEBUG][       Thread-259425][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 15:29:25,621 [DEBUG][       Thread-259425][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 15:29:25,621 [DEBUG][       Thread-259425][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 15:29:25,640 [ INFO][       Thread-259425][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 15:29:25,640 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 15:29:25,641 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 15:29:26,656 [DEBUG][       Thread-259425][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 15:29:26,656 [DEBUG][       Thread-259425][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 15:29:26,708 [DEBUG][       Thread-259425][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 15:29:26,708 [DEBUG][       Thread-259425][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 15:29:26,719 [DEBUG][       Thread-259425][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 15:29:26,728 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 15:29:26,728 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 15:29:26,741 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 15:29:26,750 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 15:29:26,750 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 15:29:26,750 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 15:29:26,758 [DEBUG][       Thread-259425][   transport.py][1871] : EOF in transport thread
2025-06-13 15:29:27,782 [DEBUG][Thread-259427 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:29:36,761 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 15:29:36,761 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 15:29:36,761 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 15:29:36,762 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 15:29:36,798 [DEBUG][Thread-259428 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:29:37,209 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 15, 29, 31), 18.34, 27.69, 0.0, 22.0, 14.04, 0, 0, 0, 2, 0, 0),)
2025-06-13 15:29:37,209 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 15:29:31
2025-06-13 15:29:37,290 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 15:29:37,296 [DEBUG][       Thread-259429][   transport.py][1871] : starting thread (client mode): 0x86351330
2025-06-13 15:29:37,296 [DEBUG][       Thread-259429][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 15:29:37,317 [DEBUG][       Thread-259429][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 15:29:37,317 [ INFO][       Thread-259429][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 15:29:37,320 [DEBUG][       Thread-259429][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 15:29:37,320 [DEBUG][       Thread-259429][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 15:29:37,320 [DEBUG][       Thread-259429][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 15:29:37,321 [DEBUG][       Thread-259429][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:29:37,321 [DEBUG][       Thread-259429][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:29:37,321 [DEBUG][       Thread-259429][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:29:37,321 [DEBUG][       Thread-259429][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:29:37,321 [DEBUG][       Thread-259429][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 15:29:37,321 [DEBUG][       Thread-259429][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 15:29:37,321 [DEBUG][       Thread-259429][   transport.py][1871] : client lang: <none>
2025-06-13 15:29:37,321 [DEBUG][       Thread-259429][   transport.py][1871] : server lang: <none>
2025-06-13 15:29:37,321 [DEBUG][       Thread-259429][   transport.py][1871] : kex follows: False
2025-06-13 15:29:37,321 [DEBUG][       Thread-259429][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 15:29:37,321 [DEBUG][       Thread-259429][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 15:29:37,321 [DEBUG][       Thread-259429][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 15:29:37,321 [DEBUG][       Thread-259429][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 15:29:37,321 [DEBUG][       Thread-259429][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 15:29:37,321 [DEBUG][       Thread-259429][   transport.py][1871] : Compression: none
2025-06-13 15:29:37,321 [DEBUG][       Thread-259429][   transport.py][1871] : === End of kex handshake ===
2025-06-13 15:29:37,335 [DEBUG][       Thread-259429][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 15:29:37,335 [DEBUG][       Thread-259429][   transport.py][1871] : Switch to new keys ...
2025-06-13 15:29:37,336 [DEBUG][       Thread-259429][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 15:29:37,336 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 15:29:37,336 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 15:29:37,337 [DEBUG][       Thread-259429][   transport.py][1871] : userauth is OK
2025-06-13 15:29:37,351 [ INFO][       Thread-259429][   transport.py][1871] : Authentication (password) successful!
2025-06-13 15:29:37,351 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 15:29:37,981 [DEBUG][       Thread-259429][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 15:29:37,981 [DEBUG][       Thread-259429][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 15:29:38,025 [DEBUG][       Thread-259429][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 15:29:38,025 [DEBUG][       Thread-259429][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 15:29:38,028 [DEBUG][       Thread-259429][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 15:29:38,040 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 15:29:38,041 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 15:29:38,043 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 15:29:38,044 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 15:29:38,050 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 15:29:38,052 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 15:29:38,053 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 15:29:38,053 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 15:29:38,053 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.561741 -999.00  +13.70  21.64     32   -2.40 1 1 1 1 1   887    0 16.11 17.80 ----- 21.3 21.6 45.2 31.2 17.0 -32.1 16.0 -33.7 16.9 -32.6 17.9 -31.1
2025-06-13 15:29:38,053 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 15:29:38,053 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 15:29:38,054 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.561741
2025-06-13 15:29:38,054 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 15:29:38,054 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 15:29:38,055 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 15:29:38,055 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 15:29:38,055 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 15:29:38,055 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T15:29:31', tmtdew=18.34, humidity=27.69, cloud=0.0, wind=22.0, temperature=14.04, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T13:28:54.422', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 15:29:38,055 [DEBUG][       Thread-259429][   transport.py][1871] : EOF in transport thread
2025-06-13 15:29:38,138 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 15:29:38,151 [DEBUG][       Thread-259432][   transport.py][1871] : starting thread (client mode): 0x863be170
2025-06-13 15:29:38,151 [DEBUG][       Thread-259432][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 15:29:38,166 [DEBUG][       Thread-259432][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 15:29:38,166 [ INFO][       Thread-259432][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 15:29:38,174 [DEBUG][       Thread-259432][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 15:29:38,174 [DEBUG][       Thread-259432][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 15:29:38,174 [DEBUG][       Thread-259432][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 15:29:38,174 [DEBUG][       Thread-259432][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:29:38,174 [DEBUG][       Thread-259432][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:29:38,174 [DEBUG][       Thread-259432][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:29:38,174 [DEBUG][       Thread-259432][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:29:38,174 [DEBUG][       Thread-259432][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 15:29:38,174 [DEBUG][       Thread-259432][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 15:29:38,174 [DEBUG][       Thread-259432][   transport.py][1871] : client lang: <none>
2025-06-13 15:29:38,174 [DEBUG][       Thread-259432][   transport.py][1871] : server lang: <none>
2025-06-13 15:29:38,174 [DEBUG][       Thread-259432][   transport.py][1871] : kex follows: False
2025-06-13 15:29:38,174 [DEBUG][       Thread-259432][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 15:29:38,174 [DEBUG][       Thread-259432][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 15:29:38,174 [DEBUG][       Thread-259432][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 15:29:38,175 [DEBUG][       Thread-259432][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 15:29:38,175 [DEBUG][       Thread-259432][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 15:29:38,175 [DEBUG][       Thread-259432][   transport.py][1871] : Compression: none
2025-06-13 15:29:38,175 [DEBUG][       Thread-259432][   transport.py][1871] : === End of kex handshake ===
2025-06-13 15:29:38,243 [DEBUG][       Thread-259432][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 15:29:38,244 [DEBUG][       Thread-259432][   transport.py][1871] : Switch to new keys ...
2025-06-13 15:29:38,244 [DEBUG][       Thread-259432][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 15:29:38,244 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 15:29:38,245 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 15:29:38,305 [DEBUG][       Thread-259432][   transport.py][1871] : userauth is OK
2025-06-13 15:29:38,305 [DEBUG][       Thread-259432][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 15:29:38,305 [DEBUG][       Thread-259432][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 15:29:38,306 [DEBUG][       Thread-259432][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 15:29:38,306 [DEBUG][       Thread-259432][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 15:29:38,332 [ INFO][       Thread-259432][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 15:29:38,333 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 15:29:38,333 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 15:29:39,342 [DEBUG][       Thread-259432][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 15:29:39,343 [DEBUG][       Thread-259432][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 15:29:39,392 [DEBUG][       Thread-259432][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 15:29:39,392 [DEBUG][       Thread-259432][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 15:29:39,402 [DEBUG][       Thread-259432][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 15:29:39,411 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 15:29:39,412 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 15:29:39,421 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 15:29:39,430 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 15:29:39,430 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 15:29:39,431 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 15:29:39,439 [DEBUG][       Thread-259432][   transport.py][1871] : EOF in transport thread
2025-06-13 15:29:45,820 [DEBUG][Thread-259434 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:29:49,441 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 15:29:49,442 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 15:29:49,442 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 15:29:49,444 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 15:29:49,748 [DEBUG][Thread-259435 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:29:49,905 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 15, 29, 31), 18.34, 27.69, 0.0, 22.0, 14.04, 0, 0, 0, 2, 0, 0),)
2025-06-13 15:29:49,905 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 15:29:31
2025-06-13 15:29:49,986 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 15:29:49,990 [DEBUG][       Thread-259436][   transport.py][1871] : starting thread (client mode): 0x863eeef0
2025-06-13 15:29:49,990 [DEBUG][       Thread-259436][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 15:29:50,010 [DEBUG][       Thread-259436][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 15:29:50,010 [ INFO][       Thread-259436][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 15:29:50,013 [DEBUG][       Thread-259436][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 15:29:50,013 [DEBUG][       Thread-259436][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 15:29:50,013 [DEBUG][       Thread-259436][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 15:29:50,013 [DEBUG][       Thread-259436][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:29:50,013 [DEBUG][       Thread-259436][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:29:50,013 [DEBUG][       Thread-259436][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:29:50,014 [DEBUG][       Thread-259436][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:29:50,014 [DEBUG][       Thread-259436][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 15:29:50,014 [DEBUG][       Thread-259436][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 15:29:50,014 [DEBUG][       Thread-259436][   transport.py][1871] : client lang: <none>
2025-06-13 15:29:50,014 [DEBUG][       Thread-259436][   transport.py][1871] : server lang: <none>
2025-06-13 15:29:50,014 [DEBUG][       Thread-259436][   transport.py][1871] : kex follows: False
2025-06-13 15:29:50,014 [DEBUG][       Thread-259436][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 15:29:50,014 [DEBUG][       Thread-259436][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 15:29:50,014 [DEBUG][       Thread-259436][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 15:29:50,014 [DEBUG][       Thread-259436][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 15:29:50,014 [DEBUG][       Thread-259436][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 15:29:50,014 [DEBUG][       Thread-259436][   transport.py][1871] : Compression: none
2025-06-13 15:29:50,014 [DEBUG][       Thread-259436][   transport.py][1871] : === End of kex handshake ===
2025-06-13 15:29:50,023 [DEBUG][       Thread-259436][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 15:29:50,023 [DEBUG][       Thread-259436][   transport.py][1871] : Switch to new keys ...
2025-06-13 15:29:50,024 [DEBUG][       Thread-259436][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 15:29:50,024 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 15:29:50,024 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 15:29:50,025 [DEBUG][       Thread-259436][   transport.py][1871] : userauth is OK
2025-06-13 15:29:50,038 [ INFO][       Thread-259436][   transport.py][1871] : Authentication (password) successful!
2025-06-13 15:29:50,039 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 15:29:50,616 [DEBUG][       Thread-259436][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 15:29:50,616 [DEBUG][       Thread-259436][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 15:29:50,657 [DEBUG][       Thread-259436][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 15:29:50,657 [DEBUG][       Thread-259436][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 15:29:50,659 [DEBUG][       Thread-259436][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 15:29:50,667 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 15:29:50,667 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 15:29:50,669 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 15:29:50,671 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 15:29:50,675 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 15:29:50,677 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 15:29:50,677 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 15:29:50,678 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 15:29:50,678 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.562088 -999.00  +13.70  22.34     33   -2.10 1 1 1 1 1   887    0 16.23 18.18 ----- 20.9 22.3 46.8 25.2 17.1 -32.3 16.0 -33.2 16.9 -31.5 18.0 -29.8
2025-06-13 15:29:50,678 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 15:29:50,678 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 15:29:50,678 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.562088
2025-06-13 15:29:50,679 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 15:29:50,679 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 15:29:50,679 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 15:29:50,679 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 15:29:50,679 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 15:29:50,680 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T15:29:31', tmtdew=18.34, humidity=27.69, cloud=0.0, wind=22.0, temperature=14.04, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T13:29:24.403', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 15:29:50,680 [DEBUG][       Thread-259436][   transport.py][1871] : EOF in transport thread
2025-06-13 15:29:50,763 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 15:29:50,772 [DEBUG][       Thread-259439][   transport.py][1871] : starting thread (client mode): 0x863a68f0
2025-06-13 15:29:50,772 [DEBUG][       Thread-259439][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 15:29:50,788 [DEBUG][       Thread-259439][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 15:29:50,788 [ INFO][       Thread-259439][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 15:29:50,795 [DEBUG][       Thread-259439][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 15:29:50,795 [DEBUG][       Thread-259439][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 15:29:50,795 [DEBUG][       Thread-259439][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 15:29:50,795 [DEBUG][       Thread-259439][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:29:50,795 [DEBUG][       Thread-259439][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:29:50,795 [DEBUG][       Thread-259439][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:29:50,795 [DEBUG][       Thread-259439][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:29:50,795 [DEBUG][       Thread-259439][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 15:29:50,795 [DEBUG][       Thread-259439][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 15:29:50,795 [DEBUG][       Thread-259439][   transport.py][1871] : client lang: <none>
2025-06-13 15:29:50,795 [DEBUG][       Thread-259439][   transport.py][1871] : server lang: <none>
2025-06-13 15:29:50,795 [DEBUG][       Thread-259439][   transport.py][1871] : kex follows: False
2025-06-13 15:29:50,796 [DEBUG][       Thread-259439][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 15:29:50,796 [DEBUG][       Thread-259439][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 15:29:50,796 [DEBUG][       Thread-259439][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 15:29:50,796 [DEBUG][       Thread-259439][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 15:29:50,796 [DEBUG][       Thread-259439][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 15:29:50,796 [DEBUG][       Thread-259439][   transport.py][1871] : Compression: none
2025-06-13 15:29:50,796 [DEBUG][       Thread-259439][   transport.py][1871] : === End of kex handshake ===
2025-06-13 15:29:50,810 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:29:50,812 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:29:50,852 [DEBUG][       Thread-259439][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 15:29:50,853 [DEBUG][       Thread-259439][   transport.py][1871] : Switch to new keys ...
2025-06-13 15:29:50,853 [DEBUG][       Thread-259439][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 15:29:50,854 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 15:29:50,854 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 15:29:50,909 [DEBUG][       Thread-259439][   transport.py][1871] : userauth is OK
2025-06-13 15:29:50,909 [DEBUG][       Thread-259439][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 15:29:50,910 [DEBUG][       Thread-259439][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 15:29:50,910 [DEBUG][       Thread-259439][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 15:29:50,910 [DEBUG][       Thread-259439][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 15:29:50,928 [ INFO][       Thread-259439][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 15:29:50,929 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 15:29:50,929 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 15:29:51,982 [DEBUG][       Thread-259439][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 15:29:51,982 [DEBUG][       Thread-259439][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 15:29:52,032 [DEBUG][       Thread-259439][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 15:29:52,033 [DEBUG][       Thread-259439][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 15:29:52,043 [DEBUG][       Thread-259439][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 15:29:52,053 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 15:29:52,053 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 15:29:52,062 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 15:29:52,071 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 15:29:52,072 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 15:29:52,072 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 15:29:52,080 [DEBUG][       Thread-259439][   transport.py][1871] : EOF in transport thread
2025-06-13 15:29:54,855 [DEBUG][Thread-259441 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:30:02,080 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 15:30:02,080 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 15:30:02,080 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 15:30:02,081 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 15:30:02,536 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 15, 29, 31), 18.34, 27.69, 0.0, 22.0, 14.04, 0, 0, 0, 2, 0, 0),)
2025-06-13 15:30:02,536 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 15:29:31
2025-06-13 15:30:02,618 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 15:30:02,623 [DEBUG][       Thread-259442][   transport.py][1871] : starting thread (client mode): 0x863a7910
2025-06-13 15:30:02,623 [DEBUG][       Thread-259442][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 15:30:02,645 [DEBUG][       Thread-259442][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 15:30:02,645 [ INFO][       Thread-259442][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 15:30:02,649 [DEBUG][       Thread-259442][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 15:30:02,649 [DEBUG][       Thread-259442][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 15:30:02,649 [DEBUG][       Thread-259442][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 15:30:02,649 [DEBUG][       Thread-259442][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:30:02,649 [DEBUG][       Thread-259442][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:30:02,649 [DEBUG][       Thread-259442][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:30:02,649 [DEBUG][       Thread-259442][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:30:02,649 [DEBUG][       Thread-259442][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 15:30:02,649 [DEBUG][       Thread-259442][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 15:30:02,649 [DEBUG][       Thread-259442][   transport.py][1871] : client lang: <none>
2025-06-13 15:30:02,649 [DEBUG][       Thread-259442][   transport.py][1871] : server lang: <none>
2025-06-13 15:30:02,649 [DEBUG][       Thread-259442][   transport.py][1871] : kex follows: False
2025-06-13 15:30:02,649 [DEBUG][       Thread-259442][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 15:30:02,649 [DEBUG][       Thread-259442][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 15:30:02,649 [DEBUG][       Thread-259442][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 15:30:02,649 [DEBUG][       Thread-259442][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 15:30:02,650 [DEBUG][       Thread-259442][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 15:30:02,650 [DEBUG][       Thread-259442][   transport.py][1871] : Compression: none
2025-06-13 15:30:02,650 [DEBUG][       Thread-259442][   transport.py][1871] : === End of kex handshake ===
2025-06-13 15:30:02,666 [DEBUG][       Thread-259442][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 15:30:02,666 [DEBUG][       Thread-259442][   transport.py][1871] : Switch to new keys ...
2025-06-13 15:30:02,667 [DEBUG][       Thread-259442][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 15:30:02,667 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 15:30:02,667 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 15:30:02,668 [DEBUG][       Thread-259442][   transport.py][1871] : userauth is OK
2025-06-13 15:30:02,694 [ INFO][       Thread-259442][   transport.py][1871] : Authentication (password) successful!
2025-06-13 15:30:02,695 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 15:30:03,874 [DEBUG][Thread-259444 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:30:06,741 [DEBUG][       Thread-259442][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 15:30:06,741 [DEBUG][       Thread-259442][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 15:30:06,784 [DEBUG][       Thread-259442][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 15:30:06,785 [DEBUG][       Thread-259442][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 15:30:06,787 [DEBUG][       Thread-259442][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 15:30:06,801 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 15:30:06,801 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 15:30:06,802 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 15:30:06,803 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 15:30:06,839 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 15:30:06,840 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 15:30:06,840 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 15:30:06,840 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 15:30:06,840 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.562088 -999.00  +13.70  22.34     33   -2.10 1 1 1 1 1   887    0 16.23 18.18 ----- 20.9 22.3 46.8 25.2 17.1 -32.3 16.0 -33.2 16.9 -31.5 18.0 -29.8
2025-06-13 15:30:06,840 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 15:30:06,840 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 15:30:06,840 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.562088
2025-06-13 15:30:06,841 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 15:30:06,841 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 15:30:06,841 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 15:30:06,841 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 15:30:06,841 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 15:30:06,841 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T15:29:31', tmtdew=18.34, humidity=27.69, cloud=0.0, wind=22.0, temperature=14.04, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T13:29:24.403', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 15:30:06,841 [DEBUG][       Thread-259442][   transport.py][1871] : EOF in transport thread
2025-06-13 15:30:06,914 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 15:30:06,926 [DEBUG][       Thread-259446][   transport.py][1871] : starting thread (client mode): 0x867b63b0
2025-06-13 15:30:06,926 [DEBUG][       Thread-259446][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 15:30:06,942 [DEBUG][       Thread-259446][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 15:30:06,942 [ INFO][       Thread-259446][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 15:30:06,952 [DEBUG][       Thread-259446][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 15:30:06,952 [DEBUG][       Thread-259446][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 15:30:06,952 [DEBUG][       Thread-259446][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 15:30:06,952 [DEBUG][       Thread-259446][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:30:06,952 [DEBUG][       Thread-259446][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:30:06,952 [DEBUG][       Thread-259446][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:30:06,952 [DEBUG][       Thread-259446][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:30:06,952 [DEBUG][       Thread-259446][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 15:30:06,952 [DEBUG][       Thread-259446][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 15:30:06,952 [DEBUG][       Thread-259446][   transport.py][1871] : client lang: <none>
2025-06-13 15:30:06,952 [DEBUG][       Thread-259446][   transport.py][1871] : server lang: <none>
2025-06-13 15:30:06,952 [DEBUG][       Thread-259446][   transport.py][1871] : kex follows: False
2025-06-13 15:30:06,952 [DEBUG][       Thread-259446][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 15:30:06,952 [DEBUG][       Thread-259446][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 15:30:06,952 [DEBUG][       Thread-259446][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 15:30:06,952 [DEBUG][       Thread-259446][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 15:30:06,952 [DEBUG][       Thread-259446][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 15:30:06,952 [DEBUG][       Thread-259446][   transport.py][1871] : Compression: none
2025-06-13 15:30:06,952 [DEBUG][       Thread-259446][   transport.py][1871] : === End of kex handshake ===
2025-06-13 15:30:07,010 [DEBUG][       Thread-259446][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 15:30:07,010 [DEBUG][       Thread-259446][   transport.py][1871] : Switch to new keys ...
2025-06-13 15:30:07,010 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 15:30:07,010 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 15:30:07,011 [DEBUG][       Thread-259446][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 15:30:07,069 [DEBUG][       Thread-259446][   transport.py][1871] : userauth is OK
2025-06-13 15:30:07,069 [DEBUG][       Thread-259446][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 15:30:07,069 [DEBUG][       Thread-259446][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 15:30:07,069 [DEBUG][       Thread-259446][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 15:30:07,069 [DEBUG][       Thread-259446][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 15:30:07,085 [ INFO][       Thread-259446][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 15:30:07,085 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 15:30:07,085 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 15:30:08,138 [DEBUG][       Thread-259446][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 15:30:08,138 [DEBUG][       Thread-259446][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 15:30:08,187 [DEBUG][       Thread-259446][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 15:30:08,187 [DEBUG][       Thread-259446][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 15:30:08,196 [DEBUG][       Thread-259446][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 15:30:08,204 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 15:30:08,204 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 15:30:08,212 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 15:30:08,220 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 15:30:08,220 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 15:30:08,220 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 15:30:08,232 [DEBUG][       Thread-259446][   transport.py][1871] : EOF in transport thread
2025-06-13 15:30:09,601 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:30:09,601 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:30:12,895 [DEBUG][Thread-259448 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:30:18,231 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 15:30:18,231 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 15:30:18,231 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 15:30:18,235 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 15:30:18,685 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 15, 30, 3), 18.31, 27.76, 0.0, 20.57, 14.09, 0, 0, 0, 2, 0, 0),)
2025-06-13 15:30:18,685 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 15:30:03
2025-06-13 15:30:18,766 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 15:30:18,773 [DEBUG][       Thread-259449][   transport.py][1871] : starting thread (client mode): 0x863bdf30
2025-06-13 15:30:18,774 [DEBUG][       Thread-259449][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 15:30:18,795 [DEBUG][       Thread-259449][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 15:30:18,795 [ INFO][       Thread-259449][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 15:30:18,798 [DEBUG][       Thread-259449][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 15:30:18,798 [DEBUG][       Thread-259449][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 15:30:18,799 [DEBUG][       Thread-259449][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 15:30:18,799 [DEBUG][       Thread-259449][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:30:18,799 [DEBUG][       Thread-259449][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:30:18,799 [DEBUG][       Thread-259449][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:30:18,799 [DEBUG][       Thread-259449][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:30:18,799 [DEBUG][       Thread-259449][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 15:30:18,799 [DEBUG][       Thread-259449][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 15:30:18,799 [DEBUG][       Thread-259449][   transport.py][1871] : client lang: <none>
2025-06-13 15:30:18,799 [DEBUG][       Thread-259449][   transport.py][1871] : server lang: <none>
2025-06-13 15:30:18,799 [DEBUG][       Thread-259449][   transport.py][1871] : kex follows: False
2025-06-13 15:30:18,799 [DEBUG][       Thread-259449][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 15:30:18,799 [DEBUG][       Thread-259449][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 15:30:18,799 [DEBUG][       Thread-259449][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 15:30:18,799 [DEBUG][       Thread-259449][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 15:30:18,799 [DEBUG][       Thread-259449][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 15:30:18,799 [DEBUG][       Thread-259449][   transport.py][1871] : Compression: none
2025-06-13 15:30:18,799 [DEBUG][       Thread-259449][   transport.py][1871] : === End of kex handshake ===
2025-06-13 15:30:18,817 [DEBUG][       Thread-259449][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 15:30:18,817 [DEBUG][       Thread-259449][   transport.py][1871] : Switch to new keys ...
2025-06-13 15:30:18,818 [DEBUG][       Thread-259449][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 15:30:18,818 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 15:30:18,818 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 15:30:18,819 [DEBUG][       Thread-259449][   transport.py][1871] : userauth is OK
2025-06-13 15:30:18,832 [ INFO][       Thread-259449][   transport.py][1871] : Authentication (password) successful!
2025-06-13 15:30:18,833 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 15:30:19,621 [DEBUG][       Thread-259449][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 15:30:19,621 [DEBUG][       Thread-259449][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 15:30:19,665 [DEBUG][       Thread-259449][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 15:30:19,665 [DEBUG][       Thread-259449][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 15:30:19,668 [DEBUG][       Thread-259449][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 15:30:19,679 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 15:30:19,680 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 15:30:19,682 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 15:30:19,683 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 15:30:19,688 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 15:30:19,690 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 15:30:19,690 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 15:30:19,691 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 15:30:19,691 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.562088 -999.00  +13.70  22.34     33   -2.10 1 1 1 1 1   887    0 16.23 18.18 ----- 20.9 22.3 46.8 25.2 17.1 -32.3 16.0 -33.2 16.9 -31.5 18.0 -29.8
2025-06-13 15:30:19,691 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 15:30:19,691 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 15:30:19,691 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.562088
2025-06-13 15:30:19,692 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 15:30:19,692 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 15:30:19,692 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 15:30:19,692 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 15:30:19,692 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 15:30:19,692 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T15:30:03', tmtdew=18.31, humidity=27.76, cloud=0.0, wind=20.57, temperature=14.09, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T13:29:24.403', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 15:30:19,693 [DEBUG][       Thread-259449][   transport.py][1871] : EOF in transport thread
2025-06-13 15:30:19,776 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 15:30:19,787 [DEBUG][       Thread-259452][   transport.py][1871] : starting thread (client mode): 0x863a5780
2025-06-13 15:30:19,787 [DEBUG][       Thread-259452][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 15:30:19,802 [DEBUG][       Thread-259452][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 15:30:19,802 [ INFO][       Thread-259452][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 15:30:19,809 [DEBUG][       Thread-259452][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 15:30:19,809 [DEBUG][       Thread-259452][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 15:30:19,809 [DEBUG][       Thread-259452][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 15:30:19,809 [DEBUG][       Thread-259452][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:30:19,810 [DEBUG][       Thread-259452][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:30:19,810 [DEBUG][       Thread-259452][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:30:19,810 [DEBUG][       Thread-259452][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:30:19,810 [DEBUG][       Thread-259452][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 15:30:19,810 [DEBUG][       Thread-259452][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 15:30:19,810 [DEBUG][       Thread-259452][   transport.py][1871] : client lang: <none>
2025-06-13 15:30:19,810 [DEBUG][       Thread-259452][   transport.py][1871] : server lang: <none>
2025-06-13 15:30:19,810 [DEBUG][       Thread-259452][   transport.py][1871] : kex follows: False
2025-06-13 15:30:19,810 [DEBUG][       Thread-259452][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 15:30:19,810 [DEBUG][       Thread-259452][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 15:30:19,810 [DEBUG][       Thread-259452][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 15:30:19,810 [DEBUG][       Thread-259452][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 15:30:19,810 [DEBUG][       Thread-259452][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 15:30:19,810 [DEBUG][       Thread-259452][   transport.py][1871] : Compression: none
2025-06-13 15:30:19,810 [DEBUG][       Thread-259452][   transport.py][1871] : === End of kex handshake ===
2025-06-13 15:30:19,868 [DEBUG][       Thread-259452][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 15:30:19,869 [DEBUG][       Thread-259452][   transport.py][1871] : Switch to new keys ...
2025-06-13 15:30:19,869 [DEBUG][       Thread-259452][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 15:30:19,869 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 15:30:19,870 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 15:30:19,925 [DEBUG][       Thread-259452][   transport.py][1871] : userauth is OK
2025-06-13 15:30:19,925 [DEBUG][       Thread-259452][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 15:30:19,925 [DEBUG][       Thread-259452][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 15:30:19,925 [DEBUG][       Thread-259452][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 15:30:19,925 [DEBUG][       Thread-259452][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 15:30:19,944 [ INFO][       Thread-259452][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 15:30:19,945 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 15:30:19,945 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 15:30:20,948 [DEBUG][       Thread-259452][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 15:30:20,948 [DEBUG][       Thread-259452][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 15:30:20,998 [DEBUG][       Thread-259452][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 15:30:20,999 [DEBUG][       Thread-259452][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 15:30:21,011 [DEBUG][       Thread-259452][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 15:30:21,023 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 15:30:21,023 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 15:30:21,032 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 15:30:21,044 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 15:30:21,045 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 15:30:21,045 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 15:30:21,056 [DEBUG][       Thread-259452][   transport.py][1871] : EOF in transport thread
2025-06-13 15:30:21,246 [DEBUG][Thread-259454 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:30:21,916 [DEBUG][Thread-259455 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:30:30,962 [DEBUG][Thread-259456 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:30:31,049 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 15:30:31,049 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 15:30:31,049 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 15:30:31,052 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 15:30:31,504 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 15, 30, 3), 18.31, 27.76, 0.0, 20.57, 14.09, 0, 0, 0, 2, 0, 0),)
2025-06-13 15:30:31,504 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 15:30:03
2025-06-13 15:30:31,585 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 15:30:31,589 [DEBUG][       Thread-259457][   transport.py][1871] : starting thread (client mode): 0x863cb700
2025-06-13 15:30:31,589 [DEBUG][       Thread-259457][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 15:30:31,609 [DEBUG][       Thread-259457][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 15:30:31,610 [ INFO][       Thread-259457][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 15:30:31,613 [DEBUG][       Thread-259457][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 15:30:31,613 [DEBUG][       Thread-259457][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 15:30:31,613 [DEBUG][       Thread-259457][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 15:30:31,613 [DEBUG][       Thread-259457][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:30:31,613 [DEBUG][       Thread-259457][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:30:31,613 [DEBUG][       Thread-259457][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:30:31,613 [DEBUG][       Thread-259457][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:30:31,613 [DEBUG][       Thread-259457][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 15:30:31,613 [DEBUG][       Thread-259457][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 15:30:31,613 [DEBUG][       Thread-259457][   transport.py][1871] : client lang: <none>
2025-06-13 15:30:31,613 [DEBUG][       Thread-259457][   transport.py][1871] : server lang: <none>
2025-06-13 15:30:31,613 [DEBUG][       Thread-259457][   transport.py][1871] : kex follows: False
2025-06-13 15:30:31,613 [DEBUG][       Thread-259457][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 15:30:31,613 [DEBUG][       Thread-259457][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 15:30:31,613 [DEBUG][       Thread-259457][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 15:30:31,613 [DEBUG][       Thread-259457][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 15:30:31,613 [DEBUG][       Thread-259457][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 15:30:31,613 [DEBUG][       Thread-259457][   transport.py][1871] : Compression: none
2025-06-13 15:30:31,613 [DEBUG][       Thread-259457][   transport.py][1871] : === End of kex handshake ===
2025-06-13 15:30:31,631 [DEBUG][       Thread-259457][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 15:30:31,631 [DEBUG][       Thread-259457][   transport.py][1871] : Switch to new keys ...
2025-06-13 15:30:31,632 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 15:30:31,632 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 15:30:31,633 [DEBUG][       Thread-259457][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 15:30:31,675 [DEBUG][       Thread-259457][   transport.py][1871] : userauth is OK
2025-06-13 15:30:31,699 [ INFO][       Thread-259457][   transport.py][1871] : Authentication (password) successful!
2025-06-13 15:30:31,700 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 15:30:32,372 [DEBUG][       Thread-259457][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 15:30:32,373 [DEBUG][       Thread-259457][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 15:30:32,417 [DEBUG][       Thread-259457][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 15:30:32,417 [DEBUG][       Thread-259457][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 15:30:32,420 [DEBUG][       Thread-259457][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 15:30:32,435 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 15:30:32,435 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 15:30:32,437 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 15:30:32,439 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 15:30:32,445 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 15:30:32,447 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 15:30:32,447 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 15:30:32,448 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 15:30:32,448 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.562436 -999.00  +13.70  22.20     33   -2.20 1 1 1 1 1   887    0 16.21 15.91 ----- 24.6 22.2 51.4 32.9 17.0 -32.2 16.0 -34.0 16.8 -32.2 18.0 -30.4
2025-06-13 15:30:32,448 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 15:30:32,449 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 15:30:32,449 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.562436
2025-06-13 15:30:32,449 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 15:30:32,450 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 15:30:32,450 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 15:30:32,450 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 15:30:32,450 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 15:30:32,450 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T15:30:03', tmtdew=18.31, humidity=27.76, cloud=0.0, wind=20.57, temperature=14.09, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T13:29:54.470', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 15:30:32,451 [DEBUG][       Thread-259457][   transport.py][1871] : EOF in transport thread
2025-06-13 15:30:32,527 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 15:30:32,537 [DEBUG][       Thread-259460][   transport.py][1871] : starting thread (client mode): 0x863ef3d0
2025-06-13 15:30:32,537 [DEBUG][       Thread-259460][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 15:30:32,557 [DEBUG][       Thread-259460][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 15:30:32,557 [ INFO][       Thread-259460][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 15:30:32,570 [DEBUG][       Thread-259460][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 15:30:32,570 [DEBUG][       Thread-259460][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 15:30:32,570 [DEBUG][       Thread-259460][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 15:30:32,570 [DEBUG][       Thread-259460][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:30:32,570 [DEBUG][       Thread-259460][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:30:32,570 [DEBUG][       Thread-259460][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:30:32,570 [DEBUG][       Thread-259460][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:30:32,570 [DEBUG][       Thread-259460][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 15:30:32,570 [DEBUG][       Thread-259460][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 15:30:32,570 [DEBUG][       Thread-259460][   transport.py][1871] : client lang: <none>
2025-06-13 15:30:32,570 [DEBUG][       Thread-259460][   transport.py][1871] : server lang: <none>
2025-06-13 15:30:32,571 [DEBUG][       Thread-259460][   transport.py][1871] : kex follows: False
2025-06-13 15:30:32,571 [DEBUG][       Thread-259460][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 15:30:32,571 [DEBUG][       Thread-259460][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 15:30:32,571 [DEBUG][       Thread-259460][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 15:30:32,571 [DEBUG][       Thread-259460][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 15:30:32,571 [DEBUG][       Thread-259460][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 15:30:32,571 [DEBUG][       Thread-259460][   transport.py][1871] : Compression: none
2025-06-13 15:30:32,571 [DEBUG][       Thread-259460][   transport.py][1871] : === End of kex handshake ===
2025-06-13 15:30:32,629 [DEBUG][       Thread-259460][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 15:30:32,630 [DEBUG][       Thread-259460][   transport.py][1871] : Switch to new keys ...
2025-06-13 15:30:32,631 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 15:30:32,631 [DEBUG][       Thread-259460][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 15:30:32,632 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 15:30:32,695 [DEBUG][       Thread-259460][   transport.py][1871] : userauth is OK
2025-06-13 15:30:32,695 [DEBUG][       Thread-259460][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 15:30:32,696 [DEBUG][       Thread-259460][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 15:30:32,696 [DEBUG][       Thread-259460][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 15:30:32,696 [DEBUG][       Thread-259460][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 15:30:32,716 [ INFO][       Thread-259460][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 15:30:32,717 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 15:30:32,717 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 15:30:33,734 [DEBUG][       Thread-259460][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 15:30:33,734 [DEBUG][       Thread-259460][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 15:30:33,785 [DEBUG][       Thread-259460][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 15:30:33,785 [DEBUG][       Thread-259460][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 15:30:33,795 [DEBUG][       Thread-259460][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 15:30:33,804 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 15:30:33,805 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 15:30:33,814 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 15:30:33,823 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 15:30:33,823 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 15:30:33,824 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 15:30:33,834 [DEBUG][       Thread-259460][   transport.py][1871] : EOF in transport thread
2025-06-13 15:30:39,984 [DEBUG][Thread-259462 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:30:43,834 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 15:30:43,835 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 15:30:43,835 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 15:30:43,838 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 15:30:44,304 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 15, 30, 34), 18.43, 27.51, 0.0, 20.49, 13.93, 0, 0, 0, 2, 0, 0),)
2025-06-13 15:30:44,304 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 15:30:34
2025-06-13 15:30:44,386 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 15:30:44,392 [DEBUG][       Thread-259463][   transport.py][1871] : starting thread (client mode): 0x863ca470
2025-06-13 15:30:44,392 [DEBUG][       Thread-259463][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 15:30:44,412 [DEBUG][       Thread-259463][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 15:30:44,412 [ INFO][       Thread-259463][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 15:30:44,416 [DEBUG][       Thread-259463][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 15:30:44,416 [DEBUG][       Thread-259463][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 15:30:44,416 [DEBUG][       Thread-259463][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 15:30:44,416 [DEBUG][       Thread-259463][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:30:44,416 [DEBUG][       Thread-259463][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:30:44,416 [DEBUG][       Thread-259463][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:30:44,416 [DEBUG][       Thread-259463][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:30:44,416 [DEBUG][       Thread-259463][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 15:30:44,416 [DEBUG][       Thread-259463][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 15:30:44,416 [DEBUG][       Thread-259463][   transport.py][1871] : client lang: <none>
2025-06-13 15:30:44,416 [DEBUG][       Thread-259463][   transport.py][1871] : server lang: <none>
2025-06-13 15:30:44,417 [DEBUG][       Thread-259463][   transport.py][1871] : kex follows: False
2025-06-13 15:30:44,417 [DEBUG][       Thread-259463][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 15:30:44,417 [DEBUG][       Thread-259463][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 15:30:44,417 [DEBUG][       Thread-259463][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 15:30:44,417 [DEBUG][       Thread-259463][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 15:30:44,417 [DEBUG][       Thread-259463][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 15:30:44,417 [DEBUG][       Thread-259463][   transport.py][1871] : Compression: none
2025-06-13 15:30:44,417 [DEBUG][       Thread-259463][   transport.py][1871] : === End of kex handshake ===
2025-06-13 15:30:44,433 [DEBUG][       Thread-259463][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 15:30:44,434 [DEBUG][       Thread-259463][   transport.py][1871] : Switch to new keys ...
2025-06-13 15:30:44,434 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 15:30:44,435 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 15:30:44,435 [DEBUG][       Thread-259463][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 15:30:44,436 [DEBUG][       Thread-259463][   transport.py][1871] : userauth is OK
2025-06-13 15:30:44,461 [ INFO][       Thread-259463][   transport.py][1871] : Authentication (password) successful!
2025-06-13 15:30:44,461 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 15:30:45,098 [DEBUG][       Thread-259463][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 15:30:45,099 [DEBUG][       Thread-259463][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 15:30:45,140 [DEBUG][       Thread-259463][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 15:30:45,141 [DEBUG][       Thread-259463][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 15:30:45,143 [DEBUG][       Thread-259463][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 15:30:45,156 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 15:30:45,156 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 15:30:45,157 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 15:30:45,158 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 15:30:45,161 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 15:30:45,162 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 15:30:45,162 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 15:30:45,162 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 15:30:45,162 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.562436 -999.00  +13.70  22.20     33   -2.20 1 1 1 1 1   887    0 16.21 15.91 ----- 24.6 22.2 51.4 32.9 17.0 -32.2 16.0 -34.0 16.8 -32.2 18.0 -30.4
2025-06-13 15:30:45,162 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 15:30:45,162 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 15:30:45,162 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.562436
2025-06-13 15:30:45,163 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 15:30:45,163 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 15:30:45,163 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 15:30:45,163 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 15:30:45,163 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 15:30:45,163 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T15:30:34', tmtdew=18.43, humidity=27.51, cloud=0.0, wind=20.49, temperature=13.93, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T13:29:54.470', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 15:30:45,164 [DEBUG][       Thread-259463][   transport.py][1871] : EOF in transport thread
2025-06-13 15:30:45,236 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 15:30:45,249 [DEBUG][       Thread-259466][   transport.py][1871] : starting thread (client mode): 0x863a43a0
2025-06-13 15:30:45,249 [DEBUG][       Thread-259466][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 15:30:45,265 [DEBUG][       Thread-259466][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 15:30:45,265 [ INFO][       Thread-259466][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 15:30:45,278 [DEBUG][       Thread-259466][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 15:30:45,278 [DEBUG][       Thread-259466][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 15:30:45,278 [DEBUG][       Thread-259466][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 15:30:45,278 [DEBUG][       Thread-259466][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:30:45,278 [DEBUG][       Thread-259466][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:30:45,278 [DEBUG][       Thread-259466][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:30:45,278 [DEBUG][       Thread-259466][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:30:45,278 [DEBUG][       Thread-259466][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 15:30:45,278 [DEBUG][       Thread-259466][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 15:30:45,278 [DEBUG][       Thread-259466][   transport.py][1871] : client lang: <none>
2025-06-13 15:30:45,278 [DEBUG][       Thread-259466][   transport.py][1871] : server lang: <none>
2025-06-13 15:30:45,278 [DEBUG][       Thread-259466][   transport.py][1871] : kex follows: False
2025-06-13 15:30:45,278 [DEBUG][       Thread-259466][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 15:30:45,278 [DEBUG][       Thread-259466][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 15:30:45,278 [DEBUG][       Thread-259466][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 15:30:45,278 [DEBUG][       Thread-259466][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 15:30:45,278 [DEBUG][       Thread-259466][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 15:30:45,278 [DEBUG][       Thread-259466][   transport.py][1871] : Compression: none
2025-06-13 15:30:45,278 [DEBUG][       Thread-259466][   transport.py][1871] : === End of kex handshake ===
2025-06-13 15:30:45,327 [DEBUG][       Thread-259466][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 15:30:45,327 [DEBUG][       Thread-259466][   transport.py][1871] : Switch to new keys ...
2025-06-13 15:30:45,327 [DEBUG][       Thread-259466][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 15:30:45,327 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 15:30:45,327 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 15:30:45,384 [DEBUG][       Thread-259466][   transport.py][1871] : userauth is OK
2025-06-13 15:30:45,384 [DEBUG][       Thread-259466][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 15:30:45,384 [DEBUG][       Thread-259466][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 15:30:45,384 [DEBUG][       Thread-259466][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 15:30:45,384 [DEBUG][       Thread-259466][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 15:30:45,398 [ INFO][       Thread-259466][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 15:30:45,398 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 15:30:45,399 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 15:30:46,436 [DEBUG][       Thread-259466][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 15:30:46,436 [DEBUG][       Thread-259466][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 15:30:46,483 [DEBUG][       Thread-259466][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 15:30:46,483 [DEBUG][       Thread-259466][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 15:30:46,492 [DEBUG][       Thread-259466][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 15:30:46,500 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 15:30:46,500 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 15:30:46,507 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 15:30:46,515 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 15:30:46,516 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 15:30:46,516 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 15:30:46,523 [DEBUG][       Thread-259466][   transport.py][1871] : EOF in transport thread
2025-06-13 15:30:49,005 [DEBUG][Thread-259468 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:30:50,889 [DEBUG][Thread-259469 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:30:51,976 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:30:51,977 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:30:56,526 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 15:30:56,526 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 15:30:56,526 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 15:30:56,529 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 15:30:56,983 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 15, 30, 34), 18.43, 27.51, 0.0, 20.49, 13.93, 0, 0, 0, 2, 0, 0),)
2025-06-13 15:30:56,983 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 15:30:34
2025-06-13 15:30:57,065 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 15:30:57,068 [DEBUG][       Thread-259470][   transport.py][1871] : starting thread (client mode): 0x863efb80
2025-06-13 15:30:57,069 [DEBUG][       Thread-259470][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 15:30:57,088 [DEBUG][       Thread-259470][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 15:30:57,088 [ INFO][       Thread-259470][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 15:30:57,089 [DEBUG][       Thread-259470][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 15:30:57,090 [DEBUG][       Thread-259470][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 15:30:57,090 [DEBUG][       Thread-259470][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 15:30:57,090 [DEBUG][       Thread-259470][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:30:57,090 [DEBUG][       Thread-259470][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:30:57,090 [DEBUG][       Thread-259470][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:30:57,090 [DEBUG][       Thread-259470][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:30:57,090 [DEBUG][       Thread-259470][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 15:30:57,090 [DEBUG][       Thread-259470][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 15:30:57,090 [DEBUG][       Thread-259470][   transport.py][1871] : client lang: <none>
2025-06-13 15:30:57,090 [DEBUG][       Thread-259470][   transport.py][1871] : server lang: <none>
2025-06-13 15:30:57,090 [DEBUG][       Thread-259470][   transport.py][1871] : kex follows: False
2025-06-13 15:30:57,090 [DEBUG][       Thread-259470][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 15:30:57,090 [DEBUG][       Thread-259470][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 15:30:57,090 [DEBUG][       Thread-259470][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 15:30:57,090 [DEBUG][       Thread-259470][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 15:30:57,090 [DEBUG][       Thread-259470][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 15:30:57,090 [DEBUG][       Thread-259470][   transport.py][1871] : Compression: none
2025-06-13 15:30:57,090 [DEBUG][       Thread-259470][   transport.py][1871] : === End of kex handshake ===
2025-06-13 15:30:57,098 [DEBUG][       Thread-259470][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 15:30:57,098 [DEBUG][       Thread-259470][   transport.py][1871] : Switch to new keys ...
2025-06-13 15:30:57,098 [DEBUG][       Thread-259470][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 15:30:57,099 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 15:30:57,099 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 15:30:57,100 [DEBUG][       Thread-259470][   transport.py][1871] : userauth is OK
2025-06-13 15:30:57,112 [ INFO][       Thread-259470][   transport.py][1871] : Authentication (password) successful!
2025-06-13 15:30:57,113 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 15:30:57,700 [DEBUG][       Thread-259470][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 15:30:57,700 [DEBUG][       Thread-259470][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 15:30:57,745 [DEBUG][       Thread-259470][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 15:30:57,745 [DEBUG][       Thread-259470][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 15:30:57,748 [DEBUG][       Thread-259470][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 15:30:57,756 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 15:30:57,757 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 15:30:57,758 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 15:30:57,760 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 15:30:57,764 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 15:30:57,766 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 15:30:57,766 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 15:30:57,767 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 15:30:57,767 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.562783 -999.00  +13.60  21.69     32   -2.30 1 1 1 1 1   887    0 16.16 15.75 ----- 22.6 21.7 45.0 28.1 17.0 -32.7 16.0 -34.0 16.8 -31.7 17.9 -30.3
2025-06-13 15:30:57,767 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 15:30:57,767 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 15:30:57,767 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.562783
2025-06-13 15:30:57,768 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 15:30:57,768 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 15:30:57,768 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 15:30:57,768 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 15:30:57,768 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 15:30:57,768 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T15:30:34', tmtdew=18.43, humidity=27.51, cloud=0.0, wind=20.49, temperature=13.93, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T13:30:24.451', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 15:30:57,769 [DEBUG][       Thread-259470][   transport.py][1871] : EOF in transport thread
2025-06-13 15:30:57,852 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 15:30:57,862 [DEBUG][       Thread-259473][   transport.py][1871] : starting thread (client mode): 0x86353fd0
2025-06-13 15:30:57,862 [DEBUG][       Thread-259473][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 15:30:57,878 [DEBUG][       Thread-259473][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 15:30:57,878 [ INFO][       Thread-259473][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 15:30:57,885 [DEBUG][       Thread-259473][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 15:30:57,886 [DEBUG][       Thread-259473][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 15:30:57,886 [DEBUG][       Thread-259473][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 15:30:57,886 [DEBUG][       Thread-259473][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:30:57,886 [DEBUG][       Thread-259473][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:30:57,886 [DEBUG][       Thread-259473][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:30:57,886 [DEBUG][       Thread-259473][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:30:57,886 [DEBUG][       Thread-259473][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 15:30:57,886 [DEBUG][       Thread-259473][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 15:30:57,886 [DEBUG][       Thread-259473][   transport.py][1871] : client lang: <none>
2025-06-13 15:30:57,886 [DEBUG][       Thread-259473][   transport.py][1871] : server lang: <none>
2025-06-13 15:30:57,886 [DEBUG][       Thread-259473][   transport.py][1871] : kex follows: False
2025-06-13 15:30:57,886 [DEBUG][       Thread-259473][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 15:30:57,886 [DEBUG][       Thread-259473][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 15:30:57,886 [DEBUG][       Thread-259473][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 15:30:57,886 [DEBUG][       Thread-259473][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 15:30:57,886 [DEBUG][       Thread-259473][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 15:30:57,886 [DEBUG][       Thread-259473][   transport.py][1871] : Compression: none
2025-06-13 15:30:57,886 [DEBUG][       Thread-259473][   transport.py][1871] : === End of kex handshake ===
2025-06-13 15:30:57,947 [DEBUG][       Thread-259473][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 15:30:57,948 [DEBUG][       Thread-259473][   transport.py][1871] : Switch to new keys ...
2025-06-13 15:30:57,948 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 15:30:57,949 [DEBUG][       Thread-259473][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 15:30:57,950 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 15:30:58,005 [DEBUG][       Thread-259473][   transport.py][1871] : userauth is OK
2025-06-13 15:30:58,006 [DEBUG][       Thread-259473][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 15:30:58,006 [DEBUG][       Thread-259473][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 15:30:58,006 [DEBUG][       Thread-259473][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 15:30:58,006 [DEBUG][       Thread-259473][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 15:30:58,024 [ INFO][       Thread-259473][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 15:30:58,024 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 15:30:58,025 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 15:30:58,042 [DEBUG][Thread-259475 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:30:59,024 [DEBUG][       Thread-259473][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 15:30:59,024 [DEBUG][       Thread-259473][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 15:30:59,075 [DEBUG][       Thread-259473][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 15:30:59,075 [DEBUG][       Thread-259473][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 15:30:59,084 [DEBUG][       Thread-259473][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 15:30:59,093 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 15:30:59,093 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 15:30:59,102 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 15:30:59,111 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 15:30:59,111 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 15:30:59,112 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 15:30:59,120 [DEBUG][       Thread-259473][   transport.py][1871] : EOF in transport thread
2025-06-13 15:31:07,064 [DEBUG][Thread-259476 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:31:09,122 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 15:31:09,123 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 15:31:09,123 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 15:31:09,126 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 15:31:09,590 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 15, 31, 6), 18.36, 27.62, 0.0, 22.23, 13.86, 0, 0, 0, 2, 0, 0),)
2025-06-13 15:31:09,590 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 15:31:06
2025-06-13 15:31:09,672 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 15:31:09,676 [DEBUG][       Thread-259477][   transport.py][1871] : starting thread (client mode): 0x86351b10
2025-06-13 15:31:09,676 [DEBUG][       Thread-259477][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 15:31:09,697 [DEBUG][       Thread-259477][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 15:31:09,697 [ INFO][       Thread-259477][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 15:31:09,701 [DEBUG][       Thread-259477][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 15:31:09,701 [DEBUG][       Thread-259477][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 15:31:09,701 [DEBUG][       Thread-259477][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 15:31:09,701 [DEBUG][       Thread-259477][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:31:09,701 [DEBUG][       Thread-259477][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:31:09,701 [DEBUG][       Thread-259477][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:31:09,701 [DEBUG][       Thread-259477][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:31:09,701 [DEBUG][       Thread-259477][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 15:31:09,701 [DEBUG][       Thread-259477][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 15:31:09,701 [DEBUG][       Thread-259477][   transport.py][1871] : client lang: <none>
2025-06-13 15:31:09,701 [DEBUG][       Thread-259477][   transport.py][1871] : server lang: <none>
2025-06-13 15:31:09,701 [DEBUG][       Thread-259477][   transport.py][1871] : kex follows: False
2025-06-13 15:31:09,701 [DEBUG][       Thread-259477][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 15:31:09,701 [DEBUG][       Thread-259477][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 15:31:09,701 [DEBUG][       Thread-259477][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 15:31:09,701 [DEBUG][       Thread-259477][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 15:31:09,701 [DEBUG][       Thread-259477][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 15:31:09,701 [DEBUG][       Thread-259477][   transport.py][1871] : Compression: none
2025-06-13 15:31:09,701 [DEBUG][       Thread-259477][   transport.py][1871] : === End of kex handshake ===
2025-06-13 15:31:09,717 [DEBUG][       Thread-259477][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 15:31:09,718 [DEBUG][       Thread-259477][   transport.py][1871] : Switch to new keys ...
2025-06-13 15:31:09,718 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 15:31:09,719 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 15:31:09,719 [DEBUG][       Thread-259477][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 15:31:09,720 [DEBUG][       Thread-259477][   transport.py][1871] : userauth is OK
2025-06-13 15:31:09,732 [ INFO][       Thread-259477][   transport.py][1871] : Authentication (password) successful!
2025-06-13 15:31:09,733 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 15:31:09,738 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:31:09,739 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:31:10,380 [DEBUG][       Thread-259477][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 15:31:10,380 [DEBUG][       Thread-259477][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 15:31:10,421 [DEBUG][       Thread-259477][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 15:31:10,421 [DEBUG][       Thread-259477][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 15:31:10,424 [DEBUG][       Thread-259477][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 15:31:10,437 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 15:31:10,438 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 15:31:10,440 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 15:31:10,442 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 15:31:10,448 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 15:31:10,450 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 15:31:10,450 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 15:31:10,451 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 15:31:10,451 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.562783 -999.00  +13.60  21.69     32   -2.30 1 1 1 1 1   887    0 16.16 15.75 ----- 22.6 21.7 45.0 28.1 17.0 -32.7 16.0 -34.0 16.8 -31.7 17.9 -30.3
2025-06-13 15:31:10,451 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 15:31:10,451 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 15:31:10,451 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.562783
2025-06-13 15:31:10,452 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 15:31:10,452 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 15:31:10,452 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 15:31:10,452 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 15:31:10,452 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 15:31:10,453 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T15:31:06', tmtdew=18.36, humidity=27.62, cloud=0.0, wind=22.23, temperature=13.86, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T13:30:24.451', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 15:31:10,454 [DEBUG][       Thread-259477][   transport.py][1871] : EOF in transport thread
2025-06-13 15:31:10,536 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 15:31:10,550 [DEBUG][       Thread-259480][   transport.py][1871] : starting thread (client mode): 0x863ef5b0
2025-06-13 15:31:10,550 [DEBUG][       Thread-259480][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 15:31:10,569 [DEBUG][       Thread-259480][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 15:31:10,569 [ INFO][       Thread-259480][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 15:31:10,576 [DEBUG][       Thread-259480][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 15:31:10,577 [DEBUG][       Thread-259480][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 15:31:10,577 [DEBUG][       Thread-259480][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 15:31:10,577 [DEBUG][       Thread-259480][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:31:10,577 [DEBUG][       Thread-259480][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:31:10,577 [DEBUG][       Thread-259480][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:31:10,577 [DEBUG][       Thread-259480][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:31:10,577 [DEBUG][       Thread-259480][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 15:31:10,577 [DEBUG][       Thread-259480][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 15:31:10,577 [DEBUG][       Thread-259480][   transport.py][1871] : client lang: <none>
2025-06-13 15:31:10,577 [DEBUG][       Thread-259480][   transport.py][1871] : server lang: <none>
2025-06-13 15:31:10,577 [DEBUG][       Thread-259480][   transport.py][1871] : kex follows: False
2025-06-13 15:31:10,577 [DEBUG][       Thread-259480][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 15:31:10,577 [DEBUG][       Thread-259480][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 15:31:10,577 [DEBUG][       Thread-259480][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 15:31:10,577 [DEBUG][       Thread-259480][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 15:31:10,578 [DEBUG][       Thread-259480][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 15:31:10,578 [DEBUG][       Thread-259480][   transport.py][1871] : Compression: none
2025-06-13 15:31:10,578 [DEBUG][       Thread-259480][   transport.py][1871] : === End of kex handshake ===
2025-06-13 15:31:10,637 [DEBUG][       Thread-259480][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 15:31:10,637 [DEBUG][       Thread-259480][   transport.py][1871] : Switch to new keys ...
2025-06-13 15:31:10,638 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 15:31:10,638 [DEBUG][       Thread-259480][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 15:31:10,639 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 15:31:10,693 [DEBUG][       Thread-259480][   transport.py][1871] : userauth is OK
2025-06-13 15:31:10,693 [DEBUG][       Thread-259480][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 15:31:10,693 [DEBUG][       Thread-259480][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 15:31:10,693 [DEBUG][       Thread-259480][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 15:31:10,693 [DEBUG][       Thread-259480][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 15:31:10,712 [ INFO][       Thread-259480][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 15:31:10,712 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 15:31:10,713 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 15:31:11,724 [DEBUG][       Thread-259480][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 15:31:11,725 [DEBUG][       Thread-259480][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 15:31:11,776 [DEBUG][       Thread-259480][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 15:31:11,776 [DEBUG][       Thread-259480][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 15:31:11,788 [DEBUG][       Thread-259480][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 15:31:11,798 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 15:31:11,798 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 15:31:11,807 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 15:31:11,817 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 15:31:11,817 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 15:31:11,817 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 15:31:11,825 [DEBUG][       Thread-259480][   transport.py][1871] : EOF in transport thread
2025-06-13 15:31:16,085 [DEBUG][Thread-259482 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:31:21,296 [DEBUG][Thread-259483 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:31:21,828 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 15:31:21,828 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 15:31:21,828 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 15:31:21,831 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 15:31:22,282 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 15, 31, 6), 18.36, 27.62, 0.0, 22.23, 13.86, 0, 0, 0, 2, 0, 0),)
2025-06-13 15:31:22,282 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 15:31:06
2025-06-13 15:31:22,364 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 15:31:22,368 [DEBUG][       Thread-259484][   transport.py][1871] : starting thread (client mode): 0x863506a0
2025-06-13 15:31:22,368 [DEBUG][       Thread-259484][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 15:31:22,389 [DEBUG][       Thread-259484][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 15:31:22,389 [ INFO][       Thread-259484][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 15:31:22,392 [DEBUG][       Thread-259484][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 15:31:22,392 [DEBUG][       Thread-259484][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 15:31:22,392 [DEBUG][       Thread-259484][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 15:31:22,392 [DEBUG][       Thread-259484][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:31:22,392 [DEBUG][       Thread-259484][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:31:22,392 [DEBUG][       Thread-259484][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:31:22,392 [DEBUG][       Thread-259484][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:31:22,392 [DEBUG][       Thread-259484][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 15:31:22,392 [DEBUG][       Thread-259484][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 15:31:22,392 [DEBUG][       Thread-259484][   transport.py][1871] : client lang: <none>
2025-06-13 15:31:22,392 [DEBUG][       Thread-259484][   transport.py][1871] : server lang: <none>
2025-06-13 15:31:22,392 [DEBUG][       Thread-259484][   transport.py][1871] : kex follows: False
2025-06-13 15:31:22,392 [DEBUG][       Thread-259484][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 15:31:22,392 [DEBUG][       Thread-259484][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 15:31:22,392 [DEBUG][       Thread-259484][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 15:31:22,392 [DEBUG][       Thread-259484][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 15:31:22,392 [DEBUG][       Thread-259484][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 15:31:22,393 [DEBUG][       Thread-259484][   transport.py][1871] : Compression: none
2025-06-13 15:31:22,393 [DEBUG][       Thread-259484][   transport.py][1871] : === End of kex handshake ===
2025-06-13 15:31:22,410 [DEBUG][       Thread-259484][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 15:31:22,410 [DEBUG][       Thread-259484][   transport.py][1871] : Switch to new keys ...
2025-06-13 15:31:22,411 [DEBUG][       Thread-259484][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 15:31:22,411 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 15:31:22,411 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 15:31:22,412 [DEBUG][       Thread-259484][   transport.py][1871] : userauth is OK
2025-06-13 15:31:22,425 [ INFO][       Thread-259484][   transport.py][1871] : Authentication (password) successful!
2025-06-13 15:31:22,426 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 15:31:23,069 [DEBUG][       Thread-259484][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 15:31:23,069 [DEBUG][       Thread-259484][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 15:31:23,112 [DEBUG][       Thread-259484][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 15:31:23,112 [DEBUG][       Thread-259484][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 15:31:23,115 [DEBUG][       Thread-259484][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 15:31:23,127 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 15:31:23,127 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 15:31:23,128 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 15:31:23,129 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 15:31:23,132 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 15:31:23,133 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 15:31:23,133 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 15:31:23,133 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 15:31:23,133 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.562783 -999.00  +13.60  21.69     32   -2.30 1 1 1 1 1   887    0 16.16 15.75 ----- 22.6 21.7 45.0 28.1 17.0 -32.7 16.0 -34.0 16.8 -31.7 17.9 -30.3
2025-06-13 15:31:23,133 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 15:31:23,133 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 15:31:23,133 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.562783
2025-06-13 15:31:23,133 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 15:31:23,134 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 15:31:23,134 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 15:31:23,134 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 15:31:23,134 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 15:31:23,134 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T15:31:06', tmtdew=18.36, humidity=27.62, cloud=0.0, wind=22.23, temperature=13.86, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T13:30:24.451', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 15:31:23,134 [DEBUG][       Thread-259484][   transport.py][1871] : EOF in transport thread
2025-06-13 15:31:23,205 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 15:31:23,214 [DEBUG][       Thread-259487][   transport.py][1871] : starting thread (client mode): 0x863bd150
2025-06-13 15:31:23,214 [DEBUG][       Thread-259487][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 15:31:23,229 [DEBUG][       Thread-259487][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 15:31:23,229 [ INFO][       Thread-259487][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 15:31:23,237 [DEBUG][       Thread-259487][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 15:31:23,237 [DEBUG][       Thread-259487][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 15:31:23,237 [DEBUG][       Thread-259487][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 15:31:23,237 [DEBUG][       Thread-259487][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:31:23,237 [DEBUG][       Thread-259487][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:31:23,237 [DEBUG][       Thread-259487][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:31:23,237 [DEBUG][       Thread-259487][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:31:23,237 [DEBUG][       Thread-259487][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 15:31:23,237 [DEBUG][       Thread-259487][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 15:31:23,237 [DEBUG][       Thread-259487][   transport.py][1871] : client lang: <none>
2025-06-13 15:31:23,237 [DEBUG][       Thread-259487][   transport.py][1871] : server lang: <none>
2025-06-13 15:31:23,237 [DEBUG][       Thread-259487][   transport.py][1871] : kex follows: False
2025-06-13 15:31:23,237 [DEBUG][       Thread-259487][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 15:31:23,237 [DEBUG][       Thread-259487][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 15:31:23,237 [DEBUG][       Thread-259487][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 15:31:23,237 [DEBUG][       Thread-259487][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 15:31:23,237 [DEBUG][       Thread-259487][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 15:31:23,237 [DEBUG][       Thread-259487][   transport.py][1871] : Compression: none
2025-06-13 15:31:23,237 [DEBUG][       Thread-259487][   transport.py][1871] : === End of kex handshake ===
2025-06-13 15:31:23,295 [DEBUG][       Thread-259487][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 15:31:23,295 [DEBUG][       Thread-259487][   transport.py][1871] : Switch to new keys ...
2025-06-13 15:31:23,295 [DEBUG][       Thread-259487][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 15:31:23,295 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 15:31:23,295 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 15:31:23,352 [DEBUG][       Thread-259487][   transport.py][1871] : userauth is OK
2025-06-13 15:31:23,352 [DEBUG][       Thread-259487][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 15:31:23,352 [DEBUG][       Thread-259487][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 15:31:23,352 [DEBUG][       Thread-259487][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 15:31:23,352 [DEBUG][       Thread-259487][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 15:31:23,366 [ INFO][       Thread-259487][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 15:31:23,366 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 15:31:23,366 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 15:31:24,357 [DEBUG][       Thread-259487][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 15:31:24,357 [DEBUG][       Thread-259487][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 15:31:24,407 [DEBUG][       Thread-259487][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 15:31:24,407 [DEBUG][       Thread-259487][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 15:31:24,415 [DEBUG][       Thread-259487][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 15:31:24,423 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 15:31:24,423 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 15:31:24,431 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 15:31:24,439 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 15:31:24,439 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 15:31:24,439 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 15:31:24,447 [DEBUG][       Thread-259487][   transport.py][1871] : EOF in transport thread
2025-06-13 15:31:25,118 [DEBUG][Thread-259489 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:31:34,140 [DEBUG][Thread-259490 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:31:34,449 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 15:31:34,450 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 15:31:34,450 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 15:31:34,452 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 15:31:34,915 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 15, 31, 6), 18.36, 27.62, 0.0, 22.23, 13.86, 0, 0, 0, 2, 0, 0),)
2025-06-13 15:31:34,915 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 15:31:06
2025-06-13 15:31:34,997 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 15:31:35,001 [DEBUG][       Thread-259491][   transport.py][1871] : starting thread (client mode): 0x86353e50
2025-06-13 15:31:35,001 [DEBUG][       Thread-259491][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 15:31:35,020 [DEBUG][       Thread-259491][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 15:31:35,020 [ INFO][       Thread-259491][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 15:31:35,024 [DEBUG][       Thread-259491][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 15:31:35,024 [DEBUG][       Thread-259491][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 15:31:35,024 [DEBUG][       Thread-259491][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 15:31:35,024 [DEBUG][       Thread-259491][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:31:35,024 [DEBUG][       Thread-259491][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:31:35,024 [DEBUG][       Thread-259491][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:31:35,024 [DEBUG][       Thread-259491][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:31:35,024 [DEBUG][       Thread-259491][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 15:31:35,024 [DEBUG][       Thread-259491][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 15:31:35,024 [DEBUG][       Thread-259491][   transport.py][1871] : client lang: <none>
2025-06-13 15:31:35,024 [DEBUG][       Thread-259491][   transport.py][1871] : server lang: <none>
2025-06-13 15:31:35,024 [DEBUG][       Thread-259491][   transport.py][1871] : kex follows: False
2025-06-13 15:31:35,024 [DEBUG][       Thread-259491][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 15:31:35,024 [DEBUG][       Thread-259491][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 15:31:35,024 [DEBUG][       Thread-259491][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 15:31:35,024 [DEBUG][       Thread-259491][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 15:31:35,024 [DEBUG][       Thread-259491][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 15:31:35,024 [DEBUG][       Thread-259491][   transport.py][1871] : Compression: none
2025-06-13 15:31:35,024 [DEBUG][       Thread-259491][   transport.py][1871] : === End of kex handshake ===
2025-06-13 15:31:35,039 [DEBUG][       Thread-259491][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 15:31:35,039 [DEBUG][       Thread-259491][   transport.py][1871] : Switch to new keys ...
2025-06-13 15:31:35,039 [DEBUG][       Thread-259491][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 15:31:35,039 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 15:31:35,039 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 15:31:35,040 [DEBUG][       Thread-259491][   transport.py][1871] : userauth is OK
2025-06-13 15:31:35,052 [ INFO][       Thread-259491][   transport.py][1871] : Authentication (password) successful!
2025-06-13 15:31:35,052 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 15:31:35,694 [DEBUG][       Thread-259491][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 15:31:35,694 [DEBUG][       Thread-259491][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 15:31:35,737 [DEBUG][       Thread-259491][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 15:31:35,737 [DEBUG][       Thread-259491][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 15:31:35,740 [DEBUG][       Thread-259491][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 15:31:35,751 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 15:31:35,751 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 15:31:35,753 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 15:31:35,755 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 15:31:35,760 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 15:31:35,762 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 15:31:35,762 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 15:31:35,762 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 15:31:35,763 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.563477 -999.00  +13.70  22.80     32   -2.20 1 1 1 1 1   887    0 16.49 16.83 ----- 21.4 22.8 37.4 27.2 17.1 -31.9 16.1 -33.9 16.9 -32.4 17.9 -30.1
2025-06-13 15:31:35,763 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 15:31:35,763 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 15:31:35,763 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.563477
2025-06-13 15:31:35,763 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 15:31:35,764 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 15:31:35,764 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 15:31:35,764 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 15:31:35,764 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 15:31:35,764 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T15:31:06', tmtdew=18.36, humidity=27.62, cloud=0.0, wind=22.23, temperature=13.86, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T13:31:24.413', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 15:31:35,765 [DEBUG][       Thread-259491][   transport.py][1871] : EOF in transport thread
2025-06-13 15:31:35,848 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 15:31:35,859 [DEBUG][       Thread-259494][   transport.py][1871] : starting thread (client mode): 0x867b5360
2025-06-13 15:31:35,859 [DEBUG][       Thread-259494][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 15:31:35,874 [DEBUG][       Thread-259494][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 15:31:35,874 [ INFO][       Thread-259494][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 15:31:35,881 [DEBUG][       Thread-259494][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 15:31:35,882 [DEBUG][       Thread-259494][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 15:31:35,882 [DEBUG][       Thread-259494][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 15:31:35,882 [DEBUG][       Thread-259494][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:31:35,882 [DEBUG][       Thread-259494][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:31:35,882 [DEBUG][       Thread-259494][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:31:35,882 [DEBUG][       Thread-259494][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:31:35,882 [DEBUG][       Thread-259494][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 15:31:35,882 [DEBUG][       Thread-259494][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 15:31:35,882 [DEBUG][       Thread-259494][   transport.py][1871] : client lang: <none>
2025-06-13 15:31:35,882 [DEBUG][       Thread-259494][   transport.py][1871] : server lang: <none>
2025-06-13 15:31:35,882 [DEBUG][       Thread-259494][   transport.py][1871] : kex follows: False
2025-06-13 15:31:35,882 [DEBUG][       Thread-259494][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 15:31:35,882 [DEBUG][       Thread-259494][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 15:31:35,882 [DEBUG][       Thread-259494][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 15:31:35,882 [DEBUG][       Thread-259494][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 15:31:35,882 [DEBUG][       Thread-259494][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 15:31:35,882 [DEBUG][       Thread-259494][   transport.py][1871] : Compression: none
2025-06-13 15:31:35,882 [DEBUG][       Thread-259494][   transport.py][1871] : === End of kex handshake ===
2025-06-13 15:31:35,942 [DEBUG][       Thread-259494][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 15:31:35,943 [DEBUG][       Thread-259494][   transport.py][1871] : Switch to new keys ...
2025-06-13 15:31:35,943 [DEBUG][       Thread-259494][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 15:31:35,944 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 15:31:35,945 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 15:31:36,000 [DEBUG][       Thread-259494][   transport.py][1871] : userauth is OK
2025-06-13 15:31:36,001 [DEBUG][       Thread-259494][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 15:31:36,001 [DEBUG][       Thread-259494][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 15:31:36,001 [DEBUG][       Thread-259494][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 15:31:36,001 [DEBUG][       Thread-259494][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 15:31:36,030 [ INFO][       Thread-259494][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 15:31:36,030 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 15:31:36,030 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 15:31:37,045 [DEBUG][       Thread-259494][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 15:31:37,045 [DEBUG][       Thread-259494][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 15:31:37,095 [DEBUG][       Thread-259494][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 15:31:37,095 [DEBUG][       Thread-259494][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 15:31:37,103 [DEBUG][       Thread-259494][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 15:31:37,112 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 15:31:37,112 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 15:31:37,120 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 15:31:37,129 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 15:31:37,129 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 15:31:37,129 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 15:31:37,137 [DEBUG][       Thread-259494][   transport.py][1871] : EOF in transport thread
2025-06-13 15:31:43,160 [DEBUG][Thread-259496 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:31:47,136 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 15:31:47,136 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 15:31:47,136 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 15:31:47,137 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 15:31:47,585 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 15, 31, 38), 18.31, 27.86, 0.0, 20.27, 13.76, 0, 0, 0, 2, 0, 0),)
2025-06-13 15:31:47,585 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 15:31:38
2025-06-13 15:31:47,668 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 15:31:47,672 [DEBUG][       Thread-259497][   transport.py][1871] : starting thread (client mode): 0x86351210
2025-06-13 15:31:47,672 [DEBUG][       Thread-259497][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 15:31:47,693 [DEBUG][       Thread-259497][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 15:31:47,693 [ INFO][       Thread-259497][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 15:31:47,696 [DEBUG][       Thread-259497][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 15:31:47,696 [DEBUG][       Thread-259497][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 15:31:47,696 [DEBUG][       Thread-259497][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 15:31:47,696 [DEBUG][       Thread-259497][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:31:47,696 [DEBUG][       Thread-259497][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:31:47,696 [DEBUG][       Thread-259497][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:31:47,696 [DEBUG][       Thread-259497][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:31:47,696 [DEBUG][       Thread-259497][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 15:31:47,696 [DEBUG][       Thread-259497][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 15:31:47,696 [DEBUG][       Thread-259497][   transport.py][1871] : client lang: <none>
2025-06-13 15:31:47,696 [DEBUG][       Thread-259497][   transport.py][1871] : server lang: <none>
2025-06-13 15:31:47,696 [DEBUG][       Thread-259497][   transport.py][1871] : kex follows: False
2025-06-13 15:31:47,696 [DEBUG][       Thread-259497][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 15:31:47,696 [DEBUG][       Thread-259497][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 15:31:47,696 [DEBUG][       Thread-259497][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 15:31:47,696 [DEBUG][       Thread-259497][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 15:31:47,697 [DEBUG][       Thread-259497][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 15:31:47,697 [DEBUG][       Thread-259497][   transport.py][1871] : Compression: none
2025-06-13 15:31:47,697 [DEBUG][       Thread-259497][   transport.py][1871] : === End of kex handshake ===
2025-06-13 15:31:47,712 [DEBUG][       Thread-259497][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 15:31:47,713 [DEBUG][       Thread-259497][   transport.py][1871] : Switch to new keys ...
2025-06-13 15:31:47,713 [DEBUG][       Thread-259497][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 15:31:47,713 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 15:31:47,714 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 15:31:47,714 [DEBUG][       Thread-259497][   transport.py][1871] : userauth is OK
2025-06-13 15:31:47,739 [ INFO][       Thread-259497][   transport.py][1871] : Authentication (password) successful!
2025-06-13 15:31:47,740 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 15:31:48,357 [DEBUG][       Thread-259497][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 15:31:48,357 [DEBUG][       Thread-259497][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 15:31:48,401 [DEBUG][       Thread-259497][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 15:31:48,401 [DEBUG][       Thread-259497][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 15:31:48,404 [DEBUG][       Thread-259497][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 15:31:48,416 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 15:31:48,417 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 15:31:48,419 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 15:31:48,420 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 15:31:48,426 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 15:31:48,428 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 15:31:48,428 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 15:31:48,429 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 15:31:48,429 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.563477 -999.00  +13.70  22.80     32   -2.20 1 1 1 1 1   887    0 16.49 16.83 ----- 21.4 22.8 37.4 27.2 17.1 -31.9 16.1 -33.9 16.9 -32.4 17.9 -30.1
2025-06-13 15:31:48,429 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 15:31:48,429 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 15:31:48,429 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.563477
2025-06-13 15:31:48,430 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 15:31:48,430 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 15:31:48,430 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 15:31:48,430 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 15:31:48,430 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 15:31:48,431 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T15:31:38', tmtdew=18.31, humidity=27.86, cloud=0.0, wind=20.27, temperature=13.76, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T13:31:24.413', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 15:31:48,432 [DEBUG][       Thread-259497][   transport.py][1871] : EOF in transport thread
2025-06-13 15:31:48,515 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 15:31:48,525 [DEBUG][       Thread-259500][   transport.py][1871] : starting thread (client mode): 0x863be470
2025-06-13 15:31:48,525 [DEBUG][       Thread-259500][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 15:31:48,540 [DEBUG][       Thread-259500][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 15:31:48,540 [ INFO][       Thread-259500][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 15:31:48,548 [DEBUG][       Thread-259500][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 15:31:48,548 [DEBUG][       Thread-259500][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 15:31:48,548 [DEBUG][       Thread-259500][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 15:31:48,548 [DEBUG][       Thread-259500][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:31:48,548 [DEBUG][       Thread-259500][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:31:48,548 [DEBUG][       Thread-259500][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:31:48,548 [DEBUG][       Thread-259500][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:31:48,548 [DEBUG][       Thread-259500][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 15:31:48,548 [DEBUG][       Thread-259500][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 15:31:48,548 [DEBUG][       Thread-259500][   transport.py][1871] : client lang: <none>
2025-06-13 15:31:48,548 [DEBUG][       Thread-259500][   transport.py][1871] : server lang: <none>
2025-06-13 15:31:48,548 [DEBUG][       Thread-259500][   transport.py][1871] : kex follows: False
2025-06-13 15:31:48,548 [DEBUG][       Thread-259500][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 15:31:48,548 [DEBUG][       Thread-259500][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 15:31:48,548 [DEBUG][       Thread-259500][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 15:31:48,548 [DEBUG][       Thread-259500][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 15:31:48,548 [DEBUG][       Thread-259500][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 15:31:48,548 [DEBUG][       Thread-259500][   transport.py][1871] : Compression: none
2025-06-13 15:31:48,548 [DEBUG][       Thread-259500][   transport.py][1871] : === End of kex handshake ===
2025-06-13 15:31:48,605 [DEBUG][       Thread-259500][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 15:31:48,606 [DEBUG][       Thread-259500][   transport.py][1871] : Switch to new keys ...
2025-06-13 15:31:48,606 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 15:31:48,607 [DEBUG][       Thread-259500][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 15:31:48,608 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 15:31:48,666 [DEBUG][       Thread-259500][   transport.py][1871] : userauth is OK
2025-06-13 15:31:48,667 [DEBUG][       Thread-259500][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 15:31:48,667 [DEBUG][       Thread-259500][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 15:31:48,667 [DEBUG][       Thread-259500][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 15:31:48,667 [DEBUG][       Thread-259500][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 15:31:48,685 [ INFO][       Thread-259500][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 15:31:48,686 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 15:31:48,686 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 15:31:49,769 [DEBUG][       Thread-259500][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 15:31:49,770 [DEBUG][       Thread-259500][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 15:31:49,820 [DEBUG][       Thread-259500][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 15:31:49,820 [DEBUG][       Thread-259500][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 15:31:49,829 [DEBUG][       Thread-259500][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 15:31:49,838 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 15:31:49,838 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 15:31:49,847 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 15:31:49,857 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 15:31:49,857 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 15:31:49,858 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 15:31:49,866 [DEBUG][       Thread-259500][   transport.py][1871] : EOF in transport thread
2025-06-13 15:31:52,059 [DEBUG][Thread-259502 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:31:52,181 [DEBUG][Thread-259503 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:31:53,142 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:31:53,143 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:31:59,868 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 15:31:59,868 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 15:31:59,868 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 15:31:59,869 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 15:32:00,310 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 15, 31, 38), 18.31, 27.86, 0.0, 20.27, 13.76, 0, 0, 0, 2, 0, 0),)
2025-06-13 15:32:00,310 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 15:31:38
2025-06-13 15:32:00,392 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 15:32:00,396 [DEBUG][       Thread-259504][   transport.py][1871] : starting thread (client mode): 0x86352f50
2025-06-13 15:32:00,396 [DEBUG][       Thread-259504][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 15:32:00,417 [DEBUG][       Thread-259504][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 15:32:00,417 [ INFO][       Thread-259504][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 15:32:00,421 [DEBUG][       Thread-259504][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 15:32:00,421 [DEBUG][       Thread-259504][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 15:32:00,421 [DEBUG][       Thread-259504][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 15:32:00,421 [DEBUG][       Thread-259504][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:32:00,421 [DEBUG][       Thread-259504][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:32:00,421 [DEBUG][       Thread-259504][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:32:00,421 [DEBUG][       Thread-259504][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:32:00,421 [DEBUG][       Thread-259504][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 15:32:00,421 [DEBUG][       Thread-259504][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 15:32:00,421 [DEBUG][       Thread-259504][   transport.py][1871] : client lang: <none>
2025-06-13 15:32:00,421 [DEBUG][       Thread-259504][   transport.py][1871] : server lang: <none>
2025-06-13 15:32:00,421 [DEBUG][       Thread-259504][   transport.py][1871] : kex follows: False
2025-06-13 15:32:00,421 [DEBUG][       Thread-259504][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 15:32:00,421 [DEBUG][       Thread-259504][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 15:32:00,421 [DEBUG][       Thread-259504][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 15:32:00,421 [DEBUG][       Thread-259504][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 15:32:00,421 [DEBUG][       Thread-259504][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 15:32:00,421 [DEBUG][       Thread-259504][   transport.py][1871] : Compression: none
2025-06-13 15:32:00,421 [DEBUG][       Thread-259504][   transport.py][1871] : === End of kex handshake ===
2025-06-13 15:32:00,438 [DEBUG][       Thread-259504][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 15:32:00,438 [DEBUG][       Thread-259504][   transport.py][1871] : Switch to new keys ...
2025-06-13 15:32:00,439 [DEBUG][       Thread-259504][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 15:32:00,439 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 15:32:00,439 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 15:32:00,440 [DEBUG][       Thread-259504][   transport.py][1871] : userauth is OK
2025-06-13 15:32:00,453 [ INFO][       Thread-259504][   transport.py][1871] : Authentication (password) successful!
2025-06-13 15:32:00,454 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 15:32:01,131 [DEBUG][       Thread-259504][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 15:32:01,131 [DEBUG][       Thread-259504][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 15:32:01,172 [DEBUG][       Thread-259504][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 15:32:01,172 [DEBUG][       Thread-259504][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 15:32:01,175 [DEBUG][       Thread-259504][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 15:32:01,190 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 15:32:01,190 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 15:32:01,191 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 15:32:01,192 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 15:32:01,194 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 15:32:01,195 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 15:32:01,195 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 15:32:01,195 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 15:32:01,195 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.563477 -999.00  +13.70  22.80     32   -2.20 1 1 1 1 1   887    0 16.49 16.83 ----- 21.4 22.8 37.4 27.2 17.1 -31.9 16.1 -33.9 16.9 -32.4 17.9 -30.1
2025-06-13 15:32:01,195 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 15:32:01,195 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 15:32:01,195 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.563477
2025-06-13 15:32:01,195 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 15:32:01,195 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 15:32:01,195 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 15:32:01,195 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 15:32:01,195 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 15:32:01,195 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T15:31:38', tmtdew=18.31, humidity=27.86, cloud=0.0, wind=20.27, temperature=13.76, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T13:31:24.413', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 15:32:01,196 [DEBUG][       Thread-259504][   transport.py][1871] : EOF in transport thread
2025-06-13 15:32:01,213 [DEBUG][Thread-259507 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:32:01,269 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 15:32:01,281 [DEBUG][       Thread-259508][   transport.py][1871] : starting thread (client mode): 0x867b7d00
2025-06-13 15:32:01,281 [DEBUG][       Thread-259508][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 15:32:01,295 [DEBUG][       Thread-259508][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 15:32:01,295 [ INFO][       Thread-259508][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 15:32:01,303 [DEBUG][       Thread-259508][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 15:32:01,303 [DEBUG][       Thread-259508][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 15:32:01,303 [DEBUG][       Thread-259508][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 15:32:01,303 [DEBUG][       Thread-259508][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:32:01,303 [DEBUG][       Thread-259508][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:32:01,303 [DEBUG][       Thread-259508][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:32:01,303 [DEBUG][       Thread-259508][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:32:01,303 [DEBUG][       Thread-259508][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 15:32:01,303 [DEBUG][       Thread-259508][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 15:32:01,303 [DEBUG][       Thread-259508][   transport.py][1871] : client lang: <none>
2025-06-13 15:32:01,303 [DEBUG][       Thread-259508][   transport.py][1871] : server lang: <none>
2025-06-13 15:32:01,303 [DEBUG][       Thread-259508][   transport.py][1871] : kex follows: False
2025-06-13 15:32:01,303 [DEBUG][       Thread-259508][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 15:32:01,303 [DEBUG][       Thread-259508][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 15:32:01,303 [DEBUG][       Thread-259508][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 15:32:01,303 [DEBUG][       Thread-259508][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 15:32:01,303 [DEBUG][       Thread-259508][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 15:32:01,303 [DEBUG][       Thread-259508][   transport.py][1871] : Compression: none
2025-06-13 15:32:01,303 [DEBUG][       Thread-259508][   transport.py][1871] : === End of kex handshake ===
2025-06-13 15:32:01,359 [DEBUG][       Thread-259508][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 15:32:01,359 [DEBUG][       Thread-259508][   transport.py][1871] : Switch to new keys ...
2025-06-13 15:32:01,359 [DEBUG][       Thread-259508][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 15:32:01,360 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 15:32:01,360 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 15:32:01,416 [DEBUG][       Thread-259508][   transport.py][1871] : userauth is OK
2025-06-13 15:32:01,416 [DEBUG][       Thread-259508][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 15:32:01,416 [DEBUG][       Thread-259508][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 15:32:01,416 [DEBUG][       Thread-259508][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 15:32:01,416 [DEBUG][       Thread-259508][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 15:32:01,430 [ INFO][       Thread-259508][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 15:32:01,430 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 15:32:01,430 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 15:32:02,420 [DEBUG][       Thread-259508][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 15:32:02,420 [DEBUG][       Thread-259508][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 15:32:02,469 [DEBUG][       Thread-259508][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 15:32:02,469 [DEBUG][       Thread-259508][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 15:32:02,479 [DEBUG][       Thread-259508][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 15:32:02,490 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 15:32:02,490 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 15:32:02,499 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 15:32:02,507 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 15:32:02,508 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 15:32:02,508 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 15:32:02,515 [DEBUG][       Thread-259508][   transport.py][1871] : EOF in transport thread
2025-06-13 15:32:09,877 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:32:09,878 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:32:10,234 [DEBUG][Thread-259510 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:32:12,518 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 15:32:12,518 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 15:32:12,518 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 15:32:12,521 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 15:32:12,974 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 15, 32, 10), 18.31, 27.99, 0.0, 19.36, 13.77, 0, 0, 0, 2, 0, 0),)
2025-06-13 15:32:12,974 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 15:32:10
2025-06-13 15:32:13,056 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 15:32:13,062 [DEBUG][       Thread-259511][   transport.py][1871] : starting thread (client mode): 0x86352920
2025-06-13 15:32:13,062 [DEBUG][       Thread-259511][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 15:32:13,084 [DEBUG][       Thread-259511][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 15:32:13,084 [ INFO][       Thread-259511][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 15:32:13,088 [DEBUG][       Thread-259511][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 15:32:13,088 [DEBUG][       Thread-259511][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 15:32:13,088 [DEBUG][       Thread-259511][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 15:32:13,088 [DEBUG][       Thread-259511][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:32:13,088 [DEBUG][       Thread-259511][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:32:13,088 [DEBUG][       Thread-259511][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:32:13,088 [DEBUG][       Thread-259511][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:32:13,088 [DEBUG][       Thread-259511][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 15:32:13,088 [DEBUG][       Thread-259511][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 15:32:13,088 [DEBUG][       Thread-259511][   transport.py][1871] : client lang: <none>
2025-06-13 15:32:13,088 [DEBUG][       Thread-259511][   transport.py][1871] : server lang: <none>
2025-06-13 15:32:13,088 [DEBUG][       Thread-259511][   transport.py][1871] : kex follows: False
2025-06-13 15:32:13,088 [DEBUG][       Thread-259511][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 15:32:13,088 [DEBUG][       Thread-259511][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 15:32:13,088 [DEBUG][       Thread-259511][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 15:32:13,088 [DEBUG][       Thread-259511][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 15:32:13,088 [DEBUG][       Thread-259511][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 15:32:13,088 [DEBUG][       Thread-259511][   transport.py][1871] : Compression: none
2025-06-13 15:32:13,089 [DEBUG][       Thread-259511][   transport.py][1871] : === End of kex handshake ===
2025-06-13 15:32:13,107 [DEBUG][       Thread-259511][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 15:32:13,107 [DEBUG][       Thread-259511][   transport.py][1871] : Switch to new keys ...
2025-06-13 15:32:13,108 [DEBUG][       Thread-259511][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 15:32:13,108 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 15:32:13,108 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 15:32:13,109 [DEBUG][       Thread-259511][   transport.py][1871] : userauth is OK
2025-06-13 15:32:13,134 [ INFO][       Thread-259511][   transport.py][1871] : Authentication (password) successful!
2025-06-13 15:32:13,134 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 15:32:13,794 [DEBUG][       Thread-259511][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 15:32:13,794 [DEBUG][       Thread-259511][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 15:32:13,837 [DEBUG][       Thread-259511][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 15:32:13,837 [DEBUG][       Thread-259511][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 15:32:13,840 [DEBUG][       Thread-259511][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 15:32:13,853 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 15:32:13,854 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 15:32:13,855 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 15:32:13,857 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 15:32:13,863 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 15:32:13,865 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 15:32:13,865 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 15:32:13,866 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 15:32:13,866 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.563824 -999.00  +13.70  25.99     32   -2.40 1 1 1 1 1   887    0 16.35 19.10 ----- 23.7 26.0 53.0 28.9 17.0 -31.8 16.1 -33.9 16.9 -32.3 17.9 -30.2
2025-06-13 15:32:13,866 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 15:32:13,866 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 15:32:13,866 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.563824
2025-06-13 15:32:13,866 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 15:32:13,867 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 15:32:13,867 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 15:32:13,867 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 15:32:13,867 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 15:32:13,867 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T15:32:10', tmtdew=18.31, humidity=27.99, cloud=0.0, wind=19.36, temperature=13.77, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T13:31:54.394', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 15:32:13,868 [DEBUG][       Thread-259511][   transport.py][1871] : EOF in transport thread
2025-06-13 15:32:13,944 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 15:32:13,956 [DEBUG][       Thread-259514][   transport.py][1871] : starting thread (client mode): 0x863bea70
2025-06-13 15:32:13,956 [DEBUG][       Thread-259514][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 15:32:13,974 [DEBUG][       Thread-259514][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 15:32:13,974 [ INFO][       Thread-259514][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 15:32:13,982 [DEBUG][       Thread-259514][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 15:32:13,982 [DEBUG][       Thread-259514][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 15:32:13,982 [DEBUG][       Thread-259514][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 15:32:13,982 [DEBUG][       Thread-259514][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:32:13,982 [DEBUG][       Thread-259514][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:32:13,982 [DEBUG][       Thread-259514][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:32:13,982 [DEBUG][       Thread-259514][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:32:13,982 [DEBUG][       Thread-259514][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 15:32:13,982 [DEBUG][       Thread-259514][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 15:32:13,982 [DEBUG][       Thread-259514][   transport.py][1871] : client lang: <none>
2025-06-13 15:32:13,982 [DEBUG][       Thread-259514][   transport.py][1871] : server lang: <none>
2025-06-13 15:32:13,982 [DEBUG][       Thread-259514][   transport.py][1871] : kex follows: False
2025-06-13 15:32:13,983 [DEBUG][       Thread-259514][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 15:32:13,983 [DEBUG][       Thread-259514][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 15:32:13,983 [DEBUG][       Thread-259514][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 15:32:13,983 [DEBUG][       Thread-259514][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 15:32:13,983 [DEBUG][       Thread-259514][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 15:32:13,983 [DEBUG][       Thread-259514][   transport.py][1871] : Compression: none
2025-06-13 15:32:13,983 [DEBUG][       Thread-259514][   transport.py][1871] : === End of kex handshake ===
2025-06-13 15:32:14,041 [DEBUG][       Thread-259514][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 15:32:14,041 [DEBUG][       Thread-259514][   transport.py][1871] : Switch to new keys ...
2025-06-13 15:32:14,042 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 15:32:14,042 [DEBUG][       Thread-259514][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 15:32:14,043 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 15:32:14,100 [DEBUG][       Thread-259514][   transport.py][1871] : userauth is OK
2025-06-13 15:32:14,100 [DEBUG][       Thread-259514][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 15:32:14,101 [DEBUG][       Thread-259514][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 15:32:14,101 [DEBUG][       Thread-259514][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 15:32:14,101 [DEBUG][       Thread-259514][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 15:32:14,120 [ INFO][       Thread-259514][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 15:32:14,120 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 15:32:14,121 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 15:32:15,134 [DEBUG][       Thread-259514][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 15:32:15,135 [DEBUG][       Thread-259514][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 15:32:15,186 [DEBUG][       Thread-259514][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 15:32:15,186 [DEBUG][       Thread-259514][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 15:32:15,196 [DEBUG][       Thread-259514][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 15:32:15,205 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 15:32:15,205 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 15:32:15,214 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 15:32:15,227 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 15:32:15,227 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 15:32:15,227 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 15:32:15,245 [DEBUG][       Thread-259514][   transport.py][1871] : EOF in transport thread
2025-06-13 15:32:19,255 [DEBUG][Thread-259516 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:32:21,344 [DEBUG][Thread-259517 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:32:25,238 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 15:32:25,238 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 15:32:25,238 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 15:32:25,241 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 15:32:25,693 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 15, 32, 10), 18.31, 27.99, 0.0, 19.36, 13.77, 0, 0, 0, 2, 0, 0),)
2025-06-13 15:32:25,693 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 15:32:10
2025-06-13 15:32:25,775 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 15:32:25,779 [DEBUG][       Thread-259518][   transport.py][1871] : starting thread (client mode): 0x863528f0
2025-06-13 15:32:25,779 [DEBUG][       Thread-259518][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 15:32:25,799 [DEBUG][       Thread-259518][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 15:32:25,799 [ INFO][       Thread-259518][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 15:32:25,803 [DEBUG][       Thread-259518][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 15:32:25,803 [DEBUG][       Thread-259518][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 15:32:25,803 [DEBUG][       Thread-259518][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 15:32:25,803 [DEBUG][       Thread-259518][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:32:25,803 [DEBUG][       Thread-259518][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:32:25,803 [DEBUG][       Thread-259518][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:32:25,803 [DEBUG][       Thread-259518][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:32:25,803 [DEBUG][       Thread-259518][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 15:32:25,803 [DEBUG][       Thread-259518][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 15:32:25,803 [DEBUG][       Thread-259518][   transport.py][1871] : client lang: <none>
2025-06-13 15:32:25,803 [DEBUG][       Thread-259518][   transport.py][1871] : server lang: <none>
2025-06-13 15:32:25,803 [DEBUG][       Thread-259518][   transport.py][1871] : kex follows: False
2025-06-13 15:32:25,803 [DEBUG][       Thread-259518][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 15:32:25,803 [DEBUG][       Thread-259518][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 15:32:25,803 [DEBUG][       Thread-259518][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 15:32:25,803 [DEBUG][       Thread-259518][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 15:32:25,803 [DEBUG][       Thread-259518][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 15:32:25,803 [DEBUG][       Thread-259518][   transport.py][1871] : Compression: none
2025-06-13 15:32:25,803 [DEBUG][       Thread-259518][   transport.py][1871] : === End of kex handshake ===
2025-06-13 15:32:25,822 [DEBUG][       Thread-259518][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 15:32:25,822 [DEBUG][       Thread-259518][   transport.py][1871] : Switch to new keys ...
2025-06-13 15:32:25,823 [DEBUG][       Thread-259518][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 15:32:25,823 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 15:32:25,823 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 15:32:25,825 [DEBUG][       Thread-259518][   transport.py][1871] : userauth is OK
2025-06-13 15:32:25,849 [ INFO][       Thread-259518][   transport.py][1871] : Authentication (password) successful!
2025-06-13 15:32:25,850 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 15:32:26,472 [DEBUG][       Thread-259518][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 15:32:26,472 [DEBUG][       Thread-259518][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 15:32:26,513 [DEBUG][       Thread-259518][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 15:32:26,513 [DEBUG][       Thread-259518][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 15:32:26,516 [DEBUG][       Thread-259518][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 15:32:26,528 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 15:32:26,528 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 15:32:26,530 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 15:32:26,532 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 15:32:26,537 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 15:32:26,539 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 15:32:26,539 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 15:32:26,540 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 15:32:26,540 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.563824 -999.00  +13.70  25.99     32   -2.40 1 1 1 1 1   887    0 16.35 19.10 ----- 23.7 26.0 53.0 28.9 17.0 -31.8 16.1 -33.9 16.9 -32.3 17.9 -30.2
2025-06-13 15:32:26,540 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 15:32:26,540 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 15:32:26,540 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.563824
2025-06-13 15:32:26,541 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 15:32:26,541 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 15:32:26,542 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 15:32:26,542 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 15:32:26,542 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 15:32:26,542 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T15:32:10', tmtdew=18.31, humidity=27.99, cloud=0.0, wind=19.36, temperature=13.77, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T13:31:54.394', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 15:32:26,543 [DEBUG][       Thread-259518][   transport.py][1871] : EOF in transport thread
2025-06-13 15:32:26,625 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 15:32:26,646 [DEBUG][       Thread-259521][   transport.py][1871] : starting thread (client mode): 0x867b6e90
2025-06-13 15:32:26,646 [DEBUG][       Thread-259521][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 15:32:26,660 [DEBUG][       Thread-259521][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 15:32:26,660 [ INFO][       Thread-259521][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 15:32:26,668 [DEBUG][       Thread-259521][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 15:32:26,668 [DEBUG][       Thread-259521][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 15:32:26,668 [DEBUG][       Thread-259521][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 15:32:26,668 [DEBUG][       Thread-259521][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:32:26,668 [DEBUG][       Thread-259521][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:32:26,668 [DEBUG][       Thread-259521][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:32:26,668 [DEBUG][       Thread-259521][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:32:26,668 [DEBUG][       Thread-259521][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 15:32:26,668 [DEBUG][       Thread-259521][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 15:32:26,668 [DEBUG][       Thread-259521][   transport.py][1871] : client lang: <none>
2025-06-13 15:32:26,669 [DEBUG][       Thread-259521][   transport.py][1871] : server lang: <none>
2025-06-13 15:32:26,669 [DEBUG][       Thread-259521][   transport.py][1871] : kex follows: False
2025-06-13 15:32:26,669 [DEBUG][       Thread-259521][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 15:32:26,669 [DEBUG][       Thread-259521][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 15:32:26,669 [DEBUG][       Thread-259521][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 15:32:26,669 [DEBUG][       Thread-259521][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 15:32:26,669 [DEBUG][       Thread-259521][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 15:32:26,669 [DEBUG][       Thread-259521][   transport.py][1871] : Compression: none
2025-06-13 15:32:26,669 [DEBUG][       Thread-259521][   transport.py][1871] : === End of kex handshake ===
2025-06-13 15:32:26,725 [DEBUG][       Thread-259521][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 15:32:26,726 [DEBUG][       Thread-259521][   transport.py][1871] : Switch to new keys ...
2025-06-13 15:32:26,727 [DEBUG][       Thread-259521][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 15:32:26,727 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 15:32:26,728 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 15:32:26,781 [DEBUG][       Thread-259521][   transport.py][1871] : userauth is OK
2025-06-13 15:32:26,781 [DEBUG][       Thread-259521][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 15:32:26,781 [DEBUG][       Thread-259521][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 15:32:26,781 [DEBUG][       Thread-259521][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 15:32:26,781 [DEBUG][       Thread-259521][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 15:32:26,800 [ INFO][       Thread-259521][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 15:32:26,801 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 15:32:26,801 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 15:32:27,799 [DEBUG][       Thread-259521][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 15:32:27,799 [DEBUG][       Thread-259521][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 15:32:27,848 [DEBUG][       Thread-259521][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 15:32:27,848 [DEBUG][       Thread-259521][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 15:32:27,856 [DEBUG][       Thread-259521][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 15:32:27,864 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 15:32:27,864 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 15:32:27,872 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 15:32:27,882 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 15:32:27,882 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 15:32:27,882 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 15:32:27,896 [DEBUG][       Thread-259521][   transport.py][1871] : EOF in transport thread
2025-06-13 15:32:28,295 [DEBUG][Thread-259523 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:32:37,317 [DEBUG][Thread-259524 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:32:37,892 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 15:32:37,892 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 15:32:37,893 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 15:32:37,895 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 15:32:38,362 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 15, 32, 10), 18.31, 27.99, 0.0, 19.36, 13.77, 0, 0, 0, 2, 0, 0),)
2025-06-13 15:32:38,362 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 15:32:10
2025-06-13 15:32:38,444 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 15:32:38,450 [DEBUG][       Thread-259525][   transport.py][1871] : starting thread (client mode): 0x86893fd0
2025-06-13 15:32:38,450 [DEBUG][       Thread-259525][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 15:32:38,470 [DEBUG][       Thread-259525][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 15:32:38,470 [ INFO][       Thread-259525][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 15:32:38,474 [DEBUG][       Thread-259525][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 15:32:38,474 [DEBUG][       Thread-259525][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 15:32:38,474 [DEBUG][       Thread-259525][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 15:32:38,474 [DEBUG][       Thread-259525][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:32:38,474 [DEBUG][       Thread-259525][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:32:38,474 [DEBUG][       Thread-259525][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:32:38,474 [DEBUG][       Thread-259525][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:32:38,474 [DEBUG][       Thread-259525][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 15:32:38,474 [DEBUG][       Thread-259525][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 15:32:38,474 [DEBUG][       Thread-259525][   transport.py][1871] : client lang: <none>
2025-06-13 15:32:38,474 [DEBUG][       Thread-259525][   transport.py][1871] : server lang: <none>
2025-06-13 15:32:38,474 [DEBUG][       Thread-259525][   transport.py][1871] : kex follows: False
2025-06-13 15:32:38,474 [DEBUG][       Thread-259525][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 15:32:38,474 [DEBUG][       Thread-259525][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 15:32:38,475 [DEBUG][       Thread-259525][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 15:32:38,475 [DEBUG][       Thread-259525][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 15:32:38,475 [DEBUG][       Thread-259525][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 15:32:38,475 [DEBUG][       Thread-259525][   transport.py][1871] : Compression: none
2025-06-13 15:32:38,475 [DEBUG][       Thread-259525][   transport.py][1871] : === End of kex handshake ===
2025-06-13 15:32:38,492 [DEBUG][       Thread-259525][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 15:32:38,492 [DEBUG][       Thread-259525][   transport.py][1871] : Switch to new keys ...
2025-06-13 15:32:38,493 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 15:32:38,493 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 15:32:38,494 [DEBUG][       Thread-259525][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 15:32:38,495 [DEBUG][       Thread-259525][   transport.py][1871] : userauth is OK
2025-06-13 15:32:38,508 [ INFO][       Thread-259525][   transport.py][1871] : Authentication (password) successful!
2025-06-13 15:32:38,508 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 15:32:39,193 [DEBUG][       Thread-259525][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 15:32:39,193 [DEBUG][       Thread-259525][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 15:32:39,236 [DEBUG][       Thread-259525][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 15:32:39,237 [DEBUG][       Thread-259525][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 15:32:39,239 [DEBUG][       Thread-259525][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 15:32:39,251 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 15:32:39,251 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 15:32:39,253 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 15:32:39,254 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 15:32:39,258 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 15:32:39,259 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 15:32:39,259 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 15:32:39,259 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 15:32:39,259 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.564172 -999.00  +13.70  24.40     32   -2.20 1 1 1 1 1   887    0 16.55 18.94 ----- 22.9 24.4 51.0 26.3 17.0 -31.8 16.0 -33.6 16.8 -32.1 17.9 -29.9
2025-06-13 15:32:39,259 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 15:32:39,259 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 15:32:39,259 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.564172
2025-06-13 15:32:39,259 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 15:32:39,259 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 15:32:39,259 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 15:32:39,259 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 15:32:39,259 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 15:32:39,259 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T15:32:10', tmtdew=18.31, humidity=27.99, cloud=0.0, wind=19.36, temperature=13.77, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T13:32:24.461', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 15:32:39,260 [DEBUG][       Thread-259525][   transport.py][1871] : EOF in transport thread
2025-06-13 15:32:39,334 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 15:32:39,344 [DEBUG][       Thread-259528][   transport.py][1871] : starting thread (client mode): 0x86393340
2025-06-13 15:32:39,344 [DEBUG][       Thread-259528][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 15:32:39,359 [DEBUG][       Thread-259528][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 15:32:39,359 [ INFO][       Thread-259528][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 15:32:39,366 [DEBUG][       Thread-259528][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 15:32:39,366 [DEBUG][       Thread-259528][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 15:32:39,366 [DEBUG][       Thread-259528][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 15:32:39,366 [DEBUG][       Thread-259528][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:32:39,366 [DEBUG][       Thread-259528][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:32:39,366 [DEBUG][       Thread-259528][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:32:39,366 [DEBUG][       Thread-259528][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:32:39,366 [DEBUG][       Thread-259528][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 15:32:39,366 [DEBUG][       Thread-259528][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 15:32:39,366 [DEBUG][       Thread-259528][   transport.py][1871] : client lang: <none>
2025-06-13 15:32:39,366 [DEBUG][       Thread-259528][   transport.py][1871] : server lang: <none>
2025-06-13 15:32:39,366 [DEBUG][       Thread-259528][   transport.py][1871] : kex follows: False
2025-06-13 15:32:39,366 [DEBUG][       Thread-259528][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 15:32:39,367 [DEBUG][       Thread-259528][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 15:32:39,367 [DEBUG][       Thread-259528][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 15:32:39,367 [DEBUG][       Thread-259528][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 15:32:39,367 [DEBUG][       Thread-259528][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 15:32:39,367 [DEBUG][       Thread-259528][   transport.py][1871] : Compression: none
2025-06-13 15:32:39,367 [DEBUG][       Thread-259528][   transport.py][1871] : === End of kex handshake ===
2025-06-13 15:32:39,423 [DEBUG][       Thread-259528][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 15:32:39,424 [DEBUG][       Thread-259528][   transport.py][1871] : Switch to new keys ...
2025-06-13 15:32:39,424 [DEBUG][       Thread-259528][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 15:32:39,424 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 15:32:39,424 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 15:32:39,480 [DEBUG][       Thread-259528][   transport.py][1871] : userauth is OK
2025-06-13 15:32:39,480 [DEBUG][       Thread-259528][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 15:32:39,480 [DEBUG][       Thread-259528][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 15:32:39,480 [DEBUG][       Thread-259528][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 15:32:39,480 [DEBUG][       Thread-259528][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 15:32:39,494 [ INFO][       Thread-259528][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 15:32:39,494 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 15:32:39,494 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 15:32:40,469 [DEBUG][       Thread-259528][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 15:32:40,469 [DEBUG][       Thread-259528][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 15:32:40,519 [DEBUG][       Thread-259528][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 15:32:40,519 [DEBUG][       Thread-259528][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 15:32:40,528 [DEBUG][       Thread-259528][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 15:32:40,536 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 15:32:40,536 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 15:32:40,544 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 15:32:40,552 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 15:32:40,552 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 15:32:40,552 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 15:32:40,560 [DEBUG][       Thread-259528][   transport.py][1871] : EOF in transport thread
2025-06-13 15:32:46,337 [DEBUG][Thread-259530 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:32:50,562 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 15:32:50,562 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 15:32:50,563 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 15:32:50,565 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 15:32:51,017 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 15, 32, 41), 18.36, 27.9, 0.0, 18.86, 13.81, 0, 0, 0, 2, 0, 0),)
2025-06-13 15:32:51,017 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 15:32:41
2025-06-13 15:32:51,099 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 15:32:51,103 [DEBUG][       Thread-259531][   transport.py][1871] : starting thread (client mode): 0x86393610
2025-06-13 15:32:51,103 [DEBUG][       Thread-259531][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 15:32:51,126 [DEBUG][       Thread-259531][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 15:32:51,126 [ INFO][       Thread-259531][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 15:32:51,130 [DEBUG][       Thread-259531][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 15:32:51,130 [DEBUG][       Thread-259531][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 15:32:51,130 [DEBUG][       Thread-259531][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 15:32:51,130 [DEBUG][       Thread-259531][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:32:51,130 [DEBUG][       Thread-259531][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:32:51,130 [DEBUG][       Thread-259531][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:32:51,130 [DEBUG][       Thread-259531][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:32:51,130 [DEBUG][       Thread-259531][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 15:32:51,130 [DEBUG][       Thread-259531][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 15:32:51,131 [DEBUG][       Thread-259531][   transport.py][1871] : client lang: <none>
2025-06-13 15:32:51,131 [DEBUG][       Thread-259531][   transport.py][1871] : server lang: <none>
2025-06-13 15:32:51,131 [DEBUG][       Thread-259531][   transport.py][1871] : kex follows: False
2025-06-13 15:32:51,131 [DEBUG][       Thread-259531][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 15:32:51,131 [DEBUG][       Thread-259531][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 15:32:51,131 [DEBUG][       Thread-259531][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 15:32:51,131 [DEBUG][       Thread-259531][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 15:32:51,131 [DEBUG][       Thread-259531][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 15:32:51,131 [DEBUG][       Thread-259531][   transport.py][1871] : Compression: none
2025-06-13 15:32:51,131 [DEBUG][       Thread-259531][   transport.py][1871] : === End of kex handshake ===
2025-06-13 15:32:51,147 [DEBUG][       Thread-259531][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 15:32:51,148 [DEBUG][       Thread-259531][   transport.py][1871] : Switch to new keys ...
2025-06-13 15:32:51,149 [DEBUG][       Thread-259531][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 15:32:51,149 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 15:32:51,149 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 15:32:51,150 [DEBUG][       Thread-259531][   transport.py][1871] : userauth is OK
2025-06-13 15:32:51,175 [ INFO][       Thread-259531][   transport.py][1871] : Authentication (password) successful!
2025-06-13 15:32:51,176 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 15:32:51,749 [DEBUG][       Thread-259531][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 15:32:51,749 [DEBUG][       Thread-259531][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 15:32:51,793 [DEBUG][       Thread-259531][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 15:32:51,793 [DEBUG][       Thread-259531][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 15:32:51,797 [DEBUG][       Thread-259531][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 15:32:51,808 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 15:32:51,809 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 15:32:51,811 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 15:32:51,813 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 15:32:51,818 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 15:32:51,820 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 15:32:51,820 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 15:32:51,821 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 15:32:51,821 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.564172 -999.00  +13.70  24.40     32   -2.20 1 1 1 1 1   887    0 16.55 18.94 ----- 22.9 24.4 51.0 26.3 17.0 -31.8 16.0 -33.6 16.8 -32.1 17.9 -29.9
2025-06-13 15:32:51,821 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 15:32:51,821 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 15:32:51,821 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.564172
2025-06-13 15:32:51,822 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 15:32:51,822 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 15:32:51,823 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 15:32:51,823 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 15:32:51,823 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 15:32:51,823 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T15:32:41', tmtdew=18.36, humidity=27.9, cloud=0.0, wind=18.86, temperature=13.81, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T13:32:24.461', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 15:32:51,823 [DEBUG][       Thread-259531][   transport.py][1871] : EOF in transport thread
2025-06-13 15:32:51,906 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 15:32:51,915 [DEBUG][       Thread-259534][   transport.py][1871] : starting thread (client mode): 0x867b5cf0
2025-06-13 15:32:51,915 [DEBUG][       Thread-259534][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 15:32:51,930 [DEBUG][       Thread-259534][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 15:32:51,930 [ INFO][       Thread-259534][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 15:32:51,938 [DEBUG][       Thread-259534][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 15:32:51,938 [DEBUG][       Thread-259534][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 15:32:51,938 [DEBUG][       Thread-259534][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 15:32:51,938 [DEBUG][       Thread-259534][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:32:51,938 [DEBUG][       Thread-259534][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:32:51,938 [DEBUG][       Thread-259534][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:32:51,938 [DEBUG][       Thread-259534][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:32:51,938 [DEBUG][       Thread-259534][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 15:32:51,938 [DEBUG][       Thread-259534][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 15:32:51,938 [DEBUG][       Thread-259534][   transport.py][1871] : client lang: <none>
2025-06-13 15:32:51,938 [DEBUG][       Thread-259534][   transport.py][1871] : server lang: <none>
2025-06-13 15:32:51,939 [DEBUG][       Thread-259534][   transport.py][1871] : kex follows: False
2025-06-13 15:32:51,939 [DEBUG][       Thread-259534][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 15:32:51,939 [DEBUG][       Thread-259534][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 15:32:51,939 [DEBUG][       Thread-259534][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 15:32:51,939 [DEBUG][       Thread-259534][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 15:32:51,939 [DEBUG][       Thread-259534][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 15:32:51,939 [DEBUG][       Thread-259534][   transport.py][1871] : Compression: none
2025-06-13 15:32:51,939 [DEBUG][       Thread-259534][   transport.py][1871] : === End of kex handshake ===
2025-06-13 15:32:51,997 [DEBUG][       Thread-259534][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 15:32:51,997 [DEBUG][       Thread-259534][   transport.py][1871] : Switch to new keys ...
2025-06-13 15:32:51,998 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 15:32:51,999 [DEBUG][       Thread-259534][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 15:32:51,999 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 15:32:52,053 [DEBUG][       Thread-259534][   transport.py][1871] : userauth is OK
2025-06-13 15:32:52,053 [DEBUG][       Thread-259534][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 15:32:52,053 [DEBUG][       Thread-259534][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 15:32:52,053 [DEBUG][       Thread-259534][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 15:32:52,053 [DEBUG][       Thread-259534][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 15:32:52,072 [ INFO][       Thread-259534][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 15:32:52,073 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 15:32:52,082 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 15:32:53,054 [DEBUG][       Thread-259534][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 15:32:53,054 [DEBUG][       Thread-259534][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 15:32:53,104 [DEBUG][       Thread-259534][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 15:32:53,104 [DEBUG][       Thread-259534][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 15:32:53,114 [DEBUG][       Thread-259534][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 15:32:53,123 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 15:32:53,123 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 15:32:53,132 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 15:32:53,141 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 15:32:53,142 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 15:32:53,142 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 15:32:53,150 [DEBUG][       Thread-259534][   transport.py][1871] : EOF in transport thread
2025-06-13 15:32:53,225 [DEBUG][Thread-259536 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:32:54,302 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:32:54,304 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:32:55,361 [DEBUG][Thread-259537 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:33:03,153 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 15:33:03,153 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 15:33:03,153 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 15:33:03,156 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 15:33:03,604 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 15, 32, 41), 18.36, 27.9, 0.0, 18.86, 13.81, 0, 0, 0, 2, 0, 0),)
2025-06-13 15:33:03,604 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 15:32:41
2025-06-13 15:33:03,686 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 15:33:03,692 [DEBUG][       Thread-259538][   transport.py][1871] : starting thread (client mode): 0x863a7040
2025-06-13 15:33:03,692 [DEBUG][       Thread-259538][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 15:33:03,711 [DEBUG][       Thread-259538][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 15:33:03,711 [ INFO][       Thread-259538][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 15:33:03,715 [DEBUG][       Thread-259538][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 15:33:03,715 [DEBUG][       Thread-259538][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 15:33:03,715 [DEBUG][       Thread-259538][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 15:33:03,715 [DEBUG][       Thread-259538][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:33:03,715 [DEBUG][       Thread-259538][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:33:03,715 [DEBUG][       Thread-259538][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:33:03,715 [DEBUG][       Thread-259538][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:33:03,715 [DEBUG][       Thread-259538][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 15:33:03,715 [DEBUG][       Thread-259538][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 15:33:03,715 [DEBUG][       Thread-259538][   transport.py][1871] : client lang: <none>
2025-06-13 15:33:03,715 [DEBUG][       Thread-259538][   transport.py][1871] : server lang: <none>
2025-06-13 15:33:03,715 [DEBUG][       Thread-259538][   transport.py][1871] : kex follows: False
2025-06-13 15:33:03,715 [DEBUG][       Thread-259538][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 15:33:03,716 [DEBUG][       Thread-259538][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 15:33:03,716 [DEBUG][       Thread-259538][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 15:33:03,716 [DEBUG][       Thread-259538][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 15:33:03,716 [DEBUG][       Thread-259538][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 15:33:03,716 [DEBUG][       Thread-259538][   transport.py][1871] : Compression: none
2025-06-13 15:33:03,716 [DEBUG][       Thread-259538][   transport.py][1871] : === End of kex handshake ===
2025-06-13 15:33:03,734 [DEBUG][       Thread-259538][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 15:33:03,735 [DEBUG][       Thread-259538][   transport.py][1871] : Switch to new keys ...
2025-06-13 15:33:03,735 [DEBUG][       Thread-259538][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 15:33:03,735 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 15:33:03,736 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 15:33:03,737 [DEBUG][       Thread-259538][   transport.py][1871] : userauth is OK
2025-06-13 15:33:03,762 [ INFO][       Thread-259538][   transport.py][1871] : Authentication (password) successful!
2025-06-13 15:33:03,762 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 15:33:04,392 [DEBUG][       Thread-259538][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 15:33:04,393 [DEBUG][       Thread-259538][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 15:33:04,397 [DEBUG][Thread-259540 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:33:04,437 [DEBUG][       Thread-259538][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 15:33:04,437 [DEBUG][       Thread-259538][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 15:33:04,440 [DEBUG][       Thread-259538][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 15:33:04,452 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 15:33:04,453 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 15:33:04,455 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 15:33:04,456 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 15:33:04,462 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 15:33:04,464 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 15:33:04,465 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 15:33:04,465 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 15:33:04,465 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.564172 -999.00  +13.70  24.40     32   -2.20 1 1 1 1 1   887    0 16.55 18.94 ----- 22.9 24.4 51.0 26.3 17.0 -31.8 16.0 -33.6 16.8 -32.1 17.9 -29.9
2025-06-13 15:33:04,466 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 15:33:04,466 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 15:33:04,466 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.564172
2025-06-13 15:33:04,466 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 15:33:04,467 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 15:33:04,467 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 15:33:04,467 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 15:33:04,467 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 15:33:04,467 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T15:32:41', tmtdew=18.36, humidity=27.9, cloud=0.0, wind=18.86, temperature=13.81, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T13:32:24.461', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 15:33:04,467 [DEBUG][       Thread-259538][   transport.py][1871] : EOF in transport thread
2025-06-13 15:33:04,544 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 15:33:04,555 [DEBUG][       Thread-259542][   transport.py][1871] : starting thread (client mode): 0x86391660
2025-06-13 15:33:04,555 [DEBUG][       Thread-259542][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 15:33:04,570 [DEBUG][       Thread-259542][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 15:33:04,570 [ INFO][       Thread-259542][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 15:33:04,578 [DEBUG][       Thread-259542][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 15:33:04,578 [DEBUG][       Thread-259542][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 15:33:04,578 [DEBUG][       Thread-259542][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 15:33:04,578 [DEBUG][       Thread-259542][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:33:04,578 [DEBUG][       Thread-259542][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:33:04,578 [DEBUG][       Thread-259542][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:33:04,578 [DEBUG][       Thread-259542][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:33:04,578 [DEBUG][       Thread-259542][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 15:33:04,578 [DEBUG][       Thread-259542][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 15:33:04,578 [DEBUG][       Thread-259542][   transport.py][1871] : client lang: <none>
2025-06-13 15:33:04,578 [DEBUG][       Thread-259542][   transport.py][1871] : server lang: <none>
2025-06-13 15:33:04,578 [DEBUG][       Thread-259542][   transport.py][1871] : kex follows: False
2025-06-13 15:33:04,578 [DEBUG][       Thread-259542][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 15:33:04,578 [DEBUG][       Thread-259542][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 15:33:04,579 [DEBUG][       Thread-259542][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 15:33:04,579 [DEBUG][       Thread-259542][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 15:33:04,579 [DEBUG][       Thread-259542][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 15:33:04,579 [DEBUG][       Thread-259542][   transport.py][1871] : Compression: none
2025-06-13 15:33:04,579 [DEBUG][       Thread-259542][   transport.py][1871] : === End of kex handshake ===
2025-06-13 15:33:04,641 [DEBUG][       Thread-259542][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 15:33:04,641 [DEBUG][       Thread-259542][   transport.py][1871] : Switch to new keys ...
2025-06-13 15:33:04,642 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 15:33:04,643 [DEBUG][       Thread-259542][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 15:33:04,643 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 15:33:04,697 [DEBUG][       Thread-259542][   transport.py][1871] : userauth is OK
2025-06-13 15:33:04,697 [DEBUG][       Thread-259542][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 15:33:04,698 [DEBUG][       Thread-259542][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 15:33:04,698 [DEBUG][       Thread-259542][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 15:33:04,698 [DEBUG][       Thread-259542][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 15:33:04,721 [ INFO][       Thread-259542][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 15:33:04,722 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 15:33:04,722 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 15:33:05,742 [DEBUG][       Thread-259542][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 15:33:05,742 [DEBUG][       Thread-259542][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 15:33:05,795 [DEBUG][       Thread-259542][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 15:33:05,795 [DEBUG][       Thread-259542][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 15:33:05,804 [DEBUG][       Thread-259542][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 15:33:05,812 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 15:33:05,813 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 15:33:05,821 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 15:33:05,829 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 15:33:05,829 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 15:33:05,830 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 15:33:05,837 [DEBUG][       Thread-259542][   transport.py][1871] : EOF in transport thread
2025-06-13 15:33:10,016 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:33:10,017 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:33:13,422 [DEBUG][Thread-259544 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:33:15,840 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 15:33:15,840 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 15:33:15,840 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 15:33:15,841 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 15:33:16,310 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 15, 32, 41), 18.36, 27.9, 0.0, 18.86, 13.81, 0, 0, 0, 2, 0, 0),)
2025-06-13 15:33:16,310 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 15:32:41
2025-06-13 15:33:16,391 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 15:33:16,396 [DEBUG][       Thread-259545][   transport.py][1871] : starting thread (client mode): 0x863c8cd0
2025-06-13 15:33:16,396 [DEBUG][       Thread-259545][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 15:33:16,417 [DEBUG][       Thread-259545][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 15:33:16,417 [ INFO][       Thread-259545][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 15:33:16,420 [DEBUG][       Thread-259545][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 15:33:16,420 [DEBUG][       Thread-259545][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 15:33:16,421 [DEBUG][       Thread-259545][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 15:33:16,421 [DEBUG][       Thread-259545][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:33:16,421 [DEBUG][       Thread-259545][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:33:16,421 [DEBUG][       Thread-259545][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:33:16,421 [DEBUG][       Thread-259545][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:33:16,421 [DEBUG][       Thread-259545][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 15:33:16,421 [DEBUG][       Thread-259545][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 15:33:16,421 [DEBUG][       Thread-259545][   transport.py][1871] : client lang: <none>
2025-06-13 15:33:16,421 [DEBUG][       Thread-259545][   transport.py][1871] : server lang: <none>
2025-06-13 15:33:16,421 [DEBUG][       Thread-259545][   transport.py][1871] : kex follows: False
2025-06-13 15:33:16,421 [DEBUG][       Thread-259545][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 15:33:16,421 [DEBUG][       Thread-259545][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 15:33:16,421 [DEBUG][       Thread-259545][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 15:33:16,421 [DEBUG][       Thread-259545][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 15:33:16,421 [DEBUG][       Thread-259545][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 15:33:16,421 [DEBUG][       Thread-259545][   transport.py][1871] : Compression: none
2025-06-13 15:33:16,421 [DEBUG][       Thread-259545][   transport.py][1871] : === End of kex handshake ===
2025-06-13 15:33:16,438 [DEBUG][       Thread-259545][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 15:33:16,438 [DEBUG][       Thread-259545][   transport.py][1871] : Switch to new keys ...
2025-06-13 15:33:16,439 [DEBUG][       Thread-259545][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 15:33:16,439 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 15:33:16,439 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 15:33:16,440 [DEBUG][       Thread-259545][   transport.py][1871] : userauth is OK
2025-06-13 15:33:16,454 [ INFO][       Thread-259545][   transport.py][1871] : Authentication (password) successful!
2025-06-13 15:33:16,455 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 15:33:17,093 [DEBUG][       Thread-259545][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 15:33:17,093 [DEBUG][       Thread-259545][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 15:33:17,137 [DEBUG][       Thread-259545][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 15:33:17,137 [DEBUG][       Thread-259545][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 15:33:17,139 [DEBUG][       Thread-259545][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 15:33:17,150 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 15:33:17,150 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 15:33:17,151 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 15:33:17,152 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 15:33:17,155 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 15:33:17,156 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 15:33:17,156 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 15:33:17,156 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 15:33:17,156 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.564519 -999.00  +13.70  23.10     33   -2.20 1 1 1 1 1   887    0 16.10 21.52 ----- 23.4 23.1 50.4 26.8 17.0 -32.2 16.0 -33.6 16.8 -30.8 17.9 -29.8
2025-06-13 15:33:17,156 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 15:33:17,156 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 15:33:17,156 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.564519
2025-06-13 15:33:17,156 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 15:33:17,157 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 15:33:17,157 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 15:33:17,157 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 15:33:17,157 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 15:33:17,157 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T15:32:41', tmtdew=18.36, humidity=27.9, cloud=0.0, wind=18.86, temperature=13.81, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T13:32:54.442', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 15:33:17,157 [DEBUG][       Thread-259545][   transport.py][1871] : EOF in transport thread
2025-06-13 15:33:17,231 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 15:33:17,248 [DEBUG][       Thread-259548][   transport.py][1871] : starting thread (client mode): 0x863be500
2025-06-13 15:33:17,248 [DEBUG][       Thread-259548][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 15:33:17,265 [DEBUG][       Thread-259548][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 15:33:17,265 [ INFO][       Thread-259548][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 15:33:17,272 [DEBUG][       Thread-259548][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 15:33:17,272 [DEBUG][       Thread-259548][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 15:33:17,272 [DEBUG][       Thread-259548][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 15:33:17,272 [DEBUG][       Thread-259548][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:33:17,272 [DEBUG][       Thread-259548][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:33:17,272 [DEBUG][       Thread-259548][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:33:17,272 [DEBUG][       Thread-259548][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:33:17,272 [DEBUG][       Thread-259548][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 15:33:17,272 [DEBUG][       Thread-259548][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 15:33:17,272 [DEBUG][       Thread-259548][   transport.py][1871] : client lang: <none>
2025-06-13 15:33:17,272 [DEBUG][       Thread-259548][   transport.py][1871] : server lang: <none>
2025-06-13 15:33:17,272 [DEBUG][       Thread-259548][   transport.py][1871] : kex follows: False
2025-06-13 15:33:17,272 [DEBUG][       Thread-259548][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 15:33:17,272 [DEBUG][       Thread-259548][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 15:33:17,272 [DEBUG][       Thread-259548][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 15:33:17,272 [DEBUG][       Thread-259548][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 15:33:17,272 [DEBUG][       Thread-259548][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 15:33:17,272 [DEBUG][       Thread-259548][   transport.py][1871] : Compression: none
2025-06-13 15:33:17,272 [DEBUG][       Thread-259548][   transport.py][1871] : === End of kex handshake ===
2025-06-13 15:33:17,327 [DEBUG][       Thread-259548][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 15:33:17,328 [DEBUG][       Thread-259548][   transport.py][1871] : Switch to new keys ...
2025-06-13 15:33:17,328 [DEBUG][       Thread-259548][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 15:33:17,328 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 15:33:17,328 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 15:33:17,388 [DEBUG][       Thread-259548][   transport.py][1871] : userauth is OK
2025-06-13 15:33:17,388 [DEBUG][       Thread-259548][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 15:33:17,388 [DEBUG][       Thread-259548][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 15:33:17,388 [DEBUG][       Thread-259548][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 15:33:17,388 [DEBUG][       Thread-259548][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 15:33:17,403 [ INFO][       Thread-259548][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 15:33:17,403 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 15:33:17,403 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 15:33:18,418 [DEBUG][       Thread-259548][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 15:33:18,418 [DEBUG][       Thread-259548][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 15:33:18,468 [DEBUG][       Thread-259548][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 15:33:18,468 [DEBUG][       Thread-259548][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 15:33:18,480 [DEBUG][       Thread-259548][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 15:33:18,489 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 15:33:18,489 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 15:33:18,499 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 15:33:18,508 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 15:33:18,508 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 15:33:18,508 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 15:33:18,516 [DEBUG][       Thread-259548][   transport.py][1871] : EOF in transport thread
2025-06-13 15:33:21,398 [DEBUG][Thread-259550 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:33:22,441 [DEBUG][Thread-259551 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:33:28,518 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 15:33:28,519 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 15:33:28,519 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 15:33:28,522 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 15:33:28,977 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 15, 33, 13), 18.31, 27.87, 0.0, 17.73, 13.87, 0, 0, 0, 2, 0, 0),)
2025-06-13 15:33:28,977 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 15:33:13
2025-06-13 15:33:29,058 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 15:33:29,062 [DEBUG][       Thread-259552][   transport.py][1871] : starting thread (client mode): 0x863c9420
2025-06-13 15:33:29,062 [DEBUG][       Thread-259552][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 15:33:29,081 [DEBUG][       Thread-259552][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 15:33:29,081 [ INFO][       Thread-259552][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 15:33:29,083 [DEBUG][       Thread-259552][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 15:33:29,083 [DEBUG][       Thread-259552][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 15:33:29,083 [DEBUG][       Thread-259552][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 15:33:29,083 [DEBUG][       Thread-259552][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:33:29,083 [DEBUG][       Thread-259552][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:33:29,083 [DEBUG][       Thread-259552][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:33:29,083 [DEBUG][       Thread-259552][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:33:29,083 [DEBUG][       Thread-259552][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 15:33:29,083 [DEBUG][       Thread-259552][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 15:33:29,083 [DEBUG][       Thread-259552][   transport.py][1871] : client lang: <none>
2025-06-13 15:33:29,083 [DEBUG][       Thread-259552][   transport.py][1871] : server lang: <none>
2025-06-13 15:33:29,083 [DEBUG][       Thread-259552][   transport.py][1871] : kex follows: False
2025-06-13 15:33:29,083 [DEBUG][       Thread-259552][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 15:33:29,083 [DEBUG][       Thread-259552][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 15:33:29,083 [DEBUG][       Thread-259552][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 15:33:29,083 [DEBUG][       Thread-259552][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 15:33:29,083 [DEBUG][       Thread-259552][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 15:33:29,083 [DEBUG][       Thread-259552][   transport.py][1871] : Compression: none
2025-06-13 15:33:29,083 [DEBUG][       Thread-259552][   transport.py][1871] : === End of kex handshake ===
2025-06-13 15:33:29,091 [DEBUG][       Thread-259552][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 15:33:29,091 [DEBUG][       Thread-259552][   transport.py][1871] : Switch to new keys ...
2025-06-13 15:33:29,091 [DEBUG][       Thread-259552][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 15:33:29,092 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 15:33:29,092 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 15:33:29,093 [DEBUG][       Thread-259552][   transport.py][1871] : userauth is OK
2025-06-13 15:33:29,118 [ INFO][       Thread-259552][   transport.py][1871] : Authentication (password) successful!
2025-06-13 15:33:29,118 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 15:33:29,698 [DEBUG][       Thread-259552][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 15:33:29,698 [DEBUG][       Thread-259552][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 15:33:29,741 [DEBUG][       Thread-259552][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 15:33:29,741 [DEBUG][       Thread-259552][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 15:33:29,744 [DEBUG][       Thread-259552][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 15:33:29,752 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 15:33:29,753 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 15:33:29,755 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 15:33:29,757 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 15:33:29,762 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 15:33:29,764 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 15:33:29,764 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 15:33:29,765 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 15:33:29,765 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.564519 -999.00  +13.70  23.10     33   -2.20 1 1 1 1 1   887    0 16.10 21.52 ----- 23.4 23.1 50.4 26.8 17.0 -32.2 16.0 -33.6 16.8 -30.8 17.9 -29.8
2025-06-13 15:33:29,765 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 15:33:29,765 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 15:33:29,765 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.564519
2025-06-13 15:33:29,765 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 15:33:29,766 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 15:33:29,766 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 15:33:29,766 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 15:33:29,766 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 15:33:29,766 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T15:33:13', tmtdew=18.31, humidity=27.87, cloud=0.0, wind=17.73, temperature=13.87, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T13:32:54.442', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 15:33:29,768 [DEBUG][       Thread-259552][   transport.py][1871] : EOF in transport thread
2025-06-13 15:33:29,843 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 15:33:29,853 [DEBUG][       Thread-259555][   transport.py][1871] : starting thread (client mode): 0x863a5780
2025-06-13 15:33:29,853 [DEBUG][       Thread-259555][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 15:33:29,868 [DEBUG][       Thread-259555][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 15:33:29,868 [ INFO][       Thread-259555][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 15:33:29,876 [DEBUG][       Thread-259555][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 15:33:29,876 [DEBUG][       Thread-259555][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 15:33:29,876 [DEBUG][       Thread-259555][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 15:33:29,876 [DEBUG][       Thread-259555][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:33:29,876 [DEBUG][       Thread-259555][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:33:29,876 [DEBUG][       Thread-259555][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:33:29,876 [DEBUG][       Thread-259555][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:33:29,876 [DEBUG][       Thread-259555][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 15:33:29,876 [DEBUG][       Thread-259555][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 15:33:29,876 [DEBUG][       Thread-259555][   transport.py][1871] : client lang: <none>
2025-06-13 15:33:29,876 [DEBUG][       Thread-259555][   transport.py][1871] : server lang: <none>
2025-06-13 15:33:29,876 [DEBUG][       Thread-259555][   transport.py][1871] : kex follows: False
2025-06-13 15:33:29,876 [DEBUG][       Thread-259555][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 15:33:29,876 [DEBUG][       Thread-259555][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 15:33:29,876 [DEBUG][       Thread-259555][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 15:33:29,876 [DEBUG][       Thread-259555][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 15:33:29,876 [DEBUG][       Thread-259555][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 15:33:29,877 [DEBUG][       Thread-259555][   transport.py][1871] : Compression: none
2025-06-13 15:33:29,877 [DEBUG][       Thread-259555][   transport.py][1871] : === End of kex handshake ===
2025-06-13 15:33:29,933 [DEBUG][       Thread-259555][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 15:33:29,934 [DEBUG][       Thread-259555][   transport.py][1871] : Switch to new keys ...
2025-06-13 15:33:29,934 [DEBUG][       Thread-259555][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 15:33:29,935 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 15:33:29,935 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 15:33:30,002 [DEBUG][       Thread-259555][   transport.py][1871] : userauth is OK
2025-06-13 15:33:30,002 [DEBUG][       Thread-259555][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 15:33:30,002 [DEBUG][       Thread-259555][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 15:33:30,002 [DEBUG][       Thread-259555][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 15:33:30,002 [DEBUG][       Thread-259555][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 15:33:30,020 [ INFO][       Thread-259555][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 15:33:30,021 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 15:33:30,021 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 15:33:31,034 [DEBUG][       Thread-259555][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 15:33:31,034 [DEBUG][       Thread-259555][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 15:33:31,084 [DEBUG][       Thread-259555][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 15:33:31,084 [DEBUG][       Thread-259555][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 15:33:31,093 [DEBUG][       Thread-259555][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 15:33:31,102 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 15:33:31,103 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 15:33:31,112 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 15:33:31,127 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 15:33:31,127 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 15:33:31,128 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 15:33:31,135 [DEBUG][       Thread-259555][   transport.py][1871] : EOF in transport thread
2025-06-13 15:33:31,464 [DEBUG][Thread-259557 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:33:40,501 [DEBUG][Thread-259558 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:33:41,136 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 15:33:41,136 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 15:33:41,136 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 15:33:41,138 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 15:33:41,603 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 15, 33, 13), 18.31, 27.87, 0.0, 17.73, 13.87, 0, 0, 0, 2, 0, 0),)
2025-06-13 15:33:41,603 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 15:33:13
2025-06-13 15:33:41,684 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 15:33:41,688 [DEBUG][       Thread-259559][   transport.py][1871] : starting thread (client mode): 0x863cbe20
2025-06-13 15:33:41,688 [DEBUG][       Thread-259559][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 15:33:41,708 [DEBUG][       Thread-259559][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 15:33:41,708 [ INFO][       Thread-259559][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 15:33:41,709 [DEBUG][       Thread-259559][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 15:33:41,709 [DEBUG][       Thread-259559][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 15:33:41,709 [DEBUG][       Thread-259559][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 15:33:41,710 [DEBUG][       Thread-259559][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:33:41,710 [DEBUG][       Thread-259559][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:33:41,710 [DEBUG][       Thread-259559][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:33:41,710 [DEBUG][       Thread-259559][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:33:41,710 [DEBUG][       Thread-259559][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 15:33:41,710 [DEBUG][       Thread-259559][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 15:33:41,710 [DEBUG][       Thread-259559][   transport.py][1871] : client lang: <none>
2025-06-13 15:33:41,710 [DEBUG][       Thread-259559][   transport.py][1871] : server lang: <none>
2025-06-13 15:33:41,710 [DEBUG][       Thread-259559][   transport.py][1871] : kex follows: False
2025-06-13 15:33:41,710 [DEBUG][       Thread-259559][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 15:33:41,710 [DEBUG][       Thread-259559][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 15:33:41,710 [DEBUG][       Thread-259559][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 15:33:41,710 [DEBUG][       Thread-259559][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 15:33:41,710 [DEBUG][       Thread-259559][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 15:33:41,710 [DEBUG][       Thread-259559][   transport.py][1871] : Compression: none
2025-06-13 15:33:41,710 [DEBUG][       Thread-259559][   transport.py][1871] : === End of kex handshake ===
2025-06-13 15:33:41,718 [DEBUG][       Thread-259559][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 15:33:41,718 [DEBUG][       Thread-259559][   transport.py][1871] : Switch to new keys ...
2025-06-13 15:33:41,719 [DEBUG][       Thread-259559][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 15:33:41,719 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 15:33:41,719 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 15:33:41,720 [DEBUG][       Thread-259559][   transport.py][1871] : userauth is OK
2025-06-13 15:33:41,733 [ INFO][       Thread-259559][   transport.py][1871] : Authentication (password) successful!
2025-06-13 15:33:41,733 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 15:33:42,290 [DEBUG][       Thread-259559][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 15:33:42,290 [DEBUG][       Thread-259559][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 15:33:42,333 [DEBUG][       Thread-259559][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 15:33:42,333 [DEBUG][       Thread-259559][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 15:33:42,335 [DEBUG][       Thread-259559][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 15:33:42,348 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 15:33:42,348 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 15:33:42,351 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 15:33:42,355 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 15:33:42,366 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 15:33:42,368 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 15:33:42,368 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 15:33:42,368 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 15:33:42,369 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.564866 -999.00  +13.80  19.21     32   -2.20 1 1 1 1 1   887    0 16.37 23.60 ----- 23.0 19.2 51.6 27.8 17.0 -32.4 16.0 -33.4 16.9 -31.0 17.9 -30.2
2025-06-13 15:33:42,369 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 15:33:42,369 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 15:33:42,369 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.564866
2025-06-13 15:33:42,369 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 15:33:42,370 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 15:33:42,370 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 15:33:42,370 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 15:33:42,370 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 15:33:42,370 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T15:33:13', tmtdew=18.31, humidity=27.87, cloud=0.0, wind=17.73, temperature=13.87, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T13:33:24.422', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 15:33:42,371 [DEBUG][       Thread-259559][   transport.py][1871] : EOF in transport thread
2025-06-13 15:33:42,454 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 15:33:42,465 [DEBUG][       Thread-259562][   transport.py][1871] : starting thread (client mode): 0x863bf7f0
2025-06-13 15:33:42,465 [DEBUG][       Thread-259562][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 15:33:42,479 [DEBUG][       Thread-259562][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 15:33:42,479 [ INFO][       Thread-259562][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 15:33:42,488 [DEBUG][       Thread-259562][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 15:33:42,489 [DEBUG][       Thread-259562][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 15:33:42,489 [DEBUG][       Thread-259562][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 15:33:42,489 [DEBUG][       Thread-259562][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:33:42,489 [DEBUG][       Thread-259562][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:33:42,489 [DEBUG][       Thread-259562][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:33:42,489 [DEBUG][       Thread-259562][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:33:42,489 [DEBUG][       Thread-259562][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 15:33:42,489 [DEBUG][       Thread-259562][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 15:33:42,489 [DEBUG][       Thread-259562][   transport.py][1871] : client lang: <none>
2025-06-13 15:33:42,489 [DEBUG][       Thread-259562][   transport.py][1871] : server lang: <none>
2025-06-13 15:33:42,489 [DEBUG][       Thread-259562][   transport.py][1871] : kex follows: False
2025-06-13 15:33:42,489 [DEBUG][       Thread-259562][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 15:33:42,489 [DEBUG][       Thread-259562][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 15:33:42,489 [DEBUG][       Thread-259562][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 15:33:42,489 [DEBUG][       Thread-259562][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 15:33:42,489 [DEBUG][       Thread-259562][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 15:33:42,489 [DEBUG][       Thread-259562][   transport.py][1871] : Compression: none
2025-06-13 15:33:42,489 [DEBUG][       Thread-259562][   transport.py][1871] : === End of kex handshake ===
2025-06-13 15:33:42,548 [DEBUG][       Thread-259562][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 15:33:42,548 [DEBUG][       Thread-259562][   transport.py][1871] : Switch to new keys ...
2025-06-13 15:33:42,548 [DEBUG][       Thread-259562][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 15:33:42,548 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 15:33:42,548 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 15:33:42,604 [DEBUG][       Thread-259562][   transport.py][1871] : userauth is OK
2025-06-13 15:33:42,604 [DEBUG][       Thread-259562][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 15:33:42,604 [DEBUG][       Thread-259562][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 15:33:42,604 [DEBUG][       Thread-259562][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 15:33:42,604 [DEBUG][       Thread-259562][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 15:33:42,618 [ INFO][       Thread-259562][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 15:33:42,618 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 15:33:42,618 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 15:33:43,653 [DEBUG][       Thread-259562][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 15:33:43,653 [DEBUG][       Thread-259562][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 15:33:43,704 [DEBUG][       Thread-259562][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 15:33:43,704 [DEBUG][       Thread-259562][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 15:33:43,713 [DEBUG][       Thread-259562][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 15:33:43,721 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 15:33:43,722 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 15:33:43,733 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 15:33:43,742 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 15:33:43,742 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 15:33:43,743 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 15:33:43,750 [DEBUG][       Thread-259562][   transport.py][1871] : EOF in transport thread
2025-06-13 15:33:49,520 [DEBUG][Thread-259564 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:33:53,745 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 15:33:53,745 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 15:33:53,745 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 15:33:53,748 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 15:33:54,205 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 15, 33, 45), 18.36, 27.76, 0.0, 16.92, 13.85, 0, 0, 0, 2, 0, 0),)
2025-06-13 15:33:54,205 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 15:33:45
2025-06-13 15:33:54,284 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 15:33:54,287 [DEBUG][       Thread-259565][   transport.py][1871] : starting thread (client mode): 0x863517e0
2025-06-13 15:33:54,287 [DEBUG][       Thread-259565][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 15:33:54,307 [DEBUG][       Thread-259565][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 15:33:54,307 [ INFO][       Thread-259565][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 15:33:54,311 [DEBUG][       Thread-259565][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 15:33:54,311 [DEBUG][       Thread-259565][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 15:33:54,311 [DEBUG][       Thread-259565][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 15:33:54,311 [DEBUG][       Thread-259565][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:33:54,311 [DEBUG][       Thread-259565][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:33:54,311 [DEBUG][       Thread-259565][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:33:54,311 [DEBUG][       Thread-259565][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:33:54,311 [DEBUG][       Thread-259565][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 15:33:54,311 [DEBUG][       Thread-259565][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 15:33:54,311 [DEBUG][       Thread-259565][   transport.py][1871] : client lang: <none>
2025-06-13 15:33:54,311 [DEBUG][       Thread-259565][   transport.py][1871] : server lang: <none>
2025-06-13 15:33:54,311 [DEBUG][       Thread-259565][   transport.py][1871] : kex follows: False
2025-06-13 15:33:54,311 [DEBUG][       Thread-259565][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 15:33:54,311 [DEBUG][       Thread-259565][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 15:33:54,311 [DEBUG][       Thread-259565][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 15:33:54,311 [DEBUG][       Thread-259565][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 15:33:54,311 [DEBUG][       Thread-259565][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 15:33:54,311 [DEBUG][       Thread-259565][   transport.py][1871] : Compression: none
2025-06-13 15:33:54,311 [DEBUG][       Thread-259565][   transport.py][1871] : === End of kex handshake ===
2025-06-13 15:33:54,327 [DEBUG][       Thread-259565][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 15:33:54,327 [DEBUG][       Thread-259565][   transport.py][1871] : Switch to new keys ...
2025-06-13 15:33:54,328 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 15:33:54,328 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 15:33:54,329 [DEBUG][       Thread-259565][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 15:33:54,330 [DEBUG][       Thread-259565][   transport.py][1871] : userauth is OK
2025-06-13 15:33:54,349 [DEBUG][Thread-259567 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:33:54,354 [ INFO][       Thread-259565][   transport.py][1871] : Authentication (password) successful!
2025-06-13 15:33:54,355 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 15:33:54,982 [DEBUG][       Thread-259565][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 15:33:54,982 [DEBUG][       Thread-259565][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 15:33:55,024 [DEBUG][       Thread-259565][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 15:33:55,025 [DEBUG][       Thread-259565][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 15:33:55,027 [DEBUG][       Thread-259565][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 15:33:55,039 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 15:33:55,039 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 15:33:55,041 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 15:33:55,042 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 15:33:55,046 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 15:33:55,046 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 15:33:55,046 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 15:33:55,047 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 15:33:55,047 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.564866 -999.00  +13.80  19.21     32   -2.20 1 1 1 1 1   887    0 16.37 23.60 ----- 23.0 19.2 51.6 27.8 17.0 -32.4 16.0 -33.4 16.9 -31.0 17.9 -30.2
2025-06-13 15:33:55,047 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 15:33:55,047 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 15:33:55,047 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.564866
2025-06-13 15:33:55,047 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 15:33:55,047 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 15:33:55,047 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 15:33:55,047 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 15:33:55,047 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 15:33:55,047 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T15:33:45', tmtdew=18.36, humidity=27.76, cloud=0.0, wind=16.92, temperature=13.85, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T13:33:24.422', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 15:33:55,049 [DEBUG][       Thread-259565][   transport.py][1871] : EOF in transport thread
2025-06-13 15:33:55,120 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 15:33:55,130 [DEBUG][       Thread-259569][   transport.py][1871] : starting thread (client mode): 0x86392950
2025-06-13 15:33:55,130 [DEBUG][       Thread-259569][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 15:33:55,145 [DEBUG][       Thread-259569][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 15:33:55,145 [ INFO][       Thread-259569][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 15:33:55,152 [DEBUG][       Thread-259569][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 15:33:55,152 [DEBUG][       Thread-259569][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 15:33:55,152 [DEBUG][       Thread-259569][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 15:33:55,152 [DEBUG][       Thread-259569][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:33:55,152 [DEBUG][       Thread-259569][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:33:55,152 [DEBUG][       Thread-259569][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:33:55,152 [DEBUG][       Thread-259569][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:33:55,152 [DEBUG][       Thread-259569][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 15:33:55,152 [DEBUG][       Thread-259569][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 15:33:55,152 [DEBUG][       Thread-259569][   transport.py][1871] : client lang: <none>
2025-06-13 15:33:55,152 [DEBUG][       Thread-259569][   transport.py][1871] : server lang: <none>
2025-06-13 15:33:55,152 [DEBUG][       Thread-259569][   transport.py][1871] : kex follows: False
2025-06-13 15:33:55,152 [DEBUG][       Thread-259569][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 15:33:55,152 [DEBUG][       Thread-259569][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 15:33:55,152 [DEBUG][       Thread-259569][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 15:33:55,152 [DEBUG][       Thread-259569][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 15:33:55,152 [DEBUG][       Thread-259569][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 15:33:55,152 [DEBUG][       Thread-259569][   transport.py][1871] : Compression: none
2025-06-13 15:33:55,152 [DEBUG][       Thread-259569][   transport.py][1871] : === End of kex handshake ===
2025-06-13 15:33:55,207 [DEBUG][       Thread-259569][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 15:33:55,207 [DEBUG][       Thread-259569][   transport.py][1871] : Switch to new keys ...
2025-06-13 15:33:55,207 [DEBUG][       Thread-259569][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 15:33:55,207 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 15:33:55,207 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 15:33:55,268 [DEBUG][       Thread-259569][   transport.py][1871] : userauth is OK
2025-06-13 15:33:55,268 [DEBUG][       Thread-259569][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 15:33:55,268 [DEBUG][       Thread-259569][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 15:33:55,268 [DEBUG][       Thread-259569][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 15:33:55,268 [DEBUG][       Thread-259569][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 15:33:55,288 [ INFO][       Thread-259569][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 15:33:55,288 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 15:33:55,288 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 15:33:55,421 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:33:55,421 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:33:56,290 [DEBUG][       Thread-259569][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 15:33:56,290 [DEBUG][       Thread-259569][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 15:33:56,339 [DEBUG][       Thread-259569][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 15:33:56,339 [DEBUG][       Thread-259569][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 15:33:56,348 [DEBUG][       Thread-259569][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 15:33:56,356 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 15:33:56,356 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 15:33:56,364 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 15:33:56,372 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 15:33:56,372 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 15:33:56,372 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 15:33:56,380 [DEBUG][       Thread-259569][   transport.py][1871] : EOF in transport thread
2025-06-13 15:33:58,538 [DEBUG][Thread-259571 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:34:06,376 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 15:34:06,376 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 15:34:06,376 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 15:34:06,380 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 15:34:06,838 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 15, 33, 45), 18.36, 27.76, 0.0, 16.92, 13.85, 0, 0, 0, 2, 0, 0),)
2025-06-13 15:34:06,838 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 15:33:45
2025-06-13 15:34:06,919 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 15:34:06,923 [DEBUG][       Thread-259572][   transport.py][1871] : starting thread (client mode): 0x863ef190
2025-06-13 15:34:06,923 [DEBUG][       Thread-259572][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 15:34:06,944 [DEBUG][       Thread-259572][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 15:34:06,945 [ INFO][       Thread-259572][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 15:34:06,948 [DEBUG][       Thread-259572][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 15:34:06,948 [DEBUG][       Thread-259572][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 15:34:06,948 [DEBUG][       Thread-259572][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 15:34:06,948 [DEBUG][       Thread-259572][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:34:06,948 [DEBUG][       Thread-259572][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:34:06,948 [DEBUG][       Thread-259572][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:34:06,948 [DEBUG][       Thread-259572][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:34:06,948 [DEBUG][       Thread-259572][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 15:34:06,948 [DEBUG][       Thread-259572][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 15:34:06,948 [DEBUG][       Thread-259572][   transport.py][1871] : client lang: <none>
2025-06-13 15:34:06,948 [DEBUG][       Thread-259572][   transport.py][1871] : server lang: <none>
2025-06-13 15:34:06,948 [DEBUG][       Thread-259572][   transport.py][1871] : kex follows: False
2025-06-13 15:34:06,948 [DEBUG][       Thread-259572][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 15:34:06,948 [DEBUG][       Thread-259572][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 15:34:06,949 [DEBUG][       Thread-259572][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 15:34:06,949 [DEBUG][       Thread-259572][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 15:34:06,949 [DEBUG][       Thread-259572][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 15:34:06,949 [DEBUG][       Thread-259572][   transport.py][1871] : Compression: none
2025-06-13 15:34:06,949 [DEBUG][       Thread-259572][   transport.py][1871] : === End of kex handshake ===
2025-06-13 15:34:06,966 [DEBUG][       Thread-259572][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 15:34:06,967 [DEBUG][       Thread-259572][   transport.py][1871] : Switch to new keys ...
2025-06-13 15:34:06,967 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 15:34:06,967 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 15:34:06,968 [DEBUG][       Thread-259572][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 15:34:06,969 [DEBUG][       Thread-259572][   transport.py][1871] : userauth is OK
2025-06-13 15:34:06,994 [ INFO][       Thread-259572][   transport.py][1871] : Authentication (password) successful!
2025-06-13 15:34:06,994 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 15:34:07,564 [DEBUG][Thread-259574 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:34:07,633 [DEBUG][       Thread-259572][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 15:34:07,633 [DEBUG][       Thread-259572][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 15:34:07,677 [DEBUG][       Thread-259572][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 15:34:07,677 [DEBUG][       Thread-259572][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 15:34:07,680 [DEBUG][       Thread-259572][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 15:34:07,693 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 15:34:07,693 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 15:34:07,695 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 15:34:07,697 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 15:34:07,703 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 15:34:07,705 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 15:34:07,705 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 15:34:07,706 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 15:34:07,706 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.564866 -999.00  +13.80  19.21     32   -2.20 1 1 1 1 1   887    0 16.37 23.60 ----- 23.0 19.2 51.6 27.8 17.0 -32.4 16.0 -33.4 16.9 -31.0 17.9 -30.2
2025-06-13 15:34:07,706 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 15:34:07,706 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 15:34:07,706 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.564866
2025-06-13 15:34:07,707 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 15:34:07,707 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 15:34:07,707 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 15:34:07,708 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 15:34:07,708 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 15:34:07,708 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T15:33:45', tmtdew=18.36, humidity=27.76, cloud=0.0, wind=16.92, temperature=13.85, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T13:33:24.422', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 15:34:07,708 [DEBUG][       Thread-259572][   transport.py][1871] : EOF in transport thread
2025-06-13 15:34:07,791 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 15:34:07,802 [DEBUG][       Thread-259576][   transport.py][1871] : starting thread (client mode): 0x863bd150
2025-06-13 15:34:07,802 [DEBUG][       Thread-259576][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 15:34:07,817 [DEBUG][       Thread-259576][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 15:34:07,817 [ INFO][       Thread-259576][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 15:34:07,825 [DEBUG][       Thread-259576][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 15:34:07,825 [DEBUG][       Thread-259576][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 15:34:07,825 [DEBUG][       Thread-259576][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 15:34:07,825 [DEBUG][       Thread-259576][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:34:07,825 [DEBUG][       Thread-259576][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:34:07,825 [DEBUG][       Thread-259576][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:34:07,826 [DEBUG][       Thread-259576][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:34:07,826 [DEBUG][       Thread-259576][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 15:34:07,826 [DEBUG][       Thread-259576][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 15:34:07,826 [DEBUG][       Thread-259576][   transport.py][1871] : client lang: <none>
2025-06-13 15:34:07,826 [DEBUG][       Thread-259576][   transport.py][1871] : server lang: <none>
2025-06-13 15:34:07,826 [DEBUG][       Thread-259576][   transport.py][1871] : kex follows: False
2025-06-13 15:34:07,826 [DEBUG][       Thread-259576][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 15:34:07,826 [DEBUG][       Thread-259576][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 15:34:07,826 [DEBUG][       Thread-259576][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 15:34:07,826 [DEBUG][       Thread-259576][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 15:34:07,826 [DEBUG][       Thread-259576][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 15:34:07,826 [DEBUG][       Thread-259576][   transport.py][1871] : Compression: none
2025-06-13 15:34:07,826 [DEBUG][       Thread-259576][   transport.py][1871] : === End of kex handshake ===
2025-06-13 15:34:07,885 [DEBUG][       Thread-259576][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 15:34:07,885 [DEBUG][       Thread-259576][   transport.py][1871] : Switch to new keys ...
2025-06-13 15:34:07,886 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 15:34:07,887 [DEBUG][       Thread-259576][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 15:34:07,887 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 15:34:07,941 [DEBUG][       Thread-259576][   transport.py][1871] : userauth is OK
2025-06-13 15:34:07,941 [DEBUG][       Thread-259576][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 15:34:07,941 [DEBUG][       Thread-259576][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 15:34:07,941 [DEBUG][       Thread-259576][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 15:34:07,941 [DEBUG][       Thread-259576][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 15:34:07,960 [ INFO][       Thread-259576][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 15:34:07,960 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 15:34:07,961 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 15:34:08,961 [DEBUG][       Thread-259576][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 15:34:08,961 [DEBUG][       Thread-259576][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 15:34:09,012 [DEBUG][       Thread-259576][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 15:34:09,012 [DEBUG][       Thread-259576][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 15:34:09,022 [DEBUG][       Thread-259576][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 15:34:09,031 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 15:34:09,031 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 15:34:09,040 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 15:34:09,049 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 15:34:09,050 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 15:34:09,050 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 15:34:09,058 [DEBUG][       Thread-259576][   transport.py][1871] : EOF in transport thread
2025-06-13 15:34:10,161 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:34:10,163 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:34:16,586 [DEBUG][Thread-259578 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:34:19,060 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 15:34:19,060 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 15:34:19,060 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 15:34:19,061 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 15:34:19,548 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 15, 33, 45), 18.36, 27.76, 0.0, 16.92, 13.85, 0, 0, 0, 2, 0, 0),)
2025-06-13 15:34:19,548 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 15:33:45
2025-06-13 15:34:19,628 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 15:34:19,632 [DEBUG][       Thread-259579][   transport.py][1871] : starting thread (client mode): 0x863539a0
2025-06-13 15:34:19,632 [DEBUG][       Thread-259579][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 15:34:19,652 [DEBUG][       Thread-259579][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 15:34:19,652 [ INFO][       Thread-259579][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 15:34:19,656 [DEBUG][       Thread-259579][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 15:34:19,656 [DEBUG][       Thread-259579][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 15:34:19,656 [DEBUG][       Thread-259579][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 15:34:19,656 [DEBUG][       Thread-259579][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:34:19,656 [DEBUG][       Thread-259579][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:34:19,656 [DEBUG][       Thread-259579][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:34:19,656 [DEBUG][       Thread-259579][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:34:19,656 [DEBUG][       Thread-259579][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 15:34:19,656 [DEBUG][       Thread-259579][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 15:34:19,656 [DEBUG][       Thread-259579][   transport.py][1871] : client lang: <none>
2025-06-13 15:34:19,656 [DEBUG][       Thread-259579][   transport.py][1871] : server lang: <none>
2025-06-13 15:34:19,656 [DEBUG][       Thread-259579][   transport.py][1871] : kex follows: False
2025-06-13 15:34:19,656 [DEBUG][       Thread-259579][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 15:34:19,656 [DEBUG][       Thread-259579][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 15:34:19,656 [DEBUG][       Thread-259579][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 15:34:19,656 [DEBUG][       Thread-259579][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 15:34:19,656 [DEBUG][       Thread-259579][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 15:34:19,656 [DEBUG][       Thread-259579][   transport.py][1871] : Compression: none
2025-06-13 15:34:19,656 [DEBUG][       Thread-259579][   transport.py][1871] : === End of kex handshake ===
2025-06-13 15:34:19,664 [DEBUG][       Thread-259579][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 15:34:19,664 [DEBUG][       Thread-259579][   transport.py][1871] : Switch to new keys ...
2025-06-13 15:34:19,664 [DEBUG][       Thread-259579][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 15:34:19,665 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 15:34:19,665 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 15:34:19,665 [DEBUG][       Thread-259579][   transport.py][1871] : userauth is OK
2025-06-13 15:34:19,678 [ INFO][       Thread-259579][   transport.py][1871] : Authentication (password) successful!
2025-06-13 15:34:19,679 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 15:34:20,304 [DEBUG][       Thread-259579][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 15:34:20,304 [DEBUG][       Thread-259579][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 15:34:20,345 [DEBUG][       Thread-259579][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 15:34:20,345 [DEBUG][       Thread-259579][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 15:34:20,349 [DEBUG][       Thread-259579][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 15:34:20,355 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 15:34:20,356 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 15:34:20,357 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 15:34:20,359 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 15:34:20,364 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 15:34:20,366 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 15:34:20,366 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 15:34:20,367 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 15:34:20,367 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.565213 -999.00  +13.90  23.33     32   -2.20 1 1 1 1 1   887    0 16.66 24.09 ----- 22.4 23.3 38.8 28.6 17.1 -31.7 16.1 -32.9 16.9 -30.7 18.0 -29.9
2025-06-13 15:34:20,367 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 15:34:20,367 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 15:34:20,367 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.565213
2025-06-13 15:34:20,368 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 15:34:20,368 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 15:34:20,368 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 15:34:20,369 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 15:34:20,369 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 15:34:20,369 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T15:33:45', tmtdew=18.36, humidity=27.76, cloud=0.0, wind=16.92, temperature=13.85, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T13:33:54.403', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 15:34:20,370 [DEBUG][       Thread-259579][   transport.py][1871] : EOF in transport thread
2025-06-13 15:34:20,444 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 15:34:20,462 [DEBUG][       Thread-259582][   transport.py][1871] : starting thread (client mode): 0x863a7f40
2025-06-13 15:34:20,462 [DEBUG][       Thread-259582][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 15:34:20,483 [DEBUG][       Thread-259582][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 15:34:20,484 [ INFO][       Thread-259582][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 15:34:20,499 [DEBUG][       Thread-259582][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 15:34:20,499 [DEBUG][       Thread-259582][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 15:34:20,499 [DEBUG][       Thread-259582][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 15:34:20,499 [DEBUG][       Thread-259582][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:34:20,500 [DEBUG][       Thread-259582][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:34:20,500 [DEBUG][       Thread-259582][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:34:20,500 [DEBUG][       Thread-259582][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:34:20,500 [DEBUG][       Thread-259582][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 15:34:20,500 [DEBUG][       Thread-259582][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 15:34:20,500 [DEBUG][       Thread-259582][   transport.py][1871] : client lang: <none>
2025-06-13 15:34:20,500 [DEBUG][       Thread-259582][   transport.py][1871] : server lang: <none>
2025-06-13 15:34:20,500 [DEBUG][       Thread-259582][   transport.py][1871] : kex follows: False
2025-06-13 15:34:20,500 [DEBUG][       Thread-259582][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 15:34:20,500 [DEBUG][       Thread-259582][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 15:34:20,500 [DEBUG][       Thread-259582][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 15:34:20,500 [DEBUG][       Thread-259582][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 15:34:20,500 [DEBUG][       Thread-259582][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 15:34:20,500 [DEBUG][       Thread-259582][   transport.py][1871] : Compression: none
2025-06-13 15:34:20,500 [DEBUG][       Thread-259582][   transport.py][1871] : === End of kex handshake ===
2025-06-13 15:34:20,557 [DEBUG][       Thread-259582][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 15:34:20,558 [DEBUG][       Thread-259582][   transport.py][1871] : Switch to new keys ...
2025-06-13 15:34:20,558 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 15:34:20,559 [DEBUG][       Thread-259582][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 15:34:20,559 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 15:34:20,612 [DEBUG][       Thread-259582][   transport.py][1871] : userauth is OK
2025-06-13 15:34:20,612 [DEBUG][       Thread-259582][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 15:34:20,612 [DEBUG][       Thread-259582][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 15:34:20,612 [DEBUG][       Thread-259582][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 15:34:20,612 [DEBUG][       Thread-259582][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 15:34:20,627 [ INFO][       Thread-259582][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 15:34:20,627 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 15:34:20,627 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 15:34:21,448 [DEBUG][Thread-259584 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:34:21,646 [DEBUG][       Thread-259582][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 15:34:21,646 [DEBUG][       Thread-259582][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 15:34:21,709 [DEBUG][       Thread-259582][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 15:34:21,709 [DEBUG][       Thread-259582][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 15:34:21,721 [DEBUG][       Thread-259582][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 15:34:21,733 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 15:34:21,734 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 15:34:21,742 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 15:34:21,752 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 15:34:21,752 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 15:34:21,753 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 15:34:21,760 [DEBUG][       Thread-259582][   transport.py][1871] : EOF in transport thread
2025-06-13 15:34:25,607 [DEBUG][Thread-259585 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:34:31,763 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 15:34:31,763 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 15:34:31,763 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 15:34:31,766 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 15:34:32,233 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 15, 34, 17), 18.5, 27.55, 0.0, 19.53, 13.87, 0, 0, 0, 2, 0, 0),)
2025-06-13 15:34:32,233 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 15:34:17
2025-06-13 15:34:32,312 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 15:34:32,316 [DEBUG][       Thread-259586][   transport.py][1871] : starting thread (client mode): 0x863c9180
2025-06-13 15:34:32,316 [DEBUG][       Thread-259586][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 15:34:32,337 [DEBUG][       Thread-259586][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 15:34:32,337 [ INFO][       Thread-259586][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 15:34:32,341 [DEBUG][       Thread-259586][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 15:34:32,341 [DEBUG][       Thread-259586][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 15:34:32,341 [DEBUG][       Thread-259586][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 15:34:32,341 [DEBUG][       Thread-259586][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:34:32,341 [DEBUG][       Thread-259586][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:34:32,341 [DEBUG][       Thread-259586][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:34:32,341 [DEBUG][       Thread-259586][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:34:32,341 [DEBUG][       Thread-259586][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 15:34:32,341 [DEBUG][       Thread-259586][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 15:34:32,341 [DEBUG][       Thread-259586][   transport.py][1871] : client lang: <none>
2025-06-13 15:34:32,341 [DEBUG][       Thread-259586][   transport.py][1871] : server lang: <none>
2025-06-13 15:34:32,341 [DEBUG][       Thread-259586][   transport.py][1871] : kex follows: False
2025-06-13 15:34:32,341 [DEBUG][       Thread-259586][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 15:34:32,341 [DEBUG][       Thread-259586][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 15:34:32,341 [DEBUG][       Thread-259586][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 15:34:32,341 [DEBUG][       Thread-259586][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 15:34:32,341 [DEBUG][       Thread-259586][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 15:34:32,341 [DEBUG][       Thread-259586][   transport.py][1871] : Compression: none
2025-06-13 15:34:32,341 [DEBUG][       Thread-259586][   transport.py][1871] : === End of kex handshake ===
2025-06-13 15:34:32,356 [DEBUG][       Thread-259586][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 15:34:32,356 [DEBUG][       Thread-259586][   transport.py][1871] : Switch to new keys ...
2025-06-13 15:34:32,356 [DEBUG][       Thread-259586][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 15:34:32,356 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 15:34:32,356 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 15:34:32,357 [DEBUG][       Thread-259586][   transport.py][1871] : userauth is OK
2025-06-13 15:34:32,381 [ INFO][       Thread-259586][   transport.py][1871] : Authentication (password) successful!
2025-06-13 15:34:32,381 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 15:34:33,080 [DEBUG][       Thread-259586][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 15:34:33,080 [DEBUG][       Thread-259586][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 15:34:33,121 [DEBUG][       Thread-259586][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 15:34:33,121 [DEBUG][       Thread-259586][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 15:34:33,125 [DEBUG][       Thread-259586][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 15:34:33,139 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 15:34:33,139 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 15:34:33,141 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 15:34:33,143 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 15:34:33,149 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 15:34:33,151 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 15:34:33,152 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 15:34:33,152 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 15:34:33,152 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.565213 -999.00  +13.90  23.33     32   -2.20 1 1 1 1 1   887    0 16.66 24.09 ----- 22.4 23.3 38.8 28.6 17.1 -31.7 16.1 -32.9 16.9 -30.7 18.0 -29.9
2025-06-13 15:34:33,152 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 15:34:33,153 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 15:34:33,153 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.565213
2025-06-13 15:34:33,153 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 15:34:33,154 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 15:34:33,154 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 15:34:33,154 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 15:34:33,154 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 15:34:33,154 [DEBUG][       Thread-259586][   transport.py][1871] : EOF in transport thread
2025-06-13 15:34:33,154 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T15:34:17', tmtdew=18.5, humidity=27.55, cloud=0.0, wind=19.53, temperature=13.87, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T13:33:54.403', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 15:34:33,239 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 15:34:33,249 [DEBUG][       Thread-259589][   transport.py][1871] : starting thread (client mode): 0x867b5f90
2025-06-13 15:34:33,249 [DEBUG][       Thread-259589][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 15:34:33,264 [DEBUG][       Thread-259589][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 15:34:33,264 [ INFO][       Thread-259589][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 15:34:33,279 [DEBUG][       Thread-259589][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 15:34:33,279 [DEBUG][       Thread-259589][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 15:34:33,279 [DEBUG][       Thread-259589][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 15:34:33,279 [DEBUG][       Thread-259589][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:34:33,279 [DEBUG][       Thread-259589][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:34:33,279 [DEBUG][       Thread-259589][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:34:33,279 [DEBUG][       Thread-259589][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:34:33,279 [DEBUG][       Thread-259589][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 15:34:33,279 [DEBUG][       Thread-259589][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 15:34:33,279 [DEBUG][       Thread-259589][   transport.py][1871] : client lang: <none>
2025-06-13 15:34:33,279 [DEBUG][       Thread-259589][   transport.py][1871] : server lang: <none>
2025-06-13 15:34:33,280 [DEBUG][       Thread-259589][   transport.py][1871] : kex follows: False
2025-06-13 15:34:33,280 [DEBUG][       Thread-259589][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 15:34:33,280 [DEBUG][       Thread-259589][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 15:34:33,280 [DEBUG][       Thread-259589][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 15:34:33,280 [DEBUG][       Thread-259589][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 15:34:33,280 [DEBUG][       Thread-259589][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 15:34:33,280 [DEBUG][       Thread-259589][   transport.py][1871] : Compression: none
2025-06-13 15:34:33,280 [DEBUG][       Thread-259589][   transport.py][1871] : === End of kex handshake ===
2025-06-13 15:34:33,341 [DEBUG][       Thread-259589][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 15:34:33,341 [DEBUG][       Thread-259589][   transport.py][1871] : Switch to new keys ...
2025-06-13 15:34:33,342 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 15:34:33,342 [DEBUG][       Thread-259589][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 15:34:33,343 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 15:34:33,397 [DEBUG][       Thread-259589][   transport.py][1871] : userauth is OK
2025-06-13 15:34:33,397 [DEBUG][       Thread-259589][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 15:34:33,397 [DEBUG][       Thread-259589][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 15:34:33,397 [DEBUG][       Thread-259589][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 15:34:33,398 [DEBUG][       Thread-259589][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 15:34:33,415 [ INFO][       Thread-259589][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 15:34:33,416 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 15:34:33,416 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 15:34:34,405 [DEBUG][       Thread-259589][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 15:34:34,405 [DEBUG][       Thread-259589][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 15:34:34,455 [DEBUG][       Thread-259589][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 15:34:34,455 [DEBUG][       Thread-259589][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 15:34:34,463 [DEBUG][       Thread-259589][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 15:34:34,473 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 15:34:34,473 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 15:34:34,481 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 15:34:34,488 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 15:34:34,488 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 15:34:34,489 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 15:34:34,496 [DEBUG][       Thread-259589][   transport.py][1871] : EOF in transport thread
2025-06-13 15:34:34,627 [DEBUG][Thread-259591 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:34:43,652 [DEBUG][Thread-259592 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:34:44,499 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 15:34:44,499 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 15:34:44,499 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 15:34:44,502 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 15:34:44,972 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 15, 34, 17), 18.5, 27.55, 0.0, 19.53, 13.87, 0, 0, 0, 2, 0, 0),)
2025-06-13 15:34:44,973 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 15:34:17
2025-06-13 15:34:45,052 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 15:34:45,058 [DEBUG][       Thread-259593][   transport.py][1871] : starting thread (client mode): 0x863c81f0
2025-06-13 15:34:45,058 [DEBUG][       Thread-259593][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 15:34:45,085 [DEBUG][       Thread-259593][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 15:34:45,085 [ INFO][       Thread-259593][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 15:34:45,088 [DEBUG][       Thread-259593][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 15:34:45,088 [DEBUG][       Thread-259593][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 15:34:45,088 [DEBUG][       Thread-259593][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 15:34:45,088 [DEBUG][       Thread-259593][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:34:45,088 [DEBUG][       Thread-259593][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:34:45,088 [DEBUG][       Thread-259593][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:34:45,088 [DEBUG][       Thread-259593][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:34:45,088 [DEBUG][       Thread-259593][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 15:34:45,088 [DEBUG][       Thread-259593][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 15:34:45,088 [DEBUG][       Thread-259593][   transport.py][1871] : client lang: <none>
2025-06-13 15:34:45,088 [DEBUG][       Thread-259593][   transport.py][1871] : server lang: <none>
2025-06-13 15:34:45,088 [DEBUG][       Thread-259593][   transport.py][1871] : kex follows: False
2025-06-13 15:34:45,088 [DEBUG][       Thread-259593][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 15:34:45,088 [DEBUG][       Thread-259593][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 15:34:45,089 [DEBUG][       Thread-259593][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 15:34:45,089 [DEBUG][       Thread-259593][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 15:34:45,089 [DEBUG][       Thread-259593][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 15:34:45,089 [DEBUG][       Thread-259593][   transport.py][1871] : Compression: none
2025-06-13 15:34:45,089 [DEBUG][       Thread-259593][   transport.py][1871] : === End of kex handshake ===
2025-06-13 15:34:45,102 [DEBUG][       Thread-259593][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 15:34:45,102 [DEBUG][       Thread-259593][   transport.py][1871] : Switch to new keys ...
2025-06-13 15:34:45,103 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 15:34:45,103 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 15:34:45,104 [DEBUG][       Thread-259593][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 15:34:45,147 [DEBUG][       Thread-259593][   transport.py][1871] : userauth is OK
2025-06-13 15:34:45,172 [ INFO][       Thread-259593][   transport.py][1871] : Authentication (password) successful!
2025-06-13 15:34:45,173 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 15:34:45,862 [DEBUG][       Thread-259593][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 15:34:45,863 [DEBUG][       Thread-259593][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 15:34:45,905 [DEBUG][       Thread-259593][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 15:34:45,905 [DEBUG][       Thread-259593][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 15:34:45,908 [DEBUG][       Thread-259593][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 15:34:45,922 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 15:34:45,922 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 15:34:45,924 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 15:34:45,926 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 15:34:45,932 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 15:34:45,934 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 15:34:45,934 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 15:34:45,935 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 15:34:45,935 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.565213 -999.00  +13.90  23.33     32   -2.20 1 1 1 1 1   887    0 16.66 24.09 ----- 22.4 23.3 38.8 28.6 17.1 -31.7 16.1 -32.9 16.9 -30.7 18.0 -29.9
2025-06-13 15:34:45,935 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 15:34:45,935 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 15:34:45,935 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.565213
2025-06-13 15:34:45,935 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 15:34:45,936 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 15:34:45,936 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 15:34:45,936 [DEBUG][       Thread-259593][   transport.py][1871] : EOF in transport thread
2025-06-13 15:34:45,936 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 15:34:45,937 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 15:34:45,937 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T15:34:17', tmtdew=18.5, humidity=27.55, cloud=0.0, wind=19.53, temperature=13.87, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T13:33:54.403', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 15:34:46,020 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 15:34:46,031 [DEBUG][       Thread-259596][   transport.py][1871] : starting thread (client mode): 0x863bc760
2025-06-13 15:34:46,031 [DEBUG][       Thread-259596][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 15:34:46,046 [DEBUG][       Thread-259596][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 15:34:46,047 [ INFO][       Thread-259596][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 15:34:46,054 [DEBUG][       Thread-259596][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 15:34:46,054 [DEBUG][       Thread-259596][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 15:34:46,055 [DEBUG][       Thread-259596][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 15:34:46,055 [DEBUG][       Thread-259596][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:34:46,055 [DEBUG][       Thread-259596][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:34:46,055 [DEBUG][       Thread-259596][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:34:46,055 [DEBUG][       Thread-259596][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:34:46,055 [DEBUG][       Thread-259596][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 15:34:46,055 [DEBUG][       Thread-259596][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 15:34:46,055 [DEBUG][       Thread-259596][   transport.py][1871] : client lang: <none>
2025-06-13 15:34:46,055 [DEBUG][       Thread-259596][   transport.py][1871] : server lang: <none>
2025-06-13 15:34:46,055 [DEBUG][       Thread-259596][   transport.py][1871] : kex follows: False
2025-06-13 15:34:46,055 [DEBUG][       Thread-259596][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 15:34:46,055 [DEBUG][       Thread-259596][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 15:34:46,055 [DEBUG][       Thread-259596][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 15:34:46,055 [DEBUG][       Thread-259596][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 15:34:46,055 [DEBUG][       Thread-259596][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 15:34:46,055 [DEBUG][       Thread-259596][   transport.py][1871] : Compression: none
2025-06-13 15:34:46,055 [DEBUG][       Thread-259596][   transport.py][1871] : === End of kex handshake ===
2025-06-13 15:34:46,113 [DEBUG][       Thread-259596][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 15:34:46,113 [DEBUG][       Thread-259596][   transport.py][1871] : Switch to new keys ...
2025-06-13 15:34:46,114 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 15:34:46,115 [DEBUG][       Thread-259596][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 15:34:46,115 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 15:34:46,169 [DEBUG][       Thread-259596][   transport.py][1871] : userauth is OK
2025-06-13 15:34:46,169 [DEBUG][       Thread-259596][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 15:34:46,169 [DEBUG][       Thread-259596][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 15:34:46,169 [DEBUG][       Thread-259596][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 15:34:46,169 [DEBUG][       Thread-259596][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 15:34:46,188 [ INFO][       Thread-259596][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 15:34:46,189 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 15:34:46,189 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 15:34:47,197 [DEBUG][       Thread-259596][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 15:34:47,198 [DEBUG][       Thread-259596][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 15:34:47,248 [DEBUG][       Thread-259596][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 15:34:47,248 [DEBUG][       Thread-259596][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 15:34:47,257 [DEBUG][       Thread-259596][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 15:34:47,265 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 15:34:47,266 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 15:34:47,274 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 15:34:47,282 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 15:34:47,283 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 15:34:47,283 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 15:34:47,291 [DEBUG][       Thread-259596][   transport.py][1871] : EOF in transport thread
2025-06-13 15:34:52,673 [DEBUG][Thread-259598 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:34:55,488 [DEBUG][Thread-259599 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:34:56,569 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:34:56,570 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:34:57,292 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 15:34:57,292 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 15:34:57,292 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 15:34:57,294 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 15:34:57,745 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 15, 34, 49), 18.4, 27.73, 0.0, 21.97, 13.85, 0, 0, 0, 2, 0, 0),)
2025-06-13 15:34:57,745 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 15:34:49
2025-06-13 15:34:57,824 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 15:34:57,828 [DEBUG][       Thread-259600][   transport.py][1871] : starting thread (client mode): 0x863cb520
2025-06-13 15:34:57,828 [DEBUG][       Thread-259600][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 15:34:57,848 [DEBUG][       Thread-259600][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 15:34:57,848 [ INFO][       Thread-259600][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 15:34:57,851 [DEBUG][       Thread-259600][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 15:34:57,851 [DEBUG][       Thread-259600][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 15:34:57,851 [DEBUG][       Thread-259600][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 15:34:57,851 [DEBUG][       Thread-259600][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:34:57,851 [DEBUG][       Thread-259600][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:34:57,851 [DEBUG][       Thread-259600][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:34:57,852 [DEBUG][       Thread-259600][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:34:57,852 [DEBUG][       Thread-259600][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 15:34:57,852 [DEBUG][       Thread-259600][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 15:34:57,852 [DEBUG][       Thread-259600][   transport.py][1871] : client lang: <none>
2025-06-13 15:34:57,852 [DEBUG][       Thread-259600][   transport.py][1871] : server lang: <none>
2025-06-13 15:34:57,852 [DEBUG][       Thread-259600][   transport.py][1871] : kex follows: False
2025-06-13 15:34:57,852 [DEBUG][       Thread-259600][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 15:34:57,852 [DEBUG][       Thread-259600][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 15:34:57,852 [DEBUG][       Thread-259600][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 15:34:57,852 [DEBUG][       Thread-259600][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 15:34:57,852 [DEBUG][       Thread-259600][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 15:34:57,852 [DEBUG][       Thread-259600][   transport.py][1871] : Compression: none
2025-06-13 15:34:57,852 [DEBUG][       Thread-259600][   transport.py][1871] : === End of kex handshake ===
2025-06-13 15:34:57,869 [DEBUG][       Thread-259600][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 15:34:57,869 [DEBUG][       Thread-259600][   transport.py][1871] : Switch to new keys ...
2025-06-13 15:34:57,870 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 15:34:57,870 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 15:34:57,871 [DEBUG][       Thread-259600][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 15:34:57,871 [DEBUG][       Thread-259600][   transport.py][1871] : userauth is OK
2025-06-13 15:34:57,896 [ INFO][       Thread-259600][   transport.py][1871] : Authentication (password) successful!
2025-06-13 15:34:57,896 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 15:34:58,550 [DEBUG][       Thread-259600][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 15:34:58,550 [DEBUG][       Thread-259600][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 15:34:58,593 [DEBUG][       Thread-259600][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 15:34:58,593 [DEBUG][       Thread-259600][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 15:34:58,597 [DEBUG][       Thread-259600][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 15:34:58,610 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 15:34:58,610 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 15:34:58,612 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 15:34:58,614 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 15:34:58,620 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 15:34:58,622 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 15:34:58,622 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 15:34:58,623 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 15:34:58,623 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.565561 -999.00  +13.80  21.57     32   -2.40 1 1 1 1 1   887    0 16.77 28.24 ----- 22.1 21.6 46.4 29.1 17.1 -31.8 16.1 -33.3 16.9 -32.3 18.0 -30.2
2025-06-13 15:34:58,623 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 15:34:58,623 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 15:34:58,623 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.565561
2025-06-13 15:34:58,624 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 15:34:58,625 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 15:34:58,625 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 15:34:58,625 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 15:34:58,625 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 15:34:58,625 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T15:34:49', tmtdew=18.4, humidity=27.73, cloud=0.0, wind=21.97, temperature=13.85, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T13:34:24.470', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 15:34:58,626 [DEBUG][       Thread-259600][   transport.py][1871] : EOF in transport thread
2025-06-13 15:34:58,709 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 15:34:58,718 [DEBUG][       Thread-259603][   transport.py][1871] : starting thread (client mode): 0x868c85e0
2025-06-13 15:34:58,718 [DEBUG][       Thread-259603][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 15:34:58,733 [DEBUG][       Thread-259603][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 15:34:58,733 [ INFO][       Thread-259603][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 15:34:58,740 [DEBUG][       Thread-259603][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 15:34:58,740 [DEBUG][       Thread-259603][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 15:34:58,741 [DEBUG][       Thread-259603][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 15:34:58,741 [DEBUG][       Thread-259603][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:34:58,741 [DEBUG][       Thread-259603][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:34:58,741 [DEBUG][       Thread-259603][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:34:58,741 [DEBUG][       Thread-259603][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:34:58,741 [DEBUG][       Thread-259603][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 15:34:58,741 [DEBUG][       Thread-259603][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 15:34:58,741 [DEBUG][       Thread-259603][   transport.py][1871] : client lang: <none>
2025-06-13 15:34:58,741 [DEBUG][       Thread-259603][   transport.py][1871] : server lang: <none>
2025-06-13 15:34:58,741 [DEBUG][       Thread-259603][   transport.py][1871] : kex follows: False
2025-06-13 15:34:58,741 [DEBUG][       Thread-259603][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 15:34:58,741 [DEBUG][       Thread-259603][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 15:34:58,741 [DEBUG][       Thread-259603][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 15:34:58,741 [DEBUG][       Thread-259603][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 15:34:58,741 [DEBUG][       Thread-259603][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 15:34:58,741 [DEBUG][       Thread-259603][   transport.py][1871] : Compression: none
2025-06-13 15:34:58,741 [DEBUG][       Thread-259603][   transport.py][1871] : === End of kex handshake ===
2025-06-13 15:34:58,800 [DEBUG][       Thread-259603][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 15:34:58,800 [DEBUG][       Thread-259603][   transport.py][1871] : Switch to new keys ...
2025-06-13 15:34:58,801 [DEBUG][       Thread-259603][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 15:34:58,801 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 15:34:58,801 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 15:34:58,861 [DEBUG][       Thread-259603][   transport.py][1871] : userauth is OK
2025-06-13 15:34:58,861 [DEBUG][       Thread-259603][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 15:34:58,861 [DEBUG][       Thread-259603][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 15:34:58,861 [DEBUG][       Thread-259603][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 15:34:58,862 [DEBUG][       Thread-259603][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 15:34:58,879 [ INFO][       Thread-259603][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 15:34:58,880 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 15:34:58,880 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 15:34:59,883 [DEBUG][       Thread-259603][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 15:34:59,883 [DEBUG][       Thread-259603][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 15:34:59,932 [DEBUG][       Thread-259603][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 15:34:59,932 [DEBUG][       Thread-259603][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 15:34:59,942 [DEBUG][       Thread-259603][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 15:34:59,951 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 15:34:59,951 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 15:34:59,960 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 15:34:59,974 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 15:34:59,975 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 15:34:59,975 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 15:34:59,986 [DEBUG][       Thread-259603][   transport.py][1871] : EOF in transport thread
2025-06-13 15:35:01,695 [DEBUG][Thread-259605 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:35:09,986 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 15:35:09,986 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 15:35:09,986 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 15:35:09,989 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 15:35:10,299 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:35:10,299 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:35:10,451 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 15, 34, 49), 18.4, 27.73, 0.0, 21.97, 13.85, 0, 0, 0, 2, 0, 0),)
2025-06-13 15:35:10,451 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 15:34:49
2025-06-13 15:35:10,530 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 15:35:10,537 [DEBUG][       Thread-259606][   transport.py][1871] : starting thread (client mode): 0x863ca6b0
2025-06-13 15:35:10,537 [DEBUG][       Thread-259606][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 15:35:10,556 [DEBUG][       Thread-259606][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 15:35:10,556 [ INFO][       Thread-259606][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 15:35:10,558 [DEBUG][       Thread-259606][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 15:35:10,558 [DEBUG][       Thread-259606][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 15:35:10,558 [DEBUG][       Thread-259606][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 15:35:10,558 [DEBUG][       Thread-259606][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:35:10,558 [DEBUG][       Thread-259606][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:35:10,558 [DEBUG][       Thread-259606][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:35:10,558 [DEBUG][       Thread-259606][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:35:10,558 [DEBUG][       Thread-259606][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 15:35:10,558 [DEBUG][       Thread-259606][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 15:35:10,558 [DEBUG][       Thread-259606][   transport.py][1871] : client lang: <none>
2025-06-13 15:35:10,558 [DEBUG][       Thread-259606][   transport.py][1871] : server lang: <none>
2025-06-13 15:35:10,558 [DEBUG][       Thread-259606][   transport.py][1871] : kex follows: False
2025-06-13 15:35:10,558 [DEBUG][       Thread-259606][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 15:35:10,558 [DEBUG][       Thread-259606][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 15:35:10,558 [DEBUG][       Thread-259606][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 15:35:10,558 [DEBUG][       Thread-259606][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 15:35:10,558 [DEBUG][       Thread-259606][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 15:35:10,558 [DEBUG][       Thread-259606][   transport.py][1871] : Compression: none
2025-06-13 15:35:10,558 [DEBUG][       Thread-259606][   transport.py][1871] : === End of kex handshake ===
2025-06-13 15:35:10,570 [DEBUG][       Thread-259606][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 15:35:10,570 [DEBUG][       Thread-259606][   transport.py][1871] : Switch to new keys ...
2025-06-13 15:35:10,571 [DEBUG][       Thread-259606][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 15:35:10,571 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 15:35:10,571 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 15:35:10,572 [DEBUG][       Thread-259606][   transport.py][1871] : userauth is OK
2025-06-13 15:35:10,597 [ INFO][       Thread-259606][   transport.py][1871] : Authentication (password) successful!
2025-06-13 15:35:10,597 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 15:35:10,734 [DEBUG][Thread-259608 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:35:18,036 [DEBUG][       Thread-259606][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 15:35:18,036 [DEBUG][       Thread-259606][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 15:35:18,077 [DEBUG][       Thread-259606][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 15:35:18,077 [DEBUG][       Thread-259606][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 15:35:18,081 [DEBUG][       Thread-259606][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 15:35:18,094 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 15:35:18,094 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 15:35:18,096 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 15:35:18,098 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 15:35:18,143 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 15:35:18,145 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 15:35:18,145 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 15:35:18,146 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 15:35:18,146 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.565561 -999.00  +13.80  21.57     32   -2.40 1 1 1 1 1   887    0 16.77 28.24 ----- 22.1 21.6 46.4 29.1 17.1 -31.8 16.1 -33.3 16.9 -32.3 18.0 -30.2
2025-06-13 15:35:18,147 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 15:35:18,147 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 15:35:18,147 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.565561
2025-06-13 15:35:18,147 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 15:35:18,148 [DEBUG][       Thread-259606][   transport.py][1871] : EOF in transport thread
2025-06-13 15:35:18,149 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 15:35:18,149 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 15:35:18,149 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 15:35:18,150 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 15:35:18,150 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T15:34:49', tmtdew=18.4, humidity=27.73, cloud=0.0, wind=21.97, temperature=13.85, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T13:34:24.470', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 15:35:18,240 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 15:35:18,252 [DEBUG][       Thread-259610][   transport.py][1871] : starting thread (client mode): 0x863ed060
2025-06-13 15:35:18,252 [DEBUG][       Thread-259610][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 15:35:18,268 [DEBUG][       Thread-259610][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 15:35:18,268 [ INFO][       Thread-259610][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 15:35:18,279 [DEBUG][       Thread-259610][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 15:35:18,279 [DEBUG][       Thread-259610][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 15:35:18,279 [DEBUG][       Thread-259610][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 15:35:18,279 [DEBUG][       Thread-259610][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:35:18,280 [DEBUG][       Thread-259610][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:35:18,280 [DEBUG][       Thread-259610][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:35:18,280 [DEBUG][       Thread-259610][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:35:18,280 [DEBUG][       Thread-259610][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 15:35:18,280 [DEBUG][       Thread-259610][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 15:35:18,280 [DEBUG][       Thread-259610][   transport.py][1871] : client lang: <none>
2025-06-13 15:35:18,280 [DEBUG][       Thread-259610][   transport.py][1871] : server lang: <none>
2025-06-13 15:35:18,280 [DEBUG][       Thread-259610][   transport.py][1871] : kex follows: False
2025-06-13 15:35:18,280 [DEBUG][       Thread-259610][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 15:35:18,280 [DEBUG][       Thread-259610][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 15:35:18,280 [DEBUG][       Thread-259610][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 15:35:18,280 [DEBUG][       Thread-259610][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 15:35:18,280 [DEBUG][       Thread-259610][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 15:35:18,280 [DEBUG][       Thread-259610][   transport.py][1871] : Compression: none
2025-06-13 15:35:18,280 [DEBUG][       Thread-259610][   transport.py][1871] : === End of kex handshake ===
2025-06-13 15:35:18,341 [DEBUG][       Thread-259610][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 15:35:18,342 [DEBUG][       Thread-259610][   transport.py][1871] : Switch to new keys ...
2025-06-13 15:35:18,342 [DEBUG][       Thread-259610][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 15:35:18,343 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 15:35:18,343 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 15:35:18,408 [DEBUG][       Thread-259610][   transport.py][1871] : userauth is OK
2025-06-13 15:35:18,408 [DEBUG][       Thread-259610][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 15:35:18,408 [DEBUG][       Thread-259610][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 15:35:18,408 [DEBUG][       Thread-259610][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 15:35:18,408 [DEBUG][       Thread-259610][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 15:35:18,427 [ INFO][       Thread-259610][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 15:35:18,428 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 15:35:18,428 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 15:35:19,414 [DEBUG][       Thread-259610][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 15:35:19,415 [DEBUG][       Thread-259610][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 15:35:19,465 [DEBUG][       Thread-259610][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 15:35:19,465 [DEBUG][       Thread-259610][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 15:35:19,474 [DEBUG][       Thread-259610][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 15:35:19,483 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 15:35:19,484 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 15:35:19,492 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 15:35:19,501 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 15:35:19,501 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 15:35:19,501 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 15:35:19,509 [DEBUG][       Thread-259610][   transport.py][1871] : EOF in transport thread
2025-06-13 15:35:19,754 [DEBUG][Thread-259612 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:35:21,493 [DEBUG][Thread-259613 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:35:28,775 [DEBUG][Thread-259614 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:35:29,511 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 15:35:29,512 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 15:35:29,512 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 15:35:29,515 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 15:35:29,973 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 15, 35, 20), 18.45, 27.39, 0.0, 17.59, 13.89, 0, 0, 0, 2, 0, 0),)
2025-06-13 15:35:29,973 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 15:35:20
2025-06-13 15:35:30,053 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 15:35:30,059 [DEBUG][       Thread-259615][   transport.py][1871] : starting thread (client mode): 0x863cbfd0
2025-06-13 15:35:30,060 [DEBUG][       Thread-259615][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 15:35:30,079 [DEBUG][       Thread-259615][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 15:35:30,080 [ INFO][       Thread-259615][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 15:35:30,081 [DEBUG][       Thread-259615][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 15:35:30,081 [DEBUG][       Thread-259615][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 15:35:30,081 [DEBUG][       Thread-259615][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 15:35:30,082 [DEBUG][       Thread-259615][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:35:30,082 [DEBUG][       Thread-259615][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:35:30,082 [DEBUG][       Thread-259615][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:35:30,082 [DEBUG][       Thread-259615][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:35:30,082 [DEBUG][       Thread-259615][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 15:35:30,082 [DEBUG][       Thread-259615][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 15:35:30,082 [DEBUG][       Thread-259615][   transport.py][1871] : client lang: <none>
2025-06-13 15:35:30,082 [DEBUG][       Thread-259615][   transport.py][1871] : server lang: <none>
2025-06-13 15:35:30,082 [DEBUG][       Thread-259615][   transport.py][1871] : kex follows: False
2025-06-13 15:35:30,082 [DEBUG][       Thread-259615][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 15:35:30,082 [DEBUG][       Thread-259615][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 15:35:30,082 [DEBUG][       Thread-259615][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 15:35:30,082 [DEBUG][       Thread-259615][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 15:35:30,082 [DEBUG][       Thread-259615][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 15:35:30,082 [DEBUG][       Thread-259615][   transport.py][1871] : Compression: none
2025-06-13 15:35:30,082 [DEBUG][       Thread-259615][   transport.py][1871] : === End of kex handshake ===
2025-06-13 15:35:30,090 [DEBUG][       Thread-259615][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 15:35:30,091 [DEBUG][       Thread-259615][   transport.py][1871] : Switch to new keys ...
2025-06-13 15:35:30,091 [DEBUG][       Thread-259615][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 15:35:30,091 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 15:35:30,092 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 15:35:30,093 [DEBUG][       Thread-259615][   transport.py][1871] : userauth is OK
2025-06-13 15:35:30,117 [ INFO][       Thread-259615][   transport.py][1871] : Authentication (password) successful!
2025-06-13 15:35:30,118 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 15:35:30,769 [DEBUG][       Thread-259615][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 15:35:30,770 [DEBUG][       Thread-259615][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 15:35:30,813 [DEBUG][       Thread-259615][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 15:35:30,813 [DEBUG][       Thread-259615][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 15:35:30,816 [DEBUG][       Thread-259615][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 15:35:30,828 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 15:35:30,828 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 15:35:30,830 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 15:35:30,832 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 15:35:30,838 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 15:35:30,840 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 15:35:30,840 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 15:35:30,841 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 15:35:30,841 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.565908 -999.00  +13.80  22.95     32   -2.20 1 1 1 1 1   887    0 16.95 30.23 ----- 21.3 22.9 41.8 26.9 17.1 -32.1 16.1 -33.4 16.9 -31.6 18.1 -29.8
2025-06-13 15:35:30,841 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 15:35:30,841 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 15:35:30,841 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.565908
2025-06-13 15:35:30,842 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 15:35:30,842 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 15:35:30,842 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 15:35:30,842 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 15:35:30,842 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 15:35:30,843 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T15:35:20', tmtdew=18.45, humidity=27.39, cloud=0.0, wind=17.59, temperature=13.89, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T13:34:54.451', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 15:35:30,844 [DEBUG][       Thread-259615][   transport.py][1871] : EOF in transport thread
2025-06-13 15:35:30,936 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 15:35:30,951 [DEBUG][       Thread-259618][   transport.py][1871] : starting thread (client mode): 0x863a5600
2025-06-13 15:35:30,951 [DEBUG][       Thread-259618][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 15:35:30,965 [DEBUG][       Thread-259618][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 15:35:30,965 [ INFO][       Thread-259618][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 15:35:30,973 [DEBUG][       Thread-259618][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 15:35:30,973 [DEBUG][       Thread-259618][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 15:35:30,973 [DEBUG][       Thread-259618][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 15:35:30,973 [DEBUG][       Thread-259618][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:35:30,973 [DEBUG][       Thread-259618][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:35:30,973 [DEBUG][       Thread-259618][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:35:30,973 [DEBUG][       Thread-259618][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:35:30,973 [DEBUG][       Thread-259618][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 15:35:30,973 [DEBUG][       Thread-259618][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 15:35:30,973 [DEBUG][       Thread-259618][   transport.py][1871] : client lang: <none>
2025-06-13 15:35:30,973 [DEBUG][       Thread-259618][   transport.py][1871] : server lang: <none>
2025-06-13 15:35:30,974 [DEBUG][       Thread-259618][   transport.py][1871] : kex follows: False
2025-06-13 15:35:30,974 [DEBUG][       Thread-259618][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 15:35:30,974 [DEBUG][       Thread-259618][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 15:35:30,974 [DEBUG][       Thread-259618][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 15:35:30,974 [DEBUG][       Thread-259618][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 15:35:30,974 [DEBUG][       Thread-259618][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 15:35:30,974 [DEBUG][       Thread-259618][   transport.py][1871] : Compression: none
2025-06-13 15:35:30,974 [DEBUG][       Thread-259618][   transport.py][1871] : === End of kex handshake ===
2025-06-13 15:35:31,033 [DEBUG][       Thread-259618][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 15:35:31,034 [DEBUG][       Thread-259618][   transport.py][1871] : Switch to new keys ...
2025-06-13 15:35:31,035 [DEBUG][       Thread-259618][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 15:35:31,035 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 15:35:31,036 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 15:35:31,089 [DEBUG][       Thread-259618][   transport.py][1871] : userauth is OK
2025-06-13 15:35:31,089 [DEBUG][       Thread-259618][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 15:35:31,089 [DEBUG][       Thread-259618][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 15:35:31,089 [DEBUG][       Thread-259618][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 15:35:31,090 [DEBUG][       Thread-259618][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 15:35:31,111 [ INFO][       Thread-259618][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 15:35:31,111 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 15:35:31,111 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 15:35:32,107 [DEBUG][       Thread-259618][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 15:35:32,107 [DEBUG][       Thread-259618][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 15:35:32,156 [DEBUG][       Thread-259618][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 15:35:32,156 [DEBUG][       Thread-259618][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 15:35:32,166 [DEBUG][       Thread-259618][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 15:35:32,175 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 15:35:32,175 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 15:35:32,184 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 15:35:32,193 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 15:35:32,193 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 15:35:32,193 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 15:35:32,201 [DEBUG][       Thread-259618][   transport.py][1871] : EOF in transport thread
2025-06-13 15:35:37,797 [DEBUG][Thread-259620 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:35:42,204 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 15:35:42,204 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 15:35:42,204 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 15:35:42,207 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 15:35:42,675 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 15, 35, 20), 18.45, 27.39, 0.0, 17.59, 13.89, 0, 0, 0, 2, 0, 0),)
2025-06-13 15:35:42,675 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 15:35:20
2025-06-13 15:35:42,754 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 15:35:42,758 [DEBUG][       Thread-259621][   transport.py][1871] : starting thread (client mode): 0x86393340
2025-06-13 15:35:42,758 [DEBUG][       Thread-259621][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 15:35:42,779 [DEBUG][       Thread-259621][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 15:35:42,779 [ INFO][       Thread-259621][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 15:35:42,782 [DEBUG][       Thread-259621][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 15:35:42,782 [DEBUG][       Thread-259621][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 15:35:42,782 [DEBUG][       Thread-259621][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 15:35:42,782 [DEBUG][       Thread-259621][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:35:42,782 [DEBUG][       Thread-259621][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:35:42,782 [DEBUG][       Thread-259621][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:35:42,782 [DEBUG][       Thread-259621][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:35:42,782 [DEBUG][       Thread-259621][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 15:35:42,782 [DEBUG][       Thread-259621][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 15:35:42,782 [DEBUG][       Thread-259621][   transport.py][1871] : client lang: <none>
2025-06-13 15:35:42,782 [DEBUG][       Thread-259621][   transport.py][1871] : server lang: <none>
2025-06-13 15:35:42,782 [DEBUG][       Thread-259621][   transport.py][1871] : kex follows: False
2025-06-13 15:35:42,782 [DEBUG][       Thread-259621][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 15:35:42,782 [DEBUG][       Thread-259621][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 15:35:42,782 [DEBUG][       Thread-259621][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 15:35:42,782 [DEBUG][       Thread-259621][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 15:35:42,782 [DEBUG][       Thread-259621][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 15:35:42,783 [DEBUG][       Thread-259621][   transport.py][1871] : Compression: none
2025-06-13 15:35:42,783 [DEBUG][       Thread-259621][   transport.py][1871] : === End of kex handshake ===
2025-06-13 15:35:42,802 [DEBUG][       Thread-259621][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 15:35:42,802 [DEBUG][       Thread-259621][   transport.py][1871] : Switch to new keys ...
2025-06-13 15:35:42,803 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 15:35:42,803 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 15:35:42,804 [DEBUG][       Thread-259621][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 15:35:42,804 [DEBUG][       Thread-259621][   transport.py][1871] : userauth is OK
2025-06-13 15:35:42,829 [ INFO][       Thread-259621][   transport.py][1871] : Authentication (password) successful!
2025-06-13 15:35:42,829 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 15:35:43,482 [DEBUG][       Thread-259621][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 15:35:43,482 [DEBUG][       Thread-259621][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 15:35:43,525 [DEBUG][       Thread-259621][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 15:35:43,525 [DEBUG][       Thread-259621][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 15:35:43,528 [DEBUG][       Thread-259621][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 15:35:43,543 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 15:35:43,544 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 15:35:43,546 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 15:35:43,548 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 15:35:43,554 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 15:35:43,556 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 15:35:43,556 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 15:35:43,557 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 15:35:43,557 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.565908 -999.00  +13.80  22.95     32   -2.20 1 1 1 1 1   887    0 16.95 30.23 ----- 21.3 22.9 41.8 26.9 17.1 -32.1 16.1 -33.4 16.9 -31.6 18.1 -29.8
2025-06-13 15:35:43,557 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 15:35:43,557 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 15:35:43,558 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.565908
2025-06-13 15:35:43,558 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 15:35:43,559 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 15:35:43,559 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 15:35:43,559 [DEBUG][       Thread-259621][   transport.py][1871] : EOF in transport thread
2025-06-13 15:35:43,559 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 15:35:43,560 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 15:35:43,560 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T15:35:20', tmtdew=18.45, humidity=27.39, cloud=0.0, wind=17.59, temperature=13.89, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T13:34:54.451', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 15:35:43,655 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 15:35:43,666 [DEBUG][       Thread-259624][   transport.py][1871] : starting thread (client mode): 0x863bd150
2025-06-13 15:35:43,666 [DEBUG][       Thread-259624][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 15:35:43,681 [DEBUG][       Thread-259624][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 15:35:43,682 [ INFO][       Thread-259624][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 15:35:43,690 [DEBUG][       Thread-259624][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 15:35:43,691 [DEBUG][       Thread-259624][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 15:35:43,691 [DEBUG][       Thread-259624][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 15:35:43,691 [DEBUG][       Thread-259624][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:35:43,691 [DEBUG][       Thread-259624][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:35:43,691 [DEBUG][       Thread-259624][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:35:43,691 [DEBUG][       Thread-259624][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:35:43,691 [DEBUG][       Thread-259624][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 15:35:43,691 [DEBUG][       Thread-259624][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 15:35:43,691 [DEBUG][       Thread-259624][   transport.py][1871] : client lang: <none>
2025-06-13 15:35:43,691 [DEBUG][       Thread-259624][   transport.py][1871] : server lang: <none>
2025-06-13 15:35:43,691 [DEBUG][       Thread-259624][   transport.py][1871] : kex follows: False
2025-06-13 15:35:43,691 [DEBUG][       Thread-259624][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 15:35:43,691 [DEBUG][       Thread-259624][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 15:35:43,691 [DEBUG][       Thread-259624][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 15:35:43,691 [DEBUG][       Thread-259624][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 15:35:43,692 [DEBUG][       Thread-259624][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 15:35:43,692 [DEBUG][       Thread-259624][   transport.py][1871] : Compression: none
2025-06-13 15:35:43,692 [DEBUG][       Thread-259624][   transport.py][1871] : === End of kex handshake ===
2025-06-13 15:35:43,749 [DEBUG][       Thread-259624][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 15:35:43,749 [DEBUG][       Thread-259624][   transport.py][1871] : Switch to new keys ...
2025-06-13 15:35:43,750 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 15:35:43,751 [DEBUG][       Thread-259624][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 15:35:43,751 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 15:35:43,808 [DEBUG][       Thread-259624][   transport.py][1871] : userauth is OK
2025-06-13 15:35:43,808 [DEBUG][       Thread-259624][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 15:35:43,808 [DEBUG][       Thread-259624][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 15:35:43,808 [DEBUG][       Thread-259624][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 15:35:43,808 [DEBUG][       Thread-259624][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 15:35:43,838 [ INFO][       Thread-259624][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 15:35:43,838 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 15:35:43,838 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 15:35:44,829 [DEBUG][       Thread-259624][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 15:35:44,829 [DEBUG][       Thread-259624][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 15:35:44,880 [DEBUG][       Thread-259624][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 15:35:44,880 [DEBUG][       Thread-259624][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 15:35:44,889 [DEBUG][       Thread-259624][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 15:35:44,898 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 15:35:44,899 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 15:35:44,907 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 15:35:44,917 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 15:35:44,917 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 15:35:44,917 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 15:35:44,925 [DEBUG][       Thread-259624][   transport.py][1871] : EOF in transport thread
2025-06-13 15:35:46,831 [DEBUG][Thread-259626 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:35:54,928 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 15:35:54,928 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 15:35:54,928 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 15:35:54,929 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 15:35:55,384 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 15, 35, 52), 18.41, 27.45, 0.0, 16.32, 13.86, 0, 0, 0, 2, 0, 0),)
2025-06-13 15:35:55,384 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 15:35:52
2025-06-13 15:35:55,462 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 15:35:55,468 [DEBUG][       Thread-259627][   transport.py][1871] : starting thread (client mode): 0x86353490
2025-06-13 15:35:55,468 [DEBUG][       Thread-259627][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 15:35:55,488 [DEBUG][       Thread-259627][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 15:35:55,488 [ INFO][       Thread-259627][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 15:35:55,491 [DEBUG][       Thread-259627][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 15:35:55,492 [DEBUG][       Thread-259627][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 15:35:55,492 [DEBUG][       Thread-259627][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 15:35:55,492 [DEBUG][       Thread-259627][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:35:55,492 [DEBUG][       Thread-259627][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:35:55,492 [DEBUG][       Thread-259627][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:35:55,492 [DEBUG][       Thread-259627][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:35:55,492 [DEBUG][       Thread-259627][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 15:35:55,492 [DEBUG][       Thread-259627][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 15:35:55,492 [DEBUG][       Thread-259627][   transport.py][1871] : client lang: <none>
2025-06-13 15:35:55,492 [DEBUG][       Thread-259627][   transport.py][1871] : server lang: <none>
2025-06-13 15:35:55,492 [DEBUG][       Thread-259627][   transport.py][1871] : kex follows: False
2025-06-13 15:35:55,492 [DEBUG][       Thread-259627][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 15:35:55,492 [DEBUG][       Thread-259627][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 15:35:55,492 [DEBUG][       Thread-259627][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 15:35:55,492 [DEBUG][       Thread-259627][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 15:35:55,492 [DEBUG][       Thread-259627][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 15:35:55,492 [DEBUG][       Thread-259627][   transport.py][1871] : Compression: none
2025-06-13 15:35:55,492 [DEBUG][       Thread-259627][   transport.py][1871] : === End of kex handshake ===
2025-06-13 15:35:55,509 [DEBUG][       Thread-259627][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 15:35:55,510 [DEBUG][       Thread-259627][   transport.py][1871] : Switch to new keys ...
2025-06-13 15:35:55,510 [DEBUG][       Thread-259627][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 15:35:55,510 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 15:35:55,511 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 15:35:55,512 [DEBUG][       Thread-259627][   transport.py][1871] : userauth is OK
2025-06-13 15:35:55,525 [ INFO][       Thread-259627][   transport.py][1871] : Authentication (password) successful!
2025-06-13 15:35:55,526 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 15:35:55,850 [DEBUG][Thread-259629 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:35:56,132 [DEBUG][       Thread-259627][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 15:35:56,132 [DEBUG][       Thread-259627][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 15:35:56,173 [DEBUG][       Thread-259627][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 15:35:56,173 [DEBUG][       Thread-259627][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 15:35:56,175 [DEBUG][       Thread-259627][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 15:35:56,187 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 15:35:56,187 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 15:35:56,189 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 15:35:56,191 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 15:35:56,196 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 15:35:56,198 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 15:35:56,198 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 15:35:56,199 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 15:35:56,199 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.566255 -999.00  +13.80  27.91     31   -2.70 1 1 1 1 1   887    0 16.56 31.04 ----- 27.6 27.9 48.4 30.0 17.1 -31.9 16.1 -33.6 16.9 -32.7 18.1 -30.1
2025-06-13 15:35:56,199 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 15:35:56,199 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 15:35:56,199 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.566255
2025-06-13 15:35:56,199 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 15:35:56,200 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 15:35:56,200 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 15:35:56,200 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 15:35:56,200 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 15:35:56,200 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T15:35:52', tmtdew=18.41, humidity=27.45, cloud=0.0, wind=16.32, temperature=13.86, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T13:35:24.432', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 15:35:56,201 [DEBUG][       Thread-259627][   transport.py][1871] : EOF in transport thread
2025-06-13 15:35:56,284 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 15:35:56,296 [DEBUG][       Thread-259631][   transport.py][1871] : starting thread (client mode): 0x86392140
2025-06-13 15:35:56,296 [DEBUG][       Thread-259631][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 15:35:56,315 [DEBUG][       Thread-259631][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 15:35:56,315 [ INFO][       Thread-259631][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 15:35:56,322 [DEBUG][       Thread-259631][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 15:35:56,322 [DEBUG][       Thread-259631][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 15:35:56,322 [DEBUG][       Thread-259631][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 15:35:56,322 [DEBUG][       Thread-259631][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:35:56,322 [DEBUG][       Thread-259631][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:35:56,322 [DEBUG][       Thread-259631][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:35:56,322 [DEBUG][       Thread-259631][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:35:56,322 [DEBUG][       Thread-259631][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 15:35:56,322 [DEBUG][       Thread-259631][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 15:35:56,322 [DEBUG][       Thread-259631][   transport.py][1871] : client lang: <none>
2025-06-13 15:35:56,322 [DEBUG][       Thread-259631][   transport.py][1871] : server lang: <none>
2025-06-13 15:35:56,322 [DEBUG][       Thread-259631][   transport.py][1871] : kex follows: False
2025-06-13 15:35:56,322 [DEBUG][       Thread-259631][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 15:35:56,322 [DEBUG][       Thread-259631][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 15:35:56,322 [DEBUG][       Thread-259631][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 15:35:56,322 [DEBUG][       Thread-259631][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 15:35:56,322 [DEBUG][       Thread-259631][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 15:35:56,322 [DEBUG][       Thread-259631][   transport.py][1871] : Compression: none
2025-06-13 15:35:56,322 [DEBUG][       Thread-259631][   transport.py][1871] : === End of kex handshake ===
2025-06-13 15:35:56,379 [DEBUG][       Thread-259631][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 15:35:56,379 [DEBUG][       Thread-259631][   transport.py][1871] : Switch to new keys ...
2025-06-13 15:35:56,379 [DEBUG][       Thread-259631][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 15:35:56,379 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 15:35:56,379 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 15:35:56,441 [DEBUG][       Thread-259631][   transport.py][1871] : userauth is OK
2025-06-13 15:35:56,441 [DEBUG][       Thread-259631][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 15:35:56,441 [DEBUG][       Thread-259631][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 15:35:56,441 [DEBUG][       Thread-259631][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 15:35:56,441 [DEBUG][       Thread-259631][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 15:35:56,461 [ INFO][       Thread-259631][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 15:35:56,462 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 15:35:56,462 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 15:35:56,650 [DEBUG][Thread-259633 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:35:57,479 [DEBUG][       Thread-259631][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 15:35:57,479 [DEBUG][       Thread-259631][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 15:35:57,528 [DEBUG][       Thread-259631][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 15:35:57,528 [DEBUG][       Thread-259631][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 15:35:57,537 [DEBUG][       Thread-259631][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 15:35:57,547 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 15:35:57,547 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 15:35:57,556 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 15:35:57,565 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 15:35:57,566 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 15:35:57,566 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 15:35:57,575 [DEBUG][       Thread-259631][   transport.py][1871] : EOF in transport thread
2025-06-13 15:35:57,733 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:35:57,734 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:36:04,872 [DEBUG][Thread-259634 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:36:07,577 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 15:36:07,577 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 15:36:07,577 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 15:36:07,580 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 15:36:08,043 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 15, 35, 52), 18.41, 27.45, 0.0, 16.32, 13.86, 0, 0, 0, 2, 0, 0),)
2025-06-13 15:36:08,043 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 15:35:52
2025-06-13 15:36:08,121 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 15:36:08,125 [DEBUG][       Thread-259635][   transport.py][1871] : starting thread (client mode): 0x86393d60
2025-06-13 15:36:08,125 [DEBUG][       Thread-259635][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 15:36:08,139 [DEBUG][       Thread-259635][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 15:36:08,139 [ INFO][       Thread-259635][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 15:36:08,141 [DEBUG][       Thread-259635][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 15:36:08,141 [DEBUG][       Thread-259635][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 15:36:08,141 [DEBUG][       Thread-259635][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 15:36:08,141 [DEBUG][       Thread-259635][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:36:08,141 [DEBUG][       Thread-259635][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:36:08,141 [DEBUG][       Thread-259635][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:36:08,141 [DEBUG][       Thread-259635][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:36:08,141 [DEBUG][       Thread-259635][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 15:36:08,141 [DEBUG][       Thread-259635][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 15:36:08,141 [DEBUG][       Thread-259635][   transport.py][1871] : client lang: <none>
2025-06-13 15:36:08,141 [DEBUG][       Thread-259635][   transport.py][1871] : server lang: <none>
2025-06-13 15:36:08,141 [DEBUG][       Thread-259635][   transport.py][1871] : kex follows: False
2025-06-13 15:36:08,141 [DEBUG][       Thread-259635][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 15:36:08,141 [DEBUG][       Thread-259635][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 15:36:08,141 [DEBUG][       Thread-259635][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 15:36:08,141 [DEBUG][       Thread-259635][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 15:36:08,141 [DEBUG][       Thread-259635][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 15:36:08,141 [DEBUG][       Thread-259635][   transport.py][1871] : Compression: none
2025-06-13 15:36:08,141 [DEBUG][       Thread-259635][   transport.py][1871] : === End of kex handshake ===
2025-06-13 15:36:08,150 [DEBUG][       Thread-259635][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 15:36:08,151 [DEBUG][       Thread-259635][   transport.py][1871] : Switch to new keys ...
2025-06-13 15:36:08,151 [DEBUG][       Thread-259635][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 15:36:08,151 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 15:36:08,151 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 15:36:08,152 [DEBUG][       Thread-259635][   transport.py][1871] : userauth is OK
2025-06-13 15:36:08,176 [ INFO][       Thread-259635][   transport.py][1871] : Authentication (password) successful!
2025-06-13 15:36:08,177 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 15:36:08,831 [DEBUG][       Thread-259635][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 15:36:08,831 [DEBUG][       Thread-259635][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 15:36:08,873 [DEBUG][       Thread-259635][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 15:36:08,873 [DEBUG][       Thread-259635][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 15:36:08,877 [DEBUG][       Thread-259635][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 15:36:08,888 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 15:36:08,889 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 15:36:08,891 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 15:36:08,893 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 15:36:08,899 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 15:36:08,902 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 15:36:08,902 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 15:36:08,902 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 15:36:08,903 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.566255 -999.00  +13.80  27.91     31   -2.70 1 1 1 1 1   887    0 16.56 31.04 ----- 27.6 27.9 48.4 30.0 17.1 -31.9 16.1 -33.6 16.9 -32.7 18.1 -30.1
2025-06-13 15:36:08,903 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 15:36:08,903 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 15:36:08,903 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.566255
2025-06-13 15:36:08,903 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 15:36:08,904 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 15:36:08,904 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 15:36:08,904 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 15:36:08,904 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 15:36:08,904 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T15:35:52', tmtdew=18.41, humidity=27.45, cloud=0.0, wind=16.32, temperature=13.86, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T13:35:24.432', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 15:36:08,904 [DEBUG][       Thread-259635][   transport.py][1871] : EOF in transport thread
2025-06-13 15:36:08,987 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 15:36:08,999 [DEBUG][       Thread-259638][   transport.py][1871] : starting thread (client mode): 0x863cbc40
2025-06-13 15:36:08,999 [DEBUG][       Thread-259638][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 15:36:09,014 [DEBUG][       Thread-259638][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 15:36:09,015 [ INFO][       Thread-259638][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 15:36:09,022 [DEBUG][       Thread-259638][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 15:36:09,022 [DEBUG][       Thread-259638][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 15:36:09,022 [DEBUG][       Thread-259638][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 15:36:09,023 [DEBUG][       Thread-259638][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:36:09,023 [DEBUG][       Thread-259638][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:36:09,023 [DEBUG][       Thread-259638][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:36:09,023 [DEBUG][       Thread-259638][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:36:09,023 [DEBUG][       Thread-259638][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 15:36:09,023 [DEBUG][       Thread-259638][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 15:36:09,023 [DEBUG][       Thread-259638][   transport.py][1871] : client lang: <none>
2025-06-13 15:36:09,023 [DEBUG][       Thread-259638][   transport.py][1871] : server lang: <none>
2025-06-13 15:36:09,023 [DEBUG][       Thread-259638][   transport.py][1871] : kex follows: False
2025-06-13 15:36:09,023 [DEBUG][       Thread-259638][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 15:36:09,023 [DEBUG][       Thread-259638][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 15:36:09,023 [DEBUG][       Thread-259638][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 15:36:09,023 [DEBUG][       Thread-259638][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 15:36:09,023 [DEBUG][       Thread-259638][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 15:36:09,023 [DEBUG][       Thread-259638][   transport.py][1871] : Compression: none
2025-06-13 15:36:09,023 [DEBUG][       Thread-259638][   transport.py][1871] : === End of kex handshake ===
2025-06-13 15:36:09,081 [DEBUG][       Thread-259638][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 15:36:09,081 [DEBUG][       Thread-259638][   transport.py][1871] : Switch to new keys ...
2025-06-13 15:36:09,082 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 15:36:09,083 [DEBUG][       Thread-259638][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 15:36:09,083 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 15:36:09,142 [DEBUG][       Thread-259638][   transport.py][1871] : userauth is OK
2025-06-13 15:36:09,142 [DEBUG][       Thread-259638][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 15:36:09,142 [DEBUG][       Thread-259638][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 15:36:09,142 [DEBUG][       Thread-259638][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 15:36:09,142 [DEBUG][       Thread-259638][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 15:36:09,161 [ INFO][       Thread-259638][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 15:36:09,161 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 15:36:09,162 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 15:36:10,179 [DEBUG][       Thread-259638][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 15:36:10,179 [DEBUG][       Thread-259638][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 15:36:10,230 [DEBUG][       Thread-259638][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 15:36:10,230 [DEBUG][       Thread-259638][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 15:36:10,240 [DEBUG][       Thread-259638][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 15:36:10,249 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 15:36:10,250 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 15:36:10,264 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 15:36:10,273 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 15:36:10,273 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 15:36:10,274 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 15:36:10,282 [DEBUG][       Thread-259638][   transport.py][1871] : EOF in transport thread
2025-06-13 15:36:10,439 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:36:10,440 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:36:13,912 [DEBUG][Thread-259640 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:36:20,284 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 15:36:20,285 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 15:36:20,285 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 15:36:20,288 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 15:36:20,754 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 15, 35, 52), 18.41, 27.45, 0.0, 16.32, 13.86, 0, 0, 0, 2, 0, 0),)
2025-06-13 15:36:20,754 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 15:35:52
2025-06-13 15:36:20,831 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 15:36:20,836 [DEBUG][       Thread-259641][   transport.py][1871] : starting thread (client mode): 0x863c9a80
2025-06-13 15:36:20,836 [DEBUG][       Thread-259641][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 15:36:20,857 [DEBUG][       Thread-259641][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 15:36:20,857 [ INFO][       Thread-259641][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 15:36:20,861 [DEBUG][       Thread-259641][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 15:36:20,861 [DEBUG][       Thread-259641][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 15:36:20,861 [DEBUG][       Thread-259641][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 15:36:20,861 [DEBUG][       Thread-259641][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:36:20,861 [DEBUG][       Thread-259641][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:36:20,861 [DEBUG][       Thread-259641][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:36:20,861 [DEBUG][       Thread-259641][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:36:20,861 [DEBUG][       Thread-259641][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 15:36:20,861 [DEBUG][       Thread-259641][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 15:36:20,861 [DEBUG][       Thread-259641][   transport.py][1871] : client lang: <none>
2025-06-13 15:36:20,861 [DEBUG][       Thread-259641][   transport.py][1871] : server lang: <none>
2025-06-13 15:36:20,861 [DEBUG][       Thread-259641][   transport.py][1871] : kex follows: False
2025-06-13 15:36:20,861 [DEBUG][       Thread-259641][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 15:36:20,861 [DEBUG][       Thread-259641][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 15:36:20,861 [DEBUG][       Thread-259641][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 15:36:20,861 [DEBUG][       Thread-259641][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 15:36:20,861 [DEBUG][       Thread-259641][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 15:36:20,861 [DEBUG][       Thread-259641][   transport.py][1871] : Compression: none
2025-06-13 15:36:20,861 [DEBUG][       Thread-259641][   transport.py][1871] : === End of kex handshake ===
2025-06-13 15:36:20,878 [DEBUG][       Thread-259641][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 15:36:20,878 [DEBUG][       Thread-259641][   transport.py][1871] : Switch to new keys ...
2025-06-13 15:36:20,879 [DEBUG][       Thread-259641][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 15:36:20,879 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 15:36:20,879 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 15:36:20,880 [DEBUG][       Thread-259641][   transport.py][1871] : userauth is OK
2025-06-13 15:36:20,893 [ INFO][       Thread-259641][   transport.py][1871] : Authentication (password) successful!
2025-06-13 15:36:20,894 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 15:36:21,515 [DEBUG][       Thread-259641][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 15:36:21,515 [DEBUG][       Thread-259641][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 15:36:21,541 [DEBUG][Thread-259643 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:36:21,557 [DEBUG][       Thread-259641][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 15:36:21,557 [DEBUG][       Thread-259641][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 15:36:21,559 [DEBUG][       Thread-259641][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 15:36:21,571 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 15:36:21,571 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 15:36:21,573 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 15:36:21,575 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 15:36:21,580 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 15:36:21,582 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 15:36:21,582 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 15:36:21,583 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 15:36:21,583 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.566255 -999.00  +13.80  27.91     31   -2.70 1 1 1 1 1   887    0 16.56 31.04 ----- 27.6 27.9 48.4 30.0 17.1 -31.9 16.1 -33.6 16.9 -32.7 18.1 -30.1
2025-06-13 15:36:21,583 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 15:36:21,583 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 15:36:21,583 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.566255
2025-06-13 15:36:21,583 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 15:36:21,584 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 15:36:21,584 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 15:36:21,584 [DEBUG][       Thread-259641][   transport.py][1871] : EOF in transport thread
2025-06-13 15:36:21,584 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 15:36:21,585 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 15:36:21,585 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T15:35:52', tmtdew=18.41, humidity=27.45, cloud=0.0, wind=16.32, temperature=13.86, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T13:35:24.432', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 15:36:21,668 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 15:36:21,677 [DEBUG][       Thread-259645][   transport.py][1871] : starting thread (client mode): 0x86391de0
2025-06-13 15:36:21,677 [DEBUG][       Thread-259645][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 15:36:21,692 [DEBUG][       Thread-259645][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 15:36:21,693 [ INFO][       Thread-259645][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 15:36:21,700 [DEBUG][       Thread-259645][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 15:36:21,700 [DEBUG][       Thread-259645][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 15:36:21,700 [DEBUG][       Thread-259645][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 15:36:21,700 [DEBUG][       Thread-259645][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:36:21,700 [DEBUG][       Thread-259645][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:36:21,700 [DEBUG][       Thread-259645][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:36:21,700 [DEBUG][       Thread-259645][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:36:21,700 [DEBUG][       Thread-259645][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 15:36:21,701 [DEBUG][       Thread-259645][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 15:36:21,701 [DEBUG][       Thread-259645][   transport.py][1871] : client lang: <none>
2025-06-13 15:36:21,701 [DEBUG][       Thread-259645][   transport.py][1871] : server lang: <none>
2025-06-13 15:36:21,701 [DEBUG][       Thread-259645][   transport.py][1871] : kex follows: False
2025-06-13 15:36:21,701 [DEBUG][       Thread-259645][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 15:36:21,701 [DEBUG][       Thread-259645][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 15:36:21,701 [DEBUG][       Thread-259645][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 15:36:21,701 [DEBUG][       Thread-259645][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 15:36:21,701 [DEBUG][       Thread-259645][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 15:36:21,701 [DEBUG][       Thread-259645][   transport.py][1871] : Compression: none
2025-06-13 15:36:21,701 [DEBUG][       Thread-259645][   transport.py][1871] : === End of kex handshake ===
2025-06-13 15:36:21,757 [DEBUG][       Thread-259645][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 15:36:21,758 [DEBUG][       Thread-259645][   transport.py][1871] : Switch to new keys ...
2025-06-13 15:36:21,758 [DEBUG][       Thread-259645][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 15:36:21,759 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 15:36:21,759 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 15:36:21,813 [DEBUG][       Thread-259645][   transport.py][1871] : userauth is OK
2025-06-13 15:36:21,813 [DEBUG][       Thread-259645][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 15:36:21,813 [DEBUG][       Thread-259645][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 15:36:21,813 [DEBUG][       Thread-259645][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 15:36:21,813 [DEBUG][       Thread-259645][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 15:36:21,832 [ INFO][       Thread-259645][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 15:36:21,833 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 15:36:21,833 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 15:36:22,851 [DEBUG][       Thread-259645][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 15:36:22,851 [DEBUG][       Thread-259645][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 15:36:22,900 [DEBUG][       Thread-259645][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 15:36:22,900 [DEBUG][       Thread-259645][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 15:36:22,909 [DEBUG][       Thread-259645][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 15:36:22,919 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 15:36:22,919 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 15:36:22,933 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 15:36:22,935 [DEBUG][Thread-259647 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:36:22,945 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 15:36:22,945 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 15:36:22,945 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 15:36:22,953 [DEBUG][       Thread-259645][   transport.py][1871] : EOF in transport thread
2025-06-13 15:36:31,954 [DEBUG][Thread-259648 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:36:32,946 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 15:36:32,946 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 15:36:32,946 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 15:36:32,947 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 15:36:33,400 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 15, 36, 24), 18.51, 27.44, 0.0, 19.25, 13.88, 0, 0, 0, 2, 0, 0),)
2025-06-13 15:36:33,400 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 15:36:24
2025-06-13 15:36:33,482 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 15:36:33,486 [DEBUG][       Thread-259649][   transport.py][1871] : starting thread (client mode): 0x863caa10
2025-06-13 15:36:33,486 [DEBUG][       Thread-259649][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 15:36:33,507 [DEBUG][       Thread-259649][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 15:36:33,507 [ INFO][       Thread-259649][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 15:36:33,511 [DEBUG][       Thread-259649][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 15:36:33,511 [DEBUG][       Thread-259649][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 15:36:33,511 [DEBUG][       Thread-259649][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 15:36:33,511 [DEBUG][       Thread-259649][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:36:33,511 [DEBUG][       Thread-259649][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:36:33,511 [DEBUG][       Thread-259649][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:36:33,511 [DEBUG][       Thread-259649][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:36:33,511 [DEBUG][       Thread-259649][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 15:36:33,511 [DEBUG][       Thread-259649][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 15:36:33,511 [DEBUG][       Thread-259649][   transport.py][1871] : client lang: <none>
2025-06-13 15:36:33,511 [DEBUG][       Thread-259649][   transport.py][1871] : server lang: <none>
2025-06-13 15:36:33,511 [DEBUG][       Thread-259649][   transport.py][1871] : kex follows: False
2025-06-13 15:36:33,511 [DEBUG][       Thread-259649][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 15:36:33,511 [DEBUG][       Thread-259649][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 15:36:33,511 [DEBUG][       Thread-259649][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 15:36:33,511 [DEBUG][       Thread-259649][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 15:36:33,511 [DEBUG][       Thread-259649][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 15:36:33,511 [DEBUG][       Thread-259649][   transport.py][1871] : Compression: none
2025-06-13 15:36:33,511 [DEBUG][       Thread-259649][   transport.py][1871] : === End of kex handshake ===
2025-06-13 15:36:33,526 [DEBUG][       Thread-259649][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 15:36:33,526 [DEBUG][       Thread-259649][   transport.py][1871] : Switch to new keys ...
2025-06-13 15:36:33,526 [DEBUG][       Thread-259649][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 15:36:33,526 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 15:36:33,526 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 15:36:33,527 [DEBUG][       Thread-259649][   transport.py][1871] : userauth is OK
2025-06-13 15:36:33,539 [ INFO][       Thread-259649][   transport.py][1871] : Authentication (password) successful!
2025-06-13 15:36:33,540 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 15:36:34,146 [DEBUG][       Thread-259649][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 15:36:34,146 [DEBUG][       Thread-259649][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 15:36:34,189 [DEBUG][       Thread-259649][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 15:36:34,189 [DEBUG][       Thread-259649][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 15:36:34,192 [DEBUG][       Thread-259649][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 15:36:34,205 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 15:36:34,205 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 15:36:34,208 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 15:36:34,210 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 15:36:34,216 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 15:36:34,218 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 15:36:34,218 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 15:36:34,219 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 15:36:34,219 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.566949 -999.00  +13.60  25.19     32   -2.50 1 1 1 1 1   887    0 17.03 32.56 ----- 26.0 25.2 45.6 33.1 17.0 -32.2 16.0 -34.1 16.8 -32.6 18.0 -30.1
2025-06-13 15:36:34,219 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 15:36:34,219 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 15:36:34,219 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.566949
2025-06-13 15:36:34,220 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 15:36:34,220 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 15:36:34,221 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 15:36:34,221 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 15:36:34,221 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 15:36:34,221 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T15:36:24', tmtdew=18.51, humidity=27.44, cloud=0.0, wind=19.25, temperature=13.88, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T13:36:24.394', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 15:36:34,221 [DEBUG][       Thread-259649][   transport.py][1871] : EOF in transport thread
2025-06-13 15:36:34,304 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 15:36:34,316 [DEBUG][       Thread-259652][   transport.py][1871] : starting thread (client mode): 0x863ef190
2025-06-13 15:36:34,316 [DEBUG][       Thread-259652][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 15:36:34,333 [DEBUG][       Thread-259652][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 15:36:34,333 [ INFO][       Thread-259652][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 15:36:34,340 [DEBUG][       Thread-259652][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 15:36:34,341 [DEBUG][       Thread-259652][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 15:36:34,341 [DEBUG][       Thread-259652][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 15:36:34,341 [DEBUG][       Thread-259652][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:36:34,341 [DEBUG][       Thread-259652][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:36:34,341 [DEBUG][       Thread-259652][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:36:34,341 [DEBUG][       Thread-259652][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:36:34,341 [DEBUG][       Thread-259652][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 15:36:34,341 [DEBUG][       Thread-259652][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 15:36:34,341 [DEBUG][       Thread-259652][   transport.py][1871] : client lang: <none>
2025-06-13 15:36:34,341 [DEBUG][       Thread-259652][   transport.py][1871] : server lang: <none>
2025-06-13 15:36:34,341 [DEBUG][       Thread-259652][   transport.py][1871] : kex follows: False
2025-06-13 15:36:34,341 [DEBUG][       Thread-259652][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 15:36:34,341 [DEBUG][       Thread-259652][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 15:36:34,341 [DEBUG][       Thread-259652][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 15:36:34,341 [DEBUG][       Thread-259652][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 15:36:34,341 [DEBUG][       Thread-259652][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 15:36:34,341 [DEBUG][       Thread-259652][   transport.py][1871] : Compression: none
2025-06-13 15:36:34,341 [DEBUG][       Thread-259652][   transport.py][1871] : === End of kex handshake ===
2025-06-13 15:36:34,405 [DEBUG][       Thread-259652][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 15:36:34,406 [DEBUG][       Thread-259652][   transport.py][1871] : Switch to new keys ...
2025-06-13 15:36:34,406 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 15:36:34,407 [DEBUG][       Thread-259652][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 15:36:34,408 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 15:36:34,460 [DEBUG][       Thread-259652][   transport.py][1871] : userauth is OK
2025-06-13 15:36:34,461 [DEBUG][       Thread-259652][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 15:36:34,461 [DEBUG][       Thread-259652][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 15:36:34,461 [DEBUG][       Thread-259652][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 15:36:34,461 [DEBUG][       Thread-259652][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 15:36:34,480 [ INFO][       Thread-259652][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 15:36:34,480 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 15:36:34,481 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 15:36:35,483 [DEBUG][       Thread-259652][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 15:36:35,484 [DEBUG][       Thread-259652][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 15:36:35,532 [DEBUG][       Thread-259652][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 15:36:35,532 [DEBUG][       Thread-259652][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 15:36:35,542 [DEBUG][       Thread-259652][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 15:36:35,551 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 15:36:35,551 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 15:36:35,560 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 15:36:35,569 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 15:36:35,569 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 15:36:35,570 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 15:36:35,578 [DEBUG][       Thread-259652][   transport.py][1871] : EOF in transport thread
2025-06-13 15:36:40,976 [DEBUG][Thread-259654 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:36:45,580 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 15:36:45,580 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 15:36:45,581 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 15:36:45,583 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 15:36:46,053 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 15, 36, 24), 18.51, 27.44, 0.0, 19.25, 13.88, 0, 0, 0, 2, 0, 0),)
2025-06-13 15:36:46,053 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 15:36:24
2025-06-13 15:36:46,135 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 15:36:46,139 [DEBUG][       Thread-259655][   transport.py][1871] : starting thread (client mode): 0x863cb7f0
2025-06-13 15:36:46,139 [DEBUG][       Thread-259655][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 15:36:46,161 [DEBUG][       Thread-259655][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 15:36:46,162 [ INFO][       Thread-259655][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 15:36:46,165 [DEBUG][       Thread-259655][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 15:36:46,165 [DEBUG][       Thread-259655][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 15:36:46,165 [DEBUG][       Thread-259655][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 15:36:46,165 [DEBUG][       Thread-259655][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:36:46,165 [DEBUG][       Thread-259655][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:36:46,165 [DEBUG][       Thread-259655][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:36:46,165 [DEBUG][       Thread-259655][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:36:46,165 [DEBUG][       Thread-259655][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 15:36:46,165 [DEBUG][       Thread-259655][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 15:36:46,165 [DEBUG][       Thread-259655][   transport.py][1871] : client lang: <none>
2025-06-13 15:36:46,165 [DEBUG][       Thread-259655][   transport.py][1871] : server lang: <none>
2025-06-13 15:36:46,165 [DEBUG][       Thread-259655][   transport.py][1871] : kex follows: False
2025-06-13 15:36:46,165 [DEBUG][       Thread-259655][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 15:36:46,165 [DEBUG][       Thread-259655][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 15:36:46,165 [DEBUG][       Thread-259655][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 15:36:46,165 [DEBUG][       Thread-259655][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 15:36:46,165 [DEBUG][       Thread-259655][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 15:36:46,165 [DEBUG][       Thread-259655][   transport.py][1871] : Compression: none
2025-06-13 15:36:46,165 [DEBUG][       Thread-259655][   transport.py][1871] : === End of kex handshake ===
2025-06-13 15:36:46,184 [DEBUG][       Thread-259655][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 15:36:46,185 [DEBUG][       Thread-259655][   transport.py][1871] : Switch to new keys ...
2025-06-13 15:36:46,185 [DEBUG][       Thread-259655][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 15:36:46,186 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 15:36:46,186 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 15:36:46,187 [DEBUG][       Thread-259655][   transport.py][1871] : userauth is OK
2025-06-13 15:36:46,211 [ INFO][       Thread-259655][   transport.py][1871] : Authentication (password) successful!
2025-06-13 15:36:46,212 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 15:36:46,870 [DEBUG][       Thread-259655][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 15:36:46,870 [DEBUG][       Thread-259655][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 15:36:46,913 [DEBUG][       Thread-259655][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 15:36:46,913 [DEBUG][       Thread-259655][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 15:36:46,917 [DEBUG][       Thread-259655][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 15:36:46,930 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 15:36:46,930 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 15:36:46,932 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 15:36:46,934 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 15:36:46,939 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 15:36:46,940 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 15:36:46,940 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 15:36:46,941 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 15:36:46,941 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.566949 -999.00  +13.60  25.19     32   -2.50 1 1 1 1 1   887    0 17.03 32.56 ----- 26.0 25.2 45.6 33.1 17.0 -32.2 16.0 -34.1 16.8 -32.6 18.0 -30.1
2025-06-13 15:36:46,941 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 15:36:46,941 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 15:36:46,941 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.566949
2025-06-13 15:36:46,942 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 15:36:46,942 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 15:36:46,942 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 15:36:46,943 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 15:36:46,943 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 15:36:46,943 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T15:36:24', tmtdew=18.51, humidity=27.44, cloud=0.0, wind=19.25, temperature=13.88, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T13:36:24.394', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 15:36:46,943 [DEBUG][       Thread-259655][   transport.py][1871] : EOF in transport thread
2025-06-13 15:36:47,015 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 15:36:47,024 [DEBUG][       Thread-259658][   transport.py][1871] : starting thread (client mode): 0xc5988130
2025-06-13 15:36:47,024 [DEBUG][       Thread-259658][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 15:36:47,039 [DEBUG][       Thread-259658][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 15:36:47,039 [ INFO][       Thread-259658][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 15:36:47,047 [DEBUG][       Thread-259658][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 15:36:47,047 [DEBUG][       Thread-259658][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 15:36:47,047 [DEBUG][       Thread-259658][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 15:36:47,047 [DEBUG][       Thread-259658][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:36:47,047 [DEBUG][       Thread-259658][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:36:47,047 [DEBUG][       Thread-259658][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:36:47,047 [DEBUG][       Thread-259658][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:36:47,047 [DEBUG][       Thread-259658][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 15:36:47,047 [DEBUG][       Thread-259658][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 15:36:47,047 [DEBUG][       Thread-259658][   transport.py][1871] : client lang: <none>
2025-06-13 15:36:47,047 [DEBUG][       Thread-259658][   transport.py][1871] : server lang: <none>
2025-06-13 15:36:47,047 [DEBUG][       Thread-259658][   transport.py][1871] : kex follows: False
2025-06-13 15:36:47,047 [DEBUG][       Thread-259658][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 15:36:47,047 [DEBUG][       Thread-259658][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 15:36:47,047 [DEBUG][       Thread-259658][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 15:36:47,047 [DEBUG][       Thread-259658][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 15:36:47,047 [DEBUG][       Thread-259658][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 15:36:47,047 [DEBUG][       Thread-259658][   transport.py][1871] : Compression: none
2025-06-13 15:36:47,047 [DEBUG][       Thread-259658][   transport.py][1871] : === End of kex handshake ===
2025-06-13 15:36:47,107 [DEBUG][       Thread-259658][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 15:36:47,107 [DEBUG][       Thread-259658][   transport.py][1871] : Switch to new keys ...
2025-06-13 15:36:47,107 [DEBUG][       Thread-259658][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 15:36:47,107 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 15:36:47,107 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 15:36:47,168 [DEBUG][       Thread-259658][   transport.py][1871] : userauth is OK
2025-06-13 15:36:47,169 [DEBUG][       Thread-259658][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 15:36:47,169 [DEBUG][       Thread-259658][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 15:36:47,169 [DEBUG][       Thread-259658][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 15:36:47,169 [DEBUG][       Thread-259658][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 15:36:47,187 [ INFO][       Thread-259658][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 15:36:47,188 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 15:36:47,188 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 15:36:48,187 [DEBUG][       Thread-259658][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 15:36:48,187 [DEBUG][       Thread-259658][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 15:36:48,236 [DEBUG][       Thread-259658][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 15:36:48,236 [DEBUG][       Thread-259658][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 15:36:48,245 [DEBUG][       Thread-259658][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 15:36:48,254 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 15:36:48,254 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 15:36:48,262 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 15:36:48,271 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 15:36:48,272 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 15:36:48,272 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 15:36:48,280 [DEBUG][       Thread-259658][   transport.py][1871] : EOF in transport thread
2025-06-13 15:36:50,014 [DEBUG][Thread-259660 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:36:57,800 [DEBUG][Thread-259661 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:36:58,282 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 15:36:58,283 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 15:36:58,283 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 15:36:58,285 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 15:36:58,752 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 15, 36, 56), 18.48, 27.5, 0.0, 20.12, 13.87, 0, 0, 0, 2, 0, 0),)
2025-06-13 15:36:58,752 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 15:36:56
2025-06-13 15:36:58,840 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 15:36:58,844 [DEBUG][       Thread-259662][   transport.py][1871] : starting thread (client mode): 0x863ca830
2025-06-13 15:36:58,844 [DEBUG][       Thread-259662][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 15:36:58,857 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:36:58,858 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:36:58,864 [DEBUG][       Thread-259662][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 15:36:58,864 [ INFO][       Thread-259662][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 15:36:58,867 [DEBUG][       Thread-259662][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 15:36:58,867 [DEBUG][       Thread-259662][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 15:36:58,867 [DEBUG][       Thread-259662][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 15:36:58,867 [DEBUG][       Thread-259662][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:36:58,867 [DEBUG][       Thread-259662][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:36:58,867 [DEBUG][       Thread-259662][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:36:58,867 [DEBUG][       Thread-259662][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:36:58,867 [DEBUG][       Thread-259662][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 15:36:58,867 [DEBUG][       Thread-259662][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 15:36:58,867 [DEBUG][       Thread-259662][   transport.py][1871] : client lang: <none>
2025-06-13 15:36:58,867 [DEBUG][       Thread-259662][   transport.py][1871] : server lang: <none>
2025-06-13 15:36:58,867 [DEBUG][       Thread-259662][   transport.py][1871] : kex follows: False
2025-06-13 15:36:58,867 [DEBUG][       Thread-259662][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 15:36:58,867 [DEBUG][       Thread-259662][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 15:36:58,867 [DEBUG][       Thread-259662][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 15:36:58,867 [DEBUG][       Thread-259662][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 15:36:58,867 [DEBUG][       Thread-259662][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 15:36:58,867 [DEBUG][       Thread-259662][   transport.py][1871] : Compression: none
2025-06-13 15:36:58,867 [DEBUG][       Thread-259662][   transport.py][1871] : === End of kex handshake ===
2025-06-13 15:36:58,882 [DEBUG][       Thread-259662][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 15:36:58,882 [DEBUG][       Thread-259662][   transport.py][1871] : Switch to new keys ...
2025-06-13 15:36:58,883 [DEBUG][       Thread-259662][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 15:36:58,883 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 15:36:58,883 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 15:36:58,884 [DEBUG][       Thread-259662][   transport.py][1871] : userauth is OK
2025-06-13 15:36:58,908 [ INFO][       Thread-259662][   transport.py][1871] : Authentication (password) successful!
2025-06-13 15:36:58,909 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 15:36:59,036 [DEBUG][Thread-259664 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:36:59,539 [DEBUG][       Thread-259662][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 15:36:59,539 [DEBUG][       Thread-259662][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 15:36:59,581 [DEBUG][       Thread-259662][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 15:36:59,581 [DEBUG][       Thread-259662][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 15:36:59,584 [DEBUG][       Thread-259662][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 15:36:59,596 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 15:36:59,596 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 15:36:59,598 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 15:36:59,600 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 15:36:59,606 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 15:36:59,608 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 15:36:59,608 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 15:36:59,609 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 15:36:59,609 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.566949 -999.00  +13.60  25.19     32   -2.50 1 1 1 1 1   887    0 17.03 32.56 ----- 26.0 25.2 45.6 33.1 17.0 -32.2 16.0 -34.1 16.8 -32.6 18.0 -30.1
2025-06-13 15:36:59,609 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 15:36:59,609 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 15:36:59,609 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.566949
2025-06-13 15:36:59,610 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 15:36:59,610 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 15:36:59,610 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 15:36:59,610 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 15:36:59,610 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 15:36:59,611 [DEBUG][       Thread-259662][   transport.py][1871] : EOF in transport thread
2025-06-13 15:36:59,611 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T15:36:56', tmtdew=18.48, humidity=27.5, cloud=0.0, wind=20.12, temperature=13.87, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T13:36:24.394', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 15:36:59,694 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 15:36:59,707 [DEBUG][       Thread-259666][   transport.py][1871] : starting thread (client mode): 0x868c85e0
2025-06-13 15:36:59,707 [DEBUG][       Thread-259666][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 15:36:59,725 [DEBUG][       Thread-259666][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 15:36:59,725 [ INFO][       Thread-259666][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 15:36:59,733 [DEBUG][       Thread-259666][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 15:36:59,733 [DEBUG][       Thread-259666][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 15:36:59,733 [DEBUG][       Thread-259666][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 15:36:59,733 [DEBUG][       Thread-259666][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:36:59,733 [DEBUG][       Thread-259666][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:36:59,733 [DEBUG][       Thread-259666][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:36:59,734 [DEBUG][       Thread-259666][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:36:59,734 [DEBUG][       Thread-259666][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 15:36:59,734 [DEBUG][       Thread-259666][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 15:36:59,734 [DEBUG][       Thread-259666][   transport.py][1871] : client lang: <none>
2025-06-13 15:36:59,734 [DEBUG][       Thread-259666][   transport.py][1871] : server lang: <none>
2025-06-13 15:36:59,734 [DEBUG][       Thread-259666][   transport.py][1871] : kex follows: False
2025-06-13 15:36:59,734 [DEBUG][       Thread-259666][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 15:36:59,734 [DEBUG][       Thread-259666][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 15:36:59,734 [DEBUG][       Thread-259666][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 15:36:59,734 [DEBUG][       Thread-259666][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 15:36:59,734 [DEBUG][       Thread-259666][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 15:36:59,734 [DEBUG][       Thread-259666][   transport.py][1871] : Compression: none
2025-06-13 15:36:59,734 [DEBUG][       Thread-259666][   transport.py][1871] : === End of kex handshake ===
2025-06-13 15:36:59,793 [DEBUG][       Thread-259666][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 15:36:59,794 [DEBUG][       Thread-259666][   transport.py][1871] : Switch to new keys ...
2025-06-13 15:36:59,794 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 15:36:59,795 [DEBUG][       Thread-259666][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 15:36:59,796 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 15:36:59,849 [DEBUG][       Thread-259666][   transport.py][1871] : userauth is OK
2025-06-13 15:36:59,849 [DEBUG][       Thread-259666][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 15:36:59,849 [DEBUG][       Thread-259666][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 15:36:59,849 [DEBUG][       Thread-259666][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 15:36:59,849 [DEBUG][       Thread-259666][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 15:36:59,868 [ INFO][       Thread-259666][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 15:36:59,868 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 15:36:59,868 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 15:37:00,861 [DEBUG][       Thread-259666][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 15:37:00,862 [DEBUG][       Thread-259666][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 15:37:00,912 [DEBUG][       Thread-259666][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 15:37:00,912 [DEBUG][       Thread-259666][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 15:37:00,921 [DEBUG][       Thread-259666][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 15:37:00,930 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 15:37:00,931 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 15:37:00,940 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 15:37:00,949 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 15:37:00,949 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 15:37:00,949 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 15:37:00,957 [DEBUG][       Thread-259666][   transport.py][1871] : EOF in transport thread
2025-06-13 15:37:08,056 [DEBUG][Thread-259668 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:37:10,577 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:37:10,577 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:37:10,956 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 15:37:10,956 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 15:37:10,956 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 15:37:10,957 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 15:37:11,434 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 15, 36, 56), 18.48, 27.5, 0.0, 20.12, 13.87, 0, 0, 0, 2, 0, 0),)
2025-06-13 15:37:11,434 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 15:36:56
2025-06-13 15:37:11,519 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 15:37:11,525 [DEBUG][       Thread-259669][   transport.py][1871] : starting thread (client mode): 0x867b5cf0
2025-06-13 15:37:11,526 [DEBUG][       Thread-259669][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 15:37:11,547 [DEBUG][       Thread-259669][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 15:37:11,547 [ INFO][       Thread-259669][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 15:37:11,550 [DEBUG][       Thread-259669][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 15:37:11,550 [DEBUG][       Thread-259669][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 15:37:11,550 [DEBUG][       Thread-259669][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 15:37:11,550 [DEBUG][       Thread-259669][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:37:11,550 [DEBUG][       Thread-259669][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:37:11,550 [DEBUG][       Thread-259669][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:37:11,550 [DEBUG][       Thread-259669][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:37:11,550 [DEBUG][       Thread-259669][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 15:37:11,550 [DEBUG][       Thread-259669][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 15:37:11,550 [DEBUG][       Thread-259669][   transport.py][1871] : client lang: <none>
2025-06-13 15:37:11,550 [DEBUG][       Thread-259669][   transport.py][1871] : server lang: <none>
2025-06-13 15:37:11,550 [DEBUG][       Thread-259669][   transport.py][1871] : kex follows: False
2025-06-13 15:37:11,550 [DEBUG][       Thread-259669][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 15:37:11,550 [DEBUG][       Thread-259669][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 15:37:11,550 [DEBUG][       Thread-259669][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 15:37:11,550 [DEBUG][       Thread-259669][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 15:37:11,550 [DEBUG][       Thread-259669][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 15:37:11,550 [DEBUG][       Thread-259669][   transport.py][1871] : Compression: none
2025-06-13 15:37:11,550 [DEBUG][       Thread-259669][   transport.py][1871] : === End of kex handshake ===
2025-06-13 15:37:11,567 [DEBUG][       Thread-259669][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 15:37:11,568 [DEBUG][       Thread-259669][   transport.py][1871] : Switch to new keys ...
2025-06-13 15:37:11,568 [DEBUG][       Thread-259669][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 15:37:11,568 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 15:37:11,568 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 15:37:11,568 [DEBUG][       Thread-259669][   transport.py][1871] : userauth is OK
2025-06-13 15:37:11,593 [ INFO][       Thread-259669][   transport.py][1871] : Authentication (password) successful!
2025-06-13 15:37:11,593 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 15:37:12,253 [DEBUG][       Thread-259669][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 15:37:12,254 [DEBUG][       Thread-259669][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 15:37:12,297 [DEBUG][       Thread-259669][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 15:37:12,297 [DEBUG][       Thread-259669][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 15:37:12,300 [DEBUG][       Thread-259669][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 15:37:12,312 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 15:37:12,313 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 15:37:12,315 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 15:37:12,317 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 15:37:12,322 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 15:37:12,325 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 15:37:12,325 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 15:37:12,325 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 15:37:12,326 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.567297 -999.00  +13.60  23.82     32   -2.50 1 1 1 1 1   887    0 16.82 30.62 ----- 23.0 23.8 41.6 27.3 17.0 -32.4 16.0 -33.5 16.8 -31.6 18.0 -30.1
2025-06-13 15:37:12,326 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 15:37:12,326 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 15:37:12,326 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.567297
2025-06-13 15:37:12,326 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 15:37:12,327 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 15:37:12,327 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 15:37:12,327 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 15:37:12,327 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 15:37:12,327 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T15:36:56', tmtdew=18.48, humidity=27.5, cloud=0.0, wind=20.12, temperature=13.87, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T13:36:54.461', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 15:37:12,327 [DEBUG][       Thread-259669][   transport.py][1871] : EOF in transport thread
2025-06-13 15:37:12,405 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 15:37:12,416 [DEBUG][       Thread-259672][   transport.py][1871] : starting thread (client mode): 0x86351270
2025-06-13 15:37:12,416 [DEBUG][       Thread-259672][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 15:37:12,431 [DEBUG][       Thread-259672][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 15:37:12,431 [ INFO][       Thread-259672][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 15:37:12,443 [DEBUG][       Thread-259672][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 15:37:12,443 [DEBUG][       Thread-259672][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 15:37:12,444 [DEBUG][       Thread-259672][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 15:37:12,444 [DEBUG][       Thread-259672][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:37:12,444 [DEBUG][       Thread-259672][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:37:12,444 [DEBUG][       Thread-259672][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:37:12,444 [DEBUG][       Thread-259672][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:37:12,444 [DEBUG][       Thread-259672][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 15:37:12,444 [DEBUG][       Thread-259672][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 15:37:12,444 [DEBUG][       Thread-259672][   transport.py][1871] : client lang: <none>
2025-06-13 15:37:12,444 [DEBUG][       Thread-259672][   transport.py][1871] : server lang: <none>
2025-06-13 15:37:12,444 [DEBUG][       Thread-259672][   transport.py][1871] : kex follows: False
2025-06-13 15:37:12,444 [DEBUG][       Thread-259672][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 15:37:12,444 [DEBUG][       Thread-259672][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 15:37:12,444 [DEBUG][       Thread-259672][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 15:37:12,444 [DEBUG][       Thread-259672][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 15:37:12,444 [DEBUG][       Thread-259672][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 15:37:12,445 [DEBUG][       Thread-259672][   transport.py][1871] : Compression: none
2025-06-13 15:37:12,445 [DEBUG][       Thread-259672][   transport.py][1871] : === End of kex handshake ===
2025-06-13 15:37:12,501 [DEBUG][       Thread-259672][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 15:37:12,501 [DEBUG][       Thread-259672][   transport.py][1871] : Switch to new keys ...
2025-06-13 15:37:12,502 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 15:37:12,502 [DEBUG][       Thread-259672][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 15:37:12,503 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 15:37:12,557 [DEBUG][       Thread-259672][   transport.py][1871] : userauth is OK
2025-06-13 15:37:12,557 [DEBUG][       Thread-259672][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 15:37:12,557 [DEBUG][       Thread-259672][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 15:37:12,557 [DEBUG][       Thread-259672][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 15:37:12,557 [DEBUG][       Thread-259672][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 15:37:12,579 [ INFO][       Thread-259672][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 15:37:12,580 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 15:37:12,580 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 15:37:13,577 [DEBUG][       Thread-259672][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 15:37:13,577 [DEBUG][       Thread-259672][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 15:37:13,628 [DEBUG][       Thread-259672][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 15:37:13,628 [DEBUG][       Thread-259672][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 15:37:13,637 [DEBUG][       Thread-259672][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 15:37:13,647 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 15:37:13,647 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 15:37:13,656 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 15:37:13,665 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 15:37:13,665 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 15:37:13,666 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 15:37:13,674 [DEBUG][       Thread-259672][   transport.py][1871] : EOF in transport thread
2025-06-13 15:37:17,082 [DEBUG][Thread-259674 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:37:21,587 [DEBUG][Thread-259675 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:37:23,676 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 15:37:23,676 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 15:37:23,677 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 15:37:23,679 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 15:37:24,147 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 15, 36, 56), 18.48, 27.5, 0.0, 20.12, 13.87, 0, 0, 0, 2, 0, 0),)
2025-06-13 15:37:24,147 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 15:36:56
2025-06-13 15:37:24,229 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 15:37:24,233 [DEBUG][       Thread-259676][   transport.py][1871] : starting thread (client mode): 0x86351630
2025-06-13 15:37:24,233 [DEBUG][       Thread-259676][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 15:37:24,253 [DEBUG][       Thread-259676][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 15:37:24,253 [ INFO][       Thread-259676][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 15:37:24,256 [DEBUG][       Thread-259676][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 15:37:24,256 [DEBUG][       Thread-259676][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 15:37:24,256 [DEBUG][       Thread-259676][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 15:37:24,256 [DEBUG][       Thread-259676][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:37:24,256 [DEBUG][       Thread-259676][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:37:24,256 [DEBUG][       Thread-259676][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:37:24,256 [DEBUG][       Thread-259676][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:37:24,256 [DEBUG][       Thread-259676][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 15:37:24,256 [DEBUG][       Thread-259676][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 15:37:24,257 [DEBUG][       Thread-259676][   transport.py][1871] : client lang: <none>
2025-06-13 15:37:24,257 [DEBUG][       Thread-259676][   transport.py][1871] : server lang: <none>
2025-06-13 15:37:24,257 [DEBUG][       Thread-259676][   transport.py][1871] : kex follows: False
2025-06-13 15:37:24,257 [DEBUG][       Thread-259676][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 15:37:24,257 [DEBUG][       Thread-259676][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 15:37:24,257 [DEBUG][       Thread-259676][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 15:37:24,257 [DEBUG][       Thread-259676][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 15:37:24,257 [DEBUG][       Thread-259676][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 15:37:24,257 [DEBUG][       Thread-259676][   transport.py][1871] : Compression: none
2025-06-13 15:37:24,257 [DEBUG][       Thread-259676][   transport.py][1871] : === End of kex handshake ===
2025-06-13 15:37:24,275 [DEBUG][       Thread-259676][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 15:37:24,276 [DEBUG][       Thread-259676][   transport.py][1871] : Switch to new keys ...
2025-06-13 15:37:24,276 [DEBUG][       Thread-259676][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 15:37:24,276 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 15:37:24,277 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 15:37:24,277 [DEBUG][       Thread-259676][   transport.py][1871] : userauth is OK
2025-06-13 15:37:24,302 [ INFO][       Thread-259676][   transport.py][1871] : Authentication (password) successful!
2025-06-13 15:37:24,303 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 15:37:24,946 [DEBUG][       Thread-259676][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 15:37:24,946 [DEBUG][       Thread-259676][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 15:37:24,989 [DEBUG][       Thread-259676][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 15:37:24,989 [DEBUG][       Thread-259676][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 15:37:24,992 [DEBUG][       Thread-259676][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 15:37:25,004 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 15:37:25,005 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 15:37:25,007 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 15:37:25,009 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 15:37:25,015 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 15:37:25,017 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 15:37:25,017 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 15:37:25,018 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 15:37:25,018 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.567297 -999.00  +13.60  23.82     32   -2.50 1 1 1 1 1   887    0 16.82 30.62 ----- 23.0 23.8 41.6 27.3 17.0 -32.4 16.0 -33.5 16.8 -31.6 18.0 -30.1
2025-06-13 15:37:25,018 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 15:37:25,018 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 15:37:25,018 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.567297
2025-06-13 15:37:25,018 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 15:37:25,019 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 15:37:25,019 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 15:37:25,019 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 15:37:25,019 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 15:37:25,019 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T15:36:56', tmtdew=18.48, humidity=27.5, cloud=0.0, wind=20.12, temperature=13.87, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T13:36:54.461', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 15:37:25,021 [DEBUG][       Thread-259676][   transport.py][1871] : EOF in transport thread
2025-06-13 15:37:25,103 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 15:37:25,112 [DEBUG][       Thread-259679][   transport.py][1871] : starting thread (client mode): 0x863ee890
2025-06-13 15:37:25,112 [DEBUG][       Thread-259679][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 15:37:25,126 [DEBUG][       Thread-259679][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 15:37:25,126 [ INFO][       Thread-259679][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 15:37:25,134 [DEBUG][       Thread-259679][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 15:37:25,134 [DEBUG][       Thread-259679][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 15:37:25,134 [DEBUG][       Thread-259679][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 15:37:25,134 [DEBUG][       Thread-259679][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:37:25,134 [DEBUG][       Thread-259679][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:37:25,134 [DEBUG][       Thread-259679][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:37:25,134 [DEBUG][       Thread-259679][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:37:25,134 [DEBUG][       Thread-259679][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 15:37:25,134 [DEBUG][       Thread-259679][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 15:37:25,134 [DEBUG][       Thread-259679][   transport.py][1871] : client lang: <none>
2025-06-13 15:37:25,134 [DEBUG][       Thread-259679][   transport.py][1871] : server lang: <none>
2025-06-13 15:37:25,134 [DEBUG][       Thread-259679][   transport.py][1871] : kex follows: False
2025-06-13 15:37:25,134 [DEBUG][       Thread-259679][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 15:37:25,134 [DEBUG][       Thread-259679][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 15:37:25,134 [DEBUG][       Thread-259679][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 15:37:25,134 [DEBUG][       Thread-259679][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 15:37:25,135 [DEBUG][       Thread-259679][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 15:37:25,135 [DEBUG][       Thread-259679][   transport.py][1871] : Compression: none
2025-06-13 15:37:25,135 [DEBUG][       Thread-259679][   transport.py][1871] : === End of kex handshake ===
2025-06-13 15:37:25,195 [DEBUG][       Thread-259679][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 15:37:25,195 [DEBUG][       Thread-259679][   transport.py][1871] : Switch to new keys ...
2025-06-13 15:37:25,196 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 15:37:25,197 [DEBUG][       Thread-259679][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 15:37:25,197 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 15:37:25,253 [DEBUG][       Thread-259679][   transport.py][1871] : userauth is OK
2025-06-13 15:37:25,254 [DEBUG][       Thread-259679][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 15:37:25,254 [DEBUG][       Thread-259679][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 15:37:25,254 [DEBUG][       Thread-259679][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 15:37:25,254 [DEBUG][       Thread-259679][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 15:37:25,272 [ INFO][       Thread-259679][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 15:37:25,273 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 15:37:25,273 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 15:37:26,111 [DEBUG][Thread-259681 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:37:26,274 [DEBUG][       Thread-259679][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 15:37:26,275 [DEBUG][       Thread-259679][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 15:37:26,324 [DEBUG][       Thread-259679][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 15:37:26,324 [DEBUG][       Thread-259679][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 15:37:26,333 [DEBUG][       Thread-259679][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 15:37:26,342 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 15:37:26,343 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 15:37:26,351 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 15:37:26,361 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 15:37:26,361 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 15:37:26,362 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 15:37:26,370 [DEBUG][       Thread-259679][   transport.py][1871] : EOF in transport thread
2025-06-13 15:37:35,135 [DEBUG][Thread-259682 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:37:36,372 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 15:37:36,372 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 15:37:36,372 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 15:37:36,375 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 15:37:36,828 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 15, 37, 27), 18.33, 27.81, 0.0, 19.48, 13.89, 0, 0, 0, 2, 0, 0),)
2025-06-13 15:37:36,829 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 15:37:27
2025-06-13 15:37:36,908 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 15:37:36,914 [DEBUG][       Thread-259683][   transport.py][1871] : starting thread (client mode): 0x863c9b10
2025-06-13 15:37:36,914 [DEBUG][       Thread-259683][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 15:37:36,926 [DEBUG][       Thread-259683][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 15:37:36,926 [ INFO][       Thread-259683][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 15:37:36,929 [DEBUG][       Thread-259683][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 15:37:36,929 [DEBUG][       Thread-259683][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 15:37:36,929 [DEBUG][       Thread-259683][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 15:37:36,929 [DEBUG][       Thread-259683][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:37:36,929 [DEBUG][       Thread-259683][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:37:36,929 [DEBUG][       Thread-259683][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:37:36,929 [DEBUG][       Thread-259683][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:37:36,929 [DEBUG][       Thread-259683][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 15:37:36,929 [DEBUG][       Thread-259683][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 15:37:36,929 [DEBUG][       Thread-259683][   transport.py][1871] : client lang: <none>
2025-06-13 15:37:36,929 [DEBUG][       Thread-259683][   transport.py][1871] : server lang: <none>
2025-06-13 15:37:36,929 [DEBUG][       Thread-259683][   transport.py][1871] : kex follows: False
2025-06-13 15:37:36,929 [DEBUG][       Thread-259683][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 15:37:36,929 [DEBUG][       Thread-259683][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 15:37:36,929 [DEBUG][       Thread-259683][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 15:37:36,929 [DEBUG][       Thread-259683][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 15:37:36,929 [DEBUG][       Thread-259683][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 15:37:36,929 [DEBUG][       Thread-259683][   transport.py][1871] : Compression: none
2025-06-13 15:37:36,929 [DEBUG][       Thread-259683][   transport.py][1871] : === End of kex handshake ===
2025-06-13 15:37:36,937 [DEBUG][       Thread-259683][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 15:37:36,937 [DEBUG][       Thread-259683][   transport.py][1871] : Switch to new keys ...
2025-06-13 15:37:36,937 [DEBUG][       Thread-259683][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 15:37:36,937 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 15:37:36,937 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 15:37:36,938 [DEBUG][       Thread-259683][   transport.py][1871] : userauth is OK
2025-06-13 15:37:36,951 [ INFO][       Thread-259683][   transport.py][1871] : Authentication (password) successful!
2025-06-13 15:37:36,951 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 15:37:37,584 [DEBUG][       Thread-259683][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 15:37:37,584 [DEBUG][       Thread-259683][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 15:37:37,629 [DEBUG][       Thread-259683][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 15:37:37,629 [DEBUG][       Thread-259683][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 15:37:37,632 [DEBUG][       Thread-259683][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 15:37:37,645 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 15:37:37,645 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 15:37:37,647 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 15:37:37,649 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 15:37:37,655 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 15:37:37,657 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 15:37:37,657 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 15:37:37,658 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 15:37:37,658 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.567644 -999.00  +13.50  21.20     32   -2.40 1 1 1 1 1   887    0 16.77 30.05 ----- 24.6 21.2 45.4 26.2 16.9 -32.5 16.0 -33.6 16.8 -32.5 17.9 -30.2
2025-06-13 15:37:37,658 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 15:37:37,658 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 15:37:37,658 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.567644
2025-06-13 15:37:37,659 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 15:37:37,659 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 15:37:37,659 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 15:37:37,659 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 15:37:37,659 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 15:37:37,660 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T15:37:27', tmtdew=18.33, humidity=27.81, cloud=0.0, wind=19.48, temperature=13.89, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T13:37:24.442', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 15:37:37,661 [DEBUG][       Thread-259683][   transport.py][1871] : EOF in transport thread
2025-06-13 15:37:37,743 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 15:37:37,756 [DEBUG][       Thread-259686][   transport.py][1871] : starting thread (client mode): 0x863bc760
2025-06-13 15:37:37,756 [DEBUG][       Thread-259686][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 15:37:37,771 [DEBUG][       Thread-259686][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 15:37:37,771 [ INFO][       Thread-259686][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 15:37:37,783 [DEBUG][       Thread-259686][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 15:37:37,783 [DEBUG][       Thread-259686][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 15:37:37,783 [DEBUG][       Thread-259686][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 15:37:37,783 [DEBUG][       Thread-259686][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:37:37,783 [DEBUG][       Thread-259686][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:37:37,783 [DEBUG][       Thread-259686][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:37:37,783 [DEBUG][       Thread-259686][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:37:37,784 [DEBUG][       Thread-259686][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 15:37:37,784 [DEBUG][       Thread-259686][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 15:37:37,784 [DEBUG][       Thread-259686][   transport.py][1871] : client lang: <none>
2025-06-13 15:37:37,784 [DEBUG][       Thread-259686][   transport.py][1871] : server lang: <none>
2025-06-13 15:37:37,784 [DEBUG][       Thread-259686][   transport.py][1871] : kex follows: False
2025-06-13 15:37:37,784 [DEBUG][       Thread-259686][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 15:37:37,784 [DEBUG][       Thread-259686][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 15:37:37,784 [DEBUG][       Thread-259686][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 15:37:37,784 [DEBUG][       Thread-259686][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 15:37:37,784 [DEBUG][       Thread-259686][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 15:37:37,784 [DEBUG][       Thread-259686][   transport.py][1871] : Compression: none
2025-06-13 15:37:37,784 [DEBUG][       Thread-259686][   transport.py][1871] : === End of kex handshake ===
2025-06-13 15:37:37,841 [DEBUG][       Thread-259686][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 15:37:37,841 [DEBUG][       Thread-259686][   transport.py][1871] : Switch to new keys ...
2025-06-13 15:37:37,842 [DEBUG][       Thread-259686][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 15:37:37,842 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 15:37:37,843 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 15:37:37,897 [DEBUG][       Thread-259686][   transport.py][1871] : userauth is OK
2025-06-13 15:37:37,897 [DEBUG][       Thread-259686][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 15:37:37,897 [DEBUG][       Thread-259686][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 15:37:37,897 [DEBUG][       Thread-259686][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 15:37:37,897 [DEBUG][       Thread-259686][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 15:37:37,921 [ INFO][       Thread-259686][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 15:37:37,922 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 15:37:37,922 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 15:37:38,920 [DEBUG][       Thread-259686][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 15:37:38,920 [DEBUG][       Thread-259686][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 15:37:38,967 [DEBUG][       Thread-259686][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 15:37:38,967 [DEBUG][       Thread-259686][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 15:37:38,976 [DEBUG][       Thread-259686][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 15:37:38,984 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 15:37:38,984 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 15:37:38,992 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 15:37:39,000 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 15:37:39,000 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 15:37:39,000 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 15:37:39,008 [DEBUG][       Thread-259686][   transport.py][1871] : EOF in transport thread
2025-06-13 15:37:44,156 [DEBUG][Thread-259688 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:37:49,010 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 15:37:49,010 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 15:37:49,010 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 15:37:49,011 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 15:37:49,467 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 15, 37, 27), 18.33, 27.81, 0.0, 19.48, 13.89, 0, 0, 0, 2, 0, 0),)
2025-06-13 15:37:49,467 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 15:37:27
2025-06-13 15:37:49,547 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 15:37:49,551 [DEBUG][       Thread-259689][   transport.py][1871] : starting thread (client mode): 0x867fce80
2025-06-13 15:37:49,551 [DEBUG][       Thread-259689][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 15:37:49,573 [DEBUG][       Thread-259689][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 15:37:49,573 [ INFO][       Thread-259689][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 15:37:49,576 [DEBUG][       Thread-259689][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 15:37:49,576 [DEBUG][       Thread-259689][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 15:37:49,576 [DEBUG][       Thread-259689][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 15:37:49,576 [DEBUG][       Thread-259689][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:37:49,576 [DEBUG][       Thread-259689][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:37:49,576 [DEBUG][       Thread-259689][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:37:49,576 [DEBUG][       Thread-259689][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:37:49,576 [DEBUG][       Thread-259689][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 15:37:49,576 [DEBUG][       Thread-259689][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 15:37:49,576 [DEBUG][       Thread-259689][   transport.py][1871] : client lang: <none>
2025-06-13 15:37:49,576 [DEBUG][       Thread-259689][   transport.py][1871] : server lang: <none>
2025-06-13 15:37:49,576 [DEBUG][       Thread-259689][   transport.py][1871] : kex follows: False
2025-06-13 15:37:49,576 [DEBUG][       Thread-259689][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 15:37:49,576 [DEBUG][       Thread-259689][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 15:37:49,576 [DEBUG][       Thread-259689][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 15:37:49,576 [DEBUG][       Thread-259689][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 15:37:49,576 [DEBUG][       Thread-259689][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 15:37:49,576 [DEBUG][       Thread-259689][   transport.py][1871] : Compression: none
2025-06-13 15:37:49,576 [DEBUG][       Thread-259689][   transport.py][1871] : === End of kex handshake ===
2025-06-13 15:37:49,591 [DEBUG][       Thread-259689][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 15:37:49,591 [DEBUG][       Thread-259689][   transport.py][1871] : Switch to new keys ...
2025-06-13 15:37:49,591 [DEBUG][       Thread-259689][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 15:37:49,591 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 15:37:49,591 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 15:37:49,592 [DEBUG][       Thread-259689][   transport.py][1871] : userauth is OK
2025-06-13 15:37:49,605 [ INFO][       Thread-259689][   transport.py][1871] : Authentication (password) successful!
2025-06-13 15:37:49,605 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 15:37:50,272 [DEBUG][       Thread-259689][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 15:37:50,272 [DEBUG][       Thread-259689][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 15:37:50,317 [DEBUG][       Thread-259689][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 15:37:50,317 [DEBUG][       Thread-259689][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 15:37:50,320 [DEBUG][       Thread-259689][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 15:37:50,333 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 15:37:50,333 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 15:37:50,335 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 15:37:50,337 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 15:37:50,342 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 15:37:50,343 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 15:37:50,344 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 15:37:50,344 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 15:37:50,344 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.567644 -999.00  +13.50  21.20     32   -2.40 1 1 1 1 1   887    0 16.77 30.05 ----- 24.6 21.2 45.4 26.2 16.9 -32.5 16.0 -33.6 16.8 -32.5 17.9 -30.2
2025-06-13 15:37:50,344 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 15:37:50,345 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 15:37:50,345 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.567644
2025-06-13 15:37:50,345 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 15:37:50,345 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 15:37:50,346 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 15:37:50,346 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 15:37:50,346 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 15:37:50,346 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T15:37:27', tmtdew=18.33, humidity=27.81, cloud=0.0, wind=19.48, temperature=13.89, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T13:37:24.442', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 15:37:50,346 [DEBUG][       Thread-259689][   transport.py][1871] : EOF in transport thread
2025-06-13 15:37:50,431 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 15:37:50,441 [DEBUG][       Thread-259692][   transport.py][1871] : starting thread (client mode): 0x863ee890
2025-06-13 15:37:50,441 [DEBUG][       Thread-259692][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 15:37:50,456 [DEBUG][       Thread-259692][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 15:37:50,456 [ INFO][       Thread-259692][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 15:37:50,463 [DEBUG][       Thread-259692][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 15:37:50,463 [DEBUG][       Thread-259692][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 15:37:50,463 [DEBUG][       Thread-259692][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 15:37:50,463 [DEBUG][       Thread-259692][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:37:50,463 [DEBUG][       Thread-259692][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:37:50,463 [DEBUG][       Thread-259692][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:37:50,463 [DEBUG][       Thread-259692][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:37:50,463 [DEBUG][       Thread-259692][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 15:37:50,463 [DEBUG][       Thread-259692][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 15:37:50,463 [DEBUG][       Thread-259692][   transport.py][1871] : client lang: <none>
2025-06-13 15:37:50,464 [DEBUG][       Thread-259692][   transport.py][1871] : server lang: <none>
2025-06-13 15:37:50,464 [DEBUG][       Thread-259692][   transport.py][1871] : kex follows: False
2025-06-13 15:37:50,464 [DEBUG][       Thread-259692][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 15:37:50,464 [DEBUG][       Thread-259692][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 15:37:50,464 [DEBUG][       Thread-259692][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 15:37:50,464 [DEBUG][       Thread-259692][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 15:37:50,464 [DEBUG][       Thread-259692][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 15:37:50,464 [DEBUG][       Thread-259692][   transport.py][1871] : Compression: none
2025-06-13 15:37:50,464 [DEBUG][       Thread-259692][   transport.py][1871] : === End of kex handshake ===
2025-06-13 15:37:50,526 [DEBUG][       Thread-259692][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 15:37:50,527 [DEBUG][       Thread-259692][   transport.py][1871] : Switch to new keys ...
2025-06-13 15:37:50,528 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 15:37:50,528 [DEBUG][       Thread-259692][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 15:37:50,529 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 15:37:50,587 [DEBUG][       Thread-259692][   transport.py][1871] : userauth is OK
2025-06-13 15:37:50,587 [DEBUG][       Thread-259692][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 15:37:50,587 [DEBUG][       Thread-259692][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 15:37:50,587 [DEBUG][       Thread-259692][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 15:37:50,587 [DEBUG][       Thread-259692][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 15:37:50,608 [ INFO][       Thread-259692][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 15:37:50,608 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 15:37:50,609 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 15:37:51,623 [DEBUG][       Thread-259692][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 15:37:51,624 [DEBUG][       Thread-259692][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 15:37:51,672 [DEBUG][       Thread-259692][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 15:37:51,672 [DEBUG][       Thread-259692][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 15:37:51,681 [DEBUG][       Thread-259692][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 15:37:51,696 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 15:37:51,697 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 15:37:51,705 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 15:37:51,720 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 15:37:51,720 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 15:37:51,720 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 15:37:51,729 [DEBUG][       Thread-259692][   transport.py][1871] : EOF in transport thread
2025-06-13 15:37:53,190 [DEBUG][Thread-259694 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:37:58,921 [DEBUG][Thread-259695 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:38:00,000 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:38:00,000 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:38:01,731 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 15:38:01,731 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 15:38:01,731 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 15:38:01,733 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 15:38:02,204 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 15, 37, 59), 18.39, 27.7, 0.0, 21.24, 13.89, 0, 0, 0, 2, 0, 0),)
2025-06-13 15:38:02,205 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 15:37:59
2025-06-13 15:38:02,208 [DEBUG][Thread-259696 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:38:02,285 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 15:38:02,291 [DEBUG][       Thread-259697][   transport.py][1871] : starting thread (client mode): 0x863bf7f0
2025-06-13 15:38:02,291 [DEBUG][       Thread-259697][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 15:38:02,312 [DEBUG][       Thread-259697][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 15:38:02,313 [ INFO][       Thread-259697][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 15:38:02,316 [DEBUG][       Thread-259697][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 15:38:02,316 [DEBUG][       Thread-259697][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 15:38:02,316 [DEBUG][       Thread-259697][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 15:38:02,316 [DEBUG][       Thread-259697][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:38:02,316 [DEBUG][       Thread-259697][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:38:02,316 [DEBUG][       Thread-259697][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:38:02,316 [DEBUG][       Thread-259697][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:38:02,316 [DEBUG][       Thread-259697][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 15:38:02,316 [DEBUG][       Thread-259697][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 15:38:02,316 [DEBUG][       Thread-259697][   transport.py][1871] : client lang: <none>
2025-06-13 15:38:02,316 [DEBUG][       Thread-259697][   transport.py][1871] : server lang: <none>
2025-06-13 15:38:02,316 [DEBUG][       Thread-259697][   transport.py][1871] : kex follows: False
2025-06-13 15:38:02,316 [DEBUG][       Thread-259697][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 15:38:02,316 [DEBUG][       Thread-259697][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 15:38:02,317 [DEBUG][       Thread-259697][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 15:38:02,317 [DEBUG][       Thread-259697][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 15:38:02,317 [DEBUG][       Thread-259697][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 15:38:02,317 [DEBUG][       Thread-259697][   transport.py][1871] : Compression: none
2025-06-13 15:38:02,317 [DEBUG][       Thread-259697][   transport.py][1871] : === End of kex handshake ===
2025-06-13 15:38:02,333 [DEBUG][       Thread-259697][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 15:38:02,333 [DEBUG][       Thread-259697][   transport.py][1871] : Switch to new keys ...
2025-06-13 15:38:02,334 [DEBUG][       Thread-259697][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 15:38:02,334 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 15:38:02,334 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 15:38:02,335 [DEBUG][       Thread-259697][   transport.py][1871] : userauth is OK
2025-06-13 15:38:02,348 [ INFO][       Thread-259697][   transport.py][1871] : Authentication (password) successful!
2025-06-13 15:38:02,349 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 15:38:02,972 [DEBUG][       Thread-259697][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 15:38:02,972 [DEBUG][       Thread-259697][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 15:38:03,013 [DEBUG][       Thread-259697][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 15:38:03,013 [DEBUG][       Thread-259697][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 15:38:03,016 [DEBUG][       Thread-259697][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 15:38:03,028 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 15:38:03,029 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 15:38:03,030 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 15:38:03,032 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 15:38:03,039 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 15:38:03,041 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 15:38:03,041 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 15:38:03,042 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 15:38:03,042 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.567644 -999.00  +13.50  21.20     32   -2.40 1 1 1 1 1   887    0 16.77 30.05 ----- 24.6 21.2 45.4 26.2 16.9 -32.5 16.0 -33.6 16.8 -32.5 17.9 -30.2
2025-06-13 15:38:03,042 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 15:38:03,042 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 15:38:03,042 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.567644
2025-06-13 15:38:03,043 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 15:38:03,043 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 15:38:03,043 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 15:38:03,043 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 15:38:03,043 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 15:38:03,043 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T15:37:59', tmtdew=18.39, humidity=27.7, cloud=0.0, wind=21.24, temperature=13.89, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T13:37:24.442', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 15:38:03,044 [DEBUG][       Thread-259697][   transport.py][1871] : EOF in transport thread
2025-06-13 15:38:03,119 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 15:38:03,131 [DEBUG][       Thread-259700][   transport.py][1871] : starting thread (client mode): 0x867b4670
2025-06-13 15:38:03,131 [DEBUG][       Thread-259700][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 15:38:03,146 [DEBUG][       Thread-259700][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 15:38:03,146 [ INFO][       Thread-259700][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 15:38:03,154 [DEBUG][       Thread-259700][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 15:38:03,154 [DEBUG][       Thread-259700][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 15:38:03,154 [DEBUG][       Thread-259700][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 15:38:03,154 [DEBUG][       Thread-259700][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:38:03,154 [DEBUG][       Thread-259700][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:38:03,154 [DEBUG][       Thread-259700][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:38:03,154 [DEBUG][       Thread-259700][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:38:03,154 [DEBUG][       Thread-259700][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 15:38:03,154 [DEBUG][       Thread-259700][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 15:38:03,154 [DEBUG][       Thread-259700][   transport.py][1871] : client lang: <none>
2025-06-13 15:38:03,154 [DEBUG][       Thread-259700][   transport.py][1871] : server lang: <none>
2025-06-13 15:38:03,154 [DEBUG][       Thread-259700][   transport.py][1871] : kex follows: False
2025-06-13 15:38:03,154 [DEBUG][       Thread-259700][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 15:38:03,155 [DEBUG][       Thread-259700][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 15:38:03,155 [DEBUG][       Thread-259700][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 15:38:03,155 [DEBUG][       Thread-259700][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 15:38:03,155 [DEBUG][       Thread-259700][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 15:38:03,155 [DEBUG][       Thread-259700][   transport.py][1871] : Compression: none
2025-06-13 15:38:03,155 [DEBUG][       Thread-259700][   transport.py][1871] : === End of kex handshake ===
2025-06-13 15:38:03,217 [DEBUG][       Thread-259700][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 15:38:03,217 [DEBUG][       Thread-259700][   transport.py][1871] : Switch to new keys ...
2025-06-13 15:38:03,218 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 15:38:03,218 [DEBUG][       Thread-259700][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 15:38:03,219 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 15:38:03,281 [DEBUG][       Thread-259700][   transport.py][1871] : userauth is OK
2025-06-13 15:38:03,281 [DEBUG][       Thread-259700][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 15:38:03,282 [DEBUG][       Thread-259700][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 15:38:03,282 [DEBUG][       Thread-259700][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 15:38:03,282 [DEBUG][       Thread-259700][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 15:38:03,300 [ INFO][       Thread-259700][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 15:38:03,301 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 15:38:03,301 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 15:38:04,292 [DEBUG][       Thread-259700][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 15:38:04,292 [DEBUG][       Thread-259700][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 15:38:04,340 [DEBUG][       Thread-259700][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 15:38:04,340 [DEBUG][       Thread-259700][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 15:38:04,350 [DEBUG][       Thread-259700][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 15:38:04,359 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 15:38:04,359 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 15:38:04,368 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 15:38:04,377 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 15:38:04,377 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 15:38:04,378 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 15:38:04,386 [DEBUG][       Thread-259700][   transport.py][1871] : EOF in transport thread
2025-06-13 15:38:10,715 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:38:10,716 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:38:11,231 [DEBUG][Thread-259702 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:38:14,388 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 15:38:14,389 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 15:38:14,389 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 15:38:14,392 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 15:38:14,842 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 15, 37, 59), 18.39, 27.7, 0.0, 21.24, 13.89, 0, 0, 0, 2, 0, 0),)
2025-06-13 15:38:14,843 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 15:37:59
2025-06-13 15:38:14,922 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 15:38:14,929 [DEBUG][       Thread-259703][   transport.py][1871] : starting thread (client mode): 0x86393310
2025-06-13 15:38:14,929 [DEBUG][       Thread-259703][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 15:38:14,950 [DEBUG][       Thread-259703][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 15:38:14,950 [ INFO][       Thread-259703][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 15:38:14,954 [DEBUG][       Thread-259703][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 15:38:14,954 [DEBUG][       Thread-259703][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 15:38:14,954 [DEBUG][       Thread-259703][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 15:38:14,954 [DEBUG][       Thread-259703][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:38:14,954 [DEBUG][       Thread-259703][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:38:14,954 [DEBUG][       Thread-259703][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:38:14,954 [DEBUG][       Thread-259703][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:38:14,954 [DEBUG][       Thread-259703][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 15:38:14,954 [DEBUG][       Thread-259703][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 15:38:14,954 [DEBUG][       Thread-259703][   transport.py][1871] : client lang: <none>
2025-06-13 15:38:14,954 [DEBUG][       Thread-259703][   transport.py][1871] : server lang: <none>
2025-06-13 15:38:14,954 [DEBUG][       Thread-259703][   transport.py][1871] : kex follows: False
2025-06-13 15:38:14,954 [DEBUG][       Thread-259703][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 15:38:14,954 [DEBUG][       Thread-259703][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 15:38:14,954 [DEBUG][       Thread-259703][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 15:38:14,954 [DEBUG][       Thread-259703][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 15:38:14,954 [DEBUG][       Thread-259703][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 15:38:14,954 [DEBUG][       Thread-259703][   transport.py][1871] : Compression: none
2025-06-13 15:38:14,954 [DEBUG][       Thread-259703][   transport.py][1871] : === End of kex handshake ===
2025-06-13 15:38:14,968 [DEBUG][       Thread-259703][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 15:38:14,968 [DEBUG][       Thread-259703][   transport.py][1871] : Switch to new keys ...
2025-06-13 15:38:14,968 [DEBUG][       Thread-259703][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 15:38:14,968 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 15:38:14,969 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 15:38:14,969 [DEBUG][       Thread-259703][   transport.py][1871] : userauth is OK
2025-06-13 15:38:14,982 [ INFO][       Thread-259703][   transport.py][1871] : Authentication (password) successful!
2025-06-13 15:38:14,983 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 15:38:15,554 [DEBUG][       Thread-259703][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 15:38:15,554 [DEBUG][       Thread-259703][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 15:38:15,597 [DEBUG][       Thread-259703][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 15:38:15,597 [DEBUG][       Thread-259703][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 15:38:15,600 [DEBUG][       Thread-259703][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 15:38:15,612 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 15:38:15,612 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 15:38:15,614 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 15:38:15,616 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 15:38:15,622 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 15:38:15,624 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 15:38:15,624 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 15:38:15,625 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 15:38:15,625 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.567991 -999.00  +13.60  24.18     33   -2.20 1 1 1 1 1   887    0 16.94 30.45 ----- 23.3 24.2 49.4 29.1 17.0 -32.9 15.9 -33.3 16.8 -32.0 17.9 -30.0
2025-06-13 15:38:15,625 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 15:38:15,625 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 15:38:15,625 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.567991
2025-06-13 15:38:15,626 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 15:38:15,626 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 15:38:15,626 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 15:38:15,626 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 15:38:15,627 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 15:38:15,627 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T15:37:59', tmtdew=18.39, humidity=27.7, cloud=0.0, wind=21.24, temperature=13.89, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T13:37:54.422', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 15:38:15,627 [DEBUG][       Thread-259703][   transport.py][1871] : EOF in transport thread
2025-06-13 15:38:15,703 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 15:38:15,716 [DEBUG][       Thread-259706][   transport.py][1871] : starting thread (client mode): 0x86392380
2025-06-13 15:38:15,716 [DEBUG][       Thread-259706][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 15:38:15,731 [DEBUG][       Thread-259706][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 15:38:15,731 [ INFO][       Thread-259706][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 15:38:15,739 [DEBUG][       Thread-259706][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 15:38:15,739 [DEBUG][       Thread-259706][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 15:38:15,739 [DEBUG][       Thread-259706][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 15:38:15,739 [DEBUG][       Thread-259706][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:38:15,739 [DEBUG][       Thread-259706][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:38:15,739 [DEBUG][       Thread-259706][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:38:15,739 [DEBUG][       Thread-259706][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:38:15,739 [DEBUG][       Thread-259706][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 15:38:15,739 [DEBUG][       Thread-259706][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 15:38:15,739 [DEBUG][       Thread-259706][   transport.py][1871] : client lang: <none>
2025-06-13 15:38:15,739 [DEBUG][       Thread-259706][   transport.py][1871] : server lang: <none>
2025-06-13 15:38:15,739 [DEBUG][       Thread-259706][   transport.py][1871] : kex follows: False
2025-06-13 15:38:15,739 [DEBUG][       Thread-259706][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 15:38:15,740 [DEBUG][       Thread-259706][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 15:38:15,740 [DEBUG][       Thread-259706][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 15:38:15,740 [DEBUG][       Thread-259706][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 15:38:15,740 [DEBUG][       Thread-259706][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 15:38:15,740 [DEBUG][       Thread-259706][   transport.py][1871] : Compression: none
2025-06-13 15:38:15,740 [DEBUG][       Thread-259706][   transport.py][1871] : === End of kex handshake ===
2025-06-13 15:38:15,797 [DEBUG][       Thread-259706][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 15:38:15,798 [DEBUG][       Thread-259706][   transport.py][1871] : Switch to new keys ...
2025-06-13 15:38:15,798 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 15:38:15,799 [DEBUG][       Thread-259706][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 15:38:15,800 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 15:38:15,854 [DEBUG][       Thread-259706][   transport.py][1871] : userauth is OK
2025-06-13 15:38:15,855 [DEBUG][       Thread-259706][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 15:38:15,855 [DEBUG][       Thread-259706][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 15:38:15,855 [DEBUG][       Thread-259706][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 15:38:15,855 [DEBUG][       Thread-259706][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 15:38:15,873 [ INFO][       Thread-259706][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 15:38:15,873 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 15:38:15,874 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 15:38:16,862 [DEBUG][       Thread-259706][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 15:38:16,862 [DEBUG][       Thread-259706][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 15:38:16,912 [DEBUG][       Thread-259706][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 15:38:16,912 [DEBUG][       Thread-259706][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 15:38:16,921 [DEBUG][       Thread-259706][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 15:38:16,930 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 15:38:16,930 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 15:38:16,939 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 15:38:16,949 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 15:38:16,949 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 15:38:16,950 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 15:38:16,958 [DEBUG][       Thread-259706][   transport.py][1871] : EOF in transport thread
2025-06-13 15:38:20,264 [DEBUG][Thread-259708 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:38:21,627 [DEBUG][Thread-259709 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:38:26,960 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 15:38:26,960 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 15:38:26,960 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 15:38:26,961 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 15:38:27,430 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 15, 37, 59), 18.39, 27.7, 0.0, 21.24, 13.89, 0, 0, 0, 2, 0, 0),)
2025-06-13 15:38:27,430 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 15:37:59
2025-06-13 15:38:27,513 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 15:38:27,516 [DEBUG][       Thread-259710][   transport.py][1871] : starting thread (client mode): 0x863508e0
2025-06-13 15:38:27,517 [DEBUG][       Thread-259710][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 15:38:27,539 [DEBUG][       Thread-259710][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 15:38:27,539 [ INFO][       Thread-259710][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 15:38:27,542 [DEBUG][       Thread-259710][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 15:38:27,542 [DEBUG][       Thread-259710][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 15:38:27,542 [DEBUG][       Thread-259710][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 15:38:27,542 [DEBUG][       Thread-259710][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:38:27,543 [DEBUG][       Thread-259710][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:38:27,543 [DEBUG][       Thread-259710][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:38:27,543 [DEBUG][       Thread-259710][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:38:27,543 [DEBUG][       Thread-259710][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 15:38:27,543 [DEBUG][       Thread-259710][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 15:38:27,543 [DEBUG][       Thread-259710][   transport.py][1871] : client lang: <none>
2025-06-13 15:38:27,543 [DEBUG][       Thread-259710][   transport.py][1871] : server lang: <none>
2025-06-13 15:38:27,543 [DEBUG][       Thread-259710][   transport.py][1871] : kex follows: False
2025-06-13 15:38:27,543 [DEBUG][       Thread-259710][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 15:38:27,543 [DEBUG][       Thread-259710][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 15:38:27,543 [DEBUG][       Thread-259710][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 15:38:27,543 [DEBUG][       Thread-259710][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 15:38:27,543 [DEBUG][       Thread-259710][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 15:38:27,543 [DEBUG][       Thread-259710][   transport.py][1871] : Compression: none
2025-06-13 15:38:27,543 [DEBUG][       Thread-259710][   transport.py][1871] : === End of kex handshake ===
2025-06-13 15:38:27,558 [DEBUG][       Thread-259710][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 15:38:27,558 [DEBUG][       Thread-259710][   transport.py][1871] : Switch to new keys ...
2025-06-13 15:38:27,558 [DEBUG][       Thread-259710][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 15:38:27,558 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 15:38:27,558 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 15:38:27,559 [DEBUG][       Thread-259710][   transport.py][1871] : userauth is OK
2025-06-13 15:38:27,583 [ INFO][       Thread-259710][   transport.py][1871] : Authentication (password) successful!
2025-06-13 15:38:27,583 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 15:38:28,242 [DEBUG][       Thread-259710][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 15:38:28,242 [DEBUG][       Thread-259710][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 15:38:28,284 [DEBUG][       Thread-259710][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 15:38:28,284 [DEBUG][       Thread-259710][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 15:38:28,287 [DEBUG][       Thread-259710][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 15:38:28,299 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 15:38:28,299 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 15:38:28,300 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 15:38:28,302 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 15:38:28,305 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 15:38:28,306 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 15:38:28,306 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 15:38:28,307 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 15:38:28,307 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.567991 -999.00  +13.60  24.18     33   -2.20 1 1 1 1 1   887    0 16.94 30.45 ----- 23.3 24.2 49.4 29.1 17.0 -32.9 15.9 -33.3 16.8 -32.0 17.9 -30.0
2025-06-13 15:38:28,307 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 15:38:28,307 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 15:38:28,307 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.567991
2025-06-13 15:38:28,307 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 15:38:28,307 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 15:38:28,307 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 15:38:28,307 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 15:38:28,307 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 15:38:28,307 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T15:37:59', tmtdew=18.39, humidity=27.7, cloud=0.0, wind=21.24, temperature=13.89, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T13:37:54.422', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 15:38:28,308 [DEBUG][       Thread-259710][   transport.py][1871] : EOF in transport thread
2025-06-13 15:38:28,381 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 15:38:28,390 [DEBUG][       Thread-259713][   transport.py][1871] : starting thread (client mode): 0x863beda0
2025-06-13 15:38:28,390 [DEBUG][       Thread-259713][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 15:38:28,405 [DEBUG][       Thread-259713][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 15:38:28,405 [ INFO][       Thread-259713][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 15:38:28,413 [DEBUG][       Thread-259713][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 15:38:28,413 [DEBUG][       Thread-259713][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 15:38:28,413 [DEBUG][       Thread-259713][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 15:38:28,413 [DEBUG][       Thread-259713][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:38:28,413 [DEBUG][       Thread-259713][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:38:28,413 [DEBUG][       Thread-259713][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:38:28,413 [DEBUG][       Thread-259713][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:38:28,413 [DEBUG][       Thread-259713][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 15:38:28,413 [DEBUG][       Thread-259713][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 15:38:28,413 [DEBUG][       Thread-259713][   transport.py][1871] : client lang: <none>
2025-06-13 15:38:28,413 [DEBUG][       Thread-259713][   transport.py][1871] : server lang: <none>
2025-06-13 15:38:28,413 [DEBUG][       Thread-259713][   transport.py][1871] : kex follows: False
2025-06-13 15:38:28,413 [DEBUG][       Thread-259713][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 15:38:28,413 [DEBUG][       Thread-259713][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 15:38:28,413 [DEBUG][       Thread-259713][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 15:38:28,413 [DEBUG][       Thread-259713][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 15:38:28,413 [DEBUG][       Thread-259713][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 15:38:28,413 [DEBUG][       Thread-259713][   transport.py][1871] : Compression: none
2025-06-13 15:38:28,413 [DEBUG][       Thread-259713][   transport.py][1871] : === End of kex handshake ===
2025-06-13 15:38:28,471 [DEBUG][       Thread-259713][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 15:38:28,471 [DEBUG][       Thread-259713][   transport.py][1871] : Switch to new keys ...
2025-06-13 15:38:28,471 [DEBUG][       Thread-259713][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 15:38:28,471 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 15:38:28,471 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 15:38:28,530 [DEBUG][       Thread-259713][   transport.py][1871] : userauth is OK
2025-06-13 15:38:28,530 [DEBUG][       Thread-259713][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 15:38:28,530 [DEBUG][       Thread-259713][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 15:38:28,530 [DEBUG][       Thread-259713][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 15:38:28,530 [DEBUG][       Thread-259713][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 15:38:28,546 [ INFO][       Thread-259713][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 15:38:28,546 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 15:38:28,547 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 15:38:29,283 [DEBUG][Thread-259715 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:38:29,571 [DEBUG][       Thread-259713][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 15:38:29,571 [DEBUG][       Thread-259713][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 15:38:29,620 [DEBUG][       Thread-259713][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 15:38:29,620 [DEBUG][       Thread-259713][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 15:38:29,630 [DEBUG][       Thread-259713][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 15:38:29,638 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 15:38:29,639 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 15:38:29,648 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 15:38:29,657 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 15:38:29,657 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 15:38:29,658 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 15:38:29,666 [DEBUG][       Thread-259713][   transport.py][1871] : EOF in transport thread
2025-06-13 15:38:38,305 [DEBUG][Thread-259716 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:38:39,668 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 15:38:39,668 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 15:38:39,669 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 15:38:39,672 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 15:38:40,139 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 15, 38, 31), 18.28, 27.98, 0.0, 21.7, 13.86, 0, 0, 0, 2, 0, 0),)
2025-06-13 15:38:40,139 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 15:38:31
2025-06-13 15:38:40,220 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 15:38:40,226 [DEBUG][       Thread-259717][   transport.py][1871] : starting thread (client mode): 0x863c9450
2025-06-13 15:38:40,226 [DEBUG][       Thread-259717][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 15:38:40,238 [DEBUG][       Thread-259717][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 15:38:40,238 [ INFO][       Thread-259717][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 15:38:40,240 [DEBUG][       Thread-259717][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 15:38:40,240 [DEBUG][       Thread-259717][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 15:38:40,240 [DEBUG][       Thread-259717][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 15:38:40,240 [DEBUG][       Thread-259717][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:38:40,240 [DEBUG][       Thread-259717][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:38:40,240 [DEBUG][       Thread-259717][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:38:40,240 [DEBUG][       Thread-259717][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:38:40,240 [DEBUG][       Thread-259717][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 15:38:40,240 [DEBUG][       Thread-259717][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 15:38:40,240 [DEBUG][       Thread-259717][   transport.py][1871] : client lang: <none>
2025-06-13 15:38:40,240 [DEBUG][       Thread-259717][   transport.py][1871] : server lang: <none>
2025-06-13 15:38:40,240 [DEBUG][       Thread-259717][   transport.py][1871] : kex follows: False
2025-06-13 15:38:40,240 [DEBUG][       Thread-259717][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 15:38:40,240 [DEBUG][       Thread-259717][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 15:38:40,240 [DEBUG][       Thread-259717][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 15:38:40,240 [DEBUG][       Thread-259717][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 15:38:40,240 [DEBUG][       Thread-259717][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 15:38:40,240 [DEBUG][       Thread-259717][   transport.py][1871] : Compression: none
2025-06-13 15:38:40,240 [DEBUG][       Thread-259717][   transport.py][1871] : === End of kex handshake ===
2025-06-13 15:38:40,251 [DEBUG][       Thread-259717][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 15:38:40,251 [DEBUG][       Thread-259717][   transport.py][1871] : Switch to new keys ...
2025-06-13 15:38:40,251 [DEBUG][       Thread-259717][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 15:38:40,251 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 15:38:40,252 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 15:38:40,252 [DEBUG][       Thread-259717][   transport.py][1871] : userauth is OK
2025-06-13 15:38:40,265 [ INFO][       Thread-259717][   transport.py][1871] : Authentication (password) successful!
2025-06-13 15:38:40,266 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 15:38:40,836 [DEBUG][       Thread-259717][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 15:38:40,836 [DEBUG][       Thread-259717][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 15:38:40,877 [DEBUG][       Thread-259717][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 15:38:40,877 [DEBUG][       Thread-259717][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 15:38:40,880 [DEBUG][       Thread-259717][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 15:38:40,894 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 15:38:40,894 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 15:38:40,896 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 15:38:40,898 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 15:38:40,903 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 15:38:40,905 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 15:38:40,905 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 15:38:40,906 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 15:38:40,906 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.568338 -999.00  +13.70  25.09     33   -2.00 1 1 1 1 1   887    0 16.84 24.92 ----- 25.0 25.1 54.6 30.9 17.0 -32.1 16.0 -32.8 16.9 -31.4 17.9 -30.1
2025-06-13 15:38:40,906 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 15:38:40,906 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 15:38:40,906 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.568338
2025-06-13 15:38:40,907 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 15:38:40,907 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 15:38:40,908 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 15:38:40,908 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 15:38:40,908 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 15:38:40,908 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T15:38:31', tmtdew=18.28, humidity=27.98, cloud=0.0, wind=21.7, temperature=13.86, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T13:38:24.403', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 15:38:40,909 [DEBUG][       Thread-259717][   transport.py][1871] : EOF in transport thread
2025-06-13 15:38:40,992 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 15:38:41,005 [DEBUG][       Thread-259720][   transport.py][1871] : starting thread (client mode): 0x86392590
2025-06-13 15:38:41,005 [DEBUG][       Thread-259720][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 15:38:41,021 [DEBUG][       Thread-259720][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 15:38:41,022 [ INFO][       Thread-259720][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 15:38:41,029 [DEBUG][       Thread-259720][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 15:38:41,029 [DEBUG][       Thread-259720][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 15:38:41,029 [DEBUG][       Thread-259720][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 15:38:41,029 [DEBUG][       Thread-259720][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:38:41,029 [DEBUG][       Thread-259720][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:38:41,029 [DEBUG][       Thread-259720][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:38:41,029 [DEBUG][       Thread-259720][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:38:41,029 [DEBUG][       Thread-259720][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 15:38:41,030 [DEBUG][       Thread-259720][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 15:38:41,030 [DEBUG][       Thread-259720][   transport.py][1871] : client lang: <none>
2025-06-13 15:38:41,030 [DEBUG][       Thread-259720][   transport.py][1871] : server lang: <none>
2025-06-13 15:38:41,030 [DEBUG][       Thread-259720][   transport.py][1871] : kex follows: False
2025-06-13 15:38:41,030 [DEBUG][       Thread-259720][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 15:38:41,030 [DEBUG][       Thread-259720][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 15:38:41,030 [DEBUG][       Thread-259720][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 15:38:41,030 [DEBUG][       Thread-259720][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 15:38:41,030 [DEBUG][       Thread-259720][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 15:38:41,030 [DEBUG][       Thread-259720][   transport.py][1871] : Compression: none
2025-06-13 15:38:41,030 [DEBUG][       Thread-259720][   transport.py][1871] : === End of kex handshake ===
2025-06-13 15:38:41,089 [DEBUG][       Thread-259720][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 15:38:41,089 [DEBUG][       Thread-259720][   transport.py][1871] : Switch to new keys ...
2025-06-13 15:38:41,090 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 15:38:41,090 [DEBUG][       Thread-259720][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 15:38:41,091 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 15:38:41,146 [DEBUG][       Thread-259720][   transport.py][1871] : userauth is OK
2025-06-13 15:38:41,146 [DEBUG][       Thread-259720][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 15:38:41,146 [DEBUG][       Thread-259720][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 15:38:41,146 [DEBUG][       Thread-259720][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 15:38:41,146 [DEBUG][       Thread-259720][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 15:38:41,161 [ INFO][       Thread-259720][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 15:38:41,161 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 15:38:41,161 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 15:38:42,194 [DEBUG][       Thread-259720][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 15:38:42,194 [DEBUG][       Thread-259720][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 15:38:42,244 [DEBUG][       Thread-259720][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 15:38:42,244 [DEBUG][       Thread-259720][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 15:38:42,253 [DEBUG][       Thread-259720][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 15:38:42,262 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 15:38:42,263 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 15:38:42,271 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 15:38:42,280 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 15:38:42,280 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 15:38:42,281 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 15:38:42,289 [DEBUG][       Thread-259720][   transport.py][1871] : EOF in transport thread
2025-06-13 15:38:47,325 [DEBUG][Thread-259722 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:38:52,291 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 15:38:52,292 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 15:38:52,292 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 15:38:52,295 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 15:38:52,746 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 15, 38, 31), 18.28, 27.98, 0.0, 21.7, 13.86, 0, 0, 0, 2, 0, 0),)
2025-06-13 15:38:52,746 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 15:38:31
2025-06-13 15:38:52,827 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 15:38:52,831 [DEBUG][       Thread-259723][   transport.py][1871] : starting thread (client mode): 0x863507c0
2025-06-13 15:38:52,831 [DEBUG][       Thread-259723][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 15:38:52,853 [DEBUG][       Thread-259723][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 15:38:52,853 [ INFO][       Thread-259723][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 15:38:52,857 [DEBUG][       Thread-259723][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 15:38:52,857 [DEBUG][       Thread-259723][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 15:38:52,857 [DEBUG][       Thread-259723][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 15:38:52,857 [DEBUG][       Thread-259723][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:38:52,857 [DEBUG][       Thread-259723][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:38:52,857 [DEBUG][       Thread-259723][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:38:52,857 [DEBUG][       Thread-259723][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:38:52,857 [DEBUG][       Thread-259723][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 15:38:52,857 [DEBUG][       Thread-259723][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 15:38:52,857 [DEBUG][       Thread-259723][   transport.py][1871] : client lang: <none>
2025-06-13 15:38:52,857 [DEBUG][       Thread-259723][   transport.py][1871] : server lang: <none>
2025-06-13 15:38:52,857 [DEBUG][       Thread-259723][   transport.py][1871] : kex follows: False
2025-06-13 15:38:52,857 [DEBUG][       Thread-259723][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 15:38:52,857 [DEBUG][       Thread-259723][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 15:38:52,857 [DEBUG][       Thread-259723][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 15:38:52,857 [DEBUG][       Thread-259723][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 15:38:52,857 [DEBUG][       Thread-259723][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 15:38:52,857 [DEBUG][       Thread-259723][   transport.py][1871] : Compression: none
2025-06-13 15:38:52,857 [DEBUG][       Thread-259723][   transport.py][1871] : === End of kex handshake ===
2025-06-13 15:38:52,875 [DEBUG][       Thread-259723][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 15:38:52,875 [DEBUG][       Thread-259723][   transport.py][1871] : Switch to new keys ...
2025-06-13 15:38:52,876 [DEBUG][       Thread-259723][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 15:38:52,876 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 15:38:52,876 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 15:38:52,877 [DEBUG][       Thread-259723][   transport.py][1871] : userauth is OK
2025-06-13 15:38:52,890 [ INFO][       Thread-259723][   transport.py][1871] : Authentication (password) successful!
2025-06-13 15:38:52,891 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 15:38:53,514 [DEBUG][       Thread-259723][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 15:38:53,514 [DEBUG][       Thread-259723][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 15:38:53,557 [DEBUG][       Thread-259723][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 15:38:53,557 [DEBUG][       Thread-259723][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 15:38:53,560 [DEBUG][       Thread-259723][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 15:38:53,573 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 15:38:53,573 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 15:38:53,575 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 15:38:53,577 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 15:38:53,582 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 15:38:53,585 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 15:38:53,585 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 15:38:53,585 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 15:38:53,586 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.568338 -999.00  +13.70  25.09     33   -2.00 1 1 1 1 1   887    0 16.84 24.92 ----- 25.0 25.1 54.6 30.9 17.0 -32.1 16.0 -32.8 16.9 -31.4 17.9 -30.1
2025-06-13 15:38:53,586 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 15:38:53,586 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 15:38:53,586 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.568338
2025-06-13 15:38:53,586 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 15:38:53,587 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 15:38:53,587 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 15:38:53,587 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 15:38:53,587 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 15:38:53,587 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T15:38:31', tmtdew=18.28, humidity=27.98, cloud=0.0, wind=21.7, temperature=13.86, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T13:38:24.403', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 15:38:53,587 [DEBUG][       Thread-259723][   transport.py][1871] : EOF in transport thread
2025-06-13 15:38:53,665 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 15:38:53,675 [DEBUG][       Thread-259726][   transport.py][1871] : starting thread (client mode): 0x863a7f40
2025-06-13 15:38:53,675 [DEBUG][       Thread-259726][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 15:38:53,689 [DEBUG][       Thread-259726][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 15:38:53,689 [ INFO][       Thread-259726][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 15:38:53,697 [DEBUG][       Thread-259726][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 15:38:53,697 [DEBUG][       Thread-259726][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 15:38:53,697 [DEBUG][       Thread-259726][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 15:38:53,697 [DEBUG][       Thread-259726][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:38:53,697 [DEBUG][       Thread-259726][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:38:53,697 [DEBUG][       Thread-259726][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:38:53,697 [DEBUG][       Thread-259726][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:38:53,697 [DEBUG][       Thread-259726][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 15:38:53,697 [DEBUG][       Thread-259726][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 15:38:53,697 [DEBUG][       Thread-259726][   transport.py][1871] : client lang: <none>
2025-06-13 15:38:53,697 [DEBUG][       Thread-259726][   transport.py][1871] : server lang: <none>
2025-06-13 15:38:53,697 [DEBUG][       Thread-259726][   transport.py][1871] : kex follows: False
2025-06-13 15:38:53,697 [DEBUG][       Thread-259726][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 15:38:53,697 [DEBUG][       Thread-259726][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 15:38:53,697 [DEBUG][       Thread-259726][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 15:38:53,697 [DEBUG][       Thread-259726][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 15:38:53,697 [DEBUG][       Thread-259726][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 15:38:53,697 [DEBUG][       Thread-259726][   transport.py][1871] : Compression: none
2025-06-13 15:38:53,697 [DEBUG][       Thread-259726][   transport.py][1871] : === End of kex handshake ===
2025-06-13 15:38:53,757 [DEBUG][       Thread-259726][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 15:38:53,757 [DEBUG][       Thread-259726][   transport.py][1871] : Switch to new keys ...
2025-06-13 15:38:53,758 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 15:38:53,758 [DEBUG][       Thread-259726][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 15:38:53,759 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 15:38:53,813 [DEBUG][       Thread-259726][   transport.py][1871] : userauth is OK
2025-06-13 15:38:53,813 [DEBUG][       Thread-259726][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 15:38:53,813 [DEBUG][       Thread-259726][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 15:38:53,813 [DEBUG][       Thread-259726][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 15:38:53,813 [DEBUG][       Thread-259726][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 15:38:53,831 [ INFO][       Thread-259726][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 15:38:53,832 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 15:38:53,832 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 15:38:54,837 [DEBUG][       Thread-259726][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 15:38:54,837 [DEBUG][       Thread-259726][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 15:38:54,888 [DEBUG][       Thread-259726][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 15:38:54,888 [DEBUG][       Thread-259726][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 15:38:54,903 [DEBUG][       Thread-259726][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 15:38:54,917 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 15:38:54,918 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 15:38:54,926 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 15:38:54,936 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 15:38:54,936 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 15:38:54,937 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 15:38:54,945 [DEBUG][       Thread-259726][   transport.py][1871] : EOF in transport thread
2025-06-13 15:38:56,360 [DEBUG][Thread-259728 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:39:00,067 [DEBUG][Thread-259729 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:39:01,144 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:39:01,144 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:39:04,944 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 15:39:04,944 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 15:39:04,944 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 15:39:04,945 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 15:39:05,379 [DEBUG][Thread-259730 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:39:05,436 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 15, 38, 31), 18.28, 27.98, 0.0, 21.7, 13.86, 0, 0, 0, 2, 0, 0),)
2025-06-13 15:39:05,436 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 15:38:31
2025-06-13 15:39:05,521 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 15:39:05,526 [DEBUG][       Thread-259731][   transport.py][1871] : starting thread (client mode): 0x863cb730
2025-06-13 15:39:05,526 [DEBUG][       Thread-259731][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 15:39:05,547 [DEBUG][       Thread-259731][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 15:39:05,547 [ INFO][       Thread-259731][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 15:39:05,550 [DEBUG][       Thread-259731][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 15:39:05,550 [DEBUG][       Thread-259731][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 15:39:05,550 [DEBUG][       Thread-259731][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 15:39:05,550 [DEBUG][       Thread-259731][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:39:05,550 [DEBUG][       Thread-259731][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:39:05,550 [DEBUG][       Thread-259731][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:39:05,550 [DEBUG][       Thread-259731][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:39:05,550 [DEBUG][       Thread-259731][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 15:39:05,550 [DEBUG][       Thread-259731][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 15:39:05,550 [DEBUG][       Thread-259731][   transport.py][1871] : client lang: <none>
2025-06-13 15:39:05,550 [DEBUG][       Thread-259731][   transport.py][1871] : server lang: <none>
2025-06-13 15:39:05,550 [DEBUG][       Thread-259731][   transport.py][1871] : kex follows: False
2025-06-13 15:39:05,550 [DEBUG][       Thread-259731][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 15:39:05,550 [DEBUG][       Thread-259731][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 15:39:05,550 [DEBUG][       Thread-259731][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 15:39:05,550 [DEBUG][       Thread-259731][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 15:39:05,550 [DEBUG][       Thread-259731][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 15:39:05,550 [DEBUG][       Thread-259731][   transport.py][1871] : Compression: none
2025-06-13 15:39:05,550 [DEBUG][       Thread-259731][   transport.py][1871] : === End of kex handshake ===
2025-06-13 15:39:05,566 [DEBUG][       Thread-259731][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 15:39:05,566 [DEBUG][       Thread-259731][   transport.py][1871] : Switch to new keys ...
2025-06-13 15:39:05,567 [DEBUG][       Thread-259731][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 15:39:05,567 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 15:39:05,567 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 15:39:05,567 [DEBUG][       Thread-259731][   transport.py][1871] : userauth is OK
2025-06-13 15:39:05,580 [ INFO][       Thread-259731][   transport.py][1871] : Authentication (password) successful!
2025-06-13 15:39:05,580 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 15:39:06,215 [DEBUG][       Thread-259731][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 15:39:06,215 [DEBUG][       Thread-259731][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 15:39:06,256 [DEBUG][       Thread-259731][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 15:39:06,256 [DEBUG][       Thread-259731][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 15:39:06,259 [DEBUG][       Thread-259731][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 15:39:06,273 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 15:39:06,273 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 15:39:06,274 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 15:39:06,275 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 15:39:06,277 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 15:39:06,278 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 15:39:06,278 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 15:39:06,278 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 15:39:06,278 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.568338 -999.00  +13.70  25.09     33   -2.00 1 1 1 1 1   887    0 16.84 24.92 ----- 25.0 25.1 54.6 30.9 17.0 -32.1 16.0 -32.8 16.9 -31.4 17.9 -30.1
2025-06-13 15:39:06,278 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 15:39:06,278 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 15:39:06,278 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.568338
2025-06-13 15:39:06,278 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 15:39:06,278 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 15:39:06,278 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 15:39:06,278 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 15:39:06,278 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 15:39:06,278 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T15:38:31', tmtdew=18.28, humidity=27.98, cloud=0.0, wind=21.7, temperature=13.86, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T13:38:24.403', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 15:39:06,279 [DEBUG][       Thread-259731][   transport.py][1871] : EOF in transport thread
2025-06-13 15:39:06,352 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 15:39:06,364 [DEBUG][       Thread-259734][   transport.py][1871] : starting thread (client mode): 0x863a5600
2025-06-13 15:39:06,364 [DEBUG][       Thread-259734][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 15:39:06,383 [DEBUG][       Thread-259734][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 15:39:06,383 [ INFO][       Thread-259734][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 15:39:06,390 [DEBUG][       Thread-259734][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 15:39:06,390 [DEBUG][       Thread-259734][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 15:39:06,390 [DEBUG][       Thread-259734][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 15:39:06,390 [DEBUG][       Thread-259734][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:39:06,390 [DEBUG][       Thread-259734][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:39:06,390 [DEBUG][       Thread-259734][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:39:06,390 [DEBUG][       Thread-259734][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:39:06,390 [DEBUG][       Thread-259734][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 15:39:06,390 [DEBUG][       Thread-259734][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 15:39:06,390 [DEBUG][       Thread-259734][   transport.py][1871] : client lang: <none>
2025-06-13 15:39:06,391 [DEBUG][       Thread-259734][   transport.py][1871] : server lang: <none>
2025-06-13 15:39:06,391 [DEBUG][       Thread-259734][   transport.py][1871] : kex follows: False
2025-06-13 15:39:06,391 [DEBUG][       Thread-259734][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 15:39:06,391 [DEBUG][       Thread-259734][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 15:39:06,391 [DEBUG][       Thread-259734][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 15:39:06,391 [DEBUG][       Thread-259734][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 15:39:06,391 [DEBUG][       Thread-259734][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 15:39:06,391 [DEBUG][       Thread-259734][   transport.py][1871] : Compression: none
2025-06-13 15:39:06,391 [DEBUG][       Thread-259734][   transport.py][1871] : === End of kex handshake ===
2025-06-13 15:39:06,447 [DEBUG][       Thread-259734][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 15:39:06,447 [DEBUG][       Thread-259734][   transport.py][1871] : Switch to new keys ...
2025-06-13 15:39:06,448 [DEBUG][       Thread-259734][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 15:39:06,448 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 15:39:06,448 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 15:39:06,504 [DEBUG][       Thread-259734][   transport.py][1871] : userauth is OK
2025-06-13 15:39:06,504 [DEBUG][       Thread-259734][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 15:39:06,504 [DEBUG][       Thread-259734][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 15:39:06,504 [DEBUG][       Thread-259734][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 15:39:06,504 [DEBUG][       Thread-259734][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 15:39:06,518 [ INFO][       Thread-259734][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 15:39:06,518 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 15:39:06,518 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 15:39:07,572 [DEBUG][       Thread-259734][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 15:39:07,572 [DEBUG][       Thread-259734][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 15:39:07,623 [DEBUG][       Thread-259734][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 15:39:07,624 [DEBUG][       Thread-259734][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 15:39:07,633 [DEBUG][       Thread-259734][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 15:39:07,641 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 15:39:07,641 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 15:39:07,650 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 15:39:07,658 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 15:39:07,658 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 15:39:07,659 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 15:39:07,667 [DEBUG][       Thread-259734][   transport.py][1871] : EOF in transport thread
2025-06-13 15:39:10,855 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:39:10,856 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:39:14,402 [DEBUG][Thread-259736 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:39:17,669 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 15:39:17,670 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 15:39:17,670 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 15:39:17,672 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 15:39:18,117 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 15, 39, 2), 18.22, 28.11, 0.0, 21.26, 13.9, 0, 0, 0, 2, 0, 0),)
2025-06-13 15:39:18,117 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 15:39:02
2025-06-13 15:39:18,195 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 15:39:18,199 [DEBUG][       Thread-259737][   transport.py][1871] : starting thread (client mode): 0x867fcbb0
2025-06-13 15:39:18,199 [DEBUG][       Thread-259737][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 15:39:18,219 [DEBUG][       Thread-259737][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 15:39:18,219 [ INFO][       Thread-259737][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 15:39:18,223 [DEBUG][       Thread-259737][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 15:39:18,223 [DEBUG][       Thread-259737][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 15:39:18,223 [DEBUG][       Thread-259737][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 15:39:18,223 [DEBUG][       Thread-259737][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:39:18,223 [DEBUG][       Thread-259737][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:39:18,223 [DEBUG][       Thread-259737][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:39:18,223 [DEBUG][       Thread-259737][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:39:18,223 [DEBUG][       Thread-259737][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 15:39:18,223 [DEBUG][       Thread-259737][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 15:39:18,223 [DEBUG][       Thread-259737][   transport.py][1871] : client lang: <none>
2025-06-13 15:39:18,223 [DEBUG][       Thread-259737][   transport.py][1871] : server lang: <none>
2025-06-13 15:39:18,223 [DEBUG][       Thread-259737][   transport.py][1871] : kex follows: False
2025-06-13 15:39:18,223 [DEBUG][       Thread-259737][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 15:39:18,223 [DEBUG][       Thread-259737][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 15:39:18,223 [DEBUG][       Thread-259737][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 15:39:18,223 [DEBUG][       Thread-259737][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 15:39:18,223 [DEBUG][       Thread-259737][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 15:39:18,223 [DEBUG][       Thread-259737][   transport.py][1871] : Compression: none
2025-06-13 15:39:18,223 [DEBUG][       Thread-259737][   transport.py][1871] : === End of kex handshake ===
2025-06-13 15:39:18,237 [DEBUG][       Thread-259737][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 15:39:18,238 [DEBUG][       Thread-259737][   transport.py][1871] : Switch to new keys ...
2025-06-13 15:39:18,238 [DEBUG][       Thread-259737][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 15:39:18,238 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 15:39:18,239 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 15:39:18,240 [DEBUG][       Thread-259737][   transport.py][1871] : userauth is OK
2025-06-13 15:39:18,264 [ INFO][       Thread-259737][   transport.py][1871] : Authentication (password) successful!
2025-06-13 15:39:18,264 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 15:39:18,892 [DEBUG][       Thread-259737][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 15:39:18,892 [DEBUG][       Thread-259737][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 15:39:18,933 [DEBUG][       Thread-259737][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 15:39:18,933 [DEBUG][       Thread-259737][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 15:39:18,937 [DEBUG][       Thread-259737][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 15:39:18,948 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 15:39:18,949 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 15:39:18,951 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 15:39:18,952 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 15:39:18,958 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 15:39:18,960 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 15:39:18,960 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 15:39:18,961 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 15:39:18,961 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.568686 -999.00  +13.70  24.85     33   -2.20 1 1 1 1 1   887    0 16.78 23.06 ----- 21.8 24.9 59.8 28.1 17.0 -32.0 16.0 -33.6 16.8 -32.4 17.9 -30.2
2025-06-13 15:39:18,961 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 15:39:18,961 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 15:39:18,962 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.568686
2025-06-13 15:39:18,962 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 15:39:18,963 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 15:39:18,963 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 15:39:18,963 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 15:39:18,963 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 15:39:18,963 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T15:39:02', tmtdew=18.22, humidity=28.11, cloud=0.0, wind=21.26, temperature=13.9, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T13:38:54.470', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 15:39:18,963 [DEBUG][       Thread-259737][   transport.py][1871] : EOF in transport thread
2025-06-13 15:39:19,047 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 15:39:19,060 [DEBUG][       Thread-259740][   transport.py][1871] : starting thread (client mode): 0x863ef6d0
2025-06-13 15:39:19,060 [DEBUG][       Thread-259740][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 15:39:19,075 [DEBUG][       Thread-259740][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 15:39:19,075 [ INFO][       Thread-259740][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 15:39:19,082 [DEBUG][       Thread-259740][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 15:39:19,083 [DEBUG][       Thread-259740][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 15:39:19,083 [DEBUG][       Thread-259740][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 15:39:19,083 [DEBUG][       Thread-259740][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:39:19,083 [DEBUG][       Thread-259740][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:39:19,083 [DEBUG][       Thread-259740][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:39:19,083 [DEBUG][       Thread-259740][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:39:19,083 [DEBUG][       Thread-259740][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 15:39:19,083 [DEBUG][       Thread-259740][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 15:39:19,083 [DEBUG][       Thread-259740][   transport.py][1871] : client lang: <none>
2025-06-13 15:39:19,083 [DEBUG][       Thread-259740][   transport.py][1871] : server lang: <none>
2025-06-13 15:39:19,083 [DEBUG][       Thread-259740][   transport.py][1871] : kex follows: False
2025-06-13 15:39:19,083 [DEBUG][       Thread-259740][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 15:39:19,083 [DEBUG][       Thread-259740][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 15:39:19,083 [DEBUG][       Thread-259740][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 15:39:19,083 [DEBUG][       Thread-259740][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 15:39:19,083 [DEBUG][       Thread-259740][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 15:39:19,083 [DEBUG][       Thread-259740][   transport.py][1871] : Compression: none
2025-06-13 15:39:19,083 [DEBUG][       Thread-259740][   transport.py][1871] : === End of kex handshake ===
2025-06-13 15:39:19,142 [DEBUG][       Thread-259740][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 15:39:19,143 [DEBUG][       Thread-259740][   transport.py][1871] : Switch to new keys ...
2025-06-13 15:39:19,144 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 15:39:19,144 [DEBUG][       Thread-259740][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 15:39:19,145 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 15:39:19,201 [DEBUG][       Thread-259740][   transport.py][1871] : userauth is OK
2025-06-13 15:39:19,201 [DEBUG][       Thread-259740][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 15:39:19,201 [DEBUG][       Thread-259740][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 15:39:19,201 [DEBUG][       Thread-259740][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 15:39:19,201 [DEBUG][       Thread-259740][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 15:39:19,220 [ INFO][       Thread-259740][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 15:39:19,220 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 15:39:19,221 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 15:39:20,243 [DEBUG][       Thread-259740][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 15:39:20,243 [DEBUG][       Thread-259740][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 15:39:20,295 [DEBUG][       Thread-259740][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 15:39:20,295 [DEBUG][       Thread-259740][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 15:39:20,306 [DEBUG][       Thread-259740][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 15:39:20,315 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 15:39:20,315 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 15:39:20,324 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 15:39:20,333 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 15:39:20,334 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 15:39:20,334 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 15:39:20,342 [DEBUG][       Thread-259740][   transport.py][1871] : EOF in transport thread
2025-06-13 15:39:21,654 [DEBUG][Thread-259742 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:39:23,423 [DEBUG][Thread-259743 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:39:30,345 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 15:39:30,345 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 15:39:30,345 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 15:39:30,348 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 15:39:30,813 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 15, 39, 2), 18.22, 28.11, 0.0, 21.26, 13.9, 0, 0, 0, 2, 0, 0),)
2025-06-13 15:39:30,813 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 15:39:02
2025-06-13 15:39:30,891 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 15:39:30,895 [DEBUG][       Thread-259744][   transport.py][1871] : starting thread (client mode): 0x867ff4f0
2025-06-13 15:39:30,895 [DEBUG][       Thread-259744][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 15:39:30,916 [DEBUG][       Thread-259744][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 15:39:30,916 [ INFO][       Thread-259744][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 15:39:30,918 [DEBUG][       Thread-259744][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 15:39:30,918 [DEBUG][       Thread-259744][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 15:39:30,918 [DEBUG][       Thread-259744][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 15:39:30,918 [DEBUG][       Thread-259744][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:39:30,918 [DEBUG][       Thread-259744][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:39:30,918 [DEBUG][       Thread-259744][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:39:30,918 [DEBUG][       Thread-259744][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:39:30,918 [DEBUG][       Thread-259744][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 15:39:30,918 [DEBUG][       Thread-259744][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 15:39:30,918 [DEBUG][       Thread-259744][   transport.py][1871] : client lang: <none>
2025-06-13 15:39:30,918 [DEBUG][       Thread-259744][   transport.py][1871] : server lang: <none>
2025-06-13 15:39:30,918 [DEBUG][       Thread-259744][   transport.py][1871] : kex follows: False
2025-06-13 15:39:30,918 [DEBUG][       Thread-259744][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 15:39:30,919 [DEBUG][       Thread-259744][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 15:39:30,919 [DEBUG][       Thread-259744][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 15:39:30,919 [DEBUG][       Thread-259744][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 15:39:30,919 [DEBUG][       Thread-259744][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 15:39:30,919 [DEBUG][       Thread-259744][   transport.py][1871] : Compression: none
2025-06-13 15:39:30,919 [DEBUG][       Thread-259744][   transport.py][1871] : === End of kex handshake ===
2025-06-13 15:39:30,931 [DEBUG][       Thread-259744][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 15:39:30,931 [DEBUG][       Thread-259744][   transport.py][1871] : Switch to new keys ...
2025-06-13 15:39:30,931 [DEBUG][       Thread-259744][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 15:39:30,931 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 15:39:30,931 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 15:39:30,931 [DEBUG][       Thread-259744][   transport.py][1871] : userauth is OK
2025-06-13 15:39:30,955 [ INFO][       Thread-259744][   transport.py][1871] : Authentication (password) successful!
2025-06-13 15:39:30,955 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 15:39:31,587 [DEBUG][       Thread-259744][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 15:39:31,587 [DEBUG][       Thread-259744][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 15:39:31,629 [DEBUG][       Thread-259744][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 15:39:31,629 [DEBUG][       Thread-259744][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 15:39:31,632 [DEBUG][       Thread-259744][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 15:39:31,645 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 15:39:31,646 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 15:39:31,648 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 15:39:31,649 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 15:39:31,655 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 15:39:31,657 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 15:39:31,658 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 15:39:31,658 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 15:39:31,659 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.568686 -999.00  +13.70  24.85     33   -2.20 1 1 1 1 1   887    0 16.78 23.06 ----- 21.8 24.9 59.8 28.1 17.0 -32.0 16.0 -33.6 16.8 -32.4 17.9 -30.2
2025-06-13 15:39:31,659 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 15:39:31,659 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 15:39:31,659 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.568686
2025-06-13 15:39:31,659 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 15:39:31,660 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 15:39:31,660 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 15:39:31,660 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 15:39:31,660 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 15:39:31,660 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T15:39:02', tmtdew=18.22, humidity=28.11, cloud=0.0, wind=21.26, temperature=13.9, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T13:38:54.470', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 15:39:31,661 [DEBUG][       Thread-259744][   transport.py][1871] : EOF in transport thread
2025-06-13 15:39:31,743 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 15:39:31,753 [DEBUG][       Thread-259747][   transport.py][1871] : starting thread (client mode): 0x86739330
2025-06-13 15:39:31,753 [DEBUG][       Thread-259747][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 15:39:31,768 [DEBUG][       Thread-259747][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 15:39:31,768 [ INFO][       Thread-259747][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 15:39:31,776 [DEBUG][       Thread-259747][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 15:39:31,776 [DEBUG][       Thread-259747][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 15:39:31,776 [DEBUG][       Thread-259747][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 15:39:31,776 [DEBUG][       Thread-259747][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:39:31,776 [DEBUG][       Thread-259747][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:39:31,776 [DEBUG][       Thread-259747][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:39:31,776 [DEBUG][       Thread-259747][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:39:31,776 [DEBUG][       Thread-259747][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 15:39:31,776 [DEBUG][       Thread-259747][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 15:39:31,776 [DEBUG][       Thread-259747][   transport.py][1871] : client lang: <none>
2025-06-13 15:39:31,776 [DEBUG][       Thread-259747][   transport.py][1871] : server lang: <none>
2025-06-13 15:39:31,776 [DEBUG][       Thread-259747][   transport.py][1871] : kex follows: False
2025-06-13 15:39:31,776 [DEBUG][       Thread-259747][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 15:39:31,776 [DEBUG][       Thread-259747][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 15:39:31,776 [DEBUG][       Thread-259747][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 15:39:31,776 [DEBUG][       Thread-259747][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 15:39:31,776 [DEBUG][       Thread-259747][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 15:39:31,776 [DEBUG][       Thread-259747][   transport.py][1871] : Compression: none
2025-06-13 15:39:31,776 [DEBUG][       Thread-259747][   transport.py][1871] : === End of kex handshake ===
2025-06-13 15:39:31,833 [DEBUG][       Thread-259747][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 15:39:31,834 [DEBUG][       Thread-259747][   transport.py][1871] : Switch to new keys ...
2025-06-13 15:39:31,834 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 15:39:31,835 [DEBUG][       Thread-259747][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 15:39:31,836 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 15:39:31,889 [DEBUG][       Thread-259747][   transport.py][1871] : userauth is OK
2025-06-13 15:39:31,889 [DEBUG][       Thread-259747][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 15:39:31,889 [DEBUG][       Thread-259747][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 15:39:31,890 [DEBUG][       Thread-259747][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 15:39:31,890 [DEBUG][       Thread-259747][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 15:39:31,908 [ INFO][       Thread-259747][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 15:39:31,908 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 15:39:31,909 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 15:39:32,464 [DEBUG][Thread-259749 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:39:32,923 [DEBUG][       Thread-259747][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 15:39:32,923 [DEBUG][       Thread-259747][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 15:39:32,972 [DEBUG][       Thread-259747][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 15:39:32,972 [DEBUG][       Thread-259747][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 15:39:32,981 [DEBUG][       Thread-259747][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 15:39:32,990 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 15:39:32,990 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 15:39:32,999 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 15:39:33,009 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 15:39:33,009 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 15:39:33,009 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 15:39:33,018 [DEBUG][       Thread-259747][   transport.py][1871] : EOF in transport thread
2025-06-13 15:39:41,483 [DEBUG][Thread-259750 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:39:43,020 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 15:39:43,020 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 15:39:43,020 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 15:39:43,021 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 15:39:43,490 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 15, 39, 34), 18.14, 28.29, 0.0, 21.84, 14.02, 0, 0, 0, 2, 0, 0),)
2025-06-13 15:39:43,490 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 15:39:34
2025-06-13 15:39:43,575 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 15:39:43,579 [DEBUG][       Thread-259751][   transport.py][1871] : starting thread (client mode): 0x867ff790
2025-06-13 15:39:43,579 [DEBUG][       Thread-259751][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 15:39:43,599 [DEBUG][       Thread-259751][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 15:39:43,599 [ INFO][       Thread-259751][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 15:39:43,602 [DEBUG][       Thread-259751][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 15:39:43,602 [DEBUG][       Thread-259751][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 15:39:43,602 [DEBUG][       Thread-259751][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 15:39:43,602 [DEBUG][       Thread-259751][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:39:43,602 [DEBUG][       Thread-259751][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:39:43,602 [DEBUG][       Thread-259751][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:39:43,602 [DEBUG][       Thread-259751][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:39:43,602 [DEBUG][       Thread-259751][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 15:39:43,602 [DEBUG][       Thread-259751][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 15:39:43,602 [DEBUG][       Thread-259751][   transport.py][1871] : client lang: <none>
2025-06-13 15:39:43,602 [DEBUG][       Thread-259751][   transport.py][1871] : server lang: <none>
2025-06-13 15:39:43,602 [DEBUG][       Thread-259751][   transport.py][1871] : kex follows: False
2025-06-13 15:39:43,602 [DEBUG][       Thread-259751][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 15:39:43,602 [DEBUG][       Thread-259751][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 15:39:43,602 [DEBUG][       Thread-259751][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 15:39:43,602 [DEBUG][       Thread-259751][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 15:39:43,602 [DEBUG][       Thread-259751][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 15:39:43,602 [DEBUG][       Thread-259751][   transport.py][1871] : Compression: none
2025-06-13 15:39:43,602 [DEBUG][       Thread-259751][   transport.py][1871] : === End of kex handshake ===
2025-06-13 15:39:43,617 [DEBUG][       Thread-259751][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 15:39:43,617 [DEBUG][       Thread-259751][   transport.py][1871] : Switch to new keys ...
2025-06-13 15:39:43,617 [DEBUG][       Thread-259751][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 15:39:43,617 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 15:39:43,617 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 15:39:43,618 [DEBUG][       Thread-259751][   transport.py][1871] : userauth is OK
2025-06-13 15:39:43,631 [ INFO][       Thread-259751][   transport.py][1871] : Authentication (password) successful!
2025-06-13 15:39:43,631 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 15:39:44,257 [DEBUG][       Thread-259751][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 15:39:44,257 [DEBUG][       Thread-259751][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 15:39:44,301 [DEBUG][       Thread-259751][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 15:39:44,301 [DEBUG][       Thread-259751][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 15:39:44,303 [DEBUG][       Thread-259751][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 15:39:44,317 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 15:39:44,317 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 15:39:44,318 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 15:39:44,319 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 15:39:44,322 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 15:39:44,323 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 15:39:44,323 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 15:39:44,323 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 15:39:44,323 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.568686 -999.00  +13.70  24.85     33   -2.20 1 1 1 1 1   887    0 16.78 23.06 ----- 21.8 24.9 59.8 28.1 17.0 -32.0 16.0 -33.6 16.8 -32.4 17.9 -30.2
2025-06-13 15:39:44,323 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 15:39:44,323 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 15:39:44,323 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.568686
2025-06-13 15:39:44,323 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 15:39:44,323 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 15:39:44,323 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 15:39:44,323 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 15:39:44,324 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 15:39:44,324 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T15:39:34', tmtdew=18.14, humidity=28.29, cloud=0.0, wind=21.84, temperature=14.02, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T13:38:54.470', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 15:39:44,324 [DEBUG][       Thread-259751][   transport.py][1871] : EOF in transport thread
2025-06-13 15:39:44,396 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 15:39:44,407 [DEBUG][       Thread-259754][   transport.py][1871] : starting thread (client mode): 0x86392950
2025-06-13 15:39:44,407 [DEBUG][       Thread-259754][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 15:39:44,421 [DEBUG][       Thread-259754][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 15:39:44,421 [ INFO][       Thread-259754][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 15:39:44,428 [DEBUG][       Thread-259754][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 15:39:44,428 [DEBUG][       Thread-259754][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 15:39:44,428 [DEBUG][       Thread-259754][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 15:39:44,428 [DEBUG][       Thread-259754][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:39:44,428 [DEBUG][       Thread-259754][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:39:44,428 [DEBUG][       Thread-259754][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:39:44,428 [DEBUG][       Thread-259754][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:39:44,428 [DEBUG][       Thread-259754][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 15:39:44,428 [DEBUG][       Thread-259754][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 15:39:44,428 [DEBUG][       Thread-259754][   transport.py][1871] : client lang: <none>
2025-06-13 15:39:44,428 [DEBUG][       Thread-259754][   transport.py][1871] : server lang: <none>
2025-06-13 15:39:44,428 [DEBUG][       Thread-259754][   transport.py][1871] : kex follows: False
2025-06-13 15:39:44,428 [DEBUG][       Thread-259754][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 15:39:44,428 [DEBUG][       Thread-259754][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 15:39:44,429 [DEBUG][       Thread-259754][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 15:39:44,429 [DEBUG][       Thread-259754][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 15:39:44,429 [DEBUG][       Thread-259754][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 15:39:44,429 [DEBUG][       Thread-259754][   transport.py][1871] : Compression: none
2025-06-13 15:39:44,429 [DEBUG][       Thread-259754][   transport.py][1871] : === End of kex handshake ===
2025-06-13 15:39:44,484 [DEBUG][       Thread-259754][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 15:39:44,485 [DEBUG][       Thread-259754][   transport.py][1871] : Switch to new keys ...
2025-06-13 15:39:44,485 [DEBUG][       Thread-259754][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 15:39:44,485 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 15:39:44,485 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 15:39:44,541 [DEBUG][       Thread-259754][   transport.py][1871] : userauth is OK
2025-06-13 15:39:44,541 [DEBUG][       Thread-259754][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 15:39:44,541 [DEBUG][       Thread-259754][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 15:39:44,541 [DEBUG][       Thread-259754][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 15:39:44,541 [DEBUG][       Thread-259754][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 15:39:44,561 [ INFO][       Thread-259754][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 15:39:44,561 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 15:39:44,561 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 15:39:45,551 [DEBUG][       Thread-259754][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 15:39:45,552 [DEBUG][       Thread-259754][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 15:39:45,600 [DEBUG][       Thread-259754][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 15:39:45,600 [DEBUG][       Thread-259754][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 15:39:45,614 [DEBUG][       Thread-259754][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 15:39:45,624 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 15:39:45,624 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 15:39:45,634 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 15:39:45,643 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 15:39:45,643 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 15:39:45,644 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 15:39:45,652 [DEBUG][       Thread-259754][   transport.py][1871] : EOF in transport thread
2025-06-13 15:39:50,502 [DEBUG][Thread-259756 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:39:55,654 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 15:39:55,655 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 15:39:55,655 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 15:39:55,658 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 15:39:56,113 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 15, 39, 34), 18.14, 28.29, 0.0, 21.84, 14.02, 0, 0, 0, 2, 0, 0),)
2025-06-13 15:39:56,113 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 15:39:34
2025-06-13 15:39:56,194 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 15:39:56,198 [DEBUG][       Thread-259757][   transport.py][1871] : starting thread (client mode): 0x867fc340
2025-06-13 15:39:56,198 [DEBUG][       Thread-259757][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 15:39:56,218 [DEBUG][       Thread-259757][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 15:39:56,218 [ INFO][       Thread-259757][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 15:39:56,221 [DEBUG][       Thread-259757][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 15:39:56,221 [DEBUG][       Thread-259757][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 15:39:56,221 [DEBUG][       Thread-259757][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 15:39:56,222 [DEBUG][       Thread-259757][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:39:56,222 [DEBUG][       Thread-259757][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:39:56,222 [DEBUG][       Thread-259757][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:39:56,222 [DEBUG][       Thread-259757][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:39:56,222 [DEBUG][       Thread-259757][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 15:39:56,222 [DEBUG][       Thread-259757][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 15:39:56,222 [DEBUG][       Thread-259757][   transport.py][1871] : client lang: <none>
2025-06-13 15:39:56,222 [DEBUG][       Thread-259757][   transport.py][1871] : server lang: <none>
2025-06-13 15:39:56,222 [DEBUG][       Thread-259757][   transport.py][1871] : kex follows: False
2025-06-13 15:39:56,222 [DEBUG][       Thread-259757][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 15:39:56,222 [DEBUG][       Thread-259757][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 15:39:56,222 [DEBUG][       Thread-259757][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 15:39:56,222 [DEBUG][       Thread-259757][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 15:39:56,222 [DEBUG][       Thread-259757][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 15:39:56,222 [DEBUG][       Thread-259757][   transport.py][1871] : Compression: none
2025-06-13 15:39:56,222 [DEBUG][       Thread-259757][   transport.py][1871] : === End of kex handshake ===
2025-06-13 15:39:56,242 [DEBUG][       Thread-259757][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 15:39:56,243 [DEBUG][       Thread-259757][   transport.py][1871] : Switch to new keys ...
2025-06-13 15:39:56,243 [DEBUG][       Thread-259757][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 15:39:56,244 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 15:39:56,244 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 15:39:56,245 [DEBUG][       Thread-259757][   transport.py][1871] : userauth is OK
2025-06-13 15:39:56,269 [ INFO][       Thread-259757][   transport.py][1871] : Authentication (password) successful!
2025-06-13 15:39:56,270 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 15:39:56,921 [DEBUG][       Thread-259757][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 15:39:56,921 [DEBUG][       Thread-259757][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 15:39:56,965 [DEBUG][       Thread-259757][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 15:39:56,965 [DEBUG][       Thread-259757][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 15:39:56,969 [DEBUG][       Thread-259757][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 15:39:56,980 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 15:39:56,980 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 15:39:56,982 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 15:39:56,985 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 15:39:56,991 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 15:39:56,993 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 15:39:56,993 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 15:39:56,994 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 15:39:56,994 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.569033 -999.00  +13.60  20.56     33   -2.10 1 1 1 1 1   887    0 16.52 20.23 ----- 23.4 20.6 60.0 28.1 17.0 -31.7 15.9 -34.1 16.8 -32.2 17.9 -30.9
2025-06-13 15:39:56,994 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 15:39:56,995 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 15:39:56,995 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.569033
2025-06-13 15:39:56,995 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 15:39:56,996 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 15:39:56,996 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 15:39:56,996 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 15:39:56,996 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 15:39:56,996 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T15:39:34', tmtdew=18.14, humidity=28.29, cloud=0.0, wind=21.84, temperature=14.02, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T13:39:24.451', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 15:39:56,997 [DEBUG][       Thread-259757][   transport.py][1871] : EOF in transport thread
2025-06-13 15:39:57,080 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 15:39:57,097 [DEBUG][       Thread-259760][   transport.py][1871] : starting thread (client mode): 0x863ef5b0
2025-06-13 15:39:57,097 [DEBUG][       Thread-259760][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 15:39:57,112 [DEBUG][       Thread-259760][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 15:39:57,112 [ INFO][       Thread-259760][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 15:39:57,119 [DEBUG][       Thread-259760][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 15:39:57,120 [DEBUG][       Thread-259760][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 15:39:57,120 [DEBUG][       Thread-259760][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 15:39:57,120 [DEBUG][       Thread-259760][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:39:57,120 [DEBUG][       Thread-259760][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:39:57,120 [DEBUG][       Thread-259760][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:39:57,120 [DEBUG][       Thread-259760][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:39:57,120 [DEBUG][       Thread-259760][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 15:39:57,120 [DEBUG][       Thread-259760][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 15:39:57,121 [DEBUG][       Thread-259760][   transport.py][1871] : client lang: <none>
2025-06-13 15:39:57,121 [DEBUG][       Thread-259760][   transport.py][1871] : server lang: <none>
2025-06-13 15:39:57,121 [DEBUG][       Thread-259760][   transport.py][1871] : kex follows: False
2025-06-13 15:39:57,121 [DEBUG][       Thread-259760][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 15:39:57,121 [DEBUG][       Thread-259760][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 15:39:57,121 [DEBUG][       Thread-259760][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 15:39:57,121 [DEBUG][       Thread-259760][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 15:39:57,121 [DEBUG][       Thread-259760][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 15:39:57,122 [DEBUG][       Thread-259760][   transport.py][1871] : Compression: none
2025-06-13 15:39:57,122 [DEBUG][       Thread-259760][   transport.py][1871] : === End of kex handshake ===
2025-06-13 15:39:57,182 [DEBUG][       Thread-259760][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 15:39:57,183 [DEBUG][       Thread-259760][   transport.py][1871] : Switch to new keys ...
2025-06-13 15:39:57,184 [DEBUG][       Thread-259760][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 15:39:57,185 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 15:39:57,185 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 15:39:57,241 [DEBUG][       Thread-259760][   transport.py][1871] : userauth is OK
2025-06-13 15:39:57,241 [DEBUG][       Thread-259760][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 15:39:57,242 [DEBUG][       Thread-259760][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 15:39:57,242 [DEBUG][       Thread-259760][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 15:39:57,242 [DEBUG][       Thread-259760][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 15:39:57,260 [ INFO][       Thread-259760][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 15:39:57,261 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 15:39:57,261 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 15:39:58,256 [DEBUG][       Thread-259760][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 15:39:58,256 [DEBUG][       Thread-259760][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 15:39:58,304 [DEBUG][       Thread-259760][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 15:39:58,305 [DEBUG][       Thread-259760][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 15:39:58,317 [DEBUG][       Thread-259760][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 15:39:58,327 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 15:39:58,327 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 15:39:58,336 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 15:39:58,346 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 15:39:58,346 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 15:39:58,347 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 15:39:58,356 [DEBUG][       Thread-259760][   transport.py][1871] : EOF in transport thread
2025-06-13 15:39:59,541 [DEBUG][Thread-259762 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:40:01,215 [DEBUG][Thread-259763 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:40:02,267 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:40:02,268 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:40:08,356 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 15:40:08,356 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 15:40:08,356 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 15:40:08,356 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 15:40:08,560 [DEBUG][Thread-259764 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:40:08,821 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 15, 39, 34), 18.14, 28.29, 0.0, 21.84, 14.02, 0, 0, 0, 2, 0, 0),)
2025-06-13 15:40:08,821 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 15:39:34
2025-06-13 15:40:08,910 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 15:40:08,916 [DEBUG][       Thread-259765][   transport.py][1871] : starting thread (client mode): 0x863cbbb0
2025-06-13 15:40:08,916 [DEBUG][       Thread-259765][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 15:40:08,937 [DEBUG][       Thread-259765][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 15:40:08,937 [ INFO][       Thread-259765][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 15:40:08,941 [DEBUG][       Thread-259765][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 15:40:08,941 [DEBUG][       Thread-259765][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 15:40:08,941 [DEBUG][       Thread-259765][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 15:40:08,941 [DEBUG][       Thread-259765][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:40:08,941 [DEBUG][       Thread-259765][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:40:08,941 [DEBUG][       Thread-259765][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:40:08,941 [DEBUG][       Thread-259765][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:40:08,941 [DEBUG][       Thread-259765][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 15:40:08,941 [DEBUG][       Thread-259765][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 15:40:08,941 [DEBUG][       Thread-259765][   transport.py][1871] : client lang: <none>
2025-06-13 15:40:08,941 [DEBUG][       Thread-259765][   transport.py][1871] : server lang: <none>
2025-06-13 15:40:08,941 [DEBUG][       Thread-259765][   transport.py][1871] : kex follows: False
2025-06-13 15:40:08,941 [DEBUG][       Thread-259765][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 15:40:08,941 [DEBUG][       Thread-259765][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 15:40:08,941 [DEBUG][       Thread-259765][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 15:40:08,941 [DEBUG][       Thread-259765][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 15:40:08,941 [DEBUG][       Thread-259765][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 15:40:08,941 [DEBUG][       Thread-259765][   transport.py][1871] : Compression: none
2025-06-13 15:40:08,941 [DEBUG][       Thread-259765][   transport.py][1871] : === End of kex handshake ===
2025-06-13 15:40:08,959 [DEBUG][       Thread-259765][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 15:40:08,959 [DEBUG][       Thread-259765][   transport.py][1871] : Switch to new keys ...
2025-06-13 15:40:08,959 [DEBUG][       Thread-259765][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 15:40:08,960 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 15:40:08,960 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 15:40:08,961 [DEBUG][       Thread-259765][   transport.py][1871] : userauth is OK
2025-06-13 15:40:08,974 [ INFO][       Thread-259765][   transport.py][1871] : Authentication (password) successful!
2025-06-13 15:40:08,975 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 15:40:10,994 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:40:10,996 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:40:17,581 [DEBUG][Thread-259767 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:40:19,038 [DEBUG][       Thread-259765][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 15:40:19,038 [DEBUG][       Thread-259765][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 15:40:19,081 [DEBUG][       Thread-259765][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 15:40:19,081 [DEBUG][       Thread-259765][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 15:40:19,084 [DEBUG][       Thread-259765][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 15:40:19,134 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 15:40:19,135 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 15:40:19,137 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 15:40:19,139 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 15:40:19,144 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 15:40:19,146 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 15:40:19,147 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 15:40:19,147 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 15:40:19,147 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.569033 -999.00  +13.60  20.56     33   -2.10 1 1 1 1 1   887    0 16.52 20.23 ----- 23.4 20.6 60.0 28.1 17.0 -31.7 15.9 -34.1 16.8 -32.2 17.9 -30.9
2025-06-13 15:40:19,147 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 15:40:19,148 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 15:40:19,148 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.569033
2025-06-13 15:40:19,148 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 15:40:19,149 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 15:40:19,149 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 15:40:19,149 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 15:40:19,149 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 15:40:19,149 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T15:39:34', tmtdew=18.14, humidity=28.29, cloud=0.0, wind=21.84, temperature=14.02, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T13:39:24.451', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 15:40:19,150 [DEBUG][       Thread-259765][   transport.py][1871] : EOF in transport thread
2025-06-13 15:40:19,233 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 15:40:19,251 [DEBUG][       Thread-259769][   transport.py][1871] : starting thread (client mode): 0x863bea70
2025-06-13 15:40:19,251 [DEBUG][       Thread-259769][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 15:40:19,266 [DEBUG][       Thread-259769][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 15:40:19,266 [ INFO][       Thread-259769][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 15:40:19,273 [DEBUG][       Thread-259769][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 15:40:19,274 [DEBUG][       Thread-259769][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 15:40:19,274 [DEBUG][       Thread-259769][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 15:40:19,274 [DEBUG][       Thread-259769][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:40:19,274 [DEBUG][       Thread-259769][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:40:19,274 [DEBUG][       Thread-259769][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:40:19,274 [DEBUG][       Thread-259769][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:40:19,274 [DEBUG][       Thread-259769][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 15:40:19,274 [DEBUG][       Thread-259769][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 15:40:19,274 [DEBUG][       Thread-259769][   transport.py][1871] : client lang: <none>
2025-06-13 15:40:19,274 [DEBUG][       Thread-259769][   transport.py][1871] : server lang: <none>
2025-06-13 15:40:19,274 [DEBUG][       Thread-259769][   transport.py][1871] : kex follows: False
2025-06-13 15:40:19,274 [DEBUG][       Thread-259769][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 15:40:19,274 [DEBUG][       Thread-259769][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 15:40:19,274 [DEBUG][       Thread-259769][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 15:40:19,274 [DEBUG][       Thread-259769][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 15:40:19,274 [DEBUG][       Thread-259769][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 15:40:19,274 [DEBUG][       Thread-259769][   transport.py][1871] : Compression: none
2025-06-13 15:40:19,274 [DEBUG][       Thread-259769][   transport.py][1871] : === End of kex handshake ===
2025-06-13 15:40:19,332 [DEBUG][       Thread-259769][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 15:40:19,333 [DEBUG][       Thread-259769][   transport.py][1871] : Switch to new keys ...
2025-06-13 15:40:19,333 [DEBUG][       Thread-259769][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 15:40:19,334 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 15:40:19,334 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 15:40:19,388 [DEBUG][       Thread-259769][   transport.py][1871] : userauth is OK
2025-06-13 15:40:19,389 [DEBUG][       Thread-259769][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 15:40:19,389 [DEBUG][       Thread-259769][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 15:40:19,389 [DEBUG][       Thread-259769][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 15:40:19,389 [DEBUG][       Thread-259769][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 15:40:19,402 [ INFO][       Thread-259769][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 15:40:19,403 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 15:40:19,403 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 15:40:20,405 [DEBUG][       Thread-259769][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 15:40:20,405 [DEBUG][       Thread-259769][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 15:40:20,455 [DEBUG][       Thread-259769][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 15:40:20,455 [DEBUG][       Thread-259769][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 15:40:20,464 [DEBUG][       Thread-259769][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 15:40:20,472 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 15:40:20,472 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 15:40:20,483 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 15:40:20,497 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 15:40:20,497 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 15:40:20,498 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 15:40:20,509 [DEBUG][       Thread-259769][   transport.py][1871] : EOF in transport thread
2025-06-13 15:40:21,681 [DEBUG][Thread-259771 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:40:26,601 [DEBUG][Thread-259772 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:40:30,508 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 15:40:30,508 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 15:40:30,508 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 15:40:30,511 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 15:40:30,971 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 15, 40, 6), 18.24, 28.11, 0.0, 18.84, 14.07, 0, 0, 0, 2, 0, 0),)
2025-06-13 15:40:30,971 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 15:40:06
2025-06-13 15:40:31,048 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 15:40:31,052 [DEBUG][       Thread-259773][   transport.py][1871] : starting thread (client mode): 0x86353670
2025-06-13 15:40:31,052 [DEBUG][       Thread-259773][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 15:40:31,073 [DEBUG][       Thread-259773][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 15:40:31,073 [ INFO][       Thread-259773][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 15:40:31,075 [DEBUG][       Thread-259773][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 15:40:31,075 [DEBUG][       Thread-259773][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 15:40:31,075 [DEBUG][       Thread-259773][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 15:40:31,075 [DEBUG][       Thread-259773][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:40:31,075 [DEBUG][       Thread-259773][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:40:31,075 [DEBUG][       Thread-259773][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:40:31,075 [DEBUG][       Thread-259773][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:40:31,075 [DEBUG][       Thread-259773][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 15:40:31,075 [DEBUG][       Thread-259773][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 15:40:31,075 [DEBUG][       Thread-259773][   transport.py][1871] : client lang: <none>
2025-06-13 15:40:31,075 [DEBUG][       Thread-259773][   transport.py][1871] : server lang: <none>
2025-06-13 15:40:31,075 [DEBUG][       Thread-259773][   transport.py][1871] : kex follows: False
2025-06-13 15:40:31,075 [DEBUG][       Thread-259773][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 15:40:31,075 [DEBUG][       Thread-259773][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 15:40:31,075 [DEBUG][       Thread-259773][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 15:40:31,075 [DEBUG][       Thread-259773][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 15:40:31,075 [DEBUG][       Thread-259773][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 15:40:31,075 [DEBUG][       Thread-259773][   transport.py][1871] : Compression: none
2025-06-13 15:40:31,075 [DEBUG][       Thread-259773][   transport.py][1871] : === End of kex handshake ===
2025-06-13 15:40:31,093 [DEBUG][       Thread-259773][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 15:40:31,093 [DEBUG][       Thread-259773][   transport.py][1871] : Switch to new keys ...
2025-06-13 15:40:31,094 [DEBUG][       Thread-259773][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 15:40:31,094 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 15:40:31,094 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 15:40:31,095 [DEBUG][       Thread-259773][   transport.py][1871] : userauth is OK
2025-06-13 15:40:31,120 [ INFO][       Thread-259773][   transport.py][1871] : Authentication (password) successful!
2025-06-13 15:40:31,120 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 15:40:31,717 [DEBUG][       Thread-259773][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 15:40:31,717 [DEBUG][       Thread-259773][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 15:40:31,761 [DEBUG][       Thread-259773][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 15:40:31,761 [DEBUG][       Thread-259773][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 15:40:31,764 [DEBUG][       Thread-259773][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 15:40:31,771 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 15:40:31,772 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 15:40:31,773 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 15:40:31,775 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 15:40:31,780 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 15:40:31,782 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 15:40:31,782 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 15:40:31,782 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 15:40:31,783 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.569380 -999.00  +13.60  20.58     33   -2.10 1 1 1 1 1   887    0 16.37 17.60 ----- 23.2 20.6 58.2 26.4 16.9 -32.0 15.9 -33.3 16.8 -31.5 17.9 -30.2
2025-06-13 15:40:31,783 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 15:40:31,783 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 15:40:31,783 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.569380
2025-06-13 15:40:31,783 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 15:40:31,784 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 15:40:31,784 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 15:40:31,784 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 15:40:31,784 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 15:40:31,784 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T15:40:06', tmtdew=18.24, humidity=28.11, cloud=0.0, wind=18.84, temperature=14.07, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T13:39:54.432', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 15:40:31,784 [DEBUG][       Thread-259773][   transport.py][1871] : EOF in transport thread
2025-06-13 15:40:31,868 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 15:40:31,892 [DEBUG][       Thread-259776][   transport.py][1871] : starting thread (client mode): 0x867b7640
2025-06-13 15:40:31,892 [DEBUG][       Thread-259776][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 15:40:31,908 [DEBUG][       Thread-259776][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 15:40:31,908 [ INFO][       Thread-259776][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 15:40:31,924 [DEBUG][       Thread-259776][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 15:40:31,924 [DEBUG][       Thread-259776][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 15:40:31,925 [DEBUG][       Thread-259776][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 15:40:31,925 [DEBUG][       Thread-259776][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:40:31,925 [DEBUG][       Thread-259776][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:40:31,925 [DEBUG][       Thread-259776][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:40:31,925 [DEBUG][       Thread-259776][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:40:31,925 [DEBUG][       Thread-259776][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 15:40:31,925 [DEBUG][       Thread-259776][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 15:40:31,925 [DEBUG][       Thread-259776][   transport.py][1871] : client lang: <none>
2025-06-13 15:40:31,925 [DEBUG][       Thread-259776][   transport.py][1871] : server lang: <none>
2025-06-13 15:40:31,925 [DEBUG][       Thread-259776][   transport.py][1871] : kex follows: False
2025-06-13 15:40:31,925 [DEBUG][       Thread-259776][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 15:40:31,925 [DEBUG][       Thread-259776][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 15:40:31,925 [DEBUG][       Thread-259776][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 15:40:31,925 [DEBUG][       Thread-259776][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 15:40:31,925 [DEBUG][       Thread-259776][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 15:40:31,925 [DEBUG][       Thread-259776][   transport.py][1871] : Compression: none
2025-06-13 15:40:31,926 [DEBUG][       Thread-259776][   transport.py][1871] : === End of kex handshake ===
2025-06-13 15:40:31,998 [DEBUG][       Thread-259776][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 15:40:31,999 [DEBUG][       Thread-259776][   transport.py][1871] : Switch to new keys ...
2025-06-13 15:40:32,001 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 15:40:32,001 [DEBUG][       Thread-259776][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 15:40:32,002 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 15:40:32,057 [DEBUG][       Thread-259776][   transport.py][1871] : userauth is OK
2025-06-13 15:40:32,057 [DEBUG][       Thread-259776][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 15:40:32,058 [DEBUG][       Thread-259776][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 15:40:32,058 [DEBUG][       Thread-259776][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 15:40:32,058 [DEBUG][       Thread-259776][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 15:40:32,077 [ INFO][       Thread-259776][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 15:40:32,077 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 15:40:32,078 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 15:40:33,087 [DEBUG][       Thread-259776][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 15:40:33,087 [DEBUG][       Thread-259776][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 15:40:33,138 [DEBUG][       Thread-259776][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 15:40:33,138 [DEBUG][       Thread-259776][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 15:40:33,154 [DEBUG][       Thread-259776][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 15:40:33,163 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 15:40:33,163 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 15:40:33,171 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 15:40:33,180 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 15:40:33,180 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 15:40:33,180 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 15:40:33,188 [DEBUG][       Thread-259776][   transport.py][1871] : EOF in transport thread
2025-06-13 15:40:35,623 [DEBUG][Thread-259778 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:40:43,190 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 15:40:43,190 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 15:40:43,190 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 15:40:43,193 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 15:40:43,670 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 15, 40, 38), 18.29, 27.89, 0.0, 20.7, 14.07, 0, 0, 0, 2, 0, 0),)
2025-06-13 15:40:43,670 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 15:40:38
2025-06-13 15:40:43,747 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 15:40:43,751 [DEBUG][       Thread-259779][   transport.py][1871] : starting thread (client mode): 0x863cae90
2025-06-13 15:40:43,751 [DEBUG][       Thread-259779][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 15:40:43,774 [DEBUG][       Thread-259779][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 15:40:43,774 [ INFO][       Thread-259779][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 15:40:43,778 [DEBUG][       Thread-259779][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 15:40:43,778 [DEBUG][       Thread-259779][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 15:40:43,778 [DEBUG][       Thread-259779][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 15:40:43,778 [DEBUG][       Thread-259779][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:40:43,778 [DEBUG][       Thread-259779][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:40:43,778 [DEBUG][       Thread-259779][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:40:43,778 [DEBUG][       Thread-259779][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:40:43,778 [DEBUG][       Thread-259779][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 15:40:43,778 [DEBUG][       Thread-259779][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 15:40:43,778 [DEBUG][       Thread-259779][   transport.py][1871] : client lang: <none>
2025-06-13 15:40:43,778 [DEBUG][       Thread-259779][   transport.py][1871] : server lang: <none>
2025-06-13 15:40:43,778 [DEBUG][       Thread-259779][   transport.py][1871] : kex follows: False
2025-06-13 15:40:43,778 [DEBUG][       Thread-259779][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 15:40:43,778 [DEBUG][       Thread-259779][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 15:40:43,778 [DEBUG][       Thread-259779][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 15:40:43,778 [DEBUG][       Thread-259779][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 15:40:43,778 [DEBUG][       Thread-259779][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 15:40:43,778 [DEBUG][       Thread-259779][   transport.py][1871] : Compression: none
2025-06-13 15:40:43,778 [DEBUG][       Thread-259779][   transport.py][1871] : === End of kex handshake ===
2025-06-13 15:40:43,794 [DEBUG][       Thread-259779][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 15:40:43,795 [DEBUG][       Thread-259779][   transport.py][1871] : Switch to new keys ...
2025-06-13 15:40:43,795 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 15:40:43,796 [DEBUG][       Thread-259779][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 15:40:43,796 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 15:40:43,798 [DEBUG][       Thread-259779][   transport.py][1871] : userauth is OK
2025-06-13 15:40:43,811 [ INFO][       Thread-259779][   transport.py][1871] : Authentication (password) successful!
2025-06-13 15:40:43,811 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 15:40:44,454 [DEBUG][       Thread-259779][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 15:40:44,454 [DEBUG][       Thread-259779][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 15:40:44,497 [DEBUG][       Thread-259779][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 15:40:44,497 [DEBUG][       Thread-259779][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 15:40:44,501 [DEBUG][       Thread-259779][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 15:40:44,514 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 15:40:44,514 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 15:40:44,516 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 15:40:44,518 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 15:40:44,523 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 15:40:44,525 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 15:40:44,525 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 15:40:44,526 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 15:40:44,526 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.569380 -999.00  +13.60  20.58     33   -2.10 1 1 1 1 1   887    0 16.37 17.60 ----- 23.2 20.6 58.2 26.4 16.9 -32.0 15.9 -33.3 16.8 -31.5 17.9 -30.2
2025-06-13 15:40:44,526 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 15:40:44,526 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 15:40:44,526 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.569380
2025-06-13 15:40:44,527 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 15:40:44,527 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 15:40:44,527 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 15:40:44,527 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 15:40:44,527 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 15:40:44,528 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T15:40:38', tmtdew=18.29, humidity=27.89, cloud=0.0, wind=20.7, temperature=14.07, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T13:39:54.432', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 15:40:44,529 [DEBUG][       Thread-259779][   transport.py][1871] : EOF in transport thread
2025-06-13 15:40:44,611 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 15:40:44,626 [DEBUG][       Thread-259782][   transport.py][1871] : starting thread (client mode): 0x863be170
2025-06-13 15:40:44,626 [DEBUG][       Thread-259782][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 15:40:44,641 [DEBUG][       Thread-259782][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 15:40:44,642 [ INFO][       Thread-259782][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 15:40:44,649 [DEBUG][       Thread-259782][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 15:40:44,649 [DEBUG][       Thread-259782][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 15:40:44,650 [DEBUG][       Thread-259782][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 15:40:44,650 [DEBUG][       Thread-259782][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:40:44,650 [DEBUG][       Thread-259782][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:40:44,650 [DEBUG][       Thread-259782][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:40:44,650 [DEBUG][       Thread-259782][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:40:44,650 [DEBUG][       Thread-259782][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 15:40:44,650 [DEBUG][       Thread-259782][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 15:40:44,650 [DEBUG][       Thread-259782][   transport.py][1871] : client lang: <none>
2025-06-13 15:40:44,650 [DEBUG][       Thread-259782][   transport.py][1871] : server lang: <none>
2025-06-13 15:40:44,650 [DEBUG][       Thread-259782][   transport.py][1871] : kex follows: False
2025-06-13 15:40:44,650 [DEBUG][       Thread-259782][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 15:40:44,650 [DEBUG][       Thread-259782][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 15:40:44,650 [DEBUG][       Thread-259782][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 15:40:44,650 [DEBUG][       Thread-259782][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 15:40:44,650 [DEBUG][       Thread-259782][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 15:40:44,650 [DEBUG][       Thread-259782][   transport.py][1871] : Compression: none
2025-06-13 15:40:44,650 [DEBUG][       Thread-259782][   transport.py][1871] : === End of kex handshake ===
2025-06-13 15:40:44,656 [DEBUG][Thread-259784 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:40:44,709 [DEBUG][       Thread-259782][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 15:40:44,710 [DEBUG][       Thread-259782][   transport.py][1871] : Switch to new keys ...
2025-06-13 15:40:44,710 [DEBUG][       Thread-259782][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 15:40:44,710 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 15:40:44,711 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 15:40:44,765 [DEBUG][       Thread-259782][   transport.py][1871] : userauth is OK
2025-06-13 15:40:44,765 [DEBUG][       Thread-259782][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 15:40:44,765 [DEBUG][       Thread-259782][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 15:40:44,765 [DEBUG][       Thread-259782][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 15:40:44,766 [DEBUG][       Thread-259782][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 15:40:44,784 [ INFO][       Thread-259782][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 15:40:44,784 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 15:40:44,785 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 15:40:45,826 [DEBUG][       Thread-259782][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 15:40:45,826 [DEBUG][       Thread-259782][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 15:40:45,876 [DEBUG][       Thread-259782][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 15:40:45,876 [DEBUG][       Thread-259782][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 15:40:45,885 [DEBUG][       Thread-259782][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 15:40:45,895 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 15:40:45,895 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 15:40:45,904 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 15:40:45,913 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 15:40:45,913 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 15:40:45,914 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 15:40:45,921 [DEBUG][       Thread-259782][   transport.py][1871] : EOF in transport thread
2025-06-13 15:40:53,690 [DEBUG][Thread-259785 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:40:55,923 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 15:40:55,923 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 15:40:55,923 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 15:40:55,926 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 15:40:56,395 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 15, 40, 38), 18.29, 27.89, 0.0, 20.7, 14.07, 0, 0, 0, 2, 0, 0),)
2025-06-13 15:40:56,395 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 15:40:38
2025-06-13 15:40:56,473 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 15:40:56,477 [DEBUG][       Thread-259786][   transport.py][1871] : starting thread (client mode): 0x867ff220
2025-06-13 15:40:56,477 [DEBUG][       Thread-259786][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 15:40:56,496 [DEBUG][       Thread-259786][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 15:40:56,496 [ INFO][       Thread-259786][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 15:40:56,499 [DEBUG][       Thread-259786][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 15:40:56,500 [DEBUG][       Thread-259786][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 15:40:56,500 [DEBUG][       Thread-259786][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 15:40:56,500 [DEBUG][       Thread-259786][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:40:56,500 [DEBUG][       Thread-259786][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:40:56,500 [DEBUG][       Thread-259786][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:40:56,500 [DEBUG][       Thread-259786][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:40:56,500 [DEBUG][       Thread-259786][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 15:40:56,500 [DEBUG][       Thread-259786][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 15:40:56,500 [DEBUG][       Thread-259786][   transport.py][1871] : client lang: <none>
2025-06-13 15:40:56,500 [DEBUG][       Thread-259786][   transport.py][1871] : server lang: <none>
2025-06-13 15:40:56,500 [DEBUG][       Thread-259786][   transport.py][1871] : kex follows: False
2025-06-13 15:40:56,500 [DEBUG][       Thread-259786][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 15:40:56,500 [DEBUG][       Thread-259786][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 15:40:56,500 [DEBUG][       Thread-259786][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 15:40:56,500 [DEBUG][       Thread-259786][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 15:40:56,500 [DEBUG][       Thread-259786][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 15:40:56,500 [DEBUG][       Thread-259786][   transport.py][1871] : Compression: none
2025-06-13 15:40:56,500 [DEBUG][       Thread-259786][   transport.py][1871] : === End of kex handshake ===
2025-06-13 15:40:56,517 [DEBUG][       Thread-259786][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 15:40:56,518 [DEBUG][       Thread-259786][   transport.py][1871] : Switch to new keys ...
2025-06-13 15:40:56,518 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 15:40:56,518 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 15:40:56,519 [DEBUG][       Thread-259786][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 15:40:56,519 [DEBUG][       Thread-259786][   transport.py][1871] : userauth is OK
2025-06-13 15:40:56,544 [ INFO][       Thread-259786][   transport.py][1871] : Authentication (password) successful!
2025-06-13 15:40:56,544 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 15:40:57,144 [DEBUG][       Thread-259786][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 15:40:57,144 [DEBUG][       Thread-259786][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 15:40:57,185 [DEBUG][       Thread-259786][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 15:40:57,185 [DEBUG][       Thread-259786][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 15:40:57,189 [DEBUG][       Thread-259786][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 15:40:57,201 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 15:40:57,201 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 15:40:57,203 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 15:40:57,205 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 15:40:57,211 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 15:40:57,213 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 15:40:57,213 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 15:40:57,214 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 15:40:57,214 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.569727 -999.00  +13.60  24.50     33   -2.00 1 1 1 1 1   887    0 16.49 13.68 ----- 21.4 24.5 58.0 30.5 16.9 -31.7 15.9 -33.1 16.8 -31.7 17.9 -30.7
2025-06-13 15:40:57,214 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 15:40:57,214 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 15:40:57,214 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.569727
2025-06-13 15:40:57,215 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 15:40:57,215 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 15:40:57,216 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 15:40:57,216 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 15:40:57,216 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 15:40:57,216 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T15:40:38', tmtdew=18.29, humidity=27.89, cloud=0.0, wind=20.7, temperature=14.07, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T13:40:24.413', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 15:40:57,216 [DEBUG][       Thread-259786][   transport.py][1871] : EOF in transport thread
2025-06-13 15:40:57,300 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 15:40:57,314 [DEBUG][       Thread-259789][   transport.py][1871] : starting thread (client mode): 0x867b71c0
2025-06-13 15:40:57,314 [DEBUG][       Thread-259789][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 15:40:57,333 [DEBUG][       Thread-259789][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 15:40:57,333 [ INFO][       Thread-259789][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 15:40:57,345 [DEBUG][       Thread-259789][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 15:40:57,345 [DEBUG][       Thread-259789][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 15:40:57,345 [DEBUG][       Thread-259789][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 15:40:57,345 [DEBUG][       Thread-259789][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:40:57,345 [DEBUG][       Thread-259789][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:40:57,345 [DEBUG][       Thread-259789][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:40:57,345 [DEBUG][       Thread-259789][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:40:57,345 [DEBUG][       Thread-259789][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 15:40:57,346 [DEBUG][       Thread-259789][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 15:40:57,346 [DEBUG][       Thread-259789][   transport.py][1871] : client lang: <none>
2025-06-13 15:40:57,346 [DEBUG][       Thread-259789][   transport.py][1871] : server lang: <none>
2025-06-13 15:40:57,346 [DEBUG][       Thread-259789][   transport.py][1871] : kex follows: False
2025-06-13 15:40:57,346 [DEBUG][       Thread-259789][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 15:40:57,346 [DEBUG][       Thread-259789][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 15:40:57,346 [DEBUG][       Thread-259789][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 15:40:57,346 [DEBUG][       Thread-259789][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 15:40:57,346 [DEBUG][       Thread-259789][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 15:40:57,346 [DEBUG][       Thread-259789][   transport.py][1871] : Compression: none
2025-06-13 15:40:57,346 [DEBUG][       Thread-259789][   transport.py][1871] : === End of kex handshake ===
2025-06-13 15:40:57,401 [DEBUG][       Thread-259789][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 15:40:57,402 [DEBUG][       Thread-259789][   transport.py][1871] : Switch to new keys ...
2025-06-13 15:40:57,403 [DEBUG][       Thread-259789][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 15:40:57,403 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 15:40:57,404 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 15:40:57,458 [DEBUG][       Thread-259789][   transport.py][1871] : userauth is OK
2025-06-13 15:40:57,458 [DEBUG][       Thread-259789][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 15:40:57,459 [DEBUG][       Thread-259789][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 15:40:57,459 [DEBUG][       Thread-259789][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 15:40:57,459 [DEBUG][       Thread-259789][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 15:40:57,480 [ INFO][       Thread-259789][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 15:40:57,480 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 15:40:57,481 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 15:40:58,488 [DEBUG][       Thread-259789][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 15:40:58,488 [DEBUG][       Thread-259789][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 15:40:58,535 [DEBUG][       Thread-259789][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 15:40:58,535 [DEBUG][       Thread-259789][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 15:40:58,546 [DEBUG][       Thread-259789][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 15:40:58,554 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 15:40:58,555 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 15:40:58,567 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 15:40:58,578 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 15:40:58,578 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 15:40:58,578 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 15:40:58,587 [DEBUG][       Thread-259789][   transport.py][1871] : EOF in transport thread
2025-06-13 15:41:02,336 [DEBUG][Thread-259791 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:41:02,710 [DEBUG][Thread-259792 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:41:03,394 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:41:03,395 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:41:08,588 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 15:41:08,588 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 15:41:08,588 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 15:41:08,590 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 15:41:09,048 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 15, 40, 38), 18.29, 27.89, 0.0, 20.7, 14.07, 0, 0, 0, 2, 0, 0),)
2025-06-13 15:41:09,048 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 15:40:38
2025-06-13 15:41:09,125 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 15:41:09,128 [DEBUG][       Thread-259793][   transport.py][1871] : starting thread (client mode): 0x867ffca0
2025-06-13 15:41:09,128 [DEBUG][       Thread-259793][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 15:41:09,143 [DEBUG][       Thread-259793][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 15:41:09,143 [ INFO][       Thread-259793][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 15:41:09,145 [DEBUG][       Thread-259793][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 15:41:09,145 [DEBUG][       Thread-259793][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 15:41:09,145 [DEBUG][       Thread-259793][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 15:41:09,145 [DEBUG][       Thread-259793][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:41:09,145 [DEBUG][       Thread-259793][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:41:09,145 [DEBUG][       Thread-259793][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:41:09,145 [DEBUG][       Thread-259793][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:41:09,145 [DEBUG][       Thread-259793][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 15:41:09,145 [DEBUG][       Thread-259793][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 15:41:09,145 [DEBUG][       Thread-259793][   transport.py][1871] : client lang: <none>
2025-06-13 15:41:09,145 [DEBUG][       Thread-259793][   transport.py][1871] : server lang: <none>
2025-06-13 15:41:09,145 [DEBUG][       Thread-259793][   transport.py][1871] : kex follows: False
2025-06-13 15:41:09,145 [DEBUG][       Thread-259793][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 15:41:09,145 [DEBUG][       Thread-259793][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 15:41:09,145 [DEBUG][       Thread-259793][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 15:41:09,145 [DEBUG][       Thread-259793][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 15:41:09,145 [DEBUG][       Thread-259793][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 15:41:09,145 [DEBUG][       Thread-259793][   transport.py][1871] : Compression: none
2025-06-13 15:41:09,145 [DEBUG][       Thread-259793][   transport.py][1871] : === End of kex handshake ===
2025-06-13 15:41:09,155 [DEBUG][       Thread-259793][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 15:41:09,156 [DEBUG][       Thread-259793][   transport.py][1871] : Switch to new keys ...
2025-06-13 15:41:09,156 [DEBUG][       Thread-259793][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 15:41:09,156 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 15:41:09,156 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 15:41:09,157 [DEBUG][       Thread-259793][   transport.py][1871] : userauth is OK
2025-06-13 15:41:09,171 [ INFO][       Thread-259793][   transport.py][1871] : Authentication (password) successful!
2025-06-13 15:41:09,171 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 15:41:09,790 [DEBUG][       Thread-259793][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 15:41:09,790 [DEBUG][       Thread-259793][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 15:41:09,833 [DEBUG][       Thread-259793][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 15:41:09,833 [DEBUG][       Thread-259793][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 15:41:09,836 [DEBUG][       Thread-259793][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 15:41:09,842 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 15:41:09,843 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 15:41:09,844 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 15:41:09,846 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 15:41:09,852 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 15:41:09,854 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 15:41:09,854 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 15:41:09,855 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 15:41:09,855 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.569727 -999.00  +13.60  24.50     33   -2.00 1 1 1 1 1   887    0 16.49 13.68 ----- 21.4 24.5 58.0 30.5 16.9 -31.7 15.9 -33.1 16.8 -31.7 17.9 -30.7
2025-06-13 15:41:09,855 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 15:41:09,855 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 15:41:09,855 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.569727
2025-06-13 15:41:09,856 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 15:41:09,856 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 15:41:09,856 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 15:41:09,857 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 15:41:09,857 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 15:41:09,857 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T15:40:38', tmtdew=18.29, humidity=27.89, cloud=0.0, wind=20.7, temperature=14.07, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T13:40:24.413', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 15:41:09,858 [DEBUG][       Thread-259793][   transport.py][1871] : EOF in transport thread
2025-06-13 15:41:09,941 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 15:41:10,117 [DEBUG][       Thread-259796][   transport.py][1871] : starting thread (client mode): 0x863ef6d0
2025-06-13 15:41:10,117 [DEBUG][       Thread-259796][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 15:41:10,135 [DEBUG][       Thread-259796][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 15:41:10,135 [ INFO][       Thread-259796][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 15:41:10,143 [DEBUG][       Thread-259796][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 15:41:10,143 [DEBUG][       Thread-259796][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 15:41:10,143 [DEBUG][       Thread-259796][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 15:41:10,143 [DEBUG][       Thread-259796][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:41:10,143 [DEBUG][       Thread-259796][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:41:10,143 [DEBUG][       Thread-259796][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:41:10,143 [DEBUG][       Thread-259796][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:41:10,143 [DEBUG][       Thread-259796][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 15:41:10,143 [DEBUG][       Thread-259796][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 15:41:10,143 [DEBUG][       Thread-259796][   transport.py][1871] : client lang: <none>
2025-06-13 15:41:10,143 [DEBUG][       Thread-259796][   transport.py][1871] : server lang: <none>
2025-06-13 15:41:10,143 [DEBUG][       Thread-259796][   transport.py][1871] : kex follows: False
2025-06-13 15:41:10,144 [DEBUG][       Thread-259796][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 15:41:10,144 [DEBUG][       Thread-259796][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 15:41:10,144 [DEBUG][       Thread-259796][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 15:41:10,144 [DEBUG][       Thread-259796][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 15:41:10,144 [DEBUG][       Thread-259796][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 15:41:10,144 [DEBUG][       Thread-259796][   transport.py][1871] : Compression: none
2025-06-13 15:41:10,144 [DEBUG][       Thread-259796][   transport.py][1871] : === End of kex handshake ===
2025-06-13 15:41:10,202 [DEBUG][       Thread-259796][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 15:41:10,202 [DEBUG][       Thread-259796][   transport.py][1871] : Switch to new keys ...
2025-06-13 15:41:10,203 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 15:41:10,204 [DEBUG][       Thread-259796][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 15:41:10,205 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 15:41:10,266 [DEBUG][       Thread-259796][   transport.py][1871] : userauth is OK
2025-06-13 15:41:10,266 [DEBUG][       Thread-259796][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 15:41:10,266 [DEBUG][       Thread-259796][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 15:41:10,266 [DEBUG][       Thread-259796][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 15:41:10,266 [DEBUG][       Thread-259796][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 15:41:10,280 [ INFO][       Thread-259796][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 15:41:10,281 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 15:41:10,281 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 15:41:11,134 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:41:11,135 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:41:11,284 [DEBUG][       Thread-259796][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 15:41:11,284 [DEBUG][       Thread-259796][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 15:41:11,335 [DEBUG][       Thread-259796][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 15:41:11,335 [DEBUG][       Thread-259796][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 15:41:11,344 [DEBUG][       Thread-259796][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 15:41:11,352 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 15:41:11,352 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 15:41:11,360 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 15:41:11,368 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 15:41:11,368 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 15:41:11,368 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 15:41:11,375 [DEBUG][       Thread-259796][   transport.py][1871] : EOF in transport thread
2025-06-13 15:41:11,730 [DEBUG][Thread-259798 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:41:20,750 [DEBUG][Thread-259799 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:41:21,378 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 15:41:21,378 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 15:41:21,378 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 15:41:21,381 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 15:41:21,709 [DEBUG][Thread-259800 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:41:21,835 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 15, 41, 9), 18.36, 27.75, 0.0, 21.39, 14.1, 0, 0, 0, 2, 0, 0),)
2025-06-13 15:41:21,835 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 15:41:09
2025-06-13 15:41:21,911 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 15:41:21,915 [DEBUG][       Thread-259801][   transport.py][1871] : starting thread (client mode): 0x867fe7a0
2025-06-13 15:41:21,915 [DEBUG][       Thread-259801][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 15:41:21,935 [DEBUG][       Thread-259801][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 15:41:21,935 [ INFO][       Thread-259801][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 15:41:21,939 [DEBUG][       Thread-259801][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 15:41:21,939 [DEBUG][       Thread-259801][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 15:41:21,939 [DEBUG][       Thread-259801][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 15:41:21,939 [DEBUG][       Thread-259801][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:41:21,939 [DEBUG][       Thread-259801][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:41:21,939 [DEBUG][       Thread-259801][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:41:21,939 [DEBUG][       Thread-259801][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:41:21,940 [DEBUG][       Thread-259801][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 15:41:21,940 [DEBUG][       Thread-259801][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 15:41:21,940 [DEBUG][       Thread-259801][   transport.py][1871] : client lang: <none>
2025-06-13 15:41:21,940 [DEBUG][       Thread-259801][   transport.py][1871] : server lang: <none>
2025-06-13 15:41:21,940 [DEBUG][       Thread-259801][   transport.py][1871] : kex follows: False
2025-06-13 15:41:21,940 [DEBUG][       Thread-259801][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 15:41:21,940 [DEBUG][       Thread-259801][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 15:41:21,940 [DEBUG][       Thread-259801][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 15:41:21,940 [DEBUG][       Thread-259801][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 15:41:21,940 [DEBUG][       Thread-259801][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 15:41:21,940 [DEBUG][       Thread-259801][   transport.py][1871] : Compression: none
2025-06-13 15:41:21,940 [DEBUG][       Thread-259801][   transport.py][1871] : === End of kex handshake ===
2025-06-13 15:41:21,956 [DEBUG][       Thread-259801][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 15:41:21,956 [DEBUG][       Thread-259801][   transport.py][1871] : Switch to new keys ...
2025-06-13 15:41:21,957 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 15:41:21,957 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 15:41:21,958 [DEBUG][       Thread-259801][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 15:41:21,958 [DEBUG][       Thread-259801][   transport.py][1871] : userauth is OK
2025-06-13 15:41:21,983 [ INFO][       Thread-259801][   transport.py][1871] : Authentication (password) successful!
2025-06-13 15:41:21,983 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 15:41:22,637 [DEBUG][       Thread-259801][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 15:41:22,637 [DEBUG][       Thread-259801][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 15:41:22,681 [DEBUG][       Thread-259801][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 15:41:22,681 [DEBUG][       Thread-259801][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 15:41:22,685 [DEBUG][       Thread-259801][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 15:41:22,698 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 15:41:22,699 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 15:41:22,701 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 15:41:22,702 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 15:41:22,709 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 15:41:22,711 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 15:41:22,711 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 15:41:22,712 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 15:41:22,712 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.569727 -999.00  +13.60  24.50     33   -2.00 1 1 1 1 1   887    0 16.49 13.68 ----- 21.4 24.5 58.0 30.5 16.9 -31.7 15.9 -33.1 16.8 -31.7 17.9 -30.7
2025-06-13 15:41:22,712 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 15:41:22,712 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 15:41:22,712 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.569727
2025-06-13 15:41:22,712 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 15:41:22,713 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 15:41:22,713 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 15:41:22,713 [DEBUG][       Thread-259801][   transport.py][1871] : EOF in transport thread
2025-06-13 15:41:22,713 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 15:41:22,714 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 15:41:22,714 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T15:41:09', tmtdew=18.36, humidity=27.75, cloud=0.0, wind=21.39, temperature=14.1, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T13:40:24.413', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 15:41:22,797 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 15:41:22,815 [DEBUG][       Thread-259804][   transport.py][1871] : starting thread (client mode): 0x863a43a0
2025-06-13 15:41:22,815 [DEBUG][       Thread-259804][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 15:41:22,834 [DEBUG][       Thread-259804][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 15:41:22,834 [ INFO][       Thread-259804][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 15:41:22,841 [DEBUG][       Thread-259804][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 15:41:22,842 [DEBUG][       Thread-259804][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 15:41:22,842 [DEBUG][       Thread-259804][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 15:41:22,842 [DEBUG][       Thread-259804][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:41:22,842 [DEBUG][       Thread-259804][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:41:22,842 [DEBUG][       Thread-259804][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:41:22,842 [DEBUG][       Thread-259804][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:41:22,842 [DEBUG][       Thread-259804][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 15:41:22,842 [DEBUG][       Thread-259804][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 15:41:22,842 [DEBUG][       Thread-259804][   transport.py][1871] : client lang: <none>
2025-06-13 15:41:22,842 [DEBUG][       Thread-259804][   transport.py][1871] : server lang: <none>
2025-06-13 15:41:22,842 [DEBUG][       Thread-259804][   transport.py][1871] : kex follows: False
2025-06-13 15:41:22,842 [DEBUG][       Thread-259804][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 15:41:22,842 [DEBUG][       Thread-259804][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 15:41:22,843 [DEBUG][       Thread-259804][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 15:41:22,843 [DEBUG][       Thread-259804][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 15:41:22,843 [DEBUG][       Thread-259804][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 15:41:22,843 [DEBUG][       Thread-259804][   transport.py][1871] : Compression: none
2025-06-13 15:41:22,843 [DEBUG][       Thread-259804][   transport.py][1871] : === End of kex handshake ===
2025-06-13 15:41:22,901 [DEBUG][       Thread-259804][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 15:41:22,902 [DEBUG][       Thread-259804][   transport.py][1871] : Switch to new keys ...
2025-06-13 15:41:22,902 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 15:41:22,903 [DEBUG][       Thread-259804][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 15:41:22,904 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 15:41:22,957 [DEBUG][       Thread-259804][   transport.py][1871] : userauth is OK
2025-06-13 15:41:22,957 [DEBUG][       Thread-259804][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 15:41:22,957 [DEBUG][       Thread-259804][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 15:41:22,957 [DEBUG][       Thread-259804][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 15:41:22,957 [DEBUG][       Thread-259804][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 15:41:22,971 [ INFO][       Thread-259804][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 15:41:22,971 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 15:41:22,971 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 15:41:23,963 [DEBUG][       Thread-259804][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 15:41:23,963 [DEBUG][       Thread-259804][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 15:41:24,015 [DEBUG][       Thread-259804][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 15:41:24,015 [DEBUG][       Thread-259804][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 15:41:24,027 [DEBUG][       Thread-259804][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 15:41:24,039 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 15:41:24,039 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 15:41:24,048 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 15:41:24,057 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 15:41:24,058 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 15:41:24,058 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 15:41:24,066 [DEBUG][       Thread-259804][   transport.py][1871] : EOF in transport thread
2025-06-13 15:41:29,770 [DEBUG][Thread-259806 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:41:34,063 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 15:41:34,063 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 15:41:34,063 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 15:41:34,066 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 15:41:34,519 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 15, 41, 9), 18.36, 27.75, 0.0, 21.39, 14.1, 0, 0, 0, 2, 0, 0),)
2025-06-13 15:41:34,519 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 15:41:09
2025-06-13 15:41:34,594 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 15:41:34,598 [DEBUG][       Thread-259807][   transport.py][1871] : starting thread (client mode): 0x86350550
2025-06-13 15:41:34,598 [DEBUG][       Thread-259807][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 15:41:34,620 [DEBUG][       Thread-259807][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 15:41:34,620 [ INFO][       Thread-259807][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 15:41:34,623 [DEBUG][       Thread-259807][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 15:41:34,623 [DEBUG][       Thread-259807][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 15:41:34,623 [DEBUG][       Thread-259807][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 15:41:34,623 [DEBUG][       Thread-259807][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:41:34,623 [DEBUG][       Thread-259807][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:41:34,623 [DEBUG][       Thread-259807][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:41:34,623 [DEBUG][       Thread-259807][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:41:34,623 [DEBUG][       Thread-259807][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 15:41:34,623 [DEBUG][       Thread-259807][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 15:41:34,623 [DEBUG][       Thread-259807][   transport.py][1871] : client lang: <none>
2025-06-13 15:41:34,623 [DEBUG][       Thread-259807][   transport.py][1871] : server lang: <none>
2025-06-13 15:41:34,623 [DEBUG][       Thread-259807][   transport.py][1871] : kex follows: False
2025-06-13 15:41:34,623 [DEBUG][       Thread-259807][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 15:41:34,623 [DEBUG][       Thread-259807][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 15:41:34,624 [DEBUG][       Thread-259807][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 15:41:34,624 [DEBUG][       Thread-259807][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 15:41:34,624 [DEBUG][       Thread-259807][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 15:41:34,624 [DEBUG][       Thread-259807][   transport.py][1871] : Compression: none
2025-06-13 15:41:34,624 [DEBUG][       Thread-259807][   transport.py][1871] : === End of kex handshake ===
2025-06-13 15:41:34,641 [DEBUG][       Thread-259807][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 15:41:34,641 [DEBUG][       Thread-259807][   transport.py][1871] : Switch to new keys ...
2025-06-13 15:41:34,642 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 15:41:34,642 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 15:41:34,642 [DEBUG][       Thread-259807][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 15:41:34,643 [DEBUG][       Thread-259807][   transport.py][1871] : userauth is OK
2025-06-13 15:41:34,656 [ INFO][       Thread-259807][   transport.py][1871] : Authentication (password) successful!
2025-06-13 15:41:34,657 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 15:41:35,323 [DEBUG][       Thread-259807][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 15:41:35,323 [DEBUG][       Thread-259807][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 15:41:35,365 [DEBUG][       Thread-259807][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 15:41:35,365 [DEBUG][       Thread-259807][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 15:41:35,369 [DEBUG][       Thread-259807][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 15:41:35,381 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 15:41:35,381 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 15:41:35,383 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 15:41:35,384 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 15:41:35,387 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 15:41:35,388 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 15:41:35,388 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 15:41:35,388 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 15:41:35,388 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.570074 -999.00  +13.70  26.02     33   -2.00 1 1 1 1 1   887    0 16.14 10.14 ----- 26.6 26.0 60.2 28.3 16.9 -31.4 15.9 -33.3 16.8 -31.9 17.9 -30.3
2025-06-13 15:41:35,388 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 15:41:35,388 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 15:41:35,388 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.570074
2025-06-13 15:41:35,388 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 15:41:35,388 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 15:41:35,388 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 15:41:35,388 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 15:41:35,388 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 15:41:35,388 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T15:41:09', tmtdew=18.36, humidity=27.75, cloud=0.0, wind=21.39, temperature=14.1, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T13:40:54.394', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 15:41:35,389 [DEBUG][       Thread-259807][   transport.py][1871] : EOF in transport thread
2025-06-13 15:41:35,460 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 15:41:35,471 [DEBUG][       Thread-259810][   transport.py][1871] : starting thread (client mode): 0x867fcdc0
2025-06-13 15:41:35,471 [DEBUG][       Thread-259810][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 15:41:35,491 [DEBUG][       Thread-259810][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 15:41:35,491 [ INFO][       Thread-259810][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 15:41:35,498 [DEBUG][       Thread-259810][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 15:41:35,498 [DEBUG][       Thread-259810][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 15:41:35,498 [DEBUG][       Thread-259810][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 15:41:35,498 [DEBUG][       Thread-259810][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:41:35,498 [DEBUG][       Thread-259810][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:41:35,498 [DEBUG][       Thread-259810][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:41:35,498 [DEBUG][       Thread-259810][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:41:35,498 [DEBUG][       Thread-259810][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 15:41:35,498 [DEBUG][       Thread-259810][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 15:41:35,498 [DEBUG][       Thread-259810][   transport.py][1871] : client lang: <none>
2025-06-13 15:41:35,498 [DEBUG][       Thread-259810][   transport.py][1871] : server lang: <none>
2025-06-13 15:41:35,498 [DEBUG][       Thread-259810][   transport.py][1871] : kex follows: False
2025-06-13 15:41:35,498 [DEBUG][       Thread-259810][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 15:41:35,498 [DEBUG][       Thread-259810][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 15:41:35,498 [DEBUG][       Thread-259810][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 15:41:35,498 [DEBUG][       Thread-259810][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 15:41:35,498 [DEBUG][       Thread-259810][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 15:41:35,498 [DEBUG][       Thread-259810][   transport.py][1871] : Compression: none
2025-06-13 15:41:35,498 [DEBUG][       Thread-259810][   transport.py][1871] : === End of kex handshake ===
2025-06-13 15:41:35,557 [DEBUG][       Thread-259810][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 15:41:35,558 [DEBUG][       Thread-259810][   transport.py][1871] : Switch to new keys ...
2025-06-13 15:41:35,558 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 15:41:35,559 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 15:41:35,560 [DEBUG][       Thread-259810][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 15:41:35,613 [DEBUG][       Thread-259810][   transport.py][1871] : userauth is OK
2025-06-13 15:41:35,613 [DEBUG][       Thread-259810][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 15:41:35,613 [DEBUG][       Thread-259810][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 15:41:35,613 [DEBUG][       Thread-259810][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 15:41:35,613 [DEBUG][       Thread-259810][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 15:41:35,637 [ INFO][       Thread-259810][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 15:41:35,638 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 15:41:35,638 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 15:41:36,624 [DEBUG][       Thread-259810][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 15:41:36,624 [DEBUG][       Thread-259810][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 15:41:36,675 [DEBUG][       Thread-259810][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 15:41:36,675 [DEBUG][       Thread-259810][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 15:41:36,685 [DEBUG][       Thread-259810][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 15:41:36,693 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 15:41:36,693 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 15:41:36,700 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 15:41:36,708 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 15:41:36,709 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 15:41:36,709 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 15:41:36,716 [DEBUG][       Thread-259810][   transport.py][1871] : EOF in transport thread
2025-06-13 15:41:38,803 [DEBUG][Thread-259812 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:41:46,719 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 15:41:46,719 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 15:41:46,719 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 15:41:46,722 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 15:41:47,177 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 15, 41, 41), 18.41, 27.63, 0.0, 21.6, 14.04, 0, 0, 0, 2, 0, 0),)
2025-06-13 15:41:47,178 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 15:41:41
2025-06-13 15:41:47,256 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 15:41:47,260 [DEBUG][       Thread-259813][   transport.py][1871] : starting thread (client mode): 0x863c80a0
2025-06-13 15:41:47,260 [DEBUG][       Thread-259813][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 15:41:47,282 [DEBUG][       Thread-259813][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 15:41:47,282 [ INFO][       Thread-259813][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 15:41:47,286 [DEBUG][       Thread-259813][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 15:41:47,286 [DEBUG][       Thread-259813][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 15:41:47,286 [DEBUG][       Thread-259813][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 15:41:47,286 [DEBUG][       Thread-259813][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:41:47,286 [DEBUG][       Thread-259813][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:41:47,286 [DEBUG][       Thread-259813][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:41:47,286 [DEBUG][       Thread-259813][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:41:47,286 [DEBUG][       Thread-259813][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 15:41:47,286 [DEBUG][       Thread-259813][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 15:41:47,286 [DEBUG][       Thread-259813][   transport.py][1871] : client lang: <none>
2025-06-13 15:41:47,286 [DEBUG][       Thread-259813][   transport.py][1871] : server lang: <none>
2025-06-13 15:41:47,286 [DEBUG][       Thread-259813][   transport.py][1871] : kex follows: False
2025-06-13 15:41:47,286 [DEBUG][       Thread-259813][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 15:41:47,286 [DEBUG][       Thread-259813][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 15:41:47,286 [DEBUG][       Thread-259813][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 15:41:47,286 [DEBUG][       Thread-259813][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 15:41:47,287 [DEBUG][       Thread-259813][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 15:41:47,287 [DEBUG][       Thread-259813][   transport.py][1871] : Compression: none
2025-06-13 15:41:47,287 [DEBUG][       Thread-259813][   transport.py][1871] : === End of kex handshake ===
2025-06-13 15:41:47,303 [DEBUG][       Thread-259813][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 15:41:47,303 [DEBUG][       Thread-259813][   transport.py][1871] : Switch to new keys ...
2025-06-13 15:41:47,304 [DEBUG][       Thread-259813][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 15:41:47,304 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 15:41:47,304 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 15:41:47,305 [DEBUG][       Thread-259813][   transport.py][1871] : userauth is OK
2025-06-13 15:41:47,331 [ INFO][       Thread-259813][   transport.py][1871] : Authentication (password) successful!
2025-06-13 15:41:47,331 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 15:41:47,822 [DEBUG][Thread-259815 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:41:47,969 [DEBUG][       Thread-259813][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 15:41:47,969 [DEBUG][       Thread-259813][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 15:41:48,013 [DEBUG][       Thread-259813][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 15:41:48,013 [DEBUG][       Thread-259813][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 15:41:48,016 [DEBUG][       Thread-259813][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 15:41:48,028 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 15:41:48,029 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 15:41:48,031 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 15:41:48,032 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 15:41:48,037 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 15:41:48,039 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 15:41:48,039 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 15:41:48,039 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 15:41:48,040 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.570074 -999.00  +13.70  26.02     33   -2.00 1 1 1 1 1   887    0 16.14 10.14 ----- 26.6 26.0 60.2 28.3 16.9 -31.4 15.9 -33.3 16.8 -31.9 17.9 -30.3
2025-06-13 15:41:48,040 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 15:41:48,040 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 15:41:48,040 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.570074
2025-06-13 15:41:48,040 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 15:41:48,041 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 15:41:48,041 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 15:41:48,041 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 15:41:48,041 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 15:41:48,041 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T15:41:41', tmtdew=18.41, humidity=27.63, cloud=0.0, wind=21.6, temperature=14.04, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T13:40:54.394', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 15:41:48,041 [DEBUG][       Thread-259813][   transport.py][1871] : EOF in transport thread
2025-06-13 15:41:48,124 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 15:41:48,139 [DEBUG][       Thread-259817][   transport.py][1871] : starting thread (client mode): 0x863a5780
2025-06-13 15:41:48,139 [DEBUG][       Thread-259817][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 15:41:48,154 [DEBUG][       Thread-259817][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 15:41:48,154 [ INFO][       Thread-259817][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 15:41:48,162 [DEBUG][       Thread-259817][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 15:41:48,162 [DEBUG][       Thread-259817][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 15:41:48,162 [DEBUG][       Thread-259817][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 15:41:48,162 [DEBUG][       Thread-259817][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:41:48,162 [DEBUG][       Thread-259817][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:41:48,162 [DEBUG][       Thread-259817][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:41:48,162 [DEBUG][       Thread-259817][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:41:48,162 [DEBUG][       Thread-259817][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 15:41:48,162 [DEBUG][       Thread-259817][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 15:41:48,163 [DEBUG][       Thread-259817][   transport.py][1871] : client lang: <none>
2025-06-13 15:41:48,163 [DEBUG][       Thread-259817][   transport.py][1871] : server lang: <none>
2025-06-13 15:41:48,163 [DEBUG][       Thread-259817][   transport.py][1871] : kex follows: False
2025-06-13 15:41:48,163 [DEBUG][       Thread-259817][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 15:41:48,163 [DEBUG][       Thread-259817][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 15:41:48,163 [DEBUG][       Thread-259817][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 15:41:48,163 [DEBUG][       Thread-259817][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 15:41:48,163 [DEBUG][       Thread-259817][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 15:41:48,163 [DEBUG][       Thread-259817][   transport.py][1871] : Compression: none
2025-06-13 15:41:48,163 [DEBUG][       Thread-259817][   transport.py][1871] : === End of kex handshake ===
2025-06-13 15:41:48,222 [DEBUG][       Thread-259817][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 15:41:48,222 [DEBUG][       Thread-259817][   transport.py][1871] : Switch to new keys ...
2025-06-13 15:41:48,223 [DEBUG][       Thread-259817][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 15:41:48,223 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 15:41:48,224 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 15:41:48,277 [DEBUG][       Thread-259817][   transport.py][1871] : userauth is OK
2025-06-13 15:41:48,277 [DEBUG][       Thread-259817][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 15:41:48,278 [DEBUG][       Thread-259817][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 15:41:48,278 [DEBUG][       Thread-259817][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 15:41:48,278 [DEBUG][       Thread-259817][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 15:41:48,296 [ INFO][       Thread-259817][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 15:41:48,297 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 15:41:48,297 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 15:41:49,325 [DEBUG][       Thread-259817][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 15:41:49,325 [DEBUG][       Thread-259817][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 15:41:49,376 [DEBUG][       Thread-259817][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 15:41:49,376 [DEBUG][       Thread-259817][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 15:41:49,385 [DEBUG][       Thread-259817][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 15:41:49,394 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 15:41:49,395 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 15:41:49,404 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 15:41:49,413 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 15:41:49,413 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 15:41:49,413 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 15:41:49,421 [DEBUG][       Thread-259817][   transport.py][1871] : EOF in transport thread
2025-06-13 15:41:56,846 [DEBUG][Thread-259819 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:41:59,424 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 15:41:59,424 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 15:41:59,424 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 15:41:59,427 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 15:41:59,893 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 15, 41, 41), 18.41, 27.63, 0.0, 21.6, 14.04, 0, 0, 0, 2, 0, 0),)
2025-06-13 15:41:59,893 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 15:41:41
2025-06-13 15:41:59,970 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 15:41:59,974 [DEBUG][       Thread-259820][   transport.py][1871] : starting thread (client mode): 0x863504f0
2025-06-13 15:41:59,974 [DEBUG][       Thread-259820][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 15:41:59,994 [DEBUG][       Thread-259820][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 15:41:59,994 [ INFO][       Thread-259820][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 15:41:59,996 [DEBUG][       Thread-259820][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 15:41:59,996 [DEBUG][       Thread-259820][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 15:41:59,996 [DEBUG][       Thread-259820][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 15:41:59,996 [DEBUG][       Thread-259820][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:41:59,996 [DEBUG][       Thread-259820][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:41:59,996 [DEBUG][       Thread-259820][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:41:59,996 [DEBUG][       Thread-259820][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:41:59,996 [DEBUG][       Thread-259820][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 15:41:59,996 [DEBUG][       Thread-259820][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 15:41:59,996 [DEBUG][       Thread-259820][   transport.py][1871] : client lang: <none>
2025-06-13 15:41:59,996 [DEBUG][       Thread-259820][   transport.py][1871] : server lang: <none>
2025-06-13 15:41:59,996 [DEBUG][       Thread-259820][   transport.py][1871] : kex follows: False
2025-06-13 15:41:59,996 [DEBUG][       Thread-259820][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 15:41:59,996 [DEBUG][       Thread-259820][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 15:41:59,996 [DEBUG][       Thread-259820][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 15:41:59,996 [DEBUG][       Thread-259820][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 15:41:59,996 [DEBUG][       Thread-259820][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 15:41:59,996 [DEBUG][       Thread-259820][   transport.py][1871] : Compression: none
2025-06-13 15:41:59,996 [DEBUG][       Thread-259820][   transport.py][1871] : === End of kex handshake ===
2025-06-13 15:42:00,004 [DEBUG][       Thread-259820][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 15:42:00,005 [DEBUG][       Thread-259820][   transport.py][1871] : Switch to new keys ...
2025-06-13 15:42:00,005 [DEBUG][       Thread-259820][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 15:42:00,005 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 15:42:00,005 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 15:42:00,006 [DEBUG][       Thread-259820][   transport.py][1871] : userauth is OK
2025-06-13 15:42:00,020 [ INFO][       Thread-259820][   transport.py][1871] : Authentication (password) successful!
2025-06-13 15:42:00,020 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 15:42:00,602 [DEBUG][       Thread-259820][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 15:42:00,602 [DEBUG][       Thread-259820][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 15:42:00,645 [DEBUG][       Thread-259820][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 15:42:00,645 [DEBUG][       Thread-259820][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 15:42:00,648 [DEBUG][       Thread-259820][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 15:42:00,662 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 15:42:00,662 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 15:42:00,664 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 15:42:00,665 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 15:42:00,670 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 15:42:00,672 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 15:42:00,672 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 15:42:00,673 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 15:42:00,673 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.570769 -999.00  +13.60  25.98     32   -2.30 1 1 1 1 1   887    0 15.77 6.92 ----- 27.2 26.0 56.8 35.4 16.9 -31.9 15.9 -34.3 16.8 -32.3 17.9 -30.5
2025-06-13 15:42:00,673 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 15:42:00,673 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 15:42:00,673 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.570769
2025-06-13 15:42:00,674 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 15:42:00,675 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 15:42:00,675 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 15:42:00,675 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 15:42:00,675 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 15:42:00,675 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T15:41:41', tmtdew=18.41, humidity=27.63, cloud=0.0, wind=21.6, temperature=14.04, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T13:41:54.442', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 15:42:00,675 [DEBUG][       Thread-259820][   transport.py][1871] : EOF in transport thread
2025-06-13 15:42:00,758 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 15:42:00,770 [DEBUG][       Thread-259823][   transport.py][1871] : starting thread (client mode): 0x867b74c0
2025-06-13 15:42:00,770 [DEBUG][       Thread-259823][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 15:42:00,784 [DEBUG][       Thread-259823][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 15:42:00,784 [ INFO][       Thread-259823][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 15:42:00,793 [DEBUG][       Thread-259823][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 15:42:00,793 [DEBUG][       Thread-259823][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 15:42:00,793 [DEBUG][       Thread-259823][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 15:42:00,793 [DEBUG][       Thread-259823][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:42:00,793 [DEBUG][       Thread-259823][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:42:00,793 [DEBUG][       Thread-259823][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:42:00,793 [DEBUG][       Thread-259823][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:42:00,793 [DEBUG][       Thread-259823][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 15:42:00,794 [DEBUG][       Thread-259823][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 15:42:00,794 [DEBUG][       Thread-259823][   transport.py][1871] : client lang: <none>
2025-06-13 15:42:00,794 [DEBUG][       Thread-259823][   transport.py][1871] : server lang: <none>
2025-06-13 15:42:00,794 [DEBUG][       Thread-259823][   transport.py][1871] : kex follows: False
2025-06-13 15:42:00,794 [DEBUG][       Thread-259823][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 15:42:00,794 [DEBUG][       Thread-259823][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 15:42:00,794 [DEBUG][       Thread-259823][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 15:42:00,794 [DEBUG][       Thread-259823][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 15:42:00,794 [DEBUG][       Thread-259823][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 15:42:00,794 [DEBUG][       Thread-259823][   transport.py][1871] : Compression: none
2025-06-13 15:42:00,794 [DEBUG][       Thread-259823][   transport.py][1871] : === End of kex handshake ===
2025-06-13 15:42:00,850 [DEBUG][       Thread-259823][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 15:42:00,850 [DEBUG][       Thread-259823][   transport.py][1871] : Switch to new keys ...
2025-06-13 15:42:00,851 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 15:42:00,851 [DEBUG][       Thread-259823][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 15:42:00,852 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 15:42:00,906 [DEBUG][       Thread-259823][   transport.py][1871] : userauth is OK
2025-06-13 15:42:00,907 [DEBUG][       Thread-259823][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 15:42:00,907 [DEBUG][       Thread-259823][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 15:42:00,907 [DEBUG][       Thread-259823][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 15:42:00,907 [DEBUG][       Thread-259823][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 15:42:00,929 [ INFO][       Thread-259823][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 15:42:00,930 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 15:42:00,930 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 15:42:01,944 [DEBUG][       Thread-259823][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 15:42:01,944 [DEBUG][       Thread-259823][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 15:42:01,995 [DEBUG][       Thread-259823][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 15:42:01,995 [DEBUG][       Thread-259823][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 15:42:02,005 [DEBUG][       Thread-259823][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 15:42:02,018 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 15:42:02,018 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 15:42:02,029 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 15:42:02,040 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 15:42:02,040 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 15:42:02,041 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 15:42:02,049 [DEBUG][       Thread-259823][   transport.py][1871] : EOF in transport thread
2025-06-13 15:42:03,466 [DEBUG][Thread-259825 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:42:04,509 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:42:04,510 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:42:05,883 [DEBUG][Thread-259826 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:42:11,273 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:42:11,274 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:42:12,051 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 15:42:12,051 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 15:42:12,052 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 15:42:12,054 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 15:42:12,519 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 15, 41, 41), 18.41, 27.63, 0.0, 21.6, 14.04, 0, 0, 0, 2, 0, 0),)
2025-06-13 15:42:12,519 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 15:41:41
2025-06-13 15:42:12,596 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 15:42:12,602 [DEBUG][       Thread-259827][   transport.py][1871] : starting thread (client mode): 0x867fce50
2025-06-13 15:42:12,603 [DEBUG][       Thread-259827][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 15:42:12,624 [DEBUG][       Thread-259827][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 15:42:12,624 [ INFO][       Thread-259827][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 15:42:12,627 [DEBUG][       Thread-259827][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 15:42:12,627 [DEBUG][       Thread-259827][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 15:42:12,627 [DEBUG][       Thread-259827][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 15:42:12,627 [DEBUG][       Thread-259827][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:42:12,627 [DEBUG][       Thread-259827][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:42:12,627 [DEBUG][       Thread-259827][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:42:12,627 [DEBUG][       Thread-259827][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:42:12,627 [DEBUG][       Thread-259827][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 15:42:12,627 [DEBUG][       Thread-259827][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 15:42:12,627 [DEBUG][       Thread-259827][   transport.py][1871] : client lang: <none>
2025-06-13 15:42:12,627 [DEBUG][       Thread-259827][   transport.py][1871] : server lang: <none>
2025-06-13 15:42:12,628 [DEBUG][       Thread-259827][   transport.py][1871] : kex follows: False
2025-06-13 15:42:12,628 [DEBUG][       Thread-259827][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 15:42:12,628 [DEBUG][       Thread-259827][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 15:42:12,628 [DEBUG][       Thread-259827][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 15:42:12,628 [DEBUG][       Thread-259827][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 15:42:12,628 [DEBUG][       Thread-259827][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 15:42:12,628 [DEBUG][       Thread-259827][   transport.py][1871] : Compression: none
2025-06-13 15:42:12,628 [DEBUG][       Thread-259827][   transport.py][1871] : === End of kex handshake ===
2025-06-13 15:42:12,644 [DEBUG][       Thread-259827][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 15:42:12,645 [DEBUG][       Thread-259827][   transport.py][1871] : Switch to new keys ...
2025-06-13 15:42:12,645 [DEBUG][       Thread-259827][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 15:42:12,646 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 15:42:12,646 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 15:42:12,647 [DEBUG][       Thread-259827][   transport.py][1871] : userauth is OK
2025-06-13 15:42:12,671 [ INFO][       Thread-259827][   transport.py][1871] : Authentication (password) successful!
2025-06-13 15:42:12,672 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 15:42:13,301 [DEBUG][       Thread-259827][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 15:42:13,302 [DEBUG][       Thread-259827][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 15:42:13,349 [DEBUG][       Thread-259827][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 15:42:13,349 [DEBUG][       Thread-259827][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 15:42:13,352 [DEBUG][       Thread-259827][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 15:42:13,365 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 15:42:13,365 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 15:42:13,367 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 15:42:13,369 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 15:42:13,373 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 15:42:13,375 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 15:42:13,375 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 15:42:13,376 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 15:42:13,376 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.570769 -999.00  +13.60  25.98     32   -2.30 1 1 1 1 1   887    0 15.77 6.92 ----- 27.2 26.0 56.8 35.4 16.9 -31.9 15.9 -34.3 16.8 -32.3 17.9 -30.5
2025-06-13 15:42:13,376 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 15:42:13,376 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 15:42:13,376 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.570769
2025-06-13 15:42:13,376 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 15:42:13,377 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 15:42:13,377 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 15:42:13,377 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 15:42:13,377 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 15:42:13,377 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T15:41:41', tmtdew=18.41, humidity=27.63, cloud=0.0, wind=21.6, temperature=14.04, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T13:41:54.442', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 15:42:13,377 [DEBUG][       Thread-259827][   transport.py][1871] : EOF in transport thread
2025-06-13 15:42:13,459 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 15:42:13,471 [DEBUG][       Thread-259830][   transport.py][1871] : starting thread (client mode): 0x863bf7f0
2025-06-13 15:42:13,471 [DEBUG][       Thread-259830][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 15:42:13,485 [DEBUG][       Thread-259830][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 15:42:13,485 [ INFO][       Thread-259830][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 15:42:13,497 [DEBUG][       Thread-259830][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 15:42:13,497 [DEBUG][       Thread-259830][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 15:42:13,497 [DEBUG][       Thread-259830][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 15:42:13,497 [DEBUG][       Thread-259830][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:42:13,497 [DEBUG][       Thread-259830][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:42:13,497 [DEBUG][       Thread-259830][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:42:13,497 [DEBUG][       Thread-259830][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:42:13,497 [DEBUG][       Thread-259830][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 15:42:13,497 [DEBUG][       Thread-259830][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 15:42:13,497 [DEBUG][       Thread-259830][   transport.py][1871] : client lang: <none>
2025-06-13 15:42:13,497 [DEBUG][       Thread-259830][   transport.py][1871] : server lang: <none>
2025-06-13 15:42:13,497 [DEBUG][       Thread-259830][   transport.py][1871] : kex follows: False
2025-06-13 15:42:13,497 [DEBUG][       Thread-259830][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 15:42:13,497 [DEBUG][       Thread-259830][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 15:42:13,497 [DEBUG][       Thread-259830][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 15:42:13,498 [DEBUG][       Thread-259830][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 15:42:13,498 [DEBUG][       Thread-259830][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 15:42:13,498 [DEBUG][       Thread-259830][   transport.py][1871] : Compression: none
2025-06-13 15:42:13,498 [DEBUG][       Thread-259830][   transport.py][1871] : === End of kex handshake ===
2025-06-13 15:42:13,555 [DEBUG][       Thread-259830][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 15:42:13,555 [DEBUG][       Thread-259830][   transport.py][1871] : Switch to new keys ...
2025-06-13 15:42:13,556 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 15:42:13,556 [DEBUG][       Thread-259830][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 15:42:13,557 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 15:42:13,617 [DEBUG][       Thread-259830][   transport.py][1871] : userauth is OK
2025-06-13 15:42:13,618 [DEBUG][       Thread-259830][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 15:42:13,618 [DEBUG][       Thread-259830][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 15:42:13,618 [DEBUG][       Thread-259830][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 15:42:13,618 [DEBUG][       Thread-259830][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 15:42:13,637 [ INFO][       Thread-259830][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 15:42:13,637 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 15:42:13,638 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 15:42:14,650 [DEBUG][       Thread-259830][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 15:42:14,651 [DEBUG][       Thread-259830][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 15:42:14,699 [DEBUG][       Thread-259830][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 15:42:14,699 [DEBUG][       Thread-259830][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 15:42:14,707 [DEBUG][       Thread-259830][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 15:42:14,714 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 15:42:14,715 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 15:42:14,722 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 15:42:14,730 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 15:42:14,730 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 15:42:14,730 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 15:42:14,738 [DEBUG][       Thread-259830][   transport.py][1871] : EOF in transport thread
2025-06-13 15:42:14,904 [DEBUG][Thread-259832 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:42:21,742 [DEBUG][Thread-259833 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:42:23,925 [DEBUG][Thread-259834 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:42:24,735 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 15:42:24,735 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 15:42:24,735 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 15:42:24,738 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 15:42:25,192 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 15, 42, 13), 18.34, 27.89, 0.0, 17.98, 14.02, 0, 0, 0, 2, 0, 0),)
2025-06-13 15:42:25,192 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 15:42:13
2025-06-13 15:42:25,270 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 15:42:25,275 [DEBUG][       Thread-259835][   transport.py][1871] : starting thread (client mode): 0x86368c40
2025-06-13 15:42:25,275 [DEBUG][       Thread-259835][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 15:42:25,296 [DEBUG][       Thread-259835][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 15:42:25,296 [ INFO][       Thread-259835][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 15:42:25,299 [DEBUG][       Thread-259835][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 15:42:25,299 [DEBUG][       Thread-259835][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 15:42:25,299 [DEBUG][       Thread-259835][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 15:42:25,299 [DEBUG][       Thread-259835][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:42:25,299 [DEBUG][       Thread-259835][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:42:25,299 [DEBUG][       Thread-259835][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:42:25,300 [DEBUG][       Thread-259835][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:42:25,300 [DEBUG][       Thread-259835][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 15:42:25,300 [DEBUG][       Thread-259835][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 15:42:25,300 [DEBUG][       Thread-259835][   transport.py][1871] : client lang: <none>
2025-06-13 15:42:25,300 [DEBUG][       Thread-259835][   transport.py][1871] : server lang: <none>
2025-06-13 15:42:25,300 [DEBUG][       Thread-259835][   transport.py][1871] : kex follows: False
2025-06-13 15:42:25,300 [DEBUG][       Thread-259835][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 15:42:25,300 [DEBUG][       Thread-259835][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 15:42:25,300 [DEBUG][       Thread-259835][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 15:42:25,300 [DEBUG][       Thread-259835][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 15:42:25,300 [DEBUG][       Thread-259835][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 15:42:25,300 [DEBUG][       Thread-259835][   transport.py][1871] : Compression: none
2025-06-13 15:42:25,300 [DEBUG][       Thread-259835][   transport.py][1871] : === End of kex handshake ===
2025-06-13 15:42:25,318 [DEBUG][       Thread-259835][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 15:42:25,318 [DEBUG][       Thread-259835][   transport.py][1871] : Switch to new keys ...
2025-06-13 15:42:25,319 [DEBUG][       Thread-259835][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 15:42:25,319 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 15:42:25,319 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 15:42:25,321 [DEBUG][       Thread-259835][   transport.py][1871] : userauth is OK
2025-06-13 15:42:25,346 [ INFO][       Thread-259835][   transport.py][1871] : Authentication (password) successful!
2025-06-13 15:42:25,346 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 15:42:26,010 [DEBUG][       Thread-259835][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 15:42:26,011 [DEBUG][       Thread-259835][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 15:42:26,053 [DEBUG][       Thread-259835][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 15:42:26,053 [DEBUG][       Thread-259835][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 15:42:26,057 [DEBUG][       Thread-259835][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 15:42:26,068 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 15:42:26,069 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 15:42:26,071 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 15:42:26,073 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 15:42:26,078 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 15:42:26,080 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 15:42:26,080 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 15:42:26,081 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 15:42:26,081 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.570769 -999.00  +13.60  25.98     32   -2.30 1 1 1 1 1   887    0 15.77 6.92 ----- 27.2 26.0 56.8 35.4 16.9 -31.9 15.9 -34.3 16.8 -32.3 17.9 -30.5
2025-06-13 15:42:26,081 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 15:42:26,081 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 15:42:26,081 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.570769
2025-06-13 15:42:26,082 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 15:42:26,082 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 15:42:26,082 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 15:42:26,083 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 15:42:26,083 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 15:42:26,083 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T15:42:13', tmtdew=18.34, humidity=27.89, cloud=0.0, wind=17.98, temperature=14.02, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T13:41:54.442', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 15:42:26,083 [DEBUG][       Thread-259835][   transport.py][1871] : EOF in transport thread
2025-06-13 15:42:26,166 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 15:42:26,177 [DEBUG][       Thread-259838][   transport.py][1871] : starting thread (client mode): 0x867b5990
2025-06-13 15:42:26,177 [DEBUG][       Thread-259838][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 15:42:26,194 [DEBUG][       Thread-259838][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 15:42:26,194 [ INFO][       Thread-259838][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 15:42:26,202 [DEBUG][       Thread-259838][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 15:42:26,202 [DEBUG][       Thread-259838][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 15:42:26,202 [DEBUG][       Thread-259838][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 15:42:26,202 [DEBUG][       Thread-259838][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:42:26,203 [DEBUG][       Thread-259838][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:42:26,203 [DEBUG][       Thread-259838][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:42:26,203 [DEBUG][       Thread-259838][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:42:26,203 [DEBUG][       Thread-259838][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 15:42:26,203 [DEBUG][       Thread-259838][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 15:42:26,203 [DEBUG][       Thread-259838][   transport.py][1871] : client lang: <none>
2025-06-13 15:42:26,203 [DEBUG][       Thread-259838][   transport.py][1871] : server lang: <none>
2025-06-13 15:42:26,203 [DEBUG][       Thread-259838][   transport.py][1871] : kex follows: False
2025-06-13 15:42:26,203 [DEBUG][       Thread-259838][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 15:42:26,203 [DEBUG][       Thread-259838][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 15:42:26,203 [DEBUG][       Thread-259838][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 15:42:26,203 [DEBUG][       Thread-259838][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 15:42:26,203 [DEBUG][       Thread-259838][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 15:42:26,203 [DEBUG][       Thread-259838][   transport.py][1871] : Compression: none
2025-06-13 15:42:26,203 [DEBUG][       Thread-259838][   transport.py][1871] : === End of kex handshake ===
2025-06-13 15:42:26,266 [DEBUG][       Thread-259838][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 15:42:26,267 [DEBUG][       Thread-259838][   transport.py][1871] : Switch to new keys ...
2025-06-13 15:42:26,268 [DEBUG][       Thread-259838][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 15:42:26,268 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 15:42:26,269 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 15:42:26,326 [DEBUG][       Thread-259838][   transport.py][1871] : userauth is OK
2025-06-13 15:42:26,326 [DEBUG][       Thread-259838][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 15:42:26,326 [DEBUG][       Thread-259838][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 15:42:26,326 [DEBUG][       Thread-259838][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 15:42:26,326 [DEBUG][       Thread-259838][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 15:42:26,345 [ INFO][       Thread-259838][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 15:42:26,346 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 15:42:26,346 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 15:42:27,381 [DEBUG][       Thread-259838][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 15:42:27,382 [DEBUG][       Thread-259838][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 15:42:27,432 [DEBUG][       Thread-259838][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 15:42:27,432 [DEBUG][       Thread-259838][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 15:42:27,441 [DEBUG][       Thread-259838][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 15:42:27,450 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 15:42:27,451 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 15:42:27,459 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 15:42:27,469 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 15:42:27,470 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 15:42:27,470 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 15:42:27,479 [DEBUG][       Thread-259838][   transport.py][1871] : EOF in transport thread
2025-06-13 15:42:32,950 [DEBUG][Thread-259840 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:42:37,480 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 15:42:37,481 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 15:42:37,490 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 15:42:37,493 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 15:42:37,951 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 15, 42, 13), 18.34, 27.89, 0.0, 17.98, 14.02, 0, 0, 0, 2, 0, 0),)
2025-06-13 15:42:37,951 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 15:42:13
2025-06-13 15:42:38,028 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 15:42:38,035 [DEBUG][       Thread-259841][   transport.py][1871] : starting thread (client mode): 0x863525f0
2025-06-13 15:42:38,035 [DEBUG][       Thread-259841][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 15:42:38,057 [DEBUG][       Thread-259841][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 15:42:38,057 [ INFO][       Thread-259841][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 15:42:38,061 [DEBUG][       Thread-259841][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 15:42:38,061 [DEBUG][       Thread-259841][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 15:42:38,061 [DEBUG][       Thread-259841][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 15:42:38,061 [DEBUG][       Thread-259841][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:42:38,061 [DEBUG][       Thread-259841][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:42:38,061 [DEBUG][       Thread-259841][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:42:38,061 [DEBUG][       Thread-259841][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:42:38,062 [DEBUG][       Thread-259841][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 15:42:38,062 [DEBUG][       Thread-259841][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 15:42:38,062 [DEBUG][       Thread-259841][   transport.py][1871] : client lang: <none>
2025-06-13 15:42:38,062 [DEBUG][       Thread-259841][   transport.py][1871] : server lang: <none>
2025-06-13 15:42:38,062 [DEBUG][       Thread-259841][   transport.py][1871] : kex follows: False
2025-06-13 15:42:38,062 [DEBUG][       Thread-259841][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 15:42:38,062 [DEBUG][       Thread-259841][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 15:42:38,062 [DEBUG][       Thread-259841][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 15:42:38,062 [DEBUG][       Thread-259841][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 15:42:38,062 [DEBUG][       Thread-259841][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 15:42:38,062 [DEBUG][       Thread-259841][   transport.py][1871] : Compression: none
2025-06-13 15:42:38,062 [DEBUG][       Thread-259841][   transport.py][1871] : === End of kex handshake ===
2025-06-13 15:42:38,081 [DEBUG][       Thread-259841][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 15:42:38,082 [DEBUG][       Thread-259841][   transport.py][1871] : Switch to new keys ...
2025-06-13 15:42:38,082 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 15:42:38,082 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 15:42:38,083 [DEBUG][       Thread-259841][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 15:42:38,084 [DEBUG][       Thread-259841][   transport.py][1871] : userauth is OK
2025-06-13 15:42:38,097 [ INFO][       Thread-259841][   transport.py][1871] : Authentication (password) successful!
2025-06-13 15:42:38,097 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 15:42:38,744 [DEBUG][       Thread-259841][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 15:42:38,745 [DEBUG][       Thread-259841][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 15:42:38,789 [DEBUG][       Thread-259841][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 15:42:38,789 [DEBUG][       Thread-259841][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 15:42:38,793 [DEBUG][       Thread-259841][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 15:42:38,804 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 15:42:38,805 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 15:42:38,807 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 15:42:38,808 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 15:42:38,813 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 15:42:38,815 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 15:42:38,815 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 15:42:38,816 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 15:42:38,816 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.571116 -999.00  +13.70  22.00     33   -2.00 1 1 1 1 1   887    0 16.02 3.57 ----- 22.2 22.0 47.2 31.8 16.8 -31.8 15.9 -33.5 16.8 -31.3 17.9 -30.5
2025-06-13 15:42:38,816 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 15:42:38,816 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 15:42:38,816 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.571116
2025-06-13 15:42:38,817 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 15:42:38,817 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 15:42:38,818 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 15:42:38,818 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 15:42:38,818 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 15:42:38,818 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T15:42:13', tmtdew=18.34, humidity=27.89, cloud=0.0, wind=17.98, temperature=14.02, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T13:42:24.422', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 15:42:38,819 [DEBUG][       Thread-259841][   transport.py][1871] : EOF in transport thread
2025-06-13 15:42:38,901 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 15:42:38,917 [DEBUG][       Thread-259844][   transport.py][1871] : starting thread (client mode): 0x863537f0
2025-06-13 15:42:38,917 [DEBUG][       Thread-259844][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 15:42:38,933 [DEBUG][       Thread-259844][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 15:42:38,934 [ INFO][       Thread-259844][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 15:42:38,941 [DEBUG][       Thread-259844][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 15:42:38,941 [DEBUG][       Thread-259844][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 15:42:38,941 [DEBUG][       Thread-259844][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 15:42:38,942 [DEBUG][       Thread-259844][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:42:38,942 [DEBUG][       Thread-259844][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:42:38,942 [DEBUG][       Thread-259844][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:42:38,942 [DEBUG][       Thread-259844][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:42:38,942 [DEBUG][       Thread-259844][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 15:42:38,942 [DEBUG][       Thread-259844][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 15:42:38,942 [DEBUG][       Thread-259844][   transport.py][1871] : client lang: <none>
2025-06-13 15:42:38,942 [DEBUG][       Thread-259844][   transport.py][1871] : server lang: <none>
2025-06-13 15:42:38,942 [DEBUG][       Thread-259844][   transport.py][1871] : kex follows: False
2025-06-13 15:42:38,942 [DEBUG][       Thread-259844][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 15:42:38,942 [DEBUG][       Thread-259844][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 15:42:38,942 [DEBUG][       Thread-259844][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 15:42:38,942 [DEBUG][       Thread-259844][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 15:42:38,942 [DEBUG][       Thread-259844][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 15:42:38,942 [DEBUG][       Thread-259844][   transport.py][1871] : Compression: none
2025-06-13 15:42:38,942 [DEBUG][       Thread-259844][   transport.py][1871] : === End of kex handshake ===
2025-06-13 15:42:39,007 [DEBUG][       Thread-259844][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 15:42:39,008 [DEBUG][       Thread-259844][   transport.py][1871] : Switch to new keys ...
2025-06-13 15:42:39,008 [DEBUG][       Thread-259844][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 15:42:39,009 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 15:42:39,009 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 15:42:39,065 [DEBUG][       Thread-259844][   transport.py][1871] : userauth is OK
2025-06-13 15:42:39,066 [DEBUG][       Thread-259844][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 15:42:39,066 [DEBUG][       Thread-259844][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 15:42:39,066 [DEBUG][       Thread-259844][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 15:42:39,066 [DEBUG][       Thread-259844][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 15:42:39,085 [ INFO][       Thread-259844][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 15:42:39,085 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 15:42:39,086 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 15:42:40,105 [DEBUG][       Thread-259844][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 15:42:40,105 [DEBUG][       Thread-259844][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 15:42:40,156 [DEBUG][       Thread-259844][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 15:42:40,156 [DEBUG][       Thread-259844][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 15:42:40,165 [DEBUG][       Thread-259844][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 15:42:40,175 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 15:42:40,175 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 15:42:40,184 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 15:42:40,199 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 15:42:40,199 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 15:42:40,200 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 15:42:40,211 [DEBUG][       Thread-259844][   transport.py][1871] : EOF in transport thread
2025-06-13 15:42:41,990 [DEBUG][Thread-259846 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:42:50,210 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 15:42:50,211 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 15:42:50,211 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 15:42:50,214 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 15:42:50,681 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 15, 42, 45), 18.29, 28.0, 0.0, 15.05, 14.07, 0, 0, 0, 2, 0, 0),)
2025-06-13 15:42:50,681 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 15:42:45
2025-06-13 15:42:50,759 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 15:42:50,763 [DEBUG][       Thread-259847][   transport.py][1871] : starting thread (client mode): 0x867fdfc0
2025-06-13 15:42:50,763 [DEBUG][       Thread-259847][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 15:42:50,783 [DEBUG][       Thread-259847][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 15:42:50,783 [ INFO][       Thread-259847][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 15:42:50,786 [DEBUG][       Thread-259847][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 15:42:50,786 [DEBUG][       Thread-259847][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 15:42:50,786 [DEBUG][       Thread-259847][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 15:42:50,786 [DEBUG][       Thread-259847][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:42:50,786 [DEBUG][       Thread-259847][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:42:50,786 [DEBUG][       Thread-259847][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:42:50,786 [DEBUG][       Thread-259847][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:42:50,786 [DEBUG][       Thread-259847][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 15:42:50,786 [DEBUG][       Thread-259847][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 15:42:50,786 [DEBUG][       Thread-259847][   transport.py][1871] : client lang: <none>
2025-06-13 15:42:50,786 [DEBUG][       Thread-259847][   transport.py][1871] : server lang: <none>
2025-06-13 15:42:50,786 [DEBUG][       Thread-259847][   transport.py][1871] : kex follows: False
2025-06-13 15:42:50,786 [DEBUG][       Thread-259847][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 15:42:50,786 [DEBUG][       Thread-259847][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 15:42:50,786 [DEBUG][       Thread-259847][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 15:42:50,786 [DEBUG][       Thread-259847][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 15:42:50,786 [DEBUG][       Thread-259847][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 15:42:50,786 [DEBUG][       Thread-259847][   transport.py][1871] : Compression: none
2025-06-13 15:42:50,786 [DEBUG][       Thread-259847][   transport.py][1871] : === End of kex handshake ===
2025-06-13 15:42:50,802 [DEBUG][       Thread-259847][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 15:42:50,803 [DEBUG][       Thread-259847][   transport.py][1871] : Switch to new keys ...
2025-06-13 15:42:50,803 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 15:42:50,804 [DEBUG][       Thread-259847][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 15:42:50,804 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 15:42:50,805 [DEBUG][       Thread-259847][   transport.py][1871] : userauth is OK
2025-06-13 15:42:50,819 [ INFO][       Thread-259847][   transport.py][1871] : Authentication (password) successful!
2025-06-13 15:42:50,819 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 15:42:51,012 [DEBUG][Thread-259849 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:42:51,444 [DEBUG][       Thread-259847][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 15:42:51,444 [DEBUG][       Thread-259847][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 15:42:51,485 [DEBUG][       Thread-259847][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 15:42:51,485 [DEBUG][       Thread-259847][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 15:42:51,488 [DEBUG][       Thread-259847][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 15:42:51,500 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 15:42:51,500 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 15:42:51,502 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 15:42:51,504 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 15:42:51,509 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 15:42:51,511 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 15:42:51,511 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 15:42:51,512 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 15:42:51,512 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.571116 -999.00  +13.70  22.00     33   -2.00 1 1 1 1 1   887    0 16.02 3.57 ----- 22.2 22.0 47.2 31.8 16.8 -31.8 15.9 -33.5 16.8 -31.3 17.9 -30.5
2025-06-13 15:42:51,512 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 15:42:51,512 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 15:42:51,512 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.571116
2025-06-13 15:42:51,513 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 15:42:51,514 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 15:42:51,514 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 15:42:51,514 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 15:42:51,514 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 15:42:51,514 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T15:42:45', tmtdew=18.29, humidity=28.0, cloud=0.0, wind=15.05, temperature=14.07, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T13:42:24.422', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 15:42:51,515 [DEBUG][       Thread-259847][   transport.py][1871] : EOF in transport thread
2025-06-13 15:42:51,587 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 15:42:51,597 [DEBUG][       Thread-259851][   transport.py][1871] : starting thread (client mode): 0x863bea70
2025-06-13 15:42:51,597 [DEBUG][       Thread-259851][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 15:42:51,612 [DEBUG][       Thread-259851][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 15:42:51,612 [ INFO][       Thread-259851][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 15:42:51,620 [DEBUG][       Thread-259851][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 15:42:51,620 [DEBUG][       Thread-259851][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 15:42:51,620 [DEBUG][       Thread-259851][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 15:42:51,620 [DEBUG][       Thread-259851][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:42:51,620 [DEBUG][       Thread-259851][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:42:51,620 [DEBUG][       Thread-259851][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:42:51,620 [DEBUG][       Thread-259851][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:42:51,620 [DEBUG][       Thread-259851][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 15:42:51,620 [DEBUG][       Thread-259851][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 15:42:51,620 [DEBUG][       Thread-259851][   transport.py][1871] : client lang: <none>
2025-06-13 15:42:51,620 [DEBUG][       Thread-259851][   transport.py][1871] : server lang: <none>
2025-06-13 15:42:51,620 [DEBUG][       Thread-259851][   transport.py][1871] : kex follows: False
2025-06-13 15:42:51,620 [DEBUG][       Thread-259851][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 15:42:51,620 [DEBUG][       Thread-259851][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 15:42:51,620 [DEBUG][       Thread-259851][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 15:42:51,620 [DEBUG][       Thread-259851][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 15:42:51,621 [DEBUG][       Thread-259851][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 15:42:51,621 [DEBUG][       Thread-259851][   transport.py][1871] : Compression: none
2025-06-13 15:42:51,621 [DEBUG][       Thread-259851][   transport.py][1871] : === End of kex handshake ===
2025-06-13 15:42:51,677 [DEBUG][       Thread-259851][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 15:42:51,678 [DEBUG][       Thread-259851][   transport.py][1871] : Switch to new keys ...
2025-06-13 15:42:51,678 [DEBUG][       Thread-259851][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 15:42:51,679 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 15:42:51,679 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 15:42:51,741 [DEBUG][       Thread-259851][   transport.py][1871] : userauth is OK
2025-06-13 15:42:51,742 [DEBUG][       Thread-259851][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 15:42:51,742 [DEBUG][       Thread-259851][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 15:42:51,742 [DEBUG][       Thread-259851][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 15:42:51,742 [DEBUG][       Thread-259851][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 15:42:51,760 [ INFO][       Thread-259851][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 15:42:51,761 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 15:42:51,761 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 15:42:52,813 [DEBUG][       Thread-259851][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 15:42:52,813 [DEBUG][       Thread-259851][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 15:42:52,870 [DEBUG][       Thread-259851][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 15:42:52,870 [DEBUG][       Thread-259851][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 15:42:52,884 [DEBUG][       Thread-259851][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 15:42:52,899 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 15:42:52,899 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 15:42:52,907 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 15:42:52,915 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 15:42:52,915 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 15:42:52,915 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 15:42:52,923 [DEBUG][       Thread-259851][   transport.py][1871] : EOF in transport thread
2025-06-13 15:43:00,032 [DEBUG][Thread-259853 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:43:02,926 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 15:43:02,926 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 15:43:02,926 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 15:43:02,929 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 15:43:03,388 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 15, 42, 45), 18.29, 28.0, 0.0, 15.05, 14.07, 0, 0, 0, 2, 0, 0),)
2025-06-13 15:43:03,388 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 15:42:45
2025-06-13 15:43:03,466 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 15:43:03,473 [DEBUG][       Thread-259854][   transport.py][1871] : starting thread (client mode): 0x863ca3b0
2025-06-13 15:43:03,473 [DEBUG][       Thread-259854][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 15:43:03,493 [DEBUG][       Thread-259854][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 15:43:03,493 [ INFO][       Thread-259854][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 15:43:03,497 [DEBUG][       Thread-259854][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 15:43:03,497 [DEBUG][       Thread-259854][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 15:43:03,497 [DEBUG][       Thread-259854][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 15:43:03,497 [DEBUG][       Thread-259854][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:43:03,497 [DEBUG][       Thread-259854][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:43:03,497 [DEBUG][       Thread-259854][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:43:03,497 [DEBUG][       Thread-259854][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:43:03,497 [DEBUG][       Thread-259854][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 15:43:03,497 [DEBUG][       Thread-259854][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 15:43:03,497 [DEBUG][       Thread-259854][   transport.py][1871] : client lang: <none>
2025-06-13 15:43:03,497 [DEBUG][       Thread-259854][   transport.py][1871] : server lang: <none>
2025-06-13 15:43:03,497 [DEBUG][       Thread-259854][   transport.py][1871] : kex follows: False
2025-06-13 15:43:03,497 [DEBUG][       Thread-259854][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 15:43:03,497 [DEBUG][       Thread-259854][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 15:43:03,497 [DEBUG][       Thread-259854][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 15:43:03,497 [DEBUG][       Thread-259854][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 15:43:03,497 [DEBUG][       Thread-259854][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 15:43:03,497 [DEBUG][       Thread-259854][   transport.py][1871] : Compression: none
2025-06-13 15:43:03,497 [DEBUG][       Thread-259854][   transport.py][1871] : === End of kex handshake ===
2025-06-13 15:43:03,514 [DEBUG][       Thread-259854][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 15:43:03,514 [DEBUG][       Thread-259854][   transport.py][1871] : Switch to new keys ...
2025-06-13 15:43:03,515 [DEBUG][       Thread-259854][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 15:43:03,515 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 15:43:03,515 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 15:43:03,516 [DEBUG][       Thread-259854][   transport.py][1871] : userauth is OK
2025-06-13 15:43:03,530 [ INFO][       Thread-259854][   transport.py][1871] : Authentication (password) successful!
2025-06-13 15:43:03,530 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 15:43:04,116 [DEBUG][       Thread-259854][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 15:43:04,117 [DEBUG][       Thread-259854][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 15:43:04,161 [DEBUG][       Thread-259854][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 15:43:04,161 [DEBUG][       Thread-259854][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 15:43:04,165 [DEBUG][       Thread-259854][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 15:43:04,178 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 15:43:04,178 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 15:43:04,180 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 15:43:04,182 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 15:43:04,188 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 15:43:04,190 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 15:43:04,190 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 15:43:04,191 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 15:43:04,191 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.571116 -999.00  +13.70  22.00     33   -2.00 1 1 1 1 1   887    0 16.02 3.57 ----- 22.2 22.0 47.2 31.8 16.8 -31.8 15.9 -33.5 16.8 -31.3 17.9 -30.5
2025-06-13 15:43:04,191 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 15:43:04,191 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 15:43:04,191 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.571116
2025-06-13 15:43:04,192 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 15:43:04,192 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 15:43:04,192 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 15:43:04,193 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 15:43:04,193 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 15:43:04,193 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T15:42:45', tmtdew=18.29, humidity=28.0, cloud=0.0, wind=15.05, temperature=14.07, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T13:42:24.422', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 15:43:04,194 [DEBUG][       Thread-259854][   transport.py][1871] : EOF in transport thread
2025-06-13 15:43:04,276 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 15:43:04,287 [DEBUG][       Thread-259857][   transport.py][1871] : starting thread (client mode): 0x86351720
2025-06-13 15:43:04,288 [DEBUG][       Thread-259857][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 15:43:04,303 [DEBUG][       Thread-259857][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 15:43:04,303 [ INFO][       Thread-259857][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 15:43:04,315 [DEBUG][       Thread-259857][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 15:43:04,315 [DEBUG][       Thread-259857][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 15:43:04,315 [DEBUG][       Thread-259857][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 15:43:04,315 [DEBUG][       Thread-259857][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:43:04,315 [DEBUG][       Thread-259857][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:43:04,315 [DEBUG][       Thread-259857][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:43:04,315 [DEBUG][       Thread-259857][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:43:04,315 [DEBUG][       Thread-259857][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 15:43:04,315 [DEBUG][       Thread-259857][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 15:43:04,315 [DEBUG][       Thread-259857][   transport.py][1871] : client lang: <none>
2025-06-13 15:43:04,315 [DEBUG][       Thread-259857][   transport.py][1871] : server lang: <none>
2025-06-13 15:43:04,316 [DEBUG][       Thread-259857][   transport.py][1871] : kex follows: False
2025-06-13 15:43:04,316 [DEBUG][       Thread-259857][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 15:43:04,316 [DEBUG][       Thread-259857][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 15:43:04,316 [DEBUG][       Thread-259857][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 15:43:04,316 [DEBUG][       Thread-259857][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 15:43:04,316 [DEBUG][       Thread-259857][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 15:43:04,316 [DEBUG][       Thread-259857][   transport.py][1871] : Compression: none
2025-06-13 15:43:04,316 [DEBUG][       Thread-259857][   transport.py][1871] : === End of kex handshake ===
2025-06-13 15:43:04,373 [DEBUG][       Thread-259857][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 15:43:04,374 [DEBUG][       Thread-259857][   transport.py][1871] : Switch to new keys ...
2025-06-13 15:43:04,375 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 15:43:04,375 [DEBUG][       Thread-259857][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 15:43:04,376 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 15:43:04,430 [DEBUG][       Thread-259857][   transport.py][1871] : userauth is OK
2025-06-13 15:43:04,430 [DEBUG][       Thread-259857][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 15:43:04,430 [DEBUG][       Thread-259857][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 15:43:04,430 [DEBUG][       Thread-259857][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 15:43:04,430 [DEBUG][       Thread-259857][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 15:43:04,449 [ INFO][       Thread-259857][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 15:43:04,449 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 15:43:04,450 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 15:43:04,594 [DEBUG][Thread-259859 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:43:05,465 [DEBUG][       Thread-259857][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 15:43:05,466 [DEBUG][       Thread-259857][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 15:43:05,516 [DEBUG][       Thread-259857][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 15:43:05,516 [DEBUG][       Thread-259857][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 15:43:05,525 [DEBUG][       Thread-259857][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 15:43:05,534 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 15:43:05,534 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 15:43:05,543 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 15:43:05,553 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 15:43:05,553 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 15:43:05,554 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 15:43:05,561 [DEBUG][       Thread-259857][   transport.py][1871] : EOF in transport thread
2025-06-13 15:43:05,665 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:43:05,665 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:43:09,066 [DEBUG][Thread-259860 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:43:11,411 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:43:11,413 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:43:15,564 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 15:43:15,564 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 15:43:15,564 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 15:43:15,567 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 15:43:16,021 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 15, 42, 45), 18.29, 28.0, 0.0, 15.05, 14.07, 0, 0, 0, 2, 0, 0),)
2025-06-13 15:43:16,021 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 15:42:45
2025-06-13 15:43:16,098 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 15:43:16,105 [DEBUG][       Thread-259861][   transport.py][1871] : starting thread (client mode): 0x867fd240
2025-06-13 15:43:16,105 [DEBUG][       Thread-259861][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 15:43:16,126 [DEBUG][       Thread-259861][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 15:43:16,126 [ INFO][       Thread-259861][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 15:43:16,129 [DEBUG][       Thread-259861][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 15:43:16,129 [DEBUG][       Thread-259861][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 15:43:16,129 [DEBUG][       Thread-259861][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 15:43:16,129 [DEBUG][       Thread-259861][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:43:16,129 [DEBUG][       Thread-259861][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:43:16,129 [DEBUG][       Thread-259861][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:43:16,129 [DEBUG][       Thread-259861][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:43:16,129 [DEBUG][       Thread-259861][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 15:43:16,129 [DEBUG][       Thread-259861][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 15:43:16,130 [DEBUG][       Thread-259861][   transport.py][1871] : client lang: <none>
2025-06-13 15:43:16,130 [DEBUG][       Thread-259861][   transport.py][1871] : server lang: <none>
2025-06-13 15:43:16,130 [DEBUG][       Thread-259861][   transport.py][1871] : kex follows: False
2025-06-13 15:43:16,130 [DEBUG][       Thread-259861][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 15:43:16,130 [DEBUG][       Thread-259861][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 15:43:16,130 [DEBUG][       Thread-259861][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 15:43:16,130 [DEBUG][       Thread-259861][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 15:43:16,130 [DEBUG][       Thread-259861][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 15:43:16,130 [DEBUG][       Thread-259861][   transport.py][1871] : Compression: none
2025-06-13 15:43:16,130 [DEBUG][       Thread-259861][   transport.py][1871] : === End of kex handshake ===
2025-06-13 15:43:16,146 [DEBUG][       Thread-259861][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 15:43:16,147 [DEBUG][       Thread-259861][   transport.py][1871] : Switch to new keys ...
2025-06-13 15:43:16,147 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 15:43:16,147 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 15:43:16,148 [DEBUG][       Thread-259861][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 15:43:16,149 [DEBUG][       Thread-259861][   transport.py][1871] : userauth is OK
2025-06-13 15:43:16,173 [ INFO][       Thread-259861][   transport.py][1871] : Authentication (password) successful!
2025-06-13 15:43:16,173 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 15:43:16,815 [DEBUG][       Thread-259861][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 15:43:16,815 [DEBUG][       Thread-259861][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 15:43:16,857 [DEBUG][       Thread-259861][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 15:43:16,857 [DEBUG][       Thread-259861][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 15:43:16,861 [DEBUG][       Thread-259861][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 15:43:16,872 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 15:43:16,873 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 15:43:16,875 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 15:43:16,876 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 15:43:16,882 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 15:43:16,884 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 15:43:16,884 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 15:43:16,885 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 15:43:16,885 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.571463 -999.00  +13.70  20.24     33   -2.10 1 1 1 1 1   887    0 15.75 0.47 ----- 18.0 20.2 52.2 23.8 16.9 -31.7 15.9 -33.1 16.8 -31.9 18.0 -29.8
2025-06-13 15:43:16,885 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 15:43:16,885 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 15:43:16,886 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.571463
2025-06-13 15:43:16,886 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 15:43:16,887 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 15:43:16,887 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 15:43:16,887 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 15:43:16,887 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 15:43:16,887 [DEBUG][       Thread-259861][   transport.py][1871] : EOF in transport thread
2025-06-13 15:43:16,887 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T15:42:45', tmtdew=18.29, humidity=28.0, cloud=0.0, wind=15.05, temperature=14.07, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T13:42:54.403', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 15:43:16,964 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 15:43:16,976 [DEBUG][       Thread-259864][   transport.py][1871] : starting thread (client mode): 0x863beda0
2025-06-13 15:43:16,976 [DEBUG][       Thread-259864][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 15:43:16,990 [DEBUG][       Thread-259864][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 15:43:16,990 [ INFO][       Thread-259864][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 15:43:16,997 [DEBUG][       Thread-259864][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 15:43:16,998 [DEBUG][       Thread-259864][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 15:43:16,998 [DEBUG][       Thread-259864][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 15:43:16,998 [DEBUG][       Thread-259864][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:43:16,998 [DEBUG][       Thread-259864][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:43:16,998 [DEBUG][       Thread-259864][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:43:16,998 [DEBUG][       Thread-259864][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:43:16,998 [DEBUG][       Thread-259864][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 15:43:16,998 [DEBUG][       Thread-259864][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 15:43:16,998 [DEBUG][       Thread-259864][   transport.py][1871] : client lang: <none>
2025-06-13 15:43:16,998 [DEBUG][       Thread-259864][   transport.py][1871] : server lang: <none>
2025-06-13 15:43:16,998 [DEBUG][       Thread-259864][   transport.py][1871] : kex follows: False
2025-06-13 15:43:16,998 [DEBUG][       Thread-259864][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 15:43:16,998 [DEBUG][       Thread-259864][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 15:43:16,998 [DEBUG][       Thread-259864][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 15:43:16,998 [DEBUG][       Thread-259864][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 15:43:16,998 [DEBUG][       Thread-259864][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 15:43:16,998 [DEBUG][       Thread-259864][   transport.py][1871] : Compression: none
2025-06-13 15:43:16,998 [DEBUG][       Thread-259864][   transport.py][1871] : === End of kex handshake ===
2025-06-13 15:43:17,060 [DEBUG][       Thread-259864][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 15:43:17,061 [DEBUG][       Thread-259864][   transport.py][1871] : Switch to new keys ...
2025-06-13 15:43:17,061 [DEBUG][       Thread-259864][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 15:43:17,062 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 15:43:17,062 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 15:43:17,117 [DEBUG][       Thread-259864][   transport.py][1871] : userauth is OK
2025-06-13 15:43:17,117 [DEBUG][       Thread-259864][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 15:43:17,117 [DEBUG][       Thread-259864][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 15:43:17,117 [DEBUG][       Thread-259864][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 15:43:17,117 [DEBUG][       Thread-259864][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 15:43:17,136 [ INFO][       Thread-259864][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 15:43:17,136 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 15:43:17,136 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 15:43:18,086 [DEBUG][Thread-259866 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:43:18,118 [DEBUG][       Thread-259864][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 15:43:18,118 [DEBUG][       Thread-259864][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 15:43:18,168 [DEBUG][       Thread-259864][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 15:43:18,168 [DEBUG][       Thread-259864][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 15:43:18,177 [DEBUG][       Thread-259864][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 15:43:18,184 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 15:43:18,185 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 15:43:18,192 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 15:43:18,200 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 15:43:18,200 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 15:43:18,200 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 15:43:18,208 [DEBUG][       Thread-259864][   transport.py][1871] : EOF in transport thread
2025-06-13 15:43:21,777 [DEBUG][Thread-259867 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:43:27,106 [DEBUG][Thread-259868 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:43:28,210 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 15:43:28,211 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 15:43:28,211 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 15:43:28,214 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 15:43:28,680 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 15, 43, 17), 18.34, 27.96, 0.0, 19.13, 14.04, 0, 0, 0, 2, 0, 0),)
2025-06-13 15:43:28,680 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 15:43:17
2025-06-13 15:43:28,757 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 15:43:28,761 [DEBUG][       Thread-259869][   transport.py][1871] : starting thread (client mode): 0x863cbaf0
2025-06-13 15:43:28,761 [DEBUG][       Thread-259869][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 15:43:28,782 [DEBUG][       Thread-259869][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 15:43:28,782 [ INFO][       Thread-259869][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 15:43:28,785 [DEBUG][       Thread-259869][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 15:43:28,785 [DEBUG][       Thread-259869][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 15:43:28,785 [DEBUG][       Thread-259869][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 15:43:28,785 [DEBUG][       Thread-259869][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:43:28,785 [DEBUG][       Thread-259869][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:43:28,785 [DEBUG][       Thread-259869][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:43:28,786 [DEBUG][       Thread-259869][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:43:28,786 [DEBUG][       Thread-259869][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 15:43:28,786 [DEBUG][       Thread-259869][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 15:43:28,786 [DEBUG][       Thread-259869][   transport.py][1871] : client lang: <none>
2025-06-13 15:43:28,786 [DEBUG][       Thread-259869][   transport.py][1871] : server lang: <none>
2025-06-13 15:43:28,786 [DEBUG][       Thread-259869][   transport.py][1871] : kex follows: False
2025-06-13 15:43:28,786 [DEBUG][       Thread-259869][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 15:43:28,786 [DEBUG][       Thread-259869][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 15:43:28,786 [DEBUG][       Thread-259869][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 15:43:28,786 [DEBUG][       Thread-259869][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 15:43:28,786 [DEBUG][       Thread-259869][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 15:43:28,786 [DEBUG][       Thread-259869][   transport.py][1871] : Compression: none
2025-06-13 15:43:28,786 [DEBUG][       Thread-259869][   transport.py][1871] : === End of kex handshake ===
2025-06-13 15:43:28,803 [DEBUG][       Thread-259869][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 15:43:28,803 [DEBUG][       Thread-259869][   transport.py][1871] : Switch to new keys ...
2025-06-13 15:43:28,804 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 15:43:28,804 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 15:43:28,804 [DEBUG][       Thread-259869][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 15:43:28,805 [DEBUG][       Thread-259869][   transport.py][1871] : userauth is OK
2025-06-13 15:43:28,829 [ INFO][       Thread-259869][   transport.py][1871] : Authentication (password) successful!
2025-06-13 15:43:28,830 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 15:43:29,489 [DEBUG][       Thread-259869][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 15:43:29,489 [DEBUG][       Thread-259869][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 15:43:29,533 [DEBUG][       Thread-259869][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 15:43:29,533 [DEBUG][       Thread-259869][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 15:43:29,536 [DEBUG][       Thread-259869][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 15:43:29,550 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 15:43:29,550 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 15:43:29,552 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 15:43:29,554 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 15:43:29,560 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 15:43:29,563 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 15:43:29,563 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 15:43:29,563 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 15:43:29,564 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.571463 -999.00  +13.70  20.24     33   -2.10 1 1 1 1 1   887    0 15.75 0.47 ----- 18.0 20.2 52.2 23.8 16.9 -31.7 15.9 -33.1 16.8 -31.9 18.0 -29.8
2025-06-13 15:43:29,564 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 15:43:29,564 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 15:43:29,564 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.571463
2025-06-13 15:43:29,564 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 15:43:29,565 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 15:43:29,565 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 15:43:29,565 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 15:43:29,565 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 15:43:29,565 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T15:43:17', tmtdew=18.34, humidity=27.96, cloud=0.0, wind=19.13, temperature=14.04, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T13:42:54.403', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 15:43:29,567 [DEBUG][       Thread-259869][   transport.py][1871] : EOF in transport thread
2025-06-13 15:43:29,649 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 15:43:29,658 [DEBUG][       Thread-259872][   transport.py][1871] : starting thread (client mode): 0x86353280
2025-06-13 15:43:29,658 [DEBUG][       Thread-259872][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 15:43:29,674 [DEBUG][       Thread-259872][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 15:43:29,674 [ INFO][       Thread-259872][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 15:43:29,682 [DEBUG][       Thread-259872][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 15:43:29,682 [DEBUG][       Thread-259872][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 15:43:29,682 [DEBUG][       Thread-259872][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 15:43:29,682 [DEBUG][       Thread-259872][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:43:29,682 [DEBUG][       Thread-259872][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:43:29,682 [DEBUG][       Thread-259872][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:43:29,682 [DEBUG][       Thread-259872][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:43:29,682 [DEBUG][       Thread-259872][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 15:43:29,682 [DEBUG][       Thread-259872][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 15:43:29,682 [DEBUG][       Thread-259872][   transport.py][1871] : client lang: <none>
2025-06-13 15:43:29,682 [DEBUG][       Thread-259872][   transport.py][1871] : server lang: <none>
2025-06-13 15:43:29,682 [DEBUG][       Thread-259872][   transport.py][1871] : kex follows: False
2025-06-13 15:43:29,682 [DEBUG][       Thread-259872][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 15:43:29,682 [DEBUG][       Thread-259872][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 15:43:29,682 [DEBUG][       Thread-259872][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 15:43:29,683 [DEBUG][       Thread-259872][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 15:43:29,683 [DEBUG][       Thread-259872][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 15:43:29,683 [DEBUG][       Thread-259872][   transport.py][1871] : Compression: none
2025-06-13 15:43:29,683 [DEBUG][       Thread-259872][   transport.py][1871] : === End of kex handshake ===
2025-06-13 15:43:29,742 [DEBUG][       Thread-259872][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 15:43:29,743 [DEBUG][       Thread-259872][   transport.py][1871] : Switch to new keys ...
2025-06-13 15:43:29,743 [DEBUG][       Thread-259872][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 15:43:29,744 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 15:43:29,744 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 15:43:29,802 [DEBUG][       Thread-259872][   transport.py][1871] : userauth is OK
2025-06-13 15:43:29,802 [DEBUG][       Thread-259872][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 15:43:29,802 [DEBUG][       Thread-259872][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 15:43:29,802 [DEBUG][       Thread-259872][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 15:43:29,802 [DEBUG][       Thread-259872][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 15:43:29,823 [ INFO][       Thread-259872][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 15:43:29,823 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 15:43:29,824 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 15:43:30,851 [DEBUG][       Thread-259872][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 15:43:30,851 [DEBUG][       Thread-259872][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 15:43:30,899 [DEBUG][       Thread-259872][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 15:43:30,899 [DEBUG][       Thread-259872][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 15:43:30,908 [DEBUG][       Thread-259872][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 15:43:30,916 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 15:43:30,916 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 15:43:30,924 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 15:43:30,932 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 15:43:30,932 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 15:43:30,932 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 15:43:30,941 [DEBUG][       Thread-259872][   transport.py][1871] : EOF in transport thread
2025-06-13 15:43:36,127 [DEBUG][Thread-259874 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:43:40,936 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 15:43:40,936 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 15:43:40,936 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 15:43:40,939 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 15:43:41,403 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 15, 43, 17), 18.34, 27.96, 0.0, 19.13, 14.04, 0, 0, 0, 2, 0, 0),)
2025-06-13 15:43:41,403 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 15:43:17
2025-06-13 15:43:41,480 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 15:43:41,486 [DEBUG][       Thread-259875][   transport.py][1871] : starting thread (client mode): 0x867feb60
2025-06-13 15:43:41,486 [DEBUG][       Thread-259875][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 15:43:41,508 [DEBUG][       Thread-259875][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 15:43:41,509 [ INFO][       Thread-259875][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 15:43:41,512 [DEBUG][       Thread-259875][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 15:43:41,512 [DEBUG][       Thread-259875][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 15:43:41,512 [DEBUG][       Thread-259875][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 15:43:41,512 [DEBUG][       Thread-259875][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:43:41,512 [DEBUG][       Thread-259875][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:43:41,512 [DEBUG][       Thread-259875][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:43:41,512 [DEBUG][       Thread-259875][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:43:41,512 [DEBUG][       Thread-259875][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 15:43:41,512 [DEBUG][       Thread-259875][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 15:43:41,512 [DEBUG][       Thread-259875][   transport.py][1871] : client lang: <none>
2025-06-13 15:43:41,512 [DEBUG][       Thread-259875][   transport.py][1871] : server lang: <none>
2025-06-13 15:43:41,513 [DEBUG][       Thread-259875][   transport.py][1871] : kex follows: False
2025-06-13 15:43:41,513 [DEBUG][       Thread-259875][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 15:43:41,513 [DEBUG][       Thread-259875][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 15:43:41,513 [DEBUG][       Thread-259875][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 15:43:41,513 [DEBUG][       Thread-259875][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 15:43:41,513 [DEBUG][       Thread-259875][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 15:43:41,513 [DEBUG][       Thread-259875][   transport.py][1871] : Compression: none
2025-06-13 15:43:41,513 [DEBUG][       Thread-259875][   transport.py][1871] : === End of kex handshake ===
2025-06-13 15:43:41,530 [DEBUG][       Thread-259875][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 15:43:41,530 [DEBUG][       Thread-259875][   transport.py][1871] : Switch to new keys ...
2025-06-13 15:43:41,531 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 15:43:41,531 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 15:43:41,531 [DEBUG][       Thread-259875][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 15:43:41,532 [DEBUG][       Thread-259875][   transport.py][1871] : userauth is OK
2025-06-13 15:43:41,545 [ INFO][       Thread-259875][   transport.py][1871] : Authentication (password) successful!
2025-06-13 15:43:41,546 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 15:43:42,207 [DEBUG][       Thread-259875][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 15:43:42,207 [DEBUG][       Thread-259875][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 15:43:42,249 [DEBUG][       Thread-259875][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 15:43:42,249 [DEBUG][       Thread-259875][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 15:43:42,252 [DEBUG][       Thread-259875][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 15:43:42,264 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 15:43:42,264 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 15:43:42,266 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 15:43:42,268 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 15:43:42,274 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 15:43:42,276 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 15:43:42,276 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 15:43:42,277 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 15:43:42,277 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.571810 -999.00  +13.70  23.69     33   -2.20 1 1 1 1 1   887    0 15.83 -1.65 ----- 19.4 23.7 40.2 28.0 16.9 -31.9 15.9 -32.9 16.8 -32.0 17.9 -30.0
2025-06-13 15:43:42,277 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 15:43:42,277 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 15:43:42,277 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.571810
2025-06-13 15:43:42,277 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 15:43:42,278 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 15:43:42,278 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 15:43:42,278 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 15:43:42,278 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 15:43:42,278 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T15:43:17', tmtdew=18.34, humidity=27.96, cloud=0.0, wind=19.13, temperature=14.04, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T13:43:24.384', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 15:43:42,279 [DEBUG][       Thread-259875][   transport.py][1871] : EOF in transport thread
2025-06-13 15:43:42,361 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 15:43:42,379 [DEBUG][       Thread-259878][   transport.py][1871] : starting thread (client mode): 0x863a6ec0
2025-06-13 15:43:42,379 [DEBUG][       Thread-259878][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 15:43:42,393 [DEBUG][       Thread-259878][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 15:43:42,394 [ INFO][       Thread-259878][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 15:43:42,401 [DEBUG][       Thread-259878][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 15:43:42,402 [DEBUG][       Thread-259878][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 15:43:42,402 [DEBUG][       Thread-259878][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 15:43:42,402 [DEBUG][       Thread-259878][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:43:42,402 [DEBUG][       Thread-259878][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:43:42,402 [DEBUG][       Thread-259878][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:43:42,402 [DEBUG][       Thread-259878][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:43:42,402 [DEBUG][       Thread-259878][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 15:43:42,402 [DEBUG][       Thread-259878][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 15:43:42,402 [DEBUG][       Thread-259878][   transport.py][1871] : client lang: <none>
2025-06-13 15:43:42,402 [DEBUG][       Thread-259878][   transport.py][1871] : server lang: <none>
2025-06-13 15:43:42,402 [DEBUG][       Thread-259878][   transport.py][1871] : kex follows: False
2025-06-13 15:43:42,402 [DEBUG][       Thread-259878][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 15:43:42,402 [DEBUG][       Thread-259878][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 15:43:42,402 [DEBUG][       Thread-259878][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 15:43:42,402 [DEBUG][       Thread-259878][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 15:43:42,403 [DEBUG][       Thread-259878][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 15:43:42,403 [DEBUG][       Thread-259878][   transport.py][1871] : Compression: none
2025-06-13 15:43:42,403 [DEBUG][       Thread-259878][   transport.py][1871] : === End of kex handshake ===
2025-06-13 15:43:42,461 [DEBUG][       Thread-259878][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 15:43:42,462 [DEBUG][       Thread-259878][   transport.py][1871] : Switch to new keys ...
2025-06-13 15:43:42,462 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 15:43:42,463 [DEBUG][       Thread-259878][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 15:43:42,464 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 15:43:42,517 [DEBUG][       Thread-259878][   transport.py][1871] : userauth is OK
2025-06-13 15:43:42,518 [DEBUG][       Thread-259878][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 15:43:42,518 [DEBUG][       Thread-259878][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 15:43:42,518 [DEBUG][       Thread-259878][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 15:43:42,518 [DEBUG][       Thread-259878][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 15:43:42,536 [ INFO][       Thread-259878][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 15:43:42,537 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 15:43:42,537 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 15:43:43,525 [DEBUG][       Thread-259878][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 15:43:43,525 [DEBUG][       Thread-259878][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 15:43:43,576 [DEBUG][       Thread-259878][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 15:43:43,576 [DEBUG][       Thread-259878][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 15:43:43,585 [DEBUG][       Thread-259878][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 15:43:43,594 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 15:43:43,595 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 15:43:43,604 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 15:43:43,613 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 15:43:43,613 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 15:43:43,614 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 15:43:43,624 [DEBUG][       Thread-259878][   transport.py][1871] : EOF in transport thread
2025-06-13 15:43:45,169 [DEBUG][Thread-259880 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:43:53,625 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 15:43:53,625 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 15:43:53,625 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 15:43:53,629 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 15:43:54,093 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 15, 43, 49), 18.43, 27.77, 0.0, 19.37, 14.0, 0, 0, 0, 2, 0, 0),)
2025-06-13 15:43:54,093 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 15:43:49
2025-06-13 15:43:54,170 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 15:43:54,175 [DEBUG][       Thread-259881][   transport.py][1871] : starting thread (client mode): 0x8636bcd0
2025-06-13 15:43:54,175 [DEBUG][       Thread-259881][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 15:43:54,189 [DEBUG][Thread-259882 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:43:54,195 [DEBUG][       Thread-259881][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 15:43:54,195 [ INFO][       Thread-259881][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 15:43:54,199 [DEBUG][       Thread-259881][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 15:43:54,199 [DEBUG][       Thread-259881][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 15:43:54,199 [DEBUG][       Thread-259881][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 15:43:54,199 [DEBUG][       Thread-259881][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:43:54,199 [DEBUG][       Thread-259881][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:43:54,199 [DEBUG][       Thread-259881][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:43:54,199 [DEBUG][       Thread-259881][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:43:54,199 [DEBUG][       Thread-259881][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 15:43:54,199 [DEBUG][       Thread-259881][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 15:43:54,199 [DEBUG][       Thread-259881][   transport.py][1871] : client lang: <none>
2025-06-13 15:43:54,199 [DEBUG][       Thread-259881][   transport.py][1871] : server lang: <none>
2025-06-13 15:43:54,199 [DEBUG][       Thread-259881][   transport.py][1871] : kex follows: False
2025-06-13 15:43:54,199 [DEBUG][       Thread-259881][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 15:43:54,199 [DEBUG][       Thread-259881][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 15:43:54,199 [DEBUG][       Thread-259881][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 15:43:54,199 [DEBUG][       Thread-259881][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 15:43:54,199 [DEBUG][       Thread-259881][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 15:43:54,199 [DEBUG][       Thread-259881][   transport.py][1871] : Compression: none
2025-06-13 15:43:54,199 [DEBUG][       Thread-259881][   transport.py][1871] : === End of kex handshake ===
2025-06-13 15:43:54,216 [DEBUG][       Thread-259881][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 15:43:54,216 [DEBUG][       Thread-259881][   transport.py][1871] : Switch to new keys ...
2025-06-13 15:43:54,217 [DEBUG][       Thread-259881][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 15:43:54,217 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 15:43:54,217 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 15:43:54,218 [DEBUG][       Thread-259881][   transport.py][1871] : userauth is OK
2025-06-13 15:43:54,243 [ INFO][       Thread-259881][   transport.py][1871] : Authentication (password) successful!
2025-06-13 15:43:54,243 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 15:43:54,895 [DEBUG][       Thread-259881][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 15:43:54,896 [DEBUG][       Thread-259881][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 15:43:54,937 [DEBUG][       Thread-259881][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 15:43:54,937 [DEBUG][       Thread-259881][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 15:43:54,940 [DEBUG][       Thread-259881][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 15:43:54,953 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 15:43:54,953 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 15:43:54,955 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 15:43:54,957 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 15:43:54,963 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 15:43:54,964 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 15:43:54,965 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 15:43:54,965 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 15:43:54,965 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.571810 -999.00  +13.70  23.69     33   -2.20 1 1 1 1 1   887    0 15.83 -1.65 ----- 19.4 23.7 40.2 28.0 16.9 -31.9 15.9 -32.9 16.8 -32.0 17.9 -30.0
2025-06-13 15:43:54,966 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 15:43:54,966 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 15:43:54,966 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.571810
2025-06-13 15:43:54,966 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 15:43:54,967 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 15:43:54,967 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 15:43:54,967 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 15:43:54,967 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 15:43:54,967 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T15:43:49', tmtdew=18.43, humidity=27.77, cloud=0.0, wind=19.37, temperature=14.0, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T13:43:24.384', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 15:43:54,967 [DEBUG][       Thread-259881][   transport.py][1871] : EOF in transport thread
2025-06-13 15:43:55,051 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 15:43:55,062 [DEBUG][       Thread-259885][   transport.py][1871] : starting thread (client mode): 0x863beda0
2025-06-13 15:43:55,062 [DEBUG][       Thread-259885][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 15:43:55,080 [DEBUG][       Thread-259885][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 15:43:55,080 [ INFO][       Thread-259885][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 15:43:55,088 [DEBUG][       Thread-259885][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 15:43:55,088 [DEBUG][       Thread-259885][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 15:43:55,088 [DEBUG][       Thread-259885][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 15:43:55,088 [DEBUG][       Thread-259885][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:43:55,088 [DEBUG][       Thread-259885][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:43:55,088 [DEBUG][       Thread-259885][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:43:55,088 [DEBUG][       Thread-259885][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:43:55,088 [DEBUG][       Thread-259885][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 15:43:55,088 [DEBUG][       Thread-259885][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 15:43:55,088 [DEBUG][       Thread-259885][   transport.py][1871] : client lang: <none>
2025-06-13 15:43:55,088 [DEBUG][       Thread-259885][   transport.py][1871] : server lang: <none>
2025-06-13 15:43:55,088 [DEBUG][       Thread-259885][   transport.py][1871] : kex follows: False
2025-06-13 15:43:55,089 [DEBUG][       Thread-259885][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 15:43:55,089 [DEBUG][       Thread-259885][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 15:43:55,089 [DEBUG][       Thread-259885][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 15:43:55,089 [DEBUG][       Thread-259885][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 15:43:55,089 [DEBUG][       Thread-259885][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 15:43:55,089 [DEBUG][       Thread-259885][   transport.py][1871] : Compression: none
2025-06-13 15:43:55,089 [DEBUG][       Thread-259885][   transport.py][1871] : === End of kex handshake ===
2025-06-13 15:43:55,145 [DEBUG][       Thread-259885][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 15:43:55,146 [DEBUG][       Thread-259885][   transport.py][1871] : Switch to new keys ...
2025-06-13 15:43:55,147 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 15:43:55,147 [DEBUG][       Thread-259885][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 15:43:55,148 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 15:43:55,205 [DEBUG][       Thread-259885][   transport.py][1871] : userauth is OK
2025-06-13 15:43:55,206 [DEBUG][       Thread-259885][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 15:43:55,206 [DEBUG][       Thread-259885][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 15:43:55,206 [DEBUG][       Thread-259885][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 15:43:55,206 [DEBUG][       Thread-259885][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 15:43:55,223 [ INFO][       Thread-259885][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 15:43:55,223 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 15:43:55,224 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 15:43:56,232 [DEBUG][       Thread-259885][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 15:43:56,232 [DEBUG][       Thread-259885][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 15:43:56,280 [DEBUG][       Thread-259885][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 15:43:56,280 [DEBUG][       Thread-259885][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 15:43:56,289 [DEBUG][       Thread-259885][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 15:43:56,297 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 15:43:56,298 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 15:43:56,306 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 15:43:56,315 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 15:43:56,315 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 15:43:56,316 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 15:43:56,324 [DEBUG][       Thread-259885][   transport.py][1871] : EOF in transport thread
2025-06-13 15:44:03,210 [DEBUG][Thread-259887 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:44:05,707 [DEBUG][Thread-259888 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:44:06,326 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 15:44:06,327 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 15:44:06,327 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 15:44:06,330 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 15:44:06,782 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:44:06,783 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:44:06,794 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 15, 43, 49), 18.43, 27.77, 0.0, 19.37, 14.0, 0, 0, 0, 2, 0, 0),)
2025-06-13 15:44:06,794 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 15:43:49
2025-06-13 15:44:06,870 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 15:44:06,876 [DEBUG][       Thread-259889][   transport.py][1871] : starting thread (client mode): 0x86368910
2025-06-13 15:44:06,876 [DEBUG][       Thread-259889][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 15:44:06,896 [DEBUG][       Thread-259889][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 15:44:06,896 [ INFO][       Thread-259889][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 15:44:06,899 [DEBUG][       Thread-259889][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 15:44:06,900 [DEBUG][       Thread-259889][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 15:44:06,900 [DEBUG][       Thread-259889][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 15:44:06,900 [DEBUG][       Thread-259889][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:44:06,900 [DEBUG][       Thread-259889][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:44:06,900 [DEBUG][       Thread-259889][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:44:06,900 [DEBUG][       Thread-259889][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:44:06,900 [DEBUG][       Thread-259889][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 15:44:06,900 [DEBUG][       Thread-259889][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 15:44:06,900 [DEBUG][       Thread-259889][   transport.py][1871] : client lang: <none>
2025-06-13 15:44:06,900 [DEBUG][       Thread-259889][   transport.py][1871] : server lang: <none>
2025-06-13 15:44:06,900 [DEBUG][       Thread-259889][   transport.py][1871] : kex follows: False
2025-06-13 15:44:06,900 [DEBUG][       Thread-259889][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 15:44:06,900 [DEBUG][       Thread-259889][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 15:44:06,900 [DEBUG][       Thread-259889][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 15:44:06,900 [DEBUG][       Thread-259889][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 15:44:06,900 [DEBUG][       Thread-259889][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 15:44:06,900 [DEBUG][       Thread-259889][   transport.py][1871] : Compression: none
2025-06-13 15:44:06,900 [DEBUG][       Thread-259889][   transport.py][1871] : === End of kex handshake ===
2025-06-13 15:44:06,917 [DEBUG][       Thread-259889][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 15:44:06,917 [DEBUG][       Thread-259889][   transport.py][1871] : Switch to new keys ...
2025-06-13 15:44:06,918 [DEBUG][       Thread-259889][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 15:44:06,918 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 15:44:06,918 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 15:44:06,919 [DEBUG][       Thread-259889][   transport.py][1871] : userauth is OK
2025-06-13 15:44:06,966 [ INFO][       Thread-259889][   transport.py][1871] : Authentication (password) successful!
2025-06-13 15:44:06,967 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 15:44:07,641 [DEBUG][       Thread-259889][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 15:44:07,641 [DEBUG][       Thread-259889][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 15:44:07,689 [DEBUG][       Thread-259889][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 15:44:07,689 [DEBUG][       Thread-259889][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 15:44:07,691 [DEBUG][       Thread-259889][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 15:44:07,705 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 15:44:07,705 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 15:44:07,707 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 15:44:07,708 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 15:44:07,713 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 15:44:07,714 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 15:44:07,714 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 15:44:07,715 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 15:44:07,715 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.571810 -999.00  +13.70  23.69     33   -2.20 1 1 1 1 1   887    0 15.83 -1.65 ----- 19.4 23.7 40.2 28.0 16.9 -31.9 15.9 -32.9 16.8 -32.0 17.9 -30.0
2025-06-13 15:44:07,715 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 15:44:07,715 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 15:44:07,715 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.571810
2025-06-13 15:44:07,716 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 15:44:07,716 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 15:44:07,717 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 15:44:07,717 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 15:44:07,717 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 15:44:07,717 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T15:43:49', tmtdew=18.43, humidity=27.77, cloud=0.0, wind=19.37, temperature=14.0, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T13:43:24.384', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 15:44:07,718 [DEBUG][       Thread-259889][   transport.py][1871] : EOF in transport thread
2025-06-13 15:44:07,801 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 15:44:07,811 [DEBUG][       Thread-259892][   transport.py][1871] : starting thread (client mode): 0x868c85e0
2025-06-13 15:44:07,812 [DEBUG][       Thread-259892][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 15:44:07,830 [DEBUG][       Thread-259892][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 15:44:07,830 [ INFO][       Thread-259892][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 15:44:07,838 [DEBUG][       Thread-259892][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 15:44:07,838 [DEBUG][       Thread-259892][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 15:44:07,838 [DEBUG][       Thread-259892][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 15:44:07,838 [DEBUG][       Thread-259892][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:44:07,838 [DEBUG][       Thread-259892][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:44:07,838 [DEBUG][       Thread-259892][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:44:07,838 [DEBUG][       Thread-259892][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:44:07,838 [DEBUG][       Thread-259892][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 15:44:07,838 [DEBUG][       Thread-259892][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 15:44:07,838 [DEBUG][       Thread-259892][   transport.py][1871] : client lang: <none>
2025-06-13 15:44:07,838 [DEBUG][       Thread-259892][   transport.py][1871] : server lang: <none>
2025-06-13 15:44:07,838 [DEBUG][       Thread-259892][   transport.py][1871] : kex follows: False
2025-06-13 15:44:07,838 [DEBUG][       Thread-259892][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 15:44:07,838 [DEBUG][       Thread-259892][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 15:44:07,838 [DEBUG][       Thread-259892][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 15:44:07,838 [DEBUG][       Thread-259892][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 15:44:07,838 [DEBUG][       Thread-259892][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 15:44:07,838 [DEBUG][       Thread-259892][   transport.py][1871] : Compression: none
2025-06-13 15:44:07,838 [DEBUG][       Thread-259892][   transport.py][1871] : === End of kex handshake ===
2025-06-13 15:44:07,895 [DEBUG][       Thread-259892][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 15:44:07,896 [DEBUG][       Thread-259892][   transport.py][1871] : Switch to new keys ...
2025-06-13 15:44:07,896 [DEBUG][       Thread-259892][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 15:44:07,896 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 15:44:07,896 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 15:44:07,953 [DEBUG][       Thread-259892][   transport.py][1871] : userauth is OK
2025-06-13 15:44:07,954 [DEBUG][       Thread-259892][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 15:44:07,954 [DEBUG][       Thread-259892][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 15:44:07,954 [DEBUG][       Thread-259892][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 15:44:07,954 [DEBUG][       Thread-259892][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 15:44:07,975 [ INFO][       Thread-259892][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 15:44:07,976 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 15:44:07,976 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 15:44:08,963 [DEBUG][       Thread-259892][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 15:44:08,963 [DEBUG][       Thread-259892][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 15:44:09,011 [DEBUG][       Thread-259892][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 15:44:09,011 [DEBUG][       Thread-259892][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 15:44:09,020 [DEBUG][       Thread-259892][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 15:44:09,028 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 15:44:09,028 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 15:44:09,037 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 15:44:09,053 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 15:44:09,053 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 15:44:09,053 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 15:44:09,061 [DEBUG][       Thread-259892][   transport.py][1871] : EOF in transport thread
2025-06-13 15:44:11,552 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:44:11,552 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:44:12,243 [DEBUG][Thread-259894 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:44:19,064 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 15:44:19,064 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 15:44:19,064 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 15:44:19,067 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 15:44:19,539 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 15, 43, 49), 18.43, 27.77, 0.0, 19.37, 14.0, 0, 0, 0, 2, 0, 0),)
2025-06-13 15:44:19,539 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 15:43:49
2025-06-13 15:44:19,617 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 15:44:19,621 [DEBUG][       Thread-259895][   transport.py][1871] : starting thread (client mode): 0x8636ba00
2025-06-13 15:44:19,621 [DEBUG][       Thread-259895][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 15:44:19,641 [DEBUG][       Thread-259895][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 15:44:19,641 [ INFO][       Thread-259895][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 15:44:19,645 [DEBUG][       Thread-259895][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 15:44:19,645 [DEBUG][       Thread-259895][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 15:44:19,645 [DEBUG][       Thread-259895][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 15:44:19,645 [DEBUG][       Thread-259895][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:44:19,645 [DEBUG][       Thread-259895][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:44:19,645 [DEBUG][       Thread-259895][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:44:19,645 [DEBUG][       Thread-259895][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:44:19,645 [DEBUG][       Thread-259895][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 15:44:19,645 [DEBUG][       Thread-259895][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 15:44:19,645 [DEBUG][       Thread-259895][   transport.py][1871] : client lang: <none>
2025-06-13 15:44:19,645 [DEBUG][       Thread-259895][   transport.py][1871] : server lang: <none>
2025-06-13 15:44:19,645 [DEBUG][       Thread-259895][   transport.py][1871] : kex follows: False
2025-06-13 15:44:19,645 [DEBUG][       Thread-259895][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 15:44:19,645 [DEBUG][       Thread-259895][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 15:44:19,645 [DEBUG][       Thread-259895][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 15:44:19,645 [DEBUG][       Thread-259895][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 15:44:19,645 [DEBUG][       Thread-259895][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 15:44:19,645 [DEBUG][       Thread-259895][   transport.py][1871] : Compression: none
2025-06-13 15:44:19,645 [DEBUG][       Thread-259895][   transport.py][1871] : === End of kex handshake ===
2025-06-13 15:44:19,663 [DEBUG][       Thread-259895][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 15:44:19,664 [DEBUG][       Thread-259895][   transport.py][1871] : Switch to new keys ...
2025-06-13 15:44:19,664 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 15:44:19,664 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 15:44:19,665 [DEBUG][       Thread-259895][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 15:44:19,665 [DEBUG][       Thread-259895][   transport.py][1871] : userauth is OK
2025-06-13 15:44:19,689 [ INFO][       Thread-259895][   transport.py][1871] : Authentication (password) successful!
2025-06-13 15:44:19,690 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 15:44:20,333 [DEBUG][       Thread-259895][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 15:44:20,333 [DEBUG][       Thread-259895][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 15:44:20,376 [DEBUG][       Thread-259895][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 15:44:20,377 [DEBUG][       Thread-259895][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 15:44:20,379 [DEBUG][       Thread-259895][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 15:44:20,391 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 15:44:20,391 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 15:44:20,393 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 15:44:20,394 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 15:44:20,400 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 15:44:20,402 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 15:44:20,402 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 15:44:20,402 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 15:44:20,402 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.572157 -999.00  +13.70  23.39     33   -2.10 1 1 1 1 1   887    0 15.63 -2.73 ----- 22.8 23.4 44.8 26.7 16.9 -31.9 15.9 -33.1 16.9 -31.6 17.9 -29.8
2025-06-13 15:44:20,403 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 15:44:20,403 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 15:44:20,403 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.572157
2025-06-13 15:44:20,403 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 15:44:20,403 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 15:44:20,404 [DEBUG][       Thread-259895][   transport.py][1871] : EOF in transport thread
2025-06-13 15:44:20,404 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 15:44:20,404 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 15:44:20,405 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 15:44:20,405 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T15:43:49', tmtdew=18.43, humidity=27.77, cloud=0.0, wind=19.37, temperature=14.0, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T13:43:54.365', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 15:44:20,485 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 15:44:20,497 [DEBUG][       Thread-259898][   transport.py][1871] : starting thread (client mode): 0x863939d0
2025-06-13 15:44:20,497 [DEBUG][       Thread-259898][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 15:44:20,514 [DEBUG][       Thread-259898][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 15:44:20,515 [ INFO][       Thread-259898][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 15:44:20,522 [DEBUG][       Thread-259898][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 15:44:20,523 [DEBUG][       Thread-259898][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 15:44:20,523 [DEBUG][       Thread-259898][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 15:44:20,523 [DEBUG][       Thread-259898][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:44:20,523 [DEBUG][       Thread-259898][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:44:20,523 [DEBUG][       Thread-259898][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:44:20,523 [DEBUG][       Thread-259898][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:44:20,523 [DEBUG][       Thread-259898][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 15:44:20,523 [DEBUG][       Thread-259898][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 15:44:20,523 [DEBUG][       Thread-259898][   transport.py][1871] : client lang: <none>
2025-06-13 15:44:20,523 [DEBUG][       Thread-259898][   transport.py][1871] : server lang: <none>
2025-06-13 15:44:20,523 [DEBUG][       Thread-259898][   transport.py][1871] : kex follows: False
2025-06-13 15:44:20,523 [DEBUG][       Thread-259898][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 15:44:20,523 [DEBUG][       Thread-259898][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 15:44:20,523 [DEBUG][       Thread-259898][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 15:44:20,523 [DEBUG][       Thread-259898][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 15:44:20,524 [DEBUG][       Thread-259898][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 15:44:20,524 [DEBUG][       Thread-259898][   transport.py][1871] : Compression: none
2025-06-13 15:44:20,524 [DEBUG][       Thread-259898][   transport.py][1871] : === End of kex handshake ===
2025-06-13 15:44:20,584 [DEBUG][       Thread-259898][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 15:44:20,585 [DEBUG][       Thread-259898][   transport.py][1871] : Switch to new keys ...
2025-06-13 15:44:20,585 [DEBUG][       Thread-259898][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 15:44:20,586 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 15:44:20,586 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 15:44:20,641 [DEBUG][       Thread-259898][   transport.py][1871] : userauth is OK
2025-06-13 15:44:20,641 [DEBUG][       Thread-259898][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 15:44:20,641 [DEBUG][       Thread-259898][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 15:44:20,641 [DEBUG][       Thread-259898][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 15:44:20,641 [DEBUG][       Thread-259898][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 15:44:20,657 [ INFO][       Thread-259898][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 15:44:20,657 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 15:44:20,657 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 15:44:21,263 [DEBUG][Thread-259900 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:44:21,658 [DEBUG][       Thread-259898][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 15:44:21,658 [DEBUG][       Thread-259898][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 15:44:21,707 [DEBUG][       Thread-259898][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 15:44:21,707 [DEBUG][       Thread-259898][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 15:44:21,716 [DEBUG][       Thread-259898][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 15:44:21,723 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 15:44:21,723 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 15:44:21,732 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 15:44:21,740 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 15:44:21,740 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 15:44:21,740 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 15:44:21,747 [DEBUG][       Thread-259898][   transport.py][1871] : EOF in transport thread
2025-06-13 15:44:21,805 [DEBUG][Thread-259901 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:44:30,284 [DEBUG][Thread-259902 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:44:31,745 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 15:44:31,746 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 15:44:31,746 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 15:44:31,749 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 15:44:32,199 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 15, 44, 20), 18.27, 27.95, 0.0, 16.6, 13.93, 0, 0, 0, 2, 0, 0),)
2025-06-13 15:44:32,199 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 15:44:20
2025-06-13 15:44:32,276 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 15:44:32,280 [DEBUG][       Thread-259903][   transport.py][1871] : starting thread (client mode): 0x867fcf10
2025-06-13 15:44:32,280 [DEBUG][       Thread-259903][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 15:44:32,300 [DEBUG][       Thread-259903][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 15:44:32,300 [ INFO][       Thread-259903][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 15:44:32,304 [DEBUG][       Thread-259903][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 15:44:32,304 [DEBUG][       Thread-259903][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 15:44:32,304 [DEBUG][       Thread-259903][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 15:44:32,304 [DEBUG][       Thread-259903][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:44:32,304 [DEBUG][       Thread-259903][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:44:32,304 [DEBUG][       Thread-259903][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:44:32,304 [DEBUG][       Thread-259903][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:44:32,304 [DEBUG][       Thread-259903][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 15:44:32,304 [DEBUG][       Thread-259903][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 15:44:32,304 [DEBUG][       Thread-259903][   transport.py][1871] : client lang: <none>
2025-06-13 15:44:32,304 [DEBUG][       Thread-259903][   transport.py][1871] : server lang: <none>
2025-06-13 15:44:32,304 [DEBUG][       Thread-259903][   transport.py][1871] : kex follows: False
2025-06-13 15:44:32,304 [DEBUG][       Thread-259903][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 15:44:32,304 [DEBUG][       Thread-259903][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 15:44:32,304 [DEBUG][       Thread-259903][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 15:44:32,304 [DEBUG][       Thread-259903][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 15:44:32,304 [DEBUG][       Thread-259903][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 15:44:32,304 [DEBUG][       Thread-259903][   transport.py][1871] : Compression: none
2025-06-13 15:44:32,304 [DEBUG][       Thread-259903][   transport.py][1871] : === End of kex handshake ===
2025-06-13 15:44:32,320 [DEBUG][       Thread-259903][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 15:44:32,320 [DEBUG][       Thread-259903][   transport.py][1871] : Switch to new keys ...
2025-06-13 15:44:32,321 [DEBUG][       Thread-259903][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 15:44:32,321 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 15:44:32,321 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 15:44:32,322 [DEBUG][       Thread-259903][   transport.py][1871] : userauth is OK
2025-06-13 15:44:32,347 [ INFO][       Thread-259903][   transport.py][1871] : Authentication (password) successful!
2025-06-13 15:44:32,348 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 15:44:32,978 [DEBUG][       Thread-259903][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 15:44:32,978 [DEBUG][       Thread-259903][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 15:44:33,021 [DEBUG][       Thread-259903][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 15:44:33,021 [DEBUG][       Thread-259903][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 15:44:33,024 [DEBUG][       Thread-259903][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 15:44:33,038 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 15:44:33,038 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 15:44:33,040 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 15:44:33,042 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 15:44:33,048 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 15:44:33,050 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 15:44:33,050 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 15:44:33,051 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 15:44:33,051 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.572157 -999.00  +13.70  23.39     33   -2.10 1 1 1 1 1   887    0 15.63 -2.73 ----- 22.8 23.4 44.8 26.7 16.9 -31.9 15.9 -33.1 16.9 -31.6 17.9 -29.8
2025-06-13 15:44:33,051 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 15:44:33,051 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 15:44:33,051 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.572157
2025-06-13 15:44:33,052 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 15:44:33,052 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 15:44:33,052 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 15:44:33,052 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 15:44:33,053 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 15:44:33,053 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T15:44:20', tmtdew=18.27, humidity=27.95, cloud=0.0, wind=16.6, temperature=13.93, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T13:43:54.365', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 15:44:33,054 [DEBUG][       Thread-259903][   transport.py][1871] : EOF in transport thread
2025-06-13 15:44:33,138 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 15:44:33,147 [DEBUG][       Thread-259906][   transport.py][1871] : starting thread (client mode): 0x863bdf90
2025-06-13 15:44:33,147 [DEBUG][       Thread-259906][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 15:44:33,164 [DEBUG][       Thread-259906][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 15:44:33,165 [ INFO][       Thread-259906][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 15:44:33,172 [DEBUG][       Thread-259906][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 15:44:33,172 [DEBUG][       Thread-259906][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 15:44:33,173 [DEBUG][       Thread-259906][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 15:44:33,173 [DEBUG][       Thread-259906][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:44:33,173 [DEBUG][       Thread-259906][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:44:33,173 [DEBUG][       Thread-259906][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:44:33,173 [DEBUG][       Thread-259906][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:44:33,173 [DEBUG][       Thread-259906][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 15:44:33,173 [DEBUG][       Thread-259906][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 15:44:33,173 [DEBUG][       Thread-259906][   transport.py][1871] : client lang: <none>
2025-06-13 15:44:33,173 [DEBUG][       Thread-259906][   transport.py][1871] : server lang: <none>
2025-06-13 15:44:33,173 [DEBUG][       Thread-259906][   transport.py][1871] : kex follows: False
2025-06-13 15:44:33,173 [DEBUG][       Thread-259906][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 15:44:33,173 [DEBUG][       Thread-259906][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 15:44:33,173 [DEBUG][       Thread-259906][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 15:44:33,173 [DEBUG][       Thread-259906][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 15:44:33,173 [DEBUG][       Thread-259906][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 15:44:33,173 [DEBUG][       Thread-259906][   transport.py][1871] : Compression: none
2025-06-13 15:44:33,173 [DEBUG][       Thread-259906][   transport.py][1871] : === End of kex handshake ===
2025-06-13 15:44:33,230 [DEBUG][       Thread-259906][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 15:44:33,231 [DEBUG][       Thread-259906][   transport.py][1871] : Switch to new keys ...
2025-06-13 15:44:33,231 [DEBUG][       Thread-259906][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 15:44:33,232 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 15:44:33,232 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 15:44:33,287 [DEBUG][       Thread-259906][   transport.py][1871] : userauth is OK
2025-06-13 15:44:33,287 [DEBUG][       Thread-259906][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 15:44:33,288 [DEBUG][       Thread-259906][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 15:44:33,288 [DEBUG][       Thread-259906][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 15:44:33,288 [DEBUG][       Thread-259906][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 15:44:33,311 [ INFO][       Thread-259906][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 15:44:33,312 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 15:44:33,312 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 15:44:34,326 [DEBUG][       Thread-259906][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 15:44:34,326 [DEBUG][       Thread-259906][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 15:44:34,380 [DEBUG][       Thread-259906][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 15:44:34,380 [DEBUG][       Thread-259906][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 15:44:34,389 [DEBUG][       Thread-259906][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 15:44:34,398 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 15:44:34,399 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 15:44:34,408 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 15:44:34,417 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 15:44:34,417 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 15:44:34,418 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 15:44:34,426 [DEBUG][       Thread-259906][   transport.py][1871] : EOF in transport thread
2025-06-13 15:44:39,307 [DEBUG][Thread-259908 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:44:44,428 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 15:44:44,429 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 15:44:44,429 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 15:44:44,432 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 15:44:44,894 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 15, 44, 20), 18.27, 27.95, 0.0, 16.6, 13.93, 0, 0, 0, 2, 0, 0),)
2025-06-13 15:44:44,894 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 15:44:20
2025-06-13 15:44:44,971 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 15:44:44,975 [DEBUG][       Thread-259909][   transport.py][1871] : starting thread (client mode): 0x867fdab0
2025-06-13 15:44:44,975 [DEBUG][       Thread-259909][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 15:44:44,996 [DEBUG][       Thread-259909][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 15:44:44,996 [ INFO][       Thread-259909][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 15:44:44,999 [DEBUG][       Thread-259909][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 15:44:44,999 [DEBUG][       Thread-259909][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 15:44:44,999 [DEBUG][       Thread-259909][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 15:44:44,999 [DEBUG][       Thread-259909][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:44:44,999 [DEBUG][       Thread-259909][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:44:44,999 [DEBUG][       Thread-259909][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:44:44,999 [DEBUG][       Thread-259909][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:44:44,999 [DEBUG][       Thread-259909][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 15:44:45,000 [DEBUG][       Thread-259909][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 15:44:45,000 [DEBUG][       Thread-259909][   transport.py][1871] : client lang: <none>
2025-06-13 15:44:45,000 [DEBUG][       Thread-259909][   transport.py][1871] : server lang: <none>
2025-06-13 15:44:45,000 [DEBUG][       Thread-259909][   transport.py][1871] : kex follows: False
2025-06-13 15:44:45,000 [DEBUG][       Thread-259909][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 15:44:45,000 [DEBUG][       Thread-259909][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 15:44:45,000 [DEBUG][       Thread-259909][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 15:44:45,000 [DEBUG][       Thread-259909][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 15:44:45,000 [DEBUG][       Thread-259909][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 15:44:45,000 [DEBUG][       Thread-259909][   transport.py][1871] : Compression: none
2025-06-13 15:44:45,000 [DEBUG][       Thread-259909][   transport.py][1871] : === End of kex handshake ===
2025-06-13 15:44:45,015 [DEBUG][       Thread-259909][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 15:44:45,015 [DEBUG][       Thread-259909][   transport.py][1871] : Switch to new keys ...
2025-06-13 15:44:45,015 [DEBUG][       Thread-259909][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 15:44:45,016 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 15:44:45,016 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 15:44:45,017 [DEBUG][       Thread-259909][   transport.py][1871] : userauth is OK
2025-06-13 15:44:45,041 [ INFO][       Thread-259909][   transport.py][1871] : Authentication (password) successful!
2025-06-13 15:44:45,042 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 15:44:45,625 [DEBUG][       Thread-259909][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 15:44:45,625 [DEBUG][       Thread-259909][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 15:44:45,668 [DEBUG][       Thread-259909][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 15:44:45,669 [DEBUG][       Thread-259909][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 15:44:45,671 [DEBUG][       Thread-259909][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 15:44:45,684 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 15:44:45,684 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 15:44:45,685 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 15:44:45,686 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 15:44:45,688 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 15:44:45,689 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 15:44:45,689 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 15:44:45,689 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 15:44:45,689 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.572505 -999.00  +13.70  18.78     33   -2.10 1 1 1 1 1   887    0 16.01 -3.27 ----- 18.2 18.8 46.6 24.2 16.9 -32.0 15.9 -33.0 16.9 -31.2 17.9 -29.9
2025-06-13 15:44:45,689 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 15:44:45,689 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 15:44:45,689 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.572505
2025-06-13 15:44:45,690 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 15:44:45,690 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 15:44:45,690 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 15:44:45,690 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 15:44:45,690 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 15:44:45,690 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T15:44:20', tmtdew=18.27, humidity=27.95, cloud=0.0, wind=16.6, temperature=13.93, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T13:44:24.432', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 15:44:45,690 [DEBUG][       Thread-259909][   transport.py][1871] : EOF in transport thread
2025-06-13 15:44:45,762 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 15:44:45,773 [DEBUG][       Thread-259912][   transport.py][1871] : starting thread (client mode): 0x863efbe0
2025-06-13 15:44:45,773 [DEBUG][       Thread-259912][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 15:44:45,787 [DEBUG][       Thread-259912][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 15:44:45,787 [ INFO][       Thread-259912][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 15:44:45,797 [DEBUG][       Thread-259912][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 15:44:45,797 [DEBUG][       Thread-259912][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 15:44:45,797 [DEBUG][       Thread-259912][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 15:44:45,797 [DEBUG][       Thread-259912][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:44:45,797 [DEBUG][       Thread-259912][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:44:45,797 [DEBUG][       Thread-259912][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:44:45,797 [DEBUG][       Thread-259912][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:44:45,797 [DEBUG][       Thread-259912][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 15:44:45,797 [DEBUG][       Thread-259912][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 15:44:45,797 [DEBUG][       Thread-259912][   transport.py][1871] : client lang: <none>
2025-06-13 15:44:45,797 [DEBUG][       Thread-259912][   transport.py][1871] : server lang: <none>
2025-06-13 15:44:45,797 [DEBUG][       Thread-259912][   transport.py][1871] : kex follows: False
2025-06-13 15:44:45,797 [DEBUG][       Thread-259912][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 15:44:45,798 [DEBUG][       Thread-259912][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 15:44:45,798 [DEBUG][       Thread-259912][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 15:44:45,798 [DEBUG][       Thread-259912][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 15:44:45,798 [DEBUG][       Thread-259912][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 15:44:45,798 [DEBUG][       Thread-259912][   transport.py][1871] : Compression: none
2025-06-13 15:44:45,798 [DEBUG][       Thread-259912][   transport.py][1871] : === End of kex handshake ===
2025-06-13 15:44:45,862 [DEBUG][       Thread-259912][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 15:44:45,862 [DEBUG][       Thread-259912][   transport.py][1871] : Switch to new keys ...
2025-06-13 15:44:45,863 [DEBUG][       Thread-259912][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 15:44:45,863 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 15:44:45,863 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 15:44:45,921 [DEBUG][       Thread-259912][   transport.py][1871] : userauth is OK
2025-06-13 15:44:45,921 [DEBUG][       Thread-259912][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 15:44:45,921 [DEBUG][       Thread-259912][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 15:44:45,921 [DEBUG][       Thread-259912][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 15:44:45,921 [DEBUG][       Thread-259912][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 15:44:45,935 [ INFO][       Thread-259912][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 15:44:45,935 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 15:44:45,935 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 15:44:46,952 [DEBUG][       Thread-259912][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 15:44:46,952 [DEBUG][       Thread-259912][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 15:44:47,004 [DEBUG][       Thread-259912][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 15:44:47,004 [DEBUG][       Thread-259912][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 15:44:47,012 [DEBUG][       Thread-259912][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 15:44:47,020 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 15:44:47,020 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 15:44:47,028 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 15:44:47,036 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 15:44:47,036 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 15:44:47,036 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 15:44:47,044 [DEBUG][       Thread-259912][   transport.py][1871] : EOF in transport thread
2025-06-13 15:44:48,339 [DEBUG][Thread-259914 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:44:57,046 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 15:44:57,046 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 15:44:57,047 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 15:44:57,050 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 15:44:57,358 [DEBUG][Thread-259915 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:44:57,501 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 15, 44, 52), 18.22, 28.06, 0.0, 17.4, 13.94, 0, 0, 0, 2, 0, 0),)
2025-06-13 15:44:57,501 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 15:44:52
2025-06-13 15:44:57,582 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 15:44:57,585 [DEBUG][       Thread-259916][   transport.py][1871] : starting thread (client mode): 0x863c9450
2025-06-13 15:44:57,585 [DEBUG][       Thread-259916][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 15:44:57,606 [DEBUG][       Thread-259916][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 15:44:57,606 [ INFO][       Thread-259916][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 15:44:57,609 [DEBUG][       Thread-259916][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 15:44:57,609 [DEBUG][       Thread-259916][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 15:44:57,609 [DEBUG][       Thread-259916][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 15:44:57,609 [DEBUG][       Thread-259916][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:44:57,609 [DEBUG][       Thread-259916][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:44:57,609 [DEBUG][       Thread-259916][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:44:57,609 [DEBUG][       Thread-259916][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:44:57,609 [DEBUG][       Thread-259916][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 15:44:57,609 [DEBUG][       Thread-259916][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 15:44:57,609 [DEBUG][       Thread-259916][   transport.py][1871] : client lang: <none>
2025-06-13 15:44:57,609 [DEBUG][       Thread-259916][   transport.py][1871] : server lang: <none>
2025-06-13 15:44:57,609 [DEBUG][       Thread-259916][   transport.py][1871] : kex follows: False
2025-06-13 15:44:57,609 [DEBUG][       Thread-259916][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 15:44:57,609 [DEBUG][       Thread-259916][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 15:44:57,609 [DEBUG][       Thread-259916][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 15:44:57,609 [DEBUG][       Thread-259916][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 15:44:57,609 [DEBUG][       Thread-259916][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 15:44:57,609 [DEBUG][       Thread-259916][   transport.py][1871] : Compression: none
2025-06-13 15:44:57,609 [DEBUG][       Thread-259916][   transport.py][1871] : === End of kex handshake ===
2025-06-13 15:44:57,616 [DEBUG][       Thread-259916][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 15:44:57,616 [DEBUG][       Thread-259916][   transport.py][1871] : Switch to new keys ...
2025-06-13 15:44:57,616 [DEBUG][       Thread-259916][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 15:44:57,616 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 15:44:57,616 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 15:44:57,617 [DEBUG][       Thread-259916][   transport.py][1871] : userauth is OK
2025-06-13 15:44:57,629 [ INFO][       Thread-259916][   transport.py][1871] : Authentication (password) successful!
2025-06-13 15:44:57,629 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 15:44:58,265 [DEBUG][       Thread-259916][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 15:44:58,266 [DEBUG][       Thread-259916][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 15:44:58,309 [DEBUG][       Thread-259916][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 15:44:58,309 [DEBUG][       Thread-259916][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 15:44:58,312 [DEBUG][       Thread-259916][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 15:44:58,324 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 15:44:58,324 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 15:44:58,326 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 15:44:58,328 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 15:44:58,335 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 15:44:58,337 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 15:44:58,337 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 15:44:58,338 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 15:44:58,338 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.572505 -999.00  +13.70  18.78     33   -2.10 1 1 1 1 1   887    0 16.01 -3.27 ----- 18.2 18.8 46.6 24.2 16.9 -32.0 15.9 -33.0 16.9 -31.2 17.9 -29.9
2025-06-13 15:44:58,338 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 15:44:58,338 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 15:44:58,338 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.572505
2025-06-13 15:44:58,338 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 15:44:58,339 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 15:44:58,339 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 15:44:58,339 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 15:44:58,339 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 15:44:58,339 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T15:44:52', tmtdew=18.22, humidity=28.06, cloud=0.0, wind=17.4, temperature=13.94, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T13:44:24.432', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 15:44:58,340 [DEBUG][       Thread-259916][   transport.py][1871] : EOF in transport thread
2025-06-13 15:44:58,424 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 15:44:58,433 [DEBUG][       Thread-259919][   transport.py][1871] : starting thread (client mode): 0x86350070
2025-06-13 15:44:58,433 [DEBUG][       Thread-259919][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 15:44:58,452 [DEBUG][       Thread-259919][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 15:44:58,452 [ INFO][       Thread-259919][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 15:44:58,460 [DEBUG][       Thread-259919][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 15:44:58,460 [DEBUG][       Thread-259919][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 15:44:58,460 [DEBUG][       Thread-259919][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 15:44:58,460 [DEBUG][       Thread-259919][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:44:58,460 [DEBUG][       Thread-259919][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:44:58,460 [DEBUG][       Thread-259919][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:44:58,460 [DEBUG][       Thread-259919][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:44:58,460 [DEBUG][       Thread-259919][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 15:44:58,460 [DEBUG][       Thread-259919][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 15:44:58,460 [DEBUG][       Thread-259919][   transport.py][1871] : client lang: <none>
2025-06-13 15:44:58,460 [DEBUG][       Thread-259919][   transport.py][1871] : server lang: <none>
2025-06-13 15:44:58,460 [DEBUG][       Thread-259919][   transport.py][1871] : kex follows: False
2025-06-13 15:44:58,460 [DEBUG][       Thread-259919][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 15:44:58,461 [DEBUG][       Thread-259919][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 15:44:58,461 [DEBUG][       Thread-259919][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 15:44:58,461 [DEBUG][       Thread-259919][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 15:44:58,461 [DEBUG][       Thread-259919][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 15:44:58,461 [DEBUG][       Thread-259919][   transport.py][1871] : Compression: none
2025-06-13 15:44:58,461 [DEBUG][       Thread-259919][   transport.py][1871] : === End of kex handshake ===
2025-06-13 15:44:58,519 [DEBUG][       Thread-259919][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 15:44:58,519 [DEBUG][       Thread-259919][   transport.py][1871] : Switch to new keys ...
2025-06-13 15:44:58,520 [DEBUG][       Thread-259919][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 15:44:58,520 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 15:44:58,521 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 15:44:58,578 [DEBUG][       Thread-259919][   transport.py][1871] : userauth is OK
2025-06-13 15:44:58,578 [DEBUG][       Thread-259919][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 15:44:58,578 [DEBUG][       Thread-259919][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 15:44:58,578 [DEBUG][       Thread-259919][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 15:44:58,578 [DEBUG][       Thread-259919][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 15:44:58,598 [ INFO][       Thread-259919][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 15:44:58,598 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 15:44:58,599 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 15:44:59,623 [DEBUG][       Thread-259919][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 15:44:59,623 [DEBUG][       Thread-259919][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 15:44:59,676 [DEBUG][       Thread-259919][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 15:44:59,677 [DEBUG][       Thread-259919][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 15:44:59,687 [DEBUG][       Thread-259919][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 15:44:59,696 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 15:44:59,696 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 15:44:59,705 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 15:44:59,714 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 15:44:59,714 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 15:44:59,714 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 15:44:59,723 [DEBUG][       Thread-259919][   transport.py][1871] : EOF in transport thread
2025-06-13 15:45:06,379 [DEBUG][Thread-259921 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:45:06,806 [DEBUG][Thread-259922 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:45:07,884 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:45:07,885 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:45:09,725 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 15:45:09,725 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 15:45:09,725 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 15:45:09,728 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 15:45:10,178 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 15, 44, 52), 18.22, 28.06, 0.0, 17.4, 13.94, 0, 0, 0, 2, 0, 0),)
2025-06-13 15:45:10,178 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 15:44:52
2025-06-13 15:45:10,258 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 15:45:10,265 [DEBUG][       Thread-259923][   transport.py][1871] : starting thread (client mode): 0x867ffb20
2025-06-13 15:45:10,265 [DEBUG][       Thread-259923][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 15:45:10,285 [DEBUG][       Thread-259923][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 15:45:10,285 [ INFO][       Thread-259923][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 15:45:10,287 [DEBUG][       Thread-259923][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 15:45:10,287 [DEBUG][       Thread-259923][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 15:45:10,287 [DEBUG][       Thread-259923][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 15:45:10,287 [DEBUG][       Thread-259923][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:45:10,287 [DEBUG][       Thread-259923][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:45:10,287 [DEBUG][       Thread-259923][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:45:10,287 [DEBUG][       Thread-259923][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:45:10,287 [DEBUG][       Thread-259923][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 15:45:10,287 [DEBUG][       Thread-259923][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 15:45:10,287 [DEBUG][       Thread-259923][   transport.py][1871] : client lang: <none>
2025-06-13 15:45:10,287 [DEBUG][       Thread-259923][   transport.py][1871] : server lang: <none>
2025-06-13 15:45:10,287 [DEBUG][       Thread-259923][   transport.py][1871] : kex follows: False
2025-06-13 15:45:10,287 [DEBUG][       Thread-259923][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 15:45:10,287 [DEBUG][       Thread-259923][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 15:45:10,287 [DEBUG][       Thread-259923][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 15:45:10,287 [DEBUG][       Thread-259923][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 15:45:10,287 [DEBUG][       Thread-259923][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 15:45:10,288 [DEBUG][       Thread-259923][   transport.py][1871] : Compression: none
2025-06-13 15:45:10,288 [DEBUG][       Thread-259923][   transport.py][1871] : === End of kex handshake ===
2025-06-13 15:45:10,296 [DEBUG][       Thread-259923][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 15:45:10,296 [DEBUG][       Thread-259923][   transport.py][1871] : Switch to new keys ...
2025-06-13 15:45:10,297 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 15:45:10,297 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 15:45:10,298 [DEBUG][       Thread-259923][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 15:45:10,298 [DEBUG][       Thread-259923][   transport.py][1871] : userauth is OK
2025-06-13 15:45:10,311 [ INFO][       Thread-259923][   transport.py][1871] : Authentication (password) successful!
2025-06-13 15:45:10,311 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 15:45:11,692 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:45:11,693 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:45:12,073 [DEBUG][       Thread-259923][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 15:45:12,073 [DEBUG][       Thread-259923][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 15:45:12,117 [DEBUG][       Thread-259923][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 15:45:12,117 [DEBUG][       Thread-259923][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 15:45:12,120 [DEBUG][       Thread-259923][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 15:45:12,132 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 15:45:12,132 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 15:45:12,134 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 15:45:12,136 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 15:45:12,142 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 15:45:12,143 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 15:45:12,144 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 15:45:12,144 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 15:45:12,145 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.572505 -999.00  +13.70  18.78     33   -2.10 1 1 1 1 1   887    0 16.01 -3.27 ----- 18.2 18.8 46.6 24.2 16.9 -32.0 15.9 -33.0 16.9 -31.2 17.9 -29.9
2025-06-13 15:45:12,145 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 15:45:12,145 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 15:45:12,145 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.572505
2025-06-13 15:45:12,145 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 15:45:12,146 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 15:45:12,146 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 15:45:12,146 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 15:45:12,146 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 15:45:12,146 [DEBUG][       Thread-259923][   transport.py][1871] : EOF in transport thread
2025-06-13 15:45:12,147 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T15:44:52', tmtdew=18.22, humidity=28.06, cloud=0.0, wind=17.4, temperature=13.94, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T13:44:24.432', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 15:45:12,231 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 15:45:12,243 [DEBUG][       Thread-259926][   transport.py][1871] : starting thread (client mode): 0x86893fd0
2025-06-13 15:45:12,243 [DEBUG][       Thread-259926][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 15:45:12,258 [DEBUG][       Thread-259926][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 15:45:12,258 [ INFO][       Thread-259926][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 15:45:12,266 [DEBUG][       Thread-259926][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 15:45:12,266 [DEBUG][       Thread-259926][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 15:45:12,266 [DEBUG][       Thread-259926][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 15:45:12,266 [DEBUG][       Thread-259926][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:45:12,266 [DEBUG][       Thread-259926][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:45:12,266 [DEBUG][       Thread-259926][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:45:12,266 [DEBUG][       Thread-259926][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:45:12,266 [DEBUG][       Thread-259926][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 15:45:12,266 [DEBUG][       Thread-259926][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 15:45:12,266 [DEBUG][       Thread-259926][   transport.py][1871] : client lang: <none>
2025-06-13 15:45:12,266 [DEBUG][       Thread-259926][   transport.py][1871] : server lang: <none>
2025-06-13 15:45:12,266 [DEBUG][       Thread-259926][   transport.py][1871] : kex follows: False
2025-06-13 15:45:12,266 [DEBUG][       Thread-259926][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 15:45:12,266 [DEBUG][       Thread-259926][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 15:45:12,267 [DEBUG][       Thread-259926][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 15:45:12,267 [DEBUG][       Thread-259926][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 15:45:12,267 [DEBUG][       Thread-259926][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 15:45:12,267 [DEBUG][       Thread-259926][   transport.py][1871] : Compression: none
2025-06-13 15:45:12,267 [DEBUG][       Thread-259926][   transport.py][1871] : === End of kex handshake ===
2025-06-13 15:45:12,330 [DEBUG][       Thread-259926][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 15:45:12,331 [DEBUG][       Thread-259926][   transport.py][1871] : Switch to new keys ...
2025-06-13 15:45:12,331 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 15:45:12,332 [DEBUG][       Thread-259926][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 15:45:12,333 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 15:45:12,386 [DEBUG][       Thread-259926][   transport.py][1871] : userauth is OK
2025-06-13 15:45:12,386 [DEBUG][       Thread-259926][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 15:45:12,386 [DEBUG][       Thread-259926][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 15:45:12,386 [DEBUG][       Thread-259926][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 15:45:12,386 [DEBUG][       Thread-259926][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 15:45:12,405 [ INFO][       Thread-259926][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 15:45:12,406 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 15:45:12,406 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 15:45:13,409 [DEBUG][       Thread-259926][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 15:45:13,409 [DEBUG][       Thread-259926][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 15:45:13,460 [DEBUG][       Thread-259926][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 15:45:13,460 [DEBUG][       Thread-259926][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 15:45:13,470 [DEBUG][       Thread-259926][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 15:45:13,478 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 15:45:13,479 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 15:45:13,487 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 15:45:13,496 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 15:45:13,497 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 15:45:13,497 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 15:45:13,505 [DEBUG][       Thread-259926][   transport.py][1871] : EOF in transport thread
2025-06-13 15:45:15,417 [DEBUG][Thread-259928 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:45:21,837 [DEBUG][Thread-259929 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:45:23,504 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 15:45:23,504 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 15:45:23,504 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 15:45:23,505 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 15:45:23,984 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 15, 44, 52), 18.22, 28.06, 0.0, 17.4, 13.94, 0, 0, 0, 2, 0, 0),)
2025-06-13 15:45:23,984 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 15:44:52
2025-06-13 15:45:24,067 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 15:45:24,071 [DEBUG][       Thread-259930][   transport.py][1871] : starting thread (client mode): 0x86351870
2025-06-13 15:45:24,071 [DEBUG][       Thread-259930][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 15:45:24,091 [DEBUG][       Thread-259930][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 15:45:24,091 [ INFO][       Thread-259930][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 15:45:24,092 [DEBUG][       Thread-259930][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 15:45:24,092 [DEBUG][       Thread-259930][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 15:45:24,092 [DEBUG][       Thread-259930][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 15:45:24,092 [DEBUG][       Thread-259930][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:45:24,092 [DEBUG][       Thread-259930][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:45:24,092 [DEBUG][       Thread-259930][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:45:24,092 [DEBUG][       Thread-259930][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:45:24,092 [DEBUG][       Thread-259930][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 15:45:24,092 [DEBUG][       Thread-259930][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 15:45:24,092 [DEBUG][       Thread-259930][   transport.py][1871] : client lang: <none>
2025-06-13 15:45:24,092 [DEBUG][       Thread-259930][   transport.py][1871] : server lang: <none>
2025-06-13 15:45:24,092 [DEBUG][       Thread-259930][   transport.py][1871] : kex follows: False
2025-06-13 15:45:24,092 [DEBUG][       Thread-259930][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 15:45:24,092 [DEBUG][       Thread-259930][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 15:45:24,092 [DEBUG][       Thread-259930][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 15:45:24,092 [DEBUG][       Thread-259930][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 15:45:24,092 [DEBUG][       Thread-259930][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 15:45:24,092 [DEBUG][       Thread-259930][   transport.py][1871] : Compression: none
2025-06-13 15:45:24,092 [DEBUG][       Thread-259930][   transport.py][1871] : === End of kex handshake ===
2025-06-13 15:45:24,100 [DEBUG][       Thread-259930][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 15:45:24,100 [DEBUG][       Thread-259930][   transport.py][1871] : Switch to new keys ...
2025-06-13 15:45:24,100 [DEBUG][       Thread-259930][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 15:45:24,100 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 15:45:24,100 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 15:45:24,101 [DEBUG][       Thread-259930][   transport.py][1871] : userauth is OK
2025-06-13 15:45:24,113 [ INFO][       Thread-259930][   transport.py][1871] : Authentication (password) successful!
2025-06-13 15:45:24,113 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 15:45:24,437 [DEBUG][Thread-259932 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:45:24,779 [DEBUG][       Thread-259930][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 15:45:24,779 [DEBUG][       Thread-259930][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 15:45:24,820 [DEBUG][       Thread-259930][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 15:45:24,820 [DEBUG][       Thread-259930][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 15:45:24,823 [DEBUG][       Thread-259930][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 15:45:24,835 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 15:45:24,835 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 15:45:24,836 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 15:45:24,837 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 15:45:24,841 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 15:45:24,842 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 15:45:24,842 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 15:45:24,842 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 15:45:24,842 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.572852 -999.00  +13.80  16.33     33   -1.90 1 1 1 1 1   887    0 15.96 -2.44 ----- 20.7 16.3 56.6 23.5 16.9 -31.7 16.0 -32.8 16.9 -31.0 18.0 -30.3
2025-06-13 15:45:24,842 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 15:45:24,842 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 15:45:24,842 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.572852
2025-06-13 15:45:24,842 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 15:45:24,842 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 15:45:24,842 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 15:45:24,842 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 15:45:24,842 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 15:45:24,842 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T15:44:52', tmtdew=18.22, humidity=28.06, cloud=0.0, wind=17.4, temperature=13.94, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T13:44:54.413', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 15:45:24,843 [DEBUG][       Thread-259930][   transport.py][1871] : EOF in transport thread
2025-06-13 15:45:24,915 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 15:45:24,924 [DEBUG][       Thread-259934][   transport.py][1871] : starting thread (client mode): 0x863ee890
2025-06-13 15:45:24,925 [DEBUG][       Thread-259934][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 15:45:24,939 [DEBUG][       Thread-259934][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 15:45:24,939 [ INFO][       Thread-259934][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 15:45:24,946 [DEBUG][       Thread-259934][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 15:45:24,946 [DEBUG][       Thread-259934][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 15:45:24,946 [DEBUG][       Thread-259934][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 15:45:24,946 [DEBUG][       Thread-259934][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:45:24,946 [DEBUG][       Thread-259934][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:45:24,946 [DEBUG][       Thread-259934][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:45:24,946 [DEBUG][       Thread-259934][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:45:24,946 [DEBUG][       Thread-259934][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 15:45:24,946 [DEBUG][       Thread-259934][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 15:45:24,946 [DEBUG][       Thread-259934][   transport.py][1871] : client lang: <none>
2025-06-13 15:45:24,946 [DEBUG][       Thread-259934][   transport.py][1871] : server lang: <none>
2025-06-13 15:45:24,946 [DEBUG][       Thread-259934][   transport.py][1871] : kex follows: False
2025-06-13 15:45:24,946 [DEBUG][       Thread-259934][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 15:45:24,946 [DEBUG][       Thread-259934][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 15:45:24,946 [DEBUG][       Thread-259934][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 15:45:24,946 [DEBUG][       Thread-259934][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 15:45:24,946 [DEBUG][       Thread-259934][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 15:45:24,946 [DEBUG][       Thread-259934][   transport.py][1871] : Compression: none
2025-06-13 15:45:24,946 [DEBUG][       Thread-259934][   transport.py][1871] : === End of kex handshake ===
2025-06-13 15:45:25,003 [DEBUG][       Thread-259934][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 15:45:25,003 [DEBUG][       Thread-259934][   transport.py][1871] : Switch to new keys ...
2025-06-13 15:45:25,004 [DEBUG][       Thread-259934][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 15:45:25,004 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 15:45:25,004 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 15:45:25,068 [DEBUG][       Thread-259934][   transport.py][1871] : userauth is OK
2025-06-13 15:45:25,068 [DEBUG][       Thread-259934][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 15:45:25,068 [DEBUG][       Thread-259934][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 15:45:25,068 [DEBUG][       Thread-259934][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 15:45:25,068 [DEBUG][       Thread-259934][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 15:45:25,081 [ INFO][       Thread-259934][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 15:45:25,081 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 15:45:25,082 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 15:45:26,096 [DEBUG][       Thread-259934][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 15:45:26,096 [DEBUG][       Thread-259934][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 15:45:26,148 [DEBUG][       Thread-259934][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 15:45:26,148 [DEBUG][       Thread-259934][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 15:45:26,157 [DEBUG][       Thread-259934][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 15:45:26,165 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 15:45:26,165 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 15:45:26,173 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 15:45:26,181 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 15:45:26,181 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 15:45:26,181 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 15:45:26,190 [DEBUG][       Thread-259934][   transport.py][1871] : EOF in transport thread
2025-06-13 15:45:33,456 [DEBUG][Thread-259936 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:45:36,191 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 15:45:36,192 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 15:45:36,192 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 15:45:36,196 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 15:45:36,651 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 15, 45, 24), 18.08, 28.32, 0.0, 18.88, 14.01, 0, 0, 0, 2, 0, 0),)
2025-06-13 15:45:36,651 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 15:45:24
2025-06-13 15:45:36,731 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 15:45:36,737 [DEBUG][       Thread-259937][   transport.py][1871] : starting thread (client mode): 0x8636a0e0
2025-06-13 15:45:36,737 [DEBUG][       Thread-259937][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 15:45:36,757 [DEBUG][       Thread-259937][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 15:45:36,757 [ INFO][       Thread-259937][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 15:45:36,760 [DEBUG][       Thread-259937][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 15:45:36,760 [DEBUG][       Thread-259937][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 15:45:36,760 [DEBUG][       Thread-259937][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 15:45:36,760 [DEBUG][       Thread-259937][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:45:36,760 [DEBUG][       Thread-259937][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:45:36,760 [DEBUG][       Thread-259937][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:45:36,760 [DEBUG][       Thread-259937][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:45:36,760 [DEBUG][       Thread-259937][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 15:45:36,760 [DEBUG][       Thread-259937][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 15:45:36,760 [DEBUG][       Thread-259937][   transport.py][1871] : client lang: <none>
2025-06-13 15:45:36,760 [DEBUG][       Thread-259937][   transport.py][1871] : server lang: <none>
2025-06-13 15:45:36,760 [DEBUG][       Thread-259937][   transport.py][1871] : kex follows: False
2025-06-13 15:45:36,760 [DEBUG][       Thread-259937][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 15:45:36,760 [DEBUG][       Thread-259937][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 15:45:36,760 [DEBUG][       Thread-259937][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 15:45:36,760 [DEBUG][       Thread-259937][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 15:45:36,761 [DEBUG][       Thread-259937][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 15:45:36,761 [DEBUG][       Thread-259937][   transport.py][1871] : Compression: none
2025-06-13 15:45:36,761 [DEBUG][       Thread-259937][   transport.py][1871] : === End of kex handshake ===
2025-06-13 15:45:36,769 [DEBUG][       Thread-259937][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 15:45:36,770 [DEBUG][       Thread-259937][   transport.py][1871] : Switch to new keys ...
2025-06-13 15:45:36,770 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 15:45:36,770 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 15:45:36,771 [DEBUG][       Thread-259937][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 15:45:36,771 [DEBUG][       Thread-259937][   transport.py][1871] : userauth is OK
2025-06-13 15:45:36,784 [ INFO][       Thread-259937][   transport.py][1871] : Authentication (password) successful!
2025-06-13 15:45:36,785 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 15:45:38,382 [DEBUG][       Thread-259937][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 15:45:38,382 [DEBUG][       Thread-259937][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 15:45:38,425 [DEBUG][       Thread-259937][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 15:45:38,425 [DEBUG][       Thread-259937][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 15:45:38,428 [DEBUG][       Thread-259937][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 15:45:38,439 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 15:45:38,440 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 15:45:38,442 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 15:45:38,443 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 15:45:38,449 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 15:45:38,451 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 15:45:38,451 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 15:45:38,452 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 15:45:38,453 [DEBUG][       Thread-259937][   transport.py][1871] : EOF in transport thread
2025-06-13 15:45:38,460 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.572852 -999.00  +13.80  16.33     33   -1.90 1 1 1 1 1   887    0 15.96 -2.44 ----- 20.7 16.3 56.6 23.5 16.9 -31.7 16.0 -32.8 16.9 -31.0 18.0 -30.3
2025-06-13 15:45:38,460 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 15:45:38,461 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 15:45:38,461 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.572852
2025-06-13 15:45:38,461 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 15:45:38,462 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 15:45:38,462 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 15:45:38,462 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 15:45:38,462 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 15:45:38,462 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T15:45:24', tmtdew=18.08, humidity=28.32, cloud=0.0, wind=18.88, temperature=14.01, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T13:44:54.413', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 15:45:38,546 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 15:45:38,558 [DEBUG][       Thread-259940][   transport.py][1871] : starting thread (client mode): 0x863506a0
2025-06-13 15:45:38,558 [DEBUG][       Thread-259940][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 15:45:38,573 [DEBUG][       Thread-259940][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 15:45:38,573 [ INFO][       Thread-259940][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 15:45:38,581 [DEBUG][       Thread-259940][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 15:45:38,581 [DEBUG][       Thread-259940][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 15:45:38,581 [DEBUG][       Thread-259940][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 15:45:38,581 [DEBUG][       Thread-259940][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:45:38,581 [DEBUG][       Thread-259940][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:45:38,581 [DEBUG][       Thread-259940][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:45:38,581 [DEBUG][       Thread-259940][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:45:38,581 [DEBUG][       Thread-259940][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 15:45:38,581 [DEBUG][       Thread-259940][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 15:45:38,581 [DEBUG][       Thread-259940][   transport.py][1871] : client lang: <none>
2025-06-13 15:45:38,581 [DEBUG][       Thread-259940][   transport.py][1871] : server lang: <none>
2025-06-13 15:45:38,581 [DEBUG][       Thread-259940][   transport.py][1871] : kex follows: False
2025-06-13 15:45:38,581 [DEBUG][       Thread-259940][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 15:45:38,581 [DEBUG][       Thread-259940][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 15:45:38,581 [DEBUG][       Thread-259940][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 15:45:38,581 [DEBUG][       Thread-259940][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 15:45:38,582 [DEBUG][       Thread-259940][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 15:45:38,582 [DEBUG][       Thread-259940][   transport.py][1871] : Compression: none
2025-06-13 15:45:38,582 [DEBUG][       Thread-259940][   transport.py][1871] : === End of kex handshake ===
2025-06-13 15:45:38,637 [DEBUG][       Thread-259940][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 15:45:38,638 [DEBUG][       Thread-259940][   transport.py][1871] : Switch to new keys ...
2025-06-13 15:45:38,639 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 15:45:38,639 [DEBUG][       Thread-259940][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 15:45:38,640 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 15:45:38,703 [DEBUG][       Thread-259940][   transport.py][1871] : userauth is OK
2025-06-13 15:45:38,704 [DEBUG][       Thread-259940][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 15:45:38,704 [DEBUG][       Thread-259940][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 15:45:38,704 [DEBUG][       Thread-259940][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 15:45:38,704 [DEBUG][       Thread-259940][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 15:45:38,723 [ INFO][       Thread-259940][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 15:45:38,724 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 15:45:38,724 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 15:45:39,692 [DEBUG][       Thread-259940][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 15:45:39,692 [DEBUG][       Thread-259940][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 15:45:39,740 [DEBUG][       Thread-259940][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 15:45:39,740 [DEBUG][       Thread-259940][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 15:45:39,750 [DEBUG][       Thread-259940][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 15:45:39,759 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 15:45:39,759 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 15:45:39,768 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 15:45:39,777 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 15:45:39,778 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 15:45:39,778 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 15:45:39,786 [DEBUG][       Thread-259940][   transport.py][1871] : EOF in transport thread
2025-06-13 15:45:42,480 [DEBUG][Thread-259942 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:45:49,789 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 15:45:49,789 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 15:45:49,789 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 15:45:49,792 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 15:45:50,240 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 15, 45, 24), 18.08, 28.32, 0.0, 18.88, 14.01, 0, 0, 0, 2, 0, 0),)
2025-06-13 15:45:50,241 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 15:45:24
2025-06-13 15:45:50,321 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 15:45:50,326 [DEBUG][       Thread-259943][   transport.py][1871] : starting thread (client mode): 0x8636ad70
2025-06-13 15:45:50,326 [DEBUG][       Thread-259943][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 15:45:50,346 [DEBUG][       Thread-259943][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 15:45:50,346 [ INFO][       Thread-259943][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 15:45:50,350 [DEBUG][       Thread-259943][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 15:45:50,350 [DEBUG][       Thread-259943][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 15:45:50,350 [DEBUG][       Thread-259943][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 15:45:50,350 [DEBUG][       Thread-259943][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:45:50,350 [DEBUG][       Thread-259943][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:45:50,350 [DEBUG][       Thread-259943][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:45:50,350 [DEBUG][       Thread-259943][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:45:50,350 [DEBUG][       Thread-259943][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 15:45:50,350 [DEBUG][       Thread-259943][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 15:45:50,350 [DEBUG][       Thread-259943][   transport.py][1871] : client lang: <none>
2025-06-13 15:45:50,350 [DEBUG][       Thread-259943][   transport.py][1871] : server lang: <none>
2025-06-13 15:45:50,350 [DEBUG][       Thread-259943][   transport.py][1871] : kex follows: False
2025-06-13 15:45:50,350 [DEBUG][       Thread-259943][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 15:45:50,350 [DEBUG][       Thread-259943][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 15:45:50,350 [DEBUG][       Thread-259943][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 15:45:50,350 [DEBUG][       Thread-259943][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 15:45:50,350 [DEBUG][       Thread-259943][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 15:45:50,350 [DEBUG][       Thread-259943][   transport.py][1871] : Compression: none
2025-06-13 15:45:50,351 [DEBUG][       Thread-259943][   transport.py][1871] : === End of kex handshake ===
2025-06-13 15:45:50,366 [DEBUG][       Thread-259943][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 15:45:50,367 [DEBUG][       Thread-259943][   transport.py][1871] : Switch to new keys ...
2025-06-13 15:45:50,367 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 15:45:50,367 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 15:45:50,368 [DEBUG][       Thread-259943][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 15:45:50,369 [DEBUG][       Thread-259943][   transport.py][1871] : userauth is OK
2025-06-13 15:45:50,395 [ INFO][       Thread-259943][   transport.py][1871] : Authentication (password) successful!
2025-06-13 15:45:50,396 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 15:45:51,034 [DEBUG][       Thread-259943][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 15:45:51,035 [DEBUG][       Thread-259943][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 15:45:51,077 [DEBUG][       Thread-259943][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 15:45:51,077 [DEBUG][       Thread-259943][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 15:45:51,081 [DEBUG][       Thread-259943][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 15:45:51,092 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 15:45:51,093 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 15:45:51,095 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 15:45:51,097 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 15:45:51,104 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 15:45:51,106 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 15:45:51,106 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 15:45:51,107 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 15:45:51,107 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.572852 -999.00  +13.80  16.33     33   -1.90 1 1 1 1 1   887    0 15.96 -2.44 ----- 20.7 16.3 56.6 23.5 16.9 -31.7 16.0 -32.8 16.9 -31.0 18.0 -30.3
2025-06-13 15:45:51,107 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 15:45:51,107 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 15:45:51,107 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.572852
2025-06-13 15:45:51,108 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 15:45:51,108 [DEBUG][       Thread-259943][   transport.py][1871] : EOF in transport thread
2025-06-13 15:45:51,109 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 15:45:51,110 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 15:45:51,110 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 15:45:51,110 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 15:45:51,110 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T15:45:24', tmtdew=18.08, humidity=28.32, cloud=0.0, wind=18.88, temperature=14.01, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T13:44:54.413', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 15:45:51,194 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 15:45:51,203 [DEBUG][       Thread-259946][   transport.py][1871] : starting thread (client mode): 0x863efbe0
2025-06-13 15:45:51,203 [DEBUG][       Thread-259946][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 15:45:51,218 [DEBUG][       Thread-259946][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 15:45:51,218 [ INFO][       Thread-259946][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 15:45:51,228 [DEBUG][       Thread-259946][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 15:45:51,229 [DEBUG][       Thread-259946][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 15:45:51,229 [DEBUG][       Thread-259946][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 15:45:51,229 [DEBUG][       Thread-259946][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:45:51,229 [DEBUG][       Thread-259946][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:45:51,229 [DEBUG][       Thread-259946][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:45:51,229 [DEBUG][       Thread-259946][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:45:51,229 [DEBUG][       Thread-259946][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 15:45:51,229 [DEBUG][       Thread-259946][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 15:45:51,229 [DEBUG][       Thread-259946][   transport.py][1871] : client lang: <none>
2025-06-13 15:45:51,229 [DEBUG][       Thread-259946][   transport.py][1871] : server lang: <none>
2025-06-13 15:45:51,229 [DEBUG][       Thread-259946][   transport.py][1871] : kex follows: False
2025-06-13 15:45:51,229 [DEBUG][       Thread-259946][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 15:45:51,229 [DEBUG][       Thread-259946][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 15:45:51,229 [DEBUG][       Thread-259946][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 15:45:51,229 [DEBUG][       Thread-259946][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 15:45:51,229 [DEBUG][       Thread-259946][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 15:45:51,229 [DEBUG][       Thread-259946][   transport.py][1871] : Compression: none
2025-06-13 15:45:51,229 [DEBUG][       Thread-259946][   transport.py][1871] : === End of kex handshake ===
2025-06-13 15:45:51,290 [DEBUG][       Thread-259946][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 15:45:51,291 [DEBUG][       Thread-259946][   transport.py][1871] : Switch to new keys ...
2025-06-13 15:45:51,291 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 15:45:51,292 [DEBUG][       Thread-259946][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 15:45:51,293 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 15:45:51,348 [DEBUG][       Thread-259946][   transport.py][1871] : userauth is OK
2025-06-13 15:45:51,348 [DEBUG][       Thread-259946][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 15:45:51,348 [DEBUG][       Thread-259946][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 15:45:51,348 [DEBUG][       Thread-259946][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 15:45:51,348 [DEBUG][       Thread-259946][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 15:45:51,367 [ INFO][       Thread-259946][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 15:45:51,367 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 15:45:51,368 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 15:45:51,516 [DEBUG][Thread-259948 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:45:52,378 [DEBUG][       Thread-259946][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 15:45:52,378 [DEBUG][       Thread-259946][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 15:45:52,433 [DEBUG][       Thread-259946][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 15:45:52,434 [DEBUG][       Thread-259946][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 15:45:52,444 [DEBUG][       Thread-259946][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 15:45:52,453 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 15:45:52,453 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 15:45:52,462 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 15:45:52,472 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 15:45:52,472 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 15:45:52,473 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 15:45:52,481 [DEBUG][       Thread-259946][   transport.py][1871] : EOF in transport thread
2025-06-13 15:46:00,538 [DEBUG][Thread-259949 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:46:02,480 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 15:46:02,480 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 15:46:02,480 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 15:46:02,480 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 15:46:02,967 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 15, 45, 56), 18.16, 28.16, 0.0, 20.33, 14.01, 0, 0, 0, 2, 0, 0),)
2025-06-13 15:46:02,967 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 15:45:56
2025-06-13 15:46:03,049 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 15:46:03,055 [DEBUG][       Thread-259950][   transport.py][1871] : starting thread (client mode): 0x867fd7e0
2025-06-13 15:46:03,055 [DEBUG][       Thread-259950][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 15:46:03,076 [DEBUG][       Thread-259950][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 15:46:03,076 [ INFO][       Thread-259950][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 15:46:03,079 [DEBUG][       Thread-259950][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 15:46:03,079 [DEBUG][       Thread-259950][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 15:46:03,079 [DEBUG][       Thread-259950][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 15:46:03,079 [DEBUG][       Thread-259950][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:46:03,079 [DEBUG][       Thread-259950][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:46:03,079 [DEBUG][       Thread-259950][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:46:03,079 [DEBUG][       Thread-259950][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:46:03,079 [DEBUG][       Thread-259950][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 15:46:03,079 [DEBUG][       Thread-259950][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 15:46:03,079 [DEBUG][       Thread-259950][   transport.py][1871] : client lang: <none>
2025-06-13 15:46:03,079 [DEBUG][       Thread-259950][   transport.py][1871] : server lang: <none>
2025-06-13 15:46:03,079 [DEBUG][       Thread-259950][   transport.py][1871] : kex follows: False
2025-06-13 15:46:03,079 [DEBUG][       Thread-259950][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 15:46:03,079 [DEBUG][       Thread-259950][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 15:46:03,079 [DEBUG][       Thread-259950][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 15:46:03,079 [DEBUG][       Thread-259950][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 15:46:03,079 [DEBUG][       Thread-259950][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 15:46:03,079 [DEBUG][       Thread-259950][   transport.py][1871] : Compression: none
2025-06-13 15:46:03,079 [DEBUG][       Thread-259950][   transport.py][1871] : === End of kex handshake ===
2025-06-13 15:46:03,098 [DEBUG][       Thread-259950][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 15:46:03,098 [DEBUG][       Thread-259950][   transport.py][1871] : Switch to new keys ...
2025-06-13 15:46:03,098 [DEBUG][       Thread-259950][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 15:46:03,098 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 15:46:03,098 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 15:46:03,099 [DEBUG][       Thread-259950][   transport.py][1871] : userauth is OK
2025-06-13 15:46:03,123 [ INFO][       Thread-259950][   transport.py][1871] : Authentication (password) successful!
2025-06-13 15:46:03,124 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 15:46:03,800 [DEBUG][       Thread-259950][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 15:46:03,801 [DEBUG][       Thread-259950][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 15:46:03,844 [DEBUG][       Thread-259950][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 15:46:03,844 [DEBUG][       Thread-259950][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 15:46:03,847 [DEBUG][       Thread-259950][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 15:46:03,858 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 15:46:03,858 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 15:46:03,859 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 15:46:03,860 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 15:46:03,863 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 15:46:03,864 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 15:46:03,864 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 15:46:03,864 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 15:46:03,864 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.573199 -999.00  +13.80  24.11     33   -2.10 1 1 1 1 1   887    0 15.97 -2.76 ----- 22.8 24.1 53.2 27.0 17.0 -32.1 16.0 -33.2 16.9 -31.3 18.0 -30.1
2025-06-13 15:46:03,864 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 15:46:03,864 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 15:46:03,864 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.573199
2025-06-13 15:46:03,864 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 15:46:03,864 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 15:46:03,864 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 15:46:03,864 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 15:46:03,864 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 15:46:03,864 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T15:45:56', tmtdew=18.16, humidity=28.16, cloud=0.0, wind=20.33, temperature=14.01, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T13:45:24.394', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 15:46:03,865 [DEBUG][       Thread-259950][   transport.py][1871] : EOF in transport thread
2025-06-13 15:46:03,936 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 15:46:03,947 [DEBUG][       Thread-259953][   transport.py][1871] : starting thread (client mode): 0x863caa70
2025-06-13 15:46:03,947 [DEBUG][       Thread-259953][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 15:46:03,963 [DEBUG][       Thread-259953][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 15:46:03,963 [ INFO][       Thread-259953][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 15:46:03,970 [DEBUG][       Thread-259953][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 15:46:03,970 [DEBUG][       Thread-259953][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 15:46:03,970 [DEBUG][       Thread-259953][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 15:46:03,970 [DEBUG][       Thread-259953][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:46:03,970 [DEBUG][       Thread-259953][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:46:03,970 [DEBUG][       Thread-259953][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:46:03,970 [DEBUG][       Thread-259953][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:46:03,970 [DEBUG][       Thread-259953][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 15:46:03,970 [DEBUG][       Thread-259953][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 15:46:03,971 [DEBUG][       Thread-259953][   transport.py][1871] : client lang: <none>
2025-06-13 15:46:03,971 [DEBUG][       Thread-259953][   transport.py][1871] : server lang: <none>
2025-06-13 15:46:03,971 [DEBUG][       Thread-259953][   transport.py][1871] : kex follows: False
2025-06-13 15:46:03,971 [DEBUG][       Thread-259953][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 15:46:03,971 [DEBUG][       Thread-259953][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 15:46:03,971 [DEBUG][       Thread-259953][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 15:46:03,971 [DEBUG][       Thread-259953][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 15:46:03,971 [DEBUG][       Thread-259953][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 15:46:03,971 [DEBUG][       Thread-259953][   transport.py][1871] : Compression: none
2025-06-13 15:46:03,971 [DEBUG][       Thread-259953][   transport.py][1871] : === End of kex handshake ===
2025-06-13 15:46:04,032 [DEBUG][       Thread-259953][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 15:46:04,032 [DEBUG][       Thread-259953][   transport.py][1871] : Switch to new keys ...
2025-06-13 15:46:04,032 [DEBUG][       Thread-259953][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 15:46:04,032 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 15:46:04,032 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 15:46:04,095 [DEBUG][       Thread-259953][   transport.py][1871] : userauth is OK
2025-06-13 15:46:04,095 [DEBUG][       Thread-259953][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 15:46:04,095 [DEBUG][       Thread-259953][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 15:46:04,095 [DEBUG][       Thread-259953][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 15:46:04,095 [DEBUG][       Thread-259953][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 15:46:04,109 [ INFO][       Thread-259953][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 15:46:04,109 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 15:46:04,110 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 15:46:05,127 [DEBUG][       Thread-259953][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 15:46:05,127 [DEBUG][       Thread-259953][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 15:46:05,175 [DEBUG][       Thread-259953][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 15:46:05,175 [DEBUG][       Thread-259953][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 15:46:05,184 [DEBUG][       Thread-259953][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 15:46:05,192 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 15:46:05,192 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 15:46:05,200 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 15:46:05,208 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 15:46:05,208 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 15:46:05,208 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 15:46:05,216 [DEBUG][       Thread-259953][   transport.py][1871] : EOF in transport thread
2025-06-13 15:46:07,966 [DEBUG][Thread-259955 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:46:09,044 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:46:09,045 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:46:09,557 [DEBUG][Thread-259956 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:46:11,831 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:46:11,832 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:46:15,219 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 15:46:15,219 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 15:46:15,219 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 15:46:15,223 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 15:46:15,682 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 15, 45, 56), 18.16, 28.16, 0.0, 20.33, 14.01, 0, 0, 0, 2, 0, 0),)
2025-06-13 15:46:15,682 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 15:45:56
2025-06-13 15:46:15,763 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 15:46:15,769 [DEBUG][       Thread-259957][   transport.py][1871] : starting thread (client mode): 0x86352230
2025-06-13 15:46:15,770 [DEBUG][       Thread-259957][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 15:46:15,790 [DEBUG][       Thread-259957][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 15:46:15,790 [ INFO][       Thread-259957][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 15:46:15,793 [DEBUG][       Thread-259957][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 15:46:15,793 [DEBUG][       Thread-259957][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 15:46:15,793 [DEBUG][       Thread-259957][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 15:46:15,794 [DEBUG][       Thread-259957][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:46:15,794 [DEBUG][       Thread-259957][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:46:15,794 [DEBUG][       Thread-259957][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:46:15,794 [DEBUG][       Thread-259957][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:46:15,794 [DEBUG][       Thread-259957][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 15:46:15,794 [DEBUG][       Thread-259957][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 15:46:15,794 [DEBUG][       Thread-259957][   transport.py][1871] : client lang: <none>
2025-06-13 15:46:15,794 [DEBUG][       Thread-259957][   transport.py][1871] : server lang: <none>
2025-06-13 15:46:15,794 [DEBUG][       Thread-259957][   transport.py][1871] : kex follows: False
2025-06-13 15:46:15,794 [DEBUG][       Thread-259957][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 15:46:15,794 [DEBUG][       Thread-259957][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 15:46:15,794 [DEBUG][       Thread-259957][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 15:46:15,794 [DEBUG][       Thread-259957][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 15:46:15,794 [DEBUG][       Thread-259957][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 15:46:15,794 [DEBUG][       Thread-259957][   transport.py][1871] : Compression: none
2025-06-13 15:46:15,794 [DEBUG][       Thread-259957][   transport.py][1871] : === End of kex handshake ===
2025-06-13 15:46:15,810 [DEBUG][       Thread-259957][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 15:46:15,811 [DEBUG][       Thread-259957][   transport.py][1871] : Switch to new keys ...
2025-06-13 15:46:15,811 [DEBUG][       Thread-259957][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 15:46:15,811 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 15:46:15,812 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 15:46:15,855 [DEBUG][       Thread-259957][   transport.py][1871] : userauth is OK
2025-06-13 15:46:15,880 [ INFO][       Thread-259957][   transport.py][1871] : Authentication (password) successful!
2025-06-13 15:46:15,881 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 15:46:16,543 [DEBUG][       Thread-259957][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 15:46:16,543 [DEBUG][       Thread-259957][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 15:46:16,585 [DEBUG][       Thread-259957][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 15:46:16,585 [DEBUG][       Thread-259957][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 15:46:16,589 [DEBUG][       Thread-259957][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 15:46:16,603 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 15:46:16,604 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 15:46:16,607 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 15:46:16,611 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 15:46:16,620 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 15:46:16,622 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 15:46:16,622 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 15:46:16,623 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 15:46:16,623 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.573199 -999.00  +13.80  24.11     33   -2.10 1 1 1 1 1   887    0 15.97 -2.76 ----- 22.8 24.1 53.2 27.0 17.0 -32.1 16.0 -33.2 16.9 -31.3 18.0 -30.1
2025-06-13 15:46:16,623 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 15:46:16,623 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 15:46:16,623 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.573199
2025-06-13 15:46:16,624 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 15:46:16,624 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 15:46:16,624 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 15:46:16,625 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 15:46:16,625 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 15:46:16,625 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T15:45:56', tmtdew=18.16, humidity=28.16, cloud=0.0, wind=20.33, temperature=14.01, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T13:45:24.394', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 15:46:16,625 [DEBUG][       Thread-259957][   transport.py][1871] : EOF in transport thread
2025-06-13 15:46:16,703 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 15:46:16,716 [DEBUG][       Thread-259960][   transport.py][1871] : starting thread (client mode): 0x863cbd00
2025-06-13 15:46:16,716 [DEBUG][       Thread-259960][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 15:46:16,731 [DEBUG][       Thread-259960][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 15:46:16,731 [ INFO][       Thread-259960][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 15:46:16,739 [DEBUG][       Thread-259960][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 15:46:16,739 [DEBUG][       Thread-259960][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 15:46:16,739 [DEBUG][       Thread-259960][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 15:46:16,739 [DEBUG][       Thread-259960][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:46:16,739 [DEBUG][       Thread-259960][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:46:16,739 [DEBUG][       Thread-259960][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:46:16,739 [DEBUG][       Thread-259960][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:46:16,739 [DEBUG][       Thread-259960][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 15:46:16,739 [DEBUG][       Thread-259960][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 15:46:16,739 [DEBUG][       Thread-259960][   transport.py][1871] : client lang: <none>
2025-06-13 15:46:16,739 [DEBUG][       Thread-259960][   transport.py][1871] : server lang: <none>
2025-06-13 15:46:16,739 [DEBUG][       Thread-259960][   transport.py][1871] : kex follows: False
2025-06-13 15:46:16,740 [DEBUG][       Thread-259960][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 15:46:16,740 [DEBUG][       Thread-259960][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 15:46:16,740 [DEBUG][       Thread-259960][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 15:46:16,740 [DEBUG][       Thread-259960][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 15:46:16,740 [DEBUG][       Thread-259960][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 15:46:16,740 [DEBUG][       Thread-259960][   transport.py][1871] : Compression: none
2025-06-13 15:46:16,740 [DEBUG][       Thread-259960][   transport.py][1871] : === End of kex handshake ===
2025-06-13 15:46:16,797 [DEBUG][       Thread-259960][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 15:46:16,798 [DEBUG][       Thread-259960][   transport.py][1871] : Switch to new keys ...
2025-06-13 15:46:16,799 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 15:46:16,799 [DEBUG][       Thread-259960][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 15:46:16,800 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 15:46:16,854 [DEBUG][       Thread-259960][   transport.py][1871] : userauth is OK
2025-06-13 15:46:16,854 [DEBUG][       Thread-259960][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 15:46:16,854 [DEBUG][       Thread-259960][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 15:46:16,854 [DEBUG][       Thread-259960][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 15:46:16,855 [DEBUG][       Thread-259960][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 15:46:16,875 [ INFO][       Thread-259960][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 15:46:16,875 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 15:46:16,876 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 15:46:17,868 [DEBUG][       Thread-259960][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 15:46:17,868 [DEBUG][       Thread-259960][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 15:46:17,920 [DEBUG][       Thread-259960][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 15:46:17,920 [DEBUG][       Thread-259960][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 15:46:17,929 [DEBUG][       Thread-259960][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 15:46:17,938 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 15:46:17,939 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 15:46:17,947 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 15:46:17,956 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 15:46:17,957 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 15:46:17,957 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 15:46:17,965 [DEBUG][       Thread-259960][   transport.py][1871] : EOF in transport thread
2025-06-13 15:46:18,591 [DEBUG][Thread-259962 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:46:21,869 [DEBUG][Thread-259963 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:46:27,611 [DEBUG][Thread-259964 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:46:27,964 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 15:46:27,964 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 15:46:27,964 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 15:46:27,966 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 15:46:28,436 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 15, 45, 56), 18.16, 28.16, 0.0, 20.33, 14.01, 0, 0, 0, 2, 0, 0),)
2025-06-13 15:46:28,436 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 15:45:56
2025-06-13 15:46:28,521 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 15:46:28,525 [DEBUG][       Thread-259965][   transport.py][1871] : starting thread (client mode): 0x867b7670
2025-06-13 15:46:28,525 [DEBUG][       Thread-259965][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 15:46:28,546 [DEBUG][       Thread-259965][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 15:46:28,546 [ INFO][       Thread-259965][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 15:46:28,548 [DEBUG][       Thread-259965][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 15:46:28,548 [DEBUG][       Thread-259965][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 15:46:28,548 [DEBUG][       Thread-259965][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 15:46:28,548 [DEBUG][       Thread-259965][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:46:28,548 [DEBUG][       Thread-259965][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:46:28,548 [DEBUG][       Thread-259965][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:46:28,548 [DEBUG][       Thread-259965][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:46:28,548 [DEBUG][       Thread-259965][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 15:46:28,548 [DEBUG][       Thread-259965][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 15:46:28,548 [DEBUG][       Thread-259965][   transport.py][1871] : client lang: <none>
2025-06-13 15:46:28,548 [DEBUG][       Thread-259965][   transport.py][1871] : server lang: <none>
2025-06-13 15:46:28,548 [DEBUG][       Thread-259965][   transport.py][1871] : kex follows: False
2025-06-13 15:46:28,548 [DEBUG][       Thread-259965][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 15:46:28,548 [DEBUG][       Thread-259965][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 15:46:28,548 [DEBUG][       Thread-259965][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 15:46:28,548 [DEBUG][       Thread-259965][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 15:46:28,548 [DEBUG][       Thread-259965][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 15:46:28,548 [DEBUG][       Thread-259965][   transport.py][1871] : Compression: none
2025-06-13 15:46:28,548 [DEBUG][       Thread-259965][   transport.py][1871] : === End of kex handshake ===
2025-06-13 15:46:28,564 [DEBUG][       Thread-259965][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 15:46:28,564 [DEBUG][       Thread-259965][   transport.py][1871] : Switch to new keys ...
2025-06-13 15:46:28,564 [DEBUG][       Thread-259965][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 15:46:28,564 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 15:46:28,564 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 15:46:28,564 [DEBUG][       Thread-259965][   transport.py][1871] : userauth is OK
2025-06-13 15:46:28,588 [ INFO][       Thread-259965][   transport.py][1871] : Authentication (password) successful!
2025-06-13 15:46:28,589 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 15:46:29,185 [DEBUG][       Thread-259965][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 15:46:29,185 [DEBUG][       Thread-259965][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 15:46:29,228 [DEBUG][       Thread-259965][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 15:46:29,228 [DEBUG][       Thread-259965][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 15:46:29,230 [DEBUG][       Thread-259965][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 15:46:29,238 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 15:46:29,238 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 15:46:29,239 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 15:46:29,240 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 15:46:29,243 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 15:46:29,243 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 15:46:29,244 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 15:46:29,244 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 15:46:29,244 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.573546 -999.00  +13.70  19.17     33   -2.10 1 1 1 1 1   887    0 15.88 -2.05 ----- 19.9 19.2 57.6 27.2 17.0 -31.7 16.0 -33.4 16.9 -31.7 18.0 -30.7
2025-06-13 15:46:29,244 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 15:46:29,244 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 15:46:29,244 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.573546
2025-06-13 15:46:29,244 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 15:46:29,244 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 15:46:29,244 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 15:46:29,244 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 15:46:29,244 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 15:46:29,244 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T15:45:56', tmtdew=18.16, humidity=28.16, cloud=0.0, wind=20.33, temperature=14.01, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T13:45:54.374', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 15:46:29,245 [DEBUG][       Thread-259965][   transport.py][1871] : EOF in transport thread
2025-06-13 15:46:29,319 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 15:46:29,328 [DEBUG][       Thread-259968][   transport.py][1871] : starting thread (client mode): 0x863936d0
2025-06-13 15:46:29,328 [DEBUG][       Thread-259968][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 15:46:29,343 [DEBUG][       Thread-259968][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 15:46:29,343 [ INFO][       Thread-259968][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 15:46:29,350 [DEBUG][       Thread-259968][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 15:46:29,350 [DEBUG][       Thread-259968][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 15:46:29,350 [DEBUG][       Thread-259968][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 15:46:29,350 [DEBUG][       Thread-259968][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:46:29,350 [DEBUG][       Thread-259968][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:46:29,350 [DEBUG][       Thread-259968][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:46:29,350 [DEBUG][       Thread-259968][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:46:29,350 [DEBUG][       Thread-259968][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 15:46:29,350 [DEBUG][       Thread-259968][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 15:46:29,350 [DEBUG][       Thread-259968][   transport.py][1871] : client lang: <none>
2025-06-13 15:46:29,350 [DEBUG][       Thread-259968][   transport.py][1871] : server lang: <none>
2025-06-13 15:46:29,350 [DEBUG][       Thread-259968][   transport.py][1871] : kex follows: False
2025-06-13 15:46:29,350 [DEBUG][       Thread-259968][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 15:46:29,350 [DEBUG][       Thread-259968][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 15:46:29,350 [DEBUG][       Thread-259968][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 15:46:29,350 [DEBUG][       Thread-259968][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 15:46:29,350 [DEBUG][       Thread-259968][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 15:46:29,351 [DEBUG][       Thread-259968][   transport.py][1871] : Compression: none
2025-06-13 15:46:29,351 [DEBUG][       Thread-259968][   transport.py][1871] : === End of kex handshake ===
2025-06-13 15:46:29,408 [DEBUG][       Thread-259968][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 15:46:29,408 [DEBUG][       Thread-259968][   transport.py][1871] : Switch to new keys ...
2025-06-13 15:46:29,408 [DEBUG][       Thread-259968][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 15:46:29,408 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 15:46:29,408 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 15:46:29,465 [DEBUG][       Thread-259968][   transport.py][1871] : userauth is OK
2025-06-13 15:46:29,465 [DEBUG][       Thread-259968][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 15:46:29,465 [DEBUG][       Thread-259968][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 15:46:29,465 [DEBUG][       Thread-259968][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 15:46:29,465 [DEBUG][       Thread-259968][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 15:46:29,479 [ INFO][       Thread-259968][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 15:46:29,480 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 15:46:29,480 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 15:46:30,473 [DEBUG][       Thread-259968][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 15:46:30,473 [DEBUG][       Thread-259968][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 15:46:30,523 [DEBUG][       Thread-259968][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 15:46:30,524 [DEBUG][       Thread-259968][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 15:46:30,532 [DEBUG][       Thread-259968][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 15:46:30,541 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 15:46:30,541 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 15:46:30,550 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 15:46:30,558 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 15:46:30,559 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 15:46:30,559 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 15:46:30,567 [DEBUG][       Thread-259968][   transport.py][1871] : EOF in transport thread
2025-06-13 15:46:36,631 [DEBUG][Thread-259970 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:46:40,560 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 15:46:40,560 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 15:46:40,560 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 15:46:40,563 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 15:46:41,031 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 15, 46, 27), 18.3, 27.9, 0.0, 16.71, 14.07, 0, 0, 0, 2, 0, 0),)
2025-06-13 15:46:41,031 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 15:46:27
2025-06-13 15:46:41,116 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 15:46:41,121 [DEBUG][       Thread-259971][   transport.py][1871] : starting thread (client mode): 0x863cbaf0
2025-06-13 15:46:41,121 [DEBUG][       Thread-259971][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 15:46:41,140 [DEBUG][       Thread-259971][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 15:46:41,140 [ INFO][       Thread-259971][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 15:46:41,144 [DEBUG][       Thread-259971][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 15:46:41,144 [DEBUG][       Thread-259971][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 15:46:41,144 [DEBUG][       Thread-259971][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 15:46:41,144 [DEBUG][       Thread-259971][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:46:41,144 [DEBUG][       Thread-259971][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:46:41,144 [DEBUG][       Thread-259971][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:46:41,144 [DEBUG][       Thread-259971][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:46:41,144 [DEBUG][       Thread-259971][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 15:46:41,144 [DEBUG][       Thread-259971][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 15:46:41,144 [DEBUG][       Thread-259971][   transport.py][1871] : client lang: <none>
2025-06-13 15:46:41,144 [DEBUG][       Thread-259971][   transport.py][1871] : server lang: <none>
2025-06-13 15:46:41,144 [DEBUG][       Thread-259971][   transport.py][1871] : kex follows: False
2025-06-13 15:46:41,144 [DEBUG][       Thread-259971][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 15:46:41,144 [DEBUG][       Thread-259971][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 15:46:41,144 [DEBUG][       Thread-259971][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 15:46:41,144 [DEBUG][       Thread-259971][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 15:46:41,144 [DEBUG][       Thread-259971][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 15:46:41,144 [DEBUG][       Thread-259971][   transport.py][1871] : Compression: none
2025-06-13 15:46:41,144 [DEBUG][       Thread-259971][   transport.py][1871] : === End of kex handshake ===
2025-06-13 15:46:41,160 [DEBUG][       Thread-259971][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 15:46:41,160 [DEBUG][       Thread-259971][   transport.py][1871] : Switch to new keys ...
2025-06-13 15:46:41,160 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 15:46:41,160 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 15:46:41,160 [DEBUG][       Thread-259971][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 15:46:41,161 [DEBUG][       Thread-259971][   transport.py][1871] : userauth is OK
2025-06-13 15:46:41,173 [ INFO][       Thread-259971][   transport.py][1871] : Authentication (password) successful!
2025-06-13 15:46:41,174 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 15:46:41,835 [DEBUG][       Thread-259971][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 15:46:41,835 [DEBUG][       Thread-259971][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 15:46:41,876 [DEBUG][       Thread-259971][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 15:46:41,876 [DEBUG][       Thread-259971][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 15:46:41,878 [DEBUG][       Thread-259971][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 15:46:41,891 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 15:46:41,891 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 15:46:41,892 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 15:46:41,893 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 15:46:41,896 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 15:46:41,897 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 15:46:41,897 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 15:46:41,897 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 15:46:41,897 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.573546 -999.00  +13.70  19.17     33   -2.10 1 1 1 1 1   887    0 15.88 -2.05 ----- 19.9 19.2 57.6 27.2 17.0 -31.7 16.0 -33.4 16.9 -31.7 18.0 -30.7
2025-06-13 15:46:41,897 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 15:46:41,897 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 15:46:41,897 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.573546
2025-06-13 15:46:41,897 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 15:46:41,898 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 15:46:41,898 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 15:46:41,898 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 15:46:41,898 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 15:46:41,898 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T15:46:27', tmtdew=18.3, humidity=27.9, cloud=0.0, wind=16.71, temperature=14.07, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T13:45:54.374', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 15:46:41,898 [DEBUG][       Thread-259971][   transport.py][1871] : EOF in transport thread
2025-06-13 15:46:41,972 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 15:46:45,654 [DEBUG][Thread-259974 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:46:54,694 [DEBUG][Thread-259975 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:47:03,715 [DEBUG][Thread-259976 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:47:09,093 [DEBUG][Thread-259977 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:47:10,181 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:47:10,182 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:47:11,967 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:47:11,968 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:47:12,738 [DEBUG][Thread-259978 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:47:21,757 [DEBUG][Thread-259979 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:47:21,897 [DEBUG][Thread-259980 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:47:30,775 [DEBUG][Thread-259981 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:47:39,796 [DEBUG][Thread-259982 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:47:48,815 [DEBUG][Thread-259983 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:47:57,837 [DEBUG][Thread-259984 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:48:06,854 [DEBUG][Thread-259985 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:48:10,252 [DEBUG][Thread-259986 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:48:11,333 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:48:11,335 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:48:12,131 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:48:12,132 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:48:15,878 [DEBUG][Thread-259987 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:48:21,942 [DEBUG][Thread-259988 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:48:24,901 [DEBUG][Thread-259989 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:48:33,923 [DEBUG][Thread-259990 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:48:42,943 [DEBUG][Thread-259991 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:48:51,860 [WARNING][ poll_weather_worker][      driver.py][ 286] : Unable to open ssh connection for writing weather state to io.saao.ac.za: [Errno 110] Connection timed out
2025-06-13 15:48:51,966 [DEBUG][Thread-259992 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:49:00,989 [DEBUG][Thread-259993 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:49:01,871 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 15:49:01,871 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 15:49:01,871 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 15:49:01,874 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 15:49:02,357 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 15, 48, 34), 18.27, 27.95, 0.0, 19.3, 14.07, 0, 0, 0, 2, 0, 0),)
2025-06-13 15:49:02,357 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 15:48:34
2025-06-13 15:49:02,439 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 15:49:02,446 [DEBUG][       Thread-259994][   transport.py][1871] : starting thread (client mode): 0x86353790
2025-06-13 15:49:02,446 [DEBUG][       Thread-259994][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 15:49:02,466 [DEBUG][       Thread-259994][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 15:49:02,466 [ INFO][       Thread-259994][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 15:49:02,469 [DEBUG][       Thread-259994][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 15:49:02,469 [DEBUG][       Thread-259994][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 15:49:02,469 [DEBUG][       Thread-259994][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 15:49:02,470 [DEBUG][       Thread-259994][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:49:02,470 [DEBUG][       Thread-259994][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:49:02,470 [DEBUG][       Thread-259994][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:49:02,470 [DEBUG][       Thread-259994][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:49:02,470 [DEBUG][       Thread-259994][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 15:49:02,470 [DEBUG][       Thread-259994][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 15:49:02,470 [DEBUG][       Thread-259994][   transport.py][1871] : client lang: <none>
2025-06-13 15:49:02,470 [DEBUG][       Thread-259994][   transport.py][1871] : server lang: <none>
2025-06-13 15:49:02,470 [DEBUG][       Thread-259994][   transport.py][1871] : kex follows: False
2025-06-13 15:49:02,470 [DEBUG][       Thread-259994][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 15:49:02,470 [DEBUG][       Thread-259994][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 15:49:02,470 [DEBUG][       Thread-259994][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 15:49:02,470 [DEBUG][       Thread-259994][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 15:49:02,470 [DEBUG][       Thread-259994][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 15:49:02,470 [DEBUG][       Thread-259994][   transport.py][1871] : Compression: none
2025-06-13 15:49:02,470 [DEBUG][       Thread-259994][   transport.py][1871] : === End of kex handshake ===
2025-06-13 15:49:02,486 [DEBUG][       Thread-259994][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 15:49:02,487 [DEBUG][       Thread-259994][   transport.py][1871] : Switch to new keys ...
2025-06-13 15:49:02,487 [DEBUG][       Thread-259994][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 15:49:02,487 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 15:49:02,488 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 15:49:02,489 [DEBUG][       Thread-259994][   transport.py][1871] : userauth is OK
2025-06-13 15:49:02,502 [ INFO][       Thread-259994][   transport.py][1871] : Authentication (password) successful!
2025-06-13 15:49:02,502 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 15:49:03,281 [DEBUG][       Thread-259994][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 15:49:03,282 [DEBUG][       Thread-259994][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 15:49:03,325 [DEBUG][       Thread-259994][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 15:49:03,325 [DEBUG][       Thread-259994][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 15:49:03,328 [DEBUG][       Thread-259994][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 15:49:03,340 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 15:49:03,341 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 15:49:03,343 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 15:49:03,345 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 15:49:03,350 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 15:49:03,352 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 15:49:03,352 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 15:49:03,353 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 15:49:03,353 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.575283 -999.00  +13.70  28.87     32   -2.30 1 1 1 1 1   887    0 15.87 0.41 ----- 25.9 28.9 59.2 30.1 16.9 -31.7 16.0 -32.5 16.9 -32.3 18.1 -29.8
2025-06-13 15:49:03,353 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 15:49:03,353 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 15:49:03,354 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.575283
2025-06-13 15:49:03,354 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 15:49:03,355 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 15:49:03,355 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 15:49:03,355 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 15:49:03,355 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 15:49:03,355 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T15:48:34', tmtdew=18.27, humidity=27.95, cloud=0.0, wind=19.3, temperature=14.07, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T13:48:24.451', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 15:49:03,355 [DEBUG][       Thread-259994][   transport.py][1871] : EOF in transport thread
2025-06-13 15:49:03,440 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 15:49:03,452 [DEBUG][       Thread-259997][   transport.py][1871] : starting thread (client mode): 0x867b7640
2025-06-13 15:49:03,452 [DEBUG][       Thread-259997][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 15:49:03,466 [DEBUG][       Thread-259997][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 15:49:03,466 [ INFO][       Thread-259997][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 15:49:03,473 [DEBUG][       Thread-259997][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 15:49:03,473 [DEBUG][       Thread-259997][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 15:49:03,473 [DEBUG][       Thread-259997][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 15:49:03,473 [DEBUG][       Thread-259997][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:49:03,473 [DEBUG][       Thread-259997][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:49:03,473 [DEBUG][       Thread-259997][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:49:03,473 [DEBUG][       Thread-259997][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:49:03,473 [DEBUG][       Thread-259997][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 15:49:03,473 [DEBUG][       Thread-259997][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 15:49:03,473 [DEBUG][       Thread-259997][   transport.py][1871] : client lang: <none>
2025-06-13 15:49:03,473 [DEBUG][       Thread-259997][   transport.py][1871] : server lang: <none>
2025-06-13 15:49:03,473 [DEBUG][       Thread-259997][   transport.py][1871] : kex follows: False
2025-06-13 15:49:03,473 [DEBUG][       Thread-259997][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 15:49:03,474 [DEBUG][       Thread-259997][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 15:49:03,474 [DEBUG][       Thread-259997][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 15:49:03,474 [DEBUG][       Thread-259997][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 15:49:03,474 [DEBUG][       Thread-259997][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 15:49:03,474 [DEBUG][       Thread-259997][   transport.py][1871] : Compression: none
2025-06-13 15:49:03,474 [DEBUG][       Thread-259997][   transport.py][1871] : === End of kex handshake ===
2025-06-13 15:49:03,540 [DEBUG][       Thread-259997][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 15:49:03,541 [DEBUG][       Thread-259997][   transport.py][1871] : Switch to new keys ...
2025-06-13 15:49:03,541 [DEBUG][       Thread-259997][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 15:49:03,542 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 15:49:03,542 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 15:49:03,598 [DEBUG][       Thread-259997][   transport.py][1871] : userauth is OK
2025-06-13 15:49:03,598 [DEBUG][       Thread-259997][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 15:49:03,598 [DEBUG][       Thread-259997][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 15:49:03,598 [DEBUG][       Thread-259997][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 15:49:03,598 [DEBUG][       Thread-259997][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 15:49:03,616 [ INFO][       Thread-259997][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 15:49:03,617 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 15:49:03,617 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 15:49:04,613 [DEBUG][       Thread-259997][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 15:49:04,613 [DEBUG][       Thread-259997][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 15:49:04,664 [DEBUG][       Thread-259997][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 15:49:04,664 [DEBUG][       Thread-259997][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 15:49:04,674 [DEBUG][       Thread-259997][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 15:49:04,682 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 15:49:04,683 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 15:49:04,691 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 15:49:04,700 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 15:49:04,700 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 15:49:04,701 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 15:49:04,709 [DEBUG][       Thread-259997][   transport.py][1871] : EOF in transport thread
2025-06-13 15:49:10,011 [DEBUG][Thread-259999 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:49:11,417 [DEBUG][Thread-260000 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:49:12,267 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:49:12,268 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:49:12,499 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:49:12,501 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:49:14,705 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 15:49:14,705 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 15:49:14,705 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 15:49:14,706 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 15:49:15,211 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 15, 49, 6), 18.15, 28.16, 0.0, 20.1, 14.03, 0, 0, 0, 2, 0, 0),)
2025-06-13 15:49:15,211 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 15:49:06
2025-06-13 15:49:15,298 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 15:49:15,304 [DEBUG][       Thread-260001][   transport.py][1871] : starting thread (client mode): 0x867fd390
2025-06-13 15:49:15,305 [DEBUG][       Thread-260001][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 15:49:15,326 [DEBUG][       Thread-260001][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 15:49:15,326 [ INFO][       Thread-260001][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 15:49:15,328 [DEBUG][       Thread-260001][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 15:49:15,328 [DEBUG][       Thread-260001][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 15:49:15,328 [DEBUG][       Thread-260001][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 15:49:15,328 [DEBUG][       Thread-260001][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:49:15,328 [DEBUG][       Thread-260001][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:49:15,328 [DEBUG][       Thread-260001][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:49:15,328 [DEBUG][       Thread-260001][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:49:15,328 [DEBUG][       Thread-260001][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 15:49:15,328 [DEBUG][       Thread-260001][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 15:49:15,328 [DEBUG][       Thread-260001][   transport.py][1871] : client lang: <none>
2025-06-13 15:49:15,328 [DEBUG][       Thread-260001][   transport.py][1871] : server lang: <none>
2025-06-13 15:49:15,328 [DEBUG][       Thread-260001][   transport.py][1871] : kex follows: False
2025-06-13 15:49:15,328 [DEBUG][       Thread-260001][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 15:49:15,328 [DEBUG][       Thread-260001][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 15:49:15,328 [DEBUG][       Thread-260001][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 15:49:15,328 [DEBUG][       Thread-260001][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 15:49:15,328 [DEBUG][       Thread-260001][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 15:49:15,328 [DEBUG][       Thread-260001][   transport.py][1871] : Compression: none
2025-06-13 15:49:15,328 [DEBUG][       Thread-260001][   transport.py][1871] : === End of kex handshake ===
2025-06-13 15:49:15,335 [DEBUG][       Thread-260001][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 15:49:15,335 [DEBUG][       Thread-260001][   transport.py][1871] : Switch to new keys ...
2025-06-13 15:49:15,335 [DEBUG][       Thread-260001][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 15:49:15,335 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 15:49:15,336 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 15:49:15,336 [DEBUG][       Thread-260001][   transport.py][1871] : userauth is OK
2025-06-13 15:49:15,348 [ INFO][       Thread-260001][   transport.py][1871] : Authentication (password) successful!
2025-06-13 15:49:15,348 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 15:49:15,993 [DEBUG][       Thread-260001][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 15:49:15,993 [DEBUG][       Thread-260001][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 15:49:16,036 [DEBUG][       Thread-260001][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 15:49:16,036 [DEBUG][       Thread-260001][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 15:49:16,039 [DEBUG][       Thread-260001][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 15:49:16,050 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 15:49:16,050 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 15:49:16,051 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 15:49:16,052 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 15:49:16,055 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 15:49:16,055 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 15:49:16,055 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 15:49:16,056 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 15:49:16,056 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.575630 -999.00  +13.60  21.95     33   -2.20 1 1 1 1 1   887    0 15.41 0.95 ----- 23.1 21.9 49.0 32.1 16.8 -31.5 15.9 -33.0 16.9 -31.7 18.0 -31.3
2025-06-13 15:49:16,056 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 15:49:16,056 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 15:49:16,056 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.575630
2025-06-13 15:49:16,056 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 15:49:16,056 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 15:49:16,056 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 15:49:16,056 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 15:49:16,056 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 15:49:16,056 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T15:49:06', tmtdew=18.15, humidity=28.16, cloud=0.0, wind=20.1, temperature=14.03, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T13:48:54.432', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 15:49:16,057 [DEBUG][       Thread-260001][   transport.py][1871] : EOF in transport thread
2025-06-13 15:49:16,129 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 15:49:16,140 [DEBUG][       Thread-260004][   transport.py][1871] : starting thread (client mode): 0xc5988130
2025-06-13 15:49:16,140 [DEBUG][       Thread-260004][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 15:49:16,155 [DEBUG][       Thread-260004][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 15:49:16,155 [ INFO][       Thread-260004][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 15:49:16,163 [DEBUG][       Thread-260004][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 15:49:16,163 [DEBUG][       Thread-260004][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 15:49:16,163 [DEBUG][       Thread-260004][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 15:49:16,163 [DEBUG][       Thread-260004][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:49:16,163 [DEBUG][       Thread-260004][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:49:16,163 [DEBUG][       Thread-260004][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:49:16,163 [DEBUG][       Thread-260004][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:49:16,163 [DEBUG][       Thread-260004][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 15:49:16,163 [DEBUG][       Thread-260004][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 15:49:16,163 [DEBUG][       Thread-260004][   transport.py][1871] : client lang: <none>
2025-06-13 15:49:16,163 [DEBUG][       Thread-260004][   transport.py][1871] : server lang: <none>
2025-06-13 15:49:16,163 [DEBUG][       Thread-260004][   transport.py][1871] : kex follows: False
2025-06-13 15:49:16,163 [DEBUG][       Thread-260004][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 15:49:16,163 [DEBUG][       Thread-260004][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 15:49:16,163 [DEBUG][       Thread-260004][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 15:49:16,163 [DEBUG][       Thread-260004][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 15:49:16,163 [DEBUG][       Thread-260004][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 15:49:16,163 [DEBUG][       Thread-260004][   transport.py][1871] : Compression: none
2025-06-13 15:49:16,163 [DEBUG][       Thread-260004][   transport.py][1871] : === End of kex handshake ===
2025-06-13 15:49:16,220 [DEBUG][       Thread-260004][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 15:49:16,220 [DEBUG][       Thread-260004][   transport.py][1871] : Switch to new keys ...
2025-06-13 15:49:16,220 [DEBUG][       Thread-260004][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 15:49:16,220 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 15:49:16,220 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 15:49:16,282 [DEBUG][       Thread-260004][   transport.py][1871] : userauth is OK
2025-06-13 15:49:16,282 [DEBUG][       Thread-260004][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 15:49:16,282 [DEBUG][       Thread-260004][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 15:49:16,282 [DEBUG][       Thread-260004][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 15:49:16,282 [DEBUG][       Thread-260004][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 15:49:16,296 [ INFO][       Thread-260004][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 15:49:16,296 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 15:49:16,297 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 15:49:17,268 [DEBUG][       Thread-260004][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 15:49:17,268 [DEBUG][       Thread-260004][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 15:49:17,319 [DEBUG][       Thread-260004][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 15:49:17,319 [DEBUG][       Thread-260004][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 15:49:17,328 [DEBUG][       Thread-260004][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 15:49:17,335 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 15:49:17,336 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 15:49:17,343 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 15:49:17,351 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 15:49:17,351 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 15:49:17,351 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 15:49:17,359 [DEBUG][       Thread-260004][   transport.py][1871] : EOF in transport thread
2025-06-13 15:49:19,043 [DEBUG][Thread-260006 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:49:21,974 [DEBUG][Thread-260007 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:49:27,362 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 15:49:27,362 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 15:49:27,362 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 15:49:27,365 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 15:49:27,857 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 15, 49, 6), 18.15, 28.16, 0.0, 20.1, 14.03, 0, 0, 0, 2, 0, 0),)
2025-06-13 15:49:27,857 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 15:49:06
2025-06-13 15:49:27,939 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 15:49:27,943 [DEBUG][       Thread-260008][   transport.py][1871] : starting thread (client mode): 0x86352380
2025-06-13 15:49:27,943 [DEBUG][       Thread-260008][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 15:49:27,964 [DEBUG][       Thread-260008][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 15:49:27,964 [ INFO][       Thread-260008][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 15:49:27,967 [DEBUG][       Thread-260008][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 15:49:27,967 [DEBUG][       Thread-260008][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 15:49:27,967 [DEBUG][       Thread-260008][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 15:49:27,967 [DEBUG][       Thread-260008][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:49:27,967 [DEBUG][       Thread-260008][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:49:27,967 [DEBUG][       Thread-260008][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:49:27,967 [DEBUG][       Thread-260008][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:49:27,967 [DEBUG][       Thread-260008][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 15:49:27,968 [DEBUG][       Thread-260008][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 15:49:27,968 [DEBUG][       Thread-260008][   transport.py][1871] : client lang: <none>
2025-06-13 15:49:27,968 [DEBUG][       Thread-260008][   transport.py][1871] : server lang: <none>
2025-06-13 15:49:27,968 [DEBUG][       Thread-260008][   transport.py][1871] : kex follows: False
2025-06-13 15:49:27,968 [DEBUG][       Thread-260008][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 15:49:27,968 [DEBUG][       Thread-260008][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 15:49:27,968 [DEBUG][       Thread-260008][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 15:49:27,968 [DEBUG][       Thread-260008][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 15:49:27,968 [DEBUG][       Thread-260008][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 15:49:27,968 [DEBUG][       Thread-260008][   transport.py][1871] : Compression: none
2025-06-13 15:49:27,968 [DEBUG][       Thread-260008][   transport.py][1871] : === End of kex handshake ===
2025-06-13 15:49:27,985 [DEBUG][       Thread-260008][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 15:49:27,985 [DEBUG][       Thread-260008][   transport.py][1871] : Switch to new keys ...
2025-06-13 15:49:27,986 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 15:49:27,986 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 15:49:27,987 [DEBUG][       Thread-260008][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 15:49:27,987 [DEBUG][       Thread-260008][   transport.py][1871] : userauth is OK
2025-06-13 15:49:28,001 [ INFO][       Thread-260008][   transport.py][1871] : Authentication (password) successful!
2025-06-13 15:49:28,001 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 15:49:28,069 [DEBUG][Thread-260010 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:49:28,685 [DEBUG][       Thread-260008][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 15:49:28,686 [DEBUG][       Thread-260008][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 15:49:28,729 [DEBUG][       Thread-260008][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 15:49:28,729 [DEBUG][       Thread-260008][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 15:49:28,733 [DEBUG][       Thread-260008][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 15:49:28,746 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 15:49:28,746 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 15:49:28,749 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 15:49:28,752 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 15:49:28,758 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 15:49:28,760 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 15:49:28,760 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 15:49:28,761 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 15:49:28,761 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.575630 -999.00  +13.60  21.95     33   -2.20 1 1 1 1 1   887    0 15.41 0.95 ----- 23.1 21.9 49.0 32.1 16.8 -31.5 15.9 -33.0 16.9 -31.7 18.0 -31.3
2025-06-13 15:49:28,761 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 15:49:28,761 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 15:49:28,762 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.575630
2025-06-13 15:49:28,762 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 15:49:28,763 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 15:49:28,763 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 15:49:28,763 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 15:49:28,763 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 15:49:28,763 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T15:49:06', tmtdew=18.15, humidity=28.16, cloud=0.0, wind=20.1, temperature=14.03, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T13:48:54.432', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 15:49:28,763 [DEBUG][       Thread-260008][   transport.py][1871] : EOF in transport thread
2025-06-13 15:49:28,847 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 15:49:28,859 [DEBUG][       Thread-260012][   transport.py][1871] : starting thread (client mode): 0x863936d0
2025-06-13 15:49:28,859 [DEBUG][       Thread-260012][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 15:49:28,880 [DEBUG][       Thread-260012][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 15:49:28,880 [ INFO][       Thread-260012][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 15:49:28,890 [DEBUG][       Thread-260012][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 15:49:28,891 [DEBUG][       Thread-260012][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 15:49:28,891 [DEBUG][       Thread-260012][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 15:49:28,891 [DEBUG][       Thread-260012][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:49:28,891 [DEBUG][       Thread-260012][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:49:28,891 [DEBUG][       Thread-260012][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:49:28,891 [DEBUG][       Thread-260012][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:49:28,891 [DEBUG][       Thread-260012][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 15:49:28,891 [DEBUG][       Thread-260012][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 15:49:28,891 [DEBUG][       Thread-260012][   transport.py][1871] : client lang: <none>
2025-06-13 15:49:28,891 [DEBUG][       Thread-260012][   transport.py][1871] : server lang: <none>
2025-06-13 15:49:28,891 [DEBUG][       Thread-260012][   transport.py][1871] : kex follows: False
2025-06-13 15:49:28,891 [DEBUG][       Thread-260012][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 15:49:28,891 [DEBUG][       Thread-260012][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 15:49:28,891 [DEBUG][       Thread-260012][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 15:49:28,892 [DEBUG][       Thread-260012][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 15:49:28,892 [DEBUG][       Thread-260012][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 15:49:28,892 [DEBUG][       Thread-260012][   transport.py][1871] : Compression: none
2025-06-13 15:49:28,892 [DEBUG][       Thread-260012][   transport.py][1871] : === End of kex handshake ===
2025-06-13 15:49:28,949 [DEBUG][       Thread-260012][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 15:49:28,950 [DEBUG][       Thread-260012][   transport.py][1871] : Switch to new keys ...
2025-06-13 15:49:28,950 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 15:49:28,951 [DEBUG][       Thread-260012][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 15:49:28,951 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 15:49:29,013 [DEBUG][       Thread-260012][   transport.py][1871] : userauth is OK
2025-06-13 15:49:29,013 [DEBUG][       Thread-260012][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 15:49:29,013 [DEBUG][       Thread-260012][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 15:49:29,013 [DEBUG][       Thread-260012][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 15:49:29,013 [DEBUG][       Thread-260012][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 15:49:29,035 [ INFO][       Thread-260012][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 15:49:29,036 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 15:49:29,036 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 15:49:30,086 [DEBUG][       Thread-260012][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 15:49:30,086 [DEBUG][       Thread-260012][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 15:49:30,136 [DEBUG][       Thread-260012][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 15:49:30,136 [DEBUG][       Thread-260012][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 15:49:30,145 [DEBUG][       Thread-260012][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 15:49:30,154 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 15:49:30,155 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 15:49:30,164 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 15:49:30,173 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 15:49:30,173 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 15:49:30,173 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 15:49:30,181 [DEBUG][       Thread-260012][   transport.py][1871] : EOF in transport thread
2025-06-13 15:49:37,091 [DEBUG][Thread-260014 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:49:40,184 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 15:49:40,184 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 15:49:40,184 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 15:49:40,187 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 15:49:40,677 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 15, 49, 37), 18.2, 28.27, 0.0, 18.12, 14.12, 0, 0, 0, 2, 0, 0),)
2025-06-13 15:49:40,677 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 15:49:37
2025-06-13 15:49:40,757 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 15:49:40,763 [DEBUG][       Thread-260015][   transport.py][1871] : starting thread (client mode): 0x867ff5b0
2025-06-13 15:49:40,764 [DEBUG][       Thread-260015][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 15:49:40,783 [DEBUG][       Thread-260015][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 15:49:40,783 [ INFO][       Thread-260015][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 15:49:40,787 [DEBUG][       Thread-260015][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 15:49:40,787 [DEBUG][       Thread-260015][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 15:49:40,787 [DEBUG][       Thread-260015][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 15:49:40,787 [DEBUG][       Thread-260015][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:49:40,787 [DEBUG][       Thread-260015][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:49:40,787 [DEBUG][       Thread-260015][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:49:40,787 [DEBUG][       Thread-260015][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:49:40,787 [DEBUG][       Thread-260015][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 15:49:40,787 [DEBUG][       Thread-260015][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 15:49:40,787 [DEBUG][       Thread-260015][   transport.py][1871] : client lang: <none>
2025-06-13 15:49:40,787 [DEBUG][       Thread-260015][   transport.py][1871] : server lang: <none>
2025-06-13 15:49:40,787 [DEBUG][       Thread-260015][   transport.py][1871] : kex follows: False
2025-06-13 15:49:40,787 [DEBUG][       Thread-260015][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 15:49:40,787 [DEBUG][       Thread-260015][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 15:49:40,787 [DEBUG][       Thread-260015][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 15:49:40,787 [DEBUG][       Thread-260015][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 15:49:40,787 [DEBUG][       Thread-260015][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 15:49:40,787 [DEBUG][       Thread-260015][   transport.py][1871] : Compression: none
2025-06-13 15:49:40,787 [DEBUG][       Thread-260015][   transport.py][1871] : === End of kex handshake ===
2025-06-13 15:49:40,803 [DEBUG][       Thread-260015][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 15:49:40,803 [DEBUG][       Thread-260015][   transport.py][1871] : Switch to new keys ...
2025-06-13 15:49:40,803 [DEBUG][       Thread-260015][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 15:49:40,803 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 15:49:40,803 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 15:49:40,804 [DEBUG][       Thread-260015][   transport.py][1871] : userauth is OK
2025-06-13 15:49:40,817 [ INFO][       Thread-260015][   transport.py][1871] : Authentication (password) successful!
2025-06-13 15:49:40,817 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 15:49:41,429 [DEBUG][       Thread-260015][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 15:49:41,429 [DEBUG][       Thread-260015][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 15:49:41,473 [DEBUG][       Thread-260015][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 15:49:41,473 [DEBUG][       Thread-260015][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 15:49:41,477 [DEBUG][       Thread-260015][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 15:49:41,490 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 15:49:41,490 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 15:49:41,492 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 15:49:41,494 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 15:49:41,500 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 15:49:41,502 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 15:49:41,502 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 15:49:41,503 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 15:49:41,503 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.575630 -999.00  +13.60  21.95     33   -2.20 1 1 1 1 1   887    0 15.41 0.95 ----- 23.1 21.9 49.0 32.1 16.8 -31.5 15.9 -33.0 16.9 -31.7 18.0 -31.3
2025-06-13 15:49:41,503 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 15:49:41,503 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 15:49:41,503 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.575630
2025-06-13 15:49:41,504 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 15:49:41,504 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 15:49:41,504 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 15:49:41,504 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 15:49:41,505 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 15:49:41,505 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T15:49:37', tmtdew=18.2, humidity=28.27, cloud=0.0, wind=18.12, temperature=14.12, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T13:48:54.432', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 15:49:41,505 [DEBUG][       Thread-260015][   transport.py][1871] : EOF in transport thread
2025-06-13 15:49:41,588 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 15:49:41,600 [DEBUG][       Thread-260018][   transport.py][1871] : starting thread (client mode): 0x863beda0
2025-06-13 15:49:41,601 [DEBUG][       Thread-260018][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 15:49:41,615 [DEBUG][       Thread-260018][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 15:49:41,615 [ INFO][       Thread-260018][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 15:49:41,624 [DEBUG][       Thread-260018][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 15:49:41,624 [DEBUG][       Thread-260018][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 15:49:41,624 [DEBUG][       Thread-260018][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 15:49:41,624 [DEBUG][       Thread-260018][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:49:41,624 [DEBUG][       Thread-260018][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:49:41,624 [DEBUG][       Thread-260018][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:49:41,624 [DEBUG][       Thread-260018][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:49:41,624 [DEBUG][       Thread-260018][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 15:49:41,624 [DEBUG][       Thread-260018][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 15:49:41,624 [DEBUG][       Thread-260018][   transport.py][1871] : client lang: <none>
2025-06-13 15:49:41,624 [DEBUG][       Thread-260018][   transport.py][1871] : server lang: <none>
2025-06-13 15:49:41,624 [DEBUG][       Thread-260018][   transport.py][1871] : kex follows: False
2025-06-13 15:49:41,624 [DEBUG][       Thread-260018][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 15:49:41,624 [DEBUG][       Thread-260018][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 15:49:41,624 [DEBUG][       Thread-260018][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 15:49:41,624 [DEBUG][       Thread-260018][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 15:49:41,625 [DEBUG][       Thread-260018][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 15:49:41,625 [DEBUG][       Thread-260018][   transport.py][1871] : Compression: none
2025-06-13 15:49:41,625 [DEBUG][       Thread-260018][   transport.py][1871] : === End of kex handshake ===
2025-06-13 15:49:41,682 [DEBUG][       Thread-260018][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 15:49:41,682 [DEBUG][       Thread-260018][   transport.py][1871] : Switch to new keys ...
2025-06-13 15:49:41,683 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 15:49:41,684 [DEBUG][       Thread-260018][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 15:49:41,684 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 15:49:41,750 [DEBUG][       Thread-260018][   transport.py][1871] : userauth is OK
2025-06-13 15:49:41,751 [DEBUG][       Thread-260018][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 15:49:41,751 [DEBUG][       Thread-260018][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 15:49:41,751 [DEBUG][       Thread-260018][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 15:49:41,751 [DEBUG][       Thread-260018][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 15:49:41,771 [ INFO][       Thread-260018][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 15:49:41,772 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 15:49:41,772 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 15:49:42,771 [DEBUG][       Thread-260018][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 15:49:42,771 [DEBUG][       Thread-260018][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 15:49:42,820 [DEBUG][       Thread-260018][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 15:49:42,820 [DEBUG][       Thread-260018][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 15:49:42,829 [DEBUG][       Thread-260018][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 15:49:42,839 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 15:49:42,839 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 15:49:42,848 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 15:49:42,857 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 15:49:42,857 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 15:49:42,857 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 15:49:42,865 [DEBUG][       Thread-260018][   transport.py][1871] : EOF in transport thread
2025-06-13 15:49:46,114 [DEBUG][Thread-260020 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:49:52,868 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 15:49:52,868 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 15:49:52,868 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 15:49:52,871 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 15:49:53,375 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 15, 49, 37), 18.2, 28.27, 0.0, 18.12, 14.12, 0, 0, 0, 2, 0, 0),)
2025-06-13 15:49:53,375 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 15:49:37
2025-06-13 15:49:53,460 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 15:49:53,464 [DEBUG][       Thread-260021][   transport.py][1871] : starting thread (client mode): 0x86369660
2025-06-13 15:49:53,464 [DEBUG][       Thread-260021][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 15:49:53,484 [DEBUG][       Thread-260021][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 15:49:53,484 [ INFO][       Thread-260021][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 15:49:53,488 [DEBUG][       Thread-260021][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 15:49:53,488 [DEBUG][       Thread-260021][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 15:49:53,488 [DEBUG][       Thread-260021][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 15:49:53,488 [DEBUG][       Thread-260021][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:49:53,488 [DEBUG][       Thread-260021][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:49:53,488 [DEBUG][       Thread-260021][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:49:53,488 [DEBUG][       Thread-260021][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:49:53,488 [DEBUG][       Thread-260021][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 15:49:53,488 [DEBUG][       Thread-260021][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 15:49:53,488 [DEBUG][       Thread-260021][   transport.py][1871] : client lang: <none>
2025-06-13 15:49:53,488 [DEBUG][       Thread-260021][   transport.py][1871] : server lang: <none>
2025-06-13 15:49:53,488 [DEBUG][       Thread-260021][   transport.py][1871] : kex follows: False
2025-06-13 15:49:53,488 [DEBUG][       Thread-260021][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 15:49:53,488 [DEBUG][       Thread-260021][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 15:49:53,488 [DEBUG][       Thread-260021][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 15:49:53,488 [DEBUG][       Thread-260021][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 15:49:53,488 [DEBUG][       Thread-260021][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 15:49:53,488 [DEBUG][       Thread-260021][   transport.py][1871] : Compression: none
2025-06-13 15:49:53,488 [DEBUG][       Thread-260021][   transport.py][1871] : === End of kex handshake ===
2025-06-13 15:49:53,502 [DEBUG][       Thread-260021][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 15:49:53,502 [DEBUG][       Thread-260021][   transport.py][1871] : Switch to new keys ...
2025-06-13 15:49:53,502 [DEBUG][       Thread-260021][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 15:49:53,503 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 15:49:53,503 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 15:49:53,503 [DEBUG][       Thread-260021][   transport.py][1871] : userauth is OK
2025-06-13 15:49:53,515 [ INFO][       Thread-260021][   transport.py][1871] : Authentication (password) successful!
2025-06-13 15:49:53,515 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 15:49:54,151 [DEBUG][       Thread-260021][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 15:49:54,151 [DEBUG][       Thread-260021][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 15:49:54,192 [DEBUG][       Thread-260021][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 15:49:54,192 [DEBUG][       Thread-260021][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 15:49:54,195 [DEBUG][       Thread-260021][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 15:49:54,207 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 15:49:54,207 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 15:49:54,208 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 15:49:54,209 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 15:49:54,212 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 15:49:54,213 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 15:49:54,213 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 15:49:54,213 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 15:49:54,213 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.575977 -999.00  +13.60  23.15     33   -2.30 1 1 1 1 1   887    0 15.84 0.80 ----- 23.2 23.1 46.0 29.6 16.8 -31.7 15.9 -32.9 16.8 -31.6 17.9 -31.5
2025-06-13 15:49:54,213 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 15:49:54,213 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 15:49:54,213 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.575977
2025-06-13 15:49:54,214 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 15:49:54,214 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 15:49:54,214 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 15:49:54,214 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 15:49:54,214 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 15:49:54,214 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T15:49:37', tmtdew=18.2, humidity=28.27, cloud=0.0, wind=18.12, temperature=14.12, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T13:49:24.413', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 15:49:54,214 [DEBUG][       Thread-260021][   transport.py][1871] : EOF in transport thread
2025-06-13 15:49:54,288 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 15:49:54,302 [DEBUG][       Thread-260024][   transport.py][1871] : starting thread (client mode): 0x867b54b0
2025-06-13 15:49:54,302 [DEBUG][       Thread-260024][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 15:49:54,324 [DEBUG][       Thread-260024][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 15:49:54,324 [ INFO][       Thread-260024][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 15:49:54,335 [DEBUG][       Thread-260024][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 15:49:54,335 [DEBUG][       Thread-260024][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 15:49:54,335 [DEBUG][       Thread-260024][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 15:49:54,335 [DEBUG][       Thread-260024][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:49:54,335 [DEBUG][       Thread-260024][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:49:54,335 [DEBUG][       Thread-260024][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:49:54,335 [DEBUG][       Thread-260024][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:49:54,335 [DEBUG][       Thread-260024][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 15:49:54,335 [DEBUG][       Thread-260024][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 15:49:54,335 [DEBUG][       Thread-260024][   transport.py][1871] : client lang: <none>
2025-06-13 15:49:54,335 [DEBUG][       Thread-260024][   transport.py][1871] : server lang: <none>
2025-06-13 15:49:54,335 [DEBUG][       Thread-260024][   transport.py][1871] : kex follows: False
2025-06-13 15:49:54,335 [DEBUG][       Thread-260024][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 15:49:54,335 [DEBUG][       Thread-260024][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 15:49:54,335 [DEBUG][       Thread-260024][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 15:49:54,335 [DEBUG][       Thread-260024][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 15:49:54,335 [DEBUG][       Thread-260024][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 15:49:54,335 [DEBUG][       Thread-260024][   transport.py][1871] : Compression: none
2025-06-13 15:49:54,335 [DEBUG][       Thread-260024][   transport.py][1871] : === End of kex handshake ===
2025-06-13 15:49:54,388 [DEBUG][       Thread-260024][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 15:49:54,388 [DEBUG][       Thread-260024][   transport.py][1871] : Switch to new keys ...
2025-06-13 15:49:54,388 [DEBUG][       Thread-260024][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 15:49:54,388 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 15:49:54,388 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 15:49:54,445 [DEBUG][       Thread-260024][   transport.py][1871] : userauth is OK
2025-06-13 15:49:54,445 [DEBUG][       Thread-260024][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 15:49:54,445 [DEBUG][       Thread-260024][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 15:49:54,445 [DEBUG][       Thread-260024][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 15:49:54,445 [DEBUG][       Thread-260024][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 15:49:54,459 [ INFO][       Thread-260024][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 15:49:54,459 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 15:49:54,459 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 15:49:55,148 [DEBUG][Thread-260026 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:49:55,429 [DEBUG][       Thread-260024][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 15:49:55,429 [DEBUG][       Thread-260024][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 15:49:55,479 [DEBUG][       Thread-260024][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 15:49:55,479 [DEBUG][       Thread-260024][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 15:49:55,488 [DEBUG][       Thread-260024][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 15:49:55,495 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 15:49:55,495 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 15:49:55,503 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 15:49:55,511 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 15:49:55,511 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 15:49:55,511 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 15:49:55,519 [DEBUG][       Thread-260024][   transport.py][1871] : EOF in transport thread
2025-06-13 15:50:04,168 [DEBUG][Thread-260027 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:50:05,522 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 15:50:05,522 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 15:50:05,522 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 15:50:05,525 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 15:50:06,010 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 15, 49, 37), 18.2, 28.27, 0.0, 18.12, 14.12, 0, 0, 0, 2, 0, 0),)
2025-06-13 15:50:06,010 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 15:49:37
2025-06-13 15:50:06,090 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 15:50:06,095 [DEBUG][       Thread-260028][   transport.py][1871] : starting thread (client mode): 0x8636a1d0
2025-06-13 15:50:06,095 [DEBUG][       Thread-260028][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 15:50:06,117 [DEBUG][       Thread-260028][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 15:50:06,117 [ INFO][       Thread-260028][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 15:50:06,121 [DEBUG][       Thread-260028][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 15:50:06,121 [DEBUG][       Thread-260028][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 15:50:06,121 [DEBUG][       Thread-260028][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 15:50:06,121 [DEBUG][       Thread-260028][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:50:06,121 [DEBUG][       Thread-260028][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:50:06,121 [DEBUG][       Thread-260028][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:50:06,121 [DEBUG][       Thread-260028][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:50:06,121 [DEBUG][       Thread-260028][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 15:50:06,121 [DEBUG][       Thread-260028][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 15:50:06,121 [DEBUG][       Thread-260028][   transport.py][1871] : client lang: <none>
2025-06-13 15:50:06,121 [DEBUG][       Thread-260028][   transport.py][1871] : server lang: <none>
2025-06-13 15:50:06,121 [DEBUG][       Thread-260028][   transport.py][1871] : kex follows: False
2025-06-13 15:50:06,121 [DEBUG][       Thread-260028][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 15:50:06,121 [DEBUG][       Thread-260028][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 15:50:06,122 [DEBUG][       Thread-260028][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 15:50:06,122 [DEBUG][       Thread-260028][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 15:50:06,122 [DEBUG][       Thread-260028][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 15:50:06,122 [DEBUG][       Thread-260028][   transport.py][1871] : Compression: none
2025-06-13 15:50:06,122 [DEBUG][       Thread-260028][   transport.py][1871] : === End of kex handshake ===
2025-06-13 15:50:06,138 [DEBUG][       Thread-260028][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 15:50:06,138 [DEBUG][       Thread-260028][   transport.py][1871] : Switch to new keys ...
2025-06-13 15:50:06,139 [DEBUG][       Thread-260028][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 15:50:06,139 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 15:50:06,139 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 15:50:06,140 [DEBUG][       Thread-260028][   transport.py][1871] : userauth is OK
2025-06-13 15:50:06,153 [ INFO][       Thread-260028][   transport.py][1871] : Authentication (password) successful!
2025-06-13 15:50:06,154 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 15:50:12,406 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:50:12,407 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:50:12,571 [DEBUG][Thread-260030 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:50:12,642 [DEBUG][       Thread-260028][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 15:50:12,642 [DEBUG][       Thread-260028][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 15:50:12,685 [DEBUG][       Thread-260028][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 15:50:12,685 [DEBUG][       Thread-260028][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 15:50:12,688 [DEBUG][       Thread-260028][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 15:50:12,701 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 15:50:12,702 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 15:50:12,704 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 15:50:12,706 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 15:50:12,722 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 15:50:12,724 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 15:50:12,724 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 15:50:12,725 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 15:50:12,725 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.575977 -999.00  +13.60  23.15     33   -2.30 1 1 1 1 1   887    0 15.84 0.80 ----- 23.2 23.1 46.0 29.6 16.8 -31.7 15.9 -32.9 16.8 -31.6 17.9 -31.5
2025-06-13 15:50:12,725 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 15:50:12,725 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 15:50:12,725 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.575977
2025-06-13 15:50:12,726 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 15:50:12,726 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 15:50:12,726 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 15:50:12,726 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 15:50:12,726 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 15:50:12,726 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T15:49:37', tmtdew=18.2, humidity=28.27, cloud=0.0, wind=18.12, temperature=14.12, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T13:49:24.413', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 15:50:12,727 [DEBUG][       Thread-260028][   transport.py][1871] : EOF in transport thread
2025-06-13 15:50:12,810 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 15:50:12,822 [DEBUG][       Thread-260032][   transport.py][1871] : starting thread (client mode): 0x86353fd0
2025-06-13 15:50:12,822 [DEBUG][       Thread-260032][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 15:50:12,838 [DEBUG][       Thread-260032][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 15:50:12,838 [ INFO][       Thread-260032][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 15:50:12,851 [DEBUG][       Thread-260032][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 15:50:12,851 [DEBUG][       Thread-260032][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 15:50:12,851 [DEBUG][       Thread-260032][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 15:50:12,851 [DEBUG][       Thread-260032][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:50:12,851 [DEBUG][       Thread-260032][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:50:12,851 [DEBUG][       Thread-260032][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:50:12,851 [DEBUG][       Thread-260032][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:50:12,851 [DEBUG][       Thread-260032][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 15:50:12,851 [DEBUG][       Thread-260032][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 15:50:12,851 [DEBUG][       Thread-260032][   transport.py][1871] : client lang: <none>
2025-06-13 15:50:12,851 [DEBUG][       Thread-260032][   transport.py][1871] : server lang: <none>
2025-06-13 15:50:12,852 [DEBUG][       Thread-260032][   transport.py][1871] : kex follows: False
2025-06-13 15:50:12,852 [DEBUG][       Thread-260032][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 15:50:12,852 [DEBUG][       Thread-260032][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 15:50:12,852 [DEBUG][       Thread-260032][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 15:50:12,852 [DEBUG][       Thread-260032][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 15:50:12,852 [DEBUG][       Thread-260032][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 15:50:12,852 [DEBUG][       Thread-260032][   transport.py][1871] : Compression: none
2025-06-13 15:50:12,852 [DEBUG][       Thread-260032][   transport.py][1871] : === End of kex handshake ===
2025-06-13 15:50:12,905 [DEBUG][       Thread-260032][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 15:50:12,906 [DEBUG][       Thread-260032][   transport.py][1871] : Switch to new keys ...
2025-06-13 15:50:12,907 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 15:50:12,907 [DEBUG][       Thread-260032][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 15:50:12,908 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 15:50:12,964 [DEBUG][       Thread-260032][   transport.py][1871] : userauth is OK
2025-06-13 15:50:12,964 [DEBUG][       Thread-260032][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 15:50:12,964 [DEBUG][       Thread-260032][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 15:50:12,964 [DEBUG][       Thread-260032][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 15:50:12,965 [DEBUG][       Thread-260032][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 15:50:12,988 [ INFO][       Thread-260032][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 15:50:12,988 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 15:50:12,989 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 15:50:13,190 [DEBUG][Thread-260034 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:50:13,651 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:50:13,653 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:50:13,967 [DEBUG][       Thread-260032][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 15:50:13,967 [DEBUG][       Thread-260032][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 15:50:14,016 [DEBUG][       Thread-260032][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 15:50:14,016 [DEBUG][       Thread-260032][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 15:50:14,026 [DEBUG][       Thread-260032][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 15:50:14,036 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 15:50:14,036 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 15:50:14,050 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 15:50:14,062 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 15:50:14,063 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 15:50:14,063 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 15:50:14,071 [DEBUG][       Thread-260032][   transport.py][1871] : EOF in transport thread
2025-06-13 15:50:22,006 [DEBUG][Thread-260035 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:50:22,212 [DEBUG][Thread-260036 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:50:24,074 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 15:50:24,074 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 15:50:24,074 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 15:50:24,077 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 15:50:24,552 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 15, 50, 9), 18.18, 28.25, 0.0, 18.33, 14.06, 0, 0, 0, 2, 0, 0),)
2025-06-13 15:50:24,552 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 15:50:09
2025-06-13 15:50:24,631 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 15:50:24,638 [DEBUG][       Thread-260037][   transport.py][1871] : starting thread (client mode): 0x8636a350
2025-06-13 15:50:24,638 [DEBUG][       Thread-260037][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 15:50:24,658 [DEBUG][       Thread-260037][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 15:50:24,658 [ INFO][       Thread-260037][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 15:50:24,662 [DEBUG][       Thread-260037][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 15:50:24,662 [DEBUG][       Thread-260037][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 15:50:24,662 [DEBUG][       Thread-260037][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 15:50:24,662 [DEBUG][       Thread-260037][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:50:24,662 [DEBUG][       Thread-260037][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:50:24,662 [DEBUG][       Thread-260037][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:50:24,662 [DEBUG][       Thread-260037][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:50:24,662 [DEBUG][       Thread-260037][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 15:50:24,662 [DEBUG][       Thread-260037][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 15:50:24,662 [DEBUG][       Thread-260037][   transport.py][1871] : client lang: <none>
2025-06-13 15:50:24,662 [DEBUG][       Thread-260037][   transport.py][1871] : server lang: <none>
2025-06-13 15:50:24,662 [DEBUG][       Thread-260037][   transport.py][1871] : kex follows: False
2025-06-13 15:50:24,662 [DEBUG][       Thread-260037][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 15:50:24,662 [DEBUG][       Thread-260037][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 15:50:24,662 [DEBUG][       Thread-260037][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 15:50:24,663 [DEBUG][       Thread-260037][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 15:50:24,663 [DEBUG][       Thread-260037][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 15:50:24,663 [DEBUG][       Thread-260037][   transport.py][1871] : Compression: none
2025-06-13 15:50:24,663 [DEBUG][       Thread-260037][   transport.py][1871] : === End of kex handshake ===
2025-06-13 15:50:24,677 [DEBUG][       Thread-260037][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 15:50:24,678 [DEBUG][       Thread-260037][   transport.py][1871] : Switch to new keys ...
2025-06-13 15:50:24,678 [DEBUG][       Thread-260037][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 15:50:24,679 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 15:50:24,679 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 15:50:24,680 [DEBUG][       Thread-260037][   transport.py][1871] : userauth is OK
2025-06-13 15:50:24,704 [ INFO][       Thread-260037][   transport.py][1871] : Authentication (password) successful!
2025-06-13 15:50:24,705 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 15:50:25,282 [DEBUG][       Thread-260037][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 15:50:25,282 [DEBUG][       Thread-260037][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 15:50:25,325 [DEBUG][       Thread-260037][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 15:50:25,325 [DEBUG][       Thread-260037][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 15:50:25,328 [DEBUG][       Thread-260037][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 15:50:25,339 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 15:50:25,340 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 15:50:25,342 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 15:50:25,344 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 15:50:25,349 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 15:50:25,351 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 15:50:25,351 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 15:50:25,352 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 15:50:25,352 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.576324 -999.00  +13.50  25.83     33   -2.30 1 1 1 1 1   887    0 15.78 -0.68 ----- 24.6 25.8 43.2 29.9 16.8 -32.0 15.9 -33.0 16.8 -31.8 17.9 -30.2
2025-06-13 15:50:25,352 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 15:50:25,352 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 15:50:25,352 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.576324
2025-06-13 15:50:25,353 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 15:50:25,353 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 15:50:25,354 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 15:50:25,354 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 15:50:25,354 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 15:50:25,354 [DEBUG][       Thread-260037][   transport.py][1871] : EOF in transport thread
2025-06-13 15:50:25,354 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T15:50:09', tmtdew=18.18, humidity=28.25, cloud=0.0, wind=18.33, temperature=14.06, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T13:49:54.394', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 15:50:25,437 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 15:50:25,447 [DEBUG][       Thread-260040][   transport.py][1871] : starting thread (client mode): 0x863be1d0
2025-06-13 15:50:25,447 [DEBUG][       Thread-260040][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 15:50:25,462 [DEBUG][       Thread-260040][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 15:50:25,462 [ INFO][       Thread-260040][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 15:50:25,470 [DEBUG][       Thread-260040][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 15:50:25,470 [DEBUG][       Thread-260040][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 15:50:25,470 [DEBUG][       Thread-260040][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 15:50:25,470 [DEBUG][       Thread-260040][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:50:25,470 [DEBUG][       Thread-260040][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:50:25,470 [DEBUG][       Thread-260040][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:50:25,470 [DEBUG][       Thread-260040][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:50:25,470 [DEBUG][       Thread-260040][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 15:50:25,470 [DEBUG][       Thread-260040][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 15:50:25,470 [DEBUG][       Thread-260040][   transport.py][1871] : client lang: <none>
2025-06-13 15:50:25,470 [DEBUG][       Thread-260040][   transport.py][1871] : server lang: <none>
2025-06-13 15:50:25,470 [DEBUG][       Thread-260040][   transport.py][1871] : kex follows: False
2025-06-13 15:50:25,470 [DEBUG][       Thread-260040][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 15:50:25,471 [DEBUG][       Thread-260040][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 15:50:25,471 [DEBUG][       Thread-260040][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 15:50:25,471 [DEBUG][       Thread-260040][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 15:50:25,471 [DEBUG][       Thread-260040][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 15:50:25,471 [DEBUG][       Thread-260040][   transport.py][1871] : Compression: none
2025-06-13 15:50:25,471 [DEBUG][       Thread-260040][   transport.py][1871] : === End of kex handshake ===
2025-06-13 15:50:25,535 [DEBUG][       Thread-260040][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 15:50:25,535 [DEBUG][       Thread-260040][   transport.py][1871] : Switch to new keys ...
2025-06-13 15:50:25,536 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 15:50:25,536 [DEBUG][       Thread-260040][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 15:50:25,537 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 15:50:25,594 [DEBUG][       Thread-260040][   transport.py][1871] : userauth is OK
2025-06-13 15:50:25,594 [DEBUG][       Thread-260040][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 15:50:25,594 [DEBUG][       Thread-260040][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 15:50:25,594 [DEBUG][       Thread-260040][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 15:50:25,594 [DEBUG][       Thread-260040][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 15:50:25,613 [ INFO][       Thread-260040][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 15:50:25,614 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 15:50:25,614 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 15:50:26,629 [DEBUG][       Thread-260040][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 15:50:26,629 [DEBUG][       Thread-260040][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 15:50:26,680 [DEBUG][       Thread-260040][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 15:50:26,680 [DEBUG][       Thread-260040][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 15:50:26,690 [DEBUG][       Thread-260040][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 15:50:26,703 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 15:50:26,704 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 15:50:26,715 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 15:50:26,724 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 15:50:26,724 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 15:50:26,724 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 15:50:26,732 [DEBUG][       Thread-260040][   transport.py][1871] : EOF in transport thread
2025-06-13 15:50:31,234 [DEBUG][Thread-260042 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:50:36,732 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 15:50:36,732 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 15:50:36,732 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 15:50:36,733 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 15:50:37,191 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 15, 50, 9), 18.18, 28.25, 0.0, 18.33, 14.06, 0, 0, 0, 2, 0, 0),)
2025-06-13 15:50:37,191 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 15:50:09
2025-06-13 15:50:37,271 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 15:50:37,275 [DEBUG][       Thread-260043][   transport.py][1871] : starting thread (client mode): 0x86353790
2025-06-13 15:50:37,275 [DEBUG][       Thread-260043][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 15:50:37,297 [DEBUG][       Thread-260043][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 15:50:37,297 [ INFO][       Thread-260043][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 15:50:37,301 [DEBUG][       Thread-260043][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 15:50:37,301 [DEBUG][       Thread-260043][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 15:50:37,301 [DEBUG][       Thread-260043][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 15:50:37,301 [DEBUG][       Thread-260043][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:50:37,301 [DEBUG][       Thread-260043][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:50:37,301 [DEBUG][       Thread-260043][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:50:37,301 [DEBUG][       Thread-260043][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:50:37,301 [DEBUG][       Thread-260043][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 15:50:37,301 [DEBUG][       Thread-260043][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 15:50:37,301 [DEBUG][       Thread-260043][   transport.py][1871] : client lang: <none>
2025-06-13 15:50:37,301 [DEBUG][       Thread-260043][   transport.py][1871] : server lang: <none>
2025-06-13 15:50:37,301 [DEBUG][       Thread-260043][   transport.py][1871] : kex follows: False
2025-06-13 15:50:37,301 [DEBUG][       Thread-260043][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 15:50:37,301 [DEBUG][       Thread-260043][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 15:50:37,301 [DEBUG][       Thread-260043][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 15:50:37,301 [DEBUG][       Thread-260043][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 15:50:37,301 [DEBUG][       Thread-260043][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 15:50:37,301 [DEBUG][       Thread-260043][   transport.py][1871] : Compression: none
2025-06-13 15:50:37,301 [DEBUG][       Thread-260043][   transport.py][1871] : === End of kex handshake ===
2025-06-13 15:50:37,320 [DEBUG][       Thread-260043][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 15:50:37,321 [DEBUG][       Thread-260043][   transport.py][1871] : Switch to new keys ...
2025-06-13 15:50:37,321 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 15:50:37,322 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 15:50:37,322 [DEBUG][       Thread-260043][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 15:50:37,323 [DEBUG][       Thread-260043][   transport.py][1871] : userauth is OK
2025-06-13 15:50:37,336 [ INFO][       Thread-260043][   transport.py][1871] : Authentication (password) successful!
2025-06-13 15:50:37,336 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 15:50:38,020 [DEBUG][       Thread-260043][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 15:50:38,020 [DEBUG][       Thread-260043][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 15:50:38,065 [DEBUG][       Thread-260043][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 15:50:38,065 [DEBUG][       Thread-260043][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 15:50:38,069 [DEBUG][       Thread-260043][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 15:50:38,082 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 15:50:38,082 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 15:50:38,084 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 15:50:38,086 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 15:50:38,092 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 15:50:38,094 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 15:50:38,095 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 15:50:38,095 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 15:50:38,096 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.576324 -999.00  +13.50  25.83     33   -2.30 1 1 1 1 1   887    0 15.78 -0.68 ----- 24.6 25.8 43.2 29.9 16.8 -32.0 15.9 -33.0 16.8 -31.8 17.9 -30.2
2025-06-13 15:50:38,096 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 15:50:38,096 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 15:50:38,096 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.576324
2025-06-13 15:50:38,096 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 15:50:38,097 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 15:50:38,097 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 15:50:38,097 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 15:50:38,097 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 15:50:38,097 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T15:50:09', tmtdew=18.18, humidity=28.25, cloud=0.0, wind=18.33, temperature=14.06, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T13:49:54.394', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 15:50:38,098 [DEBUG][       Thread-260043][   transport.py][1871] : EOF in transport thread
2025-06-13 15:50:38,181 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 15:50:38,193 [DEBUG][       Thread-260046][   transport.py][1871] : starting thread (client mode): 0x86392170
2025-06-13 15:50:38,193 [DEBUG][       Thread-260046][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 15:50:38,209 [DEBUG][       Thread-260046][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 15:50:38,209 [ INFO][       Thread-260046][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 15:50:38,217 [DEBUG][       Thread-260046][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 15:50:38,217 [DEBUG][       Thread-260046][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 15:50:38,217 [DEBUG][       Thread-260046][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 15:50:38,217 [DEBUG][       Thread-260046][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:50:38,217 [DEBUG][       Thread-260046][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:50:38,217 [DEBUG][       Thread-260046][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:50:38,217 [DEBUG][       Thread-260046][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:50:38,217 [DEBUG][       Thread-260046][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 15:50:38,217 [DEBUG][       Thread-260046][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 15:50:38,217 [DEBUG][       Thread-260046][   transport.py][1871] : client lang: <none>
2025-06-13 15:50:38,217 [DEBUG][       Thread-260046][   transport.py][1871] : server lang: <none>
2025-06-13 15:50:38,217 [DEBUG][       Thread-260046][   transport.py][1871] : kex follows: False
2025-06-13 15:50:38,217 [DEBUG][       Thread-260046][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 15:50:38,217 [DEBUG][       Thread-260046][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 15:50:38,217 [DEBUG][       Thread-260046][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 15:50:38,218 [DEBUG][       Thread-260046][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 15:50:38,218 [DEBUG][       Thread-260046][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 15:50:38,218 [DEBUG][       Thread-260046][   transport.py][1871] : Compression: none
2025-06-13 15:50:38,218 [DEBUG][       Thread-260046][   transport.py][1871] : === End of kex handshake ===
2025-06-13 15:50:38,273 [DEBUG][       Thread-260046][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 15:50:38,274 [DEBUG][       Thread-260046][   transport.py][1871] : Switch to new keys ...
2025-06-13 15:50:38,274 [DEBUG][       Thread-260046][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 15:50:38,275 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 15:50:38,275 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 15:50:38,335 [DEBUG][       Thread-260046][   transport.py][1871] : userauth is OK
2025-06-13 15:50:38,336 [DEBUG][       Thread-260046][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 15:50:38,336 [DEBUG][       Thread-260046][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 15:50:38,336 [DEBUG][       Thread-260046][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 15:50:38,336 [DEBUG][       Thread-260046][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 15:50:38,355 [ INFO][       Thread-260046][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 15:50:38,355 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 15:50:38,356 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 15:50:39,375 [DEBUG][       Thread-260046][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 15:50:39,375 [DEBUG][       Thread-260046][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 15:50:39,424 [DEBUG][       Thread-260046][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 15:50:39,424 [DEBUG][       Thread-260046][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 15:50:39,434 [DEBUG][       Thread-260046][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 15:50:39,443 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 15:50:39,443 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 15:50:39,452 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 15:50:39,462 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 15:50:39,462 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 15:50:39,463 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 15:50:39,471 [DEBUG][       Thread-260046][   transport.py][1871] : EOF in transport thread
2025-06-13 15:50:40,267 [DEBUG][Thread-260048 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:50:49,284 [DEBUG][Thread-260049 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:50:49,472 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 15:50:49,472 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 15:50:49,472 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 15:50:49,475 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 15:50:49,946 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 15, 50, 41), 18.27, 28.09, 0.0, 21.05, 14.09, 0, 0, 0, 2, 0, 0),)
2025-06-13 15:50:49,946 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 15:50:41
2025-06-13 15:50:50,026 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 15:50:50,033 [DEBUG][       Thread-260050][   transport.py][1871] : starting thread (client mode): 0x863cb280
2025-06-13 15:50:50,033 [DEBUG][       Thread-260050][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 15:50:50,054 [DEBUG][       Thread-260050][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 15:50:50,054 [ INFO][       Thread-260050][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 15:50:50,058 [DEBUG][       Thread-260050][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 15:50:50,058 [DEBUG][       Thread-260050][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 15:50:50,058 [DEBUG][       Thread-260050][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 15:50:50,058 [DEBUG][       Thread-260050][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:50:50,058 [DEBUG][       Thread-260050][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:50:50,058 [DEBUG][       Thread-260050][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:50:50,058 [DEBUG][       Thread-260050][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:50:50,058 [DEBUG][       Thread-260050][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 15:50:50,058 [DEBUG][       Thread-260050][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 15:50:50,058 [DEBUG][       Thread-260050][   transport.py][1871] : client lang: <none>
2025-06-13 15:50:50,058 [DEBUG][       Thread-260050][   transport.py][1871] : server lang: <none>
2025-06-13 15:50:50,058 [DEBUG][       Thread-260050][   transport.py][1871] : kex follows: False
2025-06-13 15:50:50,058 [DEBUG][       Thread-260050][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 15:50:50,058 [DEBUG][       Thread-260050][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 15:50:50,058 [DEBUG][       Thread-260050][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 15:50:50,058 [DEBUG][       Thread-260050][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 15:50:50,058 [DEBUG][       Thread-260050][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 15:50:50,059 [DEBUG][       Thread-260050][   transport.py][1871] : Compression: none
2025-06-13 15:50:50,059 [DEBUG][       Thread-260050][   transport.py][1871] : === End of kex handshake ===
2025-06-13 15:50:50,078 [DEBUG][       Thread-260050][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 15:50:50,079 [DEBUG][       Thread-260050][   transport.py][1871] : Switch to new keys ...
2025-06-13 15:50:50,080 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 15:50:50,080 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 15:50:50,081 [DEBUG][       Thread-260050][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 15:50:50,082 [DEBUG][       Thread-260050][   transport.py][1871] : userauth is OK
2025-06-13 15:50:50,107 [ INFO][       Thread-260050][   transport.py][1871] : Authentication (password) successful!
2025-06-13 15:50:50,108 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 15:50:50,710 [DEBUG][       Thread-260050][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 15:50:50,711 [DEBUG][       Thread-260050][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 15:50:50,753 [DEBUG][       Thread-260050][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 15:50:50,753 [DEBUG][       Thread-260050][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 15:50:50,756 [DEBUG][       Thread-260050][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 15:50:50,763 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 15:50:50,763 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 15:50:50,765 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 15:50:50,767 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 15:50:50,773 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 15:50:50,775 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 15:50:50,776 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 15:50:50,776 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 15:50:50,776 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.576324 -999.00  +13.50  25.83     33   -2.30 1 1 1 1 1   887    0 15.78 -0.68 ----- 24.6 25.8 43.2 29.9 16.8 -32.0 15.9 -33.0 16.8 -31.8 17.9 -30.2
2025-06-13 15:50:50,777 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 15:50:50,777 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 15:50:50,777 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.576324
2025-06-13 15:50:50,777 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 15:50:50,778 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 15:50:50,778 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 15:50:50,778 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 15:50:50,778 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 15:50:50,778 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T15:50:41', tmtdew=18.27, humidity=28.09, cloud=0.0, wind=21.05, temperature=14.09, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T13:49:54.394', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 15:50:50,778 [DEBUG][       Thread-260050][   transport.py][1871] : EOF in transport thread
2025-06-13 15:50:50,862 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 15:50:50,872 [DEBUG][       Thread-260053][   transport.py][1871] : starting thread (client mode): 0x863be470
2025-06-13 15:50:50,872 [DEBUG][       Thread-260053][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 15:50:50,887 [DEBUG][       Thread-260053][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 15:50:50,887 [ INFO][       Thread-260053][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 15:50:50,896 [DEBUG][       Thread-260053][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 15:50:50,896 [DEBUG][       Thread-260053][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 15:50:50,896 [DEBUG][       Thread-260053][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 15:50:50,896 [DEBUG][       Thread-260053][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:50:50,896 [DEBUG][       Thread-260053][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:50:50,896 [DEBUG][       Thread-260053][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:50:50,896 [DEBUG][       Thread-260053][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:50:50,896 [DEBUG][       Thread-260053][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 15:50:50,896 [DEBUG][       Thread-260053][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 15:50:50,897 [DEBUG][       Thread-260053][   transport.py][1871] : client lang: <none>
2025-06-13 15:50:50,897 [DEBUG][       Thread-260053][   transport.py][1871] : server lang: <none>
2025-06-13 15:50:50,897 [DEBUG][       Thread-260053][   transport.py][1871] : kex follows: False
2025-06-13 15:50:50,897 [DEBUG][       Thread-260053][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 15:50:50,897 [DEBUG][       Thread-260053][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 15:50:50,897 [DEBUG][       Thread-260053][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 15:50:50,897 [DEBUG][       Thread-260053][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 15:50:50,897 [DEBUG][       Thread-260053][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 15:50:50,897 [DEBUG][       Thread-260053][   transport.py][1871] : Compression: none
2025-06-13 15:50:50,897 [DEBUG][       Thread-260053][   transport.py][1871] : === End of kex handshake ===
2025-06-13 15:50:50,954 [DEBUG][       Thread-260053][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 15:50:50,954 [DEBUG][       Thread-260053][   transport.py][1871] : Switch to new keys ...
2025-06-13 15:50:50,955 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 15:50:50,956 [DEBUG][       Thread-260053][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 15:50:50,956 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 15:50:51,012 [DEBUG][       Thread-260053][   transport.py][1871] : userauth is OK
2025-06-13 15:50:51,012 [DEBUG][       Thread-260053][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 15:50:51,012 [DEBUG][       Thread-260053][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 15:50:51,012 [DEBUG][       Thread-260053][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 15:50:51,012 [DEBUG][       Thread-260053][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 15:50:51,031 [ INFO][       Thread-260053][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 15:50:51,031 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 15:50:51,032 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 15:50:52,054 [DEBUG][       Thread-260053][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 15:50:52,054 [DEBUG][       Thread-260053][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 15:50:52,104 [DEBUG][       Thread-260053][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 15:50:52,104 [DEBUG][       Thread-260053][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 15:50:52,113 [DEBUG][       Thread-260053][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 15:50:52,122 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 15:50:52,123 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 15:50:52,131 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 15:50:52,141 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 15:50:52,141 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 15:50:52,142 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 15:50:52,150 [DEBUG][       Thread-260053][   transport.py][1871] : EOF in transport thread
2025-06-13 15:50:58,306 [DEBUG][Thread-260055 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:51:02,152 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 15:51:02,153 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 15:51:02,153 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 15:51:02,156 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 15:51:02,605 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 15, 50, 41), 18.27, 28.09, 0.0, 21.05, 14.09, 0, 0, 0, 2, 0, 0),)
2025-06-13 15:51:02,606 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 15:50:41
2025-06-13 15:51:02,685 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 15:51:02,689 [DEBUG][       Thread-260056][   transport.py][1871] : starting thread (client mode): 0x867fe110
2025-06-13 15:51:02,689 [DEBUG][       Thread-260056][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 15:51:02,712 [DEBUG][       Thread-260056][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 15:51:02,712 [ INFO][       Thread-260056][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 15:51:02,716 [DEBUG][       Thread-260056][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 15:51:02,716 [DEBUG][       Thread-260056][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 15:51:02,716 [DEBUG][       Thread-260056][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 15:51:02,716 [DEBUG][       Thread-260056][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:51:02,716 [DEBUG][       Thread-260056][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:51:02,716 [DEBUG][       Thread-260056][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:51:02,716 [DEBUG][       Thread-260056][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:51:02,716 [DEBUG][       Thread-260056][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 15:51:02,716 [DEBUG][       Thread-260056][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 15:51:02,716 [DEBUG][       Thread-260056][   transport.py][1871] : client lang: <none>
2025-06-13 15:51:02,716 [DEBUG][       Thread-260056][   transport.py][1871] : server lang: <none>
2025-06-13 15:51:02,716 [DEBUG][       Thread-260056][   transport.py][1871] : kex follows: False
2025-06-13 15:51:02,716 [DEBUG][       Thread-260056][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 15:51:02,716 [DEBUG][       Thread-260056][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 15:51:02,716 [DEBUG][       Thread-260056][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 15:51:02,716 [DEBUG][       Thread-260056][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 15:51:02,717 [DEBUG][       Thread-260056][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 15:51:02,717 [DEBUG][       Thread-260056][   transport.py][1871] : Compression: none
2025-06-13 15:51:02,717 [DEBUG][       Thread-260056][   transport.py][1871] : === End of kex handshake ===
2025-06-13 15:51:02,733 [DEBUG][       Thread-260056][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 15:51:02,734 [DEBUG][       Thread-260056][   transport.py][1871] : Switch to new keys ...
2025-06-13 15:51:02,734 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 15:51:02,734 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 15:51:02,735 [DEBUG][       Thread-260056][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 15:51:02,736 [DEBUG][       Thread-260056][   transport.py][1871] : userauth is OK
2025-06-13 15:51:02,761 [ INFO][       Thread-260056][   transport.py][1871] : Authentication (password) successful!
2025-06-13 15:51:02,762 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 15:51:03,395 [DEBUG][       Thread-260056][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 15:51:03,395 [DEBUG][       Thread-260056][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 15:51:03,437 [DEBUG][       Thread-260056][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 15:51:03,437 [DEBUG][       Thread-260056][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 15:51:03,441 [DEBUG][       Thread-260056][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 15:51:03,452 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 15:51:03,453 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 15:51:03,455 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 15:51:03,457 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 15:51:03,461 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 15:51:03,463 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 15:51:03,463 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 15:51:03,464 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 15:51:03,464 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.576671 -999.00  +13.50  19.84     33   -2.10 1 1 1 1 1   887    0 15.82 -2.52 ----- 21.4 19.8 46.6 26.7 16.8 -31.7 15.9 -32.5 16.8 -31.0 17.8 -29.8
2025-06-13 15:51:03,464 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 15:51:03,464 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 15:51:03,464 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.576671
2025-06-13 15:51:03,465 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 15:51:03,466 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 15:51:03,466 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 15:51:03,466 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 15:51:03,466 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 15:51:03,466 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T15:50:41', tmtdew=18.27, humidity=28.09, cloud=0.0, wind=21.05, temperature=14.09, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T13:50:24.374', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 15:51:03,467 [DEBUG][       Thread-260056][   transport.py][1871] : EOF in transport thread
2025-06-13 15:51:03,549 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 15:51:03,559 [DEBUG][       Thread-260059][   transport.py][1871] : starting thread (client mode): 0x86893be0
2025-06-13 15:51:03,559 [DEBUG][       Thread-260059][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 15:51:03,574 [DEBUG][       Thread-260059][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 15:51:03,574 [ INFO][       Thread-260059][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 15:51:03,581 [DEBUG][       Thread-260059][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 15:51:03,582 [DEBUG][       Thread-260059][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 15:51:03,582 [DEBUG][       Thread-260059][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 15:51:03,582 [DEBUG][       Thread-260059][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:51:03,582 [DEBUG][       Thread-260059][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:51:03,582 [DEBUG][       Thread-260059][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:51:03,582 [DEBUG][       Thread-260059][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:51:03,582 [DEBUG][       Thread-260059][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 15:51:03,582 [DEBUG][       Thread-260059][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 15:51:03,582 [DEBUG][       Thread-260059][   transport.py][1871] : client lang: <none>
2025-06-13 15:51:03,582 [DEBUG][       Thread-260059][   transport.py][1871] : server lang: <none>
2025-06-13 15:51:03,582 [DEBUG][       Thread-260059][   transport.py][1871] : kex follows: False
2025-06-13 15:51:03,582 [DEBUG][       Thread-260059][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 15:51:03,582 [DEBUG][       Thread-260059][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 15:51:03,582 [DEBUG][       Thread-260059][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 15:51:03,582 [DEBUG][       Thread-260059][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 15:51:03,582 [DEBUG][       Thread-260059][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 15:51:03,582 [DEBUG][       Thread-260059][   transport.py][1871] : Compression: none
2025-06-13 15:51:03,582 [DEBUG][       Thread-260059][   transport.py][1871] : === End of kex handshake ===
2025-06-13 15:51:03,642 [DEBUG][       Thread-260059][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 15:51:03,642 [DEBUG][       Thread-260059][   transport.py][1871] : Switch to new keys ...
2025-06-13 15:51:03,643 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 15:51:03,644 [DEBUG][       Thread-260059][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 15:51:03,644 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 15:51:03,698 [DEBUG][       Thread-260059][   transport.py][1871] : userauth is OK
2025-06-13 15:51:03,698 [DEBUG][       Thread-260059][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 15:51:03,698 [DEBUG][       Thread-260059][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 15:51:03,699 [DEBUG][       Thread-260059][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 15:51:03,699 [DEBUG][       Thread-260059][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 15:51:03,717 [ INFO][       Thread-260059][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 15:51:03,718 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 15:51:03,718 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 15:51:04,722 [DEBUG][       Thread-260059][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 15:51:04,723 [DEBUG][       Thread-260059][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 15:51:04,771 [DEBUG][       Thread-260059][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 15:51:04,771 [DEBUG][       Thread-260059][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 15:51:04,780 [DEBUG][       Thread-260059][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 15:51:04,788 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 15:51:04,788 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 15:51:04,796 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 15:51:04,804 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 15:51:04,804 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 15:51:04,804 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 15:51:04,812 [DEBUG][       Thread-260059][   transport.py][1871] : EOF in transport thread
2025-06-13 15:51:07,340 [DEBUG][Thread-260061 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:51:12,543 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:51:12,543 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:51:13,728 [DEBUG][Thread-260062 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:51:14,785 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:51:14,785 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:51:14,812 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 15:51:14,812 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 15:51:14,812 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 15:51:14,813 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 15:51:15,294 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 15, 50, 41), 18.27, 28.09, 0.0, 21.05, 14.09, 0, 0, 0, 2, 0, 0),)
2025-06-13 15:51:15,294 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 15:50:41
2025-06-13 15:51:15,372 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 15:51:15,379 [DEBUG][       Thread-260063][   transport.py][1871] : starting thread (client mode): 0x863cb100
2025-06-13 15:51:15,379 [DEBUG][       Thread-260063][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 15:51:15,394 [DEBUG][       Thread-260063][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 15:51:15,394 [ INFO][       Thread-260063][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 15:51:15,397 [DEBUG][       Thread-260063][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 15:51:15,397 [DEBUG][       Thread-260063][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 15:51:15,397 [DEBUG][       Thread-260063][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 15:51:15,397 [DEBUG][       Thread-260063][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:51:15,397 [DEBUG][       Thread-260063][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:51:15,397 [DEBUG][       Thread-260063][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:51:15,397 [DEBUG][       Thread-260063][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:51:15,397 [DEBUG][       Thread-260063][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 15:51:15,397 [DEBUG][       Thread-260063][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 15:51:15,397 [DEBUG][       Thread-260063][   transport.py][1871] : client lang: <none>
2025-06-13 15:51:15,397 [DEBUG][       Thread-260063][   transport.py][1871] : server lang: <none>
2025-06-13 15:51:15,397 [DEBUG][       Thread-260063][   transport.py][1871] : kex follows: False
2025-06-13 15:51:15,397 [DEBUG][       Thread-260063][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 15:51:15,397 [DEBUG][       Thread-260063][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 15:51:15,397 [DEBUG][       Thread-260063][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 15:51:15,397 [DEBUG][       Thread-260063][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 15:51:15,397 [DEBUG][       Thread-260063][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 15:51:15,397 [DEBUG][       Thread-260063][   transport.py][1871] : Compression: none
2025-06-13 15:51:15,397 [DEBUG][       Thread-260063][   transport.py][1871] : === End of kex handshake ===
2025-06-13 15:51:15,414 [DEBUG][       Thread-260063][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 15:51:15,414 [DEBUG][       Thread-260063][   transport.py][1871] : Switch to new keys ...
2025-06-13 15:51:15,415 [DEBUG][       Thread-260063][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 15:51:15,415 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 15:51:15,415 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 15:51:15,416 [DEBUG][       Thread-260063][   transport.py][1871] : userauth is OK
2025-06-13 15:51:15,442 [ INFO][       Thread-260063][   transport.py][1871] : Authentication (password) successful!
2025-06-13 15:51:15,442 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 15:51:16,094 [DEBUG][       Thread-260063][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 15:51:16,094 [DEBUG][       Thread-260063][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 15:51:16,137 [DEBUG][       Thread-260063][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 15:51:16,137 [DEBUG][       Thread-260063][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 15:51:16,141 [DEBUG][       Thread-260063][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 15:51:16,155 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 15:51:16,155 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 15:51:16,157 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 15:51:16,160 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 15:51:16,166 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 15:51:16,168 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 15:51:16,168 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 15:51:16,169 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 15:51:16,169 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.576671 -999.00  +13.50  19.84     33   -2.10 1 1 1 1 1   887    0 15.82 -2.52 ----- 21.4 19.8 46.6 26.7 16.8 -31.7 15.9 -32.5 16.8 -31.0 17.8 -29.8
2025-06-13 15:51:16,169 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 15:51:16,169 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 15:51:16,169 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.576671
2025-06-13 15:51:16,170 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 15:51:16,170 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 15:51:16,171 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 15:51:16,171 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 15:51:16,171 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 15:51:16,171 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T15:50:41', tmtdew=18.27, humidity=28.09, cloud=0.0, wind=21.05, temperature=14.09, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T13:50:24.374', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 15:51:16,171 [DEBUG][       Thread-260063][   transport.py][1871] : EOF in transport thread
2025-06-13 15:51:16,256 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 15:51:16,361 [DEBUG][Thread-260066 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:51:22,038 [DEBUG][Thread-260067 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:51:25,383 [DEBUG][Thread-260068 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:51:34,406 [DEBUG][Thread-260069 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:51:43,430 [DEBUG][Thread-260070 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:51:52,448 [DEBUG][Thread-260071 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:52:01,469 [DEBUG][Thread-260072 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:52:10,492 [DEBUG][Thread-260073 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:52:12,689 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:52:12,690 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:52:14,856 [DEBUG][Thread-260074 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:52:15,934 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:52:15,936 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:52:19,512 [DEBUG][Thread-260075 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:52:22,070 [DEBUG][Thread-260076 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:52:28,528 [DEBUG][Thread-260077 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:52:37,547 [DEBUG][Thread-260078 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:52:46,572 [DEBUG][Thread-260079 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:52:55,591 [DEBUG][Thread-260080 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:53:04,613 [DEBUG][Thread-260081 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:53:12,827 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:53:12,828 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:53:13,635 [DEBUG][Thread-260082 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:53:16,008 [DEBUG][Thread-260083 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:53:17,077 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:53:17,078 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:53:22,098 [DEBUG][Thread-260084 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:53:22,658 [DEBUG][Thread-260085 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:53:26,292 [WARNING][ poll_weather_worker][      driver.py][ 286] : Unable to open ssh connection for writing weather state to io.saao.ac.za: [Errno 110] Connection timed out
2025-06-13 15:53:31,681 [DEBUG][Thread-260086 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:53:36,303 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 15:53:36,303 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 15:53:36,303 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 15:53:36,306 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 15:53:36,778 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 15, 53, 19), 18.38, 27.92, 0.0, 18.95, 13.99, 0, 0, 0, 2, 0, 0),)
2025-06-13 15:53:36,778 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 15:53:19
2025-06-13 15:53:36,858 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 15:53:36,864 [DEBUG][       Thread-260087][   transport.py][1871] : starting thread (client mode): 0x86351f30
2025-06-13 15:53:36,864 [DEBUG][       Thread-260087][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 15:53:36,884 [DEBUG][       Thread-260087][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 15:53:36,884 [ INFO][       Thread-260087][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 15:53:36,886 [DEBUG][       Thread-260087][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 15:53:36,886 [DEBUG][       Thread-260087][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 15:53:36,886 [DEBUG][       Thread-260087][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 15:53:36,886 [DEBUG][       Thread-260087][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:53:36,886 [DEBUG][       Thread-260087][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:53:36,886 [DEBUG][       Thread-260087][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:53:36,886 [DEBUG][       Thread-260087][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:53:36,886 [DEBUG][       Thread-260087][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 15:53:36,886 [DEBUG][       Thread-260087][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 15:53:36,886 [DEBUG][       Thread-260087][   transport.py][1871] : client lang: <none>
2025-06-13 15:53:36,886 [DEBUG][       Thread-260087][   transport.py][1871] : server lang: <none>
2025-06-13 15:53:36,886 [DEBUG][       Thread-260087][   transport.py][1871] : kex follows: False
2025-06-13 15:53:36,886 [DEBUG][       Thread-260087][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 15:53:36,886 [DEBUG][       Thread-260087][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 15:53:36,886 [DEBUG][       Thread-260087][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 15:53:36,886 [DEBUG][       Thread-260087][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 15:53:36,887 [DEBUG][       Thread-260087][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 15:53:36,887 [DEBUG][       Thread-260087][   transport.py][1871] : Compression: none
2025-06-13 15:53:36,887 [DEBUG][       Thread-260087][   transport.py][1871] : === End of kex handshake ===
2025-06-13 15:53:36,897 [DEBUG][       Thread-260087][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 15:53:36,897 [DEBUG][       Thread-260087][   transport.py][1871] : Switch to new keys ...
2025-06-13 15:53:36,898 [DEBUG][       Thread-260087][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 15:53:36,898 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 15:53:36,898 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 15:53:36,899 [DEBUG][       Thread-260087][   transport.py][1871] : userauth is OK
2025-06-13 15:53:36,912 [ INFO][       Thread-260087][   transport.py][1871] : Authentication (password) successful!
2025-06-13 15:53:36,912 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 15:53:37,467 [DEBUG][       Thread-260087][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 15:53:37,467 [DEBUG][       Thread-260087][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 15:53:37,509 [DEBUG][       Thread-260087][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 15:53:37,509 [DEBUG][       Thread-260087][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 15:53:37,515 [DEBUG][       Thread-260087][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 15:53:37,521 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 15:53:37,522 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 15:53:37,523 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 15:53:37,525 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 15:53:37,530 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 15:53:37,533 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 15:53:37,533 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 15:53:37,533 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 15:53:37,534 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.578755 -999.00  +13.70  20.54     33   -2.00 1 1 1 1 1   887    0 15.60 -13.93 ----- 25.1 20.5 56.2 24.4 16.8 -31.4 15.9 -32.5 16.8 -31.1 17.8 -29.7
2025-06-13 15:53:37,534 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 15:53:37,534 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 15:53:37,534 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.578755
2025-06-13 15:53:37,534 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 15:53:37,535 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 15:53:37,535 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 15:53:37,535 [DEBUG][       Thread-260087][   transport.py][1871] : EOF in transport thread
2025-06-13 15:53:37,535 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 15:53:37,536 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 15:53:37,536 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T15:53:19', tmtdew=18.38, humidity=27.92, cloud=0.0, wind=18.95, temperature=13.99, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T13:53:24.432', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 15:53:37,612 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 15:53:37,630 [DEBUG][       Thread-260090][   transport.py][1871] : starting thread (client mode): 0x867b63b0
2025-06-13 15:53:37,630 [DEBUG][       Thread-260090][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 15:53:37,645 [DEBUG][       Thread-260090][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 15:53:37,645 [ INFO][       Thread-260090][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 15:53:37,652 [DEBUG][       Thread-260090][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 15:53:37,653 [DEBUG][       Thread-260090][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 15:53:37,653 [DEBUG][       Thread-260090][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 15:53:37,653 [DEBUG][       Thread-260090][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:53:37,653 [DEBUG][       Thread-260090][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:53:37,653 [DEBUG][       Thread-260090][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:53:37,653 [DEBUG][       Thread-260090][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:53:37,653 [DEBUG][       Thread-260090][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 15:53:37,653 [DEBUG][       Thread-260090][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 15:53:37,653 [DEBUG][       Thread-260090][   transport.py][1871] : client lang: <none>
2025-06-13 15:53:37,653 [DEBUG][       Thread-260090][   transport.py][1871] : server lang: <none>
2025-06-13 15:53:37,653 [DEBUG][       Thread-260090][   transport.py][1871] : kex follows: False
2025-06-13 15:53:37,653 [DEBUG][       Thread-260090][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 15:53:37,653 [DEBUG][       Thread-260090][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 15:53:37,653 [DEBUG][       Thread-260090][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 15:53:37,653 [DEBUG][       Thread-260090][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 15:53:37,653 [DEBUG][       Thread-260090][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 15:53:37,654 [DEBUG][       Thread-260090][   transport.py][1871] : Compression: none
2025-06-13 15:53:37,654 [DEBUG][       Thread-260090][   transport.py][1871] : === End of kex handshake ===
2025-06-13 15:53:37,710 [DEBUG][       Thread-260090][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 15:53:37,711 [DEBUG][       Thread-260090][   transport.py][1871] : Switch to new keys ...
2025-06-13 15:53:37,711 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 15:53:37,712 [DEBUG][       Thread-260090][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 15:53:37,713 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 15:53:37,766 [DEBUG][       Thread-260090][   transport.py][1871] : userauth is OK
2025-06-13 15:53:37,766 [DEBUG][       Thread-260090][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 15:53:37,766 [DEBUG][       Thread-260090][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 15:53:37,766 [DEBUG][       Thread-260090][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 15:53:37,766 [DEBUG][       Thread-260090][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 15:53:37,784 [ INFO][       Thread-260090][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 15:53:37,785 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 15:53:37,785 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 15:53:38,755 [DEBUG][       Thread-260090][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 15:53:38,755 [DEBUG][       Thread-260090][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 15:53:38,804 [DEBUG][       Thread-260090][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 15:53:38,804 [DEBUG][       Thread-260090][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 15:53:38,815 [DEBUG][       Thread-260090][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 15:53:38,828 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 15:53:38,828 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 15:53:38,837 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 15:53:38,846 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 15:53:38,846 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 15:53:38,847 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 15:53:38,856 [DEBUG][       Thread-260090][   transport.py][1871] : EOF in transport thread
2025-06-13 15:53:40,703 [DEBUG][Thread-260092 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:53:48,857 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 15:53:48,858 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 15:53:48,858 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 15:53:48,860 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 15:53:49,345 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 15, 53, 19), 18.38, 27.92, 0.0, 18.95, 13.99, 0, 0, 0, 2, 0, 0),)
2025-06-13 15:53:49,345 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 15:53:19
2025-06-13 15:53:49,427 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 15:53:49,431 [DEBUG][       Thread-260093][   transport.py][1871] : starting thread (client mode): 0x867fc3a0
2025-06-13 15:53:49,431 [DEBUG][       Thread-260093][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 15:53:49,451 [DEBUG][       Thread-260093][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 15:53:49,451 [ INFO][       Thread-260093][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 15:53:49,455 [DEBUG][       Thread-260093][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 15:53:49,455 [DEBUG][       Thread-260093][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 15:53:49,455 [DEBUG][       Thread-260093][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 15:53:49,455 [DEBUG][       Thread-260093][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:53:49,455 [DEBUG][       Thread-260093][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:53:49,455 [DEBUG][       Thread-260093][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:53:49,455 [DEBUG][       Thread-260093][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:53:49,455 [DEBUG][       Thread-260093][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 15:53:49,455 [DEBUG][       Thread-260093][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 15:53:49,455 [DEBUG][       Thread-260093][   transport.py][1871] : client lang: <none>
2025-06-13 15:53:49,455 [DEBUG][       Thread-260093][   transport.py][1871] : server lang: <none>
2025-06-13 15:53:49,455 [DEBUG][       Thread-260093][   transport.py][1871] : kex follows: False
2025-06-13 15:53:49,455 [DEBUG][       Thread-260093][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 15:53:49,455 [DEBUG][       Thread-260093][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 15:53:49,455 [DEBUG][       Thread-260093][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 15:53:49,455 [DEBUG][       Thread-260093][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 15:53:49,455 [DEBUG][       Thread-260093][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 15:53:49,455 [DEBUG][       Thread-260093][   transport.py][1871] : Compression: none
2025-06-13 15:53:49,455 [DEBUG][       Thread-260093][   transport.py][1871] : === End of kex handshake ===
2025-06-13 15:53:49,472 [DEBUG][       Thread-260093][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 15:53:49,472 [DEBUG][       Thread-260093][   transport.py][1871] : Switch to new keys ...
2025-06-13 15:53:49,473 [DEBUG][       Thread-260093][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 15:53:49,473 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 15:53:49,473 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 15:53:49,474 [DEBUG][       Thread-260093][   transport.py][1871] : userauth is OK
2025-06-13 15:53:49,487 [ INFO][       Thread-260093][   transport.py][1871] : Authentication (password) successful!
2025-06-13 15:53:49,488 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 15:53:49,734 [DEBUG][Thread-260095 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:53:50,079 [DEBUG][       Thread-260093][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 15:53:50,080 [DEBUG][       Thread-260093][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 15:53:50,121 [DEBUG][       Thread-260093][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 15:53:50,121 [DEBUG][       Thread-260093][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 15:53:50,125 [DEBUG][       Thread-260093][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 15:53:50,137 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 15:53:50,137 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 15:53:50,139 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 15:53:50,141 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 15:53:50,146 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 15:53:50,148 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 15:53:50,148 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 15:53:50,149 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 15:53:50,149 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.578755 -999.00  +13.70  20.54     33   -2.00 1 1 1 1 1   887    0 15.60 -13.93 ----- 25.1 20.5 56.2 24.4 16.8 -31.4 15.9 -32.5 16.8 -31.1 17.8 -29.7
2025-06-13 15:53:50,149 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 15:53:50,149 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 15:53:50,149 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.578755
2025-06-13 15:53:50,150 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 15:53:50,150 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 15:53:50,150 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 15:53:50,151 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 15:53:50,151 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 15:53:50,151 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T15:53:19', tmtdew=18.38, humidity=27.92, cloud=0.0, wind=18.95, temperature=13.99, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T13:53:24.432', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 15:53:50,151 [DEBUG][       Thread-260093][   transport.py][1871] : EOF in transport thread
2025-06-13 15:53:50,234 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 15:53:50,243 [DEBUG][       Thread-260097][   transport.py][1871] : starting thread (client mode): 0x863a43a0
2025-06-13 15:53:50,244 [DEBUG][       Thread-260097][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 15:53:50,261 [DEBUG][       Thread-260097][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 15:53:50,261 [ INFO][       Thread-260097][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 15:53:50,274 [DEBUG][       Thread-260097][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 15:53:50,274 [DEBUG][       Thread-260097][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 15:53:50,274 [DEBUG][       Thread-260097][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 15:53:50,274 [DEBUG][       Thread-260097][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:53:50,274 [DEBUG][       Thread-260097][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:53:50,274 [DEBUG][       Thread-260097][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:53:50,274 [DEBUG][       Thread-260097][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:53:50,274 [DEBUG][       Thread-260097][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 15:53:50,274 [DEBUG][       Thread-260097][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 15:53:50,274 [DEBUG][       Thread-260097][   transport.py][1871] : client lang: <none>
2025-06-13 15:53:50,274 [DEBUG][       Thread-260097][   transport.py][1871] : server lang: <none>
2025-06-13 15:53:50,274 [DEBUG][       Thread-260097][   transport.py][1871] : kex follows: False
2025-06-13 15:53:50,275 [DEBUG][       Thread-260097][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 15:53:50,275 [DEBUG][       Thread-260097][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 15:53:50,275 [DEBUG][       Thread-260097][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 15:53:50,275 [DEBUG][       Thread-260097][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 15:53:50,275 [DEBUG][       Thread-260097][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 15:53:50,275 [DEBUG][       Thread-260097][   transport.py][1871] : Compression: none
2025-06-13 15:53:50,275 [DEBUG][       Thread-260097][   transport.py][1871] : === End of kex handshake ===
2025-06-13 15:53:50,330 [DEBUG][       Thread-260097][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 15:53:50,330 [DEBUG][       Thread-260097][   transport.py][1871] : Switch to new keys ...
2025-06-13 15:53:50,331 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 15:53:50,331 [DEBUG][       Thread-260097][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 15:53:50,332 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 15:53:50,390 [DEBUG][       Thread-260097][   transport.py][1871] : userauth is OK
2025-06-13 15:53:50,390 [DEBUG][       Thread-260097][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 15:53:50,390 [DEBUG][       Thread-260097][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 15:53:50,391 [DEBUG][       Thread-260097][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 15:53:50,391 [DEBUG][       Thread-260097][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 15:53:50,408 [ INFO][       Thread-260097][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 15:53:50,409 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 15:53:50,409 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 15:53:51,386 [DEBUG][       Thread-260097][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 15:53:51,386 [DEBUG][       Thread-260097][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 15:53:51,436 [DEBUG][       Thread-260097][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 15:53:51,436 [DEBUG][       Thread-260097][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 15:53:51,446 [DEBUG][       Thread-260097][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 15:53:51,455 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 15:53:51,455 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 15:53:51,464 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 15:53:51,473 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 15:53:51,473 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 15:53:51,473 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 15:53:51,482 [DEBUG][       Thread-260097][   transport.py][1871] : EOF in transport thread
2025-06-13 15:53:58,756 [DEBUG][Thread-260099 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:54:01,484 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 15:54:01,484 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 15:54:01,484 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 15:54:01,487 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 15:54:01,966 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 15, 53, 51), 18.39, 27.9, 0.0, 17.86, 13.97, 0, 0, 0, 2, 0, 0),)
2025-06-13 15:54:01,966 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 15:53:51
2025-06-13 15:54:02,047 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 15:54:02,053 [DEBUG][       Thread-260100][   transport.py][1871] : starting thread (client mode): 0x863c9d80
2025-06-13 15:54:02,053 [DEBUG][       Thread-260100][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 15:54:02,074 [DEBUG][       Thread-260100][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 15:54:02,074 [ INFO][       Thread-260100][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 15:54:02,077 [DEBUG][       Thread-260100][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 15:54:02,077 [DEBUG][       Thread-260100][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 15:54:02,077 [DEBUG][       Thread-260100][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 15:54:02,077 [DEBUG][       Thread-260100][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:54:02,077 [DEBUG][       Thread-260100][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:54:02,077 [DEBUG][       Thread-260100][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:54:02,077 [DEBUG][       Thread-260100][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:54:02,077 [DEBUG][       Thread-260100][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 15:54:02,077 [DEBUG][       Thread-260100][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 15:54:02,077 [DEBUG][       Thread-260100][   transport.py][1871] : client lang: <none>
2025-06-13 15:54:02,077 [DEBUG][       Thread-260100][   transport.py][1871] : server lang: <none>
2025-06-13 15:54:02,077 [DEBUG][       Thread-260100][   transport.py][1871] : kex follows: False
2025-06-13 15:54:02,077 [DEBUG][       Thread-260100][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 15:54:02,077 [DEBUG][       Thread-260100][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 15:54:02,077 [DEBUG][       Thread-260100][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 15:54:02,077 [DEBUG][       Thread-260100][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 15:54:02,078 [DEBUG][       Thread-260100][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 15:54:02,078 [DEBUG][       Thread-260100][   transport.py][1871] : Compression: none
2025-06-13 15:54:02,078 [DEBUG][       Thread-260100][   transport.py][1871] : === End of kex handshake ===
2025-06-13 15:54:02,093 [DEBUG][       Thread-260100][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 15:54:02,093 [DEBUG][       Thread-260100][   transport.py][1871] : Switch to new keys ...
2025-06-13 15:54:02,093 [DEBUG][       Thread-260100][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 15:54:02,093 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 15:54:02,093 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 15:54:02,094 [DEBUG][       Thread-260100][   transport.py][1871] : userauth is OK
2025-06-13 15:54:02,106 [ INFO][       Thread-260100][   transport.py][1871] : Authentication (password) successful!
2025-06-13 15:54:02,106 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 15:54:02,761 [DEBUG][       Thread-260100][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 15:54:02,762 [DEBUG][       Thread-260100][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 15:54:02,805 [DEBUG][       Thread-260100][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 15:54:02,805 [DEBUG][       Thread-260100][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 15:54:02,809 [DEBUG][       Thread-260100][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 15:54:02,823 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 15:54:02,823 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 15:54:02,825 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 15:54:02,828 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 15:54:02,834 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 15:54:02,836 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 15:54:02,836 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 15:54:02,837 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 15:54:02,837 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.578755 -999.00  +13.70  20.54     33   -2.00 1 1 1 1 1   887    0 15.60 -13.93 ----- 25.1 20.5 56.2 24.4 16.8 -31.4 15.9 -32.5 16.8 -31.1 17.8 -29.7
2025-06-13 15:54:02,837 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 15:54:02,837 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 15:54:02,837 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.578755
2025-06-13 15:54:02,838 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 15:54:02,838 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 15:54:02,838 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 15:54:02,838 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 15:54:02,839 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 15:54:02,839 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T15:53:51', tmtdew=18.39, humidity=27.9, cloud=0.0, wind=17.86, temperature=13.97, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T13:53:24.432', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 15:54:02,839 [DEBUG][       Thread-260100][   transport.py][1871] : EOF in transport thread
2025-06-13 15:54:02,922 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 15:54:02,934 [DEBUG][       Thread-260103][   transport.py][1871] : starting thread (client mode): 0x867b5cf0
2025-06-13 15:54:02,934 [DEBUG][       Thread-260103][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 15:54:02,952 [DEBUG][       Thread-260103][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 15:54:02,952 [ INFO][       Thread-260103][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 15:54:02,960 [DEBUG][       Thread-260103][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 15:54:02,960 [DEBUG][       Thread-260103][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 15:54:02,960 [DEBUG][       Thread-260103][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 15:54:02,960 [DEBUG][       Thread-260103][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:54:02,960 [DEBUG][       Thread-260103][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:54:02,960 [DEBUG][       Thread-260103][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:54:02,960 [DEBUG][       Thread-260103][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:54:02,960 [DEBUG][       Thread-260103][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 15:54:02,960 [DEBUG][       Thread-260103][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 15:54:02,960 [DEBUG][       Thread-260103][   transport.py][1871] : client lang: <none>
2025-06-13 15:54:02,960 [DEBUG][       Thread-260103][   transport.py][1871] : server lang: <none>
2025-06-13 15:54:02,960 [DEBUG][       Thread-260103][   transport.py][1871] : kex follows: False
2025-06-13 15:54:02,960 [DEBUG][       Thread-260103][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 15:54:02,960 [DEBUG][       Thread-260103][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 15:54:02,960 [DEBUG][       Thread-260103][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 15:54:02,961 [DEBUG][       Thread-260103][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 15:54:02,961 [DEBUG][       Thread-260103][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 15:54:02,961 [DEBUG][       Thread-260103][   transport.py][1871] : Compression: none
2025-06-13 15:54:02,961 [DEBUG][       Thread-260103][   transport.py][1871] : === End of kex handshake ===
2025-06-13 15:54:03,020 [DEBUG][       Thread-260103][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 15:54:03,021 [DEBUG][       Thread-260103][   transport.py][1871] : Switch to new keys ...
2025-06-13 15:54:03,021 [DEBUG][       Thread-260103][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 15:54:03,022 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 15:54:03,022 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 15:54:03,083 [DEBUG][       Thread-260103][   transport.py][1871] : userauth is OK
2025-06-13 15:54:03,084 [DEBUG][       Thread-260103][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 15:54:03,084 [DEBUG][       Thread-260103][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 15:54:03,084 [DEBUG][       Thread-260103][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 15:54:03,084 [DEBUG][       Thread-260103][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 15:54:03,102 [ INFO][       Thread-260103][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 15:54:03,103 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 15:54:03,103 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 15:54:04,121 [DEBUG][       Thread-260103][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 15:54:04,122 [DEBUG][       Thread-260103][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 15:54:04,174 [DEBUG][       Thread-260103][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 15:54:04,174 [DEBUG][       Thread-260103][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 15:54:04,184 [DEBUG][       Thread-260103][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 15:54:04,198 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 15:54:04,198 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 15:54:04,207 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 15:54:04,216 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 15:54:04,217 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 15:54:04,217 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 15:54:04,225 [DEBUG][       Thread-260103][   transport.py][1871] : EOF in transport thread
2025-06-13 15:54:07,775 [DEBUG][Thread-260105 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:54:12,967 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:54:12,968 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:54:14,227 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 15:54:14,228 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 15:54:14,228 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 15:54:14,231 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 15:54:14,713 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 15, 53, 51), 18.39, 27.9, 0.0, 17.86, 13.97, 0, 0, 0, 2, 0, 0),)
2025-06-13 15:54:14,713 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 15:53:51
2025-06-13 15:54:14,795 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 15:54:14,800 [DEBUG][       Thread-260106][   transport.py][1871] : starting thread (client mode): 0x86352350
2025-06-13 15:54:14,800 [DEBUG][       Thread-260106][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 15:54:14,822 [DEBUG][       Thread-260106][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 15:54:14,822 [ INFO][       Thread-260106][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 15:54:14,825 [DEBUG][       Thread-260106][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 15:54:14,825 [DEBUG][       Thread-260106][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 15:54:14,825 [DEBUG][       Thread-260106][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 15:54:14,825 [DEBUG][       Thread-260106][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:54:14,825 [DEBUG][       Thread-260106][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:54:14,825 [DEBUG][       Thread-260106][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:54:14,825 [DEBUG][       Thread-260106][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:54:14,825 [DEBUG][       Thread-260106][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 15:54:14,825 [DEBUG][       Thread-260106][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 15:54:14,825 [DEBUG][       Thread-260106][   transport.py][1871] : client lang: <none>
2025-06-13 15:54:14,825 [DEBUG][       Thread-260106][   transport.py][1871] : server lang: <none>
2025-06-13 15:54:14,825 [DEBUG][       Thread-260106][   transport.py][1871] : kex follows: False
2025-06-13 15:54:14,825 [DEBUG][       Thread-260106][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 15:54:14,825 [DEBUG][       Thread-260106][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 15:54:14,825 [DEBUG][       Thread-260106][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 15:54:14,826 [DEBUG][       Thread-260106][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 15:54:14,826 [DEBUG][       Thread-260106][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 15:54:14,826 [DEBUG][       Thread-260106][   transport.py][1871] : Compression: none
2025-06-13 15:54:14,826 [DEBUG][       Thread-260106][   transport.py][1871] : === End of kex handshake ===
2025-06-13 15:54:14,843 [DEBUG][       Thread-260106][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 15:54:14,843 [DEBUG][       Thread-260106][   transport.py][1871] : Switch to new keys ...
2025-06-13 15:54:14,844 [DEBUG][       Thread-260106][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 15:54:14,845 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 15:54:14,845 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 15:54:14,846 [DEBUG][       Thread-260106][   transport.py][1871] : userauth is OK
2025-06-13 15:54:14,859 [ INFO][       Thread-260106][   transport.py][1871] : Authentication (password) successful!
2025-06-13 15:54:14,859 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 15:54:15,508 [DEBUG][       Thread-260106][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 15:54:15,508 [DEBUG][       Thread-260106][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 15:54:15,549 [DEBUG][       Thread-260106][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 15:54:15,549 [DEBUG][       Thread-260106][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 15:54:15,552 [DEBUG][       Thread-260106][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 15:54:15,565 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 15:54:15,565 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 15:54:15,567 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 15:54:15,569 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 15:54:15,575 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 15:54:15,577 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 15:54:15,577 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 15:54:15,578 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 15:54:15,578 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.579102 -999.00  +13.70  24.81     32   -2.30 1 1 1 1 1   887    0 15.50 -13.48 ----- 22.7 24.8 57.2 28.6 16.9 -31.6 15.9 -33.0 16.7 -32.1 17.8 -30.2
2025-06-13 15:54:15,578 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 15:54:15,578 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 15:54:15,578 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.579102
2025-06-13 15:54:15,578 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 15:54:15,578 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 15:54:15,578 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 15:54:15,578 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 15:54:15,578 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 15:54:15,578 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T15:53:51', tmtdew=18.39, humidity=27.9, cloud=0.0, wind=17.86, temperature=13.97, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T13:53:54.413', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 15:54:15,579 [DEBUG][       Thread-260106][   transport.py][1871] : EOF in transport thread
2025-06-13 15:54:15,660 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 15:54:15,672 [DEBUG][       Thread-260109][   transport.py][1871] : starting thread (client mode): 0x863a40a0
2025-06-13 15:54:15,672 [DEBUG][       Thread-260109][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 15:54:15,687 [DEBUG][       Thread-260109][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 15:54:15,687 [ INFO][       Thread-260109][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 15:54:15,695 [DEBUG][       Thread-260109][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 15:54:15,695 [DEBUG][       Thread-260109][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 15:54:15,695 [DEBUG][       Thread-260109][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 15:54:15,695 [DEBUG][       Thread-260109][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:54:15,695 [DEBUG][       Thread-260109][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:54:15,695 [DEBUG][       Thread-260109][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:54:15,695 [DEBUG][       Thread-260109][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:54:15,695 [DEBUG][       Thread-260109][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 15:54:15,695 [DEBUG][       Thread-260109][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 15:54:15,695 [DEBUG][       Thread-260109][   transport.py][1871] : client lang: <none>
2025-06-13 15:54:15,695 [DEBUG][       Thread-260109][   transport.py][1871] : server lang: <none>
2025-06-13 15:54:15,695 [DEBUG][       Thread-260109][   transport.py][1871] : kex follows: False
2025-06-13 15:54:15,695 [DEBUG][       Thread-260109][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 15:54:15,695 [DEBUG][       Thread-260109][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 15:54:15,696 [DEBUG][       Thread-260109][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 15:54:15,696 [DEBUG][       Thread-260109][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 15:54:15,696 [DEBUG][       Thread-260109][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 15:54:15,696 [DEBUG][       Thread-260109][   transport.py][1871] : Compression: none
2025-06-13 15:54:15,696 [DEBUG][       Thread-260109][   transport.py][1871] : === End of kex handshake ===
2025-06-13 15:54:15,756 [DEBUG][       Thread-260109][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 15:54:15,757 [DEBUG][       Thread-260109][   transport.py][1871] : Switch to new keys ...
2025-06-13 15:54:15,757 [DEBUG][       Thread-260109][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 15:54:15,758 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 15:54:15,758 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 15:54:15,820 [DEBUG][       Thread-260109][   transport.py][1871] : userauth is OK
2025-06-13 15:54:15,821 [DEBUG][       Thread-260109][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 15:54:15,821 [DEBUG][       Thread-260109][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 15:54:15,821 [DEBUG][       Thread-260109][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 15:54:15,821 [DEBUG][       Thread-260109][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 15:54:15,840 [ INFO][       Thread-260109][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 15:54:15,840 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 15:54:15,841 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 15:54:16,811 [DEBUG][Thread-260111 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:54:16,850 [DEBUG][       Thread-260109][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 15:54:16,850 [DEBUG][       Thread-260109][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 15:54:16,902 [DEBUG][       Thread-260109][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 15:54:16,903 [DEBUG][       Thread-260109][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 15:54:16,912 [DEBUG][       Thread-260109][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 15:54:16,921 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 15:54:16,921 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 15:54:16,932 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 15:54:16,945 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 15:54:16,945 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 15:54:16,946 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 15:54:16,954 [DEBUG][       Thread-260109][   transport.py][1871] : EOF in transport thread
2025-06-13 15:54:17,146 [DEBUG][Thread-260112 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:54:18,242 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:54:18,251 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:54:22,129 [DEBUG][Thread-260113 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:54:25,829 [DEBUG][Thread-260114 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:54:26,956 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 15:54:26,956 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 15:54:26,956 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 15:54:26,957 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 15:54:27,429 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 15, 54, 23), 18.26, 28.02, 0.0, 16.52, 13.98, 0, 0, 0, 2, 0, 0),)
2025-06-13 15:54:27,429 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 15:54:23
2025-06-13 15:54:27,510 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 15:54:27,514 [DEBUG][       Thread-260115][   transport.py][1871] : starting thread (client mode): 0x8636ae60
2025-06-13 15:54:27,514 [DEBUG][       Thread-260115][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 15:54:27,535 [DEBUG][       Thread-260115][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 15:54:27,535 [ INFO][       Thread-260115][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 15:54:27,539 [DEBUG][       Thread-260115][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 15:54:27,539 [DEBUG][       Thread-260115][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 15:54:27,539 [DEBUG][       Thread-260115][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 15:54:27,539 [DEBUG][       Thread-260115][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:54:27,539 [DEBUG][       Thread-260115][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:54:27,539 [DEBUG][       Thread-260115][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:54:27,539 [DEBUG][       Thread-260115][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:54:27,539 [DEBUG][       Thread-260115][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 15:54:27,539 [DEBUG][       Thread-260115][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 15:54:27,539 [DEBUG][       Thread-260115][   transport.py][1871] : client lang: <none>
2025-06-13 15:54:27,539 [DEBUG][       Thread-260115][   transport.py][1871] : server lang: <none>
2025-06-13 15:54:27,539 [DEBUG][       Thread-260115][   transport.py][1871] : kex follows: False
2025-06-13 15:54:27,539 [DEBUG][       Thread-260115][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 15:54:27,539 [DEBUG][       Thread-260115][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 15:54:27,540 [DEBUG][       Thread-260115][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 15:54:27,540 [DEBUG][       Thread-260115][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 15:54:27,540 [DEBUG][       Thread-260115][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 15:54:27,540 [DEBUG][       Thread-260115][   transport.py][1871] : Compression: none
2025-06-13 15:54:27,540 [DEBUG][       Thread-260115][   transport.py][1871] : === End of kex handshake ===
2025-06-13 15:54:27,558 [DEBUG][       Thread-260115][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 15:54:27,559 [DEBUG][       Thread-260115][   transport.py][1871] : Switch to new keys ...
2025-06-13 15:54:27,559 [DEBUG][       Thread-260115][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 15:54:27,559 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 15:54:27,560 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 15:54:27,561 [DEBUG][       Thread-260115][   transport.py][1871] : userauth is OK
2025-06-13 15:54:27,585 [ INFO][       Thread-260115][   transport.py][1871] : Authentication (password) successful!
2025-06-13 15:54:27,586 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 15:54:28,221 [DEBUG][       Thread-260115][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 15:54:28,221 [DEBUG][       Thread-260115][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 15:54:28,265 [DEBUG][       Thread-260115][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 15:54:28,265 [DEBUG][       Thread-260115][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 15:54:28,268 [DEBUG][       Thread-260115][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 15:54:28,282 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 15:54:28,282 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 15:54:28,284 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 15:54:28,286 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 15:54:28,292 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 15:54:28,294 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 15:54:28,295 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 15:54:28,295 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 15:54:28,296 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.579102 -999.00  +13.70  24.81     32   -2.30 1 1 1 1 1   887    0 15.50 -13.48 ----- 22.7 24.8 57.2 28.6 16.9 -31.6 15.9 -33.0 16.7 -32.1 17.8 -30.2
2025-06-13 15:54:28,296 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 15:54:28,296 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 15:54:28,296 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.579102
2025-06-13 15:54:28,296 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 15:54:28,297 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 15:54:28,297 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 15:54:28,297 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 15:54:28,297 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 15:54:28,297 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T15:54:23', tmtdew=18.26, humidity=28.02, cloud=0.0, wind=16.52, temperature=13.98, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T13:53:54.413', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 15:54:28,298 [DEBUG][       Thread-260115][   transport.py][1871] : EOF in transport thread
2025-06-13 15:54:28,380 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 15:54:28,390 [DEBUG][       Thread-260118][   transport.py][1871] : starting thread (client mode): 0x863be1d0
2025-06-13 15:54:28,390 [DEBUG][       Thread-260118][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 15:54:28,407 [DEBUG][       Thread-260118][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 15:54:28,407 [ INFO][       Thread-260118][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 15:54:28,415 [DEBUG][       Thread-260118][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 15:54:28,415 [DEBUG][       Thread-260118][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 15:54:28,415 [DEBUG][       Thread-260118][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 15:54:28,415 [DEBUG][       Thread-260118][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:54:28,415 [DEBUG][       Thread-260118][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:54:28,415 [DEBUG][       Thread-260118][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:54:28,415 [DEBUG][       Thread-260118][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:54:28,415 [DEBUG][       Thread-260118][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 15:54:28,415 [DEBUG][       Thread-260118][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 15:54:28,416 [DEBUG][       Thread-260118][   transport.py][1871] : client lang: <none>
2025-06-13 15:54:28,416 [DEBUG][       Thread-260118][   transport.py][1871] : server lang: <none>
2025-06-13 15:54:28,416 [DEBUG][       Thread-260118][   transport.py][1871] : kex follows: False
2025-06-13 15:54:28,416 [DEBUG][       Thread-260118][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 15:54:28,416 [DEBUG][       Thread-260118][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 15:54:28,416 [DEBUG][       Thread-260118][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 15:54:28,416 [DEBUG][       Thread-260118][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 15:54:28,416 [DEBUG][       Thread-260118][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 15:54:28,416 [DEBUG][       Thread-260118][   transport.py][1871] : Compression: none
2025-06-13 15:54:28,416 [DEBUG][       Thread-260118][   transport.py][1871] : === End of kex handshake ===
2025-06-13 15:54:28,482 [DEBUG][       Thread-260118][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 15:54:28,483 [DEBUG][       Thread-260118][   transport.py][1871] : Switch to new keys ...
2025-06-13 15:54:28,484 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 15:54:28,484 [DEBUG][       Thread-260118][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 15:54:28,485 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 15:54:28,538 [DEBUG][       Thread-260118][   transport.py][1871] : userauth is OK
2025-06-13 15:54:28,538 [DEBUG][       Thread-260118][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 15:54:28,539 [DEBUG][       Thread-260118][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 15:54:28,539 [DEBUG][       Thread-260118][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 15:54:28,539 [DEBUG][       Thread-260118][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 15:54:28,557 [ INFO][       Thread-260118][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 15:54:28,557 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 15:54:28,558 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 15:54:29,570 [DEBUG][       Thread-260118][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 15:54:29,570 [DEBUG][       Thread-260118][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 15:54:29,620 [DEBUG][       Thread-260118][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 15:54:29,620 [DEBUG][       Thread-260118][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 15:54:29,629 [DEBUG][       Thread-260118][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 15:54:29,638 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 15:54:29,638 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 15:54:29,647 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 15:54:29,657 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 15:54:29,657 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 15:54:29,657 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 15:54:29,674 [DEBUG][       Thread-260118][   transport.py][1871] : EOF in transport thread
2025-06-13 15:54:34,850 [DEBUG][Thread-260120 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:54:39,668 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 15:54:39,668 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 15:54:39,668 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 15:54:39,671 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 15:54:40,144 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 15, 54, 23), 18.26, 28.02, 0.0, 16.52, 13.98, 0, 0, 0, 2, 0, 0),)
2025-06-13 15:54:40,144 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 15:54:23
2025-06-13 15:54:40,225 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 15:54:40,230 [DEBUG][       Thread-260121][   transport.py][1871] : starting thread (client mode): 0x8636b0d0
2025-06-13 15:54:40,231 [DEBUG][       Thread-260121][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 15:54:40,251 [DEBUG][       Thread-260121][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 15:54:40,252 [ INFO][       Thread-260121][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 15:54:40,255 [DEBUG][       Thread-260121][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 15:54:40,255 [DEBUG][       Thread-260121][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 15:54:40,255 [DEBUG][       Thread-260121][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 15:54:40,255 [DEBUG][       Thread-260121][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:54:40,255 [DEBUG][       Thread-260121][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:54:40,255 [DEBUG][       Thread-260121][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:54:40,255 [DEBUG][       Thread-260121][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:54:40,255 [DEBUG][       Thread-260121][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 15:54:40,255 [DEBUG][       Thread-260121][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 15:54:40,255 [DEBUG][       Thread-260121][   transport.py][1871] : client lang: <none>
2025-06-13 15:54:40,255 [DEBUG][       Thread-260121][   transport.py][1871] : server lang: <none>
2025-06-13 15:54:40,255 [DEBUG][       Thread-260121][   transport.py][1871] : kex follows: False
2025-06-13 15:54:40,255 [DEBUG][       Thread-260121][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 15:54:40,255 [DEBUG][       Thread-260121][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 15:54:40,255 [DEBUG][       Thread-260121][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 15:54:40,256 [DEBUG][       Thread-260121][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 15:54:40,256 [DEBUG][       Thread-260121][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 15:54:40,256 [DEBUG][       Thread-260121][   transport.py][1871] : Compression: none
2025-06-13 15:54:40,256 [DEBUG][       Thread-260121][   transport.py][1871] : === End of kex handshake ===
2025-06-13 15:54:40,273 [DEBUG][       Thread-260121][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 15:54:40,274 [DEBUG][       Thread-260121][   transport.py][1871] : Switch to new keys ...
2025-06-13 15:54:40,274 [DEBUG][       Thread-260121][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 15:54:40,274 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 15:54:40,274 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 15:54:40,276 [DEBUG][       Thread-260121][   transport.py][1871] : userauth is OK
2025-06-13 15:54:40,291 [ INFO][       Thread-260121][   transport.py][1871] : Authentication (password) successful!
2025-06-13 15:54:40,291 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 15:54:40,916 [DEBUG][       Thread-260121][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 15:54:40,916 [DEBUG][       Thread-260121][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 15:54:40,957 [DEBUG][       Thread-260121][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 15:54:40,957 [DEBUG][       Thread-260121][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 15:54:40,960 [DEBUG][       Thread-260121][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 15:54:40,974 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 15:54:40,975 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 15:54:40,977 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 15:54:40,978 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 15:54:40,983 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 15:54:40,985 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 15:54:40,985 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 15:54:40,986 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 15:54:40,986 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.579102 -999.00  +13.70  24.81     32   -2.30 1 1 1 1 1   887    0 15.50 -13.48 ----- 22.7 24.8 57.2 28.6 16.9 -31.6 15.9 -33.0 16.7 -32.1 17.8 -30.2
2025-06-13 15:54:40,986 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 15:54:40,986 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 15:54:40,986 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.579102
2025-06-13 15:54:40,987 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 15:54:40,987 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 15:54:40,987 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 15:54:40,988 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 15:54:40,988 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 15:54:40,988 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T15:54:23', tmtdew=18.26, humidity=28.02, cloud=0.0, wind=16.52, temperature=13.98, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T13:53:54.413', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 15:54:40,988 [DEBUG][       Thread-260121][   transport.py][1871] : EOF in transport thread
2025-06-13 15:54:41,071 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 15:54:41,083 [DEBUG][       Thread-260124][   transport.py][1871] : starting thread (client mode): 0x867b4970
2025-06-13 15:54:41,083 [DEBUG][       Thread-260124][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 15:54:41,098 [DEBUG][       Thread-260124][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 15:54:41,098 [ INFO][       Thread-260124][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 15:54:41,105 [DEBUG][       Thread-260124][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 15:54:41,106 [DEBUG][       Thread-260124][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 15:54:41,106 [DEBUG][       Thread-260124][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 15:54:41,106 [DEBUG][       Thread-260124][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:54:41,106 [DEBUG][       Thread-260124][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:54:41,106 [DEBUG][       Thread-260124][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:54:41,106 [DEBUG][       Thread-260124][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:54:41,106 [DEBUG][       Thread-260124][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 15:54:41,106 [DEBUG][       Thread-260124][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 15:54:41,106 [DEBUG][       Thread-260124][   transport.py][1871] : client lang: <none>
2025-06-13 15:54:41,106 [DEBUG][       Thread-260124][   transport.py][1871] : server lang: <none>
2025-06-13 15:54:41,106 [DEBUG][       Thread-260124][   transport.py][1871] : kex follows: False
2025-06-13 15:54:41,106 [DEBUG][       Thread-260124][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 15:54:41,106 [DEBUG][       Thread-260124][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 15:54:41,106 [DEBUG][       Thread-260124][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 15:54:41,106 [DEBUG][       Thread-260124][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 15:54:41,106 [DEBUG][       Thread-260124][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 15:54:41,106 [DEBUG][       Thread-260124][   transport.py][1871] : Compression: none
2025-06-13 15:54:41,106 [DEBUG][       Thread-260124][   transport.py][1871] : === End of kex handshake ===
2025-06-13 15:54:41,171 [DEBUG][       Thread-260124][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 15:54:41,171 [DEBUG][       Thread-260124][   transport.py][1871] : Switch to new keys ...
2025-06-13 15:54:41,172 [DEBUG][       Thread-260124][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 15:54:41,172 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 15:54:41,173 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 15:54:41,231 [DEBUG][       Thread-260124][   transport.py][1871] : userauth is OK
2025-06-13 15:54:41,231 [DEBUG][       Thread-260124][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 15:54:41,232 [DEBUG][       Thread-260124][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 15:54:41,232 [DEBUG][       Thread-260124][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 15:54:41,232 [DEBUG][       Thread-260124][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 15:54:41,250 [ INFO][       Thread-260124][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 15:54:41,250 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 15:54:41,251 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 15:54:42,217 [DEBUG][       Thread-260124][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 15:54:42,217 [DEBUG][       Thread-260124][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 15:54:42,268 [DEBUG][       Thread-260124][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 15:54:42,268 [DEBUG][       Thread-260124][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 15:54:42,277 [DEBUG][       Thread-260124][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 15:54:42,286 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 15:54:42,287 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 15:54:42,296 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 15:54:42,305 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 15:54:42,305 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 15:54:42,306 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 15:54:42,313 [DEBUG][       Thread-260124][   transport.py][1871] : EOF in transport thread
2025-06-13 15:54:43,896 [DEBUG][Thread-260126 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:54:52,316 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 15:54:52,317 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 15:54:52,317 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 15:54:52,320 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 15:54:52,792 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 15, 54, 23), 18.26, 28.02, 0.0, 16.52, 13.98, 0, 0, 0, 2, 0, 0),)
2025-06-13 15:54:52,792 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 15:54:23
2025-06-13 15:54:52,874 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 15:54:52,878 [DEBUG][       Thread-260127][   transport.py][1871] : starting thread (client mode): 0x8636a050
2025-06-13 15:54:52,878 [DEBUG][       Thread-260127][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 15:54:52,898 [DEBUG][       Thread-260127][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 15:54:52,898 [ INFO][       Thread-260127][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 15:54:52,902 [DEBUG][       Thread-260127][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 15:54:52,902 [DEBUG][       Thread-260127][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 15:54:52,902 [DEBUG][       Thread-260127][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 15:54:52,902 [DEBUG][       Thread-260127][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:54:52,902 [DEBUG][       Thread-260127][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:54:52,902 [DEBUG][       Thread-260127][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:54:52,902 [DEBUG][       Thread-260127][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:54:52,902 [DEBUG][       Thread-260127][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 15:54:52,902 [DEBUG][       Thread-260127][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 15:54:52,902 [DEBUG][       Thread-260127][   transport.py][1871] : client lang: <none>
2025-06-13 15:54:52,902 [DEBUG][       Thread-260127][   transport.py][1871] : server lang: <none>
2025-06-13 15:54:52,902 [DEBUG][       Thread-260127][   transport.py][1871] : kex follows: False
2025-06-13 15:54:52,902 [DEBUG][       Thread-260127][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 15:54:52,902 [DEBUG][       Thread-260127][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 15:54:52,902 [DEBUG][       Thread-260127][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 15:54:52,902 [DEBUG][       Thread-260127][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 15:54:52,902 [DEBUG][       Thread-260127][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 15:54:52,902 [DEBUG][       Thread-260127][   transport.py][1871] : Compression: none
2025-06-13 15:54:52,902 [DEBUG][       Thread-260127][   transport.py][1871] : === End of kex handshake ===
2025-06-13 15:54:52,917 [DEBUG][Thread-260129 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:54:52,919 [DEBUG][       Thread-260127][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 15:54:52,920 [DEBUG][       Thread-260127][   transport.py][1871] : Switch to new keys ...
2025-06-13 15:54:52,920 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 15:54:52,921 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 15:54:52,921 [DEBUG][       Thread-260127][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 15:54:52,922 [DEBUG][       Thread-260127][   transport.py][1871] : userauth is OK
2025-06-13 15:54:52,946 [ INFO][       Thread-260127][   transport.py][1871] : Authentication (password) successful!
2025-06-13 15:54:52,947 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 15:54:53,535 [DEBUG][       Thread-260127][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 15:54:53,535 [DEBUG][       Thread-260127][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 15:54:53,577 [DEBUG][       Thread-260127][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 15:54:53,577 [DEBUG][       Thread-260127][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 15:54:53,581 [DEBUG][       Thread-260127][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 15:54:53,594 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 15:54:53,595 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 15:54:53,597 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 15:54:53,599 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 15:54:53,605 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 15:54:53,607 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 15:54:53,607 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 15:54:53,608 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 15:54:53,608 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.579449 -999.00  +13.60  20.10     32   -2.30 1 1 1 1 1   887    0 15.71 -13.83 ----- 22.1 20.1 54.4 26.2 16.7 -31.9 15.8 -32.7 16.8 -31.7 17.8 -30.0
2025-06-13 15:54:53,608 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 15:54:53,608 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 15:54:53,609 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.579449
2025-06-13 15:54:53,609 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 15:54:53,610 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 15:54:53,610 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 15:54:53,610 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 15:54:53,610 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 15:54:53,610 [DEBUG][       Thread-260127][   transport.py][1871] : EOF in transport thread
2025-06-13 15:54:53,610 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T15:54:23', tmtdew=18.26, humidity=28.02, cloud=0.0, wind=16.52, temperature=13.98, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T13:54:24.394', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 15:54:53,694 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 15:54:53,703 [DEBUG][       Thread-260131][   transport.py][1871] : starting thread (client mode): 0x86893df0
2025-06-13 15:54:53,703 [DEBUG][       Thread-260131][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 15:54:53,718 [DEBUG][       Thread-260131][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 15:54:53,718 [ INFO][       Thread-260131][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 15:54:53,726 [DEBUG][       Thread-260131][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 15:54:53,726 [DEBUG][       Thread-260131][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 15:54:53,726 [DEBUG][       Thread-260131][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 15:54:53,726 [DEBUG][       Thread-260131][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:54:53,726 [DEBUG][       Thread-260131][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:54:53,726 [DEBUG][       Thread-260131][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:54:53,726 [DEBUG][       Thread-260131][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:54:53,726 [DEBUG][       Thread-260131][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 15:54:53,726 [DEBUG][       Thread-260131][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 15:54:53,726 [DEBUG][       Thread-260131][   transport.py][1871] : client lang: <none>
2025-06-13 15:54:53,726 [DEBUG][       Thread-260131][   transport.py][1871] : server lang: <none>
2025-06-13 15:54:53,726 [DEBUG][       Thread-260131][   transport.py][1871] : kex follows: False
2025-06-13 15:54:53,726 [DEBUG][       Thread-260131][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 15:54:53,726 [DEBUG][       Thread-260131][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 15:54:53,726 [DEBUG][       Thread-260131][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 15:54:53,726 [DEBUG][       Thread-260131][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 15:54:53,727 [DEBUG][       Thread-260131][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 15:54:53,727 [DEBUG][       Thread-260131][   transport.py][1871] : Compression: none
2025-06-13 15:54:53,727 [DEBUG][       Thread-260131][   transport.py][1871] : === End of kex handshake ===
2025-06-13 15:54:53,787 [DEBUG][       Thread-260131][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 15:54:53,788 [DEBUG][       Thread-260131][   transport.py][1871] : Switch to new keys ...
2025-06-13 15:54:53,789 [DEBUG][       Thread-260131][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 15:54:53,789 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 15:54:53,790 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 15:54:53,852 [DEBUG][       Thread-260131][   transport.py][1871] : userauth is OK
2025-06-13 15:54:53,853 [DEBUG][       Thread-260131][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 15:54:53,853 [DEBUG][       Thread-260131][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 15:54:53,853 [DEBUG][       Thread-260131][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 15:54:53,853 [DEBUG][       Thread-260131][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 15:54:53,875 [ INFO][       Thread-260131][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 15:54:53,876 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 15:54:53,876 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 15:54:54,857 [DEBUG][       Thread-260131][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 15:54:54,857 [DEBUG][       Thread-260131][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 15:54:54,908 [DEBUG][       Thread-260131][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 15:54:54,908 [DEBUG][       Thread-260131][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 15:54:54,918 [DEBUG][       Thread-260131][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 15:54:54,927 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 15:54:54,927 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 15:54:54,936 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 15:54:54,945 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 15:54:54,945 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 15:54:54,946 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 15:54:54,958 [DEBUG][       Thread-260131][   transport.py][1871] : EOF in transport thread
2025-06-13 15:55:01,934 [DEBUG][Thread-260133 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:55:04,956 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 15:55:04,956 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 15:55:04,956 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 15:55:04,957 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 15:55:05,431 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 15, 54, 55), 18.16, 28.22, 0.0, 18.88, 13.98, 0, 0, 0, 2, 0, 0),)
2025-06-13 15:55:05,431 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 15:54:55
2025-06-13 15:55:05,512 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 15:55:05,517 [DEBUG][       Thread-260134][   transport.py][1871] : starting thread (client mode): 0x863537f0
2025-06-13 15:55:05,517 [DEBUG][       Thread-260134][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 15:55:05,538 [DEBUG][       Thread-260134][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 15:55:05,538 [ INFO][       Thread-260134][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 15:55:05,541 [DEBUG][       Thread-260134][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 15:55:05,541 [DEBUG][       Thread-260134][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 15:55:05,541 [DEBUG][       Thread-260134][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 15:55:05,541 [DEBUG][       Thread-260134][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:55:05,541 [DEBUG][       Thread-260134][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:55:05,541 [DEBUG][       Thread-260134][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:55:05,541 [DEBUG][       Thread-260134][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:55:05,541 [DEBUG][       Thread-260134][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 15:55:05,541 [DEBUG][       Thread-260134][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 15:55:05,541 [DEBUG][       Thread-260134][   transport.py][1871] : client lang: <none>
2025-06-13 15:55:05,541 [DEBUG][       Thread-260134][   transport.py][1871] : server lang: <none>
2025-06-13 15:55:05,541 [DEBUG][       Thread-260134][   transport.py][1871] : kex follows: False
2025-06-13 15:55:05,541 [DEBUG][       Thread-260134][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 15:55:05,541 [DEBUG][       Thread-260134][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 15:55:05,541 [DEBUG][       Thread-260134][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 15:55:05,541 [DEBUG][       Thread-260134][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 15:55:05,541 [DEBUG][       Thread-260134][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 15:55:05,541 [DEBUG][       Thread-260134][   transport.py][1871] : Compression: none
2025-06-13 15:55:05,541 [DEBUG][       Thread-260134][   transport.py][1871] : === End of kex handshake ===
2025-06-13 15:55:05,556 [DEBUG][       Thread-260134][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 15:55:05,556 [DEBUG][       Thread-260134][   transport.py][1871] : Switch to new keys ...
2025-06-13 15:55:05,556 [DEBUG][       Thread-260134][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 15:55:05,556 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 15:55:05,556 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 15:55:05,556 [DEBUG][       Thread-260134][   transport.py][1871] : userauth is OK
2025-06-13 15:55:05,580 [ INFO][       Thread-260134][   transport.py][1871] : Authentication (password) successful!
2025-06-13 15:55:05,581 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 15:55:10,957 [DEBUG][Thread-260136 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:55:13,105 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:55:13,106 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:55:14,832 [DEBUG][       Thread-260134][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 15:55:14,833 [DEBUG][       Thread-260134][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 15:55:14,877 [DEBUG][       Thread-260134][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 15:55:14,877 [DEBUG][       Thread-260134][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 15:55:14,881 [DEBUG][       Thread-260134][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 15:55:14,945 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 15:55:14,946 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 15:55:14,948 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 15:55:14,950 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 15:55:14,956 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 15:55:14,959 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 15:55:14,959 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 15:55:14,959 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 15:55:14,960 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.579449 -999.00  +13.60  20.10     32   -2.30 1 1 1 1 1   887    0 15.71 -13.83 ----- 22.1 20.1 54.4 26.2 16.7 -31.9 15.8 -32.7 16.8 -31.7 17.8 -30.0
2025-06-13 15:55:14,960 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 15:55:14,960 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 15:55:14,960 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.579449
2025-06-13 15:55:14,960 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 15:55:14,961 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 15:55:14,961 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 15:55:14,961 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 15:55:14,961 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 15:55:14,961 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T15:54:55', tmtdew=18.16, humidity=28.22, cloud=0.0, wind=18.88, temperature=13.98, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T13:54:24.394', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 15:55:14,963 [DEBUG][       Thread-260134][   transport.py][1871] : EOF in transport thread
2025-06-13 15:55:15,053 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 15:55:15,066 [DEBUG][       Thread-260138][   transport.py][1871] : starting thread (client mode): 0x867fef80
2025-06-13 15:55:15,066 [DEBUG][       Thread-260138][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 15:55:15,081 [DEBUG][       Thread-260138][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 15:55:15,081 [ INFO][       Thread-260138][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 15:55:15,091 [DEBUG][       Thread-260138][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 15:55:15,092 [DEBUG][       Thread-260138][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 15:55:15,092 [DEBUG][       Thread-260138][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 15:55:15,092 [DEBUG][       Thread-260138][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:55:15,092 [DEBUG][       Thread-260138][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:55:15,092 [DEBUG][       Thread-260138][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:55:15,092 [DEBUG][       Thread-260138][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:55:15,092 [DEBUG][       Thread-260138][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 15:55:15,092 [DEBUG][       Thread-260138][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 15:55:15,092 [DEBUG][       Thread-260138][   transport.py][1871] : client lang: <none>
2025-06-13 15:55:15,092 [DEBUG][       Thread-260138][   transport.py][1871] : server lang: <none>
2025-06-13 15:55:15,092 [DEBUG][       Thread-260138][   transport.py][1871] : kex follows: False
2025-06-13 15:55:15,092 [DEBUG][       Thread-260138][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 15:55:15,092 [DEBUG][       Thread-260138][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 15:55:15,092 [DEBUG][       Thread-260138][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 15:55:15,092 [DEBUG][       Thread-260138][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 15:55:15,092 [DEBUG][       Thread-260138][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 15:55:15,093 [DEBUG][       Thread-260138][   transport.py][1871] : Compression: none
2025-06-13 15:55:15,093 [DEBUG][       Thread-260138][   transport.py][1871] : === End of kex handshake ===
2025-06-13 15:55:15,150 [DEBUG][       Thread-260138][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 15:55:15,151 [DEBUG][       Thread-260138][   transport.py][1871] : Switch to new keys ...
2025-06-13 15:55:15,152 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 15:55:15,152 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 15:55:15,153 [DEBUG][       Thread-260138][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 15:55:15,206 [DEBUG][       Thread-260138][   transport.py][1871] : userauth is OK
2025-06-13 15:55:15,206 [DEBUG][       Thread-260138][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 15:55:15,206 [DEBUG][       Thread-260138][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 15:55:15,206 [DEBUG][       Thread-260138][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 15:55:15,207 [DEBUG][       Thread-260138][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 15:55:15,224 [ INFO][       Thread-260138][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 15:55:15,225 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 15:55:15,225 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 15:55:16,213 [DEBUG][       Thread-260138][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 15:55:16,213 [DEBUG][       Thread-260138][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 15:55:16,264 [DEBUG][       Thread-260138][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 15:55:16,264 [DEBUG][       Thread-260138][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 15:55:16,273 [DEBUG][       Thread-260138][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 15:55:16,282 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 15:55:16,282 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 15:55:16,291 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 15:55:16,301 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 15:55:16,301 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 15:55:16,302 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 15:55:16,310 [DEBUG][       Thread-260138][   transport.py][1871] : EOF in transport thread
2025-06-13 15:55:18,334 [DEBUG][Thread-260140 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:55:19,424 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:55:19,426 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:55:19,979 [DEBUG][Thread-260141 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:55:22,174 [DEBUG][Thread-260142 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:55:26,312 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 15:55:26,312 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 15:55:26,312 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 15:55:26,315 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 15:55:26,793 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 15, 54, 55), 18.16, 28.22, 0.0, 18.88, 13.98, 0, 0, 0, 2, 0, 0),)
2025-06-13 15:55:26,793 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 15:54:55
2025-06-13 15:55:26,874 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 15:55:26,880 [DEBUG][       Thread-260143][   transport.py][1871] : starting thread (client mode): 0x867fe830
2025-06-13 15:55:26,880 [DEBUG][       Thread-260143][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 15:55:26,895 [DEBUG][       Thread-260143][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 15:55:26,895 [ INFO][       Thread-260143][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 15:55:26,898 [DEBUG][       Thread-260143][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 15:55:26,898 [DEBUG][       Thread-260143][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 15:55:26,898 [DEBUG][       Thread-260143][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 15:55:26,898 [DEBUG][       Thread-260143][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:55:26,898 [DEBUG][       Thread-260143][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:55:26,898 [DEBUG][       Thread-260143][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:55:26,898 [DEBUG][       Thread-260143][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:55:26,898 [DEBUG][       Thread-260143][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 15:55:26,899 [DEBUG][       Thread-260143][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 15:55:26,899 [DEBUG][       Thread-260143][   transport.py][1871] : client lang: <none>
2025-06-13 15:55:26,899 [DEBUG][       Thread-260143][   transport.py][1871] : server lang: <none>
2025-06-13 15:55:26,899 [DEBUG][       Thread-260143][   transport.py][1871] : kex follows: False
2025-06-13 15:55:26,899 [DEBUG][       Thread-260143][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 15:55:26,899 [DEBUG][       Thread-260143][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 15:55:26,899 [DEBUG][       Thread-260143][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 15:55:26,899 [DEBUG][       Thread-260143][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 15:55:26,899 [DEBUG][       Thread-260143][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 15:55:26,899 [DEBUG][       Thread-260143][   transport.py][1871] : Compression: none
2025-06-13 15:55:26,899 [DEBUG][       Thread-260143][   transport.py][1871] : === End of kex handshake ===
2025-06-13 15:55:26,914 [DEBUG][       Thread-260143][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 15:55:26,914 [DEBUG][       Thread-260143][   transport.py][1871] : Switch to new keys ...
2025-06-13 15:55:26,915 [DEBUG][       Thread-260143][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 15:55:26,915 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 15:55:26,915 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 15:55:26,916 [DEBUG][       Thread-260143][   transport.py][1871] : userauth is OK
2025-06-13 15:55:26,930 [ INFO][       Thread-260143][   transport.py][1871] : Authentication (password) successful!
2025-06-13 15:55:26,930 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 15:55:27,499 [DEBUG][       Thread-260143][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 15:55:27,499 [DEBUG][       Thread-260143][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 15:55:27,540 [DEBUG][       Thread-260143][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 15:55:27,540 [DEBUG][       Thread-260143][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 15:55:27,544 [DEBUG][       Thread-260143][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 15:55:27,550 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 15:55:27,550 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 15:55:27,555 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 15:55:27,559 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 15:55:27,571 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 15:55:27,575 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 15:55:27,575 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 15:55:27,575 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 15:55:27,575 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.579796 -999.00  +13.70  20.21     33   -2.20 1 1 1 1 1   887    0 15.52 -12.25 ----- 23.7 20.2 60.8 27.4 16.7 -31.8 15.9 -32.7 16.8 -31.4 17.8 -30.1
2025-06-13 15:55:27,575 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 15:55:27,575 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 15:55:27,575 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.579796
2025-06-13 15:55:27,575 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 15:55:27,575 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 15:55:27,575 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 15:55:27,575 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 15:55:27,575 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 15:55:27,575 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T15:54:55', tmtdew=18.16, humidity=28.22, cloud=0.0, wind=18.88, temperature=13.98, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T13:54:54.374', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 15:55:27,579 [DEBUG][       Thread-260143][   transport.py][1871] : EOF in transport thread
2025-06-13 15:55:27,649 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 15:55:27,659 [DEBUG][       Thread-260146][   transport.py][1871] : starting thread (client mode): 0x86393d60
2025-06-13 15:55:27,659 [DEBUG][       Thread-260146][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 15:55:27,674 [DEBUG][       Thread-260146][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 15:55:27,674 [ INFO][       Thread-260146][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 15:55:27,681 [DEBUG][       Thread-260146][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 15:55:27,681 [DEBUG][       Thread-260146][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 15:55:27,681 [DEBUG][       Thread-260146][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 15:55:27,681 [DEBUG][       Thread-260146][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:55:27,681 [DEBUG][       Thread-260146][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:55:27,681 [DEBUG][       Thread-260146][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:55:27,681 [DEBUG][       Thread-260146][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:55:27,681 [DEBUG][       Thread-260146][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 15:55:27,681 [DEBUG][       Thread-260146][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 15:55:27,681 [DEBUG][       Thread-260146][   transport.py][1871] : client lang: <none>
2025-06-13 15:55:27,681 [DEBUG][       Thread-260146][   transport.py][1871] : server lang: <none>
2025-06-13 15:55:27,681 [DEBUG][       Thread-260146][   transport.py][1871] : kex follows: False
2025-06-13 15:55:27,681 [DEBUG][       Thread-260146][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 15:55:27,681 [DEBUG][       Thread-260146][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 15:55:27,681 [DEBUG][       Thread-260146][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 15:55:27,681 [DEBUG][       Thread-260146][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 15:55:27,681 [DEBUG][       Thread-260146][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 15:55:27,681 [DEBUG][       Thread-260146][   transport.py][1871] : Compression: none
2025-06-13 15:55:27,681 [DEBUG][       Thread-260146][   transport.py][1871] : === End of kex handshake ===
2025-06-13 15:55:27,740 [DEBUG][       Thread-260146][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 15:55:27,741 [DEBUG][       Thread-260146][   transport.py][1871] : Switch to new keys ...
2025-06-13 15:55:27,741 [DEBUG][       Thread-260146][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 15:55:27,741 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 15:55:27,741 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 15:55:27,797 [DEBUG][       Thread-260146][   transport.py][1871] : userauth is OK
2025-06-13 15:55:27,797 [DEBUG][       Thread-260146][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 15:55:27,797 [DEBUG][       Thread-260146][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 15:55:27,797 [DEBUG][       Thread-260146][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 15:55:27,797 [DEBUG][       Thread-260146][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 15:55:27,812 [ INFO][       Thread-260146][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 15:55:27,812 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 15:55:27,812 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 15:55:28,825 [DEBUG][       Thread-260146][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 15:55:28,825 [DEBUG][       Thread-260146][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 15:55:28,875 [DEBUG][       Thread-260146][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 15:55:28,875 [DEBUG][       Thread-260146][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 15:55:28,884 [DEBUG][       Thread-260146][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 15:55:28,891 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 15:55:28,891 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 15:55:28,899 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 15:55:28,907 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 15:55:28,907 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 15:55:28,907 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 15:55:28,915 [DEBUG][       Thread-260146][   transport.py][1871] : EOF in transport thread
2025-06-13 15:55:29,006 [DEBUG][Thread-260148 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:55:38,027 [DEBUG][Thread-260149 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:55:38,912 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 15:55:38,912 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 15:55:38,912 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 15:55:38,915 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 15:55:39,395 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 15, 55, 26), 18.2, 28.21, 0.0, 16.06, 14.03, 0, 0, 0, 2, 0, 0),)
2025-06-13 15:55:39,395 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 15:55:26
2025-06-13 15:55:39,483 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 15:55:39,487 [DEBUG][       Thread-260150][   transport.py][1871] : starting thread (client mode): 0x867ffe20
2025-06-13 15:55:39,487 [DEBUG][       Thread-260150][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 15:55:39,509 [DEBUG][       Thread-260150][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 15:55:39,509 [ INFO][       Thread-260150][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 15:55:39,513 [DEBUG][       Thread-260150][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 15:55:39,513 [DEBUG][       Thread-260150][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 15:55:39,513 [DEBUG][       Thread-260150][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 15:55:39,513 [DEBUG][       Thread-260150][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:55:39,513 [DEBUG][       Thread-260150][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:55:39,513 [DEBUG][       Thread-260150][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:55:39,513 [DEBUG][       Thread-260150][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:55:39,513 [DEBUG][       Thread-260150][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 15:55:39,513 [DEBUG][       Thread-260150][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 15:55:39,513 [DEBUG][       Thread-260150][   transport.py][1871] : client lang: <none>
2025-06-13 15:55:39,513 [DEBUG][       Thread-260150][   transport.py][1871] : server lang: <none>
2025-06-13 15:55:39,513 [DEBUG][       Thread-260150][   transport.py][1871] : kex follows: False
2025-06-13 15:55:39,513 [DEBUG][       Thread-260150][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 15:55:39,513 [DEBUG][       Thread-260150][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 15:55:39,513 [DEBUG][       Thread-260150][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 15:55:39,513 [DEBUG][       Thread-260150][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 15:55:39,513 [DEBUG][       Thread-260150][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 15:55:39,513 [DEBUG][       Thread-260150][   transport.py][1871] : Compression: none
2025-06-13 15:55:39,513 [DEBUG][       Thread-260150][   transport.py][1871] : === End of kex handshake ===
2025-06-13 15:55:39,529 [DEBUG][       Thread-260150][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 15:55:39,529 [DEBUG][       Thread-260150][   transport.py][1871] : Switch to new keys ...
2025-06-13 15:55:39,529 [DEBUG][       Thread-260150][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 15:55:39,529 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 15:55:39,529 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 15:55:39,529 [DEBUG][       Thread-260150][   transport.py][1871] : userauth is OK
2025-06-13 15:55:39,542 [ INFO][       Thread-260150][   transport.py][1871] : Authentication (password) successful!
2025-06-13 15:55:39,542 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 15:55:40,179 [DEBUG][       Thread-260150][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 15:55:40,179 [DEBUG][       Thread-260150][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 15:55:40,220 [DEBUG][       Thread-260150][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 15:55:40,220 [DEBUG][       Thread-260150][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 15:55:40,223 [DEBUG][       Thread-260150][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 15:55:40,234 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 15:55:40,234 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 15:55:40,235 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 15:55:40,236 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 15:55:40,239 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 15:55:40,240 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 15:55:40,240 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 15:55:40,240 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 15:55:40,240 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.579796 -999.00  +13.70  20.21     33   -2.20 1 1 1 1 1   887    0 15.52 -12.25 ----- 23.7 20.2 60.8 27.4 16.7 -31.8 15.9 -32.7 16.8 -31.4 17.8 -30.1
2025-06-13 15:55:40,240 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 15:55:40,240 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 15:55:40,240 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.579796
2025-06-13 15:55:40,240 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 15:55:40,240 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 15:55:40,240 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 15:55:40,240 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 15:55:40,240 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 15:55:40,241 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T15:55:26', tmtdew=18.2, humidity=28.21, cloud=0.0, wind=16.06, temperature=14.03, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T13:54:54.374', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 15:55:40,241 [DEBUG][       Thread-260150][   transport.py][1871] : EOF in transport thread
2025-06-13 15:55:40,315 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 15:55:40,326 [DEBUG][       Thread-260153][   transport.py][1871] : starting thread (client mode): 0x863caf80
2025-06-13 15:55:40,327 [DEBUG][       Thread-260153][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 15:55:40,342 [DEBUG][       Thread-260153][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 15:55:40,342 [ INFO][       Thread-260153][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 15:55:40,349 [DEBUG][       Thread-260153][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 15:55:40,349 [DEBUG][       Thread-260153][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 15:55:40,349 [DEBUG][       Thread-260153][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 15:55:40,349 [DEBUG][       Thread-260153][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:55:40,349 [DEBUG][       Thread-260153][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:55:40,349 [DEBUG][       Thread-260153][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:55:40,349 [DEBUG][       Thread-260153][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:55:40,349 [DEBUG][       Thread-260153][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 15:55:40,349 [DEBUG][       Thread-260153][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 15:55:40,349 [DEBUG][       Thread-260153][   transport.py][1871] : client lang: <none>
2025-06-13 15:55:40,349 [DEBUG][       Thread-260153][   transport.py][1871] : server lang: <none>
2025-06-13 15:55:40,349 [DEBUG][       Thread-260153][   transport.py][1871] : kex follows: False
2025-06-13 15:55:40,349 [DEBUG][       Thread-260153][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 15:55:40,350 [DEBUG][       Thread-260153][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 15:55:40,350 [DEBUG][       Thread-260153][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 15:55:40,350 [DEBUG][       Thread-260153][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 15:55:40,350 [DEBUG][       Thread-260153][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 15:55:40,350 [DEBUG][       Thread-260153][   transport.py][1871] : Compression: none
2025-06-13 15:55:40,350 [DEBUG][       Thread-260153][   transport.py][1871] : === End of kex handshake ===
2025-06-13 15:55:40,408 [DEBUG][       Thread-260153][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 15:55:40,408 [DEBUG][       Thread-260153][   transport.py][1871] : Switch to new keys ...
2025-06-13 15:55:40,408 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 15:55:40,409 [DEBUG][       Thread-260153][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 15:55:40,409 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 15:55:40,473 [DEBUG][       Thread-260153][   transport.py][1871] : userauth is OK
2025-06-13 15:55:40,473 [DEBUG][       Thread-260153][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 15:55:40,473 [DEBUG][       Thread-260153][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 15:55:40,473 [DEBUG][       Thread-260153][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 15:55:40,473 [DEBUG][       Thread-260153][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 15:55:40,487 [ INFO][       Thread-260153][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 15:55:40,487 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 15:55:40,487 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 15:55:41,474 [DEBUG][       Thread-260153][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 15:55:41,474 [DEBUG][       Thread-260153][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 15:55:41,523 [DEBUG][       Thread-260153][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 15:55:41,523 [DEBUG][       Thread-260153][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 15:55:41,531 [DEBUG][       Thread-260153][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 15:55:41,539 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 15:55:41,539 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 15:55:41,547 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 15:55:41,555 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 15:55:41,555 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 15:55:41,555 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 15:55:41,563 [DEBUG][       Thread-260153][   transport.py][1871] : EOF in transport thread
2025-06-13 15:55:47,046 [DEBUG][Thread-260155 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:55:51,563 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 15:55:51,564 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 15:55:51,564 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 15:55:51,567 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 15:55:52,029 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 15, 55, 26), 18.2, 28.21, 0.0, 16.06, 14.03, 0, 0, 0, 2, 0, 0),)
2025-06-13 15:55:52,029 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 15:55:26
2025-06-13 15:55:52,111 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 15:55:52,116 [DEBUG][       Thread-260156][   transport.py][1871] : starting thread (client mode): 0x867fde70
2025-06-13 15:55:52,116 [DEBUG][       Thread-260156][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 15:55:52,135 [DEBUG][       Thread-260156][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 15:55:52,135 [ INFO][       Thread-260156][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 15:55:52,137 [DEBUG][       Thread-260156][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 15:55:52,137 [DEBUG][       Thread-260156][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 15:55:52,137 [DEBUG][       Thread-260156][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 15:55:52,137 [DEBUG][       Thread-260156][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:55:52,137 [DEBUG][       Thread-260156][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:55:52,137 [DEBUG][       Thread-260156][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:55:52,137 [DEBUG][       Thread-260156][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:55:52,137 [DEBUG][       Thread-260156][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 15:55:52,137 [DEBUG][       Thread-260156][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 15:55:52,137 [DEBUG][       Thread-260156][   transport.py][1871] : client lang: <none>
2025-06-13 15:55:52,137 [DEBUG][       Thread-260156][   transport.py][1871] : server lang: <none>
2025-06-13 15:55:52,137 [DEBUG][       Thread-260156][   transport.py][1871] : kex follows: False
2025-06-13 15:55:52,138 [DEBUG][       Thread-260156][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 15:55:52,138 [DEBUG][       Thread-260156][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 15:55:52,138 [DEBUG][       Thread-260156][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 15:55:52,138 [DEBUG][       Thread-260156][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 15:55:52,138 [DEBUG][       Thread-260156][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 15:55:52,138 [DEBUG][       Thread-260156][   transport.py][1871] : Compression: none
2025-06-13 15:55:52,138 [DEBUG][       Thread-260156][   transport.py][1871] : === End of kex handshake ===
2025-06-13 15:55:52,149 [DEBUG][       Thread-260156][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 15:55:52,149 [DEBUG][       Thread-260156][   transport.py][1871] : Switch to new keys ...
2025-06-13 15:55:52,150 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 15:55:52,150 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 15:55:52,150 [DEBUG][       Thread-260156][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 15:55:52,151 [DEBUG][       Thread-260156][   transport.py][1871] : userauth is OK
2025-06-13 15:55:52,164 [ INFO][       Thread-260156][   transport.py][1871] : Authentication (password) successful!
2025-06-13 15:55:52,164 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 15:55:52,808 [DEBUG][       Thread-260156][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 15:55:52,808 [DEBUG][       Thread-260156][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 15:55:52,849 [DEBUG][       Thread-260156][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 15:55:52,849 [DEBUG][       Thread-260156][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 15:55:52,852 [DEBUG][       Thread-260156][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 15:55:52,863 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 15:55:52,864 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 15:55:52,866 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 15:55:52,867 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 15:55:52,873 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 15:55:52,875 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 15:55:52,876 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 15:55:52,876 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 15:55:52,876 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.580144 -999.00  +13.70  21.00     33   -2.10 1 1 1 1 1   887    0 15.49 -12.36 ----- 19.9 21.0 49.4 26.3 16.8 -31.6 15.9 -32.8 16.7 -31.5 17.8 -30.0
2025-06-13 15:55:52,877 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 15:55:52,877 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 15:55:52,877 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.580144
2025-06-13 15:55:52,877 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 15:55:52,878 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 15:55:52,878 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 15:55:52,878 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 15:55:52,878 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 15:55:52,878 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T15:55:26', tmtdew=18.2, humidity=28.21, cloud=0.0, wind=16.06, temperature=14.03, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T13:55:24.442', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 15:55:52,879 [DEBUG][       Thread-260156][   transport.py][1871] : EOF in transport thread
2025-06-13 15:55:52,962 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 15:55:52,971 [DEBUG][       Thread-260159][   transport.py][1871] : starting thread (client mode): 0x867b71c0
2025-06-13 15:55:52,971 [DEBUG][       Thread-260159][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 15:55:52,994 [DEBUG][       Thread-260159][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 15:55:52,994 [ INFO][       Thread-260159][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 15:55:53,006 [DEBUG][       Thread-260159][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 15:55:53,006 [DEBUG][       Thread-260159][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 15:55:53,007 [DEBUG][       Thread-260159][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 15:55:53,007 [DEBUG][       Thread-260159][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:55:53,007 [DEBUG][       Thread-260159][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:55:53,007 [DEBUG][       Thread-260159][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:55:53,007 [DEBUG][       Thread-260159][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:55:53,007 [DEBUG][       Thread-260159][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 15:55:53,007 [DEBUG][       Thread-260159][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 15:55:53,007 [DEBUG][       Thread-260159][   transport.py][1871] : client lang: <none>
2025-06-13 15:55:53,007 [DEBUG][       Thread-260159][   transport.py][1871] : server lang: <none>
2025-06-13 15:55:53,007 [DEBUG][       Thread-260159][   transport.py][1871] : kex follows: False
2025-06-13 15:55:53,007 [DEBUG][       Thread-260159][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 15:55:53,007 [DEBUG][       Thread-260159][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 15:55:53,007 [DEBUG][       Thread-260159][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 15:55:53,007 [DEBUG][       Thread-260159][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 15:55:53,007 [DEBUG][       Thread-260159][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 15:55:53,007 [DEBUG][       Thread-260159][   transport.py][1871] : Compression: none
2025-06-13 15:55:53,008 [DEBUG][       Thread-260159][   transport.py][1871] : === End of kex handshake ===
2025-06-13 15:55:53,066 [DEBUG][       Thread-260159][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 15:55:53,067 [DEBUG][       Thread-260159][   transport.py][1871] : Switch to new keys ...
2025-06-13 15:55:53,067 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 15:55:53,068 [DEBUG][       Thread-260159][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 15:55:53,069 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 15:55:53,123 [DEBUG][       Thread-260159][   transport.py][1871] : userauth is OK
2025-06-13 15:55:53,124 [DEBUG][       Thread-260159][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 15:55:53,124 [DEBUG][       Thread-260159][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 15:55:53,124 [DEBUG][       Thread-260159][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 15:55:53,124 [DEBUG][       Thread-260159][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 15:55:53,145 [ INFO][       Thread-260159][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 15:55:53,145 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 15:55:53,146 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 15:55:54,166 [DEBUG][       Thread-260159][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 15:55:54,166 [DEBUG][       Thread-260159][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 15:55:54,215 [DEBUG][       Thread-260159][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 15:55:54,216 [DEBUG][       Thread-260159][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 15:55:54,224 [DEBUG][       Thread-260159][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 15:55:54,233 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 15:55:54,233 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 15:55:54,241 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 15:55:54,250 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 15:55:54,250 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 15:55:54,251 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 15:55:54,258 [DEBUG][       Thread-260159][   transport.py][1871] : EOF in transport thread
2025-06-13 15:55:56,078 [DEBUG][Thread-260161 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:56:04,261 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 15:56:04,262 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 15:56:04,262 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 15:56:04,264 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 15:56:04,729 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 15, 55, 58), 18.17, 28.28, 0.0, 17.42, 14.09, 0, 0, 0, 2, 0, 0),)
2025-06-13 15:56:04,729 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 15:55:58
2025-06-13 15:56:04,811 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 15:56:04,815 [DEBUG][       Thread-260162][   transport.py][1871] : starting thread (client mode): 0x86391de0
2025-06-13 15:56:04,815 [DEBUG][       Thread-260162][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 15:56:04,835 [DEBUG][       Thread-260162][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 15:56:04,835 [ INFO][       Thread-260162][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 15:56:04,837 [DEBUG][       Thread-260162][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 15:56:04,837 [DEBUG][       Thread-260162][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 15:56:04,837 [DEBUG][       Thread-260162][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 15:56:04,837 [DEBUG][       Thread-260162][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:56:04,837 [DEBUG][       Thread-260162][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:56:04,837 [DEBUG][       Thread-260162][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:56:04,837 [DEBUG][       Thread-260162][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:56:04,837 [DEBUG][       Thread-260162][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 15:56:04,837 [DEBUG][       Thread-260162][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 15:56:04,837 [DEBUG][       Thread-260162][   transport.py][1871] : client lang: <none>
2025-06-13 15:56:04,837 [DEBUG][       Thread-260162][   transport.py][1871] : server lang: <none>
2025-06-13 15:56:04,837 [DEBUG][       Thread-260162][   transport.py][1871] : kex follows: False
2025-06-13 15:56:04,837 [DEBUG][       Thread-260162][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 15:56:04,837 [DEBUG][       Thread-260162][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 15:56:04,837 [DEBUG][       Thread-260162][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 15:56:04,837 [DEBUG][       Thread-260162][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 15:56:04,837 [DEBUG][       Thread-260162][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 15:56:04,837 [DEBUG][       Thread-260162][   transport.py][1871] : Compression: none
2025-06-13 15:56:04,837 [DEBUG][       Thread-260162][   transport.py][1871] : === End of kex handshake ===
2025-06-13 15:56:04,845 [DEBUG][       Thread-260162][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 15:56:04,845 [DEBUG][       Thread-260162][   transport.py][1871] : Switch to new keys ...
2025-06-13 15:56:04,846 [DEBUG][       Thread-260162][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 15:56:04,846 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 15:56:04,846 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 15:56:04,847 [DEBUG][       Thread-260162][   transport.py][1871] : userauth is OK
2025-06-13 15:56:04,871 [ INFO][       Thread-260162][   transport.py][1871] : Authentication (password) successful!
2025-06-13 15:56:04,872 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 15:56:05,102 [DEBUG][Thread-260164 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:56:05,497 [DEBUG][       Thread-260162][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 15:56:05,497 [DEBUG][       Thread-260162][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 15:56:05,545 [DEBUG][       Thread-260162][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 15:56:05,545 [DEBUG][       Thread-260162][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 15:56:05,549 [DEBUG][       Thread-260162][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 15:56:05,561 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 15:56:05,562 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 15:56:05,564 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 15:56:05,566 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 15:56:05,572 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 15:56:05,574 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 15:56:05,574 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 15:56:05,575 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 15:56:05,575 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.580144 -999.00  +13.70  21.00     33   -2.10 1 1 1 1 1   887    0 15.49 -12.36 ----- 19.9 21.0 49.4 26.3 16.8 -31.6 15.9 -32.8 16.7 -31.5 17.8 -30.0
2025-06-13 15:56:05,575 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 15:56:05,575 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 15:56:05,576 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.580144
2025-06-13 15:56:05,576 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 15:56:05,577 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 15:56:05,577 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 15:56:05,577 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 15:56:05,577 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 15:56:05,577 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T15:55:58', tmtdew=18.17, humidity=28.28, cloud=0.0, wind=17.42, temperature=14.09, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T13:55:24.442', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 15:56:05,578 [DEBUG][       Thread-260162][   transport.py][1871] : EOF in transport thread
2025-06-13 15:56:05,660 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 15:56:05,671 [DEBUG][       Thread-260166][   transport.py][1871] : starting thread (client mode): 0x867fcd30
2025-06-13 15:56:05,671 [DEBUG][       Thread-260166][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 15:56:05,690 [DEBUG][       Thread-260166][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 15:56:05,690 [ INFO][       Thread-260166][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 15:56:05,698 [DEBUG][       Thread-260166][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 15:56:05,698 [DEBUG][       Thread-260166][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 15:56:05,698 [DEBUG][       Thread-260166][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 15:56:05,699 [DEBUG][       Thread-260166][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:56:05,699 [DEBUG][       Thread-260166][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:56:05,699 [DEBUG][       Thread-260166][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:56:05,699 [DEBUG][       Thread-260166][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:56:05,699 [DEBUG][       Thread-260166][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 15:56:05,699 [DEBUG][       Thread-260166][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 15:56:05,699 [DEBUG][       Thread-260166][   transport.py][1871] : client lang: <none>
2025-06-13 15:56:05,699 [DEBUG][       Thread-260166][   transport.py][1871] : server lang: <none>
2025-06-13 15:56:05,699 [DEBUG][       Thread-260166][   transport.py][1871] : kex follows: False
2025-06-13 15:56:05,699 [DEBUG][       Thread-260166][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 15:56:05,699 [DEBUG][       Thread-260166][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 15:56:05,699 [DEBUG][       Thread-260166][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 15:56:05,699 [DEBUG][       Thread-260166][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 15:56:05,699 [DEBUG][       Thread-260166][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 15:56:05,699 [DEBUG][       Thread-260166][   transport.py][1871] : Compression: none
2025-06-13 15:56:05,699 [DEBUG][       Thread-260166][   transport.py][1871] : === End of kex handshake ===
2025-06-13 15:56:05,758 [DEBUG][       Thread-260166][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 15:56:05,759 [DEBUG][       Thread-260166][   transport.py][1871] : Switch to new keys ...
2025-06-13 15:56:05,759 [DEBUG][       Thread-260166][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 15:56:05,760 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 15:56:05,761 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 15:56:05,814 [DEBUG][       Thread-260166][   transport.py][1871] : userauth is OK
2025-06-13 15:56:05,814 [DEBUG][       Thread-260166][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 15:56:05,814 [DEBUG][       Thread-260166][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 15:56:05,815 [DEBUG][       Thread-260166][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 15:56:05,815 [DEBUG][       Thread-260166][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 15:56:05,833 [ INFO][       Thread-260166][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 15:56:05,833 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 15:56:05,834 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 15:56:06,825 [DEBUG][       Thread-260166][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 15:56:06,825 [DEBUG][       Thread-260166][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 15:56:06,878 [DEBUG][       Thread-260166][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 15:56:06,878 [DEBUG][       Thread-260166][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 15:56:06,890 [DEBUG][       Thread-260166][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 15:56:06,899 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 15:56:06,900 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 15:56:06,909 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 15:56:06,918 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 15:56:06,918 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 15:56:06,919 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 15:56:06,927 [DEBUG][       Thread-260166][   transport.py][1871] : EOF in transport thread
2025-06-13 15:56:13,243 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:56:13,244 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:56:14,126 [DEBUG][Thread-260168 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:56:16,929 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 15:56:16,929 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 15:56:16,929 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 15:56:16,932 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 15:56:17,393 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 15, 55, 58), 18.17, 28.28, 0.0, 17.42, 14.09, 0, 0, 0, 2, 0, 0),)
2025-06-13 15:56:17,393 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 15:55:58
2025-06-13 15:56:17,475 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 15:56:17,481 [DEBUG][       Thread-260169][   transport.py][1871] : starting thread (client mode): 0x863683a0
2025-06-13 15:56:17,481 [DEBUG][       Thread-260169][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 15:56:17,501 [DEBUG][       Thread-260169][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 15:56:17,501 [ INFO][       Thread-260169][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 15:56:17,503 [DEBUG][       Thread-260169][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 15:56:17,503 [DEBUG][       Thread-260169][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 15:56:17,503 [DEBUG][       Thread-260169][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 15:56:17,503 [DEBUG][       Thread-260169][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:56:17,503 [DEBUG][       Thread-260169][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:56:17,503 [DEBUG][       Thread-260169][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:56:17,503 [DEBUG][       Thread-260169][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:56:17,503 [DEBUG][       Thread-260169][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 15:56:17,503 [DEBUG][       Thread-260169][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 15:56:17,503 [DEBUG][       Thread-260169][   transport.py][1871] : client lang: <none>
2025-06-13 15:56:17,503 [DEBUG][       Thread-260169][   transport.py][1871] : server lang: <none>
2025-06-13 15:56:17,503 [DEBUG][       Thread-260169][   transport.py][1871] : kex follows: False
2025-06-13 15:56:17,504 [DEBUG][       Thread-260169][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 15:56:17,504 [DEBUG][       Thread-260169][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 15:56:17,504 [DEBUG][       Thread-260169][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 15:56:17,504 [DEBUG][       Thread-260169][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 15:56:17,504 [DEBUG][       Thread-260169][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 15:56:17,504 [DEBUG][       Thread-260169][   transport.py][1871] : Compression: none
2025-06-13 15:56:17,504 [DEBUG][       Thread-260169][   transport.py][1871] : === End of kex handshake ===
2025-06-13 15:56:17,517 [DEBUG][       Thread-260169][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 15:56:17,517 [DEBUG][       Thread-260169][   transport.py][1871] : Switch to new keys ...
2025-06-13 15:56:17,518 [DEBUG][       Thread-260169][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 15:56:17,518 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 15:56:17,518 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 15:56:17,519 [DEBUG][       Thread-260169][   transport.py][1871] : userauth is OK
2025-06-13 15:56:17,543 [ INFO][       Thread-260169][   transport.py][1871] : Authentication (password) successful!
2025-06-13 15:56:17,544 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 15:56:18,159 [DEBUG][       Thread-260169][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 15:56:18,159 [DEBUG][       Thread-260169][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 15:56:18,201 [DEBUG][       Thread-260169][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 15:56:18,201 [DEBUG][       Thread-260169][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 15:56:18,203 [DEBUG][       Thread-260169][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 15:56:18,216 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 15:56:18,216 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 15:56:18,217 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 15:56:18,219 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 15:56:18,222 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 15:56:18,223 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 15:56:18,223 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 15:56:18,223 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 15:56:18,223 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.580144 -999.00  +13.70  21.00     33   -2.10 1 1 1 1 1   887    0 15.49 -12.36 ----- 19.9 21.0 49.4 26.3 16.8 -31.6 15.9 -32.8 16.7 -31.5 17.8 -30.0
2025-06-13 15:56:18,223 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 15:56:18,223 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 15:56:18,223 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.580144
2025-06-13 15:56:18,223 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 15:56:18,223 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 15:56:18,223 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 15:56:18,223 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 15:56:18,223 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 15:56:18,223 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T15:55:58', tmtdew=18.17, humidity=28.28, cloud=0.0, wind=17.42, temperature=14.09, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T13:55:24.442', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 15:56:18,224 [DEBUG][       Thread-260169][   transport.py][1871] : EOF in transport thread
2025-06-13 15:56:18,296 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 15:56:18,308 [DEBUG][       Thread-260172][   transport.py][1871] : starting thread (client mode): 0x867b74c0
2025-06-13 15:56:18,308 [DEBUG][       Thread-260172][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 15:56:18,322 [DEBUG][       Thread-260172][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 15:56:18,322 [ INFO][       Thread-260172][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 15:56:18,330 [DEBUG][       Thread-260172][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 15:56:18,330 [DEBUG][       Thread-260172][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 15:56:18,330 [DEBUG][       Thread-260172][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 15:56:18,330 [DEBUG][       Thread-260172][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:56:18,330 [DEBUG][       Thread-260172][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:56:18,330 [DEBUG][       Thread-260172][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:56:18,330 [DEBUG][       Thread-260172][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:56:18,330 [DEBUG][       Thread-260172][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 15:56:18,330 [DEBUG][       Thread-260172][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 15:56:18,330 [DEBUG][       Thread-260172][   transport.py][1871] : client lang: <none>
2025-06-13 15:56:18,330 [DEBUG][       Thread-260172][   transport.py][1871] : server lang: <none>
2025-06-13 15:56:18,330 [DEBUG][       Thread-260172][   transport.py][1871] : kex follows: False
2025-06-13 15:56:18,330 [DEBUG][       Thread-260172][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 15:56:18,330 [DEBUG][       Thread-260172][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 15:56:18,330 [DEBUG][       Thread-260172][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 15:56:18,330 [DEBUG][       Thread-260172][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 15:56:18,330 [DEBUG][       Thread-260172][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 15:56:18,330 [DEBUG][       Thread-260172][   transport.py][1871] : Compression: none
2025-06-13 15:56:18,330 [DEBUG][       Thread-260172][   transport.py][1871] : === End of kex handshake ===
2025-06-13 15:56:18,393 [DEBUG][       Thread-260172][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 15:56:18,394 [DEBUG][       Thread-260172][   transport.py][1871] : Switch to new keys ...
2025-06-13 15:56:18,394 [DEBUG][       Thread-260172][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 15:56:18,394 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 15:56:18,394 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 15:56:18,449 [DEBUG][       Thread-260172][   transport.py][1871] : userauth is OK
2025-06-13 15:56:18,449 [DEBUG][       Thread-260172][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 15:56:18,449 [DEBUG][       Thread-260172][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 15:56:18,449 [DEBUG][       Thread-260172][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 15:56:18,449 [DEBUG][       Thread-260172][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 15:56:18,463 [ INFO][       Thread-260172][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 15:56:18,463 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 15:56:18,463 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 15:56:19,437 [DEBUG][       Thread-260172][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 15:56:19,437 [DEBUG][       Thread-260172][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 15:56:19,487 [DEBUG][       Thread-260172][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 15:56:19,487 [DEBUG][       Thread-260172][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 15:56:19,495 [DEBUG][       Thread-260172][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 15:56:19,503 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 15:56:19,503 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 15:56:19,504 [DEBUG][Thread-260174 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:56:19,511 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 15:56:19,519 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 15:56:19,519 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 15:56:19,519 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 15:56:19,527 [DEBUG][       Thread-260172][   transport.py][1871] : EOF in transport thread
2025-06-13 15:56:20,541 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:56:20,541 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:56:22,201 [DEBUG][Thread-260175 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:56:23,165 [DEBUG][Thread-260176 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:56:29,530 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 15:56:29,530 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 15:56:29,530 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 15:56:29,533 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 15:56:30,004 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 15, 55, 58), 18.17, 28.28, 0.0, 17.42, 14.09, 0, 0, 0, 2, 0, 0),)
2025-06-13 15:56:30,004 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 15:55:58
2025-06-13 15:56:30,086 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 15:56:30,091 [DEBUG][       Thread-260177][   transport.py][1871] : starting thread (client mode): 0x8636b490
2025-06-13 15:56:30,091 [DEBUG][       Thread-260177][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 15:56:30,110 [DEBUG][       Thread-260177][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 15:56:30,110 [ INFO][       Thread-260177][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 15:56:30,114 [DEBUG][       Thread-260177][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 15:56:30,114 [DEBUG][       Thread-260177][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 15:56:30,114 [DEBUG][       Thread-260177][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 15:56:30,114 [DEBUG][       Thread-260177][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:56:30,114 [DEBUG][       Thread-260177][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:56:30,114 [DEBUG][       Thread-260177][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:56:30,114 [DEBUG][       Thread-260177][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:56:30,114 [DEBUG][       Thread-260177][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 15:56:30,114 [DEBUG][       Thread-260177][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 15:56:30,114 [DEBUG][       Thread-260177][   transport.py][1871] : client lang: <none>
2025-06-13 15:56:30,114 [DEBUG][       Thread-260177][   transport.py][1871] : server lang: <none>
2025-06-13 15:56:30,114 [DEBUG][       Thread-260177][   transport.py][1871] : kex follows: False
2025-06-13 15:56:30,114 [DEBUG][       Thread-260177][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 15:56:30,114 [DEBUG][       Thread-260177][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 15:56:30,114 [DEBUG][       Thread-260177][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 15:56:30,114 [DEBUG][       Thread-260177][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 15:56:30,114 [DEBUG][       Thread-260177][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 15:56:30,114 [DEBUG][       Thread-260177][   transport.py][1871] : Compression: none
2025-06-13 15:56:30,114 [DEBUG][       Thread-260177][   transport.py][1871] : === End of kex handshake ===
2025-06-13 15:56:30,130 [DEBUG][       Thread-260177][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 15:56:30,131 [DEBUG][       Thread-260177][   transport.py][1871] : Switch to new keys ...
2025-06-13 15:56:30,131 [DEBUG][       Thread-260177][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 15:56:30,131 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 15:56:30,132 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 15:56:30,133 [DEBUG][       Thread-260177][   transport.py][1871] : userauth is OK
2025-06-13 15:56:30,146 [ INFO][       Thread-260177][   transport.py][1871] : Authentication (password) successful!
2025-06-13 15:56:30,147 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 15:56:30,772 [DEBUG][       Thread-260177][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 15:56:30,772 [DEBUG][       Thread-260177][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 15:56:30,816 [DEBUG][       Thread-260177][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 15:56:30,816 [DEBUG][       Thread-260177][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 15:56:30,819 [DEBUG][       Thread-260177][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 15:56:30,830 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 15:56:30,831 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 15:56:30,831 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 15:56:30,832 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 15:56:30,834 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 15:56:30,835 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 15:56:30,835 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 15:56:30,835 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 15:56:30,835 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.580491 -999.00  +13.80  17.93     33   -2.00 1 1 1 1 1   887    0 15.44 -13.13 ----- 17.4 17.9 32.6 20.9 16.8 -31.5 15.9 -32.4 16.9 -31.2 17.9 -29.8
2025-06-13 15:56:30,835 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 15:56:30,835 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 15:56:30,835 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.580491
2025-06-13 15:56:30,835 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 15:56:30,835 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 15:56:30,835 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 15:56:30,835 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 15:56:30,835 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 15:56:30,835 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T15:55:58', tmtdew=18.17, humidity=28.28, cloud=0.0, wind=17.42, temperature=14.09, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T13:55:54.422', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 15:56:30,836 [DEBUG][       Thread-260177][   transport.py][1871] : EOF in transport thread
2025-06-13 15:56:30,910 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 15:56:30,919 [DEBUG][       Thread-260180][   transport.py][1871] : starting thread (client mode): 0x863923e0
2025-06-13 15:56:30,919 [DEBUG][       Thread-260180][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 15:56:30,934 [DEBUG][       Thread-260180][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 15:56:30,934 [ INFO][       Thread-260180][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 15:56:30,947 [DEBUG][       Thread-260180][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 15:56:30,947 [DEBUG][       Thread-260180][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 15:56:30,947 [DEBUG][       Thread-260180][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 15:56:30,947 [DEBUG][       Thread-260180][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:56:30,947 [DEBUG][       Thread-260180][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:56:30,947 [DEBUG][       Thread-260180][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:56:30,947 [DEBUG][       Thread-260180][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:56:30,947 [DEBUG][       Thread-260180][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 15:56:30,947 [DEBUG][       Thread-260180][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 15:56:30,947 [DEBUG][       Thread-260180][   transport.py][1871] : client lang: <none>
2025-06-13 15:56:30,947 [DEBUG][       Thread-260180][   transport.py][1871] : server lang: <none>
2025-06-13 15:56:30,947 [DEBUG][       Thread-260180][   transport.py][1871] : kex follows: False
2025-06-13 15:56:30,947 [DEBUG][       Thread-260180][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 15:56:30,947 [DEBUG][       Thread-260180][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 15:56:30,947 [DEBUG][       Thread-260180][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 15:56:30,947 [DEBUG][       Thread-260180][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 15:56:30,947 [DEBUG][       Thread-260180][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 15:56:30,947 [DEBUG][       Thread-260180][   transport.py][1871] : Compression: none
2025-06-13 15:56:30,947 [DEBUG][       Thread-260180][   transport.py][1871] : === End of kex handshake ===
2025-06-13 15:56:31,005 [DEBUG][       Thread-260180][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 15:56:31,005 [DEBUG][       Thread-260180][   transport.py][1871] : Switch to new keys ...
2025-06-13 15:56:31,005 [DEBUG][       Thread-260180][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 15:56:31,005 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 15:56:31,005 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 15:56:31,061 [DEBUG][       Thread-260180][   transport.py][1871] : userauth is OK
2025-06-13 15:56:31,061 [DEBUG][       Thread-260180][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 15:56:31,061 [DEBUG][       Thread-260180][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 15:56:31,061 [DEBUG][       Thread-260180][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 15:56:31,061 [DEBUG][       Thread-260180][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 15:56:31,075 [ INFO][       Thread-260180][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 15:56:31,075 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 15:56:31,075 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 15:56:32,081 [DEBUG][       Thread-260180][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 15:56:32,081 [DEBUG][       Thread-260180][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 15:56:32,131 [DEBUG][       Thread-260180][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 15:56:32,131 [DEBUG][       Thread-260180][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 15:56:32,140 [DEBUG][       Thread-260180][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 15:56:32,149 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 15:56:32,149 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 15:56:32,158 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 15:56:32,166 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 15:56:32,166 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 15:56:32,166 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 15:56:32,174 [DEBUG][       Thread-260180][   transport.py][1871] : EOF in transport thread
2025-06-13 15:56:32,186 [DEBUG][Thread-260182 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:56:41,207 [DEBUG][Thread-260183 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:56:42,177 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 15:56:42,177 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 15:56:42,177 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 15:56:42,180 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 15:56:42,640 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 15, 56, 30), 18.22, 28.05, 0.0, 18.24, 14.14, 0, 0, 0, 2, 0, 0),)
2025-06-13 15:56:42,640 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 15:56:30
2025-06-13 15:56:42,721 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 15:56:42,726 [DEBUG][       Thread-260184][   transport.py][1871] : starting thread (client mode): 0x86351cf0
2025-06-13 15:56:42,726 [DEBUG][       Thread-260184][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 15:56:42,746 [DEBUG][       Thread-260184][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 15:56:42,747 [ INFO][       Thread-260184][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 15:56:42,748 [DEBUG][       Thread-260184][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 15:56:42,748 [DEBUG][       Thread-260184][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 15:56:42,748 [DEBUG][       Thread-260184][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 15:56:42,748 [DEBUG][       Thread-260184][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:56:42,748 [DEBUG][       Thread-260184][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:56:42,748 [DEBUG][       Thread-260184][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:56:42,748 [DEBUG][       Thread-260184][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:56:42,749 [DEBUG][       Thread-260184][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 15:56:42,749 [DEBUG][       Thread-260184][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 15:56:42,749 [DEBUG][       Thread-260184][   transport.py][1871] : client lang: <none>
2025-06-13 15:56:42,749 [DEBUG][       Thread-260184][   transport.py][1871] : server lang: <none>
2025-06-13 15:56:42,749 [DEBUG][       Thread-260184][   transport.py][1871] : kex follows: False
2025-06-13 15:56:42,749 [DEBUG][       Thread-260184][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 15:56:42,749 [DEBUG][       Thread-260184][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 15:56:42,749 [DEBUG][       Thread-260184][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 15:56:42,749 [DEBUG][       Thread-260184][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 15:56:42,749 [DEBUG][       Thread-260184][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 15:56:42,749 [DEBUG][       Thread-260184][   transport.py][1871] : Compression: none
2025-06-13 15:56:42,749 [DEBUG][       Thread-260184][   transport.py][1871] : === End of kex handshake ===
2025-06-13 15:56:42,759 [DEBUG][       Thread-260184][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 15:56:42,760 [DEBUG][       Thread-260184][   transport.py][1871] : Switch to new keys ...
2025-06-13 15:56:42,760 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 15:56:42,760 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 15:56:42,761 [DEBUG][       Thread-260184][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 15:56:42,761 [DEBUG][       Thread-260184][   transport.py][1871] : userauth is OK
2025-06-13 15:56:42,774 [ INFO][       Thread-260184][   transport.py][1871] : Authentication (password) successful!
2025-06-13 15:56:42,775 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 15:56:43,423 [DEBUG][       Thread-260184][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 15:56:43,423 [DEBUG][       Thread-260184][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 15:56:43,465 [DEBUG][       Thread-260184][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 15:56:43,465 [DEBUG][       Thread-260184][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 15:56:43,469 [DEBUG][       Thread-260184][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 15:56:43,481 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 15:56:43,481 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 15:56:43,483 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 15:56:43,485 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 15:56:43,490 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 15:56:43,492 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 15:56:43,492 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 15:56:43,493 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 15:56:43,493 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.580491 -999.00  +13.80  17.93     33   -2.00 1 1 1 1 1   887    0 15.44 -13.13 ----- 17.4 17.9 32.6 20.9 16.8 -31.5 15.9 -32.4 16.9 -31.2 17.9 -29.8
2025-06-13 15:56:43,493 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 15:56:43,493 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 15:56:43,493 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.580491
2025-06-13 15:56:43,493 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 15:56:43,494 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 15:56:43,494 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 15:56:43,494 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 15:56:43,494 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 15:56:43,494 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T15:56:30', tmtdew=18.22, humidity=28.05, cloud=0.0, wind=18.24, temperature=14.14, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T13:55:54.422', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 15:56:43,495 [DEBUG][       Thread-260184][   transport.py][1871] : EOF in transport thread
2025-06-13 15:56:43,579 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 15:56:43,591 [DEBUG][       Thread-260187][   transport.py][1871] : starting thread (client mode): 0x863efbe0
2025-06-13 15:56:43,591 [DEBUG][       Thread-260187][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 15:56:43,611 [DEBUG][       Thread-260187][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 15:56:43,611 [ INFO][       Thread-260187][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 15:56:43,618 [DEBUG][       Thread-260187][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 15:56:43,619 [DEBUG][       Thread-260187][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 15:56:43,619 [DEBUG][       Thread-260187][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 15:56:43,619 [DEBUG][       Thread-260187][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:56:43,619 [DEBUG][       Thread-260187][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:56:43,619 [DEBUG][       Thread-260187][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:56:43,619 [DEBUG][       Thread-260187][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:56:43,619 [DEBUG][       Thread-260187][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 15:56:43,619 [DEBUG][       Thread-260187][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 15:56:43,619 [DEBUG][       Thread-260187][   transport.py][1871] : client lang: <none>
2025-06-13 15:56:43,619 [DEBUG][       Thread-260187][   transport.py][1871] : server lang: <none>
2025-06-13 15:56:43,619 [DEBUG][       Thread-260187][   transport.py][1871] : kex follows: False
2025-06-13 15:56:43,619 [DEBUG][       Thread-260187][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 15:56:43,619 [DEBUG][       Thread-260187][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 15:56:43,619 [DEBUG][       Thread-260187][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 15:56:43,619 [DEBUG][       Thread-260187][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 15:56:43,619 [DEBUG][       Thread-260187][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 15:56:43,620 [DEBUG][       Thread-260187][   transport.py][1871] : Compression: none
2025-06-13 15:56:43,620 [DEBUG][       Thread-260187][   transport.py][1871] : === End of kex handshake ===
2025-06-13 15:56:43,678 [DEBUG][       Thread-260187][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 15:56:43,679 [DEBUG][       Thread-260187][   transport.py][1871] : Switch to new keys ...
2025-06-13 15:56:43,679 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 15:56:43,680 [DEBUG][       Thread-260187][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 15:56:43,681 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 15:56:43,734 [DEBUG][       Thread-260187][   transport.py][1871] : userauth is OK
2025-06-13 15:56:43,734 [DEBUG][       Thread-260187][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 15:56:43,734 [DEBUG][       Thread-260187][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 15:56:43,735 [DEBUG][       Thread-260187][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 15:56:43,735 [DEBUG][       Thread-260187][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 15:56:43,753 [ INFO][       Thread-260187][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 15:56:43,754 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 15:56:43,754 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 15:56:44,758 [DEBUG][       Thread-260187][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 15:56:44,758 [DEBUG][       Thread-260187][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 15:56:44,813 [DEBUG][       Thread-260187][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 15:56:44,813 [DEBUG][       Thread-260187][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 15:56:44,828 [DEBUG][       Thread-260187][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 15:56:44,837 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 15:56:44,837 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 15:56:44,846 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 15:56:44,856 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 15:56:44,856 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 15:56:44,856 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 15:56:44,864 [DEBUG][       Thread-260187][   transport.py][1871] : EOF in transport thread
2025-06-13 15:56:50,229 [DEBUG][Thread-260189 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:56:54,867 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 15:56:54,867 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 15:56:54,867 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 15:56:54,870 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 15:56:55,326 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 15, 56, 30), 18.22, 28.05, 0.0, 18.24, 14.14, 0, 0, 0, 2, 0, 0),)
2025-06-13 15:56:55,326 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 15:56:30
2025-06-13 15:56:55,407 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 15:56:55,411 [DEBUG][       Thread-260190][   transport.py][1871] : starting thread (client mode): 0x867fcd30
2025-06-13 15:56:55,411 [DEBUG][       Thread-260190][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 15:56:55,433 [DEBUG][       Thread-260190][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 15:56:55,433 [ INFO][       Thread-260190][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 15:56:55,436 [DEBUG][       Thread-260190][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 15:56:55,436 [DEBUG][       Thread-260190][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 15:56:55,436 [DEBUG][       Thread-260190][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 15:56:55,436 [DEBUG][       Thread-260190][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:56:55,436 [DEBUG][       Thread-260190][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:56:55,436 [DEBUG][       Thread-260190][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:56:55,437 [DEBUG][       Thread-260190][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:56:55,437 [DEBUG][       Thread-260190][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 15:56:55,437 [DEBUG][       Thread-260190][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 15:56:55,437 [DEBUG][       Thread-260190][   transport.py][1871] : client lang: <none>
2025-06-13 15:56:55,437 [DEBUG][       Thread-260190][   transport.py][1871] : server lang: <none>
2025-06-13 15:56:55,437 [DEBUG][       Thread-260190][   transport.py][1871] : kex follows: False
2025-06-13 15:56:55,437 [DEBUG][       Thread-260190][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 15:56:55,437 [DEBUG][       Thread-260190][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 15:56:55,437 [DEBUG][       Thread-260190][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 15:56:55,437 [DEBUG][       Thread-260190][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 15:56:55,437 [DEBUG][       Thread-260190][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 15:56:55,437 [DEBUG][       Thread-260190][   transport.py][1871] : Compression: none
2025-06-13 15:56:55,437 [DEBUG][       Thread-260190][   transport.py][1871] : === End of kex handshake ===
2025-06-13 15:56:55,453 [DEBUG][       Thread-260190][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 15:56:55,454 [DEBUG][       Thread-260190][   transport.py][1871] : Switch to new keys ...
2025-06-13 15:56:55,454 [DEBUG][       Thread-260190][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 15:56:55,454 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 15:56:55,455 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 15:56:55,456 [DEBUG][       Thread-260190][   transport.py][1871] : userauth is OK
2025-06-13 15:56:55,480 [ INFO][       Thread-260190][   transport.py][1871] : Authentication (password) successful!
2025-06-13 15:56:55,481 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 15:56:56,071 [DEBUG][       Thread-260190][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 15:56:56,071 [DEBUG][       Thread-260190][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 15:56:56,113 [DEBUG][       Thread-260190][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 15:56:56,113 [DEBUG][       Thread-260190][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 15:56:56,116 [DEBUG][       Thread-260190][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 15:56:56,131 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 15:56:56,131 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 15:56:56,134 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 15:56:56,136 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 15:56:56,143 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 15:56:56,145 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 15:56:56,145 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 15:56:56,146 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 15:56:56,146 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.580491 -999.00  +13.80  17.93     33   -2.00 1 1 1 1 1   887    0 15.44 -13.13 ----- 17.4 17.9 32.6 20.9 16.8 -31.5 15.9 -32.4 16.9 -31.2 17.9 -29.8
2025-06-13 15:56:56,146 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 15:56:56,146 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 15:56:56,146 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.580491
2025-06-13 15:56:56,147 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 15:56:56,147 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 15:56:56,148 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 15:56:56,148 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 15:56:56,148 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 15:56:56,148 [DEBUG][       Thread-260190][   transport.py][1871] : EOF in transport thread
2025-06-13 15:56:56,148 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T15:56:30', tmtdew=18.22, humidity=28.05, cloud=0.0, wind=18.24, temperature=14.14, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T13:55:54.422', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 15:56:56,233 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 15:56:56,242 [DEBUG][       Thread-260193][   transport.py][1871] : starting thread (client mode): 0x863efbe0
2025-06-13 15:56:56,242 [DEBUG][       Thread-260193][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 15:56:56,257 [DEBUG][       Thread-260193][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 15:56:56,257 [ INFO][       Thread-260193][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 15:56:56,264 [DEBUG][       Thread-260193][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 15:56:56,265 [DEBUG][       Thread-260193][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 15:56:56,265 [DEBUG][       Thread-260193][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 15:56:56,265 [DEBUG][       Thread-260193][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:56:56,265 [DEBUG][       Thread-260193][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:56:56,265 [DEBUG][       Thread-260193][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:56:56,265 [DEBUG][       Thread-260193][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:56:56,265 [DEBUG][       Thread-260193][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 15:56:56,265 [DEBUG][       Thread-260193][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 15:56:56,265 [DEBUG][       Thread-260193][   transport.py][1871] : client lang: <none>
2025-06-13 15:56:56,265 [DEBUG][       Thread-260193][   transport.py][1871] : server lang: <none>
2025-06-13 15:56:56,265 [DEBUG][       Thread-260193][   transport.py][1871] : kex follows: False
2025-06-13 15:56:56,265 [DEBUG][       Thread-260193][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 15:56:56,265 [DEBUG][       Thread-260193][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 15:56:56,265 [DEBUG][       Thread-260193][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 15:56:56,265 [DEBUG][       Thread-260193][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 15:56:56,265 [DEBUG][       Thread-260193][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 15:56:56,265 [DEBUG][       Thread-260193][   transport.py][1871] : Compression: none
2025-06-13 15:56:56,265 [DEBUG][       Thread-260193][   transport.py][1871] : === End of kex handshake ===
2025-06-13 15:56:56,326 [DEBUG][       Thread-260193][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 15:56:56,327 [DEBUG][       Thread-260193][   transport.py][1871] : Switch to new keys ...
2025-06-13 15:56:56,327 [DEBUG][       Thread-260193][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 15:56:56,327 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 15:56:56,327 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 15:56:56,385 [DEBUG][       Thread-260193][   transport.py][1871] : userauth is OK
2025-06-13 15:56:56,385 [DEBUG][       Thread-260193][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 15:56:56,385 [DEBUG][       Thread-260193][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 15:56:56,385 [DEBUG][       Thread-260193][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 15:56:56,385 [DEBUG][       Thread-260193][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 15:56:56,399 [ INFO][       Thread-260193][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 15:56:56,399 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 15:56:56,399 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 15:56:57,939 [DEBUG][       Thread-260193][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 15:56:57,939 [DEBUG][       Thread-260193][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 15:56:57,988 [DEBUG][       Thread-260193][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 15:56:57,988 [DEBUG][       Thread-260193][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 15:56:57,997 [DEBUG][       Thread-260193][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 15:56:58,006 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 15:56:58,006 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 15:56:58,016 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 15:56:58,024 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 15:56:58,024 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 15:56:58,024 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 15:56:58,034 [DEBUG][       Thread-260193][   transport.py][1871] : EOF in transport thread
2025-06-13 15:56:59,264 [DEBUG][Thread-260195 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:57:08,033 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 15:57:08,033 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 15:57:08,033 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 15:57:08,035 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 15:57:08,281 [DEBUG][Thread-260196 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:57:08,518 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 15, 57, 1), 18.34, 27.82, 0.0, 15.67, 14.12, 0, 0, 0, 2, 0, 0),)
2025-06-13 15:57:08,518 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 15:57:01
2025-06-13 15:57:08,599 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 15:57:08,605 [DEBUG][       Thread-260197][   transport.py][1871] : starting thread (client mode): 0x867fc460
2025-06-13 15:57:08,605 [DEBUG][       Thread-260197][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 15:57:08,628 [DEBUG][       Thread-260197][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 15:57:08,628 [ INFO][       Thread-260197][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 15:57:08,632 [DEBUG][       Thread-260197][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 15:57:08,633 [DEBUG][       Thread-260197][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 15:57:08,633 [DEBUG][       Thread-260197][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 15:57:08,633 [DEBUG][       Thread-260197][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:57:08,633 [DEBUG][       Thread-260197][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:57:08,633 [DEBUG][       Thread-260197][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:57:08,633 [DEBUG][       Thread-260197][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:57:08,633 [DEBUG][       Thread-260197][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 15:57:08,633 [DEBUG][       Thread-260197][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 15:57:08,633 [DEBUG][       Thread-260197][   transport.py][1871] : client lang: <none>
2025-06-13 15:57:08,633 [DEBUG][       Thread-260197][   transport.py][1871] : server lang: <none>
2025-06-13 15:57:08,633 [DEBUG][       Thread-260197][   transport.py][1871] : kex follows: False
2025-06-13 15:57:08,633 [DEBUG][       Thread-260197][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 15:57:08,633 [DEBUG][       Thread-260197][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 15:57:08,633 [DEBUG][       Thread-260197][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 15:57:08,633 [DEBUG][       Thread-260197][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 15:57:08,633 [DEBUG][       Thread-260197][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 15:57:08,633 [DEBUG][       Thread-260197][   transport.py][1871] : Compression: none
2025-06-13 15:57:08,633 [DEBUG][       Thread-260197][   transport.py][1871] : === End of kex handshake ===
2025-06-13 15:57:08,649 [DEBUG][       Thread-260197][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 15:57:08,649 [DEBUG][       Thread-260197][   transport.py][1871] : Switch to new keys ...
2025-06-13 15:57:08,650 [DEBUG][       Thread-260197][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 15:57:08,650 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 15:57:08,650 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 15:57:08,651 [DEBUG][       Thread-260197][   transport.py][1871] : userauth is OK
2025-06-13 15:57:08,664 [ INFO][       Thread-260197][   transport.py][1871] : Authentication (password) successful!
2025-06-13 15:57:08,664 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 15:57:09,266 [DEBUG][       Thread-260197][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 15:57:09,267 [DEBUG][       Thread-260197][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 15:57:09,309 [DEBUG][       Thread-260197][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 15:57:09,309 [DEBUG][       Thread-260197][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 15:57:09,312 [DEBUG][       Thread-260197][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 15:57:09,325 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 15:57:09,326 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 15:57:09,328 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 15:57:09,329 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 15:57:09,334 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 15:57:09,335 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 15:57:09,336 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 15:57:09,336 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 15:57:09,336 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.580838 -999.00  +13.80  21.08     33   -2.10 1 1 1 1 1   887    0 15.42 -11.69 ----- 24.0 21.1 44.8 26.2 16.8 -31.4 15.9 -32.0 16.9 -31.8 17.9 -29.8
2025-06-13 15:57:09,336 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 15:57:09,336 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 15:57:09,336 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.580838
2025-06-13 15:57:09,337 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 15:57:09,337 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 15:57:09,337 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 15:57:09,337 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 15:57:09,337 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 15:57:09,338 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T15:57:01', tmtdew=18.34, humidity=27.82, cloud=0.0, wind=15.67, temperature=14.12, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T13:56:24.403', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 15:57:09,339 [DEBUG][       Thread-260197][   transport.py][1871] : EOF in transport thread
2025-06-13 15:57:09,419 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 15:57:09,431 [DEBUG][       Thread-260200][   transport.py][1871] : starting thread (client mode): 0x86893fd0
2025-06-13 15:57:09,431 [DEBUG][       Thread-260200][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 15:57:09,446 [DEBUG][       Thread-260200][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 15:57:09,446 [ INFO][       Thread-260200][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 15:57:09,456 [DEBUG][       Thread-260200][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 15:57:09,456 [DEBUG][       Thread-260200][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 15:57:09,456 [DEBUG][       Thread-260200][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 15:57:09,456 [DEBUG][       Thread-260200][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:57:09,456 [DEBUG][       Thread-260200][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:57:09,456 [DEBUG][       Thread-260200][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:57:09,456 [DEBUG][       Thread-260200][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:57:09,456 [DEBUG][       Thread-260200][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 15:57:09,456 [DEBUG][       Thread-260200][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 15:57:09,456 [DEBUG][       Thread-260200][   transport.py][1871] : client lang: <none>
2025-06-13 15:57:09,456 [DEBUG][       Thread-260200][   transport.py][1871] : server lang: <none>
2025-06-13 15:57:09,456 [DEBUG][       Thread-260200][   transport.py][1871] : kex follows: False
2025-06-13 15:57:09,456 [DEBUG][       Thread-260200][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 15:57:09,457 [DEBUG][       Thread-260200][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 15:57:09,457 [DEBUG][       Thread-260200][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 15:57:09,457 [DEBUG][       Thread-260200][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 15:57:09,457 [DEBUG][       Thread-260200][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 15:57:09,457 [DEBUG][       Thread-260200][   transport.py][1871] : Compression: none
2025-06-13 15:57:09,457 [DEBUG][       Thread-260200][   transport.py][1871] : === End of kex handshake ===
2025-06-13 15:57:09,513 [DEBUG][       Thread-260200][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 15:57:09,513 [DEBUG][       Thread-260200][   transport.py][1871] : Switch to new keys ...
2025-06-13 15:57:09,514 [DEBUG][       Thread-260200][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 15:57:09,514 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 15:57:09,515 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 15:57:09,569 [DEBUG][       Thread-260200][   transport.py][1871] : userauth is OK
2025-06-13 15:57:09,570 [DEBUG][       Thread-260200][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 15:57:09,570 [DEBUG][       Thread-260200][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 15:57:09,570 [DEBUG][       Thread-260200][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 15:57:09,570 [DEBUG][       Thread-260200][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 15:57:09,594 [ INFO][       Thread-260200][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 15:57:09,595 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 15:57:09,595 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 15:57:10,573 [DEBUG][       Thread-260200][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 15:57:10,574 [DEBUG][       Thread-260200][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 15:57:10,624 [DEBUG][       Thread-260200][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 15:57:10,624 [DEBUG][       Thread-260200][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 15:57:10,633 [DEBUG][       Thread-260200][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 15:57:10,642 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 15:57:10,642 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 15:57:10,651 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 15:57:10,660 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 15:57:10,660 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 15:57:10,661 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 15:57:10,669 [DEBUG][       Thread-260200][   transport.py][1871] : EOF in transport thread
2025-06-13 15:57:13,382 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:57:13,383 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:57:17,304 [DEBUG][Thread-260202 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:57:20,604 [DEBUG][Thread-260203 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:57:20,668 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 15:57:20,668 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 15:57:20,668 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 15:57:20,669 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 15:57:21,125 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 15, 57, 1), 18.34, 27.82, 0.0, 15.67, 14.12, 0, 0, 0, 2, 0, 0),)
2025-06-13 15:57:21,125 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 15:57:01
2025-06-13 15:57:21,207 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 15:57:21,211 [DEBUG][       Thread-260204][   transport.py][1871] : starting thread (client mode): 0x867feb60
2025-06-13 15:57:21,211 [DEBUG][       Thread-260204][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 15:57:21,231 [DEBUG][       Thread-260204][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 15:57:21,231 [ INFO][       Thread-260204][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 15:57:21,234 [DEBUG][       Thread-260204][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 15:57:21,234 [DEBUG][       Thread-260204][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 15:57:21,234 [DEBUG][       Thread-260204][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 15:57:21,234 [DEBUG][       Thread-260204][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:57:21,234 [DEBUG][       Thread-260204][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:57:21,234 [DEBUG][       Thread-260204][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:57:21,234 [DEBUG][       Thread-260204][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:57:21,234 [DEBUG][       Thread-260204][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 15:57:21,234 [DEBUG][       Thread-260204][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 15:57:21,234 [DEBUG][       Thread-260204][   transport.py][1871] : client lang: <none>
2025-06-13 15:57:21,234 [DEBUG][       Thread-260204][   transport.py][1871] : server lang: <none>
2025-06-13 15:57:21,234 [DEBUG][       Thread-260204][   transport.py][1871] : kex follows: False
2025-06-13 15:57:21,234 [DEBUG][       Thread-260204][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 15:57:21,235 [DEBUG][       Thread-260204][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 15:57:21,235 [DEBUG][       Thread-260204][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 15:57:21,235 [DEBUG][       Thread-260204][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 15:57:21,235 [DEBUG][       Thread-260204][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 15:57:21,235 [DEBUG][       Thread-260204][   transport.py][1871] : Compression: none
2025-06-13 15:57:21,235 [DEBUG][       Thread-260204][   transport.py][1871] : === End of kex handshake ===
2025-06-13 15:57:21,252 [DEBUG][       Thread-260204][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 15:57:21,252 [DEBUG][       Thread-260204][   transport.py][1871] : Switch to new keys ...
2025-06-13 15:57:21,252 [DEBUG][       Thread-260204][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 15:57:21,252 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 15:57:21,252 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 15:57:21,253 [DEBUG][       Thread-260204][   transport.py][1871] : userauth is OK
2025-06-13 15:57:21,277 [ INFO][       Thread-260204][   transport.py][1871] : Authentication (password) successful!
2025-06-13 15:57:21,277 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 15:57:21,665 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:57:21,667 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:57:21,909 [DEBUG][       Thread-260204][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 15:57:21,910 [DEBUG][       Thread-260204][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 15:57:21,953 [DEBUG][       Thread-260204][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 15:57:21,953 [DEBUG][       Thread-260204][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 15:57:21,957 [DEBUG][       Thread-260204][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 15:57:21,968 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 15:57:21,969 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 15:57:21,971 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 15:57:21,973 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 15:57:21,979 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 15:57:21,980 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 15:57:21,981 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 15:57:21,981 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 15:57:21,981 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.580838 -999.00  +13.80  21.08     33   -2.10 1 1 1 1 1   887    0 15.42 -11.69 ----- 24.0 21.1 44.8 26.2 16.8 -31.4 15.9 -32.0 16.9 -31.8 17.9 -29.8
2025-06-13 15:57:21,981 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 15:57:21,981 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 15:57:21,982 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.580838
2025-06-13 15:57:21,982 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 15:57:21,982 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 15:57:21,983 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 15:57:21,983 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 15:57:21,983 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 15:57:21,983 [DEBUG][       Thread-260204][   transport.py][1871] : EOF in transport thread
2025-06-13 15:57:21,983 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T15:57:01', tmtdew=18.34, humidity=27.82, cloud=0.0, wind=15.67, temperature=14.12, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T13:56:24.403', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 15:57:22,068 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 15:57:22,077 [DEBUG][       Thread-260207][   transport.py][1871] : starting thread (client mode): 0x86390f40
2025-06-13 15:57:22,077 [DEBUG][       Thread-260207][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 15:57:22,091 [DEBUG][       Thread-260207][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 15:57:22,091 [ INFO][       Thread-260207][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 15:57:22,101 [DEBUG][       Thread-260207][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 15:57:22,102 [DEBUG][       Thread-260207][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 15:57:22,102 [DEBUG][       Thread-260207][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 15:57:22,102 [DEBUG][       Thread-260207][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:57:22,102 [DEBUG][       Thread-260207][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:57:22,102 [DEBUG][       Thread-260207][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:57:22,102 [DEBUG][       Thread-260207][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:57:22,102 [DEBUG][       Thread-260207][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 15:57:22,102 [DEBUG][       Thread-260207][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 15:57:22,102 [DEBUG][       Thread-260207][   transport.py][1871] : client lang: <none>
2025-06-13 15:57:22,102 [DEBUG][       Thread-260207][   transport.py][1871] : server lang: <none>
2025-06-13 15:57:22,102 [DEBUG][       Thread-260207][   transport.py][1871] : kex follows: False
2025-06-13 15:57:22,102 [DEBUG][       Thread-260207][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 15:57:22,102 [DEBUG][       Thread-260207][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 15:57:22,102 [DEBUG][       Thread-260207][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 15:57:22,102 [DEBUG][       Thread-260207][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 15:57:22,102 [DEBUG][       Thread-260207][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 15:57:22,102 [DEBUG][       Thread-260207][   transport.py][1871] : Compression: none
2025-06-13 15:57:22,102 [DEBUG][       Thread-260207][   transport.py][1871] : === End of kex handshake ===
2025-06-13 15:57:22,160 [DEBUG][       Thread-260207][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 15:57:22,160 [DEBUG][       Thread-260207][   transport.py][1871] : Switch to new keys ...
2025-06-13 15:57:22,161 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 15:57:22,161 [DEBUG][       Thread-260207][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 15:57:22,162 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 15:57:22,227 [DEBUG][       Thread-260207][   transport.py][1871] : userauth is OK
2025-06-13 15:57:22,227 [DEBUG][       Thread-260207][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 15:57:22,227 [DEBUG][       Thread-260207][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 15:57:22,227 [DEBUG][       Thread-260207][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 15:57:22,227 [DEBUG][       Thread-260207][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 15:57:22,233 [DEBUG][Thread-260209 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:57:22,245 [ INFO][       Thread-260207][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 15:57:22,245 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 15:57:22,245 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 15:57:23,246 [DEBUG][       Thread-260207][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 15:57:23,247 [DEBUG][       Thread-260207][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 15:57:23,296 [DEBUG][       Thread-260207][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 15:57:23,296 [DEBUG][       Thread-260207][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 15:57:23,305 [DEBUG][       Thread-260207][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 15:57:23,314 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 15:57:23,315 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 15:57:23,323 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 15:57:23,332 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 15:57:23,332 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 15:57:23,333 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 15:57:23,341 [DEBUG][       Thread-260207][   transport.py][1871] : EOF in transport thread
2025-06-13 15:57:26,341 [DEBUG][Thread-260210 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:57:33,343 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 15:57:33,344 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 15:57:33,344 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 15:57:33,347 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 15:57:33,823 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 15, 57, 1), 18.34, 27.82, 0.0, 15.67, 14.12, 0, 0, 0, 2, 0, 0),)
2025-06-13 15:57:33,823 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 15:57:01
2025-06-13 15:57:33,904 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 15:57:33,909 [DEBUG][       Thread-260211][   transport.py][1871] : starting thread (client mode): 0x863cb670
2025-06-13 15:57:33,909 [DEBUG][       Thread-260211][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 15:57:33,929 [DEBUG][       Thread-260211][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 15:57:33,929 [ INFO][       Thread-260211][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 15:57:33,932 [DEBUG][       Thread-260211][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 15:57:33,932 [DEBUG][       Thread-260211][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 15:57:33,932 [DEBUG][       Thread-260211][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 15:57:33,932 [DEBUG][       Thread-260211][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:57:33,932 [DEBUG][       Thread-260211][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:57:33,932 [DEBUG][       Thread-260211][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:57:33,933 [DEBUG][       Thread-260211][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:57:33,933 [DEBUG][       Thread-260211][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 15:57:33,933 [DEBUG][       Thread-260211][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 15:57:33,933 [DEBUG][       Thread-260211][   transport.py][1871] : client lang: <none>
2025-06-13 15:57:33,933 [DEBUG][       Thread-260211][   transport.py][1871] : server lang: <none>
2025-06-13 15:57:33,933 [DEBUG][       Thread-260211][   transport.py][1871] : kex follows: False
2025-06-13 15:57:33,933 [DEBUG][       Thread-260211][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 15:57:33,933 [DEBUG][       Thread-260211][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 15:57:33,933 [DEBUG][       Thread-260211][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 15:57:33,933 [DEBUG][       Thread-260211][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 15:57:33,933 [DEBUG][       Thread-260211][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 15:57:33,933 [DEBUG][       Thread-260211][   transport.py][1871] : Compression: none
2025-06-13 15:57:33,933 [DEBUG][       Thread-260211][   transport.py][1871] : === End of kex handshake ===
2025-06-13 15:57:33,949 [DEBUG][       Thread-260211][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 15:57:33,950 [DEBUG][       Thread-260211][   transport.py][1871] : Switch to new keys ...
2025-06-13 15:57:33,950 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 15:57:33,950 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 15:57:33,951 [DEBUG][       Thread-260211][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 15:57:33,952 [DEBUG][       Thread-260211][   transport.py][1871] : userauth is OK
2025-06-13 15:57:33,976 [ INFO][       Thread-260211][   transport.py][1871] : Authentication (password) successful!
2025-06-13 15:57:33,976 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 15:57:34,616 [DEBUG][       Thread-260211][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 15:57:34,616 [DEBUG][       Thread-260211][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 15:57:34,656 [DEBUG][       Thread-260211][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 15:57:34,657 [DEBUG][       Thread-260211][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 15:57:34,659 [DEBUG][       Thread-260211][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 15:57:34,670 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 15:57:34,670 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 15:57:34,671 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 15:57:34,672 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 15:57:34,676 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 15:57:34,677 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 15:57:34,677 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 15:57:34,677 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 15:57:34,677 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.581532 -999.00  +13.60  23.62     32   -2.50 1 1 1 1 1   887    0 15.40 -9.46 ----- 25.8 23.6 46.0 29.7 16.8 -32.3 15.9 -33.1 16.8 -31.6 17.7 -30.2
2025-06-13 15:57:34,677 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 15:57:34,677 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 15:57:34,677 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.581532
2025-06-13 15:57:34,677 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 15:57:34,677 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 15:57:34,677 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 15:57:34,678 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 15:57:34,678 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 15:57:34,678 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T15:57:01', tmtdew=18.34, humidity=27.82, cloud=0.0, wind=15.67, temperature=14.12, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T13:57:24.365', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 15:57:34,678 [DEBUG][       Thread-260211][   transport.py][1871] : EOF in transport thread
2025-06-13 15:57:34,752 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 15:57:34,763 [DEBUG][       Thread-260214][   transport.py][1871] : starting thread (client mode): 0x867b4970
2025-06-13 15:57:34,763 [DEBUG][       Thread-260214][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 15:57:34,780 [DEBUG][       Thread-260214][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 15:57:34,780 [ INFO][       Thread-260214][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 15:57:34,791 [DEBUG][       Thread-260214][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 15:57:34,791 [DEBUG][       Thread-260214][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 15:57:34,791 [DEBUG][       Thread-260214][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 15:57:34,791 [DEBUG][       Thread-260214][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:57:34,791 [DEBUG][       Thread-260214][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:57:34,791 [DEBUG][       Thread-260214][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:57:34,791 [DEBUG][       Thread-260214][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:57:34,791 [DEBUG][       Thread-260214][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 15:57:34,791 [DEBUG][       Thread-260214][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 15:57:34,791 [DEBUG][       Thread-260214][   transport.py][1871] : client lang: <none>
2025-06-13 15:57:34,791 [DEBUG][       Thread-260214][   transport.py][1871] : server lang: <none>
2025-06-13 15:57:34,791 [DEBUG][       Thread-260214][   transport.py][1871] : kex follows: False
2025-06-13 15:57:34,791 [DEBUG][       Thread-260214][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 15:57:34,791 [DEBUG][       Thread-260214][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 15:57:34,791 [DEBUG][       Thread-260214][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 15:57:34,791 [DEBUG][       Thread-260214][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 15:57:34,791 [DEBUG][       Thread-260214][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 15:57:34,791 [DEBUG][       Thread-260214][   transport.py][1871] : Compression: none
2025-06-13 15:57:34,791 [DEBUG][       Thread-260214][   transport.py][1871] : === End of kex handshake ===
2025-06-13 15:57:34,848 [DEBUG][       Thread-260214][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 15:57:34,848 [DEBUG][       Thread-260214][   transport.py][1871] : Switch to new keys ...
2025-06-13 15:57:34,848 [DEBUG][       Thread-260214][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 15:57:34,848 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 15:57:34,848 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 15:57:34,905 [DEBUG][       Thread-260214][   transport.py][1871] : userauth is OK
2025-06-13 15:57:34,905 [DEBUG][       Thread-260214][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 15:57:34,905 [DEBUG][       Thread-260214][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 15:57:34,905 [DEBUG][       Thread-260214][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 15:57:34,905 [DEBUG][       Thread-260214][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 15:57:34,920 [ INFO][       Thread-260214][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 15:57:34,920 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 15:57:34,920 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 15:57:35,360 [DEBUG][Thread-260216 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:57:35,903 [DEBUG][       Thread-260214][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 15:57:35,903 [DEBUG][       Thread-260214][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 15:57:35,951 [DEBUG][       Thread-260214][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 15:57:35,951 [DEBUG][       Thread-260214][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 15:57:35,960 [DEBUG][       Thread-260214][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 15:57:35,967 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 15:57:35,967 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 15:57:35,975 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 15:57:35,983 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 15:57:35,983 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 15:57:35,984 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 15:57:35,991 [DEBUG][       Thread-260214][   transport.py][1871] : EOF in transport thread
2025-06-13 15:57:44,379 [DEBUG][Thread-260217 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:57:45,994 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 15:57:45,994 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 15:57:45,994 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 15:57:45,998 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 15:57:46,450 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 15, 57, 33), 18.5, 27.75, 0.0, 20.36, 14.02, 0, 0, 0, 2, 0, 0),)
2025-06-13 15:57:46,450 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 15:57:33
2025-06-13 15:57:46,531 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 15:57:46,535 [DEBUG][       Thread-260218][   transport.py][1871] : starting thread (client mode): 0x8636a140
2025-06-13 15:57:46,535 [DEBUG][       Thread-260218][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 15:57:46,557 [DEBUG][       Thread-260218][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 15:57:46,557 [ INFO][       Thread-260218][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 15:57:46,560 [DEBUG][       Thread-260218][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 15:57:46,560 [DEBUG][       Thread-260218][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 15:57:46,560 [DEBUG][       Thread-260218][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 15:57:46,560 [DEBUG][       Thread-260218][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:57:46,560 [DEBUG][       Thread-260218][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:57:46,560 [DEBUG][       Thread-260218][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:57:46,560 [DEBUG][       Thread-260218][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:57:46,560 [DEBUG][       Thread-260218][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 15:57:46,560 [DEBUG][       Thread-260218][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 15:57:46,560 [DEBUG][       Thread-260218][   transport.py][1871] : client lang: <none>
2025-06-13 15:57:46,560 [DEBUG][       Thread-260218][   transport.py][1871] : server lang: <none>
2025-06-13 15:57:46,560 [DEBUG][       Thread-260218][   transport.py][1871] : kex follows: False
2025-06-13 15:57:46,560 [DEBUG][       Thread-260218][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 15:57:46,560 [DEBUG][       Thread-260218][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 15:57:46,560 [DEBUG][       Thread-260218][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 15:57:46,560 [DEBUG][       Thread-260218][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 15:57:46,560 [DEBUG][       Thread-260218][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 15:57:46,560 [DEBUG][       Thread-260218][   transport.py][1871] : Compression: none
2025-06-13 15:57:46,560 [DEBUG][       Thread-260218][   transport.py][1871] : === End of kex handshake ===
2025-06-13 15:57:46,578 [DEBUG][       Thread-260218][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 15:57:46,578 [DEBUG][       Thread-260218][   transport.py][1871] : Switch to new keys ...
2025-06-13 15:57:46,579 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 15:57:46,579 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 15:57:46,580 [DEBUG][       Thread-260218][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 15:57:46,580 [DEBUG][       Thread-260218][   transport.py][1871] : userauth is OK
2025-06-13 15:57:46,593 [ INFO][       Thread-260218][   transport.py][1871] : Authentication (password) successful!
2025-06-13 15:57:46,594 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 15:57:47,208 [DEBUG][       Thread-260218][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 15:57:47,208 [DEBUG][       Thread-260218][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 15:57:47,249 [DEBUG][       Thread-260218][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 15:57:47,249 [DEBUG][       Thread-260218][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 15:57:47,252 [DEBUG][       Thread-260218][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 15:57:47,265 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 15:57:47,265 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 15:57:47,267 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 15:57:47,269 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 15:57:47,274 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 15:57:47,283 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 15:57:47,283 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 15:57:47,283 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 15:57:47,284 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.581532 -999.00  +13.60  23.62     32   -2.50 1 1 1 1 1   887    0 15.40 -9.46 ----- 25.8 23.6 46.0 29.7 16.8 -32.3 15.9 -33.1 16.8 -31.6 17.7 -30.2
2025-06-13 15:57:47,284 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 15:57:47,284 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 15:57:47,284 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.581532
2025-06-13 15:57:47,284 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 15:57:47,285 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 15:57:47,285 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 15:57:47,285 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 15:57:47,285 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 15:57:47,285 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T15:57:33', tmtdew=18.5, humidity=27.75, cloud=0.0, wind=20.36, temperature=14.02, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T13:57:24.365', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 15:57:47,286 [DEBUG][       Thread-260218][   transport.py][1871] : EOF in transport thread
2025-06-13 15:57:47,370 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 15:57:47,380 [DEBUG][       Thread-260221][   transport.py][1871] : starting thread (client mode): 0x863a6ec0
2025-06-13 15:57:47,380 [DEBUG][       Thread-260221][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 15:57:47,395 [DEBUG][       Thread-260221][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 15:57:47,395 [ INFO][       Thread-260221][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 15:57:47,403 [DEBUG][       Thread-260221][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 15:57:47,403 [DEBUG][       Thread-260221][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 15:57:47,403 [DEBUG][       Thread-260221][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 15:57:47,403 [DEBUG][       Thread-260221][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:57:47,403 [DEBUG][       Thread-260221][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:57:47,403 [DEBUG][       Thread-260221][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:57:47,403 [DEBUG][       Thread-260221][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:57:47,403 [DEBUG][       Thread-260221][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 15:57:47,403 [DEBUG][       Thread-260221][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 15:57:47,403 [DEBUG][       Thread-260221][   transport.py][1871] : client lang: <none>
2025-06-13 15:57:47,403 [DEBUG][       Thread-260221][   transport.py][1871] : server lang: <none>
2025-06-13 15:57:47,403 [DEBUG][       Thread-260221][   transport.py][1871] : kex follows: False
2025-06-13 15:57:47,403 [DEBUG][       Thread-260221][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 15:57:47,403 [DEBUG][       Thread-260221][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 15:57:47,403 [DEBUG][       Thread-260221][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 15:57:47,403 [DEBUG][       Thread-260221][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 15:57:47,403 [DEBUG][       Thread-260221][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 15:57:47,403 [DEBUG][       Thread-260221][   transport.py][1871] : Compression: none
2025-06-13 15:57:47,403 [DEBUG][       Thread-260221][   transport.py][1871] : === End of kex handshake ===
2025-06-13 15:57:47,468 [DEBUG][       Thread-260221][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 15:57:47,468 [DEBUG][       Thread-260221][   transport.py][1871] : Switch to new keys ...
2025-06-13 15:57:47,469 [DEBUG][       Thread-260221][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 15:57:47,469 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 15:57:47,469 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 15:57:47,532 [DEBUG][       Thread-260221][   transport.py][1871] : userauth is OK
2025-06-13 15:57:47,532 [DEBUG][       Thread-260221][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 15:57:47,532 [DEBUG][       Thread-260221][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 15:57:47,532 [DEBUG][       Thread-260221][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 15:57:47,532 [DEBUG][       Thread-260221][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 15:57:47,554 [ INFO][       Thread-260221][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 15:57:47,554 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 15:57:47,555 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 15:57:48,564 [DEBUG][       Thread-260221][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 15:57:48,564 [DEBUG][       Thread-260221][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 15:57:48,612 [DEBUG][       Thread-260221][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 15:57:48,612 [DEBUG][       Thread-260221][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 15:57:48,621 [DEBUG][       Thread-260221][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 15:57:48,630 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 15:57:48,631 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 15:57:48,639 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 15:57:48,649 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 15:57:48,650 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 15:57:48,650 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 15:57:48,659 [DEBUG][       Thread-260221][   transport.py][1871] : EOF in transport thread
2025-06-13 15:57:53,402 [DEBUG][Thread-260223 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:57:58,660 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 15:57:58,660 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 15:57:58,660 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 15:57:58,663 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 15:57:59,120 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 15, 57, 33), 18.5, 27.75, 0.0, 20.36, 14.02, 0, 0, 0, 2, 0, 0),)
2025-06-13 15:57:59,120 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 15:57:33
2025-06-13 15:57:59,200 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 15:57:59,204 [DEBUG][       Thread-260224][   transport.py][1871] : starting thread (client mode): 0x86368a00
2025-06-13 15:57:59,204 [DEBUG][       Thread-260224][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 15:57:59,224 [DEBUG][       Thread-260224][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 15:57:59,224 [ INFO][       Thread-260224][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 15:57:59,228 [DEBUG][       Thread-260224][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 15:57:59,228 [DEBUG][       Thread-260224][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 15:57:59,228 [DEBUG][       Thread-260224][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 15:57:59,228 [DEBUG][       Thread-260224][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:57:59,228 [DEBUG][       Thread-260224][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:57:59,228 [DEBUG][       Thread-260224][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:57:59,228 [DEBUG][       Thread-260224][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:57:59,228 [DEBUG][       Thread-260224][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 15:57:59,228 [DEBUG][       Thread-260224][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 15:57:59,228 [DEBUG][       Thread-260224][   transport.py][1871] : client lang: <none>
2025-06-13 15:57:59,228 [DEBUG][       Thread-260224][   transport.py][1871] : server lang: <none>
2025-06-13 15:57:59,228 [DEBUG][       Thread-260224][   transport.py][1871] : kex follows: False
2025-06-13 15:57:59,228 [DEBUG][       Thread-260224][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 15:57:59,228 [DEBUG][       Thread-260224][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 15:57:59,228 [DEBUG][       Thread-260224][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 15:57:59,228 [DEBUG][       Thread-260224][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 15:57:59,228 [DEBUG][       Thread-260224][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 15:57:59,228 [DEBUG][       Thread-260224][   transport.py][1871] : Compression: none
2025-06-13 15:57:59,228 [DEBUG][       Thread-260224][   transport.py][1871] : === End of kex handshake ===
2025-06-13 15:57:59,244 [DEBUG][       Thread-260224][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 15:57:59,245 [DEBUG][       Thread-260224][   transport.py][1871] : Switch to new keys ...
2025-06-13 15:57:59,245 [DEBUG][       Thread-260224][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 15:57:59,246 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 15:57:59,246 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 15:57:59,247 [DEBUG][       Thread-260224][   transport.py][1871] : userauth is OK
2025-06-13 15:57:59,271 [ INFO][       Thread-260224][   transport.py][1871] : Authentication (password) successful!
2025-06-13 15:57:59,272 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 15:57:59,891 [DEBUG][       Thread-260224][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 15:57:59,891 [DEBUG][       Thread-260224][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 15:57:59,933 [DEBUG][       Thread-260224][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 15:57:59,933 [DEBUG][       Thread-260224][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 15:57:59,936 [DEBUG][       Thread-260224][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 15:57:59,949 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 15:57:59,950 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 15:57:59,952 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 15:57:59,954 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 15:57:59,961 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 15:57:59,963 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 15:57:59,963 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 15:57:59,964 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 15:57:59,964 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.581532 -999.00  +13.60  23.62     32   -2.50 1 1 1 1 1   887    0 15.40 -9.46 ----- 25.8 23.6 46.0 29.7 16.8 -32.3 15.9 -33.1 16.8 -31.6 17.7 -30.2
2025-06-13 15:57:59,964 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 15:57:59,964 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 15:57:59,964 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.581532
2025-06-13 15:57:59,964 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 15:57:59,965 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 15:57:59,965 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 15:57:59,965 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 15:57:59,965 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 15:57:59,965 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T15:57:33', tmtdew=18.5, humidity=27.75, cloud=0.0, wind=20.36, temperature=14.02, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T13:57:24.365', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 15:57:59,966 [DEBUG][       Thread-260224][   transport.py][1871] : EOF in transport thread
2025-06-13 15:58:00,049 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 15:58:00,063 [DEBUG][       Thread-260227][   transport.py][1871] : starting thread (client mode): 0x867b5b10
2025-06-13 15:58:00,063 [DEBUG][       Thread-260227][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 15:58:00,081 [DEBUG][       Thread-260227][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 15:58:00,081 [ INFO][       Thread-260227][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 15:58:00,089 [DEBUG][       Thread-260227][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 15:58:00,089 [DEBUG][       Thread-260227][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 15:58:00,089 [DEBUG][       Thread-260227][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 15:58:00,089 [DEBUG][       Thread-260227][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:58:00,089 [DEBUG][       Thread-260227][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:58:00,089 [DEBUG][       Thread-260227][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:58:00,089 [DEBUG][       Thread-260227][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:58:00,089 [DEBUG][       Thread-260227][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 15:58:00,089 [DEBUG][       Thread-260227][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 15:58:00,089 [DEBUG][       Thread-260227][   transport.py][1871] : client lang: <none>
2025-06-13 15:58:00,089 [DEBUG][       Thread-260227][   transport.py][1871] : server lang: <none>
2025-06-13 15:58:00,089 [DEBUG][       Thread-260227][   transport.py][1871] : kex follows: False
2025-06-13 15:58:00,090 [DEBUG][       Thread-260227][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 15:58:00,090 [DEBUG][       Thread-260227][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 15:58:00,090 [DEBUG][       Thread-260227][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 15:58:00,090 [DEBUG][       Thread-260227][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 15:58:00,090 [DEBUG][       Thread-260227][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 15:58:00,090 [DEBUG][       Thread-260227][   transport.py][1871] : Compression: none
2025-06-13 15:58:00,090 [DEBUG][       Thread-260227][   transport.py][1871] : === End of kex handshake ===
2025-06-13 15:58:00,151 [DEBUG][       Thread-260227][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 15:58:00,151 [DEBUG][       Thread-260227][   transport.py][1871] : Switch to new keys ...
2025-06-13 15:58:00,152 [DEBUG][       Thread-260227][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 15:58:00,152 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 15:58:00,153 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 15:58:00,210 [DEBUG][       Thread-260227][   transport.py][1871] : userauth is OK
2025-06-13 15:58:00,210 [DEBUG][       Thread-260227][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 15:58:00,210 [DEBUG][       Thread-260227][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 15:58:00,211 [DEBUG][       Thread-260227][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 15:58:00,211 [DEBUG][       Thread-260227][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 15:58:00,231 [ INFO][       Thread-260227][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 15:58:00,232 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 15:58:00,232 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 15:58:01,208 [DEBUG][       Thread-260227][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 15:58:01,208 [DEBUG][       Thread-260227][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 15:58:01,256 [DEBUG][       Thread-260227][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 15:58:01,256 [DEBUG][       Thread-260227][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 15:58:01,266 [DEBUG][       Thread-260227][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 15:58:01,275 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 15:58:01,275 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 15:58:01,284 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 15:58:01,293 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 15:58:01,293 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 15:58:01,294 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 15:58:01,302 [DEBUG][       Thread-260227][   transport.py][1871] : EOF in transport thread
2025-06-13 15:58:02,438 [DEBUG][Thread-260229 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:58:11,299 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 15:58:11,300 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 15:58:11,300 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 15:58:11,303 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 15:58:11,460 [DEBUG][Thread-260230 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:58:11,763 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 15, 58, 5), 18.5, 27.74, 0.0, 18.93, 13.97, 0, 0, 0, 2, 0, 0),)
2025-06-13 15:58:11,763 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 15:58:05
2025-06-13 15:58:11,845 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 15:58:11,851 [DEBUG][       Thread-260231][   transport.py][1871] : starting thread (client mode): 0x863c9120
2025-06-13 15:58:11,851 [DEBUG][       Thread-260231][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 15:58:11,873 [DEBUG][       Thread-260231][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 15:58:11,873 [ INFO][       Thread-260231][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 15:58:11,877 [DEBUG][       Thread-260231][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 15:58:11,877 [DEBUG][       Thread-260231][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 15:58:11,877 [DEBUG][       Thread-260231][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 15:58:11,877 [DEBUG][       Thread-260231][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:58:11,877 [DEBUG][       Thread-260231][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:58:11,877 [DEBUG][       Thread-260231][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:58:11,877 [DEBUG][       Thread-260231][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:58:11,877 [DEBUG][       Thread-260231][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 15:58:11,877 [DEBUG][       Thread-260231][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 15:58:11,877 [DEBUG][       Thread-260231][   transport.py][1871] : client lang: <none>
2025-06-13 15:58:11,877 [DEBUG][       Thread-260231][   transport.py][1871] : server lang: <none>
2025-06-13 15:58:11,877 [DEBUG][       Thread-260231][   transport.py][1871] : kex follows: False
2025-06-13 15:58:11,877 [DEBUG][       Thread-260231][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 15:58:11,877 [DEBUG][       Thread-260231][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 15:58:11,877 [DEBUG][       Thread-260231][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 15:58:11,877 [DEBUG][       Thread-260231][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 15:58:11,877 [DEBUG][       Thread-260231][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 15:58:11,878 [DEBUG][       Thread-260231][   transport.py][1871] : Compression: none
2025-06-13 15:58:11,878 [DEBUG][       Thread-260231][   transport.py][1871] : === End of kex handshake ===
2025-06-13 15:58:11,894 [DEBUG][       Thread-260231][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 15:58:11,894 [DEBUG][       Thread-260231][   transport.py][1871] : Switch to new keys ...
2025-06-13 15:58:11,895 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 15:58:11,895 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 15:58:11,896 [DEBUG][       Thread-260231][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 15:58:11,897 [DEBUG][       Thread-260231][   transport.py][1871] : userauth is OK
2025-06-13 15:58:11,922 [ INFO][       Thread-260231][   transport.py][1871] : Authentication (password) successful!
2025-06-13 15:58:11,923 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 15:58:12,555 [DEBUG][       Thread-260231][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 15:58:12,555 [DEBUG][       Thread-260231][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 15:58:12,597 [DEBUG][       Thread-260231][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 15:58:12,597 [DEBUG][       Thread-260231][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 15:58:12,601 [DEBUG][       Thread-260231][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 15:58:12,613 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 15:58:12,613 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 15:58:12,615 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 15:58:12,617 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 15:58:12,623 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 15:58:12,625 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 15:58:12,625 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 15:58:12,626 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 15:58:12,626 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.581880 -999.00  +13.60  19.66     32   -2.50 1 1 1 1 1   887    0 15.76 -6.51 ----- 22.0 19.7 52.2 25.6 16.8 -31.8 15.8 -32.4 16.6 -31.4 17.7 -30.0
2025-06-13 15:58:12,626 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 15:58:12,626 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 15:58:12,626 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.581880
2025-06-13 15:58:12,627 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 15:58:12,627 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 15:58:12,628 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 15:58:12,628 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 15:58:12,628 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 15:58:12,628 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T15:58:05', tmtdew=18.5, humidity=27.74, cloud=0.0, wind=18.93, temperature=13.97, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T13:57:54.432', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 15:58:12,629 [DEBUG][       Thread-260231][   transport.py][1871] : EOF in transport thread
2025-06-13 15:58:12,712 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 15:58:12,728 [DEBUG][       Thread-260234][   transport.py][1871] : starting thread (client mode): 0x86352ad0
2025-06-13 15:58:12,729 [DEBUG][       Thread-260234][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 15:58:12,744 [DEBUG][       Thread-260234][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 15:58:12,744 [ INFO][       Thread-260234][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 15:58:12,752 [DEBUG][       Thread-260234][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 15:58:12,752 [DEBUG][       Thread-260234][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 15:58:12,752 [DEBUG][       Thread-260234][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 15:58:12,752 [DEBUG][       Thread-260234][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:58:12,752 [DEBUG][       Thread-260234][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:58:12,752 [DEBUG][       Thread-260234][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:58:12,752 [DEBUG][       Thread-260234][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:58:12,752 [DEBUG][       Thread-260234][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 15:58:12,752 [DEBUG][       Thread-260234][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 15:58:12,752 [DEBUG][       Thread-260234][   transport.py][1871] : client lang: <none>
2025-06-13 15:58:12,752 [DEBUG][       Thread-260234][   transport.py][1871] : server lang: <none>
2025-06-13 15:58:12,752 [DEBUG][       Thread-260234][   transport.py][1871] : kex follows: False
2025-06-13 15:58:12,752 [DEBUG][       Thread-260234][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 15:58:12,752 [DEBUG][       Thread-260234][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 15:58:12,753 [DEBUG][       Thread-260234][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 15:58:12,753 [DEBUG][       Thread-260234][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 15:58:12,753 [DEBUG][       Thread-260234][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 15:58:12,753 [DEBUG][       Thread-260234][   transport.py][1871] : Compression: none
2025-06-13 15:58:12,753 [DEBUG][       Thread-260234][   transport.py][1871] : === End of kex handshake ===
2025-06-13 15:58:12,815 [DEBUG][       Thread-260234][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 15:58:12,815 [DEBUG][       Thread-260234][   transport.py][1871] : Switch to new keys ...
2025-06-13 15:58:12,816 [DEBUG][       Thread-260234][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 15:58:12,816 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 15:58:12,817 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 15:58:12,874 [DEBUG][       Thread-260234][   transport.py][1871] : userauth is OK
2025-06-13 15:58:12,874 [DEBUG][       Thread-260234][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 15:58:12,874 [DEBUG][       Thread-260234][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 15:58:12,875 [DEBUG][       Thread-260234][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 15:58:12,875 [DEBUG][       Thread-260234][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 15:58:12,893 [ INFO][       Thread-260234][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 15:58:12,893 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 15:58:12,894 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 15:58:13,522 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:58:13,523 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:58:13,874 [DEBUG][       Thread-260234][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 15:58:13,874 [DEBUG][       Thread-260234][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 15:58:13,924 [DEBUG][       Thread-260234][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 15:58:13,924 [DEBUG][       Thread-260234][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 15:58:13,933 [DEBUG][       Thread-260234][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 15:58:13,952 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 15:58:13,952 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 15:58:13,965 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 15:58:13,973 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 15:58:13,973 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 15:58:13,973 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 15:58:13,981 [DEBUG][       Thread-260234][   transport.py][1871] : EOF in transport thread
2025-06-13 15:58:20,478 [DEBUG][Thread-260236 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:58:21,717 [DEBUG][Thread-260237 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:58:22,265 [DEBUG][Thread-260238 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:58:22,798 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:58:22,799 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:58:23,978 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 15:58:23,979 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 15:58:23,979 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 15:58:23,982 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 15:58:24,441 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 15, 58, 5), 18.5, 27.74, 0.0, 18.93, 13.97, 0, 0, 0, 2, 0, 0),)
2025-06-13 15:58:24,441 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 15:58:05
2025-06-13 15:58:24,522 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 15:58:24,526 [DEBUG][       Thread-260239][   transport.py][1871] : starting thread (client mode): 0x867fcd00
2025-06-13 15:58:24,531 [DEBUG][       Thread-260239][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 15:58:24,541 [DEBUG][       Thread-260239][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 15:58:24,541 [ INFO][       Thread-260239][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 15:58:24,545 [DEBUG][       Thread-260239][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 15:58:24,545 [DEBUG][       Thread-260239][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 15:58:24,545 [DEBUG][       Thread-260239][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 15:58:24,545 [DEBUG][       Thread-260239][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:58:24,545 [DEBUG][       Thread-260239][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:58:24,545 [DEBUG][       Thread-260239][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:58:24,545 [DEBUG][       Thread-260239][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:58:24,545 [DEBUG][       Thread-260239][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 15:58:24,545 [DEBUG][       Thread-260239][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 15:58:24,545 [DEBUG][       Thread-260239][   transport.py][1871] : client lang: <none>
2025-06-13 15:58:24,545 [DEBUG][       Thread-260239][   transport.py][1871] : server lang: <none>
2025-06-13 15:58:24,545 [DEBUG][       Thread-260239][   transport.py][1871] : kex follows: False
2025-06-13 15:58:24,545 [DEBUG][       Thread-260239][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 15:58:24,545 [DEBUG][       Thread-260239][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 15:58:24,545 [DEBUG][       Thread-260239][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 15:58:24,545 [DEBUG][       Thread-260239][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 15:58:24,545 [DEBUG][       Thread-260239][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 15:58:24,545 [DEBUG][       Thread-260239][   transport.py][1871] : Compression: none
2025-06-13 15:58:24,545 [DEBUG][       Thread-260239][   transport.py][1871] : === End of kex handshake ===
2025-06-13 15:58:24,562 [DEBUG][       Thread-260239][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 15:58:24,563 [DEBUG][       Thread-260239][   transport.py][1871] : Switch to new keys ...
2025-06-13 15:58:24,563 [DEBUG][       Thread-260239][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 15:58:24,563 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 15:58:24,564 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 15:58:24,607 [DEBUG][       Thread-260239][   transport.py][1871] : userauth is OK
2025-06-13 15:58:24,631 [ INFO][       Thread-260239][   transport.py][1871] : Authentication (password) successful!
2025-06-13 15:58:24,632 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 15:58:25,261 [DEBUG][       Thread-260239][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 15:58:25,262 [DEBUG][       Thread-260239][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 15:58:25,305 [DEBUG][       Thread-260239][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 15:58:25,305 [DEBUG][       Thread-260239][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 15:58:25,308 [DEBUG][       Thread-260239][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 15:58:25,322 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 15:58:25,322 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 15:58:25,324 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 15:58:25,326 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 15:58:25,332 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 15:58:25,334 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 15:58:25,334 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 15:58:25,335 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 15:58:25,335 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.581880 -999.00  +13.60  19.66     32   -2.50 1 1 1 1 1   887    0 15.76 -6.51 ----- 22.0 19.7 52.2 25.6 16.8 -31.8 15.8 -32.4 16.6 -31.4 17.7 -30.0
2025-06-13 15:58:25,335 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 15:58:25,335 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 15:58:25,335 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.581880
2025-06-13 15:58:25,335 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 15:58:25,336 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 15:58:25,336 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 15:58:25,336 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 15:58:25,336 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 15:58:25,336 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T15:58:05', tmtdew=18.5, humidity=27.74, cloud=0.0, wind=18.93, temperature=13.97, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T13:57:54.432', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 15:58:25,336 [DEBUG][       Thread-260239][   transport.py][1871] : EOF in transport thread
2025-06-13 15:58:25,420 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 15:58:25,429 [DEBUG][       Thread-260242][   transport.py][1871] : starting thread (client mode): 0x863efac0
2025-06-13 15:58:25,429 [DEBUG][       Thread-260242][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 15:58:25,444 [DEBUG][       Thread-260242][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 15:58:25,445 [ INFO][       Thread-260242][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 15:58:25,452 [DEBUG][       Thread-260242][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 15:58:25,452 [DEBUG][       Thread-260242][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 15:58:25,453 [DEBUG][       Thread-260242][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 15:58:25,453 [DEBUG][       Thread-260242][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:58:25,453 [DEBUG][       Thread-260242][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:58:25,453 [DEBUG][       Thread-260242][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:58:25,453 [DEBUG][       Thread-260242][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:58:25,453 [DEBUG][       Thread-260242][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 15:58:25,453 [DEBUG][       Thread-260242][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 15:58:25,453 [DEBUG][       Thread-260242][   transport.py][1871] : client lang: <none>
2025-06-13 15:58:25,453 [DEBUG][       Thread-260242][   transport.py][1871] : server lang: <none>
2025-06-13 15:58:25,453 [DEBUG][       Thread-260242][   transport.py][1871] : kex follows: False
2025-06-13 15:58:25,453 [DEBUG][       Thread-260242][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 15:58:25,453 [DEBUG][       Thread-260242][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 15:58:25,453 [DEBUG][       Thread-260242][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 15:58:25,453 [DEBUG][       Thread-260242][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 15:58:25,453 [DEBUG][       Thread-260242][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 15:58:25,453 [DEBUG][       Thread-260242][   transport.py][1871] : Compression: none
2025-06-13 15:58:25,453 [DEBUG][       Thread-260242][   transport.py][1871] : === End of kex handshake ===
2025-06-13 15:58:25,510 [DEBUG][       Thread-260242][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 15:58:25,511 [DEBUG][       Thread-260242][   transport.py][1871] : Switch to new keys ...
2025-06-13 15:58:25,512 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 15:58:25,512 [DEBUG][       Thread-260242][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 15:58:25,513 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 15:58:25,566 [DEBUG][       Thread-260242][   transport.py][1871] : userauth is OK
2025-06-13 15:58:25,567 [DEBUG][       Thread-260242][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 15:58:25,567 [DEBUG][       Thread-260242][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 15:58:25,567 [DEBUG][       Thread-260242][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 15:58:25,567 [DEBUG][       Thread-260242][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 15:58:25,590 [ INFO][       Thread-260242][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 15:58:25,591 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 15:58:25,591 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 15:58:26,595 [DEBUG][       Thread-260242][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 15:58:26,595 [DEBUG][       Thread-260242][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 15:58:26,643 [DEBUG][       Thread-260242][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 15:58:26,643 [DEBUG][       Thread-260242][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 15:58:26,652 [DEBUG][       Thread-260242][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 15:58:26,660 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 15:58:26,660 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 15:58:26,668 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 15:58:26,676 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 15:58:26,677 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 15:58:26,677 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 15:58:26,685 [DEBUG][       Thread-260242][   transport.py][1871] : EOF in transport thread
2025-06-13 15:58:29,511 [DEBUG][Thread-260244 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:58:36,686 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 15:58:36,686 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 15:58:36,686 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 15:58:36,689 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 15:58:37,147 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 15, 58, 5), 18.5, 27.74, 0.0, 18.93, 13.97, 0, 0, 0, 2, 0, 0),)
2025-06-13 15:58:37,147 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 15:58:05
2025-06-13 15:58:37,228 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 15:58:37,233 [DEBUG][       Thread-260245][   transport.py][1871] : starting thread (client mode): 0x863c9060
2025-06-13 15:58:37,234 [DEBUG][       Thread-260245][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 15:58:37,252 [DEBUG][       Thread-260245][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 15:58:37,252 [ INFO][       Thread-260245][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 15:58:37,255 [DEBUG][       Thread-260245][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 15:58:37,255 [DEBUG][       Thread-260245][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 15:58:37,255 [DEBUG][       Thread-260245][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 15:58:37,255 [DEBUG][       Thread-260245][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:58:37,255 [DEBUG][       Thread-260245][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 15:58:37,255 [DEBUG][       Thread-260245][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:58:37,255 [DEBUG][       Thread-260245][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 15:58:37,255 [DEBUG][       Thread-260245][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 15:58:37,256 [DEBUG][       Thread-260245][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 15:58:37,256 [DEBUG][       Thread-260245][   transport.py][1871] : client lang: <none>
2025-06-13 15:58:37,256 [DEBUG][       Thread-260245][   transport.py][1871] : server lang: <none>
2025-06-13 15:58:37,256 [DEBUG][       Thread-260245][   transport.py][1871] : kex follows: False
2025-06-13 15:58:37,256 [DEBUG][       Thread-260245][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 15:58:37,256 [DEBUG][       Thread-260245][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 15:58:37,256 [DEBUG][       Thread-260245][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 15:58:37,256 [DEBUG][       Thread-260245][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 15:58:37,256 [DEBUG][       Thread-260245][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 15:58:37,256 [DEBUG][       Thread-260245][   transport.py][1871] : Compression: none
2025-06-13 15:58:37,256 [DEBUG][       Thread-260245][   transport.py][1871] : === End of kex handshake ===
2025-06-13 15:58:37,270 [DEBUG][       Thread-260245][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 15:58:37,271 [DEBUG][       Thread-260245][   transport.py][1871] : Switch to new keys ...
2025-06-13 15:58:37,271 [DEBUG][       Thread-260245][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 15:58:37,272 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 15:58:37,272 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 15:58:37,273 [DEBUG][       Thread-260245][   transport.py][1871] : userauth is OK
2025-06-13 15:58:37,286 [ INFO][       Thread-260245][   transport.py][1871] : Authentication (password) successful!
2025-06-13 15:58:37,287 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 15:58:37,826 [DEBUG][       Thread-260245][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 15:58:37,826 [DEBUG][       Thread-260245][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 15:58:37,869 [DEBUG][       Thread-260245][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 15:58:37,869 [DEBUG][       Thread-260245][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 15:58:37,871 [DEBUG][       Thread-260245][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 15:58:37,883 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 15:58:37,883 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 15:58:37,884 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 15:58:37,885 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 15:58:37,888 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 15:58:37,888 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 15:58:37,888 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 15:58:37,888 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 15:58:37,889 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.582227 -999.00  +13.50  24.70     32   -2.50 1 1 1 1 1   887    0 15.59 -5.52 ----- 24.2 24.7 45.2 30.8 16.7 -31.8 15.8 -32.8 16.7 -31.9 17.7 -30.1
2025-06-13 15:58:37,889 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 15:58:37,889 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 15:58:37,889 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.582227
2025-06-13 15:58:37,889 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 15:58:37,889 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 15:58:37,889 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 15:58:37,889 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 15:58:37,889 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 15:58:37,889 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T15:58:05', tmtdew=18.5, humidity=27.74, cloud=0.0, wind=18.93, temperature=13.97, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T13:58:24.413', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 15:58:37,890 [DEBUG][       Thread-260245][   transport.py][1871] : EOF in transport thread
2025-06-13 15:58:37,963 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 15:58:38,530 [DEBUG][Thread-260248 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:58:47,549 [DEBUG][Thread-260249 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:58:56,571 [DEBUG][Thread-260250 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:59:05,593 [DEBUG][Thread-260251 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:59:13,659 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:59:13,660 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:59:14,615 [DEBUG][Thread-260252 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:59:22,300 [DEBUG][Thread-260253 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:59:22,881 [DEBUG][Thread-260254 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:59:23,635 [DEBUG][Thread-260255 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:59:23,943 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:59:23,945 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:59:32,654 [DEBUG][Thread-260256 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:59:41,673 [DEBUG][Thread-260257 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:59:50,692 [DEBUG][Thread-260258 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 15:59:59,717 [DEBUG][Thread-260259 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:00:08,738 [DEBUG][Thread-260260 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:00:13,795 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:00:13,796 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:00:17,758 [DEBUG][Thread-260261 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:00:22,353 [DEBUG][Thread-260262 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:00:23,966 [DEBUG][Thread-260263 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:00:25,055 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:00:25,057 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:00:26,781 [DEBUG][Thread-260264 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:00:35,804 [DEBUG][Thread-260265 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:00:44,827 [DEBUG][Thread-260266 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:00:46,612 [WARNING][ poll_weather_worker][      driver.py][ 286] : Unable to open ssh connection for writing weather state to io.saao.ac.za: [Errno 110] Connection timed out
2025-06-13 16:00:53,847 [DEBUG][Thread-260267 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:00:56,622 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 16:00:56,622 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 16:00:56,623 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 16:00:56,625 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 16:00:57,127 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 16, 0, 12), 18.31, 27.81, 0.0, 16.9, 13.85, 0, 0, 0, 2, 0, 0),)
2025-06-13 16:00:57,127 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 16:00:12
2025-06-13 16:00:57,208 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 16:00:57,213 [DEBUG][       Thread-260268][   transport.py][1871] : starting thread (client mode): 0x863cb7f0
2025-06-13 16:00:57,213 [DEBUG][       Thread-260268][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 16:00:57,232 [DEBUG][       Thread-260268][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 16:00:57,232 [ INFO][       Thread-260268][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 16:00:57,234 [DEBUG][       Thread-260268][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 16:00:57,234 [DEBUG][       Thread-260268][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 16:00:57,234 [DEBUG][       Thread-260268][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 16:00:57,234 [DEBUG][       Thread-260268][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:00:57,234 [DEBUG][       Thread-260268][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:00:57,234 [DEBUG][       Thread-260268][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:00:57,234 [DEBUG][       Thread-260268][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:00:57,234 [DEBUG][       Thread-260268][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 16:00:57,234 [DEBUG][       Thread-260268][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 16:00:57,234 [DEBUG][       Thread-260268][   transport.py][1871] : client lang: <none>
2025-06-13 16:00:57,234 [DEBUG][       Thread-260268][   transport.py][1871] : server lang: <none>
2025-06-13 16:00:57,234 [DEBUG][       Thread-260268][   transport.py][1871] : kex follows: False
2025-06-13 16:00:57,234 [DEBUG][       Thread-260268][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 16:00:57,234 [DEBUG][       Thread-260268][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 16:00:57,234 [DEBUG][       Thread-260268][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 16:00:57,234 [DEBUG][       Thread-260268][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 16:00:57,234 [DEBUG][       Thread-260268][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 16:00:57,234 [DEBUG][       Thread-260268][   transport.py][1871] : Compression: none
2025-06-13 16:00:57,234 [DEBUG][       Thread-260268][   transport.py][1871] : === End of kex handshake ===
2025-06-13 16:00:57,251 [DEBUG][       Thread-260268][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 16:00:57,252 [DEBUG][       Thread-260268][   transport.py][1871] : Switch to new keys ...
2025-06-13 16:00:57,252 [DEBUG][       Thread-260268][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 16:00:57,253 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 16:00:57,253 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 16:00:57,254 [DEBUG][       Thread-260268][   transport.py][1871] : userauth is OK
2025-06-13 16:00:57,267 [ INFO][       Thread-260268][   transport.py][1871] : Authentication (password) successful!
2025-06-13 16:00:57,267 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 16:00:58,036 [DEBUG][       Thread-260268][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 16:00:58,036 [DEBUG][       Thread-260268][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 16:00:58,077 [DEBUG][       Thread-260268][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 16:00:58,077 [DEBUG][       Thread-260268][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 16:00:58,080 [DEBUG][       Thread-260268][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 16:00:58,093 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 16:00:58,093 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 16:00:58,095 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 16:00:58,097 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 16:00:58,103 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 16:00:58,105 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 16:00:58,106 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 16:00:58,106 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 16:00:58,106 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.583269 -999.00  +13.60  21.89     32   -2.50 1 1 1 1 1   887    0 16.17 -0.11 ----- 23.5 21.9 53.0 26.0 -999.0 -999.0 15.8 -32.5 16.6 -31.8 17.6 -30.0
2025-06-13 16:00:58,106 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 16:00:58,107 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 16:00:58,107 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.583269
2025-06-13 16:00:58,107 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 16:00:58,108 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 16:00:58,108 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 16:00:58,108 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 16:00:58,108 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 16:00:58,108 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T16:00:12', tmtdew=18.31, humidity=27.81, cloud=0.0, wind=16.9, temperature=13.85, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T13:59:54.442', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 16:00:58,109 [DEBUG][       Thread-260268][   transport.py][1871] : EOF in transport thread
2025-06-13 16:00:58,184 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 16:00:58,196 [DEBUG][       Thread-260271][   transport.py][1871] : starting thread (client mode): 0x86352ad0
2025-06-13 16:00:58,196 [DEBUG][       Thread-260271][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 16:00:58,211 [DEBUG][       Thread-260271][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 16:00:58,211 [ INFO][       Thread-260271][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 16:00:58,219 [DEBUG][       Thread-260271][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 16:00:58,219 [DEBUG][       Thread-260271][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 16:00:58,219 [DEBUG][       Thread-260271][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 16:00:58,219 [DEBUG][       Thread-260271][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:00:58,219 [DEBUG][       Thread-260271][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:00:58,219 [DEBUG][       Thread-260271][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:00:58,219 [DEBUG][       Thread-260271][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:00:58,219 [DEBUG][       Thread-260271][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 16:00:58,219 [DEBUG][       Thread-260271][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 16:00:58,219 [DEBUG][       Thread-260271][   transport.py][1871] : client lang: <none>
2025-06-13 16:00:58,219 [DEBUG][       Thread-260271][   transport.py][1871] : server lang: <none>
2025-06-13 16:00:58,220 [DEBUG][       Thread-260271][   transport.py][1871] : kex follows: False
2025-06-13 16:00:58,220 [DEBUG][       Thread-260271][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 16:00:58,220 [DEBUG][       Thread-260271][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 16:00:58,220 [DEBUG][       Thread-260271][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 16:00:58,220 [DEBUG][       Thread-260271][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 16:00:58,220 [DEBUG][       Thread-260271][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 16:00:58,220 [DEBUG][       Thread-260271][   transport.py][1871] : Compression: none
2025-06-13 16:00:58,220 [DEBUG][       Thread-260271][   transport.py][1871] : === End of kex handshake ===
2025-06-13 16:00:58,282 [DEBUG][       Thread-260271][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 16:00:58,283 [DEBUG][       Thread-260271][   transport.py][1871] : Switch to new keys ...
2025-06-13 16:00:58,283 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 16:00:58,284 [DEBUG][       Thread-260271][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 16:00:58,285 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 16:00:58,346 [DEBUG][       Thread-260271][   transport.py][1871] : userauth is OK
2025-06-13 16:00:58,346 [DEBUG][       Thread-260271][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 16:00:58,346 [DEBUG][       Thread-260271][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 16:00:58,346 [DEBUG][       Thread-260271][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 16:00:58,346 [DEBUG][       Thread-260271][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 16:00:58,372 [ INFO][       Thread-260271][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 16:00:58,373 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 16:00:58,373 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 16:00:59,341 [DEBUG][       Thread-260271][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 16:00:59,342 [DEBUG][       Thread-260271][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 16:00:59,391 [DEBUG][       Thread-260271][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 16:00:59,391 [DEBUG][       Thread-260271][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 16:00:59,399 [DEBUG][       Thread-260271][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 16:00:59,407 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 16:00:59,407 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 16:00:59,415 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 16:00:59,423 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 16:00:59,423 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 16:00:59,423 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 16:00:59,431 [DEBUG][       Thread-260271][   transport.py][1871] : EOF in transport thread
2025-06-13 16:01:02,869 [DEBUG][Thread-260273 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:01:09,432 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 16:01:09,432 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 16:01:09,432 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 16:01:09,435 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 16:01:09,927 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 16, 0, 43), 18.32, 27.8, 0.0, 14.98, 13.83, 0, 0, 0, 2, 0, 0),)
2025-06-13 16:01:09,927 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 16:00:43
2025-06-13 16:01:10,009 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 16:01:10,015 [DEBUG][       Thread-260274][   transport.py][1871] : starting thread (client mode): 0x867fc820
2025-06-13 16:01:10,016 [DEBUG][       Thread-260274][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 16:01:10,037 [DEBUG][       Thread-260274][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 16:01:10,037 [ INFO][       Thread-260274][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 16:01:10,038 [DEBUG][       Thread-260274][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 16:01:10,039 [DEBUG][       Thread-260274][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 16:01:10,039 [DEBUG][       Thread-260274][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 16:01:10,039 [DEBUG][       Thread-260274][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:01:10,039 [DEBUG][       Thread-260274][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:01:10,039 [DEBUG][       Thread-260274][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:01:10,039 [DEBUG][       Thread-260274][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:01:10,039 [DEBUG][       Thread-260274][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 16:01:10,039 [DEBUG][       Thread-260274][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 16:01:10,039 [DEBUG][       Thread-260274][   transport.py][1871] : client lang: <none>
2025-06-13 16:01:10,039 [DEBUG][       Thread-260274][   transport.py][1871] : server lang: <none>
2025-06-13 16:01:10,039 [DEBUG][       Thread-260274][   transport.py][1871] : kex follows: False
2025-06-13 16:01:10,039 [DEBUG][       Thread-260274][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 16:01:10,039 [DEBUG][       Thread-260274][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 16:01:10,039 [DEBUG][       Thread-260274][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 16:01:10,039 [DEBUG][       Thread-260274][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 16:01:10,039 [DEBUG][       Thread-260274][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 16:01:10,039 [DEBUG][       Thread-260274][   transport.py][1871] : Compression: none
2025-06-13 16:01:10,039 [DEBUG][       Thread-260274][   transport.py][1871] : === End of kex handshake ===
2025-06-13 16:01:10,048 [DEBUG][       Thread-260274][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 16:01:10,049 [DEBUG][       Thread-260274][   transport.py][1871] : Switch to new keys ...
2025-06-13 16:01:10,049 [DEBUG][       Thread-260274][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 16:01:10,049 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 16:01:10,049 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 16:01:10,050 [DEBUG][       Thread-260274][   transport.py][1871] : userauth is OK
2025-06-13 16:01:10,064 [ INFO][       Thread-260274][   transport.py][1871] : Authentication (password) successful!
2025-06-13 16:01:10,064 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 16:01:10,695 [DEBUG][       Thread-260274][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 16:01:10,695 [DEBUG][       Thread-260274][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 16:01:10,737 [DEBUG][       Thread-260274][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 16:01:10,737 [DEBUG][       Thread-260274][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 16:01:10,741 [DEBUG][       Thread-260274][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 16:01:10,755 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 16:01:10,755 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 16:01:10,757 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 16:01:10,759 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 16:01:10,765 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 16:01:10,767 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 16:01:10,767 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 16:01:10,768 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 16:01:10,768 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.583963 -999.00  +13.50  21.54     32   -2.40 1 1 1 1 1   887    0 15.62 0.54 ----- 21.9 21.5 56.6 26.2 16.6 -31.7 15.8 -32.6 16.6 -31.5 17.6 -30.0
2025-06-13 16:01:10,768 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 16:01:10,768 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 16:01:10,768 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.583963
2025-06-13 16:01:10,769 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 16:01:10,769 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 16:01:10,770 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 16:01:10,770 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 16:01:10,770 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 16:01:10,770 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T16:00:43', tmtdew=18.32, humidity=27.8, cloud=0.0, wind=14.98, temperature=13.83, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T14:00:54.403', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 16:01:10,771 [DEBUG][       Thread-260274][   transport.py][1871] : EOF in transport thread
2025-06-13 16:01:10,853 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 16:01:10,866 [DEBUG][       Thread-260277][   transport.py][1871] : starting thread (client mode): 0x86893be0
2025-06-13 16:01:10,866 [DEBUG][       Thread-260277][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 16:01:10,881 [DEBUG][       Thread-260277][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 16:01:10,881 [ INFO][       Thread-260277][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 16:01:10,889 [DEBUG][       Thread-260277][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 16:01:10,889 [DEBUG][       Thread-260277][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 16:01:10,889 [DEBUG][       Thread-260277][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 16:01:10,889 [DEBUG][       Thread-260277][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:01:10,889 [DEBUG][       Thread-260277][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:01:10,889 [DEBUG][       Thread-260277][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:01:10,889 [DEBUG][       Thread-260277][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:01:10,889 [DEBUG][       Thread-260277][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 16:01:10,889 [DEBUG][       Thread-260277][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 16:01:10,889 [DEBUG][       Thread-260277][   transport.py][1871] : client lang: <none>
2025-06-13 16:01:10,889 [DEBUG][       Thread-260277][   transport.py][1871] : server lang: <none>
2025-06-13 16:01:10,889 [DEBUG][       Thread-260277][   transport.py][1871] : kex follows: False
2025-06-13 16:01:10,890 [DEBUG][       Thread-260277][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 16:01:10,890 [DEBUG][       Thread-260277][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 16:01:10,890 [DEBUG][       Thread-260277][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 16:01:10,890 [DEBUG][       Thread-260277][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 16:01:10,890 [DEBUG][       Thread-260277][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 16:01:10,890 [DEBUG][       Thread-260277][   transport.py][1871] : Compression: none
2025-06-13 16:01:10,890 [DEBUG][       Thread-260277][   transport.py][1871] : === End of kex handshake ===
2025-06-13 16:01:10,946 [DEBUG][       Thread-260277][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 16:01:10,946 [DEBUG][       Thread-260277][   transport.py][1871] : Switch to new keys ...
2025-06-13 16:01:10,947 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 16:01:10,947 [DEBUG][       Thread-260277][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 16:01:10,948 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 16:01:11,002 [DEBUG][       Thread-260277][   transport.py][1871] : userauth is OK
2025-06-13 16:01:11,002 [DEBUG][       Thread-260277][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 16:01:11,002 [DEBUG][       Thread-260277][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 16:01:11,003 [DEBUG][       Thread-260277][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 16:01:11,003 [DEBUG][       Thread-260277][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 16:01:11,021 [ INFO][       Thread-260277][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 16:01:11,021 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 16:01:11,022 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 16:01:11,906 [DEBUG][Thread-260279 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:01:12,008 [DEBUG][       Thread-260277][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 16:01:12,008 [DEBUG][       Thread-260277][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 16:01:12,056 [DEBUG][       Thread-260277][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 16:01:12,056 [DEBUG][       Thread-260277][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 16:01:12,066 [DEBUG][       Thread-260277][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 16:01:12,075 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 16:01:12,075 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 16:01:12,084 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 16:01:12,094 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 16:01:12,094 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 16:01:12,095 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 16:01:12,107 [DEBUG][       Thread-260277][   transport.py][1871] : EOF in transport thread
2025-06-13 16:01:13,947 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:01:13,948 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:01:20,951 [DEBUG][Thread-260280 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:01:22,105 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 16:01:22,105 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 16:01:22,105 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 16:01:22,106 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 16:01:22,402 [DEBUG][Thread-260281 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:01:22,581 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 16, 0, 43), 18.32, 27.8, 0.0, 14.98, 13.83, 0, 0, 0, 2, 0, 0),)
2025-06-13 16:01:22,581 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 16:00:43
2025-06-13 16:01:22,662 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 16:01:22,666 [DEBUG][       Thread-260282][   transport.py][1871] : starting thread (client mode): 0x863c8280
2025-06-13 16:01:22,666 [DEBUG][       Thread-260282][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 16:01:22,688 [DEBUG][       Thread-260282][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 16:01:22,688 [ INFO][       Thread-260282][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 16:01:22,692 [DEBUG][       Thread-260282][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 16:01:22,692 [DEBUG][       Thread-260282][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 16:01:22,692 [DEBUG][       Thread-260282][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 16:01:22,692 [DEBUG][       Thread-260282][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:01:22,692 [DEBUG][       Thread-260282][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:01:22,692 [DEBUG][       Thread-260282][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:01:22,692 [DEBUG][       Thread-260282][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:01:22,692 [DEBUG][       Thread-260282][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 16:01:22,692 [DEBUG][       Thread-260282][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 16:01:22,692 [DEBUG][       Thread-260282][   transport.py][1871] : client lang: <none>
2025-06-13 16:01:22,692 [DEBUG][       Thread-260282][   transport.py][1871] : server lang: <none>
2025-06-13 16:01:22,692 [DEBUG][       Thread-260282][   transport.py][1871] : kex follows: False
2025-06-13 16:01:22,692 [DEBUG][       Thread-260282][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 16:01:22,692 [DEBUG][       Thread-260282][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 16:01:22,692 [DEBUG][       Thread-260282][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 16:01:22,692 [DEBUG][       Thread-260282][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 16:01:22,692 [DEBUG][       Thread-260282][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 16:01:22,692 [DEBUG][       Thread-260282][   transport.py][1871] : Compression: none
2025-06-13 16:01:22,692 [DEBUG][       Thread-260282][   transport.py][1871] : === End of kex handshake ===
2025-06-13 16:01:22,709 [DEBUG][       Thread-260282][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 16:01:22,710 [DEBUG][       Thread-260282][   transport.py][1871] : Switch to new keys ...
2025-06-13 16:01:22,710 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 16:01:22,710 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 16:01:22,711 [DEBUG][       Thread-260282][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 16:01:22,712 [DEBUG][       Thread-260282][   transport.py][1871] : userauth is OK
2025-06-13 16:01:22,736 [ INFO][       Thread-260282][   transport.py][1871] : Authentication (password) successful!
2025-06-13 16:01:22,736 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 16:01:23,364 [DEBUG][       Thread-260282][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 16:01:23,365 [DEBUG][       Thread-260282][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 16:01:23,409 [DEBUG][       Thread-260282][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 16:01:23,409 [DEBUG][       Thread-260282][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 16:01:23,412 [DEBUG][       Thread-260282][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 16:01:23,426 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 16:01:23,426 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 16:01:23,428 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 16:01:23,429 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 16:01:23,435 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 16:01:23,436 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 16:01:23,436 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 16:01:23,437 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 16:01:23,437 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.583963 -999.00  +13.50  21.54     32   -2.40 1 1 1 1 1   887    0 15.62 0.54 ----- 21.9 21.5 56.6 26.2 16.6 -31.7 15.8 -32.6 16.6 -31.5 17.6 -30.0
2025-06-13 16:01:23,437 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 16:01:23,437 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 16:01:23,437 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.583963
2025-06-13 16:01:23,438 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 16:01:23,438 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 16:01:23,438 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 16:01:23,438 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 16:01:23,438 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 16:01:23,439 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T16:00:43', tmtdew=18.32, humidity=27.8, cloud=0.0, wind=14.98, temperature=13.83, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T14:00:54.403', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 16:01:23,440 [DEBUG][       Thread-260282][   transport.py][1871] : EOF in transport thread
2025-06-13 16:01:23,529 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 16:01:23,538 [DEBUG][       Thread-260285][   transport.py][1871] : starting thread (client mode): 0x867b5cf0
2025-06-13 16:01:23,538 [DEBUG][       Thread-260285][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 16:01:23,552 [DEBUG][       Thread-260285][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 16:01:23,552 [ INFO][       Thread-260285][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 16:01:23,564 [DEBUG][       Thread-260285][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 16:01:23,565 [DEBUG][       Thread-260285][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 16:01:23,565 [DEBUG][       Thread-260285][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 16:01:23,565 [DEBUG][       Thread-260285][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:01:23,565 [DEBUG][       Thread-260285][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:01:23,565 [DEBUG][       Thread-260285][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:01:23,565 [DEBUG][       Thread-260285][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:01:23,565 [DEBUG][       Thread-260285][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 16:01:23,565 [DEBUG][       Thread-260285][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 16:01:23,565 [DEBUG][       Thread-260285][   transport.py][1871] : client lang: <none>
2025-06-13 16:01:23,565 [DEBUG][       Thread-260285][   transport.py][1871] : server lang: <none>
2025-06-13 16:01:23,565 [DEBUG][       Thread-260285][   transport.py][1871] : kex follows: False
2025-06-13 16:01:23,565 [DEBUG][       Thread-260285][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 16:01:23,565 [DEBUG][       Thread-260285][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 16:01:23,565 [DEBUG][       Thread-260285][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 16:01:23,565 [DEBUG][       Thread-260285][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 16:01:23,565 [DEBUG][       Thread-260285][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 16:01:23,565 [DEBUG][       Thread-260285][   transport.py][1871] : Compression: none
2025-06-13 16:01:23,565 [DEBUG][       Thread-260285][   transport.py][1871] : === End of kex handshake ===
2025-06-13 16:01:23,621 [DEBUG][       Thread-260285][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 16:01:23,621 [DEBUG][       Thread-260285][   transport.py][1871] : Switch to new keys ...
2025-06-13 16:01:23,622 [DEBUG][       Thread-260285][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 16:01:23,622 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 16:01:23,623 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 16:01:23,681 [DEBUG][       Thread-260285][   transport.py][1871] : userauth is OK
2025-06-13 16:01:23,681 [DEBUG][       Thread-260285][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 16:01:23,681 [DEBUG][       Thread-260285][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 16:01:23,682 [DEBUG][       Thread-260285][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 16:01:23,682 [DEBUG][       Thread-260285][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 16:01:23,700 [ INFO][       Thread-260285][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 16:01:23,700 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 16:01:23,701 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 16:01:24,680 [DEBUG][       Thread-260285][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 16:01:24,680 [DEBUG][       Thread-260285][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 16:01:24,731 [DEBUG][       Thread-260285][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 16:01:24,732 [DEBUG][       Thread-260285][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 16:01:24,746 [DEBUG][       Thread-260285][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 16:01:24,758 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 16:01:24,759 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 16:01:24,767 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 16:01:24,776 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 16:01:24,776 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 16:01:24,777 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 16:01:24,784 [DEBUG][       Thread-260285][   transport.py][1871] : EOF in transport thread
2025-06-13 16:01:25,112 [DEBUG][Thread-260287 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:01:26,182 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:01:26,182 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:01:29,970 [DEBUG][Thread-260288 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:01:34,787 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 16:01:34,787 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 16:01:34,787 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 16:01:34,790 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 16:01:35,269 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 16, 1, 29), 18.33, 27.79, 0.0, 21.03, 13.89, 0, 0, 0, 2, 0, 0),)
2025-06-13 16:01:35,269 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 16:01:29
2025-06-13 16:01:35,351 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 16:01:35,356 [DEBUG][       Thread-260289][   transport.py][1871] : starting thread (client mode): 0x863cb7f0
2025-06-13 16:01:35,356 [DEBUG][       Thread-260289][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 16:01:35,377 [DEBUG][       Thread-260289][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 16:01:35,377 [ INFO][       Thread-260289][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 16:01:35,379 [DEBUG][       Thread-260289][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 16:01:35,379 [DEBUG][       Thread-260289][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 16:01:35,379 [DEBUG][       Thread-260289][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 16:01:35,379 [DEBUG][       Thread-260289][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:01:35,379 [DEBUG][       Thread-260289][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:01:35,379 [DEBUG][       Thread-260289][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:01:35,379 [DEBUG][       Thread-260289][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:01:35,379 [DEBUG][       Thread-260289][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 16:01:35,379 [DEBUG][       Thread-260289][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 16:01:35,379 [DEBUG][       Thread-260289][   transport.py][1871] : client lang: <none>
2025-06-13 16:01:35,379 [DEBUG][       Thread-260289][   transport.py][1871] : server lang: <none>
2025-06-13 16:01:35,379 [DEBUG][       Thread-260289][   transport.py][1871] : kex follows: False
2025-06-13 16:01:35,379 [DEBUG][       Thread-260289][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 16:01:35,379 [DEBUG][       Thread-260289][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 16:01:35,379 [DEBUG][       Thread-260289][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 16:01:35,379 [DEBUG][       Thread-260289][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 16:01:35,379 [DEBUG][       Thread-260289][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 16:01:35,379 [DEBUG][       Thread-260289][   transport.py][1871] : Compression: none
2025-06-13 16:01:35,379 [DEBUG][       Thread-260289][   transport.py][1871] : === End of kex handshake ===
2025-06-13 16:01:35,389 [DEBUG][       Thread-260289][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 16:01:35,389 [DEBUG][       Thread-260289][   transport.py][1871] : Switch to new keys ...
2025-06-13 16:01:35,389 [DEBUG][       Thread-260289][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 16:01:35,390 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 16:01:35,390 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 16:01:35,392 [DEBUG][       Thread-260289][   transport.py][1871] : userauth is OK
2025-06-13 16:01:35,404 [ INFO][       Thread-260289][   transport.py][1871] : Authentication (password) successful!
2025-06-13 16:01:35,405 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 16:01:35,968 [DEBUG][       Thread-260289][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 16:01:35,969 [DEBUG][       Thread-260289][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 16:01:36,013 [DEBUG][       Thread-260289][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 16:01:36,013 [DEBUG][       Thread-260289][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 16:01:36,016 [DEBUG][       Thread-260289][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 16:01:36,027 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 16:01:36,027 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 16:01:36,029 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 16:01:36,031 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 16:01:36,037 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 16:01:36,039 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 16:01:36,039 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 16:01:36,040 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 16:01:36,040 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.584310 -999.00  +13.60  20.46     33   -2.20 1 1 1 1 1   887    0 16.03 0.01 ----- 20.2 20.5 54.6 24.5 16.6 -31.3 15.8 -32.6 16.6 -30.9 17.6 -29.7
2025-06-13 16:01:36,040 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 16:01:36,040 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 16:01:36,040 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.584310
2025-06-13 16:01:36,041 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 16:01:36,041 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 16:01:36,041 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 16:01:36,041 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 16:01:36,042 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 16:01:36,042 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T16:01:29', tmtdew=18.33, humidity=27.79, cloud=0.0, wind=21.03, temperature=13.89, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T14:01:24.384', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 16:01:36,043 [DEBUG][       Thread-260289][   transport.py][1871] : EOF in transport thread
2025-06-13 16:01:36,125 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 16:01:36,138 [DEBUG][       Thread-260292][   transport.py][1871] : starting thread (client mode): 0x867ffac0
2025-06-13 16:01:36,138 [DEBUG][       Thread-260292][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 16:01:36,153 [DEBUG][       Thread-260292][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 16:01:36,153 [ INFO][       Thread-260292][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 16:01:36,161 [DEBUG][       Thread-260292][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 16:01:36,161 [DEBUG][       Thread-260292][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 16:01:36,161 [DEBUG][       Thread-260292][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 16:01:36,162 [DEBUG][       Thread-260292][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:01:36,162 [DEBUG][       Thread-260292][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:01:36,162 [DEBUG][       Thread-260292][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:01:36,162 [DEBUG][       Thread-260292][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:01:36,162 [DEBUG][       Thread-260292][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 16:01:36,162 [DEBUG][       Thread-260292][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 16:01:36,162 [DEBUG][       Thread-260292][   transport.py][1871] : client lang: <none>
2025-06-13 16:01:36,162 [DEBUG][       Thread-260292][   transport.py][1871] : server lang: <none>
2025-06-13 16:01:36,162 [DEBUG][       Thread-260292][   transport.py][1871] : kex follows: False
2025-06-13 16:01:36,162 [DEBUG][       Thread-260292][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 16:01:36,162 [DEBUG][       Thread-260292][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 16:01:36,162 [DEBUG][       Thread-260292][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 16:01:36,162 [DEBUG][       Thread-260292][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 16:01:36,162 [DEBUG][       Thread-260292][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 16:01:36,162 [DEBUG][       Thread-260292][   transport.py][1871] : Compression: none
2025-06-13 16:01:36,162 [DEBUG][       Thread-260292][   transport.py][1871] : === End of kex handshake ===
2025-06-13 16:01:36,218 [DEBUG][       Thread-260292][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 16:01:36,219 [DEBUG][       Thread-260292][   transport.py][1871] : Switch to new keys ...
2025-06-13 16:01:36,219 [DEBUG][       Thread-260292][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 16:01:36,220 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 16:01:36,221 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 16:01:36,274 [DEBUG][       Thread-260292][   transport.py][1871] : userauth is OK
2025-06-13 16:01:36,274 [DEBUG][       Thread-260292][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 16:01:36,274 [DEBUG][       Thread-260292][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 16:01:36,274 [DEBUG][       Thread-260292][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 16:01:36,275 [DEBUG][       Thread-260292][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 16:01:36,293 [ INFO][       Thread-260292][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 16:01:36,293 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 16:01:36,294 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 16:01:37,255 [DEBUG][       Thread-260292][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 16:01:37,255 [DEBUG][       Thread-260292][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 16:01:37,304 [DEBUG][       Thread-260292][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 16:01:37,304 [DEBUG][       Thread-260292][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 16:01:37,313 [DEBUG][       Thread-260292][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 16:01:37,322 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 16:01:37,323 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 16:01:37,332 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 16:01:37,341 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 16:01:37,342 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 16:01:37,342 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 16:01:37,350 [DEBUG][       Thread-260292][   transport.py][1871] : EOF in transport thread
2025-06-13 16:01:38,991 [DEBUG][Thread-260294 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:01:47,352 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 16:01:47,353 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 16:01:47,353 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 16:01:47,355 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 16:01:47,837 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 16, 1, 29), 18.33, 27.79, 0.0, 21.03, 13.89, 0, 0, 0, 2, 0, 0),)
2025-06-13 16:01:47,837 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 16:01:29
2025-06-13 16:01:47,918 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 16:01:47,922 [DEBUG][       Thread-260295][   transport.py][1871] : starting thread (client mode): 0x867ffd90
2025-06-13 16:01:47,922 [DEBUG][       Thread-260295][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 16:01:47,941 [DEBUG][       Thread-260295][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 16:01:47,941 [ INFO][       Thread-260295][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 16:01:47,943 [DEBUG][       Thread-260295][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 16:01:47,943 [DEBUG][       Thread-260295][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 16:01:47,943 [DEBUG][       Thread-260295][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 16:01:47,943 [DEBUG][       Thread-260295][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:01:47,943 [DEBUG][       Thread-260295][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:01:47,943 [DEBUG][       Thread-260295][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:01:47,943 [DEBUG][       Thread-260295][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:01:47,943 [DEBUG][       Thread-260295][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 16:01:47,943 [DEBUG][       Thread-260295][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 16:01:47,943 [DEBUG][       Thread-260295][   transport.py][1871] : client lang: <none>
2025-06-13 16:01:47,943 [DEBUG][       Thread-260295][   transport.py][1871] : server lang: <none>
2025-06-13 16:01:47,943 [DEBUG][       Thread-260295][   transport.py][1871] : kex follows: False
2025-06-13 16:01:47,943 [DEBUG][       Thread-260295][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 16:01:47,943 [DEBUG][       Thread-260295][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 16:01:47,943 [DEBUG][       Thread-260295][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 16:01:47,943 [DEBUG][       Thread-260295][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 16:01:47,943 [DEBUG][       Thread-260295][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 16:01:47,943 [DEBUG][       Thread-260295][   transport.py][1871] : Compression: none
2025-06-13 16:01:47,943 [DEBUG][       Thread-260295][   transport.py][1871] : === End of kex handshake ===
2025-06-13 16:01:47,952 [DEBUG][       Thread-260295][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 16:01:47,953 [DEBUG][       Thread-260295][   transport.py][1871] : Switch to new keys ...
2025-06-13 16:01:47,953 [DEBUG][       Thread-260295][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 16:01:47,953 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 16:01:47,953 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 16:01:47,954 [DEBUG][       Thread-260295][   transport.py][1871] : userauth is OK
2025-06-13 16:01:47,968 [ INFO][       Thread-260295][   transport.py][1871] : Authentication (password) successful!
2025-06-13 16:01:47,969 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 16:01:48,035 [DEBUG][Thread-260297 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:01:48,560 [DEBUG][       Thread-260295][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 16:01:48,560 [DEBUG][       Thread-260295][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 16:01:48,601 [DEBUG][       Thread-260295][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 16:01:48,601 [DEBUG][       Thread-260295][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 16:01:48,604 [DEBUG][       Thread-260295][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 16:01:48,610 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 16:01:48,610 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 16:01:48,612 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 16:01:48,614 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 16:01:48,619 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 16:01:48,621 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 16:01:48,621 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 16:01:48,622 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 16:01:48,622 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.584310 -999.00  +13.60  20.46     33   -2.20 1 1 1 1 1   887    0 16.03 0.01 ----- 20.2 20.5 54.6 24.5 16.6 -31.3 15.8 -32.6 16.6 -30.9 17.6 -29.7
2025-06-13 16:01:48,622 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 16:01:48,622 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 16:01:48,622 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.584310
2025-06-13 16:01:48,623 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 16:01:48,623 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 16:01:48,623 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 16:01:48,623 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 16:01:48,623 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 16:01:48,624 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T16:01:29', tmtdew=18.33, humidity=27.79, cloud=0.0, wind=21.03, temperature=13.89, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T14:01:24.384', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 16:01:48,625 [DEBUG][       Thread-260295][   transport.py][1871] : EOF in transport thread
2025-06-13 16:01:48,706 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 16:01:48,716 [DEBUG][       Thread-260299][   transport.py][1871] : starting thread (client mode): 0x863bdf90
2025-06-13 16:01:48,716 [DEBUG][       Thread-260299][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 16:01:48,734 [DEBUG][       Thread-260299][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 16:01:48,734 [ INFO][       Thread-260299][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 16:01:48,742 [DEBUG][       Thread-260299][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 16:01:48,742 [DEBUG][       Thread-260299][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 16:01:48,742 [DEBUG][       Thread-260299][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 16:01:48,742 [DEBUG][       Thread-260299][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:01:48,742 [DEBUG][       Thread-260299][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:01:48,743 [DEBUG][       Thread-260299][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:01:48,743 [DEBUG][       Thread-260299][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:01:48,743 [DEBUG][       Thread-260299][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 16:01:48,743 [DEBUG][       Thread-260299][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 16:01:48,743 [DEBUG][       Thread-260299][   transport.py][1871] : client lang: <none>
2025-06-13 16:01:48,743 [DEBUG][       Thread-260299][   transport.py][1871] : server lang: <none>
2025-06-13 16:01:48,743 [DEBUG][       Thread-260299][   transport.py][1871] : kex follows: False
2025-06-13 16:01:48,743 [DEBUG][       Thread-260299][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 16:01:48,743 [DEBUG][       Thread-260299][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 16:01:48,743 [DEBUG][       Thread-260299][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 16:01:48,743 [DEBUG][       Thread-260299][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 16:01:48,743 [DEBUG][       Thread-260299][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 16:01:48,743 [DEBUG][       Thread-260299][   transport.py][1871] : Compression: none
2025-06-13 16:01:48,743 [DEBUG][       Thread-260299][   transport.py][1871] : === End of kex handshake ===
2025-06-13 16:01:48,808 [DEBUG][       Thread-260299][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 16:01:48,808 [DEBUG][       Thread-260299][   transport.py][1871] : Switch to new keys ...
2025-06-13 16:01:48,808 [DEBUG][       Thread-260299][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 16:01:48,809 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 16:01:48,809 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 16:01:48,865 [DEBUG][       Thread-260299][   transport.py][1871] : userauth is OK
2025-06-13 16:01:48,865 [DEBUG][       Thread-260299][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 16:01:48,865 [DEBUG][       Thread-260299][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 16:01:48,865 [DEBUG][       Thread-260299][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 16:01:48,866 [DEBUG][       Thread-260299][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 16:01:48,880 [ INFO][       Thread-260299][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 16:01:48,880 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 16:01:48,880 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 16:01:49,897 [DEBUG][       Thread-260299][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 16:01:49,898 [DEBUG][       Thread-260299][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 16:01:49,948 [DEBUG][       Thread-260299][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 16:01:49,948 [DEBUG][       Thread-260299][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 16:01:49,957 [DEBUG][       Thread-260299][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 16:01:49,966 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 16:01:49,967 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 16:01:49,976 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 16:01:49,985 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 16:01:49,985 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 16:01:49,986 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 16:01:49,994 [DEBUG][       Thread-260299][   transport.py][1871] : EOF in transport thread
2025-06-13 16:01:57,057 [DEBUG][Thread-260301 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:01:59,996 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 16:01:59,997 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 16:01:59,997 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 16:01:59,999 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 16:02:00,473 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 16, 1, 29), 18.33, 27.79, 0.0, 21.03, 13.89, 0, 0, 0, 2, 0, 0),)
2025-06-13 16:02:00,473 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 16:01:29
2025-06-13 16:02:00,554 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 16:02:00,559 [DEBUG][       Thread-260302][   transport.py][1871] : starting thread (client mode): 0x867ffc10
2025-06-13 16:02:00,559 [DEBUG][       Thread-260302][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 16:02:00,581 [DEBUG][       Thread-260302][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 16:02:00,581 [ INFO][       Thread-260302][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 16:02:00,584 [DEBUG][       Thread-260302][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 16:02:00,584 [DEBUG][       Thread-260302][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 16:02:00,584 [DEBUG][       Thread-260302][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 16:02:00,585 [DEBUG][       Thread-260302][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:02:00,585 [DEBUG][       Thread-260302][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:02:00,585 [DEBUG][       Thread-260302][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:02:00,585 [DEBUG][       Thread-260302][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:02:00,585 [DEBUG][       Thread-260302][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 16:02:00,585 [DEBUG][       Thread-260302][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 16:02:00,585 [DEBUG][       Thread-260302][   transport.py][1871] : client lang: <none>
2025-06-13 16:02:00,585 [DEBUG][       Thread-260302][   transport.py][1871] : server lang: <none>
2025-06-13 16:02:00,585 [DEBUG][       Thread-260302][   transport.py][1871] : kex follows: False
2025-06-13 16:02:00,585 [DEBUG][       Thread-260302][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 16:02:00,585 [DEBUG][       Thread-260302][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 16:02:00,585 [DEBUG][       Thread-260302][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 16:02:00,585 [DEBUG][       Thread-260302][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 16:02:00,585 [DEBUG][       Thread-260302][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 16:02:00,585 [DEBUG][       Thread-260302][   transport.py][1871] : Compression: none
2025-06-13 16:02:00,585 [DEBUG][       Thread-260302][   transport.py][1871] : === End of kex handshake ===
2025-06-13 16:02:00,603 [DEBUG][       Thread-260302][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 16:02:00,604 [DEBUG][       Thread-260302][   transport.py][1871] : Switch to new keys ...
2025-06-13 16:02:00,605 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 16:02:00,605 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 16:02:00,605 [DEBUG][       Thread-260302][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 16:02:00,606 [DEBUG][       Thread-260302][   transport.py][1871] : userauth is OK
2025-06-13 16:02:00,618 [ INFO][       Thread-260302][   transport.py][1871] : Authentication (password) successful!
2025-06-13 16:02:00,619 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 16:02:01,239 [DEBUG][       Thread-260302][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 16:02:01,241 [DEBUG][       Thread-260302][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 16:02:01,280 [DEBUG][       Thread-260302][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 16:02:01,281 [DEBUG][       Thread-260302][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 16:02:01,283 [DEBUG][       Thread-260302][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 16:02:01,296 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 16:02:01,296 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 16:02:01,297 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 16:02:01,298 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 16:02:01,300 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 16:02:01,301 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 16:02:01,301 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 16:02:01,302 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 16:02:01,302 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.584310 -999.00  +13.60  20.46     33   -2.20 1 1 1 1 1   887    0 16.03 0.01 ----- 20.2 20.5 54.6 24.5 16.6 -31.3 15.8 -32.6 16.6 -30.9 17.6 -29.7
2025-06-13 16:02:01,302 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 16:02:01,302 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 16:02:01,302 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.584310
2025-06-13 16:02:01,302 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 16:02:01,302 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 16:02:01,302 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 16:02:01,302 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 16:02:01,302 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 16:02:01,302 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T16:01:29', tmtdew=18.33, humidity=27.79, cloud=0.0, wind=21.03, temperature=13.89, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T14:01:24.384', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 16:02:01,303 [DEBUG][       Thread-260302][   transport.py][1871] : EOF in transport thread
2025-06-13 16:02:01,377 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 16:02:01,388 [DEBUG][       Thread-260305][   transport.py][1871] : starting thread (client mode): 0x867b7670
2025-06-13 16:02:01,389 [DEBUG][       Thread-260305][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 16:02:01,403 [DEBUG][       Thread-260305][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 16:02:01,403 [ INFO][       Thread-260305][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 16:02:01,411 [DEBUG][       Thread-260305][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 16:02:01,411 [DEBUG][       Thread-260305][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 16:02:01,411 [DEBUG][       Thread-260305][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 16:02:01,411 [DEBUG][       Thread-260305][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:02:01,411 [DEBUG][       Thread-260305][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:02:01,411 [DEBUG][       Thread-260305][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:02:01,411 [DEBUG][       Thread-260305][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:02:01,411 [DEBUG][       Thread-260305][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 16:02:01,411 [DEBUG][       Thread-260305][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 16:02:01,411 [DEBUG][       Thread-260305][   transport.py][1871] : client lang: <none>
2025-06-13 16:02:01,411 [DEBUG][       Thread-260305][   transport.py][1871] : server lang: <none>
2025-06-13 16:02:01,411 [DEBUG][       Thread-260305][   transport.py][1871] : kex follows: False
2025-06-13 16:02:01,411 [DEBUG][       Thread-260305][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 16:02:01,411 [DEBUG][       Thread-260305][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 16:02:01,411 [DEBUG][       Thread-260305][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 16:02:01,411 [DEBUG][       Thread-260305][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 16:02:01,411 [DEBUG][       Thread-260305][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 16:02:01,411 [DEBUG][       Thread-260305][   transport.py][1871] : Compression: none
2025-06-13 16:02:01,412 [DEBUG][       Thread-260305][   transport.py][1871] : === End of kex handshake ===
2025-06-13 16:02:01,469 [DEBUG][       Thread-260305][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 16:02:01,470 [DEBUG][       Thread-260305][   transport.py][1871] : Switch to new keys ...
2025-06-13 16:02:01,470 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 16:02:01,471 [DEBUG][       Thread-260305][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 16:02:01,471 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 16:02:01,526 [DEBUG][       Thread-260305][   transport.py][1871] : userauth is OK
2025-06-13 16:02:01,526 [DEBUG][       Thread-260305][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 16:02:01,527 [DEBUG][       Thread-260305][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 16:02:01,527 [DEBUG][       Thread-260305][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 16:02:01,527 [DEBUG][       Thread-260305][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 16:02:01,553 [ INFO][       Thread-260305][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 16:02:01,554 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 16:02:01,554 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 16:02:02,567 [DEBUG][       Thread-260305][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 16:02:02,568 [DEBUG][       Thread-260305][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 16:02:02,615 [DEBUG][       Thread-260305][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 16:02:02,615 [DEBUG][       Thread-260305][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 16:02:02,624 [DEBUG][       Thread-260305][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 16:02:02,632 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 16:02:02,632 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 16:02:02,640 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 16:02:02,648 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 16:02:02,648 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 16:02:02,648 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 16:02:02,656 [DEBUG][       Thread-260305][   transport.py][1871] : EOF in transport thread
2025-06-13 16:02:06,075 [DEBUG][Thread-260307 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:02:12,658 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 16:02:12,659 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 16:02:12,659 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 16:02:12,662 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 16:02:13,123 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 16, 2, 1), 18.26, 27.93, 0.0, 22.14, 13.91, 0, 0, 0, 2, 0, 0),)
2025-06-13 16:02:13,123 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 16:02:01
2025-06-13 16:02:13,204 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 16:02:13,210 [DEBUG][       Thread-260308][   transport.py][1871] : starting thread (client mode): 0x8636a8f0
2025-06-13 16:02:13,210 [DEBUG][       Thread-260308][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 16:02:13,228 [DEBUG][       Thread-260308][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 16:02:13,228 [ INFO][       Thread-260308][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 16:02:13,232 [DEBUG][       Thread-260308][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 16:02:13,232 [DEBUG][       Thread-260308][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 16:02:13,232 [DEBUG][       Thread-260308][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 16:02:13,232 [DEBUG][       Thread-260308][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:02:13,232 [DEBUG][       Thread-260308][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:02:13,232 [DEBUG][       Thread-260308][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:02:13,232 [DEBUG][       Thread-260308][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:02:13,232 [DEBUG][       Thread-260308][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 16:02:13,232 [DEBUG][       Thread-260308][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 16:02:13,232 [DEBUG][       Thread-260308][   transport.py][1871] : client lang: <none>
2025-06-13 16:02:13,232 [DEBUG][       Thread-260308][   transport.py][1871] : server lang: <none>
2025-06-13 16:02:13,232 [DEBUG][       Thread-260308][   transport.py][1871] : kex follows: False
2025-06-13 16:02:13,232 [DEBUG][       Thread-260308][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 16:02:13,232 [DEBUG][       Thread-260308][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 16:02:13,232 [DEBUG][       Thread-260308][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 16:02:13,232 [DEBUG][       Thread-260308][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 16:02:13,232 [DEBUG][       Thread-260308][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 16:02:13,232 [DEBUG][       Thread-260308][   transport.py][1871] : Compression: none
2025-06-13 16:02:13,232 [DEBUG][       Thread-260308][   transport.py][1871] : === End of kex handshake ===
2025-06-13 16:02:13,249 [DEBUG][       Thread-260308][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 16:02:13,250 [DEBUG][       Thread-260308][   transport.py][1871] : Switch to new keys ...
2025-06-13 16:02:13,250 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 16:02:13,251 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 16:02:13,251 [DEBUG][       Thread-260308][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 16:02:13,252 [DEBUG][       Thread-260308][   transport.py][1871] : userauth is OK
2025-06-13 16:02:13,265 [ INFO][       Thread-260308][   transport.py][1871] : Authentication (password) successful!
2025-06-13 16:02:13,265 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 16:02:13,931 [DEBUG][       Thread-260308][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 16:02:13,931 [DEBUG][       Thread-260308][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 16:02:13,973 [DEBUG][       Thread-260308][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 16:02:13,973 [DEBUG][       Thread-260308][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 16:02:13,977 [DEBUG][       Thread-260308][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 16:02:13,990 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 16:02:13,990 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 16:02:13,992 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 16:02:13,994 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 16:02:14,000 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 16:02:14,002 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 16:02:14,002 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 16:02:14,003 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 16:02:14,003 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.584657 -999.00  +13.70  20.87     33   -2.00 1 1 1 1 1   887    0 15.89 -0.30 ----- 20.3 20.9 35.8 26.3 16.6 -31.8 15.8 -32.1 16.7 -30.7 17.7 -30.5
2025-06-13 16:02:14,003 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 16:02:14,003 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 16:02:14,003 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.584657
2025-06-13 16:02:14,004 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 16:02:14,004 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 16:02:14,004 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 16:02:14,005 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 16:02:14,005 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 16:02:14,005 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T16:02:01', tmtdew=18.26, humidity=27.93, cloud=0.0, wind=22.14, temperature=13.91, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T14:01:54.365', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 16:02:14,006 [DEBUG][       Thread-260308][   transport.py][1871] : EOF in transport thread
2025-06-13 16:02:14,083 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:02:14,084 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:02:14,089 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 16:02:14,101 [DEBUG][       Thread-260311][   transport.py][1871] : starting thread (client mode): 0x86893a60
2025-06-13 16:02:14,101 [DEBUG][       Thread-260311][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 16:02:14,118 [DEBUG][       Thread-260311][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 16:02:14,118 [ INFO][       Thread-260311][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 16:02:14,127 [DEBUG][       Thread-260311][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 16:02:14,127 [DEBUG][       Thread-260311][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 16:02:14,127 [DEBUG][       Thread-260311][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 16:02:14,127 [DEBUG][       Thread-260311][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:02:14,127 [DEBUG][       Thread-260311][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:02:14,127 [DEBUG][       Thread-260311][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:02:14,127 [DEBUG][       Thread-260311][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:02:14,127 [DEBUG][       Thread-260311][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 16:02:14,127 [DEBUG][       Thread-260311][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 16:02:14,128 [DEBUG][       Thread-260311][   transport.py][1871] : client lang: <none>
2025-06-13 16:02:14,128 [DEBUG][       Thread-260311][   transport.py][1871] : server lang: <none>
2025-06-13 16:02:14,128 [DEBUG][       Thread-260311][   transport.py][1871] : kex follows: False
2025-06-13 16:02:14,128 [DEBUG][       Thread-260311][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 16:02:14,128 [DEBUG][       Thread-260311][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 16:02:14,128 [DEBUG][       Thread-260311][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 16:02:14,128 [DEBUG][       Thread-260311][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 16:02:14,128 [DEBUG][       Thread-260311][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 16:02:14,128 [DEBUG][       Thread-260311][   transport.py][1871] : Compression: none
2025-06-13 16:02:14,128 [DEBUG][       Thread-260311][   transport.py][1871] : === End of kex handshake ===
2025-06-13 16:02:14,186 [DEBUG][       Thread-260311][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 16:02:14,186 [DEBUG][       Thread-260311][   transport.py][1871] : Switch to new keys ...
2025-06-13 16:02:14,187 [DEBUG][       Thread-260311][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 16:02:14,187 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 16:02:14,188 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 16:02:14,242 [DEBUG][       Thread-260311][   transport.py][1871] : userauth is OK
2025-06-13 16:02:14,243 [DEBUG][       Thread-260311][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 16:02:14,243 [DEBUG][       Thread-260311][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 16:02:14,243 [DEBUG][       Thread-260311][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 16:02:14,243 [DEBUG][       Thread-260311][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 16:02:14,263 [ INFO][       Thread-260311][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 16:02:14,263 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 16:02:14,264 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 16:02:15,095 [DEBUG][Thread-260313 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:02:15,252 [DEBUG][       Thread-260311][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 16:02:15,252 [DEBUG][       Thread-260311][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 16:02:15,300 [DEBUG][       Thread-260311][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 16:02:15,300 [DEBUG][       Thread-260311][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 16:02:15,310 [DEBUG][       Thread-260311][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 16:02:15,319 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 16:02:15,319 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 16:02:15,328 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 16:02:15,337 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 16:02:15,337 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 16:02:15,338 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 16:02:15,346 [DEBUG][       Thread-260311][   transport.py][1871] : EOF in transport thread
2025-06-13 16:02:22,456 [DEBUG][Thread-260314 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:02:24,131 [DEBUG][Thread-260315 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:02:25,348 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 16:02:25,349 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 16:02:25,358 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 16:02:25,360 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 16:02:25,830 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 16, 2, 1), 18.26, 27.93, 0.0, 22.14, 13.91, 0, 0, 0, 2, 0, 0),)
2025-06-13 16:02:25,830 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 16:02:01
2025-06-13 16:02:25,911 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 16:02:25,915 [DEBUG][       Thread-260316][   transport.py][1871] : starting thread (client mode): 0x8636ab30
2025-06-13 16:02:25,915 [DEBUG][       Thread-260316][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 16:02:25,936 [DEBUG][       Thread-260316][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 16:02:25,936 [ INFO][       Thread-260316][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 16:02:25,940 [DEBUG][       Thread-260316][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 16:02:25,940 [DEBUG][       Thread-260316][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 16:02:25,940 [DEBUG][       Thread-260316][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 16:02:25,940 [DEBUG][       Thread-260316][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:02:25,940 [DEBUG][       Thread-260316][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:02:25,940 [DEBUG][       Thread-260316][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:02:25,940 [DEBUG][       Thread-260316][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:02:25,940 [DEBUG][       Thread-260316][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 16:02:25,940 [DEBUG][       Thread-260316][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 16:02:25,940 [DEBUG][       Thread-260316][   transport.py][1871] : client lang: <none>
2025-06-13 16:02:25,940 [DEBUG][       Thread-260316][   transport.py][1871] : server lang: <none>
2025-06-13 16:02:25,940 [DEBUG][       Thread-260316][   transport.py][1871] : kex follows: False
2025-06-13 16:02:25,940 [DEBUG][       Thread-260316][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 16:02:25,940 [DEBUG][       Thread-260316][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 16:02:25,940 [DEBUG][       Thread-260316][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 16:02:25,940 [DEBUG][       Thread-260316][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 16:02:25,940 [DEBUG][       Thread-260316][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 16:02:25,940 [DEBUG][       Thread-260316][   transport.py][1871] : Compression: none
2025-06-13 16:02:25,940 [DEBUG][       Thread-260316][   transport.py][1871] : === End of kex handshake ===
2025-06-13 16:02:25,957 [DEBUG][       Thread-260316][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 16:02:25,958 [DEBUG][       Thread-260316][   transport.py][1871] : Switch to new keys ...
2025-06-13 16:02:25,958 [DEBUG][       Thread-260316][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 16:02:25,958 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 16:02:25,958 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 16:02:25,959 [DEBUG][       Thread-260316][   transport.py][1871] : userauth is OK
2025-06-13 16:02:25,973 [ INFO][       Thread-260316][   transport.py][1871] : Authentication (password) successful!
2025-06-13 16:02:25,974 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 16:02:26,249 [DEBUG][Thread-260318 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:02:26,609 [DEBUG][       Thread-260316][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 16:02:26,610 [DEBUG][       Thread-260316][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 16:02:26,653 [DEBUG][       Thread-260316][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 16:02:26,653 [DEBUG][       Thread-260316][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 16:02:26,666 [DEBUG][       Thread-260316][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 16:02:26,679 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 16:02:26,680 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 16:02:26,682 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 16:02:26,684 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 16:02:26,690 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 16:02:26,692 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 16:02:26,693 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 16:02:26,693 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 16:02:26,694 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.584657 -999.00  +13.70  20.87     33   -2.00 1 1 1 1 1   887    0 15.89 -0.30 ----- 20.3 20.9 35.8 26.3 16.6 -31.8 15.8 -32.1 16.7 -30.7 17.7 -30.5
2025-06-13 16:02:26,694 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 16:02:26,694 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 16:02:26,694 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.584657
2025-06-13 16:02:26,694 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 16:02:26,695 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 16:02:26,695 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 16:02:26,695 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 16:02:26,695 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 16:02:26,695 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T16:02:01', tmtdew=18.26, humidity=27.93, cloud=0.0, wind=22.14, temperature=13.91, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T14:01:54.365', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 16:02:26,695 [DEBUG][       Thread-260316][   transport.py][1871] : EOF in transport thread
2025-06-13 16:02:26,771 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 16:02:26,781 [DEBUG][       Thread-260320][   transport.py][1871] : starting thread (client mode): 0xc54b6c20
2025-06-13 16:02:26,781 [DEBUG][       Thread-260320][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 16:02:26,796 [DEBUG][       Thread-260320][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 16:02:26,796 [ INFO][       Thread-260320][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 16:02:26,803 [DEBUG][       Thread-260320][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 16:02:26,803 [DEBUG][       Thread-260320][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 16:02:26,803 [DEBUG][       Thread-260320][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 16:02:26,803 [DEBUG][       Thread-260320][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:02:26,803 [DEBUG][       Thread-260320][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:02:26,803 [DEBUG][       Thread-260320][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:02:26,804 [DEBUG][       Thread-260320][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:02:26,804 [DEBUG][       Thread-260320][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 16:02:26,804 [DEBUG][       Thread-260320][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 16:02:26,804 [DEBUG][       Thread-260320][   transport.py][1871] : client lang: <none>
2025-06-13 16:02:26,804 [DEBUG][       Thread-260320][   transport.py][1871] : server lang: <none>
2025-06-13 16:02:26,804 [DEBUG][       Thread-260320][   transport.py][1871] : kex follows: False
2025-06-13 16:02:26,804 [DEBUG][       Thread-260320][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 16:02:26,804 [DEBUG][       Thread-260320][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 16:02:26,804 [DEBUG][       Thread-260320][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 16:02:26,804 [DEBUG][       Thread-260320][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 16:02:26,804 [DEBUG][       Thread-260320][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 16:02:26,804 [DEBUG][       Thread-260320][   transport.py][1871] : Compression: none
2025-06-13 16:02:26,804 [DEBUG][       Thread-260320][   transport.py][1871] : === End of kex handshake ===
2025-06-13 16:02:26,862 [DEBUG][       Thread-260320][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 16:02:26,863 [DEBUG][       Thread-260320][   transport.py][1871] : Switch to new keys ...
2025-06-13 16:02:26,863 [DEBUG][       Thread-260320][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 16:02:26,864 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 16:02:26,864 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 16:02:26,918 [DEBUG][       Thread-260320][   transport.py][1871] : userauth is OK
2025-06-13 16:02:26,918 [DEBUG][       Thread-260320][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 16:02:26,918 [DEBUG][       Thread-260320][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 16:02:26,919 [DEBUG][       Thread-260320][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 16:02:26,919 [DEBUG][       Thread-260320][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 16:02:26,943 [ INFO][       Thread-260320][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 16:02:26,944 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 16:02:26,944 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 16:02:27,324 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:02:27,326 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:02:27,943 [DEBUG][       Thread-260320][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 16:02:27,943 [DEBUG][       Thread-260320][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 16:02:27,994 [DEBUG][       Thread-260320][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 16:02:27,994 [DEBUG][       Thread-260320][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 16:02:28,004 [DEBUG][       Thread-260320][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 16:02:28,016 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 16:02:28,016 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 16:02:28,028 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 16:02:28,037 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 16:02:28,037 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 16:02:28,038 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 16:02:28,046 [DEBUG][       Thread-260320][   transport.py][1871] : EOF in transport thread
2025-06-13 16:02:33,154 [DEBUG][Thread-260322 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:02:38,048 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 16:02:38,048 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 16:02:38,049 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 16:02:38,051 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 16:02:38,527 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 16, 2, 33), 18.05, 28.42, 0.0, 20.06, 13.98, 0, 0, 0, 2, 0, 0),)
2025-06-13 16:02:38,527 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 16:02:33
2025-06-13 16:02:38,609 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 16:02:38,614 [DEBUG][       Thread-260323][   transport.py][1871] : starting thread (client mode): 0x867ff070
2025-06-13 16:02:38,614 [DEBUG][       Thread-260323][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 16:02:38,635 [DEBUG][       Thread-260323][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 16:02:38,635 [ INFO][       Thread-260323][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 16:02:38,638 [DEBUG][       Thread-260323][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 16:02:38,638 [DEBUG][       Thread-260323][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 16:02:38,638 [DEBUG][       Thread-260323][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 16:02:38,638 [DEBUG][       Thread-260323][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:02:38,638 [DEBUG][       Thread-260323][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:02:38,638 [DEBUG][       Thread-260323][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:02:38,638 [DEBUG][       Thread-260323][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:02:38,638 [DEBUG][       Thread-260323][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 16:02:38,638 [DEBUG][       Thread-260323][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 16:02:38,638 [DEBUG][       Thread-260323][   transport.py][1871] : client lang: <none>
2025-06-13 16:02:38,638 [DEBUG][       Thread-260323][   transport.py][1871] : server lang: <none>
2025-06-13 16:02:38,638 [DEBUG][       Thread-260323][   transport.py][1871] : kex follows: False
2025-06-13 16:02:38,638 [DEBUG][       Thread-260323][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 16:02:38,638 [DEBUG][       Thread-260323][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 16:02:38,638 [DEBUG][       Thread-260323][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 16:02:38,638 [DEBUG][       Thread-260323][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 16:02:38,638 [DEBUG][       Thread-260323][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 16:02:38,638 [DEBUG][       Thread-260323][   transport.py][1871] : Compression: none
2025-06-13 16:02:38,638 [DEBUG][       Thread-260323][   transport.py][1871] : === End of kex handshake ===
2025-06-13 16:02:38,653 [DEBUG][       Thread-260323][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 16:02:38,653 [DEBUG][       Thread-260323][   transport.py][1871] : Switch to new keys ...
2025-06-13 16:02:38,653 [DEBUG][       Thread-260323][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 16:02:38,653 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 16:02:38,653 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 16:02:38,654 [DEBUG][       Thread-260323][   transport.py][1871] : userauth is OK
2025-06-13 16:02:38,666 [ INFO][       Thread-260323][   transport.py][1871] : Authentication (password) successful!
2025-06-13 16:02:38,667 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 16:02:39,265 [DEBUG][       Thread-260323][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 16:02:39,265 [DEBUG][       Thread-260323][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 16:02:39,309 [DEBUG][       Thread-260323][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 16:02:39,309 [DEBUG][       Thread-260323][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 16:02:39,311 [DEBUG][       Thread-260323][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 16:02:39,322 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 16:02:39,322 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 16:02:39,324 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 16:02:39,325 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 16:02:39,328 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 16:02:39,329 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 16:02:39,329 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 16:02:39,329 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 16:02:39,329 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.584657 -999.00  +13.70  20.87     33   -2.00 1 1 1 1 1   887    0 15.89 -0.30 ----- 20.3 20.9 35.8 26.3 16.6 -31.8 15.8 -32.1 16.7 -30.7 17.7 -30.5
2025-06-13 16:02:39,329 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 16:02:39,329 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 16:02:39,329 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.584657
2025-06-13 16:02:39,329 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 16:02:39,329 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 16:02:39,329 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 16:02:39,329 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 16:02:39,329 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 16:02:39,330 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T16:02:33', tmtdew=18.05, humidity=28.42, cloud=0.0, wind=20.06, temperature=13.98, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T14:01:54.365', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 16:02:39,330 [DEBUG][       Thread-260323][   transport.py][1871] : EOF in transport thread
2025-06-13 16:02:39,408 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 16:02:39,418 [DEBUG][       Thread-260326][   transport.py][1871] : starting thread (client mode): 0x863923e0
2025-06-13 16:02:39,418 [DEBUG][       Thread-260326][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 16:02:39,433 [DEBUG][       Thread-260326][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 16:02:39,434 [ INFO][       Thread-260326][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 16:02:39,441 [DEBUG][       Thread-260326][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 16:02:39,441 [DEBUG][       Thread-260326][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 16:02:39,441 [DEBUG][       Thread-260326][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 16:02:39,441 [DEBUG][       Thread-260326][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:02:39,441 [DEBUG][       Thread-260326][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:02:39,441 [DEBUG][       Thread-260326][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:02:39,441 [DEBUG][       Thread-260326][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:02:39,441 [DEBUG][       Thread-260326][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 16:02:39,441 [DEBUG][       Thread-260326][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 16:02:39,442 [DEBUG][       Thread-260326][   transport.py][1871] : client lang: <none>
2025-06-13 16:02:39,442 [DEBUG][       Thread-260326][   transport.py][1871] : server lang: <none>
2025-06-13 16:02:39,442 [DEBUG][       Thread-260326][   transport.py][1871] : kex follows: False
2025-06-13 16:02:39,442 [DEBUG][       Thread-260326][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 16:02:39,442 [DEBUG][       Thread-260326][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 16:02:39,442 [DEBUG][       Thread-260326][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 16:02:39,442 [DEBUG][       Thread-260326][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 16:02:39,442 [DEBUG][       Thread-260326][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 16:02:39,442 [DEBUG][       Thread-260326][   transport.py][1871] : Compression: none
2025-06-13 16:02:39,442 [DEBUG][       Thread-260326][   transport.py][1871] : === End of kex handshake ===
2025-06-13 16:02:39,498 [DEBUG][       Thread-260326][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 16:02:39,498 [DEBUG][       Thread-260326][   transport.py][1871] : Switch to new keys ...
2025-06-13 16:02:39,499 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 16:02:39,500 [DEBUG][       Thread-260326][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 16:02:39,500 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 16:02:39,554 [DEBUG][       Thread-260326][   transport.py][1871] : userauth is OK
2025-06-13 16:02:39,554 [DEBUG][       Thread-260326][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 16:02:39,554 [DEBUG][       Thread-260326][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 16:02:39,554 [DEBUG][       Thread-260326][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 16:02:39,554 [DEBUG][       Thread-260326][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 16:02:39,572 [ INFO][       Thread-260326][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 16:02:39,573 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 16:02:39,573 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 16:02:40,553 [DEBUG][       Thread-260326][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 16:02:40,553 [DEBUG][       Thread-260326][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 16:02:40,604 [DEBUG][       Thread-260326][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 16:02:40,604 [DEBUG][       Thread-260326][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 16:02:40,613 [DEBUG][       Thread-260326][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 16:02:40,622 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 16:02:40,623 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 16:02:40,635 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 16:02:40,644 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 16:02:40,645 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 16:02:40,645 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 16:02:40,653 [DEBUG][       Thread-260326][   transport.py][1871] : EOF in transport thread
2025-06-13 16:02:42,174 [DEBUG][Thread-260328 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:02:50,647 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 16:02:50,648 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 16:02:50,648 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 16:02:50,651 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 16:02:51,121 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 16, 2, 33), 18.05, 28.42, 0.0, 20.06, 13.98, 0, 0, 0, 2, 0, 0),)
2025-06-13 16:02:51,121 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 16:02:33
2025-06-13 16:02:51,202 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 16:02:51,205 [DEBUG][Thread-260329 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:02:51,207 [DEBUG][       Thread-260330][   transport.py][1871] : starting thread (client mode): 0x867ffd90
2025-06-13 16:02:51,207 [DEBUG][       Thread-260330][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 16:02:51,227 [DEBUG][       Thread-260330][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 16:02:51,227 [ INFO][       Thread-260330][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 16:02:51,230 [DEBUG][       Thread-260330][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 16:02:51,230 [DEBUG][       Thread-260330][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 16:02:51,230 [DEBUG][       Thread-260330][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 16:02:51,230 [DEBUG][       Thread-260330][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:02:51,231 [DEBUG][       Thread-260330][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:02:51,231 [DEBUG][       Thread-260330][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:02:51,231 [DEBUG][       Thread-260330][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:02:51,231 [DEBUG][       Thread-260330][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 16:02:51,231 [DEBUG][       Thread-260330][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 16:02:51,231 [DEBUG][       Thread-260330][   transport.py][1871] : client lang: <none>
2025-06-13 16:02:51,231 [DEBUG][       Thread-260330][   transport.py][1871] : server lang: <none>
2025-06-13 16:02:51,231 [DEBUG][       Thread-260330][   transport.py][1871] : kex follows: False
2025-06-13 16:02:51,231 [DEBUG][       Thread-260330][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 16:02:51,231 [DEBUG][       Thread-260330][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 16:02:51,231 [DEBUG][       Thread-260330][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 16:02:51,231 [DEBUG][       Thread-260330][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 16:02:51,231 [DEBUG][       Thread-260330][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 16:02:51,231 [DEBUG][       Thread-260330][   transport.py][1871] : Compression: none
2025-06-13 16:02:51,231 [DEBUG][       Thread-260330][   transport.py][1871] : === End of kex handshake ===
2025-06-13 16:02:51,248 [DEBUG][       Thread-260330][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 16:02:51,248 [DEBUG][       Thread-260330][   transport.py][1871] : Switch to new keys ...
2025-06-13 16:02:51,249 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 16:02:51,249 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 16:02:51,250 [DEBUG][       Thread-260330][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 16:02:51,250 [DEBUG][       Thread-260330][   transport.py][1871] : userauth is OK
2025-06-13 16:02:51,263 [ INFO][       Thread-260330][   transport.py][1871] : Authentication (password) successful!
2025-06-13 16:02:51,264 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 16:02:51,898 [DEBUG][       Thread-260330][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 16:02:51,899 [DEBUG][       Thread-260330][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 16:02:51,941 [DEBUG][       Thread-260330][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 16:02:51,941 [DEBUG][       Thread-260330][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 16:02:51,945 [DEBUG][       Thread-260330][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 16:02:51,957 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 16:02:51,958 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 16:02:51,960 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 16:02:51,962 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 16:02:51,968 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 16:02:51,970 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 16:02:51,970 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 16:02:51,971 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 16:02:51,971 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.585005 -999.00  +13.70  22.92     33   -2.10 1 1 1 1 1   887    0 15.85 -0.50 ----- 24.7 22.9 41.8 26.3 16.6 -31.4 15.8 -32.0 16.6 -31.3 17.7 -29.6
2025-06-13 16:02:51,971 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 16:02:51,972 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 16:02:51,972 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.585005
2025-06-13 16:02:51,972 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 16:02:51,973 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 16:02:51,973 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 16:02:51,973 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 16:02:51,973 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 16:02:51,973 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T16:02:33', tmtdew=18.05, humidity=28.42, cloud=0.0, wind=20.06, temperature=13.98, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T14:02:24.432', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 16:02:51,974 [DEBUG][       Thread-260330][   transport.py][1871] : EOF in transport thread
2025-06-13 16:02:52,056 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 16:02:52,066 [DEBUG][       Thread-260333][   transport.py][1871] : starting thread (client mode): 0x863be470
2025-06-13 16:02:52,066 [DEBUG][       Thread-260333][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 16:02:52,081 [DEBUG][       Thread-260333][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 16:02:52,081 [ INFO][       Thread-260333][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 16:02:52,089 [DEBUG][       Thread-260333][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 16:02:52,089 [DEBUG][       Thread-260333][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 16:02:52,089 [DEBUG][       Thread-260333][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 16:02:52,089 [DEBUG][       Thread-260333][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:02:52,089 [DEBUG][       Thread-260333][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:02:52,089 [DEBUG][       Thread-260333][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:02:52,089 [DEBUG][       Thread-260333][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:02:52,089 [DEBUG][       Thread-260333][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 16:02:52,089 [DEBUG][       Thread-260333][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 16:02:52,089 [DEBUG][       Thread-260333][   transport.py][1871] : client lang: <none>
2025-06-13 16:02:52,089 [DEBUG][       Thread-260333][   transport.py][1871] : server lang: <none>
2025-06-13 16:02:52,089 [DEBUG][       Thread-260333][   transport.py][1871] : kex follows: False
2025-06-13 16:02:52,090 [DEBUG][       Thread-260333][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 16:02:52,090 [DEBUG][       Thread-260333][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 16:02:52,090 [DEBUG][       Thread-260333][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 16:02:52,090 [DEBUG][       Thread-260333][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 16:02:52,090 [DEBUG][       Thread-260333][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 16:02:52,090 [DEBUG][       Thread-260333][   transport.py][1871] : Compression: none
2025-06-13 16:02:52,090 [DEBUG][       Thread-260333][   transport.py][1871] : === End of kex handshake ===
2025-06-13 16:02:52,146 [DEBUG][       Thread-260333][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 16:02:52,147 [DEBUG][       Thread-260333][   transport.py][1871] : Switch to new keys ...
2025-06-13 16:02:52,147 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 16:02:52,148 [DEBUG][       Thread-260333][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 16:02:52,149 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 16:02:52,202 [DEBUG][       Thread-260333][   transport.py][1871] : userauth is OK
2025-06-13 16:02:52,202 [DEBUG][       Thread-260333][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 16:02:52,202 [DEBUG][       Thread-260333][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 16:02:52,203 [DEBUG][       Thread-260333][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 16:02:52,203 [DEBUG][       Thread-260333][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 16:02:52,227 [ INFO][       Thread-260333][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 16:02:52,227 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 16:02:52,227 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 16:02:53,188 [DEBUG][       Thread-260333][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 16:02:53,189 [DEBUG][       Thread-260333][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 16:02:53,240 [DEBUG][       Thread-260333][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 16:02:53,240 [DEBUG][       Thread-260333][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 16:02:53,249 [DEBUG][       Thread-260333][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 16:02:53,258 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 16:02:53,258 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 16:02:53,267 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 16:02:53,276 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 16:02:53,277 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 16:02:53,277 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 16:02:53,285 [DEBUG][       Thread-260333][   transport.py][1871] : EOF in transport thread
2025-06-13 16:03:00,227 [DEBUG][Thread-260335 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:03:03,288 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 16:03:03,288 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 16:03:03,288 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 16:03:03,291 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 16:03:03,756 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 16, 2, 33), 18.05, 28.42, 0.0, 20.06, 13.98, 0, 0, 0, 2, 0, 0),)
2025-06-13 16:03:03,756 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 16:02:33
2025-06-13 16:03:03,837 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 16:03:03,842 [DEBUG][       Thread-260336][   transport.py][1871] : starting thread (client mode): 0x863cb280
2025-06-13 16:03:03,842 [DEBUG][       Thread-260336][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 16:03:03,863 [DEBUG][       Thread-260336][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 16:03:03,863 [ INFO][       Thread-260336][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 16:03:03,866 [DEBUG][       Thread-260336][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 16:03:03,866 [DEBUG][       Thread-260336][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 16:03:03,867 [DEBUG][       Thread-260336][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 16:03:03,867 [DEBUG][       Thread-260336][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:03:03,867 [DEBUG][       Thread-260336][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:03:03,867 [DEBUG][       Thread-260336][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:03:03,867 [DEBUG][       Thread-260336][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:03:03,867 [DEBUG][       Thread-260336][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 16:03:03,867 [DEBUG][       Thread-260336][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 16:03:03,867 [DEBUG][       Thread-260336][   transport.py][1871] : client lang: <none>
2025-06-13 16:03:03,867 [DEBUG][       Thread-260336][   transport.py][1871] : server lang: <none>
2025-06-13 16:03:03,867 [DEBUG][       Thread-260336][   transport.py][1871] : kex follows: False
2025-06-13 16:03:03,867 [DEBUG][       Thread-260336][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 16:03:03,867 [DEBUG][       Thread-260336][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 16:03:03,867 [DEBUG][       Thread-260336][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 16:03:03,867 [DEBUG][       Thread-260336][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 16:03:03,867 [DEBUG][       Thread-260336][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 16:03:03,867 [DEBUG][       Thread-260336][   transport.py][1871] : Compression: none
2025-06-13 16:03:03,867 [DEBUG][       Thread-260336][   transport.py][1871] : === End of kex handshake ===
2025-06-13 16:03:03,883 [DEBUG][       Thread-260336][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 16:03:03,883 [DEBUG][       Thread-260336][   transport.py][1871] : Switch to new keys ...
2025-06-13 16:03:03,883 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 16:03:03,884 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 16:03:03,884 [DEBUG][       Thread-260336][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 16:03:03,885 [DEBUG][       Thread-260336][   transport.py][1871] : userauth is OK
2025-06-13 16:03:03,910 [ INFO][       Thread-260336][   transport.py][1871] : Authentication (password) successful!
2025-06-13 16:03:03,911 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 16:03:04,570 [DEBUG][       Thread-260336][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 16:03:04,570 [DEBUG][       Thread-260336][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 16:03:04,613 [DEBUG][       Thread-260336][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 16:03:04,613 [DEBUG][       Thread-260336][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 16:03:04,617 [DEBUG][       Thread-260336][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 16:03:04,630 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 16:03:04,631 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 16:03:04,633 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 16:03:04,635 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 16:03:04,642 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 16:03:04,644 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 16:03:04,644 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 16:03:04,645 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 16:03:04,645 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.585005 -999.00  +13.70  22.92     33   -2.10 1 1 1 1 1   887    0 15.85 -0.50 ----- 24.7 22.9 41.8 26.3 16.6 -31.4 15.8 -32.0 16.6 -31.3 17.7 -29.6
2025-06-13 16:03:04,645 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 16:03:04,645 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 16:03:04,645 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.585005
2025-06-13 16:03:04,646 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 16:03:04,646 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 16:03:04,646 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 16:03:04,646 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 16:03:04,647 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 16:03:04,647 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T16:02:33', tmtdew=18.05, humidity=28.42, cloud=0.0, wind=20.06, temperature=13.98, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T14:02:24.432', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 16:03:04,647 [DEBUG][       Thread-260336][   transport.py][1871] : EOF in transport thread
2025-06-13 16:03:04,730 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 16:03:04,740 [DEBUG][       Thread-260339][   transport.py][1871] : starting thread (client mode): 0x86350550
2025-06-13 16:03:04,740 [DEBUG][       Thread-260339][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 16:03:04,755 [DEBUG][       Thread-260339][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 16:03:04,755 [ INFO][       Thread-260339][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 16:03:04,764 [DEBUG][       Thread-260339][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 16:03:04,764 [DEBUG][       Thread-260339][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 16:03:04,764 [DEBUG][       Thread-260339][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 16:03:04,764 [DEBUG][       Thread-260339][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:03:04,764 [DEBUG][       Thread-260339][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:03:04,764 [DEBUG][       Thread-260339][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:03:04,765 [DEBUG][       Thread-260339][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:03:04,765 [DEBUG][       Thread-260339][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 16:03:04,765 [DEBUG][       Thread-260339][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 16:03:04,765 [DEBUG][       Thread-260339][   transport.py][1871] : client lang: <none>
2025-06-13 16:03:04,765 [DEBUG][       Thread-260339][   transport.py][1871] : server lang: <none>
2025-06-13 16:03:04,765 [DEBUG][       Thread-260339][   transport.py][1871] : kex follows: False
2025-06-13 16:03:04,765 [DEBUG][       Thread-260339][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 16:03:04,765 [DEBUG][       Thread-260339][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 16:03:04,765 [DEBUG][       Thread-260339][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 16:03:04,765 [DEBUG][       Thread-260339][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 16:03:04,765 [DEBUG][       Thread-260339][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 16:03:04,765 [DEBUG][       Thread-260339][   transport.py][1871] : Compression: none
2025-06-13 16:03:04,765 [DEBUG][       Thread-260339][   transport.py][1871] : === End of kex handshake ===
2025-06-13 16:03:04,822 [DEBUG][       Thread-260339][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 16:03:04,823 [DEBUG][       Thread-260339][   transport.py][1871] : Switch to new keys ...
2025-06-13 16:03:04,824 [DEBUG][       Thread-260339][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 16:03:04,824 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 16:03:04,825 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 16:03:04,884 [DEBUG][       Thread-260339][   transport.py][1871] : userauth is OK
2025-06-13 16:03:04,884 [DEBUG][       Thread-260339][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 16:03:04,884 [DEBUG][       Thread-260339][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 16:03:04,884 [DEBUG][       Thread-260339][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 16:03:04,884 [DEBUG][       Thread-260339][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 16:03:04,903 [ INFO][       Thread-260339][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 16:03:04,903 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 16:03:04,904 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 16:03:05,920 [DEBUG][       Thread-260339][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 16:03:05,920 [DEBUG][       Thread-260339][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 16:03:05,969 [DEBUG][       Thread-260339][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 16:03:05,969 [DEBUG][       Thread-260339][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 16:03:05,977 [DEBUG][       Thread-260339][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 16:03:05,985 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 16:03:05,985 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 16:03:05,993 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 16:03:06,001 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 16:03:06,001 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 16:03:06,001 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 16:03:06,009 [DEBUG][       Thread-260339][   transport.py][1871] : EOF in transport thread
2025-06-13 16:03:09,247 [DEBUG][Thread-260341 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:03:14,223 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:03:14,225 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:03:16,011 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 16:03:16,011 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 16:03:16,011 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 16:03:16,013 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 16:03:16,471 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 16, 3, 5), 18.1, 28.34, 0.0, 19.34, 14.02, 0, 0, 0, 2, 0, 0),)
2025-06-13 16:03:16,471 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 16:03:05
2025-06-13 16:03:16,551 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 16:03:16,555 [DEBUG][       Thread-260342][   transport.py][1871] : starting thread (client mode): 0x86353370
2025-06-13 16:03:16,555 [DEBUG][       Thread-260342][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 16:03:16,575 [DEBUG][       Thread-260342][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 16:03:16,575 [ INFO][       Thread-260342][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 16:03:16,578 [DEBUG][       Thread-260342][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 16:03:16,578 [DEBUG][       Thread-260342][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 16:03:16,578 [DEBUG][       Thread-260342][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 16:03:16,578 [DEBUG][       Thread-260342][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:03:16,578 [DEBUG][       Thread-260342][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:03:16,578 [DEBUG][       Thread-260342][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:03:16,578 [DEBUG][       Thread-260342][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:03:16,578 [DEBUG][       Thread-260342][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 16:03:16,578 [DEBUG][       Thread-260342][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 16:03:16,578 [DEBUG][       Thread-260342][   transport.py][1871] : client lang: <none>
2025-06-13 16:03:16,578 [DEBUG][       Thread-260342][   transport.py][1871] : server lang: <none>
2025-06-13 16:03:16,578 [DEBUG][       Thread-260342][   transport.py][1871] : kex follows: False
2025-06-13 16:03:16,578 [DEBUG][       Thread-260342][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 16:03:16,578 [DEBUG][       Thread-260342][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 16:03:16,578 [DEBUG][       Thread-260342][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 16:03:16,578 [DEBUG][       Thread-260342][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 16:03:16,578 [DEBUG][       Thread-260342][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 16:03:16,579 [DEBUG][       Thread-260342][   transport.py][1871] : Compression: none
2025-06-13 16:03:16,579 [DEBUG][       Thread-260342][   transport.py][1871] : === End of kex handshake ===
2025-06-13 16:03:16,595 [DEBUG][       Thread-260342][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 16:03:16,595 [DEBUG][       Thread-260342][   transport.py][1871] : Switch to new keys ...
2025-06-13 16:03:16,596 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 16:03:16,596 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 16:03:16,597 [DEBUG][       Thread-260342][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 16:03:16,597 [DEBUG][       Thread-260342][   transport.py][1871] : userauth is OK
2025-06-13 16:03:16,610 [ INFO][       Thread-260342][   transport.py][1871] : Authentication (password) successful!
2025-06-13 16:03:16,611 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 16:03:17,236 [DEBUG][       Thread-260342][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 16:03:17,236 [DEBUG][       Thread-260342][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 16:03:17,277 [DEBUG][       Thread-260342][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 16:03:17,277 [DEBUG][       Thread-260342][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 16:03:17,281 [DEBUG][       Thread-260342][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 16:03:17,294 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 16:03:17,294 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 16:03:17,296 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 16:03:17,298 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 16:03:17,303 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 16:03:17,305 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 16:03:17,306 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 16:03:17,306 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 16:03:17,307 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.585352 -999.00  +13.70  21.47     33   -2.00 1 1 1 1 1   887    0 15.89 -0.72 ----- 21.1 21.5 52.6 29.2 16.6 -31.7 15.8 -32.3 16.6 -31.0 17.6 -30.0
2025-06-13 16:03:17,307 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 16:03:17,307 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 16:03:17,307 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.585352
2025-06-13 16:03:17,307 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 16:03:17,308 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 16:03:17,308 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 16:03:17,308 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 16:03:17,308 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 16:03:17,308 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T16:03:05', tmtdew=18.1, humidity=28.34, cloud=0.0, wind=19.34, temperature=14.02, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T14:02:54.413', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 16:03:17,309 [DEBUG][       Thread-260342][   transport.py][1871] : EOF in transport thread
2025-06-13 16:03:17,391 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 16:03:17,403 [DEBUG][       Thread-260345][   transport.py][1871] : starting thread (client mode): 0x863a6ec0
2025-06-13 16:03:17,403 [DEBUG][       Thread-260345][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 16:03:17,418 [DEBUG][       Thread-260345][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 16:03:17,418 [ INFO][       Thread-260345][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 16:03:17,428 [DEBUG][       Thread-260345][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 16:03:17,428 [DEBUG][       Thread-260345][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 16:03:17,429 [DEBUG][       Thread-260345][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 16:03:17,429 [DEBUG][       Thread-260345][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:03:17,429 [DEBUG][       Thread-260345][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:03:17,429 [DEBUG][       Thread-260345][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:03:17,429 [DEBUG][       Thread-260345][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:03:17,429 [DEBUG][       Thread-260345][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 16:03:17,429 [DEBUG][       Thread-260345][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 16:03:17,429 [DEBUG][       Thread-260345][   transport.py][1871] : client lang: <none>
2025-06-13 16:03:17,429 [DEBUG][       Thread-260345][   transport.py][1871] : server lang: <none>
2025-06-13 16:03:17,429 [DEBUG][       Thread-260345][   transport.py][1871] : kex follows: False
2025-06-13 16:03:17,429 [DEBUG][       Thread-260345][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 16:03:17,429 [DEBUG][       Thread-260345][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 16:03:17,429 [DEBUG][       Thread-260345][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 16:03:17,429 [DEBUG][       Thread-260345][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 16:03:17,429 [DEBUG][       Thread-260345][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 16:03:17,429 [DEBUG][       Thread-260345][   transport.py][1871] : Compression: none
2025-06-13 16:03:17,429 [DEBUG][       Thread-260345][   transport.py][1871] : === End of kex handshake ===
2025-06-13 16:03:17,486 [DEBUG][       Thread-260345][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 16:03:17,486 [DEBUG][       Thread-260345][   transport.py][1871] : Switch to new keys ...
2025-06-13 16:03:17,487 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 16:03:17,488 [DEBUG][       Thread-260345][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 16:03:17,488 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 16:03:17,542 [DEBUG][       Thread-260345][   transport.py][1871] : userauth is OK
2025-06-13 16:03:17,542 [DEBUG][       Thread-260345][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 16:03:17,542 [DEBUG][       Thread-260345][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 16:03:17,543 [DEBUG][       Thread-260345][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 16:03:17,543 [DEBUG][       Thread-260345][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 16:03:17,573 [ INFO][       Thread-260345][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 16:03:17,573 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 16:03:17,574 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 16:03:18,266 [DEBUG][Thread-260347 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:03:18,534 [DEBUG][       Thread-260345][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 16:03:18,534 [DEBUG][       Thread-260345][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 16:03:18,584 [DEBUG][       Thread-260345][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 16:03:18,584 [DEBUG][       Thread-260345][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 16:03:18,593 [DEBUG][       Thread-260345][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 16:03:18,607 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 16:03:18,607 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 16:03:18,616 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 16:03:18,626 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 16:03:18,626 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 16:03:18,626 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 16:03:18,634 [DEBUG][       Thread-260345][   transport.py][1871] : EOF in transport thread
2025-06-13 16:03:22,505 [DEBUG][Thread-260348 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:03:27,289 [DEBUG][Thread-260349 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:03:27,405 [DEBUG][Thread-260350 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:03:28,484 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:03:28,486 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:03:28,635 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 16:03:28,635 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 16:03:28,635 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 16:03:28,638 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 16:03:29,089 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 16, 3, 5), 18.1, 28.34, 0.0, 19.34, 14.02, 0, 0, 0, 2, 0, 0),)
2025-06-13 16:03:29,089 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 16:03:05
2025-06-13 16:03:29,168 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 16:03:29,172 [DEBUG][       Thread-260351][   transport.py][1871] : starting thread (client mode): 0x863ca7d0
2025-06-13 16:03:29,172 [DEBUG][       Thread-260351][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 16:03:29,194 [DEBUG][       Thread-260351][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 16:03:29,194 [ INFO][       Thread-260351][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 16:03:29,197 [DEBUG][       Thread-260351][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 16:03:29,197 [DEBUG][       Thread-260351][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 16:03:29,197 [DEBUG][       Thread-260351][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 16:03:29,197 [DEBUG][       Thread-260351][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:03:29,197 [DEBUG][       Thread-260351][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:03:29,197 [DEBUG][       Thread-260351][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:03:29,197 [DEBUG][       Thread-260351][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:03:29,197 [DEBUG][       Thread-260351][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 16:03:29,197 [DEBUG][       Thread-260351][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 16:03:29,197 [DEBUG][       Thread-260351][   transport.py][1871] : client lang: <none>
2025-06-13 16:03:29,197 [DEBUG][       Thread-260351][   transport.py][1871] : server lang: <none>
2025-06-13 16:03:29,197 [DEBUG][       Thread-260351][   transport.py][1871] : kex follows: False
2025-06-13 16:03:29,197 [DEBUG][       Thread-260351][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 16:03:29,197 [DEBUG][       Thread-260351][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 16:03:29,197 [DEBUG][       Thread-260351][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 16:03:29,197 [DEBUG][       Thread-260351][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 16:03:29,197 [DEBUG][       Thread-260351][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 16:03:29,197 [DEBUG][       Thread-260351][   transport.py][1871] : Compression: none
2025-06-13 16:03:29,197 [DEBUG][       Thread-260351][   transport.py][1871] : === End of kex handshake ===
2025-06-13 16:03:29,214 [DEBUG][       Thread-260351][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 16:03:29,215 [DEBUG][       Thread-260351][   transport.py][1871] : Switch to new keys ...
2025-06-13 16:03:29,215 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 16:03:29,215 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 16:03:29,216 [DEBUG][       Thread-260351][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 16:03:29,217 [DEBUG][       Thread-260351][   transport.py][1871] : userauth is OK
2025-06-13 16:03:29,242 [ INFO][       Thread-260351][   transport.py][1871] : Authentication (password) successful!
2025-06-13 16:03:29,243 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 16:03:29,844 [DEBUG][       Thread-260351][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 16:03:29,845 [DEBUG][       Thread-260351][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 16:03:29,889 [DEBUG][       Thread-260351][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 16:03:29,889 [DEBUG][       Thread-260351][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 16:03:29,892 [DEBUG][       Thread-260351][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 16:03:29,904 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 16:03:29,905 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 16:03:29,907 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 16:03:29,909 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 16:03:29,915 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 16:03:29,917 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 16:03:29,917 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 16:03:29,918 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 16:03:29,918 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.585352 -999.00  +13.70  21.47     33   -2.00 1 1 1 1 1   887    0 15.89 -0.72 ----- 21.1 21.5 52.6 29.2 16.6 -31.7 15.8 -32.3 16.6 -31.0 17.6 -30.0
2025-06-13 16:03:29,918 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 16:03:29,918 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 16:03:29,918 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.585352
2025-06-13 16:03:29,919 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 16:03:29,919 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 16:03:29,919 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 16:03:29,920 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 16:03:29,920 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 16:03:29,920 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T16:03:05', tmtdew=18.1, humidity=28.34, cloud=0.0, wind=19.34, temperature=14.02, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T14:02:54.413', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 16:03:29,921 [DEBUG][       Thread-260351][   transport.py][1871] : EOF in transport thread
2025-06-13 16:03:30,003 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 16:03:30,013 [DEBUG][       Thread-260354][   transport.py][1871] : starting thread (client mode): 0x863ef5b0
2025-06-13 16:03:30,013 [DEBUG][       Thread-260354][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 16:03:30,027 [DEBUG][       Thread-260354][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 16:03:30,027 [ INFO][       Thread-260354][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 16:03:30,035 [DEBUG][       Thread-260354][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 16:03:30,035 [DEBUG][       Thread-260354][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 16:03:30,035 [DEBUG][       Thread-260354][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 16:03:30,035 [DEBUG][       Thread-260354][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:03:30,035 [DEBUG][       Thread-260354][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:03:30,035 [DEBUG][       Thread-260354][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:03:30,035 [DEBUG][       Thread-260354][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:03:30,035 [DEBUG][       Thread-260354][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 16:03:30,035 [DEBUG][       Thread-260354][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 16:03:30,035 [DEBUG][       Thread-260354][   transport.py][1871] : client lang: <none>
2025-06-13 16:03:30,035 [DEBUG][       Thread-260354][   transport.py][1871] : server lang: <none>
2025-06-13 16:03:30,035 [DEBUG][       Thread-260354][   transport.py][1871] : kex follows: False
2025-06-13 16:03:30,035 [DEBUG][       Thread-260354][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 16:03:30,036 [DEBUG][       Thread-260354][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 16:03:30,036 [DEBUG][       Thread-260354][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 16:03:30,036 [DEBUG][       Thread-260354][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 16:03:30,036 [DEBUG][       Thread-260354][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 16:03:30,036 [DEBUG][       Thread-260354][   transport.py][1871] : Compression: none
2025-06-13 16:03:30,036 [DEBUG][       Thread-260354][   transport.py][1871] : === End of kex handshake ===
2025-06-13 16:03:30,093 [DEBUG][       Thread-260354][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 16:03:30,094 [DEBUG][       Thread-260354][   transport.py][1871] : Switch to new keys ...
2025-06-13 16:03:30,094 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 16:03:30,095 [DEBUG][       Thread-260354][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 16:03:30,096 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 16:03:30,149 [DEBUG][       Thread-260354][   transport.py][1871] : userauth is OK
2025-06-13 16:03:30,150 [DEBUG][       Thread-260354][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 16:03:30,150 [DEBUG][       Thread-260354][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 16:03:30,150 [DEBUG][       Thread-260354][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 16:03:30,150 [DEBUG][       Thread-260354][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 16:03:30,173 [ INFO][       Thread-260354][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 16:03:30,173 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 16:03:30,173 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 16:03:31,158 [DEBUG][       Thread-260354][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 16:03:31,158 [DEBUG][       Thread-260354][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 16:03:31,207 [DEBUG][       Thread-260354][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 16:03:31,208 [DEBUG][       Thread-260354][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 16:03:31,216 [DEBUG][       Thread-260354][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 16:03:31,225 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 16:03:31,225 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 16:03:31,233 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 16:03:31,242 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 16:03:31,242 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 16:03:31,242 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 16:03:31,250 [DEBUG][       Thread-260354][   transport.py][1871] : EOF in transport thread
2025-06-13 16:03:36,315 [DEBUG][Thread-260356 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:03:41,253 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 16:03:41,253 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 16:03:41,253 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 16:03:41,256 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 16:03:41,709 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 16, 3, 36), 18.06, 28.35, 0.0, 20.31, 14.11, 0, 0, 0, 2, 0, 0),)
2025-06-13 16:03:41,709 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 16:03:36
2025-06-13 16:03:41,788 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 16:03:41,794 [DEBUG][       Thread-260357][   transport.py][1871] : starting thread (client mode): 0x86369e70
2025-06-13 16:03:41,794 [DEBUG][       Thread-260357][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 16:03:41,814 [DEBUG][       Thread-260357][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 16:03:41,814 [ INFO][       Thread-260357][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 16:03:41,818 [DEBUG][       Thread-260357][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 16:03:41,818 [DEBUG][       Thread-260357][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 16:03:41,818 [DEBUG][       Thread-260357][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 16:03:41,818 [DEBUG][       Thread-260357][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:03:41,818 [DEBUG][       Thread-260357][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:03:41,818 [DEBUG][       Thread-260357][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:03:41,818 [DEBUG][       Thread-260357][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:03:41,819 [DEBUG][       Thread-260357][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 16:03:41,819 [DEBUG][       Thread-260357][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 16:03:41,819 [DEBUG][       Thread-260357][   transport.py][1871] : client lang: <none>
2025-06-13 16:03:41,819 [DEBUG][       Thread-260357][   transport.py][1871] : server lang: <none>
2025-06-13 16:03:41,819 [DEBUG][       Thread-260357][   transport.py][1871] : kex follows: False
2025-06-13 16:03:41,819 [DEBUG][       Thread-260357][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 16:03:41,819 [DEBUG][       Thread-260357][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 16:03:41,819 [DEBUG][       Thread-260357][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 16:03:41,819 [DEBUG][       Thread-260357][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 16:03:41,819 [DEBUG][       Thread-260357][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 16:03:41,819 [DEBUG][       Thread-260357][   transport.py][1871] : Compression: none
2025-06-13 16:03:41,819 [DEBUG][       Thread-260357][   transport.py][1871] : === End of kex handshake ===
2025-06-13 16:03:41,836 [DEBUG][       Thread-260357][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 16:03:41,837 [DEBUG][       Thread-260357][   transport.py][1871] : Switch to new keys ...
2025-06-13 16:03:41,837 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 16:03:41,838 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 16:03:41,838 [DEBUG][       Thread-260357][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 16:03:41,839 [DEBUG][       Thread-260357][   transport.py][1871] : userauth is OK
2025-06-13 16:03:41,852 [ INFO][       Thread-260357][   transport.py][1871] : Authentication (password) successful!
2025-06-13 16:03:41,852 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 16:03:42,510 [DEBUG][       Thread-260357][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 16:03:42,510 [DEBUG][       Thread-260357][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 16:03:42,553 [DEBUG][       Thread-260357][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 16:03:42,553 [DEBUG][       Thread-260357][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 16:03:42,557 [DEBUG][       Thread-260357][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 16:03:42,568 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 16:03:42,568 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 16:03:42,570 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 16:03:42,572 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 16:03:42,579 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 16:03:42,581 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 16:03:42,581 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 16:03:42,582 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 16:03:42,582 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.585352 -999.00  +13.70  21.47     33   -2.00 1 1 1 1 1   887    0 15.89 -0.72 ----- 21.1 21.5 52.6 29.2 16.6 -31.7 15.8 -32.3 16.6 -31.0 17.6 -30.0
2025-06-13 16:03:42,582 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 16:03:42,582 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 16:03:42,582 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.585352
2025-06-13 16:03:42,583 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 16:03:42,583 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 16:03:42,583 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 16:03:42,583 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 16:03:42,583 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 16:03:42,584 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T16:03:36', tmtdew=18.06, humidity=28.35, cloud=0.0, wind=20.31, temperature=14.11, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T14:02:54.413', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 16:03:42,584 [DEBUG][       Thread-260357][   transport.py][1871] : EOF in transport thread
2025-06-13 16:03:42,667 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 16:03:42,678 [DEBUG][       Thread-260360][   transport.py][1871] : starting thread (client mode): 0x867b4970
2025-06-13 16:03:42,678 [DEBUG][       Thread-260360][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 16:03:42,694 [DEBUG][       Thread-260360][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 16:03:42,695 [ INFO][       Thread-260360][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 16:03:42,702 [DEBUG][       Thread-260360][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 16:03:42,702 [DEBUG][       Thread-260360][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 16:03:42,703 [DEBUG][       Thread-260360][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 16:03:42,703 [DEBUG][       Thread-260360][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:03:42,703 [DEBUG][       Thread-260360][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:03:42,703 [DEBUG][       Thread-260360][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:03:42,703 [DEBUG][       Thread-260360][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:03:42,703 [DEBUG][       Thread-260360][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 16:03:42,703 [DEBUG][       Thread-260360][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 16:03:42,703 [DEBUG][       Thread-260360][   transport.py][1871] : client lang: <none>
2025-06-13 16:03:42,703 [DEBUG][       Thread-260360][   transport.py][1871] : server lang: <none>
2025-06-13 16:03:42,703 [DEBUG][       Thread-260360][   transport.py][1871] : kex follows: False
2025-06-13 16:03:42,703 [DEBUG][       Thread-260360][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 16:03:42,703 [DEBUG][       Thread-260360][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 16:03:42,703 [DEBUG][       Thread-260360][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 16:03:42,703 [DEBUG][       Thread-260360][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 16:03:42,703 [DEBUG][       Thread-260360][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 16:03:42,703 [DEBUG][       Thread-260360][   transport.py][1871] : Compression: none
2025-06-13 16:03:42,703 [DEBUG][       Thread-260360][   transport.py][1871] : === End of kex handshake ===
2025-06-13 16:03:42,766 [DEBUG][       Thread-260360][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 16:03:42,767 [DEBUG][       Thread-260360][   transport.py][1871] : Switch to new keys ...
2025-06-13 16:03:42,767 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 16:03:42,768 [DEBUG][       Thread-260360][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 16:03:42,769 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 16:03:42,826 [DEBUG][       Thread-260360][   transport.py][1871] : userauth is OK
2025-06-13 16:03:42,826 [DEBUG][       Thread-260360][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 16:03:42,826 [DEBUG][       Thread-260360][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 16:03:42,826 [DEBUG][       Thread-260360][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 16:03:42,826 [DEBUG][       Thread-260360][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 16:03:42,845 [ INFO][       Thread-260360][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 16:03:42,845 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 16:03:42,846 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 16:03:43,826 [DEBUG][       Thread-260360][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 16:03:43,826 [DEBUG][       Thread-260360][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 16:03:43,876 [DEBUG][       Thread-260360][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 16:03:43,876 [DEBUG][       Thread-260360][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 16:03:43,885 [DEBUG][       Thread-260360][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 16:03:43,893 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 16:03:43,894 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 16:03:43,901 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 16:03:43,909 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 16:03:43,909 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 16:03:43,909 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 16:03:43,917 [DEBUG][       Thread-260360][   transport.py][1871] : EOF in transport thread
2025-06-13 16:03:45,335 [DEBUG][Thread-260362 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:03:53,920 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 16:03:53,920 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 16:03:53,920 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 16:03:53,923 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 16:03:54,370 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 16, 3, 36), 18.06, 28.35, 0.0, 20.31, 14.11, 0, 0, 0, 2, 0, 0),)
2025-06-13 16:03:54,370 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 16:03:36
2025-06-13 16:03:54,370 [DEBUG][Thread-260363 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:03:54,449 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 16:03:54,453 [DEBUG][       Thread-260364][   transport.py][1871] : starting thread (client mode): 0x863689d0
2025-06-13 16:03:54,453 [DEBUG][       Thread-260364][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 16:03:54,473 [DEBUG][       Thread-260364][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 16:03:54,473 [ INFO][       Thread-260364][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 16:03:54,475 [DEBUG][       Thread-260364][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 16:03:54,475 [DEBUG][       Thread-260364][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 16:03:54,475 [DEBUG][       Thread-260364][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 16:03:54,475 [DEBUG][       Thread-260364][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:03:54,475 [DEBUG][       Thread-260364][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:03:54,475 [DEBUG][       Thread-260364][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:03:54,475 [DEBUG][       Thread-260364][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:03:54,475 [DEBUG][       Thread-260364][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 16:03:54,475 [DEBUG][       Thread-260364][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 16:03:54,475 [DEBUG][       Thread-260364][   transport.py][1871] : client lang: <none>
2025-06-13 16:03:54,475 [DEBUG][       Thread-260364][   transport.py][1871] : server lang: <none>
2025-06-13 16:03:54,475 [DEBUG][       Thread-260364][   transport.py][1871] : kex follows: False
2025-06-13 16:03:54,475 [DEBUG][       Thread-260364][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 16:03:54,475 [DEBUG][       Thread-260364][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 16:03:54,475 [DEBUG][       Thread-260364][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 16:03:54,475 [DEBUG][       Thread-260364][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 16:03:54,475 [DEBUG][       Thread-260364][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 16:03:54,475 [DEBUG][       Thread-260364][   transport.py][1871] : Compression: none
2025-06-13 16:03:54,475 [DEBUG][       Thread-260364][   transport.py][1871] : === End of kex handshake ===
2025-06-13 16:03:54,483 [DEBUG][       Thread-260364][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 16:03:54,483 [DEBUG][       Thread-260364][   transport.py][1871] : Switch to new keys ...
2025-06-13 16:03:54,484 [DEBUG][       Thread-260364][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 16:03:54,484 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 16:03:54,484 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 16:03:54,485 [DEBUG][       Thread-260364][   transport.py][1871] : userauth is OK
2025-06-13 16:03:54,498 [ INFO][       Thread-260364][   transport.py][1871] : Authentication (password) successful!
2025-06-13 16:03:54,498 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 16:03:55,084 [DEBUG][       Thread-260364][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 16:03:55,084 [DEBUG][       Thread-260364][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 16:03:55,125 [DEBUG][       Thread-260364][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 16:03:55,125 [DEBUG][       Thread-260364][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 16:03:55,129 [DEBUG][       Thread-260364][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 16:03:55,142 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 16:03:55,143 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 16:03:55,144 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 16:03:55,146 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 16:03:55,151 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 16:03:55,153 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 16:03:55,153 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 16:03:55,154 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 16:03:55,154 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.585699 -999.00  +13.70  21.39     33   -1.90 1 1 1 1 1   887    0 15.66 -1.89 ----- 22.6 21.4 45.6 28.7 16.6 -31.6 15.8 -32.2 16.6 -31.2 17.6 -29.7
2025-06-13 16:03:55,154 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 16:03:55,154 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 16:03:55,154 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.585699
2025-06-13 16:03:55,155 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 16:03:55,155 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 16:03:55,155 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 16:03:55,156 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 16:03:55,156 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 16:03:55,156 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T16:03:36', tmtdew=18.06, humidity=28.35, cloud=0.0, wind=20.31, temperature=14.11, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T14:03:24.394', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 16:03:55,157 [DEBUG][       Thread-260364][   transport.py][1871] : EOF in transport thread
2025-06-13 16:03:55,239 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 16:03:55,251 [DEBUG][       Thread-260367][   transport.py][1871] : starting thread (client mode): 0x86391930
2025-06-13 16:03:55,251 [DEBUG][       Thread-260367][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 16:03:55,268 [DEBUG][       Thread-260367][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 16:03:55,268 [ INFO][       Thread-260367][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 16:03:55,276 [DEBUG][       Thread-260367][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 16:03:55,276 [DEBUG][       Thread-260367][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 16:03:55,276 [DEBUG][       Thread-260367][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 16:03:55,276 [DEBUG][       Thread-260367][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:03:55,276 [DEBUG][       Thread-260367][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:03:55,276 [DEBUG][       Thread-260367][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:03:55,277 [DEBUG][       Thread-260367][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:03:55,277 [DEBUG][       Thread-260367][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 16:03:55,277 [DEBUG][       Thread-260367][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 16:03:55,277 [DEBUG][       Thread-260367][   transport.py][1871] : client lang: <none>
2025-06-13 16:03:55,277 [DEBUG][       Thread-260367][   transport.py][1871] : server lang: <none>
2025-06-13 16:03:55,277 [DEBUG][       Thread-260367][   transport.py][1871] : kex follows: False
2025-06-13 16:03:55,277 [DEBUG][       Thread-260367][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 16:03:55,277 [DEBUG][       Thread-260367][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 16:03:55,277 [DEBUG][       Thread-260367][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 16:03:55,277 [DEBUG][       Thread-260367][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 16:03:55,277 [DEBUG][       Thread-260367][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 16:03:55,277 [DEBUG][       Thread-260367][   transport.py][1871] : Compression: none
2025-06-13 16:03:55,277 [DEBUG][       Thread-260367][   transport.py][1871] : === End of kex handshake ===
2025-06-13 16:03:55,336 [DEBUG][       Thread-260367][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 16:03:55,337 [DEBUG][       Thread-260367][   transport.py][1871] : Switch to new keys ...
2025-06-13 16:03:55,338 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 16:03:55,338 [DEBUG][       Thread-260367][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 16:03:55,339 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 16:03:55,394 [DEBUG][       Thread-260367][   transport.py][1871] : userauth is OK
2025-06-13 16:03:55,394 [DEBUG][       Thread-260367][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 16:03:55,395 [DEBUG][       Thread-260367][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 16:03:55,395 [DEBUG][       Thread-260367][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 16:03:55,395 [DEBUG][       Thread-260367][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 16:03:55,415 [ INFO][       Thread-260367][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 16:03:55,415 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 16:03:55,416 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 16:03:56,414 [DEBUG][       Thread-260367][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 16:03:56,414 [DEBUG][       Thread-260367][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 16:03:56,464 [DEBUG][       Thread-260367][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 16:03:56,464 [DEBUG][       Thread-260367][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 16:03:56,473 [DEBUG][       Thread-260367][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 16:03:56,482 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 16:03:56,482 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 16:03:56,491 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 16:03:56,500 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 16:03:56,500 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 16:03:56,501 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 16:03:56,508 [DEBUG][       Thread-260367][   transport.py][1871] : EOF in transport thread
2025-06-13 16:04:03,387 [DEBUG][Thread-260369 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:04:06,511 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 16:04:06,511 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 16:04:06,511 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 16:04:06,514 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 16:04:06,970 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 16, 3, 36), 18.06, 28.35, 0.0, 20.31, 14.11, 0, 0, 0, 2, 0, 0),)
2025-06-13 16:04:06,970 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 16:03:36
2025-06-13 16:04:07,049 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 16:04:07,054 [DEBUG][       Thread-260370][   transport.py][1871] : starting thread (client mode): 0x863cbaf0
2025-06-13 16:04:07,054 [DEBUG][       Thread-260370][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 16:04:07,075 [DEBUG][       Thread-260370][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 16:04:07,075 [ INFO][       Thread-260370][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 16:04:07,079 [DEBUG][       Thread-260370][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 16:04:07,079 [DEBUG][       Thread-260370][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 16:04:07,079 [DEBUG][       Thread-260370][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 16:04:07,079 [DEBUG][       Thread-260370][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:04:07,079 [DEBUG][       Thread-260370][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:04:07,079 [DEBUG][       Thread-260370][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:04:07,079 [DEBUG][       Thread-260370][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:04:07,079 [DEBUG][       Thread-260370][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 16:04:07,079 [DEBUG][       Thread-260370][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 16:04:07,079 [DEBUG][       Thread-260370][   transport.py][1871] : client lang: <none>
2025-06-13 16:04:07,079 [DEBUG][       Thread-260370][   transport.py][1871] : server lang: <none>
2025-06-13 16:04:07,079 [DEBUG][       Thread-260370][   transport.py][1871] : kex follows: False
2025-06-13 16:04:07,079 [DEBUG][       Thread-260370][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 16:04:07,079 [DEBUG][       Thread-260370][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 16:04:07,080 [DEBUG][       Thread-260370][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 16:04:07,080 [DEBUG][       Thread-260370][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 16:04:07,080 [DEBUG][       Thread-260370][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 16:04:07,080 [DEBUG][       Thread-260370][   transport.py][1871] : Compression: none
2025-06-13 16:04:07,080 [DEBUG][       Thread-260370][   transport.py][1871] : === End of kex handshake ===
2025-06-13 16:04:07,097 [DEBUG][       Thread-260370][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 16:04:07,098 [DEBUG][       Thread-260370][   transport.py][1871] : Switch to new keys ...
2025-06-13 16:04:07,098 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 16:04:07,098 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 16:04:07,099 [DEBUG][       Thread-260370][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 16:04:07,100 [DEBUG][       Thread-260370][   transport.py][1871] : userauth is OK
2025-06-13 16:04:07,125 [ INFO][       Thread-260370][   transport.py][1871] : Authentication (password) successful!
2025-06-13 16:04:07,126 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 16:04:07,949 [DEBUG][       Thread-260370][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 16:04:07,949 [DEBUG][       Thread-260370][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 16:04:07,993 [DEBUG][       Thread-260370][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 16:04:07,993 [DEBUG][       Thread-260370][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 16:04:07,997 [DEBUG][       Thread-260370][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 16:04:08,010 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 16:04:08,010 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 16:04:08,012 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 16:04:08,014 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 16:04:08,019 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 16:04:08,021 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 16:04:08,021 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 16:04:08,022 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 16:04:08,022 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.585699 -999.00  +13.70  21.39     33   -1.90 1 1 1 1 1   887    0 15.66 -1.89 ----- 22.6 21.4 45.6 28.7 16.6 -31.6 15.8 -32.2 16.6 -31.2 17.6 -29.7
2025-06-13 16:04:08,022 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 16:04:08,022 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 16:04:08,022 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.585699
2025-06-13 16:04:08,023 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 16:04:08,023 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 16:04:08,023 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 16:04:08,023 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 16:04:08,023 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 16:04:08,024 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T16:03:36', tmtdew=18.06, humidity=28.35, cloud=0.0, wind=20.31, temperature=14.11, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T14:03:24.394', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 16:04:08,025 [DEBUG][       Thread-260370][   transport.py][1871] : EOF in transport thread
2025-06-13 16:04:08,111 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 16:04:08,121 [DEBUG][       Thread-260373][   transport.py][1871] : starting thread (client mode): 0x86353220
2025-06-13 16:04:08,121 [DEBUG][       Thread-260373][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 16:04:08,134 [DEBUG][       Thread-260373][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 16:04:08,134 [ INFO][       Thread-260373][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 16:04:08,142 [DEBUG][       Thread-260373][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 16:04:08,142 [DEBUG][       Thread-260373][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 16:04:08,142 [DEBUG][       Thread-260373][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 16:04:08,142 [DEBUG][       Thread-260373][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:04:08,142 [DEBUG][       Thread-260373][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:04:08,142 [DEBUG][       Thread-260373][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:04:08,142 [DEBUG][       Thread-260373][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:04:08,142 [DEBUG][       Thread-260373][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 16:04:08,142 [DEBUG][       Thread-260373][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 16:04:08,142 [DEBUG][       Thread-260373][   transport.py][1871] : client lang: <none>
2025-06-13 16:04:08,142 [DEBUG][       Thread-260373][   transport.py][1871] : server lang: <none>
2025-06-13 16:04:08,142 [DEBUG][       Thread-260373][   transport.py][1871] : kex follows: False
2025-06-13 16:04:08,142 [DEBUG][       Thread-260373][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 16:04:08,142 [DEBUG][       Thread-260373][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 16:04:08,143 [DEBUG][       Thread-260373][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 16:04:08,143 [DEBUG][       Thread-260373][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 16:04:08,143 [DEBUG][       Thread-260373][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 16:04:08,143 [DEBUG][       Thread-260373][   transport.py][1871] : Compression: none
2025-06-13 16:04:08,143 [DEBUG][       Thread-260373][   transport.py][1871] : === End of kex handshake ===
2025-06-13 16:04:08,201 [DEBUG][       Thread-260373][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 16:04:08,202 [DEBUG][       Thread-260373][   transport.py][1871] : Switch to new keys ...
2025-06-13 16:04:08,203 [DEBUG][       Thread-260373][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 16:04:08,203 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 16:04:08,204 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 16:04:08,262 [DEBUG][       Thread-260373][   transport.py][1871] : userauth is OK
2025-06-13 16:04:08,262 [DEBUG][       Thread-260373][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 16:04:08,262 [DEBUG][       Thread-260373][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 16:04:08,262 [DEBUG][       Thread-260373][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 16:04:08,262 [DEBUG][       Thread-260373][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 16:04:08,292 [ INFO][       Thread-260373][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 16:04:08,292 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 16:04:08,293 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 16:04:09,292 [DEBUG][       Thread-260373][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 16:04:09,292 [DEBUG][       Thread-260373][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 16:04:09,339 [DEBUG][       Thread-260373][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 16:04:09,339 [DEBUG][       Thread-260373][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 16:04:09,348 [DEBUG][       Thread-260373][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 16:04:09,355 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 16:04:09,355 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 16:04:09,365 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 16:04:09,386 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 16:04:09,387 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 16:04:09,387 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 16:04:09,396 [DEBUG][       Thread-260373][   transport.py][1871] : EOF in transport thread
2025-06-13 16:04:12,405 [DEBUG][Thread-260375 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:04:14,364 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:04:14,365 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:04:19,397 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 16:04:19,397 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 16:04:19,398 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 16:04:19,400 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 16:04:19,858 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 16, 4, 8), 18.02, 28.43, 0.0, 19.46, 14.12, 0, 0, 0, 2, 0, 0),)
2025-06-13 16:04:19,858 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 16:04:08
2025-06-13 16:04:19,940 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 16:04:19,944 [DEBUG][       Thread-260376][   transport.py][1871] : starting thread (client mode): 0x867fef50
2025-06-13 16:04:19,944 [DEBUG][       Thread-260376][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 16:04:19,963 [DEBUG][       Thread-260376][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 16:04:19,963 [ INFO][       Thread-260376][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 16:04:19,966 [DEBUG][       Thread-260376][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 16:04:19,966 [DEBUG][       Thread-260376][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 16:04:19,966 [DEBUG][       Thread-260376][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 16:04:19,966 [DEBUG][       Thread-260376][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:04:19,966 [DEBUG][       Thread-260376][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:04:19,966 [DEBUG][       Thread-260376][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:04:19,966 [DEBUG][       Thread-260376][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:04:19,966 [DEBUG][       Thread-260376][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 16:04:19,966 [DEBUG][       Thread-260376][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 16:04:19,966 [DEBUG][       Thread-260376][   transport.py][1871] : client lang: <none>
2025-06-13 16:04:19,966 [DEBUG][       Thread-260376][   transport.py][1871] : server lang: <none>
2025-06-13 16:04:19,966 [DEBUG][       Thread-260376][   transport.py][1871] : kex follows: False
2025-06-13 16:04:19,966 [DEBUG][       Thread-260376][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 16:04:19,966 [DEBUG][       Thread-260376][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 16:04:19,967 [DEBUG][       Thread-260376][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 16:04:19,967 [DEBUG][       Thread-260376][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 16:04:19,967 [DEBUG][       Thread-260376][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 16:04:19,967 [DEBUG][       Thread-260376][   transport.py][1871] : Compression: none
2025-06-13 16:04:19,967 [DEBUG][       Thread-260376][   transport.py][1871] : === End of kex handshake ===
2025-06-13 16:04:19,978 [DEBUG][       Thread-260376][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 16:04:19,979 [DEBUG][       Thread-260376][   transport.py][1871] : Switch to new keys ...
2025-06-13 16:04:19,979 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 16:04:19,979 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 16:04:19,980 [DEBUG][       Thread-260376][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 16:04:19,980 [DEBUG][       Thread-260376][   transport.py][1871] : userauth is OK
2025-06-13 16:04:19,993 [ INFO][       Thread-260376][   transport.py][1871] : Authentication (password) successful!
2025-06-13 16:04:19,993 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 16:04:20,572 [DEBUG][       Thread-260376][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 16:04:20,572 [DEBUG][       Thread-260376][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 16:04:20,613 [DEBUG][       Thread-260376][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 16:04:20,613 [DEBUG][       Thread-260376][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 16:04:20,615 [DEBUG][       Thread-260376][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 16:04:20,623 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 16:04:20,623 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 16:04:20,624 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 16:04:20,625 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 16:04:20,628 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 16:04:20,628 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 16:04:20,628 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 16:04:20,629 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 16:04:20,629 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.586046 -999.00  +13.60  28.04     33   -2.00 1 1 1 1 1   887    0 15.59 -2.22 ----- 26.9 28.0 47.8 29.7 16.6 -31.8 15.8 -32.1 16.6 -31.4 17.6 -29.9
2025-06-13 16:04:20,629 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 16:04:20,629 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 16:04:20,629 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.586046
2025-06-13 16:04:20,629 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 16:04:20,629 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 16:04:20,629 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 16:04:20,629 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 16:04:20,629 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 16:04:20,629 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T16:04:08', tmtdew=18.02, humidity=28.43, cloud=0.0, wind=19.46, temperature=14.12, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T14:03:54.374', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 16:04:20,629 [DEBUG][       Thread-260376][   transport.py][1871] : EOF in transport thread
2025-06-13 16:04:20,701 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 16:04:20,714 [DEBUG][       Thread-260379][   transport.py][1871] : starting thread (client mode): 0x86392170
2025-06-13 16:04:20,714 [DEBUG][       Thread-260379][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 16:04:20,734 [DEBUG][       Thread-260379][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 16:04:20,734 [ INFO][       Thread-260379][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 16:04:20,742 [DEBUG][       Thread-260379][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 16:04:20,742 [DEBUG][       Thread-260379][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 16:04:20,742 [DEBUG][       Thread-260379][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 16:04:20,742 [DEBUG][       Thread-260379][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:04:20,743 [DEBUG][       Thread-260379][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:04:20,743 [DEBUG][       Thread-260379][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:04:20,743 [DEBUG][       Thread-260379][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:04:20,743 [DEBUG][       Thread-260379][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 16:04:20,743 [DEBUG][       Thread-260379][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 16:04:20,743 [DEBUG][       Thread-260379][   transport.py][1871] : client lang: <none>
2025-06-13 16:04:20,743 [DEBUG][       Thread-260379][   transport.py][1871] : server lang: <none>
2025-06-13 16:04:20,743 [DEBUG][       Thread-260379][   transport.py][1871] : kex follows: False
2025-06-13 16:04:20,743 [DEBUG][       Thread-260379][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 16:04:20,743 [DEBUG][       Thread-260379][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 16:04:20,743 [DEBUG][       Thread-260379][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 16:04:20,743 [DEBUG][       Thread-260379][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 16:04:20,743 [DEBUG][       Thread-260379][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 16:04:20,743 [DEBUG][       Thread-260379][   transport.py][1871] : Compression: none
2025-06-13 16:04:20,743 [DEBUG][       Thread-260379][   transport.py][1871] : === End of kex handshake ===
2025-06-13 16:04:20,810 [DEBUG][       Thread-260379][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 16:04:20,810 [DEBUG][       Thread-260379][   transport.py][1871] : Switch to new keys ...
2025-06-13 16:04:20,811 [DEBUG][       Thread-260379][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 16:04:20,811 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 16:04:20,811 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 16:04:20,877 [DEBUG][       Thread-260379][   transport.py][1871] : userauth is OK
2025-06-13 16:04:20,877 [DEBUG][       Thread-260379][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 16:04:20,877 [DEBUG][       Thread-260379][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 16:04:20,877 [DEBUG][       Thread-260379][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 16:04:20,877 [DEBUG][       Thread-260379][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 16:04:20,898 [ INFO][       Thread-260379][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 16:04:20,898 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 16:04:20,899 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 16:04:21,426 [DEBUG][Thread-260381 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:04:21,894 [DEBUG][       Thread-260379][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 16:04:21,894 [DEBUG][       Thread-260379][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 16:04:21,944 [DEBUG][       Thread-260379][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 16:04:21,944 [DEBUG][       Thread-260379][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 16:04:21,953 [DEBUG][       Thread-260379][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 16:04:21,968 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 16:04:21,968 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 16:04:21,980 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 16:04:21,991 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 16:04:21,992 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 16:04:21,992 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 16:04:22,005 [DEBUG][       Thread-260379][   transport.py][1871] : EOF in transport thread
2025-06-13 16:04:22,554 [DEBUG][Thread-260382 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:04:28,504 [DEBUG][Thread-260383 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:04:29,581 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:04:29,582 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:04:30,463 [DEBUG][Thread-260384 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:04:32,003 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 16:04:32,003 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 16:04:32,003 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 16:04:32,006 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 16:04:32,462 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 16, 4, 8), 18.02, 28.43, 0.0, 19.46, 14.12, 0, 0, 0, 2, 0, 0),)
2025-06-13 16:04:32,462 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 16:04:08
2025-06-13 16:04:32,544 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 16:04:32,547 [DEBUG][       Thread-260385][   transport.py][1871] : starting thread (client mode): 0x863c9810
2025-06-13 16:04:32,553 [DEBUG][       Thread-260385][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 16:04:32,568 [DEBUG][       Thread-260385][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 16:04:32,568 [ INFO][       Thread-260385][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 16:04:32,571 [DEBUG][       Thread-260385][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 16:04:32,572 [DEBUG][       Thread-260385][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 16:04:32,572 [DEBUG][       Thread-260385][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 16:04:32,572 [DEBUG][       Thread-260385][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:04:32,572 [DEBUG][       Thread-260385][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:04:32,572 [DEBUG][       Thread-260385][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:04:32,572 [DEBUG][       Thread-260385][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:04:32,572 [DEBUG][       Thread-260385][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 16:04:32,572 [DEBUG][       Thread-260385][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 16:04:32,572 [DEBUG][       Thread-260385][   transport.py][1871] : client lang: <none>
2025-06-13 16:04:32,572 [DEBUG][       Thread-260385][   transport.py][1871] : server lang: <none>
2025-06-13 16:04:32,572 [DEBUG][       Thread-260385][   transport.py][1871] : kex follows: False
2025-06-13 16:04:32,572 [DEBUG][       Thread-260385][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 16:04:32,572 [DEBUG][       Thread-260385][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 16:04:32,572 [DEBUG][       Thread-260385][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 16:04:32,572 [DEBUG][       Thread-260385][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 16:04:32,572 [DEBUG][       Thread-260385][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 16:04:32,572 [DEBUG][       Thread-260385][   transport.py][1871] : Compression: none
2025-06-13 16:04:32,572 [DEBUG][       Thread-260385][   transport.py][1871] : === End of kex handshake ===
2025-06-13 16:04:32,589 [DEBUG][       Thread-260385][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 16:04:32,590 [DEBUG][       Thread-260385][   transport.py][1871] : Switch to new keys ...
2025-06-13 16:04:32,590 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 16:04:32,590 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 16:04:32,591 [DEBUG][       Thread-260385][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 16:04:32,592 [DEBUG][       Thread-260385][   transport.py][1871] : userauth is OK
2025-06-13 16:04:32,605 [ INFO][       Thread-260385][   transport.py][1871] : Authentication (password) successful!
2025-06-13 16:04:32,606 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 16:04:33,287 [DEBUG][       Thread-260385][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 16:04:33,287 [DEBUG][       Thread-260385][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 16:04:33,329 [DEBUG][       Thread-260385][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 16:04:33,329 [DEBUG][       Thread-260385][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 16:04:33,333 [DEBUG][       Thread-260385][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 16:04:33,344 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 16:04:33,344 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 16:04:33,346 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 16:04:33,347 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 16:04:33,352 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 16:04:33,354 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 16:04:33,354 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 16:04:33,355 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 16:04:33,355 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.586046 -999.00  +13.60  28.04     33   -2.00 1 1 1 1 1   887    0 15.59 -2.22 ----- 26.9 28.0 47.8 29.7 16.6 -31.8 15.8 -32.1 16.6 -31.4 17.6 -29.9
2025-06-13 16:04:33,355 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 16:04:33,355 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 16:04:33,355 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.586046
2025-06-13 16:04:33,356 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 16:04:33,356 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 16:04:33,356 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 16:04:33,356 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 16:04:33,356 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 16:04:33,357 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T16:04:08', tmtdew=18.02, humidity=28.43, cloud=0.0, wind=19.46, temperature=14.12, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T14:03:54.374', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 16:04:33,358 [DEBUG][       Thread-260385][   transport.py][1871] : EOF in transport thread
2025-06-13 16:04:33,440 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 16:04:33,449 [DEBUG][       Thread-260388][   transport.py][1871] : starting thread (client mode): 0x867b5cf0
2025-06-13 16:04:33,449 [DEBUG][       Thread-260388][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 16:04:33,465 [DEBUG][       Thread-260388][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 16:04:33,465 [ INFO][       Thread-260388][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 16:04:33,472 [DEBUG][       Thread-260388][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 16:04:33,472 [DEBUG][       Thread-260388][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 16:04:33,473 [DEBUG][       Thread-260388][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 16:04:33,473 [DEBUG][       Thread-260388][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:04:33,473 [DEBUG][       Thread-260388][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:04:33,473 [DEBUG][       Thread-260388][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:04:33,473 [DEBUG][       Thread-260388][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:04:33,473 [DEBUG][       Thread-260388][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 16:04:33,473 [DEBUG][       Thread-260388][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 16:04:33,473 [DEBUG][       Thread-260388][   transport.py][1871] : client lang: <none>
2025-06-13 16:04:33,473 [DEBUG][       Thread-260388][   transport.py][1871] : server lang: <none>
2025-06-13 16:04:33,473 [DEBUG][       Thread-260388][   transport.py][1871] : kex follows: False
2025-06-13 16:04:33,473 [DEBUG][       Thread-260388][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 16:04:33,473 [DEBUG][       Thread-260388][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 16:04:33,473 [DEBUG][       Thread-260388][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 16:04:33,473 [DEBUG][       Thread-260388][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 16:04:33,473 [DEBUG][       Thread-260388][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 16:04:33,473 [DEBUG][       Thread-260388][   transport.py][1871] : Compression: none
2025-06-13 16:04:33,473 [DEBUG][       Thread-260388][   transport.py][1871] : === End of kex handshake ===
2025-06-13 16:04:33,531 [DEBUG][       Thread-260388][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 16:04:33,531 [DEBUG][       Thread-260388][   transport.py][1871] : Switch to new keys ...
2025-06-13 16:04:33,532 [DEBUG][       Thread-260388][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 16:04:33,532 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 16:04:33,533 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 16:04:33,593 [DEBUG][       Thread-260388][   transport.py][1871] : userauth is OK
2025-06-13 16:04:33,593 [DEBUG][       Thread-260388][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 16:04:33,593 [DEBUG][       Thread-260388][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 16:04:33,593 [DEBUG][       Thread-260388][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 16:04:33,593 [DEBUG][       Thread-260388][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 16:04:33,612 [ INFO][       Thread-260388][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 16:04:33,613 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 16:04:33,613 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 16:04:34,584 [DEBUG][       Thread-260388][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 16:04:34,585 [DEBUG][       Thread-260388][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 16:04:34,636 [DEBUG][       Thread-260388][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 16:04:34,636 [DEBUG][       Thread-260388][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 16:04:34,645 [DEBUG][       Thread-260388][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 16:04:34,654 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 16:04:34,655 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 16:04:34,664 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 16:04:34,673 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 16:04:34,674 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 16:04:34,674 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 16:04:34,682 [DEBUG][       Thread-260388][   transport.py][1871] : EOF in transport thread
2025-06-13 16:04:39,482 [DEBUG][Thread-260390 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:04:44,685 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 16:04:44,685 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 16:04:44,685 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 16:04:44,688 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 16:04:45,149 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 16, 4, 40), 17.97, 28.79, 0.0, 23.66, 14.06, 0, 0, 0, 2, 0, 0),)
2025-06-13 16:04:45,149 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 16:04:40
2025-06-13 16:04:45,231 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 16:04:45,235 [DEBUG][       Thread-260391][   transport.py][1871] : starting thread (client mode): 0x867ffb20
2025-06-13 16:04:45,236 [DEBUG][       Thread-260391][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 16:04:45,256 [DEBUG][       Thread-260391][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 16:04:45,256 [ INFO][       Thread-260391][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 16:04:45,259 [DEBUG][       Thread-260391][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 16:04:45,259 [DEBUG][       Thread-260391][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 16:04:45,259 [DEBUG][       Thread-260391][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 16:04:45,259 [DEBUG][       Thread-260391][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:04:45,259 [DEBUG][       Thread-260391][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:04:45,259 [DEBUG][       Thread-260391][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:04:45,259 [DEBUG][       Thread-260391][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:04:45,259 [DEBUG][       Thread-260391][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 16:04:45,259 [DEBUG][       Thread-260391][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 16:04:45,259 [DEBUG][       Thread-260391][   transport.py][1871] : client lang: <none>
2025-06-13 16:04:45,259 [DEBUG][       Thread-260391][   transport.py][1871] : server lang: <none>
2025-06-13 16:04:45,259 [DEBUG][       Thread-260391][   transport.py][1871] : kex follows: False
2025-06-13 16:04:45,259 [DEBUG][       Thread-260391][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 16:04:45,259 [DEBUG][       Thread-260391][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 16:04:45,260 [DEBUG][       Thread-260391][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 16:04:45,260 [DEBUG][       Thread-260391][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 16:04:45,260 [DEBUG][       Thread-260391][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 16:04:45,260 [DEBUG][       Thread-260391][   transport.py][1871] : Compression: none
2025-06-13 16:04:45,260 [DEBUG][       Thread-260391][   transport.py][1871] : === End of kex handshake ===
2025-06-13 16:04:45,277 [DEBUG][       Thread-260391][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 16:04:45,278 [DEBUG][       Thread-260391][   transport.py][1871] : Switch to new keys ...
2025-06-13 16:04:45,278 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 16:04:45,278 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 16:04:45,279 [DEBUG][       Thread-260391][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 16:04:45,280 [DEBUG][       Thread-260391][   transport.py][1871] : userauth is OK
2025-06-13 16:04:45,304 [ INFO][       Thread-260391][   transport.py][1871] : Authentication (password) successful!
2025-06-13 16:04:45,305 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 16:04:46,103 [DEBUG][       Thread-260391][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 16:04:46,103 [DEBUG][       Thread-260391][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 16:04:46,149 [DEBUG][       Thread-260391][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 16:04:46,149 [DEBUG][       Thread-260391][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 16:04:46,151 [DEBUG][       Thread-260391][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 16:04:46,164 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 16:04:46,164 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 16:04:46,165 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 16:04:46,166 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 16:04:46,169 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 16:04:46,170 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 16:04:46,170 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 16:04:46,170 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 16:04:46,170 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.586046 -999.00  +13.60  28.04     33   -2.00 1 1 1 1 1   887    0 15.59 -2.22 ----- 26.9 28.0 47.8 29.7 16.6 -31.8 15.8 -32.1 16.6 -31.4 17.6 -29.9
2025-06-13 16:04:46,170 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 16:04:46,170 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 16:04:46,170 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.586046
2025-06-13 16:04:46,171 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 16:04:46,171 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 16:04:46,171 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 16:04:46,171 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 16:04:46,171 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 16:04:46,171 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T16:04:40', tmtdew=17.97, humidity=28.79, cloud=0.0, wind=23.66, temperature=14.06, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T14:03:54.374', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 16:04:46,172 [DEBUG][       Thread-260391][   transport.py][1871] : EOF in transport thread
2025-06-13 16:04:46,242 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 16:04:46,253 [DEBUG][       Thread-260394][   transport.py][1871] : starting thread (client mode): 0x863be470
2025-06-13 16:04:46,253 [DEBUG][       Thread-260394][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 16:04:46,268 [DEBUG][       Thread-260394][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 16:04:46,268 [ INFO][       Thread-260394][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 16:04:46,275 [DEBUG][       Thread-260394][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 16:04:46,275 [DEBUG][       Thread-260394][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 16:04:46,275 [DEBUG][       Thread-260394][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 16:04:46,276 [DEBUG][       Thread-260394][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:04:46,276 [DEBUG][       Thread-260394][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:04:46,276 [DEBUG][       Thread-260394][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:04:46,276 [DEBUG][       Thread-260394][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:04:46,276 [DEBUG][       Thread-260394][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 16:04:46,276 [DEBUG][       Thread-260394][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 16:04:46,276 [DEBUG][       Thread-260394][   transport.py][1871] : client lang: <none>
2025-06-13 16:04:46,276 [DEBUG][       Thread-260394][   transport.py][1871] : server lang: <none>
2025-06-13 16:04:46,276 [DEBUG][       Thread-260394][   transport.py][1871] : kex follows: False
2025-06-13 16:04:46,276 [DEBUG][       Thread-260394][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 16:04:46,276 [DEBUG][       Thread-260394][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 16:04:46,276 [DEBUG][       Thread-260394][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 16:04:46,276 [DEBUG][       Thread-260394][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 16:04:46,276 [DEBUG][       Thread-260394][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 16:04:46,276 [DEBUG][       Thread-260394][   transport.py][1871] : Compression: none
2025-06-13 16:04:46,276 [DEBUG][       Thread-260394][   transport.py][1871] : === End of kex handshake ===
2025-06-13 16:04:46,334 [DEBUG][       Thread-260394][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 16:04:46,334 [DEBUG][       Thread-260394][   transport.py][1871] : Switch to new keys ...
2025-06-13 16:04:46,335 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 16:04:46,335 [DEBUG][       Thread-260394][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 16:04:46,336 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 16:04:46,391 [DEBUG][       Thread-260394][   transport.py][1871] : userauth is OK
2025-06-13 16:04:46,391 [DEBUG][       Thread-260394][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 16:04:46,391 [DEBUG][       Thread-260394][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 16:04:46,391 [DEBUG][       Thread-260394][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 16:04:46,391 [DEBUG][       Thread-260394][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 16:04:46,409 [ INFO][       Thread-260394][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 16:04:46,410 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 16:04:46,410 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 16:04:47,400 [DEBUG][       Thread-260394][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 16:04:47,400 [DEBUG][       Thread-260394][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 16:04:47,451 [DEBUG][       Thread-260394][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 16:04:47,451 [DEBUG][       Thread-260394][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 16:04:47,460 [DEBUG][       Thread-260394][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 16:04:47,469 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 16:04:47,469 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 16:04:47,479 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 16:04:47,488 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 16:04:47,488 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 16:04:47,488 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 16:04:47,499 [DEBUG][       Thread-260394][   transport.py][1871] : EOF in transport thread
2025-06-13 16:04:48,500 [DEBUG][Thread-260396 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:04:57,499 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 16:04:57,499 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 16:04:57,499 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 16:04:57,502 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 16:04:57,534 [DEBUG][Thread-260397 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:04:57,961 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 16, 4, 40), 17.97, 28.79, 0.0, 23.66, 14.06, 0, 0, 0, 2, 0, 0),)
2025-06-13 16:04:57,961 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 16:04:40
2025-06-13 16:04:58,042 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 16:04:58,046 [DEBUG][       Thread-260398][   transport.py][1871] : starting thread (client mode): 0x86392170
2025-06-13 16:04:58,046 [DEBUG][       Thread-260398][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 16:04:58,069 [DEBUG][       Thread-260398][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 16:04:58,069 [ INFO][       Thread-260398][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 16:04:58,073 [DEBUG][       Thread-260398][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 16:04:58,073 [DEBUG][       Thread-260398][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 16:04:58,073 [DEBUG][       Thread-260398][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 16:04:58,073 [DEBUG][       Thread-260398][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:04:58,073 [DEBUG][       Thread-260398][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:04:58,073 [DEBUG][       Thread-260398][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:04:58,073 [DEBUG][       Thread-260398][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:04:58,073 [DEBUG][       Thread-260398][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 16:04:58,073 [DEBUG][       Thread-260398][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 16:04:58,073 [DEBUG][       Thread-260398][   transport.py][1871] : client lang: <none>
2025-06-13 16:04:58,073 [DEBUG][       Thread-260398][   transport.py][1871] : server lang: <none>
2025-06-13 16:04:58,073 [DEBUG][       Thread-260398][   transport.py][1871] : kex follows: False
2025-06-13 16:04:58,074 [DEBUG][       Thread-260398][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 16:04:58,074 [DEBUG][       Thread-260398][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 16:04:58,074 [DEBUG][       Thread-260398][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 16:04:58,074 [DEBUG][       Thread-260398][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 16:04:58,074 [DEBUG][       Thread-260398][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 16:04:58,074 [DEBUG][       Thread-260398][   transport.py][1871] : Compression: none
2025-06-13 16:04:58,074 [DEBUG][       Thread-260398][   transport.py][1871] : === End of kex handshake ===
2025-06-13 16:04:58,090 [DEBUG][       Thread-260398][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 16:04:58,091 [DEBUG][       Thread-260398][   transport.py][1871] : Switch to new keys ...
2025-06-13 16:04:58,091 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 16:04:58,092 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 16:04:58,092 [DEBUG][       Thread-260398][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 16:04:58,093 [DEBUG][       Thread-260398][   transport.py][1871] : userauth is OK
2025-06-13 16:04:58,118 [ INFO][       Thread-260398][   transport.py][1871] : Authentication (password) successful!
2025-06-13 16:04:58,118 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 16:04:58,767 [DEBUG][       Thread-260398][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 16:04:58,767 [DEBUG][       Thread-260398][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 16:04:58,809 [DEBUG][       Thread-260398][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 16:04:58,809 [DEBUG][       Thread-260398][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 16:04:58,812 [DEBUG][       Thread-260398][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 16:04:58,826 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 16:04:58,826 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 16:04:58,828 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 16:04:58,830 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 16:04:58,835 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 16:04:58,837 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 16:04:58,837 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 16:04:58,838 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 16:04:58,838 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.586393 -999.00  +13.60  26.53     33   -1.90 1 1 1 1 1   887    0 15.57 -2.67 ----- 21.1 26.5 51.2 28.9 16.5 -31.6 15.8 -32.1 16.5 -31.5 17.5 -29.7
2025-06-13 16:04:58,838 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 16:04:58,838 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 16:04:58,838 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.586393
2025-06-13 16:04:58,839 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 16:04:58,839 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 16:04:58,839 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 16:04:58,839 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 16:04:58,839 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 16:04:58,839 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T16:04:40', tmtdew=17.97, humidity=28.79, cloud=0.0, wind=23.66, temperature=14.06, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T14:04:24.355', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 16:04:58,839 [DEBUG][       Thread-260398][   transport.py][1871] : EOF in transport thread
2025-06-13 16:04:58,920 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 16:04:58,930 [DEBUG][       Thread-260401][   transport.py][1871] : starting thread (client mode): 0x86893a60
2025-06-13 16:04:58,930 [DEBUG][       Thread-260401][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 16:04:58,945 [DEBUG][       Thread-260401][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 16:04:58,945 [ INFO][       Thread-260401][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 16:04:58,953 [DEBUG][       Thread-260401][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 16:04:58,953 [DEBUG][       Thread-260401][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 16:04:58,953 [DEBUG][       Thread-260401][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 16:04:58,953 [DEBUG][       Thread-260401][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:04:58,953 [DEBUG][       Thread-260401][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:04:58,953 [DEBUG][       Thread-260401][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:04:58,953 [DEBUG][       Thread-260401][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:04:58,953 [DEBUG][       Thread-260401][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 16:04:58,953 [DEBUG][       Thread-260401][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 16:04:58,953 [DEBUG][       Thread-260401][   transport.py][1871] : client lang: <none>
2025-06-13 16:04:58,953 [DEBUG][       Thread-260401][   transport.py][1871] : server lang: <none>
2025-06-13 16:04:58,953 [DEBUG][       Thread-260401][   transport.py][1871] : kex follows: False
2025-06-13 16:04:58,953 [DEBUG][       Thread-260401][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 16:04:58,953 [DEBUG][       Thread-260401][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 16:04:58,953 [DEBUG][       Thread-260401][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 16:04:58,954 [DEBUG][       Thread-260401][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 16:04:58,954 [DEBUG][       Thread-260401][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 16:04:58,954 [DEBUG][       Thread-260401][   transport.py][1871] : Compression: none
2025-06-13 16:04:58,954 [DEBUG][       Thread-260401][   transport.py][1871] : === End of kex handshake ===
2025-06-13 16:04:59,010 [DEBUG][       Thread-260401][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 16:04:59,010 [DEBUG][       Thread-260401][   transport.py][1871] : Switch to new keys ...
2025-06-13 16:04:59,011 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 16:04:59,011 [DEBUG][       Thread-260401][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 16:04:59,012 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 16:04:59,066 [DEBUG][       Thread-260401][   transport.py][1871] : userauth is OK
2025-06-13 16:04:59,066 [DEBUG][       Thread-260401][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 16:04:59,066 [DEBUG][       Thread-260401][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 16:04:59,066 [DEBUG][       Thread-260401][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 16:04:59,066 [DEBUG][       Thread-260401][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 16:04:59,085 [ INFO][       Thread-260401][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 16:04:59,085 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 16:04:59,086 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 16:05:00,078 [DEBUG][       Thread-260401][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 16:05:00,078 [DEBUG][       Thread-260401][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 16:05:00,130 [DEBUG][       Thread-260401][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 16:05:00,130 [DEBUG][       Thread-260401][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 16:05:00,139 [DEBUG][       Thread-260401][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 16:05:00,148 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 16:05:00,148 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 16:05:00,157 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 16:05:00,166 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 16:05:00,167 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 16:05:00,167 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 16:05:00,180 [DEBUG][       Thread-260401][   transport.py][1871] : EOF in transport thread
2025-06-13 16:05:06,555 [DEBUG][Thread-260403 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:05:10,178 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 16:05:10,178 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 16:05:10,178 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 16:05:10,181 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 16:05:10,640 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 16, 4, 40), 17.97, 28.79, 0.0, 23.66, 14.06, 0, 0, 0, 2, 0, 0),)
2025-06-13 16:05:10,641 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 16:04:40
2025-06-13 16:05:10,722 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 16:05:10,728 [DEBUG][       Thread-260404][   transport.py][1871] : starting thread (client mode): 0x86369f60
2025-06-13 16:05:10,728 [DEBUG][       Thread-260404][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 16:05:10,749 [DEBUG][       Thread-260404][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 16:05:10,749 [ INFO][       Thread-260404][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 16:05:10,752 [DEBUG][       Thread-260404][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 16:05:10,752 [DEBUG][       Thread-260404][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 16:05:10,752 [DEBUG][       Thread-260404][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 16:05:10,753 [DEBUG][       Thread-260404][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:05:10,753 [DEBUG][       Thread-260404][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:05:10,753 [DEBUG][       Thread-260404][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:05:10,753 [DEBUG][       Thread-260404][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:05:10,753 [DEBUG][       Thread-260404][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 16:05:10,753 [DEBUG][       Thread-260404][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 16:05:10,753 [DEBUG][       Thread-260404][   transport.py][1871] : client lang: <none>
2025-06-13 16:05:10,753 [DEBUG][       Thread-260404][   transport.py][1871] : server lang: <none>
2025-06-13 16:05:10,753 [DEBUG][       Thread-260404][   transport.py][1871] : kex follows: False
2025-06-13 16:05:10,753 [DEBUG][       Thread-260404][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 16:05:10,753 [DEBUG][       Thread-260404][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 16:05:10,753 [DEBUG][       Thread-260404][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 16:05:10,753 [DEBUG][       Thread-260404][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 16:05:10,753 [DEBUG][       Thread-260404][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 16:05:10,753 [DEBUG][       Thread-260404][   transport.py][1871] : Compression: none
2025-06-13 16:05:10,753 [DEBUG][       Thread-260404][   transport.py][1871] : === End of kex handshake ===
2025-06-13 16:05:10,770 [DEBUG][       Thread-260404][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 16:05:10,770 [DEBUG][       Thread-260404][   transport.py][1871] : Switch to new keys ...
2025-06-13 16:05:10,771 [DEBUG][       Thread-260404][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 16:05:10,771 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 16:05:10,771 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 16:05:10,772 [DEBUG][       Thread-260404][   transport.py][1871] : userauth is OK
2025-06-13 16:05:10,797 [ INFO][       Thread-260404][   transport.py][1871] : Authentication (password) successful!
2025-06-13 16:05:10,798 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 16:05:13,359 [DEBUG][       Thread-260404][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 16:05:13,360 [DEBUG][       Thread-260404][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 16:05:13,401 [DEBUG][       Thread-260404][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 16:05:13,401 [DEBUG][       Thread-260404][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 16:05:13,403 [DEBUG][       Thread-260404][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 16:05:13,414 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 16:05:13,414 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 16:05:13,415 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 16:05:13,416 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 16:05:13,419 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 16:05:13,420 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 16:05:13,420 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 16:05:13,420 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 16:05:13,420 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.586393 -999.00  +13.60  26.53     33   -1.90 1 1 1 1 1   887    0 15.57 -2.67 ----- 21.1 26.5 51.2 28.9 16.5 -31.6 15.8 -32.1 16.5 -31.5 17.5 -29.7
2025-06-13 16:05:13,420 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 16:05:13,420 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 16:05:13,420 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.586393
2025-06-13 16:05:13,421 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 16:05:13,421 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 16:05:13,421 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 16:05:13,421 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 16:05:13,421 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 16:05:13,421 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T16:04:40', tmtdew=17.97, humidity=28.79, cloud=0.0, wind=23.66, temperature=14.06, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T14:04:24.355', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 16:05:13,422 [DEBUG][       Thread-260404][   transport.py][1871] : EOF in transport thread
2025-06-13 16:05:13,495 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 16:05:13,509 [DEBUG][       Thread-260407][   transport.py][1871] : starting thread (client mode): 0x867b71c0
2025-06-13 16:05:13,509 [DEBUG][       Thread-260407][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 16:05:13,526 [DEBUG][       Thread-260407][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 16:05:13,526 [ INFO][       Thread-260407][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 16:05:13,536 [DEBUG][       Thread-260407][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 16:05:13,536 [DEBUG][       Thread-260407][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 16:05:13,536 [DEBUG][       Thread-260407][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 16:05:13,536 [DEBUG][       Thread-260407][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:05:13,536 [DEBUG][       Thread-260407][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:05:13,536 [DEBUG][       Thread-260407][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:05:13,536 [DEBUG][       Thread-260407][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:05:13,536 [DEBUG][       Thread-260407][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 16:05:13,536 [DEBUG][       Thread-260407][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 16:05:13,536 [DEBUG][       Thread-260407][   transport.py][1871] : client lang: <none>
2025-06-13 16:05:13,536 [DEBUG][       Thread-260407][   transport.py][1871] : server lang: <none>
2025-06-13 16:05:13,536 [DEBUG][       Thread-260407][   transport.py][1871] : kex follows: False
2025-06-13 16:05:13,536 [DEBUG][       Thread-260407][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 16:05:13,536 [DEBUG][       Thread-260407][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 16:05:13,536 [DEBUG][       Thread-260407][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 16:05:13,536 [DEBUG][       Thread-260407][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 16:05:13,536 [DEBUG][       Thread-260407][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 16:05:13,536 [DEBUG][       Thread-260407][   transport.py][1871] : Compression: none
2025-06-13 16:05:13,536 [DEBUG][       Thread-260407][   transport.py][1871] : === End of kex handshake ===
2025-06-13 16:05:13,594 [DEBUG][       Thread-260407][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 16:05:13,594 [DEBUG][       Thread-260407][   transport.py][1871] : Switch to new keys ...
2025-06-13 16:05:13,594 [DEBUG][       Thread-260407][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 16:05:13,594 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 16:05:13,594 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 16:05:13,657 [DEBUG][       Thread-260407][   transport.py][1871] : userauth is OK
2025-06-13 16:05:13,657 [DEBUG][       Thread-260407][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 16:05:13,657 [DEBUG][       Thread-260407][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 16:05:13,657 [DEBUG][       Thread-260407][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 16:05:13,657 [DEBUG][       Thread-260407][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 16:05:13,671 [ INFO][       Thread-260407][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 16:05:13,671 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 16:05:13,671 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 16:05:14,502 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:05:14,503 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:05:14,662 [DEBUG][       Thread-260407][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 16:05:14,663 [DEBUG][       Thread-260407][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 16:05:14,715 [DEBUG][       Thread-260407][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 16:05:14,715 [DEBUG][       Thread-260407][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 16:05:14,728 [DEBUG][       Thread-260407][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 16:05:14,738 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 16:05:14,738 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 16:05:14,747 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 16:05:14,757 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 16:05:14,757 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 16:05:14,757 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 16:05:14,779 [DEBUG][       Thread-260407][   transport.py][1871] : EOF in transport thread
2025-06-13 16:05:15,575 [DEBUG][Thread-260409 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:05:22,608 [DEBUG][Thread-260410 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:05:24,596 [DEBUG][Thread-260411 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:05:24,768 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 16:05:24,768 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 16:05:24,768 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 16:05:24,771 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 16:05:25,220 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 16, 5, 11), 18.09, 28.44, 0.0, 19.2, 14.08, 0, 0, 0, 2, 0, 0),)
2025-06-13 16:05:25,220 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 16:05:11
2025-06-13 16:05:25,303 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 16:05:25,307 [DEBUG][       Thread-260412][   transport.py][1871] : starting thread (client mode): 0x86368700
2025-06-13 16:05:25,307 [DEBUG][       Thread-260412][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 16:05:25,322 [DEBUG][       Thread-260412][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 16:05:25,322 [ INFO][       Thread-260412][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 16:05:25,323 [DEBUG][       Thread-260412][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 16:05:25,323 [DEBUG][       Thread-260412][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 16:05:25,323 [DEBUG][       Thread-260412][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 16:05:25,323 [DEBUG][       Thread-260412][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:05:25,323 [DEBUG][       Thread-260412][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:05:25,323 [DEBUG][       Thread-260412][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:05:25,323 [DEBUG][       Thread-260412][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:05:25,323 [DEBUG][       Thread-260412][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 16:05:25,323 [DEBUG][       Thread-260412][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 16:05:25,323 [DEBUG][       Thread-260412][   transport.py][1871] : client lang: <none>
2025-06-13 16:05:25,324 [DEBUG][       Thread-260412][   transport.py][1871] : server lang: <none>
2025-06-13 16:05:25,324 [DEBUG][       Thread-260412][   transport.py][1871] : kex follows: False
2025-06-13 16:05:25,324 [DEBUG][       Thread-260412][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 16:05:25,324 [DEBUG][       Thread-260412][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 16:05:25,324 [DEBUG][       Thread-260412][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 16:05:25,324 [DEBUG][       Thread-260412][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 16:05:25,324 [DEBUG][       Thread-260412][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 16:05:25,324 [DEBUG][       Thread-260412][   transport.py][1871] : Compression: none
2025-06-13 16:05:25,324 [DEBUG][       Thread-260412][   transport.py][1871] : === End of kex handshake ===
2025-06-13 16:05:25,335 [DEBUG][       Thread-260412][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 16:05:25,336 [DEBUG][       Thread-260412][   transport.py][1871] : Switch to new keys ...
2025-06-13 16:05:25,336 [DEBUG][       Thread-260412][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 16:05:25,336 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 16:05:25,336 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 16:05:25,337 [DEBUG][       Thread-260412][   transport.py][1871] : userauth is OK
2025-06-13 16:05:25,361 [ INFO][       Thread-260412][   transport.py][1871] : Authentication (password) successful!
2025-06-13 16:05:25,362 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 16:05:26,028 [DEBUG][       Thread-260412][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 16:05:26,028 [DEBUG][       Thread-260412][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 16:05:26,069 [DEBUG][       Thread-260412][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 16:05:26,069 [DEBUG][       Thread-260412][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 16:05:26,071 [DEBUG][       Thread-260412][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 16:05:26,078 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 16:05:26,078 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 16:05:26,086 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 16:05:26,088 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 16:05:26,093 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 16:05:26,095 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 16:05:26,095 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 16:05:26,096 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 16:05:26,096 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.586741 -999.00  +13.60  22.82     33   -2.20 1 1 1 1 1   887    0 15.54 -3.39 ----- 23.9 22.8 41.8 29.4 16.5 -32.1 15.7 -32.2 16.5 -31.3 17.6 -29.8
2025-06-13 16:05:26,096 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 16:05:26,096 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 16:05:26,096 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.586741
2025-06-13 16:05:26,097 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 16:05:26,097 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 16:05:26,097 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 16:05:26,098 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 16:05:26,098 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 16:05:26,098 [DEBUG][       Thread-260412][   transport.py][1871] : EOF in transport thread
2025-06-13 16:05:26,098 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T16:05:11', tmtdew=18.09, humidity=28.44, cloud=0.0, wind=19.2, temperature=14.08, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T14:04:54.422', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 16:05:26,181 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 16:05:26,190 [DEBUG][       Thread-260415][   transport.py][1871] : starting thread (client mode): 0x868c8520
2025-06-13 16:05:26,191 [DEBUG][       Thread-260415][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 16:05:26,208 [DEBUG][       Thread-260415][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 16:05:26,208 [ INFO][       Thread-260415][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 16:05:26,215 [DEBUG][       Thread-260415][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 16:05:26,215 [DEBUG][       Thread-260415][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 16:05:26,215 [DEBUG][       Thread-260415][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 16:05:26,216 [DEBUG][       Thread-260415][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:05:26,216 [DEBUG][       Thread-260415][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:05:26,216 [DEBUG][       Thread-260415][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:05:26,216 [DEBUG][       Thread-260415][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:05:26,216 [DEBUG][       Thread-260415][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 16:05:26,216 [DEBUG][       Thread-260415][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 16:05:26,216 [DEBUG][       Thread-260415][   transport.py][1871] : client lang: <none>
2025-06-13 16:05:26,216 [DEBUG][       Thread-260415][   transport.py][1871] : server lang: <none>
2025-06-13 16:05:26,216 [DEBUG][       Thread-260415][   transport.py][1871] : kex follows: False
2025-06-13 16:05:26,216 [DEBUG][       Thread-260415][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 16:05:26,216 [DEBUG][       Thread-260415][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 16:05:26,216 [DEBUG][       Thread-260415][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 16:05:26,216 [DEBUG][       Thread-260415][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 16:05:26,216 [DEBUG][       Thread-260415][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 16:05:26,216 [DEBUG][       Thread-260415][   transport.py][1871] : Compression: none
2025-06-13 16:05:26,216 [DEBUG][       Thread-260415][   transport.py][1871] : === End of kex handshake ===
2025-06-13 16:05:26,278 [DEBUG][       Thread-260415][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 16:05:26,281 [DEBUG][       Thread-260415][   transport.py][1871] : Switch to new keys ...
2025-06-13 16:05:26,281 [DEBUG][       Thread-260415][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 16:05:26,282 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 16:05:26,282 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 16:05:26,350 [DEBUG][       Thread-260415][   transport.py][1871] : userauth is OK
2025-06-13 16:05:26,351 [DEBUG][       Thread-260415][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 16:05:26,351 [DEBUG][       Thread-260415][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 16:05:26,351 [DEBUG][       Thread-260415][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 16:05:26,351 [DEBUG][       Thread-260415][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 16:05:26,375 [ INFO][       Thread-260415][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 16:05:26,376 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 16:05:26,376 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 16:05:27,402 [DEBUG][       Thread-260415][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 16:05:27,402 [DEBUG][       Thread-260415][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 16:05:27,452 [DEBUG][       Thread-260415][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 16:05:27,452 [DEBUG][       Thread-260415][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 16:05:27,461 [DEBUG][       Thread-260415][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 16:05:27,470 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 16:05:27,471 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 16:05:27,479 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 16:05:27,488 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 16:05:27,489 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 16:05:27,489 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 16:05:27,497 [DEBUG][       Thread-260415][   transport.py][1871] : EOF in transport thread
2025-06-13 16:05:29,653 [DEBUG][Thread-260417 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:05:30,723 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:05:30,725 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:05:33,617 [DEBUG][Thread-260418 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:05:37,500 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 16:05:37,500 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 16:05:37,500 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 16:05:37,503 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 16:05:37,965 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 16, 5, 11), 18.09, 28.44, 0.0, 19.2, 14.08, 0, 0, 0, 2, 0, 0),)
2025-06-13 16:05:37,965 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 16:05:11
2025-06-13 16:05:38,046 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 16:05:38,053 [DEBUG][       Thread-260419][   transport.py][1871] : starting thread (client mode): 0x863c8790
2025-06-13 16:05:38,053 [DEBUG][       Thread-260419][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 16:05:38,073 [DEBUG][       Thread-260419][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 16:05:38,073 [ INFO][       Thread-260419][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 16:05:38,077 [DEBUG][       Thread-260419][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 16:05:38,077 [DEBUG][       Thread-260419][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 16:05:38,077 [DEBUG][       Thread-260419][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 16:05:38,077 [DEBUG][       Thread-260419][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:05:38,077 [DEBUG][       Thread-260419][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:05:38,077 [DEBUG][       Thread-260419][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:05:38,077 [DEBUG][       Thread-260419][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:05:38,077 [DEBUG][       Thread-260419][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 16:05:38,077 [DEBUG][       Thread-260419][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 16:05:38,077 [DEBUG][       Thread-260419][   transport.py][1871] : client lang: <none>
2025-06-13 16:05:38,077 [DEBUG][       Thread-260419][   transport.py][1871] : server lang: <none>
2025-06-13 16:05:38,077 [DEBUG][       Thread-260419][   transport.py][1871] : kex follows: False
2025-06-13 16:05:38,077 [DEBUG][       Thread-260419][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 16:05:38,077 [DEBUG][       Thread-260419][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 16:05:38,077 [DEBUG][       Thread-260419][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 16:05:38,077 [DEBUG][       Thread-260419][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 16:05:38,077 [DEBUG][       Thread-260419][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 16:05:38,077 [DEBUG][       Thread-260419][   transport.py][1871] : Compression: none
2025-06-13 16:05:38,077 [DEBUG][       Thread-260419][   transport.py][1871] : === End of kex handshake ===
2025-06-13 16:05:38,094 [DEBUG][       Thread-260419][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 16:05:38,094 [DEBUG][       Thread-260419][   transport.py][1871] : Switch to new keys ...
2025-06-13 16:05:38,095 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 16:05:38,095 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 16:05:38,096 [DEBUG][       Thread-260419][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 16:05:38,096 [DEBUG][       Thread-260419][   transport.py][1871] : userauth is OK
2025-06-13 16:05:38,110 [ INFO][       Thread-260419][   transport.py][1871] : Authentication (password) successful!
2025-06-13 16:05:38,111 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 16:05:38,690 [DEBUG][       Thread-260419][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 16:05:38,691 [DEBUG][       Thread-260419][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 16:05:38,733 [DEBUG][       Thread-260419][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 16:05:38,733 [DEBUG][       Thread-260419][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 16:05:38,736 [DEBUG][       Thread-260419][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 16:05:38,750 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 16:05:38,750 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 16:05:38,751 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 16:05:38,753 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 16:05:38,757 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 16:05:38,759 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 16:05:38,759 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 16:05:38,760 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 16:05:38,760 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.586741 -999.00  +13.60  22.82     33   -2.20 1 1 1 1 1   887    0 15.54 -3.39 ----- 23.9 22.8 41.8 29.4 16.5 -32.1 15.7 -32.2 16.5 -31.3 17.6 -29.8
2025-06-13 16:05:38,760 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 16:05:38,760 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 16:05:38,760 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.586741
2025-06-13 16:05:38,761 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 16:05:38,761 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 16:05:38,761 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 16:05:38,761 [DEBUG][       Thread-260419][   transport.py][1871] : EOF in transport thread
2025-06-13 16:05:38,762 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 16:05:38,762 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 16:05:38,762 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T16:05:11', tmtdew=18.09, humidity=28.44, cloud=0.0, wind=19.2, temperature=14.08, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T14:04:54.422', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 16:05:38,845 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 16:05:38,857 [DEBUG][       Thread-260422][   transport.py][1871] : starting thread (client mode): 0x863a40a0
2025-06-13 16:05:38,857 [DEBUG][       Thread-260422][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 16:05:38,872 [DEBUG][       Thread-260422][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 16:05:38,872 [ INFO][       Thread-260422][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 16:05:38,879 [DEBUG][       Thread-260422][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 16:05:38,879 [DEBUG][       Thread-260422][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 16:05:38,879 [DEBUG][       Thread-260422][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 16:05:38,879 [DEBUG][       Thread-260422][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:05:38,879 [DEBUG][       Thread-260422][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:05:38,879 [DEBUG][       Thread-260422][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:05:38,879 [DEBUG][       Thread-260422][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:05:38,879 [DEBUG][       Thread-260422][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 16:05:38,879 [DEBUG][       Thread-260422][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 16:05:38,880 [DEBUG][       Thread-260422][   transport.py][1871] : client lang: <none>
2025-06-13 16:05:38,880 [DEBUG][       Thread-260422][   transport.py][1871] : server lang: <none>
2025-06-13 16:05:38,880 [DEBUG][       Thread-260422][   transport.py][1871] : kex follows: False
2025-06-13 16:05:38,880 [DEBUG][       Thread-260422][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 16:05:38,880 [DEBUG][       Thread-260422][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 16:05:38,880 [DEBUG][       Thread-260422][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 16:05:38,880 [DEBUG][       Thread-260422][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 16:05:38,880 [DEBUG][       Thread-260422][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 16:05:38,880 [DEBUG][       Thread-260422][   transport.py][1871] : Compression: none
2025-06-13 16:05:38,880 [DEBUG][       Thread-260422][   transport.py][1871] : === End of kex handshake ===
2025-06-13 16:05:38,936 [DEBUG][       Thread-260422][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 16:05:38,937 [DEBUG][       Thread-260422][   transport.py][1871] : Switch to new keys ...
2025-06-13 16:05:38,937 [DEBUG][       Thread-260422][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 16:05:38,938 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 16:05:38,938 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 16:05:38,993 [DEBUG][       Thread-260422][   transport.py][1871] : userauth is OK
2025-06-13 16:05:38,993 [DEBUG][       Thread-260422][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 16:05:38,993 [DEBUG][       Thread-260422][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 16:05:38,993 [DEBUG][       Thread-260422][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 16:05:38,993 [DEBUG][       Thread-260422][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 16:05:39,007 [ INFO][       Thread-260422][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 16:05:39,007 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 16:05:39,007 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 16:05:40,008 [DEBUG][       Thread-260422][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 16:05:40,008 [DEBUG][       Thread-260422][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 16:05:40,060 [DEBUG][       Thread-260422][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 16:05:40,060 [DEBUG][       Thread-260422][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 16:05:40,073 [DEBUG][       Thread-260422][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 16:05:40,084 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 16:05:40,084 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 16:05:40,093 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 16:05:40,102 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 16:05:40,102 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 16:05:40,102 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 16:05:40,110 [DEBUG][       Thread-260422][   transport.py][1871] : EOF in transport thread
2025-06-13 16:05:42,651 [DEBUG][Thread-260424 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:05:50,106 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 16:05:50,106 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 16:05:50,106 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 16:05:50,109 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 16:05:50,577 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 16, 5, 43), 18.04, 28.55, 0.0, 18.0, 14.13, 0, 0, 0, 2, 0, 0),)
2025-06-13 16:05:50,577 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 16:05:43
2025-06-13 16:05:50,659 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 16:05:50,664 [DEBUG][       Thread-260425][   transport.py][1871] : starting thread (client mode): 0x867fdfc0
2025-06-13 16:05:50,664 [DEBUG][       Thread-260425][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 16:05:50,684 [DEBUG][       Thread-260425][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 16:05:50,684 [ INFO][       Thread-260425][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 16:05:50,688 [DEBUG][       Thread-260425][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 16:05:50,688 [DEBUG][       Thread-260425][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 16:05:50,688 [DEBUG][       Thread-260425][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 16:05:50,688 [DEBUG][       Thread-260425][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:05:50,688 [DEBUG][       Thread-260425][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:05:50,688 [DEBUG][       Thread-260425][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:05:50,688 [DEBUG][       Thread-260425][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:05:50,688 [DEBUG][       Thread-260425][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 16:05:50,688 [DEBUG][       Thread-260425][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 16:05:50,688 [DEBUG][       Thread-260425][   transport.py][1871] : client lang: <none>
2025-06-13 16:05:50,688 [DEBUG][       Thread-260425][   transport.py][1871] : server lang: <none>
2025-06-13 16:05:50,688 [DEBUG][       Thread-260425][   transport.py][1871] : kex follows: False
2025-06-13 16:05:50,688 [DEBUG][       Thread-260425][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 16:05:50,688 [DEBUG][       Thread-260425][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 16:05:50,688 [DEBUG][       Thread-260425][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 16:05:50,688 [DEBUG][       Thread-260425][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 16:05:50,688 [DEBUG][       Thread-260425][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 16:05:50,688 [DEBUG][       Thread-260425][   transport.py][1871] : Compression: none
2025-06-13 16:05:50,688 [DEBUG][       Thread-260425][   transport.py][1871] : === End of kex handshake ===
2025-06-13 16:05:50,709 [DEBUG][       Thread-260425][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 16:05:50,709 [DEBUG][       Thread-260425][   transport.py][1871] : Switch to new keys ...
2025-06-13 16:05:50,710 [DEBUG][       Thread-260425][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 16:05:50,710 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 16:05:50,710 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 16:05:50,711 [DEBUG][       Thread-260425][   transport.py][1871] : userauth is OK
2025-06-13 16:05:50,736 [ INFO][       Thread-260425][   transport.py][1871] : Authentication (password) successful!
2025-06-13 16:05:50,737 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 16:05:51,360 [DEBUG][       Thread-260425][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 16:05:51,360 [DEBUG][       Thread-260425][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 16:05:51,401 [DEBUG][       Thread-260425][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 16:05:51,401 [DEBUG][       Thread-260425][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 16:05:51,403 [DEBUG][       Thread-260425][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 16:05:51,410 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 16:05:51,410 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 16:05:51,412 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 16:05:51,414 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 16:05:51,419 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 16:05:51,421 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 16:05:51,421 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 16:05:51,422 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 16:05:51,422 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.586741 -999.00  +13.60  22.82     33   -2.20 1 1 1 1 1   887    0 15.54 -3.39 ----- 23.9 22.8 41.8 29.4 16.5 -32.1 15.7 -32.2 16.5 -31.3 17.6 -29.8
2025-06-13 16:05:51,422 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 16:05:51,422 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 16:05:51,422 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.586741
2025-06-13 16:05:51,423 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 16:05:51,423 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 16:05:51,423 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 16:05:51,423 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 16:05:51,423 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 16:05:51,424 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T16:05:43', tmtdew=18.04, humidity=28.55, cloud=0.0, wind=18.0, temperature=14.13, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T14:04:54.422', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 16:05:51,424 [DEBUG][       Thread-260425][   transport.py][1871] : EOF in transport thread
2025-06-13 16:05:51,510 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 16:05:51,519 [DEBUG][       Thread-260428][   transport.py][1871] : starting thread (client mode): 0x863efac0
2025-06-13 16:05:51,519 [DEBUG][       Thread-260428][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 16:05:51,535 [DEBUG][       Thread-260428][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 16:05:51,535 [ INFO][       Thread-260428][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 16:05:51,542 [DEBUG][       Thread-260428][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 16:05:51,542 [DEBUG][       Thread-260428][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 16:05:51,542 [DEBUG][       Thread-260428][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 16:05:51,542 [DEBUG][       Thread-260428][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:05:51,542 [DEBUG][       Thread-260428][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:05:51,542 [DEBUG][       Thread-260428][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:05:51,542 [DEBUG][       Thread-260428][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:05:51,542 [DEBUG][       Thread-260428][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 16:05:51,542 [DEBUG][       Thread-260428][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 16:05:51,542 [DEBUG][       Thread-260428][   transport.py][1871] : client lang: <none>
2025-06-13 16:05:51,542 [DEBUG][       Thread-260428][   transport.py][1871] : server lang: <none>
2025-06-13 16:05:51,542 [DEBUG][       Thread-260428][   transport.py][1871] : kex follows: False
2025-06-13 16:05:51,542 [DEBUG][       Thread-260428][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 16:05:51,542 [DEBUG][       Thread-260428][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 16:05:51,542 [DEBUG][       Thread-260428][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 16:05:51,542 [DEBUG][       Thread-260428][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 16:05:51,542 [DEBUG][       Thread-260428][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 16:05:51,542 [DEBUG][       Thread-260428][   transport.py][1871] : Compression: none
2025-06-13 16:05:51,542 [DEBUG][       Thread-260428][   transport.py][1871] : === End of kex handshake ===
2025-06-13 16:05:51,601 [DEBUG][       Thread-260428][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 16:05:51,602 [DEBUG][       Thread-260428][   transport.py][1871] : Switch to new keys ...
2025-06-13 16:05:51,602 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 16:05:51,603 [DEBUG][       Thread-260428][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 16:05:51,604 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 16:05:51,658 [DEBUG][       Thread-260428][   transport.py][1871] : userauth is OK
2025-06-13 16:05:51,658 [DEBUG][       Thread-260428][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 16:05:51,658 [DEBUG][       Thread-260428][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 16:05:51,658 [DEBUG][       Thread-260428][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 16:05:51,658 [DEBUG][       Thread-260428][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 16:05:51,671 [DEBUG][Thread-260430 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:05:51,679 [ INFO][       Thread-260428][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 16:05:51,679 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 16:05:51,680 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 16:05:52,667 [DEBUG][       Thread-260428][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 16:05:52,667 [DEBUG][       Thread-260428][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 16:05:52,718 [DEBUG][       Thread-260428][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 16:05:52,718 [DEBUG][       Thread-260428][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 16:05:52,727 [DEBUG][       Thread-260428][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 16:05:52,736 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 16:05:52,737 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 16:05:52,746 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 16:05:52,755 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 16:05:52,755 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 16:05:52,756 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 16:05:52,763 [DEBUG][       Thread-260428][   transport.py][1871] : EOF in transport thread
2025-06-13 16:06:00,704 [DEBUG][Thread-260431 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:06:02,766 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 16:06:02,766 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 16:06:02,767 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 16:06:02,769 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 16:06:03,237 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 16, 5, 43), 18.04, 28.55, 0.0, 18.0, 14.13, 0, 0, 0, 2, 0, 0),)
2025-06-13 16:06:03,237 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 16:05:43
2025-06-13 16:06:03,319 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 16:06:03,325 [DEBUG][       Thread-260432][   transport.py][1871] : starting thread (client mode): 0x863c9810
2025-06-13 16:06:03,325 [DEBUG][       Thread-260432][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 16:06:03,346 [DEBUG][       Thread-260432][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 16:06:03,346 [ INFO][       Thread-260432][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 16:06:03,349 [DEBUG][       Thread-260432][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 16:06:03,349 [DEBUG][       Thread-260432][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 16:06:03,349 [DEBUG][       Thread-260432][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 16:06:03,349 [DEBUG][       Thread-260432][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:06:03,349 [DEBUG][       Thread-260432][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:06:03,349 [DEBUG][       Thread-260432][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:06:03,349 [DEBUG][       Thread-260432][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:06:03,349 [DEBUG][       Thread-260432][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 16:06:03,349 [DEBUG][       Thread-260432][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 16:06:03,349 [DEBUG][       Thread-260432][   transport.py][1871] : client lang: <none>
2025-06-13 16:06:03,349 [DEBUG][       Thread-260432][   transport.py][1871] : server lang: <none>
2025-06-13 16:06:03,349 [DEBUG][       Thread-260432][   transport.py][1871] : kex follows: False
2025-06-13 16:06:03,349 [DEBUG][       Thread-260432][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 16:06:03,350 [DEBUG][       Thread-260432][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 16:06:03,350 [DEBUG][       Thread-260432][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 16:06:03,350 [DEBUG][       Thread-260432][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 16:06:03,350 [DEBUG][       Thread-260432][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 16:06:03,350 [DEBUG][       Thread-260432][   transport.py][1871] : Compression: none
2025-06-13 16:06:03,350 [DEBUG][       Thread-260432][   transport.py][1871] : === End of kex handshake ===
2025-06-13 16:06:03,365 [DEBUG][       Thread-260432][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 16:06:03,366 [DEBUG][       Thread-260432][   transport.py][1871] : Switch to new keys ...
2025-06-13 16:06:03,366 [DEBUG][       Thread-260432][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 16:06:03,366 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 16:06:03,367 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 16:06:03,368 [DEBUG][       Thread-260432][   transport.py][1871] : userauth is OK
2025-06-13 16:06:03,380 [ INFO][       Thread-260432][   transport.py][1871] : Authentication (password) successful!
2025-06-13 16:06:03,381 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 16:06:04,053 [DEBUG][       Thread-260432][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 16:06:04,053 [DEBUG][       Thread-260432][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 16:06:04,097 [DEBUG][       Thread-260432][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 16:06:04,097 [DEBUG][       Thread-260432][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 16:06:04,100 [DEBUG][       Thread-260432][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 16:06:04,112 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 16:06:04,113 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 16:06:04,115 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 16:06:04,117 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 16:06:04,122 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 16:06:04,124 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 16:06:04,124 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 16:06:04,125 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 16:06:04,125 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.587435 -999.00  +13.50  21.07     34   -2.00 1 1 1 1 1   887    0 15.79 -1.78 ----- 22.8 21.1 38.2 25.8 16.6 -31.1 15.7 -31.7 16.5 -31.0 17.4 -29.4
2025-06-13 16:06:04,125 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 16:06:04,125 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 16:06:04,125 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.587435
2025-06-13 16:06:04,125 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 16:06:04,126 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 16:06:04,126 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 16:06:04,126 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 16:06:04,126 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 16:06:04,126 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T16:05:43', tmtdew=18.04, humidity=28.55, cloud=0.0, wind=18.0, temperature=14.13, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T14:05:54.384', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 16:06:04,127 [DEBUG][       Thread-260432][   transport.py][1871] : EOF in transport thread
2025-06-13 16:06:04,209 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 16:06:04,221 [DEBUG][       Thread-260435][   transport.py][1871] : starting thread (client mode): 0x863a6ec0
2025-06-13 16:06:04,221 [DEBUG][       Thread-260435][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 16:06:04,236 [DEBUG][       Thread-260435][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 16:06:04,236 [ INFO][       Thread-260435][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 16:06:04,243 [DEBUG][       Thread-260435][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 16:06:04,244 [DEBUG][       Thread-260435][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 16:06:04,244 [DEBUG][       Thread-260435][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 16:06:04,244 [DEBUG][       Thread-260435][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:06:04,244 [DEBUG][       Thread-260435][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:06:04,244 [DEBUG][       Thread-260435][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:06:04,244 [DEBUG][       Thread-260435][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:06:04,244 [DEBUG][       Thread-260435][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 16:06:04,244 [DEBUG][       Thread-260435][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 16:06:04,244 [DEBUG][       Thread-260435][   transport.py][1871] : client lang: <none>
2025-06-13 16:06:04,244 [DEBUG][       Thread-260435][   transport.py][1871] : server lang: <none>
2025-06-13 16:06:04,244 [DEBUG][       Thread-260435][   transport.py][1871] : kex follows: False
2025-06-13 16:06:04,244 [DEBUG][       Thread-260435][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 16:06:04,244 [DEBUG][       Thread-260435][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 16:06:04,244 [DEBUG][       Thread-260435][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 16:06:04,244 [DEBUG][       Thread-260435][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 16:06:04,245 [DEBUG][       Thread-260435][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 16:06:04,245 [DEBUG][       Thread-260435][   transport.py][1871] : Compression: none
2025-06-13 16:06:04,245 [DEBUG][       Thread-260435][   transport.py][1871] : === End of kex handshake ===
2025-06-13 16:06:04,307 [DEBUG][       Thread-260435][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 16:06:04,308 [DEBUG][       Thread-260435][   transport.py][1871] : Switch to new keys ...
2025-06-13 16:06:04,308 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 16:06:04,309 [DEBUG][       Thread-260435][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 16:06:04,310 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 16:06:04,369 [DEBUG][       Thread-260435][   transport.py][1871] : userauth is OK
2025-06-13 16:06:04,369 [DEBUG][       Thread-260435][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 16:06:04,369 [DEBUG][       Thread-260435][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 16:06:04,369 [DEBUG][       Thread-260435][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 16:06:04,369 [DEBUG][       Thread-260435][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 16:06:04,388 [ INFO][       Thread-260435][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 16:06:04,389 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 16:06:04,389 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 16:06:05,435 [DEBUG][       Thread-260435][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 16:06:05,436 [DEBUG][       Thread-260435][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 16:06:05,484 [DEBUG][       Thread-260435][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 16:06:05,484 [DEBUG][       Thread-260435][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 16:06:05,494 [DEBUG][       Thread-260435][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 16:06:05,512 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 16:06:05,512 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 16:06:05,531 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 16:06:05,545 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 16:06:05,545 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 16:06:05,546 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 16:06:05,554 [DEBUG][       Thread-260435][   transport.py][1871] : EOF in transport thread
2025-06-13 16:06:09,726 [DEBUG][Thread-260437 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:06:14,641 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:06:14,642 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:06:15,556 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 16:06:15,557 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 16:06:15,557 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 16:06:15,560 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 16:06:16,035 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 16, 5, 43), 18.04, 28.55, 0.0, 18.0, 14.13, 0, 0, 0, 2, 0, 0),)
2025-06-13 16:06:16,035 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 16:05:43
2025-06-13 16:06:16,121 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 16:06:16,127 [DEBUG][       Thread-260438][   transport.py][1871] : starting thread (client mode): 0x867ff550
2025-06-13 16:06:16,127 [DEBUG][       Thread-260438][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 16:06:16,147 [DEBUG][       Thread-260438][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 16:06:16,147 [ INFO][       Thread-260438][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 16:06:16,151 [DEBUG][       Thread-260438][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 16:06:16,151 [DEBUG][       Thread-260438][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 16:06:16,151 [DEBUG][       Thread-260438][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 16:06:16,151 [DEBUG][       Thread-260438][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:06:16,151 [DEBUG][       Thread-260438][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:06:16,151 [DEBUG][       Thread-260438][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:06:16,151 [DEBUG][       Thread-260438][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:06:16,151 [DEBUG][       Thread-260438][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 16:06:16,151 [DEBUG][       Thread-260438][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 16:06:16,151 [DEBUG][       Thread-260438][   transport.py][1871] : client lang: <none>
2025-06-13 16:06:16,151 [DEBUG][       Thread-260438][   transport.py][1871] : server lang: <none>
2025-06-13 16:06:16,151 [DEBUG][       Thread-260438][   transport.py][1871] : kex follows: False
2025-06-13 16:06:16,151 [DEBUG][       Thread-260438][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 16:06:16,151 [DEBUG][       Thread-260438][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 16:06:16,151 [DEBUG][       Thread-260438][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 16:06:16,151 [DEBUG][       Thread-260438][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 16:06:16,151 [DEBUG][       Thread-260438][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 16:06:16,151 [DEBUG][       Thread-260438][   transport.py][1871] : Compression: none
2025-06-13 16:06:16,151 [DEBUG][       Thread-260438][   transport.py][1871] : === End of kex handshake ===
2025-06-13 16:06:16,165 [DEBUG][       Thread-260438][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 16:06:16,165 [DEBUG][       Thread-260438][   transport.py][1871] : Switch to new keys ...
2025-06-13 16:06:16,165 [DEBUG][       Thread-260438][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 16:06:16,165 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 16:06:16,165 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 16:06:16,166 [DEBUG][       Thread-260438][   transport.py][1871] : userauth is OK
2025-06-13 16:06:16,178 [ INFO][       Thread-260438][   transport.py][1871] : Authentication (password) successful!
2025-06-13 16:06:16,178 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 16:06:16,809 [DEBUG][       Thread-260438][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 16:06:16,809 [DEBUG][       Thread-260438][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 16:06:16,853 [DEBUG][       Thread-260438][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 16:06:16,853 [DEBUG][       Thread-260438][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 16:06:16,855 [DEBUG][       Thread-260438][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 16:06:16,867 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 16:06:16,867 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 16:06:16,868 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 16:06:16,870 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 16:06:16,873 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 16:06:16,874 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 16:06:16,874 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 16:06:16,874 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 16:06:16,874 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.587435 -999.00  +13.50  21.07     34   -2.00 1 1 1 1 1   887    0 15.79 -1.78 ----- 22.8 21.1 38.2 25.8 16.6 -31.1 15.7 -31.7 16.5 -31.0 17.4 -29.4
2025-06-13 16:06:16,874 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 16:06:16,874 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 16:06:16,874 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.587435
2025-06-13 16:06:16,874 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 16:06:16,874 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 16:06:16,874 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 16:06:16,874 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 16:06:16,874 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 16:06:16,874 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T16:05:43', tmtdew=18.04, humidity=28.55, cloud=0.0, wind=18.0, temperature=14.13, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T14:05:54.384', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 16:06:16,875 [DEBUG][       Thread-260438][   transport.py][1871] : EOF in transport thread
2025-06-13 16:06:16,947 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 16:06:16,959 [DEBUG][       Thread-260441][   transport.py][1871] : starting thread (client mode): 0x863ef190
2025-06-13 16:06:16,959 [DEBUG][       Thread-260441][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 16:06:16,975 [DEBUG][       Thread-260441][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 16:06:16,975 [ INFO][       Thread-260441][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 16:06:16,984 [DEBUG][       Thread-260441][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 16:06:16,984 [DEBUG][       Thread-260441][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 16:06:16,984 [DEBUG][       Thread-260441][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 16:06:16,984 [DEBUG][       Thread-260441][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:06:16,984 [DEBUG][       Thread-260441][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:06:16,984 [DEBUG][       Thread-260441][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:06:16,984 [DEBUG][       Thread-260441][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:06:16,984 [DEBUG][       Thread-260441][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 16:06:16,984 [DEBUG][       Thread-260441][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 16:06:16,984 [DEBUG][       Thread-260441][   transport.py][1871] : client lang: <none>
2025-06-13 16:06:16,984 [DEBUG][       Thread-260441][   transport.py][1871] : server lang: <none>
2025-06-13 16:06:16,984 [DEBUG][       Thread-260441][   transport.py][1871] : kex follows: False
2025-06-13 16:06:16,984 [DEBUG][       Thread-260441][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 16:06:16,984 [DEBUG][       Thread-260441][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 16:06:16,985 [DEBUG][       Thread-260441][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 16:06:16,985 [DEBUG][       Thread-260441][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 16:06:16,985 [DEBUG][       Thread-260441][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 16:06:16,985 [DEBUG][       Thread-260441][   transport.py][1871] : Compression: none
2025-06-13 16:06:16,985 [DEBUG][       Thread-260441][   transport.py][1871] : === End of kex handshake ===
2025-06-13 16:06:17,041 [DEBUG][       Thread-260441][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 16:06:17,041 [DEBUG][       Thread-260441][   transport.py][1871] : Switch to new keys ...
2025-06-13 16:06:17,041 [DEBUG][       Thread-260441][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 16:06:17,041 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 16:06:17,041 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 16:06:17,101 [DEBUG][       Thread-260441][   transport.py][1871] : userauth is OK
2025-06-13 16:06:17,101 [DEBUG][       Thread-260441][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 16:06:17,101 [DEBUG][       Thread-260441][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 16:06:17,101 [DEBUG][       Thread-260441][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 16:06:17,101 [DEBUG][       Thread-260441][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 16:06:17,115 [ INFO][       Thread-260441][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 16:06:17,116 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 16:06:17,116 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 16:06:18,130 [DEBUG][       Thread-260441][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 16:06:18,130 [DEBUG][       Thread-260441][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 16:06:18,191 [DEBUG][       Thread-260441][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 16:06:18,191 [DEBUG][       Thread-260441][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 16:06:18,200 [DEBUG][       Thread-260441][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 16:06:18,208 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 16:06:18,208 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 16:06:18,217 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 16:06:18,225 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 16:06:18,226 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 16:06:18,226 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 16:06:18,234 [DEBUG][       Thread-260441][   transport.py][1871] : EOF in transport thread
2025-06-13 16:06:18,747 [DEBUG][Thread-260443 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:06:22,651 [DEBUG][Thread-260444 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:06:27,770 [DEBUG][Thread-260445 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:06:28,237 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 16:06:28,237 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 16:06:28,237 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 16:06:28,240 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 16:06:28,706 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 16, 6, 15), 18.08, 28.41, 0.0, 16.23, 14.03, 0, 0, 0, 2, 0, 0),)
2025-06-13 16:06:28,706 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 16:06:15
2025-06-13 16:06:28,788 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 16:06:28,792 [DEBUG][       Thread-260446][   transport.py][1871] : starting thread (client mode): 0x86351b70
2025-06-13 16:06:28,792 [DEBUG][       Thread-260446][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 16:06:28,813 [DEBUG][       Thread-260446][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 16:06:28,813 [ INFO][       Thread-260446][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 16:06:28,816 [DEBUG][       Thread-260446][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 16:06:28,816 [DEBUG][       Thread-260446][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 16:06:28,816 [DEBUG][       Thread-260446][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 16:06:28,816 [DEBUG][       Thread-260446][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:06:28,816 [DEBUG][       Thread-260446][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:06:28,816 [DEBUG][       Thread-260446][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:06:28,816 [DEBUG][       Thread-260446][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:06:28,816 [DEBUG][       Thread-260446][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 16:06:28,816 [DEBUG][       Thread-260446][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 16:06:28,816 [DEBUG][       Thread-260446][   transport.py][1871] : client lang: <none>
2025-06-13 16:06:28,816 [DEBUG][       Thread-260446][   transport.py][1871] : server lang: <none>
2025-06-13 16:06:28,816 [DEBUG][       Thread-260446][   transport.py][1871] : kex follows: False
2025-06-13 16:06:28,816 [DEBUG][       Thread-260446][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 16:06:28,816 [DEBUG][       Thread-260446][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 16:06:28,816 [DEBUG][       Thread-260446][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 16:06:28,816 [DEBUG][       Thread-260446][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 16:06:28,816 [DEBUG][       Thread-260446][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 16:06:28,816 [DEBUG][       Thread-260446][   transport.py][1871] : Compression: none
2025-06-13 16:06:28,816 [DEBUG][       Thread-260446][   transport.py][1871] : === End of kex handshake ===
2025-06-13 16:06:28,832 [DEBUG][       Thread-260446][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 16:06:28,832 [DEBUG][       Thread-260446][   transport.py][1871] : Switch to new keys ...
2025-06-13 16:06:28,832 [DEBUG][       Thread-260446][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 16:06:28,832 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 16:06:28,832 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 16:06:28,833 [DEBUG][       Thread-260446][   transport.py][1871] : userauth is OK
2025-06-13 16:06:28,846 [ INFO][       Thread-260446][   transport.py][1871] : Authentication (password) successful!
2025-06-13 16:06:28,846 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 16:06:29,496 [DEBUG][       Thread-260446][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 16:06:29,496 [DEBUG][       Thread-260446][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 16:06:29,541 [DEBUG][       Thread-260446][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 16:06:29,542 [DEBUG][       Thread-260446][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 16:06:29,545 [DEBUG][       Thread-260446][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 16:06:29,557 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 16:06:29,557 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 16:06:29,559 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 16:06:29,561 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 16:06:29,566 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 16:06:29,568 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 16:06:29,568 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 16:06:29,569 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 16:06:29,569 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.587435 -999.00  +13.50  21.07     34   -2.00 1 1 1 1 1   887    0 15.79 -1.78 ----- 22.8 21.1 38.2 25.8 16.6 -31.1 15.7 -31.7 16.5 -31.0 17.4 -29.4
2025-06-13 16:06:29,569 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 16:06:29,569 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 16:06:29,569 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.587435
2025-06-13 16:06:29,570 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 16:06:29,570 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 16:06:29,570 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 16:06:29,570 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 16:06:29,571 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 16:06:29,571 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T16:06:15', tmtdew=18.08, humidity=28.41, cloud=0.0, wind=16.23, temperature=14.03, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T14:05:54.384', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 16:06:29,571 [DEBUG][       Thread-260446][   transport.py][1871] : EOF in transport thread
2025-06-13 16:06:29,653 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 16:06:29,663 [DEBUG][       Thread-260449][   transport.py][1871] : starting thread (client mode): 0x86390ac0
2025-06-13 16:06:29,663 [DEBUG][       Thread-260449][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 16:06:29,679 [DEBUG][       Thread-260449][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 16:06:29,679 [ INFO][       Thread-260449][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 16:06:29,692 [DEBUG][       Thread-260449][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 16:06:29,693 [DEBUG][       Thread-260449][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 16:06:29,693 [DEBUG][       Thread-260449][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 16:06:29,693 [DEBUG][       Thread-260449][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:06:29,693 [DEBUG][       Thread-260449][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:06:29,693 [DEBUG][       Thread-260449][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:06:29,693 [DEBUG][       Thread-260449][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:06:29,693 [DEBUG][       Thread-260449][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 16:06:29,693 [DEBUG][       Thread-260449][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 16:06:29,693 [DEBUG][       Thread-260449][   transport.py][1871] : client lang: <none>
2025-06-13 16:06:29,693 [DEBUG][       Thread-260449][   transport.py][1871] : server lang: <none>
2025-06-13 16:06:29,693 [DEBUG][       Thread-260449][   transport.py][1871] : kex follows: False
2025-06-13 16:06:29,693 [DEBUG][       Thread-260449][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 16:06:29,693 [DEBUG][       Thread-260449][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 16:06:29,693 [DEBUG][       Thread-260449][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 16:06:29,693 [DEBUG][       Thread-260449][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 16:06:29,693 [DEBUG][       Thread-260449][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 16:06:29,694 [DEBUG][       Thread-260449][   transport.py][1871] : Compression: none
2025-06-13 16:06:29,694 [DEBUG][       Thread-260449][   transport.py][1871] : === End of kex handshake ===
2025-06-13 16:06:29,754 [DEBUG][       Thread-260449][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 16:06:29,755 [DEBUG][       Thread-260449][   transport.py][1871] : Switch to new keys ...
2025-06-13 16:06:29,755 [DEBUG][       Thread-260449][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 16:06:29,755 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 16:06:29,756 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 16:06:29,810 [DEBUG][       Thread-260449][   transport.py][1871] : userauth is OK
2025-06-13 16:06:29,810 [DEBUG][       Thread-260449][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 16:06:29,810 [DEBUG][       Thread-260449][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 16:06:29,810 [DEBUG][       Thread-260449][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 16:06:29,810 [DEBUG][       Thread-260449][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 16:06:29,830 [ INFO][       Thread-260449][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 16:06:29,831 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 16:06:29,831 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 16:06:30,783 [DEBUG][Thread-260451 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:06:30,886 [DEBUG][       Thread-260449][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 16:06:30,886 [DEBUG][       Thread-260449][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 16:06:30,936 [DEBUG][       Thread-260449][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 16:06:30,936 [DEBUG][       Thread-260449][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 16:06:30,945 [DEBUG][       Thread-260449][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 16:06:30,954 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 16:06:30,954 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 16:06:30,964 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 16:06:30,973 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 16:06:30,973 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 16:06:30,974 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 16:06:30,982 [DEBUG][       Thread-260449][   transport.py][1871] : EOF in transport thread
2025-06-13 16:06:31,867 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:06:31,868 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:06:36,788 [DEBUG][Thread-260452 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:06:40,984 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 16:06:40,984 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 16:06:40,985 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 16:06:40,987 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 16:06:41,456 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 16, 6, 15), 18.08, 28.41, 0.0, 16.23, 14.03, 0, 0, 0, 2, 0, 0),)
2025-06-13 16:06:41,456 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 16:06:15
2025-06-13 16:06:41,537 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 16:06:41,543 [DEBUG][       Thread-260453][   transport.py][1871] : starting thread (client mode): 0x86368fa0
2025-06-13 16:06:41,543 [DEBUG][       Thread-260453][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 16:06:41,560 [DEBUG][       Thread-260453][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 16:06:41,561 [ INFO][       Thread-260453][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 16:06:41,564 [DEBUG][       Thread-260453][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 16:06:41,564 [DEBUG][       Thread-260453][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 16:06:41,564 [DEBUG][       Thread-260453][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 16:06:41,564 [DEBUG][       Thread-260453][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:06:41,564 [DEBUG][       Thread-260453][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:06:41,564 [DEBUG][       Thread-260453][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:06:41,564 [DEBUG][       Thread-260453][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:06:41,564 [DEBUG][       Thread-260453][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 16:06:41,564 [DEBUG][       Thread-260453][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 16:06:41,564 [DEBUG][       Thread-260453][   transport.py][1871] : client lang: <none>
2025-06-13 16:06:41,564 [DEBUG][       Thread-260453][   transport.py][1871] : server lang: <none>
2025-06-13 16:06:41,564 [DEBUG][       Thread-260453][   transport.py][1871] : kex follows: False
2025-06-13 16:06:41,564 [DEBUG][       Thread-260453][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 16:06:41,564 [DEBUG][       Thread-260453][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 16:06:41,564 [DEBUG][       Thread-260453][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 16:06:41,564 [DEBUG][       Thread-260453][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 16:06:41,564 [DEBUG][       Thread-260453][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 16:06:41,564 [DEBUG][       Thread-260453][   transport.py][1871] : Compression: none
2025-06-13 16:06:41,565 [DEBUG][       Thread-260453][   transport.py][1871] : === End of kex handshake ===
2025-06-13 16:06:41,582 [DEBUG][       Thread-260453][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 16:06:41,582 [DEBUG][       Thread-260453][   transport.py][1871] : Switch to new keys ...
2025-06-13 16:06:41,583 [DEBUG][       Thread-260453][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 16:06:41,583 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 16:06:41,583 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 16:06:41,584 [DEBUG][       Thread-260453][   transport.py][1871] : userauth is OK
2025-06-13 16:06:41,597 [ INFO][       Thread-260453][   transport.py][1871] : Authentication (password) successful!
2025-06-13 16:06:41,598 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 16:06:42,211 [DEBUG][       Thread-260453][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 16:06:42,211 [DEBUG][       Thread-260453][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 16:06:42,253 [DEBUG][       Thread-260453][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 16:06:42,253 [DEBUG][       Thread-260453][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 16:06:42,256 [DEBUG][       Thread-260453][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 16:06:42,262 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 16:06:42,263 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 16:06:42,264 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 16:06:42,266 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 16:06:42,272 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 16:06:42,274 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 16:06:42,274 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 16:06:42,275 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 16:06:42,275 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.587782 -999.00  +13.50  18.48     34   -1.90 1 1 1 1 1   887    0 15.85 -1.88 ----- 16.4 18.5 50.2 25.2 16.5 -31.2 15.7 -31.7 16.5 -30.1 17.4 -29.3
2025-06-13 16:06:42,275 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 16:06:42,275 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 16:06:42,275 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.587782
2025-06-13 16:06:42,275 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 16:06:42,276 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 16:06:42,276 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 16:06:42,276 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 16:06:42,276 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 16:06:42,276 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T16:06:15', tmtdew=18.08, humidity=28.41, cloud=0.0, wind=16.23, temperature=14.03, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T14:06:24.365', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 16:06:42,277 [DEBUG][       Thread-260453][   transport.py][1871] : EOF in transport thread
2025-06-13 16:06:42,362 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 16:06:42,374 [DEBUG][       Thread-260456][   transport.py][1871] : starting thread (client mode): 0x863bdf90
2025-06-13 16:06:42,374 [DEBUG][       Thread-260456][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 16:06:42,389 [DEBUG][       Thread-260456][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 16:06:42,389 [ INFO][       Thread-260456][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 16:06:42,397 [DEBUG][       Thread-260456][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 16:06:42,397 [DEBUG][       Thread-260456][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 16:06:42,398 [DEBUG][       Thread-260456][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 16:06:42,398 [DEBUG][       Thread-260456][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:06:42,398 [DEBUG][       Thread-260456][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:06:42,398 [DEBUG][       Thread-260456][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:06:42,398 [DEBUG][       Thread-260456][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:06:42,398 [DEBUG][       Thread-260456][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 16:06:42,398 [DEBUG][       Thread-260456][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 16:06:42,398 [DEBUG][       Thread-260456][   transport.py][1871] : client lang: <none>
2025-06-13 16:06:42,398 [DEBUG][       Thread-260456][   transport.py][1871] : server lang: <none>
2025-06-13 16:06:42,398 [DEBUG][       Thread-260456][   transport.py][1871] : kex follows: False
2025-06-13 16:06:42,398 [DEBUG][       Thread-260456][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 16:06:42,398 [DEBUG][       Thread-260456][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 16:06:42,398 [DEBUG][       Thread-260456][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 16:06:42,398 [DEBUG][       Thread-260456][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 16:06:42,398 [DEBUG][       Thread-260456][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 16:06:42,398 [DEBUG][       Thread-260456][   transport.py][1871] : Compression: none
2025-06-13 16:06:42,398 [DEBUG][       Thread-260456][   transport.py][1871] : === End of kex handshake ===
2025-06-13 16:06:42,454 [DEBUG][       Thread-260456][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 16:06:42,454 [DEBUG][       Thread-260456][   transport.py][1871] : Switch to new keys ...
2025-06-13 16:06:42,455 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 16:06:42,455 [DEBUG][       Thread-260456][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 16:06:42,456 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 16:06:42,511 [DEBUG][       Thread-260456][   transport.py][1871] : userauth is OK
2025-06-13 16:06:42,511 [DEBUG][       Thread-260456][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 16:06:42,511 [DEBUG][       Thread-260456][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 16:06:42,511 [DEBUG][       Thread-260456][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 16:06:42,511 [DEBUG][       Thread-260456][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 16:06:42,531 [ INFO][       Thread-260456][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 16:06:42,532 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 16:06:42,532 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 16:06:43,534 [DEBUG][       Thread-260456][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 16:06:43,534 [DEBUG][       Thread-260456][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 16:06:43,584 [DEBUG][       Thread-260456][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 16:06:43,584 [DEBUG][       Thread-260456][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 16:06:43,593 [DEBUG][       Thread-260456][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 16:06:43,602 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 16:06:43,603 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 16:06:43,612 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 16:06:43,621 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 16:06:43,621 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 16:06:43,622 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 16:06:43,630 [DEBUG][       Thread-260456][   transport.py][1871] : EOF in transport thread
2025-06-13 16:06:45,826 [DEBUG][Thread-260458 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:06:53,632 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 16:06:53,633 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 16:06:53,633 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 16:06:53,635 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 16:06:54,093 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 16, 6, 47), 18.07, 28.41, 0.0, 19.6, 13.98, 0, 0, 0, 2, 0, 0),)
2025-06-13 16:06:54,093 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 16:06:47
2025-06-13 16:06:54,175 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 16:06:54,179 [DEBUG][       Thread-260459][   transport.py][1871] : starting thread (client mode): 0x8636b400
2025-06-13 16:06:54,180 [DEBUG][       Thread-260459][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 16:06:54,208 [DEBUG][       Thread-260459][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 16:06:54,208 [ INFO][       Thread-260459][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 16:06:54,211 [DEBUG][       Thread-260459][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 16:06:54,211 [DEBUG][       Thread-260459][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 16:06:54,211 [DEBUG][       Thread-260459][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 16:06:54,211 [DEBUG][       Thread-260459][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:06:54,211 [DEBUG][       Thread-260459][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:06:54,211 [DEBUG][       Thread-260459][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:06:54,211 [DEBUG][       Thread-260459][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:06:54,211 [DEBUG][       Thread-260459][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 16:06:54,212 [DEBUG][       Thread-260459][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 16:06:54,212 [DEBUG][       Thread-260459][   transport.py][1871] : client lang: <none>
2025-06-13 16:06:54,212 [DEBUG][       Thread-260459][   transport.py][1871] : server lang: <none>
2025-06-13 16:06:54,212 [DEBUG][       Thread-260459][   transport.py][1871] : kex follows: False
2025-06-13 16:06:54,212 [DEBUG][       Thread-260459][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 16:06:54,212 [DEBUG][       Thread-260459][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 16:06:54,212 [DEBUG][       Thread-260459][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 16:06:54,212 [DEBUG][       Thread-260459][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 16:06:54,212 [DEBUG][       Thread-260459][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 16:06:54,212 [DEBUG][       Thread-260459][   transport.py][1871] : Compression: none
2025-06-13 16:06:54,212 [DEBUG][       Thread-260459][   transport.py][1871] : === End of kex handshake ===
2025-06-13 16:06:54,222 [DEBUG][       Thread-260459][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 16:06:54,222 [DEBUG][       Thread-260459][   transport.py][1871] : Switch to new keys ...
2025-06-13 16:06:54,223 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 16:06:54,223 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 16:06:54,223 [DEBUG][       Thread-260459][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 16:06:54,224 [DEBUG][       Thread-260459][   transport.py][1871] : userauth is OK
2025-06-13 16:06:54,237 [ INFO][       Thread-260459][   transport.py][1871] : Authentication (password) successful!
2025-06-13 16:06:54,238 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 16:06:54,846 [DEBUG][       Thread-260459][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 16:06:54,846 [DEBUG][       Thread-260459][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 16:06:54,848 [DEBUG][Thread-260461 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:06:54,889 [DEBUG][       Thread-260459][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 16:06:54,889 [DEBUG][       Thread-260459][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 16:06:54,892 [DEBUG][       Thread-260459][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 16:06:54,904 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 16:06:54,905 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 16:06:54,906 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 16:06:54,908 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 16:06:54,913 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 16:06:54,915 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 16:06:54,916 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 16:06:54,916 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 16:06:54,917 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.587782 -999.00  +13.50  18.48     34   -1.90 1 1 1 1 1   887    0 15.85 -1.88 ----- 16.4 18.5 50.2 25.2 16.5 -31.2 15.7 -31.7 16.5 -30.1 17.4 -29.3
2025-06-13 16:06:54,917 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 16:06:54,917 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 16:06:54,917 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.587782
2025-06-13 16:06:54,917 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 16:06:54,918 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 16:06:54,918 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 16:06:54,918 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 16:06:54,918 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 16:06:54,918 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T16:06:47', tmtdew=18.07, humidity=28.41, cloud=0.0, wind=19.6, temperature=13.98, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T14:06:24.365', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 16:06:54,919 [DEBUG][       Thread-260459][   transport.py][1871] : EOF in transport thread
2025-06-13 16:06:55,001 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 16:06:55,011 [DEBUG][       Thread-260463][   transport.py][1871] : starting thread (client mode): 0x86392b90
2025-06-13 16:06:55,011 [DEBUG][       Thread-260463][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 16:06:55,026 [DEBUG][       Thread-260463][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 16:06:55,026 [ INFO][       Thread-260463][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 16:06:55,033 [DEBUG][       Thread-260463][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 16:06:55,033 [DEBUG][       Thread-260463][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 16:06:55,034 [DEBUG][       Thread-260463][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 16:06:55,034 [DEBUG][       Thread-260463][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:06:55,034 [DEBUG][       Thread-260463][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:06:55,034 [DEBUG][       Thread-260463][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:06:55,034 [DEBUG][       Thread-260463][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:06:55,034 [DEBUG][       Thread-260463][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 16:06:55,034 [DEBUG][       Thread-260463][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 16:06:55,034 [DEBUG][       Thread-260463][   transport.py][1871] : client lang: <none>
2025-06-13 16:06:55,034 [DEBUG][       Thread-260463][   transport.py][1871] : server lang: <none>
2025-06-13 16:06:55,034 [DEBUG][       Thread-260463][   transport.py][1871] : kex follows: False
2025-06-13 16:06:55,034 [DEBUG][       Thread-260463][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 16:06:55,034 [DEBUG][       Thread-260463][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 16:06:55,034 [DEBUG][       Thread-260463][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 16:06:55,034 [DEBUG][       Thread-260463][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 16:06:55,034 [DEBUG][       Thread-260463][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 16:06:55,034 [DEBUG][       Thread-260463][   transport.py][1871] : Compression: none
2025-06-13 16:06:55,034 [DEBUG][       Thread-260463][   transport.py][1871] : === End of kex handshake ===
2025-06-13 16:06:55,096 [DEBUG][       Thread-260463][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 16:06:55,097 [DEBUG][       Thread-260463][   transport.py][1871] : Switch to new keys ...
2025-06-13 16:06:55,097 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 16:06:55,098 [DEBUG][       Thread-260463][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 16:06:55,099 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 16:06:55,154 [DEBUG][       Thread-260463][   transport.py][1871] : userauth is OK
2025-06-13 16:06:55,154 [DEBUG][       Thread-260463][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 16:06:55,154 [DEBUG][       Thread-260463][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 16:06:55,154 [DEBUG][       Thread-260463][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 16:06:55,155 [DEBUG][       Thread-260463][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 16:06:55,173 [ INFO][       Thread-260463][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 16:06:55,174 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 16:06:55,174 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 16:06:56,164 [DEBUG][       Thread-260463][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 16:06:56,165 [DEBUG][       Thread-260463][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 16:06:56,216 [DEBUG][       Thread-260463][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 16:06:56,216 [DEBUG][       Thread-260463][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 16:06:56,226 [DEBUG][       Thread-260463][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 16:06:56,235 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 16:06:56,235 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 16:06:56,243 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 16:06:56,252 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 16:06:56,252 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 16:06:56,252 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 16:06:56,262 [DEBUG][       Thread-260463][   transport.py][1871] : EOF in transport thread
2025-06-13 16:07:03,872 [DEBUG][Thread-260465 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:07:06,260 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 16:07:06,260 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 16:07:06,260 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 16:07:06,261 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 16:07:06,713 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 16, 6, 47), 18.07, 28.41, 0.0, 19.6, 13.98, 0, 0, 0, 2, 0, 0),)
2025-06-13 16:07:06,713 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 16:06:47
2025-06-13 16:07:06,795 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 16:07:06,800 [DEBUG][       Thread-260466][   transport.py][1871] : starting thread (client mode): 0x86350550
2025-06-13 16:07:06,800 [DEBUG][       Thread-260466][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 16:07:06,820 [DEBUG][       Thread-260466][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 16:07:06,820 [ INFO][       Thread-260466][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 16:07:06,823 [DEBUG][       Thread-260466][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 16:07:06,823 [DEBUG][       Thread-260466][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 16:07:06,823 [DEBUG][       Thread-260466][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 16:07:06,823 [DEBUG][       Thread-260466][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:07:06,823 [DEBUG][       Thread-260466][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:07:06,823 [DEBUG][       Thread-260466][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:07:06,823 [DEBUG][       Thread-260466][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:07:06,823 [DEBUG][       Thread-260466][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 16:07:06,823 [DEBUG][       Thread-260466][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 16:07:06,824 [DEBUG][       Thread-260466][   transport.py][1871] : client lang: <none>
2025-06-13 16:07:06,824 [DEBUG][       Thread-260466][   transport.py][1871] : server lang: <none>
2025-06-13 16:07:06,824 [DEBUG][       Thread-260466][   transport.py][1871] : kex follows: False
2025-06-13 16:07:06,824 [DEBUG][       Thread-260466][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 16:07:06,824 [DEBUG][       Thread-260466][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 16:07:06,824 [DEBUG][       Thread-260466][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 16:07:06,824 [DEBUG][       Thread-260466][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 16:07:06,824 [DEBUG][       Thread-260466][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 16:07:06,824 [DEBUG][       Thread-260466][   transport.py][1871] : Compression: none
2025-06-13 16:07:06,824 [DEBUG][       Thread-260466][   transport.py][1871] : === End of kex handshake ===
2025-06-13 16:07:06,840 [DEBUG][       Thread-260466][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 16:07:06,841 [DEBUG][       Thread-260466][   transport.py][1871] : Switch to new keys ...
2025-06-13 16:07:06,841 [DEBUG][       Thread-260466][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 16:07:06,841 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 16:07:06,842 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 16:07:06,843 [DEBUG][       Thread-260466][   transport.py][1871] : userauth is OK
2025-06-13 16:07:06,855 [ INFO][       Thread-260466][   transport.py][1871] : Authentication (password) successful!
2025-06-13 16:07:06,856 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 16:07:07,470 [DEBUG][       Thread-260466][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 16:07:07,470 [DEBUG][       Thread-260466][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 16:07:07,513 [DEBUG][       Thread-260466][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 16:07:07,513 [DEBUG][       Thread-260466][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 16:07:07,517 [DEBUG][       Thread-260466][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 16:07:07,527 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 16:07:07,528 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 16:07:07,530 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 16:07:07,532 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 16:07:07,537 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 16:07:07,539 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 16:07:07,539 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 16:07:07,540 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 16:07:07,540 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.588130 -999.00  +13.70  21.95     34   -1.70 1 1 1 1 1   887    0 15.78 -2.79 ----- 20.3 21.9 43.0 24.5 16.6 -31.2 15.8 -31.5 16.6 -30.4 17.5 -29.3
2025-06-13 16:07:07,540 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 16:07:07,540 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 16:07:07,540 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.588130
2025-06-13 16:07:07,541 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 16:07:07,541 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 16:07:07,541 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 16:07:07,541 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 16:07:07,542 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 16:07:07,542 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T16:06:47', tmtdew=18.07, humidity=28.41, cloud=0.0, wind=19.6, temperature=13.98, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T14:06:54.432', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 16:07:07,543 [DEBUG][       Thread-260466][   transport.py][1871] : EOF in transport thread
2025-06-13 16:07:07,625 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 16:07:07,635 [DEBUG][       Thread-260469][   transport.py][1871] : starting thread (client mode): 0x867fcf10
2025-06-13 16:07:07,635 [DEBUG][       Thread-260469][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 16:07:07,649 [DEBUG][       Thread-260469][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 16:07:07,650 [ INFO][       Thread-260469][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 16:07:07,657 [DEBUG][       Thread-260469][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 16:07:07,657 [DEBUG][       Thread-260469][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 16:07:07,657 [DEBUG][       Thread-260469][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 16:07:07,657 [DEBUG][       Thread-260469][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:07:07,657 [DEBUG][       Thread-260469][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:07:07,657 [DEBUG][       Thread-260469][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:07:07,657 [DEBUG][       Thread-260469][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:07:07,658 [DEBUG][       Thread-260469][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 16:07:07,658 [DEBUG][       Thread-260469][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 16:07:07,658 [DEBUG][       Thread-260469][   transport.py][1871] : client lang: <none>
2025-06-13 16:07:07,658 [DEBUG][       Thread-260469][   transport.py][1871] : server lang: <none>
2025-06-13 16:07:07,658 [DEBUG][       Thread-260469][   transport.py][1871] : kex follows: False
2025-06-13 16:07:07,658 [DEBUG][       Thread-260469][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 16:07:07,658 [DEBUG][       Thread-260469][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 16:07:07,658 [DEBUG][       Thread-260469][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 16:07:07,658 [DEBUG][       Thread-260469][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 16:07:07,658 [DEBUG][       Thread-260469][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 16:07:07,658 [DEBUG][       Thread-260469][   transport.py][1871] : Compression: none
2025-06-13 16:07:07,658 [DEBUG][       Thread-260469][   transport.py][1871] : === End of kex handshake ===
2025-06-13 16:07:07,714 [DEBUG][       Thread-260469][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 16:07:07,714 [DEBUG][       Thread-260469][   transport.py][1871] : Switch to new keys ...
2025-06-13 16:07:07,715 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 16:07:07,715 [DEBUG][       Thread-260469][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 16:07:07,716 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 16:07:07,770 [DEBUG][       Thread-260469][   transport.py][1871] : userauth is OK
2025-06-13 16:07:07,770 [DEBUG][       Thread-260469][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 16:07:07,770 [DEBUG][       Thread-260469][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 16:07:07,770 [DEBUG][       Thread-260469][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 16:07:07,770 [DEBUG][       Thread-260469][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 16:07:07,793 [ INFO][       Thread-260469][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 16:07:07,794 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 16:07:07,794 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 16:07:08,831 [DEBUG][       Thread-260469][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 16:07:08,832 [DEBUG][       Thread-260469][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 16:07:08,880 [DEBUG][       Thread-260469][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 16:07:08,880 [DEBUG][       Thread-260469][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 16:07:08,889 [DEBUG][       Thread-260469][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 16:07:08,899 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 16:07:08,899 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 16:07:08,906 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 16:07:08,916 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 16:07:08,916 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 16:07:08,916 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 16:07:08,929 [DEBUG][       Thread-260469][   transport.py][1871] : EOF in transport thread
2025-06-13 16:07:12,904 [DEBUG][Thread-260471 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:07:14,779 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:07:14,780 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:07:18,924 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 16:07:18,924 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 16:07:18,924 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 16:07:18,927 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 16:07:19,391 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 16, 6, 47), 18.07, 28.41, 0.0, 19.6, 13.98, 0, 0, 0, 2, 0, 0),)
2025-06-13 16:07:19,391 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 16:06:47
2025-06-13 16:07:19,473 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 16:07:19,480 [DEBUG][       Thread-260472][   transport.py][1871] : starting thread (client mode): 0x867fe380
2025-06-13 16:07:19,480 [DEBUG][       Thread-260472][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 16:07:19,500 [DEBUG][       Thread-260472][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 16:07:19,500 [ INFO][       Thread-260472][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 16:07:19,504 [DEBUG][       Thread-260472][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 16:07:19,504 [DEBUG][       Thread-260472][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 16:07:19,504 [DEBUG][       Thread-260472][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 16:07:19,504 [DEBUG][       Thread-260472][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:07:19,504 [DEBUG][       Thread-260472][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:07:19,504 [DEBUG][       Thread-260472][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:07:19,504 [DEBUG][       Thread-260472][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:07:19,504 [DEBUG][       Thread-260472][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 16:07:19,504 [DEBUG][       Thread-260472][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 16:07:19,504 [DEBUG][       Thread-260472][   transport.py][1871] : client lang: <none>
2025-06-13 16:07:19,504 [DEBUG][       Thread-260472][   transport.py][1871] : server lang: <none>
2025-06-13 16:07:19,504 [DEBUG][       Thread-260472][   transport.py][1871] : kex follows: False
2025-06-13 16:07:19,504 [DEBUG][       Thread-260472][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 16:07:19,504 [DEBUG][       Thread-260472][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 16:07:19,505 [DEBUG][       Thread-260472][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 16:07:19,505 [DEBUG][       Thread-260472][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 16:07:19,505 [DEBUG][       Thread-260472][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 16:07:19,505 [DEBUG][       Thread-260472][   transport.py][1871] : Compression: none
2025-06-13 16:07:19,505 [DEBUG][       Thread-260472][   transport.py][1871] : === End of kex handshake ===
2025-06-13 16:07:19,522 [DEBUG][       Thread-260472][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 16:07:19,522 [DEBUG][       Thread-260472][   transport.py][1871] : Switch to new keys ...
2025-06-13 16:07:19,523 [DEBUG][       Thread-260472][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 16:07:19,523 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 16:07:19,523 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 16:07:19,524 [DEBUG][       Thread-260472][   transport.py][1871] : userauth is OK
2025-06-13 16:07:19,548 [ INFO][       Thread-260472][   transport.py][1871] : Authentication (password) successful!
2025-06-13 16:07:19,548 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 16:07:20,127 [DEBUG][       Thread-260472][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 16:07:20,127 [DEBUG][       Thread-260472][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 16:07:20,168 [DEBUG][       Thread-260472][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 16:07:20,168 [DEBUG][       Thread-260472][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 16:07:20,171 [DEBUG][       Thread-260472][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 16:07:20,184 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 16:07:20,184 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 16:07:20,186 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 16:07:20,187 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 16:07:20,190 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 16:07:20,191 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 16:07:20,191 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 16:07:20,191 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 16:07:20,191 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.588130 -999.00  +13.70  21.95     34   -1.70 1 1 1 1 1   887    0 15.78 -2.79 ----- 20.3 21.9 43.0 24.5 16.6 -31.2 15.8 -31.5 16.6 -30.4 17.5 -29.3
2025-06-13 16:07:20,191 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 16:07:20,191 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 16:07:20,191 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.588130
2025-06-13 16:07:20,191 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 16:07:20,191 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 16:07:20,191 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 16:07:20,191 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 16:07:20,191 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 16:07:20,191 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T16:06:47', tmtdew=18.07, humidity=28.41, cloud=0.0, wind=19.6, temperature=13.98, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T14:06:54.432', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 16:07:20,192 [DEBUG][       Thread-260472][   transport.py][1871] : EOF in transport thread
2025-06-13 16:07:20,267 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 16:07:20,279 [DEBUG][       Thread-260475][   transport.py][1871] : starting thread (client mode): 0x863ef5b0
2025-06-13 16:07:20,279 [DEBUG][       Thread-260475][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 16:07:20,294 [DEBUG][       Thread-260475][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 16:07:20,294 [ INFO][       Thread-260475][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 16:07:20,301 [DEBUG][       Thread-260475][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 16:07:20,301 [DEBUG][       Thread-260475][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 16:07:20,301 [DEBUG][       Thread-260475][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 16:07:20,301 [DEBUG][       Thread-260475][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:07:20,301 [DEBUG][       Thread-260475][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:07:20,301 [DEBUG][       Thread-260475][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:07:20,301 [DEBUG][       Thread-260475][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:07:20,301 [DEBUG][       Thread-260475][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 16:07:20,301 [DEBUG][       Thread-260475][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 16:07:20,301 [DEBUG][       Thread-260475][   transport.py][1871] : client lang: <none>
2025-06-13 16:07:20,301 [DEBUG][       Thread-260475][   transport.py][1871] : server lang: <none>
2025-06-13 16:07:20,301 [DEBUG][       Thread-260475][   transport.py][1871] : kex follows: False
2025-06-13 16:07:20,301 [DEBUG][       Thread-260475][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 16:07:20,301 [DEBUG][       Thread-260475][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 16:07:20,301 [DEBUG][       Thread-260475][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 16:07:20,301 [DEBUG][       Thread-260475][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 16:07:20,301 [DEBUG][       Thread-260475][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 16:07:20,301 [DEBUG][       Thread-260475][   transport.py][1871] : Compression: none
2025-06-13 16:07:20,301 [DEBUG][       Thread-260475][   transport.py][1871] : === End of kex handshake ===
2025-06-13 16:07:20,356 [DEBUG][       Thread-260475][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 16:07:20,356 [DEBUG][       Thread-260475][   transport.py][1871] : Switch to new keys ...
2025-06-13 16:07:20,356 [DEBUG][       Thread-260475][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 16:07:20,357 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 16:07:20,357 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 16:07:20,413 [DEBUG][       Thread-260475][   transport.py][1871] : userauth is OK
2025-06-13 16:07:20,413 [DEBUG][       Thread-260475][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 16:07:20,413 [DEBUG][       Thread-260475][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 16:07:20,413 [DEBUG][       Thread-260475][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 16:07:20,413 [DEBUG][       Thread-260475][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 16:07:20,428 [ INFO][       Thread-260475][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 16:07:20,428 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 16:07:20,428 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 16:07:21,412 [DEBUG][       Thread-260475][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 16:07:21,412 [DEBUG][       Thread-260475][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 16:07:21,468 [DEBUG][       Thread-260475][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 16:07:21,468 [DEBUG][       Thread-260475][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 16:07:21,481 [DEBUG][       Thread-260475][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 16:07:21,489 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 16:07:21,489 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 16:07:21,497 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 16:07:21,505 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 16:07:21,505 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 16:07:21,505 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 16:07:21,513 [DEBUG][       Thread-260475][   transport.py][1871] : EOF in transport thread
2025-06-13 16:07:21,921 [DEBUG][Thread-260477 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:07:22,702 [DEBUG][Thread-260478 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:07:30,945 [DEBUG][Thread-260479 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:07:31,508 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 16:07:31,508 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 16:07:31,509 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 16:07:31,511 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 16:07:31,948 [DEBUG][Thread-260480 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:07:31,968 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 16, 7, 19), 18.01, 28.38, 0.0, 18.99, 14.06, 0, 0, 0, 2, 0, 0),)
2025-06-13 16:07:31,968 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 16:07:19
2025-06-13 16:07:32,048 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 16:07:32,053 [DEBUG][       Thread-260481][   transport.py][1871] : starting thread (client mode): 0x867fe830
2025-06-13 16:07:32,053 [DEBUG][       Thread-260481][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 16:07:32,074 [DEBUG][       Thread-260481][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 16:07:32,074 [ INFO][       Thread-260481][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 16:07:32,077 [DEBUG][       Thread-260481][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 16:07:32,077 [DEBUG][       Thread-260481][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 16:07:32,078 [DEBUG][       Thread-260481][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 16:07:32,078 [DEBUG][       Thread-260481][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:07:32,078 [DEBUG][       Thread-260481][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:07:32,078 [DEBUG][       Thread-260481][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:07:32,078 [DEBUG][       Thread-260481][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:07:32,078 [DEBUG][       Thread-260481][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 16:07:32,078 [DEBUG][       Thread-260481][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 16:07:32,078 [DEBUG][       Thread-260481][   transport.py][1871] : client lang: <none>
2025-06-13 16:07:32,078 [DEBUG][       Thread-260481][   transport.py][1871] : server lang: <none>
2025-06-13 16:07:32,078 [DEBUG][       Thread-260481][   transport.py][1871] : kex follows: False
2025-06-13 16:07:32,078 [DEBUG][       Thread-260481][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 16:07:32,078 [DEBUG][       Thread-260481][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 16:07:32,078 [DEBUG][       Thread-260481][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 16:07:32,078 [DEBUG][       Thread-260481][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 16:07:32,078 [DEBUG][       Thread-260481][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 16:07:32,078 [DEBUG][       Thread-260481][   transport.py][1871] : Compression: none
2025-06-13 16:07:32,078 [DEBUG][       Thread-260481][   transport.py][1871] : === End of kex handshake ===
2025-06-13 16:07:32,096 [DEBUG][       Thread-260481][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 16:07:32,097 [DEBUG][       Thread-260481][   transport.py][1871] : Switch to new keys ...
2025-06-13 16:07:32,097 [DEBUG][       Thread-260481][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 16:07:32,097 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 16:07:32,098 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 16:07:32,099 [DEBUG][       Thread-260481][   transport.py][1871] : userauth is OK
2025-06-13 16:07:32,123 [ INFO][       Thread-260481][   transport.py][1871] : Authentication (password) successful!
2025-06-13 16:07:32,124 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 16:07:32,791 [DEBUG][       Thread-260481][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 16:07:32,791 [DEBUG][       Thread-260481][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 16:07:32,833 [DEBUG][       Thread-260481][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 16:07:32,833 [DEBUG][       Thread-260481][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 16:07:32,837 [DEBUG][       Thread-260481][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 16:07:32,848 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 16:07:32,849 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 16:07:32,851 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 16:07:32,853 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 16:07:32,859 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 16:07:32,861 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 16:07:32,861 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 16:07:32,862 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 16:07:32,862 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.588130 -999.00  +13.70  21.95     34   -1.70 1 1 1 1 1   887    0 15.78 -2.79 ----- 20.3 21.9 43.0 24.5 16.6 -31.2 15.8 -31.5 16.6 -30.4 17.5 -29.3
2025-06-13 16:07:32,862 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 16:07:32,862 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 16:07:32,862 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.588130
2025-06-13 16:07:32,863 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 16:07:32,863 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 16:07:32,863 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 16:07:32,863 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 16:07:32,863 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 16:07:32,864 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T16:07:19', tmtdew=18.01, humidity=28.38, cloud=0.0, wind=18.99, temperature=14.06, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T14:06:54.432', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 16:07:32,864 [DEBUG][       Thread-260481][   transport.py][1871] : EOF in transport thread
2025-06-13 16:07:32,948 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 16:07:32,958 [DEBUG][       Thread-260484][   transport.py][1871] : starting thread (client mode): 0x867fe860
2025-06-13 16:07:32,958 [DEBUG][       Thread-260484][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 16:07:32,973 [DEBUG][       Thread-260484][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 16:07:32,973 [ INFO][       Thread-260484][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 16:07:32,985 [DEBUG][       Thread-260484][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 16:07:32,985 [DEBUG][       Thread-260484][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 16:07:32,985 [DEBUG][       Thread-260484][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 16:07:32,985 [DEBUG][       Thread-260484][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:07:32,985 [DEBUG][       Thread-260484][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:07:32,985 [DEBUG][       Thread-260484][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:07:32,986 [DEBUG][       Thread-260484][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:07:32,986 [DEBUG][       Thread-260484][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 16:07:32,986 [DEBUG][       Thread-260484][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 16:07:32,986 [DEBUG][       Thread-260484][   transport.py][1871] : client lang: <none>
2025-06-13 16:07:32,986 [DEBUG][       Thread-260484][   transport.py][1871] : server lang: <none>
2025-06-13 16:07:32,986 [DEBUG][       Thread-260484][   transport.py][1871] : kex follows: False
2025-06-13 16:07:32,986 [DEBUG][       Thread-260484][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 16:07:32,986 [DEBUG][       Thread-260484][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 16:07:32,986 [DEBUG][       Thread-260484][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 16:07:32,986 [DEBUG][       Thread-260484][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 16:07:32,986 [DEBUG][       Thread-260484][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 16:07:32,986 [DEBUG][       Thread-260484][   transport.py][1871] : Compression: none
2025-06-13 16:07:32,986 [DEBUG][       Thread-260484][   transport.py][1871] : === End of kex handshake ===
2025-06-13 16:07:33,007 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:07:33,009 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:07:33,037 [DEBUG][       Thread-260484][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 16:07:33,038 [DEBUG][       Thread-260484][   transport.py][1871] : Switch to new keys ...
2025-06-13 16:07:33,038 [DEBUG][       Thread-260484][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 16:07:33,038 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 16:07:33,039 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 16:07:33,094 [DEBUG][       Thread-260484][   transport.py][1871] : userauth is OK
2025-06-13 16:07:33,094 [DEBUG][       Thread-260484][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 16:07:33,094 [DEBUG][       Thread-260484][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 16:07:33,094 [DEBUG][       Thread-260484][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 16:07:33,094 [DEBUG][       Thread-260484][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 16:07:33,112 [ INFO][       Thread-260484][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 16:07:33,112 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 16:07:33,113 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 16:07:34,105 [DEBUG][       Thread-260484][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 16:07:34,105 [DEBUG][       Thread-260484][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 16:07:34,155 [DEBUG][       Thread-260484][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 16:07:34,155 [DEBUG][       Thread-260484][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 16:07:34,164 [DEBUG][       Thread-260484][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 16:07:34,171 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 16:07:34,172 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 16:07:34,179 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 16:07:34,187 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 16:07:34,187 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 16:07:34,187 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 16:07:34,195 [DEBUG][       Thread-260484][   transport.py][1871] : EOF in transport thread
2025-06-13 16:07:39,968 [DEBUG][Thread-260486 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:07:44,198 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 16:07:44,198 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 16:07:44,198 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 16:07:44,201 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 16:07:44,664 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 16, 7, 19), 18.01, 28.38, 0.0, 18.99, 14.06, 0, 0, 0, 2, 0, 0),)
2025-06-13 16:07:44,664 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 16:07:19
2025-06-13 16:07:44,745 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 16:07:44,751 [DEBUG][       Thread-260487][   transport.py][1871] : starting thread (client mode): 0x867fc400
2025-06-13 16:07:44,751 [DEBUG][       Thread-260487][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 16:07:44,772 [DEBUG][       Thread-260487][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 16:07:44,773 [ INFO][       Thread-260487][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 16:07:44,776 [DEBUG][       Thread-260487][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 16:07:44,776 [DEBUG][       Thread-260487][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 16:07:44,776 [DEBUG][       Thread-260487][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 16:07:44,777 [DEBUG][       Thread-260487][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:07:44,777 [DEBUG][       Thread-260487][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:07:44,777 [DEBUG][       Thread-260487][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:07:44,777 [DEBUG][       Thread-260487][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:07:44,777 [DEBUG][       Thread-260487][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 16:07:44,777 [DEBUG][       Thread-260487][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 16:07:44,777 [DEBUG][       Thread-260487][   transport.py][1871] : client lang: <none>
2025-06-13 16:07:44,777 [DEBUG][       Thread-260487][   transport.py][1871] : server lang: <none>
2025-06-13 16:07:44,777 [DEBUG][       Thread-260487][   transport.py][1871] : kex follows: False
2025-06-13 16:07:44,777 [DEBUG][       Thread-260487][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 16:07:44,777 [DEBUG][       Thread-260487][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 16:07:44,777 [DEBUG][       Thread-260487][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 16:07:44,777 [DEBUG][       Thread-260487][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 16:07:44,777 [DEBUG][       Thread-260487][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 16:07:44,777 [DEBUG][       Thread-260487][   transport.py][1871] : Compression: none
2025-06-13 16:07:44,777 [DEBUG][       Thread-260487][   transport.py][1871] : === End of kex handshake ===
2025-06-13 16:07:44,795 [DEBUG][       Thread-260487][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 16:07:44,795 [DEBUG][       Thread-260487][   transport.py][1871] : Switch to new keys ...
2025-06-13 16:07:44,796 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 16:07:44,796 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 16:07:44,796 [DEBUG][       Thread-260487][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 16:07:44,797 [DEBUG][       Thread-260487][   transport.py][1871] : userauth is OK
2025-06-13 16:07:44,810 [ INFO][       Thread-260487][   transport.py][1871] : Authentication (password) successful!
2025-06-13 16:07:44,811 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 16:07:45,480 [DEBUG][       Thread-260487][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 16:07:45,480 [DEBUG][       Thread-260487][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 16:07:45,521 [DEBUG][       Thread-260487][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 16:07:45,521 [DEBUG][       Thread-260487][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 16:07:45,524 [DEBUG][       Thread-260487][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 16:07:45,537 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 16:07:45,537 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 16:07:45,539 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 16:07:45,541 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 16:07:45,547 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 16:07:45,549 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 16:07:45,549 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 16:07:45,549 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 16:07:45,550 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.588477 -999.00  +13.70  17.16     34   -1.40 1 1 1 1 1   887    0 15.57 -4.17 ----- 18.8 17.2 44.6 24.3 16.6 -31.1 15.8 -31.2 16.6 -30.2 17.5 -29.4
2025-06-13 16:07:45,550 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 16:07:45,550 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 16:07:45,550 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.588477
2025-06-13 16:07:45,550 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 16:07:45,551 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 16:07:45,551 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 16:07:45,551 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 16:07:45,551 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 16:07:45,551 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T16:07:19', tmtdew=18.01, humidity=28.38, cloud=0.0, wind=18.99, temperature=14.06, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T14:07:24.413', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 16:07:45,552 [DEBUG][       Thread-260487][   transport.py][1871] : EOF in transport thread
2025-06-13 16:07:45,637 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 16:07:45,649 [DEBUG][       Thread-260490][   transport.py][1871] : starting thread (client mode): 0x863efbe0
2025-06-13 16:07:45,649 [DEBUG][       Thread-260490][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 16:07:45,664 [DEBUG][       Thread-260490][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 16:07:45,664 [ INFO][       Thread-260490][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 16:07:45,672 [DEBUG][       Thread-260490][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 16:07:45,672 [DEBUG][       Thread-260490][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 16:07:45,672 [DEBUG][       Thread-260490][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 16:07:45,672 [DEBUG][       Thread-260490][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:07:45,672 [DEBUG][       Thread-260490][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:07:45,672 [DEBUG][       Thread-260490][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:07:45,672 [DEBUG][       Thread-260490][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:07:45,672 [DEBUG][       Thread-260490][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 16:07:45,673 [DEBUG][       Thread-260490][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 16:07:45,673 [DEBUG][       Thread-260490][   transport.py][1871] : client lang: <none>
2025-06-13 16:07:45,673 [DEBUG][       Thread-260490][   transport.py][1871] : server lang: <none>
2025-06-13 16:07:45,673 [DEBUG][       Thread-260490][   transport.py][1871] : kex follows: False
2025-06-13 16:07:45,673 [DEBUG][       Thread-260490][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 16:07:45,673 [DEBUG][       Thread-260490][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 16:07:45,673 [DEBUG][       Thread-260490][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 16:07:45,673 [DEBUG][       Thread-260490][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 16:07:45,673 [DEBUG][       Thread-260490][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 16:07:45,673 [DEBUG][       Thread-260490][   transport.py][1871] : Compression: none
2025-06-13 16:07:45,673 [DEBUG][       Thread-260490][   transport.py][1871] : === End of kex handshake ===
2025-06-13 16:07:45,730 [DEBUG][       Thread-260490][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 16:07:45,730 [DEBUG][       Thread-260490][   transport.py][1871] : Switch to new keys ...
2025-06-13 16:07:45,731 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 16:07:45,731 [DEBUG][       Thread-260490][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 16:07:45,732 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 16:07:45,786 [DEBUG][       Thread-260490][   transport.py][1871] : userauth is OK
2025-06-13 16:07:45,786 [DEBUG][       Thread-260490][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 16:07:45,786 [DEBUG][       Thread-260490][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 16:07:45,786 [DEBUG][       Thread-260490][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 16:07:45,786 [DEBUG][       Thread-260490][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 16:07:45,805 [ INFO][       Thread-260490][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 16:07:45,805 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 16:07:45,806 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 16:07:46,809 [DEBUG][       Thread-260490][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 16:07:46,809 [DEBUG][       Thread-260490][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 16:07:46,867 [DEBUG][       Thread-260490][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 16:07:46,867 [DEBUG][       Thread-260490][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 16:07:46,879 [DEBUG][       Thread-260490][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 16:07:46,888 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 16:07:46,888 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 16:07:46,896 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 16:07:46,905 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 16:07:46,905 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 16:07:46,906 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 16:07:46,914 [DEBUG][       Thread-260490][   transport.py][1871] : EOF in transport thread
2025-06-13 16:07:49,002 [DEBUG][Thread-260492 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:07:56,909 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 16:07:56,909 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 16:07:56,909 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 16:07:56,912 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 16:07:57,385 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 16, 7, 51), 18.06, 28.27, 0.0, 19.36, 13.98, 0, 0, 0, 2, 0, 0),)
2025-06-13 16:07:57,385 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 16:07:51
2025-06-13 16:07:57,467 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 16:07:57,471 [DEBUG][       Thread-260493][   transport.py][1871] : starting thread (client mode): 0x86352ad0
2025-06-13 16:07:57,471 [DEBUG][       Thread-260493][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 16:07:57,493 [DEBUG][       Thread-260493][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 16:07:57,493 [ INFO][       Thread-260493][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 16:07:57,496 [DEBUG][       Thread-260493][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 16:07:57,496 [DEBUG][       Thread-260493][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 16:07:57,496 [DEBUG][       Thread-260493][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 16:07:57,496 [DEBUG][       Thread-260493][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:07:57,496 [DEBUG][       Thread-260493][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:07:57,496 [DEBUG][       Thread-260493][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:07:57,496 [DEBUG][       Thread-260493][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:07:57,496 [DEBUG][       Thread-260493][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 16:07:57,496 [DEBUG][       Thread-260493][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 16:07:57,496 [DEBUG][       Thread-260493][   transport.py][1871] : client lang: <none>
2025-06-13 16:07:57,496 [DEBUG][       Thread-260493][   transport.py][1871] : server lang: <none>
2025-06-13 16:07:57,496 [DEBUG][       Thread-260493][   transport.py][1871] : kex follows: False
2025-06-13 16:07:57,496 [DEBUG][       Thread-260493][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 16:07:57,496 [DEBUG][       Thread-260493][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 16:07:57,496 [DEBUG][       Thread-260493][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 16:07:57,496 [DEBUG][       Thread-260493][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 16:07:57,496 [DEBUG][       Thread-260493][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 16:07:57,496 [DEBUG][       Thread-260493][   transport.py][1871] : Compression: none
2025-06-13 16:07:57,496 [DEBUG][       Thread-260493][   transport.py][1871] : === End of kex handshake ===
2025-06-13 16:07:57,514 [DEBUG][       Thread-260493][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 16:07:57,515 [DEBUG][       Thread-260493][   transport.py][1871] : Switch to new keys ...
2025-06-13 16:07:57,515 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 16:07:57,516 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 16:07:57,516 [DEBUG][       Thread-260493][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 16:07:57,517 [DEBUG][       Thread-260493][   transport.py][1871] : userauth is OK
2025-06-13 16:07:57,541 [ INFO][       Thread-260493][   transport.py][1871] : Authentication (password) successful!
2025-06-13 16:07:57,542 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 16:07:58,020 [DEBUG][Thread-260495 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:07:58,178 [DEBUG][       Thread-260493][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 16:07:58,178 [DEBUG][       Thread-260493][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 16:07:58,221 [DEBUG][       Thread-260493][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 16:07:58,221 [DEBUG][       Thread-260493][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 16:07:58,224 [DEBUG][       Thread-260493][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 16:07:58,237 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 16:07:58,237 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 16:07:58,239 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 16:07:58,241 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 16:07:58,246 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 16:07:58,248 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 16:07:58,248 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 16:07:58,249 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 16:07:58,249 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.588477 -999.00  +13.70  17.16     34   -1.40 1 1 1 1 1   887    0 15.57 -4.17 ----- 18.8 17.2 44.6 24.3 16.6 -31.1 15.8 -31.2 16.6 -30.2 17.5 -29.4
2025-06-13 16:07:58,249 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 16:07:58,249 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 16:07:58,249 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.588477
2025-06-13 16:07:58,250 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 16:07:58,250 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 16:07:58,250 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 16:07:58,250 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 16:07:58,251 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 16:07:58,251 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T16:07:51', tmtdew=18.06, humidity=28.27, cloud=0.0, wind=19.36, temperature=13.98, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T14:07:24.413', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 16:07:58,251 [DEBUG][       Thread-260493][   transport.py][1871] : EOF in transport thread
2025-06-13 16:07:58,335 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 16:07:58,344 [DEBUG][       Thread-260497][   transport.py][1871] : starting thread (client mode): 0x867b5990
2025-06-13 16:07:58,344 [DEBUG][       Thread-260497][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 16:07:58,359 [DEBUG][       Thread-260497][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 16:07:58,359 [ INFO][       Thread-260497][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 16:07:58,366 [DEBUG][       Thread-260497][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 16:07:58,367 [DEBUG][       Thread-260497][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 16:07:58,367 [DEBUG][       Thread-260497][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 16:07:58,367 [DEBUG][       Thread-260497][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:07:58,367 [DEBUG][       Thread-260497][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:07:58,367 [DEBUG][       Thread-260497][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:07:58,367 [DEBUG][       Thread-260497][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:07:58,367 [DEBUG][       Thread-260497][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 16:07:58,367 [DEBUG][       Thread-260497][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 16:07:58,367 [DEBUG][       Thread-260497][   transport.py][1871] : client lang: <none>
2025-06-13 16:07:58,367 [DEBUG][       Thread-260497][   transport.py][1871] : server lang: <none>
2025-06-13 16:07:58,367 [DEBUG][       Thread-260497][   transport.py][1871] : kex follows: False
2025-06-13 16:07:58,367 [DEBUG][       Thread-260497][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 16:07:58,367 [DEBUG][       Thread-260497][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 16:07:58,367 [DEBUG][       Thread-260497][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 16:07:58,367 [DEBUG][       Thread-260497][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 16:07:58,367 [DEBUG][       Thread-260497][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 16:07:58,367 [DEBUG][       Thread-260497][   transport.py][1871] : Compression: none
2025-06-13 16:07:58,367 [DEBUG][       Thread-260497][   transport.py][1871] : === End of kex handshake ===
2025-06-13 16:07:58,432 [DEBUG][       Thread-260497][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 16:07:58,432 [DEBUG][       Thread-260497][   transport.py][1871] : Switch to new keys ...
2025-06-13 16:07:58,433 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 16:07:58,434 [DEBUG][       Thread-260497][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 16:07:58,434 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 16:07:58,490 [DEBUG][       Thread-260497][   transport.py][1871] : userauth is OK
2025-06-13 16:07:58,490 [DEBUG][       Thread-260497][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 16:07:58,490 [DEBUG][       Thread-260497][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 16:07:58,490 [DEBUG][       Thread-260497][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 16:07:58,490 [DEBUG][       Thread-260497][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 16:07:58,508 [ INFO][       Thread-260497][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 16:07:58,509 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 16:07:58,509 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 16:07:59,477 [DEBUG][       Thread-260497][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 16:07:59,477 [DEBUG][       Thread-260497][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 16:07:59,528 [DEBUG][       Thread-260497][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 16:07:59,529 [DEBUG][       Thread-260497][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 16:07:59,538 [DEBUG][       Thread-260497][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 16:07:59,547 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 16:07:59,548 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 16:07:59,557 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 16:07:59,566 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 16:07:59,567 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 16:07:59,567 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 16:07:59,575 [DEBUG][       Thread-260497][   transport.py][1871] : EOF in transport thread
2025-06-13 16:08:07,042 [DEBUG][Thread-260499 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:08:09,578 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 16:08:09,578 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 16:08:09,578 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 16:08:09,580 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 16:08:10,050 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 16, 7, 51), 18.06, 28.27, 0.0, 19.36, 13.98, 0, 0, 0, 2, 0, 0),)
2025-06-13 16:08:10,050 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 16:07:51
2025-06-13 16:08:10,131 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 16:08:10,136 [DEBUG][       Thread-260500][   transport.py][1871] : starting thread (client mode): 0x86368d30
2025-06-13 16:08:10,136 [DEBUG][       Thread-260500][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 16:08:10,158 [DEBUG][       Thread-260500][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 16:08:10,158 [ INFO][       Thread-260500][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 16:08:10,161 [DEBUG][       Thread-260500][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 16:08:10,161 [DEBUG][       Thread-260500][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 16:08:10,161 [DEBUG][       Thread-260500][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 16:08:10,161 [DEBUG][       Thread-260500][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:08:10,161 [DEBUG][       Thread-260500][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:08:10,161 [DEBUG][       Thread-260500][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:08:10,161 [DEBUG][       Thread-260500][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:08:10,161 [DEBUG][       Thread-260500][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 16:08:10,161 [DEBUG][       Thread-260500][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 16:08:10,161 [DEBUG][       Thread-260500][   transport.py][1871] : client lang: <none>
2025-06-13 16:08:10,161 [DEBUG][       Thread-260500][   transport.py][1871] : server lang: <none>
2025-06-13 16:08:10,161 [DEBUG][       Thread-260500][   transport.py][1871] : kex follows: False
2025-06-13 16:08:10,162 [DEBUG][       Thread-260500][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 16:08:10,162 [DEBUG][       Thread-260500][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 16:08:10,162 [DEBUG][       Thread-260500][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 16:08:10,162 [DEBUG][       Thread-260500][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 16:08:10,162 [DEBUG][       Thread-260500][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 16:08:10,162 [DEBUG][       Thread-260500][   transport.py][1871] : Compression: none
2025-06-13 16:08:10,162 [DEBUG][       Thread-260500][   transport.py][1871] : === End of kex handshake ===
2025-06-13 16:08:10,178 [DEBUG][       Thread-260500][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 16:08:10,179 [DEBUG][       Thread-260500][   transport.py][1871] : Switch to new keys ...
2025-06-13 16:08:10,180 [DEBUG][       Thread-260500][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 16:08:10,180 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 16:08:10,180 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 16:08:10,182 [DEBUG][       Thread-260500][   transport.py][1871] : userauth is OK
2025-06-13 16:08:10,195 [ INFO][       Thread-260500][   transport.py][1871] : Authentication (password) successful!
2025-06-13 16:08:10,196 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 16:08:10,815 [DEBUG][       Thread-260500][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 16:08:10,816 [DEBUG][       Thread-260500][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 16:08:10,857 [DEBUG][       Thread-260500][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 16:08:10,857 [DEBUG][       Thread-260500][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 16:08:10,860 [DEBUG][       Thread-260500][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 16:08:10,874 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 16:08:10,874 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 16:08:10,876 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 16:08:10,877 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 16:08:10,882 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 16:08:10,884 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 16:08:10,884 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 16:08:10,885 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 16:08:10,885 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.588477 -999.00  +13.70  17.16     34   -1.40 1 1 1 1 1   887    0 15.57 -4.17 ----- 18.8 17.2 44.6 24.3 16.6 -31.1 15.8 -31.2 16.6 -30.2 17.5 -29.4
2025-06-13 16:08:10,885 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 16:08:10,885 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 16:08:10,885 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.588477
2025-06-13 16:08:10,886 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 16:08:10,886 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 16:08:10,886 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 16:08:10,886 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 16:08:10,887 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 16:08:10,887 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T16:07:51', tmtdew=18.06, humidity=28.27, cloud=0.0, wind=19.36, temperature=13.98, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T14:07:24.413', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 16:08:10,888 [DEBUG][       Thread-260500][   transport.py][1871] : EOF in transport thread
2025-06-13 16:08:10,970 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 16:08:10,983 [DEBUG][       Thread-260503][   transport.py][1871] : starting thread (client mode): 0x867b4970
2025-06-13 16:08:10,983 [DEBUG][       Thread-260503][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 16:08:10,998 [DEBUG][       Thread-260503][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 16:08:10,998 [ INFO][       Thread-260503][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 16:08:11,008 [DEBUG][       Thread-260503][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 16:08:11,008 [DEBUG][       Thread-260503][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 16:08:11,008 [DEBUG][       Thread-260503][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 16:08:11,008 [DEBUG][       Thread-260503][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:08:11,008 [DEBUG][       Thread-260503][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:08:11,009 [DEBUG][       Thread-260503][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:08:11,009 [DEBUG][       Thread-260503][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:08:11,009 [DEBUG][       Thread-260503][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 16:08:11,009 [DEBUG][       Thread-260503][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 16:08:11,009 [DEBUG][       Thread-260503][   transport.py][1871] : client lang: <none>
2025-06-13 16:08:11,009 [DEBUG][       Thread-260503][   transport.py][1871] : server lang: <none>
2025-06-13 16:08:11,009 [DEBUG][       Thread-260503][   transport.py][1871] : kex follows: False
2025-06-13 16:08:11,009 [DEBUG][       Thread-260503][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 16:08:11,009 [DEBUG][       Thread-260503][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 16:08:11,009 [DEBUG][       Thread-260503][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 16:08:11,009 [DEBUG][       Thread-260503][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 16:08:11,009 [DEBUG][       Thread-260503][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 16:08:11,009 [DEBUG][       Thread-260503][   transport.py][1871] : Compression: none
2025-06-13 16:08:11,009 [DEBUG][       Thread-260503][   transport.py][1871] : === End of kex handshake ===
2025-06-13 16:08:11,066 [DEBUG][       Thread-260503][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 16:08:11,067 [DEBUG][       Thread-260503][   transport.py][1871] : Switch to new keys ...
2025-06-13 16:08:11,067 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 16:08:11,068 [DEBUG][       Thread-260503][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 16:08:11,068 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 16:08:11,122 [DEBUG][       Thread-260503][   transport.py][1871] : userauth is OK
2025-06-13 16:08:11,122 [DEBUG][       Thread-260503][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 16:08:11,122 [DEBUG][       Thread-260503][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 16:08:11,122 [DEBUG][       Thread-260503][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 16:08:11,122 [DEBUG][       Thread-260503][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 16:08:11,141 [ INFO][       Thread-260503][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 16:08:11,142 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 16:08:11,142 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 16:08:12,120 [DEBUG][       Thread-260503][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 16:08:12,120 [DEBUG][       Thread-260503][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 16:08:12,168 [DEBUG][       Thread-260503][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 16:08:12,168 [DEBUG][       Thread-260503][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 16:08:12,180 [DEBUG][       Thread-260503][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 16:08:12,189 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 16:08:12,189 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 16:08:12,198 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 16:08:12,208 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 16:08:12,208 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 16:08:12,208 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 16:08:12,216 [DEBUG][       Thread-260503][   transport.py][1871] : EOF in transport thread
2025-06-13 16:08:14,918 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:08:14,919 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:08:16,081 [DEBUG][Thread-260505 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:08:22,219 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 16:08:22,219 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 16:08:22,219 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 16:08:22,222 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 16:08:22,689 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 16, 7, 51), 18.06, 28.27, 0.0, 19.36, 13.98, 0, 0, 0, 2, 0, 0),)
2025-06-13 16:08:22,689 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 16:07:51
2025-06-13 16:08:22,749 [DEBUG][Thread-260506 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:08:22,770 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 16:08:22,775 [DEBUG][       Thread-260507][   transport.py][1871] : starting thread (client mode): 0x8636bdc0
2025-06-13 16:08:22,775 [DEBUG][       Thread-260507][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 16:08:22,796 [DEBUG][       Thread-260507][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 16:08:22,796 [ INFO][       Thread-260507][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 16:08:22,798 [DEBUG][       Thread-260507][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 16:08:22,798 [DEBUG][       Thread-260507][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 16:08:22,798 [DEBUG][       Thread-260507][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 16:08:22,798 [DEBUG][       Thread-260507][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:08:22,798 [DEBUG][       Thread-260507][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:08:22,798 [DEBUG][       Thread-260507][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:08:22,798 [DEBUG][       Thread-260507][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:08:22,798 [DEBUG][       Thread-260507][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 16:08:22,798 [DEBUG][       Thread-260507][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 16:08:22,798 [DEBUG][       Thread-260507][   transport.py][1871] : client lang: <none>
2025-06-13 16:08:22,798 [DEBUG][       Thread-260507][   transport.py][1871] : server lang: <none>
2025-06-13 16:08:22,798 [DEBUG][       Thread-260507][   transport.py][1871] : kex follows: False
2025-06-13 16:08:22,798 [DEBUG][       Thread-260507][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 16:08:22,798 [DEBUG][       Thread-260507][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 16:08:22,798 [DEBUG][       Thread-260507][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 16:08:22,798 [DEBUG][       Thread-260507][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 16:08:22,798 [DEBUG][       Thread-260507][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 16:08:22,798 [DEBUG][       Thread-260507][   transport.py][1871] : Compression: none
2025-06-13 16:08:22,798 [DEBUG][       Thread-260507][   transport.py][1871] : === End of kex handshake ===
2025-06-13 16:08:22,806 [DEBUG][       Thread-260507][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 16:08:22,807 [DEBUG][       Thread-260507][   transport.py][1871] : Switch to new keys ...
2025-06-13 16:08:22,807 [DEBUG][       Thread-260507][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 16:08:22,807 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 16:08:22,808 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 16:08:22,809 [DEBUG][       Thread-260507][   transport.py][1871] : userauth is OK
2025-06-13 16:08:22,833 [ INFO][       Thread-260507][   transport.py][1871] : Authentication (password) successful!
2025-06-13 16:08:22,834 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 16:08:23,469 [DEBUG][       Thread-260507][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 16:08:23,470 [DEBUG][       Thread-260507][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 16:08:23,512 [DEBUG][       Thread-260507][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 16:08:23,512 [DEBUG][       Thread-260507][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 16:08:23,515 [DEBUG][       Thread-260507][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 16:08:23,526 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 16:08:23,526 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 16:08:23,527 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 16:08:23,528 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 16:08:23,531 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 16:08:23,532 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 16:08:23,532 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 16:08:23,532 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 16:08:23,532 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.588824 -999.00  +13.70  20.85     34   -1.70 1 1 1 1 1   887    0 15.73 -5.73 ----- 23.3 20.9 48.8 24.4 16.6 -31.9 15.8 -32.1 16.6 -31.2 17.5 -29.6
2025-06-13 16:08:23,532 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 16:08:23,532 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 16:08:23,532 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.588824
2025-06-13 16:08:23,532 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 16:08:23,532 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 16:08:23,532 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 16:08:23,532 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 16:08:23,532 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 16:08:23,532 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T16:07:51', tmtdew=18.06, humidity=28.27, cloud=0.0, wind=19.36, temperature=13.98, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T14:07:54.394', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 16:08:23,533 [DEBUG][       Thread-260507][   transport.py][1871] : EOF in transport thread
2025-06-13 16:08:23,607 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 16:08:23,616 [DEBUG][       Thread-260510][   transport.py][1871] : starting thread (client mode): 0x863a43a0
2025-06-13 16:08:23,616 [DEBUG][       Thread-260510][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 16:08:23,631 [DEBUG][       Thread-260510][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 16:08:23,631 [ INFO][       Thread-260510][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 16:08:23,638 [DEBUG][       Thread-260510][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 16:08:23,638 [DEBUG][       Thread-260510][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 16:08:23,638 [DEBUG][       Thread-260510][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 16:08:23,638 [DEBUG][       Thread-260510][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:08:23,638 [DEBUG][       Thread-260510][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:08:23,638 [DEBUG][       Thread-260510][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:08:23,638 [DEBUG][       Thread-260510][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:08:23,638 [DEBUG][       Thread-260510][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 16:08:23,638 [DEBUG][       Thread-260510][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 16:08:23,638 [DEBUG][       Thread-260510][   transport.py][1871] : client lang: <none>
2025-06-13 16:08:23,638 [DEBUG][       Thread-260510][   transport.py][1871] : server lang: <none>
2025-06-13 16:08:23,638 [DEBUG][       Thread-260510][   transport.py][1871] : kex follows: False
2025-06-13 16:08:23,638 [DEBUG][       Thread-260510][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 16:08:23,639 [DEBUG][       Thread-260510][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 16:08:23,639 [DEBUG][       Thread-260510][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 16:08:23,639 [DEBUG][       Thread-260510][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 16:08:23,639 [DEBUG][       Thread-260510][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 16:08:23,639 [DEBUG][       Thread-260510][   transport.py][1871] : Compression: none
2025-06-13 16:08:23,639 [DEBUG][       Thread-260510][   transport.py][1871] : === End of kex handshake ===
2025-06-13 16:08:23,696 [DEBUG][       Thread-260510][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 16:08:23,696 [DEBUG][       Thread-260510][   transport.py][1871] : Switch to new keys ...
2025-06-13 16:08:23,696 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 16:08:23,696 [DEBUG][       Thread-260510][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 16:08:23,696 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 16:08:23,755 [DEBUG][       Thread-260510][   transport.py][1871] : userauth is OK
2025-06-13 16:08:23,755 [DEBUG][       Thread-260510][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 16:08:23,755 [DEBUG][       Thread-260510][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 16:08:23,755 [DEBUG][       Thread-260510][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 16:08:23,755 [DEBUG][       Thread-260510][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 16:08:23,769 [ INFO][       Thread-260510][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 16:08:23,769 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 16:08:23,769 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 16:08:24,769 [DEBUG][       Thread-260510][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 16:08:24,769 [DEBUG][       Thread-260510][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 16:08:24,819 [DEBUG][       Thread-260510][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 16:08:24,819 [DEBUG][       Thread-260510][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 16:08:24,828 [DEBUG][       Thread-260510][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 16:08:24,836 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 16:08:24,836 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 16:08:24,844 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 16:08:24,851 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 16:08:24,852 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 16:08:24,852 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 16:08:24,859 [DEBUG][       Thread-260510][   transport.py][1871] : EOF in transport thread
2025-06-13 16:08:25,101 [DEBUG][Thread-260512 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:08:33,076 [DEBUG][Thread-260513 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:08:34,120 [DEBUG][Thread-260514 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:08:34,137 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:08:34,138 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:08:34,857 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 16:08:34,858 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 16:08:34,858 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 16:08:34,860 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 16:08:35,332 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 16, 8, 22), 18.06, 28.39, 0.0, 21.51, 14.03, 0, 0, 0, 2, 0, 0),)
2025-06-13 16:08:35,332 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 16:08:22
2025-06-13 16:08:35,421 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 16:08:35,425 [DEBUG][       Thread-260515][   transport.py][1871] : starting thread (client mode): 0x867fe4d0
2025-06-13 16:08:35,425 [DEBUG][       Thread-260515][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 16:08:35,446 [DEBUG][       Thread-260515][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 16:08:35,446 [ INFO][       Thread-260515][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 16:08:35,450 [DEBUG][       Thread-260515][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 16:08:35,450 [DEBUG][       Thread-260515][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 16:08:35,450 [DEBUG][       Thread-260515][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 16:08:35,450 [DEBUG][       Thread-260515][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:08:35,450 [DEBUG][       Thread-260515][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:08:35,450 [DEBUG][       Thread-260515][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:08:35,450 [DEBUG][       Thread-260515][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:08:35,450 [DEBUG][       Thread-260515][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 16:08:35,450 [DEBUG][       Thread-260515][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 16:08:35,450 [DEBUG][       Thread-260515][   transport.py][1871] : client lang: <none>
2025-06-13 16:08:35,451 [DEBUG][       Thread-260515][   transport.py][1871] : server lang: <none>
2025-06-13 16:08:35,451 [DEBUG][       Thread-260515][   transport.py][1871] : kex follows: False
2025-06-13 16:08:35,451 [DEBUG][       Thread-260515][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 16:08:35,451 [DEBUG][       Thread-260515][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 16:08:35,451 [DEBUG][       Thread-260515][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 16:08:35,451 [DEBUG][       Thread-260515][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 16:08:35,451 [DEBUG][       Thread-260515][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 16:08:35,451 [DEBUG][       Thread-260515][   transport.py][1871] : Compression: none
2025-06-13 16:08:35,451 [DEBUG][       Thread-260515][   transport.py][1871] : === End of kex handshake ===
2025-06-13 16:08:35,468 [DEBUG][       Thread-260515][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 16:08:35,469 [DEBUG][       Thread-260515][   transport.py][1871] : Switch to new keys ...
2025-06-13 16:08:35,469 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 16:08:35,470 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 16:08:35,470 [DEBUG][       Thread-260515][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 16:08:35,471 [DEBUG][       Thread-260515][   transport.py][1871] : userauth is OK
2025-06-13 16:08:35,496 [ INFO][       Thread-260515][   transport.py][1871] : Authentication (password) successful!
2025-06-13 16:08:35,497 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 16:08:36,134 [DEBUG][       Thread-260515][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 16:08:36,135 [DEBUG][       Thread-260515][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 16:08:36,177 [DEBUG][       Thread-260515][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 16:08:36,177 [DEBUG][       Thread-260515][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 16:08:36,181 [DEBUG][       Thread-260515][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 16:08:36,193 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 16:08:36,193 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 16:08:36,195 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 16:08:36,197 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 16:08:36,204 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 16:08:36,206 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 16:08:36,206 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 16:08:36,207 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 16:08:36,207 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.588824 -999.00  +13.70  20.85     34   -1.70 1 1 1 1 1   887    0 15.73 -5.73 ----- 23.3 20.9 48.8 24.4 16.6 -31.9 15.8 -32.1 16.6 -31.2 17.5 -29.6
2025-06-13 16:08:36,207 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 16:08:36,207 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 16:08:36,207 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.588824
2025-06-13 16:08:36,208 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 16:08:36,208 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 16:08:36,208 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 16:08:36,208 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 16:08:36,208 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 16:08:36,209 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T16:08:22', tmtdew=18.06, humidity=28.39, cloud=0.0, wind=21.51, temperature=14.03, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T14:07:54.394', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 16:08:36,210 [DEBUG][       Thread-260515][   transport.py][1871] : EOF in transport thread
2025-06-13 16:08:36,292 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 16:08:36,312 [DEBUG][       Thread-260518][   transport.py][1871] : starting thread (client mode): 0x867b5cf0
2025-06-13 16:08:36,312 [DEBUG][       Thread-260518][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 16:08:36,328 [DEBUG][       Thread-260518][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 16:08:36,329 [ INFO][       Thread-260518][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 16:08:36,336 [DEBUG][       Thread-260518][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 16:08:36,336 [DEBUG][       Thread-260518][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 16:08:36,336 [DEBUG][       Thread-260518][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 16:08:36,337 [DEBUG][       Thread-260518][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:08:36,337 [DEBUG][       Thread-260518][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:08:36,337 [DEBUG][       Thread-260518][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:08:36,337 [DEBUG][       Thread-260518][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:08:36,337 [DEBUG][       Thread-260518][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 16:08:36,337 [DEBUG][       Thread-260518][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 16:08:36,337 [DEBUG][       Thread-260518][   transport.py][1871] : client lang: <none>
2025-06-13 16:08:36,337 [DEBUG][       Thread-260518][   transport.py][1871] : server lang: <none>
2025-06-13 16:08:36,337 [DEBUG][       Thread-260518][   transport.py][1871] : kex follows: False
2025-06-13 16:08:36,337 [DEBUG][       Thread-260518][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 16:08:36,337 [DEBUG][       Thread-260518][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 16:08:36,337 [DEBUG][       Thread-260518][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 16:08:36,337 [DEBUG][       Thread-260518][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 16:08:36,337 [DEBUG][       Thread-260518][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 16:08:36,337 [DEBUG][       Thread-260518][   transport.py][1871] : Compression: none
2025-06-13 16:08:36,337 [DEBUG][       Thread-260518][   transport.py][1871] : === End of kex handshake ===
2025-06-13 16:08:36,395 [DEBUG][       Thread-260518][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 16:08:36,395 [DEBUG][       Thread-260518][   transport.py][1871] : Switch to new keys ...
2025-06-13 16:08:36,395 [DEBUG][       Thread-260518][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 16:08:36,395 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 16:08:36,395 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 16:08:36,453 [DEBUG][       Thread-260518][   transport.py][1871] : userauth is OK
2025-06-13 16:08:36,453 [DEBUG][       Thread-260518][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 16:08:36,453 [DEBUG][       Thread-260518][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 16:08:36,453 [DEBUG][       Thread-260518][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 16:08:36,453 [DEBUG][       Thread-260518][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 16:08:36,468 [ INFO][       Thread-260518][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 16:08:36,468 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 16:08:36,468 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 16:08:37,468 [DEBUG][       Thread-260518][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 16:08:37,468 [DEBUG][       Thread-260518][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 16:08:37,516 [DEBUG][       Thread-260518][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 16:08:37,516 [DEBUG][       Thread-260518][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 16:08:37,525 [DEBUG][       Thread-260518][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 16:08:37,535 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 16:08:37,535 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 16:08:37,544 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 16:08:37,554 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 16:08:37,554 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 16:08:37,554 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 16:08:37,562 [DEBUG][       Thread-260518][   transport.py][1871] : EOF in transport thread
2025-06-13 16:08:43,143 [DEBUG][Thread-260520 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:08:47,555 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 16:08:47,555 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 16:08:47,555 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 16:08:47,558 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 16:08:48,013 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 16, 8, 22), 18.06, 28.39, 0.0, 21.51, 14.03, 0, 0, 0, 2, 0, 0),)
2025-06-13 16:08:48,013 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 16:08:22
2025-06-13 16:08:48,095 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 16:08:48,099 [DEBUG][       Thread-260521][   transport.py][1871] : starting thread (client mode): 0x863c93c0
2025-06-13 16:08:48,099 [DEBUG][       Thread-260521][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 16:08:48,119 [DEBUG][       Thread-260521][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 16:08:48,119 [ INFO][       Thread-260521][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 16:08:48,122 [DEBUG][       Thread-260521][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 16:08:48,122 [DEBUG][       Thread-260521][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 16:08:48,122 [DEBUG][       Thread-260521][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 16:08:48,122 [DEBUG][       Thread-260521][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:08:48,122 [DEBUG][       Thread-260521][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:08:48,122 [DEBUG][       Thread-260521][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:08:48,122 [DEBUG][       Thread-260521][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:08:48,122 [DEBUG][       Thread-260521][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 16:08:48,122 [DEBUG][       Thread-260521][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 16:08:48,122 [DEBUG][       Thread-260521][   transport.py][1871] : client lang: <none>
2025-06-13 16:08:48,123 [DEBUG][       Thread-260521][   transport.py][1871] : server lang: <none>
2025-06-13 16:08:48,123 [DEBUG][       Thread-260521][   transport.py][1871] : kex follows: False
2025-06-13 16:08:48,123 [DEBUG][       Thread-260521][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 16:08:48,123 [DEBUG][       Thread-260521][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 16:08:48,123 [DEBUG][       Thread-260521][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 16:08:48,123 [DEBUG][       Thread-260521][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 16:08:48,123 [DEBUG][       Thread-260521][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 16:08:48,123 [DEBUG][       Thread-260521][   transport.py][1871] : Compression: none
2025-06-13 16:08:48,123 [DEBUG][       Thread-260521][   transport.py][1871] : === End of kex handshake ===
2025-06-13 16:08:48,139 [DEBUG][       Thread-260521][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 16:08:48,139 [DEBUG][       Thread-260521][   transport.py][1871] : Switch to new keys ...
2025-06-13 16:08:48,140 [DEBUG][       Thread-260521][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 16:08:48,140 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 16:08:48,140 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 16:08:48,141 [DEBUG][       Thread-260521][   transport.py][1871] : userauth is OK
2025-06-13 16:08:48,166 [ INFO][       Thread-260521][   transport.py][1871] : Authentication (password) successful!
2025-06-13 16:08:48,167 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 16:08:48,789 [DEBUG][       Thread-260521][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 16:08:48,789 [DEBUG][       Thread-260521][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 16:08:48,833 [DEBUG][       Thread-260521][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 16:08:48,833 [DEBUG][       Thread-260521][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 16:08:48,835 [DEBUG][       Thread-260521][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 16:08:48,847 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 16:08:48,847 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 16:08:48,848 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 16:08:48,849 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 16:08:48,852 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 16:08:48,853 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 16:08:48,853 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 16:08:48,853 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 16:08:48,853 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.589171 -999.00  +13.70  22.08     33   -1.90 1 1 1 1 1   887    0 15.62 -7.36 ----- 26.2 22.1 50.6 27.2 16.5 -31.4 15.8 -31.9 16.5 -31.4 17.4 -29.7
2025-06-13 16:08:48,853 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 16:08:48,853 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 16:08:48,853 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.589171
2025-06-13 16:08:48,853 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 16:08:48,853 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 16:08:48,853 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 16:08:48,853 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 16:08:48,853 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 16:08:48,853 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T16:08:22', tmtdew=18.06, humidity=28.39, cloud=0.0, wind=21.51, temperature=14.03, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T14:08:24.374', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 16:08:48,854 [DEBUG][       Thread-260521][   transport.py][1871] : EOF in transport thread
2025-06-13 16:08:48,925 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 16:08:48,934 [DEBUG][       Thread-260524][   transport.py][1871] : starting thread (client mode): 0x868c85e0
2025-06-13 16:08:48,934 [DEBUG][       Thread-260524][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 16:08:48,949 [DEBUG][       Thread-260524][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 16:08:48,949 [ INFO][       Thread-260524][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 16:08:48,958 [DEBUG][       Thread-260524][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 16:08:48,958 [DEBUG][       Thread-260524][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 16:08:48,958 [DEBUG][       Thread-260524][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 16:08:48,958 [DEBUG][       Thread-260524][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:08:48,958 [DEBUG][       Thread-260524][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:08:48,958 [DEBUG][       Thread-260524][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:08:48,958 [DEBUG][       Thread-260524][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:08:48,958 [DEBUG][       Thread-260524][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 16:08:48,958 [DEBUG][       Thread-260524][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 16:08:48,958 [DEBUG][       Thread-260524][   transport.py][1871] : client lang: <none>
2025-06-13 16:08:48,958 [DEBUG][       Thread-260524][   transport.py][1871] : server lang: <none>
2025-06-13 16:08:48,958 [DEBUG][       Thread-260524][   transport.py][1871] : kex follows: False
2025-06-13 16:08:48,958 [DEBUG][       Thread-260524][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 16:08:48,958 [DEBUG][       Thread-260524][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 16:08:48,958 [DEBUG][       Thread-260524][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 16:08:48,958 [DEBUG][       Thread-260524][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 16:08:48,958 [DEBUG][       Thread-260524][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 16:08:48,958 [DEBUG][       Thread-260524][   transport.py][1871] : Compression: none
2025-06-13 16:08:48,958 [DEBUG][       Thread-260524][   transport.py][1871] : === End of kex handshake ===
2025-06-13 16:08:49,029 [DEBUG][       Thread-260524][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 16:08:49,029 [DEBUG][       Thread-260524][   transport.py][1871] : Switch to new keys ...
2025-06-13 16:08:49,030 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 16:08:49,031 [DEBUG][       Thread-260524][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 16:08:49,031 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 16:08:49,086 [DEBUG][       Thread-260524][   transport.py][1871] : userauth is OK
2025-06-13 16:08:49,086 [DEBUG][       Thread-260524][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 16:08:49,086 [DEBUG][       Thread-260524][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 16:08:49,086 [DEBUG][       Thread-260524][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 16:08:49,086 [DEBUG][       Thread-260524][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 16:08:49,105 [ INFO][       Thread-260524][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 16:08:49,106 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 16:08:49,106 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 16:08:50,135 [DEBUG][       Thread-260524][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 16:08:50,135 [DEBUG][       Thread-260524][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 16:08:50,188 [DEBUG][       Thread-260524][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 16:08:50,189 [DEBUG][       Thread-260524][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 16:08:50,198 [DEBUG][       Thread-260524][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 16:08:50,207 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 16:08:50,207 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 16:08:50,216 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 16:08:50,225 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 16:08:50,226 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 16:08:50,226 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 16:08:50,234 [DEBUG][       Thread-260524][   transport.py][1871] : EOF in transport thread
2025-06-13 16:08:52,178 [DEBUG][Thread-260526 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:09:00,236 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 16:09:00,237 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 16:09:00,237 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 16:09:00,240 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 16:09:00,706 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 16, 8, 54), 18.02, 28.48, 0.0, 17.08, 14.02, 0, 0, 0, 2, 0, 0),)
2025-06-13 16:09:00,706 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 16:08:54
2025-06-13 16:09:00,788 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 16:09:00,792 [DEBUG][       Thread-260527][   transport.py][1871] : starting thread (client mode): 0x86393310
2025-06-13 16:09:00,792 [DEBUG][       Thread-260527][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 16:09:00,813 [DEBUG][       Thread-260527][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 16:09:00,813 [ INFO][       Thread-260527][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 16:09:00,817 [DEBUG][       Thread-260527][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 16:09:00,817 [DEBUG][       Thread-260527][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 16:09:00,817 [DEBUG][       Thread-260527][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 16:09:00,817 [DEBUG][       Thread-260527][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:09:00,817 [DEBUG][       Thread-260527][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:09:00,817 [DEBUG][       Thread-260527][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:09:00,817 [DEBUG][       Thread-260527][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:09:00,817 [DEBUG][       Thread-260527][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 16:09:00,817 [DEBUG][       Thread-260527][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 16:09:00,817 [DEBUG][       Thread-260527][   transport.py][1871] : client lang: <none>
2025-06-13 16:09:00,817 [DEBUG][       Thread-260527][   transport.py][1871] : server lang: <none>
2025-06-13 16:09:00,817 [DEBUG][       Thread-260527][   transport.py][1871] : kex follows: False
2025-06-13 16:09:00,818 [DEBUG][       Thread-260527][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 16:09:00,818 [DEBUG][       Thread-260527][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 16:09:00,818 [DEBUG][       Thread-260527][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 16:09:00,818 [DEBUG][       Thread-260527][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 16:09:00,818 [DEBUG][       Thread-260527][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 16:09:00,818 [DEBUG][       Thread-260527][   transport.py][1871] : Compression: none
2025-06-13 16:09:00,818 [DEBUG][       Thread-260527][   transport.py][1871] : === End of kex handshake ===
2025-06-13 16:09:00,834 [DEBUG][       Thread-260527][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 16:09:00,834 [DEBUG][       Thread-260527][   transport.py][1871] : Switch to new keys ...
2025-06-13 16:09:00,835 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 16:09:00,835 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 16:09:00,836 [DEBUG][       Thread-260527][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 16:09:00,836 [DEBUG][       Thread-260527][   transport.py][1871] : userauth is OK
2025-06-13 16:09:00,861 [ INFO][       Thread-260527][   transport.py][1871] : Authentication (password) successful!
2025-06-13 16:09:00,861 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 16:09:01,201 [DEBUG][Thread-260529 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:09:01,495 [DEBUG][       Thread-260527][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 16:09:01,495 [DEBUG][       Thread-260527][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 16:09:01,537 [DEBUG][       Thread-260527][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 16:09:01,537 [DEBUG][       Thread-260527][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 16:09:01,541 [DEBUG][       Thread-260527][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 16:09:01,552 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 16:09:01,553 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 16:09:01,555 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 16:09:01,557 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 16:09:01,563 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 16:09:01,565 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 16:09:01,565 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 16:09:01,566 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 16:09:01,566 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.589171 -999.00  +13.70  22.08     33   -1.90 1 1 1 1 1   887    0 15.62 -7.36 ----- 26.2 22.1 50.6 27.2 16.5 -31.4 15.8 -31.9 16.5 -31.4 17.4 -29.7
2025-06-13 16:09:01,566 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 16:09:01,566 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 16:09:01,566 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.589171
2025-06-13 16:09:01,567 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 16:09:01,567 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 16:09:01,567 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 16:09:01,568 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 16:09:01,568 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 16:09:01,568 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T16:08:54', tmtdew=18.02, humidity=28.48, cloud=0.0, wind=17.08, temperature=14.02, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T14:08:24.374', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 16:09:01,568 [DEBUG][       Thread-260527][   transport.py][1871] : EOF in transport thread
2025-06-13 16:09:01,651 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 16:09:01,663 [DEBUG][       Thread-260531][   transport.py][1871] : starting thread (client mode): 0x863c99f0
2025-06-13 16:09:01,663 [DEBUG][       Thread-260531][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 16:09:01,678 [DEBUG][       Thread-260531][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 16:09:01,678 [ INFO][       Thread-260531][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 16:09:01,686 [DEBUG][       Thread-260531][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 16:09:01,686 [DEBUG][       Thread-260531][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 16:09:01,686 [DEBUG][       Thread-260531][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 16:09:01,686 [DEBUG][       Thread-260531][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:09:01,686 [DEBUG][       Thread-260531][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:09:01,686 [DEBUG][       Thread-260531][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:09:01,686 [DEBUG][       Thread-260531][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:09:01,686 [DEBUG][       Thread-260531][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 16:09:01,686 [DEBUG][       Thread-260531][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 16:09:01,686 [DEBUG][       Thread-260531][   transport.py][1871] : client lang: <none>
2025-06-13 16:09:01,686 [DEBUG][       Thread-260531][   transport.py][1871] : server lang: <none>
2025-06-13 16:09:01,686 [DEBUG][       Thread-260531][   transport.py][1871] : kex follows: False
2025-06-13 16:09:01,687 [DEBUG][       Thread-260531][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 16:09:01,687 [DEBUG][       Thread-260531][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 16:09:01,687 [DEBUG][       Thread-260531][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 16:09:01,687 [DEBUG][       Thread-260531][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 16:09:01,687 [DEBUG][       Thread-260531][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 16:09:01,687 [DEBUG][       Thread-260531][   transport.py][1871] : Compression: none
2025-06-13 16:09:01,687 [DEBUG][       Thread-260531][   transport.py][1871] : === End of kex handshake ===
2025-06-13 16:09:01,744 [DEBUG][       Thread-260531][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 16:09:01,744 [DEBUG][       Thread-260531][   transport.py][1871] : Switch to new keys ...
2025-06-13 16:09:01,744 [DEBUG][       Thread-260531][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 16:09:01,744 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 16:09:01,744 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 16:09:01,807 [DEBUG][       Thread-260531][   transport.py][1871] : userauth is OK
2025-06-13 16:09:01,807 [DEBUG][       Thread-260531][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 16:09:01,807 [DEBUG][       Thread-260531][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 16:09:01,807 [DEBUG][       Thread-260531][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 16:09:01,808 [DEBUG][       Thread-260531][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 16:09:01,826 [ INFO][       Thread-260531][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 16:09:01,826 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 16:09:01,827 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 16:09:02,882 [DEBUG][       Thread-260531][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 16:09:02,882 [DEBUG][       Thread-260531][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 16:09:02,932 [DEBUG][       Thread-260531][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 16:09:02,932 [DEBUG][       Thread-260531][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 16:09:02,941 [DEBUG][       Thread-260531][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 16:09:02,950 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 16:09:02,951 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 16:09:02,959 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 16:09:02,969 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 16:09:02,969 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 16:09:02,970 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 16:09:02,977 [DEBUG][       Thread-260531][   transport.py][1871] : EOF in transport thread
2025-06-13 16:09:10,222 [DEBUG][Thread-260533 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:09:12,980 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 16:09:12,980 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 16:09:12,980 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 16:09:12,983 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 16:09:13,438 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 16, 8, 54), 18.02, 28.48, 0.0, 17.08, 14.02, 0, 0, 0, 2, 0, 0),)
2025-06-13 16:09:13,438 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 16:08:54
2025-06-13 16:09:13,519 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 16:09:13,525 [DEBUG][       Thread-260534][   transport.py][1871] : starting thread (client mode): 0x863507c0
2025-06-13 16:09:13,525 [DEBUG][       Thread-260534][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 16:09:13,541 [DEBUG][       Thread-260534][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 16:09:13,541 [ INFO][       Thread-260534][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 16:09:13,544 [DEBUG][       Thread-260534][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 16:09:13,544 [DEBUG][       Thread-260534][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 16:09:13,544 [DEBUG][       Thread-260534][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 16:09:13,544 [DEBUG][       Thread-260534][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:09:13,544 [DEBUG][       Thread-260534][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:09:13,544 [DEBUG][       Thread-260534][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:09:13,544 [DEBUG][       Thread-260534][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:09:13,544 [DEBUG][       Thread-260534][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 16:09:13,545 [DEBUG][       Thread-260534][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 16:09:13,545 [DEBUG][       Thread-260534][   transport.py][1871] : client lang: <none>
2025-06-13 16:09:13,545 [DEBUG][       Thread-260534][   transport.py][1871] : server lang: <none>
2025-06-13 16:09:13,545 [DEBUG][       Thread-260534][   transport.py][1871] : kex follows: False
2025-06-13 16:09:13,545 [DEBUG][       Thread-260534][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 16:09:13,545 [DEBUG][       Thread-260534][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 16:09:13,545 [DEBUG][       Thread-260534][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 16:09:13,545 [DEBUG][       Thread-260534][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 16:09:13,545 [DEBUG][       Thread-260534][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 16:09:13,545 [DEBUG][       Thread-260534][   transport.py][1871] : Compression: none
2025-06-13 16:09:13,545 [DEBUG][       Thread-260534][   transport.py][1871] : === End of kex handshake ===
2025-06-13 16:09:13,552 [DEBUG][       Thread-260534][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 16:09:13,553 [DEBUG][       Thread-260534][   transport.py][1871] : Switch to new keys ...
2025-06-13 16:09:13,553 [DEBUG][       Thread-260534][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 16:09:13,553 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 16:09:13,554 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 16:09:13,554 [DEBUG][       Thread-260534][   transport.py][1871] : userauth is OK
2025-06-13 16:09:13,567 [ INFO][       Thread-260534][   transport.py][1871] : Authentication (password) successful!
2025-06-13 16:09:13,568 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 16:09:14,219 [DEBUG][       Thread-260534][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 16:09:14,220 [DEBUG][       Thread-260534][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 16:09:14,261 [DEBUG][       Thread-260534][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 16:09:14,261 [DEBUG][       Thread-260534][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 16:09:14,264 [DEBUG][       Thread-260534][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 16:09:14,276 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 16:09:14,277 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 16:09:14,279 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 16:09:14,281 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 16:09:14,287 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 16:09:14,289 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 16:09:14,289 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 16:09:14,290 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 16:09:14,290 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.589171 -999.00  +13.70  22.08     33   -1.90 1 1 1 1 1   887    0 15.62 -7.36 ----- 26.2 22.1 50.6 27.2 16.5 -31.4 15.8 -31.9 16.5 -31.4 17.4 -29.7
2025-06-13 16:09:14,290 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 16:09:14,290 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 16:09:14,290 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.589171
2025-06-13 16:09:14,291 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 16:09:14,291 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 16:09:14,291 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 16:09:14,291 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 16:09:14,291 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 16:09:14,292 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T16:08:54', tmtdew=18.02, humidity=28.48, cloud=0.0, wind=17.08, temperature=14.02, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T14:08:24.374', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 16:09:14,292 [DEBUG][       Thread-260534][   transport.py][1871] : EOF in transport thread
2025-06-13 16:09:14,376 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 16:09:14,388 [DEBUG][       Thread-260537][   transport.py][1871] : starting thread (client mode): 0x863c9f30
2025-06-13 16:09:14,388 [DEBUG][       Thread-260537][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 16:09:14,403 [DEBUG][       Thread-260537][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 16:09:14,403 [ INFO][       Thread-260537][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 16:09:14,411 [DEBUG][       Thread-260537][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 16:09:14,412 [DEBUG][       Thread-260537][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 16:09:14,412 [DEBUG][       Thread-260537][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 16:09:14,412 [DEBUG][       Thread-260537][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:09:14,412 [DEBUG][       Thread-260537][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:09:14,412 [DEBUG][       Thread-260537][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:09:14,412 [DEBUG][       Thread-260537][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:09:14,412 [DEBUG][       Thread-260537][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 16:09:14,412 [DEBUG][       Thread-260537][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 16:09:14,412 [DEBUG][       Thread-260537][   transport.py][1871] : client lang: <none>
2025-06-13 16:09:14,412 [DEBUG][       Thread-260537][   transport.py][1871] : server lang: <none>
2025-06-13 16:09:14,412 [DEBUG][       Thread-260537][   transport.py][1871] : kex follows: False
2025-06-13 16:09:14,412 [DEBUG][       Thread-260537][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 16:09:14,412 [DEBUG][       Thread-260537][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 16:09:14,412 [DEBUG][       Thread-260537][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 16:09:14,412 [DEBUG][       Thread-260537][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 16:09:14,412 [DEBUG][       Thread-260537][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 16:09:14,412 [DEBUG][       Thread-260537][   transport.py][1871] : Compression: none
2025-06-13 16:09:14,412 [DEBUG][       Thread-260537][   transport.py][1871] : === End of kex handshake ===
2025-06-13 16:09:14,470 [DEBUG][       Thread-260537][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 16:09:14,470 [DEBUG][       Thread-260537][   transport.py][1871] : Switch to new keys ...
2025-06-13 16:09:14,471 [DEBUG][       Thread-260537][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 16:09:14,471 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 16:09:14,472 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 16:09:14,526 [DEBUG][       Thread-260537][   transport.py][1871] : userauth is OK
2025-06-13 16:09:14,526 [DEBUG][       Thread-260537][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 16:09:14,526 [DEBUG][       Thread-260537][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 16:09:14,526 [DEBUG][       Thread-260537][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 16:09:14,527 [DEBUG][       Thread-260537][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 16:09:14,545 [ INFO][       Thread-260537][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 16:09:14,545 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 16:09:14,546 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 16:09:15,056 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:09:15,057 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:09:15,572 [DEBUG][       Thread-260537][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 16:09:15,572 [DEBUG][       Thread-260537][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 16:09:15,621 [DEBUG][       Thread-260537][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 16:09:15,621 [DEBUG][       Thread-260537][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 16:09:15,631 [DEBUG][       Thread-260537][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 16:09:15,640 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 16:09:15,640 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 16:09:15,649 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 16:09:15,664 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 16:09:15,664 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 16:09:15,664 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 16:09:15,681 [DEBUG][       Thread-260537][   transport.py][1871] : EOF in transport thread
2025-06-13 16:09:19,247 [DEBUG][Thread-260539 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:09:22,781 [DEBUG][Thread-260540 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:09:25,668 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 16:09:25,668 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 16:09:25,668 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 16:09:25,671 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 16:09:26,133 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 16, 8, 54), 18.02, 28.48, 0.0, 17.08, 14.02, 0, 0, 0, 2, 0, 0),)
2025-06-13 16:09:26,133 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 16:08:54
2025-06-13 16:09:26,215 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 16:09:26,219 [DEBUG][       Thread-260541][   transport.py][1871] : starting thread (client mode): 0x863c9750
2025-06-13 16:09:26,219 [DEBUG][       Thread-260541][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 16:09:26,239 [DEBUG][       Thread-260541][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 16:09:26,239 [ INFO][       Thread-260541][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 16:09:26,241 [DEBUG][       Thread-260541][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 16:09:26,241 [DEBUG][       Thread-260541][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 16:09:26,241 [DEBUG][       Thread-260541][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 16:09:26,241 [DEBUG][       Thread-260541][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:09:26,241 [DEBUG][       Thread-260541][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:09:26,241 [DEBUG][       Thread-260541][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:09:26,241 [DEBUG][       Thread-260541][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:09:26,241 [DEBUG][       Thread-260541][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 16:09:26,241 [DEBUG][       Thread-260541][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 16:09:26,241 [DEBUG][       Thread-260541][   transport.py][1871] : client lang: <none>
2025-06-13 16:09:26,241 [DEBUG][       Thread-260541][   transport.py][1871] : server lang: <none>
2025-06-13 16:09:26,241 [DEBUG][       Thread-260541][   transport.py][1871] : kex follows: False
2025-06-13 16:09:26,241 [DEBUG][       Thread-260541][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 16:09:26,241 [DEBUG][       Thread-260541][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 16:09:26,241 [DEBUG][       Thread-260541][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 16:09:26,241 [DEBUG][       Thread-260541][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 16:09:26,241 [DEBUG][       Thread-260541][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 16:09:26,241 [DEBUG][       Thread-260541][   transport.py][1871] : Compression: none
2025-06-13 16:09:26,241 [DEBUG][       Thread-260541][   transport.py][1871] : === End of kex handshake ===
2025-06-13 16:09:26,252 [DEBUG][       Thread-260541][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 16:09:26,252 [DEBUG][       Thread-260541][   transport.py][1871] : Switch to new keys ...
2025-06-13 16:09:26,252 [DEBUG][       Thread-260541][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 16:09:26,252 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 16:09:26,252 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 16:09:26,253 [DEBUG][       Thread-260541][   transport.py][1871] : userauth is OK
2025-06-13 16:09:26,277 [ INFO][       Thread-260541][   transport.py][1871] : Authentication (password) successful!
2025-06-13 16:09:26,277 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 16:09:26,910 [DEBUG][       Thread-260541][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 16:09:26,910 [DEBUG][       Thread-260541][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 16:09:26,956 [DEBUG][       Thread-260541][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 16:09:26,956 [DEBUG][       Thread-260541][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 16:09:26,958 [DEBUG][       Thread-260541][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 16:09:26,972 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 16:09:26,972 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 16:09:26,973 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 16:09:26,974 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 16:09:26,976 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 16:09:26,977 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 16:09:26,977 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 16:09:26,977 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 16:09:26,977 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.589518 -999.00  +13.50  19.13     34   -1.90 1 1 1 1 1   887    0 15.46 -8.47 ----- 22.9 19.1 42.8 27.6 16.5 -31.7 15.7 -31.8 16.4 -31.2 17.4 -29.6
2025-06-13 16:09:26,978 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 16:09:26,978 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 16:09:26,978 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.589518
2025-06-13 16:09:26,978 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 16:09:26,978 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 16:09:26,978 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 16:09:26,978 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 16:09:26,978 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 16:09:26,978 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T16:08:54', tmtdew=18.02, humidity=28.48, cloud=0.0, wind=17.08, temperature=14.02, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T14:08:54.355', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 16:09:26,979 [DEBUG][       Thread-260541][   transport.py][1871] : EOF in transport thread
2025-06-13 16:09:27,052 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 16:09:27,061 [DEBUG][       Thread-260544][   transport.py][1871] : starting thread (client mode): 0xc5988130
2025-06-13 16:09:27,061 [DEBUG][       Thread-260544][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 16:09:27,076 [DEBUG][       Thread-260544][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 16:09:27,076 [ INFO][       Thread-260544][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 16:09:27,084 [DEBUG][       Thread-260544][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 16:09:27,084 [DEBUG][       Thread-260544][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 16:09:27,084 [DEBUG][       Thread-260544][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 16:09:27,084 [DEBUG][       Thread-260544][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:09:27,084 [DEBUG][       Thread-260544][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:09:27,084 [DEBUG][       Thread-260544][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:09:27,084 [DEBUG][       Thread-260544][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:09:27,084 [DEBUG][       Thread-260544][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 16:09:27,084 [DEBUG][       Thread-260544][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 16:09:27,084 [DEBUG][       Thread-260544][   transport.py][1871] : client lang: <none>
2025-06-13 16:09:27,084 [DEBUG][       Thread-260544][   transport.py][1871] : server lang: <none>
2025-06-13 16:09:27,084 [DEBUG][       Thread-260544][   transport.py][1871] : kex follows: False
2025-06-13 16:09:27,084 [DEBUG][       Thread-260544][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 16:09:27,084 [DEBUG][       Thread-260544][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 16:09:27,084 [DEBUG][       Thread-260544][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 16:09:27,084 [DEBUG][       Thread-260544][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 16:09:27,084 [DEBUG][       Thread-260544][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 16:09:27,084 [DEBUG][       Thread-260544][   transport.py][1871] : Compression: none
2025-06-13 16:09:27,084 [DEBUG][       Thread-260544][   transport.py][1871] : === End of kex handshake ===
2025-06-13 16:09:27,140 [DEBUG][       Thread-260544][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 16:09:27,140 [DEBUG][       Thread-260544][   transport.py][1871] : Switch to new keys ...
2025-06-13 16:09:27,140 [DEBUG][       Thread-260544][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 16:09:27,140 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 16:09:27,141 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 16:09:27,203 [DEBUG][       Thread-260544][   transport.py][1871] : userauth is OK
2025-06-13 16:09:27,203 [DEBUG][       Thread-260544][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 16:09:27,203 [DEBUG][       Thread-260544][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 16:09:27,203 [DEBUG][       Thread-260544][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 16:09:27,203 [DEBUG][       Thread-260544][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 16:09:27,217 [ INFO][       Thread-260544][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 16:09:27,217 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 16:09:27,217 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 16:09:28,270 [DEBUG][Thread-260546 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:09:28,278 [DEBUG][       Thread-260544][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 16:09:28,278 [DEBUG][       Thread-260544][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 16:09:28,327 [DEBUG][       Thread-260544][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 16:09:28,327 [DEBUG][       Thread-260544][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 16:09:28,335 [DEBUG][       Thread-260544][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 16:09:28,345 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 16:09:28,345 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 16:09:28,355 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 16:09:28,363 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 16:09:28,363 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 16:09:28,363 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 16:09:28,372 [DEBUG][       Thread-260544][   transport.py][1871] : EOF in transport thread
2025-06-13 16:09:34,163 [DEBUG][Thread-260547 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:09:35,218 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:09:35,219 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:09:37,290 [DEBUG][Thread-260548 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:09:38,373 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 16:09:38,374 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 16:09:38,374 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 16:09:38,377 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 16:09:38,831 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 16, 9, 26), 17.98, 28.63, 0.0, 19.83, 13.93, 0, 0, 0, 2, 0, 0),)
2025-06-13 16:09:38,831 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 16:09:26
2025-06-13 16:09:38,912 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 16:09:38,918 [DEBUG][       Thread-260549][   transport.py][1871] : starting thread (client mode): 0x863505b0
2025-06-13 16:09:38,918 [DEBUG][       Thread-260549][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 16:09:38,938 [DEBUG][       Thread-260549][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 16:09:38,938 [ INFO][       Thread-260549][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 16:09:38,940 [DEBUG][       Thread-260549][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 16:09:38,940 [DEBUG][       Thread-260549][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 16:09:38,940 [DEBUG][       Thread-260549][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 16:09:38,940 [DEBUG][       Thread-260549][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:09:38,940 [DEBUG][       Thread-260549][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:09:38,940 [DEBUG][       Thread-260549][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:09:38,940 [DEBUG][       Thread-260549][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:09:38,940 [DEBUG][       Thread-260549][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 16:09:38,940 [DEBUG][       Thread-260549][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 16:09:38,940 [DEBUG][       Thread-260549][   transport.py][1871] : client lang: <none>
2025-06-13 16:09:38,940 [DEBUG][       Thread-260549][   transport.py][1871] : server lang: <none>
2025-06-13 16:09:38,940 [DEBUG][       Thread-260549][   transport.py][1871] : kex follows: False
2025-06-13 16:09:38,940 [DEBUG][       Thread-260549][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 16:09:38,940 [DEBUG][       Thread-260549][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 16:09:38,940 [DEBUG][       Thread-260549][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 16:09:38,940 [DEBUG][       Thread-260549][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 16:09:38,940 [DEBUG][       Thread-260549][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 16:09:38,940 [DEBUG][       Thread-260549][   transport.py][1871] : Compression: none
2025-06-13 16:09:38,940 [DEBUG][       Thread-260549][   transport.py][1871] : === End of kex handshake ===
2025-06-13 16:09:38,949 [DEBUG][       Thread-260549][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 16:09:38,949 [DEBUG][       Thread-260549][   transport.py][1871] : Switch to new keys ...
2025-06-13 16:09:38,950 [DEBUG][       Thread-260549][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 16:09:38,950 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 16:09:38,950 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 16:09:38,952 [DEBUG][       Thread-260549][   transport.py][1871] : userauth is OK
2025-06-13 16:09:38,966 [ INFO][       Thread-260549][   transport.py][1871] : Authentication (password) successful!
2025-06-13 16:09:38,966 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 16:09:39,590 [DEBUG][       Thread-260549][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 16:09:39,590 [DEBUG][       Thread-260549][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 16:09:39,633 [DEBUG][       Thread-260549][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 16:09:39,633 [DEBUG][       Thread-260549][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 16:09:39,637 [DEBUG][       Thread-260549][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 16:09:39,649 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 16:09:39,650 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 16:09:39,652 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 16:09:39,654 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 16:09:39,661 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 16:09:39,664 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 16:09:39,664 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 16:09:39,665 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 16:09:39,665 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.589518 -999.00  +13.50  19.13     34   -1.90 1 1 1 1 1   887    0 15.46 -8.47 ----- 22.9 19.1 42.8 27.6 16.5 -31.7 15.7 -31.8 16.4 -31.2 17.4 -29.6
2025-06-13 16:09:39,665 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 16:09:39,665 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 16:09:39,666 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.589518
2025-06-13 16:09:39,666 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 16:09:39,667 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 16:09:39,667 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 16:09:39,667 [DEBUG][       Thread-260549][   transport.py][1871] : EOF in transport thread
2025-06-13 16:09:39,668 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 16:09:39,668 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 16:09:39,669 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T16:09:26', tmtdew=17.98, humidity=28.63, cloud=0.0, wind=19.83, temperature=13.93, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T14:08:54.355', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 16:09:39,745 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 16:09:39,759 [DEBUG][       Thread-260552][   transport.py][1871] : starting thread (client mode): 0x863bea70
2025-06-13 16:09:39,760 [DEBUG][       Thread-260552][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 16:09:39,784 [DEBUG][       Thread-260552][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 16:09:39,784 [ INFO][       Thread-260552][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 16:09:39,795 [DEBUG][       Thread-260552][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 16:09:39,796 [DEBUG][       Thread-260552][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 16:09:39,796 [DEBUG][       Thread-260552][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 16:09:39,796 [DEBUG][       Thread-260552][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:09:39,796 [DEBUG][       Thread-260552][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:09:39,796 [DEBUG][       Thread-260552][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:09:39,796 [DEBUG][       Thread-260552][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:09:39,796 [DEBUG][       Thread-260552][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 16:09:39,796 [DEBUG][       Thread-260552][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 16:09:39,796 [DEBUG][       Thread-260552][   transport.py][1871] : client lang: <none>
2025-06-13 16:09:39,796 [DEBUG][       Thread-260552][   transport.py][1871] : server lang: <none>
2025-06-13 16:09:39,796 [DEBUG][       Thread-260552][   transport.py][1871] : kex follows: False
2025-06-13 16:09:39,796 [DEBUG][       Thread-260552][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 16:09:39,796 [DEBUG][       Thread-260552][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 16:09:39,796 [DEBUG][       Thread-260552][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 16:09:39,796 [DEBUG][       Thread-260552][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 16:09:39,797 [DEBUG][       Thread-260552][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 16:09:39,797 [DEBUG][       Thread-260552][   transport.py][1871] : Compression: none
2025-06-13 16:09:39,797 [DEBUG][       Thread-260552][   transport.py][1871] : === End of kex handshake ===
2025-06-13 16:09:39,868 [DEBUG][       Thread-260552][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 16:09:39,868 [DEBUG][       Thread-260552][   transport.py][1871] : Switch to new keys ...
2025-06-13 16:09:39,869 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 16:09:39,870 [DEBUG][       Thread-260552][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 16:09:39,870 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 16:09:39,926 [DEBUG][       Thread-260552][   transport.py][1871] : userauth is OK
2025-06-13 16:09:39,926 [DEBUG][       Thread-260552][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 16:09:39,926 [DEBUG][       Thread-260552][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 16:09:39,926 [DEBUG][       Thread-260552][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 16:09:39,926 [DEBUG][       Thread-260552][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 16:09:39,945 [ INFO][       Thread-260552][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 16:09:39,945 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 16:09:39,946 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 16:09:40,938 [DEBUG][       Thread-260552][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 16:09:40,938 [DEBUG][       Thread-260552][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 16:09:40,988 [DEBUG][       Thread-260552][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 16:09:40,988 [DEBUG][       Thread-260552][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 16:09:40,997 [DEBUG][       Thread-260552][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 16:09:41,006 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 16:09:41,006 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 16:09:41,015 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 16:09:41,024 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 16:09:41,024 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 16:09:41,025 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 16:09:41,033 [DEBUG][       Thread-260552][   transport.py][1871] : EOF in transport thread
2025-06-13 16:09:46,312 [DEBUG][Thread-260554 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:09:51,035 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 16:09:51,035 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 16:09:51,035 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 16:09:51,036 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 16:09:51,487 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 16, 9, 26), 17.98, 28.63, 0.0, 19.83, 13.93, 0, 0, 0, 2, 0, 0),)
2025-06-13 16:09:51,487 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 16:09:26
2025-06-13 16:09:51,568 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 16:09:51,572 [DEBUG][       Thread-260555][   transport.py][1871] : starting thread (client mode): 0x8636ae60
2025-06-13 16:09:51,572 [DEBUG][       Thread-260555][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 16:09:51,597 [DEBUG][       Thread-260555][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 16:09:51,597 [ INFO][       Thread-260555][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 16:09:51,598 [DEBUG][       Thread-260555][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 16:09:51,598 [DEBUG][       Thread-260555][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 16:09:51,598 [DEBUG][       Thread-260555][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 16:09:51,598 [DEBUG][       Thread-260555][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:09:51,598 [DEBUG][       Thread-260555][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:09:51,598 [DEBUG][       Thread-260555][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:09:51,598 [DEBUG][       Thread-260555][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:09:51,598 [DEBUG][       Thread-260555][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 16:09:51,598 [DEBUG][       Thread-260555][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 16:09:51,598 [DEBUG][       Thread-260555][   transport.py][1871] : client lang: <none>
2025-06-13 16:09:51,598 [DEBUG][       Thread-260555][   transport.py][1871] : server lang: <none>
2025-06-13 16:09:51,598 [DEBUG][       Thread-260555][   transport.py][1871] : kex follows: False
2025-06-13 16:09:51,598 [DEBUG][       Thread-260555][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 16:09:51,599 [DEBUG][       Thread-260555][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 16:09:51,599 [DEBUG][       Thread-260555][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 16:09:51,599 [DEBUG][       Thread-260555][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 16:09:51,599 [DEBUG][       Thread-260555][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 16:09:51,599 [DEBUG][       Thread-260555][   transport.py][1871] : Compression: none
2025-06-13 16:09:51,599 [DEBUG][       Thread-260555][   transport.py][1871] : === End of kex handshake ===
2025-06-13 16:09:51,610 [DEBUG][       Thread-260555][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 16:09:51,611 [DEBUG][       Thread-260555][   transport.py][1871] : Switch to new keys ...
2025-06-13 16:09:51,611 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 16:09:51,611 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 16:09:51,612 [DEBUG][       Thread-260555][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 16:09:51,613 [DEBUG][       Thread-260555][   transport.py][1871] : userauth is OK
2025-06-13 16:09:51,638 [ INFO][       Thread-260555][   transport.py][1871] : Authentication (password) successful!
2025-06-13 16:09:51,638 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 16:09:52,217 [DEBUG][       Thread-260555][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 16:09:52,217 [DEBUG][       Thread-260555][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 16:09:52,261 [DEBUG][       Thread-260555][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 16:09:52,261 [DEBUG][       Thread-260555][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 16:09:52,264 [DEBUG][       Thread-260555][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 16:09:52,276 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 16:09:52,276 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 16:09:52,278 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 16:09:52,280 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 16:09:52,286 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 16:09:52,288 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 16:09:52,288 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 16:09:52,289 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 16:09:52,289 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.589866 -999.00  +13.40  20.74     34   -1.90 1 1 1 1 1   887    0 15.27 -10.23 ----- 21.6 20.7 44.0 25.8 16.5 -31.4 15.7 -32.0 16.4 -30.7 17.4 -29.5
2025-06-13 16:09:52,289 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 16:09:52,289 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 16:09:52,289 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.589866
2025-06-13 16:09:52,290 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 16:09:52,290 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 16:09:52,290 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 16:09:52,291 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 16:09:52,291 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 16:09:52,291 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T16:09:26', tmtdew=17.98, humidity=28.63, cloud=0.0, wind=19.83, temperature=13.93, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T14:09:24.422', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 16:09:52,292 [DEBUG][       Thread-260555][   transport.py][1871] : EOF in transport thread
2025-06-13 16:09:52,375 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 16:09:52,384 [DEBUG][       Thread-260558][   transport.py][1871] : starting thread (client mode): 0x863a40a0
2025-06-13 16:09:52,384 [DEBUG][       Thread-260558][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 16:09:52,402 [DEBUG][       Thread-260558][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 16:09:52,402 [ INFO][       Thread-260558][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 16:09:52,410 [DEBUG][       Thread-260558][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 16:09:52,410 [DEBUG][       Thread-260558][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 16:09:52,410 [DEBUG][       Thread-260558][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 16:09:52,410 [DEBUG][       Thread-260558][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:09:52,410 [DEBUG][       Thread-260558][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:09:52,410 [DEBUG][       Thread-260558][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:09:52,410 [DEBUG][       Thread-260558][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:09:52,410 [DEBUG][       Thread-260558][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 16:09:52,410 [DEBUG][       Thread-260558][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 16:09:52,410 [DEBUG][       Thread-260558][   transport.py][1871] : client lang: <none>
2025-06-13 16:09:52,410 [DEBUG][       Thread-260558][   transport.py][1871] : server lang: <none>
2025-06-13 16:09:52,410 [DEBUG][       Thread-260558][   transport.py][1871] : kex follows: False
2025-06-13 16:09:52,410 [DEBUG][       Thread-260558][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 16:09:52,410 [DEBUG][       Thread-260558][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 16:09:52,410 [DEBUG][       Thread-260558][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 16:09:52,410 [DEBUG][       Thread-260558][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 16:09:52,410 [DEBUG][       Thread-260558][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 16:09:52,410 [DEBUG][       Thread-260558][   transport.py][1871] : Compression: none
2025-06-13 16:09:52,411 [DEBUG][       Thread-260558][   transport.py][1871] : === End of kex handshake ===
2025-06-13 16:09:52,471 [DEBUG][       Thread-260558][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 16:09:52,472 [DEBUG][       Thread-260558][   transport.py][1871] : Switch to new keys ...
2025-06-13 16:09:52,472 [DEBUG][       Thread-260558][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 16:09:52,473 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 16:09:52,473 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 16:09:52,530 [DEBUG][       Thread-260558][   transport.py][1871] : userauth is OK
2025-06-13 16:09:52,530 [DEBUG][       Thread-260558][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 16:09:52,530 [DEBUG][       Thread-260558][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 16:09:52,530 [DEBUG][       Thread-260558][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 16:09:52,530 [DEBUG][       Thread-260558][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 16:09:52,550 [ INFO][       Thread-260558][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 16:09:52,550 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 16:09:52,551 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 16:09:53,558 [DEBUG][       Thread-260558][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 16:09:53,558 [DEBUG][       Thread-260558][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 16:09:53,608 [DEBUG][       Thread-260558][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 16:09:53,608 [DEBUG][       Thread-260558][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 16:09:53,618 [DEBUG][       Thread-260558][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 16:09:53,627 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 16:09:53,627 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 16:09:53,636 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 16:09:53,646 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 16:09:53,646 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 16:09:53,647 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 16:09:53,655 [DEBUG][       Thread-260558][   transport.py][1871] : EOF in transport thread
2025-06-13 16:09:55,349 [DEBUG][Thread-260560 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:10:03,657 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 16:10:03,657 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 16:10:03,658 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 16:10:03,660 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 16:10:04,112 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 16, 9, 58), 17.95, 28.68, 0.0, 19.64, 13.93, 0, 0, 0, 2, 0, 0),)
2025-06-13 16:10:04,112 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 16:09:58
2025-06-13 16:10:04,193 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 16:10:04,198 [DEBUG][       Thread-260561][   transport.py][1871] : starting thread (client mode): 0x8636b2b0
2025-06-13 16:10:04,198 [DEBUG][       Thread-260561][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 16:10:04,219 [DEBUG][       Thread-260561][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 16:10:04,219 [ INFO][       Thread-260561][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 16:10:04,223 [DEBUG][       Thread-260561][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 16:10:04,223 [DEBUG][       Thread-260561][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 16:10:04,223 [DEBUG][       Thread-260561][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 16:10:04,223 [DEBUG][       Thread-260561][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:10:04,223 [DEBUG][       Thread-260561][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:10:04,223 [DEBUG][       Thread-260561][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:10:04,223 [DEBUG][       Thread-260561][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:10:04,223 [DEBUG][       Thread-260561][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 16:10:04,223 [DEBUG][       Thread-260561][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 16:10:04,223 [DEBUG][       Thread-260561][   transport.py][1871] : client lang: <none>
2025-06-13 16:10:04,223 [DEBUG][       Thread-260561][   transport.py][1871] : server lang: <none>
2025-06-13 16:10:04,223 [DEBUG][       Thread-260561][   transport.py][1871] : kex follows: False
2025-06-13 16:10:04,223 [DEBUG][       Thread-260561][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 16:10:04,223 [DEBUG][       Thread-260561][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 16:10:04,224 [DEBUG][       Thread-260561][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 16:10:04,224 [DEBUG][       Thread-260561][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 16:10:04,224 [DEBUG][       Thread-260561][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 16:10:04,224 [DEBUG][       Thread-260561][   transport.py][1871] : Compression: none
2025-06-13 16:10:04,224 [DEBUG][       Thread-260561][   transport.py][1871] : === End of kex handshake ===
2025-06-13 16:10:04,241 [DEBUG][       Thread-260561][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 16:10:04,241 [DEBUG][       Thread-260561][   transport.py][1871] : Switch to new keys ...
2025-06-13 16:10:04,242 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 16:10:04,242 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 16:10:04,243 [DEBUG][       Thread-260561][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 16:10:04,244 [DEBUG][       Thread-260561][   transport.py][1871] : userauth is OK
2025-06-13 16:10:04,269 [ INFO][       Thread-260561][   transport.py][1871] : Authentication (password) successful!
2025-06-13 16:10:04,269 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 16:10:04,369 [DEBUG][Thread-260563 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:10:12,197 [DEBUG][       Thread-260561][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 16:10:12,197 [DEBUG][       Thread-260561][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 16:10:12,241 [DEBUG][       Thread-260561][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 16:10:12,241 [DEBUG][       Thread-260561][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 16:10:12,244 [DEBUG][       Thread-260561][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 16:10:12,256 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 16:10:12,256 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 16:10:12,258 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 16:10:12,259 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 16:10:12,270 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 16:10:12,272 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 16:10:12,272 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 16:10:12,273 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 16:10:12,273 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.589866 -999.00  +13.40  20.74     34   -1.90 1 1 1 1 1   887    0 15.27 -10.23 ----- 21.6 20.7 44.0 25.8 16.5 -31.4 15.7 -32.0 16.4 -30.7 17.4 -29.5
2025-06-13 16:10:12,273 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 16:10:12,273 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 16:10:12,273 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.589866
2025-06-13 16:10:12,274 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 16:10:12,274 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 16:10:12,274 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 16:10:12,274 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 16:10:12,275 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 16:10:12,275 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T16:09:58', tmtdew=17.95, humidity=28.68, cloud=0.0, wind=19.64, temperature=13.93, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T14:09:24.422', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 16:10:12,276 [DEBUG][       Thread-260561][   transport.py][1871] : EOF in transport thread
2025-06-13 16:10:12,358 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 16:10:12,371 [DEBUG][       Thread-260565][   transport.py][1871] : starting thread (client mode): 0x863ed8d0
2025-06-13 16:10:12,371 [DEBUG][       Thread-260565][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 16:10:12,386 [DEBUG][       Thread-260565][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 16:10:12,387 [ INFO][       Thread-260565][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 16:10:12,394 [DEBUG][       Thread-260565][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 16:10:12,394 [DEBUG][       Thread-260565][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 16:10:12,394 [DEBUG][       Thread-260565][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 16:10:12,394 [DEBUG][       Thread-260565][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:10:12,394 [DEBUG][       Thread-260565][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:10:12,394 [DEBUG][       Thread-260565][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:10:12,394 [DEBUG][       Thread-260565][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:10:12,394 [DEBUG][       Thread-260565][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 16:10:12,395 [DEBUG][       Thread-260565][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 16:10:12,395 [DEBUG][       Thread-260565][   transport.py][1871] : client lang: <none>
2025-06-13 16:10:12,395 [DEBUG][       Thread-260565][   transport.py][1871] : server lang: <none>
2025-06-13 16:10:12,395 [DEBUG][       Thread-260565][   transport.py][1871] : kex follows: False
2025-06-13 16:10:12,395 [DEBUG][       Thread-260565][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 16:10:12,395 [DEBUG][       Thread-260565][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 16:10:12,395 [DEBUG][       Thread-260565][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 16:10:12,395 [DEBUG][       Thread-260565][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 16:10:12,395 [DEBUG][       Thread-260565][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 16:10:12,395 [DEBUG][       Thread-260565][   transport.py][1871] : Compression: none
2025-06-13 16:10:12,395 [DEBUG][       Thread-260565][   transport.py][1871] : === End of kex handshake ===
2025-06-13 16:10:12,455 [DEBUG][       Thread-260565][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 16:10:12,455 [DEBUG][       Thread-260565][   transport.py][1871] : Switch to new keys ...
2025-06-13 16:10:12,456 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 16:10:12,457 [DEBUG][       Thread-260565][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 16:10:12,457 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 16:10:12,514 [DEBUG][       Thread-260565][   transport.py][1871] : userauth is OK
2025-06-13 16:10:12,514 [DEBUG][       Thread-260565][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 16:10:12,514 [DEBUG][       Thread-260565][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 16:10:12,514 [DEBUG][       Thread-260565][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 16:10:12,515 [DEBUG][       Thread-260565][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 16:10:12,534 [ INFO][       Thread-260565][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 16:10:12,534 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 16:10:12,535 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 16:10:13,392 [DEBUG][Thread-260567 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:10:13,568 [DEBUG][       Thread-260565][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 16:10:13,568 [DEBUG][       Thread-260565][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 16:10:13,616 [DEBUG][       Thread-260565][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 16:10:13,616 [DEBUG][       Thread-260565][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 16:10:13,626 [DEBUG][       Thread-260565][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 16:10:13,635 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 16:10:13,635 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 16:10:13,644 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 16:10:13,654 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 16:10:13,654 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 16:10:13,655 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 16:10:13,664 [DEBUG][       Thread-260565][   transport.py][1871] : EOF in transport thread
2025-06-13 16:10:15,216 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:10:15,217 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:10:22,431 [DEBUG][Thread-260568 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:10:22,809 [DEBUG][Thread-260569 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:10:23,665 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 16:10:23,666 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 16:10:23,666 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 16:10:23,668 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 16:10:24,128 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 16, 9, 58), 17.95, 28.68, 0.0, 19.64, 13.93, 0, 0, 0, 2, 0, 0),)
2025-06-13 16:10:24,128 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 16:09:58
2025-06-13 16:10:24,209 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 16:10:24,213 [DEBUG][       Thread-260571][   transport.py][1871] : starting thread (client mode): 0x86352170
2025-06-13 16:10:24,213 [DEBUG][       Thread-260571][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 16:10:24,228 [DEBUG][       Thread-260571][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 16:10:24,228 [ INFO][       Thread-260571][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 16:10:24,232 [DEBUG][       Thread-260571][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 16:10:24,232 [DEBUG][       Thread-260571][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 16:10:24,232 [DEBUG][       Thread-260571][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 16:10:24,232 [DEBUG][       Thread-260571][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:10:24,232 [DEBUG][       Thread-260571][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:10:24,232 [DEBUG][       Thread-260571][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:10:24,232 [DEBUG][       Thread-260571][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:10:24,232 [DEBUG][       Thread-260571][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 16:10:24,232 [DEBUG][       Thread-260571][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 16:10:24,232 [DEBUG][       Thread-260571][   transport.py][1871] : client lang: <none>
2025-06-13 16:10:24,232 [DEBUG][       Thread-260571][   transport.py][1871] : server lang: <none>
2025-06-13 16:10:24,232 [DEBUG][       Thread-260571][   transport.py][1871] : kex follows: False
2025-06-13 16:10:24,232 [DEBUG][       Thread-260571][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 16:10:24,232 [DEBUG][       Thread-260571][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 16:10:24,232 [DEBUG][       Thread-260571][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 16:10:24,232 [DEBUG][       Thread-260571][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 16:10:24,232 [DEBUG][       Thread-260571][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 16:10:24,232 [DEBUG][       Thread-260571][   transport.py][1871] : Compression: none
2025-06-13 16:10:24,232 [DEBUG][       Thread-260571][   transport.py][1871] : === End of kex handshake ===
2025-06-13 16:10:24,249 [DEBUG][       Thread-260571][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 16:10:24,249 [DEBUG][       Thread-260571][   transport.py][1871] : Switch to new keys ...
2025-06-13 16:10:24,250 [DEBUG][       Thread-260571][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 16:10:24,250 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 16:10:24,250 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 16:10:24,251 [DEBUG][       Thread-260571][   transport.py][1871] : userauth is OK
2025-06-13 16:10:24,276 [ INFO][       Thread-260571][   transport.py][1871] : Authentication (password) successful!
2025-06-13 16:10:24,276 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 16:10:25,757 [DEBUG][       Thread-260571][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 16:10:25,757 [DEBUG][       Thread-260571][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 16:10:25,800 [DEBUG][       Thread-260571][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 16:10:25,800 [DEBUG][       Thread-260571][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 16:10:25,802 [DEBUG][       Thread-260571][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 16:10:25,812 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 16:10:25,812 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 16:10:25,813 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 16:10:25,813 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 16:10:25,816 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 16:10:25,817 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 16:10:25,817 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 16:10:25,817 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 16:10:25,817 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.590213 -999.00  +13.50  19.16     34   -1.70 1 1 1 1 1   887    0 14.98 -12.76 ----- 17.9 19.2 52.6 25.3 16.4 -30.9 15.7 -31.6 16.4 -30.5 17.4 -29.3
2025-06-13 16:10:25,817 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 16:10:25,817 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 16:10:25,817 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.590213
2025-06-13 16:10:25,817 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 16:10:25,817 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 16:10:25,817 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 16:10:25,817 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 16:10:25,817 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 16:10:25,817 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T16:09:58', tmtdew=17.95, humidity=28.68, cloud=0.0, wind=19.64, temperature=13.93, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T14:09:54.403', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 16:10:25,817 [DEBUG][       Thread-260571][   transport.py][1871] : EOF in transport thread
2025-06-13 16:10:25,891 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 16:10:25,901 [DEBUG][       Thread-260574][   transport.py][1871] : starting thread (client mode): 0x86893fd0
2025-06-13 16:10:25,901 [DEBUG][       Thread-260574][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 16:10:25,916 [DEBUG][       Thread-260574][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 16:10:25,916 [ INFO][       Thread-260574][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 16:10:25,923 [DEBUG][       Thread-260574][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 16:10:25,924 [DEBUG][       Thread-260574][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 16:10:25,924 [DEBUG][       Thread-260574][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 16:10:25,924 [DEBUG][       Thread-260574][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:10:25,924 [DEBUG][       Thread-260574][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:10:25,924 [DEBUG][       Thread-260574][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:10:25,924 [DEBUG][       Thread-260574][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:10:25,924 [DEBUG][       Thread-260574][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 16:10:25,924 [DEBUG][       Thread-260574][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 16:10:25,924 [DEBUG][       Thread-260574][   transport.py][1871] : client lang: <none>
2025-06-13 16:10:25,924 [DEBUG][       Thread-260574][   transport.py][1871] : server lang: <none>
2025-06-13 16:10:25,924 [DEBUG][       Thread-260574][   transport.py][1871] : kex follows: False
2025-06-13 16:10:25,924 [DEBUG][       Thread-260574][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 16:10:25,924 [DEBUG][       Thread-260574][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 16:10:25,924 [DEBUG][       Thread-260574][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 16:10:25,924 [DEBUG][       Thread-260574][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 16:10:25,924 [DEBUG][       Thread-260574][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 16:10:25,924 [DEBUG][       Thread-260574][   transport.py][1871] : Compression: none
2025-06-13 16:10:25,924 [DEBUG][       Thread-260574][   transport.py][1871] : === End of kex handshake ===
2025-06-13 16:10:25,980 [DEBUG][       Thread-260574][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 16:10:25,980 [DEBUG][       Thread-260574][   transport.py][1871] : Switch to new keys ...
2025-06-13 16:10:25,980 [DEBUG][       Thread-260574][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 16:10:25,980 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 16:10:25,980 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 16:10:26,037 [DEBUG][       Thread-260574][   transport.py][1871] : userauth is OK
2025-06-13 16:10:26,037 [DEBUG][       Thread-260574][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 16:10:26,037 [DEBUG][       Thread-260574][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 16:10:26,037 [DEBUG][       Thread-260574][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 16:10:26,037 [DEBUG][       Thread-260574][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 16:10:26,051 [ INFO][       Thread-260574][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 16:10:26,051 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 16:10:26,051 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 16:10:27,075 [DEBUG][       Thread-260574][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 16:10:27,075 [DEBUG][       Thread-260574][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 16:10:27,123 [DEBUG][       Thread-260574][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 16:10:27,123 [DEBUG][       Thread-260574][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 16:10:27,132 [DEBUG][       Thread-260574][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 16:10:27,140 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 16:10:27,140 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 16:10:27,148 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 16:10:27,156 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 16:10:27,156 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 16:10:27,156 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 16:10:27,164 [DEBUG][       Thread-260574][   transport.py][1871] : EOF in transport thread
2025-06-13 16:10:31,448 [DEBUG][Thread-260576 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:10:35,301 [DEBUG][Thread-260577 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:10:36,359 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:10:36,361 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:10:37,166 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 16:10:37,167 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 16:10:37,167 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 16:10:37,171 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 16:10:37,626 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 16, 10, 29), 17.9, 28.57, 0.0, 18.02, 13.88, 0, 0, 0, 2, 0, 0),)
2025-06-13 16:10:37,626 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 16:10:29
2025-06-13 16:10:37,707 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 16:10:37,711 [DEBUG][       Thread-260578][   transport.py][1871] : starting thread (client mode): 0x863c97b0
2025-06-13 16:10:37,711 [DEBUG][       Thread-260578][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 16:10:37,734 [DEBUG][       Thread-260578][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 16:10:37,734 [ INFO][       Thread-260578][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 16:10:37,736 [DEBUG][       Thread-260578][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 16:10:37,736 [DEBUG][       Thread-260578][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 16:10:37,736 [DEBUG][       Thread-260578][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 16:10:37,736 [DEBUG][       Thread-260578][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:10:37,736 [DEBUG][       Thread-260578][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:10:37,736 [DEBUG][       Thread-260578][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:10:37,736 [DEBUG][       Thread-260578][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:10:37,736 [DEBUG][       Thread-260578][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 16:10:37,736 [DEBUG][       Thread-260578][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 16:10:37,736 [DEBUG][       Thread-260578][   transport.py][1871] : client lang: <none>
2025-06-13 16:10:37,736 [DEBUG][       Thread-260578][   transport.py][1871] : server lang: <none>
2025-06-13 16:10:37,736 [DEBUG][       Thread-260578][   transport.py][1871] : kex follows: False
2025-06-13 16:10:37,736 [DEBUG][       Thread-260578][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 16:10:37,736 [DEBUG][       Thread-260578][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 16:10:37,736 [DEBUG][       Thread-260578][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 16:10:37,736 [DEBUG][       Thread-260578][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 16:10:37,736 [DEBUG][       Thread-260578][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 16:10:37,736 [DEBUG][       Thread-260578][   transport.py][1871] : Compression: none
2025-06-13 16:10:37,736 [DEBUG][       Thread-260578][   transport.py][1871] : === End of kex handshake ===
2025-06-13 16:10:37,743 [DEBUG][       Thread-260578][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 16:10:37,743 [DEBUG][       Thread-260578][   transport.py][1871] : Switch to new keys ...
2025-06-13 16:10:37,743 [DEBUG][       Thread-260578][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 16:10:37,743 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 16:10:37,743 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 16:10:37,744 [DEBUG][       Thread-260578][   transport.py][1871] : userauth is OK
2025-06-13 16:10:37,768 [ INFO][       Thread-260578][   transport.py][1871] : Authentication (password) successful!
2025-06-13 16:10:37,768 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 16:10:38,374 [DEBUG][       Thread-260578][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 16:10:38,374 [DEBUG][       Thread-260578][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 16:10:38,417 [DEBUG][       Thread-260578][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 16:10:38,417 [DEBUG][       Thread-260578][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 16:10:38,420 [DEBUG][       Thread-260578][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 16:10:38,433 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 16:10:38,434 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 16:10:38,435 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 16:10:38,437 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 16:10:38,442 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 16:10:38,444 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 16:10:38,444 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 16:10:38,445 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 16:10:38,445 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.590213 -999.00  +13.50  19.16     34   -1.70 1 1 1 1 1   887    0 14.98 -12.76 ----- 17.9 19.2 52.6 25.3 16.4 -30.9 15.7 -31.6 16.4 -30.5 17.4 -29.3
2025-06-13 16:10:38,445 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 16:10:38,445 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 16:10:38,445 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.590213
2025-06-13 16:10:38,445 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 16:10:38,446 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 16:10:38,446 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 16:10:38,446 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 16:10:38,446 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 16:10:38,446 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T16:10:29', tmtdew=17.9, humidity=28.57, cloud=0.0, wind=18.02, temperature=13.88, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T14:09:54.403', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 16:10:38,447 [DEBUG][       Thread-260578][   transport.py][1871] : EOF in transport thread
2025-06-13 16:10:38,536 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 16:10:38,547 [DEBUG][       Thread-260581][   transport.py][1871] : starting thread (client mode): 0x863be470
2025-06-13 16:10:38,547 [DEBUG][       Thread-260581][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 16:10:38,563 [DEBUG][       Thread-260581][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 16:10:38,563 [ INFO][       Thread-260581][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 16:10:38,571 [DEBUG][       Thread-260581][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 16:10:38,571 [DEBUG][       Thread-260581][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 16:10:38,571 [DEBUG][       Thread-260581][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 16:10:38,571 [DEBUG][       Thread-260581][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:10:38,571 [DEBUG][       Thread-260581][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:10:38,571 [DEBUG][       Thread-260581][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:10:38,571 [DEBUG][       Thread-260581][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:10:38,571 [DEBUG][       Thread-260581][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 16:10:38,571 [DEBUG][       Thread-260581][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 16:10:38,571 [DEBUG][       Thread-260581][   transport.py][1871] : client lang: <none>
2025-06-13 16:10:38,572 [DEBUG][       Thread-260581][   transport.py][1871] : server lang: <none>
2025-06-13 16:10:38,572 [DEBUG][       Thread-260581][   transport.py][1871] : kex follows: False
2025-06-13 16:10:38,572 [DEBUG][       Thread-260581][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 16:10:38,572 [DEBUG][       Thread-260581][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 16:10:38,572 [DEBUG][       Thread-260581][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 16:10:38,572 [DEBUG][       Thread-260581][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 16:10:38,572 [DEBUG][       Thread-260581][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 16:10:38,572 [DEBUG][       Thread-260581][   transport.py][1871] : Compression: none
2025-06-13 16:10:38,572 [DEBUG][       Thread-260581][   transport.py][1871] : === End of kex handshake ===
2025-06-13 16:10:38,630 [DEBUG][       Thread-260581][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 16:10:38,630 [DEBUG][       Thread-260581][   transport.py][1871] : Switch to new keys ...
2025-06-13 16:10:38,631 [DEBUG][       Thread-260581][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 16:10:38,631 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 16:10:38,632 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 16:10:38,686 [DEBUG][       Thread-260581][   transport.py][1871] : userauth is OK
2025-06-13 16:10:38,686 [DEBUG][       Thread-260581][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 16:10:38,686 [DEBUG][       Thread-260581][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 16:10:38,686 [DEBUG][       Thread-260581][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 16:10:38,686 [DEBUG][       Thread-260581][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 16:10:38,705 [ INFO][       Thread-260581][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 16:10:38,705 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 16:10:38,706 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 16:10:39,717 [DEBUG][       Thread-260581][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 16:10:39,717 [DEBUG][       Thread-260581][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 16:10:39,772 [DEBUG][       Thread-260581][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 16:10:39,772 [DEBUG][       Thread-260581][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 16:10:39,787 [DEBUG][       Thread-260581][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 16:10:39,802 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 16:10:39,803 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 16:10:39,812 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 16:10:39,822 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 16:10:39,822 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 16:10:39,822 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 16:10:39,832 [DEBUG][       Thread-260581][   transport.py][1871] : EOF in transport thread
2025-06-13 16:10:40,469 [DEBUG][Thread-260583 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:10:42,855 [DEBUG][Thread-260570 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:10:49,505 [DEBUG][Thread-260584 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:10:49,833 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 16:10:49,833 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 16:10:49,833 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 16:10:49,836 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 16:10:50,305 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 16, 10, 29), 17.9, 28.57, 0.0, 18.02, 13.88, 0, 0, 0, 2, 0, 0),)
2025-06-13 16:10:50,305 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 16:10:29
2025-06-13 16:10:50,386 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 16:10:50,390 [DEBUG][       Thread-260585][   transport.py][1871] : starting thread (client mode): 0x867ff3d0
2025-06-13 16:10:50,390 [DEBUG][       Thread-260585][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 16:10:50,406 [DEBUG][       Thread-260585][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 16:10:50,406 [ INFO][       Thread-260585][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 16:10:50,407 [DEBUG][       Thread-260585][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 16:10:50,407 [DEBUG][       Thread-260585][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 16:10:50,407 [DEBUG][       Thread-260585][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 16:10:50,407 [DEBUG][       Thread-260585][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:10:50,407 [DEBUG][       Thread-260585][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:10:50,407 [DEBUG][       Thread-260585][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:10:50,407 [DEBUG][       Thread-260585][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:10:50,407 [DEBUG][       Thread-260585][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 16:10:50,407 [DEBUG][       Thread-260585][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 16:10:50,407 [DEBUG][       Thread-260585][   transport.py][1871] : client lang: <none>
2025-06-13 16:10:50,407 [DEBUG][       Thread-260585][   transport.py][1871] : server lang: <none>
2025-06-13 16:10:50,408 [DEBUG][       Thread-260585][   transport.py][1871] : kex follows: False
2025-06-13 16:10:50,408 [DEBUG][       Thread-260585][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 16:10:50,408 [DEBUG][       Thread-260585][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 16:10:50,408 [DEBUG][       Thread-260585][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 16:10:50,408 [DEBUG][       Thread-260585][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 16:10:50,408 [DEBUG][       Thread-260585][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 16:10:50,408 [DEBUG][       Thread-260585][   transport.py][1871] : Compression: none
2025-06-13 16:10:50,408 [DEBUG][       Thread-260585][   transport.py][1871] : === End of kex handshake ===
2025-06-13 16:10:50,418 [DEBUG][       Thread-260585][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 16:10:50,418 [DEBUG][       Thread-260585][   transport.py][1871] : Switch to new keys ...
2025-06-13 16:10:50,419 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 16:10:50,419 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 16:10:50,419 [DEBUG][       Thread-260585][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 16:10:50,419 [DEBUG][       Thread-260585][   transport.py][1871] : userauth is OK
2025-06-13 16:10:50,443 [ INFO][       Thread-260585][   transport.py][1871] : Authentication (password) successful!
2025-06-13 16:10:50,443 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 16:10:51,026 [DEBUG][       Thread-260585][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 16:10:51,026 [DEBUG][       Thread-260585][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 16:10:51,069 [DEBUG][       Thread-260585][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 16:10:51,069 [DEBUG][       Thread-260585][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 16:10:51,073 [DEBUG][       Thread-260585][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 16:10:51,087 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 16:10:51,087 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 16:10:51,089 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 16:10:51,091 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 16:10:51,097 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 16:10:51,099 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 16:10:51,099 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 16:10:51,100 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 16:10:51,100 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.590213 -999.00  +13.50  19.16     34   -1.70 1 1 1 1 1   887    0 14.98 -12.76 ----- 17.9 19.2 52.6 25.3 16.4 -30.9 15.7 -31.6 16.4 -30.5 17.4 -29.3
2025-06-13 16:10:51,100 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 16:10:51,100 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 16:10:51,100 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.590213
2025-06-13 16:10:51,101 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 16:10:51,101 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 16:10:51,101 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 16:10:51,101 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 16:10:51,101 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 16:10:51,102 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T16:10:29', tmtdew=17.9, humidity=28.57, cloud=0.0, wind=18.02, temperature=13.88, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T14:09:54.403', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 16:10:51,102 [DEBUG][       Thread-260585][   transport.py][1871] : EOF in transport thread
2025-06-13 16:10:51,185 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 16:10:51,195 [DEBUG][       Thread-260588][   transport.py][1871] : starting thread (client mode): 0x863be470
2025-06-13 16:10:51,195 [DEBUG][       Thread-260588][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 16:10:51,211 [DEBUG][       Thread-260588][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 16:10:51,211 [ INFO][       Thread-260588][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 16:10:51,219 [DEBUG][       Thread-260588][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 16:10:51,219 [DEBUG][       Thread-260588][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 16:10:51,219 [DEBUG][       Thread-260588][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 16:10:51,219 [DEBUG][       Thread-260588][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:10:51,219 [DEBUG][       Thread-260588][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:10:51,219 [DEBUG][       Thread-260588][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:10:51,219 [DEBUG][       Thread-260588][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:10:51,219 [DEBUG][       Thread-260588][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 16:10:51,219 [DEBUG][       Thread-260588][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 16:10:51,219 [DEBUG][       Thread-260588][   transport.py][1871] : client lang: <none>
2025-06-13 16:10:51,219 [DEBUG][       Thread-260588][   transport.py][1871] : server lang: <none>
2025-06-13 16:10:51,219 [DEBUG][       Thread-260588][   transport.py][1871] : kex follows: False
2025-06-13 16:10:51,219 [DEBUG][       Thread-260588][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 16:10:51,219 [DEBUG][       Thread-260588][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 16:10:51,219 [DEBUG][       Thread-260588][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 16:10:51,219 [DEBUG][       Thread-260588][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 16:10:51,219 [DEBUG][       Thread-260588][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 16:10:51,220 [DEBUG][       Thread-260588][   transport.py][1871] : Compression: none
2025-06-13 16:10:51,220 [DEBUG][       Thread-260588][   transport.py][1871] : === End of kex handshake ===
2025-06-13 16:10:51,277 [DEBUG][       Thread-260588][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 16:10:51,278 [DEBUG][       Thread-260588][   transport.py][1871] : Switch to new keys ...
2025-06-13 16:10:51,278 [DEBUG][       Thread-260588][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 16:10:51,278 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 16:10:51,279 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 16:10:51,333 [DEBUG][       Thread-260588][   transport.py][1871] : userauth is OK
2025-06-13 16:10:51,334 [DEBUG][       Thread-260588][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 16:10:51,334 [DEBUG][       Thread-260588][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 16:10:51,334 [DEBUG][       Thread-260588][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 16:10:51,334 [DEBUG][       Thread-260588][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 16:10:51,353 [ INFO][       Thread-260588][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 16:10:51,353 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 16:10:51,353 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 16:10:52,368 [DEBUG][       Thread-260588][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 16:10:52,368 [DEBUG][       Thread-260588][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 16:10:52,416 [DEBUG][       Thread-260588][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 16:10:52,416 [DEBUG][       Thread-260588][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 16:10:52,425 [DEBUG][       Thread-260588][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 16:10:52,435 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 16:10:52,436 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 16:10:52,449 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 16:10:52,459 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 16:10:52,459 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 16:10:52,460 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 16:10:52,470 [DEBUG][       Thread-260588][   transport.py][1871] : EOF in transport thread
2025-06-13 16:10:58,527 [DEBUG][Thread-260590 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:11:02,468 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 16:11:02,468 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 16:11:02,468 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 16:11:02,469 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 16:11:02,960 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 16, 10, 29), 17.9, 28.57, 0.0, 18.02, 13.88, 0, 0, 0, 2, 0, 0),)
2025-06-13 16:11:02,960 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 16:10:29
2025-06-13 16:11:03,045 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 16:11:03,049 [DEBUG][       Thread-260591][   transport.py][1871] : starting thread (client mode): 0x863ca830
2025-06-13 16:11:03,049 [DEBUG][       Thread-260591][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 16:11:03,069 [DEBUG][       Thread-260591][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 16:11:03,069 [ INFO][       Thread-260591][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 16:11:03,072 [DEBUG][       Thread-260591][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 16:11:03,072 [DEBUG][       Thread-260591][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 16:11:03,072 [DEBUG][       Thread-260591][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 16:11:03,072 [DEBUG][       Thread-260591][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:11:03,072 [DEBUG][       Thread-260591][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:11:03,072 [DEBUG][       Thread-260591][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:11:03,072 [DEBUG][       Thread-260591][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:11:03,072 [DEBUG][       Thread-260591][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 16:11:03,072 [DEBUG][       Thread-260591][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 16:11:03,072 [DEBUG][       Thread-260591][   transport.py][1871] : client lang: <none>
2025-06-13 16:11:03,072 [DEBUG][       Thread-260591][   transport.py][1871] : server lang: <none>
2025-06-13 16:11:03,072 [DEBUG][       Thread-260591][   transport.py][1871] : kex follows: False
2025-06-13 16:11:03,072 [DEBUG][       Thread-260591][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 16:11:03,072 [DEBUG][       Thread-260591][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 16:11:03,072 [DEBUG][       Thread-260591][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 16:11:03,072 [DEBUG][       Thread-260591][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 16:11:03,072 [DEBUG][       Thread-260591][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 16:11:03,072 [DEBUG][       Thread-260591][   transport.py][1871] : Compression: none
2025-06-13 16:11:03,072 [DEBUG][       Thread-260591][   transport.py][1871] : === End of kex handshake ===
2025-06-13 16:11:03,086 [DEBUG][       Thread-260591][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 16:11:03,086 [DEBUG][       Thread-260591][   transport.py][1871] : Switch to new keys ...
2025-06-13 16:11:03,086 [DEBUG][       Thread-260591][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 16:11:03,086 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 16:11:03,086 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 16:11:03,087 [DEBUG][       Thread-260591][   transport.py][1871] : userauth is OK
2025-06-13 16:11:03,111 [ INFO][       Thread-260591][   transport.py][1871] : Authentication (password) successful!
2025-06-13 16:11:03,111 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 16:11:03,700 [DEBUG][       Thread-260591][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 16:11:03,700 [DEBUG][       Thread-260591][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 16:11:03,741 [DEBUG][       Thread-260591][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 16:11:03,741 [DEBUG][       Thread-260591][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 16:11:03,744 [DEBUG][       Thread-260591][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 16:11:03,757 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 16:11:03,757 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 16:11:03,759 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 16:11:03,760 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 16:11:03,765 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 16:11:03,766 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 16:11:03,766 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 16:11:03,767 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 16:11:03,767 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.590907 -999.00  +13.60  20.46     34   -1.80 1 1 1 1 1   887    0 15.11 -20.85 ----- 20.9 20.5 46.0 24.5 16.5 -31.3 15.8 -31.6 16.4 -31.1 17.4 -29.3
2025-06-13 16:11:03,767 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 16:11:03,767 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 16:11:03,767 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.590907
2025-06-13 16:11:03,768 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 16:11:03,768 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 16:11:03,768 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 16:11:03,769 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 16:11:03,769 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 16:11:03,769 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T16:10:29', tmtdew=17.9, humidity=28.57, cloud=0.0, wind=18.02, temperature=13.88, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T14:10:54.365', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 16:11:03,770 [DEBUG][       Thread-260591][   transport.py][1871] : EOF in transport thread
2025-06-13 16:11:03,844 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 16:11:03,859 [DEBUG][       Thread-260594][   transport.py][1871] : starting thread (client mode): 0x86351e40
2025-06-13 16:11:03,859 [DEBUG][       Thread-260594][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 16:11:03,883 [DEBUG][       Thread-260594][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 16:11:03,883 [ INFO][       Thread-260594][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 16:11:03,896 [DEBUG][       Thread-260594][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 16:11:03,896 [DEBUG][       Thread-260594][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 16:11:03,896 [DEBUG][       Thread-260594][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 16:11:03,896 [DEBUG][       Thread-260594][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:11:03,896 [DEBUG][       Thread-260594][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:11:03,896 [DEBUG][       Thread-260594][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:11:03,896 [DEBUG][       Thread-260594][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:11:03,896 [DEBUG][       Thread-260594][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 16:11:03,897 [DEBUG][       Thread-260594][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 16:11:03,897 [DEBUG][       Thread-260594][   transport.py][1871] : client lang: <none>
2025-06-13 16:11:03,897 [DEBUG][       Thread-260594][   transport.py][1871] : server lang: <none>
2025-06-13 16:11:03,897 [DEBUG][       Thread-260594][   transport.py][1871] : kex follows: False
2025-06-13 16:11:03,897 [DEBUG][       Thread-260594][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 16:11:03,897 [DEBUG][       Thread-260594][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 16:11:03,897 [DEBUG][       Thread-260594][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 16:11:03,897 [DEBUG][       Thread-260594][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 16:11:03,897 [DEBUG][       Thread-260594][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 16:11:03,897 [DEBUG][       Thread-260594][   transport.py][1871] : Compression: none
2025-06-13 16:11:03,897 [DEBUG][       Thread-260594][   transport.py][1871] : === End of kex handshake ===
2025-06-13 16:11:03,950 [DEBUG][       Thread-260594][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 16:11:03,950 [DEBUG][       Thread-260594][   transport.py][1871] : Switch to new keys ...
2025-06-13 16:11:03,950 [DEBUG][       Thread-260594][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 16:11:03,950 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 16:11:03,950 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 16:11:04,011 [DEBUG][       Thread-260594][   transport.py][1871] : userauth is OK
2025-06-13 16:11:04,011 [DEBUG][       Thread-260594][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 16:11:04,011 [DEBUG][       Thread-260594][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 16:11:04,011 [DEBUG][       Thread-260594][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 16:11:04,011 [DEBUG][       Thread-260594][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 16:11:04,026 [ INFO][       Thread-260594][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 16:11:04,026 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 16:11:04,026 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 16:11:05,013 [DEBUG][       Thread-260594][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 16:11:05,013 [DEBUG][       Thread-260594][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 16:11:05,063 [DEBUG][       Thread-260594][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 16:11:05,063 [DEBUG][       Thread-260594][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 16:11:05,071 [DEBUG][       Thread-260594][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 16:11:05,079 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 16:11:05,079 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 16:11:05,091 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 16:11:05,101 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 16:11:05,101 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 16:11:05,101 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 16:11:05,110 [DEBUG][       Thread-260594][   transport.py][1871] : EOF in transport thread
2025-06-13 16:11:07,544 [DEBUG][Thread-260596 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:11:15,111 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 16:11:15,112 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 16:11:15,112 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 16:11:15,113 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 16:11:15,355 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:11:15,356 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:11:15,563 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 16, 11, 1), 17.96, 28.46, 0.0, 19.16, 13.89, 0, 0, 0, 2, 0, 0),)
2025-06-13 16:11:15,563 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 16:11:01
2025-06-13 16:11:15,645 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 16:11:15,651 [DEBUG][       Thread-260597][   transport.py][1871] : starting thread (client mode): 0x86353f40
2025-06-13 16:11:15,651 [DEBUG][       Thread-260597][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 16:11:15,670 [DEBUG][       Thread-260597][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 16:11:15,670 [ INFO][       Thread-260597][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 16:11:15,672 [DEBUG][       Thread-260597][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 16:11:15,672 [DEBUG][       Thread-260597][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 16:11:15,672 [DEBUG][       Thread-260597][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 16:11:15,672 [DEBUG][       Thread-260597][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:11:15,672 [DEBUG][       Thread-260597][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:11:15,672 [DEBUG][       Thread-260597][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:11:15,672 [DEBUG][       Thread-260597][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:11:15,672 [DEBUG][       Thread-260597][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 16:11:15,672 [DEBUG][       Thread-260597][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 16:11:15,672 [DEBUG][       Thread-260597][   transport.py][1871] : client lang: <none>
2025-06-13 16:11:15,672 [DEBUG][       Thread-260597][   transport.py][1871] : server lang: <none>
2025-06-13 16:11:15,672 [DEBUG][       Thread-260597][   transport.py][1871] : kex follows: False
2025-06-13 16:11:15,672 [DEBUG][       Thread-260597][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 16:11:15,672 [DEBUG][       Thread-260597][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 16:11:15,673 [DEBUG][       Thread-260597][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 16:11:15,673 [DEBUG][       Thread-260597][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 16:11:15,673 [DEBUG][       Thread-260597][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 16:11:15,673 [DEBUG][       Thread-260597][   transport.py][1871] : Compression: none
2025-06-13 16:11:15,673 [DEBUG][       Thread-260597][   transport.py][1871] : === End of kex handshake ===
2025-06-13 16:11:15,685 [DEBUG][       Thread-260597][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 16:11:15,685 [DEBUG][       Thread-260597][   transport.py][1871] : Switch to new keys ...
2025-06-13 16:11:15,685 [DEBUG][       Thread-260597][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 16:11:15,686 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 16:11:15,686 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 16:11:15,686 [DEBUG][       Thread-260597][   transport.py][1871] : userauth is OK
2025-06-13 16:11:15,711 [ INFO][       Thread-260597][   transport.py][1871] : Authentication (password) successful!
2025-06-13 16:11:15,711 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 16:11:16,355 [DEBUG][       Thread-260597][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 16:11:16,356 [DEBUG][       Thread-260597][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 16:11:16,397 [DEBUG][       Thread-260597][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 16:11:16,397 [DEBUG][       Thread-260597][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 16:11:16,400 [DEBUG][       Thread-260597][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 16:11:16,411 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 16:11:16,412 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 16:11:16,413 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 16:11:16,415 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 16:11:16,420 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 16:11:16,422 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 16:11:16,422 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 16:11:16,423 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 16:11:16,423 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.590907 -999.00  +13.60  20.46     34   -1.80 1 1 1 1 1   887    0 15.11 -20.85 ----- 20.9 20.5 46.0 24.5 16.5 -31.3 15.8 -31.6 16.4 -31.1 17.4 -29.3
2025-06-13 16:11:16,423 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 16:11:16,423 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 16:11:16,423 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.590907
2025-06-13 16:11:16,424 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 16:11:16,424 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 16:11:16,425 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 16:11:16,425 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 16:11:16,425 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 16:11:16,425 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T16:11:01', tmtdew=17.96, humidity=28.46, cloud=0.0, wind=19.16, temperature=13.89, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T14:10:54.365', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 16:11:16,426 [DEBUG][       Thread-260597][   transport.py][1871] : EOF in transport thread
2025-06-13 16:11:16,508 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 16:11:16,520 [DEBUG][       Thread-260600][   transport.py][1871] : starting thread (client mode): 0x863efbe0
2025-06-13 16:11:16,520 [DEBUG][       Thread-260600][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 16:11:16,535 [DEBUG][       Thread-260600][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 16:11:16,535 [ INFO][       Thread-260600][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 16:11:16,543 [DEBUG][       Thread-260600][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 16:11:16,543 [DEBUG][       Thread-260600][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 16:11:16,543 [DEBUG][       Thread-260600][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 16:11:16,543 [DEBUG][       Thread-260600][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:11:16,543 [DEBUG][       Thread-260600][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:11:16,543 [DEBUG][       Thread-260600][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:11:16,543 [DEBUG][       Thread-260600][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:11:16,543 [DEBUG][       Thread-260600][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 16:11:16,543 [DEBUG][       Thread-260600][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 16:11:16,544 [DEBUG][       Thread-260600][   transport.py][1871] : client lang: <none>
2025-06-13 16:11:16,544 [DEBUG][       Thread-260600][   transport.py][1871] : server lang: <none>
2025-06-13 16:11:16,544 [DEBUG][       Thread-260600][   transport.py][1871] : kex follows: False
2025-06-13 16:11:16,544 [DEBUG][       Thread-260600][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 16:11:16,544 [DEBUG][       Thread-260600][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 16:11:16,544 [DEBUG][       Thread-260600][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 16:11:16,544 [DEBUG][       Thread-260600][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 16:11:16,544 [DEBUG][       Thread-260600][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 16:11:16,544 [DEBUG][       Thread-260600][   transport.py][1871] : Compression: none
2025-06-13 16:11:16,544 [DEBUG][       Thread-260600][   transport.py][1871] : === End of kex handshake ===
2025-06-13 16:11:16,564 [DEBUG][Thread-260602 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:11:16,606 [DEBUG][       Thread-260600][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 16:11:16,606 [DEBUG][       Thread-260600][   transport.py][1871] : Switch to new keys ...
2025-06-13 16:11:16,607 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 16:11:16,608 [DEBUG][       Thread-260600][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 16:11:16,608 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 16:11:16,662 [DEBUG][       Thread-260600][   transport.py][1871] : userauth is OK
2025-06-13 16:11:16,662 [DEBUG][       Thread-260600][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 16:11:16,662 [DEBUG][       Thread-260600][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 16:11:16,662 [DEBUG][       Thread-260600][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 16:11:16,662 [DEBUG][       Thread-260600][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 16:11:16,681 [ INFO][       Thread-260600][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 16:11:16,681 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 16:11:16,681 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 16:11:17,649 [DEBUG][       Thread-260600][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 16:11:17,649 [DEBUG][       Thread-260600][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 16:11:17,700 [DEBUG][       Thread-260600][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 16:11:17,700 [DEBUG][       Thread-260600][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 16:11:17,709 [DEBUG][       Thread-260600][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 16:11:17,718 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 16:11:17,719 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 16:11:17,727 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 16:11:17,737 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 16:11:17,737 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 16:11:17,738 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 16:11:17,746 [DEBUG][       Thread-260600][   transport.py][1871] : EOF in transport thread
2025-06-13 16:11:22,854 [DEBUG][Thread-260603 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:11:23,411 [DEBUG][Thread-260570 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:11:25,606 [DEBUG][Thread-260604 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:11:27,748 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 16:11:27,748 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 16:11:27,748 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 16:11:27,751 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 16:11:28,207 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 16, 11, 1), 17.96, 28.46, 0.0, 19.16, 13.89, 0, 0, 0, 2, 0, 0),)
2025-06-13 16:11:28,208 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 16:11:01
2025-06-13 16:11:28,289 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 16:11:28,293 [DEBUG][       Thread-260605][   transport.py][1871] : starting thread (client mode): 0x863699f0
2025-06-13 16:11:28,293 [DEBUG][       Thread-260605][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 16:11:28,314 [DEBUG][       Thread-260605][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 16:11:28,314 [ INFO][       Thread-260605][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 16:11:28,315 [DEBUG][       Thread-260605][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 16:11:28,315 [DEBUG][       Thread-260605][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 16:11:28,315 [DEBUG][       Thread-260605][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 16:11:28,316 [DEBUG][       Thread-260605][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:11:28,316 [DEBUG][       Thread-260605][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:11:28,316 [DEBUG][       Thread-260605][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:11:28,316 [DEBUG][       Thread-260605][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:11:28,316 [DEBUG][       Thread-260605][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 16:11:28,316 [DEBUG][       Thread-260605][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 16:11:28,316 [DEBUG][       Thread-260605][   transport.py][1871] : client lang: <none>
2025-06-13 16:11:28,316 [DEBUG][       Thread-260605][   transport.py][1871] : server lang: <none>
2025-06-13 16:11:28,316 [DEBUG][       Thread-260605][   transport.py][1871] : kex follows: False
2025-06-13 16:11:28,316 [DEBUG][       Thread-260605][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 16:11:28,316 [DEBUG][       Thread-260605][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 16:11:28,316 [DEBUG][       Thread-260605][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 16:11:28,316 [DEBUG][       Thread-260605][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 16:11:28,316 [DEBUG][       Thread-260605][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 16:11:28,316 [DEBUG][       Thread-260605][   transport.py][1871] : Compression: none
2025-06-13 16:11:28,316 [DEBUG][       Thread-260605][   transport.py][1871] : === End of kex handshake ===
2025-06-13 16:11:28,325 [DEBUG][       Thread-260605][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 16:11:28,325 [DEBUG][       Thread-260605][   transport.py][1871] : Switch to new keys ...
2025-06-13 16:11:28,326 [DEBUG][       Thread-260605][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 16:11:28,326 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 16:11:28,326 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 16:11:28,327 [DEBUG][       Thread-260605][   transport.py][1871] : userauth is OK
2025-06-13 16:11:28,352 [ INFO][       Thread-260605][   transport.py][1871] : Authentication (password) successful!
2025-06-13 16:11:28,352 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 16:11:28,993 [DEBUG][       Thread-260605][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 16:11:28,994 [DEBUG][       Thread-260605][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 16:11:29,037 [DEBUG][       Thread-260605][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 16:11:29,037 [DEBUG][       Thread-260605][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 16:11:29,040 [DEBUG][       Thread-260605][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 16:11:29,052 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 16:11:29,053 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 16:11:29,055 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 16:11:29,057 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 16:11:29,063 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 16:11:29,065 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 16:11:29,065 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 16:11:29,066 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 16:11:29,066 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.590907 -999.00  +13.60  20.46     34   -1.80 1 1 1 1 1   887    0 15.11 -20.85 ----- 20.9 20.5 46.0 24.5 16.5 -31.3 15.8 -31.6 16.4 -31.1 17.4 -29.3
2025-06-13 16:11:29,066 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 16:11:29,066 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 16:11:29,066 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.590907
2025-06-13 16:11:29,067 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 16:11:29,067 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 16:11:29,067 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 16:11:29,067 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 16:11:29,067 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 16:11:29,068 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T16:11:01', tmtdew=17.96, humidity=28.46, cloud=0.0, wind=19.16, temperature=13.89, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T14:10:54.365', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 16:11:29,068 [DEBUG][       Thread-260605][   transport.py][1871] : EOF in transport thread
2025-06-13 16:11:29,144 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 16:11:29,156 [DEBUG][       Thread-260608][   transport.py][1871] : starting thread (client mode): 0x867fd0c0
2025-06-13 16:11:29,156 [DEBUG][       Thread-260608][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 16:11:29,171 [DEBUG][       Thread-260608][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 16:11:29,171 [ INFO][       Thread-260608][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 16:11:29,179 [DEBUG][       Thread-260608][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 16:11:29,179 [DEBUG][       Thread-260608][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 16:11:29,179 [DEBUG][       Thread-260608][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 16:11:29,179 [DEBUG][       Thread-260608][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:11:29,179 [DEBUG][       Thread-260608][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:11:29,179 [DEBUG][       Thread-260608][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:11:29,179 [DEBUG][       Thread-260608][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:11:29,179 [DEBUG][       Thread-260608][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 16:11:29,179 [DEBUG][       Thread-260608][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 16:11:29,180 [DEBUG][       Thread-260608][   transport.py][1871] : client lang: <none>
2025-06-13 16:11:29,180 [DEBUG][       Thread-260608][   transport.py][1871] : server lang: <none>
2025-06-13 16:11:29,180 [DEBUG][       Thread-260608][   transport.py][1871] : kex follows: False
2025-06-13 16:11:29,180 [DEBUG][       Thread-260608][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 16:11:29,180 [DEBUG][       Thread-260608][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 16:11:29,180 [DEBUG][       Thread-260608][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 16:11:29,180 [DEBUG][       Thread-260608][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 16:11:29,180 [DEBUG][       Thread-260608][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 16:11:29,180 [DEBUG][       Thread-260608][   transport.py][1871] : Compression: none
2025-06-13 16:11:29,180 [DEBUG][       Thread-260608][   transport.py][1871] : === End of kex handshake ===
2025-06-13 16:11:29,243 [DEBUG][       Thread-260608][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 16:11:29,243 [DEBUG][       Thread-260608][   transport.py][1871] : Switch to new keys ...
2025-06-13 16:11:29,244 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 16:11:29,244 [DEBUG][       Thread-260608][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 16:11:29,245 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 16:11:29,302 [DEBUG][       Thread-260608][   transport.py][1871] : userauth is OK
2025-06-13 16:11:29,302 [DEBUG][       Thread-260608][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 16:11:29,302 [DEBUG][       Thread-260608][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 16:11:29,302 [DEBUG][       Thread-260608][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 16:11:29,302 [DEBUG][       Thread-260608][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 16:11:29,321 [ INFO][       Thread-260608][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 16:11:29,321 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 16:11:29,321 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 16:11:30,330 [DEBUG][       Thread-260608][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 16:11:30,331 [DEBUG][       Thread-260608][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 16:11:30,380 [DEBUG][       Thread-260608][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 16:11:30,380 [DEBUG][       Thread-260608][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 16:11:30,390 [DEBUG][       Thread-260608][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 16:11:30,400 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 16:11:30,401 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 16:11:30,410 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 16:11:30,426 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 16:11:30,426 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 16:11:30,427 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 16:11:30,440 [DEBUG][       Thread-260608][   transport.py][1871] : EOF in transport thread
2025-06-13 16:11:34,625 [DEBUG][Thread-260610 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:11:36,374 [DEBUG][Thread-260611 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:11:37,426 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:11:37,428 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:11:40,437 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 16:11:40,437 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 16:11:40,438 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 16:11:40,440 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 16:11:40,897 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 16, 11, 33), 17.93, 28.5, 0.0, 20.4, 13.84, 0, 0, 0, 2, 0, 0),)
2025-06-13 16:11:40,897 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 16:11:33
2025-06-13 16:11:40,976 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 16:11:40,982 [DEBUG][       Thread-260612][   transport.py][1871] : starting thread (client mode): 0x86369f60
2025-06-13 16:11:40,982 [DEBUG][       Thread-260612][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 16:11:41,004 [DEBUG][       Thread-260612][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 16:11:41,004 [ INFO][       Thread-260612][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 16:11:41,007 [DEBUG][       Thread-260612][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 16:11:41,007 [DEBUG][       Thread-260612][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 16:11:41,007 [DEBUG][       Thread-260612][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 16:11:41,008 [DEBUG][       Thread-260612][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:11:41,008 [DEBUG][       Thread-260612][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:11:41,008 [DEBUG][       Thread-260612][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:11:41,008 [DEBUG][       Thread-260612][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:11:41,008 [DEBUG][       Thread-260612][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 16:11:41,008 [DEBUG][       Thread-260612][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 16:11:41,008 [DEBUG][       Thread-260612][   transport.py][1871] : client lang: <none>
2025-06-13 16:11:41,008 [DEBUG][       Thread-260612][   transport.py][1871] : server lang: <none>
2025-06-13 16:11:41,008 [DEBUG][       Thread-260612][   transport.py][1871] : kex follows: False
2025-06-13 16:11:41,008 [DEBUG][       Thread-260612][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 16:11:41,008 [DEBUG][       Thread-260612][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 16:11:41,008 [DEBUG][       Thread-260612][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 16:11:41,008 [DEBUG][       Thread-260612][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 16:11:41,008 [DEBUG][       Thread-260612][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 16:11:41,008 [DEBUG][       Thread-260612][   transport.py][1871] : Compression: none
2025-06-13 16:11:41,008 [DEBUG][       Thread-260612][   transport.py][1871] : === End of kex handshake ===
2025-06-13 16:11:41,025 [DEBUG][       Thread-260612][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 16:11:41,025 [DEBUG][       Thread-260612][   transport.py][1871] : Switch to new keys ...
2025-06-13 16:11:41,025 [DEBUG][       Thread-260612][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 16:11:41,026 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 16:11:41,026 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 16:11:41,027 [DEBUG][       Thread-260612][   transport.py][1871] : userauth is OK
2025-06-13 16:11:41,040 [ INFO][       Thread-260612][   transport.py][1871] : Authentication (password) successful!
2025-06-13 16:11:41,041 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 16:11:41,722 [DEBUG][       Thread-260612][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 16:11:41,723 [DEBUG][       Thread-260612][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 16:11:41,765 [DEBUG][       Thread-260612][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 16:11:41,765 [DEBUG][       Thread-260612][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 16:11:41,769 [DEBUG][       Thread-260612][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 16:11:41,781 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 16:11:41,782 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 16:11:41,784 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 16:11:41,786 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 16:11:41,793 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 16:11:41,795 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 16:11:41,796 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 16:11:41,796 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 16:11:41,796 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.591255 -999.00  +13.60  20.85     34   -1.70 1 1 1 1 1   887    0 14.86 -23.70 ----- 22.4 20.9 40.4 23.4 16.5 -30.9 15.7 -31.1 16.4 -30.5 17.4 -29.3
2025-06-13 16:11:41,797 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 16:11:41,797 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 16:11:41,797 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.591255
2025-06-13 16:11:41,797 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 16:11:41,798 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 16:11:41,798 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 16:11:41,798 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 16:11:41,798 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 16:11:41,798 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T16:11:33', tmtdew=17.93, humidity=28.5, cloud=0.0, wind=20.4, temperature=13.84, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T14:11:24.432', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 16:11:41,799 [DEBUG][       Thread-260612][   transport.py][1871] : EOF in transport thread
2025-06-13 16:11:41,882 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 16:11:41,893 [DEBUG][       Thread-260615][   transport.py][1871] : starting thread (client mode): 0x863c8a00
2025-06-13 16:11:41,893 [DEBUG][       Thread-260615][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 16:11:41,908 [DEBUG][       Thread-260615][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 16:11:41,908 [ INFO][       Thread-260615][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 16:11:41,916 [DEBUG][       Thread-260615][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 16:11:41,916 [DEBUG][       Thread-260615][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 16:11:41,916 [DEBUG][       Thread-260615][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 16:11:41,916 [DEBUG][       Thread-260615][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:11:41,916 [DEBUG][       Thread-260615][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:11:41,916 [DEBUG][       Thread-260615][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:11:41,916 [DEBUG][       Thread-260615][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:11:41,916 [DEBUG][       Thread-260615][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 16:11:41,916 [DEBUG][       Thread-260615][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 16:11:41,916 [DEBUG][       Thread-260615][   transport.py][1871] : client lang: <none>
2025-06-13 16:11:41,916 [DEBUG][       Thread-260615][   transport.py][1871] : server lang: <none>
2025-06-13 16:11:41,916 [DEBUG][       Thread-260615][   transport.py][1871] : kex follows: False
2025-06-13 16:11:41,916 [DEBUG][       Thread-260615][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 16:11:41,916 [DEBUG][       Thread-260615][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 16:11:41,916 [DEBUG][       Thread-260615][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 16:11:41,917 [DEBUG][       Thread-260615][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 16:11:41,917 [DEBUG][       Thread-260615][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 16:11:41,917 [DEBUG][       Thread-260615][   transport.py][1871] : Compression: none
2025-06-13 16:11:41,917 [DEBUG][       Thread-260615][   transport.py][1871] : === End of kex handshake ===
2025-06-13 16:11:41,978 [DEBUG][       Thread-260615][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 16:11:41,979 [DEBUG][       Thread-260615][   transport.py][1871] : Switch to new keys ...
2025-06-13 16:11:41,979 [DEBUG][       Thread-260615][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 16:11:41,980 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 16:11:41,980 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 16:11:42,034 [DEBUG][       Thread-260615][   transport.py][1871] : userauth is OK
2025-06-13 16:11:42,034 [DEBUG][       Thread-260615][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 16:11:42,034 [DEBUG][       Thread-260615][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 16:11:42,035 [DEBUG][       Thread-260615][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 16:11:42,035 [DEBUG][       Thread-260615][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 16:11:42,054 [ INFO][       Thread-260615][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 16:11:42,054 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 16:11:42,054 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 16:11:43,063 [DEBUG][       Thread-260615][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 16:11:43,063 [DEBUG][       Thread-260615][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 16:11:43,111 [DEBUG][       Thread-260615][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 16:11:43,111 [DEBUG][       Thread-260615][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 16:11:43,120 [DEBUG][       Thread-260615][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 16:11:43,128 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 16:11:43,128 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 16:11:43,135 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 16:11:43,143 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 16:11:43,143 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 16:11:43,143 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 16:11:43,151 [DEBUG][       Thread-260615][   transport.py][1871] : EOF in transport thread
2025-06-13 16:11:43,641 [DEBUG][Thread-260617 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:11:52,668 [DEBUG][Thread-260618 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:11:53,154 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 16:11:53,154 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 16:11:53,154 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 16:11:53,157 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 16:11:53,624 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 16, 11, 33), 17.93, 28.5, 0.0, 20.4, 13.84, 0, 0, 0, 2, 0, 0),)
2025-06-13 16:11:53,624 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 16:11:33
2025-06-13 16:11:53,702 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 16:11:53,706 [DEBUG][       Thread-260619][   transport.py][1871] : starting thread (client mode): 0x863c9750
2025-06-13 16:11:53,706 [DEBUG][       Thread-260619][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 16:11:53,727 [DEBUG][       Thread-260619][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 16:11:53,727 [ INFO][       Thread-260619][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 16:11:53,731 [DEBUG][       Thread-260619][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 16:11:53,731 [DEBUG][       Thread-260619][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 16:11:53,731 [DEBUG][       Thread-260619][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 16:11:53,731 [DEBUG][       Thread-260619][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:11:53,731 [DEBUG][       Thread-260619][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:11:53,731 [DEBUG][       Thread-260619][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:11:53,731 [DEBUG][       Thread-260619][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:11:53,731 [DEBUG][       Thread-260619][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 16:11:53,731 [DEBUG][       Thread-260619][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 16:11:53,731 [DEBUG][       Thread-260619][   transport.py][1871] : client lang: <none>
2025-06-13 16:11:53,731 [DEBUG][       Thread-260619][   transport.py][1871] : server lang: <none>
2025-06-13 16:11:53,731 [DEBUG][       Thread-260619][   transport.py][1871] : kex follows: False
2025-06-13 16:11:53,731 [DEBUG][       Thread-260619][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 16:11:53,731 [DEBUG][       Thread-260619][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 16:11:53,731 [DEBUG][       Thread-260619][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 16:11:53,731 [DEBUG][       Thread-260619][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 16:11:53,731 [DEBUG][       Thread-260619][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 16:11:53,731 [DEBUG][       Thread-260619][   transport.py][1871] : Compression: none
2025-06-13 16:11:53,731 [DEBUG][       Thread-260619][   transport.py][1871] : === End of kex handshake ===
2025-06-13 16:11:53,748 [DEBUG][       Thread-260619][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 16:11:53,749 [DEBUG][       Thread-260619][   transport.py][1871] : Switch to new keys ...
2025-06-13 16:11:53,749 [DEBUG][       Thread-260619][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 16:11:53,749 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 16:11:53,750 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 16:11:53,751 [DEBUG][       Thread-260619][   transport.py][1871] : userauth is OK
2025-06-13 16:11:53,775 [ INFO][       Thread-260619][   transport.py][1871] : Authentication (password) successful!
2025-06-13 16:11:53,776 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 16:11:54,443 [DEBUG][       Thread-260619][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 16:11:54,443 [DEBUG][       Thread-260619][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 16:11:54,485 [DEBUG][       Thread-260619][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 16:11:54,485 [DEBUG][       Thread-260619][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 16:11:54,488 [DEBUG][       Thread-260619][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 16:11:54,502 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 16:11:54,502 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 16:11:54,504 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 16:11:54,506 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 16:11:54,511 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 16:11:54,512 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 16:11:54,512 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 16:11:54,513 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 16:11:54,513 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.591255 -999.00  +13.60  20.85     34   -1.70 1 1 1 1 1   887    0 14.86 -23.70 ----- 22.4 20.9 40.4 23.4 16.5 -30.9 15.7 -31.1 16.4 -30.5 17.4 -29.3
2025-06-13 16:11:54,513 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 16:11:54,513 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 16:11:54,513 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.591255
2025-06-13 16:11:54,513 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 16:11:54,513 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 16:11:54,513 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 16:11:54,513 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 16:11:54,513 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 16:11:54,513 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T16:11:33', tmtdew=17.93, humidity=28.5, cloud=0.0, wind=20.4, temperature=13.84, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T14:11:24.432', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 16:11:54,514 [DEBUG][       Thread-260619][   transport.py][1871] : EOF in transport thread
2025-06-13 16:11:54,588 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 16:11:54,597 [DEBUG][       Thread-260622][   transport.py][1871] : starting thread (client mode): 0x867b5f90
2025-06-13 16:11:54,597 [DEBUG][       Thread-260622][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 16:11:54,619 [DEBUG][       Thread-260622][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 16:11:54,619 [ INFO][       Thread-260622][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 16:11:54,626 [DEBUG][       Thread-260622][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 16:11:54,626 [DEBUG][       Thread-260622][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 16:11:54,626 [DEBUG][       Thread-260622][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 16:11:54,626 [DEBUG][       Thread-260622][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:11:54,626 [DEBUG][       Thread-260622][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:11:54,626 [DEBUG][       Thread-260622][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:11:54,626 [DEBUG][       Thread-260622][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:11:54,626 [DEBUG][       Thread-260622][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 16:11:54,626 [DEBUG][       Thread-260622][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 16:11:54,626 [DEBUG][       Thread-260622][   transport.py][1871] : client lang: <none>
2025-06-13 16:11:54,626 [DEBUG][       Thread-260622][   transport.py][1871] : server lang: <none>
2025-06-13 16:11:54,626 [DEBUG][       Thread-260622][   transport.py][1871] : kex follows: False
2025-06-13 16:11:54,626 [DEBUG][       Thread-260622][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 16:11:54,626 [DEBUG][       Thread-260622][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 16:11:54,626 [DEBUG][       Thread-260622][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 16:11:54,626 [DEBUG][       Thread-260622][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 16:11:54,626 [DEBUG][       Thread-260622][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 16:11:54,626 [DEBUG][       Thread-260622][   transport.py][1871] : Compression: none
2025-06-13 16:11:54,626 [DEBUG][       Thread-260622][   transport.py][1871] : === End of kex handshake ===
2025-06-13 16:11:54,688 [DEBUG][       Thread-260622][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 16:11:54,688 [DEBUG][       Thread-260622][   transport.py][1871] : Switch to new keys ...
2025-06-13 16:11:54,688 [DEBUG][       Thread-260622][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 16:11:54,688 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 16:11:54,688 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 16:11:54,752 [DEBUG][       Thread-260622][   transport.py][1871] : userauth is OK
2025-06-13 16:11:54,752 [DEBUG][       Thread-260622][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 16:11:54,752 [DEBUG][       Thread-260622][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 16:11:54,752 [DEBUG][       Thread-260622][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 16:11:54,752 [DEBUG][       Thread-260622][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 16:11:54,767 [ INFO][       Thread-260622][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 16:11:54,767 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 16:11:54,767 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 16:11:55,763 [DEBUG][       Thread-260622][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 16:11:55,764 [DEBUG][       Thread-260622][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 16:11:55,812 [DEBUG][       Thread-260622][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 16:11:55,812 [DEBUG][       Thread-260622][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 16:11:55,821 [DEBUG][       Thread-260622][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 16:11:55,830 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 16:11:55,831 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 16:11:55,840 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 16:11:55,849 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 16:11:55,849 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 16:11:55,849 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 16:11:55,857 [DEBUG][       Thread-260622][   transport.py][1871] : EOF in transport thread
2025-06-13 16:11:56,220 [DEBUG][Thread-260570 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:12:01,690 [DEBUG][Thread-260624 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:12:05,856 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 16:12:05,856 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 16:12:05,856 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 16:12:05,857 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 16:12:06,364 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 16, 11, 33), 17.93, 28.5, 0.0, 20.4, 13.84, 0, 0, 0, 2, 0, 0),)
2025-06-13 16:12:06,364 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 16:11:33
2025-06-13 16:12:06,448 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 16:12:06,516 [DEBUG][       Thread-260625][   transport.py][1871] : starting thread (client mode): 0x867fe830
2025-06-13 16:12:06,517 [DEBUG][       Thread-260625][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 16:12:06,536 [DEBUG][       Thread-260625][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 16:12:06,536 [ INFO][       Thread-260625][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 16:12:06,540 [DEBUG][       Thread-260625][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 16:12:06,540 [DEBUG][       Thread-260625][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 16:12:06,540 [DEBUG][       Thread-260625][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 16:12:06,540 [DEBUG][       Thread-260625][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:12:06,540 [DEBUG][       Thread-260625][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:12:06,540 [DEBUG][       Thread-260625][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:12:06,540 [DEBUG][       Thread-260625][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:12:06,540 [DEBUG][       Thread-260625][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 16:12:06,540 [DEBUG][       Thread-260625][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 16:12:06,540 [DEBUG][       Thread-260625][   transport.py][1871] : client lang: <none>
2025-06-13 16:12:06,540 [DEBUG][       Thread-260625][   transport.py][1871] : server lang: <none>
2025-06-13 16:12:06,540 [DEBUG][       Thread-260625][   transport.py][1871] : kex follows: False
2025-06-13 16:12:06,540 [DEBUG][       Thread-260625][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 16:12:06,540 [DEBUG][       Thread-260625][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 16:12:06,540 [DEBUG][       Thread-260625][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 16:12:06,540 [DEBUG][       Thread-260625][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 16:12:06,540 [DEBUG][       Thread-260625][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 16:12:06,540 [DEBUG][       Thread-260625][   transport.py][1871] : Compression: none
2025-06-13 16:12:06,540 [DEBUG][       Thread-260625][   transport.py][1871] : === End of kex handshake ===
2025-06-13 16:12:06,547 [DEBUG][       Thread-260625][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 16:12:06,547 [DEBUG][       Thread-260625][   transport.py][1871] : Switch to new keys ...
2025-06-13 16:12:06,547 [DEBUG][       Thread-260625][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 16:12:06,547 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 16:12:06,547 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 16:12:06,548 [DEBUG][       Thread-260625][   transport.py][1871] : userauth is OK
2025-06-13 16:12:06,561 [ INFO][       Thread-260625][   transport.py][1871] : Authentication (password) successful!
2025-06-13 16:12:06,561 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 16:12:07,171 [DEBUG][       Thread-260625][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 16:12:07,172 [DEBUG][       Thread-260625][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 16:12:07,213 [DEBUG][       Thread-260625][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 16:12:07,213 [DEBUG][       Thread-260625][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 16:12:07,216 [DEBUG][       Thread-260625][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 16:12:07,229 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 16:12:07,230 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 16:12:07,231 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 16:12:07,232 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 16:12:07,236 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 16:12:07,237 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 16:12:07,238 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 16:12:07,238 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 16:12:07,238 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.591601 -999.00  +13.60  18.78     34   -1.60 1 1 1 1 1   887    0 14.93 -27.81 ----- 20.1 18.8 38.8 24.9 16.5 -31.3 15.7 -31.3 16.5 -30.3 17.4 -29.2
2025-06-13 16:12:07,238 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 16:12:07,238 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 16:12:07,239 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.591601
2025-06-13 16:12:07,239 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 16:12:07,240 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 16:12:07,240 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 16:12:07,240 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 16:12:07,240 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 16:12:07,240 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T16:11:33', tmtdew=17.93, humidity=28.5, cloud=0.0, wind=20.4, temperature=13.84, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T14:11:54.326', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 16:12:07,241 [DEBUG][       Thread-260625][   transport.py][1871] : EOF in transport thread
2025-06-13 16:12:07,323 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 16:12:07,334 [DEBUG][       Thread-260628][   transport.py][1871] : starting thread (client mode): 0x86392740
2025-06-13 16:12:07,334 [DEBUG][       Thread-260628][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 16:12:07,349 [DEBUG][       Thread-260628][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 16:12:07,349 [ INFO][       Thread-260628][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 16:12:07,356 [DEBUG][       Thread-260628][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 16:12:07,356 [DEBUG][       Thread-260628][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 16:12:07,356 [DEBUG][       Thread-260628][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 16:12:07,356 [DEBUG][       Thread-260628][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:12:07,357 [DEBUG][       Thread-260628][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:12:07,357 [DEBUG][       Thread-260628][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:12:07,357 [DEBUG][       Thread-260628][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:12:07,357 [DEBUG][       Thread-260628][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 16:12:07,357 [DEBUG][       Thread-260628][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 16:12:07,357 [DEBUG][       Thread-260628][   transport.py][1871] : client lang: <none>
2025-06-13 16:12:07,357 [DEBUG][       Thread-260628][   transport.py][1871] : server lang: <none>
2025-06-13 16:12:07,357 [DEBUG][       Thread-260628][   transport.py][1871] : kex follows: False
2025-06-13 16:12:07,357 [DEBUG][       Thread-260628][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 16:12:07,357 [DEBUG][       Thread-260628][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 16:12:07,357 [DEBUG][       Thread-260628][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 16:12:07,357 [DEBUG][       Thread-260628][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 16:12:07,357 [DEBUG][       Thread-260628][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 16:12:07,357 [DEBUG][       Thread-260628][   transport.py][1871] : Compression: none
2025-06-13 16:12:07,357 [DEBUG][       Thread-260628][   transport.py][1871] : === End of kex handshake ===
2025-06-13 16:12:07,413 [DEBUG][       Thread-260628][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 16:12:07,414 [DEBUG][       Thread-260628][   transport.py][1871] : Switch to new keys ...
2025-06-13 16:12:07,414 [DEBUG][       Thread-260628][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 16:12:07,414 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 16:12:07,415 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 16:12:07,470 [DEBUG][       Thread-260628][   transport.py][1871] : userauth is OK
2025-06-13 16:12:07,470 [DEBUG][       Thread-260628][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 16:12:07,470 [DEBUG][       Thread-260628][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 16:12:07,470 [DEBUG][       Thread-260628][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 16:12:07,470 [DEBUG][       Thread-260628][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 16:12:07,501 [ INFO][       Thread-260628][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 16:12:07,502 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 16:12:07,502 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 16:12:08,581 [DEBUG][       Thread-260628][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 16:12:08,582 [DEBUG][       Thread-260628][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 16:12:08,634 [DEBUG][       Thread-260628][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 16:12:08,635 [DEBUG][       Thread-260628][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 16:12:08,650 [DEBUG][       Thread-260628][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 16:12:08,659 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 16:12:08,660 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 16:12:08,672 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 16:12:08,680 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 16:12:08,681 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 16:12:08,681 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 16:12:08,689 [DEBUG][       Thread-260628][   transport.py][1871] : EOF in transport thread
2025-06-13 16:12:10,710 [DEBUG][Thread-260630 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:12:15,492 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:12:15,493 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:12:18,692 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 16:12:18,692 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 16:12:18,692 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 16:12:18,695 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 16:12:19,158 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 16, 12, 4), 17.91, 28.56, 0.0, 21.03, 13.87, 0, 0, 0, 2, 0, 0),)
2025-06-13 16:12:19,158 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 16:12:04
2025-06-13 16:12:19,237 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 16:12:19,244 [DEBUG][       Thread-260631][   transport.py][1871] : starting thread (client mode): 0x863c8610
2025-06-13 16:12:19,244 [DEBUG][       Thread-260631][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 16:12:19,265 [DEBUG][       Thread-260631][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 16:12:19,265 [ INFO][       Thread-260631][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 16:12:19,268 [DEBUG][       Thread-260631][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 16:12:19,268 [DEBUG][       Thread-260631][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 16:12:19,268 [DEBUG][       Thread-260631][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 16:12:19,268 [DEBUG][       Thread-260631][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:12:19,268 [DEBUG][       Thread-260631][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:12:19,268 [DEBUG][       Thread-260631][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:12:19,268 [DEBUG][       Thread-260631][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:12:19,268 [DEBUG][       Thread-260631][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 16:12:19,268 [DEBUG][       Thread-260631][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 16:12:19,269 [DEBUG][       Thread-260631][   transport.py][1871] : client lang: <none>
2025-06-13 16:12:19,269 [DEBUG][       Thread-260631][   transport.py][1871] : server lang: <none>
2025-06-13 16:12:19,269 [DEBUG][       Thread-260631][   transport.py][1871] : kex follows: False
2025-06-13 16:12:19,269 [DEBUG][       Thread-260631][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 16:12:19,269 [DEBUG][       Thread-260631][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 16:12:19,269 [DEBUG][       Thread-260631][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 16:12:19,269 [DEBUG][       Thread-260631][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 16:12:19,269 [DEBUG][       Thread-260631][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 16:12:19,269 [DEBUG][       Thread-260631][   transport.py][1871] : Compression: none
2025-06-13 16:12:19,269 [DEBUG][       Thread-260631][   transport.py][1871] : === End of kex handshake ===
2025-06-13 16:12:19,286 [DEBUG][       Thread-260631][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 16:12:19,286 [DEBUG][       Thread-260631][   transport.py][1871] : Switch to new keys ...
2025-06-13 16:12:19,286 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 16:12:19,287 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 16:12:19,287 [DEBUG][       Thread-260631][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 16:12:19,288 [DEBUG][       Thread-260631][   transport.py][1871] : userauth is OK
2025-06-13 16:12:19,300 [ INFO][       Thread-260631][   transport.py][1871] : Authentication (password) successful!
2025-06-13 16:12:19,301 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 16:12:19,731 [DEBUG][Thread-260633 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:12:19,947 [DEBUG][       Thread-260631][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 16:12:19,947 [DEBUG][       Thread-260631][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 16:12:19,989 [DEBUG][       Thread-260631][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 16:12:19,989 [DEBUG][       Thread-260631][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 16:12:19,991 [DEBUG][       Thread-260631][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 16:12:20,004 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 16:12:20,004 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 16:12:20,006 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 16:12:20,008 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 16:12:20,012 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 16:12:20,014 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 16:12:20,014 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 16:12:20,015 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 16:12:20,015 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.591601 -999.00  +13.60  18.78     34   -1.60 1 1 1 1 1   887    0 14.93 -27.81 ----- 20.1 18.8 38.8 24.9 16.5 -31.3 15.7 -31.3 16.5 -30.3 17.4 -29.2
2025-06-13 16:12:20,015 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 16:12:20,015 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 16:12:20,015 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.591601
2025-06-13 16:12:20,015 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 16:12:20,016 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 16:12:20,016 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 16:12:20,016 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 16:12:20,016 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 16:12:20,016 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T16:12:04', tmtdew=17.91, humidity=28.56, cloud=0.0, wind=21.03, temperature=13.87, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T14:11:54.326', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 16:12:20,017 [DEBUG][       Thread-260631][   transport.py][1871] : EOF in transport thread
2025-06-13 16:12:20,099 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 16:12:20,117 [DEBUG][       Thread-260635][   transport.py][1871] : starting thread (client mode): 0x863bf7f0
2025-06-13 16:12:20,117 [DEBUG][       Thread-260635][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 16:12:20,136 [DEBUG][       Thread-260635][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 16:12:20,136 [ INFO][       Thread-260635][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 16:12:20,144 [DEBUG][       Thread-260635][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 16:12:20,144 [DEBUG][       Thread-260635][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 16:12:20,144 [DEBUG][       Thread-260635][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 16:12:20,144 [DEBUG][       Thread-260635][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:12:20,144 [DEBUG][       Thread-260635][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:12:20,144 [DEBUG][       Thread-260635][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:12:20,144 [DEBUG][       Thread-260635][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:12:20,144 [DEBUG][       Thread-260635][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 16:12:20,144 [DEBUG][       Thread-260635][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 16:12:20,144 [DEBUG][       Thread-260635][   transport.py][1871] : client lang: <none>
2025-06-13 16:12:20,144 [DEBUG][       Thread-260635][   transport.py][1871] : server lang: <none>
2025-06-13 16:12:20,145 [DEBUG][       Thread-260635][   transport.py][1871] : kex follows: False
2025-06-13 16:12:20,145 [DEBUG][       Thread-260635][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 16:12:20,145 [DEBUG][       Thread-260635][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 16:12:20,145 [DEBUG][       Thread-260635][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 16:12:20,145 [DEBUG][       Thread-260635][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 16:12:20,145 [DEBUG][       Thread-260635][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 16:12:20,145 [DEBUG][       Thread-260635][   transport.py][1871] : Compression: none
2025-06-13 16:12:20,145 [DEBUG][       Thread-260635][   transport.py][1871] : === End of kex handshake ===
2025-06-13 16:12:20,201 [DEBUG][       Thread-260635][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 16:12:20,202 [DEBUG][       Thread-260635][   transport.py][1871] : Switch to new keys ...
2025-06-13 16:12:20,202 [DEBUG][       Thread-260635][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 16:12:20,202 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 16:12:20,203 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 16:12:20,258 [DEBUG][       Thread-260635][   transport.py][1871] : userauth is OK
2025-06-13 16:12:20,258 [DEBUG][       Thread-260635][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 16:12:20,258 [DEBUG][       Thread-260635][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 16:12:20,258 [DEBUG][       Thread-260635][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 16:12:20,258 [DEBUG][       Thread-260635][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 16:12:20,277 [ INFO][       Thread-260635][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 16:12:20,277 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 16:12:20,278 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 16:12:20,744 [DEBUG][Thread-260570 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:12:21,259 [DEBUG][       Thread-260635][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 16:12:21,259 [DEBUG][       Thread-260635][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 16:12:21,307 [DEBUG][       Thread-260635][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 16:12:21,307 [DEBUG][       Thread-260635][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 16:12:21,316 [DEBUG][       Thread-260635][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 16:12:21,324 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 16:12:21,324 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 16:12:21,331 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 16:12:21,340 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 16:12:21,340 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 16:12:21,340 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 16:12:21,347 [DEBUG][       Thread-260635][   transport.py][1871] : EOF in transport thread
2025-06-13 16:12:22,881 [DEBUG][Thread-260637 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:12:28,751 [DEBUG][Thread-260638 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:12:31,350 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 16:12:31,350 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 16:12:31,359 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 16:12:31,362 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 16:12:31,811 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 16, 12, 4), 17.91, 28.56, 0.0, 21.03, 13.87, 0, 0, 0, 2, 0, 0),)
2025-06-13 16:12:31,812 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 16:12:04
2025-06-13 16:12:31,891 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 16:12:31,894 [DEBUG][       Thread-260639][   transport.py][1871] : starting thread (client mode): 0x863504f0
2025-06-13 16:12:31,894 [DEBUG][       Thread-260639][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 16:12:31,913 [DEBUG][       Thread-260639][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 16:12:31,913 [ INFO][       Thread-260639][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 16:12:31,917 [DEBUG][       Thread-260639][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 16:12:31,917 [DEBUG][       Thread-260639][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 16:12:31,917 [DEBUG][       Thread-260639][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 16:12:31,917 [DEBUG][       Thread-260639][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:12:31,917 [DEBUG][       Thread-260639][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:12:31,917 [DEBUG][       Thread-260639][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:12:31,917 [DEBUG][       Thread-260639][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:12:31,917 [DEBUG][       Thread-260639][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 16:12:31,917 [DEBUG][       Thread-260639][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 16:12:31,917 [DEBUG][       Thread-260639][   transport.py][1871] : client lang: <none>
2025-06-13 16:12:31,917 [DEBUG][       Thread-260639][   transport.py][1871] : server lang: <none>
2025-06-13 16:12:31,917 [DEBUG][       Thread-260639][   transport.py][1871] : kex follows: False
2025-06-13 16:12:31,917 [DEBUG][       Thread-260639][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 16:12:31,917 [DEBUG][       Thread-260639][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 16:12:31,917 [DEBUG][       Thread-260639][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 16:12:31,917 [DEBUG][       Thread-260639][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 16:12:31,917 [DEBUG][       Thread-260639][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 16:12:31,917 [DEBUG][       Thread-260639][   transport.py][1871] : Compression: none
2025-06-13 16:12:31,917 [DEBUG][       Thread-260639][   transport.py][1871] : === End of kex handshake ===
2025-06-13 16:12:31,934 [DEBUG][       Thread-260639][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 16:12:31,935 [DEBUG][       Thread-260639][   transport.py][1871] : Switch to new keys ...
2025-06-13 16:12:31,935 [DEBUG][       Thread-260639][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 16:12:31,935 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 16:12:31,935 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 16:12:31,937 [DEBUG][       Thread-260639][   transport.py][1871] : userauth is OK
2025-06-13 16:12:31,949 [ INFO][       Thread-260639][   transport.py][1871] : Authentication (password) successful!
2025-06-13 16:12:31,950 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 16:12:32,653 [DEBUG][       Thread-260639][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 16:12:32,653 [DEBUG][       Thread-260639][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 16:12:32,697 [DEBUG][       Thread-260639][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 16:12:32,697 [DEBUG][       Thread-260639][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 16:12:32,700 [DEBUG][       Thread-260639][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 16:12:32,712 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 16:12:32,713 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 16:12:32,715 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 16:12:32,717 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 16:12:32,722 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 16:12:32,724 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 16:12:32,724 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 16:12:32,725 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 16:12:32,725 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.591601 -999.00  +13.60  18.78     34   -1.60 1 1 1 1 1   887    0 14.93 -27.81 ----- 20.1 18.8 38.8 24.9 16.5 -31.3 15.7 -31.3 16.5 -30.3 17.4 -29.2
2025-06-13 16:12:32,725 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 16:12:32,725 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 16:12:32,725 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.591601
2025-06-13 16:12:32,726 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 16:12:32,726 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 16:12:32,726 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 16:12:32,726 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 16:12:32,726 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 16:12:32,727 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T16:12:04', tmtdew=17.91, humidity=28.56, cloud=0.0, wind=21.03, temperature=13.87, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T14:11:54.326', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 16:12:32,727 [DEBUG][       Thread-260639][   transport.py][1871] : EOF in transport thread
2025-06-13 16:12:32,810 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 16:12:32,820 [DEBUG][       Thread-260642][   transport.py][1871] : starting thread (client mode): 0x867fd780
2025-06-13 16:12:32,820 [DEBUG][       Thread-260642][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 16:12:32,835 [DEBUG][       Thread-260642][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 16:12:32,835 [ INFO][       Thread-260642][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 16:12:32,843 [DEBUG][       Thread-260642][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 16:12:32,843 [DEBUG][       Thread-260642][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 16:12:32,843 [DEBUG][       Thread-260642][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 16:12:32,843 [DEBUG][       Thread-260642][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:12:32,843 [DEBUG][       Thread-260642][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:12:32,843 [DEBUG][       Thread-260642][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:12:32,843 [DEBUG][       Thread-260642][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:12:32,843 [DEBUG][       Thread-260642][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 16:12:32,843 [DEBUG][       Thread-260642][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 16:12:32,843 [DEBUG][       Thread-260642][   transport.py][1871] : client lang: <none>
2025-06-13 16:12:32,843 [DEBUG][       Thread-260642][   transport.py][1871] : server lang: <none>
2025-06-13 16:12:32,843 [DEBUG][       Thread-260642][   transport.py][1871] : kex follows: False
2025-06-13 16:12:32,843 [DEBUG][       Thread-260642][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 16:12:32,843 [DEBUG][       Thread-260642][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 16:12:32,843 [DEBUG][       Thread-260642][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 16:12:32,843 [DEBUG][       Thread-260642][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 16:12:32,843 [DEBUG][       Thread-260642][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 16:12:32,843 [DEBUG][       Thread-260642][   transport.py][1871] : Compression: none
2025-06-13 16:12:32,843 [DEBUG][       Thread-260642][   transport.py][1871] : === End of kex handshake ===
2025-06-13 16:12:32,901 [DEBUG][       Thread-260642][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 16:12:32,901 [DEBUG][       Thread-260642][   transport.py][1871] : Switch to new keys ...
2025-06-13 16:12:32,901 [DEBUG][       Thread-260642][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 16:12:32,901 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 16:12:32,902 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 16:12:32,965 [DEBUG][       Thread-260642][   transport.py][1871] : userauth is OK
2025-06-13 16:12:32,965 [DEBUG][       Thread-260642][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 16:12:32,966 [DEBUG][       Thread-260642][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 16:12:32,966 [DEBUG][       Thread-260642][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 16:12:32,966 [DEBUG][       Thread-260642][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 16:12:32,984 [ INFO][       Thread-260642][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 16:12:32,984 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 16:12:32,985 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 16:12:33,980 [DEBUG][       Thread-260642][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 16:12:33,981 [DEBUG][       Thread-260642][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 16:12:34,036 [DEBUG][       Thread-260642][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 16:12:34,037 [DEBUG][       Thread-260642][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 16:12:34,049 [DEBUG][       Thread-260642][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 16:12:34,062 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 16:12:34,062 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 16:12:34,071 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 16:12:34,082 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 16:12:34,082 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 16:12:34,083 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 16:12:34,094 [DEBUG][       Thread-260642][   transport.py][1871] : EOF in transport thread
2025-06-13 16:12:37,508 [DEBUG][Thread-260644 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:12:37,786 [DEBUG][Thread-260645 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:12:38,545 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:12:38,546 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:12:43,212 [DEBUG][Thread-260570 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:12:44,092 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 16:12:44,092 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 16:12:44,092 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 16:12:44,096 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 16:12:44,545 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 16, 12, 36), 17.88, 28.82, 0.0, 15.37, 13.88, 0, 0, 0, 2, 0, 0),)
2025-06-13 16:12:44,545 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 16:12:36
2025-06-13 16:12:44,628 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 16:12:44,635 [DEBUG][       Thread-260646][   transport.py][1871] : starting thread (client mode): 0x867fc610
2025-06-13 16:12:44,635 [DEBUG][       Thread-260646][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 16:12:44,655 [DEBUG][       Thread-260646][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 16:12:44,655 [ INFO][       Thread-260646][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 16:12:44,659 [DEBUG][       Thread-260646][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 16:12:44,659 [DEBUG][       Thread-260646][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 16:12:44,659 [DEBUG][       Thread-260646][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 16:12:44,659 [DEBUG][       Thread-260646][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:12:44,659 [DEBUG][       Thread-260646][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:12:44,659 [DEBUG][       Thread-260646][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:12:44,659 [DEBUG][       Thread-260646][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:12:44,659 [DEBUG][       Thread-260646][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 16:12:44,659 [DEBUG][       Thread-260646][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 16:12:44,659 [DEBUG][       Thread-260646][   transport.py][1871] : client lang: <none>
2025-06-13 16:12:44,659 [DEBUG][       Thread-260646][   transport.py][1871] : server lang: <none>
2025-06-13 16:12:44,659 [DEBUG][       Thread-260646][   transport.py][1871] : kex follows: False
2025-06-13 16:12:44,659 [DEBUG][       Thread-260646][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 16:12:44,659 [DEBUG][       Thread-260646][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 16:12:44,659 [DEBUG][       Thread-260646][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 16:12:44,659 [DEBUG][       Thread-260646][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 16:12:44,659 [DEBUG][       Thread-260646][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 16:12:44,659 [DEBUG][       Thread-260646][   transport.py][1871] : Compression: none
2025-06-13 16:12:44,659 [DEBUG][       Thread-260646][   transport.py][1871] : === End of kex handshake ===
2025-06-13 16:12:44,676 [DEBUG][       Thread-260646][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 16:12:44,677 [DEBUG][       Thread-260646][   transport.py][1871] : Switch to new keys ...
2025-06-13 16:12:44,677 [DEBUG][       Thread-260646][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 16:12:44,678 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 16:12:44,678 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 16:12:44,679 [DEBUG][       Thread-260646][   transport.py][1871] : userauth is OK
2025-06-13 16:12:44,692 [ INFO][       Thread-260646][   transport.py][1871] : Authentication (password) successful!
2025-06-13 16:12:44,693 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 16:12:45,349 [DEBUG][       Thread-260646][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 16:12:45,349 [DEBUG][       Thread-260646][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 16:12:45,393 [DEBUG][       Thread-260646][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 16:12:45,393 [DEBUG][       Thread-260646][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 16:12:45,396 [DEBUG][       Thread-260646][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 16:12:45,408 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 16:12:45,408 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 16:12:45,410 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 16:12:45,412 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 16:12:45,417 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 16:12:45,419 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 16:12:45,419 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 16:12:45,420 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 16:12:45,420 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.591949 -999.00  +13.60  21.63     34   -1.70 1 1 1 1 1   887    0 15.09 -27.26 ----- 19.4 21.6 47.0 24.7 16.5 -30.7 15.8 -31.4 16.6 -30.4 17.4 -29.0
2025-06-13 16:12:45,420 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 16:12:45,420 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 16:12:45,421 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.591949
2025-06-13 16:12:45,421 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 16:12:45,422 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 16:12:45,422 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 16:12:45,422 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 16:12:45,422 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 16:12:45,423 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T16:12:36', tmtdew=17.88, humidity=28.82, cloud=0.0, wind=15.37, temperature=13.88, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T14:12:24.394', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 16:12:45,424 [DEBUG][       Thread-260646][   transport.py][1871] : EOF in transport thread
2025-06-13 16:12:45,500 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 16:12:45,512 [DEBUG][       Thread-260649][   transport.py][1871] : starting thread (client mode): 0x863beda0
2025-06-13 16:12:45,512 [DEBUG][       Thread-260649][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 16:12:45,526 [DEBUG][       Thread-260649][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 16:12:45,526 [ INFO][       Thread-260649][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 16:12:45,534 [DEBUG][       Thread-260649][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 16:12:45,534 [DEBUG][       Thread-260649][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 16:12:45,534 [DEBUG][       Thread-260649][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 16:12:45,534 [DEBUG][       Thread-260649][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:12:45,535 [DEBUG][       Thread-260649][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:12:45,535 [DEBUG][       Thread-260649][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:12:45,535 [DEBUG][       Thread-260649][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:12:45,535 [DEBUG][       Thread-260649][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 16:12:45,535 [DEBUG][       Thread-260649][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 16:12:45,535 [DEBUG][       Thread-260649][   transport.py][1871] : client lang: <none>
2025-06-13 16:12:45,535 [DEBUG][       Thread-260649][   transport.py][1871] : server lang: <none>
2025-06-13 16:12:45,535 [DEBUG][       Thread-260649][   transport.py][1871] : kex follows: False
2025-06-13 16:12:45,535 [DEBUG][       Thread-260649][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 16:12:45,535 [DEBUG][       Thread-260649][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 16:12:45,535 [DEBUG][       Thread-260649][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 16:12:45,535 [DEBUG][       Thread-260649][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 16:12:45,535 [DEBUG][       Thread-260649][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 16:12:45,535 [DEBUG][       Thread-260649][   transport.py][1871] : Compression: none
2025-06-13 16:12:45,535 [DEBUG][       Thread-260649][   transport.py][1871] : === End of kex handshake ===
2025-06-13 16:12:45,594 [DEBUG][       Thread-260649][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 16:12:45,594 [DEBUG][       Thread-260649][   transport.py][1871] : Switch to new keys ...
2025-06-13 16:12:45,595 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 16:12:45,595 [DEBUG][       Thread-260649][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 16:12:45,596 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 16:12:45,656 [DEBUG][       Thread-260649][   transport.py][1871] : userauth is OK
2025-06-13 16:12:45,656 [DEBUG][       Thread-260649][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 16:12:45,656 [DEBUG][       Thread-260649][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 16:12:45,656 [DEBUG][       Thread-260649][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 16:12:45,656 [DEBUG][       Thread-260649][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 16:12:45,675 [ INFO][       Thread-260649][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 16:12:45,676 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 16:12:45,676 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 16:12:46,732 [DEBUG][       Thread-260649][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 16:12:46,733 [DEBUG][       Thread-260649][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 16:12:46,786 [DEBUG][       Thread-260649][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 16:12:46,787 [DEBUG][       Thread-260649][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 16:12:46,796 [DEBUG][       Thread-260649][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 16:12:46,805 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 16:12:46,805 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 16:12:46,806 [DEBUG][Thread-260651 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:12:46,814 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 16:12:46,822 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 16:12:46,823 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 16:12:46,823 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 16:12:46,831 [DEBUG][       Thread-260649][   transport.py][1871] : EOF in transport thread
2025-06-13 16:12:55,849 [DEBUG][Thread-260652 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:12:56,834 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 16:12:56,834 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 16:12:56,834 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 16:12:56,837 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 16:12:57,285 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 16, 12, 36), 17.88, 28.82, 0.0, 15.37, 13.88, 0, 0, 0, 2, 0, 0),)
2025-06-13 16:12:57,285 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 16:12:36
2025-06-13 16:12:57,367 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 16:12:57,371 [DEBUG][       Thread-260653][   transport.py][1871] : starting thread (client mode): 0x86352080
2025-06-13 16:12:57,371 [DEBUG][       Thread-260653][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 16:12:57,391 [DEBUG][       Thread-260653][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 16:12:57,392 [ INFO][       Thread-260653][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 16:12:57,395 [DEBUG][       Thread-260653][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 16:12:57,395 [DEBUG][       Thread-260653][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 16:12:57,395 [DEBUG][       Thread-260653][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 16:12:57,395 [DEBUG][       Thread-260653][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:12:57,395 [DEBUG][       Thread-260653][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:12:57,395 [DEBUG][       Thread-260653][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:12:57,395 [DEBUG][       Thread-260653][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:12:57,395 [DEBUG][       Thread-260653][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 16:12:57,395 [DEBUG][       Thread-260653][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 16:12:57,395 [DEBUG][       Thread-260653][   transport.py][1871] : client lang: <none>
2025-06-13 16:12:57,395 [DEBUG][       Thread-260653][   transport.py][1871] : server lang: <none>
2025-06-13 16:12:57,395 [DEBUG][       Thread-260653][   transport.py][1871] : kex follows: False
2025-06-13 16:12:57,395 [DEBUG][       Thread-260653][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 16:12:57,395 [DEBUG][       Thread-260653][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 16:12:57,395 [DEBUG][       Thread-260653][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 16:12:57,395 [DEBUG][       Thread-260653][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 16:12:57,395 [DEBUG][       Thread-260653][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 16:12:57,395 [DEBUG][       Thread-260653][   transport.py][1871] : Compression: none
2025-06-13 16:12:57,395 [DEBUG][       Thread-260653][   transport.py][1871] : === End of kex handshake ===
2025-06-13 16:12:57,413 [DEBUG][       Thread-260653][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 16:12:57,414 [DEBUG][       Thread-260653][   transport.py][1871] : Switch to new keys ...
2025-06-13 16:12:57,414 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 16:12:57,415 [DEBUG][       Thread-260653][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 16:12:57,415 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 16:12:57,416 [DEBUG][       Thread-260653][   transport.py][1871] : userauth is OK
2025-06-13 16:12:57,430 [ INFO][       Thread-260653][   transport.py][1871] : Authentication (password) successful!
2025-06-13 16:12:57,430 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 16:12:58,054 [DEBUG][       Thread-260653][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 16:12:58,055 [DEBUG][       Thread-260653][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 16:12:58,103 [DEBUG][       Thread-260653][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 16:12:58,103 [DEBUG][       Thread-260653][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 16:12:58,107 [DEBUG][       Thread-260653][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 16:12:58,118 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 16:12:58,119 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 16:12:58,121 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 16:12:58,123 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 16:12:58,129 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 16:12:58,131 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 16:12:58,131 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 16:12:58,132 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 16:12:58,132 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.591949 -999.00  +13.60  21.63     34   -1.70 1 1 1 1 1   887    0 15.09 -27.26 ----- 19.4 21.6 47.0 24.7 16.5 -30.7 15.8 -31.4 16.6 -30.4 17.4 -29.0
2025-06-13 16:12:58,132 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 16:12:58,132 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 16:12:58,132 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.591949
2025-06-13 16:12:58,132 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 16:12:58,133 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 16:12:58,133 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 16:12:58,133 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 16:12:58,133 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 16:12:58,133 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T16:12:36', tmtdew=17.88, humidity=28.82, cloud=0.0, wind=15.37, temperature=13.88, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T14:12:24.394', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 16:12:58,134 [DEBUG][       Thread-260653][   transport.py][1871] : EOF in transport thread
2025-06-13 16:12:58,217 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 16:12:58,226 [DEBUG][       Thread-260656][   transport.py][1871] : starting thread (client mode): 0x867b63b0
2025-06-13 16:12:58,226 [DEBUG][       Thread-260656][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 16:12:58,242 [DEBUG][       Thread-260656][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 16:12:58,242 [ INFO][       Thread-260656][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 16:12:58,250 [DEBUG][       Thread-260656][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 16:12:58,250 [DEBUG][       Thread-260656][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 16:12:58,250 [DEBUG][       Thread-260656][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 16:12:58,250 [DEBUG][       Thread-260656][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:12:58,250 [DEBUG][       Thread-260656][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:12:58,250 [DEBUG][       Thread-260656][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:12:58,250 [DEBUG][       Thread-260656][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:12:58,250 [DEBUG][       Thread-260656][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 16:12:58,250 [DEBUG][       Thread-260656][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 16:12:58,250 [DEBUG][       Thread-260656][   transport.py][1871] : client lang: <none>
2025-06-13 16:12:58,250 [DEBUG][       Thread-260656][   transport.py][1871] : server lang: <none>
2025-06-13 16:12:58,250 [DEBUG][       Thread-260656][   transport.py][1871] : kex follows: False
2025-06-13 16:12:58,250 [DEBUG][       Thread-260656][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 16:12:58,250 [DEBUG][       Thread-260656][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 16:12:58,250 [DEBUG][       Thread-260656][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 16:12:58,250 [DEBUG][       Thread-260656][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 16:12:58,250 [DEBUG][       Thread-260656][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 16:12:58,250 [DEBUG][       Thread-260656][   transport.py][1871] : Compression: none
2025-06-13 16:12:58,250 [DEBUG][       Thread-260656][   transport.py][1871] : === End of kex handshake ===
2025-06-13 16:12:58,310 [DEBUG][       Thread-260656][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 16:12:58,310 [DEBUG][       Thread-260656][   transport.py][1871] : Switch to new keys ...
2025-06-13 16:12:58,311 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 16:12:58,311 [DEBUG][       Thread-260656][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 16:12:58,312 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 16:12:58,366 [DEBUG][       Thread-260656][   transport.py][1871] : userauth is OK
2025-06-13 16:12:58,366 [DEBUG][       Thread-260656][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 16:12:58,366 [DEBUG][       Thread-260656][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 16:12:58,366 [DEBUG][       Thread-260656][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 16:12:58,366 [DEBUG][       Thread-260656][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 16:12:58,384 [ INFO][       Thread-260656][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 16:12:58,384 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 16:12:58,385 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 16:12:59,406 [DEBUG][       Thread-260656][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 16:12:59,406 [DEBUG][       Thread-260656][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 16:12:59,458 [DEBUG][       Thread-260656][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 16:12:59,458 [DEBUG][       Thread-260656][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 16:12:59,478 [DEBUG][       Thread-260656][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 16:12:59,488 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 16:12:59,488 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 16:12:59,499 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 16:12:59,510 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 16:12:59,510 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 16:12:59,510 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 16:12:59,521 [DEBUG][       Thread-260656][   transport.py][1871] : EOF in transport thread
2025-06-13 16:13:04,868 [DEBUG][Thread-260658 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:13:05,819 [DEBUG][Thread-260570 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:13:09,520 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 16:13:09,520 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 16:13:09,520 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 16:13:09,521 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 16:13:10,011 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 16, 12, 36), 17.88, 28.82, 0.0, 15.37, 13.88, 0, 0, 0, 2, 0, 0),)
2025-06-13 16:13:10,011 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 16:12:36
2025-06-13 16:13:10,097 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 16:13:10,105 [DEBUG][       Thread-260659][   transport.py][1871] : starting thread (client mode): 0x86369780
2025-06-13 16:13:10,105 [DEBUG][       Thread-260659][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 16:13:10,125 [DEBUG][       Thread-260659][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 16:13:10,125 [ INFO][       Thread-260659][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 16:13:10,128 [DEBUG][       Thread-260659][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 16:13:10,128 [DEBUG][       Thread-260659][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 16:13:10,128 [DEBUG][       Thread-260659][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 16:13:10,128 [DEBUG][       Thread-260659][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:13:10,128 [DEBUG][       Thread-260659][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:13:10,128 [DEBUG][       Thread-260659][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:13:10,128 [DEBUG][       Thread-260659][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:13:10,128 [DEBUG][       Thread-260659][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 16:13:10,128 [DEBUG][       Thread-260659][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 16:13:10,128 [DEBUG][       Thread-260659][   transport.py][1871] : client lang: <none>
2025-06-13 16:13:10,128 [DEBUG][       Thread-260659][   transport.py][1871] : server lang: <none>
2025-06-13 16:13:10,129 [DEBUG][       Thread-260659][   transport.py][1871] : kex follows: False
2025-06-13 16:13:10,129 [DEBUG][       Thread-260659][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 16:13:10,129 [DEBUG][       Thread-260659][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 16:13:10,129 [DEBUG][       Thread-260659][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 16:13:10,129 [DEBUG][       Thread-260659][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 16:13:10,129 [DEBUG][       Thread-260659][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 16:13:10,129 [DEBUG][       Thread-260659][   transport.py][1871] : Compression: none
2025-06-13 16:13:10,129 [DEBUG][       Thread-260659][   transport.py][1871] : === End of kex handshake ===
2025-06-13 16:13:10,139 [DEBUG][       Thread-260659][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 16:13:10,139 [DEBUG][       Thread-260659][   transport.py][1871] : Switch to new keys ...
2025-06-13 16:13:10,139 [DEBUG][       Thread-260659][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 16:13:10,140 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 16:13:10,140 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 16:13:10,140 [DEBUG][       Thread-260659][   transport.py][1871] : userauth is OK
2025-06-13 16:13:10,165 [ INFO][       Thread-260659][   transport.py][1871] : Authentication (password) successful!
2025-06-13 16:13:10,165 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 16:13:10,734 [DEBUG][       Thread-260659][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 16:13:10,735 [DEBUG][       Thread-260659][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 16:13:10,777 [DEBUG][       Thread-260659][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 16:13:10,777 [DEBUG][       Thread-260659][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 16:13:10,779 [DEBUG][       Thread-260659][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 16:13:10,791 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 16:13:10,792 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 16:13:10,799 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 16:13:10,803 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 16:13:10,816 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 16:13:10,819 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 16:13:10,819 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 16:13:10,820 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 16:13:10,820 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.591949 -999.00  +13.60  21.63     34   -1.70 1 1 1 1 1   887    0 15.09 -27.26 ----- 19.4 21.6 47.0 24.7 16.5 -30.7 15.8 -31.4 16.6 -30.4 17.4 -29.0
2025-06-13 16:13:10,820 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 16:13:10,820 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 16:13:10,820 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.591949
2025-06-13 16:13:10,821 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 16:13:10,821 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 16:13:10,822 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 16:13:10,822 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 16:13:10,822 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 16:13:10,822 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T16:12:36', tmtdew=17.88, humidity=28.82, cloud=0.0, wind=15.37, temperature=13.88, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T14:12:24.394', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 16:13:10,823 [DEBUG][       Thread-260659][   transport.py][1871] : EOF in transport thread
2025-06-13 16:13:10,907 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 16:13:13,890 [DEBUG][Thread-260662 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:13:15,632 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:13:15,634 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:13:22,910 [DEBUG][Thread-260663 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:13:22,912 [DEBUG][Thread-260664 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:13:28,401 [DEBUG][Thread-260570 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:13:31,929 [DEBUG][Thread-260665 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:13:38,614 [DEBUG][Thread-260666 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:13:39,648 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:13:39,648 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:13:40,945 [DEBUG][Thread-260667 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:13:49,967 [DEBUG][Thread-260668 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:13:51,017 [DEBUG][Thread-260570 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:13:58,990 [DEBUG][Thread-260669 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:14:08,012 [DEBUG][Thread-260670 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:14:13,611 [DEBUG][Thread-260570 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:14:15,773 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:14:15,774 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:14:17,028 [DEBUG][Thread-260671 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:14:22,957 [DEBUG][Thread-260672 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:14:26,048 [DEBUG][Thread-260673 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:14:35,068 [DEBUG][Thread-260674 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:14:36,131 [DEBUG][Thread-260570 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:14:39,715 [DEBUG][Thread-260675 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:14:40,768 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:14:40,769 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:14:44,088 [DEBUG][Thread-260676 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:14:53,108 [DEBUG][Thread-260677 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:14:58,630 [DEBUG][Thread-260570 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:15:02,127 [DEBUG][Thread-260678 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:15:11,153 [DEBUG][Thread-260679 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:15:15,912 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:15:15,913 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:15:20,173 [DEBUG][Thread-260680 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:15:21,108 [WARNING][ poll_weather_worker][      driver.py][ 286] : Unable to open ssh connection for writing weather state to io.saao.ac.za: [Errno 110] Connection timed out
2025-06-13 16:15:21,146 [DEBUG][Thread-260570 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:15:22,989 [DEBUG][Thread-260681 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:15:29,196 [DEBUG][Thread-260682 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:15:31,119 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 16:15:31,119 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 16:15:31,119 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 16:15:31,122 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 16:15:31,604 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 16, 15, 15), 17.45, 29.83, 0.0, 17.15, 13.9, 0, 0, 0, 2, 0, 0),)
2025-06-13 16:15:31,604 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 16:15:15
2025-06-13 16:15:31,686 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 16:15:31,691 [DEBUG][       Thread-260683][   transport.py][1871] : starting thread (client mode): 0x8636ae90
2025-06-13 16:15:31,691 [DEBUG][       Thread-260683][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 16:15:31,707 [DEBUG][       Thread-260683][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 16:15:31,707 [ INFO][       Thread-260683][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 16:15:31,711 [DEBUG][       Thread-260683][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 16:15:31,711 [DEBUG][       Thread-260683][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 16:15:31,711 [DEBUG][       Thread-260683][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 16:15:31,711 [DEBUG][       Thread-260683][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:15:31,711 [DEBUG][       Thread-260683][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:15:31,711 [DEBUG][       Thread-260683][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:15:31,711 [DEBUG][       Thread-260683][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:15:31,711 [DEBUG][       Thread-260683][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 16:15:31,711 [DEBUG][       Thread-260683][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 16:15:31,711 [DEBUG][       Thread-260683][   transport.py][1871] : client lang: <none>
2025-06-13 16:15:31,711 [DEBUG][       Thread-260683][   transport.py][1871] : server lang: <none>
2025-06-13 16:15:31,711 [DEBUG][       Thread-260683][   transport.py][1871] : kex follows: False
2025-06-13 16:15:31,711 [DEBUG][       Thread-260683][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 16:15:31,711 [DEBUG][       Thread-260683][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 16:15:31,711 [DEBUG][       Thread-260683][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 16:15:31,711 [DEBUG][       Thread-260683][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 16:15:31,711 [DEBUG][       Thread-260683][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 16:15:31,711 [DEBUG][       Thread-260683][   transport.py][1871] : Compression: none
2025-06-13 16:15:31,711 [DEBUG][       Thread-260683][   transport.py][1871] : === End of kex handshake ===
2025-06-13 16:15:31,728 [DEBUG][       Thread-260683][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 16:15:31,729 [DEBUG][       Thread-260683][   transport.py][1871] : Switch to new keys ...
2025-06-13 16:15:31,729 [DEBUG][       Thread-260683][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 16:15:31,729 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 16:15:31,729 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 16:15:31,730 [DEBUG][       Thread-260683][   transport.py][1871] : userauth is OK
2025-06-13 16:15:31,744 [ INFO][       Thread-260683][   transport.py][1871] : Authentication (password) successful!
2025-06-13 16:15:31,745 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 16:15:32,377 [DEBUG][       Thread-260683][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 16:15:32,378 [DEBUG][       Thread-260683][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 16:15:32,421 [DEBUG][       Thread-260683][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 16:15:32,421 [DEBUG][       Thread-260683][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 16:15:32,423 [DEBUG][       Thread-260683][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 16:15:32,436 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 16:15:32,436 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 16:15:32,438 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 16:15:32,439 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 16:15:32,443 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 16:15:32,443 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 16:15:32,443 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 16:15:32,444 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 16:15:32,444 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.593685 -999.00  +13.70  22.85     34   -1.70 1 1 1 1 1   887    0 14.53 -36.36 ----- 24.8 22.9 37.2 26.7 16.6 -30.9 15.8 -31.1 16.6 -30.9 17.6 -28.9
2025-06-13 16:15:32,444 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 16:15:32,444 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 16:15:32,444 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.593685
2025-06-13 16:15:32,444 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 16:15:32,444 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 16:15:32,444 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 16:15:32,444 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 16:15:32,444 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 16:15:32,444 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T16:15:15', tmtdew=17.45, humidity=29.83, cloud=0.0, wind=17.15, temperature=13.9, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T14:14:54.384', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 16:15:32,445 [DEBUG][       Thread-260683][   transport.py][1871] : EOF in transport thread
2025-06-13 16:15:32,516 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 16:15:32,528 [DEBUG][       Thread-260686][   transport.py][1871] : starting thread (client mode): 0x863efac0
2025-06-13 16:15:32,528 [DEBUG][       Thread-260686][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 16:15:32,543 [DEBUG][       Thread-260686][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 16:15:32,543 [ INFO][       Thread-260686][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 16:15:32,551 [DEBUG][       Thread-260686][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 16:15:32,551 [DEBUG][       Thread-260686][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 16:15:32,551 [DEBUG][       Thread-260686][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 16:15:32,551 [DEBUG][       Thread-260686][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:15:32,551 [DEBUG][       Thread-260686][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:15:32,551 [DEBUG][       Thread-260686][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:15:32,551 [DEBUG][       Thread-260686][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:15:32,551 [DEBUG][       Thread-260686][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 16:15:32,551 [DEBUG][       Thread-260686][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 16:15:32,551 [DEBUG][       Thread-260686][   transport.py][1871] : client lang: <none>
2025-06-13 16:15:32,551 [DEBUG][       Thread-260686][   transport.py][1871] : server lang: <none>
2025-06-13 16:15:32,551 [DEBUG][       Thread-260686][   transport.py][1871] : kex follows: False
2025-06-13 16:15:32,551 [DEBUG][       Thread-260686][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 16:15:32,551 [DEBUG][       Thread-260686][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 16:15:32,551 [DEBUG][       Thread-260686][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 16:15:32,551 [DEBUG][       Thread-260686][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 16:15:32,551 [DEBUG][       Thread-260686][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 16:15:32,551 [DEBUG][       Thread-260686][   transport.py][1871] : Compression: none
2025-06-13 16:15:32,551 [DEBUG][       Thread-260686][   transport.py][1871] : === End of kex handshake ===
2025-06-13 16:15:32,609 [DEBUG][       Thread-260686][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 16:15:32,609 [DEBUG][       Thread-260686][   transport.py][1871] : Switch to new keys ...
2025-06-13 16:15:32,609 [DEBUG][       Thread-260686][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 16:15:32,609 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 16:15:32,609 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 16:15:32,665 [DEBUG][       Thread-260686][   transport.py][1871] : userauth is OK
2025-06-13 16:15:32,665 [DEBUG][       Thread-260686][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 16:15:32,665 [DEBUG][       Thread-260686][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 16:15:32,665 [DEBUG][       Thread-260686][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 16:15:32,665 [DEBUG][       Thread-260686][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 16:15:32,679 [ INFO][       Thread-260686][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 16:15:32,680 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 16:15:32,680 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 16:15:33,638 [DEBUG][       Thread-260686][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 16:15:33,638 [DEBUG][       Thread-260686][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 16:15:33,687 [DEBUG][       Thread-260686][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 16:15:33,687 [DEBUG][       Thread-260686][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 16:15:33,695 [DEBUG][       Thread-260686][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 16:15:33,704 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 16:15:33,704 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 16:15:33,712 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 16:15:33,720 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 16:15:33,720 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 16:15:33,720 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 16:15:33,728 [DEBUG][       Thread-260686][   transport.py][1871] : EOF in transport thread
2025-06-13 16:15:38,216 [DEBUG][Thread-260688 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:15:40,819 [DEBUG][Thread-260689 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:15:41,871 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:15:41,873 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:15:43,708 [DEBUG][Thread-260570 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:15:43,728 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 16:15:43,728 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 16:15:43,728 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 16:15:43,731 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 16:15:44,048 [DEBUG][Thread-260570 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:15:44,219 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 16, 15, 15), 17.45, 29.83, 0.0, 17.15, 13.9, 0, 0, 0, 2, 0, 0),)
2025-06-13 16:15:44,219 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 16:15:15
2025-06-13 16:15:44,301 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 16:15:44,306 [DEBUG][       Thread-260690][   transport.py][1871] : starting thread (client mode): 0x86392740
2025-06-13 16:15:44,306 [DEBUG][       Thread-260690][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 16:15:44,326 [DEBUG][       Thread-260690][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 16:15:44,326 [ INFO][       Thread-260690][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 16:15:44,330 [DEBUG][       Thread-260690][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 16:15:44,330 [DEBUG][       Thread-260690][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 16:15:44,330 [DEBUG][       Thread-260690][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 16:15:44,330 [DEBUG][       Thread-260690][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:15:44,330 [DEBUG][       Thread-260690][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:15:44,330 [DEBUG][       Thread-260690][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:15:44,330 [DEBUG][       Thread-260690][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:15:44,330 [DEBUG][       Thread-260690][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 16:15:44,330 [DEBUG][       Thread-260690][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 16:15:44,330 [DEBUG][       Thread-260690][   transport.py][1871] : client lang: <none>
2025-06-13 16:15:44,330 [DEBUG][       Thread-260690][   transport.py][1871] : server lang: <none>
2025-06-13 16:15:44,330 [DEBUG][       Thread-260690][   transport.py][1871] : kex follows: False
2025-06-13 16:15:44,330 [DEBUG][       Thread-260690][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 16:15:44,330 [DEBUG][       Thread-260690][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 16:15:44,330 [DEBUG][       Thread-260690][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 16:15:44,330 [DEBUG][       Thread-260690][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 16:15:44,330 [DEBUG][       Thread-260690][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 16:15:44,330 [DEBUG][       Thread-260690][   transport.py][1871] : Compression: none
2025-06-13 16:15:44,330 [DEBUG][       Thread-260690][   transport.py][1871] : === End of kex handshake ===
2025-06-13 16:15:44,347 [DEBUG][       Thread-260690][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 16:15:44,347 [DEBUG][       Thread-260690][   transport.py][1871] : Switch to new keys ...
2025-06-13 16:15:44,348 [DEBUG][       Thread-260690][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 16:15:44,348 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 16:15:44,348 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 16:15:44,391 [DEBUG][       Thread-260690][   transport.py][1871] : userauth is OK
2025-06-13 16:15:44,416 [ INFO][       Thread-260690][   transport.py][1871] : Authentication (password) successful!
2025-06-13 16:15:44,417 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 16:15:45,211 [DEBUG][       Thread-260690][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 16:15:45,212 [DEBUG][       Thread-260690][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 16:15:45,253 [DEBUG][       Thread-260690][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 16:15:45,253 [DEBUG][       Thread-260690][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 16:15:45,257 [DEBUG][       Thread-260690][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 16:15:45,270 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 16:15:45,270 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 16:15:45,272 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 16:15:45,274 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 16:15:45,279 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 16:15:45,282 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 16:15:45,282 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 16:15:45,282 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 16:15:45,283 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.593685 -999.00  +13.70  22.85     34   -1.70 1 1 1 1 1   887    0 14.53 -36.36 ----- 24.8 22.9 37.2 26.7 16.6 -30.9 15.8 -31.1 16.6 -30.9 17.6 -28.9
2025-06-13 16:15:45,283 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 16:15:45,283 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 16:15:45,283 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.593685
2025-06-13 16:15:45,283 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 16:15:45,284 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 16:15:45,284 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 16:15:45,284 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 16:15:45,284 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 16:15:45,284 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T16:15:15', tmtdew=17.45, humidity=29.83, cloud=0.0, wind=17.15, temperature=13.9, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T14:14:54.384', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 16:15:45,284 [DEBUG][       Thread-260690][   transport.py][1871] : EOF in transport thread
2025-06-13 16:15:45,368 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 16:15:45,377 [DEBUG][       Thread-260693][   transport.py][1871] : starting thread (client mode): 0x86893a60
2025-06-13 16:15:45,377 [DEBUG][       Thread-260693][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 16:15:45,394 [DEBUG][       Thread-260693][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 16:15:45,394 [ INFO][       Thread-260693][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 16:15:45,404 [DEBUG][       Thread-260693][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 16:15:45,404 [DEBUG][       Thread-260693][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 16:15:45,404 [DEBUG][       Thread-260693][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 16:15:45,404 [DEBUG][       Thread-260693][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:15:45,404 [DEBUG][       Thread-260693][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:15:45,404 [DEBUG][       Thread-260693][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:15:45,404 [DEBUG][       Thread-260693][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:15:45,404 [DEBUG][       Thread-260693][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 16:15:45,404 [DEBUG][       Thread-260693][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 16:15:45,404 [DEBUG][       Thread-260693][   transport.py][1871] : client lang: <none>
2025-06-13 16:15:45,404 [DEBUG][       Thread-260693][   transport.py][1871] : server lang: <none>
2025-06-13 16:15:45,404 [DEBUG][       Thread-260693][   transport.py][1871] : kex follows: False
2025-06-13 16:15:45,404 [DEBUG][       Thread-260693][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 16:15:45,404 [DEBUG][       Thread-260693][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 16:15:45,404 [DEBUG][       Thread-260693][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 16:15:45,404 [DEBUG][       Thread-260693][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 16:15:45,405 [DEBUG][       Thread-260693][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 16:15:45,405 [DEBUG][       Thread-260693][   transport.py][1871] : Compression: none
2025-06-13 16:15:45,405 [DEBUG][       Thread-260693][   transport.py][1871] : === End of kex handshake ===
2025-06-13 16:15:45,462 [DEBUG][       Thread-260693][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 16:15:45,462 [DEBUG][       Thread-260693][   transport.py][1871] : Switch to new keys ...
2025-06-13 16:15:45,463 [DEBUG][       Thread-260693][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 16:15:45,463 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 16:15:45,464 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 16:15:45,518 [DEBUG][       Thread-260693][   transport.py][1871] : userauth is OK
2025-06-13 16:15:45,518 [DEBUG][       Thread-260693][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 16:15:45,518 [DEBUG][       Thread-260693][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 16:15:45,518 [DEBUG][       Thread-260693][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 16:15:45,518 [DEBUG][       Thread-260693][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 16:15:45,541 [ INFO][       Thread-260693][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 16:15:45,541 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 16:15:45,542 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 16:15:46,445 [DEBUG][Thread-260570 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:15:46,554 [DEBUG][       Thread-260693][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 16:15:46,554 [DEBUG][       Thread-260693][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 16:15:46,605 [DEBUG][       Thread-260693][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 16:15:46,606 [DEBUG][       Thread-260693][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 16:15:46,618 [DEBUG][       Thread-260693][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 16:15:46,632 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 16:15:46,633 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 16:15:46,646 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 16:15:46,656 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 16:15:46,656 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 16:15:46,656 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 16:15:46,665 [DEBUG][       Thread-260693][   transport.py][1871] : EOF in transport thread
2025-06-13 16:15:46,887 [DEBUG][Thread-260570 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:15:47,250 [DEBUG][Thread-260695 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:15:47,297 [DEBUG][Thread-260570 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:15:48,686 [DEBUG][Thread-260570 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:15:49,106 [DEBUG][Thread-260570 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:15:49,523 [DEBUG][Thread-260570 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:15:49,933 [DEBUG][Thread-260570 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:15:51,357 [DEBUG][Thread-260570 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:15:51,739 [DEBUG][Thread-260570 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:15:53,157 [DEBUG][Thread-260570 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:15:53,571 [DEBUG][Thread-260570 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:15:56,271 [DEBUG][Thread-260696 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:15:56,667 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 16:15:56,667 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 16:15:56,667 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 16:15:56,670 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 16:15:57,142 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 16, 15, 46), 17.48, 29.76, 0.0, 19.25, 13.87, 0, 0, 0, 2, 0, 0),)
2025-06-13 16:15:57,142 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 16:15:46
2025-06-13 16:15:57,224 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 16:15:57,228 [DEBUG][       Thread-260697][   transport.py][1871] : starting thread (client mode): 0x8636ae90
2025-06-13 16:15:57,228 [DEBUG][       Thread-260697][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 16:15:57,250 [DEBUG][       Thread-260697][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 16:15:57,250 [ INFO][       Thread-260697][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 16:15:57,253 [DEBUG][       Thread-260697][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 16:15:57,253 [DEBUG][       Thread-260697][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 16:15:57,253 [DEBUG][       Thread-260697][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 16:15:57,253 [DEBUG][       Thread-260697][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:15:57,253 [DEBUG][       Thread-260697][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:15:57,253 [DEBUG][       Thread-260697][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:15:57,254 [DEBUG][       Thread-260697][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:15:57,254 [DEBUG][       Thread-260697][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 16:15:57,254 [DEBUG][       Thread-260697][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 16:15:57,254 [DEBUG][       Thread-260697][   transport.py][1871] : client lang: <none>
2025-06-13 16:15:57,254 [DEBUG][       Thread-260697][   transport.py][1871] : server lang: <none>
2025-06-13 16:15:57,254 [DEBUG][       Thread-260697][   transport.py][1871] : kex follows: False
2025-06-13 16:15:57,254 [DEBUG][       Thread-260697][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 16:15:57,254 [DEBUG][       Thread-260697][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 16:15:57,254 [DEBUG][       Thread-260697][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 16:15:57,254 [DEBUG][       Thread-260697][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 16:15:57,254 [DEBUG][       Thread-260697][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 16:15:57,254 [DEBUG][       Thread-260697][   transport.py][1871] : Compression: none
2025-06-13 16:15:57,254 [DEBUG][       Thread-260697][   transport.py][1871] : === End of kex handshake ===
2025-06-13 16:15:57,271 [DEBUG][       Thread-260697][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 16:15:57,272 [DEBUG][       Thread-260697][   transport.py][1871] : Switch to new keys ...
2025-06-13 16:15:57,272 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 16:15:57,272 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 16:15:57,273 [DEBUG][       Thread-260697][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 16:15:57,273 [DEBUG][       Thread-260697][   transport.py][1871] : userauth is OK
2025-06-13 16:15:57,287 [ INFO][       Thread-260697][   transport.py][1871] : Authentication (password) successful!
2025-06-13 16:15:57,287 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 16:15:58,041 [DEBUG][       Thread-260697][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 16:15:58,041 [DEBUG][       Thread-260697][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 16:15:58,085 [DEBUG][       Thread-260697][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 16:15:58,085 [DEBUG][       Thread-260697][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 16:15:58,088 [DEBUG][       Thread-260697][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 16:15:58,102 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 16:15:58,103 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 16:15:58,105 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 16:15:58,107 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 16:15:58,112 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 16:15:58,114 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 16:15:58,114 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 16:15:58,115 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 16:15:58,115 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.593685 -999.00  +13.70  22.85     34   -1.70 1 1 1 1 1   887    0 14.53 -36.36 ----- 24.8 22.9 37.2 26.7 16.6 -30.9 15.8 -31.1 16.6 -30.9 17.6 -28.9
2025-06-13 16:15:58,115 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 16:15:58,115 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 16:15:58,115 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.593685
2025-06-13 16:15:58,116 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 16:15:58,116 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 16:15:58,116 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 16:15:58,116 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 16:15:58,116 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 16:15:58,117 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T16:15:46', tmtdew=17.48, humidity=29.76, cloud=0.0, wind=19.25, temperature=13.87, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T14:14:54.384', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 16:15:58,118 [DEBUG][       Thread-260697][   transport.py][1871] : EOF in transport thread
2025-06-13 16:15:58,197 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 16:15:58,208 [DEBUG][       Thread-260700][   transport.py][1871] : starting thread (client mode): 0x863beda0
2025-06-13 16:15:58,208 [DEBUG][       Thread-260700][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 16:15:58,223 [DEBUG][       Thread-260700][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 16:15:58,223 [ INFO][       Thread-260700][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 16:15:58,231 [DEBUG][       Thread-260700][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 16:15:58,231 [DEBUG][       Thread-260700][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 16:15:58,231 [DEBUG][       Thread-260700][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 16:15:58,231 [DEBUG][       Thread-260700][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:15:58,231 [DEBUG][       Thread-260700][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:15:58,231 [DEBUG][       Thread-260700][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:15:58,231 [DEBUG][       Thread-260700][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:15:58,231 [DEBUG][       Thread-260700][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 16:15:58,231 [DEBUG][       Thread-260700][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 16:15:58,231 [DEBUG][       Thread-260700][   transport.py][1871] : client lang: <none>
2025-06-13 16:15:58,231 [DEBUG][       Thread-260700][   transport.py][1871] : server lang: <none>
2025-06-13 16:15:58,231 [DEBUG][       Thread-260700][   transport.py][1871] : kex follows: False
2025-06-13 16:15:58,231 [DEBUG][       Thread-260700][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 16:15:58,231 [DEBUG][       Thread-260700][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 16:15:58,231 [DEBUG][       Thread-260700][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 16:15:58,231 [DEBUG][       Thread-260700][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 16:15:58,231 [DEBUG][       Thread-260700][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 16:15:58,231 [DEBUG][       Thread-260700][   transport.py][1871] : Compression: none
2025-06-13 16:15:58,231 [DEBUG][       Thread-260700][   transport.py][1871] : === End of kex handshake ===
2025-06-13 16:15:58,290 [DEBUG][       Thread-260700][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 16:15:58,290 [DEBUG][       Thread-260700][   transport.py][1871] : Switch to new keys ...
2025-06-13 16:15:58,291 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 16:15:58,291 [DEBUG][       Thread-260700][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 16:15:58,292 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 16:15:58,346 [DEBUG][       Thread-260700][   transport.py][1871] : userauth is OK
2025-06-13 16:15:58,346 [DEBUG][       Thread-260700][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 16:15:58,346 [DEBUG][       Thread-260700][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 16:15:58,346 [DEBUG][       Thread-260700][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 16:15:58,346 [DEBUG][       Thread-260700][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 16:15:58,365 [ INFO][       Thread-260700][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 16:15:58,365 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 16:15:58,366 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 16:15:59,360 [DEBUG][       Thread-260700][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 16:15:59,360 [DEBUG][       Thread-260700][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 16:15:59,412 [DEBUG][       Thread-260700][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 16:15:59,412 [DEBUG][       Thread-260700][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 16:15:59,429 [DEBUG][       Thread-260700][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 16:15:59,438 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 16:15:59,438 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 16:15:59,447 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 16:15:59,456 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 16:15:59,457 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 16:15:59,457 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 16:15:59,465 [DEBUG][       Thread-260700][   transport.py][1871] : EOF in transport thread
2025-06-13 16:16:01,988 [DEBUG][Thread-260570 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:16:05,291 [DEBUG][Thread-260702 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:16:08,404 [DEBUG][Thread-260570 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:16:09,460 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 16:16:09,460 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 16:16:09,461 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 16:16:09,463 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 16:16:09,930 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 16, 15, 46), 17.48, 29.76, 0.0, 19.25, 13.87, 0, 0, 0, 2, 0, 0),)
2025-06-13 16:16:09,930 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 16:15:46
2025-06-13 16:16:10,011 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 16:16:10,015 [DEBUG][       Thread-260703][   transport.py][1871] : starting thread (client mode): 0x86368bb0
2025-06-13 16:16:10,015 [DEBUG][       Thread-260703][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 16:16:10,036 [DEBUG][       Thread-260703][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 16:16:10,036 [ INFO][       Thread-260703][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 16:16:10,039 [DEBUG][       Thread-260703][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 16:16:10,039 [DEBUG][       Thread-260703][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 16:16:10,039 [DEBUG][       Thread-260703][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 16:16:10,039 [DEBUG][       Thread-260703][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:16:10,039 [DEBUG][       Thread-260703][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:16:10,039 [DEBUG][       Thread-260703][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:16:10,039 [DEBUG][       Thread-260703][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:16:10,039 [DEBUG][       Thread-260703][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 16:16:10,039 [DEBUG][       Thread-260703][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 16:16:10,039 [DEBUG][       Thread-260703][   transport.py][1871] : client lang: <none>
2025-06-13 16:16:10,039 [DEBUG][       Thread-260703][   transport.py][1871] : server lang: <none>
2025-06-13 16:16:10,039 [DEBUG][       Thread-260703][   transport.py][1871] : kex follows: False
2025-06-13 16:16:10,039 [DEBUG][       Thread-260703][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 16:16:10,039 [DEBUG][       Thread-260703][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 16:16:10,039 [DEBUG][       Thread-260703][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 16:16:10,039 [DEBUG][       Thread-260703][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 16:16:10,039 [DEBUG][       Thread-260703][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 16:16:10,040 [DEBUG][       Thread-260703][   transport.py][1871] : Compression: none
2025-06-13 16:16:10,040 [DEBUG][       Thread-260703][   transport.py][1871] : === End of kex handshake ===
2025-06-13 16:16:10,056 [DEBUG][       Thread-260703][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 16:16:10,057 [DEBUG][       Thread-260703][   transport.py][1871] : Switch to new keys ...
2025-06-13 16:16:10,057 [DEBUG][       Thread-260703][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 16:16:10,058 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 16:16:10,058 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 16:16:10,059 [DEBUG][       Thread-260703][   transport.py][1871] : userauth is OK
2025-06-13 16:16:10,072 [ INFO][       Thread-260703][   transport.py][1871] : Authentication (password) successful!
2025-06-13 16:16:10,072 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 16:16:10,647 [DEBUG][       Thread-260703][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 16:16:10,647 [DEBUG][       Thread-260703][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 16:16:10,689 [DEBUG][       Thread-260703][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 16:16:10,689 [DEBUG][       Thread-260703][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 16:16:10,691 [DEBUG][       Thread-260703][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 16:16:10,704 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 16:16:10,704 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 16:16:10,706 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 16:16:10,707 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 16:16:10,712 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 16:16:10,714 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 16:16:10,714 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 16:16:10,714 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 16:16:10,714 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.594379 -999.00  +13.50  17.11     34   -1.80 1 1 1 1 1   887    0 14.10 -39.23 ----- 19.0 17.1 46.2 21.6 16.5 -30.8 15.8 -31.1 16.6 -29.7 17.5 -28.8
2025-06-13 16:16:10,714 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 16:16:10,714 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 16:16:10,715 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.594379
2025-06-13 16:16:10,715 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 16:16:10,715 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 16:16:10,715 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 16:16:10,715 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 16:16:10,715 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 16:16:10,716 [DEBUG][       Thread-260703][   transport.py][1871] : EOF in transport thread
2025-06-13 16:16:10,716 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T16:15:46', tmtdew=17.48, humidity=29.76, cloud=0.0, wind=19.25, temperature=13.87, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T14:15:54.346', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 16:16:10,790 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 16:16:10,805 [DEBUG][       Thread-260706][   transport.py][1871] : starting thread (client mode): 0x86352410
2025-06-13 16:16:10,805 [DEBUG][       Thread-260706][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 16:16:10,821 [DEBUG][       Thread-260706][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 16:16:10,821 [ INFO][       Thread-260706][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 16:16:10,831 [DEBUG][       Thread-260706][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 16:16:10,831 [DEBUG][       Thread-260706][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 16:16:10,831 [DEBUG][       Thread-260706][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 16:16:10,831 [DEBUG][       Thread-260706][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:16:10,831 [DEBUG][       Thread-260706][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:16:10,831 [DEBUG][       Thread-260706][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:16:10,831 [DEBUG][       Thread-260706][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:16:10,831 [DEBUG][       Thread-260706][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 16:16:10,831 [DEBUG][       Thread-260706][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 16:16:10,831 [DEBUG][       Thread-260706][   transport.py][1871] : client lang: <none>
2025-06-13 16:16:10,831 [DEBUG][       Thread-260706][   transport.py][1871] : server lang: <none>
2025-06-13 16:16:10,832 [DEBUG][       Thread-260706][   transport.py][1871] : kex follows: False
2025-06-13 16:16:10,832 [DEBUG][       Thread-260706][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 16:16:10,832 [DEBUG][       Thread-260706][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 16:16:10,832 [DEBUG][       Thread-260706][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 16:16:10,832 [DEBUG][       Thread-260706][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 16:16:10,832 [DEBUG][       Thread-260706][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 16:16:10,832 [DEBUG][       Thread-260706][   transport.py][1871] : Compression: none
2025-06-13 16:16:10,832 [DEBUG][       Thread-260706][   transport.py][1871] : === End of kex handshake ===
2025-06-13 16:16:10,886 [DEBUG][       Thread-260706][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 16:16:10,886 [DEBUG][       Thread-260706][   transport.py][1871] : Switch to new keys ...
2025-06-13 16:16:10,887 [DEBUG][       Thread-260706][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 16:16:10,887 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 16:16:10,888 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 16:16:10,942 [DEBUG][       Thread-260706][   transport.py][1871] : userauth is OK
2025-06-13 16:16:10,942 [DEBUG][       Thread-260706][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 16:16:10,942 [DEBUG][       Thread-260706][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 16:16:10,942 [DEBUG][       Thread-260706][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 16:16:10,942 [DEBUG][       Thread-260706][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 16:16:10,958 [ INFO][       Thread-260706][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 16:16:10,958 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 16:16:10,958 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 16:16:11,971 [DEBUG][       Thread-260706][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 16:16:11,971 [DEBUG][       Thread-260706][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 16:16:12,019 [DEBUG][       Thread-260706][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 16:16:12,019 [DEBUG][       Thread-260706][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 16:16:12,028 [DEBUG][       Thread-260706][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 16:16:12,037 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 16:16:12,037 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 16:16:12,045 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 16:16:12,054 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 16:16:12,054 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 16:16:12,054 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 16:16:12,062 [DEBUG][       Thread-260706][   transport.py][1871] : EOF in transport thread
2025-06-13 16:16:14,324 [DEBUG][Thread-260708 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:16:14,894 [DEBUG][Thread-260570 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:16:16,049 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:16:16,051 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:16:21,302 [DEBUG][Thread-260570 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:16:22,064 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 16:16:22,065 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 16:16:22,065 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 16:16:22,067 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 16:16:22,532 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 16, 16, 18), 17.49, 29.47, 0.0, 14.77, 13.82, 0, 0, 0, 2, 0, 0),)
2025-06-13 16:16:22,532 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 16:16:18
2025-06-13 16:16:22,614 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 16:16:22,618 [DEBUG][       Thread-260709][   transport.py][1871] : starting thread (client mode): 0x86368280
2025-06-13 16:16:22,618 [DEBUG][       Thread-260709][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 16:16:22,638 [DEBUG][       Thread-260709][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 16:16:22,638 [ INFO][       Thread-260709][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 16:16:22,641 [DEBUG][       Thread-260709][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 16:16:22,641 [DEBUG][       Thread-260709][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 16:16:22,641 [DEBUG][       Thread-260709][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 16:16:22,641 [DEBUG][       Thread-260709][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:16:22,641 [DEBUG][       Thread-260709][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:16:22,642 [DEBUG][       Thread-260709][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:16:22,642 [DEBUG][       Thread-260709][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:16:22,642 [DEBUG][       Thread-260709][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 16:16:22,642 [DEBUG][       Thread-260709][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 16:16:22,642 [DEBUG][       Thread-260709][   transport.py][1871] : client lang: <none>
2025-06-13 16:16:22,642 [DEBUG][       Thread-260709][   transport.py][1871] : server lang: <none>
2025-06-13 16:16:22,642 [DEBUG][       Thread-260709][   transport.py][1871] : kex follows: False
2025-06-13 16:16:22,642 [DEBUG][       Thread-260709][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 16:16:22,642 [DEBUG][       Thread-260709][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 16:16:22,642 [DEBUG][       Thread-260709][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 16:16:22,642 [DEBUG][       Thread-260709][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 16:16:22,642 [DEBUG][       Thread-260709][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 16:16:22,642 [DEBUG][       Thread-260709][   transport.py][1871] : Compression: none
2025-06-13 16:16:22,642 [DEBUG][       Thread-260709][   transport.py][1871] : === End of kex handshake ===
2025-06-13 16:16:22,651 [DEBUG][       Thread-260709][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 16:16:22,651 [DEBUG][       Thread-260709][   transport.py][1871] : Switch to new keys ...
2025-06-13 16:16:22,652 [DEBUG][       Thread-260709][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 16:16:22,652 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 16:16:22,652 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 16:16:22,653 [DEBUG][       Thread-260709][   transport.py][1871] : userauth is OK
2025-06-13 16:16:22,677 [ INFO][       Thread-260709][   transport.py][1871] : Authentication (password) successful!
2025-06-13 16:16:22,678 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 16:16:23,021 [DEBUG][Thread-260711 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:16:23,341 [DEBUG][Thread-260712 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:16:23,460 [DEBUG][       Thread-260709][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 16:16:23,460 [DEBUG][       Thread-260709][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 16:16:23,500 [DEBUG][       Thread-260709][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 16:16:23,501 [DEBUG][       Thread-260709][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 16:16:23,503 [DEBUG][       Thread-260709][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 16:16:23,517 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 16:16:23,517 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 16:16:23,519 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 16:16:23,520 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 16:16:23,525 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 16:16:23,527 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 16:16:23,527 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 16:16:23,528 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 16:16:23,528 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.594379 -999.00  +13.50  17.11     34   -1.80 1 1 1 1 1   887    0 14.10 -39.23 ----- 19.0 17.1 46.2 21.6 16.5 -30.8 15.8 -31.1 16.6 -29.7 17.5 -28.8
2025-06-13 16:16:23,528 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 16:16:23,528 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 16:16:23,528 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.594379
2025-06-13 16:16:23,529 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 16:16:23,529 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 16:16:23,529 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 16:16:23,529 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 16:16:23,529 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 16:16:23,529 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T16:16:18', tmtdew=17.49, humidity=29.47, cloud=0.0, wind=14.77, temperature=13.82, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T14:15:54.346', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 16:16:23,530 [DEBUG][       Thread-260709][   transport.py][1871] : EOF in transport thread
2025-06-13 16:16:23,613 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 16:16:23,626 [DEBUG][       Thread-260714][   transport.py][1871] : starting thread (client mode): 0x863be470
2025-06-13 16:16:23,626 [DEBUG][       Thread-260714][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 16:16:23,645 [DEBUG][       Thread-260714][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 16:16:23,645 [ INFO][       Thread-260714][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 16:16:23,652 [DEBUG][       Thread-260714][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 16:16:23,652 [DEBUG][       Thread-260714][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 16:16:23,652 [DEBUG][       Thread-260714][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 16:16:23,653 [DEBUG][       Thread-260714][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:16:23,653 [DEBUG][       Thread-260714][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:16:23,653 [DEBUG][       Thread-260714][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:16:23,653 [DEBUG][       Thread-260714][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:16:23,653 [DEBUG][       Thread-260714][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 16:16:23,653 [DEBUG][       Thread-260714][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 16:16:23,653 [DEBUG][       Thread-260714][   transport.py][1871] : client lang: <none>
2025-06-13 16:16:23,653 [DEBUG][       Thread-260714][   transport.py][1871] : server lang: <none>
2025-06-13 16:16:23,653 [DEBUG][       Thread-260714][   transport.py][1871] : kex follows: False
2025-06-13 16:16:23,653 [DEBUG][       Thread-260714][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 16:16:23,653 [DEBUG][       Thread-260714][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 16:16:23,653 [DEBUG][       Thread-260714][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 16:16:23,653 [DEBUG][       Thread-260714][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 16:16:23,653 [DEBUG][       Thread-260714][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 16:16:23,653 [DEBUG][       Thread-260714][   transport.py][1871] : Compression: none
2025-06-13 16:16:23,653 [DEBUG][       Thread-260714][   transport.py][1871] : === End of kex handshake ===
2025-06-13 16:16:23,709 [DEBUG][       Thread-260714][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 16:16:23,709 [DEBUG][       Thread-260714][   transport.py][1871] : Switch to new keys ...
2025-06-13 16:16:23,710 [DEBUG][       Thread-260714][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 16:16:23,710 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 16:16:23,711 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 16:16:23,769 [DEBUG][       Thread-260714][   transport.py][1871] : userauth is OK
2025-06-13 16:16:23,770 [DEBUG][       Thread-260714][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 16:16:23,770 [DEBUG][       Thread-260714][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 16:16:23,770 [DEBUG][       Thread-260714][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 16:16:23,770 [DEBUG][       Thread-260714][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 16:16:23,788 [ INFO][       Thread-260714][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 16:16:23,789 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 16:16:23,789 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 16:16:24,778 [DEBUG][       Thread-260714][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 16:16:24,778 [DEBUG][       Thread-260714][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 16:16:24,828 [DEBUG][       Thread-260714][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 16:16:24,828 [DEBUG][       Thread-260714][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 16:16:24,837 [DEBUG][       Thread-260714][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 16:16:24,845 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 16:16:24,845 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 16:16:24,853 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 16:16:24,862 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 16:16:24,862 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 16:16:24,863 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 16:16:24,870 [DEBUG][       Thread-260714][   transport.py][1871] : EOF in transport thread
2025-06-13 16:16:27,734 [DEBUG][Thread-260570 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:16:32,360 [DEBUG][Thread-260716 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:16:34,165 [DEBUG][Thread-260570 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:16:34,873 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 16:16:34,873 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 16:16:34,873 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 16:16:34,876 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 16:16:35,338 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 16, 16, 18), 17.49, 29.47, 0.0, 14.77, 13.82, 0, 0, 0, 2, 0, 0),)
2025-06-13 16:16:35,338 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 16:16:18
2025-06-13 16:16:35,420 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 16:16:35,424 [DEBUG][       Thread-260717][   transport.py][1871] : starting thread (client mode): 0x8636a080
2025-06-13 16:16:35,424 [DEBUG][       Thread-260717][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 16:16:35,446 [DEBUG][       Thread-260717][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 16:16:35,446 [ INFO][       Thread-260717][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 16:16:35,448 [DEBUG][       Thread-260717][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 16:16:35,448 [DEBUG][       Thread-260717][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 16:16:35,448 [DEBUG][       Thread-260717][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 16:16:35,448 [DEBUG][       Thread-260717][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:16:35,448 [DEBUG][       Thread-260717][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:16:35,448 [DEBUG][       Thread-260717][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:16:35,448 [DEBUG][       Thread-260717][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:16:35,448 [DEBUG][       Thread-260717][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 16:16:35,448 [DEBUG][       Thread-260717][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 16:16:35,448 [DEBUG][       Thread-260717][   transport.py][1871] : client lang: <none>
2025-06-13 16:16:35,448 [DEBUG][       Thread-260717][   transport.py][1871] : server lang: <none>
2025-06-13 16:16:35,448 [DEBUG][       Thread-260717][   transport.py][1871] : kex follows: False
2025-06-13 16:16:35,448 [DEBUG][       Thread-260717][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 16:16:35,448 [DEBUG][       Thread-260717][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 16:16:35,449 [DEBUG][       Thread-260717][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 16:16:35,449 [DEBUG][       Thread-260717][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 16:16:35,449 [DEBUG][       Thread-260717][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 16:16:35,449 [DEBUG][       Thread-260717][   transport.py][1871] : Compression: none
2025-06-13 16:16:35,449 [DEBUG][       Thread-260717][   transport.py][1871] : === End of kex handshake ===
2025-06-13 16:16:35,459 [DEBUG][       Thread-260717][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 16:16:35,459 [DEBUG][       Thread-260717][   transport.py][1871] : Switch to new keys ...
2025-06-13 16:16:35,459 [DEBUG][       Thread-260717][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 16:16:35,459 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 16:16:35,459 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 16:16:35,460 [DEBUG][       Thread-260717][   transport.py][1871] : userauth is OK
2025-06-13 16:16:35,472 [ INFO][       Thread-260717][   transport.py][1871] : Authentication (password) successful!
2025-06-13 16:16:35,472 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 16:16:36,113 [DEBUG][       Thread-260717][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 16:16:36,113 [DEBUG][       Thread-260717][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 16:16:36,157 [DEBUG][       Thread-260717][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 16:16:36,157 [DEBUG][       Thread-260717][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 16:16:36,160 [DEBUG][       Thread-260717][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 16:16:36,172 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 16:16:36,172 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 16:16:36,175 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 16:16:36,178 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 16:16:36,184 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 16:16:36,186 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 16:16:36,186 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 16:16:36,187 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 16:16:36,187 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.594727 -999.00  +13.50  19.71     35   -1.60 1 1 1 1 1   887    0 14.35 -40.47 ----- 22.7 19.7 49.4 28.6 16.6 -30.6 15.8 -31.1 16.5 -30.2 17.4 -29.0
2025-06-13 16:16:36,187 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 16:16:36,187 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 16:16:36,187 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.594727
2025-06-13 16:16:36,188 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 16:16:36,188 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 16:16:36,188 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 16:16:36,188 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 16:16:36,188 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 16:16:36,189 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T16:16:18', tmtdew=17.49, humidity=29.47, cloud=0.0, wind=14.77, temperature=13.82, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T14:16:24.413', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 16:16:36,190 [DEBUG][       Thread-260717][   transport.py][1871] : EOF in transport thread
2025-06-13 16:16:36,272 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 16:16:36,283 [DEBUG][       Thread-260720][   transport.py][1871] : starting thread (client mode): 0x867b74c0
2025-06-13 16:16:36,283 [DEBUG][       Thread-260720][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 16:16:36,297 [DEBUG][       Thread-260720][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 16:16:36,298 [ INFO][       Thread-260720][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 16:16:36,305 [DEBUG][       Thread-260720][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 16:16:36,305 [DEBUG][       Thread-260720][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 16:16:36,305 [DEBUG][       Thread-260720][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 16:16:36,305 [DEBUG][       Thread-260720][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:16:36,305 [DEBUG][       Thread-260720][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:16:36,305 [DEBUG][       Thread-260720][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:16:36,305 [DEBUG][       Thread-260720][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:16:36,305 [DEBUG][       Thread-260720][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 16:16:36,305 [DEBUG][       Thread-260720][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 16:16:36,305 [DEBUG][       Thread-260720][   transport.py][1871] : client lang: <none>
2025-06-13 16:16:36,305 [DEBUG][       Thread-260720][   transport.py][1871] : server lang: <none>
2025-06-13 16:16:36,305 [DEBUG][       Thread-260720][   transport.py][1871] : kex follows: False
2025-06-13 16:16:36,305 [DEBUG][       Thread-260720][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 16:16:36,305 [DEBUG][       Thread-260720][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 16:16:36,306 [DEBUG][       Thread-260720][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 16:16:36,306 [DEBUG][       Thread-260720][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 16:16:36,306 [DEBUG][       Thread-260720][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 16:16:36,306 [DEBUG][       Thread-260720][   transport.py][1871] : Compression: none
2025-06-13 16:16:36,306 [DEBUG][       Thread-260720][   transport.py][1871] : === End of kex handshake ===
2025-06-13 16:16:36,363 [DEBUG][       Thread-260720][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 16:16:36,363 [DEBUG][       Thread-260720][   transport.py][1871] : Switch to new keys ...
2025-06-13 16:16:36,364 [DEBUG][       Thread-260720][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 16:16:36,364 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 16:16:36,365 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 16:16:36,428 [DEBUG][       Thread-260720][   transport.py][1871] : userauth is OK
2025-06-13 16:16:36,428 [DEBUG][       Thread-260720][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 16:16:36,428 [DEBUG][       Thread-260720][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 16:16:36,428 [DEBUG][       Thread-260720][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 16:16:36,429 [DEBUG][       Thread-260720][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 16:16:36,447 [ INFO][       Thread-260720][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 16:16:36,448 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 16:16:36,448 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 16:16:37,468 [DEBUG][       Thread-260720][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 16:16:37,468 [DEBUG][       Thread-260720][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 16:16:37,516 [DEBUG][       Thread-260720][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 16:16:37,516 [DEBUG][       Thread-260720][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 16:16:37,527 [DEBUG][       Thread-260720][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 16:16:37,536 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 16:16:37,537 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 16:16:37,545 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 16:16:37,555 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 16:16:37,555 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 16:16:37,555 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 16:16:37,567 [DEBUG][       Thread-260720][   transport.py][1871] : EOF in transport thread
2025-06-13 16:16:40,634 [DEBUG][Thread-260570 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:16:41,388 [DEBUG][Thread-260722 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:16:41,936 [DEBUG][Thread-260723 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:16:42,987 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:16:42,988 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:16:47,055 [DEBUG][Thread-260570 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:16:47,566 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 16:16:47,566 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 16:16:47,566 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 16:16:47,569 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 16:16:48,047 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 16, 16, 18), 17.49, 29.47, 0.0, 14.77, 13.82, 0, 0, 0, 2, 0, 0),)
2025-06-13 16:16:48,047 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 16:16:18
2025-06-13 16:16:48,129 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 16:16:48,133 [DEBUG][       Thread-260724][   transport.py][1871] : starting thread (client mode): 0x863c8370
2025-06-13 16:16:48,133 [DEBUG][       Thread-260724][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 16:16:48,154 [DEBUG][       Thread-260724][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 16:16:48,154 [ INFO][       Thread-260724][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 16:16:48,155 [DEBUG][       Thread-260724][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 16:16:48,155 [DEBUG][       Thread-260724][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 16:16:48,155 [DEBUG][       Thread-260724][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 16:16:48,155 [DEBUG][       Thread-260724][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:16:48,155 [DEBUG][       Thread-260724][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:16:48,155 [DEBUG][       Thread-260724][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:16:48,155 [DEBUG][       Thread-260724][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:16:48,156 [DEBUG][       Thread-260724][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 16:16:48,156 [DEBUG][       Thread-260724][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 16:16:48,156 [DEBUG][       Thread-260724][   transport.py][1871] : client lang: <none>
2025-06-13 16:16:48,156 [DEBUG][       Thread-260724][   transport.py][1871] : server lang: <none>
2025-06-13 16:16:48,156 [DEBUG][       Thread-260724][   transport.py][1871] : kex follows: False
2025-06-13 16:16:48,156 [DEBUG][       Thread-260724][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 16:16:48,156 [DEBUG][       Thread-260724][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 16:16:48,156 [DEBUG][       Thread-260724][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 16:16:48,156 [DEBUG][       Thread-260724][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 16:16:48,156 [DEBUG][       Thread-260724][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 16:16:48,156 [DEBUG][       Thread-260724][   transport.py][1871] : Compression: none
2025-06-13 16:16:48,156 [DEBUG][       Thread-260724][   transport.py][1871] : === End of kex handshake ===
2025-06-13 16:16:48,173 [DEBUG][       Thread-260724][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 16:16:48,174 [DEBUG][       Thread-260724][   transport.py][1871] : Switch to new keys ...
2025-06-13 16:16:48,174 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 16:16:48,174 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 16:16:48,175 [DEBUG][       Thread-260724][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 16:16:48,175 [DEBUG][       Thread-260724][   transport.py][1871] : userauth is OK
2025-06-13 16:16:48,189 [ INFO][       Thread-260724][   transport.py][1871] : Authentication (password) successful!
2025-06-13 16:16:48,189 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 16:16:48,937 [DEBUG][       Thread-260724][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 16:16:48,937 [DEBUG][       Thread-260724][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 16:16:48,981 [DEBUG][       Thread-260724][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 16:16:48,981 [DEBUG][       Thread-260724][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 16:16:48,984 [DEBUG][       Thread-260724][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 16:16:48,995 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 16:16:48,996 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 16:16:48,997 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 16:16:48,999 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 16:16:49,005 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 16:16:49,006 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 16:16:49,007 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 16:16:49,007 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 16:16:49,007 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.594727 -999.00  +13.50  19.71     35   -1.60 1 1 1 1 1   887    0 14.35 -40.47 ----- 22.7 19.7 49.4 28.6 16.6 -30.6 15.8 -31.1 16.5 -30.2 17.4 -29.0
2025-06-13 16:16:49,008 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 16:16:49,008 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 16:16:49,008 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.594727
2025-06-13 16:16:49,008 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 16:16:49,009 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 16:16:49,009 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 16:16:49,009 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 16:16:49,009 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 16:16:49,009 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T16:16:18', tmtdew=17.49, humidity=29.47, cloud=0.0, wind=14.77, temperature=13.82, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T14:16:24.413', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 16:16:49,010 [DEBUG][       Thread-260724][   transport.py][1871] : EOF in transport thread
2025-06-13 16:16:49,093 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 16:16:49,103 [DEBUG][       Thread-260727][   transport.py][1871] : starting thread (client mode): 0x86353130
2025-06-13 16:16:49,103 [DEBUG][       Thread-260727][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 16:16:49,118 [DEBUG][       Thread-260727][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 16:16:49,118 [ INFO][       Thread-260727][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 16:16:49,129 [DEBUG][       Thread-260727][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 16:16:49,129 [DEBUG][       Thread-260727][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 16:16:49,129 [DEBUG][       Thread-260727][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 16:16:49,129 [DEBUG][       Thread-260727][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:16:49,129 [DEBUG][       Thread-260727][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:16:49,129 [DEBUG][       Thread-260727][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:16:49,129 [DEBUG][       Thread-260727][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:16:49,129 [DEBUG][       Thread-260727][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 16:16:49,129 [DEBUG][       Thread-260727][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 16:16:49,129 [DEBUG][       Thread-260727][   transport.py][1871] : client lang: <none>
2025-06-13 16:16:49,129 [DEBUG][       Thread-260727][   transport.py][1871] : server lang: <none>
2025-06-13 16:16:49,129 [DEBUG][       Thread-260727][   transport.py][1871] : kex follows: False
2025-06-13 16:16:49,129 [DEBUG][       Thread-260727][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 16:16:49,129 [DEBUG][       Thread-260727][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 16:16:49,129 [DEBUG][       Thread-260727][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 16:16:49,130 [DEBUG][       Thread-260727][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 16:16:49,130 [DEBUG][       Thread-260727][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 16:16:49,130 [DEBUG][       Thread-260727][   transport.py][1871] : Compression: none
2025-06-13 16:16:49,130 [DEBUG][       Thread-260727][   transport.py][1871] : === End of kex handshake ===
2025-06-13 16:16:49,190 [DEBUG][       Thread-260727][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 16:16:49,191 [DEBUG][       Thread-260727][   transport.py][1871] : Switch to new keys ...
2025-06-13 16:16:49,192 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 16:16:49,192 [DEBUG][       Thread-260727][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 16:16:49,193 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 16:16:49,246 [DEBUG][       Thread-260727][   transport.py][1871] : userauth is OK
2025-06-13 16:16:49,247 [DEBUG][       Thread-260727][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 16:16:49,247 [DEBUG][       Thread-260727][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 16:16:49,247 [DEBUG][       Thread-260727][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 16:16:49,247 [DEBUG][       Thread-260727][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 16:16:49,266 [ INFO][       Thread-260727][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 16:16:49,266 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 16:16:49,266 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 16:16:50,295 [DEBUG][       Thread-260727][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 16:16:50,295 [DEBUG][       Thread-260727][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 16:16:50,346 [DEBUG][       Thread-260727][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 16:16:50,346 [DEBUG][       Thread-260727][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 16:16:50,355 [DEBUG][       Thread-260727][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 16:16:50,365 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 16:16:50,366 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 16:16:50,374 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 16:16:50,384 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 16:16:50,384 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 16:16:50,385 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 16:16:50,392 [DEBUG][       Thread-260727][   transport.py][1871] : EOF in transport thread
2025-06-13 16:16:50,407 [DEBUG][Thread-260729 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:16:53,481 [DEBUG][Thread-260570 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:16:59,426 [DEBUG][Thread-260730 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:16:59,884 [DEBUG][Thread-260570 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:17:00,178 [DEBUG][Thread-260570 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:17:00,395 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 16:17:00,395 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 16:17:00,395 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 16:17:00,396 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 16:17:00,849 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 16, 16, 50), 17.36, 29.75, 0.0, 17.89, 13.81, 0, 0, 0, 2, 0, 0),)
2025-06-13 16:17:00,849 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 16:16:50
2025-06-13 16:17:00,931 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 16:17:00,935 [DEBUG][       Thread-260731][   transport.py][1871] : starting thread (client mode): 0x867fe080
2025-06-13 16:17:00,935 [DEBUG][       Thread-260731][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 16:17:00,945 [DEBUG][       Thread-260731][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 16:17:00,945 [ INFO][       Thread-260731][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 16:17:00,947 [DEBUG][       Thread-260731][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 16:17:00,947 [DEBUG][       Thread-260731][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 16:17:00,947 [DEBUG][       Thread-260731][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 16:17:00,947 [DEBUG][       Thread-260731][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:17:00,947 [DEBUG][       Thread-260731][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:17:00,947 [DEBUG][       Thread-260731][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:17:00,947 [DEBUG][       Thread-260731][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:17:00,947 [DEBUG][       Thread-260731][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 16:17:00,947 [DEBUG][       Thread-260731][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 16:17:00,947 [DEBUG][       Thread-260731][   transport.py][1871] : client lang: <none>
2025-06-13 16:17:00,947 [DEBUG][       Thread-260731][   transport.py][1871] : server lang: <none>
2025-06-13 16:17:00,947 [DEBUG][       Thread-260731][   transport.py][1871] : kex follows: False
2025-06-13 16:17:00,947 [DEBUG][       Thread-260731][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 16:17:00,947 [DEBUG][       Thread-260731][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 16:17:00,947 [DEBUG][       Thread-260731][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 16:17:00,947 [DEBUG][       Thread-260731][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 16:17:00,947 [DEBUG][       Thread-260731][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 16:17:00,947 [DEBUG][       Thread-260731][   transport.py][1871] : Compression: none
2025-06-13 16:17:00,947 [DEBUG][       Thread-260731][   transport.py][1871] : === End of kex handshake ===
2025-06-13 16:17:00,954 [DEBUG][       Thread-260731][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 16:17:00,954 [DEBUG][       Thread-260731][   transport.py][1871] : Switch to new keys ...
2025-06-13 16:17:00,954 [DEBUG][       Thread-260731][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 16:17:00,954 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 16:17:00,954 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 16:17:00,955 [DEBUG][       Thread-260731][   transport.py][1871] : userauth is OK
2025-06-13 16:17:00,968 [ INFO][       Thread-260731][   transport.py][1871] : Authentication (password) successful!
2025-06-13 16:17:00,968 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 16:17:01,612 [DEBUG][Thread-260570 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:17:01,682 [DEBUG][       Thread-260731][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 16:17:01,682 [DEBUG][       Thread-260731][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 16:17:01,725 [DEBUG][       Thread-260731][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 16:17:01,725 [DEBUG][       Thread-260731][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 16:17:01,727 [DEBUG][       Thread-260731][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 16:17:01,735 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 16:17:01,735 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 16:17:01,736 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 16:17:01,737 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 16:17:01,740 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 16:17:01,740 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 16:17:01,740 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 16:17:01,741 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 16:17:01,741 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.594727 -999.00  +13.50  19.71     35   -1.60 1 1 1 1 1   887    0 14.35 -40.47 ----- 22.7 19.7 49.4 28.6 16.6 -30.6 15.8 -31.1 16.5 -30.2 17.4 -29.0
2025-06-13 16:17:01,741 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 16:17:01,741 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 16:17:01,741 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.594727
2025-06-13 16:17:01,741 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 16:17:01,741 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 16:17:01,741 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 16:17:01,741 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 16:17:01,741 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 16:17:01,741 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T16:16:50', tmtdew=17.36, humidity=29.75, cloud=0.0, wind=17.89, temperature=13.81, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T14:16:24.413', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 16:17:01,742 [DEBUG][       Thread-260731][   transport.py][1871] : EOF in transport thread
2025-06-13 16:17:01,812 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 16:17:01,825 [DEBUG][       Thread-260734][   transport.py][1871] : starting thread (client mode): 0x863bea70
2025-06-13 16:17:01,825 [DEBUG][       Thread-260734][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 16:17:01,840 [DEBUG][       Thread-260734][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 16:17:01,841 [ INFO][       Thread-260734][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 16:17:01,850 [DEBUG][       Thread-260734][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 16:17:01,850 [DEBUG][       Thread-260734][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 16:17:01,850 [DEBUG][       Thread-260734][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 16:17:01,850 [DEBUG][       Thread-260734][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:17:01,850 [DEBUG][       Thread-260734][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:17:01,850 [DEBUG][       Thread-260734][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:17:01,850 [DEBUG][       Thread-260734][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:17:01,850 [DEBUG][       Thread-260734][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 16:17:01,850 [DEBUG][       Thread-260734][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 16:17:01,850 [DEBUG][       Thread-260734][   transport.py][1871] : client lang: <none>
2025-06-13 16:17:01,850 [DEBUG][       Thread-260734][   transport.py][1871] : server lang: <none>
2025-06-13 16:17:01,850 [DEBUG][       Thread-260734][   transport.py][1871] : kex follows: False
2025-06-13 16:17:01,850 [DEBUG][       Thread-260734][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 16:17:01,850 [DEBUG][       Thread-260734][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 16:17:01,850 [DEBUG][       Thread-260734][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 16:17:01,851 [DEBUG][       Thread-260734][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 16:17:01,851 [DEBUG][       Thread-260734][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 16:17:01,851 [DEBUG][       Thread-260734][   transport.py][1871] : Compression: none
2025-06-13 16:17:01,851 [DEBUG][       Thread-260734][   transport.py][1871] : === End of kex handshake ===
2025-06-13 16:17:01,915 [DEBUG][       Thread-260734][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 16:17:01,915 [DEBUG][       Thread-260734][   transport.py][1871] : Switch to new keys ...
2025-06-13 16:17:01,916 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 16:17:01,916 [DEBUG][       Thread-260734][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 16:17:01,917 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 16:17:01,979 [DEBUG][       Thread-260734][   transport.py][1871] : userauth is OK
2025-06-13 16:17:01,980 [DEBUG][       Thread-260734][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 16:17:01,980 [DEBUG][       Thread-260734][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 16:17:01,980 [DEBUG][       Thread-260734][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 16:17:01,980 [DEBUG][       Thread-260734][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 16:17:01,999 [ INFO][       Thread-260734][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 16:17:01,999 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 16:17:01,999 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 16:17:02,023 [DEBUG][Thread-260570 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:17:02,521 [DEBUG][Thread-260570 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:17:02,999 [DEBUG][Thread-260570 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:17:03,064 [DEBUG][       Thread-260734][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 16:17:03,064 [DEBUG][       Thread-260734][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 16:17:03,114 [DEBUG][       Thread-260734][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 16:17:03,114 [DEBUG][       Thread-260734][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 16:17:03,134 [DEBUG][       Thread-260734][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 16:17:03,146 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 16:17:03,146 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 16:17:03,154 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 16:17:03,163 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 16:17:03,163 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 16:17:03,164 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 16:17:03,171 [DEBUG][       Thread-260734][   transport.py][1871] : EOF in transport thread
2025-06-13 16:17:03,419 [DEBUG][Thread-260570 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:17:03,829 [DEBUG][Thread-260570 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:17:04,247 [DEBUG][Thread-260570 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:17:04,660 [DEBUG][Thread-260570 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:17:05,149 [DEBUG][Thread-260570 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:17:05,562 [DEBUG][Thread-260570 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:17:08,447 [DEBUG][Thread-260736 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:17:13,174 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 16:17:13,175 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 16:17:13,175 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 16:17:13,177 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 16:17:13,647 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 16, 16, 50), 17.36, 29.75, 0.0, 17.89, 13.81, 0, 0, 0, 2, 0, 0),)
2025-06-13 16:17:13,647 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 16:16:50
2025-06-13 16:17:13,729 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 16:17:13,735 [DEBUG][       Thread-260737][   transport.py][1871] : starting thread (client mode): 0x863c8c70
2025-06-13 16:17:13,738 [DEBUG][       Thread-260737][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 16:17:13,756 [DEBUG][       Thread-260737][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 16:17:13,756 [ INFO][       Thread-260737][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 16:17:13,760 [DEBUG][       Thread-260737][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 16:17:13,760 [DEBUG][       Thread-260737][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 16:17:13,760 [DEBUG][       Thread-260737][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 16:17:13,760 [DEBUG][       Thread-260737][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:17:13,760 [DEBUG][       Thread-260737][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:17:13,761 [DEBUG][       Thread-260737][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:17:13,761 [DEBUG][       Thread-260737][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:17:13,761 [DEBUG][       Thread-260737][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 16:17:13,761 [DEBUG][       Thread-260737][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 16:17:13,761 [DEBUG][       Thread-260737][   transport.py][1871] : client lang: <none>
2025-06-13 16:17:13,761 [DEBUG][       Thread-260737][   transport.py][1871] : server lang: <none>
2025-06-13 16:17:13,761 [DEBUG][       Thread-260737][   transport.py][1871] : kex follows: False
2025-06-13 16:17:13,761 [DEBUG][       Thread-260737][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 16:17:13,761 [DEBUG][       Thread-260737][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 16:17:13,761 [DEBUG][       Thread-260737][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 16:17:13,761 [DEBUG][       Thread-260737][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 16:17:13,761 [DEBUG][       Thread-260737][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 16:17:13,761 [DEBUG][       Thread-260737][   transport.py][1871] : Compression: none
2025-06-13 16:17:13,761 [DEBUG][       Thread-260737][   transport.py][1871] : === End of kex handshake ===
2025-06-13 16:17:13,777 [DEBUG][       Thread-260737][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 16:17:13,777 [DEBUG][       Thread-260737][   transport.py][1871] : Switch to new keys ...
2025-06-13 16:17:13,778 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 16:17:13,778 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 16:17:13,778 [DEBUG][       Thread-260737][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 16:17:13,779 [DEBUG][       Thread-260737][   transport.py][1871] : userauth is OK
2025-06-13 16:17:13,792 [ INFO][       Thread-260737][   transport.py][1871] : Authentication (password) successful!
2025-06-13 16:17:13,793 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 16:17:14,379 [DEBUG][       Thread-260737][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 16:17:14,379 [DEBUG][       Thread-260737][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 16:17:14,421 [DEBUG][       Thread-260737][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 16:17:14,421 [DEBUG][       Thread-260737][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 16:17:14,424 [DEBUG][       Thread-260737][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 16:17:14,433 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 16:17:14,433 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 16:17:14,435 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 16:17:14,437 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 16:17:14,442 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 16:17:14,444 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 16:17:14,444 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 16:17:14,445 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 16:17:14,445 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.595074 -999.00  +13.50  19.66     35   -1.30 1 1 1 1 1   887    0 14.61 -42.46 ----- 19.1 19.7 55.2 24.9 16.6 -30.3 15.8 -30.6 16.6 -29.4 17.5 -28.9
2025-06-13 16:17:14,445 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 16:17:14,445 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 16:17:14,445 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.595074
2025-06-13 16:17:14,446 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 16:17:14,446 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 16:17:14,446 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 16:17:14,446 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 16:17:14,446 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 16:17:14,446 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T16:16:50', tmtdew=17.36, humidity=29.75, cloud=0.0, wind=17.89, temperature=13.81, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T14:16:54.394', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 16:17:14,447 [DEBUG][       Thread-260737][   transport.py][1871] : EOF in transport thread
2025-06-13 16:17:14,534 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 16:17:14,547 [DEBUG][       Thread-260740][   transport.py][1871] : starting thread (client mode): 0x86893be0
2025-06-13 16:17:14,547 [DEBUG][       Thread-260740][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 16:17:14,562 [DEBUG][       Thread-260740][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 16:17:14,563 [ INFO][       Thread-260740][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 16:17:14,570 [DEBUG][       Thread-260740][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 16:17:14,570 [DEBUG][       Thread-260740][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 16:17:14,570 [DEBUG][       Thread-260740][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 16:17:14,570 [DEBUG][       Thread-260740][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:17:14,570 [DEBUG][       Thread-260740][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:17:14,570 [DEBUG][       Thread-260740][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:17:14,570 [DEBUG][       Thread-260740][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:17:14,570 [DEBUG][       Thread-260740][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 16:17:14,570 [DEBUG][       Thread-260740][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 16:17:14,570 [DEBUG][       Thread-260740][   transport.py][1871] : client lang: <none>
2025-06-13 16:17:14,570 [DEBUG][       Thread-260740][   transport.py][1871] : server lang: <none>
2025-06-13 16:17:14,571 [DEBUG][       Thread-260740][   transport.py][1871] : kex follows: False
2025-06-13 16:17:14,571 [DEBUG][       Thread-260740][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 16:17:14,571 [DEBUG][       Thread-260740][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 16:17:14,571 [DEBUG][       Thread-260740][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 16:17:14,571 [DEBUG][       Thread-260740][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 16:17:14,571 [DEBUG][       Thread-260740][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 16:17:14,571 [DEBUG][       Thread-260740][   transport.py][1871] : Compression: none
2025-06-13 16:17:14,571 [DEBUG][       Thread-260740][   transport.py][1871] : === End of kex handshake ===
2025-06-13 16:17:14,630 [DEBUG][       Thread-260740][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 16:17:14,630 [DEBUG][       Thread-260740][   transport.py][1871] : Switch to new keys ...
2025-06-13 16:17:14,631 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 16:17:14,631 [DEBUG][       Thread-260740][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 16:17:14,632 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 16:17:14,686 [DEBUG][       Thread-260740][   transport.py][1871] : userauth is OK
2025-06-13 16:17:14,686 [DEBUG][       Thread-260740][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 16:17:14,687 [DEBUG][       Thread-260740][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 16:17:14,687 [DEBUG][       Thread-260740][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 16:17:14,687 [DEBUG][       Thread-260740][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 16:17:14,706 [ INFO][       Thread-260740][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 16:17:14,706 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 16:17:14,706 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 16:17:15,733 [DEBUG][       Thread-260740][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 16:17:15,734 [DEBUG][       Thread-260740][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 16:17:15,784 [DEBUG][       Thread-260740][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 16:17:15,784 [DEBUG][       Thread-260740][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 16:17:15,793 [DEBUG][       Thread-260740][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 16:17:15,802 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 16:17:15,802 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 16:17:15,811 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 16:17:15,820 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 16:17:15,821 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 16:17:15,821 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 16:17:15,829 [DEBUG][       Thread-260740][   transport.py][1871] : EOF in transport thread
2025-06-13 16:17:16,188 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:17:16,189 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:17:17,480 [DEBUG][Thread-260742 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:17:23,049 [DEBUG][Thread-260743 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:17:25,832 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 16:17:25,832 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 16:17:25,832 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 16:17:25,835 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 16:17:26,316 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 16, 17, 21), 17.24, 30.06, 0.0, 16.41, 13.87, 0, 0, 0, 2, 0, 0),)
2025-06-13 16:17:26,316 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 16:17:21
2025-06-13 16:17:26,398 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 16:17:26,402 [DEBUG][       Thread-260744][   transport.py][1871] : starting thread (client mode): 0x867fcf10
2025-06-13 16:17:26,402 [DEBUG][       Thread-260744][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 16:17:26,418 [DEBUG][       Thread-260744][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 16:17:26,418 [ INFO][       Thread-260744][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 16:17:26,423 [DEBUG][       Thread-260744][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 16:17:26,423 [DEBUG][       Thread-260744][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 16:17:26,423 [DEBUG][       Thread-260744][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 16:17:26,423 [DEBUG][       Thread-260744][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:17:26,423 [DEBUG][       Thread-260744][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:17:26,423 [DEBUG][       Thread-260744][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:17:26,423 [DEBUG][       Thread-260744][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:17:26,423 [DEBUG][       Thread-260744][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 16:17:26,423 [DEBUG][       Thread-260744][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 16:17:26,423 [DEBUG][       Thread-260744][   transport.py][1871] : client lang: <none>
2025-06-13 16:17:26,423 [DEBUG][       Thread-260744][   transport.py][1871] : server lang: <none>
2025-06-13 16:17:26,423 [DEBUG][       Thread-260744][   transport.py][1871] : kex follows: False
2025-06-13 16:17:26,423 [DEBUG][       Thread-260744][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 16:17:26,423 [DEBUG][       Thread-260744][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 16:17:26,423 [DEBUG][       Thread-260744][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 16:17:26,423 [DEBUG][       Thread-260744][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 16:17:26,423 [DEBUG][       Thread-260744][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 16:17:26,423 [DEBUG][       Thread-260744][   transport.py][1871] : Compression: none
2025-06-13 16:17:26,423 [DEBUG][       Thread-260744][   transport.py][1871] : === End of kex handshake ===
2025-06-13 16:17:26,439 [DEBUG][       Thread-260744][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 16:17:26,439 [DEBUG][       Thread-260744][   transport.py][1871] : Switch to new keys ...
2025-06-13 16:17:26,440 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 16:17:26,440 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 16:17:26,440 [DEBUG][       Thread-260744][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 16:17:26,441 [DEBUG][       Thread-260744][   transport.py][1871] : userauth is OK
2025-06-13 16:17:26,465 [ INFO][       Thread-260744][   transport.py][1871] : Authentication (password) successful!
2025-06-13 16:17:26,466 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 16:17:26,500 [DEBUG][Thread-260746 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:17:27,079 [DEBUG][       Thread-260744][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 16:17:27,080 [DEBUG][       Thread-260744][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 16:17:27,121 [DEBUG][       Thread-260744][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 16:17:27,121 [DEBUG][       Thread-260744][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 16:17:27,124 [DEBUG][       Thread-260744][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 16:17:27,136 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 16:17:27,137 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 16:17:27,138 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 16:17:27,140 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 16:17:27,146 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 16:17:27,148 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 16:17:27,148 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 16:17:27,149 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 16:17:27,149 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.595074 -999.00  +13.50  19.66     35   -1.30 1 1 1 1 1   887    0 14.61 -42.46 ----- 19.1 19.7 55.2 24.9 16.6 -30.3 15.8 -30.6 16.6 -29.4 17.5 -28.9
2025-06-13 16:17:27,149 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 16:17:27,149 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 16:17:27,149 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.595074
2025-06-13 16:17:27,150 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 16:17:27,150 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 16:17:27,150 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 16:17:27,151 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 16:17:27,151 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 16:17:27,151 [DEBUG][       Thread-260744][   transport.py][1871] : EOF in transport thread
2025-06-13 16:17:27,151 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T16:17:21', tmtdew=17.24, humidity=30.06, cloud=0.0, wind=16.41, temperature=13.87, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T14:16:54.394', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 16:17:27,235 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 16:17:35,519 [DEBUG][Thread-260748 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:17:43,070 [DEBUG][Thread-260749 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:17:44,132 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:17:44,134 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:17:44,555 [DEBUG][Thread-260750 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:17:53,582 [DEBUG][Thread-260751 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:18:02,601 [DEBUG][Thread-260752 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:18:11,621 [DEBUG][Thread-260753 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:18:16,328 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:18:16,329 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:18:20,640 [DEBUG][Thread-260754 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:18:23,081 [DEBUG][Thread-260755 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:18:29,658 [DEBUG][Thread-260756 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:18:38,679 [DEBUG][Thread-260757 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:18:44,178 [DEBUG][Thread-260758 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:18:45,221 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:18:45,222 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:18:47,698 [DEBUG][Thread-260759 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:18:56,718 [DEBUG][Thread-260760 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:19:05,740 [DEBUG][Thread-260761 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:19:14,762 [DEBUG][Thread-260762 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:19:16,465 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:19:16,466 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:19:23,126 [DEBUG][Thread-260763 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:19:23,783 [DEBUG][Thread-260764 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:19:32,800 [DEBUG][Thread-260765 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:19:37,108 [WARNING][ poll_weather_worker][      driver.py][ 286] : Unable to open ssh connection for writing weather state to io.saao.ac.za: [Errno 110] Connection timed out
2025-06-13 16:19:41,822 [DEBUG][Thread-260766 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:19:45,233 [DEBUG][Thread-260767 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:19:46,279 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:19:46,281 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:19:47,119 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 16:19:47,119 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 16:19:47,119 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 16:19:47,120 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 16:19:47,598 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 16, 19, 29), 17.44, 29.77, 0.0, 19.73, 13.89, 0, 0, 0, 2, 0, 0),)
2025-06-13 16:19:47,598 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 16:19:29
2025-06-13 16:19:47,679 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 16:19:47,684 [DEBUG][       Thread-260768][   transport.py][1871] : starting thread (client mode): 0x867fcf10
2025-06-13 16:19:47,684 [DEBUG][       Thread-260768][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 16:19:47,705 [DEBUG][       Thread-260768][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 16:19:47,705 [ INFO][       Thread-260768][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 16:19:47,706 [DEBUG][       Thread-260768][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 16:19:47,706 [DEBUG][       Thread-260768][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 16:19:47,706 [DEBUG][       Thread-260768][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 16:19:47,706 [DEBUG][       Thread-260768][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:19:47,706 [DEBUG][       Thread-260768][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:19:47,707 [DEBUG][       Thread-260768][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:19:47,707 [DEBUG][       Thread-260768][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:19:47,707 [DEBUG][       Thread-260768][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 16:19:47,707 [DEBUG][       Thread-260768][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 16:19:47,707 [DEBUG][       Thread-260768][   transport.py][1871] : client lang: <none>
2025-06-13 16:19:47,707 [DEBUG][       Thread-260768][   transport.py][1871] : server lang: <none>
2025-06-13 16:19:47,707 [DEBUG][       Thread-260768][   transport.py][1871] : kex follows: False
2025-06-13 16:19:47,707 [DEBUG][       Thread-260768][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 16:19:47,707 [DEBUG][       Thread-260768][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 16:19:47,707 [DEBUG][       Thread-260768][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 16:19:47,707 [DEBUG][       Thread-260768][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 16:19:47,707 [DEBUG][       Thread-260768][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 16:19:47,707 [DEBUG][       Thread-260768][   transport.py][1871] : Compression: none
2025-06-13 16:19:47,707 [DEBUG][       Thread-260768][   transport.py][1871] : === End of kex handshake ===
2025-06-13 16:19:47,718 [DEBUG][       Thread-260768][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 16:19:47,719 [DEBUG][       Thread-260768][   transport.py][1871] : Switch to new keys ...
2025-06-13 16:19:47,719 [DEBUG][       Thread-260768][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 16:19:47,719 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 16:19:47,719 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 16:19:47,720 [DEBUG][       Thread-260768][   transport.py][1871] : userauth is OK
2025-06-13 16:19:47,745 [ INFO][       Thread-260768][   transport.py][1871] : Authentication (password) successful!
2025-06-13 16:19:47,746 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 16:19:48,556 [DEBUG][       Thread-260768][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 16:19:48,557 [DEBUG][       Thread-260768][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 16:19:48,601 [DEBUG][       Thread-260768][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 16:19:48,601 [DEBUG][       Thread-260768][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 16:19:48,605 [DEBUG][       Thread-260768][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 16:19:48,619 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 16:19:48,619 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 16:19:48,622 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 16:19:48,623 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 16:19:48,629 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 16:19:48,631 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 16:19:48,632 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 16:19:48,632 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 16:19:48,633 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.596463 -999.00  +13.50  21.95     34   -1.60 1 1 1 1 1   887    0 13.97 -45.60 ----- 22.0 21.9 40.8 28.6 16.5 -31.1 15.7 -31.0 16.5 -30.7 17.4 -29.0
2025-06-13 16:19:48,633 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 16:19:48,633 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 16:19:48,633 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.596463
2025-06-13 16:19:48,633 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 16:19:48,634 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 16:19:48,634 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 16:19:48,634 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 16:19:48,634 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 16:19:48,634 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T16:19:29', tmtdew=17.44, humidity=29.77, cloud=0.0, wind=19.73, temperature=13.89, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T14:18:54.403', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 16:19:48,635 [DEBUG][       Thread-260768][   transport.py][1871] : EOF in transport thread
2025-06-13 16:19:48,717 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 16:19:48,732 [DEBUG][       Thread-260771][   transport.py][1871] : starting thread (client mode): 0x86739330
2025-06-13 16:19:48,732 [DEBUG][       Thread-260771][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 16:19:48,756 [DEBUG][       Thread-260771][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 16:19:48,756 [ INFO][       Thread-260771][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 16:19:48,768 [DEBUG][       Thread-260771][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 16:19:48,768 [DEBUG][       Thread-260771][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 16:19:48,768 [DEBUG][       Thread-260771][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 16:19:48,768 [DEBUG][       Thread-260771][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:19:48,768 [DEBUG][       Thread-260771][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:19:48,768 [DEBUG][       Thread-260771][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:19:48,768 [DEBUG][       Thread-260771][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:19:48,768 [DEBUG][       Thread-260771][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 16:19:48,768 [DEBUG][       Thread-260771][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 16:19:48,768 [DEBUG][       Thread-260771][   transport.py][1871] : client lang: <none>
2025-06-13 16:19:48,768 [DEBUG][       Thread-260771][   transport.py][1871] : server lang: <none>
2025-06-13 16:19:48,769 [DEBUG][       Thread-260771][   transport.py][1871] : kex follows: False
2025-06-13 16:19:48,769 [DEBUG][       Thread-260771][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 16:19:48,769 [DEBUG][       Thread-260771][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 16:19:48,769 [DEBUG][       Thread-260771][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 16:19:48,769 [DEBUG][       Thread-260771][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 16:19:48,769 [DEBUG][       Thread-260771][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 16:19:48,769 [DEBUG][       Thread-260771][   transport.py][1871] : Compression: none
2025-06-13 16:19:48,769 [DEBUG][       Thread-260771][   transport.py][1871] : === End of kex handshake ===
2025-06-13 16:19:48,831 [DEBUG][       Thread-260771][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 16:19:48,832 [DEBUG][       Thread-260771][   transport.py][1871] : Switch to new keys ...
2025-06-13 16:19:48,833 [DEBUG][       Thread-260771][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 16:19:48,833 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 16:19:48,834 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 16:19:48,903 [DEBUG][       Thread-260771][   transport.py][1871] : userauth is OK
2025-06-13 16:19:48,904 [DEBUG][       Thread-260771][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 16:19:48,904 [DEBUG][       Thread-260771][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 16:19:48,904 [DEBUG][       Thread-260771][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 16:19:48,904 [DEBUG][       Thread-260771][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 16:19:48,931 [ INFO][       Thread-260771][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 16:19:48,931 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 16:19:48,931 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 16:19:49,930 [DEBUG][       Thread-260771][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 16:19:49,930 [DEBUG][       Thread-260771][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 16:19:49,981 [DEBUG][       Thread-260771][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 16:19:49,981 [DEBUG][       Thread-260771][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 16:19:49,994 [DEBUG][       Thread-260771][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 16:19:50,007 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 16:19:50,007 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 16:19:50,017 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 16:19:50,036 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 16:19:50,036 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 16:19:50,037 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 16:19:50,051 [DEBUG][       Thread-260771][   transport.py][1871] : EOF in transport thread
2025-06-13 16:19:50,845 [DEBUG][Thread-260773 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:19:59,894 [DEBUG][Thread-260774 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:20:00,044 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 16:20:00,044 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 16:20:00,044 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 16:20:00,047 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 16:20:00,546 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 16, 19, 29), 17.44, 29.77, 0.0, 19.73, 13.89, 0, 0, 0, 2, 0, 0),)
2025-06-13 16:20:00,546 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 16:19:29
2025-06-13 16:20:00,629 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 16:20:00,633 [DEBUG][       Thread-260775][   transport.py][1871] : starting thread (client mode): 0x86391930
2025-06-13 16:20:00,633 [DEBUG][       Thread-260775][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 16:20:00,652 [DEBUG][       Thread-260775][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 16:20:00,652 [ INFO][       Thread-260775][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 16:20:00,655 [DEBUG][       Thread-260775][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 16:20:00,655 [DEBUG][       Thread-260775][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 16:20:00,655 [DEBUG][       Thread-260775][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 16:20:00,655 [DEBUG][       Thread-260775][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:20:00,655 [DEBUG][       Thread-260775][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:20:00,656 [DEBUG][       Thread-260775][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:20:00,656 [DEBUG][       Thread-260775][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:20:00,656 [DEBUG][       Thread-260775][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 16:20:00,656 [DEBUG][       Thread-260775][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 16:20:00,656 [DEBUG][       Thread-260775][   transport.py][1871] : client lang: <none>
2025-06-13 16:20:00,656 [DEBUG][       Thread-260775][   transport.py][1871] : server lang: <none>
2025-06-13 16:20:00,656 [DEBUG][       Thread-260775][   transport.py][1871] : kex follows: False
2025-06-13 16:20:00,656 [DEBUG][       Thread-260775][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 16:20:00,656 [DEBUG][       Thread-260775][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 16:20:00,656 [DEBUG][       Thread-260775][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 16:20:00,656 [DEBUG][       Thread-260775][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 16:20:00,656 [DEBUG][       Thread-260775][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 16:20:00,656 [DEBUG][       Thread-260775][   transport.py][1871] : Compression: none
2025-06-13 16:20:00,656 [DEBUG][       Thread-260775][   transport.py][1871] : === End of kex handshake ===
2025-06-13 16:20:00,675 [DEBUG][       Thread-260775][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 16:20:00,676 [DEBUG][       Thread-260775][   transport.py][1871] : Switch to new keys ...
2025-06-13 16:20:00,676 [DEBUG][       Thread-260775][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 16:20:00,677 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 16:20:00,677 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 16:20:00,678 [DEBUG][       Thread-260775][   transport.py][1871] : userauth is OK
2025-06-13 16:20:00,702 [ INFO][       Thread-260775][   transport.py][1871] : Authentication (password) successful!
2025-06-13 16:20:00,703 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 16:20:01,314 [DEBUG][       Thread-260775][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 16:20:01,314 [DEBUG][       Thread-260775][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 16:20:01,356 [DEBUG][       Thread-260775][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 16:20:01,356 [DEBUG][       Thread-260775][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 16:20:01,357 [DEBUG][       Thread-260775][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 16:20:01,363 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 16:20:01,363 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 16:20:01,364 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 16:20:01,364 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 16:20:01,367 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 16:20:01,367 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 16:20:01,367 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 16:20:01,367 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 16:20:01,368 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.596810 -999.00  +13.50  23.19     34   -1.70 1 1 1 1 1   887    0 14.40 -40.61 ----- 21.9 23.2 34.4 27.6 16.4 -31.0 15.7 -31.2 16.5 -30.1 17.4 -29.0
2025-06-13 16:20:01,368 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 16:20:01,368 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 16:20:01,368 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.596810
2025-06-13 16:20:01,368 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 16:20:01,368 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 16:20:01,368 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 16:20:01,368 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 16:20:01,368 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 16:20:01,368 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T16:19:29', tmtdew=17.44, humidity=29.77, cloud=0.0, wind=19.73, temperature=13.89, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T14:19:24.384', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 16:20:01,368 [DEBUG][       Thread-260775][   transport.py][1871] : EOF in transport thread
2025-06-13 16:20:01,440 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 16:20:01,449 [DEBUG][       Thread-260778][   transport.py][1871] : starting thread (client mode): 0x86739330
2025-06-13 16:20:01,449 [DEBUG][       Thread-260778][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 16:20:01,464 [DEBUG][       Thread-260778][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 16:20:01,464 [ INFO][       Thread-260778][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 16:20:01,471 [DEBUG][       Thread-260778][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 16:20:01,471 [DEBUG][       Thread-260778][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 16:20:01,471 [DEBUG][       Thread-260778][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 16:20:01,471 [DEBUG][       Thread-260778][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:20:01,471 [DEBUG][       Thread-260778][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:20:01,471 [DEBUG][       Thread-260778][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:20:01,471 [DEBUG][       Thread-260778][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:20:01,471 [DEBUG][       Thread-260778][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 16:20:01,471 [DEBUG][       Thread-260778][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 16:20:01,471 [DEBUG][       Thread-260778][   transport.py][1871] : client lang: <none>
2025-06-13 16:20:01,471 [DEBUG][       Thread-260778][   transport.py][1871] : server lang: <none>
2025-06-13 16:20:01,471 [DEBUG][       Thread-260778][   transport.py][1871] : kex follows: False
2025-06-13 16:20:01,471 [DEBUG][       Thread-260778][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 16:20:01,471 [DEBUG][       Thread-260778][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 16:20:01,471 [DEBUG][       Thread-260778][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 16:20:01,471 [DEBUG][       Thread-260778][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 16:20:01,471 [DEBUG][       Thread-260778][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 16:20:01,472 [DEBUG][       Thread-260778][   transport.py][1871] : Compression: none
2025-06-13 16:20:01,472 [DEBUG][       Thread-260778][   transport.py][1871] : === End of kex handshake ===
2025-06-13 16:20:01,532 [DEBUG][       Thread-260778][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 16:20:01,533 [DEBUG][       Thread-260778][   transport.py][1871] : Switch to new keys ...
2025-06-13 16:20:01,533 [DEBUG][       Thread-260778][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 16:20:01,533 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 16:20:01,533 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 16:20:01,589 [DEBUG][       Thread-260778][   transport.py][1871] : userauth is OK
2025-06-13 16:20:01,589 [DEBUG][       Thread-260778][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 16:20:01,589 [DEBUG][       Thread-260778][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 16:20:01,589 [DEBUG][       Thread-260778][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 16:20:01,589 [DEBUG][       Thread-260778][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 16:20:01,604 [ INFO][       Thread-260778][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 16:20:01,604 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 16:20:01,604 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 16:20:02,643 [DEBUG][       Thread-260778][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 16:20:02,644 [DEBUG][       Thread-260778][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 16:20:02,695 [DEBUG][       Thread-260778][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 16:20:02,695 [DEBUG][       Thread-260778][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 16:20:02,708 [DEBUG][       Thread-260778][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 16:20:02,716 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 16:20:02,716 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 16:20:02,724 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 16:20:02,732 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 16:20:02,732 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 16:20:02,733 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 16:20:02,740 [DEBUG][       Thread-260778][   transport.py][1871] : EOF in transport thread
2025-06-13 16:20:08,915 [DEBUG][Thread-260780 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:20:12,743 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 16:20:12,743 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 16:20:12,743 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 16:20:12,746 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 16:20:13,229 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 16, 20), 17.53, 29.58, 0.0, 18.92, 13.88, 0, 0, 0, 2, 0, 0),)
2025-06-13 16:20:13,229 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 16:20:00
2025-06-13 16:20:13,311 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 16:20:13,318 [DEBUG][       Thread-260781][   transport.py][1871] : starting thread (client mode): 0x867ffc10
2025-06-13 16:20:13,318 [DEBUG][       Thread-260781][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 16:20:13,339 [DEBUG][       Thread-260781][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 16:20:13,339 [ INFO][       Thread-260781][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 16:20:13,343 [DEBUG][       Thread-260781][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 16:20:13,343 [DEBUG][       Thread-260781][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 16:20:13,343 [DEBUG][       Thread-260781][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 16:20:13,343 [DEBUG][       Thread-260781][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:20:13,343 [DEBUG][       Thread-260781][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:20:13,343 [DEBUG][       Thread-260781][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:20:13,343 [DEBUG][       Thread-260781][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:20:13,343 [DEBUG][       Thread-260781][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 16:20:13,343 [DEBUG][       Thread-260781][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 16:20:13,343 [DEBUG][       Thread-260781][   transport.py][1871] : client lang: <none>
2025-06-13 16:20:13,343 [DEBUG][       Thread-260781][   transport.py][1871] : server lang: <none>
2025-06-13 16:20:13,343 [DEBUG][       Thread-260781][   transport.py][1871] : kex follows: False
2025-06-13 16:20:13,343 [DEBUG][       Thread-260781][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 16:20:13,343 [DEBUG][       Thread-260781][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 16:20:13,343 [DEBUG][       Thread-260781][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 16:20:13,343 [DEBUG][       Thread-260781][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 16:20:13,343 [DEBUG][       Thread-260781][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 16:20:13,343 [DEBUG][       Thread-260781][   transport.py][1871] : Compression: none
2025-06-13 16:20:13,343 [DEBUG][       Thread-260781][   transport.py][1871] : === End of kex handshake ===
2025-06-13 16:20:13,358 [DEBUG][       Thread-260781][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 16:20:13,358 [DEBUG][       Thread-260781][   transport.py][1871] : Switch to new keys ...
2025-06-13 16:20:13,358 [DEBUG][       Thread-260781][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 16:20:13,359 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 16:20:13,359 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 16:20:13,359 [DEBUG][       Thread-260781][   transport.py][1871] : userauth is OK
2025-06-13 16:20:13,372 [ INFO][       Thread-260781][   transport.py][1871] : Authentication (password) successful!
2025-06-13 16:20:13,372 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 16:20:16,604 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:20:16,605 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:20:17,939 [DEBUG][Thread-260783 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:20:21,021 [DEBUG][       Thread-260781][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 16:20:21,021 [DEBUG][       Thread-260781][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 16:20:21,064 [DEBUG][       Thread-260781][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 16:20:21,065 [DEBUG][       Thread-260781][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 16:20:21,067 [DEBUG][       Thread-260781][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 16:20:21,078 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 16:20:21,079 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 16:20:21,080 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 16:20:21,081 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 16:20:21,086 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 16:20:21,088 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 16:20:21,088 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 16:20:21,088 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 16:20:21,089 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.596810 -999.00  +13.50  23.19     34   -1.70 1 1 1 1 1   887    0 14.40 -40.61 ----- 21.9 23.2 34.4 27.6 16.4 -31.0 15.7 -31.2 16.5 -30.1 17.4 -29.0
2025-06-13 16:20:21,089 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 16:20:21,089 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 16:20:21,089 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.596810
2025-06-13 16:20:21,089 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 16:20:21,090 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 16:20:21,090 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 16:20:21,090 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 16:20:21,090 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 16:20:21,090 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T16:20:00', tmtdew=17.53, humidity=29.58, cloud=0.0, wind=18.92, temperature=13.88, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T14:19:24.384', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 16:20:21,091 [DEBUG][       Thread-260781][   transport.py][1871] : EOF in transport thread
2025-06-13 16:20:21,173 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 16:20:21,189 [DEBUG][       Thread-260785][   transport.py][1871] : starting thread (client mode): 0x867b5990
2025-06-13 16:20:21,189 [DEBUG][       Thread-260785][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 16:20:21,204 [DEBUG][       Thread-260785][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 16:20:21,204 [ INFO][       Thread-260785][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 16:20:21,211 [DEBUG][       Thread-260785][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 16:20:21,211 [DEBUG][       Thread-260785][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 16:20:21,211 [DEBUG][       Thread-260785][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 16:20:21,211 [DEBUG][       Thread-260785][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:20:21,212 [DEBUG][       Thread-260785][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:20:21,212 [DEBUG][       Thread-260785][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:20:21,212 [DEBUG][       Thread-260785][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:20:21,212 [DEBUG][       Thread-260785][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 16:20:21,212 [DEBUG][       Thread-260785][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 16:20:21,212 [DEBUG][       Thread-260785][   transport.py][1871] : client lang: <none>
2025-06-13 16:20:21,212 [DEBUG][       Thread-260785][   transport.py][1871] : server lang: <none>
2025-06-13 16:20:21,212 [DEBUG][       Thread-260785][   transport.py][1871] : kex follows: False
2025-06-13 16:20:21,212 [DEBUG][       Thread-260785][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 16:20:21,212 [DEBUG][       Thread-260785][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 16:20:21,212 [DEBUG][       Thread-260785][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 16:20:21,212 [DEBUG][       Thread-260785][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 16:20:21,212 [DEBUG][       Thread-260785][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 16:20:21,212 [DEBUG][       Thread-260785][   transport.py][1871] : Compression: none
2025-06-13 16:20:21,212 [DEBUG][       Thread-260785][   transport.py][1871] : === End of kex handshake ===
2025-06-13 16:20:21,270 [DEBUG][       Thread-260785][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 16:20:21,270 [DEBUG][       Thread-260785][   transport.py][1871] : Switch to new keys ...
2025-06-13 16:20:21,271 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 16:20:21,272 [DEBUG][       Thread-260785][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 16:20:21,272 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 16:20:21,326 [DEBUG][       Thread-260785][   transport.py][1871] : userauth is OK
2025-06-13 16:20:21,326 [DEBUG][       Thread-260785][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 16:20:21,326 [DEBUG][       Thread-260785][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 16:20:21,327 [DEBUG][       Thread-260785][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 16:20:21,327 [DEBUG][       Thread-260785][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 16:20:21,346 [ INFO][       Thread-260785][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 16:20:21,346 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 16:20:21,346 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 16:20:22,353 [DEBUG][       Thread-260785][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 16:20:22,354 [DEBUG][       Thread-260785][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 16:20:22,404 [DEBUG][       Thread-260785][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 16:20:22,404 [DEBUG][       Thread-260785][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 16:20:22,414 [DEBUG][       Thread-260785][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 16:20:22,423 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 16:20:22,423 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 16:20:22,432 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 16:20:22,441 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 16:20:22,442 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 16:20:22,442 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 16:20:22,450 [DEBUG][       Thread-260785][   transport.py][1871] : EOF in transport thread
2025-06-13 16:20:23,158 [DEBUG][Thread-260787 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:20:26,963 [DEBUG][Thread-260788 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:20:32,443 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 16:20:32,443 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 16:20:32,443 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 16:20:32,446 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 16:20:32,920 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 16, 20), 17.53, 29.58, 0.0, 18.92, 13.88, 0, 0, 0, 2, 0, 0),)
2025-06-13 16:20:32,920 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 16:20:00
2025-06-13 16:20:33,001 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 16:20:33,008 [DEBUG][       Thread-260789][   transport.py][1871] : starting thread (client mode): 0x867fc0d0
2025-06-13 16:20:33,008 [DEBUG][       Thread-260789][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 16:20:33,030 [DEBUG][       Thread-260789][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 16:20:33,030 [ INFO][       Thread-260789][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 16:20:33,031 [DEBUG][       Thread-260789][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 16:20:33,032 [DEBUG][       Thread-260789][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 16:20:33,032 [DEBUG][       Thread-260789][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 16:20:33,032 [DEBUG][       Thread-260789][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:20:33,032 [DEBUG][       Thread-260789][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:20:33,032 [DEBUG][       Thread-260789][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:20:33,032 [DEBUG][       Thread-260789][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:20:33,032 [DEBUG][       Thread-260789][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 16:20:33,032 [DEBUG][       Thread-260789][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 16:20:33,032 [DEBUG][       Thread-260789][   transport.py][1871] : client lang: <none>
2025-06-13 16:20:33,032 [DEBUG][       Thread-260789][   transport.py][1871] : server lang: <none>
2025-06-13 16:20:33,032 [DEBUG][       Thread-260789][   transport.py][1871] : kex follows: False
2025-06-13 16:20:33,032 [DEBUG][       Thread-260789][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 16:20:33,032 [DEBUG][       Thread-260789][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 16:20:33,032 [DEBUG][       Thread-260789][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 16:20:33,032 [DEBUG][       Thread-260789][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 16:20:33,032 [DEBUG][       Thread-260789][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 16:20:33,032 [DEBUG][       Thread-260789][   transport.py][1871] : Compression: none
2025-06-13 16:20:33,032 [DEBUG][       Thread-260789][   transport.py][1871] : === End of kex handshake ===
2025-06-13 16:20:33,049 [DEBUG][       Thread-260789][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 16:20:33,050 [DEBUG][       Thread-260789][   transport.py][1871] : Switch to new keys ...
2025-06-13 16:20:33,050 [DEBUG][       Thread-260789][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 16:20:33,050 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 16:20:33,050 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 16:20:33,051 [DEBUG][       Thread-260789][   transport.py][1871] : userauth is OK
2025-06-13 16:20:33,064 [ INFO][       Thread-260789][   transport.py][1871] : Authentication (password) successful!
2025-06-13 16:20:33,064 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 16:20:33,670 [DEBUG][       Thread-260789][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 16:20:33,670 [DEBUG][       Thread-260789][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 16:20:33,713 [DEBUG][       Thread-260789][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 16:20:33,713 [DEBUG][       Thread-260789][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 16:20:33,715 [DEBUG][       Thread-260789][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 16:20:33,729 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 16:20:33,729 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 16:20:33,730 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 16:20:33,731 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 16:20:33,733 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 16:20:33,734 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 16:20:33,734 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 16:20:33,734 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 16:20:33,734 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.597157 -999.00  +13.50  20.69     34   -1.70 1 1 1 1 1   887    0 14.10 -42.46 ----- 18.9 20.7 30.2 24.9 16.4 -30.5 15.7 -30.9 16.5 -29.9 17.4 -28.8
2025-06-13 16:20:33,735 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 16:20:33,735 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 16:20:33,735 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.597157
2025-06-13 16:20:33,735 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 16:20:33,735 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 16:20:33,735 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 16:20:33,735 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 16:20:33,735 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 16:20:33,735 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T16:20:00', tmtdew=17.53, humidity=29.58, cloud=0.0, wind=18.92, temperature=13.88, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T14:19:54.365', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 16:20:33,735 [DEBUG][       Thread-260789][   transport.py][1871] : EOF in transport thread
2025-06-13 16:20:33,808 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 16:20:33,823 [DEBUG][       Thread-260792][   transport.py][1871] : starting thread (client mode): 0x867b71c0
2025-06-13 16:20:33,823 [DEBUG][       Thread-260792][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 16:20:33,837 [DEBUG][       Thread-260792][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 16:20:33,837 [ INFO][       Thread-260792][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 16:20:33,845 [DEBUG][       Thread-260792][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 16:20:33,845 [DEBUG][       Thread-260792][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 16:20:33,845 [DEBUG][       Thread-260792][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 16:20:33,845 [DEBUG][       Thread-260792][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:20:33,845 [DEBUG][       Thread-260792][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:20:33,845 [DEBUG][       Thread-260792][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:20:33,845 [DEBUG][       Thread-260792][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:20:33,845 [DEBUG][       Thread-260792][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 16:20:33,845 [DEBUG][       Thread-260792][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 16:20:33,845 [DEBUG][       Thread-260792][   transport.py][1871] : client lang: <none>
2025-06-13 16:20:33,845 [DEBUG][       Thread-260792][   transport.py][1871] : server lang: <none>
2025-06-13 16:20:33,845 [DEBUG][       Thread-260792][   transport.py][1871] : kex follows: False
2025-06-13 16:20:33,845 [DEBUG][       Thread-260792][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 16:20:33,845 [DEBUG][       Thread-260792][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 16:20:33,845 [DEBUG][       Thread-260792][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 16:20:33,845 [DEBUG][       Thread-260792][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 16:20:33,845 [DEBUG][       Thread-260792][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 16:20:33,845 [DEBUG][       Thread-260792][   transport.py][1871] : Compression: none
2025-06-13 16:20:33,845 [DEBUG][       Thread-260792][   transport.py][1871] : === End of kex handshake ===
2025-06-13 16:20:33,900 [DEBUG][       Thread-260792][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 16:20:33,900 [DEBUG][       Thread-260792][   transport.py][1871] : Switch to new keys ...
2025-06-13 16:20:33,900 [DEBUG][       Thread-260792][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 16:20:33,901 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 16:20:33,901 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 16:20:33,957 [DEBUG][       Thread-260792][   transport.py][1871] : userauth is OK
2025-06-13 16:20:33,957 [DEBUG][       Thread-260792][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 16:20:33,957 [DEBUG][       Thread-260792][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 16:20:33,957 [DEBUG][       Thread-260792][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 16:20:33,957 [DEBUG][       Thread-260792][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 16:20:33,971 [ INFO][       Thread-260792][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 16:20:33,972 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 16:20:33,972 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 16:20:35,020 [DEBUG][       Thread-260792][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 16:20:35,020 [DEBUG][       Thread-260792][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 16:20:35,072 [DEBUG][       Thread-260792][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 16:20:35,072 [DEBUG][       Thread-260792][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 16:20:35,084 [DEBUG][       Thread-260792][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 16:20:35,092 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 16:20:35,092 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 16:20:35,100 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 16:20:35,108 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 16:20:35,108 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 16:20:35,108 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 16:20:35,115 [DEBUG][       Thread-260792][   transport.py][1871] : EOF in transport thread
2025-06-13 16:20:35,998 [DEBUG][Thread-260794 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:20:45,015 [DEBUG][Thread-260795 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:20:45,116 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 16:20:45,116 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 16:20:45,116 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 16:20:45,117 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 16:20:45,595 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 16, 20, 32), 17.5, 29.69, 0.0, 14.81, 13.76, 0, 0, 0, 2, 0, 0),)
2025-06-13 16:20:45,595 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 16:20:32
2025-06-13 16:20:45,676 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 16:20:45,680 [DEBUG][       Thread-260796][   transport.py][1871] : starting thread (client mode): 0x867ffe80
2025-06-13 16:20:45,680 [DEBUG][       Thread-260796][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 16:20:45,703 [DEBUG][       Thread-260796][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 16:20:45,704 [ INFO][       Thread-260796][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 16:20:45,707 [DEBUG][       Thread-260796][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 16:20:45,707 [DEBUG][       Thread-260796][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 16:20:45,707 [DEBUG][       Thread-260796][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 16:20:45,707 [DEBUG][       Thread-260796][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:20:45,707 [DEBUG][       Thread-260796][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:20:45,707 [DEBUG][       Thread-260796][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:20:45,707 [DEBUG][       Thread-260796][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:20:45,707 [DEBUG][       Thread-260796][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 16:20:45,707 [DEBUG][       Thread-260796][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 16:20:45,707 [DEBUG][       Thread-260796][   transport.py][1871] : client lang: <none>
2025-06-13 16:20:45,707 [DEBUG][       Thread-260796][   transport.py][1871] : server lang: <none>
2025-06-13 16:20:45,707 [DEBUG][       Thread-260796][   transport.py][1871] : kex follows: False
2025-06-13 16:20:45,707 [DEBUG][       Thread-260796][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 16:20:45,707 [DEBUG][       Thread-260796][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 16:20:45,707 [DEBUG][       Thread-260796][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 16:20:45,707 [DEBUG][       Thread-260796][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 16:20:45,707 [DEBUG][       Thread-260796][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 16:20:45,707 [DEBUG][       Thread-260796][   transport.py][1871] : Compression: none
2025-06-13 16:20:45,707 [DEBUG][       Thread-260796][   transport.py][1871] : === End of kex handshake ===
2025-06-13 16:20:45,729 [DEBUG][       Thread-260796][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 16:20:45,730 [DEBUG][       Thread-260796][   transport.py][1871] : Switch to new keys ...
2025-06-13 16:20:45,730 [DEBUG][       Thread-260796][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 16:20:45,730 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 16:20:45,731 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 16:20:45,732 [DEBUG][       Thread-260796][   transport.py][1871] : userauth is OK
2025-06-13 16:20:45,757 [ INFO][       Thread-260796][   transport.py][1871] : Authentication (password) successful!
2025-06-13 16:20:45,757 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 16:20:46,352 [DEBUG][Thread-260798 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:20:46,462 [DEBUG][       Thread-260796][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 16:20:46,462 [DEBUG][       Thread-260796][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 16:20:46,505 [DEBUG][       Thread-260796][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 16:20:46,505 [DEBUG][       Thread-260796][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 16:20:46,508 [DEBUG][       Thread-260796][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 16:20:46,522 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 16:20:46,522 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 16:20:46,524 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 16:20:46,527 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 16:20:46,533 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 16:20:46,535 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 16:20:46,535 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 16:20:46,536 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 16:20:46,536 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.597157 -999.00  +13.50  20.69     34   -1.70 1 1 1 1 1   887    0 14.10 -42.46 ----- 18.9 20.7 30.2 24.9 16.4 -30.5 15.7 -30.9 16.5 -29.9 17.4 -28.8
2025-06-13 16:20:46,536 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 16:20:46,536 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 16:20:46,536 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.597157
2025-06-13 16:20:46,537 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 16:20:46,537 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 16:20:46,537 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 16:20:46,537 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 16:20:46,537 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 16:20:46,538 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T16:20:32', tmtdew=17.5, humidity=29.69, cloud=0.0, wind=14.81, temperature=13.76, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T14:19:54.365', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 16:20:46,538 [DEBUG][       Thread-260796][   transport.py][1871] : EOF in transport thread
2025-06-13 16:20:46,621 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 16:20:46,636 [DEBUG][       Thread-260800][   transport.py][1871] : starting thread (client mode): 0x863a6ec0
2025-06-13 16:20:46,636 [DEBUG][       Thread-260800][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 16:20:46,651 [DEBUG][       Thread-260800][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 16:20:46,651 [ INFO][       Thread-260800][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 16:20:46,658 [DEBUG][       Thread-260800][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 16:20:46,659 [DEBUG][       Thread-260800][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 16:20:46,659 [DEBUG][       Thread-260800][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 16:20:46,659 [DEBUG][       Thread-260800][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:20:46,659 [DEBUG][       Thread-260800][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:20:46,659 [DEBUG][       Thread-260800][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:20:46,659 [DEBUG][       Thread-260800][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:20:46,659 [DEBUG][       Thread-260800][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 16:20:46,659 [DEBUG][       Thread-260800][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 16:20:46,659 [DEBUG][       Thread-260800][   transport.py][1871] : client lang: <none>
2025-06-13 16:20:46,659 [DEBUG][       Thread-260800][   transport.py][1871] : server lang: <none>
2025-06-13 16:20:46,659 [DEBUG][       Thread-260800][   transport.py][1871] : kex follows: False
2025-06-13 16:20:46,659 [DEBUG][       Thread-260800][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 16:20:46,659 [DEBUG][       Thread-260800][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 16:20:46,659 [DEBUG][       Thread-260800][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 16:20:46,659 [DEBUG][       Thread-260800][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 16:20:46,660 [DEBUG][       Thread-260800][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 16:20:46,660 [DEBUG][       Thread-260800][   transport.py][1871] : Compression: none
2025-06-13 16:20:46,660 [DEBUG][       Thread-260800][   transport.py][1871] : === End of kex handshake ===
2025-06-13 16:20:46,718 [DEBUG][       Thread-260800][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 16:20:46,719 [DEBUG][       Thread-260800][   transport.py][1871] : Switch to new keys ...
2025-06-13 16:20:46,720 [DEBUG][       Thread-260800][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 16:20:46,720 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 16:20:46,721 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 16:20:46,774 [DEBUG][       Thread-260800][   transport.py][1871] : userauth is OK
2025-06-13 16:20:46,774 [DEBUG][       Thread-260800][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 16:20:46,774 [DEBUG][       Thread-260800][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 16:20:46,775 [DEBUG][       Thread-260800][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 16:20:46,775 [DEBUG][       Thread-260800][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 16:20:46,794 [ INFO][       Thread-260800][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 16:20:46,794 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 16:20:46,794 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 16:20:47,411 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:20:47,412 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:20:47,823 [DEBUG][       Thread-260800][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 16:20:47,824 [DEBUG][       Thread-260800][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 16:20:47,878 [DEBUG][       Thread-260800][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 16:20:47,878 [DEBUG][       Thread-260800][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 16:20:47,887 [DEBUG][       Thread-260800][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 16:20:47,896 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 16:20:47,897 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 16:20:47,906 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 16:20:47,921 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 16:20:47,922 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 16:20:47,922 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 16:20:47,933 [DEBUG][       Thread-260800][   transport.py][1871] : EOF in transport thread
2025-06-13 16:20:54,039 [DEBUG][Thread-260802 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:20:57,933 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 16:20:57,933 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 16:20:57,933 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 16:20:57,936 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 16:20:58,425 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 16, 20, 32), 17.5, 29.69, 0.0, 14.81, 13.76, 0, 0, 0, 2, 0, 0),)
2025-06-13 16:20:58,425 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 16:20:32
2025-06-13 16:20:58,506 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 16:20:58,511 [DEBUG][       Thread-260803][   transport.py][1871] : starting thread (client mode): 0x863cb850
2025-06-13 16:20:58,511 [DEBUG][       Thread-260803][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 16:20:58,532 [DEBUG][       Thread-260803][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 16:20:58,532 [ INFO][       Thread-260803][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 16:20:58,536 [DEBUG][       Thread-260803][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 16:20:58,536 [DEBUG][       Thread-260803][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 16:20:58,536 [DEBUG][       Thread-260803][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 16:20:58,536 [DEBUG][       Thread-260803][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:20:58,536 [DEBUG][       Thread-260803][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:20:58,536 [DEBUG][       Thread-260803][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:20:58,536 [DEBUG][       Thread-260803][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:20:58,536 [DEBUG][       Thread-260803][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 16:20:58,536 [DEBUG][       Thread-260803][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 16:20:58,536 [DEBUG][       Thread-260803][   transport.py][1871] : client lang: <none>
2025-06-13 16:20:58,536 [DEBUG][       Thread-260803][   transport.py][1871] : server lang: <none>
2025-06-13 16:20:58,536 [DEBUG][       Thread-260803][   transport.py][1871] : kex follows: False
2025-06-13 16:20:58,536 [DEBUG][       Thread-260803][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 16:20:58,536 [DEBUG][       Thread-260803][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 16:20:58,536 [DEBUG][       Thread-260803][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 16:20:58,536 [DEBUG][       Thread-260803][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 16:20:58,536 [DEBUG][       Thread-260803][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 16:20:58,537 [DEBUG][       Thread-260803][   transport.py][1871] : Compression: none
2025-06-13 16:20:58,537 [DEBUG][       Thread-260803][   transport.py][1871] : === End of kex handshake ===
2025-06-13 16:20:58,558 [DEBUG][       Thread-260803][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 16:20:58,559 [DEBUG][       Thread-260803][   transport.py][1871] : Switch to new keys ...
2025-06-13 16:20:58,559 [DEBUG][       Thread-260803][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 16:20:58,560 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 16:20:58,560 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 16:20:58,561 [DEBUG][       Thread-260803][   transport.py][1871] : userauth is OK
2025-06-13 16:20:58,574 [ INFO][       Thread-260803][   transport.py][1871] : Authentication (password) successful!
2025-06-13 16:20:58,574 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 16:20:59,192 [DEBUG][       Thread-260803][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 16:20:59,192 [DEBUG][       Thread-260803][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 16:20:59,233 [DEBUG][       Thread-260803][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 16:20:59,233 [DEBUG][       Thread-260803][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 16:20:59,236 [DEBUG][       Thread-260803][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 16:20:59,247 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 16:20:59,247 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 16:20:59,249 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 16:20:59,251 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 16:20:59,256 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 16:20:59,258 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 16:20:59,258 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 16:20:59,259 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 16:20:59,259 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.597504 -999.00  +13.50  23.28     34   -1.60 1 1 1 1 1   887    0 14.29 -41.79 ----- 23.8 23.3 46.0 26.2 16.5 -30.3 15.7 -30.7 16.5 -31.1 17.3 -28.8
2025-06-13 16:20:59,259 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 16:20:59,259 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 16:20:59,259 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.597504
2025-06-13 16:20:59,260 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 16:20:59,261 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 16:20:59,261 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 16:20:59,261 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 16:20:59,261 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 16:20:59,261 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T16:20:32', tmtdew=17.5, humidity=29.69, cloud=0.0, wind=14.81, temperature=13.76, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T14:20:24.346', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 16:20:59,262 [DEBUG][       Thread-260803][   transport.py][1871] : EOF in transport thread
2025-06-13 16:20:59,335 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 16:20:59,344 [DEBUG][       Thread-260806][   transport.py][1871] : starting thread (client mode): 0x867b5690
2025-06-13 16:20:59,344 [DEBUG][       Thread-260806][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 16:20:59,359 [DEBUG][       Thread-260806][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 16:20:59,359 [ INFO][       Thread-260806][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 16:20:59,373 [DEBUG][       Thread-260806][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 16:20:59,373 [DEBUG][       Thread-260806][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 16:20:59,373 [DEBUG][       Thread-260806][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 16:20:59,373 [DEBUG][       Thread-260806][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:20:59,373 [DEBUG][       Thread-260806][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:20:59,374 [DEBUG][       Thread-260806][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:20:59,374 [DEBUG][       Thread-260806][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:20:59,374 [DEBUG][       Thread-260806][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 16:20:59,374 [DEBUG][       Thread-260806][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 16:20:59,374 [DEBUG][       Thread-260806][   transport.py][1871] : client lang: <none>
2025-06-13 16:20:59,374 [DEBUG][       Thread-260806][   transport.py][1871] : server lang: <none>
2025-06-13 16:20:59,374 [DEBUG][       Thread-260806][   transport.py][1871] : kex follows: False
2025-06-13 16:20:59,374 [DEBUG][       Thread-260806][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 16:20:59,374 [DEBUG][       Thread-260806][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 16:20:59,374 [DEBUG][       Thread-260806][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 16:20:59,374 [DEBUG][       Thread-260806][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 16:20:59,374 [DEBUG][       Thread-260806][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 16:20:59,374 [DEBUG][       Thread-260806][   transport.py][1871] : Compression: none
2025-06-13 16:20:59,374 [DEBUG][       Thread-260806][   transport.py][1871] : === End of kex handshake ===
2025-06-13 16:20:59,430 [DEBUG][       Thread-260806][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 16:20:59,431 [DEBUG][       Thread-260806][   transport.py][1871] : Switch to new keys ...
2025-06-13 16:20:59,431 [DEBUG][       Thread-260806][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 16:20:59,432 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 16:20:59,433 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 16:20:59,486 [DEBUG][       Thread-260806][   transport.py][1871] : userauth is OK
2025-06-13 16:20:59,486 [DEBUG][       Thread-260806][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 16:20:59,487 [DEBUG][       Thread-260806][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 16:20:59,487 [DEBUG][       Thread-260806][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 16:20:59,487 [DEBUG][       Thread-260806][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 16:20:59,507 [ INFO][       Thread-260806][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 16:20:59,508 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 16:20:59,508 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 16:21:00,482 [DEBUG][       Thread-260806][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 16:21:00,482 [DEBUG][       Thread-260806][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 16:21:00,536 [DEBUG][       Thread-260806][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 16:21:00,536 [DEBUG][       Thread-260806][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 16:21:00,547 [DEBUG][       Thread-260806][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 16:21:00,558 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 16:21:00,559 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 16:21:00,572 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 16:21:00,589 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 16:21:00,589 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 16:21:00,590 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 16:21:00,602 [DEBUG][       Thread-260806][   transport.py][1871] : EOF in transport thread
2025-06-13 16:21:03,072 [DEBUG][Thread-260808 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:21:10,600 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 16:21:10,600 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 16:21:10,600 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 16:21:10,603 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 16:21:11,078 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 16, 21, 4), 17.46, 29.76, 0.0, 18.74, 13.71, 0, 0, 0, 2, 0, 0),)
2025-06-13 16:21:11,078 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 16:21:04
2025-06-13 16:21:11,157 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 16:21:11,164 [DEBUG][       Thread-260809][   transport.py][1871] : starting thread (client mode): 0x867fe830
2025-06-13 16:21:11,164 [DEBUG][       Thread-260809][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 16:21:11,177 [DEBUG][       Thread-260809][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 16:21:11,177 [ INFO][       Thread-260809][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 16:21:11,179 [DEBUG][       Thread-260809][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 16:21:11,179 [DEBUG][       Thread-260809][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 16:21:11,179 [DEBUG][       Thread-260809][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 16:21:11,179 [DEBUG][       Thread-260809][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:21:11,179 [DEBUG][       Thread-260809][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:21:11,179 [DEBUG][       Thread-260809][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:21:11,179 [DEBUG][       Thread-260809][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:21:11,179 [DEBUG][       Thread-260809][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 16:21:11,179 [DEBUG][       Thread-260809][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 16:21:11,179 [DEBUG][       Thread-260809][   transport.py][1871] : client lang: <none>
2025-06-13 16:21:11,179 [DEBUG][       Thread-260809][   transport.py][1871] : server lang: <none>
2025-06-13 16:21:11,179 [DEBUG][       Thread-260809][   transport.py][1871] : kex follows: False
2025-06-13 16:21:11,179 [DEBUG][       Thread-260809][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 16:21:11,179 [DEBUG][       Thread-260809][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 16:21:11,179 [DEBUG][       Thread-260809][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 16:21:11,179 [DEBUG][       Thread-260809][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 16:21:11,179 [DEBUG][       Thread-260809][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 16:21:11,179 [DEBUG][       Thread-260809][   transport.py][1871] : Compression: none
2025-06-13 16:21:11,179 [DEBUG][       Thread-260809][   transport.py][1871] : === End of kex handshake ===
2025-06-13 16:21:11,190 [DEBUG][       Thread-260809][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 16:21:11,190 [DEBUG][       Thread-260809][   transport.py][1871] : Switch to new keys ...
2025-06-13 16:21:11,191 [DEBUG][       Thread-260809][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 16:21:11,191 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 16:21:11,191 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 16:21:11,192 [DEBUG][       Thread-260809][   transport.py][1871] : userauth is OK
2025-06-13 16:21:11,205 [ INFO][       Thread-260809][   transport.py][1871] : Authentication (password) successful!
2025-06-13 16:21:11,206 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 16:21:11,823 [DEBUG][       Thread-260809][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 16:21:11,823 [DEBUG][       Thread-260809][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 16:21:11,865 [DEBUG][       Thread-260809][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 16:21:11,865 [DEBUG][       Thread-260809][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 16:21:11,868 [DEBUG][       Thread-260809][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 16:21:11,883 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 16:21:11,883 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 16:21:11,885 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 16:21:11,887 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 16:21:11,892 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 16:21:11,894 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 16:21:11,894 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 16:21:11,895 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 16:21:11,895 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.597504 -999.00  +13.50  23.28     34   -1.60 1 1 1 1 1   887    0 14.29 -41.79 ----- 23.8 23.3 46.0 26.2 16.5 -30.3 15.7 -30.7 16.5 -31.1 17.3 -28.8
2025-06-13 16:21:11,895 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 16:21:11,895 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 16:21:11,895 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.597504
2025-06-13 16:21:11,896 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 16:21:11,896 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 16:21:11,896 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 16:21:11,896 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 16:21:11,896 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 16:21:11,897 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T16:21:04', tmtdew=17.46, humidity=29.76, cloud=0.0, wind=18.74, temperature=13.71, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T14:20:24.346', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 16:21:11,898 [DEBUG][       Thread-260809][   transport.py][1871] : EOF in transport thread
2025-06-13 16:21:11,979 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 16:21:11,992 [DEBUG][       Thread-260812][   transport.py][1871] : starting thread (client mode): 0x863efbe0
2025-06-13 16:21:11,992 [DEBUG][       Thread-260812][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 16:21:12,008 [DEBUG][       Thread-260812][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 16:21:12,008 [ INFO][       Thread-260812][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 16:21:12,015 [DEBUG][       Thread-260812][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 16:21:12,015 [DEBUG][       Thread-260812][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 16:21:12,015 [DEBUG][       Thread-260812][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 16:21:12,015 [DEBUG][       Thread-260812][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:21:12,016 [DEBUG][       Thread-260812][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:21:12,016 [DEBUG][       Thread-260812][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:21:12,016 [DEBUG][       Thread-260812][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:21:12,016 [DEBUG][       Thread-260812][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 16:21:12,016 [DEBUG][       Thread-260812][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 16:21:12,016 [DEBUG][       Thread-260812][   transport.py][1871] : client lang: <none>
2025-06-13 16:21:12,016 [DEBUG][       Thread-260812][   transport.py][1871] : server lang: <none>
2025-06-13 16:21:12,016 [DEBUG][       Thread-260812][   transport.py][1871] : kex follows: False
2025-06-13 16:21:12,016 [DEBUG][       Thread-260812][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 16:21:12,016 [DEBUG][       Thread-260812][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 16:21:12,016 [DEBUG][       Thread-260812][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 16:21:12,016 [DEBUG][       Thread-260812][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 16:21:12,016 [DEBUG][       Thread-260812][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 16:21:12,016 [DEBUG][       Thread-260812][   transport.py][1871] : Compression: none
2025-06-13 16:21:12,016 [DEBUG][       Thread-260812][   transport.py][1871] : === End of kex handshake ===
2025-06-13 16:21:12,074 [DEBUG][       Thread-260812][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 16:21:12,075 [DEBUG][       Thread-260812][   transport.py][1871] : Switch to new keys ...
2025-06-13 16:21:12,075 [DEBUG][       Thread-260812][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 16:21:12,076 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 16:21:12,076 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 16:21:12,094 [DEBUG][Thread-260814 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:21:12,131 [DEBUG][       Thread-260812][   transport.py][1871] : userauth is OK
2025-06-13 16:21:12,131 [DEBUG][       Thread-260812][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 16:21:12,132 [DEBUG][       Thread-260812][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 16:21:12,132 [DEBUG][       Thread-260812][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 16:21:12,132 [DEBUG][       Thread-260812][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 16:21:12,155 [ INFO][       Thread-260812][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 16:21:12,156 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 16:21:12,156 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 16:21:13,185 [DEBUG][       Thread-260812][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 16:21:13,185 [DEBUG][       Thread-260812][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 16:21:13,236 [DEBUG][       Thread-260812][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 16:21:13,236 [DEBUG][       Thread-260812][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 16:21:13,245 [DEBUG][       Thread-260812][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 16:21:13,254 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 16:21:13,254 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 16:21:13,263 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 16:21:13,272 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 16:21:13,273 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 16:21:13,273 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 16:21:13,281 [DEBUG][       Thread-260812][   transport.py][1871] : EOF in transport thread
2025-06-13 16:21:16,744 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:21:16,745 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:21:21,125 [DEBUG][Thread-260815 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:21:23,191 [DEBUG][Thread-260816 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:21:23,284 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 16:21:23,284 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 16:21:23,284 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 16:21:23,287 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 16:21:23,771 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 16, 21, 4), 17.46, 29.76, 0.0, 18.74, 13.71, 0, 0, 0, 2, 0, 0),)
2025-06-13 16:21:23,771 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 16:21:04
2025-06-13 16:21:23,849 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 16:21:23,853 [DEBUG][       Thread-260817][   transport.py][1871] : starting thread (client mode): 0x86368b50
2025-06-13 16:21:23,853 [DEBUG][       Thread-260817][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 16:21:23,875 [DEBUG][       Thread-260817][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 16:21:23,875 [ INFO][       Thread-260817][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 16:21:23,879 [DEBUG][       Thread-260817][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 16:21:23,879 [DEBUG][       Thread-260817][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 16:21:23,879 [DEBUG][       Thread-260817][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 16:21:23,879 [DEBUG][       Thread-260817][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:21:23,879 [DEBUG][       Thread-260817][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:21:23,880 [DEBUG][       Thread-260817][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:21:23,880 [DEBUG][       Thread-260817][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:21:23,880 [DEBUG][       Thread-260817][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 16:21:23,880 [DEBUG][       Thread-260817][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 16:21:23,880 [DEBUG][       Thread-260817][   transport.py][1871] : client lang: <none>
2025-06-13 16:21:23,880 [DEBUG][       Thread-260817][   transport.py][1871] : server lang: <none>
2025-06-13 16:21:23,880 [DEBUG][       Thread-260817][   transport.py][1871] : kex follows: False
2025-06-13 16:21:23,880 [DEBUG][       Thread-260817][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 16:21:23,880 [DEBUG][       Thread-260817][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 16:21:23,880 [DEBUG][       Thread-260817][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 16:21:23,880 [DEBUG][       Thread-260817][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 16:21:23,881 [DEBUG][       Thread-260817][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 16:21:23,881 [DEBUG][       Thread-260817][   transport.py][1871] : Compression: none
2025-06-13 16:21:23,881 [DEBUG][       Thread-260817][   transport.py][1871] : === End of kex handshake ===
2025-06-13 16:21:23,901 [DEBUG][       Thread-260817][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 16:21:23,901 [DEBUG][       Thread-260817][   transport.py][1871] : Switch to new keys ...
2025-06-13 16:21:23,902 [DEBUG][       Thread-260817][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 16:21:23,903 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 16:21:23,903 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 16:21:23,904 [DEBUG][       Thread-260817][   transport.py][1871] : userauth is OK
2025-06-13 16:21:23,917 [ INFO][       Thread-260817][   transport.py][1871] : Authentication (password) successful!
2025-06-13 16:21:23,918 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 16:21:24,541 [DEBUG][       Thread-260817][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 16:21:24,541 [DEBUG][       Thread-260817][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 16:21:24,585 [DEBUG][       Thread-260817][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 16:21:24,585 [DEBUG][       Thread-260817][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 16:21:24,589 [DEBUG][       Thread-260817][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 16:21:24,603 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 16:21:24,604 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 16:21:24,606 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 16:21:24,609 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 16:21:24,616 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 16:21:24,618 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 16:21:24,618 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 16:21:24,619 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 16:21:24,619 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.597504 -999.00  +13.50  23.28     34   -1.60 1 1 1 1 1   887    0 14.29 -41.79 ----- 23.8 23.3 46.0 26.2 16.5 -30.3 15.7 -30.7 16.5 -31.1 17.3 -28.8
2025-06-13 16:21:24,619 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 16:21:24,619 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 16:21:24,619 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.597504
2025-06-13 16:21:24,620 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 16:21:24,620 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 16:21:24,620 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 16:21:24,620 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 16:21:24,620 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 16:21:24,621 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T16:21:04', tmtdew=17.46, humidity=29.76, cloud=0.0, wind=18.74, temperature=13.71, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T14:20:24.346', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 16:21:24,621 [DEBUG][       Thread-260817][   transport.py][1871] : EOF in transport thread
2025-06-13 16:21:24,704 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 16:21:24,713 [DEBUG][       Thread-260820][   transport.py][1871] : starting thread (client mode): 0x863932e0
2025-06-13 16:21:24,713 [DEBUG][       Thread-260820][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 16:21:24,728 [DEBUG][       Thread-260820][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 16:21:24,728 [ INFO][       Thread-260820][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 16:21:24,736 [DEBUG][       Thread-260820][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 16:21:24,736 [DEBUG][       Thread-260820][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 16:21:24,736 [DEBUG][       Thread-260820][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 16:21:24,736 [DEBUG][       Thread-260820][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:21:24,736 [DEBUG][       Thread-260820][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:21:24,736 [DEBUG][       Thread-260820][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:21:24,736 [DEBUG][       Thread-260820][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:21:24,736 [DEBUG][       Thread-260820][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 16:21:24,736 [DEBUG][       Thread-260820][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 16:21:24,736 [DEBUG][       Thread-260820][   transport.py][1871] : client lang: <none>
2025-06-13 16:21:24,736 [DEBUG][       Thread-260820][   transport.py][1871] : server lang: <none>
2025-06-13 16:21:24,736 [DEBUG][       Thread-260820][   transport.py][1871] : kex follows: False
2025-06-13 16:21:24,736 [DEBUG][       Thread-260820][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 16:21:24,736 [DEBUG][       Thread-260820][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 16:21:24,736 [DEBUG][       Thread-260820][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 16:21:24,736 [DEBUG][       Thread-260820][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 16:21:24,736 [DEBUG][       Thread-260820][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 16:21:24,736 [DEBUG][       Thread-260820][   transport.py][1871] : Compression: none
2025-06-13 16:21:24,737 [DEBUG][       Thread-260820][   transport.py][1871] : === End of kex handshake ===
2025-06-13 16:21:24,794 [DEBUG][       Thread-260820][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 16:21:24,795 [DEBUG][       Thread-260820][   transport.py][1871] : Switch to new keys ...
2025-06-13 16:21:24,795 [DEBUG][       Thread-260820][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 16:21:24,796 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 16:21:24,797 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 16:21:24,857 [DEBUG][       Thread-260820][   transport.py][1871] : userauth is OK
2025-06-13 16:21:24,857 [DEBUG][       Thread-260820][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 16:21:24,857 [DEBUG][       Thread-260820][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 16:21:24,857 [DEBUG][       Thread-260820][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 16:21:24,857 [DEBUG][       Thread-260820][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 16:21:24,876 [ INFO][       Thread-260820][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 16:21:24,876 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 16:21:24,876 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 16:21:25,915 [DEBUG][       Thread-260820][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 16:21:25,915 [DEBUG][       Thread-260820][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 16:21:25,964 [DEBUG][       Thread-260820][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 16:21:25,964 [DEBUG][       Thread-260820][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 16:21:25,973 [DEBUG][       Thread-260820][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 16:21:25,983 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 16:21:25,983 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 16:21:25,995 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 16:21:26,006 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 16:21:26,007 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 16:21:26,007 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 16:21:26,016 [DEBUG][       Thread-260820][   transport.py][1871] : EOF in transport thread
2025-06-13 16:21:30,143 [DEBUG][Thread-260822 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:21:36,017 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 16:21:36,018 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 16:21:36,018 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 16:21:36,020 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 16:21:36,504 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 16, 21, 4), 17.46, 29.76, 0.0, 18.74, 13.71, 0, 0, 0, 2, 0, 0),)
2025-06-13 16:21:36,504 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 16:21:04
2025-06-13 16:21:36,585 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 16:21:36,590 [DEBUG][       Thread-260823][   transport.py][1871] : starting thread (client mode): 0x86368940
2025-06-13 16:21:36,590 [DEBUG][       Thread-260823][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 16:21:36,610 [DEBUG][       Thread-260823][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 16:21:36,610 [ INFO][       Thread-260823][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 16:21:36,614 [DEBUG][       Thread-260823][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 16:21:36,614 [DEBUG][       Thread-260823][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 16:21:36,614 [DEBUG][       Thread-260823][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 16:21:36,614 [DEBUG][       Thread-260823][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:21:36,614 [DEBUG][       Thread-260823][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:21:36,614 [DEBUG][       Thread-260823][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:21:36,614 [DEBUG][       Thread-260823][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:21:36,614 [DEBUG][       Thread-260823][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 16:21:36,614 [DEBUG][       Thread-260823][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 16:21:36,614 [DEBUG][       Thread-260823][   transport.py][1871] : client lang: <none>
2025-06-13 16:21:36,614 [DEBUG][       Thread-260823][   transport.py][1871] : server lang: <none>
2025-06-13 16:21:36,614 [DEBUG][       Thread-260823][   transport.py][1871] : kex follows: False
2025-06-13 16:21:36,614 [DEBUG][       Thread-260823][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 16:21:36,614 [DEBUG][       Thread-260823][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 16:21:36,614 [DEBUG][       Thread-260823][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 16:21:36,614 [DEBUG][       Thread-260823][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 16:21:36,614 [DEBUG][       Thread-260823][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 16:21:36,614 [DEBUG][       Thread-260823][   transport.py][1871] : Compression: none
2025-06-13 16:21:36,614 [DEBUG][       Thread-260823][   transport.py][1871] : === End of kex handshake ===
2025-06-13 16:21:36,628 [DEBUG][       Thread-260823][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 16:21:36,628 [DEBUG][       Thread-260823][   transport.py][1871] : Switch to new keys ...
2025-06-13 16:21:36,628 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 16:21:36,628 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 16:21:36,629 [DEBUG][       Thread-260823][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 16:21:36,629 [DEBUG][       Thread-260823][   transport.py][1871] : userauth is OK
2025-06-13 16:21:36,653 [ INFO][       Thread-260823][   transport.py][1871] : Authentication (password) successful!
2025-06-13 16:21:36,654 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 16:21:37,290 [DEBUG][       Thread-260823][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 16:21:37,290 [DEBUG][       Thread-260823][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 16:21:37,332 [DEBUG][       Thread-260823][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 16:21:37,333 [DEBUG][       Thread-260823][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 16:21:37,335 [DEBUG][       Thread-260823][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 16:21:37,348 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 16:21:37,348 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 16:21:37,349 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 16:21:37,350 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 16:21:37,353 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 16:21:37,354 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 16:21:37,354 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 16:21:37,354 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 16:21:37,354 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.598199 -999.00  +13.50  18.92     34   -1.70 1 1 1 1 1   887    0 14.23 -40.68 ----- 22.5 18.9 45.8 23.0 16.5 -30.1 15.7 -30.6 16.4 -30.8 17.4 -28.6
2025-06-13 16:21:37,354 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 16:21:37,354 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 16:21:37,354 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.598199
2025-06-13 16:21:37,354 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 16:21:37,354 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 16:21:37,354 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 16:21:37,354 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 16:21:37,354 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 16:21:37,354 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T16:21:04', tmtdew=17.46, humidity=29.76, cloud=0.0, wind=18.74, temperature=13.71, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T14:21:24.394', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 16:21:37,355 [DEBUG][       Thread-260823][   transport.py][1871] : EOF in transport thread
2025-06-13 16:21:37,429 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 16:21:37,440 [DEBUG][       Thread-260826][   transport.py][1871] : starting thread (client mode): 0x863c9db0
2025-06-13 16:21:37,440 [DEBUG][       Thread-260826][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 16:21:37,455 [DEBUG][       Thread-260826][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 16:21:37,455 [ INFO][       Thread-260826][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 16:21:37,463 [DEBUG][       Thread-260826][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 16:21:37,463 [DEBUG][       Thread-260826][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 16:21:37,463 [DEBUG][       Thread-260826][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 16:21:37,463 [DEBUG][       Thread-260826][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:21:37,463 [DEBUG][       Thread-260826][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:21:37,463 [DEBUG][       Thread-260826][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:21:37,463 [DEBUG][       Thread-260826][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:21:37,463 [DEBUG][       Thread-260826][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 16:21:37,463 [DEBUG][       Thread-260826][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 16:21:37,463 [DEBUG][       Thread-260826][   transport.py][1871] : client lang: <none>
2025-06-13 16:21:37,463 [DEBUG][       Thread-260826][   transport.py][1871] : server lang: <none>
2025-06-13 16:21:37,463 [DEBUG][       Thread-260826][   transport.py][1871] : kex follows: False
2025-06-13 16:21:37,463 [DEBUG][       Thread-260826][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 16:21:37,463 [DEBUG][       Thread-260826][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 16:21:37,463 [DEBUG][       Thread-260826][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 16:21:37,463 [DEBUG][       Thread-260826][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 16:21:37,463 [DEBUG][       Thread-260826][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 16:21:37,463 [DEBUG][       Thread-260826][   transport.py][1871] : Compression: none
2025-06-13 16:21:37,463 [DEBUG][       Thread-260826][   transport.py][1871] : === End of kex handshake ===
2025-06-13 16:21:37,521 [DEBUG][       Thread-260826][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 16:21:37,521 [DEBUG][       Thread-260826][   transport.py][1871] : Switch to new keys ...
2025-06-13 16:21:37,521 [DEBUG][       Thread-260826][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 16:21:37,521 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 16:21:37,521 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 16:21:37,577 [DEBUG][       Thread-260826][   transport.py][1871] : userauth is OK
2025-06-13 16:21:37,578 [DEBUG][       Thread-260826][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 16:21:37,578 [DEBUG][       Thread-260826][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 16:21:37,578 [DEBUG][       Thread-260826][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 16:21:37,578 [DEBUG][       Thread-260826][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 16:21:37,592 [ INFO][       Thread-260826][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 16:21:37,592 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 16:21:37,592 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 16:21:38,607 [DEBUG][       Thread-260826][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 16:21:38,607 [DEBUG][       Thread-260826][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 16:21:38,656 [DEBUG][       Thread-260826][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 16:21:38,656 [DEBUG][       Thread-260826][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 16:21:38,665 [DEBUG][       Thread-260826][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 16:21:38,674 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 16:21:38,674 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 16:21:38,683 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 16:21:38,693 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 16:21:38,693 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 16:21:38,694 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 16:21:38,702 [DEBUG][       Thread-260826][   transport.py][1871] : EOF in transport thread
2025-06-13 16:21:39,170 [DEBUG][Thread-260828 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:21:47,493 [DEBUG][Thread-260829 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:21:48,192 [DEBUG][Thread-260830 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:21:48,553 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:21:48,554 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:21:48,704 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 16:21:48,704 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 16:21:48,705 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 16:21:48,707 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 16:21:49,189 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 16, 21, 35), 17.5, 29.43, 0.0, 18.16, 13.72, 0, 0, 0, 2, 0, 0),)
2025-06-13 16:21:49,189 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 16:21:35
2025-06-13 16:21:49,268 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 16:21:49,272 [DEBUG][       Thread-260831][   transport.py][1871] : starting thread (client mode): 0x8636b040
2025-06-13 16:21:49,272 [DEBUG][       Thread-260831][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 16:21:49,292 [DEBUG][       Thread-260831][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 16:21:49,292 [ INFO][       Thread-260831][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 16:21:49,295 [DEBUG][       Thread-260831][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 16:21:49,295 [DEBUG][       Thread-260831][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 16:21:49,295 [DEBUG][       Thread-260831][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 16:21:49,295 [DEBUG][       Thread-260831][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:21:49,295 [DEBUG][       Thread-260831][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:21:49,295 [DEBUG][       Thread-260831][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:21:49,295 [DEBUG][       Thread-260831][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:21:49,295 [DEBUG][       Thread-260831][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 16:21:49,295 [DEBUG][       Thread-260831][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 16:21:49,296 [DEBUG][       Thread-260831][   transport.py][1871] : client lang: <none>
2025-06-13 16:21:49,296 [DEBUG][       Thread-260831][   transport.py][1871] : server lang: <none>
2025-06-13 16:21:49,296 [DEBUG][       Thread-260831][   transport.py][1871] : kex follows: False
2025-06-13 16:21:49,296 [DEBUG][       Thread-260831][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 16:21:49,296 [DEBUG][       Thread-260831][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 16:21:49,296 [DEBUG][       Thread-260831][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 16:21:49,296 [DEBUG][       Thread-260831][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 16:21:49,296 [DEBUG][       Thread-260831][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 16:21:49,296 [DEBUG][       Thread-260831][   transport.py][1871] : Compression: none
2025-06-13 16:21:49,296 [DEBUG][       Thread-260831][   transport.py][1871] : === End of kex handshake ===
2025-06-13 16:21:49,313 [DEBUG][       Thread-260831][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 16:21:49,313 [DEBUG][       Thread-260831][   transport.py][1871] : Switch to new keys ...
2025-06-13 16:21:49,314 [DEBUG][       Thread-260831][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 16:21:49,314 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 16:21:49,314 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 16:21:49,315 [DEBUG][       Thread-260831][   transport.py][1871] : userauth is OK
2025-06-13 16:21:49,329 [ INFO][       Thread-260831][   transport.py][1871] : Authentication (password) successful!
2025-06-13 16:21:49,330 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 16:21:49,978 [DEBUG][       Thread-260831][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 16:21:49,978 [DEBUG][       Thread-260831][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 16:21:50,021 [DEBUG][       Thread-260831][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 16:21:50,021 [DEBUG][       Thread-260831][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 16:21:50,024 [DEBUG][       Thread-260831][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 16:21:50,036 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 16:21:50,037 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 16:21:50,039 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 16:21:50,041 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 16:21:50,047 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 16:21:50,049 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 16:21:50,049 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 16:21:50,050 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 16:21:50,050 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.598199 -999.00  +13.50  18.92     34   -1.70 1 1 1 1 1   887    0 14.23 -40.68 ----- 22.5 18.9 45.8 23.0 16.5 -30.1 15.7 -30.6 16.4 -30.8 17.4 -28.6
2025-06-13 16:21:50,050 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 16:21:50,050 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 16:21:50,050 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.598199
2025-06-13 16:21:50,051 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 16:21:50,051 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 16:21:50,051 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 16:21:50,051 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 16:21:50,052 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 16:21:50,052 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T16:21:35', tmtdew=17.5, humidity=29.43, cloud=0.0, wind=18.16, temperature=13.72, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T14:21:24.394', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 16:21:50,053 [DEBUG][       Thread-260831][   transport.py][1871] : EOF in transport thread
2025-06-13 16:21:50,135 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 16:21:50,145 [DEBUG][       Thread-260834][   transport.py][1871] : starting thread (client mode): 0x863beda0
2025-06-13 16:21:50,145 [DEBUG][       Thread-260834][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 16:21:50,160 [DEBUG][       Thread-260834][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 16:21:50,160 [ INFO][       Thread-260834][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 16:21:50,168 [DEBUG][       Thread-260834][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 16:21:50,168 [DEBUG][       Thread-260834][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 16:21:50,168 [DEBUG][       Thread-260834][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 16:21:50,168 [DEBUG][       Thread-260834][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:21:50,168 [DEBUG][       Thread-260834][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:21:50,168 [DEBUG][       Thread-260834][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:21:50,168 [DEBUG][       Thread-260834][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:21:50,168 [DEBUG][       Thread-260834][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 16:21:50,168 [DEBUG][       Thread-260834][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 16:21:50,168 [DEBUG][       Thread-260834][   transport.py][1871] : client lang: <none>
2025-06-13 16:21:50,168 [DEBUG][       Thread-260834][   transport.py][1871] : server lang: <none>
2025-06-13 16:21:50,168 [DEBUG][       Thread-260834][   transport.py][1871] : kex follows: False
2025-06-13 16:21:50,168 [DEBUG][       Thread-260834][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 16:21:50,169 [DEBUG][       Thread-260834][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 16:21:50,169 [DEBUG][       Thread-260834][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 16:21:50,169 [DEBUG][       Thread-260834][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 16:21:50,169 [DEBUG][       Thread-260834][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 16:21:50,169 [DEBUG][       Thread-260834][   transport.py][1871] : Compression: none
2025-06-13 16:21:50,169 [DEBUG][       Thread-260834][   transport.py][1871] : === End of kex handshake ===
2025-06-13 16:21:50,231 [DEBUG][       Thread-260834][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 16:21:50,231 [DEBUG][       Thread-260834][   transport.py][1871] : Switch to new keys ...
2025-06-13 16:21:50,232 [DEBUG][       Thread-260834][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 16:21:50,232 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 16:21:50,233 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 16:21:50,290 [DEBUG][       Thread-260834][   transport.py][1871] : userauth is OK
2025-06-13 16:21:50,290 [DEBUG][       Thread-260834][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 16:21:50,290 [DEBUG][       Thread-260834][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 16:21:50,290 [DEBUG][       Thread-260834][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 16:21:50,290 [DEBUG][       Thread-260834][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 16:21:50,310 [ INFO][       Thread-260834][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 16:21:50,310 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 16:21:50,311 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 16:21:51,313 [DEBUG][       Thread-260834][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 16:21:51,314 [DEBUG][       Thread-260834][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 16:21:51,364 [DEBUG][       Thread-260834][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 16:21:51,364 [DEBUG][       Thread-260834][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 16:21:51,375 [DEBUG][       Thread-260834][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 16:21:51,386 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 16:21:51,386 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 16:21:51,395 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 16:21:51,409 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 16:21:51,409 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 16:21:51,409 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 16:21:51,418 [DEBUG][       Thread-260834][   transport.py][1871] : EOF in transport thread
2025-06-13 16:21:57,211 [DEBUG][Thread-260836 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:22:01,420 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 16:22:01,420 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 16:22:01,420 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 16:22:01,421 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 16:22:01,882 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 16, 21, 35), 17.5, 29.43, 0.0, 18.16, 13.72, 0, 0, 0, 2, 0, 0),)
2025-06-13 16:22:01,882 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 16:21:35
2025-06-13 16:22:01,961 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 16:22:01,968 [DEBUG][       Thread-260837][   transport.py][1871] : starting thread (client mode): 0x867fe7a0
2025-06-13 16:22:01,968 [DEBUG][       Thread-260837][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 16:22:01,986 [DEBUG][       Thread-260837][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 16:22:01,986 [ INFO][       Thread-260837][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 16:22:01,989 [DEBUG][       Thread-260837][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 16:22:01,989 [DEBUG][       Thread-260837][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 16:22:01,989 [DEBUG][       Thread-260837][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 16:22:01,989 [DEBUG][       Thread-260837][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:22:01,989 [DEBUG][       Thread-260837][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:22:01,989 [DEBUG][       Thread-260837][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:22:01,989 [DEBUG][       Thread-260837][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:22:01,989 [DEBUG][       Thread-260837][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 16:22:01,989 [DEBUG][       Thread-260837][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 16:22:01,989 [DEBUG][       Thread-260837][   transport.py][1871] : client lang: <none>
2025-06-13 16:22:01,989 [DEBUG][       Thread-260837][   transport.py][1871] : server lang: <none>
2025-06-13 16:22:01,989 [DEBUG][       Thread-260837][   transport.py][1871] : kex follows: False
2025-06-13 16:22:01,989 [DEBUG][       Thread-260837][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 16:22:01,989 [DEBUG][       Thread-260837][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 16:22:01,989 [DEBUG][       Thread-260837][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 16:22:01,989 [DEBUG][       Thread-260837][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 16:22:01,989 [DEBUG][       Thread-260837][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 16:22:01,989 [DEBUG][       Thread-260837][   transport.py][1871] : Compression: none
2025-06-13 16:22:01,989 [DEBUG][       Thread-260837][   transport.py][1871] : === End of kex handshake ===
2025-06-13 16:22:02,003 [DEBUG][       Thread-260837][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 16:22:02,003 [DEBUG][       Thread-260837][   transport.py][1871] : Switch to new keys ...
2025-06-13 16:22:02,003 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 16:22:02,004 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 16:22:02,004 [DEBUG][       Thread-260837][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 16:22:02,004 [DEBUG][       Thread-260837][   transport.py][1871] : userauth is OK
2025-06-13 16:22:02,028 [ INFO][       Thread-260837][   transport.py][1871] : Authentication (password) successful!
2025-06-13 16:22:02,028 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 16:22:02,695 [DEBUG][       Thread-260837][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 16:22:02,695 [DEBUG][       Thread-260837][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 16:22:02,737 [DEBUG][       Thread-260837][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 16:22:02,737 [DEBUG][       Thread-260837][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 16:22:02,740 [DEBUG][       Thread-260837][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 16:22:02,752 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 16:22:02,753 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 16:22:02,755 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 16:22:02,757 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 16:22:02,763 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 16:22:02,765 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 16:22:02,765 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 16:22:02,766 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 16:22:02,766 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.598199 -999.00  +13.50  18.92     34   -1.70 1 1 1 1 1   887    0 14.23 -40.68 ----- 22.5 18.9 45.8 23.0 16.5 -30.1 15.7 -30.6 16.4 -30.8 17.4 -28.6
2025-06-13 16:22:02,766 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 16:22:02,766 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 16:22:02,766 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.598199
2025-06-13 16:22:02,766 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 16:22:02,767 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 16:22:02,767 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 16:22:02,767 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 16:22:02,767 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 16:22:02,767 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T16:21:35', tmtdew=17.5, humidity=29.43, cloud=0.0, wind=18.16, temperature=13.72, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T14:21:24.394', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 16:22:02,768 [DEBUG][       Thread-260837][   transport.py][1871] : EOF in transport thread
2025-06-13 16:22:02,844 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 16:22:02,855 [DEBUG][       Thread-260840][   transport.py][1871] : starting thread (client mode): 0x86392590
2025-06-13 16:22:02,855 [DEBUG][       Thread-260840][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 16:22:02,870 [DEBUG][       Thread-260840][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 16:22:02,870 [ INFO][       Thread-260840][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 16:22:02,878 [DEBUG][       Thread-260840][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 16:22:02,878 [DEBUG][       Thread-260840][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 16:22:02,878 [DEBUG][       Thread-260840][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 16:22:02,878 [DEBUG][       Thread-260840][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:22:02,878 [DEBUG][       Thread-260840][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:22:02,878 [DEBUG][       Thread-260840][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:22:02,878 [DEBUG][       Thread-260840][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:22:02,878 [DEBUG][       Thread-260840][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 16:22:02,878 [DEBUG][       Thread-260840][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 16:22:02,878 [DEBUG][       Thread-260840][   transport.py][1871] : client lang: <none>
2025-06-13 16:22:02,878 [DEBUG][       Thread-260840][   transport.py][1871] : server lang: <none>
2025-06-13 16:22:02,878 [DEBUG][       Thread-260840][   transport.py][1871] : kex follows: False
2025-06-13 16:22:02,879 [DEBUG][       Thread-260840][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 16:22:02,879 [DEBUG][       Thread-260840][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 16:22:02,879 [DEBUG][       Thread-260840][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 16:22:02,879 [DEBUG][       Thread-260840][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 16:22:02,879 [DEBUG][       Thread-260840][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 16:22:02,879 [DEBUG][       Thread-260840][   transport.py][1871] : Compression: none
2025-06-13 16:22:02,879 [DEBUG][       Thread-260840][   transport.py][1871] : === End of kex handshake ===
2025-06-13 16:22:02,939 [DEBUG][       Thread-260840][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 16:22:02,940 [DEBUG][       Thread-260840][   transport.py][1871] : Switch to new keys ...
2025-06-13 16:22:02,940 [DEBUG][       Thread-260840][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 16:22:02,941 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 16:22:02,941 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 16:22:02,998 [DEBUG][       Thread-260840][   transport.py][1871] : userauth is OK
2025-06-13 16:22:02,998 [DEBUG][       Thread-260840][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 16:22:02,998 [DEBUG][       Thread-260840][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 16:22:02,998 [DEBUG][       Thread-260840][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 16:22:02,998 [DEBUG][       Thread-260840][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 16:22:03,022 [ INFO][       Thread-260840][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 16:22:03,022 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 16:22:03,023 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 16:22:04,031 [DEBUG][       Thread-260840][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 16:22:04,031 [DEBUG][       Thread-260840][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 16:22:04,080 [DEBUG][       Thread-260840][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 16:22:04,080 [DEBUG][       Thread-260840][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 16:22:04,089 [DEBUG][       Thread-260840][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 16:22:04,098 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 16:22:04,099 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 16:22:04,108 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 16:22:04,117 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 16:22:04,117 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 16:22:04,117 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 16:22:04,125 [DEBUG][       Thread-260840][   transport.py][1871] : EOF in transport thread
2025-06-13 16:22:06,236 [DEBUG][Thread-260842 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:22:14,128 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 16:22:14,128 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 16:22:14,128 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 16:22:14,131 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 16:22:14,597 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 16, 22, 7), 17.46, 29.5, 0.0, 18.19, 13.73, 0, 0, 0, 2, 0, 0),)
2025-06-13 16:22:14,597 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 16:22:07
2025-06-13 16:22:14,679 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 16:22:14,687 [DEBUG][       Thread-260843][   transport.py][1871] : starting thread (client mode): 0x863c8370
2025-06-13 16:22:14,687 [DEBUG][       Thread-260843][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 16:22:14,707 [DEBUG][       Thread-260843][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 16:22:14,707 [ INFO][       Thread-260843][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 16:22:14,711 [DEBUG][       Thread-260843][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 16:22:14,711 [DEBUG][       Thread-260843][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 16:22:14,711 [DEBUG][       Thread-260843][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 16:22:14,711 [DEBUG][       Thread-260843][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:22:14,711 [DEBUG][       Thread-260843][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:22:14,711 [DEBUG][       Thread-260843][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:22:14,711 [DEBUG][       Thread-260843][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:22:14,711 [DEBUG][       Thread-260843][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 16:22:14,711 [DEBUG][       Thread-260843][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 16:22:14,711 [DEBUG][       Thread-260843][   transport.py][1871] : client lang: <none>
2025-06-13 16:22:14,711 [DEBUG][       Thread-260843][   transport.py][1871] : server lang: <none>
2025-06-13 16:22:14,711 [DEBUG][       Thread-260843][   transport.py][1871] : kex follows: False
2025-06-13 16:22:14,711 [DEBUG][       Thread-260843][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 16:22:14,711 [DEBUG][       Thread-260843][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 16:22:14,711 [DEBUG][       Thread-260843][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 16:22:14,711 [DEBUG][       Thread-260843][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 16:22:14,711 [DEBUG][       Thread-260843][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 16:22:14,711 [DEBUG][       Thread-260843][   transport.py][1871] : Compression: none
2025-06-13 16:22:14,711 [DEBUG][       Thread-260843][   transport.py][1871] : === End of kex handshake ===
2025-06-13 16:22:14,726 [DEBUG][       Thread-260843][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 16:22:14,726 [DEBUG][       Thread-260843][   transport.py][1871] : Switch to new keys ...
2025-06-13 16:22:14,726 [DEBUG][       Thread-260843][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 16:22:14,726 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 16:22:14,726 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 16:22:14,727 [DEBUG][       Thread-260843][   transport.py][1871] : userauth is OK
2025-06-13 16:22:14,740 [ INFO][       Thread-260843][   transport.py][1871] : Authentication (password) successful!
2025-06-13 16:22:14,740 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 16:22:15,260 [DEBUG][Thread-260845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:22:15,385 [DEBUG][       Thread-260843][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 16:22:15,386 [DEBUG][       Thread-260843][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 16:22:15,429 [DEBUG][       Thread-260843][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 16:22:15,429 [DEBUG][       Thread-260843][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 16:22:15,432 [DEBUG][       Thread-260843][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 16:22:15,444 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 16:22:15,445 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 16:22:15,447 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 16:22:15,449 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 16:22:15,455 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 16:22:15,457 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 16:22:15,458 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 16:22:15,458 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 16:22:15,459 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.598546 -999.00  +13.40  22.04     34   -1.80 1 1 1 1 1   887    0 14.19 -38.83 ----- 18.3 22.0 46.0 26.0 16.4 -30.4 15.7 -30.5 16.4 -30.1 17.4 -28.9
2025-06-13 16:22:15,459 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 16:22:15,459 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 16:22:15,459 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.598546
2025-06-13 16:22:15,459 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 16:22:15,460 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 16:22:15,460 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 16:22:15,460 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 16:22:15,460 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 16:22:15,460 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T16:22:07', tmtdew=17.46, humidity=29.5, cloud=0.0, wind=18.19, temperature=13.73, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T14:21:54.374', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 16:22:15,461 [DEBUG][       Thread-260843][   transport.py][1871] : EOF in transport thread
2025-06-13 16:22:15,544 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 16:22:15,557 [DEBUG][       Thread-260847][   transport.py][1871] : starting thread (client mode): 0x863a43a0
2025-06-13 16:22:15,557 [DEBUG][       Thread-260847][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 16:22:15,571 [DEBUG][       Thread-260847][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 16:22:15,572 [ INFO][       Thread-260847][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 16:22:15,579 [DEBUG][       Thread-260847][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 16:22:15,579 [DEBUG][       Thread-260847][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 16:22:15,579 [DEBUG][       Thread-260847][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 16:22:15,579 [DEBUG][       Thread-260847][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:22:15,579 [DEBUG][       Thread-260847][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:22:15,579 [DEBUG][       Thread-260847][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:22:15,579 [DEBUG][       Thread-260847][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:22:15,579 [DEBUG][       Thread-260847][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 16:22:15,579 [DEBUG][       Thread-260847][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 16:22:15,580 [DEBUG][       Thread-260847][   transport.py][1871] : client lang: <none>
2025-06-13 16:22:15,580 [DEBUG][       Thread-260847][   transport.py][1871] : server lang: <none>
2025-06-13 16:22:15,580 [DEBUG][       Thread-260847][   transport.py][1871] : kex follows: False
2025-06-13 16:22:15,580 [DEBUG][       Thread-260847][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 16:22:15,580 [DEBUG][       Thread-260847][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 16:22:15,580 [DEBUG][       Thread-260847][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 16:22:15,580 [DEBUG][       Thread-260847][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 16:22:15,580 [DEBUG][       Thread-260847][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 16:22:15,580 [DEBUG][       Thread-260847][   transport.py][1871] : Compression: none
2025-06-13 16:22:15,580 [DEBUG][       Thread-260847][   transport.py][1871] : === End of kex handshake ===
2025-06-13 16:22:15,638 [DEBUG][       Thread-260847][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 16:22:15,638 [DEBUG][       Thread-260847][   transport.py][1871] : Switch to new keys ...
2025-06-13 16:22:15,639 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 16:22:15,640 [DEBUG][       Thread-260847][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 16:22:15,640 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 16:22:15,694 [DEBUG][       Thread-260847][   transport.py][1871] : userauth is OK
2025-06-13 16:22:15,694 [DEBUG][       Thread-260847][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 16:22:15,695 [DEBUG][       Thread-260847][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 16:22:15,695 [DEBUG][       Thread-260847][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 16:22:15,695 [DEBUG][       Thread-260847][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 16:22:15,713 [ INFO][       Thread-260847][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 16:22:15,714 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 16:22:15,714 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 16:22:16,685 [DEBUG][       Thread-260847][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 16:22:16,686 [DEBUG][       Thread-260847][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 16:22:16,736 [DEBUG][       Thread-260847][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 16:22:16,736 [DEBUG][       Thread-260847][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 16:22:16,745 [DEBUG][       Thread-260847][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 16:22:16,754 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 16:22:16,755 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 16:22:16,764 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 16:22:16,776 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 16:22:16,776 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 16:22:16,777 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 16:22:16,788 [DEBUG][       Thread-260847][   transport.py][1871] : EOF in transport thread
2025-06-13 16:22:16,884 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:22:16,885 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:22:23,223 [DEBUG][Thread-260849 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:22:24,283 [DEBUG][Thread-260850 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:22:26,787 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 16:22:26,788 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 16:22:26,788 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 16:22:26,791 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 16:22:27,257 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 16, 22, 7), 17.46, 29.5, 0.0, 18.19, 13.73, 0, 0, 0, 2, 0, 0),)
2025-06-13 16:22:27,257 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 16:22:07
2025-06-13 16:22:27,339 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 16:22:27,343 [DEBUG][       Thread-260851][   transport.py][1871] : starting thread (client mode): 0x867ffbb0
2025-06-13 16:22:27,343 [DEBUG][       Thread-260851][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 16:22:27,366 [DEBUG][       Thread-260851][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 16:22:27,366 [ INFO][       Thread-260851][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 16:22:27,369 [DEBUG][       Thread-260851][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 16:22:27,370 [DEBUG][       Thread-260851][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 16:22:27,370 [DEBUG][       Thread-260851][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 16:22:27,370 [DEBUG][       Thread-260851][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:22:27,370 [DEBUG][       Thread-260851][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:22:27,370 [DEBUG][       Thread-260851][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:22:27,370 [DEBUG][       Thread-260851][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:22:27,370 [DEBUG][       Thread-260851][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 16:22:27,370 [DEBUG][       Thread-260851][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 16:22:27,370 [DEBUG][       Thread-260851][   transport.py][1871] : client lang: <none>
2025-06-13 16:22:27,370 [DEBUG][       Thread-260851][   transport.py][1871] : server lang: <none>
2025-06-13 16:22:27,370 [DEBUG][       Thread-260851][   transport.py][1871] : kex follows: False
2025-06-13 16:22:27,370 [DEBUG][       Thread-260851][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 16:22:27,370 [DEBUG][       Thread-260851][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 16:22:27,370 [DEBUG][       Thread-260851][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 16:22:27,370 [DEBUG][       Thread-260851][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 16:22:27,370 [DEBUG][       Thread-260851][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 16:22:27,370 [DEBUG][       Thread-260851][   transport.py][1871] : Compression: none
2025-06-13 16:22:27,370 [DEBUG][       Thread-260851][   transport.py][1871] : === End of kex handshake ===
2025-06-13 16:22:27,386 [DEBUG][       Thread-260851][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 16:22:27,386 [DEBUG][       Thread-260851][   transport.py][1871] : Switch to new keys ...
2025-06-13 16:22:27,387 [DEBUG][       Thread-260851][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 16:22:27,387 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 16:22:27,387 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 16:22:27,388 [DEBUG][       Thread-260851][   transport.py][1871] : userauth is OK
2025-06-13 16:22:27,401 [ INFO][       Thread-260851][   transport.py][1871] : Authentication (password) successful!
2025-06-13 16:22:27,402 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 16:22:28,046 [DEBUG][       Thread-260851][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 16:22:28,046 [DEBUG][       Thread-260851][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 16:22:28,089 [DEBUG][       Thread-260851][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 16:22:28,089 [DEBUG][       Thread-260851][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 16:22:28,093 [DEBUG][       Thread-260851][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 16:22:28,105 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 16:22:28,105 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 16:22:28,107 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 16:22:28,109 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 16:22:28,117 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 16:22:28,119 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 16:22:28,119 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 16:22:28,120 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 16:22:28,120 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.598546 -999.00  +13.40  22.04     34   -1.80 1 1 1 1 1   887    0 14.19 -38.83 ----- 18.3 22.0 46.0 26.0 16.4 -30.4 15.7 -30.5 16.4 -30.1 17.4 -28.9
2025-06-13 16:22:28,120 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 16:22:28,120 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 16:22:28,120 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.598546
2025-06-13 16:22:28,121 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 16:22:28,121 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 16:22:28,121 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 16:22:28,121 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 16:22:28,121 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 16:22:28,122 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T16:22:07', tmtdew=17.46, humidity=29.5, cloud=0.0, wind=18.19, temperature=13.73, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T14:21:54.374', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 16:22:28,123 [DEBUG][       Thread-260851][   transport.py][1871] : EOF in transport thread
2025-06-13 16:22:28,205 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 16:22:28,214 [DEBUG][       Thread-260854][   transport.py][1871] : starting thread (client mode): 0x863ef190
2025-06-13 16:22:28,214 [DEBUG][       Thread-260854][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 16:22:28,229 [DEBUG][       Thread-260854][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 16:22:28,229 [ INFO][       Thread-260854][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 16:22:28,237 [DEBUG][       Thread-260854][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 16:22:28,237 [DEBUG][       Thread-260854][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 16:22:28,237 [DEBUG][       Thread-260854][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 16:22:28,237 [DEBUG][       Thread-260854][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:22:28,237 [DEBUG][       Thread-260854][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:22:28,237 [DEBUG][       Thread-260854][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:22:28,237 [DEBUG][       Thread-260854][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:22:28,237 [DEBUG][       Thread-260854][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 16:22:28,237 [DEBUG][       Thread-260854][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 16:22:28,237 [DEBUG][       Thread-260854][   transport.py][1871] : client lang: <none>
2025-06-13 16:22:28,237 [DEBUG][       Thread-260854][   transport.py][1871] : server lang: <none>
2025-06-13 16:22:28,237 [DEBUG][       Thread-260854][   transport.py][1871] : kex follows: False
2025-06-13 16:22:28,237 [DEBUG][       Thread-260854][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 16:22:28,237 [DEBUG][       Thread-260854][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 16:22:28,237 [DEBUG][       Thread-260854][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 16:22:28,237 [DEBUG][       Thread-260854][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 16:22:28,237 [DEBUG][       Thread-260854][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 16:22:28,237 [DEBUG][       Thread-260854][   transport.py][1871] : Compression: none
2025-06-13 16:22:28,237 [DEBUG][       Thread-260854][   transport.py][1871] : === End of kex handshake ===
2025-06-13 16:22:28,294 [DEBUG][       Thread-260854][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 16:22:28,294 [DEBUG][       Thread-260854][   transport.py][1871] : Switch to new keys ...
2025-06-13 16:22:28,295 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 16:22:28,296 [DEBUG][       Thread-260854][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 16:22:28,296 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 16:22:28,350 [DEBUG][       Thread-260854][   transport.py][1871] : userauth is OK
2025-06-13 16:22:28,350 [DEBUG][       Thread-260854][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 16:22:28,350 [DEBUG][       Thread-260854][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 16:22:28,351 [DEBUG][       Thread-260854][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 16:22:28,351 [DEBUG][       Thread-260854][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 16:22:28,373 [ INFO][       Thread-260854][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 16:22:28,373 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 16:22:28,374 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 16:22:29,336 [DEBUG][       Thread-260854][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 16:22:29,336 [DEBUG][       Thread-260854][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 16:22:29,384 [DEBUG][       Thread-260854][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 16:22:29,384 [DEBUG][       Thread-260854][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 16:22:29,395 [DEBUG][       Thread-260854][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 16:22:29,412 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 16:22:29,412 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 16:22:29,421 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 16:22:29,430 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 16:22:29,431 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 16:22:29,431 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 16:22:29,439 [DEBUG][       Thread-260854][   transport.py][1871] : EOF in transport thread
2025-06-13 16:22:33,320 [DEBUG][Thread-260856 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:22:39,441 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 16:22:39,441 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 16:22:39,441 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 16:22:39,442 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 16:22:39,914 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 16, 22, 7), 17.46, 29.5, 0.0, 18.19, 13.73, 0, 0, 0, 2, 0, 0),)
2025-06-13 16:22:39,914 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 16:22:07
2025-06-13 16:22:39,999 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 16:22:40,005 [DEBUG][       Thread-260857][   transport.py][1871] : starting thread (client mode): 0x867feef0
2025-06-13 16:22:40,005 [DEBUG][       Thread-260857][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 16:22:40,026 [DEBUG][       Thread-260857][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 16:22:40,026 [ INFO][       Thread-260857][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 16:22:40,029 [DEBUG][       Thread-260857][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 16:22:40,029 [DEBUG][       Thread-260857][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 16:22:40,029 [DEBUG][       Thread-260857][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 16:22:40,029 [DEBUG][       Thread-260857][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:22:40,029 [DEBUG][       Thread-260857][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:22:40,029 [DEBUG][       Thread-260857][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:22:40,029 [DEBUG][       Thread-260857][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:22:40,029 [DEBUG][       Thread-260857][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 16:22:40,029 [DEBUG][       Thread-260857][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 16:22:40,029 [DEBUG][       Thread-260857][   transport.py][1871] : client lang: <none>
2025-06-13 16:22:40,029 [DEBUG][       Thread-260857][   transport.py][1871] : server lang: <none>
2025-06-13 16:22:40,029 [DEBUG][       Thread-260857][   transport.py][1871] : kex follows: False
2025-06-13 16:22:40,029 [DEBUG][       Thread-260857][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 16:22:40,029 [DEBUG][       Thread-260857][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 16:22:40,029 [DEBUG][       Thread-260857][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 16:22:40,029 [DEBUG][       Thread-260857][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 16:22:40,029 [DEBUG][       Thread-260857][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 16:22:40,029 [DEBUG][       Thread-260857][   transport.py][1871] : Compression: none
2025-06-13 16:22:40,029 [DEBUG][       Thread-260857][   transport.py][1871] : === End of kex handshake ===
2025-06-13 16:22:40,045 [DEBUG][       Thread-260857][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 16:22:40,045 [DEBUG][       Thread-260857][   transport.py][1871] : Switch to new keys ...
2025-06-13 16:22:40,045 [DEBUG][       Thread-260857][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 16:22:40,045 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 16:22:40,045 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 16:22:40,046 [DEBUG][       Thread-260857][   transport.py][1871] : userauth is OK
2025-06-13 16:22:40,058 [ INFO][       Thread-260857][   transport.py][1871] : Authentication (password) successful!
2025-06-13 16:22:40,058 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 16:22:40,703 [DEBUG][       Thread-260857][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 16:22:40,703 [DEBUG][       Thread-260857][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 16:22:40,749 [DEBUG][       Thread-260857][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 16:22:40,749 [DEBUG][       Thread-260857][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 16:22:40,751 [DEBUG][       Thread-260857][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 16:22:40,763 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 16:22:40,763 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 16:22:40,764 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 16:22:40,765 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 16:22:40,768 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 16:22:40,769 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 16:22:40,769 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 16:22:40,769 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 16:22:40,769 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.598893 -999.00  +13.40  19.74     34   -1.80 1 1 1 1 1   887    0 14.31 -41.13 ----- 20.2 19.7 42.8 21.4 16.4 -30.0 15.6 -30.5 16.4 -29.7 17.4 -28.7
2025-06-13 16:22:40,769 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 16:22:40,769 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 16:22:40,769 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.598893
2025-06-13 16:22:40,769 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 16:22:40,769 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 16:22:40,770 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 16:22:40,770 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 16:22:40,770 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 16:22:40,770 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T16:22:07', tmtdew=17.46, humidity=29.5, cloud=0.0, wind=18.19, temperature=13.73, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T14:22:24.355', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 16:22:40,770 [DEBUG][       Thread-260857][   transport.py][1871] : EOF in transport thread
2025-06-13 16:22:40,844 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 16:22:40,855 [DEBUG][       Thread-260860][   transport.py][1871] : starting thread (client mode): 0x86353e50
2025-06-13 16:22:40,855 [DEBUG][       Thread-260860][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 16:22:40,871 [DEBUG][       Thread-260860][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 16:22:40,871 [ INFO][       Thread-260860][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 16:22:40,879 [DEBUG][       Thread-260860][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 16:22:40,879 [DEBUG][       Thread-260860][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 16:22:40,879 [DEBUG][       Thread-260860][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 16:22:40,879 [DEBUG][       Thread-260860][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:22:40,879 [DEBUG][       Thread-260860][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:22:40,879 [DEBUG][       Thread-260860][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:22:40,879 [DEBUG][       Thread-260860][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:22:40,879 [DEBUG][       Thread-260860][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 16:22:40,879 [DEBUG][       Thread-260860][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 16:22:40,879 [DEBUG][       Thread-260860][   transport.py][1871] : client lang: <none>
2025-06-13 16:22:40,879 [DEBUG][       Thread-260860][   transport.py][1871] : server lang: <none>
2025-06-13 16:22:40,879 [DEBUG][       Thread-260860][   transport.py][1871] : kex follows: False
2025-06-13 16:22:40,879 [DEBUG][       Thread-260860][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 16:22:40,879 [DEBUG][       Thread-260860][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 16:22:40,879 [DEBUG][       Thread-260860][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 16:22:40,879 [DEBUG][       Thread-260860][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 16:22:40,879 [DEBUG][       Thread-260860][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 16:22:40,879 [DEBUG][       Thread-260860][   transport.py][1871] : Compression: none
2025-06-13 16:22:40,879 [DEBUG][       Thread-260860][   transport.py][1871] : === End of kex handshake ===
2025-06-13 16:22:40,936 [DEBUG][       Thread-260860][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 16:22:40,936 [DEBUG][       Thread-260860][   transport.py][1871] : Switch to new keys ...
2025-06-13 16:22:40,936 [DEBUG][       Thread-260860][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 16:22:40,937 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 16:22:40,937 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 16:22:40,998 [DEBUG][       Thread-260860][   transport.py][1871] : userauth is OK
2025-06-13 16:22:40,998 [DEBUG][       Thread-260860][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 16:22:40,998 [DEBUG][       Thread-260860][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 16:22:40,998 [DEBUG][       Thread-260860][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 16:22:40,998 [DEBUG][       Thread-260860][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 16:22:41,012 [ INFO][       Thread-260860][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 16:22:41,012 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 16:22:41,012 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 16:22:41,978 [DEBUG][       Thread-260860][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 16:22:41,979 [DEBUG][       Thread-260860][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 16:22:42,028 [DEBUG][       Thread-260860][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 16:22:42,028 [DEBUG][       Thread-260860][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 16:22:42,038 [DEBUG][       Thread-260860][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 16:22:42,046 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 16:22:42,047 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 16:22:42,055 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 16:22:42,064 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 16:22:42,064 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 16:22:42,065 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 16:22:42,072 [DEBUG][       Thread-260860][   transport.py][1871] : EOF in transport thread
2025-06-13 16:22:42,338 [DEBUG][Thread-260862 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:22:48,624 [DEBUG][Thread-260863 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:22:49,674 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:22:49,684 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:22:51,359 [DEBUG][Thread-260864 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:22:52,072 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 16:22:52,072 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 16:22:52,072 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 16:22:52,075 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 16:22:52,551 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 16, 22, 39), 17.32, 29.86, 0.0, 14.47, 13.72, 0, 0, 0, 2, 0, 0),)
2025-06-13 16:22:52,551 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 16:22:39
2025-06-13 16:22:52,629 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 16:22:52,633 [DEBUG][       Thread-260865][   transport.py][1871] : starting thread (client mode): 0x86351b70
2025-06-13 16:22:52,633 [DEBUG][       Thread-260865][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 16:22:52,654 [DEBUG][       Thread-260865][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 16:22:52,654 [ INFO][       Thread-260865][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 16:22:52,658 [DEBUG][       Thread-260865][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 16:22:52,658 [DEBUG][       Thread-260865][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 16:22:52,658 [DEBUG][       Thread-260865][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 16:22:52,658 [DEBUG][       Thread-260865][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:22:52,658 [DEBUG][       Thread-260865][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:22:52,658 [DEBUG][       Thread-260865][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:22:52,658 [DEBUG][       Thread-260865][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:22:52,658 [DEBUG][       Thread-260865][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 16:22:52,658 [DEBUG][       Thread-260865][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 16:22:52,658 [DEBUG][       Thread-260865][   transport.py][1871] : client lang: <none>
2025-06-13 16:22:52,658 [DEBUG][       Thread-260865][   transport.py][1871] : server lang: <none>
2025-06-13 16:22:52,658 [DEBUG][       Thread-260865][   transport.py][1871] : kex follows: False
2025-06-13 16:22:52,658 [DEBUG][       Thread-260865][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 16:22:52,658 [DEBUG][       Thread-260865][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 16:22:52,658 [DEBUG][       Thread-260865][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 16:22:52,658 [DEBUG][       Thread-260865][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 16:22:52,658 [DEBUG][       Thread-260865][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 16:22:52,658 [DEBUG][       Thread-260865][   transport.py][1871] : Compression: none
2025-06-13 16:22:52,658 [DEBUG][       Thread-260865][   transport.py][1871] : === End of kex handshake ===
2025-06-13 16:22:52,677 [DEBUG][       Thread-260865][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 16:22:52,678 [DEBUG][       Thread-260865][   transport.py][1871] : Switch to new keys ...
2025-06-13 16:22:52,678 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 16:22:52,679 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 16:22:52,679 [DEBUG][       Thread-260865][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 16:22:52,680 [DEBUG][       Thread-260865][   transport.py][1871] : userauth is OK
2025-06-13 16:22:52,693 [ INFO][       Thread-260865][   transport.py][1871] : Authentication (password) successful!
2025-06-13 16:22:52,693 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 16:22:53,281 [DEBUG][       Thread-260865][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 16:22:53,281 [DEBUG][       Thread-260865][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 16:22:53,325 [DEBUG][       Thread-260865][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 16:22:53,325 [DEBUG][       Thread-260865][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 16:22:53,327 [DEBUG][       Thread-260865][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 16:22:53,339 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 16:22:53,340 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 16:22:53,341 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 16:22:53,342 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 16:22:53,345 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 16:22:53,346 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 16:22:53,346 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 16:22:53,346 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 16:22:53,346 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.598893 -999.00  +13.40  19.74     34   -1.80 1 1 1 1 1   887    0 14.31 -41.13 ----- 20.2 19.7 42.8 21.4 16.4 -30.0 15.6 -30.5 16.4 -29.7 17.4 -28.7
2025-06-13 16:22:53,346 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 16:22:53,346 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 16:22:53,346 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.598893
2025-06-13 16:22:53,346 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 16:22:53,346 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 16:22:53,346 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 16:22:53,346 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 16:22:53,346 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 16:22:53,346 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T16:22:39', tmtdew=17.32, humidity=29.86, cloud=0.0, wind=14.47, temperature=13.72, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T14:22:24.355', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 16:22:53,347 [DEBUG][       Thread-260865][   transport.py][1871] : EOF in transport thread
2025-06-13 16:22:53,418 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 16:22:53,427 [DEBUG][       Thread-260868][   transport.py][1871] : starting thread (client mode): 0x863ed8d0
2025-06-13 16:22:53,427 [DEBUG][       Thread-260868][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 16:22:53,441 [DEBUG][       Thread-260868][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 16:22:53,441 [ INFO][       Thread-260868][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 16:22:53,452 [DEBUG][       Thread-260868][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 16:22:53,452 [DEBUG][       Thread-260868][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 16:22:53,452 [DEBUG][       Thread-260868][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 16:22:53,452 [DEBUG][       Thread-260868][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:22:53,452 [DEBUG][       Thread-260868][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:22:53,452 [DEBUG][       Thread-260868][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:22:53,452 [DEBUG][       Thread-260868][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:22:53,452 [DEBUG][       Thread-260868][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 16:22:53,452 [DEBUG][       Thread-260868][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 16:22:53,452 [DEBUG][       Thread-260868][   transport.py][1871] : client lang: <none>
2025-06-13 16:22:53,452 [DEBUG][       Thread-260868][   transport.py][1871] : server lang: <none>
2025-06-13 16:22:53,452 [DEBUG][       Thread-260868][   transport.py][1871] : kex follows: False
2025-06-13 16:22:53,452 [DEBUG][       Thread-260868][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 16:22:53,452 [DEBUG][       Thread-260868][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 16:22:53,452 [DEBUG][       Thread-260868][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 16:22:53,452 [DEBUG][       Thread-260868][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 16:22:53,452 [DEBUG][       Thread-260868][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 16:22:53,452 [DEBUG][       Thread-260868][   transport.py][1871] : Compression: none
2025-06-13 16:22:53,452 [DEBUG][       Thread-260868][   transport.py][1871] : === End of kex handshake ===
2025-06-13 16:22:53,510 [DEBUG][       Thread-260868][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 16:22:53,511 [DEBUG][       Thread-260868][   transport.py][1871] : Switch to new keys ...
2025-06-13 16:22:53,511 [DEBUG][       Thread-260868][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 16:22:53,511 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 16:22:53,511 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 16:22:53,570 [DEBUG][       Thread-260868][   transport.py][1871] : userauth is OK
2025-06-13 16:22:53,570 [DEBUG][       Thread-260868][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 16:22:53,570 [DEBUG][       Thread-260868][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 16:22:53,570 [DEBUG][       Thread-260868][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 16:22:53,571 [DEBUG][       Thread-260868][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 16:22:53,592 [ INFO][       Thread-260868][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 16:22:53,593 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 16:22:53,593 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 16:22:54,613 [DEBUG][       Thread-260868][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 16:22:54,613 [DEBUG][       Thread-260868][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 16:22:54,668 [DEBUG][       Thread-260868][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 16:22:54,668 [DEBUG][       Thread-260868][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 16:22:54,677 [DEBUG][       Thread-260868][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 16:22:54,686 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 16:22:54,687 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 16:22:54,696 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 16:22:54,705 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 16:22:54,705 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 16:22:54,705 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 16:22:54,713 [DEBUG][       Thread-260868][   transport.py][1871] : EOF in transport thread
2025-06-13 16:23:00,381 [DEBUG][Thread-260870 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:23:04,716 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 16:23:04,716 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 16:23:04,716 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 16:23:04,719 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 16:23:05,190 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 16, 22, 39), 17.32, 29.86, 0.0, 14.47, 13.72, 0, 0, 0, 2, 0, 0),)
2025-06-13 16:23:05,190 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 16:22:39
2025-06-13 16:23:05,269 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 16:23:05,274 [DEBUG][       Thread-260871][   transport.py][1871] : starting thread (client mode): 0x867fc5e0
2025-06-13 16:23:05,274 [DEBUG][       Thread-260871][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 16:23:05,294 [DEBUG][       Thread-260871][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 16:23:05,294 [ INFO][       Thread-260871][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 16:23:05,297 [DEBUG][       Thread-260871][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 16:23:05,297 [DEBUG][       Thread-260871][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 16:23:05,297 [DEBUG][       Thread-260871][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 16:23:05,297 [DEBUG][       Thread-260871][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:23:05,297 [DEBUG][       Thread-260871][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:23:05,297 [DEBUG][       Thread-260871][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:23:05,297 [DEBUG][       Thread-260871][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:23:05,297 [DEBUG][       Thread-260871][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 16:23:05,297 [DEBUG][       Thread-260871][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 16:23:05,298 [DEBUG][       Thread-260871][   transport.py][1871] : client lang: <none>
2025-06-13 16:23:05,298 [DEBUG][       Thread-260871][   transport.py][1871] : server lang: <none>
2025-06-13 16:23:05,298 [DEBUG][       Thread-260871][   transport.py][1871] : kex follows: False
2025-06-13 16:23:05,298 [DEBUG][       Thread-260871][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 16:23:05,298 [DEBUG][       Thread-260871][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 16:23:05,298 [DEBUG][       Thread-260871][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 16:23:05,298 [DEBUG][       Thread-260871][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 16:23:05,298 [DEBUG][       Thread-260871][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 16:23:05,298 [DEBUG][       Thread-260871][   transport.py][1871] : Compression: none
2025-06-13 16:23:05,298 [DEBUG][       Thread-260871][   transport.py][1871] : === End of kex handshake ===
2025-06-13 16:23:05,314 [DEBUG][       Thread-260871][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 16:23:05,314 [DEBUG][       Thread-260871][   transport.py][1871] : Switch to new keys ...
2025-06-13 16:23:05,315 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 16:23:05,315 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 16:23:05,315 [DEBUG][       Thread-260871][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 16:23:05,316 [DEBUG][       Thread-260871][   transport.py][1871] : userauth is OK
2025-06-13 16:23:05,329 [ INFO][       Thread-260871][   transport.py][1871] : Authentication (password) successful!
2025-06-13 16:23:05,330 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 16:23:05,958 [DEBUG][       Thread-260871][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 16:23:05,958 [DEBUG][       Thread-260871][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 16:23:06,001 [DEBUG][       Thread-260871][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 16:23:06,001 [DEBUG][       Thread-260871][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 16:23:06,004 [DEBUG][       Thread-260871][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 16:23:06,016 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 16:23:06,016 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 16:23:06,018 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 16:23:06,020 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 16:23:06,025 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 16:23:06,027 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 16:23:06,027 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 16:23:06,028 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 16:23:06,028 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.598893 -999.00  +13.40  19.74     34   -1.80 1 1 1 1 1   887    0 14.31 -41.13 ----- 20.2 19.7 42.8 21.4 16.4 -30.0 15.6 -30.5 16.4 -29.7 17.4 -28.7
2025-06-13 16:23:06,028 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 16:23:06,029 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 16:23:06,029 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.598893
2025-06-13 16:23:06,029 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 16:23:06,030 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 16:23:06,030 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 16:23:06,030 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 16:23:06,030 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 16:23:06,030 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T16:22:39', tmtdew=17.32, humidity=29.86, cloud=0.0, wind=14.47, temperature=13.72, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T14:22:24.355', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 16:23:06,030 [DEBUG][       Thread-260871][   transport.py][1871] : EOF in transport thread
2025-06-13 16:23:06,115 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 16:23:06,130 [DEBUG][       Thread-260874][   transport.py][1871] : starting thread (client mode): 0x863efbe0
2025-06-13 16:23:06,130 [DEBUG][       Thread-260874][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 16:23:06,150 [DEBUG][       Thread-260874][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 16:23:06,150 [ INFO][       Thread-260874][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 16:23:06,161 [DEBUG][       Thread-260874][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 16:23:06,161 [DEBUG][       Thread-260874][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 16:23:06,161 [DEBUG][       Thread-260874][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 16:23:06,161 [DEBUG][       Thread-260874][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:23:06,161 [DEBUG][       Thread-260874][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:23:06,161 [DEBUG][       Thread-260874][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:23:06,161 [DEBUG][       Thread-260874][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:23:06,161 [DEBUG][       Thread-260874][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 16:23:06,161 [DEBUG][       Thread-260874][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 16:23:06,161 [DEBUG][       Thread-260874][   transport.py][1871] : client lang: <none>
2025-06-13 16:23:06,162 [DEBUG][       Thread-260874][   transport.py][1871] : server lang: <none>
2025-06-13 16:23:06,162 [DEBUG][       Thread-260874][   transport.py][1871] : kex follows: False
2025-06-13 16:23:06,162 [DEBUG][       Thread-260874][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 16:23:06,162 [DEBUG][       Thread-260874][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 16:23:06,162 [DEBUG][       Thread-260874][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 16:23:06,162 [DEBUG][       Thread-260874][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 16:23:06,162 [DEBUG][       Thread-260874][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 16:23:06,162 [DEBUG][       Thread-260874][   transport.py][1871] : Compression: none
2025-06-13 16:23:06,162 [DEBUG][       Thread-260874][   transport.py][1871] : === End of kex handshake ===
2025-06-13 16:23:06,218 [DEBUG][       Thread-260874][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 16:23:06,219 [DEBUG][       Thread-260874][   transport.py][1871] : Switch to new keys ...
2025-06-13 16:23:06,219 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 16:23:06,220 [DEBUG][       Thread-260874][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 16:23:06,220 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 16:23:06,274 [DEBUG][       Thread-260874][   transport.py][1871] : userauth is OK
2025-06-13 16:23:06,274 [DEBUG][       Thread-260874][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 16:23:06,275 [DEBUG][       Thread-260874][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 16:23:06,275 [DEBUG][       Thread-260874][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 16:23:06,275 [DEBUG][       Thread-260874][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 16:23:06,293 [ INFO][       Thread-260874][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 16:23:06,293 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 16:23:06,294 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 16:23:07,294 [DEBUG][       Thread-260874][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 16:23:07,295 [DEBUG][       Thread-260874][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 16:23:07,346 [DEBUG][       Thread-260874][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 16:23:07,346 [DEBUG][       Thread-260874][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 16:23:07,358 [DEBUG][       Thread-260874][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 16:23:07,370 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 16:23:07,370 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 16:23:07,382 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 16:23:07,392 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 16:23:07,392 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 16:23:07,392 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 16:23:07,400 [DEBUG][       Thread-260874][   transport.py][1871] : EOF in transport thread
2025-06-13 16:23:09,422 [DEBUG][Thread-260876 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:23:17,023 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:23:17,024 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:23:17,400 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 16:23:17,400 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 16:23:17,400 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 16:23:17,401 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 16:23:17,860 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 16, 23, 10), 17.32, 30.09, 0.0, 16.94, 13.82, 0, 0, 0, 2, 0, 0),)
2025-06-13 16:23:17,860 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 16:23:10
2025-06-13 16:23:17,939 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 16:23:17,946 [DEBUG][       Thread-260877][   transport.py][1871] : starting thread (client mode): 0x86368eb0
2025-06-13 16:23:17,946 [DEBUG][       Thread-260877][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 16:23:17,966 [DEBUG][       Thread-260877][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 16:23:17,966 [ INFO][       Thread-260877][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 16:23:17,969 [DEBUG][       Thread-260877][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 16:23:17,969 [DEBUG][       Thread-260877][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 16:23:17,969 [DEBUG][       Thread-260877][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 16:23:17,969 [DEBUG][       Thread-260877][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:23:17,969 [DEBUG][       Thread-260877][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:23:17,969 [DEBUG][       Thread-260877][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:23:17,969 [DEBUG][       Thread-260877][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:23:17,969 [DEBUG][       Thread-260877][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 16:23:17,970 [DEBUG][       Thread-260877][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 16:23:17,970 [DEBUG][       Thread-260877][   transport.py][1871] : client lang: <none>
2025-06-13 16:23:17,970 [DEBUG][       Thread-260877][   transport.py][1871] : server lang: <none>
2025-06-13 16:23:17,970 [DEBUG][       Thread-260877][   transport.py][1871] : kex follows: False
2025-06-13 16:23:17,970 [DEBUG][       Thread-260877][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 16:23:17,970 [DEBUG][       Thread-260877][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 16:23:17,970 [DEBUG][       Thread-260877][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 16:23:17,970 [DEBUG][       Thread-260877][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 16:23:17,970 [DEBUG][       Thread-260877][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 16:23:17,970 [DEBUG][       Thread-260877][   transport.py][1871] : Compression: none
2025-06-13 16:23:17,970 [DEBUG][       Thread-260877][   transport.py][1871] : === End of kex handshake ===
2025-06-13 16:23:17,983 [DEBUG][       Thread-260877][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 16:23:17,984 [DEBUG][       Thread-260877][   transport.py][1871] : Switch to new keys ...
2025-06-13 16:23:17,984 [DEBUG][       Thread-260877][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 16:23:17,984 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 16:23:17,984 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 16:23:17,985 [DEBUG][       Thread-260877][   transport.py][1871] : userauth is OK
2025-06-13 16:23:18,008 [ INFO][       Thread-260877][   transport.py][1871] : Authentication (password) successful!
2025-06-13 16:23:18,009 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 16:23:18,441 [DEBUG][Thread-260879 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:23:18,647 [DEBUG][       Thread-260877][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 16:23:18,648 [DEBUG][       Thread-260877][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 16:23:18,693 [DEBUG][       Thread-260877][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 16:23:18,693 [DEBUG][       Thread-260877][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 16:23:18,696 [DEBUG][       Thread-260877][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 16:23:18,709 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 16:23:18,710 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 16:23:18,712 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 16:23:18,714 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 16:23:18,721 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 16:23:18,724 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 16:23:18,724 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 16:23:18,725 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 16:23:18,725 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.599240 -999.00  +13.30  18.35     34   -1.90 1 1 1 1 1   887    0 14.41 -39.90 ----- 17.1 18.4 41.8 24.4 16.4 -30.4 15.7 -30.5 16.5 -29.4 17.4 -28.5
2025-06-13 16:23:18,725 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 16:23:18,725 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 16:23:18,725 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.599240
2025-06-13 16:23:18,726 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 16:23:18,727 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 16:23:18,727 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 16:23:18,727 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 16:23:18,727 [DEBUG][       Thread-260877][   transport.py][1871] : EOF in transport thread
2025-06-13 16:23:18,728 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 16:23:18,729 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T16:23:10', tmtdew=17.32, humidity=30.09, cloud=0.0, wind=16.94, temperature=13.82, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T14:22:54.336', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 16:23:18,818 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 16:23:18,830 [DEBUG][       Thread-260881][   transport.py][1871] : starting thread (client mode): 0x863a7f40
2025-06-13 16:23:18,830 [DEBUG][       Thread-260881][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 16:23:18,846 [DEBUG][       Thread-260881][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 16:23:18,846 [ INFO][       Thread-260881][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 16:23:18,854 [DEBUG][       Thread-260881][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 16:23:18,854 [DEBUG][       Thread-260881][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 16:23:18,854 [DEBUG][       Thread-260881][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 16:23:18,854 [DEBUG][       Thread-260881][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:23:18,854 [DEBUG][       Thread-260881][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:23:18,854 [DEBUG][       Thread-260881][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:23:18,854 [DEBUG][       Thread-260881][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:23:18,854 [DEBUG][       Thread-260881][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 16:23:18,854 [DEBUG][       Thread-260881][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 16:23:18,854 [DEBUG][       Thread-260881][   transport.py][1871] : client lang: <none>
2025-06-13 16:23:18,854 [DEBUG][       Thread-260881][   transport.py][1871] : server lang: <none>
2025-06-13 16:23:18,854 [DEBUG][       Thread-260881][   transport.py][1871] : kex follows: False
2025-06-13 16:23:18,854 [DEBUG][       Thread-260881][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 16:23:18,855 [DEBUG][       Thread-260881][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 16:23:18,855 [DEBUG][       Thread-260881][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 16:23:18,855 [DEBUG][       Thread-260881][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 16:23:18,855 [DEBUG][       Thread-260881][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 16:23:18,855 [DEBUG][       Thread-260881][   transport.py][1871] : Compression: none
2025-06-13 16:23:18,855 [DEBUG][       Thread-260881][   transport.py][1871] : === End of kex handshake ===
2025-06-13 16:23:18,914 [DEBUG][       Thread-260881][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 16:23:18,914 [DEBUG][       Thread-260881][   transport.py][1871] : Switch to new keys ...
2025-06-13 16:23:18,915 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 16:23:18,915 [DEBUG][       Thread-260881][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 16:23:18,916 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 16:23:18,970 [DEBUG][       Thread-260881][   transport.py][1871] : userauth is OK
2025-06-13 16:23:18,970 [DEBUG][       Thread-260881][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 16:23:18,970 [DEBUG][       Thread-260881][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 16:23:18,970 [DEBUG][       Thread-260881][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 16:23:18,971 [DEBUG][       Thread-260881][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 16:23:18,989 [ INFO][       Thread-260881][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 16:23:18,990 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 16:23:18,990 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 16:23:20,004 [DEBUG][       Thread-260881][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 16:23:20,004 [DEBUG][       Thread-260881][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 16:23:20,055 [DEBUG][       Thread-260881][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 16:23:20,055 [DEBUG][       Thread-260881][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 16:23:20,064 [DEBUG][       Thread-260881][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 16:23:20,072 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 16:23:20,073 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 16:23:20,081 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 16:23:20,090 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 16:23:20,090 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 16:23:20,090 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 16:23:20,098 [DEBUG][       Thread-260881][   transport.py][1871] : EOF in transport thread
2025-06-13 16:23:23,255 [DEBUG][Thread-260883 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:23:27,464 [DEBUG][Thread-260884 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:23:30,101 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 16:23:30,101 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 16:23:30,101 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 16:23:30,104 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 16:23:30,561 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 16, 23, 10), 17.32, 30.09, 0.0, 16.94, 13.82, 0, 0, 0, 2, 0, 0),)
2025-06-13 16:23:30,561 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 16:23:10
2025-06-13 16:23:30,640 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 16:23:30,645 [DEBUG][       Thread-260885][   transport.py][1871] : starting thread (client mode): 0x8636ac50
2025-06-13 16:23:30,645 [DEBUG][       Thread-260885][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 16:23:30,665 [DEBUG][       Thread-260885][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 16:23:30,665 [ INFO][       Thread-260885][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 16:23:30,668 [DEBUG][       Thread-260885][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 16:23:30,668 [DEBUG][       Thread-260885][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 16:23:30,668 [DEBUG][       Thread-260885][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 16:23:30,668 [DEBUG][       Thread-260885][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:23:30,668 [DEBUG][       Thread-260885][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:23:30,668 [DEBUG][       Thread-260885][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:23:30,668 [DEBUG][       Thread-260885][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:23:30,668 [DEBUG][       Thread-260885][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 16:23:30,669 [DEBUG][       Thread-260885][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 16:23:30,669 [DEBUG][       Thread-260885][   transport.py][1871] : client lang: <none>
2025-06-13 16:23:30,669 [DEBUG][       Thread-260885][   transport.py][1871] : server lang: <none>
2025-06-13 16:23:30,669 [DEBUG][       Thread-260885][   transport.py][1871] : kex follows: False
2025-06-13 16:23:30,669 [DEBUG][       Thread-260885][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 16:23:30,669 [DEBUG][       Thread-260885][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 16:23:30,669 [DEBUG][       Thread-260885][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 16:23:30,669 [DEBUG][       Thread-260885][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 16:23:30,669 [DEBUG][       Thread-260885][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 16:23:30,669 [DEBUG][       Thread-260885][   transport.py][1871] : Compression: none
2025-06-13 16:23:30,669 [DEBUG][       Thread-260885][   transport.py][1871] : === End of kex handshake ===
2025-06-13 16:23:30,685 [DEBUG][       Thread-260885][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 16:23:30,686 [DEBUG][       Thread-260885][   transport.py][1871] : Switch to new keys ...
2025-06-13 16:23:30,686 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 16:23:30,687 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 16:23:30,687 [DEBUG][       Thread-260885][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 16:23:30,687 [DEBUG][       Thread-260885][   transport.py][1871] : userauth is OK
2025-06-13 16:23:30,712 [ INFO][       Thread-260885][   transport.py][1871] : Authentication (password) successful!
2025-06-13 16:23:30,713 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 16:23:31,338 [DEBUG][       Thread-260885][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 16:23:31,338 [DEBUG][       Thread-260885][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 16:23:31,385 [DEBUG][       Thread-260885][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 16:23:31,385 [DEBUG][       Thread-260885][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 16:23:31,389 [DEBUG][       Thread-260885][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 16:23:31,401 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 16:23:31,401 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 16:23:31,403 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 16:23:31,405 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 16:23:31,411 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 16:23:31,413 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 16:23:31,413 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 16:23:31,414 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 16:23:31,414 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.599240 -999.00  +13.30  18.35     34   -1.90 1 1 1 1 1   887    0 14.41 -39.90 ----- 17.1 18.4 41.8 24.4 16.4 -30.4 15.7 -30.5 16.5 -29.4 17.4 -28.5
2025-06-13 16:23:31,414 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 16:23:31,414 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 16:23:31,414 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.599240
2025-06-13 16:23:31,415 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 16:23:31,415 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 16:23:31,415 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 16:23:31,415 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 16:23:31,415 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 16:23:31,416 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T16:23:10', tmtdew=17.32, humidity=30.09, cloud=0.0, wind=16.94, temperature=13.82, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T14:22:54.336', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 16:23:31,417 [DEBUG][       Thread-260885][   transport.py][1871] : EOF in transport thread
2025-06-13 16:23:31,503 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 16:23:31,512 [DEBUG][       Thread-260888][   transport.py][1871] : starting thread (client mode): 0xc54b6c20
2025-06-13 16:23:31,512 [DEBUG][       Thread-260888][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 16:23:31,527 [DEBUG][       Thread-260888][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 16:23:31,527 [ INFO][       Thread-260888][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 16:23:31,534 [DEBUG][       Thread-260888][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 16:23:31,535 [DEBUG][       Thread-260888][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 16:23:31,535 [DEBUG][       Thread-260888][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 16:23:31,535 [DEBUG][       Thread-260888][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:23:31,535 [DEBUG][       Thread-260888][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:23:31,535 [DEBUG][       Thread-260888][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:23:31,535 [DEBUG][       Thread-260888][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:23:31,535 [DEBUG][       Thread-260888][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 16:23:31,535 [DEBUG][       Thread-260888][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 16:23:31,535 [DEBUG][       Thread-260888][   transport.py][1871] : client lang: <none>
2025-06-13 16:23:31,535 [DEBUG][       Thread-260888][   transport.py][1871] : server lang: <none>
2025-06-13 16:23:31,535 [DEBUG][       Thread-260888][   transport.py][1871] : kex follows: False
2025-06-13 16:23:31,535 [DEBUG][       Thread-260888][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 16:23:31,535 [DEBUG][       Thread-260888][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 16:23:31,535 [DEBUG][       Thread-260888][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 16:23:31,535 [DEBUG][       Thread-260888][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 16:23:31,535 [DEBUG][       Thread-260888][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 16:23:31,535 [DEBUG][       Thread-260888][   transport.py][1871] : Compression: none
2025-06-13 16:23:31,535 [DEBUG][       Thread-260888][   transport.py][1871] : === End of kex handshake ===
2025-06-13 16:23:31,595 [DEBUG][       Thread-260888][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 16:23:31,595 [DEBUG][       Thread-260888][   transport.py][1871] : Switch to new keys ...
2025-06-13 16:23:31,596 [DEBUG][       Thread-260888][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 16:23:31,596 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 16:23:31,597 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 16:23:31,654 [DEBUG][       Thread-260888][   transport.py][1871] : userauth is OK
2025-06-13 16:23:31,654 [DEBUG][       Thread-260888][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 16:23:31,654 [DEBUG][       Thread-260888][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 16:23:31,655 [DEBUG][       Thread-260888][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 16:23:31,655 [DEBUG][       Thread-260888][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 16:23:31,679 [ INFO][       Thread-260888][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 16:23:31,679 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 16:23:31,680 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 16:23:32,673 [DEBUG][       Thread-260888][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 16:23:32,673 [DEBUG][       Thread-260888][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 16:23:32,724 [DEBUG][       Thread-260888][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 16:23:32,724 [DEBUG][       Thread-260888][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 16:23:32,734 [DEBUG][       Thread-260888][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 16:23:32,743 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 16:23:32,743 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 16:23:32,752 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 16:23:32,761 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 16:23:32,761 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 16:23:32,762 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 16:23:32,769 [DEBUG][       Thread-260888][   transport.py][1871] : EOF in transport thread
2025-06-13 16:23:36,502 [DEBUG][Thread-260890 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:23:42,772 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 16:23:42,772 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 16:23:42,772 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 16:23:42,775 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 16:23:43,246 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 16, 23, 10), 17.32, 30.09, 0.0, 16.94, 13.82, 0, 0, 0, 2, 0, 0),)
2025-06-13 16:23:43,246 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 16:23:10
2025-06-13 16:23:43,326 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 16:23:43,332 [DEBUG][       Thread-260891][   transport.py][1871] : starting thread (client mode): 0x867fd360
2025-06-13 16:23:43,332 [DEBUG][       Thread-260891][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 16:23:43,351 [DEBUG][       Thread-260891][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 16:23:43,351 [ INFO][       Thread-260891][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 16:23:43,352 [DEBUG][       Thread-260891][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 16:23:43,352 [DEBUG][       Thread-260891][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 16:23:43,352 [DEBUG][       Thread-260891][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 16:23:43,352 [DEBUG][       Thread-260891][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:23:43,352 [DEBUG][       Thread-260891][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:23:43,352 [DEBUG][       Thread-260891][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:23:43,352 [DEBUG][       Thread-260891][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:23:43,352 [DEBUG][       Thread-260891][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 16:23:43,352 [DEBUG][       Thread-260891][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 16:23:43,352 [DEBUG][       Thread-260891][   transport.py][1871] : client lang: <none>
2025-06-13 16:23:43,352 [DEBUG][       Thread-260891][   transport.py][1871] : server lang: <none>
2025-06-13 16:23:43,352 [DEBUG][       Thread-260891][   transport.py][1871] : kex follows: False
2025-06-13 16:23:43,352 [DEBUG][       Thread-260891][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 16:23:43,352 [DEBUG][       Thread-260891][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 16:23:43,352 [DEBUG][       Thread-260891][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 16:23:43,352 [DEBUG][       Thread-260891][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 16:23:43,352 [DEBUG][       Thread-260891][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 16:23:43,352 [DEBUG][       Thread-260891][   transport.py][1871] : Compression: none
2025-06-13 16:23:43,352 [DEBUG][       Thread-260891][   transport.py][1871] : === End of kex handshake ===
2025-06-13 16:23:43,359 [DEBUG][       Thread-260891][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 16:23:43,359 [DEBUG][       Thread-260891][   transport.py][1871] : Switch to new keys ...
2025-06-13 16:23:43,359 [DEBUG][       Thread-260891][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 16:23:43,359 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 16:23:43,359 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 16:23:43,360 [DEBUG][       Thread-260891][   transport.py][1871] : userauth is OK
2025-06-13 16:23:43,372 [ INFO][       Thread-260891][   transport.py][1871] : Authentication (password) successful!
2025-06-13 16:23:43,372 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 16:23:43,951 [DEBUG][       Thread-260891][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 16:23:43,951 [DEBUG][       Thread-260891][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 16:23:43,992 [DEBUG][       Thread-260891][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 16:23:43,992 [DEBUG][       Thread-260891][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 16:23:43,994 [DEBUG][       Thread-260891][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 16:23:44,007 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 16:23:44,007 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 16:23:44,008 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 16:23:44,009 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 16:23:44,011 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 16:23:44,012 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 16:23:44,012 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 16:23:44,012 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 16:23:44,012 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.599588 -999.00  +13.40  21.47     34   -1.70 1 1 1 1 1   887    0 14.13 -38.73 ----- 23.5 21.5 48.8 25.6 16.4 -30.2 15.7 -30.4 16.5 -29.3 17.4 -28.7
2025-06-13 16:23:44,012 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 16:23:44,012 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 16:23:44,012 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.599588
2025-06-13 16:23:44,012 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 16:23:44,013 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 16:23:44,013 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 16:23:44,013 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 16:23:44,013 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 16:23:44,013 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T16:23:10', tmtdew=17.32, humidity=30.09, cloud=0.0, wind=16.94, temperature=13.82, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T14:23:24.403', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 16:23:44,013 [DEBUG][       Thread-260891][   transport.py][1871] : EOF in transport thread
2025-06-13 16:23:44,087 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 16:23:44,105 [DEBUG][       Thread-260894][   transport.py][1871] : starting thread (client mode): 0x86392920
2025-06-13 16:23:44,105 [DEBUG][       Thread-260894][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 16:23:44,119 [DEBUG][       Thread-260894][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 16:23:44,119 [ INFO][       Thread-260894][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 16:23:44,127 [DEBUG][       Thread-260894][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 16:23:44,127 [DEBUG][       Thread-260894][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 16:23:44,127 [DEBUG][       Thread-260894][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 16:23:44,127 [DEBUG][       Thread-260894][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:23:44,127 [DEBUG][       Thread-260894][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:23:44,127 [DEBUG][       Thread-260894][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:23:44,127 [DEBUG][       Thread-260894][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:23:44,127 [DEBUG][       Thread-260894][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 16:23:44,127 [DEBUG][       Thread-260894][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 16:23:44,127 [DEBUG][       Thread-260894][   transport.py][1871] : client lang: <none>
2025-06-13 16:23:44,127 [DEBUG][       Thread-260894][   transport.py][1871] : server lang: <none>
2025-06-13 16:23:44,127 [DEBUG][       Thread-260894][   transport.py][1871] : kex follows: False
2025-06-13 16:23:44,127 [DEBUG][       Thread-260894][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 16:23:44,127 [DEBUG][       Thread-260894][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 16:23:44,127 [DEBUG][       Thread-260894][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 16:23:44,127 [DEBUG][       Thread-260894][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 16:23:44,127 [DEBUG][       Thread-260894][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 16:23:44,127 [DEBUG][       Thread-260894][   transport.py][1871] : Compression: none
2025-06-13 16:23:44,127 [DEBUG][       Thread-260894][   transport.py][1871] : === End of kex handshake ===
2025-06-13 16:23:44,184 [DEBUG][       Thread-260894][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 16:23:44,184 [DEBUG][       Thread-260894][   transport.py][1871] : Switch to new keys ...
2025-06-13 16:23:44,185 [DEBUG][       Thread-260894][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 16:23:44,185 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 16:23:44,185 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 16:23:44,242 [DEBUG][       Thread-260894][   transport.py][1871] : userauth is OK
2025-06-13 16:23:44,242 [DEBUG][       Thread-260894][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 16:23:44,242 [DEBUG][       Thread-260894][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 16:23:44,242 [DEBUG][       Thread-260894][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 16:23:44,242 [DEBUG][       Thread-260894][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 16:23:44,256 [ INFO][       Thread-260894][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 16:23:44,256 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 16:23:44,256 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 16:23:45,245 [DEBUG][       Thread-260894][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 16:23:45,245 [DEBUG][       Thread-260894][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 16:23:45,296 [DEBUG][       Thread-260894][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 16:23:45,296 [DEBUG][       Thread-260894][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 16:23:45,306 [DEBUG][       Thread-260894][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 16:23:45,315 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 16:23:45,315 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 16:23:45,324 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 16:23:45,333 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 16:23:45,334 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 16:23:45,334 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 16:23:45,342 [DEBUG][       Thread-260894][   transport.py][1871] : EOF in transport thread
2025-06-13 16:23:45,525 [DEBUG][Thread-260896 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:23:49,765 [DEBUG][Thread-260897 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:23:50,820 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:23:50,821 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:23:54,549 [DEBUG][Thread-260898 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:23:55,340 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 16:23:55,340 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 16:23:55,340 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 16:23:55,341 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 16:23:55,809 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 16, 23, 42), 17.36, 30.01, 0.0, 18.02, 13.82, 0, 0, 0, 2, 0, 0),)
2025-06-13 16:23:55,810 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 16:23:42
2025-06-13 16:23:55,890 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 16:23:55,894 [DEBUG][       Thread-260899][   transport.py][1871] : starting thread (client mode): 0x863cae90
2025-06-13 16:23:55,894 [DEBUG][       Thread-260899][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 16:23:55,914 [DEBUG][       Thread-260899][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 16:23:55,914 [ INFO][       Thread-260899][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 16:23:55,917 [DEBUG][       Thread-260899][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 16:23:55,917 [DEBUG][       Thread-260899][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 16:23:55,917 [DEBUG][       Thread-260899][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 16:23:55,917 [DEBUG][       Thread-260899][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:23:55,917 [DEBUG][       Thread-260899][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:23:55,917 [DEBUG][       Thread-260899][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:23:55,918 [DEBUG][       Thread-260899][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:23:55,918 [DEBUG][       Thread-260899][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 16:23:55,918 [DEBUG][       Thread-260899][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 16:23:55,918 [DEBUG][       Thread-260899][   transport.py][1871] : client lang: <none>
2025-06-13 16:23:55,918 [DEBUG][       Thread-260899][   transport.py][1871] : server lang: <none>
2025-06-13 16:23:55,918 [DEBUG][       Thread-260899][   transport.py][1871] : kex follows: False
2025-06-13 16:23:55,918 [DEBUG][       Thread-260899][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 16:23:55,918 [DEBUG][       Thread-260899][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 16:23:55,918 [DEBUG][       Thread-260899][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 16:23:55,918 [DEBUG][       Thread-260899][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 16:23:55,918 [DEBUG][       Thread-260899][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 16:23:55,918 [DEBUG][       Thread-260899][   transport.py][1871] : Compression: none
2025-06-13 16:23:55,918 [DEBUG][       Thread-260899][   transport.py][1871] : === End of kex handshake ===
2025-06-13 16:23:55,933 [DEBUG][       Thread-260899][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 16:23:55,933 [DEBUG][       Thread-260899][   transport.py][1871] : Switch to new keys ...
2025-06-13 16:23:55,933 [DEBUG][       Thread-260899][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 16:23:55,933 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 16:23:55,933 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 16:23:55,934 [DEBUG][       Thread-260899][   transport.py][1871] : userauth is OK
2025-06-13 16:23:55,946 [ INFO][       Thread-260899][   transport.py][1871] : Authentication (password) successful!
2025-06-13 16:23:55,946 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 16:23:56,581 [DEBUG][       Thread-260899][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 16:23:56,581 [DEBUG][       Thread-260899][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 16:23:56,625 [DEBUG][       Thread-260899][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 16:23:56,625 [DEBUG][       Thread-260899][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 16:23:56,627 [DEBUG][       Thread-260899][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 16:23:56,639 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 16:23:56,639 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 16:23:56,641 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 16:23:56,641 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 16:23:56,644 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 16:23:56,645 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 16:23:56,645 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 16:23:56,645 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 16:23:56,645 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.599588 -999.00  +13.40  21.47     34   -1.70 1 1 1 1 1   887    0 14.13 -38.73 ----- 23.5 21.5 48.8 25.6 16.4 -30.2 15.7 -30.4 16.5 -29.3 17.4 -28.7
2025-06-13 16:23:56,645 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 16:23:56,645 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 16:23:56,645 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.599588
2025-06-13 16:23:56,646 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 16:23:56,646 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 16:23:56,646 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 16:23:56,646 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 16:23:56,646 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 16:23:56,646 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T16:23:42', tmtdew=17.36, humidity=30.01, cloud=0.0, wind=18.02, temperature=13.82, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T14:23:24.403', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 16:23:56,646 [DEBUG][       Thread-260899][   transport.py][1871] : EOF in transport thread
2025-06-13 16:23:56,717 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 16:23:56,726 [DEBUG][       Thread-260902][   transport.py][1871] : starting thread (client mode): 0x863ef5b0
2025-06-13 16:23:56,727 [DEBUG][       Thread-260902][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 16:23:56,741 [DEBUG][       Thread-260902][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 16:23:56,741 [ INFO][       Thread-260902][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 16:23:56,749 [DEBUG][       Thread-260902][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 16:23:56,749 [DEBUG][       Thread-260902][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 16:23:56,749 [DEBUG][       Thread-260902][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 16:23:56,749 [DEBUG][       Thread-260902][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:23:56,749 [DEBUG][       Thread-260902][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:23:56,749 [DEBUG][       Thread-260902][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:23:56,749 [DEBUG][       Thread-260902][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:23:56,749 [DEBUG][       Thread-260902][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 16:23:56,749 [DEBUG][       Thread-260902][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 16:23:56,749 [DEBUG][       Thread-260902][   transport.py][1871] : client lang: <none>
2025-06-13 16:23:56,749 [DEBUG][       Thread-260902][   transport.py][1871] : server lang: <none>
2025-06-13 16:23:56,749 [DEBUG][       Thread-260902][   transport.py][1871] : kex follows: False
2025-06-13 16:23:56,749 [DEBUG][       Thread-260902][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 16:23:56,749 [DEBUG][       Thread-260902][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 16:23:56,749 [DEBUG][       Thread-260902][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 16:23:56,750 [DEBUG][       Thread-260902][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 16:23:56,750 [DEBUG][       Thread-260902][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 16:23:56,750 [DEBUG][       Thread-260902][   transport.py][1871] : Compression: none
2025-06-13 16:23:56,750 [DEBUG][       Thread-260902][   transport.py][1871] : === End of kex handshake ===
2025-06-13 16:23:56,806 [DEBUG][       Thread-260902][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 16:23:56,807 [DEBUG][       Thread-260902][   transport.py][1871] : Switch to new keys ...
2025-06-13 16:23:56,808 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 16:23:56,808 [DEBUG][       Thread-260902][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 16:23:56,809 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 16:23:56,862 [DEBUG][       Thread-260902][   transport.py][1871] : userauth is OK
2025-06-13 16:23:56,863 [DEBUG][       Thread-260902][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 16:23:56,863 [DEBUG][       Thread-260902][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 16:23:56,863 [DEBUG][       Thread-260902][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 16:23:56,863 [DEBUG][       Thread-260902][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 16:23:56,882 [ INFO][       Thread-260902][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 16:23:56,882 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 16:23:56,883 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 16:23:57,855 [DEBUG][       Thread-260902][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 16:23:57,855 [DEBUG][       Thread-260902][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 16:23:57,904 [DEBUG][       Thread-260902][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 16:23:57,904 [DEBUG][       Thread-260902][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 16:23:57,913 [DEBUG][       Thread-260902][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 16:23:57,922 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 16:23:57,923 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 16:23:57,931 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 16:23:57,941 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 16:23:57,941 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 16:23:57,941 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 16:23:57,949 [DEBUG][       Thread-260902][   transport.py][1871] : EOF in transport thread
2025-06-13 16:24:03,568 [DEBUG][Thread-260904 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:24:07,946 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 16:24:07,946 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 16:24:07,955 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 16:24:07,959 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 16:24:08,434 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 16, 23, 42), 17.36, 30.01, 0.0, 18.02, 13.82, 0, 0, 0, 2, 0, 0),)
2025-06-13 16:24:08,434 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 16:23:42
2025-06-13 16:24:08,512 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 16:24:08,519 [DEBUG][       Thread-260905][   transport.py][1871] : starting thread (client mode): 0x867ffbb0
2025-06-13 16:24:08,519 [DEBUG][       Thread-260905][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 16:24:08,539 [DEBUG][       Thread-260905][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 16:24:08,539 [ INFO][       Thread-260905][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 16:24:08,543 [DEBUG][       Thread-260905][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 16:24:08,543 [DEBUG][       Thread-260905][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 16:24:08,543 [DEBUG][       Thread-260905][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 16:24:08,543 [DEBUG][       Thread-260905][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:24:08,543 [DEBUG][       Thread-260905][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:24:08,543 [DEBUG][       Thread-260905][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:24:08,543 [DEBUG][       Thread-260905][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:24:08,543 [DEBUG][       Thread-260905][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 16:24:08,543 [DEBUG][       Thread-260905][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 16:24:08,543 [DEBUG][       Thread-260905][   transport.py][1871] : client lang: <none>
2025-06-13 16:24:08,543 [DEBUG][       Thread-260905][   transport.py][1871] : server lang: <none>
2025-06-13 16:24:08,543 [DEBUG][       Thread-260905][   transport.py][1871] : kex follows: False
2025-06-13 16:24:08,543 [DEBUG][       Thread-260905][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 16:24:08,543 [DEBUG][       Thread-260905][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 16:24:08,543 [DEBUG][       Thread-260905][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 16:24:08,543 [DEBUG][       Thread-260905][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 16:24:08,543 [DEBUG][       Thread-260905][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 16:24:08,543 [DEBUG][       Thread-260905][   transport.py][1871] : Compression: none
2025-06-13 16:24:08,543 [DEBUG][       Thread-260905][   transport.py][1871] : === End of kex handshake ===
2025-06-13 16:24:08,560 [DEBUG][       Thread-260905][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 16:24:08,561 [DEBUG][       Thread-260905][   transport.py][1871] : Switch to new keys ...
2025-06-13 16:24:08,561 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 16:24:08,561 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 16:24:08,562 [DEBUG][       Thread-260905][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 16:24:08,563 [DEBUG][       Thread-260905][   transport.py][1871] : userauth is OK
2025-06-13 16:24:08,576 [ INFO][       Thread-260905][   transport.py][1871] : Authentication (password) successful!
2025-06-13 16:24:08,577 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 16:24:09,218 [DEBUG][       Thread-260905][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 16:24:09,218 [DEBUG][       Thread-260905][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 16:24:09,261 [DEBUG][       Thread-260905][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 16:24:09,261 [DEBUG][       Thread-260905][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 16:24:09,264 [DEBUG][       Thread-260905][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 16:24:09,275 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 16:24:09,276 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 16:24:09,278 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 16:24:09,280 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 16:24:09,285 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 16:24:09,287 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 16:24:09,288 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 16:24:09,288 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 16:24:09,288 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.599588 -999.00  +13.40  21.47     34   -1.70 1 1 1 1 1   887    0 14.13 -38.73 ----- 23.5 21.5 48.8 25.6 16.4 -30.2 15.7 -30.4 16.5 -29.3 17.4 -28.7
2025-06-13 16:24:09,288 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 16:24:09,288 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 16:24:09,289 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.599588
2025-06-13 16:24:09,289 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 16:24:09,289 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 16:24:09,289 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 16:24:09,290 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 16:24:09,290 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 16:24:09,290 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T16:23:42', tmtdew=17.36, humidity=30.01, cloud=0.0, wind=18.02, temperature=13.82, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T14:23:24.403', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 16:24:09,291 [DEBUG][       Thread-260905][   transport.py][1871] : EOF in transport thread
2025-06-13 16:24:09,376 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 16:24:12,607 [DEBUG][Thread-260908 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:24:17,164 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:24:17,165 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:24:21,627 [DEBUG][Thread-260909 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:24:23,300 [DEBUG][Thread-260910 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:24:30,650 [DEBUG][Thread-260911 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:24:39,670 [DEBUG][Thread-260912 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:24:48,693 [DEBUG][Thread-260913 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:24:50,904 [DEBUG][Thread-260914 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:24:51,984 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:24:51,985 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:24:57,715 [DEBUG][Thread-260915 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:25:06,736 [DEBUG][Thread-260916 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:25:15,755 [DEBUG][Thread-260917 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:25:17,300 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:25:17,301 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:25:23,332 [DEBUG][Thread-260918 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:25:24,775 [DEBUG][Thread-260919 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:25:33,796 [DEBUG][Thread-260920 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:25:42,818 [DEBUG][Thread-260921 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:25:51,837 [DEBUG][Thread-260922 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:25:52,064 [DEBUG][Thread-260923 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:25:53,100 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:25:53,100 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:26:00,859 [DEBUG][Thread-260924 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:26:09,880 [DEBUG][Thread-260925 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:26:17,441 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:26:17,442 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:26:18,516 [WARNING][ poll_weather_worker][      driver.py][ 286] : Unable to open ssh connection for writing weather state to io.saao.ac.za: [Errno 110] Connection timed out
2025-06-13 16:26:18,903 [DEBUG][Thread-260926 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:26:23,375 [DEBUG][Thread-260927 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:26:27,925 [DEBUG][Thread-260928 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:26:28,527 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 16:26:28,527 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 16:26:28,527 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 16:26:28,530 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 16:26:29,027 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 16, 26, 21), 17.21, 30.01, 0.0, 18.49, 13.77, 0, 0, 0, 2, 0, 0),)
2025-06-13 16:26:29,027 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 16:26:21
2025-06-13 16:26:29,115 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 16:26:29,119 [DEBUG][       Thread-260929][   transport.py][1871] : starting thread (client mode): 0x867fd840
2025-06-13 16:26:29,119 [DEBUG][       Thread-260929][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 16:26:29,139 [DEBUG][       Thread-260929][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 16:26:29,139 [ INFO][       Thread-260929][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 16:26:29,143 [DEBUG][       Thread-260929][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 16:26:29,143 [DEBUG][       Thread-260929][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 16:26:29,143 [DEBUG][       Thread-260929][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 16:26:29,143 [DEBUG][       Thread-260929][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:26:29,143 [DEBUG][       Thread-260929][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:26:29,143 [DEBUG][       Thread-260929][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:26:29,143 [DEBUG][       Thread-260929][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:26:29,143 [DEBUG][       Thread-260929][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 16:26:29,143 [DEBUG][       Thread-260929][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 16:26:29,143 [DEBUG][       Thread-260929][   transport.py][1871] : client lang: <none>
2025-06-13 16:26:29,143 [DEBUG][       Thread-260929][   transport.py][1871] : server lang: <none>
2025-06-13 16:26:29,143 [DEBUG][       Thread-260929][   transport.py][1871] : kex follows: False
2025-06-13 16:26:29,143 [DEBUG][       Thread-260929][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 16:26:29,143 [DEBUG][       Thread-260929][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 16:26:29,143 [DEBUG][       Thread-260929][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 16:26:29,143 [DEBUG][       Thread-260929][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 16:26:29,143 [DEBUG][       Thread-260929][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 16:26:29,143 [DEBUG][       Thread-260929][   transport.py][1871] : Compression: none
2025-06-13 16:26:29,143 [DEBUG][       Thread-260929][   transport.py][1871] : === End of kex handshake ===
2025-06-13 16:26:29,162 [DEBUG][       Thread-260929][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 16:26:29,162 [DEBUG][       Thread-260929][   transport.py][1871] : Switch to new keys ...
2025-06-13 16:26:29,162 [DEBUG][       Thread-260929][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 16:26:29,162 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 16:26:29,162 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 16:26:29,163 [DEBUG][       Thread-260929][   transport.py][1871] : userauth is OK
2025-06-13 16:26:29,187 [ INFO][       Thread-260929][   transport.py][1871] : Authentication (password) successful!
2025-06-13 16:26:29,187 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 16:26:29,991 [DEBUG][       Thread-260929][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 16:26:29,992 [DEBUG][       Thread-260929][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 16:26:30,033 [DEBUG][       Thread-260929][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 16:26:30,033 [DEBUG][       Thread-260929][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 16:26:30,035 [DEBUG][       Thread-260929][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 16:26:30,046 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 16:26:30,046 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 16:26:30,047 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 16:26:30,048 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 16:26:30,051 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 16:26:30,052 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 16:26:30,052 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 16:26:30,052 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 16:26:30,052 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.600976 -999.00  +13.50  17.76     35   -1.60 1 1 1 1 1   887    0 14.10 -43.61 ----- 20.1 17.8 54.6 23.6 16.4 -30.3 15.7 -30.5 16.4 -30.2 17.4 -29.2
2025-06-13 16:26:30,052 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 16:26:30,052 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 16:26:30,052 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.600976
2025-06-13 16:26:30,052 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 16:26:30,052 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 16:26:30,052 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 16:26:30,052 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 16:26:30,052 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 16:26:30,052 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T16:26:21', tmtdew=17.21, humidity=30.01, cloud=0.0, wind=18.49, temperature=13.77, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T14:25:24.326', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 16:26:30,055 [DEBUG][       Thread-260929][   transport.py][1871] : EOF in transport thread
2025-06-13 16:26:30,125 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 16:26:30,138 [DEBUG][       Thread-260932][   transport.py][1871] : starting thread (client mode): 0x86352230
2025-06-13 16:26:30,138 [DEBUG][       Thread-260932][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 16:26:30,153 [DEBUG][       Thread-260932][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 16:26:30,153 [ INFO][       Thread-260932][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 16:26:30,160 [DEBUG][       Thread-260932][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 16:26:30,160 [DEBUG][       Thread-260932][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 16:26:30,160 [DEBUG][       Thread-260932][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 16:26:30,160 [DEBUG][       Thread-260932][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:26:30,160 [DEBUG][       Thread-260932][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:26:30,160 [DEBUG][       Thread-260932][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:26:30,160 [DEBUG][       Thread-260932][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:26:30,160 [DEBUG][       Thread-260932][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 16:26:30,160 [DEBUG][       Thread-260932][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 16:26:30,160 [DEBUG][       Thread-260932][   transport.py][1871] : client lang: <none>
2025-06-13 16:26:30,160 [DEBUG][       Thread-260932][   transport.py][1871] : server lang: <none>
2025-06-13 16:26:30,160 [DEBUG][       Thread-260932][   transport.py][1871] : kex follows: False
2025-06-13 16:26:30,160 [DEBUG][       Thread-260932][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 16:26:30,160 [DEBUG][       Thread-260932][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 16:26:30,160 [DEBUG][       Thread-260932][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 16:26:30,160 [DEBUG][       Thread-260932][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 16:26:30,160 [DEBUG][       Thread-260932][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 16:26:30,160 [DEBUG][       Thread-260932][   transport.py][1871] : Compression: none
2025-06-13 16:26:30,160 [DEBUG][       Thread-260932][   transport.py][1871] : === End of kex handshake ===
2025-06-13 16:26:30,216 [DEBUG][       Thread-260932][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 16:26:30,216 [DEBUG][       Thread-260932][   transport.py][1871] : Switch to new keys ...
2025-06-13 16:26:30,216 [DEBUG][       Thread-260932][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 16:26:30,216 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 16:26:30,217 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 16:26:30,273 [DEBUG][       Thread-260932][   transport.py][1871] : userauth is OK
2025-06-13 16:26:30,273 [DEBUG][       Thread-260932][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 16:26:30,273 [DEBUG][       Thread-260932][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 16:26:30,273 [DEBUG][       Thread-260932][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 16:26:30,273 [DEBUG][       Thread-260932][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 16:26:30,288 [ INFO][       Thread-260932][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 16:26:30,288 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 16:26:30,288 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 16:26:31,315 [DEBUG][       Thread-260932][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 16:26:31,315 [DEBUG][       Thread-260932][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 16:26:31,363 [DEBUG][       Thread-260932][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 16:26:31,363 [DEBUG][       Thread-260932][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 16:26:31,371 [DEBUG][       Thread-260932][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 16:26:31,379 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 16:26:31,379 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 16:26:31,387 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 16:26:31,395 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 16:26:31,395 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 16:26:31,395 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 16:26:31,403 [DEBUG][       Thread-260932][   transport.py][1871] : EOF in transport thread
2025-06-13 16:26:36,944 [DEBUG][Thread-260934 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:26:41,406 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 16:26:41,406 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 16:26:41,406 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 16:26:41,409 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 16:26:41,892 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 16, 26, 21), 17.21, 30.01, 0.0, 18.49, 13.77, 0, 0, 0, 2, 0, 0),)
2025-06-13 16:26:41,892 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 16:26:21
2025-06-13 16:26:41,973 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 16:26:41,976 [DEBUG][       Thread-260935][   transport.py][1871] : starting thread (client mode): 0x867fc0d0
2025-06-13 16:26:41,976 [DEBUG][       Thread-260935][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 16:26:41,998 [DEBUG][       Thread-260935][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 16:26:41,998 [ INFO][       Thread-260935][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 16:26:42,001 [DEBUG][       Thread-260935][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 16:26:42,002 [DEBUG][       Thread-260935][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 16:26:42,002 [DEBUG][       Thread-260935][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 16:26:42,002 [DEBUG][       Thread-260935][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:26:42,002 [DEBUG][       Thread-260935][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:26:42,002 [DEBUG][       Thread-260935][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:26:42,002 [DEBUG][       Thread-260935][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:26:42,002 [DEBUG][       Thread-260935][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 16:26:42,002 [DEBUG][       Thread-260935][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 16:26:42,002 [DEBUG][       Thread-260935][   transport.py][1871] : client lang: <none>
2025-06-13 16:26:42,002 [DEBUG][       Thread-260935][   transport.py][1871] : server lang: <none>
2025-06-13 16:26:42,002 [DEBUG][       Thread-260935][   transport.py][1871] : kex follows: False
2025-06-13 16:26:42,002 [DEBUG][       Thread-260935][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 16:26:42,002 [DEBUG][       Thread-260935][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 16:26:42,002 [DEBUG][       Thread-260935][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 16:26:42,002 [DEBUG][       Thread-260935][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 16:26:42,002 [DEBUG][       Thread-260935][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 16:26:42,002 [DEBUG][       Thread-260935][   transport.py][1871] : Compression: none
2025-06-13 16:26:42,002 [DEBUG][       Thread-260935][   transport.py][1871] : === End of kex handshake ===
2025-06-13 16:26:42,019 [DEBUG][       Thread-260935][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 16:26:42,019 [DEBUG][       Thread-260935][   transport.py][1871] : Switch to new keys ...
2025-06-13 16:26:42,020 [DEBUG][       Thread-260935][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 16:26:42,020 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 16:26:42,020 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 16:26:42,021 [DEBUG][       Thread-260935][   transport.py][1871] : userauth is OK
2025-06-13 16:26:42,034 [ INFO][       Thread-260935][   transport.py][1871] : Authentication (password) successful!
2025-06-13 16:26:42,035 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 16:26:42,691 [DEBUG][       Thread-260935][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 16:26:42,691 [DEBUG][       Thread-260935][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 16:26:42,733 [DEBUG][       Thread-260935][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 16:26:42,733 [DEBUG][       Thread-260935][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 16:26:42,737 [DEBUG][       Thread-260935][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 16:26:42,748 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 16:26:42,749 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 16:26:42,751 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 16:26:42,753 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 16:26:42,760 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 16:26:42,762 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 16:26:42,762 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 16:26:42,763 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 16:26:42,763 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.601671 -999.00  +13.60  21.87     36   -1.10 1 1 1 1 1   887    0 13.85 -47.72 ----- 24.6 21.9 55.6 27.3 16.4 -29.8 15.7 -30.3 16.4 -30.7 17.3 -28.7
2025-06-13 16:26:42,763 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 16:26:42,763 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 16:26:42,763 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.601671
2025-06-13 16:26:42,763 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 16:26:42,764 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 16:26:42,764 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 16:26:42,764 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 16:26:42,764 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 16:26:42,764 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T16:26:21', tmtdew=17.21, humidity=30.01, cloud=0.0, wind=18.49, temperature=13.77, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T14:26:24.374', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 16:26:42,765 [DEBUG][       Thread-260935][   transport.py][1871] : EOF in transport thread
2025-06-13 16:26:42,849 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 16:26:42,860 [DEBUG][       Thread-260938][   transport.py][1871] : starting thread (client mode): 0x86893df0
2025-06-13 16:26:42,860 [DEBUG][       Thread-260938][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 16:26:42,879 [DEBUG][       Thread-260938][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 16:26:42,879 [ INFO][       Thread-260938][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 16:26:42,886 [DEBUG][       Thread-260938][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 16:26:42,887 [DEBUG][       Thread-260938][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 16:26:42,887 [DEBUG][       Thread-260938][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 16:26:42,887 [DEBUG][       Thread-260938][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:26:42,887 [DEBUG][       Thread-260938][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:26:42,887 [DEBUG][       Thread-260938][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:26:42,887 [DEBUG][       Thread-260938][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:26:42,887 [DEBUG][       Thread-260938][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 16:26:42,887 [DEBUG][       Thread-260938][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 16:26:42,887 [DEBUG][       Thread-260938][   transport.py][1871] : client lang: <none>
2025-06-13 16:26:42,887 [DEBUG][       Thread-260938][   transport.py][1871] : server lang: <none>
2025-06-13 16:26:42,887 [DEBUG][       Thread-260938][   transport.py][1871] : kex follows: False
2025-06-13 16:26:42,887 [DEBUG][       Thread-260938][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 16:26:42,887 [DEBUG][       Thread-260938][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 16:26:42,887 [DEBUG][       Thread-260938][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 16:26:42,887 [DEBUG][       Thread-260938][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 16:26:42,887 [DEBUG][       Thread-260938][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 16:26:42,888 [DEBUG][       Thread-260938][   transport.py][1871] : Compression: none
2025-06-13 16:26:42,888 [DEBUG][       Thread-260938][   transport.py][1871] : === End of kex handshake ===
2025-06-13 16:26:42,946 [DEBUG][       Thread-260938][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 16:26:42,947 [DEBUG][       Thread-260938][   transport.py][1871] : Switch to new keys ...
2025-06-13 16:26:42,947 [DEBUG][       Thread-260938][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 16:26:42,948 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 16:26:42,949 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 16:26:43,004 [DEBUG][       Thread-260938][   transport.py][1871] : userauth is OK
2025-06-13 16:26:43,005 [DEBUG][       Thread-260938][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 16:26:43,005 [DEBUG][       Thread-260938][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 16:26:43,005 [DEBUG][       Thread-260938][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 16:26:43,005 [DEBUG][       Thread-260938][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 16:26:43,024 [ INFO][       Thread-260938][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 16:26:43,024 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 16:26:43,025 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 16:26:44,002 [DEBUG][       Thread-260938][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 16:26:44,002 [DEBUG][       Thread-260938][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 16:26:44,052 [DEBUG][       Thread-260938][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 16:26:44,052 [DEBUG][       Thread-260938][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 16:26:44,062 [DEBUG][       Thread-260938][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 16:26:44,071 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 16:26:44,071 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 16:26:44,080 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 16:26:44,091 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 16:26:44,091 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 16:26:44,092 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 16:26:44,107 [DEBUG][       Thread-260938][   transport.py][1871] : EOF in transport thread
2025-06-13 16:26:45,980 [DEBUG][Thread-260940 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:26:53,167 [DEBUG][Thread-260941 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:26:54,102 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 16:26:54,102 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 16:26:54,102 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 16:26:54,103 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 16:26:54,243 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:26:54,243 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:26:54,622 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 16, 26, 21), 17.21, 30.01, 0.0, 18.49, 13.77, 0, 0, 0, 2, 0, 0),)
2025-06-13 16:26:54,623 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 16:26:21
2025-06-13 16:26:54,709 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 16:26:54,714 [DEBUG][       Thread-260942][   transport.py][1871] : starting thread (client mode): 0x867fdde0
2025-06-13 16:26:54,714 [DEBUG][       Thread-260942][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 16:26:54,734 [DEBUG][       Thread-260942][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 16:26:54,735 [ INFO][       Thread-260942][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 16:26:54,738 [DEBUG][       Thread-260942][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 16:26:54,738 [DEBUG][       Thread-260942][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 16:26:54,738 [DEBUG][       Thread-260942][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 16:26:54,738 [DEBUG][       Thread-260942][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:26:54,738 [DEBUG][       Thread-260942][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:26:54,738 [DEBUG][       Thread-260942][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:26:54,738 [DEBUG][       Thread-260942][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:26:54,738 [DEBUG][       Thread-260942][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 16:26:54,738 [DEBUG][       Thread-260942][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 16:26:54,738 [DEBUG][       Thread-260942][   transport.py][1871] : client lang: <none>
2025-06-13 16:26:54,738 [DEBUG][       Thread-260942][   transport.py][1871] : server lang: <none>
2025-06-13 16:26:54,738 [DEBUG][       Thread-260942][   transport.py][1871] : kex follows: False
2025-06-13 16:26:54,738 [DEBUG][       Thread-260942][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 16:26:54,738 [DEBUG][       Thread-260942][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 16:26:54,738 [DEBUG][       Thread-260942][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 16:26:54,738 [DEBUG][       Thread-260942][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 16:26:54,738 [DEBUG][       Thread-260942][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 16:26:54,738 [DEBUG][       Thread-260942][   transport.py][1871] : Compression: none
2025-06-13 16:26:54,738 [DEBUG][       Thread-260942][   transport.py][1871] : === End of kex handshake ===
2025-06-13 16:26:54,746 [DEBUG][       Thread-260942][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 16:26:54,746 [DEBUG][       Thread-260942][   transport.py][1871] : Switch to new keys ...
2025-06-13 16:26:54,746 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 16:26:54,747 [DEBUG][       Thread-260942][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 16:26:54,747 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 16:26:54,747 [DEBUG][       Thread-260942][   transport.py][1871] : userauth is OK
2025-06-13 16:26:54,759 [ INFO][       Thread-260942][   transport.py][1871] : Authentication (password) successful!
2025-06-13 16:26:54,759 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 16:26:54,999 [DEBUG][Thread-260944 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:26:55,381 [DEBUG][       Thread-260942][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 16:26:55,382 [DEBUG][       Thread-260942][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 16:26:55,425 [DEBUG][       Thread-260942][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 16:26:55,425 [DEBUG][       Thread-260942][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 16:26:55,429 [DEBUG][       Thread-260942][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 16:26:55,441 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 16:26:55,441 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 16:26:55,443 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 16:26:55,445 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 16:26:55,450 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 16:26:55,452 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 16:26:55,452 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 16:26:55,453 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 16:26:55,453 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.601671 -999.00  +13.60  21.87     36   -1.10 1 1 1 1 1   887    0 13.85 -47.72 ----- 24.6 21.9 55.6 27.3 16.4 -29.8 15.7 -30.3 16.4 -30.7 17.3 -28.7
2025-06-13 16:26:55,453 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 16:26:55,453 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 16:26:55,454 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.601671
2025-06-13 16:26:55,454 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 16:26:55,455 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 16:26:55,455 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 16:26:55,455 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 16:26:55,455 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 16:26:55,455 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T16:26:21', tmtdew=17.21, humidity=30.01, cloud=0.0, wind=18.49, temperature=13.77, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T14:26:24.374', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 16:26:55,455 [DEBUG][       Thread-260942][   transport.py][1871] : EOF in transport thread
2025-06-13 16:26:55,539 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 16:26:55,551 [DEBUG][       Thread-260946][   transport.py][1871] : starting thread (client mode): 0x863932e0
2025-06-13 16:26:55,551 [DEBUG][       Thread-260946][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 16:26:55,566 [DEBUG][       Thread-260946][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 16:26:55,566 [ INFO][       Thread-260946][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 16:26:55,573 [DEBUG][       Thread-260946][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 16:26:55,573 [DEBUG][       Thread-260946][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 16:26:55,573 [DEBUG][       Thread-260946][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 16:26:55,574 [DEBUG][       Thread-260946][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:26:55,574 [DEBUG][       Thread-260946][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:26:55,574 [DEBUG][       Thread-260946][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:26:55,574 [DEBUG][       Thread-260946][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:26:55,574 [DEBUG][       Thread-260946][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 16:26:55,574 [DEBUG][       Thread-260946][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 16:26:55,574 [DEBUG][       Thread-260946][   transport.py][1871] : client lang: <none>
2025-06-13 16:26:55,574 [DEBUG][       Thread-260946][   transport.py][1871] : server lang: <none>
2025-06-13 16:26:55,574 [DEBUG][       Thread-260946][   transport.py][1871] : kex follows: False
2025-06-13 16:26:55,574 [DEBUG][       Thread-260946][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 16:26:55,574 [DEBUG][       Thread-260946][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 16:26:55,574 [DEBUG][       Thread-260946][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 16:26:55,574 [DEBUG][       Thread-260946][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 16:26:55,574 [DEBUG][       Thread-260946][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 16:26:55,574 [DEBUG][       Thread-260946][   transport.py][1871] : Compression: none
2025-06-13 16:26:55,574 [DEBUG][       Thread-260946][   transport.py][1871] : === End of kex handshake ===
2025-06-13 16:26:55,630 [DEBUG][       Thread-260946][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 16:26:55,630 [DEBUG][       Thread-260946][   transport.py][1871] : Switch to new keys ...
2025-06-13 16:26:55,631 [DEBUG][       Thread-260946][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 16:26:55,632 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 16:26:55,632 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 16:26:55,686 [DEBUG][       Thread-260946][   transport.py][1871] : userauth is OK
2025-06-13 16:26:55,687 [DEBUG][       Thread-260946][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 16:26:55,687 [DEBUG][       Thread-260946][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 16:26:55,687 [DEBUG][       Thread-260946][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 16:26:55,687 [DEBUG][       Thread-260946][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 16:26:55,706 [ INFO][       Thread-260946][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 16:26:55,707 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 16:26:55,707 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 16:26:56,665 [DEBUG][       Thread-260946][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 16:26:56,665 [DEBUG][       Thread-260946][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 16:26:56,723 [DEBUG][       Thread-260946][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 16:26:56,724 [DEBUG][       Thread-260946][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 16:26:56,733 [DEBUG][       Thread-260946][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 16:26:56,745 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 16:26:56,746 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 16:26:56,755 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 16:26:56,764 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 16:26:56,765 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 16:26:56,765 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 16:26:56,773 [DEBUG][       Thread-260946][   transport.py][1871] : EOF in transport thread
2025-06-13 16:27:04,017 [DEBUG][Thread-260948 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:27:06,776 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 16:27:06,776 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 16:27:06,776 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 16:27:06,779 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 16:27:07,262 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 16, 26, 52), 17.15, 30.15, 0.0, 16.59, 13.73, 0, 0, 0, 2, 0, 0),)
2025-06-13 16:27:07,262 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 16:26:52
2025-06-13 16:27:07,348 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 16:27:07,351 [DEBUG][       Thread-260949][   transport.py][1871] : starting thread (client mode): 0x867feda0
2025-06-13 16:27:07,351 [DEBUG][       Thread-260949][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 16:27:07,374 [DEBUG][       Thread-260949][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 16:27:07,374 [ INFO][       Thread-260949][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 16:27:07,378 [DEBUG][       Thread-260949][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 16:27:07,378 [DEBUG][       Thread-260949][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 16:27:07,378 [DEBUG][       Thread-260949][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 16:27:07,378 [DEBUG][       Thread-260949][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:27:07,378 [DEBUG][       Thread-260949][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:27:07,378 [DEBUG][       Thread-260949][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:27:07,378 [DEBUG][       Thread-260949][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:27:07,378 [DEBUG][       Thread-260949][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 16:27:07,378 [DEBUG][       Thread-260949][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 16:27:07,378 [DEBUG][       Thread-260949][   transport.py][1871] : client lang: <none>
2025-06-13 16:27:07,378 [DEBUG][       Thread-260949][   transport.py][1871] : server lang: <none>
2025-06-13 16:27:07,378 [DEBUG][       Thread-260949][   transport.py][1871] : kex follows: False
2025-06-13 16:27:07,378 [DEBUG][       Thread-260949][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 16:27:07,378 [DEBUG][       Thread-260949][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 16:27:07,378 [DEBUG][       Thread-260949][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 16:27:07,378 [DEBUG][       Thread-260949][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 16:27:07,378 [DEBUG][       Thread-260949][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 16:27:07,378 [DEBUG][       Thread-260949][   transport.py][1871] : Compression: none
2025-06-13 16:27:07,378 [DEBUG][       Thread-260949][   transport.py][1871] : === End of kex handshake ===
2025-06-13 16:27:07,392 [DEBUG][       Thread-260949][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 16:27:07,392 [DEBUG][       Thread-260949][   transport.py][1871] : Switch to new keys ...
2025-06-13 16:27:07,393 [DEBUG][       Thread-260949][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 16:27:07,393 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 16:27:07,393 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 16:27:07,393 [DEBUG][       Thread-260949][   transport.py][1871] : userauth is OK
2025-06-13 16:27:07,406 [ INFO][       Thread-260949][   transport.py][1871] : Authentication (password) successful!
2025-06-13 16:27:07,406 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 16:27:08,020 [DEBUG][       Thread-260949][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 16:27:08,020 [DEBUG][       Thread-260949][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 16:27:08,064 [DEBUG][       Thread-260949][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 16:27:08,065 [DEBUG][       Thread-260949][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 16:27:08,067 [DEBUG][       Thread-260949][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 16:27:08,080 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 16:27:08,080 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 16:27:08,081 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 16:27:08,082 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 16:27:08,085 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 16:27:08,085 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 16:27:08,086 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 16:27:08,086 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 16:27:08,086 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.602018 -999.00  +13.60  25.22     35   -1.40 1 1 1 1 1   887    0 13.82 -48.23 ----- 20.8 25.2 51.6 27.9 16.4 -30.1 15.7 -30.0 16.4 -30.0 17.3 -29.2
2025-06-13 16:27:08,086 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 16:27:08,086 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 16:27:08,086 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.602018
2025-06-13 16:27:08,086 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 16:27:08,086 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 16:27:08,086 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 16:27:08,086 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 16:27:08,086 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 16:27:08,086 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T16:26:52', tmtdew=17.15, humidity=30.15, cloud=0.0, wind=16.59, temperature=13.73, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T14:26:54.355', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 16:27:08,086 [DEBUG][       Thread-260949][   transport.py][1871] : EOF in transport thread
2025-06-13 16:27:08,161 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 16:27:08,169 [DEBUG][       Thread-260952][   transport.py][1871] : starting thread (client mode): 0x867b7670
2025-06-13 16:27:08,170 [DEBUG][       Thread-260952][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 16:27:08,186 [DEBUG][       Thread-260952][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 16:27:08,186 [ INFO][       Thread-260952][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 16:27:08,193 [DEBUG][       Thread-260952][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 16:27:08,193 [DEBUG][       Thread-260952][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 16:27:08,193 [DEBUG][       Thread-260952][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 16:27:08,193 [DEBUG][       Thread-260952][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:27:08,193 [DEBUG][       Thread-260952][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:27:08,193 [DEBUG][       Thread-260952][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:27:08,193 [DEBUG][       Thread-260952][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:27:08,193 [DEBUG][       Thread-260952][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 16:27:08,193 [DEBUG][       Thread-260952][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 16:27:08,193 [DEBUG][       Thread-260952][   transport.py][1871] : client lang: <none>
2025-06-13 16:27:08,193 [DEBUG][       Thread-260952][   transport.py][1871] : server lang: <none>
2025-06-13 16:27:08,193 [DEBUG][       Thread-260952][   transport.py][1871] : kex follows: False
2025-06-13 16:27:08,193 [DEBUG][       Thread-260952][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 16:27:08,193 [DEBUG][       Thread-260952][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 16:27:08,193 [DEBUG][       Thread-260952][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 16:27:08,193 [DEBUG][       Thread-260952][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 16:27:08,193 [DEBUG][       Thread-260952][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 16:27:08,193 [DEBUG][       Thread-260952][   transport.py][1871] : Compression: none
2025-06-13 16:27:08,194 [DEBUG][       Thread-260952][   transport.py][1871] : === End of kex handshake ===
2025-06-13 16:27:08,254 [DEBUG][       Thread-260952][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 16:27:08,254 [DEBUG][       Thread-260952][   transport.py][1871] : Switch to new keys ...
2025-06-13 16:27:08,254 [DEBUG][       Thread-260952][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 16:27:08,254 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 16:27:08,254 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 16:27:08,310 [DEBUG][       Thread-260952][   transport.py][1871] : userauth is OK
2025-06-13 16:27:08,310 [DEBUG][       Thread-260952][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 16:27:08,310 [DEBUG][       Thread-260952][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 16:27:08,310 [DEBUG][       Thread-260952][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 16:27:08,310 [DEBUG][       Thread-260952][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 16:27:08,324 [ INFO][       Thread-260952][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 16:27:08,324 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 16:27:08,324 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 16:27:09,348 [DEBUG][       Thread-260952][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 16:27:09,348 [DEBUG][       Thread-260952][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 16:27:09,399 [DEBUG][       Thread-260952][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 16:27:09,399 [DEBUG][       Thread-260952][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 16:27:09,408 [DEBUG][       Thread-260952][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 16:27:09,416 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 16:27:09,416 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 16:27:09,424 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 16:27:09,432 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 16:27:09,432 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 16:27:09,432 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 16:27:09,440 [DEBUG][       Thread-260952][   transport.py][1871] : EOF in transport thread
2025-06-13 16:27:13,037 [DEBUG][Thread-260954 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:27:17,584 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:27:17,585 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:27:19,434 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 16:27:19,435 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 16:27:19,444 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 16:27:19,447 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 16:27:19,913 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 16, 26, 52), 17.15, 30.15, 0.0, 16.59, 13.73, 0, 0, 0, 2, 0, 0),)
2025-06-13 16:27:19,913 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 16:26:52
2025-06-13 16:27:19,995 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 16:27:19,998 [DEBUG][       Thread-260955][   transport.py][1871] : starting thread (client mode): 0x863528c0
2025-06-13 16:27:19,999 [DEBUG][       Thread-260955][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 16:27:20,020 [DEBUG][       Thread-260955][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 16:27:20,020 [ INFO][       Thread-260955][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 16:27:20,023 [DEBUG][       Thread-260955][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 16:27:20,023 [DEBUG][       Thread-260955][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 16:27:20,023 [DEBUG][       Thread-260955][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 16:27:20,023 [DEBUG][       Thread-260955][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:27:20,023 [DEBUG][       Thread-260955][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:27:20,023 [DEBUG][       Thread-260955][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:27:20,023 [DEBUG][       Thread-260955][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:27:20,023 [DEBUG][       Thread-260955][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 16:27:20,023 [DEBUG][       Thread-260955][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 16:27:20,023 [DEBUG][       Thread-260955][   transport.py][1871] : client lang: <none>
2025-06-13 16:27:20,023 [DEBUG][       Thread-260955][   transport.py][1871] : server lang: <none>
2025-06-13 16:27:20,023 [DEBUG][       Thread-260955][   transport.py][1871] : kex follows: False
2025-06-13 16:27:20,023 [DEBUG][       Thread-260955][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 16:27:20,023 [DEBUG][       Thread-260955][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 16:27:20,023 [DEBUG][       Thread-260955][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 16:27:20,023 [DEBUG][       Thread-260955][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 16:27:20,023 [DEBUG][       Thread-260955][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 16:27:20,023 [DEBUG][       Thread-260955][   transport.py][1871] : Compression: none
2025-06-13 16:27:20,023 [DEBUG][       Thread-260955][   transport.py][1871] : === End of kex handshake ===
2025-06-13 16:27:20,039 [DEBUG][       Thread-260955][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 16:27:20,039 [DEBUG][       Thread-260955][   transport.py][1871] : Switch to new keys ...
2025-06-13 16:27:20,040 [DEBUG][       Thread-260955][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 16:27:20,040 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 16:27:20,040 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 16:27:20,041 [DEBUG][       Thread-260955][   transport.py][1871] : userauth is OK
2025-06-13 16:27:20,054 [ INFO][       Thread-260955][   transport.py][1871] : Authentication (password) successful!
2025-06-13 16:27:20,054 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 16:27:20,691 [DEBUG][       Thread-260955][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 16:27:20,691 [DEBUG][       Thread-260955][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 16:27:20,733 [DEBUG][       Thread-260955][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 16:27:20,733 [DEBUG][       Thread-260955][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 16:27:20,735 [DEBUG][       Thread-260955][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 16:27:20,747 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 16:27:20,747 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 16:27:20,748 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 16:27:20,750 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 16:27:20,752 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 16:27:20,753 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 16:27:20,753 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 16:27:20,754 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 16:27:20,754 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.602018 -999.00  +13.60  25.22     35   -1.40 1 1 1 1 1   887    0 13.82 -48.23 ----- 20.8 25.2 51.6 27.9 16.4 -30.1 15.7 -30.0 16.4 -30.0 17.3 -29.2
2025-06-13 16:27:20,754 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 16:27:20,754 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 16:27:20,754 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.602018
2025-06-13 16:27:20,754 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 16:27:20,754 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 16:27:20,754 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 16:27:20,754 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 16:27:20,754 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 16:27:20,754 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T16:26:52', tmtdew=17.15, humidity=30.15, cloud=0.0, wind=16.59, temperature=13.73, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T14:26:54.355', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 16:27:20,755 [DEBUG][       Thread-260955][   transport.py][1871] : EOF in transport thread
2025-06-13 16:27:20,824 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 16:27:20,837 [DEBUG][       Thread-260958][   transport.py][1871] : starting thread (client mode): 0x863c8520
2025-06-13 16:27:20,837 [DEBUG][       Thread-260958][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 16:27:20,852 [DEBUG][       Thread-260958][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 16:27:20,852 [ INFO][       Thread-260958][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 16:27:20,859 [DEBUG][       Thread-260958][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 16:27:20,859 [DEBUG][       Thread-260958][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 16:27:20,859 [DEBUG][       Thread-260958][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 16:27:20,859 [DEBUG][       Thread-260958][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:27:20,860 [DEBUG][       Thread-260958][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:27:20,860 [DEBUG][       Thread-260958][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:27:20,860 [DEBUG][       Thread-260958][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:27:20,860 [DEBUG][       Thread-260958][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 16:27:20,860 [DEBUG][       Thread-260958][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 16:27:20,860 [DEBUG][       Thread-260958][   transport.py][1871] : client lang: <none>
2025-06-13 16:27:20,860 [DEBUG][       Thread-260958][   transport.py][1871] : server lang: <none>
2025-06-13 16:27:20,860 [DEBUG][       Thread-260958][   transport.py][1871] : kex follows: False
2025-06-13 16:27:20,860 [DEBUG][       Thread-260958][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 16:27:20,860 [DEBUG][       Thread-260958][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 16:27:20,860 [DEBUG][       Thread-260958][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 16:27:20,860 [DEBUG][       Thread-260958][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 16:27:20,860 [DEBUG][       Thread-260958][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 16:27:20,860 [DEBUG][       Thread-260958][   transport.py][1871] : Compression: none
2025-06-13 16:27:20,860 [DEBUG][       Thread-260958][   transport.py][1871] : === End of kex handshake ===
2025-06-13 16:27:20,919 [DEBUG][       Thread-260958][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 16:27:20,920 [DEBUG][       Thread-260958][   transport.py][1871] : Switch to new keys ...
2025-06-13 16:27:20,920 [DEBUG][       Thread-260958][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 16:27:20,920 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 16:27:20,921 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 16:27:20,978 [DEBUG][       Thread-260958][   transport.py][1871] : userauth is OK
2025-06-13 16:27:20,978 [DEBUG][       Thread-260958][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 16:27:20,978 [DEBUG][       Thread-260958][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 16:27:20,978 [DEBUG][       Thread-260958][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 16:27:20,978 [DEBUG][       Thread-260958][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 16:27:21,000 [ INFO][       Thread-260958][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 16:27:21,000 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 16:27:21,000 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 16:27:21,971 [DEBUG][       Thread-260958][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 16:27:21,971 [DEBUG][       Thread-260958][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 16:27:22,020 [DEBUG][       Thread-260958][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 16:27:22,020 [DEBUG][       Thread-260958][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 16:27:22,029 [DEBUG][       Thread-260958][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 16:27:22,038 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 16:27:22,039 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 16:27:22,048 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 16:27:22,057 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 16:27:22,057 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 16:27:22,058 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 16:27:22,066 [DEBUG][       Thread-260958][   transport.py][1871] : EOF in transport thread
2025-06-13 16:27:22,073 [DEBUG][Thread-260960 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:27:23,408 [DEBUG][Thread-260961 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:27:31,094 [DEBUG][Thread-260962 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:27:32,068 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 16:27:32,069 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 16:27:32,069 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 16:27:32,071 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 16:27:32,542 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 16, 27, 24), 17.13, 30.38, 0.0, 20.84, 13.87, 0, 0, 0, 2, 0, 0),)
2025-06-13 16:27:32,542 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 16:27:24
2025-06-13 16:27:32,624 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 16:27:32,628 [DEBUG][       Thread-260963][   transport.py][1871] : starting thread (client mode): 0x86893df0
2025-06-13 16:27:32,628 [DEBUG][       Thread-260963][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 16:27:32,649 [DEBUG][       Thread-260963][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 16:27:32,649 [ INFO][       Thread-260963][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 16:27:32,652 [DEBUG][       Thread-260963][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 16:27:32,652 [DEBUG][       Thread-260963][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 16:27:32,652 [DEBUG][       Thread-260963][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 16:27:32,652 [DEBUG][       Thread-260963][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:27:32,652 [DEBUG][       Thread-260963][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:27:32,652 [DEBUG][       Thread-260963][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:27:32,652 [DEBUG][       Thread-260963][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:27:32,652 [DEBUG][       Thread-260963][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 16:27:32,652 [DEBUG][       Thread-260963][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 16:27:32,652 [DEBUG][       Thread-260963][   transport.py][1871] : client lang: <none>
2025-06-13 16:27:32,652 [DEBUG][       Thread-260963][   transport.py][1871] : server lang: <none>
2025-06-13 16:27:32,652 [DEBUG][       Thread-260963][   transport.py][1871] : kex follows: False
2025-06-13 16:27:32,652 [DEBUG][       Thread-260963][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 16:27:32,653 [DEBUG][       Thread-260963][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 16:27:32,653 [DEBUG][       Thread-260963][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 16:27:32,653 [DEBUG][       Thread-260963][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 16:27:32,653 [DEBUG][       Thread-260963][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 16:27:32,653 [DEBUG][       Thread-260963][   transport.py][1871] : Compression: none
2025-06-13 16:27:32,653 [DEBUG][       Thread-260963][   transport.py][1871] : === End of kex handshake ===
2025-06-13 16:27:32,669 [DEBUG][       Thread-260963][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 16:27:32,669 [DEBUG][       Thread-260963][   transport.py][1871] : Switch to new keys ...
2025-06-13 16:27:32,670 [DEBUG][       Thread-260963][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 16:27:32,670 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 16:27:32,670 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 16:27:32,672 [DEBUG][       Thread-260963][   transport.py][1871] : userauth is OK
2025-06-13 16:27:32,696 [ INFO][       Thread-260963][   transport.py][1871] : Authentication (password) successful!
2025-06-13 16:27:32,697 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 16:27:33,306 [DEBUG][       Thread-260963][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 16:27:33,306 [DEBUG][       Thread-260963][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 16:27:33,349 [DEBUG][       Thread-260963][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 16:27:33,349 [DEBUG][       Thread-260963][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 16:27:33,353 [DEBUG][       Thread-260963][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 16:27:33,366 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 16:27:33,367 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 16:27:33,368 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 16:27:33,370 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 16:27:33,375 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 16:27:33,378 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 16:27:33,378 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 16:27:33,379 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 16:27:33,379 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.602018 -999.00  +13.60  25.22     35   -1.40 1 1 1 1 1   887    0 13.82 -48.23 ----- 20.8 25.2 51.6 27.9 16.4 -30.1 15.7 -30.0 16.4 -30.0 17.3 -29.2
2025-06-13 16:27:33,379 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 16:27:33,379 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 16:27:33,379 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.602018
2025-06-13 16:27:33,379 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 16:27:33,380 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 16:27:33,380 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 16:27:33,380 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 16:27:33,380 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 16:27:33,380 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T16:27:24', tmtdew=17.13, humidity=30.38, cloud=0.0, wind=20.84, temperature=13.87, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T14:26:54.355', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 16:27:33,381 [DEBUG][       Thread-260963][   transport.py][1871] : EOF in transport thread
2025-06-13 16:27:33,465 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 16:27:33,474 [DEBUG][       Thread-260966][   transport.py][1871] : starting thread (client mode): 0x867b5f90
2025-06-13 16:27:33,474 [DEBUG][       Thread-260966][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 16:27:33,489 [DEBUG][       Thread-260966][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 16:27:33,489 [ INFO][       Thread-260966][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 16:27:33,497 [DEBUG][       Thread-260966][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 16:27:33,497 [DEBUG][       Thread-260966][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 16:27:33,497 [DEBUG][       Thread-260966][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 16:27:33,497 [DEBUG][       Thread-260966][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:27:33,497 [DEBUG][       Thread-260966][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:27:33,497 [DEBUG][       Thread-260966][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:27:33,497 [DEBUG][       Thread-260966][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:27:33,497 [DEBUG][       Thread-260966][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 16:27:33,497 [DEBUG][       Thread-260966][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 16:27:33,497 [DEBUG][       Thread-260966][   transport.py][1871] : client lang: <none>
2025-06-13 16:27:33,497 [DEBUG][       Thread-260966][   transport.py][1871] : server lang: <none>
2025-06-13 16:27:33,497 [DEBUG][       Thread-260966][   transport.py][1871] : kex follows: False
2025-06-13 16:27:33,497 [DEBUG][       Thread-260966][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 16:27:33,497 [DEBUG][       Thread-260966][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 16:27:33,497 [DEBUG][       Thread-260966][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 16:27:33,497 [DEBUG][       Thread-260966][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 16:27:33,497 [DEBUG][       Thread-260966][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 16:27:33,497 [DEBUG][       Thread-260966][   transport.py][1871] : Compression: none
2025-06-13 16:27:33,497 [DEBUG][       Thread-260966][   transport.py][1871] : === End of kex handshake ===
2025-06-13 16:27:33,556 [DEBUG][       Thread-260966][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 16:27:33,556 [DEBUG][       Thread-260966][   transport.py][1871] : Switch to new keys ...
2025-06-13 16:27:33,557 [DEBUG][       Thread-260966][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 16:27:33,557 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 16:27:33,558 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 16:27:33,614 [DEBUG][       Thread-260966][   transport.py][1871] : userauth is OK
2025-06-13 16:27:33,615 [DEBUG][       Thread-260966][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 16:27:33,615 [DEBUG][       Thread-260966][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 16:27:33,615 [DEBUG][       Thread-260966][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 16:27:33,615 [DEBUG][       Thread-260966][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 16:27:33,634 [ INFO][       Thread-260966][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 16:27:33,635 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 16:27:33,635 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 16:27:34,648 [DEBUG][       Thread-260966][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 16:27:34,649 [DEBUG][       Thread-260966][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 16:27:34,700 [DEBUG][       Thread-260966][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 16:27:34,700 [DEBUG][       Thread-260966][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 16:27:34,709 [DEBUG][       Thread-260966][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 16:27:34,718 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 16:27:34,718 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 16:27:34,727 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 16:27:34,736 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 16:27:34,736 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 16:27:34,737 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 16:27:34,745 [DEBUG][       Thread-260966][   transport.py][1871] : EOF in transport thread
2025-06-13 16:27:40,116 [DEBUG][Thread-260968 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:27:44,746 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 16:27:44,747 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 16:27:44,747 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 16:27:44,749 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 16:27:45,221 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 16, 27, 24), 17.13, 30.38, 0.0, 20.84, 13.87, 0, 0, 0, 2, 0, 0),)
2025-06-13 16:27:45,221 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 16:27:24
2025-06-13 16:27:45,303 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 16:27:45,308 [DEBUG][       Thread-260969][   transport.py][1871] : starting thread (client mode): 0x863528f0
2025-06-13 16:27:45,308 [DEBUG][       Thread-260969][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 16:27:45,331 [DEBUG][       Thread-260969][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 16:27:45,331 [ INFO][       Thread-260969][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 16:27:45,335 [DEBUG][       Thread-260969][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 16:27:45,335 [DEBUG][       Thread-260969][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 16:27:45,335 [DEBUG][       Thread-260969][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 16:27:45,335 [DEBUG][       Thread-260969][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:27:45,335 [DEBUG][       Thread-260969][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:27:45,335 [DEBUG][       Thread-260969][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:27:45,335 [DEBUG][       Thread-260969][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:27:45,335 [DEBUG][       Thread-260969][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 16:27:45,335 [DEBUG][       Thread-260969][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 16:27:45,335 [DEBUG][       Thread-260969][   transport.py][1871] : client lang: <none>
2025-06-13 16:27:45,335 [DEBUG][       Thread-260969][   transport.py][1871] : server lang: <none>
2025-06-13 16:27:45,335 [DEBUG][       Thread-260969][   transport.py][1871] : kex follows: False
2025-06-13 16:27:45,335 [DEBUG][       Thread-260969][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 16:27:45,335 [DEBUG][       Thread-260969][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 16:27:45,335 [DEBUG][       Thread-260969][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 16:27:45,335 [DEBUG][       Thread-260969][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 16:27:45,335 [DEBUG][       Thread-260969][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 16:27:45,335 [DEBUG][       Thread-260969][   transport.py][1871] : Compression: none
2025-06-13 16:27:45,335 [DEBUG][       Thread-260969][   transport.py][1871] : === End of kex handshake ===
2025-06-13 16:27:45,351 [DEBUG][       Thread-260969][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 16:27:45,352 [DEBUG][       Thread-260969][   transport.py][1871] : Switch to new keys ...
2025-06-13 16:27:45,352 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 16:27:45,353 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 16:27:45,353 [DEBUG][       Thread-260969][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 16:27:45,354 [DEBUG][       Thread-260969][   transport.py][1871] : userauth is OK
2025-06-13 16:27:45,367 [ INFO][       Thread-260969][   transport.py][1871] : Authentication (password) successful!
2025-06-13 16:27:45,368 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 16:27:45,994 [DEBUG][       Thread-260969][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 16:27:45,994 [DEBUG][       Thread-260969][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 16:27:46,037 [DEBUG][       Thread-260969][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 16:27:46,037 [DEBUG][       Thread-260969][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 16:27:46,039 [DEBUG][       Thread-260969][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 16:27:46,050 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 16:27:46,051 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 16:27:46,052 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 16:27:46,053 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 16:27:46,057 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 16:27:46,058 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 16:27:46,058 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 16:27:46,058 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 16:27:46,058 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.602365 -999.00  +13.50  17.71     35   -1.20 1 1 1 1 1   887    0 13.99 -50.92 ----- 16.7 17.7 44.2 24.9 16.4 -29.6 15.7 -30.0 16.4 -28.9 17.3 -28.6
2025-06-13 16:27:46,058 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 16:27:46,058 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 16:27:46,058 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.602365
2025-06-13 16:27:46,058 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 16:27:46,058 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 16:27:46,058 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 16:27:46,058 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 16:27:46,058 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 16:27:46,058 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T16:27:24', tmtdew=17.13, humidity=30.38, cloud=0.0, wind=20.84, temperature=13.87, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T14:27:24.336', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 16:27:46,059 [DEBUG][       Thread-260969][   transport.py][1871] : EOF in transport thread
2025-06-13 16:27:46,130 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 16:27:46,141 [DEBUG][       Thread-260972][   transport.py][1871] : starting thread (client mode): 0x868c8520
2025-06-13 16:27:46,141 [DEBUG][       Thread-260972][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 16:27:46,156 [DEBUG][       Thread-260972][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 16:27:46,156 [ INFO][       Thread-260972][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 16:27:46,163 [DEBUG][       Thread-260972][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 16:27:46,163 [DEBUG][       Thread-260972][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 16:27:46,163 [DEBUG][       Thread-260972][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 16:27:46,163 [DEBUG][       Thread-260972][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:27:46,163 [DEBUG][       Thread-260972][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:27:46,163 [DEBUG][       Thread-260972][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:27:46,163 [DEBUG][       Thread-260972][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:27:46,163 [DEBUG][       Thread-260972][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 16:27:46,163 [DEBUG][       Thread-260972][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 16:27:46,163 [DEBUG][       Thread-260972][   transport.py][1871] : client lang: <none>
2025-06-13 16:27:46,163 [DEBUG][       Thread-260972][   transport.py][1871] : server lang: <none>
2025-06-13 16:27:46,163 [DEBUG][       Thread-260972][   transport.py][1871] : kex follows: False
2025-06-13 16:27:46,163 [DEBUG][       Thread-260972][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 16:27:46,164 [DEBUG][       Thread-260972][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 16:27:46,164 [DEBUG][       Thread-260972][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 16:27:46,164 [DEBUG][       Thread-260972][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 16:27:46,164 [DEBUG][       Thread-260972][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 16:27:46,164 [DEBUG][       Thread-260972][   transport.py][1871] : Compression: none
2025-06-13 16:27:46,164 [DEBUG][       Thread-260972][   transport.py][1871] : === End of kex handshake ===
2025-06-13 16:27:46,220 [DEBUG][       Thread-260972][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 16:27:46,220 [DEBUG][       Thread-260972][   transport.py][1871] : Switch to new keys ...
2025-06-13 16:27:46,220 [DEBUG][       Thread-260972][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 16:27:46,220 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 16:27:46,220 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 16:27:46,281 [DEBUG][       Thread-260972][   transport.py][1871] : userauth is OK
2025-06-13 16:27:46,282 [DEBUG][       Thread-260972][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 16:27:46,282 [DEBUG][       Thread-260972][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 16:27:46,282 [DEBUG][       Thread-260972][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 16:27:46,282 [DEBUG][       Thread-260972][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 16:27:46,295 [ INFO][       Thread-260972][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 16:27:46,296 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 16:27:46,296 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 16:27:47,304 [DEBUG][       Thread-260972][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 16:27:47,304 [DEBUG][       Thread-260972][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 16:27:47,362 [DEBUG][       Thread-260972][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 16:27:47,362 [DEBUG][       Thread-260972][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 16:27:47,373 [DEBUG][       Thread-260972][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 16:27:47,380 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 16:27:47,380 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 16:27:47,388 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 16:27:47,396 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 16:27:47,396 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 16:27:47,396 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 16:27:47,404 [DEBUG][       Thread-260972][   transport.py][1871] : EOF in transport thread
2025-06-13 16:27:49,154 [DEBUG][Thread-260974 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:27:54,257 [DEBUG][Thread-260975 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:27:55,312 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:27:55,313 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:27:57,406 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 16:27:57,406 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 16:27:57,407 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 16:27:57,407 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 16:27:57,903 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 16, 27, 24), 17.13, 30.38, 0.0, 20.84, 13.87, 0, 0, 0, 2, 0, 0),)
2025-06-13 16:27:57,903 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 16:27:24
2025-06-13 16:27:57,990 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 16:27:57,994 [DEBUG][       Thread-260976][   transport.py][1871] : starting thread (client mode): 0x863694b0
2025-06-13 16:27:57,994 [DEBUG][       Thread-260976][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 16:27:58,015 [DEBUG][       Thread-260976][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 16:27:58,015 [ INFO][       Thread-260976][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 16:27:58,019 [DEBUG][       Thread-260976][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 16:27:58,019 [DEBUG][       Thread-260976][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 16:27:58,019 [DEBUG][       Thread-260976][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 16:27:58,019 [DEBUG][       Thread-260976][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:27:58,019 [DEBUG][       Thread-260976][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:27:58,019 [DEBUG][       Thread-260976][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:27:58,019 [DEBUG][       Thread-260976][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:27:58,019 [DEBUG][       Thread-260976][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 16:27:58,019 [DEBUG][       Thread-260976][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 16:27:58,019 [DEBUG][       Thread-260976][   transport.py][1871] : client lang: <none>
2025-06-13 16:27:58,019 [DEBUG][       Thread-260976][   transport.py][1871] : server lang: <none>
2025-06-13 16:27:58,019 [DEBUG][       Thread-260976][   transport.py][1871] : kex follows: False
2025-06-13 16:27:58,019 [DEBUG][       Thread-260976][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 16:27:58,019 [DEBUG][       Thread-260976][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 16:27:58,019 [DEBUG][       Thread-260976][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 16:27:58,019 [DEBUG][       Thread-260976][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 16:27:58,019 [DEBUG][       Thread-260976][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 16:27:58,019 [DEBUG][       Thread-260976][   transport.py][1871] : Compression: none
2025-06-13 16:27:58,019 [DEBUG][       Thread-260976][   transport.py][1871] : === End of kex handshake ===
2025-06-13 16:27:58,033 [DEBUG][       Thread-260976][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 16:27:58,033 [DEBUG][       Thread-260976][   transport.py][1871] : Switch to new keys ...
2025-06-13 16:27:58,033 [DEBUG][       Thread-260976][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 16:27:58,033 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 16:27:58,033 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 16:27:58,034 [DEBUG][       Thread-260976][   transport.py][1871] : userauth is OK
2025-06-13 16:27:58,058 [ INFO][       Thread-260976][   transport.py][1871] : Authentication (password) successful!
2025-06-13 16:27:58,058 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 16:27:58,172 [DEBUG][Thread-260978 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:27:58,716 [DEBUG][       Thread-260976][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 16:27:58,716 [DEBUG][       Thread-260976][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 16:27:58,757 [DEBUG][       Thread-260976][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 16:27:58,757 [DEBUG][       Thread-260976][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 16:27:58,760 [DEBUG][       Thread-260976][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 16:27:58,772 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 16:27:58,773 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 16:27:58,774 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 16:27:58,776 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 16:27:58,782 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 16:27:58,784 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 16:27:58,784 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 16:27:58,785 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 16:27:58,785 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.602365 -999.00  +13.50  17.71     35   -1.20 1 1 1 1 1   887    0 13.99 -50.92 ----- 16.7 17.7 44.2 24.9 16.4 -29.6 15.7 -30.0 16.4 -28.9 17.3 -28.6
2025-06-13 16:27:58,785 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 16:27:58,785 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 16:27:58,785 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.602365
2025-06-13 16:27:58,786 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 16:27:58,786 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 16:27:58,786 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 16:27:58,786 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 16:27:58,787 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 16:27:58,787 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T16:27:24', tmtdew=17.13, humidity=30.38, cloud=0.0, wind=20.84, temperature=13.87, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T14:27:24.336', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 16:27:58,788 [DEBUG][       Thread-260976][   transport.py][1871] : EOF in transport thread
2025-06-13 16:27:58,870 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 16:28:07,193 [DEBUG][Thread-260980 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:28:16,217 [DEBUG][Thread-260981 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:28:17,720 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:28:17,721 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:28:23,440 [DEBUG][Thread-260982 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:28:25,236 [DEBUG][Thread-260983 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:28:34,253 [DEBUG][Thread-260984 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:28:43,274 [DEBUG][Thread-260985 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:28:52,295 [DEBUG][Thread-260986 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:28:55,385 [DEBUG][Thread-260987 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:28:56,467 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:28:56,468 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:29:01,317 [DEBUG][Thread-260988 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:29:10,336 [DEBUG][Thread-260989 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:29:17,880 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:29:17,881 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:29:19,356 [DEBUG][Thread-260990 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:29:23,485 [DEBUG][Thread-260991 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:29:28,377 [DEBUG][Thread-260992 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:29:37,400 [DEBUG][Thread-260993 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:29:46,420 [DEBUG][Thread-260994 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:29:55,442 [DEBUG][Thread-260995 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:29:56,487 [DEBUG][Thread-260996 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:29:57,535 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:29:57,536 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:30:04,462 [DEBUG][Thread-260997 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:30:07,892 [WARNING][ poll_weather_worker][      driver.py][ 286] : Unable to open ssh connection for writing weather state to io.saao.ac.za: [Errno 110] Connection timed out
2025-06-13 16:30:13,485 [DEBUG][Thread-260998 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:30:17,903 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 16:30:17,903 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 16:30:17,903 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 16:30:17,907 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 16:30:18,018 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:30:18,019 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:30:18,397 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 16, 30, 3), 17.21, 30.07, 0.0, 21.07, 13.73, 0, 0, 0, 2, 0, 0),)
2025-06-13 16:30:18,397 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 16:30:03
2025-06-13 16:30:18,483 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 16:30:18,487 [DEBUG][       Thread-260999][   transport.py][1871] : starting thread (client mode): 0x86369cf0
2025-06-13 16:30:18,487 [DEBUG][       Thread-260999][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 16:30:18,508 [DEBUG][       Thread-260999][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 16:30:18,508 [ INFO][       Thread-260999][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 16:30:18,512 [DEBUG][       Thread-260999][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 16:30:18,512 [DEBUG][       Thread-260999][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 16:30:18,512 [DEBUG][       Thread-260999][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 16:30:18,512 [DEBUG][       Thread-260999][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:30:18,512 [DEBUG][       Thread-260999][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:30:18,512 [DEBUG][       Thread-260999][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:30:18,512 [DEBUG][       Thread-260999][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:30:18,512 [DEBUG][       Thread-260999][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 16:30:18,512 [DEBUG][       Thread-260999][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 16:30:18,512 [DEBUG][       Thread-260999][   transport.py][1871] : client lang: <none>
2025-06-13 16:30:18,512 [DEBUG][       Thread-260999][   transport.py][1871] : server lang: <none>
2025-06-13 16:30:18,512 [DEBUG][       Thread-260999][   transport.py][1871] : kex follows: False
2025-06-13 16:30:18,512 [DEBUG][       Thread-260999][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 16:30:18,512 [DEBUG][       Thread-260999][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 16:30:18,512 [DEBUG][       Thread-260999][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 16:30:18,512 [DEBUG][       Thread-260999][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 16:30:18,512 [DEBUG][       Thread-260999][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 16:30:18,512 [DEBUG][       Thread-260999][   transport.py][1871] : Compression: none
2025-06-13 16:30:18,512 [DEBUG][       Thread-260999][   transport.py][1871] : === End of kex handshake ===
2025-06-13 16:30:18,526 [DEBUG][       Thread-260999][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 16:30:18,526 [DEBUG][       Thread-260999][   transport.py][1871] : Switch to new keys ...
2025-06-13 16:30:18,527 [DEBUG][       Thread-260999][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 16:30:18,527 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 16:30:18,527 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 16:30:18,527 [DEBUG][       Thread-260999][   transport.py][1871] : userauth is OK
2025-06-13 16:30:18,540 [ INFO][       Thread-260999][   transport.py][1871] : Authentication (password) successful!
2025-06-13 16:30:18,540 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 16:30:20,269 [DEBUG][       Thread-260999][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 16:30:20,269 [DEBUG][       Thread-260999][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 16:30:20,312 [DEBUG][       Thread-260999][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 16:30:20,312 [DEBUG][       Thread-260999][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 16:30:20,315 [DEBUG][       Thread-260999][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 16:30:20,337 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 16:30:20,337 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 16:30:20,338 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 16:30:20,339 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 16:30:20,341 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 16:30:20,342 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 16:30:20,342 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 16:30:20,342 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 16:30:20,342 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.603754 -999.00  +13.50  20.91     35   -1.40 1 1 1 1 1   887    0 13.67 -50.71 ----- 19.6 20.9 54.4 26.5 16.3 -30.0 15.6 -30.6 16.2 -29.9 17.1 -29.3
2025-06-13 16:30:20,342 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 16:30:20,342 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 16:30:20,342 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.603754
2025-06-13 16:30:20,342 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 16:30:20,342 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 16:30:20,343 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 16:30:20,343 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 16:30:20,343 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 16:30:20,343 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T16:30:03', tmtdew=17.21, humidity=30.07, cloud=0.0, wind=21.07, temperature=13.73, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T14:29:24.346', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 16:30:20,343 [DEBUG][       Thread-260999][   transport.py][1871] : EOF in transport thread
2025-06-13 16:30:20,415 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 16:30:20,429 [DEBUG][       Thread-261002][   transport.py][1871] : starting thread (client mode): 0x86893df0
2025-06-13 16:30:20,429 [DEBUG][       Thread-261002][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 16:30:20,444 [DEBUG][       Thread-261002][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 16:30:20,444 [ INFO][       Thread-261002][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 16:30:20,451 [DEBUG][       Thread-261002][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 16:30:20,451 [DEBUG][       Thread-261002][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 16:30:20,451 [DEBUG][       Thread-261002][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 16:30:20,451 [DEBUG][       Thread-261002][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:30:20,451 [DEBUG][       Thread-261002][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:30:20,451 [DEBUG][       Thread-261002][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:30:20,451 [DEBUG][       Thread-261002][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:30:20,451 [DEBUG][       Thread-261002][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 16:30:20,451 [DEBUG][       Thread-261002][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 16:30:20,451 [DEBUG][       Thread-261002][   transport.py][1871] : client lang: <none>
2025-06-13 16:30:20,451 [DEBUG][       Thread-261002][   transport.py][1871] : server lang: <none>
2025-06-13 16:30:20,451 [DEBUG][       Thread-261002][   transport.py][1871] : kex follows: False
2025-06-13 16:30:20,451 [DEBUG][       Thread-261002][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 16:30:20,451 [DEBUG][       Thread-261002][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 16:30:20,451 [DEBUG][       Thread-261002][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 16:30:20,451 [DEBUG][       Thread-261002][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 16:30:20,451 [DEBUG][       Thread-261002][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 16:30:20,451 [DEBUG][       Thread-261002][   transport.py][1871] : Compression: none
2025-06-13 16:30:20,451 [DEBUG][       Thread-261002][   transport.py][1871] : === End of kex handshake ===
2025-06-13 16:30:20,510 [DEBUG][       Thread-261002][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 16:30:20,510 [DEBUG][       Thread-261002][   transport.py][1871] : Switch to new keys ...
2025-06-13 16:30:20,510 [DEBUG][       Thread-261002][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 16:30:20,510 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 16:30:20,510 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 16:30:20,569 [DEBUG][       Thread-261002][   transport.py][1871] : userauth is OK
2025-06-13 16:30:20,569 [DEBUG][       Thread-261002][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 16:30:20,570 [DEBUG][       Thread-261002][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 16:30:20,570 [DEBUG][       Thread-261002][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 16:30:20,570 [DEBUG][       Thread-261002][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 16:30:20,583 [ INFO][       Thread-261002][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 16:30:20,583 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 16:30:20,584 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 16:30:21,588 [DEBUG][       Thread-261002][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 16:30:21,588 [DEBUG][       Thread-261002][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 16:30:21,642 [DEBUG][       Thread-261002][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 16:30:21,642 [DEBUG][       Thread-261002][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 16:30:21,650 [DEBUG][       Thread-261002][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 16:30:21,658 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 16:30:21,658 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 16:30:21,666 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 16:30:21,674 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 16:30:21,674 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 16:30:21,674 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 16:30:21,682 [DEBUG][       Thread-261002][   transport.py][1871] : EOF in transport thread
2025-06-13 16:30:22,506 [DEBUG][Thread-261004 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:30:23,517 [DEBUG][Thread-261005 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:30:31,545 [DEBUG][Thread-261006 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:30:31,685 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 16:30:31,685 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 16:30:31,685 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 16:30:31,688 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 16:30:32,165 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 16, 30, 3), 17.21, 30.07, 0.0, 21.07, 13.73, 0, 0, 0, 2, 0, 0),)
2025-06-13 16:30:32,165 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 16:30:03
2025-06-13 16:30:32,246 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 16:30:32,251 [DEBUG][       Thread-261007][   transport.py][1871] : starting thread (client mode): 0x867fc910
2025-06-13 16:30:32,251 [DEBUG][       Thread-261007][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 16:30:32,275 [DEBUG][       Thread-261007][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 16:30:32,275 [ INFO][       Thread-261007][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 16:30:32,279 [DEBUG][       Thread-261007][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 16:30:32,280 [DEBUG][       Thread-261007][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 16:30:32,280 [DEBUG][       Thread-261007][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 16:30:32,280 [DEBUG][       Thread-261007][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:30:32,280 [DEBUG][       Thread-261007][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:30:32,280 [DEBUG][       Thread-261007][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:30:32,280 [DEBUG][       Thread-261007][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:30:32,280 [DEBUG][       Thread-261007][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 16:30:32,280 [DEBUG][       Thread-261007][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 16:30:32,280 [DEBUG][       Thread-261007][   transport.py][1871] : client lang: <none>
2025-06-13 16:30:32,280 [DEBUG][       Thread-261007][   transport.py][1871] : server lang: <none>
2025-06-13 16:30:32,280 [DEBUG][       Thread-261007][   transport.py][1871] : kex follows: False
2025-06-13 16:30:32,280 [DEBUG][       Thread-261007][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 16:30:32,280 [DEBUG][       Thread-261007][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 16:30:32,280 [DEBUG][       Thread-261007][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 16:30:32,280 [DEBUG][       Thread-261007][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 16:30:32,280 [DEBUG][       Thread-261007][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 16:30:32,280 [DEBUG][       Thread-261007][   transport.py][1871] : Compression: none
2025-06-13 16:30:32,280 [DEBUG][       Thread-261007][   transport.py][1871] : === End of kex handshake ===
2025-06-13 16:30:32,296 [DEBUG][       Thread-261007][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 16:30:32,297 [DEBUG][       Thread-261007][   transport.py][1871] : Switch to new keys ...
2025-06-13 16:30:32,297 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 16:30:32,298 [DEBUG][       Thread-261007][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 16:30:32,298 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 16:30:32,300 [DEBUG][       Thread-261007][   transport.py][1871] : userauth is OK
2025-06-13 16:30:32,325 [ INFO][       Thread-261007][   transport.py][1871] : Authentication (password) successful!
2025-06-13 16:30:32,326 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 16:30:32,965 [DEBUG][       Thread-261007][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 16:30:32,966 [DEBUG][       Thread-261007][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 16:30:33,009 [DEBUG][       Thread-261007][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 16:30:33,009 [DEBUG][       Thread-261007][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 16:30:33,013 [DEBUG][       Thread-261007][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 16:30:33,024 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 16:30:33,025 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 16:30:33,027 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 16:30:33,029 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 16:30:33,036 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 16:30:33,038 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 16:30:33,038 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 16:30:33,039 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 16:30:33,039 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.604101 -999.00  +13.50  20.04     35   -1.30 1 1 1 1 1   887    0 13.57 -51.34 ----- 22.6 20.0 52.6 22.5 16.2 -29.7 15.6 -30.1 16.2 -30.3 17.1 -29.0
2025-06-13 16:30:33,039 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 16:30:33,039 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 16:30:33,039 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.604101
2025-06-13 16:30:33,040 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 16:30:33,040 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 16:30:33,040 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 16:30:33,040 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 16:30:33,040 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 16:30:33,041 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T16:30:03', tmtdew=17.21, humidity=30.07, cloud=0.0, wind=21.07, temperature=13.73, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T14:29:54.326', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 16:30:33,042 [DEBUG][       Thread-261007][   transport.py][1871] : EOF in transport thread
2025-06-13 16:30:33,122 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 16:30:33,131 [DEBUG][       Thread-261010][   transport.py][1871] : starting thread (client mode): 0x86351ea0
2025-06-13 16:30:33,131 [DEBUG][       Thread-261010][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 16:30:33,147 [DEBUG][       Thread-261010][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 16:30:33,147 [ INFO][       Thread-261010][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 16:30:33,155 [DEBUG][       Thread-261010][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 16:30:33,155 [DEBUG][       Thread-261010][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 16:30:33,155 [DEBUG][       Thread-261010][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 16:30:33,155 [DEBUG][       Thread-261010][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:30:33,155 [DEBUG][       Thread-261010][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:30:33,155 [DEBUG][       Thread-261010][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:30:33,155 [DEBUG][       Thread-261010][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:30:33,155 [DEBUG][       Thread-261010][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 16:30:33,155 [DEBUG][       Thread-261010][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 16:30:33,155 [DEBUG][       Thread-261010][   transport.py][1871] : client lang: <none>
2025-06-13 16:30:33,155 [DEBUG][       Thread-261010][   transport.py][1871] : server lang: <none>
2025-06-13 16:30:33,155 [DEBUG][       Thread-261010][   transport.py][1871] : kex follows: False
2025-06-13 16:30:33,155 [DEBUG][       Thread-261010][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 16:30:33,155 [DEBUG][       Thread-261010][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 16:30:33,155 [DEBUG][       Thread-261010][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 16:30:33,155 [DEBUG][       Thread-261010][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 16:30:33,155 [DEBUG][       Thread-261010][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 16:30:33,155 [DEBUG][       Thread-261010][   transport.py][1871] : Compression: none
2025-06-13 16:30:33,155 [DEBUG][       Thread-261010][   transport.py][1871] : === End of kex handshake ===
2025-06-13 16:30:33,214 [DEBUG][       Thread-261010][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 16:30:33,215 [DEBUG][       Thread-261010][   transport.py][1871] : Switch to new keys ...
2025-06-13 16:30:33,215 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 16:30:33,216 [DEBUG][       Thread-261010][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 16:30:33,217 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 16:30:33,270 [DEBUG][       Thread-261010][   transport.py][1871] : userauth is OK
2025-06-13 16:30:33,271 [DEBUG][       Thread-261010][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 16:30:33,271 [DEBUG][       Thread-261010][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 16:30:33,271 [DEBUG][       Thread-261010][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 16:30:33,271 [DEBUG][       Thread-261010][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 16:30:33,290 [ INFO][       Thread-261010][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 16:30:33,291 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 16:30:33,291 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 16:30:34,293 [DEBUG][       Thread-261010][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 16:30:34,294 [DEBUG][       Thread-261010][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 16:30:34,344 [DEBUG][       Thread-261010][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 16:30:34,344 [DEBUG][       Thread-261010][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 16:30:34,353 [DEBUG][       Thread-261010][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 16:30:34,362 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 16:30:34,363 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 16:30:34,372 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 16:30:34,381 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 16:30:34,381 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 16:30:34,382 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 16:30:34,390 [DEBUG][       Thread-261010][   transport.py][1871] : EOF in transport thread
2025-06-13 16:30:40,567 [DEBUG][Thread-261012 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:30:44,392 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 16:30:44,392 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 16:30:44,392 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 16:30:44,395 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 16:30:44,865 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 16, 30, 34), 17.18, 30.32, 0.0, 20.47, 13.7, 0, 0, 0, 2, 0, 0),)
2025-06-13 16:30:44,865 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 16:30:34
2025-06-13 16:30:44,947 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 16:30:44,952 [DEBUG][       Thread-261013][   transport.py][1871] : starting thread (client mode): 0x867fe2f0
2025-06-13 16:30:44,952 [DEBUG][       Thread-261013][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 16:30:44,975 [DEBUG][       Thread-261013][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 16:30:44,975 [ INFO][       Thread-261013][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 16:30:44,979 [DEBUG][       Thread-261013][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 16:30:44,979 [DEBUG][       Thread-261013][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 16:30:44,979 [DEBUG][       Thread-261013][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 16:30:44,979 [DEBUG][       Thread-261013][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:30:44,979 [DEBUG][       Thread-261013][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:30:44,979 [DEBUG][       Thread-261013][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:30:44,979 [DEBUG][       Thread-261013][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:30:44,979 [DEBUG][       Thread-261013][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 16:30:44,979 [DEBUG][       Thread-261013][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 16:30:44,979 [DEBUG][       Thread-261013][   transport.py][1871] : client lang: <none>
2025-06-13 16:30:44,979 [DEBUG][       Thread-261013][   transport.py][1871] : server lang: <none>
2025-06-13 16:30:44,979 [DEBUG][       Thread-261013][   transport.py][1871] : kex follows: False
2025-06-13 16:30:44,979 [DEBUG][       Thread-261013][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 16:30:44,979 [DEBUG][       Thread-261013][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 16:30:44,979 [DEBUG][       Thread-261013][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 16:30:44,979 [DEBUG][       Thread-261013][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 16:30:44,979 [DEBUG][       Thread-261013][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 16:30:44,979 [DEBUG][       Thread-261013][   transport.py][1871] : Compression: none
2025-06-13 16:30:44,979 [DEBUG][       Thread-261013][   transport.py][1871] : === End of kex handshake ===
2025-06-13 16:30:45,000 [DEBUG][       Thread-261013][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 16:30:45,000 [DEBUG][       Thread-261013][   transport.py][1871] : Switch to new keys ...
2025-06-13 16:30:45,001 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 16:30:45,001 [DEBUG][       Thread-261013][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 16:30:45,002 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 16:30:45,003 [DEBUG][       Thread-261013][   transport.py][1871] : userauth is OK
2025-06-13 16:30:45,028 [ INFO][       Thread-261013][   transport.py][1871] : Authentication (password) successful!
2025-06-13 16:30:45,028 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 16:30:45,862 [DEBUG][       Thread-261013][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 16:30:45,862 [DEBUG][       Thread-261013][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 16:30:45,905 [DEBUG][       Thread-261013][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 16:30:45,905 [DEBUG][       Thread-261013][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 16:30:45,909 [DEBUG][       Thread-261013][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 16:30:45,922 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 16:30:45,923 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 16:30:45,925 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 16:30:45,927 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 16:30:45,934 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 16:30:45,935 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 16:30:45,936 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 16:30:45,936 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 16:30:45,937 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.604101 -999.00  +13.50  20.04     35   -1.30 1 1 1 1 1   887    0 13.57 -51.34 ----- 22.6 20.0 52.6 22.5 16.2 -29.7 15.6 -30.1 16.2 -30.3 17.1 -29.0
2025-06-13 16:30:45,937 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 16:30:45,937 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 16:30:45,937 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.604101
2025-06-13 16:30:45,937 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 16:30:45,938 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 16:30:45,938 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 16:30:45,938 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 16:30:45,938 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 16:30:45,938 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T16:30:34', tmtdew=17.18, humidity=30.32, cloud=0.0, wind=20.47, temperature=13.7, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T14:29:54.326', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 16:30:45,939 [DEBUG][       Thread-261013][   transport.py][1871] : EOF in transport thread
2025-06-13 16:30:46,021 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 16:30:46,037 [DEBUG][       Thread-261016][   transport.py][1871] : starting thread (client mode): 0x868c8520
2025-06-13 16:30:46,037 [DEBUG][       Thread-261016][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 16:30:46,055 [DEBUG][       Thread-261016][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 16:30:46,055 [ INFO][       Thread-261016][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 16:30:46,062 [DEBUG][       Thread-261016][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 16:30:46,062 [DEBUG][       Thread-261016][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 16:30:46,062 [DEBUG][       Thread-261016][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 16:30:46,062 [DEBUG][       Thread-261016][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:30:46,063 [DEBUG][       Thread-261016][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:30:46,063 [DEBUG][       Thread-261016][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:30:46,063 [DEBUG][       Thread-261016][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:30:46,063 [DEBUG][       Thread-261016][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 16:30:46,063 [DEBUG][       Thread-261016][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 16:30:46,063 [DEBUG][       Thread-261016][   transport.py][1871] : client lang: <none>
2025-06-13 16:30:46,063 [DEBUG][       Thread-261016][   transport.py][1871] : server lang: <none>
2025-06-13 16:30:46,063 [DEBUG][       Thread-261016][   transport.py][1871] : kex follows: False
2025-06-13 16:30:46,063 [DEBUG][       Thread-261016][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 16:30:46,063 [DEBUG][       Thread-261016][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 16:30:46,063 [DEBUG][       Thread-261016][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 16:30:46,063 [DEBUG][       Thread-261016][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 16:30:46,063 [DEBUG][       Thread-261016][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 16:30:46,063 [DEBUG][       Thread-261016][   transport.py][1871] : Compression: none
2025-06-13 16:30:46,063 [DEBUG][       Thread-261016][   transport.py][1871] : === End of kex handshake ===
2025-06-13 16:30:46,126 [DEBUG][       Thread-261016][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 16:30:46,127 [DEBUG][       Thread-261016][   transport.py][1871] : Switch to new keys ...
2025-06-13 16:30:46,128 [DEBUG][       Thread-261016][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 16:30:46,128 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 16:30:46,129 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 16:30:46,186 [DEBUG][       Thread-261016][   transport.py][1871] : userauth is OK
2025-06-13 16:30:46,186 [DEBUG][       Thread-261016][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 16:30:46,186 [DEBUG][       Thread-261016][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 16:30:46,186 [DEBUG][       Thread-261016][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 16:30:46,186 [DEBUG][       Thread-261016][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 16:30:46,208 [ INFO][       Thread-261016][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 16:30:46,209 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 16:30:46,209 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 16:30:47,239 [DEBUG][       Thread-261016][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 16:30:47,240 [DEBUG][       Thread-261016][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 16:30:47,288 [DEBUG][       Thread-261016][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 16:30:47,288 [DEBUG][       Thread-261016][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 16:30:47,298 [DEBUG][       Thread-261016][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 16:30:47,307 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 16:30:47,307 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 16:30:47,316 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 16:30:47,325 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 16:30:47,325 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 16:30:47,326 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 16:30:47,333 [DEBUG][       Thread-261016][   transport.py][1871] : EOF in transport thread
2025-06-13 16:30:49,590 [DEBUG][Thread-261018 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:30:57,332 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 16:30:57,332 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 16:30:57,332 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 16:30:57,333 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 16:30:57,612 [DEBUG][Thread-261019 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:30:57,832 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 16, 30, 34), 17.18, 30.32, 0.0, 20.47, 13.7, 0, 0, 0, 2, 0, 0),)
2025-06-13 16:30:57,832 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 16:30:34
2025-06-13 16:30:57,919 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 16:30:57,923 [DEBUG][       Thread-261020][   transport.py][1871] : starting thread (client mode): 0x867febc0
2025-06-13 16:30:57,923 [DEBUG][       Thread-261020][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 16:30:57,944 [DEBUG][       Thread-261020][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 16:30:57,944 [ INFO][       Thread-261020][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 16:30:57,948 [DEBUG][       Thread-261020][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 16:30:57,948 [DEBUG][       Thread-261020][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 16:30:57,948 [DEBUG][       Thread-261020][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 16:30:57,948 [DEBUG][       Thread-261020][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:30:57,948 [DEBUG][       Thread-261020][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:30:57,948 [DEBUG][       Thread-261020][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:30:57,948 [DEBUG][       Thread-261020][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:30:57,948 [DEBUG][       Thread-261020][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 16:30:57,948 [DEBUG][       Thread-261020][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 16:30:57,948 [DEBUG][       Thread-261020][   transport.py][1871] : client lang: <none>
2025-06-13 16:30:57,948 [DEBUG][       Thread-261020][   transport.py][1871] : server lang: <none>
2025-06-13 16:30:57,948 [DEBUG][       Thread-261020][   transport.py][1871] : kex follows: False
2025-06-13 16:30:57,948 [DEBUG][       Thread-261020][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 16:30:57,948 [DEBUG][       Thread-261020][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 16:30:57,948 [DEBUG][       Thread-261020][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 16:30:57,948 [DEBUG][       Thread-261020][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 16:30:57,948 [DEBUG][       Thread-261020][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 16:30:57,948 [DEBUG][       Thread-261020][   transport.py][1871] : Compression: none
2025-06-13 16:30:57,948 [DEBUG][       Thread-261020][   transport.py][1871] : === End of kex handshake ===
2025-06-13 16:30:57,965 [DEBUG][       Thread-261020][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 16:30:57,965 [DEBUG][       Thread-261020][   transport.py][1871] : Switch to new keys ...
2025-06-13 16:30:57,965 [DEBUG][       Thread-261020][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 16:30:57,965 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 16:30:57,965 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 16:30:57,966 [DEBUG][       Thread-261020][   transport.py][1871] : userauth is OK
2025-06-13 16:30:57,978 [ INFO][       Thread-261020][   transport.py][1871] : Authentication (password) successful!
2025-06-13 16:30:57,978 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 16:30:58,579 [DEBUG][       Thread-261020][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 16:30:58,579 [DEBUG][       Thread-261020][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 16:30:58,620 [DEBUG][       Thread-261020][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 16:30:58,620 [DEBUG][       Thread-261020][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 16:30:58,623 [DEBUG][       Thread-261020][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 16:30:58,624 [DEBUG][Thread-261022 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:30:58,635 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 16:30:58,635 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 16:30:58,636 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 16:30:58,637 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 16:30:58,640 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 16:30:58,641 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 16:30:58,641 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 16:30:58,641 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 16:30:58,641 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.604449 -999.00  +13.50  24.54     35   -1.40 1 1 1 1 1   887    0 13.62 -50.10 ----- 20.8 24.5 41.2 26.1 16.1 -30.3 15.6 -30.1 16.1 -30.4 16.9 -29.4
2025-06-13 16:30:58,641 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 16:30:58,641 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 16:30:58,641 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.604449
2025-06-13 16:30:58,641 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 16:30:58,641 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 16:30:58,641 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 16:30:58,641 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 16:30:58,641 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 16:30:58,642 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T16:30:34', tmtdew=17.18, humidity=30.32, cloud=0.0, wind=20.47, temperature=13.7, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T14:30:24.394', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 16:30:58,642 [DEBUG][       Thread-261020][   transport.py][1871] : EOF in transport thread
2025-06-13 16:30:58,670 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:30:58,670 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:30:58,714 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 16:30:58,724 [DEBUG][       Thread-261024][   transport.py][1871] : starting thread (client mode): 0x863ed8d0
2025-06-13 16:30:58,724 [DEBUG][       Thread-261024][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 16:30:58,742 [DEBUG][       Thread-261024][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 16:30:58,742 [ INFO][       Thread-261024][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 16:30:58,749 [DEBUG][       Thread-261024][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 16:30:58,749 [DEBUG][       Thread-261024][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 16:30:58,749 [DEBUG][       Thread-261024][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 16:30:58,749 [DEBUG][       Thread-261024][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:30:58,749 [DEBUG][       Thread-261024][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:30:58,750 [DEBUG][       Thread-261024][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:30:58,750 [DEBUG][       Thread-261024][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:30:58,750 [DEBUG][       Thread-261024][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 16:30:58,750 [DEBUG][       Thread-261024][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 16:30:58,750 [DEBUG][       Thread-261024][   transport.py][1871] : client lang: <none>
2025-06-13 16:30:58,750 [DEBUG][       Thread-261024][   transport.py][1871] : server lang: <none>
2025-06-13 16:30:58,750 [DEBUG][       Thread-261024][   transport.py][1871] : kex follows: False
2025-06-13 16:30:58,750 [DEBUG][       Thread-261024][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 16:30:58,750 [DEBUG][       Thread-261024][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 16:30:58,750 [DEBUG][       Thread-261024][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 16:30:58,750 [DEBUG][       Thread-261024][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 16:30:58,750 [DEBUG][       Thread-261024][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 16:30:58,750 [DEBUG][       Thread-261024][   transport.py][1871] : Compression: none
2025-06-13 16:30:58,750 [DEBUG][       Thread-261024][   transport.py][1871] : === End of kex handshake ===
2025-06-13 16:30:58,804 [DEBUG][       Thread-261024][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 16:30:58,804 [DEBUG][       Thread-261024][   transport.py][1871] : Switch to new keys ...
2025-06-13 16:30:58,804 [DEBUG][       Thread-261024][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 16:30:58,805 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 16:30:58,805 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 16:30:58,861 [DEBUG][       Thread-261024][   transport.py][1871] : userauth is OK
2025-06-13 16:30:58,861 [DEBUG][       Thread-261024][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 16:30:58,861 [DEBUG][       Thread-261024][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 16:30:58,861 [DEBUG][       Thread-261024][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 16:30:58,861 [DEBUG][       Thread-261024][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 16:30:58,876 [ INFO][       Thread-261024][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 16:30:58,876 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 16:30:58,876 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 16:30:59,888 [DEBUG][       Thread-261024][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 16:30:59,889 [DEBUG][       Thread-261024][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 16:30:59,939 [DEBUG][       Thread-261024][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 16:30:59,939 [DEBUG][       Thread-261024][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 16:30:59,948 [DEBUG][       Thread-261024][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 16:30:59,955 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 16:30:59,956 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 16:30:59,963 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 16:30:59,971 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 16:30:59,971 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 16:30:59,972 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 16:30:59,979 [DEBUG][       Thread-261024][   transport.py][1871] : EOF in transport thread
2025-06-13 16:31:07,642 [DEBUG][Thread-261026 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:31:09,982 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 16:31:09,982 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 16:31:09,982 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 16:31:09,985 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 16:31:10,464 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 16, 31, 6), 17.2, 30.25, 0.0, 20.26, 13.62, 0, 0, 0, 2, 0, 0),)
2025-06-13 16:31:10,464 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 16:31:06
2025-06-13 16:31:10,547 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 16:31:10,553 [DEBUG][       Thread-261027][   transport.py][1871] : starting thread (client mode): 0x8636a080
2025-06-13 16:31:10,553 [DEBUG][       Thread-261027][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 16:31:10,574 [DEBUG][       Thread-261027][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 16:31:10,574 [ INFO][       Thread-261027][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 16:31:10,577 [DEBUG][       Thread-261027][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 16:31:10,577 [DEBUG][       Thread-261027][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 16:31:10,577 [DEBUG][       Thread-261027][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 16:31:10,577 [DEBUG][       Thread-261027][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:31:10,577 [DEBUG][       Thread-261027][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:31:10,577 [DEBUG][       Thread-261027][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:31:10,577 [DEBUG][       Thread-261027][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:31:10,577 [DEBUG][       Thread-261027][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 16:31:10,577 [DEBUG][       Thread-261027][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 16:31:10,577 [DEBUG][       Thread-261027][   transport.py][1871] : client lang: <none>
2025-06-13 16:31:10,577 [DEBUG][       Thread-261027][   transport.py][1871] : server lang: <none>
2025-06-13 16:31:10,577 [DEBUG][       Thread-261027][   transport.py][1871] : kex follows: False
2025-06-13 16:31:10,577 [DEBUG][       Thread-261027][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 16:31:10,577 [DEBUG][       Thread-261027][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 16:31:10,577 [DEBUG][       Thread-261027][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 16:31:10,577 [DEBUG][       Thread-261027][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 16:31:10,577 [DEBUG][       Thread-261027][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 16:31:10,578 [DEBUG][       Thread-261027][   transport.py][1871] : Compression: none
2025-06-13 16:31:10,578 [DEBUG][       Thread-261027][   transport.py][1871] : === End of kex handshake ===
2025-06-13 16:31:10,595 [DEBUG][       Thread-261027][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 16:31:10,596 [DEBUG][       Thread-261027][   transport.py][1871] : Switch to new keys ...
2025-06-13 16:31:10,596 [DEBUG][       Thread-261027][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 16:31:10,596 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 16:31:10,597 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 16:31:10,598 [DEBUG][       Thread-261027][   transport.py][1871] : userauth is OK
2025-06-13 16:31:10,611 [ INFO][       Thread-261027][   transport.py][1871] : Authentication (password) successful!
2025-06-13 16:31:10,612 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 16:31:11,331 [DEBUG][       Thread-261027][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 16:31:11,331 [DEBUG][       Thread-261027][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 16:31:11,373 [DEBUG][       Thread-261027][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 16:31:11,373 [DEBUG][       Thread-261027][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 16:31:11,377 [DEBUG][       Thread-261027][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 16:31:11,389 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 16:31:11,389 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 16:31:11,391 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 16:31:11,393 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 16:31:11,397 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 16:31:11,399 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 16:31:11,399 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 16:31:11,400 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 16:31:11,400 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.604449 -999.00  +13.50  24.54     35   -1.40 1 1 1 1 1   887    0 13.62 -50.10 ----- 20.8 24.5 41.2 26.1 16.1 -30.3 15.6 -30.1 16.1 -30.4 16.9 -29.4
2025-06-13 16:31:11,400 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 16:31:11,400 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 16:31:11,401 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.604449
2025-06-13 16:31:11,401 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 16:31:11,402 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 16:31:11,402 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 16:31:11,402 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 16:31:11,402 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 16:31:11,402 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T16:31:06', tmtdew=17.2, humidity=30.25, cloud=0.0, wind=20.26, temperature=13.62, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T14:30:24.394', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 16:31:11,403 [DEBUG][       Thread-261027][   transport.py][1871] : EOF in transport thread
2025-06-13 16:31:11,486 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 16:31:11,501 [DEBUG][       Thread-261030][   transport.py][1871] : starting thread (client mode): 0x863a40a0
2025-06-13 16:31:11,501 [DEBUG][       Thread-261030][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 16:31:11,516 [DEBUG][       Thread-261030][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 16:31:11,517 [ INFO][       Thread-261030][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 16:31:11,525 [DEBUG][       Thread-261030][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 16:31:11,525 [DEBUG][       Thread-261030][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 16:31:11,525 [DEBUG][       Thread-261030][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 16:31:11,525 [DEBUG][       Thread-261030][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:31:11,525 [DEBUG][       Thread-261030][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:31:11,525 [DEBUG][       Thread-261030][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:31:11,525 [DEBUG][       Thread-261030][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:31:11,525 [DEBUG][       Thread-261030][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 16:31:11,525 [DEBUG][       Thread-261030][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 16:31:11,525 [DEBUG][       Thread-261030][   transport.py][1871] : client lang: <none>
2025-06-13 16:31:11,525 [DEBUG][       Thread-261030][   transport.py][1871] : server lang: <none>
2025-06-13 16:31:11,525 [DEBUG][       Thread-261030][   transport.py][1871] : kex follows: False
2025-06-13 16:31:11,525 [DEBUG][       Thread-261030][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 16:31:11,525 [DEBUG][       Thread-261030][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 16:31:11,526 [DEBUG][       Thread-261030][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 16:31:11,526 [DEBUG][       Thread-261030][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 16:31:11,526 [DEBUG][       Thread-261030][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 16:31:11,526 [DEBUG][       Thread-261030][   transport.py][1871] : Compression: none
2025-06-13 16:31:11,526 [DEBUG][       Thread-261030][   transport.py][1871] : === End of kex handshake ===
2025-06-13 16:31:11,593 [DEBUG][       Thread-261030][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 16:31:11,594 [DEBUG][       Thread-261030][   transport.py][1871] : Switch to new keys ...
2025-06-13 16:31:11,595 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 16:31:11,595 [DEBUG][       Thread-261030][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 16:31:11,596 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 16:31:11,654 [DEBUG][       Thread-261030][   transport.py][1871] : userauth is OK
2025-06-13 16:31:11,655 [DEBUG][       Thread-261030][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 16:31:11,655 [DEBUG][       Thread-261030][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 16:31:11,655 [DEBUG][       Thread-261030][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 16:31:11,655 [DEBUG][       Thread-261030][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 16:31:11,674 [ INFO][       Thread-261030][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 16:31:11,674 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 16:31:11,674 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 16:31:12,661 [DEBUG][       Thread-261030][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 16:31:12,661 [DEBUG][       Thread-261030][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 16:31:12,715 [DEBUG][       Thread-261030][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 16:31:12,715 [DEBUG][       Thread-261030][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 16:31:12,724 [DEBUG][       Thread-261030][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 16:31:12,734 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 16:31:12,734 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 16:31:12,744 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 16:31:12,753 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 16:31:12,754 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 16:31:12,754 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 16:31:12,762 [DEBUG][       Thread-261030][   transport.py][1871] : EOF in transport thread
2025-06-13 16:31:16,664 [DEBUG][Thread-261032 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:31:18,156 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:31:18,157 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:31:22,765 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 16:31:22,765 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 16:31:22,765 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 16:31:22,768 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 16:31:23,244 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 16, 31, 6), 17.2, 30.25, 0.0, 20.26, 13.62, 0, 0, 0, 2, 0, 0),)
2025-06-13 16:31:23,244 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 16:31:06
2025-06-13 16:31:23,323 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 16:31:23,327 [DEBUG][       Thread-261033][   transport.py][1871] : starting thread (client mode): 0x863ca620
2025-06-13 16:31:23,327 [DEBUG][       Thread-261033][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 16:31:23,349 [DEBUG][       Thread-261033][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 16:31:23,349 [ INFO][       Thread-261033][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 16:31:23,353 [DEBUG][       Thread-261033][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 16:31:23,353 [DEBUG][       Thread-261033][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 16:31:23,353 [DEBUG][       Thread-261033][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 16:31:23,353 [DEBUG][       Thread-261033][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:31:23,353 [DEBUG][       Thread-261033][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:31:23,353 [DEBUG][       Thread-261033][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:31:23,353 [DEBUG][       Thread-261033][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:31:23,353 [DEBUG][       Thread-261033][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 16:31:23,353 [DEBUG][       Thread-261033][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 16:31:23,353 [DEBUG][       Thread-261033][   transport.py][1871] : client lang: <none>
2025-06-13 16:31:23,353 [DEBUG][       Thread-261033][   transport.py][1871] : server lang: <none>
2025-06-13 16:31:23,353 [DEBUG][       Thread-261033][   transport.py][1871] : kex follows: False
2025-06-13 16:31:23,353 [DEBUG][       Thread-261033][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 16:31:23,353 [DEBUG][       Thread-261033][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 16:31:23,353 [DEBUG][       Thread-261033][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 16:31:23,353 [DEBUG][       Thread-261033][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 16:31:23,353 [DEBUG][       Thread-261033][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 16:31:23,353 [DEBUG][       Thread-261033][   transport.py][1871] : Compression: none
2025-06-13 16:31:23,353 [DEBUG][       Thread-261033][   transport.py][1871] : === End of kex handshake ===
2025-06-13 16:31:23,370 [DEBUG][       Thread-261033][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 16:31:23,371 [DEBUG][       Thread-261033][   transport.py][1871] : Switch to new keys ...
2025-06-13 16:31:23,371 [DEBUG][       Thread-261033][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 16:31:23,371 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 16:31:23,372 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 16:31:23,373 [DEBUG][       Thread-261033][   transport.py][1871] : userauth is OK
2025-06-13 16:31:23,386 [ INFO][       Thread-261033][   transport.py][1871] : Authentication (password) successful!
2025-06-13 16:31:23,387 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 16:31:23,560 [DEBUG][Thread-261035 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:31:24,185 [DEBUG][       Thread-261033][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 16:31:24,185 [DEBUG][       Thread-261033][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 16:31:24,229 [DEBUG][       Thread-261033][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 16:31:24,229 [DEBUG][       Thread-261033][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 16:31:24,232 [DEBUG][       Thread-261033][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 16:31:24,244 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 16:31:24,245 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 16:31:24,247 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 16:31:24,249 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 16:31:24,255 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 16:31:24,257 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 16:31:24,257 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 16:31:24,258 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 16:31:24,258 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.604449 -999.00  +13.50  24.54     35   -1.40 1 1 1 1 1   887    0 13.62 -50.10 ----- 20.8 24.5 41.2 26.1 16.1 -30.3 15.6 -30.1 16.1 -30.4 16.9 -29.4
2025-06-13 16:31:24,258 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 16:31:24,258 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 16:31:24,258 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.604449
2025-06-13 16:31:24,259 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 16:31:24,259 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 16:31:24,259 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 16:31:24,259 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 16:31:24,259 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 16:31:24,260 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T16:31:06', tmtdew=17.2, humidity=30.25, cloud=0.0, wind=20.26, temperature=13.62, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T14:30:24.394', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 16:31:24,261 [DEBUG][       Thread-261033][   transport.py][1871] : EOF in transport thread
2025-06-13 16:31:24,344 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 16:31:24,353 [DEBUG][       Thread-261037][   transport.py][1871] : starting thread (client mode): 0x867b5690
2025-06-13 16:31:24,353 [DEBUG][       Thread-261037][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 16:31:24,368 [DEBUG][       Thread-261037][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 16:31:24,368 [ INFO][       Thread-261037][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 16:31:24,375 [DEBUG][       Thread-261037][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 16:31:24,376 [DEBUG][       Thread-261037][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 16:31:24,376 [DEBUG][       Thread-261037][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 16:31:24,376 [DEBUG][       Thread-261037][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:31:24,376 [DEBUG][       Thread-261037][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:31:24,376 [DEBUG][       Thread-261037][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:31:24,376 [DEBUG][       Thread-261037][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:31:24,376 [DEBUG][       Thread-261037][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 16:31:24,376 [DEBUG][       Thread-261037][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 16:31:24,376 [DEBUG][       Thread-261037][   transport.py][1871] : client lang: <none>
2025-06-13 16:31:24,376 [DEBUG][       Thread-261037][   transport.py][1871] : server lang: <none>
2025-06-13 16:31:24,376 [DEBUG][       Thread-261037][   transport.py][1871] : kex follows: False
2025-06-13 16:31:24,376 [DEBUG][       Thread-261037][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 16:31:24,376 [DEBUG][       Thread-261037][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 16:31:24,376 [DEBUG][       Thread-261037][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 16:31:24,376 [DEBUG][       Thread-261037][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 16:31:24,376 [DEBUG][       Thread-261037][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 16:31:24,376 [DEBUG][       Thread-261037][   transport.py][1871] : Compression: none
2025-06-13 16:31:24,376 [DEBUG][       Thread-261037][   transport.py][1871] : === End of kex handshake ===
2025-06-13 16:31:24,434 [DEBUG][       Thread-261037][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 16:31:24,435 [DEBUG][       Thread-261037][   transport.py][1871] : Switch to new keys ...
2025-06-13 16:31:24,435 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 16:31:24,436 [DEBUG][       Thread-261037][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 16:31:24,437 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 16:31:24,490 [DEBUG][       Thread-261037][   transport.py][1871] : userauth is OK
2025-06-13 16:31:24,491 [DEBUG][       Thread-261037][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 16:31:24,491 [DEBUG][       Thread-261037][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 16:31:24,491 [DEBUG][       Thread-261037][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 16:31:24,491 [DEBUG][       Thread-261037][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 16:31:24,509 [ INFO][       Thread-261037][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 16:31:24,509 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 16:31:24,510 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 16:31:25,510 [DEBUG][       Thread-261037][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 16:31:25,511 [DEBUG][       Thread-261037][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 16:31:25,560 [DEBUG][       Thread-261037][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 16:31:25,560 [DEBUG][       Thread-261037][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 16:31:25,569 [DEBUG][       Thread-261037][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 16:31:25,578 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 16:31:25,579 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 16:31:25,588 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 16:31:25,596 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 16:31:25,597 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 16:31:25,597 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 16:31:25,605 [DEBUG][       Thread-261037][   transport.py][1871] : EOF in transport thread
2025-06-13 16:31:25,696 [DEBUG][Thread-261039 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:31:34,717 [DEBUG][Thread-261040 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:31:35,604 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 16:31:35,604 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 16:31:35,604 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 16:31:35,605 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 16:31:36,090 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 16, 31, 6), 17.2, 30.25, 0.0, 20.26, 13.62, 0, 0, 0, 2, 0, 0),)
2025-06-13 16:31:36,090 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 16:31:06
2025-06-13 16:31:36,174 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 16:31:36,180 [DEBUG][       Thread-261041][   transport.py][1871] : starting thread (client mode): 0x863ca830
2025-06-13 16:31:36,180 [DEBUG][       Thread-261041][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 16:31:36,201 [DEBUG][       Thread-261041][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 16:31:36,201 [ INFO][       Thread-261041][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 16:31:36,204 [DEBUG][       Thread-261041][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 16:31:36,204 [DEBUG][       Thread-261041][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 16:31:36,204 [DEBUG][       Thread-261041][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 16:31:36,204 [DEBUG][       Thread-261041][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:31:36,204 [DEBUG][       Thread-261041][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:31:36,204 [DEBUG][       Thread-261041][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:31:36,204 [DEBUG][       Thread-261041][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:31:36,204 [DEBUG][       Thread-261041][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 16:31:36,204 [DEBUG][       Thread-261041][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 16:31:36,204 [DEBUG][       Thread-261041][   transport.py][1871] : client lang: <none>
2025-06-13 16:31:36,204 [DEBUG][       Thread-261041][   transport.py][1871] : server lang: <none>
2025-06-13 16:31:36,204 [DEBUG][       Thread-261041][   transport.py][1871] : kex follows: False
2025-06-13 16:31:36,204 [DEBUG][       Thread-261041][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 16:31:36,204 [DEBUG][       Thread-261041][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 16:31:36,204 [DEBUG][       Thread-261041][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 16:31:36,204 [DEBUG][       Thread-261041][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 16:31:36,204 [DEBUG][       Thread-261041][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 16:31:36,204 [DEBUG][       Thread-261041][   transport.py][1871] : Compression: none
2025-06-13 16:31:36,204 [DEBUG][       Thread-261041][   transport.py][1871] : === End of kex handshake ===
2025-06-13 16:31:36,220 [DEBUG][       Thread-261041][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 16:31:36,220 [DEBUG][       Thread-261041][   transport.py][1871] : Switch to new keys ...
2025-06-13 16:31:36,220 [DEBUG][       Thread-261041][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 16:31:36,220 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 16:31:36,220 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 16:31:36,221 [DEBUG][       Thread-261041][   transport.py][1871] : userauth is OK
2025-06-13 16:31:36,245 [ INFO][       Thread-261041][   transport.py][1871] : Authentication (password) successful!
2025-06-13 16:31:36,245 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 16:31:36,891 [DEBUG][       Thread-261041][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 16:31:36,891 [DEBUG][       Thread-261041][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 16:31:36,932 [DEBUG][       Thread-261041][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 16:31:36,932 [DEBUG][       Thread-261041][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 16:31:36,934 [DEBUG][       Thread-261041][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 16:31:36,947 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 16:31:36,947 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 16:31:36,948 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 16:31:36,949 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 16:31:36,952 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 16:31:36,953 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 16:31:36,953 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 16:31:36,954 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 16:31:36,954 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.605143 -999.00  +13.30  20.18     35   -1.60 1 1 1 1 1   887    0 13.91 -43.57 ----- 19.9 20.2 53.2 26.3 16.1 -30.1 15.5 -30.4 16.0 -29.6 16.8 -29.1
2025-06-13 16:31:36,954 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 16:31:36,954 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 16:31:36,954 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.605143
2025-06-13 16:31:36,954 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 16:31:36,954 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 16:31:36,954 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 16:31:36,954 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 16:31:36,954 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 16:31:36,954 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T16:31:06', tmtdew=17.2, humidity=30.25, cloud=0.0, wind=20.26, temperature=13.62, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T14:31:24.355', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 16:31:36,955 [DEBUG][       Thread-261041][   transport.py][1871] : EOF in transport thread
2025-06-13 16:31:37,034 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 16:31:37,046 [DEBUG][       Thread-261044][   transport.py][1871] : starting thread (client mode): 0x86392380
2025-06-13 16:31:37,046 [DEBUG][       Thread-261044][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 16:31:37,075 [DEBUG][       Thread-261044][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 16:31:37,075 [ INFO][       Thread-261044][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 16:31:37,082 [DEBUG][       Thread-261044][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 16:31:37,082 [DEBUG][       Thread-261044][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 16:31:37,082 [DEBUG][       Thread-261044][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 16:31:37,082 [DEBUG][       Thread-261044][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:31:37,082 [DEBUG][       Thread-261044][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:31:37,082 [DEBUG][       Thread-261044][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:31:37,082 [DEBUG][       Thread-261044][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:31:37,082 [DEBUG][       Thread-261044][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 16:31:37,082 [DEBUG][       Thread-261044][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 16:31:37,082 [DEBUG][       Thread-261044][   transport.py][1871] : client lang: <none>
2025-06-13 16:31:37,082 [DEBUG][       Thread-261044][   transport.py][1871] : server lang: <none>
2025-06-13 16:31:37,082 [DEBUG][       Thread-261044][   transport.py][1871] : kex follows: False
2025-06-13 16:31:37,082 [DEBUG][       Thread-261044][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 16:31:37,082 [DEBUG][       Thread-261044][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 16:31:37,082 [DEBUG][       Thread-261044][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 16:31:37,082 [DEBUG][       Thread-261044][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 16:31:37,082 [DEBUG][       Thread-261044][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 16:31:37,082 [DEBUG][       Thread-261044][   transport.py][1871] : Compression: none
2025-06-13 16:31:37,082 [DEBUG][       Thread-261044][   transport.py][1871] : === End of kex handshake ===
2025-06-13 16:31:37,142 [DEBUG][       Thread-261044][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 16:31:37,142 [DEBUG][       Thread-261044][   transport.py][1871] : Switch to new keys ...
2025-06-13 16:31:37,142 [DEBUG][       Thread-261044][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 16:31:37,142 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 16:31:37,142 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 16:31:37,202 [DEBUG][       Thread-261044][   transport.py][1871] : userauth is OK
2025-06-13 16:31:37,202 [DEBUG][       Thread-261044][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 16:31:37,202 [DEBUG][       Thread-261044][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 16:31:37,202 [DEBUG][       Thread-261044][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 16:31:37,202 [DEBUG][       Thread-261044][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 16:31:37,216 [ INFO][       Thread-261044][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 16:31:37,216 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 16:31:37,216 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 16:31:38,207 [DEBUG][       Thread-261044][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 16:31:38,207 [DEBUG][       Thread-261044][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 16:31:38,255 [DEBUG][       Thread-261044][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 16:31:38,255 [DEBUG][       Thread-261044][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 16:31:38,263 [DEBUG][       Thread-261044][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 16:31:38,271 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 16:31:38,271 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 16:31:38,279 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 16:31:38,286 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 16:31:38,287 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 16:31:38,287 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 16:31:38,294 [DEBUG][       Thread-261044][   transport.py][1871] : EOF in transport thread
2025-06-13 16:31:43,735 [DEBUG][Thread-261046 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:31:48,297 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 16:31:48,297 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 16:31:48,297 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 16:31:48,300 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 16:31:48,776 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 16, 31, 38), 17.15, 30.43, 0.0, 18.88, 13.6, 0, 0, 0, 2, 0, 0),)
2025-06-13 16:31:48,776 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 16:31:38
2025-06-13 16:31:48,856 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 16:31:48,860 [DEBUG][       Thread-261047][   transport.py][1871] : starting thread (client mode): 0x867fefb0
2025-06-13 16:31:48,860 [DEBUG][       Thread-261047][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 16:31:48,881 [DEBUG][       Thread-261047][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 16:31:48,881 [ INFO][       Thread-261047][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 16:31:48,884 [DEBUG][       Thread-261047][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 16:31:48,885 [DEBUG][       Thread-261047][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 16:31:48,885 [DEBUG][       Thread-261047][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 16:31:48,885 [DEBUG][       Thread-261047][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:31:48,885 [DEBUG][       Thread-261047][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:31:48,885 [DEBUG][       Thread-261047][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:31:48,885 [DEBUG][       Thread-261047][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:31:48,885 [DEBUG][       Thread-261047][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 16:31:48,885 [DEBUG][       Thread-261047][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 16:31:48,885 [DEBUG][       Thread-261047][   transport.py][1871] : client lang: <none>
2025-06-13 16:31:48,885 [DEBUG][       Thread-261047][   transport.py][1871] : server lang: <none>
2025-06-13 16:31:48,885 [DEBUG][       Thread-261047][   transport.py][1871] : kex follows: False
2025-06-13 16:31:48,885 [DEBUG][       Thread-261047][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 16:31:48,885 [DEBUG][       Thread-261047][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 16:31:48,885 [DEBUG][       Thread-261047][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 16:31:48,885 [DEBUG][       Thread-261047][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 16:31:48,885 [DEBUG][       Thread-261047][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 16:31:48,885 [DEBUG][       Thread-261047][   transport.py][1871] : Compression: none
2025-06-13 16:31:48,885 [DEBUG][       Thread-261047][   transport.py][1871] : === End of kex handshake ===
2025-06-13 16:31:48,902 [DEBUG][       Thread-261047][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 16:31:48,903 [DEBUG][       Thread-261047][   transport.py][1871] : Switch to new keys ...
2025-06-13 16:31:48,904 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 16:31:48,904 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 16:31:48,904 [DEBUG][       Thread-261047][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 16:31:48,905 [DEBUG][       Thread-261047][   transport.py][1871] : userauth is OK
2025-06-13 16:31:48,930 [ INFO][       Thread-261047][   transport.py][1871] : Authentication (password) successful!
2025-06-13 16:31:48,931 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 16:31:49,684 [DEBUG][       Thread-261047][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 16:31:49,685 [DEBUG][       Thread-261047][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 16:31:49,729 [DEBUG][       Thread-261047][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 16:31:49,729 [DEBUG][       Thread-261047][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 16:31:49,733 [DEBUG][       Thread-261047][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 16:31:49,744 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 16:31:49,744 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 16:31:49,746 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 16:31:49,748 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 16:31:49,755 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 16:31:49,757 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 16:31:49,757 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 16:31:49,758 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 16:31:49,758 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.605143 -999.00  +13.30  20.18     35   -1.60 1 1 1 1 1   887    0 13.91 -43.57 ----- 19.9 20.2 53.2 26.3 16.1 -30.1 15.5 -30.4 16.0 -29.6 16.8 -29.1
2025-06-13 16:31:49,758 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 16:31:49,758 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 16:31:49,758 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.605143
2025-06-13 16:31:49,759 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 16:31:49,759 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 16:31:49,760 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 16:31:49,760 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 16:31:49,760 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 16:31:49,760 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T16:31:38', tmtdew=17.15, humidity=30.43, cloud=0.0, wind=18.88, temperature=13.6, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T14:31:24.355', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 16:31:49,760 [DEBUG][       Thread-261047][   transport.py][1871] : EOF in transport thread
2025-06-13 16:31:49,843 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 16:31:49,853 [DEBUG][       Thread-261050][   transport.py][1871] : starting thread (client mode): 0x863be1d0
2025-06-13 16:31:49,853 [DEBUG][       Thread-261050][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 16:31:49,868 [DEBUG][       Thread-261050][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 16:31:49,868 [ INFO][       Thread-261050][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 16:31:49,876 [DEBUG][       Thread-261050][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 16:31:49,876 [DEBUG][       Thread-261050][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 16:31:49,876 [DEBUG][       Thread-261050][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 16:31:49,877 [DEBUG][       Thread-261050][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:31:49,877 [DEBUG][       Thread-261050][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:31:49,877 [DEBUG][       Thread-261050][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:31:49,877 [DEBUG][       Thread-261050][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:31:49,877 [DEBUG][       Thread-261050][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 16:31:49,877 [DEBUG][       Thread-261050][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 16:31:49,877 [DEBUG][       Thread-261050][   transport.py][1871] : client lang: <none>
2025-06-13 16:31:49,877 [DEBUG][       Thread-261050][   transport.py][1871] : server lang: <none>
2025-06-13 16:31:49,877 [DEBUG][       Thread-261050][   transport.py][1871] : kex follows: False
2025-06-13 16:31:49,877 [DEBUG][       Thread-261050][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 16:31:49,877 [DEBUG][       Thread-261050][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 16:31:49,877 [DEBUG][       Thread-261050][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 16:31:49,877 [DEBUG][       Thread-261050][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 16:31:49,877 [DEBUG][       Thread-261050][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 16:31:49,877 [DEBUG][       Thread-261050][   transport.py][1871] : Compression: none
2025-06-13 16:31:49,877 [DEBUG][       Thread-261050][   transport.py][1871] : === End of kex handshake ===
2025-06-13 16:31:49,934 [DEBUG][       Thread-261050][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 16:31:49,935 [DEBUG][       Thread-261050][   transport.py][1871] : Switch to new keys ...
2025-06-13 16:31:49,935 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 16:31:49,936 [DEBUG][       Thread-261050][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 16:31:49,937 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 16:31:49,991 [DEBUG][       Thread-261050][   transport.py][1871] : userauth is OK
2025-06-13 16:31:49,992 [DEBUG][       Thread-261050][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 16:31:49,992 [DEBUG][       Thread-261050][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 16:31:49,992 [DEBUG][       Thread-261050][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 16:31:49,992 [DEBUG][       Thread-261050][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 16:31:50,015 [ INFO][       Thread-261050][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 16:31:50,015 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 16:31:50,016 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 16:31:51,041 [DEBUG][       Thread-261050][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 16:31:51,041 [DEBUG][       Thread-261050][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 16:31:51,095 [DEBUG][       Thread-261050][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 16:31:51,095 [DEBUG][       Thread-261050][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 16:31:51,108 [DEBUG][       Thread-261050][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 16:31:51,117 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 16:31:51,117 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 16:31:51,126 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 16:31:51,136 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 16:31:51,136 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 16:31:51,136 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 16:31:51,144 [DEBUG][       Thread-261050][   transport.py][1871] : EOF in transport thread
2025-06-13 16:31:52,758 [DEBUG][Thread-261052 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:31:58,722 [DEBUG][Thread-261053 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:31:59,804 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:31:59,805 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:32:01,144 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 16:32:01,144 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 16:32:01,144 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 16:32:01,147 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 16:32:01,617 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 16, 31, 38), 17.15, 30.43, 0.0, 18.88, 13.6, 0, 0, 0, 2, 0, 0),)
2025-06-13 16:32:01,617 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 16:31:38
2025-06-13 16:32:01,697 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 16:32:01,701 [DEBUG][       Thread-261054][   transport.py][1871] : starting thread (client mode): 0x863c95d0
2025-06-13 16:32:01,701 [DEBUG][       Thread-261054][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 16:32:01,723 [DEBUG][       Thread-261054][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 16:32:01,723 [ INFO][       Thread-261054][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 16:32:01,724 [DEBUG][       Thread-261054][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 16:32:01,724 [DEBUG][       Thread-261054][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 16:32:01,724 [DEBUG][       Thread-261054][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 16:32:01,724 [DEBUG][       Thread-261054][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:32:01,724 [DEBUG][       Thread-261054][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:32:01,724 [DEBUG][       Thread-261054][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:32:01,724 [DEBUG][       Thread-261054][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:32:01,724 [DEBUG][       Thread-261054][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 16:32:01,724 [DEBUG][       Thread-261054][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 16:32:01,724 [DEBUG][       Thread-261054][   transport.py][1871] : client lang: <none>
2025-06-13 16:32:01,725 [DEBUG][       Thread-261054][   transport.py][1871] : server lang: <none>
2025-06-13 16:32:01,725 [DEBUG][       Thread-261054][   transport.py][1871] : kex follows: False
2025-06-13 16:32:01,725 [DEBUG][       Thread-261054][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 16:32:01,725 [DEBUG][       Thread-261054][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 16:32:01,725 [DEBUG][       Thread-261054][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 16:32:01,725 [DEBUG][       Thread-261054][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 16:32:01,725 [DEBUG][       Thread-261054][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 16:32:01,725 [DEBUG][       Thread-261054][   transport.py][1871] : Compression: none
2025-06-13 16:32:01,725 [DEBUG][       Thread-261054][   transport.py][1871] : === End of kex handshake ===
2025-06-13 16:32:01,737 [DEBUG][       Thread-261054][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 16:32:01,738 [DEBUG][       Thread-261054][   transport.py][1871] : Switch to new keys ...
2025-06-13 16:32:01,738 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 16:32:01,739 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 16:32:01,739 [DEBUG][       Thread-261054][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 16:32:01,740 [DEBUG][       Thread-261054][   transport.py][1871] : userauth is OK
2025-06-13 16:32:01,752 [ INFO][       Thread-261054][   transport.py][1871] : Authentication (password) successful!
2025-06-13 16:32:01,753 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 16:32:01,796 [DEBUG][Thread-261056 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:32:02,456 [DEBUG][       Thread-261054][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 16:32:02,456 [DEBUG][       Thread-261054][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 16:32:02,497 [DEBUG][       Thread-261054][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 16:32:02,497 [DEBUG][       Thread-261054][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 16:32:02,501 [DEBUG][       Thread-261054][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 16:32:02,513 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 16:32:02,514 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 16:32:02,516 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 16:32:02,518 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 16:32:02,527 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 16:32:02,530 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 16:32:02,530 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 16:32:02,530 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 16:32:02,531 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.605490 -999.00  +13.30  15.80     35   -1.40 1 1 1 1 1   887    0 14.17 -41.59 ----- 16.1 15.8 52.0 22.6 16.0 -29.6 15.5 -29.9 16.0 -29.6 16.8 -28.6
2025-06-13 16:32:02,531 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 16:32:02,531 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 16:32:02,531 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.605490
2025-06-13 16:32:02,531 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 16:32:02,532 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 16:32:02,532 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 16:32:02,532 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 16:32:02,532 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 16:32:02,532 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T16:31:38', tmtdew=17.15, humidity=30.43, cloud=0.0, wind=18.88, temperature=13.6, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T14:31:54.336', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 16:32:02,532 [DEBUG][       Thread-261054][   transport.py][1871] : EOF in transport thread
2025-06-13 16:32:02,617 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 16:32:02,628 [DEBUG][       Thread-261058][   transport.py][1871] : starting thread (client mode): 0x867ff190
2025-06-13 16:32:02,629 [DEBUG][       Thread-261058][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 16:32:02,643 [DEBUG][       Thread-261058][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 16:32:02,643 [ INFO][       Thread-261058][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 16:32:02,651 [DEBUG][       Thread-261058][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 16:32:02,651 [DEBUG][       Thread-261058][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 16:32:02,651 [DEBUG][       Thread-261058][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 16:32:02,651 [DEBUG][       Thread-261058][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:32:02,651 [DEBUG][       Thread-261058][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:32:02,651 [DEBUG][       Thread-261058][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:32:02,651 [DEBUG][       Thread-261058][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:32:02,651 [DEBUG][       Thread-261058][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 16:32:02,651 [DEBUG][       Thread-261058][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 16:32:02,651 [DEBUG][       Thread-261058][   transport.py][1871] : client lang: <none>
2025-06-13 16:32:02,651 [DEBUG][       Thread-261058][   transport.py][1871] : server lang: <none>
2025-06-13 16:32:02,651 [DEBUG][       Thread-261058][   transport.py][1871] : kex follows: False
2025-06-13 16:32:02,651 [DEBUG][       Thread-261058][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 16:32:02,651 [DEBUG][       Thread-261058][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 16:32:02,651 [DEBUG][       Thread-261058][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 16:32:02,651 [DEBUG][       Thread-261058][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 16:32:02,651 [DEBUG][       Thread-261058][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 16:32:02,651 [DEBUG][       Thread-261058][   transport.py][1871] : Compression: none
2025-06-13 16:32:02,651 [DEBUG][       Thread-261058][   transport.py][1871] : === End of kex handshake ===
2025-06-13 16:32:02,713 [DEBUG][       Thread-261058][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 16:32:02,713 [DEBUG][       Thread-261058][   transport.py][1871] : Switch to new keys ...
2025-06-13 16:32:02,713 [DEBUG][       Thread-261058][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 16:32:02,713 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 16:32:02,713 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 16:32:02,770 [DEBUG][       Thread-261058][   transport.py][1871] : userauth is OK
2025-06-13 16:32:02,770 [DEBUG][       Thread-261058][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 16:32:02,771 [DEBUG][       Thread-261058][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 16:32:02,771 [DEBUG][       Thread-261058][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 16:32:02,771 [DEBUG][       Thread-261058][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 16:32:02,793 [ INFO][       Thread-261058][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 16:32:02,793 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 16:32:02,794 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 16:32:03,773 [DEBUG][       Thread-261058][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 16:32:03,773 [DEBUG][       Thread-261058][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 16:32:03,829 [DEBUG][       Thread-261058][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 16:32:03,829 [DEBUG][       Thread-261058][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 16:32:03,840 [DEBUG][       Thread-261058][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 16:32:03,848 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 16:32:03,849 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 16:32:03,857 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 16:32:03,867 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 16:32:03,867 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 16:32:03,868 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 16:32:03,876 [DEBUG][       Thread-261058][   transport.py][1871] : EOF in transport thread
2025-06-13 16:32:10,820 [DEBUG][Thread-261060 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:32:13,878 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 16:32:13,878 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 16:32:13,878 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 16:32:13,879 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 16:32:14,364 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 16, 32, 9), 17.06, 30.57, 0.0, 16.23, 13.61, 0, 0, 0, 2, 0, 0),)
2025-06-13 16:32:14,364 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 16:32:09
2025-06-13 16:32:14,448 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 16:32:14,452 [DEBUG][       Thread-261061][   transport.py][1871] : starting thread (client mode): 0x867fe050
2025-06-13 16:32:14,452 [DEBUG][       Thread-261061][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 16:32:14,474 [DEBUG][       Thread-261061][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 16:32:14,474 [ INFO][       Thread-261061][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 16:32:14,478 [DEBUG][       Thread-261061][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 16:32:14,478 [DEBUG][       Thread-261061][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 16:32:14,478 [DEBUG][       Thread-261061][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 16:32:14,478 [DEBUG][       Thread-261061][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:32:14,478 [DEBUG][       Thread-261061][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:32:14,478 [DEBUG][       Thread-261061][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:32:14,478 [DEBUG][       Thread-261061][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:32:14,478 [DEBUG][       Thread-261061][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 16:32:14,478 [DEBUG][       Thread-261061][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 16:32:14,478 [DEBUG][       Thread-261061][   transport.py][1871] : client lang: <none>
2025-06-13 16:32:14,478 [DEBUG][       Thread-261061][   transport.py][1871] : server lang: <none>
2025-06-13 16:32:14,478 [DEBUG][       Thread-261061][   transport.py][1871] : kex follows: False
2025-06-13 16:32:14,478 [DEBUG][       Thread-261061][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 16:32:14,478 [DEBUG][       Thread-261061][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 16:32:14,478 [DEBUG][       Thread-261061][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 16:32:14,478 [DEBUG][       Thread-261061][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 16:32:14,478 [DEBUG][       Thread-261061][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 16:32:14,478 [DEBUG][       Thread-261061][   transport.py][1871] : Compression: none
2025-06-13 16:32:14,478 [DEBUG][       Thread-261061][   transport.py][1871] : === End of kex handshake ===
2025-06-13 16:32:14,493 [DEBUG][       Thread-261061][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 16:32:14,494 [DEBUG][       Thread-261061][   transport.py][1871] : Switch to new keys ...
2025-06-13 16:32:14,494 [DEBUG][       Thread-261061][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 16:32:14,494 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 16:32:14,494 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 16:32:14,494 [DEBUG][       Thread-261061][   transport.py][1871] : userauth is OK
2025-06-13 16:32:14,507 [ INFO][       Thread-261061][   transport.py][1871] : Authentication (password) successful!
2025-06-13 16:32:14,507 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 16:32:15,110 [DEBUG][       Thread-261061][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 16:32:15,110 [DEBUG][       Thread-261061][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 16:32:15,152 [DEBUG][       Thread-261061][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 16:32:15,153 [DEBUG][       Thread-261061][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 16:32:15,155 [DEBUG][       Thread-261061][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 16:32:15,166 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 16:32:15,166 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 16:32:15,167 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 16:32:15,169 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 16:32:15,172 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 16:32:15,173 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 16:32:15,173 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 16:32:15,173 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 16:32:15,173 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.605490 -999.00  +13.30  15.80     35   -1.40 1 1 1 1 1   887    0 14.17 -41.59 ----- 16.1 15.8 52.0 22.6 16.0 -29.6 15.5 -29.9 16.0 -29.6 16.8 -28.6
2025-06-13 16:32:15,173 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 16:32:15,173 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 16:32:15,173 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.605490
2025-06-13 16:32:15,173 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 16:32:15,173 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 16:32:15,173 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 16:32:15,173 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 16:32:15,173 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 16:32:15,173 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T16:32:09', tmtdew=17.06, humidity=30.57, cloud=0.0, wind=16.23, temperature=13.61, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T14:31:54.336', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 16:32:15,174 [DEBUG][       Thread-261061][   transport.py][1871] : EOF in transport thread
2025-06-13 16:32:15,248 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 16:32:15,262 [DEBUG][       Thread-261064][   transport.py][1871] : starting thread (client mode): 0x863ed8d0
2025-06-13 16:32:15,262 [DEBUG][       Thread-261064][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 16:32:15,277 [DEBUG][       Thread-261064][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 16:32:15,277 [ INFO][       Thread-261064][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 16:32:15,286 [DEBUG][       Thread-261064][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 16:32:15,286 [DEBUG][       Thread-261064][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 16:32:15,286 [DEBUG][       Thread-261064][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 16:32:15,286 [DEBUG][       Thread-261064][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:32:15,286 [DEBUG][       Thread-261064][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:32:15,286 [DEBUG][       Thread-261064][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:32:15,286 [DEBUG][       Thread-261064][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:32:15,286 [DEBUG][       Thread-261064][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 16:32:15,286 [DEBUG][       Thread-261064][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 16:32:15,286 [DEBUG][       Thread-261064][   transport.py][1871] : client lang: <none>
2025-06-13 16:32:15,286 [DEBUG][       Thread-261064][   transport.py][1871] : server lang: <none>
2025-06-13 16:32:15,286 [DEBUG][       Thread-261064][   transport.py][1871] : kex follows: False
2025-06-13 16:32:15,286 [DEBUG][       Thread-261064][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 16:32:15,286 [DEBUG][       Thread-261064][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 16:32:15,286 [DEBUG][       Thread-261064][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 16:32:15,286 [DEBUG][       Thread-261064][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 16:32:15,286 [DEBUG][       Thread-261064][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 16:32:15,286 [DEBUG][       Thread-261064][   transport.py][1871] : Compression: none
2025-06-13 16:32:15,286 [DEBUG][       Thread-261064][   transport.py][1871] : === End of kex handshake ===
2025-06-13 16:32:15,342 [DEBUG][       Thread-261064][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 16:32:15,342 [DEBUG][       Thread-261064][   transport.py][1871] : Switch to new keys ...
2025-06-13 16:32:15,342 [DEBUG][       Thread-261064][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 16:32:15,342 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 16:32:15,342 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 16:32:15,398 [DEBUG][       Thread-261064][   transport.py][1871] : userauth is OK
2025-06-13 16:32:15,398 [DEBUG][       Thread-261064][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 16:32:15,398 [DEBUG][       Thread-261064][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 16:32:15,398 [DEBUG][       Thread-261064][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 16:32:15,398 [DEBUG][       Thread-261064][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 16:32:15,413 [ INFO][       Thread-261064][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 16:32:15,413 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 16:32:15,414 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 16:32:16,428 [DEBUG][       Thread-261064][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 16:32:16,428 [DEBUG][       Thread-261064][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 16:32:16,475 [DEBUG][       Thread-261064][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 16:32:16,475 [DEBUG][       Thread-261064][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 16:32:16,484 [DEBUG][       Thread-261064][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 16:32:16,491 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 16:32:16,492 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 16:32:16,500 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 16:32:16,508 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 16:32:16,508 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 16:32:16,508 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 16:32:16,516 [DEBUG][       Thread-261064][   transport.py][1871] : EOF in transport thread
2025-06-13 16:32:18,297 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:32:18,298 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:32:19,839 [DEBUG][Thread-261066 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:32:23,604 [DEBUG][Thread-261067 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:32:26,518 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 16:32:26,519 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 16:32:26,519 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 16:32:26,521 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 16:32:26,984 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 16, 32, 9), 17.06, 30.57, 0.0, 16.23, 13.61, 0, 0, 0, 2, 0, 0),)
2025-06-13 16:32:26,985 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 16:32:09
2025-06-13 16:32:27,066 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 16:32:27,071 [DEBUG][       Thread-261068][   transport.py][1871] : starting thread (client mode): 0x863ca5c0
2025-06-13 16:32:27,071 [DEBUG][       Thread-261068][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 16:32:27,086 [DEBUG][       Thread-261068][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 16:32:27,086 [ INFO][       Thread-261068][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 16:32:27,088 [DEBUG][       Thread-261068][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 16:32:27,088 [DEBUG][       Thread-261068][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 16:32:27,088 [DEBUG][       Thread-261068][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 16:32:27,088 [DEBUG][       Thread-261068][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:32:27,088 [DEBUG][       Thread-261068][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:32:27,088 [DEBUG][       Thread-261068][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:32:27,088 [DEBUG][       Thread-261068][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:32:27,088 [DEBUG][       Thread-261068][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 16:32:27,088 [DEBUG][       Thread-261068][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 16:32:27,088 [DEBUG][       Thread-261068][   transport.py][1871] : client lang: <none>
2025-06-13 16:32:27,088 [DEBUG][       Thread-261068][   transport.py][1871] : server lang: <none>
2025-06-13 16:32:27,088 [DEBUG][       Thread-261068][   transport.py][1871] : kex follows: False
2025-06-13 16:32:27,088 [DEBUG][       Thread-261068][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 16:32:27,088 [DEBUG][       Thread-261068][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 16:32:27,088 [DEBUG][       Thread-261068][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 16:32:27,088 [DEBUG][       Thread-261068][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 16:32:27,088 [DEBUG][       Thread-261068][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 16:32:27,088 [DEBUG][       Thread-261068][   transport.py][1871] : Compression: none
2025-06-13 16:32:27,088 [DEBUG][       Thread-261068][   transport.py][1871] : === End of kex handshake ===
2025-06-13 16:32:27,097 [DEBUG][       Thread-261068][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 16:32:27,097 [DEBUG][       Thread-261068][   transport.py][1871] : Switch to new keys ...
2025-06-13 16:32:27,097 [DEBUG][       Thread-261068][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 16:32:27,097 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 16:32:27,098 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 16:32:27,098 [DEBUG][       Thread-261068][   transport.py][1871] : userauth is OK
2025-06-13 16:32:27,123 [ INFO][       Thread-261068][   transport.py][1871] : Authentication (password) successful!
2025-06-13 16:32:27,123 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 16:32:27,885 [DEBUG][       Thread-261068][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 16:32:27,886 [DEBUG][       Thread-261068][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 16:32:27,929 [DEBUG][       Thread-261068][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 16:32:27,929 [DEBUG][       Thread-261068][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 16:32:27,932 [DEBUG][       Thread-261068][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 16:32:27,945 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 16:32:27,946 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 16:32:27,948 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 16:32:27,950 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 16:32:27,955 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 16:32:27,957 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 16:32:27,958 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 16:32:27,958 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 16:32:27,958 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.605490 -999.00  +13.30  15.80     35   -1.40 1 1 1 1 1   887    0 14.17 -41.59 ----- 16.1 15.8 52.0 22.6 16.0 -29.6 15.5 -29.9 16.0 -29.6 16.8 -28.6
2025-06-13 16:32:27,959 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 16:32:27,959 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 16:32:27,959 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.605490
2025-06-13 16:32:27,959 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 16:32:27,960 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 16:32:27,960 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 16:32:27,960 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 16:32:27,960 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 16:32:27,960 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T16:32:09', tmtdew=17.06, humidity=30.57, cloud=0.0, wind=16.23, temperature=13.61, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T14:31:54.336', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 16:32:27,960 [DEBUG][       Thread-261068][   transport.py][1871] : EOF in transport thread
2025-06-13 16:32:28,043 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 16:32:28,054 [DEBUG][       Thread-261071][   transport.py][1871] : starting thread (client mode): 0x863a43a0
2025-06-13 16:32:28,054 [DEBUG][       Thread-261071][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 16:32:28,071 [DEBUG][       Thread-261071][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 16:32:28,071 [ INFO][       Thread-261071][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 16:32:28,083 [DEBUG][       Thread-261071][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 16:32:28,084 [DEBUG][       Thread-261071][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 16:32:28,084 [DEBUG][       Thread-261071][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 16:32:28,084 [DEBUG][       Thread-261071][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:32:28,084 [DEBUG][       Thread-261071][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:32:28,084 [DEBUG][       Thread-261071][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:32:28,084 [DEBUG][       Thread-261071][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:32:28,084 [DEBUG][       Thread-261071][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 16:32:28,084 [DEBUG][       Thread-261071][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 16:32:28,084 [DEBUG][       Thread-261071][   transport.py][1871] : client lang: <none>
2025-06-13 16:32:28,084 [DEBUG][       Thread-261071][   transport.py][1871] : server lang: <none>
2025-06-13 16:32:28,084 [DEBUG][       Thread-261071][   transport.py][1871] : kex follows: False
2025-06-13 16:32:28,084 [DEBUG][       Thread-261071][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 16:32:28,084 [DEBUG][       Thread-261071][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 16:32:28,084 [DEBUG][       Thread-261071][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 16:32:28,085 [DEBUG][       Thread-261071][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 16:32:28,085 [DEBUG][       Thread-261071][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 16:32:28,085 [DEBUG][       Thread-261071][   transport.py][1871] : Compression: none
2025-06-13 16:32:28,085 [DEBUG][       Thread-261071][   transport.py][1871] : === End of kex handshake ===
2025-06-13 16:32:28,138 [DEBUG][       Thread-261071][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 16:32:28,139 [DEBUG][       Thread-261071][   transport.py][1871] : Switch to new keys ...
2025-06-13 16:32:28,139 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 16:32:28,140 [DEBUG][       Thread-261071][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 16:32:28,141 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 16:32:28,199 [DEBUG][       Thread-261071][   transport.py][1871] : userauth is OK
2025-06-13 16:32:28,199 [DEBUG][       Thread-261071][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 16:32:28,200 [DEBUG][       Thread-261071][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 16:32:28,200 [DEBUG][       Thread-261071][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 16:32:28,200 [DEBUG][       Thread-261071][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 16:32:28,219 [ INFO][       Thread-261071][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 16:32:28,219 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 16:32:28,220 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 16:32:28,872 [DEBUG][Thread-261073 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:32:29,219 [DEBUG][       Thread-261071][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 16:32:29,219 [DEBUG][       Thread-261071][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 16:32:29,268 [DEBUG][       Thread-261071][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 16:32:29,268 [DEBUG][       Thread-261071][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 16:32:29,277 [DEBUG][       Thread-261071][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 16:32:29,286 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 16:32:29,286 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 16:32:29,294 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 16:32:29,303 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 16:32:29,304 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 16:32:29,304 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 16:32:29,312 [DEBUG][       Thread-261071][   transport.py][1871] : EOF in transport thread
2025-06-13 16:32:37,896 [DEBUG][Thread-261074 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:32:39,312 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 16:32:39,312 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 16:32:39,312 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 16:32:39,315 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 16:32:39,772 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 16, 32, 9), 17.06, 30.57, 0.0, 16.23, 13.61, 0, 0, 0, 2, 0, 0),)
2025-06-13 16:32:39,772 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 16:32:09
2025-06-13 16:32:39,854 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 16:32:39,858 [DEBUG][       Thread-261075][   transport.py][1871] : starting thread (client mode): 0x863523b0
2025-06-13 16:32:39,858 [DEBUG][       Thread-261075][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 16:32:39,874 [DEBUG][       Thread-261075][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 16:32:39,874 [ INFO][       Thread-261075][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 16:32:39,875 [DEBUG][       Thread-261075][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 16:32:39,875 [DEBUG][       Thread-261075][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 16:32:39,875 [DEBUG][       Thread-261075][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 16:32:39,875 [DEBUG][       Thread-261075][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:32:39,875 [DEBUG][       Thread-261075][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:32:39,875 [DEBUG][       Thread-261075][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:32:39,875 [DEBUG][       Thread-261075][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:32:39,875 [DEBUG][       Thread-261075][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 16:32:39,875 [DEBUG][       Thread-261075][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 16:32:39,875 [DEBUG][       Thread-261075][   transport.py][1871] : client lang: <none>
2025-06-13 16:32:39,875 [DEBUG][       Thread-261075][   transport.py][1871] : server lang: <none>
2025-06-13 16:32:39,875 [DEBUG][       Thread-261075][   transport.py][1871] : kex follows: False
2025-06-13 16:32:39,875 [DEBUG][       Thread-261075][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 16:32:39,875 [DEBUG][       Thread-261075][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 16:32:39,875 [DEBUG][       Thread-261075][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 16:32:39,875 [DEBUG][       Thread-261075][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 16:32:39,875 [DEBUG][       Thread-261075][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 16:32:39,875 [DEBUG][       Thread-261075][   transport.py][1871] : Compression: none
2025-06-13 16:32:39,875 [DEBUG][       Thread-261075][   transport.py][1871] : === End of kex handshake ===
2025-06-13 16:32:39,883 [DEBUG][       Thread-261075][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 16:32:39,883 [DEBUG][       Thread-261075][   transport.py][1871] : Switch to new keys ...
2025-06-13 16:32:39,883 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 16:32:39,884 [DEBUG][       Thread-261075][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 16:32:39,884 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 16:32:39,884 [DEBUG][       Thread-261075][   transport.py][1871] : userauth is OK
2025-06-13 16:32:39,897 [ INFO][       Thread-261075][   transport.py][1871] : Authentication (password) successful!
2025-06-13 16:32:39,897 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 16:32:40,507 [DEBUG][       Thread-261075][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 16:32:40,507 [DEBUG][       Thread-261075][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 16:32:40,549 [DEBUG][       Thread-261075][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 16:32:40,549 [DEBUG][       Thread-261075][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 16:32:40,552 [DEBUG][       Thread-261075][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 16:32:40,566 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 16:32:40,566 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 16:32:40,568 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 16:32:40,570 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 16:32:40,576 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 16:32:40,578 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 16:32:40,578 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 16:32:40,579 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 16:32:40,579 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.605838 -999.00  +13.40  19.20     35   -1.30 1 1 1 1 1   887    0 14.10 -40.28 ----- 19.5 19.2 49.0 20.6 16.1 -29.8 15.5 -29.8 15.9 -30.1 16.7 -29.0
2025-06-13 16:32:40,579 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 16:32:40,579 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 16:32:40,579 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.605838
2025-06-13 16:32:40,580 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 16:32:40,580 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 16:32:40,580 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 16:32:40,580 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 16:32:40,580 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 16:32:40,581 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T16:32:09', tmtdew=17.06, humidity=30.57, cloud=0.0, wind=16.23, temperature=13.61, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T14:32:24.403', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 16:32:40,582 [DEBUG][       Thread-261075][   transport.py][1871] : EOF in transport thread
2025-06-13 16:32:40,664 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 16:32:40,676 [DEBUG][       Thread-261078][   transport.py][1871] : starting thread (client mode): 0x86893a60
2025-06-13 16:32:40,676 [DEBUG][       Thread-261078][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 16:32:40,692 [DEBUG][       Thread-261078][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 16:32:40,692 [ INFO][       Thread-261078][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 16:32:40,700 [DEBUG][       Thread-261078][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 16:32:40,700 [DEBUG][       Thread-261078][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 16:32:40,700 [DEBUG][       Thread-261078][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 16:32:40,700 [DEBUG][       Thread-261078][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:32:40,700 [DEBUG][       Thread-261078][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:32:40,701 [DEBUG][       Thread-261078][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:32:40,701 [DEBUG][       Thread-261078][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:32:40,701 [DEBUG][       Thread-261078][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 16:32:40,701 [DEBUG][       Thread-261078][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 16:32:40,701 [DEBUG][       Thread-261078][   transport.py][1871] : client lang: <none>
2025-06-13 16:32:40,701 [DEBUG][       Thread-261078][   transport.py][1871] : server lang: <none>
2025-06-13 16:32:40,701 [DEBUG][       Thread-261078][   transport.py][1871] : kex follows: False
2025-06-13 16:32:40,701 [DEBUG][       Thread-261078][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 16:32:40,701 [DEBUG][       Thread-261078][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 16:32:40,701 [DEBUG][       Thread-261078][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 16:32:40,701 [DEBUG][       Thread-261078][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 16:32:40,701 [DEBUG][       Thread-261078][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 16:32:40,701 [DEBUG][       Thread-261078][   transport.py][1871] : Compression: none
2025-06-13 16:32:40,701 [DEBUG][       Thread-261078][   transport.py][1871] : === End of kex handshake ===
2025-06-13 16:32:40,758 [DEBUG][       Thread-261078][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 16:32:40,759 [DEBUG][       Thread-261078][   transport.py][1871] : Switch to new keys ...
2025-06-13 16:32:40,759 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 16:32:40,760 [DEBUG][       Thread-261078][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 16:32:40,761 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 16:32:40,815 [DEBUG][       Thread-261078][   transport.py][1871] : userauth is OK
2025-06-13 16:32:40,816 [DEBUG][       Thread-261078][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 16:32:40,816 [DEBUG][       Thread-261078][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 16:32:40,816 [DEBUG][       Thread-261078][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 16:32:40,816 [DEBUG][       Thread-261078][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 16:32:40,835 [ INFO][       Thread-261078][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 16:32:40,835 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 16:32:40,836 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 16:32:41,817 [DEBUG][       Thread-261078][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 16:32:41,817 [DEBUG][       Thread-261078][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 16:32:41,868 [DEBUG][       Thread-261078][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 16:32:41,868 [DEBUG][       Thread-261078][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 16:32:41,877 [DEBUG][       Thread-261078][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 16:32:41,889 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 16:32:41,889 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 16:32:41,903 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 16:32:41,913 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 16:32:41,913 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 16:32:41,913 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 16:32:41,921 [DEBUG][       Thread-261078][   transport.py][1871] : EOF in transport thread
2025-06-13 16:32:46,917 [DEBUG][Thread-261080 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:32:51,924 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 16:32:51,924 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 16:32:51,924 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 16:32:51,924 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 16:32:52,425 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 16, 32, 41), 16.98, 30.73, 0.0, 17.56, 13.59, 0, 0, 0, 2, 0, 0),)
2025-06-13 16:32:52,425 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 16:32:41
2025-06-13 16:32:52,508 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 16:32:52,512 [DEBUG][       Thread-261081][   transport.py][1871] : starting thread (client mode): 0x86369cf0
2025-06-13 16:32:52,512 [DEBUG][       Thread-261081][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 16:32:52,534 [DEBUG][       Thread-261081][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 16:32:52,534 [ INFO][       Thread-261081][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 16:32:52,537 [DEBUG][       Thread-261081][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 16:32:52,537 [DEBUG][       Thread-261081][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 16:32:52,537 [DEBUG][       Thread-261081][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 16:32:52,537 [DEBUG][       Thread-261081][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:32:52,537 [DEBUG][       Thread-261081][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:32:52,537 [DEBUG][       Thread-261081][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:32:52,537 [DEBUG][       Thread-261081][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:32:52,537 [DEBUG][       Thread-261081][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 16:32:52,537 [DEBUG][       Thread-261081][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 16:32:52,537 [DEBUG][       Thread-261081][   transport.py][1871] : client lang: <none>
2025-06-13 16:32:52,537 [DEBUG][       Thread-261081][   transport.py][1871] : server lang: <none>
2025-06-13 16:32:52,537 [DEBUG][       Thread-261081][   transport.py][1871] : kex follows: False
2025-06-13 16:32:52,537 [DEBUG][       Thread-261081][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 16:32:52,537 [DEBUG][       Thread-261081][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 16:32:52,537 [DEBUG][       Thread-261081][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 16:32:52,537 [DEBUG][       Thread-261081][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 16:32:52,537 [DEBUG][       Thread-261081][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 16:32:52,537 [DEBUG][       Thread-261081][   transport.py][1871] : Compression: none
2025-06-13 16:32:52,537 [DEBUG][       Thread-261081][   transport.py][1871] : === End of kex handshake ===
2025-06-13 16:32:52,550 [DEBUG][       Thread-261081][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 16:32:52,551 [DEBUG][       Thread-261081][   transport.py][1871] : Switch to new keys ...
2025-06-13 16:32:52,551 [DEBUG][       Thread-261081][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 16:32:52,551 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 16:32:52,551 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 16:32:52,551 [DEBUG][       Thread-261081][   transport.py][1871] : userauth is OK
2025-06-13 16:32:52,575 [ INFO][       Thread-261081][   transport.py][1871] : Authentication (password) successful!
2025-06-13 16:32:52,575 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 16:32:53,348 [DEBUG][       Thread-261081][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 16:32:53,348 [DEBUG][       Thread-261081][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 16:32:53,392 [DEBUG][       Thread-261081][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 16:32:53,392 [DEBUG][       Thread-261081][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 16:32:53,394 [DEBUG][       Thread-261081][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 16:32:53,408 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 16:32:53,408 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 16:32:53,409 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 16:32:53,410 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 16:32:53,412 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 16:32:53,413 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 16:32:53,413 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 16:32:53,414 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 16:32:53,414 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.605838 -999.00  +13.40  19.20     35   -1.30 1 1 1 1 1   887    0 14.10 -40.28 ----- 19.5 19.2 49.0 20.6 16.1 -29.8 15.5 -29.8 15.9 -30.1 16.7 -29.0
2025-06-13 16:32:53,414 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 16:32:53,414 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 16:32:53,414 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.605838
2025-06-13 16:32:53,414 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 16:32:53,414 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 16:32:53,414 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 16:32:53,414 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 16:32:53,414 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 16:32:53,414 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T16:32:41', tmtdew=16.98, humidity=30.73, cloud=0.0, wind=17.56, temperature=13.59, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T14:32:24.403', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 16:32:53,415 [DEBUG][       Thread-261081][   transport.py][1871] : EOF in transport thread
2025-06-13 16:32:53,487 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 16:32:53,496 [DEBUG][       Thread-261084][   transport.py][1871] : starting thread (client mode): 0x863be1d0
2025-06-13 16:32:53,496 [DEBUG][       Thread-261084][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 16:32:53,511 [DEBUG][       Thread-261084][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 16:32:53,511 [ INFO][       Thread-261084][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 16:32:53,518 [DEBUG][       Thread-261084][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 16:32:53,518 [DEBUG][       Thread-261084][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 16:32:53,518 [DEBUG][       Thread-261084][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 16:32:53,518 [DEBUG][       Thread-261084][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:32:53,518 [DEBUG][       Thread-261084][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:32:53,518 [DEBUG][       Thread-261084][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:32:53,518 [DEBUG][       Thread-261084][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:32:53,518 [DEBUG][       Thread-261084][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 16:32:53,518 [DEBUG][       Thread-261084][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 16:32:53,518 [DEBUG][       Thread-261084][   transport.py][1871] : client lang: <none>
2025-06-13 16:32:53,518 [DEBUG][       Thread-261084][   transport.py][1871] : server lang: <none>
2025-06-13 16:32:53,518 [DEBUG][       Thread-261084][   transport.py][1871] : kex follows: False
2025-06-13 16:32:53,518 [DEBUG][       Thread-261084][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 16:32:53,518 [DEBUG][       Thread-261084][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 16:32:53,518 [DEBUG][       Thread-261084][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 16:32:53,518 [DEBUG][       Thread-261084][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 16:32:53,518 [DEBUG][       Thread-261084][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 16:32:53,518 [DEBUG][       Thread-261084][   transport.py][1871] : Compression: none
2025-06-13 16:32:53,518 [DEBUG][       Thread-261084][   transport.py][1871] : === End of kex handshake ===
2025-06-13 16:32:53,576 [DEBUG][       Thread-261084][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 16:32:53,576 [DEBUG][       Thread-261084][   transport.py][1871] : Switch to new keys ...
2025-06-13 16:32:53,576 [DEBUG][       Thread-261084][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 16:32:53,576 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 16:32:53,577 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 16:32:53,643 [DEBUG][       Thread-261084][   transport.py][1871] : userauth is OK
2025-06-13 16:32:53,643 [DEBUG][       Thread-261084][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 16:32:53,643 [DEBUG][       Thread-261084][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 16:32:53,643 [DEBUG][       Thread-261084][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 16:32:53,643 [DEBUG][       Thread-261084][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 16:32:53,657 [ INFO][       Thread-261084][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 16:32:53,657 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 16:32:53,657 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 16:32:54,660 [DEBUG][       Thread-261084][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 16:32:54,660 [DEBUG][       Thread-261084][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 16:32:54,711 [DEBUG][       Thread-261084][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 16:32:54,711 [DEBUG][       Thread-261084][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 16:32:54,725 [DEBUG][       Thread-261084][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 16:32:54,733 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 16:32:54,733 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 16:32:54,741 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 16:32:54,752 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 16:32:54,752 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 16:32:54,752 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 16:32:54,761 [DEBUG][       Thread-261084][   transport.py][1871] : EOF in transport thread
2025-06-13 16:32:55,936 [DEBUG][Thread-261086 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:32:59,876 [DEBUG][Thread-261087 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:33:00,929 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:33:00,930 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:33:04,759 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 16:33:04,759 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 16:33:04,759 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 16:33:04,762 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 16:33:04,971 [DEBUG][Thread-261088 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:33:05,248 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 16, 32, 41), 16.98, 30.73, 0.0, 17.56, 13.59, 0, 0, 0, 2, 0, 0),)
2025-06-13 16:33:05,248 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 16:32:41
2025-06-13 16:33:05,330 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 16:33:05,335 [DEBUG][       Thread-261089][   transport.py][1871] : starting thread (client mode): 0x863680a0
2025-06-13 16:33:05,335 [DEBUG][       Thread-261089][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 16:33:05,355 [DEBUG][       Thread-261089][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 16:33:05,355 [ INFO][       Thread-261089][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 16:33:05,358 [DEBUG][       Thread-261089][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 16:33:05,358 [DEBUG][       Thread-261089][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 16:33:05,358 [DEBUG][       Thread-261089][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 16:33:05,358 [DEBUG][       Thread-261089][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:33:05,358 [DEBUG][       Thread-261089][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:33:05,358 [DEBUG][       Thread-261089][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:33:05,358 [DEBUG][       Thread-261089][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:33:05,358 [DEBUG][       Thread-261089][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 16:33:05,358 [DEBUG][       Thread-261089][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 16:33:05,358 [DEBUG][       Thread-261089][   transport.py][1871] : client lang: <none>
2025-06-13 16:33:05,358 [DEBUG][       Thread-261089][   transport.py][1871] : server lang: <none>
2025-06-13 16:33:05,359 [DEBUG][       Thread-261089][   transport.py][1871] : kex follows: False
2025-06-13 16:33:05,359 [DEBUG][       Thread-261089][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 16:33:05,359 [DEBUG][       Thread-261089][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 16:33:05,359 [DEBUG][       Thread-261089][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 16:33:05,359 [DEBUG][       Thread-261089][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 16:33:05,359 [DEBUG][       Thread-261089][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 16:33:05,359 [DEBUG][       Thread-261089][   transport.py][1871] : Compression: none
2025-06-13 16:33:05,359 [DEBUG][       Thread-261089][   transport.py][1871] : === End of kex handshake ===
2025-06-13 16:33:05,374 [DEBUG][       Thread-261089][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 16:33:05,374 [DEBUG][       Thread-261089][   transport.py][1871] : Switch to new keys ...
2025-06-13 16:33:05,375 [DEBUG][       Thread-261089][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 16:33:05,375 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 16:33:05,375 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 16:33:05,376 [DEBUG][       Thread-261089][   transport.py][1871] : userauth is OK
2025-06-13 16:33:05,389 [ INFO][       Thread-261089][   transport.py][1871] : Authentication (password) successful!
2025-06-13 16:33:05,390 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 16:33:06,147 [DEBUG][       Thread-261089][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 16:33:06,148 [DEBUG][       Thread-261089][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 16:33:06,189 [DEBUG][       Thread-261089][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 16:33:06,189 [DEBUG][       Thread-261089][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 16:33:06,193 [DEBUG][       Thread-261089][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 16:33:06,204 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 16:33:06,205 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 16:33:06,207 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 16:33:06,210 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 16:33:06,216 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 16:33:06,218 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 16:33:06,219 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 16:33:06,219 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 16:33:06,219 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.605838 -999.00  +13.40  19.20     35   -1.30 1 1 1 1 1   887    0 14.10 -40.28 ----- 19.5 19.2 49.0 20.6 16.1 -29.8 15.5 -29.8 15.9 -30.1 16.7 -29.0
2025-06-13 16:33:06,219 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 16:33:06,220 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 16:33:06,220 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.605838
2025-06-13 16:33:06,220 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 16:33:06,221 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 16:33:06,221 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 16:33:06,221 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 16:33:06,221 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 16:33:06,221 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T16:32:41', tmtdew=16.98, humidity=30.73, cloud=0.0, wind=17.56, temperature=13.59, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T14:32:24.403', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 16:33:06,222 [DEBUG][       Thread-261089][   transport.py][1871] : EOF in transport thread
2025-06-13 16:33:06,305 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 16:33:06,315 [DEBUG][       Thread-261092][   transport.py][1871] : starting thread (client mode): 0x863a7f40
2025-06-13 16:33:06,316 [DEBUG][       Thread-261092][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 16:33:06,330 [DEBUG][       Thread-261092][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 16:33:06,330 [ INFO][       Thread-261092][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 16:33:06,337 [DEBUG][       Thread-261092][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 16:33:06,338 [DEBUG][       Thread-261092][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 16:33:06,338 [DEBUG][       Thread-261092][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 16:33:06,338 [DEBUG][       Thread-261092][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:33:06,338 [DEBUG][       Thread-261092][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:33:06,338 [DEBUG][       Thread-261092][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:33:06,338 [DEBUG][       Thread-261092][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:33:06,338 [DEBUG][       Thread-261092][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 16:33:06,338 [DEBUG][       Thread-261092][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 16:33:06,338 [DEBUG][       Thread-261092][   transport.py][1871] : client lang: <none>
2025-06-13 16:33:06,338 [DEBUG][       Thread-261092][   transport.py][1871] : server lang: <none>
2025-06-13 16:33:06,338 [DEBUG][       Thread-261092][   transport.py][1871] : kex follows: False
2025-06-13 16:33:06,338 [DEBUG][       Thread-261092][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 16:33:06,338 [DEBUG][       Thread-261092][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 16:33:06,338 [DEBUG][       Thread-261092][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 16:33:06,338 [DEBUG][       Thread-261092][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 16:33:06,338 [DEBUG][       Thread-261092][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 16:33:06,338 [DEBUG][       Thread-261092][   transport.py][1871] : Compression: none
2025-06-13 16:33:06,338 [DEBUG][       Thread-261092][   transport.py][1871] : === End of kex handshake ===
2025-06-13 16:33:06,395 [DEBUG][       Thread-261092][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 16:33:06,395 [DEBUG][       Thread-261092][   transport.py][1871] : Switch to new keys ...
2025-06-13 16:33:06,396 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 16:33:06,397 [DEBUG][       Thread-261092][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 16:33:06,397 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 16:33:06,450 [DEBUG][       Thread-261092][   transport.py][1871] : userauth is OK
2025-06-13 16:33:06,450 [DEBUG][       Thread-261092][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 16:33:06,451 [DEBUG][       Thread-261092][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 16:33:06,451 [DEBUG][       Thread-261092][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 16:33:06,451 [DEBUG][       Thread-261092][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 16:33:06,470 [ INFO][       Thread-261092][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 16:33:06,470 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 16:33:06,471 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 16:33:07,468 [DEBUG][       Thread-261092][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 16:33:07,468 [DEBUG][       Thread-261092][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 16:33:07,516 [DEBUG][       Thread-261092][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 16:33:07,516 [DEBUG][       Thread-261092][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 16:33:07,525 [DEBUG][       Thread-261092][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 16:33:07,534 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 16:33:07,534 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 16:33:07,551 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 16:33:07,560 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 16:33:07,560 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 16:33:07,561 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 16:33:07,569 [DEBUG][       Thread-261092][   transport.py][1871] : EOF in transport thread
2025-06-13 16:33:13,991 [DEBUG][Thread-261094 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:33:17,569 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 16:33:17,570 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 16:33:17,570 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 16:33:17,572 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 16:33:18,037 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 16, 33, 13), 16.87, 30.82, 0.0, 20.54, 13.59, 0, 0, 0, 2, 0, 0),)
2025-06-13 16:33:18,037 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 16:33:13
2025-06-13 16:33:18,116 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 16:33:18,120 [DEBUG][       Thread-261095][   transport.py][1871] : starting thread (client mode): 0x863526e0
2025-06-13 16:33:18,120 [DEBUG][       Thread-261095][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 16:33:18,140 [DEBUG][       Thread-261095][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 16:33:18,140 [ INFO][       Thread-261095][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 16:33:18,144 [DEBUG][       Thread-261095][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 16:33:18,144 [DEBUG][       Thread-261095][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 16:33:18,144 [DEBUG][       Thread-261095][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 16:33:18,144 [DEBUG][       Thread-261095][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:33:18,144 [DEBUG][       Thread-261095][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:33:18,144 [DEBUG][       Thread-261095][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:33:18,144 [DEBUG][       Thread-261095][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:33:18,144 [DEBUG][       Thread-261095][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 16:33:18,144 [DEBUG][       Thread-261095][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 16:33:18,144 [DEBUG][       Thread-261095][   transport.py][1871] : client lang: <none>
2025-06-13 16:33:18,144 [DEBUG][       Thread-261095][   transport.py][1871] : server lang: <none>
2025-06-13 16:33:18,144 [DEBUG][       Thread-261095][   transport.py][1871] : kex follows: False
2025-06-13 16:33:18,144 [DEBUG][       Thread-261095][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 16:33:18,144 [DEBUG][       Thread-261095][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 16:33:18,144 [DEBUG][       Thread-261095][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 16:33:18,144 [DEBUG][       Thread-261095][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 16:33:18,144 [DEBUG][       Thread-261095][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 16:33:18,144 [DEBUG][       Thread-261095][   transport.py][1871] : Compression: none
2025-06-13 16:33:18,144 [DEBUG][       Thread-261095][   transport.py][1871] : === End of kex handshake ===
2025-06-13 16:33:18,162 [DEBUG][       Thread-261095][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 16:33:18,162 [DEBUG][       Thread-261095][   transport.py][1871] : Switch to new keys ...
2025-06-13 16:33:18,163 [DEBUG][       Thread-261095][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 16:33:18,163 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 16:33:18,164 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 16:33:18,164 [DEBUG][       Thread-261095][   transport.py][1871] : userauth is OK
2025-06-13 16:33:18,178 [ INFO][       Thread-261095][   transport.py][1871] : Authentication (password) successful!
2025-06-13 16:33:18,179 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 16:33:18,437 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:33:18,438 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:33:18,758 [DEBUG][       Thread-261095][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 16:33:18,759 [DEBUG][       Thread-261095][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 16:33:18,801 [DEBUG][       Thread-261095][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 16:33:18,801 [DEBUG][       Thread-261095][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 16:33:18,804 [DEBUG][       Thread-261095][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 16:33:18,816 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 16:33:18,816 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 16:33:18,818 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 16:33:18,820 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 16:33:18,826 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 16:33:18,828 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 16:33:18,828 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 16:33:18,829 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 16:33:18,829 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.606185 -999.00  +13.40  23.88     36   -1.20 1 1 1 1 1   887    0 13.76 -42.51 ----- 23.1 23.9 50.9 28.0 16.0 -29.8 15.5 -29.7 15.9 -29.3 16.6 -29.4
2025-06-13 16:33:18,829 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 16:33:18,829 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 16:33:18,830 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.606185
2025-06-13 16:33:18,830 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 16:33:18,831 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 16:33:18,831 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 16:33:18,831 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 16:33:18,831 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 16:33:18,831 [DEBUG][       Thread-261095][   transport.py][1871] : EOF in transport thread
2025-06-13 16:33:18,831 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T16:33:13', tmtdew=16.87, humidity=30.82, cloud=0.0, wind=20.54, temperature=13.59, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T14:32:54.384', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 16:33:18,909 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 16:33:18,921 [DEBUG][       Thread-261098][   transport.py][1871] : starting thread (client mode): 0x863ca980
2025-06-13 16:33:18,921 [DEBUG][       Thread-261098][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 16:33:18,940 [DEBUG][       Thread-261098][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 16:33:18,940 [ INFO][       Thread-261098][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 16:33:18,950 [DEBUG][       Thread-261098][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 16:33:18,950 [DEBUG][       Thread-261098][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 16:33:18,950 [DEBUG][       Thread-261098][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 16:33:18,950 [DEBUG][       Thread-261098][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:33:18,950 [DEBUG][       Thread-261098][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:33:18,950 [DEBUG][       Thread-261098][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:33:18,951 [DEBUG][       Thread-261098][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:33:18,951 [DEBUG][       Thread-261098][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 16:33:18,951 [DEBUG][       Thread-261098][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 16:33:18,951 [DEBUG][       Thread-261098][   transport.py][1871] : client lang: <none>
2025-06-13 16:33:18,951 [DEBUG][       Thread-261098][   transport.py][1871] : server lang: <none>
2025-06-13 16:33:18,951 [DEBUG][       Thread-261098][   transport.py][1871] : kex follows: False
2025-06-13 16:33:18,951 [DEBUG][       Thread-261098][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 16:33:18,951 [DEBUG][       Thread-261098][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 16:33:18,951 [DEBUG][       Thread-261098][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 16:33:18,951 [DEBUG][       Thread-261098][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 16:33:18,951 [DEBUG][       Thread-261098][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 16:33:18,951 [DEBUG][       Thread-261098][   transport.py][1871] : Compression: none
2025-06-13 16:33:18,951 [DEBUG][       Thread-261098][   transport.py][1871] : === End of kex handshake ===
2025-06-13 16:33:19,006 [DEBUG][       Thread-261098][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 16:33:19,007 [DEBUG][       Thread-261098][   transport.py][1871] : Switch to new keys ...
2025-06-13 16:33:19,008 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 16:33:19,008 [DEBUG][       Thread-261098][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 16:33:19,009 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 16:33:19,062 [DEBUG][       Thread-261098][   transport.py][1871] : userauth is OK
2025-06-13 16:33:19,063 [DEBUG][       Thread-261098][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 16:33:19,063 [DEBUG][       Thread-261098][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 16:33:19,063 [DEBUG][       Thread-261098][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 16:33:19,063 [DEBUG][       Thread-261098][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 16:33:19,082 [ INFO][       Thread-261098][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 16:33:19,082 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 16:33:19,083 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 16:33:20,062 [DEBUG][       Thread-261098][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 16:33:20,062 [DEBUG][       Thread-261098][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 16:33:20,111 [DEBUG][       Thread-261098][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 16:33:20,112 [DEBUG][       Thread-261098][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 16:33:20,122 [DEBUG][       Thread-261098][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 16:33:20,131 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 16:33:20,131 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 16:33:20,140 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 16:33:20,149 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 16:33:20,150 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 16:33:20,150 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 16:33:20,162 [DEBUG][       Thread-261098][   transport.py][1871] : EOF in transport thread
2025-06-13 16:33:23,012 [DEBUG][Thread-261100 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:33:23,633 [DEBUG][Thread-261101 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:33:30,160 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 16:33:30,160 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 16:33:30,160 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 16:33:30,160 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 16:33:30,659 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 16, 33, 13), 16.87, 30.82, 0.0, 20.54, 13.59, 0, 0, 0, 2, 0, 0),)
2025-06-13 16:33:30,659 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 16:33:13
2025-06-13 16:33:30,741 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 16:33:30,745 [DEBUG][       Thread-261102][   transport.py][1871] : starting thread (client mode): 0x867fc460
2025-06-13 16:33:30,745 [DEBUG][       Thread-261102][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 16:33:30,768 [DEBUG][       Thread-261102][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 16:33:30,768 [ INFO][       Thread-261102][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 16:33:30,769 [DEBUG][       Thread-261102][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 16:33:30,769 [DEBUG][       Thread-261102][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 16:33:30,769 [DEBUG][       Thread-261102][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 16:33:30,769 [DEBUG][       Thread-261102][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:33:30,769 [DEBUG][       Thread-261102][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:33:30,769 [DEBUG][       Thread-261102][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:33:30,769 [DEBUG][       Thread-261102][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:33:30,769 [DEBUG][       Thread-261102][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 16:33:30,769 [DEBUG][       Thread-261102][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 16:33:30,769 [DEBUG][       Thread-261102][   transport.py][1871] : client lang: <none>
2025-06-13 16:33:30,769 [DEBUG][       Thread-261102][   transport.py][1871] : server lang: <none>
2025-06-13 16:33:30,769 [DEBUG][       Thread-261102][   transport.py][1871] : kex follows: False
2025-06-13 16:33:30,769 [DEBUG][       Thread-261102][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 16:33:30,769 [DEBUG][       Thread-261102][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 16:33:30,769 [DEBUG][       Thread-261102][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 16:33:30,769 [DEBUG][       Thread-261102][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 16:33:30,769 [DEBUG][       Thread-261102][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 16:33:30,769 [DEBUG][       Thread-261102][   transport.py][1871] : Compression: none
2025-06-13 16:33:30,769 [DEBUG][       Thread-261102][   transport.py][1871] : === End of kex handshake ===
2025-06-13 16:33:30,777 [DEBUG][       Thread-261102][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 16:33:30,777 [DEBUG][       Thread-261102][   transport.py][1871] : Switch to new keys ...
2025-06-13 16:33:30,777 [DEBUG][       Thread-261102][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 16:33:30,777 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 16:33:30,777 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 16:33:30,778 [DEBUG][       Thread-261102][   transport.py][1871] : userauth is OK
2025-06-13 16:33:30,801 [ INFO][       Thread-261102][   transport.py][1871] : Authentication (password) successful!
2025-06-13 16:33:30,802 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 16:33:31,501 [DEBUG][       Thread-261102][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 16:33:31,501 [DEBUG][       Thread-261102][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 16:33:31,544 [DEBUG][       Thread-261102][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 16:33:31,544 [DEBUG][       Thread-261102][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 16:33:31,547 [DEBUG][       Thread-261102][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 16:33:31,568 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 16:33:31,568 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 16:33:31,569 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 16:33:31,570 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 16:33:31,572 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 16:33:31,573 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 16:33:31,573 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 16:33:31,573 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 16:33:31,573 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.606185 -999.00  +13.40  23.88     36   -1.20 1 1 1 1 1   887    0 13.76 -42.51 ----- 23.1 23.9 50.9 28.0 16.0 -29.8 15.5 -29.7 15.9 -29.3 16.6 -29.4
2025-06-13 16:33:31,573 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 16:33:31,573 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 16:33:31,573 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.606185
2025-06-13 16:33:31,573 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 16:33:31,573 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 16:33:31,573 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 16:33:31,573 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 16:33:31,573 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 16:33:31,574 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T16:33:13', tmtdew=16.87, humidity=30.82, cloud=0.0, wind=20.54, temperature=13.59, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T14:32:54.384', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 16:33:31,574 [DEBUG][       Thread-261102][   transport.py][1871] : EOF in transport thread
2025-06-13 16:33:31,648 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 16:33:31,657 [DEBUG][       Thread-261105][   transport.py][1871] : starting thread (client mode): 0x86893a60
2025-06-13 16:33:31,657 [DEBUG][       Thread-261105][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 16:33:31,672 [DEBUG][       Thread-261105][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 16:33:31,672 [ INFO][       Thread-261105][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 16:33:31,680 [DEBUG][       Thread-261105][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 16:33:31,680 [DEBUG][       Thread-261105][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 16:33:31,680 [DEBUG][       Thread-261105][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 16:33:31,680 [DEBUG][       Thread-261105][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:33:31,680 [DEBUG][       Thread-261105][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:33:31,680 [DEBUG][       Thread-261105][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:33:31,680 [DEBUG][       Thread-261105][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:33:31,680 [DEBUG][       Thread-261105][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 16:33:31,680 [DEBUG][       Thread-261105][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 16:33:31,680 [DEBUG][       Thread-261105][   transport.py][1871] : client lang: <none>
2025-06-13 16:33:31,680 [DEBUG][       Thread-261105][   transport.py][1871] : server lang: <none>
2025-06-13 16:33:31,680 [DEBUG][       Thread-261105][   transport.py][1871] : kex follows: False
2025-06-13 16:33:31,680 [DEBUG][       Thread-261105][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 16:33:31,680 [DEBUG][       Thread-261105][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 16:33:31,680 [DEBUG][       Thread-261105][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 16:33:31,680 [DEBUG][       Thread-261105][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 16:33:31,680 [DEBUG][       Thread-261105][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 16:33:31,680 [DEBUG][       Thread-261105][   transport.py][1871] : Compression: none
2025-06-13 16:33:31,680 [DEBUG][       Thread-261105][   transport.py][1871] : === End of kex handshake ===
2025-06-13 16:33:31,739 [DEBUG][       Thread-261105][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 16:33:31,739 [DEBUG][       Thread-261105][   transport.py][1871] : Switch to new keys ...
2025-06-13 16:33:31,740 [DEBUG][       Thread-261105][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 16:33:31,740 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 16:33:31,740 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 16:33:31,798 [DEBUG][       Thread-261105][   transport.py][1871] : userauth is OK
2025-06-13 16:33:31,798 [DEBUG][       Thread-261105][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 16:33:31,798 [DEBUG][       Thread-261105][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 16:33:31,798 [DEBUG][       Thread-261105][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 16:33:31,798 [DEBUG][       Thread-261105][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 16:33:31,812 [ INFO][       Thread-261105][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 16:33:31,812 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 16:33:31,812 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 16:33:32,048 [DEBUG][Thread-261107 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:33:32,775 [DEBUG][       Thread-261105][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 16:33:32,775 [DEBUG][       Thread-261105][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 16:33:32,823 [DEBUG][       Thread-261105][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 16:33:32,823 [DEBUG][       Thread-261105][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 16:33:32,832 [DEBUG][       Thread-261105][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 16:33:32,840 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 16:33:32,840 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 16:33:32,848 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 16:33:32,856 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 16:33:32,856 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 16:33:32,856 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 16:33:32,864 [DEBUG][       Thread-261105][   transport.py][1871] : EOF in transport thread
2025-06-13 16:33:41,069 [DEBUG][Thread-261108 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:33:42,866 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 16:33:42,866 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 16:33:42,867 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 16:33:42,870 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 16:33:43,335 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 16, 33, 13), 16.87, 30.82, 0.0, 20.54, 13.59, 0, 0, 0, 2, 0, 0),)
2025-06-13 16:33:43,335 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 16:33:13
2025-06-13 16:33:43,414 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 16:33:43,420 [DEBUG][       Thread-261109][   transport.py][1871] : starting thread (client mode): 0x86353400
2025-06-13 16:33:43,420 [DEBUG][       Thread-261109][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 16:33:43,442 [DEBUG][       Thread-261109][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 16:33:43,442 [ INFO][       Thread-261109][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 16:33:43,444 [DEBUG][       Thread-261109][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 16:33:43,444 [DEBUG][       Thread-261109][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 16:33:43,444 [DEBUG][       Thread-261109][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 16:33:43,444 [DEBUG][       Thread-261109][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:33:43,444 [DEBUG][       Thread-261109][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:33:43,444 [DEBUG][       Thread-261109][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:33:43,444 [DEBUG][       Thread-261109][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:33:43,444 [DEBUG][       Thread-261109][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 16:33:43,444 [DEBUG][       Thread-261109][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 16:33:43,445 [DEBUG][       Thread-261109][   transport.py][1871] : client lang: <none>
2025-06-13 16:33:43,445 [DEBUG][       Thread-261109][   transport.py][1871] : server lang: <none>
2025-06-13 16:33:43,445 [DEBUG][       Thread-261109][   transport.py][1871] : kex follows: False
2025-06-13 16:33:43,445 [DEBUG][       Thread-261109][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 16:33:43,445 [DEBUG][       Thread-261109][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 16:33:43,445 [DEBUG][       Thread-261109][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 16:33:43,445 [DEBUG][       Thread-261109][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 16:33:43,445 [DEBUG][       Thread-261109][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 16:33:43,445 [DEBUG][       Thread-261109][   transport.py][1871] : Compression: none
2025-06-13 16:33:43,445 [DEBUG][       Thread-261109][   transport.py][1871] : === End of kex handshake ===
2025-06-13 16:33:43,463 [DEBUG][       Thread-261109][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 16:33:43,463 [DEBUG][       Thread-261109][   transport.py][1871] : Switch to new keys ...
2025-06-13 16:33:43,464 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 16:33:43,464 [DEBUG][       Thread-261109][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 16:33:43,465 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 16:33:43,466 [DEBUG][       Thread-261109][   transport.py][1871] : userauth is OK
2025-06-13 16:33:43,491 [ INFO][       Thread-261109][   transport.py][1871] : Authentication (password) successful!
2025-06-13 16:33:43,492 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 16:33:44,118 [DEBUG][       Thread-261109][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 16:33:44,118 [DEBUG][       Thread-261109][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 16:33:44,161 [DEBUG][       Thread-261109][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 16:33:44,161 [DEBUG][       Thread-261109][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 16:33:44,164 [DEBUG][       Thread-261109][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 16:33:44,176 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 16:33:44,176 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 16:33:44,178 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 16:33:44,180 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 16:33:44,186 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 16:33:44,188 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 16:33:44,189 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 16:33:44,190 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 16:33:44,190 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.606532 -999.00  +13.30  21.79     36   -1.30 1 1 1 1 1   887    0 14.13 -37.00 ----- 24.8 21.8 46.5 25.8 15.9 -30.0 15.4 -29.6 15.8 -30.3 16.6 -29.2
2025-06-13 16:33:44,190 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 16:33:44,190 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 16:33:44,190 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.606532
2025-06-13 16:33:44,191 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 16:33:44,191 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 16:33:44,191 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 16:33:44,191 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 16:33:44,191 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 16:33:44,192 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T16:33:13', tmtdew=16.87, humidity=30.82, cloud=0.0, wind=20.54, temperature=13.59, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T14:33:24.365', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 16:33:44,193 [DEBUG][       Thread-261109][   transport.py][1871] : EOF in transport thread
2025-06-13 16:33:44,279 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 16:33:44,292 [DEBUG][       Thread-261112][   transport.py][1871] : starting thread (client mode): 0x86893fd0
2025-06-13 16:33:44,292 [DEBUG][       Thread-261112][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 16:33:44,307 [DEBUG][       Thread-261112][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 16:33:44,308 [ INFO][       Thread-261112][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 16:33:44,315 [DEBUG][       Thread-261112][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 16:33:44,315 [DEBUG][       Thread-261112][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 16:33:44,316 [DEBUG][       Thread-261112][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 16:33:44,316 [DEBUG][       Thread-261112][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:33:44,316 [DEBUG][       Thread-261112][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:33:44,316 [DEBUG][       Thread-261112][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:33:44,316 [DEBUG][       Thread-261112][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:33:44,316 [DEBUG][       Thread-261112][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 16:33:44,316 [DEBUG][       Thread-261112][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 16:33:44,316 [DEBUG][       Thread-261112][   transport.py][1871] : client lang: <none>
2025-06-13 16:33:44,316 [DEBUG][       Thread-261112][   transport.py][1871] : server lang: <none>
2025-06-13 16:33:44,316 [DEBUG][       Thread-261112][   transport.py][1871] : kex follows: False
2025-06-13 16:33:44,316 [DEBUG][       Thread-261112][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 16:33:44,316 [DEBUG][       Thread-261112][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 16:33:44,316 [DEBUG][       Thread-261112][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 16:33:44,316 [DEBUG][       Thread-261112][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 16:33:44,316 [DEBUG][       Thread-261112][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 16:33:44,316 [DEBUG][       Thread-261112][   transport.py][1871] : Compression: none
2025-06-13 16:33:44,316 [DEBUG][       Thread-261112][   transport.py][1871] : === End of kex handshake ===
2025-06-13 16:33:44,374 [DEBUG][       Thread-261112][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 16:33:44,375 [DEBUG][       Thread-261112][   transport.py][1871] : Switch to new keys ...
2025-06-13 16:33:44,376 [DEBUG][       Thread-261112][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 16:33:44,376 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 16:33:44,377 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 16:33:44,430 [DEBUG][       Thread-261112][   transport.py][1871] : userauth is OK
2025-06-13 16:33:44,431 [DEBUG][       Thread-261112][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 16:33:44,431 [DEBUG][       Thread-261112][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 16:33:44,431 [DEBUG][       Thread-261112][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 16:33:44,431 [DEBUG][       Thread-261112][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 16:33:44,450 [ INFO][       Thread-261112][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 16:33:44,451 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 16:33:44,451 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 16:33:45,477 [DEBUG][       Thread-261112][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 16:33:45,477 [DEBUG][       Thread-261112][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 16:33:45,528 [DEBUG][       Thread-261112][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 16:33:45,528 [DEBUG][       Thread-261112][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 16:33:45,541 [DEBUG][       Thread-261112][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 16:33:45,551 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 16:33:45,551 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 16:33:45,560 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 16:33:45,569 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 16:33:45,570 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 16:33:45,570 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 16:33:45,578 [DEBUG][       Thread-261112][   transport.py][1871] : EOF in transport thread
2025-06-13 16:33:50,090 [DEBUG][Thread-261114 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:33:55,573 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 16:33:55,573 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 16:33:55,573 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 16:33:55,576 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 16:33:56,040 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 16, 33, 45), 16.89, 30.76, 0.0, 19.0, 13.53, 0, 0, 0, 2, 0, 0),)
2025-06-13 16:33:56,040 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 16:33:45
2025-06-13 16:33:56,119 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 16:33:56,124 [DEBUG][       Thread-261115][   transport.py][1871] : starting thread (client mode): 0x867ff1c0
2025-06-13 16:33:56,124 [DEBUG][       Thread-261115][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 16:33:56,145 [DEBUG][       Thread-261115][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 16:33:56,145 [ INFO][       Thread-261115][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 16:33:56,147 [DEBUG][       Thread-261115][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 16:33:56,147 [DEBUG][       Thread-261115][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 16:33:56,147 [DEBUG][       Thread-261115][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 16:33:56,147 [DEBUG][       Thread-261115][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:33:56,147 [DEBUG][       Thread-261115][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:33:56,147 [DEBUG][       Thread-261115][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:33:56,147 [DEBUG][       Thread-261115][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:33:56,147 [DEBUG][       Thread-261115][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 16:33:56,147 [DEBUG][       Thread-261115][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 16:33:56,147 [DEBUG][       Thread-261115][   transport.py][1871] : client lang: <none>
2025-06-13 16:33:56,147 [DEBUG][       Thread-261115][   transport.py][1871] : server lang: <none>
2025-06-13 16:33:56,147 [DEBUG][       Thread-261115][   transport.py][1871] : kex follows: False
2025-06-13 16:33:56,147 [DEBUG][       Thread-261115][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 16:33:56,147 [DEBUG][       Thread-261115][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 16:33:56,147 [DEBUG][       Thread-261115][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 16:33:56,147 [DEBUG][       Thread-261115][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 16:33:56,148 [DEBUG][       Thread-261115][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 16:33:56,148 [DEBUG][       Thread-261115][   transport.py][1871] : Compression: none
2025-06-13 16:33:56,148 [DEBUG][       Thread-261115][   transport.py][1871] : === End of kex handshake ===
2025-06-13 16:33:56,164 [DEBUG][       Thread-261115][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 16:33:56,165 [DEBUG][       Thread-261115][   transport.py][1871] : Switch to new keys ...
2025-06-13 16:33:56,165 [DEBUG][       Thread-261115][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 16:33:56,166 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 16:33:56,166 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 16:33:56,167 [DEBUG][       Thread-261115][   transport.py][1871] : userauth is OK
2025-06-13 16:33:56,192 [ INFO][       Thread-261115][   transport.py][1871] : Authentication (password) successful!
2025-06-13 16:33:56,193 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 16:33:56,797 [DEBUG][       Thread-261115][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 16:33:56,797 [DEBUG][       Thread-261115][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 16:33:56,841 [DEBUG][       Thread-261115][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 16:33:56,841 [DEBUG][       Thread-261115][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 16:33:56,843 [DEBUG][       Thread-261115][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 16:33:56,856 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 16:33:56,856 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 16:33:56,859 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 16:33:56,863 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 16:33:56,872 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 16:33:56,874 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 16:33:56,874 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 16:33:56,875 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 16:33:56,875 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.606532 -999.00  +13.30  21.79     36   -1.30 1 1 1 1 1   887    0 14.13 -37.00 ----- 24.8 21.8 46.5 25.8 15.9 -30.0 15.4 -29.6 15.8 -30.3 16.6 -29.2
2025-06-13 16:33:56,875 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 16:33:56,875 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 16:33:56,876 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.606532
2025-06-13 16:33:56,876 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 16:33:56,877 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 16:33:56,877 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 16:33:56,877 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 16:33:56,877 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 16:33:56,877 [DEBUG][       Thread-261115][   transport.py][1871] : EOF in transport thread
2025-06-13 16:33:56,877 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T16:33:45', tmtdew=16.89, humidity=30.76, cloud=0.0, wind=19.0, temperature=13.53, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T14:33:24.365', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 16:33:56,961 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 16:33:56,971 [DEBUG][       Thread-261118][   transport.py][1871] : starting thread (client mode): 0x863ca620
2025-06-13 16:33:56,971 [DEBUG][       Thread-261118][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 16:33:56,986 [DEBUG][       Thread-261118][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 16:33:56,986 [ INFO][       Thread-261118][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 16:33:56,994 [DEBUG][       Thread-261118][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 16:33:56,995 [DEBUG][       Thread-261118][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 16:33:56,995 [DEBUG][       Thread-261118][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 16:33:56,995 [DEBUG][       Thread-261118][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:33:56,995 [DEBUG][       Thread-261118][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:33:56,995 [DEBUG][       Thread-261118][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:33:56,995 [DEBUG][       Thread-261118][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:33:56,995 [DEBUG][       Thread-261118][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 16:33:56,995 [DEBUG][       Thread-261118][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 16:33:56,995 [DEBUG][       Thread-261118][   transport.py][1871] : client lang: <none>
2025-06-13 16:33:56,995 [DEBUG][       Thread-261118][   transport.py][1871] : server lang: <none>
2025-06-13 16:33:56,995 [DEBUG][       Thread-261118][   transport.py][1871] : kex follows: False
2025-06-13 16:33:56,995 [DEBUG][       Thread-261118][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 16:33:56,995 [DEBUG][       Thread-261118][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 16:33:56,995 [DEBUG][       Thread-261118][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 16:33:56,995 [DEBUG][       Thread-261118][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 16:33:56,995 [DEBUG][       Thread-261118][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 16:33:56,995 [DEBUG][       Thread-261118][   transport.py][1871] : Compression: none
2025-06-13 16:33:56,995 [DEBUG][       Thread-261118][   transport.py][1871] : === End of kex handshake ===
2025-06-13 16:33:57,050 [DEBUG][       Thread-261118][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 16:33:57,051 [DEBUG][       Thread-261118][   transport.py][1871] : Switch to new keys ...
2025-06-13 16:33:57,051 [DEBUG][       Thread-261118][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 16:33:57,052 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 16:33:57,052 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 16:33:57,106 [DEBUG][       Thread-261118][   transport.py][1871] : userauth is OK
2025-06-13 16:33:57,107 [DEBUG][       Thread-261118][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 16:33:57,107 [DEBUG][       Thread-261118][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 16:33:57,107 [DEBUG][       Thread-261118][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 16:33:57,107 [DEBUG][       Thread-261118][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 16:33:57,126 [ INFO][       Thread-261118][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 16:33:57,126 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 16:33:57,127 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 16:33:58,114 [DEBUG][       Thread-261118][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 16:33:58,114 [DEBUG][       Thread-261118][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 16:33:58,164 [DEBUG][       Thread-261118][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 16:33:58,164 [DEBUG][       Thread-261118][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 16:33:58,173 [DEBUG][       Thread-261118][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 16:33:58,182 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 16:33:58,182 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 16:33:58,192 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 16:33:58,201 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 16:33:58,201 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 16:33:58,202 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 16:33:58,210 [DEBUG][       Thread-261118][   transport.py][1871] : EOF in transport thread
2025-06-13 16:33:59,112 [DEBUG][Thread-261120 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:34:00,941 [DEBUG][Thread-261121 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:34:01,984 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:34:01,984 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:34:08,144 [DEBUG][Thread-261122 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:34:08,212 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 16:34:08,212 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 16:34:08,212 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 16:34:08,212 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 16:34:08,693 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 16, 33, 45), 16.89, 30.76, 0.0, 19.0, 13.53, 0, 0, 0, 2, 0, 0),)
2025-06-13 16:34:08,693 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 16:33:45
2025-06-13 16:34:08,774 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 16:34:08,858 [DEBUG][       Thread-261123][   transport.py][1871] : starting thread (client mode): 0x86893df0
2025-06-13 16:34:08,859 [DEBUG][       Thread-261123][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 16:34:08,875 [DEBUG][       Thread-261123][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 16:34:08,875 [ INFO][       Thread-261123][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 16:34:08,878 [DEBUG][       Thread-261123][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 16:34:08,878 [DEBUG][       Thread-261123][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 16:34:08,878 [DEBUG][       Thread-261123][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 16:34:08,878 [DEBUG][       Thread-261123][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:34:08,878 [DEBUG][       Thread-261123][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:34:08,878 [DEBUG][       Thread-261123][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:34:08,878 [DEBUG][       Thread-261123][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:34:08,878 [DEBUG][       Thread-261123][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 16:34:08,878 [DEBUG][       Thread-261123][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 16:34:08,878 [DEBUG][       Thread-261123][   transport.py][1871] : client lang: <none>
2025-06-13 16:34:08,878 [DEBUG][       Thread-261123][   transport.py][1871] : server lang: <none>
2025-06-13 16:34:08,878 [DEBUG][       Thread-261123][   transport.py][1871] : kex follows: False
2025-06-13 16:34:08,878 [DEBUG][       Thread-261123][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 16:34:08,878 [DEBUG][       Thread-261123][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 16:34:08,878 [DEBUG][       Thread-261123][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 16:34:08,878 [DEBUG][       Thread-261123][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 16:34:08,878 [DEBUG][       Thread-261123][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 16:34:08,878 [DEBUG][       Thread-261123][   transport.py][1871] : Compression: none
2025-06-13 16:34:08,878 [DEBUG][       Thread-261123][   transport.py][1871] : === End of kex handshake ===
2025-06-13 16:34:08,892 [DEBUG][       Thread-261123][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 16:34:08,892 [DEBUG][       Thread-261123][   transport.py][1871] : Switch to new keys ...
2025-06-13 16:34:08,892 [DEBUG][       Thread-261123][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 16:34:08,892 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 16:34:08,892 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 16:34:08,893 [DEBUG][       Thread-261123][   transport.py][1871] : userauth is OK
2025-06-13 16:34:08,917 [ INFO][       Thread-261123][   transport.py][1871] : Authentication (password) successful!
2025-06-13 16:34:08,917 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 16:34:09,572 [DEBUG][       Thread-261123][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 16:34:09,572 [DEBUG][       Thread-261123][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 16:34:09,612 [DEBUG][       Thread-261123][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 16:34:09,612 [DEBUG][       Thread-261123][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 16:34:09,614 [DEBUG][       Thread-261123][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 16:34:09,619 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 16:34:09,619 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 16:34:09,620 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 16:34:09,621 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 16:34:09,623 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 16:34:09,624 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 16:34:09,624 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 16:34:09,624 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 16:34:09,624 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.606532 -999.00  +13.30  21.79     36   -1.30 1 1 1 1 1   887    0 14.13 -37.00 ----- 24.8 21.8 46.5 25.8 15.9 -30.0 15.4 -29.6 15.8 -30.3 16.6 -29.2
2025-06-13 16:34:09,624 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 16:34:09,624 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 16:34:09,624 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.606532
2025-06-13 16:34:09,625 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 16:34:09,625 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 16:34:09,625 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 16:34:09,625 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 16:34:09,625 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 16:34:09,625 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T16:33:45', tmtdew=16.89, humidity=30.76, cloud=0.0, wind=19.0, temperature=13.53, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T14:33:24.365', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 16:34:09,625 [DEBUG][       Thread-261123][   transport.py][1871] : EOF in transport thread
2025-06-13 16:34:09,701 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 16:34:09,714 [DEBUG][       Thread-261126][   transport.py][1871] : starting thread (client mode): 0x863be1d0
2025-06-13 16:34:09,714 [DEBUG][       Thread-261126][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 16:34:09,730 [DEBUG][       Thread-261126][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 16:34:09,730 [ INFO][       Thread-261126][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 16:34:09,738 [DEBUG][       Thread-261126][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 16:34:09,738 [DEBUG][       Thread-261126][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 16:34:09,738 [DEBUG][       Thread-261126][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 16:34:09,738 [DEBUG][       Thread-261126][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:34:09,738 [DEBUG][       Thread-261126][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:34:09,738 [DEBUG][       Thread-261126][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:34:09,738 [DEBUG][       Thread-261126][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:34:09,738 [DEBUG][       Thread-261126][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 16:34:09,738 [DEBUG][       Thread-261126][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 16:34:09,738 [DEBUG][       Thread-261126][   transport.py][1871] : client lang: <none>
2025-06-13 16:34:09,738 [DEBUG][       Thread-261126][   transport.py][1871] : server lang: <none>
2025-06-13 16:34:09,738 [DEBUG][       Thread-261126][   transport.py][1871] : kex follows: False
2025-06-13 16:34:09,738 [DEBUG][       Thread-261126][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 16:34:09,738 [DEBUG][       Thread-261126][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 16:34:09,738 [DEBUG][       Thread-261126][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 16:34:09,738 [DEBUG][       Thread-261126][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 16:34:09,738 [DEBUG][       Thread-261126][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 16:34:09,738 [DEBUG][       Thread-261126][   transport.py][1871] : Compression: none
2025-06-13 16:34:09,738 [DEBUG][       Thread-261126][   transport.py][1871] : === End of kex handshake ===
2025-06-13 16:34:09,752 [DEBUG][       Thread-261126][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 16:34:09,753 [DEBUG][       Thread-261126][   transport.py][1871] : Switch to new keys ...
2025-06-13 16:34:09,753 [DEBUG][       Thread-261126][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 16:34:09,753 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 16:34:09,753 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 16:34:09,809 [DEBUG][       Thread-261126][   transport.py][1871] : userauth is OK
2025-06-13 16:34:09,810 [DEBUG][       Thread-261126][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 16:34:09,810 [DEBUG][       Thread-261126][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 16:34:09,810 [DEBUG][       Thread-261126][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 16:34:09,810 [DEBUG][       Thread-261126][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 16:34:09,823 [ INFO][       Thread-261126][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 16:34:09,824 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 16:34:09,824 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 16:34:10,827 [DEBUG][       Thread-261126][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 16:34:10,827 [DEBUG][       Thread-261126][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 16:34:10,876 [DEBUG][       Thread-261126][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 16:34:10,876 [DEBUG][       Thread-261126][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 16:34:10,886 [DEBUG][       Thread-261126][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 16:34:10,894 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 16:34:10,894 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 16:34:10,903 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 16:34:10,912 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 16:34:10,912 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 16:34:10,912 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 16:34:10,920 [DEBUG][       Thread-261126][   transport.py][1871] : EOF in transport thread
2025-06-13 16:34:17,164 [DEBUG][Thread-261128 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:34:18,576 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:34:18,577 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:34:20,922 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 16:34:20,922 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 16:34:20,922 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 16:34:20,925 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 16:34:21,390 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 16, 34, 16), 16.78, 31.19, 0.0, 15.65, 13.52, 0, 0, 0, 2, 0, 0),)
2025-06-13 16:34:21,390 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 16:34:16
2025-06-13 16:34:21,467 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 16:34:21,473 [DEBUG][       Thread-261129][   transport.py][1871] : starting thread (client mode): 0x867b4670
2025-06-13 16:34:21,473 [DEBUG][       Thread-261129][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 16:34:21,492 [DEBUG][       Thread-261129][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 16:34:21,492 [ INFO][       Thread-261129][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 16:34:21,495 [DEBUG][       Thread-261129][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 16:34:21,495 [DEBUG][       Thread-261129][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 16:34:21,495 [DEBUG][       Thread-261129][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 16:34:21,495 [DEBUG][       Thread-261129][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:34:21,495 [DEBUG][       Thread-261129][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:34:21,495 [DEBUG][       Thread-261129][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:34:21,495 [DEBUG][       Thread-261129][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:34:21,495 [DEBUG][       Thread-261129][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 16:34:21,495 [DEBUG][       Thread-261129][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 16:34:21,495 [DEBUG][       Thread-261129][   transport.py][1871] : client lang: <none>
2025-06-13 16:34:21,495 [DEBUG][       Thread-261129][   transport.py][1871] : server lang: <none>
2025-06-13 16:34:21,495 [DEBUG][       Thread-261129][   transport.py][1871] : kex follows: False
2025-06-13 16:34:21,495 [DEBUG][       Thread-261129][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 16:34:21,495 [DEBUG][       Thread-261129][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 16:34:21,496 [DEBUG][       Thread-261129][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 16:34:21,496 [DEBUG][       Thread-261129][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 16:34:21,496 [DEBUG][       Thread-261129][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 16:34:21,496 [DEBUG][       Thread-261129][   transport.py][1871] : Compression: none
2025-06-13 16:34:21,496 [DEBUG][       Thread-261129][   transport.py][1871] : === End of kex handshake ===
2025-06-13 16:34:21,511 [DEBUG][       Thread-261129][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 16:34:21,512 [DEBUG][       Thread-261129][   transport.py][1871] : Switch to new keys ...
2025-06-13 16:34:21,512 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 16:34:21,513 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 16:34:21,513 [DEBUG][       Thread-261129][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 16:34:21,514 [DEBUG][       Thread-261129][   transport.py][1871] : userauth is OK
2025-06-13 16:34:21,538 [ INFO][       Thread-261129][   transport.py][1871] : Authentication (password) successful!
2025-06-13 16:34:21,539 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 16:34:22,203 [DEBUG][       Thread-261129][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 16:34:22,203 [DEBUG][       Thread-261129][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 16:34:22,245 [DEBUG][       Thread-261129][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 16:34:22,245 [DEBUG][       Thread-261129][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 16:34:22,248 [DEBUG][       Thread-261129][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 16:34:22,261 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 16:34:22,261 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 16:34:22,263 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 16:34:22,265 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 16:34:22,271 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 16:34:22,273 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 16:34:22,273 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 16:34:22,274 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 16:34:22,274 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.606879 -999.00  +13.20  20.61     36   -1.20 1 1 1 1 1   887    0 13.82 -40.56 ----- 20.7 20.6 41.4 28.7 15.8 -30.1 15.3 -29.9 15.7 -30.7 16.4 -29.2
2025-06-13 16:34:22,274 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 16:34:22,274 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 16:34:22,274 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.606879
2025-06-13 16:34:22,275 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 16:34:22,275 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 16:34:22,275 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 16:34:22,275 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 16:34:22,275 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 16:34:22,276 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T16:34:16', tmtdew=16.78, humidity=31.19, cloud=0.0, wind=15.65, temperature=13.52, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T14:33:54.346', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 16:34:22,277 [DEBUG][       Thread-261129][   transport.py][1871] : EOF in transport thread
2025-06-13 16:34:22,359 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 16:34:22,369 [DEBUG][       Thread-261132][   transport.py][1871] : starting thread (client mode): 0x86893fd0
2025-06-13 16:34:22,369 [DEBUG][       Thread-261132][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 16:34:22,384 [DEBUG][       Thread-261132][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 16:34:22,384 [ INFO][       Thread-261132][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 16:34:22,394 [DEBUG][       Thread-261132][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 16:34:22,394 [DEBUG][       Thread-261132][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 16:34:22,394 [DEBUG][       Thread-261132][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 16:34:22,394 [DEBUG][       Thread-261132][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:34:22,394 [DEBUG][       Thread-261132][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:34:22,394 [DEBUG][       Thread-261132][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:34:22,394 [DEBUG][       Thread-261132][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:34:22,394 [DEBUG][       Thread-261132][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 16:34:22,394 [DEBUG][       Thread-261132][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 16:34:22,394 [DEBUG][       Thread-261132][   transport.py][1871] : client lang: <none>
2025-06-13 16:34:22,394 [DEBUG][       Thread-261132][   transport.py][1871] : server lang: <none>
2025-06-13 16:34:22,395 [DEBUG][       Thread-261132][   transport.py][1871] : kex follows: False
2025-06-13 16:34:22,395 [DEBUG][       Thread-261132][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 16:34:22,395 [DEBUG][       Thread-261132][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 16:34:22,395 [DEBUG][       Thread-261132][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 16:34:22,395 [DEBUG][       Thread-261132][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 16:34:22,395 [DEBUG][       Thread-261132][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 16:34:22,395 [DEBUG][       Thread-261132][   transport.py][1871] : Compression: none
2025-06-13 16:34:22,395 [DEBUG][       Thread-261132][   transport.py][1871] : === End of kex handshake ===
2025-06-13 16:34:22,452 [DEBUG][       Thread-261132][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 16:34:22,453 [DEBUG][       Thread-261132][   transport.py][1871] : Switch to new keys ...
2025-06-13 16:34:22,454 [DEBUG][       Thread-261132][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 16:34:22,454 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 16:34:22,455 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 16:34:22,514 [DEBUG][       Thread-261132][   transport.py][1871] : userauth is OK
2025-06-13 16:34:22,515 [DEBUG][       Thread-261132][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 16:34:22,515 [DEBUG][       Thread-261132][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 16:34:22,515 [DEBUG][       Thread-261132][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 16:34:22,515 [DEBUG][       Thread-261132][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 16:34:22,534 [ INFO][       Thread-261132][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 16:34:22,534 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 16:34:22,535 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 16:34:23,518 [DEBUG][       Thread-261132][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 16:34:23,519 [DEBUG][       Thread-261132][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 16:34:23,569 [DEBUG][       Thread-261132][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 16:34:23,570 [DEBUG][       Thread-261132][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 16:34:23,579 [DEBUG][       Thread-261132][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 16:34:23,593 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 16:34:23,593 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 16:34:23,601 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 16:34:23,611 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 16:34:23,611 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 16:34:23,611 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 16:34:23,619 [DEBUG][       Thread-261132][   transport.py][1871] : EOF in transport thread
2025-06-13 16:34:23,677 [DEBUG][Thread-261134 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:34:26,185 [DEBUG][Thread-261135 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:34:33,622 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 16:34:33,622 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 16:34:33,622 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 16:34:33,625 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 16:34:34,087 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 16, 34, 16), 16.78, 31.19, 0.0, 15.65, 13.52, 0, 0, 0, 2, 0, 0),)
2025-06-13 16:34:34,087 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 16:34:16
2025-06-13 16:34:34,163 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 16:34:34,168 [DEBUG][       Thread-261136][   transport.py][1871] : starting thread (client mode): 0x8636be50
2025-06-13 16:34:34,168 [DEBUG][       Thread-261136][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 16:34:34,188 [DEBUG][       Thread-261136][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 16:34:34,188 [ INFO][       Thread-261136][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 16:34:34,193 [DEBUG][       Thread-261136][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 16:34:34,193 [DEBUG][       Thread-261136][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 16:34:34,193 [DEBUG][       Thread-261136][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 16:34:34,193 [DEBUG][       Thread-261136][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:34:34,193 [DEBUG][       Thread-261136][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:34:34,193 [DEBUG][       Thread-261136][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:34:34,193 [DEBUG][       Thread-261136][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:34:34,193 [DEBUG][       Thread-261136][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 16:34:34,193 [DEBUG][       Thread-261136][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 16:34:34,193 [DEBUG][       Thread-261136][   transport.py][1871] : client lang: <none>
2025-06-13 16:34:34,193 [DEBUG][       Thread-261136][   transport.py][1871] : server lang: <none>
2025-06-13 16:34:34,193 [DEBUG][       Thread-261136][   transport.py][1871] : kex follows: False
2025-06-13 16:34:34,193 [DEBUG][       Thread-261136][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 16:34:34,193 [DEBUG][       Thread-261136][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 16:34:34,193 [DEBUG][       Thread-261136][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 16:34:34,193 [DEBUG][       Thread-261136][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 16:34:34,193 [DEBUG][       Thread-261136][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 16:34:34,193 [DEBUG][       Thread-261136][   transport.py][1871] : Compression: none
2025-06-13 16:34:34,193 [DEBUG][       Thread-261136][   transport.py][1871] : === End of kex handshake ===
2025-06-13 16:34:34,205 [DEBUG][       Thread-261136][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 16:34:34,205 [DEBUG][       Thread-261136][   transport.py][1871] : Switch to new keys ...
2025-06-13 16:34:34,206 [DEBUG][       Thread-261136][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 16:34:34,206 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 16:34:34,206 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 16:34:34,207 [DEBUG][       Thread-261136][   transport.py][1871] : userauth is OK
2025-06-13 16:34:34,231 [ INFO][       Thread-261136][   transport.py][1871] : Authentication (password) successful!
2025-06-13 16:34:34,232 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 16:34:34,859 [DEBUG][       Thread-261136][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 16:34:34,860 [DEBUG][       Thread-261136][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 16:34:34,901 [DEBUG][       Thread-261136][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 16:34:34,901 [DEBUG][       Thread-261136][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 16:34:34,904 [DEBUG][       Thread-261136][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 16:34:34,916 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 16:34:34,916 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 16:34:34,918 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 16:34:34,920 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 16:34:34,926 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 16:34:34,928 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 16:34:34,929 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 16:34:34,929 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 16:34:34,929 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.606879 -999.00  +13.20  20.61     36   -1.20 1 1 1 1 1   887    0 13.82 -40.56 ----- 20.7 20.6 41.4 28.7 15.8 -30.1 15.3 -29.9 15.7 -30.7 16.4 -29.2
2025-06-13 16:34:34,929 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 16:34:34,930 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 16:34:34,930 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.606879
2025-06-13 16:34:34,930 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 16:34:34,931 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 16:34:34,931 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 16:34:34,931 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 16:34:34,931 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 16:34:34,931 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T16:34:16', tmtdew=16.78, humidity=31.19, cloud=0.0, wind=15.65, temperature=13.52, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T14:33:54.346', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 16:34:34,931 [DEBUG][       Thread-261136][   transport.py][1871] : EOF in transport thread
2025-06-13 16:34:35,010 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 16:34:35,021 [DEBUG][       Thread-261139][   transport.py][1871] : starting thread (client mode): 0x86392170
2025-06-13 16:34:35,021 [DEBUG][       Thread-261139][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 16:34:35,037 [DEBUG][       Thread-261139][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 16:34:35,037 [ INFO][       Thread-261139][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 16:34:35,049 [DEBUG][       Thread-261139][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 16:34:35,050 [DEBUG][       Thread-261139][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 16:34:35,050 [DEBUG][       Thread-261139][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 16:34:35,050 [DEBUG][       Thread-261139][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:34:35,050 [DEBUG][       Thread-261139][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:34:35,050 [DEBUG][       Thread-261139][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:34:35,050 [DEBUG][       Thread-261139][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:34:35,050 [DEBUG][       Thread-261139][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 16:34:35,050 [DEBUG][       Thread-261139][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 16:34:35,050 [DEBUG][       Thread-261139][   transport.py][1871] : client lang: <none>
2025-06-13 16:34:35,050 [DEBUG][       Thread-261139][   transport.py][1871] : server lang: <none>
2025-06-13 16:34:35,050 [DEBUG][       Thread-261139][   transport.py][1871] : kex follows: False
2025-06-13 16:34:35,050 [DEBUG][       Thread-261139][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 16:34:35,050 [DEBUG][       Thread-261139][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 16:34:35,050 [DEBUG][       Thread-261139][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 16:34:35,050 [DEBUG][       Thread-261139][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 16:34:35,051 [DEBUG][       Thread-261139][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 16:34:35,051 [DEBUG][       Thread-261139][   transport.py][1871] : Compression: none
2025-06-13 16:34:35,051 [DEBUG][       Thread-261139][   transport.py][1871] : === End of kex handshake ===
2025-06-13 16:34:35,100 [DEBUG][       Thread-261139][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 16:34:35,100 [DEBUG][       Thread-261139][   transport.py][1871] : Switch to new keys ...
2025-06-13 16:34:35,101 [DEBUG][       Thread-261139][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 16:34:35,101 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 16:34:35,101 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 16:34:35,158 [DEBUG][       Thread-261139][   transport.py][1871] : userauth is OK
2025-06-13 16:34:35,158 [DEBUG][       Thread-261139][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 16:34:35,158 [DEBUG][       Thread-261139][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 16:34:35,158 [DEBUG][       Thread-261139][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 16:34:35,158 [DEBUG][       Thread-261139][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 16:34:35,172 [ INFO][       Thread-261139][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 16:34:35,172 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 16:34:35,172 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 16:34:35,224 [DEBUG][Thread-261141 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:34:36,195 [DEBUG][       Thread-261139][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 16:34:36,196 [DEBUG][       Thread-261139][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 16:34:36,247 [DEBUG][       Thread-261139][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 16:34:36,247 [DEBUG][       Thread-261139][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 16:34:36,259 [DEBUG][       Thread-261139][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 16:34:36,272 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 16:34:36,272 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 16:34:36,282 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 16:34:36,294 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 16:34:36,294 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 16:34:36,295 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 16:34:36,305 [DEBUG][       Thread-261139][   transport.py][1871] : EOF in transport thread
2025-06-13 16:34:44,243 [DEBUG][Thread-261142 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:34:46,305 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 16:34:46,305 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 16:34:46,305 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 16:34:46,306 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 16:34:46,791 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 16, 34, 16), 16.78, 31.19, 0.0, 15.65, 13.52, 0, 0, 0, 2, 0, 0),)
2025-06-13 16:34:46,791 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 16:34:16
2025-06-13 16:34:46,872 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 16:34:46,878 [DEBUG][       Thread-261143][   transport.py][1871] : starting thread (client mode): 0x86369990
2025-06-13 16:34:46,878 [DEBUG][       Thread-261143][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 16:34:46,897 [DEBUG][       Thread-261143][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 16:34:46,897 [ INFO][       Thread-261143][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 16:34:46,899 [DEBUG][       Thread-261143][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 16:34:46,899 [DEBUG][       Thread-261143][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 16:34:46,899 [DEBUG][       Thread-261143][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 16:34:46,899 [DEBUG][       Thread-261143][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:34:46,899 [DEBUG][       Thread-261143][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:34:46,899 [DEBUG][       Thread-261143][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:34:46,899 [DEBUG][       Thread-261143][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:34:46,899 [DEBUG][       Thread-261143][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 16:34:46,899 [DEBUG][       Thread-261143][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 16:34:46,899 [DEBUG][       Thread-261143][   transport.py][1871] : client lang: <none>
2025-06-13 16:34:46,899 [DEBUG][       Thread-261143][   transport.py][1871] : server lang: <none>
2025-06-13 16:34:46,899 [DEBUG][       Thread-261143][   transport.py][1871] : kex follows: False
2025-06-13 16:34:46,899 [DEBUG][       Thread-261143][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 16:34:46,899 [DEBUG][       Thread-261143][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 16:34:46,899 [DEBUG][       Thread-261143][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 16:34:46,899 [DEBUG][       Thread-261143][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 16:34:46,899 [DEBUG][       Thread-261143][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 16:34:46,899 [DEBUG][       Thread-261143][   transport.py][1871] : Compression: none
2025-06-13 16:34:46,899 [DEBUG][       Thread-261143][   transport.py][1871] : === End of kex handshake ===
2025-06-13 16:34:46,906 [DEBUG][       Thread-261143][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 16:34:46,906 [DEBUG][       Thread-261143][   transport.py][1871] : Switch to new keys ...
2025-06-13 16:34:46,906 [DEBUG][       Thread-261143][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 16:34:46,907 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 16:34:46,907 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 16:34:46,908 [DEBUG][       Thread-261143][   transport.py][1871] : userauth is OK
2025-06-13 16:34:46,921 [ INFO][       Thread-261143][   transport.py][1871] : Authentication (password) successful!
2025-06-13 16:34:46,921 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 16:34:47,520 [DEBUG][       Thread-261143][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 16:34:47,520 [DEBUG][       Thread-261143][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 16:34:47,564 [DEBUG][       Thread-261143][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 16:34:47,564 [DEBUG][       Thread-261143][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 16:34:47,568 [DEBUG][       Thread-261143][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 16:34:47,579 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 16:34:47,579 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 16:34:47,580 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 16:34:47,580 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 16:34:47,582 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 16:34:47,583 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 16:34:47,583 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 16:34:47,583 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 16:34:47,583 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.607226 -999.00  +13.20  20.21     36   -1.20 1 1 1 1 1   887    0 14.01 -37.89 ----- 19.1 20.2 45.4 23.8 15.7 -30.1 15.3 -30.0 15.7 -30.1 16.2 -29.4
2025-06-13 16:34:47,583 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 16:34:47,583 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 16:34:47,583 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.607226
2025-06-13 16:34:47,584 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 16:34:47,584 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 16:34:47,584 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 16:34:47,584 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 16:34:47,584 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 16:34:47,584 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T16:34:16', tmtdew=16.78, humidity=31.19, cloud=0.0, wind=15.65, temperature=13.52, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T14:34:24.326', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 16:34:47,584 [DEBUG][       Thread-261143][   transport.py][1871] : EOF in transport thread
2025-06-13 16:34:47,657 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 16:34:47,667 [DEBUG][       Thread-261146][   transport.py][1871] : starting thread (client mode): 0x863be1d0
2025-06-13 16:34:47,667 [DEBUG][       Thread-261146][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 16:34:47,682 [DEBUG][       Thread-261146][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 16:34:47,682 [ INFO][       Thread-261146][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 16:34:47,689 [DEBUG][       Thread-261146][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 16:34:47,689 [DEBUG][       Thread-261146][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 16:34:47,689 [DEBUG][       Thread-261146][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 16:34:47,689 [DEBUG][       Thread-261146][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:34:47,689 [DEBUG][       Thread-261146][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:34:47,689 [DEBUG][       Thread-261146][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:34:47,689 [DEBUG][       Thread-261146][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:34:47,689 [DEBUG][       Thread-261146][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 16:34:47,689 [DEBUG][       Thread-261146][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 16:34:47,689 [DEBUG][       Thread-261146][   transport.py][1871] : client lang: <none>
2025-06-13 16:34:47,690 [DEBUG][       Thread-261146][   transport.py][1871] : server lang: <none>
2025-06-13 16:34:47,690 [DEBUG][       Thread-261146][   transport.py][1871] : kex follows: False
2025-06-13 16:34:47,690 [DEBUG][       Thread-261146][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 16:34:47,690 [DEBUG][       Thread-261146][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 16:34:47,690 [DEBUG][       Thread-261146][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 16:34:47,690 [DEBUG][       Thread-261146][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 16:34:47,690 [DEBUG][       Thread-261146][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 16:34:47,690 [DEBUG][       Thread-261146][   transport.py][1871] : Compression: none
2025-06-13 16:34:47,690 [DEBUG][       Thread-261146][   transport.py][1871] : === End of kex handshake ===
2025-06-13 16:34:47,748 [DEBUG][       Thread-261146][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 16:34:47,749 [DEBUG][       Thread-261146][   transport.py][1871] : Switch to new keys ...
2025-06-13 16:34:47,749 [DEBUG][       Thread-261146][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 16:34:47,749 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 16:34:47,749 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 16:34:47,810 [DEBUG][       Thread-261146][   transport.py][1871] : userauth is OK
2025-06-13 16:34:47,810 [DEBUG][       Thread-261146][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 16:34:47,810 [DEBUG][       Thread-261146][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 16:34:47,810 [DEBUG][       Thread-261146][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 16:34:47,810 [DEBUG][       Thread-261146][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 16:34:47,824 [ INFO][       Thread-261146][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 16:34:47,824 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 16:34:47,824 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 16:34:48,870 [DEBUG][       Thread-261146][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 16:34:48,870 [DEBUG][       Thread-261146][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 16:34:48,920 [DEBUG][       Thread-261146][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 16:34:48,920 [DEBUG][       Thread-261146][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 16:34:48,929 [DEBUG][       Thread-261146][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 16:34:48,939 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 16:34:48,939 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 16:34:48,948 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 16:34:48,959 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 16:34:48,959 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 16:34:48,960 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 16:34:48,969 [DEBUG][       Thread-261146][   transport.py][1871] : EOF in transport thread
2025-06-13 16:34:53,262 [DEBUG][Thread-261148 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:34:58,967 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 16:34:58,968 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 16:34:58,968 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 16:34:58,971 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 16:34:59,440 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 16, 34, 48), 16.78, 31.2, 0.0, 17.7, 13.51, 0, 0, 0, 2, 0, 0),)
2025-06-13 16:34:59,440 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 16:34:48
2025-06-13 16:34:59,520 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 16:34:59,524 [DEBUG][       Thread-261149][   transport.py][1871] : starting thread (client mode): 0x867feda0
2025-06-13 16:34:59,524 [DEBUG][       Thread-261149][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 16:34:59,545 [DEBUG][       Thread-261149][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 16:34:59,545 [ INFO][       Thread-261149][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 16:34:59,548 [DEBUG][       Thread-261149][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 16:34:59,548 [DEBUG][       Thread-261149][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 16:34:59,548 [DEBUG][       Thread-261149][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 16:34:59,549 [DEBUG][       Thread-261149][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:34:59,549 [DEBUG][       Thread-261149][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:34:59,549 [DEBUG][       Thread-261149][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:34:59,549 [DEBUG][       Thread-261149][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:34:59,549 [DEBUG][       Thread-261149][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 16:34:59,549 [DEBUG][       Thread-261149][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 16:34:59,549 [DEBUG][       Thread-261149][   transport.py][1871] : client lang: <none>
2025-06-13 16:34:59,549 [DEBUG][       Thread-261149][   transport.py][1871] : server lang: <none>
2025-06-13 16:34:59,549 [DEBUG][       Thread-261149][   transport.py][1871] : kex follows: False
2025-06-13 16:34:59,549 [DEBUG][       Thread-261149][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 16:34:59,549 [DEBUG][       Thread-261149][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 16:34:59,549 [DEBUG][       Thread-261149][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 16:34:59,549 [DEBUG][       Thread-261149][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 16:34:59,549 [DEBUG][       Thread-261149][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 16:34:59,549 [DEBUG][       Thread-261149][   transport.py][1871] : Compression: none
2025-06-13 16:34:59,549 [DEBUG][       Thread-261149][   transport.py][1871] : === End of kex handshake ===
2025-06-13 16:34:59,567 [DEBUG][       Thread-261149][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 16:34:59,567 [DEBUG][       Thread-261149][   transport.py][1871] : Switch to new keys ...
2025-06-13 16:34:59,568 [DEBUG][       Thread-261149][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 16:34:59,568 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 16:34:59,569 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 16:34:59,569 [DEBUG][       Thread-261149][   transport.py][1871] : userauth is OK
2025-06-13 16:34:59,582 [ INFO][       Thread-261149][   transport.py][1871] : Authentication (password) successful!
2025-06-13 16:34:59,583 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 16:35:00,235 [DEBUG][       Thread-261149][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 16:35:00,235 [DEBUG][       Thread-261149][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 16:35:00,277 [DEBUG][       Thread-261149][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 16:35:00,277 [DEBUG][       Thread-261149][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 16:35:00,281 [DEBUG][       Thread-261149][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 16:35:00,292 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 16:35:00,293 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 16:35:00,295 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 16:35:00,298 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 16:35:00,304 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 16:35:00,306 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 16:35:00,306 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 16:35:00,307 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 16:35:00,307 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.607226 -999.00  +13.20  20.21     36   -1.20 1 1 1 1 1   887    0 14.01 -37.89 ----- 19.1 20.2 45.4 23.8 15.7 -30.1 15.3 -30.0 15.7 -30.1 16.2 -29.4
2025-06-13 16:35:00,307 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 16:35:00,307 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 16:35:00,307 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.607226
2025-06-13 16:35:00,308 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 16:35:00,308 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 16:35:00,308 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 16:35:00,308 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 16:35:00,308 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 16:35:00,309 [DEBUG][       Thread-261149][   transport.py][1871] : EOF in transport thread
2025-06-13 16:35:00,309 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T16:34:48', tmtdew=16.78, humidity=31.2, cloud=0.0, wind=17.7, temperature=13.51, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T14:34:24.326', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 16:35:00,392 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 16:35:00,404 [DEBUG][       Thread-261152][   transport.py][1871] : starting thread (client mode): 0x86390ac0
2025-06-13 16:35:00,404 [DEBUG][       Thread-261152][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 16:35:00,421 [DEBUG][       Thread-261152][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 16:35:00,421 [ INFO][       Thread-261152][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 16:35:00,428 [DEBUG][       Thread-261152][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 16:35:00,428 [DEBUG][       Thread-261152][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 16:35:00,429 [DEBUG][       Thread-261152][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 16:35:00,429 [DEBUG][       Thread-261152][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:35:00,429 [DEBUG][       Thread-261152][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:35:00,429 [DEBUG][       Thread-261152][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:35:00,429 [DEBUG][       Thread-261152][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:35:00,429 [DEBUG][       Thread-261152][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 16:35:00,429 [DEBUG][       Thread-261152][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 16:35:00,429 [DEBUG][       Thread-261152][   transport.py][1871] : client lang: <none>
2025-06-13 16:35:00,429 [DEBUG][       Thread-261152][   transport.py][1871] : server lang: <none>
2025-06-13 16:35:00,429 [DEBUG][       Thread-261152][   transport.py][1871] : kex follows: False
2025-06-13 16:35:00,429 [DEBUG][       Thread-261152][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 16:35:00,429 [DEBUG][       Thread-261152][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 16:35:00,429 [DEBUG][       Thread-261152][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 16:35:00,429 [DEBUG][       Thread-261152][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 16:35:00,429 [DEBUG][       Thread-261152][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 16:35:00,429 [DEBUG][       Thread-261152][   transport.py][1871] : Compression: none
2025-06-13 16:35:00,429 [DEBUG][       Thread-261152][   transport.py][1871] : === End of kex handshake ===
2025-06-13 16:35:00,486 [DEBUG][       Thread-261152][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 16:35:00,487 [DEBUG][       Thread-261152][   transport.py][1871] : Switch to new keys ...
2025-06-13 16:35:00,487 [DEBUG][       Thread-261152][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 16:35:00,487 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 16:35:00,488 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 16:35:00,542 [DEBUG][       Thread-261152][   transport.py][1871] : userauth is OK
2025-06-13 16:35:00,542 [DEBUG][       Thread-261152][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 16:35:00,543 [DEBUG][       Thread-261152][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 16:35:00,543 [DEBUG][       Thread-261152][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 16:35:00,543 [DEBUG][       Thread-261152][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 16:35:00,561 [ INFO][       Thread-261152][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 16:35:00,562 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 16:35:00,562 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 16:35:01,567 [DEBUG][       Thread-261152][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 16:35:01,567 [DEBUG][       Thread-261152][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 16:35:01,616 [DEBUG][       Thread-261152][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 16:35:01,616 [DEBUG][       Thread-261152][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 16:35:01,625 [DEBUG][       Thread-261152][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 16:35:01,634 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 16:35:01,635 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 16:35:01,644 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 16:35:01,653 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 16:35:01,653 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 16:35:01,653 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 16:35:01,661 [DEBUG][       Thread-261152][   transport.py][1871] : EOF in transport thread
2025-06-13 16:35:02,043 [DEBUG][Thread-261154 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:35:02,282 [DEBUG][Thread-261155 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:35:03,108 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:35:03,108 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:35:11,317 [DEBUG][Thread-261156 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:35:11,661 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 16:35:11,661 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 16:35:11,661 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 16:35:11,664 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 16:35:12,124 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 16, 34, 48), 16.78, 31.2, 0.0, 17.7, 13.51, 0, 0, 0, 2, 0, 0),)
2025-06-13 16:35:12,124 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 16:34:48
2025-06-13 16:35:12,203 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 16:35:12,210 [DEBUG][       Thread-261157][   transport.py][1871] : starting thread (client mode): 0x863cb100
2025-06-13 16:35:12,210 [DEBUG][       Thread-261157][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 16:35:12,232 [DEBUG][       Thread-261157][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 16:35:12,232 [ INFO][       Thread-261157][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 16:35:12,236 [DEBUG][       Thread-261157][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 16:35:12,236 [DEBUG][       Thread-261157][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 16:35:12,236 [DEBUG][       Thread-261157][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 16:35:12,236 [DEBUG][       Thread-261157][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:35:12,236 [DEBUG][       Thread-261157][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:35:12,236 [DEBUG][       Thread-261157][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:35:12,236 [DEBUG][       Thread-261157][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:35:12,236 [DEBUG][       Thread-261157][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 16:35:12,236 [DEBUG][       Thread-261157][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 16:35:12,236 [DEBUG][       Thread-261157][   transport.py][1871] : client lang: <none>
2025-06-13 16:35:12,236 [DEBUG][       Thread-261157][   transport.py][1871] : server lang: <none>
2025-06-13 16:35:12,236 [DEBUG][       Thread-261157][   transport.py][1871] : kex follows: False
2025-06-13 16:35:12,236 [DEBUG][       Thread-261157][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 16:35:12,236 [DEBUG][       Thread-261157][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 16:35:12,236 [DEBUG][       Thread-261157][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 16:35:12,237 [DEBUG][       Thread-261157][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 16:35:12,237 [DEBUG][       Thread-261157][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 16:35:12,237 [DEBUG][       Thread-261157][   transport.py][1871] : Compression: none
2025-06-13 16:35:12,237 [DEBUG][       Thread-261157][   transport.py][1871] : === End of kex handshake ===
2025-06-13 16:35:12,258 [DEBUG][       Thread-261157][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 16:35:12,258 [DEBUG][       Thread-261157][   transport.py][1871] : Switch to new keys ...
2025-06-13 16:35:12,259 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 16:35:12,259 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 16:35:12,260 [DEBUG][       Thread-261157][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 16:35:12,261 [DEBUG][       Thread-261157][   transport.py][1871] : userauth is OK
2025-06-13 16:35:12,286 [ INFO][       Thread-261157][   transport.py][1871] : Authentication (password) successful!
2025-06-13 16:35:12,286 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 16:35:18,714 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:35:18,715 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:35:19,800 [DEBUG][       Thread-261157][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 16:35:19,800 [DEBUG][       Thread-261157][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 16:35:19,842 [DEBUG][       Thread-261157][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 16:35:19,842 [DEBUG][       Thread-261157][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 16:35:19,845 [DEBUG][       Thread-261157][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 16:35:19,858 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 16:35:19,858 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 16:35:19,859 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 16:35:19,861 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 16:35:19,897 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 16:35:19,899 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 16:35:19,899 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 16:35:19,899 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 16:35:19,899 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.607226 -999.00  +13.20  20.21     36   -1.20 1 1 1 1 1   887    0 14.01 -37.89 ----- 19.1 20.2 45.4 23.8 15.7 -30.1 15.3 -30.0 15.7 -30.1 16.2 -29.4
2025-06-13 16:35:19,900 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 16:35:19,900 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 16:35:19,900 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.607226
2025-06-13 16:35:19,900 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 16:35:19,901 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 16:35:19,901 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 16:35:19,901 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 16:35:19,901 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 16:35:19,901 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T16:34:48', tmtdew=16.78, humidity=31.2, cloud=0.0, wind=17.7, temperature=13.51, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T14:34:24.326', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 16:35:19,902 [DEBUG][       Thread-261157][   transport.py][1871] : EOF in transport thread
2025-06-13 16:35:19,980 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 16:35:19,993 [DEBUG][       Thread-261160][   transport.py][1871] : starting thread (client mode): 0x863a43a0
2025-06-13 16:35:19,993 [DEBUG][       Thread-261160][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 16:35:20,008 [DEBUG][       Thread-261160][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 16:35:20,008 [ INFO][       Thread-261160][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 16:35:20,017 [DEBUG][       Thread-261160][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 16:35:20,017 [DEBUG][       Thread-261160][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 16:35:20,017 [DEBUG][       Thread-261160][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 16:35:20,017 [DEBUG][       Thread-261160][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:35:20,017 [DEBUG][       Thread-261160][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:35:20,017 [DEBUG][       Thread-261160][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:35:20,017 [DEBUG][       Thread-261160][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:35:20,017 [DEBUG][       Thread-261160][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 16:35:20,017 [DEBUG][       Thread-261160][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 16:35:20,017 [DEBUG][       Thread-261160][   transport.py][1871] : client lang: <none>
2025-06-13 16:35:20,017 [DEBUG][       Thread-261160][   transport.py][1871] : server lang: <none>
2025-06-13 16:35:20,017 [DEBUG][       Thread-261160][   transport.py][1871] : kex follows: False
2025-06-13 16:35:20,017 [DEBUG][       Thread-261160][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 16:35:20,017 [DEBUG][       Thread-261160][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 16:35:20,017 [DEBUG][       Thread-261160][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 16:35:20,017 [DEBUG][       Thread-261160][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 16:35:20,018 [DEBUG][       Thread-261160][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 16:35:20,018 [DEBUG][       Thread-261160][   transport.py][1871] : Compression: none
2025-06-13 16:35:20,018 [DEBUG][       Thread-261160][   transport.py][1871] : === End of kex handshake ===
2025-06-13 16:35:20,075 [DEBUG][       Thread-261160][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 16:35:20,075 [DEBUG][       Thread-261160][   transport.py][1871] : Switch to new keys ...
2025-06-13 16:35:20,076 [DEBUG][       Thread-261160][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 16:35:20,076 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 16:35:20,076 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 16:35:20,134 [DEBUG][       Thread-261160][   transport.py][1871] : userauth is OK
2025-06-13 16:35:20,134 [DEBUG][       Thread-261160][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 16:35:20,134 [DEBUG][       Thread-261160][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 16:35:20,134 [DEBUG][       Thread-261160][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 16:35:20,134 [DEBUG][       Thread-261160][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 16:35:20,155 [ INFO][       Thread-261160][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 16:35:20,155 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 16:35:20,156 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 16:35:20,341 [DEBUG][Thread-261162 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:35:21,143 [DEBUG][       Thread-261160][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 16:35:21,143 [DEBUG][       Thread-261160][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 16:35:21,191 [DEBUG][       Thread-261160][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 16:35:21,191 [DEBUG][       Thread-261160][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 16:35:21,201 [DEBUG][       Thread-261160][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 16:35:21,209 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 16:35:21,209 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 16:35:21,217 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 16:35:21,225 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 16:35:21,225 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 16:35:21,225 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 16:35:21,233 [DEBUG][       Thread-261160][   transport.py][1871] : EOF in transport thread
2025-06-13 16:35:23,706 [DEBUG][Thread-261163 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:35:29,362 [DEBUG][Thread-261164 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:35:31,235 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 16:35:31,235 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 16:35:31,236 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 16:35:31,238 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 16:35:31,709 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 16, 35, 20), 16.61, 31.51, 0.0, 21.3, 13.39, 0, 0, 0, 2, 0, 0),)
2025-06-13 16:35:31,709 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 16:35:20
2025-06-13 16:35:31,789 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 16:35:31,792 [DEBUG][       Thread-261165][   transport.py][1871] : starting thread (client mode): 0x867fcee0
2025-06-13 16:35:31,792 [DEBUG][       Thread-261165][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 16:35:31,810 [DEBUG][       Thread-261165][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 16:35:31,810 [ INFO][       Thread-261165][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 16:35:31,814 [DEBUG][       Thread-261165][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 16:35:31,814 [DEBUG][       Thread-261165][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 16:35:31,814 [DEBUG][       Thread-261165][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 16:35:31,814 [DEBUG][       Thread-261165][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:35:31,814 [DEBUG][       Thread-261165][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:35:31,814 [DEBUG][       Thread-261165][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:35:31,814 [DEBUG][       Thread-261165][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:35:31,814 [DEBUG][       Thread-261165][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 16:35:31,814 [DEBUG][       Thread-261165][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 16:35:31,814 [DEBUG][       Thread-261165][   transport.py][1871] : client lang: <none>
2025-06-13 16:35:31,814 [DEBUG][       Thread-261165][   transport.py][1871] : server lang: <none>
2025-06-13 16:35:31,814 [DEBUG][       Thread-261165][   transport.py][1871] : kex follows: False
2025-06-13 16:35:31,814 [DEBUG][       Thread-261165][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 16:35:31,814 [DEBUG][       Thread-261165][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 16:35:31,814 [DEBUG][       Thread-261165][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 16:35:31,814 [DEBUG][       Thread-261165][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 16:35:31,814 [DEBUG][       Thread-261165][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 16:35:31,814 [DEBUG][       Thread-261165][   transport.py][1871] : Compression: none
2025-06-13 16:35:31,814 [DEBUG][       Thread-261165][   transport.py][1871] : === End of kex handshake ===
2025-06-13 16:35:31,832 [DEBUG][       Thread-261165][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 16:35:31,833 [DEBUG][       Thread-261165][   transport.py][1871] : Switch to new keys ...
2025-06-13 16:35:31,833 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 16:35:31,833 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 16:35:31,834 [DEBUG][       Thread-261165][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 16:35:31,834 [DEBUG][       Thread-261165][   transport.py][1871] : userauth is OK
2025-06-13 16:35:31,858 [ INFO][       Thread-261165][   transport.py][1871] : Authentication (password) successful!
2025-06-13 16:35:31,859 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 16:35:32,486 [DEBUG][       Thread-261165][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 16:35:32,487 [DEBUG][       Thread-261165][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 16:35:32,533 [DEBUG][       Thread-261165][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 16:35:32,533 [DEBUG][       Thread-261165][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 16:35:32,536 [DEBUG][       Thread-261165][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 16:35:32,549 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 16:35:32,550 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 16:35:32,551 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 16:35:32,553 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 16:35:32,558 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 16:35:32,561 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 16:35:32,562 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 16:35:32,562 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 16:35:32,562 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.607574 -999.00  +13.10  22.10     36   -1.30 1 1 1 1 1   887    0 13.87 -40.93 ----- 20.4 22.1 52.0 26.3 15.7 -29.8 15.3 -30.1 15.6 -30.1 16.1 -29.3
2025-06-13 16:35:32,562 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 16:35:32,563 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 16:35:32,563 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.607574
2025-06-13 16:35:32,563 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 16:35:32,564 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 16:35:32,564 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 16:35:32,564 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 16:35:32,564 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 16:35:32,564 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T16:35:20', tmtdew=16.61, humidity=31.51, cloud=0.0, wind=21.3, temperature=13.39, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T14:34:54.394', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 16:35:32,565 [DEBUG][       Thread-261165][   transport.py][1871] : EOF in transport thread
2025-06-13 16:35:32,647 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 16:35:32,657 [DEBUG][       Thread-261168][   transport.py][1871] : starting thread (client mode): 0x86893be0
2025-06-13 16:35:32,657 [DEBUG][       Thread-261168][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 16:35:32,672 [DEBUG][       Thread-261168][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 16:35:32,672 [ INFO][       Thread-261168][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 16:35:32,679 [DEBUG][       Thread-261168][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 16:35:32,679 [DEBUG][       Thread-261168][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 16:35:32,679 [DEBUG][       Thread-261168][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 16:35:32,679 [DEBUG][       Thread-261168][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:35:32,679 [DEBUG][       Thread-261168][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:35:32,680 [DEBUG][       Thread-261168][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:35:32,680 [DEBUG][       Thread-261168][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:35:32,680 [DEBUG][       Thread-261168][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 16:35:32,680 [DEBUG][       Thread-261168][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 16:35:32,680 [DEBUG][       Thread-261168][   transport.py][1871] : client lang: <none>
2025-06-13 16:35:32,680 [DEBUG][       Thread-261168][   transport.py][1871] : server lang: <none>
2025-06-13 16:35:32,680 [DEBUG][       Thread-261168][   transport.py][1871] : kex follows: False
2025-06-13 16:35:32,680 [DEBUG][       Thread-261168][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 16:35:32,680 [DEBUG][       Thread-261168][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 16:35:32,680 [DEBUG][       Thread-261168][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 16:35:32,680 [DEBUG][       Thread-261168][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 16:35:32,680 [DEBUG][       Thread-261168][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 16:35:32,680 [DEBUG][       Thread-261168][   transport.py][1871] : Compression: none
2025-06-13 16:35:32,680 [DEBUG][       Thread-261168][   transport.py][1871] : === End of kex handshake ===
2025-06-13 16:35:32,737 [DEBUG][       Thread-261168][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 16:35:32,738 [DEBUG][       Thread-261168][   transport.py][1871] : Switch to new keys ...
2025-06-13 16:35:32,738 [DEBUG][       Thread-261168][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 16:35:32,739 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 16:35:32,739 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 16:35:32,795 [DEBUG][       Thread-261168][   transport.py][1871] : userauth is OK
2025-06-13 16:35:32,796 [DEBUG][       Thread-261168][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 16:35:32,796 [DEBUG][       Thread-261168][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 16:35:32,796 [DEBUG][       Thread-261168][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 16:35:32,796 [DEBUG][       Thread-261168][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 16:35:32,815 [ INFO][       Thread-261168][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 16:35:32,815 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 16:35:32,816 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 16:35:33,798 [DEBUG][       Thread-261168][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 16:35:33,798 [DEBUG][       Thread-261168][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 16:35:33,847 [DEBUG][       Thread-261168][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 16:35:33,847 [DEBUG][       Thread-261168][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 16:35:33,857 [DEBUG][       Thread-261168][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 16:35:33,865 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 16:35:33,866 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 16:35:33,874 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 16:35:33,883 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 16:35:33,883 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 16:35:33,883 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 16:35:33,891 [DEBUG][       Thread-261168][   transport.py][1871] : EOF in transport thread
2025-06-13 16:35:38,383 [DEBUG][Thread-261170 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:35:43,894 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 16:35:43,894 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 16:35:43,895 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 16:35:43,898 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 16:35:44,362 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 16, 35, 20), 16.61, 31.51, 0.0, 21.3, 13.39, 0, 0, 0, 2, 0, 0),)
2025-06-13 16:35:44,362 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 16:35:20
2025-06-13 16:35:44,443 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 16:35:44,449 [DEBUG][       Thread-261171][   transport.py][1871] : starting thread (client mode): 0x863cb7f0
2025-06-13 16:35:44,449 [DEBUG][       Thread-261171][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 16:35:44,470 [DEBUG][       Thread-261171][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 16:35:44,470 [ INFO][       Thread-261171][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 16:35:44,474 [DEBUG][       Thread-261171][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 16:35:44,474 [DEBUG][       Thread-261171][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 16:35:44,474 [DEBUG][       Thread-261171][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 16:35:44,474 [DEBUG][       Thread-261171][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:35:44,474 [DEBUG][       Thread-261171][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:35:44,474 [DEBUG][       Thread-261171][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:35:44,474 [DEBUG][       Thread-261171][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:35:44,474 [DEBUG][       Thread-261171][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 16:35:44,474 [DEBUG][       Thread-261171][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 16:35:44,474 [DEBUG][       Thread-261171][   transport.py][1871] : client lang: <none>
2025-06-13 16:35:44,474 [DEBUG][       Thread-261171][   transport.py][1871] : server lang: <none>
2025-06-13 16:35:44,474 [DEBUG][       Thread-261171][   transport.py][1871] : kex follows: False
2025-06-13 16:35:44,474 [DEBUG][       Thread-261171][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 16:35:44,475 [DEBUG][       Thread-261171][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 16:35:44,475 [DEBUG][       Thread-261171][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 16:35:44,475 [DEBUG][       Thread-261171][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 16:35:44,475 [DEBUG][       Thread-261171][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 16:35:44,475 [DEBUG][       Thread-261171][   transport.py][1871] : Compression: none
2025-06-13 16:35:44,475 [DEBUG][       Thread-261171][   transport.py][1871] : === End of kex handshake ===
2025-06-13 16:35:44,493 [DEBUG][       Thread-261171][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 16:35:44,493 [DEBUG][       Thread-261171][   transport.py][1871] : Switch to new keys ...
2025-06-13 16:35:44,494 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 16:35:44,494 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 16:35:44,494 [DEBUG][       Thread-261171][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 16:35:44,495 [DEBUG][       Thread-261171][   transport.py][1871] : userauth is OK
2025-06-13 16:35:44,508 [ INFO][       Thread-261171][   transport.py][1871] : Authentication (password) successful!
2025-06-13 16:35:44,509 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 16:35:45,111 [DEBUG][       Thread-261171][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 16:35:45,112 [DEBUG][       Thread-261171][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 16:35:45,153 [DEBUG][       Thread-261171][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 16:35:45,153 [DEBUG][       Thread-261171][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 16:35:45,156 [DEBUG][       Thread-261171][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 16:35:45,170 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 16:35:45,170 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 16:35:45,172 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 16:35:45,175 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 16:35:45,182 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 16:35:45,184 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 16:35:45,184 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 16:35:45,185 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 16:35:45,185 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.607574 -999.00  +13.10  22.10     36   -1.30 1 1 1 1 1   887    0 13.87 -40.93 ----- 20.4 22.1 52.0 26.3 15.7 -29.8 15.3 -30.1 15.6 -30.1 16.1 -29.3
2025-06-13 16:35:45,185 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 16:35:45,185 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 16:35:45,185 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.607574
2025-06-13 16:35:45,186 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 16:35:45,186 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 16:35:45,186 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 16:35:45,186 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 16:35:45,186 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 16:35:45,186 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T16:35:20', tmtdew=16.61, humidity=31.51, cloud=0.0, wind=21.3, temperature=13.39, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T14:34:54.394', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 16:35:45,187 [DEBUG][       Thread-261171][   transport.py][1871] : EOF in transport thread
2025-06-13 16:35:45,272 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 16:35:45,283 [DEBUG][       Thread-261174][   transport.py][1871] : starting thread (client mode): 0x863bf7f0
2025-06-13 16:35:45,283 [DEBUG][       Thread-261174][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 16:35:45,298 [DEBUG][       Thread-261174][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 16:35:45,298 [ INFO][       Thread-261174][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 16:35:45,306 [DEBUG][       Thread-261174][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 16:35:45,306 [DEBUG][       Thread-261174][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 16:35:45,306 [DEBUG][       Thread-261174][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 16:35:45,306 [DEBUG][       Thread-261174][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:35:45,306 [DEBUG][       Thread-261174][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:35:45,306 [DEBUG][       Thread-261174][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:35:45,306 [DEBUG][       Thread-261174][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:35:45,306 [DEBUG][       Thread-261174][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 16:35:45,306 [DEBUG][       Thread-261174][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 16:35:45,306 [DEBUG][       Thread-261174][   transport.py][1871] : client lang: <none>
2025-06-13 16:35:45,306 [DEBUG][       Thread-261174][   transport.py][1871] : server lang: <none>
2025-06-13 16:35:45,306 [DEBUG][       Thread-261174][   transport.py][1871] : kex follows: False
2025-06-13 16:35:45,306 [DEBUG][       Thread-261174][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 16:35:45,307 [DEBUG][       Thread-261174][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 16:35:45,307 [DEBUG][       Thread-261174][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 16:35:45,307 [DEBUG][       Thread-261174][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 16:35:45,307 [DEBUG][       Thread-261174][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 16:35:45,307 [DEBUG][       Thread-261174][   transport.py][1871] : Compression: none
2025-06-13 16:35:45,307 [DEBUG][       Thread-261174][   transport.py][1871] : === End of kex handshake ===
2025-06-13 16:35:45,362 [DEBUG][       Thread-261174][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 16:35:45,362 [DEBUG][       Thread-261174][   transport.py][1871] : Switch to new keys ...
2025-06-13 16:35:45,363 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 16:35:45,363 [DEBUG][       Thread-261174][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 16:35:45,364 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 16:35:45,418 [DEBUG][       Thread-261174][   transport.py][1871] : userauth is OK
2025-06-13 16:35:45,418 [DEBUG][       Thread-261174][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 16:35:45,419 [DEBUG][       Thread-261174][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 16:35:45,419 [DEBUG][       Thread-261174][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 16:35:45,419 [DEBUG][       Thread-261174][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 16:35:45,438 [ INFO][       Thread-261174][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 16:35:45,438 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 16:35:45,439 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 16:35:46,463 [DEBUG][       Thread-261174][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 16:35:46,463 [DEBUG][       Thread-261174][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 16:35:46,512 [DEBUG][       Thread-261174][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 16:35:46,512 [DEBUG][       Thread-261174][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 16:35:46,521 [DEBUG][       Thread-261174][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 16:35:46,534 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 16:35:46,534 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 16:35:46,543 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 16:35:46,552 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 16:35:46,553 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 16:35:46,553 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 16:35:46,561 [DEBUG][       Thread-261174][   transport.py][1871] : EOF in transport thread
2025-06-13 16:35:47,425 [DEBUG][Thread-261176 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:35:56,446 [DEBUG][Thread-261177 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:35:56,564 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 16:35:56,564 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 16:35:56,564 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 16:35:56,567 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 16:35:57,039 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 16, 35, 51), 16.63, 31.47, 0.0, 17.77, 13.38, 0, 0, 0, 2, 0, 0),)
2025-06-13 16:35:57,040 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 16:35:51
2025-06-13 16:35:57,120 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 16:35:57,123 [DEBUG][       Thread-261178][   transport.py][1871] : starting thread (client mode): 0x867ff430
2025-06-13 16:35:57,123 [DEBUG][       Thread-261178][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 16:35:57,139 [DEBUG][       Thread-261178][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 16:35:57,139 [ INFO][       Thread-261178][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 16:35:57,142 [DEBUG][       Thread-261178][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 16:35:57,142 [DEBUG][       Thread-261178][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 16:35:57,142 [DEBUG][       Thread-261178][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 16:35:57,142 [DEBUG][       Thread-261178][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:35:57,142 [DEBUG][       Thread-261178][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:35:57,142 [DEBUG][       Thread-261178][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:35:57,142 [DEBUG][       Thread-261178][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:35:57,142 [DEBUG][       Thread-261178][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 16:35:57,142 [DEBUG][       Thread-261178][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 16:35:57,142 [DEBUG][       Thread-261178][   transport.py][1871] : client lang: <none>
2025-06-13 16:35:57,142 [DEBUG][       Thread-261178][   transport.py][1871] : server lang: <none>
2025-06-13 16:35:57,142 [DEBUG][       Thread-261178][   transport.py][1871] : kex follows: False
2025-06-13 16:35:57,142 [DEBUG][       Thread-261178][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 16:35:57,142 [DEBUG][       Thread-261178][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 16:35:57,142 [DEBUG][       Thread-261178][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 16:35:57,142 [DEBUG][       Thread-261178][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 16:35:57,143 [DEBUG][       Thread-261178][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 16:35:57,143 [DEBUG][       Thread-261178][   transport.py][1871] : Compression: none
2025-06-13 16:35:57,143 [DEBUG][       Thread-261178][   transport.py][1871] : === End of kex handshake ===
2025-06-13 16:35:57,154 [DEBUG][       Thread-261178][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 16:35:57,154 [DEBUG][       Thread-261178][   transport.py][1871] : Switch to new keys ...
2025-06-13 16:35:57,155 [DEBUG][       Thread-261178][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 16:35:57,155 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 16:35:57,155 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 16:35:57,156 [DEBUG][       Thread-261178][   transport.py][1871] : userauth is OK
2025-06-13 16:35:57,180 [ INFO][       Thread-261178][   transport.py][1871] : Authentication (password) successful!
2025-06-13 16:35:57,181 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 16:35:57,839 [DEBUG][       Thread-261178][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 16:35:57,839 [DEBUG][       Thread-261178][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 16:35:57,881 [DEBUG][       Thread-261178][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 16:35:57,881 [DEBUG][       Thread-261178][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 16:35:57,884 [DEBUG][       Thread-261178][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 16:35:57,895 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 16:35:57,896 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 16:35:57,898 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 16:35:57,900 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 16:35:57,905 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 16:35:57,907 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 16:35:57,907 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 16:35:57,908 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 16:35:57,908 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.607921 -999.00  +13.10  16.91     37   -1.10 1 1 1 1 1   887    0 13.69 -40.82 ----- 18.8 16.9 48.8 26.2 15.6 -29.5 15.2 -29.8 15.4 -29.9 16.0 -28.9
2025-06-13 16:35:57,908 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 16:35:57,908 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 16:35:57,908 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.607921
2025-06-13 16:35:57,909 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 16:35:57,909 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 16:35:57,909 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 16:35:57,909 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 16:35:57,910 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 16:35:57,910 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T16:35:51', tmtdew=16.63, humidity=31.47, cloud=0.0, wind=17.77, temperature=13.38, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T14:35:24.374', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 16:35:57,910 [DEBUG][       Thread-261178][   transport.py][1871] : EOF in transport thread
2025-06-13 16:35:57,993 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 16:35:58,002 [DEBUG][       Thread-261181][   transport.py][1871] : starting thread (client mode): 0x867b5690
2025-06-13 16:35:58,002 [DEBUG][       Thread-261181][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 16:35:58,017 [DEBUG][       Thread-261181][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 16:35:58,017 [ INFO][       Thread-261181][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 16:35:58,025 [DEBUG][       Thread-261181][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 16:35:58,025 [DEBUG][       Thread-261181][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 16:35:58,026 [DEBUG][       Thread-261181][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 16:35:58,026 [DEBUG][       Thread-261181][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:35:58,026 [DEBUG][       Thread-261181][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:35:58,026 [DEBUG][       Thread-261181][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:35:58,026 [DEBUG][       Thread-261181][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:35:58,026 [DEBUG][       Thread-261181][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 16:35:58,026 [DEBUG][       Thread-261181][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 16:35:58,026 [DEBUG][       Thread-261181][   transport.py][1871] : client lang: <none>
2025-06-13 16:35:58,026 [DEBUG][       Thread-261181][   transport.py][1871] : server lang: <none>
2025-06-13 16:35:58,026 [DEBUG][       Thread-261181][   transport.py][1871] : kex follows: False
2025-06-13 16:35:58,026 [DEBUG][       Thread-261181][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 16:35:58,026 [DEBUG][       Thread-261181][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 16:35:58,026 [DEBUG][       Thread-261181][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 16:35:58,026 [DEBUG][       Thread-261181][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 16:35:58,026 [DEBUG][       Thread-261181][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 16:35:58,026 [DEBUG][       Thread-261181][   transport.py][1871] : Compression: none
2025-06-13 16:35:58,026 [DEBUG][       Thread-261181][   transport.py][1871] : === End of kex handshake ===
2025-06-13 16:35:58,082 [DEBUG][       Thread-261181][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 16:35:58,083 [DEBUG][       Thread-261181][   transport.py][1871] : Switch to new keys ...
2025-06-13 16:35:58,083 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 16:35:58,084 [DEBUG][       Thread-261181][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 16:35:58,084 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 16:35:58,142 [DEBUG][       Thread-261181][   transport.py][1871] : userauth is OK
2025-06-13 16:35:58,142 [DEBUG][       Thread-261181][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 16:35:58,142 [DEBUG][       Thread-261181][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 16:35:58,142 [DEBUG][       Thread-261181][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 16:35:58,142 [DEBUG][       Thread-261181][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 16:35:58,166 [ INFO][       Thread-261181][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 16:35:58,166 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 16:35:58,167 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 16:35:59,163 [DEBUG][       Thread-261181][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 16:35:59,163 [DEBUG][       Thread-261181][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 16:35:59,214 [DEBUG][       Thread-261181][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 16:35:59,214 [DEBUG][       Thread-261181][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 16:35:59,229 [DEBUG][       Thread-261181][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 16:35:59,238 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 16:35:59,239 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 16:35:59,248 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 16:35:59,257 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 16:35:59,257 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 16:35:59,258 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 16:35:59,265 [DEBUG][       Thread-261181][   transport.py][1871] : EOF in transport thread
2025-06-13 16:36:03,174 [DEBUG][Thread-261183 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:36:04,230 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:36:04,231 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:36:05,467 [DEBUG][Thread-261184 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:36:09,268 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 16:36:09,268 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 16:36:09,268 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 16:36:09,271 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 16:36:09,730 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 16, 35, 51), 16.63, 31.47, 0.0, 17.77, 13.38, 0, 0, 0, 2, 0, 0),)
2025-06-13 16:36:09,730 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 16:35:51
2025-06-13 16:36:09,811 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 16:36:09,817 [DEBUG][       Thread-261185][   transport.py][1871] : starting thread (client mode): 0x86391060
2025-06-13 16:36:09,817 [DEBUG][       Thread-261185][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 16:36:09,837 [DEBUG][       Thread-261185][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 16:36:09,837 [ INFO][       Thread-261185][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 16:36:09,839 [DEBUG][       Thread-261185][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 16:36:09,840 [DEBUG][       Thread-261185][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 16:36:09,840 [DEBUG][       Thread-261185][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 16:36:09,840 [DEBUG][       Thread-261185][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:36:09,840 [DEBUG][       Thread-261185][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:36:09,840 [DEBUG][       Thread-261185][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:36:09,840 [DEBUG][       Thread-261185][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:36:09,840 [DEBUG][       Thread-261185][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 16:36:09,840 [DEBUG][       Thread-261185][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 16:36:09,840 [DEBUG][       Thread-261185][   transport.py][1871] : client lang: <none>
2025-06-13 16:36:09,840 [DEBUG][       Thread-261185][   transport.py][1871] : server lang: <none>
2025-06-13 16:36:09,840 [DEBUG][       Thread-261185][   transport.py][1871] : kex follows: False
2025-06-13 16:36:09,840 [DEBUG][       Thread-261185][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 16:36:09,840 [DEBUG][       Thread-261185][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 16:36:09,840 [DEBUG][       Thread-261185][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 16:36:09,840 [DEBUG][       Thread-261185][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 16:36:09,840 [DEBUG][       Thread-261185][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 16:36:09,840 [DEBUG][       Thread-261185][   transport.py][1871] : Compression: none
2025-06-13 16:36:09,840 [DEBUG][       Thread-261185][   transport.py][1871] : === End of kex handshake ===
2025-06-13 16:36:09,857 [DEBUG][       Thread-261185][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 16:36:09,858 [DEBUG][       Thread-261185][   transport.py][1871] : Switch to new keys ...
2025-06-13 16:36:09,858 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 16:36:09,858 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 16:36:09,859 [DEBUG][       Thread-261185][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 16:36:09,860 [DEBUG][       Thread-261185][   transport.py][1871] : userauth is OK
2025-06-13 16:36:09,873 [ INFO][       Thread-261185][   transport.py][1871] : Authentication (password) successful!
2025-06-13 16:36:09,873 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 16:36:10,506 [DEBUG][       Thread-261185][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 16:36:10,506 [DEBUG][       Thread-261185][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 16:36:10,549 [DEBUG][       Thread-261185][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 16:36:10,549 [DEBUG][       Thread-261185][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 16:36:10,553 [DEBUG][       Thread-261185][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 16:36:10,564 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 16:36:10,565 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 16:36:10,567 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 16:36:10,569 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 16:36:10,574 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 16:36:10,576 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 16:36:10,577 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 16:36:10,577 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 16:36:10,577 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.607921 -999.00  +13.10  16.91     37   -1.10 1 1 1 1 1   887    0 13.69 -40.82 ----- 18.8 16.9 48.8 26.2 15.6 -29.5 15.2 -29.8 15.4 -29.9 16.0 -28.9
2025-06-13 16:36:10,577 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 16:36:10,578 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 16:36:10,578 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.607921
2025-06-13 16:36:10,578 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 16:36:10,579 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 16:36:10,579 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 16:36:10,579 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 16:36:10,579 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 16:36:10,579 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T16:35:51', tmtdew=16.63, humidity=31.47, cloud=0.0, wind=17.77, temperature=13.38, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T14:35:24.374', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 16:36:10,579 [DEBUG][       Thread-261185][   transport.py][1871] : EOF in transport thread
2025-06-13 16:36:10,657 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 16:36:10,669 [DEBUG][       Thread-261188][   transport.py][1871] : starting thread (client mode): 0x863ed8d0
2025-06-13 16:36:10,669 [DEBUG][       Thread-261188][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 16:36:10,684 [DEBUG][       Thread-261188][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 16:36:10,684 [ INFO][       Thread-261188][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 16:36:10,692 [DEBUG][       Thread-261188][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 16:36:10,692 [DEBUG][       Thread-261188][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 16:36:10,692 [DEBUG][       Thread-261188][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 16:36:10,692 [DEBUG][       Thread-261188][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:36:10,692 [DEBUG][       Thread-261188][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:36:10,692 [DEBUG][       Thread-261188][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:36:10,692 [DEBUG][       Thread-261188][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:36:10,692 [DEBUG][       Thread-261188][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 16:36:10,692 [DEBUG][       Thread-261188][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 16:36:10,692 [DEBUG][       Thread-261188][   transport.py][1871] : client lang: <none>
2025-06-13 16:36:10,692 [DEBUG][       Thread-261188][   transport.py][1871] : server lang: <none>
2025-06-13 16:36:10,692 [DEBUG][       Thread-261188][   transport.py][1871] : kex follows: False
2025-06-13 16:36:10,692 [DEBUG][       Thread-261188][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 16:36:10,693 [DEBUG][       Thread-261188][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 16:36:10,693 [DEBUG][       Thread-261188][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 16:36:10,693 [DEBUG][       Thread-261188][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 16:36:10,693 [DEBUG][       Thread-261188][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 16:36:10,693 [DEBUG][       Thread-261188][   transport.py][1871] : Compression: none
2025-06-13 16:36:10,693 [DEBUG][       Thread-261188][   transport.py][1871] : === End of kex handshake ===
2025-06-13 16:36:10,750 [DEBUG][       Thread-261188][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 16:36:10,750 [DEBUG][       Thread-261188][   transport.py][1871] : Switch to new keys ...
2025-06-13 16:36:10,751 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 16:36:10,752 [DEBUG][       Thread-261188][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 16:36:10,752 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 16:36:10,806 [DEBUG][       Thread-261188][   transport.py][1871] : userauth is OK
2025-06-13 16:36:10,807 [DEBUG][       Thread-261188][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 16:36:10,807 [DEBUG][       Thread-261188][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 16:36:10,807 [DEBUG][       Thread-261188][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 16:36:10,807 [DEBUG][       Thread-261188][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 16:36:10,825 [ INFO][       Thread-261188][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 16:36:10,826 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 16:36:10,826 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 16:36:11,817 [DEBUG][       Thread-261188][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 16:36:11,817 [DEBUG][       Thread-261188][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 16:36:11,868 [DEBUG][       Thread-261188][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 16:36:11,868 [DEBUG][       Thread-261188][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 16:36:11,877 [DEBUG][       Thread-261188][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 16:36:11,886 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 16:36:11,886 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 16:36:11,895 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 16:36:11,904 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 16:36:11,905 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 16:36:11,905 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 16:36:11,913 [DEBUG][       Thread-261188][   transport.py][1871] : EOF in transport thread
2025-06-13 16:36:14,504 [DEBUG][Thread-261190 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:36:18,851 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:36:18,852 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:36:21,915 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 16:36:21,916 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 16:36:21,916 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 16:36:21,919 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 16:36:22,387 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 16, 35, 51), 16.63, 31.47, 0.0, 17.77, 13.38, 0, 0, 0, 2, 0, 0),)
2025-06-13 16:36:22,387 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 16:35:51
2025-06-13 16:36:22,468 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 16:36:22,473 [DEBUG][       Thread-261191][   transport.py][1871] : starting thread (client mode): 0x86368d90
2025-06-13 16:36:22,473 [DEBUG][       Thread-261191][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 16:36:22,495 [DEBUG][       Thread-261191][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 16:36:22,495 [ INFO][       Thread-261191][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 16:36:22,499 [DEBUG][       Thread-261191][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 16:36:22,499 [DEBUG][       Thread-261191][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 16:36:22,499 [DEBUG][       Thread-261191][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 16:36:22,499 [DEBUG][       Thread-261191][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:36:22,499 [DEBUG][       Thread-261191][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:36:22,499 [DEBUG][       Thread-261191][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:36:22,499 [DEBUG][       Thread-261191][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:36:22,499 [DEBUG][       Thread-261191][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 16:36:22,499 [DEBUG][       Thread-261191][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 16:36:22,499 [DEBUG][       Thread-261191][   transport.py][1871] : client lang: <none>
2025-06-13 16:36:22,499 [DEBUG][       Thread-261191][   transport.py][1871] : server lang: <none>
2025-06-13 16:36:22,499 [DEBUG][       Thread-261191][   transport.py][1871] : kex follows: False
2025-06-13 16:36:22,499 [DEBUG][       Thread-261191][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 16:36:22,499 [DEBUG][       Thread-261191][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 16:36:22,499 [DEBUG][       Thread-261191][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 16:36:22,499 [DEBUG][       Thread-261191][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 16:36:22,499 [DEBUG][       Thread-261191][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 16:36:22,499 [DEBUG][       Thread-261191][   transport.py][1871] : Compression: none
2025-06-13 16:36:22,499 [DEBUG][       Thread-261191][   transport.py][1871] : === End of kex handshake ===
2025-06-13 16:36:22,517 [DEBUG][       Thread-261191][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 16:36:22,517 [DEBUG][       Thread-261191][   transport.py][1871] : Switch to new keys ...
2025-06-13 16:36:22,518 [DEBUG][       Thread-261191][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 16:36:22,518 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 16:36:22,518 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 16:36:22,519 [DEBUG][       Thread-261191][   transport.py][1871] : userauth is OK
2025-06-13 16:36:22,544 [ INFO][       Thread-261191][   transport.py][1871] : Authentication (password) successful!
2025-06-13 16:36:22,545 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 16:36:23,204 [DEBUG][       Thread-261191][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 16:36:23,204 [DEBUG][       Thread-261191][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 16:36:23,245 [DEBUG][       Thread-261191][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 16:36:23,245 [DEBUG][       Thread-261191][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 16:36:23,248 [DEBUG][       Thread-261191][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 16:36:23,259 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 16:36:23,260 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 16:36:23,262 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 16:36:23,263 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 16:36:23,269 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 16:36:23,271 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 16:36:23,271 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 16:36:23,272 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 16:36:23,272 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.607921 -999.00  +13.10  16.91     37   -1.10 1 1 1 1 1   887    0 13.69 -40.82 ----- 18.8 16.9 48.8 26.2 15.6 -29.5 15.2 -29.8 15.4 -29.9 16.0 -28.9
2025-06-13 16:36:23,272 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 16:36:23,272 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 16:36:23,272 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.607921
2025-06-13 16:36:23,273 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 16:36:23,273 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 16:36:23,273 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 16:36:23,273 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 16:36:23,273 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 16:36:23,274 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T16:35:51', tmtdew=16.63, humidity=31.47, cloud=0.0, wind=17.77, temperature=13.38, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T14:35:24.374', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 16:36:23,274 [DEBUG][       Thread-261191][   transport.py][1871] : EOF in transport thread
2025-06-13 16:36:23,357 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 16:36:23,367 [DEBUG][       Thread-261194][   transport.py][1871] : starting thread (client mode): 0x86893df0
2025-06-13 16:36:23,367 [DEBUG][       Thread-261194][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 16:36:23,382 [DEBUG][       Thread-261194][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 16:36:23,382 [ INFO][       Thread-261194][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 16:36:23,389 [DEBUG][       Thread-261194][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 16:36:23,389 [DEBUG][       Thread-261194][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 16:36:23,389 [DEBUG][       Thread-261194][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 16:36:23,389 [DEBUG][       Thread-261194][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:36:23,389 [DEBUG][       Thread-261194][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:36:23,389 [DEBUG][       Thread-261194][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:36:23,389 [DEBUG][       Thread-261194][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:36:23,389 [DEBUG][       Thread-261194][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 16:36:23,390 [DEBUG][       Thread-261194][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 16:36:23,390 [DEBUG][       Thread-261194][   transport.py][1871] : client lang: <none>
2025-06-13 16:36:23,390 [DEBUG][       Thread-261194][   transport.py][1871] : server lang: <none>
2025-06-13 16:36:23,390 [DEBUG][       Thread-261194][   transport.py][1871] : kex follows: False
2025-06-13 16:36:23,390 [DEBUG][       Thread-261194][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 16:36:23,390 [DEBUG][       Thread-261194][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 16:36:23,390 [DEBUG][       Thread-261194][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 16:36:23,390 [DEBUG][       Thread-261194][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 16:36:23,390 [DEBUG][       Thread-261194][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 16:36:23,390 [DEBUG][       Thread-261194][   transport.py][1871] : Compression: none
2025-06-13 16:36:23,390 [DEBUG][       Thread-261194][   transport.py][1871] : === End of kex handshake ===
2025-06-13 16:36:23,446 [DEBUG][       Thread-261194][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 16:36:23,447 [DEBUG][       Thread-261194][   transport.py][1871] : Switch to new keys ...
2025-06-13 16:36:23,447 [DEBUG][       Thread-261194][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 16:36:23,448 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 16:36:23,448 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 16:36:23,502 [DEBUG][       Thread-261194][   transport.py][1871] : userauth is OK
2025-06-13 16:36:23,503 [DEBUG][       Thread-261194][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 16:36:23,503 [DEBUG][       Thread-261194][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 16:36:23,503 [DEBUG][       Thread-261194][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 16:36:23,503 [DEBUG][       Thread-261194][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 16:36:23,521 [ INFO][       Thread-261194][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 16:36:23,522 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 16:36:23,522 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 16:36:23,526 [DEBUG][Thread-261196 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:36:23,737 [DEBUG][Thread-261197 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:36:24,481 [DEBUG][       Thread-261194][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 16:36:24,481 [DEBUG][       Thread-261194][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 16:36:24,531 [DEBUG][       Thread-261194][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 16:36:24,531 [DEBUG][       Thread-261194][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 16:36:24,539 [DEBUG][       Thread-261194][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 16:36:24,547 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 16:36:24,547 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 16:36:24,555 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 16:36:24,563 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 16:36:24,563 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 16:36:24,563 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 16:36:24,571 [DEBUG][       Thread-261194][   transport.py][1871] : EOF in transport thread
2025-06-13 16:36:32,548 [DEBUG][Thread-261198 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:36:34,573 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 16:36:34,573 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 16:36:34,573 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 16:36:34,574 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 16:36:35,029 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 16, 36, 23), 16.56, 31.45, 0.0, 16.39, 13.33, 0, 0, 0, 2, 0, 0),)
2025-06-13 16:36:35,029 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 16:36:23
2025-06-13 16:36:35,110 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 16:36:35,114 [DEBUG][       Thread-261199][   transport.py][1871] : starting thread (client mode): 0x8636a530
2025-06-13 16:36:35,115 [DEBUG][       Thread-261199][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 16:36:35,137 [DEBUG][       Thread-261199][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 16:36:35,137 [ INFO][       Thread-261199][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 16:36:35,140 [DEBUG][       Thread-261199][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 16:36:35,140 [DEBUG][       Thread-261199][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 16:36:35,140 [DEBUG][       Thread-261199][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 16:36:35,140 [DEBUG][       Thread-261199][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:36:35,141 [DEBUG][       Thread-261199][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:36:35,141 [DEBUG][       Thread-261199][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:36:35,141 [DEBUG][       Thread-261199][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:36:35,141 [DEBUG][       Thread-261199][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 16:36:35,141 [DEBUG][       Thread-261199][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 16:36:35,141 [DEBUG][       Thread-261199][   transport.py][1871] : client lang: <none>
2025-06-13 16:36:35,141 [DEBUG][       Thread-261199][   transport.py][1871] : server lang: <none>
2025-06-13 16:36:35,141 [DEBUG][       Thread-261199][   transport.py][1871] : kex follows: False
2025-06-13 16:36:35,141 [DEBUG][       Thread-261199][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 16:36:35,141 [DEBUG][       Thread-261199][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 16:36:35,141 [DEBUG][       Thread-261199][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 16:36:35,141 [DEBUG][       Thread-261199][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 16:36:35,141 [DEBUG][       Thread-261199][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 16:36:35,141 [DEBUG][       Thread-261199][   transport.py][1871] : Compression: none
2025-06-13 16:36:35,141 [DEBUG][       Thread-261199][   transport.py][1871] : === End of kex handshake ===
2025-06-13 16:36:35,157 [DEBUG][       Thread-261199][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 16:36:35,157 [DEBUG][       Thread-261199][   transport.py][1871] : Switch to new keys ...
2025-06-13 16:36:35,158 [DEBUG][       Thread-261199][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 16:36:35,158 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 16:36:35,158 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 16:36:35,160 [DEBUG][       Thread-261199][   transport.py][1871] : userauth is OK
2025-06-13 16:36:35,184 [ INFO][       Thread-261199][   transport.py][1871] : Authentication (password) successful!
2025-06-13 16:36:35,185 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 16:36:35,793 [DEBUG][       Thread-261199][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 16:36:35,794 [DEBUG][       Thread-261199][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 16:36:35,837 [DEBUG][       Thread-261199][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 16:36:35,837 [DEBUG][       Thread-261199][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 16:36:35,841 [DEBUG][       Thread-261199][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 16:36:35,847 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 16:36:35,847 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 16:36:35,849 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 16:36:35,851 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 16:36:35,858 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 16:36:35,860 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 16:36:35,860 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 16:36:35,861 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 16:36:35,861 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.608615 -999.00  +13.10  19.79     37   -1.10 1 1 1 1 1   887    0 14.01 -42.07 ----- 20.2 19.8 53.0 22.4 15.4 -29.3 15.1 -29.4 15.3 -29.2 15.9 -28.9
2025-06-13 16:36:35,861 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 16:36:35,861 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 16:36:35,861 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.608615
2025-06-13 16:36:35,861 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 16:36:35,862 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 16:36:35,862 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 16:36:35,862 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 16:36:35,862 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 16:36:35,862 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T16:36:23', tmtdew=16.56, humidity=31.45, cloud=0.0, wind=16.39, temperature=13.33, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T14:36:24.336', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 16:36:35,863 [DEBUG][       Thread-261199][   transport.py][1871] : EOF in transport thread
2025-06-13 16:36:35,939 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 16:36:35,950 [DEBUG][       Thread-261202][   transport.py][1871] : starting thread (client mode): 0x86893be0
2025-06-13 16:36:35,951 [DEBUG][       Thread-261202][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 16:36:35,966 [DEBUG][       Thread-261202][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 16:36:35,966 [ INFO][       Thread-261202][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 16:36:35,973 [DEBUG][       Thread-261202][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 16:36:35,974 [DEBUG][       Thread-261202][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 16:36:35,974 [DEBUG][       Thread-261202][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 16:36:35,974 [DEBUG][       Thread-261202][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:36:35,974 [DEBUG][       Thread-261202][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:36:35,974 [DEBUG][       Thread-261202][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:36:35,974 [DEBUG][       Thread-261202][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:36:35,974 [DEBUG][       Thread-261202][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 16:36:35,974 [DEBUG][       Thread-261202][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 16:36:35,974 [DEBUG][       Thread-261202][   transport.py][1871] : client lang: <none>
2025-06-13 16:36:35,974 [DEBUG][       Thread-261202][   transport.py][1871] : server lang: <none>
2025-06-13 16:36:35,974 [DEBUG][       Thread-261202][   transport.py][1871] : kex follows: False
2025-06-13 16:36:35,974 [DEBUG][       Thread-261202][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 16:36:35,974 [DEBUG][       Thread-261202][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 16:36:35,974 [DEBUG][       Thread-261202][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 16:36:35,974 [DEBUG][       Thread-261202][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 16:36:35,974 [DEBUG][       Thread-261202][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 16:36:35,974 [DEBUG][       Thread-261202][   transport.py][1871] : Compression: none
2025-06-13 16:36:35,974 [DEBUG][       Thread-261202][   transport.py][1871] : === End of kex handshake ===
2025-06-13 16:36:36,033 [DEBUG][       Thread-261202][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 16:36:36,034 [DEBUG][       Thread-261202][   transport.py][1871] : Switch to new keys ...
2025-06-13 16:36:36,034 [DEBUG][       Thread-261202][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 16:36:36,035 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 16:36:36,035 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 16:36:36,090 [DEBUG][       Thread-261202][   transport.py][1871] : userauth is OK
2025-06-13 16:36:36,090 [DEBUG][       Thread-261202][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 16:36:36,090 [DEBUG][       Thread-261202][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 16:36:36,090 [DEBUG][       Thread-261202][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 16:36:36,090 [DEBUG][       Thread-261202][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 16:36:36,106 [ INFO][       Thread-261202][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 16:36:36,106 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 16:36:36,106 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 16:36:37,116 [DEBUG][       Thread-261202][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 16:36:37,116 [DEBUG][       Thread-261202][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 16:36:37,164 [DEBUG][       Thread-261202][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 16:36:37,164 [DEBUG][       Thread-261202][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 16:36:37,173 [DEBUG][       Thread-261202][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 16:36:37,183 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 16:36:37,183 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 16:36:37,192 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 16:36:37,203 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 16:36:37,203 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 16:36:37,204 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 16:36:37,218 [DEBUG][       Thread-261202][   transport.py][1871] : EOF in transport thread
2025-06-13 16:36:41,567 [DEBUG][Thread-261204 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:36:47,214 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 16:36:47,215 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 16:36:47,215 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 16:36:47,217 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 16:36:47,674 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 16, 36, 23), 16.56, 31.45, 0.0, 16.39, 13.33, 0, 0, 0, 2, 0, 0),)
2025-06-13 16:36:47,674 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 16:36:23
2025-06-13 16:36:47,756 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 16:36:47,760 [DEBUG][       Thread-261205][   transport.py][1871] : starting thread (client mode): 0x863c9810
2025-06-13 16:36:47,761 [DEBUG][       Thread-261205][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 16:36:47,780 [DEBUG][       Thread-261205][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 16:36:47,780 [ INFO][       Thread-261205][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 16:36:47,783 [DEBUG][       Thread-261205][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 16:36:47,783 [DEBUG][       Thread-261205][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 16:36:47,783 [DEBUG][       Thread-261205][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 16:36:47,783 [DEBUG][       Thread-261205][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:36:47,783 [DEBUG][       Thread-261205][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:36:47,783 [DEBUG][       Thread-261205][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:36:47,783 [DEBUG][       Thread-261205][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:36:47,784 [DEBUG][       Thread-261205][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 16:36:47,784 [DEBUG][       Thread-261205][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 16:36:47,784 [DEBUG][       Thread-261205][   transport.py][1871] : client lang: <none>
2025-06-13 16:36:47,784 [DEBUG][       Thread-261205][   transport.py][1871] : server lang: <none>
2025-06-13 16:36:47,784 [DEBUG][       Thread-261205][   transport.py][1871] : kex follows: False
2025-06-13 16:36:47,784 [DEBUG][       Thread-261205][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 16:36:47,784 [DEBUG][       Thread-261205][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 16:36:47,784 [DEBUG][       Thread-261205][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 16:36:47,784 [DEBUG][       Thread-261205][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 16:36:47,784 [DEBUG][       Thread-261205][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 16:36:47,784 [DEBUG][       Thread-261205][   transport.py][1871] : Compression: none
2025-06-13 16:36:47,784 [DEBUG][       Thread-261205][   transport.py][1871] : === End of kex handshake ===
2025-06-13 16:36:47,792 [DEBUG][       Thread-261205][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 16:36:47,792 [DEBUG][       Thread-261205][   transport.py][1871] : Switch to new keys ...
2025-06-13 16:36:47,793 [DEBUG][       Thread-261205][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 16:36:47,793 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 16:36:47,793 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 16:36:47,794 [DEBUG][       Thread-261205][   transport.py][1871] : userauth is OK
2025-06-13 16:36:47,819 [ INFO][       Thread-261205][   transport.py][1871] : Authentication (password) successful!
2025-06-13 16:36:47,820 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 16:36:48,446 [DEBUG][       Thread-261205][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 16:36:48,446 [DEBUG][       Thread-261205][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 16:36:48,489 [DEBUG][       Thread-261205][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 16:36:48,489 [DEBUG][       Thread-261205][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 16:36:48,492 [DEBUG][       Thread-261205][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 16:36:48,507 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 16:36:48,508 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 16:36:48,510 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 16:36:48,511 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 16:36:48,517 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 16:36:48,519 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 16:36:48,519 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 16:36:48,520 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 16:36:48,520 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.608615 -999.00  +13.10  19.79     37   -1.10 1 1 1 1 1   887    0 14.01 -42.07 ----- 20.2 19.8 53.0 22.4 15.4 -29.3 15.1 -29.4 15.3 -29.2 15.9 -28.9
2025-06-13 16:36:48,520 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 16:36:48,520 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 16:36:48,520 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.608615
2025-06-13 16:36:48,521 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 16:36:48,521 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 16:36:48,521 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 16:36:48,522 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 16:36:48,522 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 16:36:48,522 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T16:36:23', tmtdew=16.56, humidity=31.45, cloud=0.0, wind=16.39, temperature=13.33, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T14:36:24.336', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 16:36:48,523 [DEBUG][       Thread-261205][   transport.py][1871] : EOF in transport thread
2025-06-13 16:36:48,595 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 16:36:48,605 [DEBUG][       Thread-261208][   transport.py][1871] : starting thread (client mode): 0x86352080
2025-06-13 16:36:48,605 [DEBUG][       Thread-261208][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 16:36:48,623 [DEBUG][       Thread-261208][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 16:36:48,624 [ INFO][       Thread-261208][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 16:36:48,634 [DEBUG][       Thread-261208][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 16:36:48,634 [DEBUG][       Thread-261208][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 16:36:48,634 [DEBUG][       Thread-261208][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 16:36:48,634 [DEBUG][       Thread-261208][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:36:48,634 [DEBUG][       Thread-261208][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:36:48,634 [DEBUG][       Thread-261208][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:36:48,634 [DEBUG][       Thread-261208][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:36:48,634 [DEBUG][       Thread-261208][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 16:36:48,634 [DEBUG][       Thread-261208][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 16:36:48,634 [DEBUG][       Thread-261208][   transport.py][1871] : client lang: <none>
2025-06-13 16:36:48,634 [DEBUG][       Thread-261208][   transport.py][1871] : server lang: <none>
2025-06-13 16:36:48,634 [DEBUG][       Thread-261208][   transport.py][1871] : kex follows: False
2025-06-13 16:36:48,634 [DEBUG][       Thread-261208][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 16:36:48,635 [DEBUG][       Thread-261208][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 16:36:48,635 [DEBUG][       Thread-261208][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 16:36:48,635 [DEBUG][       Thread-261208][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 16:36:48,635 [DEBUG][       Thread-261208][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 16:36:48,635 [DEBUG][       Thread-261208][   transport.py][1871] : Compression: none
2025-06-13 16:36:48,635 [DEBUG][       Thread-261208][   transport.py][1871] : === End of kex handshake ===
2025-06-13 16:36:48,695 [DEBUG][       Thread-261208][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 16:36:48,695 [DEBUG][       Thread-261208][   transport.py][1871] : Switch to new keys ...
2025-06-13 16:36:48,696 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 16:36:48,697 [DEBUG][       Thread-261208][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 16:36:48,697 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 16:36:48,754 [DEBUG][       Thread-261208][   transport.py][1871] : userauth is OK
2025-06-13 16:36:48,755 [DEBUG][       Thread-261208][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 16:36:48,755 [DEBUG][       Thread-261208][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 16:36:48,755 [DEBUG][       Thread-261208][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 16:36:48,755 [DEBUG][       Thread-261208][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 16:36:48,779 [ INFO][       Thread-261208][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 16:36:48,779 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 16:36:48,780 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 16:36:49,792 [DEBUG][       Thread-261208][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 16:36:49,792 [DEBUG][       Thread-261208][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 16:36:49,842 [DEBUG][       Thread-261208][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 16:36:49,843 [DEBUG][       Thread-261208][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 16:36:49,852 [DEBUG][       Thread-261208][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 16:36:49,861 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 16:36:49,861 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 16:36:49,870 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 16:36:49,880 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 16:36:49,880 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 16:36:49,880 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 16:36:49,888 [DEBUG][       Thread-261208][   transport.py][1871] : EOF in transport thread
2025-06-13 16:36:50,594 [DEBUG][Thread-261210 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:36:59,615 [DEBUG][Thread-261211 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:36:59,891 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 16:36:59,891 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 16:36:59,891 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 16:36:59,894 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 16:37:00,351 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 16, 36, 55), 16.45, 31.71, 0.0, 15.37, 13.32, 0, 0, 0, 2, 0, 0),)
2025-06-13 16:37:00,351 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 16:36:55
2025-06-13 16:37:00,430 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 16:37:00,434 [DEBUG][       Thread-261212][   transport.py][1871] : starting thread (client mode): 0x867ffb50
2025-06-13 16:37:00,434 [DEBUG][       Thread-261212][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 16:37:00,453 [DEBUG][       Thread-261212][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 16:37:00,453 [ INFO][       Thread-261212][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 16:37:00,455 [DEBUG][       Thread-261212][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 16:37:00,455 [DEBUG][       Thread-261212][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 16:37:00,455 [DEBUG][       Thread-261212][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 16:37:00,455 [DEBUG][       Thread-261212][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:37:00,455 [DEBUG][       Thread-261212][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:37:00,455 [DEBUG][       Thread-261212][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:37:00,455 [DEBUG][       Thread-261212][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:37:00,455 [DEBUG][       Thread-261212][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 16:37:00,455 [DEBUG][       Thread-261212][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 16:37:00,455 [DEBUG][       Thread-261212][   transport.py][1871] : client lang: <none>
2025-06-13 16:37:00,455 [DEBUG][       Thread-261212][   transport.py][1871] : server lang: <none>
2025-06-13 16:37:00,455 [DEBUG][       Thread-261212][   transport.py][1871] : kex follows: False
2025-06-13 16:37:00,456 [DEBUG][       Thread-261212][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 16:37:00,456 [DEBUG][       Thread-261212][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 16:37:00,456 [DEBUG][       Thread-261212][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 16:37:00,456 [DEBUG][       Thread-261212][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 16:37:00,456 [DEBUG][       Thread-261212][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 16:37:00,456 [DEBUG][       Thread-261212][   transport.py][1871] : Compression: none
2025-06-13 16:37:00,456 [DEBUG][       Thread-261212][   transport.py][1871] : === End of kex handshake ===
2025-06-13 16:37:00,468 [DEBUG][       Thread-261212][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 16:37:00,468 [DEBUG][       Thread-261212][   transport.py][1871] : Switch to new keys ...
2025-06-13 16:37:00,469 [DEBUG][       Thread-261212][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 16:37:00,469 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 16:37:00,469 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 16:37:00,470 [DEBUG][       Thread-261212][   transport.py][1871] : userauth is OK
2025-06-13 16:37:00,495 [ INFO][       Thread-261212][   transport.py][1871] : Authentication (password) successful!
2025-06-13 16:37:00,495 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 16:37:01,116 [DEBUG][       Thread-261212][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 16:37:01,116 [DEBUG][       Thread-261212][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 16:37:01,157 [DEBUG][       Thread-261212][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 16:37:01,157 [DEBUG][       Thread-261212][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 16:37:01,160 [DEBUG][       Thread-261212][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 16:37:01,167 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 16:37:01,167 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 16:37:01,169 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 16:37:01,170 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 16:37:01,175 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 16:37:01,177 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 16:37:01,178 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 16:37:01,178 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 16:37:01,178 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.608615 -999.00  +13.10  19.79     37   -1.10 1 1 1 1 1   887    0 14.01 -42.07 ----- 20.2 19.8 53.0 22.4 15.4 -29.3 15.1 -29.4 15.3 -29.2 15.9 -28.9
2025-06-13 16:37:01,178 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 16:37:01,179 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 16:37:01,179 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.608615
2025-06-13 16:37:01,179 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 16:37:01,180 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 16:37:01,180 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 16:37:01,180 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 16:37:01,180 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 16:37:01,180 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T16:36:55', tmtdew=16.45, humidity=31.71, cloud=0.0, wind=15.37, temperature=13.32, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T14:36:24.336', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 16:37:01,180 [DEBUG][       Thread-261212][   transport.py][1871] : EOF in transport thread
2025-06-13 16:37:01,263 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 16:37:01,274 [DEBUG][       Thread-261215][   transport.py][1871] : starting thread (client mode): 0x86893df0
2025-06-13 16:37:01,274 [DEBUG][       Thread-261215][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 16:37:01,289 [DEBUG][       Thread-261215][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 16:37:01,289 [ INFO][       Thread-261215][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 16:37:01,296 [DEBUG][       Thread-261215][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 16:37:01,296 [DEBUG][       Thread-261215][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 16:37:01,296 [DEBUG][       Thread-261215][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 16:37:01,296 [DEBUG][       Thread-261215][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:37:01,296 [DEBUG][       Thread-261215][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:37:01,296 [DEBUG][       Thread-261215][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:37:01,296 [DEBUG][       Thread-261215][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:37:01,296 [DEBUG][       Thread-261215][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 16:37:01,296 [DEBUG][       Thread-261215][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 16:37:01,296 [DEBUG][       Thread-261215][   transport.py][1871] : client lang: <none>
2025-06-13 16:37:01,296 [DEBUG][       Thread-261215][   transport.py][1871] : server lang: <none>
2025-06-13 16:37:01,297 [DEBUG][       Thread-261215][   transport.py][1871] : kex follows: False
2025-06-13 16:37:01,297 [DEBUG][       Thread-261215][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 16:37:01,297 [DEBUG][       Thread-261215][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 16:37:01,297 [DEBUG][       Thread-261215][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 16:37:01,297 [DEBUG][       Thread-261215][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 16:37:01,297 [DEBUG][       Thread-261215][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 16:37:01,297 [DEBUG][       Thread-261215][   transport.py][1871] : Compression: none
2025-06-13 16:37:01,297 [DEBUG][       Thread-261215][   transport.py][1871] : === End of kex handshake ===
2025-06-13 16:37:01,352 [DEBUG][       Thread-261215][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 16:37:01,352 [DEBUG][       Thread-261215][   transport.py][1871] : Switch to new keys ...
2025-06-13 16:37:01,353 [DEBUG][       Thread-261215][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 16:37:01,353 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 16:37:01,353 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 16:37:01,410 [DEBUG][       Thread-261215][   transport.py][1871] : userauth is OK
2025-06-13 16:37:01,410 [DEBUG][       Thread-261215][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 16:37:01,410 [DEBUG][       Thread-261215][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 16:37:01,410 [DEBUG][       Thread-261215][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 16:37:01,410 [DEBUG][       Thread-261215][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 16:37:01,432 [ INFO][       Thread-261215][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 16:37:01,433 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 16:37:01,433 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 16:37:02,398 [DEBUG][       Thread-261215][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 16:37:02,398 [DEBUG][       Thread-261215][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 16:37:02,448 [DEBUG][       Thread-261215][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 16:37:02,448 [DEBUG][       Thread-261215][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 16:37:02,457 [DEBUG][       Thread-261215][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 16:37:02,466 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 16:37:02,466 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 16:37:02,475 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 16:37:02,484 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 16:37:02,484 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 16:37:02,484 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 16:37:02,492 [DEBUG][       Thread-261215][   transport.py][1871] : EOF in transport thread
2025-06-13 16:37:04,298 [DEBUG][Thread-261217 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:37:05,382 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:37:05,383 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:37:08,638 [DEBUG][Thread-261218 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:37:12,495 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 16:37:12,495 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 16:37:12,495 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 16:37:12,498 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 16:37:12,945 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 16, 36, 55), 16.45, 31.71, 0.0, 15.37, 13.32, 0, 0, 0, 2, 0, 0),)
2025-06-13 16:37:12,945 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 16:36:55
2025-06-13 16:37:13,023 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 16:37:13,029 [DEBUG][       Thread-261219][   transport.py][1871] : starting thread (client mode): 0x863cb160
2025-06-13 16:37:13,029 [DEBUG][       Thread-261219][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 16:37:13,051 [DEBUG][       Thread-261219][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 16:37:13,051 [ INFO][       Thread-261219][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 16:37:13,055 [DEBUG][       Thread-261219][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 16:37:13,055 [DEBUG][       Thread-261219][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 16:37:13,055 [DEBUG][       Thread-261219][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 16:37:13,055 [DEBUG][       Thread-261219][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:37:13,055 [DEBUG][       Thread-261219][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:37:13,055 [DEBUG][       Thread-261219][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:37:13,055 [DEBUG][       Thread-261219][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:37:13,055 [DEBUG][       Thread-261219][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 16:37:13,055 [DEBUG][       Thread-261219][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 16:37:13,055 [DEBUG][       Thread-261219][   transport.py][1871] : client lang: <none>
2025-06-13 16:37:13,055 [DEBUG][       Thread-261219][   transport.py][1871] : server lang: <none>
2025-06-13 16:37:13,055 [DEBUG][       Thread-261219][   transport.py][1871] : kex follows: False
2025-06-13 16:37:13,055 [DEBUG][       Thread-261219][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 16:37:13,055 [DEBUG][       Thread-261219][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 16:37:13,055 [DEBUG][       Thread-261219][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 16:37:13,055 [DEBUG][       Thread-261219][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 16:37:13,055 [DEBUG][       Thread-261219][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 16:37:13,055 [DEBUG][       Thread-261219][   transport.py][1871] : Compression: none
2025-06-13 16:37:13,055 [DEBUG][       Thread-261219][   transport.py][1871] : === End of kex handshake ===
2025-06-13 16:37:13,075 [DEBUG][       Thread-261219][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 16:37:13,075 [DEBUG][       Thread-261219][   transport.py][1871] : Switch to new keys ...
2025-06-13 16:37:13,076 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 16:37:13,076 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 16:37:13,076 [DEBUG][       Thread-261219][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 16:37:13,077 [DEBUG][       Thread-261219][   transport.py][1871] : userauth is OK
2025-06-13 16:37:13,091 [ INFO][       Thread-261219][   transport.py][1871] : Authentication (password) successful!
2025-06-13 16:37:13,092 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 16:37:13,750 [DEBUG][       Thread-261219][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 16:37:13,750 [DEBUG][       Thread-261219][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 16:37:13,793 [DEBUG][       Thread-261219][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 16:37:13,793 [DEBUG][       Thread-261219][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 16:37:13,795 [DEBUG][       Thread-261219][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 16:37:13,809 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 16:37:13,809 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 16:37:13,810 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 16:37:13,811 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 16:37:13,815 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 16:37:13,815 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 16:37:13,815 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 16:37:13,816 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 16:37:13,816 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.608962 -999.00  +13.10  17.64     36   -1.20 1 1 1 1 1   887    0 13.67 -44.15 ----- 18.5 17.6 47.8 22.4 15.4 -29.4 15.0 -29.4 15.2 -29.2 15.8 -28.7
2025-06-13 16:37:13,816 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 16:37:13,816 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 16:37:13,816 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.608962
2025-06-13 16:37:13,816 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 16:37:13,816 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 16:37:13,816 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 16:37:13,816 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 16:37:13,816 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 16:37:13,816 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T16:36:55', tmtdew=16.45, humidity=31.71, cloud=0.0, wind=15.37, temperature=13.32, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T14:36:54.317', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 16:37:13,817 [DEBUG][       Thread-261219][   transport.py][1871] : EOF in transport thread
2025-06-13 16:37:13,887 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 16:37:13,898 [DEBUG][       Thread-261222][   transport.py][1871] : starting thread (client mode): 0x863a40a0
2025-06-13 16:37:13,898 [DEBUG][       Thread-261222][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 16:37:13,913 [DEBUG][       Thread-261222][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 16:37:13,913 [ INFO][       Thread-261222][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 16:37:13,921 [DEBUG][       Thread-261222][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 16:37:13,921 [DEBUG][       Thread-261222][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 16:37:13,921 [DEBUG][       Thread-261222][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 16:37:13,921 [DEBUG][       Thread-261222][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:37:13,921 [DEBUG][       Thread-261222][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:37:13,921 [DEBUG][       Thread-261222][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:37:13,921 [DEBUG][       Thread-261222][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:37:13,921 [DEBUG][       Thread-261222][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 16:37:13,921 [DEBUG][       Thread-261222][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 16:37:13,921 [DEBUG][       Thread-261222][   transport.py][1871] : client lang: <none>
2025-06-13 16:37:13,921 [DEBUG][       Thread-261222][   transport.py][1871] : server lang: <none>
2025-06-13 16:37:13,921 [DEBUG][       Thread-261222][   transport.py][1871] : kex follows: False
2025-06-13 16:37:13,921 [DEBUG][       Thread-261222][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 16:37:13,921 [DEBUG][       Thread-261222][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 16:37:13,921 [DEBUG][       Thread-261222][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 16:37:13,921 [DEBUG][       Thread-261222][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 16:37:13,921 [DEBUG][       Thread-261222][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 16:37:13,922 [DEBUG][       Thread-261222][   transport.py][1871] : Compression: none
2025-06-13 16:37:13,922 [DEBUG][       Thread-261222][   transport.py][1871] : === End of kex handshake ===
2025-06-13 16:37:13,978 [DEBUG][       Thread-261222][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 16:37:13,979 [DEBUG][       Thread-261222][   transport.py][1871] : Switch to new keys ...
2025-06-13 16:37:13,979 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 16:37:13,980 [DEBUG][       Thread-261222][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 16:37:13,981 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 16:37:14,034 [DEBUG][       Thread-261222][   transport.py][1871] : userauth is OK
2025-06-13 16:37:14,034 [DEBUG][       Thread-261222][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 16:37:14,034 [DEBUG][       Thread-261222][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 16:37:14,035 [DEBUG][       Thread-261222][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 16:37:14,035 [DEBUG][       Thread-261222][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 16:37:14,054 [ INFO][       Thread-261222][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 16:37:14,054 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 16:37:14,054 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 16:37:15,012 [DEBUG][       Thread-261222][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 16:37:15,012 [DEBUG][       Thread-261222][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 16:37:15,060 [DEBUG][       Thread-261222][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 16:37:15,060 [DEBUG][       Thread-261222][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 16:37:15,069 [DEBUG][       Thread-261222][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 16:37:15,078 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 16:37:15,079 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 16:37:15,088 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 16:37:15,099 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 16:37:15,099 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 16:37:15,100 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 16:37:15,107 [DEBUG][       Thread-261222][   transport.py][1871] : EOF in transport thread
2025-06-13 16:37:17,672 [DEBUG][Thread-261224 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:37:18,988 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:37:18,989 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:37:23,770 [DEBUG][Thread-261225 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:37:25,100 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 16:37:25,101 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 16:37:25,101 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 16:37:25,104 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 16:37:25,566 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 16, 36, 55), 16.45, 31.71, 0.0, 15.37, 13.32, 0, 0, 0, 2, 0, 0),)
2025-06-13 16:37:25,566 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 16:36:55
2025-06-13 16:37:25,645 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 16:37:25,649 [DEBUG][       Thread-261226][   transport.py][1871] : starting thread (client mode): 0x867ff700
2025-06-13 16:37:25,649 [DEBUG][       Thread-261226][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 16:37:25,670 [DEBUG][       Thread-261226][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 16:37:25,670 [ INFO][       Thread-261226][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 16:37:25,673 [DEBUG][       Thread-261226][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 16:37:25,673 [DEBUG][       Thread-261226][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 16:37:25,674 [DEBUG][       Thread-261226][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 16:37:25,674 [DEBUG][       Thread-261226][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:37:25,674 [DEBUG][       Thread-261226][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:37:25,674 [DEBUG][       Thread-261226][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:37:25,674 [DEBUG][       Thread-261226][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:37:25,674 [DEBUG][       Thread-261226][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 16:37:25,674 [DEBUG][       Thread-261226][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 16:37:25,674 [DEBUG][       Thread-261226][   transport.py][1871] : client lang: <none>
2025-06-13 16:37:25,674 [DEBUG][       Thread-261226][   transport.py][1871] : server lang: <none>
2025-06-13 16:37:25,674 [DEBUG][       Thread-261226][   transport.py][1871] : kex follows: False
2025-06-13 16:37:25,674 [DEBUG][       Thread-261226][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 16:37:25,674 [DEBUG][       Thread-261226][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 16:37:25,674 [DEBUG][       Thread-261226][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 16:37:25,674 [DEBUG][       Thread-261226][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 16:37:25,674 [DEBUG][       Thread-261226][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 16:37:25,674 [DEBUG][       Thread-261226][   transport.py][1871] : Compression: none
2025-06-13 16:37:25,674 [DEBUG][       Thread-261226][   transport.py][1871] : === End of kex handshake ===
2025-06-13 16:37:25,691 [DEBUG][       Thread-261226][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 16:37:25,692 [DEBUG][       Thread-261226][   transport.py][1871] : Switch to new keys ...
2025-06-13 16:37:25,692 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 16:37:25,693 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 16:37:25,693 [DEBUG][       Thread-261226][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 16:37:25,694 [DEBUG][       Thread-261226][   transport.py][1871] : userauth is OK
2025-06-13 16:37:25,719 [ INFO][       Thread-261226][   transport.py][1871] : Authentication (password) successful!
2025-06-13 16:37:25,720 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 16:37:26,315 [DEBUG][       Thread-261226][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 16:37:26,315 [DEBUG][       Thread-261226][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 16:37:26,357 [DEBUG][       Thread-261226][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 16:37:26,357 [DEBUG][       Thread-261226][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 16:37:26,360 [DEBUG][       Thread-261226][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 16:37:26,372 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 16:37:26,373 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 16:37:26,374 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 16:37:26,376 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 16:37:26,381 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 16:37:26,383 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 16:37:26,383 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 16:37:26,384 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 16:37:26,384 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.608962 -999.00  +13.10  17.64     36   -1.20 1 1 1 1 1   887    0 13.67 -44.15 ----- 18.5 17.6 47.8 22.4 15.4 -29.4 15.0 -29.4 15.2 -29.2 15.8 -28.7
2025-06-13 16:37:26,384 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 16:37:26,384 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 16:37:26,385 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.608962
2025-06-13 16:37:26,385 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 16:37:26,386 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 16:37:26,386 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 16:37:26,386 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 16:37:26,386 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 16:37:26,386 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T16:36:55', tmtdew=16.45, humidity=31.71, cloud=0.0, wind=15.37, temperature=13.32, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T14:36:54.317', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 16:37:26,387 [DEBUG][       Thread-261226][   transport.py][1871] : EOF in transport thread
2025-06-13 16:37:26,470 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 16:37:26,479 [DEBUG][       Thread-261229][   transport.py][1871] : starting thread (client mode): 0x867b5990
2025-06-13 16:37:26,479 [DEBUG][       Thread-261229][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 16:37:26,495 [DEBUG][       Thread-261229][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 16:37:26,495 [ INFO][       Thread-261229][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 16:37:26,502 [DEBUG][       Thread-261229][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 16:37:26,503 [DEBUG][       Thread-261229][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 16:37:26,503 [DEBUG][       Thread-261229][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 16:37:26,503 [DEBUG][       Thread-261229][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:37:26,503 [DEBUG][       Thread-261229][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:37:26,503 [DEBUG][       Thread-261229][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:37:26,503 [DEBUG][       Thread-261229][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:37:26,503 [DEBUG][       Thread-261229][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 16:37:26,503 [DEBUG][       Thread-261229][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 16:37:26,503 [DEBUG][       Thread-261229][   transport.py][1871] : client lang: <none>
2025-06-13 16:37:26,503 [DEBUG][       Thread-261229][   transport.py][1871] : server lang: <none>
2025-06-13 16:37:26,503 [DEBUG][       Thread-261229][   transport.py][1871] : kex follows: False
2025-06-13 16:37:26,503 [DEBUG][       Thread-261229][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 16:37:26,503 [DEBUG][       Thread-261229][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 16:37:26,503 [DEBUG][       Thread-261229][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 16:37:26,503 [DEBUG][       Thread-261229][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 16:37:26,503 [DEBUG][       Thread-261229][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 16:37:26,503 [DEBUG][       Thread-261229][   transport.py][1871] : Compression: none
2025-06-13 16:37:26,503 [DEBUG][       Thread-261229][   transport.py][1871] : === End of kex handshake ===
2025-06-13 16:37:26,563 [DEBUG][       Thread-261229][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 16:37:26,563 [DEBUG][       Thread-261229][   transport.py][1871] : Switch to new keys ...
2025-06-13 16:37:26,564 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 16:37:26,565 [DEBUG][       Thread-261229][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 16:37:26,565 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 16:37:26,622 [DEBUG][       Thread-261229][   transport.py][1871] : userauth is OK
2025-06-13 16:37:26,623 [DEBUG][       Thread-261229][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 16:37:26,623 [DEBUG][       Thread-261229][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 16:37:26,623 [DEBUG][       Thread-261229][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 16:37:26,623 [DEBUG][       Thread-261229][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 16:37:26,646 [ INFO][       Thread-261229][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 16:37:26,646 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 16:37:26,647 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 16:37:26,692 [DEBUG][Thread-261231 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:37:27,651 [DEBUG][       Thread-261229][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 16:37:27,651 [DEBUG][       Thread-261229][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 16:37:27,699 [DEBUG][       Thread-261229][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 16:37:27,699 [DEBUG][       Thread-261229][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 16:37:27,708 [DEBUG][       Thread-261229][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 16:37:27,716 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 16:37:27,716 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 16:37:27,724 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 16:37:27,733 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 16:37:27,733 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 16:37:27,733 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 16:37:27,741 [DEBUG][       Thread-261229][   transport.py][1871] : EOF in transport thread
2025-06-13 16:37:35,716 [DEBUG][Thread-261232 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:37:37,736 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 16:37:37,736 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 16:37:37,736 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 16:37:37,739 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 16:37:38,198 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 16, 37, 27), 16.43, 31.76, 0.0, 14.22, 13.35, 0, 0, 0, 2, 0, 0),)
2025-06-13 16:37:38,198 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 16:37:27
2025-06-13 16:37:38,276 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 16:37:38,282 [DEBUG][       Thread-261233][   transport.py][1871] : starting thread (client mode): 0x86352350
2025-06-13 16:37:38,282 [DEBUG][       Thread-261233][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 16:37:38,303 [DEBUG][       Thread-261233][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 16:37:38,303 [ INFO][       Thread-261233][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 16:37:38,306 [DEBUG][       Thread-261233][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 16:37:38,307 [DEBUG][       Thread-261233][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 16:37:38,307 [DEBUG][       Thread-261233][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 16:37:38,307 [DEBUG][       Thread-261233][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:37:38,307 [DEBUG][       Thread-261233][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:37:38,307 [DEBUG][       Thread-261233][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:37:38,307 [DEBUG][       Thread-261233][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:37:38,307 [DEBUG][       Thread-261233][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 16:37:38,307 [DEBUG][       Thread-261233][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 16:37:38,307 [DEBUG][       Thread-261233][   transport.py][1871] : client lang: <none>
2025-06-13 16:37:38,307 [DEBUG][       Thread-261233][   transport.py][1871] : server lang: <none>
2025-06-13 16:37:38,307 [DEBUG][       Thread-261233][   transport.py][1871] : kex follows: False
2025-06-13 16:37:38,307 [DEBUG][       Thread-261233][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 16:37:38,307 [DEBUG][       Thread-261233][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 16:37:38,307 [DEBUG][       Thread-261233][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 16:37:38,307 [DEBUG][       Thread-261233][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 16:37:38,307 [DEBUG][       Thread-261233][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 16:37:38,307 [DEBUG][       Thread-261233][   transport.py][1871] : Compression: none
2025-06-13 16:37:38,307 [DEBUG][       Thread-261233][   transport.py][1871] : === End of kex handshake ===
2025-06-13 16:37:38,324 [DEBUG][       Thread-261233][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 16:37:38,324 [DEBUG][       Thread-261233][   transport.py][1871] : Switch to new keys ...
2025-06-13 16:37:38,325 [DEBUG][       Thread-261233][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 16:37:38,325 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 16:37:38,325 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 16:37:38,327 [DEBUG][       Thread-261233][   transport.py][1871] : userauth is OK
2025-06-13 16:37:38,352 [ INFO][       Thread-261233][   transport.py][1871] : Authentication (password) successful!
2025-06-13 16:37:38,353 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 16:37:39,000 [DEBUG][       Thread-261233][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 16:37:39,001 [DEBUG][       Thread-261233][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 16:37:39,045 [DEBUG][       Thread-261233][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 16:37:39,045 [DEBUG][       Thread-261233][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 16:37:39,048 [DEBUG][       Thread-261233][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 16:37:39,060 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 16:37:39,061 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 16:37:39,063 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 16:37:39,065 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 16:37:39,070 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 16:37:39,072 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 16:37:39,072 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 16:37:39,073 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 16:37:39,073 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.609310 -999.00  +13.10  17.26     37   -1.20 1 1 1 1 1   887    0 13.57 -45.39 ----- 15.6 17.3 48.4 20.3 15.4 -29.1 15.1 -29.3 15.2 -28.8 15.8 -28.3
2025-06-13 16:37:39,073 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 16:37:39,073 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 16:37:39,073 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.609310
2025-06-13 16:37:39,074 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 16:37:39,074 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 16:37:39,074 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 16:37:39,074 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 16:37:39,075 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 16:37:39,075 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T16:37:27', tmtdew=16.43, humidity=31.76, cloud=0.0, wind=14.22, temperature=13.35, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T14:37:24.384', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 16:37:39,076 [DEBUG][       Thread-261233][   transport.py][1871] : EOF in transport thread
2025-06-13 16:37:39,151 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 16:37:39,163 [DEBUG][       Thread-261236][   transport.py][1871] : starting thread (client mode): 0x863bdf90
2025-06-13 16:37:39,163 [DEBUG][       Thread-261236][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 16:37:39,178 [DEBUG][       Thread-261236][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 16:37:39,178 [ INFO][       Thread-261236][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 16:37:39,185 [DEBUG][       Thread-261236][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 16:37:39,185 [DEBUG][       Thread-261236][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 16:37:39,185 [DEBUG][       Thread-261236][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 16:37:39,186 [DEBUG][       Thread-261236][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:37:39,186 [DEBUG][       Thread-261236][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:37:39,186 [DEBUG][       Thread-261236][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:37:39,186 [DEBUG][       Thread-261236][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:37:39,186 [DEBUG][       Thread-261236][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 16:37:39,186 [DEBUG][       Thread-261236][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 16:37:39,186 [DEBUG][       Thread-261236][   transport.py][1871] : client lang: <none>
2025-06-13 16:37:39,186 [DEBUG][       Thread-261236][   transport.py][1871] : server lang: <none>
2025-06-13 16:37:39,186 [DEBUG][       Thread-261236][   transport.py][1871] : kex follows: False
2025-06-13 16:37:39,186 [DEBUG][       Thread-261236][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 16:37:39,186 [DEBUG][       Thread-261236][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 16:37:39,186 [DEBUG][       Thread-261236][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 16:37:39,186 [DEBUG][       Thread-261236][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 16:37:39,186 [DEBUG][       Thread-261236][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 16:37:39,186 [DEBUG][       Thread-261236][   transport.py][1871] : Compression: none
2025-06-13 16:37:39,186 [DEBUG][       Thread-261236][   transport.py][1871] : === End of kex handshake ===
2025-06-13 16:37:39,242 [DEBUG][       Thread-261236][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 16:37:39,243 [DEBUG][       Thread-261236][   transport.py][1871] : Switch to new keys ...
2025-06-13 16:37:39,243 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 16:37:39,244 [DEBUG][       Thread-261236][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 16:37:39,245 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 16:37:39,305 [DEBUG][       Thread-261236][   transport.py][1871] : userauth is OK
2025-06-13 16:37:39,305 [DEBUG][       Thread-261236][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 16:37:39,305 [DEBUG][       Thread-261236][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 16:37:39,305 [DEBUG][       Thread-261236][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 16:37:39,305 [DEBUG][       Thread-261236][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 16:37:39,324 [ INFO][       Thread-261236][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 16:37:39,324 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 16:37:39,325 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 16:37:40,290 [DEBUG][       Thread-261236][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 16:37:40,290 [DEBUG][       Thread-261236][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 16:37:40,340 [DEBUG][       Thread-261236][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 16:37:40,340 [DEBUG][       Thread-261236][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 16:37:40,349 [DEBUG][       Thread-261236][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 16:37:40,357 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 16:37:40,357 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 16:37:40,371 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 16:37:40,380 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 16:37:40,380 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 16:37:40,381 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 16:37:40,389 [DEBUG][       Thread-261236][   transport.py][1871] : EOF in transport thread
2025-06-13 16:37:44,736 [DEBUG][Thread-261238 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:37:50,391 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 16:37:50,392 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 16:37:50,392 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 16:37:50,395 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 16:37:50,853 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 16, 37, 27), 16.43, 31.76, 0.0, 14.22, 13.35, 0, 0, 0, 2, 0, 0),)
2025-06-13 16:37:50,853 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 16:37:27
2025-06-13 16:37:50,932 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 16:37:50,936 [DEBUG][       Thread-261239][   transport.py][1871] : starting thread (client mode): 0x867fdf90
2025-06-13 16:37:50,936 [DEBUG][       Thread-261239][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 16:37:50,956 [DEBUG][       Thread-261239][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 16:37:50,956 [ INFO][       Thread-261239][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 16:37:50,959 [DEBUG][       Thread-261239][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 16:37:50,959 [DEBUG][       Thread-261239][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 16:37:50,959 [DEBUG][       Thread-261239][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 16:37:50,959 [DEBUG][       Thread-261239][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:37:50,959 [DEBUG][       Thread-261239][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:37:50,959 [DEBUG][       Thread-261239][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:37:50,960 [DEBUG][       Thread-261239][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:37:50,960 [DEBUG][       Thread-261239][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 16:37:50,960 [DEBUG][       Thread-261239][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 16:37:50,960 [DEBUG][       Thread-261239][   transport.py][1871] : client lang: <none>
2025-06-13 16:37:50,960 [DEBUG][       Thread-261239][   transport.py][1871] : server lang: <none>
2025-06-13 16:37:50,960 [DEBUG][       Thread-261239][   transport.py][1871] : kex follows: False
2025-06-13 16:37:50,960 [DEBUG][       Thread-261239][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 16:37:50,960 [DEBUG][       Thread-261239][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 16:37:50,960 [DEBUG][       Thread-261239][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 16:37:50,960 [DEBUG][       Thread-261239][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 16:37:50,960 [DEBUG][       Thread-261239][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 16:37:50,960 [DEBUG][       Thread-261239][   transport.py][1871] : Compression: none
2025-06-13 16:37:50,960 [DEBUG][       Thread-261239][   transport.py][1871] : === End of kex handshake ===
2025-06-13 16:37:50,977 [DEBUG][       Thread-261239][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 16:37:50,977 [DEBUG][       Thread-261239][   transport.py][1871] : Switch to new keys ...
2025-06-13 16:37:50,978 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 16:37:50,978 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 16:37:50,978 [DEBUG][       Thread-261239][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 16:37:50,979 [DEBUG][       Thread-261239][   transport.py][1871] : userauth is OK
2025-06-13 16:37:50,992 [ INFO][       Thread-261239][   transport.py][1871] : Authentication (password) successful!
2025-06-13 16:37:50,993 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 16:37:51,627 [DEBUG][       Thread-261239][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 16:37:51,627 [DEBUG][       Thread-261239][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 16:37:51,669 [DEBUG][       Thread-261239][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 16:37:51,669 [DEBUG][       Thread-261239][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 16:37:51,673 [DEBUG][       Thread-261239][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 16:37:51,685 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 16:37:51,685 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 16:37:51,687 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 16:37:51,689 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 16:37:51,695 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 16:37:51,697 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 16:37:51,697 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 16:37:51,698 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 16:37:51,698 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.609310 -999.00  +13.10  17.26     37   -1.20 1 1 1 1 1   887    0 13.57 -45.39 ----- 15.6 17.3 48.4 20.3 15.4 -29.1 15.1 -29.3 15.2 -28.8 15.8 -28.3
2025-06-13 16:37:51,698 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 16:37:51,698 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 16:37:51,698 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.609310
2025-06-13 16:37:51,699 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 16:37:51,699 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 16:37:51,699 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 16:37:51,700 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 16:37:51,700 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 16:37:51,700 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T16:37:27', tmtdew=16.43, humidity=31.76, cloud=0.0, wind=14.22, temperature=13.35, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T14:37:24.384', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 16:37:51,701 [DEBUG][       Thread-261239][   transport.py][1871] : EOF in transport thread
2025-06-13 16:37:51,783 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 16:37:51,793 [DEBUG][       Thread-261242][   transport.py][1871] : starting thread (client mode): 0x867b5690
2025-06-13 16:37:51,793 [DEBUG][       Thread-261242][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 16:37:51,811 [DEBUG][       Thread-261242][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 16:37:51,811 [ INFO][       Thread-261242][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 16:37:51,823 [DEBUG][       Thread-261242][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 16:37:51,823 [DEBUG][       Thread-261242][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 16:37:51,823 [DEBUG][       Thread-261242][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 16:37:51,823 [DEBUG][       Thread-261242][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:37:51,823 [DEBUG][       Thread-261242][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:37:51,824 [DEBUG][       Thread-261242][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:37:51,824 [DEBUG][       Thread-261242][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:37:51,824 [DEBUG][       Thread-261242][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 16:37:51,824 [DEBUG][       Thread-261242][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 16:37:51,824 [DEBUG][       Thread-261242][   transport.py][1871] : client lang: <none>
2025-06-13 16:37:51,824 [DEBUG][       Thread-261242][   transport.py][1871] : server lang: <none>
2025-06-13 16:37:51,824 [DEBUG][       Thread-261242][   transport.py][1871] : kex follows: False
2025-06-13 16:37:51,824 [DEBUG][       Thread-261242][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 16:37:51,824 [DEBUG][       Thread-261242][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 16:37:51,824 [DEBUG][       Thread-261242][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 16:37:51,824 [DEBUG][       Thread-261242][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 16:37:51,824 [DEBUG][       Thread-261242][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 16:37:51,824 [DEBUG][       Thread-261242][   transport.py][1871] : Compression: none
2025-06-13 16:37:51,824 [DEBUG][       Thread-261242][   transport.py][1871] : === End of kex handshake ===
2025-06-13 16:37:51,878 [DEBUG][       Thread-261242][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 16:37:51,879 [DEBUG][       Thread-261242][   transport.py][1871] : Switch to new keys ...
2025-06-13 16:37:51,879 [DEBUG][       Thread-261242][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 16:37:51,880 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 16:37:51,881 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 16:37:51,934 [DEBUG][       Thread-261242][   transport.py][1871] : userauth is OK
2025-06-13 16:37:51,935 [DEBUG][       Thread-261242][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 16:37:51,935 [DEBUG][       Thread-261242][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 16:37:51,935 [DEBUG][       Thread-261242][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 16:37:51,935 [DEBUG][       Thread-261242][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 16:37:51,954 [ INFO][       Thread-261242][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 16:37:51,955 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 16:37:51,955 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 16:37:52,967 [DEBUG][       Thread-261242][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 16:37:52,968 [DEBUG][       Thread-261242][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 16:37:53,016 [DEBUG][       Thread-261242][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 16:37:53,016 [DEBUG][       Thread-261242][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 16:37:53,025 [DEBUG][       Thread-261242][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 16:37:53,034 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 16:37:53,034 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 16:37:53,043 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 16:37:53,058 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 16:37:53,058 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 16:37:53,059 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 16:37:53,068 [DEBUG][       Thread-261242][   transport.py][1871] : EOF in transport thread
2025-06-13 16:37:53,769 [DEBUG][Thread-261244 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:38:02,787 [DEBUG][Thread-261245 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:38:03,069 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 16:38:03,069 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 16:38:03,069 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 16:38:03,072 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 16:38:03,524 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 16, 37, 58), 16.36, 31.91, 0.0, 16.3, 13.33, 0, 0, 0, 2, 0, 0),)
2025-06-13 16:38:03,524 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 16:37:58
2025-06-13 16:38:03,606 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 16:38:03,612 [DEBUG][       Thread-261246][   transport.py][1871] : starting thread (client mode): 0x8636b040
2025-06-13 16:38:03,612 [DEBUG][       Thread-261246][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 16:38:03,633 [DEBUG][       Thread-261246][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 16:38:03,633 [ INFO][       Thread-261246][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 16:38:03,636 [DEBUG][       Thread-261246][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 16:38:03,637 [DEBUG][       Thread-261246][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 16:38:03,637 [DEBUG][       Thread-261246][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 16:38:03,637 [DEBUG][       Thread-261246][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:38:03,637 [DEBUG][       Thread-261246][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:38:03,637 [DEBUG][       Thread-261246][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:38:03,637 [DEBUG][       Thread-261246][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:38:03,637 [DEBUG][       Thread-261246][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 16:38:03,637 [DEBUG][       Thread-261246][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 16:38:03,637 [DEBUG][       Thread-261246][   transport.py][1871] : client lang: <none>
2025-06-13 16:38:03,637 [DEBUG][       Thread-261246][   transport.py][1871] : server lang: <none>
2025-06-13 16:38:03,637 [DEBUG][       Thread-261246][   transport.py][1871] : kex follows: False
2025-06-13 16:38:03,637 [DEBUG][       Thread-261246][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 16:38:03,637 [DEBUG][       Thread-261246][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 16:38:03,637 [DEBUG][       Thread-261246][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 16:38:03,637 [DEBUG][       Thread-261246][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 16:38:03,637 [DEBUG][       Thread-261246][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 16:38:03,637 [DEBUG][       Thread-261246][   transport.py][1871] : Compression: none
2025-06-13 16:38:03,637 [DEBUG][       Thread-261246][   transport.py][1871] : === End of kex handshake ===
2025-06-13 16:38:03,654 [DEBUG][       Thread-261246][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 16:38:03,654 [DEBUG][       Thread-261246][   transport.py][1871] : Switch to new keys ...
2025-06-13 16:38:03,655 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 16:38:03,655 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 16:38:03,656 [DEBUG][       Thread-261246][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 16:38:03,656 [DEBUG][       Thread-261246][   transport.py][1871] : userauth is OK
2025-06-13 16:38:03,669 [ INFO][       Thread-261246][   transport.py][1871] : Authentication (password) successful!
2025-06-13 16:38:03,670 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 16:38:04,372 [DEBUG][       Thread-261246][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 16:38:04,373 [DEBUG][       Thread-261246][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 16:38:04,417 [DEBUG][       Thread-261246][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 16:38:04,418 [DEBUG][       Thread-261246][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 16:38:04,421 [DEBUG][       Thread-261246][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 16:38:04,433 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 16:38:04,434 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 16:38:04,435 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 16:38:04,438 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 16:38:04,443 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 16:38:04,445 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 16:38:04,445 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 16:38:04,446 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 16:38:04,446 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.609310 -999.00  +13.10  17.26     37   -1.20 1 1 1 1 1   887    0 13.57 -45.39 ----- 15.6 17.3 48.4 20.3 15.4 -29.1 15.1 -29.3 15.2 -28.8 15.8 -28.3
2025-06-13 16:38:04,446 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 16:38:04,446 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 16:38:04,446 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.609310
2025-06-13 16:38:04,447 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 16:38:04,447 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 16:38:04,447 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 16:38:04,447 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 16:38:04,447 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 16:38:04,448 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T16:37:58', tmtdew=16.36, humidity=31.91, cloud=0.0, wind=16.3, temperature=13.33, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T14:37:24.384', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 16:38:04,449 [DEBUG][       Thread-261246][   transport.py][1871] : EOF in transport thread
2025-06-13 16:38:04,531 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 16:38:04,544 [DEBUG][       Thread-261249][   transport.py][1871] : starting thread (client mode): 0x863bea70
2025-06-13 16:38:04,545 [DEBUG][       Thread-261249][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 16:38:04,561 [DEBUG][       Thread-261249][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 16:38:04,561 [ INFO][       Thread-261249][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 16:38:04,568 [DEBUG][       Thread-261249][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 16:38:04,569 [DEBUG][       Thread-261249][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 16:38:04,569 [DEBUG][       Thread-261249][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 16:38:04,569 [DEBUG][       Thread-261249][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:38:04,569 [DEBUG][       Thread-261249][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:38:04,569 [DEBUG][       Thread-261249][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:38:04,569 [DEBUG][       Thread-261249][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:38:04,569 [DEBUG][       Thread-261249][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 16:38:04,569 [DEBUG][       Thread-261249][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 16:38:04,569 [DEBUG][       Thread-261249][   transport.py][1871] : client lang: <none>
2025-06-13 16:38:04,569 [DEBUG][       Thread-261249][   transport.py][1871] : server lang: <none>
2025-06-13 16:38:04,569 [DEBUG][       Thread-261249][   transport.py][1871] : kex follows: False
2025-06-13 16:38:04,569 [DEBUG][       Thread-261249][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 16:38:04,569 [DEBUG][       Thread-261249][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 16:38:04,569 [DEBUG][       Thread-261249][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 16:38:04,569 [DEBUG][       Thread-261249][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 16:38:04,569 [DEBUG][       Thread-261249][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 16:38:04,570 [DEBUG][       Thread-261249][   transport.py][1871] : Compression: none
2025-06-13 16:38:04,570 [DEBUG][       Thread-261249][   transport.py][1871] : === End of kex handshake ===
2025-06-13 16:38:04,629 [DEBUG][       Thread-261249][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 16:38:04,630 [DEBUG][       Thread-261249][   transport.py][1871] : Switch to new keys ...
2025-06-13 16:38:04,631 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 16:38:04,631 [DEBUG][       Thread-261249][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 16:38:04,632 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 16:38:04,686 [DEBUG][       Thread-261249][   transport.py][1871] : userauth is OK
2025-06-13 16:38:04,687 [DEBUG][       Thread-261249][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 16:38:04,687 [DEBUG][       Thread-261249][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 16:38:04,687 [DEBUG][       Thread-261249][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 16:38:04,687 [DEBUG][       Thread-261249][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 16:38:04,706 [ INFO][       Thread-261249][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 16:38:04,706 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 16:38:04,707 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 16:38:05,410 [DEBUG][Thread-261251 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:38:05,738 [DEBUG][       Thread-261249][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 16:38:05,739 [DEBUG][       Thread-261249][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 16:38:05,788 [DEBUG][       Thread-261249][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 16:38:05,788 [DEBUG][       Thread-261249][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 16:38:05,800 [DEBUG][       Thread-261249][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 16:38:05,809 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 16:38:05,809 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 16:38:05,818 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 16:38:05,828 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 16:38:05,828 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 16:38:05,829 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 16:38:05,836 [DEBUG][       Thread-261249][   transport.py][1871] : EOF in transport thread
2025-06-13 16:38:06,463 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:38:06,465 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:38:11,809 [DEBUG][Thread-261252 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:38:15,839 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 16:38:15,840 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 16:38:15,840 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 16:38:15,842 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 16:38:16,298 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 16, 37, 58), 16.36, 31.91, 0.0, 16.3, 13.33, 0, 0, 0, 2, 0, 0),)
2025-06-13 16:38:16,299 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 16:37:58
2025-06-13 16:38:16,381 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 16:38:16,386 [DEBUG][       Thread-261253][   transport.py][1871] : starting thread (client mode): 0x863696c0
2025-06-13 16:38:16,386 [DEBUG][       Thread-261253][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 16:38:16,408 [DEBUG][       Thread-261253][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 16:38:16,408 [ INFO][       Thread-261253][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 16:38:16,412 [DEBUG][       Thread-261253][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 16:38:16,412 [DEBUG][       Thread-261253][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 16:38:16,412 [DEBUG][       Thread-261253][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 16:38:16,412 [DEBUG][       Thread-261253][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:38:16,412 [DEBUG][       Thread-261253][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:38:16,412 [DEBUG][       Thread-261253][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:38:16,412 [DEBUG][       Thread-261253][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:38:16,412 [DEBUG][       Thread-261253][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 16:38:16,412 [DEBUG][       Thread-261253][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 16:38:16,412 [DEBUG][       Thread-261253][   transport.py][1871] : client lang: <none>
2025-06-13 16:38:16,412 [DEBUG][       Thread-261253][   transport.py][1871] : server lang: <none>
2025-06-13 16:38:16,412 [DEBUG][       Thread-261253][   transport.py][1871] : kex follows: False
2025-06-13 16:38:16,412 [DEBUG][       Thread-261253][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 16:38:16,412 [DEBUG][       Thread-261253][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 16:38:16,412 [DEBUG][       Thread-261253][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 16:38:16,412 [DEBUG][       Thread-261253][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 16:38:16,412 [DEBUG][       Thread-261253][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 16:38:16,412 [DEBUG][       Thread-261253][   transport.py][1871] : Compression: none
2025-06-13 16:38:16,412 [DEBUG][       Thread-261253][   transport.py][1871] : === End of kex handshake ===
2025-06-13 16:38:16,428 [DEBUG][       Thread-261253][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 16:38:16,429 [DEBUG][       Thread-261253][   transport.py][1871] : Switch to new keys ...
2025-06-13 16:38:16,429 [DEBUG][       Thread-261253][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 16:38:16,429 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 16:38:16,429 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 16:38:16,430 [DEBUG][       Thread-261253][   transport.py][1871] : userauth is OK
2025-06-13 16:38:16,444 [ INFO][       Thread-261253][   transport.py][1871] : Authentication (password) successful!
2025-06-13 16:38:16,444 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 16:38:17,097 [DEBUG][       Thread-261253][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 16:38:17,098 [DEBUG][       Thread-261253][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 16:38:17,141 [DEBUG][       Thread-261253][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 16:38:17,141 [DEBUG][       Thread-261253][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 16:38:17,145 [DEBUG][       Thread-261253][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 16:38:17,157 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 16:38:17,157 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 16:38:17,159 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 16:38:17,161 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 16:38:17,167 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 16:38:17,170 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 16:38:17,170 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 16:38:17,171 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 16:38:17,171 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.609657 -999.00  +13.10  14.98     37   -1.10 1 1 1 1 1   887    0 13.49 -49.06 ----- 18.0 15.0 47.2 23.6 15.4 -28.8 15.0 -29.5 15.2 -29.2 15.8 -28.0
2025-06-13 16:38:17,171 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 16:38:17,171 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 16:38:17,171 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.609657
2025-06-13 16:38:17,171 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 16:38:17,172 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 16:38:17,172 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 16:38:17,172 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 16:38:17,172 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 16:38:17,172 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T16:37:58', tmtdew=16.36, humidity=31.91, cloud=0.0, wind=16.3, temperature=13.33, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T14:37:54.365', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 16:38:17,173 [DEBUG][       Thread-261253][   transport.py][1871] : EOF in transport thread
2025-06-13 16:38:17,258 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 16:38:17,270 [DEBUG][       Thread-261256][   transport.py][1871] : starting thread (client mode): 0x863bea70
2025-06-13 16:38:17,270 [DEBUG][       Thread-261256][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 16:38:17,286 [DEBUG][       Thread-261256][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 16:38:17,286 [ INFO][       Thread-261256][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 16:38:17,294 [DEBUG][       Thread-261256][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 16:38:17,294 [DEBUG][       Thread-261256][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 16:38:17,294 [DEBUG][       Thread-261256][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 16:38:17,294 [DEBUG][       Thread-261256][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:38:17,294 [DEBUG][       Thread-261256][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:38:17,294 [DEBUG][       Thread-261256][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:38:17,294 [DEBUG][       Thread-261256][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:38:17,294 [DEBUG][       Thread-261256][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 16:38:17,294 [DEBUG][       Thread-261256][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 16:38:17,294 [DEBUG][       Thread-261256][   transport.py][1871] : client lang: <none>
2025-06-13 16:38:17,294 [DEBUG][       Thread-261256][   transport.py][1871] : server lang: <none>
2025-06-13 16:38:17,294 [DEBUG][       Thread-261256][   transport.py][1871] : kex follows: False
2025-06-13 16:38:17,294 [DEBUG][       Thread-261256][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 16:38:17,295 [DEBUG][       Thread-261256][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 16:38:17,295 [DEBUG][       Thread-261256][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 16:38:17,295 [DEBUG][       Thread-261256][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 16:38:17,295 [DEBUG][       Thread-261256][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 16:38:17,295 [DEBUG][       Thread-261256][   transport.py][1871] : Compression: none
2025-06-13 16:38:17,295 [DEBUG][       Thread-261256][   transport.py][1871] : === End of kex handshake ===
2025-06-13 16:38:17,350 [DEBUG][       Thread-261256][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 16:38:17,351 [DEBUG][       Thread-261256][   transport.py][1871] : Switch to new keys ...
2025-06-13 16:38:17,351 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 16:38:17,352 [DEBUG][       Thread-261256][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 16:38:17,353 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 16:38:17,410 [DEBUG][       Thread-261256][   transport.py][1871] : userauth is OK
2025-06-13 16:38:17,410 [DEBUG][       Thread-261256][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 16:38:17,410 [DEBUG][       Thread-261256][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 16:38:17,411 [DEBUG][       Thread-261256][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 16:38:17,411 [DEBUG][       Thread-261256][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 16:38:17,429 [ INFO][       Thread-261256][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 16:38:17,429 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 16:38:17,430 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 16:38:18,425 [DEBUG][       Thread-261256][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 16:38:18,425 [DEBUG][       Thread-261256][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 16:38:18,479 [DEBUG][       Thread-261256][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 16:38:18,479 [DEBUG][       Thread-261256][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 16:38:18,489 [DEBUG][       Thread-261256][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 16:38:18,501 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 16:38:18,501 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 16:38:18,511 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 16:38:18,521 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 16:38:18,521 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 16:38:18,521 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 16:38:18,530 [DEBUG][       Thread-261256][   transport.py][1871] : EOF in transport thread
2025-06-13 16:38:19,130 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:38:19,131 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:38:20,842 [DEBUG][Thread-261258 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:38:23,821 [DEBUG][Thread-261259 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:38:28,528 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 16:38:28,528 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 16:38:28,528 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 16:38:28,531 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 16:38:28,989 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 16, 37, 58), 16.36, 31.91, 0.0, 16.3, 13.33, 0, 0, 0, 2, 0, 0),)
2025-06-13 16:38:28,989 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 16:37:58
2025-06-13 16:38:29,071 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 16:38:29,075 [DEBUG][       Thread-261260][   transport.py][1871] : starting thread (client mode): 0x867ff670
2025-06-13 16:38:29,075 [DEBUG][       Thread-261260][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 16:38:29,098 [DEBUG][       Thread-261260][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 16:38:29,098 [ INFO][       Thread-261260][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 16:38:29,102 [DEBUG][       Thread-261260][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 16:38:29,102 [DEBUG][       Thread-261260][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 16:38:29,102 [DEBUG][       Thread-261260][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 16:38:29,102 [DEBUG][       Thread-261260][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:38:29,102 [DEBUG][       Thread-261260][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:38:29,102 [DEBUG][       Thread-261260][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:38:29,102 [DEBUG][       Thread-261260][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:38:29,102 [DEBUG][       Thread-261260][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 16:38:29,102 [DEBUG][       Thread-261260][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 16:38:29,102 [DEBUG][       Thread-261260][   transport.py][1871] : client lang: <none>
2025-06-13 16:38:29,102 [DEBUG][       Thread-261260][   transport.py][1871] : server lang: <none>
2025-06-13 16:38:29,102 [DEBUG][       Thread-261260][   transport.py][1871] : kex follows: False
2025-06-13 16:38:29,102 [DEBUG][       Thread-261260][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 16:38:29,102 [DEBUG][       Thread-261260][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 16:38:29,102 [DEBUG][       Thread-261260][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 16:38:29,102 [DEBUG][       Thread-261260][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 16:38:29,102 [DEBUG][       Thread-261260][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 16:38:29,102 [DEBUG][       Thread-261260][   transport.py][1871] : Compression: none
2025-06-13 16:38:29,102 [DEBUG][       Thread-261260][   transport.py][1871] : === End of kex handshake ===
2025-06-13 16:38:29,119 [DEBUG][       Thread-261260][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 16:38:29,119 [DEBUG][       Thread-261260][   transport.py][1871] : Switch to new keys ...
2025-06-13 16:38:29,120 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 16:38:29,120 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 16:38:29,121 [DEBUG][       Thread-261260][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 16:38:29,121 [DEBUG][       Thread-261260][   transport.py][1871] : userauth is OK
2025-06-13 16:38:29,134 [ INFO][       Thread-261260][   transport.py][1871] : Authentication (password) successful!
2025-06-13 16:38:29,135 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 16:38:29,804 [DEBUG][       Thread-261260][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 16:38:29,804 [DEBUG][       Thread-261260][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 16:38:29,845 [DEBUG][       Thread-261260][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 16:38:29,845 [DEBUG][       Thread-261260][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 16:38:29,849 [DEBUG][       Thread-261260][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 16:38:29,862 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 16:38:29,862 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 16:38:29,864 [DEBUG][Thread-261262 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:38:29,865 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 16:38:29,867 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 16:38:29,873 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 16:38:29,875 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 16:38:29,876 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 16:38:29,876 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 16:38:29,877 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.609657 -999.00  +13.10  14.98     37   -1.10 1 1 1 1 1   887    0 13.49 -49.06 ----- 18.0 15.0 47.2 23.6 15.4 -28.8 15.0 -29.5 15.2 -29.2 15.8 -28.0
2025-06-13 16:38:29,877 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 16:38:29,877 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 16:38:29,877 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.609657
2025-06-13 16:38:29,877 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 16:38:29,878 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 16:38:29,878 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 16:38:29,878 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 16:38:29,878 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 16:38:29,878 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T16:37:58', tmtdew=16.36, humidity=31.91, cloud=0.0, wind=16.3, temperature=13.33, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T14:37:54.365', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 16:38:29,878 [DEBUG][       Thread-261260][   transport.py][1871] : EOF in transport thread
2025-06-13 16:38:29,962 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 16:38:29,972 [DEBUG][       Thread-261264][   transport.py][1871] : starting thread (client mode): 0x867b7010
2025-06-13 16:38:29,972 [DEBUG][       Thread-261264][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 16:38:29,987 [DEBUG][       Thread-261264][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 16:38:29,987 [ INFO][       Thread-261264][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 16:38:29,994 [DEBUG][       Thread-261264][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 16:38:29,994 [DEBUG][       Thread-261264][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 16:38:29,995 [DEBUG][       Thread-261264][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 16:38:29,995 [DEBUG][       Thread-261264][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:38:29,995 [DEBUG][       Thread-261264][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:38:29,995 [DEBUG][       Thread-261264][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:38:29,995 [DEBUG][       Thread-261264][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:38:29,995 [DEBUG][       Thread-261264][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 16:38:29,995 [DEBUG][       Thread-261264][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 16:38:29,995 [DEBUG][       Thread-261264][   transport.py][1871] : client lang: <none>
2025-06-13 16:38:29,995 [DEBUG][       Thread-261264][   transport.py][1871] : server lang: <none>
2025-06-13 16:38:29,995 [DEBUG][       Thread-261264][   transport.py][1871] : kex follows: False
2025-06-13 16:38:29,995 [DEBUG][       Thread-261264][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 16:38:29,995 [DEBUG][       Thread-261264][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 16:38:29,995 [DEBUG][       Thread-261264][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 16:38:29,995 [DEBUG][       Thread-261264][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 16:38:29,995 [DEBUG][       Thread-261264][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 16:38:29,995 [DEBUG][       Thread-261264][   transport.py][1871] : Compression: none
2025-06-13 16:38:29,995 [DEBUG][       Thread-261264][   transport.py][1871] : === End of kex handshake ===
2025-06-13 16:38:30,054 [DEBUG][       Thread-261264][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 16:38:30,055 [DEBUG][       Thread-261264][   transport.py][1871] : Switch to new keys ...
2025-06-13 16:38:30,056 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 16:38:30,056 [DEBUG][       Thread-261264][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 16:38:30,057 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 16:38:30,110 [DEBUG][       Thread-261264][   transport.py][1871] : userauth is OK
2025-06-13 16:38:30,111 [DEBUG][       Thread-261264][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 16:38:30,111 [DEBUG][       Thread-261264][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 16:38:30,111 [DEBUG][       Thread-261264][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 16:38:30,111 [DEBUG][       Thread-261264][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 16:38:30,138 [ INFO][       Thread-261264][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 16:38:30,138 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 16:38:30,139 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 16:38:31,147 [DEBUG][       Thread-261264][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 16:38:31,147 [DEBUG][       Thread-261264][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 16:38:31,195 [DEBUG][       Thread-261264][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 16:38:31,196 [DEBUG][       Thread-261264][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 16:38:31,204 [DEBUG][       Thread-261264][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 16:38:31,213 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 16:38:31,213 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 16:38:31,221 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 16:38:31,230 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 16:38:31,230 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 16:38:31,230 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 16:38:31,238 [DEBUG][       Thread-261264][   transport.py][1871] : EOF in transport thread
2025-06-13 16:38:38,884 [DEBUG][Thread-261266 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:38:41,241 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 16:38:41,241 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 16:38:41,241 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 16:38:41,244 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 16:38:41,698 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 16, 38, 30), 16.42, 32.04, 0.0, 16.32, 13.39, 0, 0, 0, 2, 0, 0),)
2025-06-13 16:38:41,698 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 16:38:30
2025-06-13 16:38:41,779 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 16:38:41,785 [DEBUG][       Thread-261267][   transport.py][1871] : starting thread (client mode): 0x863537f0
2025-06-13 16:38:41,785 [DEBUG][       Thread-261267][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 16:38:41,805 [DEBUG][       Thread-261267][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 16:38:41,805 [ INFO][       Thread-261267][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 16:38:41,809 [DEBUG][       Thread-261267][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 16:38:41,809 [DEBUG][       Thread-261267][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 16:38:41,809 [DEBUG][       Thread-261267][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 16:38:41,809 [DEBUG][       Thread-261267][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:38:41,809 [DEBUG][       Thread-261267][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:38:41,809 [DEBUG][       Thread-261267][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:38:41,809 [DEBUG][       Thread-261267][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:38:41,809 [DEBUG][       Thread-261267][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 16:38:41,809 [DEBUG][       Thread-261267][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 16:38:41,809 [DEBUG][       Thread-261267][   transport.py][1871] : client lang: <none>
2025-06-13 16:38:41,809 [DEBUG][       Thread-261267][   transport.py][1871] : server lang: <none>
2025-06-13 16:38:41,809 [DEBUG][       Thread-261267][   transport.py][1871] : kex follows: False
2025-06-13 16:38:41,809 [DEBUG][       Thread-261267][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 16:38:41,809 [DEBUG][       Thread-261267][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 16:38:41,809 [DEBUG][       Thread-261267][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 16:38:41,809 [DEBUG][       Thread-261267][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 16:38:41,809 [DEBUG][       Thread-261267][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 16:38:41,809 [DEBUG][       Thread-261267][   transport.py][1871] : Compression: none
2025-06-13 16:38:41,809 [DEBUG][       Thread-261267][   transport.py][1871] : === End of kex handshake ===
2025-06-13 16:38:41,825 [DEBUG][       Thread-261267][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 16:38:41,826 [DEBUG][       Thread-261267][   transport.py][1871] : Switch to new keys ...
2025-06-13 16:38:41,826 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 16:38:41,826 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 16:38:41,827 [DEBUG][       Thread-261267][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 16:38:41,828 [DEBUG][       Thread-261267][   transport.py][1871] : userauth is OK
2025-06-13 16:38:41,841 [ INFO][       Thread-261267][   transport.py][1871] : Authentication (password) successful!
2025-06-13 16:38:41,842 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 16:38:42,410 [DEBUG][       Thread-261267][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 16:38:42,410 [DEBUG][       Thread-261267][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 16:38:42,453 [DEBUG][       Thread-261267][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 16:38:42,453 [DEBUG][       Thread-261267][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 16:38:42,455 [DEBUG][       Thread-261267][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 16:38:42,467 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 16:38:42,468 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 16:38:42,471 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 16:38:42,475 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 16:38:42,485 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 16:38:42,487 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 16:38:42,487 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 16:38:42,488 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 16:38:42,488 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.610004 -999.00  +13.10  18.02     37   -0.90 1 1 1 1 1   887    0 13.30 -50.48 ----- 17.7 18.0 46.6 19.3 15.4 -29.0 14.9 -29.2 15.2 -28.3 15.8 -27.7
2025-06-13 16:38:42,488 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 16:38:42,488 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 16:38:42,488 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.610004
2025-06-13 16:38:42,489 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 16:38:42,489 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 16:38:42,489 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 16:38:42,489 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 16:38:42,489 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 16:38:42,490 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T16:38:30', tmtdew=16.42, humidity=32.04, cloud=0.0, wind=16.32, temperature=13.39, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T14:38:24.346', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 16:38:42,491 [DEBUG][       Thread-261267][   transport.py][1871] : EOF in transport thread
2025-06-13 16:38:42,573 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 16:38:42,584 [DEBUG][       Thread-261270][   transport.py][1871] : starting thread (client mode): 0x863cb850
2025-06-13 16:38:42,584 [DEBUG][       Thread-261270][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 16:38:42,599 [DEBUG][       Thread-261270][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 16:38:42,599 [ INFO][       Thread-261270][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 16:38:42,607 [DEBUG][       Thread-261270][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 16:38:42,607 [DEBUG][       Thread-261270][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 16:38:42,607 [DEBUG][       Thread-261270][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 16:38:42,607 [DEBUG][       Thread-261270][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:38:42,607 [DEBUG][       Thread-261270][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:38:42,607 [DEBUG][       Thread-261270][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:38:42,607 [DEBUG][       Thread-261270][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:38:42,607 [DEBUG][       Thread-261270][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 16:38:42,607 [DEBUG][       Thread-261270][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 16:38:42,607 [DEBUG][       Thread-261270][   transport.py][1871] : client lang: <none>
2025-06-13 16:38:42,607 [DEBUG][       Thread-261270][   transport.py][1871] : server lang: <none>
2025-06-13 16:38:42,607 [DEBUG][       Thread-261270][   transport.py][1871] : kex follows: False
2025-06-13 16:38:42,607 [DEBUG][       Thread-261270][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 16:38:42,607 [DEBUG][       Thread-261270][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 16:38:42,607 [DEBUG][       Thread-261270][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 16:38:42,608 [DEBUG][       Thread-261270][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 16:38:42,608 [DEBUG][       Thread-261270][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 16:38:42,608 [DEBUG][       Thread-261270][   transport.py][1871] : Compression: none
2025-06-13 16:38:42,608 [DEBUG][       Thread-261270][   transport.py][1871] : === End of kex handshake ===
2025-06-13 16:38:42,666 [DEBUG][       Thread-261270][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 16:38:42,666 [DEBUG][       Thread-261270][   transport.py][1871] : Switch to new keys ...
2025-06-13 16:38:42,667 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 16:38:42,667 [DEBUG][       Thread-261270][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 16:38:42,668 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 16:38:42,722 [DEBUG][       Thread-261270][   transport.py][1871] : userauth is OK
2025-06-13 16:38:42,723 [DEBUG][       Thread-261270][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 16:38:42,723 [DEBUG][       Thread-261270][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 16:38:42,723 [DEBUG][       Thread-261270][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 16:38:42,723 [DEBUG][       Thread-261270][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 16:38:42,741 [ INFO][       Thread-261270][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 16:38:42,742 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 16:38:42,742 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 16:38:43,737 [DEBUG][       Thread-261270][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 16:38:43,737 [DEBUG][       Thread-261270][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 16:38:43,788 [DEBUG][       Thread-261270][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 16:38:43,788 [DEBUG][       Thread-261270][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 16:38:43,797 [DEBUG][       Thread-261270][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 16:38:43,807 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 16:38:43,807 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 16:38:43,816 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 16:38:43,825 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 16:38:43,825 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 16:38:43,826 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 16:38:43,833 [DEBUG][       Thread-261270][   transport.py][1871] : EOF in transport thread
2025-06-13 16:38:47,907 [DEBUG][Thread-261272 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:38:53,836 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 16:38:53,837 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 16:38:53,837 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 16:38:53,839 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 16:38:54,299 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 16, 38, 30), 16.42, 32.04, 0.0, 16.32, 13.39, 0, 0, 0, 2, 0, 0),)
2025-06-13 16:38:54,299 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 16:38:30
2025-06-13 16:38:54,380 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 16:38:54,384 [DEBUG][       Thread-261273][   transport.py][1871] : starting thread (client mode): 0x867fc0a0
2025-06-13 16:38:54,384 [DEBUG][       Thread-261273][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 16:38:54,405 [DEBUG][       Thread-261273][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 16:38:54,405 [ INFO][       Thread-261273][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 16:38:54,409 [DEBUG][       Thread-261273][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 16:38:54,409 [DEBUG][       Thread-261273][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 16:38:54,409 [DEBUG][       Thread-261273][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 16:38:54,409 [DEBUG][       Thread-261273][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:38:54,409 [DEBUG][       Thread-261273][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:38:54,409 [DEBUG][       Thread-261273][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:38:54,409 [DEBUG][       Thread-261273][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:38:54,409 [DEBUG][       Thread-261273][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 16:38:54,409 [DEBUG][       Thread-261273][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 16:38:54,409 [DEBUG][       Thread-261273][   transport.py][1871] : client lang: <none>
2025-06-13 16:38:54,409 [DEBUG][       Thread-261273][   transport.py][1871] : server lang: <none>
2025-06-13 16:38:54,409 [DEBUG][       Thread-261273][   transport.py][1871] : kex follows: False
2025-06-13 16:38:54,409 [DEBUG][       Thread-261273][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 16:38:54,409 [DEBUG][       Thread-261273][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 16:38:54,409 [DEBUG][       Thread-261273][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 16:38:54,409 [DEBUG][       Thread-261273][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 16:38:54,409 [DEBUG][       Thread-261273][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 16:38:54,409 [DEBUG][       Thread-261273][   transport.py][1871] : Compression: none
2025-06-13 16:38:54,409 [DEBUG][       Thread-261273][   transport.py][1871] : === End of kex handshake ===
2025-06-13 16:38:54,426 [DEBUG][       Thread-261273][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 16:38:54,427 [DEBUG][       Thread-261273][   transport.py][1871] : Switch to new keys ...
2025-06-13 16:38:54,427 [DEBUG][       Thread-261273][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 16:38:54,427 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 16:38:54,428 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 16:38:54,428 [DEBUG][       Thread-261273][   transport.py][1871] : userauth is OK
2025-06-13 16:38:54,441 [ INFO][       Thread-261273][   transport.py][1871] : Authentication (password) successful!
2025-06-13 16:38:54,442 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 16:38:55,079 [DEBUG][       Thread-261273][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 16:38:55,079 [DEBUG][       Thread-261273][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 16:38:55,121 [DEBUG][       Thread-261273][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 16:38:55,121 [DEBUG][       Thread-261273][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 16:38:55,124 [DEBUG][       Thread-261273][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 16:38:55,135 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 16:38:55,136 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 16:38:55,138 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 16:38:55,139 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 16:38:55,144 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 16:38:55,146 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 16:38:55,147 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 16:38:55,147 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 16:38:55,147 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.610004 -999.00  +13.10  18.02     37   -0.90 1 1 1 1 1   887    0 13.30 -50.48 ----- 17.7 18.0 46.6 19.3 15.4 -29.0 14.9 -29.2 15.2 -28.3 15.8 -27.7
2025-06-13 16:38:55,148 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 16:38:55,148 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 16:38:55,148 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.610004
2025-06-13 16:38:55,148 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 16:38:55,149 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 16:38:55,149 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 16:38:55,149 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 16:38:55,149 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 16:38:55,149 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T16:38:30', tmtdew=16.42, humidity=32.04, cloud=0.0, wind=16.32, temperature=13.39, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T14:38:24.346', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 16:38:55,150 [DEBUG][       Thread-261273][   transport.py][1871] : EOF in transport thread
2025-06-13 16:38:55,233 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 16:38:56,943 [DEBUG][Thread-261276 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:39:05,967 [DEBUG][Thread-261277 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:39:06,548 [DEBUG][Thread-261278 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:39:07,630 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:39:07,632 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:39:14,985 [DEBUG][Thread-261279 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:39:19,269 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:39:19,270 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:39:23,853 [DEBUG][Thread-261280 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:39:24,006 [DEBUG][Thread-261281 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:39:33,029 [DEBUG][Thread-261282 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:39:42,051 [DEBUG][Thread-261283 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:39:51,070 [DEBUG][Thread-261284 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:40:00,088 [DEBUG][Thread-261285 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:40:07,708 [DEBUG][Thread-261286 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:40:08,751 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:40:08,753 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:40:09,112 [DEBUG][Thread-261287 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:40:18,134 [DEBUG][Thread-261288 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:40:19,412 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:40:19,413 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:40:23,906 [DEBUG][Thread-261289 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:40:27,155 [DEBUG][Thread-261290 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:40:36,177 [DEBUG][Thread-261291 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:40:45,199 [DEBUG][Thread-261292 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:40:54,222 [DEBUG][Thread-261293 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:41:03,245 [DEBUG][Thread-261294 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:41:05,300 [WARNING][ poll_weather_worker][      driver.py][ 286] : Unable to open ssh connection for writing weather state to io.saao.ac.za: [Errno 110] Connection timed out
2025-06-13 16:41:08,795 [DEBUG][Thread-261295 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:41:09,831 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:41:09,831 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:41:12,265 [DEBUG][Thread-261296 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:41:15,311 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 16:41:15,311 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 16:41:15,311 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 16:41:15,314 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 16:41:15,811 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 16, 41, 9), 16.63, 31.59, 0.0, 15.4, 13.41, 0, 0, 0, 2, 0, 0),)
2025-06-13 16:41:15,811 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 16:41:09
2025-06-13 16:41:15,893 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 16:41:15,897 [DEBUG][       Thread-261297][   transport.py][1871] : starting thread (client mode): 0x86392920
2025-06-13 16:41:15,897 [DEBUG][       Thread-261297][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 16:41:15,911 [DEBUG][       Thread-261297][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 16:41:15,911 [ INFO][       Thread-261297][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 16:41:15,915 [DEBUG][       Thread-261297][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 16:41:15,915 [DEBUG][       Thread-261297][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 16:41:15,915 [DEBUG][       Thread-261297][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 16:41:15,915 [DEBUG][       Thread-261297][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:41:15,915 [DEBUG][       Thread-261297][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:41:15,915 [DEBUG][       Thread-261297][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:41:15,915 [DEBUG][       Thread-261297][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:41:15,915 [DEBUG][       Thread-261297][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 16:41:15,915 [DEBUG][       Thread-261297][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 16:41:15,915 [DEBUG][       Thread-261297][   transport.py][1871] : client lang: <none>
2025-06-13 16:41:15,915 [DEBUG][       Thread-261297][   transport.py][1871] : server lang: <none>
2025-06-13 16:41:15,915 [DEBUG][       Thread-261297][   transport.py][1871] : kex follows: False
2025-06-13 16:41:15,915 [DEBUG][       Thread-261297][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 16:41:15,915 [DEBUG][       Thread-261297][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 16:41:15,915 [DEBUG][       Thread-261297][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 16:41:15,915 [DEBUG][       Thread-261297][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 16:41:15,915 [DEBUG][       Thread-261297][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 16:41:15,915 [DEBUG][       Thread-261297][   transport.py][1871] : Compression: none
2025-06-13 16:41:15,915 [DEBUG][       Thread-261297][   transport.py][1871] : === End of kex handshake ===
2025-06-13 16:41:15,933 [DEBUG][       Thread-261297][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 16:41:15,933 [DEBUG][       Thread-261297][   transport.py][1871] : Switch to new keys ...
2025-06-13 16:41:15,934 [DEBUG][       Thread-261297][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 16:41:15,934 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 16:41:15,934 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 16:41:15,935 [DEBUG][       Thread-261297][   transport.py][1871] : userauth is OK
2025-06-13 16:41:15,982 [ INFO][       Thread-261297][   transport.py][1871] : Authentication (password) successful!
2025-06-13 16:41:15,983 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 16:41:16,763 [DEBUG][       Thread-261297][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 16:41:16,764 [DEBUG][       Thread-261297][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 16:41:16,805 [DEBUG][       Thread-261297][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 16:41:16,805 [DEBUG][       Thread-261297][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 16:41:16,808 [DEBUG][       Thread-261297][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 16:41:16,820 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 16:41:16,821 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 16:41:16,823 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 16:41:16,825 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 16:41:16,831 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 16:41:16,833 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 16:41:16,833 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 16:41:16,834 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 16:41:16,834 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.611393 -999.00  +13.10  17.14     37   -1.10 1 1 1 1 1   887    0 13.18 -57.35 ----- 20.2 17.1 55.4 23.0 15.3 -28.7 14.8 -29.1 15.1 -28.9 15.8 -28.0
2025-06-13 16:41:16,834 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 16:41:16,834 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 16:41:16,834 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.611393
2025-06-13 16:41:16,835 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 16:41:16,836 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 16:41:16,836 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 16:41:16,836 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 16:41:16,836 [DEBUG][       Thread-261297][   transport.py][1871] : EOF in transport thread
2025-06-13 16:41:16,836 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 16:41:16,837 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T16:41:09', tmtdew=16.63, humidity=31.59, cloud=0.0, wind=15.4, temperature=13.41, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T14:40:24.355', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 16:41:16,920 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 16:41:16,931 [DEBUG][       Thread-261300][   transport.py][1871] : starting thread (client mode): 0x86350250
2025-06-13 16:41:16,931 [DEBUG][       Thread-261300][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 16:41:16,946 [DEBUG][       Thread-261300][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 16:41:16,946 [ INFO][       Thread-261300][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 16:41:16,953 [DEBUG][       Thread-261300][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 16:41:16,954 [DEBUG][       Thread-261300][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 16:41:16,954 [DEBUG][       Thread-261300][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 16:41:16,954 [DEBUG][       Thread-261300][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:41:16,954 [DEBUG][       Thread-261300][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:41:16,954 [DEBUG][       Thread-261300][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:41:16,954 [DEBUG][       Thread-261300][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:41:16,954 [DEBUG][       Thread-261300][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 16:41:16,954 [DEBUG][       Thread-261300][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 16:41:16,954 [DEBUG][       Thread-261300][   transport.py][1871] : client lang: <none>
2025-06-13 16:41:16,954 [DEBUG][       Thread-261300][   transport.py][1871] : server lang: <none>
2025-06-13 16:41:16,954 [DEBUG][       Thread-261300][   transport.py][1871] : kex follows: False
2025-06-13 16:41:16,954 [DEBUG][       Thread-261300][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 16:41:16,954 [DEBUG][       Thread-261300][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 16:41:16,954 [DEBUG][       Thread-261300][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 16:41:16,954 [DEBUG][       Thread-261300][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 16:41:16,954 [DEBUG][       Thread-261300][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 16:41:16,954 [DEBUG][       Thread-261300][   transport.py][1871] : Compression: none
2025-06-13 16:41:16,954 [DEBUG][       Thread-261300][   transport.py][1871] : === End of kex handshake ===
2025-06-13 16:41:17,018 [DEBUG][       Thread-261300][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 16:41:17,019 [DEBUG][       Thread-261300][   transport.py][1871] : Switch to new keys ...
2025-06-13 16:41:17,019 [DEBUG][       Thread-261300][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 16:41:17,020 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 16:41:17,020 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 16:41:17,074 [DEBUG][       Thread-261300][   transport.py][1871] : userauth is OK
2025-06-13 16:41:17,074 [DEBUG][       Thread-261300][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 16:41:17,075 [DEBUG][       Thread-261300][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 16:41:17,075 [DEBUG][       Thread-261300][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 16:41:17,075 [DEBUG][       Thread-261300][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 16:41:17,093 [ INFO][       Thread-261300][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 16:41:17,094 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 16:41:17,094 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 16:41:18,775 [DEBUG][       Thread-261300][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 16:41:18,776 [DEBUG][       Thread-261300][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 16:41:18,824 [DEBUG][       Thread-261300][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 16:41:18,824 [DEBUG][       Thread-261300][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 16:41:18,833 [DEBUG][       Thread-261300][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 16:41:18,842 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 16:41:18,842 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 16:41:18,851 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 16:41:18,861 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 16:41:18,861 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 16:41:18,861 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 16:41:18,869 [DEBUG][       Thread-261300][   transport.py][1871] : EOF in transport thread
2025-06-13 16:41:19,552 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:41:19,553 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:41:21,286 [DEBUG][Thread-261302 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:41:23,937 [DEBUG][Thread-261303 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:41:28,872 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 16:41:28,872 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 16:41:28,872 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 16:41:28,873 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 16:41:29,349 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 16, 41, 9), 16.63, 31.59, 0.0, 15.4, 13.41, 0, 0, 0, 2, 0, 0),)
2025-06-13 16:41:29,349 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 16:41:09
2025-06-13 16:41:29,431 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 16:41:29,435 [DEBUG][       Thread-261304][   transport.py][1871] : starting thread (client mode): 0x863ef190
2025-06-13 16:41:29,435 [DEBUG][       Thread-261304][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 16:41:29,451 [DEBUG][       Thread-261304][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 16:41:29,451 [ INFO][       Thread-261304][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 16:41:29,454 [DEBUG][       Thread-261304][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 16:41:29,454 [DEBUG][       Thread-261304][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 16:41:29,454 [DEBUG][       Thread-261304][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 16:41:29,454 [DEBUG][       Thread-261304][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:41:29,454 [DEBUG][       Thread-261304][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:41:29,454 [DEBUG][       Thread-261304][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:41:29,454 [DEBUG][       Thread-261304][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:41:29,454 [DEBUG][       Thread-261304][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 16:41:29,454 [DEBUG][       Thread-261304][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 16:41:29,454 [DEBUG][       Thread-261304][   transport.py][1871] : client lang: <none>
2025-06-13 16:41:29,454 [DEBUG][       Thread-261304][   transport.py][1871] : server lang: <none>
2025-06-13 16:41:29,454 [DEBUG][       Thread-261304][   transport.py][1871] : kex follows: False
2025-06-13 16:41:29,454 [DEBUG][       Thread-261304][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 16:41:29,454 [DEBUG][       Thread-261304][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 16:41:29,454 [DEBUG][       Thread-261304][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 16:41:29,454 [DEBUG][       Thread-261304][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 16:41:29,454 [DEBUG][       Thread-261304][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 16:41:29,454 [DEBUG][       Thread-261304][   transport.py][1871] : Compression: none
2025-06-13 16:41:29,455 [DEBUG][       Thread-261304][   transport.py][1871] : === End of kex handshake ===
2025-06-13 16:41:29,471 [DEBUG][       Thread-261304][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 16:41:29,472 [DEBUG][       Thread-261304][   transport.py][1871] : Switch to new keys ...
2025-06-13 16:41:29,472 [DEBUG][       Thread-261304][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 16:41:29,473 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 16:41:29,473 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 16:41:29,474 [DEBUG][       Thread-261304][   transport.py][1871] : userauth is OK
2025-06-13 16:41:29,487 [ INFO][       Thread-261304][   transport.py][1871] : Authentication (password) successful!
2025-06-13 16:41:29,487 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 16:41:30,044 [DEBUG][       Thread-261304][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 16:41:30,044 [DEBUG][       Thread-261304][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 16:41:30,085 [DEBUG][       Thread-261304][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 16:41:30,085 [DEBUG][       Thread-261304][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 16:41:30,088 [DEBUG][       Thread-261304][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 16:41:30,101 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 16:41:30,101 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 16:41:30,103 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 16:41:30,107 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 16:41:30,119 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 16:41:30,124 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 16:41:30,124 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 16:41:30,124 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 16:41:30,125 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.612087 -999.00  +13.20  18.35     37   -1.00 1 1 1 1 1   887    0 13.08 -52.62 ----- 16.1 18.4 53.6 20.9 15.2 -28.7 14.8 -29.1 15.2 -28.2 15.9 -27.6
2025-06-13 16:41:30,125 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 16:41:30,125 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 16:41:30,125 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.612087
2025-06-13 16:41:30,125 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 16:41:30,126 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 16:41:30,126 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 16:41:30,126 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 16:41:30,126 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 16:41:30,126 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T16:41:09', tmtdew=16.63, humidity=31.59, cloud=0.0, wind=15.4, temperature=13.41, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T14:41:24.317', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 16:41:30,131 [DEBUG][       Thread-261304][   transport.py][1871] : EOF in transport thread
2025-06-13 16:41:30,210 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 16:41:30,220 [DEBUG][       Thread-261307][   transport.py][1871] : starting thread (client mode): 0x863526e0
2025-06-13 16:41:30,220 [DEBUG][       Thread-261307][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 16:41:30,240 [DEBUG][       Thread-261307][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 16:41:30,240 [ INFO][       Thread-261307][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 16:41:30,248 [DEBUG][       Thread-261307][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 16:41:30,248 [DEBUG][       Thread-261307][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 16:41:30,248 [DEBUG][       Thread-261307][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 16:41:30,248 [DEBUG][       Thread-261307][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:41:30,248 [DEBUG][       Thread-261307][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:41:30,248 [DEBUG][       Thread-261307][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:41:30,248 [DEBUG][       Thread-261307][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:41:30,248 [DEBUG][       Thread-261307][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 16:41:30,248 [DEBUG][       Thread-261307][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 16:41:30,248 [DEBUG][       Thread-261307][   transport.py][1871] : client lang: <none>
2025-06-13 16:41:30,248 [DEBUG][       Thread-261307][   transport.py][1871] : server lang: <none>
2025-06-13 16:41:30,248 [DEBUG][       Thread-261307][   transport.py][1871] : kex follows: False
2025-06-13 16:41:30,248 [DEBUG][       Thread-261307][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 16:41:30,249 [DEBUG][       Thread-261307][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 16:41:30,249 [DEBUG][       Thread-261307][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 16:41:30,249 [DEBUG][       Thread-261307][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 16:41:30,249 [DEBUG][       Thread-261307][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 16:41:30,249 [DEBUG][       Thread-261307][   transport.py][1871] : Compression: none
2025-06-13 16:41:30,249 [DEBUG][       Thread-261307][   transport.py][1871] : === End of kex handshake ===
2025-06-13 16:41:30,305 [DEBUG][       Thread-261307][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 16:41:30,306 [DEBUG][       Thread-261307][   transport.py][1871] : Switch to new keys ...
2025-06-13 16:41:30,306 [DEBUG][       Thread-261307][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 16:41:30,307 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 16:41:30,307 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 16:41:30,329 [DEBUG][Thread-261309 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:41:30,362 [DEBUG][       Thread-261307][   transport.py][1871] : userauth is OK
2025-06-13 16:41:30,363 [DEBUG][       Thread-261307][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 16:41:30,363 [DEBUG][       Thread-261307][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 16:41:30,363 [DEBUG][       Thread-261307][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 16:41:30,363 [DEBUG][       Thread-261307][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 16:41:30,381 [ INFO][       Thread-261307][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 16:41:30,381 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 16:41:30,382 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 16:41:31,350 [DEBUG][       Thread-261307][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 16:41:31,350 [DEBUG][       Thread-261307][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 16:41:31,400 [DEBUG][       Thread-261307][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 16:41:31,400 [DEBUG][       Thread-261307][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 16:41:31,410 [DEBUG][       Thread-261307][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 16:41:31,419 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 16:41:31,419 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 16:41:31,428 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 16:41:31,437 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 16:41:31,438 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 16:41:31,438 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 16:41:31,446 [DEBUG][       Thread-261307][   transport.py][1871] : EOF in transport thread
2025-06-13 16:41:39,352 [DEBUG][Thread-261310 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:41:41,448 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 16:41:41,449 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 16:41:41,449 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 16:41:41,449 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 16:41:41,951 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 16, 41, 9), 16.63, 31.59, 0.0, 15.4, 13.41, 0, 0, 0, 2, 0, 0),)
2025-06-13 16:41:41,951 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 16:41:09
2025-06-13 16:41:42,037 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 16:41:42,041 [DEBUG][       Thread-261311][   transport.py][1871] : starting thread (client mode): 0x867fd3f0
2025-06-13 16:41:42,041 [DEBUG][       Thread-261311][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 16:41:42,063 [DEBUG][       Thread-261311][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 16:41:42,063 [ INFO][       Thread-261311][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 16:41:42,066 [DEBUG][       Thread-261311][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 16:41:42,066 [DEBUG][       Thread-261311][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 16:41:42,066 [DEBUG][       Thread-261311][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 16:41:42,067 [DEBUG][       Thread-261311][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:41:42,067 [DEBUG][       Thread-261311][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:41:42,067 [DEBUG][       Thread-261311][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:41:42,067 [DEBUG][       Thread-261311][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:41:42,067 [DEBUG][       Thread-261311][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 16:41:42,067 [DEBUG][       Thread-261311][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 16:41:42,067 [DEBUG][       Thread-261311][   transport.py][1871] : client lang: <none>
2025-06-13 16:41:42,067 [DEBUG][       Thread-261311][   transport.py][1871] : server lang: <none>
2025-06-13 16:41:42,067 [DEBUG][       Thread-261311][   transport.py][1871] : kex follows: False
2025-06-13 16:41:42,067 [DEBUG][       Thread-261311][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 16:41:42,067 [DEBUG][       Thread-261311][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 16:41:42,067 [DEBUG][       Thread-261311][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 16:41:42,067 [DEBUG][       Thread-261311][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 16:41:42,067 [DEBUG][       Thread-261311][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 16:41:42,067 [DEBUG][       Thread-261311][   transport.py][1871] : Compression: none
2025-06-13 16:41:42,067 [DEBUG][       Thread-261311][   transport.py][1871] : === End of kex handshake ===
2025-06-13 16:41:42,077 [DEBUG][       Thread-261311][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 16:41:42,077 [DEBUG][       Thread-261311][   transport.py][1871] : Switch to new keys ...
2025-06-13 16:41:42,077 [DEBUG][       Thread-261311][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 16:41:42,077 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 16:41:42,077 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 16:41:42,078 [DEBUG][       Thread-261311][   transport.py][1871] : userauth is OK
2025-06-13 16:41:42,102 [ INFO][       Thread-261311][   transport.py][1871] : Authentication (password) successful!
2025-06-13 16:41:42,102 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 16:41:42,750 [DEBUG][       Thread-261311][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 16:41:42,750 [DEBUG][       Thread-261311][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 16:41:42,793 [DEBUG][       Thread-261311][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 16:41:42,793 [DEBUG][       Thread-261311][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 16:41:42,795 [DEBUG][       Thread-261311][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 16:41:42,806 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 16:41:42,806 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 16:41:42,808 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 16:41:42,809 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 16:41:42,812 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 16:41:42,813 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 16:41:42,813 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 16:41:42,813 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 16:41:42,813 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.612087 -999.00  +13.20  18.35     37   -1.00 1 1 1 1 1   887    0 13.08 -52.62 ----- 16.1 18.4 53.6 20.9 15.2 -28.7 14.8 -29.1 15.2 -28.2 15.9 -27.6
2025-06-13 16:41:42,813 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 16:41:42,813 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 16:41:42,813 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.612087
2025-06-13 16:41:42,813 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 16:41:42,813 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 16:41:42,813 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 16:41:42,813 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 16:41:42,813 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 16:41:42,813 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T16:41:09', tmtdew=16.63, humidity=31.59, cloud=0.0, wind=15.4, temperature=13.41, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T14:41:24.317', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 16:41:42,814 [DEBUG][       Thread-261311][   transport.py][1871] : EOF in transport thread
2025-06-13 16:41:42,886 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 16:41:42,898 [DEBUG][       Thread-261314][   transport.py][1871] : starting thread (client mode): 0x867b63b0
2025-06-13 16:41:42,898 [DEBUG][       Thread-261314][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 16:41:42,917 [DEBUG][       Thread-261314][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 16:41:42,917 [ INFO][       Thread-261314][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 16:41:42,928 [DEBUG][       Thread-261314][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 16:41:42,928 [DEBUG][       Thread-261314][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 16:41:42,928 [DEBUG][       Thread-261314][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 16:41:42,928 [DEBUG][       Thread-261314][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:41:42,928 [DEBUG][       Thread-261314][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:41:42,928 [DEBUG][       Thread-261314][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:41:42,928 [DEBUG][       Thread-261314][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:41:42,928 [DEBUG][       Thread-261314][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 16:41:42,928 [DEBUG][       Thread-261314][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 16:41:42,928 [DEBUG][       Thread-261314][   transport.py][1871] : client lang: <none>
2025-06-13 16:41:42,928 [DEBUG][       Thread-261314][   transport.py][1871] : server lang: <none>
2025-06-13 16:41:42,928 [DEBUG][       Thread-261314][   transport.py][1871] : kex follows: False
2025-06-13 16:41:42,928 [DEBUG][       Thread-261314][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 16:41:42,928 [DEBUG][       Thread-261314][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 16:41:42,928 [DEBUG][       Thread-261314][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 16:41:42,928 [DEBUG][       Thread-261314][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 16:41:42,928 [DEBUG][       Thread-261314][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 16:41:42,928 [DEBUG][       Thread-261314][   transport.py][1871] : Compression: none
2025-06-13 16:41:42,928 [DEBUG][       Thread-261314][   transport.py][1871] : === End of kex handshake ===
2025-06-13 16:41:42,980 [DEBUG][       Thread-261314][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 16:41:42,981 [DEBUG][       Thread-261314][   transport.py][1871] : Switch to new keys ...
2025-06-13 16:41:42,981 [DEBUG][       Thread-261314][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 16:41:42,981 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 16:41:42,981 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 16:41:43,038 [DEBUG][       Thread-261314][   transport.py][1871] : userauth is OK
2025-06-13 16:41:43,038 [DEBUG][       Thread-261314][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 16:41:43,038 [DEBUG][       Thread-261314][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 16:41:43,038 [DEBUG][       Thread-261314][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 16:41:43,038 [DEBUG][       Thread-261314][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 16:41:43,052 [ INFO][       Thread-261314][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 16:41:43,052 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 16:41:43,052 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 16:41:44,022 [DEBUG][       Thread-261314][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 16:41:44,022 [DEBUG][       Thread-261314][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 16:41:44,076 [DEBUG][       Thread-261314][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 16:41:44,076 [DEBUG][       Thread-261314][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 16:41:44,085 [DEBUG][       Thread-261314][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 16:41:44,094 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 16:41:44,094 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 16:41:44,103 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 16:41:44,112 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 16:41:44,112 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 16:41:44,113 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 16:41:44,121 [DEBUG][       Thread-261314][   transport.py][1871] : EOF in transport thread
2025-06-13 16:41:48,369 [DEBUG][Thread-261316 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:41:54,120 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 16:41:54,120 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 16:41:54,120 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 16:41:54,122 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 16:41:54,613 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 16, 41, 40), 16.66, 31.51, 0.0, 12.86, 13.43, 0, 0, 0, 2, 0, 0),)
2025-06-13 16:41:54,613 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 16:41:40
2025-06-13 16:41:54,695 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 16:41:54,699 [DEBUG][       Thread-261317][   transport.py][1871] : starting thread (client mode): 0x867fcd30
2025-06-13 16:41:54,699 [DEBUG][       Thread-261317][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 16:41:54,717 [DEBUG][       Thread-261317][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 16:41:54,717 [ INFO][       Thread-261317][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 16:41:54,719 [DEBUG][       Thread-261317][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 16:41:54,719 [DEBUG][       Thread-261317][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 16:41:54,719 [DEBUG][       Thread-261317][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 16:41:54,719 [DEBUG][       Thread-261317][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:41:54,719 [DEBUG][       Thread-261317][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:41:54,719 [DEBUG][       Thread-261317][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:41:54,719 [DEBUG][       Thread-261317][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:41:54,719 [DEBUG][       Thread-261317][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 16:41:54,719 [DEBUG][       Thread-261317][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 16:41:54,719 [DEBUG][       Thread-261317][   transport.py][1871] : client lang: <none>
2025-06-13 16:41:54,719 [DEBUG][       Thread-261317][   transport.py][1871] : server lang: <none>
2025-06-13 16:41:54,719 [DEBUG][       Thread-261317][   transport.py][1871] : kex follows: False
2025-06-13 16:41:54,719 [DEBUG][       Thread-261317][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 16:41:54,719 [DEBUG][       Thread-261317][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 16:41:54,719 [DEBUG][       Thread-261317][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 16:41:54,719 [DEBUG][       Thread-261317][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 16:41:54,719 [DEBUG][       Thread-261317][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 16:41:54,719 [DEBUG][       Thread-261317][   transport.py][1871] : Compression: none
2025-06-13 16:41:54,719 [DEBUG][       Thread-261317][   transport.py][1871] : === End of kex handshake ===
2025-06-13 16:41:54,729 [DEBUG][       Thread-261317][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 16:41:54,730 [DEBUG][       Thread-261317][   transport.py][1871] : Switch to new keys ...
2025-06-13 16:41:54,730 [DEBUG][       Thread-261317][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 16:41:54,730 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 16:41:54,730 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 16:41:54,731 [DEBUG][       Thread-261317][   transport.py][1871] : userauth is OK
2025-06-13 16:41:54,745 [ INFO][       Thread-261317][   transport.py][1871] : Authentication (password) successful!
2025-06-13 16:41:54,745 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 16:41:55,488 [DEBUG][       Thread-261317][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 16:41:55,489 [DEBUG][       Thread-261317][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 16:41:55,533 [DEBUG][       Thread-261317][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 16:41:55,533 [DEBUG][       Thread-261317][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 16:41:55,536 [DEBUG][       Thread-261317][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 16:41:55,547 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 16:41:55,547 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 16:41:55,549 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 16:41:55,551 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 16:41:55,557 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 16:41:55,559 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 16:41:55,559 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 16:41:55,560 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 16:41:55,560 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.612087 -999.00  +13.20  18.35     37   -1.00 1 1 1 1 1   887    0 13.08 -52.62 ----- 16.1 18.4 53.6 20.9 15.2 -28.7 14.8 -29.1 15.2 -28.2 15.9 -27.6
2025-06-13 16:41:55,560 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 16:41:55,561 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 16:41:55,561 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.612087
2025-06-13 16:41:55,561 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 16:41:55,562 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 16:41:55,562 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 16:41:55,562 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 16:41:55,562 [DEBUG][       Thread-261317][   transport.py][1871] : EOF in transport thread
2025-06-13 16:41:55,563 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 16:41:55,563 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T16:41:40', tmtdew=16.66, humidity=31.51, cloud=0.0, wind=12.86, temperature=13.43, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T14:41:24.317', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 16:41:55,644 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 16:41:55,654 [DEBUG][       Thread-261320][   transport.py][1871] : starting thread (client mode): 0x863beda0
2025-06-13 16:41:55,654 [DEBUG][       Thread-261320][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 16:41:55,668 [DEBUG][       Thread-261320][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 16:41:55,668 [ INFO][       Thread-261320][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 16:41:55,676 [DEBUG][       Thread-261320][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 16:41:55,676 [DEBUG][       Thread-261320][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 16:41:55,676 [DEBUG][       Thread-261320][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 16:41:55,676 [DEBUG][       Thread-261320][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:41:55,676 [DEBUG][       Thread-261320][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:41:55,676 [DEBUG][       Thread-261320][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:41:55,676 [DEBUG][       Thread-261320][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:41:55,676 [DEBUG][       Thread-261320][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 16:41:55,676 [DEBUG][       Thread-261320][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 16:41:55,676 [DEBUG][       Thread-261320][   transport.py][1871] : client lang: <none>
2025-06-13 16:41:55,676 [DEBUG][       Thread-261320][   transport.py][1871] : server lang: <none>
2025-06-13 16:41:55,676 [DEBUG][       Thread-261320][   transport.py][1871] : kex follows: False
2025-06-13 16:41:55,676 [DEBUG][       Thread-261320][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 16:41:55,676 [DEBUG][       Thread-261320][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 16:41:55,676 [DEBUG][       Thread-261320][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 16:41:55,676 [DEBUG][       Thread-261320][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 16:41:55,676 [DEBUG][       Thread-261320][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 16:41:55,676 [DEBUG][       Thread-261320][   transport.py][1871] : Compression: none
2025-06-13 16:41:55,677 [DEBUG][       Thread-261320][   transport.py][1871] : === End of kex handshake ===
2025-06-13 16:41:55,733 [DEBUG][       Thread-261320][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 16:41:55,734 [DEBUG][       Thread-261320][   transport.py][1871] : Switch to new keys ...
2025-06-13 16:41:55,734 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 16:41:55,735 [DEBUG][       Thread-261320][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 16:41:55,735 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 16:41:55,793 [DEBUG][       Thread-261320][   transport.py][1871] : userauth is OK
2025-06-13 16:41:55,794 [DEBUG][       Thread-261320][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 16:41:55,794 [DEBUG][       Thread-261320][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 16:41:55,794 [DEBUG][       Thread-261320][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 16:41:55,794 [DEBUG][       Thread-261320][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 16:41:55,812 [ INFO][       Thread-261320][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 16:41:55,813 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 16:41:55,813 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 16:41:56,806 [DEBUG][       Thread-261320][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 16:41:56,806 [DEBUG][       Thread-261320][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 16:41:56,855 [DEBUG][       Thread-261320][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 16:41:56,855 [DEBUG][       Thread-261320][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 16:41:56,863 [DEBUG][       Thread-261320][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 16:41:56,871 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 16:41:56,871 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 16:41:56,879 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 16:41:56,887 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 16:41:56,887 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 16:41:56,887 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 16:41:56,895 [DEBUG][       Thread-261320][   transport.py][1871] : EOF in transport thread
2025-06-13 16:41:57,387 [DEBUG][Thread-261322 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:42:06,422 [DEBUG][Thread-261323 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:42:06,898 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 16:42:06,898 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 16:42:06,898 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 16:42:06,901 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 16:42:07,381 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 16, 41, 40), 16.66, 31.51, 0.0, 12.86, 13.43, 0, 0, 0, 2, 0, 0),)
2025-06-13 16:42:07,381 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 16:41:40
2025-06-13 16:42:07,463 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 16:42:07,467 [DEBUG][       Thread-261324][   transport.py][1871] : starting thread (client mode): 0x863c9cc0
2025-06-13 16:42:07,467 [DEBUG][       Thread-261324][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 16:42:07,483 [DEBUG][       Thread-261324][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 16:42:07,483 [ INFO][       Thread-261324][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 16:42:07,485 [DEBUG][       Thread-261324][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 16:42:07,485 [DEBUG][       Thread-261324][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 16:42:07,485 [DEBUG][       Thread-261324][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 16:42:07,485 [DEBUG][       Thread-261324][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:42:07,485 [DEBUG][       Thread-261324][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:42:07,485 [DEBUG][       Thread-261324][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:42:07,485 [DEBUG][       Thread-261324][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:42:07,485 [DEBUG][       Thread-261324][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 16:42:07,485 [DEBUG][       Thread-261324][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 16:42:07,485 [DEBUG][       Thread-261324][   transport.py][1871] : client lang: <none>
2025-06-13 16:42:07,486 [DEBUG][       Thread-261324][   transport.py][1871] : server lang: <none>
2025-06-13 16:42:07,486 [DEBUG][       Thread-261324][   transport.py][1871] : kex follows: False
2025-06-13 16:42:07,486 [DEBUG][       Thread-261324][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 16:42:07,486 [DEBUG][       Thread-261324][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 16:42:07,486 [DEBUG][       Thread-261324][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 16:42:07,486 [DEBUG][       Thread-261324][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 16:42:07,486 [DEBUG][       Thread-261324][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 16:42:07,486 [DEBUG][       Thread-261324][   transport.py][1871] : Compression: none
2025-06-13 16:42:07,486 [DEBUG][       Thread-261324][   transport.py][1871] : === End of kex handshake ===
2025-06-13 16:42:07,497 [DEBUG][       Thread-261324][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 16:42:07,497 [DEBUG][       Thread-261324][   transport.py][1871] : Switch to new keys ...
2025-06-13 16:42:07,498 [DEBUG][       Thread-261324][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 16:42:07,498 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 16:42:07,498 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 16:42:07,499 [DEBUG][       Thread-261324][   transport.py][1871] : userauth is OK
2025-06-13 16:42:07,511 [ INFO][       Thread-261324][   transport.py][1871] : Authentication (password) successful!
2025-06-13 16:42:07,512 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 16:42:08,128 [DEBUG][       Thread-261324][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 16:42:08,129 [DEBUG][       Thread-261324][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 16:42:08,173 [DEBUG][       Thread-261324][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 16:42:08,173 [DEBUG][       Thread-261324][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 16:42:08,177 [DEBUG][       Thread-261324][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 16:42:08,189 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 16:42:08,189 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 16:42:08,191 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 16:42:08,193 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 16:42:08,199 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 16:42:08,201 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 16:42:08,202 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 16:42:08,202 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 16:42:08,202 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.612435 -999.00  +13.20  21.05     36   -1.20 1 1 1 1 1   887    0 12.98 -55.58 ----- 19.5 21.1 46.4 26.2 15.3 -28.8 14.9 -29.2 15.3 -29.0 16.0 -27.8
2025-06-13 16:42:08,203 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 16:42:08,203 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 16:42:08,203 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.612435
2025-06-13 16:42:08,203 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 16:42:08,204 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 16:42:08,204 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 16:42:08,204 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 16:42:08,204 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 16:42:08,204 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T16:41:40', tmtdew=16.66, humidity=31.51, cloud=0.0, wind=12.86, temperature=13.43, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T14:41:54.384', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 16:42:08,205 [DEBUG][       Thread-261324][   transport.py][1871] : EOF in transport thread
2025-06-13 16:42:08,287 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 16:42:08,298 [DEBUG][       Thread-261327][   transport.py][1871] : starting thread (client mode): 0x86352770
2025-06-13 16:42:08,298 [DEBUG][       Thread-261327][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 16:42:08,314 [DEBUG][       Thread-261327][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 16:42:08,314 [ INFO][       Thread-261327][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 16:42:08,322 [DEBUG][       Thread-261327][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 16:42:08,322 [DEBUG][       Thread-261327][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 16:42:08,322 [DEBUG][       Thread-261327][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 16:42:08,322 [DEBUG][       Thread-261327][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:42:08,322 [DEBUG][       Thread-261327][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:42:08,323 [DEBUG][       Thread-261327][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:42:08,323 [DEBUG][       Thread-261327][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:42:08,323 [DEBUG][       Thread-261327][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 16:42:08,323 [DEBUG][       Thread-261327][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 16:42:08,323 [DEBUG][       Thread-261327][   transport.py][1871] : client lang: <none>
2025-06-13 16:42:08,323 [DEBUG][       Thread-261327][   transport.py][1871] : server lang: <none>
2025-06-13 16:42:08,323 [DEBUG][       Thread-261327][   transport.py][1871] : kex follows: False
2025-06-13 16:42:08,323 [DEBUG][       Thread-261327][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 16:42:08,323 [DEBUG][       Thread-261327][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 16:42:08,323 [DEBUG][       Thread-261327][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 16:42:08,323 [DEBUG][       Thread-261327][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 16:42:08,323 [DEBUG][       Thread-261327][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 16:42:08,323 [DEBUG][       Thread-261327][   transport.py][1871] : Compression: none
2025-06-13 16:42:08,323 [DEBUG][       Thread-261327][   transport.py][1871] : === End of kex handshake ===
2025-06-13 16:42:08,385 [DEBUG][       Thread-261327][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 16:42:08,385 [DEBUG][       Thread-261327][   transport.py][1871] : Switch to new keys ...
2025-06-13 16:42:08,386 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 16:42:08,386 [DEBUG][       Thread-261327][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 16:42:08,387 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 16:42:08,442 [DEBUG][       Thread-261327][   transport.py][1871] : userauth is OK
2025-06-13 16:42:08,443 [DEBUG][       Thread-261327][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 16:42:08,443 [DEBUG][       Thread-261327][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 16:42:08,443 [DEBUG][       Thread-261327][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 16:42:08,443 [DEBUG][       Thread-261327][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 16:42:08,462 [ INFO][       Thread-261327][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 16:42:08,462 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 16:42:08,463 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 16:42:09,471 [DEBUG][       Thread-261327][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 16:42:09,471 [DEBUG][       Thread-261327][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 16:42:09,520 [DEBUG][       Thread-261327][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 16:42:09,520 [DEBUG][       Thread-261327][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 16:42:09,530 [DEBUG][       Thread-261327][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 16:42:09,539 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 16:42:09,539 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 16:42:09,548 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 16:42:09,557 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 16:42:09,557 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 16:42:09,558 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 16:42:09,573 [DEBUG][       Thread-261327][   transport.py][1871] : EOF in transport thread
2025-06-13 16:42:09,846 [DEBUG][Thread-261329 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:42:10,902 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:42:10,903 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:42:15,443 [DEBUG][Thread-261330 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:42:19,568 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 16:42:19,568 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 16:42:19,568 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 16:42:19,569 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 16:42:19,690 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:42:19,691 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:42:20,036 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 16, 42, 12), 16.65, 31.48, 0.0, 14.5, 13.5, 0, 0, 0, 2, 0, 0),)
2025-06-13 16:42:20,036 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 16:42:12
2025-06-13 16:42:20,117 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 16:42:20,121 [DEBUG][       Thread-261331][   transport.py][1871] : starting thread (client mode): 0x863939d0
2025-06-13 16:42:20,121 [DEBUG][       Thread-261331][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 16:42:20,141 [DEBUG][       Thread-261331][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 16:42:20,141 [ INFO][       Thread-261331][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 16:42:20,145 [DEBUG][       Thread-261331][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 16:42:20,145 [DEBUG][       Thread-261331][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 16:42:20,145 [DEBUG][       Thread-261331][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 16:42:20,145 [DEBUG][       Thread-261331][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:42:20,145 [DEBUG][       Thread-261331][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:42:20,145 [DEBUG][       Thread-261331][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:42:20,145 [DEBUG][       Thread-261331][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:42:20,145 [DEBUG][       Thread-261331][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 16:42:20,145 [DEBUG][       Thread-261331][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 16:42:20,145 [DEBUG][       Thread-261331][   transport.py][1871] : client lang: <none>
2025-06-13 16:42:20,145 [DEBUG][       Thread-261331][   transport.py][1871] : server lang: <none>
2025-06-13 16:42:20,145 [DEBUG][       Thread-261331][   transport.py][1871] : kex follows: False
2025-06-13 16:42:20,145 [DEBUG][       Thread-261331][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 16:42:20,145 [DEBUG][       Thread-261331][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 16:42:20,145 [DEBUG][       Thread-261331][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 16:42:20,145 [DEBUG][       Thread-261331][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 16:42:20,145 [DEBUG][       Thread-261331][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 16:42:20,145 [DEBUG][       Thread-261331][   transport.py][1871] : Compression: none
2025-06-13 16:42:20,145 [DEBUG][       Thread-261331][   transport.py][1871] : === End of kex handshake ===
2025-06-13 16:42:20,161 [DEBUG][       Thread-261331][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 16:42:20,161 [DEBUG][       Thread-261331][   transport.py][1871] : Switch to new keys ...
2025-06-13 16:42:20,161 [DEBUG][       Thread-261331][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 16:42:20,161 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 16:42:20,161 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 16:42:20,161 [DEBUG][       Thread-261331][   transport.py][1871] : userauth is OK
2025-06-13 16:42:20,208 [ INFO][       Thread-261331][   transport.py][1871] : Authentication (password) successful!
2025-06-13 16:42:20,208 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 16:42:20,989 [DEBUG][       Thread-261331][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 16:42:20,989 [DEBUG][       Thread-261331][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 16:42:21,033 [DEBUG][       Thread-261331][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 16:42:21,033 [DEBUG][       Thread-261331][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 16:42:21,036 [DEBUG][       Thread-261331][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 16:42:21,049 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 16:42:21,049 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 16:42:21,051 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 16:42:21,052 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 16:42:21,057 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 16:42:21,059 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 16:42:21,059 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 16:42:21,059 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 16:42:21,060 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.612435 -999.00  +13.20  21.05     36   -1.20 1 1 1 1 1   887    0 12.98 -55.58 ----- 19.5 21.1 46.4 26.2 15.3 -28.8 14.9 -29.2 15.3 -29.0 16.0 -27.8
2025-06-13 16:42:21,060 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 16:42:21,060 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 16:42:21,060 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.612435
2025-06-13 16:42:21,060 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 16:42:21,061 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 16:42:21,061 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 16:42:21,061 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 16:42:21,061 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 16:42:21,061 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T16:42:12', tmtdew=16.65, humidity=31.48, cloud=0.0, wind=14.5, temperature=13.5, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T14:41:54.384', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 16:42:21,061 [DEBUG][       Thread-261331][   transport.py][1871] : EOF in transport thread
2025-06-13 16:42:21,144 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 16:42:21,156 [DEBUG][       Thread-261334][   transport.py][1871] : starting thread (client mode): 0x863523e0
2025-06-13 16:42:21,156 [DEBUG][       Thread-261334][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 16:42:21,172 [DEBUG][       Thread-261334][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 16:42:21,172 [ INFO][       Thread-261334][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 16:42:21,180 [DEBUG][       Thread-261334][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 16:42:21,180 [DEBUG][       Thread-261334][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 16:42:21,180 [DEBUG][       Thread-261334][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 16:42:21,180 [DEBUG][       Thread-261334][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:42:21,180 [DEBUG][       Thread-261334][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:42:21,180 [DEBUG][       Thread-261334][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:42:21,180 [DEBUG][       Thread-261334][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:42:21,180 [DEBUG][       Thread-261334][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 16:42:21,180 [DEBUG][       Thread-261334][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 16:42:21,180 [DEBUG][       Thread-261334][   transport.py][1871] : client lang: <none>
2025-06-13 16:42:21,180 [DEBUG][       Thread-261334][   transport.py][1871] : server lang: <none>
2025-06-13 16:42:21,180 [DEBUG][       Thread-261334][   transport.py][1871] : kex follows: False
2025-06-13 16:42:21,180 [DEBUG][       Thread-261334][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 16:42:21,180 [DEBUG][       Thread-261334][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 16:42:21,181 [DEBUG][       Thread-261334][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 16:42:21,181 [DEBUG][       Thread-261334][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 16:42:21,181 [DEBUG][       Thread-261334][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 16:42:21,181 [DEBUG][       Thread-261334][   transport.py][1871] : Compression: none
2025-06-13 16:42:21,181 [DEBUG][       Thread-261334][   transport.py][1871] : === End of kex handshake ===
2025-06-13 16:42:21,238 [DEBUG][       Thread-261334][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 16:42:21,239 [DEBUG][       Thread-261334][   transport.py][1871] : Switch to new keys ...
2025-06-13 16:42:21,239 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 16:42:21,240 [DEBUG][       Thread-261334][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 16:42:21,240 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 16:42:21,302 [DEBUG][       Thread-261334][   transport.py][1871] : userauth is OK
2025-06-13 16:42:21,302 [DEBUG][       Thread-261334][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 16:42:21,303 [DEBUG][       Thread-261334][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 16:42:21,303 [DEBUG][       Thread-261334][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 16:42:21,303 [DEBUG][       Thread-261334][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 16:42:21,321 [ INFO][       Thread-261334][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 16:42:21,322 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 16:42:21,322 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 16:42:22,307 [DEBUG][       Thread-261334][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 16:42:22,307 [DEBUG][       Thread-261334][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 16:42:22,355 [DEBUG][       Thread-261334][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 16:42:22,355 [DEBUG][       Thread-261334][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 16:42:22,364 [DEBUG][       Thread-261334][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 16:42:22,380 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 16:42:22,380 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 16:42:22,388 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 16:42:22,396 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 16:42:22,396 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 16:42:22,396 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 16:42:22,404 [DEBUG][       Thread-261334][   transport.py][1871] : EOF in transport thread
2025-06-13 16:42:23,964 [DEBUG][Thread-261336 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:42:24,461 [DEBUG][Thread-261337 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:42:32,406 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 16:42:32,407 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 16:42:32,407 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 16:42:32,410 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 16:42:32,892 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 16, 42, 12), 16.65, 31.48, 0.0, 14.5, 13.5, 0, 0, 0, 2, 0, 0),)
2025-06-13 16:42:32,892 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 16:42:12
2025-06-13 16:42:32,974 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 16:42:32,978 [DEBUG][       Thread-261338][   transport.py][1871] : starting thread (client mode): 0x863c8490
2025-06-13 16:42:32,978 [DEBUG][       Thread-261338][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 16:42:32,998 [DEBUG][       Thread-261338][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 16:42:32,998 [ INFO][       Thread-261338][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 16:42:33,001 [DEBUG][       Thread-261338][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 16:42:33,001 [DEBUG][       Thread-261338][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 16:42:33,001 [DEBUG][       Thread-261338][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 16:42:33,001 [DEBUG][       Thread-261338][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:42:33,001 [DEBUG][       Thread-261338][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:42:33,001 [DEBUG][       Thread-261338][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:42:33,001 [DEBUG][       Thread-261338][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:42:33,001 [DEBUG][       Thread-261338][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 16:42:33,001 [DEBUG][       Thread-261338][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 16:42:33,001 [DEBUG][       Thread-261338][   transport.py][1871] : client lang: <none>
2025-06-13 16:42:33,001 [DEBUG][       Thread-261338][   transport.py][1871] : server lang: <none>
2025-06-13 16:42:33,001 [DEBUG][       Thread-261338][   transport.py][1871] : kex follows: False
2025-06-13 16:42:33,001 [DEBUG][       Thread-261338][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 16:42:33,002 [DEBUG][       Thread-261338][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 16:42:33,002 [DEBUG][       Thread-261338][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 16:42:33,002 [DEBUG][       Thread-261338][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 16:42:33,002 [DEBUG][       Thread-261338][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 16:42:33,002 [DEBUG][       Thread-261338][   transport.py][1871] : Compression: none
2025-06-13 16:42:33,002 [DEBUG][       Thread-261338][   transport.py][1871] : === End of kex handshake ===
2025-06-13 16:42:33,013 [DEBUG][       Thread-261338][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 16:42:33,014 [DEBUG][       Thread-261338][   transport.py][1871] : Switch to new keys ...
2025-06-13 16:42:33,014 [DEBUG][       Thread-261338][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 16:42:33,015 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 16:42:33,015 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 16:42:33,055 [DEBUG][       Thread-261338][   transport.py][1871] : userauth is OK
2025-06-13 16:42:33,080 [ INFO][       Thread-261338][   transport.py][1871] : Authentication (password) successful!
2025-06-13 16:42:33,081 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 16:42:33,488 [DEBUG][Thread-261340 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:42:33,873 [DEBUG][       Thread-261338][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 16:42:33,873 [DEBUG][       Thread-261338][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 16:42:33,917 [DEBUG][       Thread-261338][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 16:42:33,917 [DEBUG][       Thread-261338][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 16:42:33,921 [DEBUG][       Thread-261338][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 16:42:33,934 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 16:42:33,934 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 16:42:33,936 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 16:42:33,939 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 16:42:33,945 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 16:42:33,947 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 16:42:33,947 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 16:42:33,948 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 16:42:33,948 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.612435 -999.00  +13.20  21.05     36   -1.20 1 1 1 1 1   887    0 12.98 -55.58 ----- 19.5 21.1 46.4 26.2 15.3 -28.8 14.9 -29.2 15.3 -29.0 16.0 -27.8
2025-06-13 16:42:33,948 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 16:42:33,948 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 16:42:33,949 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.612435
2025-06-13 16:42:33,949 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 16:42:33,950 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 16:42:33,950 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 16:42:33,950 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 16:42:33,950 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 16:42:33,950 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T16:42:12', tmtdew=16.65, humidity=31.48, cloud=0.0, wind=14.5, temperature=13.5, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T14:41:54.384', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 16:42:33,951 [DEBUG][       Thread-261338][   transport.py][1871] : EOF in transport thread
2025-06-13 16:42:34,033 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 16:42:34,043 [DEBUG][       Thread-261342][   transport.py][1871] : starting thread (client mode): 0x86353220
2025-06-13 16:42:34,043 [DEBUG][       Thread-261342][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 16:42:34,057 [DEBUG][       Thread-261342][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 16:42:34,057 [ INFO][       Thread-261342][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 16:42:34,065 [DEBUG][       Thread-261342][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 16:42:34,065 [DEBUG][       Thread-261342][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 16:42:34,065 [DEBUG][       Thread-261342][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 16:42:34,065 [DEBUG][       Thread-261342][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:42:34,065 [DEBUG][       Thread-261342][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:42:34,065 [DEBUG][       Thread-261342][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:42:34,065 [DEBUG][       Thread-261342][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:42:34,065 [DEBUG][       Thread-261342][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 16:42:34,065 [DEBUG][       Thread-261342][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 16:42:34,065 [DEBUG][       Thread-261342][   transport.py][1871] : client lang: <none>
2025-06-13 16:42:34,065 [DEBUG][       Thread-261342][   transport.py][1871] : server lang: <none>
2025-06-13 16:42:34,065 [DEBUG][       Thread-261342][   transport.py][1871] : kex follows: False
2025-06-13 16:42:34,065 [DEBUG][       Thread-261342][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 16:42:34,065 [DEBUG][       Thread-261342][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 16:42:34,066 [DEBUG][       Thread-261342][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 16:42:34,066 [DEBUG][       Thread-261342][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 16:42:34,066 [DEBUG][       Thread-261342][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 16:42:34,066 [DEBUG][       Thread-261342][   transport.py][1871] : Compression: none
2025-06-13 16:42:34,066 [DEBUG][       Thread-261342][   transport.py][1871] : === End of kex handshake ===
2025-06-13 16:42:34,122 [DEBUG][       Thread-261342][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 16:42:34,122 [DEBUG][       Thread-261342][   transport.py][1871] : Switch to new keys ...
2025-06-13 16:42:34,123 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 16:42:34,124 [DEBUG][       Thread-261342][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 16:42:34,124 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 16:42:34,177 [DEBUG][       Thread-261342][   transport.py][1871] : userauth is OK
2025-06-13 16:42:34,178 [DEBUG][       Thread-261342][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 16:42:34,178 [DEBUG][       Thread-261342][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 16:42:34,178 [DEBUG][       Thread-261342][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 16:42:34,178 [DEBUG][       Thread-261342][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 16:42:34,191 [ INFO][       Thread-261342][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 16:42:34,192 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 16:42:34,192 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 16:42:35,158 [DEBUG][       Thread-261342][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 16:42:35,158 [DEBUG][       Thread-261342][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 16:42:35,208 [DEBUG][       Thread-261342][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 16:42:35,208 [DEBUG][       Thread-261342][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 16:42:35,217 [DEBUG][       Thread-261342][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 16:42:35,226 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 16:42:35,226 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 16:42:35,235 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 16:42:35,244 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 16:42:35,245 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 16:42:35,245 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 16:42:35,253 [DEBUG][       Thread-261342][   transport.py][1871] : EOF in transport thread
2025-06-13 16:42:42,510 [DEBUG][Thread-261344 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:42:45,252 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 16:42:45,252 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 16:42:45,252 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 16:42:45,252 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 16:42:45,777 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 16, 42, 12), 16.65, 31.48, 0.0, 14.5, 13.5, 0, 0, 0, 2, 0, 0),)
2025-06-13 16:42:45,777 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 16:42:12
2025-06-13 16:42:45,864 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 16:42:45,868 [DEBUG][       Thread-261345][   transport.py][1871] : starting thread (client mode): 0x86368130
2025-06-13 16:42:45,868 [DEBUG][       Thread-261345][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 16:42:45,883 [DEBUG][       Thread-261345][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 16:42:45,883 [ INFO][       Thread-261345][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 16:42:45,886 [DEBUG][       Thread-261345][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 16:42:45,887 [DEBUG][       Thread-261345][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 16:42:45,887 [DEBUG][       Thread-261345][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 16:42:45,887 [DEBUG][       Thread-261345][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:42:45,887 [DEBUG][       Thread-261345][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:42:45,887 [DEBUG][       Thread-261345][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:42:45,887 [DEBUG][       Thread-261345][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:42:45,887 [DEBUG][       Thread-261345][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 16:42:45,887 [DEBUG][       Thread-261345][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 16:42:45,887 [DEBUG][       Thread-261345][   transport.py][1871] : client lang: <none>
2025-06-13 16:42:45,887 [DEBUG][       Thread-261345][   transport.py][1871] : server lang: <none>
2025-06-13 16:42:45,887 [DEBUG][       Thread-261345][   transport.py][1871] : kex follows: False
2025-06-13 16:42:45,887 [DEBUG][       Thread-261345][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 16:42:45,887 [DEBUG][       Thread-261345][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 16:42:45,887 [DEBUG][       Thread-261345][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 16:42:45,887 [DEBUG][       Thread-261345][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 16:42:45,887 [DEBUG][       Thread-261345][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 16:42:45,887 [DEBUG][       Thread-261345][   transport.py][1871] : Compression: none
2025-06-13 16:42:45,887 [DEBUG][       Thread-261345][   transport.py][1871] : === End of kex handshake ===
2025-06-13 16:42:45,903 [DEBUG][       Thread-261345][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 16:42:45,903 [DEBUG][       Thread-261345][   transport.py][1871] : Switch to new keys ...
2025-06-13 16:42:45,904 [DEBUG][       Thread-261345][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 16:42:45,904 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 16:42:45,904 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 16:42:45,904 [DEBUG][       Thread-261345][   transport.py][1871] : userauth is OK
2025-06-13 16:42:45,928 [ INFO][       Thread-261345][   transport.py][1871] : Authentication (password) successful!
2025-06-13 16:42:45,928 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 16:42:46,560 [DEBUG][       Thread-261345][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 16:42:46,560 [DEBUG][       Thread-261345][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 16:42:46,601 [DEBUG][       Thread-261345][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 16:42:46,601 [DEBUG][       Thread-261345][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 16:42:46,603 [DEBUG][       Thread-261345][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 16:42:46,615 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 16:42:46,616 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 16:42:46,617 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 16:42:46,618 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 16:42:46,622 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 16:42:46,623 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 16:42:46,623 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 16:42:46,624 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 16:42:46,624 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.612782 -999.00  +13.20  17.42     36   -1.20 1 1 1 1 1   887    0 13.03 -56.38 ----- 18.8 17.4 56.8 22.6 15.4 -28.5 14.9 -29.0 15.3 -28.7 16.1 -27.7
2025-06-13 16:42:46,624 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 16:42:46,624 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 16:42:46,624 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.612782
2025-06-13 16:42:46,624 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 16:42:46,624 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 16:42:46,624 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 16:42:46,624 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 16:42:46,624 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 16:42:46,624 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T16:42:12', tmtdew=16.65, humidity=31.48, cloud=0.0, wind=14.5, temperature=13.5, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T14:42:24.365', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 16:42:46,625 [DEBUG][       Thread-261345][   transport.py][1871] : EOF in transport thread
2025-06-13 16:42:46,698 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 16:42:46,714 [DEBUG][       Thread-261348][   transport.py][1871] : starting thread (client mode): 0x863ef760
2025-06-13 16:42:46,715 [DEBUG][       Thread-261348][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 16:42:46,730 [DEBUG][       Thread-261348][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 16:42:46,730 [ INFO][       Thread-261348][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 16:42:46,737 [DEBUG][       Thread-261348][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 16:42:46,737 [DEBUG][       Thread-261348][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 16:42:46,737 [DEBUG][       Thread-261348][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 16:42:46,738 [DEBUG][       Thread-261348][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:42:46,738 [DEBUG][       Thread-261348][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:42:46,738 [DEBUG][       Thread-261348][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:42:46,738 [DEBUG][       Thread-261348][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:42:46,738 [DEBUG][       Thread-261348][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 16:42:46,738 [DEBUG][       Thread-261348][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 16:42:46,738 [DEBUG][       Thread-261348][   transport.py][1871] : client lang: <none>
2025-06-13 16:42:46,738 [DEBUG][       Thread-261348][   transport.py][1871] : server lang: <none>
2025-06-13 16:42:46,738 [DEBUG][       Thread-261348][   transport.py][1871] : kex follows: False
2025-06-13 16:42:46,738 [DEBUG][       Thread-261348][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 16:42:46,738 [DEBUG][       Thread-261348][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 16:42:46,738 [DEBUG][       Thread-261348][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 16:42:46,738 [DEBUG][       Thread-261348][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 16:42:46,738 [DEBUG][       Thread-261348][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 16:42:46,738 [DEBUG][       Thread-261348][   transport.py][1871] : Compression: none
2025-06-13 16:42:46,738 [DEBUG][       Thread-261348][   transport.py][1871] : === End of kex handshake ===
2025-06-13 16:42:46,796 [DEBUG][       Thread-261348][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 16:42:46,796 [DEBUG][       Thread-261348][   transport.py][1871] : Switch to new keys ...
2025-06-13 16:42:46,797 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 16:42:46,798 [DEBUG][       Thread-261348][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 16:42:46,798 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 16:42:46,854 [DEBUG][       Thread-261348][   transport.py][1871] : userauth is OK
2025-06-13 16:42:46,854 [DEBUG][       Thread-261348][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 16:42:46,854 [DEBUG][       Thread-261348][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 16:42:46,854 [DEBUG][       Thread-261348][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 16:42:46,854 [DEBUG][       Thread-261348][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 16:42:46,874 [ INFO][       Thread-261348][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 16:42:46,875 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 16:42:46,875 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 16:42:47,878 [DEBUG][       Thread-261348][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 16:42:47,878 [DEBUG][       Thread-261348][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 16:42:47,928 [DEBUG][       Thread-261348][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 16:42:47,928 [DEBUG][       Thread-261348][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 16:42:47,940 [DEBUG][       Thread-261348][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 16:42:47,950 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 16:42:47,950 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 16:42:47,962 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 16:42:47,971 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 16:42:47,972 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 16:42:47,972 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 16:42:47,980 [DEBUG][       Thread-261348][   transport.py][1871] : EOF in transport thread
2025-06-13 16:42:51,532 [DEBUG][Thread-261350 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:42:57,983 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 16:42:57,983 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 16:42:57,983 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 16:42:57,986 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 16:42:58,464 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 16, 42, 44), 16.66, 31.46, 0.0, 15.51, 13.51, 0, 0, 0, 2, 0, 0),)
2025-06-13 16:42:58,464 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 16:42:44
2025-06-13 16:42:58,545 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 16:42:58,549 [DEBUG][       Thread-261351][   transport.py][1871] : starting thread (client mode): 0x86369cc0
2025-06-13 16:42:58,549 [DEBUG][       Thread-261351][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 16:42:58,564 [DEBUG][       Thread-261351][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 16:42:58,565 [ INFO][       Thread-261351][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 16:42:58,566 [DEBUG][       Thread-261351][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 16:42:58,566 [DEBUG][       Thread-261351][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 16:42:58,566 [DEBUG][       Thread-261351][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 16:42:58,567 [DEBUG][       Thread-261351][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:42:58,567 [DEBUG][       Thread-261351][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:42:58,567 [DEBUG][       Thread-261351][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:42:58,567 [DEBUG][       Thread-261351][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:42:58,567 [DEBUG][       Thread-261351][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 16:42:58,567 [DEBUG][       Thread-261351][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 16:42:58,567 [DEBUG][       Thread-261351][   transport.py][1871] : client lang: <none>
2025-06-13 16:42:58,567 [DEBUG][       Thread-261351][   transport.py][1871] : server lang: <none>
2025-06-13 16:42:58,567 [DEBUG][       Thread-261351][   transport.py][1871] : kex follows: False
2025-06-13 16:42:58,567 [DEBUG][       Thread-261351][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 16:42:58,567 [DEBUG][       Thread-261351][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 16:42:58,567 [DEBUG][       Thread-261351][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 16:42:58,567 [DEBUG][       Thread-261351][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 16:42:58,567 [DEBUG][       Thread-261351][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 16:42:58,567 [DEBUG][       Thread-261351][   transport.py][1871] : Compression: none
2025-06-13 16:42:58,567 [DEBUG][       Thread-261351][   transport.py][1871] : === End of kex handshake ===
2025-06-13 16:42:58,576 [DEBUG][       Thread-261351][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 16:42:58,576 [DEBUG][       Thread-261351][   transport.py][1871] : Switch to new keys ...
2025-06-13 16:42:58,576 [DEBUG][       Thread-261351][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 16:42:58,577 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 16:42:58,577 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 16:42:58,577 [DEBUG][       Thread-261351][   transport.py][1871] : userauth is OK
2025-06-13 16:42:58,590 [ INFO][       Thread-261351][   transport.py][1871] : Authentication (password) successful!
2025-06-13 16:42:58,591 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 16:42:59,291 [DEBUG][       Thread-261351][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 16:42:59,291 [DEBUG][       Thread-261351][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 16:42:59,333 [DEBUG][       Thread-261351][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 16:42:59,333 [DEBUG][       Thread-261351][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 16:42:59,337 [DEBUG][       Thread-261351][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 16:42:59,348 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 16:42:59,349 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 16:42:59,351 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 16:42:59,353 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 16:42:59,359 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 16:42:59,361 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 16:42:59,362 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 16:42:59,362 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 16:42:59,362 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.612782 -999.00  +13.20  17.42     36   -1.20 1 1 1 1 1   887    0 13.03 -56.38 ----- 18.8 17.4 56.8 22.6 15.4 -28.5 14.9 -29.0 15.3 -28.7 16.1 -27.7
2025-06-13 16:42:59,363 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 16:42:59,363 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 16:42:59,363 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.612782
2025-06-13 16:42:59,363 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 16:42:59,364 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 16:42:59,364 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 16:42:59,364 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 16:42:59,364 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 16:42:59,365 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T16:42:44', tmtdew=16.66, humidity=31.46, cloud=0.0, wind=15.51, temperature=13.51, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T14:42:24.365', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 16:42:59,366 [DEBUG][       Thread-261351][   transport.py][1871] : EOF in transport thread
2025-06-13 16:42:59,439 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 16:42:59,449 [DEBUG][       Thread-261354][   transport.py][1871] : starting thread (client mode): 0x863ef190
2025-06-13 16:42:59,449 [DEBUG][       Thread-261354][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 16:42:59,464 [DEBUG][       Thread-261354][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 16:42:59,464 [ INFO][       Thread-261354][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 16:42:59,473 [DEBUG][       Thread-261354][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 16:42:59,474 [DEBUG][       Thread-261354][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 16:42:59,474 [DEBUG][       Thread-261354][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 16:42:59,474 [DEBUG][       Thread-261354][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:42:59,474 [DEBUG][       Thread-261354][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:42:59,474 [DEBUG][       Thread-261354][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:42:59,474 [DEBUG][       Thread-261354][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:42:59,474 [DEBUG][       Thread-261354][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 16:42:59,474 [DEBUG][       Thread-261354][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 16:42:59,474 [DEBUG][       Thread-261354][   transport.py][1871] : client lang: <none>
2025-06-13 16:42:59,474 [DEBUG][       Thread-261354][   transport.py][1871] : server lang: <none>
2025-06-13 16:42:59,474 [DEBUG][       Thread-261354][   transport.py][1871] : kex follows: False
2025-06-13 16:42:59,474 [DEBUG][       Thread-261354][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 16:42:59,474 [DEBUG][       Thread-261354][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 16:42:59,474 [DEBUG][       Thread-261354][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 16:42:59,474 [DEBUG][       Thread-261354][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 16:42:59,474 [DEBUG][       Thread-261354][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 16:42:59,474 [DEBUG][       Thread-261354][   transport.py][1871] : Compression: none
2025-06-13 16:42:59,474 [DEBUG][       Thread-261354][   transport.py][1871] : === End of kex handshake ===
2025-06-13 16:42:59,532 [DEBUG][       Thread-261354][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 16:42:59,533 [DEBUG][       Thread-261354][   transport.py][1871] : Switch to new keys ...
2025-06-13 16:42:59,534 [DEBUG][       Thread-261354][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 16:42:59,534 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 16:42:59,535 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 16:42:59,592 [DEBUG][       Thread-261354][   transport.py][1871] : userauth is OK
2025-06-13 16:42:59,592 [DEBUG][       Thread-261354][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 16:42:59,593 [DEBUG][       Thread-261354][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 16:42:59,593 [DEBUG][       Thread-261354][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 16:42:59,593 [DEBUG][       Thread-261354][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 16:42:59,611 [ INFO][       Thread-261354][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 16:42:59,611 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 16:42:59,612 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 16:43:00,554 [DEBUG][Thread-261356 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:43:00,595 [DEBUG][       Thread-261354][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 16:43:00,595 [DEBUG][       Thread-261354][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 16:43:00,643 [DEBUG][       Thread-261354][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 16:43:00,643 [DEBUG][       Thread-261354][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 16:43:00,652 [DEBUG][       Thread-261354][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 16:43:00,660 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 16:43:00,660 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 16:43:00,668 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 16:43:00,677 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 16:43:00,677 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 16:43:00,677 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 16:43:00,689 [DEBUG][       Thread-261354][   transport.py][1871] : EOF in transport thread
2025-06-13 16:43:09,581 [DEBUG][Thread-261357 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:43:10,687 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 16:43:10,687 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 16:43:10,687 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 16:43:10,690 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 16:43:10,980 [DEBUG][Thread-261358 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:43:11,150 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 16, 42, 44), 16.66, 31.46, 0.0, 15.51, 13.51, 0, 0, 0, 2, 0, 0),)
2025-06-13 16:43:11,150 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 16:42:44
2025-06-13 16:43:11,232 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 16:43:11,238 [DEBUG][       Thread-261359][   transport.py][1871] : starting thread (client mode): 0x8636b850
2025-06-13 16:43:11,238 [DEBUG][       Thread-261359][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 16:43:11,260 [DEBUG][       Thread-261359][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 16:43:11,260 [ INFO][       Thread-261359][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 16:43:11,263 [DEBUG][       Thread-261359][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 16:43:11,263 [DEBUG][       Thread-261359][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 16:43:11,263 [DEBUG][       Thread-261359][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 16:43:11,263 [DEBUG][       Thread-261359][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:43:11,264 [DEBUG][       Thread-261359][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:43:11,264 [DEBUG][       Thread-261359][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:43:11,264 [DEBUG][       Thread-261359][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:43:11,264 [DEBUG][       Thread-261359][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 16:43:11,264 [DEBUG][       Thread-261359][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 16:43:11,264 [DEBUG][       Thread-261359][   transport.py][1871] : client lang: <none>
2025-06-13 16:43:11,264 [DEBUG][       Thread-261359][   transport.py][1871] : server lang: <none>
2025-06-13 16:43:11,264 [DEBUG][       Thread-261359][   transport.py][1871] : kex follows: False
2025-06-13 16:43:11,264 [DEBUG][       Thread-261359][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 16:43:11,264 [DEBUG][       Thread-261359][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 16:43:11,264 [DEBUG][       Thread-261359][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 16:43:11,264 [DEBUG][       Thread-261359][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 16:43:11,264 [DEBUG][       Thread-261359][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 16:43:11,264 [DEBUG][       Thread-261359][   transport.py][1871] : Compression: none
2025-06-13 16:43:11,264 [DEBUG][       Thread-261359][   transport.py][1871] : === End of kex handshake ===
2025-06-13 16:43:11,281 [DEBUG][       Thread-261359][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 16:43:11,282 [DEBUG][       Thread-261359][   transport.py][1871] : Switch to new keys ...
2025-06-13 16:43:11,282 [DEBUG][       Thread-261359][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 16:43:11,282 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 16:43:11,283 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 16:43:11,284 [DEBUG][       Thread-261359][   transport.py][1871] : userauth is OK
2025-06-13 16:43:11,297 [ INFO][       Thread-261359][   transport.py][1871] : Authentication (password) successful!
2025-06-13 16:43:11,297 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 16:43:11,886 [DEBUG][       Thread-261359][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 16:43:11,886 [DEBUG][       Thread-261359][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 16:43:11,928 [DEBUG][       Thread-261359][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 16:43:11,929 [DEBUG][       Thread-261359][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 16:43:11,931 [DEBUG][       Thread-261359][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 16:43:11,942 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 16:43:11,942 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 16:43:11,943 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 16:43:11,944 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 16:43:11,946 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 16:43:11,947 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 16:43:11,947 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 16:43:11,947 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 16:43:11,947 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.613129 -999.00  +13.30  19.30     36   -1.30 1 1 1 1 1   887    0 12.92 -55.53 ----- 18.4 19.3 49.2 21.9 15.4 -28.8 14.8 -29.2 15.4 -28.2 16.1 -27.6
2025-06-13 16:43:11,947 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 16:43:11,947 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 16:43:11,947 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.613129
2025-06-13 16:43:11,947 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 16:43:11,948 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 16:43:11,948 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 16:43:11,948 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 16:43:11,948 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 16:43:11,948 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T16:42:44', tmtdew=16.66, humidity=31.46, cloud=0.0, wind=15.51, temperature=13.51, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T14:42:54.346', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 16:43:11,948 [DEBUG][       Thread-261359][   transport.py][1871] : EOF in transport thread
2025-06-13 16:43:12,023 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 16:43:12,034 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:43:12,034 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:43:12,035 [DEBUG][       Thread-261362][   transport.py][1871] : starting thread (client mode): 0x863a40a0
2025-06-13 16:43:12,035 [DEBUG][       Thread-261362][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 16:43:12,051 [DEBUG][       Thread-261362][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 16:43:12,052 [ INFO][       Thread-261362][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 16:43:12,059 [DEBUG][       Thread-261362][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 16:43:12,059 [DEBUG][       Thread-261362][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 16:43:12,059 [DEBUG][       Thread-261362][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 16:43:12,059 [DEBUG][       Thread-261362][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:43:12,059 [DEBUG][       Thread-261362][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:43:12,059 [DEBUG][       Thread-261362][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:43:12,059 [DEBUG][       Thread-261362][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:43:12,059 [DEBUG][       Thread-261362][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 16:43:12,059 [DEBUG][       Thread-261362][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 16:43:12,060 [DEBUG][       Thread-261362][   transport.py][1871] : client lang: <none>
2025-06-13 16:43:12,060 [DEBUG][       Thread-261362][   transport.py][1871] : server lang: <none>
2025-06-13 16:43:12,060 [DEBUG][       Thread-261362][   transport.py][1871] : kex follows: False
2025-06-13 16:43:12,060 [DEBUG][       Thread-261362][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 16:43:12,060 [DEBUG][       Thread-261362][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 16:43:12,060 [DEBUG][       Thread-261362][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 16:43:12,060 [DEBUG][       Thread-261362][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 16:43:12,060 [DEBUG][       Thread-261362][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 16:43:12,060 [DEBUG][       Thread-261362][   transport.py][1871] : Compression: none
2025-06-13 16:43:12,060 [DEBUG][       Thread-261362][   transport.py][1871] : === End of kex handshake ===
2025-06-13 16:43:12,117 [DEBUG][       Thread-261362][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 16:43:12,118 [DEBUG][       Thread-261362][   transport.py][1871] : Switch to new keys ...
2025-06-13 16:43:12,118 [DEBUG][       Thread-261362][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 16:43:12,119 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 16:43:12,119 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 16:43:12,174 [DEBUG][       Thread-261362][   transport.py][1871] : userauth is OK
2025-06-13 16:43:12,174 [DEBUG][       Thread-261362][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 16:43:12,174 [DEBUG][       Thread-261362][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 16:43:12,174 [DEBUG][       Thread-261362][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 16:43:12,174 [DEBUG][       Thread-261362][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 16:43:12,193 [ INFO][       Thread-261362][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 16:43:12,193 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 16:43:12,194 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 16:43:13,227 [DEBUG][       Thread-261362][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 16:43:13,227 [DEBUG][       Thread-261362][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 16:43:13,276 [DEBUG][       Thread-261362][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 16:43:13,276 [DEBUG][       Thread-261362][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 16:43:13,285 [DEBUG][       Thread-261362][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 16:43:13,295 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 16:43:13,295 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 16:43:13,306 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 16:43:13,322 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 16:43:13,322 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 16:43:13,323 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 16:43:13,330 [DEBUG][       Thread-261362][   transport.py][1871] : EOF in transport thread
2025-06-13 16:43:18,603 [DEBUG][Thread-261364 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:43:19,832 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:43:19,833 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:43:23,333 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 16:43:23,333 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 16:43:23,334 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 16:43:23,336 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 16:43:23,791 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 16, 43, 16), 16.81, 30.9, 0.0, 15.76, 13.52, 0, 0, 0, 2, 0, 0),)
2025-06-13 16:43:23,791 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 16:43:16
2025-06-13 16:43:23,872 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 16:43:23,877 [DEBUG][       Thread-261365][   transport.py][1871] : starting thread (client mode): 0x867fe200
2025-06-13 16:43:23,877 [DEBUG][       Thread-261365][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 16:43:23,897 [DEBUG][       Thread-261365][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 16:43:23,898 [ INFO][       Thread-261365][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 16:43:23,901 [DEBUG][       Thread-261365][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 16:43:23,901 [DEBUG][       Thread-261365][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 16:43:23,901 [DEBUG][       Thread-261365][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 16:43:23,901 [DEBUG][       Thread-261365][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:43:23,901 [DEBUG][       Thread-261365][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:43:23,901 [DEBUG][       Thread-261365][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:43:23,901 [DEBUG][       Thread-261365][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:43:23,901 [DEBUG][       Thread-261365][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 16:43:23,901 [DEBUG][       Thread-261365][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 16:43:23,901 [DEBUG][       Thread-261365][   transport.py][1871] : client lang: <none>
2025-06-13 16:43:23,901 [DEBUG][       Thread-261365][   transport.py][1871] : server lang: <none>
2025-06-13 16:43:23,901 [DEBUG][       Thread-261365][   transport.py][1871] : kex follows: False
2025-06-13 16:43:23,901 [DEBUG][       Thread-261365][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 16:43:23,901 [DEBUG][       Thread-261365][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 16:43:23,901 [DEBUG][       Thread-261365][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 16:43:23,901 [DEBUG][       Thread-261365][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 16:43:23,902 [DEBUG][       Thread-261365][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 16:43:23,902 [DEBUG][       Thread-261365][   transport.py][1871] : Compression: none
2025-06-13 16:43:23,902 [DEBUG][       Thread-261365][   transport.py][1871] : === End of kex handshake ===
2025-06-13 16:43:23,909 [DEBUG][       Thread-261365][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 16:43:23,910 [DEBUG][       Thread-261365][   transport.py][1871] : Switch to new keys ...
2025-06-13 16:43:23,910 [DEBUG][       Thread-261365][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 16:43:23,910 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 16:43:23,910 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 16:43:23,911 [DEBUG][       Thread-261365][   transport.py][1871] : userauth is OK
2025-06-13 16:43:23,923 [ INFO][       Thread-261365][   transport.py][1871] : Authentication (password) successful!
2025-06-13 16:43:23,923 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 16:43:23,991 [DEBUG][Thread-261367 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:43:24,565 [DEBUG][       Thread-261365][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 16:43:24,566 [DEBUG][       Thread-261365][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 16:43:24,609 [DEBUG][       Thread-261365][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 16:43:24,609 [DEBUG][       Thread-261365][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 16:43:24,613 [DEBUG][       Thread-261365][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 16:43:24,625 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 16:43:24,626 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 16:43:24,627 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 16:43:24,630 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 16:43:24,636 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 16:43:24,638 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 16:43:24,638 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 16:43:24,639 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 16:43:24,639 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.613129 -999.00  +13.30  19.30     36   -1.30 1 1 1 1 1   887    0 12.92 -55.53 ----- 18.4 19.3 49.2 21.9 15.4 -28.8 14.8 -29.2 15.4 -28.2 16.1 -27.6
2025-06-13 16:43:24,639 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 16:43:24,639 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 16:43:24,639 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.613129
2025-06-13 16:43:24,640 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 16:43:24,640 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 16:43:24,640 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 16:43:24,640 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 16:43:24,640 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 16:43:24,640 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T16:43:16', tmtdew=16.81, humidity=30.9, cloud=0.0, wind=15.76, temperature=13.52, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T14:42:54.346', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 16:43:24,642 [DEBUG][       Thread-261365][   transport.py][1871] : EOF in transport thread
2025-06-13 16:43:24,725 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 16:43:24,734 [DEBUG][       Thread-261369][   transport.py][1871] : starting thread (client mode): 0x863930a0
2025-06-13 16:43:24,734 [DEBUG][       Thread-261369][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 16:43:24,754 [DEBUG][       Thread-261369][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 16:43:24,754 [ INFO][       Thread-261369][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 16:43:24,766 [DEBUG][       Thread-261369][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 16:43:24,766 [DEBUG][       Thread-261369][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 16:43:24,767 [DEBUG][       Thread-261369][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 16:43:24,767 [DEBUG][       Thread-261369][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:43:24,767 [DEBUG][       Thread-261369][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:43:24,767 [DEBUG][       Thread-261369][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:43:24,767 [DEBUG][       Thread-261369][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:43:24,767 [DEBUG][       Thread-261369][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 16:43:24,767 [DEBUG][       Thread-261369][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 16:43:24,767 [DEBUG][       Thread-261369][   transport.py][1871] : client lang: <none>
2025-06-13 16:43:24,767 [DEBUG][       Thread-261369][   transport.py][1871] : server lang: <none>
2025-06-13 16:43:24,767 [DEBUG][       Thread-261369][   transport.py][1871] : kex follows: False
2025-06-13 16:43:24,767 [DEBUG][       Thread-261369][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 16:43:24,767 [DEBUG][       Thread-261369][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 16:43:24,767 [DEBUG][       Thread-261369][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 16:43:24,767 [DEBUG][       Thread-261369][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 16:43:24,767 [DEBUG][       Thread-261369][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 16:43:24,768 [DEBUG][       Thread-261369][   transport.py][1871] : Compression: none
2025-06-13 16:43:24,768 [DEBUG][       Thread-261369][   transport.py][1871] : === End of kex handshake ===
2025-06-13 16:43:24,823 [DEBUG][       Thread-261369][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 16:43:24,823 [DEBUG][       Thread-261369][   transport.py][1871] : Switch to new keys ...
2025-06-13 16:43:24,824 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 16:43:24,825 [DEBUG][       Thread-261369][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 16:43:24,825 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 16:43:24,879 [DEBUG][       Thread-261369][   transport.py][1871] : userauth is OK
2025-06-13 16:43:24,879 [DEBUG][       Thread-261369][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 16:43:24,879 [DEBUG][       Thread-261369][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 16:43:24,879 [DEBUG][       Thread-261369][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 16:43:24,879 [DEBUG][       Thread-261369][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 16:43:24,897 [ INFO][       Thread-261369][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 16:43:24,898 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 16:43:24,898 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 16:43:25,867 [DEBUG][       Thread-261369][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 16:43:25,867 [DEBUG][       Thread-261369][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 16:43:25,916 [DEBUG][       Thread-261369][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 16:43:25,916 [DEBUG][       Thread-261369][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 16:43:25,925 [DEBUG][       Thread-261369][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 16:43:25,935 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 16:43:25,935 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 16:43:25,948 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 16:43:25,957 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 16:43:25,958 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 16:43:25,958 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 16:43:25,966 [DEBUG][       Thread-261369][   transport.py][1871] : EOF in transport thread
2025-06-13 16:43:27,625 [DEBUG][Thread-261371 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:43:35,968 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 16:43:35,969 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 16:43:35,969 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 16:43:35,972 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 16:43:36,440 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 16, 43, 16), 16.81, 30.9, 0.0, 15.76, 13.52, 0, 0, 0, 2, 0, 0),)
2025-06-13 16:43:36,440 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 16:43:16
2025-06-13 16:43:36,522 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 16:43:36,529 [DEBUG][       Thread-261372][   transport.py][1871] : starting thread (client mode): 0x86351cf0
2025-06-13 16:43:36,529 [DEBUG][       Thread-261372][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 16:43:36,550 [DEBUG][       Thread-261372][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 16:43:36,550 [ INFO][       Thread-261372][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 16:43:36,553 [DEBUG][       Thread-261372][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 16:43:36,553 [DEBUG][       Thread-261372][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 16:43:36,553 [DEBUG][       Thread-261372][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 16:43:36,553 [DEBUG][       Thread-261372][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:43:36,553 [DEBUG][       Thread-261372][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:43:36,553 [DEBUG][       Thread-261372][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:43:36,553 [DEBUG][       Thread-261372][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:43:36,554 [DEBUG][       Thread-261372][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 16:43:36,554 [DEBUG][       Thread-261372][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 16:43:36,554 [DEBUG][       Thread-261372][   transport.py][1871] : client lang: <none>
2025-06-13 16:43:36,554 [DEBUG][       Thread-261372][   transport.py][1871] : server lang: <none>
2025-06-13 16:43:36,554 [DEBUG][       Thread-261372][   transport.py][1871] : kex follows: False
2025-06-13 16:43:36,554 [DEBUG][       Thread-261372][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 16:43:36,554 [DEBUG][       Thread-261372][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 16:43:36,554 [DEBUG][       Thread-261372][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 16:43:36,554 [DEBUG][       Thread-261372][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 16:43:36,554 [DEBUG][       Thread-261372][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 16:43:36,554 [DEBUG][       Thread-261372][   transport.py][1871] : Compression: none
2025-06-13 16:43:36,554 [DEBUG][       Thread-261372][   transport.py][1871] : === End of kex handshake ===
2025-06-13 16:43:36,570 [DEBUG][       Thread-261372][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 16:43:36,571 [DEBUG][       Thread-261372][   transport.py][1871] : Switch to new keys ...
2025-06-13 16:43:36,571 [DEBUG][       Thread-261372][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 16:43:36,572 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 16:43:36,572 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 16:43:36,573 [DEBUG][       Thread-261372][   transport.py][1871] : userauth is OK
2025-06-13 16:43:36,586 [ INFO][       Thread-261372][   transport.py][1871] : Authentication (password) successful!
2025-06-13 16:43:36,587 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 16:43:36,662 [DEBUG][Thread-261374 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:43:37,233 [DEBUG][       Thread-261372][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 16:43:37,233 [DEBUG][       Thread-261372][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 16:43:37,276 [DEBUG][       Thread-261372][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 16:43:37,277 [DEBUG][       Thread-261372][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 16:43:37,279 [DEBUG][       Thread-261372][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 16:43:37,284 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 16:43:37,285 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 16:43:37,286 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 16:43:37,288 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 16:43:37,292 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 16:43:37,294 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 16:43:37,294 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 16:43:37,295 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 16:43:37,295 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.613129 -999.00  +13.30  19.30     36   -1.30 1 1 1 1 1   887    0 12.92 -55.53 ----- 18.4 19.3 49.2 21.9 15.4 -28.8 14.8 -29.2 15.4 -28.2 16.1 -27.6
2025-06-13 16:43:37,295 [DEBUG][       Thread-261372][   transport.py][1871] : EOF in transport thread
2025-06-13 16:43:37,295 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 16:43:37,296 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 16:43:37,296 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.613129
2025-06-13 16:43:37,296 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 16:43:37,297 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 16:43:37,297 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 16:43:37,297 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 16:43:37,297 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 16:43:37,297 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T16:43:16', tmtdew=16.81, humidity=30.9, cloud=0.0, wind=15.76, temperature=13.52, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T14:42:54.346', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 16:43:37,380 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 16:43:37,391 [DEBUG][       Thread-261376][   transport.py][1871] : starting thread (client mode): 0x86739330
2025-06-13 16:43:37,391 [DEBUG][       Thread-261376][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 16:43:37,406 [DEBUG][       Thread-261376][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 16:43:37,407 [ INFO][       Thread-261376][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 16:43:37,414 [DEBUG][       Thread-261376][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 16:43:37,414 [DEBUG][       Thread-261376][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 16:43:37,414 [DEBUG][       Thread-261376][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 16:43:37,414 [DEBUG][       Thread-261376][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:43:37,414 [DEBUG][       Thread-261376][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:43:37,414 [DEBUG][       Thread-261376][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:43:37,415 [DEBUG][       Thread-261376][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:43:37,415 [DEBUG][       Thread-261376][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 16:43:37,415 [DEBUG][       Thread-261376][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 16:43:37,415 [DEBUG][       Thread-261376][   transport.py][1871] : client lang: <none>
2025-06-13 16:43:37,415 [DEBUG][       Thread-261376][   transport.py][1871] : server lang: <none>
2025-06-13 16:43:37,415 [DEBUG][       Thread-261376][   transport.py][1871] : kex follows: False
2025-06-13 16:43:37,415 [DEBUG][       Thread-261376][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 16:43:37,415 [DEBUG][       Thread-261376][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 16:43:37,415 [DEBUG][       Thread-261376][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 16:43:37,415 [DEBUG][       Thread-261376][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 16:43:37,415 [DEBUG][       Thread-261376][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 16:43:37,415 [DEBUG][       Thread-261376][   transport.py][1871] : Compression: none
2025-06-13 16:43:37,415 [DEBUG][       Thread-261376][   transport.py][1871] : === End of kex handshake ===
2025-06-13 16:43:37,475 [DEBUG][       Thread-261376][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 16:43:37,475 [DEBUG][       Thread-261376][   transport.py][1871] : Switch to new keys ...
2025-06-13 16:43:37,476 [DEBUG][       Thread-261376][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 16:43:37,476 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 16:43:37,477 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 16:43:37,530 [DEBUG][       Thread-261376][   transport.py][1871] : userauth is OK
2025-06-13 16:43:37,530 [DEBUG][       Thread-261376][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 16:43:37,531 [DEBUG][       Thread-261376][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 16:43:37,531 [DEBUG][       Thread-261376][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 16:43:37,531 [DEBUG][       Thread-261376][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 16:43:37,549 [ INFO][       Thread-261376][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 16:43:37,550 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 16:43:37,550 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 16:43:38,545 [DEBUG][       Thread-261376][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 16:43:38,545 [DEBUG][       Thread-261376][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 16:43:38,595 [DEBUG][       Thread-261376][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 16:43:38,595 [DEBUG][       Thread-261376][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 16:43:38,603 [DEBUG][       Thread-261376][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 16:43:38,611 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 16:43:38,611 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 16:43:38,619 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 16:43:38,627 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 16:43:38,627 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 16:43:38,628 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 16:43:38,635 [DEBUG][       Thread-261376][   transport.py][1871] : EOF in transport thread
2025-06-13 16:43:45,681 [DEBUG][Thread-261378 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:43:48,638 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 16:43:48,638 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 16:43:48,638 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 16:43:48,639 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 16:43:49,128 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 16, 43, 16), 16.81, 30.9, 0.0, 15.76, 13.52, 0, 0, 0, 2, 0, 0),)
2025-06-13 16:43:49,128 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 16:43:16
2025-06-13 16:43:49,216 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 16:43:49,220 [DEBUG][       Thread-261379][   transport.py][1871] : starting thread (client mode): 0x867ff040
2025-06-13 16:43:49,220 [DEBUG][       Thread-261379][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 16:43:49,240 [DEBUG][       Thread-261379][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 16:43:49,240 [ INFO][       Thread-261379][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 16:43:49,244 [DEBUG][       Thread-261379][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 16:43:49,244 [DEBUG][       Thread-261379][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 16:43:49,244 [DEBUG][       Thread-261379][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 16:43:49,244 [DEBUG][       Thread-261379][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:43:49,244 [DEBUG][       Thread-261379][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:43:49,244 [DEBUG][       Thread-261379][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:43:49,244 [DEBUG][       Thread-261379][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:43:49,244 [DEBUG][       Thread-261379][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 16:43:49,244 [DEBUG][       Thread-261379][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 16:43:49,244 [DEBUG][       Thread-261379][   transport.py][1871] : client lang: <none>
2025-06-13 16:43:49,244 [DEBUG][       Thread-261379][   transport.py][1871] : server lang: <none>
2025-06-13 16:43:49,244 [DEBUG][       Thread-261379][   transport.py][1871] : kex follows: False
2025-06-13 16:43:49,244 [DEBUG][       Thread-261379][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 16:43:49,244 [DEBUG][       Thread-261379][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 16:43:49,244 [DEBUG][       Thread-261379][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 16:43:49,244 [DEBUG][       Thread-261379][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 16:43:49,244 [DEBUG][       Thread-261379][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 16:43:49,244 [DEBUG][       Thread-261379][   transport.py][1871] : Compression: none
2025-06-13 16:43:49,244 [DEBUG][       Thread-261379][   transport.py][1871] : === End of kex handshake ===
2025-06-13 16:43:49,259 [DEBUG][       Thread-261379][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 16:43:49,259 [DEBUG][       Thread-261379][   transport.py][1871] : Switch to new keys ...
2025-06-13 16:43:49,259 [DEBUG][       Thread-261379][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 16:43:49,259 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 16:43:49,259 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 16:43:49,260 [DEBUG][       Thread-261379][   transport.py][1871] : userauth is OK
2025-06-13 16:43:49,272 [ INFO][       Thread-261379][   transport.py][1871] : Authentication (password) successful!
2025-06-13 16:43:49,273 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 16:43:49,903 [DEBUG][       Thread-261379][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 16:43:49,903 [DEBUG][       Thread-261379][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 16:43:49,948 [DEBUG][       Thread-261379][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 16:43:49,948 [DEBUG][       Thread-261379][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 16:43:49,950 [DEBUG][       Thread-261379][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 16:43:49,964 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 16:43:49,964 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 16:43:49,965 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 16:43:49,966 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 16:43:49,968 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 16:43:49,969 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 16:43:49,969 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 16:43:49,969 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 16:43:49,969 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.613476 -999.00  +13.30  18.76     36   -1.20 1 1 1 1 1   887    0 13.35 -53.33 ----- 19.9 18.8 52.0 20.7 15.4 -28.5 14.9 -29.1 15.4 -28.1 16.2 -27.8
2025-06-13 16:43:49,969 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 16:43:49,969 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 16:43:49,969 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.613476
2025-06-13 16:43:49,970 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 16:43:49,970 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 16:43:49,970 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 16:43:49,970 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 16:43:49,970 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 16:43:49,970 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T16:43:16', tmtdew=16.81, humidity=30.9, cloud=0.0, wind=15.76, temperature=13.52, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T14:43:24.326', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 16:43:49,970 [DEBUG][       Thread-261379][   transport.py][1871] : EOF in transport thread
2025-06-13 16:43:50,044 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 16:43:50,053 [DEBUG][       Thread-261382][   transport.py][1871] : starting thread (client mode): 0x868c85e0
2025-06-13 16:43:50,053 [DEBUG][       Thread-261382][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 16:43:50,076 [DEBUG][       Thread-261382][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 16:43:50,076 [ INFO][       Thread-261382][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 16:43:50,087 [DEBUG][       Thread-261382][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 16:43:50,087 [DEBUG][       Thread-261382][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 16:43:50,087 [DEBUG][       Thread-261382][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 16:43:50,087 [DEBUG][       Thread-261382][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:43:50,087 [DEBUG][       Thread-261382][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:43:50,087 [DEBUG][       Thread-261382][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:43:50,087 [DEBUG][       Thread-261382][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:43:50,087 [DEBUG][       Thread-261382][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 16:43:50,087 [DEBUG][       Thread-261382][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 16:43:50,087 [DEBUG][       Thread-261382][   transport.py][1871] : client lang: <none>
2025-06-13 16:43:50,087 [DEBUG][       Thread-261382][   transport.py][1871] : server lang: <none>
2025-06-13 16:43:50,087 [DEBUG][       Thread-261382][   transport.py][1871] : kex follows: False
2025-06-13 16:43:50,087 [DEBUG][       Thread-261382][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 16:43:50,088 [DEBUG][       Thread-261382][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 16:43:50,088 [DEBUG][       Thread-261382][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 16:43:50,088 [DEBUG][       Thread-261382][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 16:43:50,088 [DEBUG][       Thread-261382][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 16:43:50,088 [DEBUG][       Thread-261382][   transport.py][1871] : Compression: none
2025-06-13 16:43:50,088 [DEBUG][       Thread-261382][   transport.py][1871] : === End of kex handshake ===
2025-06-13 16:43:50,142 [DEBUG][       Thread-261382][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 16:43:50,142 [DEBUG][       Thread-261382][   transport.py][1871] : Switch to new keys ...
2025-06-13 16:43:50,143 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 16:43:50,143 [DEBUG][       Thread-261382][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 16:43:50,144 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 16:43:50,205 [DEBUG][       Thread-261382][   transport.py][1871] : userauth is OK
2025-06-13 16:43:50,205 [DEBUG][       Thread-261382][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 16:43:50,206 [DEBUG][       Thread-261382][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 16:43:50,206 [DEBUG][       Thread-261382][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 16:43:50,206 [DEBUG][       Thread-261382][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 16:43:50,227 [ INFO][       Thread-261382][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 16:43:50,227 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 16:43:50,228 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 16:43:51,220 [DEBUG][       Thread-261382][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 16:43:51,220 [DEBUG][       Thread-261382][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 16:43:51,268 [DEBUG][       Thread-261382][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 16:43:51,268 [DEBUG][       Thread-261382][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 16:43:51,277 [DEBUG][       Thread-261382][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 16:43:51,286 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 16:43:51,287 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 16:43:51,296 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 16:43:51,306 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 16:43:51,306 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 16:43:51,306 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 16:43:51,318 [DEBUG][       Thread-261382][   transport.py][1871] : EOF in transport thread
2025-06-13 16:43:54,702 [DEBUG][Thread-261384 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:44:01,314 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 16:44:01,314 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 16:44:01,314 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 16:44:01,315 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 16:44:01,773 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 16, 43, 47), 16.82, 30.89, 0.0, 15.95, 13.55, 0, 0, 0, 2, 0, 0),)
2025-06-13 16:44:01,773 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 16:43:47
2025-06-13 16:44:01,854 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 16:44:01,860 [DEBUG][       Thread-261385][   transport.py][1871] : starting thread (client mode): 0x863523e0
2025-06-13 16:44:01,860 [DEBUG][       Thread-261385][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 16:44:01,874 [DEBUG][       Thread-261385][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 16:44:01,874 [ INFO][       Thread-261385][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 16:44:01,878 [DEBUG][       Thread-261385][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 16:44:01,878 [DEBUG][       Thread-261385][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 16:44:01,878 [DEBUG][       Thread-261385][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 16:44:01,878 [DEBUG][       Thread-261385][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:44:01,878 [DEBUG][       Thread-261385][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:44:01,878 [DEBUG][       Thread-261385][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:44:01,878 [DEBUG][       Thread-261385][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:44:01,878 [DEBUG][       Thread-261385][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 16:44:01,878 [DEBUG][       Thread-261385][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 16:44:01,878 [DEBUG][       Thread-261385][   transport.py][1871] : client lang: <none>
2025-06-13 16:44:01,878 [DEBUG][       Thread-261385][   transport.py][1871] : server lang: <none>
2025-06-13 16:44:01,878 [DEBUG][       Thread-261385][   transport.py][1871] : kex follows: False
2025-06-13 16:44:01,878 [DEBUG][       Thread-261385][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 16:44:01,878 [DEBUG][       Thread-261385][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 16:44:01,878 [DEBUG][       Thread-261385][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 16:44:01,878 [DEBUG][       Thread-261385][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 16:44:01,878 [DEBUG][       Thread-261385][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 16:44:01,878 [DEBUG][       Thread-261385][   transport.py][1871] : Compression: none
2025-06-13 16:44:01,878 [DEBUG][       Thread-261385][   transport.py][1871] : === End of kex handshake ===
2025-06-13 16:44:01,898 [DEBUG][       Thread-261385][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 16:44:01,898 [DEBUG][       Thread-261385][   transport.py][1871] : Switch to new keys ...
2025-06-13 16:44:01,898 [DEBUG][       Thread-261385][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 16:44:01,899 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 16:44:01,899 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 16:44:01,900 [DEBUG][       Thread-261385][   transport.py][1871] : userauth is OK
2025-06-13 16:44:01,913 [ INFO][       Thread-261385][   transport.py][1871] : Authentication (password) successful!
2025-06-13 16:44:01,913 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 16:44:02,626 [DEBUG][       Thread-261385][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 16:44:02,626 [DEBUG][       Thread-261385][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 16:44:02,669 [DEBUG][       Thread-261385][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 16:44:02,669 [DEBUG][       Thread-261385][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 16:44:02,672 [DEBUG][       Thread-261385][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 16:44:02,686 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 16:44:02,686 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 16:44:02,688 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 16:44:02,690 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 16:44:02,696 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 16:44:02,698 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 16:44:02,698 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 16:44:02,699 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 16:44:02,699 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.613476 -999.00  +13.30  18.76     36   -1.20 1 1 1 1 1   887    0 13.35 -53.33 ----- 19.9 18.8 52.0 20.7 15.4 -28.5 14.9 -29.1 15.4 -28.1 16.2 -27.8
2025-06-13 16:44:02,699 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 16:44:02,699 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 16:44:02,699 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.613476
2025-06-13 16:44:02,700 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 16:44:02,700 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 16:44:02,700 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 16:44:02,701 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 16:44:02,701 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 16:44:02,701 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T16:43:47', tmtdew=16.82, humidity=30.89, cloud=0.0, wind=15.95, temperature=13.55, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T14:43:24.326', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 16:44:02,702 [DEBUG][       Thread-261385][   transport.py][1871] : EOF in transport thread
2025-06-13 16:44:02,785 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 16:44:02,796 [DEBUG][       Thread-261388][   transport.py][1871] : starting thread (client mode): 0x86893be0
2025-06-13 16:44:02,796 [DEBUG][       Thread-261388][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 16:44:02,811 [DEBUG][       Thread-261388][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 16:44:02,811 [ INFO][       Thread-261388][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 16:44:02,819 [DEBUG][       Thread-261388][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 16:44:02,819 [DEBUG][       Thread-261388][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 16:44:02,819 [DEBUG][       Thread-261388][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 16:44:02,819 [DEBUG][       Thread-261388][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:44:02,819 [DEBUG][       Thread-261388][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:44:02,819 [DEBUG][       Thread-261388][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:44:02,819 [DEBUG][       Thread-261388][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:44:02,819 [DEBUG][       Thread-261388][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 16:44:02,819 [DEBUG][       Thread-261388][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 16:44:02,819 [DEBUG][       Thread-261388][   transport.py][1871] : client lang: <none>
2025-06-13 16:44:02,819 [DEBUG][       Thread-261388][   transport.py][1871] : server lang: <none>
2025-06-13 16:44:02,819 [DEBUG][       Thread-261388][   transport.py][1871] : kex follows: False
2025-06-13 16:44:02,819 [DEBUG][       Thread-261388][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 16:44:02,819 [DEBUG][       Thread-261388][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 16:44:02,819 [DEBUG][       Thread-261388][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 16:44:02,820 [DEBUG][       Thread-261388][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 16:44:02,820 [DEBUG][       Thread-261388][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 16:44:02,820 [DEBUG][       Thread-261388][   transport.py][1871] : Compression: none
2025-06-13 16:44:02,820 [DEBUG][       Thread-261388][   transport.py][1871] : === End of kex handshake ===
2025-06-13 16:44:02,878 [DEBUG][       Thread-261388][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 16:44:02,879 [DEBUG][       Thread-261388][   transport.py][1871] : Switch to new keys ...
2025-06-13 16:44:02,880 [DEBUG][       Thread-261388][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 16:44:02,880 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 16:44:02,881 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 16:44:02,934 [DEBUG][       Thread-261388][   transport.py][1871] : userauth is OK
2025-06-13 16:44:02,934 [DEBUG][       Thread-261388][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 16:44:02,935 [DEBUG][       Thread-261388][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 16:44:02,935 [DEBUG][       Thread-261388][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 16:44:02,935 [DEBUG][       Thread-261388][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 16:44:02,953 [ INFO][       Thread-261388][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 16:44:02,953 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 16:44:02,954 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 16:44:03,726 [DEBUG][Thread-261390 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:44:03,947 [DEBUG][       Thread-261388][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 16:44:03,947 [DEBUG][       Thread-261388][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 16:44:03,996 [DEBUG][       Thread-261388][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 16:44:03,996 [DEBUG][       Thread-261388][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 16:44:04,005 [DEBUG][       Thread-261388][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 16:44:04,014 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 16:44:04,014 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 16:44:04,023 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 16:44:04,033 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 16:44:04,034 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 16:44:04,034 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 16:44:04,042 [DEBUG][       Thread-261388][   transport.py][1871] : EOF in transport thread
2025-06-13 16:44:12,101 [DEBUG][Thread-261391 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:44:12,760 [DEBUG][Thread-261392 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:44:13,152 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:44:13,153 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:44:14,044 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 16:44:14,044 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 16:44:14,044 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 16:44:14,047 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 16:44:14,514 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 16, 43, 47), 16.82, 30.89, 0.0, 15.95, 13.55, 0, 0, 0, 2, 0, 0),)
2025-06-13 16:44:14,514 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 16:43:47
2025-06-13 16:44:14,596 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 16:44:14,603 [DEBUG][       Thread-261393][   transport.py][1871] : starting thread (client mode): 0x86393f40
2025-06-13 16:44:14,603 [DEBUG][       Thread-261393][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 16:44:14,626 [DEBUG][       Thread-261393][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 16:44:14,626 [ INFO][       Thread-261393][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 16:44:14,627 [DEBUG][       Thread-261393][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 16:44:14,627 [DEBUG][       Thread-261393][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 16:44:14,627 [DEBUG][       Thread-261393][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 16:44:14,627 [DEBUG][       Thread-261393][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:44:14,627 [DEBUG][       Thread-261393][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:44:14,627 [DEBUG][       Thread-261393][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:44:14,627 [DEBUG][       Thread-261393][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:44:14,627 [DEBUG][       Thread-261393][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 16:44:14,627 [DEBUG][       Thread-261393][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 16:44:14,627 [DEBUG][       Thread-261393][   transport.py][1871] : client lang: <none>
2025-06-13 16:44:14,627 [DEBUG][       Thread-261393][   transport.py][1871] : server lang: <none>
2025-06-13 16:44:14,627 [DEBUG][       Thread-261393][   transport.py][1871] : kex follows: False
2025-06-13 16:44:14,627 [DEBUG][       Thread-261393][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 16:44:14,627 [DEBUG][       Thread-261393][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 16:44:14,627 [DEBUG][       Thread-261393][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 16:44:14,627 [DEBUG][       Thread-261393][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 16:44:14,628 [DEBUG][       Thread-261393][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 16:44:14,628 [DEBUG][       Thread-261393][   transport.py][1871] : Compression: none
2025-06-13 16:44:14,628 [DEBUG][       Thread-261393][   transport.py][1871] : === End of kex handshake ===
2025-06-13 16:44:14,636 [DEBUG][       Thread-261393][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 16:44:14,637 [DEBUG][       Thread-261393][   transport.py][1871] : Switch to new keys ...
2025-06-13 16:44:14,637 [DEBUG][       Thread-261393][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 16:44:14,637 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 16:44:14,638 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 16:44:14,639 [DEBUG][       Thread-261393][   transport.py][1871] : userauth is OK
2025-06-13 16:44:14,651 [ INFO][       Thread-261393][   transport.py][1871] : Authentication (password) successful!
2025-06-13 16:44:14,652 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 16:44:15,208 [DEBUG][       Thread-261393][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 16:44:15,208 [DEBUG][       Thread-261393][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 16:44:15,249 [DEBUG][       Thread-261393][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 16:44:15,249 [DEBUG][       Thread-261393][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 16:44:15,252 [DEBUG][       Thread-261393][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 16:44:15,259 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 16:44:15,259 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 16:44:15,261 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 16:44:15,263 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 16:44:15,268 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 16:44:15,270 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 16:44:15,271 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 16:44:15,271 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 16:44:15,272 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.613823 -999.00  +13.30  22.68     36   -1.30 1 1 1 1 1   887    0 13.08 -50.45 ----- 22.1 22.7 42.8 23.9 15.5 -28.9 14.9 -29.1 15.4 -28.4 16.2 -27.9
2025-06-13 16:44:15,272 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 16:44:15,272 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 16:44:15,272 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.613823
2025-06-13 16:44:15,272 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 16:44:15,273 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 16:44:15,273 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 16:44:15,273 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 16:44:15,273 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 16:44:15,273 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T16:43:47', tmtdew=16.82, humidity=30.89, cloud=0.0, wind=15.95, temperature=13.55, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T14:43:54.307', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 16:44:15,274 [DEBUG][       Thread-261393][   transport.py][1871] : EOF in transport thread
2025-06-13 16:44:15,357 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 16:44:15,369 [DEBUG][       Thread-261396][   transport.py][1871] : starting thread (client mode): 0x863bea70
2025-06-13 16:44:15,369 [DEBUG][       Thread-261396][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 16:44:15,386 [DEBUG][       Thread-261396][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 16:44:15,387 [ INFO][       Thread-261396][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 16:44:15,394 [DEBUG][       Thread-261396][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 16:44:15,394 [DEBUG][       Thread-261396][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 16:44:15,394 [DEBUG][       Thread-261396][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 16:44:15,394 [DEBUG][       Thread-261396][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:44:15,394 [DEBUG][       Thread-261396][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:44:15,394 [DEBUG][       Thread-261396][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:44:15,394 [DEBUG][       Thread-261396][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:44:15,394 [DEBUG][       Thread-261396][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 16:44:15,394 [DEBUG][       Thread-261396][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 16:44:15,394 [DEBUG][       Thread-261396][   transport.py][1871] : client lang: <none>
2025-06-13 16:44:15,395 [DEBUG][       Thread-261396][   transport.py][1871] : server lang: <none>
2025-06-13 16:44:15,395 [DEBUG][       Thread-261396][   transport.py][1871] : kex follows: False
2025-06-13 16:44:15,395 [DEBUG][       Thread-261396][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 16:44:15,395 [DEBUG][       Thread-261396][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 16:44:15,395 [DEBUG][       Thread-261396][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 16:44:15,395 [DEBUG][       Thread-261396][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 16:44:15,395 [DEBUG][       Thread-261396][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 16:44:15,395 [DEBUG][       Thread-261396][   transport.py][1871] : Compression: none
2025-06-13 16:44:15,395 [DEBUG][       Thread-261396][   transport.py][1871] : === End of kex handshake ===
2025-06-13 16:44:15,459 [DEBUG][       Thread-261396][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 16:44:15,460 [DEBUG][       Thread-261396][   transport.py][1871] : Switch to new keys ...
2025-06-13 16:44:15,460 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 16:44:15,461 [DEBUG][       Thread-261396][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 16:44:15,462 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 16:44:15,518 [DEBUG][       Thread-261396][   transport.py][1871] : userauth is OK
2025-06-13 16:44:15,519 [DEBUG][       Thread-261396][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 16:44:15,519 [DEBUG][       Thread-261396][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 16:44:15,519 [DEBUG][       Thread-261396][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 16:44:15,519 [DEBUG][       Thread-261396][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 16:44:15,538 [ INFO][       Thread-261396][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 16:44:15,539 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 16:44:15,539 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 16:44:16,561 [DEBUG][       Thread-261396][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 16:44:16,561 [DEBUG][       Thread-261396][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 16:44:16,615 [DEBUG][       Thread-261396][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 16:44:16,615 [DEBUG][       Thread-261396][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 16:44:16,624 [DEBUG][       Thread-261396][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 16:44:16,634 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 16:44:16,635 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 16:44:16,645 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 16:44:16,657 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 16:44:16,657 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 16:44:16,657 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 16:44:16,666 [DEBUG][       Thread-261396][   transport.py][1871] : EOF in transport thread
2025-06-13 16:44:19,995 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:44:19,996 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:44:21,776 [DEBUG][Thread-261398 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:44:24,036 [DEBUG][Thread-261399 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:44:26,668 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 16:44:26,668 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 16:44:26,668 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 16:44:26,671 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 16:44:27,121 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 16, 44, 19), 16.88, 30.89, 0.0, 16.98, 13.58, 0, 0, 0, 2, 0, 0),)
2025-06-13 16:44:27,121 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 16:44:19
2025-06-13 16:44:27,203 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 16:44:27,207 [DEBUG][       Thread-261400][   transport.py][1871] : starting thread (client mode): 0x863c8370
2025-06-13 16:44:27,207 [DEBUG][       Thread-261400][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 16:44:27,224 [DEBUG][       Thread-261400][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 16:44:27,224 [ INFO][       Thread-261400][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 16:44:27,227 [DEBUG][       Thread-261400][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 16:44:27,227 [DEBUG][       Thread-261400][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 16:44:27,228 [DEBUG][       Thread-261400][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 16:44:27,228 [DEBUG][       Thread-261400][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:44:27,228 [DEBUG][       Thread-261400][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:44:27,228 [DEBUG][       Thread-261400][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:44:27,228 [DEBUG][       Thread-261400][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:44:27,228 [DEBUG][       Thread-261400][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 16:44:27,228 [DEBUG][       Thread-261400][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 16:44:27,228 [DEBUG][       Thread-261400][   transport.py][1871] : client lang: <none>
2025-06-13 16:44:27,228 [DEBUG][       Thread-261400][   transport.py][1871] : server lang: <none>
2025-06-13 16:44:27,228 [DEBUG][       Thread-261400][   transport.py][1871] : kex follows: False
2025-06-13 16:44:27,228 [DEBUG][       Thread-261400][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 16:44:27,228 [DEBUG][       Thread-261400][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 16:44:27,228 [DEBUG][       Thread-261400][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 16:44:27,228 [DEBUG][       Thread-261400][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 16:44:27,228 [DEBUG][       Thread-261400][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 16:44:27,228 [DEBUG][       Thread-261400][   transport.py][1871] : Compression: none
2025-06-13 16:44:27,228 [DEBUG][       Thread-261400][   transport.py][1871] : === End of kex handshake ===
2025-06-13 16:44:27,245 [DEBUG][       Thread-261400][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 16:44:27,245 [DEBUG][       Thread-261400][   transport.py][1871] : Switch to new keys ...
2025-06-13 16:44:27,245 [DEBUG][       Thread-261400][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 16:44:27,246 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 16:44:27,246 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 16:44:27,247 [DEBUG][       Thread-261400][   transport.py][1871] : userauth is OK
2025-06-13 16:44:27,260 [ INFO][       Thread-261400][   transport.py][1871] : Authentication (password) successful!
2025-06-13 16:44:27,260 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 16:44:27,926 [DEBUG][       Thread-261400][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 16:44:27,926 [DEBUG][       Thread-261400][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 16:44:27,969 [DEBUG][       Thread-261400][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 16:44:27,969 [DEBUG][       Thread-261400][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 16:44:27,973 [DEBUG][       Thread-261400][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 16:44:27,984 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 16:44:27,985 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 16:44:27,987 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 16:44:27,989 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 16:44:27,995 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 16:44:27,997 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 16:44:27,997 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 16:44:27,998 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 16:44:27,998 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.613823 -999.00  +13.30  22.68     36   -1.30 1 1 1 1 1   887    0 13.08 -50.45 ----- 22.1 22.7 42.8 23.9 15.5 -28.9 14.9 -29.1 15.4 -28.4 16.2 -27.9
2025-06-13 16:44:27,998 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 16:44:27,998 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 16:44:27,998 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.613823
2025-06-13 16:44:27,999 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 16:44:27,999 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 16:44:27,999 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 16:44:27,999 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 16:44:28,000 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 16:44:28,000 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T16:44:19', tmtdew=16.88, humidity=30.89, cloud=0.0, wind=16.98, temperature=13.58, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T14:43:54.307', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 16:44:28,001 [DEBUG][       Thread-261400][   transport.py][1871] : EOF in transport thread
2025-06-13 16:44:28,083 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 16:44:28,098 [DEBUG][       Thread-261403][   transport.py][1871] : starting thread (client mode): 0x86392950
2025-06-13 16:44:28,098 [DEBUG][       Thread-261403][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 16:44:28,113 [DEBUG][       Thread-261403][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 16:44:28,113 [ INFO][       Thread-261403][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 16:44:28,121 [DEBUG][       Thread-261403][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 16:44:28,121 [DEBUG][       Thread-261403][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 16:44:28,121 [DEBUG][       Thread-261403][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 16:44:28,121 [DEBUG][       Thread-261403][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:44:28,121 [DEBUG][       Thread-261403][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:44:28,121 [DEBUG][       Thread-261403][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:44:28,121 [DEBUG][       Thread-261403][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:44:28,121 [DEBUG][       Thread-261403][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 16:44:28,121 [DEBUG][       Thread-261403][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 16:44:28,121 [DEBUG][       Thread-261403][   transport.py][1871] : client lang: <none>
2025-06-13 16:44:28,121 [DEBUG][       Thread-261403][   transport.py][1871] : server lang: <none>
2025-06-13 16:44:28,121 [DEBUG][       Thread-261403][   transport.py][1871] : kex follows: False
2025-06-13 16:44:28,121 [DEBUG][       Thread-261403][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 16:44:28,121 [DEBUG][       Thread-261403][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 16:44:28,121 [DEBUG][       Thread-261403][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 16:44:28,121 [DEBUG][       Thread-261403][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 16:44:28,122 [DEBUG][       Thread-261403][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 16:44:28,122 [DEBUG][       Thread-261403][   transport.py][1871] : Compression: none
2025-06-13 16:44:28,122 [DEBUG][       Thread-261403][   transport.py][1871] : === End of kex handshake ===
2025-06-13 16:44:28,179 [DEBUG][       Thread-261403][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 16:44:28,179 [DEBUG][       Thread-261403][   transport.py][1871] : Switch to new keys ...
2025-06-13 16:44:28,180 [DEBUG][       Thread-261403][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 16:44:28,180 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 16:44:28,181 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 16:44:28,235 [DEBUG][       Thread-261403][   transport.py][1871] : userauth is OK
2025-06-13 16:44:28,235 [DEBUG][       Thread-261403][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 16:44:28,235 [DEBUG][       Thread-261403][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 16:44:28,235 [DEBUG][       Thread-261403][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 16:44:28,235 [DEBUG][       Thread-261403][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 16:44:28,254 [ INFO][       Thread-261403][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 16:44:28,254 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 16:44:28,255 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 16:44:29,225 [DEBUG][       Thread-261403][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 16:44:29,225 [DEBUG][       Thread-261403][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 16:44:29,281 [DEBUG][       Thread-261403][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 16:44:29,281 [DEBUG][       Thread-261403][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 16:44:29,289 [DEBUG][       Thread-261403][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 16:44:29,297 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 16:44:29,297 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 16:44:29,305 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 16:44:29,313 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 16:44:29,313 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 16:44:29,313 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 16:44:29,321 [DEBUG][       Thread-261403][   transport.py][1871] : EOF in transport thread
2025-06-13 16:44:30,799 [DEBUG][Thread-261405 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:44:39,320 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 16:44:39,320 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 16:44:39,320 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 16:44:39,323 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 16:44:39,772 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 16, 44, 19), 16.88, 30.89, 0.0, 16.98, 13.58, 0, 0, 0, 2, 0, 0),)
2025-06-13 16:44:39,772 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 16:44:19
2025-06-13 16:44:39,832 [DEBUG][Thread-261406 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:44:39,861 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 16:44:39,868 [DEBUG][       Thread-261407][   transport.py][1871] : starting thread (client mode): 0x8636b670
2025-06-13 16:44:39,868 [DEBUG][       Thread-261407][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 16:44:39,890 [DEBUG][       Thread-261407][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 16:44:39,890 [ INFO][       Thread-261407][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 16:44:39,894 [DEBUG][       Thread-261407][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 16:44:39,894 [DEBUG][       Thread-261407][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 16:44:39,894 [DEBUG][       Thread-261407][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 16:44:39,894 [DEBUG][       Thread-261407][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:44:39,894 [DEBUG][       Thread-261407][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:44:39,894 [DEBUG][       Thread-261407][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:44:39,894 [DEBUG][       Thread-261407][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:44:39,894 [DEBUG][       Thread-261407][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 16:44:39,894 [DEBUG][       Thread-261407][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 16:44:39,894 [DEBUG][       Thread-261407][   transport.py][1871] : client lang: <none>
2025-06-13 16:44:39,894 [DEBUG][       Thread-261407][   transport.py][1871] : server lang: <none>
2025-06-13 16:44:39,894 [DEBUG][       Thread-261407][   transport.py][1871] : kex follows: False
2025-06-13 16:44:39,894 [DEBUG][       Thread-261407][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 16:44:39,894 [DEBUG][       Thread-261407][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 16:44:39,895 [DEBUG][       Thread-261407][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 16:44:39,895 [DEBUG][       Thread-261407][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 16:44:39,895 [DEBUG][       Thread-261407][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 16:44:39,895 [DEBUG][       Thread-261407][   transport.py][1871] : Compression: none
2025-06-13 16:44:39,895 [DEBUG][       Thread-261407][   transport.py][1871] : === End of kex handshake ===
2025-06-13 16:44:39,914 [DEBUG][       Thread-261407][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 16:44:39,914 [DEBUG][       Thread-261407][   transport.py][1871] : Switch to new keys ...
2025-06-13 16:44:39,915 [DEBUG][       Thread-261407][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 16:44:39,915 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 16:44:39,915 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 16:44:39,916 [DEBUG][       Thread-261407][   transport.py][1871] : userauth is OK
2025-06-13 16:44:39,941 [ INFO][       Thread-261407][   transport.py][1871] : Authentication (password) successful!
2025-06-13 16:44:39,941 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 16:44:40,508 [DEBUG][       Thread-261407][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 16:44:40,508 [DEBUG][       Thread-261407][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 16:44:40,548 [DEBUG][       Thread-261407][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 16:44:40,549 [DEBUG][       Thread-261407][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 16:44:40,551 [DEBUG][       Thread-261407][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 16:44:40,557 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 16:44:40,558 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 16:44:40,559 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 16:44:40,561 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 16:44:40,565 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 16:44:40,567 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 16:44:40,567 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 16:44:40,568 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 16:44:40,568 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.613823 -999.00  +13.30  22.68     36   -1.30 1 1 1 1 1   887    0 13.08 -50.45 ----- 22.1 22.7 42.8 23.9 15.5 -28.9 14.9 -29.1 15.4 -28.4 16.2 -27.9
2025-06-13 16:44:40,568 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 16:44:40,568 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 16:44:40,568 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.613823
2025-06-13 16:44:40,568 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 16:44:40,569 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 16:44:40,569 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 16:44:40,569 [DEBUG][       Thread-261407][   transport.py][1871] : EOF in transport thread
2025-06-13 16:44:40,569 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 16:44:40,570 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 16:44:40,570 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T16:44:19', tmtdew=16.88, humidity=30.89, cloud=0.0, wind=16.98, temperature=13.58, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T14:43:54.307', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 16:44:40,653 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 16:44:40,666 [DEBUG][       Thread-261410][   transport.py][1871] : starting thread (client mode): 0x863a7f40
2025-06-13 16:44:40,666 [DEBUG][       Thread-261410][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 16:44:40,686 [DEBUG][       Thread-261410][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 16:44:40,686 [ INFO][       Thread-261410][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 16:44:40,694 [DEBUG][       Thread-261410][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 16:44:40,694 [DEBUG][       Thread-261410][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 16:44:40,694 [DEBUG][       Thread-261410][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 16:44:40,694 [DEBUG][       Thread-261410][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:44:40,694 [DEBUG][       Thread-261410][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:44:40,694 [DEBUG][       Thread-261410][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:44:40,694 [DEBUG][       Thread-261410][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:44:40,694 [DEBUG][       Thread-261410][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 16:44:40,694 [DEBUG][       Thread-261410][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 16:44:40,694 [DEBUG][       Thread-261410][   transport.py][1871] : client lang: <none>
2025-06-13 16:44:40,695 [DEBUG][       Thread-261410][   transport.py][1871] : server lang: <none>
2025-06-13 16:44:40,695 [DEBUG][       Thread-261410][   transport.py][1871] : kex follows: False
2025-06-13 16:44:40,695 [DEBUG][       Thread-261410][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 16:44:40,695 [DEBUG][       Thread-261410][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 16:44:40,695 [DEBUG][       Thread-261410][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 16:44:40,695 [DEBUG][       Thread-261410][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 16:44:40,695 [DEBUG][       Thread-261410][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 16:44:40,695 [DEBUG][       Thread-261410][   transport.py][1871] : Compression: none
2025-06-13 16:44:40,695 [DEBUG][       Thread-261410][   transport.py][1871] : === End of kex handshake ===
2025-06-13 16:44:40,758 [DEBUG][       Thread-261410][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 16:44:40,759 [DEBUG][       Thread-261410][   transport.py][1871] : Switch to new keys ...
2025-06-13 16:44:40,760 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 16:44:40,760 [DEBUG][       Thread-261410][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 16:44:40,761 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 16:44:40,814 [DEBUG][       Thread-261410][   transport.py][1871] : userauth is OK
2025-06-13 16:44:40,815 [DEBUG][       Thread-261410][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 16:44:40,815 [DEBUG][       Thread-261410][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 16:44:40,815 [DEBUG][       Thread-261410][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 16:44:40,815 [DEBUG][       Thread-261410][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 16:44:40,833 [ INFO][       Thread-261410][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 16:44:40,834 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 16:44:40,834 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 16:44:41,823 [DEBUG][       Thread-261410][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 16:44:41,823 [DEBUG][       Thread-261410][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 16:44:41,872 [DEBUG][       Thread-261410][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 16:44:41,872 [DEBUG][       Thread-261410][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 16:44:41,881 [DEBUG][       Thread-261410][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 16:44:41,890 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 16:44:41,890 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 16:44:41,899 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 16:44:41,908 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 16:44:41,908 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 16:44:41,909 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 16:44:41,917 [DEBUG][       Thread-261410][   transport.py][1871] : EOF in transport thread
2025-06-13 16:44:48,852 [DEBUG][Thread-261412 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:44:51,916 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 16:44:51,916 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 16:44:51,916 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 16:44:51,917 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 16:44:52,402 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 16, 44, 19), 16.88, 30.89, 0.0, 16.98, 13.58, 0, 0, 0, 2, 0, 0),)
2025-06-13 16:44:52,402 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 16:44:19
2025-06-13 16:44:52,489 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 16:44:52,493 [DEBUG][       Thread-261413][   transport.py][1871] : starting thread (client mode): 0x8636a620
2025-06-13 16:44:52,493 [DEBUG][       Thread-261413][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 16:44:52,514 [DEBUG][       Thread-261413][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 16:44:52,514 [ INFO][       Thread-261413][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 16:44:52,517 [DEBUG][       Thread-261413][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 16:44:52,517 [DEBUG][       Thread-261413][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 16:44:52,517 [DEBUG][       Thread-261413][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 16:44:52,517 [DEBUG][       Thread-261413][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:44:52,518 [DEBUG][       Thread-261413][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:44:52,518 [DEBUG][       Thread-261413][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:44:52,518 [DEBUG][       Thread-261413][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:44:52,518 [DEBUG][       Thread-261413][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 16:44:52,518 [DEBUG][       Thread-261413][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 16:44:52,518 [DEBUG][       Thread-261413][   transport.py][1871] : client lang: <none>
2025-06-13 16:44:52,518 [DEBUG][       Thread-261413][   transport.py][1871] : server lang: <none>
2025-06-13 16:44:52,518 [DEBUG][       Thread-261413][   transport.py][1871] : kex follows: False
2025-06-13 16:44:52,518 [DEBUG][       Thread-261413][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 16:44:52,518 [DEBUG][       Thread-261413][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 16:44:52,518 [DEBUG][       Thread-261413][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 16:44:52,518 [DEBUG][       Thread-261413][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 16:44:52,518 [DEBUG][       Thread-261413][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 16:44:52,518 [DEBUG][       Thread-261413][   transport.py][1871] : Compression: none
2025-06-13 16:44:52,518 [DEBUG][       Thread-261413][   transport.py][1871] : === End of kex handshake ===
2025-06-13 16:44:52,532 [DEBUG][       Thread-261413][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 16:44:52,532 [DEBUG][       Thread-261413][   transport.py][1871] : Switch to new keys ...
2025-06-13 16:44:52,532 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 16:44:52,532 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 16:44:52,532 [DEBUG][       Thread-261413][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 16:44:52,533 [DEBUG][       Thread-261413][   transport.py][1871] : userauth is OK
2025-06-13 16:44:52,546 [ INFO][       Thread-261413][   transport.py][1871] : Authentication (password) successful!
2025-06-13 16:44:52,546 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 16:44:53,185 [DEBUG][       Thread-261413][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 16:44:53,185 [DEBUG][       Thread-261413][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 16:44:53,229 [DEBUG][       Thread-261413][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 16:44:53,229 [DEBUG][       Thread-261413][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 16:44:53,231 [DEBUG][       Thread-261413][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 16:44:53,243 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 16:44:53,243 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 16:44:53,244 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 16:44:53,244 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 16:44:53,247 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 16:44:53,247 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 16:44:53,247 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 16:44:53,248 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 16:44:53,248 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.614171 -999.00  +13.30  20.25     36   -1.20 1 1 1 1 1   887    0 13.25 -49.92 ----- 21.3 20.2 58.2 22.9 15.5 -28.5 14.9 -29.0 15.5 -28.4 16.3 -27.9
2025-06-13 16:44:53,248 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 16:44:53,248 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 16:44:53,248 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.614171
2025-06-13 16:44:53,248 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 16:44:53,248 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 16:44:53,248 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 16:44:53,248 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 16:44:53,248 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 16:44:53,248 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T16:44:19', tmtdew=16.88, humidity=30.89, cloud=0.0, wind=16.98, temperature=13.58, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T14:44:24.374', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 16:44:53,248 [DEBUG][       Thread-261413][   transport.py][1871] : EOF in transport thread
2025-06-13 16:44:53,323 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 16:44:53,332 [DEBUG][       Thread-261416][   transport.py][1871] : starting thread (client mode): 0x863a7f40
2025-06-13 16:44:53,332 [DEBUG][       Thread-261416][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 16:44:53,347 [DEBUG][       Thread-261416][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 16:44:53,347 [ INFO][       Thread-261416][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 16:44:53,354 [DEBUG][       Thread-261416][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 16:44:53,354 [DEBUG][       Thread-261416][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 16:44:53,354 [DEBUG][       Thread-261416][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 16:44:53,354 [DEBUG][       Thread-261416][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:44:53,354 [DEBUG][       Thread-261416][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:44:53,354 [DEBUG][       Thread-261416][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:44:53,354 [DEBUG][       Thread-261416][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:44:53,354 [DEBUG][       Thread-261416][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 16:44:53,354 [DEBUG][       Thread-261416][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 16:44:53,354 [DEBUG][       Thread-261416][   transport.py][1871] : client lang: <none>
2025-06-13 16:44:53,354 [DEBUG][       Thread-261416][   transport.py][1871] : server lang: <none>
2025-06-13 16:44:53,354 [DEBUG][       Thread-261416][   transport.py][1871] : kex follows: False
2025-06-13 16:44:53,354 [DEBUG][       Thread-261416][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 16:44:53,354 [DEBUG][       Thread-261416][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 16:44:53,354 [DEBUG][       Thread-261416][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 16:44:53,354 [DEBUG][       Thread-261416][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 16:44:53,354 [DEBUG][       Thread-261416][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 16:44:53,354 [DEBUG][       Thread-261416][   transport.py][1871] : Compression: none
2025-06-13 16:44:53,354 [DEBUG][       Thread-261416][   transport.py][1871] : === End of kex handshake ===
2025-06-13 16:44:53,416 [DEBUG][       Thread-261416][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 16:44:53,416 [DEBUG][       Thread-261416][   transport.py][1871] : Switch to new keys ...
2025-06-13 16:44:53,416 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 16:44:53,416 [DEBUG][       Thread-261416][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 16:44:53,417 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 16:44:53,473 [DEBUG][       Thread-261416][   transport.py][1871] : userauth is OK
2025-06-13 16:44:53,474 [DEBUG][       Thread-261416][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 16:44:53,474 [DEBUG][       Thread-261416][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 16:44:53,474 [DEBUG][       Thread-261416][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 16:44:53,474 [DEBUG][       Thread-261416][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 16:44:53,487 [ INFO][       Thread-261416][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 16:44:53,488 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 16:44:53,488 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 16:44:54,452 [DEBUG][       Thread-261416][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 16:44:54,452 [DEBUG][       Thread-261416][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 16:44:54,503 [DEBUG][       Thread-261416][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 16:44:54,503 [DEBUG][       Thread-261416][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 16:44:54,511 [DEBUG][       Thread-261416][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 16:44:54,519 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 16:44:54,519 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 16:44:54,527 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 16:44:54,535 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 16:44:54,535 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 16:44:54,535 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 16:44:54,543 [DEBUG][       Thread-261416][   transport.py][1871] : EOF in transport thread
2025-06-13 16:44:57,870 [DEBUG][Thread-261418 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:45:04,546 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 16:45:04,546 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 16:45:04,546 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 16:45:04,549 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 16:45:05,004 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 16, 44, 51), 16.83, 31.01, 0.0, 17.96, 13.58, 0, 0, 0, 2, 0, 0),)
2025-06-13 16:45:05,004 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 16:44:51
2025-06-13 16:45:05,086 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 16:45:05,091 [DEBUG][       Thread-261419][   transport.py][1871] : starting thread (client mode): 0x863696c0
2025-06-13 16:45:05,091 [DEBUG][       Thread-261419][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 16:45:05,112 [DEBUG][       Thread-261419][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 16:45:05,113 [ INFO][       Thread-261419][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 16:45:05,116 [DEBUG][       Thread-261419][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 16:45:05,116 [DEBUG][       Thread-261419][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 16:45:05,116 [DEBUG][       Thread-261419][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 16:45:05,116 [DEBUG][       Thread-261419][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:45:05,116 [DEBUG][       Thread-261419][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:45:05,116 [DEBUG][       Thread-261419][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:45:05,116 [DEBUG][       Thread-261419][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:45:05,116 [DEBUG][       Thread-261419][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 16:45:05,116 [DEBUG][       Thread-261419][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 16:45:05,116 [DEBUG][       Thread-261419][   transport.py][1871] : client lang: <none>
2025-06-13 16:45:05,116 [DEBUG][       Thread-261419][   transport.py][1871] : server lang: <none>
2025-06-13 16:45:05,116 [DEBUG][       Thread-261419][   transport.py][1871] : kex follows: False
2025-06-13 16:45:05,117 [DEBUG][       Thread-261419][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 16:45:05,117 [DEBUG][       Thread-261419][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 16:45:05,117 [DEBUG][       Thread-261419][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 16:45:05,117 [DEBUG][       Thread-261419][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 16:45:05,117 [DEBUG][       Thread-261419][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 16:45:05,117 [DEBUG][       Thread-261419][   transport.py][1871] : Compression: none
2025-06-13 16:45:05,117 [DEBUG][       Thread-261419][   transport.py][1871] : === End of kex handshake ===
2025-06-13 16:45:05,133 [DEBUG][       Thread-261419][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 16:45:05,133 [DEBUG][       Thread-261419][   transport.py][1871] : Switch to new keys ...
2025-06-13 16:45:05,134 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 16:45:05,134 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 16:45:05,135 [DEBUG][       Thread-261419][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 16:45:05,136 [DEBUG][       Thread-261419][   transport.py][1871] : userauth is OK
2025-06-13 16:45:05,160 [ INFO][       Thread-261419][   transport.py][1871] : Authentication (password) successful!
2025-06-13 16:45:05,161 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 16:45:06,890 [DEBUG][Thread-261421 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:45:12,707 [DEBUG][       Thread-261419][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 16:45:12,707 [DEBUG][       Thread-261419][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 16:45:12,749 [DEBUG][       Thread-261419][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 16:45:12,749 [DEBUG][       Thread-261419][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 16:45:12,756 [DEBUG][       Thread-261419][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 16:45:12,767 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 16:45:12,768 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 16:45:12,770 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 16:45:12,772 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 16:45:12,778 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 16:45:12,780 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 16:45:12,780 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 16:45:12,781 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 16:45:12,781 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.614171 -999.00  +13.30  20.25     36   -1.20 1 1 1 1 1   887    0 13.25 -49.92 ----- 21.3 20.2 58.2 22.9 15.5 -28.5 14.9 -29.0 15.5 -28.4 16.3 -27.9
2025-06-13 16:45:12,781 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 16:45:12,781 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 16:45:12,782 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.614171
2025-06-13 16:45:12,782 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 16:45:12,783 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 16:45:12,783 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 16:45:12,783 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 16:45:12,783 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 16:45:12,783 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T16:44:51', tmtdew=16.83, humidity=31.01, cloud=0.0, wind=17.96, temperature=13.58, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T14:44:24.374', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 16:45:12,783 [DEBUG][       Thread-261419][   transport.py][1871] : EOF in transport thread
2025-06-13 16:45:12,868 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 16:45:12,880 [DEBUG][       Thread-261423][   transport.py][1871] : starting thread (client mode): 0x863925f0
2025-06-13 16:45:12,880 [DEBUG][       Thread-261423][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 16:45:12,894 [DEBUG][       Thread-261423][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 16:45:12,894 [ INFO][       Thread-261423][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 16:45:12,901 [DEBUG][       Thread-261423][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 16:45:12,901 [DEBUG][       Thread-261423][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 16:45:12,901 [DEBUG][       Thread-261423][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 16:45:12,901 [DEBUG][       Thread-261423][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:45:12,902 [DEBUG][       Thread-261423][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:45:12,902 [DEBUG][       Thread-261423][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:45:12,902 [DEBUG][       Thread-261423][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:45:12,902 [DEBUG][       Thread-261423][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 16:45:12,902 [DEBUG][       Thread-261423][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 16:45:12,902 [DEBUG][       Thread-261423][   transport.py][1871] : client lang: <none>
2025-06-13 16:45:12,902 [DEBUG][       Thread-261423][   transport.py][1871] : server lang: <none>
2025-06-13 16:45:12,902 [DEBUG][       Thread-261423][   transport.py][1871] : kex follows: False
2025-06-13 16:45:12,902 [DEBUG][       Thread-261423][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 16:45:12,902 [DEBUG][       Thread-261423][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 16:45:12,902 [DEBUG][       Thread-261423][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 16:45:12,902 [DEBUG][       Thread-261423][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 16:45:12,902 [DEBUG][       Thread-261423][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 16:45:12,902 [DEBUG][       Thread-261423][   transport.py][1871] : Compression: none
2025-06-13 16:45:12,902 [DEBUG][       Thread-261423][   transport.py][1871] : === End of kex handshake ===
2025-06-13 16:45:12,957 [DEBUG][       Thread-261423][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 16:45:12,957 [DEBUG][       Thread-261423][   transport.py][1871] : Switch to new keys ...
2025-06-13 16:45:12,958 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 16:45:12,958 [DEBUG][       Thread-261423][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 16:45:12,959 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 16:45:13,014 [DEBUG][       Thread-261423][   transport.py][1871] : userauth is OK
2025-06-13 16:45:13,014 [DEBUG][       Thread-261423][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 16:45:13,014 [DEBUG][       Thread-261423][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 16:45:13,014 [DEBUG][       Thread-261423][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 16:45:13,015 [DEBUG][       Thread-261423][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 16:45:13,042 [ INFO][       Thread-261423][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 16:45:13,043 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 16:45:13,043 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 16:45:13,229 [DEBUG][Thread-261425 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:45:14,007 [DEBUG][       Thread-261423][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 16:45:14,008 [DEBUG][       Thread-261423][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 16:45:14,063 [DEBUG][       Thread-261423][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 16:45:14,063 [DEBUG][       Thread-261423][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 16:45:14,072 [DEBUG][       Thread-261423][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 16:45:14,080 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 16:45:14,080 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 16:45:14,089 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 16:45:14,097 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 16:45:14,098 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 16:45:14,098 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 16:45:14,106 [DEBUG][       Thread-261423][   transport.py][1871] : EOF in transport thread
2025-06-13 16:45:14,299 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:45:14,300 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:45:15,912 [DEBUG][Thread-261426 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:45:20,132 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:45:20,133 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:45:24,063 [DEBUG][Thread-261427 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:45:24,109 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 16:45:24,109 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 16:45:24,109 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 16:45:24,110 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 16:45:24,641 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 16, 44, 51), 16.83, 31.01, 0.0, 17.96, 13.58, 0, 0, 0, 2, 0, 0),)
2025-06-13 16:45:24,642 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 16:44:51
2025-06-13 16:45:24,728 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 16:45:24,736 [DEBUG][       Thread-261428][   transport.py][1871] : starting thread (client mode): 0x863c86a0
2025-06-13 16:45:24,736 [DEBUG][       Thread-261428][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 16:45:24,756 [DEBUG][       Thread-261428][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 16:45:24,756 [ INFO][       Thread-261428][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 16:45:24,760 [DEBUG][       Thread-261428][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 16:45:24,760 [DEBUG][       Thread-261428][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 16:45:24,760 [DEBUG][       Thread-261428][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 16:45:24,760 [DEBUG][       Thread-261428][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:45:24,760 [DEBUG][       Thread-261428][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:45:24,760 [DEBUG][       Thread-261428][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:45:24,760 [DEBUG][       Thread-261428][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:45:24,760 [DEBUG][       Thread-261428][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 16:45:24,760 [DEBUG][       Thread-261428][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 16:45:24,760 [DEBUG][       Thread-261428][   transport.py][1871] : client lang: <none>
2025-06-13 16:45:24,760 [DEBUG][       Thread-261428][   transport.py][1871] : server lang: <none>
2025-06-13 16:45:24,760 [DEBUG][       Thread-261428][   transport.py][1871] : kex follows: False
2025-06-13 16:45:24,760 [DEBUG][       Thread-261428][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 16:45:24,760 [DEBUG][       Thread-261428][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 16:45:24,760 [DEBUG][       Thread-261428][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 16:45:24,760 [DEBUG][       Thread-261428][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 16:45:24,760 [DEBUG][       Thread-261428][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 16:45:24,760 [DEBUG][       Thread-261428][   transport.py][1871] : Compression: none
2025-06-13 16:45:24,760 [DEBUG][       Thread-261428][   transport.py][1871] : === End of kex handshake ===
2025-06-13 16:45:24,775 [DEBUG][       Thread-261428][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 16:45:24,775 [DEBUG][       Thread-261428][   transport.py][1871] : Switch to new keys ...
2025-06-13 16:45:24,775 [DEBUG][       Thread-261428][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 16:45:24,775 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 16:45:24,775 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 16:45:24,776 [DEBUG][       Thread-261428][   transport.py][1871] : userauth is OK
2025-06-13 16:45:24,788 [ INFO][       Thread-261428][   transport.py][1871] : Authentication (password) successful!
2025-06-13 16:45:24,788 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 16:45:24,944 [DEBUG][Thread-261430 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:45:25,431 [DEBUG][       Thread-261428][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 16:45:25,431 [DEBUG][       Thread-261428][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 16:45:25,473 [DEBUG][       Thread-261428][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 16:45:25,473 [DEBUG][       Thread-261428][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 16:45:25,476 [DEBUG][       Thread-261428][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 16:45:25,481 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 16:45:25,481 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 16:45:25,483 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 16:45:25,485 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 16:45:25,491 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 16:45:25,493 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 16:45:25,494 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 16:45:25,494 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 16:45:25,494 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.614576 -999.00  +13.30  19.61     36   -1.40 1 1 1 1 1   887    0 13.45 -48.03 ----- 19.6 19.6 51.2 25.2 15.5 -29.0 14.9 -29.2 15.4 -28.9 16.3 -27.9
2025-06-13 16:45:25,494 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 16:45:25,494 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 16:45:25,495 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.614576
2025-06-13 16:45:25,495 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 16:45:25,495 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 16:45:25,496 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 16:45:25,496 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 16:45:25,496 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 16:45:25,496 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T16:44:51', tmtdew=16.83, humidity=31.01, cloud=0.0, wind=17.96, temperature=13.58, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T14:44:59.366', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 16:45:25,497 [DEBUG][       Thread-261428][   transport.py][1871] : EOF in transport thread
2025-06-13 16:45:25,581 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 16:45:25,590 [DEBUG][       Thread-261432][   transport.py][1871] : starting thread (client mode): 0x863efac0
2025-06-13 16:45:25,590 [DEBUG][       Thread-261432][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 16:45:25,605 [DEBUG][       Thread-261432][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 16:45:25,605 [ INFO][       Thread-261432][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 16:45:25,613 [DEBUG][       Thread-261432][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 16:45:25,613 [DEBUG][       Thread-261432][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 16:45:25,613 [DEBUG][       Thread-261432][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 16:45:25,613 [DEBUG][       Thread-261432][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:45:25,613 [DEBUG][       Thread-261432][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:45:25,613 [DEBUG][       Thread-261432][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:45:25,613 [DEBUG][       Thread-261432][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:45:25,613 [DEBUG][       Thread-261432][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 16:45:25,613 [DEBUG][       Thread-261432][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 16:45:25,613 [DEBUG][       Thread-261432][   transport.py][1871] : client lang: <none>
2025-06-13 16:45:25,613 [DEBUG][       Thread-261432][   transport.py][1871] : server lang: <none>
2025-06-13 16:45:25,613 [DEBUG][       Thread-261432][   transport.py][1871] : kex follows: False
2025-06-13 16:45:25,614 [DEBUG][       Thread-261432][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 16:45:25,614 [DEBUG][       Thread-261432][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 16:45:25,614 [DEBUG][       Thread-261432][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 16:45:25,614 [DEBUG][       Thread-261432][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 16:45:25,614 [DEBUG][       Thread-261432][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 16:45:25,614 [DEBUG][       Thread-261432][   transport.py][1871] : Compression: none
2025-06-13 16:45:25,614 [DEBUG][       Thread-261432][   transport.py][1871] : === End of kex handshake ===
2025-06-13 16:45:25,672 [DEBUG][       Thread-261432][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 16:45:25,673 [DEBUG][       Thread-261432][   transport.py][1871] : Switch to new keys ...
2025-06-13 16:45:25,673 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 16:45:25,674 [DEBUG][       Thread-261432][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 16:45:25,675 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 16:45:25,741 [DEBUG][       Thread-261432][   transport.py][1871] : userauth is OK
2025-06-13 16:45:25,742 [DEBUG][       Thread-261432][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 16:45:25,742 [DEBUG][       Thread-261432][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 16:45:25,742 [DEBUG][       Thread-261432][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 16:45:25,742 [DEBUG][       Thread-261432][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 16:45:25,761 [ INFO][       Thread-261432][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 16:45:25,761 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 16:45:25,762 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 16:45:26,760 [DEBUG][       Thread-261432][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 16:45:26,760 [DEBUG][       Thread-261432][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 16:45:26,808 [DEBUG][       Thread-261432][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 16:45:26,808 [DEBUG][       Thread-261432][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 16:45:26,818 [DEBUG][       Thread-261432][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 16:45:26,827 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 16:45:26,827 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 16:45:26,836 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 16:45:26,845 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 16:45:26,845 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 16:45:26,846 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 16:45:26,854 [DEBUG][       Thread-261432][   transport.py][1871] : EOF in transport thread
2025-06-13 16:45:33,963 [DEBUG][Thread-261434 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:45:36,856 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 16:45:36,856 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 16:45:36,856 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 16:45:36,857 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 16:45:37,316 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 16, 45, 23), 16.5, 31.63, 0.0, 17.79, 13.41, 0, 0, 0, 2, 0, 0),)
2025-06-13 16:45:37,316 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 16:45:23
2025-06-13 16:45:37,398 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 16:45:37,403 [DEBUG][       Thread-261435][   transport.py][1871] : starting thread (client mode): 0x867fe230
2025-06-13 16:45:37,403 [DEBUG][       Thread-261435][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 16:45:37,423 [DEBUG][       Thread-261435][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 16:45:37,423 [ INFO][       Thread-261435][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 16:45:37,426 [DEBUG][       Thread-261435][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 16:45:37,426 [DEBUG][       Thread-261435][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 16:45:37,426 [DEBUG][       Thread-261435][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 16:45:37,426 [DEBUG][       Thread-261435][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:45:37,426 [DEBUG][       Thread-261435][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:45:37,426 [DEBUG][       Thread-261435][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:45:37,426 [DEBUG][       Thread-261435][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:45:37,426 [DEBUG][       Thread-261435][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 16:45:37,426 [DEBUG][       Thread-261435][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 16:45:37,426 [DEBUG][       Thread-261435][   transport.py][1871] : client lang: <none>
2025-06-13 16:45:37,426 [DEBUG][       Thread-261435][   transport.py][1871] : server lang: <none>
2025-06-13 16:45:37,426 [DEBUG][       Thread-261435][   transport.py][1871] : kex follows: False
2025-06-13 16:45:37,427 [DEBUG][       Thread-261435][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 16:45:37,427 [DEBUG][       Thread-261435][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 16:45:37,427 [DEBUG][       Thread-261435][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 16:45:37,427 [DEBUG][       Thread-261435][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 16:45:37,427 [DEBUG][       Thread-261435][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 16:45:37,427 [DEBUG][       Thread-261435][   transport.py][1871] : Compression: none
2025-06-13 16:45:37,427 [DEBUG][       Thread-261435][   transport.py][1871] : === End of kex handshake ===
2025-06-13 16:45:37,443 [DEBUG][       Thread-261435][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 16:45:37,444 [DEBUG][       Thread-261435][   transport.py][1871] : Switch to new keys ...
2025-06-13 16:45:37,444 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 16:45:37,444 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 16:45:37,445 [DEBUG][       Thread-261435][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 16:45:37,446 [DEBUG][       Thread-261435][   transport.py][1871] : userauth is OK
2025-06-13 16:45:37,459 [ INFO][       Thread-261435][   transport.py][1871] : Authentication (password) successful!
2025-06-13 16:45:37,459 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 16:45:38,124 [DEBUG][       Thread-261435][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 16:45:38,125 [DEBUG][       Thread-261435][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 16:45:38,169 [DEBUG][       Thread-261435][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 16:45:38,169 [DEBUG][       Thread-261435][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 16:45:38,172 [DEBUG][       Thread-261435][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 16:45:38,184 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 16:45:38,185 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 16:45:38,187 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 16:45:38,189 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 16:45:38,195 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 16:45:38,197 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 16:45:38,197 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 16:45:38,197 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 16:45:38,198 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.614576 -999.00  +13.30  19.61     36   -1.40 1 1 1 1 1   887    0 13.45 -48.03 ----- 19.6 19.6 51.2 25.2 15.5 -29.0 14.9 -29.2 15.4 -28.9 16.3 -27.9
2025-06-13 16:45:38,198 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 16:45:38,198 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 16:45:38,198 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.614576
2025-06-13 16:45:38,198 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 16:45:38,199 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 16:45:38,199 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 16:45:38,199 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 16:45:38,199 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 16:45:38,199 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T16:45:23', tmtdew=16.5, humidity=31.63, cloud=0.0, wind=17.79, temperature=13.41, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T14:44:59.366', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 16:45:38,199 [DEBUG][       Thread-261435][   transport.py][1871] : EOF in transport thread
2025-06-13 16:45:38,285 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 16:45:38,296 [DEBUG][       Thread-261438][   transport.py][1871] : starting thread (client mode): 0x86393310
2025-06-13 16:45:38,296 [DEBUG][       Thread-261438][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 16:45:38,315 [DEBUG][       Thread-261438][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 16:45:38,315 [ INFO][       Thread-261438][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 16:45:38,323 [DEBUG][       Thread-261438][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 16:45:38,323 [DEBUG][       Thread-261438][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 16:45:38,323 [DEBUG][       Thread-261438][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 16:45:38,323 [DEBUG][       Thread-261438][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:45:38,323 [DEBUG][       Thread-261438][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:45:38,323 [DEBUG][       Thread-261438][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:45:38,324 [DEBUG][       Thread-261438][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:45:38,324 [DEBUG][       Thread-261438][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 16:45:38,324 [DEBUG][       Thread-261438][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 16:45:38,324 [DEBUG][       Thread-261438][   transport.py][1871] : client lang: <none>
2025-06-13 16:45:38,324 [DEBUG][       Thread-261438][   transport.py][1871] : server lang: <none>
2025-06-13 16:45:38,324 [DEBUG][       Thread-261438][   transport.py][1871] : kex follows: False
2025-06-13 16:45:38,324 [DEBUG][       Thread-261438][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 16:45:38,324 [DEBUG][       Thread-261438][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 16:45:38,324 [DEBUG][       Thread-261438][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 16:45:38,324 [DEBUG][       Thread-261438][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 16:45:38,324 [DEBUG][       Thread-261438][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 16:45:38,324 [DEBUG][       Thread-261438][   transport.py][1871] : Compression: none
2025-06-13 16:45:38,324 [DEBUG][       Thread-261438][   transport.py][1871] : === End of kex handshake ===
2025-06-13 16:45:38,385 [DEBUG][       Thread-261438][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 16:45:38,385 [DEBUG][       Thread-261438][   transport.py][1871] : Switch to new keys ...
2025-06-13 16:45:38,386 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 16:45:38,386 [DEBUG][       Thread-261438][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 16:45:38,387 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 16:45:38,442 [DEBUG][       Thread-261438][   transport.py][1871] : userauth is OK
2025-06-13 16:45:38,443 [DEBUG][       Thread-261438][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 16:45:38,443 [DEBUG][       Thread-261438][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 16:45:38,443 [DEBUG][       Thread-261438][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 16:45:38,443 [DEBUG][       Thread-261438][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 16:45:38,461 [ INFO][       Thread-261438][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 16:45:38,461 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 16:45:38,462 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 16:45:39,414 [DEBUG][       Thread-261438][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 16:45:39,414 [DEBUG][       Thread-261438][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 16:45:39,464 [DEBUG][       Thread-261438][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 16:45:39,464 [DEBUG][       Thread-261438][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 16:45:39,473 [DEBUG][       Thread-261438][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 16:45:39,482 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 16:45:39,483 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 16:45:39,491 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 16:45:39,500 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 16:45:39,500 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 16:45:39,501 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 16:45:39,509 [DEBUG][       Thread-261438][   transport.py][1871] : EOF in transport thread
2025-06-13 16:45:42,982 [DEBUG][Thread-261440 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:45:49,509 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 16:45:49,509 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 16:45:49,509 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 16:45:49,512 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 16:45:49,969 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 16, 45, 23), 16.5, 31.63, 0.0, 17.79, 13.41, 0, 0, 0, 2, 0, 0),)
2025-06-13 16:45:49,969 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 16:45:23
2025-06-13 16:45:50,050 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 16:45:50,056 [DEBUG][       Thread-261441][   transport.py][1871] : starting thread (client mode): 0x863c8b80
2025-06-13 16:45:50,056 [DEBUG][       Thread-261441][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 16:45:50,077 [DEBUG][       Thread-261441][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 16:45:50,077 [ INFO][       Thread-261441][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 16:45:50,080 [DEBUG][       Thread-261441][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 16:45:50,080 [DEBUG][       Thread-261441][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 16:45:50,080 [DEBUG][       Thread-261441][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 16:45:50,080 [DEBUG][       Thread-261441][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:45:50,080 [DEBUG][       Thread-261441][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:45:50,080 [DEBUG][       Thread-261441][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:45:50,081 [DEBUG][       Thread-261441][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:45:50,081 [DEBUG][       Thread-261441][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 16:45:50,081 [DEBUG][       Thread-261441][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 16:45:50,081 [DEBUG][       Thread-261441][   transport.py][1871] : client lang: <none>
2025-06-13 16:45:50,081 [DEBUG][       Thread-261441][   transport.py][1871] : server lang: <none>
2025-06-13 16:45:50,081 [DEBUG][       Thread-261441][   transport.py][1871] : kex follows: False
2025-06-13 16:45:50,081 [DEBUG][       Thread-261441][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 16:45:50,081 [DEBUG][       Thread-261441][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 16:45:50,081 [DEBUG][       Thread-261441][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 16:45:50,081 [DEBUG][       Thread-261441][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 16:45:50,081 [DEBUG][       Thread-261441][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 16:45:50,081 [DEBUG][       Thread-261441][   transport.py][1871] : Compression: none
2025-06-13 16:45:50,081 [DEBUG][       Thread-261441][   transport.py][1871] : === End of kex handshake ===
2025-06-13 16:45:50,098 [DEBUG][       Thread-261441][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 16:45:50,098 [DEBUG][       Thread-261441][   transport.py][1871] : Switch to new keys ...
2025-06-13 16:45:50,099 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 16:45:50,099 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 16:45:50,100 [DEBUG][       Thread-261441][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 16:45:50,100 [DEBUG][       Thread-261441][   transport.py][1871] : userauth is OK
2025-06-13 16:45:50,113 [ INFO][       Thread-261441][   transport.py][1871] : Authentication (password) successful!
2025-06-13 16:45:50,114 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 16:45:50,804 [DEBUG][       Thread-261441][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 16:45:50,805 [DEBUG][       Thread-261441][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 16:45:50,845 [DEBUG][       Thread-261441][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 16:45:50,845 [DEBUG][       Thread-261441][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 16:45:50,849 [DEBUG][       Thread-261441][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 16:45:50,862 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 16:45:50,863 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 16:45:50,865 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 16:45:50,867 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 16:45:50,873 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 16:45:50,875 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 16:45:50,875 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 16:45:50,876 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 16:45:50,876 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.614576 -999.00  +13.30  19.61     36   -1.40 1 1 1 1 1   887    0 13.45 -48.03 ----- 19.6 19.6 51.2 25.2 15.5 -29.0 14.9 -29.2 15.4 -28.9 16.3 -27.9
2025-06-13 16:45:50,876 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 16:45:50,876 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 16:45:50,876 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.614576
2025-06-13 16:45:50,877 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 16:45:50,877 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 16:45:50,877 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 16:45:50,877 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 16:45:50,877 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 16:45:50,877 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T16:45:23', tmtdew=16.5, humidity=31.63, cloud=0.0, wind=17.79, temperature=13.41, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T14:44:59.366', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 16:45:50,879 [DEBUG][       Thread-261441][   transport.py][1871] : EOF in transport thread
2025-06-13 16:45:50,972 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 16:45:50,982 [DEBUG][       Thread-261444][   transport.py][1871] : starting thread (client mode): 0x86353fd0
2025-06-13 16:45:50,982 [DEBUG][       Thread-261444][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 16:45:51,002 [DEBUG][       Thread-261444][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 16:45:51,002 [ INFO][       Thread-261444][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 16:45:51,010 [DEBUG][       Thread-261444][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 16:45:51,010 [DEBUG][       Thread-261444][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 16:45:51,010 [DEBUG][       Thread-261444][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 16:45:51,010 [DEBUG][       Thread-261444][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:45:51,010 [DEBUG][       Thread-261444][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:45:51,010 [DEBUG][       Thread-261444][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:45:51,010 [DEBUG][       Thread-261444][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:45:51,010 [DEBUG][       Thread-261444][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 16:45:51,010 [DEBUG][       Thread-261444][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 16:45:51,010 [DEBUG][       Thread-261444][   transport.py][1871] : client lang: <none>
2025-06-13 16:45:51,010 [DEBUG][       Thread-261444][   transport.py][1871] : server lang: <none>
2025-06-13 16:45:51,010 [DEBUG][       Thread-261444][   transport.py][1871] : kex follows: False
2025-06-13 16:45:51,011 [DEBUG][       Thread-261444][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 16:45:51,011 [DEBUG][       Thread-261444][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 16:45:51,011 [DEBUG][       Thread-261444][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 16:45:51,011 [DEBUG][       Thread-261444][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 16:45:51,011 [DEBUG][       Thread-261444][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 16:45:51,011 [DEBUG][       Thread-261444][   transport.py][1871] : Compression: none
2025-06-13 16:45:51,011 [DEBUG][       Thread-261444][   transport.py][1871] : === End of kex handshake ===
2025-06-13 16:45:51,066 [DEBUG][       Thread-261444][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 16:45:51,067 [DEBUG][       Thread-261444][   transport.py][1871] : Switch to new keys ...
2025-06-13 16:45:51,067 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 16:45:51,068 [DEBUG][       Thread-261444][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 16:45:51,069 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 16:45:51,123 [DEBUG][       Thread-261444][   transport.py][1871] : userauth is OK
2025-06-13 16:45:51,123 [DEBUG][       Thread-261444][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 16:45:51,123 [DEBUG][       Thread-261444][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 16:45:51,123 [DEBUG][       Thread-261444][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 16:45:51,123 [DEBUG][       Thread-261444][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 16:45:51,143 [ INFO][       Thread-261444][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 16:45:51,143 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 16:45:51,143 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 16:45:52,017 [DEBUG][Thread-261446 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:45:52,129 [DEBUG][       Thread-261444][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 16:45:52,129 [DEBUG][       Thread-261444][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 16:45:52,180 [DEBUG][       Thread-261444][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 16:45:52,180 [DEBUG][       Thread-261444][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 16:45:52,190 [DEBUG][       Thread-261444][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 16:45:52,199 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 16:45:52,199 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 16:45:52,208 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 16:45:52,217 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 16:45:52,217 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 16:45:52,218 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 16:45:52,226 [DEBUG][       Thread-261444][   transport.py][1871] : EOF in transport thread
2025-06-13 16:46:01,038 [DEBUG][Thread-261447 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:46:02,228 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 16:46:02,229 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 16:46:02,229 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 16:46:02,232 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 16:46:02,694 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 16, 45, 54), 16.52, 31.6, 0.0, 16.3, 13.4, 0, 0, 0, 2, 0, 0),)
2025-06-13 16:46:02,694 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 16:45:54
2025-06-13 16:46:02,776 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 16:46:02,780 [DEBUG][       Thread-261448][   transport.py][1871] : starting thread (client mode): 0x867fc640
2025-06-13 16:46:02,780 [DEBUG][       Thread-261448][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 16:46:02,800 [DEBUG][       Thread-261448][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 16:46:02,800 [ INFO][       Thread-261448][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 16:46:02,802 [DEBUG][       Thread-261448][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 16:46:02,802 [DEBUG][       Thread-261448][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 16:46:02,802 [DEBUG][       Thread-261448][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 16:46:02,802 [DEBUG][       Thread-261448][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:46:02,802 [DEBUG][       Thread-261448][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:46:02,803 [DEBUG][       Thread-261448][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:46:02,803 [DEBUG][       Thread-261448][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:46:02,803 [DEBUG][       Thread-261448][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 16:46:02,803 [DEBUG][       Thread-261448][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 16:46:02,803 [DEBUG][       Thread-261448][   transport.py][1871] : client lang: <none>
2025-06-13 16:46:02,803 [DEBUG][       Thread-261448][   transport.py][1871] : server lang: <none>
2025-06-13 16:46:02,803 [DEBUG][       Thread-261448][   transport.py][1871] : kex follows: False
2025-06-13 16:46:02,803 [DEBUG][       Thread-261448][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 16:46:02,803 [DEBUG][       Thread-261448][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 16:46:02,803 [DEBUG][       Thread-261448][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 16:46:02,803 [DEBUG][       Thread-261448][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 16:46:02,803 [DEBUG][       Thread-261448][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 16:46:02,803 [DEBUG][       Thread-261448][   transport.py][1871] : Compression: none
2025-06-13 16:46:02,803 [DEBUG][       Thread-261448][   transport.py][1871] : === End of kex handshake ===
2025-06-13 16:46:02,820 [DEBUG][       Thread-261448][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 16:46:02,820 [DEBUG][       Thread-261448][   transport.py][1871] : Switch to new keys ...
2025-06-13 16:46:02,821 [DEBUG][       Thread-261448][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 16:46:02,821 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 16:46:02,821 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 16:46:02,822 [DEBUG][       Thread-261448][   transport.py][1871] : userauth is OK
2025-06-13 16:46:02,835 [ INFO][       Thread-261448][   transport.py][1871] : Authentication (password) successful!
2025-06-13 16:46:02,836 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 16:46:03,434 [DEBUG][       Thread-261448][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 16:46:03,435 [DEBUG][       Thread-261448][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 16:46:03,477 [DEBUG][       Thread-261448][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 16:46:03,477 [DEBUG][       Thread-261448][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 16:46:03,480 [DEBUG][       Thread-261448][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 16:46:03,493 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 16:46:03,494 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 16:46:03,495 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 16:46:03,497 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 16:46:03,503 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 16:46:03,506 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 16:46:03,506 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 16:46:03,506 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 16:46:03,507 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.614865 -999.00  +13.30  17.42     36   -1.20 1 1 1 1 1   887    0 13.10 -48.08 ----- 18.0 17.4 50.4 22.3 15.5 -28.8 14.9 -29.2 15.4 -28.9 16.3 -27.9
2025-06-13 16:46:03,507 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 16:46:03,507 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 16:46:03,507 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.614865
2025-06-13 16:46:03,507 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 16:46:03,508 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 16:46:03,508 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 16:46:03,508 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 16:46:03,508 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 16:46:03,508 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T16:45:54', tmtdew=16.52, humidity=31.6, cloud=0.0, wind=16.3, temperature=13.4, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T14:45:24.336', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 16:46:03,510 [DEBUG][       Thread-261448][   transport.py][1871] : EOF in transport thread
2025-06-13 16:46:03,592 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 16:46:03,602 [DEBUG][       Thread-261451][   transport.py][1871] : starting thread (client mode): 0x86390f40
2025-06-13 16:46:03,602 [DEBUG][       Thread-261451][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 16:46:03,617 [DEBUG][       Thread-261451][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 16:46:03,618 [ INFO][       Thread-261451][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 16:46:03,625 [DEBUG][       Thread-261451][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 16:46:03,626 [DEBUG][       Thread-261451][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 16:46:03,626 [DEBUG][       Thread-261451][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 16:46:03,626 [DEBUG][       Thread-261451][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:46:03,626 [DEBUG][       Thread-261451][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:46:03,626 [DEBUG][       Thread-261451][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:46:03,626 [DEBUG][       Thread-261451][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:46:03,626 [DEBUG][       Thread-261451][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 16:46:03,626 [DEBUG][       Thread-261451][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 16:46:03,626 [DEBUG][       Thread-261451][   transport.py][1871] : client lang: <none>
2025-06-13 16:46:03,626 [DEBUG][       Thread-261451][   transport.py][1871] : server lang: <none>
2025-06-13 16:46:03,626 [DEBUG][       Thread-261451][   transport.py][1871] : kex follows: False
2025-06-13 16:46:03,626 [DEBUG][       Thread-261451][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 16:46:03,626 [DEBUG][       Thread-261451][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 16:46:03,626 [DEBUG][       Thread-261451][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 16:46:03,626 [DEBUG][       Thread-261451][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 16:46:03,626 [DEBUG][       Thread-261451][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 16:46:03,626 [DEBUG][       Thread-261451][   transport.py][1871] : Compression: none
2025-06-13 16:46:03,626 [DEBUG][       Thread-261451][   transport.py][1871] : === End of kex handshake ===
2025-06-13 16:46:03,686 [DEBUG][       Thread-261451][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 16:46:03,687 [DEBUG][       Thread-261451][   transport.py][1871] : Switch to new keys ...
2025-06-13 16:46:03,687 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 16:46:03,688 [DEBUG][       Thread-261451][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 16:46:03,689 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 16:46:03,747 [DEBUG][       Thread-261451][   transport.py][1871] : userauth is OK
2025-06-13 16:46:03,747 [DEBUG][       Thread-261451][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 16:46:03,747 [DEBUG][       Thread-261451][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 16:46:03,747 [DEBUG][       Thread-261451][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 16:46:03,748 [DEBUG][       Thread-261451][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 16:46:03,766 [ INFO][       Thread-261451][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 16:46:03,767 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 16:46:03,767 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 16:46:04,796 [DEBUG][       Thread-261451][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 16:46:04,796 [DEBUG][       Thread-261451][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 16:46:04,844 [DEBUG][       Thread-261451][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 16:46:04,844 [DEBUG][       Thread-261451][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 16:46:04,853 [DEBUG][       Thread-261451][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 16:46:04,863 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 16:46:04,863 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 16:46:04,872 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 16:46:04,881 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 16:46:04,881 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 16:46:04,882 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 16:46:04,890 [DEBUG][       Thread-261451][   transport.py][1871] : EOF in transport thread
2025-06-13 16:46:10,139 [DEBUG][Thread-261453 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:46:14,376 [DEBUG][Thread-261454 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:46:14,892 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 16:46:14,892 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 16:46:14,892 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 16:46:14,893 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 16:46:15,359 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 16, 45, 54), 16.52, 31.6, 0.0, 16.3, 13.4, 0, 0, 0, 2, 0, 0),)
2025-06-13 16:46:15,359 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 16:45:54
2025-06-13 16:46:15,431 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:46:15,432 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:46:15,440 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 16:46:15,446 [DEBUG][       Thread-261455][   transport.py][1871] : starting thread (client mode): 0x863c8730
2025-06-13 16:46:15,446 [DEBUG][       Thread-261455][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 16:46:15,467 [DEBUG][       Thread-261455][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 16:46:15,467 [ INFO][       Thread-261455][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 16:46:15,468 [DEBUG][       Thread-261455][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 16:46:15,469 [DEBUG][       Thread-261455][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 16:46:15,469 [DEBUG][       Thread-261455][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 16:46:15,469 [DEBUG][       Thread-261455][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:46:15,469 [DEBUG][       Thread-261455][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:46:15,469 [DEBUG][       Thread-261455][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:46:15,469 [DEBUG][       Thread-261455][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:46:15,469 [DEBUG][       Thread-261455][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 16:46:15,469 [DEBUG][       Thread-261455][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 16:46:15,469 [DEBUG][       Thread-261455][   transport.py][1871] : client lang: <none>
2025-06-13 16:46:15,469 [DEBUG][       Thread-261455][   transport.py][1871] : server lang: <none>
2025-06-13 16:46:15,469 [DEBUG][       Thread-261455][   transport.py][1871] : kex follows: False
2025-06-13 16:46:15,469 [DEBUG][       Thread-261455][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 16:46:15,469 [DEBUG][       Thread-261455][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 16:46:15,469 [DEBUG][       Thread-261455][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 16:46:15,469 [DEBUG][       Thread-261455][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 16:46:15,469 [DEBUG][       Thread-261455][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 16:46:15,469 [DEBUG][       Thread-261455][   transport.py][1871] : Compression: none
2025-06-13 16:46:15,469 [DEBUG][       Thread-261455][   transport.py][1871] : === End of kex handshake ===
2025-06-13 16:46:15,482 [DEBUG][       Thread-261455][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 16:46:15,483 [DEBUG][       Thread-261455][   transport.py][1871] : Switch to new keys ...
2025-06-13 16:46:15,483 [DEBUG][       Thread-261455][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 16:46:15,484 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 16:46:15,484 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 16:46:15,485 [DEBUG][       Thread-261455][   transport.py][1871] : userauth is OK
2025-06-13 16:46:15,498 [ INFO][       Thread-261455][   transport.py][1871] : Authentication (password) successful!
2025-06-13 16:46:15,499 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 16:46:16,106 [DEBUG][       Thread-261455][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 16:46:16,106 [DEBUG][       Thread-261455][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 16:46:16,153 [DEBUG][       Thread-261455][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 16:46:16,153 [DEBUG][       Thread-261455][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 16:46:16,156 [DEBUG][       Thread-261455][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 16:46:16,170 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 16:46:16,170 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 16:46:16,172 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 16:46:16,173 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 16:46:16,178 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 16:46:16,179 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 16:46:16,179 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 16:46:16,180 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 16:46:16,180 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.614865 -999.00  +13.30  17.42     36   -1.20 1 1 1 1 1   887    0 13.10 -48.08 ----- 18.0 17.4 50.4 22.3 15.5 -28.8 14.9 -29.2 15.4 -28.9 16.3 -27.9
2025-06-13 16:46:16,180 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 16:46:16,180 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 16:46:16,180 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.614865
2025-06-13 16:46:16,181 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 16:46:16,181 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 16:46:16,181 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 16:46:16,181 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 16:46:16,181 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 16:46:16,182 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T16:45:54', tmtdew=16.52, humidity=31.6, cloud=0.0, wind=16.3, temperature=13.4, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T14:45:24.336', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 16:46:16,183 [DEBUG][       Thread-261455][   transport.py][1871] : EOF in transport thread
2025-06-13 16:46:16,265 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 16:46:16,276 [DEBUG][       Thread-261458][   transport.py][1871] : starting thread (client mode): 0x863bea70
2025-06-13 16:46:16,276 [DEBUG][       Thread-261458][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 16:46:16,291 [DEBUG][       Thread-261458][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 16:46:16,292 [ INFO][       Thread-261458][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 16:46:16,299 [DEBUG][       Thread-261458][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 16:46:16,299 [DEBUG][       Thread-261458][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 16:46:16,299 [DEBUG][       Thread-261458][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 16:46:16,299 [DEBUG][       Thread-261458][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:46:16,299 [DEBUG][       Thread-261458][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:46:16,299 [DEBUG][       Thread-261458][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:46:16,299 [DEBUG][       Thread-261458][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:46:16,299 [DEBUG][       Thread-261458][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 16:46:16,299 [DEBUG][       Thread-261458][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 16:46:16,299 [DEBUG][       Thread-261458][   transport.py][1871] : client lang: <none>
2025-06-13 16:46:16,300 [DEBUG][       Thread-261458][   transport.py][1871] : server lang: <none>
2025-06-13 16:46:16,300 [DEBUG][       Thread-261458][   transport.py][1871] : kex follows: False
2025-06-13 16:46:16,300 [DEBUG][       Thread-261458][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 16:46:16,300 [DEBUG][       Thread-261458][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 16:46:16,300 [DEBUG][       Thread-261458][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 16:46:16,300 [DEBUG][       Thread-261458][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 16:46:16,300 [DEBUG][       Thread-261458][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 16:46:16,300 [DEBUG][       Thread-261458][   transport.py][1871] : Compression: none
2025-06-13 16:46:16,300 [DEBUG][       Thread-261458][   transport.py][1871] : === End of kex handshake ===
2025-06-13 16:46:16,358 [DEBUG][       Thread-261458][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 16:46:16,358 [DEBUG][       Thread-261458][   transport.py][1871] : Switch to new keys ...
2025-06-13 16:46:16,359 [DEBUG][       Thread-261458][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 16:46:16,359 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 16:46:16,359 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 16:46:16,414 [DEBUG][       Thread-261458][   transport.py][1871] : userauth is OK
2025-06-13 16:46:16,415 [DEBUG][       Thread-261458][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 16:46:16,415 [DEBUG][       Thread-261458][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 16:46:16,415 [DEBUG][       Thread-261458][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 16:46:16,415 [DEBUG][       Thread-261458][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 16:46:16,438 [ INFO][       Thread-261458][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 16:46:16,438 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 16:46:16,439 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 16:46:17,394 [DEBUG][       Thread-261458][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 16:46:17,395 [DEBUG][       Thread-261458][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 16:46:17,444 [DEBUG][       Thread-261458][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 16:46:17,444 [DEBUG][       Thread-261458][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 16:46:17,453 [DEBUG][       Thread-261458][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 16:46:17,461 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 16:46:17,461 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 16:46:17,470 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 16:46:17,479 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 16:46:17,480 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 16:46:17,480 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 16:46:17,492 [DEBUG][       Thread-261458][   transport.py][1871] : EOF in transport thread
2025-06-13 16:46:19,172 [DEBUG][Thread-261460 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:46:20,296 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:46:20,297 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:46:24,094 [DEBUG][Thread-261461 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:46:27,488 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 16:46:27,488 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 16:46:27,488 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 16:46:27,489 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 16:46:28,008 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 16, 45, 54), 16.52, 31.6, 0.0, 16.3, 13.4, 0, 0, 0, 2, 0, 0),)
2025-06-13 16:46:28,008 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 16:45:54
2025-06-13 16:46:28,095 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 16:46:28,099 [DEBUG][       Thread-261462][   transport.py][1871] : starting thread (client mode): 0x867fe800
2025-06-13 16:46:28,099 [DEBUG][       Thread-261462][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 16:46:28,115 [DEBUG][       Thread-261462][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 16:46:28,115 [ INFO][       Thread-261462][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 16:46:28,116 [DEBUG][       Thread-261462][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 16:46:28,116 [DEBUG][       Thread-261462][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 16:46:28,116 [DEBUG][       Thread-261462][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 16:46:28,116 [DEBUG][       Thread-261462][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:46:28,116 [DEBUG][       Thread-261462][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:46:28,116 [DEBUG][       Thread-261462][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:46:28,116 [DEBUG][       Thread-261462][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:46:28,116 [DEBUG][       Thread-261462][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 16:46:28,116 [DEBUG][       Thread-261462][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 16:46:28,116 [DEBUG][       Thread-261462][   transport.py][1871] : client lang: <none>
2025-06-13 16:46:28,116 [DEBUG][       Thread-261462][   transport.py][1871] : server lang: <none>
2025-06-13 16:46:28,116 [DEBUG][       Thread-261462][   transport.py][1871] : kex follows: False
2025-06-13 16:46:28,116 [DEBUG][       Thread-261462][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 16:46:28,116 [DEBUG][       Thread-261462][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 16:46:28,116 [DEBUG][       Thread-261462][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 16:46:28,116 [DEBUG][       Thread-261462][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 16:46:28,116 [DEBUG][       Thread-261462][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 16:46:28,116 [DEBUG][       Thread-261462][   transport.py][1871] : Compression: none
2025-06-13 16:46:28,116 [DEBUG][       Thread-261462][   transport.py][1871] : === End of kex handshake ===
2025-06-13 16:46:28,128 [DEBUG][       Thread-261462][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 16:46:28,128 [DEBUG][       Thread-261462][   transport.py][1871] : Switch to new keys ...
2025-06-13 16:46:28,128 [DEBUG][       Thread-261462][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 16:46:28,128 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 16:46:28,128 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 16:46:28,131 [DEBUG][       Thread-261462][   transport.py][1871] : userauth is OK
2025-06-13 16:46:28,144 [ INFO][       Thread-261462][   transport.py][1871] : Authentication (password) successful!
2025-06-13 16:46:28,144 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 16:46:28,192 [DEBUG][Thread-261464 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:46:28,698 [DEBUG][       Thread-261462][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 16:46:28,698 [DEBUG][       Thread-261462][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 16:46:28,740 [DEBUG][       Thread-261462][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 16:46:28,741 [DEBUG][       Thread-261462][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 16:46:28,743 [DEBUG][       Thread-261462][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 16:46:28,755 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 16:46:28,755 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 16:46:28,756 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 16:46:28,758 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 16:46:28,763 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 16:46:28,765 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 16:46:28,765 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 16:46:28,766 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 16:46:28,766 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.615212 -999.00  +13.40  16.47     36   -1.10 1 1 1 1 1   887    0 13.46 -45.96 ----- 14.9 16.5 44.4 23.0 15.5 -29.0 15.0 -29.0 15.6 -28.4 16.3 -28.1
2025-06-13 16:46:28,766 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 16:46:28,766 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 16:46:28,766 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.615212
2025-06-13 16:46:28,766 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 16:46:28,767 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 16:46:28,767 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 16:46:28,767 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 16:46:28,767 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 16:46:28,767 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T16:45:54', tmtdew=16.52, humidity=31.6, cloud=0.0, wind=16.3, temperature=13.4, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T14:45:54.317', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 16:46:28,767 [DEBUG][       Thread-261462][   transport.py][1871] : EOF in transport thread
2025-06-13 16:46:28,851 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 16:46:28,860 [DEBUG][       Thread-261466][   transport.py][1871] : starting thread (client mode): 0x863ef5b0
2025-06-13 16:46:28,860 [DEBUG][       Thread-261466][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 16:46:28,875 [DEBUG][       Thread-261466][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 16:46:28,875 [ INFO][       Thread-261466][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 16:46:28,883 [DEBUG][       Thread-261466][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 16:46:28,883 [DEBUG][       Thread-261466][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 16:46:28,883 [DEBUG][       Thread-261466][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 16:46:28,883 [DEBUG][       Thread-261466][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:46:28,883 [DEBUG][       Thread-261466][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:46:28,883 [DEBUG][       Thread-261466][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:46:28,883 [DEBUG][       Thread-261466][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:46:28,883 [DEBUG][       Thread-261466][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 16:46:28,883 [DEBUG][       Thread-261466][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 16:46:28,883 [DEBUG][       Thread-261466][   transport.py][1871] : client lang: <none>
2025-06-13 16:46:28,883 [DEBUG][       Thread-261466][   transport.py][1871] : server lang: <none>
2025-06-13 16:46:28,883 [DEBUG][       Thread-261466][   transport.py][1871] : kex follows: False
2025-06-13 16:46:28,883 [DEBUG][       Thread-261466][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 16:46:28,883 [DEBUG][       Thread-261466][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 16:46:28,883 [DEBUG][       Thread-261466][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 16:46:28,883 [DEBUG][       Thread-261466][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 16:46:28,883 [DEBUG][       Thread-261466][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 16:46:28,883 [DEBUG][       Thread-261466][   transport.py][1871] : Compression: none
2025-06-13 16:46:28,883 [DEBUG][       Thread-261466][   transport.py][1871] : === End of kex handshake ===
2025-06-13 16:46:28,943 [DEBUG][       Thread-261466][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 16:46:28,943 [DEBUG][       Thread-261466][   transport.py][1871] : Switch to new keys ...
2025-06-13 16:46:28,944 [DEBUG][       Thread-261466][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 16:46:28,944 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 16:46:28,945 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 16:46:29,014 [DEBUG][       Thread-261466][   transport.py][1871] : userauth is OK
2025-06-13 16:46:29,015 [DEBUG][       Thread-261466][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 16:46:29,015 [DEBUG][       Thread-261466][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 16:46:29,015 [DEBUG][       Thread-261466][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 16:46:29,015 [DEBUG][       Thread-261466][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 16:46:29,033 [ INFO][       Thread-261466][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 16:46:29,034 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 16:46:29,034 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 16:46:30,034 [DEBUG][       Thread-261466][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 16:46:30,034 [DEBUG][       Thread-261466][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 16:46:30,086 [DEBUG][       Thread-261466][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 16:46:30,086 [DEBUG][       Thread-261466][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 16:46:30,096 [DEBUG][       Thread-261466][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 16:46:30,108 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 16:46:30,109 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 16:46:30,123 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 16:46:30,134 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 16:46:30,134 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 16:46:30,135 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 16:46:30,143 [DEBUG][       Thread-261466][   transport.py][1871] : EOF in transport thread
2025-06-13 16:46:37,214 [DEBUG][Thread-261468 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:46:40,145 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 16:46:40,146 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 16:46:40,146 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 16:46:40,148 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 16:46:40,610 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 16, 46, 26), 16.56, 31.57, 0.0, 18.6, 13.36, 0, 0, 0, 2, 0, 0),)
2025-06-13 16:46:40,610 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 16:46:26
2025-06-13 16:46:40,693 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 16:46:40,699 [DEBUG][       Thread-261469][   transport.py][1871] : starting thread (client mode): 0x863686a0
2025-06-13 16:46:40,699 [DEBUG][       Thread-261469][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 16:46:40,719 [DEBUG][       Thread-261469][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 16:46:40,719 [ INFO][       Thread-261469][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 16:46:40,722 [DEBUG][       Thread-261469][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 16:46:40,722 [DEBUG][       Thread-261469][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 16:46:40,722 [DEBUG][       Thread-261469][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 16:46:40,723 [DEBUG][       Thread-261469][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:46:40,723 [DEBUG][       Thread-261469][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:46:40,723 [DEBUG][       Thread-261469][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:46:40,723 [DEBUG][       Thread-261469][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:46:40,723 [DEBUG][       Thread-261469][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 16:46:40,723 [DEBUG][       Thread-261469][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 16:46:40,723 [DEBUG][       Thread-261469][   transport.py][1871] : client lang: <none>
2025-06-13 16:46:40,723 [DEBUG][       Thread-261469][   transport.py][1871] : server lang: <none>
2025-06-13 16:46:40,723 [DEBUG][       Thread-261469][   transport.py][1871] : kex follows: False
2025-06-13 16:46:40,723 [DEBUG][       Thread-261469][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 16:46:40,723 [DEBUG][       Thread-261469][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 16:46:40,723 [DEBUG][       Thread-261469][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 16:46:40,723 [DEBUG][       Thread-261469][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 16:46:40,723 [DEBUG][       Thread-261469][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 16:46:40,723 [DEBUG][       Thread-261469][   transport.py][1871] : Compression: none
2025-06-13 16:46:40,723 [DEBUG][       Thread-261469][   transport.py][1871] : === End of kex handshake ===
2025-06-13 16:46:40,739 [DEBUG][       Thread-261469][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 16:46:40,740 [DEBUG][       Thread-261469][   transport.py][1871] : Switch to new keys ...
2025-06-13 16:46:40,741 [DEBUG][       Thread-261469][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 16:46:40,741 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 16:46:40,741 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 16:46:40,743 [DEBUG][       Thread-261469][   transport.py][1871] : userauth is OK
2025-06-13 16:46:40,767 [ INFO][       Thread-261469][   transport.py][1871] : Authentication (password) successful!
2025-06-13 16:46:40,768 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 16:46:41,411 [DEBUG][       Thread-261469][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 16:46:41,411 [DEBUG][       Thread-261469][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 16:46:41,453 [DEBUG][       Thread-261469][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 16:46:41,453 [DEBUG][       Thread-261469][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 16:46:41,456 [DEBUG][       Thread-261469][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 16:46:41,468 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 16:46:41,468 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 16:46:41,471 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 16:46:41,473 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 16:46:41,479 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 16:46:41,482 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 16:46:41,482 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 16:46:41,482 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 16:46:41,483 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.615212 -999.00  +13.40  16.47     36   -1.10 1 1 1 1 1   887    0 13.46 -45.96 ----- 14.9 16.5 44.4 23.0 15.5 -29.0 15.0 -29.0 15.6 -28.4 16.3 -28.1
2025-06-13 16:46:41,483 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 16:46:41,483 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 16:46:41,483 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.615212
2025-06-13 16:46:41,483 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 16:46:41,484 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 16:46:41,484 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 16:46:41,484 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 16:46:41,484 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 16:46:41,484 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T16:46:26', tmtdew=16.56, humidity=31.57, cloud=0.0, wind=18.6, temperature=13.36, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T14:45:54.317', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 16:46:41,486 [DEBUG][       Thread-261469][   transport.py][1871] : EOF in transport thread
2025-06-13 16:46:41,568 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 16:46:41,586 [DEBUG][       Thread-261472][   transport.py][1871] : starting thread (client mode): 0x863efac0
2025-06-13 16:46:41,586 [DEBUG][       Thread-261472][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 16:46:41,605 [DEBUG][       Thread-261472][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 16:46:41,605 [ INFO][       Thread-261472][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 16:46:41,613 [DEBUG][       Thread-261472][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 16:46:41,613 [DEBUG][       Thread-261472][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 16:46:41,613 [DEBUG][       Thread-261472][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 16:46:41,613 [DEBUG][       Thread-261472][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:46:41,614 [DEBUG][       Thread-261472][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:46:41,614 [DEBUG][       Thread-261472][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:46:41,614 [DEBUG][       Thread-261472][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:46:41,614 [DEBUG][       Thread-261472][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 16:46:41,614 [DEBUG][       Thread-261472][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 16:46:41,614 [DEBUG][       Thread-261472][   transport.py][1871] : client lang: <none>
2025-06-13 16:46:41,614 [DEBUG][       Thread-261472][   transport.py][1871] : server lang: <none>
2025-06-13 16:46:41,614 [DEBUG][       Thread-261472][   transport.py][1871] : kex follows: False
2025-06-13 16:46:41,614 [DEBUG][       Thread-261472][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 16:46:41,614 [DEBUG][       Thread-261472][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 16:46:41,614 [DEBUG][       Thread-261472][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 16:46:41,614 [DEBUG][       Thread-261472][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 16:46:41,614 [DEBUG][       Thread-261472][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 16:46:41,614 [DEBUG][       Thread-261472][   transport.py][1871] : Compression: none
2025-06-13 16:46:41,614 [DEBUG][       Thread-261472][   transport.py][1871] : === End of kex handshake ===
2025-06-13 16:46:41,671 [DEBUG][       Thread-261472][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 16:46:41,671 [DEBUG][       Thread-261472][   transport.py][1871] : Switch to new keys ...
2025-06-13 16:46:41,672 [DEBUG][       Thread-261472][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 16:46:41,672 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 16:46:41,673 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 16:46:41,727 [DEBUG][       Thread-261472][   transport.py][1871] : userauth is OK
2025-06-13 16:46:41,727 [DEBUG][       Thread-261472][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 16:46:41,728 [DEBUG][       Thread-261472][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 16:46:41,728 [DEBUG][       Thread-261472][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 16:46:41,728 [DEBUG][       Thread-261472][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 16:46:41,747 [ INFO][       Thread-261472][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 16:46:41,747 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 16:46:41,748 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 16:46:42,733 [DEBUG][       Thread-261472][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 16:46:42,733 [DEBUG][       Thread-261472][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 16:46:42,784 [DEBUG][       Thread-261472][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 16:46:42,784 [DEBUG][       Thread-261472][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 16:46:42,793 [DEBUG][       Thread-261472][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 16:46:42,802 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 16:46:42,803 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 16:46:42,812 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 16:46:42,821 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 16:46:42,821 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 16:46:42,822 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 16:46:42,830 [DEBUG][       Thread-261472][   transport.py][1871] : EOF in transport thread
2025-06-13 16:46:46,234 [DEBUG][Thread-261474 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:46:52,832 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 16:46:52,832 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 16:46:52,832 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 16:46:52,833 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 16:46:53,310 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 16, 46, 26), 16.56, 31.57, 0.0, 18.6, 13.36, 0, 0, 0, 2, 0, 0),)
2025-06-13 16:46:53,310 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 16:46:26
2025-06-13 16:46:53,392 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 16:46:53,396 [DEBUG][       Thread-261475][   transport.py][1871] : starting thread (client mode): 0x863689a0
2025-06-13 16:46:53,396 [DEBUG][       Thread-261475][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 16:46:53,416 [DEBUG][       Thread-261475][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 16:46:53,416 [ INFO][       Thread-261475][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 16:46:53,419 [DEBUG][       Thread-261475][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 16:46:53,419 [DEBUG][       Thread-261475][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 16:46:53,419 [DEBUG][       Thread-261475][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 16:46:53,420 [DEBUG][       Thread-261475][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:46:53,420 [DEBUG][       Thread-261475][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:46:53,420 [DEBUG][       Thread-261475][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:46:53,420 [DEBUG][       Thread-261475][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:46:53,420 [DEBUG][       Thread-261475][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 16:46:53,420 [DEBUG][       Thread-261475][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 16:46:53,420 [DEBUG][       Thread-261475][   transport.py][1871] : client lang: <none>
2025-06-13 16:46:53,420 [DEBUG][       Thread-261475][   transport.py][1871] : server lang: <none>
2025-06-13 16:46:53,420 [DEBUG][       Thread-261475][   transport.py][1871] : kex follows: False
2025-06-13 16:46:53,420 [DEBUG][       Thread-261475][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 16:46:53,420 [DEBUG][       Thread-261475][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 16:46:53,420 [DEBUG][       Thread-261475][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 16:46:53,420 [DEBUG][       Thread-261475][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 16:46:53,420 [DEBUG][       Thread-261475][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 16:46:53,420 [DEBUG][       Thread-261475][   transport.py][1871] : Compression: none
2025-06-13 16:46:53,420 [DEBUG][       Thread-261475][   transport.py][1871] : === End of kex handshake ===
2025-06-13 16:46:53,440 [DEBUG][       Thread-261475][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 16:46:53,441 [DEBUG][       Thread-261475][   transport.py][1871] : Switch to new keys ...
2025-06-13 16:46:53,441 [DEBUG][       Thread-261475][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 16:46:53,441 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 16:46:53,442 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 16:46:53,443 [DEBUG][       Thread-261475][   transport.py][1871] : userauth is OK
2025-06-13 16:46:53,467 [ INFO][       Thread-261475][   transport.py][1871] : Authentication (password) successful!
2025-06-13 16:46:53,468 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 16:46:54,123 [DEBUG][       Thread-261475][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 16:46:54,124 [DEBUG][       Thread-261475][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 16:46:54,165 [DEBUG][       Thread-261475][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 16:46:54,165 [DEBUG][       Thread-261475][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 16:46:54,169 [DEBUG][       Thread-261475][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 16:46:54,180 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 16:46:54,181 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 16:46:54,183 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 16:46:54,185 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 16:46:54,192 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 16:46:54,194 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 16:46:54,194 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 16:46:54,194 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 16:46:54,195 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.615212 -999.00  +13.40  16.47     36   -1.10 1 1 1 1 1   887    0 13.46 -45.96 ----- 14.9 16.5 44.4 23.0 15.5 -29.0 15.0 -29.0 15.6 -28.4 16.3 -28.1
2025-06-13 16:46:54,195 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 16:46:54,195 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 16:46:54,195 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.615212
2025-06-13 16:46:54,195 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 16:46:54,196 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 16:46:54,196 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 16:46:54,196 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 16:46:54,196 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 16:46:54,196 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T16:46:26', tmtdew=16.56, humidity=31.57, cloud=0.0, wind=18.6, temperature=13.36, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T14:45:54.317', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 16:46:54,197 [DEBUG][       Thread-261475][   transport.py][1871] : EOF in transport thread
2025-06-13 16:46:54,281 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 16:46:55,260 [DEBUG][Thread-261478 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:47:04,281 [DEBUG][Thread-261479 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:47:13,302 [DEBUG][Thread-261480 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:47:15,450 [DEBUG][Thread-261481 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:47:16,502 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:47:16,504 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:47:20,432 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:47:20,432 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:47:22,324 [DEBUG][Thread-261482 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:47:24,124 [DEBUG][Thread-261483 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:47:31,342 [DEBUG][Thread-261484 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:47:40,364 [DEBUG][Thread-261485 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:47:49,388 [DEBUG][Thread-261486 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:47:58,411 [DEBUG][Thread-261487 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:48:07,428 [DEBUG][Thread-261488 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:48:16,446 [DEBUG][Thread-261489 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:48:16,587 [DEBUG][Thread-261490 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:48:17,662 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:48:17,662 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:48:20,593 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:48:20,594 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:48:24,173 [DEBUG][Thread-261491 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:48:25,465 [DEBUG][Thread-261492 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:48:34,484 [DEBUG][Thread-261493 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:48:43,504 [DEBUG][Thread-261494 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:48:52,523 [DEBUG][Thread-261495 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:49:01,546 [DEBUG][Thread-261496 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:49:02,484 [WARNING][ poll_weather_worker][      driver.py][ 286] : Unable to open ssh connection for writing weather state to io.saao.ac.za: [Errno 110] Connection timed out
2025-06-13 16:49:10,573 [DEBUG][Thread-261497 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:49:12,494 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 16:49:12,494 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 16:49:12,495 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 16:49:12,495 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 16:49:12,979 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 16, 49, 4), 16.45, 31.74, 0.0, 15.58, 13.36, 0, 0, 0, 2, 0, 0),)
2025-06-13 16:49:12,979 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 16:49:04
2025-06-13 16:49:13,061 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 16:49:13,067 [DEBUG][       Thread-261498][   transport.py][1871] : starting thread (client mode): 0x8636bf70
2025-06-13 16:49:13,067 [DEBUG][       Thread-261498][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 16:49:13,090 [DEBUG][       Thread-261498][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 16:49:13,090 [ INFO][       Thread-261498][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 16:49:13,093 [DEBUG][       Thread-261498][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 16:49:13,093 [DEBUG][       Thread-261498][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 16:49:13,093 [DEBUG][       Thread-261498][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 16:49:13,093 [DEBUG][       Thread-261498][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:49:13,094 [DEBUG][       Thread-261498][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:49:13,094 [DEBUG][       Thread-261498][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:49:13,094 [DEBUG][       Thread-261498][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:49:13,094 [DEBUG][       Thread-261498][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 16:49:13,094 [DEBUG][       Thread-261498][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 16:49:13,094 [DEBUG][       Thread-261498][   transport.py][1871] : client lang: <none>
2025-06-13 16:49:13,094 [DEBUG][       Thread-261498][   transport.py][1871] : server lang: <none>
2025-06-13 16:49:13,094 [DEBUG][       Thread-261498][   transport.py][1871] : kex follows: False
2025-06-13 16:49:13,094 [DEBUG][       Thread-261498][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 16:49:13,094 [DEBUG][       Thread-261498][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 16:49:13,094 [DEBUG][       Thread-261498][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 16:49:13,094 [DEBUG][       Thread-261498][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 16:49:13,094 [DEBUG][       Thread-261498][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 16:49:13,094 [DEBUG][       Thread-261498][   transport.py][1871] : Compression: none
2025-06-13 16:49:13,094 [DEBUG][       Thread-261498][   transport.py][1871] : === End of kex handshake ===
2025-06-13 16:49:13,111 [DEBUG][       Thread-261498][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 16:49:13,112 [DEBUG][       Thread-261498][   transport.py][1871] : Switch to new keys ...
2025-06-13 16:49:13,112 [DEBUG][       Thread-261498][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 16:49:13,113 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 16:49:13,113 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 16:49:13,114 [DEBUG][       Thread-261498][   transport.py][1871] : userauth is OK
2025-06-13 16:49:13,138 [ INFO][       Thread-261498][   transport.py][1871] : Authentication (password) successful!
2025-06-13 16:49:13,139 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 16:49:13,879 [DEBUG][       Thread-261498][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 16:49:13,879 [DEBUG][       Thread-261498][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 16:49:13,921 [DEBUG][       Thread-261498][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 16:49:13,921 [DEBUG][       Thread-261498][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 16:49:13,925 [DEBUG][       Thread-261498][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 16:49:13,938 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 16:49:13,938 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 16:49:13,940 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 16:49:13,942 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 16:49:13,945 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 16:49:13,947 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 16:49:13,947 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 16:49:13,947 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 16:49:13,948 [WARNING][ poll_weather_worker][      driver.py][ 267] : Unable to get atlas cloud data: list index out of range
2025-06-13 16:49:13,948 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T16:49:04', tmtdew=16.45, humidity=31.74, cloud=0.0, wind=15.58, temperature=13.36, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp=None, atlas_cloud=None, atlas_rain=None, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 16:49:13,949 [DEBUG][       Thread-261498][   transport.py][1871] : EOF in transport thread
2025-06-13 16:49:14,038 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 16:49:14,048 [DEBUG][       Thread-261501][   transport.py][1871] : starting thread (client mode): 0x86369ae0
2025-06-13 16:49:14,048 [DEBUG][       Thread-261501][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 16:49:14,063 [DEBUG][       Thread-261501][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 16:49:14,063 [ INFO][       Thread-261501][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 16:49:14,072 [DEBUG][       Thread-261501][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 16:49:14,073 [DEBUG][       Thread-261501][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 16:49:14,073 [DEBUG][       Thread-261501][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 16:49:14,073 [DEBUG][       Thread-261501][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:49:14,073 [DEBUG][       Thread-261501][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:49:14,073 [DEBUG][       Thread-261501][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:49:14,073 [DEBUG][       Thread-261501][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:49:14,073 [DEBUG][       Thread-261501][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 16:49:14,073 [DEBUG][       Thread-261501][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 16:49:14,073 [DEBUG][       Thread-261501][   transport.py][1871] : client lang: <none>
2025-06-13 16:49:14,073 [DEBUG][       Thread-261501][   transport.py][1871] : server lang: <none>
2025-06-13 16:49:14,073 [DEBUG][       Thread-261501][   transport.py][1871] : kex follows: False
2025-06-13 16:49:14,073 [DEBUG][       Thread-261501][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 16:49:14,073 [DEBUG][       Thread-261501][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 16:49:14,073 [DEBUG][       Thread-261501][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 16:49:14,073 [DEBUG][       Thread-261501][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 16:49:14,073 [DEBUG][       Thread-261501][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 16:49:14,073 [DEBUG][       Thread-261501][   transport.py][1871] : Compression: none
2025-06-13 16:49:14,073 [DEBUG][       Thread-261501][   transport.py][1871] : === End of kex handshake ===
2025-06-13 16:49:14,127 [DEBUG][       Thread-261501][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 16:49:14,128 [DEBUG][       Thread-261501][   transport.py][1871] : Switch to new keys ...
2025-06-13 16:49:14,128 [DEBUG][       Thread-261501][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 16:49:14,129 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 16:49:14,129 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 16:49:14,183 [DEBUG][       Thread-261501][   transport.py][1871] : userauth is OK
2025-06-13 16:49:14,184 [DEBUG][       Thread-261501][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 16:49:14,184 [DEBUG][       Thread-261501][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 16:49:14,184 [DEBUG][       Thread-261501][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 16:49:14,184 [DEBUG][       Thread-261501][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 16:49:14,208 [ INFO][       Thread-261501][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 16:49:14,208 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 16:49:14,208 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 16:49:15,192 [DEBUG][       Thread-261501][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 16:49:15,192 [DEBUG][       Thread-261501][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 16:49:15,244 [DEBUG][       Thread-261501][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 16:49:15,244 [DEBUG][       Thread-261501][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 16:49:15,253 [DEBUG][       Thread-261501][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 16:49:15,262 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 16:49:15,262 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 16:49:15,270 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 16:49:15,280 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 16:49:15,280 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 16:49:15,280 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 16:49:15,289 [DEBUG][       Thread-261501][   transport.py][1871] : EOF in transport thread
2025-06-13 16:49:17,717 [DEBUG][Thread-261503 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:49:18,802 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:49:18,803 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:49:19,593 [DEBUG][Thread-261504 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:49:20,753 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:49:20,754 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:49:24,222 [DEBUG][Thread-261505 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:49:25,288 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 16:49:25,288 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 16:49:25,288 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 16:49:25,289 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 16:49:25,773 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 16, 49, 4), 16.45, 31.74, 0.0, 15.58, 13.36, 0, 0, 0, 2, 0, 0),)
2025-06-13 16:49:25,773 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 16:49:04
2025-06-13 16:49:25,854 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 16:49:25,859 [DEBUG][       Thread-261506][   transport.py][1871] : starting thread (client mode): 0x863cb160
2025-06-13 16:49:25,859 [DEBUG][       Thread-261506][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 16:49:25,880 [DEBUG][       Thread-261506][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 16:49:25,880 [ INFO][       Thread-261506][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 16:49:25,883 [DEBUG][       Thread-261506][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 16:49:25,883 [DEBUG][       Thread-261506][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 16:49:25,883 [DEBUG][       Thread-261506][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 16:49:25,883 [DEBUG][       Thread-261506][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:49:25,883 [DEBUG][       Thread-261506][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:49:25,883 [DEBUG][       Thread-261506][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:49:25,883 [DEBUG][       Thread-261506][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:49:25,884 [DEBUG][       Thread-261506][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 16:49:25,884 [DEBUG][       Thread-261506][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 16:49:25,884 [DEBUG][       Thread-261506][   transport.py][1871] : client lang: <none>
2025-06-13 16:49:25,884 [DEBUG][       Thread-261506][   transport.py][1871] : server lang: <none>
2025-06-13 16:49:25,884 [DEBUG][       Thread-261506][   transport.py][1871] : kex follows: False
2025-06-13 16:49:25,884 [DEBUG][       Thread-261506][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 16:49:25,884 [DEBUG][       Thread-261506][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 16:49:25,884 [DEBUG][       Thread-261506][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 16:49:25,884 [DEBUG][       Thread-261506][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 16:49:25,884 [DEBUG][       Thread-261506][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 16:49:25,884 [DEBUG][       Thread-261506][   transport.py][1871] : Compression: none
2025-06-13 16:49:25,884 [DEBUG][       Thread-261506][   transport.py][1871] : === End of kex handshake ===
2025-06-13 16:49:25,900 [DEBUG][       Thread-261506][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 16:49:25,900 [DEBUG][       Thread-261506][   transport.py][1871] : Switch to new keys ...
2025-06-13 16:49:25,900 [DEBUG][       Thread-261506][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 16:49:25,900 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 16:49:25,900 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 16:49:25,901 [DEBUG][       Thread-261506][   transport.py][1871] : userauth is OK
2025-06-13 16:49:25,925 [ INFO][       Thread-261506][   transport.py][1871] : Authentication (password) successful!
2025-06-13 16:49:25,925 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 16:49:26,578 [DEBUG][       Thread-261506][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 16:49:26,578 [DEBUG][       Thread-261506][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 16:49:26,624 [DEBUG][       Thread-261506][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 16:49:26,624 [DEBUG][       Thread-261506][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 16:49:26,627 [DEBUG][       Thread-261506][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 16:49:26,639 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 16:49:26,639 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 16:49:26,641 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 16:49:26,641 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 16:49:26,644 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 16:49:26,644 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 16:49:26,644 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 16:49:26,645 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 16:49:26,645 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.617296 -999.00  +13.30  16.53     36   -1.10 1 1 1 1 1   887    0 13.40 -39.97 ----- 18.3 16.5 55.6 19.1 15.5 -28.9 15.0 -29.0 15.4 -29.1 16.1 -28.1
2025-06-13 16:49:26,645 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 16:49:26,645 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 16:49:26,645 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.617296
2025-06-13 16:49:26,645 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 16:49:26,645 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 16:49:26,645 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 16:49:26,645 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 16:49:26,645 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 16:49:26,645 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T16:49:04', tmtdew=16.45, humidity=31.74, cloud=0.0, wind=15.58, temperature=13.36, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T14:48:54.374', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 16:49:26,645 [DEBUG][       Thread-261506][   transport.py][1871] : EOF in transport thread
2025-06-13 16:49:26,716 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 16:49:26,725 [DEBUG][       Thread-261509][   transport.py][1871] : starting thread (client mode): 0x868c8520
2025-06-13 16:49:26,725 [DEBUG][       Thread-261509][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 16:49:26,740 [DEBUG][       Thread-261509][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 16:49:26,740 [ INFO][       Thread-261509][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 16:49:26,748 [DEBUG][       Thread-261509][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 16:49:26,748 [DEBUG][       Thread-261509][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 16:49:26,748 [DEBUG][       Thread-261509][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 16:49:26,748 [DEBUG][       Thread-261509][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:49:26,748 [DEBUG][       Thread-261509][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:49:26,748 [DEBUG][       Thread-261509][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:49:26,748 [DEBUG][       Thread-261509][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:49:26,748 [DEBUG][       Thread-261509][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 16:49:26,748 [DEBUG][       Thread-261509][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 16:49:26,748 [DEBUG][       Thread-261509][   transport.py][1871] : client lang: <none>
2025-06-13 16:49:26,748 [DEBUG][       Thread-261509][   transport.py][1871] : server lang: <none>
2025-06-13 16:49:26,748 [DEBUG][       Thread-261509][   transport.py][1871] : kex follows: False
2025-06-13 16:49:26,748 [DEBUG][       Thread-261509][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 16:49:26,748 [DEBUG][       Thread-261509][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 16:49:26,748 [DEBUG][       Thread-261509][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 16:49:26,749 [DEBUG][       Thread-261509][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 16:49:26,749 [DEBUG][       Thread-261509][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 16:49:26,749 [DEBUG][       Thread-261509][   transport.py][1871] : Compression: none
2025-06-13 16:49:26,749 [DEBUG][       Thread-261509][   transport.py][1871] : === End of kex handshake ===
2025-06-13 16:49:26,808 [DEBUG][       Thread-261509][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 16:49:26,809 [DEBUG][       Thread-261509][   transport.py][1871] : Switch to new keys ...
2025-06-13 16:49:26,809 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 16:49:26,810 [DEBUG][       Thread-261509][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 16:49:26,810 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 16:49:26,864 [DEBUG][       Thread-261509][   transport.py][1871] : userauth is OK
2025-06-13 16:49:26,864 [DEBUG][       Thread-261509][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 16:49:26,865 [DEBUG][       Thread-261509][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 16:49:26,865 [DEBUG][       Thread-261509][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 16:49:26,865 [DEBUG][       Thread-261509][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 16:49:26,885 [ INFO][       Thread-261509][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 16:49:26,886 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 16:49:26,886 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 16:49:27,872 [DEBUG][       Thread-261509][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 16:49:27,872 [DEBUG][       Thread-261509][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 16:49:27,924 [DEBUG][       Thread-261509][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 16:49:27,924 [DEBUG][       Thread-261509][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 16:49:27,933 [DEBUG][       Thread-261509][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 16:49:27,943 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 16:49:27,943 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 16:49:27,951 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 16:49:27,960 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 16:49:27,961 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 16:49:27,961 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 16:49:27,969 [DEBUG][       Thread-261509][   transport.py][1871] : EOF in transport thread
2025-06-13 16:49:28,621 [DEBUG][Thread-261511 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:49:37,663 [DEBUG][Thread-261512 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:49:37,968 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 16:49:37,968 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 16:49:37,968 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 16:49:37,969 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 16:49:38,482 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 16, 49, 4), 16.45, 31.74, 0.0, 15.58, 13.36, 0, 0, 0, 2, 0, 0),)
2025-06-13 16:49:38,482 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 16:49:04
2025-06-13 16:49:38,570 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 16:49:38,576 [DEBUG][       Thread-261513][   transport.py][1871] : starting thread (client mode): 0x86392380
2025-06-13 16:49:38,576 [DEBUG][       Thread-261513][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 16:49:38,595 [DEBUG][       Thread-261513][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 16:49:38,595 [ INFO][       Thread-261513][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 16:49:38,597 [DEBUG][       Thread-261513][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 16:49:38,597 [DEBUG][       Thread-261513][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 16:49:38,597 [DEBUG][       Thread-261513][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 16:49:38,597 [DEBUG][       Thread-261513][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:49:38,597 [DEBUG][       Thread-261513][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:49:38,597 [DEBUG][       Thread-261513][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:49:38,597 [DEBUG][       Thread-261513][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:49:38,597 [DEBUG][       Thread-261513][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 16:49:38,597 [DEBUG][       Thread-261513][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 16:49:38,597 [DEBUG][       Thread-261513][   transport.py][1871] : client lang: <none>
2025-06-13 16:49:38,597 [DEBUG][       Thread-261513][   transport.py][1871] : server lang: <none>
2025-06-13 16:49:38,597 [DEBUG][       Thread-261513][   transport.py][1871] : kex follows: False
2025-06-13 16:49:38,597 [DEBUG][       Thread-261513][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 16:49:38,597 [DEBUG][       Thread-261513][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 16:49:38,597 [DEBUG][       Thread-261513][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 16:49:38,597 [DEBUG][       Thread-261513][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 16:49:38,597 [DEBUG][       Thread-261513][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 16:49:38,597 [DEBUG][       Thread-261513][   transport.py][1871] : Compression: none
2025-06-13 16:49:38,597 [DEBUG][       Thread-261513][   transport.py][1871] : === End of kex handshake ===
2025-06-13 16:49:38,604 [DEBUG][       Thread-261513][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 16:49:38,604 [DEBUG][       Thread-261513][   transport.py][1871] : Switch to new keys ...
2025-06-13 16:49:38,604 [DEBUG][       Thread-261513][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 16:49:38,604 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 16:49:38,604 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 16:49:38,605 [DEBUG][       Thread-261513][   transport.py][1871] : userauth is OK
2025-06-13 16:49:38,617 [ INFO][       Thread-261513][   transport.py][1871] : Authentication (password) successful!
2025-06-13 16:49:38,617 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 16:49:39,245 [DEBUG][       Thread-261513][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 16:49:39,245 [DEBUG][       Thread-261513][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 16:49:39,289 [DEBUG][       Thread-261513][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 16:49:39,289 [DEBUG][       Thread-261513][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 16:49:39,293 [DEBUG][       Thread-261513][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 16:49:39,304 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 16:49:39,305 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 16:49:39,307 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 16:49:39,308 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 16:49:39,314 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 16:49:39,316 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 16:49:39,316 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 16:49:39,316 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 16:49:39,317 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.617296 -999.00  +13.30  16.53     36   -1.10 1 1 1 1 1   887    0 13.40 -39.97 ----- 18.3 16.5 55.6 19.1 15.5 -28.9 15.0 -29.0 15.4 -29.1 16.1 -28.1
2025-06-13 16:49:39,317 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 16:49:39,317 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 16:49:39,317 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.617296
2025-06-13 16:49:39,317 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 16:49:39,318 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 16:49:39,318 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 16:49:39,318 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 16:49:39,318 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 16:49:39,318 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T16:49:04', tmtdew=16.45, humidity=31.74, cloud=0.0, wind=15.58, temperature=13.36, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T14:48:54.374', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 16:49:39,318 [DEBUG][       Thread-261513][   transport.py][1871] : EOF in transport thread
2025-06-13 16:49:39,402 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 16:49:39,414 [DEBUG][       Thread-261516][   transport.py][1871] : starting thread (client mode): 0x863507c0
2025-06-13 16:49:39,414 [DEBUG][       Thread-261516][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 16:49:39,429 [DEBUG][       Thread-261516][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 16:49:39,430 [ INFO][       Thread-261516][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 16:49:39,438 [DEBUG][       Thread-261516][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 16:49:39,438 [DEBUG][       Thread-261516][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 16:49:39,439 [DEBUG][       Thread-261516][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 16:49:39,439 [DEBUG][       Thread-261516][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:49:39,439 [DEBUG][       Thread-261516][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:49:39,439 [DEBUG][       Thread-261516][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:49:39,439 [DEBUG][       Thread-261516][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:49:39,439 [DEBUG][       Thread-261516][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 16:49:39,439 [DEBUG][       Thread-261516][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 16:49:39,439 [DEBUG][       Thread-261516][   transport.py][1871] : client lang: <none>
2025-06-13 16:49:39,439 [DEBUG][       Thread-261516][   transport.py][1871] : server lang: <none>
2025-06-13 16:49:39,439 [DEBUG][       Thread-261516][   transport.py][1871] : kex follows: False
2025-06-13 16:49:39,439 [DEBUG][       Thread-261516][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 16:49:39,439 [DEBUG][       Thread-261516][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 16:49:39,439 [DEBUG][       Thread-261516][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 16:49:39,439 [DEBUG][       Thread-261516][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 16:49:39,439 [DEBUG][       Thread-261516][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 16:49:39,439 [DEBUG][       Thread-261516][   transport.py][1871] : Compression: none
2025-06-13 16:49:39,439 [DEBUG][       Thread-261516][   transport.py][1871] : === End of kex handshake ===
2025-06-13 16:49:39,505 [DEBUG][       Thread-261516][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 16:49:39,506 [DEBUG][       Thread-261516][   transport.py][1871] : Switch to new keys ...
2025-06-13 16:49:39,506 [DEBUG][       Thread-261516][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 16:49:39,507 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 16:49:39,507 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 16:49:39,565 [DEBUG][       Thread-261516][   transport.py][1871] : userauth is OK
2025-06-13 16:49:39,565 [DEBUG][       Thread-261516][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 16:49:39,566 [DEBUG][       Thread-261516][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 16:49:39,566 [DEBUG][       Thread-261516][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 16:49:39,566 [DEBUG][       Thread-261516][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 16:49:39,587 [ INFO][       Thread-261516][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 16:49:39,588 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 16:49:39,588 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 16:49:40,562 [DEBUG][       Thread-261516][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 16:49:40,562 [DEBUG][       Thread-261516][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 16:49:40,620 [DEBUG][       Thread-261516][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 16:49:40,620 [DEBUG][       Thread-261516][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 16:49:40,630 [DEBUG][       Thread-261516][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 16:49:40,638 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 16:49:40,638 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 16:49:40,647 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 16:49:40,656 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 16:49:40,656 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 16:49:40,657 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 16:49:40,665 [DEBUG][       Thread-261516][   transport.py][1871] : EOF in transport thread
2025-06-13 16:49:46,682 [DEBUG][Thread-261518 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:49:50,667 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 16:49:50,667 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 16:49:50,668 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 16:49:50,671 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 16:49:51,154 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 16, 49, 36), 16.44, 32.03, 0.0, 16.06, 13.35, 0, 0, 0, 2, 0, 0),)
2025-06-13 16:49:51,154 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 16:49:36
2025-06-13 16:49:51,236 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 16:49:51,240 [DEBUG][       Thread-261519][   transport.py][1871] : starting thread (client mode): 0x867ffeb0
2025-06-13 16:49:51,240 [DEBUG][       Thread-261519][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 16:49:51,261 [DEBUG][       Thread-261519][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 16:49:51,261 [ INFO][       Thread-261519][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 16:49:51,264 [DEBUG][       Thread-261519][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 16:49:51,264 [DEBUG][       Thread-261519][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 16:49:51,264 [DEBUG][       Thread-261519][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 16:49:51,264 [DEBUG][       Thread-261519][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:49:51,265 [DEBUG][       Thread-261519][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:49:51,265 [DEBUG][       Thread-261519][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:49:51,265 [DEBUG][       Thread-261519][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:49:51,265 [DEBUG][       Thread-261519][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 16:49:51,265 [DEBUG][       Thread-261519][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 16:49:51,265 [DEBUG][       Thread-261519][   transport.py][1871] : client lang: <none>
2025-06-13 16:49:51,265 [DEBUG][       Thread-261519][   transport.py][1871] : server lang: <none>
2025-06-13 16:49:51,265 [DEBUG][       Thread-261519][   transport.py][1871] : kex follows: False
2025-06-13 16:49:51,265 [DEBUG][       Thread-261519][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 16:49:51,265 [DEBUG][       Thread-261519][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 16:49:51,265 [DEBUG][       Thread-261519][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 16:49:51,265 [DEBUG][       Thread-261519][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 16:49:51,265 [DEBUG][       Thread-261519][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 16:49:51,265 [DEBUG][       Thread-261519][   transport.py][1871] : Compression: none
2025-06-13 16:49:51,265 [DEBUG][       Thread-261519][   transport.py][1871] : === End of kex handshake ===
2025-06-13 16:49:51,281 [DEBUG][       Thread-261519][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 16:49:51,282 [DEBUG][       Thread-261519][   transport.py][1871] : Switch to new keys ...
2025-06-13 16:49:51,282 [DEBUG][       Thread-261519][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 16:49:51,282 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 16:49:51,283 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 16:49:51,284 [DEBUG][       Thread-261519][   transport.py][1871] : userauth is OK
2025-06-13 16:49:51,297 [ INFO][       Thread-261519][   transport.py][1871] : Authentication (password) successful!
2025-06-13 16:49:51,297 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 16:49:51,958 [DEBUG][       Thread-261519][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 16:49:51,958 [DEBUG][       Thread-261519][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 16:49:52,001 [DEBUG][       Thread-261519][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 16:49:52,001 [DEBUG][       Thread-261519][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 16:49:52,004 [DEBUG][       Thread-261519][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 16:49:52,016 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 16:49:52,016 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 16:49:52,018 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 16:49:52,020 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 16:49:52,027 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 16:49:52,029 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 16:49:52,029 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 16:49:52,030 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 16:49:52,030 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.617643 -999.00  +13.20  12.81     36   -1.20 1 1 1 1 1   887    0 13.47 -38.72 ----- 16.6 12.8 48.8 17.9 15.4 -28.9 15.0 -29.2 15.4 -28.6 16.1 -28.0
2025-06-13 16:49:52,030 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 16:49:52,030 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 16:49:52,030 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.617643
2025-06-13 16:49:52,031 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 16:49:52,031 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 16:49:52,032 [DEBUG][       Thread-261519][   transport.py][1871] : EOF in transport thread
2025-06-13 16:49:52,032 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 16:49:52,032 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 16:49:52,033 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 16:49:52,033 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T16:49:36', tmtdew=16.44, humidity=32.03, cloud=0.0, wind=16.06, temperature=13.35, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T14:49:24.355', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 16:49:52,116 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 16:49:52,125 [DEBUG][       Thread-261522][   transport.py][1871] : starting thread (client mode): 0x868c8520
2025-06-13 16:49:52,125 [DEBUG][       Thread-261522][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 16:49:52,140 [DEBUG][       Thread-261522][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 16:49:52,140 [ INFO][       Thread-261522][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 16:49:52,169 [DEBUG][       Thread-261522][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 16:49:52,169 [DEBUG][       Thread-261522][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 16:49:52,169 [DEBUG][       Thread-261522][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 16:49:52,169 [DEBUG][       Thread-261522][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:49:52,169 [DEBUG][       Thread-261522][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:49:52,170 [DEBUG][       Thread-261522][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:49:52,170 [DEBUG][       Thread-261522][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:49:52,170 [DEBUG][       Thread-261522][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 16:49:52,170 [DEBUG][       Thread-261522][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 16:49:52,170 [DEBUG][       Thread-261522][   transport.py][1871] : client lang: <none>
2025-06-13 16:49:52,170 [DEBUG][       Thread-261522][   transport.py][1871] : server lang: <none>
2025-06-13 16:49:52,170 [DEBUG][       Thread-261522][   transport.py][1871] : kex follows: False
2025-06-13 16:49:52,170 [DEBUG][       Thread-261522][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 16:49:52,170 [DEBUG][       Thread-261522][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 16:49:52,170 [DEBUG][       Thread-261522][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 16:49:52,170 [DEBUG][       Thread-261522][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 16:49:52,170 [DEBUG][       Thread-261522][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 16:49:52,170 [DEBUG][       Thread-261522][   transport.py][1871] : Compression: none
2025-06-13 16:49:52,170 [DEBUG][       Thread-261522][   transport.py][1871] : === End of kex handshake ===
2025-06-13 16:49:52,220 [DEBUG][       Thread-261522][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 16:49:52,221 [DEBUG][       Thread-261522][   transport.py][1871] : Switch to new keys ...
2025-06-13 16:49:52,221 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 16:49:52,222 [DEBUG][       Thread-261522][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 16:49:52,223 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 16:49:52,280 [DEBUG][       Thread-261522][   transport.py][1871] : userauth is OK
2025-06-13 16:49:52,280 [DEBUG][       Thread-261522][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 16:49:52,280 [DEBUG][       Thread-261522][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 16:49:52,281 [DEBUG][       Thread-261522][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 16:49:52,281 [DEBUG][       Thread-261522][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 16:49:52,299 [ INFO][       Thread-261522][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 16:49:52,300 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 16:49:52,300 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 16:49:53,293 [DEBUG][       Thread-261522][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 16:49:53,293 [DEBUG][       Thread-261522][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 16:49:53,348 [DEBUG][       Thread-261522][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 16:49:53,348 [DEBUG][       Thread-261522][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 16:49:53,358 [DEBUG][       Thread-261522][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 16:49:53,371 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 16:49:53,371 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 16:49:53,380 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 16:49:53,389 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 16:49:53,390 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 16:49:53,390 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 16:49:53,398 [DEBUG][       Thread-261522][   transport.py][1871] : EOF in transport thread
2025-06-13 16:49:55,702 [DEBUG][Thread-261524 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:50:03,392 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 16:50:03,392 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 16:50:03,392 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 16:50:03,393 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 16:50:03,890 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 16, 49, 36), 16.44, 32.03, 0.0, 16.06, 13.35, 0, 0, 0, 2, 0, 0),)
2025-06-13 16:50:03,890 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 16:49:36
2025-06-13 16:50:03,975 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 16:50:03,980 [DEBUG][       Thread-261525][   transport.py][1871] : starting thread (client mode): 0x867ff430
2025-06-13 16:50:03,980 [DEBUG][       Thread-261525][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 16:50:04,000 [DEBUG][       Thread-261525][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 16:50:04,000 [ INFO][       Thread-261525][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 16:50:04,003 [DEBUG][       Thread-261525][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 16:50:04,003 [DEBUG][       Thread-261525][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 16:50:04,003 [DEBUG][       Thread-261525][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 16:50:04,003 [DEBUG][       Thread-261525][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:50:04,003 [DEBUG][       Thread-261525][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:50:04,003 [DEBUG][       Thread-261525][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:50:04,003 [DEBUG][       Thread-261525][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:50:04,003 [DEBUG][       Thread-261525][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 16:50:04,003 [DEBUG][       Thread-261525][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 16:50:04,003 [DEBUG][       Thread-261525][   transport.py][1871] : client lang: <none>
2025-06-13 16:50:04,003 [DEBUG][       Thread-261525][   transport.py][1871] : server lang: <none>
2025-06-13 16:50:04,003 [DEBUG][       Thread-261525][   transport.py][1871] : kex follows: False
2025-06-13 16:50:04,003 [DEBUG][       Thread-261525][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 16:50:04,003 [DEBUG][       Thread-261525][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 16:50:04,003 [DEBUG][       Thread-261525][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 16:50:04,003 [DEBUG][       Thread-261525][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 16:50:04,004 [DEBUG][       Thread-261525][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 16:50:04,004 [DEBUG][       Thread-261525][   transport.py][1871] : Compression: none
2025-06-13 16:50:04,004 [DEBUG][       Thread-261525][   transport.py][1871] : === End of kex handshake ===
2025-06-13 16:50:04,010 [DEBUG][       Thread-261525][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 16:50:04,010 [DEBUG][       Thread-261525][   transport.py][1871] : Switch to new keys ...
2025-06-13 16:50:04,011 [DEBUG][       Thread-261525][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 16:50:04,011 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 16:50:04,011 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 16:50:04,011 [DEBUG][       Thread-261525][   transport.py][1871] : userauth is OK
2025-06-13 16:50:04,024 [ INFO][       Thread-261525][   transport.py][1871] : Authentication (password) successful!
2025-06-13 16:50:04,024 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 16:50:04,741 [DEBUG][Thread-261527 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:50:09,942 [DEBUG][       Thread-261525][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 16:50:09,942 [DEBUG][       Thread-261525][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 16:50:09,985 [DEBUG][       Thread-261525][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 16:50:09,985 [DEBUG][       Thread-261525][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 16:50:09,987 [DEBUG][       Thread-261525][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 16:50:10,001 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 16:50:10,001 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 16:50:10,002 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 16:50:10,003 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 16:50:10,008 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 16:50:10,009 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 16:50:10,009 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 16:50:10,009 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 16:50:10,009 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.617643 -999.00  +13.20  12.81     36   -1.20 1 1 1 1 1   887    0 13.47 -38.72 ----- 16.6 12.8 48.8 17.9 15.4 -28.9 15.0 -29.2 15.4 -28.6 16.1 -28.0
2025-06-13 16:50:10,009 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 16:50:10,009 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 16:50:10,009 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.617643
2025-06-13 16:50:10,009 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 16:50:10,009 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 16:50:10,009 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 16:50:10,009 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 16:50:10,009 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 16:50:10,009 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T16:49:36', tmtdew=16.44, humidity=32.03, cloud=0.0, wind=16.06, temperature=13.35, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T14:49:24.355', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 16:50:10,010 [DEBUG][       Thread-261525][   transport.py][1871] : EOF in transport thread
2025-06-13 16:50:10,086 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 16:50:10,098 [DEBUG][       Thread-261529][   transport.py][1871] : starting thread (client mode): 0x86353280
2025-06-13 16:50:10,098 [DEBUG][       Thread-261529][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 16:50:10,114 [DEBUG][       Thread-261529][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 16:50:10,114 [ INFO][       Thread-261529][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 16:50:10,123 [DEBUG][       Thread-261529][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 16:50:10,123 [DEBUG][       Thread-261529][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 16:50:10,123 [DEBUG][       Thread-261529][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 16:50:10,124 [DEBUG][       Thread-261529][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:50:10,124 [DEBUG][       Thread-261529][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:50:10,124 [DEBUG][       Thread-261529][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:50:10,124 [DEBUG][       Thread-261529][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:50:10,124 [DEBUG][       Thread-261529][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 16:50:10,124 [DEBUG][       Thread-261529][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 16:50:10,124 [DEBUG][       Thread-261529][   transport.py][1871] : client lang: <none>
2025-06-13 16:50:10,124 [DEBUG][       Thread-261529][   transport.py][1871] : server lang: <none>
2025-06-13 16:50:10,124 [DEBUG][       Thread-261529][   transport.py][1871] : kex follows: False
2025-06-13 16:50:10,124 [DEBUG][       Thread-261529][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 16:50:10,124 [DEBUG][       Thread-261529][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 16:50:10,124 [DEBUG][       Thread-261529][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 16:50:10,124 [DEBUG][       Thread-261529][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 16:50:10,124 [DEBUG][       Thread-261529][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 16:50:10,124 [DEBUG][       Thread-261529][   transport.py][1871] : Compression: none
2025-06-13 16:50:10,124 [DEBUG][       Thread-261529][   transport.py][1871] : === End of kex handshake ===
2025-06-13 16:50:10,183 [DEBUG][       Thread-261529][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 16:50:10,183 [DEBUG][       Thread-261529][   transport.py][1871] : Switch to new keys ...
2025-06-13 16:50:10,183 [DEBUG][       Thread-261529][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 16:50:10,183 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 16:50:10,183 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 16:50:10,240 [DEBUG][       Thread-261529][   transport.py][1871] : userauth is OK
2025-06-13 16:50:10,240 [DEBUG][       Thread-261529][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 16:50:10,240 [DEBUG][       Thread-261529][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 16:50:10,240 [DEBUG][       Thread-261529][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 16:50:10,240 [DEBUG][       Thread-261529][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 16:50:10,254 [ INFO][       Thread-261529][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 16:50:10,254 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 16:50:10,254 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 16:50:11,238 [DEBUG][       Thread-261529][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 16:50:11,238 [DEBUG][       Thread-261529][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 16:50:11,291 [DEBUG][       Thread-261529][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 16:50:11,291 [DEBUG][       Thread-261529][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 16:50:11,302 [DEBUG][       Thread-261529][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 16:50:11,315 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 16:50:11,315 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 16:50:11,328 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 16:50:11,347 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 16:50:11,347 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 16:50:11,348 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 16:50:11,359 [DEBUG][       Thread-261529][   transport.py][1871] : EOF in transport thread
2025-06-13 16:50:13,761 [DEBUG][Thread-261531 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:50:18,886 [DEBUG][Thread-261532 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:50:19,964 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:50:19,965 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:50:20,914 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:50:20,914 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:50:21,358 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 16:50:21,358 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 16:50:21,358 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 16:50:21,361 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 16:50:21,851 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 16, 50, 8), 16.39, 31.99, 0.0, 13.78, 13.33, 0, 0, 0, 2, 0, 0),)
2025-06-13 16:50:21,851 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 16:50:08
2025-06-13 16:50:21,933 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 16:50:21,937 [DEBUG][       Thread-261533][   transport.py][1871] : starting thread (client mode): 0x863c88e0
2025-06-13 16:50:21,937 [DEBUG][       Thread-261533][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 16:50:21,954 [DEBUG][       Thread-261533][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 16:50:21,954 [ INFO][       Thread-261533][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 16:50:21,955 [DEBUG][       Thread-261533][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 16:50:21,956 [DEBUG][       Thread-261533][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 16:50:21,956 [DEBUG][       Thread-261533][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 16:50:21,956 [DEBUG][       Thread-261533][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:50:21,956 [DEBUG][       Thread-261533][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:50:21,956 [DEBUG][       Thread-261533][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:50:21,956 [DEBUG][       Thread-261533][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:50:21,956 [DEBUG][       Thread-261533][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 16:50:21,956 [DEBUG][       Thread-261533][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 16:50:21,956 [DEBUG][       Thread-261533][   transport.py][1871] : client lang: <none>
2025-06-13 16:50:21,956 [DEBUG][       Thread-261533][   transport.py][1871] : server lang: <none>
2025-06-13 16:50:21,956 [DEBUG][       Thread-261533][   transport.py][1871] : kex follows: False
2025-06-13 16:50:21,956 [DEBUG][       Thread-261533][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 16:50:21,956 [DEBUG][       Thread-261533][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 16:50:21,956 [DEBUG][       Thread-261533][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 16:50:21,956 [DEBUG][       Thread-261533][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 16:50:21,956 [DEBUG][       Thread-261533][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 16:50:21,956 [DEBUG][       Thread-261533][   transport.py][1871] : Compression: none
2025-06-13 16:50:21,956 [DEBUG][       Thread-261533][   transport.py][1871] : === End of kex handshake ===
2025-06-13 16:50:21,964 [DEBUG][       Thread-261533][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 16:50:21,964 [DEBUG][       Thread-261533][   transport.py][1871] : Switch to new keys ...
2025-06-13 16:50:21,964 [DEBUG][       Thread-261533][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 16:50:21,965 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 16:50:21,965 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 16:50:21,966 [DEBUG][       Thread-261533][   transport.py][1871] : userauth is OK
2025-06-13 16:50:21,978 [ INFO][       Thread-261533][   transport.py][1871] : Authentication (password) successful!
2025-06-13 16:50:21,979 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 16:50:22,548 [DEBUG][       Thread-261533][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 16:50:22,548 [DEBUG][       Thread-261533][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 16:50:22,589 [DEBUG][       Thread-261533][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 16:50:22,589 [DEBUG][       Thread-261533][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 16:50:22,591 [DEBUG][       Thread-261533][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 16:50:22,600 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 16:50:22,600 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 16:50:22,602 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 16:50:22,603 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 16:50:22,608 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 16:50:22,609 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 16:50:22,610 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 16:50:22,610 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 16:50:22,611 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.617990 -999.00  +13.20  14.72     37   -1.10 1 1 1 1 1   887    0 13.37 -39.17 ----- 15.0 14.7 51.2 19.1 15.5 -28.7 14.9 -29.1 15.4 -28.6 16.1 -28.4
2025-06-13 16:50:22,611 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 16:50:22,611 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 16:50:22,611 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.617990
2025-06-13 16:50:22,611 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 16:50:22,612 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 16:50:22,612 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 16:50:22,612 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 16:50:22,612 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 16:50:22,612 [DEBUG][       Thread-261533][   transport.py][1871] : EOF in transport thread
2025-06-13 16:50:22,613 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T16:50:08', tmtdew=16.39, humidity=31.99, cloud=0.0, wind=13.78, temperature=13.33, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T14:49:54.336', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 16:50:22,697 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 16:50:22,707 [DEBUG][       Thread-261536][   transport.py][1871] : starting thread (client mode): 0x863bea70
2025-06-13 16:50:22,707 [DEBUG][       Thread-261536][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 16:50:22,722 [DEBUG][       Thread-261536][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 16:50:22,722 [ INFO][       Thread-261536][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 16:50:22,730 [DEBUG][       Thread-261536][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 16:50:22,730 [DEBUG][       Thread-261536][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 16:50:22,730 [DEBUG][       Thread-261536][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 16:50:22,730 [DEBUG][       Thread-261536][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:50:22,730 [DEBUG][       Thread-261536][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:50:22,730 [DEBUG][       Thread-261536][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:50:22,730 [DEBUG][       Thread-261536][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:50:22,730 [DEBUG][       Thread-261536][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 16:50:22,730 [DEBUG][       Thread-261536][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 16:50:22,730 [DEBUG][       Thread-261536][   transport.py][1871] : client lang: <none>
2025-06-13 16:50:22,730 [DEBUG][       Thread-261536][   transport.py][1871] : server lang: <none>
2025-06-13 16:50:22,730 [DEBUG][       Thread-261536][   transport.py][1871] : kex follows: False
2025-06-13 16:50:22,730 [DEBUG][       Thread-261536][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 16:50:22,730 [DEBUG][       Thread-261536][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 16:50:22,730 [DEBUG][       Thread-261536][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 16:50:22,730 [DEBUG][       Thread-261536][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 16:50:22,731 [DEBUG][       Thread-261536][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 16:50:22,731 [DEBUG][       Thread-261536][   transport.py][1871] : Compression: none
2025-06-13 16:50:22,731 [DEBUG][       Thread-261536][   transport.py][1871] : === End of kex handshake ===
2025-06-13 16:50:22,781 [DEBUG][Thread-261538 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:50:22,787 [DEBUG][       Thread-261536][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 16:50:22,788 [DEBUG][       Thread-261536][   transport.py][1871] : Switch to new keys ...
2025-06-13 16:50:22,788 [DEBUG][       Thread-261536][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 16:50:22,789 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 16:50:22,789 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 16:50:22,844 [DEBUG][       Thread-261536][   transport.py][1871] : userauth is OK
2025-06-13 16:50:22,845 [DEBUG][       Thread-261536][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 16:50:22,845 [DEBUG][       Thread-261536][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 16:50:22,845 [DEBUG][       Thread-261536][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 16:50:22,845 [DEBUG][       Thread-261536][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 16:50:22,864 [ INFO][       Thread-261536][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 16:50:22,864 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 16:50:22,865 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 16:50:23,875 [DEBUG][       Thread-261536][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 16:50:23,875 [DEBUG][       Thread-261536][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 16:50:23,924 [DEBUG][       Thread-261536][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 16:50:23,924 [DEBUG][       Thread-261536][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 16:50:23,933 [DEBUG][       Thread-261536][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 16:50:23,942 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 16:50:23,943 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 16:50:23,952 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 16:50:23,961 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 16:50:23,961 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 16:50:23,962 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 16:50:23,970 [DEBUG][       Thread-261536][   transport.py][1871] : EOF in transport thread
2025-06-13 16:50:24,274 [DEBUG][Thread-261539 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:50:31,823 [DEBUG][Thread-261540 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:50:33,972 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 16:50:33,972 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 16:50:33,972 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 16:50:33,975 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 16:50:34,457 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 16, 50, 8), 16.39, 31.99, 0.0, 13.78, 13.33, 0, 0, 0, 2, 0, 0),)
2025-06-13 16:50:34,457 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 16:50:08
2025-06-13 16:50:34,538 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 16:50:34,541 [DEBUG][       Thread-261541][   transport.py][1871] : starting thread (client mode): 0x867fc820
2025-06-13 16:50:34,542 [DEBUG][       Thread-261541][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 16:50:34,557 [DEBUG][       Thread-261541][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 16:50:34,557 [ INFO][       Thread-261541][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 16:50:34,561 [DEBUG][       Thread-261541][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 16:50:34,561 [DEBUG][       Thread-261541][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 16:50:34,561 [DEBUG][       Thread-261541][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 16:50:34,561 [DEBUG][       Thread-261541][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:50:34,561 [DEBUG][       Thread-261541][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:50:34,561 [DEBUG][       Thread-261541][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:50:34,561 [DEBUG][       Thread-261541][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:50:34,561 [DEBUG][       Thread-261541][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 16:50:34,561 [DEBUG][       Thread-261541][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 16:50:34,561 [DEBUG][       Thread-261541][   transport.py][1871] : client lang: <none>
2025-06-13 16:50:34,561 [DEBUG][       Thread-261541][   transport.py][1871] : server lang: <none>
2025-06-13 16:50:34,561 [DEBUG][       Thread-261541][   transport.py][1871] : kex follows: False
2025-06-13 16:50:34,561 [DEBUG][       Thread-261541][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 16:50:34,561 [DEBUG][       Thread-261541][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 16:50:34,561 [DEBUG][       Thread-261541][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 16:50:34,561 [DEBUG][       Thread-261541][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 16:50:34,561 [DEBUG][       Thread-261541][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 16:50:34,561 [DEBUG][       Thread-261541][   transport.py][1871] : Compression: none
2025-06-13 16:50:34,561 [DEBUG][       Thread-261541][   transport.py][1871] : === End of kex handshake ===
2025-06-13 16:50:34,576 [DEBUG][       Thread-261541][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 16:50:34,577 [DEBUG][       Thread-261541][   transport.py][1871] : Switch to new keys ...
2025-06-13 16:50:34,577 [DEBUG][       Thread-261541][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 16:50:34,578 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 16:50:34,578 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 16:50:34,579 [DEBUG][       Thread-261541][   transport.py][1871] : userauth is OK
2025-06-13 16:50:34,592 [ INFO][       Thread-261541][   transport.py][1871] : Authentication (password) successful!
2025-06-13 16:50:34,592 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 16:50:35,204 [DEBUG][       Thread-261541][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 16:50:35,205 [DEBUG][       Thread-261541][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 16:50:35,248 [DEBUG][       Thread-261541][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 16:50:35,249 [DEBUG][       Thread-261541][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 16:50:35,251 [DEBUG][       Thread-261541][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 16:50:35,264 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 16:50:35,265 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 16:50:35,266 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 16:50:35,268 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 16:50:35,273 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 16:50:35,274 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 16:50:35,275 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 16:50:35,275 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 16:50:35,275 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.617990 -999.00  +13.20  14.72     37   -1.10 1 1 1 1 1   887    0 13.37 -39.17 ----- 15.0 14.7 51.2 19.1 15.5 -28.7 14.9 -29.1 15.4 -28.6 16.1 -28.4
2025-06-13 16:50:35,275 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 16:50:35,275 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 16:50:35,275 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.617990
2025-06-13 16:50:35,276 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 16:50:35,276 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 16:50:35,276 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 16:50:35,277 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 16:50:35,277 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 16:50:35,277 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T16:50:08', tmtdew=16.39, humidity=31.99, cloud=0.0, wind=13.78, temperature=13.33, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T14:49:54.336', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 16:50:35,278 [DEBUG][       Thread-261541][   transport.py][1871] : EOF in transport thread
2025-06-13 16:50:35,360 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 16:50:35,371 [DEBUG][       Thread-261544][   transport.py][1871] : starting thread (client mode): 0x863ef5b0
2025-06-13 16:50:35,371 [DEBUG][       Thread-261544][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 16:50:35,385 [DEBUG][       Thread-261544][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 16:50:35,385 [ INFO][       Thread-261544][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 16:50:35,393 [DEBUG][       Thread-261544][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 16:50:35,393 [DEBUG][       Thread-261544][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 16:50:35,393 [DEBUG][       Thread-261544][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 16:50:35,393 [DEBUG][       Thread-261544][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:50:35,393 [DEBUG][       Thread-261544][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:50:35,393 [DEBUG][       Thread-261544][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:50:35,393 [DEBUG][       Thread-261544][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:50:35,394 [DEBUG][       Thread-261544][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 16:50:35,394 [DEBUG][       Thread-261544][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 16:50:35,394 [DEBUG][       Thread-261544][   transport.py][1871] : client lang: <none>
2025-06-13 16:50:35,394 [DEBUG][       Thread-261544][   transport.py][1871] : server lang: <none>
2025-06-13 16:50:35,394 [DEBUG][       Thread-261544][   transport.py][1871] : kex follows: False
2025-06-13 16:50:35,394 [DEBUG][       Thread-261544][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 16:50:35,394 [DEBUG][       Thread-261544][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 16:50:35,394 [DEBUG][       Thread-261544][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 16:50:35,394 [DEBUG][       Thread-261544][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 16:50:35,395 [DEBUG][       Thread-261544][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 16:50:35,395 [DEBUG][       Thread-261544][   transport.py][1871] : Compression: none
2025-06-13 16:50:35,395 [DEBUG][       Thread-261544][   transport.py][1871] : === End of kex handshake ===
2025-06-13 16:50:35,451 [DEBUG][       Thread-261544][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 16:50:35,451 [DEBUG][       Thread-261544][   transport.py][1871] : Switch to new keys ...
2025-06-13 16:50:35,451 [DEBUG][       Thread-261544][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 16:50:35,451 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 16:50:35,452 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 16:50:35,512 [DEBUG][       Thread-261544][   transport.py][1871] : userauth is OK
2025-06-13 16:50:35,512 [DEBUG][       Thread-261544][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 16:50:35,512 [DEBUG][       Thread-261544][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 16:50:35,512 [DEBUG][       Thread-261544][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 16:50:35,512 [DEBUG][       Thread-261544][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 16:50:35,533 [ INFO][       Thread-261544][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 16:50:35,533 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 16:50:35,534 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 16:50:36,553 [DEBUG][       Thread-261544][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 16:50:36,554 [DEBUG][       Thread-261544][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 16:50:36,603 [DEBUG][       Thread-261544][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 16:50:36,603 [DEBUG][       Thread-261544][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 16:50:36,612 [DEBUG][       Thread-261544][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 16:50:36,620 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 16:50:36,620 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 16:50:36,632 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 16:50:36,640 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 16:50:36,640 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 16:50:36,641 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 16:50:36,648 [DEBUG][       Thread-261544][   transport.py][1871] : EOF in transport thread
2025-06-13 16:50:40,840 [DEBUG][Thread-261546 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:50:46,651 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 16:50:46,651 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 16:50:46,652 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 16:50:46,655 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 16:50:47,120 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 16, 50, 40), 16.37, 32.03, 0.0, 12.92, 13.35, 0, 0, 0, 2, 0, 0),)
2025-06-13 16:50:47,120 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 16:50:40
2025-06-13 16:50:47,202 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 16:50:47,206 [DEBUG][       Thread-261547][   transport.py][1871] : starting thread (client mode): 0x867ff3d0
2025-06-13 16:50:47,206 [DEBUG][       Thread-261547][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 16:50:47,228 [DEBUG][       Thread-261547][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 16:50:47,228 [ INFO][       Thread-261547][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 16:50:47,232 [DEBUG][       Thread-261547][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 16:50:47,232 [DEBUG][       Thread-261547][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 16:50:47,232 [DEBUG][       Thread-261547][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 16:50:47,232 [DEBUG][       Thread-261547][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:50:47,233 [DEBUG][       Thread-261547][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:50:47,233 [DEBUG][       Thread-261547][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:50:47,233 [DEBUG][       Thread-261547][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:50:47,233 [DEBUG][       Thread-261547][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 16:50:47,233 [DEBUG][       Thread-261547][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 16:50:47,233 [DEBUG][       Thread-261547][   transport.py][1871] : client lang: <none>
2025-06-13 16:50:47,233 [DEBUG][       Thread-261547][   transport.py][1871] : server lang: <none>
2025-06-13 16:50:47,233 [DEBUG][       Thread-261547][   transport.py][1871] : kex follows: False
2025-06-13 16:50:47,233 [DEBUG][       Thread-261547][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 16:50:47,233 [DEBUG][       Thread-261547][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 16:50:47,233 [DEBUG][       Thread-261547][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 16:50:47,233 [DEBUG][       Thread-261547][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 16:50:47,233 [DEBUG][       Thread-261547][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 16:50:47,233 [DEBUG][       Thread-261547][   transport.py][1871] : Compression: none
2025-06-13 16:50:47,233 [DEBUG][       Thread-261547][   transport.py][1871] : === End of kex handshake ===
2025-06-13 16:50:47,250 [DEBUG][       Thread-261547][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 16:50:47,251 [DEBUG][       Thread-261547][   transport.py][1871] : Switch to new keys ...
2025-06-13 16:50:47,251 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 16:50:47,251 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 16:50:47,252 [DEBUG][       Thread-261547][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 16:50:47,253 [DEBUG][       Thread-261547][   transport.py][1871] : userauth is OK
2025-06-13 16:50:47,277 [ INFO][       Thread-261547][   transport.py][1871] : Authentication (password) successful!
2025-06-13 16:50:47,277 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 16:50:47,936 [DEBUG][       Thread-261547][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 16:50:47,936 [DEBUG][       Thread-261547][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 16:50:47,977 [DEBUG][       Thread-261547][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 16:50:47,977 [DEBUG][       Thread-261547][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 16:50:47,981 [DEBUG][       Thread-261547][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 16:50:47,992 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 16:50:47,993 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 16:50:47,995 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 16:50:47,997 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 16:50:48,003 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 16:50:48,005 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 16:50:48,005 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 16:50:48,006 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 16:50:48,006 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.617990 -999.00  +13.20  14.72     37   -1.10 1 1 1 1 1   887    0 13.37 -39.17 ----- 15.0 14.7 51.2 19.1 15.5 -28.7 14.9 -29.1 15.4 -28.6 16.1 -28.4
2025-06-13 16:50:48,006 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 16:50:48,006 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 16:50:48,006 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.617990
2025-06-13 16:50:48,007 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 16:50:48,007 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 16:50:48,007 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 16:50:48,007 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 16:50:48,007 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 16:50:48,008 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T16:50:40', tmtdew=16.37, humidity=32.03, cloud=0.0, wind=12.92, temperature=13.35, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T14:49:54.336', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 16:50:48,009 [DEBUG][       Thread-261547][   transport.py][1871] : EOF in transport thread
2025-06-13 16:50:48,101 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 16:50:48,111 [DEBUG][       Thread-261550][   transport.py][1871] : starting thread (client mode): 0x86392740
2025-06-13 16:50:48,111 [DEBUG][       Thread-261550][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 16:50:48,125 [DEBUG][       Thread-261550][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 16:50:48,125 [ INFO][       Thread-261550][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 16:50:48,133 [DEBUG][       Thread-261550][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 16:50:48,133 [DEBUG][       Thread-261550][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 16:50:48,133 [DEBUG][       Thread-261550][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 16:50:48,133 [DEBUG][       Thread-261550][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:50:48,133 [DEBUG][       Thread-261550][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:50:48,133 [DEBUG][       Thread-261550][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:50:48,133 [DEBUG][       Thread-261550][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:50:48,133 [DEBUG][       Thread-261550][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 16:50:48,133 [DEBUG][       Thread-261550][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 16:50:48,133 [DEBUG][       Thread-261550][   transport.py][1871] : client lang: <none>
2025-06-13 16:50:48,133 [DEBUG][       Thread-261550][   transport.py][1871] : server lang: <none>
2025-06-13 16:50:48,133 [DEBUG][       Thread-261550][   transport.py][1871] : kex follows: False
2025-06-13 16:50:48,133 [DEBUG][       Thread-261550][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 16:50:48,133 [DEBUG][       Thread-261550][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 16:50:48,133 [DEBUG][       Thread-261550][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 16:50:48,133 [DEBUG][       Thread-261550][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 16:50:48,133 [DEBUG][       Thread-261550][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 16:50:48,133 [DEBUG][       Thread-261550][   transport.py][1871] : Compression: none
2025-06-13 16:50:48,133 [DEBUG][       Thread-261550][   transport.py][1871] : === End of kex handshake ===
2025-06-13 16:50:48,192 [DEBUG][       Thread-261550][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 16:50:48,193 [DEBUG][       Thread-261550][   transport.py][1871] : Switch to new keys ...
2025-06-13 16:50:48,193 [DEBUG][       Thread-261550][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 16:50:48,194 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 16:50:48,194 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 16:50:48,255 [DEBUG][       Thread-261550][   transport.py][1871] : userauth is OK
2025-06-13 16:50:48,255 [DEBUG][       Thread-261550][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 16:50:48,255 [DEBUG][       Thread-261550][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 16:50:48,255 [DEBUG][       Thread-261550][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 16:50:48,255 [DEBUG][       Thread-261550][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 16:50:48,276 [ INFO][       Thread-261550][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 16:50:48,276 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 16:50:48,276 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 16:50:49,293 [DEBUG][       Thread-261550][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 16:50:49,294 [DEBUG][       Thread-261550][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 16:50:49,346 [DEBUG][       Thread-261550][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 16:50:49,346 [DEBUG][       Thread-261550][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 16:50:49,355 [DEBUG][       Thread-261550][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 16:50:49,364 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 16:50:49,365 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 16:50:49,373 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 16:50:49,382 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 16:50:49,382 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 16:50:49,383 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 16:50:49,391 [DEBUG][       Thread-261550][   transport.py][1871] : EOF in transport thread
2025-06-13 16:50:49,861 [DEBUG][Thread-261552 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:50:58,906 [DEBUG][Thread-261553 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:50:59,393 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 16:50:59,394 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 16:50:59,394 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 16:50:59,397 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 16:50:59,857 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 16, 50, 40), 16.37, 32.03, 0.0, 12.92, 13.35, 0, 0, 0, 2, 0, 0),)
2025-06-13 16:50:59,857 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 16:50:40
2025-06-13 16:50:59,939 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 16:50:59,943 [DEBUG][       Thread-261554][   transport.py][1871] : starting thread (client mode): 0x867ffac0
2025-06-13 16:50:59,943 [DEBUG][       Thread-261554][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 16:50:59,963 [DEBUG][       Thread-261554][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 16:50:59,963 [ INFO][       Thread-261554][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 16:50:59,967 [DEBUG][       Thread-261554][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 16:50:59,967 [DEBUG][       Thread-261554][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 16:50:59,967 [DEBUG][       Thread-261554][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 16:50:59,967 [DEBUG][       Thread-261554][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:50:59,967 [DEBUG][       Thread-261554][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:50:59,967 [DEBUG][       Thread-261554][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:50:59,967 [DEBUG][       Thread-261554][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:50:59,967 [DEBUG][       Thread-261554][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 16:50:59,967 [DEBUG][       Thread-261554][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 16:50:59,967 [DEBUG][       Thread-261554][   transport.py][1871] : client lang: <none>
2025-06-13 16:50:59,967 [DEBUG][       Thread-261554][   transport.py][1871] : server lang: <none>
2025-06-13 16:50:59,967 [DEBUG][       Thread-261554][   transport.py][1871] : kex follows: False
2025-06-13 16:50:59,967 [DEBUG][       Thread-261554][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 16:50:59,967 [DEBUG][       Thread-261554][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 16:50:59,967 [DEBUG][       Thread-261554][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 16:50:59,968 [DEBUG][       Thread-261554][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 16:50:59,968 [DEBUG][       Thread-261554][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 16:50:59,968 [DEBUG][       Thread-261554][   transport.py][1871] : Compression: none
2025-06-13 16:50:59,968 [DEBUG][       Thread-261554][   transport.py][1871] : === End of kex handshake ===
2025-06-13 16:50:59,984 [DEBUG][       Thread-261554][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 16:50:59,985 [DEBUG][       Thread-261554][   transport.py][1871] : Switch to new keys ...
2025-06-13 16:50:59,985 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 16:50:59,986 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 16:50:59,986 [DEBUG][       Thread-261554][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 16:50:59,986 [DEBUG][       Thread-261554][   transport.py][1871] : userauth is OK
2025-06-13 16:51:00,011 [ INFO][       Thread-261554][   transport.py][1871] : Authentication (password) successful!
2025-06-13 16:51:00,011 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 16:51:00,675 [DEBUG][       Thread-261554][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 16:51:00,675 [DEBUG][       Thread-261554][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 16:51:00,717 [DEBUG][       Thread-261554][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 16:51:00,717 [DEBUG][       Thread-261554][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 16:51:00,720 [DEBUG][       Thread-261554][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 16:51:00,735 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 16:51:00,736 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 16:51:00,738 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 16:51:00,739 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 16:51:00,745 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 16:51:00,747 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 16:51:00,747 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 16:51:00,747 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 16:51:00,748 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.618337 -999.00  +13.20  15.81     36   -1.10 1 1 1 1 1   887    0 13.40 -38.99 ----- 16.3 15.8 45.8 19.3 15.5 -29.0 14.9 -29.3 15.4 -28.7 16.2 -27.9
2025-06-13 16:51:00,748 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 16:51:00,748 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 16:51:00,748 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.618337
2025-06-13 16:51:00,748 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 16:51:00,749 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 16:51:00,749 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 16:51:00,749 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 16:51:00,749 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 16:51:00,749 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T16:50:40', tmtdew=16.37, humidity=32.03, cloud=0.0, wind=12.92, temperature=13.35, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T14:50:24.317', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 16:51:00,750 [DEBUG][       Thread-261554][   transport.py][1871] : EOF in transport thread
2025-06-13 16:51:00,833 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 16:51:00,844 [DEBUG][       Thread-261557][   transport.py][1871] : starting thread (client mode): 0x863bdf90
2025-06-13 16:51:00,844 [DEBUG][       Thread-261557][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 16:51:00,859 [DEBUG][       Thread-261557][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 16:51:00,859 [ INFO][       Thread-261557][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 16:51:00,867 [DEBUG][       Thread-261557][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 16:51:00,867 [DEBUG][       Thread-261557][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 16:51:00,867 [DEBUG][       Thread-261557][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 16:51:00,867 [DEBUG][       Thread-261557][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:51:00,867 [DEBUG][       Thread-261557][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:51:00,867 [DEBUG][       Thread-261557][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:51:00,867 [DEBUG][       Thread-261557][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:51:00,867 [DEBUG][       Thread-261557][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 16:51:00,867 [DEBUG][       Thread-261557][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 16:51:00,868 [DEBUG][       Thread-261557][   transport.py][1871] : client lang: <none>
2025-06-13 16:51:00,868 [DEBUG][       Thread-261557][   transport.py][1871] : server lang: <none>
2025-06-13 16:51:00,868 [DEBUG][       Thread-261557][   transport.py][1871] : kex follows: False
2025-06-13 16:51:00,868 [DEBUG][       Thread-261557][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 16:51:00,868 [DEBUG][       Thread-261557][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 16:51:00,868 [DEBUG][       Thread-261557][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 16:51:00,868 [DEBUG][       Thread-261557][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 16:51:00,868 [DEBUG][       Thread-261557][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 16:51:00,868 [DEBUG][       Thread-261557][   transport.py][1871] : Compression: none
2025-06-13 16:51:00,868 [DEBUG][       Thread-261557][   transport.py][1871] : === End of kex handshake ===
2025-06-13 16:51:00,924 [DEBUG][       Thread-261557][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 16:51:00,925 [DEBUG][       Thread-261557][   transport.py][1871] : Switch to new keys ...
2025-06-13 16:51:00,925 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 16:51:00,926 [DEBUG][       Thread-261557][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 16:51:00,926 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 16:51:00,982 [DEBUG][       Thread-261557][   transport.py][1871] : userauth is OK
2025-06-13 16:51:00,983 [DEBUG][       Thread-261557][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 16:51:00,983 [DEBUG][       Thread-261557][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 16:51:00,983 [DEBUG][       Thread-261557][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 16:51:00,983 [DEBUG][       Thread-261557][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 16:51:01,005 [ INFO][       Thread-261557][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 16:51:01,006 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 16:51:01,006 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 16:51:01,999 [DEBUG][       Thread-261557][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 16:51:02,000 [DEBUG][       Thread-261557][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 16:51:02,049 [DEBUG][       Thread-261557][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 16:51:02,049 [DEBUG][       Thread-261557][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 16:51:02,061 [DEBUG][       Thread-261557][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 16:51:02,075 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 16:51:02,075 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 16:51:02,084 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 16:51:02,094 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 16:51:02,094 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 16:51:02,094 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 16:51:02,102 [DEBUG][       Thread-261557][   transport.py][1871] : EOF in transport thread
2025-06-13 16:51:07,928 [DEBUG][Thread-261559 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:51:12,105 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 16:51:12,105 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 16:51:12,105 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 16:51:12,108 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 16:51:12,585 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 16, 50, 40), 16.37, 32.03, 0.0, 12.92, 13.35, 0, 0, 0, 2, 0, 0),)
2025-06-13 16:51:12,585 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 16:50:40
2025-06-13 16:51:12,689 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 16:51:12,696 [DEBUG][       Thread-261560][   transport.py][1871] : starting thread (client mode): 0x863cbaf0
2025-06-13 16:51:12,696 [DEBUG][       Thread-261560][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 16:51:12,715 [DEBUG][       Thread-261560][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 16:51:12,715 [ INFO][       Thread-261560][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 16:51:12,719 [DEBUG][       Thread-261560][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 16:51:12,719 [DEBUG][       Thread-261560][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 16:51:12,719 [DEBUG][       Thread-261560][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 16:51:12,719 [DEBUG][       Thread-261560][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:51:12,719 [DEBUG][       Thread-261560][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:51:12,719 [DEBUG][       Thread-261560][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:51:12,719 [DEBUG][       Thread-261560][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:51:12,719 [DEBUG][       Thread-261560][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 16:51:12,719 [DEBUG][       Thread-261560][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 16:51:12,719 [DEBUG][       Thread-261560][   transport.py][1871] : client lang: <none>
2025-06-13 16:51:12,719 [DEBUG][       Thread-261560][   transport.py][1871] : server lang: <none>
2025-06-13 16:51:12,719 [DEBUG][       Thread-261560][   transport.py][1871] : kex follows: False
2025-06-13 16:51:12,719 [DEBUG][       Thread-261560][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 16:51:12,719 [DEBUG][       Thread-261560][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 16:51:12,719 [DEBUG][       Thread-261560][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 16:51:12,719 [DEBUG][       Thread-261560][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 16:51:12,719 [DEBUG][       Thread-261560][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 16:51:12,719 [DEBUG][       Thread-261560][   transport.py][1871] : Compression: none
2025-06-13 16:51:12,719 [DEBUG][       Thread-261560][   transport.py][1871] : === End of kex handshake ===
2025-06-13 16:51:12,734 [DEBUG][       Thread-261560][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 16:51:12,734 [DEBUG][       Thread-261560][   transport.py][1871] : Switch to new keys ...
2025-06-13 16:51:12,734 [DEBUG][       Thread-261560][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 16:51:12,734 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 16:51:12,734 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 16:51:12,735 [DEBUG][       Thread-261560][   transport.py][1871] : userauth is OK
2025-06-13 16:51:12,748 [ INFO][       Thread-261560][   transport.py][1871] : Authentication (password) successful!
2025-06-13 16:51:12,748 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 16:51:13,367 [DEBUG][       Thread-261560][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 16:51:13,367 [DEBUG][       Thread-261560][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 16:51:13,408 [DEBUG][       Thread-261560][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 16:51:13,408 [DEBUG][       Thread-261560][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 16:51:13,411 [DEBUG][       Thread-261560][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 16:51:13,424 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 16:51:13,424 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 16:51:13,425 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 16:51:13,426 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 16:51:13,429 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 16:51:13,430 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 16:51:13,430 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 16:51:13,430 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 16:51:13,430 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.618337 -999.00  +13.20  15.81     36   -1.10 1 1 1 1 1   887    0 13.40 -38.99 ----- 16.3 15.8 45.8 19.3 15.5 -29.0 14.9 -29.3 15.4 -28.7 16.2 -27.9
2025-06-13 16:51:13,430 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 16:51:13,430 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 16:51:13,430 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.618337
2025-06-13 16:51:13,430 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 16:51:13,431 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 16:51:13,431 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 16:51:13,431 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 16:51:13,431 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 16:51:13,431 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T16:50:40', tmtdew=16.37, humidity=32.03, cloud=0.0, wind=12.92, temperature=13.35, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T14:50:24.317', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 16:51:13,431 [DEBUG][       Thread-261560][   transport.py][1871] : EOF in transport thread
2025-06-13 16:51:13,505 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 16:51:13,517 [DEBUG][       Thread-261563][   transport.py][1871] : starting thread (client mode): 0x863932e0
2025-06-13 16:51:13,517 [DEBUG][       Thread-261563][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 16:51:13,532 [DEBUG][       Thread-261563][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 16:51:13,532 [ INFO][       Thread-261563][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 16:51:13,539 [DEBUG][       Thread-261563][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 16:51:13,540 [DEBUG][       Thread-261563][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 16:51:13,540 [DEBUG][       Thread-261563][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 16:51:13,540 [DEBUG][       Thread-261563][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:51:13,540 [DEBUG][       Thread-261563][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:51:13,540 [DEBUG][       Thread-261563][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:51:13,540 [DEBUG][       Thread-261563][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:51:13,540 [DEBUG][       Thread-261563][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 16:51:13,540 [DEBUG][       Thread-261563][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 16:51:13,540 [DEBUG][       Thread-261563][   transport.py][1871] : client lang: <none>
2025-06-13 16:51:13,540 [DEBUG][       Thread-261563][   transport.py][1871] : server lang: <none>
2025-06-13 16:51:13,540 [DEBUG][       Thread-261563][   transport.py][1871] : kex follows: False
2025-06-13 16:51:13,540 [DEBUG][       Thread-261563][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 16:51:13,540 [DEBUG][       Thread-261563][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 16:51:13,540 [DEBUG][       Thread-261563][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 16:51:13,540 [DEBUG][       Thread-261563][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 16:51:13,540 [DEBUG][       Thread-261563][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 16:51:13,540 [DEBUG][       Thread-261563][   transport.py][1871] : Compression: none
2025-06-13 16:51:13,540 [DEBUG][       Thread-261563][   transport.py][1871] : === End of kex handshake ===
2025-06-13 16:51:13,595 [DEBUG][       Thread-261563][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 16:51:13,595 [DEBUG][       Thread-261563][   transport.py][1871] : Switch to new keys ...
2025-06-13 16:51:13,595 [DEBUG][       Thread-261563][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 16:51:13,595 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 16:51:13,595 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 16:51:13,661 [DEBUG][       Thread-261563][   transport.py][1871] : userauth is OK
2025-06-13 16:51:13,661 [DEBUG][       Thread-261563][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 16:51:13,661 [DEBUG][       Thread-261563][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 16:51:13,661 [DEBUG][       Thread-261563][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 16:51:13,661 [DEBUG][       Thread-261563][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 16:51:13,675 [ INFO][       Thread-261563][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 16:51:13,675 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 16:51:13,675 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 16:51:14,655 [DEBUG][       Thread-261563][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 16:51:14,655 [DEBUG][       Thread-261563][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 16:51:14,704 [DEBUG][       Thread-261563][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 16:51:14,704 [DEBUG][       Thread-261563][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 16:51:14,713 [DEBUG][       Thread-261563][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 16:51:14,721 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 16:51:14,721 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 16:51:14,731 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 16:51:14,743 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 16:51:14,743 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 16:51:14,744 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 16:51:14,752 [DEBUG][       Thread-261563][   transport.py][1871] : EOF in transport thread
2025-06-13 16:51:16,948 [DEBUG][Thread-261565 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:51:20,036 [DEBUG][Thread-261566 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:51:21,048 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:51:21,048 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:51:21,090 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:51:21,090 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:51:24,326 [DEBUG][Thread-261567 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:51:24,751 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 16:51:24,752 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 16:51:24,752 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 16:51:24,755 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 16:51:25,230 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 16, 51, 11), 16.4, 31.96, 0.0, 13.48, 13.33, 0, 0, 0, 2, 0, 0),)
2025-06-13 16:51:25,230 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 16:51:11
2025-06-13 16:51:25,311 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 16:51:25,315 [DEBUG][       Thread-261568][   transport.py][1871] : starting thread (client mode): 0x86368310
2025-06-13 16:51:25,315 [DEBUG][       Thread-261568][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 16:51:25,336 [DEBUG][       Thread-261568][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 16:51:25,336 [ INFO][       Thread-261568][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 16:51:25,339 [DEBUG][       Thread-261568][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 16:51:25,339 [DEBUG][       Thread-261568][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 16:51:25,339 [DEBUG][       Thread-261568][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 16:51:25,339 [DEBUG][       Thread-261568][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:51:25,339 [DEBUG][       Thread-261568][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:51:25,339 [DEBUG][       Thread-261568][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:51:25,339 [DEBUG][       Thread-261568][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:51:25,339 [DEBUG][       Thread-261568][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 16:51:25,339 [DEBUG][       Thread-261568][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 16:51:25,339 [DEBUG][       Thread-261568][   transport.py][1871] : client lang: <none>
2025-06-13 16:51:25,339 [DEBUG][       Thread-261568][   transport.py][1871] : server lang: <none>
2025-06-13 16:51:25,339 [DEBUG][       Thread-261568][   transport.py][1871] : kex follows: False
2025-06-13 16:51:25,339 [DEBUG][       Thread-261568][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 16:51:25,339 [DEBUG][       Thread-261568][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 16:51:25,339 [DEBUG][       Thread-261568][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 16:51:25,339 [DEBUG][       Thread-261568][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 16:51:25,339 [DEBUG][       Thread-261568][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 16:51:25,339 [DEBUG][       Thread-261568][   transport.py][1871] : Compression: none
2025-06-13 16:51:25,340 [DEBUG][       Thread-261568][   transport.py][1871] : === End of kex handshake ===
2025-06-13 16:51:25,356 [DEBUG][       Thread-261568][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 16:51:25,357 [DEBUG][       Thread-261568][   transport.py][1871] : Switch to new keys ...
2025-06-13 16:51:25,357 [DEBUG][       Thread-261568][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 16:51:25,357 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 16:51:25,357 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 16:51:25,358 [DEBUG][       Thread-261568][   transport.py][1871] : userauth is OK
2025-06-13 16:51:25,372 [ INFO][       Thread-261568][   transport.py][1871] : Authentication (password) successful!
2025-06-13 16:51:25,373 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 16:51:25,966 [DEBUG][Thread-261570 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:51:26,005 [DEBUG][       Thread-261568][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 16:51:26,005 [DEBUG][       Thread-261568][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 16:51:26,049 [DEBUG][       Thread-261568][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 16:51:26,049 [DEBUG][       Thread-261568][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 16:51:26,052 [DEBUG][       Thread-261568][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 16:51:26,066 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 16:51:26,066 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 16:51:26,068 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 16:51:26,070 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 16:51:26,075 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 16:51:26,077 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 16:51:26,078 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 16:51:26,078 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 16:51:26,078 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.618337 -999.00  +13.20  15.81     36   -1.10 1 1 1 1 1   887    0 13.40 -38.99 ----- 16.3 15.8 45.8 19.3 15.5 -29.0 14.9 -29.3 15.4 -28.7 16.2 -27.9
2025-06-13 16:51:26,078 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 16:51:26,079 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 16:51:26,079 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.618337
2025-06-13 16:51:26,079 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 16:51:26,080 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 16:51:26,080 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 16:51:26,080 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 16:51:26,080 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 16:51:26,080 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T16:51:11', tmtdew=16.4, humidity=31.96, cloud=0.0, wind=13.48, temperature=13.33, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T14:50:24.317', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 16:51:26,080 [DEBUG][       Thread-261568][   transport.py][1871] : EOF in transport thread
2025-06-13 16:51:26,164 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 16:51:26,174 [DEBUG][       Thread-261572][   transport.py][1871] : starting thread (client mode): 0x86893fd0
2025-06-13 16:51:26,174 [DEBUG][       Thread-261572][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 16:51:26,188 [DEBUG][       Thread-261572][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 16:51:26,189 [ INFO][       Thread-261572][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 16:51:26,196 [DEBUG][       Thread-261572][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 16:51:26,196 [DEBUG][       Thread-261572][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 16:51:26,196 [DEBUG][       Thread-261572][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 16:51:26,196 [DEBUG][       Thread-261572][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:51:26,196 [DEBUG][       Thread-261572][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:51:26,196 [DEBUG][       Thread-261572][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:51:26,196 [DEBUG][       Thread-261572][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:51:26,196 [DEBUG][       Thread-261572][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 16:51:26,196 [DEBUG][       Thread-261572][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 16:51:26,197 [DEBUG][       Thread-261572][   transport.py][1871] : client lang: <none>
2025-06-13 16:51:26,197 [DEBUG][       Thread-261572][   transport.py][1871] : server lang: <none>
2025-06-13 16:51:26,197 [DEBUG][       Thread-261572][   transport.py][1871] : kex follows: False
2025-06-13 16:51:26,197 [DEBUG][       Thread-261572][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 16:51:26,197 [DEBUG][       Thread-261572][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 16:51:26,197 [DEBUG][       Thread-261572][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 16:51:26,197 [DEBUG][       Thread-261572][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 16:51:26,197 [DEBUG][       Thread-261572][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 16:51:26,197 [DEBUG][       Thread-261572][   transport.py][1871] : Compression: none
2025-06-13 16:51:26,197 [DEBUG][       Thread-261572][   transport.py][1871] : === End of kex handshake ===
2025-06-13 16:51:26,251 [DEBUG][       Thread-261572][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 16:51:26,251 [DEBUG][       Thread-261572][   transport.py][1871] : Switch to new keys ...
2025-06-13 16:51:26,251 [DEBUG][       Thread-261572][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 16:51:26,251 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 16:51:26,251 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 16:51:26,315 [DEBUG][       Thread-261572][   transport.py][1871] : userauth is OK
2025-06-13 16:51:26,315 [DEBUG][       Thread-261572][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 16:51:26,315 [DEBUG][       Thread-261572][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 16:51:26,315 [DEBUG][       Thread-261572][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 16:51:26,315 [DEBUG][       Thread-261572][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 16:51:26,329 [ INFO][       Thread-261572][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 16:51:26,329 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 16:51:26,330 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 16:51:27,348 [DEBUG][       Thread-261572][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 16:51:27,348 [DEBUG][       Thread-261572][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 16:51:27,398 [DEBUG][       Thread-261572][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 16:51:27,398 [DEBUG][       Thread-261572][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 16:51:27,408 [DEBUG][       Thread-261572][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 16:51:27,417 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 16:51:27,417 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 16:51:27,426 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 16:51:27,436 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 16:51:27,436 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 16:51:27,436 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 16:51:27,445 [DEBUG][       Thread-261572][   transport.py][1871] : EOF in transport thread
2025-06-13 16:51:34,990 [DEBUG][Thread-261574 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:51:37,447 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 16:51:37,447 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 16:51:37,447 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 16:51:37,450 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 16:51:37,926 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 16, 51, 11), 16.4, 31.96, 0.0, 13.48, 13.33, 0, 0, 0, 2, 0, 0),)
2025-06-13 16:51:37,926 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 16:51:11
2025-06-13 16:51:38,007 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 16:51:38,013 [DEBUG][       Thread-261575][   transport.py][1871] : starting thread (client mode): 0x8636a1d0
2025-06-13 16:51:38,014 [DEBUG][       Thread-261575][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 16:51:38,034 [DEBUG][       Thread-261575][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 16:51:38,034 [ INFO][       Thread-261575][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 16:51:38,037 [DEBUG][       Thread-261575][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 16:51:38,043 [DEBUG][       Thread-261575][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 16:51:38,043 [DEBUG][       Thread-261575][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 16:51:38,043 [DEBUG][       Thread-261575][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:51:38,043 [DEBUG][       Thread-261575][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:51:38,043 [DEBUG][       Thread-261575][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:51:38,043 [DEBUG][       Thread-261575][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:51:38,043 [DEBUG][       Thread-261575][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 16:51:38,043 [DEBUG][       Thread-261575][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 16:51:38,043 [DEBUG][       Thread-261575][   transport.py][1871] : client lang: <none>
2025-06-13 16:51:38,043 [DEBUG][       Thread-261575][   transport.py][1871] : server lang: <none>
2025-06-13 16:51:38,043 [DEBUG][       Thread-261575][   transport.py][1871] : kex follows: False
2025-06-13 16:51:38,043 [DEBUG][       Thread-261575][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 16:51:38,043 [DEBUG][       Thread-261575][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 16:51:38,043 [DEBUG][       Thread-261575][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 16:51:38,043 [DEBUG][       Thread-261575][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 16:51:38,043 [DEBUG][       Thread-261575][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 16:51:38,043 [DEBUG][       Thread-261575][   transport.py][1871] : Compression: none
2025-06-13 16:51:38,043 [DEBUG][       Thread-261575][   transport.py][1871] : === End of kex handshake ===
2025-06-13 16:51:38,062 [DEBUG][       Thread-261575][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 16:51:38,063 [DEBUG][       Thread-261575][   transport.py][1871] : Switch to new keys ...
2025-06-13 16:51:38,063 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 16:51:38,063 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 16:51:38,064 [DEBUG][       Thread-261575][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 16:51:38,107 [DEBUG][       Thread-261575][   transport.py][1871] : userauth is OK
2025-06-13 16:51:38,132 [ INFO][       Thread-261575][   transport.py][1871] : Authentication (password) successful!
2025-06-13 16:51:38,132 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 16:51:38,771 [DEBUG][       Thread-261575][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 16:51:38,771 [DEBUG][       Thread-261575][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 16:51:38,813 [DEBUG][       Thread-261575][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 16:51:38,813 [DEBUG][       Thread-261575][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 16:51:38,816 [DEBUG][       Thread-261575][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 16:51:38,829 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 16:51:38,830 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 16:51:38,831 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 16:51:38,833 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 16:51:38,839 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 16:51:38,841 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 16:51:38,841 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 16:51:38,842 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 16:51:38,842 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.618684 -999.00  +13.30  14.76     36   -1.00 1 1 1 1 1   887    0 13.43 -36.63 ----- 17.5 14.8 44.2 18.4 15.5 -28.7 15.0 -29.2 15.4 -28.7 16.2 -28.0
2025-06-13 16:51:38,842 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 16:51:38,842 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 16:51:38,842 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.618684
2025-06-13 16:51:38,843 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 16:51:38,843 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 16:51:38,843 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 16:51:38,843 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 16:51:38,843 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 16:51:38,843 [DEBUG][       Thread-261575][   transport.py][1871] : EOF in transport thread
2025-06-13 16:51:38,844 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T16:51:11', tmtdew=16.4, humidity=31.96, cloud=0.0, wind=13.48, temperature=13.33, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T14:50:54.298', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 16:51:38,928 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 16:51:38,941 [DEBUG][       Thread-261578][   transport.py][1871] : starting thread (client mode): 0x86353f40
2025-06-13 16:51:38,941 [DEBUG][       Thread-261578][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 16:51:38,955 [DEBUG][       Thread-261578][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 16:51:38,956 [ INFO][       Thread-261578][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 16:51:38,964 [DEBUG][       Thread-261578][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 16:51:38,964 [DEBUG][       Thread-261578][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 16:51:38,965 [DEBUG][       Thread-261578][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 16:51:38,965 [DEBUG][       Thread-261578][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:51:38,965 [DEBUG][       Thread-261578][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:51:38,965 [DEBUG][       Thread-261578][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:51:38,965 [DEBUG][       Thread-261578][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:51:38,965 [DEBUG][       Thread-261578][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 16:51:38,965 [DEBUG][       Thread-261578][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 16:51:38,965 [DEBUG][       Thread-261578][   transport.py][1871] : client lang: <none>
2025-06-13 16:51:38,965 [DEBUG][       Thread-261578][   transport.py][1871] : server lang: <none>
2025-06-13 16:51:38,965 [DEBUG][       Thread-261578][   transport.py][1871] : kex follows: False
2025-06-13 16:51:38,965 [DEBUG][       Thread-261578][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 16:51:38,965 [DEBUG][       Thread-261578][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 16:51:38,965 [DEBUG][       Thread-261578][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 16:51:38,965 [DEBUG][       Thread-261578][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 16:51:38,965 [DEBUG][       Thread-261578][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 16:51:38,965 [DEBUG][       Thread-261578][   transport.py][1871] : Compression: none
2025-06-13 16:51:38,965 [DEBUG][       Thread-261578][   transport.py][1871] : === End of kex handshake ===
2025-06-13 16:51:39,032 [DEBUG][       Thread-261578][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 16:51:39,033 [DEBUG][       Thread-261578][   transport.py][1871] : Switch to new keys ...
2025-06-13 16:51:39,033 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 16:51:39,034 [DEBUG][       Thread-261578][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 16:51:39,034 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 16:51:39,089 [DEBUG][       Thread-261578][   transport.py][1871] : userauth is OK
2025-06-13 16:51:39,089 [DEBUG][       Thread-261578][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 16:51:39,089 [DEBUG][       Thread-261578][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 16:51:39,089 [DEBUG][       Thread-261578][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 16:51:39,089 [DEBUG][       Thread-261578][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 16:51:39,107 [ INFO][       Thread-261578][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 16:51:39,108 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 16:51:39,108 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 16:51:40,071 [DEBUG][       Thread-261578][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 16:51:40,071 [DEBUG][       Thread-261578][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 16:51:40,120 [DEBUG][       Thread-261578][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 16:51:40,120 [DEBUG][       Thread-261578][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 16:51:40,130 [DEBUG][       Thread-261578][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 16:51:40,139 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 16:51:40,139 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 16:51:40,149 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 16:51:40,158 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 16:51:40,158 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 16:51:40,159 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 16:51:40,167 [DEBUG][       Thread-261578][   transport.py][1871] : EOF in transport thread
2025-06-13 16:51:44,024 [DEBUG][Thread-261580 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:51:50,169 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 16:51:50,169 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 16:51:50,169 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 16:51:50,172 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 16:51:50,639 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 16, 51, 43), 16.4, 31.97, 0.0, 14.06, 13.33, 0, 0, 0, 2, 0, 0),)
2025-06-13 16:51:50,639 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 16:51:43
2025-06-13 16:51:50,718 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 16:51:50,722 [DEBUG][       Thread-261581][   transport.py][1871] : starting thread (client mode): 0x86368f70
2025-06-13 16:51:50,722 [DEBUG][       Thread-261581][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 16:51:50,743 [DEBUG][       Thread-261581][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 16:51:50,743 [ INFO][       Thread-261581][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 16:51:50,746 [DEBUG][       Thread-261581][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 16:51:50,746 [DEBUG][       Thread-261581][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 16:51:50,746 [DEBUG][       Thread-261581][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 16:51:50,746 [DEBUG][       Thread-261581][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:51:50,746 [DEBUG][       Thread-261581][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:51:50,746 [DEBUG][       Thread-261581][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:51:50,746 [DEBUG][       Thread-261581][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:51:50,746 [DEBUG][       Thread-261581][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 16:51:50,746 [DEBUG][       Thread-261581][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 16:51:50,746 [DEBUG][       Thread-261581][   transport.py][1871] : client lang: <none>
2025-06-13 16:51:50,746 [DEBUG][       Thread-261581][   transport.py][1871] : server lang: <none>
2025-06-13 16:51:50,746 [DEBUG][       Thread-261581][   transport.py][1871] : kex follows: False
2025-06-13 16:51:50,746 [DEBUG][       Thread-261581][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 16:51:50,746 [DEBUG][       Thread-261581][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 16:51:50,746 [DEBUG][       Thread-261581][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 16:51:50,747 [DEBUG][       Thread-261581][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 16:51:50,747 [DEBUG][       Thread-261581][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 16:51:50,747 [DEBUG][       Thread-261581][   transport.py][1871] : Compression: none
2025-06-13 16:51:50,747 [DEBUG][       Thread-261581][   transport.py][1871] : === End of kex handshake ===
2025-06-13 16:51:50,765 [DEBUG][       Thread-261581][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 16:51:50,766 [DEBUG][       Thread-261581][   transport.py][1871] : Switch to new keys ...
2025-06-13 16:51:50,766 [DEBUG][       Thread-261581][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 16:51:50,766 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 16:51:50,766 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 16:51:50,768 [DEBUG][       Thread-261581][   transport.py][1871] : userauth is OK
2025-06-13 16:51:50,780 [ INFO][       Thread-261581][   transport.py][1871] : Authentication (password) successful!
2025-06-13 16:51:50,781 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 16:51:51,404 [DEBUG][       Thread-261581][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 16:51:51,404 [DEBUG][       Thread-261581][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 16:51:51,445 [DEBUG][       Thread-261581][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 16:51:51,445 [DEBUG][       Thread-261581][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 16:51:51,448 [DEBUG][       Thread-261581][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 16:51:51,460 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 16:51:51,461 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 16:51:51,463 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 16:51:51,465 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 16:51:51,471 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 16:51:51,474 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 16:51:51,474 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 16:51:51,475 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 16:51:51,475 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.618684 -999.00  +13.30  14.76     36   -1.00 1 1 1 1 1   887    0 13.43 -36.63 ----- 17.5 14.8 44.2 18.4 15.5 -28.7 15.0 -29.2 15.4 -28.7 16.2 -28.0
2025-06-13 16:51:51,475 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 16:51:51,475 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 16:51:51,475 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.618684
2025-06-13 16:51:51,475 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 16:51:51,476 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 16:51:51,476 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 16:51:51,476 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 16:51:51,476 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 16:51:51,476 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T16:51:43', tmtdew=16.4, humidity=31.97, cloud=0.0, wind=14.06, temperature=13.33, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T14:50:54.298', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 16:51:51,477 [DEBUG][       Thread-261581][   transport.py][1871] : EOF in transport thread
2025-06-13 16:51:51,560 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 16:51:51,575 [DEBUG][       Thread-261584][   transport.py][1871] : starting thread (client mode): 0x863a7f40
2025-06-13 16:51:51,575 [DEBUG][       Thread-261584][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 16:51:51,589 [DEBUG][       Thread-261584][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 16:51:51,589 [ INFO][       Thread-261584][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 16:51:51,597 [DEBUG][       Thread-261584][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 16:51:51,597 [DEBUG][       Thread-261584][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 16:51:51,597 [DEBUG][       Thread-261584][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 16:51:51,597 [DEBUG][       Thread-261584][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:51:51,597 [DEBUG][       Thread-261584][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:51:51,597 [DEBUG][       Thread-261584][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:51:51,597 [DEBUG][       Thread-261584][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:51:51,597 [DEBUG][       Thread-261584][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 16:51:51,597 [DEBUG][       Thread-261584][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 16:51:51,597 [DEBUG][       Thread-261584][   transport.py][1871] : client lang: <none>
2025-06-13 16:51:51,597 [DEBUG][       Thread-261584][   transport.py][1871] : server lang: <none>
2025-06-13 16:51:51,598 [DEBUG][       Thread-261584][   transport.py][1871] : kex follows: False
2025-06-13 16:51:51,598 [DEBUG][       Thread-261584][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 16:51:51,598 [DEBUG][       Thread-261584][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 16:51:51,598 [DEBUG][       Thread-261584][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 16:51:51,598 [DEBUG][       Thread-261584][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 16:51:51,598 [DEBUG][       Thread-261584][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 16:51:51,598 [DEBUG][       Thread-261584][   transport.py][1871] : Compression: none
2025-06-13 16:51:51,598 [DEBUG][       Thread-261584][   transport.py][1871] : === End of kex handshake ===
2025-06-13 16:51:51,656 [DEBUG][       Thread-261584][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 16:51:51,657 [DEBUG][       Thread-261584][   transport.py][1871] : Switch to new keys ...
2025-06-13 16:51:51,658 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 16:51:51,658 [DEBUG][       Thread-261584][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 16:51:51,659 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 16:51:51,722 [DEBUG][       Thread-261584][   transport.py][1871] : userauth is OK
2025-06-13 16:51:51,723 [DEBUG][       Thread-261584][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 16:51:51,723 [DEBUG][       Thread-261584][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 16:51:51,723 [DEBUG][       Thread-261584][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 16:51:51,723 [DEBUG][       Thread-261584][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 16:51:51,746 [ INFO][       Thread-261584][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 16:51:51,747 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 16:51:51,747 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 16:51:52,785 [DEBUG][       Thread-261584][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 16:51:52,785 [DEBUG][       Thread-261584][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 16:51:52,838 [DEBUG][       Thread-261584][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 16:51:52,838 [DEBUG][       Thread-261584][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 16:51:52,847 [DEBUG][       Thread-261584][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 16:51:52,857 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 16:51:52,858 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 16:51:52,867 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 16:51:52,876 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 16:51:52,877 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 16:51:52,877 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 16:51:52,885 [DEBUG][       Thread-261584][   transport.py][1871] : EOF in transport thread
2025-06-13 16:51:53,043 [DEBUG][Thread-261586 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:52:02,077 [DEBUG][Thread-261587 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:52:02,888 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 16:52:02,888 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 16:52:02,888 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 16:52:02,891 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 16:52:03,369 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 16, 51, 43), 16.4, 31.97, 0.0, 14.06, 13.33, 0, 0, 0, 2, 0, 0),)
2025-06-13 16:52:03,369 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 16:51:43
2025-06-13 16:52:03,448 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 16:52:03,453 [DEBUG][       Thread-261588][   transport.py][1871] : starting thread (client mode): 0x867fc1c0
2025-06-13 16:52:03,453 [DEBUG][       Thread-261588][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 16:52:03,474 [DEBUG][       Thread-261588][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 16:52:03,474 [ INFO][       Thread-261588][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 16:52:03,477 [DEBUG][       Thread-261588][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 16:52:03,477 [DEBUG][       Thread-261588][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 16:52:03,477 [DEBUG][       Thread-261588][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 16:52:03,477 [DEBUG][       Thread-261588][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:52:03,477 [DEBUG][       Thread-261588][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:52:03,477 [DEBUG][       Thread-261588][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:52:03,477 [DEBUG][       Thread-261588][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:52:03,477 [DEBUG][       Thread-261588][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 16:52:03,477 [DEBUG][       Thread-261588][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 16:52:03,477 [DEBUG][       Thread-261588][   transport.py][1871] : client lang: <none>
2025-06-13 16:52:03,477 [DEBUG][       Thread-261588][   transport.py][1871] : server lang: <none>
2025-06-13 16:52:03,477 [DEBUG][       Thread-261588][   transport.py][1871] : kex follows: False
2025-06-13 16:52:03,477 [DEBUG][       Thread-261588][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 16:52:03,477 [DEBUG][       Thread-261588][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 16:52:03,477 [DEBUG][       Thread-261588][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 16:52:03,478 [DEBUG][       Thread-261588][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 16:52:03,478 [DEBUG][       Thread-261588][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 16:52:03,478 [DEBUG][       Thread-261588][   transport.py][1871] : Compression: none
2025-06-13 16:52:03,478 [DEBUG][       Thread-261588][   transport.py][1871] : === End of kex handshake ===
2025-06-13 16:52:03,495 [DEBUG][       Thread-261588][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 16:52:03,496 [DEBUG][       Thread-261588][   transport.py][1871] : Switch to new keys ...
2025-06-13 16:52:03,496 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 16:52:03,496 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 16:52:03,497 [DEBUG][       Thread-261588][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 16:52:03,539 [DEBUG][       Thread-261588][   transport.py][1871] : userauth is OK
2025-06-13 16:52:03,563 [ INFO][       Thread-261588][   transport.py][1871] : Authentication (password) successful!
2025-06-13 16:52:03,564 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 16:52:04,203 [DEBUG][       Thread-261588][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 16:52:04,203 [DEBUG][       Thread-261588][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 16:52:04,245 [DEBUG][       Thread-261588][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 16:52:04,245 [DEBUG][       Thread-261588][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 16:52:04,248 [DEBUG][       Thread-261588][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 16:52:04,261 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 16:52:04,262 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 16:52:04,264 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 16:52:04,276 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 16:52:04,282 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 16:52:04,285 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 16:52:04,285 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 16:52:04,286 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 16:52:04,286 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.619379 -999.00  +13.30  15.62     36   -1.10 1 1 1 1 1   887    0 13.68 -29.76 ----- 12.6 15.6 48.0 19.8 15.5 -28.8 14.9 -29.3 15.5 -29.0 16.2 -27.9
2025-06-13 16:52:04,286 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 16:52:04,286 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 16:52:04,286 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.619379
2025-06-13 16:52:04,286 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 16:52:04,287 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 16:52:04,287 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 16:52:04,287 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 16:52:04,287 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 16:52:04,287 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T16:51:43', tmtdew=16.4, humidity=31.97, cloud=0.0, wind=14.06, temperature=13.33, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T14:51:54.346', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 16:52:04,288 [DEBUG][       Thread-261588][   transport.py][1871] : EOF in transport thread
2025-06-13 16:52:04,363 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 16:52:04,380 [DEBUG][       Thread-261591][   transport.py][1871] : starting thread (client mode): 0x86353370
2025-06-13 16:52:04,380 [DEBUG][       Thread-261591][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 16:52:04,395 [DEBUG][       Thread-261591][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 16:52:04,395 [ INFO][       Thread-261591][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 16:52:04,403 [DEBUG][       Thread-261591][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 16:52:04,403 [DEBUG][       Thread-261591][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 16:52:04,403 [DEBUG][       Thread-261591][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 16:52:04,403 [DEBUG][       Thread-261591][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:52:04,403 [DEBUG][       Thread-261591][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:52:04,403 [DEBUG][       Thread-261591][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:52:04,403 [DEBUG][       Thread-261591][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:52:04,404 [DEBUG][       Thread-261591][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 16:52:04,404 [DEBUG][       Thread-261591][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 16:52:04,404 [DEBUG][       Thread-261591][   transport.py][1871] : client lang: <none>
2025-06-13 16:52:04,404 [DEBUG][       Thread-261591][   transport.py][1871] : server lang: <none>
2025-06-13 16:52:04,404 [DEBUG][       Thread-261591][   transport.py][1871] : kex follows: False
2025-06-13 16:52:04,404 [DEBUG][       Thread-261591][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 16:52:04,404 [DEBUG][       Thread-261591][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 16:52:04,404 [DEBUG][       Thread-261591][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 16:52:04,404 [DEBUG][       Thread-261591][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 16:52:04,404 [DEBUG][       Thread-261591][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 16:52:04,404 [DEBUG][       Thread-261591][   transport.py][1871] : Compression: none
2025-06-13 16:52:04,404 [DEBUG][       Thread-261591][   transport.py][1871] : === End of kex handshake ===
2025-06-13 16:52:04,468 [DEBUG][       Thread-261591][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 16:52:04,468 [DEBUG][       Thread-261591][   transport.py][1871] : Switch to new keys ...
2025-06-13 16:52:04,469 [DEBUG][       Thread-261591][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 16:52:04,469 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 16:52:04,470 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 16:52:04,531 [DEBUG][       Thread-261591][   transport.py][1871] : userauth is OK
2025-06-13 16:52:04,532 [DEBUG][       Thread-261591][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 16:52:04,532 [DEBUG][       Thread-261591][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 16:52:04,532 [DEBUG][       Thread-261591][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 16:52:04,532 [DEBUG][       Thread-261591][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 16:52:04,550 [ INFO][       Thread-261591][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 16:52:04,550 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 16:52:04,551 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 16:52:05,581 [DEBUG][       Thread-261591][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 16:52:05,581 [DEBUG][       Thread-261591][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 16:52:05,632 [DEBUG][       Thread-261591][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 16:52:05,632 [DEBUG][       Thread-261591][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 16:52:05,641 [DEBUG][       Thread-261591][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 16:52:05,651 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 16:52:05,651 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 16:52:05,660 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 16:52:05,670 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 16:52:05,670 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 16:52:05,671 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 16:52:05,682 [DEBUG][       Thread-261591][   transport.py][1871] : EOF in transport thread
2025-06-13 16:52:11,102 [DEBUG][Thread-261593 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:52:15,680 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 16:52:15,680 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 16:52:15,680 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 16:52:15,683 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 16:52:16,182 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 16, 51, 43), 16.4, 31.97, 0.0, 14.06, 13.33, 0, 0, 0, 2, 0, 0),)
2025-06-13 16:52:16,183 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 16:51:43
2025-06-13 16:52:16,267 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 16:52:16,274 [DEBUG][       Thread-261594][   transport.py][1871] : starting thread (client mode): 0x867fc2e0
2025-06-13 16:52:16,274 [DEBUG][       Thread-261594][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 16:52:16,295 [DEBUG][       Thread-261594][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 16:52:16,296 [ INFO][       Thread-261594][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 16:52:16,299 [DEBUG][       Thread-261594][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 16:52:16,299 [DEBUG][       Thread-261594][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 16:52:16,299 [DEBUG][       Thread-261594][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 16:52:16,299 [DEBUG][       Thread-261594][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:52:16,299 [DEBUG][       Thread-261594][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:52:16,299 [DEBUG][       Thread-261594][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:52:16,299 [DEBUG][       Thread-261594][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:52:16,299 [DEBUG][       Thread-261594][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 16:52:16,299 [DEBUG][       Thread-261594][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 16:52:16,299 [DEBUG][       Thread-261594][   transport.py][1871] : client lang: <none>
2025-06-13 16:52:16,299 [DEBUG][       Thread-261594][   transport.py][1871] : server lang: <none>
2025-06-13 16:52:16,299 [DEBUG][       Thread-261594][   transport.py][1871] : kex follows: False
2025-06-13 16:52:16,299 [DEBUG][       Thread-261594][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 16:52:16,299 [DEBUG][       Thread-261594][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 16:52:16,299 [DEBUG][       Thread-261594][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 16:52:16,299 [DEBUG][       Thread-261594][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 16:52:16,299 [DEBUG][       Thread-261594][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 16:52:16,299 [DEBUG][       Thread-261594][   transport.py][1871] : Compression: none
2025-06-13 16:52:16,299 [DEBUG][       Thread-261594][   transport.py][1871] : === End of kex handshake ===
2025-06-13 16:52:16,319 [DEBUG][       Thread-261594][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 16:52:16,319 [DEBUG][       Thread-261594][   transport.py][1871] : Switch to new keys ...
2025-06-13 16:52:16,319 [DEBUG][       Thread-261594][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 16:52:16,319 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 16:52:16,319 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 16:52:16,320 [DEBUG][       Thread-261594][   transport.py][1871] : userauth is OK
2025-06-13 16:52:16,343 [ INFO][       Thread-261594][   transport.py][1871] : Authentication (password) successful!
2025-06-13 16:52:16,343 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 16:52:16,951 [DEBUG][       Thread-261594][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 16:52:16,951 [DEBUG][       Thread-261594][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 16:52:16,992 [DEBUG][       Thread-261594][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 16:52:16,992 [DEBUG][       Thread-261594][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 16:52:16,995 [DEBUG][       Thread-261594][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 16:52:17,006 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 16:52:17,006 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 16:52:17,007 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 16:52:17,008 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 16:52:17,010 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 16:52:17,010 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 16:52:17,010 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 16:52:17,010 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 16:52:17,010 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.619379 -999.00  +13.30  15.62     36   -1.10 1 1 1 1 1   887    0 13.68 -29.76 ----- 12.6 15.6 48.0 19.8 15.5 -28.8 14.9 -29.3 15.5 -29.0 16.2 -27.9
2025-06-13 16:52:17,010 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 16:52:17,010 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 16:52:17,010 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.619379
2025-06-13 16:52:17,011 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 16:52:17,011 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 16:52:17,011 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 16:52:17,011 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 16:52:17,011 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 16:52:17,011 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T16:51:43', tmtdew=16.4, humidity=31.97, cloud=0.0, wind=14.06, temperature=13.33, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T14:51:54.346', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 16:52:17,011 [DEBUG][       Thread-261594][   transport.py][1871] : EOF in transport thread
2025-06-13 16:52:17,086 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 16:52:17,097 [DEBUG][       Thread-261597][   transport.py][1871] : starting thread (client mode): 0x863cbeb0
2025-06-13 16:52:17,097 [DEBUG][       Thread-261597][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 16:52:17,112 [DEBUG][       Thread-261597][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 16:52:17,112 [ INFO][       Thread-261597][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 16:52:17,119 [DEBUG][       Thread-261597][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 16:52:17,119 [DEBUG][       Thread-261597][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 16:52:17,119 [DEBUG][       Thread-261597][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 16:52:17,119 [DEBUG][       Thread-261597][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:52:17,120 [DEBUG][       Thread-261597][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:52:17,120 [DEBUG][       Thread-261597][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:52:17,120 [DEBUG][       Thread-261597][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:52:17,120 [DEBUG][       Thread-261597][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 16:52:17,120 [DEBUG][       Thread-261597][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 16:52:17,120 [DEBUG][       Thread-261597][   transport.py][1871] : client lang: <none>
2025-06-13 16:52:17,120 [DEBUG][       Thread-261597][   transport.py][1871] : server lang: <none>
2025-06-13 16:52:17,120 [DEBUG][       Thread-261597][   transport.py][1871] : kex follows: False
2025-06-13 16:52:17,120 [DEBUG][       Thread-261597][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 16:52:17,120 [DEBUG][       Thread-261597][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 16:52:17,120 [DEBUG][       Thread-261597][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 16:52:17,120 [DEBUG][       Thread-261597][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 16:52:17,120 [DEBUG][       Thread-261597][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 16:52:17,120 [DEBUG][       Thread-261597][   transport.py][1871] : Compression: none
2025-06-13 16:52:17,120 [DEBUG][       Thread-261597][   transport.py][1871] : === End of kex handshake ===
2025-06-13 16:52:17,180 [DEBUG][       Thread-261597][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 16:52:17,180 [DEBUG][       Thread-261597][   transport.py][1871] : Switch to new keys ...
2025-06-13 16:52:17,180 [DEBUG][       Thread-261597][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 16:52:17,180 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 16:52:17,180 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 16:52:17,236 [DEBUG][       Thread-261597][   transport.py][1871] : userauth is OK
2025-06-13 16:52:17,236 [DEBUG][       Thread-261597][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 16:52:17,236 [DEBUG][       Thread-261597][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 16:52:17,236 [DEBUG][       Thread-261597][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 16:52:17,236 [DEBUG][       Thread-261597][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 16:52:17,256 [ INFO][       Thread-261597][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 16:52:17,256 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 16:52:17,256 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 16:52:18,248 [DEBUG][       Thread-261597][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 16:52:18,249 [DEBUG][       Thread-261597][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 16:52:18,300 [DEBUG][       Thread-261597][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 16:52:18,300 [DEBUG][       Thread-261597][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 16:52:18,309 [DEBUG][       Thread-261597][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 16:52:18,318 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 16:52:18,318 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 16:52:18,327 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 16:52:18,337 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 16:52:18,337 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 16:52:18,337 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 16:52:18,346 [DEBUG][       Thread-261597][   transport.py][1871] : EOF in transport thread
2025-06-13 16:52:20,122 [DEBUG][Thread-261599 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:52:21,109 [DEBUG][Thread-261600 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:52:21,201 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:52:21,202 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:52:22,187 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:52:22,189 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:52:24,385 [DEBUG][Thread-261601 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:52:28,339 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 16:52:28,339 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 16:52:28,339 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 16:52:28,342 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 16:52:28,802 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 16, 52, 15), 16.38, 32.08, 0.0, 16.13, 13.32, 0, 0, 0, 2, 0, 0),)
2025-06-13 16:52:28,802 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 16:52:15
2025-06-13 16:52:28,880 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 16:52:28,884 [DEBUG][       Thread-261602][   transport.py][1871] : starting thread (client mode): 0x863c9060
2025-06-13 16:52:28,884 [DEBUG][       Thread-261602][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 16:52:28,906 [DEBUG][       Thread-261602][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 16:52:28,906 [ INFO][       Thread-261602][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 16:52:28,909 [DEBUG][       Thread-261602][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 16:52:28,910 [DEBUG][       Thread-261602][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 16:52:28,910 [DEBUG][       Thread-261602][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 16:52:28,910 [DEBUG][       Thread-261602][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:52:28,910 [DEBUG][       Thread-261602][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:52:28,910 [DEBUG][       Thread-261602][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:52:28,910 [DEBUG][       Thread-261602][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:52:28,910 [DEBUG][       Thread-261602][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 16:52:28,910 [DEBUG][       Thread-261602][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 16:52:28,910 [DEBUG][       Thread-261602][   transport.py][1871] : client lang: <none>
2025-06-13 16:52:28,910 [DEBUG][       Thread-261602][   transport.py][1871] : server lang: <none>
2025-06-13 16:52:28,910 [DEBUG][       Thread-261602][   transport.py][1871] : kex follows: False
2025-06-13 16:52:28,910 [DEBUG][       Thread-261602][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 16:52:28,910 [DEBUG][       Thread-261602][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 16:52:28,910 [DEBUG][       Thread-261602][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 16:52:28,910 [DEBUG][       Thread-261602][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 16:52:28,910 [DEBUG][       Thread-261602][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 16:52:28,910 [DEBUG][       Thread-261602][   transport.py][1871] : Compression: none
2025-06-13 16:52:28,910 [DEBUG][       Thread-261602][   transport.py][1871] : === End of kex handshake ===
2025-06-13 16:52:28,927 [DEBUG][       Thread-261602][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 16:52:28,927 [DEBUG][       Thread-261602][   transport.py][1871] : Switch to new keys ...
2025-06-13 16:52:28,928 [DEBUG][       Thread-261602][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 16:52:28,928 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 16:52:28,928 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 16:52:28,929 [DEBUG][       Thread-261602][   transport.py][1871] : userauth is OK
2025-06-13 16:52:28,942 [ INFO][       Thread-261602][   transport.py][1871] : Authentication (password) successful!
2025-06-13 16:52:28,943 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 16:52:29,143 [DEBUG][Thread-261604 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:52:29,556 [DEBUG][       Thread-261602][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 16:52:29,556 [DEBUG][       Thread-261602][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 16:52:29,597 [DEBUG][       Thread-261602][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 16:52:29,597 [DEBUG][       Thread-261602][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 16:52:29,601 [DEBUG][       Thread-261602][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 16:52:29,615 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 16:52:29,615 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 16:52:29,617 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 16:52:29,618 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 16:52:29,624 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 16:52:29,626 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 16:52:29,627 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 16:52:29,627 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 16:52:29,627 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.619379 -999.00  +13.30  15.62     36   -1.10 1 1 1 1 1   887    0 13.68 -29.76 ----- 12.6 15.6 48.0 19.8 15.5 -28.8 14.9 -29.3 15.5 -29.0 16.2 -27.9
2025-06-13 16:52:29,627 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 16:52:29,628 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 16:52:29,628 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.619379
2025-06-13 16:52:29,628 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 16:52:29,629 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 16:52:29,629 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 16:52:29,629 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 16:52:29,629 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 16:52:29,629 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T16:52:15', tmtdew=16.38, humidity=32.08, cloud=0.0, wind=16.13, temperature=13.32, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T14:51:54.346', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 16:52:29,630 [DEBUG][       Thread-261602][   transport.py][1871] : EOF in transport thread
2025-06-13 16:52:29,712 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 16:52:29,722 [DEBUG][       Thread-261606][   transport.py][1871] : starting thread (client mode): 0x86353610
2025-06-13 16:52:29,722 [DEBUG][       Thread-261606][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 16:52:29,738 [DEBUG][       Thread-261606][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 16:52:29,739 [ INFO][       Thread-261606][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 16:52:29,747 [DEBUG][       Thread-261606][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 16:52:29,747 [DEBUG][       Thread-261606][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 16:52:29,747 [DEBUG][       Thread-261606][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 16:52:29,747 [DEBUG][       Thread-261606][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:52:29,747 [DEBUG][       Thread-261606][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:52:29,747 [DEBUG][       Thread-261606][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:52:29,747 [DEBUG][       Thread-261606][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:52:29,747 [DEBUG][       Thread-261606][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 16:52:29,747 [DEBUG][       Thread-261606][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 16:52:29,747 [DEBUG][       Thread-261606][   transport.py][1871] : client lang: <none>
2025-06-13 16:52:29,747 [DEBUG][       Thread-261606][   transport.py][1871] : server lang: <none>
2025-06-13 16:52:29,747 [DEBUG][       Thread-261606][   transport.py][1871] : kex follows: False
2025-06-13 16:52:29,747 [DEBUG][       Thread-261606][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 16:52:29,747 [DEBUG][       Thread-261606][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 16:52:29,747 [DEBUG][       Thread-261606][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 16:52:29,747 [DEBUG][       Thread-261606][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 16:52:29,747 [DEBUG][       Thread-261606][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 16:52:29,748 [DEBUG][       Thread-261606][   transport.py][1871] : Compression: none
2025-06-13 16:52:29,748 [DEBUG][       Thread-261606][   transport.py][1871] : === End of kex handshake ===
2025-06-13 16:52:29,808 [DEBUG][       Thread-261606][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 16:52:29,809 [DEBUG][       Thread-261606][   transport.py][1871] : Switch to new keys ...
2025-06-13 16:52:29,809 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 16:52:29,810 [DEBUG][       Thread-261606][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 16:52:29,810 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 16:52:29,865 [DEBUG][       Thread-261606][   transport.py][1871] : userauth is OK
2025-06-13 16:52:29,865 [DEBUG][       Thread-261606][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 16:52:29,865 [DEBUG][       Thread-261606][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 16:52:29,865 [DEBUG][       Thread-261606][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 16:52:29,866 [DEBUG][       Thread-261606][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 16:52:29,885 [ INFO][       Thread-261606][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 16:52:29,886 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 16:52:29,886 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 16:52:30,887 [DEBUG][       Thread-261606][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 16:52:30,887 [DEBUG][       Thread-261606][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 16:52:30,937 [DEBUG][       Thread-261606][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 16:52:30,937 [DEBUG][       Thread-261606][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 16:52:30,949 [DEBUG][       Thread-261606][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 16:52:30,957 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 16:52:30,958 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 16:52:30,966 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 16:52:30,976 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 16:52:30,976 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 16:52:30,976 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 16:52:30,984 [DEBUG][       Thread-261606][   transport.py][1871] : EOF in transport thread
2025-06-13 16:52:38,161 [DEBUG][Thread-261608 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:52:40,984 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 16:52:40,984 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 16:52:40,984 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 16:52:40,985 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 16:52:41,439 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 16, 52, 15), 16.38, 32.08, 0.0, 16.13, 13.32, 0, 0, 0, 2, 0, 0),)
2025-06-13 16:52:41,439 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 16:52:15
2025-06-13 16:52:41,518 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 16:52:41,524 [DEBUG][       Thread-261609][   transport.py][1871] : starting thread (client mode): 0x867ffc70
2025-06-13 16:52:41,524 [DEBUG][       Thread-261609][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 16:52:41,546 [DEBUG][       Thread-261609][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 16:52:41,546 [ INFO][       Thread-261609][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 16:52:41,549 [DEBUG][       Thread-261609][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 16:52:41,549 [DEBUG][       Thread-261609][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 16:52:41,549 [DEBUG][       Thread-261609][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 16:52:41,550 [DEBUG][       Thread-261609][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:52:41,550 [DEBUG][       Thread-261609][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:52:41,550 [DEBUG][       Thread-261609][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:52:41,550 [DEBUG][       Thread-261609][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:52:41,550 [DEBUG][       Thread-261609][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 16:52:41,550 [DEBUG][       Thread-261609][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 16:52:41,550 [DEBUG][       Thread-261609][   transport.py][1871] : client lang: <none>
2025-06-13 16:52:41,550 [DEBUG][       Thread-261609][   transport.py][1871] : server lang: <none>
2025-06-13 16:52:41,550 [DEBUG][       Thread-261609][   transport.py][1871] : kex follows: False
2025-06-13 16:52:41,550 [DEBUG][       Thread-261609][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 16:52:41,550 [DEBUG][       Thread-261609][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 16:52:41,550 [DEBUG][       Thread-261609][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 16:52:41,550 [DEBUG][       Thread-261609][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 16:52:41,550 [DEBUG][       Thread-261609][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 16:52:41,550 [DEBUG][       Thread-261609][   transport.py][1871] : Compression: none
2025-06-13 16:52:41,550 [DEBUG][       Thread-261609][   transport.py][1871] : === End of kex handshake ===
2025-06-13 16:52:41,567 [DEBUG][       Thread-261609][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 16:52:41,567 [DEBUG][       Thread-261609][   transport.py][1871] : Switch to new keys ...
2025-06-13 16:52:41,568 [DEBUG][       Thread-261609][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 16:52:41,568 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 16:52:41,568 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 16:52:41,569 [DEBUG][       Thread-261609][   transport.py][1871] : userauth is OK
2025-06-13 16:52:41,594 [ INFO][       Thread-261609][   transport.py][1871] : Authentication (password) successful!
2025-06-13 16:52:41,594 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 16:52:42,203 [DEBUG][       Thread-261609][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 16:52:42,203 [DEBUG][       Thread-261609][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 16:52:42,245 [DEBUG][       Thread-261609][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 16:52:42,245 [DEBUG][       Thread-261609][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 16:52:42,247 [DEBUG][       Thread-261609][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 16:52:42,258 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 16:52:42,259 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 16:52:42,261 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 16:52:42,262 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 16:52:42,268 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 16:52:42,269 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 16:52:42,269 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 16:52:42,270 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 16:52:42,270 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.619726 -999.00  +13.30  13.40     37   -1.00 1 1 1 1 1   887    0 13.78 -28.42 ----- 12.2 13.4 35.6 17.0 15.5 -28.9 14.9 -29.0 15.5 -28.5 16.2 -27.9
2025-06-13 16:52:42,270 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 16:52:42,270 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 16:52:42,270 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.619726
2025-06-13 16:52:42,271 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 16:52:42,271 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 16:52:42,271 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 16:52:42,271 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 16:52:42,271 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 16:52:42,272 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T16:52:15', tmtdew=16.38, humidity=32.08, cloud=0.0, wind=16.13, temperature=13.32, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T14:52:24.326', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 16:52:42,272 [DEBUG][       Thread-261609][   transport.py][1871] : EOF in transport thread
2025-06-13 16:52:42,355 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 16:52:42,366 [DEBUG][       Thread-261612][   transport.py][1871] : starting thread (client mode): 0x863bea70
2025-06-13 16:52:42,366 [DEBUG][       Thread-261612][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 16:52:42,392 [DEBUG][       Thread-261612][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 16:52:42,392 [ INFO][       Thread-261612][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 16:52:42,400 [DEBUG][       Thread-261612][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 16:52:42,400 [DEBUG][       Thread-261612][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 16:52:42,400 [DEBUG][       Thread-261612][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 16:52:42,400 [DEBUG][       Thread-261612][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:52:42,400 [DEBUG][       Thread-261612][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:52:42,400 [DEBUG][       Thread-261612][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:52:42,400 [DEBUG][       Thread-261612][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:52:42,400 [DEBUG][       Thread-261612][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 16:52:42,400 [DEBUG][       Thread-261612][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 16:52:42,400 [DEBUG][       Thread-261612][   transport.py][1871] : client lang: <none>
2025-06-13 16:52:42,400 [DEBUG][       Thread-261612][   transport.py][1871] : server lang: <none>
2025-06-13 16:52:42,400 [DEBUG][       Thread-261612][   transport.py][1871] : kex follows: False
2025-06-13 16:52:42,400 [DEBUG][       Thread-261612][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 16:52:42,401 [DEBUG][       Thread-261612][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 16:52:42,401 [DEBUG][       Thread-261612][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 16:52:42,401 [DEBUG][       Thread-261612][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 16:52:42,401 [DEBUG][       Thread-261612][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 16:52:42,401 [DEBUG][       Thread-261612][   transport.py][1871] : Compression: none
2025-06-13 16:52:42,401 [DEBUG][       Thread-261612][   transport.py][1871] : === End of kex handshake ===
2025-06-13 16:52:42,458 [DEBUG][       Thread-261612][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 16:52:42,458 [DEBUG][       Thread-261612][   transport.py][1871] : Switch to new keys ...
2025-06-13 16:52:42,459 [DEBUG][       Thread-261612][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 16:52:42,459 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 16:52:42,460 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 16:52:42,516 [DEBUG][       Thread-261612][   transport.py][1871] : userauth is OK
2025-06-13 16:52:42,517 [DEBUG][       Thread-261612][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 16:52:42,517 [DEBUG][       Thread-261612][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 16:52:42,517 [DEBUG][       Thread-261612][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 16:52:42,517 [DEBUG][       Thread-261612][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 16:52:42,536 [ INFO][       Thread-261612][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 16:52:42,536 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 16:52:42,536 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 16:52:43,506 [DEBUG][       Thread-261612][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 16:52:43,506 [DEBUG][       Thread-261612][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 16:52:43,555 [DEBUG][       Thread-261612][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 16:52:43,555 [DEBUG][       Thread-261612][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 16:52:43,564 [DEBUG][       Thread-261612][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 16:52:43,573 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 16:52:43,573 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 16:52:43,581 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 16:52:43,590 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 16:52:43,590 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 16:52:43,591 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 16:52:43,598 [DEBUG][       Thread-261612][   transport.py][1871] : EOF in transport thread
2025-06-13 16:52:47,184 [DEBUG][Thread-261614 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:52:53,597 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 16:52:53,598 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 16:52:53,598 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 16:52:53,601 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 16:52:54,067 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 16, 52, 46), 16.35, 32.14, 0.0, 12.88, 13.33, 0, 0, 0, 2, 0, 0),)
2025-06-13 16:52:54,067 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 16:52:46
2025-06-13 16:52:54,147 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 16:52:54,152 [DEBUG][       Thread-261615][   transport.py][1871] : starting thread (client mode): 0x863c9420
2025-06-13 16:52:54,152 [DEBUG][       Thread-261615][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 16:52:54,170 [DEBUG][       Thread-261615][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 16:52:54,170 [ INFO][       Thread-261615][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 16:52:54,174 [DEBUG][       Thread-261615][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 16:52:54,174 [DEBUG][       Thread-261615][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 16:52:54,174 [DEBUG][       Thread-261615][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 16:52:54,174 [DEBUG][       Thread-261615][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:52:54,174 [DEBUG][       Thread-261615][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:52:54,174 [DEBUG][       Thread-261615][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:52:54,174 [DEBUG][       Thread-261615][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:52:54,174 [DEBUG][       Thread-261615][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 16:52:54,174 [DEBUG][       Thread-261615][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 16:52:54,174 [DEBUG][       Thread-261615][   transport.py][1871] : client lang: <none>
2025-06-13 16:52:54,174 [DEBUG][       Thread-261615][   transport.py][1871] : server lang: <none>
2025-06-13 16:52:54,174 [DEBUG][       Thread-261615][   transport.py][1871] : kex follows: False
2025-06-13 16:52:54,174 [DEBUG][       Thread-261615][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 16:52:54,174 [DEBUG][       Thread-261615][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 16:52:54,174 [DEBUG][       Thread-261615][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 16:52:54,174 [DEBUG][       Thread-261615][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 16:52:54,174 [DEBUG][       Thread-261615][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 16:52:54,174 [DEBUG][       Thread-261615][   transport.py][1871] : Compression: none
2025-06-13 16:52:54,174 [DEBUG][       Thread-261615][   transport.py][1871] : === End of kex handshake ===
2025-06-13 16:52:54,182 [DEBUG][       Thread-261615][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 16:52:54,183 [DEBUG][       Thread-261615][   transport.py][1871] : Switch to new keys ...
2025-06-13 16:52:54,183 [DEBUG][       Thread-261615][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 16:52:54,183 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 16:52:54,184 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 16:52:54,185 [DEBUG][       Thread-261615][   transport.py][1871] : userauth is OK
2025-06-13 16:52:54,198 [ INFO][       Thread-261615][   transport.py][1871] : Authentication (password) successful!
2025-06-13 16:52:54,199 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 16:52:54,827 [DEBUG][       Thread-261615][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 16:52:54,827 [DEBUG][       Thread-261615][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 16:52:54,869 [DEBUG][       Thread-261615][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 16:52:54,869 [DEBUG][       Thread-261615][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 16:52:54,872 [DEBUG][       Thread-261615][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 16:52:54,884 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 16:52:54,885 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 16:52:54,886 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 16:52:54,888 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 16:52:54,894 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 16:52:54,897 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 16:52:54,897 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 16:52:54,897 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 16:52:54,898 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.619726 -999.00  +13.30  13.40     37   -1.00 1 1 1 1 1   887    0 13.78 -28.42 ----- 12.2 13.4 35.6 17.0 15.5 -28.9 14.9 -29.0 15.5 -28.5 16.2 -27.9
2025-06-13 16:52:54,898 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 16:52:54,898 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 16:52:54,898 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.619726
2025-06-13 16:52:54,898 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 16:52:54,899 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 16:52:54,899 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 16:52:54,899 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 16:52:54,899 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 16:52:54,899 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T16:52:46', tmtdew=16.35, humidity=32.14, cloud=0.0, wind=12.88, temperature=13.33, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T14:52:24.326', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 16:52:54,900 [DEBUG][       Thread-261615][   transport.py][1871] : EOF in transport thread
2025-06-13 16:52:54,983 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 16:52:56,204 [DEBUG][Thread-261618 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:53:05,239 [DEBUG][Thread-261619 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:53:14,258 [DEBUG][Thread-261620 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:53:21,340 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:53:21,340 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:53:22,247 [DEBUG][Thread-261621 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:53:23,276 [DEBUG][Thread-261622 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:53:23,328 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:53:23,329 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:53:24,434 [DEBUG][Thread-261623 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:53:32,298 [DEBUG][Thread-261624 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:53:41,320 [DEBUG][Thread-261625 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:53:50,342 [DEBUG][Thread-261626 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:53:59,363 [DEBUG][Thread-261627 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:54:08,385 [DEBUG][Thread-261628 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:54:17,405 [DEBUG][Thread-261629 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:54:21,477 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:54:21,478 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:54:23,404 [DEBUG][Thread-261630 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:54:24,464 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:54:24,465 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:54:24,487 [DEBUG][Thread-261631 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:54:26,424 [DEBUG][Thread-261632 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:54:35,444 [DEBUG][Thread-261633 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:54:44,467 [DEBUG][Thread-261634 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:54:53,487 [DEBUG][Thread-261635 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:55:02,508 [DEBUG][Thread-261636 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:55:04,980 [WARNING][ poll_weather_worker][      driver.py][ 286] : Unable to open ssh connection for writing weather state to io.saao.ac.za: [Errno 110] Connection timed out
2025-06-13 16:55:11,528 [DEBUG][Thread-261637 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:55:14,991 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 16:55:14,991 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 16:55:14,991 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 16:55:14,994 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 16:55:15,471 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 16, 54, 53), 16.17, 32.41, 0.0, 13.02, 13.4, 0, 0, 0, 2, 0, 0),)
2025-06-13 16:55:15,471 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 16:54:53
2025-06-13 16:55:15,553 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 16:55:15,559 [DEBUG][       Thread-261638][   transport.py][1871] : starting thread (client mode): 0x867ffdc0
2025-06-13 16:55:15,559 [DEBUG][       Thread-261638][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 16:55:15,579 [DEBUG][       Thread-261638][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 16:55:15,579 [ INFO][       Thread-261638][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 16:55:15,582 [DEBUG][       Thread-261638][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 16:55:15,582 [DEBUG][       Thread-261638][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 16:55:15,582 [DEBUG][       Thread-261638][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 16:55:15,582 [DEBUG][       Thread-261638][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:55:15,582 [DEBUG][       Thread-261638][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:55:15,582 [DEBUG][       Thread-261638][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:55:15,582 [DEBUG][       Thread-261638][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:55:15,582 [DEBUG][       Thread-261638][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 16:55:15,582 [DEBUG][       Thread-261638][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 16:55:15,582 [DEBUG][       Thread-261638][   transport.py][1871] : client lang: <none>
2025-06-13 16:55:15,582 [DEBUG][       Thread-261638][   transport.py][1871] : server lang: <none>
2025-06-13 16:55:15,582 [DEBUG][       Thread-261638][   transport.py][1871] : kex follows: False
2025-06-13 16:55:15,582 [DEBUG][       Thread-261638][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 16:55:15,582 [DEBUG][       Thread-261638][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 16:55:15,582 [DEBUG][       Thread-261638][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 16:55:15,582 [DEBUG][       Thread-261638][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 16:55:15,582 [DEBUG][       Thread-261638][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 16:55:15,582 [DEBUG][       Thread-261638][   transport.py][1871] : Compression: none
2025-06-13 16:55:15,582 [DEBUG][       Thread-261638][   transport.py][1871] : === End of kex handshake ===
2025-06-13 16:55:15,602 [DEBUG][       Thread-261638][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 16:55:15,602 [DEBUG][       Thread-261638][   transport.py][1871] : Switch to new keys ...
2025-06-13 16:55:15,603 [DEBUG][       Thread-261638][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 16:55:15,603 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 16:55:15,604 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 16:55:15,605 [DEBUG][       Thread-261638][   transport.py][1871] : userauth is OK
2025-06-13 16:55:15,629 [ INFO][       Thread-261638][   transport.py][1871] : Authentication (password) successful!
2025-06-13 16:55:15,630 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 16:55:19,151 [DEBUG][       Thread-261638][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 16:55:19,151 [DEBUG][       Thread-261638][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 16:55:19,193 [DEBUG][       Thread-261638][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 16:55:19,193 [DEBUG][       Thread-261638][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 16:55:19,196 [DEBUG][       Thread-261638][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 16:55:19,275 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 16:55:19,276 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 16:55:19,278 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 16:55:19,279 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 16:55:19,284 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 16:55:19,286 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 16:55:19,287 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 16:55:19,287 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 16:55:19,287 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.621115 -999.00  +13.40  13.04     37   -0.90 1 1 1 1 1   887    0 13.92 -22.81 ----- 13.9 13.0 39.4 17.7 15.5 -28.8 15.0 -29.4 15.6 -29.2 16.3 -28.2
2025-06-13 16:55:19,288 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 16:55:19,288 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 16:55:19,288 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.621115
2025-06-13 16:55:19,288 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 16:55:19,289 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 16:55:19,289 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 16:55:19,289 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 16:55:19,289 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 16:55:19,289 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T16:54:53', tmtdew=16.17, humidity=32.41, cloud=0.0, wind=13.02, temperature=13.4, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T14:54:24.336', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 16:55:19,290 [DEBUG][       Thread-261638][   transport.py][1871] : EOF in transport thread
2025-06-13 16:55:19,373 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 16:55:19,385 [DEBUG][       Thread-261641][   transport.py][1871] : starting thread (client mode): 0x86391de0
2025-06-13 16:55:19,385 [DEBUG][       Thread-261641][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 16:55:19,406 [DEBUG][       Thread-261641][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 16:55:19,406 [ INFO][       Thread-261641][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 16:55:19,418 [DEBUG][       Thread-261641][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 16:55:19,419 [DEBUG][       Thread-261641][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 16:55:19,419 [DEBUG][       Thread-261641][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 16:55:19,419 [DEBUG][       Thread-261641][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:55:19,419 [DEBUG][       Thread-261641][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:55:19,419 [DEBUG][       Thread-261641][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:55:19,419 [DEBUG][       Thread-261641][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:55:19,419 [DEBUG][       Thread-261641][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 16:55:19,419 [DEBUG][       Thread-261641][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 16:55:19,419 [DEBUG][       Thread-261641][   transport.py][1871] : client lang: <none>
2025-06-13 16:55:19,419 [DEBUG][       Thread-261641][   transport.py][1871] : server lang: <none>
2025-06-13 16:55:19,419 [DEBUG][       Thread-261641][   transport.py][1871] : kex follows: False
2025-06-13 16:55:19,419 [DEBUG][       Thread-261641][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 16:55:19,419 [DEBUG][       Thread-261641][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 16:55:19,419 [DEBUG][       Thread-261641][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 16:55:19,419 [DEBUG][       Thread-261641][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 16:55:19,420 [DEBUG][       Thread-261641][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 16:55:19,420 [DEBUG][       Thread-261641][   transport.py][1871] : Compression: none
2025-06-13 16:55:19,420 [DEBUG][       Thread-261641][   transport.py][1871] : === End of kex handshake ===
2025-06-13 16:55:19,473 [DEBUG][       Thread-261641][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 16:55:19,474 [DEBUG][       Thread-261641][   transport.py][1871] : Switch to new keys ...
2025-06-13 16:55:19,483 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 16:55:19,483 [DEBUG][       Thread-261641][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 16:55:19,484 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 16:55:19,529 [DEBUG][       Thread-261641][   transport.py][1871] : userauth is OK
2025-06-13 16:55:19,529 [DEBUG][       Thread-261641][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 16:55:19,529 [DEBUG][       Thread-261641][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 16:55:19,529 [DEBUG][       Thread-261641][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 16:55:19,529 [DEBUG][       Thread-261641][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 16:55:19,543 [ INFO][       Thread-261641][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 16:55:19,543 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 16:55:19,543 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 16:55:20,547 [DEBUG][Thread-261643 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:55:20,556 [DEBUG][       Thread-261641][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 16:55:20,557 [DEBUG][       Thread-261641][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 16:55:20,610 [DEBUG][       Thread-261641][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 16:55:20,610 [DEBUG][       Thread-261641][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 16:55:20,625 [DEBUG][       Thread-261641][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 16:55:20,638 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 16:55:20,638 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 16:55:20,653 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 16:55:20,661 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 16:55:20,661 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 16:55:20,661 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 16:55:20,669 [DEBUG][       Thread-261641][   transport.py][1871] : EOF in transport thread
2025-06-13 16:55:21,616 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:55:21,617 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:55:24,510 [DEBUG][Thread-261644 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:55:24,535 [DEBUG][Thread-261645 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:55:25,559 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:55:25,561 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:55:29,582 [DEBUG][Thread-261646 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:55:30,669 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 16:55:30,670 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 16:55:30,670 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 16:55:30,673 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 16:55:31,153 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 16, 55, 25), 16.25, 32.21, 0.0, 12.33, 13.41, 0, 0, 0, 2, 0, 0),)
2025-06-13 16:55:31,153 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 16:55:25
2025-06-13 16:55:31,234 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 16:55:31,239 [DEBUG][       Thread-261647][   transport.py][1871] : starting thread (client mode): 0x867fe230
2025-06-13 16:55:31,239 [DEBUG][       Thread-261647][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 16:55:31,259 [DEBUG][       Thread-261647][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 16:55:31,259 [ INFO][       Thread-261647][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 16:55:31,263 [DEBUG][       Thread-261647][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 16:55:31,263 [DEBUG][       Thread-261647][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 16:55:31,263 [DEBUG][       Thread-261647][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 16:55:31,263 [DEBUG][       Thread-261647][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:55:31,263 [DEBUG][       Thread-261647][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:55:31,263 [DEBUG][       Thread-261647][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:55:31,263 [DEBUG][       Thread-261647][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:55:31,263 [DEBUG][       Thread-261647][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 16:55:31,263 [DEBUG][       Thread-261647][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 16:55:31,263 [DEBUG][       Thread-261647][   transport.py][1871] : client lang: <none>
2025-06-13 16:55:31,263 [DEBUG][       Thread-261647][   transport.py][1871] : server lang: <none>
2025-06-13 16:55:31,263 [DEBUG][       Thread-261647][   transport.py][1871] : kex follows: False
2025-06-13 16:55:31,263 [DEBUG][       Thread-261647][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 16:55:31,263 [DEBUG][       Thread-261647][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 16:55:31,263 [DEBUG][       Thread-261647][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 16:55:31,263 [DEBUG][       Thread-261647][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 16:55:31,263 [DEBUG][       Thread-261647][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 16:55:31,263 [DEBUG][       Thread-261647][   transport.py][1871] : Compression: none
2025-06-13 16:55:31,263 [DEBUG][       Thread-261647][   transport.py][1871] : === End of kex handshake ===
2025-06-13 16:55:31,280 [DEBUG][       Thread-261647][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 16:55:31,281 [DEBUG][       Thread-261647][   transport.py][1871] : Switch to new keys ...
2025-06-13 16:55:31,281 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 16:55:31,281 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 16:55:31,282 [DEBUG][       Thread-261647][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 16:55:31,282 [DEBUG][       Thread-261647][   transport.py][1871] : userauth is OK
2025-06-13 16:55:31,307 [ INFO][       Thread-261647][   transport.py][1871] : Authentication (password) successful!
2025-06-13 16:55:31,308 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 16:55:31,912 [DEBUG][       Thread-261647][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 16:55:31,912 [DEBUG][       Thread-261647][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 16:55:31,953 [DEBUG][       Thread-261647][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 16:55:31,953 [DEBUG][       Thread-261647][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 16:55:31,956 [DEBUG][       Thread-261647][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 16:55:31,970 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 16:55:31,970 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 16:55:31,972 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 16:55:31,974 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 16:55:31,977 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 16:55:31,978 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 16:55:31,978 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 16:55:31,978 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 16:55:31,978 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.621462 -999.00  +13.30  17.90     36   -1.00 1 1 1 1 1   887    0 13.84 -22.71 ----- 16.1 17.9 37.0 19.2 15.5 -28.9 15.0 -29.6 15.5 -29.0 16.3 -28.2
2025-06-13 16:55:31,978 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 16:55:31,978 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 16:55:31,978 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.621462
2025-06-13 16:55:31,978 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 16:55:31,978 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 16:55:31,978 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 16:55:31,978 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 16:55:31,978 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 16:55:31,978 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T16:55:25', tmtdew=16.25, humidity=32.21, cloud=0.0, wind=12.33, temperature=13.41, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T14:54:54.317', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 16:55:31,979 [DEBUG][       Thread-261647][   transport.py][1871] : EOF in transport thread
2025-06-13 16:55:32,050 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 16:55:32,059 [DEBUG][       Thread-261650][   transport.py][1871] : starting thread (client mode): 0x863efbe0
2025-06-13 16:55:32,059 [DEBUG][       Thread-261650][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 16:55:32,074 [DEBUG][       Thread-261650][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 16:55:32,074 [ INFO][       Thread-261650][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 16:55:32,082 [DEBUG][       Thread-261650][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 16:55:32,082 [DEBUG][       Thread-261650][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 16:55:32,082 [DEBUG][       Thread-261650][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 16:55:32,082 [DEBUG][       Thread-261650][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:55:32,082 [DEBUG][       Thread-261650][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:55:32,082 [DEBUG][       Thread-261650][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:55:32,082 [DEBUG][       Thread-261650][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:55:32,082 [DEBUG][       Thread-261650][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 16:55:32,082 [DEBUG][       Thread-261650][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 16:55:32,082 [DEBUG][       Thread-261650][   transport.py][1871] : client lang: <none>
2025-06-13 16:55:32,082 [DEBUG][       Thread-261650][   transport.py][1871] : server lang: <none>
2025-06-13 16:55:32,082 [DEBUG][       Thread-261650][   transport.py][1871] : kex follows: False
2025-06-13 16:55:32,082 [DEBUG][       Thread-261650][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 16:55:32,082 [DEBUG][       Thread-261650][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 16:55:32,082 [DEBUG][       Thread-261650][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 16:55:32,082 [DEBUG][       Thread-261650][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 16:55:32,082 [DEBUG][       Thread-261650][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 16:55:32,082 [DEBUG][       Thread-261650][   transport.py][1871] : Compression: none
2025-06-13 16:55:32,082 [DEBUG][       Thread-261650][   transport.py][1871] : === End of kex handshake ===
2025-06-13 16:55:32,141 [DEBUG][       Thread-261650][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 16:55:32,142 [DEBUG][       Thread-261650][   transport.py][1871] : Switch to new keys ...
2025-06-13 16:55:32,142 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 16:55:32,143 [DEBUG][       Thread-261650][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 16:55:32,143 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 16:55:32,198 [DEBUG][       Thread-261650][   transport.py][1871] : userauth is OK
2025-06-13 16:55:32,198 [DEBUG][       Thread-261650][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 16:55:32,198 [DEBUG][       Thread-261650][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 16:55:32,199 [DEBUG][       Thread-261650][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 16:55:32,199 [DEBUG][       Thread-261650][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 16:55:32,217 [ INFO][       Thread-261650][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 16:55:32,218 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 16:55:32,218 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 16:55:33,182 [DEBUG][       Thread-261650][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 16:55:33,182 [DEBUG][       Thread-261650][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 16:55:33,232 [DEBUG][       Thread-261650][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 16:55:33,232 [DEBUG][       Thread-261650][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 16:55:33,245 [DEBUG][       Thread-261650][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 16:55:33,256 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 16:55:33,257 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 16:55:33,265 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 16:55:33,275 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 16:55:33,275 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 16:55:33,275 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 16:55:33,283 [DEBUG][       Thread-261650][   transport.py][1871] : EOF in transport thread
2025-06-13 16:55:38,606 [DEBUG][Thread-261652 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:55:43,286 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 16:55:43,286 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 16:55:43,295 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 16:55:43,298 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 16:55:43,779 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 16, 55, 25), 16.25, 32.21, 0.0, 12.33, 13.41, 0, 0, 0, 2, 0, 0),)
2025-06-13 16:55:43,779 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 16:55:25
2025-06-13 16:55:43,861 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 16:55:43,865 [DEBUG][       Thread-261653][   transport.py][1871] : starting thread (client mode): 0x863c89a0
2025-06-13 16:55:43,865 [DEBUG][       Thread-261653][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 16:55:43,886 [DEBUG][       Thread-261653][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 16:55:43,886 [ INFO][       Thread-261653][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 16:55:43,890 [DEBUG][       Thread-261653][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 16:55:43,890 [DEBUG][       Thread-261653][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 16:55:43,890 [DEBUG][       Thread-261653][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 16:55:43,890 [DEBUG][       Thread-261653][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:55:43,890 [DEBUG][       Thread-261653][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:55:43,890 [DEBUG][       Thread-261653][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:55:43,890 [DEBUG][       Thread-261653][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:55:43,890 [DEBUG][       Thread-261653][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 16:55:43,890 [DEBUG][       Thread-261653][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 16:55:43,890 [DEBUG][       Thread-261653][   transport.py][1871] : client lang: <none>
2025-06-13 16:55:43,890 [DEBUG][       Thread-261653][   transport.py][1871] : server lang: <none>
2025-06-13 16:55:43,890 [DEBUG][       Thread-261653][   transport.py][1871] : kex follows: False
2025-06-13 16:55:43,890 [DEBUG][       Thread-261653][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 16:55:43,890 [DEBUG][       Thread-261653][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 16:55:43,890 [DEBUG][       Thread-261653][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 16:55:43,890 [DEBUG][       Thread-261653][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 16:55:43,890 [DEBUG][       Thread-261653][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 16:55:43,890 [DEBUG][       Thread-261653][   transport.py][1871] : Compression: none
2025-06-13 16:55:43,891 [DEBUG][       Thread-261653][   transport.py][1871] : === End of kex handshake ===
2025-06-13 16:55:43,906 [DEBUG][       Thread-261653][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 16:55:43,907 [DEBUG][       Thread-261653][   transport.py][1871] : Switch to new keys ...
2025-06-13 16:55:43,907 [DEBUG][       Thread-261653][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 16:55:43,907 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 16:55:43,908 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 16:55:43,909 [DEBUG][       Thread-261653][   transport.py][1871] : userauth is OK
2025-06-13 16:55:43,933 [ INFO][       Thread-261653][   transport.py][1871] : Authentication (password) successful!
2025-06-13 16:55:43,934 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 16:55:44,586 [DEBUG][       Thread-261653][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 16:55:44,586 [DEBUG][       Thread-261653][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 16:55:44,629 [DEBUG][       Thread-261653][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 16:55:44,629 [DEBUG][       Thread-261653][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 16:55:44,631 [DEBUG][       Thread-261653][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 16:55:44,646 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 16:55:44,646 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 16:55:44,648 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 16:55:44,650 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 16:55:44,655 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 16:55:44,657 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 16:55:44,657 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 16:55:44,658 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 16:55:44,658 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.621462 -999.00  +13.30  17.90     36   -1.00 1 1 1 1 1   887    0 13.84 -22.71 ----- 16.1 17.9 37.0 19.2 15.5 -28.9 15.0 -29.6 15.5 -29.0 16.3 -28.2
2025-06-13 16:55:44,658 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 16:55:44,658 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 16:55:44,658 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.621462
2025-06-13 16:55:44,659 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 16:55:44,659 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 16:55:44,659 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 16:55:44,659 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 16:55:44,660 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 16:55:44,660 [DEBUG][       Thread-261653][   transport.py][1871] : EOF in transport thread
2025-06-13 16:55:44,660 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T16:55:25', tmtdew=16.25, humidity=32.21, cloud=0.0, wind=12.33, temperature=13.41, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T14:54:54.317', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 16:55:44,743 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 16:55:44,754 [DEBUG][       Thread-261656][   transport.py][1871] : starting thread (client mode): 0x86893a60
2025-06-13 16:55:44,754 [DEBUG][       Thread-261656][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 16:55:44,774 [DEBUG][       Thread-261656][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 16:55:44,774 [ INFO][       Thread-261656][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 16:55:44,782 [DEBUG][       Thread-261656][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 16:55:44,782 [DEBUG][       Thread-261656][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 16:55:44,782 [DEBUG][       Thread-261656][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 16:55:44,782 [DEBUG][       Thread-261656][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:55:44,783 [DEBUG][       Thread-261656][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:55:44,783 [DEBUG][       Thread-261656][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:55:44,783 [DEBUG][       Thread-261656][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:55:44,783 [DEBUG][       Thread-261656][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 16:55:44,783 [DEBUG][       Thread-261656][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 16:55:44,783 [DEBUG][       Thread-261656][   transport.py][1871] : client lang: <none>
2025-06-13 16:55:44,783 [DEBUG][       Thread-261656][   transport.py][1871] : server lang: <none>
2025-06-13 16:55:44,783 [DEBUG][       Thread-261656][   transport.py][1871] : kex follows: False
2025-06-13 16:55:44,783 [DEBUG][       Thread-261656][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 16:55:44,783 [DEBUG][       Thread-261656][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 16:55:44,783 [DEBUG][       Thread-261656][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 16:55:44,783 [DEBUG][       Thread-261656][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 16:55:44,783 [DEBUG][       Thread-261656][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 16:55:44,783 [DEBUG][       Thread-261656][   transport.py][1871] : Compression: none
2025-06-13 16:55:44,783 [DEBUG][       Thread-261656][   transport.py][1871] : === End of kex handshake ===
2025-06-13 16:55:44,846 [DEBUG][       Thread-261656][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 16:55:44,846 [DEBUG][       Thread-261656][   transport.py][1871] : Switch to new keys ...
2025-06-13 16:55:44,847 [DEBUG][       Thread-261656][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 16:55:44,847 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 16:55:44,848 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 16:55:44,902 [DEBUG][       Thread-261656][   transport.py][1871] : userauth is OK
2025-06-13 16:55:44,903 [DEBUG][       Thread-261656][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 16:55:44,903 [DEBUG][       Thread-261656][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 16:55:44,903 [DEBUG][       Thread-261656][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 16:55:44,903 [DEBUG][       Thread-261656][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 16:55:44,929 [ INFO][       Thread-261656][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 16:55:44,930 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 16:55:44,930 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 16:55:45,931 [DEBUG][       Thread-261656][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 16:55:45,931 [DEBUG][       Thread-261656][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 16:55:45,979 [DEBUG][       Thread-261656][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 16:55:45,979 [DEBUG][       Thread-261656][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 16:55:45,987 [DEBUG][       Thread-261656][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 16:55:45,995 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 16:55:45,995 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 16:55:46,003 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 16:55:46,011 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 16:55:46,011 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 16:55:46,011 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 16:55:46,019 [DEBUG][       Thread-261656][   transport.py][1871] : EOF in transport thread
2025-06-13 16:55:47,639 [DEBUG][Thread-261658 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:55:56,022 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 16:55:56,022 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 16:55:56,022 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 16:55:56,025 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 16:55:56,492 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 16, 55, 25), 16.25, 32.21, 0.0, 12.33, 13.41, 0, 0, 0, 2, 0, 0),)
2025-06-13 16:55:56,493 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 16:55:25
2025-06-13 16:55:56,574 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 16:55:56,578 [DEBUG][       Thread-261659][   transport.py][1871] : starting thread (client mode): 0x867fcbe0
2025-06-13 16:55:56,578 [DEBUG][       Thread-261659][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 16:55:56,599 [DEBUG][       Thread-261659][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 16:55:56,599 [ INFO][       Thread-261659][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 16:55:56,603 [DEBUG][       Thread-261659][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 16:55:56,603 [DEBUG][       Thread-261659][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 16:55:56,603 [DEBUG][       Thread-261659][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 16:55:56,603 [DEBUG][       Thread-261659][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:55:56,603 [DEBUG][       Thread-261659][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:55:56,603 [DEBUG][       Thread-261659][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:55:56,603 [DEBUG][       Thread-261659][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:55:56,603 [DEBUG][       Thread-261659][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 16:55:56,603 [DEBUG][       Thread-261659][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 16:55:56,603 [DEBUG][       Thread-261659][   transport.py][1871] : client lang: <none>
2025-06-13 16:55:56,603 [DEBUG][       Thread-261659][   transport.py][1871] : server lang: <none>
2025-06-13 16:55:56,603 [DEBUG][       Thread-261659][   transport.py][1871] : kex follows: False
2025-06-13 16:55:56,604 [DEBUG][       Thread-261659][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 16:55:56,604 [DEBUG][       Thread-261659][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 16:55:56,604 [DEBUG][       Thread-261659][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 16:55:56,604 [DEBUG][       Thread-261659][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 16:55:56,604 [DEBUG][       Thread-261659][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 16:55:56,604 [DEBUG][       Thread-261659][   transport.py][1871] : Compression: none
2025-06-13 16:55:56,604 [DEBUG][       Thread-261659][   transport.py][1871] : === End of kex handshake ===
2025-06-13 16:55:56,621 [DEBUG][       Thread-261659][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 16:55:56,621 [DEBUG][       Thread-261659][   transport.py][1871] : Switch to new keys ...
2025-06-13 16:55:56,622 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 16:55:56,622 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 16:55:56,623 [DEBUG][       Thread-261659][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 16:55:56,623 [DEBUG][       Thread-261659][   transport.py][1871] : userauth is OK
2025-06-13 16:55:56,636 [ INFO][       Thread-261659][   transport.py][1871] : Authentication (password) successful!
2025-06-13 16:55:56,637 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 16:55:56,658 [DEBUG][Thread-261661 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:55:57,311 [DEBUG][       Thread-261659][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 16:55:57,311 [DEBUG][       Thread-261659][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 16:55:57,353 [DEBUG][       Thread-261659][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 16:55:57,353 [DEBUG][       Thread-261659][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 16:55:57,357 [DEBUG][       Thread-261659][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 16:55:57,370 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 16:55:57,371 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 16:55:57,373 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 16:55:57,375 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 16:55:57,381 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 16:55:57,383 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 16:55:57,383 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 16:55:57,383 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 16:55:57,384 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.621809 -999.00  +13.30  15.45     37   -0.80 1 1 1 1 1   887    0 13.79 -22.18 ----- 15.1 15.4 60.4 18.4 15.6 -28.9 15.0 -29.5 15.6 -29.1 16.3 -28.2
2025-06-13 16:55:57,384 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 16:55:57,384 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 16:55:57,384 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.621809
2025-06-13 16:55:57,384 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 16:55:57,385 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 16:55:57,385 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 16:55:57,385 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 16:55:57,385 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 16:55:57,385 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T16:55:25', tmtdew=16.25, humidity=32.21, cloud=0.0, wind=12.33, temperature=13.41, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T14:55:24.298', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 16:55:57,386 [DEBUG][       Thread-261659][   transport.py][1871] : EOF in transport thread
2025-06-13 16:55:57,469 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 16:55:57,486 [DEBUG][       Thread-261663][   transport.py][1871] : starting thread (client mode): 0x863efbe0
2025-06-13 16:55:57,486 [DEBUG][       Thread-261663][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 16:55:57,502 [DEBUG][       Thread-261663][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 16:55:57,502 [ INFO][       Thread-261663][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 16:55:57,510 [DEBUG][       Thread-261663][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 16:55:57,510 [DEBUG][       Thread-261663][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 16:55:57,510 [DEBUG][       Thread-261663][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 16:55:57,510 [DEBUG][       Thread-261663][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:55:57,510 [DEBUG][       Thread-261663][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:55:57,510 [DEBUG][       Thread-261663][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:55:57,510 [DEBUG][       Thread-261663][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:55:57,510 [DEBUG][       Thread-261663][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 16:55:57,510 [DEBUG][       Thread-261663][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 16:55:57,510 [DEBUG][       Thread-261663][   transport.py][1871] : client lang: <none>
2025-06-13 16:55:57,510 [DEBUG][       Thread-261663][   transport.py][1871] : server lang: <none>
2025-06-13 16:55:57,510 [DEBUG][       Thread-261663][   transport.py][1871] : kex follows: False
2025-06-13 16:55:57,510 [DEBUG][       Thread-261663][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 16:55:57,511 [DEBUG][       Thread-261663][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 16:55:57,511 [DEBUG][       Thread-261663][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 16:55:57,511 [DEBUG][       Thread-261663][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 16:55:57,511 [DEBUG][       Thread-261663][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 16:55:57,511 [DEBUG][       Thread-261663][   transport.py][1871] : Compression: none
2025-06-13 16:55:57,511 [DEBUG][       Thread-261663][   transport.py][1871] : === End of kex handshake ===
2025-06-13 16:55:57,570 [DEBUG][       Thread-261663][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 16:55:57,571 [DEBUG][       Thread-261663][   transport.py][1871] : Switch to new keys ...
2025-06-13 16:55:57,571 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 16:55:57,572 [DEBUG][       Thread-261663][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 16:55:57,573 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 16:55:57,626 [DEBUG][       Thread-261663][   transport.py][1871] : userauth is OK
2025-06-13 16:55:57,626 [DEBUG][       Thread-261663][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 16:55:57,626 [DEBUG][       Thread-261663][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 16:55:57,626 [DEBUG][       Thread-261663][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 16:55:57,626 [DEBUG][       Thread-261663][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 16:55:57,646 [ INFO][       Thread-261663][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 16:55:57,646 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 16:55:57,647 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 16:55:58,633 [DEBUG][       Thread-261663][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 16:55:58,633 [DEBUG][       Thread-261663][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 16:55:58,685 [DEBUG][       Thread-261663][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 16:55:58,685 [DEBUG][       Thread-261663][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 16:55:58,694 [DEBUG][       Thread-261663][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 16:55:58,702 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 16:55:58,702 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 16:55:58,709 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 16:55:58,719 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 16:55:58,719 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 16:55:58,719 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 16:55:58,727 [DEBUG][       Thread-261663][   transport.py][1871] : EOF in transport thread
2025-06-13 16:56:05,680 [DEBUG][Thread-261665 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:56:08,729 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 16:56:08,730 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 16:56:08,730 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 16:56:08,733 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 16:56:09,199 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 16, 55, 57), 16.26, 32.21, 0.0, 12.69, 13.48, 0, 0, 0, 2, 0, 0),)
2025-06-13 16:56:09,200 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 16:55:57
2025-06-13 16:56:09,282 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 16:56:09,288 [DEBUG][       Thread-261666][   transport.py][1871] : starting thread (client mode): 0x863cafe0
2025-06-13 16:56:09,288 [DEBUG][       Thread-261666][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 16:56:09,309 [DEBUG][       Thread-261666][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 16:56:09,309 [ INFO][       Thread-261666][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 16:56:09,312 [DEBUG][       Thread-261666][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 16:56:09,312 [DEBUG][       Thread-261666][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 16:56:09,312 [DEBUG][       Thread-261666][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 16:56:09,312 [DEBUG][       Thread-261666][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:56:09,312 [DEBUG][       Thread-261666][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:56:09,312 [DEBUG][       Thread-261666][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:56:09,312 [DEBUG][       Thread-261666][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:56:09,312 [DEBUG][       Thread-261666][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 16:56:09,312 [DEBUG][       Thread-261666][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 16:56:09,312 [DEBUG][       Thread-261666][   transport.py][1871] : client lang: <none>
2025-06-13 16:56:09,312 [DEBUG][       Thread-261666][   transport.py][1871] : server lang: <none>
2025-06-13 16:56:09,312 [DEBUG][       Thread-261666][   transport.py][1871] : kex follows: False
2025-06-13 16:56:09,312 [DEBUG][       Thread-261666][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 16:56:09,312 [DEBUG][       Thread-261666][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 16:56:09,312 [DEBUG][       Thread-261666][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 16:56:09,312 [DEBUG][       Thread-261666][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 16:56:09,312 [DEBUG][       Thread-261666][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 16:56:09,312 [DEBUG][       Thread-261666][   transport.py][1871] : Compression: none
2025-06-13 16:56:09,312 [DEBUG][       Thread-261666][   transport.py][1871] : === End of kex handshake ===
2025-06-13 16:56:09,327 [DEBUG][       Thread-261666][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 16:56:09,327 [DEBUG][       Thread-261666][   transport.py][1871] : Switch to new keys ...
2025-06-13 16:56:09,327 [DEBUG][       Thread-261666][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 16:56:09,327 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 16:56:09,327 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 16:56:09,328 [DEBUG][       Thread-261666][   transport.py][1871] : userauth is OK
2025-06-13 16:56:09,340 [ INFO][       Thread-261666][   transport.py][1871] : Authentication (password) successful!
2025-06-13 16:56:09,340 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 16:56:09,974 [DEBUG][       Thread-261666][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 16:56:09,974 [DEBUG][       Thread-261666][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 16:56:10,017 [DEBUG][       Thread-261666][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 16:56:10,017 [DEBUG][       Thread-261666][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 16:56:10,021 [DEBUG][       Thread-261666][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 16:56:10,035 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 16:56:10,036 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 16:56:10,038 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 16:56:10,040 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 16:56:10,046 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 16:56:10,048 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 16:56:10,048 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 16:56:10,049 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 16:56:10,049 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.621809 -999.00  +13.30  15.45     37   -0.80 1 1 1 1 1   887    0 13.79 -22.18 ----- 15.1 15.4 60.4 18.4 15.6 -28.9 15.0 -29.5 15.6 -29.1 16.3 -28.2
2025-06-13 16:56:10,050 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 16:56:10,050 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 16:56:10,050 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.621809
2025-06-13 16:56:10,050 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 16:56:10,051 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 16:56:10,051 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 16:56:10,051 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 16:56:10,051 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 16:56:10,051 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T16:55:57', tmtdew=16.26, humidity=32.21, cloud=0.0, wind=12.69, temperature=13.48, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T14:55:24.298', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 16:56:10,052 [DEBUG][       Thread-261666][   transport.py][1871] : EOF in transport thread
2025-06-13 16:56:10,136 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 16:56:10,151 [DEBUG][       Thread-261669][   transport.py][1871] : starting thread (client mode): 0x863beda0
2025-06-13 16:56:10,151 [DEBUG][       Thread-261669][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 16:56:10,169 [DEBUG][       Thread-261669][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 16:56:10,170 [ INFO][       Thread-261669][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 16:56:10,177 [DEBUG][       Thread-261669][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 16:56:10,178 [DEBUG][       Thread-261669][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 16:56:10,178 [DEBUG][       Thread-261669][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 16:56:10,178 [DEBUG][       Thread-261669][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:56:10,178 [DEBUG][       Thread-261669][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:56:10,178 [DEBUG][       Thread-261669][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:56:10,178 [DEBUG][       Thread-261669][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:56:10,178 [DEBUG][       Thread-261669][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 16:56:10,178 [DEBUG][       Thread-261669][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 16:56:10,178 [DEBUG][       Thread-261669][   transport.py][1871] : client lang: <none>
2025-06-13 16:56:10,178 [DEBUG][       Thread-261669][   transport.py][1871] : server lang: <none>
2025-06-13 16:56:10,178 [DEBUG][       Thread-261669][   transport.py][1871] : kex follows: False
2025-06-13 16:56:10,178 [DEBUG][       Thread-261669][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 16:56:10,178 [DEBUG][       Thread-261669][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 16:56:10,178 [DEBUG][       Thread-261669][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 16:56:10,178 [DEBUG][       Thread-261669][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 16:56:10,179 [DEBUG][       Thread-261669][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 16:56:10,179 [DEBUG][       Thread-261669][   transport.py][1871] : Compression: none
2025-06-13 16:56:10,179 [DEBUG][       Thread-261669][   transport.py][1871] : === End of kex handshake ===
2025-06-13 16:56:10,234 [DEBUG][       Thread-261669][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 16:56:10,235 [DEBUG][       Thread-261669][   transport.py][1871] : Switch to new keys ...
2025-06-13 16:56:10,236 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 16:56:10,237 [DEBUG][       Thread-261669][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 16:56:10,237 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 16:56:10,290 [DEBUG][       Thread-261669][   transport.py][1871] : userauth is OK
2025-06-13 16:56:10,290 [DEBUG][       Thread-261669][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 16:56:10,291 [DEBUG][       Thread-261669][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 16:56:10,291 [DEBUG][       Thread-261669][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 16:56:10,291 [DEBUG][       Thread-261669][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 16:56:10,310 [ INFO][       Thread-261669][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 16:56:10,310 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 16:56:10,310 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 16:56:11,303 [DEBUG][       Thread-261669][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 16:56:11,303 [DEBUG][       Thread-261669][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 16:56:11,352 [DEBUG][       Thread-261669][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 16:56:11,352 [DEBUG][       Thread-261669][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 16:56:11,361 [DEBUG][       Thread-261669][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 16:56:11,371 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 16:56:11,372 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 16:56:11,381 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 16:56:11,390 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 16:56:11,390 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 16:56:11,391 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 16:56:11,399 [DEBUG][       Thread-261669][   transport.py][1871] : EOF in transport thread
2025-06-13 16:56:14,704 [DEBUG][Thread-261671 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:56:21,401 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 16:56:21,402 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 16:56:21,402 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 16:56:21,405 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 16:56:21,774 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:56:21,775 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:56:21,867 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 16, 55, 57), 16.26, 32.21, 0.0, 12.69, 13.48, 0, 0, 0, 2, 0, 0),)
2025-06-13 16:56:21,867 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 16:55:57
2025-06-13 16:56:21,950 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 16:56:21,954 [DEBUG][       Thread-261672][   transport.py][1871] : starting thread (client mode): 0x8636a6e0
2025-06-13 16:56:21,955 [DEBUG][       Thread-261672][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 16:56:21,975 [DEBUG][       Thread-261672][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 16:56:21,975 [ INFO][       Thread-261672][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 16:56:21,979 [DEBUG][       Thread-261672][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 16:56:21,979 [DEBUG][       Thread-261672][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 16:56:21,979 [DEBUG][       Thread-261672][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 16:56:21,979 [DEBUG][       Thread-261672][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:56:21,979 [DEBUG][       Thread-261672][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:56:21,979 [DEBUG][       Thread-261672][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:56:21,979 [DEBUG][       Thread-261672][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:56:21,979 [DEBUG][       Thread-261672][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 16:56:21,979 [DEBUG][       Thread-261672][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 16:56:21,979 [DEBUG][       Thread-261672][   transport.py][1871] : client lang: <none>
2025-06-13 16:56:21,979 [DEBUG][       Thread-261672][   transport.py][1871] : server lang: <none>
2025-06-13 16:56:21,979 [DEBUG][       Thread-261672][   transport.py][1871] : kex follows: False
2025-06-13 16:56:21,979 [DEBUG][       Thread-261672][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 16:56:21,979 [DEBUG][       Thread-261672][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 16:56:21,980 [DEBUG][       Thread-261672][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 16:56:21,980 [DEBUG][       Thread-261672][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 16:56:21,980 [DEBUG][       Thread-261672][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 16:56:21,980 [DEBUG][       Thread-261672][   transport.py][1871] : Compression: none
2025-06-13 16:56:21,980 [DEBUG][       Thread-261672][   transport.py][1871] : === End of kex handshake ===
2025-06-13 16:56:21,997 [DEBUG][       Thread-261672][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 16:56:21,998 [DEBUG][       Thread-261672][   transport.py][1871] : Switch to new keys ...
2025-06-13 16:56:21,998 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 16:56:21,998 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 16:56:21,999 [DEBUG][       Thread-261672][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 16:56:21,999 [DEBUG][       Thread-261672][   transport.py][1871] : userauth is OK
2025-06-13 16:56:22,023 [ INFO][       Thread-261672][   transport.py][1871] : Authentication (password) successful!
2025-06-13 16:56:22,023 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 16:56:22,707 [DEBUG][       Thread-261672][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 16:56:22,707 [DEBUG][       Thread-261672][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 16:56:22,749 [DEBUG][       Thread-261672][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 16:56:22,749 [DEBUG][       Thread-261672][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 16:56:22,752 [DEBUG][       Thread-261672][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 16:56:22,765 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 16:56:22,765 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 16:56:22,767 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 16:56:22,769 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 16:56:22,775 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 16:56:22,777 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 16:56:22,777 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 16:56:22,778 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 16:56:22,778 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.621809 -999.00  +13.30  15.45     37   -0.80 1 1 1 1 1   887    0 13.79 -22.18 ----- 15.1 15.4 60.4 18.4 15.6 -28.9 15.0 -29.5 15.6 -29.1 16.3 -28.2
2025-06-13 16:56:22,778 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 16:56:22,778 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 16:56:22,779 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.621809
2025-06-13 16:56:22,779 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 16:56:22,780 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 16:56:22,780 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 16:56:22,780 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 16:56:22,780 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 16:56:22,780 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T16:55:57', tmtdew=16.26, humidity=32.21, cloud=0.0, wind=12.69, temperature=13.48, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T14:55:24.298', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 16:56:22,781 [DEBUG][       Thread-261672][   transport.py][1871] : EOF in transport thread
2025-06-13 16:56:22,865 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 16:56:22,875 [DEBUG][       Thread-261675][   transport.py][1871] : starting thread (client mode): 0x863ef190
2025-06-13 16:56:22,875 [DEBUG][       Thread-261675][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 16:56:22,890 [DEBUG][       Thread-261675][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 16:56:22,890 [ INFO][       Thread-261675][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 16:56:22,897 [DEBUG][       Thread-261675][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 16:56:22,897 [DEBUG][       Thread-261675][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 16:56:22,898 [DEBUG][       Thread-261675][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 16:56:22,898 [DEBUG][       Thread-261675][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:56:22,898 [DEBUG][       Thread-261675][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:56:22,898 [DEBUG][       Thread-261675][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:56:22,898 [DEBUG][       Thread-261675][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:56:22,898 [DEBUG][       Thread-261675][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 16:56:22,898 [DEBUG][       Thread-261675][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 16:56:22,898 [DEBUG][       Thread-261675][   transport.py][1871] : client lang: <none>
2025-06-13 16:56:22,898 [DEBUG][       Thread-261675][   transport.py][1871] : server lang: <none>
2025-06-13 16:56:22,898 [DEBUG][       Thread-261675][   transport.py][1871] : kex follows: False
2025-06-13 16:56:22,898 [DEBUG][       Thread-261675][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 16:56:22,898 [DEBUG][       Thread-261675][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 16:56:22,898 [DEBUG][       Thread-261675][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 16:56:22,898 [DEBUG][       Thread-261675][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 16:56:22,898 [DEBUG][       Thread-261675][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 16:56:22,898 [DEBUG][       Thread-261675][   transport.py][1871] : Compression: none
2025-06-13 16:56:22,898 [DEBUG][       Thread-261675][   transport.py][1871] : === End of kex handshake ===
2025-06-13 16:56:22,954 [DEBUG][       Thread-261675][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 16:56:22,955 [DEBUG][       Thread-261675][   transport.py][1871] : Switch to new keys ...
2025-06-13 16:56:22,956 [DEBUG][       Thread-261675][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 16:56:22,956 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 16:56:22,957 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 16:56:23,010 [DEBUG][       Thread-261675][   transport.py][1871] : userauth is OK
2025-06-13 16:56:23,010 [DEBUG][       Thread-261675][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 16:56:23,010 [DEBUG][       Thread-261675][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 16:56:23,010 [DEBUG][       Thread-261675][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 16:56:23,011 [DEBUG][       Thread-261675][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 16:56:23,029 [ INFO][       Thread-261675][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 16:56:23,030 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 16:56:23,030 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 16:56:23,741 [DEBUG][Thread-261677 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:56:23,982 [DEBUG][       Thread-261675][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 16:56:23,982 [DEBUG][       Thread-261675][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 16:56:24,033 [DEBUG][       Thread-261675][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 16:56:24,033 [DEBUG][       Thread-261675][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 16:56:24,043 [DEBUG][       Thread-261675][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 16:56:24,052 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 16:56:24,053 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 16:56:24,062 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 16:56:24,071 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 16:56:24,071 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 16:56:24,072 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 16:56:24,080 [DEBUG][       Thread-261675][   transport.py][1871] : EOF in transport thread
2025-06-13 16:56:24,582 [DEBUG][Thread-261678 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:56:25,640 [DEBUG][Thread-261679 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:56:26,695 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:56:26,695 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:56:32,762 [DEBUG][Thread-261680 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:56:34,082 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 16:56:34,083 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 16:56:34,083 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 16:56:34,086 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 16:56:34,551 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 16, 56, 28), 16.2, 32.53, 0.0, 11.59, 13.48, 0, 0, 0, 2, 0, 0),)
2025-06-13 16:56:34,551 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 16:56:28
2025-06-13 16:56:34,633 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 16:56:34,637 [DEBUG][       Thread-261681][   transport.py][1871] : starting thread (client mode): 0x863689a0
2025-06-13 16:56:34,637 [DEBUG][       Thread-261681][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 16:56:34,658 [DEBUG][       Thread-261681][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 16:56:34,658 [ INFO][       Thread-261681][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 16:56:34,662 [DEBUG][       Thread-261681][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 16:56:34,662 [DEBUG][       Thread-261681][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 16:56:34,662 [DEBUG][       Thread-261681][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 16:56:34,662 [DEBUG][       Thread-261681][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:56:34,662 [DEBUG][       Thread-261681][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:56:34,662 [DEBUG][       Thread-261681][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:56:34,662 [DEBUG][       Thread-261681][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:56:34,662 [DEBUG][       Thread-261681][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 16:56:34,662 [DEBUG][       Thread-261681][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 16:56:34,662 [DEBUG][       Thread-261681][   transport.py][1871] : client lang: <none>
2025-06-13 16:56:34,662 [DEBUG][       Thread-261681][   transport.py][1871] : server lang: <none>
2025-06-13 16:56:34,662 [DEBUG][       Thread-261681][   transport.py][1871] : kex follows: False
2025-06-13 16:56:34,662 [DEBUG][       Thread-261681][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 16:56:34,662 [DEBUG][       Thread-261681][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 16:56:34,662 [DEBUG][       Thread-261681][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 16:56:34,662 [DEBUG][       Thread-261681][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 16:56:34,662 [DEBUG][       Thread-261681][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 16:56:34,662 [DEBUG][       Thread-261681][   transport.py][1871] : Compression: none
2025-06-13 16:56:34,662 [DEBUG][       Thread-261681][   transport.py][1871] : === End of kex handshake ===
2025-06-13 16:56:34,679 [DEBUG][       Thread-261681][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 16:56:34,680 [DEBUG][       Thread-261681][   transport.py][1871] : Switch to new keys ...
2025-06-13 16:56:34,680 [DEBUG][       Thread-261681][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 16:56:34,681 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 16:56:34,681 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 16:56:34,682 [DEBUG][       Thread-261681][   transport.py][1871] : userauth is OK
2025-06-13 16:56:34,707 [ INFO][       Thread-261681][   transport.py][1871] : Authentication (password) successful!
2025-06-13 16:56:34,707 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 16:56:35,313 [DEBUG][       Thread-261681][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 16:56:35,314 [DEBUG][       Thread-261681][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 16:56:35,357 [DEBUG][       Thread-261681][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 16:56:35,357 [DEBUG][       Thread-261681][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 16:56:35,360 [DEBUG][       Thread-261681][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 16:56:35,372 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 16:56:35,372 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 16:56:35,374 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 16:56:35,376 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 16:56:35,382 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 16:56:35,383 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 16:56:35,383 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 16:56:35,384 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 16:56:35,384 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.622157 -999.00  +13.30  15.78     37   -1.00 1 1 1 1 1   887    0 13.52 -22.66 ----- 15.8 15.8 50.4 19.0 15.5 -29.0 15.1 -29.4 15.6 -28.9 16.3 -28.3
2025-06-13 16:56:35,384 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 16:56:35,384 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 16:56:35,384 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.622157
2025-06-13 16:56:35,385 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 16:56:35,385 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 16:56:35,386 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 16:56:35,386 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 16:56:35,386 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 16:56:35,386 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T16:56:28', tmtdew=16.2, humidity=32.53, cloud=0.0, wind=11.59, temperature=13.48, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T14:55:54.365', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 16:56:35,386 [DEBUG][       Thread-261681][   transport.py][1871] : EOF in transport thread
2025-06-13 16:56:35,469 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 16:56:35,481 [DEBUG][       Thread-261684][   transport.py][1871] : starting thread (client mode): 0x86390ac0
2025-06-13 16:56:35,481 [DEBUG][       Thread-261684][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 16:56:35,498 [DEBUG][       Thread-261684][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 16:56:35,498 [ INFO][       Thread-261684][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 16:56:35,508 [DEBUG][       Thread-261684][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 16:56:35,508 [DEBUG][       Thread-261684][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 16:56:35,508 [DEBUG][       Thread-261684][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 16:56:35,509 [DEBUG][       Thread-261684][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:56:35,509 [DEBUG][       Thread-261684][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:56:35,509 [DEBUG][       Thread-261684][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:56:35,509 [DEBUG][       Thread-261684][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:56:35,509 [DEBUG][       Thread-261684][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 16:56:35,509 [DEBUG][       Thread-261684][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 16:56:35,509 [DEBUG][       Thread-261684][   transport.py][1871] : client lang: <none>
2025-06-13 16:56:35,509 [DEBUG][       Thread-261684][   transport.py][1871] : server lang: <none>
2025-06-13 16:56:35,509 [DEBUG][       Thread-261684][   transport.py][1871] : kex follows: False
2025-06-13 16:56:35,509 [DEBUG][       Thread-261684][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 16:56:35,509 [DEBUG][       Thread-261684][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 16:56:35,509 [DEBUG][       Thread-261684][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 16:56:35,509 [DEBUG][       Thread-261684][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 16:56:35,509 [DEBUG][       Thread-261684][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 16:56:35,509 [DEBUG][       Thread-261684][   transport.py][1871] : Compression: none
2025-06-13 16:56:35,509 [DEBUG][       Thread-261684][   transport.py][1871] : === End of kex handshake ===
2025-06-13 16:56:35,566 [DEBUG][       Thread-261684][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 16:56:35,566 [DEBUG][       Thread-261684][   transport.py][1871] : Switch to new keys ...
2025-06-13 16:56:35,567 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 16:56:35,568 [DEBUG][       Thread-261684][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 16:56:35,568 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 16:56:35,622 [DEBUG][       Thread-261684][   transport.py][1871] : userauth is OK
2025-06-13 16:56:35,622 [DEBUG][       Thread-261684][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 16:56:35,622 [DEBUG][       Thread-261684][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 16:56:35,622 [DEBUG][       Thread-261684][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 16:56:35,622 [DEBUG][       Thread-261684][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 16:56:35,641 [ INFO][       Thread-261684][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 16:56:35,641 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 16:56:35,642 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 16:56:36,674 [DEBUG][       Thread-261684][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 16:56:36,675 [DEBUG][       Thread-261684][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 16:56:36,724 [DEBUG][       Thread-261684][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 16:56:36,724 [DEBUG][       Thread-261684][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 16:56:36,734 [DEBUG][       Thread-261684][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 16:56:36,743 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 16:56:36,743 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 16:56:36,752 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 16:56:36,761 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 16:56:36,761 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 16:56:36,762 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 16:56:36,770 [DEBUG][       Thread-261684][   transport.py][1871] : EOF in transport thread
2025-06-13 16:56:41,784 [DEBUG][Thread-261686 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:56:46,772 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 16:56:46,772 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 16:56:46,772 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 16:56:46,775 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 16:56:47,234 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 16, 56, 28), 16.2, 32.53, 0.0, 11.59, 13.48, 0, 0, 0, 2, 0, 0),)
2025-06-13 16:56:47,234 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 16:56:28
2025-06-13 16:56:47,316 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 16:56:47,320 [DEBUG][       Thread-261687][   transport.py][1871] : starting thread (client mode): 0x86368f10
2025-06-13 16:56:47,320 [DEBUG][       Thread-261687][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 16:56:47,343 [DEBUG][       Thread-261687][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 16:56:47,343 [ INFO][       Thread-261687][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 16:56:47,345 [DEBUG][       Thread-261687][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 16:56:47,345 [DEBUG][       Thread-261687][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 16:56:47,345 [DEBUG][       Thread-261687][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 16:56:47,345 [DEBUG][       Thread-261687][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:56:47,345 [DEBUG][       Thread-261687][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:56:47,345 [DEBUG][       Thread-261687][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:56:47,345 [DEBUG][       Thread-261687][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:56:47,345 [DEBUG][       Thread-261687][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 16:56:47,345 [DEBUG][       Thread-261687][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 16:56:47,345 [DEBUG][       Thread-261687][   transport.py][1871] : client lang: <none>
2025-06-13 16:56:47,345 [DEBUG][       Thread-261687][   transport.py][1871] : server lang: <none>
2025-06-13 16:56:47,345 [DEBUG][       Thread-261687][   transport.py][1871] : kex follows: False
2025-06-13 16:56:47,345 [DEBUG][       Thread-261687][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 16:56:47,346 [DEBUG][       Thread-261687][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 16:56:47,346 [DEBUG][       Thread-261687][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 16:56:47,346 [DEBUG][       Thread-261687][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 16:56:47,346 [DEBUG][       Thread-261687][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 16:56:47,346 [DEBUG][       Thread-261687][   transport.py][1871] : Compression: none
2025-06-13 16:56:47,346 [DEBUG][       Thread-261687][   transport.py][1871] : === End of kex handshake ===
2025-06-13 16:56:47,354 [DEBUG][       Thread-261687][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 16:56:47,355 [DEBUG][       Thread-261687][   transport.py][1871] : Switch to new keys ...
2025-06-13 16:56:47,355 [DEBUG][       Thread-261687][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 16:56:47,355 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 16:56:47,355 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 16:56:47,358 [DEBUG][       Thread-261687][   transport.py][1871] : userauth is OK
2025-06-13 16:56:47,371 [ INFO][       Thread-261687][   transport.py][1871] : Authentication (password) successful!
2025-06-13 16:56:47,372 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 16:56:48,030 [DEBUG][       Thread-261687][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 16:56:48,031 [DEBUG][       Thread-261687][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 16:56:48,073 [DEBUG][       Thread-261687][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 16:56:48,073 [DEBUG][       Thread-261687][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 16:56:48,077 [DEBUG][       Thread-261687][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 16:56:48,088 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 16:56:48,088 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 16:56:48,090 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 16:56:48,092 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 16:56:48,098 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 16:56:48,100 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 16:56:48,100 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 16:56:48,101 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 16:56:48,101 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.622157 -999.00  +13.30  15.78     37   -1.00 1 1 1 1 1   887    0 13.52 -22.66 ----- 15.8 15.8 50.4 19.0 15.5 -29.0 15.1 -29.4 15.6 -28.9 16.3 -28.3
2025-06-13 16:56:48,101 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 16:56:48,101 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 16:56:48,101 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.622157
2025-06-13 16:56:48,102 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 16:56:48,102 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 16:56:48,102 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 16:56:48,102 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 16:56:48,102 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 16:56:48,103 [DEBUG][       Thread-261687][   transport.py][1871] : EOF in transport thread
2025-06-13 16:56:48,103 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T16:56:28', tmtdew=16.2, humidity=32.53, cloud=0.0, wind=11.59, temperature=13.48, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T14:55:54.365', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 16:56:48,186 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 16:56:48,196 [DEBUG][       Thread-261690][   transport.py][1871] : starting thread (client mode): 0x867b4970
2025-06-13 16:56:48,196 [DEBUG][       Thread-261690][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 16:56:48,211 [DEBUG][       Thread-261690][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 16:56:48,211 [ INFO][       Thread-261690][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 16:56:48,219 [DEBUG][       Thread-261690][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 16:56:48,219 [DEBUG][       Thread-261690][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 16:56:48,219 [DEBUG][       Thread-261690][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 16:56:48,219 [DEBUG][       Thread-261690][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:56:48,219 [DEBUG][       Thread-261690][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:56:48,219 [DEBUG][       Thread-261690][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:56:48,219 [DEBUG][       Thread-261690][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:56:48,219 [DEBUG][       Thread-261690][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 16:56:48,219 [DEBUG][       Thread-261690][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 16:56:48,219 [DEBUG][       Thread-261690][   transport.py][1871] : client lang: <none>
2025-06-13 16:56:48,219 [DEBUG][       Thread-261690][   transport.py][1871] : server lang: <none>
2025-06-13 16:56:48,219 [DEBUG][       Thread-261690][   transport.py][1871] : kex follows: False
2025-06-13 16:56:48,219 [DEBUG][       Thread-261690][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 16:56:48,219 [DEBUG][       Thread-261690][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 16:56:48,219 [DEBUG][       Thread-261690][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 16:56:48,220 [DEBUG][       Thread-261690][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 16:56:48,220 [DEBUG][       Thread-261690][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 16:56:48,220 [DEBUG][       Thread-261690][   transport.py][1871] : Compression: none
2025-06-13 16:56:48,220 [DEBUG][       Thread-261690][   transport.py][1871] : === End of kex handshake ===
2025-06-13 16:56:48,283 [DEBUG][       Thread-261690][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 16:56:48,283 [DEBUG][       Thread-261690][   transport.py][1871] : Switch to new keys ...
2025-06-13 16:56:48,284 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 16:56:48,285 [DEBUG][       Thread-261690][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 16:56:48,285 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 16:56:48,342 [DEBUG][       Thread-261690][   transport.py][1871] : userauth is OK
2025-06-13 16:56:48,342 [DEBUG][       Thread-261690][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 16:56:48,343 [DEBUG][       Thread-261690][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 16:56:48,343 [DEBUG][       Thread-261690][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 16:56:48,343 [DEBUG][       Thread-261690][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 16:56:48,361 [ INFO][       Thread-261690][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 16:56:48,362 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 16:56:48,362 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 16:56:49,327 [DEBUG][       Thread-261690][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 16:56:49,327 [DEBUG][       Thread-261690][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 16:56:49,376 [DEBUG][       Thread-261690][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 16:56:49,376 [DEBUG][       Thread-261690][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 16:56:49,386 [DEBUG][       Thread-261690][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 16:56:49,395 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 16:56:49,395 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 16:56:49,404 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 16:56:49,413 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 16:56:49,413 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 16:56:49,414 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 16:56:49,422 [DEBUG][       Thread-261690][   transport.py][1871] : EOF in transport thread
2025-06-13 16:56:50,820 [DEBUG][Thread-261692 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:56:59,424 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 16:56:59,425 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 16:56:59,425 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 16:56:59,427 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 16:56:59,839 [DEBUG][Thread-261693 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:56:59,902 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 16, 56, 28), 16.2, 32.53, 0.0, 11.59, 13.48, 0, 0, 0, 2, 0, 0),)
2025-06-13 16:56:59,902 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 16:56:28
2025-06-13 16:56:59,984 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 16:56:59,988 [DEBUG][       Thread-261694][   transport.py][1871] : starting thread (client mode): 0x867fcee0
2025-06-13 16:56:59,988 [DEBUG][       Thread-261694][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 16:57:00,008 [DEBUG][       Thread-261694][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 16:57:00,008 [ INFO][       Thread-261694][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 16:57:00,009 [DEBUG][       Thread-261694][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 16:57:00,009 [DEBUG][       Thread-261694][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 16:57:00,009 [DEBUG][       Thread-261694][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 16:57:00,009 [DEBUG][       Thread-261694][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:57:00,009 [DEBUG][       Thread-261694][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:57:00,010 [DEBUG][       Thread-261694][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:57:00,010 [DEBUG][       Thread-261694][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:57:00,010 [DEBUG][       Thread-261694][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 16:57:00,010 [DEBUG][       Thread-261694][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 16:57:00,010 [DEBUG][       Thread-261694][   transport.py][1871] : client lang: <none>
2025-06-13 16:57:00,010 [DEBUG][       Thread-261694][   transport.py][1871] : server lang: <none>
2025-06-13 16:57:00,010 [DEBUG][       Thread-261694][   transport.py][1871] : kex follows: False
2025-06-13 16:57:00,010 [DEBUG][       Thread-261694][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 16:57:00,010 [DEBUG][       Thread-261694][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 16:57:00,010 [DEBUG][       Thread-261694][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 16:57:00,010 [DEBUG][       Thread-261694][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 16:57:00,010 [DEBUG][       Thread-261694][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 16:57:00,010 [DEBUG][       Thread-261694][   transport.py][1871] : Compression: none
2025-06-13 16:57:00,010 [DEBUG][       Thread-261694][   transport.py][1871] : === End of kex handshake ===
2025-06-13 16:57:00,018 [DEBUG][       Thread-261694][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 16:57:00,019 [DEBUG][       Thread-261694][   transport.py][1871] : Switch to new keys ...
2025-06-13 16:57:00,019 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 16:57:00,019 [DEBUG][       Thread-261694][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 16:57:00,020 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 16:57:00,021 [DEBUG][       Thread-261694][   transport.py][1871] : userauth is OK
2025-06-13 16:57:00,034 [ INFO][       Thread-261694][   transport.py][1871] : Authentication (password) successful!
2025-06-13 16:57:00,034 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 16:57:00,614 [DEBUG][       Thread-261694][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 16:57:00,614 [DEBUG][       Thread-261694][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 16:57:00,657 [DEBUG][       Thread-261694][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 16:57:00,657 [DEBUG][       Thread-261694][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 16:57:00,660 [DEBUG][       Thread-261694][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 16:57:00,667 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 16:57:00,667 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 16:57:00,669 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 16:57:00,670 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 16:57:00,674 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 16:57:00,676 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 16:57:00,676 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 16:57:00,677 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 16:57:00,677 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.622851 -999.00  +13.30  16.16     37   -0.90 1 1 1 1 1   887    0 13.65 -23.35 ----- 15.8 16.2 51.8 22.8 15.5 -29.2 15.0 -29.7 15.6 -29.2 16.3 -28.3
2025-06-13 16:57:00,677 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 16:57:00,677 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 16:57:00,677 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.622851
2025-06-13 16:57:00,677 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 16:57:00,678 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 16:57:00,678 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 16:57:00,678 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 16:57:00,678 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 16:57:00,678 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T16:56:28', tmtdew=16.2, humidity=32.53, cloud=0.0, wind=11.59, temperature=13.48, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T14:56:54.326', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 16:57:00,679 [DEBUG][       Thread-261694][   transport.py][1871] : EOF in transport thread
2025-06-13 16:57:00,761 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 16:57:00,774 [DEBUG][       Thread-261697][   transport.py][1871] : starting thread (client mode): 0x86390f40
2025-06-13 16:57:00,774 [DEBUG][       Thread-261697][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 16:57:00,789 [DEBUG][       Thread-261697][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 16:57:00,790 [ INFO][       Thread-261697][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 16:57:00,797 [DEBUG][       Thread-261697][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 16:57:00,797 [DEBUG][       Thread-261697][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 16:57:00,797 [DEBUG][       Thread-261697][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 16:57:00,797 [DEBUG][       Thread-261697][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:57:00,797 [DEBUG][       Thread-261697][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:57:00,797 [DEBUG][       Thread-261697][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:57:00,797 [DEBUG][       Thread-261697][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:57:00,797 [DEBUG][       Thread-261697][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 16:57:00,797 [DEBUG][       Thread-261697][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 16:57:00,797 [DEBUG][       Thread-261697][   transport.py][1871] : client lang: <none>
2025-06-13 16:57:00,797 [DEBUG][       Thread-261697][   transport.py][1871] : server lang: <none>
2025-06-13 16:57:00,797 [DEBUG][       Thread-261697][   transport.py][1871] : kex follows: False
2025-06-13 16:57:00,797 [DEBUG][       Thread-261697][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 16:57:00,798 [DEBUG][       Thread-261697][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 16:57:00,798 [DEBUG][       Thread-261697][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 16:57:00,798 [DEBUG][       Thread-261697][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 16:57:00,798 [DEBUG][       Thread-261697][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 16:57:00,798 [DEBUG][       Thread-261697][   transport.py][1871] : Compression: none
2025-06-13 16:57:00,798 [DEBUG][       Thread-261697][   transport.py][1871] : === End of kex handshake ===
2025-06-13 16:57:00,853 [DEBUG][       Thread-261697][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 16:57:00,853 [DEBUG][       Thread-261697][   transport.py][1871] : Switch to new keys ...
2025-06-13 16:57:00,854 [DEBUG][       Thread-261697][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 16:57:00,854 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 16:57:00,854 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 16:57:00,910 [DEBUG][       Thread-261697][   transport.py][1871] : userauth is OK
2025-06-13 16:57:00,910 [DEBUG][       Thread-261697][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 16:57:00,910 [DEBUG][       Thread-261697][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 16:57:00,910 [DEBUG][       Thread-261697][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 16:57:00,910 [DEBUG][       Thread-261697][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 16:57:00,934 [ INFO][       Thread-261697][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 16:57:00,934 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 16:57:00,934 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 16:57:01,955 [DEBUG][       Thread-261697][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 16:57:01,955 [DEBUG][       Thread-261697][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 16:57:02,003 [DEBUG][       Thread-261697][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 16:57:02,003 [DEBUG][       Thread-261697][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 16:57:02,011 [DEBUG][       Thread-261697][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 16:57:02,019 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 16:57:02,019 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 16:57:02,027 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 16:57:02,035 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 16:57:02,035 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 16:57:02,035 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 16:57:02,043 [DEBUG][       Thread-261697][   transport.py][1871] : EOF in transport thread
2025-06-13 16:57:08,857 [DEBUG][Thread-261699 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:57:12,045 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 16:57:12,046 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 16:57:12,046 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 16:57:12,049 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 16:57:12,505 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 16, 57), 16.2, 32.52, 0.0, 12.21, 13.47, 0, 0, 0, 2, 0, 0),)
2025-06-13 16:57:12,505 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 16:57:00
2025-06-13 16:57:12,587 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 16:57:12,594 [DEBUG][       Thread-261700][   transport.py][1871] : starting thread (client mode): 0x863c83a0
2025-06-13 16:57:12,594 [DEBUG][       Thread-261700][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 16:57:12,615 [DEBUG][       Thread-261700][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 16:57:12,615 [ INFO][       Thread-261700][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 16:57:12,617 [DEBUG][       Thread-261700][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 16:57:12,617 [DEBUG][       Thread-261700][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 16:57:12,617 [DEBUG][       Thread-261700][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 16:57:12,617 [DEBUG][       Thread-261700][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:57:12,617 [DEBUG][       Thread-261700][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:57:12,617 [DEBUG][       Thread-261700][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:57:12,617 [DEBUG][       Thread-261700][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:57:12,617 [DEBUG][       Thread-261700][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 16:57:12,617 [DEBUG][       Thread-261700][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 16:57:12,617 [DEBUG][       Thread-261700][   transport.py][1871] : client lang: <none>
2025-06-13 16:57:12,617 [DEBUG][       Thread-261700][   transport.py][1871] : server lang: <none>
2025-06-13 16:57:12,617 [DEBUG][       Thread-261700][   transport.py][1871] : kex follows: False
2025-06-13 16:57:12,617 [DEBUG][       Thread-261700][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 16:57:12,617 [DEBUG][       Thread-261700][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 16:57:12,617 [DEBUG][       Thread-261700][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 16:57:12,617 [DEBUG][       Thread-261700][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 16:57:12,617 [DEBUG][       Thread-261700][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 16:57:12,617 [DEBUG][       Thread-261700][   transport.py][1871] : Compression: none
2025-06-13 16:57:12,618 [DEBUG][       Thread-261700][   transport.py][1871] : === End of kex handshake ===
2025-06-13 16:57:12,635 [DEBUG][       Thread-261700][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 16:57:12,636 [DEBUG][       Thread-261700][   transport.py][1871] : Switch to new keys ...
2025-06-13 16:57:12,636 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 16:57:12,637 [DEBUG][       Thread-261700][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 16:57:12,637 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 16:57:12,638 [DEBUG][       Thread-261700][   transport.py][1871] : userauth is OK
2025-06-13 16:57:12,663 [ INFO][       Thread-261700][   transport.py][1871] : Authentication (password) successful!
2025-06-13 16:57:12,664 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 16:57:13,259 [DEBUG][       Thread-261700][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 16:57:13,259 [DEBUG][       Thread-261700][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 16:57:13,301 [DEBUG][       Thread-261700][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 16:57:13,301 [DEBUG][       Thread-261700][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 16:57:13,305 [DEBUG][       Thread-261700][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 16:57:13,316 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 16:57:13,316 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 16:57:13,318 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 16:57:13,320 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 16:57:13,326 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 16:57:13,328 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 16:57:13,328 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 16:57:13,329 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 16:57:13,329 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.622851 -999.00  +13.30  16.16     37   -0.90 1 1 1 1 1   887    0 13.65 -23.35 ----- 15.8 16.2 51.8 22.8 15.5 -29.2 15.0 -29.7 15.6 -29.2 16.3 -28.3
2025-06-13 16:57:13,329 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 16:57:13,329 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 16:57:13,329 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.622851
2025-06-13 16:57:13,329 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 16:57:13,330 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 16:57:13,330 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 16:57:13,330 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 16:57:13,330 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 16:57:13,330 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T16:57:00', tmtdew=16.2, humidity=32.52, cloud=0.0, wind=12.21, temperature=13.47, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T14:56:54.326', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 16:57:13,332 [DEBUG][       Thread-261700][   transport.py][1871] : EOF in transport thread
2025-06-13 16:57:13,422 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 16:57:13,434 [DEBUG][       Thread-261703][   transport.py][1871] : starting thread (client mode): 0x863cb0a0
2025-06-13 16:57:13,434 [DEBUG][       Thread-261703][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 16:57:13,449 [DEBUG][       Thread-261703][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 16:57:13,449 [ INFO][       Thread-261703][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 16:57:13,458 [DEBUG][       Thread-261703][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 16:57:13,459 [DEBUG][       Thread-261703][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 16:57:13,459 [DEBUG][       Thread-261703][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 16:57:13,459 [DEBUG][       Thread-261703][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:57:13,459 [DEBUG][       Thread-261703][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:57:13,459 [DEBUG][       Thread-261703][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:57:13,459 [DEBUG][       Thread-261703][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:57:13,459 [DEBUG][       Thread-261703][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 16:57:13,459 [DEBUG][       Thread-261703][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 16:57:13,459 [DEBUG][       Thread-261703][   transport.py][1871] : client lang: <none>
2025-06-13 16:57:13,459 [DEBUG][       Thread-261703][   transport.py][1871] : server lang: <none>
2025-06-13 16:57:13,459 [DEBUG][       Thread-261703][   transport.py][1871] : kex follows: False
2025-06-13 16:57:13,459 [DEBUG][       Thread-261703][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 16:57:13,459 [DEBUG][       Thread-261703][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 16:57:13,459 [DEBUG][       Thread-261703][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 16:57:13,459 [DEBUG][       Thread-261703][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 16:57:13,460 [DEBUG][       Thread-261703][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 16:57:13,460 [DEBUG][       Thread-261703][   transport.py][1871] : Compression: none
2025-06-13 16:57:13,460 [DEBUG][       Thread-261703][   transport.py][1871] : === End of kex handshake ===
2025-06-13 16:57:13,514 [DEBUG][       Thread-261703][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 16:57:13,515 [DEBUG][       Thread-261703][   transport.py][1871] : Switch to new keys ...
2025-06-13 16:57:13,515 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 16:57:13,516 [DEBUG][       Thread-261703][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 16:57:13,516 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 16:57:13,576 [DEBUG][       Thread-261703][   transport.py][1871] : userauth is OK
2025-06-13 16:57:13,576 [DEBUG][       Thread-261703][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 16:57:13,576 [DEBUG][       Thread-261703][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 16:57:13,577 [DEBUG][       Thread-261703][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 16:57:13,577 [DEBUG][       Thread-261703][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 16:57:13,596 [ INFO][       Thread-261703][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 16:57:13,596 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 16:57:13,597 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 16:57:14,590 [DEBUG][       Thread-261703][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 16:57:14,590 [DEBUG][       Thread-261703][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 16:57:14,640 [DEBUG][       Thread-261703][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 16:57:14,640 [DEBUG][       Thread-261703][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 16:57:14,649 [DEBUG][       Thread-261703][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 16:57:14,657 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 16:57:14,657 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 16:57:14,665 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 16:57:14,673 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 16:57:14,673 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 16:57:14,673 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 16:57:14,681 [DEBUG][       Thread-261703][   transport.py][1871] : EOF in transport thread
2025-06-13 16:57:17,878 [DEBUG][Thread-261705 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:57:21,920 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:57:21,922 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:57:24,641 [DEBUG][Thread-261706 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:57:24,677 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 16:57:24,678 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 16:57:24,678 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 16:57:24,680 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 16:57:25,136 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 16, 57), 16.2, 32.52, 0.0, 12.21, 13.47, 0, 0, 0, 2, 0, 0),)
2025-06-13 16:57:25,136 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 16:57:00
2025-06-13 16:57:25,218 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 16:57:25,222 [DEBUG][       Thread-261707][   transport.py][1871] : starting thread (client mode): 0x867ff3d0
2025-06-13 16:57:25,222 [DEBUG][       Thread-261707][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 16:57:25,244 [DEBUG][       Thread-261707][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 16:57:25,244 [ INFO][       Thread-261707][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 16:57:25,247 [DEBUG][       Thread-261707][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 16:57:25,247 [DEBUG][       Thread-261707][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 16:57:25,247 [DEBUG][       Thread-261707][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 16:57:25,247 [DEBUG][       Thread-261707][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:57:25,248 [DEBUG][       Thread-261707][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:57:25,248 [DEBUG][       Thread-261707][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:57:25,248 [DEBUG][       Thread-261707][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:57:25,248 [DEBUG][       Thread-261707][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 16:57:25,248 [DEBUG][       Thread-261707][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 16:57:25,248 [DEBUG][       Thread-261707][   transport.py][1871] : client lang: <none>
2025-06-13 16:57:25,248 [DEBUG][       Thread-261707][   transport.py][1871] : server lang: <none>
2025-06-13 16:57:25,248 [DEBUG][       Thread-261707][   transport.py][1871] : kex follows: False
2025-06-13 16:57:25,248 [DEBUG][       Thread-261707][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 16:57:25,248 [DEBUG][       Thread-261707][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 16:57:25,248 [DEBUG][       Thread-261707][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 16:57:25,248 [DEBUG][       Thread-261707][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 16:57:25,248 [DEBUG][       Thread-261707][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 16:57:25,248 [DEBUG][       Thread-261707][   transport.py][1871] : Compression: none
2025-06-13 16:57:25,248 [DEBUG][       Thread-261707][   transport.py][1871] : === End of kex handshake ===
2025-06-13 16:57:25,265 [DEBUG][       Thread-261707][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 16:57:25,265 [DEBUG][       Thread-261707][   transport.py][1871] : Switch to new keys ...
2025-06-13 16:57:25,266 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 16:57:25,266 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 16:57:25,267 [DEBUG][       Thread-261707][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 16:57:25,267 [DEBUG][       Thread-261707][   transport.py][1871] : userauth is OK
2025-06-13 16:57:25,280 [ INFO][       Thread-261707][   transport.py][1871] : Authentication (password) successful!
2025-06-13 16:57:25,281 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 16:57:25,931 [DEBUG][       Thread-261707][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 16:57:25,932 [DEBUG][       Thread-261707][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 16:57:25,977 [DEBUG][       Thread-261707][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 16:57:25,977 [DEBUG][       Thread-261707][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 16:57:25,980 [DEBUG][       Thread-261707][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 16:57:25,994 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 16:57:25,994 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 16:57:25,996 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 16:57:25,998 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 16:57:26,003 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 16:57:26,005 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 16:57:26,005 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 16:57:26,006 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 16:57:26,006 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.622851 -999.00  +13.30  16.16     37   -0.90 1 1 1 1 1   887    0 13.65 -23.35 ----- 15.8 16.2 51.8 22.8 15.5 -29.2 15.0 -29.7 15.6 -29.2 16.3 -28.3
2025-06-13 16:57:26,006 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 16:57:26,007 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 16:57:26,007 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.622851
2025-06-13 16:57:26,007 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 16:57:26,008 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 16:57:26,008 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 16:57:26,008 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 16:57:26,008 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 16:57:26,008 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T16:57:00', tmtdew=16.2, humidity=32.52, cloud=0.0, wind=12.21, temperature=13.47, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T14:56:54.326', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 16:57:26,008 [DEBUG][       Thread-261707][   transport.py][1871] : EOF in transport thread
2025-06-13 16:57:26,091 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 16:57:26,106 [DEBUG][       Thread-261710][   transport.py][1871] : starting thread (client mode): 0x863932e0
2025-06-13 16:57:26,106 [DEBUG][       Thread-261710][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 16:57:26,121 [DEBUG][       Thread-261710][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 16:57:26,121 [ INFO][       Thread-261710][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 16:57:26,129 [DEBUG][       Thread-261710][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 16:57:26,129 [DEBUG][       Thread-261710][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 16:57:26,129 [DEBUG][       Thread-261710][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 16:57:26,129 [DEBUG][       Thread-261710][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:57:26,129 [DEBUG][       Thread-261710][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:57:26,130 [DEBUG][       Thread-261710][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:57:26,130 [DEBUG][       Thread-261710][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:57:26,130 [DEBUG][       Thread-261710][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 16:57:26,130 [DEBUG][       Thread-261710][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 16:57:26,130 [DEBUG][       Thread-261710][   transport.py][1871] : client lang: <none>
2025-06-13 16:57:26,130 [DEBUG][       Thread-261710][   transport.py][1871] : server lang: <none>
2025-06-13 16:57:26,130 [DEBUG][       Thread-261710][   transport.py][1871] : kex follows: False
2025-06-13 16:57:26,130 [DEBUG][       Thread-261710][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 16:57:26,130 [DEBUG][       Thread-261710][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 16:57:26,130 [DEBUG][       Thread-261710][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 16:57:26,130 [DEBUG][       Thread-261710][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 16:57:26,130 [DEBUG][       Thread-261710][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 16:57:26,130 [DEBUG][       Thread-261710][   transport.py][1871] : Compression: none
2025-06-13 16:57:26,130 [DEBUG][       Thread-261710][   transport.py][1871] : === End of kex handshake ===
2025-06-13 16:57:26,186 [DEBUG][       Thread-261710][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 16:57:26,187 [DEBUG][       Thread-261710][   transport.py][1871] : Switch to new keys ...
2025-06-13 16:57:26,187 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 16:57:26,188 [DEBUG][       Thread-261710][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 16:57:26,188 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 16:57:26,242 [DEBUG][       Thread-261710][   transport.py][1871] : userauth is OK
2025-06-13 16:57:26,242 [DEBUG][       Thread-261710][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 16:57:26,243 [DEBUG][       Thread-261710][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 16:57:26,243 [DEBUG][       Thread-261710][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 16:57:26,243 [DEBUG][       Thread-261710][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 16:57:26,262 [ INFO][       Thread-261710][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 16:57:26,262 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 16:57:26,262 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 16:57:26,758 [DEBUG][Thread-261712 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:57:26,909 [DEBUG][Thread-261713 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:57:27,283 [DEBUG][       Thread-261710][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 16:57:27,283 [DEBUG][       Thread-261710][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 16:57:27,335 [DEBUG][       Thread-261710][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 16:57:27,336 [DEBUG][       Thread-261710][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 16:57:27,347 [DEBUG][       Thread-261710][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 16:57:27,357 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 16:57:27,358 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 16:57:27,368 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 16:57:27,381 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 16:57:27,381 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 16:57:27,381 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 16:57:27,390 [DEBUG][       Thread-261710][   transport.py][1871] : EOF in transport thread
2025-06-13 16:57:27,811 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:57:27,813 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:57:35,930 [DEBUG][Thread-261714 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:57:37,392 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 16:57:37,392 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 16:57:37,392 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 16:57:37,395 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 16:57:37,845 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 16, 57, 32), 16.25, 32.49, 0.0, 12.44, 13.47, 0, 0, 0, 2, 0, 0),)
2025-06-13 16:57:37,845 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 16:57:32
2025-06-13 16:57:37,926 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 16:57:37,932 [DEBUG][       Thread-261715][   transport.py][1871] : starting thread (client mode): 0x86351cf0
2025-06-13 16:57:37,933 [DEBUG][       Thread-261715][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 16:57:37,953 [DEBUG][       Thread-261715][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 16:57:37,954 [ INFO][       Thread-261715][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 16:57:37,955 [DEBUG][       Thread-261715][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 16:57:37,955 [DEBUG][       Thread-261715][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 16:57:37,955 [DEBUG][       Thread-261715][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 16:57:37,955 [DEBUG][       Thread-261715][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:57:37,955 [DEBUG][       Thread-261715][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:57:37,956 [DEBUG][       Thread-261715][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:57:37,956 [DEBUG][       Thread-261715][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:57:37,956 [DEBUG][       Thread-261715][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 16:57:37,956 [DEBUG][       Thread-261715][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 16:57:37,956 [DEBUG][       Thread-261715][   transport.py][1871] : client lang: <none>
2025-06-13 16:57:37,956 [DEBUG][       Thread-261715][   transport.py][1871] : server lang: <none>
2025-06-13 16:57:37,956 [DEBUG][       Thread-261715][   transport.py][1871] : kex follows: False
2025-06-13 16:57:37,956 [DEBUG][       Thread-261715][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 16:57:37,956 [DEBUG][       Thread-261715][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 16:57:37,956 [DEBUG][       Thread-261715][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 16:57:37,956 [DEBUG][       Thread-261715][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 16:57:37,956 [DEBUG][       Thread-261715][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 16:57:37,956 [DEBUG][       Thread-261715][   transport.py][1871] : Compression: none
2025-06-13 16:57:37,956 [DEBUG][       Thread-261715][   transport.py][1871] : === End of kex handshake ===
2025-06-13 16:57:37,966 [DEBUG][       Thread-261715][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 16:57:37,966 [DEBUG][       Thread-261715][   transport.py][1871] : Switch to new keys ...
2025-06-13 16:57:37,967 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 16:57:37,967 [DEBUG][       Thread-261715][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 16:57:37,967 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 16:57:37,969 [DEBUG][       Thread-261715][   transport.py][1871] : userauth is OK
2025-06-13 16:57:37,994 [ INFO][       Thread-261715][   transport.py][1871] : Authentication (password) successful!
2025-06-13 16:57:37,994 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 16:57:38,625 [DEBUG][       Thread-261715][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 16:57:38,625 [DEBUG][       Thread-261715][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 16:57:38,669 [DEBUG][       Thread-261715][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 16:57:38,669 [DEBUG][       Thread-261715][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 16:57:38,673 [DEBUG][       Thread-261715][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 16:57:38,686 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 16:57:38,686 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 16:57:38,688 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 16:57:38,690 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 16:57:38,696 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 16:57:38,698 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 16:57:38,698 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 16:57:38,699 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 16:57:38,699 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.623198 -999.00  +13.30  20.18     36   -1.20 1 1 1 1 1   887    0 13.71 -22.58 ----- 20.5 20.2 47.6 24.4 15.5 -29.6 15.0 -29.8 15.6 -28.7 16.3 -28.7
2025-06-13 16:57:38,699 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 16:57:38,699 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 16:57:38,699 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.623198
2025-06-13 16:57:38,700 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 16:57:38,700 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 16:57:38,700 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 16:57:38,700 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 16:57:38,701 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 16:57:38,701 [DEBUG][       Thread-261715][   transport.py][1871] : EOF in transport thread
2025-06-13 16:57:38,701 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T16:57:32', tmtdew=16.25, humidity=32.49, cloud=0.0, wind=12.44, temperature=13.47, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T14:57:24.307', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 16:57:38,784 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 16:57:38,796 [DEBUG][       Thread-261718][   transport.py][1871] : starting thread (client mode): 0x863ed8d0
2025-06-13 16:57:38,796 [DEBUG][       Thread-261718][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 16:57:38,812 [DEBUG][       Thread-261718][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 16:57:38,812 [ INFO][       Thread-261718][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 16:57:38,819 [DEBUG][       Thread-261718][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 16:57:38,820 [DEBUG][       Thread-261718][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 16:57:38,820 [DEBUG][       Thread-261718][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 16:57:38,820 [DEBUG][       Thread-261718][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:57:38,820 [DEBUG][       Thread-261718][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:57:38,820 [DEBUG][       Thread-261718][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:57:38,820 [DEBUG][       Thread-261718][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:57:38,820 [DEBUG][       Thread-261718][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 16:57:38,820 [DEBUG][       Thread-261718][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 16:57:38,820 [DEBUG][       Thread-261718][   transport.py][1871] : client lang: <none>
2025-06-13 16:57:38,820 [DEBUG][       Thread-261718][   transport.py][1871] : server lang: <none>
2025-06-13 16:57:38,820 [DEBUG][       Thread-261718][   transport.py][1871] : kex follows: False
2025-06-13 16:57:38,820 [DEBUG][       Thread-261718][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 16:57:38,820 [DEBUG][       Thread-261718][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 16:57:38,820 [DEBUG][       Thread-261718][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 16:57:38,820 [DEBUG][       Thread-261718][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 16:57:38,820 [DEBUG][       Thread-261718][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 16:57:38,820 [DEBUG][       Thread-261718][   transport.py][1871] : Compression: none
2025-06-13 16:57:38,821 [DEBUG][       Thread-261718][   transport.py][1871] : === End of kex handshake ===
2025-06-13 16:57:38,883 [DEBUG][       Thread-261718][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 16:57:38,883 [DEBUG][       Thread-261718][   transport.py][1871] : Switch to new keys ...
2025-06-13 16:57:38,884 [DEBUG][       Thread-261718][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 16:57:38,884 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 16:57:38,885 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 16:57:38,948 [DEBUG][       Thread-261718][   transport.py][1871] : userauth is OK
2025-06-13 16:57:38,948 [DEBUG][       Thread-261718][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 16:57:38,949 [DEBUG][       Thread-261718][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 16:57:38,949 [DEBUG][       Thread-261718][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 16:57:38,949 [DEBUG][       Thread-261718][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 16:57:38,968 [ INFO][       Thread-261718][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 16:57:38,968 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 16:57:38,969 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 16:57:39,945 [DEBUG][       Thread-261718][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 16:57:39,945 [DEBUG][       Thread-261718][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 16:57:39,999 [DEBUG][       Thread-261718][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 16:57:39,999 [DEBUG][       Thread-261718][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 16:57:40,011 [DEBUG][       Thread-261718][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 16:57:40,023 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 16:57:40,023 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 16:57:40,034 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 16:57:40,042 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 16:57:40,042 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 16:57:40,042 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 16:57:40,050 [DEBUG][       Thread-261718][   transport.py][1871] : EOF in transport thread
2025-06-13 16:57:44,950 [DEBUG][Thread-261720 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:57:50,044 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 16:57:50,044 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 16:57:50,044 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 16:57:50,047 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 16:57:50,495 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 16, 57, 32), 16.25, 32.49, 0.0, 12.44, 13.47, 0, 0, 0, 2, 0, 0),)
2025-06-13 16:57:50,495 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 16:57:32
2025-06-13 16:57:50,577 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 16:57:50,581 [DEBUG][       Thread-261721][   transport.py][1871] : starting thread (client mode): 0x863c8c10
2025-06-13 16:57:50,581 [DEBUG][       Thread-261721][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 16:57:50,602 [DEBUG][       Thread-261721][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 16:57:50,602 [ INFO][       Thread-261721][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 16:57:50,606 [DEBUG][       Thread-261721][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 16:57:50,606 [DEBUG][       Thread-261721][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 16:57:50,606 [DEBUG][       Thread-261721][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 16:57:50,606 [DEBUG][       Thread-261721][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:57:50,606 [DEBUG][       Thread-261721][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:57:50,606 [DEBUG][       Thread-261721][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:57:50,606 [DEBUG][       Thread-261721][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:57:50,606 [DEBUG][       Thread-261721][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 16:57:50,606 [DEBUG][       Thread-261721][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 16:57:50,606 [DEBUG][       Thread-261721][   transport.py][1871] : client lang: <none>
2025-06-13 16:57:50,606 [DEBUG][       Thread-261721][   transport.py][1871] : server lang: <none>
2025-06-13 16:57:50,606 [DEBUG][       Thread-261721][   transport.py][1871] : kex follows: False
2025-06-13 16:57:50,606 [DEBUG][       Thread-261721][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 16:57:50,606 [DEBUG][       Thread-261721][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 16:57:50,606 [DEBUG][       Thread-261721][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 16:57:50,606 [DEBUG][       Thread-261721][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 16:57:50,607 [DEBUG][       Thread-261721][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 16:57:50,607 [DEBUG][       Thread-261721][   transport.py][1871] : Compression: none
2025-06-13 16:57:50,607 [DEBUG][       Thread-261721][   transport.py][1871] : === End of kex handshake ===
2025-06-13 16:57:50,624 [DEBUG][       Thread-261721][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 16:57:50,625 [DEBUG][       Thread-261721][   transport.py][1871] : Switch to new keys ...
2025-06-13 16:57:50,626 [DEBUG][       Thread-261721][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 16:57:50,626 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 16:57:50,626 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 16:57:50,627 [DEBUG][       Thread-261721][   transport.py][1871] : userauth is OK
2025-06-13 16:57:50,652 [ INFO][       Thread-261721][   transport.py][1871] : Authentication (password) successful!
2025-06-13 16:57:50,653 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 16:57:51,296 [DEBUG][       Thread-261721][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 16:57:51,296 [DEBUG][       Thread-261721][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 16:57:51,337 [DEBUG][       Thread-261721][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 16:57:51,337 [DEBUG][       Thread-261721][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 16:57:51,342 [DEBUG][       Thread-261721][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 16:57:51,356 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 16:57:51,357 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 16:57:51,359 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 16:57:51,361 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 16:57:51,367 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 16:57:51,370 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 16:57:51,370 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 16:57:51,371 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 16:57:51,371 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.623198 -999.00  +13.30  20.18     36   -1.20 1 1 1 1 1   887    0 13.71 -22.58 ----- 20.5 20.2 47.6 24.4 15.5 -29.6 15.0 -29.8 15.6 -28.7 16.3 -28.7
2025-06-13 16:57:51,371 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 16:57:51,371 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 16:57:51,371 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.623198
2025-06-13 16:57:51,371 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 16:57:51,372 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 16:57:51,372 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 16:57:51,372 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 16:57:51,372 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 16:57:51,372 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T16:57:32', tmtdew=16.25, humidity=32.49, cloud=0.0, wind=12.44, temperature=13.47, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T14:57:24.307', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 16:57:51,374 [DEBUG][       Thread-261721][   transport.py][1871] : EOF in transport thread
2025-06-13 16:57:51,456 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 16:57:51,470 [DEBUG][       Thread-261724][   transport.py][1871] : starting thread (client mode): 0x863bf7f0
2025-06-13 16:57:51,470 [DEBUG][       Thread-261724][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 16:57:51,485 [DEBUG][       Thread-261724][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 16:57:51,485 [ INFO][       Thread-261724][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 16:57:51,493 [DEBUG][       Thread-261724][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 16:57:51,493 [DEBUG][       Thread-261724][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 16:57:51,493 [DEBUG][       Thread-261724][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 16:57:51,493 [DEBUG][       Thread-261724][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:57:51,493 [DEBUG][       Thread-261724][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:57:51,493 [DEBUG][       Thread-261724][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:57:51,493 [DEBUG][       Thread-261724][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:57:51,493 [DEBUG][       Thread-261724][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 16:57:51,493 [DEBUG][       Thread-261724][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 16:57:51,493 [DEBUG][       Thread-261724][   transport.py][1871] : client lang: <none>
2025-06-13 16:57:51,493 [DEBUG][       Thread-261724][   transport.py][1871] : server lang: <none>
2025-06-13 16:57:51,494 [DEBUG][       Thread-261724][   transport.py][1871] : kex follows: False
2025-06-13 16:57:51,494 [DEBUG][       Thread-261724][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 16:57:51,494 [DEBUG][       Thread-261724][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 16:57:51,494 [DEBUG][       Thread-261724][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 16:57:51,494 [DEBUG][       Thread-261724][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 16:57:51,494 [DEBUG][       Thread-261724][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 16:57:51,494 [DEBUG][       Thread-261724][   transport.py][1871] : Compression: none
2025-06-13 16:57:51,494 [DEBUG][       Thread-261724][   transport.py][1871] : === End of kex handshake ===
2025-06-13 16:57:51,550 [DEBUG][       Thread-261724][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 16:57:51,551 [DEBUG][       Thread-261724][   transport.py][1871] : Switch to new keys ...
2025-06-13 16:57:51,551 [DEBUG][       Thread-261724][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 16:57:51,552 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 16:57:51,552 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 16:57:51,606 [DEBUG][       Thread-261724][   transport.py][1871] : userauth is OK
2025-06-13 16:57:51,607 [DEBUG][       Thread-261724][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 16:57:51,607 [DEBUG][       Thread-261724][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 16:57:51,607 [DEBUG][       Thread-261724][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 16:57:51,607 [DEBUG][       Thread-261724][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 16:57:51,625 [ INFO][       Thread-261724][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 16:57:51,625 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 16:57:51,626 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 16:57:52,616 [DEBUG][       Thread-261724][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 16:57:52,616 [DEBUG][       Thread-261724][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 16:57:52,664 [DEBUG][       Thread-261724][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 16:57:52,664 [DEBUG][       Thread-261724][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 16:57:52,674 [DEBUG][       Thread-261724][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 16:57:52,683 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 16:57:52,683 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 16:57:52,692 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 16:57:52,701 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 16:57:52,702 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 16:57:52,702 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 16:57:52,710 [DEBUG][       Thread-261724][   transport.py][1871] : EOF in transport thread
2025-06-13 16:57:53,993 [DEBUG][Thread-261726 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:58:02,712 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 16:58:02,713 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 16:58:02,713 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 16:58:02,716 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 16:58:03,013 [DEBUG][Thread-261727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:58:03,163 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 16, 57, 32), 16.25, 32.49, 0.0, 12.44, 13.47, 0, 0, 0, 2, 0, 0),)
2025-06-13 16:58:03,163 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 16:57:32
2025-06-13 16:58:03,244 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 16:58:03,251 [DEBUG][       Thread-261728][   transport.py][1871] : starting thread (client mode): 0x863521d0
2025-06-13 16:58:03,254 [DEBUG][       Thread-261728][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 16:58:03,271 [DEBUG][       Thread-261728][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 16:58:03,272 [ INFO][       Thread-261728][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 16:58:03,275 [DEBUG][       Thread-261728][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 16:58:03,275 [DEBUG][       Thread-261728][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 16:58:03,275 [DEBUG][       Thread-261728][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 16:58:03,275 [DEBUG][       Thread-261728][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:58:03,275 [DEBUG][       Thread-261728][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:58:03,275 [DEBUG][       Thread-261728][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:58:03,276 [DEBUG][       Thread-261728][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:58:03,276 [DEBUG][       Thread-261728][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 16:58:03,276 [DEBUG][       Thread-261728][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 16:58:03,276 [DEBUG][       Thread-261728][   transport.py][1871] : client lang: <none>
2025-06-13 16:58:03,276 [DEBUG][       Thread-261728][   transport.py][1871] : server lang: <none>
2025-06-13 16:58:03,276 [DEBUG][       Thread-261728][   transport.py][1871] : kex follows: False
2025-06-13 16:58:03,276 [DEBUG][       Thread-261728][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 16:58:03,276 [DEBUG][       Thread-261728][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 16:58:03,276 [DEBUG][       Thread-261728][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 16:58:03,276 [DEBUG][       Thread-261728][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 16:58:03,276 [DEBUG][       Thread-261728][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 16:58:03,276 [DEBUG][       Thread-261728][   transport.py][1871] : Compression: none
2025-06-13 16:58:03,276 [DEBUG][       Thread-261728][   transport.py][1871] : === End of kex handshake ===
2025-06-13 16:58:03,293 [DEBUG][       Thread-261728][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 16:58:03,293 [DEBUG][       Thread-261728][   transport.py][1871] : Switch to new keys ...
2025-06-13 16:58:03,294 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 16:58:03,294 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 16:58:03,294 [DEBUG][       Thread-261728][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 16:58:03,295 [DEBUG][       Thread-261728][   transport.py][1871] : userauth is OK
2025-06-13 16:58:03,308 [ INFO][       Thread-261728][   transport.py][1871] : Authentication (password) successful!
2025-06-13 16:58:03,309 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 16:58:03,945 [DEBUG][       Thread-261728][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 16:58:03,946 [DEBUG][       Thread-261728][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 16:58:03,989 [DEBUG][       Thread-261728][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 16:58:03,989 [DEBUG][       Thread-261728][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 16:58:03,992 [DEBUG][       Thread-261728][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 16:58:04,006 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 16:58:04,006 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 16:58:04,008 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 16:58:04,011 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 16:58:04,017 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 16:58:04,019 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 16:58:04,020 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 16:58:04,021 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 16:58:04,021 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.623198 -999.00  +13.30  20.18     36   -1.20 1 1 1 1 1   887    0 13.71 -22.58 ----- 20.5 20.2 47.6 24.4 15.5 -29.6 15.0 -29.8 15.6 -28.7 16.3 -28.7
2025-06-13 16:58:04,021 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 16:58:04,021 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 16:58:04,021 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.623198
2025-06-13 16:58:04,022 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 16:58:04,022 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 16:58:04,022 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 16:58:04,023 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 16:58:04,023 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 16:58:04,023 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T16:57:32', tmtdew=16.25, humidity=32.49, cloud=0.0, wind=12.44, temperature=13.47, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T14:57:24.307', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 16:58:04,023 [DEBUG][       Thread-261728][   transport.py][1871] : EOF in transport thread
2025-06-13 16:58:04,110 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 16:58:04,121 [DEBUG][       Thread-261731][   transport.py][1871] : starting thread (client mode): 0x863ef760
2025-06-13 16:58:04,121 [DEBUG][       Thread-261731][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 16:58:04,136 [DEBUG][       Thread-261731][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 16:58:04,136 [ INFO][       Thread-261731][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 16:58:04,143 [DEBUG][       Thread-261731][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 16:58:04,143 [DEBUG][       Thread-261731][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 16:58:04,143 [DEBUG][       Thread-261731][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 16:58:04,144 [DEBUG][       Thread-261731][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:58:04,144 [DEBUG][       Thread-261731][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:58:04,144 [DEBUG][       Thread-261731][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:58:04,144 [DEBUG][       Thread-261731][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:58:04,144 [DEBUG][       Thread-261731][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 16:58:04,144 [DEBUG][       Thread-261731][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 16:58:04,144 [DEBUG][       Thread-261731][   transport.py][1871] : client lang: <none>
2025-06-13 16:58:04,144 [DEBUG][       Thread-261731][   transport.py][1871] : server lang: <none>
2025-06-13 16:58:04,144 [DEBUG][       Thread-261731][   transport.py][1871] : kex follows: False
2025-06-13 16:58:04,144 [DEBUG][       Thread-261731][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 16:58:04,144 [DEBUG][       Thread-261731][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 16:58:04,144 [DEBUG][       Thread-261731][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 16:58:04,144 [DEBUG][       Thread-261731][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 16:58:04,144 [DEBUG][       Thread-261731][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 16:58:04,144 [DEBUG][       Thread-261731][   transport.py][1871] : Compression: none
2025-06-13 16:58:04,144 [DEBUG][       Thread-261731][   transport.py][1871] : === End of kex handshake ===
2025-06-13 16:58:04,205 [DEBUG][       Thread-261731][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 16:58:04,206 [DEBUG][       Thread-261731][   transport.py][1871] : Switch to new keys ...
2025-06-13 16:58:04,206 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 16:58:04,207 [DEBUG][       Thread-261731][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 16:58:04,207 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 16:58:04,266 [DEBUG][       Thread-261731][   transport.py][1871] : userauth is OK
2025-06-13 16:58:04,267 [DEBUG][       Thread-261731][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 16:58:04,267 [DEBUG][       Thread-261731][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 16:58:04,267 [DEBUG][       Thread-261731][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 16:58:04,267 [DEBUG][       Thread-261731][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 16:58:04,286 [ INFO][       Thread-261731][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 16:58:04,287 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 16:58:04,287 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 16:58:05,288 [DEBUG][       Thread-261731][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 16:58:05,288 [DEBUG][       Thread-261731][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 16:58:05,335 [DEBUG][       Thread-261731][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 16:58:05,335 [DEBUG][       Thread-261731][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 16:58:05,343 [DEBUG][       Thread-261731][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 16:58:05,351 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 16:58:05,351 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 16:58:05,359 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 16:58:05,367 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 16:58:05,367 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 16:58:05,367 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 16:58:05,375 [DEBUG][       Thread-261731][   transport.py][1871] : EOF in transport thread
2025-06-13 16:58:12,034 [DEBUG][Thread-261733 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:58:15,377 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 16:58:15,378 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 16:58:15,378 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 16:58:15,380 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 16:58:15,846 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 16, 58, 4), 16.2, 32.6, 0.0, 12.02, 13.47, 0, 0, 0, 2, 0, 0),)
2025-06-13 16:58:15,846 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 16:58:04
2025-06-13 16:58:15,929 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 16:58:15,935 [DEBUG][       Thread-261734][   transport.py][1871] : starting thread (client mode): 0x86369e40
2025-06-13 16:58:15,935 [DEBUG][       Thread-261734][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 16:58:15,956 [DEBUG][       Thread-261734][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 16:58:15,956 [ INFO][       Thread-261734][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 16:58:15,959 [DEBUG][       Thread-261734][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 16:58:15,959 [DEBUG][       Thread-261734][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 16:58:15,959 [DEBUG][       Thread-261734][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 16:58:15,959 [DEBUG][       Thread-261734][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:58:15,959 [DEBUG][       Thread-261734][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:58:15,959 [DEBUG][       Thread-261734][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:58:15,959 [DEBUG][       Thread-261734][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:58:15,959 [DEBUG][       Thread-261734][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 16:58:15,959 [DEBUG][       Thread-261734][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 16:58:15,959 [DEBUG][       Thread-261734][   transport.py][1871] : client lang: <none>
2025-06-13 16:58:15,959 [DEBUG][       Thread-261734][   transport.py][1871] : server lang: <none>
2025-06-13 16:58:15,959 [DEBUG][       Thread-261734][   transport.py][1871] : kex follows: False
2025-06-13 16:58:15,959 [DEBUG][       Thread-261734][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 16:58:15,959 [DEBUG][       Thread-261734][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 16:58:15,959 [DEBUG][       Thread-261734][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 16:58:15,959 [DEBUG][       Thread-261734][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 16:58:15,960 [DEBUG][       Thread-261734][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 16:58:15,960 [DEBUG][       Thread-261734][   transport.py][1871] : Compression: none
2025-06-13 16:58:15,960 [DEBUG][       Thread-261734][   transport.py][1871] : === End of kex handshake ===
2025-06-13 16:58:15,977 [DEBUG][       Thread-261734][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 16:58:15,977 [DEBUG][       Thread-261734][   transport.py][1871] : Switch to new keys ...
2025-06-13 16:58:15,978 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 16:58:15,978 [DEBUG][       Thread-261734][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 16:58:15,978 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 16:58:15,979 [DEBUG][       Thread-261734][   transport.py][1871] : userauth is OK
2025-06-13 16:58:16,004 [ INFO][       Thread-261734][   transport.py][1871] : Authentication (password) successful!
2025-06-13 16:58:16,005 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 16:58:16,651 [DEBUG][       Thread-261734][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 16:58:16,651 [DEBUG][       Thread-261734][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 16:58:16,693 [DEBUG][       Thread-261734][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 16:58:16,693 [DEBUG][       Thread-261734][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 16:58:16,697 [DEBUG][       Thread-261734][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 16:58:16,708 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 16:58:16,709 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 16:58:16,710 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 16:58:16,712 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 16:58:16,718 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 16:58:16,720 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 16:58:16,721 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 16:58:16,721 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 16:58:16,722 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.623546 -999.00  +13.20  18.66     36   -1.20 1 1 1 1 1   887    0 13.74 -20.22 ----- 16.5 18.7 40.0 22.5 15.4 -29.3 15.0 -29.9 15.5 -29.4 16.2 -28.4
2025-06-13 16:58:16,722 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 16:58:16,722 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 16:58:16,722 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.623546
2025-06-13 16:58:16,722 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 16:58:16,723 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 16:58:16,723 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 16:58:16,723 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 16:58:16,723 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 16:58:16,723 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T16:58:04', tmtdew=16.2, humidity=32.6, cloud=0.0, wind=12.02, temperature=13.47, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T14:57:54.374', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 16:58:16,724 [DEBUG][       Thread-261734][   transport.py][1871] : EOF in transport thread
2025-06-13 16:58:16,808 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 16:58:16,828 [DEBUG][       Thread-261737][   transport.py][1871] : starting thread (client mode): 0x867fcdc0
2025-06-13 16:58:16,828 [DEBUG][       Thread-261737][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 16:58:16,846 [DEBUG][       Thread-261737][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 16:58:16,846 [ INFO][       Thread-261737][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 16:58:16,853 [DEBUG][       Thread-261737][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 16:58:16,854 [DEBUG][       Thread-261737][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 16:58:16,854 [DEBUG][       Thread-261737][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 16:58:16,854 [DEBUG][       Thread-261737][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:58:16,854 [DEBUG][       Thread-261737][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:58:16,854 [DEBUG][       Thread-261737][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:58:16,854 [DEBUG][       Thread-261737][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:58:16,854 [DEBUG][       Thread-261737][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 16:58:16,854 [DEBUG][       Thread-261737][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 16:58:16,854 [DEBUG][       Thread-261737][   transport.py][1871] : client lang: <none>
2025-06-13 16:58:16,854 [DEBUG][       Thread-261737][   transport.py][1871] : server lang: <none>
2025-06-13 16:58:16,854 [DEBUG][       Thread-261737][   transport.py][1871] : kex follows: False
2025-06-13 16:58:16,854 [DEBUG][       Thread-261737][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 16:58:16,854 [DEBUG][       Thread-261737][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 16:58:16,854 [DEBUG][       Thread-261737][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 16:58:16,854 [DEBUG][       Thread-261737][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 16:58:16,854 [DEBUG][       Thread-261737][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 16:58:16,854 [DEBUG][       Thread-261737][   transport.py][1871] : Compression: none
2025-06-13 16:58:16,854 [DEBUG][       Thread-261737][   transport.py][1871] : === End of kex handshake ===
2025-06-13 16:58:16,912 [DEBUG][       Thread-261737][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 16:58:16,913 [DEBUG][       Thread-261737][   transport.py][1871] : Switch to new keys ...
2025-06-13 16:58:16,913 [DEBUG][       Thread-261737][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 16:58:16,913 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 16:58:16,913 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 16:58:16,970 [DEBUG][       Thread-261737][   transport.py][1871] : userauth is OK
2025-06-13 16:58:16,970 [DEBUG][       Thread-261737][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 16:58:16,970 [DEBUG][       Thread-261737][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 16:58:16,970 [DEBUG][       Thread-261737][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 16:58:16,970 [DEBUG][       Thread-261737][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 16:58:16,988 [ INFO][       Thread-261737][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 16:58:16,988 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 16:58:16,988 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 16:58:17,971 [DEBUG][       Thread-261737][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 16:58:17,971 [DEBUG][       Thread-261737][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 16:58:18,019 [DEBUG][       Thread-261737][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 16:58:18,020 [DEBUG][       Thread-261737][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 16:58:18,028 [DEBUG][       Thread-261737][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 16:58:18,036 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 16:58:18,037 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 16:58:18,046 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 16:58:18,054 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 16:58:18,054 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 16:58:18,054 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 16:58:18,062 [DEBUG][       Thread-261737][   transport.py][1871] : EOF in transport thread
2025-06-13 16:58:21,052 [DEBUG][Thread-261739 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:58:22,084 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:58:22,085 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:58:24,716 [DEBUG][Thread-261740 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:58:27,844 [DEBUG][Thread-261741 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:58:28,058 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 16:58:28,058 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 16:58:28,059 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 16:58:28,062 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 16:58:28,511 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 16, 58, 4), 16.2, 32.6, 0.0, 12.02, 13.47, 0, 0, 0, 2, 0, 0),)
2025-06-13 16:58:28,511 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 16:58:04
2025-06-13 16:58:28,593 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 16:58:28,597 [DEBUG][       Thread-261742][   transport.py][1871] : starting thread (client mode): 0x86369d50
2025-06-13 16:58:28,597 [DEBUG][       Thread-261742][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 16:58:28,612 [DEBUG][       Thread-261742][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 16:58:28,612 [ INFO][       Thread-261742][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 16:58:28,615 [DEBUG][       Thread-261742][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 16:58:28,615 [DEBUG][       Thread-261742][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 16:58:28,615 [DEBUG][       Thread-261742][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 16:58:28,615 [DEBUG][       Thread-261742][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:58:28,615 [DEBUG][       Thread-261742][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:58:28,615 [DEBUG][       Thread-261742][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:58:28,615 [DEBUG][       Thread-261742][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:58:28,615 [DEBUG][       Thread-261742][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 16:58:28,615 [DEBUG][       Thread-261742][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 16:58:28,615 [DEBUG][       Thread-261742][   transport.py][1871] : client lang: <none>
2025-06-13 16:58:28,615 [DEBUG][       Thread-261742][   transport.py][1871] : server lang: <none>
2025-06-13 16:58:28,615 [DEBUG][       Thread-261742][   transport.py][1871] : kex follows: False
2025-06-13 16:58:28,615 [DEBUG][       Thread-261742][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 16:58:28,615 [DEBUG][       Thread-261742][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 16:58:28,615 [DEBUG][       Thread-261742][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 16:58:28,615 [DEBUG][       Thread-261742][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 16:58:28,615 [DEBUG][       Thread-261742][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 16:58:28,615 [DEBUG][       Thread-261742][   transport.py][1871] : Compression: none
2025-06-13 16:58:28,615 [DEBUG][       Thread-261742][   transport.py][1871] : === End of kex handshake ===
2025-06-13 16:58:28,627 [DEBUG][       Thread-261742][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 16:58:28,628 [DEBUG][       Thread-261742][   transport.py][1871] : Switch to new keys ...
2025-06-13 16:58:28,628 [DEBUG][       Thread-261742][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 16:58:28,628 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 16:58:28,628 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 16:58:28,629 [DEBUG][       Thread-261742][   transport.py][1871] : userauth is OK
2025-06-13 16:58:28,654 [ INFO][       Thread-261742][   transport.py][1871] : Authentication (password) successful!
2025-06-13 16:58:28,654 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 16:58:28,926 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:58:28,928 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:58:29,287 [DEBUG][       Thread-261742][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 16:58:29,288 [DEBUG][       Thread-261742][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 16:58:29,329 [DEBUG][       Thread-261742][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 16:58:29,329 [DEBUG][       Thread-261742][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 16:58:29,331 [DEBUG][       Thread-261742][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 16:58:29,342 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 16:58:29,342 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 16:58:29,344 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 16:58:29,345 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 16:58:29,349 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 16:58:29,350 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 16:58:29,350 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 16:58:29,351 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 16:58:29,351 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.623546 -999.00  +13.20  18.66     36   -1.20 1 1 1 1 1   887    0 13.74 -20.22 ----- 16.5 18.7 40.0 22.5 15.4 -29.3 15.0 -29.9 15.5 -29.4 16.2 -28.4
2025-06-13 16:58:29,351 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 16:58:29,351 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 16:58:29,351 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.623546
2025-06-13 16:58:29,351 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 16:58:29,351 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 16:58:29,351 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 16:58:29,351 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 16:58:29,351 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 16:58:29,351 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T16:58:04', tmtdew=16.2, humidity=32.6, cloud=0.0, wind=12.02, temperature=13.47, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T14:57:54.374', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 16:58:29,352 [DEBUG][       Thread-261742][   transport.py][1871] : EOF in transport thread
2025-06-13 16:58:29,431 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 16:58:29,440 [DEBUG][       Thread-261745][   transport.py][1871] : starting thread (client mode): 0x863ef190
2025-06-13 16:58:29,440 [DEBUG][       Thread-261745][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 16:58:29,456 [DEBUG][       Thread-261745][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 16:58:29,456 [ INFO][       Thread-261745][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 16:58:29,463 [DEBUG][       Thread-261745][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 16:58:29,464 [DEBUG][       Thread-261745][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 16:58:29,464 [DEBUG][       Thread-261745][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 16:58:29,464 [DEBUG][       Thread-261745][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:58:29,464 [DEBUG][       Thread-261745][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:58:29,464 [DEBUG][       Thread-261745][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:58:29,464 [DEBUG][       Thread-261745][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:58:29,464 [DEBUG][       Thread-261745][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 16:58:29,464 [DEBUG][       Thread-261745][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 16:58:29,464 [DEBUG][       Thread-261745][   transport.py][1871] : client lang: <none>
2025-06-13 16:58:29,464 [DEBUG][       Thread-261745][   transport.py][1871] : server lang: <none>
2025-06-13 16:58:29,464 [DEBUG][       Thread-261745][   transport.py][1871] : kex follows: False
2025-06-13 16:58:29,464 [DEBUG][       Thread-261745][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 16:58:29,464 [DEBUG][       Thread-261745][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 16:58:29,464 [DEBUG][       Thread-261745][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 16:58:29,464 [DEBUG][       Thread-261745][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 16:58:29,464 [DEBUG][       Thread-261745][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 16:58:29,464 [DEBUG][       Thread-261745][   transport.py][1871] : Compression: none
2025-06-13 16:58:29,464 [DEBUG][       Thread-261745][   transport.py][1871] : === End of kex handshake ===
2025-06-13 16:58:29,522 [DEBUG][       Thread-261745][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 16:58:29,523 [DEBUG][       Thread-261745][   transport.py][1871] : Switch to new keys ...
2025-06-13 16:58:29,523 [DEBUG][       Thread-261745][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 16:58:29,524 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 16:58:29,524 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 16:58:29,578 [DEBUG][       Thread-261745][   transport.py][1871] : userauth is OK
2025-06-13 16:58:29,578 [DEBUG][       Thread-261745][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 16:58:29,579 [DEBUG][       Thread-261745][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 16:58:29,579 [DEBUG][       Thread-261745][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 16:58:29,579 [DEBUG][       Thread-261745][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 16:58:29,597 [ INFO][       Thread-261745][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 16:58:29,598 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 16:58:29,598 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 16:58:30,079 [DEBUG][Thread-261747 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:58:30,608 [DEBUG][       Thread-261745][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 16:58:30,608 [DEBUG][       Thread-261745][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 16:58:30,656 [DEBUG][       Thread-261745][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 16:58:30,656 [DEBUG][       Thread-261745][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 16:58:30,666 [DEBUG][       Thread-261745][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 16:58:30,675 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 16:58:30,675 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 16:58:30,684 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 16:58:30,694 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 16:58:30,694 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 16:58:30,694 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 16:58:30,702 [DEBUG][       Thread-261745][   transport.py][1871] : EOF in transport thread
2025-06-13 16:58:39,100 [DEBUG][Thread-261748 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:58:40,705 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 16:58:40,705 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 16:58:40,705 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 16:58:40,708 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 16:58:41,158 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 16, 58, 35), 16.37, 32.11, 0.0, 14.68, 13.46, 0, 0, 0, 2, 0, 0),)
2025-06-13 16:58:41,158 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 16:58:35
2025-06-13 16:58:41,240 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 16:58:41,246 [DEBUG][       Thread-261749][   transport.py][1871] : starting thread (client mode): 0x867ff310
2025-06-13 16:58:41,246 [DEBUG][       Thread-261749][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 16:58:41,262 [DEBUG][       Thread-261749][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 16:58:41,262 [ INFO][       Thread-261749][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 16:58:41,263 [DEBUG][       Thread-261749][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 16:58:41,263 [DEBUG][       Thread-261749][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 16:58:41,263 [DEBUG][       Thread-261749][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 16:58:41,263 [DEBUG][       Thread-261749][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:58:41,263 [DEBUG][       Thread-261749][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:58:41,263 [DEBUG][       Thread-261749][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:58:41,263 [DEBUG][       Thread-261749][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:58:41,263 [DEBUG][       Thread-261749][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 16:58:41,263 [DEBUG][       Thread-261749][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 16:58:41,263 [DEBUG][       Thread-261749][   transport.py][1871] : client lang: <none>
2025-06-13 16:58:41,263 [DEBUG][       Thread-261749][   transport.py][1871] : server lang: <none>
2025-06-13 16:58:41,263 [DEBUG][       Thread-261749][   transport.py][1871] : kex follows: False
2025-06-13 16:58:41,263 [DEBUG][       Thread-261749][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 16:58:41,263 [DEBUG][       Thread-261749][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 16:58:41,263 [DEBUG][       Thread-261749][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 16:58:41,263 [DEBUG][       Thread-261749][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 16:58:41,263 [DEBUG][       Thread-261749][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 16:58:41,263 [DEBUG][       Thread-261749][   transport.py][1871] : Compression: none
2025-06-13 16:58:41,264 [DEBUG][       Thread-261749][   transport.py][1871] : === End of kex handshake ===
2025-06-13 16:58:41,271 [DEBUG][       Thread-261749][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 16:58:41,272 [DEBUG][       Thread-261749][   transport.py][1871] : Switch to new keys ...
2025-06-13 16:58:41,272 [DEBUG][       Thread-261749][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 16:58:41,272 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 16:58:41,272 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 16:58:41,273 [DEBUG][       Thread-261749][   transport.py][1871] : userauth is OK
2025-06-13 16:58:41,286 [ INFO][       Thread-261749][   transport.py][1871] : Authentication (password) successful!
2025-06-13 16:58:41,286 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 16:58:41,923 [DEBUG][       Thread-261749][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 16:58:41,923 [DEBUG][       Thread-261749][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 16:58:41,965 [DEBUG][       Thread-261749][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 16:58:41,965 [DEBUG][       Thread-261749][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 16:58:41,969 [DEBUG][       Thread-261749][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 16:58:41,980 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 16:58:41,980 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 16:58:41,982 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 16:58:41,985 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 16:58:41,991 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 16:58:41,993 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 16:58:41,993 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 16:58:41,994 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 16:58:41,994 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.623893 -999.00  +13.20  17.45     36   -1.10 1 1 1 1 1   887    0 13.84 -17.97 ----- 17.6 17.4 42.4 19.6 15.4 -29.4 15.0 -29.8 15.4 -28.7 16.1 -28.3
2025-06-13 16:58:41,994 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 16:58:41,994 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 16:58:41,994 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.623893
2025-06-13 16:58:41,994 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 16:58:41,995 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 16:58:41,995 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 16:58:41,995 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 16:58:41,995 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 16:58:41,995 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T16:58:35', tmtdew=16.37, humidity=32.11, cloud=0.0, wind=14.68, temperature=13.46, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T14:58:24.355', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 16:58:41,996 [DEBUG][       Thread-261749][   transport.py][1871] : EOF in transport thread
2025-06-13 16:58:42,079 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 16:58:42,095 [DEBUG][       Thread-261752][   transport.py][1871] : starting thread (client mode): 0x86391600
2025-06-13 16:58:42,095 [DEBUG][       Thread-261752][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 16:58:42,113 [DEBUG][       Thread-261752][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 16:58:42,114 [ INFO][       Thread-261752][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 16:58:42,123 [DEBUG][       Thread-261752][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 16:58:42,124 [DEBUG][       Thread-261752][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 16:58:42,124 [DEBUG][       Thread-261752][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 16:58:42,124 [DEBUG][       Thread-261752][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:58:42,124 [DEBUG][       Thread-261752][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:58:42,124 [DEBUG][       Thread-261752][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:58:42,124 [DEBUG][       Thread-261752][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:58:42,124 [DEBUG][       Thread-261752][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 16:58:42,124 [DEBUG][       Thread-261752][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 16:58:42,124 [DEBUG][       Thread-261752][   transport.py][1871] : client lang: <none>
2025-06-13 16:58:42,124 [DEBUG][       Thread-261752][   transport.py][1871] : server lang: <none>
2025-06-13 16:58:42,124 [DEBUG][       Thread-261752][   transport.py][1871] : kex follows: False
2025-06-13 16:58:42,124 [DEBUG][       Thread-261752][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 16:58:42,124 [DEBUG][       Thread-261752][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 16:58:42,125 [DEBUG][       Thread-261752][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 16:58:42,125 [DEBUG][       Thread-261752][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 16:58:42,125 [DEBUG][       Thread-261752][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 16:58:42,125 [DEBUG][       Thread-261752][   transport.py][1871] : Compression: none
2025-06-13 16:58:42,125 [DEBUG][       Thread-261752][   transport.py][1871] : === End of kex handshake ===
2025-06-13 16:58:42,182 [DEBUG][       Thread-261752][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 16:58:42,182 [DEBUG][       Thread-261752][   transport.py][1871] : Switch to new keys ...
2025-06-13 16:58:42,183 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 16:58:42,184 [DEBUG][       Thread-261752][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 16:58:42,184 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 16:58:42,242 [DEBUG][       Thread-261752][   transport.py][1871] : userauth is OK
2025-06-13 16:58:42,242 [DEBUG][       Thread-261752][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 16:58:42,243 [DEBUG][       Thread-261752][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 16:58:42,243 [DEBUG][       Thread-261752][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 16:58:42,243 [DEBUG][       Thread-261752][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 16:58:42,261 [ INFO][       Thread-261752][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 16:58:42,262 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 16:58:42,262 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 16:58:43,280 [DEBUG][       Thread-261752][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 16:58:43,280 [DEBUG][       Thread-261752][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 16:58:43,328 [DEBUG][       Thread-261752][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 16:58:43,328 [DEBUG][       Thread-261752][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 16:58:43,337 [DEBUG][       Thread-261752][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 16:58:43,346 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 16:58:43,347 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 16:58:43,355 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 16:58:43,365 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 16:58:43,365 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 16:58:43,366 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 16:58:43,374 [DEBUG][       Thread-261752][   transport.py][1871] : EOF in transport thread
2025-06-13 16:58:48,123 [DEBUG][Thread-261754 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:58:53,376 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 16:58:53,376 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 16:58:53,376 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 16:58:53,379 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 16:58:53,829 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 16, 58, 35), 16.37, 32.11, 0.0, 14.68, 13.46, 0, 0, 0, 2, 0, 0),)
2025-06-13 16:58:53,829 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 16:58:35
2025-06-13 16:58:53,910 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 16:58:53,914 [DEBUG][       Thread-261755][   transport.py][1871] : starting thread (client mode): 0x863c9720
2025-06-13 16:58:53,914 [DEBUG][       Thread-261755][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 16:58:53,935 [DEBUG][       Thread-261755][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 16:58:53,935 [ INFO][       Thread-261755][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 16:58:53,938 [DEBUG][       Thread-261755][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 16:58:53,938 [DEBUG][       Thread-261755][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 16:58:53,938 [DEBUG][       Thread-261755][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 16:58:53,938 [DEBUG][       Thread-261755][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:58:53,938 [DEBUG][       Thread-261755][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:58:53,938 [DEBUG][       Thread-261755][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:58:53,938 [DEBUG][       Thread-261755][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:58:53,938 [DEBUG][       Thread-261755][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 16:58:53,938 [DEBUG][       Thread-261755][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 16:58:53,938 [DEBUG][       Thread-261755][   transport.py][1871] : client lang: <none>
2025-06-13 16:58:53,938 [DEBUG][       Thread-261755][   transport.py][1871] : server lang: <none>
2025-06-13 16:58:53,938 [DEBUG][       Thread-261755][   transport.py][1871] : kex follows: False
2025-06-13 16:58:53,939 [DEBUG][       Thread-261755][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 16:58:53,939 [DEBUG][       Thread-261755][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 16:58:53,939 [DEBUG][       Thread-261755][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 16:58:53,939 [DEBUG][       Thread-261755][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 16:58:53,939 [DEBUG][       Thread-261755][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 16:58:53,939 [DEBUG][       Thread-261755][   transport.py][1871] : Compression: none
2025-06-13 16:58:53,939 [DEBUG][       Thread-261755][   transport.py][1871] : === End of kex handshake ===
2025-06-13 16:58:53,955 [DEBUG][       Thread-261755][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 16:58:53,956 [DEBUG][       Thread-261755][   transport.py][1871] : Switch to new keys ...
2025-06-13 16:58:53,956 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 16:58:53,957 [DEBUG][       Thread-261755][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 16:58:53,957 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 16:58:53,959 [DEBUG][       Thread-261755][   transport.py][1871] : userauth is OK
2025-06-13 16:58:53,972 [ INFO][       Thread-261755][   transport.py][1871] : Authentication (password) successful!
2025-06-13 16:58:53,972 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 16:58:54,607 [DEBUG][       Thread-261755][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 16:58:54,608 [DEBUG][       Thread-261755][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 16:58:54,649 [DEBUG][       Thread-261755][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 16:58:54,649 [DEBUG][       Thread-261755][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 16:58:54,652 [DEBUG][       Thread-261755][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 16:58:54,664 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 16:58:54,664 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 16:58:54,666 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 16:58:54,668 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 16:58:54,674 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 16:58:54,676 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 16:58:54,676 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 16:58:54,676 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 16:58:54,677 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.623893 -999.00  +13.20  17.45     36   -1.10 1 1 1 1 1   887    0 13.84 -17.97 ----- 17.6 17.4 42.4 19.6 15.4 -29.4 15.0 -29.8 15.4 -28.7 16.1 -28.3
2025-06-13 16:58:54,677 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 16:58:54,677 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 16:58:54,677 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.623893
2025-06-13 16:58:54,677 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 16:58:54,678 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 16:58:54,678 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 16:58:54,678 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 16:58:54,678 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 16:58:54,678 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T16:58:35', tmtdew=16.37, humidity=32.11, cloud=0.0, wind=14.68, temperature=13.46, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T14:58:24.355', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 16:58:54,678 [DEBUG][       Thread-261755][   transport.py][1871] : EOF in transport thread
2025-06-13 16:58:54,762 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 16:58:54,771 [DEBUG][       Thread-261758][   transport.py][1871] : starting thread (client mode): 0x863a43a0
2025-06-13 16:58:54,771 [DEBUG][       Thread-261758][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 16:58:54,786 [DEBUG][       Thread-261758][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 16:58:54,786 [ INFO][       Thread-261758][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 16:58:54,793 [DEBUG][       Thread-261758][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 16:58:54,794 [DEBUG][       Thread-261758][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 16:58:54,794 [DEBUG][       Thread-261758][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 16:58:54,794 [DEBUG][       Thread-261758][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:58:54,794 [DEBUG][       Thread-261758][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:58:54,794 [DEBUG][       Thread-261758][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:58:54,794 [DEBUG][       Thread-261758][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:58:54,794 [DEBUG][       Thread-261758][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 16:58:54,794 [DEBUG][       Thread-261758][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 16:58:54,794 [DEBUG][       Thread-261758][   transport.py][1871] : client lang: <none>
2025-06-13 16:58:54,794 [DEBUG][       Thread-261758][   transport.py][1871] : server lang: <none>
2025-06-13 16:58:54,794 [DEBUG][       Thread-261758][   transport.py][1871] : kex follows: False
2025-06-13 16:58:54,794 [DEBUG][       Thread-261758][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 16:58:54,794 [DEBUG][       Thread-261758][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 16:58:54,794 [DEBUG][       Thread-261758][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 16:58:54,794 [DEBUG][       Thread-261758][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 16:58:54,794 [DEBUG][       Thread-261758][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 16:58:54,794 [DEBUG][       Thread-261758][   transport.py][1871] : Compression: none
2025-06-13 16:58:54,794 [DEBUG][       Thread-261758][   transport.py][1871] : === End of kex handshake ===
2025-06-13 16:58:54,850 [DEBUG][       Thread-261758][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 16:58:54,850 [DEBUG][       Thread-261758][   transport.py][1871] : Switch to new keys ...
2025-06-13 16:58:54,851 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 16:58:54,851 [DEBUG][       Thread-261758][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 16:58:54,852 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 16:58:54,906 [DEBUG][       Thread-261758][   transport.py][1871] : userauth is OK
2025-06-13 16:58:54,906 [DEBUG][       Thread-261758][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 16:58:54,906 [DEBUG][       Thread-261758][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 16:58:54,906 [DEBUG][       Thread-261758][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 16:58:54,907 [DEBUG][       Thread-261758][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 16:58:54,928 [ INFO][       Thread-261758][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 16:58:54,929 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 16:58:54,929 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 16:58:55,905 [DEBUG][       Thread-261758][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 16:58:55,906 [DEBUG][       Thread-261758][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 16:58:55,958 [DEBUG][       Thread-261758][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 16:58:55,958 [DEBUG][       Thread-261758][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 16:58:55,967 [DEBUG][       Thread-261758][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 16:58:55,976 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 16:58:55,976 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 16:58:55,984 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 16:58:55,992 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 16:58:55,992 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 16:58:55,992 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 16:58:56,000 [DEBUG][       Thread-261758][   transport.py][1871] : EOF in transport thread
2025-06-13 16:58:57,156 [DEBUG][Thread-261760 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:59:06,000 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 16:59:06,000 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 16:59:06,000 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 16:59:06,003 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 16:59:06,172 [DEBUG][Thread-261761 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:59:06,456 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 16, 58, 35), 16.37, 32.11, 0.0, 14.68, 13.46, 0, 0, 0, 2, 0, 0),)
2025-06-13 16:59:06,456 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 16:58:35
2025-06-13 16:59:06,537 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 16:59:06,543 [DEBUG][       Thread-261762][   transport.py][1871] : starting thread (client mode): 0x863efac0
2025-06-13 16:59:06,543 [DEBUG][       Thread-261762][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 16:59:06,563 [DEBUG][       Thread-261762][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 16:59:06,563 [ INFO][       Thread-261762][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 16:59:06,566 [DEBUG][       Thread-261762][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 16:59:06,567 [DEBUG][       Thread-261762][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 16:59:06,567 [DEBUG][       Thread-261762][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 16:59:06,567 [DEBUG][       Thread-261762][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:59:06,567 [DEBUG][       Thread-261762][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:59:06,567 [DEBUG][       Thread-261762][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:59:06,567 [DEBUG][       Thread-261762][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:59:06,567 [DEBUG][       Thread-261762][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 16:59:06,567 [DEBUG][       Thread-261762][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 16:59:06,567 [DEBUG][       Thread-261762][   transport.py][1871] : client lang: <none>
2025-06-13 16:59:06,567 [DEBUG][       Thread-261762][   transport.py][1871] : server lang: <none>
2025-06-13 16:59:06,567 [DEBUG][       Thread-261762][   transport.py][1871] : kex follows: False
2025-06-13 16:59:06,567 [DEBUG][       Thread-261762][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 16:59:06,567 [DEBUG][       Thread-261762][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 16:59:06,567 [DEBUG][       Thread-261762][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 16:59:06,567 [DEBUG][       Thread-261762][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 16:59:06,567 [DEBUG][       Thread-261762][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 16:59:06,567 [DEBUG][       Thread-261762][   transport.py][1871] : Compression: none
2025-06-13 16:59:06,567 [DEBUG][       Thread-261762][   transport.py][1871] : === End of kex handshake ===
2025-06-13 16:59:06,583 [DEBUG][       Thread-261762][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 16:59:06,583 [DEBUG][       Thread-261762][   transport.py][1871] : Switch to new keys ...
2025-06-13 16:59:06,584 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 16:59:06,584 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 16:59:06,585 [DEBUG][       Thread-261762][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 16:59:06,585 [DEBUG][       Thread-261762][   transport.py][1871] : userauth is OK
2025-06-13 16:59:06,598 [ INFO][       Thread-261762][   transport.py][1871] : Authentication (password) successful!
2025-06-13 16:59:06,599 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 16:59:07,236 [DEBUG][       Thread-261762][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 16:59:07,236 [DEBUG][       Thread-261762][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 16:59:07,277 [DEBUG][       Thread-261762][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 16:59:07,277 [DEBUG][       Thread-261762][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 16:59:07,280 [DEBUG][       Thread-261762][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 16:59:07,292 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 16:59:07,293 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 16:59:07,295 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 16:59:07,296 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 16:59:07,301 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 16:59:07,303 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 16:59:07,303 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 16:59:07,303 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 16:59:07,304 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.623893 -999.00  +13.20  17.45     36   -1.10 1 1 1 1 1   887    0 13.84 -17.97 ----- 17.6 17.4 42.4 19.6 15.4 -29.4 15.0 -29.8 15.4 -28.7 16.1 -28.3
2025-06-13 16:59:07,304 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 16:59:07,304 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 16:59:07,304 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.623893
2025-06-13 16:59:07,304 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 16:59:07,305 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 16:59:07,305 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 16:59:07,305 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 16:59:07,305 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 16:59:07,305 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T16:58:35', tmtdew=16.37, humidity=32.11, cloud=0.0, wind=14.68, temperature=13.46, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T14:58:24.355', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 16:59:07,305 [DEBUG][       Thread-261762][   transport.py][1871] : EOF in transport thread
2025-06-13 16:59:07,388 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 16:59:07,398 [DEBUG][       Thread-261765][   transport.py][1871] : starting thread (client mode): 0x86893be0
2025-06-13 16:59:07,398 [DEBUG][       Thread-261765][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 16:59:07,413 [DEBUG][       Thread-261765][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 16:59:07,413 [ INFO][       Thread-261765][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 16:59:07,420 [DEBUG][       Thread-261765][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 16:59:07,420 [DEBUG][       Thread-261765][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 16:59:07,421 [DEBUG][       Thread-261765][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 16:59:07,421 [DEBUG][       Thread-261765][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:59:07,421 [DEBUG][       Thread-261765][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:59:07,421 [DEBUG][       Thread-261765][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:59:07,421 [DEBUG][       Thread-261765][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:59:07,421 [DEBUG][       Thread-261765][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 16:59:07,421 [DEBUG][       Thread-261765][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 16:59:07,421 [DEBUG][       Thread-261765][   transport.py][1871] : client lang: <none>
2025-06-13 16:59:07,421 [DEBUG][       Thread-261765][   transport.py][1871] : server lang: <none>
2025-06-13 16:59:07,421 [DEBUG][       Thread-261765][   transport.py][1871] : kex follows: False
2025-06-13 16:59:07,421 [DEBUG][       Thread-261765][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 16:59:07,421 [DEBUG][       Thread-261765][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 16:59:07,421 [DEBUG][       Thread-261765][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 16:59:07,421 [DEBUG][       Thread-261765][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 16:59:07,421 [DEBUG][       Thread-261765][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 16:59:07,421 [DEBUG][       Thread-261765][   transport.py][1871] : Compression: none
2025-06-13 16:59:07,421 [DEBUG][       Thread-261765][   transport.py][1871] : === End of kex handshake ===
2025-06-13 16:59:07,485 [DEBUG][       Thread-261765][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 16:59:07,486 [DEBUG][       Thread-261765][   transport.py][1871] : Switch to new keys ...
2025-06-13 16:59:07,486 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 16:59:07,487 [DEBUG][       Thread-261765][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 16:59:07,487 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 16:59:07,546 [DEBUG][       Thread-261765][   transport.py][1871] : userauth is OK
2025-06-13 16:59:07,546 [DEBUG][       Thread-261765][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 16:59:07,546 [DEBUG][       Thread-261765][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 16:59:07,546 [DEBUG][       Thread-261765][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 16:59:07,546 [DEBUG][       Thread-261765][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 16:59:07,565 [ INFO][       Thread-261765][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 16:59:07,565 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 16:59:07,565 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 16:59:08,554 [DEBUG][       Thread-261765][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 16:59:08,554 [DEBUG][       Thread-261765][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 16:59:08,604 [DEBUG][       Thread-261765][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 16:59:08,604 [DEBUG][       Thread-261765][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 16:59:08,612 [DEBUG][       Thread-261765][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 16:59:08,620 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 16:59:08,620 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 16:59:08,628 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 16:59:08,635 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 16:59:08,636 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 16:59:08,636 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 16:59:08,643 [DEBUG][       Thread-261765][   transport.py][1871] : EOF in transport thread
2025-06-13 16:59:15,194 [DEBUG][Thread-261767 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:59:18,646 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 16:59:18,646 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 16:59:18,647 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 16:59:18,649 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 16:59:19,094 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 16, 59, 7), 16.37, 32.13, 0.0, 12.42, 13.48, 0, 0, 0, 2, 0, 0),)
2025-06-13 16:59:19,094 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 16:59:07
2025-06-13 16:59:19,176 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 16:59:19,180 [DEBUG][       Thread-261768][   transport.py][1871] : starting thread (client mode): 0x867fcd60
2025-06-13 16:59:19,180 [DEBUG][       Thread-261768][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 16:59:19,203 [DEBUG][       Thread-261768][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 16:59:19,203 [ INFO][       Thread-261768][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 16:59:19,207 [DEBUG][       Thread-261768][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 16:59:19,207 [DEBUG][       Thread-261768][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 16:59:19,207 [DEBUG][       Thread-261768][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 16:59:19,207 [DEBUG][       Thread-261768][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:59:19,207 [DEBUG][       Thread-261768][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:59:19,207 [DEBUG][       Thread-261768][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:59:19,208 [DEBUG][       Thread-261768][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:59:19,208 [DEBUG][       Thread-261768][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 16:59:19,208 [DEBUG][       Thread-261768][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 16:59:19,208 [DEBUG][       Thread-261768][   transport.py][1871] : client lang: <none>
2025-06-13 16:59:19,208 [DEBUG][       Thread-261768][   transport.py][1871] : server lang: <none>
2025-06-13 16:59:19,208 [DEBUG][       Thread-261768][   transport.py][1871] : kex follows: False
2025-06-13 16:59:19,208 [DEBUG][       Thread-261768][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 16:59:19,208 [DEBUG][       Thread-261768][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 16:59:19,208 [DEBUG][       Thread-261768][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 16:59:19,208 [DEBUG][       Thread-261768][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 16:59:19,208 [DEBUG][       Thread-261768][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 16:59:19,208 [DEBUG][       Thread-261768][   transport.py][1871] : Compression: none
2025-06-13 16:59:19,208 [DEBUG][       Thread-261768][   transport.py][1871] : === End of kex handshake ===
2025-06-13 16:59:19,224 [DEBUG][       Thread-261768][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 16:59:19,225 [DEBUG][       Thread-261768][   transport.py][1871] : Switch to new keys ...
2025-06-13 16:59:19,225 [DEBUG][       Thread-261768][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 16:59:19,226 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 16:59:19,226 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 16:59:19,227 [DEBUG][       Thread-261768][   transport.py][1871] : userauth is OK
2025-06-13 16:59:19,240 [ INFO][       Thread-261768][   transport.py][1871] : Authentication (password) successful!
2025-06-13 16:59:19,240 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 16:59:19,902 [DEBUG][       Thread-261768][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 16:59:19,902 [DEBUG][       Thread-261768][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 16:59:19,945 [DEBUG][       Thread-261768][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 16:59:19,945 [DEBUG][       Thread-261768][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 16:59:19,947 [DEBUG][       Thread-261768][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 16:59:19,962 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 16:59:19,962 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 16:59:19,964 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 16:59:19,965 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 16:59:19,971 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 16:59:19,972 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 16:59:19,972 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 16:59:19,973 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 16:59:19,973 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.624240 -999.00  +13.20  17.27     37   -1.00 1 1 1 1 1   887    0 13.80 -15.72 ----- 17.3 17.3 37.4 21.6 15.4 -29.5 15.0 -29.9 15.4 -28.9 16.1 -28.3
2025-06-13 16:59:19,973 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 16:59:19,973 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 16:59:19,973 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.624240
2025-06-13 16:59:19,974 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 16:59:19,974 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 16:59:19,974 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 16:59:19,974 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 16:59:19,974 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 16:59:19,975 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T16:59:07', tmtdew=16.37, humidity=32.13, cloud=0.0, wind=12.42, temperature=13.48, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T14:58:54.336', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 16:59:19,976 [DEBUG][       Thread-261768][   transport.py][1871] : EOF in transport thread
2025-06-13 16:59:20,059 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 16:59:20,071 [DEBUG][       Thread-261771][   transport.py][1871] : starting thread (client mode): 0x863bf7f0
2025-06-13 16:59:20,071 [DEBUG][       Thread-261771][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 16:59:20,087 [DEBUG][       Thread-261771][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 16:59:20,087 [ INFO][       Thread-261771][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 16:59:20,098 [DEBUG][       Thread-261771][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 16:59:20,098 [DEBUG][       Thread-261771][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 16:59:20,098 [DEBUG][       Thread-261771][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 16:59:20,099 [DEBUG][       Thread-261771][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:59:20,099 [DEBUG][       Thread-261771][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:59:20,099 [DEBUG][       Thread-261771][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:59:20,099 [DEBUG][       Thread-261771][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:59:20,099 [DEBUG][       Thread-261771][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 16:59:20,099 [DEBUG][       Thread-261771][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 16:59:20,099 [DEBUG][       Thread-261771][   transport.py][1871] : client lang: <none>
2025-06-13 16:59:20,099 [DEBUG][       Thread-261771][   transport.py][1871] : server lang: <none>
2025-06-13 16:59:20,099 [DEBUG][       Thread-261771][   transport.py][1871] : kex follows: False
2025-06-13 16:59:20,099 [DEBUG][       Thread-261771][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 16:59:20,099 [DEBUG][       Thread-261771][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 16:59:20,099 [DEBUG][       Thread-261771][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 16:59:20,099 [DEBUG][       Thread-261771][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 16:59:20,099 [DEBUG][       Thread-261771][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 16:59:20,099 [DEBUG][       Thread-261771][   transport.py][1871] : Compression: none
2025-06-13 16:59:20,099 [DEBUG][       Thread-261771][   transport.py][1871] : === End of kex handshake ===
2025-06-13 16:59:20,153 [DEBUG][       Thread-261771][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 16:59:20,154 [DEBUG][       Thread-261771][   transport.py][1871] : Switch to new keys ...
2025-06-13 16:59:20,154 [DEBUG][       Thread-261771][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 16:59:20,154 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 16:59:20,155 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 16:59:20,210 [DEBUG][       Thread-261771][   transport.py][1871] : userauth is OK
2025-06-13 16:59:20,210 [DEBUG][       Thread-261771][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 16:59:20,210 [DEBUG][       Thread-261771][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 16:59:20,210 [DEBUG][       Thread-261771][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 16:59:20,210 [DEBUG][       Thread-261771][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 16:59:20,229 [ INFO][       Thread-261771][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 16:59:20,230 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 16:59:20,230 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 16:59:21,198 [DEBUG][       Thread-261771][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 16:59:21,198 [DEBUG][       Thread-261771][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 16:59:21,248 [DEBUG][       Thread-261771][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 16:59:21,248 [DEBUG][       Thread-261771][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 16:59:21,257 [DEBUG][       Thread-261771][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 16:59:21,267 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 16:59:21,267 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 16:59:21,276 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 16:59:21,286 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 16:59:21,286 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 16:59:21,286 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 16:59:21,294 [DEBUG][       Thread-261771][   transport.py][1871] : EOF in transport thread
2025-06-13 16:59:22,230 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:59:22,231 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:59:24,218 [DEBUG][Thread-261773 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:59:24,775 [DEBUG][Thread-261774 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:59:28,950 [DEBUG][Thread-261775 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:59:30,025 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:59:30,035 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:59:31,297 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 16:59:31,297 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 16:59:31,297 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 16:59:31,300 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 16:59:31,746 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 16, 59, 7), 16.37, 32.13, 0.0, 12.42, 13.48, 0, 0, 0, 2, 0, 0),)
2025-06-13 16:59:31,746 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 16:59:07
2025-06-13 16:59:31,828 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 16:59:31,832 [DEBUG][       Thread-261776][   transport.py][1871] : starting thread (client mode): 0x863523e0
2025-06-13 16:59:31,832 [DEBUG][       Thread-261776][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 16:59:31,854 [DEBUG][       Thread-261776][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 16:59:31,854 [ INFO][       Thread-261776][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 16:59:31,858 [DEBUG][       Thread-261776][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 16:59:31,858 [DEBUG][       Thread-261776][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 16:59:31,858 [DEBUG][       Thread-261776][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 16:59:31,858 [DEBUG][       Thread-261776][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:59:31,858 [DEBUG][       Thread-261776][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:59:31,858 [DEBUG][       Thread-261776][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:59:31,858 [DEBUG][       Thread-261776][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:59:31,858 [DEBUG][       Thread-261776][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 16:59:31,858 [DEBUG][       Thread-261776][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 16:59:31,858 [DEBUG][       Thread-261776][   transport.py][1871] : client lang: <none>
2025-06-13 16:59:31,858 [DEBUG][       Thread-261776][   transport.py][1871] : server lang: <none>
2025-06-13 16:59:31,858 [DEBUG][       Thread-261776][   transport.py][1871] : kex follows: False
2025-06-13 16:59:31,858 [DEBUG][       Thread-261776][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 16:59:31,858 [DEBUG][       Thread-261776][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 16:59:31,858 [DEBUG][       Thread-261776][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 16:59:31,858 [DEBUG][       Thread-261776][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 16:59:31,858 [DEBUG][       Thread-261776][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 16:59:31,858 [DEBUG][       Thread-261776][   transport.py][1871] : Compression: none
2025-06-13 16:59:31,858 [DEBUG][       Thread-261776][   transport.py][1871] : === End of kex handshake ===
2025-06-13 16:59:31,875 [DEBUG][       Thread-261776][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 16:59:31,875 [DEBUG][       Thread-261776][   transport.py][1871] : Switch to new keys ...
2025-06-13 16:59:31,876 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 16:59:31,876 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 16:59:31,877 [DEBUG][       Thread-261776][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 16:59:31,878 [DEBUG][       Thread-261776][   transport.py][1871] : userauth is OK
2025-06-13 16:59:31,902 [ INFO][       Thread-261776][   transport.py][1871] : Authentication (password) successful!
2025-06-13 16:59:31,903 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 16:59:32,543 [DEBUG][       Thread-261776][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 16:59:32,543 [DEBUG][       Thread-261776][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 16:59:32,585 [DEBUG][       Thread-261776][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 16:59:32,585 [DEBUG][       Thread-261776][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 16:59:32,588 [DEBUG][       Thread-261776][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 16:59:32,603 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 16:59:32,603 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 16:59:32,605 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 16:59:32,607 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 16:59:32,613 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 16:59:32,615 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 16:59:32,615 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 16:59:32,616 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 16:59:32,616 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.624240 -999.00  +13.20  17.27     37   -1.00 1 1 1 1 1   887    0 13.80 -15.72 ----- 17.3 17.3 37.4 21.6 15.4 -29.5 15.0 -29.9 15.4 -28.9 16.1 -28.3
2025-06-13 16:59:32,616 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 16:59:32,616 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 16:59:32,616 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.624240
2025-06-13 16:59:32,617 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 16:59:32,617 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 16:59:32,617 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 16:59:32,617 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 16:59:32,617 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 16:59:32,617 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T16:59:07', tmtdew=16.37, humidity=32.13, cloud=0.0, wind=12.42, temperature=13.48, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T14:58:54.336', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 16:59:32,619 [DEBUG][       Thread-261776][   transport.py][1871] : EOF in transport thread
2025-06-13 16:59:32,705 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 16:59:32,714 [DEBUG][       Thread-261779][   transport.py][1871] : starting thread (client mode): 0x863ee890
2025-06-13 16:59:32,714 [DEBUG][       Thread-261779][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 16:59:32,730 [DEBUG][       Thread-261779][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 16:59:32,730 [ INFO][       Thread-261779][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 16:59:32,737 [DEBUG][       Thread-261779][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 16:59:32,737 [DEBUG][       Thread-261779][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 16:59:32,738 [DEBUG][       Thread-261779][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 16:59:32,738 [DEBUG][       Thread-261779][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:59:32,738 [DEBUG][       Thread-261779][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:59:32,738 [DEBUG][       Thread-261779][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:59:32,738 [DEBUG][       Thread-261779][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:59:32,738 [DEBUG][       Thread-261779][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 16:59:32,738 [DEBUG][       Thread-261779][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 16:59:32,738 [DEBUG][       Thread-261779][   transport.py][1871] : client lang: <none>
2025-06-13 16:59:32,738 [DEBUG][       Thread-261779][   transport.py][1871] : server lang: <none>
2025-06-13 16:59:32,738 [DEBUG][       Thread-261779][   transport.py][1871] : kex follows: False
2025-06-13 16:59:32,738 [DEBUG][       Thread-261779][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 16:59:32,738 [DEBUG][       Thread-261779][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 16:59:32,738 [DEBUG][       Thread-261779][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 16:59:32,738 [DEBUG][       Thread-261779][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 16:59:32,738 [DEBUG][       Thread-261779][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 16:59:32,738 [DEBUG][       Thread-261779][   transport.py][1871] : Compression: none
2025-06-13 16:59:32,738 [DEBUG][       Thread-261779][   transport.py][1871] : === End of kex handshake ===
2025-06-13 16:59:32,794 [DEBUG][       Thread-261779][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 16:59:32,795 [DEBUG][       Thread-261779][   transport.py][1871] : Switch to new keys ...
2025-06-13 16:59:32,795 [DEBUG][       Thread-261779][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 16:59:32,795 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 16:59:32,796 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 16:59:32,859 [DEBUG][       Thread-261779][   transport.py][1871] : userauth is OK
2025-06-13 16:59:32,859 [DEBUG][       Thread-261779][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 16:59:32,859 [DEBUG][       Thread-261779][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 16:59:32,859 [DEBUG][       Thread-261779][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 16:59:32,859 [DEBUG][       Thread-261779][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 16:59:32,879 [ INFO][       Thread-261779][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 16:59:32,880 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 16:59:32,880 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 16:59:33,264 [DEBUG][Thread-261781 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:59:33,863 [DEBUG][       Thread-261779][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 16:59:33,863 [DEBUG][       Thread-261779][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 16:59:33,912 [DEBUG][       Thread-261779][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 16:59:33,912 [DEBUG][       Thread-261779][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 16:59:33,921 [DEBUG][       Thread-261779][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 16:59:33,930 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 16:59:33,930 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 16:59:33,938 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 16:59:33,947 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 16:59:33,947 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 16:59:33,948 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 16:59:33,956 [DEBUG][       Thread-261779][   transport.py][1871] : EOF in transport thread
2025-06-13 16:59:42,282 [DEBUG][Thread-261782 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:59:43,956 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 16:59:43,956 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 16:59:43,956 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 16:59:43,957 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 16:59:44,405 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 16, 59, 39), 16.38, 32.02, 0.0, 13.18, 13.45, 0, 0, 0, 2, 0, 0),)
2025-06-13 16:59:44,405 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 16:59:39
2025-06-13 16:59:44,486 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 16:59:44,491 [DEBUG][       Thread-261783][   transport.py][1871] : starting thread (client mode): 0x867fe860
2025-06-13 16:59:44,491 [DEBUG][       Thread-261783][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 16:59:44,518 [DEBUG][       Thread-261783][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 16:59:44,518 [ INFO][       Thread-261783][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 16:59:44,519 [DEBUG][       Thread-261783][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 16:59:44,519 [DEBUG][       Thread-261783][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 16:59:44,519 [DEBUG][       Thread-261783][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 16:59:44,519 [DEBUG][       Thread-261783][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:59:44,519 [DEBUG][       Thread-261783][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:59:44,519 [DEBUG][       Thread-261783][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:59:44,519 [DEBUG][       Thread-261783][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:59:44,519 [DEBUG][       Thread-261783][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 16:59:44,519 [DEBUG][       Thread-261783][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 16:59:44,520 [DEBUG][       Thread-261783][   transport.py][1871] : client lang: <none>
2025-06-13 16:59:44,520 [DEBUG][       Thread-261783][   transport.py][1871] : server lang: <none>
2025-06-13 16:59:44,520 [DEBUG][       Thread-261783][   transport.py][1871] : kex follows: False
2025-06-13 16:59:44,520 [DEBUG][       Thread-261783][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 16:59:44,520 [DEBUG][       Thread-261783][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 16:59:44,520 [DEBUG][       Thread-261783][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 16:59:44,520 [DEBUG][       Thread-261783][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 16:59:44,520 [DEBUG][       Thread-261783][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 16:59:44,520 [DEBUG][       Thread-261783][   transport.py][1871] : Compression: none
2025-06-13 16:59:44,520 [DEBUG][       Thread-261783][   transport.py][1871] : === End of kex handshake ===
2025-06-13 16:59:44,529 [DEBUG][       Thread-261783][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 16:59:44,529 [DEBUG][       Thread-261783][   transport.py][1871] : Switch to new keys ...
2025-06-13 16:59:44,530 [DEBUG][       Thread-261783][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 16:59:44,530 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 16:59:44,530 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 16:59:44,531 [DEBUG][       Thread-261783][   transport.py][1871] : userauth is OK
2025-06-13 16:59:44,544 [ INFO][       Thread-261783][   transport.py][1871] : Authentication (password) successful!
2025-06-13 16:59:44,544 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 16:59:45,133 [DEBUG][       Thread-261783][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 16:59:45,133 [DEBUG][       Thread-261783][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 16:59:45,177 [DEBUG][       Thread-261783][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 16:59:45,177 [DEBUG][       Thread-261783][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 16:59:45,179 [DEBUG][       Thread-261783][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 16:59:45,194 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 16:59:45,195 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 16:59:45,196 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 16:59:45,198 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 16:59:45,203 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 16:59:45,207 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 16:59:45,207 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 16:59:45,208 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 16:59:45,208 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.624587 -999.00  +13.20  12.66     37   -0.80 1 1 1 1 1   887    0 14.13 -15.40 ----- 13.0 12.7 48.8 19.5 15.5 -29.3 14.9 -29.7 15.4 -28.7 16.1 -28.2
2025-06-13 16:59:45,208 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 16:59:45,208 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 16:59:45,208 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.624587
2025-06-13 16:59:45,209 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 16:59:45,209 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 16:59:45,209 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 16:59:45,209 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 16:59:45,210 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 16:59:45,210 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T16:59:39', tmtdew=16.38, humidity=32.02, cloud=0.0, wind=13.18, temperature=13.45, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T14:59:24.317', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 16:59:45,212 [DEBUG][       Thread-261783][   transport.py][1871] : EOF in transport thread
2025-06-13 16:59:45,293 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 16:59:45,304 [DEBUG][       Thread-261786][   transport.py][1871] : starting thread (client mode): 0x863915d0
2025-06-13 16:59:45,304 [DEBUG][       Thread-261786][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 16:59:45,320 [DEBUG][       Thread-261786][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 16:59:45,320 [ INFO][       Thread-261786][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 16:59:45,327 [DEBUG][       Thread-261786][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 16:59:45,327 [DEBUG][       Thread-261786][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 16:59:45,327 [DEBUG][       Thread-261786][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 16:59:45,327 [DEBUG][       Thread-261786][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:59:45,327 [DEBUG][       Thread-261786][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:59:45,327 [DEBUG][       Thread-261786][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:59:45,327 [DEBUG][       Thread-261786][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:59:45,328 [DEBUG][       Thread-261786][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 16:59:45,328 [DEBUG][       Thread-261786][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 16:59:45,328 [DEBUG][       Thread-261786][   transport.py][1871] : client lang: <none>
2025-06-13 16:59:45,328 [DEBUG][       Thread-261786][   transport.py][1871] : server lang: <none>
2025-06-13 16:59:45,328 [DEBUG][       Thread-261786][   transport.py][1871] : kex follows: False
2025-06-13 16:59:45,328 [DEBUG][       Thread-261786][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 16:59:45,328 [DEBUG][       Thread-261786][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 16:59:45,328 [DEBUG][       Thread-261786][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 16:59:45,328 [DEBUG][       Thread-261786][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 16:59:45,328 [DEBUG][       Thread-261786][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 16:59:45,328 [DEBUG][       Thread-261786][   transport.py][1871] : Compression: none
2025-06-13 16:59:45,328 [DEBUG][       Thread-261786][   transport.py][1871] : === End of kex handshake ===
2025-06-13 16:59:45,387 [DEBUG][       Thread-261786][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 16:59:45,387 [DEBUG][       Thread-261786][   transport.py][1871] : Switch to new keys ...
2025-06-13 16:59:45,388 [DEBUG][       Thread-261786][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 16:59:45,388 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 16:59:45,389 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 16:59:45,442 [DEBUG][       Thread-261786][   transport.py][1871] : userauth is OK
2025-06-13 16:59:45,443 [DEBUG][       Thread-261786][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 16:59:45,443 [DEBUG][       Thread-261786][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 16:59:45,443 [DEBUG][       Thread-261786][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 16:59:45,443 [DEBUG][       Thread-261786][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 16:59:45,461 [ INFO][       Thread-261786][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 16:59:45,462 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 16:59:45,462 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 16:59:46,471 [DEBUG][       Thread-261786][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 16:59:46,472 [DEBUG][       Thread-261786][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 16:59:46,520 [DEBUG][       Thread-261786][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 16:59:46,520 [DEBUG][       Thread-261786][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 16:59:46,530 [DEBUG][       Thread-261786][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 16:59:46,539 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 16:59:46,539 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 16:59:46,548 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 16:59:46,557 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 16:59:46,558 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 16:59:46,558 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 16:59:46,566 [DEBUG][       Thread-261786][   transport.py][1871] : EOF in transport thread
2025-06-13 16:59:51,304 [DEBUG][Thread-261788 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 16:59:56,559 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 16:59:56,559 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 16:59:56,560 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 16:59:56,562 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 16:59:57,009 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 16, 59, 39), 16.38, 32.02, 0.0, 13.18, 13.45, 0, 0, 0, 2, 0, 0),)
2025-06-13 16:59:57,009 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 16:59:39
2025-06-13 16:59:57,091 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 16:59:57,095 [DEBUG][       Thread-261789][   transport.py][1871] : starting thread (client mode): 0x86368310
2025-06-13 16:59:57,095 [DEBUG][       Thread-261789][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 16:59:57,116 [DEBUG][       Thread-261789][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 16:59:57,116 [ INFO][       Thread-261789][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 16:59:57,119 [DEBUG][       Thread-261789][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 16:59:57,119 [DEBUG][       Thread-261789][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 16:59:57,119 [DEBUG][       Thread-261789][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 16:59:57,119 [DEBUG][       Thread-261789][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:59:57,120 [DEBUG][       Thread-261789][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:59:57,120 [DEBUG][       Thread-261789][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:59:57,120 [DEBUG][       Thread-261789][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:59:57,120 [DEBUG][       Thread-261789][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 16:59:57,120 [DEBUG][       Thread-261789][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 16:59:57,120 [DEBUG][       Thread-261789][   transport.py][1871] : client lang: <none>
2025-06-13 16:59:57,120 [DEBUG][       Thread-261789][   transport.py][1871] : server lang: <none>
2025-06-13 16:59:57,120 [DEBUG][       Thread-261789][   transport.py][1871] : kex follows: False
2025-06-13 16:59:57,120 [DEBUG][       Thread-261789][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 16:59:57,120 [DEBUG][       Thread-261789][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 16:59:57,120 [DEBUG][       Thread-261789][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 16:59:57,120 [DEBUG][       Thread-261789][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 16:59:57,120 [DEBUG][       Thread-261789][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 16:59:57,120 [DEBUG][       Thread-261789][   transport.py][1871] : Compression: none
2025-06-13 16:59:57,120 [DEBUG][       Thread-261789][   transport.py][1871] : === End of kex handshake ===
2025-06-13 16:59:57,128 [DEBUG][       Thread-261789][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 16:59:57,128 [DEBUG][       Thread-261789][   transport.py][1871] : Switch to new keys ...
2025-06-13 16:59:57,129 [DEBUG][       Thread-261789][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 16:59:57,129 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 16:59:57,129 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 16:59:57,130 [DEBUG][       Thread-261789][   transport.py][1871] : userauth is OK
2025-06-13 16:59:57,143 [ INFO][       Thread-261789][   transport.py][1871] : Authentication (password) successful!
2025-06-13 16:59:57,144 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 16:59:57,822 [DEBUG][       Thread-261789][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 16:59:57,822 [DEBUG][       Thread-261789][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 16:59:57,865 [DEBUG][       Thread-261789][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 16:59:57,865 [DEBUG][       Thread-261789][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 16:59:57,869 [DEBUG][       Thread-261789][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 16:59:57,880 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 16:59:57,881 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 16:59:57,883 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 16:59:57,885 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 16:59:57,891 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 16:59:57,894 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 16:59:57,894 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 16:59:57,895 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 16:59:57,895 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.624587 -999.00  +13.20  12.66     37   -0.80 1 1 1 1 1   887    0 14.13 -15.40 ----- 13.0 12.7 48.8 19.5 15.5 -29.3 14.9 -29.7 15.4 -28.7 16.1 -28.2
2025-06-13 16:59:57,895 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 16:59:57,895 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 16:59:57,895 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.624587
2025-06-13 16:59:57,895 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 16:59:57,896 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 16:59:57,896 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 16:59:57,896 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 16:59:57,896 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 16:59:57,896 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T16:59:39', tmtdew=16.38, humidity=32.02, cloud=0.0, wind=13.18, temperature=13.45, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T14:59:24.317', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 16:59:57,897 [DEBUG][       Thread-261789][   transport.py][1871] : EOF in transport thread
2025-06-13 16:59:57,979 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 16:59:57,989 [DEBUG][       Thread-261792][   transport.py][1871] : starting thread (client mode): 0x867b5b10
2025-06-13 16:59:57,989 [DEBUG][       Thread-261792][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 16:59:58,004 [DEBUG][       Thread-261792][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 16:59:58,004 [ INFO][       Thread-261792][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 16:59:58,011 [DEBUG][       Thread-261792][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 16:59:58,012 [DEBUG][       Thread-261792][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 16:59:58,012 [DEBUG][       Thread-261792][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 16:59:58,012 [DEBUG][       Thread-261792][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:59:58,012 [DEBUG][       Thread-261792][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 16:59:58,012 [DEBUG][       Thread-261792][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:59:58,012 [DEBUG][       Thread-261792][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 16:59:58,012 [DEBUG][       Thread-261792][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 16:59:58,012 [DEBUG][       Thread-261792][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 16:59:58,012 [DEBUG][       Thread-261792][   transport.py][1871] : client lang: <none>
2025-06-13 16:59:58,012 [DEBUG][       Thread-261792][   transport.py][1871] : server lang: <none>
2025-06-13 16:59:58,012 [DEBUG][       Thread-261792][   transport.py][1871] : kex follows: False
2025-06-13 16:59:58,012 [DEBUG][       Thread-261792][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 16:59:58,012 [DEBUG][       Thread-261792][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 16:59:58,012 [DEBUG][       Thread-261792][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 16:59:58,012 [DEBUG][       Thread-261792][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 16:59:58,012 [DEBUG][       Thread-261792][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 16:59:58,012 [DEBUG][       Thread-261792][   transport.py][1871] : Compression: none
2025-06-13 16:59:58,012 [DEBUG][       Thread-261792][   transport.py][1871] : === End of kex handshake ===
2025-06-13 16:59:58,075 [DEBUG][       Thread-261792][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 16:59:58,076 [DEBUG][       Thread-261792][   transport.py][1871] : Switch to new keys ...
2025-06-13 16:59:58,077 [DEBUG][       Thread-261792][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 16:59:58,077 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 16:59:58,077 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 16:59:58,134 [DEBUG][       Thread-261792][   transport.py][1871] : userauth is OK
2025-06-13 16:59:58,135 [DEBUG][       Thread-261792][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 16:59:58,135 [DEBUG][       Thread-261792][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 16:59:58,135 [DEBUG][       Thread-261792][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 16:59:58,135 [DEBUG][       Thread-261792][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 16:59:58,155 [ INFO][       Thread-261792][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 16:59:58,156 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 16:59:58,156 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 16:59:59,101 [DEBUG][       Thread-261792][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 16:59:59,102 [DEBUG][       Thread-261792][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 16:59:59,152 [DEBUG][       Thread-261792][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 16:59:59,152 [DEBUG][       Thread-261792][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 16:59:59,161 [DEBUG][       Thread-261792][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 16:59:59,171 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 16:59:59,171 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 16:59:59,181 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 16:59:59,191 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 16:59:59,191 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 16:59:59,192 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 16:59:59,203 [DEBUG][       Thread-261792][   transport.py][1871] : EOF in transport thread
2025-06-13 17:00:00,349 [DEBUG][Thread-261794 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:00:09,202 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 17:00:09,203 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 17:00:09,203 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 17:00:09,206 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 17:00:09,374 [DEBUG][Thread-261795 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:00:09,664 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 16, 59, 39), 16.38, 32.02, 0.0, 13.18, 13.45, 0, 0, 0, 2, 0, 0),)
2025-06-13 17:00:09,664 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 16:59:39
2025-06-13 17:00:09,746 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 17:00:09,751 [DEBUG][       Thread-261796][   transport.py][1871] : starting thread (client mode): 0x8636b4c0
2025-06-13 17:00:09,751 [DEBUG][       Thread-261796][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 17:00:09,771 [DEBUG][       Thread-261796][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 17:00:09,771 [ INFO][       Thread-261796][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 17:00:09,774 [DEBUG][       Thread-261796][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 17:00:09,774 [DEBUG][       Thread-261796][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 17:00:09,774 [DEBUG][       Thread-261796][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 17:00:09,774 [DEBUG][       Thread-261796][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:00:09,774 [DEBUG][       Thread-261796][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:00:09,774 [DEBUG][       Thread-261796][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:00:09,774 [DEBUG][       Thread-261796][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:00:09,774 [DEBUG][       Thread-261796][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 17:00:09,774 [DEBUG][       Thread-261796][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 17:00:09,774 [DEBUG][       Thread-261796][   transport.py][1871] : client lang: <none>
2025-06-13 17:00:09,774 [DEBUG][       Thread-261796][   transport.py][1871] : server lang: <none>
2025-06-13 17:00:09,774 [DEBUG][       Thread-261796][   transport.py][1871] : kex follows: False
2025-06-13 17:00:09,774 [DEBUG][       Thread-261796][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 17:00:09,774 [DEBUG][       Thread-261796][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 17:00:09,774 [DEBUG][       Thread-261796][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 17:00:09,774 [DEBUG][       Thread-261796][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 17:00:09,774 [DEBUG][       Thread-261796][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 17:00:09,774 [DEBUG][       Thread-261796][   transport.py][1871] : Compression: none
2025-06-13 17:00:09,774 [DEBUG][       Thread-261796][   transport.py][1871] : === End of kex handshake ===
2025-06-13 17:00:09,782 [DEBUG][       Thread-261796][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 17:00:09,783 [DEBUG][       Thread-261796][   transport.py][1871] : Switch to new keys ...
2025-06-13 17:00:09,783 [DEBUG][       Thread-261796][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 17:00:09,784 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 17:00:09,784 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 17:00:09,785 [DEBUG][       Thread-261796][   transport.py][1871] : userauth is OK
2025-06-13 17:00:09,798 [ INFO][       Thread-261796][   transport.py][1871] : Authentication (password) successful!
2025-06-13 17:00:09,799 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 17:00:15,517 [DEBUG][       Thread-261796][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 17:00:15,517 [DEBUG][       Thread-261796][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 17:00:15,560 [DEBUG][       Thread-261796][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 17:00:15,560 [DEBUG][       Thread-261796][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 17:00:15,563 [DEBUG][       Thread-261796][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 17:00:15,574 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 17:00:15,575 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 17:00:15,576 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 17:00:15,576 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 17:00:15,579 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 17:00:15,580 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 17:00:15,580 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 17:00:15,580 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 17:00:15,580 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.624587 -999.00  +13.20  12.66     37   -0.80 1 1 1 1 1   887    0 14.13 -15.40 ----- 13.0 12.7 48.8 19.5 15.5 -29.3 14.9 -29.7 15.4 -28.7 16.1 -28.2
2025-06-13 17:00:15,580 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 17:00:15,580 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 17:00:15,580 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.624587
2025-06-13 17:00:15,580 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 17:00:15,580 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 17:00:15,580 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 17:00:15,581 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 17:00:15,581 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 17:00:15,581 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T16:59:39', tmtdew=16.38, humidity=32.02, cloud=0.0, wind=13.18, temperature=13.45, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T14:59:24.317', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 17:00:15,581 [DEBUG][       Thread-261796][   transport.py][1871] : EOF in transport thread
2025-06-13 17:00:15,653 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 17:00:15,665 [DEBUG][       Thread-261799][   transport.py][1871] : starting thread (client mode): 0x86392920
2025-06-13 17:00:15,665 [DEBUG][       Thread-261799][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 17:00:15,680 [DEBUG][       Thread-261799][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 17:00:15,680 [ INFO][       Thread-261799][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 17:00:15,691 [DEBUG][       Thread-261799][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 17:00:15,691 [DEBUG][       Thread-261799][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 17:00:15,691 [DEBUG][       Thread-261799][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 17:00:15,692 [DEBUG][       Thread-261799][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:00:15,692 [DEBUG][       Thread-261799][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:00:15,692 [DEBUG][       Thread-261799][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:00:15,692 [DEBUG][       Thread-261799][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:00:15,692 [DEBUG][       Thread-261799][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 17:00:15,692 [DEBUG][       Thread-261799][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 17:00:15,692 [DEBUG][       Thread-261799][   transport.py][1871] : client lang: <none>
2025-06-13 17:00:15,692 [DEBUG][       Thread-261799][   transport.py][1871] : server lang: <none>
2025-06-13 17:00:15,692 [DEBUG][       Thread-261799][   transport.py][1871] : kex follows: False
2025-06-13 17:00:15,692 [DEBUG][       Thread-261799][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 17:00:15,692 [DEBUG][       Thread-261799][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 17:00:15,692 [DEBUG][       Thread-261799][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 17:00:15,692 [DEBUG][       Thread-261799][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 17:00:15,692 [DEBUG][       Thread-261799][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 17:00:15,692 [DEBUG][       Thread-261799][   transport.py][1871] : Compression: none
2025-06-13 17:00:15,692 [DEBUG][       Thread-261799][   transport.py][1871] : === End of kex handshake ===
2025-06-13 17:00:15,749 [DEBUG][       Thread-261799][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 17:00:15,749 [DEBUG][       Thread-261799][   transport.py][1871] : Switch to new keys ...
2025-06-13 17:00:15,749 [DEBUG][       Thread-261799][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 17:00:15,749 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 17:00:15,749 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 17:00:15,806 [DEBUG][       Thread-261799][   transport.py][1871] : userauth is OK
2025-06-13 17:00:15,806 [DEBUG][       Thread-261799][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 17:00:15,806 [DEBUG][       Thread-261799][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 17:00:15,806 [DEBUG][       Thread-261799][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 17:00:15,806 [DEBUG][       Thread-261799][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 17:00:15,823 [ INFO][       Thread-261799][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 17:00:15,824 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 17:00:15,824 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 17:00:16,824 [DEBUG][       Thread-261799][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 17:00:16,824 [DEBUG][       Thread-261799][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 17:00:16,873 [DEBUG][       Thread-261799][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 17:00:16,873 [DEBUG][       Thread-261799][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 17:00:16,888 [DEBUG][       Thread-261799][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 17:00:16,899 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 17:00:16,900 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 17:00:16,908 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 17:00:16,919 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 17:00:16,919 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 17:00:16,920 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 17:00:16,928 [DEBUG][       Thread-261799][   transport.py][1871] : EOF in transport thread
2025-06-13 17:00:18,392 [DEBUG][Thread-261801 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:00:22,400 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:00:22,402 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:00:24,825 [DEBUG][Thread-261802 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:00:26,930 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 17:00:26,930 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 17:00:26,930 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 17:00:26,933 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 17:00:27,379 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 17, 0, 11), 16.39, 31.9, 0.0, 13.76, 13.41, 0, 0, 0, 2, 0, 0),)
2025-06-13 17:00:27,379 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 17:00:11
2025-06-13 17:00:27,413 [DEBUG][Thread-261803 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:00:27,460 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 17:00:27,464 [DEBUG][       Thread-261804][   transport.py][1871] : starting thread (client mode): 0x867ffb20
2025-06-13 17:00:27,464 [DEBUG][       Thread-261804][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 17:00:27,484 [DEBUG][       Thread-261804][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 17:00:27,484 [ INFO][       Thread-261804][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 17:00:27,487 [DEBUG][       Thread-261804][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 17:00:27,487 [DEBUG][       Thread-261804][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 17:00:27,487 [DEBUG][       Thread-261804][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 17:00:27,487 [DEBUG][       Thread-261804][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:00:27,487 [DEBUG][       Thread-261804][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:00:27,487 [DEBUG][       Thread-261804][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:00:27,487 [DEBUG][       Thread-261804][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:00:27,487 [DEBUG][       Thread-261804][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 17:00:27,487 [DEBUG][       Thread-261804][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 17:00:27,487 [DEBUG][       Thread-261804][   transport.py][1871] : client lang: <none>
2025-06-13 17:00:27,487 [DEBUG][       Thread-261804][   transport.py][1871] : server lang: <none>
2025-06-13 17:00:27,487 [DEBUG][       Thread-261804][   transport.py][1871] : kex follows: False
2025-06-13 17:00:27,487 [DEBUG][       Thread-261804][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 17:00:27,487 [DEBUG][       Thread-261804][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 17:00:27,487 [DEBUG][       Thread-261804][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 17:00:27,488 [DEBUG][       Thread-261804][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 17:00:27,488 [DEBUG][       Thread-261804][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 17:00:27,488 [DEBUG][       Thread-261804][   transport.py][1871] : Compression: none
2025-06-13 17:00:27,488 [DEBUG][       Thread-261804][   transport.py][1871] : === End of kex handshake ===
2025-06-13 17:00:27,502 [DEBUG][       Thread-261804][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 17:00:27,502 [DEBUG][       Thread-261804][   transport.py][1871] : Switch to new keys ...
2025-06-13 17:00:27,502 [DEBUG][       Thread-261804][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 17:00:27,502 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 17:00:27,502 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 17:00:27,503 [DEBUG][       Thread-261804][   transport.py][1871] : userauth is OK
2025-06-13 17:00:27,515 [ INFO][       Thread-261804][   transport.py][1871] : Authentication (password) successful!
2025-06-13 17:00:27,516 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 17:00:28,148 [DEBUG][       Thread-261804][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 17:00:28,148 [DEBUG][       Thread-261804][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 17:00:28,189 [DEBUG][       Thread-261804][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 17:00:28,189 [DEBUG][       Thread-261804][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 17:00:28,193 [DEBUG][       Thread-261804][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 17:00:28,205 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 17:00:28,205 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 17:00:28,207 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 17:00:28,209 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 17:00:28,216 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 17:00:28,218 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 17:00:28,218 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 17:00:28,219 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 17:00:28,219 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.624934 -999.00  +13.30  15.11     37   -0.90 1 1 1 1 1   887    0 13.96 -15.93 ----- 12.8 15.1 39.4 16.8 15.4 -29.4 14.9 -29.9 15.4 -28.8 16.1 -28.3
2025-06-13 17:00:28,219 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 17:00:28,219 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 17:00:28,219 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.624934
2025-06-13 17:00:28,220 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 17:00:28,220 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 17:00:28,220 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 17:00:28,220 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 17:00:28,220 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 17:00:28,221 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T17:00:11', tmtdew=16.39, humidity=31.9, cloud=0.0, wind=13.76, temperature=13.41, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T14:59:54.298', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 17:00:28,222 [DEBUG][       Thread-261804][   transport.py][1871] : EOF in transport thread
2025-06-13 17:00:28,305 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 17:00:28,318 [DEBUG][       Thread-261807][   transport.py][1871] : starting thread (client mode): 0x867b7670
2025-06-13 17:00:28,318 [DEBUG][       Thread-261807][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 17:00:28,333 [DEBUG][       Thread-261807][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 17:00:28,333 [ INFO][       Thread-261807][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 17:00:28,341 [DEBUG][       Thread-261807][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 17:00:28,341 [DEBUG][       Thread-261807][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 17:00:28,341 [DEBUG][       Thread-261807][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 17:00:28,341 [DEBUG][       Thread-261807][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:00:28,341 [DEBUG][       Thread-261807][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:00:28,341 [DEBUG][       Thread-261807][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:00:28,341 [DEBUG][       Thread-261807][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:00:28,341 [DEBUG][       Thread-261807][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 17:00:28,341 [DEBUG][       Thread-261807][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 17:00:28,341 [DEBUG][       Thread-261807][   transport.py][1871] : client lang: <none>
2025-06-13 17:00:28,341 [DEBUG][       Thread-261807][   transport.py][1871] : server lang: <none>
2025-06-13 17:00:28,341 [DEBUG][       Thread-261807][   transport.py][1871] : kex follows: False
2025-06-13 17:00:28,341 [DEBUG][       Thread-261807][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 17:00:28,341 [DEBUG][       Thread-261807][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 17:00:28,341 [DEBUG][       Thread-261807][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 17:00:28,342 [DEBUG][       Thread-261807][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 17:00:28,342 [DEBUG][       Thread-261807][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 17:00:28,342 [DEBUG][       Thread-261807][   transport.py][1871] : Compression: none
2025-06-13 17:00:28,342 [DEBUG][       Thread-261807][   transport.py][1871] : === End of kex handshake ===
2025-06-13 17:00:28,399 [DEBUG][       Thread-261807][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 17:00:28,400 [DEBUG][       Thread-261807][   transport.py][1871] : Switch to new keys ...
2025-06-13 17:00:28,400 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 17:00:28,401 [DEBUG][       Thread-261807][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 17:00:28,402 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 17:00:28,455 [DEBUG][       Thread-261807][   transport.py][1871] : userauth is OK
2025-06-13 17:00:28,455 [DEBUG][       Thread-261807][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 17:00:28,455 [DEBUG][       Thread-261807][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 17:00:28,455 [DEBUG][       Thread-261807][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 17:00:28,455 [DEBUG][       Thread-261807][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 17:00:28,474 [ INFO][       Thread-261807][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 17:00:28,474 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 17:00:28,475 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 17:00:29,537 [DEBUG][       Thread-261807][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 17:00:29,537 [DEBUG][       Thread-261807][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 17:00:29,588 [DEBUG][       Thread-261807][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 17:00:29,588 [DEBUG][       Thread-261807][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 17:00:29,597 [DEBUG][       Thread-261807][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 17:00:29,606 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 17:00:29,607 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 17:00:29,616 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 17:00:29,625 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 17:00:29,625 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 17:00:29,626 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 17:00:29,634 [DEBUG][       Thread-261807][   transport.py][1871] : EOF in transport thread
2025-06-13 17:00:30,096 [DEBUG][Thread-261809 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:00:31,148 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:00:31,149 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:00:36,436 [DEBUG][Thread-261810 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:00:39,636 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 17:00:39,637 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 17:00:39,637 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 17:00:39,640 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 17:00:40,087 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 17, 0, 11), 16.39, 31.9, 0.0, 13.76, 13.41, 0, 0, 0, 2, 0, 0),)
2025-06-13 17:00:40,087 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 17:00:11
2025-06-13 17:00:40,167 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 17:00:40,171 [DEBUG][       Thread-261811][   transport.py][1871] : starting thread (client mode): 0x867feb90
2025-06-13 17:00:40,171 [DEBUG][       Thread-261811][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 17:00:40,191 [DEBUG][       Thread-261811][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 17:00:40,191 [ INFO][       Thread-261811][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 17:00:40,195 [DEBUG][       Thread-261811][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 17:00:40,195 [DEBUG][       Thread-261811][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 17:00:40,195 [DEBUG][       Thread-261811][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 17:00:40,195 [DEBUG][       Thread-261811][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:00:40,195 [DEBUG][       Thread-261811][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:00:40,195 [DEBUG][       Thread-261811][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:00:40,195 [DEBUG][       Thread-261811][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:00:40,195 [DEBUG][       Thread-261811][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 17:00:40,195 [DEBUG][       Thread-261811][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 17:00:40,195 [DEBUG][       Thread-261811][   transport.py][1871] : client lang: <none>
2025-06-13 17:00:40,195 [DEBUG][       Thread-261811][   transport.py][1871] : server lang: <none>
2025-06-13 17:00:40,195 [DEBUG][       Thread-261811][   transport.py][1871] : kex follows: False
2025-06-13 17:00:40,195 [DEBUG][       Thread-261811][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 17:00:40,195 [DEBUG][       Thread-261811][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 17:00:40,195 [DEBUG][       Thread-261811][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 17:00:40,195 [DEBUG][       Thread-261811][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 17:00:40,195 [DEBUG][       Thread-261811][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 17:00:40,195 [DEBUG][       Thread-261811][   transport.py][1871] : Compression: none
2025-06-13 17:00:40,195 [DEBUG][       Thread-261811][   transport.py][1871] : === End of kex handshake ===
2025-06-13 17:00:40,213 [DEBUG][       Thread-261811][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 17:00:40,213 [DEBUG][       Thread-261811][   transport.py][1871] : Switch to new keys ...
2025-06-13 17:00:40,214 [DEBUG][       Thread-261811][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 17:00:40,214 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 17:00:40,214 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 17:00:40,215 [DEBUG][       Thread-261811][   transport.py][1871] : userauth is OK
2025-06-13 17:00:40,240 [ INFO][       Thread-261811][   transport.py][1871] : Authentication (password) successful!
2025-06-13 17:00:40,241 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 17:00:40,875 [DEBUG][       Thread-261811][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 17:00:40,875 [DEBUG][       Thread-261811][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 17:00:40,917 [DEBUG][       Thread-261811][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 17:00:40,917 [DEBUG][       Thread-261811][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 17:00:40,921 [DEBUG][       Thread-261811][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 17:00:40,934 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 17:00:40,934 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 17:00:40,936 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 17:00:40,939 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 17:00:40,946 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 17:00:40,948 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 17:00:40,948 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 17:00:40,949 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 17:00:40,949 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.624934 -999.00  +13.30  15.11     37   -0.90 1 1 1 1 1   887    0 13.96 -15.93 ----- 12.8 15.1 39.4 16.8 15.4 -29.4 14.9 -29.9 15.4 -28.8 16.1 -28.3
2025-06-13 17:00:40,949 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 17:00:40,949 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 17:00:40,949 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.624934
2025-06-13 17:00:40,950 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 17:00:40,950 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 17:00:40,950 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 17:00:40,950 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 17:00:40,951 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 17:00:40,951 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T17:00:11', tmtdew=16.39, humidity=31.9, cloud=0.0, wind=13.76, temperature=13.41, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T14:59:54.298', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 17:00:40,951 [DEBUG][       Thread-261811][   transport.py][1871] : EOF in transport thread
2025-06-13 17:00:41,037 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 17:00:41,049 [DEBUG][       Thread-261814][   transport.py][1871] : starting thread (client mode): 0x868c8520
2025-06-13 17:00:41,050 [DEBUG][       Thread-261814][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 17:00:41,065 [DEBUG][       Thread-261814][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 17:00:41,065 [ INFO][       Thread-261814][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 17:00:41,073 [DEBUG][       Thread-261814][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 17:00:41,073 [DEBUG][       Thread-261814][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 17:00:41,073 [DEBUG][       Thread-261814][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 17:00:41,073 [DEBUG][       Thread-261814][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:00:41,073 [DEBUG][       Thread-261814][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:00:41,073 [DEBUG][       Thread-261814][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:00:41,073 [DEBUG][       Thread-261814][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:00:41,073 [DEBUG][       Thread-261814][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 17:00:41,073 [DEBUG][       Thread-261814][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 17:00:41,073 [DEBUG][       Thread-261814][   transport.py][1871] : client lang: <none>
2025-06-13 17:00:41,074 [DEBUG][       Thread-261814][   transport.py][1871] : server lang: <none>
2025-06-13 17:00:41,074 [DEBUG][       Thread-261814][   transport.py][1871] : kex follows: False
2025-06-13 17:00:41,074 [DEBUG][       Thread-261814][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 17:00:41,074 [DEBUG][       Thread-261814][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 17:00:41,074 [DEBUG][       Thread-261814][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 17:00:41,074 [DEBUG][       Thread-261814][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 17:00:41,074 [DEBUG][       Thread-261814][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 17:00:41,074 [DEBUG][       Thread-261814][   transport.py][1871] : Compression: none
2025-06-13 17:00:41,074 [DEBUG][       Thread-261814][   transport.py][1871] : === End of kex handshake ===
2025-06-13 17:00:41,130 [DEBUG][       Thread-261814][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 17:00:41,131 [DEBUG][       Thread-261814][   transport.py][1871] : Switch to new keys ...
2025-06-13 17:00:41,131 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 17:00:41,132 [DEBUG][       Thread-261814][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 17:00:41,133 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 17:00:41,187 [DEBUG][       Thread-261814][   transport.py][1871] : userauth is OK
2025-06-13 17:00:41,187 [DEBUG][       Thread-261814][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 17:00:41,187 [DEBUG][       Thread-261814][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 17:00:41,187 [DEBUG][       Thread-261814][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 17:00:41,187 [DEBUG][       Thread-261814][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 17:00:41,206 [ INFO][       Thread-261814][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 17:00:41,206 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 17:00:41,207 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 17:00:42,214 [DEBUG][       Thread-261814][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 17:00:42,214 [DEBUG][       Thread-261814][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 17:00:42,271 [DEBUG][       Thread-261814][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 17:00:42,272 [DEBUG][       Thread-261814][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 17:00:42,281 [DEBUG][       Thread-261814][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 17:00:42,291 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 17:00:42,291 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 17:00:42,302 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 17:00:42,317 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 17:00:42,317 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 17:00:42,318 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 17:00:42,326 [DEBUG][       Thread-261814][   transport.py][1871] : EOF in transport thread
2025-06-13 17:00:45,479 [DEBUG][Thread-261816 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:00:52,328 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 17:00:52,328 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 17:00:52,328 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 17:00:52,329 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 17:00:52,821 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 17, 0, 44), 16.39, 31.91, 0.0, 12.21, 13.45, 0, 0, 0, 2, 0, 0),)
2025-06-13 17:00:52,821 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 17:00:44
2025-06-13 17:00:52,905 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 17:00:52,910 [DEBUG][       Thread-261817][   transport.py][1871] : starting thread (client mode): 0x863537f0
2025-06-13 17:00:52,910 [DEBUG][       Thread-261817][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 17:00:52,931 [DEBUG][       Thread-261817][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 17:00:52,931 [ INFO][       Thread-261817][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 17:00:52,933 [DEBUG][       Thread-261817][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 17:00:52,933 [DEBUG][       Thread-261817][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 17:00:52,933 [DEBUG][       Thread-261817][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 17:00:52,933 [DEBUG][       Thread-261817][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:00:52,933 [DEBUG][       Thread-261817][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:00:52,933 [DEBUG][       Thread-261817][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:00:52,933 [DEBUG][       Thread-261817][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:00:52,933 [DEBUG][       Thread-261817][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 17:00:52,933 [DEBUG][       Thread-261817][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 17:00:52,933 [DEBUG][       Thread-261817][   transport.py][1871] : client lang: <none>
2025-06-13 17:00:52,933 [DEBUG][       Thread-261817][   transport.py][1871] : server lang: <none>
2025-06-13 17:00:52,933 [DEBUG][       Thread-261817][   transport.py][1871] : kex follows: False
2025-06-13 17:00:52,933 [DEBUG][       Thread-261817][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 17:00:52,933 [DEBUG][       Thread-261817][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 17:00:52,933 [DEBUG][       Thread-261817][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 17:00:52,933 [DEBUG][       Thread-261817][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 17:00:52,933 [DEBUG][       Thread-261817][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 17:00:52,933 [DEBUG][       Thread-261817][   transport.py][1871] : Compression: none
2025-06-13 17:00:52,933 [DEBUG][       Thread-261817][   transport.py][1871] : === End of kex handshake ===
2025-06-13 17:00:52,940 [DEBUG][       Thread-261817][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 17:00:52,940 [DEBUG][       Thread-261817][   transport.py][1871] : Switch to new keys ...
2025-06-13 17:00:52,940 [DEBUG][       Thread-261817][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 17:00:52,940 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 17:00:52,940 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 17:00:52,940 [DEBUG][       Thread-261817][   transport.py][1871] : userauth is OK
2025-06-13 17:00:52,964 [ INFO][       Thread-261817][   transport.py][1871] : Authentication (password) successful!
2025-06-13 17:00:52,964 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 17:00:53,605 [DEBUG][       Thread-261817][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 17:00:53,605 [DEBUG][       Thread-261817][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 17:00:53,648 [DEBUG][       Thread-261817][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 17:00:53,648 [DEBUG][       Thread-261817][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 17:00:53,651 [DEBUG][       Thread-261817][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 17:00:53,664 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 17:00:53,664 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 17:00:53,665 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 17:00:53,666 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 17:00:53,669 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 17:00:53,670 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 17:00:53,670 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 17:00:53,670 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 17:00:53,670 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.625282 -999.00  +13.30  16.60     37   -1.00 1 1 1 1 1   887    0 13.91 -13.88 ----- 15.3 16.6 35.4 21.8 15.4 -29.6 15.0 -30.0 15.4 -29.1 16.0 -28.6
2025-06-13 17:00:53,670 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 17:00:53,670 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 17:00:53,670 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.625282
2025-06-13 17:00:53,670 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 17:00:53,670 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 17:00:53,670 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 17:00:53,670 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 17:00:53,670 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 17:00:53,670 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T17:00:44', tmtdew=16.39, humidity=31.91, cloud=0.0, wind=12.21, temperature=13.45, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T15:00:24.365', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 17:00:53,671 [DEBUG][       Thread-261817][   transport.py][1871] : EOF in transport thread
2025-06-13 17:00:53,742 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 17:00:53,752 [DEBUG][       Thread-261820][   transport.py][1871] : starting thread (client mode): 0x863a7f40
2025-06-13 17:00:53,752 [DEBUG][       Thread-261820][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 17:00:53,766 [DEBUG][       Thread-261820][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 17:00:53,766 [ INFO][       Thread-261820][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 17:00:53,774 [DEBUG][       Thread-261820][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 17:00:53,774 [DEBUG][       Thread-261820][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 17:00:53,774 [DEBUG][       Thread-261820][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 17:00:53,774 [DEBUG][       Thread-261820][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:00:53,774 [DEBUG][       Thread-261820][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:00:53,774 [DEBUG][       Thread-261820][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:00:53,774 [DEBUG][       Thread-261820][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:00:53,774 [DEBUG][       Thread-261820][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 17:00:53,774 [DEBUG][       Thread-261820][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 17:00:53,774 [DEBUG][       Thread-261820][   transport.py][1871] : client lang: <none>
2025-06-13 17:00:53,774 [DEBUG][       Thread-261820][   transport.py][1871] : server lang: <none>
2025-06-13 17:00:53,774 [DEBUG][       Thread-261820][   transport.py][1871] : kex follows: False
2025-06-13 17:00:53,774 [DEBUG][       Thread-261820][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 17:00:53,774 [DEBUG][       Thread-261820][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 17:00:53,774 [DEBUG][       Thread-261820][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 17:00:53,774 [DEBUG][       Thread-261820][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 17:00:53,774 [DEBUG][       Thread-261820][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 17:00:53,774 [DEBUG][       Thread-261820][   transport.py][1871] : Compression: none
2025-06-13 17:00:53,774 [DEBUG][       Thread-261820][   transport.py][1871] : === End of kex handshake ===
2025-06-13 17:00:53,829 [DEBUG][       Thread-261820][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 17:00:53,829 [DEBUG][       Thread-261820][   transport.py][1871] : Switch to new keys ...
2025-06-13 17:00:53,829 [DEBUG][       Thread-261820][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 17:00:53,829 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 17:00:53,829 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 17:00:53,889 [DEBUG][       Thread-261820][   transport.py][1871] : userauth is OK
2025-06-13 17:00:53,889 [DEBUG][       Thread-261820][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 17:00:53,889 [DEBUG][       Thread-261820][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 17:00:53,889 [DEBUG][       Thread-261820][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 17:00:53,889 [DEBUG][       Thread-261820][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 17:00:53,903 [ INFO][       Thread-261820][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 17:00:53,903 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 17:00:53,903 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 17:00:54,495 [DEBUG][Thread-261822 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:00:54,881 [DEBUG][       Thread-261820][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 17:00:54,881 [DEBUG][       Thread-261820][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 17:00:54,932 [DEBUG][       Thread-261820][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 17:00:54,932 [DEBUG][       Thread-261820][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 17:00:54,947 [DEBUG][       Thread-261820][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 17:00:54,959 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 17:00:54,959 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 17:00:54,969 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 17:00:54,978 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 17:00:54,978 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 17:00:54,979 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 17:00:54,987 [DEBUG][       Thread-261820][   transport.py][1871] : EOF in transport thread
2025-06-13 17:01:03,523 [DEBUG][Thread-261823 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:01:04,989 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 17:01:04,990 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 17:01:04,990 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 17:01:04,992 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 17:01:05,462 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 17, 0, 44), 16.39, 31.91, 0.0, 12.21, 13.45, 0, 0, 0, 2, 0, 0),)
2025-06-13 17:01:05,462 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 17:00:44
2025-06-13 17:01:05,544 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 17:01:05,548 [DEBUG][       Thread-261824][   transport.py][1871] : starting thread (client mode): 0x867fc820
2025-06-13 17:01:05,548 [DEBUG][       Thread-261824][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 17:01:05,569 [DEBUG][       Thread-261824][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 17:01:05,569 [ INFO][       Thread-261824][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 17:01:05,572 [DEBUG][       Thread-261824][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 17:01:05,572 [DEBUG][       Thread-261824][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 17:01:05,572 [DEBUG][       Thread-261824][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 17:01:05,572 [DEBUG][       Thread-261824][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:01:05,572 [DEBUG][       Thread-261824][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:01:05,572 [DEBUG][       Thread-261824][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:01:05,572 [DEBUG][       Thread-261824][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:01:05,572 [DEBUG][       Thread-261824][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 17:01:05,572 [DEBUG][       Thread-261824][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 17:01:05,572 [DEBUG][       Thread-261824][   transport.py][1871] : client lang: <none>
2025-06-13 17:01:05,572 [DEBUG][       Thread-261824][   transport.py][1871] : server lang: <none>
2025-06-13 17:01:05,572 [DEBUG][       Thread-261824][   transport.py][1871] : kex follows: False
2025-06-13 17:01:05,572 [DEBUG][       Thread-261824][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 17:01:05,572 [DEBUG][       Thread-261824][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 17:01:05,572 [DEBUG][       Thread-261824][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 17:01:05,572 [DEBUG][       Thread-261824][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 17:01:05,572 [DEBUG][       Thread-261824][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 17:01:05,572 [DEBUG][       Thread-261824][   transport.py][1871] : Compression: none
2025-06-13 17:01:05,572 [DEBUG][       Thread-261824][   transport.py][1871] : === End of kex handshake ===
2025-06-13 17:01:05,589 [DEBUG][       Thread-261824][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 17:01:05,590 [DEBUG][       Thread-261824][   transport.py][1871] : Switch to new keys ...
2025-06-13 17:01:05,590 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 17:01:05,590 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 17:01:05,591 [DEBUG][       Thread-261824][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 17:01:05,591 [DEBUG][       Thread-261824][   transport.py][1871] : userauth is OK
2025-06-13 17:01:05,605 [ INFO][       Thread-261824][   transport.py][1871] : Authentication (password) successful!
2025-06-13 17:01:05,606 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 17:01:06,204 [DEBUG][       Thread-261824][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 17:01:06,204 [DEBUG][       Thread-261824][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 17:01:06,245 [DEBUG][       Thread-261824][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 17:01:06,245 [DEBUG][       Thread-261824][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 17:01:06,249 [DEBUG][       Thread-261824][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 17:01:06,260 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 17:01:06,260 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 17:01:06,262 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 17:01:06,264 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 17:01:06,271 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 17:01:06,273 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 17:01:06,273 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 17:01:06,274 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 17:01:06,274 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.625282 -999.00  +13.30  16.60     37   -1.00 1 1 1 1 1   887    0 13.91 -13.88 ----- 15.3 16.6 35.4 21.8 15.4 -29.6 15.0 -30.0 15.4 -29.1 16.0 -28.6
2025-06-13 17:01:06,274 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 17:01:06,274 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 17:01:06,274 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.625282
2025-06-13 17:01:06,275 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 17:01:06,275 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 17:01:06,275 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 17:01:06,275 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 17:01:06,275 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 17:01:06,276 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T17:00:44', tmtdew=16.39, humidity=31.91, cloud=0.0, wind=12.21, temperature=13.45, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T15:00:24.365', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 17:01:06,276 [DEBUG][       Thread-261824][   transport.py][1871] : EOF in transport thread
2025-06-13 17:01:06,352 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 17:01:12,545 [DEBUG][Thread-261827 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:01:21,564 [DEBUG][Thread-261828 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:01:22,542 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:01:22,543 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:01:24,873 [DEBUG][Thread-261829 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:01:30,584 [DEBUG][Thread-261830 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:01:31,216 [DEBUG][Thread-261831 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:01:32,270 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:01:32,270 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:01:39,604 [DEBUG][Thread-261832 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:01:48,625 [DEBUG][Thread-261833 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:01:57,645 [DEBUG][Thread-261834 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:02:06,667 [DEBUG][Thread-261835 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:02:15,687 [DEBUG][Thread-261836 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:02:22,684 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:02:22,685 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:02:24,709 [DEBUG][Thread-261837 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:02:24,922 [DEBUG][Thread-261838 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:02:32,337 [DEBUG][Thread-261839 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:02:33,420 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:02:33,422 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:02:33,732 [DEBUG][Thread-261840 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:02:42,755 [DEBUG][Thread-261841 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:02:51,773 [DEBUG][Thread-261842 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:03:00,794 [DEBUG][Thread-261843 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:03:09,818 [DEBUG][Thread-261844 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:03:16,500 [WARNING][ poll_weather_worker][      driver.py][ 286] : Unable to open ssh connection for writing weather state to io.saao.ac.za: [Errno 110] Connection timed out
2025-06-13 17:03:18,840 [DEBUG][Thread-261845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:03:22,823 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:03:22,824 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:03:24,968 [DEBUG][Thread-261846 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:03:26,511 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 17:03:26,511 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 17:03:26,511 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 17:03:26,511 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 17:03:27,028 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 17, 3, 22), 16.58, 31.55, 0.0, 14.58, 13.42, 0, 0, 0, 2, 0, 0),)
2025-06-13 17:03:27,028 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 17:03:22
2025-06-13 17:03:27,113 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 17:03:27,117 [DEBUG][       Thread-261847][   transport.py][1871] : starting thread (client mode): 0x867fc4f0
2025-06-13 17:03:27,117 [DEBUG][       Thread-261847][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 17:03:27,137 [DEBUG][       Thread-261847][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 17:03:27,137 [ INFO][       Thread-261847][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 17:03:27,141 [DEBUG][       Thread-261847][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 17:03:27,141 [DEBUG][       Thread-261847][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 17:03:27,141 [DEBUG][       Thread-261847][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 17:03:27,141 [DEBUG][       Thread-261847][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:03:27,141 [DEBUG][       Thread-261847][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:03:27,141 [DEBUG][       Thread-261847][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:03:27,141 [DEBUG][       Thread-261847][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:03:27,141 [DEBUG][       Thread-261847][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 17:03:27,141 [DEBUG][       Thread-261847][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 17:03:27,141 [DEBUG][       Thread-261847][   transport.py][1871] : client lang: <none>
2025-06-13 17:03:27,141 [DEBUG][       Thread-261847][   transport.py][1871] : server lang: <none>
2025-06-13 17:03:27,141 [DEBUG][       Thread-261847][   transport.py][1871] : kex follows: False
2025-06-13 17:03:27,141 [DEBUG][       Thread-261847][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 17:03:27,141 [DEBUG][       Thread-261847][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 17:03:27,141 [DEBUG][       Thread-261847][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 17:03:27,141 [DEBUG][       Thread-261847][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 17:03:27,141 [DEBUG][       Thread-261847][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 17:03:27,141 [DEBUG][       Thread-261847][   transport.py][1871] : Compression: none
2025-06-13 17:03:27,141 [DEBUG][       Thread-261847][   transport.py][1871] : === End of kex handshake ===
2025-06-13 17:03:27,157 [DEBUG][       Thread-261847][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 17:03:27,157 [DEBUG][       Thread-261847][   transport.py][1871] : Switch to new keys ...
2025-06-13 17:03:27,157 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 17:03:27,157 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 17:03:27,158 [DEBUG][       Thread-261847][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 17:03:27,158 [DEBUG][       Thread-261847][   transport.py][1871] : userauth is OK
2025-06-13 17:03:27,182 [ INFO][       Thread-261847][   transport.py][1871] : Authentication (password) successful!
2025-06-13 17:03:27,182 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 17:03:27,856 [DEBUG][Thread-261849 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:03:27,972 [DEBUG][       Thread-261847][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 17:03:27,972 [DEBUG][       Thread-261847][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 17:03:28,020 [DEBUG][       Thread-261847][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 17:03:28,020 [DEBUG][       Thread-261847][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 17:03:28,023 [DEBUG][       Thread-261847][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 17:03:28,038 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 17:03:28,038 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 17:03:28,039 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 17:03:28,040 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 17:03:28,043 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 17:03:28,043 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 17:03:28,043 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 17:03:28,044 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 17:03:28,044 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.627018 -999.00  +13.20  15.54     36   -1.40 1 1 1 1 1   887    0 14.27 -4.40 ----- 17.6 15.5 49.6 21.1 15.4 -29.5 14.9 -30.0 15.3 -29.1 16.0 -28.5
2025-06-13 17:03:28,044 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 17:03:28,044 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 17:03:28,044 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.627018
2025-06-13 17:03:28,044 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 17:03:28,044 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 17:03:28,044 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 17:03:28,044 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 17:03:28,044 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 17:03:28,044 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T17:03:22', tmtdew=16.58, humidity=31.55, cloud=0.0, wind=14.58, temperature=13.42, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T15:02:54.355', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 17:03:28,045 [DEBUG][       Thread-261847][   transport.py][1871] : EOF in transport thread
2025-06-13 17:03:28,119 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 17:03:28,130 [DEBUG][       Thread-261851][   transport.py][1871] : starting thread (client mode): 0x863506a0
2025-06-13 17:03:28,130 [DEBUG][       Thread-261851][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 17:03:28,145 [DEBUG][       Thread-261851][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 17:03:28,145 [ INFO][       Thread-261851][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 17:03:28,155 [DEBUG][       Thread-261851][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 17:03:28,155 [DEBUG][       Thread-261851][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 17:03:28,155 [DEBUG][       Thread-261851][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 17:03:28,155 [DEBUG][       Thread-261851][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:03:28,155 [DEBUG][       Thread-261851][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:03:28,155 [DEBUG][       Thread-261851][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:03:28,155 [DEBUG][       Thread-261851][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:03:28,155 [DEBUG][       Thread-261851][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 17:03:28,155 [DEBUG][       Thread-261851][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 17:03:28,155 [DEBUG][       Thread-261851][   transport.py][1871] : client lang: <none>
2025-06-13 17:03:28,155 [DEBUG][       Thread-261851][   transport.py][1871] : server lang: <none>
2025-06-13 17:03:28,155 [DEBUG][       Thread-261851][   transport.py][1871] : kex follows: False
2025-06-13 17:03:28,155 [DEBUG][       Thread-261851][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 17:03:28,155 [DEBUG][       Thread-261851][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 17:03:28,155 [DEBUG][       Thread-261851][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 17:03:28,155 [DEBUG][       Thread-261851][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 17:03:28,155 [DEBUG][       Thread-261851][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 17:03:28,155 [DEBUG][       Thread-261851][   transport.py][1871] : Compression: none
2025-06-13 17:03:28,155 [DEBUG][       Thread-261851][   transport.py][1871] : === End of kex handshake ===
2025-06-13 17:03:28,216 [DEBUG][       Thread-261851][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 17:03:28,216 [DEBUG][       Thread-261851][   transport.py][1871] : Switch to new keys ...
2025-06-13 17:03:28,216 [DEBUG][       Thread-261851][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 17:03:28,216 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 17:03:28,216 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 17:03:28,274 [DEBUG][       Thread-261851][   transport.py][1871] : userauth is OK
2025-06-13 17:03:28,275 [DEBUG][       Thread-261851][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 17:03:28,275 [DEBUG][       Thread-261851][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 17:03:28,275 [DEBUG][       Thread-261851][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 17:03:28,275 [DEBUG][       Thread-261851][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 17:03:28,288 [ INFO][       Thread-261851][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 17:03:28,288 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 17:03:28,288 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 17:03:29,260 [DEBUG][       Thread-261851][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 17:03:29,260 [DEBUG][       Thread-261851][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 17:03:29,308 [DEBUG][       Thread-261851][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 17:03:29,308 [DEBUG][       Thread-261851][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 17:03:29,317 [DEBUG][       Thread-261851][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 17:03:29,327 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 17:03:29,327 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 17:03:29,336 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 17:03:29,345 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 17:03:29,346 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 17:03:29,346 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 17:03:29,354 [DEBUG][       Thread-261851][   transport.py][1871] : EOF in transport thread
2025-06-13 17:03:33,494 [DEBUG][Thread-261853 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:03:34,570 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:03:34,571 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:03:36,877 [DEBUG][Thread-261854 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:03:39,357 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 17:03:39,357 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 17:03:39,357 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 17:03:39,361 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 17:03:39,845 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 17, 3, 22), 16.58, 31.55, 0.0, 14.58, 13.42, 0, 0, 0, 2, 0, 0),)
2025-06-13 17:03:39,846 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 17:03:22
2025-06-13 17:03:39,928 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 17:03:39,932 [DEBUG][       Thread-261855][   transport.py][1871] : starting thread (client mode): 0x867ffd60
2025-06-13 17:03:39,932 [DEBUG][       Thread-261855][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 17:03:39,953 [DEBUG][       Thread-261855][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 17:03:39,953 [ INFO][       Thread-261855][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 17:03:39,954 [DEBUG][       Thread-261855][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 17:03:39,955 [DEBUG][       Thread-261855][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 17:03:39,955 [DEBUG][       Thread-261855][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 17:03:39,955 [DEBUG][       Thread-261855][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:03:39,955 [DEBUG][       Thread-261855][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:03:39,955 [DEBUG][       Thread-261855][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:03:39,955 [DEBUG][       Thread-261855][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:03:39,955 [DEBUG][       Thread-261855][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 17:03:39,955 [DEBUG][       Thread-261855][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 17:03:39,955 [DEBUG][       Thread-261855][   transport.py][1871] : client lang: <none>
2025-06-13 17:03:39,955 [DEBUG][       Thread-261855][   transport.py][1871] : server lang: <none>
2025-06-13 17:03:39,955 [DEBUG][       Thread-261855][   transport.py][1871] : kex follows: False
2025-06-13 17:03:39,955 [DEBUG][       Thread-261855][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 17:03:39,955 [DEBUG][       Thread-261855][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 17:03:39,955 [DEBUG][       Thread-261855][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 17:03:39,955 [DEBUG][       Thread-261855][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 17:03:39,955 [DEBUG][       Thread-261855][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 17:03:39,955 [DEBUG][       Thread-261855][   transport.py][1871] : Compression: none
2025-06-13 17:03:39,955 [DEBUG][       Thread-261855][   transport.py][1871] : === End of kex handshake ===
2025-06-13 17:03:39,965 [DEBUG][       Thread-261855][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 17:03:39,965 [DEBUG][       Thread-261855][   transport.py][1871] : Switch to new keys ...
2025-06-13 17:03:39,966 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 17:03:39,966 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 17:03:39,966 [DEBUG][       Thread-261855][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 17:03:39,967 [DEBUG][       Thread-261855][   transport.py][1871] : userauth is OK
2025-06-13 17:03:39,980 [ INFO][       Thread-261855][   transport.py][1871] : Authentication (password) successful!
2025-06-13 17:03:39,980 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 17:03:40,640 [DEBUG][       Thread-261855][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 17:03:40,640 [DEBUG][       Thread-261855][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 17:03:40,681 [DEBUG][       Thread-261855][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 17:03:40,681 [DEBUG][       Thread-261855][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 17:03:40,683 [DEBUG][       Thread-261855][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 17:03:40,696 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 17:03:40,697 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 17:03:40,699 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 17:03:40,703 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 17:03:40,713 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 17:03:40,715 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 17:03:40,715 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 17:03:40,716 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 17:03:40,716 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.627365 -999.00  +13.20  12.95     36   -1.20 1 1 1 1 1   887    0 14.16 -2.55 ----- 14.9 12.9 54.2 19.4 15.3 -29.5 14.9 -30.0 15.3 -29.2 16.0 -28.4
2025-06-13 17:03:40,716 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 17:03:40,716 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 17:03:40,716 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.627365
2025-06-13 17:03:40,717 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 17:03:40,717 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 17:03:40,717 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 17:03:40,717 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 17:03:40,717 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 17:03:40,718 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T17:03:22', tmtdew=16.58, humidity=31.55, cloud=0.0, wind=14.58, temperature=13.42, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T15:03:24.336', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 17:03:40,719 [DEBUG][       Thread-261855][   transport.py][1871] : EOF in transport thread
2025-06-13 17:03:40,801 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 17:03:40,813 [DEBUG][       Thread-261858][   transport.py][1871] : starting thread (client mode): 0x863c9f30
2025-06-13 17:03:40,813 [DEBUG][       Thread-261858][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 17:03:40,831 [DEBUG][       Thread-261858][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 17:03:40,832 [ INFO][       Thread-261858][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 17:03:40,839 [DEBUG][       Thread-261858][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 17:03:40,839 [DEBUG][       Thread-261858][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 17:03:40,839 [DEBUG][       Thread-261858][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 17:03:40,839 [DEBUG][       Thread-261858][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:03:40,839 [DEBUG][       Thread-261858][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:03:40,839 [DEBUG][       Thread-261858][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:03:40,840 [DEBUG][       Thread-261858][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:03:40,840 [DEBUG][       Thread-261858][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 17:03:40,840 [DEBUG][       Thread-261858][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 17:03:40,840 [DEBUG][       Thread-261858][   transport.py][1871] : client lang: <none>
2025-06-13 17:03:40,840 [DEBUG][       Thread-261858][   transport.py][1871] : server lang: <none>
2025-06-13 17:03:40,840 [DEBUG][       Thread-261858][   transport.py][1871] : kex follows: False
2025-06-13 17:03:40,840 [DEBUG][       Thread-261858][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 17:03:40,840 [DEBUG][       Thread-261858][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 17:03:40,840 [DEBUG][       Thread-261858][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 17:03:40,840 [DEBUG][       Thread-261858][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 17:03:40,840 [DEBUG][       Thread-261858][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 17:03:40,840 [DEBUG][       Thread-261858][   transport.py][1871] : Compression: none
2025-06-13 17:03:40,840 [DEBUG][       Thread-261858][   transport.py][1871] : === End of kex handshake ===
2025-06-13 17:03:40,907 [DEBUG][       Thread-261858][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 17:03:40,908 [DEBUG][       Thread-261858][   transport.py][1871] : Switch to new keys ...
2025-06-13 17:03:40,909 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 17:03:40,909 [DEBUG][       Thread-261858][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 17:03:40,910 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 17:03:40,965 [DEBUG][       Thread-261858][   transport.py][1871] : userauth is OK
2025-06-13 17:03:40,966 [DEBUG][       Thread-261858][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 17:03:40,966 [DEBUG][       Thread-261858][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 17:03:40,966 [DEBUG][       Thread-261858][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 17:03:40,966 [DEBUG][       Thread-261858][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 17:03:40,988 [ INFO][       Thread-261858][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 17:03:40,989 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 17:03:40,989 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 17:03:41,989 [DEBUG][       Thread-261858][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 17:03:41,990 [DEBUG][       Thread-261858][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 17:03:42,040 [DEBUG][       Thread-261858][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 17:03:42,040 [DEBUG][       Thread-261858][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 17:03:42,049 [DEBUG][       Thread-261858][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 17:03:42,058 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 17:03:42,058 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 17:03:42,067 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 17:03:42,076 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 17:03:42,077 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 17:03:42,077 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 17:03:42,085 [DEBUG][       Thread-261858][   transport.py][1871] : EOF in transport thread
2025-06-13 17:03:45,913 [DEBUG][Thread-261860 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:03:52,084 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 17:03:52,084 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 17:03:52,084 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 17:03:52,087 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 17:03:52,565 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 17, 3, 22), 16.58, 31.55, 0.0, 14.58, 13.42, 0, 0, 0, 2, 0, 0),)
2025-06-13 17:03:52,565 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 17:03:22
2025-06-13 17:03:52,647 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 17:03:52,651 [DEBUG][       Thread-261861][   transport.py][1871] : starting thread (client mode): 0x863cb310
2025-06-13 17:03:52,651 [DEBUG][       Thread-261861][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 17:03:52,671 [DEBUG][       Thread-261861][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 17:03:52,671 [ INFO][       Thread-261861][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 17:03:52,674 [DEBUG][       Thread-261861][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 17:03:52,674 [DEBUG][       Thread-261861][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 17:03:52,674 [DEBUG][       Thread-261861][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 17:03:52,674 [DEBUG][       Thread-261861][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:03:52,674 [DEBUG][       Thread-261861][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:03:52,674 [DEBUG][       Thread-261861][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:03:52,674 [DEBUG][       Thread-261861][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:03:52,674 [DEBUG][       Thread-261861][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 17:03:52,674 [DEBUG][       Thread-261861][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 17:03:52,674 [DEBUG][       Thread-261861][   transport.py][1871] : client lang: <none>
2025-06-13 17:03:52,674 [DEBUG][       Thread-261861][   transport.py][1871] : server lang: <none>
2025-06-13 17:03:52,674 [DEBUG][       Thread-261861][   transport.py][1871] : kex follows: False
2025-06-13 17:03:52,674 [DEBUG][       Thread-261861][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 17:03:52,675 [DEBUG][       Thread-261861][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 17:03:52,675 [DEBUG][       Thread-261861][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 17:03:52,675 [DEBUG][       Thread-261861][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 17:03:52,675 [DEBUG][       Thread-261861][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 17:03:52,675 [DEBUG][       Thread-261861][   transport.py][1871] : Compression: none
2025-06-13 17:03:52,675 [DEBUG][       Thread-261861][   transport.py][1871] : === End of kex handshake ===
2025-06-13 17:03:52,693 [DEBUG][       Thread-261861][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 17:03:52,693 [DEBUG][       Thread-261861][   transport.py][1871] : Switch to new keys ...
2025-06-13 17:03:52,694 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 17:03:52,694 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 17:03:52,695 [DEBUG][       Thread-261861][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 17:03:52,695 [DEBUG][       Thread-261861][   transport.py][1871] : userauth is OK
2025-06-13 17:03:52,719 [ INFO][       Thread-261861][   transport.py][1871] : Authentication (password) successful!
2025-06-13 17:03:52,720 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 17:03:53,381 [DEBUG][       Thread-261861][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 17:03:53,381 [DEBUG][       Thread-261861][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 17:03:53,425 [DEBUG][       Thread-261861][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 17:03:53,425 [DEBUG][       Thread-261861][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 17:03:53,429 [DEBUG][       Thread-261861][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 17:03:53,441 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 17:03:53,441 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 17:03:53,443 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 17:03:53,446 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 17:03:53,452 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 17:03:53,454 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 17:03:53,455 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 17:03:53,455 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 17:03:53,455 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.627365 -999.00  +13.20  12.95     36   -1.20 1 1 1 1 1   887    0 14.16 -2.55 ----- 14.9 12.9 54.2 19.4 15.3 -29.5 14.9 -30.0 15.3 -29.2 16.0 -28.4
2025-06-13 17:03:53,456 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 17:03:53,456 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 17:03:53,456 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.627365
2025-06-13 17:03:53,456 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 17:03:53,457 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 17:03:53,457 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 17:03:53,457 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 17:03:53,457 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 17:03:53,457 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T17:03:22', tmtdew=16.58, humidity=31.55, cloud=0.0, wind=14.58, temperature=13.42, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T15:03:24.336', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 17:03:53,458 [DEBUG][       Thread-261861][   transport.py][1871] : EOF in transport thread
2025-06-13 17:03:53,542 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 17:03:53,554 [DEBUG][       Thread-261864][   transport.py][1871] : starting thread (client mode): 0x863efac0
2025-06-13 17:03:53,554 [DEBUG][       Thread-261864][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 17:03:53,569 [DEBUG][       Thread-261864][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 17:03:53,569 [ INFO][       Thread-261864][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 17:03:53,576 [DEBUG][       Thread-261864][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 17:03:53,577 [DEBUG][       Thread-261864][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 17:03:53,577 [DEBUG][       Thread-261864][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 17:03:53,577 [DEBUG][       Thread-261864][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:03:53,577 [DEBUG][       Thread-261864][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:03:53,577 [DEBUG][       Thread-261864][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:03:53,577 [DEBUG][       Thread-261864][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:03:53,577 [DEBUG][       Thread-261864][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 17:03:53,577 [DEBUG][       Thread-261864][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 17:03:53,577 [DEBUG][       Thread-261864][   transport.py][1871] : client lang: <none>
2025-06-13 17:03:53,577 [DEBUG][       Thread-261864][   transport.py][1871] : server lang: <none>
2025-06-13 17:03:53,577 [DEBUG][       Thread-261864][   transport.py][1871] : kex follows: False
2025-06-13 17:03:53,577 [DEBUG][       Thread-261864][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 17:03:53,577 [DEBUG][       Thread-261864][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 17:03:53,577 [DEBUG][       Thread-261864][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 17:03:53,577 [DEBUG][       Thread-261864][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 17:03:53,577 [DEBUG][       Thread-261864][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 17:03:53,577 [DEBUG][       Thread-261864][   transport.py][1871] : Compression: none
2025-06-13 17:03:53,577 [DEBUG][       Thread-261864][   transport.py][1871] : === End of kex handshake ===
2025-06-13 17:03:53,640 [DEBUG][       Thread-261864][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 17:03:53,640 [DEBUG][       Thread-261864][   transport.py][1871] : Switch to new keys ...
2025-06-13 17:03:53,641 [DEBUG][       Thread-261864][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 17:03:53,641 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 17:03:53,642 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 17:03:53,695 [DEBUG][       Thread-261864][   transport.py][1871] : userauth is OK
2025-06-13 17:03:53,696 [DEBUG][       Thread-261864][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 17:03:53,696 [DEBUG][       Thread-261864][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 17:03:53,696 [DEBUG][       Thread-261864][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 17:03:53,696 [DEBUG][       Thread-261864][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 17:03:53,715 [ INFO][       Thread-261864][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 17:03:53,716 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 17:03:53,716 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 17:03:54,679 [DEBUG][       Thread-261864][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 17:03:54,680 [DEBUG][       Thread-261864][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 17:03:54,728 [DEBUG][       Thread-261864][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 17:03:54,729 [DEBUG][       Thread-261864][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 17:03:54,738 [DEBUG][       Thread-261864][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 17:03:54,747 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 17:03:54,748 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 17:03:54,757 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 17:03:54,766 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 17:03:54,767 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 17:03:54,767 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 17:03:54,775 [DEBUG][       Thread-261864][   transport.py][1871] : EOF in transport thread
2025-06-13 17:03:54,934 [DEBUG][Thread-261866 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:04:03,952 [DEBUG][Thread-261867 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:04:04,776 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 17:04:04,776 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 17:04:04,776 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 17:04:04,776 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 17:04:05,284 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 17, 3, 54), 16.62, 31.45, 0.0, 15.6, 13.41, 0, 0, 0, 2, 0, 0),)
2025-06-13 17:04:05,284 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 17:03:54
2025-06-13 17:04:05,370 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 17:04:05,374 [DEBUG][       Thread-261868][   transport.py][1871] : starting thread (client mode): 0x867feef0
2025-06-13 17:04:05,375 [DEBUG][       Thread-261868][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 17:04:05,396 [DEBUG][       Thread-261868][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 17:04:05,396 [ INFO][       Thread-261868][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 17:04:05,399 [DEBUG][       Thread-261868][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 17:04:05,399 [DEBUG][       Thread-261868][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 17:04:05,399 [DEBUG][       Thread-261868][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 17:04:05,399 [DEBUG][       Thread-261868][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:04:05,399 [DEBUG][       Thread-261868][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:04:05,399 [DEBUG][       Thread-261868][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:04:05,399 [DEBUG][       Thread-261868][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:04:05,399 [DEBUG][       Thread-261868][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 17:04:05,399 [DEBUG][       Thread-261868][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 17:04:05,399 [DEBUG][       Thread-261868][   transport.py][1871] : client lang: <none>
2025-06-13 17:04:05,399 [DEBUG][       Thread-261868][   transport.py][1871] : server lang: <none>
2025-06-13 17:04:05,399 [DEBUG][       Thread-261868][   transport.py][1871] : kex follows: False
2025-06-13 17:04:05,399 [DEBUG][       Thread-261868][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 17:04:05,399 [DEBUG][       Thread-261868][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 17:04:05,399 [DEBUG][       Thread-261868][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 17:04:05,399 [DEBUG][       Thread-261868][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 17:04:05,399 [DEBUG][       Thread-261868][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 17:04:05,399 [DEBUG][       Thread-261868][   transport.py][1871] : Compression: none
2025-06-13 17:04:05,399 [DEBUG][       Thread-261868][   transport.py][1871] : === End of kex handshake ===
2025-06-13 17:04:05,414 [DEBUG][       Thread-261868][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 17:04:05,414 [DEBUG][       Thread-261868][   transport.py][1871] : Switch to new keys ...
2025-06-13 17:04:05,414 [DEBUG][       Thread-261868][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 17:04:05,414 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 17:04:05,414 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 17:04:05,415 [DEBUG][       Thread-261868][   transport.py][1871] : userauth is OK
2025-06-13 17:04:05,427 [ INFO][       Thread-261868][   transport.py][1871] : Authentication (password) successful!
2025-06-13 17:04:05,427 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 17:04:06,064 [DEBUG][       Thread-261868][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 17:04:06,064 [DEBUG][       Thread-261868][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 17:04:06,104 [DEBUG][       Thread-261868][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 17:04:06,105 [DEBUG][       Thread-261868][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 17:04:06,107 [DEBUG][       Thread-261868][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 17:04:06,120 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 17:04:06,120 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 17:04:06,121 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 17:04:06,122 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 17:04:06,126 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 17:04:06,127 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 17:04:06,127 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 17:04:06,127 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 17:04:06,127 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.627365 -999.00  +13.20  12.95     36   -1.20 1 1 1 1 1   887    0 14.16 -2.55 ----- 14.9 12.9 54.2 19.4 15.3 -29.5 14.9 -30.0 15.3 -29.2 16.0 -28.4
2025-06-13 17:04:06,127 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 17:04:06,127 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 17:04:06,127 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.627365
2025-06-13 17:04:06,127 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 17:04:06,127 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 17:04:06,127 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 17:04:06,127 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 17:04:06,127 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 17:04:06,128 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T17:03:54', tmtdew=16.62, humidity=31.45, cloud=0.0, wind=15.6, temperature=13.41, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T15:03:24.336', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 17:04:06,128 [DEBUG][       Thread-261868][   transport.py][1871] : EOF in transport thread
2025-06-13 17:04:06,201 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 17:04:06,211 [DEBUG][       Thread-261871][   transport.py][1871] : starting thread (client mode): 0x863a7f40
2025-06-13 17:04:06,211 [DEBUG][       Thread-261871][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 17:04:06,226 [DEBUG][       Thread-261871][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 17:04:06,226 [ INFO][       Thread-261871][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 17:04:06,234 [DEBUG][       Thread-261871][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 17:04:06,234 [DEBUG][       Thread-261871][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 17:04:06,234 [DEBUG][       Thread-261871][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 17:04:06,234 [DEBUG][       Thread-261871][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:04:06,234 [DEBUG][       Thread-261871][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:04:06,234 [DEBUG][       Thread-261871][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:04:06,234 [DEBUG][       Thread-261871][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:04:06,234 [DEBUG][       Thread-261871][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 17:04:06,234 [DEBUG][       Thread-261871][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 17:04:06,234 [DEBUG][       Thread-261871][   transport.py][1871] : client lang: <none>
2025-06-13 17:04:06,234 [DEBUG][       Thread-261871][   transport.py][1871] : server lang: <none>
2025-06-13 17:04:06,234 [DEBUG][       Thread-261871][   transport.py][1871] : kex follows: False
2025-06-13 17:04:06,234 [DEBUG][       Thread-261871][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 17:04:06,234 [DEBUG][       Thread-261871][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 17:04:06,234 [DEBUG][       Thread-261871][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 17:04:06,234 [DEBUG][       Thread-261871][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 17:04:06,234 [DEBUG][       Thread-261871][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 17:04:06,234 [DEBUG][       Thread-261871][   transport.py][1871] : Compression: none
2025-06-13 17:04:06,234 [DEBUG][       Thread-261871][   transport.py][1871] : === End of kex handshake ===
2025-06-13 17:04:06,289 [DEBUG][       Thread-261871][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 17:04:06,289 [DEBUG][       Thread-261871][   transport.py][1871] : Switch to new keys ...
2025-06-13 17:04:06,289 [DEBUG][       Thread-261871][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 17:04:06,289 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 17:04:06,290 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 17:04:06,346 [DEBUG][       Thread-261871][   transport.py][1871] : userauth is OK
2025-06-13 17:04:06,347 [DEBUG][       Thread-261871][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 17:04:06,347 [DEBUG][       Thread-261871][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 17:04:06,347 [DEBUG][       Thread-261871][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 17:04:06,347 [DEBUG][       Thread-261871][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 17:04:06,361 [ INFO][       Thread-261871][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 17:04:06,361 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 17:04:06,361 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 17:04:07,415 [DEBUG][       Thread-261871][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 17:04:07,415 [DEBUG][       Thread-261871][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 17:04:07,467 [DEBUG][       Thread-261871][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 17:04:07,467 [DEBUG][       Thread-261871][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 17:04:07,477 [DEBUG][       Thread-261871][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 17:04:07,486 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 17:04:07,486 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 17:04:07,495 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 17:04:07,504 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 17:04:07,505 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 17:04:07,505 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 17:04:07,513 [DEBUG][       Thread-261871][   transport.py][1871] : EOF in transport thread
2025-06-13 17:04:12,974 [DEBUG][Thread-261873 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:04:17,508 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 17:04:17,508 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 17:04:17,509 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 17:04:17,511 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 17:04:17,998 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 17, 3, 54), 16.62, 31.45, 0.0, 15.6, 13.41, 0, 0, 0, 2, 0, 0),)
2025-06-13 17:04:17,998 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 17:03:54
2025-06-13 17:04:18,080 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 17:04:18,085 [DEBUG][       Thread-261874][   transport.py][1871] : starting thread (client mode): 0x863cabc0
2025-06-13 17:04:18,085 [DEBUG][       Thread-261874][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 17:04:18,105 [DEBUG][       Thread-261874][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 17:04:18,105 [ INFO][       Thread-261874][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 17:04:18,109 [DEBUG][       Thread-261874][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 17:04:18,109 [DEBUG][       Thread-261874][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 17:04:18,109 [DEBUG][       Thread-261874][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 17:04:18,109 [DEBUG][       Thread-261874][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:04:18,109 [DEBUG][       Thread-261874][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:04:18,109 [DEBUG][       Thread-261874][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:04:18,109 [DEBUG][       Thread-261874][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:04:18,109 [DEBUG][       Thread-261874][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 17:04:18,109 [DEBUG][       Thread-261874][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 17:04:18,109 [DEBUG][       Thread-261874][   transport.py][1871] : client lang: <none>
2025-06-13 17:04:18,109 [DEBUG][       Thread-261874][   transport.py][1871] : server lang: <none>
2025-06-13 17:04:18,109 [DEBUG][       Thread-261874][   transport.py][1871] : kex follows: False
2025-06-13 17:04:18,109 [DEBUG][       Thread-261874][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 17:04:18,109 [DEBUG][       Thread-261874][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 17:04:18,110 [DEBUG][       Thread-261874][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 17:04:18,110 [DEBUG][       Thread-261874][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 17:04:18,110 [DEBUG][       Thread-261874][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 17:04:18,110 [DEBUG][       Thread-261874][   transport.py][1871] : Compression: none
2025-06-13 17:04:18,110 [DEBUG][       Thread-261874][   transport.py][1871] : === End of kex handshake ===
2025-06-13 17:04:18,126 [DEBUG][       Thread-261874][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 17:04:18,126 [DEBUG][       Thread-261874][   transport.py][1871] : Switch to new keys ...
2025-06-13 17:04:18,127 [DEBUG][       Thread-261874][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 17:04:18,127 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 17:04:18,127 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 17:04:18,128 [DEBUG][       Thread-261874][   transport.py][1871] : userauth is OK
2025-06-13 17:04:18,141 [ INFO][       Thread-261874][   transport.py][1871] : Authentication (password) successful!
2025-06-13 17:04:18,142 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 17:04:18,727 [DEBUG][       Thread-261874][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 17:04:18,727 [DEBUG][       Thread-261874][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 17:04:18,769 [DEBUG][       Thread-261874][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 17:04:18,769 [DEBUG][       Thread-261874][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 17:04:18,772 [DEBUG][       Thread-261874][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 17:04:18,783 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 17:04:18,784 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 17:04:18,786 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 17:04:18,788 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 17:04:18,793 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 17:04:18,795 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 17:04:18,795 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 17:04:18,796 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 17:04:18,796 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.627712 -999.00  +13.20  18.60     36   -1.30 1 1 1 1 1   887    0 14.14 -1.40 ----- 16.6 18.6 49.7 20.8 15.4 -29.7 14.9 -29.9 15.3 -29.0 15.9 -28.4
2025-06-13 17:04:18,797 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 17:04:18,797 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 17:04:18,797 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.627712
2025-06-13 17:04:18,797 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 17:04:18,798 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 17:04:18,798 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 17:04:18,798 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 17:04:18,798 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 17:04:18,798 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T17:03:54', tmtdew=16.62, humidity=31.45, cloud=0.0, wind=15.6, temperature=13.41, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T15:03:54.317', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 17:04:18,798 [DEBUG][       Thread-261874][   transport.py][1871] : EOF in transport thread
2025-06-13 17:04:18,872 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 17:04:18,884 [DEBUG][       Thread-261877][   transport.py][1871] : starting thread (client mode): 0x863bdf90
2025-06-13 17:04:18,884 [DEBUG][       Thread-261877][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 17:04:18,899 [DEBUG][       Thread-261877][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 17:04:18,899 [ INFO][       Thread-261877][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 17:04:18,907 [DEBUG][       Thread-261877][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 17:04:18,907 [DEBUG][       Thread-261877][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 17:04:18,907 [DEBUG][       Thread-261877][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 17:04:18,907 [DEBUG][       Thread-261877][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:04:18,907 [DEBUG][       Thread-261877][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:04:18,907 [DEBUG][       Thread-261877][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:04:18,907 [DEBUG][       Thread-261877][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:04:18,907 [DEBUG][       Thread-261877][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 17:04:18,908 [DEBUG][       Thread-261877][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 17:04:18,908 [DEBUG][       Thread-261877][   transport.py][1871] : client lang: <none>
2025-06-13 17:04:18,908 [DEBUG][       Thread-261877][   transport.py][1871] : server lang: <none>
2025-06-13 17:04:18,908 [DEBUG][       Thread-261877][   transport.py][1871] : kex follows: False
2025-06-13 17:04:18,908 [DEBUG][       Thread-261877][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 17:04:18,908 [DEBUG][       Thread-261877][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 17:04:18,908 [DEBUG][       Thread-261877][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 17:04:18,908 [DEBUG][       Thread-261877][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 17:04:18,908 [DEBUG][       Thread-261877][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 17:04:18,908 [DEBUG][       Thread-261877][   transport.py][1871] : Compression: none
2025-06-13 17:04:18,908 [DEBUG][       Thread-261877][   transport.py][1871] : === End of kex handshake ===
2025-06-13 17:04:18,971 [DEBUG][       Thread-261877][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 17:04:18,972 [DEBUG][       Thread-261877][   transport.py][1871] : Switch to new keys ...
2025-06-13 17:04:18,972 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 17:04:18,973 [DEBUG][       Thread-261877][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 17:04:18,974 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 17:04:19,027 [DEBUG][       Thread-261877][   transport.py][1871] : userauth is OK
2025-06-13 17:04:19,027 [DEBUG][       Thread-261877][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 17:04:19,027 [DEBUG][       Thread-261877][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 17:04:19,027 [DEBUG][       Thread-261877][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 17:04:19,028 [DEBUG][       Thread-261877][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 17:04:19,046 [ INFO][       Thread-261877][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 17:04:19,047 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 17:04:19,047 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 17:04:20,017 [DEBUG][       Thread-261877][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 17:04:20,017 [DEBUG][       Thread-261877][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 17:04:20,073 [DEBUG][       Thread-261877][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 17:04:20,073 [DEBUG][       Thread-261877][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 17:04:20,083 [DEBUG][       Thread-261877][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 17:04:20,092 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 17:04:20,092 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 17:04:20,100 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 17:04:20,109 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 17:04:20,109 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 17:04:20,109 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 17:04:20,117 [DEBUG][       Thread-261877][   transport.py][1871] : EOF in transport thread
2025-06-13 17:04:22,010 [DEBUG][Thread-261879 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:04:22,962 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:04:22,963 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:04:25,018 [DEBUG][Thread-261880 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:04:30,120 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 17:04:30,120 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 17:04:30,120 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 17:04:30,123 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 17:04:30,603 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 17, 4, 26), 16.57, 31.67, 0.0, 13.75, 13.39, 0, 0, 0, 2, 0, 0),)
2025-06-13 17:04:30,603 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 17:04:26
2025-06-13 17:04:30,685 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 17:04:30,689 [DEBUG][       Thread-261881][   transport.py][1871] : starting thread (client mode): 0x86350550
2025-06-13 17:04:30,689 [DEBUG][       Thread-261881][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 17:04:30,710 [DEBUG][       Thread-261881][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 17:04:30,710 [ INFO][       Thread-261881][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 17:04:30,713 [DEBUG][       Thread-261881][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 17:04:30,714 [DEBUG][       Thread-261881][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 17:04:30,714 [DEBUG][       Thread-261881][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 17:04:30,714 [DEBUG][       Thread-261881][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:04:30,714 [DEBUG][       Thread-261881][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:04:30,714 [DEBUG][       Thread-261881][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:04:30,714 [DEBUG][       Thread-261881][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:04:30,714 [DEBUG][       Thread-261881][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 17:04:30,714 [DEBUG][       Thread-261881][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 17:04:30,714 [DEBUG][       Thread-261881][   transport.py][1871] : client lang: <none>
2025-06-13 17:04:30,714 [DEBUG][       Thread-261881][   transport.py][1871] : server lang: <none>
2025-06-13 17:04:30,714 [DEBUG][       Thread-261881][   transport.py][1871] : kex follows: False
2025-06-13 17:04:30,714 [DEBUG][       Thread-261881][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 17:04:30,714 [DEBUG][       Thread-261881][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 17:04:30,714 [DEBUG][       Thread-261881][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 17:04:30,714 [DEBUG][       Thread-261881][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 17:04:30,714 [DEBUG][       Thread-261881][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 17:04:30,714 [DEBUG][       Thread-261881][   transport.py][1871] : Compression: none
2025-06-13 17:04:30,714 [DEBUG][       Thread-261881][   transport.py][1871] : === End of kex handshake ===
2025-06-13 17:04:30,731 [DEBUG][       Thread-261881][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 17:04:30,732 [DEBUG][       Thread-261881][   transport.py][1871] : Switch to new keys ...
2025-06-13 17:04:30,732 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 17:04:30,732 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 17:04:30,733 [DEBUG][       Thread-261881][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 17:04:30,734 [DEBUG][       Thread-261881][   transport.py][1871] : userauth is OK
2025-06-13 17:04:30,747 [ INFO][       Thread-261881][   transport.py][1871] : Authentication (password) successful!
2025-06-13 17:04:30,748 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 17:04:31,031 [DEBUG][Thread-261883 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:04:31,360 [DEBUG][       Thread-261881][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 17:04:31,360 [DEBUG][       Thread-261881][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 17:04:31,401 [DEBUG][       Thread-261881][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 17:04:31,401 [DEBUG][       Thread-261881][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 17:04:31,405 [DEBUG][       Thread-261881][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 17:04:31,417 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 17:04:31,417 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 17:04:31,419 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 17:04:31,421 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 17:04:31,427 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 17:04:31,429 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 17:04:31,429 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 17:04:31,430 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 17:04:31,430 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.627712 -999.00  +13.20  18.60     36   -1.30 1 1 1 1 1   887    0 14.14 -1.40 ----- 16.6 18.6 49.7 20.8 15.4 -29.7 14.9 -29.9 15.3 -29.0 15.9 -28.4
2025-06-13 17:04:31,430 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 17:04:31,430 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 17:04:31,430 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.627712
2025-06-13 17:04:31,431 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 17:04:31,431 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 17:04:31,432 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 17:04:31,432 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 17:04:31,432 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 17:04:31,432 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T17:04:26', tmtdew=16.57, humidity=31.67, cloud=0.0, wind=13.75, temperature=13.39, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T15:03:54.317', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 17:04:31,433 [DEBUG][       Thread-261881][   transport.py][1871] : EOF in transport thread
2025-06-13 17:04:31,515 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 17:04:31,525 [DEBUG][       Thread-261885][   transport.py][1871] : starting thread (client mode): 0x86391d20
2025-06-13 17:04:31,525 [DEBUG][       Thread-261885][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 17:04:31,541 [DEBUG][       Thread-261885][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 17:04:31,541 [ INFO][       Thread-261885][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 17:04:31,551 [DEBUG][       Thread-261885][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 17:04:31,551 [DEBUG][       Thread-261885][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 17:04:31,551 [DEBUG][       Thread-261885][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 17:04:31,551 [DEBUG][       Thread-261885][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:04:31,551 [DEBUG][       Thread-261885][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:04:31,551 [DEBUG][       Thread-261885][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:04:31,551 [DEBUG][       Thread-261885][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:04:31,551 [DEBUG][       Thread-261885][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 17:04:31,551 [DEBUG][       Thread-261885][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 17:04:31,551 [DEBUG][       Thread-261885][   transport.py][1871] : client lang: <none>
2025-06-13 17:04:31,551 [DEBUG][       Thread-261885][   transport.py][1871] : server lang: <none>
2025-06-13 17:04:31,551 [DEBUG][       Thread-261885][   transport.py][1871] : kex follows: False
2025-06-13 17:04:31,552 [DEBUG][       Thread-261885][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 17:04:31,552 [DEBUG][       Thread-261885][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 17:04:31,552 [DEBUG][       Thread-261885][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 17:04:31,552 [DEBUG][       Thread-261885][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 17:04:31,552 [DEBUG][       Thread-261885][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 17:04:31,552 [DEBUG][       Thread-261885][   transport.py][1871] : Compression: none
2025-06-13 17:04:31,552 [DEBUG][       Thread-261885][   transport.py][1871] : === End of kex handshake ===
2025-06-13 17:04:31,610 [DEBUG][       Thread-261885][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 17:04:31,610 [DEBUG][       Thread-261885][   transport.py][1871] : Switch to new keys ...
2025-06-13 17:04:31,611 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 17:04:31,612 [DEBUG][       Thread-261885][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 17:04:31,612 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 17:04:31,667 [DEBUG][       Thread-261885][   transport.py][1871] : userauth is OK
2025-06-13 17:04:31,668 [DEBUG][       Thread-261885][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 17:04:31,668 [DEBUG][       Thread-261885][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 17:04:31,668 [DEBUG][       Thread-261885][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 17:04:31,668 [DEBUG][       Thread-261885][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 17:04:31,686 [ INFO][       Thread-261885][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 17:04:31,687 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 17:04:31,687 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 17:04:32,673 [DEBUG][       Thread-261885][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 17:04:32,673 [DEBUG][       Thread-261885][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 17:04:32,724 [DEBUG][       Thread-261885][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 17:04:32,724 [DEBUG][       Thread-261885][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 17:04:32,738 [DEBUG][       Thread-261885][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 17:04:32,747 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 17:04:32,747 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 17:04:32,756 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 17:04:32,766 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 17:04:32,766 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 17:04:32,766 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 17:04:32,774 [DEBUG][       Thread-261885][   transport.py][1871] : EOF in transport thread
2025-06-13 17:04:34,658 [DEBUG][Thread-261887 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:04:35,742 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:04:35,743 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:04:40,053 [DEBUG][Thread-261888 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:04:42,776 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 17:04:42,776 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 17:04:42,776 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 17:04:42,777 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 17:04:43,253 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 17, 4, 26), 16.57, 31.67, 0.0, 13.75, 13.39, 0, 0, 0, 2, 0, 0),)
2025-06-13 17:04:43,253 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 17:04:26
2025-06-13 17:04:43,339 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 17:04:43,344 [DEBUG][       Thread-261889][   transport.py][1871] : starting thread (client mode): 0x86368dc0
2025-06-13 17:04:43,344 [DEBUG][       Thread-261889][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 17:04:43,364 [DEBUG][       Thread-261889][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 17:04:43,364 [ INFO][       Thread-261889][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 17:04:43,368 [DEBUG][       Thread-261889][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 17:04:43,368 [DEBUG][       Thread-261889][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 17:04:43,368 [DEBUG][       Thread-261889][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 17:04:43,368 [DEBUG][       Thread-261889][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:04:43,368 [DEBUG][       Thread-261889][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:04:43,368 [DEBUG][       Thread-261889][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:04:43,368 [DEBUG][       Thread-261889][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:04:43,368 [DEBUG][       Thread-261889][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 17:04:43,368 [DEBUG][       Thread-261889][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 17:04:43,368 [DEBUG][       Thread-261889][   transport.py][1871] : client lang: <none>
2025-06-13 17:04:43,368 [DEBUG][       Thread-261889][   transport.py][1871] : server lang: <none>
2025-06-13 17:04:43,368 [DEBUG][       Thread-261889][   transport.py][1871] : kex follows: False
2025-06-13 17:04:43,368 [DEBUG][       Thread-261889][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 17:04:43,368 [DEBUG][       Thread-261889][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 17:04:43,368 [DEBUG][       Thread-261889][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 17:04:43,368 [DEBUG][       Thread-261889][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 17:04:43,368 [DEBUG][       Thread-261889][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 17:04:43,368 [DEBUG][       Thread-261889][   transport.py][1871] : Compression: none
2025-06-13 17:04:43,368 [DEBUG][       Thread-261889][   transport.py][1871] : === End of kex handshake ===
2025-06-13 17:04:43,382 [DEBUG][       Thread-261889][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 17:04:43,382 [DEBUG][       Thread-261889][   transport.py][1871] : Switch to new keys ...
2025-06-13 17:04:43,382 [DEBUG][       Thread-261889][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 17:04:43,382 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 17:04:43,383 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 17:04:43,383 [DEBUG][       Thread-261889][   transport.py][1871] : userauth is OK
2025-06-13 17:04:43,396 [ INFO][       Thread-261889][   transport.py][1871] : Authentication (password) successful!
2025-06-13 17:04:43,396 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 17:04:44,020 [DEBUG][       Thread-261889][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 17:04:44,020 [DEBUG][       Thread-261889][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 17:04:44,060 [DEBUG][       Thread-261889][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 17:04:44,060 [DEBUG][       Thread-261889][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 17:04:44,062 [DEBUG][       Thread-261889][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 17:04:44,070 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 17:04:44,070 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 17:04:44,071 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 17:04:44,072 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 17:04:44,074 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 17:04:44,075 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 17:04:44,075 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 17:04:44,075 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 17:04:44,075 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.627712 -999.00  +13.20  18.60     36   -1.30 1 1 1 1 1   887    0 14.14 -1.40 ----- 16.6 18.6 49.7 20.8 15.4 -29.7 14.9 -29.9 15.3 -29.0 15.9 -28.4
2025-06-13 17:04:44,075 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 17:04:44,075 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 17:04:44,075 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.627712
2025-06-13 17:04:44,075 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 17:04:44,076 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 17:04:44,076 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 17:04:44,076 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 17:04:44,076 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 17:04:44,076 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T17:04:26', tmtdew=16.57, humidity=31.67, cloud=0.0, wind=13.75, temperature=13.39, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T15:03:54.317', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 17:04:44,076 [DEBUG][       Thread-261889][   transport.py][1871] : EOF in transport thread
2025-06-13 17:04:44,150 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 17:04:44,161 [DEBUG][       Thread-261892][   transport.py][1871] : starting thread (client mode): 0x86893df0
2025-06-13 17:04:44,161 [DEBUG][       Thread-261892][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 17:04:44,176 [DEBUG][       Thread-261892][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 17:04:44,176 [ INFO][       Thread-261892][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 17:04:44,184 [DEBUG][       Thread-261892][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 17:04:44,184 [DEBUG][       Thread-261892][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 17:04:44,184 [DEBUG][       Thread-261892][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 17:04:44,184 [DEBUG][       Thread-261892][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:04:44,184 [DEBUG][       Thread-261892][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:04:44,184 [DEBUG][       Thread-261892][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:04:44,184 [DEBUG][       Thread-261892][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:04:44,184 [DEBUG][       Thread-261892][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 17:04:44,184 [DEBUG][       Thread-261892][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 17:04:44,184 [DEBUG][       Thread-261892][   transport.py][1871] : client lang: <none>
2025-06-13 17:04:44,184 [DEBUG][       Thread-261892][   transport.py][1871] : server lang: <none>
2025-06-13 17:04:44,184 [DEBUG][       Thread-261892][   transport.py][1871] : kex follows: False
2025-06-13 17:04:44,184 [DEBUG][       Thread-261892][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 17:04:44,184 [DEBUG][       Thread-261892][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 17:04:44,184 [DEBUG][       Thread-261892][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 17:04:44,184 [DEBUG][       Thread-261892][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 17:04:44,184 [DEBUG][       Thread-261892][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 17:04:44,184 [DEBUG][       Thread-261892][   transport.py][1871] : Compression: none
2025-06-13 17:04:44,184 [DEBUG][       Thread-261892][   transport.py][1871] : === End of kex handshake ===
2025-06-13 17:04:44,242 [DEBUG][       Thread-261892][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 17:04:44,242 [DEBUG][       Thread-261892][   transport.py][1871] : Switch to new keys ...
2025-06-13 17:04:44,242 [DEBUG][       Thread-261892][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 17:04:44,242 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 17:04:44,242 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 17:04:44,300 [DEBUG][       Thread-261892][   transport.py][1871] : userauth is OK
2025-06-13 17:04:44,301 [DEBUG][       Thread-261892][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 17:04:44,301 [DEBUG][       Thread-261892][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 17:04:44,301 [DEBUG][       Thread-261892][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 17:04:44,301 [DEBUG][       Thread-261892][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 17:04:44,318 [ INFO][       Thread-261892][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 17:04:44,318 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 17:04:44,318 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 17:04:45,313 [DEBUG][       Thread-261892][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 17:04:45,313 [DEBUG][       Thread-261892][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 17:04:45,363 [DEBUG][       Thread-261892][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 17:04:45,363 [DEBUG][       Thread-261892][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 17:04:45,378 [DEBUG][       Thread-261892][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 17:04:45,388 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 17:04:45,388 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 17:04:45,396 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 17:04:45,404 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 17:04:45,404 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 17:04:45,404 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 17:04:45,419 [DEBUG][       Thread-261892][   transport.py][1871] : EOF in transport thread
2025-06-13 17:04:49,095 [DEBUG][Thread-261894 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:04:55,412 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 17:04:55,412 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 17:04:55,412 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 17:04:55,415 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 17:04:55,883 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 17, 4, 26), 16.57, 31.67, 0.0, 13.75, 13.39, 0, 0, 0, 2, 0, 0),)
2025-06-13 17:04:55,883 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 17:04:26
2025-06-13 17:04:55,964 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 17:04:55,968 [DEBUG][       Thread-261895][   transport.py][1871] : starting thread (client mode): 0x8636b1c0
2025-06-13 17:04:55,968 [DEBUG][       Thread-261895][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 17:04:55,989 [DEBUG][       Thread-261895][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 17:04:55,989 [ INFO][       Thread-261895][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 17:04:55,993 [DEBUG][       Thread-261895][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 17:04:55,993 [DEBUG][       Thread-261895][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 17:04:55,993 [DEBUG][       Thread-261895][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 17:04:55,993 [DEBUG][       Thread-261895][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:04:55,993 [DEBUG][       Thread-261895][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:04:55,993 [DEBUG][       Thread-261895][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:04:55,993 [DEBUG][       Thread-261895][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:04:55,993 [DEBUG][       Thread-261895][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 17:04:55,993 [DEBUG][       Thread-261895][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 17:04:55,994 [DEBUG][       Thread-261895][   transport.py][1871] : client lang: <none>
2025-06-13 17:04:55,994 [DEBUG][       Thread-261895][   transport.py][1871] : server lang: <none>
2025-06-13 17:04:55,994 [DEBUG][       Thread-261895][   transport.py][1871] : kex follows: False
2025-06-13 17:04:55,994 [DEBUG][       Thread-261895][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 17:04:55,994 [DEBUG][       Thread-261895][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 17:04:55,994 [DEBUG][       Thread-261895][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 17:04:55,994 [DEBUG][       Thread-261895][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 17:04:55,994 [DEBUG][       Thread-261895][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 17:04:55,994 [DEBUG][       Thread-261895][   transport.py][1871] : Compression: none
2025-06-13 17:04:55,994 [DEBUG][       Thread-261895][   transport.py][1871] : === End of kex handshake ===
2025-06-13 17:04:56,009 [DEBUG][       Thread-261895][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 17:04:56,010 [DEBUG][       Thread-261895][   transport.py][1871] : Switch to new keys ...
2025-06-13 17:04:56,010 [DEBUG][       Thread-261895][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 17:04:56,010 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 17:04:56,011 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 17:04:56,012 [DEBUG][       Thread-261895][   transport.py][1871] : userauth is OK
2025-06-13 17:04:56,026 [ INFO][       Thread-261895][   transport.py][1871] : Authentication (password) successful!
2025-06-13 17:04:56,026 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 17:04:56,667 [DEBUG][       Thread-261895][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 17:04:56,667 [DEBUG][       Thread-261895][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 17:04:56,709 [DEBUG][       Thread-261895][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 17:04:56,709 [DEBUG][       Thread-261895][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 17:04:56,713 [DEBUG][       Thread-261895][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 17:04:56,726 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 17:04:56,727 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 17:04:56,729 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 17:04:56,730 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 17:04:56,746 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 17:04:56,748 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 17:04:56,748 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 17:04:56,749 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 17:04:56,749 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.628059 -999.00  +13.20  16.30     35   -1.50 1 1 1 1 1   887    0 14.24 -0.43 ----- 17.4 16.3 50.4 19.2 15.3 -29.9 14.8 -30.0 15.3 -29.0 16.0 -28.4
2025-06-13 17:04:56,749 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 17:04:56,749 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 17:04:56,749 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.628059
2025-06-13 17:04:56,749 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 17:04:56,750 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 17:04:56,750 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 17:04:56,750 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 17:04:56,750 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 17:04:56,750 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T17:04:26', tmtdew=16.57, humidity=31.67, cloud=0.0, wind=13.75, temperature=13.39, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T15:04:24.298', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 17:04:56,751 [DEBUG][       Thread-261895][   transport.py][1871] : EOF in transport thread
2025-06-13 17:04:56,842 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 17:04:56,851 [DEBUG][       Thread-261898][   transport.py][1871] : starting thread (client mode): 0x867b7640
2025-06-13 17:04:56,851 [DEBUG][       Thread-261898][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 17:04:56,866 [DEBUG][       Thread-261898][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 17:04:56,866 [ INFO][       Thread-261898][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 17:04:56,874 [DEBUG][       Thread-261898][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 17:04:56,874 [DEBUG][       Thread-261898][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 17:04:56,874 [DEBUG][       Thread-261898][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 17:04:56,874 [DEBUG][       Thread-261898][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:04:56,874 [DEBUG][       Thread-261898][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:04:56,874 [DEBUG][       Thread-261898][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:04:56,874 [DEBUG][       Thread-261898][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:04:56,874 [DEBUG][       Thread-261898][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 17:04:56,874 [DEBUG][       Thread-261898][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 17:04:56,874 [DEBUG][       Thread-261898][   transport.py][1871] : client lang: <none>
2025-06-13 17:04:56,874 [DEBUG][       Thread-261898][   transport.py][1871] : server lang: <none>
2025-06-13 17:04:56,874 [DEBUG][       Thread-261898][   transport.py][1871] : kex follows: False
2025-06-13 17:04:56,875 [DEBUG][       Thread-261898][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 17:04:56,875 [DEBUG][       Thread-261898][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 17:04:56,875 [DEBUG][       Thread-261898][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 17:04:56,875 [DEBUG][       Thread-261898][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 17:04:56,875 [DEBUG][       Thread-261898][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 17:04:56,875 [DEBUG][       Thread-261898][   transport.py][1871] : Compression: none
2025-06-13 17:04:56,875 [DEBUG][       Thread-261898][   transport.py][1871] : === End of kex handshake ===
2025-06-13 17:04:56,931 [DEBUG][       Thread-261898][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 17:04:56,932 [DEBUG][       Thread-261898][   transport.py][1871] : Switch to new keys ...
2025-06-13 17:04:56,932 [DEBUG][       Thread-261898][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 17:04:56,933 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 17:04:56,933 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 17:04:56,998 [DEBUG][       Thread-261898][   transport.py][1871] : userauth is OK
2025-06-13 17:04:56,998 [DEBUG][       Thread-261898][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 17:04:56,998 [DEBUG][       Thread-261898][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 17:04:56,998 [DEBUG][       Thread-261898][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 17:04:56,998 [DEBUG][       Thread-261898][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 17:04:57,016 [ INFO][       Thread-261898][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 17:04:57,017 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 17:04:57,017 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 17:04:57,998 [DEBUG][       Thread-261898][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 17:04:57,998 [DEBUG][       Thread-261898][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 17:04:58,049 [DEBUG][       Thread-261898][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 17:04:58,050 [DEBUG][       Thread-261898][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 17:04:58,059 [DEBUG][       Thread-261898][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 17:04:58,068 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 17:04:58,068 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 17:04:58,077 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 17:04:58,086 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 17:04:58,086 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 17:04:58,087 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 17:04:58,095 [DEBUG][       Thread-261898][   transport.py][1871] : EOF in transport thread
2025-06-13 17:04:58,117 [DEBUG][Thread-261900 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:05:07,137 [DEBUG][Thread-261901 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:05:08,097 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 17:05:08,098 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 17:05:08,098 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 17:05:08,101 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 17:05:08,567 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 17, 4, 57), 16.56, 31.69, 0.0, 13.36, 13.37, 0, 0, 0, 2, 0, 0),)
2025-06-13 17:05:08,567 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 17:04:57
2025-06-13 17:05:08,647 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 17:05:08,651 [DEBUG][       Thread-261902][   transport.py][1871] : starting thread (client mode): 0x86369630
2025-06-13 17:05:08,652 [DEBUG][       Thread-261902][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 17:05:08,673 [DEBUG][       Thread-261902][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 17:05:08,673 [ INFO][       Thread-261902][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 17:05:08,676 [DEBUG][       Thread-261902][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 17:05:08,676 [DEBUG][       Thread-261902][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 17:05:08,676 [DEBUG][       Thread-261902][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 17:05:08,676 [DEBUG][       Thread-261902][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:05:08,677 [DEBUG][       Thread-261902][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:05:08,677 [DEBUG][       Thread-261902][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:05:08,677 [DEBUG][       Thread-261902][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:05:08,677 [DEBUG][       Thread-261902][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 17:05:08,677 [DEBUG][       Thread-261902][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 17:05:08,677 [DEBUG][       Thread-261902][   transport.py][1871] : client lang: <none>
2025-06-13 17:05:08,677 [DEBUG][       Thread-261902][   transport.py][1871] : server lang: <none>
2025-06-13 17:05:08,677 [DEBUG][       Thread-261902][   transport.py][1871] : kex follows: False
2025-06-13 17:05:08,677 [DEBUG][       Thread-261902][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 17:05:08,677 [DEBUG][       Thread-261902][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 17:05:08,677 [DEBUG][       Thread-261902][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 17:05:08,677 [DEBUG][       Thread-261902][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 17:05:08,677 [DEBUG][       Thread-261902][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 17:05:08,677 [DEBUG][       Thread-261902][   transport.py][1871] : Compression: none
2025-06-13 17:05:08,677 [DEBUG][       Thread-261902][   transport.py][1871] : === End of kex handshake ===
2025-06-13 17:05:08,697 [DEBUG][       Thread-261902][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 17:05:08,697 [DEBUG][       Thread-261902][   transport.py][1871] : Switch to new keys ...
2025-06-13 17:05:08,698 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 17:05:08,698 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 17:05:08,698 [DEBUG][       Thread-261902][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 17:05:08,699 [DEBUG][       Thread-261902][   transport.py][1871] : userauth is OK
2025-06-13 17:05:08,724 [ INFO][       Thread-261902][   transport.py][1871] : Authentication (password) successful!
2025-06-13 17:05:08,725 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 17:05:16,158 [DEBUG][Thread-261904 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:05:23,116 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:05:23,116 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:05:25,072 [DEBUG][Thread-261905 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:05:25,177 [DEBUG][Thread-261906 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:05:30,000 [DEBUG][       Thread-261902][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 17:05:30,000 [DEBUG][       Thread-261902][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 17:05:30,040 [DEBUG][       Thread-261902][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 17:05:30,041 [DEBUG][       Thread-261902][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 17:05:30,043 [DEBUG][       Thread-261902][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 17:05:30,489 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 17:05:30,489 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 17:05:30,491 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 17:05:30,492 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 17:05:30,629 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 17:05:30,630 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 17:05:30,631 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 17:05:30,631 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 17:05:30,631 [WARNING][ poll_weather_worker][      driver.py][ 267] : Unable to get atlas cloud data: list index out of range
2025-06-13 17:05:30,631 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T17:04:57', tmtdew=16.56, humidity=31.69, cloud=0.0, wind=13.36, temperature=13.37, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp=None, atlas_cloud=None, atlas_rain=None, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 17:05:30,632 [DEBUG][       Thread-261902][   transport.py][1871] : EOF in transport thread
2025-06-13 17:05:30,704 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 17:05:30,716 [DEBUG][       Thread-261908][   transport.py][1871] : starting thread (client mode): 0x86353400
2025-06-13 17:05:30,716 [DEBUG][       Thread-261908][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 17:05:30,731 [DEBUG][       Thread-261908][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 17:05:30,731 [ INFO][       Thread-261908][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 17:05:30,738 [DEBUG][       Thread-261908][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 17:05:30,738 [DEBUG][       Thread-261908][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 17:05:30,738 [DEBUG][       Thread-261908][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 17:05:30,738 [DEBUG][       Thread-261908][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:05:30,738 [DEBUG][       Thread-261908][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:05:30,738 [DEBUG][       Thread-261908][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:05:30,738 [DEBUG][       Thread-261908][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:05:30,738 [DEBUG][       Thread-261908][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 17:05:30,738 [DEBUG][       Thread-261908][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 17:05:30,738 [DEBUG][       Thread-261908][   transport.py][1871] : client lang: <none>
2025-06-13 17:05:30,738 [DEBUG][       Thread-261908][   transport.py][1871] : server lang: <none>
2025-06-13 17:05:30,738 [DEBUG][       Thread-261908][   transport.py][1871] : kex follows: False
2025-06-13 17:05:30,738 [DEBUG][       Thread-261908][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 17:05:30,738 [DEBUG][       Thread-261908][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 17:05:30,738 [DEBUG][       Thread-261908][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 17:05:30,738 [DEBUG][       Thread-261908][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 17:05:30,738 [DEBUG][       Thread-261908][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 17:05:30,738 [DEBUG][       Thread-261908][   transport.py][1871] : Compression: none
2025-06-13 17:05:30,738 [DEBUG][       Thread-261908][   transport.py][1871] : === End of kex handshake ===
2025-06-13 17:05:30,793 [DEBUG][       Thread-261908][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 17:05:30,793 [DEBUG][       Thread-261908][   transport.py][1871] : Switch to new keys ...
2025-06-13 17:05:30,793 [DEBUG][       Thread-261908][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 17:05:30,793 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 17:05:30,793 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 17:05:30,853 [DEBUG][       Thread-261908][   transport.py][1871] : userauth is OK
2025-06-13 17:05:30,853 [DEBUG][       Thread-261908][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 17:05:30,853 [DEBUG][       Thread-261908][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 17:05:30,853 [DEBUG][       Thread-261908][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 17:05:30,853 [DEBUG][       Thread-261908][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 17:05:30,868 [ INFO][       Thread-261908][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 17:05:30,868 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 17:05:30,868 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 17:05:31,855 [DEBUG][       Thread-261908][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 17:05:31,855 [DEBUG][       Thread-261908][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 17:05:31,906 [DEBUG][       Thread-261908][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 17:05:31,906 [DEBUG][       Thread-261908][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 17:05:31,915 [DEBUG][       Thread-261908][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 17:05:31,923 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 17:05:31,924 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 17:05:31,932 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 17:05:31,941 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 17:05:31,941 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 17:05:31,941 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 17:05:31,949 [DEBUG][       Thread-261908][   transport.py][1871] : EOF in transport thread
2025-06-13 17:05:34,198 [DEBUG][Thread-261910 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:05:35,794 [DEBUG][Thread-261911 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:05:36,876 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:05:36,878 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:05:41,949 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 17:05:41,949 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 17:05:41,949 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 17:05:41,952 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 17:05:42,419 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 17, 5, 29), 16.56, 31.45, 0.0, 13.43, 13.3, 0, 0, 0, 2, 0, 0),)
2025-06-13 17:05:42,419 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 17:05:29
2025-06-13 17:05:42,500 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 17:05:42,507 [DEBUG][       Thread-261912][   transport.py][1871] : starting thread (client mode): 0x867b71c0
2025-06-13 17:05:42,507 [DEBUG][       Thread-261912][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 17:05:42,526 [DEBUG][       Thread-261912][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 17:05:42,527 [ INFO][       Thread-261912][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 17:05:42,530 [DEBUG][       Thread-261912][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 17:05:42,530 [DEBUG][       Thread-261912][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 17:05:42,530 [DEBUG][       Thread-261912][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 17:05:42,530 [DEBUG][       Thread-261912][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:05:42,530 [DEBUG][       Thread-261912][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:05:42,530 [DEBUG][       Thread-261912][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:05:42,530 [DEBUG][       Thread-261912][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:05:42,530 [DEBUG][       Thread-261912][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 17:05:42,530 [DEBUG][       Thread-261912][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 17:05:42,530 [DEBUG][       Thread-261912][   transport.py][1871] : client lang: <none>
2025-06-13 17:05:42,530 [DEBUG][       Thread-261912][   transport.py][1871] : server lang: <none>
2025-06-13 17:05:42,530 [DEBUG][       Thread-261912][   transport.py][1871] : kex follows: False
2025-06-13 17:05:42,530 [DEBUG][       Thread-261912][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 17:05:42,530 [DEBUG][       Thread-261912][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 17:05:42,530 [DEBUG][       Thread-261912][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 17:05:42,530 [DEBUG][       Thread-261912][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 17:05:42,530 [DEBUG][       Thread-261912][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 17:05:42,530 [DEBUG][       Thread-261912][   transport.py][1871] : Compression: none
2025-06-13 17:05:42,530 [DEBUG][       Thread-261912][   transport.py][1871] : === End of kex handshake ===
2025-06-13 17:05:42,549 [DEBUG][       Thread-261912][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 17:05:42,550 [DEBUG][       Thread-261912][   transport.py][1871] : Switch to new keys ...
2025-06-13 17:05:42,550 [DEBUG][       Thread-261912][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 17:05:42,551 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 17:05:42,551 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 17:05:42,552 [DEBUG][       Thread-261912][   transport.py][1871] : userauth is OK
2025-06-13 17:05:42,576 [ INFO][       Thread-261912][   transport.py][1871] : Authentication (password) successful!
2025-06-13 17:05:42,577 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 17:05:43,178 [DEBUG][       Thread-261912][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 17:05:43,179 [DEBUG][       Thread-261912][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 17:05:43,221 [DEBUG][       Thread-261912][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 17:05:43,221 [DEBUG][       Thread-261912][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 17:05:43,224 [DEBUG][       Thread-261912][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 17:05:43,236 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 17:05:43,236 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 17:05:43,238 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 17:05:43,240 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 17:05:43,242 [DEBUG][Thread-261915 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:05:43,246 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 17:05:43,251 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 17:05:43,252 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 17:05:43,252 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 17:05:43,252 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.628407 -999.00  +13.20  17.04     36   -1.40 1 1 1 1 1   887    0 14.51 1.17 ----- 15.7 17.0 47.8 23.3 15.3 -29.6 14.8 -30.0 15.3 -29.1 15.9 -28.3
2025-06-13 17:05:43,253 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 17:05:43,253 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 17:05:43,253 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.628407
2025-06-13 17:05:43,253 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 17:05:43,254 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 17:05:43,254 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 17:05:43,254 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 17:05:43,254 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 17:05:43,254 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T17:05:29', tmtdew=16.56, humidity=31.45, cloud=0.0, wind=13.43, temperature=13.3, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T15:04:54.365', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 17:05:43,255 [DEBUG][       Thread-261912][   transport.py][1871] : EOF in transport thread
2025-06-13 17:05:43,335 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 17:05:43,345 [DEBUG][       Thread-261916][   transport.py][1871] : starting thread (client mode): 0x863bdf90
2025-06-13 17:05:43,345 [DEBUG][       Thread-261916][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 17:05:43,360 [DEBUG][       Thread-261916][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 17:05:43,360 [ INFO][       Thread-261916][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 17:05:43,368 [DEBUG][       Thread-261916][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 17:05:43,368 [DEBUG][       Thread-261916][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 17:05:43,368 [DEBUG][       Thread-261916][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 17:05:43,368 [DEBUG][       Thread-261916][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:05:43,368 [DEBUG][       Thread-261916][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:05:43,368 [DEBUG][       Thread-261916][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:05:43,368 [DEBUG][       Thread-261916][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:05:43,368 [DEBUG][       Thread-261916][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 17:05:43,368 [DEBUG][       Thread-261916][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 17:05:43,368 [DEBUG][       Thread-261916][   transport.py][1871] : client lang: <none>
2025-06-13 17:05:43,368 [DEBUG][       Thread-261916][   transport.py][1871] : server lang: <none>
2025-06-13 17:05:43,368 [DEBUG][       Thread-261916][   transport.py][1871] : kex follows: False
2025-06-13 17:05:43,368 [DEBUG][       Thread-261916][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 17:05:43,368 [DEBUG][       Thread-261916][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 17:05:43,368 [DEBUG][       Thread-261916][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 17:05:43,368 [DEBUG][       Thread-261916][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 17:05:43,369 [DEBUG][       Thread-261916][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 17:05:43,369 [DEBUG][       Thread-261916][   transport.py][1871] : Compression: none
2025-06-13 17:05:43,369 [DEBUG][       Thread-261916][   transport.py][1871] : === End of kex handshake ===
2025-06-13 17:05:43,427 [DEBUG][       Thread-261916][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 17:05:43,428 [DEBUG][       Thread-261916][   transport.py][1871] : Switch to new keys ...
2025-06-13 17:05:43,428 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 17:05:43,429 [DEBUG][       Thread-261916][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 17:05:43,429 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 17:05:43,483 [DEBUG][       Thread-261916][   transport.py][1871] : userauth is OK
2025-06-13 17:05:43,484 [DEBUG][       Thread-261916][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 17:05:43,484 [DEBUG][       Thread-261916][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 17:05:43,484 [DEBUG][       Thread-261916][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 17:05:43,484 [DEBUG][       Thread-261916][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 17:05:43,503 [ INFO][       Thread-261916][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 17:05:43,503 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 17:05:43,504 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 17:05:44,518 [DEBUG][       Thread-261916][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 17:05:44,518 [DEBUG][       Thread-261916][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 17:05:44,568 [DEBUG][       Thread-261916][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 17:05:44,568 [DEBUG][       Thread-261916][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 17:05:44,577 [DEBUG][       Thread-261916][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 17:05:44,586 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 17:05:44,587 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 17:05:44,596 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 17:05:44,606 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 17:05:44,606 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 17:05:44,607 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 17:05:44,615 [DEBUG][       Thread-261916][   transport.py][1871] : EOF in transport thread
2025-06-13 17:05:52,271 [DEBUG][Thread-261918 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:05:54,616 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 17:05:54,616 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 17:05:54,617 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 17:05:54,619 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 17:05:55,087 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 17, 5, 29), 16.56, 31.45, 0.0, 13.43, 13.3, 0, 0, 0, 2, 0, 0),)
2025-06-13 17:05:55,087 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 17:05:29
2025-06-13 17:05:55,167 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 17:05:55,171 [DEBUG][       Thread-261919][   transport.py][1871] : starting thread (client mode): 0x86352410
2025-06-13 17:05:55,171 [DEBUG][       Thread-261919][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 17:05:55,186 [DEBUG][       Thread-261919][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 17:05:55,186 [ INFO][       Thread-261919][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 17:05:55,189 [DEBUG][       Thread-261919][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 17:05:55,189 [DEBUG][       Thread-261919][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 17:05:55,189 [DEBUG][       Thread-261919][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 17:05:55,189 [DEBUG][       Thread-261919][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:05:55,189 [DEBUG][       Thread-261919][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:05:55,189 [DEBUG][       Thread-261919][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:05:55,189 [DEBUG][       Thread-261919][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:05:55,189 [DEBUG][       Thread-261919][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 17:05:55,189 [DEBUG][       Thread-261919][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 17:05:55,190 [DEBUG][       Thread-261919][   transport.py][1871] : client lang: <none>
2025-06-13 17:05:55,190 [DEBUG][       Thread-261919][   transport.py][1871] : server lang: <none>
2025-06-13 17:05:55,190 [DEBUG][       Thread-261919][   transport.py][1871] : kex follows: False
2025-06-13 17:05:55,190 [DEBUG][       Thread-261919][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 17:05:55,190 [DEBUG][       Thread-261919][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 17:05:55,190 [DEBUG][       Thread-261919][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 17:05:55,190 [DEBUG][       Thread-261919][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 17:05:55,190 [DEBUG][       Thread-261919][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 17:05:55,190 [DEBUG][       Thread-261919][   transport.py][1871] : Compression: none
2025-06-13 17:05:55,190 [DEBUG][       Thread-261919][   transport.py][1871] : === End of kex handshake ===
2025-06-13 17:05:55,206 [DEBUG][       Thread-261919][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 17:05:55,206 [DEBUG][       Thread-261919][   transport.py][1871] : Switch to new keys ...
2025-06-13 17:05:55,207 [DEBUG][       Thread-261919][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 17:05:55,207 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 17:05:55,207 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 17:05:55,208 [DEBUG][       Thread-261919][   transport.py][1871] : userauth is OK
2025-06-13 17:05:55,221 [ INFO][       Thread-261919][   transport.py][1871] : Authentication (password) successful!
2025-06-13 17:05:55,222 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 17:05:55,877 [DEBUG][       Thread-261919][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 17:05:55,878 [DEBUG][       Thread-261919][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 17:05:55,921 [DEBUG][       Thread-261919][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 17:05:55,921 [DEBUG][       Thread-261919][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 17:05:55,925 [DEBUG][       Thread-261919][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 17:05:55,936 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 17:05:55,937 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 17:05:55,939 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 17:05:55,941 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 17:05:55,947 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 17:05:55,949 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 17:05:55,949 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 17:05:55,950 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 17:05:55,950 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.628407 -999.00  +13.20  17.04     36   -1.40 1 1 1 1 1   887    0 14.51 1.17 ----- 15.7 17.0 47.8 23.3 15.3 -29.6 14.8 -30.0 15.3 -29.1 15.9 -28.3
2025-06-13 17:05:55,950 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 17:05:55,950 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 17:05:55,950 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.628407
2025-06-13 17:05:55,950 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 17:05:55,951 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 17:05:55,951 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 17:05:55,951 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 17:05:55,951 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 17:05:55,951 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T17:05:29', tmtdew=16.56, humidity=31.45, cloud=0.0, wind=13.43, temperature=13.3, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T15:04:54.365', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 17:05:55,951 [DEBUG][       Thread-261919][   transport.py][1871] : EOF in transport thread
2025-06-13 17:05:56,035 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 17:05:56,047 [DEBUG][       Thread-261922][   transport.py][1871] : starting thread (client mode): 0x86369660
2025-06-13 17:05:56,047 [DEBUG][       Thread-261922][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 17:05:56,062 [DEBUG][       Thread-261922][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 17:05:56,062 [ INFO][       Thread-261922][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 17:05:56,070 [DEBUG][       Thread-261922][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 17:05:56,070 [DEBUG][       Thread-261922][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 17:05:56,070 [DEBUG][       Thread-261922][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 17:05:56,070 [DEBUG][       Thread-261922][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:05:56,070 [DEBUG][       Thread-261922][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:05:56,070 [DEBUG][       Thread-261922][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:05:56,070 [DEBUG][       Thread-261922][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:05:56,070 [DEBUG][       Thread-261922][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 17:05:56,070 [DEBUG][       Thread-261922][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 17:05:56,070 [DEBUG][       Thread-261922][   transport.py][1871] : client lang: <none>
2025-06-13 17:05:56,071 [DEBUG][       Thread-261922][   transport.py][1871] : server lang: <none>
2025-06-13 17:05:56,071 [DEBUG][       Thread-261922][   transport.py][1871] : kex follows: False
2025-06-13 17:05:56,071 [DEBUG][       Thread-261922][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 17:05:56,071 [DEBUG][       Thread-261922][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 17:05:56,071 [DEBUG][       Thread-261922][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 17:05:56,071 [DEBUG][       Thread-261922][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 17:05:56,071 [DEBUG][       Thread-261922][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 17:05:56,071 [DEBUG][       Thread-261922][   transport.py][1871] : Compression: none
2025-06-13 17:05:56,071 [DEBUG][       Thread-261922][   transport.py][1871] : === End of kex handshake ===
2025-06-13 17:05:56,127 [DEBUG][       Thread-261922][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 17:05:56,128 [DEBUG][       Thread-261922][   transport.py][1871] : Switch to new keys ...
2025-06-13 17:05:56,128 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 17:05:56,129 [DEBUG][       Thread-261922][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 17:05:56,130 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 17:05:56,183 [DEBUG][       Thread-261922][   transport.py][1871] : userauth is OK
2025-06-13 17:05:56,184 [DEBUG][       Thread-261922][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 17:05:56,184 [DEBUG][       Thread-261922][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 17:05:56,184 [DEBUG][       Thread-261922][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 17:05:56,184 [DEBUG][       Thread-261922][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 17:05:56,203 [ INFO][       Thread-261922][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 17:05:56,204 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 17:05:56,204 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 17:05:57,201 [DEBUG][       Thread-261922][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 17:05:57,202 [DEBUG][       Thread-261922][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 17:05:57,252 [DEBUG][       Thread-261922][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 17:05:57,252 [DEBUG][       Thread-261922][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 17:05:57,261 [DEBUG][       Thread-261922][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 17:05:57,269 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 17:05:57,269 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 17:05:57,277 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 17:05:57,286 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 17:05:57,286 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 17:05:57,286 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 17:05:57,294 [DEBUG][       Thread-261922][   transport.py][1871] : EOF in transport thread
2025-06-13 17:06:01,303 [DEBUG][Thread-261924 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:06:07,296 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 17:06:07,296 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 17:06:07,296 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 17:06:07,299 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 17:06:07,774 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 17, 6, 1), 16.52, 31.52, 0.0, 10.01, 13.3, 0, 0, 0, 2, 0, 0),)
2025-06-13 17:06:07,775 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 17:06:01
2025-06-13 17:06:07,855 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 17:06:07,860 [DEBUG][       Thread-261925][   transport.py][1871] : starting thread (client mode): 0x8636b640
2025-06-13 17:06:07,860 [DEBUG][       Thread-261925][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 17:06:07,870 [DEBUG][       Thread-261925][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 17:06:07,870 [ INFO][       Thread-261925][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 17:06:07,873 [DEBUG][       Thread-261925][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 17:06:07,873 [DEBUG][       Thread-261925][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 17:06:07,873 [DEBUG][       Thread-261925][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 17:06:07,873 [DEBUG][       Thread-261925][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:06:07,873 [DEBUG][       Thread-261925][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:06:07,873 [DEBUG][       Thread-261925][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:06:07,873 [DEBUG][       Thread-261925][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:06:07,873 [DEBUG][       Thread-261925][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 17:06:07,873 [DEBUG][       Thread-261925][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 17:06:07,873 [DEBUG][       Thread-261925][   transport.py][1871] : client lang: <none>
2025-06-13 17:06:07,873 [DEBUG][       Thread-261925][   transport.py][1871] : server lang: <none>
2025-06-13 17:06:07,873 [DEBUG][       Thread-261925][   transport.py][1871] : kex follows: False
2025-06-13 17:06:07,873 [DEBUG][       Thread-261925][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 17:06:07,873 [DEBUG][       Thread-261925][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 17:06:07,873 [DEBUG][       Thread-261925][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 17:06:07,873 [DEBUG][       Thread-261925][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 17:06:07,873 [DEBUG][       Thread-261925][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 17:06:07,873 [DEBUG][       Thread-261925][   transport.py][1871] : Compression: none
2025-06-13 17:06:07,873 [DEBUG][       Thread-261925][   transport.py][1871] : === End of kex handshake ===
2025-06-13 17:06:07,880 [DEBUG][       Thread-261925][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 17:06:07,880 [DEBUG][       Thread-261925][   transport.py][1871] : Switch to new keys ...
2025-06-13 17:06:07,880 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 17:06:07,880 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 17:06:07,880 [DEBUG][       Thread-261925][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 17:06:07,881 [DEBUG][       Thread-261925][   transport.py][1871] : userauth is OK
2025-06-13 17:06:07,893 [ INFO][       Thread-261925][   transport.py][1871] : Authentication (password) successful!
2025-06-13 17:06:07,894 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 17:06:08,543 [DEBUG][       Thread-261925][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 17:06:08,543 [DEBUG][       Thread-261925][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 17:06:08,585 [DEBUG][       Thread-261925][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 17:06:08,585 [DEBUG][       Thread-261925][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 17:06:08,589 [DEBUG][       Thread-261925][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 17:06:08,599 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 17:06:08,600 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 17:06:08,602 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 17:06:08,604 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 17:06:08,610 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 17:06:08,612 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 17:06:08,612 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 17:06:08,613 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 17:06:08,613 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.629101 -999.00  +13.20  12.54     36   -1.20 1 1 1 1 1   887    0 14.48 1.89 ----- 12.8 12.5 40.4 14.7 15.3 -29.6 14.8 -29.8 15.2 -28.7 15.9 -28.4
2025-06-13 17:06:08,613 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 17:06:08,613 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 17:06:08,614 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.629101
2025-06-13 17:06:08,614 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 17:06:08,615 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 17:06:08,615 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 17:06:08,615 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 17:06:08,615 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 17:06:08,615 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T17:06:01', tmtdew=16.52, humidity=31.52, cloud=0.0, wind=10.01, temperature=13.3, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T15:05:54.326', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 17:06:08,615 [DEBUG][       Thread-261925][   transport.py][1871] : EOF in transport thread
2025-06-13 17:06:08,709 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 17:06:08,719 [DEBUG][       Thread-261928][   transport.py][1871] : starting thread (client mode): 0x863bf7f0
2025-06-13 17:06:08,719 [DEBUG][       Thread-261928][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 17:06:08,733 [DEBUG][       Thread-261928][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 17:06:08,734 [ INFO][       Thread-261928][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 17:06:08,741 [DEBUG][       Thread-261928][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 17:06:08,741 [DEBUG][       Thread-261928][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 17:06:08,741 [DEBUG][       Thread-261928][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 17:06:08,741 [DEBUG][       Thread-261928][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:06:08,741 [DEBUG][       Thread-261928][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:06:08,741 [DEBUG][       Thread-261928][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:06:08,741 [DEBUG][       Thread-261928][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:06:08,741 [DEBUG][       Thread-261928][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 17:06:08,741 [DEBUG][       Thread-261928][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 17:06:08,741 [DEBUG][       Thread-261928][   transport.py][1871] : client lang: <none>
2025-06-13 17:06:08,741 [DEBUG][       Thread-261928][   transport.py][1871] : server lang: <none>
2025-06-13 17:06:08,741 [DEBUG][       Thread-261928][   transport.py][1871] : kex follows: False
2025-06-13 17:06:08,741 [DEBUG][       Thread-261928][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 17:06:08,742 [DEBUG][       Thread-261928][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 17:06:08,742 [DEBUG][       Thread-261928][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 17:06:08,742 [DEBUG][       Thread-261928][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 17:06:08,742 [DEBUG][       Thread-261928][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 17:06:08,742 [DEBUG][       Thread-261928][   transport.py][1871] : Compression: none
2025-06-13 17:06:08,742 [DEBUG][       Thread-261928][   transport.py][1871] : === End of kex handshake ===
2025-06-13 17:06:08,799 [DEBUG][       Thread-261928][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 17:06:08,800 [DEBUG][       Thread-261928][   transport.py][1871] : Switch to new keys ...
2025-06-13 17:06:08,800 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 17:06:08,801 [DEBUG][       Thread-261928][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 17:06:08,802 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 17:06:08,856 [DEBUG][       Thread-261928][   transport.py][1871] : userauth is OK
2025-06-13 17:06:08,856 [DEBUG][       Thread-261928][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 17:06:08,856 [DEBUG][       Thread-261928][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 17:06:08,856 [DEBUG][       Thread-261928][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 17:06:08,856 [DEBUG][       Thread-261928][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 17:06:08,874 [ INFO][       Thread-261928][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 17:06:08,875 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 17:06:08,875 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 17:06:09,875 [DEBUG][       Thread-261928][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 17:06:09,875 [DEBUG][       Thread-261928][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 17:06:09,924 [DEBUG][       Thread-261928][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 17:06:09,924 [DEBUG][       Thread-261928][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 17:06:09,933 [DEBUG][       Thread-261928][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 17:06:09,942 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 17:06:09,942 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 17:06:09,951 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 17:06:09,960 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 17:06:09,960 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 17:06:09,961 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 17:06:09,969 [DEBUG][       Thread-261928][   transport.py][1871] : EOF in transport thread
2025-06-13 17:06:10,324 [DEBUG][Thread-261930 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:06:19,360 [DEBUG][Thread-261931 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:06:19,971 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 17:06:19,971 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 17:06:19,971 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 17:06:19,974 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 17:06:20,445 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 17, 6, 1), 16.52, 31.52, 0.0, 10.01, 13.3, 0, 0, 0, 2, 0, 0),)
2025-06-13 17:06:20,445 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 17:06:01
2025-06-13 17:06:20,528 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 17:06:20,532 [DEBUG][       Thread-261932][   transport.py][1871] : starting thread (client mode): 0x8636a080
2025-06-13 17:06:20,532 [DEBUG][       Thread-261932][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 17:06:20,552 [DEBUG][       Thread-261932][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 17:06:20,552 [ INFO][       Thread-261932][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 17:06:20,556 [DEBUG][       Thread-261932][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 17:06:20,556 [DEBUG][       Thread-261932][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 17:06:20,556 [DEBUG][       Thread-261932][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 17:06:20,556 [DEBUG][       Thread-261932][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:06:20,556 [DEBUG][       Thread-261932][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:06:20,556 [DEBUG][       Thread-261932][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:06:20,556 [DEBUG][       Thread-261932][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:06:20,556 [DEBUG][       Thread-261932][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 17:06:20,556 [DEBUG][       Thread-261932][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 17:06:20,556 [DEBUG][       Thread-261932][   transport.py][1871] : client lang: <none>
2025-06-13 17:06:20,556 [DEBUG][       Thread-261932][   transport.py][1871] : server lang: <none>
2025-06-13 17:06:20,556 [DEBUG][       Thread-261932][   transport.py][1871] : kex follows: False
2025-06-13 17:06:20,556 [DEBUG][       Thread-261932][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 17:06:20,556 [DEBUG][       Thread-261932][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 17:06:20,556 [DEBUG][       Thread-261932][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 17:06:20,556 [DEBUG][       Thread-261932][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 17:06:20,556 [DEBUG][       Thread-261932][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 17:06:20,557 [DEBUG][       Thread-261932][   transport.py][1871] : Compression: none
2025-06-13 17:06:20,557 [DEBUG][       Thread-261932][   transport.py][1871] : === End of kex handshake ===
2025-06-13 17:06:20,573 [DEBUG][       Thread-261932][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 17:06:20,573 [DEBUG][       Thread-261932][   transport.py][1871] : Switch to new keys ...
2025-06-13 17:06:20,574 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 17:06:20,574 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 17:06:20,575 [DEBUG][       Thread-261932][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 17:06:20,575 [DEBUG][       Thread-261932][   transport.py][1871] : userauth is OK
2025-06-13 17:06:20,600 [ INFO][       Thread-261932][   transport.py][1871] : Authentication (password) successful!
2025-06-13 17:06:20,601 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 17:06:21,206 [DEBUG][       Thread-261932][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 17:06:21,206 [DEBUG][       Thread-261932][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 17:06:21,249 [DEBUG][       Thread-261932][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 17:06:21,249 [DEBUG][       Thread-261932][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 17:06:21,252 [DEBUG][       Thread-261932][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 17:06:21,264 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 17:06:21,265 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 17:06:21,267 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 17:06:21,269 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 17:06:21,274 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 17:06:21,276 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 17:06:21,277 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 17:06:21,277 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 17:06:21,277 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.629101 -999.00  +13.20  12.54     36   -1.20 1 1 1 1 1   887    0 14.48 1.89 ----- 12.8 12.5 40.4 14.7 15.3 -29.6 14.8 -29.8 15.2 -28.7 15.9 -28.4
2025-06-13 17:06:21,277 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 17:06:21,278 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 17:06:21,278 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.629101
2025-06-13 17:06:21,278 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 17:06:21,279 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 17:06:21,279 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 17:06:21,279 [DEBUG][       Thread-261932][   transport.py][1871] : EOF in transport thread
2025-06-13 17:06:21,279 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 17:06:21,280 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 17:06:21,280 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T17:06:01', tmtdew=16.52, humidity=31.52, cloud=0.0, wind=10.01, temperature=13.3, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T15:05:54.326', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 17:06:21,363 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 17:06:21,375 [DEBUG][       Thread-261935][   transport.py][1871] : starting thread (client mode): 0x867b7640
2025-06-13 17:06:21,375 [DEBUG][       Thread-261935][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 17:06:21,390 [DEBUG][       Thread-261935][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 17:06:21,390 [ INFO][       Thread-261935][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 17:06:21,400 [DEBUG][       Thread-261935][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 17:06:21,400 [DEBUG][       Thread-261935][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 17:06:21,400 [DEBUG][       Thread-261935][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 17:06:21,400 [DEBUG][       Thread-261935][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:06:21,400 [DEBUG][       Thread-261935][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:06:21,400 [DEBUG][       Thread-261935][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:06:21,400 [DEBUG][       Thread-261935][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:06:21,400 [DEBUG][       Thread-261935][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 17:06:21,400 [DEBUG][       Thread-261935][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 17:06:21,400 [DEBUG][       Thread-261935][   transport.py][1871] : client lang: <none>
2025-06-13 17:06:21,400 [DEBUG][       Thread-261935][   transport.py][1871] : server lang: <none>
2025-06-13 17:06:21,400 [DEBUG][       Thread-261935][   transport.py][1871] : kex follows: False
2025-06-13 17:06:21,400 [DEBUG][       Thread-261935][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 17:06:21,400 [DEBUG][       Thread-261935][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 17:06:21,400 [DEBUG][       Thread-261935][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 17:06:21,401 [DEBUG][       Thread-261935][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 17:06:21,401 [DEBUG][       Thread-261935][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 17:06:21,401 [DEBUG][       Thread-261935][   transport.py][1871] : Compression: none
2025-06-13 17:06:21,401 [DEBUG][       Thread-261935][   transport.py][1871] : === End of kex handshake ===
2025-06-13 17:06:21,455 [DEBUG][       Thread-261935][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 17:06:21,456 [DEBUG][       Thread-261935][   transport.py][1871] : Switch to new keys ...
2025-06-13 17:06:21,457 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 17:06:21,457 [DEBUG][       Thread-261935][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 17:06:21,458 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 17:06:21,514 [DEBUG][       Thread-261935][   transport.py][1871] : userauth is OK
2025-06-13 17:06:21,514 [DEBUG][       Thread-261935][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 17:06:21,515 [DEBUG][       Thread-261935][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 17:06:21,515 [DEBUG][       Thread-261935][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 17:06:21,515 [DEBUG][       Thread-261935][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 17:06:21,533 [ INFO][       Thread-261935][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 17:06:21,533 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 17:06:21,534 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 17:06:22,536 [DEBUG][       Thread-261935][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 17:06:22,536 [DEBUG][       Thread-261935][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 17:06:22,584 [DEBUG][       Thread-261935][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 17:06:22,584 [DEBUG][       Thread-261935][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 17:06:22,593 [DEBUG][       Thread-261935][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 17:06:22,602 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 17:06:22,603 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 17:06:22,611 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 17:06:22,621 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 17:06:22,621 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 17:06:22,621 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 17:06:22,629 [DEBUG][       Thread-261935][   transport.py][1871] : EOF in transport thread
2025-06-13 17:06:23,276 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:06:23,277 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:06:25,120 [DEBUG][Thread-261937 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:06:28,381 [DEBUG][Thread-261938 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:06:32,632 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 17:06:32,632 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 17:06:32,632 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 17:06:32,635 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 17:06:33,096 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 17, 6, 1), 16.52, 31.52, 0.0, 10.01, 13.3, 0, 0, 0, 2, 0, 0),)
2025-06-13 17:06:33,096 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 17:06:01
2025-06-13 17:06:33,178 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 17:06:33,182 [DEBUG][       Thread-261939][   transport.py][1871] : starting thread (client mode): 0x86369f60
2025-06-13 17:06:33,182 [DEBUG][       Thread-261939][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 17:06:33,202 [DEBUG][       Thread-261939][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 17:06:33,202 [ INFO][       Thread-261939][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 17:06:33,205 [DEBUG][       Thread-261939][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 17:06:33,205 [DEBUG][       Thread-261939][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 17:06:33,205 [DEBUG][       Thread-261939][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 17:06:33,205 [DEBUG][       Thread-261939][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:06:33,205 [DEBUG][       Thread-261939][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:06:33,205 [DEBUG][       Thread-261939][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:06:33,205 [DEBUG][       Thread-261939][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:06:33,205 [DEBUG][       Thread-261939][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 17:06:33,205 [DEBUG][       Thread-261939][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 17:06:33,205 [DEBUG][       Thread-261939][   transport.py][1871] : client lang: <none>
2025-06-13 17:06:33,206 [DEBUG][       Thread-261939][   transport.py][1871] : server lang: <none>
2025-06-13 17:06:33,206 [DEBUG][       Thread-261939][   transport.py][1871] : kex follows: False
2025-06-13 17:06:33,206 [DEBUG][       Thread-261939][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 17:06:33,206 [DEBUG][       Thread-261939][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 17:06:33,206 [DEBUG][       Thread-261939][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 17:06:33,206 [DEBUG][       Thread-261939][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 17:06:33,206 [DEBUG][       Thread-261939][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 17:06:33,206 [DEBUG][       Thread-261939][   transport.py][1871] : Compression: none
2025-06-13 17:06:33,206 [DEBUG][       Thread-261939][   transport.py][1871] : === End of kex handshake ===
2025-06-13 17:06:33,225 [DEBUG][       Thread-261939][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 17:06:33,225 [DEBUG][       Thread-261939][   transport.py][1871] : Switch to new keys ...
2025-06-13 17:06:33,226 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 17:06:33,226 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 17:06:33,227 [DEBUG][       Thread-261939][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 17:06:33,267 [DEBUG][       Thread-261939][   transport.py][1871] : userauth is OK
2025-06-13 17:06:33,293 [ INFO][       Thread-261939][   transport.py][1871] : Authentication (password) successful!
2025-06-13 17:06:33,294 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 17:06:33,918 [DEBUG][       Thread-261939][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 17:06:33,918 [DEBUG][       Thread-261939][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 17:06:33,960 [DEBUG][       Thread-261939][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 17:06:33,961 [DEBUG][       Thread-261939][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 17:06:33,963 [DEBUG][       Thread-261939][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 17:06:33,974 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 17:06:33,974 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 17:06:33,975 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 17:06:33,976 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 17:06:33,980 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 17:06:33,981 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 17:06:33,981 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 17:06:33,981 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 17:06:33,981 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.629101 -999.00  +13.20  12.54     36   -1.20 1 1 1 1 1   887    0 14.48 1.89 ----- 12.8 12.5 40.4 14.7 15.3 -29.6 14.8 -29.8 15.2 -28.7 15.9 -28.4
2025-06-13 17:06:33,981 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 17:06:33,981 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 17:06:33,981 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.629101
2025-06-13 17:06:33,981 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 17:06:33,981 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 17:06:33,981 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 17:06:33,981 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 17:06:33,981 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 17:06:33,981 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T17:06:01', tmtdew=16.52, humidity=31.52, cloud=0.0, wind=10.01, temperature=13.3, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T15:05:54.326', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 17:06:33,982 [DEBUG][       Thread-261939][   transport.py][1871] : EOF in transport thread
2025-06-13 17:06:34,056 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 17:06:34,065 [DEBUG][       Thread-261942][   transport.py][1871] : starting thread (client mode): 0x863be1d0
2025-06-13 17:06:34,065 [DEBUG][       Thread-261942][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 17:06:34,079 [DEBUG][       Thread-261942][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 17:06:34,080 [ INFO][       Thread-261942][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 17:06:34,087 [DEBUG][       Thread-261942][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 17:06:34,087 [DEBUG][       Thread-261942][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 17:06:34,087 [DEBUG][       Thread-261942][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 17:06:34,087 [DEBUG][       Thread-261942][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:06:34,087 [DEBUG][       Thread-261942][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:06:34,087 [DEBUG][       Thread-261942][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:06:34,087 [DEBUG][       Thread-261942][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:06:34,087 [DEBUG][       Thread-261942][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 17:06:34,087 [DEBUG][       Thread-261942][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 17:06:34,087 [DEBUG][       Thread-261942][   transport.py][1871] : client lang: <none>
2025-06-13 17:06:34,087 [DEBUG][       Thread-261942][   transport.py][1871] : server lang: <none>
2025-06-13 17:06:34,087 [DEBUG][       Thread-261942][   transport.py][1871] : kex follows: False
2025-06-13 17:06:34,087 [DEBUG][       Thread-261942][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 17:06:34,087 [DEBUG][       Thread-261942][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 17:06:34,087 [DEBUG][       Thread-261942][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 17:06:34,087 [DEBUG][       Thread-261942][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 17:06:34,087 [DEBUG][       Thread-261942][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 17:06:34,087 [DEBUG][       Thread-261942][   transport.py][1871] : Compression: none
2025-06-13 17:06:34,087 [DEBUG][       Thread-261942][   transport.py][1871] : === End of kex handshake ===
2025-06-13 17:06:34,142 [DEBUG][       Thread-261942][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 17:06:34,142 [DEBUG][       Thread-261942][   transport.py][1871] : Switch to new keys ...
2025-06-13 17:06:34,142 [DEBUG][       Thread-261942][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 17:06:34,142 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 17:06:34,142 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 17:06:34,199 [DEBUG][       Thread-261942][   transport.py][1871] : userauth is OK
2025-06-13 17:06:34,199 [DEBUG][       Thread-261942][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 17:06:34,199 [DEBUG][       Thread-261942][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 17:06:34,199 [DEBUG][       Thread-261942][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 17:06:34,199 [DEBUG][       Thread-261942][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 17:06:34,213 [ INFO][       Thread-261942][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 17:06:34,213 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 17:06:34,213 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 17:06:35,231 [DEBUG][       Thread-261942][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 17:06:35,231 [DEBUG][       Thread-261942][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 17:06:35,280 [DEBUG][       Thread-261942][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 17:06:35,280 [DEBUG][       Thread-261942][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 17:06:35,289 [DEBUG][       Thread-261942][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 17:06:35,298 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 17:06:35,299 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 17:06:35,308 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 17:06:35,318 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 17:06:35,318 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 17:06:35,318 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 17:06:35,326 [DEBUG][       Thread-261942][   transport.py][1871] : EOF in transport thread
2025-06-13 17:06:36,948 [DEBUG][Thread-261944 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:06:37,400 [DEBUG][Thread-261945 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:06:38,028 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:06:38,028 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:06:45,328 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 17:06:45,329 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 17:06:45,329 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 17:06:45,331 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 17:06:45,801 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 17, 6, 32), 16.58, 31.46, 0.0, 14.17, 13.28, 0, 0, 0, 2, 0, 0),)
2025-06-13 17:06:45,801 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 17:06:32
2025-06-13 17:06:45,883 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 17:06:45,887 [DEBUG][       Thread-261946][   transport.py][1871] : starting thread (client mode): 0x8636b4c0
2025-06-13 17:06:45,887 [DEBUG][       Thread-261946][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 17:06:45,908 [DEBUG][       Thread-261946][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 17:06:45,908 [ INFO][       Thread-261946][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 17:06:45,912 [DEBUG][       Thread-261946][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 17:06:45,912 [DEBUG][       Thread-261946][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 17:06:45,912 [DEBUG][       Thread-261946][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 17:06:45,912 [DEBUG][       Thread-261946][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:06:45,912 [DEBUG][       Thread-261946][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:06:45,912 [DEBUG][       Thread-261946][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:06:45,912 [DEBUG][       Thread-261946][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:06:45,912 [DEBUG][       Thread-261946][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 17:06:45,912 [DEBUG][       Thread-261946][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 17:06:45,912 [DEBUG][       Thread-261946][   transport.py][1871] : client lang: <none>
2025-06-13 17:06:45,912 [DEBUG][       Thread-261946][   transport.py][1871] : server lang: <none>
2025-06-13 17:06:45,912 [DEBUG][       Thread-261946][   transport.py][1871] : kex follows: False
2025-06-13 17:06:45,912 [DEBUG][       Thread-261946][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 17:06:45,912 [DEBUG][       Thread-261946][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 17:06:45,912 [DEBUG][       Thread-261946][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 17:06:45,912 [DEBUG][       Thread-261946][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 17:06:45,912 [DEBUG][       Thread-261946][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 17:06:45,912 [DEBUG][       Thread-261946][   transport.py][1871] : Compression: none
2025-06-13 17:06:45,912 [DEBUG][       Thread-261946][   transport.py][1871] : === End of kex handshake ===
2025-06-13 17:06:45,929 [DEBUG][       Thread-261946][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 17:06:45,930 [DEBUG][       Thread-261946][   transport.py][1871] : Switch to new keys ...
2025-06-13 17:06:45,930 [DEBUG][       Thread-261946][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 17:06:45,930 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 17:06:45,931 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 17:06:45,932 [DEBUG][       Thread-261946][   transport.py][1871] : userauth is OK
2025-06-13 17:06:45,945 [ INFO][       Thread-261946][   transport.py][1871] : Authentication (password) successful!
2025-06-13 17:06:45,946 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 17:06:46,419 [DEBUG][Thread-261948 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:06:46,610 [DEBUG][       Thread-261946][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 17:06:46,610 [DEBUG][       Thread-261946][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 17:06:46,653 [DEBUG][       Thread-261946][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 17:06:46,653 [DEBUG][       Thread-261946][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 17:06:46,657 [DEBUG][       Thread-261946][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 17:06:46,670 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 17:06:46,671 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 17:06:46,673 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 17:06:46,675 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 17:06:46,682 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 17:06:46,685 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 17:06:46,685 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 17:06:46,686 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 17:06:46,686 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.629448 -999.00  +13.20  15.36     36   -1.30 1 1 1 1 1   887    0 14.50 1.75 ----- 14.0 15.4 39.4 17.9 15.3 -29.8 14.8 -30.0 15.2 -29.3 15.9 -28.5
2025-06-13 17:06:46,686 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 17:06:46,687 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 17:06:46,687 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.629448
2025-06-13 17:06:46,687 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 17:06:46,688 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 17:06:46,688 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 17:06:46,688 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 17:06:46,689 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 17:06:46,689 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T17:06:32', tmtdew=16.58, humidity=31.46, cloud=0.0, wind=14.17, temperature=13.28, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T15:06:24.307', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 17:06:46,690 [DEBUG][       Thread-261946][   transport.py][1871] : EOF in transport thread
2025-06-13 17:06:46,782 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 17:06:46,794 [DEBUG][       Thread-261950][   transport.py][1871] : starting thread (client mode): 0x867b4670
2025-06-13 17:06:46,794 [DEBUG][       Thread-261950][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 17:06:46,809 [DEBUG][       Thread-261950][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 17:06:46,809 [ INFO][       Thread-261950][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 17:06:46,817 [DEBUG][       Thread-261950][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 17:06:46,817 [DEBUG][       Thread-261950][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 17:06:46,817 [DEBUG][       Thread-261950][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 17:06:46,817 [DEBUG][       Thread-261950][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:06:46,817 [DEBUG][       Thread-261950][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:06:46,817 [DEBUG][       Thread-261950][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:06:46,817 [DEBUG][       Thread-261950][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:06:46,817 [DEBUG][       Thread-261950][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 17:06:46,817 [DEBUG][       Thread-261950][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 17:06:46,817 [DEBUG][       Thread-261950][   transport.py][1871] : client lang: <none>
2025-06-13 17:06:46,817 [DEBUG][       Thread-261950][   transport.py][1871] : server lang: <none>
2025-06-13 17:06:46,817 [DEBUG][       Thread-261950][   transport.py][1871] : kex follows: False
2025-06-13 17:06:46,817 [DEBUG][       Thread-261950][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 17:06:46,817 [DEBUG][       Thread-261950][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 17:06:46,817 [DEBUG][       Thread-261950][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 17:06:46,818 [DEBUG][       Thread-261950][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 17:06:46,818 [DEBUG][       Thread-261950][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 17:06:46,818 [DEBUG][       Thread-261950][   transport.py][1871] : Compression: none
2025-06-13 17:06:46,818 [DEBUG][       Thread-261950][   transport.py][1871] : === End of kex handshake ===
2025-06-13 17:06:46,875 [DEBUG][       Thread-261950][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 17:06:46,876 [DEBUG][       Thread-261950][   transport.py][1871] : Switch to new keys ...
2025-06-13 17:06:46,876 [DEBUG][       Thread-261950][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 17:06:46,877 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 17:06:46,877 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 17:06:46,931 [DEBUG][       Thread-261950][   transport.py][1871] : userauth is OK
2025-06-13 17:06:46,932 [DEBUG][       Thread-261950][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 17:06:46,932 [DEBUG][       Thread-261950][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 17:06:46,932 [DEBUG][       Thread-261950][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 17:06:46,932 [DEBUG][       Thread-261950][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 17:06:46,951 [ INFO][       Thread-261950][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 17:06:46,952 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 17:06:46,952 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 17:06:48,037 [DEBUG][       Thread-261950][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 17:06:48,038 [DEBUG][       Thread-261950][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 17:06:48,091 [DEBUG][       Thread-261950][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 17:06:48,091 [DEBUG][       Thread-261950][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 17:06:48,100 [DEBUG][       Thread-261950][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 17:06:48,110 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 17:06:48,110 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 17:06:48,119 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 17:06:48,128 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 17:06:48,129 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 17:06:48,129 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 17:06:48,137 [DEBUG][       Thread-261950][   transport.py][1871] : EOF in transport thread
2025-06-13 17:06:55,442 [DEBUG][Thread-261952 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:06:58,136 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 17:06:58,136 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 17:06:58,136 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 17:06:58,139 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 17:06:58,614 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 17, 6, 32), 16.58, 31.46, 0.0, 14.17, 13.28, 0, 0, 0, 2, 0, 0),)
2025-06-13 17:06:58,615 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 17:06:32
2025-06-13 17:06:58,696 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 17:06:58,700 [DEBUG][       Thread-261953][   transport.py][1871] : starting thread (client mode): 0x86368910
2025-06-13 17:06:58,700 [DEBUG][       Thread-261953][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 17:06:58,722 [DEBUG][       Thread-261953][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 17:06:58,722 [ INFO][       Thread-261953][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 17:06:58,724 [DEBUG][       Thread-261953][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 17:06:58,724 [DEBUG][       Thread-261953][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 17:06:58,724 [DEBUG][       Thread-261953][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 17:06:58,724 [DEBUG][       Thread-261953][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:06:58,724 [DEBUG][       Thread-261953][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:06:58,724 [DEBUG][       Thread-261953][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:06:58,725 [DEBUG][       Thread-261953][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:06:58,725 [DEBUG][       Thread-261953][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 17:06:58,725 [DEBUG][       Thread-261953][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 17:06:58,725 [DEBUG][       Thread-261953][   transport.py][1871] : client lang: <none>
2025-06-13 17:06:58,725 [DEBUG][       Thread-261953][   transport.py][1871] : server lang: <none>
2025-06-13 17:06:58,725 [DEBUG][       Thread-261953][   transport.py][1871] : kex follows: False
2025-06-13 17:06:58,725 [DEBUG][       Thread-261953][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 17:06:58,725 [DEBUG][       Thread-261953][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 17:06:58,725 [DEBUG][       Thread-261953][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 17:06:58,725 [DEBUG][       Thread-261953][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 17:06:58,725 [DEBUG][       Thread-261953][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 17:06:58,725 [DEBUG][       Thread-261953][   transport.py][1871] : Compression: none
2025-06-13 17:06:58,725 [DEBUG][       Thread-261953][   transport.py][1871] : === End of kex handshake ===
2025-06-13 17:06:58,748 [DEBUG][       Thread-261953][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 17:06:58,749 [DEBUG][       Thread-261953][   transport.py][1871] : Switch to new keys ...
2025-06-13 17:06:58,750 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 17:06:58,750 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 17:06:58,751 [DEBUG][       Thread-261953][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 17:06:58,751 [DEBUG][       Thread-261953][   transport.py][1871] : userauth is OK
2025-06-13 17:06:58,776 [ INFO][       Thread-261953][   transport.py][1871] : Authentication (password) successful!
2025-06-13 17:06:58,776 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 17:06:59,454 [DEBUG][       Thread-261953][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 17:06:59,454 [DEBUG][       Thread-261953][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 17:06:59,497 [DEBUG][       Thread-261953][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 17:06:59,497 [DEBUG][       Thread-261953][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 17:06:59,499 [DEBUG][       Thread-261953][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 17:06:59,511 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 17:06:59,511 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 17:06:59,513 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 17:06:59,513 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 17:06:59,516 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 17:06:59,517 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 17:06:59,517 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 17:06:59,517 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 17:06:59,517 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.629448 -999.00  +13.20  15.36     36   -1.30 1 1 1 1 1   887    0 14.50 1.75 ----- 14.0 15.4 39.4 17.9 15.3 -29.8 14.8 -30.0 15.2 -29.3 15.9 -28.5
2025-06-13 17:06:59,517 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 17:06:59,517 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 17:06:59,517 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.629448
2025-06-13 17:06:59,517 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 17:06:59,517 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 17:06:59,517 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 17:06:59,517 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 17:06:59,517 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 17:06:59,517 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T17:06:32', tmtdew=16.58, humidity=31.46, cloud=0.0, wind=14.17, temperature=13.28, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T15:06:24.307', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 17:06:59,518 [DEBUG][       Thread-261953][   transport.py][1871] : EOF in transport thread
2025-06-13 17:06:59,589 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 17:06:59,598 [DEBUG][       Thread-261956][   transport.py][1871] : starting thread (client mode): 0x863a40a0
2025-06-13 17:06:59,599 [DEBUG][       Thread-261956][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 17:06:59,613 [DEBUG][       Thread-261956][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 17:06:59,613 [ INFO][       Thread-261956][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 17:06:59,620 [DEBUG][       Thread-261956][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 17:06:59,621 [DEBUG][       Thread-261956][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 17:06:59,621 [DEBUG][       Thread-261956][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 17:06:59,621 [DEBUG][       Thread-261956][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:06:59,621 [DEBUG][       Thread-261956][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:06:59,621 [DEBUG][       Thread-261956][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:06:59,621 [DEBUG][       Thread-261956][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:06:59,621 [DEBUG][       Thread-261956][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 17:06:59,621 [DEBUG][       Thread-261956][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 17:06:59,621 [DEBUG][       Thread-261956][   transport.py][1871] : client lang: <none>
2025-06-13 17:06:59,621 [DEBUG][       Thread-261956][   transport.py][1871] : server lang: <none>
2025-06-13 17:06:59,621 [DEBUG][       Thread-261956][   transport.py][1871] : kex follows: False
2025-06-13 17:06:59,621 [DEBUG][       Thread-261956][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 17:06:59,621 [DEBUG][       Thread-261956][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 17:06:59,621 [DEBUG][       Thread-261956][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 17:06:59,621 [DEBUG][       Thread-261956][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 17:06:59,621 [DEBUG][       Thread-261956][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 17:06:59,621 [DEBUG][       Thread-261956][   transport.py][1871] : Compression: none
2025-06-13 17:06:59,621 [DEBUG][       Thread-261956][   transport.py][1871] : === End of kex handshake ===
2025-06-13 17:06:59,679 [DEBUG][       Thread-261956][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 17:06:59,680 [DEBUG][       Thread-261956][   transport.py][1871] : Switch to new keys ...
2025-06-13 17:06:59,681 [DEBUG][       Thread-261956][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 17:06:59,681 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 17:06:59,682 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 17:06:59,736 [DEBUG][       Thread-261956][   transport.py][1871] : userauth is OK
2025-06-13 17:06:59,736 [DEBUG][       Thread-261956][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 17:06:59,736 [DEBUG][       Thread-261956][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 17:06:59,736 [DEBUG][       Thread-261956][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 17:06:59,736 [DEBUG][       Thread-261956][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 17:06:59,755 [ INFO][       Thread-261956][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 17:06:59,755 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 17:06:59,756 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 17:07:00,740 [DEBUG][       Thread-261956][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 17:07:00,740 [DEBUG][       Thread-261956][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 17:07:00,788 [DEBUG][       Thread-261956][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 17:07:00,788 [DEBUG][       Thread-261956][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 17:07:00,797 [DEBUG][       Thread-261956][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 17:07:00,807 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 17:07:00,807 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 17:07:00,816 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 17:07:00,827 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 17:07:00,828 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 17:07:00,828 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 17:07:00,836 [DEBUG][       Thread-261956][   transport.py][1871] : EOF in transport thread
2025-06-13 17:07:04,477 [DEBUG][Thread-261958 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:07:10,839 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 17:07:10,839 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 17:07:10,839 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 17:07:10,842 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 17:07:11,323 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 17, 7, 4), 16.59, 31.45, 0.0, 14.5, 13.28, 0, 0, 0, 2, 0, 0),)
2025-06-13 17:07:11,323 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 17:07:04
2025-06-13 17:07:11,405 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 17:07:11,412 [DEBUG][       Thread-261959][   transport.py][1871] : starting thread (client mode): 0x863ca530
2025-06-13 17:07:11,412 [DEBUG][       Thread-261959][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 17:07:11,427 [DEBUG][       Thread-261959][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 17:07:11,427 [ INFO][       Thread-261959][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 17:07:11,430 [DEBUG][       Thread-261959][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 17:07:11,430 [DEBUG][       Thread-261959][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 17:07:11,430 [DEBUG][       Thread-261959][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 17:07:11,430 [DEBUG][       Thread-261959][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:07:11,430 [DEBUG][       Thread-261959][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:07:11,430 [DEBUG][       Thread-261959][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:07:11,430 [DEBUG][       Thread-261959][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:07:11,430 [DEBUG][       Thread-261959][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 17:07:11,430 [DEBUG][       Thread-261959][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 17:07:11,430 [DEBUG][       Thread-261959][   transport.py][1871] : client lang: <none>
2025-06-13 17:07:11,430 [DEBUG][       Thread-261959][   transport.py][1871] : server lang: <none>
2025-06-13 17:07:11,430 [DEBUG][       Thread-261959][   transport.py][1871] : kex follows: False
2025-06-13 17:07:11,430 [DEBUG][       Thread-261959][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 17:07:11,430 [DEBUG][       Thread-261959][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 17:07:11,430 [DEBUG][       Thread-261959][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 17:07:11,430 [DEBUG][       Thread-261959][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 17:07:11,431 [DEBUG][       Thread-261959][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 17:07:11,431 [DEBUG][       Thread-261959][   transport.py][1871] : Compression: none
2025-06-13 17:07:11,431 [DEBUG][       Thread-261959][   transport.py][1871] : === End of kex handshake ===
2025-06-13 17:07:11,447 [DEBUG][       Thread-261959][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 17:07:11,447 [DEBUG][       Thread-261959][   transport.py][1871] : Switch to new keys ...
2025-06-13 17:07:11,448 [DEBUG][       Thread-261959][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 17:07:11,448 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 17:07:11,448 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 17:07:11,450 [DEBUG][       Thread-261959][   transport.py][1871] : userauth is OK
2025-06-13 17:07:11,462 [ INFO][       Thread-261959][   transport.py][1871] : Authentication (password) successful!
2025-06-13 17:07:11,463 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 17:07:12,078 [DEBUG][       Thread-261959][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 17:07:12,078 [DEBUG][       Thread-261959][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 17:07:12,121 [DEBUG][       Thread-261959][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 17:07:12,121 [DEBUG][       Thread-261959][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 17:07:12,124 [DEBUG][       Thread-261959][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 17:07:12,138 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 17:07:12,139 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 17:07:12,141 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 17:07:12,143 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 17:07:12,149 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 17:07:12,150 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 17:07:12,151 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 17:07:12,151 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 17:07:12,151 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.629795 -999.00  +13.20  16.34     36   -1.40 1 1 1 1 1   887    0 14.34 1.90 ----- 17.0 16.3 41.8 18.2 15.2 -29.7 14.8 -29.9 15.2 -28.9 15.9 -28.7
2025-06-13 17:07:12,152 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 17:07:12,152 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 17:07:12,152 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.629795
2025-06-13 17:07:12,152 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 17:07:12,153 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 17:07:12,153 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 17:07:12,153 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 17:07:12,153 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 17:07:12,153 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T17:07:04', tmtdew=16.59, humidity=31.45, cloud=0.0, wind=14.5, temperature=13.28, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T15:06:54.288', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 17:07:12,153 [DEBUG][       Thread-261959][   transport.py][1871] : EOF in transport thread
2025-06-13 17:07:12,237 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 17:07:12,249 [DEBUG][       Thread-261962][   transport.py][1871] : starting thread (client mode): 0x86350070
2025-06-13 17:07:12,249 [DEBUG][       Thread-261962][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 17:07:12,266 [DEBUG][       Thread-261962][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 17:07:12,267 [ INFO][       Thread-261962][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 17:07:12,274 [DEBUG][       Thread-261962][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 17:07:12,274 [DEBUG][       Thread-261962][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 17:07:12,274 [DEBUG][       Thread-261962][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 17:07:12,274 [DEBUG][       Thread-261962][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:07:12,274 [DEBUG][       Thread-261962][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:07:12,275 [DEBUG][       Thread-261962][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:07:12,275 [DEBUG][       Thread-261962][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:07:12,275 [DEBUG][       Thread-261962][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 17:07:12,275 [DEBUG][       Thread-261962][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 17:07:12,275 [DEBUG][       Thread-261962][   transport.py][1871] : client lang: <none>
2025-06-13 17:07:12,275 [DEBUG][       Thread-261962][   transport.py][1871] : server lang: <none>
2025-06-13 17:07:12,275 [DEBUG][       Thread-261962][   transport.py][1871] : kex follows: False
2025-06-13 17:07:12,275 [DEBUG][       Thread-261962][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 17:07:12,275 [DEBUG][       Thread-261962][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 17:07:12,275 [DEBUG][       Thread-261962][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 17:07:12,275 [DEBUG][       Thread-261962][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 17:07:12,275 [DEBUG][       Thread-261962][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 17:07:12,275 [DEBUG][       Thread-261962][   transport.py][1871] : Compression: none
2025-06-13 17:07:12,275 [DEBUG][       Thread-261962][   transport.py][1871] : === End of kex handshake ===
2025-06-13 17:07:12,331 [DEBUG][       Thread-261962][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 17:07:12,332 [DEBUG][       Thread-261962][   transport.py][1871] : Switch to new keys ...
2025-06-13 17:07:12,332 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 17:07:12,333 [DEBUG][       Thread-261962][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 17:07:12,333 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 17:07:12,388 [DEBUG][       Thread-261962][   transport.py][1871] : userauth is OK
2025-06-13 17:07:12,388 [DEBUG][       Thread-261962][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 17:07:12,388 [DEBUG][       Thread-261962][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 17:07:12,388 [DEBUG][       Thread-261962][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 17:07:12,388 [DEBUG][       Thread-261962][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 17:07:12,409 [ INFO][       Thread-261962][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 17:07:12,409 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 17:07:12,410 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 17:07:13,403 [DEBUG][       Thread-261962][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 17:07:13,403 [DEBUG][       Thread-261962][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 17:07:13,452 [DEBUG][       Thread-261962][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 17:07:13,452 [DEBUG][       Thread-261962][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 17:07:13,461 [DEBUG][       Thread-261962][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 17:07:13,471 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 17:07:13,471 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 17:07:13,480 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 17:07:13,488 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 17:07:13,488 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 17:07:13,489 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 17:07:13,496 [DEBUG][       Thread-261962][   transport.py][1871] : EOF in transport thread
2025-06-13 17:07:13,499 [DEBUG][Thread-261964 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:07:22,523 [DEBUG][Thread-261965 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:07:23,439 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:07:23,440 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:07:23,499 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 17:07:23,499 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 17:07:23,499 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 17:07:23,502 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 17:07:23,969 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 17, 7, 4), 16.59, 31.45, 0.0, 14.5, 13.28, 0, 0, 0, 2, 0, 0),)
2025-06-13 17:07:23,969 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 17:07:04
2025-06-13 17:07:24,051 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 17:07:24,055 [DEBUG][       Thread-261966][   transport.py][1871] : starting thread (client mode): 0x86369e70
2025-06-13 17:07:24,055 [DEBUG][       Thread-261966][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 17:07:24,075 [DEBUG][       Thread-261966][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 17:07:24,075 [ INFO][       Thread-261966][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 17:07:24,078 [DEBUG][       Thread-261966][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 17:07:24,079 [DEBUG][       Thread-261966][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 17:07:24,079 [DEBUG][       Thread-261966][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 17:07:24,079 [DEBUG][       Thread-261966][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:07:24,079 [DEBUG][       Thread-261966][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:07:24,079 [DEBUG][       Thread-261966][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:07:24,079 [DEBUG][       Thread-261966][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:07:24,079 [DEBUG][       Thread-261966][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 17:07:24,079 [DEBUG][       Thread-261966][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 17:07:24,079 [DEBUG][       Thread-261966][   transport.py][1871] : client lang: <none>
2025-06-13 17:07:24,079 [DEBUG][       Thread-261966][   transport.py][1871] : server lang: <none>
2025-06-13 17:07:24,079 [DEBUG][       Thread-261966][   transport.py][1871] : kex follows: False
2025-06-13 17:07:24,079 [DEBUG][       Thread-261966][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 17:07:24,079 [DEBUG][       Thread-261966][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 17:07:24,079 [DEBUG][       Thread-261966][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 17:07:24,079 [DEBUG][       Thread-261966][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 17:07:24,079 [DEBUG][       Thread-261966][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 17:07:24,079 [DEBUG][       Thread-261966][   transport.py][1871] : Compression: none
2025-06-13 17:07:24,079 [DEBUG][       Thread-261966][   transport.py][1871] : === End of kex handshake ===
2025-06-13 17:07:24,095 [DEBUG][       Thread-261966][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 17:07:24,095 [DEBUG][       Thread-261966][   transport.py][1871] : Switch to new keys ...
2025-06-13 17:07:24,096 [DEBUG][       Thread-261966][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 17:07:24,096 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 17:07:24,096 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 17:07:24,098 [DEBUG][       Thread-261966][   transport.py][1871] : userauth is OK
2025-06-13 17:07:24,122 [ INFO][       Thread-261966][   transport.py][1871] : Authentication (password) successful!
2025-06-13 17:07:24,123 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 17:07:24,760 [DEBUG][       Thread-261966][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 17:07:24,761 [DEBUG][       Thread-261966][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 17:07:24,805 [DEBUG][       Thread-261966][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 17:07:24,805 [DEBUG][       Thread-261966][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 17:07:24,809 [DEBUG][       Thread-261966][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 17:07:24,822 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 17:07:24,822 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 17:07:24,824 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 17:07:24,826 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 17:07:24,832 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 17:07:24,833 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 17:07:24,834 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 17:07:24,834 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 17:07:24,834 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.629795 -999.00  +13.20  16.34     36   -1.40 1 1 1 1 1   887    0 14.34 1.90 ----- 17.0 16.3 41.8 18.2 15.2 -29.7 14.8 -29.9 15.2 -28.9 15.9 -28.7
2025-06-13 17:07:24,834 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 17:07:24,834 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 17:07:24,835 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.629795
2025-06-13 17:07:24,835 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 17:07:24,835 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 17:07:24,836 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 17:07:24,836 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 17:07:24,836 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 17:07:24,836 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T17:07:04', tmtdew=16.59, humidity=31.45, cloud=0.0, wind=14.5, temperature=13.28, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T15:06:54.288', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 17:07:24,836 [DEBUG][       Thread-261966][   transport.py][1871] : EOF in transport thread
2025-06-13 17:07:24,920 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 17:07:24,930 [DEBUG][       Thread-261969][   transport.py][1871] : starting thread (client mode): 0x863ee890
2025-06-13 17:07:24,930 [DEBUG][       Thread-261969][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 17:07:24,945 [DEBUG][       Thread-261969][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 17:07:24,945 [ INFO][       Thread-261969][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 17:07:24,952 [DEBUG][       Thread-261969][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 17:07:24,952 [DEBUG][       Thread-261969][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 17:07:24,952 [DEBUG][       Thread-261969][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 17:07:24,952 [DEBUG][       Thread-261969][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:07:24,952 [DEBUG][       Thread-261969][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:07:24,952 [DEBUG][       Thread-261969][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:07:24,953 [DEBUG][       Thread-261969][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:07:24,953 [DEBUG][       Thread-261969][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 17:07:24,953 [DEBUG][       Thread-261969][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 17:07:24,953 [DEBUG][       Thread-261969][   transport.py][1871] : client lang: <none>
2025-06-13 17:07:24,953 [DEBUG][       Thread-261969][   transport.py][1871] : server lang: <none>
2025-06-13 17:07:24,953 [DEBUG][       Thread-261969][   transport.py][1871] : kex follows: False
2025-06-13 17:07:24,953 [DEBUG][       Thread-261969][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 17:07:24,953 [DEBUG][       Thread-261969][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 17:07:24,953 [DEBUG][       Thread-261969][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 17:07:24,953 [DEBUG][       Thread-261969][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 17:07:24,953 [DEBUG][       Thread-261969][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 17:07:24,953 [DEBUG][       Thread-261969][   transport.py][1871] : Compression: none
2025-06-13 17:07:24,953 [DEBUG][       Thread-261969][   transport.py][1871] : === End of kex handshake ===
2025-06-13 17:07:25,011 [DEBUG][       Thread-261969][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 17:07:25,011 [DEBUG][       Thread-261969][   transport.py][1871] : Switch to new keys ...
2025-06-13 17:07:25,012 [DEBUG][       Thread-261969][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 17:07:25,012 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 17:07:25,012 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 17:07:25,067 [DEBUG][       Thread-261969][   transport.py][1871] : userauth is OK
2025-06-13 17:07:25,068 [DEBUG][       Thread-261969][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 17:07:25,068 [DEBUG][       Thread-261969][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 17:07:25,068 [DEBUG][       Thread-261969][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 17:07:25,068 [DEBUG][       Thread-261969][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 17:07:25,087 [ INFO][       Thread-261969][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 17:07:25,087 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 17:07:25,088 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 17:07:25,181 [DEBUG][Thread-261971 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:07:26,099 [DEBUG][       Thread-261969][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 17:07:26,099 [DEBUG][       Thread-261969][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 17:07:26,148 [DEBUG][       Thread-261969][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 17:07:26,148 [DEBUG][       Thread-261969][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 17:07:26,157 [DEBUG][       Thread-261969][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 17:07:26,167 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 17:07:26,167 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 17:07:26,176 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 17:07:26,185 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 17:07:26,185 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 17:07:26,186 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 17:07:26,194 [DEBUG][       Thread-261969][   transport.py][1871] : EOF in transport thread
2025-06-13 17:07:31,544 [DEBUG][Thread-261972 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:07:36,194 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 17:07:36,195 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 17:07:36,195 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 17:07:36,197 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 17:07:36,661 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 17, 7, 4), 16.59, 31.45, 0.0, 14.5, 13.28, 0, 0, 0, 2, 0, 0),)
2025-06-13 17:07:36,661 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 17:07:04
2025-06-13 17:07:36,743 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 17:07:36,749 [DEBUG][       Thread-261973][   transport.py][1871] : starting thread (client mode): 0x86392740
2025-06-13 17:07:36,749 [DEBUG][       Thread-261973][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 17:07:36,762 [DEBUG][       Thread-261973][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 17:07:36,762 [ INFO][       Thread-261973][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 17:07:36,766 [DEBUG][       Thread-261973][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 17:07:36,766 [DEBUG][       Thread-261973][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 17:07:36,766 [DEBUG][       Thread-261973][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 17:07:36,766 [DEBUG][       Thread-261973][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:07:36,766 [DEBUG][       Thread-261973][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:07:36,766 [DEBUG][       Thread-261973][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:07:36,766 [DEBUG][       Thread-261973][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:07:36,766 [DEBUG][       Thread-261973][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 17:07:36,766 [DEBUG][       Thread-261973][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 17:07:36,766 [DEBUG][       Thread-261973][   transport.py][1871] : client lang: <none>
2025-06-13 17:07:36,766 [DEBUG][       Thread-261973][   transport.py][1871] : server lang: <none>
2025-06-13 17:07:36,766 [DEBUG][       Thread-261973][   transport.py][1871] : kex follows: False
2025-06-13 17:07:36,766 [DEBUG][       Thread-261973][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 17:07:36,766 [DEBUG][       Thread-261973][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 17:07:36,766 [DEBUG][       Thread-261973][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 17:07:36,766 [DEBUG][       Thread-261973][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 17:07:36,766 [DEBUG][       Thread-261973][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 17:07:36,766 [DEBUG][       Thread-261973][   transport.py][1871] : Compression: none
2025-06-13 17:07:36,766 [DEBUG][       Thread-261973][   transport.py][1871] : === End of kex handshake ===
2025-06-13 17:07:36,782 [DEBUG][       Thread-261973][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 17:07:36,783 [DEBUG][       Thread-261973][   transport.py][1871] : Switch to new keys ...
2025-06-13 17:07:36,783 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 17:07:36,783 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 17:07:36,784 [DEBUG][       Thread-261973][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 17:07:36,784 [DEBUG][       Thread-261973][   transport.py][1871] : userauth is OK
2025-06-13 17:07:36,808 [ INFO][       Thread-261973][   transport.py][1871] : Authentication (password) successful!
2025-06-13 17:07:36,809 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 17:07:37,451 [DEBUG][       Thread-261973][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 17:07:37,451 [DEBUG][       Thread-261973][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 17:07:37,492 [DEBUG][       Thread-261973][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 17:07:37,493 [DEBUG][       Thread-261973][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 17:07:37,495 [DEBUG][       Thread-261973][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 17:07:37,507 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 17:07:37,507 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 17:07:37,508 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 17:07:37,509 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 17:07:37,512 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 17:07:37,513 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 17:07:37,513 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 17:07:37,513 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 17:07:37,513 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.629795 -999.00  +13.20  16.34     36   -1.40 1 1 1 1 1   887    0 14.34 1.90 ----- 17.0 16.3 41.8 18.2 15.2 -29.7 14.8 -29.9 15.2 -28.9 15.9 -28.7
2025-06-13 17:07:37,513 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 17:07:37,513 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 17:07:37,513 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.629795
2025-06-13 17:07:37,513 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 17:07:37,513 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 17:07:37,513 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 17:07:37,513 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 17:07:37,513 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 17:07:37,514 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T17:07:04', tmtdew=16.59, humidity=31.45, cloud=0.0, wind=14.5, temperature=13.28, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T15:06:54.288', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 17:07:37,514 [DEBUG][       Thread-261973][   transport.py][1871] : EOF in transport thread
2025-06-13 17:07:37,588 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 17:07:37,599 [DEBUG][       Thread-261976][   transport.py][1871] : starting thread (client mode): 0x8636a890
2025-06-13 17:07:37,599 [DEBUG][       Thread-261976][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 17:07:37,615 [DEBUG][       Thread-261976][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 17:07:37,615 [ INFO][       Thread-261976][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 17:07:37,622 [DEBUG][       Thread-261976][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 17:07:37,622 [DEBUG][       Thread-261976][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 17:07:37,622 [DEBUG][       Thread-261976][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 17:07:37,622 [DEBUG][       Thread-261976][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:07:37,622 [DEBUG][       Thread-261976][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:07:37,622 [DEBUG][       Thread-261976][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:07:37,622 [DEBUG][       Thread-261976][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:07:37,622 [DEBUG][       Thread-261976][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 17:07:37,622 [DEBUG][       Thread-261976][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 17:07:37,622 [DEBUG][       Thread-261976][   transport.py][1871] : client lang: <none>
2025-06-13 17:07:37,622 [DEBUG][       Thread-261976][   transport.py][1871] : server lang: <none>
2025-06-13 17:07:37,622 [DEBUG][       Thread-261976][   transport.py][1871] : kex follows: False
2025-06-13 17:07:37,622 [DEBUG][       Thread-261976][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 17:07:37,622 [DEBUG][       Thread-261976][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 17:07:37,622 [DEBUG][       Thread-261976][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 17:07:37,622 [DEBUG][       Thread-261976][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 17:07:37,622 [DEBUG][       Thread-261976][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 17:07:37,622 [DEBUG][       Thread-261976][   transport.py][1871] : Compression: none
2025-06-13 17:07:37,622 [DEBUG][       Thread-261976][   transport.py][1871] : === End of kex handshake ===
2025-06-13 17:07:37,678 [DEBUG][       Thread-261976][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 17:07:37,678 [DEBUG][       Thread-261976][   transport.py][1871] : Switch to new keys ...
2025-06-13 17:07:37,678 [DEBUG][       Thread-261976][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 17:07:37,678 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 17:07:37,678 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 17:07:37,735 [DEBUG][       Thread-261976][   transport.py][1871] : userauth is OK
2025-06-13 17:07:37,735 [DEBUG][       Thread-261976][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 17:07:37,735 [DEBUG][       Thread-261976][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 17:07:37,735 [DEBUG][       Thread-261976][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 17:07:37,735 [DEBUG][       Thread-261976][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 17:07:37,749 [ INFO][       Thread-261976][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 17:07:37,749 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 17:07:37,749 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 17:07:38,092 [DEBUG][Thread-261978 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:07:38,738 [DEBUG][       Thread-261976][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 17:07:38,738 [DEBUG][       Thread-261976][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 17:07:38,788 [DEBUG][       Thread-261976][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 17:07:38,788 [DEBUG][       Thread-261976][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 17:07:38,797 [DEBUG][       Thread-261976][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 17:07:38,805 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 17:07:38,805 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 17:07:38,814 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 17:07:38,822 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 17:07:38,823 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 17:07:38,823 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 17:07:38,831 [DEBUG][       Thread-261976][   transport.py][1871] : EOF in transport thread
2025-06-13 17:07:39,155 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:07:39,156 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:07:40,564 [DEBUG][Thread-261979 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:07:48,833 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 17:07:48,834 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 17:07:48,834 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 17:07:48,836 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 17:07:49,309 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 17, 7, 36), 16.55, 31.85, 0.0, 14.45, 13.29, 0, 0, 0, 2, 0, 0),)
2025-06-13 17:07:49,309 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 17:07:36
2025-06-13 17:07:49,391 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 17:07:49,395 [DEBUG][       Thread-261980][   transport.py][1871] : starting thread (client mode): 0x86369d50
2025-06-13 17:07:49,396 [DEBUG][       Thread-261980][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 17:07:49,417 [DEBUG][       Thread-261980][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 17:07:49,417 [ INFO][       Thread-261980][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 17:07:49,421 [DEBUG][       Thread-261980][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 17:07:49,421 [DEBUG][       Thread-261980][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 17:07:49,421 [DEBUG][       Thread-261980][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 17:07:49,421 [DEBUG][       Thread-261980][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:07:49,421 [DEBUG][       Thread-261980][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:07:49,421 [DEBUG][       Thread-261980][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:07:49,421 [DEBUG][       Thread-261980][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:07:49,421 [DEBUG][       Thread-261980][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 17:07:49,421 [DEBUG][       Thread-261980][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 17:07:49,421 [DEBUG][       Thread-261980][   transport.py][1871] : client lang: <none>
2025-06-13 17:07:49,421 [DEBUG][       Thread-261980][   transport.py][1871] : server lang: <none>
2025-06-13 17:07:49,421 [DEBUG][       Thread-261980][   transport.py][1871] : kex follows: False
2025-06-13 17:07:49,421 [DEBUG][       Thread-261980][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 17:07:49,421 [DEBUG][       Thread-261980][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 17:07:49,422 [DEBUG][       Thread-261980][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 17:07:49,422 [DEBUG][       Thread-261980][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 17:07:49,422 [DEBUG][       Thread-261980][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 17:07:49,422 [DEBUG][       Thread-261980][   transport.py][1871] : Compression: none
2025-06-13 17:07:49,422 [DEBUG][       Thread-261980][   transport.py][1871] : === End of kex handshake ===
2025-06-13 17:07:49,440 [DEBUG][       Thread-261980][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 17:07:49,441 [DEBUG][       Thread-261980][   transport.py][1871] : Switch to new keys ...
2025-06-13 17:07:49,441 [DEBUG][       Thread-261980][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 17:07:49,442 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 17:07:49,442 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 17:07:49,443 [DEBUG][       Thread-261980][   transport.py][1871] : userauth is OK
2025-06-13 17:07:49,456 [ INFO][       Thread-261980][   transport.py][1871] : Authentication (password) successful!
2025-06-13 17:07:49,457 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 17:07:49,586 [DEBUG][Thread-261982 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:07:50,091 [DEBUG][       Thread-261980][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 17:07:50,091 [DEBUG][       Thread-261980][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 17:07:50,133 [DEBUG][       Thread-261980][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 17:07:50,133 [DEBUG][       Thread-261980][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 17:07:50,136 [DEBUG][       Thread-261980][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 17:07:50,148 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 17:07:50,148 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 17:07:50,149 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 17:07:50,150 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 17:07:50,153 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 17:07:50,154 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 17:07:50,154 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 17:07:50,154 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 17:07:50,154 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.630143 -999.00  +13.20  14.29     35   -1.50 1 1 1 1 1   887    0 14.37 3.12 ----- 15.8 14.3 46.6 18.8 15.2 -29.5 14.8 -30.0 15.2 -29.2 15.9 -29.0
2025-06-13 17:07:50,154 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 17:07:50,154 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 17:07:50,154 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.630143
2025-06-13 17:07:50,154 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 17:07:50,154 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 17:07:50,154 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 17:07:50,154 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 17:07:50,154 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 17:07:50,154 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T17:07:36', tmtdew=16.55, humidity=31.85, cloud=0.0, wind=14.45, temperature=13.29, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T15:07:24.355', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 17:07:50,155 [DEBUG][       Thread-261980][   transport.py][1871] : EOF in transport thread
2025-06-13 17:07:50,225 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 17:07:50,237 [DEBUG][       Thread-261984][   transport.py][1871] : starting thread (client mode): 0x868c85e0
2025-06-13 17:07:50,237 [DEBUG][       Thread-261984][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 17:07:50,258 [DEBUG][       Thread-261984][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 17:07:50,259 [ INFO][       Thread-261984][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 17:07:50,269 [DEBUG][       Thread-261984][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 17:07:50,270 [DEBUG][       Thread-261984][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 17:07:50,270 [DEBUG][       Thread-261984][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 17:07:50,270 [DEBUG][       Thread-261984][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:07:50,270 [DEBUG][       Thread-261984][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:07:50,270 [DEBUG][       Thread-261984][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:07:50,270 [DEBUG][       Thread-261984][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:07:50,270 [DEBUG][       Thread-261984][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 17:07:50,270 [DEBUG][       Thread-261984][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 17:07:50,270 [DEBUG][       Thread-261984][   transport.py][1871] : client lang: <none>
2025-06-13 17:07:50,270 [DEBUG][       Thread-261984][   transport.py][1871] : server lang: <none>
2025-06-13 17:07:50,270 [DEBUG][       Thread-261984][   transport.py][1871] : kex follows: False
2025-06-13 17:07:50,270 [DEBUG][       Thread-261984][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 17:07:50,270 [DEBUG][       Thread-261984][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 17:07:50,270 [DEBUG][       Thread-261984][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 17:07:50,271 [DEBUG][       Thread-261984][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 17:07:50,271 [DEBUG][       Thread-261984][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 17:07:50,271 [DEBUG][       Thread-261984][   transport.py][1871] : Compression: none
2025-06-13 17:07:50,271 [DEBUG][       Thread-261984][   transport.py][1871] : === End of kex handshake ===
2025-06-13 17:07:50,326 [DEBUG][       Thread-261984][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 17:07:50,326 [DEBUG][       Thread-261984][   transport.py][1871] : Switch to new keys ...
2025-06-13 17:07:50,327 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 17:07:50,328 [DEBUG][       Thread-261984][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 17:07:50,329 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 17:07:50,385 [DEBUG][       Thread-261984][   transport.py][1871] : userauth is OK
2025-06-13 17:07:50,385 [DEBUG][       Thread-261984][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 17:07:50,385 [DEBUG][       Thread-261984][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 17:07:50,386 [DEBUG][       Thread-261984][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 17:07:50,386 [DEBUG][       Thread-261984][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 17:07:50,405 [ INFO][       Thread-261984][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 17:07:50,405 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 17:07:50,405 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 17:07:51,408 [DEBUG][       Thread-261984][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 17:07:51,409 [DEBUG][       Thread-261984][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 17:07:51,461 [DEBUG][       Thread-261984][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 17:07:51,461 [DEBUG][       Thread-261984][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 17:07:51,471 [DEBUG][       Thread-261984][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 17:07:51,481 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 17:07:51,481 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 17:07:51,491 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 17:07:51,501 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 17:07:51,501 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 17:07:51,502 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 17:07:51,510 [DEBUG][       Thread-261984][   transport.py][1871] : EOF in transport thread
2025-06-13 17:07:58,606 [DEBUG][Thread-261986 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:08:01,512 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 17:08:01,512 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 17:08:01,512 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 17:08:01,515 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 17:08:01,982 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 17, 7, 36), 16.55, 31.85, 0.0, 14.45, 13.29, 0, 0, 0, 2, 0, 0),)
2025-06-13 17:08:01,982 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 17:07:36
2025-06-13 17:08:02,063 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 17:08:02,070 [DEBUG][       Thread-261987][   transport.py][1871] : starting thread (client mode): 0x86368460
2025-06-13 17:08:02,070 [DEBUG][       Thread-261987][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 17:08:02,090 [DEBUG][       Thread-261987][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 17:08:02,090 [ INFO][       Thread-261987][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 17:08:02,093 [DEBUG][       Thread-261987][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 17:08:02,093 [DEBUG][       Thread-261987][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 17:08:02,093 [DEBUG][       Thread-261987][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 17:08:02,093 [DEBUG][       Thread-261987][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:08:02,094 [DEBUG][       Thread-261987][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:08:02,094 [DEBUG][       Thread-261987][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:08:02,094 [DEBUG][       Thread-261987][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:08:02,094 [DEBUG][       Thread-261987][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 17:08:02,094 [DEBUG][       Thread-261987][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 17:08:02,094 [DEBUG][       Thread-261987][   transport.py][1871] : client lang: <none>
2025-06-13 17:08:02,094 [DEBUG][       Thread-261987][   transport.py][1871] : server lang: <none>
2025-06-13 17:08:02,094 [DEBUG][       Thread-261987][   transport.py][1871] : kex follows: False
2025-06-13 17:08:02,094 [DEBUG][       Thread-261987][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 17:08:02,094 [DEBUG][       Thread-261987][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 17:08:02,094 [DEBUG][       Thread-261987][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 17:08:02,094 [DEBUG][       Thread-261987][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 17:08:02,094 [DEBUG][       Thread-261987][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 17:08:02,094 [DEBUG][       Thread-261987][   transport.py][1871] : Compression: none
2025-06-13 17:08:02,094 [DEBUG][       Thread-261987][   transport.py][1871] : === End of kex handshake ===
2025-06-13 17:08:02,112 [DEBUG][       Thread-261987][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 17:08:02,113 [DEBUG][       Thread-261987][   transport.py][1871] : Switch to new keys ...
2025-06-13 17:08:02,113 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 17:08:02,113 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 17:08:02,114 [DEBUG][       Thread-261987][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 17:08:02,155 [DEBUG][       Thread-261987][   transport.py][1871] : userauth is OK
2025-06-13 17:08:02,180 [ INFO][       Thread-261987][   transport.py][1871] : Authentication (password) successful!
2025-06-13 17:08:02,180 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 17:08:02,800 [DEBUG][       Thread-261987][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 17:08:02,801 [DEBUG][       Thread-261987][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 17:08:02,845 [DEBUG][       Thread-261987][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 17:08:02,845 [DEBUG][       Thread-261987][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 17:08:02,848 [DEBUG][       Thread-261987][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 17:08:02,860 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 17:08:02,860 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 17:08:02,862 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 17:08:02,864 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 17:08:02,870 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 17:08:02,872 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 17:08:02,872 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 17:08:02,873 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 17:08:02,873 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.630143 -999.00  +13.20  14.29     35   -1.50 1 1 1 1 1   887    0 14.37 3.12 ----- 15.8 14.3 46.6 18.8 15.2 -29.5 14.8 -30.0 15.2 -29.2 15.9 -29.0
2025-06-13 17:08:02,873 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 17:08:02,873 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 17:08:02,873 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.630143
2025-06-13 17:08:02,874 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 17:08:02,874 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 17:08:02,874 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 17:08:02,874 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 17:08:02,874 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 17:08:02,875 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T17:07:36', tmtdew=16.55, humidity=31.85, cloud=0.0, wind=14.45, temperature=13.29, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T15:07:24.355', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 17:08:02,876 [DEBUG][       Thread-261987][   transport.py][1871] : EOF in transport thread
2025-06-13 17:08:02,951 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 17:08:02,963 [DEBUG][       Thread-261990][   transport.py][1871] : starting thread (client mode): 0x863ef760
2025-06-13 17:08:02,963 [DEBUG][       Thread-261990][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 17:08:02,977 [DEBUG][       Thread-261990][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 17:08:02,978 [ INFO][       Thread-261990][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 17:08:02,985 [DEBUG][       Thread-261990][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 17:08:02,985 [DEBUG][       Thread-261990][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 17:08:02,986 [DEBUG][       Thread-261990][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 17:08:02,986 [DEBUG][       Thread-261990][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:08:02,986 [DEBUG][       Thread-261990][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:08:02,986 [DEBUG][       Thread-261990][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:08:02,986 [DEBUG][       Thread-261990][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:08:02,986 [DEBUG][       Thread-261990][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 17:08:02,986 [DEBUG][       Thread-261990][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 17:08:02,986 [DEBUG][       Thread-261990][   transport.py][1871] : client lang: <none>
2025-06-13 17:08:02,986 [DEBUG][       Thread-261990][   transport.py][1871] : server lang: <none>
2025-06-13 17:08:02,986 [DEBUG][       Thread-261990][   transport.py][1871] : kex follows: False
2025-06-13 17:08:02,986 [DEBUG][       Thread-261990][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 17:08:02,986 [DEBUG][       Thread-261990][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 17:08:02,986 [DEBUG][       Thread-261990][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 17:08:02,986 [DEBUG][       Thread-261990][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 17:08:02,986 [DEBUG][       Thread-261990][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 17:08:02,986 [DEBUG][       Thread-261990][   transport.py][1871] : Compression: none
2025-06-13 17:08:02,986 [DEBUG][       Thread-261990][   transport.py][1871] : === End of kex handshake ===
2025-06-13 17:08:03,049 [DEBUG][       Thread-261990][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 17:08:03,049 [DEBUG][       Thread-261990][   transport.py][1871] : Switch to new keys ...
2025-06-13 17:08:03,050 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 17:08:03,051 [DEBUG][       Thread-261990][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 17:08:03,051 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 17:08:03,108 [DEBUG][       Thread-261990][   transport.py][1871] : userauth is OK
2025-06-13 17:08:03,108 [DEBUG][       Thread-261990][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 17:08:03,108 [DEBUG][       Thread-261990][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 17:08:03,108 [DEBUG][       Thread-261990][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 17:08:03,108 [DEBUG][       Thread-261990][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 17:08:03,127 [ INFO][       Thread-261990][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 17:08:03,127 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 17:08:03,128 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 17:08:04,131 [DEBUG][       Thread-261990][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 17:08:04,131 [DEBUG][       Thread-261990][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 17:08:04,179 [DEBUG][       Thread-261990][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 17:08:04,179 [DEBUG][       Thread-261990][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 17:08:04,188 [DEBUG][       Thread-261990][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 17:08:04,196 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 17:08:04,196 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 17:08:04,204 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 17:08:04,212 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 17:08:04,212 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 17:08:04,212 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 17:08:04,219 [DEBUG][       Thread-261990][   transport.py][1871] : EOF in transport thread
2025-06-13 17:08:07,638 [DEBUG][Thread-261992 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:08:14,220 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 17:08:14,220 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 17:08:14,220 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 17:08:14,221 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 17:08:14,674 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 17, 8, 8), 16.49, 31.97, 0.0, 13.82, 13.26, 0, 0, 0, 2, 0, 0),)
2025-06-13 17:08:14,674 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 17:08:08
2025-06-13 17:08:14,755 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 17:08:14,761 [DEBUG][       Thread-261993][   transport.py][1871] : starting thread (client mode): 0x86369ed0
2025-06-13 17:08:14,761 [DEBUG][       Thread-261993][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 17:08:14,788 [DEBUG][       Thread-261993][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 17:08:14,788 [ INFO][       Thread-261993][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 17:08:14,790 [DEBUG][       Thread-261993][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 17:08:14,790 [DEBUG][       Thread-261993][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 17:08:14,790 [DEBUG][       Thread-261993][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 17:08:14,791 [DEBUG][       Thread-261993][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:08:14,791 [DEBUG][       Thread-261993][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:08:14,791 [DEBUG][       Thread-261993][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:08:14,791 [DEBUG][       Thread-261993][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:08:14,791 [DEBUG][       Thread-261993][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 17:08:14,791 [DEBUG][       Thread-261993][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 17:08:14,791 [DEBUG][       Thread-261993][   transport.py][1871] : client lang: <none>
2025-06-13 17:08:14,791 [DEBUG][       Thread-261993][   transport.py][1871] : server lang: <none>
2025-06-13 17:08:14,791 [DEBUG][       Thread-261993][   transport.py][1871] : kex follows: False
2025-06-13 17:08:14,791 [DEBUG][       Thread-261993][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 17:08:14,791 [DEBUG][       Thread-261993][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 17:08:14,791 [DEBUG][       Thread-261993][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 17:08:14,791 [DEBUG][       Thread-261993][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 17:08:14,791 [DEBUG][       Thread-261993][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 17:08:14,791 [DEBUG][       Thread-261993][   transport.py][1871] : Compression: none
2025-06-13 17:08:14,791 [DEBUG][       Thread-261993][   transport.py][1871] : === End of kex handshake ===
2025-06-13 17:08:14,808 [DEBUG][       Thread-261993][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 17:08:14,809 [DEBUG][       Thread-261993][   transport.py][1871] : Switch to new keys ...
2025-06-13 17:08:14,810 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 17:08:14,810 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 17:08:14,810 [DEBUG][       Thread-261993][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 17:08:14,811 [DEBUG][       Thread-261993][   transport.py][1871] : userauth is OK
2025-06-13 17:08:14,835 [ INFO][       Thread-261993][   transport.py][1871] : Authentication (password) successful!
2025-06-13 17:08:14,836 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 17:08:15,491 [DEBUG][       Thread-261993][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 17:08:15,491 [DEBUG][       Thread-261993][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 17:08:15,537 [DEBUG][       Thread-261993][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 17:08:15,537 [DEBUG][       Thread-261993][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 17:08:15,540 [DEBUG][       Thread-261993][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 17:08:15,552 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 17:08:15,552 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 17:08:15,554 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 17:08:15,556 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 17:08:15,561 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 17:08:15,563 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 17:08:15,563 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 17:08:15,564 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 17:08:15,564 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.630143 -999.00  +13.20  14.29     35   -1.50 1 1 1 1 1   887    0 14.37 3.12 ----- 15.8 14.3 46.6 18.8 15.2 -29.5 14.8 -30.0 15.2 -29.2 15.9 -29.0
2025-06-13 17:08:15,564 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 17:08:15,564 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 17:08:15,564 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.630143
2025-06-13 17:08:15,565 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 17:08:15,565 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 17:08:15,565 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 17:08:15,565 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 17:08:15,565 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 17:08:15,566 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T17:08:08', tmtdew=16.49, humidity=31.97, cloud=0.0, wind=13.82, temperature=13.26, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T15:07:24.355', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 17:08:15,567 [DEBUG][       Thread-261993][   transport.py][1871] : EOF in transport thread
2025-06-13 17:08:15,649 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 17:08:15,661 [DEBUG][       Thread-261996][   transport.py][1871] : starting thread (client mode): 0x863501f0
2025-06-13 17:08:15,661 [DEBUG][       Thread-261996][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 17:08:15,676 [DEBUG][       Thread-261996][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 17:08:15,676 [ INFO][       Thread-261996][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 17:08:15,685 [DEBUG][       Thread-261996][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 17:08:15,686 [DEBUG][       Thread-261996][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 17:08:15,686 [DEBUG][       Thread-261996][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 17:08:15,686 [DEBUG][       Thread-261996][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:08:15,686 [DEBUG][       Thread-261996][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:08:15,686 [DEBUG][       Thread-261996][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:08:15,686 [DEBUG][       Thread-261996][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:08:15,686 [DEBUG][       Thread-261996][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 17:08:15,686 [DEBUG][       Thread-261996][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 17:08:15,686 [DEBUG][       Thread-261996][   transport.py][1871] : client lang: <none>
2025-06-13 17:08:15,686 [DEBUG][       Thread-261996][   transport.py][1871] : server lang: <none>
2025-06-13 17:08:15,686 [DEBUG][       Thread-261996][   transport.py][1871] : kex follows: False
2025-06-13 17:08:15,686 [DEBUG][       Thread-261996][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 17:08:15,686 [DEBUG][       Thread-261996][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 17:08:15,686 [DEBUG][       Thread-261996][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 17:08:15,686 [DEBUG][       Thread-261996][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 17:08:15,687 [DEBUG][       Thread-261996][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 17:08:15,687 [DEBUG][       Thread-261996][   transport.py][1871] : Compression: none
2025-06-13 17:08:15,687 [DEBUG][       Thread-261996][   transport.py][1871] : === End of kex handshake ===
2025-06-13 17:08:15,743 [DEBUG][       Thread-261996][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 17:08:15,744 [DEBUG][       Thread-261996][   transport.py][1871] : Switch to new keys ...
2025-06-13 17:08:15,745 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 17:08:15,745 [DEBUG][       Thread-261996][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 17:08:15,746 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 17:08:15,800 [DEBUG][       Thread-261996][   transport.py][1871] : userauth is OK
2025-06-13 17:08:15,800 [DEBUG][       Thread-261996][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 17:08:15,800 [DEBUG][       Thread-261996][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 17:08:15,800 [DEBUG][       Thread-261996][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 17:08:15,800 [DEBUG][       Thread-261996][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 17:08:15,819 [ INFO][       Thread-261996][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 17:08:15,819 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 17:08:15,820 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 17:08:16,661 [DEBUG][Thread-261998 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:08:16,847 [DEBUG][       Thread-261996][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 17:08:16,847 [DEBUG][       Thread-261996][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 17:08:16,896 [DEBUG][       Thread-261996][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 17:08:16,896 [DEBUG][       Thread-261996][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 17:08:16,905 [DEBUG][       Thread-261996][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 17:08:16,914 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 17:08:16,915 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 17:08:16,924 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 17:08:16,933 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 17:08:16,933 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 17:08:16,934 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 17:08:16,942 [DEBUG][       Thread-261996][   transport.py][1871] : EOF in transport thread
2025-06-13 17:08:23,577 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:08:23,578 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:08:25,241 [DEBUG][Thread-261999 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:08:25,696 [DEBUG][Thread-262000 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:08:26,944 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 17:08:26,945 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 17:08:26,945 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 17:08:26,948 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 17:08:27,416 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 17, 8, 8), 16.49, 31.97, 0.0, 13.82, 13.26, 0, 0, 0, 2, 0, 0),)
2025-06-13 17:08:27,416 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 17:08:08
2025-06-13 17:08:27,497 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 17:08:27,500 [DEBUG][       Thread-262001][   transport.py][1871] : starting thread (client mode): 0x86369930
2025-06-13 17:08:27,501 [DEBUG][       Thread-262001][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 17:08:27,522 [DEBUG][       Thread-262001][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 17:08:27,522 [ INFO][       Thread-262001][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 17:08:27,525 [DEBUG][       Thread-262001][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 17:08:27,525 [DEBUG][       Thread-262001][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 17:08:27,525 [DEBUG][       Thread-262001][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 17:08:27,525 [DEBUG][       Thread-262001][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:08:27,525 [DEBUG][       Thread-262001][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:08:27,525 [DEBUG][       Thread-262001][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:08:27,526 [DEBUG][       Thread-262001][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:08:27,526 [DEBUG][       Thread-262001][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 17:08:27,526 [DEBUG][       Thread-262001][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 17:08:27,526 [DEBUG][       Thread-262001][   transport.py][1871] : client lang: <none>
2025-06-13 17:08:27,526 [DEBUG][       Thread-262001][   transport.py][1871] : server lang: <none>
2025-06-13 17:08:27,526 [DEBUG][       Thread-262001][   transport.py][1871] : kex follows: False
2025-06-13 17:08:27,526 [DEBUG][       Thread-262001][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 17:08:27,526 [DEBUG][       Thread-262001][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 17:08:27,526 [DEBUG][       Thread-262001][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 17:08:27,526 [DEBUG][       Thread-262001][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 17:08:27,526 [DEBUG][       Thread-262001][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 17:08:27,526 [DEBUG][       Thread-262001][   transport.py][1871] : Compression: none
2025-06-13 17:08:27,526 [DEBUG][       Thread-262001][   transport.py][1871] : === End of kex handshake ===
2025-06-13 17:08:27,542 [DEBUG][       Thread-262001][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 17:08:27,543 [DEBUG][       Thread-262001][   transport.py][1871] : Switch to new keys ...
2025-06-13 17:08:27,543 [DEBUG][       Thread-262001][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 17:08:27,544 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 17:08:27,544 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 17:08:27,545 [DEBUG][       Thread-262001][   transport.py][1871] : userauth is OK
2025-06-13 17:08:27,569 [ INFO][       Thread-262001][   transport.py][1871] : Authentication (password) successful!
2025-06-13 17:08:27,570 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 17:08:28,217 [DEBUG][       Thread-262001][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 17:08:28,217 [DEBUG][       Thread-262001][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 17:08:28,261 [DEBUG][       Thread-262001][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 17:08:28,261 [DEBUG][       Thread-262001][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 17:08:28,264 [DEBUG][       Thread-262001][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 17:08:28,276 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 17:08:28,276 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 17:08:28,277 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 17:08:28,278 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 17:08:28,281 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 17:08:28,282 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 17:08:28,282 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 17:08:28,282 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 17:08:28,282 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.630490 -999.00  +13.20  18.03     35   -1.50 1 1 1 1 1   887    0 14.52 3.49 ----- 16.2 18.0 48.0 19.1 15.2 -29.5 14.8 -30.3 15.2 -29.2 15.8 -28.8
2025-06-13 17:08:28,282 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 17:08:28,282 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 17:08:28,282 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.630490
2025-06-13 17:08:28,283 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 17:08:28,283 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 17:08:28,283 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 17:08:28,283 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 17:08:28,283 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 17:08:28,283 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T17:08:08', tmtdew=16.49, humidity=31.97, cloud=0.0, wind=13.82, temperature=13.26, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T15:07:54.336', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 17:08:28,284 [DEBUG][       Thread-262001][   transport.py][1871] : EOF in transport thread
2025-06-13 17:08:28,354 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 17:08:28,363 [DEBUG][       Thread-262004][   transport.py][1871] : starting thread (client mode): 0x863a7f40
2025-06-13 17:08:28,363 [DEBUG][       Thread-262004][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 17:08:28,380 [DEBUG][       Thread-262004][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 17:08:28,380 [ INFO][       Thread-262004][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 17:08:28,388 [DEBUG][       Thread-262004][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 17:08:28,388 [DEBUG][       Thread-262004][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 17:08:28,388 [DEBUG][       Thread-262004][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 17:08:28,388 [DEBUG][       Thread-262004][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:08:28,388 [DEBUG][       Thread-262004][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:08:28,388 [DEBUG][       Thread-262004][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:08:28,388 [DEBUG][       Thread-262004][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:08:28,388 [DEBUG][       Thread-262004][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 17:08:28,388 [DEBUG][       Thread-262004][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 17:08:28,388 [DEBUG][       Thread-262004][   transport.py][1871] : client lang: <none>
2025-06-13 17:08:28,388 [DEBUG][       Thread-262004][   transport.py][1871] : server lang: <none>
2025-06-13 17:08:28,388 [DEBUG][       Thread-262004][   transport.py][1871] : kex follows: False
2025-06-13 17:08:28,388 [DEBUG][       Thread-262004][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 17:08:28,388 [DEBUG][       Thread-262004][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 17:08:28,388 [DEBUG][       Thread-262004][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 17:08:28,388 [DEBUG][       Thread-262004][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 17:08:28,389 [DEBUG][       Thread-262004][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 17:08:28,389 [DEBUG][       Thread-262004][   transport.py][1871] : Compression: none
2025-06-13 17:08:28,389 [DEBUG][       Thread-262004][   transport.py][1871] : === End of kex handshake ===
2025-06-13 17:08:28,447 [DEBUG][       Thread-262004][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 17:08:28,448 [DEBUG][       Thread-262004][   transport.py][1871] : Switch to new keys ...
2025-06-13 17:08:28,449 [DEBUG][       Thread-262004][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 17:08:28,449 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 17:08:28,449 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 17:08:28,515 [DEBUG][       Thread-262004][   transport.py][1871] : userauth is OK
2025-06-13 17:08:28,515 [DEBUG][       Thread-262004][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 17:08:28,515 [DEBUG][       Thread-262004][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 17:08:28,515 [DEBUG][       Thread-262004][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 17:08:28,515 [DEBUG][       Thread-262004][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 17:08:28,535 [ INFO][       Thread-262004][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 17:08:28,535 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 17:08:28,536 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 17:08:29,522 [DEBUG][       Thread-262004][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 17:08:29,523 [DEBUG][       Thread-262004][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 17:08:29,572 [DEBUG][       Thread-262004][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 17:08:29,572 [DEBUG][       Thread-262004][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 17:08:29,582 [DEBUG][       Thread-262004][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 17:08:29,591 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 17:08:29,592 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 17:08:29,601 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 17:08:29,610 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 17:08:29,610 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 17:08:29,611 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 17:08:29,619 [DEBUG][       Thread-262004][   transport.py][1871] : EOF in transport thread
2025-06-13 17:08:34,715 [DEBUG][Thread-262006 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:08:39,198 [DEBUG][Thread-262007 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:08:39,621 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 17:08:39,622 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 17:08:39,622 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 17:08:39,625 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 17:08:40,081 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 17, 8, 8), 16.49, 31.97, 0.0, 13.82, 13.26, 0, 0, 0, 2, 0, 0),)
2025-06-13 17:08:40,081 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 17:08:08
2025-06-13 17:08:40,163 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 17:08:40,169 [DEBUG][       Thread-262008][   transport.py][1871] : starting thread (client mode): 0x86369780
2025-06-13 17:08:40,169 [DEBUG][       Thread-262008][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 17:08:40,190 [DEBUG][       Thread-262008][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 17:08:40,190 [ INFO][       Thread-262008][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 17:08:40,193 [DEBUG][       Thread-262008][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 17:08:40,193 [DEBUG][       Thread-262008][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 17:08:40,193 [DEBUG][       Thread-262008][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 17:08:40,193 [DEBUG][       Thread-262008][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:08:40,194 [DEBUG][       Thread-262008][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:08:40,194 [DEBUG][       Thread-262008][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:08:40,194 [DEBUG][       Thread-262008][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:08:40,194 [DEBUG][       Thread-262008][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 17:08:40,194 [DEBUG][       Thread-262008][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 17:08:40,194 [DEBUG][       Thread-262008][   transport.py][1871] : client lang: <none>
2025-06-13 17:08:40,194 [DEBUG][       Thread-262008][   transport.py][1871] : server lang: <none>
2025-06-13 17:08:40,194 [DEBUG][       Thread-262008][   transport.py][1871] : kex follows: False
2025-06-13 17:08:40,194 [DEBUG][       Thread-262008][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 17:08:40,194 [DEBUG][       Thread-262008][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 17:08:40,194 [DEBUG][       Thread-262008][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 17:08:40,194 [DEBUG][       Thread-262008][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 17:08:40,194 [DEBUG][       Thread-262008][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 17:08:40,194 [DEBUG][       Thread-262008][   transport.py][1871] : Compression: none
2025-06-13 17:08:40,194 [DEBUG][       Thread-262008][   transport.py][1871] : === End of kex handshake ===
2025-06-13 17:08:40,211 [DEBUG][       Thread-262008][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 17:08:40,212 [DEBUG][       Thread-262008][   transport.py][1871] : Switch to new keys ...
2025-06-13 17:08:40,212 [DEBUG][       Thread-262008][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 17:08:40,213 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 17:08:40,213 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 17:08:40,214 [DEBUG][       Thread-262008][   transport.py][1871] : userauth is OK
2025-06-13 17:08:40,227 [ INFO][       Thread-262008][   transport.py][1871] : Authentication (password) successful!
2025-06-13 17:08:40,227 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 17:08:40,270 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:08:40,270 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:08:40,836 [DEBUG][       Thread-262008][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 17:08:40,836 [DEBUG][       Thread-262008][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 17:08:40,880 [DEBUG][       Thread-262008][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 17:08:40,880 [DEBUG][       Thread-262008][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 17:08:40,883 [DEBUG][       Thread-262008][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 17:08:40,894 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 17:08:40,894 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 17:08:40,895 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 17:08:40,896 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 17:08:40,899 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 17:08:40,900 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 17:08:40,900 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 17:08:40,900 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 17:08:40,900 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.630490 -999.00  +13.20  18.03     35   -1.50 1 1 1 1 1   887    0 14.52 3.49 ----- 16.2 18.0 48.0 19.1 15.2 -29.5 14.8 -30.3 15.2 -29.2 15.8 -28.8
2025-06-13 17:08:40,900 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 17:08:40,900 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 17:08:40,900 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.630490
2025-06-13 17:08:40,900 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 17:08:40,901 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 17:08:40,901 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 17:08:40,901 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 17:08:40,901 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 17:08:40,901 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T17:08:08', tmtdew=16.49, humidity=31.97, cloud=0.0, wind=13.82, temperature=13.26, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T15:07:54.336', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 17:08:40,901 [DEBUG][       Thread-262008][   transport.py][1871] : EOF in transport thread
2025-06-13 17:08:40,975 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 17:08:40,987 [DEBUG][       Thread-262011][   transport.py][1871] : starting thread (client mode): 0xc54b6c20
2025-06-13 17:08:40,987 [DEBUG][       Thread-262011][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 17:08:41,001 [DEBUG][       Thread-262011][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 17:08:41,001 [ INFO][       Thread-262011][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 17:08:41,009 [DEBUG][       Thread-262011][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 17:08:41,009 [DEBUG][       Thread-262011][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 17:08:41,009 [DEBUG][       Thread-262011][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 17:08:41,009 [DEBUG][       Thread-262011][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:08:41,009 [DEBUG][       Thread-262011][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:08:41,009 [DEBUG][       Thread-262011][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:08:41,009 [DEBUG][       Thread-262011][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:08:41,009 [DEBUG][       Thread-262011][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 17:08:41,009 [DEBUG][       Thread-262011][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 17:08:41,009 [DEBUG][       Thread-262011][   transport.py][1871] : client lang: <none>
2025-06-13 17:08:41,009 [DEBUG][       Thread-262011][   transport.py][1871] : server lang: <none>
2025-06-13 17:08:41,009 [DEBUG][       Thread-262011][   transport.py][1871] : kex follows: False
2025-06-13 17:08:41,009 [DEBUG][       Thread-262011][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 17:08:41,009 [DEBUG][       Thread-262011][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 17:08:41,009 [DEBUG][       Thread-262011][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 17:08:41,009 [DEBUG][       Thread-262011][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 17:08:41,009 [DEBUG][       Thread-262011][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 17:08:41,009 [DEBUG][       Thread-262011][   transport.py][1871] : Compression: none
2025-06-13 17:08:41,009 [DEBUG][       Thread-262011][   transport.py][1871] : === End of kex handshake ===
2025-06-13 17:08:41,066 [DEBUG][       Thread-262011][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 17:08:41,066 [DEBUG][       Thread-262011][   transport.py][1871] : Switch to new keys ...
2025-06-13 17:08:41,066 [DEBUG][       Thread-262011][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 17:08:41,066 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 17:08:41,066 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 17:08:41,123 [DEBUG][       Thread-262011][   transport.py][1871] : userauth is OK
2025-06-13 17:08:41,123 [DEBUG][       Thread-262011][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 17:08:41,123 [DEBUG][       Thread-262011][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 17:08:41,123 [DEBUG][       Thread-262011][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 17:08:41,123 [DEBUG][       Thread-262011][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 17:08:41,137 [ INFO][       Thread-262011][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 17:08:41,137 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 17:08:41,137 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 17:08:42,143 [DEBUG][       Thread-262011][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 17:08:42,144 [DEBUG][       Thread-262011][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 17:08:42,191 [DEBUG][       Thread-262011][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 17:08:42,191 [DEBUG][       Thread-262011][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 17:08:42,200 [DEBUG][       Thread-262011][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 17:08:42,212 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 17:08:42,212 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 17:08:42,223 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 17:08:42,231 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 17:08:42,231 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 17:08:42,231 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 17:08:42,239 [DEBUG][       Thread-262011][   transport.py][1871] : EOF in transport thread
2025-06-13 17:08:43,733 [DEBUG][Thread-262013 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:08:52,241 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 17:08:52,242 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 17:08:52,242 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 17:08:52,245 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 17:08:52,698 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 17, 8, 39), 16.46, 31.72, 0.0, 14.68, 13.26, 0, 0, 0, 2, 0, 0),)
2025-06-13 17:08:52,698 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 17:08:39
2025-06-13 17:08:52,755 [DEBUG][Thread-262014 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:08:52,777 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 17:08:52,781 [DEBUG][       Thread-262015][   transport.py][1871] : starting thread (client mode): 0x8636ac50
2025-06-13 17:08:52,781 [DEBUG][       Thread-262015][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 17:08:52,801 [DEBUG][       Thread-262015][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 17:08:52,801 [ INFO][       Thread-262015][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 17:08:52,804 [DEBUG][       Thread-262015][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 17:08:52,804 [DEBUG][       Thread-262015][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 17:08:52,804 [DEBUG][       Thread-262015][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 17:08:52,804 [DEBUG][       Thread-262015][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:08:52,804 [DEBUG][       Thread-262015][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:08:52,804 [DEBUG][       Thread-262015][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:08:52,804 [DEBUG][       Thread-262015][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:08:52,804 [DEBUG][       Thread-262015][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 17:08:52,804 [DEBUG][       Thread-262015][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 17:08:52,804 [DEBUG][       Thread-262015][   transport.py][1871] : client lang: <none>
2025-06-13 17:08:52,804 [DEBUG][       Thread-262015][   transport.py][1871] : server lang: <none>
2025-06-13 17:08:52,804 [DEBUG][       Thread-262015][   transport.py][1871] : kex follows: False
2025-06-13 17:08:52,804 [DEBUG][       Thread-262015][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 17:08:52,804 [DEBUG][       Thread-262015][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 17:08:52,804 [DEBUG][       Thread-262015][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 17:08:52,804 [DEBUG][       Thread-262015][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 17:08:52,804 [DEBUG][       Thread-262015][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 17:08:52,804 [DEBUG][       Thread-262015][   transport.py][1871] : Compression: none
2025-06-13 17:08:52,804 [DEBUG][       Thread-262015][   transport.py][1871] : === End of kex handshake ===
2025-06-13 17:08:52,820 [DEBUG][       Thread-262015][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 17:08:52,821 [DEBUG][       Thread-262015][   transport.py][1871] : Switch to new keys ...
2025-06-13 17:08:52,821 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 17:08:52,822 [DEBUG][       Thread-262015][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 17:08:52,822 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 17:08:52,823 [DEBUG][       Thread-262015][   transport.py][1871] : userauth is OK
2025-06-13 17:08:52,836 [ INFO][       Thread-262015][   transport.py][1871] : Authentication (password) successful!
2025-06-13 17:08:52,837 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 17:08:53,475 [DEBUG][       Thread-262015][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 17:08:53,475 [DEBUG][       Thread-262015][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 17:08:53,517 [DEBUG][       Thread-262015][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 17:08:53,517 [DEBUG][       Thread-262015][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 17:08:53,520 [DEBUG][       Thread-262015][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 17:08:53,533 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 17:08:53,534 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 17:08:53,536 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 17:08:53,538 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 17:08:53,543 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 17:08:53,545 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 17:08:53,546 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 17:08:53,546 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 17:08:53,546 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.630837 -999.00  +13.20  14.34     36   -1.50 1 1 1 1 1   887    0 14.37 3.91 ----- 14.3 14.3 45.6 19.1 15.2 -29.9 14.7 -29.9 15.1 -29.2 15.8 -28.8
2025-06-13 17:08:53,547 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 17:08:53,547 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 17:08:53,547 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.630837
2025-06-13 17:08:53,547 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 17:08:53,548 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 17:08:53,548 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 17:08:53,548 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 17:08:53,548 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 17:08:53,548 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T17:08:39', tmtdew=16.46, humidity=31.72, cloud=0.0, wind=14.68, temperature=13.26, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T15:08:24.317', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 17:08:53,549 [DEBUG][       Thread-262015][   transport.py][1871] : EOF in transport thread
2025-06-13 17:08:53,631 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 17:08:53,640 [DEBUG][       Thread-262018][   transport.py][1871] : starting thread (client mode): 0x863be470
2025-06-13 17:08:53,640 [DEBUG][       Thread-262018][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 17:08:53,661 [DEBUG][       Thread-262018][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 17:08:53,662 [ INFO][       Thread-262018][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 17:08:53,669 [DEBUG][       Thread-262018][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 17:08:53,669 [DEBUG][       Thread-262018][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 17:08:53,669 [DEBUG][       Thread-262018][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 17:08:53,670 [DEBUG][       Thread-262018][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:08:53,670 [DEBUG][       Thread-262018][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:08:53,670 [DEBUG][       Thread-262018][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:08:53,670 [DEBUG][       Thread-262018][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:08:53,670 [DEBUG][       Thread-262018][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 17:08:53,670 [DEBUG][       Thread-262018][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 17:08:53,670 [DEBUG][       Thread-262018][   transport.py][1871] : client lang: <none>
2025-06-13 17:08:53,670 [DEBUG][       Thread-262018][   transport.py][1871] : server lang: <none>
2025-06-13 17:08:53,670 [DEBUG][       Thread-262018][   transport.py][1871] : kex follows: False
2025-06-13 17:08:53,670 [DEBUG][       Thread-262018][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 17:08:53,670 [DEBUG][       Thread-262018][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 17:08:53,670 [DEBUG][       Thread-262018][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 17:08:53,670 [DEBUG][       Thread-262018][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 17:08:53,670 [DEBUG][       Thread-262018][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 17:08:53,670 [DEBUG][       Thread-262018][   transport.py][1871] : Compression: none
2025-06-13 17:08:53,670 [DEBUG][       Thread-262018][   transport.py][1871] : === End of kex handshake ===
2025-06-13 17:08:53,728 [DEBUG][       Thread-262018][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 17:08:53,728 [DEBUG][       Thread-262018][   transport.py][1871] : Switch to new keys ...
2025-06-13 17:08:53,729 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 17:08:53,730 [DEBUG][       Thread-262018][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 17:08:53,730 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 17:08:53,784 [DEBUG][       Thread-262018][   transport.py][1871] : userauth is OK
2025-06-13 17:08:53,784 [DEBUG][       Thread-262018][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 17:08:53,784 [DEBUG][       Thread-262018][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 17:08:53,784 [DEBUG][       Thread-262018][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 17:08:53,784 [DEBUG][       Thread-262018][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 17:08:53,803 [ INFO][       Thread-262018][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 17:08:53,803 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 17:08:53,803 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 17:08:54,776 [DEBUG][       Thread-262018][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 17:08:54,776 [DEBUG][       Thread-262018][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 17:08:54,824 [DEBUG][       Thread-262018][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 17:08:54,825 [DEBUG][       Thread-262018][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 17:08:54,834 [DEBUG][       Thread-262018][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 17:08:54,843 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 17:08:54,843 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 17:08:54,852 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 17:08:54,862 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 17:08:54,862 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 17:08:54,862 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 17:08:54,870 [DEBUG][       Thread-262018][   transport.py][1871] : EOF in transport thread
2025-06-13 17:09:01,775 [DEBUG][Thread-262020 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:09:04,873 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 17:09:04,873 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 17:09:04,873 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 17:09:04,876 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 17:09:05,325 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 17, 8, 39), 16.46, 31.72, 0.0, 14.68, 13.26, 0, 0, 0, 2, 0, 0),)
2025-06-13 17:09:05,325 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 17:08:39
2025-06-13 17:09:05,404 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 17:09:05,410 [DEBUG][       Thread-262021][   transport.py][1871] : starting thread (client mode): 0x8636b520
2025-06-13 17:09:05,410 [DEBUG][       Thread-262021][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 17:09:05,430 [DEBUG][       Thread-262021][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 17:09:05,430 [ INFO][       Thread-262021][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 17:09:05,433 [DEBUG][       Thread-262021][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 17:09:05,434 [DEBUG][       Thread-262021][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 17:09:05,434 [DEBUG][       Thread-262021][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 17:09:05,434 [DEBUG][       Thread-262021][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:09:05,434 [DEBUG][       Thread-262021][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:09:05,434 [DEBUG][       Thread-262021][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:09:05,434 [DEBUG][       Thread-262021][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:09:05,434 [DEBUG][       Thread-262021][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 17:09:05,434 [DEBUG][       Thread-262021][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 17:09:05,434 [DEBUG][       Thread-262021][   transport.py][1871] : client lang: <none>
2025-06-13 17:09:05,434 [DEBUG][       Thread-262021][   transport.py][1871] : server lang: <none>
2025-06-13 17:09:05,434 [DEBUG][       Thread-262021][   transport.py][1871] : kex follows: False
2025-06-13 17:09:05,434 [DEBUG][       Thread-262021][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 17:09:05,434 [DEBUG][       Thread-262021][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 17:09:05,434 [DEBUG][       Thread-262021][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 17:09:05,434 [DEBUG][       Thread-262021][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 17:09:05,434 [DEBUG][       Thread-262021][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 17:09:05,434 [DEBUG][       Thread-262021][   transport.py][1871] : Compression: none
2025-06-13 17:09:05,434 [DEBUG][       Thread-262021][   transport.py][1871] : === End of kex handshake ===
2025-06-13 17:09:05,451 [DEBUG][       Thread-262021][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 17:09:05,452 [DEBUG][       Thread-262021][   transport.py][1871] : Switch to new keys ...
2025-06-13 17:09:05,453 [DEBUG][       Thread-262021][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 17:09:05,453 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 17:09:05,453 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 17:09:05,454 [DEBUG][       Thread-262021][   transport.py][1871] : userauth is OK
2025-06-13 17:09:05,479 [ INFO][       Thread-262021][   transport.py][1871] : Authentication (password) successful!
2025-06-13 17:09:05,480 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 17:09:06,060 [DEBUG][       Thread-262021][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 17:09:06,061 [DEBUG][       Thread-262021][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 17:09:06,105 [DEBUG][       Thread-262021][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 17:09:06,105 [DEBUG][       Thread-262021][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 17:09:06,108 [DEBUG][       Thread-262021][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 17:09:06,121 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 17:09:06,121 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 17:09:06,123 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 17:09:06,125 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 17:09:06,130 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 17:09:06,133 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 17:09:06,133 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 17:09:06,134 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 17:09:06,134 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.630837 -999.00  +13.20  14.34     36   -1.50 1 1 1 1 1   887    0 14.37 3.91 ----- 14.3 14.3 45.6 19.1 15.2 -29.9 14.7 -29.9 15.1 -29.2 15.8 -28.8
2025-06-13 17:09:06,134 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 17:09:06,134 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 17:09:06,134 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.630837
2025-06-13 17:09:06,134 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 17:09:06,135 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 17:09:06,135 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 17:09:06,135 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 17:09:06,135 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 17:09:06,135 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T17:08:39', tmtdew=16.46, humidity=31.72, cloud=0.0, wind=14.68, temperature=13.26, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T15:08:24.317', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 17:09:06,136 [DEBUG][       Thread-262021][   transport.py][1871] : EOF in transport thread
2025-06-13 17:09:06,212 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 17:09:06,223 [DEBUG][       Thread-262024][   transport.py][1871] : starting thread (client mode): 0x863a6ec0
2025-06-13 17:09:06,223 [DEBUG][       Thread-262024][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 17:09:06,238 [DEBUG][       Thread-262024][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 17:09:06,238 [ INFO][       Thread-262024][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 17:09:06,246 [DEBUG][       Thread-262024][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 17:09:06,246 [DEBUG][       Thread-262024][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 17:09:06,246 [DEBUG][       Thread-262024][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 17:09:06,246 [DEBUG][       Thread-262024][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:09:06,246 [DEBUG][       Thread-262024][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:09:06,246 [DEBUG][       Thread-262024][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:09:06,246 [DEBUG][       Thread-262024][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:09:06,246 [DEBUG][       Thread-262024][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 17:09:06,246 [DEBUG][       Thread-262024][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 17:09:06,246 [DEBUG][       Thread-262024][   transport.py][1871] : client lang: <none>
2025-06-13 17:09:06,246 [DEBUG][       Thread-262024][   transport.py][1871] : server lang: <none>
2025-06-13 17:09:06,246 [DEBUG][       Thread-262024][   transport.py][1871] : kex follows: False
2025-06-13 17:09:06,246 [DEBUG][       Thread-262024][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 17:09:06,246 [DEBUG][       Thread-262024][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 17:09:06,246 [DEBUG][       Thread-262024][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 17:09:06,246 [DEBUG][       Thread-262024][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 17:09:06,247 [DEBUG][       Thread-262024][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 17:09:06,247 [DEBUG][       Thread-262024][   transport.py][1871] : Compression: none
2025-06-13 17:09:06,247 [DEBUG][       Thread-262024][   transport.py][1871] : === End of kex handshake ===
2025-06-13 17:09:06,305 [DEBUG][       Thread-262024][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 17:09:06,306 [DEBUG][       Thread-262024][   transport.py][1871] : Switch to new keys ...
2025-06-13 17:09:06,315 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 17:09:06,316 [DEBUG][       Thread-262024][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 17:09:06,316 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 17:09:06,363 [DEBUG][       Thread-262024][   transport.py][1871] : userauth is OK
2025-06-13 17:09:06,363 [DEBUG][       Thread-262024][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 17:09:06,363 [DEBUG][       Thread-262024][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 17:09:06,363 [DEBUG][       Thread-262024][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 17:09:06,363 [DEBUG][       Thread-262024][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 17:09:06,378 [ INFO][       Thread-262024][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 17:09:06,378 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 17:09:06,378 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 17:09:07,413 [DEBUG][       Thread-262024][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 17:09:07,413 [DEBUG][       Thread-262024][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 17:09:07,464 [DEBUG][       Thread-262024][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 17:09:07,464 [DEBUG][       Thread-262024][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 17:09:07,476 [DEBUG][       Thread-262024][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 17:09:07,486 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 17:09:07,486 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 17:09:07,496 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 17:09:07,509 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 17:09:07,509 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 17:09:07,510 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 17:09:07,526 [DEBUG][       Thread-262024][   transport.py][1871] : EOF in transport thread
2025-06-13 17:09:10,812 [DEBUG][Thread-262026 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:09:17,520 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 17:09:17,521 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 17:09:17,521 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 17:09:17,524 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 17:09:17,949 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 17, 9, 11), 16.45, 31.72, 0.0, 14.19, 13.25, 0, 0, 0, 2, 0, 0),)
2025-06-13 17:09:17,949 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 17:09:11
2025-06-13 17:09:18,026 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 17:09:18,031 [DEBUG][       Thread-262027][   transport.py][1871] : starting thread (client mode): 0x863caa70
2025-06-13 17:09:18,031 [DEBUG][       Thread-262027][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 17:09:18,050 [DEBUG][       Thread-262027][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 17:09:18,050 [ INFO][       Thread-262027][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 17:09:18,053 [DEBUG][       Thread-262027][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 17:09:18,053 [DEBUG][       Thread-262027][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 17:09:18,054 [DEBUG][       Thread-262027][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 17:09:18,054 [DEBUG][       Thread-262027][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:09:18,054 [DEBUG][       Thread-262027][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:09:18,054 [DEBUG][       Thread-262027][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:09:18,054 [DEBUG][       Thread-262027][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:09:18,054 [DEBUG][       Thread-262027][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 17:09:18,054 [DEBUG][       Thread-262027][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 17:09:18,054 [DEBUG][       Thread-262027][   transport.py][1871] : client lang: <none>
2025-06-13 17:09:18,054 [DEBUG][       Thread-262027][   transport.py][1871] : server lang: <none>
2025-06-13 17:09:18,054 [DEBUG][       Thread-262027][   transport.py][1871] : kex follows: False
2025-06-13 17:09:18,054 [DEBUG][       Thread-262027][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 17:09:18,054 [DEBUG][       Thread-262027][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 17:09:18,054 [DEBUG][       Thread-262027][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 17:09:18,054 [DEBUG][       Thread-262027][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 17:09:18,054 [DEBUG][       Thread-262027][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 17:09:18,054 [DEBUG][       Thread-262027][   transport.py][1871] : Compression: none
2025-06-13 17:09:18,054 [DEBUG][       Thread-262027][   transport.py][1871] : === End of kex handshake ===
2025-06-13 17:09:18,069 [DEBUG][       Thread-262027][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 17:09:18,070 [DEBUG][       Thread-262027][   transport.py][1871] : Switch to new keys ...
2025-06-13 17:09:18,071 [DEBUG][       Thread-262027][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 17:09:18,071 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 17:09:18,071 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 17:09:18,072 [DEBUG][       Thread-262027][   transport.py][1871] : userauth is OK
2025-06-13 17:09:18,096 [ INFO][       Thread-262027][   transport.py][1871] : Authentication (password) successful!
2025-06-13 17:09:18,097 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 17:09:18,722 [DEBUG][       Thread-262027][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 17:09:18,722 [DEBUG][       Thread-262027][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 17:09:18,765 [DEBUG][       Thread-262027][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 17:09:18,765 [DEBUG][       Thread-262027][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 17:09:18,768 [DEBUG][       Thread-262027][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 17:09:18,781 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 17:09:18,781 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 17:09:18,783 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 17:09:18,785 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 17:09:18,790 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 17:09:18,792 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 17:09:18,792 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 17:09:18,793 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 17:09:18,793 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.630837 -999.00  +13.20  14.34     36   -1.50 1 1 1 1 1   887    0 14.37 3.91 ----- 14.3 14.3 45.6 19.1 15.2 -29.9 14.7 -29.9 15.1 -29.2 15.8 -28.8
2025-06-13 17:09:18,793 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 17:09:18,793 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 17:09:18,793 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.630837
2025-06-13 17:09:18,794 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 17:09:18,794 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 17:09:18,795 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 17:09:18,795 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 17:09:18,795 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 17:09:18,795 [DEBUG][       Thread-262027][   transport.py][1871] : EOF in transport thread
2025-06-13 17:09:18,795 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T17:09:11', tmtdew=16.45, humidity=31.72, cloud=0.0, wind=14.19, temperature=13.25, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T15:08:24.317', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 17:09:18,878 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 17:09:18,891 [DEBUG][       Thread-262030][   transport.py][1871] : starting thread (client mode): 0x867b5690
2025-06-13 17:09:18,891 [DEBUG][       Thread-262030][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 17:09:18,909 [DEBUG][       Thread-262030][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 17:09:18,909 [ INFO][       Thread-262030][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 17:09:18,916 [DEBUG][       Thread-262030][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 17:09:18,917 [DEBUG][       Thread-262030][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 17:09:18,917 [DEBUG][       Thread-262030][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 17:09:18,917 [DEBUG][       Thread-262030][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:09:18,917 [DEBUG][       Thread-262030][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:09:18,917 [DEBUG][       Thread-262030][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:09:18,917 [DEBUG][       Thread-262030][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:09:18,917 [DEBUG][       Thread-262030][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 17:09:18,917 [DEBUG][       Thread-262030][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 17:09:18,917 [DEBUG][       Thread-262030][   transport.py][1871] : client lang: <none>
2025-06-13 17:09:18,917 [DEBUG][       Thread-262030][   transport.py][1871] : server lang: <none>
2025-06-13 17:09:18,917 [DEBUG][       Thread-262030][   transport.py][1871] : kex follows: False
2025-06-13 17:09:18,917 [DEBUG][       Thread-262030][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 17:09:18,917 [DEBUG][       Thread-262030][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 17:09:18,917 [DEBUG][       Thread-262030][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 17:09:18,917 [DEBUG][       Thread-262030][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 17:09:18,918 [DEBUG][       Thread-262030][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 17:09:18,918 [DEBUG][       Thread-262030][   transport.py][1871] : Compression: none
2025-06-13 17:09:18,918 [DEBUG][       Thread-262030][   transport.py][1871] : === End of kex handshake ===
2025-06-13 17:09:18,976 [DEBUG][       Thread-262030][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 17:09:18,977 [DEBUG][       Thread-262030][   transport.py][1871] : Switch to new keys ...
2025-06-13 17:09:18,978 [DEBUG][       Thread-262030][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 17:09:18,978 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 17:09:18,979 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 17:09:19,046 [DEBUG][       Thread-262030][   transport.py][1871] : userauth is OK
2025-06-13 17:09:19,047 [DEBUG][       Thread-262030][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 17:09:19,047 [DEBUG][       Thread-262030][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 17:09:19,047 [DEBUG][       Thread-262030][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 17:09:19,047 [DEBUG][       Thread-262030][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 17:09:19,065 [ INFO][       Thread-262030][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 17:09:19,066 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 17:09:19,066 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 17:09:19,832 [DEBUG][Thread-262032 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:09:20,079 [DEBUG][       Thread-262030][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 17:09:20,079 [DEBUG][       Thread-262030][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 17:09:20,130 [DEBUG][       Thread-262030][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 17:09:20,130 [DEBUG][       Thread-262030][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 17:09:20,141 [DEBUG][       Thread-262030][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 17:09:20,150 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 17:09:20,150 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 17:09:20,159 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 17:09:20,171 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 17:09:20,171 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 17:09:20,172 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 17:09:20,179 [DEBUG][       Thread-262030][   transport.py][1871] : EOF in transport thread
2025-06-13 17:09:23,716 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:09:23,717 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:09:25,294 [DEBUG][Thread-262033 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:09:28,864 [DEBUG][Thread-262034 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:09:30,174 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 17:09:30,174 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 17:09:30,174 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 17:09:30,177 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 17:09:30,623 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 17, 9, 11), 16.45, 31.72, 0.0, 14.19, 13.25, 0, 0, 0, 2, 0, 0),)
2025-06-13 17:09:30,623 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 17:09:11
2025-06-13 17:09:30,701 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 17:09:30,704 [DEBUG][       Thread-262035][   transport.py][1871] : starting thread (client mode): 0x86368af0
2025-06-13 17:09:30,704 [DEBUG][       Thread-262035][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 17:09:30,726 [DEBUG][       Thread-262035][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 17:09:30,726 [ INFO][       Thread-262035][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 17:09:30,729 [DEBUG][       Thread-262035][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 17:09:30,729 [DEBUG][       Thread-262035][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 17:09:30,729 [DEBUG][       Thread-262035][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 17:09:30,729 [DEBUG][       Thread-262035][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:09:30,729 [DEBUG][       Thread-262035][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:09:30,729 [DEBUG][       Thread-262035][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:09:30,729 [DEBUG][       Thread-262035][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:09:30,729 [DEBUG][       Thread-262035][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 17:09:30,729 [DEBUG][       Thread-262035][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 17:09:30,729 [DEBUG][       Thread-262035][   transport.py][1871] : client lang: <none>
2025-06-13 17:09:30,729 [DEBUG][       Thread-262035][   transport.py][1871] : server lang: <none>
2025-06-13 17:09:30,729 [DEBUG][       Thread-262035][   transport.py][1871] : kex follows: False
2025-06-13 17:09:30,729 [DEBUG][       Thread-262035][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 17:09:30,730 [DEBUG][       Thread-262035][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 17:09:30,730 [DEBUG][       Thread-262035][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 17:09:30,730 [DEBUG][       Thread-262035][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 17:09:30,730 [DEBUG][       Thread-262035][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 17:09:30,730 [DEBUG][       Thread-262035][   transport.py][1871] : Compression: none
2025-06-13 17:09:30,730 [DEBUG][       Thread-262035][   transport.py][1871] : === End of kex handshake ===
2025-06-13 17:09:30,745 [DEBUG][       Thread-262035][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 17:09:30,746 [DEBUG][       Thread-262035][   transport.py][1871] : Switch to new keys ...
2025-06-13 17:09:30,746 [DEBUG][       Thread-262035][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 17:09:30,747 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 17:09:30,747 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 17:09:30,748 [DEBUG][       Thread-262035][   transport.py][1871] : userauth is OK
2025-06-13 17:09:30,774 [ INFO][       Thread-262035][   transport.py][1871] : Authentication (password) successful!
2025-06-13 17:09:30,775 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 17:09:31,413 [DEBUG][       Thread-262035][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 17:09:31,413 [DEBUG][       Thread-262035][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 17:09:31,457 [DEBUG][       Thread-262035][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 17:09:31,457 [DEBUG][       Thread-262035][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 17:09:31,460 [DEBUG][       Thread-262035][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 17:09:31,474 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 17:09:31,475 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 17:09:31,477 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 17:09:31,478 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 17:09:31,484 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 17:09:31,486 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 17:09:31,486 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 17:09:31,487 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 17:09:31,487 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.631184 -999.00  +13.10  16.60     35   -1.70 1 1 1 1 1   887    0 14.60 3.82 ----- 15.5 16.6 41.6 20.5 15.2 -29.8 14.7 -30.0 15.1 -29.6 15.7 -28.8
2025-06-13 17:09:31,487 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 17:09:31,487 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 17:09:31,487 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.631184
2025-06-13 17:09:31,488 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 17:09:31,488 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 17:09:31,488 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 17:09:31,488 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 17:09:31,488 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 17:09:31,489 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T17:09:11', tmtdew=16.45, humidity=31.72, cloud=0.0, wind=14.19, temperature=13.25, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T15:08:54.298', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 17:09:31,490 [DEBUG][       Thread-262035][   transport.py][1871] : EOF in transport thread
2025-06-13 17:09:31,572 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 17:09:31,584 [DEBUG][       Thread-262038][   transport.py][1871] : starting thread (client mode): 0x8636a9b0
2025-06-13 17:09:31,584 [DEBUG][       Thread-262038][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 17:09:31,601 [DEBUG][       Thread-262038][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 17:09:31,601 [ INFO][       Thread-262038][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 17:09:31,611 [DEBUG][       Thread-262038][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 17:09:31,611 [DEBUG][       Thread-262038][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 17:09:31,611 [DEBUG][       Thread-262038][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 17:09:31,611 [DEBUG][       Thread-262038][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:09:31,611 [DEBUG][       Thread-262038][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:09:31,611 [DEBUG][       Thread-262038][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:09:31,611 [DEBUG][       Thread-262038][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:09:31,611 [DEBUG][       Thread-262038][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 17:09:31,611 [DEBUG][       Thread-262038][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 17:09:31,611 [DEBUG][       Thread-262038][   transport.py][1871] : client lang: <none>
2025-06-13 17:09:31,611 [DEBUG][       Thread-262038][   transport.py][1871] : server lang: <none>
2025-06-13 17:09:31,611 [DEBUG][       Thread-262038][   transport.py][1871] : kex follows: False
2025-06-13 17:09:31,611 [DEBUG][       Thread-262038][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 17:09:31,612 [DEBUG][       Thread-262038][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 17:09:31,612 [DEBUG][       Thread-262038][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 17:09:31,612 [DEBUG][       Thread-262038][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 17:09:31,612 [DEBUG][       Thread-262038][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 17:09:31,612 [DEBUG][       Thread-262038][   transport.py][1871] : Compression: none
2025-06-13 17:09:31,612 [DEBUG][       Thread-262038][   transport.py][1871] : === End of kex handshake ===
2025-06-13 17:09:31,669 [DEBUG][       Thread-262038][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 17:09:31,670 [DEBUG][       Thread-262038][   transport.py][1871] : Switch to new keys ...
2025-06-13 17:09:31,670 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 17:09:31,671 [DEBUG][       Thread-262038][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 17:09:31,672 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 17:09:31,728 [DEBUG][       Thread-262038][   transport.py][1871] : userauth is OK
2025-06-13 17:09:31,728 [DEBUG][       Thread-262038][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 17:09:31,729 [DEBUG][       Thread-262038][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 17:09:31,729 [DEBUG][       Thread-262038][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 17:09:31,729 [DEBUG][       Thread-262038][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 17:09:31,748 [ INFO][       Thread-262038][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 17:09:31,748 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 17:09:31,749 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 17:09:32,774 [DEBUG][       Thread-262038][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 17:09:32,775 [DEBUG][       Thread-262038][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 17:09:32,824 [DEBUG][       Thread-262038][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 17:09:32,824 [DEBUG][       Thread-262038][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 17:09:32,834 [DEBUG][       Thread-262038][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 17:09:32,843 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 17:09:32,843 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 17:09:32,852 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 17:09:32,863 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 17:09:32,863 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 17:09:32,863 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 17:09:32,871 [DEBUG][       Thread-262038][   transport.py][1871] : EOF in transport thread
2025-06-13 17:09:37,886 [DEBUG][Thread-262040 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:09:40,338 [DEBUG][Thread-262041 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:09:41,407 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:09:41,407 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:09:42,872 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 17:09:42,872 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 17:09:42,872 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 17:09:42,875 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 17:09:43,321 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 17, 9, 11), 16.45, 31.72, 0.0, 14.19, 13.25, 0, 0, 0, 2, 0, 0),)
2025-06-13 17:09:43,321 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 17:09:11
2025-06-13 17:09:43,398 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 17:09:43,402 [DEBUG][       Thread-262042][   transport.py][1871] : starting thread (client mode): 0x863691b0
2025-06-13 17:09:43,402 [DEBUG][       Thread-262042][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 17:09:43,422 [DEBUG][       Thread-262042][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 17:09:43,422 [ INFO][       Thread-262042][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 17:09:43,426 [DEBUG][       Thread-262042][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 17:09:43,426 [DEBUG][       Thread-262042][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 17:09:43,426 [DEBUG][       Thread-262042][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 17:09:43,426 [DEBUG][       Thread-262042][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:09:43,426 [DEBUG][       Thread-262042][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:09:43,426 [DEBUG][       Thread-262042][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:09:43,426 [DEBUG][       Thread-262042][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:09:43,426 [DEBUG][       Thread-262042][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 17:09:43,426 [DEBUG][       Thread-262042][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 17:09:43,426 [DEBUG][       Thread-262042][   transport.py][1871] : client lang: <none>
2025-06-13 17:09:43,426 [DEBUG][       Thread-262042][   transport.py][1871] : server lang: <none>
2025-06-13 17:09:43,426 [DEBUG][       Thread-262042][   transport.py][1871] : kex follows: False
2025-06-13 17:09:43,426 [DEBUG][       Thread-262042][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 17:09:43,426 [DEBUG][       Thread-262042][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 17:09:43,426 [DEBUG][       Thread-262042][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 17:09:43,426 [DEBUG][       Thread-262042][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 17:09:43,426 [DEBUG][       Thread-262042][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 17:09:43,426 [DEBUG][       Thread-262042][   transport.py][1871] : Compression: none
2025-06-13 17:09:43,426 [DEBUG][       Thread-262042][   transport.py][1871] : === End of kex handshake ===
2025-06-13 17:09:43,444 [DEBUG][       Thread-262042][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 17:09:43,445 [DEBUG][       Thread-262042][   transport.py][1871] : Switch to new keys ...
2025-06-13 17:09:43,445 [DEBUG][       Thread-262042][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 17:09:43,445 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 17:09:43,445 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 17:09:43,446 [DEBUG][       Thread-262042][   transport.py][1871] : userauth is OK
2025-06-13 17:09:43,459 [ INFO][       Thread-262042][   transport.py][1871] : Authentication (password) successful!
2025-06-13 17:09:43,459 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 17:09:44,094 [DEBUG][       Thread-262042][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 17:09:44,094 [DEBUG][       Thread-262042][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 17:09:44,136 [DEBUG][       Thread-262042][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 17:09:44,136 [DEBUG][       Thread-262042][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 17:09:44,138 [DEBUG][       Thread-262042][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 17:09:44,150 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 17:09:44,150 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 17:09:44,151 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 17:09:44,152 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 17:09:44,155 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 17:09:44,156 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 17:09:44,156 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 17:09:44,156 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 17:09:44,156 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.631184 -999.00  +13.10  16.60     35   -1.70 1 1 1 1 1   887    0 14.60 3.82 ----- 15.5 16.6 41.6 20.5 15.2 -29.8 14.7 -30.0 15.1 -29.6 15.7 -28.8
2025-06-13 17:09:44,156 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 17:09:44,156 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 17:09:44,156 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.631184
2025-06-13 17:09:44,156 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 17:09:44,156 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 17:09:44,156 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 17:09:44,156 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 17:09:44,156 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 17:09:44,156 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T17:09:11', tmtdew=16.45, humidity=31.72, cloud=0.0, wind=14.19, temperature=13.25, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T15:08:54.298', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 17:09:44,157 [DEBUG][       Thread-262042][   transport.py][1871] : EOF in transport thread
2025-06-13 17:09:44,231 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 17:09:44,242 [DEBUG][       Thread-262045][   transport.py][1871] : starting thread (client mode): 0x863efac0
2025-06-13 17:09:44,242 [DEBUG][       Thread-262045][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 17:09:44,267 [DEBUG][       Thread-262045][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 17:09:44,267 [ INFO][       Thread-262045][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 17:09:44,274 [DEBUG][       Thread-262045][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 17:09:44,274 [DEBUG][       Thread-262045][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 17:09:44,274 [DEBUG][       Thread-262045][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 17:09:44,274 [DEBUG][       Thread-262045][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:09:44,274 [DEBUG][       Thread-262045][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:09:44,274 [DEBUG][       Thread-262045][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:09:44,274 [DEBUG][       Thread-262045][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:09:44,274 [DEBUG][       Thread-262045][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 17:09:44,274 [DEBUG][       Thread-262045][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 17:09:44,274 [DEBUG][       Thread-262045][   transport.py][1871] : client lang: <none>
2025-06-13 17:09:44,274 [DEBUG][       Thread-262045][   transport.py][1871] : server lang: <none>
2025-06-13 17:09:44,274 [DEBUG][       Thread-262045][   transport.py][1871] : kex follows: False
2025-06-13 17:09:44,274 [DEBUG][       Thread-262045][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 17:09:44,274 [DEBUG][       Thread-262045][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 17:09:44,274 [DEBUG][       Thread-262045][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 17:09:44,274 [DEBUG][       Thread-262045][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 17:09:44,274 [DEBUG][       Thread-262045][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 17:09:44,274 [DEBUG][       Thread-262045][   transport.py][1871] : Compression: none
2025-06-13 17:09:44,274 [DEBUG][       Thread-262045][   transport.py][1871] : === End of kex handshake ===
2025-06-13 17:09:44,329 [DEBUG][       Thread-262045][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 17:09:44,330 [DEBUG][       Thread-262045][   transport.py][1871] : Switch to new keys ...
2025-06-13 17:09:44,330 [DEBUG][       Thread-262045][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 17:09:44,330 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 17:09:44,330 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 17:09:44,387 [DEBUG][       Thread-262045][   transport.py][1871] : userauth is OK
2025-06-13 17:09:44,387 [DEBUG][       Thread-262045][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 17:09:44,387 [DEBUG][       Thread-262045][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 17:09:44,387 [DEBUG][       Thread-262045][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 17:09:44,387 [DEBUG][       Thread-262045][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 17:09:44,401 [ INFO][       Thread-262045][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 17:09:44,402 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 17:09:44,402 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 17:09:45,416 [DEBUG][       Thread-262045][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 17:09:45,416 [DEBUG][       Thread-262045][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 17:09:45,467 [DEBUG][       Thread-262045][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 17:09:45,467 [DEBUG][       Thread-262045][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 17:09:45,476 [DEBUG][       Thread-262045][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 17:09:45,484 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 17:09:45,485 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 17:09:45,493 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 17:09:45,501 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 17:09:45,502 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 17:09:45,502 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 17:09:45,509 [DEBUG][       Thread-262045][   transport.py][1871] : EOF in transport thread
2025-06-13 17:09:46,911 [DEBUG][Thread-262047 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:09:55,512 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 17:09:55,513 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 17:09:55,513 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 17:09:55,516 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 17:09:55,929 [DEBUG][Thread-262048 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:09:55,965 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 17, 9, 43), 16.43, 31.78, 0.0, 13.13, 13.24, 0, 0, 0, 2, 0, 0),)
2025-06-13 17:09:55,965 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 17:09:43
2025-06-13 17:09:56,042 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 17:09:56,046 [DEBUG][       Thread-262049][   transport.py][1871] : starting thread (client mode): 0x86368520
2025-06-13 17:09:56,046 [DEBUG][       Thread-262049][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 17:09:56,068 [DEBUG][       Thread-262049][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 17:09:56,068 [ INFO][       Thread-262049][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 17:09:56,071 [DEBUG][       Thread-262049][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 17:09:56,071 [DEBUG][       Thread-262049][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 17:09:56,071 [DEBUG][       Thread-262049][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 17:09:56,071 [DEBUG][       Thread-262049][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:09:56,071 [DEBUG][       Thread-262049][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:09:56,071 [DEBUG][       Thread-262049][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:09:56,071 [DEBUG][       Thread-262049][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:09:56,071 [DEBUG][       Thread-262049][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 17:09:56,071 [DEBUG][       Thread-262049][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 17:09:56,071 [DEBUG][       Thread-262049][   transport.py][1871] : client lang: <none>
2025-06-13 17:09:56,071 [DEBUG][       Thread-262049][   transport.py][1871] : server lang: <none>
2025-06-13 17:09:56,071 [DEBUG][       Thread-262049][   transport.py][1871] : kex follows: False
2025-06-13 17:09:56,071 [DEBUG][       Thread-262049][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 17:09:56,072 [DEBUG][       Thread-262049][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 17:09:56,072 [DEBUG][       Thread-262049][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 17:09:56,072 [DEBUG][       Thread-262049][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 17:09:56,072 [DEBUG][       Thread-262049][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 17:09:56,072 [DEBUG][       Thread-262049][   transport.py][1871] : Compression: none
2025-06-13 17:09:56,072 [DEBUG][       Thread-262049][   transport.py][1871] : === End of kex handshake ===
2025-06-13 17:09:56,090 [DEBUG][       Thread-262049][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 17:09:56,090 [DEBUG][       Thread-262049][   transport.py][1871] : Switch to new keys ...
2025-06-13 17:09:56,091 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 17:09:56,091 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 17:09:56,092 [DEBUG][       Thread-262049][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 17:09:56,092 [DEBUG][       Thread-262049][   transport.py][1871] : userauth is OK
2025-06-13 17:09:56,117 [ INFO][       Thread-262049][   transport.py][1871] : Authentication (password) successful!
2025-06-13 17:09:56,118 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 17:09:56,736 [DEBUG][       Thread-262049][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 17:09:56,737 [DEBUG][       Thread-262049][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 17:09:56,781 [DEBUG][       Thread-262049][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 17:09:56,781 [DEBUG][       Thread-262049][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 17:09:56,784 [DEBUG][       Thread-262049][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 17:09:56,796 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 17:09:56,796 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 17:09:56,798 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 17:09:56,799 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 17:09:56,804 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 17:09:56,806 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 17:09:56,806 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 17:09:56,807 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 17:09:56,807 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.631184 -999.00  +13.10  16.60     35   -1.70 1 1 1 1 1   887    0 14.60 3.82 ----- 15.5 16.6 41.6 20.5 15.2 -29.8 14.7 -30.0 15.1 -29.6 15.7 -28.8
2025-06-13 17:09:56,807 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 17:09:56,807 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 17:09:56,807 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.631184
2025-06-13 17:09:56,807 [DEBUG][       Thread-262049][   transport.py][1871] : EOF in transport thread
2025-06-13 17:09:56,808 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 17:09:56,809 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 17:09:56,809 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 17:09:56,809 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 17:09:56,809 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 17:09:56,809 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T17:09:43', tmtdew=16.43, humidity=31.78, cloud=0.0, wind=13.13, temperature=13.24, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T15:08:54.298', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 17:09:56,893 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 17:09:56,902 [DEBUG][       Thread-262052][   transport.py][1871] : starting thread (client mode): 0x86392740
2025-06-13 17:09:56,903 [DEBUG][       Thread-262052][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 17:09:56,918 [DEBUG][       Thread-262052][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 17:09:56,918 [ INFO][       Thread-262052][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 17:09:56,925 [DEBUG][       Thread-262052][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 17:09:56,925 [DEBUG][       Thread-262052][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 17:09:56,926 [DEBUG][       Thread-262052][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 17:09:56,926 [DEBUG][       Thread-262052][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:09:56,926 [DEBUG][       Thread-262052][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:09:56,926 [DEBUG][       Thread-262052][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:09:56,926 [DEBUG][       Thread-262052][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:09:56,926 [DEBUG][       Thread-262052][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 17:09:56,926 [DEBUG][       Thread-262052][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 17:09:56,926 [DEBUG][       Thread-262052][   transport.py][1871] : client lang: <none>
2025-06-13 17:09:56,926 [DEBUG][       Thread-262052][   transport.py][1871] : server lang: <none>
2025-06-13 17:09:56,926 [DEBUG][       Thread-262052][   transport.py][1871] : kex follows: False
2025-06-13 17:09:56,926 [DEBUG][       Thread-262052][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 17:09:56,926 [DEBUG][       Thread-262052][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 17:09:56,926 [DEBUG][       Thread-262052][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 17:09:56,926 [DEBUG][       Thread-262052][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 17:09:56,926 [DEBUG][       Thread-262052][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 17:09:56,926 [DEBUG][       Thread-262052][   transport.py][1871] : Compression: none
2025-06-13 17:09:56,926 [DEBUG][       Thread-262052][   transport.py][1871] : === End of kex handshake ===
2025-06-13 17:09:56,984 [DEBUG][       Thread-262052][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 17:09:56,984 [DEBUG][       Thread-262052][   transport.py][1871] : Switch to new keys ...
2025-06-13 17:09:56,985 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 17:09:56,985 [DEBUG][       Thread-262052][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 17:09:56,986 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 17:09:57,042 [DEBUG][       Thread-262052][   transport.py][1871] : userauth is OK
2025-06-13 17:09:57,043 [DEBUG][       Thread-262052][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 17:09:57,043 [DEBUG][       Thread-262052][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 17:09:57,043 [DEBUG][       Thread-262052][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 17:09:57,043 [DEBUG][       Thread-262052][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 17:09:57,064 [ INFO][       Thread-262052][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 17:09:57,064 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 17:09:57,065 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 17:09:58,078 [DEBUG][       Thread-262052][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 17:09:58,078 [DEBUG][       Thread-262052][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 17:09:58,128 [DEBUG][       Thread-262052][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 17:09:58,128 [DEBUG][       Thread-262052][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 17:09:58,138 [DEBUG][       Thread-262052][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 17:09:58,147 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 17:09:58,147 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 17:09:58,156 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 17:09:58,165 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 17:09:58,165 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 17:09:58,166 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 17:09:58,174 [DEBUG][       Thread-262052][   transport.py][1871] : EOF in transport thread
2025-06-13 17:10:04,951 [DEBUG][Thread-262054 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:10:08,176 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 17:10:08,177 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 17:10:08,177 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 17:10:08,179 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 17:10:08,622 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 17, 9, 43), 16.43, 31.78, 0.0, 13.13, 13.24, 0, 0, 0, 2, 0, 0),)
2025-06-13 17:10:08,622 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 17:09:43
2025-06-13 17:10:08,699 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 17:10:08,704 [DEBUG][       Thread-262055][   transport.py][1871] : starting thread (client mode): 0x8636bdf0
2025-06-13 17:10:08,704 [DEBUG][       Thread-262055][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 17:10:08,725 [DEBUG][       Thread-262055][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 17:10:08,726 [ INFO][       Thread-262055][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 17:10:08,729 [DEBUG][       Thread-262055][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 17:10:08,729 [DEBUG][       Thread-262055][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 17:10:08,729 [DEBUG][       Thread-262055][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 17:10:08,729 [DEBUG][       Thread-262055][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:10:08,729 [DEBUG][       Thread-262055][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:10:08,729 [DEBUG][       Thread-262055][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:10:08,729 [DEBUG][       Thread-262055][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:10:08,729 [DEBUG][       Thread-262055][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 17:10:08,729 [DEBUG][       Thread-262055][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 17:10:08,729 [DEBUG][       Thread-262055][   transport.py][1871] : client lang: <none>
2025-06-13 17:10:08,729 [DEBUG][       Thread-262055][   transport.py][1871] : server lang: <none>
2025-06-13 17:10:08,729 [DEBUG][       Thread-262055][   transport.py][1871] : kex follows: False
2025-06-13 17:10:08,730 [DEBUG][       Thread-262055][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 17:10:08,730 [DEBUG][       Thread-262055][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 17:10:08,730 [DEBUG][       Thread-262055][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 17:10:08,730 [DEBUG][       Thread-262055][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 17:10:08,730 [DEBUG][       Thread-262055][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 17:10:08,730 [DEBUG][       Thread-262055][   transport.py][1871] : Compression: none
2025-06-13 17:10:08,730 [DEBUG][       Thread-262055][   transport.py][1871] : === End of kex handshake ===
2025-06-13 17:10:08,748 [DEBUG][       Thread-262055][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 17:10:08,749 [DEBUG][       Thread-262055][   transport.py][1871] : Switch to new keys ...
2025-06-13 17:10:08,749 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 17:10:08,749 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 17:10:08,750 [DEBUG][       Thread-262055][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 17:10:08,750 [DEBUG][       Thread-262055][   transport.py][1871] : userauth is OK
2025-06-13 17:10:08,775 [ INFO][       Thread-262055][   transport.py][1871] : Authentication (password) successful!
2025-06-13 17:10:08,776 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 17:10:13,999 [DEBUG][Thread-262057 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:10:16,129 [DEBUG][       Thread-262055][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 17:10:16,129 [DEBUG][       Thread-262055][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 17:10:16,172 [DEBUG][       Thread-262055][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 17:10:16,172 [DEBUG][       Thread-262055][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 17:10:16,175 [DEBUG][       Thread-262055][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 17:10:16,186 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 17:10:16,187 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 17:10:16,188 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 17:10:16,189 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 17:10:16,228 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 17:10:16,229 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 17:10:16,229 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 17:10:16,229 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 17:10:16,229 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.631531 -999.00  +13.10  14.75     35   -1.60 1 1 1 1 1   887    0 14.61 4.85 ----- 14.4 14.8 40.6 16.4 15.1 -29.8 14.7 -30.1 15.0 -29.3 15.6 -28.7
2025-06-13 17:10:16,229 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 17:10:16,229 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 17:10:16,229 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.631531
2025-06-13 17:10:16,229 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 17:10:16,229 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 17:10:16,229 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 17:10:16,230 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 17:10:16,230 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 17:10:16,230 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T17:09:43', tmtdew=16.43, humidity=31.78, cloud=0.0, wind=13.13, temperature=13.24, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T15:09:24.278', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 17:10:16,230 [DEBUG][       Thread-262055][   transport.py][1871] : EOF in transport thread
2025-06-13 17:10:16,310 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 17:10:16,321 [DEBUG][       Thread-262059][   transport.py][1871] : starting thread (client mode): 0x863bf7f0
2025-06-13 17:10:16,321 [DEBUG][       Thread-262059][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 17:10:16,336 [DEBUG][       Thread-262059][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 17:10:16,336 [ INFO][       Thread-262059][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 17:10:16,344 [DEBUG][       Thread-262059][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 17:10:16,344 [DEBUG][       Thread-262059][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 17:10:16,344 [DEBUG][       Thread-262059][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 17:10:16,344 [DEBUG][       Thread-262059][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:10:16,344 [DEBUG][       Thread-262059][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:10:16,344 [DEBUG][       Thread-262059][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:10:16,344 [DEBUG][       Thread-262059][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:10:16,344 [DEBUG][       Thread-262059][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 17:10:16,344 [DEBUG][       Thread-262059][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 17:10:16,344 [DEBUG][       Thread-262059][   transport.py][1871] : client lang: <none>
2025-06-13 17:10:16,344 [DEBUG][       Thread-262059][   transport.py][1871] : server lang: <none>
2025-06-13 17:10:16,344 [DEBUG][       Thread-262059][   transport.py][1871] : kex follows: False
2025-06-13 17:10:16,344 [DEBUG][       Thread-262059][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 17:10:16,344 [DEBUG][       Thread-262059][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 17:10:16,344 [DEBUG][       Thread-262059][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 17:10:16,344 [DEBUG][       Thread-262059][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 17:10:16,344 [DEBUG][       Thread-262059][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 17:10:16,344 [DEBUG][       Thread-262059][   transport.py][1871] : Compression: none
2025-06-13 17:10:16,344 [DEBUG][       Thread-262059][   transport.py][1871] : === End of kex handshake ===
2025-06-13 17:10:16,402 [DEBUG][       Thread-262059][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 17:10:16,402 [DEBUG][       Thread-262059][   transport.py][1871] : Switch to new keys ...
2025-06-13 17:10:16,402 [DEBUG][       Thread-262059][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 17:10:16,402 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 17:10:16,403 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 17:10:16,459 [DEBUG][       Thread-262059][   transport.py][1871] : userauth is OK
2025-06-13 17:10:16,459 [DEBUG][       Thread-262059][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 17:10:16,459 [DEBUG][       Thread-262059][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 17:10:16,460 [DEBUG][       Thread-262059][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 17:10:16,460 [DEBUG][       Thread-262059][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 17:10:16,475 [ INFO][       Thread-262059][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 17:10:16,475 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 17:10:16,475 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 17:10:17,507 [DEBUG][       Thread-262059][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 17:10:17,507 [DEBUG][       Thread-262059][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 17:10:17,556 [DEBUG][       Thread-262059][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 17:10:17,557 [DEBUG][       Thread-262059][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 17:10:17,568 [DEBUG][       Thread-262059][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 17:10:17,589 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 17:10:17,589 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 17:10:17,601 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 17:10:17,611 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 17:10:17,611 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 17:10:17,612 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 17:10:17,620 [DEBUG][       Thread-262059][   transport.py][1871] : EOF in transport thread
2025-06-13 17:10:23,020 [DEBUG][Thread-262061 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:10:23,856 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:10:23,857 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:10:25,342 [DEBUG][Thread-262062 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:10:27,620 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 17:10:27,620 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 17:10:27,620 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 17:10:27,621 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 17:10:28,097 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 17, 10, 14), 16.5, 31.7, 0.0, 11.19, 13.2, 0, 0, 0, 2, 0, 0),)
2025-06-13 17:10:28,097 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 17:10:14
2025-06-13 17:10:28,177 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 17:10:28,184 [DEBUG][       Thread-262063][   transport.py][1871] : starting thread (client mode): 0x863680a0
2025-06-13 17:10:28,184 [DEBUG][       Thread-262063][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 17:10:28,204 [DEBUG][       Thread-262063][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 17:10:28,204 [ INFO][       Thread-262063][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 17:10:28,208 [DEBUG][       Thread-262063][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 17:10:28,208 [DEBUG][       Thread-262063][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 17:10:28,208 [DEBUG][       Thread-262063][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 17:10:28,208 [DEBUG][       Thread-262063][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:10:28,208 [DEBUG][       Thread-262063][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:10:28,208 [DEBUG][       Thread-262063][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:10:28,208 [DEBUG][       Thread-262063][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:10:28,208 [DEBUG][       Thread-262063][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 17:10:28,208 [DEBUG][       Thread-262063][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 17:10:28,208 [DEBUG][       Thread-262063][   transport.py][1871] : client lang: <none>
2025-06-13 17:10:28,208 [DEBUG][       Thread-262063][   transport.py][1871] : server lang: <none>
2025-06-13 17:10:28,208 [DEBUG][       Thread-262063][   transport.py][1871] : kex follows: False
2025-06-13 17:10:28,208 [DEBUG][       Thread-262063][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 17:10:28,208 [DEBUG][       Thread-262063][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 17:10:28,208 [DEBUG][       Thread-262063][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 17:10:28,208 [DEBUG][       Thread-262063][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 17:10:28,208 [DEBUG][       Thread-262063][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 17:10:28,208 [DEBUG][       Thread-262063][   transport.py][1871] : Compression: none
2025-06-13 17:10:28,208 [DEBUG][       Thread-262063][   transport.py][1871] : === End of kex handshake ===
2025-06-13 17:10:28,224 [DEBUG][       Thread-262063][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 17:10:28,224 [DEBUG][       Thread-262063][   transport.py][1871] : Switch to new keys ...
2025-06-13 17:10:28,224 [DEBUG][       Thread-262063][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 17:10:28,224 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 17:10:28,224 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 17:10:28,225 [DEBUG][       Thread-262063][   transport.py][1871] : userauth is OK
2025-06-13 17:10:28,248 [ INFO][       Thread-262063][   transport.py][1871] : Authentication (password) successful!
2025-06-13 17:10:28,249 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 17:10:28,961 [DEBUG][       Thread-262063][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 17:10:28,961 [DEBUG][       Thread-262063][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 17:10:29,004 [DEBUG][       Thread-262063][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 17:10:29,004 [DEBUG][       Thread-262063][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 17:10:29,006 [DEBUG][       Thread-262063][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 17:10:29,019 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 17:10:29,019 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 17:10:29,020 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 17:10:29,021 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 17:10:29,024 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 17:10:29,024 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 17:10:29,024 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 17:10:29,025 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 17:10:29,025 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.631531 -999.00  +13.10  14.75     35   -1.60 1 1 1 1 1   887    0 14.61 4.85 ----- 14.4 14.8 40.6 16.4 15.1 -29.8 14.7 -30.1 15.0 -29.3 15.6 -28.7
2025-06-13 17:10:29,025 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 17:10:29,025 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 17:10:29,025 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.631531
2025-06-13 17:10:29,025 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 17:10:29,025 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 17:10:29,025 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 17:10:29,025 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 17:10:29,025 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 17:10:29,025 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T17:10:14', tmtdew=16.5, humidity=31.7, cloud=0.0, wind=11.19, temperature=13.2, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T15:09:24.278', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 17:10:29,026 [DEBUG][       Thread-262063][   transport.py][1871] : EOF in transport thread
2025-06-13 17:10:29,099 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 17:10:29,108 [DEBUG][       Thread-262066][   transport.py][1871] : starting thread (client mode): 0x86369ea0
2025-06-13 17:10:29,108 [DEBUG][       Thread-262066][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 17:10:29,126 [DEBUG][       Thread-262066][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 17:10:29,126 [ INFO][       Thread-262066][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 17:10:29,134 [DEBUG][       Thread-262066][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 17:10:29,134 [DEBUG][       Thread-262066][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 17:10:29,134 [DEBUG][       Thread-262066][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 17:10:29,134 [DEBUG][       Thread-262066][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:10:29,134 [DEBUG][       Thread-262066][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:10:29,134 [DEBUG][       Thread-262066][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:10:29,134 [DEBUG][       Thread-262066][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:10:29,134 [DEBUG][       Thread-262066][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 17:10:29,134 [DEBUG][       Thread-262066][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 17:10:29,134 [DEBUG][       Thread-262066][   transport.py][1871] : client lang: <none>
2025-06-13 17:10:29,134 [DEBUG][       Thread-262066][   transport.py][1871] : server lang: <none>
2025-06-13 17:10:29,134 [DEBUG][       Thread-262066][   transport.py][1871] : kex follows: False
2025-06-13 17:10:29,134 [DEBUG][       Thread-262066][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 17:10:29,134 [DEBUG][       Thread-262066][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 17:10:29,134 [DEBUG][       Thread-262066][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 17:10:29,134 [DEBUG][       Thread-262066][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 17:10:29,134 [DEBUG][       Thread-262066][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 17:10:29,134 [DEBUG][       Thread-262066][   transport.py][1871] : Compression: none
2025-06-13 17:10:29,134 [DEBUG][       Thread-262066][   transport.py][1871] : === End of kex handshake ===
2025-06-13 17:10:29,191 [DEBUG][       Thread-262066][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 17:10:29,191 [DEBUG][       Thread-262066][   transport.py][1871] : Switch to new keys ...
2025-06-13 17:10:29,191 [DEBUG][       Thread-262066][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 17:10:29,191 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 17:10:29,191 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 17:10:29,247 [DEBUG][       Thread-262066][   transport.py][1871] : userauth is OK
2025-06-13 17:10:29,248 [DEBUG][       Thread-262066][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 17:10:29,248 [DEBUG][       Thread-262066][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 17:10:29,248 [DEBUG][       Thread-262066][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 17:10:29,248 [DEBUG][       Thread-262066][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 17:10:29,262 [ INFO][       Thread-262066][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 17:10:29,262 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 17:10:29,262 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 17:10:30,277 [DEBUG][       Thread-262066][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 17:10:30,278 [DEBUG][       Thread-262066][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 17:10:30,333 [DEBUG][       Thread-262066][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 17:10:30,334 [DEBUG][       Thread-262066][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 17:10:30,344 [DEBUG][       Thread-262066][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 17:10:30,353 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 17:10:30,353 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 17:10:30,362 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 17:10:30,372 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 17:10:30,372 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 17:10:30,373 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 17:10:30,382 [DEBUG][       Thread-262066][   transport.py][1871] : EOF in transport thread
2025-06-13 17:10:32,041 [DEBUG][Thread-262068 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:10:40,383 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 17:10:40,384 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 17:10:40,392 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 17:10:40,394 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 17:10:40,836 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 17, 10, 14), 16.5, 31.7, 0.0, 11.19, 13.2, 0, 0, 0, 2, 0, 0),)
2025-06-13 17:10:40,836 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 17:10:14
2025-06-13 17:10:40,914 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 17:10:40,918 [DEBUG][       Thread-262069][   transport.py][1871] : starting thread (client mode): 0x86369ea0
2025-06-13 17:10:40,918 [DEBUG][       Thread-262069][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 17:10:40,938 [DEBUG][       Thread-262069][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 17:10:40,938 [ INFO][       Thread-262069][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 17:10:40,941 [DEBUG][       Thread-262069][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 17:10:40,941 [DEBUG][       Thread-262069][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 17:10:40,941 [DEBUG][       Thread-262069][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 17:10:40,941 [DEBUG][       Thread-262069][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:10:40,942 [DEBUG][       Thread-262069][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:10:40,942 [DEBUG][       Thread-262069][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:10:40,942 [DEBUG][       Thread-262069][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:10:40,942 [DEBUG][       Thread-262069][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 17:10:40,942 [DEBUG][       Thread-262069][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 17:10:40,942 [DEBUG][       Thread-262069][   transport.py][1871] : client lang: <none>
2025-06-13 17:10:40,942 [DEBUG][       Thread-262069][   transport.py][1871] : server lang: <none>
2025-06-13 17:10:40,942 [DEBUG][       Thread-262069][   transport.py][1871] : kex follows: False
2025-06-13 17:10:40,942 [DEBUG][       Thread-262069][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 17:10:40,942 [DEBUG][       Thread-262069][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 17:10:40,942 [DEBUG][       Thread-262069][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 17:10:40,942 [DEBUG][       Thread-262069][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 17:10:40,942 [DEBUG][       Thread-262069][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 17:10:40,942 [DEBUG][       Thread-262069][   transport.py][1871] : Compression: none
2025-06-13 17:10:40,942 [DEBUG][       Thread-262069][   transport.py][1871] : === End of kex handshake ===
2025-06-13 17:10:40,950 [DEBUG][       Thread-262069][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 17:10:40,951 [DEBUG][       Thread-262069][   transport.py][1871] : Switch to new keys ...
2025-06-13 17:10:40,951 [DEBUG][       Thread-262069][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 17:10:40,952 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 17:10:40,952 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 17:10:40,953 [DEBUG][       Thread-262069][   transport.py][1871] : userauth is OK
2025-06-13 17:10:40,966 [ INFO][       Thread-262069][   transport.py][1871] : Authentication (password) successful!
2025-06-13 17:10:40,967 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 17:10:41,078 [DEBUG][Thread-262071 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:10:41,422 [DEBUG][Thread-262072 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:10:41,556 [DEBUG][       Thread-262069][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 17:10:41,557 [DEBUG][       Thread-262069][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 17:10:41,601 [DEBUG][       Thread-262069][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 17:10:41,601 [DEBUG][       Thread-262069][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 17:10:41,603 [DEBUG][       Thread-262069][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 17:10:41,609 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 17:10:41,610 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 17:10:41,611 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 17:10:41,613 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 17:10:41,617 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 17:10:41,618 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 17:10:41,618 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 17:10:41,618 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 17:10:41,618 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.632226 -999.00  +13.00  15.00     36   -1.60 1 1 1 1 1   887    0 14.56 7.67 ----- 14.7 15.0 54.2 17.6 15.0 -29.8 14.6 -30.0 14.8 -29.4 15.4 -28.9
2025-06-13 17:10:41,618 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 17:10:41,618 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 17:10:41,618 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.632226
2025-06-13 17:10:41,618 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 17:10:41,618 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 17:10:41,618 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 17:10:41,618 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 17:10:41,618 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 17:10:41,618 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T17:10:14', tmtdew=16.5, humidity=31.7, cloud=0.0, wind=11.19, temperature=13.2, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T15:10:24.326', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 17:10:41,618 [DEBUG][       Thread-262069][   transport.py][1871] : EOF in transport thread
2025-06-13 17:10:41,702 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 17:10:41,715 [DEBUG][       Thread-262074][   transport.py][1871] : starting thread (client mode): 0x863efac0
2025-06-13 17:10:41,715 [DEBUG][       Thread-262074][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 17:10:41,729 [DEBUG][       Thread-262074][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 17:10:41,729 [ INFO][       Thread-262074][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 17:10:41,737 [DEBUG][       Thread-262074][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 17:10:41,737 [DEBUG][       Thread-262074][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 17:10:41,737 [DEBUG][       Thread-262074][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 17:10:41,737 [DEBUG][       Thread-262074][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:10:41,737 [DEBUG][       Thread-262074][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:10:41,737 [DEBUG][       Thread-262074][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:10:41,737 [DEBUG][       Thread-262074][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:10:41,738 [DEBUG][       Thread-262074][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 17:10:41,738 [DEBUG][       Thread-262074][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 17:10:41,738 [DEBUG][       Thread-262074][   transport.py][1871] : client lang: <none>
2025-06-13 17:10:41,738 [DEBUG][       Thread-262074][   transport.py][1871] : server lang: <none>
2025-06-13 17:10:41,738 [DEBUG][       Thread-262074][   transport.py][1871] : kex follows: False
2025-06-13 17:10:41,738 [DEBUG][       Thread-262074][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 17:10:41,738 [DEBUG][       Thread-262074][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 17:10:41,738 [DEBUG][       Thread-262074][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 17:10:41,738 [DEBUG][       Thread-262074][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 17:10:41,738 [DEBUG][       Thread-262074][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 17:10:41,738 [DEBUG][       Thread-262074][   transport.py][1871] : Compression: none
2025-06-13 17:10:41,738 [DEBUG][       Thread-262074][   transport.py][1871] : === End of kex handshake ===
2025-06-13 17:10:41,797 [DEBUG][       Thread-262074][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 17:10:41,798 [DEBUG][       Thread-262074][   transport.py][1871] : Switch to new keys ...
2025-06-13 17:10:41,798 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 17:10:41,799 [DEBUG][       Thread-262074][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 17:10:41,800 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 17:10:41,856 [DEBUG][       Thread-262074][   transport.py][1871] : userauth is OK
2025-06-13 17:10:41,856 [DEBUG][       Thread-262074][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 17:10:41,857 [DEBUG][       Thread-262074][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 17:10:41,857 [DEBUG][       Thread-262074][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 17:10:41,857 [DEBUG][       Thread-262074][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 17:10:41,875 [ INFO][       Thread-262074][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 17:10:41,875 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 17:10:41,876 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 17:10:42,503 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:10:42,504 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:10:42,851 [DEBUG][       Thread-262074][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 17:10:42,851 [DEBUG][       Thread-262074][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 17:10:42,900 [DEBUG][       Thread-262074][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 17:10:42,900 [DEBUG][       Thread-262074][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 17:10:42,909 [DEBUG][       Thread-262074][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 17:10:42,919 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 17:10:42,919 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 17:10:42,928 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 17:10:42,943 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 17:10:42,943 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 17:10:42,943 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 17:10:42,952 [DEBUG][       Thread-262074][   transport.py][1871] : EOF in transport thread
2025-06-13 17:10:50,100 [DEBUG][Thread-262076 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:10:52,952 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 17:10:52,952 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 17:10:52,952 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 17:10:52,953 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 17:10:53,389 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 17, 10, 46), 16.57, 31.54, 0.0, 11.51, 13.18, 0, 0, 0, 2, 0, 0),)
2025-06-13 17:10:53,389 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 17:10:46
2025-06-13 17:10:53,466 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 17:10:53,472 [DEBUG][       Thread-262077][   transport.py][1871] : starting thread (client mode): 0x8636bac0
2025-06-13 17:10:53,472 [DEBUG][       Thread-262077][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 17:10:53,487 [DEBUG][       Thread-262077][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 17:10:53,488 [ INFO][       Thread-262077][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 17:10:53,491 [DEBUG][       Thread-262077][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 17:10:53,491 [DEBUG][       Thread-262077][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 17:10:53,491 [DEBUG][       Thread-262077][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 17:10:53,491 [DEBUG][       Thread-262077][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:10:53,491 [DEBUG][       Thread-262077][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:10:53,491 [DEBUG][       Thread-262077][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:10:53,491 [DEBUG][       Thread-262077][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:10:53,491 [DEBUG][       Thread-262077][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 17:10:53,491 [DEBUG][       Thread-262077][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 17:10:53,491 [DEBUG][       Thread-262077][   transport.py][1871] : client lang: <none>
2025-06-13 17:10:53,491 [DEBUG][       Thread-262077][   transport.py][1871] : server lang: <none>
2025-06-13 17:10:53,492 [DEBUG][       Thread-262077][   transport.py][1871] : kex follows: False
2025-06-13 17:10:53,492 [DEBUG][       Thread-262077][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 17:10:53,492 [DEBUG][       Thread-262077][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 17:10:53,492 [DEBUG][       Thread-262077][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 17:10:53,492 [DEBUG][       Thread-262077][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 17:10:53,492 [DEBUG][       Thread-262077][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 17:10:53,492 [DEBUG][       Thread-262077][   transport.py][1871] : Compression: none
2025-06-13 17:10:53,492 [DEBUG][       Thread-262077][   transport.py][1871] : === End of kex handshake ===
2025-06-13 17:10:53,514 [DEBUG][       Thread-262077][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 17:10:53,514 [DEBUG][       Thread-262077][   transport.py][1871] : Switch to new keys ...
2025-06-13 17:10:53,515 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 17:10:53,515 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 17:10:53,516 [DEBUG][       Thread-262077][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 17:10:53,517 [DEBUG][       Thread-262077][   transport.py][1871] : userauth is OK
2025-06-13 17:10:53,541 [ INFO][       Thread-262077][   transport.py][1871] : Authentication (password) successful!
2025-06-13 17:10:53,542 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 17:10:54,229 [DEBUG][       Thread-262077][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 17:10:54,230 [DEBUG][       Thread-262077][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 17:10:54,273 [DEBUG][       Thread-262077][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 17:10:54,273 [DEBUG][       Thread-262077][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 17:10:54,277 [DEBUG][       Thread-262077][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 17:10:54,289 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 17:10:54,290 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 17:10:54,292 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 17:10:54,294 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 17:10:54,300 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 17:10:54,302 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 17:10:54,302 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 17:10:54,303 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 17:10:54,303 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.632226 -999.00  +13.00  15.00     36   -1.60 1 1 1 1 1   887    0 14.56 7.67 ----- 14.7 15.0 54.2 17.6 15.0 -29.8 14.6 -30.0 14.8 -29.4 15.4 -28.9
2025-06-13 17:10:54,303 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 17:10:54,303 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 17:10:54,304 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.632226
2025-06-13 17:10:54,304 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 17:10:54,305 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 17:10:54,305 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 17:10:54,305 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 17:10:54,305 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 17:10:54,305 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T17:10:46', tmtdew=16.57, humidity=31.54, cloud=0.0, wind=11.51, temperature=13.18, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T15:10:24.326', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 17:10:54,306 [DEBUG][       Thread-262077][   transport.py][1871] : EOF in transport thread
2025-06-13 17:10:54,388 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 17:10:54,398 [DEBUG][       Thread-262080][   transport.py][1871] : starting thread (client mode): 0x863c8790
2025-06-13 17:10:54,398 [DEBUG][       Thread-262080][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 17:10:54,413 [DEBUG][       Thread-262080][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 17:10:54,413 [ INFO][       Thread-262080][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 17:10:54,421 [DEBUG][       Thread-262080][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 17:10:54,421 [DEBUG][       Thread-262080][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 17:10:54,421 [DEBUG][       Thread-262080][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 17:10:54,421 [DEBUG][       Thread-262080][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:10:54,421 [DEBUG][       Thread-262080][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:10:54,421 [DEBUG][       Thread-262080][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:10:54,421 [DEBUG][       Thread-262080][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:10:54,421 [DEBUG][       Thread-262080][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 17:10:54,421 [DEBUG][       Thread-262080][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 17:10:54,421 [DEBUG][       Thread-262080][   transport.py][1871] : client lang: <none>
2025-06-13 17:10:54,421 [DEBUG][       Thread-262080][   transport.py][1871] : server lang: <none>
2025-06-13 17:10:54,421 [DEBUG][       Thread-262080][   transport.py][1871] : kex follows: False
2025-06-13 17:10:54,421 [DEBUG][       Thread-262080][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 17:10:54,421 [DEBUG][       Thread-262080][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 17:10:54,421 [DEBUG][       Thread-262080][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 17:10:54,421 [DEBUG][       Thread-262080][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 17:10:54,421 [DEBUG][       Thread-262080][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 17:10:54,421 [DEBUG][       Thread-262080][   transport.py][1871] : Compression: none
2025-06-13 17:10:54,421 [DEBUG][       Thread-262080][   transport.py][1871] : === End of kex handshake ===
2025-06-13 17:10:54,483 [DEBUG][       Thread-262080][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 17:10:54,484 [DEBUG][       Thread-262080][   transport.py][1871] : Switch to new keys ...
2025-06-13 17:10:54,485 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 17:10:54,485 [DEBUG][       Thread-262080][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 17:10:54,486 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 17:10:54,540 [DEBUG][       Thread-262080][   transport.py][1871] : userauth is OK
2025-06-13 17:10:54,540 [DEBUG][       Thread-262080][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 17:10:54,540 [DEBUG][       Thread-262080][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 17:10:54,540 [DEBUG][       Thread-262080][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 17:10:54,541 [DEBUG][       Thread-262080][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 17:10:54,559 [ INFO][       Thread-262080][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 17:10:54,559 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 17:10:54,560 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 17:10:55,540 [DEBUG][       Thread-262080][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 17:10:55,541 [DEBUG][       Thread-262080][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 17:10:55,597 [DEBUG][       Thread-262080][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 17:10:55,597 [DEBUG][       Thread-262080][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 17:10:55,610 [DEBUG][       Thread-262080][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 17:10:55,619 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 17:10:55,620 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 17:10:55,628 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 17:10:55,637 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 17:10:55,638 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 17:10:55,638 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 17:10:55,648 [DEBUG][       Thread-262080][   transport.py][1871] : EOF in transport thread
2025-06-13 17:10:59,119 [DEBUG][Thread-262082 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:11:05,648 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 17:11:05,649 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 17:11:05,649 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 17:11:05,649 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 17:11:06,114 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 17, 10, 46), 16.57, 31.54, 0.0, 11.51, 13.18, 0, 0, 0, 2, 0, 0),)
2025-06-13 17:11:06,114 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 17:10:46
2025-06-13 17:11:06,195 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 17:11:06,198 [DEBUG][       Thread-262083][   transport.py][1871] : starting thread (client mode): 0x8636a980
2025-06-13 17:11:06,198 [DEBUG][       Thread-262083][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 17:11:06,224 [DEBUG][       Thread-262083][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 17:11:06,224 [ INFO][       Thread-262083][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 17:11:06,228 [DEBUG][       Thread-262083][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 17:11:06,228 [DEBUG][       Thread-262083][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 17:11:06,228 [DEBUG][       Thread-262083][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 17:11:06,228 [DEBUG][       Thread-262083][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:11:06,228 [DEBUG][       Thread-262083][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:11:06,228 [DEBUG][       Thread-262083][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:11:06,228 [DEBUG][       Thread-262083][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:11:06,228 [DEBUG][       Thread-262083][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 17:11:06,228 [DEBUG][       Thread-262083][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 17:11:06,228 [DEBUG][       Thread-262083][   transport.py][1871] : client lang: <none>
2025-06-13 17:11:06,228 [DEBUG][       Thread-262083][   transport.py][1871] : server lang: <none>
2025-06-13 17:11:06,228 [DEBUG][       Thread-262083][   transport.py][1871] : kex follows: False
2025-06-13 17:11:06,228 [DEBUG][       Thread-262083][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 17:11:06,228 [DEBUG][       Thread-262083][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 17:11:06,228 [DEBUG][       Thread-262083][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 17:11:06,228 [DEBUG][       Thread-262083][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 17:11:06,228 [DEBUG][       Thread-262083][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 17:11:06,228 [DEBUG][       Thread-262083][   transport.py][1871] : Compression: none
2025-06-13 17:11:06,228 [DEBUG][       Thread-262083][   transport.py][1871] : === End of kex handshake ===
2025-06-13 17:11:06,244 [DEBUG][       Thread-262083][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 17:11:06,244 [DEBUG][       Thread-262083][   transport.py][1871] : Switch to new keys ...
2025-06-13 17:11:06,244 [DEBUG][       Thread-262083][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 17:11:06,244 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 17:11:06,244 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 17:11:06,245 [DEBUG][       Thread-262083][   transport.py][1871] : userauth is OK
2025-06-13 17:11:06,269 [ INFO][       Thread-262083][   transport.py][1871] : Authentication (password) successful!
2025-06-13 17:11:06,269 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 17:11:06,891 [DEBUG][       Thread-262083][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 17:11:06,891 [DEBUG][       Thread-262083][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 17:11:06,932 [DEBUG][       Thread-262083][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 17:11:06,932 [DEBUG][       Thread-262083][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 17:11:06,934 [DEBUG][       Thread-262083][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 17:11:06,947 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 17:11:06,947 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 17:11:06,948 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 17:11:06,949 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 17:11:06,952 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 17:11:06,952 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 17:11:06,953 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 17:11:06,953 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 17:11:06,953 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.632573 -999.00  +13.00  15.34     36   -1.60 1 1 1 1 1   887    0 14.63 7.15 ----- 15.8 15.3 48.2 20.6 14.9 -29.8 14.6 -30.0 14.7 -29.4 15.4 -28.8
2025-06-13 17:11:06,953 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 17:11:06,953 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 17:11:06,953 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.632573
2025-06-13 17:11:06,953 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 17:11:06,953 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 17:11:06,953 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 17:11:06,953 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 17:11:06,953 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 17:11:06,953 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T17:10:46', tmtdew=16.57, humidity=31.54, cloud=0.0, wind=11.51, temperature=13.18, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T15:10:54.307', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 17:11:06,954 [DEBUG][       Thread-262083][   transport.py][1871] : EOF in transport thread
2025-06-13 17:11:07,025 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 17:11:07,042 [DEBUG][       Thread-262086][   transport.py][1871] : starting thread (client mode): 0x863ee890
2025-06-13 17:11:07,042 [DEBUG][       Thread-262086][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 17:11:07,057 [DEBUG][       Thread-262086][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 17:11:07,057 [ INFO][       Thread-262086][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 17:11:07,065 [DEBUG][       Thread-262086][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 17:11:07,065 [DEBUG][       Thread-262086][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 17:11:07,065 [DEBUG][       Thread-262086][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 17:11:07,065 [DEBUG][       Thread-262086][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:11:07,065 [DEBUG][       Thread-262086][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:11:07,065 [DEBUG][       Thread-262086][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:11:07,065 [DEBUG][       Thread-262086][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:11:07,065 [DEBUG][       Thread-262086][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 17:11:07,065 [DEBUG][       Thread-262086][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 17:11:07,065 [DEBUG][       Thread-262086][   transport.py][1871] : client lang: <none>
2025-06-13 17:11:07,065 [DEBUG][       Thread-262086][   transport.py][1871] : server lang: <none>
2025-06-13 17:11:07,065 [DEBUG][       Thread-262086][   transport.py][1871] : kex follows: False
2025-06-13 17:11:07,065 [DEBUG][       Thread-262086][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 17:11:07,065 [DEBUG][       Thread-262086][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 17:11:07,065 [DEBUG][       Thread-262086][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 17:11:07,065 [DEBUG][       Thread-262086][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 17:11:07,065 [DEBUG][       Thread-262086][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 17:11:07,065 [DEBUG][       Thread-262086][   transport.py][1871] : Compression: none
2025-06-13 17:11:07,065 [DEBUG][       Thread-262086][   transport.py][1871] : === End of kex handshake ===
2025-06-13 17:11:07,122 [DEBUG][       Thread-262086][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 17:11:07,122 [DEBUG][       Thread-262086][   transport.py][1871] : Switch to new keys ...
2025-06-13 17:11:07,122 [DEBUG][       Thread-262086][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 17:11:07,122 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 17:11:07,122 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 17:11:07,179 [DEBUG][       Thread-262086][   transport.py][1871] : userauth is OK
2025-06-13 17:11:07,179 [DEBUG][       Thread-262086][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 17:11:07,179 [DEBUG][       Thread-262086][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 17:11:07,179 [DEBUG][       Thread-262086][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 17:11:07,179 [DEBUG][       Thread-262086][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 17:11:07,193 [ INFO][       Thread-262086][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 17:11:07,193 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 17:11:07,194 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 17:11:08,143 [DEBUG][Thread-262088 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:11:08,220 [DEBUG][       Thread-262086][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 17:11:08,220 [DEBUG][       Thread-262086][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 17:11:08,268 [DEBUG][       Thread-262086][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 17:11:08,268 [DEBUG][       Thread-262086][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 17:11:08,277 [DEBUG][       Thread-262086][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 17:11:08,287 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 17:11:08,287 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 17:11:08,296 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 17:11:08,305 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 17:11:08,306 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 17:11:08,306 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 17:11:08,314 [DEBUG][       Thread-262086][   transport.py][1871] : EOF in transport thread
2025-06-13 17:11:17,165 [DEBUG][Thread-262089 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:11:18,317 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 17:11:18,317 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 17:11:18,317 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 17:11:18,320 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 17:11:18,744 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 17, 10, 46), 16.57, 31.54, 0.0, 11.51, 13.18, 0, 0, 0, 2, 0, 0),)
2025-06-13 17:11:18,744 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 17:10:46
2025-06-13 17:11:18,821 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 17:11:18,828 [DEBUG][       Thread-262090][   transport.py][1871] : starting thread (client mode): 0x867fc4f0
2025-06-13 17:11:18,828 [DEBUG][       Thread-262090][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 17:11:18,848 [DEBUG][       Thread-262090][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 17:11:18,848 [ INFO][       Thread-262090][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 17:11:18,851 [DEBUG][       Thread-262090][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 17:11:18,852 [DEBUG][       Thread-262090][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 17:11:18,852 [DEBUG][       Thread-262090][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 17:11:18,852 [DEBUG][       Thread-262090][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:11:18,852 [DEBUG][       Thread-262090][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:11:18,852 [DEBUG][       Thread-262090][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:11:18,852 [DEBUG][       Thread-262090][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:11:18,852 [DEBUG][       Thread-262090][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 17:11:18,852 [DEBUG][       Thread-262090][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 17:11:18,852 [DEBUG][       Thread-262090][   transport.py][1871] : client lang: <none>
2025-06-13 17:11:18,852 [DEBUG][       Thread-262090][   transport.py][1871] : server lang: <none>
2025-06-13 17:11:18,852 [DEBUG][       Thread-262090][   transport.py][1871] : kex follows: False
2025-06-13 17:11:18,852 [DEBUG][       Thread-262090][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 17:11:18,852 [DEBUG][       Thread-262090][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 17:11:18,852 [DEBUG][       Thread-262090][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 17:11:18,852 [DEBUG][       Thread-262090][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 17:11:18,852 [DEBUG][       Thread-262090][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 17:11:18,852 [DEBUG][       Thread-262090][   transport.py][1871] : Compression: none
2025-06-13 17:11:18,852 [DEBUG][       Thread-262090][   transport.py][1871] : === End of kex handshake ===
2025-06-13 17:11:18,867 [DEBUG][       Thread-262090][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 17:11:18,867 [DEBUG][       Thread-262090][   transport.py][1871] : Switch to new keys ...
2025-06-13 17:11:18,867 [DEBUG][       Thread-262090][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 17:11:18,867 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 17:11:18,867 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 17:11:18,868 [DEBUG][       Thread-262090][   transport.py][1871] : userauth is OK
2025-06-13 17:11:18,892 [ INFO][       Thread-262090][   transport.py][1871] : Authentication (password) successful!
2025-06-13 17:11:18,892 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 17:11:19,506 [DEBUG][       Thread-262090][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 17:11:19,507 [DEBUG][       Thread-262090][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 17:11:19,549 [DEBUG][       Thread-262090][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 17:11:19,549 [DEBUG][       Thread-262090][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 17:11:19,551 [DEBUG][       Thread-262090][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 17:11:19,563 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 17:11:19,563 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 17:11:19,564 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 17:11:19,565 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 17:11:19,568 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 17:11:19,568 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 17:11:19,568 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 17:11:19,568 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 17:11:19,569 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.632573 -999.00  +13.00  15.34     36   -1.60 1 1 1 1 1   887    0 14.63 7.15 ----- 15.8 15.3 48.2 20.6 14.9 -29.8 14.6 -30.0 14.7 -29.4 15.4 -28.8
2025-06-13 17:11:19,569 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 17:11:19,569 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 17:11:19,569 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.632573
2025-06-13 17:11:19,569 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 17:11:19,569 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 17:11:19,569 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 17:11:19,569 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 17:11:19,569 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 17:11:19,569 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T17:10:46', tmtdew=16.57, humidity=31.54, cloud=0.0, wind=11.51, temperature=13.18, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T15:10:54.307', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 17:11:19,570 [DEBUG][       Thread-262090][   transport.py][1871] : EOF in transport thread
2025-06-13 17:11:19,644 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 17:11:19,659 [DEBUG][       Thread-262093][   transport.py][1871] : starting thread (client mode): 0x863a40a0
2025-06-13 17:11:19,659 [DEBUG][       Thread-262093][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 17:11:19,675 [DEBUG][       Thread-262093][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 17:11:19,675 [ INFO][       Thread-262093][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 17:11:19,686 [DEBUG][       Thread-262093][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 17:11:19,686 [DEBUG][       Thread-262093][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 17:11:19,686 [DEBUG][       Thread-262093][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 17:11:19,686 [DEBUG][       Thread-262093][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:11:19,686 [DEBUG][       Thread-262093][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:11:19,686 [DEBUG][       Thread-262093][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:11:19,686 [DEBUG][       Thread-262093][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:11:19,686 [DEBUG][       Thread-262093][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 17:11:19,686 [DEBUG][       Thread-262093][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 17:11:19,686 [DEBUG][       Thread-262093][   transport.py][1871] : client lang: <none>
2025-06-13 17:11:19,686 [DEBUG][       Thread-262093][   transport.py][1871] : server lang: <none>
2025-06-13 17:11:19,686 [DEBUG][       Thread-262093][   transport.py][1871] : kex follows: False
2025-06-13 17:11:19,686 [DEBUG][       Thread-262093][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 17:11:19,686 [DEBUG][       Thread-262093][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 17:11:19,686 [DEBUG][       Thread-262093][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 17:11:19,686 [DEBUG][       Thread-262093][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 17:11:19,686 [DEBUG][       Thread-262093][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 17:11:19,686 [DEBUG][       Thread-262093][   transport.py][1871] : Compression: none
2025-06-13 17:11:19,686 [DEBUG][       Thread-262093][   transport.py][1871] : === End of kex handshake ===
2025-06-13 17:11:19,742 [DEBUG][       Thread-262093][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 17:11:19,742 [DEBUG][       Thread-262093][   transport.py][1871] : Switch to new keys ...
2025-06-13 17:11:19,742 [DEBUG][       Thread-262093][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 17:11:19,742 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 17:11:19,742 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 17:11:19,800 [DEBUG][       Thread-262093][   transport.py][1871] : userauth is OK
2025-06-13 17:11:19,800 [DEBUG][       Thread-262093][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 17:11:19,800 [DEBUG][       Thread-262093][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 17:11:19,800 [DEBUG][       Thread-262093][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 17:11:19,800 [DEBUG][       Thread-262093][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 17:11:19,814 [ INFO][       Thread-262093][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 17:11:19,814 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 17:11:19,814 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 17:11:20,861 [DEBUG][       Thread-262093][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 17:11:20,861 [DEBUG][       Thread-262093][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 17:11:20,911 [DEBUG][       Thread-262093][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 17:11:20,911 [DEBUG][       Thread-262093][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 17:11:20,920 [DEBUG][       Thread-262093][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 17:11:20,929 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 17:11:20,929 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 17:11:20,939 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 17:11:20,948 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 17:11:20,948 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 17:11:20,948 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 17:11:20,956 [DEBUG][       Thread-262093][   transport.py][1871] : EOF in transport thread
2025-06-13 17:11:23,997 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:11:23,997 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:11:25,392 [DEBUG][Thread-262095 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:11:26,185 [DEBUG][Thread-262096 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:11:30,958 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 17:11:30,959 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 17:11:30,959 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 17:11:30,962 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 17:11:31,411 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 17, 11, 18), 16.51, 31.51, 0.0, 13.5, 13.11, 0, 0, 0, 2, 0, 0),)
2025-06-13 17:11:31,411 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 17:11:18
2025-06-13 17:11:31,488 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 17:11:31,492 [DEBUG][       Thread-262097][   transport.py][1871] : starting thread (client mode): 0x8636bc70
2025-06-13 17:11:31,492 [DEBUG][       Thread-262097][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 17:11:31,512 [DEBUG][       Thread-262097][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 17:11:31,512 [ INFO][       Thread-262097][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 17:11:31,515 [DEBUG][       Thread-262097][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 17:11:31,515 [DEBUG][       Thread-262097][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 17:11:31,515 [DEBUG][       Thread-262097][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 17:11:31,515 [DEBUG][       Thread-262097][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:11:31,515 [DEBUG][       Thread-262097][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:11:31,515 [DEBUG][       Thread-262097][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:11:31,515 [DEBUG][       Thread-262097][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:11:31,515 [DEBUG][       Thread-262097][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 17:11:31,515 [DEBUG][       Thread-262097][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 17:11:31,515 [DEBUG][       Thread-262097][   transport.py][1871] : client lang: <none>
2025-06-13 17:11:31,515 [DEBUG][       Thread-262097][   transport.py][1871] : server lang: <none>
2025-06-13 17:11:31,515 [DEBUG][       Thread-262097][   transport.py][1871] : kex follows: False
2025-06-13 17:11:31,515 [DEBUG][       Thread-262097][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 17:11:31,516 [DEBUG][       Thread-262097][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 17:11:31,516 [DEBUG][       Thread-262097][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 17:11:31,516 [DEBUG][       Thread-262097][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 17:11:31,516 [DEBUG][       Thread-262097][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 17:11:31,516 [DEBUG][       Thread-262097][   transport.py][1871] : Compression: none
2025-06-13 17:11:31,516 [DEBUG][       Thread-262097][   transport.py][1871] : === End of kex handshake ===
2025-06-13 17:11:31,531 [DEBUG][       Thread-262097][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 17:11:31,532 [DEBUG][       Thread-262097][   transport.py][1871] : Switch to new keys ...
2025-06-13 17:11:31,532 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 17:11:31,532 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 17:11:31,533 [DEBUG][       Thread-262097][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 17:11:31,534 [DEBUG][       Thread-262097][   transport.py][1871] : userauth is OK
2025-06-13 17:11:31,547 [ INFO][       Thread-262097][   transport.py][1871] : Authentication (password) successful!
2025-06-13 17:11:31,547 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 17:11:32,179 [DEBUG][       Thread-262097][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 17:11:32,179 [DEBUG][       Thread-262097][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 17:11:32,221 [DEBUG][       Thread-262097][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 17:11:32,221 [DEBUG][       Thread-262097][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 17:11:32,224 [DEBUG][       Thread-262097][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 17:11:32,238 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 17:11:32,238 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 17:11:32,240 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 17:11:32,242 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 17:11:32,246 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 17:11:32,248 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 17:11:32,248 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 17:11:32,249 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 17:11:32,249 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.632573 -999.00  +13.00  15.34     36   -1.60 1 1 1 1 1   887    0 14.63 7.15 ----- 15.8 15.3 48.2 20.6 14.9 -29.8 14.6 -30.0 14.7 -29.4 15.4 -28.8
2025-06-13 17:11:32,249 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 17:11:32,249 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 17:11:32,249 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.632573
2025-06-13 17:11:32,249 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 17:11:32,250 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 17:11:32,250 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 17:11:32,250 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 17:11:32,250 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 17:11:32,250 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T17:11:18', tmtdew=16.51, humidity=31.51, cloud=0.0, wind=13.5, temperature=13.11, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T15:10:54.307', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 17:11:32,251 [DEBUG][       Thread-262097][   transport.py][1871] : EOF in transport thread
2025-06-13 17:11:32,335 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 17:11:32,344 [DEBUG][       Thread-262100][   transport.py][1871] : starting thread (client mode): 0x863beda0
2025-06-13 17:11:32,344 [DEBUG][       Thread-262100][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 17:11:32,359 [DEBUG][       Thread-262100][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 17:11:32,359 [ INFO][       Thread-262100][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 17:11:32,367 [DEBUG][       Thread-262100][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 17:11:32,367 [DEBUG][       Thread-262100][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 17:11:32,367 [DEBUG][       Thread-262100][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 17:11:32,367 [DEBUG][       Thread-262100][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:11:32,367 [DEBUG][       Thread-262100][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:11:32,367 [DEBUG][       Thread-262100][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:11:32,367 [DEBUG][       Thread-262100][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:11:32,367 [DEBUG][       Thread-262100][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 17:11:32,367 [DEBUG][       Thread-262100][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 17:11:32,367 [DEBUG][       Thread-262100][   transport.py][1871] : client lang: <none>
2025-06-13 17:11:32,367 [DEBUG][       Thread-262100][   transport.py][1871] : server lang: <none>
2025-06-13 17:11:32,367 [DEBUG][       Thread-262100][   transport.py][1871] : kex follows: False
2025-06-13 17:11:32,367 [DEBUG][       Thread-262100][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 17:11:32,367 [DEBUG][       Thread-262100][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 17:11:32,367 [DEBUG][       Thread-262100][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 17:11:32,367 [DEBUG][       Thread-262100][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 17:11:32,367 [DEBUG][       Thread-262100][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 17:11:32,367 [DEBUG][       Thread-262100][   transport.py][1871] : Compression: none
2025-06-13 17:11:32,367 [DEBUG][       Thread-262100][   transport.py][1871] : === End of kex handshake ===
2025-06-13 17:11:32,424 [DEBUG][       Thread-262100][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 17:11:32,425 [DEBUG][       Thread-262100][   transport.py][1871] : Switch to new keys ...
2025-06-13 17:11:32,425 [DEBUG][       Thread-262100][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 17:11:32,426 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 17:11:32,426 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 17:11:32,484 [DEBUG][       Thread-262100][   transport.py][1871] : userauth is OK
2025-06-13 17:11:32,484 [DEBUG][       Thread-262100][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 17:11:32,485 [DEBUG][       Thread-262100][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 17:11:32,485 [DEBUG][       Thread-262100][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 17:11:32,485 [DEBUG][       Thread-262100][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 17:11:32,504 [ INFO][       Thread-262100][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 17:11:32,504 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 17:11:32,505 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 17:11:33,495 [DEBUG][       Thread-262100][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 17:11:33,496 [DEBUG][       Thread-262100][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 17:11:33,544 [DEBUG][       Thread-262100][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 17:11:33,544 [DEBUG][       Thread-262100][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 17:11:33,553 [DEBUG][       Thread-262100][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 17:11:33,562 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 17:11:33,562 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 17:11:33,571 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 17:11:33,581 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 17:11:33,581 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 17:11:33,581 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 17:11:33,589 [DEBUG][       Thread-262100][   transport.py][1871] : EOF in transport thread
2025-06-13 17:11:35,207 [DEBUG][Thread-262102 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:11:42,584 [DEBUG][Thread-262103 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:11:43,588 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 17:11:43,588 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 17:11:43,588 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 17:11:43,589 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 17:11:43,636 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:11:43,636 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:11:44,060 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 17, 11, 18), 16.51, 31.51, 0.0, 13.5, 13.11, 0, 0, 0, 2, 0, 0),)
2025-06-13 17:11:44,060 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 17:11:18
2025-06-13 17:11:44,140 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 17:11:44,146 [DEBUG][       Thread-262104][   transport.py][1871] : starting thread (client mode): 0x863923e0
2025-06-13 17:11:44,146 [DEBUG][       Thread-262104][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 17:11:44,167 [DEBUG][       Thread-262104][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 17:11:44,167 [ INFO][       Thread-262104][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 17:11:44,170 [DEBUG][       Thread-262104][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 17:11:44,170 [DEBUG][       Thread-262104][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 17:11:44,170 [DEBUG][       Thread-262104][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 17:11:44,170 [DEBUG][       Thread-262104][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:11:44,170 [DEBUG][       Thread-262104][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:11:44,170 [DEBUG][       Thread-262104][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:11:44,170 [DEBUG][       Thread-262104][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:11:44,170 [DEBUG][       Thread-262104][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 17:11:44,170 [DEBUG][       Thread-262104][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 17:11:44,170 [DEBUG][       Thread-262104][   transport.py][1871] : client lang: <none>
2025-06-13 17:11:44,170 [DEBUG][       Thread-262104][   transport.py][1871] : server lang: <none>
2025-06-13 17:11:44,170 [DEBUG][       Thread-262104][   transport.py][1871] : kex follows: False
2025-06-13 17:11:44,170 [DEBUG][       Thread-262104][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 17:11:44,170 [DEBUG][       Thread-262104][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 17:11:44,170 [DEBUG][       Thread-262104][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 17:11:44,170 [DEBUG][       Thread-262104][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 17:11:44,170 [DEBUG][       Thread-262104][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 17:11:44,170 [DEBUG][       Thread-262104][   transport.py][1871] : Compression: none
2025-06-13 17:11:44,170 [DEBUG][       Thread-262104][   transport.py][1871] : === End of kex handshake ===
2025-06-13 17:11:44,187 [DEBUG][       Thread-262104][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 17:11:44,187 [DEBUG][       Thread-262104][   transport.py][1871] : Switch to new keys ...
2025-06-13 17:11:44,187 [DEBUG][       Thread-262104][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 17:11:44,187 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 17:11:44,187 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 17:11:44,188 [DEBUG][       Thread-262104][   transport.py][1871] : userauth is OK
2025-06-13 17:11:44,212 [ INFO][       Thread-262104][   transport.py][1871] : Authentication (password) successful!
2025-06-13 17:11:44,212 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 17:11:44,239 [DEBUG][Thread-262106 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:11:44,847 [DEBUG][       Thread-262104][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 17:11:44,847 [DEBUG][       Thread-262104][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 17:11:44,888 [DEBUG][       Thread-262104][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 17:11:44,888 [DEBUG][       Thread-262104][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 17:11:44,891 [DEBUG][       Thread-262104][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 17:11:44,902 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 17:11:44,902 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 17:11:44,903 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 17:11:44,904 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 17:11:44,907 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 17:11:44,908 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 17:11:44,908 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 17:11:44,908 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 17:11:44,908 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.632920 -999.00  +13.00  14.02     36   -1.60 1 1 1 1 1   887    0 14.51 7.60 ----- 14.4 14.0 43.2 17.1 14.9 -29.8 14.6 -29.8 14.8 -28.9 15.3 -28.8
2025-06-13 17:11:44,908 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 17:11:44,908 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 17:11:44,908 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.632920
2025-06-13 17:11:44,908 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 17:11:44,908 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 17:11:44,908 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 17:11:44,908 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 17:11:44,908 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 17:11:44,908 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T17:11:18', tmtdew=16.51, humidity=31.51, cloud=0.0, wind=13.5, temperature=13.11, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T15:11:24.288', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 17:11:44,909 [DEBUG][       Thread-262104][   transport.py][1871] : EOF in transport thread
2025-06-13 17:11:44,980 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 17:11:44,997 [DEBUG][       Thread-262108][   transport.py][1871] : starting thread (client mode): 0x867b71c0
2025-06-13 17:11:44,997 [DEBUG][       Thread-262108][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 17:11:45,015 [DEBUG][       Thread-262108][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 17:11:45,015 [ INFO][       Thread-262108][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 17:11:45,022 [DEBUG][       Thread-262108][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 17:11:45,022 [DEBUG][       Thread-262108][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 17:11:45,022 [DEBUG][       Thread-262108][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 17:11:45,022 [DEBUG][       Thread-262108][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:11:45,022 [DEBUG][       Thread-262108][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:11:45,022 [DEBUG][       Thread-262108][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:11:45,022 [DEBUG][       Thread-262108][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:11:45,022 [DEBUG][       Thread-262108][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 17:11:45,022 [DEBUG][       Thread-262108][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 17:11:45,022 [DEBUG][       Thread-262108][   transport.py][1871] : client lang: <none>
2025-06-13 17:11:45,022 [DEBUG][       Thread-262108][   transport.py][1871] : server lang: <none>
2025-06-13 17:11:45,022 [DEBUG][       Thread-262108][   transport.py][1871] : kex follows: False
2025-06-13 17:11:45,022 [DEBUG][       Thread-262108][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 17:11:45,022 [DEBUG][       Thread-262108][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 17:11:45,022 [DEBUG][       Thread-262108][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 17:11:45,022 [DEBUG][       Thread-262108][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 17:11:45,022 [DEBUG][       Thread-262108][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 17:11:45,022 [DEBUG][       Thread-262108][   transport.py][1871] : Compression: none
2025-06-13 17:11:45,022 [DEBUG][       Thread-262108][   transport.py][1871] : === End of kex handshake ===
2025-06-13 17:11:45,083 [DEBUG][       Thread-262108][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 17:11:45,083 [DEBUG][       Thread-262108][   transport.py][1871] : Switch to new keys ...
2025-06-13 17:11:45,083 [DEBUG][       Thread-262108][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 17:11:45,083 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 17:11:45,083 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 17:11:45,147 [DEBUG][       Thread-262108][   transport.py][1871] : userauth is OK
2025-06-13 17:11:45,147 [DEBUG][       Thread-262108][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 17:11:45,147 [DEBUG][       Thread-262108][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 17:11:45,147 [DEBUG][       Thread-262108][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 17:11:45,147 [DEBUG][       Thread-262108][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 17:11:45,161 [ INFO][       Thread-262108][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 17:11:45,162 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 17:11:45,162 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 17:11:46,143 [DEBUG][       Thread-262108][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 17:11:46,143 [DEBUG][       Thread-262108][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 17:11:46,193 [DEBUG][       Thread-262108][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 17:11:46,193 [DEBUG][       Thread-262108][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 17:11:46,211 [DEBUG][       Thread-262108][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 17:11:46,219 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 17:11:46,220 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 17:11:46,228 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 17:11:46,237 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 17:11:46,237 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 17:11:46,238 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 17:11:46,246 [DEBUG][       Thread-262108][   transport.py][1871] : EOF in transport thread
2025-06-13 17:11:53,257 [DEBUG][Thread-262110 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:11:56,248 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 17:11:56,248 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 17:11:56,248 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 17:11:56,251 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 17:11:56,708 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 17, 11, 50), 16.49, 31.55, 0.0, 14.28, 13.11, 0, 0, 0, 2, 0, 0),)
2025-06-13 17:11:56,708 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 17:11:50
2025-06-13 17:11:56,786 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 17:11:56,790 [DEBUG][       Thread-262111][   transport.py][1871] : starting thread (client mode): 0x867ff010
2025-06-13 17:11:56,790 [DEBUG][       Thread-262111][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 17:11:56,811 [DEBUG][       Thread-262111][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 17:11:56,811 [ INFO][       Thread-262111][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 17:11:56,814 [DEBUG][       Thread-262111][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 17:11:56,815 [DEBUG][       Thread-262111][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 17:11:56,815 [DEBUG][       Thread-262111][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 17:11:56,815 [DEBUG][       Thread-262111][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:11:56,815 [DEBUG][       Thread-262111][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:11:56,815 [DEBUG][       Thread-262111][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:11:56,815 [DEBUG][       Thread-262111][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:11:56,815 [DEBUG][       Thread-262111][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 17:11:56,815 [DEBUG][       Thread-262111][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 17:11:56,815 [DEBUG][       Thread-262111][   transport.py][1871] : client lang: <none>
2025-06-13 17:11:56,815 [DEBUG][       Thread-262111][   transport.py][1871] : server lang: <none>
2025-06-13 17:11:56,815 [DEBUG][       Thread-262111][   transport.py][1871] : kex follows: False
2025-06-13 17:11:56,815 [DEBUG][       Thread-262111][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 17:11:56,815 [DEBUG][       Thread-262111][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 17:11:56,815 [DEBUG][       Thread-262111][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 17:11:56,815 [DEBUG][       Thread-262111][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 17:11:56,815 [DEBUG][       Thread-262111][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 17:11:56,815 [DEBUG][       Thread-262111][   transport.py][1871] : Compression: none
2025-06-13 17:11:56,815 [DEBUG][       Thread-262111][   transport.py][1871] : === End of kex handshake ===
2025-06-13 17:11:56,831 [DEBUG][       Thread-262111][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 17:11:56,831 [DEBUG][       Thread-262111][   transport.py][1871] : Switch to new keys ...
2025-06-13 17:11:56,832 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 17:11:56,832 [DEBUG][       Thread-262111][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 17:11:56,832 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 17:11:56,834 [DEBUG][       Thread-262111][   transport.py][1871] : userauth is OK
2025-06-13 17:11:56,846 [ INFO][       Thread-262111][   transport.py][1871] : Authentication (password) successful!
2025-06-13 17:11:56,847 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 17:11:57,554 [DEBUG][       Thread-262111][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 17:11:57,555 [DEBUG][       Thread-262111][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 17:11:57,597 [DEBUG][       Thread-262111][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 17:11:57,597 [DEBUG][       Thread-262111][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 17:11:57,601 [DEBUG][       Thread-262111][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 17:11:57,616 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 17:11:57,616 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 17:11:57,618 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 17:11:57,620 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 17:11:57,626 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 17:11:57,628 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 17:11:57,628 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 17:11:57,629 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 17:11:57,629 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.632920 -999.00  +13.00  14.02     36   -1.60 1 1 1 1 1   887    0 14.51 7.60 ----- 14.4 14.0 43.2 17.1 14.9 -29.8 14.6 -29.8 14.8 -28.9 15.3 -28.8
2025-06-13 17:11:57,629 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 17:11:57,629 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 17:11:57,629 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.632920
2025-06-13 17:11:57,629 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 17:11:57,630 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 17:11:57,630 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 17:11:57,630 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 17:11:57,630 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 17:11:57,630 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T17:11:50', tmtdew=16.49, humidity=31.55, cloud=0.0, wind=14.28, temperature=13.11, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T15:11:24.288', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 17:11:57,631 [DEBUG][       Thread-262111][   transport.py][1871] : EOF in transport thread
2025-06-13 17:11:57,714 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 17:11:57,724 [DEBUG][       Thread-262114][   transport.py][1871] : starting thread (client mode): 0x863efac0
2025-06-13 17:11:57,724 [DEBUG][       Thread-262114][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 17:11:57,745 [DEBUG][       Thread-262114][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 17:11:57,746 [ INFO][       Thread-262114][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 17:11:57,756 [DEBUG][       Thread-262114][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 17:11:57,756 [DEBUG][       Thread-262114][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 17:11:57,756 [DEBUG][       Thread-262114][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 17:11:57,756 [DEBUG][       Thread-262114][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:11:57,756 [DEBUG][       Thread-262114][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:11:57,756 [DEBUG][       Thread-262114][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:11:57,756 [DEBUG][       Thread-262114][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:11:57,756 [DEBUG][       Thread-262114][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 17:11:57,757 [DEBUG][       Thread-262114][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 17:11:57,757 [DEBUG][       Thread-262114][   transport.py][1871] : client lang: <none>
2025-06-13 17:11:57,757 [DEBUG][       Thread-262114][   transport.py][1871] : server lang: <none>
2025-06-13 17:11:57,757 [DEBUG][       Thread-262114][   transport.py][1871] : kex follows: False
2025-06-13 17:11:57,757 [DEBUG][       Thread-262114][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 17:11:57,757 [DEBUG][       Thread-262114][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 17:11:57,757 [DEBUG][       Thread-262114][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 17:11:57,757 [DEBUG][       Thread-262114][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 17:11:57,757 [DEBUG][       Thread-262114][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 17:11:57,757 [DEBUG][       Thread-262114][   transport.py][1871] : Compression: none
2025-06-13 17:11:57,757 [DEBUG][       Thread-262114][   transport.py][1871] : === End of kex handshake ===
2025-06-13 17:11:57,812 [DEBUG][       Thread-262114][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 17:11:57,812 [DEBUG][       Thread-262114][   transport.py][1871] : Switch to new keys ...
2025-06-13 17:11:57,813 [DEBUG][       Thread-262114][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 17:11:57,813 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 17:11:57,814 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 17:11:57,868 [DEBUG][       Thread-262114][   transport.py][1871] : userauth is OK
2025-06-13 17:11:57,868 [DEBUG][       Thread-262114][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 17:11:57,868 [DEBUG][       Thread-262114][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 17:11:57,868 [DEBUG][       Thread-262114][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 17:11:57,869 [DEBUG][       Thread-262114][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 17:11:57,886 [ INFO][       Thread-262114][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 17:11:57,887 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 17:11:57,887 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 17:11:58,905 [DEBUG][       Thread-262114][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 17:11:58,906 [DEBUG][       Thread-262114][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 17:11:58,956 [DEBUG][       Thread-262114][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 17:11:58,956 [DEBUG][       Thread-262114][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 17:11:58,965 [DEBUG][       Thread-262114][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 17:11:58,974 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 17:11:58,975 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 17:11:58,984 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 17:11:58,995 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 17:11:58,995 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 17:11:58,996 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 17:11:59,008 [DEBUG][       Thread-262114][   transport.py][1871] : EOF in transport thread
2025-06-13 17:12:02,278 [DEBUG][Thread-262116 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:12:09,006 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 17:12:09,006 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 17:12:09,006 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 17:12:09,009 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 17:12:09,461 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 17, 11, 50), 16.49, 31.55, 0.0, 14.28, 13.11, 0, 0, 0, 2, 0, 0),)
2025-06-13 17:12:09,461 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 17:11:50
2025-06-13 17:12:09,538 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 17:12:09,543 [DEBUG][       Thread-262117][   transport.py][1871] : starting thread (client mode): 0x867feb30
2025-06-13 17:12:09,543 [DEBUG][       Thread-262117][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 17:12:09,564 [DEBUG][       Thread-262117][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 17:12:09,564 [ INFO][       Thread-262117][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 17:12:09,567 [DEBUG][       Thread-262117][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 17:12:09,568 [DEBUG][       Thread-262117][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 17:12:09,568 [DEBUG][       Thread-262117][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 17:12:09,568 [DEBUG][       Thread-262117][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:12:09,568 [DEBUG][       Thread-262117][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:12:09,568 [DEBUG][       Thread-262117][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:12:09,568 [DEBUG][       Thread-262117][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:12:09,568 [DEBUG][       Thread-262117][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 17:12:09,568 [DEBUG][       Thread-262117][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 17:12:09,568 [DEBUG][       Thread-262117][   transport.py][1871] : client lang: <none>
2025-06-13 17:12:09,568 [DEBUG][       Thread-262117][   transport.py][1871] : server lang: <none>
2025-06-13 17:12:09,568 [DEBUG][       Thread-262117][   transport.py][1871] : kex follows: False
2025-06-13 17:12:09,568 [DEBUG][       Thread-262117][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 17:12:09,568 [DEBUG][       Thread-262117][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 17:12:09,568 [DEBUG][       Thread-262117][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 17:12:09,568 [DEBUG][       Thread-262117][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 17:12:09,568 [DEBUG][       Thread-262117][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 17:12:09,568 [DEBUG][       Thread-262117][   transport.py][1871] : Compression: none
2025-06-13 17:12:09,568 [DEBUG][       Thread-262117][   transport.py][1871] : === End of kex handshake ===
2025-06-13 17:12:09,584 [DEBUG][       Thread-262117][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 17:12:09,585 [DEBUG][       Thread-262117][   transport.py][1871] : Switch to new keys ...
2025-06-13 17:12:09,585 [DEBUG][       Thread-262117][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 17:12:09,585 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 17:12:09,586 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 17:12:09,587 [DEBUG][       Thread-262117][   transport.py][1871] : userauth is OK
2025-06-13 17:12:09,600 [ INFO][       Thread-262117][   transport.py][1871] : Authentication (password) successful!
2025-06-13 17:12:09,600 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 17:12:10,193 [DEBUG][       Thread-262117][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 17:12:10,194 [DEBUG][       Thread-262117][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 17:12:10,237 [DEBUG][       Thread-262117][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 17:12:10,237 [DEBUG][       Thread-262117][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 17:12:10,240 [DEBUG][       Thread-262117][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 17:12:10,249 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 17:12:10,249 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 17:12:10,251 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 17:12:10,253 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 17:12:10,259 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 17:12:10,261 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 17:12:10,261 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 17:12:10,262 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 17:12:10,262 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.632920 -999.00  +13.00  14.02     36   -1.60 1 1 1 1 1   887    0 14.51 7.60 ----- 14.4 14.0 43.2 17.1 14.9 -29.8 14.6 -29.8 14.8 -28.9 15.3 -28.8
2025-06-13 17:12:10,262 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 17:12:10,262 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 17:12:10,262 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.632920
2025-06-13 17:12:10,263 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 17:12:10,263 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 17:12:10,264 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 17:12:10,264 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 17:12:10,264 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 17:12:10,264 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T17:11:50', tmtdew=16.49, humidity=31.55, cloud=0.0, wind=14.28, temperature=13.11, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T15:11:24.288', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 17:12:10,265 [DEBUG][       Thread-262117][   transport.py][1871] : EOF in transport thread
2025-06-13 17:12:10,347 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 17:12:10,358 [DEBUG][       Thread-262120][   transport.py][1871] : starting thread (client mode): 0x86392590
2025-06-13 17:12:10,358 [DEBUG][       Thread-262120][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 17:12:10,374 [DEBUG][       Thread-262120][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 17:12:10,374 [ INFO][       Thread-262120][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 17:12:10,384 [DEBUG][       Thread-262120][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 17:12:10,385 [DEBUG][       Thread-262120][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 17:12:10,385 [DEBUG][       Thread-262120][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 17:12:10,385 [DEBUG][       Thread-262120][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:12:10,385 [DEBUG][       Thread-262120][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:12:10,385 [DEBUG][       Thread-262120][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:12:10,385 [DEBUG][       Thread-262120][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:12:10,385 [DEBUG][       Thread-262120][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 17:12:10,385 [DEBUG][       Thread-262120][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 17:12:10,385 [DEBUG][       Thread-262120][   transport.py][1871] : client lang: <none>
2025-06-13 17:12:10,385 [DEBUG][       Thread-262120][   transport.py][1871] : server lang: <none>
2025-06-13 17:12:10,385 [DEBUG][       Thread-262120][   transport.py][1871] : kex follows: False
2025-06-13 17:12:10,385 [DEBUG][       Thread-262120][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 17:12:10,385 [DEBUG][       Thread-262120][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 17:12:10,385 [DEBUG][       Thread-262120][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 17:12:10,385 [DEBUG][       Thread-262120][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 17:12:10,386 [DEBUG][       Thread-262120][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 17:12:10,386 [DEBUG][       Thread-262120][   transport.py][1871] : Compression: none
2025-06-13 17:12:10,386 [DEBUG][       Thread-262120][   transport.py][1871] : === End of kex handshake ===
2025-06-13 17:12:10,444 [DEBUG][       Thread-262120][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 17:12:10,445 [DEBUG][       Thread-262120][   transport.py][1871] : Switch to new keys ...
2025-06-13 17:12:10,445 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 17:12:10,446 [DEBUG][       Thread-262120][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 17:12:10,447 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 17:12:10,500 [DEBUG][       Thread-262120][   transport.py][1871] : userauth is OK
2025-06-13 17:12:10,500 [DEBUG][       Thread-262120][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 17:12:10,500 [DEBUG][       Thread-262120][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 17:12:10,501 [DEBUG][       Thread-262120][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 17:12:10,501 [DEBUG][       Thread-262120][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 17:12:10,519 [ INFO][       Thread-262120][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 17:12:10,519 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 17:12:10,520 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 17:12:11,317 [DEBUG][Thread-262122 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:12:11,522 [DEBUG][       Thread-262120][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 17:12:11,523 [DEBUG][       Thread-262120][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 17:12:11,572 [DEBUG][       Thread-262120][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 17:12:11,572 [DEBUG][       Thread-262120][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 17:12:11,581 [DEBUG][       Thread-262120][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 17:12:11,590 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 17:12:11,590 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 17:12:11,599 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 17:12:11,608 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 17:12:11,609 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 17:12:11,609 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 17:12:11,617 [DEBUG][       Thread-262120][   transport.py][1871] : EOF in transport thread
2025-06-13 17:12:20,337 [DEBUG][Thread-262123 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:12:21,616 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 17:12:21,616 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 17:12:21,616 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 17:12:21,617 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 17:12:22,099 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 17, 11, 50), 16.49, 31.55, 0.0, 14.28, 13.11, 0, 0, 0, 2, 0, 0),)
2025-06-13 17:12:22,099 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 17:11:50
2025-06-13 17:12:22,180 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 17:12:22,184 [DEBUG][       Thread-262124][   transport.py][1871] : starting thread (client mode): 0x86369150
2025-06-13 17:12:22,184 [DEBUG][       Thread-262124][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 17:12:22,205 [DEBUG][       Thread-262124][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 17:12:22,205 [ INFO][       Thread-262124][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 17:12:22,209 [DEBUG][       Thread-262124][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 17:12:22,209 [DEBUG][       Thread-262124][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 17:12:22,209 [DEBUG][       Thread-262124][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 17:12:22,209 [DEBUG][       Thread-262124][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:12:22,209 [DEBUG][       Thread-262124][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:12:22,209 [DEBUG][       Thread-262124][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:12:22,209 [DEBUG][       Thread-262124][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:12:22,209 [DEBUG][       Thread-262124][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 17:12:22,209 [DEBUG][       Thread-262124][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 17:12:22,209 [DEBUG][       Thread-262124][   transport.py][1871] : client lang: <none>
2025-06-13 17:12:22,209 [DEBUG][       Thread-262124][   transport.py][1871] : server lang: <none>
2025-06-13 17:12:22,209 [DEBUG][       Thread-262124][   transport.py][1871] : kex follows: False
2025-06-13 17:12:22,209 [DEBUG][       Thread-262124][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 17:12:22,209 [DEBUG][       Thread-262124][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 17:12:22,209 [DEBUG][       Thread-262124][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 17:12:22,209 [DEBUG][       Thread-262124][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 17:12:22,209 [DEBUG][       Thread-262124][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 17:12:22,209 [DEBUG][       Thread-262124][   transport.py][1871] : Compression: none
2025-06-13 17:12:22,209 [DEBUG][       Thread-262124][   transport.py][1871] : === End of kex handshake ===
2025-06-13 17:12:22,225 [DEBUG][       Thread-262124][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 17:12:22,225 [DEBUG][       Thread-262124][   transport.py][1871] : Switch to new keys ...
2025-06-13 17:12:22,225 [DEBUG][       Thread-262124][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 17:12:22,225 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 17:12:22,225 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 17:12:22,225 [DEBUG][       Thread-262124][   transport.py][1871] : userauth is OK
2025-06-13 17:12:22,249 [ INFO][       Thread-262124][   transport.py][1871] : Authentication (password) successful!
2025-06-13 17:12:22,249 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 17:12:22,897 [DEBUG][       Thread-262124][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 17:12:22,897 [DEBUG][       Thread-262124][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 17:12:22,941 [DEBUG][       Thread-262124][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 17:12:22,941 [DEBUG][       Thread-262124][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 17:12:22,943 [DEBUG][       Thread-262124][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 17:12:22,954 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 17:12:22,955 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 17:12:22,956 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 17:12:22,957 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 17:12:22,959 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 17:12:22,960 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 17:12:22,960 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 17:12:22,960 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 17:12:22,960 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.633267 -999.00  +13.00  11.16     36   -1.60 1 1 1 1 1   887    0 14.82 7.88 ----- 12.8 11.2 51.0 15.1 14.8 -29.8 14.6 -29.9 14.7 -28.9 15.2 -28.8
2025-06-13 17:12:22,960 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 17:12:22,960 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 17:12:22,960 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.633267
2025-06-13 17:12:22,960 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 17:12:22,960 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 17:12:22,960 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 17:12:22,960 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 17:12:22,960 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 17:12:22,960 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T17:11:50', tmtdew=16.49, humidity=31.55, cloud=0.0, wind=14.28, temperature=13.11, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T15:11:54.269', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 17:12:22,961 [DEBUG][       Thread-262124][   transport.py][1871] : EOF in transport thread
2025-06-13 17:12:23,035 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 17:12:23,044 [DEBUG][       Thread-262127][   transport.py][1871] : starting thread (client mode): 0x867fc5e0
2025-06-13 17:12:23,044 [DEBUG][       Thread-262127][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 17:12:23,058 [DEBUG][       Thread-262127][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 17:12:23,058 [ INFO][       Thread-262127][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 17:12:23,066 [DEBUG][       Thread-262127][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 17:12:23,066 [DEBUG][       Thread-262127][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 17:12:23,066 [DEBUG][       Thread-262127][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 17:12:23,066 [DEBUG][       Thread-262127][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:12:23,066 [DEBUG][       Thread-262127][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:12:23,066 [DEBUG][       Thread-262127][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:12:23,066 [DEBUG][       Thread-262127][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:12:23,066 [DEBUG][       Thread-262127][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 17:12:23,066 [DEBUG][       Thread-262127][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 17:12:23,066 [DEBUG][       Thread-262127][   transport.py][1871] : client lang: <none>
2025-06-13 17:12:23,066 [DEBUG][       Thread-262127][   transport.py][1871] : server lang: <none>
2025-06-13 17:12:23,066 [DEBUG][       Thread-262127][   transport.py][1871] : kex follows: False
2025-06-13 17:12:23,066 [DEBUG][       Thread-262127][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 17:12:23,066 [DEBUG][       Thread-262127][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 17:12:23,066 [DEBUG][       Thread-262127][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 17:12:23,066 [DEBUG][       Thread-262127][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 17:12:23,066 [DEBUG][       Thread-262127][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 17:12:23,066 [DEBUG][       Thread-262127][   transport.py][1871] : Compression: none
2025-06-13 17:12:23,066 [DEBUG][       Thread-262127][   transport.py][1871] : === End of kex handshake ===
2025-06-13 17:12:23,123 [DEBUG][       Thread-262127][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 17:12:23,123 [DEBUG][       Thread-262127][   transport.py][1871] : Switch to new keys ...
2025-06-13 17:12:23,123 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 17:12:23,123 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 17:12:23,123 [DEBUG][       Thread-262127][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 17:12:23,183 [DEBUG][       Thread-262127][   transport.py][1871] : userauth is OK
2025-06-13 17:12:23,184 [DEBUG][       Thread-262127][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 17:12:23,184 [DEBUG][       Thread-262127][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 17:12:23,184 [DEBUG][       Thread-262127][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 17:12:23,184 [DEBUG][       Thread-262127][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 17:12:23,197 [ INFO][       Thread-262127][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 17:12:23,197 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 17:12:23,198 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 17:12:24,136 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:12:24,136 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:12:24,209 [DEBUG][       Thread-262127][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 17:12:24,209 [DEBUG][       Thread-262127][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 17:12:24,265 [DEBUG][       Thread-262127][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 17:12:24,265 [DEBUG][       Thread-262127][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 17:12:24,274 [DEBUG][       Thread-262127][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 17:12:24,282 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 17:12:24,282 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 17:12:24,297 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 17:12:24,306 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 17:12:24,306 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 17:12:24,306 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 17:12:24,314 [DEBUG][       Thread-262127][   transport.py][1871] : EOF in transport thread
2025-06-13 17:12:25,437 [DEBUG][Thread-262129 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:12:29,354 [DEBUG][Thread-262130 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:12:34,316 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 17:12:34,316 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 17:12:34,316 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 17:12:34,319 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 17:12:34,773 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 17, 12, 21), 16.54, 31.52, 0.0, 13.61, 13.1, 0, 0, 0, 2, 0, 0),)
2025-06-13 17:12:34,773 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 17:12:21
2025-06-13 17:12:34,854 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 17:12:34,858 [DEBUG][       Thread-262131][   transport.py][1871] : starting thread (client mode): 0x8636b0a0
2025-06-13 17:12:34,858 [DEBUG][       Thread-262131][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 17:12:34,879 [DEBUG][       Thread-262131][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 17:12:34,879 [ INFO][       Thread-262131][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 17:12:34,882 [DEBUG][       Thread-262131][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 17:12:34,882 [DEBUG][       Thread-262131][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 17:12:34,882 [DEBUG][       Thread-262131][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 17:12:34,882 [DEBUG][       Thread-262131][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:12:34,882 [DEBUG][       Thread-262131][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:12:34,883 [DEBUG][       Thread-262131][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:12:34,883 [DEBUG][       Thread-262131][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:12:34,883 [DEBUG][       Thread-262131][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 17:12:34,883 [DEBUG][       Thread-262131][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 17:12:34,883 [DEBUG][       Thread-262131][   transport.py][1871] : client lang: <none>
2025-06-13 17:12:34,883 [DEBUG][       Thread-262131][   transport.py][1871] : server lang: <none>
2025-06-13 17:12:34,883 [DEBUG][       Thread-262131][   transport.py][1871] : kex follows: False
2025-06-13 17:12:34,883 [DEBUG][       Thread-262131][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 17:12:34,883 [DEBUG][       Thread-262131][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 17:12:34,883 [DEBUG][       Thread-262131][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 17:12:34,883 [DEBUG][       Thread-262131][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 17:12:34,883 [DEBUG][       Thread-262131][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 17:12:34,883 [DEBUG][       Thread-262131][   transport.py][1871] : Compression: none
2025-06-13 17:12:34,883 [DEBUG][       Thread-262131][   transport.py][1871] : === End of kex handshake ===
2025-06-13 17:12:34,901 [DEBUG][       Thread-262131][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 17:12:34,902 [DEBUG][       Thread-262131][   transport.py][1871] : Switch to new keys ...
2025-06-13 17:12:34,902 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 17:12:34,903 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 17:12:34,903 [DEBUG][       Thread-262131][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 17:12:34,904 [DEBUG][       Thread-262131][   transport.py][1871] : userauth is OK
2025-06-13 17:12:34,918 [ INFO][       Thread-262131][   transport.py][1871] : Authentication (password) successful!
2025-06-13 17:12:34,918 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 17:12:35,504 [DEBUG][       Thread-262131][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 17:12:35,505 [DEBUG][       Thread-262131][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 17:12:35,548 [DEBUG][       Thread-262131][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 17:12:35,549 [DEBUG][       Thread-262131][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 17:12:35,551 [DEBUG][       Thread-262131][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 17:12:35,564 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 17:12:35,564 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 17:12:35,565 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 17:12:35,566 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 17:12:35,569 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 17:12:35,570 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 17:12:35,570 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 17:12:35,570 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 17:12:35,570 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.633267 -999.00  +13.00  11.16     36   -1.60 1 1 1 1 1   887    0 14.82 7.88 ----- 12.8 11.2 51.0 15.1 14.8 -29.8 14.6 -29.9 14.7 -28.9 15.2 -28.8
2025-06-13 17:12:35,570 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 17:12:35,570 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 17:12:35,570 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.633267
2025-06-13 17:12:35,570 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 17:12:35,571 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 17:12:35,571 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 17:12:35,571 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 17:12:35,571 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 17:12:35,571 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T17:12:21', tmtdew=16.54, humidity=31.52, cloud=0.0, wind=13.61, temperature=13.1, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T15:11:54.269', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 17:12:35,571 [DEBUG][       Thread-262131][   transport.py][1871] : EOF in transport thread
2025-06-13 17:12:35,642 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 17:12:35,655 [DEBUG][       Thread-262134][   transport.py][1871] : starting thread (client mode): 0x867b4970
2025-06-13 17:12:35,655 [DEBUG][       Thread-262134][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 17:12:35,675 [DEBUG][       Thread-262134][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 17:12:35,676 [ INFO][       Thread-262134][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 17:12:35,683 [DEBUG][       Thread-262134][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 17:12:35,684 [DEBUG][       Thread-262134][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 17:12:35,684 [DEBUG][       Thread-262134][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 17:12:35,684 [DEBUG][       Thread-262134][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:12:35,684 [DEBUG][       Thread-262134][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:12:35,684 [DEBUG][       Thread-262134][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:12:35,684 [DEBUG][       Thread-262134][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:12:35,684 [DEBUG][       Thread-262134][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 17:12:35,684 [DEBUG][       Thread-262134][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 17:12:35,684 [DEBUG][       Thread-262134][   transport.py][1871] : client lang: <none>
2025-06-13 17:12:35,684 [DEBUG][       Thread-262134][   transport.py][1871] : server lang: <none>
2025-06-13 17:12:35,684 [DEBUG][       Thread-262134][   transport.py][1871] : kex follows: False
2025-06-13 17:12:35,684 [DEBUG][       Thread-262134][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 17:12:35,684 [DEBUG][       Thread-262134][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 17:12:35,684 [DEBUG][       Thread-262134][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 17:12:35,685 [DEBUG][       Thread-262134][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 17:12:35,685 [DEBUG][       Thread-262134][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 17:12:35,685 [DEBUG][       Thread-262134][   transport.py][1871] : Compression: none
2025-06-13 17:12:35,685 [DEBUG][       Thread-262134][   transport.py][1871] : === End of kex handshake ===
2025-06-13 17:12:35,740 [DEBUG][       Thread-262134][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 17:12:35,741 [DEBUG][       Thread-262134][   transport.py][1871] : Switch to new keys ...
2025-06-13 17:12:35,741 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 17:12:35,742 [DEBUG][       Thread-262134][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 17:12:35,742 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 17:12:35,796 [DEBUG][       Thread-262134][   transport.py][1871] : userauth is OK
2025-06-13 17:12:35,796 [DEBUG][       Thread-262134][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 17:12:35,796 [DEBUG][       Thread-262134][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 17:12:35,797 [DEBUG][       Thread-262134][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 17:12:35,797 [DEBUG][       Thread-262134][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 17:12:35,815 [ INFO][       Thread-262134][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 17:12:35,816 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 17:12:35,816 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 17:12:36,835 [DEBUG][       Thread-262134][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 17:12:36,835 [DEBUG][       Thread-262134][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 17:12:36,884 [DEBUG][       Thread-262134][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 17:12:36,884 [DEBUG][       Thread-262134][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 17:12:36,893 [DEBUG][       Thread-262134][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 17:12:36,907 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 17:12:36,907 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 17:12:36,916 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 17:12:36,925 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 17:12:36,925 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 17:12:36,926 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 17:12:36,934 [DEBUG][       Thread-262134][   transport.py][1871] : EOF in transport thread
2025-06-13 17:12:38,376 [DEBUG][Thread-262136 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:12:43,702 [DEBUG][Thread-262137 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:12:44,755 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:12:44,756 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:12:46,933 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 17:12:46,933 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 17:12:46,933 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 17:12:46,936 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 17:12:47,391 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 17, 12, 21), 16.54, 31.52, 0.0, 13.61, 13.1, 0, 0, 0, 2, 0, 0),)
2025-06-13 17:12:47,391 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 17:12:21
2025-06-13 17:12:47,420 [DEBUG][Thread-262138 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:12:47,471 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 17:12:47,475 [DEBUG][       Thread-262139][   transport.py][1871] : starting thread (client mode): 0x863683a0
2025-06-13 17:12:47,475 [DEBUG][       Thread-262139][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 17:12:47,499 [DEBUG][       Thread-262139][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 17:12:47,499 [ INFO][       Thread-262139][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 17:12:47,502 [DEBUG][       Thread-262139][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 17:12:47,503 [DEBUG][       Thread-262139][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 17:12:47,503 [DEBUG][       Thread-262139][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 17:12:47,503 [DEBUG][       Thread-262139][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:12:47,503 [DEBUG][       Thread-262139][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:12:47,503 [DEBUG][       Thread-262139][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:12:47,503 [DEBUG][       Thread-262139][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:12:47,503 [DEBUG][       Thread-262139][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 17:12:47,503 [DEBUG][       Thread-262139][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 17:12:47,503 [DEBUG][       Thread-262139][   transport.py][1871] : client lang: <none>
2025-06-13 17:12:47,503 [DEBUG][       Thread-262139][   transport.py][1871] : server lang: <none>
2025-06-13 17:12:47,503 [DEBUG][       Thread-262139][   transport.py][1871] : kex follows: False
2025-06-13 17:12:47,503 [DEBUG][       Thread-262139][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 17:12:47,503 [DEBUG][       Thread-262139][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 17:12:47,503 [DEBUG][       Thread-262139][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 17:12:47,503 [DEBUG][       Thread-262139][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 17:12:47,503 [DEBUG][       Thread-262139][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 17:12:47,503 [DEBUG][       Thread-262139][   transport.py][1871] : Compression: none
2025-06-13 17:12:47,503 [DEBUG][       Thread-262139][   transport.py][1871] : === End of kex handshake ===
2025-06-13 17:12:47,521 [DEBUG][       Thread-262139][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 17:12:47,521 [DEBUG][       Thread-262139][   transport.py][1871] : Switch to new keys ...
2025-06-13 17:12:47,522 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 17:12:47,522 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 17:12:47,522 [DEBUG][       Thread-262139][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 17:12:47,523 [DEBUG][       Thread-262139][   transport.py][1871] : userauth is OK
2025-06-13 17:12:47,549 [ INFO][       Thread-262139][   transport.py][1871] : Authentication (password) successful!
2025-06-13 17:12:47,550 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 17:12:48,184 [DEBUG][       Thread-262139][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 17:12:48,184 [DEBUG][       Thread-262139][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 17:12:48,225 [DEBUG][       Thread-262139][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 17:12:48,225 [DEBUG][       Thread-262139][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 17:12:48,229 [DEBUG][       Thread-262139][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 17:12:48,242 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 17:12:48,243 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 17:12:48,245 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 17:12:48,247 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 17:12:48,252 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 17:12:48,254 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 17:12:48,255 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 17:12:48,255 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 17:12:48,255 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.633615 -999.00  +12.90  15.03     36   -1.70 1 1 1 1 1   887    0 14.53 8.22 ----- 15.9 15.0 44.2 17.6 14.8 -29.8 14.5 -30.0 14.7 -29.2 15.2 -28.5
2025-06-13 17:12:48,255 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 17:12:48,256 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 17:12:48,256 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.633615
2025-06-13 17:12:48,256 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 17:12:48,257 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 17:12:48,257 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 17:12:48,257 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 17:12:48,257 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 17:12:48,257 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T17:12:21', tmtdew=16.54, humidity=31.52, cloud=0.0, wind=13.61, temperature=13.1, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T15:12:24.336', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 17:12:48,258 [DEBUG][       Thread-262139][   transport.py][1871] : EOF in transport thread
2025-06-13 17:12:48,341 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 17:12:48,356 [DEBUG][       Thread-262142][   transport.py][1871] : starting thread (client mode): 0x868c8520
2025-06-13 17:12:48,356 [DEBUG][       Thread-262142][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 17:12:48,377 [DEBUG][       Thread-262142][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 17:12:48,377 [ INFO][       Thread-262142][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 17:12:48,390 [DEBUG][       Thread-262142][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 17:12:48,390 [DEBUG][       Thread-262142][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 17:12:48,390 [DEBUG][       Thread-262142][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 17:12:48,390 [DEBUG][       Thread-262142][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:12:48,391 [DEBUG][       Thread-262142][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:12:48,391 [DEBUG][       Thread-262142][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:12:48,391 [DEBUG][       Thread-262142][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:12:48,391 [DEBUG][       Thread-262142][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 17:12:48,391 [DEBUG][       Thread-262142][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 17:12:48,391 [DEBUG][       Thread-262142][   transport.py][1871] : client lang: <none>
2025-06-13 17:12:48,391 [DEBUG][       Thread-262142][   transport.py][1871] : server lang: <none>
2025-06-13 17:12:48,391 [DEBUG][       Thread-262142][   transport.py][1871] : kex follows: False
2025-06-13 17:12:48,391 [DEBUG][       Thread-262142][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 17:12:48,391 [DEBUG][       Thread-262142][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 17:12:48,391 [DEBUG][       Thread-262142][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 17:12:48,391 [DEBUG][       Thread-262142][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 17:12:48,391 [DEBUG][       Thread-262142][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 17:12:48,391 [DEBUG][       Thread-262142][   transport.py][1871] : Compression: none
2025-06-13 17:12:48,391 [DEBUG][       Thread-262142][   transport.py][1871] : === End of kex handshake ===
2025-06-13 17:12:48,444 [DEBUG][       Thread-262142][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 17:12:48,445 [DEBUG][       Thread-262142][   transport.py][1871] : Switch to new keys ...
2025-06-13 17:12:48,445 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 17:12:48,446 [DEBUG][       Thread-262142][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 17:12:48,447 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 17:12:48,503 [DEBUG][       Thread-262142][   transport.py][1871] : userauth is OK
2025-06-13 17:12:48,503 [DEBUG][       Thread-262142][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 17:12:48,503 [DEBUG][       Thread-262142][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 17:12:48,503 [DEBUG][       Thread-262142][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 17:12:48,503 [DEBUG][       Thread-262142][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 17:12:48,526 [ INFO][       Thread-262142][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 17:12:48,526 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 17:12:48,526 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 17:12:49,568 [DEBUG][       Thread-262142][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 17:12:49,569 [DEBUG][       Thread-262142][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 17:12:49,620 [DEBUG][       Thread-262142][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 17:12:49,620 [DEBUG][       Thread-262142][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 17:12:49,630 [DEBUG][       Thread-262142][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 17:12:49,639 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 17:12:49,639 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 17:12:49,648 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 17:12:49,657 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 17:12:49,657 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 17:12:49,658 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 17:12:49,666 [DEBUG][       Thread-262142][   transport.py][1871] : EOF in transport thread
2025-06-13 17:12:56,441 [DEBUG][Thread-262144 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:12:59,668 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 17:12:59,668 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 17:12:59,668 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 17:12:59,669 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 17:13:00,140 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 17, 12, 53), 16.56, 31.46, 0.0, 12.46, 13.07, 0, 0, 0, 2, 0, 0),)
2025-06-13 17:13:00,140 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 17:12:53
2025-06-13 17:13:00,223 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 17:13:00,228 [DEBUG][       Thread-262145][   transport.py][1871] : starting thread (client mode): 0x8636af80
2025-06-13 17:13:00,228 [DEBUG][       Thread-262145][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 17:13:00,248 [DEBUG][       Thread-262145][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 17:13:00,248 [ INFO][       Thread-262145][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 17:13:00,251 [DEBUG][       Thread-262145][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 17:13:00,251 [DEBUG][       Thread-262145][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 17:13:00,251 [DEBUG][       Thread-262145][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 17:13:00,251 [DEBUG][       Thread-262145][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:13:00,251 [DEBUG][       Thread-262145][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:13:00,251 [DEBUG][       Thread-262145][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:13:00,251 [DEBUG][       Thread-262145][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:13:00,251 [DEBUG][       Thread-262145][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 17:13:00,251 [DEBUG][       Thread-262145][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 17:13:00,251 [DEBUG][       Thread-262145][   transport.py][1871] : client lang: <none>
2025-06-13 17:13:00,251 [DEBUG][       Thread-262145][   transport.py][1871] : server lang: <none>
2025-06-13 17:13:00,251 [DEBUG][       Thread-262145][   transport.py][1871] : kex follows: False
2025-06-13 17:13:00,251 [DEBUG][       Thread-262145][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 17:13:00,251 [DEBUG][       Thread-262145][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 17:13:00,251 [DEBUG][       Thread-262145][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 17:13:00,251 [DEBUG][       Thread-262145][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 17:13:00,251 [DEBUG][       Thread-262145][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 17:13:00,251 [DEBUG][       Thread-262145][   transport.py][1871] : Compression: none
2025-06-13 17:13:00,251 [DEBUG][       Thread-262145][   transport.py][1871] : === End of kex handshake ===
2025-06-13 17:13:00,258 [DEBUG][       Thread-262145][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 17:13:00,258 [DEBUG][       Thread-262145][   transport.py][1871] : Switch to new keys ...
2025-06-13 17:13:00,258 [DEBUG][       Thread-262145][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 17:13:00,258 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 17:13:00,258 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 17:13:00,259 [DEBUG][       Thread-262145][   transport.py][1871] : userauth is OK
2025-06-13 17:13:00,272 [ INFO][       Thread-262145][   transport.py][1871] : Authentication (password) successful!
2025-06-13 17:13:00,272 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 17:13:00,919 [DEBUG][       Thread-262145][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 17:13:00,920 [DEBUG][       Thread-262145][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 17:13:00,960 [DEBUG][       Thread-262145][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 17:13:00,960 [DEBUG][       Thread-262145][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 17:13:00,963 [DEBUG][       Thread-262145][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 17:13:00,975 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 17:13:00,975 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 17:13:00,976 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 17:13:00,977 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 17:13:00,981 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 17:13:00,982 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 17:13:00,982 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 17:13:00,983 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 17:13:00,983 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.633615 -999.00  +12.90  15.03     36   -1.70 1 1 1 1 1   887    0 14.53 8.22 ----- 15.9 15.0 44.2 17.6 14.8 -29.8 14.5 -30.0 14.7 -29.2 15.2 -28.5
2025-06-13 17:13:00,983 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 17:13:00,983 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 17:13:00,983 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.633615
2025-06-13 17:13:00,983 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 17:13:00,983 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 17:13:00,983 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 17:13:00,983 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 17:13:00,983 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 17:13:00,983 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T17:12:53', tmtdew=16.56, humidity=31.46, cloud=0.0, wind=12.46, temperature=13.07, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T15:12:24.336', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 17:13:00,984 [DEBUG][       Thread-262145][   transport.py][1871] : EOF in transport thread
2025-06-13 17:13:01,067 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 17:13:01,078 [DEBUG][       Thread-262148][   transport.py][1871] : starting thread (client mode): 0x868c8520
2025-06-13 17:13:01,078 [DEBUG][       Thread-262148][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 17:13:01,092 [DEBUG][       Thread-262148][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 17:13:01,092 [ INFO][       Thread-262148][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 17:13:01,101 [DEBUG][       Thread-262148][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 17:13:01,101 [DEBUG][       Thread-262148][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 17:13:01,101 [DEBUG][       Thread-262148][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 17:13:01,101 [DEBUG][       Thread-262148][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:13:01,101 [DEBUG][       Thread-262148][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:13:01,101 [DEBUG][       Thread-262148][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:13:01,101 [DEBUG][       Thread-262148][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:13:01,101 [DEBUG][       Thread-262148][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 17:13:01,101 [DEBUG][       Thread-262148][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 17:13:01,101 [DEBUG][       Thread-262148][   transport.py][1871] : client lang: <none>
2025-06-13 17:13:01,101 [DEBUG][       Thread-262148][   transport.py][1871] : server lang: <none>
2025-06-13 17:13:01,101 [DEBUG][       Thread-262148][   transport.py][1871] : kex follows: False
2025-06-13 17:13:01,101 [DEBUG][       Thread-262148][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 17:13:01,101 [DEBUG][       Thread-262148][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 17:13:01,101 [DEBUG][       Thread-262148][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 17:13:01,101 [DEBUG][       Thread-262148][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 17:13:01,101 [DEBUG][       Thread-262148][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 17:13:01,101 [DEBUG][       Thread-262148][   transport.py][1871] : Compression: none
2025-06-13 17:13:01,101 [DEBUG][       Thread-262148][   transport.py][1871] : === End of kex handshake ===
2025-06-13 17:13:01,154 [DEBUG][       Thread-262148][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 17:13:01,154 [DEBUG][       Thread-262148][   transport.py][1871] : Switch to new keys ...
2025-06-13 17:13:01,155 [DEBUG][       Thread-262148][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 17:13:01,155 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 17:13:01,155 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 17:13:01,220 [DEBUG][       Thread-262148][   transport.py][1871] : userauth is OK
2025-06-13 17:13:01,220 [DEBUG][       Thread-262148][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 17:13:01,220 [DEBUG][       Thread-262148][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 17:13:01,220 [DEBUG][       Thread-262148][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 17:13:01,220 [DEBUG][       Thread-262148][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 17:13:01,234 [ INFO][       Thread-262148][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 17:13:01,234 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 17:13:01,234 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 17:13:02,252 [DEBUG][       Thread-262148][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 17:13:02,252 [DEBUG][       Thread-262148][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 17:13:02,304 [DEBUG][       Thread-262148][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 17:13:02,304 [DEBUG][       Thread-262148][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 17:13:02,313 [DEBUG][       Thread-262148][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 17:13:02,323 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 17:13:02,323 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 17:13:02,334 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 17:13:02,345 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 17:13:02,345 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 17:13:02,345 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 17:13:02,354 [DEBUG][       Thread-262148][   transport.py][1871] : EOF in transport thread
2025-06-13 17:13:05,463 [DEBUG][Thread-262150 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:13:12,355 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 17:13:12,355 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 17:13:12,356 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 17:13:12,359 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 17:13:12,830 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 17, 12, 53), 16.56, 31.46, 0.0, 12.46, 13.07, 0, 0, 0, 2, 0, 0),)
2025-06-13 17:13:12,830 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 17:12:53
2025-06-13 17:13:12,910 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 17:13:12,917 [DEBUG][       Thread-262151][   transport.py][1871] : starting thread (client mode): 0x8636b0d0
2025-06-13 17:13:12,917 [DEBUG][       Thread-262151][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 17:13:12,938 [DEBUG][       Thread-262151][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 17:13:12,938 [ INFO][       Thread-262151][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 17:13:12,942 [DEBUG][       Thread-262151][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 17:13:12,942 [DEBUG][       Thread-262151][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 17:13:12,942 [DEBUG][       Thread-262151][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 17:13:12,942 [DEBUG][       Thread-262151][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:13:12,942 [DEBUG][       Thread-262151][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:13:12,942 [DEBUG][       Thread-262151][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:13:12,942 [DEBUG][       Thread-262151][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:13:12,942 [DEBUG][       Thread-262151][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 17:13:12,942 [DEBUG][       Thread-262151][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 17:13:12,942 [DEBUG][       Thread-262151][   transport.py][1871] : client lang: <none>
2025-06-13 17:13:12,942 [DEBUG][       Thread-262151][   transport.py][1871] : server lang: <none>
2025-06-13 17:13:12,942 [DEBUG][       Thread-262151][   transport.py][1871] : kex follows: False
2025-06-13 17:13:12,942 [DEBUG][       Thread-262151][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 17:13:12,942 [DEBUG][       Thread-262151][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 17:13:12,942 [DEBUG][       Thread-262151][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 17:13:12,942 [DEBUG][       Thread-262151][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 17:13:12,942 [DEBUG][       Thread-262151][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 17:13:12,942 [DEBUG][       Thread-262151][   transport.py][1871] : Compression: none
2025-06-13 17:13:12,942 [DEBUG][       Thread-262151][   transport.py][1871] : === End of kex handshake ===
2025-06-13 17:13:12,955 [DEBUG][       Thread-262151][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 17:13:12,956 [DEBUG][       Thread-262151][   transport.py][1871] : Switch to new keys ...
2025-06-13 17:13:12,956 [DEBUG][       Thread-262151][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 17:13:12,956 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 17:13:12,956 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 17:13:12,956 [DEBUG][       Thread-262151][   transport.py][1871] : userauth is OK
2025-06-13 17:13:12,980 [ INFO][       Thread-262151][   transport.py][1871] : Authentication (password) successful!
2025-06-13 17:13:12,980 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 17:13:13,629 [DEBUG][       Thread-262151][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 17:13:13,629 [DEBUG][       Thread-262151][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 17:13:13,673 [DEBUG][       Thread-262151][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 17:13:13,673 [DEBUG][       Thread-262151][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 17:13:13,676 [DEBUG][       Thread-262151][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 17:13:13,688 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 17:13:13,688 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 17:13:13,690 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 17:13:13,692 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 17:13:13,697 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 17:13:13,699 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 17:13:13,699 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 17:13:13,700 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 17:13:13,700 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.633615 -999.00  +12.90  15.03     36   -1.70 1 1 1 1 1   887    0 14.53 8.22 ----- 15.9 15.0 44.2 17.6 14.8 -29.8 14.5 -30.0 14.7 -29.2 15.2 -28.5
2025-06-13 17:13:13,700 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 17:13:13,700 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 17:13:13,700 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.633615
2025-06-13 17:13:13,701 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 17:13:13,701 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 17:13:13,701 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 17:13:13,701 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 17:13:13,701 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 17:13:13,701 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T17:12:53', tmtdew=16.56, humidity=31.46, cloud=0.0, wind=12.46, temperature=13.07, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T15:12:24.336', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 17:13:13,703 [DEBUG][       Thread-262151][   transport.py][1871] : EOF in transport thread
2025-06-13 17:13:13,785 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 17:13:13,798 [DEBUG][       Thread-262154][   transport.py][1871] : starting thread (client mode): 0x863be1d0
2025-06-13 17:13:13,798 [DEBUG][       Thread-262154][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 17:13:13,813 [DEBUG][       Thread-262154][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 17:13:13,813 [ INFO][       Thread-262154][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 17:13:13,820 [DEBUG][       Thread-262154][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 17:13:13,821 [DEBUG][       Thread-262154][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 17:13:13,821 [DEBUG][       Thread-262154][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 17:13:13,821 [DEBUG][       Thread-262154][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:13:13,821 [DEBUG][       Thread-262154][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:13:13,821 [DEBUG][       Thread-262154][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:13:13,821 [DEBUG][       Thread-262154][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:13:13,821 [DEBUG][       Thread-262154][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 17:13:13,821 [DEBUG][       Thread-262154][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 17:13:13,821 [DEBUG][       Thread-262154][   transport.py][1871] : client lang: <none>
2025-06-13 17:13:13,821 [DEBUG][       Thread-262154][   transport.py][1871] : server lang: <none>
2025-06-13 17:13:13,821 [DEBUG][       Thread-262154][   transport.py][1871] : kex follows: False
2025-06-13 17:13:13,821 [DEBUG][       Thread-262154][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 17:13:13,821 [DEBUG][       Thread-262154][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 17:13:13,821 [DEBUG][       Thread-262154][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 17:13:13,821 [DEBUG][       Thread-262154][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 17:13:13,821 [DEBUG][       Thread-262154][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 17:13:13,821 [DEBUG][       Thread-262154][   transport.py][1871] : Compression: none
2025-06-13 17:13:13,821 [DEBUG][       Thread-262154][   transport.py][1871] : === End of kex handshake ===
2025-06-13 17:13:13,880 [DEBUG][       Thread-262154][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 17:13:13,881 [DEBUG][       Thread-262154][   transport.py][1871] : Switch to new keys ...
2025-06-13 17:13:13,881 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 17:13:13,882 [DEBUG][       Thread-262154][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 17:13:13,882 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 17:13:13,939 [DEBUG][       Thread-262154][   transport.py][1871] : userauth is OK
2025-06-13 17:13:13,939 [DEBUG][       Thread-262154][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 17:13:13,939 [DEBUG][       Thread-262154][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 17:13:13,939 [DEBUG][       Thread-262154][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 17:13:13,939 [DEBUG][       Thread-262154][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 17:13:13,958 [ INFO][       Thread-262154][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 17:13:13,959 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 17:13:13,959 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 17:13:14,512 [DEBUG][Thread-262156 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:13:14,994 [DEBUG][       Thread-262154][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 17:13:14,995 [DEBUG][       Thread-262154][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 17:13:15,044 [DEBUG][       Thread-262154][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 17:13:15,044 [DEBUG][       Thread-262154][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 17:13:15,054 [DEBUG][       Thread-262154][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 17:13:15,062 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 17:13:15,063 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 17:13:15,071 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 17:13:15,080 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 17:13:15,081 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 17:13:15,081 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 17:13:15,089 [DEBUG][       Thread-262154][   transport.py][1871] : EOF in transport thread
2025-06-13 17:13:23,536 [DEBUG][Thread-262157 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:13:24,272 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:13:24,273 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:13:25,092 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 17:13:25,092 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 17:13:25,092 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 17:13:25,095 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 17:13:25,485 [DEBUG][Thread-262158 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:13:25,568 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 17, 12, 53), 16.56, 31.46, 0.0, 12.46, 13.07, 0, 0, 0, 2, 0, 0),)
2025-06-13 17:13:25,568 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 17:12:53
2025-06-13 17:13:25,649 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 17:13:25,653 [DEBUG][       Thread-262159][   transport.py][1871] : starting thread (client mode): 0x863698d0
2025-06-13 17:13:25,653 [DEBUG][       Thread-262159][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 17:13:25,675 [DEBUG][       Thread-262159][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 17:13:25,675 [ INFO][       Thread-262159][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 17:13:25,679 [DEBUG][       Thread-262159][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 17:13:25,679 [DEBUG][       Thread-262159][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 17:13:25,679 [DEBUG][       Thread-262159][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 17:13:25,679 [DEBUG][       Thread-262159][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:13:25,679 [DEBUG][       Thread-262159][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:13:25,680 [DEBUG][       Thread-262159][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:13:25,680 [DEBUG][       Thread-262159][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:13:25,680 [DEBUG][       Thread-262159][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 17:13:25,680 [DEBUG][       Thread-262159][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 17:13:25,680 [DEBUG][       Thread-262159][   transport.py][1871] : client lang: <none>
2025-06-13 17:13:25,680 [DEBUG][       Thread-262159][   transport.py][1871] : server lang: <none>
2025-06-13 17:13:25,680 [DEBUG][       Thread-262159][   transport.py][1871] : kex follows: False
2025-06-13 17:13:25,680 [DEBUG][       Thread-262159][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 17:13:25,680 [DEBUG][       Thread-262159][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 17:13:25,680 [DEBUG][       Thread-262159][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 17:13:25,681 [DEBUG][       Thread-262159][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 17:13:25,681 [DEBUG][       Thread-262159][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 17:13:25,681 [DEBUG][       Thread-262159][   transport.py][1871] : Compression: none
2025-06-13 17:13:25,681 [DEBUG][       Thread-262159][   transport.py][1871] : === End of kex handshake ===
2025-06-13 17:13:25,699 [DEBUG][       Thread-262159][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 17:13:25,700 [DEBUG][       Thread-262159][   transport.py][1871] : Switch to new keys ...
2025-06-13 17:13:25,700 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 17:13:25,701 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 17:13:25,701 [DEBUG][       Thread-262159][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 17:13:25,702 [DEBUG][       Thread-262159][   transport.py][1871] : userauth is OK
2025-06-13 17:13:25,727 [ INFO][       Thread-262159][   transport.py][1871] : Authentication (password) successful!
2025-06-13 17:13:25,728 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 17:13:26,385 [DEBUG][       Thread-262159][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 17:13:26,385 [DEBUG][       Thread-262159][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 17:13:26,428 [DEBUG][       Thread-262159][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 17:13:26,429 [DEBUG][       Thread-262159][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 17:13:26,431 [DEBUG][       Thread-262159][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 17:13:26,445 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 17:13:26,445 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 17:13:26,446 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 17:13:26,447 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 17:13:26,450 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 17:13:26,450 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 17:13:26,451 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 17:13:26,451 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 17:13:26,451 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.633962 -999.00  +12.90  15.04     35   -1.80 1 1 1 1 1   887    0 14.75 9.21 ----- 16.1 15.0 45.4 19.1 14.8 -29.7 14.5 -30.0 14.6 -29.2 15.1 -28.3
2025-06-13 17:13:26,451 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 17:13:26,451 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 17:13:26,451 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.633962
2025-06-13 17:13:26,451 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 17:13:26,451 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 17:13:26,451 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 17:13:26,451 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 17:13:26,451 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 17:13:26,451 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T17:12:53', tmtdew=16.56, humidity=31.46, cloud=0.0, wind=12.46, temperature=13.07, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T15:12:54.317', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 17:13:26,452 [DEBUG][       Thread-262159][   transport.py][1871] : EOF in transport thread
2025-06-13 17:13:26,526 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 17:13:26,535 [DEBUG][       Thread-262162][   transport.py][1871] : starting thread (client mode): 0x863be470
2025-06-13 17:13:26,535 [DEBUG][       Thread-262162][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 17:13:26,550 [DEBUG][       Thread-262162][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 17:13:26,550 [ INFO][       Thread-262162][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 17:13:26,559 [DEBUG][       Thread-262162][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 17:13:26,559 [DEBUG][       Thread-262162][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 17:13:26,559 [DEBUG][       Thread-262162][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 17:13:26,559 [DEBUG][       Thread-262162][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:13:26,559 [DEBUG][       Thread-262162][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:13:26,559 [DEBUG][       Thread-262162][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:13:26,559 [DEBUG][       Thread-262162][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:13:26,559 [DEBUG][       Thread-262162][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 17:13:26,559 [DEBUG][       Thread-262162][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 17:13:26,559 [DEBUG][       Thread-262162][   transport.py][1871] : client lang: <none>
2025-06-13 17:13:26,559 [DEBUG][       Thread-262162][   transport.py][1871] : server lang: <none>
2025-06-13 17:13:26,559 [DEBUG][       Thread-262162][   transport.py][1871] : kex follows: False
2025-06-13 17:13:26,559 [DEBUG][       Thread-262162][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 17:13:26,559 [DEBUG][       Thread-262162][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 17:13:26,559 [DEBUG][       Thread-262162][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 17:13:26,559 [DEBUG][       Thread-262162][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 17:13:26,559 [DEBUG][       Thread-262162][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 17:13:26,559 [DEBUG][       Thread-262162][   transport.py][1871] : Compression: none
2025-06-13 17:13:26,559 [DEBUG][       Thread-262162][   transport.py][1871] : === End of kex handshake ===
2025-06-13 17:13:26,614 [DEBUG][       Thread-262162][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 17:13:26,614 [DEBUG][       Thread-262162][   transport.py][1871] : Switch to new keys ...
2025-06-13 17:13:26,614 [DEBUG][       Thread-262162][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 17:13:26,615 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 17:13:26,615 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 17:13:26,680 [DEBUG][       Thread-262162][   transport.py][1871] : userauth is OK
2025-06-13 17:13:26,680 [DEBUG][       Thread-262162][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 17:13:26,680 [DEBUG][       Thread-262162][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 17:13:26,680 [DEBUG][       Thread-262162][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 17:13:26,680 [DEBUG][       Thread-262162][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 17:13:26,698 [ INFO][       Thread-262162][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 17:13:26,698 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 17:13:26,698 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 17:13:27,722 [DEBUG][       Thread-262162][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 17:13:27,722 [DEBUG][       Thread-262162][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 17:13:27,772 [DEBUG][       Thread-262162][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 17:13:27,772 [DEBUG][       Thread-262162][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 17:13:27,781 [DEBUG][       Thread-262162][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 17:13:27,790 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 17:13:27,790 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 17:13:27,799 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 17:13:27,808 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 17:13:27,808 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 17:13:27,809 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 17:13:27,816 [DEBUG][       Thread-262162][   transport.py][1871] : EOF in transport thread
2025-06-13 17:13:32,556 [DEBUG][Thread-262164 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:13:37,816 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 17:13:37,816 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 17:13:37,816 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 17:13:37,817 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 17:13:38,280 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 17, 13, 25), 16.5, 31.6, 0.0, 15.07, 13.06, 0, 0, 0, 2, 0, 0),)
2025-06-13 17:13:38,280 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 17:13:25
2025-06-13 17:13:38,366 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 17:13:38,372 [DEBUG][       Thread-262165][   transport.py][1871] : starting thread (client mode): 0x8636bd00
2025-06-13 17:13:38,372 [DEBUG][       Thread-262165][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 17:13:38,392 [DEBUG][       Thread-262165][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 17:13:38,392 [ INFO][       Thread-262165][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 17:13:38,395 [DEBUG][       Thread-262165][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 17:13:38,396 [DEBUG][       Thread-262165][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 17:13:38,396 [DEBUG][       Thread-262165][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 17:13:38,396 [DEBUG][       Thread-262165][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:13:38,396 [DEBUG][       Thread-262165][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:13:38,396 [DEBUG][       Thread-262165][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:13:38,396 [DEBUG][       Thread-262165][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:13:38,396 [DEBUG][       Thread-262165][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 17:13:38,396 [DEBUG][       Thread-262165][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 17:13:38,396 [DEBUG][       Thread-262165][   transport.py][1871] : client lang: <none>
2025-06-13 17:13:38,396 [DEBUG][       Thread-262165][   transport.py][1871] : server lang: <none>
2025-06-13 17:13:38,396 [DEBUG][       Thread-262165][   transport.py][1871] : kex follows: False
2025-06-13 17:13:38,396 [DEBUG][       Thread-262165][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 17:13:38,396 [DEBUG][       Thread-262165][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 17:13:38,396 [DEBUG][       Thread-262165][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 17:13:38,396 [DEBUG][       Thread-262165][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 17:13:38,396 [DEBUG][       Thread-262165][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 17:13:38,396 [DEBUG][       Thread-262165][   transport.py][1871] : Compression: none
2025-06-13 17:13:38,396 [DEBUG][       Thread-262165][   transport.py][1871] : === End of kex handshake ===
2025-06-13 17:13:38,410 [DEBUG][       Thread-262165][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 17:13:38,410 [DEBUG][       Thread-262165][   transport.py][1871] : Switch to new keys ...
2025-06-13 17:13:38,410 [DEBUG][       Thread-262165][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 17:13:38,410 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 17:13:38,410 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 17:13:38,411 [DEBUG][       Thread-262165][   transport.py][1871] : userauth is OK
2025-06-13 17:13:38,424 [ INFO][       Thread-262165][   transport.py][1871] : Authentication (password) successful!
2025-06-13 17:13:38,424 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 17:13:39,076 [DEBUG][       Thread-262165][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 17:13:39,077 [DEBUG][       Thread-262165][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 17:13:39,120 [DEBUG][       Thread-262165][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 17:13:39,120 [DEBUG][       Thread-262165][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 17:13:39,123 [DEBUG][       Thread-262165][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 17:13:39,137 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 17:13:39,137 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 17:13:39,138 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 17:13:39,139 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 17:13:39,142 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 17:13:39,143 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 17:13:39,143 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 17:13:39,143 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 17:13:39,143 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.633962 -999.00  +12.90  15.04     35   -1.80 1 1 1 1 1   887    0 14.75 9.21 ----- 16.1 15.0 45.4 19.1 14.8 -29.7 14.5 -30.0 14.6 -29.2 15.1 -28.3
2025-06-13 17:13:39,143 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 17:13:39,143 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 17:13:39,143 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.633962
2025-06-13 17:13:39,143 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 17:13:39,143 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 17:13:39,143 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 17:13:39,143 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 17:13:39,143 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 17:13:39,143 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T17:13:25', tmtdew=16.5, humidity=31.6, cloud=0.0, wind=15.07, temperature=13.06, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T15:12:54.317', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 17:13:39,144 [DEBUG][       Thread-262165][   transport.py][1871] : EOF in transport thread
2025-06-13 17:13:39,215 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 17:13:39,227 [DEBUG][       Thread-262168][   transport.py][1871] : starting thread (client mode): 0x86392380
2025-06-13 17:13:39,227 [DEBUG][       Thread-262168][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 17:13:39,243 [DEBUG][       Thread-262168][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 17:13:39,243 [ INFO][       Thread-262168][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 17:13:39,251 [DEBUG][       Thread-262168][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 17:13:39,251 [DEBUG][       Thread-262168][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 17:13:39,251 [DEBUG][       Thread-262168][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 17:13:39,251 [DEBUG][       Thread-262168][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:13:39,251 [DEBUG][       Thread-262168][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:13:39,251 [DEBUG][       Thread-262168][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:13:39,251 [DEBUG][       Thread-262168][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:13:39,251 [DEBUG][       Thread-262168][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 17:13:39,251 [DEBUG][       Thread-262168][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 17:13:39,251 [DEBUG][       Thread-262168][   transport.py][1871] : client lang: <none>
2025-06-13 17:13:39,251 [DEBUG][       Thread-262168][   transport.py][1871] : server lang: <none>
2025-06-13 17:13:39,251 [DEBUG][       Thread-262168][   transport.py][1871] : kex follows: False
2025-06-13 17:13:39,251 [DEBUG][       Thread-262168][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 17:13:39,251 [DEBUG][       Thread-262168][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 17:13:39,251 [DEBUG][       Thread-262168][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 17:13:39,251 [DEBUG][       Thread-262168][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 17:13:39,251 [DEBUG][       Thread-262168][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 17:13:39,251 [DEBUG][       Thread-262168][   transport.py][1871] : Compression: none
2025-06-13 17:13:39,251 [DEBUG][       Thread-262168][   transport.py][1871] : === End of kex handshake ===
2025-06-13 17:13:39,306 [DEBUG][       Thread-262168][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 17:13:39,307 [DEBUG][       Thread-262168][   transport.py][1871] : Switch to new keys ...
2025-06-13 17:13:39,307 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 17:13:39,307 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 17:13:39,307 [DEBUG][       Thread-262168][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 17:13:39,371 [DEBUG][       Thread-262168][   transport.py][1871] : userauth is OK
2025-06-13 17:13:39,371 [DEBUG][       Thread-262168][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 17:13:39,371 [DEBUG][       Thread-262168][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 17:13:39,371 [DEBUG][       Thread-262168][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 17:13:39,371 [DEBUG][       Thread-262168][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 17:13:39,385 [ INFO][       Thread-262168][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 17:13:39,385 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 17:13:39,385 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 17:13:40,404 [DEBUG][       Thread-262168][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 17:13:40,404 [DEBUG][       Thread-262168][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 17:13:40,455 [DEBUG][       Thread-262168][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 17:13:40,455 [DEBUG][       Thread-262168][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 17:13:40,464 [DEBUG][       Thread-262168][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 17:13:40,472 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 17:13:40,472 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 17:13:40,480 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 17:13:40,488 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 17:13:40,488 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 17:13:40,488 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 17:13:40,496 [DEBUG][       Thread-262168][   transport.py][1871] : EOF in transport thread
2025-06-13 17:13:41,576 [DEBUG][Thread-262170 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:13:44,811 [DEBUG][Thread-262171 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:13:45,892 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:13:45,894 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:13:50,498 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 17:13:50,499 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 17:13:50,499 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 17:13:50,502 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 17:13:50,616 [DEBUG][Thread-262172 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:13:50,961 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 17, 13, 25), 16.5, 31.6, 0.0, 15.07, 13.06, 0, 0, 0, 2, 0, 0),)
2025-06-13 17:13:50,962 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 17:13:25
2025-06-13 17:13:51,042 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 17:13:51,047 [DEBUG][       Thread-262173][   transport.py][1871] : starting thread (client mode): 0x863685e0
2025-06-13 17:13:51,047 [DEBUG][       Thread-262173][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 17:13:51,067 [DEBUG][       Thread-262173][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 17:13:51,067 [ INFO][       Thread-262173][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 17:13:51,068 [DEBUG][       Thread-262173][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 17:13:51,068 [DEBUG][       Thread-262173][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 17:13:51,068 [DEBUG][       Thread-262173][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 17:13:51,068 [DEBUG][       Thread-262173][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:13:51,068 [DEBUG][       Thread-262173][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:13:51,068 [DEBUG][       Thread-262173][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:13:51,068 [DEBUG][       Thread-262173][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:13:51,068 [DEBUG][       Thread-262173][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 17:13:51,068 [DEBUG][       Thread-262173][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 17:13:51,068 [DEBUG][       Thread-262173][   transport.py][1871] : client lang: <none>
2025-06-13 17:13:51,068 [DEBUG][       Thread-262173][   transport.py][1871] : server lang: <none>
2025-06-13 17:13:51,068 [DEBUG][       Thread-262173][   transport.py][1871] : kex follows: False
2025-06-13 17:13:51,068 [DEBUG][       Thread-262173][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 17:13:51,068 [DEBUG][       Thread-262173][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 17:13:51,068 [DEBUG][       Thread-262173][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 17:13:51,068 [DEBUG][       Thread-262173][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 17:13:51,069 [DEBUG][       Thread-262173][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 17:13:51,069 [DEBUG][       Thread-262173][   transport.py][1871] : Compression: none
2025-06-13 17:13:51,069 [DEBUG][       Thread-262173][   transport.py][1871] : === End of kex handshake ===
2025-06-13 17:13:51,077 [DEBUG][       Thread-262173][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 17:13:51,077 [DEBUG][       Thread-262173][   transport.py][1871] : Switch to new keys ...
2025-06-13 17:13:51,077 [DEBUG][       Thread-262173][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 17:13:51,078 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 17:13:51,078 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 17:13:51,079 [DEBUG][       Thread-262173][   transport.py][1871] : userauth is OK
2025-06-13 17:13:51,092 [ INFO][       Thread-262173][   transport.py][1871] : Authentication (password) successful!
2025-06-13 17:13:51,092 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 17:13:51,661 [DEBUG][       Thread-262173][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 17:13:51,661 [DEBUG][       Thread-262173][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 17:13:51,705 [DEBUG][       Thread-262173][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 17:13:51,705 [DEBUG][       Thread-262173][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 17:13:51,707 [DEBUG][       Thread-262173][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 17:13:51,720 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 17:13:51,720 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 17:13:51,722 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 17:13:51,724 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 17:13:51,730 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 17:13:51,732 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 17:13:51,732 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 17:13:51,733 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 17:13:51,733 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.634309 -999.00  +12.90  13.12     35   -1.70 1 1 1 1 1   887    0 14.86 10.29 ----- 13.5 13.1 42.6 17.5 14.8 -29.6 14.4 -30.1 14.5 -29.1 15.0 -28.4
2025-06-13 17:13:51,733 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 17:13:51,733 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 17:13:51,733 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.634309
2025-06-13 17:13:51,733 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 17:13:51,734 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 17:13:51,734 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 17:13:51,734 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 17:13:51,734 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 17:13:51,734 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T17:13:25', tmtdew=16.5, humidity=31.6, cloud=0.0, wind=15.07, temperature=13.06, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T15:13:24.298', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 17:13:51,736 [DEBUG][       Thread-262173][   transport.py][1871] : EOF in transport thread
2025-06-13 17:13:51,818 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 17:13:51,827 [DEBUG][       Thread-262176][   transport.py][1871] : starting thread (client mode): 0x86893df0
2025-06-13 17:13:51,827 [DEBUG][       Thread-262176][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 17:13:51,847 [DEBUG][       Thread-262176][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 17:13:51,847 [ INFO][       Thread-262176][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 17:13:51,856 [DEBUG][       Thread-262176][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 17:13:51,856 [DEBUG][       Thread-262176][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 17:13:51,857 [DEBUG][       Thread-262176][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 17:13:51,857 [DEBUG][       Thread-262176][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:13:51,857 [DEBUG][       Thread-262176][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:13:51,857 [DEBUG][       Thread-262176][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:13:51,857 [DEBUG][       Thread-262176][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:13:51,857 [DEBUG][       Thread-262176][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 17:13:51,857 [DEBUG][       Thread-262176][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 17:13:51,857 [DEBUG][       Thread-262176][   transport.py][1871] : client lang: <none>
2025-06-13 17:13:51,857 [DEBUG][       Thread-262176][   transport.py][1871] : server lang: <none>
2025-06-13 17:13:51,857 [DEBUG][       Thread-262176][   transport.py][1871] : kex follows: False
2025-06-13 17:13:51,857 [DEBUG][       Thread-262176][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 17:13:51,857 [DEBUG][       Thread-262176][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 17:13:51,857 [DEBUG][       Thread-262176][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 17:13:51,857 [DEBUG][       Thread-262176][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 17:13:51,857 [DEBUG][       Thread-262176][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 17:13:51,857 [DEBUG][       Thread-262176][   transport.py][1871] : Compression: none
2025-06-13 17:13:51,858 [DEBUG][       Thread-262176][   transport.py][1871] : === End of kex handshake ===
2025-06-13 17:13:51,916 [DEBUG][       Thread-262176][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 17:13:51,917 [DEBUG][       Thread-262176][   transport.py][1871] : Switch to new keys ...
2025-06-13 17:13:51,917 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 17:13:51,918 [DEBUG][       Thread-262176][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 17:13:51,919 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 17:13:51,980 [DEBUG][       Thread-262176][   transport.py][1871] : userauth is OK
2025-06-13 17:13:51,980 [DEBUG][       Thread-262176][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 17:13:51,981 [DEBUG][       Thread-262176][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 17:13:51,981 [DEBUG][       Thread-262176][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 17:13:51,981 [DEBUG][       Thread-262176][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 17:13:52,005 [ INFO][       Thread-262176][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 17:13:52,006 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 17:13:52,006 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 17:13:53,020 [DEBUG][       Thread-262176][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 17:13:53,020 [DEBUG][       Thread-262176][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 17:13:53,068 [DEBUG][       Thread-262176][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 17:13:53,068 [DEBUG][       Thread-262176][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 17:13:53,077 [DEBUG][       Thread-262176][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 17:13:53,087 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 17:13:53,087 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 17:13:53,096 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 17:13:53,105 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 17:13:53,105 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 17:13:53,106 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 17:13:53,114 [DEBUG][       Thread-262176][   transport.py][1871] : EOF in transport thread
2025-06-13 17:13:59,636 [DEBUG][Thread-262178 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:14:03,116 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 17:14:03,116 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 17:14:03,117 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 17:14:03,119 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 17:14:03,581 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 17, 13, 57), 16.5, 31.6, 0.0, 13.64, 13.05, 0, 0, 0, 2, 0, 0),)
2025-06-13 17:14:03,581 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 17:13:57
2025-06-13 17:14:03,662 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 17:14:03,668 [DEBUG][       Thread-262179][   transport.py][1871] : starting thread (client mode): 0x867ffb50
2025-06-13 17:14:03,668 [DEBUG][       Thread-262179][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 17:14:03,688 [DEBUG][       Thread-262179][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 17:14:03,688 [ INFO][       Thread-262179][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 17:14:03,691 [DEBUG][       Thread-262179][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 17:14:03,691 [DEBUG][       Thread-262179][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 17:14:03,691 [DEBUG][       Thread-262179][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 17:14:03,691 [DEBUG][       Thread-262179][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:14:03,691 [DEBUG][       Thread-262179][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:14:03,691 [DEBUG][       Thread-262179][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:14:03,691 [DEBUG][       Thread-262179][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:14:03,691 [DEBUG][       Thread-262179][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 17:14:03,691 [DEBUG][       Thread-262179][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 17:14:03,692 [DEBUG][       Thread-262179][   transport.py][1871] : client lang: <none>
2025-06-13 17:14:03,692 [DEBUG][       Thread-262179][   transport.py][1871] : server lang: <none>
2025-06-13 17:14:03,692 [DEBUG][       Thread-262179][   transport.py][1871] : kex follows: False
2025-06-13 17:14:03,692 [DEBUG][       Thread-262179][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 17:14:03,692 [DEBUG][       Thread-262179][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 17:14:03,692 [DEBUG][       Thread-262179][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 17:14:03,692 [DEBUG][       Thread-262179][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 17:14:03,692 [DEBUG][       Thread-262179][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 17:14:03,692 [DEBUG][       Thread-262179][   transport.py][1871] : Compression: none
2025-06-13 17:14:03,692 [DEBUG][       Thread-262179][   transport.py][1871] : === End of kex handshake ===
2025-06-13 17:14:03,708 [DEBUG][       Thread-262179][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 17:14:03,709 [DEBUG][       Thread-262179][   transport.py][1871] : Switch to new keys ...
2025-06-13 17:14:03,709 [DEBUG][       Thread-262179][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 17:14:03,709 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 17:14:03,709 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 17:14:03,710 [DEBUG][       Thread-262179][   transport.py][1871] : userauth is OK
2025-06-13 17:14:03,735 [ INFO][       Thread-262179][   transport.py][1871] : Authentication (password) successful!
2025-06-13 17:14:03,735 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 17:14:04,380 [DEBUG][       Thread-262179][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 17:14:04,381 [DEBUG][       Thread-262179][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 17:14:04,425 [DEBUG][       Thread-262179][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 17:14:04,425 [DEBUG][       Thread-262179][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 17:14:04,428 [DEBUG][       Thread-262179][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 17:14:04,441 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 17:14:04,441 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 17:14:04,443 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 17:14:04,445 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 17:14:04,450 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 17:14:04,452 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 17:14:04,452 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 17:14:04,452 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 17:14:04,452 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.634309 -999.00  +12.90  13.12     35   -1.70 1 1 1 1 1   887    0 14.86 10.29 ----- 13.5 13.1 42.6 17.5 14.8 -29.6 14.4 -30.1 14.5 -29.1 15.0 -28.4
2025-06-13 17:14:04,453 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 17:14:04,453 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 17:14:04,453 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.634309
2025-06-13 17:14:04,453 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 17:14:04,453 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 17:14:04,454 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 17:14:04,454 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 17:14:04,454 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 17:14:04,454 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T17:13:57', tmtdew=16.5, humidity=31.6, cloud=0.0, wind=13.64, temperature=13.05, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T15:13:24.298', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 17:14:04,455 [DEBUG][       Thread-262179][   transport.py][1871] : EOF in transport thread
2025-06-13 17:14:04,535 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 17:14:08,653 [DEBUG][Thread-262182 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:14:17,686 [DEBUG][Thread-262183 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:14:24,410 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:14:24,410 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:14:25,528 [DEBUG][Thread-262184 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:14:26,706 [DEBUG][Thread-262185 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:14:35,730 [DEBUG][Thread-262186 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:14:44,753 [DEBUG][Thread-262187 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:14:45,972 [DEBUG][Thread-262188 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:14:47,042 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:14:47,042 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:14:53,773 [DEBUG][Thread-262189 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:15:02,789 [DEBUG][Thread-262190 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:15:11,812 [DEBUG][Thread-262191 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:15:20,833 [DEBUG][Thread-262192 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:15:24,548 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:15:24,549 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:15:25,579 [DEBUG][Thread-262193 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:15:29,853 [DEBUG][Thread-262194 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:15:38,871 [DEBUG][Thread-262195 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:15:47,109 [DEBUG][Thread-262196 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:15:47,894 [DEBUG][Thread-262197 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:15:48,183 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:15:48,184 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:15:56,917 [DEBUG][Thread-262198 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:16:05,936 [DEBUG][Thread-262199 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:16:14,740 [WARNING][ poll_weather_worker][      driver.py][ 286] : Unable to open ssh connection for writing weather state to io.saao.ac.za: [Errno 110] Connection timed out
2025-06-13 17:16:14,956 [DEBUG][Thread-262200 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:16:23,977 [DEBUG][Thread-262201 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:16:24,688 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:16:24,689 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:16:24,751 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 17:16:24,751 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 17:16:24,751 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 17:16:24,754 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 17:16:25,226 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 17, 16, 4), 16.67, 31.13, 0.0, 14.49, 13.0, 0, 0, 0, 2, 0, 0),)
2025-06-13 17:16:25,226 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 17:16:04
2025-06-13 17:16:25,307 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 17:16:25,312 [DEBUG][       Thread-262202][   transport.py][1871] : starting thread (client mode): 0x86351000
2025-06-13 17:16:25,312 [DEBUG][       Thread-262202][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 17:16:25,332 [DEBUG][       Thread-262202][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 17:16:25,332 [ INFO][       Thread-262202][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 17:16:25,335 [DEBUG][       Thread-262202][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 17:16:25,335 [DEBUG][       Thread-262202][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 17:16:25,335 [DEBUG][       Thread-262202][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 17:16:25,335 [DEBUG][       Thread-262202][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:16:25,335 [DEBUG][       Thread-262202][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:16:25,335 [DEBUG][       Thread-262202][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:16:25,335 [DEBUG][       Thread-262202][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:16:25,335 [DEBUG][       Thread-262202][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 17:16:25,335 [DEBUG][       Thread-262202][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 17:16:25,335 [DEBUG][       Thread-262202][   transport.py][1871] : client lang: <none>
2025-06-13 17:16:25,335 [DEBUG][       Thread-262202][   transport.py][1871] : server lang: <none>
2025-06-13 17:16:25,335 [DEBUG][       Thread-262202][   transport.py][1871] : kex follows: False
2025-06-13 17:16:25,335 [DEBUG][       Thread-262202][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 17:16:25,335 [DEBUG][       Thread-262202][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 17:16:25,336 [DEBUG][       Thread-262202][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 17:16:25,336 [DEBUG][       Thread-262202][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 17:16:25,336 [DEBUG][       Thread-262202][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 17:16:25,336 [DEBUG][       Thread-262202][   transport.py][1871] : Compression: none
2025-06-13 17:16:25,336 [DEBUG][       Thread-262202][   transport.py][1871] : === End of kex handshake ===
2025-06-13 17:16:25,352 [DEBUG][       Thread-262202][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 17:16:25,352 [DEBUG][       Thread-262202][   transport.py][1871] : Switch to new keys ...
2025-06-13 17:16:25,353 [DEBUG][       Thread-262202][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 17:16:25,353 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 17:16:25,353 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 17:16:25,354 [DEBUG][       Thread-262202][   transport.py][1871] : userauth is OK
2025-06-13 17:16:25,379 [ INFO][       Thread-262202][   transport.py][1871] : Authentication (password) successful!
2025-06-13 17:16:25,379 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 17:16:25,628 [DEBUG][Thread-262204 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:16:25,924 [DEBUG][       Thread-262202][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 17:16:25,925 [DEBUG][       Thread-262202][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 17:16:25,968 [DEBUG][       Thread-262202][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 17:16:25,969 [DEBUG][       Thread-262202][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 17:16:25,970 [DEBUG][       Thread-262202][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 17:16:25,982 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 17:16:25,982 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 17:16:25,988 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 17:16:25,989 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 17:16:25,991 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 17:16:25,993 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 17:16:25,993 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 17:16:25,993 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 17:16:25,993 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.636045 -999.00  +12.80  14.05     36   -1.80 1 1 1 1 1   887    0 15.05 17.56 ----- 13.5 14.1 42.8 17.6 14.5 -29.5 14.2 -29.7 14.3 -29.0 14.8 -28.4
2025-06-13 17:16:25,993 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 17:16:25,994 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 17:16:25,994 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.636045
2025-06-13 17:16:25,994 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 17:16:25,994 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 17:16:25,994 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 17:16:25,995 [DEBUG][       Thread-262202][   transport.py][1871] : EOF in transport thread
2025-06-13 17:16:25,995 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 17:16:25,995 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 17:16:25,995 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T17:16:04', tmtdew=16.67, humidity=31.13, cloud=0.0, wind=14.49, temperature=13.0, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T15:15:54.288', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 17:16:26,070 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 17:16:26,082 [DEBUG][       Thread-262206][   transport.py][1871] : starting thread (client mode): 0x863c8580
2025-06-13 17:16:26,082 [DEBUG][       Thread-262206][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 17:16:26,098 [DEBUG][       Thread-262206][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 17:16:26,098 [ INFO][       Thread-262206][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 17:16:26,106 [DEBUG][       Thread-262206][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 17:16:26,106 [DEBUG][       Thread-262206][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 17:16:26,106 [DEBUG][       Thread-262206][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 17:16:26,106 [DEBUG][       Thread-262206][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:16:26,106 [DEBUG][       Thread-262206][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:16:26,106 [DEBUG][       Thread-262206][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:16:26,106 [DEBUG][       Thread-262206][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:16:26,106 [DEBUG][       Thread-262206][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 17:16:26,106 [DEBUG][       Thread-262206][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 17:16:26,106 [DEBUG][       Thread-262206][   transport.py][1871] : client lang: <none>
2025-06-13 17:16:26,106 [DEBUG][       Thread-262206][   transport.py][1871] : server lang: <none>
2025-06-13 17:16:26,106 [DEBUG][       Thread-262206][   transport.py][1871] : kex follows: False
2025-06-13 17:16:26,106 [DEBUG][       Thread-262206][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 17:16:26,106 [DEBUG][       Thread-262206][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 17:16:26,106 [DEBUG][       Thread-262206][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 17:16:26,107 [DEBUG][       Thread-262206][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 17:16:26,107 [DEBUG][       Thread-262206][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 17:16:26,107 [DEBUG][       Thread-262206][   transport.py][1871] : Compression: none
2025-06-13 17:16:26,107 [DEBUG][       Thread-262206][   transport.py][1871] : === End of kex handshake ===
2025-06-13 17:16:26,166 [DEBUG][       Thread-262206][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 17:16:26,167 [DEBUG][       Thread-262206][   transport.py][1871] : Switch to new keys ...
2025-06-13 17:16:26,176 [DEBUG][       Thread-262206][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 17:16:26,177 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 17:16:26,177 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 17:16:26,224 [DEBUG][       Thread-262206][   transport.py][1871] : userauth is OK
2025-06-13 17:16:26,225 [DEBUG][       Thread-262206][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 17:16:26,225 [DEBUG][       Thread-262206][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 17:16:26,225 [DEBUG][       Thread-262206][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 17:16:26,225 [DEBUG][       Thread-262206][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 17:16:26,249 [ INFO][       Thread-262206][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 17:16:26,249 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 17:16:26,250 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 17:16:27,286 [DEBUG][       Thread-262206][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 17:16:27,286 [DEBUG][       Thread-262206][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 17:16:27,337 [DEBUG][       Thread-262206][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 17:16:27,337 [DEBUG][       Thread-262206][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 17:16:27,349 [DEBUG][       Thread-262206][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 17:16:27,358 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 17:16:27,358 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 17:16:27,367 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 17:16:27,377 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 17:16:27,377 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 17:16:27,377 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 17:16:27,385 [DEBUG][       Thread-262206][   transport.py][1871] : EOF in transport thread
2025-06-13 17:16:32,999 [DEBUG][Thread-262208 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:16:37,384 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 17:16:37,384 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 17:16:37,384 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 17:16:37,385 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 17:16:37,881 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 17, 16, 4), 16.67, 31.13, 0.0, 14.49, 13.0, 0, 0, 0, 2, 0, 0),)
2025-06-13 17:16:37,881 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 17:16:04
2025-06-13 17:16:37,968 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 17:16:37,972 [DEBUG][       Thread-262209][   transport.py][1871] : starting thread (client mode): 0x86392740
2025-06-13 17:16:37,973 [DEBUG][       Thread-262209][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 17:16:37,993 [DEBUG][       Thread-262209][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 17:16:37,994 [ INFO][       Thread-262209][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 17:16:37,995 [DEBUG][       Thread-262209][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 17:16:37,995 [DEBUG][       Thread-262209][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 17:16:37,995 [DEBUG][       Thread-262209][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 17:16:37,995 [DEBUG][       Thread-262209][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:16:37,995 [DEBUG][       Thread-262209][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:16:37,995 [DEBUG][       Thread-262209][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:16:37,995 [DEBUG][       Thread-262209][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:16:37,995 [DEBUG][       Thread-262209][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 17:16:37,995 [DEBUG][       Thread-262209][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 17:16:37,995 [DEBUG][       Thread-262209][   transport.py][1871] : client lang: <none>
2025-06-13 17:16:37,995 [DEBUG][       Thread-262209][   transport.py][1871] : server lang: <none>
2025-06-13 17:16:37,995 [DEBUG][       Thread-262209][   transport.py][1871] : kex follows: False
2025-06-13 17:16:37,995 [DEBUG][       Thread-262209][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 17:16:37,996 [DEBUG][       Thread-262209][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 17:16:37,996 [DEBUG][       Thread-262209][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 17:16:37,996 [DEBUG][       Thread-262209][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 17:16:37,996 [DEBUG][       Thread-262209][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 17:16:37,996 [DEBUG][       Thread-262209][   transport.py][1871] : Compression: none
2025-06-13 17:16:37,996 [DEBUG][       Thread-262209][   transport.py][1871] : === End of kex handshake ===
2025-06-13 17:16:38,002 [DEBUG][       Thread-262209][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 17:16:38,002 [DEBUG][       Thread-262209][   transport.py][1871] : Switch to new keys ...
2025-06-13 17:16:38,002 [DEBUG][       Thread-262209][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 17:16:38,002 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 17:16:38,003 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 17:16:38,003 [DEBUG][       Thread-262209][   transport.py][1871] : userauth is OK
2025-06-13 17:16:38,027 [ INFO][       Thread-262209][   transport.py][1871] : Authentication (password) successful!
2025-06-13 17:16:38,027 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 17:16:38,619 [DEBUG][       Thread-262209][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 17:16:38,620 [DEBUG][       Thread-262209][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 17:16:38,661 [DEBUG][       Thread-262209][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 17:16:38,661 [DEBUG][       Thread-262209][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 17:16:38,664 [DEBUG][       Thread-262209][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 17:16:38,675 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 17:16:38,676 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 17:16:38,677 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 17:16:38,679 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 17:16:38,683 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 17:16:38,685 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 17:16:38,685 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 17:16:38,686 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 17:16:38,686 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.636392 -999.00  +12.80  13.95     36   -1.80 1 1 1 1 1   887    0 14.74 20.56 ----- 13.3 13.9 41.6 18.2 14.5 -29.5 14.2 -29.8 14.3 -29.1 14.7 -28.2
2025-06-13 17:16:38,686 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 17:16:38,686 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 17:16:38,686 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.636392
2025-06-13 17:16:38,687 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 17:16:38,687 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 17:16:38,687 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 17:16:38,687 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 17:16:38,688 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 17:16:38,688 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T17:16:04', tmtdew=16.67, humidity=31.13, cloud=0.0, wind=14.49, temperature=13.0, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T15:16:24.269', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 17:16:38,688 [DEBUG][       Thread-262209][   transport.py][1871] : EOF in transport thread
2025-06-13 17:16:38,771 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 17:16:38,787 [DEBUG][       Thread-262212][   transport.py][1871] : starting thread (client mode): 0x86350250
2025-06-13 17:16:38,787 [DEBUG][       Thread-262212][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 17:16:38,807 [DEBUG][       Thread-262212][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 17:16:38,807 [ INFO][       Thread-262212][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 17:16:38,816 [DEBUG][       Thread-262212][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 17:16:38,816 [DEBUG][       Thread-262212][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 17:16:38,816 [DEBUG][       Thread-262212][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 17:16:38,816 [DEBUG][       Thread-262212][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:16:38,816 [DEBUG][       Thread-262212][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:16:38,816 [DEBUG][       Thread-262212][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:16:38,816 [DEBUG][       Thread-262212][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:16:38,817 [DEBUG][       Thread-262212][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 17:16:38,817 [DEBUG][       Thread-262212][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 17:16:38,817 [DEBUG][       Thread-262212][   transport.py][1871] : client lang: <none>
2025-06-13 17:16:38,817 [DEBUG][       Thread-262212][   transport.py][1871] : server lang: <none>
2025-06-13 17:16:38,817 [DEBUG][       Thread-262212][   transport.py][1871] : kex follows: False
2025-06-13 17:16:38,817 [DEBUG][       Thread-262212][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 17:16:38,817 [DEBUG][       Thread-262212][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 17:16:38,817 [DEBUG][       Thread-262212][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 17:16:38,817 [DEBUG][       Thread-262212][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 17:16:38,817 [DEBUG][       Thread-262212][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 17:16:38,817 [DEBUG][       Thread-262212][   transport.py][1871] : Compression: none
2025-06-13 17:16:38,817 [DEBUG][       Thread-262212][   transport.py][1871] : === End of kex handshake ===
2025-06-13 17:16:38,873 [DEBUG][       Thread-262212][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 17:16:38,873 [DEBUG][       Thread-262212][   transport.py][1871] : Switch to new keys ...
2025-06-13 17:16:38,874 [DEBUG][       Thread-262212][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 17:16:38,874 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 17:16:38,875 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 17:16:38,929 [DEBUG][       Thread-262212][   transport.py][1871] : userauth is OK
2025-06-13 17:16:38,930 [DEBUG][       Thread-262212][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 17:16:38,930 [DEBUG][       Thread-262212][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 17:16:38,930 [DEBUG][       Thread-262212][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 17:16:38,930 [DEBUG][       Thread-262212][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 17:16:38,949 [ INFO][       Thread-262212][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 17:16:38,950 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 17:16:38,950 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 17:16:39,953 [DEBUG][       Thread-262212][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 17:16:39,953 [DEBUG][       Thread-262212][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 17:16:40,004 [DEBUG][       Thread-262212][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 17:16:40,004 [DEBUG][       Thread-262212][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 17:16:40,016 [DEBUG][       Thread-262212][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 17:16:40,027 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 17:16:40,027 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 17:16:40,041 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 17:16:40,051 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 17:16:40,051 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 17:16:40,051 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 17:16:40,059 [DEBUG][       Thread-262212][   transport.py][1871] : EOF in transport thread
2025-06-13 17:16:42,036 [DEBUG][Thread-262214 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:16:48,194 [DEBUG][Thread-262215 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:16:49,250 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:16:49,251 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:16:50,060 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 17:16:50,060 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 17:16:50,060 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 17:16:50,061 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 17:16:50,555 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 17, 16, 36), 16.63, 31.39, 0.0, 12.28, 12.95, 0, 0, 0, 2, 0, 0),)
2025-06-13 17:16:50,555 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 17:16:36
2025-06-13 17:16:50,638 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 17:16:50,642 [DEBUG][       Thread-262216][   transport.py][1871] : starting thread (client mode): 0x8636b520
2025-06-13 17:16:50,643 [DEBUG][       Thread-262216][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 17:16:50,659 [DEBUG][       Thread-262216][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 17:16:50,659 [ INFO][       Thread-262216][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 17:16:50,662 [DEBUG][       Thread-262216][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 17:16:50,662 [DEBUG][       Thread-262216][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 17:16:50,662 [DEBUG][       Thread-262216][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 17:16:50,662 [DEBUG][       Thread-262216][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:16:50,662 [DEBUG][       Thread-262216][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:16:50,662 [DEBUG][       Thread-262216][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:16:50,662 [DEBUG][       Thread-262216][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:16:50,662 [DEBUG][       Thread-262216][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 17:16:50,663 [DEBUG][       Thread-262216][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 17:16:50,663 [DEBUG][       Thread-262216][   transport.py][1871] : client lang: <none>
2025-06-13 17:16:50,663 [DEBUG][       Thread-262216][   transport.py][1871] : server lang: <none>
2025-06-13 17:16:50,663 [DEBUG][       Thread-262216][   transport.py][1871] : kex follows: False
2025-06-13 17:16:50,663 [DEBUG][       Thread-262216][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 17:16:50,663 [DEBUG][       Thread-262216][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 17:16:50,663 [DEBUG][       Thread-262216][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 17:16:50,663 [DEBUG][       Thread-262216][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 17:16:50,663 [DEBUG][       Thread-262216][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 17:16:50,663 [DEBUG][       Thread-262216][   transport.py][1871] : Compression: none
2025-06-13 17:16:50,663 [DEBUG][       Thread-262216][   transport.py][1871] : === End of kex handshake ===
2025-06-13 17:16:50,676 [DEBUG][       Thread-262216][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 17:16:50,676 [DEBUG][       Thread-262216][   transport.py][1871] : Switch to new keys ...
2025-06-13 17:16:50,676 [DEBUG][       Thread-262216][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 17:16:50,676 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 17:16:50,676 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 17:16:50,677 [DEBUG][       Thread-262216][   transport.py][1871] : userauth is OK
2025-06-13 17:16:50,689 [ INFO][       Thread-262216][   transport.py][1871] : Authentication (password) successful!
2025-06-13 17:16:50,689 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 17:16:51,053 [DEBUG][Thread-262218 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:16:51,321 [DEBUG][       Thread-262216][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 17:16:51,321 [DEBUG][       Thread-262216][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 17:16:51,364 [DEBUG][       Thread-262216][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 17:16:51,364 [DEBUG][       Thread-262216][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 17:16:51,367 [DEBUG][       Thread-262216][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 17:16:51,380 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 17:16:51,380 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 17:16:51,381 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 17:16:51,382 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 17:16:51,385 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 17:16:51,386 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 17:16:51,386 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 17:16:51,386 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 17:16:51,386 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.636392 -999.00  +12.80  13.95     36   -1.80 1 1 1 1 1   887    0 14.74 20.56 ----- 13.3 13.9 41.6 18.2 14.5 -29.5 14.2 -29.8 14.3 -29.1 14.7 -28.2
2025-06-13 17:16:51,386 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 17:16:51,386 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 17:16:51,386 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.636392
2025-06-13 17:16:51,386 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 17:16:51,386 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 17:16:51,386 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 17:16:51,386 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 17:16:51,386 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 17:16:51,386 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T17:16:36', tmtdew=16.63, humidity=31.39, cloud=0.0, wind=12.28, temperature=12.95, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T15:16:24.269', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 17:16:51,387 [DEBUG][       Thread-262216][   transport.py][1871] : EOF in transport thread
2025-06-13 17:16:51,458 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 17:16:51,469 [DEBUG][       Thread-262220][   transport.py][1871] : starting thread (client mode): 0x863a7f40
2025-06-13 17:16:51,469 [DEBUG][       Thread-262220][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 17:16:51,484 [DEBUG][       Thread-262220][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 17:16:51,484 [ INFO][       Thread-262220][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 17:16:51,491 [DEBUG][       Thread-262220][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 17:16:51,491 [DEBUG][       Thread-262220][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 17:16:51,491 [DEBUG][       Thread-262220][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 17:16:51,491 [DEBUG][       Thread-262220][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:16:51,491 [DEBUG][       Thread-262220][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:16:51,491 [DEBUG][       Thread-262220][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:16:51,491 [DEBUG][       Thread-262220][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:16:51,491 [DEBUG][       Thread-262220][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 17:16:51,491 [DEBUG][       Thread-262220][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 17:16:51,491 [DEBUG][       Thread-262220][   transport.py][1871] : client lang: <none>
2025-06-13 17:16:51,491 [DEBUG][       Thread-262220][   transport.py][1871] : server lang: <none>
2025-06-13 17:16:51,491 [DEBUG][       Thread-262220][   transport.py][1871] : kex follows: False
2025-06-13 17:16:51,491 [DEBUG][       Thread-262220][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 17:16:51,491 [DEBUG][       Thread-262220][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 17:16:51,491 [DEBUG][       Thread-262220][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 17:16:51,491 [DEBUG][       Thread-262220][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 17:16:51,491 [DEBUG][       Thread-262220][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 17:16:51,491 [DEBUG][       Thread-262220][   transport.py][1871] : Compression: none
2025-06-13 17:16:51,491 [DEBUG][       Thread-262220][   transport.py][1871] : === End of kex handshake ===
2025-06-13 17:16:51,549 [DEBUG][       Thread-262220][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 17:16:51,549 [DEBUG][       Thread-262220][   transport.py][1871] : Switch to new keys ...
2025-06-13 17:16:51,549 [DEBUG][       Thread-262220][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 17:16:51,549 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 17:16:51,550 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 17:16:51,609 [DEBUG][       Thread-262220][   transport.py][1871] : userauth is OK
2025-06-13 17:16:51,609 [DEBUG][       Thread-262220][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 17:16:51,609 [DEBUG][       Thread-262220][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 17:16:51,609 [DEBUG][       Thread-262220][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 17:16:51,609 [DEBUG][       Thread-262220][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 17:16:51,623 [ INFO][       Thread-262220][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 17:16:51,623 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 17:16:51,623 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 17:16:52,689 [DEBUG][       Thread-262220][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 17:16:52,690 [DEBUG][       Thread-262220][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 17:16:52,740 [DEBUG][       Thread-262220][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 17:16:52,740 [DEBUG][       Thread-262220][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 17:16:52,758 [DEBUG][       Thread-262220][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 17:16:52,767 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 17:16:52,767 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 17:16:52,776 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 17:16:52,786 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 17:16:52,786 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 17:16:52,787 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 17:16:52,795 [DEBUG][       Thread-262220][   transport.py][1871] : EOF in transport thread
2025-06-13 17:17:00,072 [DEBUG][Thread-262222 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:17:02,797 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 17:17:02,797 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 17:17:02,797 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 17:17:02,800 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 17:17:03,270 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 17, 16, 36), 16.63, 31.39, 0.0, 12.28, 12.95, 0, 0, 0, 2, 0, 0),)
2025-06-13 17:17:03,270 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 17:16:36
2025-06-13 17:17:03,350 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 17:17:03,354 [DEBUG][       Thread-262223][   transport.py][1871] : starting thread (client mode): 0x867ff460
2025-06-13 17:17:03,354 [DEBUG][       Thread-262223][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 17:17:03,369 [DEBUG][       Thread-262223][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 17:17:03,369 [ INFO][       Thread-262223][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 17:17:03,373 [DEBUG][       Thread-262223][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 17:17:03,373 [DEBUG][       Thread-262223][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 17:17:03,373 [DEBUG][       Thread-262223][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 17:17:03,373 [DEBUG][       Thread-262223][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:17:03,373 [DEBUG][       Thread-262223][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:17:03,373 [DEBUG][       Thread-262223][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:17:03,373 [DEBUG][       Thread-262223][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:17:03,373 [DEBUG][       Thread-262223][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 17:17:03,373 [DEBUG][       Thread-262223][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 17:17:03,373 [DEBUG][       Thread-262223][   transport.py][1871] : client lang: <none>
2025-06-13 17:17:03,373 [DEBUG][       Thread-262223][   transport.py][1871] : server lang: <none>
2025-06-13 17:17:03,373 [DEBUG][       Thread-262223][   transport.py][1871] : kex follows: False
2025-06-13 17:17:03,373 [DEBUG][       Thread-262223][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 17:17:03,373 [DEBUG][       Thread-262223][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 17:17:03,373 [DEBUG][       Thread-262223][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 17:17:03,373 [DEBUG][       Thread-262223][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 17:17:03,373 [DEBUG][       Thread-262223][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 17:17:03,373 [DEBUG][       Thread-262223][   transport.py][1871] : Compression: none
2025-06-13 17:17:03,373 [DEBUG][       Thread-262223][   transport.py][1871] : === End of kex handshake ===
2025-06-13 17:17:03,389 [DEBUG][       Thread-262223][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 17:17:03,390 [DEBUG][       Thread-262223][   transport.py][1871] : Switch to new keys ...
2025-06-13 17:17:03,390 [DEBUG][       Thread-262223][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 17:17:03,390 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 17:17:03,391 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 17:17:03,431 [DEBUG][       Thread-262223][   transport.py][1871] : userauth is OK
2025-06-13 17:17:03,456 [ INFO][       Thread-262223][   transport.py][1871] : Authentication (password) successful!
2025-06-13 17:17:03,457 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 17:17:04,064 [DEBUG][       Thread-262223][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 17:17:04,065 [DEBUG][       Thread-262223][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 17:17:04,109 [DEBUG][       Thread-262223][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 17:17:04,109 [DEBUG][       Thread-262223][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 17:17:04,113 [DEBUG][       Thread-262223][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 17:17:04,119 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 17:17:04,120 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 17:17:04,122 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 17:17:04,124 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 17:17:04,131 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 17:17:04,134 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 17:17:04,134 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 17:17:04,135 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 17:17:04,135 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.636392 -999.00  +12.80  13.95     36   -1.80 1 1 1 1 1   887    0 14.74 20.56 ----- 13.3 13.9 41.6 18.2 14.5 -29.5 14.2 -29.8 14.3 -29.1 14.7 -28.2
2025-06-13 17:17:04,135 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 17:17:04,135 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 17:17:04,135 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.636392
2025-06-13 17:17:04,136 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 17:17:04,137 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 17:17:04,137 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 17:17:04,137 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 17:17:04,137 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 17:17:04,137 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T17:16:36', tmtdew=16.63, humidity=31.39, cloud=0.0, wind=12.28, temperature=12.95, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T15:16:24.269', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 17:17:04,138 [DEBUG][       Thread-262223][   transport.py][1871] : EOF in transport thread
2025-06-13 17:17:04,221 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 17:17:04,236 [DEBUG][       Thread-262226][   transport.py][1871] : starting thread (client mode): 0x86893be0
2025-06-13 17:17:04,236 [DEBUG][       Thread-262226][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 17:17:04,255 [DEBUG][       Thread-262226][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 17:17:04,255 [ INFO][       Thread-262226][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 17:17:04,262 [DEBUG][       Thread-262226][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 17:17:04,263 [DEBUG][       Thread-262226][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 17:17:04,263 [DEBUG][       Thread-262226][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 17:17:04,263 [DEBUG][       Thread-262226][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:17:04,263 [DEBUG][       Thread-262226][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:17:04,263 [DEBUG][       Thread-262226][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:17:04,263 [DEBUG][       Thread-262226][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:17:04,263 [DEBUG][       Thread-262226][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 17:17:04,263 [DEBUG][       Thread-262226][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 17:17:04,263 [DEBUG][       Thread-262226][   transport.py][1871] : client lang: <none>
2025-06-13 17:17:04,263 [DEBUG][       Thread-262226][   transport.py][1871] : server lang: <none>
2025-06-13 17:17:04,263 [DEBUG][       Thread-262226][   transport.py][1871] : kex follows: False
2025-06-13 17:17:04,263 [DEBUG][       Thread-262226][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 17:17:04,263 [DEBUG][       Thread-262226][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 17:17:04,263 [DEBUG][       Thread-262226][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 17:17:04,264 [DEBUG][       Thread-262226][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 17:17:04,264 [DEBUG][       Thread-262226][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 17:17:04,264 [DEBUG][       Thread-262226][   transport.py][1871] : Compression: none
2025-06-13 17:17:04,264 [DEBUG][       Thread-262226][   transport.py][1871] : === End of kex handshake ===
2025-06-13 17:17:04,320 [DEBUG][       Thread-262226][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 17:17:04,321 [DEBUG][       Thread-262226][   transport.py][1871] : Switch to new keys ...
2025-06-13 17:17:04,322 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 17:17:04,322 [DEBUG][       Thread-262226][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 17:17:04,323 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 17:17:04,376 [DEBUG][       Thread-262226][   transport.py][1871] : userauth is OK
2025-06-13 17:17:04,377 [DEBUG][       Thread-262226][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 17:17:04,377 [DEBUG][       Thread-262226][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 17:17:04,377 [DEBUG][       Thread-262226][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 17:17:04,377 [DEBUG][       Thread-262226][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 17:17:04,396 [ INFO][       Thread-262226][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 17:17:04,396 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 17:17:04,397 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 17:17:05,401 [DEBUG][       Thread-262226][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 17:17:05,401 [DEBUG][       Thread-262226][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 17:17:05,452 [DEBUG][       Thread-262226][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 17:17:05,452 [DEBUG][       Thread-262226][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 17:17:05,462 [DEBUG][       Thread-262226][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 17:17:05,473 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 17:17:05,473 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 17:17:05,482 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 17:17:05,492 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 17:17:05,493 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 17:17:05,493 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 17:17:05,504 [DEBUG][       Thread-262226][   transport.py][1871] : EOF in transport thread
2025-06-13 17:17:09,098 [DEBUG][Thread-262228 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:17:15,502 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 17:17:15,503 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 17:17:15,503 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 17:17:15,505 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 17:17:15,994 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 17, 17, 8), 16.57, 31.52, 0.0, 12.03, 12.96, 0, 0, 0, 2, 0, 0),)
2025-06-13 17:17:15,994 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 17:17:08
2025-06-13 17:17:16,075 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 17:17:16,082 [DEBUG][       Thread-262229][   transport.py][1871] : starting thread (client mode): 0x8636aa10
2025-06-13 17:17:16,082 [DEBUG][       Thread-262229][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 17:17:16,101 [DEBUG][       Thread-262229][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 17:17:16,101 [ INFO][       Thread-262229][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 17:17:16,104 [DEBUG][       Thread-262229][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 17:17:16,104 [DEBUG][       Thread-262229][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 17:17:16,104 [DEBUG][       Thread-262229][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 17:17:16,104 [DEBUG][       Thread-262229][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:17:16,104 [DEBUG][       Thread-262229][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:17:16,104 [DEBUG][       Thread-262229][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:17:16,104 [DEBUG][       Thread-262229][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:17:16,104 [DEBUG][       Thread-262229][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 17:17:16,104 [DEBUG][       Thread-262229][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 17:17:16,104 [DEBUG][       Thread-262229][   transport.py][1871] : client lang: <none>
2025-06-13 17:17:16,104 [DEBUG][       Thread-262229][   transport.py][1871] : server lang: <none>
2025-06-13 17:17:16,104 [DEBUG][       Thread-262229][   transport.py][1871] : kex follows: False
2025-06-13 17:17:16,104 [DEBUG][       Thread-262229][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 17:17:16,104 [DEBUG][       Thread-262229][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 17:17:16,104 [DEBUG][       Thread-262229][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 17:17:16,104 [DEBUG][       Thread-262229][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 17:17:16,104 [DEBUG][       Thread-262229][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 17:17:16,104 [DEBUG][       Thread-262229][   transport.py][1871] : Compression: none
2025-06-13 17:17:16,104 [DEBUG][       Thread-262229][   transport.py][1871] : === End of kex handshake ===
2025-06-13 17:17:16,120 [DEBUG][       Thread-262229][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 17:17:16,121 [DEBUG][       Thread-262229][   transport.py][1871] : Switch to new keys ...
2025-06-13 17:17:16,121 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 17:17:16,122 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 17:17:16,122 [DEBUG][       Thread-262229][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 17:17:16,122 [DEBUG][       Thread-262229][   transport.py][1871] : userauth is OK
2025-06-13 17:17:16,169 [ INFO][       Thread-262229][   transport.py][1871] : Authentication (password) successful!
2025-06-13 17:17:16,170 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 17:17:16,840 [DEBUG][       Thread-262229][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 17:17:16,840 [DEBUG][       Thread-262229][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 17:17:16,881 [DEBUG][       Thread-262229][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 17:17:16,881 [DEBUG][       Thread-262229][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 17:17:16,884 [DEBUG][       Thread-262229][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 17:17:16,899 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 17:17:16,899 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 17:17:16,901 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 17:17:16,903 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 17:17:16,909 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 17:17:16,910 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 17:17:16,911 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 17:17:16,911 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 17:17:16,911 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.636740 -999.00  +12.80  12.84     36   -1.60 1 1 1 1 1   887    0 15.06 21.15 ----- 13.6 12.8 43.2 15.2 14.4 -29.5 14.2 -29.6 14.2 -28.6 14.7 -28.2
2025-06-13 17:17:16,912 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 17:17:16,912 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 17:17:16,912 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.636740
2025-06-13 17:17:16,912 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 17:17:16,913 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 17:17:16,913 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 17:17:16,913 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 17:17:16,913 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 17:17:16,913 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T17:17:08', tmtdew=16.57, humidity=31.52, cloud=0.0, wind=12.03, temperature=12.96, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T15:16:54.336', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 17:17:16,914 [DEBUG][       Thread-262229][   transport.py][1871] : EOF in transport thread
2025-06-13 17:17:17,008 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 17:17:17,022 [DEBUG][       Thread-262232][   transport.py][1871] : starting thread (client mode): 0x863a7f40
2025-06-13 17:17:17,022 [DEBUG][       Thread-262232][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 17:17:17,037 [DEBUG][       Thread-262232][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 17:17:17,038 [ INFO][       Thread-262232][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 17:17:17,049 [DEBUG][       Thread-262232][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 17:17:17,049 [DEBUG][       Thread-262232][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 17:17:17,050 [DEBUG][       Thread-262232][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 17:17:17,050 [DEBUG][       Thread-262232][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:17:17,050 [DEBUG][       Thread-262232][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:17:17,050 [DEBUG][       Thread-262232][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:17:17,050 [DEBUG][       Thread-262232][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:17:17,050 [DEBUG][       Thread-262232][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 17:17:17,050 [DEBUG][       Thread-262232][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 17:17:17,050 [DEBUG][       Thread-262232][   transport.py][1871] : client lang: <none>
2025-06-13 17:17:17,050 [DEBUG][       Thread-262232][   transport.py][1871] : server lang: <none>
2025-06-13 17:17:17,050 [DEBUG][       Thread-262232][   transport.py][1871] : kex follows: False
2025-06-13 17:17:17,050 [DEBUG][       Thread-262232][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 17:17:17,050 [DEBUG][       Thread-262232][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 17:17:17,050 [DEBUG][       Thread-262232][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 17:17:17,050 [DEBUG][       Thread-262232][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 17:17:17,050 [DEBUG][       Thread-262232][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 17:17:17,050 [DEBUG][       Thread-262232][   transport.py][1871] : Compression: none
2025-06-13 17:17:17,050 [DEBUG][       Thread-262232][   transport.py][1871] : === End of kex handshake ===
2025-06-13 17:17:17,111 [DEBUG][       Thread-262232][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 17:17:17,112 [DEBUG][       Thread-262232][   transport.py][1871] : Switch to new keys ...
2025-06-13 17:17:17,113 [DEBUG][       Thread-262232][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 17:17:17,113 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 17:17:17,113 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 17:17:17,172 [DEBUG][       Thread-262232][   transport.py][1871] : userauth is OK
2025-06-13 17:17:17,172 [DEBUG][       Thread-262232][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 17:17:17,173 [DEBUG][       Thread-262232][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 17:17:17,173 [DEBUG][       Thread-262232][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 17:17:17,173 [DEBUG][       Thread-262232][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 17:17:17,209 [ INFO][       Thread-262232][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 17:17:17,209 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 17:17:17,209 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 17:17:18,118 [DEBUG][Thread-262234 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:17:18,237 [DEBUG][       Thread-262232][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 17:17:18,237 [DEBUG][       Thread-262232][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 17:17:18,288 [DEBUG][       Thread-262232][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 17:17:18,288 [DEBUG][       Thread-262232][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 17:17:18,298 [DEBUG][       Thread-262232][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 17:17:18,308 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 17:17:18,308 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 17:17:18,317 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 17:17:18,326 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 17:17:18,327 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 17:17:18,327 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 17:17:18,335 [DEBUG][       Thread-262232][   transport.py][1871] : EOF in transport thread
2025-06-13 17:17:24,828 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:17:24,829 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:17:25,690 [DEBUG][Thread-262235 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:17:27,150 [DEBUG][Thread-262236 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:17:28,337 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 17:17:28,338 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 17:17:28,338 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 17:17:28,339 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 17:17:28,827 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 17, 17, 8), 16.57, 31.52, 0.0, 12.03, 12.96, 0, 0, 0, 2, 0, 0),)
2025-06-13 17:17:28,827 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 17:17:08
2025-06-13 17:17:28,910 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 17:17:28,914 [DEBUG][       Thread-262237][   transport.py][1871] : starting thread (client mode): 0x8636b9a0
2025-06-13 17:17:28,914 [DEBUG][       Thread-262237][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 17:17:28,935 [DEBUG][       Thread-262237][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 17:17:28,935 [ INFO][       Thread-262237][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 17:17:28,939 [DEBUG][       Thread-262237][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 17:17:28,939 [DEBUG][       Thread-262237][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 17:17:28,939 [DEBUG][       Thread-262237][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 17:17:28,939 [DEBUG][       Thread-262237][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:17:28,939 [DEBUG][       Thread-262237][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:17:28,939 [DEBUG][       Thread-262237][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:17:28,939 [DEBUG][       Thread-262237][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:17:28,939 [DEBUG][       Thread-262237][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 17:17:28,939 [DEBUG][       Thread-262237][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 17:17:28,939 [DEBUG][       Thread-262237][   transport.py][1871] : client lang: <none>
2025-06-13 17:17:28,939 [DEBUG][       Thread-262237][   transport.py][1871] : server lang: <none>
2025-06-13 17:17:28,939 [DEBUG][       Thread-262237][   transport.py][1871] : kex follows: False
2025-06-13 17:17:28,939 [DEBUG][       Thread-262237][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 17:17:28,939 [DEBUG][       Thread-262237][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 17:17:28,939 [DEBUG][       Thread-262237][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 17:17:28,939 [DEBUG][       Thread-262237][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 17:17:28,939 [DEBUG][       Thread-262237][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 17:17:28,939 [DEBUG][       Thread-262237][   transport.py][1871] : Compression: none
2025-06-13 17:17:28,939 [DEBUG][       Thread-262237][   transport.py][1871] : === End of kex handshake ===
2025-06-13 17:17:28,953 [DEBUG][       Thread-262237][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 17:17:28,954 [DEBUG][       Thread-262237][   transport.py][1871] : Switch to new keys ...
2025-06-13 17:17:28,954 [DEBUG][       Thread-262237][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 17:17:28,954 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 17:17:28,954 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 17:17:28,954 [DEBUG][       Thread-262237][   transport.py][1871] : userauth is OK
2025-06-13 17:17:28,981 [ INFO][       Thread-262237][   transport.py][1871] : Authentication (password) successful!
2025-06-13 17:17:28,981 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 17:17:29,609 [DEBUG][       Thread-262237][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 17:17:29,609 [DEBUG][       Thread-262237][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 17:17:29,652 [DEBUG][       Thread-262237][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 17:17:29,652 [DEBUG][       Thread-262237][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 17:17:29,655 [DEBUG][       Thread-262237][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 17:17:29,666 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 17:17:29,666 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 17:17:29,668 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 17:17:29,669 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 17:17:29,671 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 17:17:29,672 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 17:17:29,672 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 17:17:29,673 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 17:17:29,673 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.636740 -999.00  +12.80  12.84     36   -1.60 1 1 1 1 1   887    0 15.06 21.15 ----- 13.6 12.8 43.2 15.2 14.4 -29.5 14.2 -29.6 14.2 -28.6 14.7 -28.2
2025-06-13 17:17:29,673 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 17:17:29,673 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 17:17:29,673 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.636740
2025-06-13 17:17:29,673 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 17:17:29,673 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 17:17:29,673 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 17:17:29,673 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 17:17:29,673 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 17:17:29,673 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T17:17:08', tmtdew=16.57, humidity=31.52, cloud=0.0, wind=12.03, temperature=12.96, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T15:16:54.336', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 17:17:29,674 [DEBUG][       Thread-262237][   transport.py][1871] : EOF in transport thread
2025-06-13 17:17:29,746 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 17:17:29,756 [DEBUG][       Thread-262240][   transport.py][1871] : starting thread (client mode): 0x86368340
2025-06-13 17:17:29,756 [DEBUG][       Thread-262240][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 17:17:29,773 [DEBUG][       Thread-262240][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 17:17:29,773 [ INFO][       Thread-262240][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 17:17:29,780 [DEBUG][       Thread-262240][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 17:17:29,780 [DEBUG][       Thread-262240][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 17:17:29,780 [DEBUG][       Thread-262240][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 17:17:29,780 [DEBUG][       Thread-262240][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:17:29,780 [DEBUG][       Thread-262240][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:17:29,780 [DEBUG][       Thread-262240][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:17:29,780 [DEBUG][       Thread-262240][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:17:29,780 [DEBUG][       Thread-262240][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 17:17:29,780 [DEBUG][       Thread-262240][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 17:17:29,780 [DEBUG][       Thread-262240][   transport.py][1871] : client lang: <none>
2025-06-13 17:17:29,780 [DEBUG][       Thread-262240][   transport.py][1871] : server lang: <none>
2025-06-13 17:17:29,780 [DEBUG][       Thread-262240][   transport.py][1871] : kex follows: False
2025-06-13 17:17:29,780 [DEBUG][       Thread-262240][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 17:17:29,780 [DEBUG][       Thread-262240][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 17:17:29,780 [DEBUG][       Thread-262240][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 17:17:29,780 [DEBUG][       Thread-262240][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 17:17:29,780 [DEBUG][       Thread-262240][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 17:17:29,781 [DEBUG][       Thread-262240][   transport.py][1871] : Compression: none
2025-06-13 17:17:29,781 [DEBUG][       Thread-262240][   transport.py][1871] : === End of kex handshake ===
2025-06-13 17:17:29,840 [DEBUG][       Thread-262240][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 17:17:29,840 [DEBUG][       Thread-262240][   transport.py][1871] : Switch to new keys ...
2025-06-13 17:17:29,840 [DEBUG][       Thread-262240][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 17:17:29,840 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 17:17:29,840 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 17:17:29,901 [DEBUG][       Thread-262240][   transport.py][1871] : userauth is OK
2025-06-13 17:17:29,901 [DEBUG][       Thread-262240][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 17:17:29,901 [DEBUG][       Thread-262240][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 17:17:29,901 [DEBUG][       Thread-262240][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 17:17:29,901 [DEBUG][       Thread-262240][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 17:17:29,916 [ INFO][       Thread-262240][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 17:17:29,916 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 17:17:29,916 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 17:17:30,925 [DEBUG][       Thread-262240][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 17:17:30,925 [DEBUG][       Thread-262240][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 17:17:30,976 [DEBUG][       Thread-262240][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 17:17:30,976 [DEBUG][       Thread-262240][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 17:17:30,985 [DEBUG][       Thread-262240][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 17:17:30,994 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 17:17:30,995 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 17:17:31,004 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 17:17:31,013 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 17:17:31,013 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 17:17:31,014 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 17:17:31,024 [DEBUG][       Thread-262240][   transport.py][1871] : EOF in transport thread
2025-06-13 17:17:36,170 [DEBUG][Thread-262242 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:17:41,024 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 17:17:41,024 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 17:17:41,024 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 17:17:41,024 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 17:17:41,531 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 17, 17, 8), 16.57, 31.52, 0.0, 12.03, 12.96, 0, 0, 0, 2, 0, 0),)
2025-06-13 17:17:41,531 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 17:17:08
2025-06-13 17:17:41,615 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 17:17:41,621 [DEBUG][       Thread-262243][   transport.py][1871] : starting thread (client mode): 0x86368b50
2025-06-13 17:17:41,621 [DEBUG][       Thread-262243][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 17:17:41,642 [DEBUG][       Thread-262243][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 17:17:41,642 [ INFO][       Thread-262243][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 17:17:41,645 [DEBUG][       Thread-262243][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 17:17:41,646 [DEBUG][       Thread-262243][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 17:17:41,646 [DEBUG][       Thread-262243][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 17:17:41,646 [DEBUG][       Thread-262243][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:17:41,646 [DEBUG][       Thread-262243][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:17:41,646 [DEBUG][       Thread-262243][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:17:41,646 [DEBUG][       Thread-262243][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:17:41,646 [DEBUG][       Thread-262243][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 17:17:41,646 [DEBUG][       Thread-262243][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 17:17:41,646 [DEBUG][       Thread-262243][   transport.py][1871] : client lang: <none>
2025-06-13 17:17:41,646 [DEBUG][       Thread-262243][   transport.py][1871] : server lang: <none>
2025-06-13 17:17:41,646 [DEBUG][       Thread-262243][   transport.py][1871] : kex follows: False
2025-06-13 17:17:41,646 [DEBUG][       Thread-262243][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 17:17:41,646 [DEBUG][       Thread-262243][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 17:17:41,646 [DEBUG][       Thread-262243][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 17:17:41,646 [DEBUG][       Thread-262243][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 17:17:41,646 [DEBUG][       Thread-262243][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 17:17:41,646 [DEBUG][       Thread-262243][   transport.py][1871] : Compression: none
2025-06-13 17:17:41,646 [DEBUG][       Thread-262243][   transport.py][1871] : === End of kex handshake ===
2025-06-13 17:17:41,659 [DEBUG][       Thread-262243][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 17:17:41,659 [DEBUG][       Thread-262243][   transport.py][1871] : Switch to new keys ...
2025-06-13 17:17:41,659 [DEBUG][       Thread-262243][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 17:17:41,659 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 17:17:41,659 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 17:17:41,660 [DEBUG][       Thread-262243][   transport.py][1871] : userauth is OK
2025-06-13 17:17:41,685 [ INFO][       Thread-262243][   transport.py][1871] : Authentication (password) successful!
2025-06-13 17:17:41,685 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 17:17:42,315 [DEBUG][       Thread-262243][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 17:17:42,315 [DEBUG][       Thread-262243][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 17:17:42,357 [DEBUG][       Thread-262243][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 17:17:42,357 [DEBUG][       Thread-262243][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 17:17:42,359 [DEBUG][       Thread-262243][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 17:17:42,371 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 17:17:42,371 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 17:17:42,373 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 17:17:42,375 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 17:17:42,381 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 17:17:42,382 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 17:17:42,383 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 17:17:42,383 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 17:17:42,384 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.636740 -999.00  +12.80  12.84     36   -1.60 1 1 1 1 1   887    0 15.06 21.15 ----- 13.6 12.8 43.2 15.2 14.4 -29.5 14.2 -29.6 14.2 -28.6 14.7 -28.2
2025-06-13 17:17:42,384 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 17:17:42,384 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 17:17:42,384 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.636740
2025-06-13 17:17:42,384 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 17:17:42,385 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 17:17:42,385 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 17:17:42,385 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 17:17:42,385 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 17:17:42,385 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T17:17:08', tmtdew=16.57, humidity=31.52, cloud=0.0, wind=12.03, temperature=12.96, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T15:16:54.336', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 17:17:42,386 [DEBUG][       Thread-262243][   transport.py][1871] : EOF in transport thread
2025-06-13 17:17:42,471 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 17:17:42,486 [DEBUG][       Thread-262246][   transport.py][1871] : starting thread (client mode): 0x863a43a0
2025-06-13 17:17:42,486 [DEBUG][       Thread-262246][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 17:17:42,501 [DEBUG][       Thread-262246][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 17:17:42,501 [ INFO][       Thread-262246][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 17:17:42,509 [DEBUG][       Thread-262246][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 17:17:42,509 [DEBUG][       Thread-262246][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 17:17:42,509 [DEBUG][       Thread-262246][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 17:17:42,509 [DEBUG][       Thread-262246][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:17:42,509 [DEBUG][       Thread-262246][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:17:42,509 [DEBUG][       Thread-262246][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:17:42,509 [DEBUG][       Thread-262246][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:17:42,509 [DEBUG][       Thread-262246][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 17:17:42,509 [DEBUG][       Thread-262246][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 17:17:42,510 [DEBUG][       Thread-262246][   transport.py][1871] : client lang: <none>
2025-06-13 17:17:42,510 [DEBUG][       Thread-262246][   transport.py][1871] : server lang: <none>
2025-06-13 17:17:42,510 [DEBUG][       Thread-262246][   transport.py][1871] : kex follows: False
2025-06-13 17:17:42,510 [DEBUG][       Thread-262246][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 17:17:42,510 [DEBUG][       Thread-262246][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 17:17:42,510 [DEBUG][       Thread-262246][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 17:17:42,510 [DEBUG][       Thread-262246][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 17:17:42,510 [DEBUG][       Thread-262246][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 17:17:42,510 [DEBUG][       Thread-262246][   transport.py][1871] : Compression: none
2025-06-13 17:17:42,510 [DEBUG][       Thread-262246][   transport.py][1871] : === End of kex handshake ===
2025-06-13 17:17:42,570 [DEBUG][       Thread-262246][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 17:17:42,571 [DEBUG][       Thread-262246][   transport.py][1871] : Switch to new keys ...
2025-06-13 17:17:42,571 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 17:17:42,572 [DEBUG][       Thread-262246][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 17:17:42,573 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 17:17:42,629 [DEBUG][       Thread-262246][   transport.py][1871] : userauth is OK
2025-06-13 17:17:42,629 [DEBUG][       Thread-262246][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 17:17:42,629 [DEBUG][       Thread-262246][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 17:17:42,629 [DEBUG][       Thread-262246][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 17:17:42,629 [DEBUG][       Thread-262246][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 17:17:42,647 [ INFO][       Thread-262246][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 17:17:42,648 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 17:17:42,648 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 17:17:43,623 [DEBUG][       Thread-262246][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 17:17:43,623 [DEBUG][       Thread-262246][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 17:17:43,673 [DEBUG][       Thread-262246][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 17:17:43,673 [DEBUG][       Thread-262246][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 17:17:43,682 [DEBUG][       Thread-262246][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 17:17:43,691 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 17:17:43,691 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 17:17:43,700 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 17:17:43,709 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 17:17:43,709 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 17:17:43,709 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 17:17:43,717 [DEBUG][       Thread-262246][   transport.py][1871] : EOF in transport thread
2025-06-13 17:17:45,193 [DEBUG][Thread-262248 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:17:49,318 [DEBUG][Thread-262249 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:17:50,397 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:17:50,399 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:17:53,720 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 17:17:53,720 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 17:17:53,720 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 17:17:53,723 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 17:17:54,206 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 17, 17, 39), 16.49, 31.56, 0.0, 12.42, 12.95, 0, 0, 0, 2, 0, 0),)
2025-06-13 17:17:54,206 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 17:17:39
2025-06-13 17:17:54,211 [DEBUG][Thread-262250 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:17:54,286 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 17:17:54,290 [DEBUG][       Thread-262251][   transport.py][1871] : starting thread (client mode): 0x86369990
2025-06-13 17:17:54,290 [DEBUG][       Thread-262251][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 17:17:54,311 [DEBUG][       Thread-262251][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 17:17:54,311 [ INFO][       Thread-262251][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 17:17:54,314 [DEBUG][       Thread-262251][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 17:17:54,314 [DEBUG][       Thread-262251][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 17:17:54,315 [DEBUG][       Thread-262251][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 17:17:54,315 [DEBUG][       Thread-262251][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:17:54,315 [DEBUG][       Thread-262251][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:17:54,315 [DEBUG][       Thread-262251][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:17:54,315 [DEBUG][       Thread-262251][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:17:54,315 [DEBUG][       Thread-262251][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 17:17:54,315 [DEBUG][       Thread-262251][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 17:17:54,315 [DEBUG][       Thread-262251][   transport.py][1871] : client lang: <none>
2025-06-13 17:17:54,315 [DEBUG][       Thread-262251][   transport.py][1871] : server lang: <none>
2025-06-13 17:17:54,315 [DEBUG][       Thread-262251][   transport.py][1871] : kex follows: False
2025-06-13 17:17:54,315 [DEBUG][       Thread-262251][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 17:17:54,315 [DEBUG][       Thread-262251][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 17:17:54,315 [DEBUG][       Thread-262251][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 17:17:54,315 [DEBUG][       Thread-262251][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 17:17:54,315 [DEBUG][       Thread-262251][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 17:17:54,315 [DEBUG][       Thread-262251][   transport.py][1871] : Compression: none
2025-06-13 17:17:54,315 [DEBUG][       Thread-262251][   transport.py][1871] : === End of kex handshake ===
2025-06-13 17:17:54,331 [DEBUG][       Thread-262251][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 17:17:54,331 [DEBUG][       Thread-262251][   transport.py][1871] : Switch to new keys ...
2025-06-13 17:17:54,332 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 17:17:54,332 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 17:17:54,333 [DEBUG][       Thread-262251][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 17:17:54,333 [DEBUG][       Thread-262251][   transport.py][1871] : userauth is OK
2025-06-13 17:17:54,358 [ INFO][       Thread-262251][   transport.py][1871] : Authentication (password) successful!
2025-06-13 17:17:54,358 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 17:17:54,993 [DEBUG][       Thread-262251][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 17:17:54,993 [DEBUG][       Thread-262251][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 17:17:55,037 [DEBUG][       Thread-262251][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 17:17:55,037 [DEBUG][       Thread-262251][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 17:17:55,041 [DEBUG][       Thread-262251][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 17:17:55,052 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 17:17:55,052 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 17:17:55,055 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 17:17:55,057 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 17:17:55,063 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 17:17:55,065 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 17:17:55,066 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 17:17:55,066 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 17:17:55,067 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.637087 -999.00  +12.80  16.25     36   -1.80 1 1 1 1 1   887    0 15.13 22.92 ----- 16.2 16.2 49.8 16.9 14.4 -29.5 14.1 -29.7 14.2 -28.5 14.7 -28.2
2025-06-13 17:17:55,067 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 17:17:55,067 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 17:17:55,067 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.637087
2025-06-13 17:17:55,067 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 17:17:55,068 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 17:17:55,068 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 17:17:55,068 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 17:17:55,068 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 17:17:55,068 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T17:17:39', tmtdew=16.49, humidity=31.56, cloud=0.0, wind=12.42, temperature=12.95, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T15:17:24.317', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 17:17:55,069 [DEBUG][       Thread-262251][   transport.py][1871] : EOF in transport thread
2025-06-13 17:17:55,152 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 17:17:55,161 [DEBUG][       Thread-262254][   transport.py][1871] : starting thread (client mode): 0x863be1d0
2025-06-13 17:17:55,161 [DEBUG][       Thread-262254][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 17:17:55,181 [DEBUG][       Thread-262254][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 17:17:55,181 [ INFO][       Thread-262254][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 17:17:55,188 [DEBUG][       Thread-262254][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 17:17:55,189 [DEBUG][       Thread-262254][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 17:17:55,189 [DEBUG][       Thread-262254][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 17:17:55,189 [DEBUG][       Thread-262254][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:17:55,189 [DEBUG][       Thread-262254][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:17:55,189 [DEBUG][       Thread-262254][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:17:55,189 [DEBUG][       Thread-262254][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:17:55,189 [DEBUG][       Thread-262254][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 17:17:55,189 [DEBUG][       Thread-262254][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 17:17:55,189 [DEBUG][       Thread-262254][   transport.py][1871] : client lang: <none>
2025-06-13 17:17:55,189 [DEBUG][       Thread-262254][   transport.py][1871] : server lang: <none>
2025-06-13 17:17:55,189 [DEBUG][       Thread-262254][   transport.py][1871] : kex follows: False
2025-06-13 17:17:55,189 [DEBUG][       Thread-262254][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 17:17:55,189 [DEBUG][       Thread-262254][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 17:17:55,189 [DEBUG][       Thread-262254][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 17:17:55,189 [DEBUG][       Thread-262254][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 17:17:55,190 [DEBUG][       Thread-262254][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 17:17:55,190 [DEBUG][       Thread-262254][   transport.py][1871] : Compression: none
2025-06-13 17:17:55,190 [DEBUG][       Thread-262254][   transport.py][1871] : === End of kex handshake ===
2025-06-13 17:17:55,251 [DEBUG][       Thread-262254][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 17:17:55,252 [DEBUG][       Thread-262254][   transport.py][1871] : Switch to new keys ...
2025-06-13 17:17:55,261 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 17:17:55,262 [DEBUG][       Thread-262254][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 17:17:55,263 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 17:17:55,309 [DEBUG][       Thread-262254][   transport.py][1871] : userauth is OK
2025-06-13 17:17:55,309 [DEBUG][       Thread-262254][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 17:17:55,309 [DEBUG][       Thread-262254][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 17:17:55,309 [DEBUG][       Thread-262254][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 17:17:55,309 [DEBUG][       Thread-262254][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 17:17:55,328 [ INFO][       Thread-262254][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 17:17:55,329 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 17:17:55,329 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 17:17:56,335 [DEBUG][       Thread-262254][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 17:17:56,335 [DEBUG][       Thread-262254][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 17:17:56,384 [DEBUG][       Thread-262254][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 17:17:56,384 [DEBUG][       Thread-262254][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 17:17:56,394 [DEBUG][       Thread-262254][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 17:17:56,403 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 17:17:56,403 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 17:17:56,412 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 17:17:56,421 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 17:17:56,421 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 17:17:56,422 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 17:17:56,430 [DEBUG][       Thread-262254][   transport.py][1871] : EOF in transport thread
2025-06-13 17:18:03,230 [DEBUG][Thread-262256 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:18:06,432 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 17:18:06,432 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 17:18:06,432 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 17:18:06,432 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 17:18:06,906 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 17, 17, 39), 16.49, 31.56, 0.0, 12.42, 12.95, 0, 0, 0, 2, 0, 0),)
2025-06-13 17:18:06,906 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 17:17:39
2025-06-13 17:18:06,987 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 17:18:06,993 [DEBUG][       Thread-262257][   transport.py][1871] : starting thread (client mode): 0x8636af50
2025-06-13 17:18:06,993 [DEBUG][       Thread-262257][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 17:18:07,013 [DEBUG][       Thread-262257][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 17:18:07,013 [ INFO][       Thread-262257][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 17:18:07,015 [DEBUG][       Thread-262257][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 17:18:07,015 [DEBUG][       Thread-262257][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 17:18:07,015 [DEBUG][       Thread-262257][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 17:18:07,015 [DEBUG][       Thread-262257][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:18:07,015 [DEBUG][       Thread-262257][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:18:07,015 [DEBUG][       Thread-262257][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:18:07,015 [DEBUG][       Thread-262257][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:18:07,015 [DEBUG][       Thread-262257][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 17:18:07,015 [DEBUG][       Thread-262257][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 17:18:07,015 [DEBUG][       Thread-262257][   transport.py][1871] : client lang: <none>
2025-06-13 17:18:07,015 [DEBUG][       Thread-262257][   transport.py][1871] : server lang: <none>
2025-06-13 17:18:07,015 [DEBUG][       Thread-262257][   transport.py][1871] : kex follows: False
2025-06-13 17:18:07,015 [DEBUG][       Thread-262257][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 17:18:07,015 [DEBUG][       Thread-262257][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 17:18:07,015 [DEBUG][       Thread-262257][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 17:18:07,015 [DEBUG][       Thread-262257][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 17:18:07,015 [DEBUG][       Thread-262257][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 17:18:07,015 [DEBUG][       Thread-262257][   transport.py][1871] : Compression: none
2025-06-13 17:18:07,015 [DEBUG][       Thread-262257][   transport.py][1871] : === End of kex handshake ===
2025-06-13 17:18:07,023 [DEBUG][       Thread-262257][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 17:18:07,023 [DEBUG][       Thread-262257][   transport.py][1871] : Switch to new keys ...
2025-06-13 17:18:07,023 [DEBUG][       Thread-262257][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 17:18:07,023 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 17:18:07,023 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 17:18:07,023 [DEBUG][       Thread-262257][   transport.py][1871] : userauth is OK
2025-06-13 17:18:07,036 [ INFO][       Thread-262257][   transport.py][1871] : Authentication (password) successful!
2025-06-13 17:18:07,036 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 17:18:07,670 [DEBUG][       Thread-262257][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 17:18:07,670 [DEBUG][       Thread-262257][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 17:18:07,713 [DEBUG][       Thread-262257][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 17:18:07,713 [DEBUG][       Thread-262257][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 17:18:07,715 [DEBUG][       Thread-262257][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 17:18:07,726 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 17:18:07,726 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 17:18:07,727 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 17:18:07,728 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 17:18:07,732 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 17:18:07,733 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 17:18:07,733 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 17:18:07,733 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 17:18:07,733 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.637087 -999.00  +12.80  16.25     36   -1.80 1 1 1 1 1   887    0 15.13 22.92 ----- 16.2 16.2 49.8 16.9 14.4 -29.5 14.1 -29.7 14.2 -28.5 14.7 -28.2
2025-06-13 17:18:07,733 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 17:18:07,733 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 17:18:07,733 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.637087
2025-06-13 17:18:07,733 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 17:18:07,733 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 17:18:07,734 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 17:18:07,734 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 17:18:07,734 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 17:18:07,734 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T17:17:39', tmtdew=16.49, humidity=31.56, cloud=0.0, wind=12.42, temperature=12.95, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T15:17:24.317', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 17:18:07,734 [DEBUG][       Thread-262257][   transport.py][1871] : EOF in transport thread
2025-06-13 17:18:07,808 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 17:18:07,820 [DEBUG][       Thread-262260][   transport.py][1871] : starting thread (client mode): 0x86893df0
2025-06-13 17:18:07,820 [DEBUG][       Thread-262260][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 17:18:07,840 [DEBUG][       Thread-262260][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 17:18:07,840 [ INFO][       Thread-262260][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 17:18:07,848 [DEBUG][       Thread-262260][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 17:18:07,848 [DEBUG][       Thread-262260][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 17:18:07,848 [DEBUG][       Thread-262260][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 17:18:07,848 [DEBUG][       Thread-262260][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:18:07,848 [DEBUG][       Thread-262260][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:18:07,848 [DEBUG][       Thread-262260][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:18:07,848 [DEBUG][       Thread-262260][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:18:07,848 [DEBUG][       Thread-262260][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 17:18:07,848 [DEBUG][       Thread-262260][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 17:18:07,848 [DEBUG][       Thread-262260][   transport.py][1871] : client lang: <none>
2025-06-13 17:18:07,848 [DEBUG][       Thread-262260][   transport.py][1871] : server lang: <none>
2025-06-13 17:18:07,848 [DEBUG][       Thread-262260][   transport.py][1871] : kex follows: False
2025-06-13 17:18:07,848 [DEBUG][       Thread-262260][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 17:18:07,848 [DEBUG][       Thread-262260][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 17:18:07,848 [DEBUG][       Thread-262260][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 17:18:07,848 [DEBUG][       Thread-262260][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 17:18:07,848 [DEBUG][       Thread-262260][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 17:18:07,848 [DEBUG][       Thread-262260][   transport.py][1871] : Compression: none
2025-06-13 17:18:07,848 [DEBUG][       Thread-262260][   transport.py][1871] : === End of kex handshake ===
2025-06-13 17:18:07,907 [DEBUG][       Thread-262260][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 17:18:07,907 [DEBUG][       Thread-262260][   transport.py][1871] : Switch to new keys ...
2025-06-13 17:18:07,907 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 17:18:07,907 [DEBUG][       Thread-262260][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 17:18:07,907 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 17:18:07,965 [DEBUG][       Thread-262260][   transport.py][1871] : userauth is OK
2025-06-13 17:18:07,965 [DEBUG][       Thread-262260][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 17:18:07,965 [DEBUG][       Thread-262260][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 17:18:07,965 [DEBUG][       Thread-262260][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 17:18:07,965 [DEBUG][       Thread-262260][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 17:18:07,981 [ INFO][       Thread-262260][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 17:18:07,981 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 17:18:07,981 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 17:18:08,959 [DEBUG][       Thread-262260][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 17:18:08,959 [DEBUG][       Thread-262260][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 17:18:09,008 [DEBUG][       Thread-262260][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 17:18:09,008 [DEBUG][       Thread-262260][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 17:18:09,017 [DEBUG][       Thread-262260][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 17:18:09,026 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 17:18:09,026 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 17:18:09,035 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 17:18:09,044 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 17:18:09,045 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 17:18:09,045 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 17:18:09,053 [DEBUG][       Thread-262260][   transport.py][1871] : EOF in transport thread
2025-06-13 17:18:12,272 [DEBUG][Thread-262262 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:18:19,052 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 17:18:19,052 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 17:18:19,052 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 17:18:19,055 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 17:18:19,525 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 17, 18, 11), 16.54, 31.46, 0.0, 15.56, 12.93, 0, 0, 0, 2, 0, 0),)
2025-06-13 17:18:19,525 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 17:18:11
2025-06-13 17:18:19,605 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 17:18:19,611 [DEBUG][       Thread-262263][   transport.py][1871] : starting thread (client mode): 0x863ca920
2025-06-13 17:18:19,611 [DEBUG][       Thread-262263][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 17:18:19,631 [DEBUG][       Thread-262263][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 17:18:19,631 [ INFO][       Thread-262263][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 17:18:19,635 [DEBUG][       Thread-262263][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 17:18:19,635 [DEBUG][       Thread-262263][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 17:18:19,635 [DEBUG][       Thread-262263][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 17:18:19,635 [DEBUG][       Thread-262263][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:18:19,635 [DEBUG][       Thread-262263][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:18:19,635 [DEBUG][       Thread-262263][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:18:19,635 [DEBUG][       Thread-262263][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:18:19,635 [DEBUG][       Thread-262263][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 17:18:19,635 [DEBUG][       Thread-262263][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 17:18:19,635 [DEBUG][       Thread-262263][   transport.py][1871] : client lang: <none>
2025-06-13 17:18:19,635 [DEBUG][       Thread-262263][   transport.py][1871] : server lang: <none>
2025-06-13 17:18:19,635 [DEBUG][       Thread-262263][   transport.py][1871] : kex follows: False
2025-06-13 17:18:19,635 [DEBUG][       Thread-262263][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 17:18:19,635 [DEBUG][       Thread-262263][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 17:18:19,635 [DEBUG][       Thread-262263][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 17:18:19,636 [DEBUG][       Thread-262263][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 17:18:19,636 [DEBUG][       Thread-262263][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 17:18:19,636 [DEBUG][       Thread-262263][   transport.py][1871] : Compression: none
2025-06-13 17:18:19,636 [DEBUG][       Thread-262263][   transport.py][1871] : === End of kex handshake ===
2025-06-13 17:18:19,653 [DEBUG][       Thread-262263][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 17:18:19,654 [DEBUG][       Thread-262263][   transport.py][1871] : Switch to new keys ...
2025-06-13 17:18:19,654 [DEBUG][       Thread-262263][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 17:18:19,655 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 17:18:19,655 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 17:18:19,656 [DEBUG][       Thread-262263][   transport.py][1871] : userauth is OK
2025-06-13 17:18:19,670 [ INFO][       Thread-262263][   transport.py][1871] : Authentication (password) successful!
2025-06-13 17:18:19,670 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 17:18:20,316 [DEBUG][       Thread-262263][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 17:18:20,316 [DEBUG][       Thread-262263][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 17:18:20,361 [DEBUG][       Thread-262263][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 17:18:20,361 [DEBUG][       Thread-262263][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 17:18:20,364 [DEBUG][       Thread-262263][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 17:18:20,376 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 17:18:20,376 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 17:18:20,377 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 17:18:20,379 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 17:18:20,383 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 17:18:20,385 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 17:18:20,385 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 17:18:20,386 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 17:18:20,386 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.637434 -999.00  +12.80  13.98     36   -1.70 1 1 1 1 1   887    0 15.29 25.64 ----- 13.7 14.0 43.2 16.2 14.4 -29.6 14.1 -29.8 14.2 -28.7 14.7 -28.1
2025-06-13 17:18:20,386 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 17:18:20,386 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 17:18:20,386 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.637434
2025-06-13 17:18:20,387 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 17:18:20,387 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 17:18:20,387 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 17:18:20,387 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 17:18:20,387 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 17:18:20,387 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T17:18:11', tmtdew=16.54, humidity=31.46, cloud=0.0, wind=15.56, temperature=12.93, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T15:17:54.298', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 17:18:20,388 [DEBUG][       Thread-262263][   transport.py][1871] : EOF in transport thread
2025-06-13 17:18:20,483 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 17:18:20,495 [DEBUG][       Thread-262266][   transport.py][1871] : starting thread (client mode): 0x863a5600
2025-06-13 17:18:20,495 [DEBUG][       Thread-262266][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 17:18:20,509 [DEBUG][       Thread-262266][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 17:18:20,510 [ INFO][       Thread-262266][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 17:18:20,520 [DEBUG][       Thread-262266][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 17:18:20,520 [DEBUG][       Thread-262266][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 17:18:20,520 [DEBUG][       Thread-262266][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 17:18:20,520 [DEBUG][       Thread-262266][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:18:20,520 [DEBUG][       Thread-262266][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:18:20,520 [DEBUG][       Thread-262266][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:18:20,520 [DEBUG][       Thread-262266][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:18:20,520 [DEBUG][       Thread-262266][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 17:18:20,520 [DEBUG][       Thread-262266][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 17:18:20,520 [DEBUG][       Thread-262266][   transport.py][1871] : client lang: <none>
2025-06-13 17:18:20,521 [DEBUG][       Thread-262266][   transport.py][1871] : server lang: <none>
2025-06-13 17:18:20,521 [DEBUG][       Thread-262266][   transport.py][1871] : kex follows: False
2025-06-13 17:18:20,521 [DEBUG][       Thread-262266][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 17:18:20,521 [DEBUG][       Thread-262266][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 17:18:20,521 [DEBUG][       Thread-262266][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 17:18:20,521 [DEBUG][       Thread-262266][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 17:18:20,521 [DEBUG][       Thread-262266][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 17:18:20,521 [DEBUG][       Thread-262266][   transport.py][1871] : Compression: none
2025-06-13 17:18:20,521 [DEBUG][       Thread-262266][   transport.py][1871] : === End of kex handshake ===
2025-06-13 17:18:20,580 [DEBUG][       Thread-262266][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 17:18:20,580 [DEBUG][       Thread-262266][   transport.py][1871] : Switch to new keys ...
2025-06-13 17:18:20,581 [DEBUG][       Thread-262266][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 17:18:20,581 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 17:18:20,581 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 17:18:20,636 [DEBUG][       Thread-262266][   transport.py][1871] : userauth is OK
2025-06-13 17:18:20,636 [DEBUG][       Thread-262266][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 17:18:20,636 [DEBUG][       Thread-262266][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 17:18:20,637 [DEBUG][       Thread-262266][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 17:18:20,637 [DEBUG][       Thread-262266][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 17:18:20,654 [ INFO][       Thread-262266][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 17:18:20,655 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 17:18:20,655 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 17:18:21,288 [DEBUG][Thread-262268 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:18:21,663 [DEBUG][       Thread-262266][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 17:18:21,663 [DEBUG][       Thread-262266][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 17:18:21,714 [DEBUG][       Thread-262266][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 17:18:21,714 [DEBUG][       Thread-262266][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 17:18:21,723 [DEBUG][       Thread-262266][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 17:18:21,733 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 17:18:21,733 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 17:18:21,742 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 17:18:21,751 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 17:18:21,751 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 17:18:21,752 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 17:18:21,760 [DEBUG][       Thread-262266][   transport.py][1871] : EOF in transport thread
2025-06-13 17:18:24,969 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:18:24,971 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:18:25,742 [DEBUG][Thread-262269 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:18:30,321 [DEBUG][Thread-262270 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:18:31,760 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 17:18:31,760 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 17:18:31,760 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 17:18:31,763 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 17:18:32,238 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 17, 18, 11), 16.54, 31.46, 0.0, 15.56, 12.93, 0, 0, 0, 2, 0, 0),)
2025-06-13 17:18:32,238 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 17:18:11
2025-06-13 17:18:32,319 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 17:18:32,323 [DEBUG][       Thread-262271][   transport.py][1871] : starting thread (client mode): 0x86351e40
2025-06-13 17:18:32,323 [DEBUG][       Thread-262271][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 17:18:32,343 [DEBUG][       Thread-262271][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 17:18:32,343 [ INFO][       Thread-262271][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 17:18:32,345 [DEBUG][       Thread-262271][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 17:18:32,345 [DEBUG][       Thread-262271][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 17:18:32,345 [DEBUG][       Thread-262271][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 17:18:32,345 [DEBUG][       Thread-262271][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:18:32,345 [DEBUG][       Thread-262271][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:18:32,345 [DEBUG][       Thread-262271][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:18:32,345 [DEBUG][       Thread-262271][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:18:32,345 [DEBUG][       Thread-262271][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 17:18:32,345 [DEBUG][       Thread-262271][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 17:18:32,345 [DEBUG][       Thread-262271][   transport.py][1871] : client lang: <none>
2025-06-13 17:18:32,345 [DEBUG][       Thread-262271][   transport.py][1871] : server lang: <none>
2025-06-13 17:18:32,345 [DEBUG][       Thread-262271][   transport.py][1871] : kex follows: False
2025-06-13 17:18:32,345 [DEBUG][       Thread-262271][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 17:18:32,345 [DEBUG][       Thread-262271][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 17:18:32,345 [DEBUG][       Thread-262271][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 17:18:32,346 [DEBUG][       Thread-262271][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 17:18:32,346 [DEBUG][       Thread-262271][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 17:18:32,346 [DEBUG][       Thread-262271][   transport.py][1871] : Compression: none
2025-06-13 17:18:32,346 [DEBUG][       Thread-262271][   transport.py][1871] : === End of kex handshake ===
2025-06-13 17:18:32,364 [DEBUG][       Thread-262271][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 17:18:32,365 [DEBUG][       Thread-262271][   transport.py][1871] : Switch to new keys ...
2025-06-13 17:18:32,365 [DEBUG][       Thread-262271][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 17:18:32,365 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 17:18:32,365 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 17:18:32,366 [DEBUG][       Thread-262271][   transport.py][1871] : userauth is OK
2025-06-13 17:18:32,379 [ INFO][       Thread-262271][   transport.py][1871] : Authentication (password) successful!
2025-06-13 17:18:32,380 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 17:18:33,021 [DEBUG][       Thread-262271][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 17:18:33,021 [DEBUG][       Thread-262271][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 17:18:33,065 [DEBUG][       Thread-262271][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 17:18:33,065 [DEBUG][       Thread-262271][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 17:18:33,068 [DEBUG][       Thread-262271][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 17:18:33,080 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 17:18:33,080 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 17:18:33,082 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 17:18:33,084 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 17:18:33,089 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 17:18:33,091 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 17:18:33,091 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 17:18:33,092 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 17:18:33,092 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.637434 -999.00  +12.80  13.98     36   -1.70 1 1 1 1 1   887    0 15.29 25.64 ----- 13.7 14.0 43.2 16.2 14.4 -29.6 14.1 -29.8 14.2 -28.7 14.7 -28.1
2025-06-13 17:18:33,092 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 17:18:33,092 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 17:18:33,092 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.637434
2025-06-13 17:18:33,093 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 17:18:33,093 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 17:18:33,094 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 17:18:33,094 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 17:18:33,094 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 17:18:33,094 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T17:18:11', tmtdew=16.54, humidity=31.46, cloud=0.0, wind=15.56, temperature=12.93, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T15:17:54.298', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 17:18:33,094 [DEBUG][       Thread-262271][   transport.py][1871] : EOF in transport thread
2025-06-13 17:18:33,178 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 17:18:33,188 [DEBUG][       Thread-262274][   transport.py][1871] : starting thread (client mode): 0x867ff250
2025-06-13 17:18:33,188 [DEBUG][       Thread-262274][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 17:18:33,203 [DEBUG][       Thread-262274][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 17:18:33,203 [ INFO][       Thread-262274][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 17:18:33,210 [DEBUG][       Thread-262274][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 17:18:33,210 [DEBUG][       Thread-262274][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 17:18:33,211 [DEBUG][       Thread-262274][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 17:18:33,211 [DEBUG][       Thread-262274][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:18:33,211 [DEBUG][       Thread-262274][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:18:33,211 [DEBUG][       Thread-262274][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:18:33,211 [DEBUG][       Thread-262274][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:18:33,211 [DEBUG][       Thread-262274][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 17:18:33,211 [DEBUG][       Thread-262274][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 17:18:33,211 [DEBUG][       Thread-262274][   transport.py][1871] : client lang: <none>
2025-06-13 17:18:33,211 [DEBUG][       Thread-262274][   transport.py][1871] : server lang: <none>
2025-06-13 17:18:33,211 [DEBUG][       Thread-262274][   transport.py][1871] : kex follows: False
2025-06-13 17:18:33,211 [DEBUG][       Thread-262274][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 17:18:33,211 [DEBUG][       Thread-262274][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 17:18:33,211 [DEBUG][       Thread-262274][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 17:18:33,211 [DEBUG][       Thread-262274][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 17:18:33,211 [DEBUG][       Thread-262274][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 17:18:33,211 [DEBUG][       Thread-262274][   transport.py][1871] : Compression: none
2025-06-13 17:18:33,211 [DEBUG][       Thread-262274][   transport.py][1871] : === End of kex handshake ===
2025-06-13 17:18:33,269 [DEBUG][       Thread-262274][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 17:18:33,270 [DEBUG][       Thread-262274][   transport.py][1871] : Switch to new keys ...
2025-06-13 17:18:33,270 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 17:18:33,271 [DEBUG][       Thread-262274][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 17:18:33,272 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 17:18:33,329 [DEBUG][       Thread-262274][   transport.py][1871] : userauth is OK
2025-06-13 17:18:33,329 [DEBUG][       Thread-262274][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 17:18:33,329 [DEBUG][       Thread-262274][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 17:18:33,329 [DEBUG][       Thread-262274][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 17:18:33,329 [DEBUG][       Thread-262274][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 17:18:33,346 [ INFO][       Thread-262274][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 17:18:33,346 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 17:18:33,346 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 17:18:34,334 [DEBUG][       Thread-262274][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 17:18:34,334 [DEBUG][       Thread-262274][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 17:18:34,384 [DEBUG][       Thread-262274][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 17:18:34,384 [DEBUG][       Thread-262274][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 17:18:34,393 [DEBUG][       Thread-262274][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 17:18:34,403 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 17:18:34,403 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 17:18:34,411 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 17:18:34,421 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 17:18:34,421 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 17:18:34,422 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 17:18:34,430 [DEBUG][       Thread-262274][   transport.py][1871] : EOF in transport thread
2025-06-13 17:18:39,343 [DEBUG][Thread-262276 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:18:44,432 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 17:18:44,432 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 17:18:44,432 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 17:18:44,433 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 17:18:44,929 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 17, 18, 11), 16.54, 31.46, 0.0, 15.56, 12.93, 0, 0, 0, 2, 0, 0),)
2025-06-13 17:18:44,930 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 17:18:11
2025-06-13 17:18:45,015 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 17:18:45,020 [DEBUG][       Thread-262277][   transport.py][1871] : starting thread (client mode): 0x867fed10
2025-06-13 17:18:45,020 [DEBUG][       Thread-262277][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 17:18:45,040 [DEBUG][       Thread-262277][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 17:18:45,040 [ INFO][       Thread-262277][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 17:18:45,043 [DEBUG][       Thread-262277][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 17:18:45,043 [DEBUG][       Thread-262277][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 17:18:45,043 [DEBUG][       Thread-262277][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 17:18:45,043 [DEBUG][       Thread-262277][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:18:45,043 [DEBUG][       Thread-262277][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:18:45,043 [DEBUG][       Thread-262277][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:18:45,043 [DEBUG][       Thread-262277][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:18:45,043 [DEBUG][       Thread-262277][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 17:18:45,043 [DEBUG][       Thread-262277][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 17:18:45,043 [DEBUG][       Thread-262277][   transport.py][1871] : client lang: <none>
2025-06-13 17:18:45,043 [DEBUG][       Thread-262277][   transport.py][1871] : server lang: <none>
2025-06-13 17:18:45,043 [DEBUG][       Thread-262277][   transport.py][1871] : kex follows: False
2025-06-13 17:18:45,043 [DEBUG][       Thread-262277][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 17:18:45,043 [DEBUG][       Thread-262277][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 17:18:45,043 [DEBUG][       Thread-262277][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 17:18:45,043 [DEBUG][       Thread-262277][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 17:18:45,043 [DEBUG][       Thread-262277][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 17:18:45,043 [DEBUG][       Thread-262277][   transport.py][1871] : Compression: none
2025-06-13 17:18:45,043 [DEBUG][       Thread-262277][   transport.py][1871] : === End of kex handshake ===
2025-06-13 17:18:45,057 [DEBUG][       Thread-262277][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 17:18:45,058 [DEBUG][       Thread-262277][   transport.py][1871] : Switch to new keys ...
2025-06-13 17:18:45,058 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 17:18:45,058 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 17:18:45,058 [DEBUG][       Thread-262277][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 17:18:45,058 [DEBUG][       Thread-262277][   transport.py][1871] : userauth is OK
2025-06-13 17:18:45,071 [ INFO][       Thread-262277][   transport.py][1871] : Authentication (password) successful!
2025-06-13 17:18:45,071 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 17:18:45,677 [DEBUG][       Thread-262277][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 17:18:45,677 [DEBUG][       Thread-262277][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 17:18:45,720 [DEBUG][       Thread-262277][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 17:18:45,721 [DEBUG][       Thread-262277][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 17:18:45,723 [DEBUG][       Thread-262277][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 17:18:45,736 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 17:18:45,737 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 17:18:45,738 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 17:18:45,739 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 17:18:45,742 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 17:18:45,743 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 17:18:45,743 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 17:18:45,743 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 17:18:45,743 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.637434 -999.00  +12.80  13.98     36   -1.70 1 1 1 1 1   887    0 15.29 25.64 ----- 13.7 14.0 43.2 16.2 14.4 -29.6 14.1 -29.8 14.2 -28.7 14.7 -28.1
2025-06-13 17:18:45,743 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 17:18:45,743 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 17:18:45,743 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.637434
2025-06-13 17:18:45,744 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 17:18:45,744 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 17:18:45,744 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 17:18:45,744 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 17:18:45,744 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 17:18:45,744 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T17:18:11', tmtdew=16.54, humidity=31.46, cloud=0.0, wind=15.56, temperature=12.93, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T15:17:54.298', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 17:18:45,744 [DEBUG][       Thread-262277][   transport.py][1871] : EOF in transport thread
2025-06-13 17:18:45,817 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 17:18:45,828 [DEBUG][       Thread-262280][   transport.py][1871] : starting thread (client mode): 0x86390ac0
2025-06-13 17:18:45,828 [DEBUG][       Thread-262280][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 17:18:45,843 [DEBUG][       Thread-262280][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 17:18:45,843 [ INFO][       Thread-262280][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 17:18:45,851 [DEBUG][       Thread-262280][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 17:18:45,851 [DEBUG][       Thread-262280][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 17:18:45,851 [DEBUG][       Thread-262280][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 17:18:45,851 [DEBUG][       Thread-262280][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:18:45,851 [DEBUG][       Thread-262280][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:18:45,851 [DEBUG][       Thread-262280][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:18:45,851 [DEBUG][       Thread-262280][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:18:45,851 [DEBUG][       Thread-262280][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 17:18:45,851 [DEBUG][       Thread-262280][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 17:18:45,851 [DEBUG][       Thread-262280][   transport.py][1871] : client lang: <none>
2025-06-13 17:18:45,851 [DEBUG][       Thread-262280][   transport.py][1871] : server lang: <none>
2025-06-13 17:18:45,851 [DEBUG][       Thread-262280][   transport.py][1871] : kex follows: False
2025-06-13 17:18:45,851 [DEBUG][       Thread-262280][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 17:18:45,851 [DEBUG][       Thread-262280][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 17:18:45,851 [DEBUG][       Thread-262280][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 17:18:45,851 [DEBUG][       Thread-262280][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 17:18:45,851 [DEBUG][       Thread-262280][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 17:18:45,851 [DEBUG][       Thread-262280][   transport.py][1871] : Compression: none
2025-06-13 17:18:45,851 [DEBUG][       Thread-262280][   transport.py][1871] : === End of kex handshake ===
2025-06-13 17:18:45,909 [DEBUG][       Thread-262280][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 17:18:45,909 [DEBUG][       Thread-262280][   transport.py][1871] : Switch to new keys ...
2025-06-13 17:18:45,909 [DEBUG][       Thread-262280][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 17:18:45,909 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 17:18:45,909 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 17:18:45,964 [DEBUG][       Thread-262280][   transport.py][1871] : userauth is OK
2025-06-13 17:18:45,964 [DEBUG][       Thread-262280][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 17:18:45,964 [DEBUG][       Thread-262280][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 17:18:45,964 [DEBUG][       Thread-262280][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 17:18:45,964 [DEBUG][       Thread-262280][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 17:18:45,978 [ INFO][       Thread-262280][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 17:18:45,978 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 17:18:45,978 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 17:18:46,980 [DEBUG][       Thread-262280][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 17:18:46,980 [DEBUG][       Thread-262280][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 17:18:47,028 [DEBUG][       Thread-262280][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 17:18:47,028 [DEBUG][       Thread-262280][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 17:18:47,038 [DEBUG][       Thread-262280][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 17:18:47,046 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 17:18:47,046 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 17:18:47,054 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 17:18:47,065 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 17:18:47,065 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 17:18:47,066 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 17:18:47,073 [DEBUG][       Thread-262280][   transport.py][1871] : EOF in transport thread
2025-06-13 17:18:48,363 [DEBUG][Thread-262282 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:18:50,454 [DEBUG][Thread-262283 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:18:51,536 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:18:51,538 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:18:57,076 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 17:18:57,076 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 17:18:57,076 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 17:18:57,079 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 17:18:57,386 [DEBUG][Thread-262284 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:18:57,542 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 17, 18, 43), 16.55, 31.42, 0.0, 13.87, 12.93, 0, 0, 0, 2, 0, 0),)
2025-06-13 17:18:57,542 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 17:18:43
2025-06-13 17:18:57,619 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 17:18:57,623 [DEBUG][       Thread-262285][   transport.py][1871] : starting thread (client mode): 0x867fe9b0
2025-06-13 17:18:57,623 [DEBUG][       Thread-262285][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 17:18:57,644 [DEBUG][       Thread-262285][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 17:18:57,644 [ INFO][       Thread-262285][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 17:18:57,648 [DEBUG][       Thread-262285][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 17:18:57,648 [DEBUG][       Thread-262285][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 17:18:57,648 [DEBUG][       Thread-262285][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 17:18:57,648 [DEBUG][       Thread-262285][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:18:57,648 [DEBUG][       Thread-262285][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:18:57,648 [DEBUG][       Thread-262285][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:18:57,648 [DEBUG][       Thread-262285][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:18:57,648 [DEBUG][       Thread-262285][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 17:18:57,648 [DEBUG][       Thread-262285][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 17:18:57,648 [DEBUG][       Thread-262285][   transport.py][1871] : client lang: <none>
2025-06-13 17:18:57,648 [DEBUG][       Thread-262285][   transport.py][1871] : server lang: <none>
2025-06-13 17:18:57,648 [DEBUG][       Thread-262285][   transport.py][1871] : kex follows: False
2025-06-13 17:18:57,648 [DEBUG][       Thread-262285][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 17:18:57,648 [DEBUG][       Thread-262285][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 17:18:57,648 [DEBUG][       Thread-262285][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 17:18:57,648 [DEBUG][       Thread-262285][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 17:18:57,648 [DEBUG][       Thread-262285][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 17:18:57,648 [DEBUG][       Thread-262285][   transport.py][1871] : Compression: none
2025-06-13 17:18:57,648 [DEBUG][       Thread-262285][   transport.py][1871] : === End of kex handshake ===
2025-06-13 17:18:57,666 [DEBUG][       Thread-262285][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 17:18:57,666 [DEBUG][       Thread-262285][   transport.py][1871] : Switch to new keys ...
2025-06-13 17:18:57,667 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 17:18:57,667 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 17:18:57,667 [DEBUG][       Thread-262285][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 17:18:57,668 [DEBUG][       Thread-262285][   transport.py][1871] : userauth is OK
2025-06-13 17:18:57,696 [ INFO][       Thread-262285][   transport.py][1871] : Authentication (password) successful!
2025-06-13 17:18:57,696 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 17:18:58,346 [DEBUG][       Thread-262285][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 17:18:58,346 [DEBUG][       Thread-262285][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 17:18:58,389 [DEBUG][       Thread-262285][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 17:18:58,389 [DEBUG][       Thread-262285][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 17:18:58,392 [DEBUG][       Thread-262285][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 17:18:58,403 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 17:18:58,404 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 17:18:58,406 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 17:18:58,407 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 17:18:58,413 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 17:18:58,415 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 17:18:58,415 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 17:18:58,416 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 17:18:58,416 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.637781 -999.00  +12.80  14.95     36   -1.70 1 1 1 1 1   887    0 15.21 24.03 ----- 14.7 14.9 48.8 16.7 14.4 -29.5 14.1 -29.7 14.2 -28.5 14.7 -28.0
2025-06-13 17:18:58,416 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 17:18:58,416 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 17:18:58,416 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.637781
2025-06-13 17:18:58,417 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 17:18:58,417 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 17:18:58,417 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 17:18:58,417 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 17:18:58,417 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 17:18:58,417 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T17:18:43', tmtdew=16.55, humidity=31.42, cloud=0.0, wind=13.87, temperature=12.93, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T15:18:24.278', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 17:18:58,418 [DEBUG][       Thread-262285][   transport.py][1871] : EOF in transport thread
2025-06-13 17:18:58,502 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 17:18:58,511 [DEBUG][       Thread-262288][   transport.py][1871] : starting thread (client mode): 0x86893a60
2025-06-13 17:18:58,511 [DEBUG][       Thread-262288][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 17:18:58,536 [DEBUG][       Thread-262288][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 17:18:58,537 [ INFO][       Thread-262288][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 17:18:58,544 [DEBUG][       Thread-262288][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 17:18:58,544 [DEBUG][       Thread-262288][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 17:18:58,544 [DEBUG][       Thread-262288][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 17:18:58,544 [DEBUG][       Thread-262288][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:18:58,544 [DEBUG][       Thread-262288][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:18:58,544 [DEBUG][       Thread-262288][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:18:58,545 [DEBUG][       Thread-262288][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:18:58,545 [DEBUG][       Thread-262288][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 17:18:58,545 [DEBUG][       Thread-262288][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 17:18:58,545 [DEBUG][       Thread-262288][   transport.py][1871] : client lang: <none>
2025-06-13 17:18:58,545 [DEBUG][       Thread-262288][   transport.py][1871] : server lang: <none>
2025-06-13 17:18:58,545 [DEBUG][       Thread-262288][   transport.py][1871] : kex follows: False
2025-06-13 17:18:58,545 [DEBUG][       Thread-262288][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 17:18:58,545 [DEBUG][       Thread-262288][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 17:18:58,545 [DEBUG][       Thread-262288][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 17:18:58,545 [DEBUG][       Thread-262288][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 17:18:58,545 [DEBUG][       Thread-262288][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 17:18:58,545 [DEBUG][       Thread-262288][   transport.py][1871] : Compression: none
2025-06-13 17:18:58,545 [DEBUG][       Thread-262288][   transport.py][1871] : === End of kex handshake ===
2025-06-13 17:18:58,605 [DEBUG][       Thread-262288][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 17:18:58,605 [DEBUG][       Thread-262288][   transport.py][1871] : Switch to new keys ...
2025-06-13 17:18:58,606 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 17:18:58,606 [DEBUG][       Thread-262288][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 17:18:58,607 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 17:18:58,660 [DEBUG][       Thread-262288][   transport.py][1871] : userauth is OK
2025-06-13 17:18:58,661 [DEBUG][       Thread-262288][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 17:18:58,661 [DEBUG][       Thread-262288][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 17:18:58,661 [DEBUG][       Thread-262288][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 17:18:58,661 [DEBUG][       Thread-262288][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 17:18:58,680 [ INFO][       Thread-262288][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 17:18:58,680 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 17:18:58,681 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 17:18:59,665 [DEBUG][       Thread-262288][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 17:18:59,665 [DEBUG][       Thread-262288][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 17:18:59,716 [DEBUG][       Thread-262288][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 17:18:59,716 [DEBUG][       Thread-262288][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 17:18:59,726 [DEBUG][       Thread-262288][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 17:18:59,735 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 17:18:59,735 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 17:18:59,744 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 17:18:59,754 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 17:18:59,754 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 17:18:59,754 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 17:18:59,763 [DEBUG][       Thread-262288][   transport.py][1871] : EOF in transport thread
2025-06-13 17:19:06,406 [DEBUG][Thread-262290 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:19:09,765 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 17:19:09,765 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 17:19:09,765 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 17:19:09,768 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 17:19:10,229 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 17, 18, 43), 16.55, 31.42, 0.0, 13.87, 12.93, 0, 0, 0, 2, 0, 0),)
2025-06-13 17:19:10,229 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 17:18:43
2025-06-13 17:19:10,307 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 17:19:10,313 [DEBUG][       Thread-262291][   transport.py][1871] : starting thread (client mode): 0x867fcf70
2025-06-13 17:19:10,313 [DEBUG][       Thread-262291][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 17:19:10,332 [DEBUG][       Thread-262291][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 17:19:10,332 [ INFO][       Thread-262291][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 17:19:10,336 [DEBUG][       Thread-262291][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 17:19:10,336 [DEBUG][       Thread-262291][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 17:19:10,336 [DEBUG][       Thread-262291][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 17:19:10,336 [DEBUG][       Thread-262291][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:19:10,336 [DEBUG][       Thread-262291][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:19:10,336 [DEBUG][       Thread-262291][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:19:10,336 [DEBUG][       Thread-262291][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:19:10,336 [DEBUG][       Thread-262291][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 17:19:10,336 [DEBUG][       Thread-262291][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 17:19:10,336 [DEBUG][       Thread-262291][   transport.py][1871] : client lang: <none>
2025-06-13 17:19:10,336 [DEBUG][       Thread-262291][   transport.py][1871] : server lang: <none>
2025-06-13 17:19:10,336 [DEBUG][       Thread-262291][   transport.py][1871] : kex follows: False
2025-06-13 17:19:10,336 [DEBUG][       Thread-262291][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 17:19:10,336 [DEBUG][       Thread-262291][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 17:19:10,336 [DEBUG][       Thread-262291][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 17:19:10,336 [DEBUG][       Thread-262291][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 17:19:10,337 [DEBUG][       Thread-262291][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 17:19:10,337 [DEBUG][       Thread-262291][   transport.py][1871] : Compression: none
2025-06-13 17:19:10,337 [DEBUG][       Thread-262291][   transport.py][1871] : === End of kex handshake ===
2025-06-13 17:19:10,353 [DEBUG][       Thread-262291][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 17:19:10,353 [DEBUG][       Thread-262291][   transport.py][1871] : Switch to new keys ...
2025-06-13 17:19:10,354 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 17:19:10,354 [DEBUG][       Thread-262291][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 17:19:10,354 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 17:19:10,356 [DEBUG][       Thread-262291][   transport.py][1871] : userauth is OK
2025-06-13 17:19:10,380 [ INFO][       Thread-262291][   transport.py][1871] : Authentication (password) successful!
2025-06-13 17:19:10,381 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 17:19:10,976 [DEBUG][       Thread-262291][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 17:19:10,977 [DEBUG][       Thread-262291][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 17:19:11,021 [DEBUG][       Thread-262291][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 17:19:11,021 [DEBUG][       Thread-262291][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 17:19:11,025 [DEBUG][       Thread-262291][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 17:19:11,037 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 17:19:11,037 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 17:19:11,039 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 17:19:11,042 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 17:19:11,048 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 17:19:11,050 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 17:19:11,050 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 17:19:11,051 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 17:19:11,051 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.637781 -999.00  +12.80  14.95     36   -1.70 1 1 1 1 1   887    0 15.21 24.03 ----- 14.7 14.9 48.8 16.7 14.4 -29.5 14.1 -29.7 14.2 -28.5 14.7 -28.0
2025-06-13 17:19:11,051 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 17:19:11,052 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 17:19:11,052 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.637781
2025-06-13 17:19:11,052 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 17:19:11,053 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 17:19:11,053 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 17:19:11,053 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 17:19:11,053 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 17:19:11,053 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T17:18:43', tmtdew=16.55, humidity=31.42, cloud=0.0, wind=13.87, temperature=12.93, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T15:18:24.278', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 17:19:11,054 [DEBUG][       Thread-262291][   transport.py][1871] : EOF in transport thread
2025-06-13 17:19:11,137 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 17:19:15,448 [DEBUG][Thread-262294 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:19:24,465 [DEBUG][Thread-262295 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:19:25,127 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:19:25,129 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:19:25,791 [DEBUG][Thread-262296 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:19:33,485 [DEBUG][Thread-262297 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:19:42,510 [DEBUG][Thread-262298 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:19:51,531 [DEBUG][Thread-262299 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:19:51,618 [DEBUG][Thread-262300 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:19:52,700 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:19:52,702 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:20:00,550 [DEBUG][Thread-262301 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:20:09,572 [DEBUG][Thread-262302 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:20:18,596 [DEBUG][Thread-262303 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:20:25,291 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:20:25,292 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:20:25,841 [DEBUG][Thread-262304 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:20:27,617 [DEBUG][Thread-262305 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:20:36,639 [DEBUG][Thread-262306 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:20:45,664 [DEBUG][Thread-262307 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:20:52,745 [DEBUG][Thread-262308 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:20:53,823 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:20:53,824 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:20:54,690 [DEBUG][Thread-262309 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:21:03,720 [DEBUG][Thread-262310 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:21:12,749 [DEBUG][Thread-262311 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:21:19,892 [WARNING][ poll_weather_worker][      driver.py][ 286] : Unable to open ssh connection for writing weather state to io.saao.ac.za: [Errno 110] Connection timed out
2025-06-13 17:21:21,774 [DEBUG][Thread-262312 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:21:25,436 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:21:25,438 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:21:25,889 [DEBUG][Thread-262313 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:21:29,903 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 17:21:29,903 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 17:21:29,903 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 17:21:29,906 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 17:21:30,408 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 17, 21, 21), 16.5, 31.72, 0.0, 14.75, 12.88, 0, 0, 0, 2, 0, 0),)
2025-06-13 17:21:30,408 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 17:21:21
2025-06-13 17:21:30,490 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 17:21:30,502 [DEBUG][       Thread-262314][   transport.py][1871] : starting thread (client mode): 0x863caa70
2025-06-13 17:21:30,502 [DEBUG][       Thread-262314][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 17:21:30,523 [DEBUG][       Thread-262314][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 17:21:30,523 [ INFO][       Thread-262314][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 17:21:30,526 [DEBUG][       Thread-262314][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 17:21:30,526 [DEBUG][       Thread-262314][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 17:21:30,527 [DEBUG][       Thread-262314][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 17:21:30,527 [DEBUG][       Thread-262314][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:21:30,527 [DEBUG][       Thread-262314][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:21:30,527 [DEBUG][       Thread-262314][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:21:30,527 [DEBUG][       Thread-262314][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:21:30,527 [DEBUG][       Thread-262314][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 17:21:30,527 [DEBUG][       Thread-262314][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 17:21:30,527 [DEBUG][       Thread-262314][   transport.py][1871] : client lang: <none>
2025-06-13 17:21:30,527 [DEBUG][       Thread-262314][   transport.py][1871] : server lang: <none>
2025-06-13 17:21:30,527 [DEBUG][       Thread-262314][   transport.py][1871] : kex follows: False
2025-06-13 17:21:30,527 [DEBUG][       Thread-262314][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 17:21:30,527 [DEBUG][       Thread-262314][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 17:21:30,527 [DEBUG][       Thread-262314][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 17:21:30,527 [DEBUG][       Thread-262314][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 17:21:30,527 [DEBUG][       Thread-262314][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 17:21:30,527 [DEBUG][       Thread-262314][   transport.py][1871] : Compression: none
2025-06-13 17:21:30,527 [DEBUG][       Thread-262314][   transport.py][1871] : === End of kex handshake ===
2025-06-13 17:21:30,544 [DEBUG][       Thread-262314][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 17:21:30,544 [DEBUG][       Thread-262314][   transport.py][1871] : Switch to new keys ...
2025-06-13 17:21:30,545 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 17:21:30,545 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 17:21:30,546 [DEBUG][       Thread-262314][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 17:21:30,546 [DEBUG][       Thread-262314][   transport.py][1871] : userauth is OK
2025-06-13 17:21:30,571 [ INFO][       Thread-262314][   transport.py][1871] : Authentication (password) successful!
2025-06-13 17:21:30,572 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 17:21:30,798 [DEBUG][Thread-262316 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:21:31,362 [DEBUG][       Thread-262314][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 17:21:31,363 [DEBUG][       Thread-262314][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 17:21:31,405 [DEBUG][       Thread-262314][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 17:21:31,405 [DEBUG][       Thread-262314][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 17:21:31,409 [DEBUG][       Thread-262314][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 17:21:31,422 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 17:21:31,423 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 17:21:31,425 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 17:21:31,427 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 17:21:31,433 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 17:21:31,435 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 17:21:31,435 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 17:21:31,436 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 17:21:31,436 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.639517 -999.00  +12.70  15.34     36   -1.70 1 1 1 1 1   887    0 14.94 20.40 ----- 12.6 15.3 31.2 18.8 14.2 -29.4 13.9 -29.8 14.1 -28.9 14.7 -28.0
2025-06-13 17:21:31,436 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 17:21:31,436 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 17:21:31,436 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.639517
2025-06-13 17:21:31,437 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 17:21:31,437 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 17:21:31,437 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 17:21:31,438 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 17:21:31,438 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 17:21:31,438 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T17:21:21', tmtdew=16.5, humidity=31.72, cloud=0.0, wind=14.75, temperature=12.88, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T15:20:54.269', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 17:21:31,438 [DEBUG][       Thread-262314][   transport.py][1871] : EOF in transport thread
2025-06-13 17:21:31,522 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 17:21:31,540 [DEBUG][       Thread-262318][   transport.py][1871] : starting thread (client mode): 0x86353220
2025-06-13 17:21:31,540 [DEBUG][       Thread-262318][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 17:21:31,555 [DEBUG][       Thread-262318][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 17:21:31,555 [ INFO][       Thread-262318][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 17:21:31,562 [DEBUG][       Thread-262318][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 17:21:31,562 [DEBUG][       Thread-262318][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 17:21:31,563 [DEBUG][       Thread-262318][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 17:21:31,563 [DEBUG][       Thread-262318][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:21:31,563 [DEBUG][       Thread-262318][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:21:31,563 [DEBUG][       Thread-262318][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:21:31,563 [DEBUG][       Thread-262318][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:21:31,563 [DEBUG][       Thread-262318][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 17:21:31,563 [DEBUG][       Thread-262318][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 17:21:31,563 [DEBUG][       Thread-262318][   transport.py][1871] : client lang: <none>
2025-06-13 17:21:31,563 [DEBUG][       Thread-262318][   transport.py][1871] : server lang: <none>
2025-06-13 17:21:31,563 [DEBUG][       Thread-262318][   transport.py][1871] : kex follows: False
2025-06-13 17:21:31,563 [DEBUG][       Thread-262318][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 17:21:31,563 [DEBUG][       Thread-262318][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 17:21:31,563 [DEBUG][       Thread-262318][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 17:21:31,563 [DEBUG][       Thread-262318][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 17:21:31,563 [DEBUG][       Thread-262318][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 17:21:31,563 [DEBUG][       Thread-262318][   transport.py][1871] : Compression: none
2025-06-13 17:21:31,563 [DEBUG][       Thread-262318][   transport.py][1871] : === End of kex handshake ===
2025-06-13 17:21:31,624 [DEBUG][       Thread-262318][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 17:21:31,624 [DEBUG][       Thread-262318][   transport.py][1871] : Switch to new keys ...
2025-06-13 17:21:31,625 [DEBUG][       Thread-262318][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 17:21:31,625 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 17:21:31,626 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 17:21:31,684 [DEBUG][       Thread-262318][   transport.py][1871] : userauth is OK
2025-06-13 17:21:31,685 [DEBUG][       Thread-262318][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 17:21:31,685 [DEBUG][       Thread-262318][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 17:21:31,685 [DEBUG][       Thread-262318][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 17:21:31,685 [DEBUG][       Thread-262318][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 17:21:31,703 [ INFO][       Thread-262318][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 17:21:31,704 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 17:21:31,704 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 17:21:32,712 [DEBUG][       Thread-262318][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 17:21:32,712 [DEBUG][       Thread-262318][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 17:21:32,760 [DEBUG][       Thread-262318][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 17:21:32,760 [DEBUG][       Thread-262318][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 17:21:32,769 [DEBUG][       Thread-262318][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 17:21:32,778 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 17:21:32,778 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 17:21:32,787 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 17:21:32,796 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 17:21:32,797 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 17:21:32,797 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 17:21:32,805 [DEBUG][       Thread-262318][   transport.py][1871] : EOF in transport thread
2025-06-13 17:21:39,828 [DEBUG][Thread-262320 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:21:42,804 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 17:21:42,804 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 17:21:42,804 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 17:21:42,807 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 17:21:43,302 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 17, 21, 21), 16.5, 31.72, 0.0, 14.75, 12.88, 0, 0, 0, 2, 0, 0),)
2025-06-13 17:21:43,302 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 17:21:21
2025-06-13 17:21:43,384 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 17:21:43,395 [DEBUG][       Thread-262321][   transport.py][1871] : starting thread (client mode): 0x86893fd0
2025-06-13 17:21:43,396 [DEBUG][       Thread-262321][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 17:21:43,416 [DEBUG][       Thread-262321][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 17:21:43,417 [ INFO][       Thread-262321][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 17:21:43,420 [DEBUG][       Thread-262321][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 17:21:43,420 [DEBUG][       Thread-262321][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 17:21:43,420 [DEBUG][       Thread-262321][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 17:21:43,420 [DEBUG][       Thread-262321][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:21:43,420 [DEBUG][       Thread-262321][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:21:43,421 [DEBUG][       Thread-262321][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:21:43,421 [DEBUG][       Thread-262321][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:21:43,421 [DEBUG][       Thread-262321][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 17:21:43,421 [DEBUG][       Thread-262321][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 17:21:43,421 [DEBUG][       Thread-262321][   transport.py][1871] : client lang: <none>
2025-06-13 17:21:43,421 [DEBUG][       Thread-262321][   transport.py][1871] : server lang: <none>
2025-06-13 17:21:43,421 [DEBUG][       Thread-262321][   transport.py][1871] : kex follows: False
2025-06-13 17:21:43,421 [DEBUG][       Thread-262321][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 17:21:43,421 [DEBUG][       Thread-262321][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 17:21:43,421 [DEBUG][       Thread-262321][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 17:21:43,421 [DEBUG][       Thread-262321][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 17:21:43,421 [DEBUG][       Thread-262321][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 17:21:43,421 [DEBUG][       Thread-262321][   transport.py][1871] : Compression: none
2025-06-13 17:21:43,421 [DEBUG][       Thread-262321][   transport.py][1871] : === End of kex handshake ===
2025-06-13 17:21:43,438 [DEBUG][       Thread-262321][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 17:21:43,438 [DEBUG][       Thread-262321][   transport.py][1871] : Switch to new keys ...
2025-06-13 17:21:43,439 [DEBUG][       Thread-262321][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 17:21:43,439 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 17:21:43,439 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 17:21:43,440 [DEBUG][       Thread-262321][   transport.py][1871] : userauth is OK
2025-06-13 17:21:43,453 [ INFO][       Thread-262321][   transport.py][1871] : Authentication (password) successful!
2025-06-13 17:21:43,454 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 17:21:44,039 [DEBUG][       Thread-262321][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 17:21:44,039 [DEBUG][       Thread-262321][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 17:21:44,081 [DEBUG][       Thread-262321][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 17:21:44,081 [DEBUG][       Thread-262321][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 17:21:44,084 [DEBUG][       Thread-262321][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 17:21:44,096 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 17:21:44,096 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 17:21:44,098 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 17:21:44,100 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 17:21:44,105 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 17:21:44,107 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 17:21:44,107 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 17:21:44,108 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 17:21:44,108 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.639865 -999.00  +12.70  17.83     36   -1.80 1 1 1 1 1   887    0 14.71 18.29 ----- 16.5 17.8 37.2 18.6 14.2 -29.4 13.9 -29.8 14.1 -28.7 14.6 -28.1
2025-06-13 17:21:44,108 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 17:21:44,108 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 17:21:44,108 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.639865
2025-06-13 17:21:44,108 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 17:21:44,109 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 17:21:44,109 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 17:21:44,109 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 17:21:44,109 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 17:21:44,109 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T17:21:21', tmtdew=16.5, humidity=31.72, cloud=0.0, wind=14.75, temperature=12.88, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T15:21:24.336', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 17:21:44,110 [DEBUG][       Thread-262321][   transport.py][1871] : EOF in transport thread
2025-06-13 17:21:44,190 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 17:21:44,207 [DEBUG][       Thread-262324][   transport.py][1871] : starting thread (client mode): 0x863be1d0
2025-06-13 17:21:44,207 [DEBUG][       Thread-262324][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 17:21:44,228 [DEBUG][       Thread-262324][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 17:21:44,228 [ INFO][       Thread-262324][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 17:21:44,235 [DEBUG][       Thread-262324][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 17:21:44,235 [DEBUG][       Thread-262324][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 17:21:44,235 [DEBUG][       Thread-262324][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 17:21:44,236 [DEBUG][       Thread-262324][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:21:44,236 [DEBUG][       Thread-262324][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:21:44,236 [DEBUG][       Thread-262324][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:21:44,236 [DEBUG][       Thread-262324][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:21:44,236 [DEBUG][       Thread-262324][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 17:21:44,236 [DEBUG][       Thread-262324][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 17:21:44,236 [DEBUG][       Thread-262324][   transport.py][1871] : client lang: <none>
2025-06-13 17:21:44,236 [DEBUG][       Thread-262324][   transport.py][1871] : server lang: <none>
2025-06-13 17:21:44,236 [DEBUG][       Thread-262324][   transport.py][1871] : kex follows: False
2025-06-13 17:21:44,236 [DEBUG][       Thread-262324][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 17:21:44,236 [DEBUG][       Thread-262324][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 17:21:44,236 [DEBUG][       Thread-262324][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 17:21:44,236 [DEBUG][       Thread-262324][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 17:21:44,236 [DEBUG][       Thread-262324][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 17:21:44,236 [DEBUG][       Thread-262324][   transport.py][1871] : Compression: none
2025-06-13 17:21:44,236 [DEBUG][       Thread-262324][   transport.py][1871] : === End of kex handshake ===
2025-06-13 17:21:44,292 [DEBUG][       Thread-262324][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 17:21:44,293 [DEBUG][       Thread-262324][   transport.py][1871] : Switch to new keys ...
2025-06-13 17:21:44,294 [DEBUG][       Thread-262324][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 17:21:44,294 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 17:21:44,294 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 17:21:44,349 [DEBUG][       Thread-262324][   transport.py][1871] : userauth is OK
2025-06-13 17:21:44,349 [DEBUG][       Thread-262324][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 17:21:44,349 [DEBUG][       Thread-262324][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 17:21:44,349 [DEBUG][       Thread-262324][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 17:21:44,349 [DEBUG][       Thread-262324][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 17:21:44,368 [ INFO][       Thread-262324][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 17:21:44,368 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 17:21:44,368 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 17:21:45,382 [DEBUG][       Thread-262324][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 17:21:45,383 [DEBUG][       Thread-262324][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 17:21:45,432 [DEBUG][       Thread-262324][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 17:21:45,432 [DEBUG][       Thread-262324][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 17:21:45,442 [DEBUG][       Thread-262324][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 17:21:45,456 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 17:21:45,456 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 17:21:45,465 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 17:21:45,475 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 17:21:45,475 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 17:21:45,475 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 17:21:45,485 [DEBUG][       Thread-262324][   transport.py][1871] : EOF in transport thread
2025-06-13 17:21:48,877 [DEBUG][Thread-262326 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:21:53,866 [DEBUG][Thread-262327 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:21:54,938 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:21:54,938 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:21:55,484 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 17:21:55,484 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 17:21:55,484 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 17:21:55,485 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 17:21:55,985 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 17, 21, 21), 16.5, 31.72, 0.0, 14.75, 12.88, 0, 0, 0, 2, 0, 0),)
2025-06-13 17:21:55,985 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 17:21:21
2025-06-13 17:21:56,065 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 17:21:56,077 [DEBUG][       Thread-262328][   transport.py][1871] : starting thread (client mode): 0x863ca980
2025-06-13 17:21:56,077 [DEBUG][       Thread-262328][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 17:21:56,096 [DEBUG][       Thread-262328][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 17:21:56,096 [ INFO][       Thread-262328][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 17:21:56,097 [DEBUG][       Thread-262328][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 17:21:56,098 [DEBUG][       Thread-262328][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 17:21:56,098 [DEBUG][       Thread-262328][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 17:21:56,098 [DEBUG][       Thread-262328][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:21:56,098 [DEBUG][       Thread-262328][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:21:56,098 [DEBUG][       Thread-262328][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:21:56,098 [DEBUG][       Thread-262328][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:21:56,098 [DEBUG][       Thread-262328][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 17:21:56,098 [DEBUG][       Thread-262328][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 17:21:56,098 [DEBUG][       Thread-262328][   transport.py][1871] : client lang: <none>
2025-06-13 17:21:56,098 [DEBUG][       Thread-262328][   transport.py][1871] : server lang: <none>
2025-06-13 17:21:56,098 [DEBUG][       Thread-262328][   transport.py][1871] : kex follows: False
2025-06-13 17:21:56,098 [DEBUG][       Thread-262328][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 17:21:56,098 [DEBUG][       Thread-262328][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 17:21:56,098 [DEBUG][       Thread-262328][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 17:21:56,098 [DEBUG][       Thread-262328][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 17:21:56,098 [DEBUG][       Thread-262328][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 17:21:56,098 [DEBUG][       Thread-262328][   transport.py][1871] : Compression: none
2025-06-13 17:21:56,098 [DEBUG][       Thread-262328][   transport.py][1871] : === End of kex handshake ===
2025-06-13 17:21:56,115 [DEBUG][       Thread-262328][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 17:21:56,115 [DEBUG][       Thread-262328][   transport.py][1871] : Switch to new keys ...
2025-06-13 17:21:56,116 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 17:21:56,116 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 17:21:56,117 [DEBUG][       Thread-262328][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 17:21:56,117 [DEBUG][       Thread-262328][   transport.py][1871] : userauth is OK
2025-06-13 17:21:56,130 [ INFO][       Thread-262328][   transport.py][1871] : Authentication (password) successful!
2025-06-13 17:21:56,130 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 17:21:56,745 [DEBUG][       Thread-262328][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 17:21:56,745 [DEBUG][       Thread-262328][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 17:21:56,789 [DEBUG][       Thread-262328][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 17:21:56,789 [DEBUG][       Thread-262328][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 17:21:56,793 [DEBUG][       Thread-262328][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 17:21:56,806 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 17:21:56,807 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 17:21:56,809 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 17:21:56,811 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 17:21:56,817 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 17:21:56,819 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 17:21:56,819 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 17:21:56,820 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 17:21:56,820 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.639865 -999.00  +12.70  17.83     36   -1.80 1 1 1 1 1   887    0 14.71 18.29 ----- 16.5 17.8 37.2 18.6 14.2 -29.4 13.9 -29.8 14.1 -28.7 14.6 -28.1
2025-06-13 17:21:56,820 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 17:21:56,820 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 17:21:56,820 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.639865
2025-06-13 17:21:56,821 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 17:21:56,821 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 17:21:56,821 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 17:21:56,821 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 17:21:56,821 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 17:21:56,821 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T17:21:21', tmtdew=16.5, humidity=31.72, cloud=0.0, wind=14.75, temperature=12.88, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T15:21:24.336', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 17:21:56,822 [DEBUG][       Thread-262328][   transport.py][1871] : EOF in transport thread
2025-06-13 17:21:56,905 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 17:21:56,923 [DEBUG][       Thread-262331][   transport.py][1871] : starting thread (client mode): 0x863bdf90
2025-06-13 17:21:56,923 [DEBUG][       Thread-262331][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 17:21:56,944 [DEBUG][       Thread-262331][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 17:21:56,945 [ INFO][       Thread-262331][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 17:21:56,953 [DEBUG][       Thread-262331][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 17:21:56,953 [DEBUG][       Thread-262331][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 17:21:56,953 [DEBUG][       Thread-262331][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 17:21:56,953 [DEBUG][       Thread-262331][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:21:56,953 [DEBUG][       Thread-262331][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:21:56,953 [DEBUG][       Thread-262331][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:21:56,953 [DEBUG][       Thread-262331][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:21:56,953 [DEBUG][       Thread-262331][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 17:21:56,953 [DEBUG][       Thread-262331][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 17:21:56,953 [DEBUG][       Thread-262331][   transport.py][1871] : client lang: <none>
2025-06-13 17:21:56,953 [DEBUG][       Thread-262331][   transport.py][1871] : server lang: <none>
2025-06-13 17:21:56,953 [DEBUG][       Thread-262331][   transport.py][1871] : kex follows: False
2025-06-13 17:21:56,953 [DEBUG][       Thread-262331][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 17:21:56,953 [DEBUG][       Thread-262331][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 17:21:56,953 [DEBUG][       Thread-262331][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 17:21:56,954 [DEBUG][       Thread-262331][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 17:21:56,954 [DEBUG][       Thread-262331][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 17:21:56,954 [DEBUG][       Thread-262331][   transport.py][1871] : Compression: none
2025-06-13 17:21:56,954 [DEBUG][       Thread-262331][   transport.py][1871] : === End of kex handshake ===
2025-06-13 17:21:57,009 [DEBUG][       Thread-262331][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 17:21:57,009 [DEBUG][       Thread-262331][   transport.py][1871] : Switch to new keys ...
2025-06-13 17:21:57,010 [DEBUG][       Thread-262331][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 17:21:57,010 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 17:21:57,011 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 17:21:57,065 [DEBUG][       Thread-262331][   transport.py][1871] : userauth is OK
2025-06-13 17:21:57,065 [DEBUG][       Thread-262331][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 17:21:57,065 [DEBUG][       Thread-262331][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 17:21:57,065 [DEBUG][       Thread-262331][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 17:21:57,065 [DEBUG][       Thread-262331][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 17:21:57,084 [ INFO][       Thread-262331][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 17:21:57,084 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 17:21:57,084 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 17:21:57,909 [DEBUG][Thread-262333 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:21:58,057 [DEBUG][       Thread-262331][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 17:21:58,057 [DEBUG][       Thread-262331][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 17:21:58,108 [DEBUG][       Thread-262331][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 17:21:58,108 [DEBUG][       Thread-262331][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 17:21:58,117 [DEBUG][       Thread-262331][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 17:21:58,126 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 17:21:58,127 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 17:21:58,136 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 17:21:58,145 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 17:21:58,145 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 17:21:58,146 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 17:21:58,154 [DEBUG][       Thread-262331][   transport.py][1871] : EOF in transport thread
2025-06-13 17:22:06,936 [DEBUG][Thread-262334 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:22:08,156 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 17:22:08,157 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 17:22:08,157 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 17:22:08,159 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 17:22:08,635 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 17, 21, 53), 16.48, 31.77, 0.0, 15.14, 12.88, 0, 0, 0, 2, 0, 0),)
2025-06-13 17:22:08,635 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 17:21:53
2025-06-13 17:22:08,712 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 17:22:08,724 [DEBUG][       Thread-262335][   transport.py][1871] : starting thread (client mode): 0x867fce80
2025-06-13 17:22:08,725 [DEBUG][       Thread-262335][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 17:22:08,745 [DEBUG][       Thread-262335][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 17:22:08,745 [ INFO][       Thread-262335][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 17:22:08,747 [DEBUG][       Thread-262335][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 17:22:08,747 [DEBUG][       Thread-262335][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 17:22:08,747 [DEBUG][       Thread-262335][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 17:22:08,747 [DEBUG][       Thread-262335][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:22:08,747 [DEBUG][       Thread-262335][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:22:08,747 [DEBUG][       Thread-262335][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:22:08,747 [DEBUG][       Thread-262335][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:22:08,747 [DEBUG][       Thread-262335][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 17:22:08,747 [DEBUG][       Thread-262335][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 17:22:08,747 [DEBUG][       Thread-262335][   transport.py][1871] : client lang: <none>
2025-06-13 17:22:08,747 [DEBUG][       Thread-262335][   transport.py][1871] : server lang: <none>
2025-06-13 17:22:08,747 [DEBUG][       Thread-262335][   transport.py][1871] : kex follows: False
2025-06-13 17:22:08,747 [DEBUG][       Thread-262335][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 17:22:08,747 [DEBUG][       Thread-262335][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 17:22:08,748 [DEBUG][       Thread-262335][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 17:22:08,748 [DEBUG][       Thread-262335][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 17:22:08,748 [DEBUG][       Thread-262335][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 17:22:08,748 [DEBUG][       Thread-262335][   transport.py][1871] : Compression: none
2025-06-13 17:22:08,748 [DEBUG][       Thread-262335][   transport.py][1871] : === End of kex handshake ===
2025-06-13 17:22:08,760 [DEBUG][       Thread-262335][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 17:22:08,761 [DEBUG][       Thread-262335][   transport.py][1871] : Switch to new keys ...
2025-06-13 17:22:08,761 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 17:22:08,761 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 17:22:08,762 [DEBUG][       Thread-262335][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 17:22:08,763 [DEBUG][       Thread-262335][   transport.py][1871] : userauth is OK
2025-06-13 17:22:08,789 [ INFO][       Thread-262335][   transport.py][1871] : Authentication (password) successful!
2025-06-13 17:22:08,789 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 17:22:09,366 [DEBUG][       Thread-262335][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 17:22:09,367 [DEBUG][       Thread-262335][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 17:22:09,409 [DEBUG][       Thread-262335][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 17:22:09,409 [DEBUG][       Thread-262335][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 17:22:09,413 [DEBUG][       Thread-262335][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 17:22:09,424 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 17:22:09,425 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 17:22:09,426 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 17:22:09,428 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 17:22:09,433 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 17:22:09,435 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 17:22:09,435 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 17:22:09,435 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 17:22:09,436 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.639865 -999.00  +12.70  17.83     36   -1.80 1 1 1 1 1   887    0 14.71 18.29 ----- 16.5 17.8 37.2 18.6 14.2 -29.4 13.9 -29.8 14.1 -28.7 14.6 -28.1
2025-06-13 17:22:09,436 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 17:22:09,436 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 17:22:09,436 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.639865
2025-06-13 17:22:09,436 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 17:22:09,437 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 17:22:09,437 [DEBUG][       Thread-262335][   transport.py][1871] : EOF in transport thread
2025-06-13 17:22:09,437 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 17:22:09,438 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 17:22:09,438 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 17:22:09,438 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T17:21:53', tmtdew=16.48, humidity=31.77, cloud=0.0, wind=15.14, temperature=12.88, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T15:21:24.336', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 17:22:09,521 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 17:22:09,540 [DEBUG][       Thread-262338][   transport.py][1871] : starting thread (client mode): 0x86393310
2025-06-13 17:22:09,540 [DEBUG][       Thread-262338][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 17:22:09,556 [DEBUG][       Thread-262338][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 17:22:09,556 [ INFO][       Thread-262338][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 17:22:09,564 [DEBUG][       Thread-262338][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 17:22:09,564 [DEBUG][       Thread-262338][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 17:22:09,564 [DEBUG][       Thread-262338][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 17:22:09,564 [DEBUG][       Thread-262338][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:22:09,565 [DEBUG][       Thread-262338][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:22:09,565 [DEBUG][       Thread-262338][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:22:09,565 [DEBUG][       Thread-262338][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:22:09,565 [DEBUG][       Thread-262338][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 17:22:09,565 [DEBUG][       Thread-262338][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 17:22:09,565 [DEBUG][       Thread-262338][   transport.py][1871] : client lang: <none>
2025-06-13 17:22:09,565 [DEBUG][       Thread-262338][   transport.py][1871] : server lang: <none>
2025-06-13 17:22:09,565 [DEBUG][       Thread-262338][   transport.py][1871] : kex follows: False
2025-06-13 17:22:09,565 [DEBUG][       Thread-262338][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 17:22:09,565 [DEBUG][       Thread-262338][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 17:22:09,565 [DEBUG][       Thread-262338][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 17:22:09,565 [DEBUG][       Thread-262338][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 17:22:09,565 [DEBUG][       Thread-262338][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 17:22:09,565 [DEBUG][       Thread-262338][   transport.py][1871] : Compression: none
2025-06-13 17:22:09,565 [DEBUG][       Thread-262338][   transport.py][1871] : === End of kex handshake ===
2025-06-13 17:22:09,624 [DEBUG][       Thread-262338][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 17:22:09,624 [DEBUG][       Thread-262338][   transport.py][1871] : Switch to new keys ...
2025-06-13 17:22:09,625 [DEBUG][       Thread-262338][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 17:22:09,625 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 17:22:09,626 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 17:22:09,684 [DEBUG][       Thread-262338][   transport.py][1871] : userauth is OK
2025-06-13 17:22:09,684 [DEBUG][       Thread-262338][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 17:22:09,685 [DEBUG][       Thread-262338][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 17:22:09,685 [DEBUG][       Thread-262338][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 17:22:09,685 [DEBUG][       Thread-262338][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 17:22:09,708 [ INFO][       Thread-262338][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 17:22:09,709 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 17:22:09,709 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 17:22:10,731 [DEBUG][       Thread-262338][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 17:22:10,731 [DEBUG][       Thread-262338][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 17:22:10,780 [DEBUG][       Thread-262338][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 17:22:10,781 [DEBUG][       Thread-262338][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 17:22:10,790 [DEBUG][       Thread-262338][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 17:22:10,799 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 17:22:10,799 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 17:22:10,808 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 17:22:10,817 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 17:22:10,818 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 17:22:10,818 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 17:22:10,826 [DEBUG][       Thread-262338][   transport.py][1871] : EOF in transport thread
2025-06-13 17:22:15,967 [DEBUG][Thread-262340 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:22:20,828 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 17:22:20,829 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 17:22:20,829 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 17:22:20,831 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 17:22:21,316 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 17, 21, 53), 16.48, 31.77, 0.0, 15.14, 12.88, 0, 0, 0, 2, 0, 0),)
2025-06-13 17:22:21,316 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 17:21:53
2025-06-13 17:22:21,393 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 17:22:21,406 [DEBUG][       Thread-262341][   transport.py][1871] : starting thread (client mode): 0x86392380
2025-06-13 17:22:21,406 [DEBUG][       Thread-262341][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 17:22:21,421 [DEBUG][       Thread-262341][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 17:22:21,421 [ INFO][       Thread-262341][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 17:22:21,424 [DEBUG][       Thread-262341][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 17:22:21,425 [DEBUG][       Thread-262341][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 17:22:21,425 [DEBUG][       Thread-262341][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 17:22:21,425 [DEBUG][       Thread-262341][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:22:21,425 [DEBUG][       Thread-262341][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:22:21,425 [DEBUG][       Thread-262341][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:22:21,425 [DEBUG][       Thread-262341][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:22:21,425 [DEBUG][       Thread-262341][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 17:22:21,425 [DEBUG][       Thread-262341][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 17:22:21,425 [DEBUG][       Thread-262341][   transport.py][1871] : client lang: <none>
2025-06-13 17:22:21,425 [DEBUG][       Thread-262341][   transport.py][1871] : server lang: <none>
2025-06-13 17:22:21,425 [DEBUG][       Thread-262341][   transport.py][1871] : kex follows: False
2025-06-13 17:22:21,425 [DEBUG][       Thread-262341][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 17:22:21,425 [DEBUG][       Thread-262341][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 17:22:21,425 [DEBUG][       Thread-262341][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 17:22:21,425 [DEBUG][       Thread-262341][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 17:22:21,425 [DEBUG][       Thread-262341][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 17:22:21,425 [DEBUG][       Thread-262341][   transport.py][1871] : Compression: none
2025-06-13 17:22:21,425 [DEBUG][       Thread-262341][   transport.py][1871] : === End of kex handshake ===
2025-06-13 17:22:21,442 [DEBUG][       Thread-262341][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 17:22:21,443 [DEBUG][       Thread-262341][   transport.py][1871] : Switch to new keys ...
2025-06-13 17:22:21,443 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 17:22:21,444 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 17:22:21,444 [DEBUG][       Thread-262341][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 17:22:21,487 [DEBUG][       Thread-262341][   transport.py][1871] : userauth is OK
2025-06-13 17:22:21,513 [ INFO][       Thread-262341][   transport.py][1871] : Authentication (password) successful!
2025-06-13 17:22:21,513 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 17:22:22,161 [DEBUG][       Thread-262341][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 17:22:22,161 [DEBUG][       Thread-262341][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 17:22:22,205 [DEBUG][       Thread-262341][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 17:22:22,205 [DEBUG][       Thread-262341][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 17:22:22,208 [DEBUG][       Thread-262341][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 17:22:22,222 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 17:22:22,222 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 17:22:22,224 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 17:22:22,225 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 17:22:22,230 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 17:22:22,232 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 17:22:22,232 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 17:22:22,233 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 17:22:22,233 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.640212 -999.00  +12.70  14.66     36   -1.80 1 1 1 1 1   887    0 15.02 17.99 ----- 13.6 14.7 37.4 18.3 14.2 -29.3 13.9 -29.8 14.1 -29.0 14.6 -28.1
2025-06-13 17:22:22,233 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 17:22:22,233 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 17:22:22,233 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.640212
2025-06-13 17:22:22,234 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 17:22:22,234 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 17:22:22,234 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 17:22:22,234 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 17:22:22,234 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 17:22:22,235 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T17:21:53', tmtdew=16.48, humidity=31.77, cloud=0.0, wind=15.14, temperature=12.88, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T15:21:54.317', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 17:22:22,236 [DEBUG][       Thread-262341][   transport.py][1871] : EOF in transport thread
2025-06-13 17:22:22,318 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 17:22:22,336 [DEBUG][       Thread-262344][   transport.py][1871] : starting thread (client mode): 0x867b5cf0
2025-06-13 17:22:22,336 [DEBUG][       Thread-262344][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 17:22:22,350 [DEBUG][       Thread-262344][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 17:22:22,351 [ INFO][       Thread-262344][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 17:22:22,358 [DEBUG][       Thread-262344][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 17:22:22,358 [DEBUG][       Thread-262344][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 17:22:22,358 [DEBUG][       Thread-262344][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 17:22:22,359 [DEBUG][       Thread-262344][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:22:22,359 [DEBUG][       Thread-262344][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:22:22,359 [DEBUG][       Thread-262344][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:22:22,359 [DEBUG][       Thread-262344][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:22:22,359 [DEBUG][       Thread-262344][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 17:22:22,359 [DEBUG][       Thread-262344][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 17:22:22,359 [DEBUG][       Thread-262344][   transport.py][1871] : client lang: <none>
2025-06-13 17:22:22,359 [DEBUG][       Thread-262344][   transport.py][1871] : server lang: <none>
2025-06-13 17:22:22,359 [DEBUG][       Thread-262344][   transport.py][1871] : kex follows: False
2025-06-13 17:22:22,359 [DEBUG][       Thread-262344][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 17:22:22,359 [DEBUG][       Thread-262344][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 17:22:22,359 [DEBUG][       Thread-262344][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 17:22:22,359 [DEBUG][       Thread-262344][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 17:22:22,359 [DEBUG][       Thread-262344][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 17:22:22,359 [DEBUG][       Thread-262344][   transport.py][1871] : Compression: none
2025-06-13 17:22:22,359 [DEBUG][       Thread-262344][   transport.py][1871] : === End of kex handshake ===
2025-06-13 17:22:22,418 [DEBUG][       Thread-262344][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 17:22:22,419 [DEBUG][       Thread-262344][   transport.py][1871] : Switch to new keys ...
2025-06-13 17:22:22,419 [DEBUG][       Thread-262344][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 17:22:22,420 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 17:22:22,421 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 17:22:22,477 [DEBUG][       Thread-262344][   transport.py][1871] : userauth is OK
2025-06-13 17:22:22,477 [DEBUG][       Thread-262344][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 17:22:22,477 [DEBUG][       Thread-262344][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 17:22:22,477 [DEBUG][       Thread-262344][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 17:22:22,478 [DEBUG][       Thread-262344][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 17:22:22,496 [ INFO][       Thread-262344][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 17:22:22,497 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 17:22:22,497 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 17:22:23,497 [DEBUG][       Thread-262344][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 17:22:23,497 [DEBUG][       Thread-262344][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 17:22:23,548 [DEBUG][       Thread-262344][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 17:22:23,548 [DEBUG][       Thread-262344][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 17:22:23,556 [DEBUG][       Thread-262344][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 17:22:23,564 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 17:22:23,564 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 17:22:23,572 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 17:22:23,580 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 17:22:23,580 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 17:22:23,581 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 17:22:23,588 [DEBUG][       Thread-262344][   transport.py][1871] : EOF in transport thread
2025-06-13 17:22:25,021 [DEBUG][Thread-262346 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:22:25,579 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:22:25,580 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:22:25,948 [DEBUG][Thread-262347 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:22:33,591 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 17:22:33,591 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 17:22:33,591 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 17:22:33,594 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 17:22:34,046 [DEBUG][Thread-262348 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:22:34,082 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 17, 22, 25), 16.44, 31.85, 0.0, 14.12, 12.88, 0, 0, 0, 2, 0, 0),)
2025-06-13 17:22:34,082 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 17:22:25
2025-06-13 17:22:34,159 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 17:22:34,171 [DEBUG][       Thread-262349][   transport.py][1871] : starting thread (client mode): 0x86369ed0
2025-06-13 17:22:34,171 [DEBUG][       Thread-262349][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 17:22:34,193 [DEBUG][       Thread-262349][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 17:22:34,193 [ INFO][       Thread-262349][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 17:22:34,197 [DEBUG][       Thread-262349][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 17:22:34,197 [DEBUG][       Thread-262349][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 17:22:34,197 [DEBUG][       Thread-262349][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 17:22:34,197 [DEBUG][       Thread-262349][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:22:34,197 [DEBUG][       Thread-262349][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:22:34,197 [DEBUG][       Thread-262349][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:22:34,197 [DEBUG][       Thread-262349][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:22:34,197 [DEBUG][       Thread-262349][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 17:22:34,197 [DEBUG][       Thread-262349][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 17:22:34,197 [DEBUG][       Thread-262349][   transport.py][1871] : client lang: <none>
2025-06-13 17:22:34,197 [DEBUG][       Thread-262349][   transport.py][1871] : server lang: <none>
2025-06-13 17:22:34,197 [DEBUG][       Thread-262349][   transport.py][1871] : kex follows: False
2025-06-13 17:22:34,197 [DEBUG][       Thread-262349][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 17:22:34,197 [DEBUG][       Thread-262349][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 17:22:34,197 [DEBUG][       Thread-262349][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 17:22:34,197 [DEBUG][       Thread-262349][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 17:22:34,197 [DEBUG][       Thread-262349][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 17:22:34,197 [DEBUG][       Thread-262349][   transport.py][1871] : Compression: none
2025-06-13 17:22:34,197 [DEBUG][       Thread-262349][   transport.py][1871] : === End of kex handshake ===
2025-06-13 17:22:34,212 [DEBUG][       Thread-262349][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 17:22:34,212 [DEBUG][       Thread-262349][   transport.py][1871] : Switch to new keys ...
2025-06-13 17:22:34,212 [DEBUG][       Thread-262349][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 17:22:34,212 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 17:22:34,212 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 17:22:34,213 [DEBUG][       Thread-262349][   transport.py][1871] : userauth is OK
2025-06-13 17:22:34,226 [ INFO][       Thread-262349][   transport.py][1871] : Authentication (password) successful!
2025-06-13 17:22:34,226 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 17:22:34,838 [DEBUG][       Thread-262349][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 17:22:34,838 [DEBUG][       Thread-262349][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 17:22:34,881 [DEBUG][       Thread-262349][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 17:22:34,881 [DEBUG][       Thread-262349][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 17:22:34,885 [DEBUG][       Thread-262349][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 17:22:34,891 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 17:22:34,891 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 17:22:34,893 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 17:22:34,895 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 17:22:34,907 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 17:22:34,909 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 17:22:34,909 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 17:22:34,909 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 17:22:34,910 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.640212 -999.00  +12.70  14.66     36   -1.80 1 1 1 1 1   887    0 15.02 17.99 ----- 13.6 14.7 37.4 18.3 14.2 -29.3 13.9 -29.8 14.1 -29.0 14.6 -28.1
2025-06-13 17:22:34,910 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 17:22:34,910 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 17:22:34,910 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.640212
2025-06-13 17:22:34,910 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 17:22:34,911 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 17:22:34,911 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 17:22:34,911 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 17:22:34,911 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 17:22:34,911 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T17:22:25', tmtdew=16.44, humidity=31.85, cloud=0.0, wind=14.12, temperature=12.88, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T15:21:54.317', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 17:22:34,911 [DEBUG][       Thread-262349][   transport.py][1871] : EOF in transport thread
2025-06-13 17:22:34,995 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 17:22:35,012 [DEBUG][       Thread-262352][   transport.py][1871] : starting thread (client mode): 0x86893fd0
2025-06-13 17:22:35,012 [DEBUG][       Thread-262352][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 17:22:35,026 [DEBUG][       Thread-262352][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 17:22:35,026 [ INFO][       Thread-262352][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 17:22:35,034 [DEBUG][       Thread-262352][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 17:22:35,034 [DEBUG][       Thread-262352][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 17:22:35,034 [DEBUG][       Thread-262352][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 17:22:35,034 [DEBUG][       Thread-262352][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:22:35,034 [DEBUG][       Thread-262352][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:22:35,034 [DEBUG][       Thread-262352][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:22:35,034 [DEBUG][       Thread-262352][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:22:35,034 [DEBUG][       Thread-262352][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 17:22:35,034 [DEBUG][       Thread-262352][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 17:22:35,034 [DEBUG][       Thread-262352][   transport.py][1871] : client lang: <none>
2025-06-13 17:22:35,034 [DEBUG][       Thread-262352][   transport.py][1871] : server lang: <none>
2025-06-13 17:22:35,035 [DEBUG][       Thread-262352][   transport.py][1871] : kex follows: False
2025-06-13 17:22:35,035 [DEBUG][       Thread-262352][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 17:22:35,035 [DEBUG][       Thread-262352][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 17:22:35,035 [DEBUG][       Thread-262352][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 17:22:35,035 [DEBUG][       Thread-262352][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 17:22:35,035 [DEBUG][       Thread-262352][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 17:22:35,035 [DEBUG][       Thread-262352][   transport.py][1871] : Compression: none
2025-06-13 17:22:35,035 [DEBUG][       Thread-262352][   transport.py][1871] : === End of kex handshake ===
2025-06-13 17:22:35,093 [DEBUG][       Thread-262352][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 17:22:35,093 [DEBUG][       Thread-262352][   transport.py][1871] : Switch to new keys ...
2025-06-13 17:22:35,094 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 17:22:35,094 [DEBUG][       Thread-262352][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 17:22:35,095 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 17:22:35,151 [DEBUG][       Thread-262352][   transport.py][1871] : userauth is OK
2025-06-13 17:22:35,151 [DEBUG][       Thread-262352][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 17:22:35,151 [DEBUG][       Thread-262352][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 17:22:35,151 [DEBUG][       Thread-262352][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 17:22:35,151 [DEBUG][       Thread-262352][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 17:22:35,169 [ INFO][       Thread-262352][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 17:22:35,170 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 17:22:35,170 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 17:22:36,152 [DEBUG][       Thread-262352][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 17:22:36,152 [DEBUG][       Thread-262352][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 17:22:36,200 [DEBUG][       Thread-262352][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 17:22:36,200 [DEBUG][       Thread-262352][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 17:22:36,209 [DEBUG][       Thread-262352][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 17:22:36,217 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 17:22:36,218 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 17:22:36,226 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 17:22:36,235 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 17:22:36,235 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 17:22:36,236 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 17:22:36,244 [DEBUG][       Thread-262352][   transport.py][1871] : EOF in transport thread
2025-06-13 17:22:43,065 [DEBUG][Thread-262354 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:22:46,246 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 17:22:46,247 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 17:22:46,247 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 17:22:46,249 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 17:22:46,721 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 17, 22, 25), 16.44, 31.85, 0.0, 14.12, 12.88, 0, 0, 0, 2, 0, 0),)
2025-06-13 17:22:46,721 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 17:22:25
2025-06-13 17:22:46,798 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 17:22:46,804 [DEBUG][       Thread-262355][   transport.py][1871] : starting thread (client mode): 0x863680d0
2025-06-13 17:22:46,804 [DEBUG][       Thread-262355][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 17:22:46,825 [DEBUG][       Thread-262355][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 17:22:46,825 [ INFO][       Thread-262355][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 17:22:46,828 [DEBUG][       Thread-262355][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 17:22:46,828 [DEBUG][       Thread-262355][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 17:22:46,828 [DEBUG][       Thread-262355][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 17:22:46,828 [DEBUG][       Thread-262355][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:22:46,828 [DEBUG][       Thread-262355][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:22:46,828 [DEBUG][       Thread-262355][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:22:46,828 [DEBUG][       Thread-262355][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:22:46,828 [DEBUG][       Thread-262355][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 17:22:46,828 [DEBUG][       Thread-262355][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 17:22:46,828 [DEBUG][       Thread-262355][   transport.py][1871] : client lang: <none>
2025-06-13 17:22:46,828 [DEBUG][       Thread-262355][   transport.py][1871] : server lang: <none>
2025-06-13 17:22:46,828 [DEBUG][       Thread-262355][   transport.py][1871] : kex follows: False
2025-06-13 17:22:46,828 [DEBUG][       Thread-262355][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 17:22:46,828 [DEBUG][       Thread-262355][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 17:22:46,828 [DEBUG][       Thread-262355][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 17:22:46,828 [DEBUG][       Thread-262355][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 17:22:46,829 [DEBUG][       Thread-262355][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 17:22:46,829 [DEBUG][       Thread-262355][   transport.py][1871] : Compression: none
2025-06-13 17:22:46,829 [DEBUG][       Thread-262355][   transport.py][1871] : === End of kex handshake ===
2025-06-13 17:22:46,845 [DEBUG][       Thread-262355][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 17:22:46,845 [DEBUG][       Thread-262355][   transport.py][1871] : Switch to new keys ...
2025-06-13 17:22:46,846 [DEBUG][       Thread-262355][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 17:22:46,846 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 17:22:46,846 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 17:22:46,847 [DEBUG][       Thread-262355][   transport.py][1871] : userauth is OK
2025-06-13 17:22:46,872 [ INFO][       Thread-262355][   transport.py][1871] : Authentication (password) successful!
2025-06-13 17:22:46,873 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 17:22:47,516 [DEBUG][       Thread-262355][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 17:22:47,516 [DEBUG][       Thread-262355][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 17:22:47,557 [DEBUG][       Thread-262355][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 17:22:47,557 [DEBUG][       Thread-262355][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 17:22:47,560 [DEBUG][       Thread-262355][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 17:22:47,572 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 17:22:47,573 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 17:22:47,574 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 17:22:47,576 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 17:22:47,581 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 17:22:47,583 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 17:22:47,583 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 17:22:47,584 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 17:22:47,584 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.640559 -999.00  +12.60  11.89     36   -1.70 1 1 1 1 1   887    0 15.29 18.18 ----- 16.0 11.9 40.4 16.5 14.2 -29.5 13.8 -29.7 14.1 -29.2 14.6 -28.3
2025-06-13 17:22:47,584 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 17:22:47,584 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 17:22:47,584 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.640559
2025-06-13 17:22:47,585 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 17:22:47,585 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 17:22:47,585 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 17:22:47,585 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 17:22:47,585 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 17:22:47,585 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T17:22:25', tmtdew=16.44, humidity=31.85, cloud=0.0, wind=14.12, temperature=12.88, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T15:22:24.298', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 17:22:47,586 [DEBUG][       Thread-262355][   transport.py][1871] : EOF in transport thread
2025-06-13 17:22:47,669 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 17:22:47,680 [DEBUG][       Thread-262358][   transport.py][1871] : starting thread (client mode): 0x867b63b0
2025-06-13 17:22:47,680 [DEBUG][       Thread-262358][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 17:22:47,695 [DEBUG][       Thread-262358][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 17:22:47,695 [ INFO][       Thread-262358][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 17:22:47,703 [DEBUG][       Thread-262358][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 17:22:47,703 [DEBUG][       Thread-262358][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 17:22:47,703 [DEBUG][       Thread-262358][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 17:22:47,703 [DEBUG][       Thread-262358][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:22:47,703 [DEBUG][       Thread-262358][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:22:47,703 [DEBUG][       Thread-262358][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:22:47,703 [DEBUG][       Thread-262358][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:22:47,703 [DEBUG][       Thread-262358][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 17:22:47,703 [DEBUG][       Thread-262358][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 17:22:47,703 [DEBUG][       Thread-262358][   transport.py][1871] : client lang: <none>
2025-06-13 17:22:47,703 [DEBUG][       Thread-262358][   transport.py][1871] : server lang: <none>
2025-06-13 17:22:47,703 [DEBUG][       Thread-262358][   transport.py][1871] : kex follows: False
2025-06-13 17:22:47,703 [DEBUG][       Thread-262358][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 17:22:47,703 [DEBUG][       Thread-262358][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 17:22:47,703 [DEBUG][       Thread-262358][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 17:22:47,703 [DEBUG][       Thread-262358][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 17:22:47,703 [DEBUG][       Thread-262358][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 17:22:47,704 [DEBUG][       Thread-262358][   transport.py][1871] : Compression: none
2025-06-13 17:22:47,704 [DEBUG][       Thread-262358][   transport.py][1871] : === End of kex handshake ===
2025-06-13 17:22:47,760 [DEBUG][       Thread-262358][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 17:22:47,761 [DEBUG][       Thread-262358][   transport.py][1871] : Switch to new keys ...
2025-06-13 17:22:47,761 [DEBUG][       Thread-262358][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 17:22:47,762 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 17:22:47,762 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 17:22:47,817 [DEBUG][       Thread-262358][   transport.py][1871] : userauth is OK
2025-06-13 17:22:47,817 [DEBUG][       Thread-262358][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 17:22:47,817 [DEBUG][       Thread-262358][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 17:22:47,817 [DEBUG][       Thread-262358][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 17:22:47,817 [DEBUG][       Thread-262358][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 17:22:47,836 [ INFO][       Thread-262358][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 17:22:47,836 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 17:22:47,836 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 17:22:48,860 [DEBUG][       Thread-262358][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 17:22:48,860 [DEBUG][       Thread-262358][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 17:22:48,912 [DEBUG][       Thread-262358][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 17:22:48,913 [DEBUG][       Thread-262358][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 17:22:48,922 [DEBUG][       Thread-262358][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 17:22:48,931 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 17:22:48,931 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 17:22:48,940 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 17:22:48,949 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 17:22:48,949 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 17:22:48,950 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 17:22:48,957 [DEBUG][       Thread-262358][   transport.py][1871] : EOF in transport thread
2025-06-13 17:22:52,100 [DEBUG][Thread-262360 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:22:55,005 [DEBUG][Thread-262361 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:22:56,086 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:22:56,088 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:22:58,960 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 17:22:58,960 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 17:22:58,960 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 17:22:58,961 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 17:22:59,445 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 17, 22, 25), 16.44, 31.85, 0.0, 14.12, 12.88, 0, 0, 0, 2, 0, 0),)
2025-06-13 17:22:59,445 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 17:22:25
2025-06-13 17:22:59,522 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 17:22:59,526 [DEBUG][       Thread-262362][   transport.py][1871] : starting thread (client mode): 0x8636a5f0
2025-06-13 17:22:59,526 [DEBUG][       Thread-262362][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 17:22:59,547 [DEBUG][       Thread-262362][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 17:22:59,548 [ INFO][       Thread-262362][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 17:22:59,551 [DEBUG][       Thread-262362][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 17:22:59,551 [DEBUG][       Thread-262362][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 17:22:59,552 [DEBUG][       Thread-262362][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 17:22:59,552 [DEBUG][       Thread-262362][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:22:59,552 [DEBUG][       Thread-262362][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:22:59,552 [DEBUG][       Thread-262362][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:22:59,552 [DEBUG][       Thread-262362][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:22:59,552 [DEBUG][       Thread-262362][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 17:22:59,552 [DEBUG][       Thread-262362][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 17:22:59,552 [DEBUG][       Thread-262362][   transport.py][1871] : client lang: <none>
2025-06-13 17:22:59,552 [DEBUG][       Thread-262362][   transport.py][1871] : server lang: <none>
2025-06-13 17:22:59,552 [DEBUG][       Thread-262362][   transport.py][1871] : kex follows: False
2025-06-13 17:22:59,552 [DEBUG][       Thread-262362][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 17:22:59,552 [DEBUG][       Thread-262362][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 17:22:59,552 [DEBUG][       Thread-262362][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 17:22:59,552 [DEBUG][       Thread-262362][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 17:22:59,552 [DEBUG][       Thread-262362][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 17:22:59,552 [DEBUG][       Thread-262362][   transport.py][1871] : Compression: none
2025-06-13 17:22:59,552 [DEBUG][       Thread-262362][   transport.py][1871] : === End of kex handshake ===
2025-06-13 17:22:59,571 [DEBUG][       Thread-262362][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 17:22:59,572 [DEBUG][       Thread-262362][   transport.py][1871] : Switch to new keys ...
2025-06-13 17:22:59,572 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 17:22:59,572 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 17:22:59,573 [DEBUG][       Thread-262362][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 17:22:59,573 [DEBUG][       Thread-262362][   transport.py][1871] : userauth is OK
2025-06-13 17:22:59,587 [ INFO][       Thread-262362][   transport.py][1871] : Authentication (password) successful!
2025-06-13 17:22:59,588 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 17:23:00,223 [DEBUG][       Thread-262362][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 17:23:00,223 [DEBUG][       Thread-262362][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 17:23:00,269 [DEBUG][       Thread-262362][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 17:23:00,269 [DEBUG][       Thread-262362][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 17:23:00,272 [DEBUG][       Thread-262362][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 17:23:00,285 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 17:23:00,286 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 17:23:00,288 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 17:23:00,290 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 17:23:00,296 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 17:23:00,298 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 17:23:00,298 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 17:23:00,298 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 17:23:00,299 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.640559 -999.00  +12.60  11.89     36   -1.70 1 1 1 1 1   887    0 15.29 18.18 ----- 16.0 11.9 40.4 16.5 14.2 -29.5 13.8 -29.7 14.1 -29.2 14.6 -28.3
2025-06-13 17:23:00,299 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 17:23:00,299 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 17:23:00,299 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.640559
2025-06-13 17:23:00,299 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 17:23:00,300 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 17:23:00,300 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 17:23:00,300 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 17:23:00,300 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 17:23:00,300 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T17:22:25', tmtdew=16.44, humidity=31.85, cloud=0.0, wind=14.12, temperature=12.88, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T15:22:24.298', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 17:23:00,300 [DEBUG][       Thread-262362][   transport.py][1871] : EOF in transport thread
2025-06-13 17:23:00,384 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 17:23:00,397 [DEBUG][       Thread-262365][   transport.py][1871] : starting thread (client mode): 0x867b7640
2025-06-13 17:23:00,398 [DEBUG][       Thread-262365][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 17:23:00,416 [DEBUG][       Thread-262365][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 17:23:00,416 [ INFO][       Thread-262365][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 17:23:00,425 [DEBUG][       Thread-262365][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 17:23:00,425 [DEBUG][       Thread-262365][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 17:23:00,425 [DEBUG][       Thread-262365][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 17:23:00,425 [DEBUG][       Thread-262365][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:23:00,425 [DEBUG][       Thread-262365][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:23:00,425 [DEBUG][       Thread-262365][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:23:00,425 [DEBUG][       Thread-262365][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:23:00,425 [DEBUG][       Thread-262365][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 17:23:00,425 [DEBUG][       Thread-262365][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 17:23:00,425 [DEBUG][       Thread-262365][   transport.py][1871] : client lang: <none>
2025-06-13 17:23:00,425 [DEBUG][       Thread-262365][   transport.py][1871] : server lang: <none>
2025-06-13 17:23:00,425 [DEBUG][       Thread-262365][   transport.py][1871] : kex follows: False
2025-06-13 17:23:00,425 [DEBUG][       Thread-262365][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 17:23:00,426 [DEBUG][       Thread-262365][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 17:23:00,426 [DEBUG][       Thread-262365][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 17:23:00,426 [DEBUG][       Thread-262365][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 17:23:00,426 [DEBUG][       Thread-262365][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 17:23:00,426 [DEBUG][       Thread-262365][   transport.py][1871] : Compression: none
2025-06-13 17:23:00,426 [DEBUG][       Thread-262365][   transport.py][1871] : === End of kex handshake ===
2025-06-13 17:23:00,496 [DEBUG][       Thread-262365][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 17:23:00,496 [DEBUG][       Thread-262365][   transport.py][1871] : Switch to new keys ...
2025-06-13 17:23:00,497 [DEBUG][       Thread-262365][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 17:23:00,498 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 17:23:00,498 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 17:23:00,553 [DEBUG][       Thread-262365][   transport.py][1871] : userauth is OK
2025-06-13 17:23:00,553 [DEBUG][       Thread-262365][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 17:23:00,553 [DEBUG][       Thread-262365][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 17:23:00,553 [DEBUG][       Thread-262365][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 17:23:00,554 [DEBUG][       Thread-262365][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 17:23:00,575 [ INFO][       Thread-262365][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 17:23:00,575 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 17:23:00,576 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 17:23:01,120 [DEBUG][Thread-262367 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:23:01,561 [DEBUG][       Thread-262365][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 17:23:01,562 [DEBUG][       Thread-262365][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 17:23:01,618 [DEBUG][       Thread-262365][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 17:23:01,618 [DEBUG][       Thread-262365][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 17:23:01,631 [DEBUG][       Thread-262365][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 17:23:01,643 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 17:23:01,643 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 17:23:01,654 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 17:23:01,671 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 17:23:01,671 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 17:23:01,672 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 17:23:01,686 [DEBUG][       Thread-262365][   transport.py][1871] : EOF in transport thread
2025-06-13 17:23:10,142 [DEBUG][Thread-262368 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:23:11,676 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 17:23:11,676 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 17:23:11,676 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 17:23:11,680 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 17:23:12,146 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 17, 22, 57), 16.46, 31.81, 0.0, 13.25, 12.88, 0, 0, 0, 2, 0, 0),)
2025-06-13 17:23:12,146 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 17:22:57
2025-06-13 17:23:12,229 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 17:23:12,235 [DEBUG][       Thread-262369][   transport.py][1871] : starting thread (client mode): 0x863c9060
2025-06-13 17:23:12,235 [DEBUG][       Thread-262369][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 17:23:12,258 [DEBUG][       Thread-262369][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 17:23:12,258 [ INFO][       Thread-262369][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 17:23:12,262 [DEBUG][       Thread-262369][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 17:23:12,262 [DEBUG][       Thread-262369][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 17:23:12,262 [DEBUG][       Thread-262369][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 17:23:12,262 [DEBUG][       Thread-262369][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:23:12,262 [DEBUG][       Thread-262369][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:23:12,262 [DEBUG][       Thread-262369][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:23:12,262 [DEBUG][       Thread-262369][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:23:12,262 [DEBUG][       Thread-262369][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 17:23:12,262 [DEBUG][       Thread-262369][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 17:23:12,262 [DEBUG][       Thread-262369][   transport.py][1871] : client lang: <none>
2025-06-13 17:23:12,262 [DEBUG][       Thread-262369][   transport.py][1871] : server lang: <none>
2025-06-13 17:23:12,262 [DEBUG][       Thread-262369][   transport.py][1871] : kex follows: False
2025-06-13 17:23:12,262 [DEBUG][       Thread-262369][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 17:23:12,262 [DEBUG][       Thread-262369][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 17:23:12,262 [DEBUG][       Thread-262369][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 17:23:12,262 [DEBUG][       Thread-262369][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 17:23:12,262 [DEBUG][       Thread-262369][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 17:23:12,263 [DEBUG][       Thread-262369][   transport.py][1871] : Compression: none
2025-06-13 17:23:12,263 [DEBUG][       Thread-262369][   transport.py][1871] : === End of kex handshake ===
2025-06-13 17:23:12,279 [DEBUG][       Thread-262369][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 17:23:12,280 [DEBUG][       Thread-262369][   transport.py][1871] : Switch to new keys ...
2025-06-13 17:23:12,280 [DEBUG][       Thread-262369][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 17:23:12,280 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 17:23:12,281 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 17:23:12,282 [DEBUG][       Thread-262369][   transport.py][1871] : userauth is OK
2025-06-13 17:23:12,295 [ INFO][       Thread-262369][   transport.py][1871] : Authentication (password) successful!
2025-06-13 17:23:12,296 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 17:23:12,927 [DEBUG][       Thread-262369][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 17:23:12,927 [DEBUG][       Thread-262369][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 17:23:12,969 [DEBUG][       Thread-262369][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 17:23:12,969 [DEBUG][       Thread-262369][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 17:23:12,973 [DEBUG][       Thread-262369][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 17:23:12,988 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 17:23:12,988 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 17:23:12,990 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 17:23:12,992 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 17:23:12,997 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 17:23:12,999 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 17:23:12,999 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 17:23:13,000 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 17:23:13,000 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.640559 -999.00  +12.60  11.89     36   -1.70 1 1 1 1 1   887    0 15.29 18.18 ----- 16.0 11.9 40.4 16.5 14.2 -29.5 13.8 -29.7 14.1 -29.2 14.6 -28.3
2025-06-13 17:23:13,000 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 17:23:13,000 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 17:23:13,000 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.640559
2025-06-13 17:23:13,001 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 17:23:13,001 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 17:23:13,001 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 17:23:13,001 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 17:23:13,001 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 17:23:13,002 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T17:22:57', tmtdew=16.46, humidity=31.81, cloud=0.0, wind=13.25, temperature=12.88, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T15:22:24.298', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 17:23:13,002 [DEBUG][       Thread-262369][   transport.py][1871] : EOF in transport thread
2025-06-13 17:23:13,087 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 17:23:13,102 [DEBUG][       Thread-262372][   transport.py][1871] : starting thread (client mode): 0x86353e50
2025-06-13 17:23:13,102 [DEBUG][       Thread-262372][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 17:23:13,119 [DEBUG][       Thread-262372][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 17:23:13,119 [ INFO][       Thread-262372][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 17:23:13,126 [DEBUG][       Thread-262372][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 17:23:13,126 [DEBUG][       Thread-262372][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 17:23:13,126 [DEBUG][       Thread-262372][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 17:23:13,126 [DEBUG][       Thread-262372][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:23:13,126 [DEBUG][       Thread-262372][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:23:13,126 [DEBUG][       Thread-262372][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:23:13,127 [DEBUG][       Thread-262372][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:23:13,127 [DEBUG][       Thread-262372][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 17:23:13,127 [DEBUG][       Thread-262372][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 17:23:13,127 [DEBUG][       Thread-262372][   transport.py][1871] : client lang: <none>
2025-06-13 17:23:13,127 [DEBUG][       Thread-262372][   transport.py][1871] : server lang: <none>
2025-06-13 17:23:13,127 [DEBUG][       Thread-262372][   transport.py][1871] : kex follows: False
2025-06-13 17:23:13,127 [DEBUG][       Thread-262372][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 17:23:13,127 [DEBUG][       Thread-262372][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 17:23:13,127 [DEBUG][       Thread-262372][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 17:23:13,127 [DEBUG][       Thread-262372][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 17:23:13,127 [DEBUG][       Thread-262372][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 17:23:13,127 [DEBUG][       Thread-262372][   transport.py][1871] : Compression: none
2025-06-13 17:23:13,127 [DEBUG][       Thread-262372][   transport.py][1871] : === End of kex handshake ===
2025-06-13 17:23:13,191 [DEBUG][       Thread-262372][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 17:23:13,191 [DEBUG][       Thread-262372][   transport.py][1871] : Switch to new keys ...
2025-06-13 17:23:13,192 [DEBUG][       Thread-262372][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 17:23:13,192 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 17:23:13,193 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 17:23:13,249 [DEBUG][       Thread-262372][   transport.py][1871] : userauth is OK
2025-06-13 17:23:13,249 [DEBUG][       Thread-262372][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 17:23:13,249 [DEBUG][       Thread-262372][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 17:23:13,250 [DEBUG][       Thread-262372][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 17:23:13,250 [DEBUG][       Thread-262372][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 17:23:13,267 [ INFO][       Thread-262372][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 17:23:13,267 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 17:23:13,267 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 17:23:14,263 [DEBUG][       Thread-262372][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 17:23:14,264 [DEBUG][       Thread-262372][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 17:23:14,312 [DEBUG][       Thread-262372][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 17:23:14,312 [DEBUG][       Thread-262372][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 17:23:14,322 [DEBUG][       Thread-262372][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 17:23:14,331 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 17:23:14,331 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 17:23:14,340 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 17:23:14,351 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 17:23:14,351 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 17:23:14,352 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 17:23:14,362 [DEBUG][       Thread-262372][   transport.py][1871] : EOF in transport thread
2025-06-13 17:23:19,161 [DEBUG][Thread-262374 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:23:24,360 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 17:23:24,360 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 17:23:24,360 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 17:23:24,363 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 17:23:24,820 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 17, 22, 57), 16.46, 31.81, 0.0, 13.25, 12.88, 0, 0, 0, 2, 0, 0),)
2025-06-13 17:23:24,820 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 17:22:57
2025-06-13 17:23:24,902 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 17:23:24,906 [DEBUG][       Thread-262375][   transport.py][1871] : starting thread (client mode): 0x867fed10
2025-06-13 17:23:24,906 [DEBUG][       Thread-262375][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 17:23:24,926 [DEBUG][       Thread-262375][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 17:23:24,926 [ INFO][       Thread-262375][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 17:23:24,929 [DEBUG][       Thread-262375][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 17:23:24,930 [DEBUG][       Thread-262375][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 17:23:24,930 [DEBUG][       Thread-262375][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 17:23:24,930 [DEBUG][       Thread-262375][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:23:24,930 [DEBUG][       Thread-262375][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:23:24,930 [DEBUG][       Thread-262375][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:23:24,930 [DEBUG][       Thread-262375][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:23:24,930 [DEBUG][       Thread-262375][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 17:23:24,930 [DEBUG][       Thread-262375][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 17:23:24,930 [DEBUG][       Thread-262375][   transport.py][1871] : client lang: <none>
2025-06-13 17:23:24,930 [DEBUG][       Thread-262375][   transport.py][1871] : server lang: <none>
2025-06-13 17:23:24,930 [DEBUG][       Thread-262375][   transport.py][1871] : kex follows: False
2025-06-13 17:23:24,930 [DEBUG][       Thread-262375][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 17:23:24,930 [DEBUG][       Thread-262375][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 17:23:24,930 [DEBUG][       Thread-262375][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 17:23:24,930 [DEBUG][       Thread-262375][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 17:23:24,930 [DEBUG][       Thread-262375][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 17:23:24,930 [DEBUG][       Thread-262375][   transport.py][1871] : Compression: none
2025-06-13 17:23:24,930 [DEBUG][       Thread-262375][   transport.py][1871] : === End of kex handshake ===
2025-06-13 17:23:24,947 [DEBUG][       Thread-262375][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 17:23:24,948 [DEBUG][       Thread-262375][   transport.py][1871] : Switch to new keys ...
2025-06-13 17:23:24,948 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 17:23:24,949 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 17:23:24,949 [DEBUG][       Thread-262375][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 17:23:24,950 [DEBUG][       Thread-262375][   transport.py][1871] : userauth is OK
2025-06-13 17:23:24,965 [ INFO][       Thread-262375][   transport.py][1871] : Authentication (password) successful!
2025-06-13 17:23:24,966 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 17:23:25,603 [DEBUG][       Thread-262375][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 17:23:25,604 [DEBUG][       Thread-262375][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 17:23:25,645 [DEBUG][       Thread-262375][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 17:23:25,645 [DEBUG][       Thread-262375][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 17:23:25,648 [DEBUG][       Thread-262375][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 17:23:25,660 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 17:23:25,661 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 17:23:25,663 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 17:23:25,665 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 17:23:25,680 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 17:23:25,682 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 17:23:25,682 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 17:23:25,683 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 17:23:25,683 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.640906 -999.00  +12.60  13.53     36   -1.60 1 1 1 1 1   887    0 15.16 15.75 ----- 13.3 13.5 49.2 16.6 14.1 -29.7 13.8 -29.7 14.0 -28.9 14.6 -28.4
2025-06-13 17:23:25,683 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 17:23:25,683 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 17:23:25,683 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.640906
2025-06-13 17:23:25,684 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 17:23:25,684 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 17:23:25,685 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 17:23:25,685 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 17:23:25,685 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 17:23:25,685 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T17:22:57', tmtdew=16.46, humidity=31.81, cloud=0.0, wind=13.25, temperature=12.88, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T15:22:54.278', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 17:23:25,686 [DEBUG][       Thread-262375][   transport.py][1871] : EOF in transport thread
2025-06-13 17:23:25,718 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:23:25,719 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:23:25,764 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 17:23:25,773 [DEBUG][       Thread-262378][   transport.py][1871] : starting thread (client mode): 0x863a5600
2025-06-13 17:23:25,774 [DEBUG][       Thread-262378][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 17:23:25,788 [DEBUG][       Thread-262378][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 17:23:25,788 [ INFO][       Thread-262378][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 17:23:25,795 [DEBUG][       Thread-262378][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 17:23:25,796 [DEBUG][       Thread-262378][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 17:23:25,796 [DEBUG][       Thread-262378][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 17:23:25,796 [DEBUG][       Thread-262378][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:23:25,796 [DEBUG][       Thread-262378][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:23:25,796 [DEBUG][       Thread-262378][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:23:25,796 [DEBUG][       Thread-262378][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:23:25,796 [DEBUG][       Thread-262378][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 17:23:25,796 [DEBUG][       Thread-262378][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 17:23:25,796 [DEBUG][       Thread-262378][   transport.py][1871] : client lang: <none>
2025-06-13 17:23:25,796 [DEBUG][       Thread-262378][   transport.py][1871] : server lang: <none>
2025-06-13 17:23:25,796 [DEBUG][       Thread-262378][   transport.py][1871] : kex follows: False
2025-06-13 17:23:25,796 [DEBUG][       Thread-262378][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 17:23:25,796 [DEBUG][       Thread-262378][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 17:23:25,796 [DEBUG][       Thread-262378][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 17:23:25,796 [DEBUG][       Thread-262378][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 17:23:25,796 [DEBUG][       Thread-262378][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 17:23:25,796 [DEBUG][       Thread-262378][   transport.py][1871] : Compression: none
2025-06-13 17:23:25,796 [DEBUG][       Thread-262378][   transport.py][1871] : === End of kex handshake ===
2025-06-13 17:23:25,857 [DEBUG][       Thread-262378][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 17:23:25,858 [DEBUG][       Thread-262378][   transport.py][1871] : Switch to new keys ...
2025-06-13 17:23:25,858 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 17:23:25,859 [DEBUG][       Thread-262378][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 17:23:25,860 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 17:23:25,914 [DEBUG][       Thread-262378][   transport.py][1871] : userauth is OK
2025-06-13 17:23:25,914 [DEBUG][       Thread-262378][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 17:23:25,914 [DEBUG][       Thread-262378][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 17:23:25,915 [DEBUG][       Thread-262378][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 17:23:25,915 [DEBUG][       Thread-262378][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 17:23:25,933 [ INFO][       Thread-262378][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 17:23:25,933 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 17:23:25,933 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 17:23:25,998 [DEBUG][Thread-262380 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:23:26,940 [DEBUG][       Thread-262378][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 17:23:26,940 [DEBUG][       Thread-262378][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 17:23:26,992 [DEBUG][       Thread-262378][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 17:23:26,992 [DEBUG][       Thread-262378][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 17:23:27,004 [DEBUG][       Thread-262378][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 17:23:27,013 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 17:23:27,013 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 17:23:27,023 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 17:23:27,035 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 17:23:27,036 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 17:23:27,036 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 17:23:27,044 [DEBUG][       Thread-262378][   transport.py][1871] : EOF in transport thread
2025-06-13 17:23:28,205 [DEBUG][Thread-262381 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:23:37,047 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 17:23:37,047 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 17:23:37,047 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 17:23:37,050 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 17:23:37,225 [DEBUG][Thread-262382 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:23:37,507 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 17, 23, 28), 16.51, 31.43, 0.0, 14.61, 12.84, 0, 0, 0, 2, 0, 0),)
2025-06-13 17:23:37,507 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 17:23:28
2025-06-13 17:23:37,589 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 17:23:37,594 [DEBUG][       Thread-262383][   transport.py][1871] : starting thread (client mode): 0x863cb820
2025-06-13 17:23:37,594 [DEBUG][       Thread-262383][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 17:23:37,615 [DEBUG][       Thread-262383][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 17:23:37,615 [ INFO][       Thread-262383][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 17:23:37,618 [DEBUG][       Thread-262383][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 17:23:37,618 [DEBUG][       Thread-262383][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 17:23:37,618 [DEBUG][       Thread-262383][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 17:23:37,618 [DEBUG][       Thread-262383][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:23:37,618 [DEBUG][       Thread-262383][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:23:37,618 [DEBUG][       Thread-262383][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:23:37,618 [DEBUG][       Thread-262383][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:23:37,618 [DEBUG][       Thread-262383][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 17:23:37,618 [DEBUG][       Thread-262383][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 17:23:37,619 [DEBUG][       Thread-262383][   transport.py][1871] : client lang: <none>
2025-06-13 17:23:37,619 [DEBUG][       Thread-262383][   transport.py][1871] : server lang: <none>
2025-06-13 17:23:37,619 [DEBUG][       Thread-262383][   transport.py][1871] : kex follows: False
2025-06-13 17:23:37,619 [DEBUG][       Thread-262383][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 17:23:37,619 [DEBUG][       Thread-262383][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 17:23:37,619 [DEBUG][       Thread-262383][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 17:23:37,619 [DEBUG][       Thread-262383][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 17:23:37,619 [DEBUG][       Thread-262383][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 17:23:37,619 [DEBUG][       Thread-262383][   transport.py][1871] : Compression: none
2025-06-13 17:23:37,619 [DEBUG][       Thread-262383][   transport.py][1871] : === End of kex handshake ===
2025-06-13 17:23:37,636 [DEBUG][       Thread-262383][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 17:23:37,636 [DEBUG][       Thread-262383][   transport.py][1871] : Switch to new keys ...
2025-06-13 17:23:37,637 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 17:23:37,637 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 17:23:37,638 [DEBUG][       Thread-262383][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 17:23:37,639 [DEBUG][       Thread-262383][   transport.py][1871] : userauth is OK
2025-06-13 17:23:37,664 [ INFO][       Thread-262383][   transport.py][1871] : Authentication (password) successful!
2025-06-13 17:23:37,665 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 17:23:38,323 [DEBUG][       Thread-262383][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 17:23:38,324 [DEBUG][       Thread-262383][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 17:23:38,365 [DEBUG][       Thread-262383][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 17:23:38,365 [DEBUG][       Thread-262383][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 17:23:38,368 [DEBUG][       Thread-262383][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 17:23:38,382 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 17:23:38,382 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 17:23:38,384 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 17:23:38,386 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 17:23:38,391 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 17:23:38,393 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 17:23:38,393 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 17:23:38,394 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 17:23:38,394 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.640906 -999.00  +12.60  13.53     36   -1.60 1 1 1 1 1   887    0 15.16 15.75 ----- 13.3 13.5 49.2 16.6 14.1 -29.7 13.8 -29.7 14.0 -28.9 14.6 -28.4
2025-06-13 17:23:38,394 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 17:23:38,394 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 17:23:38,394 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.640906
2025-06-13 17:23:38,395 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 17:23:38,395 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 17:23:38,395 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 17:23:38,395 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 17:23:38,395 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 17:23:38,396 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T17:23:28', tmtdew=16.51, humidity=31.43, cloud=0.0, wind=14.61, temperature=12.84, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T15:22:54.278', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 17:23:38,396 [DEBUG][       Thread-262383][   transport.py][1871] : EOF in transport thread
2025-06-13 17:23:38,479 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 17:23:38,490 [DEBUG][       Thread-262386][   transport.py][1871] : starting thread (client mode): 0xc5988130
2025-06-13 17:23:38,490 [DEBUG][       Thread-262386][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 17:23:38,505 [DEBUG][       Thread-262386][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 17:23:38,505 [ INFO][       Thread-262386][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 17:23:38,512 [DEBUG][       Thread-262386][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 17:23:38,512 [DEBUG][       Thread-262386][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 17:23:38,512 [DEBUG][       Thread-262386][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 17:23:38,513 [DEBUG][       Thread-262386][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:23:38,513 [DEBUG][       Thread-262386][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:23:38,513 [DEBUG][       Thread-262386][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:23:38,513 [DEBUG][       Thread-262386][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:23:38,513 [DEBUG][       Thread-262386][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 17:23:38,513 [DEBUG][       Thread-262386][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 17:23:38,513 [DEBUG][       Thread-262386][   transport.py][1871] : client lang: <none>
2025-06-13 17:23:38,513 [DEBUG][       Thread-262386][   transport.py][1871] : server lang: <none>
2025-06-13 17:23:38,513 [DEBUG][       Thread-262386][   transport.py][1871] : kex follows: False
2025-06-13 17:23:38,513 [DEBUG][       Thread-262386][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 17:23:38,513 [DEBUG][       Thread-262386][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 17:23:38,513 [DEBUG][       Thread-262386][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 17:23:38,513 [DEBUG][       Thread-262386][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 17:23:38,513 [DEBUG][       Thread-262386][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 17:23:38,513 [DEBUG][       Thread-262386][   transport.py][1871] : Compression: none
2025-06-13 17:23:38,513 [DEBUG][       Thread-262386][   transport.py][1871] : === End of kex handshake ===
2025-06-13 17:23:38,569 [DEBUG][       Thread-262386][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 17:23:38,569 [DEBUG][       Thread-262386][   transport.py][1871] : Switch to new keys ...
2025-06-13 17:23:38,570 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 17:23:38,571 [DEBUG][       Thread-262386][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 17:23:38,572 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 17:23:38,625 [DEBUG][       Thread-262386][   transport.py][1871] : userauth is OK
2025-06-13 17:23:38,625 [DEBUG][       Thread-262386][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 17:23:38,625 [DEBUG][       Thread-262386][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 17:23:38,625 [DEBUG][       Thread-262386][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 17:23:38,625 [DEBUG][       Thread-262386][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 17:23:38,644 [ INFO][       Thread-262386][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 17:23:38,644 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 17:23:38,645 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 17:23:39,648 [DEBUG][       Thread-262386][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 17:23:39,649 [DEBUG][       Thread-262386][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 17:23:39,700 [DEBUG][       Thread-262386][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 17:23:39,700 [DEBUG][       Thread-262386][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 17:23:39,709 [DEBUG][       Thread-262386][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 17:23:39,719 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 17:23:39,719 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 17:23:39,728 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 17:23:39,737 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 17:23:39,737 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 17:23:39,738 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 17:23:39,746 [DEBUG][       Thread-262386][   transport.py][1871] : EOF in transport thread
2025-06-13 17:23:46,248 [DEBUG][Thread-262388 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:23:49,748 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 17:23:49,748 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 17:23:49,748 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 17:23:49,749 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 17:23:50,193 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 17, 23, 28), 16.51, 31.43, 0.0, 14.61, 12.84, 0, 0, 0, 2, 0, 0),)
2025-06-13 17:23:50,193 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 17:23:28
2025-06-13 17:23:50,275 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 17:23:50,281 [DEBUG][       Thread-262389][   transport.py][1871] : starting thread (client mode): 0x8636b730
2025-06-13 17:23:50,281 [DEBUG][       Thread-262389][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 17:23:50,300 [DEBUG][       Thread-262389][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 17:23:50,300 [ INFO][       Thread-262389][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 17:23:50,302 [DEBUG][       Thread-262389][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 17:23:50,302 [DEBUG][       Thread-262389][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 17:23:50,302 [DEBUG][       Thread-262389][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 17:23:50,302 [DEBUG][       Thread-262389][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:23:50,302 [DEBUG][       Thread-262389][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:23:50,302 [DEBUG][       Thread-262389][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:23:50,302 [DEBUG][       Thread-262389][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:23:50,302 [DEBUG][       Thread-262389][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 17:23:50,302 [DEBUG][       Thread-262389][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 17:23:50,302 [DEBUG][       Thread-262389][   transport.py][1871] : client lang: <none>
2025-06-13 17:23:50,302 [DEBUG][       Thread-262389][   transport.py][1871] : server lang: <none>
2025-06-13 17:23:50,302 [DEBUG][       Thread-262389][   transport.py][1871] : kex follows: False
2025-06-13 17:23:50,302 [DEBUG][       Thread-262389][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 17:23:50,302 [DEBUG][       Thread-262389][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 17:23:50,302 [DEBUG][       Thread-262389][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 17:23:50,302 [DEBUG][       Thread-262389][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 17:23:50,302 [DEBUG][       Thread-262389][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 17:23:50,303 [DEBUG][       Thread-262389][   transport.py][1871] : Compression: none
2025-06-13 17:23:50,303 [DEBUG][       Thread-262389][   transport.py][1871] : === End of kex handshake ===
2025-06-13 17:23:50,316 [DEBUG][       Thread-262389][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 17:23:50,316 [DEBUG][       Thread-262389][   transport.py][1871] : Switch to new keys ...
2025-06-13 17:23:50,317 [DEBUG][       Thread-262389][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 17:23:50,317 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 17:23:50,317 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 17:23:50,318 [DEBUG][       Thread-262389][   transport.py][1871] : userauth is OK
2025-06-13 17:23:50,332 [ INFO][       Thread-262389][   transport.py][1871] : Authentication (password) successful!
2025-06-13 17:23:50,332 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 17:23:50,963 [DEBUG][       Thread-262389][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 17:23:50,963 [DEBUG][       Thread-262389][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 17:23:51,005 [DEBUG][       Thread-262389][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 17:23:51,005 [DEBUG][       Thread-262389][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 17:23:51,009 [DEBUG][       Thread-262389][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 17:23:51,018 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 17:23:51,018 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 17:23:51,020 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 17:23:51,021 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 17:23:51,026 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 17:23:51,029 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 17:23:51,029 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 17:23:51,029 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 17:23:51,030 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.641253 -999.00  +12.60  16.88     36   -1.80 1 1 1 1 1   887    0 14.96 12.63 ----- 16.2 16.9 44.0 20.1 14.1 -29.6 13.8 -30.0 14.0 -29.4 14.5 -28.2
2025-06-13 17:23:51,030 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 17:23:51,030 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 17:23:51,030 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.641253
2025-06-13 17:23:51,030 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 17:23:51,031 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 17:23:51,031 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 17:23:51,031 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 17:23:51,031 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 17:23:51,031 [DEBUG][       Thread-262389][   transport.py][1871] : EOF in transport thread
2025-06-13 17:23:51,031 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T17:23:28', tmtdew=16.51, humidity=31.43, cloud=0.0, wind=14.61, temperature=12.84, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T15:23:24.259', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 17:23:51,105 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 17:23:51,118 [DEBUG][       Thread-262392][   transport.py][1871] : starting thread (client mode): 0x86893fd0
2025-06-13 17:23:51,118 [DEBUG][       Thread-262392][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 17:23:51,134 [DEBUG][       Thread-262392][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 17:23:51,135 [ INFO][       Thread-262392][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 17:23:51,142 [DEBUG][       Thread-262392][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 17:23:51,142 [DEBUG][       Thread-262392][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 17:23:51,142 [DEBUG][       Thread-262392][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 17:23:51,142 [DEBUG][       Thread-262392][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:23:51,142 [DEBUG][       Thread-262392][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:23:51,142 [DEBUG][       Thread-262392][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:23:51,142 [DEBUG][       Thread-262392][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:23:51,142 [DEBUG][       Thread-262392][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 17:23:51,142 [DEBUG][       Thread-262392][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 17:23:51,142 [DEBUG][       Thread-262392][   transport.py][1871] : client lang: <none>
2025-06-13 17:23:51,142 [DEBUG][       Thread-262392][   transport.py][1871] : server lang: <none>
2025-06-13 17:23:51,142 [DEBUG][       Thread-262392][   transport.py][1871] : kex follows: False
2025-06-13 17:23:51,142 [DEBUG][       Thread-262392][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 17:23:51,142 [DEBUG][       Thread-262392][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 17:23:51,143 [DEBUG][       Thread-262392][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 17:23:51,143 [DEBUG][       Thread-262392][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 17:23:51,143 [DEBUG][       Thread-262392][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 17:23:51,143 [DEBUG][       Thread-262392][   transport.py][1871] : Compression: none
2025-06-13 17:23:51,143 [DEBUG][       Thread-262392][   transport.py][1871] : === End of kex handshake ===
2025-06-13 17:23:51,209 [DEBUG][       Thread-262392][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 17:23:51,210 [DEBUG][       Thread-262392][   transport.py][1871] : Switch to new keys ...
2025-06-13 17:23:51,210 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 17:23:51,211 [DEBUG][       Thread-262392][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 17:23:51,211 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 17:23:51,272 [DEBUG][       Thread-262392][   transport.py][1871] : userauth is OK
2025-06-13 17:23:51,272 [DEBUG][       Thread-262392][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 17:23:51,272 [DEBUG][       Thread-262392][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 17:23:51,273 [DEBUG][       Thread-262392][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 17:23:51,273 [DEBUG][       Thread-262392][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 17:23:51,292 [ INFO][       Thread-262392][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 17:23:51,292 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 17:23:51,293 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 17:23:52,331 [DEBUG][       Thread-262392][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 17:23:52,331 [DEBUG][       Thread-262392][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 17:23:52,386 [DEBUG][       Thread-262392][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 17:23:52,386 [DEBUG][       Thread-262392][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 17:23:52,396 [DEBUG][       Thread-262392][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 17:23:52,406 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 17:23:52,406 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 17:23:52,415 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 17:23:52,424 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 17:23:52,424 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 17:23:52,425 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 17:23:52,438 [DEBUG][       Thread-262392][   transport.py][1871] : EOF in transport thread
2025-06-13 17:23:55,280 [DEBUG][Thread-262394 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:23:56,168 [DEBUG][Thread-262395 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:23:57,224 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:23:57,224 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:24:02,432 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 17:24:02,432 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 17:24:02,432 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 17:24:02,433 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 17:24:02,904 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 17, 23, 28), 16.51, 31.43, 0.0, 14.61, 12.84, 0, 0, 0, 2, 0, 0),)
2025-06-13 17:24:02,904 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 17:23:28
2025-06-13 17:24:02,985 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 17:24:02,988 [DEBUG][       Thread-262396][   transport.py][1871] : starting thread (client mode): 0x863cbbb0
2025-06-13 17:24:02,988 [DEBUG][       Thread-262396][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 17:24:03,009 [DEBUG][       Thread-262396][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 17:24:03,009 [ INFO][       Thread-262396][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 17:24:03,013 [DEBUG][       Thread-262396][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 17:24:03,013 [DEBUG][       Thread-262396][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 17:24:03,013 [DEBUG][       Thread-262396][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 17:24:03,013 [DEBUG][       Thread-262396][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:24:03,013 [DEBUG][       Thread-262396][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:24:03,013 [DEBUG][       Thread-262396][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:24:03,013 [DEBUG][       Thread-262396][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:24:03,013 [DEBUG][       Thread-262396][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 17:24:03,013 [DEBUG][       Thread-262396][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 17:24:03,013 [DEBUG][       Thread-262396][   transport.py][1871] : client lang: <none>
2025-06-13 17:24:03,013 [DEBUG][       Thread-262396][   transport.py][1871] : server lang: <none>
2025-06-13 17:24:03,013 [DEBUG][       Thread-262396][   transport.py][1871] : kex follows: False
2025-06-13 17:24:03,013 [DEBUG][       Thread-262396][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 17:24:03,013 [DEBUG][       Thread-262396][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 17:24:03,013 [DEBUG][       Thread-262396][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 17:24:03,013 [DEBUG][       Thread-262396][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 17:24:03,013 [DEBUG][       Thread-262396][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 17:24:03,013 [DEBUG][       Thread-262396][   transport.py][1871] : Compression: none
2025-06-13 17:24:03,013 [DEBUG][       Thread-262396][   transport.py][1871] : === End of kex handshake ===
2025-06-13 17:24:03,030 [DEBUG][       Thread-262396][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 17:24:03,030 [DEBUG][       Thread-262396][   transport.py][1871] : Switch to new keys ...
2025-06-13 17:24:03,030 [DEBUG][       Thread-262396][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 17:24:03,030 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 17:24:03,030 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 17:24:03,031 [DEBUG][       Thread-262396][   transport.py][1871] : userauth is OK
2025-06-13 17:24:03,055 [ INFO][       Thread-262396][   transport.py][1871] : Authentication (password) successful!
2025-06-13 17:24:03,055 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 17:24:03,713 [DEBUG][       Thread-262396][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 17:24:03,714 [DEBUG][       Thread-262396][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 17:24:03,757 [DEBUG][       Thread-262396][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 17:24:03,757 [DEBUG][       Thread-262396][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 17:24:03,760 [DEBUG][       Thread-262396][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 17:24:03,773 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 17:24:03,774 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 17:24:03,776 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 17:24:03,778 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 17:24:03,784 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 17:24:03,786 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 17:24:03,786 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 17:24:03,787 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 17:24:03,787 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.641253 -999.00  +12.60  16.88     36   -1.80 1 1 1 1 1   887    0 14.96 12.63 ----- 16.2 16.9 44.0 20.1 14.1 -29.6 13.8 -30.0 14.0 -29.4 14.5 -28.2
2025-06-13 17:24:03,787 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 17:24:03,787 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 17:24:03,787 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.641253
2025-06-13 17:24:03,788 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 17:24:03,788 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 17:24:03,788 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 17:24:03,788 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 17:24:03,789 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 17:24:03,789 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T17:23:28', tmtdew=16.51, humidity=31.43, cloud=0.0, wind=14.61, temperature=12.84, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T15:23:24.259', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 17:24:03,789 [DEBUG][       Thread-262396][   transport.py][1871] : EOF in transport thread
2025-06-13 17:24:03,873 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 17:24:03,889 [DEBUG][       Thread-262399][   transport.py][1871] : starting thread (client mode): 0x863be1d0
2025-06-13 17:24:03,889 [DEBUG][       Thread-262399][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 17:24:03,906 [DEBUG][       Thread-262399][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 17:24:03,906 [ INFO][       Thread-262399][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 17:24:03,914 [DEBUG][       Thread-262399][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 17:24:03,914 [DEBUG][       Thread-262399][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 17:24:03,914 [DEBUG][       Thread-262399][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 17:24:03,914 [DEBUG][       Thread-262399][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:24:03,915 [DEBUG][       Thread-262399][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:24:03,915 [DEBUG][       Thread-262399][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:24:03,915 [DEBUG][       Thread-262399][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:24:03,915 [DEBUG][       Thread-262399][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 17:24:03,915 [DEBUG][       Thread-262399][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 17:24:03,915 [DEBUG][       Thread-262399][   transport.py][1871] : client lang: <none>
2025-06-13 17:24:03,915 [DEBUG][       Thread-262399][   transport.py][1871] : server lang: <none>
2025-06-13 17:24:03,915 [DEBUG][       Thread-262399][   transport.py][1871] : kex follows: False
2025-06-13 17:24:03,915 [DEBUG][       Thread-262399][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 17:24:03,915 [DEBUG][       Thread-262399][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 17:24:03,915 [DEBUG][       Thread-262399][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 17:24:03,915 [DEBUG][       Thread-262399][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 17:24:03,915 [DEBUG][       Thread-262399][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 17:24:03,915 [DEBUG][       Thread-262399][   transport.py][1871] : Compression: none
2025-06-13 17:24:03,915 [DEBUG][       Thread-262399][   transport.py][1871] : === End of kex handshake ===
2025-06-13 17:24:03,978 [DEBUG][       Thread-262399][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 17:24:03,979 [DEBUG][       Thread-262399][   transport.py][1871] : Switch to new keys ...
2025-06-13 17:24:03,979 [DEBUG][       Thread-262399][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 17:24:03,980 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 17:24:03,981 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 17:24:04,041 [DEBUG][       Thread-262399][   transport.py][1871] : userauth is OK
2025-06-13 17:24:04,041 [DEBUG][       Thread-262399][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 17:24:04,041 [DEBUG][       Thread-262399][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 17:24:04,041 [DEBUG][       Thread-262399][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 17:24:04,041 [DEBUG][       Thread-262399][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 17:24:04,060 [ INFO][       Thread-262399][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 17:24:04,060 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 17:24:04,060 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 17:24:04,298 [DEBUG][Thread-262401 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:24:05,104 [DEBUG][       Thread-262399][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 17:24:05,105 [DEBUG][       Thread-262399][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 17:24:05,159 [DEBUG][       Thread-262399][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 17:24:05,159 [DEBUG][       Thread-262399][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 17:24:05,171 [DEBUG][       Thread-262399][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 17:24:05,180 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 17:24:05,181 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 17:24:05,190 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 17:24:05,199 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 17:24:05,199 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 17:24:05,200 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 17:24:05,208 [DEBUG][       Thread-262399][   transport.py][1871] : EOF in transport thread
2025-06-13 17:24:13,321 [DEBUG][Thread-262402 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:24:15,210 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 17:24:15,211 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 17:24:15,211 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 17:24:15,213 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 17:24:15,679 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 17, 24), 16.49, 31.48, 0.0, 15.83, 12.85, 0, 0, 0, 2, 0, 0),)
2025-06-13 17:24:15,679 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 17:24:00
2025-06-13 17:24:15,761 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 17:24:15,767 [DEBUG][       Thread-262403][   transport.py][1871] : starting thread (client mode): 0x863cabc0
2025-06-13 17:24:15,767 [DEBUG][       Thread-262403][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 17:24:15,787 [DEBUG][       Thread-262403][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 17:24:15,787 [ INFO][       Thread-262403][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 17:24:15,791 [DEBUG][       Thread-262403][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 17:24:15,791 [DEBUG][       Thread-262403][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 17:24:15,791 [DEBUG][       Thread-262403][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 17:24:15,791 [DEBUG][       Thread-262403][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:24:15,791 [DEBUG][       Thread-262403][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:24:15,791 [DEBUG][       Thread-262403][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:24:15,791 [DEBUG][       Thread-262403][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:24:15,791 [DEBUG][       Thread-262403][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 17:24:15,791 [DEBUG][       Thread-262403][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 17:24:15,791 [DEBUG][       Thread-262403][   transport.py][1871] : client lang: <none>
2025-06-13 17:24:15,791 [DEBUG][       Thread-262403][   transport.py][1871] : server lang: <none>
2025-06-13 17:24:15,792 [DEBUG][       Thread-262403][   transport.py][1871] : kex follows: False
2025-06-13 17:24:15,792 [DEBUG][       Thread-262403][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 17:24:15,792 [DEBUG][       Thread-262403][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 17:24:15,792 [DEBUG][       Thread-262403][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 17:24:15,792 [DEBUG][       Thread-262403][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 17:24:15,792 [DEBUG][       Thread-262403][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 17:24:15,792 [DEBUG][       Thread-262403][   transport.py][1871] : Compression: none
2025-06-13 17:24:15,792 [DEBUG][       Thread-262403][   transport.py][1871] : === End of kex handshake ===
2025-06-13 17:24:15,809 [DEBUG][       Thread-262403][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 17:24:15,809 [DEBUG][       Thread-262403][   transport.py][1871] : Switch to new keys ...
2025-06-13 17:24:15,810 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 17:24:15,810 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 17:24:15,811 [DEBUG][       Thread-262403][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 17:24:15,811 [DEBUG][       Thread-262403][   transport.py][1871] : userauth is OK
2025-06-13 17:24:15,824 [ INFO][       Thread-262403][   transport.py][1871] : Authentication (password) successful!
2025-06-13 17:24:15,825 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 17:24:16,481 [DEBUG][       Thread-262403][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 17:24:16,481 [DEBUG][       Thread-262403][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 17:24:16,525 [DEBUG][       Thread-262403][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 17:24:16,525 [DEBUG][       Thread-262403][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 17:24:16,528 [DEBUG][       Thread-262403][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 17:24:16,541 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 17:24:16,542 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 17:24:16,543 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 17:24:16,545 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 17:24:16,550 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 17:24:16,552 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 17:24:16,552 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 17:24:16,553 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 17:24:16,553 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.641253 -999.00  +12.60  16.88     36   -1.80 1 1 1 1 1   887    0 14.96 12.63 ----- 16.2 16.9 44.0 20.1 14.1 -29.6 13.8 -30.0 14.0 -29.4 14.5 -28.2
2025-06-13 17:24:16,553 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 17:24:16,553 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 17:24:16,553 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.641253
2025-06-13 17:24:16,553 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 17:24:16,554 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 17:24:16,554 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 17:24:16,554 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 17:24:16,554 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 17:24:16,554 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T17:24:00', tmtdew=16.49, humidity=31.48, cloud=0.0, wind=15.83, temperature=12.85, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T15:23:24.259', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 17:24:16,555 [DEBUG][       Thread-262403][   transport.py][1871] : EOF in transport thread
2025-06-13 17:24:16,638 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 17:24:16,651 [DEBUG][       Thread-262406][   transport.py][1871] : starting thread (client mode): 0x863a7f40
2025-06-13 17:24:16,651 [DEBUG][       Thread-262406][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 17:24:16,666 [DEBUG][       Thread-262406][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 17:24:16,666 [ INFO][       Thread-262406][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 17:24:16,674 [DEBUG][       Thread-262406][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 17:24:16,674 [DEBUG][       Thread-262406][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 17:24:16,674 [DEBUG][       Thread-262406][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 17:24:16,674 [DEBUG][       Thread-262406][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:24:16,674 [DEBUG][       Thread-262406][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:24:16,674 [DEBUG][       Thread-262406][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:24:16,674 [DEBUG][       Thread-262406][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:24:16,674 [DEBUG][       Thread-262406][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 17:24:16,674 [DEBUG][       Thread-262406][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 17:24:16,674 [DEBUG][       Thread-262406][   transport.py][1871] : client lang: <none>
2025-06-13 17:24:16,674 [DEBUG][       Thread-262406][   transport.py][1871] : server lang: <none>
2025-06-13 17:24:16,674 [DEBUG][       Thread-262406][   transport.py][1871] : kex follows: False
2025-06-13 17:24:16,674 [DEBUG][       Thread-262406][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 17:24:16,674 [DEBUG][       Thread-262406][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 17:24:16,674 [DEBUG][       Thread-262406][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 17:24:16,674 [DEBUG][       Thread-262406][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 17:24:16,675 [DEBUG][       Thread-262406][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 17:24:16,675 [DEBUG][       Thread-262406][   transport.py][1871] : Compression: none
2025-06-13 17:24:16,675 [DEBUG][       Thread-262406][   transport.py][1871] : === End of kex handshake ===
2025-06-13 17:24:16,734 [DEBUG][       Thread-262406][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 17:24:16,735 [DEBUG][       Thread-262406][   transport.py][1871] : Switch to new keys ...
2025-06-13 17:24:16,736 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 17:24:16,736 [DEBUG][       Thread-262406][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 17:24:16,737 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 17:24:16,793 [DEBUG][       Thread-262406][   transport.py][1871] : userauth is OK
2025-06-13 17:24:16,794 [DEBUG][       Thread-262406][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 17:24:16,794 [DEBUG][       Thread-262406][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 17:24:16,794 [DEBUG][       Thread-262406][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 17:24:16,794 [DEBUG][       Thread-262406][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 17:24:16,812 [ INFO][       Thread-262406][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 17:24:16,813 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 17:24:16,813 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 17:24:17,814 [DEBUG][       Thread-262406][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 17:24:17,814 [DEBUG][       Thread-262406][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 17:24:17,864 [DEBUG][       Thread-262406][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 17:24:17,865 [DEBUG][       Thread-262406][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 17:24:17,874 [DEBUG][       Thread-262406][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 17:24:17,882 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 17:24:17,882 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 17:24:17,891 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 17:24:17,900 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 17:24:17,901 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 17:24:17,901 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 17:24:17,912 [DEBUG][       Thread-262406][   transport.py][1871] : EOF in transport thread
2025-06-13 17:24:22,342 [DEBUG][Thread-262408 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:24:25,856 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:24:25,857 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:24:26,044 [DEBUG][Thread-262409 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:24:27,911 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 17:24:27,912 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 17:24:27,912 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 17:24:27,913 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 17:24:28,356 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 17, 24), 16.49, 31.48, 0.0, 15.83, 12.85, 0, 0, 0, 2, 0, 0),)
2025-06-13 17:24:28,356 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 17:24:00
2025-06-13 17:24:28,437 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 17:24:28,441 [DEBUG][       Thread-262410][   transport.py][1871] : starting thread (client mode): 0x863936d0
2025-06-13 17:24:28,441 [DEBUG][       Thread-262410][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 17:24:28,463 [DEBUG][       Thread-262410][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 17:24:28,463 [ INFO][       Thread-262410][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 17:24:28,467 [DEBUG][       Thread-262410][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 17:24:28,467 [DEBUG][       Thread-262410][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 17:24:28,467 [DEBUG][       Thread-262410][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 17:24:28,467 [DEBUG][       Thread-262410][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:24:28,467 [DEBUG][       Thread-262410][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:24:28,467 [DEBUG][       Thread-262410][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:24:28,467 [DEBUG][       Thread-262410][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:24:28,467 [DEBUG][       Thread-262410][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 17:24:28,467 [DEBUG][       Thread-262410][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 17:24:28,467 [DEBUG][       Thread-262410][   transport.py][1871] : client lang: <none>
2025-06-13 17:24:28,467 [DEBUG][       Thread-262410][   transport.py][1871] : server lang: <none>
2025-06-13 17:24:28,467 [DEBUG][       Thread-262410][   transport.py][1871] : kex follows: False
2025-06-13 17:24:28,467 [DEBUG][       Thread-262410][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 17:24:28,467 [DEBUG][       Thread-262410][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 17:24:28,467 [DEBUG][       Thread-262410][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 17:24:28,468 [DEBUG][       Thread-262410][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 17:24:28,468 [DEBUG][       Thread-262410][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 17:24:28,468 [DEBUG][       Thread-262410][   transport.py][1871] : Compression: none
2025-06-13 17:24:28,468 [DEBUG][       Thread-262410][   transport.py][1871] : === End of kex handshake ===
2025-06-13 17:24:28,486 [DEBUG][       Thread-262410][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 17:24:28,486 [DEBUG][       Thread-262410][   transport.py][1871] : Switch to new keys ...
2025-06-13 17:24:28,487 [DEBUG][       Thread-262410][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 17:24:28,487 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 17:24:28,487 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 17:24:28,488 [DEBUG][       Thread-262410][   transport.py][1871] : userauth is OK
2025-06-13 17:24:28,501 [ INFO][       Thread-262410][   transport.py][1871] : Authentication (password) successful!
2025-06-13 17:24:28,502 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 17:24:29,142 [DEBUG][       Thread-262410][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 17:24:29,143 [DEBUG][       Thread-262410][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 17:24:29,185 [DEBUG][       Thread-262410][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 17:24:29,185 [DEBUG][       Thread-262410][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 17:24:29,189 [DEBUG][       Thread-262410][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 17:24:29,200 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 17:24:29,201 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 17:24:29,203 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 17:24:29,205 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 17:24:29,211 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 17:24:29,213 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 17:24:29,213 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 17:24:29,214 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 17:24:29,214 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.641601 -999.00  +12.60  16.96     36   -1.80 1 1 1 1 1   887    0 14.79 11.12 ----- 16.3 17.0 51.6 19.4 14.1 -29.6 13.8 -30.2 14.0 -29.0 14.5 -28.5
2025-06-13 17:24:29,214 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 17:24:29,214 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 17:24:29,214 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.641601
2025-06-13 17:24:29,215 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 17:24:29,215 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 17:24:29,215 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 17:24:29,215 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 17:24:29,215 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 17:24:29,216 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T17:24:00', tmtdew=16.49, humidity=31.48, cloud=0.0, wind=15.83, temperature=12.85, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T15:23:54.326', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 17:24:29,217 [DEBUG][       Thread-262410][   transport.py][1871] : EOF in transport thread
2025-06-13 17:24:29,299 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 17:24:29,308 [DEBUG][       Thread-262413][   transport.py][1871] : starting thread (client mode): 0x86893a60
2025-06-13 17:24:29,308 [DEBUG][       Thread-262413][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 17:24:29,323 [DEBUG][       Thread-262413][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 17:24:29,323 [ INFO][       Thread-262413][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 17:24:29,335 [DEBUG][       Thread-262413][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 17:24:29,335 [DEBUG][       Thread-262413][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 17:24:29,335 [DEBUG][       Thread-262413][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 17:24:29,335 [DEBUG][       Thread-262413][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:24:29,335 [DEBUG][       Thread-262413][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:24:29,335 [DEBUG][       Thread-262413][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:24:29,335 [DEBUG][       Thread-262413][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:24:29,335 [DEBUG][       Thread-262413][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 17:24:29,335 [DEBUG][       Thread-262413][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 17:24:29,335 [DEBUG][       Thread-262413][   transport.py][1871] : client lang: <none>
2025-06-13 17:24:29,335 [DEBUG][       Thread-262413][   transport.py][1871] : server lang: <none>
2025-06-13 17:24:29,335 [DEBUG][       Thread-262413][   transport.py][1871] : kex follows: False
2025-06-13 17:24:29,335 [DEBUG][       Thread-262413][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 17:24:29,335 [DEBUG][       Thread-262413][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 17:24:29,335 [DEBUG][       Thread-262413][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 17:24:29,336 [DEBUG][       Thread-262413][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 17:24:29,336 [DEBUG][       Thread-262413][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 17:24:29,336 [DEBUG][       Thread-262413][   transport.py][1871] : Compression: none
2025-06-13 17:24:29,336 [DEBUG][       Thread-262413][   transport.py][1871] : === End of kex handshake ===
2025-06-13 17:24:29,394 [DEBUG][       Thread-262413][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 17:24:29,394 [DEBUG][       Thread-262413][   transport.py][1871] : Switch to new keys ...
2025-06-13 17:24:29,395 [DEBUG][       Thread-262413][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 17:24:29,395 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 17:24:29,396 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 17:24:29,453 [DEBUG][       Thread-262413][   transport.py][1871] : userauth is OK
2025-06-13 17:24:29,453 [DEBUG][       Thread-262413][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 17:24:29,453 [DEBUG][       Thread-262413][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 17:24:29,454 [DEBUG][       Thread-262413][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 17:24:29,454 [DEBUG][       Thread-262413][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 17:24:29,481 [ INFO][       Thread-262413][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 17:24:29,481 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 17:24:29,482 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 17:24:30,563 [DEBUG][       Thread-262413][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 17:24:30,563 [DEBUG][       Thread-262413][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 17:24:30,612 [DEBUG][       Thread-262413][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 17:24:30,612 [DEBUG][       Thread-262413][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 17:24:30,622 [DEBUG][       Thread-262413][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 17:24:30,631 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 17:24:30,631 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 17:24:30,640 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 17:24:30,649 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 17:24:30,650 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 17:24:30,650 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 17:24:30,658 [DEBUG][       Thread-262413][   transport.py][1871] : EOF in transport thread
2025-06-13 17:24:31,375 [DEBUG][Thread-262415 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:24:40,393 [DEBUG][Thread-262416 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:24:40,661 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 17:24:40,661 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 17:24:40,661 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 17:24:40,664 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 17:24:41,112 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 17, 24, 32), 16.54, 31.37, 0.0, 13.99, 12.83, 0, 0, 0, 2, 0, 0),)
2025-06-13 17:24:41,112 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 17:24:32
2025-06-13 17:24:41,194 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 17:24:41,199 [DEBUG][       Thread-262417][   transport.py][1871] : starting thread (client mode): 0x8636b100
2025-06-13 17:24:41,199 [DEBUG][       Thread-262417][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 17:24:41,219 [DEBUG][       Thread-262417][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 17:24:41,220 [ INFO][       Thread-262417][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 17:24:41,223 [DEBUG][       Thread-262417][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 17:24:41,223 [DEBUG][       Thread-262417][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 17:24:41,223 [DEBUG][       Thread-262417][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 17:24:41,223 [DEBUG][       Thread-262417][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:24:41,223 [DEBUG][       Thread-262417][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:24:41,223 [DEBUG][       Thread-262417][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:24:41,223 [DEBUG][       Thread-262417][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:24:41,223 [DEBUG][       Thread-262417][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 17:24:41,223 [DEBUG][       Thread-262417][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 17:24:41,223 [DEBUG][       Thread-262417][   transport.py][1871] : client lang: <none>
2025-06-13 17:24:41,223 [DEBUG][       Thread-262417][   transport.py][1871] : server lang: <none>
2025-06-13 17:24:41,223 [DEBUG][       Thread-262417][   transport.py][1871] : kex follows: False
2025-06-13 17:24:41,223 [DEBUG][       Thread-262417][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 17:24:41,223 [DEBUG][       Thread-262417][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 17:24:41,223 [DEBUG][       Thread-262417][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 17:24:41,223 [DEBUG][       Thread-262417][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 17:24:41,223 [DEBUG][       Thread-262417][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 17:24:41,224 [DEBUG][       Thread-262417][   transport.py][1871] : Compression: none
2025-06-13 17:24:41,224 [DEBUG][       Thread-262417][   transport.py][1871] : === End of kex handshake ===
2025-06-13 17:24:41,241 [DEBUG][       Thread-262417][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 17:24:41,242 [DEBUG][       Thread-262417][   transport.py][1871] : Switch to new keys ...
2025-06-13 17:24:41,242 [DEBUG][       Thread-262417][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 17:24:41,242 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 17:24:41,243 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 17:24:41,244 [DEBUG][       Thread-262417][   transport.py][1871] : userauth is OK
2025-06-13 17:24:41,268 [ INFO][       Thread-262417][   transport.py][1871] : Authentication (password) successful!
2025-06-13 17:24:41,269 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 17:24:41,936 [DEBUG][       Thread-262417][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 17:24:41,936 [DEBUG][       Thread-262417][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 17:24:41,981 [DEBUG][       Thread-262417][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 17:24:41,981 [DEBUG][       Thread-262417][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 17:24:41,984 [DEBUG][       Thread-262417][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 17:24:41,998 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 17:24:41,998 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 17:24:42,000 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 17:24:42,001 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 17:24:42,008 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 17:24:42,010 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 17:24:42,010 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 17:24:42,010 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 17:24:42,011 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.641601 -999.00  +12.60  16.96     36   -1.80 1 1 1 1 1   887    0 14.79 11.12 ----- 16.3 17.0 51.6 19.4 14.1 -29.6 13.8 -30.2 14.0 -29.0 14.5 -28.5
2025-06-13 17:24:42,011 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 17:24:42,011 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 17:24:42,011 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.641601
2025-06-13 17:24:42,011 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 17:24:42,012 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 17:24:42,012 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 17:24:42,012 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 17:24:42,012 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 17:24:42,012 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T17:24:32', tmtdew=16.54, humidity=31.37, cloud=0.0, wind=13.99, temperature=12.83, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T15:23:54.326', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 17:24:42,014 [DEBUG][       Thread-262417][   transport.py][1871] : EOF in transport thread
2025-06-13 17:24:42,097 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 17:24:42,109 [DEBUG][       Thread-262420][   transport.py][1871] : starting thread (client mode): 0x867b5690
2025-06-13 17:24:42,110 [DEBUG][       Thread-262420][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 17:24:42,125 [DEBUG][       Thread-262420][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 17:24:42,125 [ INFO][       Thread-262420][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 17:24:42,132 [DEBUG][       Thread-262420][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 17:24:42,132 [DEBUG][       Thread-262420][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 17:24:42,132 [DEBUG][       Thread-262420][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 17:24:42,133 [DEBUG][       Thread-262420][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:24:42,133 [DEBUG][       Thread-262420][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:24:42,133 [DEBUG][       Thread-262420][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:24:42,133 [DEBUG][       Thread-262420][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:24:42,133 [DEBUG][       Thread-262420][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 17:24:42,133 [DEBUG][       Thread-262420][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 17:24:42,133 [DEBUG][       Thread-262420][   transport.py][1871] : client lang: <none>
2025-06-13 17:24:42,133 [DEBUG][       Thread-262420][   transport.py][1871] : server lang: <none>
2025-06-13 17:24:42,133 [DEBUG][       Thread-262420][   transport.py][1871] : kex follows: False
2025-06-13 17:24:42,133 [DEBUG][       Thread-262420][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 17:24:42,133 [DEBUG][       Thread-262420][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 17:24:42,133 [DEBUG][       Thread-262420][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 17:24:42,133 [DEBUG][       Thread-262420][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 17:24:42,133 [DEBUG][       Thread-262420][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 17:24:42,133 [DEBUG][       Thread-262420][   transport.py][1871] : Compression: none
2025-06-13 17:24:42,133 [DEBUG][       Thread-262420][   transport.py][1871] : === End of kex handshake ===
2025-06-13 17:24:42,190 [DEBUG][       Thread-262420][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 17:24:42,190 [DEBUG][       Thread-262420][   transport.py][1871] : Switch to new keys ...
2025-06-13 17:24:42,191 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 17:24:42,191 [DEBUG][       Thread-262420][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 17:24:42,192 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 17:24:42,252 [DEBUG][       Thread-262420][   transport.py][1871] : userauth is OK
2025-06-13 17:24:42,253 [DEBUG][       Thread-262420][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 17:24:42,253 [DEBUG][       Thread-262420][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 17:24:42,253 [DEBUG][       Thread-262420][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 17:24:42,253 [DEBUG][       Thread-262420][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 17:24:42,273 [ INFO][       Thread-262420][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 17:24:42,273 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 17:24:42,282 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 17:24:43,261 [DEBUG][       Thread-262420][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 17:24:43,261 [DEBUG][       Thread-262420][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 17:24:43,311 [DEBUG][       Thread-262420][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 17:24:43,312 [DEBUG][       Thread-262420][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 17:24:43,321 [DEBUG][       Thread-262420][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 17:24:43,329 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 17:24:43,329 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 17:24:43,338 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 17:24:43,346 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 17:24:43,346 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 17:24:43,347 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 17:24:43,354 [DEBUG][       Thread-262420][   transport.py][1871] : EOF in transport thread
2025-06-13 17:24:49,409 [DEBUG][Thread-262422 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:24:53,357 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 17:24:53,358 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 17:24:53,358 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 17:24:53,361 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 17:24:53,808 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 17, 24, 32), 16.54, 31.37, 0.0, 13.99, 12.83, 0, 0, 0, 2, 0, 0),)
2025-06-13 17:24:53,808 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 17:24:32
2025-06-13 17:24:53,890 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 17:24:53,896 [DEBUG][       Thread-262423][   transport.py][1871] : starting thread (client mode): 0x863cb730
2025-06-13 17:24:53,897 [DEBUG][       Thread-262423][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 17:24:53,917 [DEBUG][       Thread-262423][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 17:24:53,917 [ INFO][       Thread-262423][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 17:24:53,920 [DEBUG][       Thread-262423][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 17:24:53,920 [DEBUG][       Thread-262423][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 17:24:53,920 [DEBUG][       Thread-262423][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 17:24:53,920 [DEBUG][       Thread-262423][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:24:53,920 [DEBUG][       Thread-262423][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:24:53,920 [DEBUG][       Thread-262423][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:24:53,920 [DEBUG][       Thread-262423][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:24:53,921 [DEBUG][       Thread-262423][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 17:24:53,921 [DEBUG][       Thread-262423][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 17:24:53,921 [DEBUG][       Thread-262423][   transport.py][1871] : client lang: <none>
2025-06-13 17:24:53,921 [DEBUG][       Thread-262423][   transport.py][1871] : server lang: <none>
2025-06-13 17:24:53,921 [DEBUG][       Thread-262423][   transport.py][1871] : kex follows: False
2025-06-13 17:24:53,921 [DEBUG][       Thread-262423][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 17:24:53,921 [DEBUG][       Thread-262423][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 17:24:53,921 [DEBUG][       Thread-262423][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 17:24:53,921 [DEBUG][       Thread-262423][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 17:24:53,921 [DEBUG][       Thread-262423][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 17:24:53,921 [DEBUG][       Thread-262423][   transport.py][1871] : Compression: none
2025-06-13 17:24:53,921 [DEBUG][       Thread-262423][   transport.py][1871] : === End of kex handshake ===
2025-06-13 17:24:53,937 [DEBUG][       Thread-262423][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 17:24:53,937 [DEBUG][       Thread-262423][   transport.py][1871] : Switch to new keys ...
2025-06-13 17:24:53,938 [DEBUG][       Thread-262423][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 17:24:53,938 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 17:24:53,938 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 17:24:53,939 [DEBUG][       Thread-262423][   transport.py][1871] : userauth is OK
2025-06-13 17:24:53,963 [ INFO][       Thread-262423][   transport.py][1871] : Authentication (password) successful!
2025-06-13 17:24:53,964 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 17:24:54,518 [DEBUG][       Thread-262423][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 17:24:54,518 [DEBUG][       Thread-262423][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 17:24:54,561 [DEBUG][       Thread-262423][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 17:24:54,561 [DEBUG][       Thread-262423][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 17:24:54,565 [DEBUG][       Thread-262423][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 17:24:54,571 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 17:24:54,572 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 17:24:54,573 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 17:24:54,575 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 17:24:54,580 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 17:24:54,582 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 17:24:54,582 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 17:24:54,583 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 17:24:54,583 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.641601 -999.00  +12.60  16.96     36   -1.80 1 1 1 1 1   887    0 14.79 11.12 ----- 16.3 17.0 51.6 19.4 14.1 -29.6 13.8 -30.2 14.0 -29.0 14.5 -28.5
2025-06-13 17:24:54,583 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 17:24:54,583 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 17:24:54,583 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.641601
2025-06-13 17:24:54,583 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 17:24:54,584 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 17:24:54,584 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 17:24:54,584 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 17:24:54,584 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 17:24:54,584 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T17:24:32', tmtdew=16.54, humidity=31.37, cloud=0.0, wind=13.99, temperature=12.83, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T15:23:54.326', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 17:24:54,585 [DEBUG][       Thread-262423][   transport.py][1871] : EOF in transport thread
2025-06-13 17:24:54,671 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 17:24:57,291 [DEBUG][Thread-262426 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:24:58,372 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:24:58,382 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:24:58,436 [DEBUG][Thread-262427 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:25:07,457 [DEBUG][Thread-262428 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:25:16,477 [DEBUG][Thread-262429 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:25:25,499 [DEBUG][Thread-262430 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:25:25,995 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:25:25,997 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:25:26,093 [DEBUG][Thread-262431 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:25:34,521 [DEBUG][Thread-262432 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:25:43,545 [DEBUG][Thread-262433 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:25:52,565 [DEBUG][Thread-262434 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:25:58,429 [DEBUG][Thread-262435 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:25:59,506 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:25:59,508 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:26:01,586 [DEBUG][Thread-262436 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:26:10,605 [DEBUG][Thread-262437 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:26:19,625 [DEBUG][Thread-262438 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:26:26,135 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:26:26,136 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:26:26,138 [DEBUG][Thread-262439 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:26:28,645 [DEBUG][Thread-262440 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:26:37,664 [DEBUG][Thread-262441 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:26:46,688 [DEBUG][Thread-262442 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:26:55,707 [DEBUG][Thread-262443 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:26:59,590 [DEBUG][Thread-262444 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:27:00,671 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:27:00,672 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:27:03,956 [WARNING][ poll_weather_worker][      driver.py][ 286] : Unable to open ssh connection for writing weather state to io.saao.ac.za: [Errno 110] Connection timed out
2025-06-13 17:27:04,725 [DEBUG][Thread-262445 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:27:13,744 [DEBUG][Thread-262446 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:27:13,966 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 17:27:13,967 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 17:27:13,967 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 17:27:13,970 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 17:27:14,454 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 17, 27, 10), 16.28, 32.1, 0.0, 13.52, 12.57, 0, 0, 0, 2, 0, 0),)
2025-06-13 17:27:14,454 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 17:27:10
2025-06-13 17:27:14,536 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 17:27:14,542 [DEBUG][       Thread-262447][   transport.py][1871] : starting thread (client mode): 0x8636a7d0
2025-06-13 17:27:14,542 [DEBUG][       Thread-262447][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 17:27:14,563 [DEBUG][       Thread-262447][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 17:27:14,563 [ INFO][       Thread-262447][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 17:27:14,566 [DEBUG][       Thread-262447][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 17:27:14,566 [DEBUG][       Thread-262447][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 17:27:14,566 [DEBUG][       Thread-262447][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 17:27:14,566 [DEBUG][       Thread-262447][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:27:14,566 [DEBUG][       Thread-262447][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:27:14,566 [DEBUG][       Thread-262447][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:27:14,566 [DEBUG][       Thread-262447][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:27:14,566 [DEBUG][       Thread-262447][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 17:27:14,566 [DEBUG][       Thread-262447][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 17:27:14,566 [DEBUG][       Thread-262447][   transport.py][1871] : client lang: <none>
2025-06-13 17:27:14,566 [DEBUG][       Thread-262447][   transport.py][1871] : server lang: <none>
2025-06-13 17:27:14,566 [DEBUG][       Thread-262447][   transport.py][1871] : kex follows: False
2025-06-13 17:27:14,566 [DEBUG][       Thread-262447][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 17:27:14,567 [DEBUG][       Thread-262447][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 17:27:14,567 [DEBUG][       Thread-262447][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 17:27:14,567 [DEBUG][       Thread-262447][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 17:27:14,567 [DEBUG][       Thread-262447][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 17:27:14,567 [DEBUG][       Thread-262447][   transport.py][1871] : Compression: none
2025-06-13 17:27:14,567 [DEBUG][       Thread-262447][   transport.py][1871] : === End of kex handshake ===
2025-06-13 17:27:14,583 [DEBUG][       Thread-262447][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 17:27:14,584 [DEBUG][       Thread-262447][   transport.py][1871] : Switch to new keys ...
2025-06-13 17:27:14,584 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 17:27:14,585 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 17:27:14,585 [DEBUG][       Thread-262447][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 17:27:14,586 [DEBUG][       Thread-262447][   transport.py][1871] : userauth is OK
2025-06-13 17:27:14,599 [ INFO][       Thread-262447][   transport.py][1871] : Authentication (password) successful!
2025-06-13 17:27:14,600 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 17:27:15,226 [DEBUG][       Thread-262447][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 17:27:15,226 [DEBUG][       Thread-262447][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 17:27:15,269 [DEBUG][       Thread-262447][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 17:27:15,269 [DEBUG][       Thread-262447][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 17:27:15,273 [DEBUG][       Thread-262447][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 17:27:15,284 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 17:27:15,284 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 17:27:15,286 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 17:27:15,288 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 17:27:15,294 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 17:27:15,296 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 17:27:15,296 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 17:27:15,297 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 17:27:15,297 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.643684 -999.00  +12.50  12.83     37   -1.60 1 1 1 1 1   886    0 13.90 -1.96 ----- 14.0 12.8 40.4 18.6 13.9 -29.6 13.6 -30.2 13.7 -29.2 14.2 -28.6
2025-06-13 17:27:15,297 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 17:27:15,297 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 17:27:15,297 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.643684
2025-06-13 17:27:15,297 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 17:27:15,298 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 17:27:15,298 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 17:27:15,298 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 17:27:15,298 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 17:27:15,298 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T17:27:10', tmtdew=16.28, humidity=32.1, cloud=0.0, wind=13.52, temperature=12.57, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T15:26:54.298', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 17:27:15,299 [DEBUG][       Thread-262447][   transport.py][1871] : EOF in transport thread
2025-06-13 17:27:15,382 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 17:27:15,394 [DEBUG][       Thread-262450][   transport.py][1871] : starting thread (client mode): 0xc54b6c20
2025-06-13 17:27:15,394 [DEBUG][       Thread-262450][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 17:27:15,414 [DEBUG][       Thread-262450][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 17:27:15,415 [ INFO][       Thread-262450][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 17:27:15,422 [DEBUG][       Thread-262450][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 17:27:15,422 [DEBUG][       Thread-262450][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 17:27:15,422 [DEBUG][       Thread-262450][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 17:27:15,422 [DEBUG][       Thread-262450][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:27:15,422 [DEBUG][       Thread-262450][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:27:15,422 [DEBUG][       Thread-262450][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:27:15,423 [DEBUG][       Thread-262450][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:27:15,423 [DEBUG][       Thread-262450][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 17:27:15,423 [DEBUG][       Thread-262450][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 17:27:15,423 [DEBUG][       Thread-262450][   transport.py][1871] : client lang: <none>
2025-06-13 17:27:15,423 [DEBUG][       Thread-262450][   transport.py][1871] : server lang: <none>
2025-06-13 17:27:15,423 [DEBUG][       Thread-262450][   transport.py][1871] : kex follows: False
2025-06-13 17:27:15,423 [DEBUG][       Thread-262450][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 17:27:15,423 [DEBUG][       Thread-262450][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 17:27:15,423 [DEBUG][       Thread-262450][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 17:27:15,423 [DEBUG][       Thread-262450][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 17:27:15,423 [DEBUG][       Thread-262450][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 17:27:15,423 [DEBUG][       Thread-262450][   transport.py][1871] : Compression: none
2025-06-13 17:27:15,423 [DEBUG][       Thread-262450][   transport.py][1871] : === End of kex handshake ===
2025-06-13 17:27:15,481 [DEBUG][       Thread-262450][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 17:27:15,482 [DEBUG][       Thread-262450][   transport.py][1871] : Switch to new keys ...
2025-06-13 17:27:15,482 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 17:27:15,483 [DEBUG][       Thread-262450][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 17:27:15,484 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 17:27:15,537 [DEBUG][       Thread-262450][   transport.py][1871] : userauth is OK
2025-06-13 17:27:15,537 [DEBUG][       Thread-262450][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 17:27:15,538 [DEBUG][       Thread-262450][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 17:27:15,538 [DEBUG][       Thread-262450][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 17:27:15,538 [DEBUG][       Thread-262450][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 17:27:15,557 [ INFO][       Thread-262450][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 17:27:15,558 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 17:27:15,558 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 17:27:16,560 [DEBUG][       Thread-262450][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 17:27:16,561 [DEBUG][       Thread-262450][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 17:27:16,612 [DEBUG][       Thread-262450][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 17:27:16,612 [DEBUG][       Thread-262450][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 17:27:16,624 [DEBUG][       Thread-262450][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 17:27:16,635 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 17:27:16,635 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 17:27:16,649 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 17:27:16,658 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 17:27:16,659 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 17:27:16,659 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 17:27:16,668 [DEBUG][       Thread-262450][   transport.py][1871] : EOF in transport thread
2025-06-13 17:27:22,763 [DEBUG][Thread-262452 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:27:26,188 [DEBUG][Thread-262453 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:27:26,295 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:27:26,297 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:27:26,670 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 17:27:26,670 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 17:27:26,670 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 17:27:26,673 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 17:27:27,151 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 17, 27, 10), 16.28, 32.1, 0.0, 13.52, 12.57, 0, 0, 0, 2, 0, 0),)
2025-06-13 17:27:27,151 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 17:27:10
2025-06-13 17:27:27,241 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 17:27:27,245 [DEBUG][       Thread-262454][   transport.py][1871] : starting thread (client mode): 0x863c9090
2025-06-13 17:27:27,245 [DEBUG][       Thread-262454][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 17:27:27,264 [DEBUG][       Thread-262454][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 17:27:27,264 [ INFO][       Thread-262454][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 17:27:27,268 [DEBUG][       Thread-262454][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 17:27:27,268 [DEBUG][       Thread-262454][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 17:27:27,268 [DEBUG][       Thread-262454][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 17:27:27,268 [DEBUG][       Thread-262454][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:27:27,268 [DEBUG][       Thread-262454][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:27:27,268 [DEBUG][       Thread-262454][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:27:27,268 [DEBUG][       Thread-262454][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:27:27,268 [DEBUG][       Thread-262454][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 17:27:27,268 [DEBUG][       Thread-262454][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 17:27:27,268 [DEBUG][       Thread-262454][   transport.py][1871] : client lang: <none>
2025-06-13 17:27:27,268 [DEBUG][       Thread-262454][   transport.py][1871] : server lang: <none>
2025-06-13 17:27:27,268 [DEBUG][       Thread-262454][   transport.py][1871] : kex follows: False
2025-06-13 17:27:27,268 [DEBUG][       Thread-262454][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 17:27:27,268 [DEBUG][       Thread-262454][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 17:27:27,268 [DEBUG][       Thread-262454][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 17:27:27,268 [DEBUG][       Thread-262454][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 17:27:27,268 [DEBUG][       Thread-262454][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 17:27:27,268 [DEBUG][       Thread-262454][   transport.py][1871] : Compression: none
2025-06-13 17:27:27,268 [DEBUG][       Thread-262454][   transport.py][1871] : === End of kex handshake ===
2025-06-13 17:27:27,286 [DEBUG][       Thread-262454][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 17:27:27,287 [DEBUG][       Thread-262454][   transport.py][1871] : Switch to new keys ...
2025-06-13 17:27:27,287 [DEBUG][       Thread-262454][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 17:27:27,288 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 17:27:27,288 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 17:27:27,289 [DEBUG][       Thread-262454][   transport.py][1871] : userauth is OK
2025-06-13 17:27:27,302 [ INFO][       Thread-262454][   transport.py][1871] : Authentication (password) successful!
2025-06-13 17:27:27,303 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 17:27:28,064 [DEBUG][       Thread-262454][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 17:27:28,064 [DEBUG][       Thread-262454][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 17:27:28,105 [DEBUG][       Thread-262454][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 17:27:28,105 [DEBUG][       Thread-262454][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 17:27:28,109 [DEBUG][       Thread-262454][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 17:27:28,121 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 17:27:28,121 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 17:27:28,123 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 17:27:28,125 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 17:27:28,130 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 17:27:28,132 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 17:27:28,132 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 17:27:28,133 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 17:27:28,133 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.643684 -999.00  +12.50  12.83     37   -1.60 1 1 1 1 1   886    0 13.90 -1.96 ----- 14.0 12.8 40.4 18.6 13.9 -29.6 13.6 -30.2 13.7 -29.2 14.2 -28.6
2025-06-13 17:27:28,133 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 17:27:28,133 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 17:27:28,133 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.643684
2025-06-13 17:27:28,134 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 17:27:28,134 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 17:27:28,134 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 17:27:28,135 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 17:27:28,135 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 17:27:28,135 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T17:27:10', tmtdew=16.28, humidity=32.1, cloud=0.0, wind=13.52, temperature=12.57, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T15:26:54.298', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 17:27:28,136 [DEBUG][       Thread-262454][   transport.py][1871] : EOF in transport thread
2025-06-13 17:27:28,218 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 17:27:28,227 [DEBUG][       Thread-262457][   transport.py][1871] : starting thread (client mode): 0x863507c0
2025-06-13 17:27:28,228 [DEBUG][       Thread-262457][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 17:27:28,243 [DEBUG][       Thread-262457][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 17:27:28,243 [ INFO][       Thread-262457][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 17:27:28,250 [DEBUG][       Thread-262457][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 17:27:28,251 [DEBUG][       Thread-262457][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 17:27:28,251 [DEBUG][       Thread-262457][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 17:27:28,251 [DEBUG][       Thread-262457][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:27:28,251 [DEBUG][       Thread-262457][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:27:28,251 [DEBUG][       Thread-262457][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:27:28,251 [DEBUG][       Thread-262457][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:27:28,251 [DEBUG][       Thread-262457][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 17:27:28,251 [DEBUG][       Thread-262457][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 17:27:28,251 [DEBUG][       Thread-262457][   transport.py][1871] : client lang: <none>
2025-06-13 17:27:28,251 [DEBUG][       Thread-262457][   transport.py][1871] : server lang: <none>
2025-06-13 17:27:28,251 [DEBUG][       Thread-262457][   transport.py][1871] : kex follows: False
2025-06-13 17:27:28,251 [DEBUG][       Thread-262457][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 17:27:28,251 [DEBUG][       Thread-262457][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 17:27:28,251 [DEBUG][       Thread-262457][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 17:27:28,251 [DEBUG][       Thread-262457][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 17:27:28,251 [DEBUG][       Thread-262457][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 17:27:28,251 [DEBUG][       Thread-262457][   transport.py][1871] : Compression: none
2025-06-13 17:27:28,251 [DEBUG][       Thread-262457][   transport.py][1871] : === End of kex handshake ===
2025-06-13 17:27:28,309 [DEBUG][       Thread-262457][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 17:27:28,310 [DEBUG][       Thread-262457][   transport.py][1871] : Switch to new keys ...
2025-06-13 17:27:28,310 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 17:27:28,311 [DEBUG][       Thread-262457][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 17:27:28,311 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 17:27:28,365 [DEBUG][       Thread-262457][   transport.py][1871] : userauth is OK
2025-06-13 17:27:28,366 [DEBUG][       Thread-262457][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 17:27:28,366 [DEBUG][       Thread-262457][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 17:27:28,366 [DEBUG][       Thread-262457][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 17:27:28,366 [DEBUG][       Thread-262457][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 17:27:28,382 [ INFO][       Thread-262457][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 17:27:28,382 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 17:27:28,382 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 17:27:29,384 [DEBUG][       Thread-262457][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 17:27:29,384 [DEBUG][       Thread-262457][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 17:27:29,433 [DEBUG][       Thread-262457][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 17:27:29,433 [DEBUG][       Thread-262457][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 17:27:29,442 [DEBUG][       Thread-262457][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 17:27:29,451 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 17:27:29,451 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 17:27:29,460 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 17:27:29,469 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 17:27:29,470 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 17:27:29,470 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 17:27:29,480 [DEBUG][       Thread-262457][   transport.py][1871] : EOF in transport thread
2025-06-13 17:27:31,798 [DEBUG][Thread-262459 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:27:39,472 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 17:27:39,472 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 17:27:39,472 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 17:27:39,475 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 17:27:39,949 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 17, 27, 10), 16.28, 32.1, 0.0, 13.52, 12.57, 0, 0, 0, 2, 0, 0),)
2025-06-13 17:27:39,949 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 17:27:10
2025-06-13 17:27:40,030 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 17:27:40,035 [DEBUG][       Thread-262460][   transport.py][1871] : starting thread (client mode): 0x867fc550
2025-06-13 17:27:40,035 [DEBUG][       Thread-262460][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 17:27:40,056 [DEBUG][       Thread-262460][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 17:27:40,056 [ INFO][       Thread-262460][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 17:27:40,059 [DEBUG][       Thread-262460][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 17:27:40,059 [DEBUG][       Thread-262460][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 17:27:40,059 [DEBUG][       Thread-262460][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 17:27:40,059 [DEBUG][       Thread-262460][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:27:40,059 [DEBUG][       Thread-262460][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:27:40,059 [DEBUG][       Thread-262460][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:27:40,059 [DEBUG][       Thread-262460][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:27:40,059 [DEBUG][       Thread-262460][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 17:27:40,059 [DEBUG][       Thread-262460][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 17:27:40,059 [DEBUG][       Thread-262460][   transport.py][1871] : client lang: <none>
2025-06-13 17:27:40,059 [DEBUG][       Thread-262460][   transport.py][1871] : server lang: <none>
2025-06-13 17:27:40,059 [DEBUG][       Thread-262460][   transport.py][1871] : kex follows: False
2025-06-13 17:27:40,059 [DEBUG][       Thread-262460][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 17:27:40,059 [DEBUG][       Thread-262460][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 17:27:40,059 [DEBUG][       Thread-262460][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 17:27:40,059 [DEBUG][       Thread-262460][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 17:27:40,059 [DEBUG][       Thread-262460][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 17:27:40,059 [DEBUG][       Thread-262460][   transport.py][1871] : Compression: none
2025-06-13 17:27:40,059 [DEBUG][       Thread-262460][   transport.py][1871] : === End of kex handshake ===
2025-06-13 17:27:40,078 [DEBUG][       Thread-262460][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 17:27:40,079 [DEBUG][       Thread-262460][   transport.py][1871] : Switch to new keys ...
2025-06-13 17:27:40,079 [DEBUG][       Thread-262460][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 17:27:40,080 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 17:27:40,080 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 17:27:40,081 [DEBUG][       Thread-262460][   transport.py][1871] : userauth is OK
2025-06-13 17:27:40,094 [ INFO][       Thread-262460][   transport.py][1871] : Authentication (password) successful!
2025-06-13 17:27:40,094 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 17:27:40,820 [DEBUG][Thread-262462 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:27:40,842 [DEBUG][       Thread-262460][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 17:27:40,842 [DEBUG][       Thread-262460][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 17:27:40,884 [DEBUG][       Thread-262460][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 17:27:40,884 [DEBUG][       Thread-262460][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 17:27:40,887 [DEBUG][       Thread-262460][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 17:27:40,900 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 17:27:40,900 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 17:27:40,901 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 17:27:40,902 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 17:27:40,905 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 17:27:40,906 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 17:27:40,906 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 17:27:40,907 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 17:27:40,907 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.643684 -999.00  +12.50  12.83     37   -1.60 1 1 1 1 1   886    0 13.90 -1.96 ----- 14.0 12.8 40.4 18.6 13.9 -29.6 13.6 -30.2 13.7 -29.2 14.2 -28.6
2025-06-13 17:27:40,907 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 17:27:40,907 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 17:27:40,907 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.643684
2025-06-13 17:27:40,907 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 17:27:40,907 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 17:27:40,907 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 17:27:40,907 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 17:27:40,907 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 17:27:40,907 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T17:27:10', tmtdew=16.28, humidity=32.1, cloud=0.0, wind=13.52, temperature=12.57, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T15:26:54.298', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 17:27:40,908 [DEBUG][       Thread-262460][   transport.py][1871] : EOF in transport thread
2025-06-13 17:27:40,978 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 17:27:40,990 [DEBUG][       Thread-262464][   transport.py][1871] : starting thread (client mode): 0x86392320
2025-06-13 17:27:40,990 [DEBUG][       Thread-262464][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 17:27:41,005 [DEBUG][       Thread-262464][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 17:27:41,005 [ INFO][       Thread-262464][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 17:27:41,012 [DEBUG][       Thread-262464][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 17:27:41,012 [DEBUG][       Thread-262464][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 17:27:41,012 [DEBUG][       Thread-262464][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 17:27:41,012 [DEBUG][       Thread-262464][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:27:41,012 [DEBUG][       Thread-262464][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:27:41,012 [DEBUG][       Thread-262464][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:27:41,012 [DEBUG][       Thread-262464][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:27:41,012 [DEBUG][       Thread-262464][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 17:27:41,012 [DEBUG][       Thread-262464][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 17:27:41,012 [DEBUG][       Thread-262464][   transport.py][1871] : client lang: <none>
2025-06-13 17:27:41,012 [DEBUG][       Thread-262464][   transport.py][1871] : server lang: <none>
2025-06-13 17:27:41,012 [DEBUG][       Thread-262464][   transport.py][1871] : kex follows: False
2025-06-13 17:27:41,012 [DEBUG][       Thread-262464][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 17:27:41,012 [DEBUG][       Thread-262464][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 17:27:41,012 [DEBUG][       Thread-262464][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 17:27:41,012 [DEBUG][       Thread-262464][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 17:27:41,012 [DEBUG][       Thread-262464][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 17:27:41,012 [DEBUG][       Thread-262464][   transport.py][1871] : Compression: none
2025-06-13 17:27:41,012 [DEBUG][       Thread-262464][   transport.py][1871] : === End of kex handshake ===
2025-06-13 17:27:41,067 [DEBUG][       Thread-262464][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 17:27:41,067 [DEBUG][       Thread-262464][   transport.py][1871] : Switch to new keys ...
2025-06-13 17:27:41,067 [DEBUG][       Thread-262464][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 17:27:41,068 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 17:27:41,068 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 17:27:41,125 [DEBUG][       Thread-262464][   transport.py][1871] : userauth is OK
2025-06-13 17:27:41,125 [DEBUG][       Thread-262464][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 17:27:41,125 [DEBUG][       Thread-262464][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 17:27:41,125 [DEBUG][       Thread-262464][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 17:27:41,125 [DEBUG][       Thread-262464][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 17:27:41,139 [ INFO][       Thread-262464][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 17:27:41,139 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 17:27:41,139 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 17:27:43,101 [DEBUG][       Thread-262464][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 17:27:43,101 [DEBUG][       Thread-262464][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 17:27:43,157 [DEBUG][       Thread-262464][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 17:27:43,157 [DEBUG][       Thread-262464][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 17:27:43,165 [DEBUG][       Thread-262464][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 17:27:43,173 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 17:27:43,173 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 17:27:43,181 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 17:27:43,188 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 17:27:43,188 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 17:27:43,189 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 17:27:43,196 [DEBUG][       Thread-262464][   transport.py][1871] : EOF in transport thread
2025-06-13 17:27:49,838 [DEBUG][Thread-262466 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:27:53,199 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 17:27:53,199 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 17:27:53,199 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 17:27:53,202 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 17:27:53,673 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 17, 27, 42), 16.28, 32.1, 0.0, 15.56, 12.58, 0, 0, 0, 2, 0, 0),)
2025-06-13 17:27:53,673 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 17:27:42
2025-06-13 17:27:53,753 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 17:27:53,759 [DEBUG][       Thread-262467][   transport.py][1871] : starting thread (client mode): 0x863510f0
2025-06-13 17:27:53,759 [DEBUG][       Thread-262467][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 17:27:53,779 [DEBUG][       Thread-262467][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 17:27:53,779 [ INFO][       Thread-262467][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 17:27:53,782 [DEBUG][       Thread-262467][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 17:27:53,783 [DEBUG][       Thread-262467][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 17:27:53,783 [DEBUG][       Thread-262467][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 17:27:53,783 [DEBUG][       Thread-262467][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:27:53,783 [DEBUG][       Thread-262467][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:27:53,783 [DEBUG][       Thread-262467][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:27:53,783 [DEBUG][       Thread-262467][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:27:53,783 [DEBUG][       Thread-262467][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 17:27:53,783 [DEBUG][       Thread-262467][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 17:27:53,783 [DEBUG][       Thread-262467][   transport.py][1871] : client lang: <none>
2025-06-13 17:27:53,783 [DEBUG][       Thread-262467][   transport.py][1871] : server lang: <none>
2025-06-13 17:27:53,783 [DEBUG][       Thread-262467][   transport.py][1871] : kex follows: False
2025-06-13 17:27:53,783 [DEBUG][       Thread-262467][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 17:27:53,783 [DEBUG][       Thread-262467][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 17:27:53,783 [DEBUG][       Thread-262467][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 17:27:53,783 [DEBUG][       Thread-262467][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 17:27:53,783 [DEBUG][       Thread-262467][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 17:27:53,783 [DEBUG][       Thread-262467][   transport.py][1871] : Compression: none
2025-06-13 17:27:53,783 [DEBUG][       Thread-262467][   transport.py][1871] : === End of kex handshake ===
2025-06-13 17:27:53,816 [DEBUG][       Thread-262467][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 17:27:53,817 [DEBUG][       Thread-262467][   transport.py][1871] : Switch to new keys ...
2025-06-13 17:27:53,818 [DEBUG][       Thread-262467][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 17:27:53,818 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 17:27:53,818 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 17:27:53,819 [DEBUG][       Thread-262467][   transport.py][1871] : userauth is OK
2025-06-13 17:27:53,833 [ INFO][       Thread-262467][   transport.py][1871] : Authentication (password) successful!
2025-06-13 17:27:53,833 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 17:27:54,442 [DEBUG][       Thread-262467][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 17:27:54,443 [DEBUG][       Thread-262467][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 17:27:54,485 [DEBUG][       Thread-262467][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 17:27:54,485 [DEBUG][       Thread-262467][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 17:27:54,488 [DEBUG][       Thread-262467][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 17:27:54,500 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 17:27:54,500 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 17:27:54,502 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 17:27:54,504 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 17:27:54,509 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 17:27:54,511 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 17:27:54,511 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 17:27:54,512 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 17:27:54,512 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.644031 -999.00  +12.40  19.80     36   -1.80 1 1 1 1 1   886    0 14.19 -4.70 ----- 16.8 19.8 51.0 21.6 13.8 -29.7 13.6 -30.0 13.7 -29.2 14.2 -28.5
2025-06-13 17:27:54,512 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 17:27:54,512 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 17:27:54,512 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.644031
2025-06-13 17:27:54,513 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 17:27:54,513 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 17:27:54,513 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 17:27:54,513 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 17:27:54,513 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 17:27:54,514 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T17:27:42', tmtdew=16.28, humidity=32.1, cloud=0.0, wind=15.56, temperature=12.58, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T15:27:24.278', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 17:27:54,515 [DEBUG][       Thread-262467][   transport.py][1871] : EOF in transport thread
2025-06-13 17:27:54,598 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 17:27:54,610 [DEBUG][       Thread-262470][   transport.py][1871] : starting thread (client mode): 0x867ffb20
2025-06-13 17:27:54,610 [DEBUG][       Thread-262470][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 17:27:54,625 [DEBUG][       Thread-262470][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 17:27:54,626 [ INFO][       Thread-262470][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 17:27:54,633 [DEBUG][       Thread-262470][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 17:27:54,634 [DEBUG][       Thread-262470][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 17:27:54,634 [DEBUG][       Thread-262470][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 17:27:54,634 [DEBUG][       Thread-262470][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:27:54,634 [DEBUG][       Thread-262470][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:27:54,634 [DEBUG][       Thread-262470][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:27:54,634 [DEBUG][       Thread-262470][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:27:54,634 [DEBUG][       Thread-262470][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 17:27:54,634 [DEBUG][       Thread-262470][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 17:27:54,634 [DEBUG][       Thread-262470][   transport.py][1871] : client lang: <none>
2025-06-13 17:27:54,634 [DEBUG][       Thread-262470][   transport.py][1871] : server lang: <none>
2025-06-13 17:27:54,634 [DEBUG][       Thread-262470][   transport.py][1871] : kex follows: False
2025-06-13 17:27:54,634 [DEBUG][       Thread-262470][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 17:27:54,634 [DEBUG][       Thread-262470][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 17:27:54,634 [DEBUG][       Thread-262470][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 17:27:54,634 [DEBUG][       Thread-262470][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 17:27:54,634 [DEBUG][       Thread-262470][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 17:27:54,634 [DEBUG][       Thread-262470][   transport.py][1871] : Compression: none
2025-06-13 17:27:54,634 [DEBUG][       Thread-262470][   transport.py][1871] : === End of kex handshake ===
2025-06-13 17:27:54,697 [DEBUG][       Thread-262470][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 17:27:54,698 [DEBUG][       Thread-262470][   transport.py][1871] : Switch to new keys ...
2025-06-13 17:27:54,699 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 17:27:54,699 [DEBUG][       Thread-262470][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 17:27:54,700 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 17:27:54,753 [DEBUG][       Thread-262470][   transport.py][1871] : userauth is OK
2025-06-13 17:27:54,754 [DEBUG][       Thread-262470][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 17:27:54,754 [DEBUG][       Thread-262470][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 17:27:54,754 [DEBUG][       Thread-262470][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 17:27:54,754 [DEBUG][       Thread-262470][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 17:27:54,776 [ INFO][       Thread-262470][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 17:27:54,776 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 17:27:54,777 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 17:27:55,771 [DEBUG][       Thread-262470][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 17:27:55,772 [DEBUG][       Thread-262470][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 17:27:55,820 [DEBUG][       Thread-262470][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 17:27:55,820 [DEBUG][       Thread-262470][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 17:27:55,830 [DEBUG][       Thread-262470][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 17:27:55,839 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 17:27:55,839 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 17:27:55,848 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 17:27:55,857 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 17:27:55,858 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 17:27:55,858 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 17:27:55,866 [DEBUG][       Thread-262470][   transport.py][1871] : EOF in transport thread
2025-06-13 17:27:58,859 [DEBUG][Thread-262472 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:28:00,742 [DEBUG][Thread-262473 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:28:01,786 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:28:01,787 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:28:05,869 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 17:28:05,869 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 17:28:05,869 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 17:28:05,872 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 17:28:06,336 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 17, 27, 42), 16.28, 32.1, 0.0, 15.56, 12.58, 0, 0, 0, 2, 0, 0),)
2025-06-13 17:28:06,336 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 17:27:42
2025-06-13 17:28:06,417 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 17:28:06,421 [DEBUG][       Thread-262474][   transport.py][1871] : starting thread (client mode): 0x867ff5b0
2025-06-13 17:28:06,421 [DEBUG][       Thread-262474][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 17:28:06,441 [DEBUG][       Thread-262474][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 17:28:06,441 [ INFO][       Thread-262474][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 17:28:06,444 [DEBUG][       Thread-262474][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 17:28:06,444 [DEBUG][       Thread-262474][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 17:28:06,444 [DEBUG][       Thread-262474][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 17:28:06,444 [DEBUG][       Thread-262474][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:28:06,444 [DEBUG][       Thread-262474][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:28:06,444 [DEBUG][       Thread-262474][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:28:06,444 [DEBUG][       Thread-262474][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:28:06,444 [DEBUG][       Thread-262474][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 17:28:06,444 [DEBUG][       Thread-262474][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 17:28:06,444 [DEBUG][       Thread-262474][   transport.py][1871] : client lang: <none>
2025-06-13 17:28:06,444 [DEBUG][       Thread-262474][   transport.py][1871] : server lang: <none>
2025-06-13 17:28:06,444 [DEBUG][       Thread-262474][   transport.py][1871] : kex follows: False
2025-06-13 17:28:06,444 [DEBUG][       Thread-262474][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 17:28:06,444 [DEBUG][       Thread-262474][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 17:28:06,444 [DEBUG][       Thread-262474][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 17:28:06,445 [DEBUG][       Thread-262474][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 17:28:06,445 [DEBUG][       Thread-262474][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 17:28:06,445 [DEBUG][       Thread-262474][   transport.py][1871] : Compression: none
2025-06-13 17:28:06,445 [DEBUG][       Thread-262474][   transport.py][1871] : === End of kex handshake ===
2025-06-13 17:28:06,462 [DEBUG][       Thread-262474][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 17:28:06,462 [DEBUG][       Thread-262474][   transport.py][1871] : Switch to new keys ...
2025-06-13 17:28:06,463 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 17:28:06,463 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 17:28:06,464 [DEBUG][       Thread-262474][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 17:28:06,464 [DEBUG][       Thread-262474][   transport.py][1871] : userauth is OK
2025-06-13 17:28:06,489 [ INFO][       Thread-262474][   transport.py][1871] : Authentication (password) successful!
2025-06-13 17:28:06,490 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 17:28:07,306 [DEBUG][       Thread-262474][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 17:28:07,307 [DEBUG][       Thread-262474][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 17:28:07,349 [DEBUG][       Thread-262474][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 17:28:07,349 [DEBUG][       Thread-262474][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 17:28:07,352 [DEBUG][       Thread-262474][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 17:28:07,364 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 17:28:07,364 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 17:28:07,366 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 17:28:07,368 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 17:28:07,374 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 17:28:07,376 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 17:28:07,376 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 17:28:07,377 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 17:28:07,377 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.644031 -999.00  +12.40  19.80     36   -1.80 1 1 1 1 1   886    0 14.19 -4.70 ----- 16.8 19.8 51.0 21.6 13.8 -29.7 13.6 -30.0 13.7 -29.2 14.2 -28.5
2025-06-13 17:28:07,377 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 17:28:07,378 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 17:28:07,378 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.644031
2025-06-13 17:28:07,378 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 17:28:07,379 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 17:28:07,379 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 17:28:07,379 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 17:28:07,379 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 17:28:07,379 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T17:27:42', tmtdew=16.28, humidity=32.1, cloud=0.0, wind=15.56, temperature=12.58, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T15:27:24.278', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 17:28:07,379 [DEBUG][       Thread-262474][   transport.py][1871] : EOF in transport thread
2025-06-13 17:28:07,463 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 17:28:07,473 [DEBUG][       Thread-262477][   transport.py][1871] : starting thread (client mode): 0x863923e0
2025-06-13 17:28:07,473 [DEBUG][       Thread-262477][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 17:28:07,488 [DEBUG][       Thread-262477][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 17:28:07,488 [ INFO][       Thread-262477][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 17:28:07,496 [DEBUG][       Thread-262477][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 17:28:07,496 [DEBUG][       Thread-262477][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 17:28:07,496 [DEBUG][       Thread-262477][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 17:28:07,496 [DEBUG][       Thread-262477][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:28:07,496 [DEBUG][       Thread-262477][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:28:07,496 [DEBUG][       Thread-262477][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:28:07,496 [DEBUG][       Thread-262477][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:28:07,496 [DEBUG][       Thread-262477][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 17:28:07,496 [DEBUG][       Thread-262477][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 17:28:07,496 [DEBUG][       Thread-262477][   transport.py][1871] : client lang: <none>
2025-06-13 17:28:07,497 [DEBUG][       Thread-262477][   transport.py][1871] : server lang: <none>
2025-06-13 17:28:07,497 [DEBUG][       Thread-262477][   transport.py][1871] : kex follows: False
2025-06-13 17:28:07,497 [DEBUG][       Thread-262477][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 17:28:07,497 [DEBUG][       Thread-262477][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 17:28:07,497 [DEBUG][       Thread-262477][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 17:28:07,497 [DEBUG][       Thread-262477][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 17:28:07,497 [DEBUG][       Thread-262477][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 17:28:07,497 [DEBUG][       Thread-262477][   transport.py][1871] : Compression: none
2025-06-13 17:28:07,497 [DEBUG][       Thread-262477][   transport.py][1871] : === End of kex handshake ===
2025-06-13 17:28:07,553 [DEBUG][       Thread-262477][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 17:28:07,554 [DEBUG][       Thread-262477][   transport.py][1871] : Switch to new keys ...
2025-06-13 17:28:07,554 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 17:28:07,555 [DEBUG][       Thread-262477][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 17:28:07,555 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 17:28:07,609 [DEBUG][       Thread-262477][   transport.py][1871] : userauth is OK
2025-06-13 17:28:07,610 [DEBUG][       Thread-262477][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 17:28:07,610 [DEBUG][       Thread-262477][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 17:28:07,610 [DEBUG][       Thread-262477][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 17:28:07,610 [DEBUG][       Thread-262477][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 17:28:07,629 [ INFO][       Thread-262477][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 17:28:07,629 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 17:28:07,630 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 17:28:07,893 [DEBUG][Thread-262479 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:28:08,626 [DEBUG][       Thread-262477][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 17:28:08,626 [DEBUG][       Thread-262477][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 17:28:08,682 [DEBUG][       Thread-262477][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 17:28:08,682 [DEBUG][       Thread-262477][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 17:28:08,691 [DEBUG][       Thread-262477][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 17:28:08,701 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 17:28:08,701 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 17:28:08,710 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 17:28:08,724 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 17:28:08,725 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 17:28:08,725 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 17:28:08,733 [DEBUG][       Thread-262477][   transport.py][1871] : EOF in transport thread
2025-06-13 17:28:16,914 [DEBUG][Thread-262480 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:28:18,736 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 17:28:18,736 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 17:28:18,736 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 17:28:18,739 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 17:28:19,202 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 17, 28, 14), 16.26, 31.97, 0.0, 13.02, 12.64, 0, 0, 0, 2, 0, 0),)
2025-06-13 17:28:19,202 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 17:28:14
2025-06-13 17:28:19,283 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 17:28:19,288 [DEBUG][       Thread-262481][   transport.py][1871] : starting thread (client mode): 0x863cb280
2025-06-13 17:28:19,289 [DEBUG][       Thread-262481][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 17:28:19,309 [DEBUG][       Thread-262481][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 17:28:19,310 [ INFO][       Thread-262481][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 17:28:19,313 [DEBUG][       Thread-262481][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 17:28:19,313 [DEBUG][       Thread-262481][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 17:28:19,313 [DEBUG][       Thread-262481][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 17:28:19,313 [DEBUG][       Thread-262481][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:28:19,313 [DEBUG][       Thread-262481][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:28:19,313 [DEBUG][       Thread-262481][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:28:19,313 [DEBUG][       Thread-262481][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:28:19,313 [DEBUG][       Thread-262481][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 17:28:19,313 [DEBUG][       Thread-262481][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 17:28:19,313 [DEBUG][       Thread-262481][   transport.py][1871] : client lang: <none>
2025-06-13 17:28:19,313 [DEBUG][       Thread-262481][   transport.py][1871] : server lang: <none>
2025-06-13 17:28:19,313 [DEBUG][       Thread-262481][   transport.py][1871] : kex follows: False
2025-06-13 17:28:19,313 [DEBUG][       Thread-262481][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 17:28:19,313 [DEBUG][       Thread-262481][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 17:28:19,313 [DEBUG][       Thread-262481][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 17:28:19,313 [DEBUG][       Thread-262481][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 17:28:19,313 [DEBUG][       Thread-262481][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 17:28:19,313 [DEBUG][       Thread-262481][   transport.py][1871] : Compression: none
2025-06-13 17:28:19,313 [DEBUG][       Thread-262481][   transport.py][1871] : === End of kex handshake ===
2025-06-13 17:28:19,328 [DEBUG][       Thread-262481][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 17:28:19,328 [DEBUG][       Thread-262481][   transport.py][1871] : Switch to new keys ...
2025-06-13 17:28:19,328 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 17:28:19,328 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 17:28:19,328 [DEBUG][       Thread-262481][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 17:28:19,329 [DEBUG][       Thread-262481][   transport.py][1871] : userauth is OK
2025-06-13 17:28:19,353 [ INFO][       Thread-262481][   transport.py][1871] : Authentication (password) successful!
2025-06-13 17:28:19,353 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 17:28:19,991 [DEBUG][       Thread-262481][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 17:28:19,991 [DEBUG][       Thread-262481][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 17:28:20,033 [DEBUG][       Thread-262481][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 17:28:20,033 [DEBUG][       Thread-262481][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 17:28:20,035 [DEBUG][       Thread-262481][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 17:28:20,046 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 17:28:20,046 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 17:28:20,047 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 17:28:20,048 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 17:28:20,051 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 17:28:20,052 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 17:28:20,052 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 17:28:20,052 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 17:28:20,052 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.644378 -999.00  +12.40  13.19     37   -1.80 1 1 1 1 1   885    0 14.36 -6.57 ----- 14.4 13.2 55.8 18.6 13.8 -29.8 13.6 -30.1 13.6 -29.3 14.2 -28.7
2025-06-13 17:28:20,052 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 17:28:20,052 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 17:28:20,052 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.644378
2025-06-13 17:28:20,052 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 17:28:20,052 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 17:28:20,053 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 17:28:20,053 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 17:28:20,053 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 17:28:20,053 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T17:28:14', tmtdew=16.26, humidity=31.97, cloud=0.0, wind=13.02, temperature=12.64, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T15:27:54.259', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 17:28:20,053 [DEBUG][       Thread-262481][   transport.py][1871] : EOF in transport thread
2025-06-13 17:28:20,127 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 17:28:20,144 [DEBUG][       Thread-262484][   transport.py][1871] : starting thread (client mode): 0x86893fd0
2025-06-13 17:28:20,144 [DEBUG][       Thread-262484][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 17:28:20,160 [DEBUG][       Thread-262484][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 17:28:20,160 [ INFO][       Thread-262484][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 17:28:20,167 [DEBUG][       Thread-262484][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 17:28:20,167 [DEBUG][       Thread-262484][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 17:28:20,167 [DEBUG][       Thread-262484][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 17:28:20,167 [DEBUG][       Thread-262484][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:28:20,167 [DEBUG][       Thread-262484][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:28:20,167 [DEBUG][       Thread-262484][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:28:20,167 [DEBUG][       Thread-262484][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:28:20,167 [DEBUG][       Thread-262484][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 17:28:20,167 [DEBUG][       Thread-262484][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 17:28:20,167 [DEBUG][       Thread-262484][   transport.py][1871] : client lang: <none>
2025-06-13 17:28:20,167 [DEBUG][       Thread-262484][   transport.py][1871] : server lang: <none>
2025-06-13 17:28:20,167 [DEBUG][       Thread-262484][   transport.py][1871] : kex follows: False
2025-06-13 17:28:20,167 [DEBUG][       Thread-262484][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 17:28:20,167 [DEBUG][       Thread-262484][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 17:28:20,167 [DEBUG][       Thread-262484][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 17:28:20,167 [DEBUG][       Thread-262484][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 17:28:20,167 [DEBUG][       Thread-262484][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 17:28:20,167 [DEBUG][       Thread-262484][   transport.py][1871] : Compression: none
2025-06-13 17:28:20,167 [DEBUG][       Thread-262484][   transport.py][1871] : === End of kex handshake ===
2025-06-13 17:28:20,224 [DEBUG][       Thread-262484][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 17:28:20,224 [DEBUG][       Thread-262484][   transport.py][1871] : Switch to new keys ...
2025-06-13 17:28:20,224 [DEBUG][       Thread-262484][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 17:28:20,224 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 17:28:20,224 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 17:28:20,281 [DEBUG][       Thread-262484][   transport.py][1871] : userauth is OK
2025-06-13 17:28:20,281 [DEBUG][       Thread-262484][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 17:28:20,281 [DEBUG][       Thread-262484][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 17:28:20,281 [DEBUG][       Thread-262484][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 17:28:20,281 [DEBUG][       Thread-262484][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 17:28:20,295 [ INFO][       Thread-262484][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 17:28:20,295 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 17:28:20,295 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 17:28:21,283 [DEBUG][       Thread-262484][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 17:28:21,283 [DEBUG][       Thread-262484][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 17:28:21,332 [DEBUG][       Thread-262484][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 17:28:21,332 [DEBUG][       Thread-262484][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 17:28:21,341 [DEBUG][       Thread-262484][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 17:28:21,349 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 17:28:21,349 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 17:28:21,358 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 17:28:21,366 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 17:28:21,366 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 17:28:21,366 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 17:28:21,375 [DEBUG][       Thread-262484][   transport.py][1871] : EOF in transport thread
2025-06-13 17:28:25,933 [DEBUG][Thread-262486 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:28:26,239 [DEBUG][Thread-262487 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:28:26,455 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:28:26,456 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:28:31,377 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 17:28:31,377 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 17:28:31,377 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 17:28:31,380 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 17:28:31,840 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 17, 28, 14), 16.26, 31.97, 0.0, 13.02, 12.64, 0, 0, 0, 2, 0, 0),)
2025-06-13 17:28:31,840 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 17:28:14
2025-06-13 17:28:31,921 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 17:28:31,925 [DEBUG][       Thread-262488][   transport.py][1871] : starting thread (client mode): 0x86369cf0
2025-06-13 17:28:31,925 [DEBUG][       Thread-262488][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 17:28:31,945 [DEBUG][       Thread-262488][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 17:28:31,945 [ INFO][       Thread-262488][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 17:28:31,948 [DEBUG][       Thread-262488][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 17:28:31,948 [DEBUG][       Thread-262488][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 17:28:31,948 [DEBUG][       Thread-262488][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 17:28:31,948 [DEBUG][       Thread-262488][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:28:31,948 [DEBUG][       Thread-262488][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:28:31,948 [DEBUG][       Thread-262488][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:28:31,948 [DEBUG][       Thread-262488][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:28:31,948 [DEBUG][       Thread-262488][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 17:28:31,948 [DEBUG][       Thread-262488][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 17:28:31,948 [DEBUG][       Thread-262488][   transport.py][1871] : client lang: <none>
2025-06-13 17:28:31,948 [DEBUG][       Thread-262488][   transport.py][1871] : server lang: <none>
2025-06-13 17:28:31,948 [DEBUG][       Thread-262488][   transport.py][1871] : kex follows: False
2025-06-13 17:28:31,948 [DEBUG][       Thread-262488][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 17:28:31,948 [DEBUG][       Thread-262488][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 17:28:31,948 [DEBUG][       Thread-262488][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 17:28:31,948 [DEBUG][       Thread-262488][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 17:28:31,948 [DEBUG][       Thread-262488][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 17:28:31,948 [DEBUG][       Thread-262488][   transport.py][1871] : Compression: none
2025-06-13 17:28:31,948 [DEBUG][       Thread-262488][   transport.py][1871] : === End of kex handshake ===
2025-06-13 17:28:31,965 [DEBUG][       Thread-262488][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 17:28:31,965 [DEBUG][       Thread-262488][   transport.py][1871] : Switch to new keys ...
2025-06-13 17:28:31,965 [DEBUG][       Thread-262488][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 17:28:31,966 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 17:28:31,966 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 17:28:31,967 [DEBUG][       Thread-262488][   transport.py][1871] : userauth is OK
2025-06-13 17:28:31,982 [ INFO][       Thread-262488][   transport.py][1871] : Authentication (password) successful!
2025-06-13 17:28:31,982 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 17:28:32,746 [DEBUG][       Thread-262488][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 17:28:32,747 [DEBUG][       Thread-262488][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 17:28:32,789 [DEBUG][       Thread-262488][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 17:28:32,789 [DEBUG][       Thread-262488][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 17:28:32,792 [DEBUG][       Thread-262488][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 17:28:32,804 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 17:28:32,805 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 17:28:32,807 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 17:28:32,808 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 17:28:32,814 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 17:28:32,816 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 17:28:32,816 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 17:28:32,817 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 17:28:32,817 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.644378 -999.00  +12.40  13.19     37   -1.80 1 1 1 1 1   885    0 14.36 -6.57 ----- 14.4 13.2 55.8 18.6 13.8 -29.8 13.6 -30.1 13.6 -29.3 14.2 -28.7
2025-06-13 17:28:32,817 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 17:28:32,817 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 17:28:32,817 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.644378
2025-06-13 17:28:32,817 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 17:28:32,818 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 17:28:32,818 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 17:28:32,818 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 17:28:32,818 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 17:28:32,818 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T17:28:14', tmtdew=16.26, humidity=31.97, cloud=0.0, wind=13.02, temperature=12.64, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T15:27:54.259', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 17:28:32,819 [DEBUG][       Thread-262488][   transport.py][1871] : EOF in transport thread
2025-06-13 17:28:32,901 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 17:28:32,911 [DEBUG][       Thread-262491][   transport.py][1871] : starting thread (client mode): 0x86893fd0
2025-06-13 17:28:32,911 [DEBUG][       Thread-262491][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 17:28:32,927 [DEBUG][       Thread-262491][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 17:28:32,928 [ INFO][       Thread-262491][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 17:28:32,935 [DEBUG][       Thread-262491][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 17:28:32,935 [DEBUG][       Thread-262491][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 17:28:32,935 [DEBUG][       Thread-262491][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 17:28:32,935 [DEBUG][       Thread-262491][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:28:32,935 [DEBUG][       Thread-262491][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:28:32,935 [DEBUG][       Thread-262491][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:28:32,935 [DEBUG][       Thread-262491][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:28:32,936 [DEBUG][       Thread-262491][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 17:28:32,936 [DEBUG][       Thread-262491][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 17:28:32,936 [DEBUG][       Thread-262491][   transport.py][1871] : client lang: <none>
2025-06-13 17:28:32,936 [DEBUG][       Thread-262491][   transport.py][1871] : server lang: <none>
2025-06-13 17:28:32,936 [DEBUG][       Thread-262491][   transport.py][1871] : kex follows: False
2025-06-13 17:28:32,936 [DEBUG][       Thread-262491][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 17:28:32,936 [DEBUG][       Thread-262491][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 17:28:32,936 [DEBUG][       Thread-262491][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 17:28:32,936 [DEBUG][       Thread-262491][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 17:28:32,936 [DEBUG][       Thread-262491][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 17:28:32,936 [DEBUG][       Thread-262491][   transport.py][1871] : Compression: none
2025-06-13 17:28:32,936 [DEBUG][       Thread-262491][   transport.py][1871] : === End of kex handshake ===
2025-06-13 17:28:32,994 [DEBUG][       Thread-262491][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 17:28:32,994 [DEBUG][       Thread-262491][   transport.py][1871] : Switch to new keys ...
2025-06-13 17:28:32,995 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 17:28:32,995 [DEBUG][       Thread-262491][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 17:28:32,996 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 17:28:33,049 [DEBUG][       Thread-262491][   transport.py][1871] : userauth is OK
2025-06-13 17:28:33,050 [DEBUG][       Thread-262491][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 17:28:33,050 [DEBUG][       Thread-262491][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 17:28:33,050 [DEBUG][       Thread-262491][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 17:28:33,050 [DEBUG][       Thread-262491][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 17:28:33,070 [ INFO][       Thread-262491][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 17:28:33,071 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 17:28:33,071 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 17:28:34,074 [DEBUG][       Thread-262491][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 17:28:34,074 [DEBUG][       Thread-262491][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 17:28:34,124 [DEBUG][       Thread-262491][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 17:28:34,124 [DEBUG][       Thread-262491][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 17:28:34,133 [DEBUG][       Thread-262491][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 17:28:34,142 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 17:28:34,143 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 17:28:34,151 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 17:28:34,161 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 17:28:34,161 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 17:28:34,162 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 17:28:34,170 [DEBUG][       Thread-262491][   transport.py][1871] : EOF in transport thread
2025-06-13 17:28:34,967 [DEBUG][Thread-262493 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:28:43,992 [DEBUG][Thread-262494 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:28:44,172 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 17:28:44,173 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 17:28:44,173 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 17:28:44,176 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 17:28:44,635 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 17, 28, 14), 16.26, 31.97, 0.0, 13.02, 12.64, 0, 0, 0, 2, 0, 0),)
2025-06-13 17:28:44,635 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 17:28:14
2025-06-13 17:28:44,715 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 17:28:44,722 [DEBUG][       Thread-262495][   transport.py][1871] : starting thread (client mode): 0x8636ab00
2025-06-13 17:28:44,722 [DEBUG][       Thread-262495][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 17:28:44,743 [DEBUG][       Thread-262495][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 17:28:44,743 [ INFO][       Thread-262495][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 17:28:44,747 [DEBUG][       Thread-262495][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 17:28:44,747 [DEBUG][       Thread-262495][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 17:28:44,747 [DEBUG][       Thread-262495][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 17:28:44,747 [DEBUG][       Thread-262495][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:28:44,747 [DEBUG][       Thread-262495][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:28:44,747 [DEBUG][       Thread-262495][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:28:44,747 [DEBUG][       Thread-262495][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:28:44,747 [DEBUG][       Thread-262495][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 17:28:44,747 [DEBUG][       Thread-262495][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 17:28:44,747 [DEBUG][       Thread-262495][   transport.py][1871] : client lang: <none>
2025-06-13 17:28:44,747 [DEBUG][       Thread-262495][   transport.py][1871] : server lang: <none>
2025-06-13 17:28:44,747 [DEBUG][       Thread-262495][   transport.py][1871] : kex follows: False
2025-06-13 17:28:44,747 [DEBUG][       Thread-262495][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 17:28:44,747 [DEBUG][       Thread-262495][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 17:28:44,747 [DEBUG][       Thread-262495][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 17:28:44,747 [DEBUG][       Thread-262495][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 17:28:44,747 [DEBUG][       Thread-262495][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 17:28:44,747 [DEBUG][       Thread-262495][   transport.py][1871] : Compression: none
2025-06-13 17:28:44,747 [DEBUG][       Thread-262495][   transport.py][1871] : === End of kex handshake ===
2025-06-13 17:28:44,766 [DEBUG][       Thread-262495][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 17:28:44,766 [DEBUG][       Thread-262495][   transport.py][1871] : Switch to new keys ...
2025-06-13 17:28:44,767 [DEBUG][       Thread-262495][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 17:28:44,767 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 17:28:44,767 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 17:28:44,768 [DEBUG][       Thread-262495][   transport.py][1871] : userauth is OK
2025-06-13 17:28:44,781 [ INFO][       Thread-262495][   transport.py][1871] : Authentication (password) successful!
2025-06-13 17:28:44,782 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 17:28:45,586 [DEBUG][       Thread-262495][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 17:28:45,586 [DEBUG][       Thread-262495][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 17:28:45,629 [DEBUG][       Thread-262495][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 17:28:45,629 [DEBUG][       Thread-262495][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 17:28:45,632 [DEBUG][       Thread-262495][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 17:28:45,646 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 17:28:45,646 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 17:28:45,648 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 17:28:45,650 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 17:28:45,655 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 17:28:45,657 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 17:28:45,657 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 17:28:45,657 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 17:28:45,658 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.644378 -999.00  +12.40  13.19     37   -1.80 1 1 1 1 1   885    0 14.36 -6.57 ----- 14.4 13.2 55.8 18.6 13.8 -29.8 13.6 -30.1 13.6 -29.3 14.2 -28.7
2025-06-13 17:28:45,658 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 17:28:45,658 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 17:28:45,658 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.644378
2025-06-13 17:28:45,658 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 17:28:45,659 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 17:28:45,659 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 17:28:45,659 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 17:28:45,659 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 17:28:45,659 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T17:28:14', tmtdew=16.26, humidity=31.97, cloud=0.0, wind=13.02, temperature=12.64, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T15:27:54.259', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 17:28:45,659 [DEBUG][       Thread-262495][   transport.py][1871] : EOF in transport thread
2025-06-13 17:28:45,744 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 17:28:45,755 [DEBUG][       Thread-262498][   transport.py][1871] : starting thread (client mode): 0x867fc0a0
2025-06-13 17:28:45,755 [DEBUG][       Thread-262498][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 17:28:45,770 [DEBUG][       Thread-262498][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 17:28:45,770 [ INFO][       Thread-262498][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 17:28:45,778 [DEBUG][       Thread-262498][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 17:28:45,778 [DEBUG][       Thread-262498][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 17:28:45,778 [DEBUG][       Thread-262498][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 17:28:45,778 [DEBUG][       Thread-262498][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:28:45,778 [DEBUG][       Thread-262498][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:28:45,778 [DEBUG][       Thread-262498][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:28:45,778 [DEBUG][       Thread-262498][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:28:45,779 [DEBUG][       Thread-262498][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 17:28:45,779 [DEBUG][       Thread-262498][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 17:28:45,779 [DEBUG][       Thread-262498][   transport.py][1871] : client lang: <none>
2025-06-13 17:28:45,779 [DEBUG][       Thread-262498][   transport.py][1871] : server lang: <none>
2025-06-13 17:28:45,779 [DEBUG][       Thread-262498][   transport.py][1871] : kex follows: False
2025-06-13 17:28:45,779 [DEBUG][       Thread-262498][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 17:28:45,779 [DEBUG][       Thread-262498][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 17:28:45,779 [DEBUG][       Thread-262498][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 17:28:45,779 [DEBUG][       Thread-262498][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 17:28:45,779 [DEBUG][       Thread-262498][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 17:28:45,779 [DEBUG][       Thread-262498][   transport.py][1871] : Compression: none
2025-06-13 17:28:45,779 [DEBUG][       Thread-262498][   transport.py][1871] : === End of kex handshake ===
2025-06-13 17:28:45,838 [DEBUG][       Thread-262498][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 17:28:45,838 [DEBUG][       Thread-262498][   transport.py][1871] : Switch to new keys ...
2025-06-13 17:28:45,839 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 17:28:45,840 [DEBUG][       Thread-262498][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 17:28:45,840 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 17:28:45,897 [DEBUG][       Thread-262498][   transport.py][1871] : userauth is OK
2025-06-13 17:28:45,898 [DEBUG][       Thread-262498][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 17:28:45,898 [DEBUG][       Thread-262498][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 17:28:45,898 [DEBUG][       Thread-262498][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 17:28:45,898 [DEBUG][       Thread-262498][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 17:28:45,922 [ INFO][       Thread-262498][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 17:28:45,922 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 17:28:45,923 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 17:28:46,932 [DEBUG][       Thread-262498][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 17:28:46,932 [DEBUG][       Thread-262498][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 17:28:46,983 [DEBUG][       Thread-262498][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 17:28:46,983 [DEBUG][       Thread-262498][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 17:28:46,992 [DEBUG][       Thread-262498][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 17:28:47,000 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 17:28:47,000 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 17:28:47,007 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 17:28:47,015 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 17:28:47,015 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 17:28:47,015 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 17:28:47,023 [DEBUG][       Thread-262498][   transport.py][1871] : EOF in transport thread
2025-06-13 17:28:53,013 [DEBUG][Thread-262500 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:28:57,026 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 17:28:57,026 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 17:28:57,026 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 17:28:57,029 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 17:28:57,514 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 17, 28, 45), 16.3, 31.89, 0.0, 15.18, 12.61, 0, 0, 0, 2, 0, 0),)
2025-06-13 17:28:57,514 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 17:28:45
2025-06-13 17:28:57,598 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 17:28:57,602 [DEBUG][       Thread-262501][   transport.py][1871] : starting thread (client mode): 0x863684c0
2025-06-13 17:28:57,602 [DEBUG][       Thread-262501][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 17:28:57,622 [DEBUG][       Thread-262501][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 17:28:57,622 [ INFO][       Thread-262501][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 17:28:57,625 [DEBUG][       Thread-262501][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 17:28:57,625 [DEBUG][       Thread-262501][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 17:28:57,625 [DEBUG][       Thread-262501][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 17:28:57,625 [DEBUG][       Thread-262501][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:28:57,625 [DEBUG][       Thread-262501][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:28:57,625 [DEBUG][       Thread-262501][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:28:57,625 [DEBUG][       Thread-262501][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:28:57,625 [DEBUG][       Thread-262501][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 17:28:57,625 [DEBUG][       Thread-262501][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 17:28:57,625 [DEBUG][       Thread-262501][   transport.py][1871] : client lang: <none>
2025-06-13 17:28:57,625 [DEBUG][       Thread-262501][   transport.py][1871] : server lang: <none>
2025-06-13 17:28:57,625 [DEBUG][       Thread-262501][   transport.py][1871] : kex follows: False
2025-06-13 17:28:57,625 [DEBUG][       Thread-262501][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 17:28:57,625 [DEBUG][       Thread-262501][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 17:28:57,626 [DEBUG][       Thread-262501][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 17:28:57,626 [DEBUG][       Thread-262501][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 17:28:57,626 [DEBUG][       Thread-262501][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 17:28:57,626 [DEBUG][       Thread-262501][   transport.py][1871] : Compression: none
2025-06-13 17:28:57,626 [DEBUG][       Thread-262501][   transport.py][1871] : === End of kex handshake ===
2025-06-13 17:28:57,642 [DEBUG][       Thread-262501][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 17:28:57,642 [DEBUG][       Thread-262501][   transport.py][1871] : Switch to new keys ...
2025-06-13 17:28:57,642 [DEBUG][       Thread-262501][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 17:28:57,642 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 17:28:57,642 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 17:28:57,687 [DEBUG][       Thread-262501][   transport.py][1871] : userauth is OK
2025-06-13 17:28:57,710 [ INFO][       Thread-262501][   transport.py][1871] : Authentication (password) successful!
2025-06-13 17:28:57,711 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 17:28:58,348 [DEBUG][       Thread-262501][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 17:28:58,348 [DEBUG][       Thread-262501][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 17:28:58,396 [DEBUG][       Thread-262501][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 17:28:58,396 [DEBUG][       Thread-262501][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 17:28:58,399 [DEBUG][       Thread-262501][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 17:28:58,412 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 17:28:58,412 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 17:28:58,413 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 17:28:58,414 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 17:28:58,417 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 17:28:58,418 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 17:28:58,418 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 17:28:58,419 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 17:28:58,419 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.644726 -999.00  +12.40  16.95     37   -1.80 1 1 1 1 1   885    0 14.09 -7.49 ----- 16.3 16.9 36.0 19.0 -999.0 -999.0 13.5 -30.3 13.7 -29.5 14.1 -28.7
2025-06-13 17:28:58,419 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 17:28:58,419 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 17:28:58,419 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.644726
2025-06-13 17:28:58,419 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 17:28:58,419 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 17:28:58,419 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 17:28:58,419 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 17:28:58,419 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 17:28:58,419 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T17:28:45', tmtdew=16.3, humidity=31.89, cloud=0.0, wind=15.18, temperature=12.61, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T15:28:24.326', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 17:28:58,420 [DEBUG][       Thread-262501][   transport.py][1871] : EOF in transport thread
2025-06-13 17:28:58,505 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 17:28:58,514 [DEBUG][       Thread-262504][   transport.py][1871] : starting thread (client mode): 0x86392590
2025-06-13 17:28:58,514 [DEBUG][       Thread-262504][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 17:28:58,529 [DEBUG][       Thread-262504][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 17:28:58,529 [ INFO][       Thread-262504][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 17:28:58,536 [DEBUG][       Thread-262504][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 17:28:58,536 [DEBUG][       Thread-262504][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 17:28:58,536 [DEBUG][       Thread-262504][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 17:28:58,536 [DEBUG][       Thread-262504][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:28:58,536 [DEBUG][       Thread-262504][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:28:58,536 [DEBUG][       Thread-262504][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:28:58,536 [DEBUG][       Thread-262504][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:28:58,536 [DEBUG][       Thread-262504][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 17:28:58,536 [DEBUG][       Thread-262504][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 17:28:58,536 [DEBUG][       Thread-262504][   transport.py][1871] : client lang: <none>
2025-06-13 17:28:58,536 [DEBUG][       Thread-262504][   transport.py][1871] : server lang: <none>
2025-06-13 17:28:58,536 [DEBUG][       Thread-262504][   transport.py][1871] : kex follows: False
2025-06-13 17:28:58,536 [DEBUG][       Thread-262504][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 17:28:58,536 [DEBUG][       Thread-262504][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 17:28:58,536 [DEBUG][       Thread-262504][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 17:28:58,536 [DEBUG][       Thread-262504][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 17:28:58,536 [DEBUG][       Thread-262504][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 17:28:58,536 [DEBUG][       Thread-262504][   transport.py][1871] : Compression: none
2025-06-13 17:28:58,536 [DEBUG][       Thread-262504][   transport.py][1871] : === End of kex handshake ===
2025-06-13 17:28:58,591 [DEBUG][       Thread-262504][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 17:28:58,592 [DEBUG][       Thread-262504][   transport.py][1871] : Switch to new keys ...
2025-06-13 17:28:58,592 [DEBUG][       Thread-262504][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 17:28:58,592 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 17:28:58,592 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 17:28:58,649 [DEBUG][       Thread-262504][   transport.py][1871] : userauth is OK
2025-06-13 17:28:58,649 [DEBUG][       Thread-262504][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 17:28:58,649 [DEBUG][       Thread-262504][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 17:28:58,649 [DEBUG][       Thread-262504][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 17:28:58,649 [DEBUG][       Thread-262504][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 17:28:58,662 [ INFO][       Thread-262504][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 17:28:58,662 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 17:28:58,662 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 17:28:59,670 [DEBUG][       Thread-262504][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 17:28:59,670 [DEBUG][       Thread-262504][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 17:28:59,719 [DEBUG][       Thread-262504][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 17:28:59,719 [DEBUG][       Thread-262504][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 17:28:59,727 [DEBUG][       Thread-262504][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 17:28:59,735 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 17:28:59,735 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 17:28:59,743 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 17:28:59,751 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 17:28:59,751 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 17:28:59,751 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 17:28:59,758 [DEBUG][       Thread-262504][   transport.py][1871] : EOF in transport thread
2025-06-13 17:29:01,853 [DEBUG][Thread-262506 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:29:02,031 [DEBUG][Thread-262507 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:29:02,931 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:29:02,932 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:29:09,761 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 17:29:09,761 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 17:29:09,761 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 17:29:09,764 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 17:29:10,219 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 17, 28, 45), 16.3, 31.89, 0.0, 15.18, 12.61, 0, 0, 0, 2, 0, 0),)
2025-06-13 17:29:10,219 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 17:28:45
2025-06-13 17:29:10,298 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 17:29:10,304 [DEBUG][       Thread-262508][   transport.py][1871] : starting thread (client mode): 0x8636b850
2025-06-13 17:29:10,304 [DEBUG][       Thread-262508][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 17:29:10,324 [DEBUG][       Thread-262508][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 17:29:10,324 [ INFO][       Thread-262508][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 17:29:10,325 [DEBUG][       Thread-262508][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 17:29:10,326 [DEBUG][       Thread-262508][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 17:29:10,326 [DEBUG][       Thread-262508][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 17:29:10,326 [DEBUG][       Thread-262508][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:29:10,326 [DEBUG][       Thread-262508][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:29:10,326 [DEBUG][       Thread-262508][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:29:10,326 [DEBUG][       Thread-262508][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:29:10,326 [DEBUG][       Thread-262508][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 17:29:10,326 [DEBUG][       Thread-262508][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 17:29:10,326 [DEBUG][       Thread-262508][   transport.py][1871] : client lang: <none>
2025-06-13 17:29:10,326 [DEBUG][       Thread-262508][   transport.py][1871] : server lang: <none>
2025-06-13 17:29:10,326 [DEBUG][       Thread-262508][   transport.py][1871] : kex follows: False
2025-06-13 17:29:10,326 [DEBUG][       Thread-262508][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 17:29:10,326 [DEBUG][       Thread-262508][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 17:29:10,326 [DEBUG][       Thread-262508][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 17:29:10,326 [DEBUG][       Thread-262508][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 17:29:10,326 [DEBUG][       Thread-262508][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 17:29:10,326 [DEBUG][       Thread-262508][   transport.py][1871] : Compression: none
2025-06-13 17:29:10,326 [DEBUG][       Thread-262508][   transport.py][1871] : === End of kex handshake ===
2025-06-13 17:29:10,338 [DEBUG][       Thread-262508][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 17:29:10,338 [DEBUG][       Thread-262508][   transport.py][1871] : Switch to new keys ...
2025-06-13 17:29:10,339 [DEBUG][       Thread-262508][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 17:29:10,339 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 17:29:10,339 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 17:29:10,340 [DEBUG][       Thread-262508][   transport.py][1871] : userauth is OK
2025-06-13 17:29:10,364 [ INFO][       Thread-262508][   transport.py][1871] : Authentication (password) successful!
2025-06-13 17:29:10,365 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 17:29:11,060 [DEBUG][Thread-262510 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:29:11,133 [DEBUG][       Thread-262508][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 17:29:11,133 [DEBUG][       Thread-262508][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 17:29:11,177 [DEBUG][       Thread-262508][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 17:29:11,177 [DEBUG][       Thread-262508][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 17:29:11,180 [DEBUG][       Thread-262508][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 17:29:11,192 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 17:29:11,192 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 17:29:11,194 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 17:29:11,196 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 17:29:11,202 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 17:29:11,204 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 17:29:11,204 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 17:29:11,204 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 17:29:11,205 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.644726 -999.00  +12.40  16.95     37   -1.80 1 1 1 1 1   885    0 14.09 -7.49 ----- 16.3 16.9 36.0 19.0 -999.0 -999.0 13.5 -30.3 13.7 -29.5 14.1 -28.7
2025-06-13 17:29:11,205 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 17:29:11,205 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 17:29:11,205 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.644726
2025-06-13 17:29:11,205 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 17:29:11,206 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 17:29:11,206 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 17:29:11,206 [DEBUG][       Thread-262508][   transport.py][1871] : EOF in transport thread
2025-06-13 17:29:11,206 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 17:29:11,207 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 17:29:11,207 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T17:28:45', tmtdew=16.3, humidity=31.89, cloud=0.0, wind=15.18, temperature=12.61, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T15:28:24.326', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 17:29:11,289 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 17:29:11,302 [DEBUG][       Thread-262512][   transport.py][1871] : starting thread (client mode): 0x86352230
2025-06-13 17:29:11,302 [DEBUG][       Thread-262512][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 17:29:11,316 [DEBUG][       Thread-262512][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 17:29:11,316 [ INFO][       Thread-262512][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 17:29:11,324 [DEBUG][       Thread-262512][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 17:29:11,324 [DEBUG][       Thread-262512][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 17:29:11,324 [DEBUG][       Thread-262512][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 17:29:11,324 [DEBUG][       Thread-262512][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:29:11,324 [DEBUG][       Thread-262512][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:29:11,324 [DEBUG][       Thread-262512][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:29:11,325 [DEBUG][       Thread-262512][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:29:11,325 [DEBUG][       Thread-262512][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 17:29:11,325 [DEBUG][       Thread-262512][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 17:29:11,325 [DEBUG][       Thread-262512][   transport.py][1871] : client lang: <none>
2025-06-13 17:29:11,325 [DEBUG][       Thread-262512][   transport.py][1871] : server lang: <none>
2025-06-13 17:29:11,325 [DEBUG][       Thread-262512][   transport.py][1871] : kex follows: False
2025-06-13 17:29:11,325 [DEBUG][       Thread-262512][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 17:29:11,325 [DEBUG][       Thread-262512][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 17:29:11,325 [DEBUG][       Thread-262512][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 17:29:11,325 [DEBUG][       Thread-262512][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 17:29:11,325 [DEBUG][       Thread-262512][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 17:29:11,325 [DEBUG][       Thread-262512][   transport.py][1871] : Compression: none
2025-06-13 17:29:11,325 [DEBUG][       Thread-262512][   transport.py][1871] : === End of kex handshake ===
2025-06-13 17:29:11,381 [DEBUG][       Thread-262512][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 17:29:11,382 [DEBUG][       Thread-262512][   transport.py][1871] : Switch to new keys ...
2025-06-13 17:29:11,383 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 17:29:11,383 [DEBUG][       Thread-262512][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 17:29:11,384 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 17:29:11,441 [DEBUG][       Thread-262512][   transport.py][1871] : userauth is OK
2025-06-13 17:29:11,442 [DEBUG][       Thread-262512][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 17:29:11,442 [DEBUG][       Thread-262512][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 17:29:11,442 [DEBUG][       Thread-262512][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 17:29:11,442 [DEBUG][       Thread-262512][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 17:29:11,463 [ INFO][       Thread-262512][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 17:29:11,464 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 17:29:11,464 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 17:29:12,490 [DEBUG][       Thread-262512][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 17:29:12,490 [DEBUG][       Thread-262512][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 17:29:12,540 [DEBUG][       Thread-262512][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 17:29:12,540 [DEBUG][       Thread-262512][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 17:29:12,549 [DEBUG][       Thread-262512][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 17:29:12,558 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 17:29:12,559 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 17:29:12,568 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 17:29:12,577 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 17:29:12,577 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 17:29:12,578 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 17:29:12,585 [DEBUG][       Thread-262512][   transport.py][1871] : EOF in transport thread
2025-06-13 17:29:20,078 [DEBUG][Thread-262514 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:29:22,588 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 17:29:22,588 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 17:29:22,588 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 17:29:22,591 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 17:29:23,048 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 17, 29, 17), 16.26, 32.22, 0.0, 13.89, 12.56, 0, 0, 0, 2, 0, 0),)
2025-06-13 17:29:23,048 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 17:29:17
2025-06-13 17:29:23,131 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 17:29:23,135 [DEBUG][       Thread-262515][   transport.py][1871] : starting thread (client mode): 0x8636bb50
2025-06-13 17:29:23,135 [DEBUG][       Thread-262515][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 17:29:23,147 [DEBUG][       Thread-262515][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 17:29:23,147 [ INFO][       Thread-262515][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 17:29:23,150 [DEBUG][       Thread-262515][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 17:29:23,150 [DEBUG][       Thread-262515][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 17:29:23,150 [DEBUG][       Thread-262515][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 17:29:23,150 [DEBUG][       Thread-262515][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:29:23,150 [DEBUG][       Thread-262515][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:29:23,150 [DEBUG][       Thread-262515][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:29:23,150 [DEBUG][       Thread-262515][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:29:23,150 [DEBUG][       Thread-262515][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 17:29:23,150 [DEBUG][       Thread-262515][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 17:29:23,150 [DEBUG][       Thread-262515][   transport.py][1871] : client lang: <none>
2025-06-13 17:29:23,150 [DEBUG][       Thread-262515][   transport.py][1871] : server lang: <none>
2025-06-13 17:29:23,150 [DEBUG][       Thread-262515][   transport.py][1871] : kex follows: False
2025-06-13 17:29:23,150 [DEBUG][       Thread-262515][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 17:29:23,150 [DEBUG][       Thread-262515][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 17:29:23,150 [DEBUG][       Thread-262515][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 17:29:23,150 [DEBUG][       Thread-262515][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 17:29:23,150 [DEBUG][       Thread-262515][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 17:29:23,150 [DEBUG][       Thread-262515][   transport.py][1871] : Compression: none
2025-06-13 17:29:23,150 [DEBUG][       Thread-262515][   transport.py][1871] : === End of kex handshake ===
2025-06-13 17:29:23,166 [DEBUG][       Thread-262515][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 17:29:23,167 [DEBUG][       Thread-262515][   transport.py][1871] : Switch to new keys ...
2025-06-13 17:29:23,167 [DEBUG][       Thread-262515][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 17:29:23,167 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 17:29:23,168 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 17:29:23,169 [DEBUG][       Thread-262515][   transport.py][1871] : userauth is OK
2025-06-13 17:29:23,182 [ INFO][       Thread-262515][   transport.py][1871] : Authentication (password) successful!
2025-06-13 17:29:23,182 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 17:29:23,783 [DEBUG][       Thread-262515][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 17:29:23,783 [DEBUG][       Thread-262515][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 17:29:23,825 [DEBUG][       Thread-262515][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 17:29:23,825 [DEBUG][       Thread-262515][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 17:29:23,828 [DEBUG][       Thread-262515][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 17:29:23,837 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 17:29:23,837 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 17:29:23,839 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 17:29:23,841 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 17:29:23,848 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 17:29:23,850 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 17:29:23,850 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 17:29:23,851 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 17:29:23,851 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.645073 -999.00  +12.40  15.18     37   -1.80 1 1 1 1 1   885    0 13.82 -11.78 ----- 15.3 15.2 37.8 21.1 13.8 -29.9 13.5 -30.2 13.6 -29.5 14.1 -28.7
2025-06-13 17:29:23,851 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 17:29:23,851 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 17:29:23,851 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.645073
2025-06-13 17:29:23,852 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 17:29:23,852 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 17:29:23,852 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 17:29:23,852 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 17:29:23,852 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 17:29:23,853 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T17:29:17', tmtdew=16.26, humidity=32.22, cloud=0.0, wind=13.89, temperature=12.56, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T15:28:54.307', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 17:29:23,854 [DEBUG][       Thread-262515][   transport.py][1871] : EOF in transport thread
2025-06-13 17:29:23,937 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 17:29:23,946 [DEBUG][       Thread-262518][   transport.py][1871] : starting thread (client mode): 0x867b54b0
2025-06-13 17:29:23,946 [DEBUG][       Thread-262518][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 17:29:23,961 [DEBUG][       Thread-262518][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 17:29:23,961 [ INFO][       Thread-262518][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 17:29:23,969 [DEBUG][       Thread-262518][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 17:29:23,969 [DEBUG][       Thread-262518][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 17:29:23,969 [DEBUG][       Thread-262518][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 17:29:23,969 [DEBUG][       Thread-262518][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:29:23,969 [DEBUG][       Thread-262518][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:29:23,969 [DEBUG][       Thread-262518][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:29:23,969 [DEBUG][       Thread-262518][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:29:23,969 [DEBUG][       Thread-262518][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 17:29:23,969 [DEBUG][       Thread-262518][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 17:29:23,969 [DEBUG][       Thread-262518][   transport.py][1871] : client lang: <none>
2025-06-13 17:29:23,969 [DEBUG][       Thread-262518][   transport.py][1871] : server lang: <none>
2025-06-13 17:29:23,969 [DEBUG][       Thread-262518][   transport.py][1871] : kex follows: False
2025-06-13 17:29:23,970 [DEBUG][       Thread-262518][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 17:29:23,970 [DEBUG][       Thread-262518][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 17:29:23,970 [DEBUG][       Thread-262518][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 17:29:23,970 [DEBUG][       Thread-262518][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 17:29:23,970 [DEBUG][       Thread-262518][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 17:29:23,970 [DEBUG][       Thread-262518][   transport.py][1871] : Compression: none
2025-06-13 17:29:23,970 [DEBUG][       Thread-262518][   transport.py][1871] : === End of kex handshake ===
2025-06-13 17:29:24,031 [DEBUG][       Thread-262518][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 17:29:24,031 [DEBUG][       Thread-262518][   transport.py][1871] : Switch to new keys ...
2025-06-13 17:29:24,032 [DEBUG][       Thread-262518][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 17:29:24,032 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 17:29:24,033 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 17:29:24,089 [DEBUG][       Thread-262518][   transport.py][1871] : userauth is OK
2025-06-13 17:29:24,089 [DEBUG][       Thread-262518][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 17:29:24,090 [DEBUG][       Thread-262518][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 17:29:24,090 [DEBUG][       Thread-262518][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 17:29:24,090 [DEBUG][       Thread-262518][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 17:29:24,108 [ INFO][       Thread-262518][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 17:29:24,109 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 17:29:24,109 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 17:29:25,124 [DEBUG][       Thread-262518][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 17:29:25,125 [DEBUG][       Thread-262518][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 17:29:25,180 [DEBUG][       Thread-262518][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 17:29:25,180 [DEBUG][       Thread-262518][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 17:29:25,190 [DEBUG][       Thread-262518][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 17:29:25,203 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 17:29:25,203 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 17:29:25,212 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 17:29:25,221 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 17:29:25,221 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 17:29:25,222 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 17:29:25,230 [DEBUG][       Thread-262518][   transport.py][1871] : EOF in transport thread
2025-06-13 17:29:26,288 [DEBUG][Thread-262520 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:29:26,612 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:29:26,613 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:29:29,100 [DEBUG][Thread-262521 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:29:35,232 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 17:29:35,233 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 17:29:35,233 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 17:29:35,235 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 17:29:35,705 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 17, 29, 17), 16.26, 32.22, 0.0, 13.89, 12.56, 0, 0, 0, 2, 0, 0),)
2025-06-13 17:29:35,705 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 17:29:17
2025-06-13 17:29:35,792 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 17:29:35,798 [DEBUG][       Thread-262522][   transport.py][1871] : starting thread (client mode): 0x867b4670
2025-06-13 17:29:35,799 [DEBUG][       Thread-262522][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 17:29:35,819 [DEBUG][       Thread-262522][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 17:29:35,819 [ INFO][       Thread-262522][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 17:29:35,822 [DEBUG][       Thread-262522][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 17:29:35,822 [DEBUG][       Thread-262522][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 17:29:35,822 [DEBUG][       Thread-262522][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 17:29:35,822 [DEBUG][       Thread-262522][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:29:35,822 [DEBUG][       Thread-262522][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:29:35,822 [DEBUG][       Thread-262522][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:29:35,822 [DEBUG][       Thread-262522][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:29:35,822 [DEBUG][       Thread-262522][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 17:29:35,822 [DEBUG][       Thread-262522][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 17:29:35,822 [DEBUG][       Thread-262522][   transport.py][1871] : client lang: <none>
2025-06-13 17:29:35,822 [DEBUG][       Thread-262522][   transport.py][1871] : server lang: <none>
2025-06-13 17:29:35,822 [DEBUG][       Thread-262522][   transport.py][1871] : kex follows: False
2025-06-13 17:29:35,822 [DEBUG][       Thread-262522][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 17:29:35,822 [DEBUG][       Thread-262522][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 17:29:35,822 [DEBUG][       Thread-262522][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 17:29:35,822 [DEBUG][       Thread-262522][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 17:29:35,822 [DEBUG][       Thread-262522][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 17:29:35,822 [DEBUG][       Thread-262522][   transport.py][1871] : Compression: none
2025-06-13 17:29:35,822 [DEBUG][       Thread-262522][   transport.py][1871] : === End of kex handshake ===
2025-06-13 17:29:35,837 [DEBUG][       Thread-262522][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 17:29:35,837 [DEBUG][       Thread-262522][   transport.py][1871] : Switch to new keys ...
2025-06-13 17:29:35,837 [DEBUG][       Thread-262522][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 17:29:35,837 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 17:29:35,837 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 17:29:35,838 [DEBUG][       Thread-262522][   transport.py][1871] : userauth is OK
2025-06-13 17:29:35,850 [ INFO][       Thread-262522][   transport.py][1871] : Authentication (password) successful!
2025-06-13 17:29:35,850 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 17:29:36,632 [DEBUG][       Thread-262522][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 17:29:36,632 [DEBUG][       Thread-262522][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 17:29:36,677 [DEBUG][       Thread-262522][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 17:29:36,677 [DEBUG][       Thread-262522][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 17:29:36,679 [DEBUG][       Thread-262522][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 17:29:36,692 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 17:29:36,692 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 17:29:36,693 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 17:29:36,694 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 17:29:36,697 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 17:29:36,698 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 17:29:36,698 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 17:29:36,698 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 17:29:36,698 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.645073 -999.00  +12.40  15.18     37   -1.80 1 1 1 1 1   885    0 13.82 -11.78 ----- 15.3 15.2 37.8 21.1 13.8 -29.9 13.5 -30.2 13.6 -29.5 14.1 -28.7
2025-06-13 17:29:36,698 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 17:29:36,698 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 17:29:36,698 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.645073
2025-06-13 17:29:36,699 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 17:29:36,699 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 17:29:36,699 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 17:29:36,699 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 17:29:36,699 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 17:29:36,699 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T17:29:17', tmtdew=16.26, humidity=32.22, cloud=0.0, wind=13.89, temperature=12.56, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T15:28:54.307', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 17:29:36,699 [DEBUG][       Thread-262522][   transport.py][1871] : EOF in transport thread
2025-06-13 17:29:36,772 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 17:29:36,783 [DEBUG][       Thread-262525][   transport.py][1871] : starting thread (client mode): 0x86390ac0
2025-06-13 17:29:36,784 [DEBUG][       Thread-262525][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 17:29:36,798 [DEBUG][       Thread-262525][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 17:29:36,798 [ INFO][       Thread-262525][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 17:29:36,806 [DEBUG][       Thread-262525][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 17:29:36,806 [DEBUG][       Thread-262525][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 17:29:36,806 [DEBUG][       Thread-262525][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 17:29:36,806 [DEBUG][       Thread-262525][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:29:36,806 [DEBUG][       Thread-262525][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:29:36,806 [DEBUG][       Thread-262525][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:29:36,806 [DEBUG][       Thread-262525][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:29:36,806 [DEBUG][       Thread-262525][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 17:29:36,806 [DEBUG][       Thread-262525][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 17:29:36,806 [DEBUG][       Thread-262525][   transport.py][1871] : client lang: <none>
2025-06-13 17:29:36,806 [DEBUG][       Thread-262525][   transport.py][1871] : server lang: <none>
2025-06-13 17:29:36,806 [DEBUG][       Thread-262525][   transport.py][1871] : kex follows: False
2025-06-13 17:29:36,806 [DEBUG][       Thread-262525][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 17:29:36,806 [DEBUG][       Thread-262525][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 17:29:36,806 [DEBUG][       Thread-262525][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 17:29:36,806 [DEBUG][       Thread-262525][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 17:29:36,806 [DEBUG][       Thread-262525][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 17:29:36,806 [DEBUG][       Thread-262525][   transport.py][1871] : Compression: none
2025-06-13 17:29:36,806 [DEBUG][       Thread-262525][   transport.py][1871] : === End of kex handshake ===
2025-06-13 17:29:36,863 [DEBUG][       Thread-262525][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 17:29:36,864 [DEBUG][       Thread-262525][   transport.py][1871] : Switch to new keys ...
2025-06-13 17:29:36,864 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 17:29:36,864 [DEBUG][       Thread-262525][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 17:29:36,864 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 17:29:36,921 [DEBUG][       Thread-262525][   transport.py][1871] : userauth is OK
2025-06-13 17:29:36,921 [DEBUG][       Thread-262525][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 17:29:36,921 [DEBUG][       Thread-262525][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 17:29:36,921 [DEBUG][       Thread-262525][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 17:29:36,921 [DEBUG][       Thread-262525][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 17:29:36,935 [ INFO][       Thread-262525][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 17:29:36,935 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 17:29:36,935 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 17:29:37,909 [DEBUG][       Thread-262525][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 17:29:37,909 [DEBUG][       Thread-262525][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 17:29:37,959 [DEBUG][       Thread-262525][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 17:29:37,959 [DEBUG][       Thread-262525][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 17:29:37,967 [DEBUG][       Thread-262525][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 17:29:37,975 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 17:29:37,975 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 17:29:37,983 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 17:29:37,991 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 17:29:37,991 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 17:29:37,991 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 17:29:37,999 [DEBUG][       Thread-262525][   transport.py][1871] : EOF in transport thread
2025-06-13 17:29:38,141 [DEBUG][Thread-262527 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:29:47,161 [DEBUG][Thread-262528 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:29:48,002 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 17:29:48,002 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 17:29:48,002 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 17:29:48,005 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 17:29:48,451 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 17, 29, 17), 16.26, 32.22, 0.0, 13.89, 12.56, 0, 0, 0, 2, 0, 0),)
2025-06-13 17:29:48,451 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 17:29:17
2025-06-13 17:29:48,532 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 17:29:48,538 [DEBUG][       Thread-262529][   transport.py][1871] : starting thread (client mode): 0x863925f0
2025-06-13 17:29:48,539 [DEBUG][       Thread-262529][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 17:29:48,557 [DEBUG][       Thread-262529][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 17:29:48,557 [ INFO][       Thread-262529][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 17:29:48,560 [DEBUG][       Thread-262529][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 17:29:48,560 [DEBUG][       Thread-262529][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 17:29:48,560 [DEBUG][       Thread-262529][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 17:29:48,561 [DEBUG][       Thread-262529][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:29:48,561 [DEBUG][       Thread-262529][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:29:48,561 [DEBUG][       Thread-262529][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:29:48,561 [DEBUG][       Thread-262529][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:29:48,561 [DEBUG][       Thread-262529][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 17:29:48,561 [DEBUG][       Thread-262529][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 17:29:48,561 [DEBUG][       Thread-262529][   transport.py][1871] : client lang: <none>
2025-06-13 17:29:48,561 [DEBUG][       Thread-262529][   transport.py][1871] : server lang: <none>
2025-06-13 17:29:48,561 [DEBUG][       Thread-262529][   transport.py][1871] : kex follows: False
2025-06-13 17:29:48,561 [DEBUG][       Thread-262529][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 17:29:48,561 [DEBUG][       Thread-262529][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 17:29:48,561 [DEBUG][       Thread-262529][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 17:29:48,561 [DEBUG][       Thread-262529][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 17:29:48,561 [DEBUG][       Thread-262529][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 17:29:48,561 [DEBUG][       Thread-262529][   transport.py][1871] : Compression: none
2025-06-13 17:29:48,561 [DEBUG][       Thread-262529][   transport.py][1871] : === End of kex handshake ===
2025-06-13 17:29:48,569 [DEBUG][       Thread-262529][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 17:29:48,569 [DEBUG][       Thread-262529][   transport.py][1871] : Switch to new keys ...
2025-06-13 17:29:48,570 [DEBUG][       Thread-262529][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 17:29:48,570 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 17:29:48,570 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 17:29:48,571 [DEBUG][       Thread-262529][   transport.py][1871] : userauth is OK
2025-06-13 17:29:48,584 [ INFO][       Thread-262529][   transport.py][1871] : Authentication (password) successful!
2025-06-13 17:29:48,585 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 17:29:49,306 [DEBUG][       Thread-262529][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 17:29:49,306 [DEBUG][       Thread-262529][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 17:29:49,349 [DEBUG][       Thread-262529][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 17:29:49,349 [DEBUG][       Thread-262529][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 17:29:49,353 [DEBUG][       Thread-262529][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 17:29:49,365 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 17:29:49,366 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 17:29:49,368 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 17:29:49,370 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 17:29:49,377 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 17:29:49,380 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 17:29:49,380 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 17:29:49,381 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 17:29:49,381 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.645073 -999.00  +12.40  15.18     37   -1.80 1 1 1 1 1   885    0 13.82 -11.78 ----- 15.3 15.2 37.8 21.1 13.8 -29.9 13.5 -30.2 13.6 -29.5 14.1 -28.7
2025-06-13 17:29:49,381 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 17:29:49,381 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 17:29:49,381 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.645073
2025-06-13 17:29:49,382 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 17:29:49,382 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 17:29:49,382 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 17:29:49,382 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 17:29:49,382 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 17:29:49,383 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T17:29:17', tmtdew=16.26, humidity=32.22, cloud=0.0, wind=13.89, temperature=12.56, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T15:28:54.307', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 17:29:49,384 [DEBUG][       Thread-262529][   transport.py][1871] : EOF in transport thread
2025-06-13 17:29:49,467 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 17:29:49,479 [DEBUG][       Thread-262532][   transport.py][1871] : starting thread (client mode): 0x8636ae60
2025-06-13 17:29:49,479 [DEBUG][       Thread-262532][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 17:29:49,494 [DEBUG][       Thread-262532][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 17:29:49,495 [ INFO][       Thread-262532][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 17:29:49,502 [DEBUG][       Thread-262532][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 17:29:49,502 [DEBUG][       Thread-262532][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 17:29:49,502 [DEBUG][       Thread-262532][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 17:29:49,502 [DEBUG][       Thread-262532][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:29:49,503 [DEBUG][       Thread-262532][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:29:49,503 [DEBUG][       Thread-262532][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:29:49,503 [DEBUG][       Thread-262532][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:29:49,503 [DEBUG][       Thread-262532][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 17:29:49,503 [DEBUG][       Thread-262532][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 17:29:49,503 [DEBUG][       Thread-262532][   transport.py][1871] : client lang: <none>
2025-06-13 17:29:49,503 [DEBUG][       Thread-262532][   transport.py][1871] : server lang: <none>
2025-06-13 17:29:49,503 [DEBUG][       Thread-262532][   transport.py][1871] : kex follows: False
2025-06-13 17:29:49,503 [DEBUG][       Thread-262532][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 17:29:49,503 [DEBUG][       Thread-262532][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 17:29:49,503 [DEBUG][       Thread-262532][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 17:29:49,503 [DEBUG][       Thread-262532][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 17:29:49,503 [DEBUG][       Thread-262532][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 17:29:49,503 [DEBUG][       Thread-262532][   transport.py][1871] : Compression: none
2025-06-13 17:29:49,503 [DEBUG][       Thread-262532][   transport.py][1871] : === End of kex handshake ===
2025-06-13 17:29:49,563 [DEBUG][       Thread-262532][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 17:29:49,563 [DEBUG][       Thread-262532][   transport.py][1871] : Switch to new keys ...
2025-06-13 17:29:49,564 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 17:29:49,565 [DEBUG][       Thread-262532][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 17:29:49,565 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 17:29:49,621 [DEBUG][       Thread-262532][   transport.py][1871] : userauth is OK
2025-06-13 17:29:49,621 [DEBUG][       Thread-262532][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 17:29:49,621 [DEBUG][       Thread-262532][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 17:29:49,621 [DEBUG][       Thread-262532][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 17:29:49,622 [DEBUG][       Thread-262532][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 17:29:49,641 [ INFO][       Thread-262532][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 17:29:49,641 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 17:29:49,642 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 17:29:50,688 [DEBUG][       Thread-262532][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 17:29:50,688 [DEBUG][       Thread-262532][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 17:29:50,735 [DEBUG][       Thread-262532][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 17:29:50,735 [DEBUG][       Thread-262532][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 17:29:50,744 [DEBUG][       Thread-262532][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 17:29:50,752 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 17:29:50,752 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 17:29:50,760 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 17:29:50,768 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 17:29:50,768 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 17:29:50,768 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 17:29:50,776 [DEBUG][       Thread-262532][   transport.py][1871] : EOF in transport thread
2025-06-13 17:29:56,181 [DEBUG][Thread-262534 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:30:00,778 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 17:30:00,778 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 17:30:00,778 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 17:30:00,781 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 17:30:01,243 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 17, 29, 49), 16.28, 32.19, 0.0, 15.35, 12.58, 0, 0, 0, 2, 0, 0),)
2025-06-13 17:30:01,243 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 17:29:49
2025-06-13 17:30:01,325 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 17:30:01,328 [DEBUG][       Thread-262535][   transport.py][1871] : starting thread (client mode): 0x86369600
2025-06-13 17:30:01,328 [DEBUG][       Thread-262535][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 17:30:01,348 [DEBUG][       Thread-262535][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 17:30:01,348 [ INFO][       Thread-262535][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 17:30:01,351 [DEBUG][       Thread-262535][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 17:30:01,351 [DEBUG][       Thread-262535][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 17:30:01,351 [DEBUG][       Thread-262535][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 17:30:01,351 [DEBUG][       Thread-262535][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:30:01,351 [DEBUG][       Thread-262535][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:30:01,351 [DEBUG][       Thread-262535][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:30:01,351 [DEBUG][       Thread-262535][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:30:01,351 [DEBUG][       Thread-262535][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 17:30:01,351 [DEBUG][       Thread-262535][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 17:30:01,351 [DEBUG][       Thread-262535][   transport.py][1871] : client lang: <none>
2025-06-13 17:30:01,351 [DEBUG][       Thread-262535][   transport.py][1871] : server lang: <none>
2025-06-13 17:30:01,351 [DEBUG][       Thread-262535][   transport.py][1871] : kex follows: False
2025-06-13 17:30:01,351 [DEBUG][       Thread-262535][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 17:30:01,351 [DEBUG][       Thread-262535][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 17:30:01,351 [DEBUG][       Thread-262535][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 17:30:01,351 [DEBUG][       Thread-262535][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 17:30:01,351 [DEBUG][       Thread-262535][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 17:30:01,351 [DEBUG][       Thread-262535][   transport.py][1871] : Compression: none
2025-06-13 17:30:01,351 [DEBUG][       Thread-262535][   transport.py][1871] : === End of kex handshake ===
2025-06-13 17:30:01,369 [DEBUG][       Thread-262535][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 17:30:01,369 [DEBUG][       Thread-262535][   transport.py][1871] : Switch to new keys ...
2025-06-13 17:30:01,370 [DEBUG][       Thread-262535][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 17:30:01,370 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 17:30:01,370 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 17:30:01,374 [DEBUG][       Thread-262535][   transport.py][1871] : userauth is OK
2025-06-13 17:30:01,399 [ INFO][       Thread-262535][   transport.py][1871] : Authentication (password) successful!
2025-06-13 17:30:01,400 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 17:30:01,987 [DEBUG][       Thread-262535][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 17:30:01,987 [DEBUG][       Thread-262535][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 17:30:02,029 [DEBUG][       Thread-262535][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 17:30:02,029 [DEBUG][       Thread-262535][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 17:30:02,030 [DEBUG][       Thread-262535][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 17:30:02,039 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 17:30:02,039 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 17:30:02,043 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 17:30:02,047 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 17:30:02,050 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 17:30:02,051 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 17:30:02,051 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 17:30:02,052 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 17:30:02,052 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.645420 -999.00  +12.30  15.16     37   -1.70 1 1 1 1 1   885    0 13.86 -15.64 ----- 13.7 15.2 50.6 16.4 13.7 -29.7 13.5 -30.4 13.6 -29.5 14.0 -28.6
2025-06-13 17:30:02,052 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 17:30:02,052 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 17:30:02,052 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.645420
2025-06-13 17:30:02,052 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 17:30:02,052 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 17:30:02,052 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 17:30:02,052 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 17:30:02,052 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 17:30:02,052 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T17:29:49', tmtdew=16.28, humidity=32.19, cloud=0.0, wind=15.35, temperature=12.58, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T15:29:24.288', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 17:30:02,053 [DEBUG][       Thread-262535][   transport.py][1871] : EOF in transport thread
2025-06-13 17:30:02,124 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 17:30:02,133 [DEBUG][       Thread-262538][   transport.py][1871] : starting thread (client mode): 0x867b74c0
2025-06-13 17:30:02,133 [DEBUG][       Thread-262538][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 17:30:02,148 [DEBUG][       Thread-262538][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 17:30:02,148 [ INFO][       Thread-262538][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 17:30:02,155 [DEBUG][       Thread-262538][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 17:30:02,155 [DEBUG][       Thread-262538][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 17:30:02,155 [DEBUG][       Thread-262538][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 17:30:02,155 [DEBUG][       Thread-262538][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:30:02,155 [DEBUG][       Thread-262538][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:30:02,155 [DEBUG][       Thread-262538][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:30:02,155 [DEBUG][       Thread-262538][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:30:02,155 [DEBUG][       Thread-262538][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 17:30:02,155 [DEBUG][       Thread-262538][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 17:30:02,155 [DEBUG][       Thread-262538][   transport.py][1871] : client lang: <none>
2025-06-13 17:30:02,155 [DEBUG][       Thread-262538][   transport.py][1871] : server lang: <none>
2025-06-13 17:30:02,155 [DEBUG][       Thread-262538][   transport.py][1871] : kex follows: False
2025-06-13 17:30:02,155 [DEBUG][       Thread-262538][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 17:30:02,155 [DEBUG][       Thread-262538][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 17:30:02,155 [DEBUG][       Thread-262538][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 17:30:02,155 [DEBUG][       Thread-262538][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 17:30:02,155 [DEBUG][       Thread-262538][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 17:30:02,155 [DEBUG][       Thread-262538][   transport.py][1871] : Compression: none
2025-06-13 17:30:02,155 [DEBUG][       Thread-262538][   transport.py][1871] : === End of kex handshake ===
2025-06-13 17:30:02,216 [DEBUG][       Thread-262538][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 17:30:02,216 [DEBUG][       Thread-262538][   transport.py][1871] : Switch to new keys ...
2025-06-13 17:30:02,216 [DEBUG][       Thread-262538][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 17:30:02,216 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 17:30:02,216 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 17:30:02,279 [DEBUG][       Thread-262538][   transport.py][1871] : userauth is OK
2025-06-13 17:30:02,279 [DEBUG][       Thread-262538][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 17:30:02,279 [DEBUG][       Thread-262538][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 17:30:02,279 [DEBUG][       Thread-262538][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 17:30:02,279 [DEBUG][       Thread-262538][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 17:30:02,293 [ INFO][       Thread-262538][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 17:30:02,293 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 17:30:02,294 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 17:30:02,993 [DEBUG][Thread-262540 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:30:03,277 [DEBUG][       Thread-262538][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 17:30:03,277 [DEBUG][       Thread-262538][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 17:30:03,328 [DEBUG][       Thread-262538][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 17:30:03,328 [DEBUG][       Thread-262538][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 17:30:03,338 [DEBUG][       Thread-262538][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 17:30:03,347 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 17:30:03,347 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 17:30:03,356 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 17:30:03,365 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 17:30:03,366 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 17:30:03,366 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 17:30:03,374 [DEBUG][       Thread-262538][   transport.py][1871] : EOF in transport thread
2025-06-13 17:30:04,070 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:30:04,071 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:30:05,203 [DEBUG][Thread-262541 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:30:13,372 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 17:30:13,372 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 17:30:13,372 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 17:30:13,373 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 17:30:13,850 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 17, 29, 49), 16.28, 32.19, 0.0, 15.35, 12.58, 0, 0, 0, 2, 0, 0),)
2025-06-13 17:30:13,850 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 17:29:49
2025-06-13 17:30:13,939 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 17:30:13,944 [DEBUG][       Thread-262542][   transport.py][1871] : starting thread (client mode): 0x86369720
2025-06-13 17:30:13,945 [DEBUG][       Thread-262542][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 17:30:13,960 [DEBUG][       Thread-262542][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 17:30:13,961 [ INFO][       Thread-262542][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 17:30:13,964 [DEBUG][       Thread-262542][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 17:30:13,964 [DEBUG][       Thread-262542][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 17:30:13,964 [DEBUG][       Thread-262542][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 17:30:13,964 [DEBUG][       Thread-262542][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:30:13,964 [DEBUG][       Thread-262542][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:30:13,964 [DEBUG][       Thread-262542][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:30:13,964 [DEBUG][       Thread-262542][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:30:13,964 [DEBUG][       Thread-262542][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 17:30:13,964 [DEBUG][       Thread-262542][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 17:30:13,964 [DEBUG][       Thread-262542][   transport.py][1871] : client lang: <none>
2025-06-13 17:30:13,964 [DEBUG][       Thread-262542][   transport.py][1871] : server lang: <none>
2025-06-13 17:30:13,964 [DEBUG][       Thread-262542][   transport.py][1871] : kex follows: False
2025-06-13 17:30:13,964 [DEBUG][       Thread-262542][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 17:30:13,964 [DEBUG][       Thread-262542][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 17:30:13,964 [DEBUG][       Thread-262542][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 17:30:13,964 [DEBUG][       Thread-262542][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 17:30:13,964 [DEBUG][       Thread-262542][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 17:30:13,964 [DEBUG][       Thread-262542][   transport.py][1871] : Compression: none
2025-06-13 17:30:13,964 [DEBUG][       Thread-262542][   transport.py][1871] : === End of kex handshake ===
2025-06-13 17:30:13,978 [DEBUG][       Thread-262542][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 17:30:13,978 [DEBUG][       Thread-262542][   transport.py][1871] : Switch to new keys ...
2025-06-13 17:30:13,978 [DEBUG][       Thread-262542][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 17:30:13,978 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 17:30:13,978 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 17:30:13,979 [DEBUG][       Thread-262542][   transport.py][1871] : userauth is OK
2025-06-13 17:30:14,003 [ INFO][       Thread-262542][   transport.py][1871] : Authentication (password) successful!
2025-06-13 17:30:14,003 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 17:30:14,236 [DEBUG][Thread-262544 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:30:21,832 [DEBUG][       Thread-262542][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 17:30:21,832 [DEBUG][       Thread-262542][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 17:30:21,873 [DEBUG][       Thread-262542][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 17:30:21,873 [DEBUG][       Thread-262542][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 17:30:21,875 [DEBUG][       Thread-262542][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 17:30:21,882 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 17:30:21,882 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 17:30:21,883 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 17:30:21,884 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 17:30:21,915 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 17:30:21,915 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 17:30:21,916 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 17:30:21,916 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 17:30:21,916 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.645420 -999.00  +12.30  15.16     37   -1.70 1 1 1 1 1   885    0 13.86 -15.64 ----- 13.7 15.2 50.6 16.4 13.7 -29.7 13.5 -30.4 13.6 -29.5 14.0 -28.6
2025-06-13 17:30:21,916 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 17:30:21,916 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 17:30:21,916 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.645420
2025-06-13 17:30:21,916 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 17:30:21,916 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 17:30:21,916 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 17:30:21,916 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 17:30:21,916 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 17:30:21,916 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T17:29:49', tmtdew=16.28, humidity=32.19, cloud=0.0, wind=15.35, temperature=12.58, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T15:29:24.288', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 17:30:21,917 [DEBUG][       Thread-262542][   transport.py][1871] : EOF in transport thread
2025-06-13 17:30:21,991 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 17:30:22,002 [DEBUG][       Thread-262546][   transport.py][1871] : starting thread (client mode): 0x868c85e0
2025-06-13 17:30:22,002 [DEBUG][       Thread-262546][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 17:30:22,017 [DEBUG][       Thread-262546][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 17:30:22,017 [ INFO][       Thread-262546][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 17:30:22,024 [DEBUG][       Thread-262546][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 17:30:22,024 [DEBUG][       Thread-262546][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 17:30:22,024 [DEBUG][       Thread-262546][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 17:30:22,024 [DEBUG][       Thread-262546][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:30:22,024 [DEBUG][       Thread-262546][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:30:22,024 [DEBUG][       Thread-262546][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:30:22,024 [DEBUG][       Thread-262546][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:30:22,024 [DEBUG][       Thread-262546][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 17:30:22,024 [DEBUG][       Thread-262546][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 17:30:22,024 [DEBUG][       Thread-262546][   transport.py][1871] : client lang: <none>
2025-06-13 17:30:22,024 [DEBUG][       Thread-262546][   transport.py][1871] : server lang: <none>
2025-06-13 17:30:22,024 [DEBUG][       Thread-262546][   transport.py][1871] : kex follows: False
2025-06-13 17:30:22,024 [DEBUG][       Thread-262546][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 17:30:22,024 [DEBUG][       Thread-262546][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 17:30:22,024 [DEBUG][       Thread-262546][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 17:30:22,024 [DEBUG][       Thread-262546][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 17:30:22,024 [DEBUG][       Thread-262546][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 17:30:22,024 [DEBUG][       Thread-262546][   transport.py][1871] : Compression: none
2025-06-13 17:30:22,024 [DEBUG][       Thread-262546][   transport.py][1871] : === End of kex handshake ===
2025-06-13 17:30:22,079 [DEBUG][       Thread-262546][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 17:30:22,079 [DEBUG][       Thread-262546][   transport.py][1871] : Switch to new keys ...
2025-06-13 17:30:22,079 [DEBUG][       Thread-262546][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 17:30:22,080 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 17:30:22,080 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 17:30:22,137 [DEBUG][       Thread-262546][   transport.py][1871] : userauth is OK
2025-06-13 17:30:22,137 [DEBUG][       Thread-262546][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 17:30:22,137 [DEBUG][       Thread-262546][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 17:30:22,137 [DEBUG][       Thread-262546][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 17:30:22,137 [DEBUG][       Thread-262546][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 17:30:22,151 [ INFO][       Thread-262546][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 17:30:22,151 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 17:30:22,151 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 17:30:23,188 [DEBUG][       Thread-262546][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 17:30:23,189 [DEBUG][       Thread-262546][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 17:30:23,242 [DEBUG][       Thread-262546][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 17:30:23,242 [DEBUG][       Thread-262546][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 17:30:23,252 [DEBUG][Thread-262548 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:30:23,256 [DEBUG][       Thread-262546][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 17:30:23,269 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 17:30:23,269 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 17:30:23,277 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 17:30:23,285 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 17:30:23,285 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 17:30:23,285 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 17:30:23,293 [DEBUG][       Thread-262546][   transport.py][1871] : EOF in transport thread
2025-06-13 17:30:26,339 [DEBUG][Thread-262549 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:30:26,757 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:30:26,758 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:30:32,273 [DEBUG][Thread-262550 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:30:33,296 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 17:30:33,296 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 17:30:33,296 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 17:30:33,299 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 17:30:33,759 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 17, 30, 21), 16.28, 31.91, 0.0, 13.08, 12.55, 0, 0, 0, 2, 0, 0),)
2025-06-13 17:30:33,759 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 17:30:21
2025-06-13 17:30:33,840 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 17:30:33,844 [DEBUG][       Thread-262551][   transport.py][1871] : starting thread (client mode): 0x8636a290
2025-06-13 17:30:33,844 [DEBUG][       Thread-262551][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 17:30:33,867 [DEBUG][       Thread-262551][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 17:30:33,867 [ INFO][       Thread-262551][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 17:30:33,871 [DEBUG][       Thread-262551][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 17:30:33,872 [DEBUG][       Thread-262551][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 17:30:33,872 [DEBUG][       Thread-262551][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 17:30:33,872 [DEBUG][       Thread-262551][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:30:33,872 [DEBUG][       Thread-262551][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:30:33,872 [DEBUG][       Thread-262551][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:30:33,872 [DEBUG][       Thread-262551][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:30:33,872 [DEBUG][       Thread-262551][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 17:30:33,872 [DEBUG][       Thread-262551][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 17:30:33,872 [DEBUG][       Thread-262551][   transport.py][1871] : client lang: <none>
2025-06-13 17:30:33,872 [DEBUG][       Thread-262551][   transport.py][1871] : server lang: <none>
2025-06-13 17:30:33,872 [DEBUG][       Thread-262551][   transport.py][1871] : kex follows: False
2025-06-13 17:30:33,872 [DEBUG][       Thread-262551][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 17:30:33,872 [DEBUG][       Thread-262551][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 17:30:33,872 [DEBUG][       Thread-262551][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 17:30:33,872 [DEBUG][       Thread-262551][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 17:30:33,872 [DEBUG][       Thread-262551][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 17:30:33,872 [DEBUG][       Thread-262551][   transport.py][1871] : Compression: none
2025-06-13 17:30:33,872 [DEBUG][       Thread-262551][   transport.py][1871] : === End of kex handshake ===
2025-06-13 17:30:33,889 [DEBUG][       Thread-262551][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 17:30:33,889 [DEBUG][       Thread-262551][   transport.py][1871] : Switch to new keys ...
2025-06-13 17:30:33,890 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 17:30:33,890 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 17:30:33,891 [DEBUG][       Thread-262551][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 17:30:33,891 [DEBUG][       Thread-262551][   transport.py][1871] : userauth is OK
2025-06-13 17:30:33,904 [ INFO][       Thread-262551][   transport.py][1871] : Authentication (password) successful!
2025-06-13 17:30:33,904 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 17:30:34,508 [DEBUG][       Thread-262551][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 17:30:34,508 [DEBUG][       Thread-262551][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 17:30:34,553 [DEBUG][       Thread-262551][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 17:30:34,553 [DEBUG][       Thread-262551][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 17:30:34,556 [DEBUG][       Thread-262551][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 17:30:34,565 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 17:30:34,566 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 17:30:34,568 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 17:30:34,570 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 17:30:34,576 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 17:30:34,578 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 17:30:34,578 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 17:30:34,579 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 17:30:34,579 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.645767 -999.00  +12.30  16.52     37   -1.80 1 1 1 1 1   885    0 13.79 -22.46 ----- 14.9 16.5 42.8 18.1 13.7 -29.8 13.4 -30.4 13.6 -29.8 14.0 -28.8
2025-06-13 17:30:34,579 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 17:30:34,579 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 17:30:34,579 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.645767
2025-06-13 17:30:34,579 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 17:30:34,580 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 17:30:34,580 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 17:30:34,580 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 17:30:34,580 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 17:30:34,580 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T17:30:21', tmtdew=16.28, humidity=31.91, cloud=0.0, wind=13.08, temperature=12.55, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T15:29:54.269', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 17:30:34,581 [DEBUG][       Thread-262551][   transport.py][1871] : EOF in transport thread
2025-06-13 17:30:34,669 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 17:30:34,679 [DEBUG][       Thread-262554][   transport.py][1871] : starting thread (client mode): 0x863bea70
2025-06-13 17:30:34,679 [DEBUG][       Thread-262554][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 17:30:34,693 [DEBUG][       Thread-262554][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 17:30:34,693 [ INFO][       Thread-262554][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 17:30:34,701 [DEBUG][       Thread-262554][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 17:30:34,701 [DEBUG][       Thread-262554][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 17:30:34,701 [DEBUG][       Thread-262554][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 17:30:34,701 [DEBUG][       Thread-262554][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:30:34,701 [DEBUG][       Thread-262554][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:30:34,701 [DEBUG][       Thread-262554][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:30:34,701 [DEBUG][       Thread-262554][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:30:34,701 [DEBUG][       Thread-262554][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 17:30:34,701 [DEBUG][       Thread-262554][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 17:30:34,701 [DEBUG][       Thread-262554][   transport.py][1871] : client lang: <none>
2025-06-13 17:30:34,701 [DEBUG][       Thread-262554][   transport.py][1871] : server lang: <none>
2025-06-13 17:30:34,701 [DEBUG][       Thread-262554][   transport.py][1871] : kex follows: False
2025-06-13 17:30:34,701 [DEBUG][       Thread-262554][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 17:30:34,701 [DEBUG][       Thread-262554][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 17:30:34,701 [DEBUG][       Thread-262554][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 17:30:34,701 [DEBUG][       Thread-262554][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 17:30:34,701 [DEBUG][       Thread-262554][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 17:30:34,701 [DEBUG][       Thread-262554][   transport.py][1871] : Compression: none
2025-06-13 17:30:34,702 [DEBUG][       Thread-262554][   transport.py][1871] : === End of kex handshake ===
2025-06-13 17:30:34,757 [DEBUG][       Thread-262554][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 17:30:34,758 [DEBUG][       Thread-262554][   transport.py][1871] : Switch to new keys ...
2025-06-13 17:30:34,758 [DEBUG][       Thread-262554][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 17:30:34,759 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 17:30:34,759 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 17:30:34,818 [DEBUG][       Thread-262554][   transport.py][1871] : userauth is OK
2025-06-13 17:30:34,818 [DEBUG][       Thread-262554][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 17:30:34,818 [DEBUG][       Thread-262554][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 17:30:34,818 [DEBUG][       Thread-262554][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 17:30:34,818 [DEBUG][       Thread-262554][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 17:30:34,837 [ INFO][       Thread-262554][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 17:30:34,838 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 17:30:34,838 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 17:30:35,816 [DEBUG][       Thread-262554][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 17:30:35,816 [DEBUG][       Thread-262554][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 17:30:35,864 [DEBUG][       Thread-262554][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 17:30:35,864 [DEBUG][       Thread-262554][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 17:30:35,874 [DEBUG][       Thread-262554][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 17:30:35,883 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 17:30:35,883 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 17:30:35,892 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 17:30:35,902 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 17:30:35,902 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 17:30:35,903 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 17:30:35,911 [DEBUG][       Thread-262554][   transport.py][1871] : EOF in transport thread
2025-06-13 17:30:41,301 [DEBUG][Thread-262556 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:30:45,905 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 17:30:45,905 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 17:30:45,905 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 17:30:45,908 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 17:30:46,358 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 17, 30, 21), 16.28, 31.91, 0.0, 13.08, 12.55, 0, 0, 0, 2, 0, 0),)
2025-06-13 17:30:46,358 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 17:30:21
2025-06-13 17:30:46,439 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 17:30:46,446 [DEBUG][       Thread-262557][   transport.py][1871] : starting thread (client mode): 0x8636b190
2025-06-13 17:30:46,446 [DEBUG][       Thread-262557][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 17:30:46,467 [DEBUG][       Thread-262557][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 17:30:46,467 [ INFO][       Thread-262557][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 17:30:46,470 [DEBUG][       Thread-262557][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 17:30:46,471 [DEBUG][       Thread-262557][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 17:30:46,471 [DEBUG][       Thread-262557][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 17:30:46,471 [DEBUG][       Thread-262557][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:30:46,471 [DEBUG][       Thread-262557][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:30:46,471 [DEBUG][       Thread-262557][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:30:46,471 [DEBUG][       Thread-262557][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:30:46,471 [DEBUG][       Thread-262557][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 17:30:46,471 [DEBUG][       Thread-262557][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 17:30:46,471 [DEBUG][       Thread-262557][   transport.py][1871] : client lang: <none>
2025-06-13 17:30:46,471 [DEBUG][       Thread-262557][   transport.py][1871] : server lang: <none>
2025-06-13 17:30:46,471 [DEBUG][       Thread-262557][   transport.py][1871] : kex follows: False
2025-06-13 17:30:46,471 [DEBUG][       Thread-262557][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 17:30:46,471 [DEBUG][       Thread-262557][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 17:30:46,471 [DEBUG][       Thread-262557][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 17:30:46,471 [DEBUG][       Thread-262557][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 17:30:46,471 [DEBUG][       Thread-262557][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 17:30:46,471 [DEBUG][       Thread-262557][   transport.py][1871] : Compression: none
2025-06-13 17:30:46,471 [DEBUG][       Thread-262557][   transport.py][1871] : === End of kex handshake ===
2025-06-13 17:30:46,488 [DEBUG][       Thread-262557][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 17:30:46,489 [DEBUG][       Thread-262557][   transport.py][1871] : Switch to new keys ...
2025-06-13 17:30:46,489 [DEBUG][       Thread-262557][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 17:30:46,489 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 17:30:46,490 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 17:30:46,491 [DEBUG][       Thread-262557][   transport.py][1871] : userauth is OK
2025-06-13 17:30:46,516 [ INFO][       Thread-262557][   transport.py][1871] : Authentication (password) successful!
2025-06-13 17:30:46,517 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 17:30:47,121 [DEBUG][       Thread-262557][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 17:30:47,122 [DEBUG][       Thread-262557][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 17:30:47,164 [DEBUG][       Thread-262557][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 17:30:47,164 [DEBUG][       Thread-262557][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 17:30:47,166 [DEBUG][       Thread-262557][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 17:30:47,178 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 17:30:47,178 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 17:30:47,179 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 17:30:47,180 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 17:30:47,183 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 17:30:47,183 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 17:30:47,183 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 17:30:47,184 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 17:30:47,184 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.645767 -999.00  +12.30  16.52     37   -1.80 1 1 1 1 1   885    0 13.79 -22.46 ----- 14.9 16.5 42.8 18.1 13.7 -29.8 13.4 -30.4 13.6 -29.8 14.0 -28.8
2025-06-13 17:30:47,184 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 17:30:47,184 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 17:30:47,184 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.645767
2025-06-13 17:30:47,184 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 17:30:47,184 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 17:30:47,184 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 17:30:47,184 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 17:30:47,184 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 17:30:47,184 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T17:30:21', tmtdew=16.28, humidity=31.91, cloud=0.0, wind=13.08, temperature=12.55, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T15:29:54.269', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 17:30:47,184 [DEBUG][       Thread-262557][   transport.py][1871] : EOF in transport thread
2025-06-13 17:30:47,256 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 17:30:47,266 [DEBUG][       Thread-262560][   transport.py][1871] : starting thread (client mode): 0x86893a60
2025-06-13 17:30:47,267 [DEBUG][       Thread-262560][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 17:30:47,283 [DEBUG][       Thread-262560][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 17:30:47,284 [ INFO][       Thread-262560][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 17:30:47,295 [DEBUG][       Thread-262560][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 17:30:47,296 [DEBUG][       Thread-262560][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 17:30:47,296 [DEBUG][       Thread-262560][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 17:30:47,296 [DEBUG][       Thread-262560][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:30:47,296 [DEBUG][       Thread-262560][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:30:47,296 [DEBUG][       Thread-262560][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:30:47,296 [DEBUG][       Thread-262560][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:30:47,296 [DEBUG][       Thread-262560][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 17:30:47,296 [DEBUG][       Thread-262560][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 17:30:47,296 [DEBUG][       Thread-262560][   transport.py][1871] : client lang: <none>
2025-06-13 17:30:47,296 [DEBUG][       Thread-262560][   transport.py][1871] : server lang: <none>
2025-06-13 17:30:47,296 [DEBUG][       Thread-262560][   transport.py][1871] : kex follows: False
2025-06-13 17:30:47,296 [DEBUG][       Thread-262560][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 17:30:47,296 [DEBUG][       Thread-262560][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 17:30:47,296 [DEBUG][       Thread-262560][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 17:30:47,296 [DEBUG][       Thread-262560][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 17:30:47,296 [DEBUG][       Thread-262560][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 17:30:47,297 [DEBUG][       Thread-262560][   transport.py][1871] : Compression: none
2025-06-13 17:30:47,297 [DEBUG][       Thread-262560][   transport.py][1871] : === End of kex handshake ===
2025-06-13 17:30:47,349 [DEBUG][       Thread-262560][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 17:30:47,349 [DEBUG][       Thread-262560][   transport.py][1871] : Switch to new keys ...
2025-06-13 17:30:47,349 [DEBUG][       Thread-262560][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 17:30:47,350 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 17:30:47,350 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 17:30:47,405 [DEBUG][       Thread-262560][   transport.py][1871] : userauth is OK
2025-06-13 17:30:47,405 [DEBUG][       Thread-262560][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 17:30:47,405 [DEBUG][       Thread-262560][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 17:30:47,405 [DEBUG][       Thread-262560][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 17:30:47,405 [DEBUG][       Thread-262560][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 17:30:47,424 [ INFO][       Thread-262560][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 17:30:47,424 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 17:30:47,425 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 17:30:48,806 [DEBUG][       Thread-262560][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 17:30:48,807 [DEBUG][       Thread-262560][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 17:30:48,856 [DEBUG][       Thread-262560][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 17:30:48,856 [DEBUG][       Thread-262560][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 17:30:48,865 [DEBUG][       Thread-262560][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 17:30:48,874 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 17:30:48,875 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 17:30:48,891 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 17:30:48,900 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 17:30:48,900 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 17:30:48,901 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 17:30:48,909 [DEBUG][       Thread-262560][   transport.py][1871] : EOF in transport thread
2025-06-13 17:30:50,336 [DEBUG][Thread-262562 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:30:58,911 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 17:30:58,912 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 17:30:58,912 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 17:30:58,915 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 17:30:59,353 [DEBUG][Thread-262563 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:30:59,374 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 17, 30, 52), 16.31, 31.83, 0.0, 12.51, 12.53, 0, 0, 0, 2, 0, 0),)
2025-06-13 17:30:59,374 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 17:30:52
2025-06-13 17:30:59,455 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 17:30:59,459 [DEBUG][       Thread-262564][   transport.py][1871] : starting thread (client mode): 0x863684c0
2025-06-13 17:30:59,459 [DEBUG][       Thread-262564][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 17:30:59,479 [DEBUG][       Thread-262564][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 17:30:59,479 [ INFO][       Thread-262564][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 17:30:59,483 [DEBUG][       Thread-262564][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 17:30:59,483 [DEBUG][       Thread-262564][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 17:30:59,483 [DEBUG][       Thread-262564][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 17:30:59,483 [DEBUG][       Thread-262564][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:30:59,483 [DEBUG][       Thread-262564][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:30:59,483 [DEBUG][       Thread-262564][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:30:59,483 [DEBUG][       Thread-262564][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:30:59,483 [DEBUG][       Thread-262564][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 17:30:59,483 [DEBUG][       Thread-262564][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 17:30:59,483 [DEBUG][       Thread-262564][   transport.py][1871] : client lang: <none>
2025-06-13 17:30:59,483 [DEBUG][       Thread-262564][   transport.py][1871] : server lang: <none>
2025-06-13 17:30:59,483 [DEBUG][       Thread-262564][   transport.py][1871] : kex follows: False
2025-06-13 17:30:59,483 [DEBUG][       Thread-262564][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 17:30:59,483 [DEBUG][       Thread-262564][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 17:30:59,483 [DEBUG][       Thread-262564][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 17:30:59,483 [DEBUG][       Thread-262564][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 17:30:59,483 [DEBUG][       Thread-262564][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 17:30:59,483 [DEBUG][       Thread-262564][   transport.py][1871] : Compression: none
2025-06-13 17:30:59,483 [DEBUG][       Thread-262564][   transport.py][1871] : === End of kex handshake ===
2025-06-13 17:30:59,500 [DEBUG][       Thread-262564][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 17:30:59,501 [DEBUG][       Thread-262564][   transport.py][1871] : Switch to new keys ...
2025-06-13 17:30:59,501 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 17:30:59,501 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 17:30:59,502 [DEBUG][       Thread-262564][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 17:30:59,502 [DEBUG][       Thread-262564][   transport.py][1871] : userauth is OK
2025-06-13 17:30:59,526 [ INFO][       Thread-262564][   transport.py][1871] : Authentication (password) successful!
2025-06-13 17:30:59,527 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 17:31:00,165 [DEBUG][       Thread-262564][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 17:31:00,165 [DEBUG][       Thread-262564][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 17:31:00,209 [DEBUG][       Thread-262564][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 17:31:00,209 [DEBUG][       Thread-262564][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 17:31:00,211 [DEBUG][       Thread-262564][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 17:31:00,219 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 17:31:00,219 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 17:31:00,221 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 17:31:00,222 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 17:31:00,227 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 17:31:00,228 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 17:31:00,229 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 17:31:00,229 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 17:31:00,229 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.645767 -999.00  +12.30  16.52     37   -1.80 1 1 1 1 1   885    0 13.79 -22.46 ----- 14.9 16.5 42.8 18.1 13.7 -29.8 13.4 -30.4 13.6 -29.8 14.0 -28.8
2025-06-13 17:31:00,229 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 17:31:00,230 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 17:31:00,230 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.645767
2025-06-13 17:31:00,230 [DEBUG][       Thread-262564][   transport.py][1871] : EOF in transport thread
2025-06-13 17:31:00,230 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 17:31:00,231 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 17:31:00,232 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 17:31:00,232 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 17:31:00,232 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 17:31:00,232 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T17:30:52', tmtdew=16.31, humidity=31.83, cloud=0.0, wind=12.51, temperature=12.53, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T15:29:54.269', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 17:31:00,317 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 17:31:00,327 [DEBUG][       Thread-262567][   transport.py][1871] : starting thread (client mode): 0x86391690
2025-06-13 17:31:00,327 [DEBUG][       Thread-262567][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 17:31:00,342 [DEBUG][       Thread-262567][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 17:31:00,342 [ INFO][       Thread-262567][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 17:31:00,349 [DEBUG][       Thread-262567][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 17:31:00,350 [DEBUG][       Thread-262567][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 17:31:00,350 [DEBUG][       Thread-262567][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 17:31:00,350 [DEBUG][       Thread-262567][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:31:00,350 [DEBUG][       Thread-262567][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:31:00,350 [DEBUG][       Thread-262567][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:31:00,350 [DEBUG][       Thread-262567][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:31:00,350 [DEBUG][       Thread-262567][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 17:31:00,350 [DEBUG][       Thread-262567][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 17:31:00,350 [DEBUG][       Thread-262567][   transport.py][1871] : client lang: <none>
2025-06-13 17:31:00,350 [DEBUG][       Thread-262567][   transport.py][1871] : server lang: <none>
2025-06-13 17:31:00,350 [DEBUG][       Thread-262567][   transport.py][1871] : kex follows: False
2025-06-13 17:31:00,350 [DEBUG][       Thread-262567][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 17:31:00,350 [DEBUG][       Thread-262567][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 17:31:00,350 [DEBUG][       Thread-262567][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 17:31:00,350 [DEBUG][       Thread-262567][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 17:31:00,350 [DEBUG][       Thread-262567][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 17:31:00,350 [DEBUG][       Thread-262567][   transport.py][1871] : Compression: none
2025-06-13 17:31:00,350 [DEBUG][       Thread-262567][   transport.py][1871] : === End of kex handshake ===
2025-06-13 17:31:00,409 [DEBUG][       Thread-262567][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 17:31:00,410 [DEBUG][       Thread-262567][   transport.py][1871] : Switch to new keys ...
2025-06-13 17:31:00,411 [DEBUG][       Thread-262567][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 17:31:00,411 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 17:31:00,412 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 17:31:00,471 [DEBUG][       Thread-262567][   transport.py][1871] : userauth is OK
2025-06-13 17:31:00,471 [DEBUG][       Thread-262567][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 17:31:00,471 [DEBUG][       Thread-262567][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 17:31:00,471 [DEBUG][       Thread-262567][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 17:31:00,471 [DEBUG][       Thread-262567][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 17:31:00,490 [ INFO][       Thread-262567][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 17:31:00,491 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 17:31:00,491 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 17:31:01,471 [DEBUG][       Thread-262567][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 17:31:01,471 [DEBUG][       Thread-262567][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 17:31:01,524 [DEBUG][       Thread-262567][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 17:31:01,524 [DEBUG][       Thread-262567][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 17:31:01,533 [DEBUG][       Thread-262567][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 17:31:01,541 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 17:31:01,541 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 17:31:01,555 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 17:31:01,568 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 17:31:01,568 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 17:31:01,568 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 17:31:01,578 [DEBUG][       Thread-262567][   transport.py][1871] : EOF in transport thread
2025-06-13 17:31:04,144 [DEBUG][Thread-262569 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:31:05,236 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:31:05,236 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:31:08,373 [DEBUG][Thread-262570 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:31:11,573 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 17:31:11,573 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 17:31:11,573 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 17:31:11,576 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 17:31:12,036 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 17, 30, 52), 16.31, 31.83, 0.0, 12.51, 12.53, 0, 0, 0, 2, 0, 0),)
2025-06-13 17:31:12,036 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 17:30:52
2025-06-13 17:31:12,118 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 17:31:12,123 [DEBUG][       Thread-262571][   transport.py][1871] : starting thread (client mode): 0x863693f0
2025-06-13 17:31:12,123 [DEBUG][       Thread-262571][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 17:31:12,144 [DEBUG][       Thread-262571][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 17:31:12,144 [ INFO][       Thread-262571][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 17:31:12,146 [DEBUG][       Thread-262571][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 17:31:12,146 [DEBUG][       Thread-262571][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 17:31:12,146 [DEBUG][       Thread-262571][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 17:31:12,146 [DEBUG][       Thread-262571][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:31:12,146 [DEBUG][       Thread-262571][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:31:12,146 [DEBUG][       Thread-262571][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:31:12,146 [DEBUG][       Thread-262571][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:31:12,146 [DEBUG][       Thread-262571][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 17:31:12,146 [DEBUG][       Thread-262571][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 17:31:12,146 [DEBUG][       Thread-262571][   transport.py][1871] : client lang: <none>
2025-06-13 17:31:12,146 [DEBUG][       Thread-262571][   transport.py][1871] : server lang: <none>
2025-06-13 17:31:12,147 [DEBUG][       Thread-262571][   transport.py][1871] : kex follows: False
2025-06-13 17:31:12,147 [DEBUG][       Thread-262571][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 17:31:12,147 [DEBUG][       Thread-262571][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 17:31:12,147 [DEBUG][       Thread-262571][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 17:31:12,147 [DEBUG][       Thread-262571][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 17:31:12,147 [DEBUG][       Thread-262571][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 17:31:12,147 [DEBUG][       Thread-262571][   transport.py][1871] : Compression: none
2025-06-13 17:31:12,147 [DEBUG][       Thread-262571][   transport.py][1871] : === End of kex handshake ===
2025-06-13 17:31:12,160 [DEBUG][       Thread-262571][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 17:31:12,160 [DEBUG][       Thread-262571][   transport.py][1871] : Switch to new keys ...
2025-06-13 17:31:12,161 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 17:31:12,161 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 17:31:12,161 [DEBUG][       Thread-262571][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 17:31:12,162 [DEBUG][       Thread-262571][   transport.py][1871] : userauth is OK
2025-06-13 17:31:12,186 [ INFO][       Thread-262571][   transport.py][1871] : Authentication (password) successful!
2025-06-13 17:31:12,186 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 17:31:12,841 [DEBUG][       Thread-262571][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 17:31:12,841 [DEBUG][       Thread-262571][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 17:31:12,889 [DEBUG][       Thread-262571][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 17:31:12,889 [DEBUG][       Thread-262571][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 17:31:12,892 [DEBUG][       Thread-262571][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 17:31:12,904 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 17:31:12,904 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 17:31:12,906 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 17:31:12,908 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 17:31:12,912 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 17:31:12,914 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 17:31:12,914 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 17:31:12,914 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 17:31:12,915 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.646462 -999.00  +12.30  14.72     37   -1.70 1 1 1 1 1   884    0 13.56 -30.95 ----- 12.9 14.7 47.6 18.2 13.6 -30.0 13.4 -30.4 13.5 -29.7 13.9 -29.1
2025-06-13 17:31:12,915 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 17:31:12,915 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 17:31:12,915 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.646462
2025-06-13 17:31:12,915 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 17:31:12,916 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 17:31:12,916 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 17:31:12,916 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 17:31:12,916 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 17:31:12,916 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T17:30:52', tmtdew=16.31, humidity=31.83, cloud=0.0, wind=12.51, temperature=12.53, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T15:30:54.317', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 17:31:12,917 [DEBUG][       Thread-262571][   transport.py][1871] : EOF in transport thread
2025-06-13 17:31:13,000 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 17:31:13,015 [DEBUG][       Thread-262574][   transport.py][1871] : starting thread (client mode): 0x867ff700
2025-06-13 17:31:13,015 [DEBUG][       Thread-262574][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 17:31:13,030 [DEBUG][       Thread-262574][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 17:31:13,030 [ INFO][       Thread-262574][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 17:31:13,037 [DEBUG][       Thread-262574][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 17:31:13,038 [DEBUG][       Thread-262574][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 17:31:13,038 [DEBUG][       Thread-262574][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 17:31:13,038 [DEBUG][       Thread-262574][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:31:13,038 [DEBUG][       Thread-262574][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:31:13,038 [DEBUG][       Thread-262574][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:31:13,038 [DEBUG][       Thread-262574][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:31:13,038 [DEBUG][       Thread-262574][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 17:31:13,038 [DEBUG][       Thread-262574][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 17:31:13,038 [DEBUG][       Thread-262574][   transport.py][1871] : client lang: <none>
2025-06-13 17:31:13,038 [DEBUG][       Thread-262574][   transport.py][1871] : server lang: <none>
2025-06-13 17:31:13,038 [DEBUG][       Thread-262574][   transport.py][1871] : kex follows: False
2025-06-13 17:31:13,038 [DEBUG][       Thread-262574][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 17:31:13,038 [DEBUG][       Thread-262574][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 17:31:13,038 [DEBUG][       Thread-262574][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 17:31:13,038 [DEBUG][       Thread-262574][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 17:31:13,038 [DEBUG][       Thread-262574][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 17:31:13,038 [DEBUG][       Thread-262574][   transport.py][1871] : Compression: none
2025-06-13 17:31:13,038 [DEBUG][       Thread-262574][   transport.py][1871] : === End of kex handshake ===
2025-06-13 17:31:13,097 [DEBUG][       Thread-262574][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 17:31:13,097 [DEBUG][       Thread-262574][   transport.py][1871] : Switch to new keys ...
2025-06-13 17:31:13,098 [DEBUG][       Thread-262574][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 17:31:13,098 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 17:31:13,099 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 17:31:13,160 [DEBUG][       Thread-262574][   transport.py][1871] : userauth is OK
2025-06-13 17:31:13,161 [DEBUG][       Thread-262574][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 17:31:13,161 [DEBUG][       Thread-262574][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 17:31:13,161 [DEBUG][       Thread-262574][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 17:31:13,161 [DEBUG][       Thread-262574][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 17:31:13,184 [ INFO][       Thread-262574][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 17:31:13,184 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 17:31:13,185 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 17:31:14,193 [DEBUG][       Thread-262574][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 17:31:14,193 [DEBUG][       Thread-262574][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 17:31:14,244 [DEBUG][       Thread-262574][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 17:31:14,244 [DEBUG][       Thread-262574][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 17:31:14,253 [DEBUG][       Thread-262574][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 17:31:14,265 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 17:31:14,265 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 17:31:14,274 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 17:31:14,282 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 17:31:14,283 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 17:31:14,283 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 17:31:14,291 [DEBUG][       Thread-262574][   transport.py][1871] : EOF in transport thread
2025-06-13 17:31:17,415 [DEBUG][Thread-262576 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:31:24,294 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 17:31:24,294 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 17:31:24,294 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 17:31:24,297 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 17:31:24,760 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 17, 30, 52), 16.31, 31.83, 0.0, 12.51, 12.53, 0, 0, 0, 2, 0, 0),)
2025-06-13 17:31:24,760 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 17:30:52
2025-06-13 17:31:24,842 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 17:31:24,846 [DEBUG][       Thread-262577][   transport.py][1871] : starting thread (client mode): 0x867ffc10
2025-06-13 17:31:24,846 [DEBUG][       Thread-262577][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 17:31:24,866 [DEBUG][       Thread-262577][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 17:31:24,866 [ INFO][       Thread-262577][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 17:31:24,869 [DEBUG][       Thread-262577][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 17:31:24,870 [DEBUG][       Thread-262577][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 17:31:24,870 [DEBUG][       Thread-262577][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 17:31:24,870 [DEBUG][       Thread-262577][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:31:24,870 [DEBUG][       Thread-262577][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:31:24,870 [DEBUG][       Thread-262577][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:31:24,870 [DEBUG][       Thread-262577][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:31:24,870 [DEBUG][       Thread-262577][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 17:31:24,870 [DEBUG][       Thread-262577][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 17:31:24,870 [DEBUG][       Thread-262577][   transport.py][1871] : client lang: <none>
2025-06-13 17:31:24,870 [DEBUG][       Thread-262577][   transport.py][1871] : server lang: <none>
2025-06-13 17:31:24,870 [DEBUG][       Thread-262577][   transport.py][1871] : kex follows: False
2025-06-13 17:31:24,870 [DEBUG][       Thread-262577][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 17:31:24,870 [DEBUG][       Thread-262577][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 17:31:24,870 [DEBUG][       Thread-262577][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 17:31:24,870 [DEBUG][       Thread-262577][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 17:31:24,870 [DEBUG][       Thread-262577][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 17:31:24,870 [DEBUG][       Thread-262577][   transport.py][1871] : Compression: none
2025-06-13 17:31:24,870 [DEBUG][       Thread-262577][   transport.py][1871] : === End of kex handshake ===
2025-06-13 17:31:24,884 [DEBUG][       Thread-262577][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 17:31:24,884 [DEBUG][       Thread-262577][   transport.py][1871] : Switch to new keys ...
2025-06-13 17:31:24,884 [DEBUG][       Thread-262577][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 17:31:24,884 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 17:31:24,884 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 17:31:24,885 [DEBUG][       Thread-262577][   transport.py][1871] : userauth is OK
2025-06-13 17:31:24,909 [ INFO][       Thread-262577][   transport.py][1871] : Authentication (password) successful!
2025-06-13 17:31:24,909 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 17:31:25,581 [DEBUG][       Thread-262577][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 17:31:25,581 [DEBUG][       Thread-262577][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 17:31:25,624 [DEBUG][       Thread-262577][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 17:31:25,624 [DEBUG][       Thread-262577][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 17:31:25,627 [DEBUG][       Thread-262577][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 17:31:25,639 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 17:31:25,639 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 17:31:25,640 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 17:31:25,641 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 17:31:25,643 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 17:31:25,644 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 17:31:25,644 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 17:31:25,644 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 17:31:25,644 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.646462 -999.00  +12.30  14.72     37   -1.70 1 1 1 1 1   884    0 13.56 -30.95 ----- 12.9 14.7 47.6 18.2 13.6 -30.0 13.4 -30.4 13.5 -29.7 13.9 -29.1
2025-06-13 17:31:25,644 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 17:31:25,644 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 17:31:25,644 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.646462
2025-06-13 17:31:25,644 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 17:31:25,645 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 17:31:25,645 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 17:31:25,645 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 17:31:25,645 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 17:31:25,645 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T17:30:52', tmtdew=16.31, humidity=31.83, cloud=0.0, wind=12.51, temperature=12.53, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T15:30:54.317', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 17:31:25,645 [DEBUG][       Thread-262577][   transport.py][1871] : EOF in transport thread
2025-06-13 17:31:25,719 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 17:31:25,728 [DEBUG][       Thread-262580][   transport.py][1871] : starting thread (client mode): 0x863ee890
2025-06-13 17:31:25,729 [DEBUG][       Thread-262580][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 17:31:25,748 [DEBUG][       Thread-262580][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 17:31:25,748 [ INFO][       Thread-262580][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 17:31:25,756 [DEBUG][       Thread-262580][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 17:31:25,756 [DEBUG][       Thread-262580][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 17:31:25,756 [DEBUG][       Thread-262580][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 17:31:25,756 [DEBUG][       Thread-262580][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:31:25,756 [DEBUG][       Thread-262580][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:31:25,756 [DEBUG][       Thread-262580][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:31:25,756 [DEBUG][       Thread-262580][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:31:25,756 [DEBUG][       Thread-262580][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 17:31:25,756 [DEBUG][       Thread-262580][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 17:31:25,756 [DEBUG][       Thread-262580][   transport.py][1871] : client lang: <none>
2025-06-13 17:31:25,756 [DEBUG][       Thread-262580][   transport.py][1871] : server lang: <none>
2025-06-13 17:31:25,756 [DEBUG][       Thread-262580][   transport.py][1871] : kex follows: False
2025-06-13 17:31:25,756 [DEBUG][       Thread-262580][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 17:31:25,756 [DEBUG][       Thread-262580][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 17:31:25,756 [DEBUG][       Thread-262580][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 17:31:25,756 [DEBUG][       Thread-262580][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 17:31:25,756 [DEBUG][       Thread-262580][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 17:31:25,756 [DEBUG][       Thread-262580][   transport.py][1871] : Compression: none
2025-06-13 17:31:25,756 [DEBUG][       Thread-262580][   transport.py][1871] : === End of kex handshake ===
2025-06-13 17:31:25,816 [DEBUG][       Thread-262580][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 17:31:25,816 [DEBUG][       Thread-262580][   transport.py][1871] : Switch to new keys ...
2025-06-13 17:31:25,816 [DEBUG][       Thread-262580][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 17:31:25,816 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 17:31:25,816 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 17:31:25,873 [DEBUG][       Thread-262580][   transport.py][1871] : userauth is OK
2025-06-13 17:31:25,873 [DEBUG][       Thread-262580][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 17:31:25,873 [DEBUG][       Thread-262580][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 17:31:25,873 [DEBUG][       Thread-262580][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 17:31:25,873 [DEBUG][       Thread-262580][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 17:31:25,887 [ INFO][       Thread-262580][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 17:31:25,887 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 17:31:25,887 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 17:31:26,385 [DEBUG][Thread-262582 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:31:26,434 [DEBUG][Thread-262583 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:31:26,896 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:31:26,898 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:31:26,928 [DEBUG][       Thread-262580][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 17:31:26,928 [DEBUG][       Thread-262580][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 17:31:26,976 [DEBUG][       Thread-262580][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 17:31:26,976 [DEBUG][       Thread-262580][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 17:31:26,985 [DEBUG][       Thread-262580][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 17:31:26,993 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 17:31:26,993 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 17:31:27,001 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 17:31:27,010 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 17:31:27,010 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 17:31:27,010 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 17:31:27,018 [DEBUG][       Thread-262580][   transport.py][1871] : EOF in transport thread
2025-06-13 17:31:35,453 [DEBUG][Thread-262584 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:31:37,021 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 17:31:37,021 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 17:31:37,021 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 17:31:37,024 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 17:31:37,479 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 17, 31, 24), 16.28, 32.19, 0.0, 15.85, 12.53, 0, 0, 0, 2, 0, 0),)
2025-06-13 17:31:37,479 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 17:31:24
2025-06-13 17:31:37,561 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 17:31:37,567 [DEBUG][       Thread-262585][   transport.py][1871] : starting thread (client mode): 0x86353850
2025-06-13 17:31:37,567 [DEBUG][       Thread-262585][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 17:31:37,588 [DEBUG][       Thread-262585][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 17:31:37,588 [ INFO][       Thread-262585][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 17:31:37,592 [DEBUG][       Thread-262585][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 17:31:37,592 [DEBUG][       Thread-262585][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 17:31:37,592 [DEBUG][       Thread-262585][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 17:31:37,592 [DEBUG][       Thread-262585][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:31:37,592 [DEBUG][       Thread-262585][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:31:37,592 [DEBUG][       Thread-262585][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:31:37,592 [DEBUG][       Thread-262585][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:31:37,592 [DEBUG][       Thread-262585][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 17:31:37,592 [DEBUG][       Thread-262585][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 17:31:37,592 [DEBUG][       Thread-262585][   transport.py][1871] : client lang: <none>
2025-06-13 17:31:37,592 [DEBUG][       Thread-262585][   transport.py][1871] : server lang: <none>
2025-06-13 17:31:37,592 [DEBUG][       Thread-262585][   transport.py][1871] : kex follows: False
2025-06-13 17:31:37,592 [DEBUG][       Thread-262585][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 17:31:37,592 [DEBUG][       Thread-262585][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 17:31:37,592 [DEBUG][       Thread-262585][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 17:31:37,593 [DEBUG][       Thread-262585][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 17:31:37,593 [DEBUG][       Thread-262585][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 17:31:37,593 [DEBUG][       Thread-262585][   transport.py][1871] : Compression: none
2025-06-13 17:31:37,593 [DEBUG][       Thread-262585][   transport.py][1871] : === End of kex handshake ===
2025-06-13 17:31:37,611 [DEBUG][       Thread-262585][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 17:31:37,612 [DEBUG][       Thread-262585][   transport.py][1871] : Switch to new keys ...
2025-06-13 17:31:37,613 [DEBUG][       Thread-262585][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 17:31:37,613 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 17:31:37,613 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 17:31:37,614 [DEBUG][       Thread-262585][   transport.py][1871] : userauth is OK
2025-06-13 17:31:37,627 [ INFO][       Thread-262585][   transport.py][1871] : Authentication (password) successful!
2025-06-13 17:31:37,628 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 17:31:38,265 [DEBUG][       Thread-262585][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 17:31:38,265 [DEBUG][       Thread-262585][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 17:31:38,309 [DEBUG][       Thread-262585][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 17:31:38,309 [DEBUG][       Thread-262585][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 17:31:38,313 [DEBUG][       Thread-262585][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 17:31:38,326 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 17:31:38,327 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 17:31:38,329 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 17:31:38,331 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 17:31:38,337 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 17:31:38,339 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 17:31:38,339 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 17:31:38,340 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 17:31:38,340 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.646809 -999.00  +12.30  14.25     37   -1.70 1 1 1 1 1   884    0 13.02 -36.06 ----- 12.9 14.2 40.2 15.6 13.6 -30.0 13.3 -30.4 13.4 -29.7 13.8 -29.0
2025-06-13 17:31:38,340 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 17:31:38,340 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 17:31:38,340 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.646809
2025-06-13 17:31:38,341 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 17:31:38,342 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 17:31:38,342 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 17:31:38,342 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 17:31:38,342 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 17:31:38,342 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T17:31:24', tmtdew=16.28, humidity=32.19, cloud=0.0, wind=15.85, temperature=12.53, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T15:31:24.298', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 17:31:38,343 [DEBUG][       Thread-262585][   transport.py][1871] : EOF in transport thread
2025-06-13 17:31:38,426 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 17:31:38,437 [DEBUG][       Thread-262588][   transport.py][1871] : starting thread (client mode): 0x863be1d0
2025-06-13 17:31:38,437 [DEBUG][       Thread-262588][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 17:31:38,452 [DEBUG][       Thread-262588][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 17:31:38,452 [ INFO][       Thread-262588][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 17:31:38,460 [DEBUG][       Thread-262588][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 17:31:38,460 [DEBUG][       Thread-262588][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 17:31:38,460 [DEBUG][       Thread-262588][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 17:31:38,460 [DEBUG][       Thread-262588][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:31:38,460 [DEBUG][       Thread-262588][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:31:38,460 [DEBUG][       Thread-262588][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:31:38,460 [DEBUG][       Thread-262588][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:31:38,460 [DEBUG][       Thread-262588][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 17:31:38,460 [DEBUG][       Thread-262588][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 17:31:38,460 [DEBUG][       Thread-262588][   transport.py][1871] : client lang: <none>
2025-06-13 17:31:38,461 [DEBUG][       Thread-262588][   transport.py][1871] : server lang: <none>
2025-06-13 17:31:38,461 [DEBUG][       Thread-262588][   transport.py][1871] : kex follows: False
2025-06-13 17:31:38,461 [DEBUG][       Thread-262588][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 17:31:38,461 [DEBUG][       Thread-262588][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 17:31:38,461 [DEBUG][       Thread-262588][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 17:31:38,461 [DEBUG][       Thread-262588][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 17:31:38,461 [DEBUG][       Thread-262588][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 17:31:38,461 [DEBUG][       Thread-262588][   transport.py][1871] : Compression: none
2025-06-13 17:31:38,461 [DEBUG][       Thread-262588][   transport.py][1871] : === End of kex handshake ===
2025-06-13 17:31:38,518 [DEBUG][       Thread-262588][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 17:31:38,518 [DEBUG][       Thread-262588][   transport.py][1871] : Switch to new keys ...
2025-06-13 17:31:38,519 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 17:31:38,520 [DEBUG][       Thread-262588][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 17:31:38,521 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 17:31:38,581 [DEBUG][       Thread-262588][   transport.py][1871] : userauth is OK
2025-06-13 17:31:38,581 [DEBUG][       Thread-262588][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 17:31:38,581 [DEBUG][       Thread-262588][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 17:31:38,581 [DEBUG][       Thread-262588][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 17:31:38,581 [DEBUG][       Thread-262588][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 17:31:38,603 [ INFO][       Thread-262588][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 17:31:38,603 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 17:31:38,604 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 17:31:39,613 [DEBUG][       Thread-262588][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 17:31:39,614 [DEBUG][       Thread-262588][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 17:31:39,664 [DEBUG][       Thread-262588][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 17:31:39,664 [DEBUG][       Thread-262588][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 17:31:39,674 [DEBUG][       Thread-262588][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 17:31:39,683 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 17:31:39,683 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 17:31:39,692 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 17:31:39,702 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 17:31:39,702 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 17:31:39,703 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 17:31:39,711 [DEBUG][       Thread-262588][   transport.py][1871] : EOF in transport thread
2025-06-13 17:31:44,479 [DEBUG][Thread-262590 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:31:49,703 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 17:31:49,703 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 17:31:49,704 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 17:31:49,705 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 17:31:50,153 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 17, 31, 24), 16.28, 32.19, 0.0, 15.85, 12.53, 0, 0, 0, 2, 0, 0),)
2025-06-13 17:31:50,153 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 17:31:24
2025-06-13 17:31:50,235 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 17:31:50,242 [DEBUG][       Thread-262591][   transport.py][1871] : starting thread (client mode): 0x8636bdf0
2025-06-13 17:31:50,242 [DEBUG][       Thread-262591][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 17:31:50,264 [DEBUG][       Thread-262591][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 17:31:50,264 [ INFO][       Thread-262591][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 17:31:50,268 [DEBUG][       Thread-262591][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 17:31:50,268 [DEBUG][       Thread-262591][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 17:31:50,268 [DEBUG][       Thread-262591][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 17:31:50,268 [DEBUG][       Thread-262591][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:31:50,268 [DEBUG][       Thread-262591][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:31:50,268 [DEBUG][       Thread-262591][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:31:50,268 [DEBUG][       Thread-262591][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:31:50,268 [DEBUG][       Thread-262591][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 17:31:50,268 [DEBUG][       Thread-262591][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 17:31:50,268 [DEBUG][       Thread-262591][   transport.py][1871] : client lang: <none>
2025-06-13 17:31:50,268 [DEBUG][       Thread-262591][   transport.py][1871] : server lang: <none>
2025-06-13 17:31:50,268 [DEBUG][       Thread-262591][   transport.py][1871] : kex follows: False
2025-06-13 17:31:50,268 [DEBUG][       Thread-262591][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 17:31:50,268 [DEBUG][       Thread-262591][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 17:31:50,268 [DEBUG][       Thread-262591][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 17:31:50,268 [DEBUG][       Thread-262591][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 17:31:50,268 [DEBUG][       Thread-262591][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 17:31:50,268 [DEBUG][       Thread-262591][   transport.py][1871] : Compression: none
2025-06-13 17:31:50,268 [DEBUG][       Thread-262591][   transport.py][1871] : === End of kex handshake ===
2025-06-13 17:31:50,284 [DEBUG][       Thread-262591][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 17:31:50,285 [DEBUG][       Thread-262591][   transport.py][1871] : Switch to new keys ...
2025-06-13 17:31:50,285 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 17:31:50,285 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 17:31:50,286 [DEBUG][       Thread-262591][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 17:31:50,286 [DEBUG][       Thread-262591][   transport.py][1871] : userauth is OK
2025-06-13 17:31:50,299 [ INFO][       Thread-262591][   transport.py][1871] : Authentication (password) successful!
2025-06-13 17:31:50,300 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 17:31:50,943 [DEBUG][       Thread-262591][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 17:31:50,944 [DEBUG][       Thread-262591][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 17:31:50,985 [DEBUG][       Thread-262591][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 17:31:50,985 [DEBUG][       Thread-262591][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 17:31:50,989 [DEBUG][       Thread-262591][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 17:31:51,001 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 17:31:51,001 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 17:31:51,003 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 17:31:51,005 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 17:31:51,011 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 17:31:51,013 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 17:31:51,013 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 17:31:51,014 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 17:31:51,014 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.646809 -999.00  +12.30  14.25     37   -1.70 1 1 1 1 1   884    0 13.02 -36.06 ----- 12.9 14.2 40.2 15.6 13.6 -30.0 13.3 -30.4 13.4 -29.7 13.8 -29.0
2025-06-13 17:31:51,014 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 17:31:51,014 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 17:31:51,014 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.646809
2025-06-13 17:31:51,015 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 17:31:51,015 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 17:31:51,015 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 17:31:51,016 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 17:31:51,016 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 17:31:51,016 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T17:31:24', tmtdew=16.28, humidity=32.19, cloud=0.0, wind=15.85, temperature=12.53, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T15:31:24.298', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 17:31:51,017 [DEBUG][       Thread-262591][   transport.py][1871] : EOF in transport thread
2025-06-13 17:31:51,100 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 17:31:51,111 [DEBUG][       Thread-262594][   transport.py][1871] : starting thread (client mode): 0x863bdf90
2025-06-13 17:31:51,111 [DEBUG][       Thread-262594][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 17:31:51,126 [DEBUG][       Thread-262594][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 17:31:51,126 [ INFO][       Thread-262594][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 17:31:51,134 [DEBUG][       Thread-262594][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 17:31:51,134 [DEBUG][       Thread-262594][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 17:31:51,134 [DEBUG][       Thread-262594][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 17:31:51,134 [DEBUG][       Thread-262594][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:31:51,134 [DEBUG][       Thread-262594][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:31:51,134 [DEBUG][       Thread-262594][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:31:51,134 [DEBUG][       Thread-262594][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:31:51,134 [DEBUG][       Thread-262594][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 17:31:51,134 [DEBUG][       Thread-262594][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 17:31:51,134 [DEBUG][       Thread-262594][   transport.py][1871] : client lang: <none>
2025-06-13 17:31:51,134 [DEBUG][       Thread-262594][   transport.py][1871] : server lang: <none>
2025-06-13 17:31:51,134 [DEBUG][       Thread-262594][   transport.py][1871] : kex follows: False
2025-06-13 17:31:51,135 [DEBUG][       Thread-262594][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 17:31:51,135 [DEBUG][       Thread-262594][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 17:31:51,135 [DEBUG][       Thread-262594][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 17:31:51,135 [DEBUG][       Thread-262594][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 17:31:51,135 [DEBUG][       Thread-262594][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 17:31:51,135 [DEBUG][       Thread-262594][   transport.py][1871] : Compression: none
2025-06-13 17:31:51,135 [DEBUG][       Thread-262594][   transport.py][1871] : === End of kex handshake ===
2025-06-13 17:31:51,194 [DEBUG][       Thread-262594][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 17:31:51,194 [DEBUG][       Thread-262594][   transport.py][1871] : Switch to new keys ...
2025-06-13 17:31:51,195 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 17:31:51,196 [DEBUG][       Thread-262594][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 17:31:51,196 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 17:31:51,250 [DEBUG][       Thread-262594][   transport.py][1871] : userauth is OK
2025-06-13 17:31:51,250 [DEBUG][       Thread-262594][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 17:31:51,250 [DEBUG][       Thread-262594][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 17:31:51,250 [DEBUG][       Thread-262594][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 17:31:51,250 [DEBUG][       Thread-262594][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 17:31:51,269 [ INFO][       Thread-262594][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 17:31:51,269 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 17:31:51,270 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 17:31:52,263 [DEBUG][       Thread-262594][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 17:31:52,264 [DEBUG][       Thread-262594][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 17:31:52,312 [DEBUG][       Thread-262594][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 17:31:52,312 [DEBUG][       Thread-262594][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 17:31:52,322 [DEBUG][       Thread-262594][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 17:31:52,331 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 17:31:52,331 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 17:31:52,340 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 17:31:52,349 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 17:31:52,349 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 17:31:52,350 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 17:31:52,358 [DEBUG][       Thread-262594][   transport.py][1871] : EOF in transport thread
2025-06-13 17:31:53,515 [DEBUG][Thread-262596 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:32:02,360 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 17:32:02,361 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 17:32:02,361 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 17:32:02,363 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 17:32:02,534 [DEBUG][Thread-262597 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:32:02,829 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 17, 31, 56), 16.24, 32.26, 0.0, 14.61, 12.52, 0, 0, 0, 2, 0, 0),)
2025-06-13 17:32:02,830 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 17:31:56
2025-06-13 17:32:02,911 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 17:32:02,915 [DEBUG][       Thread-262598][   transport.py][1871] : starting thread (client mode): 0x863c95d0
2025-06-13 17:32:02,915 [DEBUG][       Thread-262598][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 17:32:02,935 [DEBUG][       Thread-262598][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 17:32:02,935 [ INFO][       Thread-262598][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 17:32:02,939 [DEBUG][       Thread-262598][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 17:32:02,939 [DEBUG][       Thread-262598][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 17:32:02,939 [DEBUG][       Thread-262598][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 17:32:02,939 [DEBUG][       Thread-262598][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:32:02,939 [DEBUG][       Thread-262598][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:32:02,939 [DEBUG][       Thread-262598][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:32:02,939 [DEBUG][       Thread-262598][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:32:02,939 [DEBUG][       Thread-262598][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 17:32:02,939 [DEBUG][       Thread-262598][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 17:32:02,939 [DEBUG][       Thread-262598][   transport.py][1871] : client lang: <none>
2025-06-13 17:32:02,939 [DEBUG][       Thread-262598][   transport.py][1871] : server lang: <none>
2025-06-13 17:32:02,939 [DEBUG][       Thread-262598][   transport.py][1871] : kex follows: False
2025-06-13 17:32:02,939 [DEBUG][       Thread-262598][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 17:32:02,939 [DEBUG][       Thread-262598][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 17:32:02,939 [DEBUG][       Thread-262598][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 17:32:02,939 [DEBUG][       Thread-262598][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 17:32:02,939 [DEBUG][       Thread-262598][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 17:32:02,939 [DEBUG][       Thread-262598][   transport.py][1871] : Compression: none
2025-06-13 17:32:02,939 [DEBUG][       Thread-262598][   transport.py][1871] : === End of kex handshake ===
2025-06-13 17:32:02,956 [DEBUG][       Thread-262598][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 17:32:02,956 [DEBUG][       Thread-262598][   transport.py][1871] : Switch to new keys ...
2025-06-13 17:32:02,957 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 17:32:02,957 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 17:32:02,957 [DEBUG][       Thread-262598][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 17:32:02,958 [DEBUG][       Thread-262598][   transport.py][1871] : userauth is OK
2025-06-13 17:32:02,982 [ INFO][       Thread-262598][   transport.py][1871] : Authentication (password) successful!
2025-06-13 17:32:02,983 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 17:32:03,626 [DEBUG][       Thread-262598][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 17:32:03,627 [DEBUG][       Thread-262598][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 17:32:03,669 [DEBUG][       Thread-262598][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 17:32:03,669 [DEBUG][       Thread-262598][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 17:32:03,671 [DEBUG][       Thread-262598][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 17:32:03,683 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 17:32:03,683 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 17:32:03,684 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 17:32:03,685 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 17:32:03,687 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 17:32:03,688 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 17:32:03,688 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 17:32:03,688 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 17:32:03,689 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.646809 -999.00  +12.30  14.25     37   -1.70 1 1 1 1 1   884    0 13.02 -36.06 ----- 12.9 14.2 40.2 15.6 13.6 -30.0 13.3 -30.4 13.4 -29.7 13.8 -29.0
2025-06-13 17:32:03,689 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 17:32:03,689 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 17:32:03,689 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.646809
2025-06-13 17:32:03,689 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 17:32:03,689 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 17:32:03,689 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 17:32:03,689 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 17:32:03,689 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 17:32:03,689 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T17:31:56', tmtdew=16.24, humidity=32.26, cloud=0.0, wind=14.61, temperature=12.52, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T15:31:24.298', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 17:32:03,689 [DEBUG][       Thread-262598][   transport.py][1871] : EOF in transport thread
2025-06-13 17:32:03,767 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 17:32:03,776 [DEBUG][       Thread-262601][   transport.py][1871] : starting thread (client mode): 0x863694b0
2025-06-13 17:32:03,776 [DEBUG][       Thread-262601][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 17:32:03,794 [DEBUG][       Thread-262601][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 17:32:03,794 [ INFO][       Thread-262601][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 17:32:03,802 [DEBUG][       Thread-262601][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 17:32:03,802 [DEBUG][       Thread-262601][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 17:32:03,802 [DEBUG][       Thread-262601][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 17:32:03,802 [DEBUG][       Thread-262601][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:32:03,802 [DEBUG][       Thread-262601][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:32:03,802 [DEBUG][       Thread-262601][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:32:03,802 [DEBUG][       Thread-262601][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:32:03,803 [DEBUG][       Thread-262601][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 17:32:03,803 [DEBUG][       Thread-262601][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 17:32:03,803 [DEBUG][       Thread-262601][   transport.py][1871] : client lang: <none>
2025-06-13 17:32:03,803 [DEBUG][       Thread-262601][   transport.py][1871] : server lang: <none>
2025-06-13 17:32:03,803 [DEBUG][       Thread-262601][   transport.py][1871] : kex follows: False
2025-06-13 17:32:03,803 [DEBUG][       Thread-262601][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 17:32:03,803 [DEBUG][       Thread-262601][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 17:32:03,803 [DEBUG][       Thread-262601][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 17:32:03,803 [DEBUG][       Thread-262601][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 17:32:03,803 [DEBUG][       Thread-262601][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 17:32:03,803 [DEBUG][       Thread-262601][   transport.py][1871] : Compression: none
2025-06-13 17:32:03,803 [DEBUG][       Thread-262601][   transport.py][1871] : === End of kex handshake ===
2025-06-13 17:32:03,862 [DEBUG][       Thread-262601][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 17:32:03,862 [DEBUG][       Thread-262601][   transport.py][1871] : Switch to new keys ...
2025-06-13 17:32:03,863 [DEBUG][       Thread-262601][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 17:32:03,863 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 17:32:03,864 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 17:32:03,918 [DEBUG][       Thread-262601][   transport.py][1871] : userauth is OK
2025-06-13 17:32:03,918 [DEBUG][       Thread-262601][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 17:32:03,918 [DEBUG][       Thread-262601][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 17:32:03,918 [DEBUG][       Thread-262601][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 17:32:03,918 [DEBUG][       Thread-262601][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 17:32:03,938 [ INFO][       Thread-262601][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 17:32:03,939 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 17:32:03,939 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 17:32:04,945 [DEBUG][       Thread-262601][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 17:32:04,945 [DEBUG][       Thread-262601][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 17:32:04,996 [DEBUG][       Thread-262601][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 17:32:04,996 [DEBUG][       Thread-262601][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 17:32:05,005 [DEBUG][       Thread-262601][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 17:32:05,014 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 17:32:05,015 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 17:32:05,023 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 17:32:05,033 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 17:32:05,033 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 17:32:05,033 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 17:32:05,041 [DEBUG][       Thread-262601][   transport.py][1871] : EOF in transport thread
2025-06-13 17:32:05,290 [DEBUG][Thread-262603 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:32:06,352 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:32:06,353 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:32:11,551 [DEBUG][Thread-262604 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:32:15,044 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 17:32:15,044 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 17:32:15,044 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 17:32:15,047 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 17:32:15,514 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 17, 31, 56), 16.24, 32.26, 0.0, 14.61, 12.52, 0, 0, 0, 2, 0, 0),)
2025-06-13 17:32:15,514 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 17:31:56
2025-06-13 17:32:15,596 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 17:32:15,602 [DEBUG][       Thread-262605][   transport.py][1871] : starting thread (client mode): 0x86368190
2025-06-13 17:32:15,602 [DEBUG][       Thread-262605][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 17:32:15,623 [DEBUG][       Thread-262605][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 17:32:15,623 [ INFO][       Thread-262605][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 17:32:15,626 [DEBUG][       Thread-262605][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 17:32:15,626 [DEBUG][       Thread-262605][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 17:32:15,626 [DEBUG][       Thread-262605][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 17:32:15,626 [DEBUG][       Thread-262605][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:32:15,626 [DEBUG][       Thread-262605][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:32:15,626 [DEBUG][       Thread-262605][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:32:15,626 [DEBUG][       Thread-262605][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:32:15,627 [DEBUG][       Thread-262605][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 17:32:15,627 [DEBUG][       Thread-262605][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 17:32:15,627 [DEBUG][       Thread-262605][   transport.py][1871] : client lang: <none>
2025-06-13 17:32:15,627 [DEBUG][       Thread-262605][   transport.py][1871] : server lang: <none>
2025-06-13 17:32:15,627 [DEBUG][       Thread-262605][   transport.py][1871] : kex follows: False
2025-06-13 17:32:15,627 [DEBUG][       Thread-262605][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 17:32:15,627 [DEBUG][       Thread-262605][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 17:32:15,627 [DEBUG][       Thread-262605][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 17:32:15,627 [DEBUG][       Thread-262605][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 17:32:15,627 [DEBUG][       Thread-262605][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 17:32:15,627 [DEBUG][       Thread-262605][   transport.py][1871] : Compression: none
2025-06-13 17:32:15,627 [DEBUG][       Thread-262605][   transport.py][1871] : === End of kex handshake ===
2025-06-13 17:32:15,643 [DEBUG][       Thread-262605][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 17:32:15,644 [DEBUG][       Thread-262605][   transport.py][1871] : Switch to new keys ...
2025-06-13 17:32:15,644 [DEBUG][       Thread-262605][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 17:32:15,644 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 17:32:15,644 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 17:32:15,645 [DEBUG][       Thread-262605][   transport.py][1871] : userauth is OK
2025-06-13 17:32:15,670 [ INFO][       Thread-262605][   transport.py][1871] : Authentication (password) successful!
2025-06-13 17:32:15,670 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 17:32:16,252 [DEBUG][       Thread-262605][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 17:32:16,253 [DEBUG][       Thread-262605][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 17:32:16,297 [DEBUG][       Thread-262605][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 17:32:16,297 [DEBUG][       Thread-262605][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 17:32:16,301 [DEBUG][       Thread-262605][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 17:32:16,313 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 17:32:16,313 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 17:32:16,315 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 17:32:16,317 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 17:32:16,323 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 17:32:16,325 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 17:32:16,325 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 17:32:16,326 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 17:32:16,326 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.647156 -999.00  +12.20  14.47     37   -1.70 1 1 1 1 1   883    0 13.27 -37.51 ----- 14.4 14.5 39.6 19.4 13.6 -30.0 13.3 -30.4 13.3 -29.7 13.8 -29.2
2025-06-13 17:32:16,326 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 17:32:16,326 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 17:32:16,326 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.647156
2025-06-13 17:32:16,327 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 17:32:16,327 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 17:32:16,327 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 17:32:16,327 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 17:32:16,327 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 17:32:16,328 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T17:31:56', tmtdew=16.24, humidity=32.26, cloud=0.0, wind=14.61, temperature=12.52, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T15:31:54.278', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 17:32:16,328 [DEBUG][       Thread-262605][   transport.py][1871] : EOF in transport thread
2025-06-13 17:32:16,411 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 17:32:20,577 [DEBUG][Thread-262608 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:32:26,445 [DEBUG][Thread-262609 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:32:27,035 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:32:27,036 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:32:29,597 [DEBUG][Thread-262610 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:32:38,618 [DEBUG][Thread-262611 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:32:47,639 [DEBUG][Thread-262612 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:32:56,660 [DEBUG][Thread-262613 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:33:05,682 [DEBUG][Thread-262614 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:33:06,425 [DEBUG][Thread-262615 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:33:07,469 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:33:07,469 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:33:14,704 [DEBUG][Thread-262616 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:33:23,722 [DEBUG][Thread-262617 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:33:26,491 [DEBUG][Thread-262618 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:33:27,174 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:33:27,175 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:33:32,739 [DEBUG][Thread-262619 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:33:41,769 [DEBUG][Thread-262620 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:33:50,789 [DEBUG][Thread-262621 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:33:59,812 [DEBUG][Thread-262622 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:34:07,478 [DEBUG][Thread-262623 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:34:08,596 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:34:08,598 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:34:08,831 [DEBUG][Thread-262624 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:34:17,854 [DEBUG][Thread-262625 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:34:26,324 [WARNING][ poll_weather_worker][      driver.py][ 286] : Unable to open ssh connection for writing weather state to io.saao.ac.za: [Errno 110] Connection timed out
2025-06-13 17:34:26,566 [DEBUG][Thread-262626 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:34:26,875 [DEBUG][Thread-262627 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:34:27,311 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:34:27,313 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:34:35,898 [DEBUG][Thread-262628 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:34:36,332 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 17:34:36,332 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 17:34:36,332 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 17:34:36,335 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 17:34:36,813 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 17, 34, 3), 16.14, 32.25, 0.0, 13.87, 12.41, 0, 0, 0, 2, 0, 0),)
2025-06-13 17:34:36,814 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 17:34:03
2025-06-13 17:34:36,897 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 17:34:36,903 [DEBUG][       Thread-262629][   transport.py][1871] : starting thread (client mode): 0x86368be0
2025-06-13 17:34:36,903 [DEBUG][       Thread-262629][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 17:34:36,925 [DEBUG][       Thread-262629][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 17:34:36,925 [ INFO][       Thread-262629][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 17:34:36,928 [DEBUG][       Thread-262629][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 17:34:36,928 [DEBUG][       Thread-262629][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 17:34:36,928 [DEBUG][       Thread-262629][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 17:34:36,928 [DEBUG][       Thread-262629][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:34:36,928 [DEBUG][       Thread-262629][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:34:36,928 [DEBUG][       Thread-262629][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:34:36,928 [DEBUG][       Thread-262629][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:34:36,928 [DEBUG][       Thread-262629][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 17:34:36,928 [DEBUG][       Thread-262629][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 17:34:36,928 [DEBUG][       Thread-262629][   transport.py][1871] : client lang: <none>
2025-06-13 17:34:36,928 [DEBUG][       Thread-262629][   transport.py][1871] : server lang: <none>
2025-06-13 17:34:36,928 [DEBUG][       Thread-262629][   transport.py][1871] : kex follows: False
2025-06-13 17:34:36,928 [DEBUG][       Thread-262629][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 17:34:36,928 [DEBUG][       Thread-262629][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 17:34:36,928 [DEBUG][       Thread-262629][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 17:34:36,928 [DEBUG][       Thread-262629][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 17:34:36,928 [DEBUG][       Thread-262629][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 17:34:36,928 [DEBUG][       Thread-262629][   transport.py][1871] : Compression: none
2025-06-13 17:34:36,928 [DEBUG][       Thread-262629][   transport.py][1871] : === End of kex handshake ===
2025-06-13 17:34:36,943 [DEBUG][       Thread-262629][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 17:34:36,944 [DEBUG][       Thread-262629][   transport.py][1871] : Switch to new keys ...
2025-06-13 17:34:36,944 [DEBUG][       Thread-262629][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 17:34:36,944 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 17:34:36,944 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 17:34:36,944 [DEBUG][       Thread-262629][   transport.py][1871] : userauth is OK
2025-06-13 17:34:36,969 [ INFO][       Thread-262629][   transport.py][1871] : Authentication (password) successful!
2025-06-13 17:34:36,969 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 17:34:37,606 [DEBUG][       Thread-262629][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 17:34:37,606 [DEBUG][       Thread-262629][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 17:34:37,652 [DEBUG][       Thread-262629][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 17:34:37,652 [DEBUG][       Thread-262629][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 17:34:37,655 [DEBUG][       Thread-262629][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 17:34:37,666 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 17:34:37,666 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 17:34:37,667 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 17:34:37,668 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 17:34:37,671 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 17:34:37,672 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 17:34:37,672 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 17:34:37,672 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 17:34:37,672 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.648545 -999.00  +12.10  14.07     37   -1.80 1 1 1 1 1   881    0 13.10 -43.06 ----- 13.9 14.1 49.8 19.9 13.4 -30.1 13.2 -30.3 13.2 -29.8 13.6 -29.2
2025-06-13 17:34:37,672 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 17:34:37,672 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 17:34:37,672 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.648545
2025-06-13 17:34:37,673 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 17:34:37,673 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 17:34:37,673 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 17:34:37,673 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 17:34:37,673 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 17:34:37,673 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T17:34:03', tmtdew=16.14, humidity=32.25, cloud=0.0, wind=13.87, temperature=12.41, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T15:33:54.288', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 17:34:37,673 [DEBUG][       Thread-262629][   transport.py][1871] : EOF in transport thread
2025-06-13 17:34:37,747 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 17:34:37,759 [DEBUG][       Thread-262632][   transport.py][1871] : starting thread (client mode): 0x86392950
2025-06-13 17:34:37,759 [DEBUG][       Thread-262632][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 17:34:37,773 [DEBUG][       Thread-262632][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 17:34:37,773 [ INFO][       Thread-262632][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 17:34:37,780 [DEBUG][       Thread-262632][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 17:34:37,780 [DEBUG][       Thread-262632][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 17:34:37,780 [DEBUG][       Thread-262632][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 17:34:37,780 [DEBUG][       Thread-262632][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:34:37,780 [DEBUG][       Thread-262632][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:34:37,780 [DEBUG][       Thread-262632][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:34:37,780 [DEBUG][       Thread-262632][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:34:37,780 [DEBUG][       Thread-262632][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 17:34:37,780 [DEBUG][       Thread-262632][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 17:34:37,780 [DEBUG][       Thread-262632][   transport.py][1871] : client lang: <none>
2025-06-13 17:34:37,780 [DEBUG][       Thread-262632][   transport.py][1871] : server lang: <none>
2025-06-13 17:34:37,780 [DEBUG][       Thread-262632][   transport.py][1871] : kex follows: False
2025-06-13 17:34:37,780 [DEBUG][       Thread-262632][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 17:34:37,780 [DEBUG][       Thread-262632][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 17:34:37,780 [DEBUG][       Thread-262632][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 17:34:37,780 [DEBUG][       Thread-262632][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 17:34:37,780 [DEBUG][       Thread-262632][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 17:34:37,780 [DEBUG][       Thread-262632][   transport.py][1871] : Compression: none
2025-06-13 17:34:37,780 [DEBUG][       Thread-262632][   transport.py][1871] : === End of kex handshake ===
2025-06-13 17:34:37,835 [DEBUG][       Thread-262632][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 17:34:37,836 [DEBUG][       Thread-262632][   transport.py][1871] : Switch to new keys ...
2025-06-13 17:34:37,836 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 17:34:37,836 [DEBUG][       Thread-262632][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 17:34:37,836 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 17:34:37,893 [DEBUG][       Thread-262632][   transport.py][1871] : userauth is OK
2025-06-13 17:34:37,893 [DEBUG][       Thread-262632][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 17:34:37,893 [DEBUG][       Thread-262632][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 17:34:37,893 [DEBUG][       Thread-262632][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 17:34:37,893 [DEBUG][       Thread-262632][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 17:34:37,906 [ INFO][       Thread-262632][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 17:34:37,907 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 17:34:37,907 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 17:34:38,937 [DEBUG][       Thread-262632][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 17:34:38,937 [DEBUG][       Thread-262632][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 17:34:38,988 [DEBUG][       Thread-262632][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 17:34:38,988 [DEBUG][       Thread-262632][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 17:34:38,998 [DEBUG][       Thread-262632][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 17:34:39,007 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 17:34:39,007 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 17:34:39,016 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 17:34:39,025 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 17:34:39,026 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 17:34:39,026 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 17:34:39,034 [DEBUG][       Thread-262632][   transport.py][1871] : EOF in transport thread
2025-06-13 17:34:44,918 [DEBUG][Thread-262634 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:34:49,037 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 17:34:49,037 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 17:34:49,037 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 17:34:49,040 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 17:34:49,516 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 17, 34, 36), 16.12, 32.22, 0.0, 13.69, 12.37, 0, 0, 0, 2, 0, 0),)
2025-06-13 17:34:49,516 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 17:34:36
2025-06-13 17:34:49,598 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 17:34:49,604 [DEBUG][       Thread-262635][   transport.py][1871] : starting thread (client mode): 0x8636ab00
2025-06-13 17:34:49,604 [DEBUG][       Thread-262635][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 17:34:49,627 [DEBUG][       Thread-262635][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 17:34:49,627 [ INFO][       Thread-262635][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 17:34:49,631 [DEBUG][       Thread-262635][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 17:34:49,631 [DEBUG][       Thread-262635][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 17:34:49,631 [DEBUG][       Thread-262635][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 17:34:49,631 [DEBUG][       Thread-262635][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:34:49,631 [DEBUG][       Thread-262635][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:34:49,631 [DEBUG][       Thread-262635][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:34:49,631 [DEBUG][       Thread-262635][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:34:49,631 [DEBUG][       Thread-262635][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 17:34:49,631 [DEBUG][       Thread-262635][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 17:34:49,631 [DEBUG][       Thread-262635][   transport.py][1871] : client lang: <none>
2025-06-13 17:34:49,631 [DEBUG][       Thread-262635][   transport.py][1871] : server lang: <none>
2025-06-13 17:34:49,631 [DEBUG][       Thread-262635][   transport.py][1871] : kex follows: False
2025-06-13 17:34:49,631 [DEBUG][       Thread-262635][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 17:34:49,631 [DEBUG][       Thread-262635][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 17:34:49,632 [DEBUG][       Thread-262635][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 17:34:49,632 [DEBUG][       Thread-262635][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 17:34:49,632 [DEBUG][       Thread-262635][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 17:34:49,632 [DEBUG][       Thread-262635][   transport.py][1871] : Compression: none
2025-06-13 17:34:49,632 [DEBUG][       Thread-262635][   transport.py][1871] : === End of kex handshake ===
2025-06-13 17:34:49,649 [DEBUG][       Thread-262635][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 17:34:49,650 [DEBUG][       Thread-262635][   transport.py][1871] : Switch to new keys ...
2025-06-13 17:34:49,650 [DEBUG][       Thread-262635][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 17:34:49,650 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 17:34:49,651 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 17:34:49,652 [DEBUG][       Thread-262635][   transport.py][1871] : userauth is OK
2025-06-13 17:34:49,665 [ INFO][       Thread-262635][   transport.py][1871] : Authentication (password) successful!
2025-06-13 17:34:49,665 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 17:34:50,297 [DEBUG][       Thread-262635][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 17:34:50,297 [DEBUG][       Thread-262635][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 17:34:50,341 [DEBUG][       Thread-262635][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 17:34:50,341 [DEBUG][       Thread-262635][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 17:34:50,345 [DEBUG][       Thread-262635][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 17:34:50,361 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 17:34:50,361 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 17:34:50,363 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 17:34:50,364 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 17:34:50,370 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 17:34:50,372 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 17:34:50,372 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 17:34:50,373 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 17:34:50,373 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.648545 -999.00  +12.10  14.07     37   -1.80 1 1 1 1 1   881    0 13.10 -43.06 ----- 13.9 14.1 49.8 19.9 13.4 -30.1 13.2 -30.3 13.2 -29.8 13.6 -29.2
2025-06-13 17:34:50,373 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 17:34:50,373 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 17:34:50,373 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.648545
2025-06-13 17:34:50,374 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 17:34:50,374 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 17:34:50,375 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 17:34:50,375 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 17:34:50,375 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 17:34:50,375 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T17:34:36', tmtdew=16.12, humidity=32.22, cloud=0.0, wind=13.69, temperature=12.37, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T15:33:54.288', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 17:34:50,375 [DEBUG][       Thread-262635][   transport.py][1871] : EOF in transport thread
2025-06-13 17:34:50,459 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 17:34:50,470 [DEBUG][       Thread-262638][   transport.py][1871] : starting thread (client mode): 0x863beda0
2025-06-13 17:34:50,470 [DEBUG][       Thread-262638][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 17:34:50,486 [DEBUG][       Thread-262638][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 17:34:50,486 [ INFO][       Thread-262638][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 17:34:50,494 [DEBUG][       Thread-262638][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 17:34:50,494 [DEBUG][       Thread-262638][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 17:34:50,494 [DEBUG][       Thread-262638][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 17:34:50,495 [DEBUG][       Thread-262638][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:34:50,495 [DEBUG][       Thread-262638][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:34:50,495 [DEBUG][       Thread-262638][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:34:50,495 [DEBUG][       Thread-262638][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:34:50,495 [DEBUG][       Thread-262638][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 17:34:50,495 [DEBUG][       Thread-262638][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 17:34:50,495 [DEBUG][       Thread-262638][   transport.py][1871] : client lang: <none>
2025-06-13 17:34:50,495 [DEBUG][       Thread-262638][   transport.py][1871] : server lang: <none>
2025-06-13 17:34:50,495 [DEBUG][       Thread-262638][   transport.py][1871] : kex follows: False
2025-06-13 17:34:50,495 [DEBUG][       Thread-262638][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 17:34:50,495 [DEBUG][       Thread-262638][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 17:34:50,495 [DEBUG][       Thread-262638][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 17:34:50,495 [DEBUG][       Thread-262638][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 17:34:50,495 [DEBUG][       Thread-262638][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 17:34:50,495 [DEBUG][       Thread-262638][   transport.py][1871] : Compression: none
2025-06-13 17:34:50,495 [DEBUG][       Thread-262638][   transport.py][1871] : === End of kex handshake ===
2025-06-13 17:34:50,554 [DEBUG][       Thread-262638][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 17:34:50,555 [DEBUG][       Thread-262638][   transport.py][1871] : Switch to new keys ...
2025-06-13 17:34:50,555 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 17:34:50,556 [DEBUG][       Thread-262638][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 17:34:50,557 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 17:34:50,610 [DEBUG][       Thread-262638][   transport.py][1871] : userauth is OK
2025-06-13 17:34:50,610 [DEBUG][       Thread-262638][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 17:34:50,611 [DEBUG][       Thread-262638][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 17:34:50,611 [DEBUG][       Thread-262638][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 17:34:50,611 [DEBUG][       Thread-262638][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 17:34:50,630 [ INFO][       Thread-262638][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 17:34:50,631 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 17:34:50,631 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 17:34:51,642 [DEBUG][       Thread-262638][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 17:34:51,642 [DEBUG][       Thread-262638][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 17:34:51,692 [DEBUG][       Thread-262638][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 17:34:51,692 [DEBUG][       Thread-262638][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 17:34:51,701 [DEBUG][       Thread-262638][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 17:34:51,710 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 17:34:51,711 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 17:34:51,720 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 17:34:51,729 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 17:34:51,729 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 17:34:51,730 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 17:34:51,737 [DEBUG][       Thread-262638][   transport.py][1871] : EOF in transport thread
2025-06-13 17:34:53,952 [DEBUG][Thread-262640 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:35:01,740 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 17:35:01,740 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 17:35:01,740 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 17:35:01,743 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 17:35:02,226 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 17, 34, 36), 16.12, 32.22, 0.0, 13.69, 12.37, 0, 0, 0, 2, 0, 0),)
2025-06-13 17:35:02,226 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 17:34:36
2025-06-13 17:35:02,307 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 17:35:02,311 [DEBUG][       Thread-262641][   transport.py][1871] : starting thread (client mode): 0x8636b0d0
2025-06-13 17:35:02,311 [DEBUG][       Thread-262641][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 17:35:02,330 [DEBUG][       Thread-262641][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 17:35:02,330 [ INFO][       Thread-262641][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 17:35:02,334 [DEBUG][       Thread-262641][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 17:35:02,334 [DEBUG][       Thread-262641][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 17:35:02,334 [DEBUG][       Thread-262641][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 17:35:02,334 [DEBUG][       Thread-262641][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:35:02,334 [DEBUG][       Thread-262641][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:35:02,334 [DEBUG][       Thread-262641][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:35:02,334 [DEBUG][       Thread-262641][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:35:02,334 [DEBUG][       Thread-262641][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 17:35:02,334 [DEBUG][       Thread-262641][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 17:35:02,334 [DEBUG][       Thread-262641][   transport.py][1871] : client lang: <none>
2025-06-13 17:35:02,334 [DEBUG][       Thread-262641][   transport.py][1871] : server lang: <none>
2025-06-13 17:35:02,334 [DEBUG][       Thread-262641][   transport.py][1871] : kex follows: False
2025-06-13 17:35:02,334 [DEBUG][       Thread-262641][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 17:35:02,334 [DEBUG][       Thread-262641][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 17:35:02,334 [DEBUG][       Thread-262641][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 17:35:02,334 [DEBUG][       Thread-262641][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 17:35:02,334 [DEBUG][       Thread-262641][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 17:35:02,334 [DEBUG][       Thread-262641][   transport.py][1871] : Compression: none
2025-06-13 17:35:02,334 [DEBUG][       Thread-262641][   transport.py][1871] : === End of kex handshake ===
2025-06-13 17:35:02,351 [DEBUG][       Thread-262641][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 17:35:02,351 [DEBUG][       Thread-262641][   transport.py][1871] : Switch to new keys ...
2025-06-13 17:35:02,352 [DEBUG][       Thread-262641][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 17:35:02,352 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 17:35:02,352 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 17:35:02,353 [DEBUG][       Thread-262641][   transport.py][1871] : userauth is OK
2025-06-13 17:35:02,367 [ INFO][       Thread-262641][   transport.py][1871] : Authentication (password) successful!
2025-06-13 17:35:02,367 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 17:35:02,997 [DEBUG][Thread-262643 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:35:03,288 [DEBUG][       Thread-262641][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 17:35:03,288 [DEBUG][       Thread-262641][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 17:35:03,329 [DEBUG][       Thread-262641][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 17:35:03,329 [DEBUG][       Thread-262641][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 17:35:03,331 [DEBUG][       Thread-262641][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 17:35:03,344 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 17:35:03,344 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 17:35:03,346 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 17:35:03,347 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 17:35:03,387 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 17:35:03,389 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 17:35:03,389 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 17:35:03,390 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 17:35:03,390 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.648892 -999.00  +12.10  13.66     37   -1.80 1 1 1 1 1   881    0 13.02 -45.24 ----- 17.8 13.7 51.4 19.0 13.4 -30.2 13.2 -30.4 13.2 -29.7 13.6 -29.1
2025-06-13 17:35:03,390 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 17:35:03,391 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 17:35:03,391 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.648892
2025-06-13 17:35:03,391 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 17:35:03,392 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 17:35:03,392 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 17:35:03,392 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 17:35:03,392 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 17:35:03,392 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T17:34:36', tmtdew=16.12, humidity=32.22, cloud=0.0, wind=13.69, temperature=12.37, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T15:34:24.269', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 17:35:03,393 [DEBUG][       Thread-262641][   transport.py][1871] : EOF in transport thread
2025-06-13 17:35:03,477 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 17:35:03,487 [DEBUG][       Thread-262645][   transport.py][1871] : starting thread (client mode): 0x86392b90
2025-06-13 17:35:03,487 [DEBUG][       Thread-262645][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 17:35:03,502 [DEBUG][       Thread-262645][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 17:35:03,502 [ INFO][       Thread-262645][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 17:35:03,509 [DEBUG][       Thread-262645][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 17:35:03,509 [DEBUG][       Thread-262645][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 17:35:03,509 [DEBUG][       Thread-262645][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 17:35:03,509 [DEBUG][       Thread-262645][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:35:03,509 [DEBUG][       Thread-262645][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:35:03,509 [DEBUG][       Thread-262645][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:35:03,510 [DEBUG][       Thread-262645][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:35:03,510 [DEBUG][       Thread-262645][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 17:35:03,510 [DEBUG][       Thread-262645][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 17:35:03,510 [DEBUG][       Thread-262645][   transport.py][1871] : client lang: <none>
2025-06-13 17:35:03,510 [DEBUG][       Thread-262645][   transport.py][1871] : server lang: <none>
2025-06-13 17:35:03,510 [DEBUG][       Thread-262645][   transport.py][1871] : kex follows: False
2025-06-13 17:35:03,510 [DEBUG][       Thread-262645][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 17:35:03,510 [DEBUG][       Thread-262645][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 17:35:03,510 [DEBUG][       Thread-262645][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 17:35:03,510 [DEBUG][       Thread-262645][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 17:35:03,510 [DEBUG][       Thread-262645][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 17:35:03,510 [DEBUG][       Thread-262645][   transport.py][1871] : Compression: none
2025-06-13 17:35:03,510 [DEBUG][       Thread-262645][   transport.py][1871] : === End of kex handshake ===
2025-06-13 17:35:03,570 [DEBUG][       Thread-262645][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 17:35:03,571 [DEBUG][       Thread-262645][   transport.py][1871] : Switch to new keys ...
2025-06-13 17:35:03,571 [DEBUG][       Thread-262645][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 17:35:03,572 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 17:35:03,573 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 17:35:03,626 [DEBUG][       Thread-262645][   transport.py][1871] : userauth is OK
2025-06-13 17:35:03,626 [DEBUG][       Thread-262645][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 17:35:03,626 [DEBUG][       Thread-262645][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 17:35:03,626 [DEBUG][       Thread-262645][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 17:35:03,626 [DEBUG][       Thread-262645][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 17:35:03,647 [ INFO][       Thread-262645][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 17:35:03,647 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 17:35:03,648 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 17:35:04,700 [DEBUG][       Thread-262645][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 17:35:04,700 [DEBUG][       Thread-262645][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 17:35:04,748 [DEBUG][       Thread-262645][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 17:35:04,748 [DEBUG][       Thread-262645][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 17:35:04,757 [DEBUG][       Thread-262645][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 17:35:04,767 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 17:35:04,767 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 17:35:04,776 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 17:35:04,785 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 17:35:04,786 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 17:35:04,786 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 17:35:04,794 [DEBUG][       Thread-262645][   transport.py][1871] : EOF in transport thread
2025-06-13 17:35:08,688 [DEBUG][Thread-262647 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:35:09,790 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:35:09,790 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:35:12,016 [DEBUG][Thread-262648 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:35:14,796 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 17:35:14,796 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 17:35:14,796 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 17:35:14,797 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 17:35:15,262 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 17, 35, 7), 15.99, 32.51, 0.0, 14.22, 12.25, 0, 0, 0, 2, 0, 0),)
2025-06-13 17:35:15,262 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 17:35:07
2025-06-13 17:35:15,343 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 17:35:15,349 [DEBUG][       Thread-262649][   transport.py][1871] : starting thread (client mode): 0x86369d50
2025-06-13 17:35:15,349 [DEBUG][       Thread-262649][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 17:35:15,369 [DEBUG][       Thread-262649][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 17:35:15,369 [ INFO][       Thread-262649][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 17:35:15,373 [DEBUG][       Thread-262649][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 17:35:15,373 [DEBUG][       Thread-262649][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 17:35:15,373 [DEBUG][       Thread-262649][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 17:35:15,373 [DEBUG][       Thread-262649][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:35:15,373 [DEBUG][       Thread-262649][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:35:15,373 [DEBUG][       Thread-262649][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:35:15,373 [DEBUG][       Thread-262649][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:35:15,373 [DEBUG][       Thread-262649][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 17:35:15,373 [DEBUG][       Thread-262649][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 17:35:15,373 [DEBUG][       Thread-262649][   transport.py][1871] : client lang: <none>
2025-06-13 17:35:15,373 [DEBUG][       Thread-262649][   transport.py][1871] : server lang: <none>
2025-06-13 17:35:15,373 [DEBUG][       Thread-262649][   transport.py][1871] : kex follows: False
2025-06-13 17:35:15,373 [DEBUG][       Thread-262649][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 17:35:15,373 [DEBUG][       Thread-262649][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 17:35:15,373 [DEBUG][       Thread-262649][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 17:35:15,373 [DEBUG][       Thread-262649][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 17:35:15,373 [DEBUG][       Thread-262649][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 17:35:15,373 [DEBUG][       Thread-262649][   transport.py][1871] : Compression: none
2025-06-13 17:35:15,373 [DEBUG][       Thread-262649][   transport.py][1871] : === End of kex handshake ===
2025-06-13 17:35:15,391 [DEBUG][       Thread-262649][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 17:35:15,391 [DEBUG][       Thread-262649][   transport.py][1871] : Switch to new keys ...
2025-06-13 17:35:15,392 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 17:35:15,392 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 17:35:15,393 [DEBUG][       Thread-262649][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 17:35:15,393 [DEBUG][       Thread-262649][   transport.py][1871] : userauth is OK
2025-06-13 17:35:15,407 [ INFO][       Thread-262649][   transport.py][1871] : Authentication (password) successful!
2025-06-13 17:35:15,408 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 17:35:16,034 [DEBUG][       Thread-262649][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 17:35:16,034 [DEBUG][       Thread-262649][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 17:35:16,077 [DEBUG][       Thread-262649][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 17:35:16,077 [DEBUG][       Thread-262649][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 17:35:16,080 [DEBUG][       Thread-262649][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 17:35:16,093 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 17:35:16,094 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 17:35:16,096 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 17:35:16,098 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 17:35:16,103 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 17:35:16,104 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 17:35:16,105 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 17:35:16,105 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 17:35:16,106 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.648892 -999.00  +12.10  13.66     37   -1.80 1 1 1 1 1   881    0 13.02 -45.24 ----- 17.8 13.7 51.4 19.0 13.4 -30.2 13.2 -30.4 13.2 -29.7 13.6 -29.1
2025-06-13 17:35:16,106 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 17:35:16,106 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 17:35:16,106 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.648892
2025-06-13 17:35:16,106 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 17:35:16,107 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 17:35:16,107 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 17:35:16,107 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 17:35:16,107 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 17:35:16,107 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T17:35:07', tmtdew=15.99, humidity=32.51, cloud=0.0, wind=14.22, temperature=12.25, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T15:34:24.269', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 17:35:16,108 [DEBUG][       Thread-262649][   transport.py][1871] : EOF in transport thread
2025-06-13 17:35:16,184 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 17:35:16,199 [DEBUG][       Thread-262652][   transport.py][1871] : starting thread (client mode): 0x863ef5b0
2025-06-13 17:35:16,200 [DEBUG][       Thread-262652][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 17:35:16,215 [DEBUG][       Thread-262652][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 17:35:16,215 [ INFO][       Thread-262652][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 17:35:16,223 [DEBUG][       Thread-262652][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 17:35:16,223 [DEBUG][       Thread-262652][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 17:35:16,223 [DEBUG][       Thread-262652][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 17:35:16,223 [DEBUG][       Thread-262652][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:35:16,223 [DEBUG][       Thread-262652][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:35:16,223 [DEBUG][       Thread-262652][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:35:16,223 [DEBUG][       Thread-262652][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:35:16,223 [DEBUG][       Thread-262652][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 17:35:16,223 [DEBUG][       Thread-262652][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 17:35:16,223 [DEBUG][       Thread-262652][   transport.py][1871] : client lang: <none>
2025-06-13 17:35:16,224 [DEBUG][       Thread-262652][   transport.py][1871] : server lang: <none>
2025-06-13 17:35:16,224 [DEBUG][       Thread-262652][   transport.py][1871] : kex follows: False
2025-06-13 17:35:16,224 [DEBUG][       Thread-262652][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 17:35:16,224 [DEBUG][       Thread-262652][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 17:35:16,224 [DEBUG][       Thread-262652][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 17:35:16,224 [DEBUG][       Thread-262652][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 17:35:16,224 [DEBUG][       Thread-262652][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 17:35:16,224 [DEBUG][       Thread-262652][   transport.py][1871] : Compression: none
2025-06-13 17:35:16,224 [DEBUG][       Thread-262652][   transport.py][1871] : === End of kex handshake ===
2025-06-13 17:35:16,282 [DEBUG][       Thread-262652][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 17:35:16,282 [DEBUG][       Thread-262652][   transport.py][1871] : Switch to new keys ...
2025-06-13 17:35:16,283 [DEBUG][       Thread-262652][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 17:35:16,283 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 17:35:16,284 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 17:35:16,338 [DEBUG][       Thread-262652][   transport.py][1871] : userauth is OK
2025-06-13 17:35:16,338 [DEBUG][       Thread-262652][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 17:35:16,338 [DEBUG][       Thread-262652][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 17:35:16,338 [DEBUG][       Thread-262652][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 17:35:16,338 [DEBUG][       Thread-262652][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 17:35:16,357 [ INFO][       Thread-262652][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 17:35:16,357 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 17:35:16,358 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 17:35:17,356 [DEBUG][       Thread-262652][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 17:35:17,356 [DEBUG][       Thread-262652][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 17:35:17,412 [DEBUG][       Thread-262652][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 17:35:17,412 [DEBUG][       Thread-262652][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 17:35:17,421 [DEBUG][       Thread-262652][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 17:35:17,431 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 17:35:17,432 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 17:35:17,440 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 17:35:17,448 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 17:35:17,448 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 17:35:17,449 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 17:35:17,456 [DEBUG][       Thread-262652][   transport.py][1871] : EOF in transport thread
2025-06-13 17:35:21,033 [DEBUG][Thread-262654 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:35:26,640 [DEBUG][Thread-262655 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:35:27,456 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 17:35:27,456 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 17:35:27,456 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 17:35:27,457 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 17:35:27,928 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 17, 35, 7), 15.99, 32.51, 0.0, 14.22, 12.25, 0, 0, 0, 2, 0, 0),)
2025-06-13 17:35:27,928 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 17:35:07
2025-06-13 17:35:28,010 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 17:35:28,013 [DEBUG][       Thread-262656][   transport.py][1871] : starting thread (client mode): 0x8636a5f0
2025-06-13 17:35:28,013 [DEBUG][       Thread-262656][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 17:35:28,034 [DEBUG][       Thread-262656][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 17:35:28,034 [ INFO][       Thread-262656][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 17:35:28,036 [DEBUG][       Thread-262656][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 17:35:28,036 [DEBUG][       Thread-262656][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 17:35:28,036 [DEBUG][       Thread-262656][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 17:35:28,036 [DEBUG][       Thread-262656][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:35:28,036 [DEBUG][       Thread-262656][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:35:28,036 [DEBUG][       Thread-262656][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:35:28,036 [DEBUG][       Thread-262656][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:35:28,036 [DEBUG][       Thread-262656][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 17:35:28,036 [DEBUG][       Thread-262656][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 17:35:28,036 [DEBUG][       Thread-262656][   transport.py][1871] : client lang: <none>
2025-06-13 17:35:28,036 [DEBUG][       Thread-262656][   transport.py][1871] : server lang: <none>
2025-06-13 17:35:28,036 [DEBUG][       Thread-262656][   transport.py][1871] : kex follows: False
2025-06-13 17:35:28,036 [DEBUG][       Thread-262656][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 17:35:28,036 [DEBUG][       Thread-262656][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 17:35:28,036 [DEBUG][       Thread-262656][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 17:35:28,036 [DEBUG][       Thread-262656][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 17:35:28,036 [DEBUG][       Thread-262656][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 17:35:28,037 [DEBUG][       Thread-262656][   transport.py][1871] : Compression: none
2025-06-13 17:35:28,037 [DEBUG][       Thread-262656][   transport.py][1871] : === End of kex handshake ===
2025-06-13 17:35:28,053 [DEBUG][       Thread-262656][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 17:35:28,053 [DEBUG][       Thread-262656][   transport.py][1871] : Switch to new keys ...
2025-06-13 17:35:28,054 [DEBUG][       Thread-262656][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 17:35:28,054 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 17:35:28,054 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 17:35:28,055 [DEBUG][       Thread-262656][   transport.py][1871] : userauth is OK
2025-06-13 17:35:28,068 [ INFO][       Thread-262656][   transport.py][1871] : Authentication (password) successful!
2025-06-13 17:35:28,069 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 17:35:28,664 [DEBUG][       Thread-262656][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 17:35:28,664 [DEBUG][       Thread-262656][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 17:35:28,705 [DEBUG][       Thread-262656][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 17:35:28,705 [DEBUG][       Thread-262656][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 17:35:28,708 [DEBUG][       Thread-262656][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 17:35:28,721 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 17:35:28,722 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 17:35:28,723 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 17:35:28,725 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 17:35:28,730 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 17:35:28,731 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 17:35:28,731 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 17:35:28,732 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 17:35:28,732 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.649239 -999.00  +12.00  15.52     37   -1.80 1 1 1 1 1   880    0 12.87 -48.53 ----- 15.4 15.5 54.0 19.5 13.3 -30.1 13.1 -30.5 13.1 -29.8 13.6 -29.3
2025-06-13 17:35:28,732 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 17:35:28,732 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 17:35:28,732 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.649239
2025-06-13 17:35:28,733 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 17:35:28,733 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 17:35:28,733 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 17:35:28,734 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 17:35:28,734 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 17:35:28,734 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T17:35:07', tmtdew=15.99, humidity=32.51, cloud=0.0, wind=14.22, temperature=12.25, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T15:34:54.250', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 17:35:28,735 [DEBUG][       Thread-262656][   transport.py][1871] : EOF in transport thread
2025-06-13 17:35:28,817 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 17:35:28,826 [DEBUG][       Thread-262659][   transport.py][1871] : starting thread (client mode): 0x863939d0
2025-06-13 17:35:28,826 [DEBUG][       Thread-262659][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 17:35:28,840 [DEBUG][       Thread-262659][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 17:35:28,841 [ INFO][       Thread-262659][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 17:35:28,851 [DEBUG][       Thread-262659][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 17:35:28,851 [DEBUG][       Thread-262659][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 17:35:28,851 [DEBUG][       Thread-262659][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 17:35:28,851 [DEBUG][       Thread-262659][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:35:28,851 [DEBUG][       Thread-262659][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:35:28,851 [DEBUG][       Thread-262659][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:35:28,851 [DEBUG][       Thread-262659][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:35:28,851 [DEBUG][       Thread-262659][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 17:35:28,852 [DEBUG][       Thread-262659][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 17:35:28,852 [DEBUG][       Thread-262659][   transport.py][1871] : client lang: <none>
2025-06-13 17:35:28,852 [DEBUG][       Thread-262659][   transport.py][1871] : server lang: <none>
2025-06-13 17:35:28,852 [DEBUG][       Thread-262659][   transport.py][1871] : kex follows: False
2025-06-13 17:35:28,852 [DEBUG][       Thread-262659][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 17:35:28,852 [DEBUG][       Thread-262659][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 17:35:28,852 [DEBUG][       Thread-262659][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 17:35:28,852 [DEBUG][       Thread-262659][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 17:35:28,852 [DEBUG][       Thread-262659][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 17:35:28,852 [DEBUG][       Thread-262659][   transport.py][1871] : Compression: none
2025-06-13 17:35:28,852 [DEBUG][       Thread-262659][   transport.py][1871] : === End of kex handshake ===
2025-06-13 17:35:28,904 [DEBUG][       Thread-262659][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 17:35:28,905 [DEBUG][       Thread-262659][   transport.py][1871] : Switch to new keys ...
2025-06-13 17:35:28,905 [DEBUG][       Thread-262659][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 17:35:28,906 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 17:35:28,906 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 17:35:28,961 [DEBUG][       Thread-262659][   transport.py][1871] : userauth is OK
2025-06-13 17:35:28,961 [DEBUG][       Thread-262659][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 17:35:28,961 [DEBUG][       Thread-262659][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 17:35:28,961 [DEBUG][       Thread-262659][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 17:35:28,962 [DEBUG][       Thread-262659][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 17:35:28,980 [ INFO][       Thread-262659][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 17:35:28,981 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 17:35:28,981 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 17:35:29,989 [DEBUG][       Thread-262659][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 17:35:29,989 [DEBUG][       Thread-262659][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 17:35:30,039 [DEBUG][       Thread-262659][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 17:35:30,040 [DEBUG][       Thread-262659][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 17:35:30,048 [DEBUG][       Thread-262659][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 17:35:30,057 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 17:35:30,058 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 17:35:30,061 [DEBUG][Thread-262661 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:35:30,066 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 17:35:30,075 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 17:35:30,075 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 17:35:30,075 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 17:35:30,083 [DEBUG][       Thread-262659][   transport.py][1871] : EOF in transport thread
2025-06-13 17:35:37,444 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:35:37,446 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:35:39,083 [DEBUG][Thread-262662 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:35:40,086 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 17:35:40,086 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 17:35:40,086 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 17:35:40,088 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 17:35:40,585 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 17, 35, 7), 15.99, 32.51, 0.0, 14.22, 12.25, 0, 0, 0, 2, 0, 0),)
2025-06-13 17:35:40,585 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 17:35:07
2025-06-13 17:35:40,670 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 17:35:40,675 [DEBUG][       Thread-262663][   transport.py][1871] : starting thread (client mode): 0x8636b100
2025-06-13 17:35:40,675 [DEBUG][       Thread-262663][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 17:35:40,695 [DEBUG][       Thread-262663][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 17:35:40,695 [ INFO][       Thread-262663][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 17:35:40,699 [DEBUG][       Thread-262663][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 17:35:40,699 [DEBUG][       Thread-262663][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 17:35:40,699 [DEBUG][       Thread-262663][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 17:35:40,699 [DEBUG][       Thread-262663][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:35:40,699 [DEBUG][       Thread-262663][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:35:40,699 [DEBUG][       Thread-262663][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:35:40,699 [DEBUG][       Thread-262663][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:35:40,699 [DEBUG][       Thread-262663][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 17:35:40,699 [DEBUG][       Thread-262663][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 17:35:40,699 [DEBUG][       Thread-262663][   transport.py][1871] : client lang: <none>
2025-06-13 17:35:40,699 [DEBUG][       Thread-262663][   transport.py][1871] : server lang: <none>
2025-06-13 17:35:40,699 [DEBUG][       Thread-262663][   transport.py][1871] : kex follows: False
2025-06-13 17:35:40,699 [DEBUG][       Thread-262663][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 17:35:40,699 [DEBUG][       Thread-262663][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 17:35:40,699 [DEBUG][       Thread-262663][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 17:35:40,699 [DEBUG][       Thread-262663][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 17:35:40,699 [DEBUG][       Thread-262663][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 17:35:40,699 [DEBUG][       Thread-262663][   transport.py][1871] : Compression: none
2025-06-13 17:35:40,699 [DEBUG][       Thread-262663][   transport.py][1871] : === End of kex handshake ===
2025-06-13 17:35:40,720 [DEBUG][       Thread-262663][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 17:35:40,720 [DEBUG][       Thread-262663][   transport.py][1871] : Switch to new keys ...
2025-06-13 17:35:40,720 [DEBUG][       Thread-262663][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 17:35:40,720 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 17:35:40,720 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 17:35:40,721 [DEBUG][       Thread-262663][   transport.py][1871] : userauth is OK
2025-06-13 17:35:40,733 [ INFO][       Thread-262663][   transport.py][1871] : Authentication (password) successful!
2025-06-13 17:35:40,733 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 17:35:42,395 [DEBUG][       Thread-262663][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 17:35:42,396 [DEBUG][       Thread-262663][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 17:35:42,437 [DEBUG][       Thread-262663][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 17:35:42,437 [DEBUG][       Thread-262663][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 17:35:42,440 [DEBUG][       Thread-262663][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 17:35:42,452 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 17:35:42,452 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 17:35:42,455 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 17:35:42,457 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 17:35:42,463 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 17:35:42,464 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 17:35:42,465 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 17:35:42,465 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 17:35:42,466 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.649239 -999.00  +12.00  15.52     37   -1.80 1 1 1 1 1   880    0 12.87 -48.53 ----- 15.4 15.5 54.0 19.5 13.3 -30.1 13.1 -30.5 13.1 -29.8 13.6 -29.3
2025-06-13 17:35:42,466 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 17:35:42,466 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 17:35:42,466 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.649239
2025-06-13 17:35:42,466 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 17:35:42,467 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 17:35:42,467 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 17:35:42,467 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 17:35:42,467 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 17:35:42,467 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T17:35:07', tmtdew=15.99, humidity=32.51, cloud=0.0, wind=14.22, temperature=12.25, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T15:34:54.250', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 17:35:42,467 [DEBUG][       Thread-262663][   transport.py][1871] : EOF in transport thread
2025-06-13 17:35:42,551 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 17:35:42,566 [DEBUG][       Thread-262666][   transport.py][1871] : starting thread (client mode): 0x867b4670
2025-06-13 17:35:42,566 [DEBUG][       Thread-262666][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 17:35:42,581 [DEBUG][       Thread-262666][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 17:35:42,581 [ INFO][       Thread-262666][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 17:35:42,589 [DEBUG][       Thread-262666][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 17:35:42,589 [DEBUG][       Thread-262666][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 17:35:42,589 [DEBUG][       Thread-262666][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 17:35:42,589 [DEBUG][       Thread-262666][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:35:42,589 [DEBUG][       Thread-262666][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:35:42,589 [DEBUG][       Thread-262666][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:35:42,589 [DEBUG][       Thread-262666][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:35:42,589 [DEBUG][       Thread-262666][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 17:35:42,589 [DEBUG][       Thread-262666][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 17:35:42,589 [DEBUG][       Thread-262666][   transport.py][1871] : client lang: <none>
2025-06-13 17:35:42,589 [DEBUG][       Thread-262666][   transport.py][1871] : server lang: <none>
2025-06-13 17:35:42,589 [DEBUG][       Thread-262666][   transport.py][1871] : kex follows: False
2025-06-13 17:35:42,589 [DEBUG][       Thread-262666][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 17:35:42,589 [DEBUG][       Thread-262666][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 17:35:42,590 [DEBUG][       Thread-262666][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 17:35:42,590 [DEBUG][       Thread-262666][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 17:35:42,590 [DEBUG][       Thread-262666][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 17:35:42,590 [DEBUG][       Thread-262666][   transport.py][1871] : Compression: none
2025-06-13 17:35:42,590 [DEBUG][       Thread-262666][   transport.py][1871] : === End of kex handshake ===
2025-06-13 17:35:42,645 [DEBUG][       Thread-262666][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 17:35:42,646 [DEBUG][       Thread-262666][   transport.py][1871] : Switch to new keys ...
2025-06-13 17:35:42,647 [DEBUG][       Thread-262666][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 17:35:42,647 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 17:35:42,648 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 17:35:42,704 [DEBUG][       Thread-262666][   transport.py][1871] : userauth is OK
2025-06-13 17:35:42,705 [DEBUG][       Thread-262666][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 17:35:42,705 [DEBUG][       Thread-262666][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 17:35:42,705 [DEBUG][       Thread-262666][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 17:35:42,705 [DEBUG][       Thread-262666][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 17:35:42,724 [ INFO][       Thread-262666][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 17:35:42,724 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 17:35:42,725 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 17:35:43,733 [DEBUG][       Thread-262666][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 17:35:43,734 [DEBUG][       Thread-262666][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 17:35:43,784 [DEBUG][       Thread-262666][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 17:35:43,784 [DEBUG][       Thread-262666][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 17:35:43,793 [DEBUG][       Thread-262666][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 17:35:43,803 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 17:35:43,803 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 17:35:43,812 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 17:35:43,821 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 17:35:43,821 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 17:35:43,821 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 17:35:43,829 [DEBUG][       Thread-262666][   transport.py][1871] : EOF in transport thread
2025-06-13 17:35:48,105 [DEBUG][Thread-262668 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:35:53,832 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 17:35:53,832 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 17:35:53,832 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 17:35:53,835 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 17:35:54,299 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 17, 35, 39), 15.97, 32.57, 0.0, 14.12, 12.22, 0, 0, 0, 2, 0, 0),)
2025-06-13 17:35:54,299 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 17:35:39
2025-06-13 17:35:54,380 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 17:35:54,388 [DEBUG][       Thread-262669][   transport.py][1871] : starting thread (client mode): 0x86893a60
2025-06-13 17:35:54,388 [DEBUG][       Thread-262669][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 17:35:54,407 [DEBUG][       Thread-262669][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 17:35:54,407 [ INFO][       Thread-262669][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 17:35:54,411 [DEBUG][       Thread-262669][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 17:35:54,411 [DEBUG][       Thread-262669][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 17:35:54,411 [DEBUG][       Thread-262669][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 17:35:54,411 [DEBUG][       Thread-262669][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:35:54,411 [DEBUG][       Thread-262669][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:35:54,411 [DEBUG][       Thread-262669][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:35:54,411 [DEBUG][       Thread-262669][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:35:54,411 [DEBUG][       Thread-262669][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 17:35:54,411 [DEBUG][       Thread-262669][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 17:35:54,411 [DEBUG][       Thread-262669][   transport.py][1871] : client lang: <none>
2025-06-13 17:35:54,411 [DEBUG][       Thread-262669][   transport.py][1871] : server lang: <none>
2025-06-13 17:35:54,411 [DEBUG][       Thread-262669][   transport.py][1871] : kex follows: False
2025-06-13 17:35:54,411 [DEBUG][       Thread-262669][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 17:35:54,411 [DEBUG][       Thread-262669][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 17:35:54,411 [DEBUG][       Thread-262669][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 17:35:54,411 [DEBUG][       Thread-262669][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 17:35:54,411 [DEBUG][       Thread-262669][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 17:35:54,411 [DEBUG][       Thread-262669][   transport.py][1871] : Compression: none
2025-06-13 17:35:54,411 [DEBUG][       Thread-262669][   transport.py][1871] : === End of kex handshake ===
2025-06-13 17:35:54,428 [DEBUG][       Thread-262669][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 17:35:54,428 [DEBUG][       Thread-262669][   transport.py][1871] : Switch to new keys ...
2025-06-13 17:35:54,428 [DEBUG][       Thread-262669][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 17:35:54,428 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 17:35:54,428 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 17:35:54,429 [DEBUG][       Thread-262669][   transport.py][1871] : userauth is OK
2025-06-13 17:35:54,453 [ INFO][       Thread-262669][   transport.py][1871] : Authentication (password) successful!
2025-06-13 17:35:54,453 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 17:35:55,229 [DEBUG][       Thread-262669][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 17:35:55,229 [DEBUG][       Thread-262669][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 17:35:55,273 [DEBUG][       Thread-262669][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 17:35:55,273 [DEBUG][       Thread-262669][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 17:35:55,276 [DEBUG][       Thread-262669][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 17:35:55,287 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 17:35:55,288 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 17:35:55,290 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 17:35:55,291 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 17:35:55,297 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 17:35:55,298 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 17:35:55,299 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 17:35:55,299 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 17:35:55,299 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.649239 -999.00  +12.00  15.52     37   -1.80 1 1 1 1 1   880    0 12.87 -48.53 ----- 15.4 15.5 54.0 19.5 13.3 -30.1 13.1 -30.5 13.1 -29.8 13.6 -29.3
2025-06-13 17:35:55,299 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 17:35:55,299 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 17:35:55,300 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.649239
2025-06-13 17:35:55,300 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 17:35:55,300 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 17:35:55,301 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 17:35:55,301 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 17:35:55,301 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 17:35:55,301 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T17:35:39', tmtdew=15.97, humidity=32.57, cloud=0.0, wind=14.12, temperature=12.22, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T15:34:54.250', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 17:35:55,302 [DEBUG][       Thread-262669][   transport.py][1871] : EOF in transport thread
2025-06-13 17:35:55,375 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 17:35:55,384 [DEBUG][       Thread-262672][   transport.py][1871] : starting thread (client mode): 0x863ef190
2025-06-13 17:35:55,384 [DEBUG][       Thread-262672][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 17:35:55,400 [DEBUG][       Thread-262672][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 17:35:55,400 [ INFO][       Thread-262672][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 17:35:55,408 [DEBUG][       Thread-262672][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 17:35:55,408 [DEBUG][       Thread-262672][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 17:35:55,408 [DEBUG][       Thread-262672][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 17:35:55,408 [DEBUG][       Thread-262672][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:35:55,408 [DEBUG][       Thread-262672][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:35:55,408 [DEBUG][       Thread-262672][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:35:55,408 [DEBUG][       Thread-262672][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:35:55,408 [DEBUG][       Thread-262672][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 17:35:55,408 [DEBUG][       Thread-262672][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 17:35:55,408 [DEBUG][       Thread-262672][   transport.py][1871] : client lang: <none>
2025-06-13 17:35:55,408 [DEBUG][       Thread-262672][   transport.py][1871] : server lang: <none>
2025-06-13 17:35:55,408 [DEBUG][       Thread-262672][   transport.py][1871] : kex follows: False
2025-06-13 17:35:55,408 [DEBUG][       Thread-262672][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 17:35:55,408 [DEBUG][       Thread-262672][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 17:35:55,408 [DEBUG][       Thread-262672][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 17:35:55,408 [DEBUG][       Thread-262672][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 17:35:55,409 [DEBUG][       Thread-262672][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 17:35:55,409 [DEBUG][       Thread-262672][   transport.py][1871] : Compression: none
2025-06-13 17:35:55,409 [DEBUG][       Thread-262672][   transport.py][1871] : === End of kex handshake ===
2025-06-13 17:35:55,468 [DEBUG][       Thread-262672][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 17:35:55,468 [DEBUG][       Thread-262672][   transport.py][1871] : Switch to new keys ...
2025-06-13 17:35:55,468 [DEBUG][       Thread-262672][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 17:35:55,468 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 17:35:55,469 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 17:35:55,525 [DEBUG][       Thread-262672][   transport.py][1871] : userauth is OK
2025-06-13 17:35:55,525 [DEBUG][       Thread-262672][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 17:35:55,525 [DEBUG][       Thread-262672][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 17:35:55,525 [DEBUG][       Thread-262672][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 17:35:55,525 [DEBUG][       Thread-262672][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 17:35:55,540 [ INFO][       Thread-262672][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 17:35:55,540 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 17:35:55,540 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 17:35:56,599 [DEBUG][       Thread-262672][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 17:35:56,599 [DEBUG][       Thread-262672][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 17:35:56,647 [DEBUG][       Thread-262672][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 17:35:56,647 [DEBUG][       Thread-262672][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 17:35:56,656 [DEBUG][       Thread-262672][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 17:35:56,664 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 17:35:56,664 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 17:35:56,672 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 17:35:56,680 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 17:35:56,680 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 17:35:56,680 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 17:35:56,688 [DEBUG][       Thread-262672][   transport.py][1871] : EOF in transport thread
2025-06-13 17:35:57,123 [DEBUG][Thread-262674 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:36:06,149 [DEBUG][Thread-262675 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:36:06,690 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 17:36:06,691 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 17:36:06,691 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 17:36:06,694 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 17:36:07,151 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 17, 35, 39), 15.97, 32.57, 0.0, 14.12, 12.22, 0, 0, 0, 2, 0, 0),)
2025-06-13 17:36:07,151 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 17:35:39
2025-06-13 17:36:07,233 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 17:36:07,237 [DEBUG][       Thread-262676][   transport.py][1871] : starting thread (client mode): 0x86369540
2025-06-13 17:36:07,237 [DEBUG][       Thread-262676][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 17:36:07,257 [DEBUG][       Thread-262676][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 17:36:07,257 [ INFO][       Thread-262676][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 17:36:07,260 [DEBUG][       Thread-262676][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 17:36:07,260 [DEBUG][       Thread-262676][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 17:36:07,260 [DEBUG][       Thread-262676][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 17:36:07,260 [DEBUG][       Thread-262676][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:36:07,260 [DEBUG][       Thread-262676][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:36:07,260 [DEBUG][       Thread-262676][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:36:07,260 [DEBUG][       Thread-262676][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:36:07,260 [DEBUG][       Thread-262676][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 17:36:07,260 [DEBUG][       Thread-262676][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 17:36:07,261 [DEBUG][       Thread-262676][   transport.py][1871] : client lang: <none>
2025-06-13 17:36:07,261 [DEBUG][       Thread-262676][   transport.py][1871] : server lang: <none>
2025-06-13 17:36:07,261 [DEBUG][       Thread-262676][   transport.py][1871] : kex follows: False
2025-06-13 17:36:07,261 [DEBUG][       Thread-262676][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 17:36:07,261 [DEBUG][       Thread-262676][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 17:36:07,261 [DEBUG][       Thread-262676][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 17:36:07,261 [DEBUG][       Thread-262676][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 17:36:07,261 [DEBUG][       Thread-262676][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 17:36:07,261 [DEBUG][       Thread-262676][   transport.py][1871] : Compression: none
2025-06-13 17:36:07,261 [DEBUG][       Thread-262676][   transport.py][1871] : === End of kex handshake ===
2025-06-13 17:36:07,276 [DEBUG][       Thread-262676][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 17:36:07,277 [DEBUG][       Thread-262676][   transport.py][1871] : Switch to new keys ...
2025-06-13 17:36:07,277 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 17:36:07,277 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 17:36:07,278 [DEBUG][       Thread-262676][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 17:36:07,278 [DEBUG][       Thread-262676][   transport.py][1871] : userauth is OK
2025-06-13 17:36:07,292 [ INFO][       Thread-262676][   transport.py][1871] : Authentication (password) successful!
2025-06-13 17:36:07,292 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 17:36:07,883 [DEBUG][       Thread-262676][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 17:36:07,883 [DEBUG][       Thread-262676][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 17:36:07,925 [DEBUG][       Thread-262676][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 17:36:07,925 [DEBUG][       Thread-262676][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 17:36:07,927 [DEBUG][       Thread-262676][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 17:36:07,939 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 17:36:07,939 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 17:36:07,940 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 17:36:07,941 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 17:36:07,944 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 17:36:07,945 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 17:36:07,945 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 17:36:07,945 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 17:36:07,945 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.649934 -999.00  +12.00  16.34     37   -1.90 1 1 1 1 1   879    0 12.85 -47.26 ----- 16.6 16.3 40.2 17.7 13.2 -30.0 13.1 -30.4 13.0 -29.8 13.4 -29.3
2025-06-13 17:36:07,945 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 17:36:07,945 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 17:36:07,945 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.649934
2025-06-13 17:36:07,945 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 17:36:07,945 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 17:36:07,945 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 17:36:07,945 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 17:36:07,945 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 17:36:07,945 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T17:35:39', tmtdew=15.97, humidity=32.57, cloud=0.0, wind=14.12, temperature=12.22, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T15:35:54.298', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 17:36:07,946 [DEBUG][       Thread-262676][   transport.py][1871] : EOF in transport thread
2025-06-13 17:36:08,017 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 17:36:08,028 [DEBUG][       Thread-262679][   transport.py][1871] : starting thread (client mode): 0x863ef190
2025-06-13 17:36:08,028 [DEBUG][       Thread-262679][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 17:36:08,043 [DEBUG][       Thread-262679][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 17:36:08,043 [ INFO][       Thread-262679][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 17:36:08,051 [DEBUG][       Thread-262679][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 17:36:08,051 [DEBUG][       Thread-262679][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 17:36:08,051 [DEBUG][       Thread-262679][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 17:36:08,051 [DEBUG][       Thread-262679][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:36:08,051 [DEBUG][       Thread-262679][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:36:08,051 [DEBUG][       Thread-262679][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:36:08,051 [DEBUG][       Thread-262679][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:36:08,051 [DEBUG][       Thread-262679][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 17:36:08,051 [DEBUG][       Thread-262679][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 17:36:08,051 [DEBUG][       Thread-262679][   transport.py][1871] : client lang: <none>
2025-06-13 17:36:08,051 [DEBUG][       Thread-262679][   transport.py][1871] : server lang: <none>
2025-06-13 17:36:08,051 [DEBUG][       Thread-262679][   transport.py][1871] : kex follows: False
2025-06-13 17:36:08,051 [DEBUG][       Thread-262679][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 17:36:08,051 [DEBUG][       Thread-262679][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 17:36:08,051 [DEBUG][       Thread-262679][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 17:36:08,052 [DEBUG][       Thread-262679][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 17:36:08,052 [DEBUG][       Thread-262679][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 17:36:08,052 [DEBUG][       Thread-262679][   transport.py][1871] : Compression: none
2025-06-13 17:36:08,052 [DEBUG][       Thread-262679][   transport.py][1871] : === End of kex handshake ===
2025-06-13 17:36:08,114 [DEBUG][       Thread-262679][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 17:36:08,114 [DEBUG][       Thread-262679][   transport.py][1871] : Switch to new keys ...
2025-06-13 17:36:08,115 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 17:36:08,116 [DEBUG][       Thread-262679][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 17:36:08,116 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 17:36:08,170 [DEBUG][       Thread-262679][   transport.py][1871] : userauth is OK
2025-06-13 17:36:08,170 [DEBUG][       Thread-262679][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 17:36:08,170 [DEBUG][       Thread-262679][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 17:36:08,170 [DEBUG][       Thread-262679][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 17:36:08,170 [DEBUG][       Thread-262679][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 17:36:08,188 [ INFO][       Thread-262679][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 17:36:08,189 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 17:36:08,189 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 17:36:09,188 [DEBUG][       Thread-262679][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 17:36:09,188 [DEBUG][       Thread-262679][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 17:36:09,236 [DEBUG][       Thread-262679][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 17:36:09,236 [DEBUG][       Thread-262679][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 17:36:09,248 [DEBUG][       Thread-262679][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 17:36:09,260 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 17:36:09,261 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 17:36:09,271 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 17:36:09,284 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 17:36:09,285 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 17:36:09,285 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 17:36:09,294 [DEBUG][       Thread-262679][   transport.py][1871] : EOF in transport thread
2025-06-13 17:36:09,881 [DEBUG][Thread-262681 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:36:10,994 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:36:10,995 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:36:15,169 [DEBUG][Thread-262682 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:36:19,296 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 17:36:19,296 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 17:36:19,296 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 17:36:19,299 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 17:36:19,754 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 17, 36, 11), 16.03, 32.59, 0.0, 13.73, 12.24, 0, 0, 0, 2, 0, 0),)
2025-06-13 17:36:19,754 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 17:36:11
2025-06-13 17:36:19,836 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 17:36:19,842 [DEBUG][       Thread-262683][   transport.py][1871] : starting thread (client mode): 0x8636a170
2025-06-13 17:36:19,842 [DEBUG][       Thread-262683][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 17:36:19,872 [DEBUG][       Thread-262683][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 17:36:19,873 [ INFO][       Thread-262683][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 17:36:19,874 [DEBUG][       Thread-262683][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 17:36:19,874 [DEBUG][       Thread-262683][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 17:36:19,874 [DEBUG][       Thread-262683][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 17:36:19,874 [DEBUG][       Thread-262683][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:36:19,874 [DEBUG][       Thread-262683][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:36:19,874 [DEBUG][       Thread-262683][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:36:19,874 [DEBUG][       Thread-262683][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:36:19,874 [DEBUG][       Thread-262683][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 17:36:19,874 [DEBUG][       Thread-262683][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 17:36:19,874 [DEBUG][       Thread-262683][   transport.py][1871] : client lang: <none>
2025-06-13 17:36:19,875 [DEBUG][       Thread-262683][   transport.py][1871] : server lang: <none>
2025-06-13 17:36:19,875 [DEBUG][       Thread-262683][   transport.py][1871] : kex follows: False
2025-06-13 17:36:19,875 [DEBUG][       Thread-262683][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 17:36:19,875 [DEBUG][       Thread-262683][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 17:36:19,875 [DEBUG][       Thread-262683][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 17:36:19,875 [DEBUG][       Thread-262683][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 17:36:19,875 [DEBUG][       Thread-262683][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 17:36:19,875 [DEBUG][       Thread-262683][   transport.py][1871] : Compression: none
2025-06-13 17:36:19,875 [DEBUG][       Thread-262683][   transport.py][1871] : === End of kex handshake ===
2025-06-13 17:36:19,885 [DEBUG][       Thread-262683][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 17:36:19,886 [DEBUG][       Thread-262683][   transport.py][1871] : Switch to new keys ...
2025-06-13 17:36:19,886 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 17:36:19,887 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 17:36:19,887 [DEBUG][       Thread-262683][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 17:36:19,888 [DEBUG][       Thread-262683][   transport.py][1871] : userauth is OK
2025-06-13 17:36:19,900 [ INFO][       Thread-262683][   transport.py][1871] : Authentication (password) successful!
2025-06-13 17:36:19,901 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 17:36:20,663 [DEBUG][       Thread-262683][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 17:36:20,664 [DEBUG][       Thread-262683][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 17:36:20,705 [DEBUG][       Thread-262683][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 17:36:20,705 [DEBUG][       Thread-262683][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 17:36:20,707 [DEBUG][       Thread-262683][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 17:36:20,719 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 17:36:20,719 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 17:36:20,720 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 17:36:20,721 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 17:36:20,724 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 17:36:20,725 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 17:36:20,725 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 17:36:20,725 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 17:36:20,725 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.649934 -999.00  +12.00  16.34     37   -1.90 1 1 1 1 1   879    0 12.85 -47.26 ----- 16.6 16.3 40.2 17.7 13.2 -30.0 13.1 -30.4 13.0 -29.8 13.4 -29.3
2025-06-13 17:36:20,725 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 17:36:20,725 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 17:36:20,725 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.649934
2025-06-13 17:36:20,726 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 17:36:20,726 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 17:36:20,726 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 17:36:20,726 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 17:36:20,726 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 17:36:20,726 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T17:36:11', tmtdew=16.03, humidity=32.59, cloud=0.0, wind=13.73, temperature=12.24, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T15:35:54.298', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 17:36:20,726 [DEBUG][       Thread-262683][   transport.py][1871] : EOF in transport thread
2025-06-13 17:36:20,798 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 17:36:20,807 [DEBUG][       Thread-262686][   transport.py][1871] : starting thread (client mode): 0x86893fd0
2025-06-13 17:36:20,807 [DEBUG][       Thread-262686][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 17:36:20,822 [DEBUG][       Thread-262686][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 17:36:20,822 [ INFO][       Thread-262686][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 17:36:20,829 [DEBUG][       Thread-262686][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 17:36:20,829 [DEBUG][       Thread-262686][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 17:36:20,829 [DEBUG][       Thread-262686][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 17:36:20,829 [DEBUG][       Thread-262686][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:36:20,829 [DEBUG][       Thread-262686][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:36:20,829 [DEBUG][       Thread-262686][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:36:20,829 [DEBUG][       Thread-262686][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:36:20,829 [DEBUG][       Thread-262686][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 17:36:20,829 [DEBUG][       Thread-262686][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 17:36:20,829 [DEBUG][       Thread-262686][   transport.py][1871] : client lang: <none>
2025-06-13 17:36:20,829 [DEBUG][       Thread-262686][   transport.py][1871] : server lang: <none>
2025-06-13 17:36:20,829 [DEBUG][       Thread-262686][   transport.py][1871] : kex follows: False
2025-06-13 17:36:20,829 [DEBUG][       Thread-262686][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 17:36:20,829 [DEBUG][       Thread-262686][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 17:36:20,830 [DEBUG][       Thread-262686][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 17:36:20,830 [DEBUG][       Thread-262686][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 17:36:20,830 [DEBUG][       Thread-262686][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 17:36:20,830 [DEBUG][       Thread-262686][   transport.py][1871] : Compression: none
2025-06-13 17:36:20,830 [DEBUG][       Thread-262686][   transport.py][1871] : === End of kex handshake ===
2025-06-13 17:36:20,889 [DEBUG][       Thread-262686][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 17:36:20,890 [DEBUG][       Thread-262686][   transport.py][1871] : Switch to new keys ...
2025-06-13 17:36:20,890 [DEBUG][       Thread-262686][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 17:36:20,890 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 17:36:20,891 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 17:36:20,946 [DEBUG][       Thread-262686][   transport.py][1871] : userauth is OK
2025-06-13 17:36:20,946 [DEBUG][       Thread-262686][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 17:36:20,946 [DEBUG][       Thread-262686][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 17:36:20,946 [DEBUG][       Thread-262686][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 17:36:20,946 [DEBUG][       Thread-262686][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 17:36:20,965 [ INFO][       Thread-262686][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 17:36:20,965 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 17:36:20,965 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 17:36:21,945 [DEBUG][       Thread-262686][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 17:36:21,946 [DEBUG][       Thread-262686][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 17:36:21,997 [DEBUG][       Thread-262686][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 17:36:21,997 [DEBUG][       Thread-262686][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 17:36:22,008 [DEBUG][       Thread-262686][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 17:36:22,024 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 17:36:22,024 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 17:36:22,033 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 17:36:22,042 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 17:36:22,042 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 17:36:22,042 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 17:36:22,050 [DEBUG][       Thread-262686][   transport.py][1871] : EOF in transport thread
2025-06-13 17:36:24,191 [DEBUG][Thread-262688 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:36:26,706 [DEBUG][Thread-262689 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:36:32,053 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 17:36:32,053 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 17:36:32,053 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 17:36:32,056 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 17:36:32,519 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 17, 36, 11), 16.03, 32.59, 0.0, 13.73, 12.24, 0, 0, 0, 2, 0, 0),)
2025-06-13 17:36:32,519 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 17:36:11
2025-06-13 17:36:32,601 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 17:36:32,605 [DEBUG][       Thread-262690][   transport.py][1871] : starting thread (client mode): 0x8636bdf0
2025-06-13 17:36:32,605 [DEBUG][       Thread-262690][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 17:36:32,622 [DEBUG][       Thread-262690][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 17:36:32,622 [ INFO][       Thread-262690][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 17:36:32,626 [DEBUG][       Thread-262690][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 17:36:32,626 [DEBUG][       Thread-262690][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 17:36:32,626 [DEBUG][       Thread-262690][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 17:36:32,626 [DEBUG][       Thread-262690][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:36:32,626 [DEBUG][       Thread-262690][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:36:32,626 [DEBUG][       Thread-262690][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:36:32,626 [DEBUG][       Thread-262690][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:36:32,626 [DEBUG][       Thread-262690][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 17:36:32,626 [DEBUG][       Thread-262690][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 17:36:32,626 [DEBUG][       Thread-262690][   transport.py][1871] : client lang: <none>
2025-06-13 17:36:32,626 [DEBUG][       Thread-262690][   transport.py][1871] : server lang: <none>
2025-06-13 17:36:32,626 [DEBUG][       Thread-262690][   transport.py][1871] : kex follows: False
2025-06-13 17:36:32,626 [DEBUG][       Thread-262690][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 17:36:32,626 [DEBUG][       Thread-262690][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 17:36:32,626 [DEBUG][       Thread-262690][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 17:36:32,626 [DEBUG][       Thread-262690][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 17:36:32,626 [DEBUG][       Thread-262690][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 17:36:32,626 [DEBUG][       Thread-262690][   transport.py][1871] : Compression: none
2025-06-13 17:36:32,626 [DEBUG][       Thread-262690][   transport.py][1871] : === End of kex handshake ===
2025-06-13 17:36:32,644 [DEBUG][       Thread-262690][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 17:36:32,644 [DEBUG][       Thread-262690][   transport.py][1871] : Switch to new keys ...
2025-06-13 17:36:32,645 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 17:36:32,645 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 17:36:32,645 [DEBUG][       Thread-262690][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 17:36:32,646 [DEBUG][       Thread-262690][   transport.py][1871] : userauth is OK
2025-06-13 17:36:32,670 [ INFO][       Thread-262690][   transport.py][1871] : Authentication (password) successful!
2025-06-13 17:36:32,671 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 17:36:33,227 [DEBUG][Thread-262692 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:36:33,370 [DEBUG][       Thread-262690][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 17:36:33,370 [DEBUG][       Thread-262690][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 17:36:33,413 [DEBUG][       Thread-262690][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 17:36:33,413 [DEBUG][       Thread-262690][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 17:36:33,417 [DEBUG][       Thread-262690][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 17:36:33,428 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 17:36:33,429 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 17:36:33,431 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 17:36:33,432 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 17:36:33,438 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 17:36:33,439 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 17:36:33,440 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 17:36:33,440 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 17:36:33,441 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.650281 -999.00  +12.00  16.24     37   -2.00 1 1 1 1 1   878    0 12.64 -48.99 ----- 16.2 16.2 47.4 20.4 13.2 -30.2 13.0 -30.3 12.9 -30.0 13.4 -29.2
2025-06-13 17:36:33,441 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 17:36:33,441 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 17:36:33,441 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.650281
2025-06-13 17:36:33,441 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 17:36:33,442 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 17:36:33,442 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 17:36:33,442 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 17:36:33,442 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 17:36:33,442 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T17:36:11', tmtdew=16.03, humidity=32.59, cloud=0.0, wind=13.73, temperature=12.24, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T15:36:24.278', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 17:36:33,443 [DEBUG][       Thread-262690][   transport.py][1871] : EOF in transport thread
2025-06-13 17:36:33,527 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 17:36:33,538 [DEBUG][       Thread-262694][   transport.py][1871] : starting thread (client mode): 0x86353190
2025-06-13 17:36:33,538 [DEBUG][       Thread-262694][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 17:36:33,553 [DEBUG][       Thread-262694][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 17:36:33,553 [ INFO][       Thread-262694][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 17:36:33,560 [DEBUG][       Thread-262694][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 17:36:33,561 [DEBUG][       Thread-262694][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 17:36:33,561 [DEBUG][       Thread-262694][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 17:36:33,561 [DEBUG][       Thread-262694][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:36:33,561 [DEBUG][       Thread-262694][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:36:33,561 [DEBUG][       Thread-262694][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:36:33,561 [DEBUG][       Thread-262694][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:36:33,561 [DEBUG][       Thread-262694][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 17:36:33,561 [DEBUG][       Thread-262694][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 17:36:33,561 [DEBUG][       Thread-262694][   transport.py][1871] : client lang: <none>
2025-06-13 17:36:33,561 [DEBUG][       Thread-262694][   transport.py][1871] : server lang: <none>
2025-06-13 17:36:33,561 [DEBUG][       Thread-262694][   transport.py][1871] : kex follows: False
2025-06-13 17:36:33,561 [DEBUG][       Thread-262694][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 17:36:33,561 [DEBUG][       Thread-262694][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 17:36:33,561 [DEBUG][       Thread-262694][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 17:36:33,561 [DEBUG][       Thread-262694][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 17:36:33,561 [DEBUG][       Thread-262694][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 17:36:33,561 [DEBUG][       Thread-262694][   transport.py][1871] : Compression: none
2025-06-13 17:36:33,561 [DEBUG][       Thread-262694][   transport.py][1871] : === End of kex handshake ===
2025-06-13 17:36:33,624 [DEBUG][       Thread-262694][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 17:36:33,624 [DEBUG][       Thread-262694][   transport.py][1871] : Switch to new keys ...
2025-06-13 17:36:33,625 [DEBUG][       Thread-262694][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 17:36:33,625 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 17:36:33,626 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 17:36:33,686 [DEBUG][       Thread-262694][   transport.py][1871] : userauth is OK
2025-06-13 17:36:33,686 [DEBUG][       Thread-262694][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 17:36:33,686 [DEBUG][       Thread-262694][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 17:36:33,687 [DEBUG][       Thread-262694][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 17:36:33,687 [DEBUG][       Thread-262694][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 17:36:33,706 [ INFO][       Thread-262694][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 17:36:33,706 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 17:36:33,706 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 17:36:34,698 [DEBUG][       Thread-262694][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 17:36:34,698 [DEBUG][       Thread-262694][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 17:36:34,747 [DEBUG][       Thread-262694][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 17:36:34,747 [DEBUG][       Thread-262694][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 17:36:34,755 [DEBUG][       Thread-262694][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 17:36:34,763 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 17:36:34,763 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 17:36:34,771 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 17:36:34,779 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 17:36:34,779 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 17:36:34,779 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 17:36:34,787 [DEBUG][       Thread-262694][   transport.py][1871] : EOF in transport thread
2025-06-13 17:36:42,253 [DEBUG][Thread-262696 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:36:43,591 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:36:43,592 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:36:44,788 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 17:36:44,788 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 17:36:44,788 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 17:36:44,788 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 17:36:45,268 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 17, 36, 11), 16.03, 32.59, 0.0, 13.73, 12.24, 0, 0, 0, 2, 0, 0),)
2025-06-13 17:36:45,268 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 17:36:11
2025-06-13 17:36:45,348 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 17:36:45,354 [DEBUG][       Thread-262697][   transport.py][1871] : starting thread (client mode): 0x86350fa0
2025-06-13 17:36:45,354 [DEBUG][       Thread-262697][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 17:36:45,375 [DEBUG][       Thread-262697][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 17:36:45,375 [ INFO][       Thread-262697][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 17:36:45,378 [DEBUG][       Thread-262697][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 17:36:45,379 [DEBUG][       Thread-262697][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 17:36:45,379 [DEBUG][       Thread-262697][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 17:36:45,379 [DEBUG][       Thread-262697][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:36:45,379 [DEBUG][       Thread-262697][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:36:45,379 [DEBUG][       Thread-262697][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:36:45,379 [DEBUG][       Thread-262697][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:36:45,379 [DEBUG][       Thread-262697][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 17:36:45,379 [DEBUG][       Thread-262697][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 17:36:45,379 [DEBUG][       Thread-262697][   transport.py][1871] : client lang: <none>
2025-06-13 17:36:45,379 [DEBUG][       Thread-262697][   transport.py][1871] : server lang: <none>
2025-06-13 17:36:45,379 [DEBUG][       Thread-262697][   transport.py][1871] : kex follows: False
2025-06-13 17:36:45,379 [DEBUG][       Thread-262697][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 17:36:45,379 [DEBUG][       Thread-262697][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 17:36:45,379 [DEBUG][       Thread-262697][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 17:36:45,379 [DEBUG][       Thread-262697][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 17:36:45,379 [DEBUG][       Thread-262697][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 17:36:45,379 [DEBUG][       Thread-262697][   transport.py][1871] : Compression: none
2025-06-13 17:36:45,379 [DEBUG][       Thread-262697][   transport.py][1871] : === End of kex handshake ===
2025-06-13 17:36:45,398 [DEBUG][       Thread-262697][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 17:36:45,398 [DEBUG][       Thread-262697][   transport.py][1871] : Switch to new keys ...
2025-06-13 17:36:45,399 [DEBUG][       Thread-262697][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 17:36:45,399 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 17:36:45,399 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 17:36:45,400 [DEBUG][       Thread-262697][   transport.py][1871] : userauth is OK
2025-06-13 17:36:45,413 [ INFO][       Thread-262697][   transport.py][1871] : Authentication (password) successful!
2025-06-13 17:36:45,414 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 17:36:46,035 [DEBUG][       Thread-262697][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 17:36:46,035 [DEBUG][       Thread-262697][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 17:36:46,077 [DEBUG][       Thread-262697][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 17:36:46,077 [DEBUG][       Thread-262697][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 17:36:46,081 [DEBUG][       Thread-262697][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 17:36:46,094 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 17:36:46,095 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 17:36:46,096 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 17:36:46,098 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 17:36:46,104 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 17:36:46,106 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 17:36:46,106 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 17:36:46,106 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 17:36:46,107 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.650281 -999.00  +12.00  16.24     37   -2.00 1 1 1 1 1   878    0 12.64 -48.99 ----- 16.2 16.2 47.4 20.4 13.2 -30.2 13.0 -30.3 12.9 -30.0 13.4 -29.2
2025-06-13 17:36:46,107 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 17:36:46,107 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 17:36:46,107 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.650281
2025-06-13 17:36:46,107 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 17:36:46,108 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 17:36:46,108 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 17:36:46,108 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 17:36:46,108 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 17:36:46,108 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T17:36:11', tmtdew=16.03, humidity=32.59, cloud=0.0, wind=13.73, temperature=12.24, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T15:36:24.278', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 17:36:46,109 [DEBUG][       Thread-262697][   transport.py][1871] : EOF in transport thread
2025-06-13 17:36:46,192 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 17:36:46,203 [DEBUG][       Thread-262700][   transport.py][1871] : starting thread (client mode): 0x863c8c70
2025-06-13 17:36:46,203 [DEBUG][       Thread-262700][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 17:36:46,218 [DEBUG][       Thread-262700][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 17:36:46,218 [ INFO][       Thread-262700][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 17:36:46,226 [DEBUG][       Thread-262700][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 17:36:46,226 [DEBUG][       Thread-262700][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 17:36:46,226 [DEBUG][       Thread-262700][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 17:36:46,226 [DEBUG][       Thread-262700][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:36:46,226 [DEBUG][       Thread-262700][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:36:46,226 [DEBUG][       Thread-262700][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:36:46,226 [DEBUG][       Thread-262700][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:36:46,226 [DEBUG][       Thread-262700][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 17:36:46,226 [DEBUG][       Thread-262700][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 17:36:46,226 [DEBUG][       Thread-262700][   transport.py][1871] : client lang: <none>
2025-06-13 17:36:46,226 [DEBUG][       Thread-262700][   transport.py][1871] : server lang: <none>
2025-06-13 17:36:46,226 [DEBUG][       Thread-262700][   transport.py][1871] : kex follows: False
2025-06-13 17:36:46,226 [DEBUG][       Thread-262700][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 17:36:46,226 [DEBUG][       Thread-262700][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 17:36:46,226 [DEBUG][       Thread-262700][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 17:36:46,226 [DEBUG][       Thread-262700][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 17:36:46,227 [DEBUG][       Thread-262700][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 17:36:46,227 [DEBUG][       Thread-262700][   transport.py][1871] : Compression: none
2025-06-13 17:36:46,227 [DEBUG][       Thread-262700][   transport.py][1871] : === End of kex handshake ===
2025-06-13 17:36:46,292 [DEBUG][       Thread-262700][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 17:36:46,293 [DEBUG][       Thread-262700][   transport.py][1871] : Switch to new keys ...
2025-06-13 17:36:46,293 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 17:36:46,294 [DEBUG][       Thread-262700][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 17:36:46,294 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 17:36:46,356 [DEBUG][       Thread-262700][   transport.py][1871] : userauth is OK
2025-06-13 17:36:46,357 [DEBUG][       Thread-262700][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 17:36:46,357 [DEBUG][       Thread-262700][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 17:36:46,357 [DEBUG][       Thread-262700][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 17:36:46,357 [DEBUG][       Thread-262700][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 17:36:46,379 [ INFO][       Thread-262700][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 17:36:46,380 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 17:36:46,380 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 17:36:47,387 [DEBUG][       Thread-262700][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 17:36:47,387 [DEBUG][       Thread-262700][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 17:36:47,436 [DEBUG][       Thread-262700][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 17:36:47,436 [DEBUG][       Thread-262700][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 17:36:47,445 [DEBUG][       Thread-262700][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 17:36:47,454 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 17:36:47,454 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 17:36:47,462 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 17:36:47,471 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 17:36:47,471 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 17:36:47,471 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 17:36:47,479 [DEBUG][       Thread-262700][   transport.py][1871] : EOF in transport thread
2025-06-13 17:36:51,273 [DEBUG][Thread-262702 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:36:57,476 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 17:36:57,476 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 17:36:57,476 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 17:36:57,479 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 17:36:57,946 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 17, 36, 43), 16.02, 32.59, 0.0, 15.85, 12.22, 0, 0, 0, 2, 0, 0),)
2025-06-13 17:36:57,946 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 17:36:43
2025-06-13 17:36:58,028 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 17:36:58,032 [DEBUG][       Thread-262703][   transport.py][1871] : starting thread (client mode): 0x863c93c0
2025-06-13 17:36:58,032 [DEBUG][       Thread-262703][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 17:36:58,045 [DEBUG][       Thread-262703][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 17:36:58,045 [ INFO][       Thread-262703][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 17:36:58,046 [DEBUG][       Thread-262703][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 17:36:58,046 [DEBUG][       Thread-262703][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 17:36:58,046 [DEBUG][       Thread-262703][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 17:36:58,046 [DEBUG][       Thread-262703][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:36:58,046 [DEBUG][       Thread-262703][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:36:58,046 [DEBUG][       Thread-262703][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:36:58,046 [DEBUG][       Thread-262703][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:36:58,046 [DEBUG][       Thread-262703][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 17:36:58,046 [DEBUG][       Thread-262703][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 17:36:58,046 [DEBUG][       Thread-262703][   transport.py][1871] : client lang: <none>
2025-06-13 17:36:58,046 [DEBUG][       Thread-262703][   transport.py][1871] : server lang: <none>
2025-06-13 17:36:58,046 [DEBUG][       Thread-262703][   transport.py][1871] : kex follows: False
2025-06-13 17:36:58,047 [DEBUG][       Thread-262703][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 17:36:58,047 [DEBUG][       Thread-262703][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 17:36:58,047 [DEBUG][       Thread-262703][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 17:36:58,047 [DEBUG][       Thread-262703][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 17:36:58,047 [DEBUG][       Thread-262703][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 17:36:58,047 [DEBUG][       Thread-262703][   transport.py][1871] : Compression: none
2025-06-13 17:36:58,047 [DEBUG][       Thread-262703][   transport.py][1871] : === End of kex handshake ===
2025-06-13 17:36:58,056 [DEBUG][       Thread-262703][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 17:36:58,057 [DEBUG][       Thread-262703][   transport.py][1871] : Switch to new keys ...
2025-06-13 17:36:58,057 [DEBUG][       Thread-262703][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 17:36:58,057 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 17:36:58,057 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 17:36:58,058 [DEBUG][       Thread-262703][   transport.py][1871] : userauth is OK
2025-06-13 17:36:58,082 [ INFO][       Thread-262703][   transport.py][1871] : Authentication (password) successful!
2025-06-13 17:36:58,082 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 17:36:58,825 [DEBUG][       Thread-262703][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 17:36:58,826 [DEBUG][       Thread-262703][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 17:36:58,869 [DEBUG][       Thread-262703][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 17:36:58,869 [DEBUG][       Thread-262703][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 17:36:58,873 [DEBUG][       Thread-262703][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 17:36:58,887 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 17:36:58,887 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 17:36:58,890 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 17:36:58,891 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 17:36:58,897 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 17:36:58,899 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 17:36:58,900 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 17:36:58,900 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 17:36:58,901 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.650281 -999.00  +12.00  16.24     37   -2.00 1 1 1 1 1   878    0 12.64 -48.99 ----- 16.2 16.2 47.4 20.4 13.2 -30.2 13.0 -30.3 12.9 -30.0 13.4 -29.2
2025-06-13 17:36:58,901 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 17:36:58,901 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 17:36:58,901 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.650281
2025-06-13 17:36:58,901 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 17:36:58,902 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 17:36:58,902 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 17:36:58,902 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 17:36:58,902 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 17:36:58,902 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T17:36:43', tmtdew=16.02, humidity=32.59, cloud=0.0, wind=15.85, temperature=12.22, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T15:36:24.278', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 17:36:58,903 [DEBUG][       Thread-262703][   transport.py][1871] : EOF in transport thread
2025-06-13 17:36:58,986 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 17:36:58,995 [DEBUG][       Thread-262706][   transport.py][1871] : starting thread (client mode): 0x863a7f40
2025-06-13 17:36:58,995 [DEBUG][       Thread-262706][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 17:36:59,014 [DEBUG][       Thread-262706][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 17:36:59,014 [ INFO][       Thread-262706][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 17:36:59,023 [DEBUG][       Thread-262706][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 17:36:59,023 [DEBUG][       Thread-262706][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 17:36:59,023 [DEBUG][       Thread-262706][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 17:36:59,023 [DEBUG][       Thread-262706][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:36:59,023 [DEBUG][       Thread-262706][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:36:59,023 [DEBUG][       Thread-262706][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:36:59,023 [DEBUG][       Thread-262706][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:36:59,023 [DEBUG][       Thread-262706][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 17:36:59,023 [DEBUG][       Thread-262706][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 17:36:59,023 [DEBUG][       Thread-262706][   transport.py][1871] : client lang: <none>
2025-06-13 17:36:59,023 [DEBUG][       Thread-262706][   transport.py][1871] : server lang: <none>
2025-06-13 17:36:59,023 [DEBUG][       Thread-262706][   transport.py][1871] : kex follows: False
2025-06-13 17:36:59,023 [DEBUG][       Thread-262706][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 17:36:59,024 [DEBUG][       Thread-262706][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 17:36:59,024 [DEBUG][       Thread-262706][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 17:36:59,024 [DEBUG][       Thread-262706][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 17:36:59,024 [DEBUG][       Thread-262706][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 17:36:59,024 [DEBUG][       Thread-262706][   transport.py][1871] : Compression: none
2025-06-13 17:36:59,024 [DEBUG][       Thread-262706][   transport.py][1871] : === End of kex handshake ===
2025-06-13 17:36:59,085 [DEBUG][       Thread-262706][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 17:36:59,086 [DEBUG][       Thread-262706][   transport.py][1871] : Switch to new keys ...
2025-06-13 17:36:59,087 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 17:36:59,087 [DEBUG][       Thread-262706][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 17:36:59,088 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 17:36:59,142 [DEBUG][       Thread-262706][   transport.py][1871] : userauth is OK
2025-06-13 17:36:59,142 [DEBUG][       Thread-262706][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 17:36:59,142 [DEBUG][       Thread-262706][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 17:36:59,143 [DEBUG][       Thread-262706][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 17:36:59,143 [DEBUG][       Thread-262706][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 17:36:59,161 [ INFO][       Thread-262706][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 17:36:59,162 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 17:36:59,162 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 17:37:00,157 [DEBUG][       Thread-262706][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 17:37:00,157 [DEBUG][       Thread-262706][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 17:37:00,208 [DEBUG][       Thread-262706][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 17:37:00,208 [DEBUG][       Thread-262706][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 17:37:00,218 [DEBUG][       Thread-262706][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 17:37:00,227 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 17:37:00,227 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 17:37:00,236 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 17:37:00,245 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 17:37:00,246 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 17:37:00,246 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 17:37:00,254 [DEBUG][       Thread-262706][   transport.py][1871] : EOF in transport thread
2025-06-13 17:37:00,295 [DEBUG][Thread-262708 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:37:09,330 [DEBUG][Thread-262709 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:37:10,256 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 17:37:10,257 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 17:37:10,257 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 17:37:10,259 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 17:37:10,717 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 17, 36, 43), 16.02, 32.59, 0.0, 15.85, 12.22, 0, 0, 0, 2, 0, 0),)
2025-06-13 17:37:10,717 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 17:36:43
2025-06-13 17:37:10,799 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 17:37:10,804 [DEBUG][       Thread-262710][   transport.py][1871] : starting thread (client mode): 0x863cb160
2025-06-13 17:37:10,804 [DEBUG][       Thread-262710][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 17:37:10,824 [DEBUG][       Thread-262710][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 17:37:10,824 [ INFO][       Thread-262710][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 17:37:10,827 [DEBUG][       Thread-262710][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 17:37:10,827 [DEBUG][       Thread-262710][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 17:37:10,827 [DEBUG][       Thread-262710][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 17:37:10,827 [DEBUG][       Thread-262710][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:37:10,827 [DEBUG][       Thread-262710][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:37:10,827 [DEBUG][       Thread-262710][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:37:10,827 [DEBUG][       Thread-262710][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:37:10,827 [DEBUG][       Thread-262710][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 17:37:10,827 [DEBUG][       Thread-262710][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 17:37:10,827 [DEBUG][       Thread-262710][   transport.py][1871] : client lang: <none>
2025-06-13 17:37:10,827 [DEBUG][       Thread-262710][   transport.py][1871] : server lang: <none>
2025-06-13 17:37:10,827 [DEBUG][       Thread-262710][   transport.py][1871] : kex follows: False
2025-06-13 17:37:10,827 [DEBUG][       Thread-262710][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 17:37:10,827 [DEBUG][       Thread-262710][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 17:37:10,827 [DEBUG][       Thread-262710][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 17:37:10,827 [DEBUG][       Thread-262710][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 17:37:10,827 [DEBUG][       Thread-262710][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 17:37:10,828 [DEBUG][       Thread-262710][   transport.py][1871] : Compression: none
2025-06-13 17:37:10,828 [DEBUG][       Thread-262710][   transport.py][1871] : === End of kex handshake ===
2025-06-13 17:37:10,843 [DEBUG][       Thread-262710][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 17:37:10,843 [DEBUG][       Thread-262710][   transport.py][1871] : Switch to new keys ...
2025-06-13 17:37:10,843 [DEBUG][       Thread-262710][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 17:37:10,843 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 17:37:10,843 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 17:37:10,844 [DEBUG][       Thread-262710][   transport.py][1871] : userauth is OK
2025-06-13 17:37:10,868 [ INFO][       Thread-262710][   transport.py][1871] : Authentication (password) successful!
2025-06-13 17:37:10,868 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 17:37:11,089 [DEBUG][Thread-262712 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:37:11,428 [DEBUG][       Thread-262710][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 17:37:11,428 [DEBUG][       Thread-262710][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 17:37:11,469 [DEBUG][       Thread-262710][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 17:37:11,469 [DEBUG][       Thread-262710][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 17:37:11,472 [DEBUG][       Thread-262710][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 17:37:11,481 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 17:37:11,482 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 17:37:11,484 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 17:37:11,486 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 17:37:11,490 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 17:37:11,492 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 17:37:11,493 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 17:37:11,493 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 17:37:11,493 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.650628 -999.00  +11.90  12.95     38   -1.80 1 1 1 1 1   877    0 12.91 -50.33 ----- 16.4 12.9 53.4 15.8 13.2 -30.2 12.9 -30.4 12.9 -29.8 13.3 -29.4
2025-06-13 17:37:11,493 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 17:37:11,494 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 17:37:11,494 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.650628
2025-06-13 17:37:11,494 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 17:37:11,495 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 17:37:11,495 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 17:37:11,495 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 17:37:11,495 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 17:37:11,495 [DEBUG][       Thread-262710][   transport.py][1871] : EOF in transport thread
2025-06-13 17:37:11,495 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T17:36:43', tmtdew=16.02, humidity=32.59, cloud=0.0, wind=15.85, temperature=12.22, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T15:36:54.259', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 17:37:11,582 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 17:37:11,593 [DEBUG][       Thread-262714][   transport.py][1871] : starting thread (client mode): 0x86893fd0
2025-06-13 17:37:11,594 [DEBUG][       Thread-262714][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 17:37:11,609 [DEBUG][       Thread-262714][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 17:37:11,609 [ INFO][       Thread-262714][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 17:37:11,616 [DEBUG][       Thread-262714][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 17:37:11,616 [DEBUG][       Thread-262714][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 17:37:11,616 [DEBUG][       Thread-262714][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 17:37:11,616 [DEBUG][       Thread-262714][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:37:11,616 [DEBUG][       Thread-262714][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:37:11,616 [DEBUG][       Thread-262714][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:37:11,616 [DEBUG][       Thread-262714][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:37:11,616 [DEBUG][       Thread-262714][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 17:37:11,617 [DEBUG][       Thread-262714][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 17:37:11,617 [DEBUG][       Thread-262714][   transport.py][1871] : client lang: <none>
2025-06-13 17:37:11,617 [DEBUG][       Thread-262714][   transport.py][1871] : server lang: <none>
2025-06-13 17:37:11,617 [DEBUG][       Thread-262714][   transport.py][1871] : kex follows: False
2025-06-13 17:37:11,617 [DEBUG][       Thread-262714][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 17:37:11,617 [DEBUG][       Thread-262714][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 17:37:11,617 [DEBUG][       Thread-262714][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 17:37:11,617 [DEBUG][       Thread-262714][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 17:37:11,617 [DEBUG][       Thread-262714][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 17:37:11,617 [DEBUG][       Thread-262714][   transport.py][1871] : Compression: none
2025-06-13 17:37:11,617 [DEBUG][       Thread-262714][   transport.py][1871] : === End of kex handshake ===
2025-06-13 17:37:11,674 [DEBUG][       Thread-262714][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 17:37:11,674 [DEBUG][       Thread-262714][   transport.py][1871] : Switch to new keys ...
2025-06-13 17:37:11,675 [DEBUG][       Thread-262714][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 17:37:11,675 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 17:37:11,676 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 17:37:11,739 [DEBUG][       Thread-262714][   transport.py][1871] : userauth is OK
2025-06-13 17:37:11,739 [DEBUG][       Thread-262714][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 17:37:11,739 [DEBUG][       Thread-262714][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 17:37:11,739 [DEBUG][       Thread-262714][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 17:37:11,739 [DEBUG][       Thread-262714][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 17:37:11,764 [ INFO][       Thread-262714][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 17:37:11,764 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 17:37:11,765 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 17:37:12,208 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:37:12,210 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:37:12,762 [DEBUG][       Thread-262714][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 17:37:12,762 [DEBUG][       Thread-262714][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 17:37:12,811 [DEBUG][       Thread-262714][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 17:37:12,811 [DEBUG][       Thread-262714][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 17:37:12,820 [DEBUG][       Thread-262714][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 17:37:12,828 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 17:37:12,828 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 17:37:12,836 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 17:37:12,844 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 17:37:12,844 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 17:37:12,844 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 17:37:12,852 [DEBUG][       Thread-262714][   transport.py][1871] : EOF in transport thread
2025-06-13 17:37:18,350 [DEBUG][Thread-262716 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:37:22,854 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 17:37:22,854 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 17:37:22,855 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 17:37:22,858 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 17:37:23,306 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 17, 37, 14), 15.99, 32.58, 0.0, 14.8, 12.17, 0, 0, 0, 2, 0, 0),)
2025-06-13 17:37:23,306 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 17:37:14
2025-06-13 17:37:23,387 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 17:37:23,391 [DEBUG][       Thread-262717][   transport.py][1871] : starting thread (client mode): 0x86368220
2025-06-13 17:37:23,391 [DEBUG][       Thread-262717][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 17:37:23,411 [DEBUG][       Thread-262717][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 17:37:23,411 [ INFO][       Thread-262717][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 17:37:23,414 [DEBUG][       Thread-262717][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 17:37:23,414 [DEBUG][       Thread-262717][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 17:37:23,414 [DEBUG][       Thread-262717][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 17:37:23,414 [DEBUG][       Thread-262717][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:37:23,414 [DEBUG][       Thread-262717][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:37:23,414 [DEBUG][       Thread-262717][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:37:23,414 [DEBUG][       Thread-262717][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:37:23,414 [DEBUG][       Thread-262717][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 17:37:23,414 [DEBUG][       Thread-262717][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 17:37:23,414 [DEBUG][       Thread-262717][   transport.py][1871] : client lang: <none>
2025-06-13 17:37:23,414 [DEBUG][       Thread-262717][   transport.py][1871] : server lang: <none>
2025-06-13 17:37:23,414 [DEBUG][       Thread-262717][   transport.py][1871] : kex follows: False
2025-06-13 17:37:23,414 [DEBUG][       Thread-262717][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 17:37:23,414 [DEBUG][       Thread-262717][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 17:37:23,414 [DEBUG][       Thread-262717][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 17:37:23,414 [DEBUG][       Thread-262717][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 17:37:23,415 [DEBUG][       Thread-262717][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 17:37:23,415 [DEBUG][       Thread-262717][   transport.py][1871] : Compression: none
2025-06-13 17:37:23,415 [DEBUG][       Thread-262717][   transport.py][1871] : === End of kex handshake ===
2025-06-13 17:37:23,431 [DEBUG][       Thread-262717][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 17:37:23,432 [DEBUG][       Thread-262717][   transport.py][1871] : Switch to new keys ...
2025-06-13 17:37:23,432 [DEBUG][       Thread-262717][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 17:37:23,433 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 17:37:23,433 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 17:37:23,434 [DEBUG][       Thread-262717][   transport.py][1871] : userauth is OK
2025-06-13 17:37:23,447 [ INFO][       Thread-262717][   transport.py][1871] : Authentication (password) successful!
2025-06-13 17:37:23,448 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 17:37:24,065 [DEBUG][       Thread-262717][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 17:37:24,065 [DEBUG][       Thread-262717][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 17:37:24,109 [DEBUG][       Thread-262717][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 17:37:24,109 [DEBUG][       Thread-262717][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 17:37:24,112 [DEBUG][       Thread-262717][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 17:37:24,122 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 17:37:24,122 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 17:37:24,124 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 17:37:24,126 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 17:37:24,132 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 17:37:24,133 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 17:37:24,134 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 17:37:24,134 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 17:37:24,134 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.650628 -999.00  +11.90  12.95     38   -1.80 1 1 1 1 1   877    0 12.91 -50.33 ----- 16.4 12.9 53.4 15.8 13.2 -30.2 12.9 -30.4 12.9 -29.8 13.3 -29.4
2025-06-13 17:37:24,135 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 17:37:24,135 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 17:37:24,135 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.650628
2025-06-13 17:37:24,135 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 17:37:24,136 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 17:37:24,136 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 17:37:24,136 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 17:37:24,136 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 17:37:24,136 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T17:37:14', tmtdew=15.99, humidity=32.58, cloud=0.0, wind=14.8, temperature=12.17, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T15:36:54.259', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 17:37:24,136 [DEBUG][       Thread-262717][   transport.py][1871] : EOF in transport thread
2025-06-13 17:37:24,220 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 17:37:24,230 [DEBUG][       Thread-262720][   transport.py][1871] : starting thread (client mode): 0x86369fc0
2025-06-13 17:37:24,230 [DEBUG][       Thread-262720][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 17:37:24,245 [DEBUG][       Thread-262720][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 17:37:24,245 [ INFO][       Thread-262720][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 17:37:24,253 [DEBUG][       Thread-262720][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 17:37:24,253 [DEBUG][       Thread-262720][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 17:37:24,253 [DEBUG][       Thread-262720][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 17:37:24,253 [DEBUG][       Thread-262720][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:37:24,253 [DEBUG][       Thread-262720][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:37:24,253 [DEBUG][       Thread-262720][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:37:24,253 [DEBUG][       Thread-262720][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:37:24,253 [DEBUG][       Thread-262720][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 17:37:24,253 [DEBUG][       Thread-262720][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 17:37:24,253 [DEBUG][       Thread-262720][   transport.py][1871] : client lang: <none>
2025-06-13 17:37:24,254 [DEBUG][       Thread-262720][   transport.py][1871] : server lang: <none>
2025-06-13 17:37:24,254 [DEBUG][       Thread-262720][   transport.py][1871] : kex follows: False
2025-06-13 17:37:24,254 [DEBUG][       Thread-262720][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 17:37:24,254 [DEBUG][       Thread-262720][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 17:37:24,254 [DEBUG][       Thread-262720][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 17:37:24,254 [DEBUG][       Thread-262720][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 17:37:24,254 [DEBUG][       Thread-262720][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 17:37:24,254 [DEBUG][       Thread-262720][   transport.py][1871] : Compression: none
2025-06-13 17:37:24,254 [DEBUG][       Thread-262720][   transport.py][1871] : === End of kex handshake ===
2025-06-13 17:37:24,270 [DEBUG][       Thread-262720][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 17:37:24,271 [DEBUG][       Thread-262720][   transport.py][1871] : Switch to new keys ...
2025-06-13 17:37:24,271 [DEBUG][       Thread-262720][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 17:37:24,272 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 17:37:24,272 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 17:37:24,326 [DEBUG][       Thread-262720][   transport.py][1871] : userauth is OK
2025-06-13 17:37:24,326 [DEBUG][       Thread-262720][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 17:37:24,326 [DEBUG][       Thread-262720][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 17:37:24,326 [DEBUG][       Thread-262720][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 17:37:24,327 [DEBUG][       Thread-262720][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 17:37:24,344 [ INFO][       Thread-262720][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 17:37:24,345 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 17:37:24,345 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 17:37:25,337 [DEBUG][       Thread-262720][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 17:37:25,338 [DEBUG][       Thread-262720][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 17:37:25,390 [DEBUG][       Thread-262720][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 17:37:25,390 [DEBUG][       Thread-262720][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 17:37:25,399 [DEBUG][       Thread-262720][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 17:37:25,409 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 17:37:25,409 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 17:37:25,418 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 17:37:25,428 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 17:37:25,428 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 17:37:25,429 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 17:37:25,440 [DEBUG][       Thread-262720][   transport.py][1871] : EOF in transport thread
2025-06-13 17:37:26,784 [DEBUG][Thread-262722 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:37:27,370 [DEBUG][Thread-262723 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:37:35,436 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 17:37:35,436 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 17:37:35,436 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 17:37:35,439 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 17:37:35,889 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 17, 37, 14), 15.99, 32.58, 0.0, 14.8, 12.17, 0, 0, 0, 2, 0, 0),)
2025-06-13 17:37:35,889 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 17:37:14
2025-06-13 17:37:35,970 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 17:37:35,976 [DEBUG][       Thread-262724][   transport.py][1871] : starting thread (client mode): 0x86368910
2025-06-13 17:37:35,979 [DEBUG][       Thread-262724][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 17:37:35,998 [DEBUG][       Thread-262724][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 17:37:35,998 [ INFO][       Thread-262724][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 17:37:36,001 [DEBUG][       Thread-262724][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 17:37:36,001 [DEBUG][       Thread-262724][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 17:37:36,001 [DEBUG][       Thread-262724][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 17:37:36,001 [DEBUG][       Thread-262724][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:37:36,001 [DEBUG][       Thread-262724][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:37:36,001 [DEBUG][       Thread-262724][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:37:36,001 [DEBUG][       Thread-262724][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:37:36,001 [DEBUG][       Thread-262724][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 17:37:36,001 [DEBUG][       Thread-262724][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 17:37:36,001 [DEBUG][       Thread-262724][   transport.py][1871] : client lang: <none>
2025-06-13 17:37:36,001 [DEBUG][       Thread-262724][   transport.py][1871] : server lang: <none>
2025-06-13 17:37:36,001 [DEBUG][       Thread-262724][   transport.py][1871] : kex follows: False
2025-06-13 17:37:36,001 [DEBUG][       Thread-262724][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 17:37:36,001 [DEBUG][       Thread-262724][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 17:37:36,001 [DEBUG][       Thread-262724][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 17:37:36,002 [DEBUG][       Thread-262724][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 17:37:36,002 [DEBUG][       Thread-262724][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 17:37:36,002 [DEBUG][       Thread-262724][   transport.py][1871] : Compression: none
2025-06-13 17:37:36,002 [DEBUG][       Thread-262724][   transport.py][1871] : === End of kex handshake ===
2025-06-13 17:37:36,018 [DEBUG][       Thread-262724][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 17:37:36,018 [DEBUG][       Thread-262724][   transport.py][1871] : Switch to new keys ...
2025-06-13 17:37:36,019 [DEBUG][       Thread-262724][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 17:37:36,019 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 17:37:36,019 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 17:37:36,063 [DEBUG][       Thread-262724][   transport.py][1871] : userauth is OK
2025-06-13 17:37:36,087 [ INFO][       Thread-262724][   transport.py][1871] : Authentication (password) successful!
2025-06-13 17:37:36,088 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 17:37:36,404 [DEBUG][Thread-262726 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:37:36,764 [DEBUG][       Thread-262724][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 17:37:36,764 [DEBUG][       Thread-262724][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 17:37:36,805 [DEBUG][       Thread-262724][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 17:37:36,805 [DEBUG][       Thread-262724][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 17:37:36,807 [DEBUG][       Thread-262724][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 17:37:36,819 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 17:37:36,819 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 17:37:36,821 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 17:37:36,822 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 17:37:36,836 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 17:37:36,837 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 17:37:36,837 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 17:37:36,838 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 17:37:36,838 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.650628 -999.00  +11.90  12.95     38   -1.80 1 1 1 1 1   877    0 12.91 -50.33 ----- 16.4 12.9 53.4 15.8 13.2 -30.2 12.9 -30.4 12.9 -29.8 13.3 -29.4
2025-06-13 17:37:36,838 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 17:37:36,838 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 17:37:36,838 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.650628
2025-06-13 17:37:36,839 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 17:37:36,839 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 17:37:36,839 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 17:37:36,839 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 17:37:36,839 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 17:37:36,840 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T17:37:14', tmtdew=15.99, humidity=32.58, cloud=0.0, wind=14.8, temperature=12.17, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T15:36:54.259', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 17:37:36,841 [DEBUG][       Thread-262724][   transport.py][1871] : EOF in transport thread
2025-06-13 17:37:36,924 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 17:37:36,941 [DEBUG][       Thread-262728][   transport.py][1871] : starting thread (client mode): 0x867b7010
2025-06-13 17:37:36,941 [DEBUG][       Thread-262728][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 17:37:36,958 [DEBUG][       Thread-262728][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 17:37:36,958 [ INFO][       Thread-262728][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 17:37:36,965 [DEBUG][       Thread-262728][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 17:37:36,965 [DEBUG][       Thread-262728][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 17:37:36,965 [DEBUG][       Thread-262728][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 17:37:36,965 [DEBUG][       Thread-262728][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:37:36,966 [DEBUG][       Thread-262728][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:37:36,966 [DEBUG][       Thread-262728][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:37:36,966 [DEBUG][       Thread-262728][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:37:36,966 [DEBUG][       Thread-262728][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 17:37:36,966 [DEBUG][       Thread-262728][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 17:37:36,966 [DEBUG][       Thread-262728][   transport.py][1871] : client lang: <none>
2025-06-13 17:37:36,966 [DEBUG][       Thread-262728][   transport.py][1871] : server lang: <none>
2025-06-13 17:37:36,966 [DEBUG][       Thread-262728][   transport.py][1871] : kex follows: False
2025-06-13 17:37:36,966 [DEBUG][       Thread-262728][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 17:37:36,966 [DEBUG][       Thread-262728][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 17:37:36,966 [DEBUG][       Thread-262728][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 17:37:36,966 [DEBUG][       Thread-262728][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 17:37:36,966 [DEBUG][       Thread-262728][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 17:37:36,966 [DEBUG][       Thread-262728][   transport.py][1871] : Compression: none
2025-06-13 17:37:36,966 [DEBUG][       Thread-262728][   transport.py][1871] : === End of kex handshake ===
2025-06-13 17:37:37,025 [DEBUG][       Thread-262728][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 17:37:37,026 [DEBUG][       Thread-262728][   transport.py][1871] : Switch to new keys ...
2025-06-13 17:37:37,026 [DEBUG][       Thread-262728][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 17:37:37,027 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 17:37:37,027 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 17:37:37,082 [DEBUG][       Thread-262728][   transport.py][1871] : userauth is OK
2025-06-13 17:37:37,082 [DEBUG][       Thread-262728][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 17:37:37,082 [DEBUG][       Thread-262728][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 17:37:37,082 [DEBUG][       Thread-262728][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 17:37:37,082 [DEBUG][       Thread-262728][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 17:37:37,102 [ INFO][       Thread-262728][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 17:37:37,103 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 17:37:37,103 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 17:37:38,139 [DEBUG][       Thread-262728][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 17:37:38,139 [DEBUG][       Thread-262728][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 17:37:38,187 [DEBUG][       Thread-262728][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 17:37:38,187 [DEBUG][       Thread-262728][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 17:37:38,195 [DEBUG][       Thread-262728][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 17:37:38,203 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 17:37:38,203 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 17:37:38,211 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 17:37:38,222 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 17:37:38,222 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 17:37:38,222 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 17:37:38,233 [DEBUG][       Thread-262728][   transport.py][1871] : EOF in transport thread
2025-06-13 17:37:45,432 [DEBUG][Thread-262730 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:37:48,233 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 17:37:48,233 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 17:37:48,233 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 17:37:48,234 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 17:37:48,717 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 17, 37, 14), 15.99, 32.58, 0.0, 14.8, 12.17, 0, 0, 0, 2, 0, 0),)
2025-06-13 17:37:48,717 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 17:37:14
2025-06-13 17:37:48,798 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 17:37:48,805 [DEBUG][       Thread-262731][   transport.py][1871] : starting thread (client mode): 0x8636be80
2025-06-13 17:37:48,805 [DEBUG][       Thread-262731][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 17:37:48,826 [DEBUG][       Thread-262731][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 17:37:48,826 [ INFO][       Thread-262731][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 17:37:48,829 [DEBUG][       Thread-262731][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 17:37:48,829 [DEBUG][       Thread-262731][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 17:37:48,829 [DEBUG][       Thread-262731][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 17:37:48,829 [DEBUG][       Thread-262731][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:37:48,829 [DEBUG][       Thread-262731][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:37:48,830 [DEBUG][       Thread-262731][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:37:48,830 [DEBUG][       Thread-262731][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:37:48,830 [DEBUG][       Thread-262731][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 17:37:48,830 [DEBUG][       Thread-262731][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 17:37:48,830 [DEBUG][       Thread-262731][   transport.py][1871] : client lang: <none>
2025-06-13 17:37:48,830 [DEBUG][       Thread-262731][   transport.py][1871] : server lang: <none>
2025-06-13 17:37:48,830 [DEBUG][       Thread-262731][   transport.py][1871] : kex follows: False
2025-06-13 17:37:48,830 [DEBUG][       Thread-262731][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 17:37:48,830 [DEBUG][       Thread-262731][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 17:37:48,830 [DEBUG][       Thread-262731][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 17:37:48,830 [DEBUG][       Thread-262731][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 17:37:48,830 [DEBUG][       Thread-262731][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 17:37:48,830 [DEBUG][       Thread-262731][   transport.py][1871] : Compression: none
2025-06-13 17:37:48,830 [DEBUG][       Thread-262731][   transport.py][1871] : === End of kex handshake ===
2025-06-13 17:37:48,847 [DEBUG][       Thread-262731][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 17:37:48,848 [DEBUG][       Thread-262731][   transport.py][1871] : Switch to new keys ...
2025-06-13 17:37:48,848 [DEBUG][       Thread-262731][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 17:37:48,849 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 17:37:48,849 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 17:37:48,850 [DEBUG][       Thread-262731][   transport.py][1871] : userauth is OK
2025-06-13 17:37:48,863 [ INFO][       Thread-262731][   transport.py][1871] : Authentication (password) successful!
2025-06-13 17:37:48,863 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 17:37:49,483 [DEBUG][       Thread-262731][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 17:37:49,484 [DEBUG][       Thread-262731][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 17:37:49,525 [DEBUG][       Thread-262731][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 17:37:49,525 [DEBUG][       Thread-262731][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 17:37:49,529 [DEBUG][       Thread-262731][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 17:37:49,540 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 17:37:49,541 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 17:37:49,543 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 17:37:49,545 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 17:37:49,552 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 17:37:49,554 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 17:37:49,555 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 17:37:49,555 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 17:37:49,555 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.650975 -999.00  +11.90  15.85     37   -2.00 1 1 1 1 1   876    0 12.55 -52.74 ----- 18.1 15.8 43.2 17.9 13.1 -30.2 12.9 -30.5 12.8 -29.8 13.3 -29.3
2025-06-13 17:37:49,556 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 17:37:49,556 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 17:37:49,556 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.650975
2025-06-13 17:37:49,556 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 17:37:49,557 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 17:37:49,557 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 17:37:49,557 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 17:37:49,557 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 17:37:49,557 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T17:37:14', tmtdew=15.99, humidity=32.58, cloud=0.0, wind=14.8, temperature=12.17, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T15:37:24.240', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 17:37:49,558 [DEBUG][       Thread-262731][   transport.py][1871] : EOF in transport thread
2025-06-13 17:37:49,641 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 17:37:49,654 [DEBUG][       Thread-262734][   transport.py][1871] : starting thread (client mode): 0x86893df0
2025-06-13 17:37:49,654 [DEBUG][       Thread-262734][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 17:37:49,673 [DEBUG][       Thread-262734][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 17:37:49,673 [ INFO][       Thread-262734][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 17:37:49,687 [DEBUG][       Thread-262734][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 17:37:49,687 [DEBUG][       Thread-262734][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 17:37:49,687 [DEBUG][       Thread-262734][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 17:37:49,687 [DEBUG][       Thread-262734][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:37:49,688 [DEBUG][       Thread-262734][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:37:49,688 [DEBUG][       Thread-262734][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:37:49,688 [DEBUG][       Thread-262734][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:37:49,688 [DEBUG][       Thread-262734][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 17:37:49,688 [DEBUG][       Thread-262734][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 17:37:49,688 [DEBUG][       Thread-262734][   transport.py][1871] : client lang: <none>
2025-06-13 17:37:49,688 [DEBUG][       Thread-262734][   transport.py][1871] : server lang: <none>
2025-06-13 17:37:49,688 [DEBUG][       Thread-262734][   transport.py][1871] : kex follows: False
2025-06-13 17:37:49,688 [DEBUG][       Thread-262734][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 17:37:49,688 [DEBUG][       Thread-262734][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 17:37:49,688 [DEBUG][       Thread-262734][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 17:37:49,688 [DEBUG][       Thread-262734][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 17:37:49,688 [DEBUG][       Thread-262734][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 17:37:49,688 [DEBUG][       Thread-262734][   transport.py][1871] : Compression: none
2025-06-13 17:37:49,689 [DEBUG][       Thread-262734][   transport.py][1871] : === End of kex handshake ===
2025-06-13 17:37:49,754 [DEBUG][       Thread-262734][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 17:37:49,755 [DEBUG][       Thread-262734][   transport.py][1871] : Switch to new keys ...
2025-06-13 17:37:49,756 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 17:37:49,756 [DEBUG][       Thread-262734][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 17:37:49,757 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 17:37:49,812 [DEBUG][       Thread-262734][   transport.py][1871] : userauth is OK
2025-06-13 17:37:49,812 [DEBUG][       Thread-262734][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 17:37:49,813 [DEBUG][       Thread-262734][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 17:37:49,813 [DEBUG][       Thread-262734][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 17:37:49,813 [DEBUG][       Thread-262734][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 17:37:49,831 [ INFO][       Thread-262734][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 17:37:49,832 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 17:37:49,832 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 17:37:50,815 [DEBUG][       Thread-262734][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 17:37:50,815 [DEBUG][       Thread-262734][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 17:37:50,863 [DEBUG][       Thread-262734][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 17:37:50,863 [DEBUG][       Thread-262734][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 17:37:50,872 [DEBUG][       Thread-262734][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 17:37:50,879 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 17:37:50,880 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 17:37:50,887 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 17:37:50,896 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 17:37:50,896 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 17:37:50,896 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 17:37:50,903 [DEBUG][       Thread-262734][   transport.py][1871] : EOF in transport thread
2025-06-13 17:37:54,449 [DEBUG][Thread-262736 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:37:57,868 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:37:57,869 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:38:00,906 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 17:38:00,906 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 17:38:00,907 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 17:38:00,909 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 17:38:01,368 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 17, 37, 46), 15.93, 32.7, 0.0, 13.87, 12.17, 0, 0, 0, 2, 0, 0),)
2025-06-13 17:38:01,373 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 17:37:46
2025-06-13 17:38:01,455 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 17:38:01,459 [DEBUG][       Thread-262737][   transport.py][1871] : starting thread (client mode): 0x8636a8f0
2025-06-13 17:38:01,459 [DEBUG][       Thread-262737][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 17:38:01,480 [DEBUG][       Thread-262737][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 17:38:01,480 [ INFO][       Thread-262737][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 17:38:01,484 [DEBUG][       Thread-262737][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 17:38:01,484 [DEBUG][       Thread-262737][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 17:38:01,484 [DEBUG][       Thread-262737][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 17:38:01,484 [DEBUG][       Thread-262737][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:38:01,484 [DEBUG][       Thread-262737][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:38:01,484 [DEBUG][       Thread-262737][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:38:01,484 [DEBUG][       Thread-262737][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:38:01,484 [DEBUG][       Thread-262737][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 17:38:01,484 [DEBUG][       Thread-262737][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 17:38:01,484 [DEBUG][       Thread-262737][   transport.py][1871] : client lang: <none>
2025-06-13 17:38:01,484 [DEBUG][       Thread-262737][   transport.py][1871] : server lang: <none>
2025-06-13 17:38:01,484 [DEBUG][       Thread-262737][   transport.py][1871] : kex follows: False
2025-06-13 17:38:01,484 [DEBUG][       Thread-262737][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 17:38:01,484 [DEBUG][       Thread-262737][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 17:38:01,484 [DEBUG][       Thread-262737][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 17:38:01,484 [DEBUG][       Thread-262737][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 17:38:01,485 [DEBUG][       Thread-262737][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 17:38:01,485 [DEBUG][       Thread-262737][   transport.py][1871] : Compression: none
2025-06-13 17:38:01,485 [DEBUG][       Thread-262737][   transport.py][1871] : === End of kex handshake ===
2025-06-13 17:38:01,503 [DEBUG][       Thread-262737][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 17:38:01,503 [DEBUG][       Thread-262737][   transport.py][1871] : Switch to new keys ...
2025-06-13 17:38:01,503 [DEBUG][       Thread-262737][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 17:38:01,504 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 17:38:01,504 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 17:38:01,505 [DEBUG][       Thread-262737][   transport.py][1871] : userauth is OK
2025-06-13 17:38:01,518 [ INFO][       Thread-262737][   transport.py][1871] : Authentication (password) successful!
2025-06-13 17:38:01,518 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 17:38:02,157 [DEBUG][       Thread-262737][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 17:38:02,158 [DEBUG][       Thread-262737][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 17:38:02,201 [DEBUG][       Thread-262737][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 17:38:02,201 [DEBUG][       Thread-262737][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 17:38:02,204 [DEBUG][       Thread-262737][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 17:38:02,216 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 17:38:02,217 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 17:38:02,219 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 17:38:02,221 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 17:38:02,226 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 17:38:02,228 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 17:38:02,228 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 17:38:02,229 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 17:38:02,229 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.650975 -999.00  +11.90  15.85     37   -2.00 1 1 1 1 1   876    0 12.55 -52.74 ----- 18.1 15.8 43.2 17.9 13.1 -30.2 12.9 -30.5 12.8 -29.8 13.3 -29.3
2025-06-13 17:38:02,229 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 17:38:02,229 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 17:38:02,230 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.650975
2025-06-13 17:38:02,230 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 17:38:02,231 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 17:38:02,231 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 17:38:02,231 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 17:38:02,231 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 17:38:02,231 [DEBUG][       Thread-262737][   transport.py][1871] : EOF in transport thread
2025-06-13 17:38:02,231 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T17:37:46', tmtdew=15.93, humidity=32.7, cloud=0.0, wind=13.87, temperature=12.17, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T15:37:24.240', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 17:38:02,315 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 17:38:02,324 [DEBUG][       Thread-262740][   transport.py][1871] : starting thread (client mode): 0x867b74c0
2025-06-13 17:38:02,324 [DEBUG][       Thread-262740][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 17:38:02,339 [DEBUG][       Thread-262740][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 17:38:02,339 [ INFO][       Thread-262740][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 17:38:02,347 [DEBUG][       Thread-262740][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 17:38:02,347 [DEBUG][       Thread-262740][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 17:38:02,347 [DEBUG][       Thread-262740][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 17:38:02,347 [DEBUG][       Thread-262740][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:38:02,347 [DEBUG][       Thread-262740][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:38:02,347 [DEBUG][       Thread-262740][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:38:02,347 [DEBUG][       Thread-262740][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:38:02,347 [DEBUG][       Thread-262740][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 17:38:02,347 [DEBUG][       Thread-262740][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 17:38:02,347 [DEBUG][       Thread-262740][   transport.py][1871] : client lang: <none>
2025-06-13 17:38:02,348 [DEBUG][       Thread-262740][   transport.py][1871] : server lang: <none>
2025-06-13 17:38:02,348 [DEBUG][       Thread-262740][   transport.py][1871] : kex follows: False
2025-06-13 17:38:02,348 [DEBUG][       Thread-262740][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 17:38:02,348 [DEBUG][       Thread-262740][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 17:38:02,348 [DEBUG][       Thread-262740][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 17:38:02,348 [DEBUG][       Thread-262740][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 17:38:02,348 [DEBUG][       Thread-262740][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 17:38:02,348 [DEBUG][       Thread-262740][   transport.py][1871] : Compression: none
2025-06-13 17:38:02,348 [DEBUG][       Thread-262740][   transport.py][1871] : === End of kex handshake ===
2025-06-13 17:38:02,406 [DEBUG][       Thread-262740][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 17:38:02,407 [DEBUG][       Thread-262740][   transport.py][1871] : Switch to new keys ...
2025-06-13 17:38:02,408 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 17:38:02,408 [DEBUG][       Thread-262740][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 17:38:02,409 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 17:38:02,463 [DEBUG][       Thread-262740][   transport.py][1871] : userauth is OK
2025-06-13 17:38:02,463 [DEBUG][       Thread-262740][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 17:38:02,463 [DEBUG][       Thread-262740][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 17:38:02,464 [DEBUG][       Thread-262740][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 17:38:02,464 [DEBUG][       Thread-262740][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 17:38:02,482 [ INFO][       Thread-262740][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 17:38:02,482 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 17:38:02,483 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 17:38:03,470 [DEBUG][Thread-262742 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:38:03,472 [DEBUG][       Thread-262740][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 17:38:03,472 [DEBUG][       Thread-262740][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 17:38:03,521 [DEBUG][       Thread-262740][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 17:38:03,521 [DEBUG][       Thread-262740][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 17:38:03,530 [DEBUG][       Thread-262740][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 17:38:03,539 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 17:38:03,540 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 17:38:03,549 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 17:38:03,558 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 17:38:03,558 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 17:38:03,558 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 17:38:03,566 [DEBUG][       Thread-262740][   transport.py][1871] : EOF in transport thread
2025-06-13 17:38:12,301 [DEBUG][Thread-262743 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:38:12,504 [DEBUG][Thread-262744 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:38:13,410 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:38:13,412 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:38:13,569 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 17:38:13,569 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 17:38:13,569 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 17:38:13,572 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 17:38:14,034 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 17, 37, 46), 15.93, 32.7, 0.0, 13.87, 12.17, 0, 0, 0, 2, 0, 0),)
2025-06-13 17:38:14,034 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 17:37:46
2025-06-13 17:38:14,116 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 17:38:14,122 [DEBUG][       Thread-262745][   transport.py][1871] : starting thread (client mode): 0x867feb60
2025-06-13 17:38:14,122 [DEBUG][       Thread-262745][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 17:38:14,139 [DEBUG][       Thread-262745][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 17:38:14,139 [ INFO][       Thread-262745][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 17:38:14,141 [DEBUG][       Thread-262745][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 17:38:14,141 [DEBUG][       Thread-262745][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 17:38:14,141 [DEBUG][       Thread-262745][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 17:38:14,141 [DEBUG][       Thread-262745][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:38:14,141 [DEBUG][       Thread-262745][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:38:14,141 [DEBUG][       Thread-262745][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:38:14,141 [DEBUG][       Thread-262745][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:38:14,141 [DEBUG][       Thread-262745][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 17:38:14,141 [DEBUG][       Thread-262745][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 17:38:14,141 [DEBUG][       Thread-262745][   transport.py][1871] : client lang: <none>
2025-06-13 17:38:14,141 [DEBUG][       Thread-262745][   transport.py][1871] : server lang: <none>
2025-06-13 17:38:14,141 [DEBUG][       Thread-262745][   transport.py][1871] : kex follows: False
2025-06-13 17:38:14,141 [DEBUG][       Thread-262745][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 17:38:14,141 [DEBUG][       Thread-262745][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 17:38:14,141 [DEBUG][       Thread-262745][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 17:38:14,141 [DEBUG][       Thread-262745][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 17:38:14,141 [DEBUG][       Thread-262745][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 17:38:14,141 [DEBUG][       Thread-262745][   transport.py][1871] : Compression: none
2025-06-13 17:38:14,141 [DEBUG][       Thread-262745][   transport.py][1871] : === End of kex handshake ===
2025-06-13 17:38:14,152 [DEBUG][       Thread-262745][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 17:38:14,153 [DEBUG][       Thread-262745][   transport.py][1871] : Switch to new keys ...
2025-06-13 17:38:14,153 [DEBUG][       Thread-262745][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 17:38:14,153 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 17:38:14,154 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 17:38:14,154 [DEBUG][       Thread-262745][   transport.py][1871] : userauth is OK
2025-06-13 17:38:14,167 [ INFO][       Thread-262745][   transport.py][1871] : Authentication (password) successful!
2025-06-13 17:38:14,168 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 17:38:14,761 [DEBUG][       Thread-262745][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 17:38:14,762 [DEBUG][       Thread-262745][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 17:38:14,805 [DEBUG][       Thread-262745][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 17:38:14,805 [DEBUG][       Thread-262745][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 17:38:14,811 [DEBUG][       Thread-262745][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 17:38:14,823 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 17:38:14,824 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 17:38:14,825 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 17:38:14,827 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 17:38:14,832 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 17:38:14,834 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 17:38:14,834 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 17:38:14,835 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 17:38:14,835 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.651323 -999.00  +11.90  14.76     37   -2.00 1 1 1 1 1   875    0 12.68 -48.28 ----- 17.9 14.8 49.6 18.4 13.1 -30.3 12.9 -30.5 12.8 -29.9 13.2 -29.4
2025-06-13 17:38:14,835 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 17:38:14,836 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 17:38:14,836 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.651323
2025-06-13 17:38:14,836 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 17:38:14,837 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 17:38:14,837 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 17:38:14,837 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 17:38:14,837 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 17:38:14,837 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T17:37:46', tmtdew=15.93, humidity=32.7, cloud=0.0, wind=13.87, temperature=12.17, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T15:37:54.307', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 17:38:14,838 [DEBUG][       Thread-262745][   transport.py][1871] : EOF in transport thread
2025-06-13 17:38:14,920 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 17:38:14,931 [DEBUG][       Thread-262748][   transport.py][1871] : starting thread (client mode): 0x863ee890
2025-06-13 17:38:14,931 [DEBUG][       Thread-262748][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 17:38:14,948 [DEBUG][       Thread-262748][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 17:38:14,948 [ INFO][       Thread-262748][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 17:38:14,955 [DEBUG][       Thread-262748][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 17:38:14,955 [DEBUG][       Thread-262748][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 17:38:14,955 [DEBUG][       Thread-262748][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 17:38:14,955 [DEBUG][       Thread-262748][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:38:14,955 [DEBUG][       Thread-262748][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:38:14,956 [DEBUG][       Thread-262748][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:38:14,956 [DEBUG][       Thread-262748][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:38:14,956 [DEBUG][       Thread-262748][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 17:38:14,956 [DEBUG][       Thread-262748][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 17:38:14,956 [DEBUG][       Thread-262748][   transport.py][1871] : client lang: <none>
2025-06-13 17:38:14,956 [DEBUG][       Thread-262748][   transport.py][1871] : server lang: <none>
2025-06-13 17:38:14,956 [DEBUG][       Thread-262748][   transport.py][1871] : kex follows: False
2025-06-13 17:38:14,956 [DEBUG][       Thread-262748][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 17:38:14,956 [DEBUG][       Thread-262748][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 17:38:14,956 [DEBUG][       Thread-262748][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 17:38:14,956 [DEBUG][       Thread-262748][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 17:38:14,956 [DEBUG][       Thread-262748][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 17:38:14,956 [DEBUG][       Thread-262748][   transport.py][1871] : Compression: none
2025-06-13 17:38:14,956 [DEBUG][       Thread-262748][   transport.py][1871] : === End of kex handshake ===
2025-06-13 17:38:15,014 [DEBUG][       Thread-262748][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 17:38:15,015 [DEBUG][       Thread-262748][   transport.py][1871] : Switch to new keys ...
2025-06-13 17:38:15,015 [DEBUG][       Thread-262748][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 17:38:15,015 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 17:38:15,016 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 17:38:15,070 [DEBUG][       Thread-262748][   transport.py][1871] : userauth is OK
2025-06-13 17:38:15,070 [DEBUG][       Thread-262748][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 17:38:15,070 [DEBUG][       Thread-262748][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 17:38:15,071 [DEBUG][       Thread-262748][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 17:38:15,071 [DEBUG][       Thread-262748][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 17:38:15,089 [ INFO][       Thread-262748][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 17:38:15,089 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 17:38:15,090 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 17:38:16,059 [DEBUG][       Thread-262748][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 17:38:16,059 [DEBUG][       Thread-262748][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 17:38:16,108 [DEBUG][       Thread-262748][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 17:38:16,108 [DEBUG][       Thread-262748][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 17:38:16,117 [DEBUG][       Thread-262748][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 17:38:16,126 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 17:38:16,126 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 17:38:16,138 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 17:38:16,149 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 17:38:16,149 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 17:38:16,150 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 17:38:16,164 [DEBUG][       Thread-262748][   transport.py][1871] : EOF in transport thread
2025-06-13 17:38:21,524 [DEBUG][Thread-262750 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:38:26,160 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 17:38:26,160 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 17:38:26,161 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 17:38:26,163 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 17:38:26,619 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 17, 38, 18), 15.96, 32.64, 0.0, 15.16, 12.14, 0, 0, 0, 2, 0, 0),)
2025-06-13 17:38:26,620 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 17:38:18
2025-06-13 17:38:26,701 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 17:38:26,705 [DEBUG][       Thread-262751][   transport.py][1871] : starting thread (client mode): 0x867fdd80
2025-06-13 17:38:26,705 [DEBUG][       Thread-262751][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 17:38:26,726 [DEBUG][       Thread-262751][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 17:38:26,726 [ INFO][       Thread-262751][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 17:38:26,729 [DEBUG][       Thread-262751][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 17:38:26,729 [DEBUG][       Thread-262751][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 17:38:26,729 [DEBUG][       Thread-262751][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 17:38:26,729 [DEBUG][       Thread-262751][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:38:26,729 [DEBUG][       Thread-262751][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:38:26,729 [DEBUG][       Thread-262751][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:38:26,729 [DEBUG][       Thread-262751][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:38:26,729 [DEBUG][       Thread-262751][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 17:38:26,729 [DEBUG][       Thread-262751][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 17:38:26,729 [DEBUG][       Thread-262751][   transport.py][1871] : client lang: <none>
2025-06-13 17:38:26,729 [DEBUG][       Thread-262751][   transport.py][1871] : server lang: <none>
2025-06-13 17:38:26,729 [DEBUG][       Thread-262751][   transport.py][1871] : kex follows: False
2025-06-13 17:38:26,729 [DEBUG][       Thread-262751][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 17:38:26,729 [DEBUG][       Thread-262751][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 17:38:26,729 [DEBUG][       Thread-262751][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 17:38:26,729 [DEBUG][       Thread-262751][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 17:38:26,729 [DEBUG][       Thread-262751][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 17:38:26,729 [DEBUG][       Thread-262751][   transport.py][1871] : Compression: none
2025-06-13 17:38:26,729 [DEBUG][       Thread-262751][   transport.py][1871] : === End of kex handshake ===
2025-06-13 17:38:26,747 [DEBUG][       Thread-262751][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 17:38:26,747 [DEBUG][       Thread-262751][   transport.py][1871] : Switch to new keys ...
2025-06-13 17:38:26,747 [DEBUG][       Thread-262751][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 17:38:26,748 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 17:38:26,748 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 17:38:26,749 [DEBUG][       Thread-262751][   transport.py][1871] : userauth is OK
2025-06-13 17:38:26,761 [ INFO][       Thread-262751][   transport.py][1871] : Authentication (password) successful!
2025-06-13 17:38:26,762 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 17:38:26,868 [DEBUG][Thread-262753 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:38:27,418 [DEBUG][       Thread-262751][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 17:38:27,418 [DEBUG][       Thread-262751][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 17:38:27,461 [DEBUG][       Thread-262751][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 17:38:27,461 [DEBUG][       Thread-262751][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 17:38:27,465 [DEBUG][       Thread-262751][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 17:38:27,479 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 17:38:27,480 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 17:38:27,482 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 17:38:27,483 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 17:38:27,487 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 17:38:27,488 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 17:38:27,488 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 17:38:27,488 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 17:38:27,488 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.651323 -999.00  +11.90  14.76     37   -2.00 1 1 1 1 1   875    0 12.68 -48.28 ----- 17.9 14.8 49.6 18.4 13.1 -30.3 12.9 -30.5 12.8 -29.9 13.2 -29.4
2025-06-13 17:38:27,488 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 17:38:27,488 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 17:38:27,488 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.651323
2025-06-13 17:38:27,488 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 17:38:27,488 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 17:38:27,488 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 17:38:27,488 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 17:38:27,488 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 17:38:27,488 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T17:38:18', tmtdew=15.96, humidity=32.64, cloud=0.0, wind=15.16, temperature=12.14, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T15:37:54.307', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 17:38:27,489 [DEBUG][       Thread-262751][   transport.py][1871] : EOF in transport thread
2025-06-13 17:38:27,563 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 17:38:27,579 [DEBUG][       Thread-262755][   transport.py][1871] : starting thread (client mode): 0x86352080
2025-06-13 17:38:27,579 [DEBUG][       Thread-262755][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 17:38:27,594 [DEBUG][       Thread-262755][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 17:38:27,594 [ INFO][       Thread-262755][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 17:38:27,602 [DEBUG][       Thread-262755][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 17:38:27,602 [DEBUG][       Thread-262755][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 17:38:27,602 [DEBUG][       Thread-262755][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 17:38:27,602 [DEBUG][       Thread-262755][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:38:27,602 [DEBUG][       Thread-262755][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:38:27,602 [DEBUG][       Thread-262755][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:38:27,602 [DEBUG][       Thread-262755][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:38:27,602 [DEBUG][       Thread-262755][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 17:38:27,602 [DEBUG][       Thread-262755][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 17:38:27,602 [DEBUG][       Thread-262755][   transport.py][1871] : client lang: <none>
2025-06-13 17:38:27,603 [DEBUG][       Thread-262755][   transport.py][1871] : server lang: <none>
2025-06-13 17:38:27,603 [DEBUG][       Thread-262755][   transport.py][1871] : kex follows: False
2025-06-13 17:38:27,603 [DEBUG][       Thread-262755][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 17:38:27,603 [DEBUG][       Thread-262755][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 17:38:27,603 [DEBUG][       Thread-262755][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 17:38:27,603 [DEBUG][       Thread-262755][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 17:38:27,603 [DEBUG][       Thread-262755][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 17:38:27,603 [DEBUG][       Thread-262755][   transport.py][1871] : Compression: none
2025-06-13 17:38:27,603 [DEBUG][       Thread-262755][   transport.py][1871] : === End of kex handshake ===
2025-06-13 17:38:27,666 [DEBUG][       Thread-262755][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 17:38:27,667 [DEBUG][       Thread-262755][   transport.py][1871] : Switch to new keys ...
2025-06-13 17:38:27,667 [DEBUG][       Thread-262755][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 17:38:27,668 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 17:38:27,669 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 17:38:27,722 [DEBUG][       Thread-262755][   transport.py][1871] : userauth is OK
2025-06-13 17:38:27,722 [DEBUG][       Thread-262755][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 17:38:27,723 [DEBUG][       Thread-262755][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 17:38:27,723 [DEBUG][       Thread-262755][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 17:38:27,723 [DEBUG][       Thread-262755][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 17:38:27,741 [ INFO][       Thread-262755][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 17:38:27,742 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 17:38:27,742 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 17:38:28,787 [DEBUG][       Thread-262755][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 17:38:28,787 [DEBUG][       Thread-262755][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 17:38:28,835 [DEBUG][       Thread-262755][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 17:38:28,835 [DEBUG][       Thread-262755][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 17:38:28,843 [DEBUG][       Thread-262755][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 17:38:28,851 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 17:38:28,851 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 17:38:28,859 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 17:38:28,867 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 17:38:28,867 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 17:38:28,867 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 17:38:28,875 [DEBUG][       Thread-262755][   transport.py][1871] : EOF in transport thread
2025-06-13 17:38:30,544 [DEBUG][Thread-262757 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:38:38,877 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 17:38:38,878 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 17:38:38,878 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 17:38:38,881 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 17:38:39,333 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 17, 38, 18), 15.96, 32.64, 0.0, 15.16, 12.14, 0, 0, 0, 2, 0, 0),)
2025-06-13 17:38:39,333 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 17:38:18
2025-06-13 17:38:39,414 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 17:38:39,420 [DEBUG][       Thread-262758][   transport.py][1871] : starting thread (client mode): 0x86351000
2025-06-13 17:38:39,420 [DEBUG][       Thread-262758][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 17:38:39,444 [DEBUG][       Thread-262758][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 17:38:39,444 [ INFO][       Thread-262758][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 17:38:39,447 [DEBUG][       Thread-262758][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 17:38:39,448 [DEBUG][       Thread-262758][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 17:38:39,448 [DEBUG][       Thread-262758][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 17:38:39,448 [DEBUG][       Thread-262758][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:38:39,448 [DEBUG][       Thread-262758][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:38:39,448 [DEBUG][       Thread-262758][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:38:39,448 [DEBUG][       Thread-262758][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:38:39,448 [DEBUG][       Thread-262758][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 17:38:39,448 [DEBUG][       Thread-262758][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 17:38:39,448 [DEBUG][       Thread-262758][   transport.py][1871] : client lang: <none>
2025-06-13 17:38:39,448 [DEBUG][       Thread-262758][   transport.py][1871] : server lang: <none>
2025-06-13 17:38:39,448 [DEBUG][       Thread-262758][   transport.py][1871] : kex follows: False
2025-06-13 17:38:39,448 [DEBUG][       Thread-262758][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 17:38:39,448 [DEBUG][       Thread-262758][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 17:38:39,448 [DEBUG][       Thread-262758][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 17:38:39,448 [DEBUG][       Thread-262758][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 17:38:39,448 [DEBUG][       Thread-262758][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 17:38:39,448 [DEBUG][       Thread-262758][   transport.py][1871] : Compression: none
2025-06-13 17:38:39,448 [DEBUG][       Thread-262758][   transport.py][1871] : === End of kex handshake ===
2025-06-13 17:38:39,464 [DEBUG][       Thread-262758][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 17:38:39,465 [DEBUG][       Thread-262758][   transport.py][1871] : Switch to new keys ...
2025-06-13 17:38:39,465 [DEBUG][       Thread-262758][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 17:38:39,465 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 17:38:39,465 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 17:38:39,467 [DEBUG][       Thread-262758][   transport.py][1871] : userauth is OK
2025-06-13 17:38:39,480 [ INFO][       Thread-262758][   transport.py][1871] : Authentication (password) successful!
2025-06-13 17:38:39,480 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 17:38:39,570 [DEBUG][Thread-262760 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:38:40,136 [DEBUG][       Thread-262758][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 17:38:40,137 [DEBUG][       Thread-262758][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 17:38:40,181 [DEBUG][       Thread-262758][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 17:38:40,181 [DEBUG][       Thread-262758][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 17:38:40,185 [DEBUG][       Thread-262758][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 17:38:40,196 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 17:38:40,197 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 17:38:40,199 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 17:38:40,200 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 17:38:40,206 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 17:38:40,208 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 17:38:40,208 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 17:38:40,209 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 17:38:40,209 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.651323 -999.00  +11.90  14.76     37   -2.00 1 1 1 1 1   875    0 12.68 -48.28 ----- 17.9 14.8 49.6 18.4 13.1 -30.3 12.9 -30.5 12.8 -29.9 13.2 -29.4
2025-06-13 17:38:40,209 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 17:38:40,209 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 17:38:40,209 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.651323
2025-06-13 17:38:40,209 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 17:38:40,210 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 17:38:40,210 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 17:38:40,210 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 17:38:40,210 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 17:38:40,210 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T17:38:18', tmtdew=15.96, humidity=32.64, cloud=0.0, wind=15.16, temperature=12.14, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T15:37:54.307', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 17:38:40,211 [DEBUG][       Thread-262758][   transport.py][1871] : EOF in transport thread
2025-06-13 17:38:40,293 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 17:38:40,305 [DEBUG][       Thread-262762][   transport.py][1871] : starting thread (client mode): 0x86390b80
2025-06-13 17:38:40,306 [DEBUG][       Thread-262762][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 17:38:40,321 [DEBUG][       Thread-262762][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 17:38:40,321 [ INFO][       Thread-262762][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 17:38:40,328 [DEBUG][       Thread-262762][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 17:38:40,328 [DEBUG][       Thread-262762][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 17:38:40,328 [DEBUG][       Thread-262762][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 17:38:40,328 [DEBUG][       Thread-262762][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:38:40,328 [DEBUG][       Thread-262762][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:38:40,328 [DEBUG][       Thread-262762][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:38:40,328 [DEBUG][       Thread-262762][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:38:40,328 [DEBUG][       Thread-262762][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 17:38:40,328 [DEBUG][       Thread-262762][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 17:38:40,328 [DEBUG][       Thread-262762][   transport.py][1871] : client lang: <none>
2025-06-13 17:38:40,328 [DEBUG][       Thread-262762][   transport.py][1871] : server lang: <none>
2025-06-13 17:38:40,328 [DEBUG][       Thread-262762][   transport.py][1871] : kex follows: False
2025-06-13 17:38:40,328 [DEBUG][       Thread-262762][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 17:38:40,328 [DEBUG][       Thread-262762][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 17:38:40,328 [DEBUG][       Thread-262762][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 17:38:40,329 [DEBUG][       Thread-262762][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 17:38:40,329 [DEBUG][       Thread-262762][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 17:38:40,329 [DEBUG][       Thread-262762][   transport.py][1871] : Compression: none
2025-06-13 17:38:40,329 [DEBUG][       Thread-262762][   transport.py][1871] : === End of kex handshake ===
2025-06-13 17:38:40,384 [DEBUG][       Thread-262762][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 17:38:40,385 [DEBUG][       Thread-262762][   transport.py][1871] : Switch to new keys ...
2025-06-13 17:38:40,385 [DEBUG][       Thread-262762][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 17:38:40,385 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 17:38:40,385 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 17:38:40,442 [DEBUG][       Thread-262762][   transport.py][1871] : userauth is OK
2025-06-13 17:38:40,442 [DEBUG][       Thread-262762][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 17:38:40,442 [DEBUG][       Thread-262762][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 17:38:40,442 [DEBUG][       Thread-262762][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 17:38:40,442 [DEBUG][       Thread-262762][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 17:38:40,459 [ INFO][       Thread-262762][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 17:38:40,459 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 17:38:40,459 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 17:38:41,429 [DEBUG][       Thread-262762][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 17:38:41,429 [DEBUG][       Thread-262762][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 17:38:41,480 [DEBUG][       Thread-262762][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 17:38:41,480 [DEBUG][       Thread-262762][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 17:38:41,490 [DEBUG][       Thread-262762][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 17:38:41,501 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 17:38:41,501 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 17:38:41,510 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 17:38:41,524 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 17:38:41,524 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 17:38:41,525 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 17:38:41,533 [DEBUG][       Thread-262762][   transport.py][1871] : EOF in transport thread
2025-06-13 17:38:48,595 [DEBUG][Thread-262764 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:38:51,532 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 17:38:51,532 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 17:38:51,532 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 17:38:51,532 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 17:38:52,016 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 17, 38, 18), 15.96, 32.64, 0.0, 15.16, 12.14, 0, 0, 0, 2, 0, 0),)
2025-06-13 17:38:52,016 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 17:38:18
2025-06-13 17:38:52,104 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 17:38:52,110 [DEBUG][       Thread-262765][   transport.py][1871] : starting thread (client mode): 0x867fdf90
2025-06-13 17:38:52,110 [DEBUG][       Thread-262765][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 17:38:52,130 [DEBUG][       Thread-262765][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 17:38:52,130 [ INFO][       Thread-262765][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 17:38:52,134 [DEBUG][       Thread-262765][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 17:38:52,134 [DEBUG][       Thread-262765][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 17:38:52,134 [DEBUG][       Thread-262765][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 17:38:52,134 [DEBUG][       Thread-262765][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:38:52,134 [DEBUG][       Thread-262765][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:38:52,134 [DEBUG][       Thread-262765][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:38:52,134 [DEBUG][       Thread-262765][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:38:52,134 [DEBUG][       Thread-262765][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 17:38:52,134 [DEBUG][       Thread-262765][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 17:38:52,134 [DEBUG][       Thread-262765][   transport.py][1871] : client lang: <none>
2025-06-13 17:38:52,134 [DEBUG][       Thread-262765][   transport.py][1871] : server lang: <none>
2025-06-13 17:38:52,134 [DEBUG][       Thread-262765][   transport.py][1871] : kex follows: False
2025-06-13 17:38:52,134 [DEBUG][       Thread-262765][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 17:38:52,134 [DEBUG][       Thread-262765][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 17:38:52,134 [DEBUG][       Thread-262765][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 17:38:52,134 [DEBUG][       Thread-262765][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 17:38:52,134 [DEBUG][       Thread-262765][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 17:38:52,134 [DEBUG][       Thread-262765][   transport.py][1871] : Compression: none
2025-06-13 17:38:52,134 [DEBUG][       Thread-262765][   transport.py][1871] : === End of kex handshake ===
2025-06-13 17:38:52,149 [DEBUG][       Thread-262765][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 17:38:52,149 [DEBUG][       Thread-262765][   transport.py][1871] : Switch to new keys ...
2025-06-13 17:38:52,149 [DEBUG][       Thread-262765][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 17:38:52,150 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 17:38:52,150 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 17:38:52,150 [DEBUG][       Thread-262765][   transport.py][1871] : userauth is OK
2025-06-13 17:38:52,163 [ INFO][       Thread-262765][   transport.py][1871] : Authentication (password) successful!
2025-06-13 17:38:52,163 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 17:38:52,753 [DEBUG][       Thread-262765][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 17:38:52,754 [DEBUG][       Thread-262765][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 17:38:52,796 [DEBUG][       Thread-262765][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 17:38:52,796 [DEBUG][       Thread-262765][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 17:38:52,799 [DEBUG][       Thread-262765][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 17:38:52,805 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 17:38:52,805 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 17:38:52,806 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 17:38:52,807 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 17:38:52,809 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 17:38:52,810 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 17:38:52,810 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 17:38:52,810 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 17:38:52,810 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.651670 -999.00  +11.90  18.51     37   -2.10 1 1 1 1 1   873    0 12.88 -45.12 ----- 15.4 18.5 47.6 21.1 13.0 -30.1 12.8 -30.4 12.8 -29.7 13.2 -29.4
2025-06-13 17:38:52,810 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 17:38:52,810 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 17:38:52,810 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.651670
2025-06-13 17:38:52,811 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 17:38:52,811 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 17:38:52,811 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 17:38:52,811 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 17:38:52,811 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 17:38:52,811 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T17:38:18', tmtdew=15.96, humidity=32.64, cloud=0.0, wind=15.16, temperature=12.14, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T15:38:24.288', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 17:38:52,811 [DEBUG][       Thread-262765][   transport.py][1871] : EOF in transport thread
2025-06-13 17:38:52,882 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 17:38:52,894 [DEBUG][       Thread-262768][   transport.py][1871] : starting thread (client mode): 0x863a43a0
2025-06-13 17:38:52,894 [DEBUG][       Thread-262768][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 17:38:52,911 [DEBUG][       Thread-262768][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 17:38:52,911 [ INFO][       Thread-262768][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 17:38:52,918 [DEBUG][       Thread-262768][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 17:38:52,919 [DEBUG][       Thread-262768][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 17:38:52,919 [DEBUG][       Thread-262768][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 17:38:52,919 [DEBUG][       Thread-262768][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:38:52,919 [DEBUG][       Thread-262768][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:38:52,919 [DEBUG][       Thread-262768][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:38:52,919 [DEBUG][       Thread-262768][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:38:52,919 [DEBUG][       Thread-262768][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 17:38:52,919 [DEBUG][       Thread-262768][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 17:38:52,919 [DEBUG][       Thread-262768][   transport.py][1871] : client lang: <none>
2025-06-13 17:38:52,919 [DEBUG][       Thread-262768][   transport.py][1871] : server lang: <none>
2025-06-13 17:38:52,919 [DEBUG][       Thread-262768][   transport.py][1871] : kex follows: False
2025-06-13 17:38:52,919 [DEBUG][       Thread-262768][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 17:38:52,919 [DEBUG][       Thread-262768][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 17:38:52,919 [DEBUG][       Thread-262768][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 17:38:52,919 [DEBUG][       Thread-262768][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 17:38:52,919 [DEBUG][       Thread-262768][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 17:38:52,920 [DEBUG][       Thread-262768][   transport.py][1871] : Compression: none
2025-06-13 17:38:52,920 [DEBUG][       Thread-262768][   transport.py][1871] : === End of kex handshake ===
2025-06-13 17:38:52,979 [DEBUG][       Thread-262768][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 17:38:52,980 [DEBUG][       Thread-262768][   transport.py][1871] : Switch to new keys ...
2025-06-13 17:38:52,980 [DEBUG][       Thread-262768][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 17:38:52,981 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 17:38:52,981 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 17:38:53,039 [DEBUG][       Thread-262768][   transport.py][1871] : userauth is OK
2025-06-13 17:38:53,039 [DEBUG][       Thread-262768][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 17:38:53,039 [DEBUG][       Thread-262768][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 17:38:53,039 [DEBUG][       Thread-262768][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 17:38:53,040 [DEBUG][       Thread-262768][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 17:38:53,058 [ INFO][       Thread-262768][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 17:38:53,058 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 17:38:53,059 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 17:38:54,058 [DEBUG][       Thread-262768][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 17:38:54,058 [DEBUG][       Thread-262768][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 17:38:54,108 [DEBUG][       Thread-262768][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 17:38:54,108 [DEBUG][       Thread-262768][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 17:38:54,118 [DEBUG][       Thread-262768][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 17:38:54,127 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 17:38:54,128 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 17:38:54,137 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 17:38:54,146 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 17:38:54,146 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 17:38:54,147 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 17:38:54,155 [DEBUG][       Thread-262768][   transport.py][1871] : EOF in transport thread
2025-06-13 17:38:57,616 [DEBUG][Thread-262770 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:39:04,157 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 17:39:04,158 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 17:39:04,158 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 17:39:04,161 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 17:39:04,613 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 17, 38, 50), 15.98, 32.59, 0.0, 14.89, 12.12, 0, 0, 0, 2, 0, 0),)
2025-06-13 17:39:04,613 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 17:38:50
2025-06-13 17:39:04,695 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 17:39:04,699 [DEBUG][       Thread-262771][   transport.py][1871] : starting thread (client mode): 0x867ff250
2025-06-13 17:39:04,699 [DEBUG][       Thread-262771][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 17:39:04,721 [DEBUG][       Thread-262771][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 17:39:04,721 [ INFO][       Thread-262771][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 17:39:04,725 [DEBUG][       Thread-262771][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 17:39:04,725 [DEBUG][       Thread-262771][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 17:39:04,725 [DEBUG][       Thread-262771][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 17:39:04,725 [DEBUG][       Thread-262771][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:39:04,725 [DEBUG][       Thread-262771][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:39:04,725 [DEBUG][       Thread-262771][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:39:04,725 [DEBUG][       Thread-262771][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:39:04,725 [DEBUG][       Thread-262771][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 17:39:04,725 [DEBUG][       Thread-262771][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 17:39:04,725 [DEBUG][       Thread-262771][   transport.py][1871] : client lang: <none>
2025-06-13 17:39:04,725 [DEBUG][       Thread-262771][   transport.py][1871] : server lang: <none>
2025-06-13 17:39:04,725 [DEBUG][       Thread-262771][   transport.py][1871] : kex follows: False
2025-06-13 17:39:04,725 [DEBUG][       Thread-262771][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 17:39:04,725 [DEBUG][       Thread-262771][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 17:39:04,725 [DEBUG][       Thread-262771][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 17:39:04,725 [DEBUG][       Thread-262771][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 17:39:04,725 [DEBUG][       Thread-262771][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 17:39:04,725 [DEBUG][       Thread-262771][   transport.py][1871] : Compression: none
2025-06-13 17:39:04,725 [DEBUG][       Thread-262771][   transport.py][1871] : === End of kex handshake ===
2025-06-13 17:39:04,742 [DEBUG][       Thread-262771][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 17:39:04,742 [DEBUG][       Thread-262771][   transport.py][1871] : Switch to new keys ...
2025-06-13 17:39:04,743 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 17:39:04,743 [DEBUG][       Thread-262771][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 17:39:04,743 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 17:39:04,745 [DEBUG][       Thread-262771][   transport.py][1871] : userauth is OK
2025-06-13 17:39:04,758 [ INFO][       Thread-262771][   transport.py][1871] : Authentication (password) successful!
2025-06-13 17:39:04,759 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 17:39:05,384 [DEBUG][       Thread-262771][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 17:39:05,384 [DEBUG][       Thread-262771][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 17:39:05,425 [DEBUG][       Thread-262771][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 17:39:05,425 [DEBUG][       Thread-262771][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 17:39:05,429 [DEBUG][       Thread-262771][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 17:39:05,440 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 17:39:05,441 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 17:39:05,443 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 17:39:05,445 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 17:39:05,451 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 17:39:05,453 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 17:39:05,453 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 17:39:05,453 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 17:39:05,454 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.651670 -999.00  +11.90  18.51     37   -2.10 1 1 1 1 1   873    0 12.88 -45.12 ----- 15.4 18.5 47.6 21.1 13.0 -30.1 12.8 -30.4 12.8 -29.7 13.2 -29.4
2025-06-13 17:39:05,454 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 17:39:05,454 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 17:39:05,454 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.651670
2025-06-13 17:39:05,454 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 17:39:05,455 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 17:39:05,455 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 17:39:05,455 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 17:39:05,455 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 17:39:05,455 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T17:38:50', tmtdew=15.98, humidity=32.59, cloud=0.0, wind=14.89, temperature=12.12, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T15:38:24.288', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 17:39:05,456 [DEBUG][       Thread-262771][   transport.py][1871] : EOF in transport thread
2025-06-13 17:39:05,532 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 17:39:05,584 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:39:05,585 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:39:06,636 [DEBUG][Thread-262774 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:39:13,493 [DEBUG][Thread-262775 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:39:14,605 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:39:14,605 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:39:15,671 [DEBUG][Thread-262776 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:39:24,692 [DEBUG][Thread-262777 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:39:26,943 [DEBUG][Thread-262778 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:39:33,714 [DEBUG][Thread-262779 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:39:42,738 [DEBUG][Thread-262780 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:39:51,757 [DEBUG][Thread-262781 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:40:00,778 [DEBUG][Thread-262782 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:40:09,800 [DEBUG][Thread-262783 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:40:11,622 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:40:11,624 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:40:14,660 [DEBUG][Thread-262784 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:40:15,775 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:40:15,776 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:40:18,820 [DEBUG][Thread-262785 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:40:27,015 [DEBUG][Thread-262786 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:40:27,837 [DEBUG][Thread-262787 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:40:36,860 [DEBUG][Thread-262788 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:40:45,885 [DEBUG][Thread-262789 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:40:54,907 [DEBUG][Thread-262790 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:41:03,924 [DEBUG][Thread-262791 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:41:12,946 [DEBUG][Thread-262792 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:41:13,876 [WARNING][ poll_weather_worker][      driver.py][ 286] : Unable to open ssh connection for writing weather state to io.saao.ac.za: [Errno 110] Connection timed out
2025-06-13 17:41:15,869 [DEBUG][Thread-262793 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:41:16,980 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:41:16,982 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:41:17,160 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:41:17,161 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:41:21,968 [DEBUG][Thread-262794 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:41:23,887 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 17:41:23,887 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 17:41:23,887 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 17:41:23,890 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 17:41:24,363 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 17, 40, 56), 15.92, 32.71, 0.0, 13.29, 12.02, 0, 0, 0, 2, 0, 0),)
2025-06-13 17:41:24,364 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 17:40:56
2025-06-13 17:41:24,445 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 17:41:24,450 [DEBUG][       Thread-262795][   transport.py][1871] : starting thread (client mode): 0x863684c0
2025-06-13 17:41:24,450 [DEBUG][       Thread-262795][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 17:41:24,470 [DEBUG][       Thread-262795][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 17:41:24,470 [ INFO][       Thread-262795][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 17:41:24,474 [DEBUG][       Thread-262795][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 17:41:24,474 [DEBUG][       Thread-262795][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 17:41:24,474 [DEBUG][       Thread-262795][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 17:41:24,474 [DEBUG][       Thread-262795][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:41:24,474 [DEBUG][       Thread-262795][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:41:24,474 [DEBUG][       Thread-262795][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:41:24,474 [DEBUG][       Thread-262795][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:41:24,474 [DEBUG][       Thread-262795][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 17:41:24,474 [DEBUG][       Thread-262795][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 17:41:24,474 [DEBUG][       Thread-262795][   transport.py][1871] : client lang: <none>
2025-06-13 17:41:24,474 [DEBUG][       Thread-262795][   transport.py][1871] : server lang: <none>
2025-06-13 17:41:24,474 [DEBUG][       Thread-262795][   transport.py][1871] : kex follows: False
2025-06-13 17:41:24,474 [DEBUG][       Thread-262795][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 17:41:24,474 [DEBUG][       Thread-262795][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 17:41:24,474 [DEBUG][       Thread-262795][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 17:41:24,474 [DEBUG][       Thread-262795][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 17:41:24,474 [DEBUG][       Thread-262795][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 17:41:24,474 [DEBUG][       Thread-262795][   transport.py][1871] : Compression: none
2025-06-13 17:41:24,474 [DEBUG][       Thread-262795][   transport.py][1871] : === End of kex handshake ===
2025-06-13 17:41:24,492 [DEBUG][       Thread-262795][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 17:41:24,492 [DEBUG][       Thread-262795][   transport.py][1871] : Switch to new keys ...
2025-06-13 17:41:24,493 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 17:41:24,493 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 17:41:24,494 [DEBUG][       Thread-262795][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 17:41:24,494 [DEBUG][       Thread-262795][   transport.py][1871] : userauth is OK
2025-06-13 17:41:24,508 [ INFO][       Thread-262795][   transport.py][1871] : Authentication (password) successful!
2025-06-13 17:41:24,508 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 17:41:25,295 [DEBUG][       Thread-262795][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 17:41:25,295 [DEBUG][       Thread-262795][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 17:41:25,337 [DEBUG][       Thread-262795][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 17:41:25,337 [DEBUG][       Thread-262795][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 17:41:25,339 [DEBUG][       Thread-262795][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 17:41:25,346 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 17:41:25,346 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 17:41:25,347 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 17:41:25,349 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 17:41:25,354 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 17:41:25,355 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 17:41:25,356 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 17:41:25,356 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 17:41:25,356 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.653406 -999.00  +11.70  17.76     37   -2.20 1 1 1 1 1   865    0 12.84 -41.67 ----- 18.5 17.8 49.6 20.2 12.8 -30.2 12.7 -30.5 12.5 -29.7 12.9 -29.4
2025-06-13 17:41:25,356 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 17:41:25,357 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 17:41:25,357 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.653406
2025-06-13 17:41:25,357 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 17:41:25,357 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 17:41:25,358 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 17:41:25,358 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 17:41:25,358 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 17:41:25,358 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T17:40:56', tmtdew=15.92, humidity=32.71, cloud=0.0, wind=13.29, temperature=12.02, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T15:40:54.278', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 17:41:25,359 [DEBUG][       Thread-262795][   transport.py][1871] : EOF in transport thread
2025-06-13 17:41:25,441 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 17:41:25,453 [DEBUG][       Thread-262798][   transport.py][1871] : starting thread (client mode): 0x868c85e0
2025-06-13 17:41:25,453 [DEBUG][       Thread-262798][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 17:41:25,471 [DEBUG][       Thread-262798][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 17:41:25,471 [ INFO][       Thread-262798][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 17:41:25,479 [DEBUG][       Thread-262798][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 17:41:25,479 [DEBUG][       Thread-262798][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 17:41:25,479 [DEBUG][       Thread-262798][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 17:41:25,479 [DEBUG][       Thread-262798][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:41:25,479 [DEBUG][       Thread-262798][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:41:25,479 [DEBUG][       Thread-262798][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:41:25,479 [DEBUG][       Thread-262798][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:41:25,479 [DEBUG][       Thread-262798][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 17:41:25,480 [DEBUG][       Thread-262798][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 17:41:25,480 [DEBUG][       Thread-262798][   transport.py][1871] : client lang: <none>
2025-06-13 17:41:25,480 [DEBUG][       Thread-262798][   transport.py][1871] : server lang: <none>
2025-06-13 17:41:25,480 [DEBUG][       Thread-262798][   transport.py][1871] : kex follows: False
2025-06-13 17:41:25,480 [DEBUG][       Thread-262798][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 17:41:25,480 [DEBUG][       Thread-262798][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 17:41:25,480 [DEBUG][       Thread-262798][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 17:41:25,480 [DEBUG][       Thread-262798][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 17:41:25,480 [DEBUG][       Thread-262798][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 17:41:25,480 [DEBUG][       Thread-262798][   transport.py][1871] : Compression: none
2025-06-13 17:41:25,480 [DEBUG][       Thread-262798][   transport.py][1871] : === End of kex handshake ===
2025-06-13 17:41:25,538 [DEBUG][       Thread-262798][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 17:41:25,539 [DEBUG][       Thread-262798][   transport.py][1871] : Switch to new keys ...
2025-06-13 17:41:25,539 [DEBUG][       Thread-262798][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 17:41:25,540 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 17:41:25,541 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 17:41:25,594 [DEBUG][       Thread-262798][   transport.py][1871] : userauth is OK
2025-06-13 17:41:25,595 [DEBUG][       Thread-262798][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 17:41:25,595 [DEBUG][       Thread-262798][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 17:41:25,595 [DEBUG][       Thread-262798][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 17:41:25,595 [DEBUG][       Thread-262798][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 17:41:25,614 [ INFO][       Thread-262798][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 17:41:25,614 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 17:41:25,615 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 17:41:26,626 [DEBUG][       Thread-262798][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 17:41:26,626 [DEBUG][       Thread-262798][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 17:41:26,676 [DEBUG][       Thread-262798][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 17:41:26,676 [DEBUG][       Thread-262798][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 17:41:26,686 [DEBUG][       Thread-262798][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 17:41:26,699 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 17:41:26,699 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 17:41:26,708 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 17:41:26,719 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 17:41:26,719 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 17:41:26,719 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 17:41:26,730 [DEBUG][       Thread-262798][   transport.py][1871] : EOF in transport thread
2025-06-13 17:41:27,071 [DEBUG][Thread-262800 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:41:30,991 [DEBUG][Thread-262801 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:41:36,730 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 17:41:36,730 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 17:41:36,730 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 17:41:36,733 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 17:41:37,212 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 17, 41, 28), 15.91, 32.73, 0.0, 14.47, 12.02, 0, 0, 0, 2, 0, 0),)
2025-06-13 17:41:37,212 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 17:41:28
2025-06-13 17:41:37,293 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 17:41:37,297 [DEBUG][       Thread-262802][   transport.py][1871] : starting thread (client mode): 0x867fe110
2025-06-13 17:41:37,297 [DEBUG][       Thread-262802][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 17:41:37,317 [DEBUG][       Thread-262802][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 17:41:37,317 [ INFO][       Thread-262802][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 17:41:37,321 [DEBUG][       Thread-262802][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 17:41:37,321 [DEBUG][       Thread-262802][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 17:41:37,321 [DEBUG][       Thread-262802][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 17:41:37,321 [DEBUG][       Thread-262802][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:41:37,321 [DEBUG][       Thread-262802][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:41:37,321 [DEBUG][       Thread-262802][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:41:37,321 [DEBUG][       Thread-262802][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:41:37,321 [DEBUG][       Thread-262802][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 17:41:37,321 [DEBUG][       Thread-262802][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 17:41:37,321 [DEBUG][       Thread-262802][   transport.py][1871] : client lang: <none>
2025-06-13 17:41:37,321 [DEBUG][       Thread-262802][   transport.py][1871] : server lang: <none>
2025-06-13 17:41:37,322 [DEBUG][       Thread-262802][   transport.py][1871] : kex follows: False
2025-06-13 17:41:37,322 [DEBUG][       Thread-262802][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 17:41:37,322 [DEBUG][       Thread-262802][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 17:41:37,322 [DEBUG][       Thread-262802][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 17:41:37,322 [DEBUG][       Thread-262802][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 17:41:37,322 [DEBUG][       Thread-262802][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 17:41:37,322 [DEBUG][       Thread-262802][   transport.py][1871] : Compression: none
2025-06-13 17:41:37,322 [DEBUG][       Thread-262802][   transport.py][1871] : === End of kex handshake ===
2025-06-13 17:41:37,342 [DEBUG][       Thread-262802][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 17:41:37,343 [DEBUG][       Thread-262802][   transport.py][1871] : Switch to new keys ...
2025-06-13 17:41:37,343 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 17:41:37,344 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 17:41:37,344 [DEBUG][       Thread-262802][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 17:41:37,345 [DEBUG][       Thread-262802][   transport.py][1871] : userauth is OK
2025-06-13 17:41:37,370 [ INFO][       Thread-262802][   transport.py][1871] : Authentication (password) successful!
2025-06-13 17:41:37,370 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 17:41:37,977 [DEBUG][       Thread-262802][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 17:41:37,977 [DEBUG][       Thread-262802][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 17:41:38,020 [DEBUG][       Thread-262802][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 17:41:38,020 [DEBUG][       Thread-262802][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 17:41:38,023 [DEBUG][       Thread-262802][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 17:41:38,029 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 17:41:38,029 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 17:41:38,030 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 17:41:38,031 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 17:41:38,035 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 17:41:38,036 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 17:41:38,036 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 17:41:38,036 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 17:41:38,036 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.653753 -999.00  +11.70  18.83     37   -2.20 1 1 1 1 1   863    0 12.79 -40.83 ----- 17.3 18.8 52.2 20.1 12.8 -30.1 12.6 -30.3 12.4 -29.6 12.8 -29.3
2025-06-13 17:41:38,036 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 17:41:38,036 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 17:41:38,036 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.653753
2025-06-13 17:41:38,036 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 17:41:38,036 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 17:41:38,036 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 17:41:38,036 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 17:41:38,036 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 17:41:38,036 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T17:41:28', tmtdew=15.91, humidity=32.73, cloud=0.0, wind=14.47, temperature=12.02, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T15:41:24.259', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 17:41:38,037 [DEBUG][       Thread-262802][   transport.py][1871] : EOF in transport thread
2025-06-13 17:41:38,111 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 17:41:38,120 [DEBUG][       Thread-262805][   transport.py][1871] : starting thread (client mode): 0x863ed8d0
2025-06-13 17:41:38,120 [DEBUG][       Thread-262805][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 17:41:38,134 [DEBUG][       Thread-262805][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 17:41:38,134 [ INFO][       Thread-262805][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 17:41:38,142 [DEBUG][       Thread-262805][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 17:41:38,142 [DEBUG][       Thread-262805][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 17:41:38,142 [DEBUG][       Thread-262805][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 17:41:38,142 [DEBUG][       Thread-262805][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:41:38,142 [DEBUG][       Thread-262805][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:41:38,142 [DEBUG][       Thread-262805][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:41:38,142 [DEBUG][       Thread-262805][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:41:38,142 [DEBUG][       Thread-262805][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 17:41:38,142 [DEBUG][       Thread-262805][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 17:41:38,142 [DEBUG][       Thread-262805][   transport.py][1871] : client lang: <none>
2025-06-13 17:41:38,142 [DEBUG][       Thread-262805][   transport.py][1871] : server lang: <none>
2025-06-13 17:41:38,142 [DEBUG][       Thread-262805][   transport.py][1871] : kex follows: False
2025-06-13 17:41:38,142 [DEBUG][       Thread-262805][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 17:41:38,142 [DEBUG][       Thread-262805][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 17:41:38,142 [DEBUG][       Thread-262805][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 17:41:38,142 [DEBUG][       Thread-262805][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 17:41:38,142 [DEBUG][       Thread-262805][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 17:41:38,142 [DEBUG][       Thread-262805][   transport.py][1871] : Compression: none
2025-06-13 17:41:38,142 [DEBUG][       Thread-262805][   transport.py][1871] : === End of kex handshake ===
2025-06-13 17:41:38,201 [DEBUG][       Thread-262805][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 17:41:38,201 [DEBUG][       Thread-262805][   transport.py][1871] : Switch to new keys ...
2025-06-13 17:41:38,201 [DEBUG][       Thread-262805][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 17:41:38,201 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 17:41:38,201 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 17:41:38,262 [DEBUG][       Thread-262805][   transport.py][1871] : userauth is OK
2025-06-13 17:41:38,262 [DEBUG][       Thread-262805][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 17:41:38,262 [DEBUG][       Thread-262805][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 17:41:38,262 [DEBUG][       Thread-262805][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 17:41:38,262 [DEBUG][       Thread-262805][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 17:41:38,276 [ INFO][       Thread-262805][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 17:41:38,276 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 17:41:38,276 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 17:41:39,278 [DEBUG][       Thread-262805][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 17:41:39,278 [DEBUG][       Thread-262805][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 17:41:39,327 [DEBUG][       Thread-262805][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 17:41:39,327 [DEBUG][       Thread-262805][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 17:41:39,338 [DEBUG][       Thread-262805][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 17:41:39,348 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 17:41:39,348 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 17:41:39,363 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 17:41:39,371 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 17:41:39,371 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 17:41:39,371 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 17:41:39,380 [DEBUG][       Thread-262805][   transport.py][1871] : EOF in transport thread
2025-06-13 17:41:40,032 [DEBUG][Thread-262807 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:41:49,060 [DEBUG][Thread-262808 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:41:49,380 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 17:41:49,380 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 17:41:49,380 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 17:41:49,383 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 17:41:49,861 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 17, 41, 28), 15.91, 32.73, 0.0, 14.47, 12.02, 0, 0, 0, 2, 0, 0),)
2025-06-13 17:41:49,861 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 17:41:28
2025-06-13 17:41:49,942 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 17:41:49,948 [DEBUG][       Thread-262809][   transport.py][1871] : starting thread (client mode): 0x867fcca0
2025-06-13 17:41:49,948 [DEBUG][       Thread-262809][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 17:41:49,969 [DEBUG][       Thread-262809][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 17:41:49,969 [ INFO][       Thread-262809][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 17:41:49,973 [DEBUG][       Thread-262809][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 17:41:49,973 [DEBUG][       Thread-262809][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 17:41:49,973 [DEBUG][       Thread-262809][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 17:41:49,973 [DEBUG][       Thread-262809][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:41:49,973 [DEBUG][       Thread-262809][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:41:49,973 [DEBUG][       Thread-262809][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:41:49,973 [DEBUG][       Thread-262809][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:41:49,973 [DEBUG][       Thread-262809][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 17:41:49,973 [DEBUG][       Thread-262809][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 17:41:49,973 [DEBUG][       Thread-262809][   transport.py][1871] : client lang: <none>
2025-06-13 17:41:49,973 [DEBUG][       Thread-262809][   transport.py][1871] : server lang: <none>
2025-06-13 17:41:49,973 [DEBUG][       Thread-262809][   transport.py][1871] : kex follows: False
2025-06-13 17:41:49,973 [DEBUG][       Thread-262809][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 17:41:49,973 [DEBUG][       Thread-262809][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 17:41:49,973 [DEBUG][       Thread-262809][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 17:41:49,973 [DEBUG][       Thread-262809][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 17:41:49,973 [DEBUG][       Thread-262809][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 17:41:49,973 [DEBUG][       Thread-262809][   transport.py][1871] : Compression: none
2025-06-13 17:41:49,973 [DEBUG][       Thread-262809][   transport.py][1871] : === End of kex handshake ===
2025-06-13 17:41:49,989 [DEBUG][       Thread-262809][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 17:41:49,990 [DEBUG][       Thread-262809][   transport.py][1871] : Switch to new keys ...
2025-06-13 17:41:49,990 [DEBUG][       Thread-262809][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 17:41:49,991 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 17:41:49,991 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 17:41:49,992 [DEBUG][       Thread-262809][   transport.py][1871] : userauth is OK
2025-06-13 17:41:50,016 [ INFO][       Thread-262809][   transport.py][1871] : Authentication (password) successful!
2025-06-13 17:41:50,017 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 17:41:50,787 [DEBUG][       Thread-262809][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 17:41:50,787 [DEBUG][       Thread-262809][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 17:41:50,829 [DEBUG][       Thread-262809][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 17:41:50,829 [DEBUG][       Thread-262809][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 17:41:50,832 [DEBUG][       Thread-262809][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 17:41:50,843 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 17:41:50,843 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 17:41:50,845 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 17:41:50,847 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 17:41:50,852 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 17:41:50,854 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 17:41:50,854 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 17:41:50,854 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 17:41:50,854 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.653753 -999.00  +11.70  18.83     37   -2.20 1 1 1 1 1   863    0 12.79 -40.83 ----- 17.3 18.8 52.2 20.1 12.8 -30.1 12.6 -30.3 12.4 -29.6 12.8 -29.3
2025-06-13 17:41:50,855 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 17:41:50,855 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 17:41:50,855 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.653753
2025-06-13 17:41:50,855 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 17:41:50,856 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 17:41:50,856 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 17:41:50,856 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 17:41:50,856 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 17:41:50,856 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T17:41:28', tmtdew=15.91, humidity=32.73, cloud=0.0, wind=14.47, temperature=12.02, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T15:41:24.259', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 17:41:50,856 [DEBUG][       Thread-262809][   transport.py][1871] : EOF in transport thread
2025-06-13 17:41:50,941 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 17:41:50,952 [DEBUG][       Thread-262812][   transport.py][1871] : starting thread (client mode): 0x86368880
2025-06-13 17:41:50,952 [DEBUG][       Thread-262812][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 17:41:50,966 [DEBUG][       Thread-262812][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 17:41:50,966 [ INFO][       Thread-262812][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 17:41:50,974 [DEBUG][       Thread-262812][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 17:41:50,974 [DEBUG][       Thread-262812][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 17:41:50,974 [DEBUG][       Thread-262812][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 17:41:50,974 [DEBUG][       Thread-262812][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:41:50,974 [DEBUG][       Thread-262812][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:41:50,974 [DEBUG][       Thread-262812][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:41:50,974 [DEBUG][       Thread-262812][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:41:50,974 [DEBUG][       Thread-262812][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 17:41:50,974 [DEBUG][       Thread-262812][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 17:41:50,974 [DEBUG][       Thread-262812][   transport.py][1871] : client lang: <none>
2025-06-13 17:41:50,974 [DEBUG][       Thread-262812][   transport.py][1871] : server lang: <none>
2025-06-13 17:41:50,974 [DEBUG][       Thread-262812][   transport.py][1871] : kex follows: False
2025-06-13 17:41:50,974 [DEBUG][       Thread-262812][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 17:41:50,974 [DEBUG][       Thread-262812][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 17:41:50,974 [DEBUG][       Thread-262812][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 17:41:50,974 [DEBUG][       Thread-262812][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 17:41:50,975 [DEBUG][       Thread-262812][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 17:41:50,975 [DEBUG][       Thread-262812][   transport.py][1871] : Compression: none
2025-06-13 17:41:50,975 [DEBUG][       Thread-262812][   transport.py][1871] : === End of kex handshake ===
2025-06-13 17:41:51,034 [DEBUG][       Thread-262812][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 17:41:51,035 [DEBUG][       Thread-262812][   transport.py][1871] : Switch to new keys ...
2025-06-13 17:41:51,035 [DEBUG][       Thread-262812][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 17:41:51,035 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 17:41:51,036 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 17:41:51,094 [DEBUG][       Thread-262812][   transport.py][1871] : userauth is OK
2025-06-13 17:41:51,094 [DEBUG][       Thread-262812][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 17:41:51,094 [DEBUG][       Thread-262812][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 17:41:51,094 [DEBUG][       Thread-262812][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 17:41:51,094 [DEBUG][       Thread-262812][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 17:41:51,112 [ INFO][       Thread-262812][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 17:41:51,113 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 17:41:51,113 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 17:41:52,096 [DEBUG][       Thread-262812][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 17:41:52,097 [DEBUG][       Thread-262812][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 17:41:52,147 [DEBUG][       Thread-262812][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 17:41:52,148 [DEBUG][       Thread-262812][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 17:41:52,156 [DEBUG][       Thread-262812][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 17:41:52,165 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 17:41:52,165 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 17:41:52,173 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 17:41:52,182 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 17:41:52,182 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 17:41:52,183 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 17:41:52,191 [DEBUG][       Thread-262812][   transport.py][1871] : EOF in transport thread
2025-06-13 17:41:58,084 [DEBUG][Thread-262814 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:42:02,192 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 17:42:02,192 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 17:42:02,192 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 17:42:02,193 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 17:42:02,664 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 17, 41, 28), 15.91, 32.73, 0.0, 14.47, 12.02, 0, 0, 0, 2, 0, 0),)
2025-06-13 17:42:02,664 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 17:41:28
2025-06-13 17:42:02,746 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 17:42:02,749 [DEBUG][       Thread-262815][   transport.py][1871] : starting thread (client mode): 0x863680d0
2025-06-13 17:42:02,750 [DEBUG][       Thread-262815][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 17:42:02,771 [DEBUG][       Thread-262815][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 17:42:02,771 [ INFO][       Thread-262815][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 17:42:02,775 [DEBUG][       Thread-262815][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 17:42:02,775 [DEBUG][       Thread-262815][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 17:42:02,775 [DEBUG][       Thread-262815][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 17:42:02,775 [DEBUG][       Thread-262815][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:42:02,775 [DEBUG][       Thread-262815][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:42:02,775 [DEBUG][       Thread-262815][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:42:02,775 [DEBUG][       Thread-262815][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:42:02,775 [DEBUG][       Thread-262815][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 17:42:02,775 [DEBUG][       Thread-262815][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 17:42:02,775 [DEBUG][       Thread-262815][   transport.py][1871] : client lang: <none>
2025-06-13 17:42:02,775 [DEBUG][       Thread-262815][   transport.py][1871] : server lang: <none>
2025-06-13 17:42:02,775 [DEBUG][       Thread-262815][   transport.py][1871] : kex follows: False
2025-06-13 17:42:02,775 [DEBUG][       Thread-262815][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 17:42:02,775 [DEBUG][       Thread-262815][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 17:42:02,775 [DEBUG][       Thread-262815][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 17:42:02,775 [DEBUG][       Thread-262815][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 17:42:02,775 [DEBUG][       Thread-262815][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 17:42:02,775 [DEBUG][       Thread-262815][   transport.py][1871] : Compression: none
2025-06-13 17:42:02,775 [DEBUG][       Thread-262815][   transport.py][1871] : === End of kex handshake ===
2025-06-13 17:42:02,792 [DEBUG][       Thread-262815][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 17:42:02,793 [DEBUG][       Thread-262815][   transport.py][1871] : Switch to new keys ...
2025-06-13 17:42:02,793 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 17:42:02,793 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 17:42:02,794 [DEBUG][       Thread-262815][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 17:42:02,794 [DEBUG][       Thread-262815][   transport.py][1871] : userauth is OK
2025-06-13 17:42:02,808 [ INFO][       Thread-262815][   transport.py][1871] : Authentication (password) successful!
2025-06-13 17:42:02,809 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 17:42:03,562 [DEBUG][       Thread-262815][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 17:42:03,562 [DEBUG][       Thread-262815][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 17:42:03,609 [DEBUG][       Thread-262815][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 17:42:03,609 [DEBUG][       Thread-262815][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 17:42:03,612 [DEBUG][       Thread-262815][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 17:42:03,624 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 17:42:03,624 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 17:42:03,626 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 17:42:03,629 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 17:42:03,635 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 17:42:03,637 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 17:42:03,637 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 17:42:03,638 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 17:42:03,638 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.653753 -999.00  +11.70  18.83     37   -2.20 1 1 1 1 1   863    0 12.79 -40.83 ----- 17.3 18.8 52.2 20.1 12.8 -30.1 12.6 -30.3 12.4 -29.6 12.8 -29.3
2025-06-13 17:42:03,638 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 17:42:03,638 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 17:42:03,638 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.653753
2025-06-13 17:42:03,639 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 17:42:03,639 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 17:42:03,639 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 17:42:03,639 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 17:42:03,639 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 17:42:03,640 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T17:41:28', tmtdew=15.91, humidity=32.73, cloud=0.0, wind=14.47, temperature=12.02, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T15:41:24.259', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 17:42:03,640 [DEBUG][       Thread-262815][   transport.py][1871] : EOF in transport thread
2025-06-13 17:42:03,718 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 17:42:03,727 [DEBUG][       Thread-262818][   transport.py][1871] : starting thread (client mode): 0x86893be0
2025-06-13 17:42:03,728 [DEBUG][       Thread-262818][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 17:42:03,747 [DEBUG][       Thread-262818][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 17:42:03,747 [ INFO][       Thread-262818][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 17:42:03,757 [DEBUG][       Thread-262818][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 17:42:03,757 [DEBUG][       Thread-262818][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 17:42:03,757 [DEBUG][       Thread-262818][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 17:42:03,757 [DEBUG][       Thread-262818][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:42:03,757 [DEBUG][       Thread-262818][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:42:03,757 [DEBUG][       Thread-262818][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:42:03,757 [DEBUG][       Thread-262818][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:42:03,757 [DEBUG][       Thread-262818][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 17:42:03,757 [DEBUG][       Thread-262818][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 17:42:03,758 [DEBUG][       Thread-262818][   transport.py][1871] : client lang: <none>
2025-06-13 17:42:03,758 [DEBUG][       Thread-262818][   transport.py][1871] : server lang: <none>
2025-06-13 17:42:03,758 [DEBUG][       Thread-262818][   transport.py][1871] : kex follows: False
2025-06-13 17:42:03,758 [DEBUG][       Thread-262818][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 17:42:03,758 [DEBUG][       Thread-262818][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 17:42:03,758 [DEBUG][       Thread-262818][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 17:42:03,758 [DEBUG][       Thread-262818][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 17:42:03,758 [DEBUG][       Thread-262818][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 17:42:03,758 [DEBUG][       Thread-262818][   transport.py][1871] : Compression: none
2025-06-13 17:42:03,758 [DEBUG][       Thread-262818][   transport.py][1871] : === End of kex handshake ===
2025-06-13 17:42:03,814 [DEBUG][       Thread-262818][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 17:42:03,814 [DEBUG][       Thread-262818][   transport.py][1871] : Switch to new keys ...
2025-06-13 17:42:03,815 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 17:42:03,816 [DEBUG][       Thread-262818][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 17:42:03,817 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 17:42:03,870 [DEBUG][       Thread-262818][   transport.py][1871] : userauth is OK
2025-06-13 17:42:03,871 [DEBUG][       Thread-262818][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 17:42:03,871 [DEBUG][       Thread-262818][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 17:42:03,871 [DEBUG][       Thread-262818][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 17:42:03,871 [DEBUG][       Thread-262818][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 17:42:03,897 [ INFO][       Thread-262818][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 17:42:03,897 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 17:42:03,898 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 17:42:04,901 [DEBUG][       Thread-262818][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 17:42:04,902 [DEBUG][       Thread-262818][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 17:42:04,952 [DEBUG][       Thread-262818][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 17:42:04,952 [DEBUG][       Thread-262818][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 17:42:04,961 [DEBUG][       Thread-262818][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 17:42:04,971 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 17:42:04,971 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 17:42:04,980 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 17:42:04,990 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 17:42:04,990 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 17:42:04,991 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 17:42:05,002 [DEBUG][       Thread-262818][   transport.py][1871] : EOF in transport thread
2025-06-13 17:42:07,105 [DEBUG][Thread-262820 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:42:15,001 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 17:42:15,001 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 17:42:15,001 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 17:42:15,002 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 17:42:15,456 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 17, 41, 28), 15.91, 32.73, 0.0, 14.47, 12.02, 0, 0, 0, 2, 0, 0),)
2025-06-13 17:42:15,457 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 17:41:28
2025-06-13 17:42:15,538 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 17:42:15,543 [DEBUG][       Thread-262821][   transport.py][1871] : starting thread (client mode): 0x86392740
2025-06-13 17:42:15,543 [DEBUG][       Thread-262821][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 17:42:15,564 [DEBUG][       Thread-262821][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 17:42:15,564 [ INFO][       Thread-262821][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 17:42:15,567 [DEBUG][       Thread-262821][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 17:42:15,568 [DEBUG][       Thread-262821][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 17:42:15,568 [DEBUG][       Thread-262821][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 17:42:15,568 [DEBUG][       Thread-262821][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:42:15,568 [DEBUG][       Thread-262821][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:42:15,568 [DEBUG][       Thread-262821][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:42:15,568 [DEBUG][       Thread-262821][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:42:15,568 [DEBUG][       Thread-262821][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 17:42:15,568 [DEBUG][       Thread-262821][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 17:42:15,568 [DEBUG][       Thread-262821][   transport.py][1871] : client lang: <none>
2025-06-13 17:42:15,568 [DEBUG][       Thread-262821][   transport.py][1871] : server lang: <none>
2025-06-13 17:42:15,568 [DEBUG][       Thread-262821][   transport.py][1871] : kex follows: False
2025-06-13 17:42:15,568 [DEBUG][       Thread-262821][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 17:42:15,568 [DEBUG][       Thread-262821][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 17:42:15,568 [DEBUG][       Thread-262821][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 17:42:15,568 [DEBUG][       Thread-262821][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 17:42:15,568 [DEBUG][       Thread-262821][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 17:42:15,568 [DEBUG][       Thread-262821][   transport.py][1871] : Compression: none
2025-06-13 17:42:15,568 [DEBUG][       Thread-262821][   transport.py][1871] : === End of kex handshake ===
2025-06-13 17:42:15,584 [DEBUG][       Thread-262821][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 17:42:15,585 [DEBUG][       Thread-262821][   transport.py][1871] : Switch to new keys ...
2025-06-13 17:42:15,585 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 17:42:15,586 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 17:42:15,586 [DEBUG][       Thread-262821][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 17:42:15,587 [DEBUG][       Thread-262821][   transport.py][1871] : userauth is OK
2025-06-13 17:42:15,599 [ INFO][       Thread-262821][   transport.py][1871] : Authentication (password) successful!
2025-06-13 17:42:15,600 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 17:42:16,126 [DEBUG][Thread-262823 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:42:16,240 [DEBUG][       Thread-262821][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 17:42:16,240 [DEBUG][       Thread-262821][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 17:42:16,284 [DEBUG][       Thread-262821][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 17:42:16,284 [DEBUG][       Thread-262821][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 17:42:16,287 [DEBUG][       Thread-262821][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 17:42:16,299 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 17:42:16,299 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 17:42:16,300 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 17:42:16,301 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 17:42:16,304 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 17:42:16,305 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 17:42:16,305 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 17:42:16,305 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 17:42:16,305 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.654100 -999.00  +11.70  19.11     37   -2.30 1 1 1 1 1   861    0 12.99 -40.83 ----- 17.7 19.1 44.8 22.1 12.7 -30.1 12.5 -30.3 12.3 -29.6 12.7 -29.1
2025-06-13 17:42:16,305 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 17:42:16,305 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 17:42:16,305 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.654100
2025-06-13 17:42:16,305 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 17:42:16,306 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 17:42:16,306 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 17:42:16,306 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 17:42:16,306 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 17:42:16,306 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T17:41:28', tmtdew=15.91, humidity=32.73, cloud=0.0, wind=14.47, temperature=12.02, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T15:41:54.240', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 17:42:16,306 [DEBUG][       Thread-262821][   transport.py][1871] : EOF in transport thread
2025-06-13 17:42:16,378 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 17:42:16,389 [DEBUG][       Thread-262825][   transport.py][1871] : starting thread (client mode): 0x863c8790
2025-06-13 17:42:16,389 [DEBUG][       Thread-262825][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 17:42:16,404 [DEBUG][       Thread-262825][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 17:42:16,404 [ INFO][       Thread-262825][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 17:42:16,411 [DEBUG][       Thread-262825][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 17:42:16,411 [DEBUG][       Thread-262825][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 17:42:16,411 [DEBUG][       Thread-262825][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 17:42:16,411 [DEBUG][       Thread-262825][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:42:16,411 [DEBUG][       Thread-262825][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:42:16,411 [DEBUG][       Thread-262825][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:42:16,411 [DEBUG][       Thread-262825][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:42:16,411 [DEBUG][       Thread-262825][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 17:42:16,411 [DEBUG][       Thread-262825][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 17:42:16,411 [DEBUG][       Thread-262825][   transport.py][1871] : client lang: <none>
2025-06-13 17:42:16,411 [DEBUG][       Thread-262825][   transport.py][1871] : server lang: <none>
2025-06-13 17:42:16,411 [DEBUG][       Thread-262825][   transport.py][1871] : kex follows: False
2025-06-13 17:42:16,411 [DEBUG][       Thread-262825][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 17:42:16,411 [DEBUG][       Thread-262825][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 17:42:16,411 [DEBUG][       Thread-262825][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 17:42:16,411 [DEBUG][       Thread-262825][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 17:42:16,411 [DEBUG][       Thread-262825][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 17:42:16,411 [DEBUG][       Thread-262825][   transport.py][1871] : Compression: none
2025-06-13 17:42:16,411 [DEBUG][       Thread-262825][   transport.py][1871] : === End of kex handshake ===
2025-06-13 17:42:16,470 [DEBUG][       Thread-262825][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 17:42:16,470 [DEBUG][       Thread-262825][   transport.py][1871] : Switch to new keys ...
2025-06-13 17:42:16,470 [DEBUG][       Thread-262825][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 17:42:16,470 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 17:42:16,470 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 17:42:16,526 [DEBUG][       Thread-262825][   transport.py][1871] : userauth is OK
2025-06-13 17:42:16,526 [DEBUG][       Thread-262825][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 17:42:16,526 [DEBUG][       Thread-262825][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 17:42:16,526 [DEBUG][       Thread-262825][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 17:42:16,526 [DEBUG][       Thread-262825][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 17:42:16,540 [ INFO][       Thread-262825][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 17:42:16,540 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 17:42:16,540 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 17:42:17,084 [DEBUG][Thread-262827 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:42:17,525 [DEBUG][       Thread-262825][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 17:42:17,525 [DEBUG][       Thread-262825][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 17:42:17,575 [DEBUG][       Thread-262825][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 17:42:17,575 [DEBUG][       Thread-262825][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 17:42:17,585 [DEBUG][       Thread-262825][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 17:42:17,595 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 17:42:17,595 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 17:42:17,606 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 17:42:17,618 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 17:42:17,618 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 17:42:17,618 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 17:42:17,629 [DEBUG][       Thread-262825][   transport.py][1871] : EOF in transport thread
2025-06-13 17:42:18,186 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:42:18,187 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:42:25,145 [DEBUG][Thread-262828 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:42:25,839 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:42:25,841 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:42:27,140 [DEBUG][Thread-262829 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:42:27,628 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 17:42:27,628 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 17:42:27,628 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 17:42:27,631 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 17:42:28,084 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 17, 41, 28), 15.91, 32.73, 0.0, 14.47, 12.02, 0, 0, 0, 2, 0, 0),)
2025-06-13 17:42:28,084 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 17:41:28
2025-06-13 17:42:28,165 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 17:42:28,169 [DEBUG][       Thread-262830][   transport.py][1871] : starting thread (client mode): 0x8636bdc0
2025-06-13 17:42:28,170 [DEBUG][       Thread-262830][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 17:42:28,181 [DEBUG][       Thread-262830][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 17:42:28,181 [ INFO][       Thread-262830][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 17:42:28,182 [DEBUG][       Thread-262830][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 17:42:28,182 [DEBUG][       Thread-262830][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 17:42:28,182 [DEBUG][       Thread-262830][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 17:42:28,182 [DEBUG][       Thread-262830][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:42:28,182 [DEBUG][       Thread-262830][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:42:28,182 [DEBUG][       Thread-262830][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:42:28,182 [DEBUG][       Thread-262830][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:42:28,182 [DEBUG][       Thread-262830][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 17:42:28,182 [DEBUG][       Thread-262830][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 17:42:28,182 [DEBUG][       Thread-262830][   transport.py][1871] : client lang: <none>
2025-06-13 17:42:28,182 [DEBUG][       Thread-262830][   transport.py][1871] : server lang: <none>
2025-06-13 17:42:28,182 [DEBUG][       Thread-262830][   transport.py][1871] : kex follows: False
2025-06-13 17:42:28,182 [DEBUG][       Thread-262830][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 17:42:28,183 [DEBUG][       Thread-262830][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 17:42:28,183 [DEBUG][       Thread-262830][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 17:42:28,183 [DEBUG][       Thread-262830][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 17:42:28,183 [DEBUG][       Thread-262830][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 17:42:28,183 [DEBUG][       Thread-262830][   transport.py][1871] : Compression: none
2025-06-13 17:42:28,183 [DEBUG][       Thread-262830][   transport.py][1871] : === End of kex handshake ===
2025-06-13 17:42:28,190 [DEBUG][       Thread-262830][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 17:42:28,190 [DEBUG][       Thread-262830][   transport.py][1871] : Switch to new keys ...
2025-06-13 17:42:28,190 [DEBUG][       Thread-262830][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 17:42:28,190 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 17:42:28,190 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 17:42:28,191 [DEBUG][       Thread-262830][   transport.py][1871] : userauth is OK
2025-06-13 17:42:28,204 [ INFO][       Thread-262830][   transport.py][1871] : Authentication (password) successful!
2025-06-13 17:42:28,204 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 17:42:29,004 [DEBUG][       Thread-262830][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 17:42:29,004 [DEBUG][       Thread-262830][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 17:42:29,049 [DEBUG][       Thread-262830][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 17:42:29,049 [DEBUG][       Thread-262830][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 17:42:29,052 [DEBUG][       Thread-262830][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 17:42:29,066 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 17:42:29,066 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 17:42:29,068 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 17:42:29,070 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 17:42:29,076 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 17:42:29,078 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 17:42:29,078 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 17:42:29,079 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 17:42:29,079 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.654100 -999.00  +11.70  19.11     37   -2.30 1 1 1 1 1   861    0 12.99 -40.83 ----- 17.7 19.1 44.8 22.1 12.7 -30.1 12.5 -30.3 12.3 -29.6 12.7 -29.1
2025-06-13 17:42:29,079 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 17:42:29,079 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 17:42:29,079 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.654100
2025-06-13 17:42:29,080 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 17:42:29,080 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 17:42:29,080 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 17:42:29,081 [DEBUG][       Thread-262830][   transport.py][1871] : EOF in transport thread
2025-06-13 17:42:29,081 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 17:42:29,081 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 17:42:29,082 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T17:41:28', tmtdew=15.91, humidity=32.73, cloud=0.0, wind=14.47, temperature=12.02, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T15:41:54.240', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 17:42:29,165 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 17:42:29,175 [DEBUG][       Thread-262833][   transport.py][1871] : starting thread (client mode): 0x863ee890
2025-06-13 17:42:29,175 [DEBUG][       Thread-262833][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 17:42:29,191 [DEBUG][       Thread-262833][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 17:42:29,191 [ INFO][       Thread-262833][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 17:42:29,200 [DEBUG][       Thread-262833][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 17:42:29,200 [DEBUG][       Thread-262833][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 17:42:29,200 [DEBUG][       Thread-262833][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 17:42:29,200 [DEBUG][       Thread-262833][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:42:29,201 [DEBUG][       Thread-262833][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:42:29,201 [DEBUG][       Thread-262833][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:42:29,201 [DEBUG][       Thread-262833][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:42:29,201 [DEBUG][       Thread-262833][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 17:42:29,201 [DEBUG][       Thread-262833][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 17:42:29,201 [DEBUG][       Thread-262833][   transport.py][1871] : client lang: <none>
2025-06-13 17:42:29,201 [DEBUG][       Thread-262833][   transport.py][1871] : server lang: <none>
2025-06-13 17:42:29,201 [DEBUG][       Thread-262833][   transport.py][1871] : kex follows: False
2025-06-13 17:42:29,201 [DEBUG][       Thread-262833][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 17:42:29,201 [DEBUG][       Thread-262833][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 17:42:29,201 [DEBUG][       Thread-262833][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 17:42:29,201 [DEBUG][       Thread-262833][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 17:42:29,201 [DEBUG][       Thread-262833][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 17:42:29,201 [DEBUG][       Thread-262833][   transport.py][1871] : Compression: none
2025-06-13 17:42:29,201 [DEBUG][       Thread-262833][   transport.py][1871] : === End of kex handshake ===
2025-06-13 17:42:29,258 [DEBUG][       Thread-262833][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 17:42:29,259 [DEBUG][       Thread-262833][   transport.py][1871] : Switch to new keys ...
2025-06-13 17:42:29,259 [DEBUG][       Thread-262833][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 17:42:29,259 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 17:42:29,260 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 17:42:29,320 [DEBUG][       Thread-262833][   transport.py][1871] : userauth is OK
2025-06-13 17:42:29,320 [DEBUG][       Thread-262833][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 17:42:29,320 [DEBUG][       Thread-262833][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 17:42:29,320 [DEBUG][       Thread-262833][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 17:42:29,320 [DEBUG][       Thread-262833][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 17:42:29,340 [ INFO][       Thread-262833][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 17:42:29,341 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 17:42:29,341 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 17:42:30,368 [DEBUG][       Thread-262833][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 17:42:30,368 [DEBUG][       Thread-262833][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 17:42:30,416 [DEBUG][       Thread-262833][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 17:42:30,416 [DEBUG][       Thread-262833][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 17:42:30,425 [DEBUG][       Thread-262833][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 17:42:30,434 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 17:42:30,435 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 17:42:30,443 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 17:42:30,453 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 17:42:30,453 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 17:42:30,454 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 17:42:30,461 [DEBUG][       Thread-262833][   transport.py][1871] : EOF in transport thread
2025-06-13 17:42:34,166 [DEBUG][Thread-262835 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:42:40,461 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 17:42:40,461 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 17:42:40,461 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 17:42:40,463 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 17:42:40,914 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 17, 42, 31), 15.98, 32.63, 0.0, 16.59, 11.99, 0, 0, 0, 2, 0, 0),)
2025-06-13 17:42:40,914 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 17:42:31
2025-06-13 17:42:40,994 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 17:42:41,000 [DEBUG][       Thread-262836][   transport.py][1871] : starting thread (client mode): 0x8636bf40
2025-06-13 17:42:41,000 [DEBUG][       Thread-262836][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 17:42:41,014 [DEBUG][       Thread-262836][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 17:42:41,014 [ INFO][       Thread-262836][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 17:42:41,016 [DEBUG][       Thread-262836][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 17:42:41,016 [DEBUG][       Thread-262836][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 17:42:41,016 [DEBUG][       Thread-262836][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 17:42:41,016 [DEBUG][       Thread-262836][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:42:41,016 [DEBUG][       Thread-262836][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:42:41,016 [DEBUG][       Thread-262836][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:42:41,016 [DEBUG][       Thread-262836][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:42:41,016 [DEBUG][       Thread-262836][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 17:42:41,016 [DEBUG][       Thread-262836][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 17:42:41,016 [DEBUG][       Thread-262836][   transport.py][1871] : client lang: <none>
2025-06-13 17:42:41,016 [DEBUG][       Thread-262836][   transport.py][1871] : server lang: <none>
2025-06-13 17:42:41,016 [DEBUG][       Thread-262836][   transport.py][1871] : kex follows: False
2025-06-13 17:42:41,016 [DEBUG][       Thread-262836][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 17:42:41,016 [DEBUG][       Thread-262836][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 17:42:41,016 [DEBUG][       Thread-262836][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 17:42:41,016 [DEBUG][       Thread-262836][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 17:42:41,016 [DEBUG][       Thread-262836][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 17:42:41,016 [DEBUG][       Thread-262836][   transport.py][1871] : Compression: none
2025-06-13 17:42:41,016 [DEBUG][       Thread-262836][   transport.py][1871] : === End of kex handshake ===
2025-06-13 17:42:41,026 [DEBUG][       Thread-262836][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 17:42:41,026 [DEBUG][       Thread-262836][   transport.py][1871] : Switch to new keys ...
2025-06-13 17:42:41,026 [DEBUG][       Thread-262836][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 17:42:41,027 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 17:42:41,027 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 17:42:41,028 [DEBUG][       Thread-262836][   transport.py][1871] : userauth is OK
2025-06-13 17:42:41,052 [ INFO][       Thread-262836][   transport.py][1871] : Authentication (password) successful!
2025-06-13 17:42:41,052 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 17:42:41,663 [DEBUG][       Thread-262836][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 17:42:41,663 [DEBUG][       Thread-262836][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 17:42:41,705 [DEBUG][       Thread-262836][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 17:42:41,705 [DEBUG][       Thread-262836][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 17:42:41,708 [DEBUG][       Thread-262836][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 17:42:41,720 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 17:42:41,720 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 17:42:41,722 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 17:42:41,724 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 17:42:41,730 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 17:42:41,732 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 17:42:41,732 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 17:42:41,733 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 17:42:41,733 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.654448 -999.00  +11.70  17.00     37   -2.20 1 1 1 1 1   858    0 12.95 -40.10 ----- 15.5 17.0 48.6 18.9 12.7 -30.1 12.5 -30.3 12.3 -29.4 12.7 -29.1
2025-06-13 17:42:41,733 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 17:42:41,733 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 17:42:41,733 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.654448
2025-06-13 17:42:41,734 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 17:42:41,734 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 17:42:41,734 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 17:42:41,734 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 17:42:41,734 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 17:42:41,735 [DEBUG][       Thread-262836][   transport.py][1871] : EOF in transport thread
2025-06-13 17:42:41,735 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T17:42:31', tmtdew=15.98, humidity=32.63, cloud=0.0, wind=16.59, temperature=11.99, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T15:42:24.307', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 17:42:41,818 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 17:42:41,830 [DEBUG][       Thread-262839][   transport.py][1871] : starting thread (client mode): 0x867b7640
2025-06-13 17:42:41,830 [DEBUG][       Thread-262839][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 17:42:41,845 [DEBUG][       Thread-262839][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 17:42:41,845 [ INFO][       Thread-262839][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 17:42:41,852 [DEBUG][       Thread-262839][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 17:42:41,853 [DEBUG][       Thread-262839][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 17:42:41,853 [DEBUG][       Thread-262839][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 17:42:41,853 [DEBUG][       Thread-262839][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:42:41,853 [DEBUG][       Thread-262839][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:42:41,853 [DEBUG][       Thread-262839][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:42:41,853 [DEBUG][       Thread-262839][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:42:41,853 [DEBUG][       Thread-262839][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 17:42:41,853 [DEBUG][       Thread-262839][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 17:42:41,853 [DEBUG][       Thread-262839][   transport.py][1871] : client lang: <none>
2025-06-13 17:42:41,853 [DEBUG][       Thread-262839][   transport.py][1871] : server lang: <none>
2025-06-13 17:42:41,853 [DEBUG][       Thread-262839][   transport.py][1871] : kex follows: False
2025-06-13 17:42:41,853 [DEBUG][       Thread-262839][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 17:42:41,853 [DEBUG][       Thread-262839][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 17:42:41,853 [DEBUG][       Thread-262839][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 17:42:41,853 [DEBUG][       Thread-262839][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 17:42:41,853 [DEBUG][       Thread-262839][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 17:42:41,853 [DEBUG][       Thread-262839][   transport.py][1871] : Compression: none
2025-06-13 17:42:41,853 [DEBUG][       Thread-262839][   transport.py][1871] : === End of kex handshake ===
2025-06-13 17:42:41,910 [DEBUG][       Thread-262839][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 17:42:41,911 [DEBUG][       Thread-262839][   transport.py][1871] : Switch to new keys ...
2025-06-13 17:42:41,911 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 17:42:41,912 [DEBUG][       Thread-262839][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 17:42:41,912 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 17:42:41,966 [DEBUG][       Thread-262839][   transport.py][1871] : userauth is OK
2025-06-13 17:42:41,966 [DEBUG][       Thread-262839][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 17:42:41,967 [DEBUG][       Thread-262839][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 17:42:41,967 [DEBUG][       Thread-262839][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 17:42:41,967 [DEBUG][       Thread-262839][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 17:42:41,985 [ INFO][       Thread-262839][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 17:42:41,986 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 17:42:41,986 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 17:42:42,978 [DEBUG][       Thread-262839][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 17:42:42,978 [DEBUG][       Thread-262839][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 17:42:43,027 [DEBUG][       Thread-262839][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 17:42:43,027 [DEBUG][       Thread-262839][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 17:42:43,036 [DEBUG][       Thread-262839][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 17:42:43,043 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 17:42:43,044 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 17:42:43,051 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 17:42:43,059 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 17:42:43,059 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 17:42:43,059 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 17:42:43,067 [DEBUG][       Thread-262839][   transport.py][1871] : EOF in transport thread
2025-06-13 17:42:43,190 [DEBUG][Thread-262841 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:42:52,225 [DEBUG][Thread-262842 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:42:53,070 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 17:42:53,070 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 17:42:53,070 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 17:42:53,073 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 17:42:53,527 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 17, 42, 31), 15.98, 32.63, 0.0, 16.59, 11.99, 0, 0, 0, 2, 0, 0),)
2025-06-13 17:42:53,527 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 17:42:31
2025-06-13 17:42:53,608 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 17:42:53,613 [DEBUG][       Thread-262843][   transport.py][1871] : starting thread (client mode): 0x8636a830
2025-06-13 17:42:53,614 [DEBUG][       Thread-262843][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 17:42:53,629 [DEBUG][       Thread-262843][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 17:42:53,629 [ INFO][       Thread-262843][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 17:42:53,633 [DEBUG][       Thread-262843][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 17:42:53,633 [DEBUG][       Thread-262843][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 17:42:53,633 [DEBUG][       Thread-262843][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 17:42:53,633 [DEBUG][       Thread-262843][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:42:53,633 [DEBUG][       Thread-262843][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:42:53,633 [DEBUG][       Thread-262843][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:42:53,633 [DEBUG][       Thread-262843][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:42:53,633 [DEBUG][       Thread-262843][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 17:42:53,633 [DEBUG][       Thread-262843][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 17:42:53,633 [DEBUG][       Thread-262843][   transport.py][1871] : client lang: <none>
2025-06-13 17:42:53,633 [DEBUG][       Thread-262843][   transport.py][1871] : server lang: <none>
2025-06-13 17:42:53,633 [DEBUG][       Thread-262843][   transport.py][1871] : kex follows: False
2025-06-13 17:42:53,633 [DEBUG][       Thread-262843][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 17:42:53,633 [DEBUG][       Thread-262843][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 17:42:53,633 [DEBUG][       Thread-262843][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 17:42:53,633 [DEBUG][       Thread-262843][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 17:42:53,633 [DEBUG][       Thread-262843][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 17:42:53,633 [DEBUG][       Thread-262843][   transport.py][1871] : Compression: none
2025-06-13 17:42:53,633 [DEBUG][       Thread-262843][   transport.py][1871] : === End of kex handshake ===
2025-06-13 17:42:53,649 [DEBUG][       Thread-262843][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 17:42:53,650 [DEBUG][       Thread-262843][   transport.py][1871] : Switch to new keys ...
2025-06-13 17:42:53,650 [DEBUG][       Thread-262843][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 17:42:53,650 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 17:42:53,651 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 17:42:53,691 [DEBUG][       Thread-262843][   transport.py][1871] : userauth is OK
2025-06-13 17:42:53,716 [ INFO][       Thread-262843][   transport.py][1871] : Authentication (password) successful!
2025-06-13 17:42:53,717 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 17:42:54,526 [DEBUG][       Thread-262843][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 17:42:54,526 [DEBUG][       Thread-262843][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 17:42:54,568 [DEBUG][       Thread-262843][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 17:42:54,569 [DEBUG][       Thread-262843][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 17:42:54,571 [DEBUG][       Thread-262843][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 17:42:54,584 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 17:42:54,584 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 17:42:54,585 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 17:42:54,586 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 17:42:54,590 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 17:42:54,590 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 17:42:54,590 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 17:42:54,591 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 17:42:54,591 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.654448 -999.00  +11.70  17.00     37   -2.20 1 1 1 1 1   858    0 12.95 -40.10 ----- 15.5 17.0 48.6 18.9 12.7 -30.1 12.5 -30.3 12.3 -29.4 12.7 -29.1
2025-06-13 17:42:54,591 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 17:42:54,591 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 17:42:54,591 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.654448
2025-06-13 17:42:54,591 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 17:42:54,591 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 17:42:54,591 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 17:42:54,591 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 17:42:54,591 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 17:42:54,591 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T17:42:31', tmtdew=15.98, humidity=32.63, cloud=0.0, wind=16.59, temperature=11.99, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T15:42:24.307', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 17:42:54,592 [DEBUG][       Thread-262843][   transport.py][1871] : EOF in transport thread
2025-06-13 17:42:54,665 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 17:42:54,674 [DEBUG][       Thread-262846][   transport.py][1871] : starting thread (client mode): 0x863bf7f0
2025-06-13 17:42:54,674 [DEBUG][       Thread-262846][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 17:42:54,692 [DEBUG][       Thread-262846][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 17:42:54,693 [ INFO][       Thread-262846][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 17:42:54,700 [DEBUG][       Thread-262846][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 17:42:54,700 [DEBUG][       Thread-262846][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 17:42:54,700 [DEBUG][       Thread-262846][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 17:42:54,700 [DEBUG][       Thread-262846][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:42:54,700 [DEBUG][       Thread-262846][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:42:54,700 [DEBUG][       Thread-262846][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:42:54,700 [DEBUG][       Thread-262846][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:42:54,700 [DEBUG][       Thread-262846][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 17:42:54,700 [DEBUG][       Thread-262846][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 17:42:54,700 [DEBUG][       Thread-262846][   transport.py][1871] : client lang: <none>
2025-06-13 17:42:54,700 [DEBUG][       Thread-262846][   transport.py][1871] : server lang: <none>
2025-06-13 17:42:54,700 [DEBUG][       Thread-262846][   transport.py][1871] : kex follows: False
2025-06-13 17:42:54,700 [DEBUG][       Thread-262846][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 17:42:54,700 [DEBUG][       Thread-262846][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 17:42:54,700 [DEBUG][       Thread-262846][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 17:42:54,700 [DEBUG][       Thread-262846][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 17:42:54,700 [DEBUG][       Thread-262846][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 17:42:54,700 [DEBUG][       Thread-262846][   transport.py][1871] : Compression: none
2025-06-13 17:42:54,700 [DEBUG][       Thread-262846][   transport.py][1871] : === End of kex handshake ===
2025-06-13 17:42:54,756 [DEBUG][       Thread-262846][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 17:42:54,757 [DEBUG][       Thread-262846][   transport.py][1871] : Switch to new keys ...
2025-06-13 17:42:54,757 [DEBUG][       Thread-262846][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 17:42:54,757 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 17:42:54,757 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 17:42:54,814 [DEBUG][       Thread-262846][   transport.py][1871] : userauth is OK
2025-06-13 17:42:54,814 [DEBUG][       Thread-262846][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 17:42:54,814 [DEBUG][       Thread-262846][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 17:42:54,814 [DEBUG][       Thread-262846][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 17:42:54,814 [DEBUG][       Thread-262846][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 17:42:54,828 [ INFO][       Thread-262846][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 17:42:54,828 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 17:42:54,828 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 17:42:55,802 [DEBUG][       Thread-262846][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 17:42:55,803 [DEBUG][       Thread-262846][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 17:42:55,851 [DEBUG][       Thread-262846][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 17:42:55,851 [DEBUG][       Thread-262846][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 17:42:55,860 [DEBUG][       Thread-262846][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 17:42:55,868 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 17:42:55,868 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 17:42:55,876 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 17:42:55,884 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 17:42:55,884 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 17:42:55,884 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 17:42:55,892 [DEBUG][       Thread-262846][   transport.py][1871] : EOF in transport thread
2025-06-13 17:43:01,244 [DEBUG][Thread-262848 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:43:05,890 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 17:43:05,890 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 17:43:05,890 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 17:43:05,893 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 17:43:06,351 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 17, 43, 3), 15.97, 32.67, 0.0, 15.95, 12.01, 0, 0, 0, 2, 0, 0),)
2025-06-13 17:43:06,351 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 17:43:03
2025-06-13 17:43:06,433 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 17:43:06,437 [DEBUG][       Thread-262849][   transport.py][1871] : starting thread (client mode): 0x867fd210
2025-06-13 17:43:06,437 [DEBUG][       Thread-262849][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 17:43:06,456 [DEBUG][       Thread-262849][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 17:43:06,456 [ INFO][       Thread-262849][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 17:43:06,459 [DEBUG][       Thread-262849][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 17:43:06,459 [DEBUG][       Thread-262849][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 17:43:06,459 [DEBUG][       Thread-262849][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 17:43:06,459 [DEBUG][       Thread-262849][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:43:06,459 [DEBUG][       Thread-262849][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:43:06,459 [DEBUG][       Thread-262849][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:43:06,459 [DEBUG][       Thread-262849][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:43:06,459 [DEBUG][       Thread-262849][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 17:43:06,459 [DEBUG][       Thread-262849][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 17:43:06,459 [DEBUG][       Thread-262849][   transport.py][1871] : client lang: <none>
2025-06-13 17:43:06,459 [DEBUG][       Thread-262849][   transport.py][1871] : server lang: <none>
2025-06-13 17:43:06,459 [DEBUG][       Thread-262849][   transport.py][1871] : kex follows: False
2025-06-13 17:43:06,459 [DEBUG][       Thread-262849][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 17:43:06,459 [DEBUG][       Thread-262849][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 17:43:06,460 [DEBUG][       Thread-262849][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 17:43:06,460 [DEBUG][       Thread-262849][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 17:43:06,460 [DEBUG][       Thread-262849][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 17:43:06,460 [DEBUG][       Thread-262849][   transport.py][1871] : Compression: none
2025-06-13 17:43:06,460 [DEBUG][       Thread-262849][   transport.py][1871] : === End of kex handshake ===
2025-06-13 17:43:06,469 [DEBUG][       Thread-262849][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 17:43:06,469 [DEBUG][       Thread-262849][   transport.py][1871] : Switch to new keys ...
2025-06-13 17:43:06,470 [DEBUG][       Thread-262849][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 17:43:06,470 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 17:43:06,470 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 17:43:06,471 [DEBUG][       Thread-262849][   transport.py][1871] : userauth is OK
2025-06-13 17:43:06,487 [ INFO][       Thread-262849][   transport.py][1871] : Authentication (password) successful!
2025-06-13 17:43:06,487 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 17:43:07,218 [DEBUG][       Thread-262849][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 17:43:07,219 [DEBUG][       Thread-262849][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 17:43:07,261 [DEBUG][       Thread-262849][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 17:43:07,261 [DEBUG][       Thread-262849][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 17:43:07,264 [DEBUG][       Thread-262849][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 17:43:07,275 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 17:43:07,276 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 17:43:07,277 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 17:43:07,279 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 17:43:07,285 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 17:43:07,286 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 17:43:07,286 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 17:43:07,287 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 17:43:07,287 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.654448 -999.00  +11.70  17.00     37   -2.20 1 1 1 1 1   858    0 12.95 -40.10 ----- 15.5 17.0 48.6 18.9 12.7 -30.1 12.5 -30.3 12.3 -29.4 12.7 -29.1
2025-06-13 17:43:07,287 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 17:43:07,287 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 17:43:07,287 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.654448
2025-06-13 17:43:07,288 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 17:43:07,288 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 17:43:07,288 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 17:43:07,288 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 17:43:07,289 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 17:43:07,289 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T17:43:03', tmtdew=15.97, humidity=32.67, cloud=0.0, wind=15.95, temperature=12.01, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T15:42:24.307', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 17:43:07,289 [DEBUG][       Thread-262849][   transport.py][1871] : EOF in transport thread
2025-06-13 17:43:07,373 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 17:43:07,385 [DEBUG][       Thread-262852][   transport.py][1871] : starting thread (client mode): 0x863a5600
2025-06-13 17:43:07,385 [DEBUG][       Thread-262852][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 17:43:07,401 [DEBUG][       Thread-262852][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 17:43:07,401 [ INFO][       Thread-262852][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 17:43:07,412 [DEBUG][       Thread-262852][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 17:43:07,412 [DEBUG][       Thread-262852][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 17:43:07,412 [DEBUG][       Thread-262852][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 17:43:07,412 [DEBUG][       Thread-262852][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:43:07,412 [DEBUG][       Thread-262852][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:43:07,412 [DEBUG][       Thread-262852][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:43:07,412 [DEBUG][       Thread-262852][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:43:07,412 [DEBUG][       Thread-262852][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 17:43:07,412 [DEBUG][       Thread-262852][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 17:43:07,412 [DEBUG][       Thread-262852][   transport.py][1871] : client lang: <none>
2025-06-13 17:43:07,412 [DEBUG][       Thread-262852][   transport.py][1871] : server lang: <none>
2025-06-13 17:43:07,412 [DEBUG][       Thread-262852][   transport.py][1871] : kex follows: False
2025-06-13 17:43:07,413 [DEBUG][       Thread-262852][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 17:43:07,413 [DEBUG][       Thread-262852][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 17:43:07,413 [DEBUG][       Thread-262852][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 17:43:07,413 [DEBUG][       Thread-262852][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 17:43:07,413 [DEBUG][       Thread-262852][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 17:43:07,413 [DEBUG][       Thread-262852][   transport.py][1871] : Compression: none
2025-06-13 17:43:07,413 [DEBUG][       Thread-262852][   transport.py][1871] : === End of kex handshake ===
2025-06-13 17:43:07,467 [DEBUG][       Thread-262852][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 17:43:07,467 [DEBUG][       Thread-262852][   transport.py][1871] : Switch to new keys ...
2025-06-13 17:43:07,468 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 17:43:07,469 [DEBUG][       Thread-262852][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 17:43:07,469 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 17:43:07,530 [DEBUG][       Thread-262852][   transport.py][1871] : userauth is OK
2025-06-13 17:43:07,530 [DEBUG][       Thread-262852][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 17:43:07,531 [DEBUG][       Thread-262852][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 17:43:07,531 [DEBUG][       Thread-262852][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 17:43:07,531 [DEBUG][       Thread-262852][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 17:43:07,550 [ INFO][       Thread-262852][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 17:43:07,550 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 17:43:07,550 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 17:43:08,562 [DEBUG][       Thread-262852][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 17:43:08,562 [DEBUG][       Thread-262852][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 17:43:08,612 [DEBUG][       Thread-262852][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 17:43:08,612 [DEBUG][       Thread-262852][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 17:43:08,621 [DEBUG][       Thread-262852][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 17:43:08,630 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 17:43:08,630 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 17:43:08,639 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 17:43:08,649 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 17:43:08,649 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 17:43:08,650 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 17:43:08,658 [DEBUG][       Thread-262852][   transport.py][1871] : EOF in transport thread
2025-06-13 17:43:10,264 [DEBUG][Thread-262854 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:43:18,261 [DEBUG][Thread-262855 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:43:18,660 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 17:43:18,661 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 17:43:18,661 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 17:43:18,663 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 17:43:19,142 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 17, 43, 3), 15.97, 32.67, 0.0, 15.95, 12.01, 0, 0, 0, 2, 0, 0),)
2025-06-13 17:43:19,142 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 17:43:03
2025-06-13 17:43:19,223 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 17:43:19,229 [DEBUG][       Thread-262856][   transport.py][1871] : starting thread (client mode): 0x867ff250
2025-06-13 17:43:19,229 [DEBUG][       Thread-262856][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 17:43:19,250 [DEBUG][       Thread-262856][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 17:43:19,250 [ INFO][       Thread-262856][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 17:43:19,253 [DEBUG][       Thread-262856][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 17:43:19,253 [DEBUG][       Thread-262856][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 17:43:19,253 [DEBUG][       Thread-262856][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 17:43:19,253 [DEBUG][       Thread-262856][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:43:19,253 [DEBUG][       Thread-262856][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:43:19,253 [DEBUG][       Thread-262856][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:43:19,253 [DEBUG][       Thread-262856][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:43:19,253 [DEBUG][       Thread-262856][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 17:43:19,253 [DEBUG][       Thread-262856][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 17:43:19,253 [DEBUG][       Thread-262856][   transport.py][1871] : client lang: <none>
2025-06-13 17:43:19,253 [DEBUG][       Thread-262856][   transport.py][1871] : server lang: <none>
2025-06-13 17:43:19,253 [DEBUG][       Thread-262856][   transport.py][1871] : kex follows: False
2025-06-13 17:43:19,253 [DEBUG][       Thread-262856][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 17:43:19,254 [DEBUG][       Thread-262856][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 17:43:19,254 [DEBUG][       Thread-262856][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 17:43:19,254 [DEBUG][       Thread-262856][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 17:43:19,254 [DEBUG][       Thread-262856][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 17:43:19,254 [DEBUG][       Thread-262856][   transport.py][1871] : Compression: none
2025-06-13 17:43:19,254 [DEBUG][       Thread-262856][   transport.py][1871] : === End of kex handshake ===
2025-06-13 17:43:19,268 [DEBUG][       Thread-262856][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 17:43:19,269 [DEBUG][       Thread-262856][   transport.py][1871] : Switch to new keys ...
2025-06-13 17:43:19,269 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 17:43:19,269 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 17:43:19,270 [DEBUG][       Thread-262856][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 17:43:19,270 [DEBUG][       Thread-262856][   transport.py][1871] : userauth is OK
2025-06-13 17:43:19,295 [ INFO][       Thread-262856][   transport.py][1871] : Authentication (password) successful!
2025-06-13 17:43:19,295 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 17:43:19,308 [DEBUG][Thread-262858 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:43:19,379 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:43:19,380 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:43:19,953 [DEBUG][       Thread-262856][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 17:43:19,953 [DEBUG][       Thread-262856][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 17:43:19,997 [DEBUG][       Thread-262856][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 17:43:19,997 [DEBUG][       Thread-262856][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 17:43:19,999 [DEBUG][       Thread-262856][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 17:43:20,013 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 17:43:20,013 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 17:43:20,015 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 17:43:20,016 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 17:43:20,021 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 17:43:20,023 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 17:43:20,023 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 17:43:20,024 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 17:43:20,024 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.654795 -999.00  +11.60  15.01     37   -2.20 1 1 1 1 1   855    0 12.98 -38.07 ----- 17.1 15.0 45.2 17.8 12.7 -30.1 12.5 -30.2 12.2 -29.5 12.6 -29.4
2025-06-13 17:43:20,024 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 17:43:20,024 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 17:43:20,024 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.654795
2025-06-13 17:43:20,025 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 17:43:20,025 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 17:43:20,025 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 17:43:20,025 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 17:43:20,025 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 17:43:20,025 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T17:43:03', tmtdew=15.97, humidity=32.67, cloud=0.0, wind=15.95, temperature=12.01, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T15:42:54.288', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 17:43:20,026 [DEBUG][       Thread-262856][   transport.py][1871] : EOF in transport thread
2025-06-13 17:43:20,109 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 17:43:20,119 [DEBUG][       Thread-262860][   transport.py][1871] : starting thread (client mode): 0x863efbe0
2025-06-13 17:43:20,119 [DEBUG][       Thread-262860][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 17:43:20,137 [DEBUG][       Thread-262860][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 17:43:20,137 [ INFO][       Thread-262860][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 17:43:20,147 [DEBUG][       Thread-262860][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 17:43:20,147 [DEBUG][       Thread-262860][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 17:43:20,147 [DEBUG][       Thread-262860][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 17:43:20,147 [DEBUG][       Thread-262860][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:43:20,147 [DEBUG][       Thread-262860][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:43:20,147 [DEBUG][       Thread-262860][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:43:20,147 [DEBUG][       Thread-262860][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:43:20,147 [DEBUG][       Thread-262860][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 17:43:20,147 [DEBUG][       Thread-262860][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 17:43:20,147 [DEBUG][       Thread-262860][   transport.py][1871] : client lang: <none>
2025-06-13 17:43:20,147 [DEBUG][       Thread-262860][   transport.py][1871] : server lang: <none>
2025-06-13 17:43:20,147 [DEBUG][       Thread-262860][   transport.py][1871] : kex follows: False
2025-06-13 17:43:20,147 [DEBUG][       Thread-262860][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 17:43:20,148 [DEBUG][       Thread-262860][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 17:43:20,148 [DEBUG][       Thread-262860][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 17:43:20,148 [DEBUG][       Thread-262860][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 17:43:20,148 [DEBUG][       Thread-262860][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 17:43:20,148 [DEBUG][       Thread-262860][   transport.py][1871] : Compression: none
2025-06-13 17:43:20,148 [DEBUG][       Thread-262860][   transport.py][1871] : === End of kex handshake ===
2025-06-13 17:43:20,205 [DEBUG][       Thread-262860][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 17:43:20,205 [DEBUG][       Thread-262860][   transport.py][1871] : Switch to new keys ...
2025-06-13 17:43:20,206 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 17:43:20,206 [DEBUG][       Thread-262860][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 17:43:20,207 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 17:43:20,264 [DEBUG][       Thread-262860][   transport.py][1871] : userauth is OK
2025-06-13 17:43:20,264 [DEBUG][       Thread-262860][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 17:43:20,265 [DEBUG][       Thread-262860][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 17:43:20,265 [DEBUG][       Thread-262860][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 17:43:20,265 [DEBUG][       Thread-262860][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 17:43:20,287 [ INFO][       Thread-262860][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 17:43:20,287 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 17:43:20,288 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 17:43:21,274 [DEBUG][       Thread-262860][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 17:43:21,274 [DEBUG][       Thread-262860][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 17:43:21,324 [DEBUG][       Thread-262860][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 17:43:21,324 [DEBUG][       Thread-262860][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 17:43:21,333 [DEBUG][       Thread-262860][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 17:43:21,342 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 17:43:21,342 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 17:43:21,351 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 17:43:21,360 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 17:43:21,361 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 17:43:21,361 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 17:43:21,369 [DEBUG][       Thread-262860][   transport.py][1871] : EOF in transport thread
2025-06-13 17:43:27,214 [DEBUG][Thread-262862 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:43:28,328 [DEBUG][Thread-262863 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:43:31,372 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 17:43:31,372 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 17:43:31,372 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 17:43:31,375 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 17:43:31,853 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 17, 43, 3), 15.97, 32.67, 0.0, 15.95, 12.01, 0, 0, 0, 2, 0, 0),)
2025-06-13 17:43:31,853 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 17:43:03
2025-06-13 17:43:31,942 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 17:43:31,945 [DEBUG][       Thread-262864][   transport.py][1871] : starting thread (client mode): 0x86350fa0
2025-06-13 17:43:31,945 [DEBUG][       Thread-262864][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 17:43:31,965 [DEBUG][       Thread-262864][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 17:43:31,965 [ INFO][       Thread-262864][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 17:43:31,968 [DEBUG][       Thread-262864][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 17:43:31,969 [DEBUG][       Thread-262864][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 17:43:31,969 [DEBUG][       Thread-262864][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 17:43:31,969 [DEBUG][       Thread-262864][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:43:31,969 [DEBUG][       Thread-262864][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:43:31,969 [DEBUG][       Thread-262864][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:43:31,969 [DEBUG][       Thread-262864][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:43:31,969 [DEBUG][       Thread-262864][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 17:43:31,969 [DEBUG][       Thread-262864][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 17:43:31,969 [DEBUG][       Thread-262864][   transport.py][1871] : client lang: <none>
2025-06-13 17:43:31,969 [DEBUG][       Thread-262864][   transport.py][1871] : server lang: <none>
2025-06-13 17:43:31,969 [DEBUG][       Thread-262864][   transport.py][1871] : kex follows: False
2025-06-13 17:43:31,969 [DEBUG][       Thread-262864][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 17:43:31,969 [DEBUG][       Thread-262864][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 17:43:31,969 [DEBUG][       Thread-262864][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 17:43:31,969 [DEBUG][       Thread-262864][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 17:43:31,969 [DEBUG][       Thread-262864][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 17:43:31,969 [DEBUG][       Thread-262864][   transport.py][1871] : Compression: none
2025-06-13 17:43:31,969 [DEBUG][       Thread-262864][   transport.py][1871] : === End of kex handshake ===
2025-06-13 17:43:31,984 [DEBUG][       Thread-262864][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 17:43:31,984 [DEBUG][       Thread-262864][   transport.py][1871] : Switch to new keys ...
2025-06-13 17:43:31,984 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 17:43:31,985 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 17:43:31,985 [DEBUG][       Thread-262864][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 17:43:31,985 [DEBUG][       Thread-262864][   transport.py][1871] : userauth is OK
2025-06-13 17:43:31,998 [ INFO][       Thread-262864][   transport.py][1871] : Authentication (password) successful!
2025-06-13 17:43:31,998 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 17:43:32,778 [DEBUG][       Thread-262864][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 17:43:32,778 [DEBUG][       Thread-262864][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 17:43:32,821 [DEBUG][       Thread-262864][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 17:43:32,821 [DEBUG][       Thread-262864][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 17:43:32,823 [DEBUG][       Thread-262864][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 17:43:32,836 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 17:43:32,836 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 17:43:32,837 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 17:43:32,838 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 17:43:32,841 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 17:43:32,841 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 17:43:32,841 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 17:43:32,842 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 17:43:32,842 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.654795 -999.00  +11.60  15.01     37   -2.20 1 1 1 1 1   855    0 12.98 -38.07 ----- 17.1 15.0 45.2 17.8 12.7 -30.1 12.5 -30.2 12.2 -29.5 12.6 -29.4
2025-06-13 17:43:32,842 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 17:43:32,842 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 17:43:32,842 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.654795
2025-06-13 17:43:32,842 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 17:43:32,842 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 17:43:32,842 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 17:43:32,842 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 17:43:32,842 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 17:43:32,842 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T17:43:03', tmtdew=15.97, humidity=32.67, cloud=0.0, wind=15.95, temperature=12.01, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T15:42:54.288', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 17:43:32,843 [DEBUG][       Thread-262864][   transport.py][1871] : EOF in transport thread
2025-06-13 17:43:32,844 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:43:32,844 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:43:32,917 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 17:43:32,928 [DEBUG][       Thread-262867][   transport.py][1871] : starting thread (client mode): 0x86893a60
2025-06-13 17:43:32,928 [DEBUG][       Thread-262867][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 17:43:32,942 [DEBUG][       Thread-262867][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 17:43:32,942 [ INFO][       Thread-262867][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 17:43:32,950 [DEBUG][       Thread-262867][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 17:43:32,950 [DEBUG][       Thread-262867][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 17:43:32,950 [DEBUG][       Thread-262867][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 17:43:32,950 [DEBUG][       Thread-262867][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:43:32,950 [DEBUG][       Thread-262867][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:43:32,950 [DEBUG][       Thread-262867][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:43:32,950 [DEBUG][       Thread-262867][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:43:32,950 [DEBUG][       Thread-262867][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 17:43:32,950 [DEBUG][       Thread-262867][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 17:43:32,950 [DEBUG][       Thread-262867][   transport.py][1871] : client lang: <none>
2025-06-13 17:43:32,950 [DEBUG][       Thread-262867][   transport.py][1871] : server lang: <none>
2025-06-13 17:43:32,950 [DEBUG][       Thread-262867][   transport.py][1871] : kex follows: False
2025-06-13 17:43:32,950 [DEBUG][       Thread-262867][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 17:43:32,950 [DEBUG][       Thread-262867][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 17:43:32,950 [DEBUG][       Thread-262867][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 17:43:32,950 [DEBUG][       Thread-262867][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 17:43:32,950 [DEBUG][       Thread-262867][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 17:43:32,950 [DEBUG][       Thread-262867][   transport.py][1871] : Compression: none
2025-06-13 17:43:32,950 [DEBUG][       Thread-262867][   transport.py][1871] : === End of kex handshake ===
2025-06-13 17:43:33,004 [DEBUG][       Thread-262867][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 17:43:33,004 [DEBUG][       Thread-262867][   transport.py][1871] : Switch to new keys ...
2025-06-13 17:43:33,004 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 17:43:33,004 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 17:43:33,005 [DEBUG][       Thread-262867][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 17:43:33,062 [DEBUG][       Thread-262867][   transport.py][1871] : userauth is OK
2025-06-13 17:43:33,062 [DEBUG][       Thread-262867][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 17:43:33,062 [DEBUG][       Thread-262867][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 17:43:33,062 [DEBUG][       Thread-262867][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 17:43:33,062 [DEBUG][       Thread-262867][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 17:43:33,075 [ INFO][       Thread-262867][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 17:43:33,076 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 17:43:33,076 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 17:43:34,072 [DEBUG][       Thread-262867][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 17:43:34,072 [DEBUG][       Thread-262867][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 17:43:34,123 [DEBUG][       Thread-262867][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 17:43:34,123 [DEBUG][       Thread-262867][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 17:43:34,131 [DEBUG][       Thread-262867][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 17:43:34,140 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 17:43:34,140 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 17:43:34,148 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 17:43:34,156 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 17:43:34,156 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 17:43:34,156 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 17:43:34,164 [DEBUG][       Thread-262867][   transport.py][1871] : EOF in transport thread
2025-06-13 17:43:37,344 [DEBUG][Thread-262869 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:43:44,164 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 17:43:44,164 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 17:43:44,164 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 17:43:44,167 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 17:43:44,636 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 17, 43, 35), 16.0, 32.67, 0.0, 15.21, 11.94, 0, 0, 0, 2, 0, 0),)
2025-06-13 17:43:44,636 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 17:43:35
2025-06-13 17:43:44,718 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 17:43:44,725 [DEBUG][       Thread-262870][   transport.py][1871] : starting thread (client mode): 0x867fe890
2025-06-13 17:43:44,725 [DEBUG][       Thread-262870][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 17:43:44,741 [DEBUG][       Thread-262870][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 17:43:44,741 [ INFO][       Thread-262870][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 17:43:44,742 [DEBUG][       Thread-262870][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 17:43:44,742 [DEBUG][       Thread-262870][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 17:43:44,742 [DEBUG][       Thread-262870][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 17:43:44,742 [DEBUG][       Thread-262870][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:43:44,742 [DEBUG][       Thread-262870][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:43:44,742 [DEBUG][       Thread-262870][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:43:44,743 [DEBUG][       Thread-262870][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:43:44,743 [DEBUG][       Thread-262870][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 17:43:44,743 [DEBUG][       Thread-262870][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 17:43:44,743 [DEBUG][       Thread-262870][   transport.py][1871] : client lang: <none>
2025-06-13 17:43:44,743 [DEBUG][       Thread-262870][   transport.py][1871] : server lang: <none>
2025-06-13 17:43:44,743 [DEBUG][       Thread-262870][   transport.py][1871] : kex follows: False
2025-06-13 17:43:44,743 [DEBUG][       Thread-262870][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 17:43:44,743 [DEBUG][       Thread-262870][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 17:43:44,743 [DEBUG][       Thread-262870][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 17:43:44,743 [DEBUG][       Thread-262870][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 17:43:44,743 [DEBUG][       Thread-262870][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 17:43:44,743 [DEBUG][       Thread-262870][   transport.py][1871] : Compression: none
2025-06-13 17:43:44,743 [DEBUG][       Thread-262870][   transport.py][1871] : === End of kex handshake ===
2025-06-13 17:43:44,751 [DEBUG][       Thread-262870][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 17:43:44,751 [DEBUG][       Thread-262870][   transport.py][1871] : Switch to new keys ...
2025-06-13 17:43:44,752 [DEBUG][       Thread-262870][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 17:43:44,752 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 17:43:44,752 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 17:43:44,753 [DEBUG][       Thread-262870][   transport.py][1871] : userauth is OK
2025-06-13 17:43:44,800 [ INFO][       Thread-262870][   transport.py][1871] : Authentication (password) successful!
2025-06-13 17:43:44,801 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 17:43:45,473 [DEBUG][       Thread-262870][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 17:43:45,473 [DEBUG][       Thread-262870][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 17:43:45,517 [DEBUG][       Thread-262870][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 17:43:45,517 [DEBUG][       Thread-262870][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 17:43:45,520 [DEBUG][       Thread-262870][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 17:43:45,532 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 17:43:45,532 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 17:43:45,534 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 17:43:45,535 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 17:43:45,541 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 17:43:45,543 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 17:43:45,543 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 17:43:45,544 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 17:43:45,544 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.655142 -999.00  +11.60  15.58     37   -2.30 1 1 1 1 1   852    0 13.10 -36.35 ----- 18.4 15.6 52.2 19.8 12.6 -30.0 12.4 -30.2 12.2 -29.4 12.6 -29.1
2025-06-13 17:43:45,544 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 17:43:45,544 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 17:43:45,544 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.655142
2025-06-13 17:43:45,545 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 17:43:45,545 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 17:43:45,545 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 17:43:45,545 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 17:43:45,545 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 17:43:45,546 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T17:43:35', tmtdew=16.0, humidity=32.67, cloud=0.0, wind=15.21, temperature=11.94, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T15:43:24.269', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 17:43:45,547 [DEBUG][       Thread-262870][   transport.py][1871] : EOF in transport thread
2025-06-13 17:43:45,629 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 17:43:45,642 [DEBUG][       Thread-262873][   transport.py][1871] : starting thread (client mode): 0x86893df0
2025-06-13 17:43:45,642 [DEBUG][       Thread-262873][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 17:43:45,662 [DEBUG][       Thread-262873][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 17:43:45,663 [ INFO][       Thread-262873][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 17:43:45,673 [DEBUG][       Thread-262873][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 17:43:45,673 [DEBUG][       Thread-262873][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 17:43:45,673 [DEBUG][       Thread-262873][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 17:43:45,673 [DEBUG][       Thread-262873][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:43:45,673 [DEBUG][       Thread-262873][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:43:45,673 [DEBUG][       Thread-262873][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:43:45,673 [DEBUG][       Thread-262873][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:43:45,673 [DEBUG][       Thread-262873][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 17:43:45,674 [DEBUG][       Thread-262873][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 17:43:45,674 [DEBUG][       Thread-262873][   transport.py][1871] : client lang: <none>
2025-06-13 17:43:45,674 [DEBUG][       Thread-262873][   transport.py][1871] : server lang: <none>
2025-06-13 17:43:45,674 [DEBUG][       Thread-262873][   transport.py][1871] : kex follows: False
2025-06-13 17:43:45,674 [DEBUG][       Thread-262873][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 17:43:45,674 [DEBUG][       Thread-262873][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 17:43:45,674 [DEBUG][       Thread-262873][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 17:43:45,674 [DEBUG][       Thread-262873][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 17:43:45,674 [DEBUG][       Thread-262873][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 17:43:45,674 [DEBUG][       Thread-262873][   transport.py][1871] : Compression: none
2025-06-13 17:43:45,674 [DEBUG][       Thread-262873][   transport.py][1871] : === End of kex handshake ===
2025-06-13 17:43:45,734 [DEBUG][       Thread-262873][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 17:43:45,734 [DEBUG][       Thread-262873][   transport.py][1871] : Switch to new keys ...
2025-06-13 17:43:45,735 [DEBUG][       Thread-262873][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 17:43:45,735 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 17:43:45,736 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 17:43:45,790 [DEBUG][       Thread-262873][   transport.py][1871] : userauth is OK
2025-06-13 17:43:45,791 [DEBUG][       Thread-262873][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 17:43:45,791 [DEBUG][       Thread-262873][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 17:43:45,791 [DEBUG][       Thread-262873][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 17:43:45,791 [DEBUG][       Thread-262873][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 17:43:45,810 [ INFO][       Thread-262873][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 17:43:45,811 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 17:43:45,811 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 17:43:46,367 [DEBUG][Thread-262875 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:43:46,839 [DEBUG][       Thread-262873][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 17:43:46,840 [DEBUG][       Thread-262873][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 17:43:46,888 [DEBUG][       Thread-262873][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 17:43:46,888 [DEBUG][       Thread-262873][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 17:43:46,898 [DEBUG][       Thread-262873][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 17:43:46,907 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 17:43:46,907 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 17:43:46,916 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 17:43:46,925 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 17:43:46,925 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 17:43:46,926 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 17:43:46,934 [DEBUG][       Thread-262873][   transport.py][1871] : EOF in transport thread
2025-06-13 17:43:55,403 [DEBUG][Thread-262876 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:43:56,936 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 17:43:56,936 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 17:43:56,936 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 17:43:56,939 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 17:43:57,406 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 17, 43, 35), 16.0, 32.67, 0.0, 15.21, 11.94, 0, 0, 0, 2, 0, 0),)
2025-06-13 17:43:57,406 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 17:43:35
2025-06-13 17:43:57,489 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 17:43:57,493 [DEBUG][       Thread-262877][   transport.py][1871] : starting thread (client mode): 0x86368940
2025-06-13 17:43:57,493 [DEBUG][       Thread-262877][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 17:43:57,512 [DEBUG][       Thread-262877][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 17:43:57,512 [ INFO][       Thread-262877][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 17:43:57,517 [DEBUG][       Thread-262877][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 17:43:57,517 [DEBUG][       Thread-262877][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 17:43:57,517 [DEBUG][       Thread-262877][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 17:43:57,517 [DEBUG][       Thread-262877][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:43:57,517 [DEBUG][       Thread-262877][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:43:57,517 [DEBUG][       Thread-262877][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:43:57,517 [DEBUG][       Thread-262877][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:43:57,517 [DEBUG][       Thread-262877][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 17:43:57,517 [DEBUG][       Thread-262877][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 17:43:57,518 [DEBUG][       Thread-262877][   transport.py][1871] : client lang: <none>
2025-06-13 17:43:57,518 [DEBUG][       Thread-262877][   transport.py][1871] : server lang: <none>
2025-06-13 17:43:57,518 [DEBUG][       Thread-262877][   transport.py][1871] : kex follows: False
2025-06-13 17:43:57,518 [DEBUG][       Thread-262877][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 17:43:57,518 [DEBUG][       Thread-262877][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 17:43:57,518 [DEBUG][       Thread-262877][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 17:43:57,518 [DEBUG][       Thread-262877][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 17:43:57,518 [DEBUG][       Thread-262877][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 17:43:57,518 [DEBUG][       Thread-262877][   transport.py][1871] : Compression: none
2025-06-13 17:43:57,518 [DEBUG][       Thread-262877][   transport.py][1871] : === End of kex handshake ===
2025-06-13 17:43:57,533 [DEBUG][       Thread-262877][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 17:43:57,533 [DEBUG][       Thread-262877][   transport.py][1871] : Switch to new keys ...
2025-06-13 17:43:57,534 [DEBUG][       Thread-262877][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 17:43:57,534 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 17:43:57,534 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 17:43:57,536 [DEBUG][       Thread-262877][   transport.py][1871] : userauth is OK
2025-06-13 17:43:57,560 [ INFO][       Thread-262877][   transport.py][1871] : Authentication (password) successful!
2025-06-13 17:43:57,560 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 17:43:58,126 [DEBUG][       Thread-262877][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 17:43:58,126 [DEBUG][       Thread-262877][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 17:43:58,169 [DEBUG][       Thread-262877][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 17:43:58,169 [DEBUG][       Thread-262877][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 17:43:58,172 [DEBUG][       Thread-262877][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 17:43:58,184 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 17:43:58,185 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 17:43:58,187 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 17:43:58,188 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 17:43:58,193 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 17:43:58,195 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 17:43:58,195 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 17:43:58,196 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 17:43:58,196 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.655142 -999.00  +11.60  15.58     37   -2.30 1 1 1 1 1   852    0 13.10 -36.35 ----- 18.4 15.6 52.2 19.8 12.6 -30.0 12.4 -30.2 12.2 -29.4 12.6 -29.1
2025-06-13 17:43:58,196 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 17:43:58,196 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 17:43:58,196 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.655142
2025-06-13 17:43:58,196 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 17:43:58,197 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 17:43:58,197 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 17:43:58,197 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 17:43:58,197 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 17:43:58,197 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T17:43:35', tmtdew=16.0, humidity=32.67, cloud=0.0, wind=15.21, temperature=11.94, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T15:43:24.269', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 17:43:58,198 [DEBUG][       Thread-262877][   transport.py][1871] : EOF in transport thread
2025-06-13 17:43:58,280 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 17:43:58,289 [DEBUG][       Thread-262880][   transport.py][1871] : starting thread (client mode): 0x863ef190
2025-06-13 17:43:58,289 [DEBUG][       Thread-262880][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 17:43:58,304 [DEBUG][       Thread-262880][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 17:43:58,304 [ INFO][       Thread-262880][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 17:43:58,311 [DEBUG][       Thread-262880][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 17:43:58,311 [DEBUG][       Thread-262880][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 17:43:58,311 [DEBUG][       Thread-262880][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 17:43:58,311 [DEBUG][       Thread-262880][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:43:58,311 [DEBUG][       Thread-262880][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:43:58,311 [DEBUG][       Thread-262880][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:43:58,312 [DEBUG][       Thread-262880][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:43:58,312 [DEBUG][       Thread-262880][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 17:43:58,312 [DEBUG][       Thread-262880][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 17:43:58,312 [DEBUG][       Thread-262880][   transport.py][1871] : client lang: <none>
2025-06-13 17:43:58,312 [DEBUG][       Thread-262880][   transport.py][1871] : server lang: <none>
2025-06-13 17:43:58,312 [DEBUG][       Thread-262880][   transport.py][1871] : kex follows: False
2025-06-13 17:43:58,312 [DEBUG][       Thread-262880][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 17:43:58,312 [DEBUG][       Thread-262880][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 17:43:58,312 [DEBUG][       Thread-262880][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 17:43:58,312 [DEBUG][       Thread-262880][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 17:43:58,312 [DEBUG][       Thread-262880][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 17:43:58,312 [DEBUG][       Thread-262880][   transport.py][1871] : Compression: none
2025-06-13 17:43:58,312 [DEBUG][       Thread-262880][   transport.py][1871] : === End of kex handshake ===
2025-06-13 17:43:58,369 [DEBUG][       Thread-262880][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 17:43:58,369 [DEBUG][       Thread-262880][   transport.py][1871] : Switch to new keys ...
2025-06-13 17:43:58,370 [DEBUG][       Thread-262880][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 17:43:58,370 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 17:43:58,371 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 17:43:58,432 [DEBUG][       Thread-262880][   transport.py][1871] : userauth is OK
2025-06-13 17:43:58,432 [DEBUG][       Thread-262880][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 17:43:58,432 [DEBUG][       Thread-262880][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 17:43:58,432 [DEBUG][       Thread-262880][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 17:43:58,432 [DEBUG][       Thread-262880][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 17:43:58,450 [ INFO][       Thread-262880][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 17:43:58,450 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 17:43:58,451 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 17:43:59,456 [DEBUG][       Thread-262880][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 17:43:59,456 [DEBUG][       Thread-262880][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 17:43:59,504 [DEBUG][       Thread-262880][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 17:43:59,504 [DEBUG][       Thread-262880][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 17:43:59,513 [DEBUG][       Thread-262880][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 17:43:59,521 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 17:43:59,522 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 17:43:59,530 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 17:43:59,539 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 17:43:59,539 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 17:43:59,540 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 17:43:59,547 [DEBUG][       Thread-262880][   transport.py][1871] : EOF in transport thread
2025-06-13 17:44:04,422 [DEBUG][Thread-262882 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:44:09,550 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 17:44:09,550 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 17:44:09,550 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 17:44:09,551 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 17:44:10,022 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 17, 44, 7), 15.94, 32.79, 0.0, 15.69, 11.93, 0, 0, 0, 2, 0, 0),)
2025-06-13 17:44:10,022 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 17:44:07
2025-06-13 17:44:10,109 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 17:44:10,115 [DEBUG][       Thread-262883][   transport.py][1871] : starting thread (client mode): 0x8636ad40
2025-06-13 17:44:10,115 [DEBUG][       Thread-262883][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 17:44:10,134 [DEBUG][       Thread-262883][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 17:44:10,134 [ INFO][       Thread-262883][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 17:44:10,137 [DEBUG][       Thread-262883][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 17:44:10,137 [DEBUG][       Thread-262883][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 17:44:10,137 [DEBUG][       Thread-262883][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 17:44:10,137 [DEBUG][       Thread-262883][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:44:10,137 [DEBUG][       Thread-262883][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:44:10,137 [DEBUG][       Thread-262883][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:44:10,137 [DEBUG][       Thread-262883][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:44:10,137 [DEBUG][       Thread-262883][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 17:44:10,137 [DEBUG][       Thread-262883][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 17:44:10,137 [DEBUG][       Thread-262883][   transport.py][1871] : client lang: <none>
2025-06-13 17:44:10,137 [DEBUG][       Thread-262883][   transport.py][1871] : server lang: <none>
2025-06-13 17:44:10,137 [DEBUG][       Thread-262883][   transport.py][1871] : kex follows: False
2025-06-13 17:44:10,137 [DEBUG][       Thread-262883][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 17:44:10,137 [DEBUG][       Thread-262883][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 17:44:10,137 [DEBUG][       Thread-262883][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 17:44:10,137 [DEBUG][       Thread-262883][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 17:44:10,137 [DEBUG][       Thread-262883][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 17:44:10,137 [DEBUG][       Thread-262883][   transport.py][1871] : Compression: none
2025-06-13 17:44:10,137 [DEBUG][       Thread-262883][   transport.py][1871] : === End of kex handshake ===
2025-06-13 17:44:10,152 [DEBUG][       Thread-262883][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 17:44:10,152 [DEBUG][       Thread-262883][   transport.py][1871] : Switch to new keys ...
2025-06-13 17:44:10,152 [DEBUG][       Thread-262883][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 17:44:10,152 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 17:44:10,152 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 17:44:10,153 [DEBUG][       Thread-262883][   transport.py][1871] : userauth is OK
2025-06-13 17:44:10,165 [ INFO][       Thread-262883][   transport.py][1871] : Authentication (password) successful!
2025-06-13 17:44:10,165 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 17:44:10,800 [DEBUG][       Thread-262883][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 17:44:10,800 [DEBUG][       Thread-262883][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 17:44:10,844 [DEBUG][       Thread-262883][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 17:44:10,844 [DEBUG][       Thread-262883][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 17:44:10,847 [DEBUG][       Thread-262883][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 17:44:10,860 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 17:44:10,860 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 17:44:10,861 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 17:44:10,862 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 17:44:10,864 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 17:44:10,865 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 17:44:10,865 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 17:44:10,865 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 17:44:10,865 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.655142 -999.00  +11.60  15.58     37   -2.30 1 1 1 1 1   852    0 13.10 -36.35 ----- 18.4 15.6 52.2 19.8 12.6 -30.0 12.4 -30.2 12.2 -29.4 12.6 -29.1
2025-06-13 17:44:10,865 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 17:44:10,865 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 17:44:10,866 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.655142
2025-06-13 17:44:10,866 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 17:44:10,866 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 17:44:10,866 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 17:44:10,866 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 17:44:10,866 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 17:44:10,866 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T17:44:07', tmtdew=15.94, humidity=32.79, cloud=0.0, wind=15.69, temperature=11.93, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T15:43:24.269', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 17:44:10,866 [DEBUG][       Thread-262883][   transport.py][1871] : EOF in transport thread
2025-06-13 17:44:10,941 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 17:44:10,952 [DEBUG][       Thread-262886][   transport.py][1871] : starting thread (client mode): 0x86351870
2025-06-13 17:44:10,952 [DEBUG][       Thread-262886][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 17:44:10,969 [DEBUG][       Thread-262886][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 17:44:10,969 [ INFO][       Thread-262886][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 17:44:10,977 [DEBUG][       Thread-262886][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 17:44:10,977 [DEBUG][       Thread-262886][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 17:44:10,977 [DEBUG][       Thread-262886][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 17:44:10,977 [DEBUG][       Thread-262886][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:44:10,977 [DEBUG][       Thread-262886][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:44:10,977 [DEBUG][       Thread-262886][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:44:10,977 [DEBUG][       Thread-262886][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:44:10,977 [DEBUG][       Thread-262886][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 17:44:10,977 [DEBUG][       Thread-262886][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 17:44:10,977 [DEBUG][       Thread-262886][   transport.py][1871] : client lang: <none>
2025-06-13 17:44:10,977 [DEBUG][       Thread-262886][   transport.py][1871] : server lang: <none>
2025-06-13 17:44:10,977 [DEBUG][       Thread-262886][   transport.py][1871] : kex follows: False
2025-06-13 17:44:10,977 [DEBUG][       Thread-262886][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 17:44:10,977 [DEBUG][       Thread-262886][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 17:44:10,977 [DEBUG][       Thread-262886][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 17:44:10,977 [DEBUG][       Thread-262886][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 17:44:10,977 [DEBUG][       Thread-262886][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 17:44:10,977 [DEBUG][       Thread-262886][   transport.py][1871] : Compression: none
2025-06-13 17:44:10,977 [DEBUG][       Thread-262886][   transport.py][1871] : === End of kex handshake ===
2025-06-13 17:44:11,042 [DEBUG][       Thread-262886][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 17:44:11,043 [DEBUG][       Thread-262886][   transport.py][1871] : Switch to new keys ...
2025-06-13 17:44:11,043 [DEBUG][       Thread-262886][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 17:44:11,043 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 17:44:11,043 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 17:44:11,098 [DEBUG][       Thread-262886][   transport.py][1871] : userauth is OK
2025-06-13 17:44:11,098 [DEBUG][       Thread-262886][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 17:44:11,098 [DEBUG][       Thread-262886][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 17:44:11,098 [DEBUG][       Thread-262886][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 17:44:11,098 [DEBUG][       Thread-262886][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 17:44:11,112 [ INFO][       Thread-262886][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 17:44:11,112 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 17:44:11,112 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 17:44:12,129 [DEBUG][       Thread-262886][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 17:44:12,129 [DEBUG][       Thread-262886][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 17:44:12,181 [DEBUG][       Thread-262886][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 17:44:12,181 [DEBUG][       Thread-262886][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 17:44:12,189 [DEBUG][       Thread-262886][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 17:44:12,197 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 17:44:12,197 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 17:44:12,209 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 17:44:12,220 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 17:44:12,220 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 17:44:12,220 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 17:44:12,232 [DEBUG][       Thread-262886][   transport.py][1871] : EOF in transport thread
2025-06-13 17:44:13,439 [DEBUG][Thread-262888 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:44:19,444 [DEBUG][Thread-262889 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:44:20,555 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:44:20,555 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:44:22,231 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 17:44:22,231 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 17:44:22,231 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 17:44:22,234 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 17:44:22,461 [DEBUG][Thread-262890 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:44:22,690 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 17, 44, 7), 15.94, 32.79, 0.0, 15.69, 11.93, 0, 0, 0, 2, 0, 0),)
2025-06-13 17:44:22,690 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 17:44:07
2025-06-13 17:44:22,772 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 17:44:22,776 [DEBUG][       Thread-262891][   transport.py][1871] : starting thread (client mode): 0x863ca830
2025-06-13 17:44:22,776 [DEBUG][       Thread-262891][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 17:44:22,796 [DEBUG][       Thread-262891][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 17:44:22,796 [ INFO][       Thread-262891][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 17:44:22,800 [DEBUG][       Thread-262891][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 17:44:22,800 [DEBUG][       Thread-262891][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 17:44:22,800 [DEBUG][       Thread-262891][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 17:44:22,800 [DEBUG][       Thread-262891][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:44:22,800 [DEBUG][       Thread-262891][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:44:22,800 [DEBUG][       Thread-262891][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:44:22,800 [DEBUG][       Thread-262891][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:44:22,800 [DEBUG][       Thread-262891][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 17:44:22,800 [DEBUG][       Thread-262891][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 17:44:22,800 [DEBUG][       Thread-262891][   transport.py][1871] : client lang: <none>
2025-06-13 17:44:22,800 [DEBUG][       Thread-262891][   transport.py][1871] : server lang: <none>
2025-06-13 17:44:22,800 [DEBUG][       Thread-262891][   transport.py][1871] : kex follows: False
2025-06-13 17:44:22,800 [DEBUG][       Thread-262891][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 17:44:22,800 [DEBUG][       Thread-262891][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 17:44:22,800 [DEBUG][       Thread-262891][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 17:44:22,800 [DEBUG][       Thread-262891][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 17:44:22,800 [DEBUG][       Thread-262891][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 17:44:22,800 [DEBUG][       Thread-262891][   transport.py][1871] : Compression: none
2025-06-13 17:44:22,800 [DEBUG][       Thread-262891][   transport.py][1871] : === End of kex handshake ===
2025-06-13 17:44:22,815 [DEBUG][       Thread-262891][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 17:44:22,815 [DEBUG][       Thread-262891][   transport.py][1871] : Switch to new keys ...
2025-06-13 17:44:22,816 [DEBUG][       Thread-262891][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 17:44:22,816 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 17:44:22,816 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 17:44:22,817 [DEBUG][       Thread-262891][   transport.py][1871] : userauth is OK
2025-06-13 17:44:22,830 [ INFO][       Thread-262891][   transport.py][1871] : Authentication (password) successful!
2025-06-13 17:44:22,831 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 17:44:23,406 [DEBUG][       Thread-262891][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 17:44:23,406 [DEBUG][       Thread-262891][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 17:44:23,449 [DEBUG][       Thread-262891][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 17:44:23,449 [DEBUG][       Thread-262891][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 17:44:23,452 [DEBUG][       Thread-262891][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 17:44:23,461 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 17:44:23,462 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 17:44:23,463 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 17:44:23,465 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 17:44:23,471 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 17:44:23,472 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 17:44:23,472 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 17:44:23,473 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 17:44:23,473 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.655489 -999.00  +11.60  18.73     37   -2.40 1 1 1 1 1   849    0 13.03 -36.84 ----- 16.4 18.7 52.8 21.6 12.6 -30.1 12.4 -30.1 12.2 -29.2 12.5 -29.1
2025-06-13 17:44:23,473 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 17:44:23,473 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 17:44:23,474 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.655489
2025-06-13 17:44:23,474 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 17:44:23,475 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 17:44:23,475 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 17:44:23,475 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 17:44:23,475 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 17:44:23,475 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T17:44:07', tmtdew=15.94, humidity=32.79, cloud=0.0, wind=15.69, temperature=11.93, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T15:43:54.250', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 17:44:23,475 [DEBUG][       Thread-262891][   transport.py][1871] : EOF in transport thread
2025-06-13 17:44:23,564 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 17:44:23,574 [DEBUG][       Thread-262894][   transport.py][1871] : starting thread (client mode): 0x863beda0
2025-06-13 17:44:23,574 [DEBUG][       Thread-262894][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 17:44:23,588 [DEBUG][       Thread-262894][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 17:44:23,588 [ INFO][       Thread-262894][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 17:44:23,596 [DEBUG][       Thread-262894][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 17:44:23,596 [DEBUG][       Thread-262894][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 17:44:23,596 [DEBUG][       Thread-262894][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 17:44:23,596 [DEBUG][       Thread-262894][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:44:23,596 [DEBUG][       Thread-262894][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:44:23,596 [DEBUG][       Thread-262894][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:44:23,596 [DEBUG][       Thread-262894][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:44:23,596 [DEBUG][       Thread-262894][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 17:44:23,596 [DEBUG][       Thread-262894][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 17:44:23,596 [DEBUG][       Thread-262894][   transport.py][1871] : client lang: <none>
2025-06-13 17:44:23,596 [DEBUG][       Thread-262894][   transport.py][1871] : server lang: <none>
2025-06-13 17:44:23,596 [DEBUG][       Thread-262894][   transport.py][1871] : kex follows: False
2025-06-13 17:44:23,596 [DEBUG][       Thread-262894][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 17:44:23,596 [DEBUG][       Thread-262894][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 17:44:23,597 [DEBUG][       Thread-262894][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 17:44:23,597 [DEBUG][       Thread-262894][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 17:44:23,597 [DEBUG][       Thread-262894][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 17:44:23,597 [DEBUG][       Thread-262894][   transport.py][1871] : Compression: none
2025-06-13 17:44:23,597 [DEBUG][       Thread-262894][   transport.py][1871] : === End of kex handshake ===
2025-06-13 17:44:23,654 [DEBUG][       Thread-262894][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 17:44:23,655 [DEBUG][       Thread-262894][   transport.py][1871] : Switch to new keys ...
2025-06-13 17:44:23,655 [DEBUG][       Thread-262894][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 17:44:23,655 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 17:44:23,656 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 17:44:23,713 [DEBUG][       Thread-262894][   transport.py][1871] : userauth is OK
2025-06-13 17:44:23,713 [DEBUG][       Thread-262894][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 17:44:23,713 [DEBUG][       Thread-262894][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 17:44:23,713 [DEBUG][       Thread-262894][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 17:44:23,714 [DEBUG][       Thread-262894][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 17:44:23,744 [ INFO][       Thread-262894][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 17:44:23,744 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 17:44:23,745 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 17:44:24,802 [DEBUG][       Thread-262894][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 17:44:24,802 [DEBUG][       Thread-262894][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 17:44:24,852 [DEBUG][       Thread-262894][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 17:44:24,852 [DEBUG][       Thread-262894][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 17:44:24,862 [DEBUG][       Thread-262894][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 17:44:24,874 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 17:44:24,875 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 17:44:24,883 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 17:44:24,892 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 17:44:24,893 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 17:44:24,893 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 17:44:24,903 [DEBUG][       Thread-262894][   transport.py][1871] : EOF in transport thread
2025-06-13 17:44:27,285 [DEBUG][Thread-262896 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:44:31,480 [DEBUG][Thread-262897 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:44:34,904 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 17:44:34,904 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 17:44:34,904 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 17:44:34,907 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 17:44:35,362 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 17, 44, 7), 15.94, 32.79, 0.0, 15.69, 11.93, 0, 0, 0, 2, 0, 0),)
2025-06-13 17:44:35,362 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 17:44:07
2025-06-13 17:44:35,444 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 17:44:35,450 [DEBUG][       Thread-262898][   transport.py][1871] : starting thread (client mode): 0x8636a800
2025-06-13 17:44:35,450 [DEBUG][       Thread-262898][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 17:44:35,471 [DEBUG][       Thread-262898][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 17:44:35,471 [ INFO][       Thread-262898][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 17:44:35,474 [DEBUG][       Thread-262898][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 17:44:35,474 [DEBUG][       Thread-262898][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 17:44:35,474 [DEBUG][       Thread-262898][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 17:44:35,474 [DEBUG][       Thread-262898][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:44:35,474 [DEBUG][       Thread-262898][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:44:35,475 [DEBUG][       Thread-262898][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:44:35,475 [DEBUG][       Thread-262898][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:44:35,475 [DEBUG][       Thread-262898][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 17:44:35,475 [DEBUG][       Thread-262898][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 17:44:35,475 [DEBUG][       Thread-262898][   transport.py][1871] : client lang: <none>
2025-06-13 17:44:35,475 [DEBUG][       Thread-262898][   transport.py][1871] : server lang: <none>
2025-06-13 17:44:35,475 [DEBUG][       Thread-262898][   transport.py][1871] : kex follows: False
2025-06-13 17:44:35,475 [DEBUG][       Thread-262898][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 17:44:35,475 [DEBUG][       Thread-262898][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 17:44:35,475 [DEBUG][       Thread-262898][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 17:44:35,475 [DEBUG][       Thread-262898][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 17:44:35,475 [DEBUG][       Thread-262898][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 17:44:35,475 [DEBUG][       Thread-262898][   transport.py][1871] : Compression: none
2025-06-13 17:44:35,475 [DEBUG][       Thread-262898][   transport.py][1871] : === End of kex handshake ===
2025-06-13 17:44:35,492 [DEBUG][       Thread-262898][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 17:44:35,493 [DEBUG][       Thread-262898][   transport.py][1871] : Switch to new keys ...
2025-06-13 17:44:35,493 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 17:44:35,494 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 17:44:35,494 [DEBUG][       Thread-262898][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 17:44:35,495 [DEBUG][       Thread-262898][   transport.py][1871] : userauth is OK
2025-06-13 17:44:35,508 [ INFO][       Thread-262898][   transport.py][1871] : Authentication (password) successful!
2025-06-13 17:44:35,509 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 17:44:36,163 [DEBUG][       Thread-262898][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 17:44:36,163 [DEBUG][       Thread-262898][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 17:44:36,205 [DEBUG][       Thread-262898][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 17:44:36,205 [DEBUG][       Thread-262898][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 17:44:36,208 [DEBUG][       Thread-262898][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 17:44:36,220 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 17:44:36,220 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 17:44:36,222 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 17:44:36,224 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 17:44:36,231 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 17:44:36,233 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 17:44:36,233 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 17:44:36,234 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 17:44:36,234 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.655489 -999.00  +11.60  18.73     37   -2.40 1 1 1 1 1   849    0 13.03 -36.84 ----- 16.4 18.7 52.8 21.6 12.6 -30.1 12.4 -30.1 12.2 -29.2 12.5 -29.1
2025-06-13 17:44:36,234 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 17:44:36,234 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 17:44:36,234 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.655489
2025-06-13 17:44:36,235 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 17:44:36,235 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 17:44:36,236 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 17:44:36,236 [DEBUG][       Thread-262898][   transport.py][1871] : EOF in transport thread
2025-06-13 17:44:36,236 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 17:44:36,236 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 17:44:36,237 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T17:44:07', tmtdew=15.94, humidity=32.79, cloud=0.0, wind=15.69, temperature=11.93, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T15:43:54.250', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 17:44:36,320 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 17:44:36,331 [DEBUG][       Thread-262901][   transport.py][1871] : starting thread (client mode): 0x863523b0
2025-06-13 17:44:36,331 [DEBUG][       Thread-262901][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 17:44:36,347 [DEBUG][       Thread-262901][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 17:44:36,347 [ INFO][       Thread-262901][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 17:44:36,354 [DEBUG][       Thread-262901][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 17:44:36,354 [DEBUG][       Thread-262901][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 17:44:36,355 [DEBUG][       Thread-262901][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 17:44:36,355 [DEBUG][       Thread-262901][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:44:36,355 [DEBUG][       Thread-262901][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:44:36,355 [DEBUG][       Thread-262901][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:44:36,355 [DEBUG][       Thread-262901][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:44:36,355 [DEBUG][       Thread-262901][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 17:44:36,355 [DEBUG][       Thread-262901][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 17:44:36,355 [DEBUG][       Thread-262901][   transport.py][1871] : client lang: <none>
2025-06-13 17:44:36,355 [DEBUG][       Thread-262901][   transport.py][1871] : server lang: <none>
2025-06-13 17:44:36,355 [DEBUG][       Thread-262901][   transport.py][1871] : kex follows: False
2025-06-13 17:44:36,355 [DEBUG][       Thread-262901][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 17:44:36,355 [DEBUG][       Thread-262901][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 17:44:36,355 [DEBUG][       Thread-262901][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 17:44:36,355 [DEBUG][       Thread-262901][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 17:44:36,355 [DEBUG][       Thread-262901][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 17:44:36,355 [DEBUG][       Thread-262901][   transport.py][1871] : Compression: none
2025-06-13 17:44:36,355 [DEBUG][       Thread-262901][   transport.py][1871] : === End of kex handshake ===
2025-06-13 17:44:36,414 [DEBUG][       Thread-262901][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 17:44:36,415 [DEBUG][       Thread-262901][   transport.py][1871] : Switch to new keys ...
2025-06-13 17:44:36,415 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 17:44:36,416 [DEBUG][       Thread-262901][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 17:44:36,417 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 17:44:36,470 [DEBUG][       Thread-262901][   transport.py][1871] : userauth is OK
2025-06-13 17:44:36,471 [DEBUG][       Thread-262901][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 17:44:36,471 [DEBUG][       Thread-262901][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 17:44:36,471 [DEBUG][       Thread-262901][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 17:44:36,471 [DEBUG][       Thread-262901][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 17:44:36,491 [ INFO][       Thread-262901][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 17:44:36,491 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 17:44:36,491 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 17:44:37,488 [DEBUG][       Thread-262901][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 17:44:37,488 [DEBUG][       Thread-262901][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 17:44:37,536 [DEBUG][       Thread-262901][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 17:44:37,536 [DEBUG][       Thread-262901][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 17:44:37,545 [DEBUG][       Thread-262901][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 17:44:37,554 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 17:44:37,555 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 17:44:37,564 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 17:44:37,573 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 17:44:37,573 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 17:44:37,574 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 17:44:37,582 [DEBUG][       Thread-262901][   transport.py][1871] : EOF in transport thread
2025-06-13 17:44:38,464 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:44:38,465 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:44:40,500 [DEBUG][Thread-262903 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:44:47,584 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 17:44:47,584 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 17:44:47,584 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 17:44:47,587 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 17:44:48,053 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 17, 44, 39), 15.95, 32.79, 0.0, 17.42, 11.95, 0, 0, 0, 2, 0, 0),)
2025-06-13 17:44:48,053 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 17:44:39
2025-06-13 17:44:48,142 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 17:44:48,148 [DEBUG][       Thread-262904][   transport.py][1871] : starting thread (client mode): 0x86368520
2025-06-13 17:44:48,148 [DEBUG][       Thread-262904][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 17:44:48,168 [DEBUG][       Thread-262904][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 17:44:48,168 [ INFO][       Thread-262904][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 17:44:48,172 [DEBUG][       Thread-262904][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 17:44:48,172 [DEBUG][       Thread-262904][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 17:44:48,172 [DEBUG][       Thread-262904][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 17:44:48,172 [DEBUG][       Thread-262904][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:44:48,172 [DEBUG][       Thread-262904][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:44:48,172 [DEBUG][       Thread-262904][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:44:48,172 [DEBUG][       Thread-262904][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:44:48,172 [DEBUG][       Thread-262904][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 17:44:48,172 [DEBUG][       Thread-262904][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 17:44:48,172 [DEBUG][       Thread-262904][   transport.py][1871] : client lang: <none>
2025-06-13 17:44:48,172 [DEBUG][       Thread-262904][   transport.py][1871] : server lang: <none>
2025-06-13 17:44:48,172 [DEBUG][       Thread-262904][   transport.py][1871] : kex follows: False
2025-06-13 17:44:48,172 [DEBUG][       Thread-262904][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 17:44:48,172 [DEBUG][       Thread-262904][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 17:44:48,172 [DEBUG][       Thread-262904][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 17:44:48,172 [DEBUG][       Thread-262904][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 17:44:48,172 [DEBUG][       Thread-262904][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 17:44:48,172 [DEBUG][       Thread-262904][   transport.py][1871] : Compression: none
2025-06-13 17:44:48,172 [DEBUG][       Thread-262904][   transport.py][1871] : === End of kex handshake ===
2025-06-13 17:44:48,187 [DEBUG][       Thread-262904][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 17:44:48,187 [DEBUG][       Thread-262904][   transport.py][1871] : Switch to new keys ...
2025-06-13 17:44:48,187 [DEBUG][       Thread-262904][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 17:44:48,187 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 17:44:48,187 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 17:44:48,188 [DEBUG][       Thread-262904][   transport.py][1871] : userauth is OK
2025-06-13 17:44:48,211 [ INFO][       Thread-262904][   transport.py][1871] : Authentication (password) successful!
2025-06-13 17:44:48,212 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 17:44:48,878 [DEBUG][       Thread-262904][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 17:44:48,878 [DEBUG][       Thread-262904][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 17:44:48,920 [DEBUG][       Thread-262904][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 17:44:48,920 [DEBUG][       Thread-262904][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 17:44:48,923 [DEBUG][       Thread-262904][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 17:44:48,936 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 17:44:48,937 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 17:44:48,937 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 17:44:48,938 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 17:44:48,941 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 17:44:48,942 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 17:44:48,942 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 17:44:48,942 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 17:44:48,942 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.655489 -999.00  +11.60  18.73     37   -2.40 1 1 1 1 1   849    0 13.03 -36.84 ----- 16.4 18.7 52.8 21.6 12.6 -30.1 12.4 -30.1 12.2 -29.2 12.5 -29.1
2025-06-13 17:44:48,942 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 17:44:48,942 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 17:44:48,942 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.655489
2025-06-13 17:44:48,942 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 17:44:48,943 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 17:44:48,943 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 17:44:48,943 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 17:44:48,943 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 17:44:48,943 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T17:44:39', tmtdew=15.95, humidity=32.79, cloud=0.0, wind=17.42, temperature=11.95, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T15:43:54.250', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 17:44:48,943 [DEBUG][       Thread-262904][   transport.py][1871] : EOF in transport thread
2025-06-13 17:44:49,017 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 17:44:49,030 [DEBUG][       Thread-262907][   transport.py][1871] : starting thread (client mode): 0x863bea70
2025-06-13 17:44:49,030 [DEBUG][       Thread-262907][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 17:44:49,044 [DEBUG][       Thread-262907][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 17:44:49,044 [ INFO][       Thread-262907][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 17:44:49,052 [DEBUG][       Thread-262907][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 17:44:49,052 [DEBUG][       Thread-262907][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 17:44:49,052 [DEBUG][       Thread-262907][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 17:44:49,052 [DEBUG][       Thread-262907][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:44:49,052 [DEBUG][       Thread-262907][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:44:49,052 [DEBUG][       Thread-262907][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:44:49,052 [DEBUG][       Thread-262907][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:44:49,052 [DEBUG][       Thread-262907][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 17:44:49,052 [DEBUG][       Thread-262907][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 17:44:49,052 [DEBUG][       Thread-262907][   transport.py][1871] : client lang: <none>
2025-06-13 17:44:49,052 [DEBUG][       Thread-262907][   transport.py][1871] : server lang: <none>
2025-06-13 17:44:49,052 [DEBUG][       Thread-262907][   transport.py][1871] : kex follows: False
2025-06-13 17:44:49,052 [DEBUG][       Thread-262907][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 17:44:49,052 [DEBUG][       Thread-262907][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 17:44:49,052 [DEBUG][       Thread-262907][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 17:44:49,052 [DEBUG][       Thread-262907][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 17:44:49,052 [DEBUG][       Thread-262907][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 17:44:49,052 [DEBUG][       Thread-262907][   transport.py][1871] : Compression: none
2025-06-13 17:44:49,052 [DEBUG][       Thread-262907][   transport.py][1871] : === End of kex handshake ===
2025-06-13 17:44:49,108 [DEBUG][       Thread-262907][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 17:44:49,108 [DEBUG][       Thread-262907][   transport.py][1871] : Switch to new keys ...
2025-06-13 17:44:49,109 [DEBUG][       Thread-262907][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 17:44:49,109 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 17:44:49,109 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 17:44:49,166 [DEBUG][       Thread-262907][   transport.py][1871] : userauth is OK
2025-06-13 17:44:49,166 [DEBUG][       Thread-262907][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 17:44:49,166 [DEBUG][       Thread-262907][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 17:44:49,166 [DEBUG][       Thread-262907][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 17:44:49,166 [DEBUG][       Thread-262907][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 17:44:49,180 [ INFO][       Thread-262907][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 17:44:49,180 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 17:44:49,180 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 17:44:49,519 [DEBUG][Thread-262909 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:44:50,227 [DEBUG][       Thread-262907][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 17:44:50,227 [DEBUG][       Thread-262907][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 17:44:50,275 [DEBUG][       Thread-262907][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 17:44:50,275 [DEBUG][       Thread-262907][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 17:44:50,283 [DEBUG][       Thread-262907][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 17:44:50,291 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 17:44:50,291 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 17:44:50,299 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 17:44:50,307 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 17:44:50,307 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 17:44:50,307 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 17:44:50,315 [DEBUG][       Thread-262907][   transport.py][1871] : EOF in transport thread
2025-06-13 17:44:58,547 [DEBUG][Thread-262910 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:45:00,310 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 17:45:00,310 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 17:45:00,310 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 17:45:00,313 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 17:45:00,775 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 17, 44, 39), 15.95, 32.79, 0.0, 17.42, 11.95, 0, 0, 0, 2, 0, 0),)
2025-06-13 17:45:00,775 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 17:44:39
2025-06-13 17:45:00,857 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 17:45:00,861 [DEBUG][       Thread-262911][   transport.py][1871] : starting thread (client mode): 0x8636a3e0
2025-06-13 17:45:00,861 [DEBUG][       Thread-262911][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 17:45:00,881 [DEBUG][       Thread-262911][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 17:45:00,881 [ INFO][       Thread-262911][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 17:45:00,884 [DEBUG][       Thread-262911][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 17:45:00,884 [DEBUG][       Thread-262911][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 17:45:00,885 [DEBUG][       Thread-262911][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 17:45:00,885 [DEBUG][       Thread-262911][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:45:00,885 [DEBUG][       Thread-262911][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:45:00,885 [DEBUG][       Thread-262911][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:45:00,885 [DEBUG][       Thread-262911][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:45:00,885 [DEBUG][       Thread-262911][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 17:45:00,885 [DEBUG][       Thread-262911][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 17:45:00,885 [DEBUG][       Thread-262911][   transport.py][1871] : client lang: <none>
2025-06-13 17:45:00,885 [DEBUG][       Thread-262911][   transport.py][1871] : server lang: <none>
2025-06-13 17:45:00,885 [DEBUG][       Thread-262911][   transport.py][1871] : kex follows: False
2025-06-13 17:45:00,885 [DEBUG][       Thread-262911][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 17:45:00,885 [DEBUG][       Thread-262911][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 17:45:00,885 [DEBUG][       Thread-262911][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 17:45:00,885 [DEBUG][       Thread-262911][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 17:45:00,885 [DEBUG][       Thread-262911][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 17:45:00,885 [DEBUG][       Thread-262911][   transport.py][1871] : Compression: none
2025-06-13 17:45:00,885 [DEBUG][       Thread-262911][   transport.py][1871] : === End of kex handshake ===
2025-06-13 17:45:00,902 [DEBUG][       Thread-262911][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 17:45:00,903 [DEBUG][       Thread-262911][   transport.py][1871] : Switch to new keys ...
2025-06-13 17:45:00,904 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 17:45:00,904 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 17:45:00,904 [DEBUG][       Thread-262911][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 17:45:00,905 [DEBUG][       Thread-262911][   transport.py][1871] : userauth is OK
2025-06-13 17:45:00,930 [ INFO][       Thread-262911][   transport.py][1871] : Authentication (password) successful!
2025-06-13 17:45:00,931 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 17:45:01,607 [DEBUG][       Thread-262911][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 17:45:01,607 [DEBUG][       Thread-262911][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 17:45:01,648 [DEBUG][       Thread-262911][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 17:45:01,648 [DEBUG][       Thread-262911][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 17:45:01,651 [DEBUG][       Thread-262911][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 17:45:01,663 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 17:45:01,663 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 17:45:01,664 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 17:45:01,665 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 17:45:01,668 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 17:45:01,669 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 17:45:01,669 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 17:45:01,669 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 17:45:01,669 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.655836 -999.00  +11.60  16.19     37   -2.40 1 1 1 1 1   845    0 13.05 -33.65 ----- 18.6 16.2 46.2 22.8 12.5 -29.9 12.4 -30.0 12.1 -29.2 12.5 -29.0
2025-06-13 17:45:01,669 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 17:45:01,669 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 17:45:01,669 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.655836
2025-06-13 17:45:01,669 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 17:45:01,669 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 17:45:01,669 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 17:45:01,669 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 17:45:01,669 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 17:45:01,669 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T17:44:39', tmtdew=15.95, humidity=32.79, cloud=0.0, wind=17.42, temperature=11.95, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T15:44:24.230', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 17:45:01,670 [DEBUG][       Thread-262911][   transport.py][1871] : EOF in transport thread
2025-06-13 17:45:01,741 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 17:45:07,571 [DEBUG][Thread-262914 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:45:16,595 [DEBUG][Thread-262915 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:45:20,649 [DEBUG][Thread-262916 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:45:21,754 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:45:21,754 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:45:25,618 [DEBUG][Thread-262917 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:45:27,358 [DEBUG][Thread-262918 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:45:34,640 [DEBUG][Thread-262919 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:45:43,663 [DEBUG][Thread-262920 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:45:48,348 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:45:48,349 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:45:52,683 [DEBUG][Thread-262921 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:46:01,706 [DEBUG][Thread-262922 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:46:10,725 [DEBUG][Thread-262923 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:46:19,746 [DEBUG][Thread-262924 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:46:21,844 [DEBUG][Thread-262925 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:46:22,971 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:46:22,973 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:46:27,443 [DEBUG][Thread-262926 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:46:28,768 [DEBUG][Thread-262927 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:46:37,789 [DEBUG][Thread-262928 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:46:46,810 [DEBUG][Thread-262929 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:46:54,789 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:46:54,790 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:46:55,833 [DEBUG][Thread-262930 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:47:04,855 [DEBUG][Thread-262931 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:47:10,228 [WARNING][ poll_weather_worker][      driver.py][ 286] : Unable to open ssh connection for writing weather state to io.saao.ac.za: [Errno 110] Connection timed out
2025-06-13 17:47:13,879 [DEBUG][Thread-262932 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:47:20,239 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 17:47:20,239 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 17:47:20,239 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 17:47:20,239 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 17:47:20,752 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 17, 46, 14), 15.86, 32.94, 0.0, 14.24, 11.7, 0, 0, 0, 2, 0, 0),)
2025-06-13 17:47:20,752 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 17:46:14
2025-06-13 17:47:20,839 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 17:47:20,845 [DEBUG][       Thread-262933][   transport.py][1871] : starting thread (client mode): 0x84222c80
2025-06-13 17:47:20,845 [DEBUG][       Thread-262933][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 17:47:20,865 [DEBUG][       Thread-262933][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 17:47:20,865 [ INFO][       Thread-262933][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 17:47:20,868 [DEBUG][       Thread-262933][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 17:47:20,868 [DEBUG][       Thread-262933][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 17:47:20,868 [DEBUG][       Thread-262933][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 17:47:20,868 [DEBUG][       Thread-262933][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:47:20,868 [DEBUG][       Thread-262933][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:47:20,868 [DEBUG][       Thread-262933][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:47:20,868 [DEBUG][       Thread-262933][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:47:20,868 [DEBUG][       Thread-262933][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 17:47:20,868 [DEBUG][       Thread-262933][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 17:47:20,868 [DEBUG][       Thread-262933][   transport.py][1871] : client lang: <none>
2025-06-13 17:47:20,868 [DEBUG][       Thread-262933][   transport.py][1871] : server lang: <none>
2025-06-13 17:47:20,868 [DEBUG][       Thread-262933][   transport.py][1871] : kex follows: False
2025-06-13 17:47:20,868 [DEBUG][       Thread-262933][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 17:47:20,868 [DEBUG][       Thread-262933][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 17:47:20,868 [DEBUG][       Thread-262933][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 17:47:20,868 [DEBUG][       Thread-262933][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 17:47:20,868 [DEBUG][       Thread-262933][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 17:47:20,868 [DEBUG][       Thread-262933][   transport.py][1871] : Compression: none
2025-06-13 17:47:20,868 [DEBUG][       Thread-262933][   transport.py][1871] : === End of kex handshake ===
2025-06-13 17:47:20,886 [DEBUG][       Thread-262933][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 17:47:20,886 [DEBUG][       Thread-262933][   transport.py][1871] : Switch to new keys ...
2025-06-13 17:47:20,886 [DEBUG][       Thread-262933][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 17:47:20,886 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 17:47:20,886 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 17:47:20,887 [DEBUG][       Thread-262933][   transport.py][1871] : userauth is OK
2025-06-13 17:47:20,912 [ INFO][       Thread-262933][   transport.py][1871] : Authentication (password) successful!
2025-06-13 17:47:20,912 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 17:47:21,553 [DEBUG][       Thread-262933][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 17:47:21,553 [DEBUG][       Thread-262933][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 17:47:21,596 [DEBUG][       Thread-262933][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 17:47:21,596 [DEBUG][       Thread-262933][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 17:47:21,599 [DEBUG][       Thread-262933][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 17:47:21,610 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 17:47:21,610 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 17:47:21,611 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 17:47:21,612 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 17:47:21,615 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 17:47:21,616 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 17:47:21,616 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 17:47:21,616 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 17:47:21,616 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.657572 -999.00  +11.60  19.18     37   -2.50 1 1 1 1 1   821    0 13.22 -27.42 ----- 15.8 19.2 52.6 20.7 12.3 -29.9 12.2 -29.7 12.0 -28.9 12.2 -28.8
2025-06-13 17:47:21,616 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 17:47:21,616 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 17:47:21,617 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.657572
2025-06-13 17:47:21,617 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 17:47:21,617 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 17:47:21,617 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 17:47:21,617 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 17:47:21,617 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 17:47:21,617 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T17:46:14', tmtdew=15.86, humidity=32.94, cloud=0.0, wind=14.24, temperature=11.7, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T15:46:54.221', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 17:47:21,618 [DEBUG][       Thread-262933][   transport.py][1871] : EOF in transport thread
2025-06-13 17:47:21,691 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 17:47:21,703 [DEBUG][       Thread-262936][   transport.py][1871] : starting thread (client mode): 0x863c8e50
2025-06-13 17:47:21,704 [DEBUG][       Thread-262936][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 17:47:21,718 [DEBUG][       Thread-262936][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 17:47:21,718 [ INFO][       Thread-262936][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 17:47:21,726 [DEBUG][       Thread-262936][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 17:47:21,726 [DEBUG][       Thread-262936][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 17:47:21,726 [DEBUG][       Thread-262936][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 17:47:21,726 [DEBUG][       Thread-262936][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:47:21,726 [DEBUG][       Thread-262936][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:47:21,726 [DEBUG][       Thread-262936][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:47:21,726 [DEBUG][       Thread-262936][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:47:21,726 [DEBUG][       Thread-262936][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 17:47:21,726 [DEBUG][       Thread-262936][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 17:47:21,726 [DEBUG][       Thread-262936][   transport.py][1871] : client lang: <none>
2025-06-13 17:47:21,726 [DEBUG][       Thread-262936][   transport.py][1871] : server lang: <none>
2025-06-13 17:47:21,726 [DEBUG][       Thread-262936][   transport.py][1871] : kex follows: False
2025-06-13 17:47:21,726 [DEBUG][       Thread-262936][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 17:47:21,726 [DEBUG][       Thread-262936][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 17:47:21,726 [DEBUG][       Thread-262936][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 17:47:21,726 [DEBUG][       Thread-262936][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 17:47:21,726 [DEBUG][       Thread-262936][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 17:47:21,726 [DEBUG][       Thread-262936][   transport.py][1871] : Compression: none
2025-06-13 17:47:21,726 [DEBUG][       Thread-262936][   transport.py][1871] : === End of kex handshake ===
2025-06-13 17:47:21,786 [DEBUG][       Thread-262936][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 17:47:21,786 [DEBUG][       Thread-262936][   transport.py][1871] : Switch to new keys ...
2025-06-13 17:47:21,786 [DEBUG][       Thread-262936][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 17:47:21,786 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 17:47:21,786 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 17:47:21,842 [DEBUG][       Thread-262936][   transport.py][1871] : userauth is OK
2025-06-13 17:47:21,842 [DEBUG][       Thread-262936][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 17:47:21,842 [DEBUG][       Thread-262936][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 17:47:21,842 [DEBUG][       Thread-262936][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 17:47:21,842 [DEBUG][       Thread-262936][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 17:47:21,856 [ INFO][       Thread-262936][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 17:47:21,856 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 17:47:21,856 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 17:47:22,872 [DEBUG][       Thread-262936][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 17:47:22,872 [DEBUG][       Thread-262936][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 17:47:22,897 [DEBUG][Thread-262938 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:47:22,926 [DEBUG][       Thread-262936][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 17:47:22,926 [DEBUG][       Thread-262936][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 17:47:22,937 [DEBUG][       Thread-262936][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 17:47:22,945 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 17:47:22,945 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 17:47:22,953 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 17:47:22,961 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 17:47:22,961 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 17:47:22,961 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 17:47:22,969 [DEBUG][       Thread-262936][   transport.py][1871] : EOF in transport thread
2025-06-13 17:47:23,064 [DEBUG][Thread-262939 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:47:24,155 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:47:24,156 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:47:27,516 [DEBUG][Thread-262940 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:47:31,926 [DEBUG][Thread-262941 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:47:32,971 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 17:47:32,972 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 17:47:32,972 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 17:47:32,975 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 17:47:33,437 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 17, 46, 14), 15.86, 32.94, 0.0, 14.24, 11.7, 0, 0, 0, 2, 0, 0),)
2025-06-13 17:47:33,437 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 17:46:14
2025-06-13 17:47:33,517 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 17:47:33,521 [DEBUG][       Thread-262942][   transport.py][1871] : starting thread (client mode): 0x863cb040
2025-06-13 17:47:33,521 [DEBUG][       Thread-262942][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 17:47:33,540 [DEBUG][       Thread-262942][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 17:47:33,540 [ INFO][       Thread-262942][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 17:47:33,544 [DEBUG][       Thread-262942][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 17:47:33,544 [DEBUG][       Thread-262942][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 17:47:33,544 [DEBUG][       Thread-262942][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 17:47:33,544 [DEBUG][       Thread-262942][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:47:33,544 [DEBUG][       Thread-262942][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:47:33,544 [DEBUG][       Thread-262942][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:47:33,544 [DEBUG][       Thread-262942][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:47:33,544 [DEBUG][       Thread-262942][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 17:47:33,544 [DEBUG][       Thread-262942][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 17:47:33,544 [DEBUG][       Thread-262942][   transport.py][1871] : client lang: <none>
2025-06-13 17:47:33,544 [DEBUG][       Thread-262942][   transport.py][1871] : server lang: <none>
2025-06-13 17:47:33,544 [DEBUG][       Thread-262942][   transport.py][1871] : kex follows: False
2025-06-13 17:47:33,544 [DEBUG][       Thread-262942][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 17:47:33,544 [DEBUG][       Thread-262942][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 17:47:33,544 [DEBUG][       Thread-262942][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 17:47:33,544 [DEBUG][       Thread-262942][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 17:47:33,545 [DEBUG][       Thread-262942][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 17:47:33,545 [DEBUG][       Thread-262942][   transport.py][1871] : Compression: none
2025-06-13 17:47:33,545 [DEBUG][       Thread-262942][   transport.py][1871] : === End of kex handshake ===
2025-06-13 17:47:33,559 [DEBUG][       Thread-262942][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 17:47:33,560 [DEBUG][       Thread-262942][   transport.py][1871] : Switch to new keys ...
2025-06-13 17:47:33,560 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 17:47:33,560 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 17:47:33,561 [DEBUG][       Thread-262942][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 17:47:33,561 [DEBUG][       Thread-262942][   transport.py][1871] : userauth is OK
2025-06-13 17:47:33,587 [ INFO][       Thread-262942][   transport.py][1871] : Authentication (password) successful!
2025-06-13 17:47:33,587 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 17:47:34,222 [DEBUG][       Thread-262942][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 17:47:34,222 [DEBUG][       Thread-262942][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 17:47:34,265 [DEBUG][       Thread-262942][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 17:47:34,265 [DEBUG][       Thread-262942][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 17:47:34,268 [DEBUG][       Thread-262942][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 17:47:34,280 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 17:47:34,280 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 17:47:34,282 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 17:47:34,284 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 17:47:34,289 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 17:47:34,291 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 17:47:34,291 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 17:47:34,291 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 17:47:34,292 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.657572 -999.00  +11.60  19.18     37   -2.50 1 1 1 1 1   821    0 13.22 -27.42 ----- 15.8 19.2 52.6 20.7 12.3 -29.9 12.2 -29.7 12.0 -28.9 12.2 -28.8
2025-06-13 17:47:34,292 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 17:47:34,292 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 17:47:34,292 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.657572
2025-06-13 17:47:34,292 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 17:47:34,293 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 17:47:34,293 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 17:47:34,293 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 17:47:34,293 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 17:47:34,293 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T17:46:14', tmtdew=15.86, humidity=32.94, cloud=0.0, wind=14.24, temperature=11.7, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T15:46:54.221', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 17:47:34,293 [DEBUG][       Thread-262942][   transport.py][1871] : EOF in transport thread
2025-06-13 17:47:34,377 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 17:47:34,387 [DEBUG][       Thread-262945][   transport.py][1871] : starting thread (client mode): 0x868c8520
2025-06-13 17:47:34,387 [DEBUG][       Thread-262945][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 17:47:34,402 [DEBUG][       Thread-262945][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 17:47:34,403 [ INFO][       Thread-262945][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 17:47:34,410 [DEBUG][       Thread-262945][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 17:47:34,410 [DEBUG][       Thread-262945][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 17:47:34,410 [DEBUG][       Thread-262945][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 17:47:34,410 [DEBUG][       Thread-262945][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:47:34,410 [DEBUG][       Thread-262945][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:47:34,411 [DEBUG][       Thread-262945][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:47:34,411 [DEBUG][       Thread-262945][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:47:34,411 [DEBUG][       Thread-262945][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 17:47:34,411 [DEBUG][       Thread-262945][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 17:47:34,411 [DEBUG][       Thread-262945][   transport.py][1871] : client lang: <none>
2025-06-13 17:47:34,411 [DEBUG][       Thread-262945][   transport.py][1871] : server lang: <none>
2025-06-13 17:47:34,411 [DEBUG][       Thread-262945][   transport.py][1871] : kex follows: False
2025-06-13 17:47:34,411 [DEBUG][       Thread-262945][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 17:47:34,411 [DEBUG][       Thread-262945][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 17:47:34,411 [DEBUG][       Thread-262945][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 17:47:34,411 [DEBUG][       Thread-262945][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 17:47:34,411 [DEBUG][       Thread-262945][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 17:47:34,411 [DEBUG][       Thread-262945][   transport.py][1871] : Compression: none
2025-06-13 17:47:34,411 [DEBUG][       Thread-262945][   transport.py][1871] : === End of kex handshake ===
2025-06-13 17:47:34,470 [DEBUG][       Thread-262945][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 17:47:34,471 [DEBUG][       Thread-262945][   transport.py][1871] : Switch to new keys ...
2025-06-13 17:47:34,472 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 17:47:34,472 [DEBUG][       Thread-262945][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 17:47:34,473 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 17:47:34,527 [DEBUG][       Thread-262945][   transport.py][1871] : userauth is OK
2025-06-13 17:47:34,527 [DEBUG][       Thread-262945][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 17:47:34,527 [DEBUG][       Thread-262945][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 17:47:34,527 [DEBUG][       Thread-262945][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 17:47:34,527 [DEBUG][       Thread-262945][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 17:47:34,546 [ INFO][       Thread-262945][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 17:47:34,547 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 17:47:34,547 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 17:47:35,543 [DEBUG][       Thread-262945][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 17:47:35,543 [DEBUG][       Thread-262945][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 17:47:35,591 [DEBUG][       Thread-262945][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 17:47:35,592 [DEBUG][       Thread-262945][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 17:47:35,601 [DEBUG][       Thread-262945][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 17:47:35,613 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 17:47:35,614 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 17:47:35,624 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 17:47:35,633 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 17:47:35,634 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 17:47:35,634 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 17:47:35,642 [DEBUG][       Thread-262945][   transport.py][1871] : EOF in transport thread
2025-06-13 17:47:40,950 [DEBUG][Thread-262947 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:47:45,645 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 17:47:45,645 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 17:47:45,645 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 17:47:45,648 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 17:47:46,103 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 17, 46, 14), 15.86, 32.94, 0.0, 14.24, 11.7, 0, 0, 0, 2, 0, 0),)
2025-06-13 17:47:46,103 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 17:46:14
2025-06-13 17:47:46,183 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 17:47:46,189 [DEBUG][       Thread-262948][   transport.py][1871] : starting thread (client mode): 0x867feef0
2025-06-13 17:47:46,189 [DEBUG][       Thread-262948][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 17:47:46,210 [DEBUG][       Thread-262948][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 17:47:46,210 [ INFO][       Thread-262948][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 17:47:46,211 [DEBUG][       Thread-262948][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 17:47:46,211 [DEBUG][       Thread-262948][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 17:47:46,212 [DEBUG][       Thread-262948][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 17:47:46,212 [DEBUG][       Thread-262948][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:47:46,212 [DEBUG][       Thread-262948][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:47:46,212 [DEBUG][       Thread-262948][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:47:46,212 [DEBUG][       Thread-262948][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:47:46,212 [DEBUG][       Thread-262948][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 17:47:46,212 [DEBUG][       Thread-262948][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 17:47:46,212 [DEBUG][       Thread-262948][   transport.py][1871] : client lang: <none>
2025-06-13 17:47:46,212 [DEBUG][       Thread-262948][   transport.py][1871] : server lang: <none>
2025-06-13 17:47:46,212 [DEBUG][       Thread-262948][   transport.py][1871] : kex follows: False
2025-06-13 17:47:46,212 [DEBUG][       Thread-262948][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 17:47:46,212 [DEBUG][       Thread-262948][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 17:47:46,212 [DEBUG][       Thread-262948][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 17:47:46,212 [DEBUG][       Thread-262948][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 17:47:46,212 [DEBUG][       Thread-262948][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 17:47:46,212 [DEBUG][       Thread-262948][   transport.py][1871] : Compression: none
2025-06-13 17:47:46,212 [DEBUG][       Thread-262948][   transport.py][1871] : === End of kex handshake ===
2025-06-13 17:47:46,229 [DEBUG][       Thread-262948][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 17:47:46,229 [DEBUG][       Thread-262948][   transport.py][1871] : Switch to new keys ...
2025-06-13 17:47:46,230 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 17:47:46,230 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 17:47:46,231 [DEBUG][       Thread-262948][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 17:47:46,231 [DEBUG][       Thread-262948][   transport.py][1871] : userauth is OK
2025-06-13 17:47:46,244 [ INFO][       Thread-262948][   transport.py][1871] : Authentication (password) successful!
2025-06-13 17:47:46,245 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 17:47:46,894 [DEBUG][       Thread-262948][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 17:47:46,894 [DEBUG][       Thread-262948][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 17:47:46,937 [DEBUG][       Thread-262948][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 17:47:46,937 [DEBUG][       Thread-262948][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 17:47:46,941 [DEBUG][       Thread-262948][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 17:47:46,952 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 17:47:46,952 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 17:47:46,955 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 17:47:46,957 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 17:47:46,964 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 17:47:46,966 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 17:47:46,966 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 17:47:46,967 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 17:47:46,967 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.657920 -999.00  +11.60  15.15     37   -2.40 1 1 1 1 1   815    0 13.29 -27.57 ----- 16.4 15.2 41.0 22.8 12.3 -29.9 12.2 -29.9 11.9 -29.1 12.2 -29.0
2025-06-13 17:47:46,967 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 17:47:46,967 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 17:47:46,967 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.657920
2025-06-13 17:47:46,968 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 17:47:46,968 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 17:47:46,968 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 17:47:46,968 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 17:47:46,969 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 17:47:46,969 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T17:46:14', tmtdew=15.86, humidity=32.94, cloud=0.0, wind=14.24, temperature=11.7, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T15:47:24.288', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 17:47:46,970 [DEBUG][       Thread-262948][   transport.py][1871] : EOF in transport thread
2025-06-13 17:47:47,052 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 17:47:47,067 [DEBUG][       Thread-262951][   transport.py][1871] : starting thread (client mode): 0x863c86a0
2025-06-13 17:47:47,067 [DEBUG][       Thread-262951][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 17:47:47,083 [DEBUG][       Thread-262951][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 17:47:47,083 [ INFO][       Thread-262951][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 17:47:47,090 [DEBUG][       Thread-262951][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 17:47:47,090 [DEBUG][       Thread-262951][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 17:47:47,090 [DEBUG][       Thread-262951][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 17:47:47,090 [DEBUG][       Thread-262951][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:47:47,090 [DEBUG][       Thread-262951][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:47:47,090 [DEBUG][       Thread-262951][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:47:47,090 [DEBUG][       Thread-262951][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:47:47,090 [DEBUG][       Thread-262951][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 17:47:47,090 [DEBUG][       Thread-262951][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 17:47:47,090 [DEBUG][       Thread-262951][   transport.py][1871] : client lang: <none>
2025-06-13 17:47:47,090 [DEBUG][       Thread-262951][   transport.py][1871] : server lang: <none>
2025-06-13 17:47:47,090 [DEBUG][       Thread-262951][   transport.py][1871] : kex follows: False
2025-06-13 17:47:47,090 [DEBUG][       Thread-262951][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 17:47:47,090 [DEBUG][       Thread-262951][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 17:47:47,090 [DEBUG][       Thread-262951][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 17:47:47,090 [DEBUG][       Thread-262951][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 17:47:47,090 [DEBUG][       Thread-262951][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 17:47:47,090 [DEBUG][       Thread-262951][   transport.py][1871] : Compression: none
2025-06-13 17:47:47,090 [DEBUG][       Thread-262951][   transport.py][1871] : === End of kex handshake ===
2025-06-13 17:47:47,149 [DEBUG][       Thread-262951][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 17:47:47,149 [DEBUG][       Thread-262951][   transport.py][1871] : Switch to new keys ...
2025-06-13 17:47:47,149 [DEBUG][       Thread-262951][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 17:47:47,149 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 17:47:47,149 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 17:47:47,207 [DEBUG][       Thread-262951][   transport.py][1871] : userauth is OK
2025-06-13 17:47:47,208 [DEBUG][       Thread-262951][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 17:47:47,208 [DEBUG][       Thread-262951][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 17:47:47,208 [DEBUG][       Thread-262951][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 17:47:47,208 [DEBUG][       Thread-262951][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 17:47:47,226 [ INFO][       Thread-262951][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 17:47:47,226 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 17:47:47,227 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 17:47:48,251 [DEBUG][       Thread-262951][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 17:47:48,251 [DEBUG][       Thread-262951][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 17:47:48,300 [DEBUG][       Thread-262951][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 17:47:48,300 [DEBUG][       Thread-262951][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 17:47:48,310 [DEBUG][       Thread-262951][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 17:47:48,318 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 17:47:48,319 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 17:47:48,328 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 17:47:48,337 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 17:47:48,337 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 17:47:48,338 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 17:47:48,346 [DEBUG][       Thread-262951][   transport.py][1871] : EOF in transport thread
2025-06-13 17:47:49,975 [DEBUG][Thread-262953 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:47:58,348 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 17:47:58,348 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 17:47:58,348 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 17:47:58,349 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 17:47:58,816 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 17, 47, 49), 15.83, 33.03, 0.0, 15.67, 11.71, 0, 0, 0, 2, 0, 0),)
2025-06-13 17:47:58,816 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 17:47:49
2025-06-13 17:47:58,904 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 17:47:58,908 [DEBUG][       Thread-262954][   transport.py][1871] : starting thread (client mode): 0x863cb820
2025-06-13 17:47:58,908 [DEBUG][       Thread-262954][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 17:47:58,929 [DEBUG][       Thread-262954][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 17:47:58,929 [ INFO][       Thread-262954][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 17:47:58,932 [DEBUG][       Thread-262954][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 17:47:58,932 [DEBUG][       Thread-262954][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 17:47:58,932 [DEBUG][       Thread-262954][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 17:47:58,932 [DEBUG][       Thread-262954][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:47:58,932 [DEBUG][       Thread-262954][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:47:58,932 [DEBUG][       Thread-262954][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:47:58,932 [DEBUG][       Thread-262954][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:47:58,932 [DEBUG][       Thread-262954][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 17:47:58,932 [DEBUG][       Thread-262954][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 17:47:58,932 [DEBUG][       Thread-262954][   transport.py][1871] : client lang: <none>
2025-06-13 17:47:58,932 [DEBUG][       Thread-262954][   transport.py][1871] : server lang: <none>
2025-06-13 17:47:58,932 [DEBUG][       Thread-262954][   transport.py][1871] : kex follows: False
2025-06-13 17:47:58,932 [DEBUG][       Thread-262954][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 17:47:58,932 [DEBUG][       Thread-262954][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 17:47:58,932 [DEBUG][       Thread-262954][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 17:47:58,932 [DEBUG][       Thread-262954][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 17:47:58,932 [DEBUG][       Thread-262954][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 17:47:58,932 [DEBUG][       Thread-262954][   transport.py][1871] : Compression: none
2025-06-13 17:47:58,932 [DEBUG][       Thread-262954][   transport.py][1871] : === End of kex handshake ===
2025-06-13 17:47:58,948 [DEBUG][       Thread-262954][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 17:47:58,948 [DEBUG][       Thread-262954][   transport.py][1871] : Switch to new keys ...
2025-06-13 17:47:58,948 [DEBUG][       Thread-262954][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 17:47:58,948 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 17:47:58,948 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 17:47:58,949 [DEBUG][       Thread-262954][   transport.py][1871] : userauth is OK
2025-06-13 17:47:58,961 [ INFO][       Thread-262954][   transport.py][1871] : Authentication (password) successful!
2025-06-13 17:47:58,961 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 17:47:58,995 [DEBUG][Thread-262956 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:47:59,620 [DEBUG][       Thread-262954][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 17:47:59,620 [DEBUG][       Thread-262954][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 17:47:59,661 [DEBUG][       Thread-262954][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 17:47:59,661 [DEBUG][       Thread-262954][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 17:47:59,663 [DEBUG][       Thread-262954][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 17:47:59,675 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 17:47:59,675 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 17:47:59,676 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 17:47:59,677 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 17:47:59,680 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 17:47:59,681 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 17:47:59,681 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 17:47:59,681 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 17:47:59,681 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.657920 -999.00  +11.60  15.15     37   -2.40 1 1 1 1 1   815    0 13.29 -27.57 ----- 16.4 15.2 41.0 22.8 12.3 -29.9 12.2 -29.9 11.9 -29.1 12.2 -29.0
2025-06-13 17:47:59,681 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 17:47:59,681 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 17:47:59,681 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.657920
2025-06-13 17:47:59,681 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 17:47:59,681 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 17:47:59,681 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 17:47:59,681 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 17:47:59,681 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 17:47:59,681 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T17:47:49', tmtdew=15.83, humidity=33.03, cloud=0.0, wind=15.67, temperature=11.71, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T15:47:24.288', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 17:47:59,682 [DEBUG][       Thread-262954][   transport.py][1871] : EOF in transport thread
2025-06-13 17:47:59,755 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 17:47:59,765 [DEBUG][       Thread-262958][   transport.py][1871] : starting thread (client mode): 0x867b7010
2025-06-13 17:47:59,765 [DEBUG][       Thread-262958][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 17:47:59,781 [DEBUG][       Thread-262958][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 17:47:59,781 [ INFO][       Thread-262958][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 17:47:59,792 [DEBUG][       Thread-262958][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 17:47:59,792 [DEBUG][       Thread-262958][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 17:47:59,792 [DEBUG][       Thread-262958][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 17:47:59,792 [DEBUG][       Thread-262958][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:47:59,792 [DEBUG][       Thread-262958][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:47:59,792 [DEBUG][       Thread-262958][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:47:59,792 [DEBUG][       Thread-262958][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:47:59,792 [DEBUG][       Thread-262958][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 17:47:59,792 [DEBUG][       Thread-262958][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 17:47:59,792 [DEBUG][       Thread-262958][   transport.py][1871] : client lang: <none>
2025-06-13 17:47:59,792 [DEBUG][       Thread-262958][   transport.py][1871] : server lang: <none>
2025-06-13 17:47:59,792 [DEBUG][       Thread-262958][   transport.py][1871] : kex follows: False
2025-06-13 17:47:59,792 [DEBUG][       Thread-262958][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 17:47:59,792 [DEBUG][       Thread-262958][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 17:47:59,792 [DEBUG][       Thread-262958][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 17:47:59,792 [DEBUG][       Thread-262958][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 17:47:59,792 [DEBUG][       Thread-262958][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 17:47:59,792 [DEBUG][       Thread-262958][   transport.py][1871] : Compression: none
2025-06-13 17:47:59,792 [DEBUG][       Thread-262958][   transport.py][1871] : === End of kex handshake ===
2025-06-13 17:47:59,844 [DEBUG][       Thread-262958][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 17:47:59,845 [DEBUG][       Thread-262958][   transport.py][1871] : Switch to new keys ...
2025-06-13 17:47:59,845 [DEBUG][       Thread-262958][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 17:47:59,845 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 17:47:59,845 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 17:47:59,902 [DEBUG][       Thread-262958][   transport.py][1871] : userauth is OK
2025-06-13 17:47:59,902 [DEBUG][       Thread-262958][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 17:47:59,902 [DEBUG][       Thread-262958][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 17:47:59,902 [DEBUG][       Thread-262958][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 17:47:59,902 [DEBUG][       Thread-262958][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 17:47:59,916 [ INFO][       Thread-262958][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 17:47:59,917 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 17:47:59,917 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 17:48:00,919 [DEBUG][       Thread-262958][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 17:48:00,919 [DEBUG][       Thread-262958][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 17:48:00,967 [DEBUG][       Thread-262958][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 17:48:00,967 [DEBUG][       Thread-262958][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 17:48:00,976 [DEBUG][       Thread-262958][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 17:48:00,984 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 17:48:00,984 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 17:48:00,992 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 17:48:01,000 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 17:48:01,000 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 17:48:01,000 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 17:48:01,008 [DEBUG][       Thread-262958][   transport.py][1871] : EOF in transport thread
2025-06-13 17:48:02,170 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:48:02,172 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:48:08,014 [DEBUG][Thread-262960 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:48:11,011 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 17:48:11,011 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 17:48:11,011 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 17:48:11,014 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 17:48:11,478 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 17, 47, 49), 15.83, 33.03, 0.0, 15.67, 11.71, 0, 0, 0, 2, 0, 0),)
2025-06-13 17:48:11,478 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 17:47:49
2025-06-13 17:48:11,559 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 17:48:11,565 [DEBUG][       Thread-262961][   transport.py][1871] : starting thread (client mode): 0x867b7010
2025-06-13 17:48:11,565 [DEBUG][       Thread-262961][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 17:48:11,585 [DEBUG][       Thread-262961][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 17:48:11,585 [ INFO][       Thread-262961][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 17:48:11,589 [DEBUG][       Thread-262961][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 17:48:11,589 [DEBUG][       Thread-262961][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 17:48:11,589 [DEBUG][       Thread-262961][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 17:48:11,589 [DEBUG][       Thread-262961][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:48:11,589 [DEBUG][       Thread-262961][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:48:11,589 [DEBUG][       Thread-262961][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:48:11,589 [DEBUG][       Thread-262961][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:48:11,589 [DEBUG][       Thread-262961][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 17:48:11,589 [DEBUG][       Thread-262961][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 17:48:11,589 [DEBUG][       Thread-262961][   transport.py][1871] : client lang: <none>
2025-06-13 17:48:11,589 [DEBUG][       Thread-262961][   transport.py][1871] : server lang: <none>
2025-06-13 17:48:11,589 [DEBUG][       Thread-262961][   transport.py][1871] : kex follows: False
2025-06-13 17:48:11,589 [DEBUG][       Thread-262961][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 17:48:11,589 [DEBUG][       Thread-262961][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 17:48:11,590 [DEBUG][       Thread-262961][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 17:48:11,590 [DEBUG][       Thread-262961][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 17:48:11,590 [DEBUG][       Thread-262961][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 17:48:11,590 [DEBUG][       Thread-262961][   transport.py][1871] : Compression: none
2025-06-13 17:48:11,590 [DEBUG][       Thread-262961][   transport.py][1871] : === End of kex handshake ===
2025-06-13 17:48:11,605 [DEBUG][       Thread-262961][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 17:48:11,606 [DEBUG][       Thread-262961][   transport.py][1871] : Switch to new keys ...
2025-06-13 17:48:11,606 [DEBUG][       Thread-262961][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 17:48:11,607 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 17:48:11,607 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 17:48:11,608 [DEBUG][       Thread-262961][   transport.py][1871] : userauth is OK
2025-06-13 17:48:11,634 [ INFO][       Thread-262961][   transport.py][1871] : Authentication (password) successful!
2025-06-13 17:48:11,635 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 17:48:12,253 [DEBUG][       Thread-262961][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 17:48:12,253 [DEBUG][       Thread-262961][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 17:48:12,297 [DEBUG][       Thread-262961][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 17:48:12,297 [DEBUG][       Thread-262961][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 17:48:12,299 [DEBUG][       Thread-262961][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 17:48:12,312 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 17:48:12,312 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 17:48:12,314 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 17:48:12,316 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 17:48:12,321 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 17:48:12,322 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 17:48:12,323 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 17:48:12,323 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 17:48:12,323 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.657920 -999.00  +11.60  15.15     37   -2.40 1 1 1 1 1   815    0 13.29 -27.57 ----- 16.4 15.2 41.0 22.8 12.3 -29.9 12.2 -29.9 11.9 -29.1 12.2 -29.0
2025-06-13 17:48:12,324 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 17:48:12,324 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 17:48:12,324 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.657920
2025-06-13 17:48:12,324 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 17:48:12,325 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 17:48:12,325 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 17:48:12,325 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 17:48:12,325 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 17:48:12,325 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T17:47:49', tmtdew=15.83, humidity=33.03, cloud=0.0, wind=15.67, temperature=11.71, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T15:47:24.288', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 17:48:12,325 [DEBUG][       Thread-262961][   transport.py][1871] : EOF in transport thread
2025-06-13 17:48:12,408 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 17:48:12,422 [DEBUG][       Thread-262964][   transport.py][1871] : starting thread (client mode): 0x863ee890
2025-06-13 17:48:12,422 [DEBUG][       Thread-262964][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 17:48:12,442 [DEBUG][       Thread-262964][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 17:48:12,442 [ INFO][       Thread-262964][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 17:48:12,450 [DEBUG][       Thread-262964][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 17:48:12,450 [DEBUG][       Thread-262964][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 17:48:12,450 [DEBUG][       Thread-262964][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 17:48:12,450 [DEBUG][       Thread-262964][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:48:12,450 [DEBUG][       Thread-262964][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:48:12,450 [DEBUG][       Thread-262964][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:48:12,450 [DEBUG][       Thread-262964][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:48:12,450 [DEBUG][       Thread-262964][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 17:48:12,450 [DEBUG][       Thread-262964][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 17:48:12,450 [DEBUG][       Thread-262964][   transport.py][1871] : client lang: <none>
2025-06-13 17:48:12,451 [DEBUG][       Thread-262964][   transport.py][1871] : server lang: <none>
2025-06-13 17:48:12,451 [DEBUG][       Thread-262964][   transport.py][1871] : kex follows: False
2025-06-13 17:48:12,451 [DEBUG][       Thread-262964][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 17:48:12,451 [DEBUG][       Thread-262964][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 17:48:12,451 [DEBUG][       Thread-262964][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 17:48:12,451 [DEBUG][       Thread-262964][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 17:48:12,451 [DEBUG][       Thread-262964][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 17:48:12,451 [DEBUG][       Thread-262964][   transport.py][1871] : Compression: none
2025-06-13 17:48:12,451 [DEBUG][       Thread-262964][   transport.py][1871] : === End of kex handshake ===
2025-06-13 17:48:12,509 [DEBUG][       Thread-262964][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 17:48:12,510 [DEBUG][       Thread-262964][   transport.py][1871] : Switch to new keys ...
2025-06-13 17:48:12,510 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 17:48:12,511 [DEBUG][       Thread-262964][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 17:48:12,511 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 17:48:12,567 [DEBUG][       Thread-262964][   transport.py][1871] : userauth is OK
2025-06-13 17:48:12,567 [DEBUG][       Thread-262964][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 17:48:12,567 [DEBUG][       Thread-262964][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 17:48:12,568 [DEBUG][       Thread-262964][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 17:48:12,568 [DEBUG][       Thread-262964][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 17:48:12,589 [ INFO][       Thread-262964][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 17:48:12,589 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 17:48:12,589 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 17:48:13,640 [DEBUG][       Thread-262964][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 17:48:13,640 [DEBUG][       Thread-262964][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 17:48:13,692 [DEBUG][       Thread-262964][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 17:48:13,692 [DEBUG][       Thread-262964][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 17:48:13,701 [DEBUG][       Thread-262964][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 17:48:13,709 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 17:48:13,709 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 17:48:13,718 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 17:48:13,726 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 17:48:13,726 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 17:48:13,726 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 17:48:13,734 [DEBUG][       Thread-262964][   transport.py][1871] : EOF in transport thread
2025-06-13 17:48:17,057 [DEBUG][Thread-262966 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:48:23,732 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 17:48:23,732 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 17:48:23,732 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 17:48:23,735 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 17:48:24,196 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 17, 48, 21), 15.87, 32.68, 0.0, 15.07, 11.68, 0, 0, 0, 2, 0, 0),)
2025-06-13 17:48:24,196 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 17:48:21
2025-06-13 17:48:24,260 [DEBUG][Thread-262967 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:48:24,277 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 17:48:24,281 [DEBUG][       Thread-262968][   transport.py][1871] : starting thread (client mode): 0x867ff2b0
2025-06-13 17:48:24,281 [DEBUG][       Thread-262968][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 17:48:24,301 [DEBUG][       Thread-262968][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 17:48:24,301 [ INFO][       Thread-262968][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 17:48:24,303 [DEBUG][       Thread-262968][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 17:48:24,303 [DEBUG][       Thread-262968][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 17:48:24,303 [DEBUG][       Thread-262968][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 17:48:24,303 [DEBUG][       Thread-262968][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:48:24,303 [DEBUG][       Thread-262968][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:48:24,303 [DEBUG][       Thread-262968][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:48:24,303 [DEBUG][       Thread-262968][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:48:24,303 [DEBUG][       Thread-262968][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 17:48:24,303 [DEBUG][       Thread-262968][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 17:48:24,303 [DEBUG][       Thread-262968][   transport.py][1871] : client lang: <none>
2025-06-13 17:48:24,303 [DEBUG][       Thread-262968][   transport.py][1871] : server lang: <none>
2025-06-13 17:48:24,303 [DEBUG][       Thread-262968][   transport.py][1871] : kex follows: False
2025-06-13 17:48:24,303 [DEBUG][       Thread-262968][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 17:48:24,303 [DEBUG][       Thread-262968][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 17:48:24,303 [DEBUG][       Thread-262968][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 17:48:24,303 [DEBUG][       Thread-262968][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 17:48:24,303 [DEBUG][       Thread-262968][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 17:48:24,303 [DEBUG][       Thread-262968][   transport.py][1871] : Compression: none
2025-06-13 17:48:24,303 [DEBUG][       Thread-262968][   transport.py][1871] : === End of kex handshake ===
2025-06-13 17:48:24,310 [DEBUG][       Thread-262968][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 17:48:24,310 [DEBUG][       Thread-262968][   transport.py][1871] : Switch to new keys ...
2025-06-13 17:48:24,310 [DEBUG][       Thread-262968][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 17:48:24,310 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 17:48:24,310 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 17:48:24,311 [DEBUG][       Thread-262968][   transport.py][1871] : userauth is OK
2025-06-13 17:48:24,324 [ INFO][       Thread-262968][   transport.py][1871] : Authentication (password) successful!
2025-06-13 17:48:24,324 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 17:48:24,972 [DEBUG][       Thread-262968][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 17:48:24,972 [DEBUG][       Thread-262968][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 17:48:25,013 [DEBUG][       Thread-262968][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 17:48:25,013 [DEBUG][       Thread-262968][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 17:48:25,017 [DEBUG][       Thread-262968][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 17:48:25,028 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 17:48:25,028 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 17:48:25,030 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 17:48:25,032 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 17:48:25,038 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 17:48:25,040 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 17:48:25,040 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 17:48:25,041 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 17:48:25,041 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.658267 -999.00  +11.60  18.51     37   -2.50 1 1 1 1 1   809    0 13.27 -23.36 ----- 14.9 18.5 55.6 20.3 12.3 -29.7 12.1 -29.7 11.9 -28.8 12.2 -28.8
2025-06-13 17:48:25,041 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 17:48:25,041 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 17:48:25,041 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.658267
2025-06-13 17:48:25,041 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 17:48:25,042 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 17:48:25,042 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 17:48:25,042 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 17:48:25,042 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 17:48:25,042 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T17:48:21', tmtdew=15.87, humidity=32.68, cloud=0.0, wind=15.07, temperature=11.68, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T15:47:54.269', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 17:48:25,043 [DEBUG][       Thread-262968][   transport.py][1871] : EOF in transport thread
2025-06-13 17:48:25,127 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 17:48:25,137 [DEBUG][       Thread-262971][   transport.py][1871] : starting thread (client mode): 0x863a6ec0
2025-06-13 17:48:25,137 [DEBUG][       Thread-262971][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 17:48:25,152 [DEBUG][       Thread-262971][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 17:48:25,152 [ INFO][       Thread-262971][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 17:48:25,164 [DEBUG][       Thread-262971][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 17:48:25,164 [DEBUG][       Thread-262971][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 17:48:25,164 [DEBUG][       Thread-262971][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 17:48:25,164 [DEBUG][       Thread-262971][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:48:25,164 [DEBUG][       Thread-262971][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:48:25,164 [DEBUG][       Thread-262971][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:48:25,164 [DEBUG][       Thread-262971][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:48:25,164 [DEBUG][       Thread-262971][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 17:48:25,164 [DEBUG][       Thread-262971][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 17:48:25,165 [DEBUG][       Thread-262971][   transport.py][1871] : client lang: <none>
2025-06-13 17:48:25,165 [DEBUG][       Thread-262971][   transport.py][1871] : server lang: <none>
2025-06-13 17:48:25,165 [DEBUG][       Thread-262971][   transport.py][1871] : kex follows: False
2025-06-13 17:48:25,165 [DEBUG][       Thread-262971][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 17:48:25,165 [DEBUG][       Thread-262971][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 17:48:25,165 [DEBUG][       Thread-262971][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 17:48:25,165 [DEBUG][       Thread-262971][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 17:48:25,165 [DEBUG][       Thread-262971][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 17:48:25,165 [DEBUG][       Thread-262971][   transport.py][1871] : Compression: none
2025-06-13 17:48:25,165 [DEBUG][       Thread-262971][   transport.py][1871] : === End of kex handshake ===
2025-06-13 17:48:25,222 [DEBUG][       Thread-262971][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 17:48:25,223 [DEBUG][       Thread-262971][   transport.py][1871] : Switch to new keys ...
2025-06-13 17:48:25,224 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 17:48:25,224 [DEBUG][       Thread-262971][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 17:48:25,225 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 17:48:25,278 [DEBUG][       Thread-262971][   transport.py][1871] : userauth is OK
2025-06-13 17:48:25,278 [DEBUG][       Thread-262971][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 17:48:25,278 [DEBUG][       Thread-262971][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 17:48:25,278 [DEBUG][       Thread-262971][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 17:48:25,278 [DEBUG][       Thread-262971][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 17:48:25,292 [ INFO][       Thread-262971][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 17:48:25,292 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 17:48:25,292 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 17:48:25,343 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:48:25,343 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:48:26,076 [DEBUG][Thread-262973 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:48:26,287 [DEBUG][       Thread-262971][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 17:48:26,288 [DEBUG][       Thread-262971][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 17:48:26,336 [DEBUG][       Thread-262971][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 17:48:26,336 [DEBUG][       Thread-262971][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 17:48:26,346 [DEBUG][       Thread-262971][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 17:48:26,355 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 17:48:26,355 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 17:48:26,364 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 17:48:26,373 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 17:48:26,374 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 17:48:26,374 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 17:48:26,382 [DEBUG][       Thread-262971][   transport.py][1871] : EOF in transport thread
2025-06-13 17:48:27,590 [DEBUG][Thread-262974 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:48:35,119 [DEBUG][Thread-262975 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:48:36,384 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 17:48:36,384 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 17:48:36,384 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 17:48:36,385 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 17:48:36,874 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 17, 48, 21), 15.87, 32.68, 0.0, 15.07, 11.68, 0, 0, 0, 2, 0, 0),)
2025-06-13 17:48:36,874 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 17:48:21
2025-06-13 17:48:36,958 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 17:48:36,963 [DEBUG][       Thread-262976][   transport.py][1871] : starting thread (client mode): 0x8636ae60
2025-06-13 17:48:36,963 [DEBUG][       Thread-262976][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 17:48:36,984 [DEBUG][       Thread-262976][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 17:48:36,984 [ INFO][       Thread-262976][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 17:48:36,987 [DEBUG][       Thread-262976][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 17:48:36,987 [DEBUG][       Thread-262976][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 17:48:36,987 [DEBUG][       Thread-262976][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 17:48:36,987 [DEBUG][       Thread-262976][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:48:36,987 [DEBUG][       Thread-262976][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:48:36,987 [DEBUG][       Thread-262976][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:48:36,987 [DEBUG][       Thread-262976][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:48:36,987 [DEBUG][       Thread-262976][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 17:48:36,987 [DEBUG][       Thread-262976][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 17:48:36,987 [DEBUG][       Thread-262976][   transport.py][1871] : client lang: <none>
2025-06-13 17:48:36,987 [DEBUG][       Thread-262976][   transport.py][1871] : server lang: <none>
2025-06-13 17:48:36,987 [DEBUG][       Thread-262976][   transport.py][1871] : kex follows: False
2025-06-13 17:48:36,987 [DEBUG][       Thread-262976][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 17:48:36,987 [DEBUG][       Thread-262976][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 17:48:36,987 [DEBUG][       Thread-262976][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 17:48:36,987 [DEBUG][       Thread-262976][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 17:48:36,987 [DEBUG][       Thread-262976][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 17:48:36,987 [DEBUG][       Thread-262976][   transport.py][1871] : Compression: none
2025-06-13 17:48:36,987 [DEBUG][       Thread-262976][   transport.py][1871] : === End of kex handshake ===
2025-06-13 17:48:37,002 [DEBUG][       Thread-262976][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 17:48:37,002 [DEBUG][       Thread-262976][   transport.py][1871] : Switch to new keys ...
2025-06-13 17:48:37,002 [DEBUG][       Thread-262976][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 17:48:37,002 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 17:48:37,002 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 17:48:37,003 [DEBUG][       Thread-262976][   transport.py][1871] : userauth is OK
2025-06-13 17:48:37,015 [ INFO][       Thread-262976][   transport.py][1871] : Authentication (password) successful!
2025-06-13 17:48:37,015 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 17:48:37,760 [DEBUG][       Thread-262976][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 17:48:37,760 [DEBUG][       Thread-262976][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 17:48:37,805 [DEBUG][       Thread-262976][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 17:48:37,805 [DEBUG][       Thread-262976][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 17:48:37,807 [DEBUG][       Thread-262976][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 17:48:37,811 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 17:48:37,811 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 17:48:37,812 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 17:48:37,813 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 17:48:37,815 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 17:48:37,816 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 17:48:37,816 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 17:48:37,816 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 17:48:37,816 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.658267 -999.00  +11.60  18.51     37   -2.50 1 1 1 1 1   809    0 13.27 -23.36 ----- 14.9 18.5 55.6 20.3 12.3 -29.7 12.1 -29.7 11.9 -28.8 12.2 -28.8
2025-06-13 17:48:37,816 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 17:48:37,816 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 17:48:37,816 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.658267
2025-06-13 17:48:37,816 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 17:48:37,816 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 17:48:37,816 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 17:48:37,816 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 17:48:37,816 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 17:48:37,816 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T17:48:21', tmtdew=15.87, humidity=32.68, cloud=0.0, wind=15.07, temperature=11.68, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T15:47:54.269', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 17:48:37,817 [DEBUG][       Thread-262976][   transport.py][1871] : EOF in transport thread
2025-06-13 17:48:37,891 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 17:48:37,908 [DEBUG][       Thread-262979][   transport.py][1871] : starting thread (client mode): 0x868c8520
2025-06-13 17:48:37,908 [DEBUG][       Thread-262979][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 17:48:37,924 [DEBUG][       Thread-262979][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 17:48:37,924 [ INFO][       Thread-262979][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 17:48:37,931 [DEBUG][       Thread-262979][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 17:48:37,931 [DEBUG][       Thread-262979][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 17:48:37,931 [DEBUG][       Thread-262979][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 17:48:37,931 [DEBUG][       Thread-262979][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:48:37,931 [DEBUG][       Thread-262979][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:48:37,931 [DEBUG][       Thread-262979][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:48:37,932 [DEBUG][       Thread-262979][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:48:37,932 [DEBUG][       Thread-262979][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 17:48:37,932 [DEBUG][       Thread-262979][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 17:48:37,932 [DEBUG][       Thread-262979][   transport.py][1871] : client lang: <none>
2025-06-13 17:48:37,932 [DEBUG][       Thread-262979][   transport.py][1871] : server lang: <none>
2025-06-13 17:48:37,932 [DEBUG][       Thread-262979][   transport.py][1871] : kex follows: False
2025-06-13 17:48:37,932 [DEBUG][       Thread-262979][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 17:48:37,932 [DEBUG][       Thread-262979][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 17:48:37,932 [DEBUG][       Thread-262979][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 17:48:37,932 [DEBUG][       Thread-262979][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 17:48:37,932 [DEBUG][       Thread-262979][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 17:48:37,932 [DEBUG][       Thread-262979][   transport.py][1871] : Compression: none
2025-06-13 17:48:37,932 [DEBUG][       Thread-262979][   transport.py][1871] : === End of kex handshake ===
2025-06-13 17:48:37,990 [DEBUG][       Thread-262979][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 17:48:37,990 [DEBUG][       Thread-262979][   transport.py][1871] : Switch to new keys ...
2025-06-13 17:48:37,990 [DEBUG][       Thread-262979][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 17:48:37,990 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 17:48:37,990 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 17:48:38,050 [DEBUG][       Thread-262979][   transport.py][1871] : userauth is OK
2025-06-13 17:48:38,050 [DEBUG][       Thread-262979][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 17:48:38,050 [DEBUG][       Thread-262979][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 17:48:38,050 [DEBUG][       Thread-262979][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 17:48:38,050 [DEBUG][       Thread-262979][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 17:48:38,064 [ INFO][       Thread-262979][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 17:48:38,064 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 17:48:38,065 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 17:48:39,055 [DEBUG][       Thread-262979][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 17:48:39,055 [DEBUG][       Thread-262979][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 17:48:39,103 [DEBUG][       Thread-262979][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 17:48:39,103 [DEBUG][       Thread-262979][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 17:48:39,112 [DEBUG][       Thread-262979][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 17:48:39,119 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 17:48:39,119 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 17:48:39,127 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 17:48:39,135 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 17:48:39,135 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 17:48:39,135 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 17:48:39,143 [DEBUG][       Thread-262979][   transport.py][1871] : EOF in transport thread
2025-06-13 17:48:44,142 [DEBUG][Thread-262981 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:48:49,140 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 17:48:49,140 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 17:48:49,149 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 17:48:49,152 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 17:48:49,621 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 17, 48, 21), 15.87, 32.68, 0.0, 15.07, 11.68, 0, 0, 0, 2, 0, 0),)
2025-06-13 17:48:49,621 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 17:48:21
2025-06-13 17:48:49,702 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 17:48:49,709 [DEBUG][       Thread-262982][   transport.py][1871] : starting thread (client mode): 0x8636ada0
2025-06-13 17:48:49,709 [DEBUG][       Thread-262982][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 17:48:49,719 [DEBUG][       Thread-262982][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 17:48:49,719 [ INFO][       Thread-262982][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 17:48:49,723 [DEBUG][       Thread-262982][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 17:48:49,723 [DEBUG][       Thread-262982][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 17:48:49,723 [DEBUG][       Thread-262982][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 17:48:49,723 [DEBUG][       Thread-262982][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:48:49,723 [DEBUG][       Thread-262982][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:48:49,723 [DEBUG][       Thread-262982][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:48:49,723 [DEBUG][       Thread-262982][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:48:49,723 [DEBUG][       Thread-262982][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 17:48:49,723 [DEBUG][       Thread-262982][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 17:48:49,723 [DEBUG][       Thread-262982][   transport.py][1871] : client lang: <none>
2025-06-13 17:48:49,723 [DEBUG][       Thread-262982][   transport.py][1871] : server lang: <none>
2025-06-13 17:48:49,723 [DEBUG][       Thread-262982][   transport.py][1871] : kex follows: False
2025-06-13 17:48:49,723 [DEBUG][       Thread-262982][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 17:48:49,723 [DEBUG][       Thread-262982][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 17:48:49,723 [DEBUG][       Thread-262982][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 17:48:49,723 [DEBUG][       Thread-262982][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 17:48:49,723 [DEBUG][       Thread-262982][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 17:48:49,723 [DEBUG][       Thread-262982][   transport.py][1871] : Compression: none
2025-06-13 17:48:49,723 [DEBUG][       Thread-262982][   transport.py][1871] : === End of kex handshake ===
2025-06-13 17:48:49,739 [DEBUG][       Thread-262982][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 17:48:49,739 [DEBUG][       Thread-262982][   transport.py][1871] : Switch to new keys ...
2025-06-13 17:48:49,740 [DEBUG][       Thread-262982][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 17:48:49,740 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 17:48:49,740 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 17:48:49,741 [DEBUG][       Thread-262982][   transport.py][1871] : userauth is OK
2025-06-13 17:48:49,754 [ INFO][       Thread-262982][   transport.py][1871] : Authentication (password) successful!
2025-06-13 17:48:49,755 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 17:48:50,321 [DEBUG][       Thread-262982][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 17:48:50,322 [DEBUG][       Thread-262982][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 17:48:50,365 [DEBUG][       Thread-262982][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 17:48:50,365 [DEBUG][       Thread-262982][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 17:48:50,368 [DEBUG][       Thread-262982][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 17:48:50,382 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 17:48:50,382 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 17:48:50,384 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 17:48:50,386 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 17:48:50,391 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 17:48:50,393 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 17:48:50,394 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 17:48:50,394 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 17:48:50,394 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.658614 -999.00  +11.60  18.58     37   -2.50 1 1 1 1 1   802    0 13.29 -23.50 ----- 16.2 18.6 54.0 22.3 12.2 -29.7 12.1 -29.8 11.8 -28.9 12.2 -28.7
2025-06-13 17:48:50,394 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 17:48:50,395 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 17:48:50,395 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.658614
2025-06-13 17:48:50,395 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 17:48:50,396 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 17:48:50,396 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 17:48:50,396 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 17:48:50,396 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 17:48:50,396 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T17:48:21', tmtdew=15.87, humidity=32.68, cloud=0.0, wind=15.07, temperature=11.68, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T15:48:24.250', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 17:48:50,397 [DEBUG][       Thread-262982][   transport.py][1871] : EOF in transport thread
2025-06-13 17:48:50,482 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 17:48:50,494 [DEBUG][       Thread-262985][   transport.py][1871] : starting thread (client mode): 0x867b63b0
2025-06-13 17:48:50,494 [DEBUG][       Thread-262985][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 17:48:50,508 [DEBUG][       Thread-262985][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 17:48:50,508 [ INFO][       Thread-262985][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 17:48:50,516 [DEBUG][       Thread-262985][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 17:48:50,516 [DEBUG][       Thread-262985][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 17:48:50,516 [DEBUG][       Thread-262985][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 17:48:50,516 [DEBUG][       Thread-262985][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:48:50,516 [DEBUG][       Thread-262985][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:48:50,516 [DEBUG][       Thread-262985][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:48:50,516 [DEBUG][       Thread-262985][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:48:50,516 [DEBUG][       Thread-262985][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 17:48:50,516 [DEBUG][       Thread-262985][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 17:48:50,516 [DEBUG][       Thread-262985][   transport.py][1871] : client lang: <none>
2025-06-13 17:48:50,516 [DEBUG][       Thread-262985][   transport.py][1871] : server lang: <none>
2025-06-13 17:48:50,516 [DEBUG][       Thread-262985][   transport.py][1871] : kex follows: False
2025-06-13 17:48:50,517 [DEBUG][       Thread-262985][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 17:48:50,517 [DEBUG][       Thread-262985][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 17:48:50,517 [DEBUG][       Thread-262985][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 17:48:50,517 [DEBUG][       Thread-262985][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 17:48:50,517 [DEBUG][       Thread-262985][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 17:48:50,517 [DEBUG][       Thread-262985][   transport.py][1871] : Compression: none
2025-06-13 17:48:50,517 [DEBUG][       Thread-262985][   transport.py][1871] : === End of kex handshake ===
2025-06-13 17:48:50,574 [DEBUG][       Thread-262985][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 17:48:50,575 [DEBUG][       Thread-262985][   transport.py][1871] : Switch to new keys ...
2025-06-13 17:48:50,576 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 17:48:50,576 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 17:48:50,577 [DEBUG][       Thread-262985][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 17:48:50,631 [DEBUG][       Thread-262985][   transport.py][1871] : userauth is OK
2025-06-13 17:48:50,631 [DEBUG][       Thread-262985][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 17:48:50,631 [DEBUG][       Thread-262985][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 17:48:50,631 [DEBUG][       Thread-262985][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 17:48:50,631 [DEBUG][       Thread-262985][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 17:48:50,658 [ INFO][       Thread-262985][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 17:48:50,658 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 17:48:50,659 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 17:48:51,678 [DEBUG][       Thread-262985][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 17:48:51,678 [DEBUG][       Thread-262985][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 17:48:51,728 [DEBUG][       Thread-262985][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 17:48:51,728 [DEBUG][       Thread-262985][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 17:48:51,738 [DEBUG][       Thread-262985][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 17:48:51,747 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 17:48:51,747 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 17:48:51,756 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 17:48:51,765 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 17:48:51,765 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 17:48:51,766 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 17:48:51,774 [DEBUG][       Thread-262985][   transport.py][1871] : EOF in transport thread
2025-06-13 17:48:53,163 [DEBUG][Thread-262987 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:49:01,776 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 17:49:01,777 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 17:49:01,777 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 17:49:01,779 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 17:49:02,183 [DEBUG][Thread-262988 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:49:02,252 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 17, 48, 52), 15.93, 32.55, 0.0, 15.23, 11.7, 0, 0, 0, 2, 0, 0),)
2025-06-13 17:49:02,252 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 17:48:52
2025-06-13 17:49:02,332 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 17:49:02,336 [DEBUG][       Thread-262989][   transport.py][1871] : starting thread (client mode): 0x86369120
2025-06-13 17:49:02,336 [DEBUG][       Thread-262989][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 17:49:02,353 [DEBUG][       Thread-262989][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 17:49:02,353 [ INFO][       Thread-262989][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 17:49:02,355 [DEBUG][       Thread-262989][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 17:49:02,355 [DEBUG][       Thread-262989][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 17:49:02,355 [DEBUG][       Thread-262989][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 17:49:02,355 [DEBUG][       Thread-262989][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:49:02,355 [DEBUG][       Thread-262989][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:49:02,355 [DEBUG][       Thread-262989][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:49:02,355 [DEBUG][       Thread-262989][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:49:02,355 [DEBUG][       Thread-262989][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 17:49:02,355 [DEBUG][       Thread-262989][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 17:49:02,355 [DEBUG][       Thread-262989][   transport.py][1871] : client lang: <none>
2025-06-13 17:49:02,355 [DEBUG][       Thread-262989][   transport.py][1871] : server lang: <none>
2025-06-13 17:49:02,355 [DEBUG][       Thread-262989][   transport.py][1871] : kex follows: False
2025-06-13 17:49:02,355 [DEBUG][       Thread-262989][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 17:49:02,355 [DEBUG][       Thread-262989][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 17:49:02,355 [DEBUG][       Thread-262989][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 17:49:02,355 [DEBUG][       Thread-262989][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 17:49:02,355 [DEBUG][       Thread-262989][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 17:49:02,355 [DEBUG][       Thread-262989][   transport.py][1871] : Compression: none
2025-06-13 17:49:02,355 [DEBUG][       Thread-262989][   transport.py][1871] : === End of kex handshake ===
2025-06-13 17:49:02,363 [DEBUG][       Thread-262989][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 17:49:02,363 [DEBUG][       Thread-262989][   transport.py][1871] : Switch to new keys ...
2025-06-13 17:49:02,363 [DEBUG][       Thread-262989][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 17:49:02,363 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 17:49:02,364 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 17:49:02,364 [DEBUG][       Thread-262989][   transport.py][1871] : userauth is OK
2025-06-13 17:49:02,378 [ INFO][       Thread-262989][   transport.py][1871] : Authentication (password) successful!
2025-06-13 17:49:02,378 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 17:49:03,155 [DEBUG][       Thread-262989][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 17:49:03,156 [DEBUG][       Thread-262989][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 17:49:03,197 [DEBUG][       Thread-262989][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 17:49:03,197 [DEBUG][       Thread-262989][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 17:49:03,201 [DEBUG][       Thread-262989][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 17:49:03,214 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 17:49:03,215 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 17:49:03,216 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 17:49:03,218 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 17:49:03,224 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 17:49:03,226 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 17:49:03,226 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 17:49:03,227 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 17:49:03,227 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.658614 -999.00  +11.60  18.58     37   -2.50 1 1 1 1 1   802    0 13.29 -23.50 ----- 16.2 18.6 54.0 22.3 12.2 -29.7 12.1 -29.8 11.8 -28.9 12.2 -28.7
2025-06-13 17:49:03,227 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 17:49:03,227 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 17:49:03,227 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.658614
2025-06-13 17:49:03,228 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 17:49:03,229 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 17:49:03,229 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 17:49:03,229 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 17:49:03,229 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 17:49:03,229 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T17:48:52', tmtdew=15.93, humidity=32.55, cloud=0.0, wind=15.23, temperature=11.7, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T15:48:24.250', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 17:49:03,229 [DEBUG][       Thread-262989][   transport.py][1871] : EOF in transport thread
2025-06-13 17:49:03,310 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 17:49:03,320 [DEBUG][       Thread-262992][   transport.py][1871] : starting thread (client mode): 0x86893a60
2025-06-13 17:49:03,320 [DEBUG][       Thread-262992][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 17:49:03,336 [DEBUG][       Thread-262992][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 17:49:03,336 [ INFO][       Thread-262992][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 17:49:03,343 [DEBUG][       Thread-262992][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 17:49:03,343 [DEBUG][       Thread-262992][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 17:49:03,343 [DEBUG][       Thread-262992][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 17:49:03,343 [DEBUG][       Thread-262992][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:49:03,343 [DEBUG][       Thread-262992][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:49:03,343 [DEBUG][       Thread-262992][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:49:03,343 [DEBUG][       Thread-262992][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:49:03,343 [DEBUG][       Thread-262992][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 17:49:03,343 [DEBUG][       Thread-262992][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 17:49:03,344 [DEBUG][       Thread-262992][   transport.py][1871] : client lang: <none>
2025-06-13 17:49:03,344 [DEBUG][       Thread-262992][   transport.py][1871] : server lang: <none>
2025-06-13 17:49:03,344 [DEBUG][       Thread-262992][   transport.py][1871] : kex follows: False
2025-06-13 17:49:03,344 [DEBUG][       Thread-262992][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 17:49:03,344 [DEBUG][       Thread-262992][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 17:49:03,344 [DEBUG][       Thread-262992][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 17:49:03,344 [DEBUG][       Thread-262992][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 17:49:03,344 [DEBUG][       Thread-262992][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 17:49:03,344 [DEBUG][       Thread-262992][   transport.py][1871] : Compression: none
2025-06-13 17:49:03,344 [DEBUG][       Thread-262992][   transport.py][1871] : === End of kex handshake ===
2025-06-13 17:49:03,402 [DEBUG][       Thread-262992][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 17:49:03,403 [DEBUG][       Thread-262992][   transport.py][1871] : Switch to new keys ...
2025-06-13 17:49:03,404 [DEBUG][       Thread-262992][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 17:49:03,404 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 17:49:03,405 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 17:49:03,459 [DEBUG][       Thread-262992][   transport.py][1871] : userauth is OK
2025-06-13 17:49:03,459 [DEBUG][       Thread-262992][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 17:49:03,459 [DEBUG][       Thread-262992][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 17:49:03,459 [DEBUG][       Thread-262992][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 17:49:03,459 [DEBUG][       Thread-262992][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 17:49:03,479 [ INFO][       Thread-262992][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 17:49:03,479 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 17:49:03,480 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 17:49:04,486 [DEBUG][       Thread-262992][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 17:49:04,486 [DEBUG][       Thread-262992][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 17:49:04,536 [DEBUG][       Thread-262992][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 17:49:04,536 [DEBUG][       Thread-262992][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 17:49:04,546 [DEBUG][       Thread-262992][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 17:49:04,555 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 17:49:04,555 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 17:49:04,564 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 17:49:04,573 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 17:49:04,574 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 17:49:04,574 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 17:49:04,582 [DEBUG][       Thread-262992][   transport.py][1871] : EOF in transport thread
2025-06-13 17:49:11,207 [DEBUG][Thread-262994 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:49:12,295 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:49:12,296 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:49:14,584 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 17:49:14,584 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 17:49:14,584 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 17:49:14,587 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 17:49:15,095 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 17, 48, 52), 15.93, 32.55, 0.0, 15.23, 11.7, 0, 0, 0, 2, 0, 0),)
2025-06-13 17:49:15,095 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 17:48:52
2025-06-13 17:49:15,179 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 17:49:15,184 [DEBUG][       Thread-262995][   transport.py][1871] : starting thread (client mode): 0x863683a0
2025-06-13 17:49:15,184 [DEBUG][       Thread-262995][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 17:49:15,205 [DEBUG][       Thread-262995][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 17:49:15,205 [ INFO][       Thread-262995][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 17:49:15,207 [DEBUG][       Thread-262995][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 17:49:15,207 [DEBUG][       Thread-262995][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 17:49:15,207 [DEBUG][       Thread-262995][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 17:49:15,207 [DEBUG][       Thread-262995][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:49:15,207 [DEBUG][       Thread-262995][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:49:15,207 [DEBUG][       Thread-262995][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:49:15,207 [DEBUG][       Thread-262995][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:49:15,207 [DEBUG][       Thread-262995][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 17:49:15,207 [DEBUG][       Thread-262995][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 17:49:15,207 [DEBUG][       Thread-262995][   transport.py][1871] : client lang: <none>
2025-06-13 17:49:15,207 [DEBUG][       Thread-262995][   transport.py][1871] : server lang: <none>
2025-06-13 17:49:15,207 [DEBUG][       Thread-262995][   transport.py][1871] : kex follows: False
2025-06-13 17:49:15,207 [DEBUG][       Thread-262995][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 17:49:15,207 [DEBUG][       Thread-262995][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 17:49:15,207 [DEBUG][       Thread-262995][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 17:49:15,207 [DEBUG][       Thread-262995][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 17:49:15,207 [DEBUG][       Thread-262995][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 17:49:15,207 [DEBUG][       Thread-262995][   transport.py][1871] : Compression: none
2025-06-13 17:49:15,207 [DEBUG][       Thread-262995][   transport.py][1871] : === End of kex handshake ===
2025-06-13 17:49:15,215 [DEBUG][       Thread-262995][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 17:49:15,216 [DEBUG][       Thread-262995][   transport.py][1871] : Switch to new keys ...
2025-06-13 17:49:15,216 [DEBUG][       Thread-262995][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 17:49:15,216 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 17:49:15,216 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 17:49:15,216 [DEBUG][       Thread-262995][   transport.py][1871] : userauth is OK
2025-06-13 17:49:15,229 [ INFO][       Thread-262995][   transport.py][1871] : Authentication (password) successful!
2025-06-13 17:49:15,229 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 17:49:15,955 [DEBUG][       Thread-262995][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 17:49:15,955 [DEBUG][       Thread-262995][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 17:49:15,997 [DEBUG][       Thread-262995][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 17:49:15,997 [DEBUG][       Thread-262995][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 17:49:15,999 [DEBUG][       Thread-262995][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 17:49:16,010 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 17:49:16,010 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 17:49:16,011 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 17:49:16,012 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 17:49:16,015 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 17:49:16,016 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 17:49:16,016 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 17:49:16,016 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 17:49:16,016 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.658614 -999.00  +11.60  18.58     37   -2.50 1 1 1 1 1   802    0 13.29 -23.50 ----- 16.2 18.6 54.0 22.3 12.2 -29.7 12.1 -29.8 11.8 -28.9 12.2 -28.7
2025-06-13 17:49:16,016 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 17:49:16,016 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 17:49:16,016 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.658614
2025-06-13 17:49:16,016 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 17:49:16,016 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 17:49:16,016 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 17:49:16,016 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 17:49:16,016 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 17:49:16,017 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T17:48:52', tmtdew=15.93, humidity=32.55, cloud=0.0, wind=15.23, temperature=11.7, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T15:48:24.250', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 17:49:16,017 [DEBUG][       Thread-262995][   transport.py][1871] : EOF in transport thread
2025-06-13 17:49:16,088 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 17:49:16,099 [DEBUG][       Thread-262998][   transport.py][1871] : starting thread (client mode): 0x86353790
2025-06-13 17:49:16,099 [DEBUG][       Thread-262998][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 17:49:16,114 [DEBUG][       Thread-262998][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 17:49:16,114 [ INFO][       Thread-262998][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 17:49:16,121 [DEBUG][       Thread-262998][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 17:49:16,121 [DEBUG][       Thread-262998][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 17:49:16,121 [DEBUG][       Thread-262998][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 17:49:16,121 [DEBUG][       Thread-262998][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:49:16,121 [DEBUG][       Thread-262998][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:49:16,121 [DEBUG][       Thread-262998][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:49:16,121 [DEBUG][       Thread-262998][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:49:16,121 [DEBUG][       Thread-262998][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 17:49:16,121 [DEBUG][       Thread-262998][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 17:49:16,121 [DEBUG][       Thread-262998][   transport.py][1871] : client lang: <none>
2025-06-13 17:49:16,121 [DEBUG][       Thread-262998][   transport.py][1871] : server lang: <none>
2025-06-13 17:49:16,121 [DEBUG][       Thread-262998][   transport.py][1871] : kex follows: False
2025-06-13 17:49:16,121 [DEBUG][       Thread-262998][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 17:49:16,121 [DEBUG][       Thread-262998][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 17:49:16,121 [DEBUG][       Thread-262998][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 17:49:16,121 [DEBUG][       Thread-262998][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 17:49:16,121 [DEBUG][       Thread-262998][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 17:49:16,121 [DEBUG][       Thread-262998][   transport.py][1871] : Compression: none
2025-06-13 17:49:16,121 [DEBUG][       Thread-262998][   transport.py][1871] : === End of kex handshake ===
2025-06-13 17:49:16,178 [DEBUG][       Thread-262998][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 17:49:16,178 [DEBUG][       Thread-262998][   transport.py][1871] : Switch to new keys ...
2025-06-13 17:49:16,178 [DEBUG][       Thread-262998][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 17:49:16,178 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 17:49:16,178 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 17:49:16,234 [DEBUG][       Thread-262998][   transport.py][1871] : userauth is OK
2025-06-13 17:49:16,234 [DEBUG][       Thread-262998][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 17:49:16,234 [DEBUG][       Thread-262998][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 17:49:16,234 [DEBUG][       Thread-262998][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 17:49:16,234 [DEBUG][       Thread-262998][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 17:49:16,248 [ INFO][       Thread-262998][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 17:49:16,249 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 17:49:16,249 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 17:49:17,286 [DEBUG][       Thread-262998][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 17:49:17,286 [DEBUG][       Thread-262998][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 17:49:17,335 [DEBUG][       Thread-262998][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 17:49:17,335 [DEBUG][       Thread-262998][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 17:49:17,344 [DEBUG][       Thread-262998][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 17:49:17,351 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 17:49:17,351 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 17:49:17,359 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 17:49:17,367 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 17:49:17,367 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 17:49:17,367 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 17:49:17,375 [DEBUG][       Thread-262998][   transport.py][1871] : EOF in transport thread
2025-06-13 17:49:20,239 [DEBUG][Thread-263000 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:49:25,428 [DEBUG][Thread-263001 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:49:26,530 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:49:26,531 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:49:27,378 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 17:49:27,378 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 17:49:27,378 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 17:49:27,381 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 17:49:27,660 [DEBUG][Thread-263002 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:49:27,844 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 17, 49, 24), 15.86, 32.61, 0.0, 15.72, 11.66, 0, 0, 0, 2, 0, 0),)
2025-06-13 17:49:27,844 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 17:49:24
2025-06-13 17:49:27,924 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 17:49:27,928 [DEBUG][       Thread-263003][   transport.py][1871] : starting thread (client mode): 0x863ca620
2025-06-13 17:49:27,928 [DEBUG][       Thread-263003][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 17:49:27,947 [DEBUG][       Thread-263003][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 17:49:27,947 [ INFO][       Thread-263003][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 17:49:27,950 [DEBUG][       Thread-263003][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 17:49:27,950 [DEBUG][       Thread-263003][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 17:49:27,950 [DEBUG][       Thread-263003][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 17:49:27,950 [DEBUG][       Thread-263003][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:49:27,950 [DEBUG][       Thread-263003][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:49:27,950 [DEBUG][       Thread-263003][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:49:27,950 [DEBUG][       Thread-263003][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:49:27,950 [DEBUG][       Thread-263003][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 17:49:27,950 [DEBUG][       Thread-263003][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 17:49:27,950 [DEBUG][       Thread-263003][   transport.py][1871] : client lang: <none>
2025-06-13 17:49:27,950 [DEBUG][       Thread-263003][   transport.py][1871] : server lang: <none>
2025-06-13 17:49:27,950 [DEBUG][       Thread-263003][   transport.py][1871] : kex follows: False
2025-06-13 17:49:27,950 [DEBUG][       Thread-263003][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 17:49:27,950 [DEBUG][       Thread-263003][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 17:49:27,950 [DEBUG][       Thread-263003][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 17:49:27,951 [DEBUG][       Thread-263003][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 17:49:27,951 [DEBUG][       Thread-263003][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 17:49:27,951 [DEBUG][       Thread-263003][   transport.py][1871] : Compression: none
2025-06-13 17:49:27,951 [DEBUG][       Thread-263003][   transport.py][1871] : === End of kex handshake ===
2025-06-13 17:49:27,968 [DEBUG][       Thread-263003][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 17:49:27,969 [DEBUG][       Thread-263003][   transport.py][1871] : Switch to new keys ...
2025-06-13 17:49:27,969 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 17:49:27,969 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 17:49:27,970 [DEBUG][       Thread-263003][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 17:49:27,970 [DEBUG][       Thread-263003][   transport.py][1871] : userauth is OK
2025-06-13 17:49:27,983 [ INFO][       Thread-263003][   transport.py][1871] : Authentication (password) successful!
2025-06-13 17:49:27,983 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 17:49:28,637 [DEBUG][       Thread-263003][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 17:49:28,638 [DEBUG][       Thread-263003][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 17:49:28,681 [DEBUG][       Thread-263003][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 17:49:28,681 [DEBUG][       Thread-263003][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 17:49:28,685 [DEBUG][       Thread-263003][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 17:49:28,697 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 17:49:28,697 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 17:49:28,699 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 17:49:28,702 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 17:49:28,707 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 17:49:28,709 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 17:49:28,710 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 17:49:28,710 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 17:49:28,711 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.658961 -999.00  +11.60  16.75     37   -2.50 1 1 1 1 1   794    0 13.37 -22.71 ----- 17.2 16.8 53.0 20.9 12.2 -29.7 12.1 -29.7 11.8 -28.9 12.1 -28.9
2025-06-13 17:49:28,711 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 17:49:28,711 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 17:49:28,711 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.658961
2025-06-13 17:49:28,711 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 17:49:28,712 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 17:49:28,712 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 17:49:28,712 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 17:49:28,712 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 17:49:28,712 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T17:49:24', tmtdew=15.86, humidity=32.61, cloud=0.0, wind=15.72, temperature=11.66, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T15:48:54.230', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 17:49:28,713 [DEBUG][       Thread-263003][   transport.py][1871] : EOF in transport thread
2025-06-13 17:49:28,795 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 17:49:28,805 [DEBUG][       Thread-263006][   transport.py][1871] : starting thread (client mode): 0x863528f0
2025-06-13 17:49:28,805 [DEBUG][       Thread-263006][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 17:49:28,821 [DEBUG][       Thread-263006][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 17:49:28,821 [ INFO][       Thread-263006][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 17:49:28,829 [DEBUG][       Thread-263006][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 17:49:28,829 [DEBUG][       Thread-263006][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 17:49:28,829 [DEBUG][       Thread-263006][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 17:49:28,829 [DEBUG][       Thread-263006][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:49:28,829 [DEBUG][       Thread-263006][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:49:28,829 [DEBUG][       Thread-263006][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:49:28,829 [DEBUG][       Thread-263006][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:49:28,829 [DEBUG][       Thread-263006][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 17:49:28,829 [DEBUG][       Thread-263006][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 17:49:28,829 [DEBUG][       Thread-263006][   transport.py][1871] : client lang: <none>
2025-06-13 17:49:28,829 [DEBUG][       Thread-263006][   transport.py][1871] : server lang: <none>
2025-06-13 17:49:28,829 [DEBUG][       Thread-263006][   transport.py][1871] : kex follows: False
2025-06-13 17:49:28,829 [DEBUG][       Thread-263006][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 17:49:28,829 [DEBUG][       Thread-263006][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 17:49:28,829 [DEBUG][       Thread-263006][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 17:49:28,830 [DEBUG][       Thread-263006][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 17:49:28,830 [DEBUG][       Thread-263006][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 17:49:28,830 [DEBUG][       Thread-263006][   transport.py][1871] : Compression: none
2025-06-13 17:49:28,830 [DEBUG][       Thread-263006][   transport.py][1871] : === End of kex handshake ===
2025-06-13 17:49:28,891 [DEBUG][       Thread-263006][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 17:49:28,891 [DEBUG][       Thread-263006][   transport.py][1871] : Switch to new keys ...
2025-06-13 17:49:28,892 [DEBUG][       Thread-263006][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 17:49:28,892 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 17:49:28,893 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 17:49:28,947 [DEBUG][       Thread-263006][   transport.py][1871] : userauth is OK
2025-06-13 17:49:28,947 [DEBUG][       Thread-263006][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 17:49:28,947 [DEBUG][       Thread-263006][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 17:49:28,947 [DEBUG][       Thread-263006][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 17:49:28,947 [DEBUG][       Thread-263006][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 17:49:28,970 [ INFO][       Thread-263006][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 17:49:28,970 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 17:49:28,971 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 17:49:29,260 [DEBUG][Thread-263008 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:49:30,004 [DEBUG][       Thread-263006][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 17:49:30,004 [DEBUG][       Thread-263006][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 17:49:30,052 [DEBUG][       Thread-263006][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 17:49:30,052 [DEBUG][       Thread-263006][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 17:49:30,061 [DEBUG][       Thread-263006][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 17:49:30,070 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 17:49:30,070 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 17:49:30,079 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 17:49:30,088 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 17:49:30,088 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 17:49:30,089 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 17:49:30,097 [DEBUG][       Thread-263006][   transport.py][1871] : EOF in transport thread
2025-06-13 17:49:38,296 [DEBUG][Thread-263009 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:49:40,099 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 17:49:40,100 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 17:49:40,100 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 17:49:40,102 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 17:49:40,576 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 17, 49, 24), 15.86, 32.61, 0.0, 15.72, 11.66, 0, 0, 0, 2, 0, 0),)
2025-06-13 17:49:40,576 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 17:49:24
2025-06-13 17:49:40,657 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 17:49:40,663 [DEBUG][       Thread-263010][   transport.py][1871] : starting thread (client mode): 0x86393d60
2025-06-13 17:49:40,663 [DEBUG][       Thread-263010][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 17:49:40,683 [DEBUG][       Thread-263010][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 17:49:40,683 [ INFO][       Thread-263010][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 17:49:40,686 [DEBUG][       Thread-263010][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 17:49:40,686 [DEBUG][       Thread-263010][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 17:49:40,686 [DEBUG][       Thread-263010][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 17:49:40,686 [DEBUG][       Thread-263010][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:49:40,686 [DEBUG][       Thread-263010][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:49:40,686 [DEBUG][       Thread-263010][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:49:40,686 [DEBUG][       Thread-263010][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:49:40,686 [DEBUG][       Thread-263010][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 17:49:40,686 [DEBUG][       Thread-263010][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 17:49:40,686 [DEBUG][       Thread-263010][   transport.py][1871] : client lang: <none>
2025-06-13 17:49:40,686 [DEBUG][       Thread-263010][   transport.py][1871] : server lang: <none>
2025-06-13 17:49:40,686 [DEBUG][       Thread-263010][   transport.py][1871] : kex follows: False
2025-06-13 17:49:40,686 [DEBUG][       Thread-263010][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 17:49:40,686 [DEBUG][       Thread-263010][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 17:49:40,686 [DEBUG][       Thread-263010][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 17:49:40,686 [DEBUG][       Thread-263010][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 17:49:40,686 [DEBUG][       Thread-263010][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 17:49:40,686 [DEBUG][       Thread-263010][   transport.py][1871] : Compression: none
2025-06-13 17:49:40,686 [DEBUG][       Thread-263010][   transport.py][1871] : === End of kex handshake ===
2025-06-13 17:49:40,706 [DEBUG][       Thread-263010][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 17:49:40,707 [DEBUG][       Thread-263010][   transport.py][1871] : Switch to new keys ...
2025-06-13 17:49:40,707 [DEBUG][       Thread-263010][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 17:49:40,707 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 17:49:40,708 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 17:49:40,709 [DEBUG][       Thread-263010][   transport.py][1871] : userauth is OK
2025-06-13 17:49:40,722 [ INFO][       Thread-263010][   transport.py][1871] : Authentication (password) successful!
2025-06-13 17:49:40,722 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 17:49:41,492 [DEBUG][       Thread-263010][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 17:49:41,492 [DEBUG][       Thread-263010][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 17:49:41,533 [DEBUG][       Thread-263010][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 17:49:41,533 [DEBUG][       Thread-263010][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 17:49:41,536 [DEBUG][       Thread-263010][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 17:49:41,549 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 17:49:41,550 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 17:49:41,551 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 17:49:41,553 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 17:49:41,559 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 17:49:41,561 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 17:49:41,561 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 17:49:41,562 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 17:49:41,562 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.658961 -999.00  +11.60  16.75     37   -2.50 1 1 1 1 1   794    0 13.37 -22.71 ----- 17.2 16.8 53.0 20.9 12.2 -29.7 12.1 -29.7 11.8 -28.9 12.1 -28.9
2025-06-13 17:49:41,562 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 17:49:41,562 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 17:49:41,562 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.658961
2025-06-13 17:49:41,562 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 17:49:41,563 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 17:49:41,563 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 17:49:41,563 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 17:49:41,563 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 17:49:41,563 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T17:49:24', tmtdew=15.86, humidity=32.61, cloud=0.0, wind=15.72, temperature=11.66, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T15:48:54.230', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 17:49:41,564 [DEBUG][       Thread-263010][   transport.py][1871] : EOF in transport thread
2025-06-13 17:49:41,647 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 17:49:41,659 [DEBUG][       Thread-263013][   transport.py][1871] : starting thread (client mode): 0x867fc910
2025-06-13 17:49:41,659 [DEBUG][       Thread-263013][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 17:49:41,674 [DEBUG][       Thread-263013][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 17:49:41,674 [ INFO][       Thread-263013][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 17:49:41,682 [DEBUG][       Thread-263013][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 17:49:41,682 [DEBUG][       Thread-263013][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 17:49:41,682 [DEBUG][       Thread-263013][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 17:49:41,682 [DEBUG][       Thread-263013][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:49:41,682 [DEBUG][       Thread-263013][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:49:41,682 [DEBUG][       Thread-263013][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:49:41,682 [DEBUG][       Thread-263013][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:49:41,683 [DEBUG][       Thread-263013][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 17:49:41,683 [DEBUG][       Thread-263013][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 17:49:41,683 [DEBUG][       Thread-263013][   transport.py][1871] : client lang: <none>
2025-06-13 17:49:41,683 [DEBUG][       Thread-263013][   transport.py][1871] : server lang: <none>
2025-06-13 17:49:41,683 [DEBUG][       Thread-263013][   transport.py][1871] : kex follows: False
2025-06-13 17:49:41,683 [DEBUG][       Thread-263013][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 17:49:41,683 [DEBUG][       Thread-263013][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 17:49:41,683 [DEBUG][       Thread-263013][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 17:49:41,683 [DEBUG][       Thread-263013][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 17:49:41,683 [DEBUG][       Thread-263013][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 17:49:41,683 [DEBUG][       Thread-263013][   transport.py][1871] : Compression: none
2025-06-13 17:49:41,683 [DEBUG][       Thread-263013][   transport.py][1871] : === End of kex handshake ===
2025-06-13 17:49:41,738 [DEBUG][       Thread-263013][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 17:49:41,739 [DEBUG][       Thread-263013][   transport.py][1871] : Switch to new keys ...
2025-06-13 17:49:41,740 [DEBUG][       Thread-263013][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 17:49:41,740 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 17:49:41,741 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 17:49:41,801 [DEBUG][       Thread-263013][   transport.py][1871] : userauth is OK
2025-06-13 17:49:41,801 [DEBUG][       Thread-263013][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 17:49:41,801 [DEBUG][       Thread-263013][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 17:49:41,801 [DEBUG][       Thread-263013][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 17:49:41,802 [DEBUG][       Thread-263013][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 17:49:41,820 [ INFO][       Thread-263013][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 17:49:41,820 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 17:49:41,821 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 17:49:42,821 [DEBUG][       Thread-263013][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 17:49:42,821 [DEBUG][       Thread-263013][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 17:49:42,872 [DEBUG][       Thread-263013][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 17:49:42,872 [DEBUG][       Thread-263013][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 17:49:42,881 [DEBUG][       Thread-263013][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 17:49:42,890 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 17:49:42,891 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 17:49:42,899 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 17:49:42,908 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 17:49:42,909 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 17:49:42,909 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 17:49:42,917 [DEBUG][       Thread-263013][   transport.py][1871] : EOF in transport thread
2025-06-13 17:49:47,319 [DEBUG][Thread-263015 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:49:52,920 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 17:49:52,920 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 17:49:52,920 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 17:49:52,923 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 17:49:53,405 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 17, 49, 24), 15.86, 32.61, 0.0, 15.72, 11.66, 0, 0, 0, 2, 0, 0),)
2025-06-13 17:49:53,406 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 17:49:24
2025-06-13 17:49:53,491 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 17:49:53,498 [DEBUG][       Thread-263016][   transport.py][1871] : starting thread (client mode): 0x867febc0
2025-06-13 17:49:53,499 [DEBUG][       Thread-263016][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 17:49:53,519 [DEBUG][       Thread-263016][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 17:49:53,519 [ INFO][       Thread-263016][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 17:49:53,524 [DEBUG][       Thread-263016][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 17:49:53,524 [DEBUG][       Thread-263016][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 17:49:53,524 [DEBUG][       Thread-263016][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 17:49:53,524 [DEBUG][       Thread-263016][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:49:53,524 [DEBUG][       Thread-263016][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:49:53,524 [DEBUG][       Thread-263016][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:49:53,524 [DEBUG][       Thread-263016][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:49:53,524 [DEBUG][       Thread-263016][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 17:49:53,524 [DEBUG][       Thread-263016][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 17:49:53,524 [DEBUG][       Thread-263016][   transport.py][1871] : client lang: <none>
2025-06-13 17:49:53,524 [DEBUG][       Thread-263016][   transport.py][1871] : server lang: <none>
2025-06-13 17:49:53,524 [DEBUG][       Thread-263016][   transport.py][1871] : kex follows: False
2025-06-13 17:49:53,524 [DEBUG][       Thread-263016][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 17:49:53,524 [DEBUG][       Thread-263016][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 17:49:53,524 [DEBUG][       Thread-263016][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 17:49:53,524 [DEBUG][       Thread-263016][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 17:49:53,524 [DEBUG][       Thread-263016][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 17:49:53,524 [DEBUG][       Thread-263016][   transport.py][1871] : Compression: none
2025-06-13 17:49:53,524 [DEBUG][       Thread-263016][   transport.py][1871] : === End of kex handshake ===
2025-06-13 17:49:53,538 [DEBUG][       Thread-263016][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 17:49:53,538 [DEBUG][       Thread-263016][   transport.py][1871] : Switch to new keys ...
2025-06-13 17:49:53,538 [DEBUG][       Thread-263016][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 17:49:53,538 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 17:49:53,538 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 17:49:53,539 [DEBUG][       Thread-263016][   transport.py][1871] : userauth is OK
2025-06-13 17:49:53,566 [ INFO][       Thread-263016][   transport.py][1871] : Authentication (password) successful!
2025-06-13 17:49:53,566 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 17:49:54,217 [DEBUG][       Thread-263016][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 17:49:54,217 [DEBUG][       Thread-263016][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 17:49:54,260 [DEBUG][       Thread-263016][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 17:49:54,260 [DEBUG][       Thread-263016][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 17:49:54,263 [DEBUG][       Thread-263016][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 17:49:54,275 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 17:49:54,275 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 17:49:54,277 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 17:49:54,278 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 17:49:54,281 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 17:49:54,281 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 17:49:54,282 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 17:49:54,282 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 17:49:54,282 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.659309 -999.00  +11.50  14.05     37   -2.40 1 1 1 1 1   786    0 13.38 -23.39 ----- 14.2 14.1 48.0 19.6 12.2 -29.8 12.0 -29.8 11.8 -28.9 12.1 -28.9
2025-06-13 17:49:54,282 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 17:49:54,282 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 17:49:54,282 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.659309
2025-06-13 17:49:54,282 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 17:49:54,282 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 17:49:54,282 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 17:49:54,282 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 17:49:54,282 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 17:49:54,282 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T17:49:24', tmtdew=15.86, humidity=32.61, cloud=0.0, wind=15.72, temperature=11.66, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T15:49:24.298', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 17:49:54,283 [DEBUG][       Thread-263016][   transport.py][1871] : EOF in transport thread
2025-06-13 17:49:54,357 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 17:49:54,366 [DEBUG][       Thread-263019][   transport.py][1871] : starting thread (client mode): 0x867b63b0
2025-06-13 17:49:54,366 [DEBUG][       Thread-263019][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 17:49:54,380 [DEBUG][       Thread-263019][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 17:49:54,380 [ INFO][       Thread-263019][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 17:49:54,388 [DEBUG][       Thread-263019][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 17:49:54,388 [DEBUG][       Thread-263019][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 17:49:54,388 [DEBUG][       Thread-263019][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 17:49:54,388 [DEBUG][       Thread-263019][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:49:54,388 [DEBUG][       Thread-263019][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:49:54,388 [DEBUG][       Thread-263019][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:49:54,388 [DEBUG][       Thread-263019][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:49:54,388 [DEBUG][       Thread-263019][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 17:49:54,388 [DEBUG][       Thread-263019][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 17:49:54,388 [DEBUG][       Thread-263019][   transport.py][1871] : client lang: <none>
2025-06-13 17:49:54,388 [DEBUG][       Thread-263019][   transport.py][1871] : server lang: <none>
2025-06-13 17:49:54,388 [DEBUG][       Thread-263019][   transport.py][1871] : kex follows: False
2025-06-13 17:49:54,388 [DEBUG][       Thread-263019][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 17:49:54,388 [DEBUG][       Thread-263019][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 17:49:54,388 [DEBUG][       Thread-263019][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 17:49:54,388 [DEBUG][       Thread-263019][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 17:49:54,388 [DEBUG][       Thread-263019][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 17:49:54,388 [DEBUG][       Thread-263019][   transport.py][1871] : Compression: none
2025-06-13 17:49:54,388 [DEBUG][       Thread-263019][   transport.py][1871] : === End of kex handshake ===
2025-06-13 17:49:54,445 [DEBUG][       Thread-263019][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 17:49:54,445 [DEBUG][       Thread-263019][   transport.py][1871] : Switch to new keys ...
2025-06-13 17:49:54,445 [DEBUG][       Thread-263019][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 17:49:54,445 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 17:49:54,445 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 17:49:54,502 [DEBUG][       Thread-263019][   transport.py][1871] : userauth is OK
2025-06-13 17:49:54,502 [DEBUG][       Thread-263019][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 17:49:54,502 [DEBUG][       Thread-263019][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 17:49:54,502 [DEBUG][       Thread-263019][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 17:49:54,502 [DEBUG][       Thread-263019][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 17:49:54,516 [ INFO][       Thread-263019][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 17:49:54,516 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 17:49:54,516 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 17:49:55,499 [DEBUG][       Thread-263019][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 17:49:55,499 [DEBUG][       Thread-263019][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 17:49:55,547 [DEBUG][       Thread-263019][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 17:49:55,547 [DEBUG][       Thread-263019][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 17:49:55,556 [DEBUG][       Thread-263019][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 17:49:55,564 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 17:49:55,564 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 17:49:55,572 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 17:49:55,580 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 17:49:55,580 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 17:49:55,580 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 17:49:55,588 [DEBUG][       Thread-263019][   transport.py][1871] : EOF in transport thread
2025-06-13 17:49:56,336 [DEBUG][Thread-263021 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:50:05,357 [DEBUG][Thread-263022 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:50:05,590 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 17:50:05,590 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 17:50:05,590 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 17:50:05,593 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 17:50:06,051 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 17, 49, 56), 15.81, 32.73, 0.0, 16.07, 11.63, 0, 0, 0, 2, 0, 0),)
2025-06-13 17:50:06,051 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 17:49:56
2025-06-13 17:50:06,131 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 17:50:06,135 [DEBUG][       Thread-263023][   transport.py][1871] : starting thread (client mode): 0x86353f40
2025-06-13 17:50:06,135 [DEBUG][       Thread-263023][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 17:50:06,155 [DEBUG][       Thread-263023][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 17:50:06,155 [ INFO][       Thread-263023][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 17:50:06,159 [DEBUG][       Thread-263023][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 17:50:06,159 [DEBUG][       Thread-263023][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 17:50:06,159 [DEBUG][       Thread-263023][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 17:50:06,159 [DEBUG][       Thread-263023][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:50:06,159 [DEBUG][       Thread-263023][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:50:06,159 [DEBUG][       Thread-263023][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:50:06,159 [DEBUG][       Thread-263023][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:50:06,159 [DEBUG][       Thread-263023][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 17:50:06,159 [DEBUG][       Thread-263023][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 17:50:06,159 [DEBUG][       Thread-263023][   transport.py][1871] : client lang: <none>
2025-06-13 17:50:06,159 [DEBUG][       Thread-263023][   transport.py][1871] : server lang: <none>
2025-06-13 17:50:06,159 [DEBUG][       Thread-263023][   transport.py][1871] : kex follows: False
2025-06-13 17:50:06,159 [DEBUG][       Thread-263023][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 17:50:06,159 [DEBUG][       Thread-263023][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 17:50:06,159 [DEBUG][       Thread-263023][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 17:50:06,159 [DEBUG][       Thread-263023][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 17:50:06,159 [DEBUG][       Thread-263023][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 17:50:06,159 [DEBUG][       Thread-263023][   transport.py][1871] : Compression: none
2025-06-13 17:50:06,159 [DEBUG][       Thread-263023][   transport.py][1871] : === End of kex handshake ===
2025-06-13 17:50:06,175 [DEBUG][       Thread-263023][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 17:50:06,175 [DEBUG][       Thread-263023][   transport.py][1871] : Switch to new keys ...
2025-06-13 17:50:06,176 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 17:50:06,176 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 17:50:06,176 [DEBUG][       Thread-263023][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 17:50:06,177 [DEBUG][       Thread-263023][   transport.py][1871] : userauth is OK
2025-06-13 17:50:06,190 [ INFO][       Thread-263023][   transport.py][1871] : Authentication (password) successful!
2025-06-13 17:50:06,190 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 17:50:14,380 [DEBUG][Thread-263025 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:50:14,762 [DEBUG][       Thread-263023][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 17:50:14,763 [DEBUG][       Thread-263023][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 17:50:14,805 [DEBUG][       Thread-263023][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 17:50:14,805 [DEBUG][       Thread-263023][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 17:50:14,808 [DEBUG][       Thread-263023][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 17:50:14,821 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 17:50:14,821 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 17:50:14,823 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 17:50:14,825 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 17:50:14,830 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 17:50:14,832 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 17:50:14,833 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 17:50:14,833 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 17:50:14,833 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.659309 -999.00  +11.50  14.05     37   -2.40 1 1 1 1 1   786    0 13.38 -23.39 ----- 14.2 14.1 48.0 19.6 12.2 -29.8 12.0 -29.8 11.8 -28.9 12.1 -28.9
2025-06-13 17:50:14,834 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 17:50:14,834 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 17:50:14,834 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.659309
2025-06-13 17:50:14,834 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 17:50:14,835 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 17:50:14,835 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 17:50:14,835 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 17:50:14,835 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 17:50:14,835 [DEBUG][       Thread-263023][   transport.py][1871] : EOF in transport thread
2025-06-13 17:50:14,835 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T17:49:56', tmtdew=15.81, humidity=32.73, cloud=0.0, wind=16.07, temperature=11.63, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T15:49:24.298', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 17:50:14,921 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 17:50:14,939 [DEBUG][       Thread-263027][   transport.py][1871] : starting thread (client mode): 0x868c85e0
2025-06-13 17:50:14,939 [DEBUG][       Thread-263027][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 17:50:14,955 [DEBUG][       Thread-263027][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 17:50:14,956 [ INFO][       Thread-263027][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 17:50:14,963 [DEBUG][       Thread-263027][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 17:50:14,963 [DEBUG][       Thread-263027][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 17:50:14,963 [DEBUG][       Thread-263027][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 17:50:14,963 [DEBUG][       Thread-263027][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:50:14,963 [DEBUG][       Thread-263027][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:50:14,963 [DEBUG][       Thread-263027][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:50:14,963 [DEBUG][       Thread-263027][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:50:14,964 [DEBUG][       Thread-263027][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 17:50:14,964 [DEBUG][       Thread-263027][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 17:50:14,964 [DEBUG][       Thread-263027][   transport.py][1871] : client lang: <none>
2025-06-13 17:50:14,964 [DEBUG][       Thread-263027][   transport.py][1871] : server lang: <none>
2025-06-13 17:50:14,964 [DEBUG][       Thread-263027][   transport.py][1871] : kex follows: False
2025-06-13 17:50:14,964 [DEBUG][       Thread-263027][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 17:50:14,964 [DEBUG][       Thread-263027][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 17:50:14,964 [DEBUG][       Thread-263027][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 17:50:14,964 [DEBUG][       Thread-263027][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 17:50:14,964 [DEBUG][       Thread-263027][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 17:50:14,964 [DEBUG][       Thread-263027][   transport.py][1871] : Compression: none
2025-06-13 17:50:14,964 [DEBUG][       Thread-263027][   transport.py][1871] : === End of kex handshake ===
2025-06-13 17:50:15,022 [DEBUG][       Thread-263027][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 17:50:15,023 [DEBUG][       Thread-263027][   transport.py][1871] : Switch to new keys ...
2025-06-13 17:50:15,024 [DEBUG][       Thread-263027][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 17:50:15,024 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 17:50:15,025 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 17:50:15,082 [DEBUG][       Thread-263027][   transport.py][1871] : userauth is OK
2025-06-13 17:50:15,082 [DEBUG][       Thread-263027][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 17:50:15,082 [DEBUG][       Thread-263027][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 17:50:15,082 [DEBUG][       Thread-263027][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 17:50:15,082 [DEBUG][       Thread-263027][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 17:50:15,101 [ INFO][       Thread-263027][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 17:50:15,101 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 17:50:15,102 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 17:50:16,109 [DEBUG][       Thread-263027][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 17:50:16,110 [DEBUG][       Thread-263027][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 17:50:16,161 [DEBUG][       Thread-263027][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 17:50:16,161 [DEBUG][       Thread-263027][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 17:50:16,175 [DEBUG][       Thread-263027][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 17:50:16,184 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 17:50:16,184 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 17:50:16,193 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 17:50:16,202 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 17:50:16,203 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 17:50:16,203 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 17:50:16,211 [DEBUG][       Thread-263027][   transport.py][1871] : EOF in transport thread
2025-06-13 17:50:21,904 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:50:21,905 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:50:23,399 [DEBUG][Thread-263029 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:50:26,212 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 17:50:26,212 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 17:50:26,212 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 17:50:26,215 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 17:50:26,616 [DEBUG][Thread-263030 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:50:26,682 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 17, 49, 56), 15.81, 32.73, 0.0, 16.07, 11.63, 0, 0, 0, 2, 0, 0),)
2025-06-13 17:50:26,682 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 17:49:56
2025-06-13 17:50:26,762 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 17:50:26,767 [DEBUG][       Thread-263031][   transport.py][1871] : starting thread (client mode): 0x863683a0
2025-06-13 17:50:26,767 [DEBUG][       Thread-263031][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 17:50:26,787 [DEBUG][       Thread-263031][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 17:50:26,787 [ INFO][       Thread-263031][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 17:50:26,789 [DEBUG][       Thread-263031][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 17:50:26,789 [DEBUG][       Thread-263031][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 17:50:26,789 [DEBUG][       Thread-263031][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 17:50:26,789 [DEBUG][       Thread-263031][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:50:26,789 [DEBUG][       Thread-263031][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:50:26,789 [DEBUG][       Thread-263031][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:50:26,789 [DEBUG][       Thread-263031][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:50:26,789 [DEBUG][       Thread-263031][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 17:50:26,789 [DEBUG][       Thread-263031][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 17:50:26,789 [DEBUG][       Thread-263031][   transport.py][1871] : client lang: <none>
2025-06-13 17:50:26,789 [DEBUG][       Thread-263031][   transport.py][1871] : server lang: <none>
2025-06-13 17:50:26,789 [DEBUG][       Thread-263031][   transport.py][1871] : kex follows: False
2025-06-13 17:50:26,789 [DEBUG][       Thread-263031][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 17:50:26,790 [DEBUG][       Thread-263031][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 17:50:26,790 [DEBUG][       Thread-263031][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 17:50:26,790 [DEBUG][       Thread-263031][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 17:50:26,790 [DEBUG][       Thread-263031][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 17:50:26,790 [DEBUG][       Thread-263031][   transport.py][1871] : Compression: none
2025-06-13 17:50:26,790 [DEBUG][       Thread-263031][   transport.py][1871] : === End of kex handshake ===
2025-06-13 17:50:26,803 [DEBUG][       Thread-263031][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 17:50:26,804 [DEBUG][       Thread-263031][   transport.py][1871] : Switch to new keys ...
2025-06-13 17:50:26,804 [DEBUG][       Thread-263031][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 17:50:26,804 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 17:50:26,805 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 17:50:26,805 [DEBUG][       Thread-263031][   transport.py][1871] : userauth is OK
2025-06-13 17:50:26,829 [ INFO][       Thread-263031][   transport.py][1871] : Authentication (password) successful!
2025-06-13 17:50:26,830 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 17:50:27,390 [DEBUG][       Thread-263031][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 17:50:27,390 [DEBUG][       Thread-263031][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 17:50:27,432 [DEBUG][       Thread-263031][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 17:50:27,433 [DEBUG][       Thread-263031][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 17:50:27,435 [DEBUG][       Thread-263031][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 17:50:27,445 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 17:50:27,445 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 17:50:27,446 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 17:50:27,448 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 17:50:27,452 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 17:50:27,453 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 17:50:27,453 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 17:50:27,454 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 17:50:27,454 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.659656 -999.00  +11.50  15.78     37   -2.60 1 1 1 1 1   777    0 13.48 -21.36 ----- 15.3 15.8 55.0 20.6 12.1 -29.6 12.0 -29.6 11.8 -28.8 12.1 -28.7
2025-06-13 17:50:27,454 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 17:50:27,454 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 17:50:27,454 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.659656
2025-06-13 17:50:27,455 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 17:50:27,455 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 17:50:27,455 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 17:50:27,455 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 17:50:27,455 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 17:50:27,456 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T17:49:56', tmtdew=15.81, humidity=32.73, cloud=0.0, wind=16.07, temperature=11.63, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T15:49:54.278', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 17:50:27,456 [DEBUG][       Thread-263031][   transport.py][1871] : EOF in transport thread
2025-06-13 17:50:27,539 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 17:50:27,548 [DEBUG][       Thread-263034][   transport.py][1871] : starting thread (client mode): 0x867b7010
2025-06-13 17:50:27,548 [DEBUG][       Thread-263034][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 17:50:27,562 [DEBUG][       Thread-263034][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 17:50:27,562 [ INFO][       Thread-263034][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 17:50:27,569 [DEBUG][       Thread-263034][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 17:50:27,569 [DEBUG][       Thread-263034][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 17:50:27,569 [DEBUG][       Thread-263034][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 17:50:27,569 [DEBUG][       Thread-263034][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:50:27,570 [DEBUG][       Thread-263034][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:50:27,570 [DEBUG][       Thread-263034][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:50:27,570 [DEBUG][       Thread-263034][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:50:27,570 [DEBUG][       Thread-263034][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 17:50:27,570 [DEBUG][       Thread-263034][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 17:50:27,570 [DEBUG][       Thread-263034][   transport.py][1871] : client lang: <none>
2025-06-13 17:50:27,570 [DEBUG][       Thread-263034][   transport.py][1871] : server lang: <none>
2025-06-13 17:50:27,570 [DEBUG][       Thread-263034][   transport.py][1871] : kex follows: False
2025-06-13 17:50:27,570 [DEBUG][       Thread-263034][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 17:50:27,570 [DEBUG][       Thread-263034][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 17:50:27,570 [DEBUG][       Thread-263034][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 17:50:27,570 [DEBUG][       Thread-263034][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 17:50:27,570 [DEBUG][       Thread-263034][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 17:50:27,570 [DEBUG][       Thread-263034][   transport.py][1871] : Compression: none
2025-06-13 17:50:27,570 [DEBUG][       Thread-263034][   transport.py][1871] : === End of kex handshake ===
2025-06-13 17:50:27,625 [DEBUG][       Thread-263034][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 17:50:27,626 [DEBUG][       Thread-263034][   transport.py][1871] : Switch to new keys ...
2025-06-13 17:50:27,626 [DEBUG][       Thread-263034][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 17:50:27,627 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 17:50:27,627 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 17:50:27,689 [DEBUG][       Thread-263034][   transport.py][1871] : userauth is OK
2025-06-13 17:50:27,689 [DEBUG][       Thread-263034][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 17:50:27,689 [DEBUG][       Thread-263034][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 17:50:27,689 [DEBUG][       Thread-263034][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 17:50:27,689 [DEBUG][       Thread-263034][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 17:50:27,703 [ INFO][       Thread-263034][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 17:50:27,703 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 17:50:27,703 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 17:50:27,710 [DEBUG][Thread-263036 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:50:27,739 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:50:27,739 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:50:28,695 [DEBUG][       Thread-263034][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 17:50:28,695 [DEBUG][       Thread-263034][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 17:50:28,744 [DEBUG][       Thread-263034][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 17:50:28,744 [DEBUG][       Thread-263034][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 17:50:28,753 [DEBUG][       Thread-263034][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 17:50:28,760 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 17:50:28,760 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 17:50:28,769 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 17:50:28,777 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 17:50:28,777 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 17:50:28,777 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 17:50:28,785 [DEBUG][       Thread-263034][   transport.py][1871] : EOF in transport thread
2025-06-13 17:50:32,427 [DEBUG][Thread-263037 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:50:38,785 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 17:50:38,785 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 17:50:38,785 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 17:50:38,788 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 17:50:39,246 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 17, 50, 28), 15.78, 32.8, 0.0, 14.58, 11.65, 0, 0, 0, 2, 0, 0),)
2025-06-13 17:50:39,246 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 17:50:28
2025-06-13 17:50:39,327 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 17:50:39,331 [DEBUG][       Thread-263038][   transport.py][1871] : starting thread (client mode): 0x86369780
2025-06-13 17:50:39,331 [DEBUG][       Thread-263038][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 17:50:39,352 [DEBUG][       Thread-263038][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 17:50:39,352 [ INFO][       Thread-263038][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 17:50:39,356 [DEBUG][       Thread-263038][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 17:50:39,356 [DEBUG][       Thread-263038][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 17:50:39,356 [DEBUG][       Thread-263038][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 17:50:39,356 [DEBUG][       Thread-263038][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:50:39,356 [DEBUG][       Thread-263038][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:50:39,357 [DEBUG][       Thread-263038][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:50:39,357 [DEBUG][       Thread-263038][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:50:39,357 [DEBUG][       Thread-263038][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 17:50:39,357 [DEBUG][       Thread-263038][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 17:50:39,357 [DEBUG][       Thread-263038][   transport.py][1871] : client lang: <none>
2025-06-13 17:50:39,357 [DEBUG][       Thread-263038][   transport.py][1871] : server lang: <none>
2025-06-13 17:50:39,357 [DEBUG][       Thread-263038][   transport.py][1871] : kex follows: False
2025-06-13 17:50:39,357 [DEBUG][       Thread-263038][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 17:50:39,357 [DEBUG][       Thread-263038][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 17:50:39,357 [DEBUG][       Thread-263038][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 17:50:39,357 [DEBUG][       Thread-263038][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 17:50:39,357 [DEBUG][       Thread-263038][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 17:50:39,357 [DEBUG][       Thread-263038][   transport.py][1871] : Compression: none
2025-06-13 17:50:39,357 [DEBUG][       Thread-263038][   transport.py][1871] : === End of kex handshake ===
2025-06-13 17:50:39,373 [DEBUG][       Thread-263038][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 17:50:39,374 [DEBUG][       Thread-263038][   transport.py][1871] : Switch to new keys ...
2025-06-13 17:50:39,374 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 17:50:39,375 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 17:50:39,375 [DEBUG][       Thread-263038][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 17:50:39,376 [DEBUG][       Thread-263038][   transport.py][1871] : userauth is OK
2025-06-13 17:50:39,400 [ INFO][       Thread-263038][   transport.py][1871] : Authentication (password) successful!
2025-06-13 17:50:39,401 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 17:50:40,052 [DEBUG][       Thread-263038][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 17:50:40,052 [DEBUG][       Thread-263038][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 17:50:40,097 [DEBUG][       Thread-263038][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 17:50:40,097 [DEBUG][       Thread-263038][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 17:50:40,100 [DEBUG][       Thread-263038][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 17:50:40,114 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 17:50:40,114 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 17:50:40,116 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 17:50:40,118 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 17:50:40,123 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 17:50:40,125 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 17:50:40,125 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 17:50:40,126 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 17:50:40,126 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.659656 -999.00  +11.50  15.78     37   -2.60 1 1 1 1 1   777    0 13.48 -21.36 ----- 15.3 15.8 55.0 20.6 12.1 -29.6 12.0 -29.6 11.8 -28.8 12.1 -28.7
2025-06-13 17:50:40,126 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 17:50:40,126 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 17:50:40,126 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.659656
2025-06-13 17:50:40,127 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 17:50:40,127 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 17:50:40,127 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 17:50:40,127 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 17:50:40,127 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 17:50:40,128 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T17:50:28', tmtdew=15.78, humidity=32.8, cloud=0.0, wind=14.58, temperature=11.65, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T15:49:54.278', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 17:50:40,129 [DEBUG][       Thread-263038][   transport.py][1871] : EOF in transport thread
2025-06-13 17:50:40,212 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 17:50:40,223 [DEBUG][       Thread-263041][   transport.py][1871] : starting thread (client mode): 0x863a40a0
2025-06-13 17:50:40,223 [DEBUG][       Thread-263041][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 17:50:40,238 [DEBUG][       Thread-263041][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 17:50:40,239 [ INFO][       Thread-263041][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 17:50:40,246 [DEBUG][       Thread-263041][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 17:50:40,246 [DEBUG][       Thread-263041][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 17:50:40,246 [DEBUG][       Thread-263041][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 17:50:40,246 [DEBUG][       Thread-263041][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:50:40,246 [DEBUG][       Thread-263041][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:50:40,246 [DEBUG][       Thread-263041][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:50:40,246 [DEBUG][       Thread-263041][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:50:40,246 [DEBUG][       Thread-263041][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 17:50:40,246 [DEBUG][       Thread-263041][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 17:50:40,247 [DEBUG][       Thread-263041][   transport.py][1871] : client lang: <none>
2025-06-13 17:50:40,247 [DEBUG][       Thread-263041][   transport.py][1871] : server lang: <none>
2025-06-13 17:50:40,247 [DEBUG][       Thread-263041][   transport.py][1871] : kex follows: False
2025-06-13 17:50:40,247 [DEBUG][       Thread-263041][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 17:50:40,247 [DEBUG][       Thread-263041][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 17:50:40,247 [DEBUG][       Thread-263041][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 17:50:40,247 [DEBUG][       Thread-263041][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 17:50:40,247 [DEBUG][       Thread-263041][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 17:50:40,247 [DEBUG][       Thread-263041][   transport.py][1871] : Compression: none
2025-06-13 17:50:40,247 [DEBUG][       Thread-263041][   transport.py][1871] : === End of kex handshake ===
2025-06-13 17:50:40,303 [DEBUG][       Thread-263041][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 17:50:40,303 [DEBUG][       Thread-263041][   transport.py][1871] : Switch to new keys ...
2025-06-13 17:50:40,304 [DEBUG][       Thread-263041][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 17:50:40,304 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 17:50:40,305 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 17:50:40,363 [DEBUG][       Thread-263041][   transport.py][1871] : userauth is OK
2025-06-13 17:50:40,363 [DEBUG][       Thread-263041][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 17:50:40,363 [DEBUG][       Thread-263041][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 17:50:40,363 [DEBUG][       Thread-263041][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 17:50:40,363 [DEBUG][       Thread-263041][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 17:50:40,386 [ INFO][       Thread-263041][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 17:50:40,386 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 17:50:40,386 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 17:50:41,380 [DEBUG][       Thread-263041][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 17:50:41,380 [DEBUG][       Thread-263041][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 17:50:41,428 [DEBUG][       Thread-263041][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 17:50:41,428 [DEBUG][       Thread-263041][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 17:50:41,437 [DEBUG][       Thread-263041][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 17:50:41,446 [DEBUG][Thread-263043 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:50:41,447 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 17:50:41,447 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 17:50:41,455 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 17:50:41,464 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 17:50:41,464 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 17:50:41,464 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 17:50:41,472 [DEBUG][       Thread-263041][   transport.py][1871] : EOF in transport thread
2025-06-13 17:50:50,482 [DEBUG][Thread-263044 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:50:51,469 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 17:50:51,470 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 17:50:51,470 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 17:50:51,473 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 17:50:51,931 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 17, 50, 28), 15.78, 32.8, 0.0, 14.58, 11.65, 0, 0, 0, 2, 0, 0),)
2025-06-13 17:50:51,931 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 17:50:28
2025-06-13 17:50:52,012 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 17:50:52,018 [DEBUG][       Thread-263045][   transport.py][1871] : starting thread (client mode): 0x863694b0
2025-06-13 17:50:52,018 [DEBUG][       Thread-263045][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 17:50:52,040 [DEBUG][       Thread-263045][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 17:50:52,040 [ INFO][       Thread-263045][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 17:50:52,044 [DEBUG][       Thread-263045][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 17:50:52,044 [DEBUG][       Thread-263045][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 17:50:52,044 [DEBUG][       Thread-263045][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 17:50:52,044 [DEBUG][       Thread-263045][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:50:52,044 [DEBUG][       Thread-263045][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:50:52,044 [DEBUG][       Thread-263045][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:50:52,044 [DEBUG][       Thread-263045][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:50:52,044 [DEBUG][       Thread-263045][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 17:50:52,044 [DEBUG][       Thread-263045][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 17:50:52,044 [DEBUG][       Thread-263045][   transport.py][1871] : client lang: <none>
2025-06-13 17:50:52,044 [DEBUG][       Thread-263045][   transport.py][1871] : server lang: <none>
2025-06-13 17:50:52,044 [DEBUG][       Thread-263045][   transport.py][1871] : kex follows: False
2025-06-13 17:50:52,044 [DEBUG][       Thread-263045][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 17:50:52,044 [DEBUG][       Thread-263045][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 17:50:52,044 [DEBUG][       Thread-263045][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 17:50:52,044 [DEBUG][       Thread-263045][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 17:50:52,044 [DEBUG][       Thread-263045][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 17:50:52,045 [DEBUG][       Thread-263045][   transport.py][1871] : Compression: none
2025-06-13 17:50:52,045 [DEBUG][       Thread-263045][   transport.py][1871] : === End of kex handshake ===
2025-06-13 17:50:52,061 [DEBUG][       Thread-263045][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 17:50:52,061 [DEBUG][       Thread-263045][   transport.py][1871] : Switch to new keys ...
2025-06-13 17:50:52,062 [DEBUG][       Thread-263045][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 17:50:52,062 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 17:50:52,062 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 17:50:52,063 [DEBUG][       Thread-263045][   transport.py][1871] : userauth is OK
2025-06-13 17:50:52,088 [ INFO][       Thread-263045][   transport.py][1871] : Authentication (password) successful!
2025-06-13 17:50:52,088 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 17:50:52,752 [DEBUG][       Thread-263045][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 17:50:52,752 [DEBUG][       Thread-263045][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 17:50:52,793 [DEBUG][       Thread-263045][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 17:50:52,793 [DEBUG][       Thread-263045][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 17:50:52,797 [DEBUG][       Thread-263045][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 17:50:52,810 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 17:50:52,810 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 17:50:52,813 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 17:50:52,815 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 17:50:52,821 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 17:50:52,823 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 17:50:52,824 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 17:50:52,824 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 17:50:52,825 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.659656 -999.00  +11.50  15.78     37   -2.60 1 1 1 1 1   777    0 13.48 -21.36 ----- 15.3 15.8 55.0 20.6 12.1 -29.6 12.0 -29.6 11.8 -28.8 12.1 -28.7
2025-06-13 17:50:52,825 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 17:50:52,825 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 17:50:52,825 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.659656
2025-06-13 17:50:52,825 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 17:50:52,826 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 17:50:52,826 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 17:50:52,826 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 17:50:52,826 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 17:50:52,826 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T17:50:28', tmtdew=15.78, humidity=32.8, cloud=0.0, wind=14.58, temperature=11.65, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T15:49:54.278', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 17:50:52,827 [DEBUG][       Thread-263045][   transport.py][1871] : EOF in transport thread
2025-06-13 17:50:52,903 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 17:50:52,915 [DEBUG][       Thread-263048][   transport.py][1871] : starting thread (client mode): 0x86893be0
2025-06-13 17:50:52,915 [DEBUG][       Thread-263048][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 17:50:52,930 [DEBUG][       Thread-263048][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 17:50:52,930 [ INFO][       Thread-263048][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 17:50:52,937 [DEBUG][       Thread-263048][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 17:50:52,938 [DEBUG][       Thread-263048][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 17:50:52,938 [DEBUG][       Thread-263048][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 17:50:52,938 [DEBUG][       Thread-263048][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:50:52,938 [DEBUG][       Thread-263048][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:50:52,938 [DEBUG][       Thread-263048][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:50:52,938 [DEBUG][       Thread-263048][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:50:52,938 [DEBUG][       Thread-263048][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 17:50:52,938 [DEBUG][       Thread-263048][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 17:50:52,938 [DEBUG][       Thread-263048][   transport.py][1871] : client lang: <none>
2025-06-13 17:50:52,938 [DEBUG][       Thread-263048][   transport.py][1871] : server lang: <none>
2025-06-13 17:50:52,938 [DEBUG][       Thread-263048][   transport.py][1871] : kex follows: False
2025-06-13 17:50:52,938 [DEBUG][       Thread-263048][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 17:50:52,938 [DEBUG][       Thread-263048][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 17:50:52,938 [DEBUG][       Thread-263048][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 17:50:52,938 [DEBUG][       Thread-263048][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 17:50:52,938 [DEBUG][       Thread-263048][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 17:50:52,938 [DEBUG][       Thread-263048][   transport.py][1871] : Compression: none
2025-06-13 17:50:52,939 [DEBUG][       Thread-263048][   transport.py][1871] : === End of kex handshake ===
2025-06-13 17:50:52,998 [DEBUG][       Thread-263048][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 17:50:52,998 [DEBUG][       Thread-263048][   transport.py][1871] : Switch to new keys ...
2025-06-13 17:50:52,999 [DEBUG][       Thread-263048][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 17:50:52,999 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 17:50:53,000 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 17:50:53,055 [DEBUG][       Thread-263048][   transport.py][1871] : userauth is OK
2025-06-13 17:50:53,055 [DEBUG][       Thread-263048][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 17:50:53,055 [DEBUG][       Thread-263048][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 17:50:53,055 [DEBUG][       Thread-263048][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 17:50:53,055 [DEBUG][       Thread-263048][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 17:50:53,074 [ INFO][       Thread-263048][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 17:50:53,075 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 17:50:53,075 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 17:50:54,070 [DEBUG][       Thread-263048][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 17:50:54,070 [DEBUG][       Thread-263048][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 17:50:54,120 [DEBUG][       Thread-263048][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 17:50:54,120 [DEBUG][       Thread-263048][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 17:50:54,129 [DEBUG][       Thread-263048][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 17:50:54,144 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 17:50:54,144 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 17:50:54,156 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 17:50:54,166 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 17:50:54,166 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 17:50:54,166 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 17:50:54,178 [DEBUG][       Thread-263048][   transport.py][1871] : EOF in transport thread
2025-06-13 17:50:59,504 [DEBUG][Thread-263050 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:51:04,177 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 17:51:04,177 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 17:51:04,178 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 17:51:04,180 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 17:51:04,638 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 17, 50, 59), 15.77, 32.8, 0.0, 14.68, 11.6, 0, 0, 0, 2, 0, 0),)
2025-06-13 17:51:04,638 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 17:50:59
2025-06-13 17:51:04,718 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 17:51:04,722 [DEBUG][       Thread-263051][   transport.py][1871] : starting thread (client mode): 0x86368520
2025-06-13 17:51:04,722 [DEBUG][       Thread-263051][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 17:51:04,743 [DEBUG][       Thread-263051][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 17:51:04,743 [ INFO][       Thread-263051][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 17:51:04,747 [DEBUG][       Thread-263051][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 17:51:04,747 [DEBUG][       Thread-263051][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 17:51:04,747 [DEBUG][       Thread-263051][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 17:51:04,747 [DEBUG][       Thread-263051][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:51:04,748 [DEBUG][       Thread-263051][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:51:04,748 [DEBUG][       Thread-263051][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:51:04,748 [DEBUG][       Thread-263051][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:51:04,748 [DEBUG][       Thread-263051][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 17:51:04,748 [DEBUG][       Thread-263051][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 17:51:04,748 [DEBUG][       Thread-263051][   transport.py][1871] : client lang: <none>
2025-06-13 17:51:04,748 [DEBUG][       Thread-263051][   transport.py][1871] : server lang: <none>
2025-06-13 17:51:04,748 [DEBUG][       Thread-263051][   transport.py][1871] : kex follows: False
2025-06-13 17:51:04,748 [DEBUG][       Thread-263051][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 17:51:04,748 [DEBUG][       Thread-263051][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 17:51:04,748 [DEBUG][       Thread-263051][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 17:51:04,748 [DEBUG][       Thread-263051][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 17:51:04,748 [DEBUG][       Thread-263051][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 17:51:04,748 [DEBUG][       Thread-263051][   transport.py][1871] : Compression: none
2025-06-13 17:51:04,748 [DEBUG][       Thread-263051][   transport.py][1871] : === End of kex handshake ===
2025-06-13 17:51:04,764 [DEBUG][       Thread-263051][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 17:51:04,765 [DEBUG][       Thread-263051][   transport.py][1871] : Switch to new keys ...
2025-06-13 17:51:04,765 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 17:51:04,765 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 17:51:04,766 [DEBUG][       Thread-263051][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 17:51:04,766 [DEBUG][       Thread-263051][   transport.py][1871] : userauth is OK
2025-06-13 17:51:04,779 [ INFO][       Thread-263051][   transport.py][1871] : Authentication (password) successful!
2025-06-13 17:51:04,779 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 17:51:05,395 [DEBUG][       Thread-263051][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 17:51:05,395 [DEBUG][       Thread-263051][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 17:51:05,437 [DEBUG][       Thread-263051][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 17:51:05,437 [DEBUG][       Thread-263051][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 17:51:05,440 [DEBUG][       Thread-263051][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 17:51:05,453 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 17:51:05,453 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 17:51:05,455 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 17:51:05,457 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 17:51:05,463 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 17:51:05,465 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 17:51:05,465 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 17:51:05,466 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 17:51:05,466 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.660003 -999.00  +11.50  16.48     37   -2.50 1 1 1 1 1   767    0 13.45 -20.31 ----- 14.9 16.5 55.4 19.4 12.1 -29.6 12.0 -29.7 11.7 -28.8 12.0 -28.8
2025-06-13 17:51:05,466 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 17:51:05,466 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 17:51:05,466 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.660003
2025-06-13 17:51:05,467 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 17:51:05,467 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 17:51:05,468 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 17:51:05,468 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 17:51:05,468 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 17:51:05,468 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T17:50:59', tmtdew=15.77, humidity=32.8, cloud=0.0, wind=14.68, temperature=11.6, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T15:50:24.259', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 17:51:05,469 [DEBUG][       Thread-263051][   transport.py][1871] : EOF in transport thread
2025-06-13 17:51:05,552 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 17:51:05,562 [DEBUG][       Thread-263054][   transport.py][1871] : starting thread (client mode): 0x867b5b10
2025-06-13 17:51:05,562 [DEBUG][       Thread-263054][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 17:51:05,577 [DEBUG][       Thread-263054][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 17:51:05,577 [ INFO][       Thread-263054][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 17:51:05,585 [DEBUG][       Thread-263054][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 17:51:05,585 [DEBUG][       Thread-263054][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 17:51:05,585 [DEBUG][       Thread-263054][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 17:51:05,585 [DEBUG][       Thread-263054][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:51:05,585 [DEBUG][       Thread-263054][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:51:05,585 [DEBUG][       Thread-263054][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:51:05,586 [DEBUG][       Thread-263054][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:51:05,586 [DEBUG][       Thread-263054][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 17:51:05,586 [DEBUG][       Thread-263054][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 17:51:05,586 [DEBUG][       Thread-263054][   transport.py][1871] : client lang: <none>
2025-06-13 17:51:05,586 [DEBUG][       Thread-263054][   transport.py][1871] : server lang: <none>
2025-06-13 17:51:05,586 [DEBUG][       Thread-263054][   transport.py][1871] : kex follows: False
2025-06-13 17:51:05,586 [DEBUG][       Thread-263054][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 17:51:05,586 [DEBUG][       Thread-263054][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 17:51:05,586 [DEBUG][       Thread-263054][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 17:51:05,586 [DEBUG][       Thread-263054][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 17:51:05,586 [DEBUG][       Thread-263054][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 17:51:05,586 [DEBUG][       Thread-263054][   transport.py][1871] : Compression: none
2025-06-13 17:51:05,586 [DEBUG][       Thread-263054][   transport.py][1871] : === End of kex handshake ===
2025-06-13 17:51:05,643 [DEBUG][       Thread-263054][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 17:51:05,644 [DEBUG][       Thread-263054][   transport.py][1871] : Switch to new keys ...
2025-06-13 17:51:05,644 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 17:51:05,645 [DEBUG][       Thread-263054][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 17:51:05,645 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 17:51:05,700 [DEBUG][       Thread-263054][   transport.py][1871] : userauth is OK
2025-06-13 17:51:05,701 [DEBUG][       Thread-263054][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 17:51:05,701 [DEBUG][       Thread-263054][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 17:51:05,701 [DEBUG][       Thread-263054][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 17:51:05,701 [DEBUG][       Thread-263054][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 17:51:05,720 [ INFO][       Thread-263054][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 17:51:05,720 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 17:51:05,720 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 17:51:06,756 [DEBUG][       Thread-263054][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 17:51:06,757 [DEBUG][       Thread-263054][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 17:51:06,808 [DEBUG][       Thread-263054][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 17:51:06,808 [DEBUG][       Thread-263054][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 17:51:06,817 [DEBUG][       Thread-263054][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 17:51:06,826 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 17:51:06,826 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 17:51:06,835 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 17:51:06,845 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 17:51:06,845 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 17:51:06,846 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 17:51:06,856 [DEBUG][       Thread-263054][   transport.py][1871] : EOF in transport thread
2025-06-13 17:51:08,524 [DEBUG][Thread-263056 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:51:16,856 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 17:51:16,857 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 17:51:16,857 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 17:51:16,859 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 17:51:17,313 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 17, 50, 59), 15.77, 32.8, 0.0, 14.68, 11.6, 0, 0, 0, 2, 0, 0),)
2025-06-13 17:51:17,313 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 17:50:59
2025-06-13 17:51:17,393 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 17:51:17,399 [DEBUG][       Thread-263057][   transport.py][1871] : starting thread (client mode): 0x863c8580
2025-06-13 17:51:17,399 [DEBUG][       Thread-263057][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 17:51:17,420 [DEBUG][       Thread-263057][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 17:51:17,420 [ INFO][       Thread-263057][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 17:51:17,423 [DEBUG][       Thread-263057][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 17:51:17,423 [DEBUG][       Thread-263057][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 17:51:17,423 [DEBUG][       Thread-263057][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 17:51:17,423 [DEBUG][       Thread-263057][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:51:17,423 [DEBUG][       Thread-263057][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:51:17,423 [DEBUG][       Thread-263057][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:51:17,423 [DEBUG][       Thread-263057][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:51:17,423 [DEBUG][       Thread-263057][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 17:51:17,423 [DEBUG][       Thread-263057][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 17:51:17,423 [DEBUG][       Thread-263057][   transport.py][1871] : client lang: <none>
2025-06-13 17:51:17,423 [DEBUG][       Thread-263057][   transport.py][1871] : server lang: <none>
2025-06-13 17:51:17,423 [DEBUG][       Thread-263057][   transport.py][1871] : kex follows: False
2025-06-13 17:51:17,423 [DEBUG][       Thread-263057][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 17:51:17,424 [DEBUG][       Thread-263057][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 17:51:17,424 [DEBUG][       Thread-263057][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 17:51:17,424 [DEBUG][       Thread-263057][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 17:51:17,424 [DEBUG][       Thread-263057][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 17:51:17,424 [DEBUG][       Thread-263057][   transport.py][1871] : Compression: none
2025-06-13 17:51:17,424 [DEBUG][       Thread-263057][   transport.py][1871] : === End of kex handshake ===
2025-06-13 17:51:17,441 [DEBUG][       Thread-263057][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 17:51:17,442 [DEBUG][       Thread-263057][   transport.py][1871] : Switch to new keys ...
2025-06-13 17:51:17,442 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 17:51:17,443 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 17:51:17,443 [DEBUG][       Thread-263057][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 17:51:17,444 [DEBUG][       Thread-263057][   transport.py][1871] : userauth is OK
2025-06-13 17:51:17,457 [ INFO][       Thread-263057][   transport.py][1871] : Authentication (password) successful!
2025-06-13 17:51:17,458 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 17:51:17,556 [DEBUG][Thread-263059 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:51:18,109 [DEBUG][       Thread-263057][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 17:51:18,109 [DEBUG][       Thread-263057][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 17:51:18,153 [DEBUG][       Thread-263057][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 17:51:18,153 [DEBUG][       Thread-263057][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 17:51:18,156 [DEBUG][       Thread-263057][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 17:51:18,167 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 17:51:18,167 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 17:51:18,169 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 17:51:18,170 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 17:51:18,175 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 17:51:18,177 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 17:51:18,177 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 17:51:18,177 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 17:51:18,178 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.660003 -999.00  +11.50  16.48     37   -2.50 1 1 1 1 1   767    0 13.45 -20.31 ----- 14.9 16.5 55.4 19.4 12.1 -29.6 12.0 -29.7 11.7 -28.8 12.0 -28.8
2025-06-13 17:51:18,178 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 17:51:18,178 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 17:51:18,178 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.660003
2025-06-13 17:51:18,178 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 17:51:18,179 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 17:51:18,179 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 17:51:18,179 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 17:51:18,179 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 17:51:18,179 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T17:50:59', tmtdew=15.77, humidity=32.8, cloud=0.0, wind=14.68, temperature=11.6, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T15:50:24.259', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 17:51:18,179 [DEBUG][       Thread-263057][   transport.py][1871] : EOF in transport thread
2025-06-13 17:51:18,262 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 17:51:18,274 [DEBUG][       Thread-263061][   transport.py][1871] : starting thread (client mode): 0xc5988130
2025-06-13 17:51:18,274 [DEBUG][       Thread-263061][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 17:51:18,288 [DEBUG][       Thread-263061][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 17:51:18,288 [ INFO][       Thread-263061][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 17:51:18,302 [DEBUG][       Thread-263061][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 17:51:18,302 [DEBUG][       Thread-263061][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 17:51:18,302 [DEBUG][       Thread-263061][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 17:51:18,302 [DEBUG][       Thread-263061][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:51:18,302 [DEBUG][       Thread-263061][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:51:18,302 [DEBUG][       Thread-263061][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:51:18,302 [DEBUG][       Thread-263061][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:51:18,302 [DEBUG][       Thread-263061][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 17:51:18,302 [DEBUG][       Thread-263061][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 17:51:18,302 [DEBUG][       Thread-263061][   transport.py][1871] : client lang: <none>
2025-06-13 17:51:18,302 [DEBUG][       Thread-263061][   transport.py][1871] : server lang: <none>
2025-06-13 17:51:18,302 [DEBUG][       Thread-263061][   transport.py][1871] : kex follows: False
2025-06-13 17:51:18,302 [DEBUG][       Thread-263061][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 17:51:18,303 [DEBUG][       Thread-263061][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 17:51:18,303 [DEBUG][       Thread-263061][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 17:51:18,303 [DEBUG][       Thread-263061][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 17:51:18,303 [DEBUG][       Thread-263061][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 17:51:18,303 [DEBUG][       Thread-263061][   transport.py][1871] : Compression: none
2025-06-13 17:51:18,303 [DEBUG][       Thread-263061][   transport.py][1871] : === End of kex handshake ===
2025-06-13 17:51:18,359 [DEBUG][       Thread-263061][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 17:51:18,359 [DEBUG][       Thread-263061][   transport.py][1871] : Switch to new keys ...
2025-06-13 17:51:18,360 [DEBUG][       Thread-263061][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 17:51:18,360 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 17:51:18,361 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 17:51:18,424 [DEBUG][       Thread-263061][   transport.py][1871] : userauth is OK
2025-06-13 17:51:18,424 [DEBUG][       Thread-263061][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 17:51:18,424 [DEBUG][       Thread-263061][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 17:51:18,424 [DEBUG][       Thread-263061][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 17:51:18,424 [DEBUG][       Thread-263061][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 17:51:18,447 [ INFO][       Thread-263061][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 17:51:18,447 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 17:51:18,448 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 17:51:19,412 [DEBUG][       Thread-263061][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 17:51:19,412 [DEBUG][       Thread-263061][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 17:51:19,459 [DEBUG][       Thread-263061][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 17:51:19,460 [DEBUG][       Thread-263061][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 17:51:19,469 [DEBUG][       Thread-263061][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 17:51:19,477 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 17:51:19,477 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 17:51:19,485 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 17:51:19,493 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 17:51:19,493 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 17:51:19,493 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 17:51:19,501 [DEBUG][       Thread-263061][   transport.py][1871] : EOF in transport thread
2025-06-13 17:51:26,577 [DEBUG][Thread-263063 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:51:27,774 [DEBUG][Thread-263064 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:51:27,783 [DEBUG][Thread-263065 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:51:28,854 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:51:28,855 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:51:29,495 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 17:51:29,495 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 17:51:29,495 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 17:51:29,498 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 17:51:29,961 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 17, 50, 59), 15.77, 32.8, 0.0, 14.68, 11.6, 0, 0, 0, 2, 0, 0),)
2025-06-13 17:51:29,961 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 17:50:59
2025-06-13 17:51:30,042 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 17:51:30,046 [DEBUG][       Thread-263066][   transport.py][1871] : starting thread (client mode): 0x8636af80
2025-06-13 17:51:30,046 [DEBUG][       Thread-263066][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 17:51:30,067 [DEBUG][       Thread-263066][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 17:51:30,067 [ INFO][       Thread-263066][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 17:51:30,070 [DEBUG][       Thread-263066][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 17:51:30,070 [DEBUG][       Thread-263066][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 17:51:30,070 [DEBUG][       Thread-263066][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 17:51:30,070 [DEBUG][       Thread-263066][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:51:30,070 [DEBUG][       Thread-263066][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:51:30,070 [DEBUG][       Thread-263066][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:51:30,070 [DEBUG][       Thread-263066][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:51:30,070 [DEBUG][       Thread-263066][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 17:51:30,070 [DEBUG][       Thread-263066][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 17:51:30,070 [DEBUG][       Thread-263066][   transport.py][1871] : client lang: <none>
2025-06-13 17:51:30,070 [DEBUG][       Thread-263066][   transport.py][1871] : server lang: <none>
2025-06-13 17:51:30,070 [DEBUG][       Thread-263066][   transport.py][1871] : kex follows: False
2025-06-13 17:51:30,070 [DEBUG][       Thread-263066][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 17:51:30,071 [DEBUG][       Thread-263066][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 17:51:30,071 [DEBUG][       Thread-263066][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 17:51:30,071 [DEBUG][       Thread-263066][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 17:51:30,071 [DEBUG][       Thread-263066][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 17:51:30,071 [DEBUG][       Thread-263066][   transport.py][1871] : Compression: none
2025-06-13 17:51:30,071 [DEBUG][       Thread-263066][   transport.py][1871] : === End of kex handshake ===
2025-06-13 17:51:30,088 [DEBUG][       Thread-263066][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 17:51:30,089 [DEBUG][       Thread-263066][   transport.py][1871] : Switch to new keys ...
2025-06-13 17:51:30,089 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 17:51:30,089 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 17:51:30,090 [DEBUG][       Thread-263066][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 17:51:30,090 [DEBUG][       Thread-263066][   transport.py][1871] : userauth is OK
2025-06-13 17:51:30,114 [ INFO][       Thread-263066][   transport.py][1871] : Authentication (password) successful!
2025-06-13 17:51:30,115 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 17:51:30,720 [DEBUG][       Thread-263066][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 17:51:30,720 [DEBUG][       Thread-263066][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 17:51:30,761 [DEBUG][       Thread-263066][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 17:51:30,761 [DEBUG][       Thread-263066][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 17:51:30,765 [DEBUG][       Thread-263066][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 17:51:30,777 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 17:51:30,777 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 17:51:30,779 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 17:51:30,781 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 17:51:30,786 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 17:51:30,787 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 17:51:30,788 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 17:51:30,788 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 17:51:30,789 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.660003 -999.00  +11.50  16.48     37   -2.50 1 1 1 1 1   767    0 13.45 -20.31 ----- 14.9 16.5 55.4 19.4 12.1 -29.6 12.0 -29.7 11.7 -28.8 12.0 -28.8
2025-06-13 17:51:30,789 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 17:51:30,789 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 17:51:30,789 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.660003
2025-06-13 17:51:30,789 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 17:51:30,790 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 17:51:30,790 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 17:51:30,790 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 17:51:30,790 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 17:51:30,790 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T17:50:59', tmtdew=15.77, humidity=32.8, cloud=0.0, wind=14.68, temperature=11.6, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T15:50:24.259', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 17:51:30,791 [DEBUG][       Thread-263066][   transport.py][1871] : EOF in transport thread
2025-06-13 17:51:30,875 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 17:51:30,885 [DEBUG][       Thread-263069][   transport.py][1871] : starting thread (client mode): 0x86739330
2025-06-13 17:51:30,885 [DEBUG][       Thread-263069][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 17:51:30,900 [DEBUG][       Thread-263069][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 17:51:30,900 [ INFO][       Thread-263069][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 17:51:30,907 [DEBUG][       Thread-263069][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 17:51:30,908 [DEBUG][       Thread-263069][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 17:51:30,908 [DEBUG][       Thread-263069][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 17:51:30,908 [DEBUG][       Thread-263069][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:51:30,908 [DEBUG][       Thread-263069][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:51:30,908 [DEBUG][       Thread-263069][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:51:30,908 [DEBUG][       Thread-263069][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:51:30,908 [DEBUG][       Thread-263069][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 17:51:30,908 [DEBUG][       Thread-263069][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 17:51:30,908 [DEBUG][       Thread-263069][   transport.py][1871] : client lang: <none>
2025-06-13 17:51:30,908 [DEBUG][       Thread-263069][   transport.py][1871] : server lang: <none>
2025-06-13 17:51:30,908 [DEBUG][       Thread-263069][   transport.py][1871] : kex follows: False
2025-06-13 17:51:30,908 [DEBUG][       Thread-263069][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 17:51:30,908 [DEBUG][       Thread-263069][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 17:51:30,908 [DEBUG][       Thread-263069][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 17:51:30,908 [DEBUG][       Thread-263069][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 17:51:30,908 [DEBUG][       Thread-263069][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 17:51:30,908 [DEBUG][       Thread-263069][   transport.py][1871] : Compression: none
2025-06-13 17:51:30,908 [DEBUG][       Thread-263069][   transport.py][1871] : === End of kex handshake ===
2025-06-13 17:51:30,984 [DEBUG][       Thread-263069][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 17:51:30,984 [DEBUG][       Thread-263069][   transport.py][1871] : Switch to new keys ...
2025-06-13 17:51:30,985 [DEBUG][       Thread-263069][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 17:51:30,985 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 17:51:30,986 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 17:51:31,043 [DEBUG][       Thread-263069][   transport.py][1871] : userauth is OK
2025-06-13 17:51:31,043 [DEBUG][       Thread-263069][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 17:51:31,043 [DEBUG][       Thread-263069][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 17:51:31,043 [DEBUG][       Thread-263069][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 17:51:31,044 [DEBUG][       Thread-263069][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 17:51:31,065 [ INFO][       Thread-263069][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 17:51:31,065 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 17:51:31,066 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 17:51:31,261 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:51:31,262 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:51:32,095 [DEBUG][       Thread-263069][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 17:51:32,096 [DEBUG][       Thread-263069][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 17:51:32,143 [DEBUG][       Thread-263069][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 17:51:32,143 [DEBUG][       Thread-263069][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 17:51:32,152 [DEBUG][       Thread-263069][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 17:51:32,164 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 17:51:32,164 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 17:51:32,172 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 17:51:32,180 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 17:51:32,180 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 17:51:32,180 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 17:51:32,188 [DEBUG][       Thread-263069][   transport.py][1871] : EOF in transport thread
2025-06-13 17:51:35,597 [DEBUG][Thread-263071 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:51:42,191 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 17:51:42,191 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 17:51:42,191 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 17:51:42,194 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 17:51:42,665 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 17, 51, 31), 15.72, 33.19, 0.0, 14.77, 11.57, 0, 0, 0, 2, 0, 0),)
2025-06-13 17:51:42,665 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 17:51:31
2025-06-13 17:51:42,747 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 17:51:42,753 [DEBUG][       Thread-263072][   transport.py][1871] : starting thread (client mode): 0x863c9fc0
2025-06-13 17:51:42,753 [DEBUG][       Thread-263072][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 17:51:42,775 [DEBUG][       Thread-263072][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 17:51:42,775 [ INFO][       Thread-263072][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 17:51:42,779 [DEBUG][       Thread-263072][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 17:51:42,779 [DEBUG][       Thread-263072][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 17:51:42,779 [DEBUG][       Thread-263072][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 17:51:42,779 [DEBUG][       Thread-263072][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:51:42,779 [DEBUG][       Thread-263072][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:51:42,779 [DEBUG][       Thread-263072][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:51:42,779 [DEBUG][       Thread-263072][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:51:42,779 [DEBUG][       Thread-263072][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 17:51:42,779 [DEBUG][       Thread-263072][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 17:51:42,779 [DEBUG][       Thread-263072][   transport.py][1871] : client lang: <none>
2025-06-13 17:51:42,779 [DEBUG][       Thread-263072][   transport.py][1871] : server lang: <none>
2025-06-13 17:51:42,779 [DEBUG][       Thread-263072][   transport.py][1871] : kex follows: False
2025-06-13 17:51:42,779 [DEBUG][       Thread-263072][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 17:51:42,779 [DEBUG][       Thread-263072][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 17:51:42,779 [DEBUG][       Thread-263072][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 17:51:42,779 [DEBUG][       Thread-263072][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 17:51:42,779 [DEBUG][       Thread-263072][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 17:51:42,779 [DEBUG][       Thread-263072][   transport.py][1871] : Compression: none
2025-06-13 17:51:42,779 [DEBUG][       Thread-263072][   transport.py][1871] : === End of kex handshake ===
2025-06-13 17:51:42,796 [DEBUG][       Thread-263072][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 17:51:42,797 [DEBUG][       Thread-263072][   transport.py][1871] : Switch to new keys ...
2025-06-13 17:51:42,797 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 17:51:42,797 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 17:51:42,798 [DEBUG][       Thread-263072][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 17:51:42,799 [DEBUG][       Thread-263072][   transport.py][1871] : userauth is OK
2025-06-13 17:51:42,812 [ INFO][       Thread-263072][   transport.py][1871] : Authentication (password) successful!
2025-06-13 17:51:42,812 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 17:51:43,410 [DEBUG][       Thread-263072][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 17:51:43,410 [DEBUG][       Thread-263072][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 17:51:43,453 [DEBUG][       Thread-263072][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 17:51:43,453 [DEBUG][       Thread-263072][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 17:51:43,456 [DEBUG][       Thread-263072][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 17:51:43,467 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 17:51:43,468 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 17:51:43,470 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 17:51:43,472 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 17:51:43,478 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 17:51:43,480 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 17:51:43,480 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 17:51:43,481 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 17:51:43,481 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.660697 -999.00  +11.50  18.97     37   -2.60 1 1 1 1 1   746    0 13.29 -16.94 ----- 21.9 19.0 47.2 21.9 12.1 -29.5 11.9 -29.6 11.7 -28.7 11.9 -28.6
2025-06-13 17:51:43,481 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 17:51:43,481 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 17:51:43,481 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.660697
2025-06-13 17:51:43,482 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 17:51:43,482 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 17:51:43,483 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 17:51:43,483 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 17:51:43,483 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 17:51:43,483 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T17:51:31', tmtdew=15.72, humidity=33.19, cloud=0.0, wind=14.77, temperature=11.57, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T15:51:24.221', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 17:51:43,484 [DEBUG][       Thread-263072][   transport.py][1871] : EOF in transport thread
2025-06-13 17:51:43,566 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 17:51:43,578 [DEBUG][       Thread-263075][   transport.py][1871] : starting thread (client mode): 0x86739330
2025-06-13 17:51:43,578 [DEBUG][       Thread-263075][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 17:51:43,595 [DEBUG][       Thread-263075][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 17:51:43,595 [ INFO][       Thread-263075][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 17:51:43,603 [DEBUG][       Thread-263075][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 17:51:43,603 [DEBUG][       Thread-263075][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 17:51:43,603 [DEBUG][       Thread-263075][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 17:51:43,603 [DEBUG][       Thread-263075][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:51:43,603 [DEBUG][       Thread-263075][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:51:43,603 [DEBUG][       Thread-263075][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:51:43,603 [DEBUG][       Thread-263075][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:51:43,603 [DEBUG][       Thread-263075][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 17:51:43,603 [DEBUG][       Thread-263075][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 17:51:43,603 [DEBUG][       Thread-263075][   transport.py][1871] : client lang: <none>
2025-06-13 17:51:43,604 [DEBUG][       Thread-263075][   transport.py][1871] : server lang: <none>
2025-06-13 17:51:43,604 [DEBUG][       Thread-263075][   transport.py][1871] : kex follows: False
2025-06-13 17:51:43,604 [DEBUG][       Thread-263075][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 17:51:43,604 [DEBUG][       Thread-263075][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 17:51:43,604 [DEBUG][       Thread-263075][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 17:51:43,604 [DEBUG][       Thread-263075][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 17:51:43,604 [DEBUG][       Thread-263075][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 17:51:43,604 [DEBUG][       Thread-263075][   transport.py][1871] : Compression: none
2025-06-13 17:51:43,604 [DEBUG][       Thread-263075][   transport.py][1871] : === End of kex handshake ===
2025-06-13 17:51:43,665 [DEBUG][       Thread-263075][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 17:51:43,666 [DEBUG][       Thread-263075][   transport.py][1871] : Switch to new keys ...
2025-06-13 17:51:43,666 [DEBUG][       Thread-263075][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 17:51:43,667 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 17:51:43,667 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 17:51:43,723 [DEBUG][       Thread-263075][   transport.py][1871] : userauth is OK
2025-06-13 17:51:43,723 [DEBUG][       Thread-263075][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 17:51:43,723 [DEBUG][       Thread-263075][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 17:51:43,723 [DEBUG][       Thread-263075][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 17:51:43,723 [DEBUG][       Thread-263075][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 17:51:43,742 [ INFO][       Thread-263075][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 17:51:43,743 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 17:51:43,743 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 17:51:44,624 [DEBUG][Thread-263077 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:51:44,767 [DEBUG][       Thread-263075][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 17:51:44,767 [DEBUG][       Thread-263075][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 17:51:44,817 [DEBUG][       Thread-263075][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 17:51:44,817 [DEBUG][       Thread-263075][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 17:51:44,829 [DEBUG][       Thread-263075][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 17:51:44,838 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 17:51:44,838 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 17:51:44,847 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 17:51:44,857 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 17:51:44,857 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 17:51:44,857 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 17:51:44,865 [DEBUG][       Thread-263075][   transport.py][1871] : EOF in transport thread
2025-06-13 17:51:53,657 [DEBUG][Thread-263078 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:51:54,868 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 17:51:54,868 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 17:51:54,868 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 17:51:54,871 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 17:51:55,327 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 17, 51, 31), 15.72, 33.19, 0.0, 14.77, 11.57, 0, 0, 0, 2, 0, 0),)
2025-06-13 17:51:55,327 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 17:51:31
2025-06-13 17:51:55,408 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 17:51:55,413 [DEBUG][       Thread-263079][   transport.py][1871] : starting thread (client mode): 0x867fe110
2025-06-13 17:51:55,413 [DEBUG][       Thread-263079][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 17:51:55,432 [DEBUG][       Thread-263079][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 17:51:55,433 [ INFO][       Thread-263079][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 17:51:55,436 [DEBUG][       Thread-263079][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 17:51:55,436 [DEBUG][       Thread-263079][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 17:51:55,436 [DEBUG][       Thread-263079][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 17:51:55,436 [DEBUG][       Thread-263079][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:51:55,436 [DEBUG][       Thread-263079][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:51:55,436 [DEBUG][       Thread-263079][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:51:55,436 [DEBUG][       Thread-263079][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:51:55,436 [DEBUG][       Thread-263079][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 17:51:55,436 [DEBUG][       Thread-263079][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 17:51:55,436 [DEBUG][       Thread-263079][   transport.py][1871] : client lang: <none>
2025-06-13 17:51:55,436 [DEBUG][       Thread-263079][   transport.py][1871] : server lang: <none>
2025-06-13 17:51:55,436 [DEBUG][       Thread-263079][   transport.py][1871] : kex follows: False
2025-06-13 17:51:55,436 [DEBUG][       Thread-263079][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 17:51:55,436 [DEBUG][       Thread-263079][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 17:51:55,436 [DEBUG][       Thread-263079][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 17:51:55,436 [DEBUG][       Thread-263079][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 17:51:55,436 [DEBUG][       Thread-263079][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 17:51:55,436 [DEBUG][       Thread-263079][   transport.py][1871] : Compression: none
2025-06-13 17:51:55,436 [DEBUG][       Thread-263079][   transport.py][1871] : === End of kex handshake ===
2025-06-13 17:51:55,455 [DEBUG][       Thread-263079][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 17:51:55,455 [DEBUG][       Thread-263079][   transport.py][1871] : Switch to new keys ...
2025-06-13 17:51:55,456 [DEBUG][       Thread-263079][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 17:51:55,456 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 17:51:55,457 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 17:51:55,458 [DEBUG][       Thread-263079][   transport.py][1871] : userauth is OK
2025-06-13 17:51:55,471 [ INFO][       Thread-263079][   transport.py][1871] : Authentication (password) successful!
2025-06-13 17:51:55,472 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 17:51:56,050 [DEBUG][       Thread-263079][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 17:51:56,050 [DEBUG][       Thread-263079][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 17:51:56,093 [DEBUG][       Thread-263079][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 17:51:56,093 [DEBUG][       Thread-263079][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 17:51:56,096 [DEBUG][       Thread-263079][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 17:51:56,109 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 17:51:56,110 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 17:51:56,112 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 17:51:56,114 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 17:51:56,119 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 17:51:56,121 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 17:51:56,121 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 17:51:56,122 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 17:51:56,122 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.660697 -999.00  +11.50  18.97     37   -2.60 1 1 1 1 1   746    0 13.29 -16.94 ----- 21.9 19.0 47.2 21.9 12.1 -29.5 11.9 -29.6 11.7 -28.7 11.9 -28.6
2025-06-13 17:51:56,122 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 17:51:56,122 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 17:51:56,122 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.660697
2025-06-13 17:51:56,123 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 17:51:56,123 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 17:51:56,124 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 17:51:56,124 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 17:51:56,124 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 17:51:56,124 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T17:51:31', tmtdew=15.72, humidity=33.19, cloud=0.0, wind=14.77, temperature=11.57, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T15:51:24.221', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 17:51:56,125 [DEBUG][       Thread-263079][   transport.py][1871] : EOF in transport thread
2025-06-13 17:51:56,207 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 17:51:56,218 [DEBUG][       Thread-263082][   transport.py][1871] : starting thread (client mode): 0x863505b0
2025-06-13 17:51:56,218 [DEBUG][       Thread-263082][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 17:51:56,236 [DEBUG][       Thread-263082][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 17:51:56,236 [ INFO][       Thread-263082][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 17:51:56,248 [DEBUG][       Thread-263082][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 17:51:56,248 [DEBUG][       Thread-263082][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 17:51:56,248 [DEBUG][       Thread-263082][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 17:51:56,248 [DEBUG][       Thread-263082][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:51:56,248 [DEBUG][       Thread-263082][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:51:56,248 [DEBUG][       Thread-263082][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:51:56,248 [DEBUG][       Thread-263082][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:51:56,248 [DEBUG][       Thread-263082][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 17:51:56,248 [DEBUG][       Thread-263082][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 17:51:56,248 [DEBUG][       Thread-263082][   transport.py][1871] : client lang: <none>
2025-06-13 17:51:56,248 [DEBUG][       Thread-263082][   transport.py][1871] : server lang: <none>
2025-06-13 17:51:56,249 [DEBUG][       Thread-263082][   transport.py][1871] : kex follows: False
2025-06-13 17:51:56,249 [DEBUG][       Thread-263082][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 17:51:56,249 [DEBUG][       Thread-263082][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 17:51:56,249 [DEBUG][       Thread-263082][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 17:51:56,249 [DEBUG][       Thread-263082][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 17:51:56,249 [DEBUG][       Thread-263082][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 17:51:56,249 [DEBUG][       Thread-263082][   transport.py][1871] : Compression: none
2025-06-13 17:51:56,249 [DEBUG][       Thread-263082][   transport.py][1871] : === End of kex handshake ===
2025-06-13 17:51:56,307 [DEBUG][       Thread-263082][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 17:51:56,308 [DEBUG][       Thread-263082][   transport.py][1871] : Switch to new keys ...
2025-06-13 17:51:56,309 [DEBUG][       Thread-263082][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 17:51:56,309 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 17:51:56,310 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 17:51:56,363 [DEBUG][       Thread-263082][   transport.py][1871] : userauth is OK
2025-06-13 17:51:56,363 [DEBUG][       Thread-263082][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 17:51:56,363 [DEBUG][       Thread-263082][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 17:51:56,363 [DEBUG][       Thread-263082][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 17:51:56,363 [DEBUG][       Thread-263082][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 17:51:56,382 [ INFO][       Thread-263082][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 17:51:56,383 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 17:51:56,383 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 17:51:57,401 [DEBUG][       Thread-263082][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 17:51:57,402 [DEBUG][       Thread-263082][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 17:51:57,452 [DEBUG][       Thread-263082][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 17:51:57,452 [DEBUG][       Thread-263082][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 17:51:57,464 [DEBUG][       Thread-263082][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 17:51:57,475 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 17:51:57,476 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 17:51:57,485 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 17:51:57,494 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 17:51:57,494 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 17:51:57,495 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 17:51:57,503 [DEBUG][       Thread-263082][   transport.py][1871] : EOF in transport thread
2025-06-13 17:52:02,680 [DEBUG][Thread-263084 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:52:07,505 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 17:52:07,505 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 17:52:07,505 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 17:52:07,508 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 17:52:07,971 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 17, 52, 3), 15.72, 33.17, 0.0, 13.71, 11.54, 0, 0, 0, 2, 0, 0),)
2025-06-13 17:52:07,971 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 17:52:03
2025-06-13 17:52:08,052 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 17:52:08,058 [DEBUG][       Thread-263085][   transport.py][1871] : starting thread (client mode): 0x86368310
2025-06-13 17:52:08,058 [DEBUG][       Thread-263085][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 17:52:08,078 [DEBUG][       Thread-263085][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 17:52:08,078 [ INFO][       Thread-263085][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 17:52:08,079 [DEBUG][       Thread-263085][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 17:52:08,080 [DEBUG][       Thread-263085][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 17:52:08,080 [DEBUG][       Thread-263085][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 17:52:08,080 [DEBUG][       Thread-263085][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:52:08,080 [DEBUG][       Thread-263085][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:52:08,080 [DEBUG][       Thread-263085][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:52:08,080 [DEBUG][       Thread-263085][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:52:08,080 [DEBUG][       Thread-263085][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 17:52:08,080 [DEBUG][       Thread-263085][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 17:52:08,080 [DEBUG][       Thread-263085][   transport.py][1871] : client lang: <none>
2025-06-13 17:52:08,080 [DEBUG][       Thread-263085][   transport.py][1871] : server lang: <none>
2025-06-13 17:52:08,080 [DEBUG][       Thread-263085][   transport.py][1871] : kex follows: False
2025-06-13 17:52:08,080 [DEBUG][       Thread-263085][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 17:52:08,080 [DEBUG][       Thread-263085][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 17:52:08,080 [DEBUG][       Thread-263085][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 17:52:08,080 [DEBUG][       Thread-263085][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 17:52:08,080 [DEBUG][       Thread-263085][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 17:52:08,080 [DEBUG][       Thread-263085][   transport.py][1871] : Compression: none
2025-06-13 17:52:08,080 [DEBUG][       Thread-263085][   transport.py][1871] : === End of kex handshake ===
2025-06-13 17:52:08,089 [DEBUG][       Thread-263085][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 17:52:08,089 [DEBUG][       Thread-263085][   transport.py][1871] : Switch to new keys ...
2025-06-13 17:52:08,090 [DEBUG][       Thread-263085][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 17:52:08,090 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 17:52:08,090 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 17:52:08,091 [DEBUG][       Thread-263085][   transport.py][1871] : userauth is OK
2025-06-13 17:52:08,104 [ INFO][       Thread-263085][   transport.py][1871] : Authentication (password) successful!
2025-06-13 17:52:08,105 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 17:52:08,753 [DEBUG][       Thread-263085][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 17:52:08,753 [DEBUG][       Thread-263085][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 17:52:08,797 [DEBUG][       Thread-263085][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 17:52:08,797 [DEBUG][       Thread-263085][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 17:52:08,801 [DEBUG][       Thread-263085][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 17:52:08,814 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 17:52:08,814 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 17:52:08,816 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 17:52:08,818 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 17:52:08,824 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 17:52:08,826 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 17:52:08,826 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 17:52:08,827 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 17:52:08,827 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.661045 -999.00  +11.50  16.63     37   -2.60 1 1 1 1 1   735    0 13.69 -14.32 ----- 16.6 16.6 59.6 22.1 12.1 -29.6 11.9 -29.6 11.7 -28.7 12.0 -28.8
2025-06-13 17:52:08,827 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 17:52:08,827 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 17:52:08,827 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.661045
2025-06-13 17:52:08,828 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 17:52:08,828 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 17:52:08,828 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 17:52:08,828 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 17:52:08,828 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 17:52:08,829 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T17:52:03', tmtdew=15.72, humidity=33.17, cloud=0.0, wind=13.71, temperature=11.54, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T15:51:54.288', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 17:52:08,830 [DEBUG][       Thread-263085][   transport.py][1871] : EOF in transport thread
2025-06-13 17:52:08,912 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 17:52:08,923 [DEBUG][       Thread-263088][   transport.py][1871] : starting thread (client mode): 0x86353fd0
2025-06-13 17:52:08,923 [DEBUG][       Thread-263088][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 17:52:08,941 [DEBUG][       Thread-263088][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 17:52:08,941 [ INFO][       Thread-263088][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 17:52:08,951 [DEBUG][       Thread-263088][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 17:52:08,951 [DEBUG][       Thread-263088][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 17:52:08,951 [DEBUG][       Thread-263088][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 17:52:08,951 [DEBUG][       Thread-263088][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:52:08,951 [DEBUG][       Thread-263088][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:52:08,951 [DEBUG][       Thread-263088][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:52:08,951 [DEBUG][       Thread-263088][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:52:08,951 [DEBUG][       Thread-263088][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 17:52:08,951 [DEBUG][       Thread-263088][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 17:52:08,951 [DEBUG][       Thread-263088][   transport.py][1871] : client lang: <none>
2025-06-13 17:52:08,951 [DEBUG][       Thread-263088][   transport.py][1871] : server lang: <none>
2025-06-13 17:52:08,952 [DEBUG][       Thread-263088][   transport.py][1871] : kex follows: False
2025-06-13 17:52:08,952 [DEBUG][       Thread-263088][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 17:52:08,952 [DEBUG][       Thread-263088][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 17:52:08,952 [DEBUG][       Thread-263088][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 17:52:08,952 [DEBUG][       Thread-263088][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 17:52:08,952 [DEBUG][       Thread-263088][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 17:52:08,952 [DEBUG][       Thread-263088][   transport.py][1871] : Compression: none
2025-06-13 17:52:08,952 [DEBUG][       Thread-263088][   transport.py][1871] : === End of kex handshake ===
2025-06-13 17:52:09,009 [DEBUG][       Thread-263088][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 17:52:09,010 [DEBUG][       Thread-263088][   transport.py][1871] : Switch to new keys ...
2025-06-13 17:52:09,010 [DEBUG][       Thread-263088][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 17:52:09,011 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 17:52:09,011 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 17:52:09,067 [DEBUG][       Thread-263088][   transport.py][1871] : userauth is OK
2025-06-13 17:52:09,067 [DEBUG][       Thread-263088][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 17:52:09,067 [DEBUG][       Thread-263088][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 17:52:09,067 [DEBUG][       Thread-263088][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 17:52:09,067 [DEBUG][       Thread-263088][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 17:52:09,085 [ INFO][       Thread-263088][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 17:52:09,086 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 17:52:09,086 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 17:52:10,076 [DEBUG][       Thread-263088][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 17:52:10,076 [DEBUG][       Thread-263088][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 17:52:10,124 [DEBUG][       Thread-263088][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 17:52:10,124 [DEBUG][       Thread-263088][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 17:52:10,133 [DEBUG][       Thread-263088][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 17:52:10,142 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 17:52:10,142 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 17:52:10,151 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 17:52:10,160 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 17:52:10,160 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 17:52:10,161 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 17:52:10,169 [DEBUG][       Thread-263088][   transport.py][1871] : EOF in transport thread
2025-06-13 17:52:11,703 [DEBUG][Thread-263090 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:52:20,163 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 17:52:20,164 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 17:52:20,164 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 17:52:20,166 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 17:52:20,625 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 17, 52, 3), 15.72, 33.17, 0.0, 13.71, 11.54, 0, 0, 0, 2, 0, 0),)
2025-06-13 17:52:20,625 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 17:52:03
2025-06-13 17:52:20,706 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 17:52:20,710 [DEBUG][       Thread-263091][   transport.py][1871] : starting thread (client mode): 0x863681c0
2025-06-13 17:52:20,710 [DEBUG][       Thread-263091][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 17:52:20,732 [DEBUG][       Thread-263091][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 17:52:20,732 [ INFO][       Thread-263091][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 17:52:20,735 [DEBUG][Thread-263093 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:52:20,735 [DEBUG][       Thread-263091][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 17:52:20,736 [DEBUG][       Thread-263091][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 17:52:20,736 [DEBUG][       Thread-263091][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 17:52:20,736 [DEBUG][       Thread-263091][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:52:20,736 [DEBUG][       Thread-263091][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:52:20,736 [DEBUG][       Thread-263091][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:52:20,736 [DEBUG][       Thread-263091][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:52:20,736 [DEBUG][       Thread-263091][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 17:52:20,736 [DEBUG][       Thread-263091][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 17:52:20,736 [DEBUG][       Thread-263091][   transport.py][1871] : client lang: <none>
2025-06-13 17:52:20,736 [DEBUG][       Thread-263091][   transport.py][1871] : server lang: <none>
2025-06-13 17:52:20,736 [DEBUG][       Thread-263091][   transport.py][1871] : kex follows: False
2025-06-13 17:52:20,736 [DEBUG][       Thread-263091][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 17:52:20,736 [DEBUG][       Thread-263091][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 17:52:20,736 [DEBUG][       Thread-263091][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 17:52:20,736 [DEBUG][       Thread-263091][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 17:52:20,736 [DEBUG][       Thread-263091][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 17:52:20,736 [DEBUG][       Thread-263091][   transport.py][1871] : Compression: none
2025-06-13 17:52:20,736 [DEBUG][       Thread-263091][   transport.py][1871] : === End of kex handshake ===
2025-06-13 17:52:20,751 [DEBUG][       Thread-263091][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 17:52:20,751 [DEBUG][       Thread-263091][   transport.py][1871] : Switch to new keys ...
2025-06-13 17:52:20,751 [DEBUG][       Thread-263091][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 17:52:20,751 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 17:52:20,751 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 17:52:20,752 [DEBUG][       Thread-263091][   transport.py][1871] : userauth is OK
2025-06-13 17:52:20,775 [ INFO][       Thread-263091][   transport.py][1871] : Authentication (password) successful!
2025-06-13 17:52:20,775 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 17:52:21,394 [DEBUG][       Thread-263091][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 17:52:21,394 [DEBUG][       Thread-263091][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 17:52:21,437 [DEBUG][       Thread-263091][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 17:52:21,437 [DEBUG][       Thread-263091][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 17:52:21,441 [DEBUG][       Thread-263091][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 17:52:21,454 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 17:52:21,455 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 17:52:21,457 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 17:52:21,459 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 17:52:21,465 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 17:52:21,467 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 17:52:21,467 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 17:52:21,468 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 17:52:21,468 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.661045 -999.00  +11.50  16.63     37   -2.60 1 1 1 1 1   735    0 13.69 -14.32 ----- 16.6 16.6 59.6 22.1 12.1 -29.6 11.9 -29.6 11.7 -28.7 12.0 -28.8
2025-06-13 17:52:21,468 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 17:52:21,468 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 17:52:21,468 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.661045
2025-06-13 17:52:21,469 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 17:52:21,469 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 17:52:21,469 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 17:52:21,470 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 17:52:21,470 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 17:52:21,470 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T17:52:03', tmtdew=15.72, humidity=33.17, cloud=0.0, wind=13.71, temperature=11.54, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T15:51:54.288', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 17:52:21,470 [DEBUG][       Thread-263091][   transport.py][1871] : EOF in transport thread
2025-06-13 17:52:21,554 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 17:52:21,564 [DEBUG][       Thread-263095][   transport.py][1871] : starting thread (client mode): 0x863bea70
2025-06-13 17:52:21,564 [DEBUG][       Thread-263095][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 17:52:21,578 [DEBUG][       Thread-263095][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 17:52:21,578 [ INFO][       Thread-263095][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 17:52:21,586 [DEBUG][       Thread-263095][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 17:52:21,586 [DEBUG][       Thread-263095][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 17:52:21,586 [DEBUG][       Thread-263095][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 17:52:21,586 [DEBUG][       Thread-263095][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:52:21,586 [DEBUG][       Thread-263095][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:52:21,586 [DEBUG][       Thread-263095][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:52:21,586 [DEBUG][       Thread-263095][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:52:21,586 [DEBUG][       Thread-263095][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 17:52:21,586 [DEBUG][       Thread-263095][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 17:52:21,586 [DEBUG][       Thread-263095][   transport.py][1871] : client lang: <none>
2025-06-13 17:52:21,586 [DEBUG][       Thread-263095][   transport.py][1871] : server lang: <none>
2025-06-13 17:52:21,586 [DEBUG][       Thread-263095][   transport.py][1871] : kex follows: False
2025-06-13 17:52:21,586 [DEBUG][       Thread-263095][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 17:52:21,586 [DEBUG][       Thread-263095][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 17:52:21,586 [DEBUG][       Thread-263095][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 17:52:21,586 [DEBUG][       Thread-263095][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 17:52:21,586 [DEBUG][       Thread-263095][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 17:52:21,586 [DEBUG][       Thread-263095][   transport.py][1871] : Compression: none
2025-06-13 17:52:21,586 [DEBUG][       Thread-263095][   transport.py][1871] : === End of kex handshake ===
2025-06-13 17:52:21,643 [DEBUG][       Thread-263095][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 17:52:21,643 [DEBUG][       Thread-263095][   transport.py][1871] : Switch to new keys ...
2025-06-13 17:52:21,644 [DEBUG][       Thread-263095][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 17:52:21,644 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 17:52:21,645 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 17:52:21,699 [DEBUG][       Thread-263095][   transport.py][1871] : userauth is OK
2025-06-13 17:52:21,700 [DEBUG][       Thread-263095][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 17:52:21,700 [DEBUG][       Thread-263095][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 17:52:21,700 [DEBUG][       Thread-263095][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 17:52:21,700 [DEBUG][       Thread-263095][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 17:52:21,714 [ INFO][       Thread-263095][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 17:52:21,714 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 17:52:21,714 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 17:52:22,724 [DEBUG][       Thread-263095][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 17:52:22,724 [DEBUG][       Thread-263095][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 17:52:22,772 [DEBUG][       Thread-263095][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 17:52:22,772 [DEBUG][       Thread-263095][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 17:52:22,782 [DEBUG][       Thread-263095][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 17:52:22,790 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 17:52:22,791 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 17:52:22,799 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 17:52:22,808 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 17:52:22,809 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 17:52:22,809 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 17:52:22,817 [DEBUG][       Thread-263095][   transport.py][1871] : EOF in transport thread
2025-06-13 17:52:27,857 [DEBUG][Thread-263097 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:52:28,940 [DEBUG][Thread-263098 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:52:29,753 [DEBUG][Thread-263099 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:52:30,050 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:52:30,051 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:52:32,816 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 17:52:32,816 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 17:52:32,816 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 17:52:32,819 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 17:52:33,271 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 17, 52, 3), 15.72, 33.17, 0.0, 13.71, 11.54, 0, 0, 0, 2, 0, 0),)
2025-06-13 17:52:33,271 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 17:52:03
2025-06-13 17:52:33,352 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 17:52:33,357 [DEBUG][       Thread-263100][   transport.py][1871] : starting thread (client mode): 0x8636bcd0
2025-06-13 17:52:33,358 [DEBUG][       Thread-263100][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 17:52:33,378 [DEBUG][       Thread-263100][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 17:52:33,378 [ INFO][       Thread-263100][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 17:52:33,382 [DEBUG][       Thread-263100][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 17:52:33,382 [DEBUG][       Thread-263100][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 17:52:33,382 [DEBUG][       Thread-263100][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 17:52:33,382 [DEBUG][       Thread-263100][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:52:33,382 [DEBUG][       Thread-263100][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:52:33,382 [DEBUG][       Thread-263100][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:52:33,382 [DEBUG][       Thread-263100][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:52:33,382 [DEBUG][       Thread-263100][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 17:52:33,382 [DEBUG][       Thread-263100][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 17:52:33,382 [DEBUG][       Thread-263100][   transport.py][1871] : client lang: <none>
2025-06-13 17:52:33,383 [DEBUG][       Thread-263100][   transport.py][1871] : server lang: <none>
2025-06-13 17:52:33,383 [DEBUG][       Thread-263100][   transport.py][1871] : kex follows: False
2025-06-13 17:52:33,383 [DEBUG][       Thread-263100][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 17:52:33,383 [DEBUG][       Thread-263100][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 17:52:33,383 [DEBUG][       Thread-263100][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 17:52:33,383 [DEBUG][       Thread-263100][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 17:52:33,383 [DEBUG][       Thread-263100][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 17:52:33,383 [DEBUG][       Thread-263100][   transport.py][1871] : Compression: none
2025-06-13 17:52:33,383 [DEBUG][       Thread-263100][   transport.py][1871] : === End of kex handshake ===
2025-06-13 17:52:33,401 [DEBUG][       Thread-263100][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 17:52:33,401 [DEBUG][       Thread-263100][   transport.py][1871] : Switch to new keys ...
2025-06-13 17:52:33,402 [DEBUG][       Thread-263100][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 17:52:33,402 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 17:52:33,402 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 17:52:33,403 [DEBUG][       Thread-263100][   transport.py][1871] : userauth is OK
2025-06-13 17:52:33,428 [ INFO][       Thread-263100][   transport.py][1871] : Authentication (password) successful!
2025-06-13 17:52:33,429 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 17:52:34,054 [DEBUG][       Thread-263100][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 17:52:34,054 [DEBUG][       Thread-263100][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 17:52:34,097 [DEBUG][       Thread-263100][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 17:52:34,097 [DEBUG][       Thread-263100][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 17:52:34,099 [DEBUG][       Thread-263100][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 17:52:34,113 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 17:52:34,114 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 17:52:34,115 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 17:52:34,117 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 17:52:34,122 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 17:52:34,124 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 17:52:34,124 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 17:52:34,125 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 17:52:34,125 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.661045 -999.00  +11.50  16.63     37   -2.60 1 1 1 1 1   735    0 13.69 -14.32 ----- 16.6 16.6 59.6 22.1 12.1 -29.6 11.9 -29.6 11.7 -28.7 12.0 -28.8
2025-06-13 17:52:34,125 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 17:52:34,125 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 17:52:34,125 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.661045
2025-06-13 17:52:34,126 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 17:52:34,126 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 17:52:34,126 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 17:52:34,126 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 17:52:34,126 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 17:52:34,126 [DEBUG][       Thread-263100][   transport.py][1871] : EOF in transport thread
2025-06-13 17:52:34,127 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T17:52:03', tmtdew=15.72, humidity=33.17, cloud=0.0, wind=13.71, temperature=11.54, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T15:51:54.288', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 17:52:34,204 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 17:52:34,214 [DEBUG][       Thread-263103][   transport.py][1871] : starting thread (client mode): 0x867fe200
2025-06-13 17:52:34,215 [DEBUG][       Thread-263103][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 17:52:34,229 [DEBUG][       Thread-263103][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 17:52:34,229 [ INFO][       Thread-263103][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 17:52:34,237 [DEBUG][       Thread-263103][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 17:52:34,237 [DEBUG][       Thread-263103][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 17:52:34,237 [DEBUG][       Thread-263103][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 17:52:34,237 [DEBUG][       Thread-263103][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:52:34,237 [DEBUG][       Thread-263103][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:52:34,237 [DEBUG][       Thread-263103][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:52:34,237 [DEBUG][       Thread-263103][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:52:34,237 [DEBUG][       Thread-263103][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 17:52:34,237 [DEBUG][       Thread-263103][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 17:52:34,237 [DEBUG][       Thread-263103][   transport.py][1871] : client lang: <none>
2025-06-13 17:52:34,237 [DEBUG][       Thread-263103][   transport.py][1871] : server lang: <none>
2025-06-13 17:52:34,237 [DEBUG][       Thread-263103][   transport.py][1871] : kex follows: False
2025-06-13 17:52:34,237 [DEBUG][       Thread-263103][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 17:52:34,237 [DEBUG][       Thread-263103][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 17:52:34,237 [DEBUG][       Thread-263103][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 17:52:34,237 [DEBUG][       Thread-263103][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 17:52:34,237 [DEBUG][       Thread-263103][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 17:52:34,237 [DEBUG][       Thread-263103][   transport.py][1871] : Compression: none
2025-06-13 17:52:34,237 [DEBUG][       Thread-263103][   transport.py][1871] : === End of kex handshake ===
2025-06-13 17:52:34,294 [DEBUG][       Thread-263103][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 17:52:34,294 [DEBUG][       Thread-263103][   transport.py][1871] : Switch to new keys ...
2025-06-13 17:52:34,295 [DEBUG][       Thread-263103][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 17:52:34,295 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 17:52:34,296 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 17:52:34,351 [DEBUG][       Thread-263103][   transport.py][1871] : userauth is OK
2025-06-13 17:52:34,351 [DEBUG][       Thread-263103][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 17:52:34,351 [DEBUG][       Thread-263103][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 17:52:34,351 [DEBUG][       Thread-263103][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 17:52:34,351 [DEBUG][       Thread-263103][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 17:52:34,374 [ INFO][       Thread-263103][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 17:52:34,374 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 17:52:34,375 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 17:52:35,375 [DEBUG][       Thread-263103][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 17:52:35,376 [DEBUG][       Thread-263103][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 17:52:35,423 [DEBUG][       Thread-263103][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 17:52:35,423 [DEBUG][       Thread-263103][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 17:52:35,431 [DEBUG][       Thread-263103][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 17:52:35,439 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 17:52:35,439 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 17:52:35,447 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 17:52:35,455 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 17:52:35,455 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 17:52:35,455 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 17:52:35,463 [DEBUG][       Thread-263103][   transport.py][1871] : EOF in transport thread
2025-06-13 17:52:38,773 [DEBUG][Thread-263105 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:52:38,941 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:52:38,943 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:52:45,465 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 17:52:45,466 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 17:52:45,475 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 17:52:45,478 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 17:52:45,934 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 17, 52, 34), 15.73, 33.14, 0.0, 15.67, 11.54, 0, 0, 0, 2, 0, 0),)
2025-06-13 17:52:45,935 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 17:52:34
2025-06-13 17:52:46,015 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 17:52:46,021 [DEBUG][       Thread-263106][   transport.py][1871] : starting thread (client mode): 0x8636ba00
2025-06-13 17:52:46,021 [DEBUG][       Thread-263106][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 17:52:46,041 [DEBUG][       Thread-263106][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 17:52:46,041 [ INFO][       Thread-263106][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 17:52:46,044 [DEBUG][       Thread-263106][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 17:52:46,044 [DEBUG][       Thread-263106][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 17:52:46,044 [DEBUG][       Thread-263106][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 17:52:46,044 [DEBUG][       Thread-263106][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:52:46,044 [DEBUG][       Thread-263106][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:52:46,044 [DEBUG][       Thread-263106][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:52:46,045 [DEBUG][       Thread-263106][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:52:46,045 [DEBUG][       Thread-263106][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 17:52:46,045 [DEBUG][       Thread-263106][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 17:52:46,045 [DEBUG][       Thread-263106][   transport.py][1871] : client lang: <none>
2025-06-13 17:52:46,045 [DEBUG][       Thread-263106][   transport.py][1871] : server lang: <none>
2025-06-13 17:52:46,045 [DEBUG][       Thread-263106][   transport.py][1871] : kex follows: False
2025-06-13 17:52:46,045 [DEBUG][       Thread-263106][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 17:52:46,045 [DEBUG][       Thread-263106][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 17:52:46,045 [DEBUG][       Thread-263106][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 17:52:46,045 [DEBUG][       Thread-263106][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 17:52:46,045 [DEBUG][       Thread-263106][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 17:52:46,045 [DEBUG][       Thread-263106][   transport.py][1871] : Compression: none
2025-06-13 17:52:46,045 [DEBUG][       Thread-263106][   transport.py][1871] : === End of kex handshake ===
2025-06-13 17:52:46,062 [DEBUG][       Thread-263106][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 17:52:46,062 [DEBUG][       Thread-263106][   transport.py][1871] : Switch to new keys ...
2025-06-13 17:52:46,063 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 17:52:46,063 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 17:52:46,064 [DEBUG][       Thread-263106][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 17:52:46,064 [DEBUG][       Thread-263106][   transport.py][1871] : userauth is OK
2025-06-13 17:52:46,078 [ INFO][       Thread-263106][   transport.py][1871] : Authentication (password) successful!
2025-06-13 17:52:46,078 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 17:52:46,700 [DEBUG][       Thread-263106][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 17:52:46,700 [DEBUG][       Thread-263106][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 17:52:46,745 [DEBUG][       Thread-263106][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 17:52:46,745 [DEBUG][       Thread-263106][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 17:52:46,748 [DEBUG][       Thread-263106][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 17:52:46,759 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 17:52:46,760 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 17:52:46,761 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 17:52:46,763 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 17:52:46,769 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 17:52:46,771 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 17:52:46,771 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 17:52:46,772 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 17:52:46,772 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.661392 -999.00  +11.50  18.35     37   -2.50 1 1 1 1 1   722    0 13.70 -12.92 ----- 19.7 18.4 47.8 20.8 12.1 -29.5 11.9 -29.5 11.6 -28.7 11.9 -28.7
2025-06-13 17:52:46,772 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 17:52:46,772 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 17:52:46,772 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.661392
2025-06-13 17:52:46,772 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 17:52:46,773 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 17:52:46,773 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 17:52:46,773 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 17:52:46,773 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 17:52:46,773 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T17:52:34', tmtdew=15.73, humidity=33.14, cloud=0.0, wind=15.67, temperature=11.54, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T15:52:24.269', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 17:52:46,774 [DEBUG][       Thread-263106][   transport.py][1871] : EOF in transport thread
2025-06-13 17:52:46,857 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 17:52:46,868 [DEBUG][       Thread-263109][   transport.py][1871] : starting thread (client mode): 0x867b7010
2025-06-13 17:52:46,868 [DEBUG][       Thread-263109][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 17:52:46,884 [DEBUG][       Thread-263109][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 17:52:46,884 [ INFO][       Thread-263109][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 17:52:46,892 [DEBUG][       Thread-263109][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 17:52:46,892 [DEBUG][       Thread-263109][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 17:52:46,892 [DEBUG][       Thread-263109][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 17:52:46,892 [DEBUG][       Thread-263109][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:52:46,892 [DEBUG][       Thread-263109][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:52:46,892 [DEBUG][       Thread-263109][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:52:46,892 [DEBUG][       Thread-263109][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:52:46,892 [DEBUG][       Thread-263109][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 17:52:46,892 [DEBUG][       Thread-263109][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 17:52:46,892 [DEBUG][       Thread-263109][   transport.py][1871] : client lang: <none>
2025-06-13 17:52:46,892 [DEBUG][       Thread-263109][   transport.py][1871] : server lang: <none>
2025-06-13 17:52:46,892 [DEBUG][       Thread-263109][   transport.py][1871] : kex follows: False
2025-06-13 17:52:46,892 [DEBUG][       Thread-263109][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 17:52:46,892 [DEBUG][       Thread-263109][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 17:52:46,893 [DEBUG][       Thread-263109][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 17:52:46,893 [DEBUG][       Thread-263109][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 17:52:46,893 [DEBUG][       Thread-263109][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 17:52:46,893 [DEBUG][       Thread-263109][   transport.py][1871] : Compression: none
2025-06-13 17:52:46,893 [DEBUG][       Thread-263109][   transport.py][1871] : === End of kex handshake ===
2025-06-13 17:52:46,956 [DEBUG][       Thread-263109][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 17:52:46,956 [DEBUG][       Thread-263109][   transport.py][1871] : Switch to new keys ...
2025-06-13 17:52:46,957 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 17:52:46,957 [DEBUG][       Thread-263109][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 17:52:46,958 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 17:52:47,011 [DEBUG][       Thread-263109][   transport.py][1871] : userauth is OK
2025-06-13 17:52:47,011 [DEBUG][       Thread-263109][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 17:52:47,011 [DEBUG][       Thread-263109][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 17:52:47,012 [DEBUG][       Thread-263109][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 17:52:47,012 [DEBUG][       Thread-263109][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 17:52:47,031 [ INFO][       Thread-263109][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 17:52:47,032 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 17:52:47,032 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 17:52:47,796 [DEBUG][Thread-263111 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:52:48,107 [DEBUG][       Thread-263109][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 17:52:48,107 [DEBUG][       Thread-263109][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 17:52:48,156 [DEBUG][       Thread-263109][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 17:52:48,156 [DEBUG][       Thread-263109][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 17:52:48,166 [DEBUG][       Thread-263109][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 17:52:48,176 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 17:52:48,176 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 17:52:48,187 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 17:52:48,199 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 17:52:48,199 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 17:52:48,200 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 17:52:48,209 [DEBUG][       Thread-263109][   transport.py][1871] : EOF in transport thread
2025-06-13 17:52:56,831 [DEBUG][Thread-263112 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:52:58,210 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 17:52:58,211 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 17:52:58,211 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 17:52:58,214 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 17:52:58,656 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 17, 52, 34), 15.73, 33.14, 0.0, 15.67, 11.54, 0, 0, 0, 2, 0, 0),)
2025-06-13 17:52:58,656 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 17:52:34
2025-06-13 17:52:58,737 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 17:52:58,742 [DEBUG][       Thread-263113][   transport.py][1871] : starting thread (client mode): 0x863c8580
2025-06-13 17:52:58,742 [DEBUG][       Thread-263113][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 17:52:58,761 [DEBUG][       Thread-263113][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 17:52:58,761 [ INFO][       Thread-263113][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 17:52:58,764 [DEBUG][       Thread-263113][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 17:52:58,764 [DEBUG][       Thread-263113][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 17:52:58,764 [DEBUG][       Thread-263113][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 17:52:58,764 [DEBUG][       Thread-263113][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:52:58,764 [DEBUG][       Thread-263113][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:52:58,765 [DEBUG][       Thread-263113][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:52:58,765 [DEBUG][       Thread-263113][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:52:58,765 [DEBUG][       Thread-263113][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 17:52:58,765 [DEBUG][       Thread-263113][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 17:52:58,765 [DEBUG][       Thread-263113][   transport.py][1871] : client lang: <none>
2025-06-13 17:52:58,765 [DEBUG][       Thread-263113][   transport.py][1871] : server lang: <none>
2025-06-13 17:52:58,765 [DEBUG][       Thread-263113][   transport.py][1871] : kex follows: False
2025-06-13 17:52:58,765 [DEBUG][       Thread-263113][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 17:52:58,765 [DEBUG][       Thread-263113][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 17:52:58,765 [DEBUG][       Thread-263113][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 17:52:58,765 [DEBUG][       Thread-263113][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 17:52:58,765 [DEBUG][       Thread-263113][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 17:52:58,765 [DEBUG][       Thread-263113][   transport.py][1871] : Compression: none
2025-06-13 17:52:58,765 [DEBUG][       Thread-263113][   transport.py][1871] : === End of kex handshake ===
2025-06-13 17:52:58,782 [DEBUG][       Thread-263113][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 17:52:58,783 [DEBUG][       Thread-263113][   transport.py][1871] : Switch to new keys ...
2025-06-13 17:52:58,783 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 17:52:58,783 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 17:52:58,784 [DEBUG][       Thread-263113][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 17:52:58,828 [DEBUG][       Thread-263113][   transport.py][1871] : userauth is OK
2025-06-13 17:52:58,852 [ INFO][       Thread-263113][   transport.py][1871] : Authentication (password) successful!
2025-06-13 17:52:58,853 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 17:52:59,490 [DEBUG][       Thread-263113][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 17:52:59,490 [DEBUG][       Thread-263113][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 17:52:59,533 [DEBUG][       Thread-263113][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 17:52:59,533 [DEBUG][       Thread-263113][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 17:52:59,536 [DEBUG][       Thread-263113][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 17:52:59,549 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 17:52:59,549 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 17:52:59,550 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 17:52:59,551 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 17:52:59,554 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 17:52:59,555 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 17:52:59,555 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 17:52:59,555 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 17:52:59,555 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.661392 -999.00  +11.50  18.35     37   -2.50 1 1 1 1 1   722    0 13.70 -12.92 ----- 19.7 18.4 47.8 20.8 12.1 -29.5 11.9 -29.5 11.6 -28.7 11.9 -28.7
2025-06-13 17:52:59,555 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 17:52:59,555 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 17:52:59,555 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.661392
2025-06-13 17:52:59,555 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 17:52:59,555 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 17:52:59,555 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 17:52:59,555 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 17:52:59,555 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 17:52:59,555 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T17:52:34', tmtdew=15.73, humidity=33.14, cloud=0.0, wind=15.67, temperature=11.54, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T15:52:24.269', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 17:52:59,556 [DEBUG][       Thread-263113][   transport.py][1871] : EOF in transport thread
2025-06-13 17:52:59,627 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 17:52:59,637 [DEBUG][       Thread-263116][   transport.py][1871] : starting thread (client mode): 0x86893be0
2025-06-13 17:52:59,637 [DEBUG][       Thread-263116][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 17:52:59,651 [DEBUG][       Thread-263116][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 17:52:59,652 [ INFO][       Thread-263116][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 17:52:59,659 [DEBUG][       Thread-263116][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 17:52:59,659 [DEBUG][       Thread-263116][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 17:52:59,659 [DEBUG][       Thread-263116][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 17:52:59,659 [DEBUG][       Thread-263116][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:52:59,659 [DEBUG][       Thread-263116][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:52:59,659 [DEBUG][       Thread-263116][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:52:59,659 [DEBUG][       Thread-263116][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:52:59,659 [DEBUG][       Thread-263116][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 17:52:59,659 [DEBUG][       Thread-263116][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 17:52:59,659 [DEBUG][       Thread-263116][   transport.py][1871] : client lang: <none>
2025-06-13 17:52:59,659 [DEBUG][       Thread-263116][   transport.py][1871] : server lang: <none>
2025-06-13 17:52:59,660 [DEBUG][       Thread-263116][   transport.py][1871] : kex follows: False
2025-06-13 17:52:59,660 [DEBUG][       Thread-263116][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 17:52:59,660 [DEBUG][       Thread-263116][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 17:52:59,660 [DEBUG][       Thread-263116][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 17:52:59,660 [DEBUG][       Thread-263116][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 17:52:59,660 [DEBUG][       Thread-263116][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 17:52:59,660 [DEBUG][       Thread-263116][   transport.py][1871] : Compression: none
2025-06-13 17:52:59,660 [DEBUG][       Thread-263116][   transport.py][1871] : === End of kex handshake ===
2025-06-13 17:52:59,718 [DEBUG][       Thread-263116][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 17:52:59,719 [DEBUG][       Thread-263116][   transport.py][1871] : Switch to new keys ...
2025-06-13 17:52:59,720 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 17:52:59,720 [DEBUG][       Thread-263116][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 17:52:59,721 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 17:52:59,774 [DEBUG][       Thread-263116][   transport.py][1871] : userauth is OK
2025-06-13 17:52:59,775 [DEBUG][       Thread-263116][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 17:52:59,775 [DEBUG][       Thread-263116][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 17:52:59,775 [DEBUG][       Thread-263116][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 17:52:59,775 [DEBUG][       Thread-263116][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 17:52:59,793 [ INFO][       Thread-263116][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 17:52:59,793 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 17:52:59,794 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 17:53:00,791 [DEBUG][       Thread-263116][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 17:53:00,791 [DEBUG][       Thread-263116][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 17:53:00,840 [DEBUG][       Thread-263116][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 17:53:00,840 [DEBUG][       Thread-263116][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 17:53:00,849 [DEBUG][       Thread-263116][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 17:53:00,858 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 17:53:00,859 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 17:53:00,869 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 17:53:00,878 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 17:53:00,879 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 17:53:00,879 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 17:53:00,887 [DEBUG][       Thread-263116][   transport.py][1871] : EOF in transport thread
2025-06-13 17:53:05,850 [DEBUG][Thread-263118 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:53:10,890 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 17:53:10,890 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 17:53:10,890 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 17:53:10,893 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 17:53:11,342 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 17, 53, 6), 15.76, 33.09, 0.0, 14.66, 11.58, 0, 0, 0, 2, 0, 0),)
2025-06-13 17:53:11,342 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 17:53:06
2025-06-13 17:53:11,425 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 17:53:11,430 [DEBUG][       Thread-263119][   transport.py][1871] : starting thread (client mode): 0x8636a170
2025-06-13 17:53:11,430 [DEBUG][       Thread-263119][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 17:53:11,452 [DEBUG][       Thread-263119][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 17:53:11,452 [ INFO][       Thread-263119][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 17:53:11,453 [DEBUG][       Thread-263119][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 17:53:11,454 [DEBUG][       Thread-263119][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 17:53:11,454 [DEBUG][       Thread-263119][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 17:53:11,454 [DEBUG][       Thread-263119][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:53:11,454 [DEBUG][       Thread-263119][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:53:11,454 [DEBUG][       Thread-263119][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:53:11,454 [DEBUG][       Thread-263119][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:53:11,454 [DEBUG][       Thread-263119][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 17:53:11,454 [DEBUG][       Thread-263119][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 17:53:11,454 [DEBUG][       Thread-263119][   transport.py][1871] : client lang: <none>
2025-06-13 17:53:11,454 [DEBUG][       Thread-263119][   transport.py][1871] : server lang: <none>
2025-06-13 17:53:11,454 [DEBUG][       Thread-263119][   transport.py][1871] : kex follows: False
2025-06-13 17:53:11,454 [DEBUG][       Thread-263119][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 17:53:11,454 [DEBUG][       Thread-263119][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 17:53:11,454 [DEBUG][       Thread-263119][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 17:53:11,454 [DEBUG][       Thread-263119][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 17:53:11,454 [DEBUG][       Thread-263119][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 17:53:11,454 [DEBUG][       Thread-263119][   transport.py][1871] : Compression: none
2025-06-13 17:53:11,454 [DEBUG][       Thread-263119][   transport.py][1871] : === End of kex handshake ===
2025-06-13 17:53:11,462 [DEBUG][       Thread-263119][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 17:53:11,463 [DEBUG][       Thread-263119][   transport.py][1871] : Switch to new keys ...
2025-06-13 17:53:11,463 [DEBUG][       Thread-263119][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 17:53:11,464 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 17:53:11,464 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 17:53:11,465 [DEBUG][       Thread-263119][   transport.py][1871] : userauth is OK
2025-06-13 17:53:11,478 [ INFO][       Thread-263119][   transport.py][1871] : Authentication (password) successful!
2025-06-13 17:53:11,478 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 17:53:12,064 [DEBUG][       Thread-263119][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 17:53:12,064 [DEBUG][       Thread-263119][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 17:53:12,105 [DEBUG][       Thread-263119][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 17:53:12,105 [DEBUG][       Thread-263119][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 17:53:12,108 [DEBUG][       Thread-263119][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 17:53:12,118 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 17:53:12,119 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 17:53:12,121 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 17:53:12,123 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 17:53:12,128 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 17:53:12,130 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 17:53:12,131 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 17:53:12,131 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 17:53:12,132 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.661739 -999.00  +11.50  18.63     37   -2.60 1 1 1 1 1   709    0 13.86 -12.40 ----- 20.2 18.6 52.2 21.2 12.0 -29.4 11.9 -29.4 11.6 -28.6 11.9 -28.4
2025-06-13 17:53:12,132 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 17:53:12,132 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 17:53:12,132 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.661739
2025-06-13 17:53:12,132 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 17:53:12,133 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 17:53:12,133 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 17:53:12,133 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 17:53:12,133 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 17:53:12,133 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T17:53:06', tmtdew=15.76, humidity=33.09, cloud=0.0, wind=14.66, temperature=11.58, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T15:52:54.250', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 17:53:12,134 [DEBUG][       Thread-263119][   transport.py][1871] : EOF in transport thread
2025-06-13 17:53:12,217 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 17:53:12,228 [DEBUG][       Thread-263122][   transport.py][1871] : starting thread (client mode): 0x863a5600
2025-06-13 17:53:12,228 [DEBUG][       Thread-263122][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 17:53:12,244 [DEBUG][       Thread-263122][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 17:53:12,244 [ INFO][       Thread-263122][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 17:53:12,251 [DEBUG][       Thread-263122][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 17:53:12,252 [DEBUG][       Thread-263122][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 17:53:12,252 [DEBUG][       Thread-263122][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 17:53:12,252 [DEBUG][       Thread-263122][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:53:12,252 [DEBUG][       Thread-263122][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:53:12,252 [DEBUG][       Thread-263122][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:53:12,252 [DEBUG][       Thread-263122][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:53:12,252 [DEBUG][       Thread-263122][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 17:53:12,252 [DEBUG][       Thread-263122][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 17:53:12,252 [DEBUG][       Thread-263122][   transport.py][1871] : client lang: <none>
2025-06-13 17:53:12,252 [DEBUG][       Thread-263122][   transport.py][1871] : server lang: <none>
2025-06-13 17:53:12,252 [DEBUG][       Thread-263122][   transport.py][1871] : kex follows: False
2025-06-13 17:53:12,252 [DEBUG][       Thread-263122][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 17:53:12,252 [DEBUG][       Thread-263122][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 17:53:12,252 [DEBUG][       Thread-263122][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 17:53:12,252 [DEBUG][       Thread-263122][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 17:53:12,252 [DEBUG][       Thread-263122][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 17:53:12,252 [DEBUG][       Thread-263122][   transport.py][1871] : Compression: none
2025-06-13 17:53:12,253 [DEBUG][       Thread-263122][   transport.py][1871] : === End of kex handshake ===
2025-06-13 17:53:12,316 [DEBUG][       Thread-263122][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 17:53:12,317 [DEBUG][       Thread-263122][   transport.py][1871] : Switch to new keys ...
2025-06-13 17:53:12,318 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 17:53:12,318 [DEBUG][       Thread-263122][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 17:53:12,319 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 17:53:12,380 [DEBUG][       Thread-263122][   transport.py][1871] : userauth is OK
2025-06-13 17:53:12,380 [DEBUG][       Thread-263122][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 17:53:12,380 [DEBUG][       Thread-263122][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 17:53:12,381 [DEBUG][       Thread-263122][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 17:53:12,381 [DEBUG][       Thread-263122][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 17:53:12,401 [ INFO][       Thread-263122][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 17:53:12,402 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 17:53:12,402 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 17:53:13,407 [DEBUG][       Thread-263122][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 17:53:13,408 [DEBUG][       Thread-263122][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 17:53:13,456 [DEBUG][       Thread-263122][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 17:53:13,456 [DEBUG][       Thread-263122][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 17:53:13,465 [DEBUG][       Thread-263122][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 17:53:13,474 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 17:53:13,474 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 17:53:13,483 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 17:53:13,492 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 17:53:13,493 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 17:53:13,493 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 17:53:13,501 [DEBUG][       Thread-263122][   transport.py][1871] : EOF in transport thread
2025-06-13 17:53:14,870 [DEBUG][Thread-263124 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:53:23,504 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 17:53:23,504 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 17:53:23,504 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 17:53:23,507 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 17:53:23,904 [DEBUG][Thread-263125 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:53:23,965 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 17, 53, 6), 15.76, 33.09, 0.0, 14.66, 11.58, 0, 0, 0, 2, 0, 0),)
2025-06-13 17:53:23,965 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 17:53:06
2025-06-13 17:53:24,047 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 17:53:24,051 [DEBUG][       Thread-263126][   transport.py][1871] : starting thread (client mode): 0x863cabc0
2025-06-13 17:53:24,051 [DEBUG][       Thread-263126][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 17:53:24,073 [DEBUG][       Thread-263126][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 17:53:24,073 [ INFO][       Thread-263126][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 17:53:24,076 [DEBUG][       Thread-263126][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 17:53:24,076 [DEBUG][       Thread-263126][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 17:53:24,076 [DEBUG][       Thread-263126][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 17:53:24,076 [DEBUG][       Thread-263126][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:53:24,076 [DEBUG][       Thread-263126][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:53:24,076 [DEBUG][       Thread-263126][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:53:24,076 [DEBUG][       Thread-263126][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:53:24,076 [DEBUG][       Thread-263126][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 17:53:24,076 [DEBUG][       Thread-263126][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 17:53:24,076 [DEBUG][       Thread-263126][   transport.py][1871] : client lang: <none>
2025-06-13 17:53:24,076 [DEBUG][       Thread-263126][   transport.py][1871] : server lang: <none>
2025-06-13 17:53:24,076 [DEBUG][       Thread-263126][   transport.py][1871] : kex follows: False
2025-06-13 17:53:24,076 [DEBUG][       Thread-263126][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 17:53:24,076 [DEBUG][       Thread-263126][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 17:53:24,076 [DEBUG][       Thread-263126][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 17:53:24,076 [DEBUG][       Thread-263126][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 17:53:24,076 [DEBUG][       Thread-263126][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 17:53:24,076 [DEBUG][       Thread-263126][   transport.py][1871] : Compression: none
2025-06-13 17:53:24,076 [DEBUG][       Thread-263126][   transport.py][1871] : === End of kex handshake ===
2025-06-13 17:53:24,093 [DEBUG][       Thread-263126][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 17:53:24,094 [DEBUG][       Thread-263126][   transport.py][1871] : Switch to new keys ...
2025-06-13 17:53:24,094 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 17:53:24,094 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 17:53:24,095 [DEBUG][       Thread-263126][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 17:53:24,095 [DEBUG][       Thread-263126][   transport.py][1871] : userauth is OK
2025-06-13 17:53:24,108 [ INFO][       Thread-263126][   transport.py][1871] : Authentication (password) successful!
2025-06-13 17:53:24,109 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 17:53:24,742 [DEBUG][       Thread-263126][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 17:53:24,743 [DEBUG][       Thread-263126][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 17:53:24,785 [DEBUG][       Thread-263126][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 17:53:24,785 [DEBUG][       Thread-263126][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 17:53:24,789 [DEBUG][       Thread-263126][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 17:53:24,802 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 17:53:24,802 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 17:53:24,804 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 17:53:24,806 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 17:53:24,813 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 17:53:24,815 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 17:53:24,815 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 17:53:24,816 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 17:53:24,816 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.661739 -999.00  +11.50  18.63     37   -2.60 1 1 1 1 1   709    0 13.86 -12.40 ----- 20.2 18.6 52.2 21.2 12.0 -29.4 11.9 -29.4 11.6 -28.6 11.9 -28.4
2025-06-13 17:53:24,816 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 17:53:24,816 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 17:53:24,816 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.661739
2025-06-13 17:53:24,817 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 17:53:24,817 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 17:53:24,817 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 17:53:24,817 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 17:53:24,817 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 17:53:24,818 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T17:53:06', tmtdew=15.76, humidity=33.09, cloud=0.0, wind=14.66, temperature=11.58, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T15:52:54.250', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 17:53:24,818 [DEBUG][       Thread-263126][   transport.py][1871] : EOF in transport thread
2025-06-13 17:53:24,901 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 17:53:24,911 [DEBUG][       Thread-263129][   transport.py][1871] : starting thread (client mode): 0x86893be0
2025-06-13 17:53:24,911 [DEBUG][       Thread-263129][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 17:53:24,926 [DEBUG][       Thread-263129][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 17:53:24,926 [ INFO][       Thread-263129][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 17:53:24,937 [DEBUG][       Thread-263129][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 17:53:24,937 [DEBUG][       Thread-263129][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 17:53:24,937 [DEBUG][       Thread-263129][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 17:53:24,938 [DEBUG][       Thread-263129][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:53:24,938 [DEBUG][       Thread-263129][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:53:24,938 [DEBUG][       Thread-263129][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:53:24,938 [DEBUG][       Thread-263129][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:53:24,938 [DEBUG][       Thread-263129][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 17:53:24,938 [DEBUG][       Thread-263129][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 17:53:24,938 [DEBUG][       Thread-263129][   transport.py][1871] : client lang: <none>
2025-06-13 17:53:24,938 [DEBUG][       Thread-263129][   transport.py][1871] : server lang: <none>
2025-06-13 17:53:24,938 [DEBUG][       Thread-263129][   transport.py][1871] : kex follows: False
2025-06-13 17:53:24,938 [DEBUG][       Thread-263129][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 17:53:24,938 [DEBUG][       Thread-263129][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 17:53:24,938 [DEBUG][       Thread-263129][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 17:53:24,938 [DEBUG][       Thread-263129][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 17:53:24,938 [DEBUG][       Thread-263129][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 17:53:24,938 [DEBUG][       Thread-263129][   transport.py][1871] : Compression: none
2025-06-13 17:53:24,938 [DEBUG][       Thread-263129][   transport.py][1871] : === End of kex handshake ===
2025-06-13 17:53:24,996 [DEBUG][       Thread-263129][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 17:53:24,997 [DEBUG][       Thread-263129][   transport.py][1871] : Switch to new keys ...
2025-06-13 17:53:24,998 [DEBUG][       Thread-263129][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 17:53:24,998 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 17:53:24,998 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 17:53:25,056 [DEBUG][       Thread-263129][   transport.py][1871] : userauth is OK
2025-06-13 17:53:25,056 [DEBUG][       Thread-263129][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 17:53:25,056 [DEBUG][       Thread-263129][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 17:53:25,056 [DEBUG][       Thread-263129][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 17:53:25,056 [DEBUG][       Thread-263129][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 17:53:25,078 [ INFO][       Thread-263129][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 17:53:25,079 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 17:53:25,079 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 17:53:26,096 [DEBUG][       Thread-263129][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 17:53:26,096 [DEBUG][       Thread-263129][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 17:53:26,144 [DEBUG][       Thread-263129][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 17:53:26,144 [DEBUG][       Thread-263129][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 17:53:26,153 [DEBUG][       Thread-263129][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 17:53:26,163 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 17:53:26,163 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 17:53:26,175 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 17:53:26,185 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 17:53:26,185 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 17:53:26,185 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 17:53:26,194 [DEBUG][       Thread-263129][   transport.py][1871] : EOF in transport thread
2025-06-13 17:53:27,928 [DEBUG][Thread-263131 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:53:30,098 [DEBUG][Thread-263132 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:53:31,212 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:53:31,213 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:53:32,925 [DEBUG][Thread-263133 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:53:36,196 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 17:53:36,196 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 17:53:36,196 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 17:53:36,199 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 17:53:36,647 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 17, 53, 6), 15.76, 33.09, 0.0, 14.66, 11.58, 0, 0, 0, 2, 0, 0),)
2025-06-13 17:53:36,647 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 17:53:06
2025-06-13 17:53:36,729 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 17:53:36,734 [DEBUG][       Thread-263134][   transport.py][1871] : starting thread (client mode): 0x8636ae60
2025-06-13 17:53:36,734 [DEBUG][       Thread-263134][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 17:53:36,754 [DEBUG][       Thread-263134][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 17:53:36,754 [ INFO][       Thread-263134][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 17:53:36,757 [DEBUG][       Thread-263134][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 17:53:36,758 [DEBUG][       Thread-263134][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 17:53:36,758 [DEBUG][       Thread-263134][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 17:53:36,758 [DEBUG][       Thread-263134][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:53:36,758 [DEBUG][       Thread-263134][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:53:36,758 [DEBUG][       Thread-263134][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:53:36,758 [DEBUG][       Thread-263134][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:53:36,758 [DEBUG][       Thread-263134][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 17:53:36,758 [DEBUG][       Thread-263134][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 17:53:36,758 [DEBUG][       Thread-263134][   transport.py][1871] : client lang: <none>
2025-06-13 17:53:36,758 [DEBUG][       Thread-263134][   transport.py][1871] : server lang: <none>
2025-06-13 17:53:36,758 [DEBUG][       Thread-263134][   transport.py][1871] : kex follows: False
2025-06-13 17:53:36,758 [DEBUG][       Thread-263134][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 17:53:36,758 [DEBUG][       Thread-263134][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 17:53:36,758 [DEBUG][       Thread-263134][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 17:53:36,758 [DEBUG][       Thread-263134][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 17:53:36,758 [DEBUG][       Thread-263134][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 17:53:36,758 [DEBUG][       Thread-263134][   transport.py][1871] : Compression: none
2025-06-13 17:53:36,758 [DEBUG][       Thread-263134][   transport.py][1871] : === End of kex handshake ===
2025-06-13 17:53:36,775 [DEBUG][       Thread-263134][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 17:53:36,775 [DEBUG][       Thread-263134][   transport.py][1871] : Switch to new keys ...
2025-06-13 17:53:36,776 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 17:53:36,776 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 17:53:36,777 [DEBUG][       Thread-263134][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 17:53:36,777 [DEBUG][       Thread-263134][   transport.py][1871] : userauth is OK
2025-06-13 17:53:36,803 [ INFO][       Thread-263134][   transport.py][1871] : Authentication (password) successful!
2025-06-13 17:53:36,803 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 17:53:37,427 [DEBUG][       Thread-263134][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 17:53:37,427 [DEBUG][       Thread-263134][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 17:53:37,469 [DEBUG][       Thread-263134][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 17:53:37,469 [DEBUG][       Thread-263134][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 17:53:37,471 [DEBUG][       Thread-263134][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 17:53:37,483 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 17:53:37,483 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 17:53:37,485 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 17:53:37,486 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 17:53:37,490 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 17:53:37,491 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 17:53:37,491 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 17:53:37,492 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 17:53:37,492 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.661739 -999.00  +11.50  18.63     37   -2.60 1 1 1 1 1   709    0 13.86 -12.40 ----- 20.2 18.6 52.2 21.2 12.0 -29.4 11.9 -29.4 11.6 -28.6 11.9 -28.4
2025-06-13 17:53:37,492 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 17:53:37,492 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 17:53:37,492 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.661739
2025-06-13 17:53:37,492 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 17:53:37,493 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 17:53:37,493 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 17:53:37,493 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 17:53:37,493 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 17:53:37,493 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T17:53:06', tmtdew=15.76, humidity=33.09, cloud=0.0, wind=14.66, temperature=11.58, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T15:52:54.250', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 17:53:37,494 [DEBUG][       Thread-263134][   transport.py][1871] : EOF in transport thread
2025-06-13 17:53:37,583 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 17:53:37,596 [DEBUG][       Thread-263137][   transport.py][1871] : starting thread (client mode): 0x867b5f90
2025-06-13 17:53:37,596 [DEBUG][       Thread-263137][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 17:53:37,610 [DEBUG][       Thread-263137][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 17:53:37,610 [ INFO][       Thread-263137][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 17:53:37,618 [DEBUG][       Thread-263137][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 17:53:37,618 [DEBUG][       Thread-263137][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 17:53:37,618 [DEBUG][       Thread-263137][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 17:53:37,618 [DEBUG][       Thread-263137][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:53:37,618 [DEBUG][       Thread-263137][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:53:37,618 [DEBUG][       Thread-263137][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:53:37,618 [DEBUG][       Thread-263137][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:53:37,618 [DEBUG][       Thread-263137][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 17:53:37,618 [DEBUG][       Thread-263137][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 17:53:37,618 [DEBUG][       Thread-263137][   transport.py][1871] : client lang: <none>
2025-06-13 17:53:37,618 [DEBUG][       Thread-263137][   transport.py][1871] : server lang: <none>
2025-06-13 17:53:37,618 [DEBUG][       Thread-263137][   transport.py][1871] : kex follows: False
2025-06-13 17:53:37,618 [DEBUG][       Thread-263137][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 17:53:37,618 [DEBUG][       Thread-263137][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 17:53:37,618 [DEBUG][       Thread-263137][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 17:53:37,618 [DEBUG][       Thread-263137][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 17:53:37,618 [DEBUG][       Thread-263137][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 17:53:37,618 [DEBUG][       Thread-263137][   transport.py][1871] : Compression: none
2025-06-13 17:53:37,619 [DEBUG][       Thread-263137][   transport.py][1871] : === End of kex handshake ===
2025-06-13 17:53:37,679 [DEBUG][       Thread-263137][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 17:53:37,680 [DEBUG][       Thread-263137][   transport.py][1871] : Switch to new keys ...
2025-06-13 17:53:37,680 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 17:53:37,681 [DEBUG][       Thread-263137][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 17:53:37,682 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 17:53:37,734 [DEBUG][       Thread-263137][   transport.py][1871] : userauth is OK
2025-06-13 17:53:37,735 [DEBUG][       Thread-263137][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 17:53:37,735 [DEBUG][       Thread-263137][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 17:53:37,735 [DEBUG][       Thread-263137][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 17:53:37,735 [DEBUG][       Thread-263137][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 17:53:37,754 [ INFO][       Thread-263137][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 17:53:37,754 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 17:53:37,754 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 17:53:38,766 [DEBUG][       Thread-263137][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 17:53:38,766 [DEBUG][       Thread-263137][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 17:53:38,815 [DEBUG][       Thread-263137][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 17:53:38,815 [DEBUG][       Thread-263137][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 17:53:38,824 [DEBUG][       Thread-263137][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 17:53:38,831 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 17:53:38,831 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 17:53:38,839 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 17:53:38,848 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 17:53:38,848 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 17:53:38,848 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 17:53:38,856 [DEBUG][       Thread-263137][   transport.py][1871] : EOF in transport thread
2025-06-13 17:53:41,945 [DEBUG][Thread-263139 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:53:48,849 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 17:53:48,850 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 17:53:48,850 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 17:53:48,851 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 17:53:49,297 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 17, 53, 38), 15.79, 33.1, 0.0, 13.76, 11.62, 0, 0, 0, 2, 0, 0),)
2025-06-13 17:53:49,297 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 17:53:38
2025-06-13 17:53:49,376 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 17:53:49,383 [DEBUG][       Thread-263140][   transport.py][1871] : starting thread (client mode): 0x86353f40
2025-06-13 17:53:49,383 [DEBUG][       Thread-263140][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 17:53:49,405 [DEBUG][       Thread-263140][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 17:53:49,405 [ INFO][       Thread-263140][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 17:53:49,408 [DEBUG][       Thread-263140][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 17:53:49,409 [DEBUG][       Thread-263140][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 17:53:49,409 [DEBUG][       Thread-263140][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 17:53:49,409 [DEBUG][       Thread-263140][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:53:49,409 [DEBUG][       Thread-263140][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:53:49,409 [DEBUG][       Thread-263140][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:53:49,409 [DEBUG][       Thread-263140][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:53:49,409 [DEBUG][       Thread-263140][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 17:53:49,409 [DEBUG][       Thread-263140][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 17:53:49,409 [DEBUG][       Thread-263140][   transport.py][1871] : client lang: <none>
2025-06-13 17:53:49,409 [DEBUG][       Thread-263140][   transport.py][1871] : server lang: <none>
2025-06-13 17:53:49,409 [DEBUG][       Thread-263140][   transport.py][1871] : kex follows: False
2025-06-13 17:53:49,409 [DEBUG][       Thread-263140][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 17:53:49,409 [DEBUG][       Thread-263140][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 17:53:49,409 [DEBUG][       Thread-263140][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 17:53:49,409 [DEBUG][       Thread-263140][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 17:53:49,409 [DEBUG][       Thread-263140][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 17:53:49,409 [DEBUG][       Thread-263140][   transport.py][1871] : Compression: none
2025-06-13 17:53:49,409 [DEBUG][       Thread-263140][   transport.py][1871] : === End of kex handshake ===
2025-06-13 17:53:49,426 [DEBUG][       Thread-263140][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 17:53:49,426 [DEBUG][       Thread-263140][   transport.py][1871] : Switch to new keys ...
2025-06-13 17:53:49,427 [DEBUG][       Thread-263140][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 17:53:49,427 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 17:53:49,427 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 17:53:49,428 [DEBUG][       Thread-263140][   transport.py][1871] : userauth is OK
2025-06-13 17:53:49,453 [ INFO][       Thread-263140][   transport.py][1871] : Authentication (password) successful!
2025-06-13 17:53:49,453 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 17:53:50,103 [DEBUG][       Thread-263140][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 17:53:50,103 [DEBUG][       Thread-263140][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 17:53:50,145 [DEBUG][       Thread-263140][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 17:53:50,145 [DEBUG][       Thread-263140][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 17:53:50,148 [DEBUG][       Thread-263140][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 17:53:50,160 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 17:53:50,160 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 17:53:50,162 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 17:53:50,164 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 17:53:50,170 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 17:53:50,172 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 17:53:50,173 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 17:53:50,173 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 17:53:50,173 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.662086 -999.00  +11.60  16.69     37   -2.40 1 1 1 1 1   695    0 13.70 -9.49 ----- 15.3 16.7 49.6 20.2 12.0 -29.5 11.9 -29.6 11.6 -28.7 11.9 -28.7
2025-06-13 17:53:50,173 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 17:53:50,174 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 17:53:50,174 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.662086
2025-06-13 17:53:50,174 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 17:53:50,175 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 17:53:50,175 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 17:53:50,175 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 17:53:50,175 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 17:53:50,175 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T17:53:38', tmtdew=15.79, humidity=33.1, cloud=0.0, wind=13.76, temperature=11.62, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T15:53:24.230', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 17:53:50,175 [DEBUG][       Thread-263140][   transport.py][1871] : EOF in transport thread
2025-06-13 17:53:50,259 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 17:53:50,271 [DEBUG][       Thread-263143][   transport.py][1871] : starting thread (client mode): 0x8636b250
2025-06-13 17:53:50,271 [DEBUG][       Thread-263143][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 17:53:50,289 [DEBUG][       Thread-263143][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 17:53:50,289 [ INFO][       Thread-263143][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 17:53:50,297 [DEBUG][       Thread-263143][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 17:53:50,297 [DEBUG][       Thread-263143][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 17:53:50,297 [DEBUG][       Thread-263143][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 17:53:50,297 [DEBUG][       Thread-263143][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:53:50,297 [DEBUG][       Thread-263143][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:53:50,297 [DEBUG][       Thread-263143][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:53:50,297 [DEBUG][       Thread-263143][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:53:50,297 [DEBUG][       Thread-263143][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 17:53:50,297 [DEBUG][       Thread-263143][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 17:53:50,298 [DEBUG][       Thread-263143][   transport.py][1871] : client lang: <none>
2025-06-13 17:53:50,298 [DEBUG][       Thread-263143][   transport.py][1871] : server lang: <none>
2025-06-13 17:53:50,298 [DEBUG][       Thread-263143][   transport.py][1871] : kex follows: False
2025-06-13 17:53:50,298 [DEBUG][       Thread-263143][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 17:53:50,298 [DEBUG][       Thread-263143][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 17:53:50,298 [DEBUG][       Thread-263143][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 17:53:50,298 [DEBUG][       Thread-263143][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 17:53:50,298 [DEBUG][       Thread-263143][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 17:53:50,298 [DEBUG][       Thread-263143][   transport.py][1871] : Compression: none
2025-06-13 17:53:50,298 [DEBUG][       Thread-263143][   transport.py][1871] : === End of kex handshake ===
2025-06-13 17:53:50,355 [DEBUG][       Thread-263143][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 17:53:50,356 [DEBUG][       Thread-263143][   transport.py][1871] : Switch to new keys ...
2025-06-13 17:53:50,356 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 17:53:50,357 [DEBUG][       Thread-263143][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 17:53:50,358 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 17:53:50,415 [DEBUG][       Thread-263143][   transport.py][1871] : userauth is OK
2025-06-13 17:53:50,415 [DEBUG][       Thread-263143][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 17:53:50,415 [DEBUG][       Thread-263143][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 17:53:50,415 [DEBUG][       Thread-263143][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 17:53:50,415 [DEBUG][       Thread-263143][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 17:53:50,433 [ INFO][       Thread-263143][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 17:53:50,434 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 17:53:50,434 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 17:53:50,965 [DEBUG][Thread-263145 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:53:51,427 [DEBUG][       Thread-263143][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 17:53:51,428 [DEBUG][       Thread-263143][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 17:53:51,476 [DEBUG][       Thread-263143][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 17:53:51,476 [DEBUG][       Thread-263143][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 17:53:51,485 [DEBUG][       Thread-263143][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 17:53:51,499 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 17:53:51,499 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 17:53:51,512 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 17:53:51,521 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 17:53:51,521 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 17:53:51,521 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 17:53:51,534 [DEBUG][       Thread-263143][   transport.py][1871] : EOF in transport thread
2025-06-13 17:53:54,192 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:53:54,193 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:54:00,001 [DEBUG][Thread-263146 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:54:01,528 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 17:54:01,528 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 17:54:01,528 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 17:54:01,531 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 17:54:01,989 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 17, 53, 38), 15.79, 33.1, 0.0, 13.76, 11.62, 0, 0, 0, 2, 0, 0),)
2025-06-13 17:54:01,989 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 17:53:38
2025-06-13 17:54:02,069 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 17:54:02,072 [DEBUG][       Thread-263147][   transport.py][1871] : starting thread (client mode): 0x86350550
2025-06-13 17:54:02,073 [DEBUG][       Thread-263147][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 17:54:02,093 [DEBUG][       Thread-263147][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 17:54:02,093 [ INFO][       Thread-263147][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 17:54:02,096 [DEBUG][       Thread-263147][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 17:54:02,097 [DEBUG][       Thread-263147][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 17:54:02,097 [DEBUG][       Thread-263147][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 17:54:02,097 [DEBUG][       Thread-263147][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:54:02,097 [DEBUG][       Thread-263147][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:54:02,097 [DEBUG][       Thread-263147][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:54:02,097 [DEBUG][       Thread-263147][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:54:02,097 [DEBUG][       Thread-263147][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 17:54:02,097 [DEBUG][       Thread-263147][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 17:54:02,097 [DEBUG][       Thread-263147][   transport.py][1871] : client lang: <none>
2025-06-13 17:54:02,097 [DEBUG][       Thread-263147][   transport.py][1871] : server lang: <none>
2025-06-13 17:54:02,097 [DEBUG][       Thread-263147][   transport.py][1871] : kex follows: False
2025-06-13 17:54:02,097 [DEBUG][       Thread-263147][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 17:54:02,097 [DEBUG][       Thread-263147][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 17:54:02,097 [DEBUG][       Thread-263147][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 17:54:02,097 [DEBUG][       Thread-263147][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 17:54:02,097 [DEBUG][       Thread-263147][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 17:54:02,097 [DEBUG][       Thread-263147][   transport.py][1871] : Compression: none
2025-06-13 17:54:02,097 [DEBUG][       Thread-263147][   transport.py][1871] : === End of kex handshake ===
2025-06-13 17:54:02,113 [DEBUG][       Thread-263147][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 17:54:02,114 [DEBUG][       Thread-263147][   transport.py][1871] : Switch to new keys ...
2025-06-13 17:54:02,114 [DEBUG][       Thread-263147][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 17:54:02,114 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 17:54:02,114 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 17:54:02,116 [DEBUG][       Thread-263147][   transport.py][1871] : userauth is OK
2025-06-13 17:54:02,129 [ INFO][       Thread-263147][   transport.py][1871] : Authentication (password) successful!
2025-06-13 17:54:02,130 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 17:54:02,766 [DEBUG][       Thread-263147][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 17:54:02,766 [DEBUG][       Thread-263147][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 17:54:02,809 [DEBUG][       Thread-263147][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 17:54:02,809 [DEBUG][       Thread-263147][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 17:54:02,813 [DEBUG][       Thread-263147][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 17:54:02,826 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 17:54:02,827 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 17:54:02,829 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 17:54:02,831 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 17:54:02,837 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 17:54:02,839 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 17:54:02,840 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 17:54:02,840 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 17:54:02,841 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.662086 -999.00  +11.60  16.69     37   -2.40 1 1 1 1 1   695    0 13.70 -9.49 ----- 15.3 16.7 49.6 20.2 12.0 -29.5 11.9 -29.6 11.6 -28.7 11.9 -28.7
2025-06-13 17:54:02,841 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 17:54:02,841 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 17:54:02,841 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.662086
2025-06-13 17:54:02,841 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 17:54:02,842 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 17:54:02,842 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 17:54:02,842 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 17:54:02,842 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 17:54:02,842 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T17:53:38', tmtdew=15.79, humidity=33.1, cloud=0.0, wind=13.76, temperature=11.62, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T15:53:24.230', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 17:54:02,842 [DEBUG][       Thread-263147][   transport.py][1871] : EOF in transport thread
2025-06-13 17:54:02,928 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 17:54:02,938 [DEBUG][       Thread-263150][   transport.py][1871] : starting thread (client mode): 0x86393f40
2025-06-13 17:54:02,938 [DEBUG][       Thread-263150][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 17:54:02,953 [DEBUG][       Thread-263150][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 17:54:02,953 [ INFO][       Thread-263150][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 17:54:02,961 [DEBUG][       Thread-263150][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 17:54:02,961 [DEBUG][       Thread-263150][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 17:54:02,961 [DEBUG][       Thread-263150][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 17:54:02,961 [DEBUG][       Thread-263150][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:54:02,961 [DEBUG][       Thread-263150][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:54:02,961 [DEBUG][       Thread-263150][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:54:02,961 [DEBUG][       Thread-263150][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:54:02,961 [DEBUG][       Thread-263150][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 17:54:02,961 [DEBUG][       Thread-263150][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 17:54:02,961 [DEBUG][       Thread-263150][   transport.py][1871] : client lang: <none>
2025-06-13 17:54:02,961 [DEBUG][       Thread-263150][   transport.py][1871] : server lang: <none>
2025-06-13 17:54:02,961 [DEBUG][       Thread-263150][   transport.py][1871] : kex follows: False
2025-06-13 17:54:02,961 [DEBUG][       Thread-263150][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 17:54:02,961 [DEBUG][       Thread-263150][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 17:54:02,961 [DEBUG][       Thread-263150][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 17:54:02,961 [DEBUG][       Thread-263150][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 17:54:02,961 [DEBUG][       Thread-263150][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 17:54:02,961 [DEBUG][       Thread-263150][   transport.py][1871] : Compression: none
2025-06-13 17:54:02,962 [DEBUG][       Thread-263150][   transport.py][1871] : === End of kex handshake ===
2025-06-13 17:54:03,018 [DEBUG][       Thread-263150][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 17:54:03,019 [DEBUG][       Thread-263150][   transport.py][1871] : Switch to new keys ...
2025-06-13 17:54:03,019 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 17:54:03,020 [DEBUG][       Thread-263150][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 17:54:03,021 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 17:54:03,074 [DEBUG][       Thread-263150][   transport.py][1871] : userauth is OK
2025-06-13 17:54:03,075 [DEBUG][       Thread-263150][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 17:54:03,075 [DEBUG][       Thread-263150][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 17:54:03,075 [DEBUG][       Thread-263150][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 17:54:03,075 [DEBUG][       Thread-263150][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 17:54:03,093 [ INFO][       Thread-263150][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 17:54:03,094 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 17:54:03,094 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 17:54:04,101 [DEBUG][       Thread-263150][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 17:54:04,102 [DEBUG][       Thread-263150][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 17:54:04,152 [DEBUG][       Thread-263150][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 17:54:04,152 [DEBUG][       Thread-263150][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 17:54:04,161 [DEBUG][       Thread-263150][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 17:54:04,170 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 17:54:04,171 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 17:54:04,180 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 17:54:04,190 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 17:54:04,190 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 17:54:04,190 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 17:54:04,199 [DEBUG][       Thread-263150][   transport.py][1871] : EOF in transport thread
2025-06-13 17:54:09,022 [DEBUG][Thread-263152 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:54:14,201 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 17:54:14,201 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 17:54:14,201 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 17:54:14,203 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 17:54:14,654 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 17, 54, 10), 15.7, 33.17, 0.0, 16.07, 11.6, 0, 0, 0, 2, 0, 0),)
2025-06-13 17:54:14,654 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 17:54:10
2025-06-13 17:54:14,733 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 17:54:14,739 [DEBUG][       Thread-263153][   transport.py][1871] : starting thread (client mode): 0x863510f0
2025-06-13 17:54:14,739 [DEBUG][       Thread-263153][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 17:54:14,761 [DEBUG][       Thread-263153][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 17:54:14,761 [ INFO][       Thread-263153][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 17:54:14,764 [DEBUG][       Thread-263153][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 17:54:14,765 [DEBUG][       Thread-263153][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 17:54:14,765 [DEBUG][       Thread-263153][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 17:54:14,765 [DEBUG][       Thread-263153][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:54:14,765 [DEBUG][       Thread-263153][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:54:14,765 [DEBUG][       Thread-263153][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:54:14,765 [DEBUG][       Thread-263153][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:54:14,765 [DEBUG][       Thread-263153][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 17:54:14,765 [DEBUG][       Thread-263153][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 17:54:14,765 [DEBUG][       Thread-263153][   transport.py][1871] : client lang: <none>
2025-06-13 17:54:14,765 [DEBUG][       Thread-263153][   transport.py][1871] : server lang: <none>
2025-06-13 17:54:14,765 [DEBUG][       Thread-263153][   transport.py][1871] : kex follows: False
2025-06-13 17:54:14,765 [DEBUG][       Thread-263153][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 17:54:14,765 [DEBUG][       Thread-263153][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 17:54:14,765 [DEBUG][       Thread-263153][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 17:54:14,765 [DEBUG][       Thread-263153][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 17:54:14,765 [DEBUG][       Thread-263153][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 17:54:14,765 [DEBUG][       Thread-263153][   transport.py][1871] : Compression: none
2025-06-13 17:54:14,765 [DEBUG][       Thread-263153][   transport.py][1871] : === End of kex handshake ===
2025-06-13 17:54:14,781 [DEBUG][       Thread-263153][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 17:54:14,782 [DEBUG][       Thread-263153][   transport.py][1871] : Switch to new keys ...
2025-06-13 17:54:14,782 [DEBUG][       Thread-263153][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 17:54:14,783 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 17:54:14,783 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 17:54:14,784 [DEBUG][       Thread-263153][   transport.py][1871] : userauth is OK
2025-06-13 17:54:14,809 [ INFO][       Thread-263153][   transport.py][1871] : Authentication (password) successful!
2025-06-13 17:54:14,810 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 17:54:15,453 [DEBUG][       Thread-263153][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 17:54:15,454 [DEBUG][       Thread-263153][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 17:54:15,497 [DEBUG][       Thread-263153][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 17:54:15,497 [DEBUG][       Thread-263153][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 17:54:15,500 [DEBUG][       Thread-263153][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 17:54:15,514 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 17:54:15,515 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 17:54:15,516 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 17:54:15,518 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 17:54:15,524 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 17:54:15,526 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 17:54:15,526 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 17:54:15,527 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 17:54:15,527 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.662086 -999.00  +11.60  16.69     37   -2.40 1 1 1 1 1   695    0 13.70 -9.49 ----- 15.3 16.7 49.6 20.2 12.0 -29.5 11.9 -29.6 11.6 -28.7 11.9 -28.7
2025-06-13 17:54:15,527 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 17:54:15,527 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 17:54:15,527 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.662086
2025-06-13 17:54:15,528 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 17:54:15,528 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 17:54:15,529 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 17:54:15,529 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 17:54:15,529 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 17:54:15,529 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T17:54:10', tmtdew=15.7, humidity=33.17, cloud=0.0, wind=16.07, temperature=11.6, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T15:53:24.230', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 17:54:15,529 [DEBUG][       Thread-263153][   transport.py][1871] : EOF in transport thread
2025-06-13 17:54:15,624 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 17:54:15,635 [DEBUG][       Thread-263156][   transport.py][1871] : starting thread (client mode): 0x863efbe0
2025-06-13 17:54:15,635 [DEBUG][       Thread-263156][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 17:54:15,650 [DEBUG][       Thread-263156][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 17:54:15,650 [ INFO][       Thread-263156][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 17:54:15,657 [DEBUG][       Thread-263156][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 17:54:15,657 [DEBUG][       Thread-263156][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 17:54:15,658 [DEBUG][       Thread-263156][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 17:54:15,658 [DEBUG][       Thread-263156][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:54:15,658 [DEBUG][       Thread-263156][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:54:15,658 [DEBUG][       Thread-263156][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:54:15,658 [DEBUG][       Thread-263156][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:54:15,658 [DEBUG][       Thread-263156][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 17:54:15,658 [DEBUG][       Thread-263156][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 17:54:15,658 [DEBUG][       Thread-263156][   transport.py][1871] : client lang: <none>
2025-06-13 17:54:15,658 [DEBUG][       Thread-263156][   transport.py][1871] : server lang: <none>
2025-06-13 17:54:15,658 [DEBUG][       Thread-263156][   transport.py][1871] : kex follows: False
2025-06-13 17:54:15,658 [DEBUG][       Thread-263156][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 17:54:15,658 [DEBUG][       Thread-263156][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 17:54:15,658 [DEBUG][       Thread-263156][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 17:54:15,658 [DEBUG][       Thread-263156][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 17:54:15,658 [DEBUG][       Thread-263156][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 17:54:15,658 [DEBUG][       Thread-263156][   transport.py][1871] : Compression: none
2025-06-13 17:54:15,658 [DEBUG][       Thread-263156][   transport.py][1871] : === End of kex handshake ===
2025-06-13 17:54:15,714 [DEBUG][       Thread-263156][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 17:54:15,714 [DEBUG][       Thread-263156][   transport.py][1871] : Switch to new keys ...
2025-06-13 17:54:15,715 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 17:54:15,716 [DEBUG][       Thread-263156][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 17:54:15,716 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 17:54:15,770 [DEBUG][       Thread-263156][   transport.py][1871] : userauth is OK
2025-06-13 17:54:15,770 [DEBUG][       Thread-263156][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 17:54:15,770 [DEBUG][       Thread-263156][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 17:54:15,771 [DEBUG][       Thread-263156][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 17:54:15,771 [DEBUG][       Thread-263156][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 17:54:15,790 [ INFO][       Thread-263156][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 17:54:15,790 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 17:54:15,790 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 17:54:16,799 [DEBUG][       Thread-263156][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 17:54:16,799 [DEBUG][       Thread-263156][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 17:54:16,847 [DEBUG][       Thread-263156][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 17:54:16,847 [DEBUG][       Thread-263156][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 17:54:16,855 [DEBUG][       Thread-263156][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 17:54:16,863 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 17:54:16,863 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 17:54:16,871 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 17:54:16,879 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 17:54:16,879 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 17:54:16,879 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 17:54:16,887 [DEBUG][       Thread-263156][   transport.py][1871] : EOF in transport thread
2025-06-13 17:54:18,042 [DEBUG][Thread-263158 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:54:26,890 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 17:54:26,890 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 17:54:26,890 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 17:54:26,893 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 17:54:27,074 [DEBUG][Thread-263159 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:54:27,352 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 17, 54, 10), 15.7, 33.17, 0.0, 16.07, 11.6, 0, 0, 0, 2, 0, 0),)
2025-06-13 17:54:27,352 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 17:54:10
2025-06-13 17:54:27,430 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 17:54:27,434 [DEBUG][       Thread-263160][   transport.py][1871] : starting thread (client mode): 0x863c8b80
2025-06-13 17:54:27,434 [DEBUG][       Thread-263160][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 17:54:27,455 [DEBUG][       Thread-263160][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 17:54:27,455 [ INFO][       Thread-263160][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 17:54:27,458 [DEBUG][       Thread-263160][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 17:54:27,458 [DEBUG][       Thread-263160][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 17:54:27,458 [DEBUG][       Thread-263160][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 17:54:27,458 [DEBUG][       Thread-263160][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:54:27,458 [DEBUG][       Thread-263160][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:54:27,458 [DEBUG][       Thread-263160][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:54:27,458 [DEBUG][       Thread-263160][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:54:27,458 [DEBUG][       Thread-263160][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 17:54:27,458 [DEBUG][       Thread-263160][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 17:54:27,458 [DEBUG][       Thread-263160][   transport.py][1871] : client lang: <none>
2025-06-13 17:54:27,458 [DEBUG][       Thread-263160][   transport.py][1871] : server lang: <none>
2025-06-13 17:54:27,458 [DEBUG][       Thread-263160][   transport.py][1871] : kex follows: False
2025-06-13 17:54:27,458 [DEBUG][       Thread-263160][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 17:54:27,458 [DEBUG][       Thread-263160][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 17:54:27,458 [DEBUG][       Thread-263160][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 17:54:27,458 [DEBUG][       Thread-263160][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 17:54:27,458 [DEBUG][       Thread-263160][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 17:54:27,458 [DEBUG][       Thread-263160][   transport.py][1871] : Compression: none
2025-06-13 17:54:27,458 [DEBUG][       Thread-263160][   transport.py][1871] : === End of kex handshake ===
2025-06-13 17:54:27,477 [DEBUG][       Thread-263160][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 17:54:27,478 [DEBUG][       Thread-263160][   transport.py][1871] : Switch to new keys ...
2025-06-13 17:54:27,478 [DEBUG][       Thread-263160][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 17:54:27,479 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 17:54:27,479 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 17:54:27,480 [DEBUG][       Thread-263160][   transport.py][1871] : userauth is OK
2025-06-13 17:54:27,493 [ INFO][       Thread-263160][   transport.py][1871] : Authentication (password) successful!
2025-06-13 17:54:27,494 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 17:54:28,001 [DEBUG][Thread-263162 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:54:28,133 [DEBUG][       Thread-263160][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 17:54:28,134 [DEBUG][       Thread-263160][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 17:54:28,177 [DEBUG][       Thread-263160][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 17:54:28,177 [DEBUG][       Thread-263160][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 17:54:28,181 [DEBUG][       Thread-263160][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 17:54:28,192 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 17:54:28,192 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 17:54:28,194 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 17:54:28,196 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 17:54:28,201 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 17:54:28,203 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 17:54:28,203 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 17:54:28,204 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 17:54:28,204 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.662434 -999.00  +11.60  19.09     37   -2.50 1 1 1 1 1   680    0 13.84 -7.57 ----- 16.1 19.1 47.0 22.5 12.0 -29.5 11.8 -29.3 11.6 -28.5 11.8 -28.6
2025-06-13 17:54:28,204 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 17:54:28,204 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 17:54:28,204 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.662434
2025-06-13 17:54:28,205 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 17:54:28,205 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 17:54:28,205 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 17:54:28,205 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 17:54:28,205 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 17:54:28,206 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T17:54:10', tmtdew=15.7, humidity=33.17, cloud=0.0, wind=16.07, temperature=11.6, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T15:53:54.298', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 17:54:28,207 [DEBUG][       Thread-263160][   transport.py][1871] : EOF in transport thread
2025-06-13 17:54:28,289 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 17:54:28,299 [DEBUG][       Thread-263164][   transport.py][1871] : starting thread (client mode): 0x86393f40
2025-06-13 17:54:28,299 [DEBUG][       Thread-263164][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 17:54:28,314 [DEBUG][       Thread-263164][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 17:54:28,314 [ INFO][       Thread-263164][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 17:54:28,322 [DEBUG][       Thread-263164][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 17:54:28,322 [DEBUG][       Thread-263164][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 17:54:28,322 [DEBUG][       Thread-263164][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 17:54:28,322 [DEBUG][       Thread-263164][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:54:28,322 [DEBUG][       Thread-263164][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:54:28,322 [DEBUG][       Thread-263164][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:54:28,322 [DEBUG][       Thread-263164][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:54:28,322 [DEBUG][       Thread-263164][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 17:54:28,322 [DEBUG][       Thread-263164][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 17:54:28,322 [DEBUG][       Thread-263164][   transport.py][1871] : client lang: <none>
2025-06-13 17:54:28,322 [DEBUG][       Thread-263164][   transport.py][1871] : server lang: <none>
2025-06-13 17:54:28,322 [DEBUG][       Thread-263164][   transport.py][1871] : kex follows: False
2025-06-13 17:54:28,322 [DEBUG][       Thread-263164][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 17:54:28,322 [DEBUG][       Thread-263164][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 17:54:28,322 [DEBUG][       Thread-263164][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 17:54:28,323 [DEBUG][       Thread-263164][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 17:54:28,323 [DEBUG][       Thread-263164][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 17:54:28,323 [DEBUG][       Thread-263164][   transport.py][1871] : Compression: none
2025-06-13 17:54:28,323 [DEBUG][       Thread-263164][   transport.py][1871] : === End of kex handshake ===
2025-06-13 17:54:28,378 [DEBUG][       Thread-263164][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 17:54:28,379 [DEBUG][       Thread-263164][   transport.py][1871] : Switch to new keys ...
2025-06-13 17:54:28,379 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 17:54:28,380 [DEBUG][       Thread-263164][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 17:54:28,381 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 17:54:28,442 [DEBUG][       Thread-263164][   transport.py][1871] : userauth is OK
2025-06-13 17:54:28,443 [DEBUG][       Thread-263164][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 17:54:28,443 [DEBUG][       Thread-263164][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 17:54:28,443 [DEBUG][       Thread-263164][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 17:54:28,443 [DEBUG][       Thread-263164][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 17:54:28,461 [ INFO][       Thread-263164][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 17:54:28,462 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 17:54:28,462 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 17:54:29,523 [DEBUG][       Thread-263164][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 17:54:29,523 [DEBUG][       Thread-263164][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 17:54:29,573 [DEBUG][       Thread-263164][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 17:54:29,574 [DEBUG][       Thread-263164][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 17:54:29,583 [DEBUG][       Thread-263164][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 17:54:29,592 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 17:54:29,592 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 17:54:29,601 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 17:54:29,611 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 17:54:29,611 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 17:54:29,611 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 17:54:29,619 [DEBUG][       Thread-263164][   transport.py][1871] : EOF in transport thread
2025-06-13 17:54:31,313 [DEBUG][Thread-263166 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:54:32,398 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:54:32,399 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:54:36,094 [DEBUG][Thread-263167 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:54:39,622 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 17:54:39,622 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 17:54:39,622 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 17:54:39,625 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 17:54:40,084 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 17, 54, 10), 15.7, 33.17, 0.0, 16.07, 11.6, 0, 0, 0, 2, 0, 0),)
2025-06-13 17:54:40,084 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 17:54:10
2025-06-13 17:54:40,163 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 17:54:40,168 [DEBUG][       Thread-263168][   transport.py][1871] : starting thread (client mode): 0x863699f0
2025-06-13 17:54:40,168 [DEBUG][       Thread-263168][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 17:54:40,189 [DEBUG][       Thread-263168][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 17:54:40,189 [ INFO][       Thread-263168][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 17:54:40,192 [DEBUG][       Thread-263168][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 17:54:40,192 [DEBUG][       Thread-263168][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 17:54:40,193 [DEBUG][       Thread-263168][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 17:54:40,193 [DEBUG][       Thread-263168][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:54:40,193 [DEBUG][       Thread-263168][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:54:40,193 [DEBUG][       Thread-263168][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:54:40,193 [DEBUG][       Thread-263168][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:54:40,193 [DEBUG][       Thread-263168][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 17:54:40,193 [DEBUG][       Thread-263168][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 17:54:40,193 [DEBUG][       Thread-263168][   transport.py][1871] : client lang: <none>
2025-06-13 17:54:40,193 [DEBUG][       Thread-263168][   transport.py][1871] : server lang: <none>
2025-06-13 17:54:40,193 [DEBUG][       Thread-263168][   transport.py][1871] : kex follows: False
2025-06-13 17:54:40,193 [DEBUG][       Thread-263168][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 17:54:40,193 [DEBUG][       Thread-263168][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 17:54:40,193 [DEBUG][       Thread-263168][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 17:54:40,193 [DEBUG][       Thread-263168][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 17:54:40,193 [DEBUG][       Thread-263168][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 17:54:40,193 [DEBUG][       Thread-263168][   transport.py][1871] : Compression: none
2025-06-13 17:54:40,193 [DEBUG][       Thread-263168][   transport.py][1871] : === End of kex handshake ===
2025-06-13 17:54:40,210 [DEBUG][       Thread-263168][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 17:54:40,210 [DEBUG][       Thread-263168][   transport.py][1871] : Switch to new keys ...
2025-06-13 17:54:40,211 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 17:54:40,211 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 17:54:40,211 [DEBUG][       Thread-263168][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 17:54:40,212 [DEBUG][       Thread-263168][   transport.py][1871] : userauth is OK
2025-06-13 17:54:40,224 [ INFO][       Thread-263168][   transport.py][1871] : Authentication (password) successful!
2025-06-13 17:54:40,225 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 17:54:40,860 [DEBUG][       Thread-263168][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 17:54:40,860 [DEBUG][       Thread-263168][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 17:54:40,905 [DEBUG][       Thread-263168][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 17:54:40,905 [DEBUG][       Thread-263168][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 17:54:40,907 [DEBUG][       Thread-263168][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 17:54:40,921 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 17:54:40,921 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 17:54:40,923 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 17:54:40,924 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 17:54:40,930 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 17:54:40,931 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 17:54:40,931 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 17:54:40,932 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 17:54:40,932 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.662434 -999.00  +11.60  19.09     37   -2.50 1 1 1 1 1   680    0 13.84 -7.57 ----- 16.1 19.1 47.0 22.5 12.0 -29.5 11.8 -29.3 11.6 -28.5 11.8 -28.6
2025-06-13 17:54:40,932 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 17:54:40,932 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 17:54:40,932 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.662434
2025-06-13 17:54:40,933 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 17:54:40,933 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 17:54:40,933 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 17:54:40,933 [DEBUG][       Thread-263168][   transport.py][1871] : EOF in transport thread
2025-06-13 17:54:40,934 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 17:54:40,934 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 17:54:40,934 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T17:54:10', tmtdew=15.7, humidity=33.17, cloud=0.0, wind=16.07, temperature=11.6, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T15:53:54.298', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 17:54:41,017 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 17:54:41,031 [DEBUG][       Thread-263171][   transport.py][1871] : starting thread (client mode): 0x8636b070
2025-06-13 17:54:41,031 [DEBUG][       Thread-263171][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 17:54:41,049 [DEBUG][       Thread-263171][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 17:54:41,049 [ INFO][       Thread-263171][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 17:54:41,060 [DEBUG][       Thread-263171][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 17:54:41,060 [DEBUG][       Thread-263171][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 17:54:41,060 [DEBUG][       Thread-263171][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 17:54:41,060 [DEBUG][       Thread-263171][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:54:41,060 [DEBUG][       Thread-263171][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:54:41,060 [DEBUG][       Thread-263171][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:54:41,060 [DEBUG][       Thread-263171][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:54:41,060 [DEBUG][       Thread-263171][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 17:54:41,060 [DEBUG][       Thread-263171][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 17:54:41,060 [DEBUG][       Thread-263171][   transport.py][1871] : client lang: <none>
2025-06-13 17:54:41,060 [DEBUG][       Thread-263171][   transport.py][1871] : server lang: <none>
2025-06-13 17:54:41,060 [DEBUG][       Thread-263171][   transport.py][1871] : kex follows: False
2025-06-13 17:54:41,061 [DEBUG][       Thread-263171][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 17:54:41,061 [DEBUG][       Thread-263171][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 17:54:41,061 [DEBUG][       Thread-263171][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 17:54:41,061 [DEBUG][       Thread-263171][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 17:54:41,061 [DEBUG][       Thread-263171][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 17:54:41,061 [DEBUG][       Thread-263171][   transport.py][1871] : Compression: none
2025-06-13 17:54:41,061 [DEBUG][       Thread-263171][   transport.py][1871] : === End of kex handshake ===
2025-06-13 17:54:41,119 [DEBUG][       Thread-263171][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 17:54:41,120 [DEBUG][       Thread-263171][   transport.py][1871] : Switch to new keys ...
2025-06-13 17:54:41,120 [DEBUG][       Thread-263171][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 17:54:41,121 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 17:54:41,121 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 17:54:41,183 [DEBUG][       Thread-263171][   transport.py][1871] : userauth is OK
2025-06-13 17:54:41,183 [DEBUG][       Thread-263171][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 17:54:41,183 [DEBUG][       Thread-263171][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 17:54:41,183 [DEBUG][       Thread-263171][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 17:54:41,183 [DEBUG][       Thread-263171][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 17:54:41,205 [ INFO][       Thread-263171][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 17:54:41,205 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 17:54:41,205 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 17:54:42,179 [DEBUG][       Thread-263171][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 17:54:42,180 [DEBUG][       Thread-263171][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 17:54:42,229 [DEBUG][       Thread-263171][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 17:54:42,229 [DEBUG][       Thread-263171][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 17:54:42,241 [DEBUG][       Thread-263171][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 17:54:42,254 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 17:54:42,254 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 17:54:42,261 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 17:54:42,269 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 17:54:42,269 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 17:54:42,269 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 17:54:42,277 [DEBUG][       Thread-263171][   transport.py][1871] : EOF in transport thread
2025-06-13 17:54:45,115 [DEBUG][Thread-263173 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:54:52,276 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 17:54:52,276 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 17:54:52,276 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 17:54:52,279 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 17:54:52,741 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 17, 54, 41), 15.73, 33.1, 0.0, 13.62, 11.6, 0, 0, 0, 2, 0, 0),)
2025-06-13 17:54:52,742 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 17:54:41
2025-06-13 17:54:52,821 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 17:54:52,827 [DEBUG][       Thread-263174][   transport.py][1871] : starting thread (client mode): 0x8636b5b0
2025-06-13 17:54:52,827 [DEBUG][       Thread-263174][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 17:54:52,845 [DEBUG][       Thread-263174][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 17:54:52,845 [ INFO][       Thread-263174][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 17:54:52,846 [DEBUG][       Thread-263174][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 17:54:52,846 [DEBUG][       Thread-263174][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 17:54:52,846 [DEBUG][       Thread-263174][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 17:54:52,847 [DEBUG][       Thread-263174][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:54:52,847 [DEBUG][       Thread-263174][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:54:52,847 [DEBUG][       Thread-263174][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:54:52,847 [DEBUG][       Thread-263174][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:54:52,847 [DEBUG][       Thread-263174][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 17:54:52,847 [DEBUG][       Thread-263174][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 17:54:52,847 [DEBUG][       Thread-263174][   transport.py][1871] : client lang: <none>
2025-06-13 17:54:52,847 [DEBUG][       Thread-263174][   transport.py][1871] : server lang: <none>
2025-06-13 17:54:52,847 [DEBUG][       Thread-263174][   transport.py][1871] : kex follows: False
2025-06-13 17:54:52,847 [DEBUG][       Thread-263174][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 17:54:52,847 [DEBUG][       Thread-263174][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 17:54:52,847 [DEBUG][       Thread-263174][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 17:54:52,847 [DEBUG][       Thread-263174][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 17:54:52,847 [DEBUG][       Thread-263174][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 17:54:52,847 [DEBUG][       Thread-263174][   transport.py][1871] : Compression: none
2025-06-13 17:54:52,847 [DEBUG][       Thread-263174][   transport.py][1871] : === End of kex handshake ===
2025-06-13 17:54:52,857 [DEBUG][       Thread-263174][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 17:54:52,857 [DEBUG][       Thread-263174][   transport.py][1871] : Switch to new keys ...
2025-06-13 17:54:52,858 [DEBUG][       Thread-263174][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 17:54:52,858 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 17:54:52,858 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 17:54:52,859 [DEBUG][       Thread-263174][   transport.py][1871] : userauth is OK
2025-06-13 17:54:52,873 [ INFO][       Thread-263174][   transport.py][1871] : Authentication (password) successful!
2025-06-13 17:54:52,874 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 17:54:53,507 [DEBUG][       Thread-263174][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 17:54:53,507 [DEBUG][       Thread-263174][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 17:54:53,549 [DEBUG][       Thread-263174][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 17:54:53,549 [DEBUG][       Thread-263174][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 17:54:53,551 [DEBUG][       Thread-263174][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 17:54:53,562 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 17:54:53,563 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 17:54:53,564 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 17:54:53,565 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 17:54:53,569 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 17:54:53,570 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 17:54:53,570 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 17:54:53,570 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 17:54:53,570 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.662781 -999.00  +11.50  18.06     37   -2.40 1 1 1 1 1   665    0 13.72 -6.84 ----- 19.5 18.1 47.4 23.5 11.9 -29.4 11.8 -29.3 11.6 -28.5 11.8 -28.6
2025-06-13 17:54:53,570 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 17:54:53,570 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 17:54:53,570 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.662781
2025-06-13 17:54:53,570 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 17:54:53,571 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 17:54:53,571 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 17:54:53,571 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 17:54:53,571 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 17:54:53,571 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T17:54:41', tmtdew=15.73, humidity=33.1, cloud=0.0, wind=13.62, temperature=11.6, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T15:54:24.278', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 17:54:53,571 [DEBUG][       Thread-263174][   transport.py][1871] : EOF in transport thread
2025-06-13 17:54:53,644 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 17:54:53,656 [DEBUG][       Thread-263177][   transport.py][1871] : starting thread (client mode): 0x868c85e0
2025-06-13 17:54:53,656 [DEBUG][       Thread-263177][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 17:54:53,672 [DEBUG][       Thread-263177][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 17:54:53,672 [ INFO][       Thread-263177][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 17:54:53,682 [DEBUG][       Thread-263177][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 17:54:53,682 [DEBUG][       Thread-263177][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 17:54:53,682 [DEBUG][       Thread-263177][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 17:54:53,682 [DEBUG][       Thread-263177][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:54:53,682 [DEBUG][       Thread-263177][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:54:53,682 [DEBUG][       Thread-263177][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:54:53,682 [DEBUG][       Thread-263177][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:54:53,683 [DEBUG][       Thread-263177][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 17:54:53,683 [DEBUG][       Thread-263177][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 17:54:53,683 [DEBUG][       Thread-263177][   transport.py][1871] : client lang: <none>
2025-06-13 17:54:53,683 [DEBUG][       Thread-263177][   transport.py][1871] : server lang: <none>
2025-06-13 17:54:53,683 [DEBUG][       Thread-263177][   transport.py][1871] : kex follows: False
2025-06-13 17:54:53,683 [DEBUG][       Thread-263177][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 17:54:53,683 [DEBUG][       Thread-263177][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 17:54:53,683 [DEBUG][       Thread-263177][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 17:54:53,683 [DEBUG][       Thread-263177][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 17:54:53,683 [DEBUG][       Thread-263177][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 17:54:53,683 [DEBUG][       Thread-263177][   transport.py][1871] : Compression: none
2025-06-13 17:54:53,683 [DEBUG][       Thread-263177][   transport.py][1871] : === End of kex handshake ===
2025-06-13 17:54:53,737 [DEBUG][       Thread-263177][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 17:54:53,738 [DEBUG][       Thread-263177][   transport.py][1871] : Switch to new keys ...
2025-06-13 17:54:53,738 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 17:54:53,739 [DEBUG][       Thread-263177][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 17:54:53,740 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 17:54:53,793 [DEBUG][       Thread-263177][   transport.py][1871] : userauth is OK
2025-06-13 17:54:53,793 [DEBUG][       Thread-263177][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 17:54:53,793 [DEBUG][       Thread-263177][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 17:54:53,793 [DEBUG][       Thread-263177][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 17:54:53,793 [DEBUG][       Thread-263177][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 17:54:53,808 [ INFO][       Thread-263177][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 17:54:53,808 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 17:54:53,808 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 17:54:54,134 [DEBUG][Thread-263179 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:54:54,816 [DEBUG][       Thread-263177][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 17:54:54,816 [DEBUG][       Thread-263177][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 17:54:54,869 [DEBUG][       Thread-263177][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 17:54:54,870 [DEBUG][       Thread-263177][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 17:54:54,880 [DEBUG][       Thread-263177][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 17:54:54,890 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 17:54:54,890 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 17:54:54,899 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 17:54:54,907 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 17:54:54,908 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 17:54:54,908 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 17:54:54,917 [DEBUG][       Thread-263177][   transport.py][1871] : EOF in transport thread
2025-06-13 17:55:01,224 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:55:01,224 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:55:03,159 [DEBUG][Thread-263180 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:55:04,918 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 17:55:04,919 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 17:55:04,919 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 17:55:04,922 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 17:55:05,380 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 17, 54, 41), 15.73, 33.1, 0.0, 13.62, 11.6, 0, 0, 0, 2, 0, 0),)
2025-06-13 17:55:05,380 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 17:54:41
2025-06-13 17:55:05,459 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 17:55:05,463 [DEBUG][       Thread-263181][   transport.py][1871] : starting thread (client mode): 0x867fd6f0
2025-06-13 17:55:05,463 [DEBUG][       Thread-263181][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 17:55:05,484 [DEBUG][       Thread-263181][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 17:55:05,484 [ INFO][       Thread-263181][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 17:55:05,487 [DEBUG][       Thread-263181][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 17:55:05,487 [DEBUG][       Thread-263181][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 17:55:05,487 [DEBUG][       Thread-263181][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 17:55:05,487 [DEBUG][       Thread-263181][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:55:05,487 [DEBUG][       Thread-263181][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:55:05,487 [DEBUG][       Thread-263181][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:55:05,487 [DEBUG][       Thread-263181][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:55:05,487 [DEBUG][       Thread-263181][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 17:55:05,487 [DEBUG][       Thread-263181][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 17:55:05,487 [DEBUG][       Thread-263181][   transport.py][1871] : client lang: <none>
2025-06-13 17:55:05,487 [DEBUG][       Thread-263181][   transport.py][1871] : server lang: <none>
2025-06-13 17:55:05,487 [DEBUG][       Thread-263181][   transport.py][1871] : kex follows: False
2025-06-13 17:55:05,487 [DEBUG][       Thread-263181][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 17:55:05,487 [DEBUG][       Thread-263181][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 17:55:05,488 [DEBUG][       Thread-263181][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 17:55:05,488 [DEBUG][       Thread-263181][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 17:55:05,488 [DEBUG][       Thread-263181][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 17:55:05,488 [DEBUG][       Thread-263181][   transport.py][1871] : Compression: none
2025-06-13 17:55:05,488 [DEBUG][       Thread-263181][   transport.py][1871] : === End of kex handshake ===
2025-06-13 17:55:05,504 [DEBUG][       Thread-263181][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 17:55:05,505 [DEBUG][       Thread-263181][   transport.py][1871] : Switch to new keys ...
2025-06-13 17:55:05,505 [DEBUG][       Thread-263181][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 17:55:05,506 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 17:55:05,506 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 17:55:05,507 [DEBUG][       Thread-263181][   transport.py][1871] : userauth is OK
2025-06-13 17:55:05,520 [ INFO][       Thread-263181][   transport.py][1871] : Authentication (password) successful!
2025-06-13 17:55:05,520 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 17:55:12,186 [DEBUG][Thread-263183 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:55:13,532 [DEBUG][       Thread-263181][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 17:55:13,532 [DEBUG][       Thread-263181][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 17:55:13,573 [DEBUG][       Thread-263181][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 17:55:13,573 [DEBUG][       Thread-263181][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 17:55:13,576 [DEBUG][       Thread-263181][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 17:55:13,674 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 17:55:13,674 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 17:55:13,676 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 17:55:13,678 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 17:55:13,683 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 17:55:13,685 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 17:55:13,685 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 17:55:13,686 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 17:55:13,686 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.662781 -999.00  +11.50  18.06     37   -2.40 1 1 1 1 1   665    0 13.72 -6.84 ----- 19.5 18.1 47.4 23.5 11.9 -29.4 11.8 -29.3 11.6 -28.5 11.8 -28.6
2025-06-13 17:55:13,686 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 17:55:13,686 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 17:55:13,686 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.662781
2025-06-13 17:55:13,687 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 17:55:13,687 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 17:55:13,688 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 17:55:13,688 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 17:55:13,688 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 17:55:13,688 [DEBUG][       Thread-263181][   transport.py][1871] : EOF in transport thread
2025-06-13 17:55:13,688 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T17:54:41', tmtdew=15.73, humidity=33.1, cloud=0.0, wind=13.62, temperature=11.6, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T15:54:24.278', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 17:55:13,772 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 17:55:13,784 [DEBUG][       Thread-263185][   transport.py][1871] : starting thread (client mode): 0x86893be0
2025-06-13 17:55:13,784 [DEBUG][       Thread-263185][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 17:55:13,799 [DEBUG][       Thread-263185][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 17:55:13,799 [ INFO][       Thread-263185][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 17:55:13,806 [DEBUG][       Thread-263185][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 17:55:13,807 [DEBUG][       Thread-263185][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 17:55:13,807 [DEBUG][       Thread-263185][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 17:55:13,807 [DEBUG][       Thread-263185][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:55:13,807 [DEBUG][       Thread-263185][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:55:13,807 [DEBUG][       Thread-263185][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:55:13,807 [DEBUG][       Thread-263185][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:55:13,807 [DEBUG][       Thread-263185][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 17:55:13,807 [DEBUG][       Thread-263185][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 17:55:13,807 [DEBUG][       Thread-263185][   transport.py][1871] : client lang: <none>
2025-06-13 17:55:13,807 [DEBUG][       Thread-263185][   transport.py][1871] : server lang: <none>
2025-06-13 17:55:13,807 [DEBUG][       Thread-263185][   transport.py][1871] : kex follows: False
2025-06-13 17:55:13,807 [DEBUG][       Thread-263185][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 17:55:13,807 [DEBUG][       Thread-263185][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 17:55:13,807 [DEBUG][       Thread-263185][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 17:55:13,807 [DEBUG][       Thread-263185][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 17:55:13,807 [DEBUG][       Thread-263185][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 17:55:13,807 [DEBUG][       Thread-263185][   transport.py][1871] : Compression: none
2025-06-13 17:55:13,807 [DEBUG][       Thread-263185][   transport.py][1871] : === End of kex handshake ===
2025-06-13 17:55:13,865 [DEBUG][       Thread-263185][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 17:55:13,866 [DEBUG][       Thread-263185][   transport.py][1871] : Switch to new keys ...
2025-06-13 17:55:13,867 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 17:55:13,867 [DEBUG][       Thread-263185][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 17:55:13,868 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 17:55:13,921 [DEBUG][       Thread-263185][   transport.py][1871] : userauth is OK
2025-06-13 17:55:13,921 [DEBUG][       Thread-263185][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 17:55:13,921 [DEBUG][       Thread-263185][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 17:55:13,921 [DEBUG][       Thread-263185][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 17:55:13,921 [DEBUG][       Thread-263185][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 17:55:13,940 [ INFO][       Thread-263185][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 17:55:13,941 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 17:55:13,941 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 17:55:14,938 [DEBUG][       Thread-263185][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 17:55:14,938 [DEBUG][       Thread-263185][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 17:55:14,988 [DEBUG][       Thread-263185][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 17:55:14,988 [DEBUG][       Thread-263185][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 17:55:15,000 [DEBUG][       Thread-263185][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 17:55:15,008 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 17:55:15,008 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 17:55:15,016 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 17:55:15,025 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 17:55:15,025 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 17:55:15,025 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 17:55:15,032 [DEBUG][       Thread-263185][   transport.py][1871] : EOF in transport thread
2025-06-13 17:55:21,207 [DEBUG][Thread-263187 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:55:25,035 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 17:55:25,035 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 17:55:25,035 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 17:55:25,038 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 17:55:25,505 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 17, 55, 13), 15.9, 32.71, 0.0, 15.23, 11.57, 0, 0, 0, 2, 0, 0),)
2025-06-13 17:55:25,505 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 17:55:13
2025-06-13 17:55:25,583 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 17:55:25,589 [DEBUG][       Thread-263188][   transport.py][1871] : starting thread (client mode): 0x8636a560
2025-06-13 17:55:25,589 [DEBUG][       Thread-263188][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 17:55:25,610 [DEBUG][       Thread-263188][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 17:55:25,610 [ INFO][       Thread-263188][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 17:55:25,613 [DEBUG][       Thread-263188][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 17:55:25,613 [DEBUG][       Thread-263188][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 17:55:25,613 [DEBUG][       Thread-263188][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 17:55:25,613 [DEBUG][       Thread-263188][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:55:25,613 [DEBUG][       Thread-263188][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:55:25,613 [DEBUG][       Thread-263188][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:55:25,613 [DEBUG][       Thread-263188][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:55:25,613 [DEBUG][       Thread-263188][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 17:55:25,613 [DEBUG][       Thread-263188][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 17:55:25,613 [DEBUG][       Thread-263188][   transport.py][1871] : client lang: <none>
2025-06-13 17:55:25,614 [DEBUG][       Thread-263188][   transport.py][1871] : server lang: <none>
2025-06-13 17:55:25,614 [DEBUG][       Thread-263188][   transport.py][1871] : kex follows: False
2025-06-13 17:55:25,614 [DEBUG][       Thread-263188][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 17:55:25,614 [DEBUG][       Thread-263188][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 17:55:25,614 [DEBUG][       Thread-263188][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 17:55:25,614 [DEBUG][       Thread-263188][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 17:55:25,614 [DEBUG][       Thread-263188][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 17:55:25,614 [DEBUG][       Thread-263188][   transport.py][1871] : Compression: none
2025-06-13 17:55:25,614 [DEBUG][       Thread-263188][   transport.py][1871] : === End of kex handshake ===
2025-06-13 17:55:25,631 [DEBUG][       Thread-263188][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 17:55:25,632 [DEBUG][       Thread-263188][   transport.py][1871] : Switch to new keys ...
2025-06-13 17:55:25,632 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 17:55:25,632 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 17:55:25,633 [DEBUG][       Thread-263188][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 17:55:25,634 [DEBUG][       Thread-263188][   transport.py][1871] : userauth is OK
2025-06-13 17:55:25,646 [ INFO][       Thread-263188][   transport.py][1871] : Authentication (password) successful!
2025-06-13 17:55:25,647 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 17:55:26,258 [DEBUG][       Thread-263188][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 17:55:26,259 [DEBUG][       Thread-263188][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 17:55:26,301 [DEBUG][       Thread-263188][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 17:55:26,301 [DEBUG][       Thread-263188][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 17:55:26,304 [DEBUG][       Thread-263188][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 17:55:26,312 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 17:55:26,312 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 17:55:26,313 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 17:55:26,315 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 17:55:26,319 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 17:55:26,321 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 17:55:26,321 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 17:55:26,322 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 17:55:26,322 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.663128 -999.00  +11.50  20.12     37   -2.50 1 1 1 1 1   648    0 13.86 -6.12 ----- 21.9 20.1 45.8 22.9 12.0 -29.4 11.8 -29.4 11.6 -28.2 11.8 -28.3
2025-06-13 17:55:26,322 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 17:55:26,322 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 17:55:26,322 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.663128
2025-06-13 17:55:26,323 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 17:55:26,323 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 17:55:26,323 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 17:55:26,323 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 17:55:26,323 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 17:55:26,324 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T17:55:13', tmtdew=15.9, humidity=32.71, cloud=0.0, wind=15.23, temperature=11.57, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T15:54:54.259', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 17:55:26,324 [DEBUG][       Thread-263188][   transport.py][1871] : EOF in transport thread
2025-06-13 17:55:26,407 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 17:55:26,416 [DEBUG][       Thread-263191][   transport.py][1871] : starting thread (client mode): 0x867ffd60
2025-06-13 17:55:26,416 [DEBUG][       Thread-263191][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 17:55:26,431 [DEBUG][       Thread-263191][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 17:55:26,431 [ INFO][       Thread-263191][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 17:55:26,439 [DEBUG][       Thread-263191][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 17:55:26,439 [DEBUG][       Thread-263191][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 17:55:26,439 [DEBUG][       Thread-263191][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 17:55:26,439 [DEBUG][       Thread-263191][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:55:26,439 [DEBUG][       Thread-263191][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:55:26,439 [DEBUG][       Thread-263191][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:55:26,439 [DEBUG][       Thread-263191][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:55:26,439 [DEBUG][       Thread-263191][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 17:55:26,439 [DEBUG][       Thread-263191][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 17:55:26,439 [DEBUG][       Thread-263191][   transport.py][1871] : client lang: <none>
2025-06-13 17:55:26,439 [DEBUG][       Thread-263191][   transport.py][1871] : server lang: <none>
2025-06-13 17:55:26,439 [DEBUG][       Thread-263191][   transport.py][1871] : kex follows: False
2025-06-13 17:55:26,439 [DEBUG][       Thread-263191][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 17:55:26,439 [DEBUG][       Thread-263191][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 17:55:26,439 [DEBUG][       Thread-263191][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 17:55:26,439 [DEBUG][       Thread-263191][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 17:55:26,439 [DEBUG][       Thread-263191][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 17:55:26,440 [DEBUG][       Thread-263191][   transport.py][1871] : Compression: none
2025-06-13 17:55:26,440 [DEBUG][       Thread-263191][   transport.py][1871] : === End of kex handshake ===
2025-06-13 17:55:26,504 [DEBUG][       Thread-263191][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 17:55:26,504 [DEBUG][       Thread-263191][   transport.py][1871] : Switch to new keys ...
2025-06-13 17:55:26,505 [DEBUG][       Thread-263191][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 17:55:26,505 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 17:55:26,506 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 17:55:26,565 [DEBUG][       Thread-263191][   transport.py][1871] : userauth is OK
2025-06-13 17:55:26,566 [DEBUG][       Thread-263191][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 17:55:26,566 [DEBUG][       Thread-263191][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 17:55:26,566 [DEBUG][       Thread-263191][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 17:55:26,566 [DEBUG][       Thread-263191][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 17:55:26,584 [ INFO][       Thread-263191][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 17:55:26,585 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 17:55:26,585 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 17:55:27,623 [DEBUG][       Thread-263191][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 17:55:27,623 [DEBUG][       Thread-263191][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 17:55:27,676 [DEBUG][       Thread-263191][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 17:55:27,676 [DEBUG][       Thread-263191][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 17:55:27,685 [DEBUG][       Thread-263191][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 17:55:27,694 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 17:55:27,694 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 17:55:27,703 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 17:55:27,713 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 17:55:27,713 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 17:55:27,713 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 17:55:27,721 [DEBUG][       Thread-263191][   transport.py][1871] : EOF in transport thread
2025-06-13 17:55:28,074 [DEBUG][Thread-263193 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:55:30,229 [DEBUG][Thread-263194 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:55:32,488 [DEBUG][Thread-263195 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:55:33,605 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:55:33,606 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:55:37,720 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 17:55:37,720 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 17:55:37,720 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 17:55:37,720 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 17:55:38,187 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 17, 55, 13), 15.9, 32.71, 0.0, 15.23, 11.57, 0, 0, 0, 2, 0, 0),)
2025-06-13 17:55:38,187 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 17:55:13
2025-06-13 17:55:38,268 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 17:55:38,272 [DEBUG][       Thread-263196][   transport.py][1871] : starting thread (client mode): 0x8636afe0
2025-06-13 17:55:38,272 [DEBUG][       Thread-263196][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 17:55:38,292 [DEBUG][       Thread-263196][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 17:55:38,292 [ INFO][       Thread-263196][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 17:55:38,295 [DEBUG][       Thread-263196][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 17:55:38,295 [DEBUG][       Thread-263196][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 17:55:38,295 [DEBUG][       Thread-263196][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 17:55:38,295 [DEBUG][       Thread-263196][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:55:38,295 [DEBUG][       Thread-263196][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:55:38,295 [DEBUG][       Thread-263196][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:55:38,295 [DEBUG][       Thread-263196][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:55:38,295 [DEBUG][       Thread-263196][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 17:55:38,295 [DEBUG][       Thread-263196][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 17:55:38,295 [DEBUG][       Thread-263196][   transport.py][1871] : client lang: <none>
2025-06-13 17:55:38,295 [DEBUG][       Thread-263196][   transport.py][1871] : server lang: <none>
2025-06-13 17:55:38,295 [DEBUG][       Thread-263196][   transport.py][1871] : kex follows: False
2025-06-13 17:55:38,295 [DEBUG][       Thread-263196][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 17:55:38,295 [DEBUG][       Thread-263196][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 17:55:38,295 [DEBUG][       Thread-263196][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 17:55:38,295 [DEBUG][       Thread-263196][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 17:55:38,295 [DEBUG][       Thread-263196][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 17:55:38,295 [DEBUG][       Thread-263196][   transport.py][1871] : Compression: none
2025-06-13 17:55:38,295 [DEBUG][       Thread-263196][   transport.py][1871] : === End of kex handshake ===
2025-06-13 17:55:38,312 [DEBUG][       Thread-263196][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 17:55:38,312 [DEBUG][       Thread-263196][   transport.py][1871] : Switch to new keys ...
2025-06-13 17:55:38,312 [DEBUG][       Thread-263196][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 17:55:38,312 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 17:55:38,312 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 17:55:38,313 [DEBUG][       Thread-263196][   transport.py][1871] : userauth is OK
2025-06-13 17:55:38,325 [ INFO][       Thread-263196][   transport.py][1871] : Authentication (password) successful!
2025-06-13 17:55:38,325 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 17:55:38,916 [DEBUG][       Thread-263196][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 17:55:38,916 [DEBUG][       Thread-263196][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 17:55:38,960 [DEBUG][       Thread-263196][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 17:55:38,960 [DEBUG][       Thread-263196][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 17:55:38,963 [DEBUG][       Thread-263196][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 17:55:38,976 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 17:55:38,976 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 17:55:38,977 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 17:55:38,978 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 17:55:38,981 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 17:55:38,982 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 17:55:38,982 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 17:55:38,982 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 17:55:38,982 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.663128 -999.00  +11.50  20.12     37   -2.50 1 1 1 1 1   648    0 13.86 -6.12 ----- 21.9 20.1 45.8 22.9 12.0 -29.4 11.8 -29.4 11.6 -28.2 11.8 -28.3
2025-06-13 17:55:38,982 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 17:55:38,982 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 17:55:38,982 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.663128
2025-06-13 17:55:38,982 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 17:55:38,982 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 17:55:38,982 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 17:55:38,982 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 17:55:38,982 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 17:55:38,982 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T17:55:13', tmtdew=15.9, humidity=32.71, cloud=0.0, wind=15.23, temperature=11.57, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T15:54:54.259', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 17:55:38,983 [DEBUG][       Thread-263196][   transport.py][1871] : EOF in transport thread
2025-06-13 17:55:39,054 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 17:55:39,066 [DEBUG][       Thread-263199][   transport.py][1871] : starting thread (client mode): 0x867b54b0
2025-06-13 17:55:39,066 [DEBUG][       Thread-263199][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 17:55:39,081 [DEBUG][       Thread-263199][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 17:55:39,081 [ INFO][       Thread-263199][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 17:55:39,088 [DEBUG][       Thread-263199][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 17:55:39,088 [DEBUG][       Thread-263199][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 17:55:39,088 [DEBUG][       Thread-263199][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 17:55:39,088 [DEBUG][       Thread-263199][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:55:39,088 [DEBUG][       Thread-263199][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:55:39,088 [DEBUG][       Thread-263199][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:55:39,088 [DEBUG][       Thread-263199][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:55:39,088 [DEBUG][       Thread-263199][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 17:55:39,088 [DEBUG][       Thread-263199][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 17:55:39,088 [DEBUG][       Thread-263199][   transport.py][1871] : client lang: <none>
2025-06-13 17:55:39,088 [DEBUG][       Thread-263199][   transport.py][1871] : server lang: <none>
2025-06-13 17:55:39,088 [DEBUG][       Thread-263199][   transport.py][1871] : kex follows: False
2025-06-13 17:55:39,088 [DEBUG][       Thread-263199][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 17:55:39,088 [DEBUG][       Thread-263199][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 17:55:39,088 [DEBUG][       Thread-263199][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 17:55:39,089 [DEBUG][       Thread-263199][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 17:55:39,089 [DEBUG][       Thread-263199][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 17:55:39,089 [DEBUG][       Thread-263199][   transport.py][1871] : Compression: none
2025-06-13 17:55:39,089 [DEBUG][       Thread-263199][   transport.py][1871] : === End of kex handshake ===
2025-06-13 17:55:39,143 [DEBUG][       Thread-263199][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 17:55:39,144 [DEBUG][       Thread-263199][   transport.py][1871] : Switch to new keys ...
2025-06-13 17:55:39,144 [DEBUG][       Thread-263199][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 17:55:39,144 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 17:55:39,144 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 17:55:39,200 [DEBUG][       Thread-263199][   transport.py][1871] : userauth is OK
2025-06-13 17:55:39,200 [DEBUG][       Thread-263199][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 17:55:39,200 [DEBUG][       Thread-263199][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 17:55:39,200 [DEBUG][       Thread-263199][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 17:55:39,200 [DEBUG][       Thread-263199][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 17:55:39,214 [ INFO][       Thread-263199][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 17:55:39,214 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 17:55:39,214 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 17:55:39,260 [DEBUG][Thread-263201 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:55:40,214 [DEBUG][       Thread-263199][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 17:55:40,214 [DEBUG][       Thread-263199][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 17:55:40,264 [DEBUG][       Thread-263199][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 17:55:40,264 [DEBUG][       Thread-263199][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 17:55:40,274 [DEBUG][       Thread-263199][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 17:55:40,283 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 17:55:40,284 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 17:55:40,293 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 17:55:40,302 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 17:55:40,302 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 17:55:40,303 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 17:55:40,314 [DEBUG][       Thread-263199][   transport.py][1871] : EOF in transport thread
2025-06-13 17:55:48,280 [DEBUG][Thread-263202 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:55:50,313 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 17:55:50,313 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 17:55:50,314 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 17:55:50,317 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 17:55:50,768 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 17, 55, 45), 15.9, 32.7, 0.0, 15.03, 11.58, 0, 0, 0, 2, 0, 0),)
2025-06-13 17:55:50,768 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 17:55:45
2025-06-13 17:55:50,846 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 17:55:50,852 [DEBUG][       Thread-263203][   transport.py][1871] : starting thread (client mode): 0x8636a050
2025-06-13 17:55:50,852 [DEBUG][       Thread-263203][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 17:55:50,867 [DEBUG][       Thread-263203][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 17:55:50,867 [ INFO][       Thread-263203][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 17:55:50,869 [DEBUG][       Thread-263203][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 17:55:50,869 [DEBUG][       Thread-263203][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 17:55:50,869 [DEBUG][       Thread-263203][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 17:55:50,869 [DEBUG][       Thread-263203][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:55:50,869 [DEBUG][       Thread-263203][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:55:50,869 [DEBUG][       Thread-263203][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:55:50,869 [DEBUG][       Thread-263203][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:55:50,869 [DEBUG][       Thread-263203][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 17:55:50,869 [DEBUG][       Thread-263203][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 17:55:50,869 [DEBUG][       Thread-263203][   transport.py][1871] : client lang: <none>
2025-06-13 17:55:50,869 [DEBUG][       Thread-263203][   transport.py][1871] : server lang: <none>
2025-06-13 17:55:50,869 [DEBUG][       Thread-263203][   transport.py][1871] : kex follows: False
2025-06-13 17:55:50,869 [DEBUG][       Thread-263203][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 17:55:50,869 [DEBUG][       Thread-263203][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 17:55:50,869 [DEBUG][       Thread-263203][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 17:55:50,869 [DEBUG][       Thread-263203][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 17:55:50,869 [DEBUG][       Thread-263203][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 17:55:50,869 [DEBUG][       Thread-263203][   transport.py][1871] : Compression: none
2025-06-13 17:55:50,869 [DEBUG][       Thread-263203][   transport.py][1871] : === End of kex handshake ===
2025-06-13 17:55:50,877 [DEBUG][       Thread-263203][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 17:55:50,878 [DEBUG][       Thread-263203][   transport.py][1871] : Switch to new keys ...
2025-06-13 17:55:50,878 [DEBUG][       Thread-263203][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 17:55:50,878 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 17:55:50,878 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 17:55:50,879 [DEBUG][       Thread-263203][   transport.py][1871] : userauth is OK
2025-06-13 17:55:50,904 [ INFO][       Thread-263203][   transport.py][1871] : Authentication (password) successful!
2025-06-13 17:55:50,905 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 17:55:51,548 [DEBUG][       Thread-263203][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 17:55:51,549 [DEBUG][       Thread-263203][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 17:55:51,593 [DEBUG][       Thread-263203][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 17:55:51,593 [DEBUG][       Thread-263203][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 17:55:51,596 [DEBUG][       Thread-263203][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 17:55:51,602 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 17:55:51,603 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 17:55:51,605 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 17:55:51,607 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 17:55:51,613 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 17:55:51,615 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 17:55:51,615 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 17:55:51,616 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 17:55:51,616 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.663128 -999.00  +11.50  20.12     37   -2.50 1 1 1 1 1   648    0 13.86 -6.12 ----- 21.9 20.1 45.8 22.9 12.0 -29.4 11.8 -29.4 11.6 -28.2 11.8 -28.3
2025-06-13 17:55:51,616 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 17:55:51,616 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 17:55:51,616 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.663128
2025-06-13 17:55:51,617 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 17:55:51,617 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 17:55:51,617 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 17:55:51,618 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 17:55:51,618 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 17:55:51,618 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T17:55:45', tmtdew=15.9, humidity=32.7, cloud=0.0, wind=15.03, temperature=11.58, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T15:54:54.259', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 17:55:51,619 [DEBUG][       Thread-263203][   transport.py][1871] : EOF in transport thread
2025-06-13 17:55:51,691 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 17:55:51,703 [DEBUG][       Thread-263206][   transport.py][1871] : starting thread (client mode): 0x867fcf70
2025-06-13 17:55:51,703 [DEBUG][       Thread-263206][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 17:55:51,718 [DEBUG][       Thread-263206][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 17:55:51,718 [ INFO][       Thread-263206][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 17:55:51,725 [DEBUG][       Thread-263206][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 17:55:51,725 [DEBUG][       Thread-263206][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 17:55:51,725 [DEBUG][       Thread-263206][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 17:55:51,725 [DEBUG][       Thread-263206][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:55:51,726 [DEBUG][       Thread-263206][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:55:51,726 [DEBUG][       Thread-263206][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:55:51,726 [DEBUG][       Thread-263206][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:55:51,726 [DEBUG][       Thread-263206][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 17:55:51,726 [DEBUG][       Thread-263206][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 17:55:51,726 [DEBUG][       Thread-263206][   transport.py][1871] : client lang: <none>
2025-06-13 17:55:51,726 [DEBUG][       Thread-263206][   transport.py][1871] : server lang: <none>
2025-06-13 17:55:51,726 [DEBUG][       Thread-263206][   transport.py][1871] : kex follows: False
2025-06-13 17:55:51,726 [DEBUG][       Thread-263206][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 17:55:51,726 [DEBUG][       Thread-263206][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 17:55:51,726 [DEBUG][       Thread-263206][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 17:55:51,726 [DEBUG][       Thread-263206][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 17:55:51,726 [DEBUG][       Thread-263206][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 17:55:51,726 [DEBUG][       Thread-263206][   transport.py][1871] : Compression: none
2025-06-13 17:55:51,726 [DEBUG][       Thread-263206][   transport.py][1871] : === End of kex handshake ===
2025-06-13 17:55:51,785 [DEBUG][       Thread-263206][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 17:55:51,785 [DEBUG][       Thread-263206][   transport.py][1871] : Switch to new keys ...
2025-06-13 17:55:51,786 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 17:55:51,786 [DEBUG][       Thread-263206][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 17:55:51,787 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 17:55:51,849 [DEBUG][       Thread-263206][   transport.py][1871] : userauth is OK
2025-06-13 17:55:51,849 [DEBUG][       Thread-263206][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 17:55:51,849 [DEBUG][       Thread-263206][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 17:55:51,849 [DEBUG][       Thread-263206][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 17:55:51,850 [DEBUG][       Thread-263206][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 17:55:51,868 [ INFO][       Thread-263206][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 17:55:51,868 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 17:55:51,868 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 17:55:52,832 [DEBUG][       Thread-263206][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 17:55:52,832 [DEBUG][       Thread-263206][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 17:55:52,880 [DEBUG][       Thread-263206][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 17:55:52,881 [DEBUG][       Thread-263206][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 17:55:52,892 [DEBUG][       Thread-263206][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 17:55:52,901 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 17:55:52,901 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 17:55:52,910 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 17:55:52,920 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 17:55:52,920 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 17:55:52,921 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 17:55:52,929 [DEBUG][       Thread-263206][   transport.py][1871] : EOF in transport thread
2025-06-13 17:55:57,303 [DEBUG][Thread-263208 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:56:02,931 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 17:56:02,932 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 17:56:02,932 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 17:56:02,935 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 17:56:03,381 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 17, 55, 45), 15.9, 32.7, 0.0, 15.03, 11.58, 0, 0, 0, 2, 0, 0),)
2025-06-13 17:56:03,382 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 17:55:45
2025-06-13 17:56:03,459 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 17:56:03,464 [DEBUG][       Thread-263209][   transport.py][1871] : starting thread (client mode): 0x8636a710
2025-06-13 17:56:03,464 [DEBUG][       Thread-263209][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 17:56:03,484 [DEBUG][       Thread-263209][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 17:56:03,484 [ INFO][       Thread-263209][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 17:56:03,488 [DEBUG][       Thread-263209][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 17:56:03,488 [DEBUG][       Thread-263209][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 17:56:03,488 [DEBUG][       Thread-263209][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 17:56:03,488 [DEBUG][       Thread-263209][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:56:03,488 [DEBUG][       Thread-263209][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:56:03,488 [DEBUG][       Thread-263209][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:56:03,488 [DEBUG][       Thread-263209][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:56:03,488 [DEBUG][       Thread-263209][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 17:56:03,488 [DEBUG][       Thread-263209][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 17:56:03,488 [DEBUG][       Thread-263209][   transport.py][1871] : client lang: <none>
2025-06-13 17:56:03,488 [DEBUG][       Thread-263209][   transport.py][1871] : server lang: <none>
2025-06-13 17:56:03,488 [DEBUG][       Thread-263209][   transport.py][1871] : kex follows: False
2025-06-13 17:56:03,488 [DEBUG][       Thread-263209][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 17:56:03,488 [DEBUG][       Thread-263209][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 17:56:03,488 [DEBUG][       Thread-263209][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 17:56:03,488 [DEBUG][       Thread-263209][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 17:56:03,488 [DEBUG][       Thread-263209][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 17:56:03,488 [DEBUG][       Thread-263209][   transport.py][1871] : Compression: none
2025-06-13 17:56:03,488 [DEBUG][       Thread-263209][   transport.py][1871] : === End of kex handshake ===
2025-06-13 17:56:03,504 [DEBUG][       Thread-263209][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 17:56:03,505 [DEBUG][       Thread-263209][   transport.py][1871] : Switch to new keys ...
2025-06-13 17:56:03,506 [DEBUG][       Thread-263209][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 17:56:03,506 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 17:56:03,506 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 17:56:03,507 [DEBUG][       Thread-263209][   transport.py][1871] : userauth is OK
2025-06-13 17:56:03,520 [ INFO][       Thread-263209][   transport.py][1871] : Authentication (password) successful!
2025-06-13 17:56:03,521 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 17:56:04,154 [DEBUG][       Thread-263209][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 17:56:04,154 [DEBUG][       Thread-263209][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 17:56:04,197 [DEBUG][       Thread-263209][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 17:56:04,197 [DEBUG][       Thread-263209][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 17:56:04,200 [DEBUG][       Thread-263209][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 17:56:04,211 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 17:56:04,212 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 17:56:04,214 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 17:56:04,215 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 17:56:04,221 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 17:56:04,223 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 17:56:04,223 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 17:56:04,224 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 17:56:04,224 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.663475 -999.00  +11.60  19.53     37   -2.40 1 1 1 1 1   631    0 13.81 -4.02 ----- 18.9 19.5 56.8 23.0 11.9 -29.6 11.8 -29.4 11.5 -28.4 11.8 -28.2
2025-06-13 17:56:04,224 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 17:56:04,224 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 17:56:04,225 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.663475
2025-06-13 17:56:04,225 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 17:56:04,225 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 17:56:04,226 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 17:56:04,226 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 17:56:04,226 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 17:56:04,226 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T17:55:45', tmtdew=15.9, humidity=32.7, cloud=0.0, wind=15.03, temperature=11.58, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T15:55:24.240', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 17:56:04,226 [DEBUG][       Thread-263209][   transport.py][1871] : EOF in transport thread
2025-06-13 17:56:04,309 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 17:56:04,319 [DEBUG][       Thread-263212][   transport.py][1871] : starting thread (client mode): 0x863a5600
2025-06-13 17:56:04,319 [DEBUG][       Thread-263212][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 17:56:04,333 [DEBUG][       Thread-263212][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 17:56:04,334 [ INFO][       Thread-263212][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 17:56:04,341 [DEBUG][       Thread-263212][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 17:56:04,341 [DEBUG][       Thread-263212][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 17:56:04,341 [DEBUG][       Thread-263212][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 17:56:04,341 [DEBUG][       Thread-263212][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:56:04,341 [DEBUG][       Thread-263212][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:56:04,341 [DEBUG][       Thread-263212][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:56:04,341 [DEBUG][       Thread-263212][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:56:04,341 [DEBUG][       Thread-263212][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 17:56:04,341 [DEBUG][       Thread-263212][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 17:56:04,342 [DEBUG][       Thread-263212][   transport.py][1871] : client lang: <none>
2025-06-13 17:56:04,342 [DEBUG][       Thread-263212][   transport.py][1871] : server lang: <none>
2025-06-13 17:56:04,342 [DEBUG][       Thread-263212][   transport.py][1871] : kex follows: False
2025-06-13 17:56:04,342 [DEBUG][       Thread-263212][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 17:56:04,342 [DEBUG][       Thread-263212][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 17:56:04,342 [DEBUG][       Thread-263212][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 17:56:04,342 [DEBUG][       Thread-263212][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 17:56:04,342 [DEBUG][       Thread-263212][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 17:56:04,342 [DEBUG][       Thread-263212][   transport.py][1871] : Compression: none
2025-06-13 17:56:04,342 [DEBUG][       Thread-263212][   transport.py][1871] : === End of kex handshake ===
2025-06-13 17:56:04,404 [DEBUG][       Thread-263212][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 17:56:04,405 [DEBUG][       Thread-263212][   transport.py][1871] : Switch to new keys ...
2025-06-13 17:56:04,405 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 17:56:04,406 [DEBUG][       Thread-263212][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 17:56:04,407 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 17:56:04,460 [DEBUG][       Thread-263212][   transport.py][1871] : userauth is OK
2025-06-13 17:56:04,461 [DEBUG][       Thread-263212][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 17:56:04,461 [DEBUG][       Thread-263212][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 17:56:04,461 [DEBUG][       Thread-263212][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 17:56:04,461 [DEBUG][       Thread-263212][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 17:56:04,479 [ INFO][       Thread-263212][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 17:56:04,479 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 17:56:04,480 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 17:56:05,500 [DEBUG][       Thread-263212][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 17:56:05,500 [DEBUG][       Thread-263212][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 17:56:05,548 [DEBUG][       Thread-263212][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 17:56:05,548 [DEBUG][       Thread-263212][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 17:56:05,557 [DEBUG][       Thread-263212][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 17:56:05,567 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 17:56:05,567 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 17:56:05,576 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 17:56:05,586 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 17:56:05,586 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 17:56:05,586 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 17:56:05,595 [DEBUG][       Thread-263212][   transport.py][1871] : EOF in transport thread
2025-06-13 17:56:06,338 [DEBUG][Thread-263214 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:56:14,463 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:56:14,464 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:56:15,357 [DEBUG][Thread-263215 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:56:15,596 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 17:56:15,596 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 17:56:15,596 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 17:56:15,597 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 17:56:16,070 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 17, 55, 45), 15.9, 32.7, 0.0, 15.03, 11.58, 0, 0, 0, 2, 0, 0),)
2025-06-13 17:56:16,070 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 17:55:45
2025-06-13 17:56:16,150 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 17:56:16,155 [DEBUG][       Thread-263216][   transport.py][1871] : starting thread (client mode): 0x86368a90
2025-06-13 17:56:16,155 [DEBUG][       Thread-263216][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 17:56:16,173 [DEBUG][       Thread-263216][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 17:56:16,173 [ INFO][       Thread-263216][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 17:56:16,176 [DEBUG][       Thread-263216][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 17:56:16,176 [DEBUG][       Thread-263216][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 17:56:16,176 [DEBUG][       Thread-263216][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 17:56:16,176 [DEBUG][       Thread-263216][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:56:16,176 [DEBUG][       Thread-263216][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:56:16,176 [DEBUG][       Thread-263216][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:56:16,176 [DEBUG][       Thread-263216][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:56:16,176 [DEBUG][       Thread-263216][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 17:56:16,176 [DEBUG][       Thread-263216][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 17:56:16,176 [DEBUG][       Thread-263216][   transport.py][1871] : client lang: <none>
2025-06-13 17:56:16,176 [DEBUG][       Thread-263216][   transport.py][1871] : server lang: <none>
2025-06-13 17:56:16,176 [DEBUG][       Thread-263216][   transport.py][1871] : kex follows: False
2025-06-13 17:56:16,176 [DEBUG][       Thread-263216][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 17:56:16,176 [DEBUG][       Thread-263216][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 17:56:16,176 [DEBUG][       Thread-263216][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 17:56:16,176 [DEBUG][       Thread-263216][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 17:56:16,176 [DEBUG][       Thread-263216][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 17:56:16,176 [DEBUG][       Thread-263216][   transport.py][1871] : Compression: none
2025-06-13 17:56:16,176 [DEBUG][       Thread-263216][   transport.py][1871] : === End of kex handshake ===
2025-06-13 17:56:16,190 [DEBUG][       Thread-263216][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 17:56:16,190 [DEBUG][       Thread-263216][   transport.py][1871] : Switch to new keys ...
2025-06-13 17:56:16,190 [DEBUG][       Thread-263216][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 17:56:16,190 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 17:56:16,190 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 17:56:16,191 [DEBUG][       Thread-263216][   transport.py][1871] : userauth is OK
2025-06-13 17:56:16,215 [ INFO][       Thread-263216][   transport.py][1871] : Authentication (password) successful!
2025-06-13 17:56:16,216 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 17:56:16,841 [DEBUG][       Thread-263216][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 17:56:16,841 [DEBUG][       Thread-263216][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 17:56:16,885 [DEBUG][       Thread-263216][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 17:56:16,885 [DEBUG][       Thread-263216][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 17:56:16,887 [DEBUG][       Thread-263216][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 17:56:16,893 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 17:56:16,893 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 17:56:16,894 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 17:56:16,895 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 17:56:16,898 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 17:56:16,899 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 17:56:16,899 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 17:56:16,899 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 17:56:16,899 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.663475 -999.00  +11.60  19.53     37   -2.40 1 1 1 1 1   631    0 13.81 -4.02 ----- 18.9 19.5 56.8 23.0 11.9 -29.6 11.8 -29.4 11.5 -28.4 11.8 -28.2
2025-06-13 17:56:16,899 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 17:56:16,899 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 17:56:16,899 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.663475
2025-06-13 17:56:16,899 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 17:56:16,899 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 17:56:16,899 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 17:56:16,899 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 17:56:16,899 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 17:56:16,899 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T17:55:45', tmtdew=15.9, humidity=32.7, cloud=0.0, wind=15.03, temperature=11.58, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T15:55:24.240', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 17:56:16,900 [DEBUG][       Thread-263216][   transport.py][1871] : EOF in transport thread
2025-06-13 17:56:16,974 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 17:56:16,986 [DEBUG][       Thread-263219][   transport.py][1871] : starting thread (client mode): 0x86391de0
2025-06-13 17:56:16,986 [DEBUG][       Thread-263219][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 17:56:17,005 [DEBUG][       Thread-263219][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 17:56:17,005 [ INFO][       Thread-263219][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 17:56:17,013 [DEBUG][       Thread-263219][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 17:56:17,013 [DEBUG][       Thread-263219][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 17:56:17,013 [DEBUG][       Thread-263219][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 17:56:17,013 [DEBUG][       Thread-263219][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:56:17,013 [DEBUG][       Thread-263219][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:56:17,013 [DEBUG][       Thread-263219][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:56:17,013 [DEBUG][       Thread-263219][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:56:17,013 [DEBUG][       Thread-263219][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 17:56:17,013 [DEBUG][       Thread-263219][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 17:56:17,013 [DEBUG][       Thread-263219][   transport.py][1871] : client lang: <none>
2025-06-13 17:56:17,013 [DEBUG][       Thread-263219][   transport.py][1871] : server lang: <none>
2025-06-13 17:56:17,013 [DEBUG][       Thread-263219][   transport.py][1871] : kex follows: False
2025-06-13 17:56:17,013 [DEBUG][       Thread-263219][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 17:56:17,013 [DEBUG][       Thread-263219][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 17:56:17,013 [DEBUG][       Thread-263219][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 17:56:17,013 [DEBUG][       Thread-263219][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 17:56:17,013 [DEBUG][       Thread-263219][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 17:56:17,013 [DEBUG][       Thread-263219][   transport.py][1871] : Compression: none
2025-06-13 17:56:17,013 [DEBUG][       Thread-263219][   transport.py][1871] : === End of kex handshake ===
2025-06-13 17:56:17,072 [DEBUG][       Thread-263219][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 17:56:17,072 [DEBUG][       Thread-263219][   transport.py][1871] : Switch to new keys ...
2025-06-13 17:56:17,072 [DEBUG][       Thread-263219][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 17:56:17,072 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 17:56:17,073 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 17:56:17,130 [DEBUG][       Thread-263219][   transport.py][1871] : userauth is OK
2025-06-13 17:56:17,130 [DEBUG][       Thread-263219][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 17:56:17,130 [DEBUG][       Thread-263219][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 17:56:17,130 [DEBUG][       Thread-263219][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 17:56:17,130 [DEBUG][       Thread-263219][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 17:56:17,144 [ INFO][       Thread-263219][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 17:56:17,144 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 17:56:17,145 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 17:56:18,111 [DEBUG][       Thread-263219][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 17:56:18,111 [DEBUG][       Thread-263219][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 17:56:18,160 [DEBUG][       Thread-263219][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 17:56:18,160 [DEBUG][       Thread-263219][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 17:56:18,168 [DEBUG][       Thread-263219][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 17:56:18,176 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 17:56:18,176 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 17:56:18,184 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 17:56:18,192 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 17:56:18,192 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 17:56:18,192 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 17:56:18,200 [DEBUG][       Thread-263219][   transport.py][1871] : EOF in transport thread
2025-06-13 17:56:24,374 [DEBUG][Thread-263221 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:56:28,146 [DEBUG][Thread-263222 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:56:28,196 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 17:56:28,196 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 17:56:28,196 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 17:56:28,199 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 17:56:28,656 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 17, 56, 16), 15.9, 32.7, 0.0, 18.1, 11.58, 0, 0, 0, 2, 0, 0),)
2025-06-13 17:56:28,656 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 17:56:16
2025-06-13 17:56:28,735 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 17:56:28,739 [DEBUG][       Thread-263223][   transport.py][1871] : starting thread (client mode): 0x863c8340
2025-06-13 17:56:28,739 [DEBUG][       Thread-263223][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 17:56:28,762 [DEBUG][       Thread-263223][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 17:56:28,762 [ INFO][       Thread-263223][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 17:56:28,765 [DEBUG][       Thread-263223][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 17:56:28,765 [DEBUG][       Thread-263223][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 17:56:28,766 [DEBUG][       Thread-263223][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 17:56:28,766 [DEBUG][       Thread-263223][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:56:28,766 [DEBUG][       Thread-263223][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:56:28,766 [DEBUG][       Thread-263223][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:56:28,766 [DEBUG][       Thread-263223][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:56:28,766 [DEBUG][       Thread-263223][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 17:56:28,766 [DEBUG][       Thread-263223][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 17:56:28,766 [DEBUG][       Thread-263223][   transport.py][1871] : client lang: <none>
2025-06-13 17:56:28,766 [DEBUG][       Thread-263223][   transport.py][1871] : server lang: <none>
2025-06-13 17:56:28,766 [DEBUG][       Thread-263223][   transport.py][1871] : kex follows: False
2025-06-13 17:56:28,766 [DEBUG][       Thread-263223][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 17:56:28,766 [DEBUG][       Thread-263223][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 17:56:28,766 [DEBUG][       Thread-263223][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 17:56:28,766 [DEBUG][       Thread-263223][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 17:56:28,766 [DEBUG][       Thread-263223][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 17:56:28,766 [DEBUG][       Thread-263223][   transport.py][1871] : Compression: none
2025-06-13 17:56:28,766 [DEBUG][       Thread-263223][   transport.py][1871] : === End of kex handshake ===
2025-06-13 17:56:28,782 [DEBUG][       Thread-263223][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 17:56:28,783 [DEBUG][       Thread-263223][   transport.py][1871] : Switch to new keys ...
2025-06-13 17:56:28,784 [DEBUG][       Thread-263223][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 17:56:28,784 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 17:56:28,784 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 17:56:28,785 [DEBUG][       Thread-263223][   transport.py][1871] : userauth is OK
2025-06-13 17:56:28,798 [ INFO][       Thread-263223][   transport.py][1871] : Authentication (password) successful!
2025-06-13 17:56:28,799 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 17:56:29,379 [DEBUG][       Thread-263223][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 17:56:29,379 [DEBUG][       Thread-263223][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 17:56:29,421 [DEBUG][       Thread-263223][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 17:56:29,421 [DEBUG][       Thread-263223][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 17:56:29,423 [DEBUG][       Thread-263223][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 17:56:29,430 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 17:56:29,431 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 17:56:29,432 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 17:56:29,434 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 17:56:29,438 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 17:56:29,440 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 17:56:29,440 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 17:56:29,441 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 17:56:29,441 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.663475 -999.00  +11.60  19.53     37   -2.40 1 1 1 1 1   631    0 13.81 -4.02 ----- 18.9 19.5 56.8 23.0 11.9 -29.6 11.8 -29.4 11.5 -28.4 11.8 -28.2
2025-06-13 17:56:29,441 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 17:56:29,441 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 17:56:29,441 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.663475
2025-06-13 17:56:29,442 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 17:56:29,442 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 17:56:29,442 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 17:56:29,442 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 17:56:29,442 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 17:56:29,443 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T17:56:16', tmtdew=15.9, humidity=32.7, cloud=0.0, wind=18.1, temperature=11.58, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T15:55:24.240', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 17:56:29,443 [DEBUG][       Thread-263223][   transport.py][1871] : EOF in transport thread
2025-06-13 17:56:29,526 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 17:56:29,535 [DEBUG][       Thread-263226][   transport.py][1871] : starting thread (client mode): 0x86352410
2025-06-13 17:56:29,535 [DEBUG][       Thread-263226][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 17:56:29,550 [DEBUG][       Thread-263226][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 17:56:29,550 [ INFO][       Thread-263226][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 17:56:29,558 [DEBUG][       Thread-263226][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 17:56:29,558 [DEBUG][       Thread-263226][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 17:56:29,558 [DEBUG][       Thread-263226][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 17:56:29,558 [DEBUG][       Thread-263226][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:56:29,558 [DEBUG][       Thread-263226][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:56:29,558 [DEBUG][       Thread-263226][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:56:29,558 [DEBUG][       Thread-263226][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:56:29,558 [DEBUG][       Thread-263226][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 17:56:29,558 [DEBUG][       Thread-263226][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 17:56:29,558 [DEBUG][       Thread-263226][   transport.py][1871] : client lang: <none>
2025-06-13 17:56:29,558 [DEBUG][       Thread-263226][   transport.py][1871] : server lang: <none>
2025-06-13 17:56:29,558 [DEBUG][       Thread-263226][   transport.py][1871] : kex follows: False
2025-06-13 17:56:29,558 [DEBUG][       Thread-263226][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 17:56:29,559 [DEBUG][       Thread-263226][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 17:56:29,559 [DEBUG][       Thread-263226][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 17:56:29,559 [DEBUG][       Thread-263226][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 17:56:29,559 [DEBUG][       Thread-263226][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 17:56:29,559 [DEBUG][       Thread-263226][   transport.py][1871] : Compression: none
2025-06-13 17:56:29,559 [DEBUG][       Thread-263226][   transport.py][1871] : === End of kex handshake ===
2025-06-13 17:56:29,622 [DEBUG][       Thread-263226][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 17:56:29,622 [DEBUG][       Thread-263226][   transport.py][1871] : Switch to new keys ...
2025-06-13 17:56:29,623 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 17:56:29,624 [DEBUG][       Thread-263226][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 17:56:29,624 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 17:56:29,689 [DEBUG][       Thread-263226][   transport.py][1871] : userauth is OK
2025-06-13 17:56:29,689 [DEBUG][       Thread-263226][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 17:56:29,689 [DEBUG][       Thread-263226][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 17:56:29,689 [DEBUG][       Thread-263226][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 17:56:29,689 [DEBUG][       Thread-263226][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 17:56:29,708 [ INFO][       Thread-263226][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 17:56:29,709 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 17:56:29,709 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 17:56:30,767 [DEBUG][       Thread-263226][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 17:56:30,768 [DEBUG][       Thread-263226][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 17:56:30,816 [DEBUG][       Thread-263226][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 17:56:30,816 [DEBUG][       Thread-263226][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 17:56:30,825 [DEBUG][       Thread-263226][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 17:56:30,835 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 17:56:30,835 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 17:56:30,844 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 17:56:30,853 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 17:56:30,854 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 17:56:30,854 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 17:56:30,862 [DEBUG][       Thread-263226][   transport.py][1871] : EOF in transport thread
2025-06-13 17:56:33,395 [DEBUG][Thread-263228 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:56:33,667 [DEBUG][Thread-263229 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:56:34,780 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:56:34,781 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:56:40,864 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 17:56:40,865 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 17:56:40,865 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 17:56:40,868 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 17:56:41,313 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 17, 56, 16), 15.9, 32.7, 0.0, 18.1, 11.58, 0, 0, 0, 2, 0, 0),)
2025-06-13 17:56:41,313 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 17:56:16
2025-06-13 17:56:41,391 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 17:56:41,397 [DEBUG][       Thread-263230][   transport.py][1871] : starting thread (client mode): 0x867ffb20
2025-06-13 17:56:41,397 [DEBUG][       Thread-263230][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 17:56:41,417 [DEBUG][       Thread-263230][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 17:56:41,417 [ INFO][       Thread-263230][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 17:56:41,420 [DEBUG][       Thread-263230][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 17:56:41,420 [DEBUG][       Thread-263230][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 17:56:41,420 [DEBUG][       Thread-263230][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 17:56:41,420 [DEBUG][       Thread-263230][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:56:41,420 [DEBUG][       Thread-263230][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:56:41,420 [DEBUG][       Thread-263230][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:56:41,420 [DEBUG][       Thread-263230][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:56:41,420 [DEBUG][       Thread-263230][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 17:56:41,420 [DEBUG][       Thread-263230][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 17:56:41,420 [DEBUG][       Thread-263230][   transport.py][1871] : client lang: <none>
2025-06-13 17:56:41,420 [DEBUG][       Thread-263230][   transport.py][1871] : server lang: <none>
2025-06-13 17:56:41,420 [DEBUG][       Thread-263230][   transport.py][1871] : kex follows: False
2025-06-13 17:56:41,420 [DEBUG][       Thread-263230][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 17:56:41,420 [DEBUG][       Thread-263230][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 17:56:41,420 [DEBUG][       Thread-263230][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 17:56:41,420 [DEBUG][       Thread-263230][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 17:56:41,420 [DEBUG][       Thread-263230][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 17:56:41,420 [DEBUG][       Thread-263230][   transport.py][1871] : Compression: none
2025-06-13 17:56:41,420 [DEBUG][       Thread-263230][   transport.py][1871] : === End of kex handshake ===
2025-06-13 17:56:41,436 [DEBUG][       Thread-263230][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 17:56:41,437 [DEBUG][       Thread-263230][   transport.py][1871] : Switch to new keys ...
2025-06-13 17:56:41,437 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 17:56:41,438 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 17:56:41,438 [DEBUG][       Thread-263230][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 17:56:41,439 [DEBUG][       Thread-263230][   transport.py][1871] : userauth is OK
2025-06-13 17:56:41,463 [ INFO][       Thread-263230][   transport.py][1871] : Authentication (password) successful!
2025-06-13 17:56:41,464 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 17:56:42,085 [DEBUG][       Thread-263230][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 17:56:42,085 [DEBUG][       Thread-263230][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 17:56:42,133 [DEBUG][       Thread-263230][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 17:56:42,133 [DEBUG][       Thread-263230][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 17:56:42,137 [DEBUG][       Thread-263230][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 17:56:42,151 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 17:56:42,151 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 17:56:42,153 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 17:56:42,155 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 17:56:42,161 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 17:56:42,163 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 17:56:42,163 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 17:56:42,164 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 17:56:42,164 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.664170 -999.00  +11.50  18.05     37   -2.40 1 1 1 1 1   595    0 13.89 -2.62 ----- 17.3 18.1 47.6 20.6 11.9 -29.4 11.7 -29.5 11.5 -28.4 11.8 -28.6
2025-06-13 17:56:42,164 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 17:56:42,164 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 17:56:42,164 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.664170
2025-06-13 17:56:42,165 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 17:56:42,165 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 17:56:42,165 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 17:56:42,165 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 17:56:42,165 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 17:56:42,166 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T17:56:16', tmtdew=15.9, humidity=32.7, cloud=0.0, wind=18.1, temperature=11.58, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T15:56:24.288', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 17:56:42,166 [DEBUG][       Thread-263230][   transport.py][1871] : EOF in transport thread
2025-06-13 17:56:42,249 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 17:56:42,261 [DEBUG][       Thread-263233][   transport.py][1871] : starting thread (client mode): 0x868c8520
2025-06-13 17:56:42,261 [DEBUG][       Thread-263233][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 17:56:42,276 [DEBUG][       Thread-263233][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 17:56:42,276 [ INFO][       Thread-263233][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 17:56:42,284 [DEBUG][       Thread-263233][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 17:56:42,284 [DEBUG][       Thread-263233][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 17:56:42,284 [DEBUG][       Thread-263233][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 17:56:42,284 [DEBUG][       Thread-263233][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:56:42,284 [DEBUG][       Thread-263233][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:56:42,285 [DEBUG][       Thread-263233][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:56:42,285 [DEBUG][       Thread-263233][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:56:42,285 [DEBUG][       Thread-263233][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 17:56:42,285 [DEBUG][       Thread-263233][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 17:56:42,285 [DEBUG][       Thread-263233][   transport.py][1871] : client lang: <none>
2025-06-13 17:56:42,285 [DEBUG][       Thread-263233][   transport.py][1871] : server lang: <none>
2025-06-13 17:56:42,285 [DEBUG][       Thread-263233][   transport.py][1871] : kex follows: False
2025-06-13 17:56:42,285 [DEBUG][       Thread-263233][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 17:56:42,285 [DEBUG][       Thread-263233][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 17:56:42,285 [DEBUG][       Thread-263233][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 17:56:42,285 [DEBUG][       Thread-263233][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 17:56:42,285 [DEBUG][       Thread-263233][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 17:56:42,285 [DEBUG][       Thread-263233][   transport.py][1871] : Compression: none
2025-06-13 17:56:42,285 [DEBUG][       Thread-263233][   transport.py][1871] : === End of kex handshake ===
2025-06-13 17:56:42,344 [DEBUG][       Thread-263233][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 17:56:42,345 [DEBUG][       Thread-263233][   transport.py][1871] : Switch to new keys ...
2025-06-13 17:56:42,346 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 17:56:42,346 [DEBUG][       Thread-263233][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 17:56:42,347 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 17:56:42,400 [DEBUG][       Thread-263233][   transport.py][1871] : userauth is OK
2025-06-13 17:56:42,400 [DEBUG][       Thread-263233][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 17:56:42,401 [DEBUG][       Thread-263233][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 17:56:42,401 [DEBUG][       Thread-263233][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 17:56:42,401 [DEBUG][       Thread-263233][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 17:56:42,419 [ INFO][       Thread-263233][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 17:56:42,420 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 17:56:42,420 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 17:56:42,439 [DEBUG][Thread-263235 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:56:43,429 [DEBUG][       Thread-263233][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 17:56:43,430 [DEBUG][       Thread-263233][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 17:56:43,481 [DEBUG][       Thread-263233][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 17:56:43,482 [DEBUG][       Thread-263233][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 17:56:43,492 [DEBUG][       Thread-263233][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 17:56:43,501 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 17:56:43,501 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 17:56:43,510 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 17:56:43,520 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 17:56:43,520 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 17:56:43,521 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 17:56:43,528 [DEBUG][       Thread-263233][   transport.py][1871] : EOF in transport thread
2025-06-13 17:56:51,457 [DEBUG][Thread-263236 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:56:53,528 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 17:56:53,528 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 17:56:53,528 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 17:56:53,528 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 17:56:54,001 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 17, 56, 48), 15.93, 32.61, 0.0, 17.06, 11.53, 0, 0, 0, 2, 0, 0),)
2025-06-13 17:56:54,001 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 17:56:48
2025-06-13 17:56:54,086 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 17:56:54,092 [DEBUG][       Thread-263237][   transport.py][1871] : starting thread (client mode): 0x863caa70
2025-06-13 17:56:54,092 [DEBUG][       Thread-263237][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 17:56:54,113 [DEBUG][       Thread-263237][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 17:56:54,113 [ INFO][       Thread-263237][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 17:56:54,117 [DEBUG][       Thread-263237][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 17:56:54,117 [DEBUG][       Thread-263237][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 17:56:54,117 [DEBUG][       Thread-263237][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 17:56:54,117 [DEBUG][       Thread-263237][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:56:54,117 [DEBUG][       Thread-263237][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:56:54,117 [DEBUG][       Thread-263237][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:56:54,117 [DEBUG][       Thread-263237][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:56:54,117 [DEBUG][       Thread-263237][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 17:56:54,117 [DEBUG][       Thread-263237][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 17:56:54,117 [DEBUG][       Thread-263237][   transport.py][1871] : client lang: <none>
2025-06-13 17:56:54,117 [DEBUG][       Thread-263237][   transport.py][1871] : server lang: <none>
2025-06-13 17:56:54,117 [DEBUG][       Thread-263237][   transport.py][1871] : kex follows: False
2025-06-13 17:56:54,117 [DEBUG][       Thread-263237][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 17:56:54,117 [DEBUG][       Thread-263237][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 17:56:54,117 [DEBUG][       Thread-263237][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 17:56:54,117 [DEBUG][       Thread-263237][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 17:56:54,117 [DEBUG][       Thread-263237][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 17:56:54,117 [DEBUG][       Thread-263237][   transport.py][1871] : Compression: none
2025-06-13 17:56:54,117 [DEBUG][       Thread-263237][   transport.py][1871] : === End of kex handshake ===
2025-06-13 17:56:54,132 [DEBUG][       Thread-263237][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 17:56:54,132 [DEBUG][       Thread-263237][   transport.py][1871] : Switch to new keys ...
2025-06-13 17:56:54,132 [DEBUG][       Thread-263237][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 17:56:54,132 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 17:56:54,133 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 17:56:54,133 [DEBUG][       Thread-263237][   transport.py][1871] : userauth is OK
2025-06-13 17:56:54,146 [ INFO][       Thread-263237][   transport.py][1871] : Authentication (password) successful!
2025-06-13 17:56:54,146 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 17:56:54,774 [DEBUG][       Thread-263237][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 17:56:54,774 [DEBUG][       Thread-263237][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 17:56:54,816 [DEBUG][       Thread-263237][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 17:56:54,816 [DEBUG][       Thread-263237][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 17:56:54,818 [DEBUG][       Thread-263237][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 17:56:54,833 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 17:56:54,833 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 17:56:54,834 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 17:56:54,835 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 17:56:54,838 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 17:56:54,839 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 17:56:54,839 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 17:56:54,839 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 17:56:54,839 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.664170 -999.00  +11.50  18.05     37   -2.40 1 1 1 1 1   595    0 13.89 -2.62 ----- 17.3 18.1 47.6 20.6 11.9 -29.4 11.7 -29.5 11.5 -28.4 11.8 -28.6
2025-06-13 17:56:54,839 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 17:56:54,839 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 17:56:54,839 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.664170
2025-06-13 17:56:54,840 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 17:56:54,840 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 17:56:54,840 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 17:56:54,840 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 17:56:54,840 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 17:56:54,840 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T17:56:48', tmtdew=15.93, humidity=32.61, cloud=0.0, wind=17.06, temperature=11.53, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T15:56:24.288', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 17:56:54,840 [DEBUG][       Thread-263237][   transport.py][1871] : EOF in transport thread
2025-06-13 17:56:54,912 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 17:56:54,922 [DEBUG][       Thread-263240][   transport.py][1871] : starting thread (client mode): 0x863a40a0
2025-06-13 17:56:54,922 [DEBUG][       Thread-263240][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 17:56:54,936 [DEBUG][       Thread-263240][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 17:56:54,936 [ INFO][       Thread-263240][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 17:56:54,945 [DEBUG][       Thread-263240][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 17:56:54,945 [DEBUG][       Thread-263240][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 17:56:54,945 [DEBUG][       Thread-263240][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 17:56:54,945 [DEBUG][       Thread-263240][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:56:54,945 [DEBUG][       Thread-263240][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:56:54,945 [DEBUG][       Thread-263240][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:56:54,945 [DEBUG][       Thread-263240][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:56:54,945 [DEBUG][       Thread-263240][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 17:56:54,945 [DEBUG][       Thread-263240][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 17:56:54,945 [DEBUG][       Thread-263240][   transport.py][1871] : client lang: <none>
2025-06-13 17:56:54,945 [DEBUG][       Thread-263240][   transport.py][1871] : server lang: <none>
2025-06-13 17:56:54,945 [DEBUG][       Thread-263240][   transport.py][1871] : kex follows: False
2025-06-13 17:56:54,945 [DEBUG][       Thread-263240][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 17:56:54,945 [DEBUG][       Thread-263240][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 17:56:54,945 [DEBUG][       Thread-263240][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 17:56:54,945 [DEBUG][       Thread-263240][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 17:56:54,945 [DEBUG][       Thread-263240][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 17:56:54,945 [DEBUG][       Thread-263240][   transport.py][1871] : Compression: none
2025-06-13 17:56:54,945 [DEBUG][       Thread-263240][   transport.py][1871] : === End of kex handshake ===
2025-06-13 17:56:55,003 [DEBUG][       Thread-263240][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 17:56:55,003 [DEBUG][       Thread-263240][   transport.py][1871] : Switch to new keys ...
2025-06-13 17:56:55,003 [DEBUG][       Thread-263240][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 17:56:55,003 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 17:56:55,003 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 17:56:55,060 [DEBUG][       Thread-263240][   transport.py][1871] : userauth is OK
2025-06-13 17:56:55,060 [DEBUG][       Thread-263240][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 17:56:55,060 [DEBUG][       Thread-263240][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 17:56:55,060 [DEBUG][       Thread-263240][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 17:56:55,060 [DEBUG][       Thread-263240][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 17:56:55,075 [ INFO][       Thread-263240][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 17:56:55,075 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 17:56:55,075 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 17:56:56,062 [DEBUG][       Thread-263240][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 17:56:56,062 [DEBUG][       Thread-263240][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 17:56:56,112 [DEBUG][       Thread-263240][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 17:56:56,112 [DEBUG][       Thread-263240][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 17:56:56,121 [DEBUG][       Thread-263240][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 17:56:56,131 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 17:56:56,131 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 17:56:56,140 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 17:56:56,150 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 17:56:56,150 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 17:56:56,150 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 17:56:56,158 [DEBUG][       Thread-263240][   transport.py][1871] : EOF in transport thread
2025-06-13 17:57:00,476 [DEBUG][Thread-263242 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:57:06,161 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 17:57:06,161 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 17:57:06,161 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 17:57:06,164 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 17:57:06,622 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 17, 56, 48), 15.93, 32.61, 0.0, 17.06, 11.53, 0, 0, 0, 2, 0, 0),)
2025-06-13 17:57:06,622 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 17:56:48
2025-06-13 17:57:06,704 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 17:57:06,708 [DEBUG][       Thread-263243][   transport.py][1871] : starting thread (client mode): 0x86351ea0
2025-06-13 17:57:06,708 [DEBUG][       Thread-263243][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 17:57:06,728 [DEBUG][       Thread-263243][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 17:57:06,728 [ INFO][       Thread-263243][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 17:57:06,732 [DEBUG][       Thread-263243][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 17:57:06,732 [DEBUG][       Thread-263243][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 17:57:06,732 [DEBUG][       Thread-263243][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 17:57:06,732 [DEBUG][       Thread-263243][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:57:06,732 [DEBUG][       Thread-263243][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:57:06,732 [DEBUG][       Thread-263243][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:57:06,732 [DEBUG][       Thread-263243][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:57:06,732 [DEBUG][       Thread-263243][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 17:57:06,732 [DEBUG][       Thread-263243][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 17:57:06,732 [DEBUG][       Thread-263243][   transport.py][1871] : client lang: <none>
2025-06-13 17:57:06,732 [DEBUG][       Thread-263243][   transport.py][1871] : server lang: <none>
2025-06-13 17:57:06,732 [DEBUG][       Thread-263243][   transport.py][1871] : kex follows: False
2025-06-13 17:57:06,732 [DEBUG][       Thread-263243][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 17:57:06,732 [DEBUG][       Thread-263243][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 17:57:06,732 [DEBUG][       Thread-263243][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 17:57:06,732 [DEBUG][       Thread-263243][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 17:57:06,732 [DEBUG][       Thread-263243][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 17:57:06,732 [DEBUG][       Thread-263243][   transport.py][1871] : Compression: none
2025-06-13 17:57:06,732 [DEBUG][       Thread-263243][   transport.py][1871] : === End of kex handshake ===
2025-06-13 17:57:06,747 [DEBUG][       Thread-263243][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 17:57:06,747 [DEBUG][       Thread-263243][   transport.py][1871] : Switch to new keys ...
2025-06-13 17:57:06,748 [DEBUG][       Thread-263243][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 17:57:06,748 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 17:57:06,748 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 17:57:06,749 [DEBUG][       Thread-263243][   transport.py][1871] : userauth is OK
2025-06-13 17:57:06,774 [ INFO][       Thread-263243][   transport.py][1871] : Authentication (password) successful!
2025-06-13 17:57:06,775 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 17:57:07,421 [DEBUG][       Thread-263243][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 17:57:07,421 [DEBUG][       Thread-263243][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 17:57:07,465 [DEBUG][       Thread-263243][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 17:57:07,465 [DEBUG][       Thread-263243][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 17:57:07,469 [DEBUG][       Thread-263243][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 17:57:07,481 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 17:57:07,481 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 17:57:07,483 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 17:57:07,485 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 17:57:07,491 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 17:57:07,494 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 17:57:07,494 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 17:57:07,494 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 17:57:07,495 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.664517 -999.00  +11.50  17.94     37   -2.40 1 1 1 1 1   576    0 13.85 -1.87 ----- 18.6 17.9 50.4 20.2 11.9 -29.5 11.7 -29.4 11.5 -28.6 11.8 -28.4
2025-06-13 17:57:07,495 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 17:57:07,495 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 17:57:07,495 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.664517
2025-06-13 17:57:07,495 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 17:57:07,496 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 17:57:07,496 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 17:57:07,496 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 17:57:07,496 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 17:57:07,496 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T17:56:48', tmtdew=15.93, humidity=32.61, cloud=0.0, wind=17.06, temperature=11.53, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T15:56:54.269', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 17:57:07,498 [DEBUG][       Thread-263243][   transport.py][1871] : EOF in transport thread
2025-06-13 17:57:07,580 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 17:57:07,591 [DEBUG][       Thread-263246][   transport.py][1871] : starting thread (client mode): 0x863c93c0
2025-06-13 17:57:07,591 [DEBUG][       Thread-263246][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 17:57:07,606 [DEBUG][       Thread-263246][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 17:57:07,606 [ INFO][       Thread-263246][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 17:57:07,613 [DEBUG][       Thread-263246][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 17:57:07,614 [DEBUG][       Thread-263246][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 17:57:07,614 [DEBUG][       Thread-263246][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 17:57:07,614 [DEBUG][       Thread-263246][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:57:07,614 [DEBUG][       Thread-263246][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:57:07,614 [DEBUG][       Thread-263246][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:57:07,614 [DEBUG][       Thread-263246][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:57:07,614 [DEBUG][       Thread-263246][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 17:57:07,614 [DEBUG][       Thread-263246][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 17:57:07,614 [DEBUG][       Thread-263246][   transport.py][1871] : client lang: <none>
2025-06-13 17:57:07,614 [DEBUG][       Thread-263246][   transport.py][1871] : server lang: <none>
2025-06-13 17:57:07,614 [DEBUG][       Thread-263246][   transport.py][1871] : kex follows: False
2025-06-13 17:57:07,614 [DEBUG][       Thread-263246][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 17:57:07,614 [DEBUG][       Thread-263246][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 17:57:07,614 [DEBUG][       Thread-263246][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 17:57:07,614 [DEBUG][       Thread-263246][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 17:57:07,614 [DEBUG][       Thread-263246][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 17:57:07,614 [DEBUG][       Thread-263246][   transport.py][1871] : Compression: none
2025-06-13 17:57:07,614 [DEBUG][       Thread-263246][   transport.py][1871] : === End of kex handshake ===
2025-06-13 17:57:07,672 [DEBUG][       Thread-263246][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 17:57:07,673 [DEBUG][       Thread-263246][   transport.py][1871] : Switch to new keys ...
2025-06-13 17:57:07,673 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 17:57:07,674 [DEBUG][       Thread-263246][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 17:57:07,674 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 17:57:07,728 [DEBUG][       Thread-263246][   transport.py][1871] : userauth is OK
2025-06-13 17:57:07,729 [DEBUG][       Thread-263246][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 17:57:07,729 [DEBUG][       Thread-263246][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 17:57:07,729 [DEBUG][       Thread-263246][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 17:57:07,729 [DEBUG][       Thread-263246][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 17:57:07,747 [ INFO][       Thread-263246][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 17:57:07,747 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 17:57:07,748 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 17:57:08,731 [DEBUG][       Thread-263246][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 17:57:08,731 [DEBUG][       Thread-263246][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 17:57:08,780 [DEBUG][       Thread-263246][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 17:57:08,780 [DEBUG][       Thread-263246][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 17:57:08,789 [DEBUG][       Thread-263246][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 17:57:08,798 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 17:57:08,798 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 17:57:08,807 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 17:57:08,817 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 17:57:08,817 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 17:57:08,817 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 17:57:08,826 [DEBUG][       Thread-263246][   transport.py][1871] : EOF in transport thread
2025-06-13 17:57:09,512 [DEBUG][Thread-263248 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:57:18,537 [DEBUG][Thread-263249 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:57:18,828 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 17:57:18,828 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 17:57:18,828 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 17:57:18,831 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 17:57:19,296 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 17, 56, 48), 15.93, 32.61, 0.0, 17.06, 11.53, 0, 0, 0, 2, 0, 0),)
2025-06-13 17:57:19,296 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 17:56:48
2025-06-13 17:57:19,378 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 17:57:19,384 [DEBUG][       Thread-263250][   transport.py][1871] : starting thread (client mode): 0x86390f40
2025-06-13 17:57:19,384 [DEBUG][       Thread-263250][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 17:57:19,405 [DEBUG][       Thread-263250][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 17:57:19,406 [ INFO][       Thread-263250][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 17:57:19,409 [DEBUG][       Thread-263250][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 17:57:19,409 [DEBUG][       Thread-263250][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 17:57:19,409 [DEBUG][       Thread-263250][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 17:57:19,409 [DEBUG][       Thread-263250][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:57:19,409 [DEBUG][       Thread-263250][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:57:19,409 [DEBUG][       Thread-263250][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:57:19,409 [DEBUG][       Thread-263250][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:57:19,409 [DEBUG][       Thread-263250][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 17:57:19,409 [DEBUG][       Thread-263250][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 17:57:19,409 [DEBUG][       Thread-263250][   transport.py][1871] : client lang: <none>
2025-06-13 17:57:19,409 [DEBUG][       Thread-263250][   transport.py][1871] : server lang: <none>
2025-06-13 17:57:19,409 [DEBUG][       Thread-263250][   transport.py][1871] : kex follows: False
2025-06-13 17:57:19,409 [DEBUG][       Thread-263250][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 17:57:19,409 [DEBUG][       Thread-263250][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 17:57:19,409 [DEBUG][       Thread-263250][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 17:57:19,410 [DEBUG][       Thread-263250][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 17:57:19,410 [DEBUG][       Thread-263250][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 17:57:19,410 [DEBUG][       Thread-263250][   transport.py][1871] : Compression: none
2025-06-13 17:57:19,410 [DEBUG][       Thread-263250][   transport.py][1871] : === End of kex handshake ===
2025-06-13 17:57:19,426 [DEBUG][       Thread-263250][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 17:57:19,427 [DEBUG][       Thread-263250][   transport.py][1871] : Switch to new keys ...
2025-06-13 17:57:19,427 [DEBUG][       Thread-263250][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 17:57:19,427 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 17:57:19,428 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 17:57:19,429 [DEBUG][       Thread-263250][   transport.py][1871] : userauth is OK
2025-06-13 17:57:19,442 [ INFO][       Thread-263250][   transport.py][1871] : Authentication (password) successful!
2025-06-13 17:57:19,442 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 17:57:20,083 [DEBUG][       Thread-263250][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 17:57:20,083 [DEBUG][       Thread-263250][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 17:57:20,124 [DEBUG][       Thread-263250][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 17:57:20,125 [DEBUG][       Thread-263250][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 17:57:20,127 [DEBUG][       Thread-263250][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 17:57:20,138 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 17:57:20,139 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 17:57:20,140 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 17:57:20,142 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 17:57:20,146 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 17:57:20,148 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 17:57:20,148 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 17:57:20,149 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 17:57:20,149 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.664517 -999.00  +11.50  17.94     37   -2.40 1 1 1 1 1   576    0 13.85 -1.87 ----- 18.6 17.9 50.4 20.2 11.9 -29.5 11.7 -29.4 11.5 -28.6 11.8 -28.4
2025-06-13 17:57:20,149 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 17:57:20,149 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 17:57:20,149 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.664517
2025-06-13 17:57:20,150 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 17:57:20,150 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 17:57:20,150 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 17:57:20,150 [DEBUG][       Thread-263250][   transport.py][1871] : EOF in transport thread
2025-06-13 17:57:20,151 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 17:57:20,151 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 17:57:20,152 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T17:56:48', tmtdew=15.93, humidity=32.61, cloud=0.0, wind=17.06, temperature=11.53, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T15:56:54.269', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 17:57:20,235 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 17:57:20,244 [DEBUG][       Thread-263253][   transport.py][1871] : starting thread (client mode): 0x86368760
2025-06-13 17:57:20,244 [DEBUG][       Thread-263253][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 17:57:20,260 [DEBUG][       Thread-263253][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 17:57:20,260 [ INFO][       Thread-263253][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 17:57:20,268 [DEBUG][       Thread-263253][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 17:57:20,268 [DEBUG][       Thread-263253][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 17:57:20,268 [DEBUG][       Thread-263253][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 17:57:20,268 [DEBUG][       Thread-263253][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:57:20,268 [DEBUG][       Thread-263253][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:57:20,268 [DEBUG][       Thread-263253][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:57:20,268 [DEBUG][       Thread-263253][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:57:20,268 [DEBUG][       Thread-263253][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 17:57:20,268 [DEBUG][       Thread-263253][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 17:57:20,268 [DEBUG][       Thread-263253][   transport.py][1871] : client lang: <none>
2025-06-13 17:57:20,268 [DEBUG][       Thread-263253][   transport.py][1871] : server lang: <none>
2025-06-13 17:57:20,268 [DEBUG][       Thread-263253][   transport.py][1871] : kex follows: False
2025-06-13 17:57:20,268 [DEBUG][       Thread-263253][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 17:57:20,268 [DEBUG][       Thread-263253][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 17:57:20,268 [DEBUG][       Thread-263253][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 17:57:20,268 [DEBUG][       Thread-263253][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 17:57:20,268 [DEBUG][       Thread-263253][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 17:57:20,268 [DEBUG][       Thread-263253][   transport.py][1871] : Compression: none
2025-06-13 17:57:20,268 [DEBUG][       Thread-263253][   transport.py][1871] : === End of kex handshake ===
2025-06-13 17:57:20,332 [DEBUG][       Thread-263253][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 17:57:20,333 [DEBUG][       Thread-263253][   transport.py][1871] : Switch to new keys ...
2025-06-13 17:57:20,333 [DEBUG][       Thread-263253][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 17:57:20,333 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 17:57:20,334 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 17:57:20,396 [DEBUG][       Thread-263253][   transport.py][1871] : userauth is OK
2025-06-13 17:57:20,397 [DEBUG][       Thread-263253][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 17:57:20,397 [DEBUG][       Thread-263253][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 17:57:20,397 [DEBUG][       Thread-263253][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 17:57:20,397 [DEBUG][       Thread-263253][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 17:57:20,411 [ INFO][       Thread-263253][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 17:57:20,411 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 17:57:20,411 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 17:57:21,411 [DEBUG][       Thread-263253][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 17:57:21,411 [DEBUG][       Thread-263253][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 17:57:21,459 [DEBUG][       Thread-263253][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 17:57:21,459 [DEBUG][       Thread-263253][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 17:57:21,468 [DEBUG][       Thread-263253][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 17:57:21,480 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 17:57:21,480 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 17:57:21,488 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 17:57:21,496 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 17:57:21,496 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 17:57:21,496 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 17:57:21,504 [DEBUG][       Thread-263253][   transport.py][1871] : EOF in transport thread
2025-06-13 17:57:25,780 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:57:25,781 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:57:27,556 [DEBUG][Thread-263255 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:57:28,222 [DEBUG][Thread-263256 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:57:31,507 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 17:57:31,507 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 17:57:31,507 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 17:57:31,507 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 17:57:31,965 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 17, 57, 20), 16.01, 32.29, 0.0, 14.54, 11.63, 0, 0, 0, 2, 0, 0),)
2025-06-13 17:57:31,965 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 17:57:20
2025-06-13 17:57:32,052 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 17:57:32,056 [DEBUG][       Thread-263257][   transport.py][1871] : starting thread (client mode): 0x86350550
2025-06-13 17:57:32,056 [DEBUG][       Thread-263257][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 17:57:32,077 [DEBUG][       Thread-263257][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 17:57:32,078 [ INFO][       Thread-263257][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 17:57:32,081 [DEBUG][       Thread-263257][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 17:57:32,081 [DEBUG][       Thread-263257][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 17:57:32,081 [DEBUG][       Thread-263257][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 17:57:32,081 [DEBUG][       Thread-263257][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:57:32,081 [DEBUG][       Thread-263257][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:57:32,081 [DEBUG][       Thread-263257][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:57:32,081 [DEBUG][       Thread-263257][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:57:32,081 [DEBUG][       Thread-263257][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 17:57:32,081 [DEBUG][       Thread-263257][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 17:57:32,081 [DEBUG][       Thread-263257][   transport.py][1871] : client lang: <none>
2025-06-13 17:57:32,081 [DEBUG][       Thread-263257][   transport.py][1871] : server lang: <none>
2025-06-13 17:57:32,081 [DEBUG][       Thread-263257][   transport.py][1871] : kex follows: False
2025-06-13 17:57:32,081 [DEBUG][       Thread-263257][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 17:57:32,081 [DEBUG][       Thread-263257][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 17:57:32,081 [DEBUG][       Thread-263257][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 17:57:32,081 [DEBUG][       Thread-263257][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 17:57:32,081 [DEBUG][       Thread-263257][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 17:57:32,081 [DEBUG][       Thread-263257][   transport.py][1871] : Compression: none
2025-06-13 17:57:32,081 [DEBUG][       Thread-263257][   transport.py][1871] : === End of kex handshake ===
2025-06-13 17:57:32,096 [DEBUG][       Thread-263257][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 17:57:32,096 [DEBUG][       Thread-263257][   transport.py][1871] : Switch to new keys ...
2025-06-13 17:57:32,096 [DEBUG][       Thread-263257][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 17:57:32,096 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 17:57:32,096 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 17:57:32,097 [DEBUG][       Thread-263257][   transport.py][1871] : userauth is OK
2025-06-13 17:57:32,121 [ INFO][       Thread-263257][   transport.py][1871] : Authentication (password) successful!
2025-06-13 17:57:32,121 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 17:57:32,742 [DEBUG][       Thread-263257][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 17:57:32,742 [DEBUG][       Thread-263257][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 17:57:32,785 [DEBUG][       Thread-263257][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 17:57:32,785 [DEBUG][       Thread-263257][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 17:57:32,787 [DEBUG][       Thread-263257][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 17:57:32,798 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 17:57:32,798 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 17:57:32,799 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 17:57:32,800 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 17:57:32,803 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 17:57:32,804 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 17:57:32,804 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 17:57:32,805 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 17:57:32,805 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.664517 -999.00  +11.50  17.94     37   -2.40 1 1 1 1 1   576    0 13.85 -1.87 ----- 18.6 17.9 50.4 20.2 11.9 -29.5 11.7 -29.4 11.5 -28.6 11.8 -28.4
2025-06-13 17:57:32,805 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 17:57:32,805 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 17:57:32,805 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.664517
2025-06-13 17:57:32,805 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 17:57:32,805 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 17:57:32,805 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 17:57:32,805 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 17:57:32,805 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 17:57:32,805 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T17:57:20', tmtdew=16.01, humidity=32.29, cloud=0.0, wind=14.54, temperature=11.63, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T15:56:54.269', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 17:57:32,805 [DEBUG][       Thread-263257][   transport.py][1871] : EOF in transport thread
2025-06-13 17:57:32,880 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 17:57:32,891 [DEBUG][       Thread-263260][   transport.py][1871] : starting thread (client mode): 0x863ee890
2025-06-13 17:57:32,891 [DEBUG][       Thread-263260][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 17:57:32,906 [DEBUG][       Thread-263260][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 17:57:32,906 [ INFO][       Thread-263260][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 17:57:32,913 [DEBUG][       Thread-263260][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 17:57:32,913 [DEBUG][       Thread-263260][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 17:57:32,913 [DEBUG][       Thread-263260][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 17:57:32,914 [DEBUG][       Thread-263260][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:57:32,914 [DEBUG][       Thread-263260][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:57:32,914 [DEBUG][       Thread-263260][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:57:32,914 [DEBUG][       Thread-263260][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:57:32,914 [DEBUG][       Thread-263260][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 17:57:32,914 [DEBUG][       Thread-263260][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 17:57:32,914 [DEBUG][       Thread-263260][   transport.py][1871] : client lang: <none>
2025-06-13 17:57:32,914 [DEBUG][       Thread-263260][   transport.py][1871] : server lang: <none>
2025-06-13 17:57:32,914 [DEBUG][       Thread-263260][   transport.py][1871] : kex follows: False
2025-06-13 17:57:32,914 [DEBUG][       Thread-263260][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 17:57:32,914 [DEBUG][       Thread-263260][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 17:57:32,914 [DEBUG][       Thread-263260][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 17:57:32,914 [DEBUG][       Thread-263260][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 17:57:32,914 [DEBUG][       Thread-263260][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 17:57:32,914 [DEBUG][       Thread-263260][   transport.py][1871] : Compression: none
2025-06-13 17:57:32,914 [DEBUG][       Thread-263260][   transport.py][1871] : === End of kex handshake ===
2025-06-13 17:57:32,971 [DEBUG][       Thread-263260][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 17:57:32,971 [DEBUG][       Thread-263260][   transport.py][1871] : Switch to new keys ...
2025-06-13 17:57:32,971 [DEBUG][       Thread-263260][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 17:57:32,971 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 17:57:32,971 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 17:57:33,027 [DEBUG][       Thread-263260][   transport.py][1871] : userauth is OK
2025-06-13 17:57:33,027 [DEBUG][       Thread-263260][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 17:57:33,027 [DEBUG][       Thread-263260][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 17:57:33,027 [DEBUG][       Thread-263260][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 17:57:33,027 [DEBUG][       Thread-263260][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 17:57:33,041 [ INFO][       Thread-263260][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 17:57:33,041 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 17:57:33,041 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 17:57:34,022 [DEBUG][       Thread-263260][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 17:57:34,023 [DEBUG][       Thread-263260][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 17:57:34,077 [DEBUG][       Thread-263260][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 17:57:34,077 [DEBUG][       Thread-263260][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 17:57:34,085 [DEBUG][       Thread-263260][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 17:57:34,093 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 17:57:34,093 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 17:57:34,101 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 17:57:34,109 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 17:57:34,109 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 17:57:34,109 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 17:57:34,117 [DEBUG][       Thread-263260][   transport.py][1871] : EOF in transport thread
2025-06-13 17:57:34,820 [DEBUG][Thread-263262 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:57:35,914 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:57:35,915 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:57:36,575 [DEBUG][Thread-263263 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:57:44,119 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 17:57:44,120 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 17:57:44,120 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 17:57:44,123 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 17:57:44,581 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 17, 57, 20), 16.01, 32.29, 0.0, 14.54, 11.63, 0, 0, 0, 2, 0, 0),)
2025-06-13 17:57:44,581 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 17:57:20
2025-06-13 17:57:44,663 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 17:57:44,669 [DEBUG][       Thread-263264][   transport.py][1871] : starting thread (client mode): 0x86369780
2025-06-13 17:57:44,669 [DEBUG][       Thread-263264][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 17:57:44,690 [DEBUG][       Thread-263264][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 17:57:44,690 [ INFO][       Thread-263264][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 17:57:44,694 [DEBUG][       Thread-263264][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 17:57:44,694 [DEBUG][       Thread-263264][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 17:57:44,694 [DEBUG][       Thread-263264][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 17:57:44,694 [DEBUG][       Thread-263264][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:57:44,694 [DEBUG][       Thread-263264][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:57:44,694 [DEBUG][       Thread-263264][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:57:44,694 [DEBUG][       Thread-263264][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:57:44,694 [DEBUG][       Thread-263264][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 17:57:44,694 [DEBUG][       Thread-263264][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 17:57:44,694 [DEBUG][       Thread-263264][   transport.py][1871] : client lang: <none>
2025-06-13 17:57:44,694 [DEBUG][       Thread-263264][   transport.py][1871] : server lang: <none>
2025-06-13 17:57:44,694 [DEBUG][       Thread-263264][   transport.py][1871] : kex follows: False
2025-06-13 17:57:44,694 [DEBUG][       Thread-263264][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 17:57:44,694 [DEBUG][       Thread-263264][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 17:57:44,694 [DEBUG][       Thread-263264][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 17:57:44,694 [DEBUG][       Thread-263264][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 17:57:44,694 [DEBUG][       Thread-263264][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 17:57:44,694 [DEBUG][       Thread-263264][   transport.py][1871] : Compression: none
2025-06-13 17:57:44,694 [DEBUG][       Thread-263264][   transport.py][1871] : === End of kex handshake ===
2025-06-13 17:57:44,712 [DEBUG][       Thread-263264][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 17:57:44,712 [DEBUG][       Thread-263264][   transport.py][1871] : Switch to new keys ...
2025-06-13 17:57:44,713 [DEBUG][       Thread-263264][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 17:57:44,713 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 17:57:44,713 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 17:57:44,714 [DEBUG][       Thread-263264][   transport.py][1871] : userauth is OK
2025-06-13 17:57:44,740 [ INFO][       Thread-263264][   transport.py][1871] : Authentication (password) successful!
2025-06-13 17:57:44,741 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 17:57:45,344 [DEBUG][       Thread-263264][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 17:57:45,344 [DEBUG][       Thread-263264][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 17:57:45,385 [DEBUG][       Thread-263264][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 17:57:45,385 [DEBUG][       Thread-263264][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 17:57:45,388 [DEBUG][       Thread-263264][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 17:57:45,400 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 17:57:45,400 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 17:57:45,402 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 17:57:45,404 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 17:57:45,410 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 17:57:45,412 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 17:57:45,412 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 17:57:45,412 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 17:57:45,413 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.664864 -999.00  +11.50  17.51     37   -2.50 1 1 1 1 1   556    0 13.87 -1.19 ----- 16.7 17.5 50.4 21.4 11.8 -29.3 11.7 -29.2 11.4 -28.3 11.8 -28.4
2025-06-13 17:57:45,413 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 17:57:45,413 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 17:57:45,413 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.664864
2025-06-13 17:57:45,413 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 17:57:45,414 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 17:57:45,414 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 17:57:45,414 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 17:57:45,414 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 17:57:45,414 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T17:57:20', tmtdew=16.01, humidity=32.29, cloud=0.0, wind=14.54, temperature=11.63, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T15:57:24.250', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 17:57:45,414 [DEBUG][       Thread-263264][   transport.py][1871] : EOF in transport thread
2025-06-13 17:57:45,494 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 17:57:45,506 [DEBUG][       Thread-263267][   transport.py][1871] : starting thread (client mode): 0x867b54b0
2025-06-13 17:57:45,506 [DEBUG][       Thread-263267][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 17:57:45,522 [DEBUG][       Thread-263267][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 17:57:45,522 [ INFO][       Thread-263267][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 17:57:45,530 [DEBUG][       Thread-263267][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 17:57:45,530 [DEBUG][       Thread-263267][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 17:57:45,530 [DEBUG][       Thread-263267][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 17:57:45,530 [DEBUG][       Thread-263267][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:57:45,530 [DEBUG][       Thread-263267][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:57:45,530 [DEBUG][       Thread-263267][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:57:45,530 [DEBUG][       Thread-263267][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:57:45,530 [DEBUG][       Thread-263267][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 17:57:45,530 [DEBUG][       Thread-263267][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 17:57:45,530 [DEBUG][       Thread-263267][   transport.py][1871] : client lang: <none>
2025-06-13 17:57:45,530 [DEBUG][       Thread-263267][   transport.py][1871] : server lang: <none>
2025-06-13 17:57:45,530 [DEBUG][       Thread-263267][   transport.py][1871] : kex follows: False
2025-06-13 17:57:45,530 [DEBUG][       Thread-263267][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 17:57:45,530 [DEBUG][       Thread-263267][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 17:57:45,531 [DEBUG][       Thread-263267][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 17:57:45,531 [DEBUG][       Thread-263267][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 17:57:45,531 [DEBUG][       Thread-263267][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 17:57:45,531 [DEBUG][       Thread-263267][   transport.py][1871] : Compression: none
2025-06-13 17:57:45,531 [DEBUG][       Thread-263267][   transport.py][1871] : === End of kex handshake ===
2025-06-13 17:57:45,592 [DEBUG][       Thread-263267][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 17:57:45,592 [DEBUG][       Thread-263267][   transport.py][1871] : Switch to new keys ...
2025-06-13 17:57:45,593 [DEBUG][       Thread-263267][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 17:57:45,593 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 17:57:45,594 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 17:57:45,623 [DEBUG][Thread-263269 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:57:45,650 [DEBUG][       Thread-263267][   transport.py][1871] : userauth is OK
2025-06-13 17:57:45,650 [DEBUG][       Thread-263267][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 17:57:45,650 [DEBUG][       Thread-263267][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 17:57:45,650 [DEBUG][       Thread-263267][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 17:57:45,651 [DEBUG][       Thread-263267][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 17:57:45,670 [ INFO][       Thread-263267][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 17:57:45,670 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 17:57:45,671 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 17:57:46,687 [DEBUG][       Thread-263267][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 17:57:46,688 [DEBUG][       Thread-263267][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 17:57:46,737 [DEBUG][       Thread-263267][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 17:57:46,737 [DEBUG][       Thread-263267][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 17:57:46,746 [DEBUG][       Thread-263267][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 17:57:46,755 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 17:57:46,755 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 17:57:46,764 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 17:57:46,773 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 17:57:46,774 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 17:57:46,774 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 17:57:46,782 [DEBUG][       Thread-263267][   transport.py][1871] : EOF in transport thread
2025-06-13 17:57:54,642 [DEBUG][Thread-263270 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:57:56,784 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 17:57:56,785 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 17:57:56,785 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 17:57:56,788 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 17:57:57,263 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 17, 57, 52), 16.0, 32.3, 0.0, 15.95, 11.62, 0, 0, 0, 2, 0, 0),)
2025-06-13 17:57:57,263 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 17:57:52
2025-06-13 17:57:57,345 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 17:57:57,349 [DEBUG][       Thread-263271][   transport.py][1871] : starting thread (client mode): 0x8636abf0
2025-06-13 17:57:57,349 [DEBUG][       Thread-263271][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 17:57:57,365 [DEBUG][       Thread-263271][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 17:57:57,365 [ INFO][       Thread-263271][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 17:57:57,369 [DEBUG][       Thread-263271][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 17:57:57,369 [DEBUG][       Thread-263271][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 17:57:57,369 [DEBUG][       Thread-263271][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 17:57:57,369 [DEBUG][       Thread-263271][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:57:57,369 [DEBUG][       Thread-263271][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:57:57,369 [DEBUG][       Thread-263271][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:57:57,369 [DEBUG][       Thread-263271][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:57:57,369 [DEBUG][       Thread-263271][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 17:57:57,369 [DEBUG][       Thread-263271][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 17:57:57,369 [DEBUG][       Thread-263271][   transport.py][1871] : client lang: <none>
2025-06-13 17:57:57,369 [DEBUG][       Thread-263271][   transport.py][1871] : server lang: <none>
2025-06-13 17:57:57,369 [DEBUG][       Thread-263271][   transport.py][1871] : kex follows: False
2025-06-13 17:57:57,369 [DEBUG][       Thread-263271][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 17:57:57,369 [DEBUG][       Thread-263271][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 17:57:57,369 [DEBUG][       Thread-263271][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 17:57:57,369 [DEBUG][       Thread-263271][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 17:57:57,369 [DEBUG][       Thread-263271][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 17:57:57,369 [DEBUG][       Thread-263271][   transport.py][1871] : Compression: none
2025-06-13 17:57:57,369 [DEBUG][       Thread-263271][   transport.py][1871] : === End of kex handshake ===
2025-06-13 17:57:57,388 [DEBUG][       Thread-263271][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 17:57:57,388 [DEBUG][       Thread-263271][   transport.py][1871] : Switch to new keys ...
2025-06-13 17:57:57,389 [DEBUG][       Thread-263271][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 17:57:57,389 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 17:57:57,389 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 17:57:57,390 [DEBUG][       Thread-263271][   transport.py][1871] : userauth is OK
2025-06-13 17:57:57,403 [ INFO][       Thread-263271][   transport.py][1871] : Authentication (password) successful!
2025-06-13 17:57:57,404 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 17:57:58,054 [DEBUG][       Thread-263271][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 17:57:58,054 [DEBUG][       Thread-263271][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 17:57:58,097 [DEBUG][       Thread-263271][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 17:57:58,097 [DEBUG][       Thread-263271][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 17:57:58,100 [DEBUG][       Thread-263271][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 17:57:58,113 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 17:57:58,113 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 17:57:58,115 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 17:57:58,117 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 17:57:58,123 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 17:57:58,125 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 17:57:58,126 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 17:57:58,126 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 17:57:58,127 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.664864 -999.00  +11.50  17.51     37   -2.50 1 1 1 1 1   556    0 13.87 -1.19 ----- 16.7 17.5 50.4 21.4 11.8 -29.3 11.7 -29.2 11.4 -28.3 11.8 -28.4
2025-06-13 17:57:58,127 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 17:57:58,127 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 17:57:58,127 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.664864
2025-06-13 17:57:58,127 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 17:57:58,128 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 17:57:58,128 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 17:57:58,128 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 17:57:58,128 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 17:57:58,128 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T17:57:52', tmtdew=16.0, humidity=32.3, cloud=0.0, wind=15.95, temperature=11.62, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T15:57:24.250', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 17:57:58,128 [DEBUG][       Thread-263271][   transport.py][1871] : EOF in transport thread
2025-06-13 17:57:58,211 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 17:57:58,223 [DEBUG][       Thread-263274][   transport.py][1871] : starting thread (client mode): 0x863923e0
2025-06-13 17:57:58,223 [DEBUG][       Thread-263274][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 17:57:58,242 [DEBUG][       Thread-263274][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 17:57:58,242 [ INFO][       Thread-263274][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 17:57:58,250 [DEBUG][       Thread-263274][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 17:57:58,251 [DEBUG][       Thread-263274][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 17:57:58,251 [DEBUG][       Thread-263274][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 17:57:58,251 [DEBUG][       Thread-263274][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:57:58,251 [DEBUG][       Thread-263274][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:57:58,251 [DEBUG][       Thread-263274][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:57:58,251 [DEBUG][       Thread-263274][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:57:58,251 [DEBUG][       Thread-263274][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 17:57:58,251 [DEBUG][       Thread-263274][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 17:57:58,251 [DEBUG][       Thread-263274][   transport.py][1871] : client lang: <none>
2025-06-13 17:57:58,251 [DEBUG][       Thread-263274][   transport.py][1871] : server lang: <none>
2025-06-13 17:57:58,251 [DEBUG][       Thread-263274][   transport.py][1871] : kex follows: False
2025-06-13 17:57:58,251 [DEBUG][       Thread-263274][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 17:57:58,251 [DEBUG][       Thread-263274][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 17:57:58,251 [DEBUG][       Thread-263274][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 17:57:58,251 [DEBUG][       Thread-263274][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 17:57:58,252 [DEBUG][       Thread-263274][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 17:57:58,252 [DEBUG][       Thread-263274][   transport.py][1871] : Compression: none
2025-06-13 17:57:58,252 [DEBUG][       Thread-263274][   transport.py][1871] : === End of kex handshake ===
2025-06-13 17:57:58,310 [DEBUG][       Thread-263274][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 17:57:58,311 [DEBUG][       Thread-263274][   transport.py][1871] : Switch to new keys ...
2025-06-13 17:57:58,312 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 17:57:58,312 [DEBUG][       Thread-263274][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 17:57:58,313 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 17:57:58,367 [DEBUG][       Thread-263274][   transport.py][1871] : userauth is OK
2025-06-13 17:57:58,367 [DEBUG][       Thread-263274][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 17:57:58,368 [DEBUG][       Thread-263274][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 17:57:58,368 [DEBUG][       Thread-263274][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 17:57:58,368 [DEBUG][       Thread-263274][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 17:57:58,388 [ INFO][       Thread-263274][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 17:57:58,388 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 17:57:58,389 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 17:57:59,402 [DEBUG][       Thread-263274][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 17:57:59,402 [DEBUG][       Thread-263274][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 17:57:59,452 [DEBUG][       Thread-263274][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 17:57:59,452 [DEBUG][       Thread-263274][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 17:57:59,462 [DEBUG][       Thread-263274][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 17:57:59,471 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 17:57:59,471 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 17:57:59,480 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 17:57:59,493 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 17:57:59,493 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 17:57:59,494 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 17:57:59,502 [DEBUG][       Thread-263274][   transport.py][1871] : EOF in transport thread
2025-06-13 17:58:03,663 [DEBUG][Thread-263276 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:58:09,504 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 17:58:09,504 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 17:58:09,505 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 17:58:09,505 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 17:58:09,992 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 17, 57, 52), 16.0, 32.3, 0.0, 15.95, 11.62, 0, 0, 0, 2, 0, 0),)
2025-06-13 17:58:09,992 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 17:57:52
2025-06-13 17:58:10,076 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 17:58:10,082 [DEBUG][       Thread-263277][   transport.py][1871] : starting thread (client mode): 0x867fde40
2025-06-13 17:58:10,082 [DEBUG][       Thread-263277][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 17:58:10,102 [DEBUG][       Thread-263277][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 17:58:10,102 [ INFO][       Thread-263277][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 17:58:10,104 [DEBUG][       Thread-263277][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 17:58:10,104 [DEBUG][       Thread-263277][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 17:58:10,104 [DEBUG][       Thread-263277][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 17:58:10,104 [DEBUG][       Thread-263277][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:58:10,104 [DEBUG][       Thread-263277][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:58:10,104 [DEBUG][       Thread-263277][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:58:10,104 [DEBUG][       Thread-263277][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:58:10,104 [DEBUG][       Thread-263277][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 17:58:10,104 [DEBUG][       Thread-263277][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 17:58:10,104 [DEBUG][       Thread-263277][   transport.py][1871] : client lang: <none>
2025-06-13 17:58:10,104 [DEBUG][       Thread-263277][   transport.py][1871] : server lang: <none>
2025-06-13 17:58:10,104 [DEBUG][       Thread-263277][   transport.py][1871] : kex follows: False
2025-06-13 17:58:10,104 [DEBUG][       Thread-263277][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 17:58:10,104 [DEBUG][       Thread-263277][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 17:58:10,104 [DEBUG][       Thread-263277][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 17:58:10,104 [DEBUG][       Thread-263277][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 17:58:10,104 [DEBUG][       Thread-263277][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 17:58:10,104 [DEBUG][       Thread-263277][   transport.py][1871] : Compression: none
2025-06-13 17:58:10,104 [DEBUG][       Thread-263277][   transport.py][1871] : === End of kex handshake ===
2025-06-13 17:58:10,113 [DEBUG][       Thread-263277][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 17:58:10,113 [DEBUG][       Thread-263277][   transport.py][1871] : Switch to new keys ...
2025-06-13 17:58:10,113 [DEBUG][       Thread-263277][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 17:58:10,113 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 17:58:10,113 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 17:58:10,114 [DEBUG][       Thread-263277][   transport.py][1871] : userauth is OK
2025-06-13 17:58:10,126 [ INFO][       Thread-263277][   transport.py][1871] : Authentication (password) successful!
2025-06-13 17:58:10,126 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 17:58:10,705 [DEBUG][       Thread-263277][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 17:58:10,705 [DEBUG][       Thread-263277][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 17:58:10,748 [DEBUG][       Thread-263277][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 17:58:10,748 [DEBUG][       Thread-263277][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 17:58:10,751 [DEBUG][       Thread-263277][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 17:58:10,763 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 17:58:10,763 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 17:58:10,764 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 17:58:10,765 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 17:58:10,767 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 17:58:10,768 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 17:58:10,768 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 17:58:10,768 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 17:58:10,768 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.665211 -999.00  +11.50  17.56     37   -2.50 1 1 1 1 1   536    0 13.96 -0.14 ----- 18.4 17.6 50.8 22.6 11.8 -29.3 11.7 -29.4 11.4 -28.4 11.8 -28.3
2025-06-13 17:58:10,768 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 17:58:10,768 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 17:58:10,768 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.665211
2025-06-13 17:58:10,769 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 17:58:10,769 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 17:58:10,769 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 17:58:10,769 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 17:58:10,769 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 17:58:10,769 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T17:57:52', tmtdew=16.0, humidity=32.3, cloud=0.0, wind=15.95, temperature=11.62, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T15:57:54.230', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 17:58:10,769 [DEBUG][       Thread-263277][   transport.py][1871] : EOF in transport thread
2025-06-13 17:58:10,841 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 17:58:10,851 [DEBUG][       Thread-263280][   transport.py][1871] : starting thread (client mode): 0x86352350
2025-06-13 17:58:10,852 [DEBUG][       Thread-263280][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 17:58:10,866 [DEBUG][       Thread-263280][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 17:58:10,866 [ INFO][       Thread-263280][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 17:58:10,874 [DEBUG][       Thread-263280][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 17:58:10,874 [DEBUG][       Thread-263280][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 17:58:10,874 [DEBUG][       Thread-263280][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 17:58:10,874 [DEBUG][       Thread-263280][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:58:10,874 [DEBUG][       Thread-263280][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:58:10,874 [DEBUG][       Thread-263280][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:58:10,874 [DEBUG][       Thread-263280][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:58:10,874 [DEBUG][       Thread-263280][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 17:58:10,874 [DEBUG][       Thread-263280][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 17:58:10,874 [DEBUG][       Thread-263280][   transport.py][1871] : client lang: <none>
2025-06-13 17:58:10,874 [DEBUG][       Thread-263280][   transport.py][1871] : server lang: <none>
2025-06-13 17:58:10,874 [DEBUG][       Thread-263280][   transport.py][1871] : kex follows: False
2025-06-13 17:58:10,874 [DEBUG][       Thread-263280][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 17:58:10,874 [DEBUG][       Thread-263280][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 17:58:10,874 [DEBUG][       Thread-263280][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 17:58:10,874 [DEBUG][       Thread-263280][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 17:58:10,874 [DEBUG][       Thread-263280][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 17:58:10,874 [DEBUG][       Thread-263280][   transport.py][1871] : Compression: none
2025-06-13 17:58:10,874 [DEBUG][       Thread-263280][   transport.py][1871] : === End of kex handshake ===
2025-06-13 17:58:10,929 [DEBUG][       Thread-263280][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 17:58:10,929 [DEBUG][       Thread-263280][   transport.py][1871] : Switch to new keys ...
2025-06-13 17:58:10,929 [DEBUG][       Thread-263280][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 17:58:10,929 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 17:58:10,930 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 17:58:10,986 [DEBUG][       Thread-263280][   transport.py][1871] : userauth is OK
2025-06-13 17:58:10,986 [DEBUG][       Thread-263280][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 17:58:10,986 [DEBUG][       Thread-263280][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 17:58:10,986 [DEBUG][       Thread-263280][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 17:58:10,986 [DEBUG][       Thread-263280][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 17:58:11,000 [ INFO][       Thread-263280][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 17:58:11,001 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 17:58:11,001 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 17:58:11,995 [DEBUG][       Thread-263280][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 17:58:11,995 [DEBUG][       Thread-263280][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 17:58:12,048 [DEBUG][       Thread-263280][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 17:58:12,048 [DEBUG][       Thread-263280][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 17:58:12,058 [DEBUG][       Thread-263280][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 17:58:12,067 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 17:58:12,067 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 17:58:12,076 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 17:58:12,086 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 17:58:12,086 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 17:58:12,086 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 17:58:12,094 [DEBUG][       Thread-263280][   transport.py][1871] : EOF in transport thread
2025-06-13 17:58:12,705 [DEBUG][Thread-263282 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:58:21,726 [DEBUG][Thread-263283 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:58:22,096 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 17:58:22,097 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 17:58:22,097 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 17:58:22,100 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 17:58:22,574 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 17, 57, 52), 16.0, 32.3, 0.0, 15.95, 11.62, 0, 0, 0, 2, 0, 0),)
2025-06-13 17:58:22,574 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 17:57:52
2025-06-13 17:58:22,656 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 17:58:22,660 [DEBUG][       Thread-263284][   transport.py][1871] : starting thread (client mode): 0x86368850
2025-06-13 17:58:22,661 [DEBUG][       Thread-263284][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 17:58:22,680 [DEBUG][       Thread-263284][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 17:58:22,680 [ INFO][       Thread-263284][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 17:58:22,683 [DEBUG][       Thread-263284][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 17:58:22,683 [DEBUG][       Thread-263284][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 17:58:22,684 [DEBUG][       Thread-263284][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 17:58:22,684 [DEBUG][       Thread-263284][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:58:22,684 [DEBUG][       Thread-263284][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:58:22,684 [DEBUG][       Thread-263284][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:58:22,684 [DEBUG][       Thread-263284][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:58:22,684 [DEBUG][       Thread-263284][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 17:58:22,684 [DEBUG][       Thread-263284][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 17:58:22,684 [DEBUG][       Thread-263284][   transport.py][1871] : client lang: <none>
2025-06-13 17:58:22,684 [DEBUG][       Thread-263284][   transport.py][1871] : server lang: <none>
2025-06-13 17:58:22,684 [DEBUG][       Thread-263284][   transport.py][1871] : kex follows: False
2025-06-13 17:58:22,684 [DEBUG][       Thread-263284][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 17:58:22,684 [DEBUG][       Thread-263284][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 17:58:22,684 [DEBUG][       Thread-263284][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 17:58:22,684 [DEBUG][       Thread-263284][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 17:58:22,684 [DEBUG][       Thread-263284][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 17:58:22,684 [DEBUG][       Thread-263284][   transport.py][1871] : Compression: none
2025-06-13 17:58:22,684 [DEBUG][       Thread-263284][   transport.py][1871] : === End of kex handshake ===
2025-06-13 17:58:22,691 [DEBUG][       Thread-263284][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 17:58:22,692 [DEBUG][       Thread-263284][   transport.py][1871] : Switch to new keys ...
2025-06-13 17:58:22,692 [DEBUG][       Thread-263284][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 17:58:22,692 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 17:58:22,692 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 17:58:22,693 [DEBUG][       Thread-263284][   transport.py][1871] : userauth is OK
2025-06-13 17:58:22,706 [ INFO][       Thread-263284][   transport.py][1871] : Authentication (password) successful!
2025-06-13 17:58:22,706 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 17:58:23,342 [DEBUG][       Thread-263284][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 17:58:23,342 [DEBUG][       Thread-263284][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 17:58:23,385 [DEBUG][       Thread-263284][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 17:58:23,385 [DEBUG][       Thread-263284][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 17:58:23,389 [DEBUG][       Thread-263284][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 17:58:23,401 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 17:58:23,401 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 17:58:23,403 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 17:58:23,405 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 17:58:23,411 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 17:58:23,413 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 17:58:23,413 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 17:58:23,414 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 17:58:23,414 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.665211 -999.00  +11.50  17.56     37   -2.50 1 1 1 1 1   536    0 13.96 -0.14 ----- 18.4 17.6 50.8 22.6 11.8 -29.3 11.7 -29.4 11.4 -28.4 11.8 -28.3
2025-06-13 17:58:23,414 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 17:58:23,414 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 17:58:23,414 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.665211
2025-06-13 17:58:23,415 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 17:58:23,415 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 17:58:23,415 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 17:58:23,415 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 17:58:23,415 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 17:58:23,416 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T17:57:52', tmtdew=16.0, humidity=32.3, cloud=0.0, wind=15.95, temperature=11.62, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T15:57:54.230', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 17:58:23,416 [DEBUG][       Thread-263284][   transport.py][1871] : EOF in transport thread
2025-06-13 17:58:23,499 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 17:58:23,509 [DEBUG][       Thread-263287][   transport.py][1871] : starting thread (client mode): 0x867fd6f0
2025-06-13 17:58:23,509 [DEBUG][       Thread-263287][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 17:58:23,530 [DEBUG][       Thread-263287][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 17:58:23,530 [ INFO][       Thread-263287][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 17:58:23,537 [DEBUG][       Thread-263287][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 17:58:23,538 [DEBUG][       Thread-263287][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 17:58:23,538 [DEBUG][       Thread-263287][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 17:58:23,538 [DEBUG][       Thread-263287][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:58:23,538 [DEBUG][       Thread-263287][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:58:23,538 [DEBUG][       Thread-263287][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:58:23,538 [DEBUG][       Thread-263287][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:58:23,538 [DEBUG][       Thread-263287][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 17:58:23,538 [DEBUG][       Thread-263287][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 17:58:23,538 [DEBUG][       Thread-263287][   transport.py][1871] : client lang: <none>
2025-06-13 17:58:23,538 [DEBUG][       Thread-263287][   transport.py][1871] : server lang: <none>
2025-06-13 17:58:23,538 [DEBUG][       Thread-263287][   transport.py][1871] : kex follows: False
2025-06-13 17:58:23,538 [DEBUG][       Thread-263287][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 17:58:23,538 [DEBUG][       Thread-263287][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 17:58:23,538 [DEBUG][       Thread-263287][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 17:58:23,538 [DEBUG][       Thread-263287][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 17:58:23,539 [DEBUG][       Thread-263287][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 17:58:23,539 [DEBUG][       Thread-263287][   transport.py][1871] : Compression: none
2025-06-13 17:58:23,539 [DEBUG][       Thread-263287][   transport.py][1871] : === End of kex handshake ===
2025-06-13 17:58:23,602 [DEBUG][       Thread-263287][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 17:58:23,603 [DEBUG][       Thread-263287][   transport.py][1871] : Switch to new keys ...
2025-06-13 17:58:23,603 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 17:58:23,604 [DEBUG][       Thread-263287][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 17:58:23,604 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 17:58:23,661 [DEBUG][       Thread-263287][   transport.py][1871] : userauth is OK
2025-06-13 17:58:23,661 [DEBUG][       Thread-263287][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 17:58:23,662 [DEBUG][       Thread-263287][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 17:58:23,662 [DEBUG][       Thread-263287][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 17:58:23,662 [DEBUG][       Thread-263287][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 17:58:23,681 [ INFO][       Thread-263287][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 17:58:23,681 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 17:58:23,681 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 17:58:24,691 [DEBUG][       Thread-263287][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 17:58:24,691 [DEBUG][       Thread-263287][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 17:58:24,739 [DEBUG][       Thread-263287][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 17:58:24,739 [DEBUG][       Thread-263287][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 17:58:24,747 [DEBUG][       Thread-263287][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 17:58:24,755 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 17:58:24,755 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 17:58:24,764 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 17:58:24,773 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 17:58:24,773 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 17:58:24,773 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 17:58:24,783 [DEBUG][       Thread-263287][   transport.py][1871] : EOF in transport thread
2025-06-13 17:58:28,277 [DEBUG][Thread-263289 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:58:30,747 [DEBUG][Thread-263290 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:58:32,344 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:58:32,345 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:58:34,780 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 17:58:34,780 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 17:58:34,780 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 17:58:34,783 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 17:58:35,255 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 17, 58, 23), 16.0, 32.56, 0.0, 17.54, 11.59, 0, 0, 0, 2, 0, 0),)
2025-06-13 17:58:35,255 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 17:58:23
2025-06-13 17:58:35,337 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 17:58:35,343 [DEBUG][       Thread-263291][   transport.py][1871] : starting thread (client mode): 0x863ca980
2025-06-13 17:58:35,343 [DEBUG][       Thread-263291][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 17:58:35,363 [DEBUG][       Thread-263291][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 17:58:35,363 [ INFO][       Thread-263291][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 17:58:35,367 [DEBUG][       Thread-263291][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 17:58:35,367 [DEBUG][       Thread-263291][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 17:58:35,367 [DEBUG][       Thread-263291][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 17:58:35,367 [DEBUG][       Thread-263291][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:58:35,367 [DEBUG][       Thread-263291][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:58:35,367 [DEBUG][       Thread-263291][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:58:35,367 [DEBUG][       Thread-263291][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:58:35,367 [DEBUG][       Thread-263291][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 17:58:35,367 [DEBUG][       Thread-263291][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 17:58:35,367 [DEBUG][       Thread-263291][   transport.py][1871] : client lang: <none>
2025-06-13 17:58:35,367 [DEBUG][       Thread-263291][   transport.py][1871] : server lang: <none>
2025-06-13 17:58:35,367 [DEBUG][       Thread-263291][   transport.py][1871] : kex follows: False
2025-06-13 17:58:35,367 [DEBUG][       Thread-263291][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 17:58:35,367 [DEBUG][       Thread-263291][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 17:58:35,367 [DEBUG][       Thread-263291][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 17:58:35,367 [DEBUG][       Thread-263291][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 17:58:35,367 [DEBUG][       Thread-263291][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 17:58:35,367 [DEBUG][       Thread-263291][   transport.py][1871] : Compression: none
2025-06-13 17:58:35,367 [DEBUG][       Thread-263291][   transport.py][1871] : === End of kex handshake ===
2025-06-13 17:58:35,385 [DEBUG][       Thread-263291][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 17:58:35,385 [DEBUG][       Thread-263291][   transport.py][1871] : Switch to new keys ...
2025-06-13 17:58:35,386 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 17:58:35,386 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 17:58:35,386 [DEBUG][       Thread-263291][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 17:58:35,387 [DEBUG][       Thread-263291][   transport.py][1871] : userauth is OK
2025-06-13 17:58:35,400 [ INFO][       Thread-263291][   transport.py][1871] : Authentication (password) successful!
2025-06-13 17:58:35,401 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 17:58:36,004 [DEBUG][Thread-263293 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:58:36,038 [DEBUG][       Thread-263291][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 17:58:36,038 [DEBUG][       Thread-263291][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 17:58:36,081 [DEBUG][       Thread-263291][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 17:58:36,081 [DEBUG][       Thread-263291][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 17:58:36,083 [DEBUG][       Thread-263291][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 17:58:36,096 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 17:58:36,097 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 17:58:36,098 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 17:58:36,099 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 17:58:36,102 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 17:58:36,103 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 17:58:36,103 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 17:58:36,103 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 17:58:36,103 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.665211 -999.00  +11.50  17.56     37   -2.50 1 1 1 1 1   536    0 13.96 -0.14 ----- 18.4 17.6 50.8 22.6 11.8 -29.3 11.7 -29.4 11.4 -28.4 11.8 -28.3
2025-06-13 17:58:36,103 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 17:58:36,103 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 17:58:36,103 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.665211
2025-06-13 17:58:36,103 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 17:58:36,103 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 17:58:36,103 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 17:58:36,103 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 17:58:36,104 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 17:58:36,104 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T17:58:23', tmtdew=16.0, humidity=32.56, cloud=0.0, wind=17.54, temperature=11.59, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T15:57:54.230', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 17:58:36,104 [DEBUG][       Thread-263291][   transport.py][1871] : EOF in transport thread
2025-06-13 17:58:36,174 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 17:58:36,185 [DEBUG][       Thread-263295][   transport.py][1871] : starting thread (client mode): 0x863a43a0
2025-06-13 17:58:36,186 [DEBUG][       Thread-263295][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 17:58:36,199 [DEBUG][       Thread-263295][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 17:58:36,199 [ INFO][       Thread-263295][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 17:58:36,207 [DEBUG][       Thread-263295][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 17:58:36,207 [DEBUG][       Thread-263295][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 17:58:36,207 [DEBUG][       Thread-263295][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 17:58:36,207 [DEBUG][       Thread-263295][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:58:36,207 [DEBUG][       Thread-263295][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:58:36,207 [DEBUG][       Thread-263295][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:58:36,207 [DEBUG][       Thread-263295][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:58:36,207 [DEBUG][       Thread-263295][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 17:58:36,207 [DEBUG][       Thread-263295][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 17:58:36,207 [DEBUG][       Thread-263295][   transport.py][1871] : client lang: <none>
2025-06-13 17:58:36,207 [DEBUG][       Thread-263295][   transport.py][1871] : server lang: <none>
2025-06-13 17:58:36,207 [DEBUG][       Thread-263295][   transport.py][1871] : kex follows: False
2025-06-13 17:58:36,207 [DEBUG][       Thread-263295][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 17:58:36,208 [DEBUG][       Thread-263295][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 17:58:36,208 [DEBUG][       Thread-263295][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 17:58:36,208 [DEBUG][       Thread-263295][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 17:58:36,208 [DEBUG][       Thread-263295][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 17:58:36,208 [DEBUG][       Thread-263295][   transport.py][1871] : Compression: none
2025-06-13 17:58:36,208 [DEBUG][       Thread-263295][   transport.py][1871] : === End of kex handshake ===
2025-06-13 17:58:36,270 [DEBUG][       Thread-263295][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 17:58:36,270 [DEBUG][       Thread-263295][   transport.py][1871] : Switch to new keys ...
2025-06-13 17:58:36,271 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 17:58:36,272 [DEBUG][       Thread-263295][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 17:58:36,272 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 17:58:36,329 [DEBUG][       Thread-263295][   transport.py][1871] : userauth is OK
2025-06-13 17:58:36,329 [DEBUG][       Thread-263295][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 17:58:36,329 [DEBUG][       Thread-263295][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 17:58:36,329 [DEBUG][       Thread-263295][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 17:58:36,329 [DEBUG][       Thread-263295][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 17:58:36,345 [ INFO][       Thread-263295][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 17:58:36,345 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 17:58:36,346 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 17:58:37,132 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:58:37,133 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:58:37,328 [DEBUG][       Thread-263295][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 17:58:37,328 [DEBUG][       Thread-263295][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 17:58:37,376 [DEBUG][       Thread-263295][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 17:58:37,376 [DEBUG][       Thread-263295][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 17:58:37,390 [DEBUG][       Thread-263295][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 17:58:37,399 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 17:58:37,399 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 17:58:37,408 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 17:58:37,417 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 17:58:37,418 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 17:58:37,418 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 17:58:37,428 [DEBUG][       Thread-263295][   transport.py][1871] : EOF in transport thread
2025-06-13 17:58:39,769 [DEBUG][Thread-263297 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:58:47,428 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 17:58:47,428 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 17:58:47,428 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 17:58:47,429 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 17:58:47,893 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 17, 58, 23), 16.0, 32.56, 0.0, 17.54, 11.59, 0, 0, 0, 2, 0, 0),)
2025-06-13 17:58:47,893 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 17:58:23
2025-06-13 17:58:47,980 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 17:58:47,986 [DEBUG][       Thread-263298][   transport.py][1871] : starting thread (client mode): 0x86392b90
2025-06-13 17:58:47,986 [DEBUG][       Thread-263298][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 17:58:48,008 [DEBUG][       Thread-263298][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 17:58:48,008 [ INFO][       Thread-263298][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 17:58:48,011 [DEBUG][       Thread-263298][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 17:58:48,011 [DEBUG][       Thread-263298][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 17:58:48,011 [DEBUG][       Thread-263298][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 17:58:48,011 [DEBUG][       Thread-263298][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:58:48,011 [DEBUG][       Thread-263298][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:58:48,011 [DEBUG][       Thread-263298][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:58:48,011 [DEBUG][       Thread-263298][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:58:48,011 [DEBUG][       Thread-263298][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 17:58:48,011 [DEBUG][       Thread-263298][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 17:58:48,011 [DEBUG][       Thread-263298][   transport.py][1871] : client lang: <none>
2025-06-13 17:58:48,011 [DEBUG][       Thread-263298][   transport.py][1871] : server lang: <none>
2025-06-13 17:58:48,011 [DEBUG][       Thread-263298][   transport.py][1871] : kex follows: False
2025-06-13 17:58:48,011 [DEBUG][       Thread-263298][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 17:58:48,011 [DEBUG][       Thread-263298][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 17:58:48,011 [DEBUG][       Thread-263298][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 17:58:48,011 [DEBUG][       Thread-263298][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 17:58:48,011 [DEBUG][       Thread-263298][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 17:58:48,011 [DEBUG][       Thread-263298][   transport.py][1871] : Compression: none
2025-06-13 17:58:48,012 [DEBUG][       Thread-263298][   transport.py][1871] : === End of kex handshake ===
2025-06-13 17:58:48,027 [DEBUG][       Thread-263298][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 17:58:48,027 [DEBUG][       Thread-263298][   transport.py][1871] : Switch to new keys ...
2025-06-13 17:58:48,027 [DEBUG][       Thread-263298][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 17:58:48,027 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 17:58:48,027 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 17:58:48,028 [DEBUG][       Thread-263298][   transport.py][1871] : userauth is OK
2025-06-13 17:58:48,041 [ INFO][       Thread-263298][   transport.py][1871] : Authentication (password) successful!
2025-06-13 17:58:48,041 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 17:58:48,635 [DEBUG][       Thread-263298][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 17:58:48,636 [DEBUG][       Thread-263298][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 17:58:48,676 [DEBUG][       Thread-263298][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 17:58:48,676 [DEBUG][       Thread-263298][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 17:58:48,679 [DEBUG][       Thread-263298][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 17:58:48,691 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 17:58:48,692 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 17:58:48,693 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 17:58:48,694 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 17:58:48,697 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 17:58:48,698 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 17:58:48,698 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 17:58:48,698 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 17:58:48,698 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.665559 -999.00  +11.50  16.52     37   -2.40 1 1 1 1 1   516    0 13.94 0.52 ----- 17.6 16.5 54.2 20.4 11.8 -29.4 11.7 -29.5 11.4 -28.4 11.8 -28.3
2025-06-13 17:58:48,698 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 17:58:48,698 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 17:58:48,698 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.665559
2025-06-13 17:58:48,698 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 17:58:48,699 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 17:58:48,699 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 17:58:48,699 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 17:58:48,699 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 17:58:48,699 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T17:58:23', tmtdew=16.0, humidity=32.56, cloud=0.0, wind=17.54, temperature=11.59, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T15:58:24.298', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 17:58:48,700 [DEBUG][       Thread-263298][   transport.py][1871] : EOF in transport thread
2025-06-13 17:58:48,773 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 17:58:48,784 [DEBUG][       Thread-263301][   transport.py][1871] : starting thread (client mode): 0x86351000
2025-06-13 17:58:48,784 [DEBUG][       Thread-263301][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 17:58:48,799 [DEBUG][       Thread-263301][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 17:58:48,799 [ INFO][       Thread-263301][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 17:58:48,807 [DEBUG][       Thread-263301][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 17:58:48,807 [DEBUG][       Thread-263301][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 17:58:48,807 [DEBUG][       Thread-263301][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 17:58:48,807 [DEBUG][       Thread-263301][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:58:48,807 [DEBUG][       Thread-263301][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:58:48,807 [DEBUG][       Thread-263301][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:58:48,807 [DEBUG][       Thread-263301][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:58:48,807 [DEBUG][       Thread-263301][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 17:58:48,807 [DEBUG][       Thread-263301][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 17:58:48,807 [DEBUG][       Thread-263301][   transport.py][1871] : client lang: <none>
2025-06-13 17:58:48,807 [DEBUG][       Thread-263301][   transport.py][1871] : server lang: <none>
2025-06-13 17:58:48,807 [DEBUG][       Thread-263301][   transport.py][1871] : kex follows: False
2025-06-13 17:58:48,807 [DEBUG][       Thread-263301][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 17:58:48,807 [DEBUG][       Thread-263301][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 17:58:48,807 [DEBUG][       Thread-263301][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 17:58:48,807 [DEBUG][       Thread-263301][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 17:58:48,807 [DEBUG][       Thread-263301][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 17:58:48,807 [DEBUG][       Thread-263301][   transport.py][1871] : Compression: none
2025-06-13 17:58:48,807 [DEBUG][       Thread-263301][   transport.py][1871] : === End of kex handshake ===
2025-06-13 17:58:48,811 [DEBUG][Thread-263303 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:58:48,865 [DEBUG][       Thread-263301][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 17:58:48,865 [DEBUG][       Thread-263301][   transport.py][1871] : Switch to new keys ...
2025-06-13 17:58:48,865 [DEBUG][       Thread-263301][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 17:58:48,865 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 17:58:48,866 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 17:58:48,929 [DEBUG][       Thread-263301][   transport.py][1871] : userauth is OK
2025-06-13 17:58:48,930 [DEBUG][       Thread-263301][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 17:58:48,930 [DEBUG][       Thread-263301][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 17:58:48,930 [DEBUG][       Thread-263301][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 17:58:48,930 [DEBUG][       Thread-263301][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 17:58:48,945 [ INFO][       Thread-263301][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 17:58:48,945 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 17:58:48,945 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 17:58:50,004 [DEBUG][       Thread-263301][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 17:58:50,004 [DEBUG][       Thread-263301][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 17:58:50,060 [DEBUG][       Thread-263301][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 17:58:50,060 [DEBUG][       Thread-263301][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 17:58:50,073 [DEBUG][       Thread-263301][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 17:58:50,081 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 17:58:50,081 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 17:58:50,089 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 17:58:50,098 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 17:58:50,098 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 17:58:50,098 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 17:58:50,106 [DEBUG][       Thread-263301][   transport.py][1871] : EOF in transport thread
2025-06-13 17:58:57,829 [DEBUG][Thread-263304 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:59:00,099 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 17:59:00,099 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 17:59:00,099 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 17:59:00,102 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 17:59:00,570 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 17, 58, 55), 16.04, 32.46, 0.0, 15.65, 11.59, 0, 0, 0, 2, 0, 0),)
2025-06-13 17:59:00,570 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 17:58:55
2025-06-13 17:59:00,652 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 17:59:00,656 [DEBUG][       Thread-263305][   transport.py][1871] : starting thread (client mode): 0x8636a830
2025-06-13 17:59:00,656 [DEBUG][       Thread-263305][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 17:59:00,676 [DEBUG][       Thread-263305][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 17:59:00,676 [ INFO][       Thread-263305][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 17:59:00,680 [DEBUG][       Thread-263305][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 17:59:00,680 [DEBUG][       Thread-263305][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 17:59:00,680 [DEBUG][       Thread-263305][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 17:59:00,680 [DEBUG][       Thread-263305][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:59:00,680 [DEBUG][       Thread-263305][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:59:00,680 [DEBUG][       Thread-263305][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:59:00,680 [DEBUG][       Thread-263305][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:59:00,680 [DEBUG][       Thread-263305][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 17:59:00,680 [DEBUG][       Thread-263305][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 17:59:00,680 [DEBUG][       Thread-263305][   transport.py][1871] : client lang: <none>
2025-06-13 17:59:00,680 [DEBUG][       Thread-263305][   transport.py][1871] : server lang: <none>
2025-06-13 17:59:00,680 [DEBUG][       Thread-263305][   transport.py][1871] : kex follows: False
2025-06-13 17:59:00,680 [DEBUG][       Thread-263305][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 17:59:00,680 [DEBUG][       Thread-263305][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 17:59:00,680 [DEBUG][       Thread-263305][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 17:59:00,680 [DEBUG][       Thread-263305][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 17:59:00,680 [DEBUG][       Thread-263305][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 17:59:00,680 [DEBUG][       Thread-263305][   transport.py][1871] : Compression: none
2025-06-13 17:59:00,680 [DEBUG][       Thread-263305][   transport.py][1871] : === End of kex handshake ===
2025-06-13 17:59:00,698 [DEBUG][       Thread-263305][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 17:59:00,698 [DEBUG][       Thread-263305][   transport.py][1871] : Switch to new keys ...
2025-06-13 17:59:00,699 [DEBUG][       Thread-263305][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 17:59:00,699 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 17:59:00,699 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 17:59:00,700 [DEBUG][       Thread-263305][   transport.py][1871] : userauth is OK
2025-06-13 17:59:00,712 [ INFO][       Thread-263305][   transport.py][1871] : Authentication (password) successful!
2025-06-13 17:59:00,713 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 17:59:01,340 [DEBUG][       Thread-263305][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 17:59:01,340 [DEBUG][       Thread-263305][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 17:59:01,381 [DEBUG][       Thread-263305][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 17:59:01,381 [DEBUG][       Thread-263305][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 17:59:01,384 [DEBUG][       Thread-263305][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 17:59:01,396 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 17:59:01,397 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 17:59:01,399 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 17:59:01,400 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 17:59:01,406 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 17:59:01,408 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 17:59:01,408 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 17:59:01,409 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 17:59:01,409 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.665559 -999.00  +11.50  16.52     37   -2.40 1 1 1 1 1   516    0 13.94 0.52 ----- 17.6 16.5 54.2 20.4 11.8 -29.4 11.7 -29.5 11.4 -28.4 11.8 -28.3
2025-06-13 17:59:01,409 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 17:59:01,409 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 17:59:01,409 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.665559
2025-06-13 17:59:01,410 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 17:59:01,410 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 17:59:01,410 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 17:59:01,411 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 17:59:01,411 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 17:59:01,411 [DEBUG][       Thread-263305][   transport.py][1871] : EOF in transport thread
2025-06-13 17:59:01,411 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T17:58:55', tmtdew=16.04, humidity=32.46, cloud=0.0, wind=15.65, temperature=11.59, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T15:58:24.298', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 17:59:01,495 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 17:59:01,507 [DEBUG][       Thread-263308][   transport.py][1871] : starting thread (client mode): 0x863c8760
2025-06-13 17:59:01,507 [DEBUG][       Thread-263308][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 17:59:01,522 [DEBUG][       Thread-263308][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 17:59:01,522 [ INFO][       Thread-263308][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 17:59:01,530 [DEBUG][       Thread-263308][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 17:59:01,530 [DEBUG][       Thread-263308][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 17:59:01,530 [DEBUG][       Thread-263308][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 17:59:01,530 [DEBUG][       Thread-263308][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:59:01,530 [DEBUG][       Thread-263308][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:59:01,530 [DEBUG][       Thread-263308][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:59:01,530 [DEBUG][       Thread-263308][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:59:01,530 [DEBUG][       Thread-263308][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 17:59:01,530 [DEBUG][       Thread-263308][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 17:59:01,530 [DEBUG][       Thread-263308][   transport.py][1871] : client lang: <none>
2025-06-13 17:59:01,530 [DEBUG][       Thread-263308][   transport.py][1871] : server lang: <none>
2025-06-13 17:59:01,530 [DEBUG][       Thread-263308][   transport.py][1871] : kex follows: False
2025-06-13 17:59:01,530 [DEBUG][       Thread-263308][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 17:59:01,530 [DEBUG][       Thread-263308][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 17:59:01,530 [DEBUG][       Thread-263308][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 17:59:01,531 [DEBUG][       Thread-263308][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 17:59:01,531 [DEBUG][       Thread-263308][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 17:59:01,531 [DEBUG][       Thread-263308][   transport.py][1871] : Compression: none
2025-06-13 17:59:01,531 [DEBUG][       Thread-263308][   transport.py][1871] : === End of kex handshake ===
2025-06-13 17:59:01,586 [DEBUG][       Thread-263308][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 17:59:01,587 [DEBUG][       Thread-263308][   transport.py][1871] : Switch to new keys ...
2025-06-13 17:59:01,587 [DEBUG][       Thread-263308][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 17:59:01,588 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 17:59:01,589 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 17:59:01,643 [DEBUG][       Thread-263308][   transport.py][1871] : userauth is OK
2025-06-13 17:59:01,643 [DEBUG][       Thread-263308][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 17:59:01,643 [DEBUG][       Thread-263308][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 17:59:01,643 [DEBUG][       Thread-263308][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 17:59:01,643 [DEBUG][       Thread-263308][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 17:59:01,660 [ INFO][       Thread-263308][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 17:59:01,660 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 17:59:01,660 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 17:59:02,636 [DEBUG][       Thread-263308][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 17:59:02,636 [DEBUG][       Thread-263308][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 17:59:02,684 [DEBUG][       Thread-263308][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 17:59:02,684 [DEBUG][       Thread-263308][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 17:59:02,693 [DEBUG][       Thread-263308][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 17:59:02,702 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 17:59:02,703 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 17:59:02,711 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 17:59:02,721 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 17:59:02,721 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 17:59:02,722 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 17:59:02,729 [DEBUG][       Thread-263308][   transport.py][1871] : EOF in transport thread
2025-06-13 17:59:06,850 [DEBUG][Thread-263310 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:59:12,732 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 17:59:12,732 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 17:59:12,732 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 17:59:12,735 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 17:59:13,205 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 17, 58, 55), 16.04, 32.46, 0.0, 15.65, 11.59, 0, 0, 0, 2, 0, 0),)
2025-06-13 17:59:13,205 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 17:58:55
2025-06-13 17:59:13,287 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 17:59:13,293 [DEBUG][       Thread-263311][   transport.py][1871] : starting thread (client mode): 0x8636ba30
2025-06-13 17:59:13,293 [DEBUG][       Thread-263311][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 17:59:13,313 [DEBUG][       Thread-263311][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 17:59:13,313 [ INFO][       Thread-263311][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 17:59:13,316 [DEBUG][       Thread-263311][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 17:59:13,317 [DEBUG][       Thread-263311][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 17:59:13,317 [DEBUG][       Thread-263311][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 17:59:13,317 [DEBUG][       Thread-263311][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:59:13,317 [DEBUG][       Thread-263311][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:59:13,317 [DEBUG][       Thread-263311][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:59:13,317 [DEBUG][       Thread-263311][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:59:13,317 [DEBUG][       Thread-263311][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 17:59:13,317 [DEBUG][       Thread-263311][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 17:59:13,317 [DEBUG][       Thread-263311][   transport.py][1871] : client lang: <none>
2025-06-13 17:59:13,317 [DEBUG][       Thread-263311][   transport.py][1871] : server lang: <none>
2025-06-13 17:59:13,317 [DEBUG][       Thread-263311][   transport.py][1871] : kex follows: False
2025-06-13 17:59:13,317 [DEBUG][       Thread-263311][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 17:59:13,317 [DEBUG][       Thread-263311][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 17:59:13,317 [DEBUG][       Thread-263311][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 17:59:13,317 [DEBUG][       Thread-263311][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 17:59:13,317 [DEBUG][       Thread-263311][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 17:59:13,317 [DEBUG][       Thread-263311][   transport.py][1871] : Compression: none
2025-06-13 17:59:13,317 [DEBUG][       Thread-263311][   transport.py][1871] : === End of kex handshake ===
2025-06-13 17:59:13,333 [DEBUG][       Thread-263311][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 17:59:13,333 [DEBUG][       Thread-263311][   transport.py][1871] : Switch to new keys ...
2025-06-13 17:59:13,334 [DEBUG][       Thread-263311][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 17:59:13,334 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 17:59:13,334 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 17:59:13,335 [DEBUG][       Thread-263311][   transport.py][1871] : userauth is OK
2025-06-13 17:59:13,349 [ INFO][       Thread-263311][   transport.py][1871] : Authentication (password) successful!
2025-06-13 17:59:13,350 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 17:59:13,980 [DEBUG][       Thread-263311][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 17:59:13,980 [DEBUG][       Thread-263311][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 17:59:14,021 [DEBUG][       Thread-263311][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 17:59:14,021 [DEBUG][       Thread-263311][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 17:59:14,024 [DEBUG][       Thread-263311][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 17:59:14,036 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 17:59:14,036 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 17:59:14,038 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 17:59:14,040 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 17:59:14,046 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 17:59:14,048 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 17:59:14,048 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 17:59:14,049 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 17:59:14,049 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.665559 -999.00  +11.50  16.52     37   -2.40 1 1 1 1 1   516    0 13.94 0.52 ----- 17.6 16.5 54.2 20.4 11.8 -29.4 11.7 -29.5 11.4 -28.4 11.8 -28.3
2025-06-13 17:59:14,049 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 17:59:14,049 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 17:59:14,049 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.665559
2025-06-13 17:59:14,050 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 17:59:14,050 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 17:59:14,050 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 17:59:14,050 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 17:59:14,050 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 17:59:14,051 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T17:58:55', tmtdew=16.04, humidity=32.46, cloud=0.0, wind=15.65, temperature=11.59, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T15:58:24.298', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 17:59:14,051 [DEBUG][       Thread-263311][   transport.py][1871] : EOF in transport thread
2025-06-13 17:59:14,134 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 17:59:14,147 [DEBUG][       Thread-263314][   transport.py][1871] : starting thread (client mode): 0x863a5600
2025-06-13 17:59:14,147 [DEBUG][       Thread-263314][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 17:59:14,167 [DEBUG][       Thread-263314][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 17:59:14,167 [ INFO][       Thread-263314][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 17:59:14,179 [DEBUG][       Thread-263314][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 17:59:14,179 [DEBUG][       Thread-263314][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 17:59:14,179 [DEBUG][       Thread-263314][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 17:59:14,179 [DEBUG][       Thread-263314][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:59:14,179 [DEBUG][       Thread-263314][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:59:14,179 [DEBUG][       Thread-263314][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:59:14,179 [DEBUG][       Thread-263314][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:59:14,179 [DEBUG][       Thread-263314][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 17:59:14,179 [DEBUG][       Thread-263314][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 17:59:14,179 [DEBUG][       Thread-263314][   transport.py][1871] : client lang: <none>
2025-06-13 17:59:14,180 [DEBUG][       Thread-263314][   transport.py][1871] : server lang: <none>
2025-06-13 17:59:14,180 [DEBUG][       Thread-263314][   transport.py][1871] : kex follows: False
2025-06-13 17:59:14,180 [DEBUG][       Thread-263314][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 17:59:14,180 [DEBUG][       Thread-263314][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 17:59:14,180 [DEBUG][       Thread-263314][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 17:59:14,180 [DEBUG][       Thread-263314][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 17:59:14,180 [DEBUG][       Thread-263314][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 17:59:14,180 [DEBUG][       Thread-263314][   transport.py][1871] : Compression: none
2025-06-13 17:59:14,180 [DEBUG][       Thread-263314][   transport.py][1871] : === End of kex handshake ===
2025-06-13 17:59:14,238 [DEBUG][       Thread-263314][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 17:59:14,239 [DEBUG][       Thread-263314][   transport.py][1871] : Switch to new keys ...
2025-06-13 17:59:14,239 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 17:59:14,240 [DEBUG][       Thread-263314][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 17:59:14,241 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 17:59:14,297 [DEBUG][       Thread-263314][   transport.py][1871] : userauth is OK
2025-06-13 17:59:14,298 [DEBUG][       Thread-263314][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 17:59:14,298 [DEBUG][       Thread-263314][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 17:59:14,298 [DEBUG][       Thread-263314][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 17:59:14,298 [DEBUG][       Thread-263314][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 17:59:14,331 [ INFO][       Thread-263314][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 17:59:14,332 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 17:59:14,332 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 17:59:15,325 [DEBUG][       Thread-263314][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 17:59:15,325 [DEBUG][       Thread-263314][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 17:59:15,378 [DEBUG][       Thread-263314][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 17:59:15,378 [DEBUG][       Thread-263314][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 17:59:15,392 [DEBUG][       Thread-263314][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 17:59:15,407 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 17:59:15,407 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 17:59:15,420 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 17:59:15,429 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 17:59:15,429 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 17:59:15,429 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 17:59:15,438 [DEBUG][       Thread-263314][   transport.py][1871] : EOF in transport thread
2025-06-13 17:59:15,884 [DEBUG][Thread-263316 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:59:24,910 [DEBUG][Thread-263317 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:59:25,440 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 17:59:25,440 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 17:59:25,440 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 17:59:25,441 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 17:59:25,930 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 17, 58, 55), 16.04, 32.46, 0.0, 15.65, 11.59, 0, 0, 0, 2, 0, 0),)
2025-06-13 17:59:25,930 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 17:58:55
2025-06-13 17:59:26,015 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 17:59:26,019 [DEBUG][       Thread-263318][   transport.py][1871] : starting thread (client mode): 0x8636af80
2025-06-13 17:59:26,019 [DEBUG][       Thread-263318][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 17:59:26,040 [DEBUG][       Thread-263318][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 17:59:26,040 [ INFO][       Thread-263318][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 17:59:26,043 [DEBUG][       Thread-263318][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 17:59:26,043 [DEBUG][       Thread-263318][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 17:59:26,043 [DEBUG][       Thread-263318][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 17:59:26,043 [DEBUG][       Thread-263318][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:59:26,043 [DEBUG][       Thread-263318][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:59:26,043 [DEBUG][       Thread-263318][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:59:26,043 [DEBUG][       Thread-263318][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:59:26,043 [DEBUG][       Thread-263318][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 17:59:26,043 [DEBUG][       Thread-263318][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 17:59:26,043 [DEBUG][       Thread-263318][   transport.py][1871] : client lang: <none>
2025-06-13 17:59:26,043 [DEBUG][       Thread-263318][   transport.py][1871] : server lang: <none>
2025-06-13 17:59:26,043 [DEBUG][       Thread-263318][   transport.py][1871] : kex follows: False
2025-06-13 17:59:26,043 [DEBUG][       Thread-263318][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 17:59:26,043 [DEBUG][       Thread-263318][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 17:59:26,043 [DEBUG][       Thread-263318][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 17:59:26,043 [DEBUG][       Thread-263318][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 17:59:26,043 [DEBUG][       Thread-263318][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 17:59:26,043 [DEBUG][       Thread-263318][   transport.py][1871] : Compression: none
2025-06-13 17:59:26,043 [DEBUG][       Thread-263318][   transport.py][1871] : === End of kex handshake ===
2025-06-13 17:59:26,061 [DEBUG][       Thread-263318][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 17:59:26,061 [DEBUG][       Thread-263318][   transport.py][1871] : Switch to new keys ...
2025-06-13 17:59:26,061 [DEBUG][       Thread-263318][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 17:59:26,061 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 17:59:26,061 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 17:59:26,062 [DEBUG][       Thread-263318][   transport.py][1871] : userauth is OK
2025-06-13 17:59:26,086 [ INFO][       Thread-263318][   transport.py][1871] : Authentication (password) successful!
2025-06-13 17:59:26,086 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 17:59:26,707 [DEBUG][       Thread-263318][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 17:59:26,708 [DEBUG][       Thread-263318][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 17:59:26,748 [DEBUG][       Thread-263318][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 17:59:26,748 [DEBUG][       Thread-263318][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 17:59:26,751 [DEBUG][       Thread-263318][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 17:59:26,764 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 17:59:26,764 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 17:59:26,765 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 17:59:26,766 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 17:59:26,769 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 17:59:26,770 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 17:59:26,770 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 17:59:26,771 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 17:59:26,771 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.665906 -999.00  +11.50  19.52     37   -2.50 1 1 1 1 1   495    0 14.05 1.64 ----- 17.7 19.5 49.4 22.6 11.8 -29.2 11.7 -29.5 11.4 -28.5 11.7 -28.3
2025-06-13 17:59:26,771 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 17:59:26,771 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 17:59:26,771 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.665906
2025-06-13 17:59:26,771 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 17:59:26,771 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 17:59:26,771 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 17:59:26,771 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 17:59:26,771 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 17:59:26,771 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T17:58:55', tmtdew=16.04, humidity=32.46, cloud=0.0, wind=15.65, temperature=11.59, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T15:58:54.278', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 17:59:26,772 [DEBUG][       Thread-263318][   transport.py][1871] : EOF in transport thread
2025-06-13 17:59:26,843 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 17:59:26,855 [DEBUG][       Thread-263321][   transport.py][1871] : starting thread (client mode): 0x8636b1c0
2025-06-13 17:59:26,855 [DEBUG][       Thread-263321][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 17:59:26,870 [DEBUG][       Thread-263321][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 17:59:26,870 [ INFO][       Thread-263321][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 17:59:26,878 [DEBUG][       Thread-263321][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 17:59:26,878 [DEBUG][       Thread-263321][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 17:59:26,878 [DEBUG][       Thread-263321][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 17:59:26,878 [DEBUG][       Thread-263321][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:59:26,878 [DEBUG][       Thread-263321][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:59:26,878 [DEBUG][       Thread-263321][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:59:26,878 [DEBUG][       Thread-263321][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:59:26,878 [DEBUG][       Thread-263321][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 17:59:26,878 [DEBUG][       Thread-263321][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 17:59:26,878 [DEBUG][       Thread-263321][   transport.py][1871] : client lang: <none>
2025-06-13 17:59:26,878 [DEBUG][       Thread-263321][   transport.py][1871] : server lang: <none>
2025-06-13 17:59:26,878 [DEBUG][       Thread-263321][   transport.py][1871] : kex follows: False
2025-06-13 17:59:26,878 [DEBUG][       Thread-263321][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 17:59:26,878 [DEBUG][       Thread-263321][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 17:59:26,878 [DEBUG][       Thread-263321][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 17:59:26,878 [DEBUG][       Thread-263321][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 17:59:26,878 [DEBUG][       Thread-263321][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 17:59:26,878 [DEBUG][       Thread-263321][   transport.py][1871] : Compression: none
2025-06-13 17:59:26,878 [DEBUG][       Thread-263321][   transport.py][1871] : === End of kex handshake ===
2025-06-13 17:59:26,938 [DEBUG][       Thread-263321][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 17:59:26,938 [DEBUG][       Thread-263321][   transport.py][1871] : Switch to new keys ...
2025-06-13 17:59:26,938 [DEBUG][       Thread-263321][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 17:59:26,938 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 17:59:26,938 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 17:59:26,994 [DEBUG][       Thread-263321][   transport.py][1871] : userauth is OK
2025-06-13 17:59:26,994 [DEBUG][       Thread-263321][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 17:59:26,994 [DEBUG][       Thread-263321][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 17:59:26,994 [DEBUG][       Thread-263321][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 17:59:26,994 [DEBUG][       Thread-263321][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 17:59:27,008 [ INFO][       Thread-263321][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 17:59:27,008 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 17:59:27,008 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 17:59:28,038 [DEBUG][       Thread-263321][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 17:59:28,038 [DEBUG][       Thread-263321][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 17:59:28,091 [DEBUG][       Thread-263321][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 17:59:28,091 [DEBUG][       Thread-263321][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 17:59:28,100 [DEBUG][       Thread-263321][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 17:59:28,107 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 17:59:28,107 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 17:59:28,115 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 17:59:28,123 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 17:59:28,123 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 17:59:28,123 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 17:59:28,131 [DEBUG][       Thread-263321][   transport.py][1871] : EOF in transport thread
2025-06-13 17:59:28,330 [DEBUG][Thread-263323 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:59:33,930 [DEBUG][Thread-263324 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:59:37,204 [DEBUG][Thread-263325 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:59:37,224 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:59:37,224 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:59:38,133 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 17:59:38,134 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 17:59:38,134 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 17:59:38,137 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 17:59:38,291 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:59:38,291 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:59:38,590 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 17, 59, 27), 16.02, 32.52, 0.0, 13.83, 11.68, 0, 0, 0, 2, 0, 0),)
2025-06-13 17:59:38,590 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 17:59:27
2025-06-13 17:59:38,672 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 17:59:38,678 [DEBUG][       Thread-263326][   transport.py][1871] : starting thread (client mode): 0x86368520
2025-06-13 17:59:38,678 [DEBUG][       Thread-263326][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 17:59:38,697 [DEBUG][       Thread-263326][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 17:59:38,697 [ INFO][       Thread-263326][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 17:59:38,699 [DEBUG][       Thread-263326][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 17:59:38,699 [DEBUG][       Thread-263326][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 17:59:38,699 [DEBUG][       Thread-263326][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 17:59:38,699 [DEBUG][       Thread-263326][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:59:38,699 [DEBUG][       Thread-263326][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:59:38,699 [DEBUG][       Thread-263326][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:59:38,699 [DEBUG][       Thread-263326][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:59:38,699 [DEBUG][       Thread-263326][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 17:59:38,699 [DEBUG][       Thread-263326][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 17:59:38,699 [DEBUG][       Thread-263326][   transport.py][1871] : client lang: <none>
2025-06-13 17:59:38,699 [DEBUG][       Thread-263326][   transport.py][1871] : server lang: <none>
2025-06-13 17:59:38,699 [DEBUG][       Thread-263326][   transport.py][1871] : kex follows: False
2025-06-13 17:59:38,699 [DEBUG][       Thread-263326][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 17:59:38,700 [DEBUG][       Thread-263326][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 17:59:38,700 [DEBUG][       Thread-263326][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 17:59:38,700 [DEBUG][       Thread-263326][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 17:59:38,700 [DEBUG][       Thread-263326][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 17:59:38,700 [DEBUG][       Thread-263326][   transport.py][1871] : Compression: none
2025-06-13 17:59:38,700 [DEBUG][       Thread-263326][   transport.py][1871] : === End of kex handshake ===
2025-06-13 17:59:38,714 [DEBUG][       Thread-263326][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 17:59:38,714 [DEBUG][       Thread-263326][   transport.py][1871] : Switch to new keys ...
2025-06-13 17:59:38,715 [DEBUG][       Thread-263326][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 17:59:38,715 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 17:59:38,715 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 17:59:38,716 [DEBUG][       Thread-263326][   transport.py][1871] : userauth is OK
2025-06-13 17:59:38,740 [ INFO][       Thread-263326][   transport.py][1871] : Authentication (password) successful!
2025-06-13 17:59:38,741 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 17:59:39,372 [DEBUG][       Thread-263326][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 17:59:39,373 [DEBUG][       Thread-263326][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 17:59:39,417 [DEBUG][       Thread-263326][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 17:59:39,417 [DEBUG][       Thread-263326][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 17:59:39,420 [DEBUG][       Thread-263326][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 17:59:39,434 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 17:59:39,434 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 17:59:39,436 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 17:59:39,438 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 17:59:39,443 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 17:59:39,445 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 17:59:39,446 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 17:59:39,446 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 17:59:39,447 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.665906 -999.00  +11.50  19.52     37   -2.50 1 1 1 1 1   495    0 14.05 1.64 ----- 17.7 19.5 49.4 22.6 11.8 -29.2 11.7 -29.5 11.4 -28.5 11.7 -28.3
2025-06-13 17:59:39,447 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 17:59:39,447 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 17:59:39,447 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.665906
2025-06-13 17:59:39,447 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 17:59:39,448 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 17:59:39,448 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 17:59:39,448 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 17:59:39,448 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 17:59:39,448 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T17:59:27', tmtdew=16.02, humidity=32.52, cloud=0.0, wind=13.83, temperature=11.68, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T15:58:54.278', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 17:59:39,449 [DEBUG][       Thread-263326][   transport.py][1871] : EOF in transport thread
2025-06-13 17:59:39,533 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 17:59:39,551 [DEBUG][       Thread-263329][   transport.py][1871] : starting thread (client mode): 0x86353c40
2025-06-13 17:59:39,551 [DEBUG][       Thread-263329][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 17:59:39,567 [DEBUG][       Thread-263329][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 17:59:39,567 [ INFO][       Thread-263329][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 17:59:39,581 [DEBUG][       Thread-263329][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 17:59:39,581 [DEBUG][       Thread-263329][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 17:59:39,581 [DEBUG][       Thread-263329][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 17:59:39,581 [DEBUG][       Thread-263329][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:59:39,581 [DEBUG][       Thread-263329][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:59:39,581 [DEBUG][       Thread-263329][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:59:39,581 [DEBUG][       Thread-263329][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:59:39,581 [DEBUG][       Thread-263329][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 17:59:39,581 [DEBUG][       Thread-263329][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 17:59:39,581 [DEBUG][       Thread-263329][   transport.py][1871] : client lang: <none>
2025-06-13 17:59:39,581 [DEBUG][       Thread-263329][   transport.py][1871] : server lang: <none>
2025-06-13 17:59:39,582 [DEBUG][       Thread-263329][   transport.py][1871] : kex follows: False
2025-06-13 17:59:39,582 [DEBUG][       Thread-263329][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 17:59:39,582 [DEBUG][       Thread-263329][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 17:59:39,582 [DEBUG][       Thread-263329][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 17:59:39,582 [DEBUG][       Thread-263329][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 17:59:39,582 [DEBUG][       Thread-263329][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 17:59:39,582 [DEBUG][       Thread-263329][   transport.py][1871] : Compression: none
2025-06-13 17:59:39,582 [DEBUG][       Thread-263329][   transport.py][1871] : === End of kex handshake ===
2025-06-13 17:59:39,634 [DEBUG][       Thread-263329][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 17:59:39,635 [DEBUG][       Thread-263329][   transport.py][1871] : Switch to new keys ...
2025-06-13 17:59:39,635 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 17:59:39,636 [DEBUG][       Thread-263329][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 17:59:39,637 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 17:59:39,690 [DEBUG][       Thread-263329][   transport.py][1871] : userauth is OK
2025-06-13 17:59:39,690 [DEBUG][       Thread-263329][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 17:59:39,691 [DEBUG][       Thread-263329][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 17:59:39,691 [DEBUG][       Thread-263329][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 17:59:39,691 [DEBUG][       Thread-263329][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 17:59:39,709 [ INFO][       Thread-263329][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 17:59:39,709 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 17:59:39,710 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 17:59:41,451 [DEBUG][       Thread-263329][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 17:59:41,452 [DEBUG][       Thread-263329][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 17:59:41,500 [DEBUG][       Thread-263329][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 17:59:41,500 [DEBUG][       Thread-263329][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 17:59:41,510 [DEBUG][       Thread-263329][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 17:59:41,519 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 17:59:41,519 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 17:59:41,528 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 17:59:41,537 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 17:59:41,538 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 17:59:41,538 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 17:59:41,546 [DEBUG][       Thread-263329][   transport.py][1871] : EOF in transport thread
2025-06-13 17:59:42,954 [DEBUG][Thread-263331 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:59:51,549 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 17:59:51,549 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 17:59:51,549 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 17:59:51,552 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 17:59:51,987 [DEBUG][Thread-263332 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 17:59:52,003 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 17, 59, 27), 16.02, 32.52, 0.0, 13.83, 11.68, 0, 0, 0, 2, 0, 0),)
2025-06-13 17:59:52,003 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 17:59:27
2025-06-13 17:59:52,083 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 17:59:52,089 [DEBUG][       Thread-263333][   transport.py][1871] : starting thread (client mode): 0x867ffca0
2025-06-13 17:59:52,089 [DEBUG][       Thread-263333][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 17:59:52,110 [DEBUG][       Thread-263333][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 17:59:52,110 [ INFO][       Thread-263333][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 17:59:52,113 [DEBUG][       Thread-263333][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 17:59:52,113 [DEBUG][       Thread-263333][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 17:59:52,113 [DEBUG][       Thread-263333][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 17:59:52,113 [DEBUG][       Thread-263333][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:59:52,113 [DEBUG][       Thread-263333][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:59:52,113 [DEBUG][       Thread-263333][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:59:52,113 [DEBUG][       Thread-263333][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:59:52,113 [DEBUG][       Thread-263333][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 17:59:52,113 [DEBUG][       Thread-263333][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 17:59:52,113 [DEBUG][       Thread-263333][   transport.py][1871] : client lang: <none>
2025-06-13 17:59:52,113 [DEBUG][       Thread-263333][   transport.py][1871] : server lang: <none>
2025-06-13 17:59:52,113 [DEBUG][       Thread-263333][   transport.py][1871] : kex follows: False
2025-06-13 17:59:52,113 [DEBUG][       Thread-263333][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 17:59:52,113 [DEBUG][       Thread-263333][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 17:59:52,113 [DEBUG][       Thread-263333][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 17:59:52,114 [DEBUG][       Thread-263333][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 17:59:52,114 [DEBUG][       Thread-263333][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 17:59:52,114 [DEBUG][       Thread-263333][   transport.py][1871] : Compression: none
2025-06-13 17:59:52,114 [DEBUG][       Thread-263333][   transport.py][1871] : === End of kex handshake ===
2025-06-13 17:59:52,129 [DEBUG][       Thread-263333][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 17:59:52,130 [DEBUG][       Thread-263333][   transport.py][1871] : Switch to new keys ...
2025-06-13 17:59:52,130 [DEBUG][       Thread-263333][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 17:59:52,130 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 17:59:52,131 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 17:59:52,132 [DEBUG][       Thread-263333][   transport.py][1871] : userauth is OK
2025-06-13 17:59:52,147 [ INFO][       Thread-263333][   transport.py][1871] : Authentication (password) successful!
2025-06-13 17:59:52,147 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 17:59:52,773 [DEBUG][       Thread-263333][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 17:59:52,773 [DEBUG][       Thread-263333][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 17:59:52,816 [DEBUG][       Thread-263333][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 17:59:52,816 [DEBUG][       Thread-263333][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 17:59:52,819 [DEBUG][       Thread-263333][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 17:59:52,832 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 17:59:52,832 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 17:59:52,833 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 17:59:52,834 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 17:59:52,837 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 17:59:52,837 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 17:59:52,837 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 17:59:52,838 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 17:59:52,838 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.666253 -999.00  +11.50  17.31     37   -2.50 1 1 1 1 1   474    0 13.91 2.46 ----- 18.1 17.3 45.2 20.0 11.8 -29.3 11.7 -29.4 11.4 -28.5 11.7 -28.4
2025-06-13 17:59:52,838 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 17:59:52,838 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 17:59:52,838 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.666253
2025-06-13 17:59:52,838 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 17:59:52,838 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 17:59:52,838 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 17:59:52,838 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 17:59:52,838 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 17:59:52,838 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T17:59:27', tmtdew=16.02, humidity=32.52, cloud=0.0, wind=13.83, temperature=11.68, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T15:59:24.259', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 17:59:52,839 [DEBUG][       Thread-263333][   transport.py][1871] : EOF in transport thread
2025-06-13 17:59:52,909 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 17:59:52,921 [DEBUG][       Thread-263336][   transport.py][1871] : starting thread (client mode): 0x86352410
2025-06-13 17:59:52,921 [DEBUG][       Thread-263336][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 17:59:52,943 [DEBUG][       Thread-263336][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 17:59:52,943 [ INFO][       Thread-263336][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 17:59:52,951 [DEBUG][       Thread-263336][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 17:59:52,951 [DEBUG][       Thread-263336][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 17:59:52,951 [DEBUG][       Thread-263336][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 17:59:52,951 [DEBUG][       Thread-263336][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:59:52,951 [DEBUG][       Thread-263336][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 17:59:52,951 [DEBUG][       Thread-263336][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:59:52,951 [DEBUG][       Thread-263336][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 17:59:52,951 [DEBUG][       Thread-263336][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 17:59:52,951 [DEBUG][       Thread-263336][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 17:59:52,951 [DEBUG][       Thread-263336][   transport.py][1871] : client lang: <none>
2025-06-13 17:59:52,951 [DEBUG][       Thread-263336][   transport.py][1871] : server lang: <none>
2025-06-13 17:59:52,951 [DEBUG][       Thread-263336][   transport.py][1871] : kex follows: False
2025-06-13 17:59:52,952 [DEBUG][       Thread-263336][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 17:59:52,952 [DEBUG][       Thread-263336][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 17:59:52,952 [DEBUG][       Thread-263336][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 17:59:52,952 [DEBUG][       Thread-263336][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 17:59:52,952 [DEBUG][       Thread-263336][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 17:59:52,952 [DEBUG][       Thread-263336][   transport.py][1871] : Compression: none
2025-06-13 17:59:52,952 [DEBUG][       Thread-263336][   transport.py][1871] : === End of kex handshake ===
2025-06-13 17:59:53,010 [DEBUG][       Thread-263336][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 17:59:53,011 [DEBUG][       Thread-263336][   transport.py][1871] : Switch to new keys ...
2025-06-13 17:59:53,020 [DEBUG][       Thread-263336][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 17:59:53,020 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 17:59:53,021 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 17:59:53,066 [DEBUG][       Thread-263336][   transport.py][1871] : userauth is OK
2025-06-13 17:59:53,067 [DEBUG][       Thread-263336][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 17:59:53,067 [DEBUG][       Thread-263336][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 17:59:53,067 [DEBUG][       Thread-263336][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 17:59:53,067 [DEBUG][       Thread-263336][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 17:59:53,085 [ INFO][       Thread-263336][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 17:59:53,086 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 17:59:53,086 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 17:59:54,107 [DEBUG][       Thread-263336][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 17:59:54,107 [DEBUG][       Thread-263336][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 17:59:54,156 [DEBUG][       Thread-263336][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 17:59:54,156 [DEBUG][       Thread-263336][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 17:59:54,165 [DEBUG][       Thread-263336][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 17:59:54,175 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 17:59:54,175 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 17:59:54,184 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 17:59:54,193 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 17:59:54,194 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 17:59:54,194 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 17:59:54,202 [DEBUG][       Thread-263336][   transport.py][1871] : EOF in transport thread
2025-06-13 18:00:01,007 [DEBUG][Thread-263338 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 18:00:04,204 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 18:00:04,204 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 18:00:04,204 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 18:00:04,205 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 18:00:04,691 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 17, 59, 58), 16.01, 32.53, 0.0, 15.44, 11.67, 0, 0, 0, 2, 0, 0),)
2025-06-13 18:00:04,692 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 17:59:58
2025-06-13 18:00:04,775 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 18:00:04,779 [DEBUG][       Thread-263339][   transport.py][1871] : starting thread (client mode): 0x863698a0
2025-06-13 18:00:04,779 [DEBUG][       Thread-263339][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 18:00:04,800 [DEBUG][       Thread-263339][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 18:00:04,800 [ INFO][       Thread-263339][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 18:00:04,804 [DEBUG][       Thread-263339][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 18:00:04,804 [DEBUG][       Thread-263339][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 18:00:04,804 [DEBUG][       Thread-263339][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 18:00:04,804 [DEBUG][       Thread-263339][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 18:00:04,804 [DEBUG][       Thread-263339][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 18:00:04,804 [DEBUG][       Thread-263339][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 18:00:04,804 [DEBUG][       Thread-263339][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 18:00:04,804 [DEBUG][       Thread-263339][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 18:00:04,804 [DEBUG][       Thread-263339][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 18:00:04,804 [DEBUG][       Thread-263339][   transport.py][1871] : client lang: <none>
2025-06-13 18:00:04,804 [DEBUG][       Thread-263339][   transport.py][1871] : server lang: <none>
2025-06-13 18:00:04,804 [DEBUG][       Thread-263339][   transport.py][1871] : kex follows: False
2025-06-13 18:00:04,804 [DEBUG][       Thread-263339][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 18:00:04,804 [DEBUG][       Thread-263339][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 18:00:04,804 [DEBUG][       Thread-263339][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 18:00:04,804 [DEBUG][       Thread-263339][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 18:00:04,804 [DEBUG][       Thread-263339][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 18:00:04,804 [DEBUG][       Thread-263339][   transport.py][1871] : Compression: none
2025-06-13 18:00:04,804 [DEBUG][       Thread-263339][   transport.py][1871] : === End of kex handshake ===
2025-06-13 18:00:04,819 [DEBUG][       Thread-263339][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 18:00:04,819 [DEBUG][       Thread-263339][   transport.py][1871] : Switch to new keys ...
2025-06-13 18:00:04,820 [DEBUG][       Thread-263339][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 18:00:04,820 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 18:00:04,820 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 18:00:04,820 [DEBUG][       Thread-263339][   transport.py][1871] : userauth is OK
2025-06-13 18:00:04,845 [ INFO][       Thread-263339][   transport.py][1871] : Authentication (password) successful!
2025-06-13 18:00:04,845 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 18:00:10,028 [DEBUG][Thread-263341 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 18:00:12,540 [DEBUG][       Thread-263339][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 18:00:12,540 [DEBUG][       Thread-263339][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 18:00:12,581 [DEBUG][       Thread-263339][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 18:00:12,581 [DEBUG][       Thread-263339][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 18:00:12,584 [DEBUG][       Thread-263339][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 18:00:12,737 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 18:00:12,738 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 18:00:12,740 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 18:00:12,742 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 18:00:12,771 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 18:00:12,773 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 18:00:12,773 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 18:00:12,774 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 18:00:12,774 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.666253 -999.00  +11.50  17.31     37   -2.50 1 1 1 1 1   474    0 13.91 2.46 ----- 18.1 17.3 45.2 20.0 11.8 -29.3 11.7 -29.4 11.4 -28.5 11.7 -28.4
2025-06-13 18:00:12,774 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 18:00:12,774 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 18:00:12,774 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.666253
2025-06-13 18:00:12,774 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 18:00:12,775 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 18:00:12,775 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 18:00:12,775 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 18:00:12,775 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 18:00:12,775 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T17:59:58', tmtdew=16.01, humidity=32.53, cloud=0.0, wind=15.44, temperature=11.67, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T15:59:24.259', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 18:00:12,776 [DEBUG][       Thread-263339][   transport.py][1871] : EOF in transport thread
2025-06-13 18:00:12,861 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 18:00:12,881 [DEBUG][       Thread-263343][   transport.py][1871] : starting thread (client mode): 0x863efbe0
2025-06-13 18:00:12,881 [DEBUG][       Thread-263343][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 18:00:12,895 [DEBUG][       Thread-263343][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 18:00:12,895 [ INFO][       Thread-263343][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 18:00:12,903 [DEBUG][       Thread-263343][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 18:00:12,903 [DEBUG][       Thread-263343][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 18:00:12,903 [DEBUG][       Thread-263343][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 18:00:12,903 [DEBUG][       Thread-263343][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 18:00:12,903 [DEBUG][       Thread-263343][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 18:00:12,904 [DEBUG][       Thread-263343][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 18:00:12,904 [DEBUG][       Thread-263343][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 18:00:12,904 [DEBUG][       Thread-263343][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 18:00:12,904 [DEBUG][       Thread-263343][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 18:00:12,904 [DEBUG][       Thread-263343][   transport.py][1871] : client lang: <none>
2025-06-13 18:00:12,904 [DEBUG][       Thread-263343][   transport.py][1871] : server lang: <none>
2025-06-13 18:00:12,904 [DEBUG][       Thread-263343][   transport.py][1871] : kex follows: False
2025-06-13 18:00:12,904 [DEBUG][       Thread-263343][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 18:00:12,904 [DEBUG][       Thread-263343][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 18:00:12,904 [DEBUG][       Thread-263343][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 18:00:12,904 [DEBUG][       Thread-263343][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 18:00:12,904 [DEBUG][       Thread-263343][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 18:00:12,904 [DEBUG][       Thread-263343][   transport.py][1871] : Compression: none
2025-06-13 18:00:12,904 [DEBUG][       Thread-263343][   transport.py][1871] : === End of kex handshake ===
2025-06-13 18:00:12,962 [DEBUG][       Thread-263343][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 18:00:12,962 [DEBUG][       Thread-263343][   transport.py][1871] : Switch to new keys ...
2025-06-13 18:00:12,963 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 18:00:12,963 [DEBUG][       Thread-263343][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 18:00:12,964 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 18:00:13,018 [DEBUG][       Thread-263343][   transport.py][1871] : userauth is OK
2025-06-13 18:00:13,019 [DEBUG][       Thread-263343][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 18:00:13,019 [DEBUG][       Thread-263343][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 18:00:13,019 [DEBUG][       Thread-263343][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 18:00:13,019 [DEBUG][       Thread-263343][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 18:00:13,038 [ INFO][       Thread-263343][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 18:00:13,038 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 18:00:13,039 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 18:00:14,035 [DEBUG][       Thread-263343][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 18:00:14,035 [DEBUG][       Thread-263343][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 18:00:14,084 [DEBUG][       Thread-263343][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 18:00:14,084 [DEBUG][       Thread-263343][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 18:00:14,093 [DEBUG][       Thread-263343][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 18:00:14,102 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 18:00:14,102 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 18:00:14,111 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 18:00:14,120 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 18:00:14,121 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 18:00:14,121 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 18:00:14,129 [DEBUG][       Thread-263343][   transport.py][1871] : EOF in transport thread
2025-06-13 18:00:19,050 [DEBUG][Thread-263345 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 18:00:24,131 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 18:00:24,132 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 18:00:24,141 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 18:00:24,143 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 18:00:24,611 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 17, 59, 58), 16.01, 32.53, 0.0, 15.44, 11.67, 0, 0, 0, 2, 0, 0),)
2025-06-13 18:00:24,611 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 17:59:58
2025-06-13 18:00:24,692 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 18:00:24,698 [DEBUG][       Thread-263346][   transport.py][1871] : starting thread (client mode): 0x867fdbd0
2025-06-13 18:00:24,698 [DEBUG][       Thread-263346][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 18:00:24,719 [DEBUG][       Thread-263346][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 18:00:24,719 [ INFO][       Thread-263346][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 18:00:24,722 [DEBUG][       Thread-263346][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 18:00:24,722 [DEBUG][       Thread-263346][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 18:00:24,722 [DEBUG][       Thread-263346][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 18:00:24,722 [DEBUG][       Thread-263346][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 18:00:24,722 [DEBUG][       Thread-263346][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 18:00:24,723 [DEBUG][       Thread-263346][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 18:00:24,723 [DEBUG][       Thread-263346][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 18:00:24,723 [DEBUG][       Thread-263346][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 18:00:24,723 [DEBUG][       Thread-263346][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 18:00:24,723 [DEBUG][       Thread-263346][   transport.py][1871] : client lang: <none>
2025-06-13 18:00:24,723 [DEBUG][       Thread-263346][   transport.py][1871] : server lang: <none>
2025-06-13 18:00:24,723 [DEBUG][       Thread-263346][   transport.py][1871] : kex follows: False
2025-06-13 18:00:24,723 [DEBUG][       Thread-263346][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 18:00:24,723 [DEBUG][       Thread-263346][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 18:00:24,723 [DEBUG][       Thread-263346][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 18:00:24,723 [DEBUG][       Thread-263346][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 18:00:24,723 [DEBUG][       Thread-263346][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 18:00:24,723 [DEBUG][       Thread-263346][   transport.py][1871] : Compression: none
2025-06-13 18:00:24,723 [DEBUG][       Thread-263346][   transport.py][1871] : === End of kex handshake ===
2025-06-13 18:00:24,740 [DEBUG][       Thread-263346][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 18:00:24,741 [DEBUG][       Thread-263346][   transport.py][1871] : Switch to new keys ...
2025-06-13 18:00:24,741 [DEBUG][       Thread-263346][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 18:00:24,742 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 18:00:24,742 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 18:00:24,743 [DEBUG][       Thread-263346][   transport.py][1871] : userauth is OK
2025-06-13 18:00:24,767 [ INFO][       Thread-263346][   transport.py][1871] : Authentication (password) successful!
2025-06-13 18:00:24,768 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 18:00:25,395 [DEBUG][       Thread-263346][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 18:00:25,395 [DEBUG][       Thread-263346][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 18:00:25,437 [DEBUG][       Thread-263346][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 18:00:25,437 [DEBUG][       Thread-263346][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 18:00:25,444 [DEBUG][       Thread-263346][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 18:00:25,456 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 18:00:25,456 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 18:00:25,459 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 18:00:25,463 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 18:00:25,467 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 18:00:25,469 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 18:00:25,469 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 18:00:25,470 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 18:00:25,470 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.666600 -999.00  +11.50  15.48     37   -2.50 1 1 1 1 1   452    0 13.86 2.73 ----- 17.0 15.5 46.0 21.3 11.8 -29.3 11.6 -29.4 11.3 -28.4 11.7 -28.4
2025-06-13 18:00:25,470 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 18:00:25,470 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 18:00:25,470 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.666600
2025-06-13 18:00:25,471 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 18:00:25,471 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 18:00:25,471 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 18:00:25,471 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 18:00:25,471 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 18:00:25,472 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T17:59:58', tmtdew=16.01, humidity=32.53, cloud=0.0, wind=15.44, temperature=11.67, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T15:59:54.240', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 18:00:25,472 [DEBUG][       Thread-263346][   transport.py][1871] : EOF in transport thread
2025-06-13 18:00:25,555 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 18:00:25,564 [DEBUG][       Thread-263349][   transport.py][1871] : starting thread (client mode): 0x863beda0
2025-06-13 18:00:25,565 [DEBUG][       Thread-263349][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 18:00:25,579 [DEBUG][       Thread-263349][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 18:00:25,579 [ INFO][       Thread-263349][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 18:00:25,587 [DEBUG][       Thread-263349][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 18:00:25,587 [DEBUG][       Thread-263349][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 18:00:25,587 [DEBUG][       Thread-263349][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 18:00:25,587 [DEBUG][       Thread-263349][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 18:00:25,587 [DEBUG][       Thread-263349][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 18:00:25,587 [DEBUG][       Thread-263349][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 18:00:25,587 [DEBUG][       Thread-263349][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 18:00:25,587 [DEBUG][       Thread-263349][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 18:00:25,587 [DEBUG][       Thread-263349][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 18:00:25,587 [DEBUG][       Thread-263349][   transport.py][1871] : client lang: <none>
2025-06-13 18:00:25,587 [DEBUG][       Thread-263349][   transport.py][1871] : server lang: <none>
2025-06-13 18:00:25,587 [DEBUG][       Thread-263349][   transport.py][1871] : kex follows: False
2025-06-13 18:00:25,587 [DEBUG][       Thread-263349][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 18:00:25,587 [DEBUG][       Thread-263349][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 18:00:25,587 [DEBUG][       Thread-263349][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 18:00:25,587 [DEBUG][       Thread-263349][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 18:00:25,588 [DEBUG][       Thread-263349][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 18:00:25,588 [DEBUG][       Thread-263349][   transport.py][1871] : Compression: none
2025-06-13 18:00:25,588 [DEBUG][       Thread-263349][   transport.py][1871] : === End of kex handshake ===
2025-06-13 18:00:25,646 [DEBUG][       Thread-263349][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 18:00:25,647 [DEBUG][       Thread-263349][   transport.py][1871] : Switch to new keys ...
2025-06-13 18:00:25,647 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 18:00:25,648 [DEBUG][       Thread-263349][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 18:00:25,648 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 18:00:25,706 [DEBUG][       Thread-263349][   transport.py][1871] : userauth is OK
2025-06-13 18:00:25,706 [DEBUG][       Thread-263349][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 18:00:25,706 [DEBUG][       Thread-263349][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 18:00:25,706 [DEBUG][       Thread-263349][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 18:00:25,706 [DEBUG][       Thread-263349][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 18:00:25,725 [ INFO][       Thread-263349][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 18:00:25,726 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 18:00:25,726 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 18:00:26,739 [DEBUG][       Thread-263349][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 18:00:26,739 [DEBUG][       Thread-263349][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 18:00:26,788 [DEBUG][       Thread-263349][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 18:00:26,788 [DEBUG][       Thread-263349][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 18:00:26,803 [DEBUG][       Thread-263349][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 18:00:26,812 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 18:00:26,812 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 18:00:26,821 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 18:00:26,830 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 18:00:26,830 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 18:00:26,831 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 18:00:26,839 [DEBUG][       Thread-263349][   transport.py][1871] : EOF in transport thread
2025-06-13 18:00:28,082 [DEBUG][Thread-263351 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 18:00:28,386 [DEBUG][Thread-263352 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 18:00:36,841 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 18:00:36,842 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 18:00:36,842 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 18:00:36,845 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 18:00:37,101 [DEBUG][Thread-263353 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 18:00:37,307 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 18, 0, 30), 16.01, 32.61, 0.0, 15.18, 11.64, 0, 0, 0, 2, 0, 0),)
2025-06-13 18:00:37,307 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 18:00:30
2025-06-13 18:00:37,389 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 18:00:37,393 [DEBUG][       Thread-263354][   transport.py][1871] : starting thread (client mode): 0x863c8610
2025-06-13 18:00:37,393 [DEBUG][       Thread-263354][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 18:00:37,415 [DEBUG][       Thread-263354][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 18:00:37,415 [ INFO][       Thread-263354][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 18:00:37,419 [DEBUG][       Thread-263354][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 18:00:37,419 [DEBUG][       Thread-263354][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 18:00:37,419 [DEBUG][       Thread-263354][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 18:00:37,419 [DEBUG][       Thread-263354][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 18:00:37,419 [DEBUG][       Thread-263354][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 18:00:37,419 [DEBUG][       Thread-263354][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 18:00:37,419 [DEBUG][       Thread-263354][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 18:00:37,419 [DEBUG][       Thread-263354][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 18:00:37,419 [DEBUG][       Thread-263354][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 18:00:37,419 [DEBUG][       Thread-263354][   transport.py][1871] : client lang: <none>
2025-06-13 18:00:37,419 [DEBUG][       Thread-263354][   transport.py][1871] : server lang: <none>
2025-06-13 18:00:37,419 [DEBUG][       Thread-263354][   transport.py][1871] : kex follows: False
2025-06-13 18:00:37,419 [DEBUG][       Thread-263354][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 18:00:37,420 [DEBUG][       Thread-263354][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 18:00:37,420 [DEBUG][       Thread-263354][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 18:00:37,420 [DEBUG][       Thread-263354][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 18:00:37,420 [DEBUG][       Thread-263354][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 18:00:37,420 [DEBUG][       Thread-263354][   transport.py][1871] : Compression: none
2025-06-13 18:00:37,420 [DEBUG][       Thread-263354][   transport.py][1871] : === End of kex handshake ===
2025-06-13 18:00:37,439 [DEBUG][       Thread-263354][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 18:00:37,439 [DEBUG][       Thread-263354][   transport.py][1871] : Switch to new keys ...
2025-06-13 18:00:37,439 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 18:00:37,440 [DEBUG][       Thread-263354][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 18:00:37,440 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 18:00:37,441 [DEBUG][       Thread-263354][   transport.py][1871] : userauth is OK
2025-06-13 18:00:37,465 [ INFO][       Thread-263354][   transport.py][1871] : Authentication (password) successful!
2025-06-13 18:00:37,466 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 18:00:38,075 [DEBUG][       Thread-263354][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 18:00:38,075 [DEBUG][       Thread-263354][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 18:00:38,117 [DEBUG][       Thread-263354][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 18:00:38,117 [DEBUG][       Thread-263354][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 18:00:38,120 [DEBUG][       Thread-263354][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 18:00:38,135 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 18:00:38,136 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 18:00:38,138 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 18:00:38,140 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 18:00:38,147 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 18:00:38,148 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 18:00:38,149 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 18:00:38,149 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 18:00:38,150 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.666600 -999.00  +11.50  15.48     37   -2.50 1 1 1 1 1   452    0 13.86 2.73 ----- 17.0 15.5 46.0 21.3 11.8 -29.3 11.6 -29.4 11.3 -28.4 11.7 -28.4
2025-06-13 18:00:38,150 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 18:00:38,150 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 18:00:38,150 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.666600
2025-06-13 18:00:38,150 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 18:00:38,151 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 18:00:38,151 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 18:00:38,151 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 18:00:38,151 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 18:00:38,151 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T18:00:30', tmtdew=16.01, humidity=32.61, cloud=0.0, wind=15.18, temperature=11.64, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T15:59:54.240', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 18:00:38,151 [DEBUG][       Thread-263354][   transport.py][1871] : EOF in transport thread
2025-06-13 18:00:38,235 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 18:00:38,246 [DEBUG][       Thread-263357][   transport.py][1871] : starting thread (client mode): 0x863beda0
2025-06-13 18:00:38,246 [DEBUG][       Thread-263357][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 18:00:38,263 [DEBUG][       Thread-263357][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 18:00:38,264 [ INFO][       Thread-263357][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 18:00:38,271 [DEBUG][       Thread-263357][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 18:00:38,271 [DEBUG][       Thread-263357][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 18:00:38,271 [DEBUG][       Thread-263357][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 18:00:38,271 [DEBUG][       Thread-263357][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 18:00:38,271 [DEBUG][       Thread-263357][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 18:00:38,271 [DEBUG][       Thread-263357][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 18:00:38,271 [DEBUG][       Thread-263357][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 18:00:38,271 [DEBUG][       Thread-263357][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 18:00:38,271 [DEBUG][       Thread-263357][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 18:00:38,271 [DEBUG][       Thread-263357][   transport.py][1871] : client lang: <none>
2025-06-13 18:00:38,272 [DEBUG][       Thread-263357][   transport.py][1871] : server lang: <none>
2025-06-13 18:00:38,272 [DEBUG][       Thread-263357][   transport.py][1871] : kex follows: False
2025-06-13 18:00:38,272 [DEBUG][       Thread-263357][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 18:00:38,272 [DEBUG][       Thread-263357][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 18:00:38,272 [DEBUG][       Thread-263357][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 18:00:38,272 [DEBUG][       Thread-263357][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 18:00:38,272 [DEBUG][       Thread-263357][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 18:00:38,272 [DEBUG][       Thread-263357][   transport.py][1871] : Compression: none
2025-06-13 18:00:38,272 [DEBUG][       Thread-263357][   transport.py][1871] : === End of kex handshake ===
2025-06-13 18:00:38,330 [DEBUG][       Thread-263357][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 18:00:38,331 [DEBUG][       Thread-263357][   transport.py][1871] : Switch to new keys ...
2025-06-13 18:00:38,331 [DEBUG][       Thread-263357][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 18:00:38,332 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 18:00:38,332 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 18:00:38,346 [DEBUG][Thread-263359 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 18:00:38,385 [DEBUG][       Thread-263357][   transport.py][1871] : userauth is OK
2025-06-13 18:00:38,385 [DEBUG][       Thread-263357][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 18:00:38,385 [DEBUG][       Thread-263357][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 18:00:38,385 [DEBUG][       Thread-263357][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 18:00:38,385 [DEBUG][       Thread-263357][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 18:00:38,403 [ INFO][       Thread-263357][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 18:00:38,403 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 18:00:38,403 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 18:00:39,422 [DEBUG][       Thread-263357][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 18:00:39,422 [DEBUG][       Thread-263357][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 18:00:39,450 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 18:00:39,450 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 18:00:39,472 [DEBUG][       Thread-263357][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 18:00:39,472 [DEBUG][       Thread-263357][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 18:00:39,481 [DEBUG][       Thread-263357][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 18:00:39,489 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 18:00:39,489 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 18:00:39,499 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 18:00:39,509 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 18:00:39,509 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 18:00:39,509 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 18:00:39,518 [DEBUG][       Thread-263357][   transport.py][1871] : EOF in transport thread
2025-06-13 18:00:43,692 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 18:00:43,692 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 18:00:46,117 [DEBUG][Thread-263360 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 18:00:49,519 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 18:00:49,519 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 18:00:49,519 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 18:00:49,522 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 18:00:49,994 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 18, 0, 30), 16.01, 32.61, 0.0, 15.18, 11.64, 0, 0, 0, 2, 0, 0),)
2025-06-13 18:00:49,994 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 18:00:30
2025-06-13 18:00:50,075 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 18:00:50,081 [DEBUG][       Thread-263361][   transport.py][1871] : starting thread (client mode): 0x86352350
2025-06-13 18:00:50,081 [DEBUG][       Thread-263361][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 18:00:50,102 [DEBUG][       Thread-263361][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 18:00:50,102 [ INFO][       Thread-263361][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 18:00:50,105 [DEBUG][       Thread-263361][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 18:00:50,105 [DEBUG][       Thread-263361][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 18:00:50,105 [DEBUG][       Thread-263361][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 18:00:50,105 [DEBUG][       Thread-263361][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 18:00:50,105 [DEBUG][       Thread-263361][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 18:00:50,105 [DEBUG][       Thread-263361][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 18:00:50,105 [DEBUG][       Thread-263361][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 18:00:50,105 [DEBUG][       Thread-263361][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 18:00:50,105 [DEBUG][       Thread-263361][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 18:00:50,105 [DEBUG][       Thread-263361][   transport.py][1871] : client lang: <none>
2025-06-13 18:00:50,105 [DEBUG][       Thread-263361][   transport.py][1871] : server lang: <none>
2025-06-13 18:00:50,105 [DEBUG][       Thread-263361][   transport.py][1871] : kex follows: False
2025-06-13 18:00:50,105 [DEBUG][       Thread-263361][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 18:00:50,105 [DEBUG][       Thread-263361][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 18:00:50,105 [DEBUG][       Thread-263361][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 18:00:50,105 [DEBUG][       Thread-263361][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 18:00:50,105 [DEBUG][       Thread-263361][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 18:00:50,105 [DEBUG][       Thread-263361][   transport.py][1871] : Compression: none
2025-06-13 18:00:50,105 [DEBUG][       Thread-263361][   transport.py][1871] : === End of kex handshake ===
2025-06-13 18:00:50,120 [DEBUG][       Thread-263361][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 18:00:50,121 [DEBUG][       Thread-263361][   transport.py][1871] : Switch to new keys ...
2025-06-13 18:00:50,121 [DEBUG][       Thread-263361][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 18:00:50,121 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 18:00:50,122 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 18:00:50,123 [DEBUG][       Thread-263361][   transport.py][1871] : userauth is OK
2025-06-13 18:00:50,147 [ INFO][       Thread-263361][   transport.py][1871] : Authentication (password) successful!
2025-06-13 18:00:50,147 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 18:00:50,792 [DEBUG][       Thread-263361][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 18:00:50,793 [DEBUG][       Thread-263361][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 18:00:50,837 [DEBUG][       Thread-263361][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 18:00:50,837 [DEBUG][       Thread-263361][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 18:00:50,841 [DEBUG][       Thread-263361][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 18:00:50,852 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 18:00:50,852 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 18:00:50,854 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 18:00:50,856 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 18:00:50,861 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 18:00:50,863 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 18:00:50,863 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 18:00:50,864 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 18:00:50,864 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.666600 -999.00  +11.50  15.48     37   -2.50 1 1 1 1 1   452    0 13.86 2.73 ----- 17.0 15.5 46.0 21.3 11.8 -29.3 11.6 -29.4 11.3 -28.4 11.7 -28.4
2025-06-13 18:00:50,864 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 18:00:50,864 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 18:00:50,864 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.666600
2025-06-13 18:00:50,864 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 18:00:50,865 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 18:00:50,865 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 18:00:50,865 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 18:00:50,865 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 18:00:50,865 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T18:00:30', tmtdew=16.01, humidity=32.61, cloud=0.0, wind=15.18, temperature=11.64, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T15:59:54.240', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 18:00:50,866 [DEBUG][       Thread-263361][   transport.py][1871] : EOF in transport thread
2025-06-13 18:00:50,948 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 18:00:50,961 [DEBUG][       Thread-263364][   transport.py][1871] : starting thread (client mode): 0x86893fd0
2025-06-13 18:00:50,961 [DEBUG][       Thread-263364][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 18:00:50,976 [DEBUG][       Thread-263364][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 18:00:50,976 [ INFO][       Thread-263364][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 18:00:50,983 [DEBUG][       Thread-263364][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 18:00:50,983 [DEBUG][       Thread-263364][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 18:00:50,984 [DEBUG][       Thread-263364][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 18:00:50,984 [DEBUG][       Thread-263364][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 18:00:50,984 [DEBUG][       Thread-263364][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 18:00:50,984 [DEBUG][       Thread-263364][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 18:00:50,984 [DEBUG][       Thread-263364][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 18:00:50,984 [DEBUG][       Thread-263364][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 18:00:50,984 [DEBUG][       Thread-263364][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 18:00:50,984 [DEBUG][       Thread-263364][   transport.py][1871] : client lang: <none>
2025-06-13 18:00:50,984 [DEBUG][       Thread-263364][   transport.py][1871] : server lang: <none>
2025-06-13 18:00:50,984 [DEBUG][       Thread-263364][   transport.py][1871] : kex follows: False
2025-06-13 18:00:50,984 [DEBUG][       Thread-263364][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 18:00:50,984 [DEBUG][       Thread-263364][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 18:00:50,984 [DEBUG][       Thread-263364][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 18:00:50,984 [DEBUG][       Thread-263364][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 18:00:50,985 [DEBUG][       Thread-263364][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 18:00:50,985 [DEBUG][       Thread-263364][   transport.py][1871] : Compression: none
2025-06-13 18:00:50,985 [DEBUG][       Thread-263364][   transport.py][1871] : === End of kex handshake ===
2025-06-13 18:00:51,043 [DEBUG][       Thread-263364][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 18:00:51,044 [DEBUG][       Thread-263364][   transport.py][1871] : Switch to new keys ...
2025-06-13 18:00:51,044 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 18:00:51,045 [DEBUG][       Thread-263364][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 18:00:51,046 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 18:00:51,101 [DEBUG][       Thread-263364][   transport.py][1871] : userauth is OK
2025-06-13 18:00:51,102 [DEBUG][       Thread-263364][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 18:00:51,102 [DEBUG][       Thread-263364][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 18:00:51,102 [DEBUG][       Thread-263364][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 18:00:51,102 [DEBUG][       Thread-263364][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 18:00:51,121 [ INFO][       Thread-263364][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 18:00:51,121 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 18:00:51,121 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 18:00:52,135 [DEBUG][       Thread-263364][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 18:00:52,136 [DEBUG][       Thread-263364][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 18:00:52,186 [DEBUG][       Thread-263364][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 18:00:52,186 [DEBUG][       Thread-263364][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 18:00:52,197 [DEBUG][       Thread-263364][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 18:00:52,209 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 18:00:52,209 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 18:00:52,220 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 18:00:52,229 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 18:00:52,229 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 18:00:52,230 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 18:00:52,241 [DEBUG][       Thread-263364][   transport.py][1871] : EOF in transport thread
2025-06-13 18:00:55,141 [DEBUG][Thread-263366 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 18:01:02,240 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 18:01:02,240 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 18:01:02,241 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 18:01:02,243 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 18:01:02,702 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 18, 0, 30), 16.01, 32.61, 0.0, 15.18, 11.64, 0, 0, 0, 2, 0, 0),)
2025-06-13 18:01:02,702 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 18:00:30
2025-06-13 18:01:02,784 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 18:01:02,787 [DEBUG][       Thread-263367][   transport.py][1871] : starting thread (client mode): 0x86351150
2025-06-13 18:01:02,788 [DEBUG][       Thread-263367][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 18:01:02,808 [DEBUG][       Thread-263367][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 18:01:02,808 [ INFO][       Thread-263367][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 18:01:02,812 [DEBUG][       Thread-263367][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 18:01:02,812 [DEBUG][       Thread-263367][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 18:01:02,812 [DEBUG][       Thread-263367][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 18:01:02,812 [DEBUG][       Thread-263367][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 18:01:02,812 [DEBUG][       Thread-263367][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 18:01:02,812 [DEBUG][       Thread-263367][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 18:01:02,812 [DEBUG][       Thread-263367][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 18:01:02,812 [DEBUG][       Thread-263367][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 18:01:02,812 [DEBUG][       Thread-263367][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 18:01:02,812 [DEBUG][       Thread-263367][   transport.py][1871] : client lang: <none>
2025-06-13 18:01:02,812 [DEBUG][       Thread-263367][   transport.py][1871] : server lang: <none>
2025-06-13 18:01:02,812 [DEBUG][       Thread-263367][   transport.py][1871] : kex follows: False
2025-06-13 18:01:02,812 [DEBUG][       Thread-263367][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 18:01:02,812 [DEBUG][       Thread-263367][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 18:01:02,812 [DEBUG][       Thread-263367][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 18:01:02,812 [DEBUG][       Thread-263367][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 18:01:02,812 [DEBUG][       Thread-263367][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 18:01:02,812 [DEBUG][       Thread-263367][   transport.py][1871] : Compression: none
2025-06-13 18:01:02,812 [DEBUG][       Thread-263367][   transport.py][1871] : === End of kex handshake ===
2025-06-13 18:01:02,827 [DEBUG][       Thread-263367][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 18:01:02,827 [DEBUG][       Thread-263367][   transport.py][1871] : Switch to new keys ...
2025-06-13 18:01:02,828 [DEBUG][       Thread-263367][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 18:01:02,828 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 18:01:02,828 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 18:01:02,828 [DEBUG][       Thread-263367][   transport.py][1871] : userauth is OK
2025-06-13 18:01:02,841 [ INFO][       Thread-263367][   transport.py][1871] : Authentication (password) successful!
2025-06-13 18:01:02,841 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 18:01:03,471 [DEBUG][       Thread-263367][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 18:01:03,471 [DEBUG][       Thread-263367][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 18:01:03,512 [DEBUG][       Thread-263367][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 18:01:03,512 [DEBUG][       Thread-263367][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 18:01:03,514 [DEBUG][       Thread-263367][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 18:01:03,528 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 18:01:03,528 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 18:01:03,529 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 18:01:03,530 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 18:01:03,532 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 18:01:03,533 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 18:01:03,533 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 18:01:03,533 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 18:01:03,533 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.666947 -999.00  +11.40  20.78     37   -2.50 1 1 1 1 1   431    0 14.16 3.19 ----- 19.1 20.8 45.4 22.9 11.7 -29.4 11.7 -29.2 11.4 -28.3 11.7 -28.5
2025-06-13 18:01:03,533 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 18:01:03,533 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 18:01:03,533 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.666947
2025-06-13 18:01:03,533 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 18:01:03,534 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 18:01:03,534 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 18:01:03,534 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 18:01:03,534 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 18:01:03,534 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T18:00:30', tmtdew=16.01, humidity=32.61, cloud=0.0, wind=15.18, temperature=11.64, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T16:00:24.221', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 18:01:03,535 [DEBUG][       Thread-263367][   transport.py][1871] : EOF in transport thread
2025-06-13 18:01:03,609 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 18:01:03,618 [DEBUG][       Thread-263370][   transport.py][1871] : starting thread (client mode): 0x8636aa10
2025-06-13 18:01:03,618 [DEBUG][       Thread-263370][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 18:01:03,633 [DEBUG][       Thread-263370][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 18:01:03,633 [ INFO][       Thread-263370][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 18:01:03,640 [DEBUG][       Thread-263370][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 18:01:03,640 [DEBUG][       Thread-263370][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 18:01:03,640 [DEBUG][       Thread-263370][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 18:01:03,640 [DEBUG][       Thread-263370][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 18:01:03,640 [DEBUG][       Thread-263370][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 18:01:03,640 [DEBUG][       Thread-263370][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 18:01:03,640 [DEBUG][       Thread-263370][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 18:01:03,640 [DEBUG][       Thread-263370][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 18:01:03,640 [DEBUG][       Thread-263370][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 18:01:03,640 [DEBUG][       Thread-263370][   transport.py][1871] : client lang: <none>
2025-06-13 18:01:03,640 [DEBUG][       Thread-263370][   transport.py][1871] : server lang: <none>
2025-06-13 18:01:03,640 [DEBUG][       Thread-263370][   transport.py][1871] : kex follows: False
2025-06-13 18:01:03,640 [DEBUG][       Thread-263370][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 18:01:03,640 [DEBUG][       Thread-263370][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 18:01:03,640 [DEBUG][       Thread-263370][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 18:01:03,640 [DEBUG][       Thread-263370][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 18:01:03,640 [DEBUG][       Thread-263370][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 18:01:03,640 [DEBUG][       Thread-263370][   transport.py][1871] : Compression: none
2025-06-13 18:01:03,640 [DEBUG][       Thread-263370][   transport.py][1871] : === End of kex handshake ===
2025-06-13 18:01:03,698 [DEBUG][       Thread-263370][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 18:01:03,698 [DEBUG][       Thread-263370][   transport.py][1871] : Switch to new keys ...
2025-06-13 18:01:03,698 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 18:01:03,698 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 18:01:03,698 [DEBUG][       Thread-263370][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 18:01:03,759 [DEBUG][       Thread-263370][   transport.py][1871] : userauth is OK
2025-06-13 18:01:03,759 [DEBUG][       Thread-263370][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 18:01:03,759 [DEBUG][       Thread-263370][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 18:01:03,759 [DEBUG][       Thread-263370][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 18:01:03,759 [DEBUG][       Thread-263370][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 18:01:03,773 [ INFO][       Thread-263370][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 18:01:03,773 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 18:01:03,773 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 18:01:04,159 [DEBUG][Thread-263372 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 18:01:04,814 [DEBUG][       Thread-263370][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 18:01:04,815 [DEBUG][       Thread-263370][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 18:01:04,864 [DEBUG][       Thread-263370][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 18:01:04,865 [DEBUG][       Thread-263370][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 18:01:04,874 [DEBUG][       Thread-263370][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 18:01:04,883 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 18:01:04,883 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 18:01:04,892 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 18:01:04,900 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 18:01:04,901 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 18:01:04,901 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 18:01:04,911 [DEBUG][       Thread-263370][   transport.py][1871] : EOF in transport thread
2025-06-13 18:01:13,179 [DEBUG][Thread-263373 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 18:01:14,911 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 18:01:14,912 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 18:01:14,912 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 18:01:14,915 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 18:01:15,380 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 18, 1, 2), 16.02, 32.59, 0.0, 14.15, 11.64, 0, 0, 0, 2, 0, 0),)
2025-06-13 18:01:15,381 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 18:01:02
2025-06-13 18:01:15,461 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 18:01:15,467 [DEBUG][       Thread-263374][   transport.py][1871] : starting thread (client mode): 0x863523e0
2025-06-13 18:01:15,467 [DEBUG][       Thread-263374][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 18:01:15,487 [DEBUG][       Thread-263374][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 18:01:15,487 [ INFO][       Thread-263374][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 18:01:15,490 [DEBUG][       Thread-263374][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 18:01:15,491 [DEBUG][       Thread-263374][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 18:01:15,491 [DEBUG][       Thread-263374][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 18:01:15,491 [DEBUG][       Thread-263374][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 18:01:15,491 [DEBUG][       Thread-263374][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 18:01:15,491 [DEBUG][       Thread-263374][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 18:01:15,491 [DEBUG][       Thread-263374][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 18:01:15,491 [DEBUG][       Thread-263374][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 18:01:15,491 [DEBUG][       Thread-263374][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 18:01:15,491 [DEBUG][       Thread-263374][   transport.py][1871] : client lang: <none>
2025-06-13 18:01:15,491 [DEBUG][       Thread-263374][   transport.py][1871] : server lang: <none>
2025-06-13 18:01:15,491 [DEBUG][       Thread-263374][   transport.py][1871] : kex follows: False
2025-06-13 18:01:15,491 [DEBUG][       Thread-263374][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 18:01:15,491 [DEBUG][       Thread-263374][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 18:01:15,491 [DEBUG][       Thread-263374][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 18:01:15,491 [DEBUG][       Thread-263374][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 18:01:15,491 [DEBUG][       Thread-263374][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 18:01:15,491 [DEBUG][       Thread-263374][   transport.py][1871] : Compression: none
2025-06-13 18:01:15,491 [DEBUG][       Thread-263374][   transport.py][1871] : === End of kex handshake ===
2025-06-13 18:01:15,499 [DEBUG][       Thread-263374][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 18:01:15,500 [DEBUG][       Thread-263374][   transport.py][1871] : Switch to new keys ...
2025-06-13 18:01:15,500 [DEBUG][       Thread-263374][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 18:01:15,501 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 18:01:15,501 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 18:01:15,502 [DEBUG][       Thread-263374][   transport.py][1871] : userauth is OK
2025-06-13 18:01:15,515 [ INFO][       Thread-263374][   transport.py][1871] : Authentication (password) successful!
2025-06-13 18:01:15,516 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 18:01:16,136 [DEBUG][       Thread-263374][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 18:01:16,136 [DEBUG][       Thread-263374][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 18:01:16,177 [DEBUG][       Thread-263374][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 18:01:16,177 [DEBUG][       Thread-263374][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 18:01:16,181 [DEBUG][       Thread-263374][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 18:01:16,192 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 18:01:16,193 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 18:01:16,194 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 18:01:16,196 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 18:01:16,202 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 18:01:16,203 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 18:01:16,204 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 18:01:16,204 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 18:01:16,204 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.666947 -999.00  +11.40  20.78     37   -2.50 1 1 1 1 1   431    0 14.16 3.19 ----- 19.1 20.8 45.4 22.9 11.7 -29.4 11.7 -29.2 11.4 -28.3 11.7 -28.5
2025-06-13 18:01:16,205 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 18:01:16,205 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 18:01:16,205 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.666947
2025-06-13 18:01:16,205 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 18:01:16,206 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 18:01:16,206 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 18:01:16,206 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 18:01:16,206 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 18:01:16,206 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T18:01:02', tmtdew=16.02, humidity=32.59, cloud=0.0, wind=14.15, temperature=11.64, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T16:00:24.221', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 18:01:16,206 [DEBUG][       Thread-263374][   transport.py][1871] : EOF in transport thread
2025-06-13 18:01:16,289 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 18:01:16,300 [DEBUG][       Thread-263377][   transport.py][1871] : starting thread (client mode): 0x86392950
2025-06-13 18:01:16,300 [DEBUG][       Thread-263377][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 18:01:16,316 [DEBUG][       Thread-263377][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 18:01:16,316 [ INFO][       Thread-263377][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 18:01:16,327 [DEBUG][       Thread-263377][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 18:01:16,327 [DEBUG][       Thread-263377][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 18:01:16,327 [DEBUG][       Thread-263377][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 18:01:16,327 [DEBUG][       Thread-263377][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 18:01:16,327 [DEBUG][       Thread-263377][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 18:01:16,327 [DEBUG][       Thread-263377][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 18:01:16,327 [DEBUG][       Thread-263377][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 18:01:16,327 [DEBUG][       Thread-263377][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 18:01:16,328 [DEBUG][       Thread-263377][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 18:01:16,328 [DEBUG][       Thread-263377][   transport.py][1871] : client lang: <none>
2025-06-13 18:01:16,328 [DEBUG][       Thread-263377][   transport.py][1871] : server lang: <none>
2025-06-13 18:01:16,328 [DEBUG][       Thread-263377][   transport.py][1871] : kex follows: False
2025-06-13 18:01:16,328 [DEBUG][       Thread-263377][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 18:01:16,328 [DEBUG][       Thread-263377][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 18:01:16,328 [DEBUG][       Thread-263377][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 18:01:16,328 [DEBUG][       Thread-263377][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 18:01:16,328 [DEBUG][       Thread-263377][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 18:01:16,328 [DEBUG][       Thread-263377][   transport.py][1871] : Compression: none
2025-06-13 18:01:16,328 [DEBUG][       Thread-263377][   transport.py][1871] : === End of kex handshake ===
2025-06-13 18:01:16,383 [DEBUG][       Thread-263377][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 18:01:16,383 [DEBUG][       Thread-263377][   transport.py][1871] : Switch to new keys ...
2025-06-13 18:01:16,384 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 18:01:16,385 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 18:01:16,385 [DEBUG][       Thread-263377][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 18:01:16,446 [DEBUG][       Thread-263377][   transport.py][1871] : userauth is OK
2025-06-13 18:01:16,447 [DEBUG][       Thread-263377][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 18:01:16,447 [DEBUG][       Thread-263377][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 18:01:16,447 [DEBUG][       Thread-263377][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 18:01:16,447 [DEBUG][       Thread-263377][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 18:01:16,468 [ INFO][       Thread-263377][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 18:01:16,468 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 18:01:16,469 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 18:01:17,460 [DEBUG][       Thread-263377][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 18:01:17,460 [DEBUG][       Thread-263377][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 18:01:17,509 [DEBUG][       Thread-263377][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 18:01:17,509 [DEBUG][       Thread-263377][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 18:01:17,519 [DEBUG][       Thread-263377][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 18:01:17,528 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 18:01:17,529 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 18:01:17,537 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 18:01:17,548 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 18:01:17,548 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 18:01:17,548 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 18:01:17,556 [DEBUG][       Thread-263377][   transport.py][1871] : EOF in transport thread
2025-06-13 18:01:22,200 [DEBUG][Thread-263379 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 18:01:27,559 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 18:01:27,559 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 18:01:27,559 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 18:01:27,562 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 18:01:28,018 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 18, 1, 2), 16.02, 32.59, 0.0, 14.15, 11.64, 0, 0, 0, 2, 0, 0),)
2025-06-13 18:01:28,018 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 18:01:02
2025-06-13 18:01:28,099 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 18:01:28,103 [DEBUG][       Thread-263380][   transport.py][1871] : starting thread (client mode): 0x867ffca0
2025-06-13 18:01:28,103 [DEBUG][       Thread-263380][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 18:01:28,123 [DEBUG][       Thread-263380][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 18:01:28,123 [ INFO][       Thread-263380][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 18:01:28,127 [DEBUG][       Thread-263380][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 18:01:28,127 [DEBUG][       Thread-263380][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 18:01:28,127 [DEBUG][       Thread-263380][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 18:01:28,127 [DEBUG][       Thread-263380][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 18:01:28,127 [DEBUG][       Thread-263380][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 18:01:28,127 [DEBUG][       Thread-263380][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 18:01:28,127 [DEBUG][       Thread-263380][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 18:01:28,127 [DEBUG][       Thread-263380][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 18:01:28,127 [DEBUG][       Thread-263380][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 18:01:28,127 [DEBUG][       Thread-263380][   transport.py][1871] : client lang: <none>
2025-06-13 18:01:28,127 [DEBUG][       Thread-263380][   transport.py][1871] : server lang: <none>
2025-06-13 18:01:28,127 [DEBUG][       Thread-263380][   transport.py][1871] : kex follows: False
2025-06-13 18:01:28,127 [DEBUG][       Thread-263380][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 18:01:28,127 [DEBUG][       Thread-263380][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 18:01:28,127 [DEBUG][       Thread-263380][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 18:01:28,127 [DEBUG][       Thread-263380][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 18:01:28,127 [DEBUG][       Thread-263380][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 18:01:28,127 [DEBUG][       Thread-263380][   transport.py][1871] : Compression: none
2025-06-13 18:01:28,127 [DEBUG][       Thread-263380][   transport.py][1871] : === End of kex handshake ===
2025-06-13 18:01:28,140 [DEBUG][       Thread-263380][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 18:01:28,141 [DEBUG][       Thread-263380][   transport.py][1871] : Switch to new keys ...
2025-06-13 18:01:28,141 [DEBUG][       Thread-263380][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 18:01:28,141 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 18:01:28,142 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 18:01:28,142 [DEBUG][       Thread-263380][   transport.py][1871] : userauth is OK
2025-06-13 18:01:28,155 [ INFO][       Thread-263380][   transport.py][1871] : Authentication (password) successful!
2025-06-13 18:01:28,156 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 18:01:28,441 [DEBUG][Thread-263382 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 18:01:28,715 [DEBUG][       Thread-263380][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 18:01:28,716 [DEBUG][       Thread-263380][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 18:01:28,757 [DEBUG][       Thread-263380][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 18:01:28,757 [DEBUG][       Thread-263380][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 18:01:28,760 [DEBUG][       Thread-263380][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 18:01:28,772 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 18:01:28,773 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 18:01:28,774 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 18:01:28,776 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 18:01:28,782 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 18:01:28,783 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 18:01:28,783 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 18:01:28,784 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 18:01:28,784 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.667642 -999.00  +11.40  15.57     37   -2.40 1 1 1 1 1   389    0 13.78 2.38 ----- 19.2 15.6 52.4 22.0 11.8 -29.4 11.6 -29.3 11.3 -28.3 11.7 -28.2
2025-06-13 18:01:28,784 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 18:01:28,784 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 18:01:28,784 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.667642
2025-06-13 18:01:28,785 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 18:01:28,785 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 18:01:28,786 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 18:01:28,786 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 18:01:28,786 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 18:01:28,786 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T18:01:02', tmtdew=16.02, humidity=32.59, cloud=0.0, wind=14.15, temperature=11.64, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T16:01:24.269', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 18:01:28,786 [DEBUG][       Thread-263380][   transport.py][1871] : EOF in transport thread
2025-06-13 18:01:28,871 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 18:01:28,881 [DEBUG][       Thread-263384][   transport.py][1871] : starting thread (client mode): 0x863930a0
2025-06-13 18:01:28,881 [DEBUG][       Thread-263384][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 18:01:28,896 [DEBUG][       Thread-263384][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 18:01:28,896 [ INFO][       Thread-263384][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 18:01:28,904 [DEBUG][       Thread-263384][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 18:01:28,904 [DEBUG][       Thread-263384][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 18:01:28,904 [DEBUG][       Thread-263384][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 18:01:28,904 [DEBUG][       Thread-263384][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 18:01:28,904 [DEBUG][       Thread-263384][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 18:01:28,904 [DEBUG][       Thread-263384][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 18:01:28,904 [DEBUG][       Thread-263384][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 18:01:28,904 [DEBUG][       Thread-263384][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 18:01:28,904 [DEBUG][       Thread-263384][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 18:01:28,904 [DEBUG][       Thread-263384][   transport.py][1871] : client lang: <none>
2025-06-13 18:01:28,904 [DEBUG][       Thread-263384][   transport.py][1871] : server lang: <none>
2025-06-13 18:01:28,904 [DEBUG][       Thread-263384][   transport.py][1871] : kex follows: False
2025-06-13 18:01:28,904 [DEBUG][       Thread-263384][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 18:01:28,904 [DEBUG][       Thread-263384][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 18:01:28,904 [DEBUG][       Thread-263384][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 18:01:28,904 [DEBUG][       Thread-263384][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 18:01:28,904 [DEBUG][       Thread-263384][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 18:01:28,904 [DEBUG][       Thread-263384][   transport.py][1871] : Compression: none
2025-06-13 18:01:28,904 [DEBUG][       Thread-263384][   transport.py][1871] : === End of kex handshake ===
2025-06-13 18:01:28,964 [DEBUG][       Thread-263384][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 18:01:28,964 [DEBUG][       Thread-263384][   transport.py][1871] : Switch to new keys ...
2025-06-13 18:01:28,965 [DEBUG][       Thread-263384][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 18:01:28,965 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 18:01:28,966 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 18:01:29,021 [DEBUG][       Thread-263384][   transport.py][1871] : userauth is OK
2025-06-13 18:01:29,022 [DEBUG][       Thread-263384][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 18:01:29,022 [DEBUG][       Thread-263384][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 18:01:29,022 [DEBUG][       Thread-263384][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 18:01:29,022 [DEBUG][       Thread-263384][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 18:01:29,041 [ INFO][       Thread-263384][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 18:01:29,041 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 18:01:29,041 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 18:01:30,052 [DEBUG][       Thread-263384][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 18:01:30,053 [DEBUG][       Thread-263384][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 18:01:30,106 [DEBUG][       Thread-263384][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 18:01:30,106 [DEBUG][       Thread-263384][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 18:01:30,115 [DEBUG][       Thread-263384][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 18:01:30,124 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 18:01:30,124 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 18:01:30,134 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 18:01:30,143 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 18:01:30,143 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 18:01:30,144 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 18:01:30,151 [DEBUG][       Thread-263384][   transport.py][1871] : EOF in transport thread
2025-06-13 18:01:31,233 [DEBUG][Thread-263386 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 18:01:39,540 [DEBUG][Thread-263387 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 18:01:40,152 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 18:01:40,152 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 18:01:40,152 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 18:01:40,155 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 18:01:40,253 [DEBUG][Thread-263388 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 18:01:40,621 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 18, 1, 33), 16.01, 32.28, 0.0, 15.74, 11.63, 0, 0, 0, 2, 0, 0),)
2025-06-13 18:01:40,621 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 18:01:33
2025-06-13 18:01:40,626 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 18:01:40,627 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 18:01:40,702 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 18:01:40,708 [DEBUG][       Thread-263389][   transport.py][1871] : starting thread (client mode): 0x867fdba0
2025-06-13 18:01:40,708 [DEBUG][       Thread-263389][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 18:01:40,728 [DEBUG][       Thread-263389][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 18:01:40,729 [ INFO][       Thread-263389][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 18:01:40,732 [DEBUG][       Thread-263389][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 18:01:40,732 [DEBUG][       Thread-263389][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 18:01:40,732 [DEBUG][       Thread-263389][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 18:01:40,732 [DEBUG][       Thread-263389][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 18:01:40,732 [DEBUG][       Thread-263389][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 18:01:40,732 [DEBUG][       Thread-263389][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 18:01:40,732 [DEBUG][       Thread-263389][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 18:01:40,732 [DEBUG][       Thread-263389][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 18:01:40,732 [DEBUG][       Thread-263389][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 18:01:40,732 [DEBUG][       Thread-263389][   transport.py][1871] : client lang: <none>
2025-06-13 18:01:40,732 [DEBUG][       Thread-263389][   transport.py][1871] : server lang: <none>
2025-06-13 18:01:40,732 [DEBUG][       Thread-263389][   transport.py][1871] : kex follows: False
2025-06-13 18:01:40,732 [DEBUG][       Thread-263389][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 18:01:40,733 [DEBUG][       Thread-263389][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 18:01:40,733 [DEBUG][       Thread-263389][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 18:01:40,733 [DEBUG][       Thread-263389][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 18:01:40,733 [DEBUG][       Thread-263389][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 18:01:40,733 [DEBUG][       Thread-263389][   transport.py][1871] : Compression: none
2025-06-13 18:01:40,733 [DEBUG][       Thread-263389][   transport.py][1871] : === End of kex handshake ===
2025-06-13 18:01:40,749 [DEBUG][       Thread-263389][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 18:01:40,749 [DEBUG][       Thread-263389][   transport.py][1871] : Switch to new keys ...
2025-06-13 18:01:40,750 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 18:01:40,750 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 18:01:40,750 [DEBUG][       Thread-263389][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 18:01:40,751 [DEBUG][       Thread-263389][   transport.py][1871] : userauth is OK
2025-06-13 18:01:40,764 [ INFO][       Thread-263389][   transport.py][1871] : Authentication (password) successful!
2025-06-13 18:01:40,764 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 18:01:41,384 [DEBUG][       Thread-263389][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 18:01:41,385 [DEBUG][       Thread-263389][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 18:01:41,429 [DEBUG][       Thread-263389][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 18:01:41,429 [DEBUG][       Thread-263389][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 18:01:41,432 [DEBUG][       Thread-263389][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 18:01:41,444 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 18:01:41,444 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 18:01:41,446 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 18:01:41,448 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 18:01:41,454 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 18:01:41,456 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 18:01:41,456 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 18:01:41,457 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 18:01:41,457 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.667642 -999.00  +11.40  15.57     37   -2.40 1 1 1 1 1   389    0 13.78 2.38 ----- 19.2 15.6 52.4 22.0 11.8 -29.4 11.6 -29.3 11.3 -28.3 11.7 -28.2
2025-06-13 18:01:41,457 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 18:01:41,457 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 18:01:41,457 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.667642
2025-06-13 18:01:41,458 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 18:01:41,458 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 18:01:41,458 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 18:01:41,458 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 18:01:41,458 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 18:01:41,459 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T18:01:33', tmtdew=16.01, humidity=32.28, cloud=0.0, wind=15.74, temperature=11.63, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T16:01:24.269', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 18:01:41,460 [DEBUG][       Thread-263389][   transport.py][1871] : EOF in transport thread
2025-06-13 18:01:41,543 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 18:01:41,556 [DEBUG][       Thread-263392][   transport.py][1871] : starting thread (client mode): 0x863a7f40
2025-06-13 18:01:41,556 [DEBUG][       Thread-263392][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 18:01:41,571 [DEBUG][       Thread-263392][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 18:01:41,571 [ INFO][       Thread-263392][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 18:01:41,579 [DEBUG][       Thread-263392][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 18:01:41,579 [DEBUG][       Thread-263392][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 18:01:41,579 [DEBUG][       Thread-263392][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 18:01:41,579 [DEBUG][       Thread-263392][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 18:01:41,579 [DEBUG][       Thread-263392][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 18:01:41,579 [DEBUG][       Thread-263392][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 18:01:41,579 [DEBUG][       Thread-263392][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 18:01:41,579 [DEBUG][       Thread-263392][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 18:01:41,579 [DEBUG][       Thread-263392][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 18:01:41,579 [DEBUG][       Thread-263392][   transport.py][1871] : client lang: <none>
2025-06-13 18:01:41,579 [DEBUG][       Thread-263392][   transport.py][1871] : server lang: <none>
2025-06-13 18:01:41,579 [DEBUG][       Thread-263392][   transport.py][1871] : kex follows: False
2025-06-13 18:01:41,579 [DEBUG][       Thread-263392][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 18:01:41,580 [DEBUG][       Thread-263392][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 18:01:41,580 [DEBUG][       Thread-263392][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 18:01:41,580 [DEBUG][       Thread-263392][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 18:01:41,580 [DEBUG][       Thread-263392][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 18:01:41,580 [DEBUG][       Thread-263392][   transport.py][1871] : Compression: none
2025-06-13 18:01:41,580 [DEBUG][       Thread-263392][   transport.py][1871] : === End of kex handshake ===
2025-06-13 18:01:41,637 [DEBUG][       Thread-263392][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 18:01:41,638 [DEBUG][       Thread-263392][   transport.py][1871] : Switch to new keys ...
2025-06-13 18:01:41,638 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 18:01:41,639 [DEBUG][       Thread-263392][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 18:01:41,640 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 18:01:41,693 [DEBUG][       Thread-263392][   transport.py][1871] : userauth is OK
2025-06-13 18:01:41,693 [DEBUG][       Thread-263392][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 18:01:41,693 [DEBUG][       Thread-263392][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 18:01:41,693 [DEBUG][       Thread-263392][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 18:01:41,693 [DEBUG][       Thread-263392][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 18:01:41,710 [ INFO][       Thread-263392][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 18:01:41,711 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 18:01:41,711 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 18:01:42,705 [DEBUG][       Thread-263392][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 18:01:42,705 [DEBUG][       Thread-263392][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 18:01:42,756 [DEBUG][       Thread-263392][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 18:01:42,756 [DEBUG][       Thread-263392][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 18:01:42,765 [DEBUG][       Thread-263392][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 18:01:42,774 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 18:01:42,774 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 18:01:42,783 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 18:01:42,792 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 18:01:42,792 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 18:01:42,793 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 18:01:42,801 [DEBUG][       Thread-263392][   transport.py][1871] : EOF in transport thread
2025-06-13 18:01:49,275 [DEBUG][Thread-263394 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 18:01:50,428 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 18:01:50,430 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 18:01:52,803 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 18:01:52,803 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 18:01:52,804 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 18:01:52,807 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 18:01:53,260 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 18, 1, 33), 16.01, 32.28, 0.0, 15.74, 11.63, 0, 0, 0, 2, 0, 0),)
2025-06-13 18:01:53,260 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 18:01:33
2025-06-13 18:01:53,342 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 18:01:53,347 [DEBUG][       Thread-263395][   transport.py][1871] : starting thread (client mode): 0x867fc460
2025-06-13 18:01:53,347 [DEBUG][       Thread-263395][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 18:01:53,369 [DEBUG][       Thread-263395][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 18:01:53,369 [ INFO][       Thread-263395][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 18:01:53,372 [DEBUG][       Thread-263395][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 18:01:53,372 [DEBUG][       Thread-263395][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 18:01:53,372 [DEBUG][       Thread-263395][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 18:01:53,372 [DEBUG][       Thread-263395][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 18:01:53,372 [DEBUG][       Thread-263395][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 18:01:53,372 [DEBUG][       Thread-263395][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 18:01:53,372 [DEBUG][       Thread-263395][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 18:01:53,372 [DEBUG][       Thread-263395][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 18:01:53,372 [DEBUG][       Thread-263395][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 18:01:53,372 [DEBUG][       Thread-263395][   transport.py][1871] : client lang: <none>
2025-06-13 18:01:53,372 [DEBUG][       Thread-263395][   transport.py][1871] : server lang: <none>
2025-06-13 18:01:53,372 [DEBUG][       Thread-263395][   transport.py][1871] : kex follows: False
2025-06-13 18:01:53,372 [DEBUG][       Thread-263395][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 18:01:53,373 [DEBUG][       Thread-263395][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 18:01:53,373 [DEBUG][       Thread-263395][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 18:01:53,373 [DEBUG][       Thread-263395][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 18:01:53,373 [DEBUG][       Thread-263395][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 18:01:53,373 [DEBUG][       Thread-263395][   transport.py][1871] : Compression: none
2025-06-13 18:01:53,373 [DEBUG][       Thread-263395][   transport.py][1871] : === End of kex handshake ===
2025-06-13 18:01:53,389 [DEBUG][       Thread-263395][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 18:01:53,390 [DEBUG][       Thread-263395][   transport.py][1871] : Switch to new keys ...
2025-06-13 18:01:53,390 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 18:01:53,391 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 18:01:53,391 [DEBUG][       Thread-263395][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 18:01:53,392 [DEBUG][       Thread-263395][   transport.py][1871] : userauth is OK
2025-06-13 18:01:53,417 [ INFO][       Thread-263395][   transport.py][1871] : Authentication (password) successful!
2025-06-13 18:01:53,417 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 18:01:54,056 [DEBUG][       Thread-263395][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 18:01:54,056 [DEBUG][       Thread-263395][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 18:01:54,097 [DEBUG][       Thread-263395][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 18:01:54,097 [DEBUG][       Thread-263395][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 18:01:54,100 [DEBUG][       Thread-263395][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 18:01:54,119 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 18:01:54,119 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 18:01:54,121 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 18:01:54,122 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 18:01:54,125 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 18:01:54,126 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 18:01:54,126 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 18:01:54,126 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 18:01:54,126 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.667642 -999.00  +11.40  15.57     37   -2.40 1 1 1 1 1   389    0 13.78 2.38 ----- 19.2 15.6 52.4 22.0 11.8 -29.4 11.6 -29.3 11.3 -28.3 11.7 -28.2
2025-06-13 18:01:54,126 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 18:01:54,126 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 18:01:54,126 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.667642
2025-06-13 18:01:54,127 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 18:01:54,127 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 18:01:54,127 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 18:01:54,127 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 18:01:54,127 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 18:01:54,127 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T18:01:33', tmtdew=16.01, humidity=32.28, cloud=0.0, wind=15.74, temperature=11.63, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T16:01:24.269', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 18:01:54,127 [DEBUG][       Thread-263395][   transport.py][1871] : EOF in transport thread
2025-06-13 18:01:54,199 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 18:01:54,210 [DEBUG][       Thread-263398][   transport.py][1871] : starting thread (client mode): 0x863efbe0
2025-06-13 18:01:54,211 [DEBUG][       Thread-263398][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 18:01:54,226 [DEBUG][       Thread-263398][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 18:01:54,226 [ INFO][       Thread-263398][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 18:01:54,235 [DEBUG][       Thread-263398][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 18:01:54,235 [DEBUG][       Thread-263398][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 18:01:54,235 [DEBUG][       Thread-263398][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 18:01:54,235 [DEBUG][       Thread-263398][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 18:01:54,235 [DEBUG][       Thread-263398][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 18:01:54,235 [DEBUG][       Thread-263398][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 18:01:54,235 [DEBUG][       Thread-263398][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 18:01:54,235 [DEBUG][       Thread-263398][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 18:01:54,235 [DEBUG][       Thread-263398][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 18:01:54,235 [DEBUG][       Thread-263398][   transport.py][1871] : client lang: <none>
2025-06-13 18:01:54,235 [DEBUG][       Thread-263398][   transport.py][1871] : server lang: <none>
2025-06-13 18:01:54,235 [DEBUG][       Thread-263398][   transport.py][1871] : kex follows: False
2025-06-13 18:01:54,235 [DEBUG][       Thread-263398][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 18:01:54,235 [DEBUG][       Thread-263398][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 18:01:54,235 [DEBUG][       Thread-263398][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 18:01:54,235 [DEBUG][       Thread-263398][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 18:01:54,235 [DEBUG][       Thread-263398][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 18:01:54,235 [DEBUG][       Thread-263398][   transport.py][1871] : Compression: none
2025-06-13 18:01:54,236 [DEBUG][       Thread-263398][   transport.py][1871] : === End of kex handshake ===
2025-06-13 18:01:54,293 [DEBUG][       Thread-263398][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 18:01:54,294 [DEBUG][       Thread-263398][   transport.py][1871] : Switch to new keys ...
2025-06-13 18:01:54,294 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 18:01:54,295 [DEBUG][       Thread-263398][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 18:01:54,295 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 18:01:54,349 [DEBUG][       Thread-263398][   transport.py][1871] : userauth is OK
2025-06-13 18:01:54,349 [DEBUG][       Thread-263398][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 18:01:54,349 [DEBUG][       Thread-263398][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 18:01:54,350 [DEBUG][       Thread-263398][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 18:01:54,350 [DEBUG][       Thread-263398][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 18:01:54,371 [ INFO][       Thread-263398][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 18:01:54,371 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 18:01:54,372 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 18:01:55,380 [DEBUG][       Thread-263398][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 18:01:55,380 [DEBUG][       Thread-263398][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 18:01:55,432 [DEBUG][       Thread-263398][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 18:01:55,432 [DEBUG][       Thread-263398][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 18:01:55,444 [DEBUG][       Thread-263398][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 18:01:55,453 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 18:01:55,453 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 18:01:55,463 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 18:01:55,473 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 18:01:55,473 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 18:01:55,473 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 18:01:55,482 [DEBUG][       Thread-263398][   transport.py][1871] : EOF in transport thread
2025-06-13 18:01:58,310 [DEBUG][Thread-263400 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 18:02:05,480 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 18:02:05,480 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 18:02:05,480 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 18:02:05,481 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 18:02:05,937 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 18, 1, 33), 16.01, 32.28, 0.0, 15.74, 11.63, 0, 0, 0, 2, 0, 0),)
2025-06-13 18:02:05,937 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 18:01:33
2025-06-13 18:02:06,018 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 18:02:06,022 [DEBUG][       Thread-263401][   transport.py][1871] : starting thread (client mode): 0x86353c40
2025-06-13 18:02:06,022 [DEBUG][       Thread-263401][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 18:02:06,044 [DEBUG][       Thread-263401][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 18:02:06,044 [ INFO][       Thread-263401][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 18:02:06,048 [DEBUG][       Thread-263401][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 18:02:06,048 [DEBUG][       Thread-263401][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 18:02:06,048 [DEBUG][       Thread-263401][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 18:02:06,048 [DEBUG][       Thread-263401][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 18:02:06,048 [DEBUG][       Thread-263401][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 18:02:06,048 [DEBUG][       Thread-263401][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 18:02:06,048 [DEBUG][       Thread-263401][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 18:02:06,048 [DEBUG][       Thread-263401][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 18:02:06,048 [DEBUG][       Thread-263401][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 18:02:06,048 [DEBUG][       Thread-263401][   transport.py][1871] : client lang: <none>
2025-06-13 18:02:06,048 [DEBUG][       Thread-263401][   transport.py][1871] : server lang: <none>
2025-06-13 18:02:06,048 [DEBUG][       Thread-263401][   transport.py][1871] : kex follows: False
2025-06-13 18:02:06,048 [DEBUG][       Thread-263401][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 18:02:06,048 [DEBUG][       Thread-263401][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 18:02:06,048 [DEBUG][       Thread-263401][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 18:02:06,048 [DEBUG][       Thread-263401][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 18:02:06,048 [DEBUG][       Thread-263401][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 18:02:06,048 [DEBUG][       Thread-263401][   transport.py][1871] : Compression: none
2025-06-13 18:02:06,049 [DEBUG][       Thread-263401][   transport.py][1871] : === End of kex handshake ===
2025-06-13 18:02:06,066 [DEBUG][       Thread-263401][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 18:02:06,066 [DEBUG][       Thread-263401][   transport.py][1871] : Switch to new keys ...
2025-06-13 18:02:06,066 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 18:02:06,067 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 18:02:06,067 [DEBUG][       Thread-263401][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 18:02:06,068 [DEBUG][       Thread-263401][   transport.py][1871] : userauth is OK
2025-06-13 18:02:06,092 [ INFO][       Thread-263401][   transport.py][1871] : Authentication (password) successful!
2025-06-13 18:02:06,093 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 18:02:06,736 [DEBUG][       Thread-263401][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 18:02:06,737 [DEBUG][       Thread-263401][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 18:02:06,781 [DEBUG][       Thread-263401][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 18:02:06,781 [DEBUG][       Thread-263401][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 18:02:06,783 [DEBUG][       Thread-263401][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 18:02:06,797 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 18:02:06,797 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 18:02:06,798 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 18:02:06,798 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 18:02:06,801 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 18:02:06,801 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 18:02:06,802 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 18:02:06,802 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 18:02:06,802 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.667989 -999.00  +11.40  18.32     37   -2.40 1 1 1 1 1   368    0 14.16 1.68 ----- 19.6 18.3 49.2 20.3 11.7 -29.3 11.6 -29.3 11.3 -28.3 11.6 -28.5
2025-06-13 18:02:06,802 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 18:02:06,802 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 18:02:06,802 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.667989
2025-06-13 18:02:06,802 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 18:02:06,802 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 18:02:06,802 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 18:02:06,802 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 18:02:06,802 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 18:02:06,802 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T18:01:33', tmtdew=16.01, humidity=32.28, cloud=0.0, wind=15.74, temperature=11.63, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T16:01:54.250', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 18:02:06,802 [DEBUG][       Thread-263401][   transport.py][1871] : EOF in transport thread
2025-06-13 18:02:06,876 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 18:02:06,887 [DEBUG][       Thread-263404][   transport.py][1871] : starting thread (client mode): 0x86893fd0
2025-06-13 18:02:06,887 [DEBUG][       Thread-263404][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 18:02:06,906 [DEBUG][       Thread-263404][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 18:02:06,906 [ INFO][       Thread-263404][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 18:02:06,914 [DEBUG][       Thread-263404][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 18:02:06,914 [DEBUG][       Thread-263404][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 18:02:06,914 [DEBUG][       Thread-263404][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 18:02:06,914 [DEBUG][       Thread-263404][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 18:02:06,914 [DEBUG][       Thread-263404][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 18:02:06,914 [DEBUG][       Thread-263404][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 18:02:06,914 [DEBUG][       Thread-263404][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 18:02:06,914 [DEBUG][       Thread-263404][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 18:02:06,914 [DEBUG][       Thread-263404][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 18:02:06,914 [DEBUG][       Thread-263404][   transport.py][1871] : client lang: <none>
2025-06-13 18:02:06,914 [DEBUG][       Thread-263404][   transport.py][1871] : server lang: <none>
2025-06-13 18:02:06,914 [DEBUG][       Thread-263404][   transport.py][1871] : kex follows: False
2025-06-13 18:02:06,914 [DEBUG][       Thread-263404][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 18:02:06,914 [DEBUG][       Thread-263404][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 18:02:06,914 [DEBUG][       Thread-263404][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 18:02:06,914 [DEBUG][       Thread-263404][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 18:02:06,914 [DEBUG][       Thread-263404][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 18:02:06,914 [DEBUG][       Thread-263404][   transport.py][1871] : Compression: none
2025-06-13 18:02:06,914 [DEBUG][       Thread-263404][   transport.py][1871] : === End of kex handshake ===
2025-06-13 18:02:06,971 [DEBUG][       Thread-263404][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 18:02:06,971 [DEBUG][       Thread-263404][   transport.py][1871] : Switch to new keys ...
2025-06-13 18:02:06,971 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 18:02:06,971 [DEBUG][       Thread-263404][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 18:02:06,972 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 18:02:07,029 [DEBUG][       Thread-263404][   transport.py][1871] : userauth is OK
2025-06-13 18:02:07,029 [DEBUG][       Thread-263404][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 18:02:07,029 [DEBUG][       Thread-263404][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 18:02:07,029 [DEBUG][       Thread-263404][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 18:02:07,029 [DEBUG][       Thread-263404][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 18:02:07,046 [ INFO][       Thread-263404][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 18:02:07,046 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 18:02:07,046 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 18:02:07,326 [DEBUG][Thread-263406 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 18:02:08,052 [DEBUG][       Thread-263404][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 18:02:08,052 [DEBUG][       Thread-263404][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 18:02:08,100 [DEBUG][       Thread-263404][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 18:02:08,100 [DEBUG][       Thread-263404][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 18:02:08,110 [DEBUG][       Thread-263404][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 18:02:08,119 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 18:02:08,119 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 18:02:08,128 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 18:02:08,137 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 18:02:08,138 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 18:02:08,138 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 18:02:08,146 [DEBUG][       Thread-263404][   transport.py][1871] : EOF in transport thread
2025-06-13 18:02:16,347 [DEBUG][Thread-263407 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 18:02:18,149 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 18:02:18,149 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 18:02:18,149 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 18:02:18,152 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 18:02:18,609 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 18, 2, 5), 15.95, 32.42, 0.0, 16.04, 11.62, 0, 0, 0, 2, 0, 0),)
2025-06-13 18:02:18,609 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 18:02:05
2025-06-13 18:02:18,690 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 18:02:18,696 [DEBUG][       Thread-263408][   transport.py][1871] : starting thread (client mode): 0x867fea70
2025-06-13 18:02:18,696 [DEBUG][       Thread-263408][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 18:02:18,717 [DEBUG][       Thread-263408][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 18:02:18,717 [ INFO][       Thread-263408][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 18:02:18,720 [DEBUG][       Thread-263408][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 18:02:18,720 [DEBUG][       Thread-263408][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 18:02:18,720 [DEBUG][       Thread-263408][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 18:02:18,720 [DEBUG][       Thread-263408][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 18:02:18,720 [DEBUG][       Thread-263408][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 18:02:18,720 [DEBUG][       Thread-263408][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 18:02:18,720 [DEBUG][       Thread-263408][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 18:02:18,720 [DEBUG][       Thread-263408][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 18:02:18,720 [DEBUG][       Thread-263408][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 18:02:18,721 [DEBUG][       Thread-263408][   transport.py][1871] : client lang: <none>
2025-06-13 18:02:18,721 [DEBUG][       Thread-263408][   transport.py][1871] : server lang: <none>
2025-06-13 18:02:18,721 [DEBUG][       Thread-263408][   transport.py][1871] : kex follows: False
2025-06-13 18:02:18,721 [DEBUG][       Thread-263408][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 18:02:18,721 [DEBUG][       Thread-263408][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 18:02:18,721 [DEBUG][       Thread-263408][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 18:02:18,721 [DEBUG][       Thread-263408][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 18:02:18,721 [DEBUG][       Thread-263408][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 18:02:18,721 [DEBUG][       Thread-263408][   transport.py][1871] : Compression: none
2025-06-13 18:02:18,721 [DEBUG][       Thread-263408][   transport.py][1871] : === End of kex handshake ===
2025-06-13 18:02:18,737 [DEBUG][       Thread-263408][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 18:02:18,737 [DEBUG][       Thread-263408][   transport.py][1871] : Switch to new keys ...
2025-06-13 18:02:18,737 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 18:02:18,737 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 18:02:18,737 [DEBUG][       Thread-263408][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 18:02:18,738 [DEBUG][       Thread-263408][   transport.py][1871] : userauth is OK
2025-06-13 18:02:18,750 [ INFO][       Thread-263408][   transport.py][1871] : Authentication (password) successful!
2025-06-13 18:02:18,750 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 18:02:19,335 [DEBUG][       Thread-263408][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 18:02:19,335 [DEBUG][       Thread-263408][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 18:02:19,377 [DEBUG][       Thread-263408][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 18:02:19,377 [DEBUG][       Thread-263408][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 18:02:19,380 [DEBUG][       Thread-263408][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 18:02:19,385 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 18:02:19,385 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 18:02:19,387 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 18:02:19,389 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 18:02:19,395 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 18:02:19,397 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 18:02:19,397 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 18:02:19,398 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 18:02:19,398 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.667989 -999.00  +11.40  18.32     37   -2.40 1 1 1 1 1   368    0 14.16 1.68 ----- 19.6 18.3 49.2 20.3 11.7 -29.3 11.6 -29.3 11.3 -28.3 11.6 -28.5
2025-06-13 18:02:19,398 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 18:02:19,398 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 18:02:19,398 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.667989
2025-06-13 18:02:19,399 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 18:02:19,399 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 18:02:19,399 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 18:02:19,399 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 18:02:19,399 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 18:02:19,399 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T18:02:05', tmtdew=15.95, humidity=32.42, cloud=0.0, wind=16.04, temperature=11.62, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T16:01:54.250', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 18:02:19,400 [DEBUG][       Thread-263408][   transport.py][1871] : EOF in transport thread
2025-06-13 18:02:19,483 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 18:02:19,494 [DEBUG][       Thread-263411][   transport.py][1871] : starting thread (client mode): 0x8636b850
2025-06-13 18:02:19,494 [DEBUG][       Thread-263411][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 18:02:19,509 [DEBUG][       Thread-263411][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 18:02:19,509 [ INFO][       Thread-263411][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 18:02:19,521 [DEBUG][       Thread-263411][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 18:02:19,521 [DEBUG][       Thread-263411][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 18:02:19,521 [DEBUG][       Thread-263411][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 18:02:19,521 [DEBUG][       Thread-263411][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 18:02:19,521 [DEBUG][       Thread-263411][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 18:02:19,521 [DEBUG][       Thread-263411][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 18:02:19,521 [DEBUG][       Thread-263411][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 18:02:19,521 [DEBUG][       Thread-263411][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 18:02:19,521 [DEBUG][       Thread-263411][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 18:02:19,521 [DEBUG][       Thread-263411][   transport.py][1871] : client lang: <none>
2025-06-13 18:02:19,521 [DEBUG][       Thread-263411][   transport.py][1871] : server lang: <none>
2025-06-13 18:02:19,521 [DEBUG][       Thread-263411][   transport.py][1871] : kex follows: False
2025-06-13 18:02:19,521 [DEBUG][       Thread-263411][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 18:02:19,521 [DEBUG][       Thread-263411][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 18:02:19,521 [DEBUG][       Thread-263411][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 18:02:19,521 [DEBUG][       Thread-263411][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 18:02:19,522 [DEBUG][       Thread-263411][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 18:02:19,522 [DEBUG][       Thread-263411][   transport.py][1871] : Compression: none
2025-06-13 18:02:19,522 [DEBUG][       Thread-263411][   transport.py][1871] : === End of kex handshake ===
2025-06-13 18:02:19,584 [DEBUG][       Thread-263411][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 18:02:19,584 [DEBUG][       Thread-263411][   transport.py][1871] : Switch to new keys ...
2025-06-13 18:02:19,585 [DEBUG][       Thread-263411][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 18:02:19,585 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 18:02:19,586 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 18:02:19,644 [DEBUG][       Thread-263411][   transport.py][1871] : userauth is OK
2025-06-13 18:02:19,644 [DEBUG][       Thread-263411][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 18:02:19,644 [DEBUG][       Thread-263411][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 18:02:19,644 [DEBUG][       Thread-263411][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 18:02:19,644 [DEBUG][       Thread-263411][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 18:02:19,659 [ INFO][       Thread-263411][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 18:02:19,660 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 18:02:19,660 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 18:02:20,658 [DEBUG][       Thread-263411][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 18:02:20,659 [DEBUG][       Thread-263411][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 18:02:20,707 [DEBUG][       Thread-263411][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 18:02:20,707 [DEBUG][       Thread-263411][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 18:02:20,717 [DEBUG][       Thread-263411][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 18:02:20,725 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 18:02:20,725 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 18:02:20,735 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 18:02:20,743 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 18:02:20,743 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 18:02:20,743 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 18:02:20,751 [DEBUG][       Thread-263411][   transport.py][1871] : EOF in transport thread
2025-06-13 18:02:25,367 [DEBUG][Thread-263413 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 18:02:28,502 [DEBUG][Thread-263414 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 18:02:30,744 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 18:02:30,744 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 18:02:30,744 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 18:02:30,747 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 18:02:31,219 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 18, 2, 5), 15.95, 32.42, 0.0, 16.04, 11.62, 0, 0, 0, 2, 0, 0),)
2025-06-13 18:02:31,219 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 18:02:05
2025-06-13 18:02:31,301 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 18:02:31,305 [DEBUG][       Thread-263415][   transport.py][1871] : starting thread (client mode): 0x8636bac0
2025-06-13 18:02:31,305 [DEBUG][       Thread-263415][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 18:02:31,326 [DEBUG][       Thread-263415][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 18:02:31,326 [ INFO][       Thread-263415][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 18:02:31,329 [DEBUG][       Thread-263415][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 18:02:31,329 [DEBUG][       Thread-263415][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 18:02:31,329 [DEBUG][       Thread-263415][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 18:02:31,329 [DEBUG][       Thread-263415][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 18:02:31,329 [DEBUG][       Thread-263415][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 18:02:31,329 [DEBUG][       Thread-263415][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 18:02:31,329 [DEBUG][       Thread-263415][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 18:02:31,329 [DEBUG][       Thread-263415][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 18:02:31,329 [DEBUG][       Thread-263415][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 18:02:31,329 [DEBUG][       Thread-263415][   transport.py][1871] : client lang: <none>
2025-06-13 18:02:31,329 [DEBUG][       Thread-263415][   transport.py][1871] : server lang: <none>
2025-06-13 18:02:31,329 [DEBUG][       Thread-263415][   transport.py][1871] : kex follows: False
2025-06-13 18:02:31,329 [DEBUG][       Thread-263415][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 18:02:31,329 [DEBUG][       Thread-263415][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 18:02:31,329 [DEBUG][       Thread-263415][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 18:02:31,329 [DEBUG][       Thread-263415][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 18:02:31,329 [DEBUG][       Thread-263415][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 18:02:31,329 [DEBUG][       Thread-263415][   transport.py][1871] : Compression: none
2025-06-13 18:02:31,329 [DEBUG][       Thread-263415][   transport.py][1871] : === End of kex handshake ===
2025-06-13 18:02:31,348 [DEBUG][       Thread-263415][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 18:02:31,349 [DEBUG][       Thread-263415][   transport.py][1871] : Switch to new keys ...
2025-06-13 18:02:31,349 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 18:02:31,350 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 18:02:31,350 [DEBUG][       Thread-263415][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 18:02:31,350 [DEBUG][       Thread-263415][   transport.py][1871] : userauth is OK
2025-06-13 18:02:31,376 [ INFO][       Thread-263415][   transport.py][1871] : Authentication (password) successful!
2025-06-13 18:02:31,376 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 18:02:32,011 [DEBUG][       Thread-263415][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 18:02:32,012 [DEBUG][       Thread-263415][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 18:02:32,053 [DEBUG][       Thread-263415][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 18:02:32,053 [DEBUG][       Thread-263415][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 18:02:32,056 [DEBUG][       Thread-263415][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 18:02:32,069 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 18:02:32,069 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 18:02:32,071 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 18:02:32,072 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 18:02:32,077 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 18:02:32,079 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 18:02:32,080 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 18:02:32,080 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 18:02:32,081 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.667989 -999.00  +11.40  18.32     37   -2.40 1 1 1 1 1   368    0 14.16 1.68 ----- 19.6 18.3 49.2 20.3 11.7 -29.3 11.6 -29.3 11.3 -28.3 11.6 -28.5
2025-06-13 18:02:32,081 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 18:02:32,081 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 18:02:32,081 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.667989
2025-06-13 18:02:32,081 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 18:02:32,082 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 18:02:32,082 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 18:02:32,082 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 18:02:32,082 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 18:02:32,082 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T18:02:05', tmtdew=15.95, humidity=32.42, cloud=0.0, wind=16.04, temperature=11.62, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T16:01:54.250', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 18:02:32,083 [DEBUG][       Thread-263415][   transport.py][1871] : EOF in transport thread
2025-06-13 18:02:32,174 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 18:02:32,184 [DEBUG][       Thread-263418][   transport.py][1871] : starting thread (client mode): 0x863a40a0
2025-06-13 18:02:32,184 [DEBUG][       Thread-263418][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 18:02:32,200 [DEBUG][       Thread-263418][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 18:02:32,200 [ INFO][       Thread-263418][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 18:02:32,207 [DEBUG][       Thread-263418][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 18:02:32,208 [DEBUG][       Thread-263418][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 18:02:32,208 [DEBUG][       Thread-263418][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 18:02:32,208 [DEBUG][       Thread-263418][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 18:02:32,208 [DEBUG][       Thread-263418][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 18:02:32,208 [DEBUG][       Thread-263418][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 18:02:32,208 [DEBUG][       Thread-263418][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 18:02:32,208 [DEBUG][       Thread-263418][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 18:02:32,208 [DEBUG][       Thread-263418][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 18:02:32,208 [DEBUG][       Thread-263418][   transport.py][1871] : client lang: <none>
2025-06-13 18:02:32,208 [DEBUG][       Thread-263418][   transport.py][1871] : server lang: <none>
2025-06-13 18:02:32,208 [DEBUG][       Thread-263418][   transport.py][1871] : kex follows: False
2025-06-13 18:02:32,208 [DEBUG][       Thread-263418][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 18:02:32,208 [DEBUG][       Thread-263418][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 18:02:32,208 [DEBUG][       Thread-263418][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 18:02:32,208 [DEBUG][       Thread-263418][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 18:02:32,208 [DEBUG][       Thread-263418][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 18:02:32,208 [DEBUG][       Thread-263418][   transport.py][1871] : Compression: none
2025-06-13 18:02:32,208 [DEBUG][       Thread-263418][   transport.py][1871] : === End of kex handshake ===
2025-06-13 18:02:32,265 [DEBUG][       Thread-263418][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 18:02:32,265 [DEBUG][       Thread-263418][   transport.py][1871] : Switch to new keys ...
2025-06-13 18:02:32,266 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 18:02:32,267 [DEBUG][       Thread-263418][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 18:02:32,267 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 18:02:32,321 [DEBUG][       Thread-263418][   transport.py][1871] : userauth is OK
2025-06-13 18:02:32,321 [DEBUG][       Thread-263418][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 18:02:32,321 [DEBUG][       Thread-263418][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 18:02:32,321 [DEBUG][       Thread-263418][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 18:02:32,321 [DEBUG][       Thread-263418][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 18:02:32,340 [ INFO][       Thread-263418][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 18:02:32,341 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 18:02:32,341 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 18:02:33,351 [DEBUG][       Thread-263418][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 18:02:33,351 [DEBUG][       Thread-263418][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 18:02:33,400 [DEBUG][       Thread-263418][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 18:02:33,400 [DEBUG][       Thread-263418][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 18:02:33,409 [DEBUG][       Thread-263418][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 18:02:33,418 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 18:02:33,419 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 18:02:33,432 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 18:02:33,446 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 18:02:33,447 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 18:02:33,447 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 18:02:33,458 [DEBUG][       Thread-263418][   transport.py][1871] : EOF in transport thread
2025-06-13 18:02:34,400 [DEBUG][Thread-263420 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 18:02:40,694 [DEBUG][Thread-263421 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 18:02:41,790 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 18:02:41,791 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 18:02:43,425 [DEBUG][Thread-263422 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 18:02:43,456 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 18:02:43,456 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 18:02:43,456 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 18:02:43,456 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 18:02:43,938 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 18, 2, 37), 15.92, 32.8, 0.0, 17.52, 11.59, 0, 0, 0, 2, 0, 0),)
2025-06-13 18:02:43,939 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 18:02:37
2025-06-13 18:02:44,022 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 18:02:44,028 [DEBUG][       Thread-263423][   transport.py][1871] : starting thread (client mode): 0x8636a2f0
2025-06-13 18:02:44,028 [DEBUG][       Thread-263423][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 18:02:44,050 [DEBUG][       Thread-263423][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 18:02:44,050 [ INFO][       Thread-263423][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 18:02:44,053 [DEBUG][       Thread-263423][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 18:02:44,053 [DEBUG][       Thread-263423][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 18:02:44,053 [DEBUG][       Thread-263423][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 18:02:44,053 [DEBUG][       Thread-263423][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 18:02:44,053 [DEBUG][       Thread-263423][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 18:02:44,053 [DEBUG][       Thread-263423][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 18:02:44,053 [DEBUG][       Thread-263423][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 18:02:44,053 [DEBUG][       Thread-263423][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 18:02:44,053 [DEBUG][       Thread-263423][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 18:02:44,053 [DEBUG][       Thread-263423][   transport.py][1871] : client lang: <none>
2025-06-13 18:02:44,053 [DEBUG][       Thread-263423][   transport.py][1871] : server lang: <none>
2025-06-13 18:02:44,053 [DEBUG][       Thread-263423][   transport.py][1871] : kex follows: False
2025-06-13 18:02:44,053 [DEBUG][       Thread-263423][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 18:02:44,053 [DEBUG][       Thread-263423][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 18:02:44,053 [DEBUG][       Thread-263423][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 18:02:44,053 [DEBUG][       Thread-263423][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 18:02:44,053 [DEBUG][       Thread-263423][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 18:02:44,053 [DEBUG][       Thread-263423][   transport.py][1871] : Compression: none
2025-06-13 18:02:44,053 [DEBUG][       Thread-263423][   transport.py][1871] : === End of kex handshake ===
2025-06-13 18:02:44,070 [DEBUG][       Thread-263423][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 18:02:44,070 [DEBUG][       Thread-263423][   transport.py][1871] : Switch to new keys ...
2025-06-13 18:02:44,070 [DEBUG][       Thread-263423][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 18:02:44,070 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 18:02:44,070 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 18:02:44,070 [DEBUG][       Thread-263423][   transport.py][1871] : userauth is OK
2025-06-13 18:02:44,094 [ INFO][       Thread-263423][   transport.py][1871] : Authentication (password) successful!
2025-06-13 18:02:44,094 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 18:02:44,702 [DEBUG][       Thread-263423][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 18:02:44,703 [DEBUG][       Thread-263423][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 18:02:44,745 [DEBUG][       Thread-263423][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 18:02:44,745 [DEBUG][       Thread-263423][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 18:02:44,747 [DEBUG][       Thread-263423][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 18:02:44,759 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 18:02:44,759 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 18:02:44,760 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 18:02:44,761 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 18:02:44,764 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 18:02:44,765 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 18:02:44,765 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 18:02:44,765 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 18:02:44,765 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.668336 -999.00  +11.40  18.84     37   -2.40 1 1 1 1 1   347    0 14.02 1.02 ----- 18.0 18.8 47.2 20.9 11.7 -29.4 11.6 -29.2 11.3 -28.3 11.7 -28.5
2025-06-13 18:02:44,765 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 18:02:44,765 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 18:02:44,765 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.668336
2025-06-13 18:02:44,765 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 18:02:44,765 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 18:02:44,765 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 18:02:44,766 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 18:02:44,766 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 18:02:44,766 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T18:02:37', tmtdew=15.92, humidity=32.8, cloud=0.0, wind=17.52, temperature=11.59, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T16:02:24.230', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 18:02:44,766 [DEBUG][       Thread-263423][   transport.py][1871] : EOF in transport thread
2025-06-13 18:02:44,839 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 18:02:44,850 [DEBUG][       Thread-263426][   transport.py][1871] : starting thread (client mode): 0x86392740
2025-06-13 18:02:44,850 [DEBUG][       Thread-263426][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 18:02:44,865 [DEBUG][       Thread-263426][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 18:02:44,865 [ INFO][       Thread-263426][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 18:02:44,872 [DEBUG][       Thread-263426][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 18:02:44,872 [DEBUG][       Thread-263426][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 18:02:44,872 [DEBUG][       Thread-263426][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 18:02:44,872 [DEBUG][       Thread-263426][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 18:02:44,872 [DEBUG][       Thread-263426][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 18:02:44,872 [DEBUG][       Thread-263426][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 18:02:44,872 [DEBUG][       Thread-263426][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 18:02:44,872 [DEBUG][       Thread-263426][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 18:02:44,872 [DEBUG][       Thread-263426][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 18:02:44,872 [DEBUG][       Thread-263426][   transport.py][1871] : client lang: <none>
2025-06-13 18:02:44,872 [DEBUG][       Thread-263426][   transport.py][1871] : server lang: <none>
2025-06-13 18:02:44,872 [DEBUG][       Thread-263426][   transport.py][1871] : kex follows: False
2025-06-13 18:02:44,872 [DEBUG][       Thread-263426][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 18:02:44,872 [DEBUG][       Thread-263426][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 18:02:44,872 [DEBUG][       Thread-263426][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 18:02:44,872 [DEBUG][       Thread-263426][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 18:02:44,872 [DEBUG][       Thread-263426][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 18:02:44,872 [DEBUG][       Thread-263426][   transport.py][1871] : Compression: none
2025-06-13 18:02:44,872 [DEBUG][       Thread-263426][   transport.py][1871] : === End of kex handshake ===
2025-06-13 18:02:44,927 [DEBUG][       Thread-263426][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 18:02:44,928 [DEBUG][       Thread-263426][   transport.py][1871] : Switch to new keys ...
2025-06-13 18:02:44,928 [DEBUG][       Thread-263426][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 18:02:44,928 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 18:02:44,928 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 18:02:44,984 [DEBUG][       Thread-263426][   transport.py][1871] : userauth is OK
2025-06-13 18:02:44,984 [DEBUG][       Thread-263426][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 18:02:44,984 [DEBUG][       Thread-263426][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 18:02:44,984 [DEBUG][       Thread-263426][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 18:02:44,984 [DEBUG][       Thread-263426][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 18:02:45,002 [ INFO][       Thread-263426][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 18:02:45,002 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 18:02:45,003 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 18:02:46,009 [DEBUG][       Thread-263426][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 18:02:46,009 [DEBUG][       Thread-263426][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 18:02:46,060 [DEBUG][       Thread-263426][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 18:02:46,060 [DEBUG][       Thread-263426][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 18:02:46,071 [DEBUG][       Thread-263426][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 18:02:46,082 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 18:02:46,082 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 18:02:46,095 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 18:02:46,105 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 18:02:46,105 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 18:02:46,106 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 18:02:46,114 [DEBUG][       Thread-263426][   transport.py][1871] : EOF in transport thread
2025-06-13 18:02:52,446 [DEBUG][Thread-263428 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 18:02:56,112 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 18:02:56,112 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 18:02:56,121 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 18:02:56,124 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 18:02:56,583 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 18, 2, 37), 15.92, 32.8, 0.0, 17.52, 11.59, 0, 0, 0, 2, 0, 0),)
2025-06-13 18:02:56,583 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 18:02:37
2025-06-13 18:02:56,665 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 18:02:56,669 [DEBUG][       Thread-263429][   transport.py][1871] : starting thread (client mode): 0x8636b790
2025-06-13 18:02:56,669 [DEBUG][       Thread-263429][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 18:02:56,691 [DEBUG][       Thread-263429][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 18:02:56,691 [ INFO][       Thread-263429][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 18:02:56,695 [DEBUG][       Thread-263429][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 18:02:56,695 [DEBUG][       Thread-263429][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 18:02:56,695 [DEBUG][       Thread-263429][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 18:02:56,695 [DEBUG][       Thread-263429][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 18:02:56,695 [DEBUG][       Thread-263429][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 18:02:56,695 [DEBUG][       Thread-263429][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 18:02:56,695 [DEBUG][       Thread-263429][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 18:02:56,695 [DEBUG][       Thread-263429][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 18:02:56,695 [DEBUG][       Thread-263429][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 18:02:56,695 [DEBUG][       Thread-263429][   transport.py][1871] : client lang: <none>
2025-06-13 18:02:56,695 [DEBUG][       Thread-263429][   transport.py][1871] : server lang: <none>
2025-06-13 18:02:56,695 [DEBUG][       Thread-263429][   transport.py][1871] : kex follows: False
2025-06-13 18:02:56,695 [DEBUG][       Thread-263429][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 18:02:56,695 [DEBUG][       Thread-263429][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 18:02:56,695 [DEBUG][       Thread-263429][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 18:02:56,695 [DEBUG][       Thread-263429][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 18:02:56,695 [DEBUG][       Thread-263429][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 18:02:56,695 [DEBUG][       Thread-263429][   transport.py][1871] : Compression: none
2025-06-13 18:02:56,696 [DEBUG][       Thread-263429][   transport.py][1871] : === End of kex handshake ===
2025-06-13 18:02:56,713 [DEBUG][       Thread-263429][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 18:02:56,714 [DEBUG][       Thread-263429][   transport.py][1871] : Switch to new keys ...
2025-06-13 18:02:56,715 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 18:02:56,715 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 18:02:56,715 [DEBUG][       Thread-263429][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 18:02:56,717 [DEBUG][       Thread-263429][   transport.py][1871] : userauth is OK
2025-06-13 18:02:56,730 [ INFO][       Thread-263429][   transport.py][1871] : Authentication (password) successful!
2025-06-13 18:02:56,731 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 18:02:57,373 [DEBUG][       Thread-263429][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 18:02:57,373 [DEBUG][       Thread-263429][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 18:02:57,417 [DEBUG][       Thread-263429][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 18:02:57,417 [DEBUG][       Thread-263429][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 18:02:57,420 [DEBUG][       Thread-263429][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 18:02:57,431 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 18:02:57,432 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 18:02:57,434 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 18:02:57,436 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 18:02:57,443 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 18:02:57,445 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 18:02:57,445 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 18:02:57,446 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 18:02:57,446 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.668336 -999.00  +11.40  18.84     37   -2.40 1 1 1 1 1   347    0 14.02 1.02 ----- 18.0 18.8 47.2 20.9 11.7 -29.4 11.6 -29.2 11.3 -28.3 11.7 -28.5
2025-06-13 18:02:57,446 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 18:02:57,446 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 18:02:57,446 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.668336
2025-06-13 18:02:57,447 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 18:02:57,447 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 18:02:57,447 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 18:02:57,447 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 18:02:57,447 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 18:02:57,448 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T18:02:37', tmtdew=15.92, humidity=32.8, cloud=0.0, wind=17.52, temperature=11.59, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T16:02:24.230', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 18:02:57,448 [DEBUG][       Thread-263429][   transport.py][1871] : EOF in transport thread
2025-06-13 18:02:57,532 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 18:02:57,541 [DEBUG][       Thread-263432][   transport.py][1871] : starting thread (client mode): 0x86368c40
2025-06-13 18:02:57,541 [DEBUG][       Thread-263432][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 18:02:57,560 [DEBUG][       Thread-263432][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 18:02:57,560 [ INFO][       Thread-263432][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 18:02:57,568 [DEBUG][       Thread-263432][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 18:02:57,568 [DEBUG][       Thread-263432][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 18:02:57,568 [DEBUG][       Thread-263432][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 18:02:57,568 [DEBUG][       Thread-263432][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 18:02:57,568 [DEBUG][       Thread-263432][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 18:02:57,568 [DEBUG][       Thread-263432][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 18:02:57,568 [DEBUG][       Thread-263432][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 18:02:57,568 [DEBUG][       Thread-263432][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 18:02:57,568 [DEBUG][       Thread-263432][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 18:02:57,568 [DEBUG][       Thread-263432][   transport.py][1871] : client lang: <none>
2025-06-13 18:02:57,569 [DEBUG][       Thread-263432][   transport.py][1871] : server lang: <none>
2025-06-13 18:02:57,569 [DEBUG][       Thread-263432][   transport.py][1871] : kex follows: False
2025-06-13 18:02:57,569 [DEBUG][       Thread-263432][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 18:02:57,569 [DEBUG][       Thread-263432][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 18:02:57,569 [DEBUG][       Thread-263432][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 18:02:57,569 [DEBUG][       Thread-263432][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 18:02:57,569 [DEBUG][       Thread-263432][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 18:02:57,569 [DEBUG][       Thread-263432][   transport.py][1871] : Compression: none
2025-06-13 18:02:57,569 [DEBUG][       Thread-263432][   transport.py][1871] : === End of kex handshake ===
2025-06-13 18:02:57,629 [DEBUG][       Thread-263432][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 18:02:57,630 [DEBUG][       Thread-263432][   transport.py][1871] : Switch to new keys ...
2025-06-13 18:02:57,630 [DEBUG][       Thread-263432][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 18:02:57,630 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 18:02:57,631 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 18:02:57,684 [DEBUG][       Thread-263432][   transport.py][1871] : userauth is OK
2025-06-13 18:02:57,685 [DEBUG][       Thread-263432][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 18:02:57,685 [DEBUG][       Thread-263432][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 18:02:57,685 [DEBUG][       Thread-263432][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 18:02:57,685 [DEBUG][       Thread-263432][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 18:02:57,704 [ INFO][       Thread-263432][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 18:02:57,704 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 18:02:57,705 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 18:02:58,728 [DEBUG][       Thread-263432][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 18:02:58,728 [DEBUG][       Thread-263432][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 18:02:58,776 [DEBUG][       Thread-263432][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 18:02:58,776 [DEBUG][       Thread-263432][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 18:02:58,785 [DEBUG][       Thread-263432][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 18:02:58,794 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 18:02:58,794 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 18:02:58,803 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 18:02:58,811 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 18:02:58,812 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 18:02:58,812 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 18:02:58,820 [DEBUG][       Thread-263432][   transport.py][1871] : EOF in transport thread
2025-06-13 18:03:01,493 [DEBUG][Thread-263434 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 18:03:02,317 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 18:03:02,318 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 18:03:08,820 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 18:03:08,820 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 18:03:08,820 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 18:03:08,821 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 18:03:09,268 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 18, 2, 37), 15.92, 32.8, 0.0, 17.52, 11.59, 0, 0, 0, 2, 0, 0),)
2025-06-13 18:03:09,269 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 18:02:37
2025-06-13 18:03:09,350 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 18:03:09,355 [DEBUG][       Thread-263435][   transport.py][1871] : starting thread (client mode): 0x86368c40
2025-06-13 18:03:09,355 [DEBUG][       Thread-263435][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 18:03:09,376 [DEBUG][       Thread-263435][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 18:03:09,376 [ INFO][       Thread-263435][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 18:03:09,379 [DEBUG][       Thread-263435][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 18:03:09,379 [DEBUG][       Thread-263435][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 18:03:09,379 [DEBUG][       Thread-263435][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 18:03:09,379 [DEBUG][       Thread-263435][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 18:03:09,379 [DEBUG][       Thread-263435][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 18:03:09,379 [DEBUG][       Thread-263435][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 18:03:09,379 [DEBUG][       Thread-263435][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 18:03:09,379 [DEBUG][       Thread-263435][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 18:03:09,379 [DEBUG][       Thread-263435][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 18:03:09,379 [DEBUG][       Thread-263435][   transport.py][1871] : client lang: <none>
2025-06-13 18:03:09,379 [DEBUG][       Thread-263435][   transport.py][1871] : server lang: <none>
2025-06-13 18:03:09,379 [DEBUG][       Thread-263435][   transport.py][1871] : kex follows: False
2025-06-13 18:03:09,379 [DEBUG][       Thread-263435][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 18:03:09,379 [DEBUG][       Thread-263435][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 18:03:09,380 [DEBUG][       Thread-263435][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 18:03:09,380 [DEBUG][       Thread-263435][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 18:03:09,380 [DEBUG][       Thread-263435][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 18:03:09,380 [DEBUG][       Thread-263435][   transport.py][1871] : Compression: none
2025-06-13 18:03:09,380 [DEBUG][       Thread-263435][   transport.py][1871] : === End of kex handshake ===
2025-06-13 18:03:09,395 [DEBUG][       Thread-263435][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 18:03:09,395 [DEBUG][       Thread-263435][   transport.py][1871] : Switch to new keys ...
2025-06-13 18:03:09,396 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 18:03:09,396 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 18:03:09,397 [DEBUG][       Thread-263435][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 18:03:09,398 [DEBUG][       Thread-263435][   transport.py][1871] : userauth is OK
2025-06-13 18:03:09,411 [ INFO][       Thread-263435][   transport.py][1871] : Authentication (password) successful!
2025-06-13 18:03:09,412 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 18:03:09,999 [DEBUG][       Thread-263435][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 18:03:09,999 [DEBUG][       Thread-263435][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 18:03:10,040 [DEBUG][       Thread-263435][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 18:03:10,041 [DEBUG][       Thread-263435][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 18:03:10,042 [DEBUG][       Thread-263435][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 18:03:10,054 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 18:03:10,054 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 18:03:10,055 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 18:03:10,055 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 18:03:10,058 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 18:03:10,059 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 18:03:10,059 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 18:03:10,059 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 18:03:10,059 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.668683 -999.00  +11.40  16.85     37   -2.50 1 1 1 1 1   327    0 14.05 0.76 ----- 22.2 16.9 48.0 21.9 11.7 -29.3 11.6 -29.1 11.3 -28.3 11.6 -28.4
2025-06-13 18:03:10,059 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 18:03:10,059 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 18:03:10,059 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.668683
2025-06-13 18:03:10,059 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 18:03:10,060 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 18:03:10,060 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 18:03:10,060 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 18:03:10,060 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 18:03:10,060 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T18:02:37', tmtdew=15.92, humidity=32.8, cloud=0.0, wind=17.52, temperature=11.59, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T16:02:54.211', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 18:03:10,060 [DEBUG][       Thread-263435][   transport.py][1871] : EOF in transport thread
2025-06-13 18:03:10,134 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 18:03:10,145 [DEBUG][       Thread-263438][   transport.py][1871] : starting thread (client mode): 0x86392380
2025-06-13 18:03:10,145 [DEBUG][       Thread-263438][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 18:03:10,160 [DEBUG][       Thread-263438][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 18:03:10,161 [ INFO][       Thread-263438][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 18:03:10,168 [DEBUG][       Thread-263438][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 18:03:10,168 [DEBUG][       Thread-263438][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 18:03:10,168 [DEBUG][       Thread-263438][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 18:03:10,168 [DEBUG][       Thread-263438][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 18:03:10,168 [DEBUG][       Thread-263438][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 18:03:10,168 [DEBUG][       Thread-263438][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 18:03:10,168 [DEBUG][       Thread-263438][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 18:03:10,168 [DEBUG][       Thread-263438][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 18:03:10,168 [DEBUG][       Thread-263438][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 18:03:10,168 [DEBUG][       Thread-263438][   transport.py][1871] : client lang: <none>
2025-06-13 18:03:10,168 [DEBUG][       Thread-263438][   transport.py][1871] : server lang: <none>
2025-06-13 18:03:10,168 [DEBUG][       Thread-263438][   transport.py][1871] : kex follows: False
2025-06-13 18:03:10,168 [DEBUG][       Thread-263438][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 18:03:10,168 [DEBUG][       Thread-263438][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 18:03:10,168 [DEBUG][       Thread-263438][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 18:03:10,168 [DEBUG][       Thread-263438][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 18:03:10,168 [DEBUG][       Thread-263438][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 18:03:10,168 [DEBUG][       Thread-263438][   transport.py][1871] : Compression: none
2025-06-13 18:03:10,168 [DEBUG][       Thread-263438][   transport.py][1871] : === End of kex handshake ===
2025-06-13 18:03:10,222 [DEBUG][       Thread-263438][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 18:03:10,222 [DEBUG][       Thread-263438][   transport.py][1871] : Switch to new keys ...
2025-06-13 18:03:10,223 [DEBUG][       Thread-263438][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 18:03:10,223 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 18:03:10,223 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 18:03:10,280 [DEBUG][       Thread-263438][   transport.py][1871] : userauth is OK
2025-06-13 18:03:10,280 [DEBUG][       Thread-263438][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 18:03:10,280 [DEBUG][       Thread-263438][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 18:03:10,280 [DEBUG][       Thread-263438][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 18:03:10,280 [DEBUG][       Thread-263438][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 18:03:10,294 [ INFO][       Thread-263438][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 18:03:10,294 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 18:03:10,294 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 18:03:10,519 [DEBUG][Thread-263440 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 18:03:11,318 [DEBUG][       Thread-263438][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 18:03:11,318 [DEBUG][       Thread-263438][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 18:03:11,368 [DEBUG][       Thread-263438][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 18:03:11,368 [DEBUG][       Thread-263438][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 18:03:11,378 [DEBUG][       Thread-263438][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 18:03:11,386 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 18:03:11,387 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 18:03:11,395 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 18:03:11,403 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 18:03:11,404 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 18:03:11,404 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 18:03:11,412 [DEBUG][       Thread-263438][   transport.py][1871] : EOF in transport thread
2025-06-13 18:03:19,538 [DEBUG][Thread-263441 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 18:03:21,414 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 18:03:21,414 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 18:03:21,414 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 18:03:21,415 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 18:03:21,901 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 18, 3, 9), 15.84, 32.83, 0.0, 15.81, 11.56, 0, 0, 0, 2, 0, 0),)
2025-06-13 18:03:21,902 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 18:03:09
2025-06-13 18:03:21,986 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 18:03:21,990 [DEBUG][       Thread-263442][   transport.py][1871] : starting thread (client mode): 0x867fedd0
2025-06-13 18:03:21,990 [DEBUG][       Thread-263442][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 18:03:22,005 [DEBUG][       Thread-263442][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 18:03:22,005 [ INFO][       Thread-263442][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 18:03:22,009 [DEBUG][       Thread-263442][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 18:03:22,009 [DEBUG][       Thread-263442][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 18:03:22,009 [DEBUG][       Thread-263442][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 18:03:22,009 [DEBUG][       Thread-263442][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 18:03:22,009 [DEBUG][       Thread-263442][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 18:03:22,009 [DEBUG][       Thread-263442][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 18:03:22,009 [DEBUG][       Thread-263442][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 18:03:22,009 [DEBUG][       Thread-263442][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 18:03:22,009 [DEBUG][       Thread-263442][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 18:03:22,009 [DEBUG][       Thread-263442][   transport.py][1871] : client lang: <none>
2025-06-13 18:03:22,009 [DEBUG][       Thread-263442][   transport.py][1871] : server lang: <none>
2025-06-13 18:03:22,009 [DEBUG][       Thread-263442][   transport.py][1871] : kex follows: False
2025-06-13 18:03:22,009 [DEBUG][       Thread-263442][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 18:03:22,009 [DEBUG][       Thread-263442][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 18:03:22,009 [DEBUG][       Thread-263442][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 18:03:22,009 [DEBUG][       Thread-263442][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 18:03:22,009 [DEBUG][       Thread-263442][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 18:03:22,009 [DEBUG][       Thread-263442][   transport.py][1871] : Compression: none
2025-06-13 18:03:22,009 [DEBUG][       Thread-263442][   transport.py][1871] : === End of kex handshake ===
2025-06-13 18:03:22,023 [DEBUG][       Thread-263442][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 18:03:22,023 [DEBUG][       Thread-263442][   transport.py][1871] : Switch to new keys ...
2025-06-13 18:03:22,024 [DEBUG][       Thread-263442][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 18:03:22,024 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 18:03:22,024 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 18:03:22,024 [DEBUG][       Thread-263442][   transport.py][1871] : userauth is OK
2025-06-13 18:03:22,048 [ INFO][       Thread-263442][   transport.py][1871] : Authentication (password) successful!
2025-06-13 18:03:22,048 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 18:03:22,682 [DEBUG][       Thread-263442][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 18:03:22,682 [DEBUG][       Thread-263442][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 18:03:22,724 [DEBUG][       Thread-263442][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 18:03:22,725 [DEBUG][       Thread-263442][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 18:03:22,727 [DEBUG][       Thread-263442][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 18:03:22,740 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 18:03:22,740 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 18:03:22,741 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 18:03:22,742 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 18:03:22,745 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 18:03:22,746 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 18:03:22,746 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 18:03:22,746 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 18:03:22,746 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.668683 -999.00  +11.40  16.85     37   -2.50 1 1 1 1 1   327    0 14.05 0.76 ----- 22.2 16.9 48.0 21.9 11.7 -29.3 11.6 -29.1 11.3 -28.3 11.6 -28.4
2025-06-13 18:03:22,746 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 18:03:22,746 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 18:03:22,746 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.668683
2025-06-13 18:03:22,747 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 18:03:22,747 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 18:03:22,747 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 18:03:22,747 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 18:03:22,747 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 18:03:22,747 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T18:03:09', tmtdew=15.84, humidity=32.83, cloud=0.0, wind=15.81, temperature=11.56, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T16:02:54.211', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 18:03:22,748 [DEBUG][       Thread-263442][   transport.py][1871] : EOF in transport thread
2025-06-13 18:03:22,819 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 18:03:22,828 [DEBUG][       Thread-263445][   transport.py][1871] : starting thread (client mode): 0x86353280
2025-06-13 18:03:22,828 [DEBUG][       Thread-263445][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 18:03:22,843 [DEBUG][       Thread-263445][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 18:03:22,843 [ INFO][       Thread-263445][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 18:03:22,850 [DEBUG][       Thread-263445][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 18:03:22,851 [DEBUG][       Thread-263445][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 18:03:22,851 [DEBUG][       Thread-263445][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 18:03:22,851 [DEBUG][       Thread-263445][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 18:03:22,851 [DEBUG][       Thread-263445][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 18:03:22,851 [DEBUG][       Thread-263445][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 18:03:22,851 [DEBUG][       Thread-263445][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 18:03:22,851 [DEBUG][       Thread-263445][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 18:03:22,851 [DEBUG][       Thread-263445][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 18:03:22,851 [DEBUG][       Thread-263445][   transport.py][1871] : client lang: <none>
2025-06-13 18:03:22,851 [DEBUG][       Thread-263445][   transport.py][1871] : server lang: <none>
2025-06-13 18:03:22,851 [DEBUG][       Thread-263445][   transport.py][1871] : kex follows: False
2025-06-13 18:03:22,851 [DEBUG][       Thread-263445][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 18:03:22,851 [DEBUG][       Thread-263445][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 18:03:22,851 [DEBUG][       Thread-263445][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 18:03:22,851 [DEBUG][       Thread-263445][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 18:03:22,851 [DEBUG][       Thread-263445][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 18:03:22,851 [DEBUG][       Thread-263445][   transport.py][1871] : Compression: none
2025-06-13 18:03:22,851 [DEBUG][       Thread-263445][   transport.py][1871] : === End of kex handshake ===
2025-06-13 18:03:22,911 [DEBUG][       Thread-263445][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 18:03:22,911 [DEBUG][       Thread-263445][   transport.py][1871] : Switch to new keys ...
2025-06-13 18:03:22,911 [DEBUG][       Thread-263445][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 18:03:22,911 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 18:03:22,911 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 18:03:22,977 [DEBUG][       Thread-263445][   transport.py][1871] : userauth is OK
2025-06-13 18:03:22,977 [DEBUG][       Thread-263445][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 18:03:22,977 [DEBUG][       Thread-263445][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 18:03:22,977 [DEBUG][       Thread-263445][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 18:03:22,977 [DEBUG][       Thread-263445][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 18:03:22,995 [ INFO][       Thread-263445][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 18:03:22,996 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 18:03:22,996 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 18:03:23,978 [DEBUG][       Thread-263445][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 18:03:23,978 [DEBUG][       Thread-263445][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 18:03:24,032 [DEBUG][       Thread-263445][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 18:03:24,032 [DEBUG][       Thread-263445][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 18:03:24,041 [DEBUG][       Thread-263445][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 18:03:24,049 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 18:03:24,050 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 18:03:24,058 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 18:03:24,067 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 18:03:24,068 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 18:03:24,068 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 18:03:24,076 [DEBUG][       Thread-263445][   transport.py][1871] : EOF in transport thread
2025-06-13 18:03:28,556 [DEBUG][Thread-263447 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 18:03:28,557 [DEBUG][Thread-263448 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 18:03:34,076 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 18:03:34,076 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 18:03:34,076 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 18:03:34,080 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 18:03:34,534 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 18, 3, 9), 15.84, 32.83, 0.0, 15.81, 11.56, 0, 0, 0, 2, 0, 0),)
2025-06-13 18:03:34,534 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 18:03:09
2025-06-13 18:03:34,615 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 18:03:34,621 [DEBUG][       Thread-263449][   transport.py][1871] : starting thread (client mode): 0x863ca5c0
2025-06-13 18:03:34,622 [DEBUG][       Thread-263449][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 18:03:34,637 [DEBUG][       Thread-263449][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 18:03:34,637 [ INFO][       Thread-263449][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 18:03:34,640 [DEBUG][       Thread-263449][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 18:03:34,640 [DEBUG][       Thread-263449][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 18:03:34,640 [DEBUG][       Thread-263449][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 18:03:34,641 [DEBUG][       Thread-263449][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 18:03:34,641 [DEBUG][       Thread-263449][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 18:03:34,641 [DEBUG][       Thread-263449][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 18:03:34,641 [DEBUG][       Thread-263449][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 18:03:34,641 [DEBUG][       Thread-263449][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 18:03:34,641 [DEBUG][       Thread-263449][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 18:03:34,641 [DEBUG][       Thread-263449][   transport.py][1871] : client lang: <none>
2025-06-13 18:03:34,641 [DEBUG][       Thread-263449][   transport.py][1871] : server lang: <none>
2025-06-13 18:03:34,641 [DEBUG][       Thread-263449][   transport.py][1871] : kex follows: False
2025-06-13 18:03:34,641 [DEBUG][       Thread-263449][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 18:03:34,641 [DEBUG][       Thread-263449][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 18:03:34,641 [DEBUG][       Thread-263449][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 18:03:34,641 [DEBUG][       Thread-263449][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 18:03:34,641 [DEBUG][       Thread-263449][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 18:03:34,641 [DEBUG][       Thread-263449][   transport.py][1871] : Compression: none
2025-06-13 18:03:34,641 [DEBUG][       Thread-263449][   transport.py][1871] : === End of kex handshake ===
2025-06-13 18:03:34,657 [DEBUG][       Thread-263449][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 18:03:34,657 [DEBUG][       Thread-263449][   transport.py][1871] : Switch to new keys ...
2025-06-13 18:03:34,658 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 18:03:34,658 [DEBUG][       Thread-263449][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 18:03:34,658 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 18:03:34,660 [DEBUG][       Thread-263449][   transport.py][1871] : userauth is OK
2025-06-13 18:03:34,673 [ INFO][       Thread-263449][   transport.py][1871] : Authentication (password) successful!
2025-06-13 18:03:34,674 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 18:03:35,329 [DEBUG][       Thread-263449][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 18:03:35,330 [DEBUG][       Thread-263449][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 18:03:35,373 [DEBUG][       Thread-263449][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 18:03:35,373 [DEBUG][       Thread-263449][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 18:03:35,376 [DEBUG][       Thread-263449][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 18:03:35,388 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 18:03:35,389 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 18:03:35,391 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 18:03:35,393 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 18:03:35,399 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 18:03:35,400 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 18:03:35,401 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 18:03:35,401 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 18:03:35,402 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.668683 -999.00  +11.40  16.85     37   -2.50 1 1 1 1 1   327    0 14.05 0.76 ----- 22.2 16.9 48.0 21.9 11.7 -29.3 11.6 -29.1 11.3 -28.3 11.6 -28.4
2025-06-13 18:03:35,402 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 18:03:35,402 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 18:03:35,402 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.668683
2025-06-13 18:03:35,402 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 18:03:35,403 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 18:03:35,403 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 18:03:35,403 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 18:03:35,403 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 18:03:35,403 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T18:03:09', tmtdew=15.84, humidity=32.83, cloud=0.0, wind=15.81, temperature=11.56, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T16:02:54.211', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 18:03:35,404 [DEBUG][       Thread-263449][   transport.py][1871] : EOF in transport thread
2025-06-13 18:03:35,487 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 18:03:35,498 [DEBUG][       Thread-263452][   transport.py][1871] : starting thread (client mode): 0x863beda0
2025-06-13 18:03:35,498 [DEBUG][       Thread-263452][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 18:03:35,514 [DEBUG][       Thread-263452][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 18:03:35,514 [ INFO][       Thread-263452][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 18:03:35,522 [DEBUG][       Thread-263452][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 18:03:35,522 [DEBUG][       Thread-263452][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 18:03:35,522 [DEBUG][       Thread-263452][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 18:03:35,522 [DEBUG][       Thread-263452][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 18:03:35,522 [DEBUG][       Thread-263452][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 18:03:35,522 [DEBUG][       Thread-263452][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 18:03:35,522 [DEBUG][       Thread-263452][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 18:03:35,522 [DEBUG][       Thread-263452][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 18:03:35,522 [DEBUG][       Thread-263452][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 18:03:35,522 [DEBUG][       Thread-263452][   transport.py][1871] : client lang: <none>
2025-06-13 18:03:35,522 [DEBUG][       Thread-263452][   transport.py][1871] : server lang: <none>
2025-06-13 18:03:35,522 [DEBUG][       Thread-263452][   transport.py][1871] : kex follows: False
2025-06-13 18:03:35,522 [DEBUG][       Thread-263452][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 18:03:35,522 [DEBUG][       Thread-263452][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 18:03:35,522 [DEBUG][       Thread-263452][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 18:03:35,522 [DEBUG][       Thread-263452][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 18:03:35,522 [DEBUG][       Thread-263452][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 18:03:35,522 [DEBUG][       Thread-263452][   transport.py][1871] : Compression: none
2025-06-13 18:03:35,523 [DEBUG][       Thread-263452][   transport.py][1871] : === End of kex handshake ===
2025-06-13 18:03:35,580 [DEBUG][       Thread-263452][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 18:03:35,581 [DEBUG][       Thread-263452][   transport.py][1871] : Switch to new keys ...
2025-06-13 18:03:35,582 [DEBUG][       Thread-263452][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 18:03:35,582 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 18:03:35,583 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 18:03:35,636 [DEBUG][       Thread-263452][   transport.py][1871] : userauth is OK
2025-06-13 18:03:35,637 [DEBUG][       Thread-263452][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 18:03:35,637 [DEBUG][       Thread-263452][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 18:03:35,637 [DEBUG][       Thread-263452][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 18:03:35,637 [DEBUG][       Thread-263452][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 18:03:35,656 [ INFO][       Thread-263452][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 18:03:35,656 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 18:03:35,657 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 18:03:36,655 [DEBUG][       Thread-263452][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 18:03:36,655 [DEBUG][       Thread-263452][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 18:03:36,704 [DEBUG][       Thread-263452][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 18:03:36,704 [DEBUG][       Thread-263452][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 18:03:36,715 [DEBUG][       Thread-263452][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 18:03:36,724 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 18:03:36,725 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 18:03:36,746 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 18:03:36,755 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 18:03:36,755 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 18:03:36,756 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 18:03:36,763 [DEBUG][       Thread-263452][   transport.py][1871] : EOF in transport thread
2025-06-13 18:03:37,584 [DEBUG][Thread-263454 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 18:03:41,876 [DEBUG][Thread-263455 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 18:03:42,984 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 18:03:42,986 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 18:03:46,606 [DEBUG][Thread-263456 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 18:03:46,766 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 18:03:46,767 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 18:03:46,767 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 18:03:46,770 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 18:03:47,227 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 18, 3, 40), 15.83, 32.87, 0.0, 16.53, 11.57, 0, 0, 0, 2, 0, 0),)
2025-06-13 18:03:47,227 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 18:03:40
2025-06-13 18:03:47,310 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 18:03:47,316 [DEBUG][       Thread-263457][   transport.py][1871] : starting thread (client mode): 0x867fc460
2025-06-13 18:03:47,316 [DEBUG][       Thread-263457][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 18:03:47,335 [DEBUG][       Thread-263457][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 18:03:47,335 [ INFO][       Thread-263457][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 18:03:47,339 [DEBUG][       Thread-263457][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 18:03:47,339 [DEBUG][       Thread-263457][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 18:03:47,339 [DEBUG][       Thread-263457][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 18:03:47,339 [DEBUG][       Thread-263457][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 18:03:47,339 [DEBUG][       Thread-263457][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 18:03:47,339 [DEBUG][       Thread-263457][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 18:03:47,339 [DEBUG][       Thread-263457][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 18:03:47,339 [DEBUG][       Thread-263457][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 18:03:47,339 [DEBUG][       Thread-263457][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 18:03:47,339 [DEBUG][       Thread-263457][   transport.py][1871] : client lang: <none>
2025-06-13 18:03:47,340 [DEBUG][       Thread-263457][   transport.py][1871] : server lang: <none>
2025-06-13 18:03:47,340 [DEBUG][       Thread-263457][   transport.py][1871] : kex follows: False
2025-06-13 18:03:47,340 [DEBUG][       Thread-263457][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 18:03:47,340 [DEBUG][       Thread-263457][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 18:03:47,340 [DEBUG][       Thread-263457][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 18:03:47,340 [DEBUG][       Thread-263457][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 18:03:47,340 [DEBUG][       Thread-263457][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 18:03:47,340 [DEBUG][       Thread-263457][   transport.py][1871] : Compression: none
2025-06-13 18:03:47,340 [DEBUG][       Thread-263457][   transport.py][1871] : === End of kex handshake ===
2025-06-13 18:03:47,355 [DEBUG][       Thread-263457][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 18:03:47,355 [DEBUG][       Thread-263457][   transport.py][1871] : Switch to new keys ...
2025-06-13 18:03:47,356 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 18:03:47,356 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 18:03:47,357 [DEBUG][       Thread-263457][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 18:03:47,357 [DEBUG][       Thread-263457][   transport.py][1871] : userauth is OK
2025-06-13 18:03:47,381 [ INFO][       Thread-263457][   transport.py][1871] : Authentication (password) successful!
2025-06-13 18:03:47,381 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 18:03:48,011 [DEBUG][       Thread-263457][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 18:03:48,012 [DEBUG][       Thread-263457][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 18:03:48,053 [DEBUG][       Thread-263457][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 18:03:48,053 [DEBUG][       Thread-263457][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 18:03:48,057 [DEBUG][       Thread-263457][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 18:03:48,068 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 18:03:48,069 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 18:03:48,070 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 18:03:48,072 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 18:03:48,078 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 18:03:48,080 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 18:03:48,080 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 18:03:48,081 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 18:03:48,081 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.669031 -999.00  +11.50  19.08     37   -2.30 1 1 1 1 1   307    0 14.12 0.64 ----- 18.9 19.1 56.6 22.5 11.7 -29.4 11.6 -29.2 11.2 -28.4 11.6 -28.5
2025-06-13 18:03:48,081 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 18:03:48,081 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 18:03:48,081 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.669031
2025-06-13 18:03:48,082 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 18:03:48,082 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 18:03:48,082 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 18:03:48,082 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 18:03:48,082 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 18:03:48,082 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T18:03:40', tmtdew=15.83, humidity=32.87, cloud=0.0, wind=16.53, temperature=11.57, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T16:03:24.278', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 18:03:48,083 [DEBUG][       Thread-263457][   transport.py][1871] : EOF in transport thread
2025-06-13 18:03:48,166 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 18:03:48,178 [DEBUG][       Thread-263460][   transport.py][1871] : starting thread (client mode): 0x867b5cf0
2025-06-13 18:03:48,178 [DEBUG][       Thread-263460][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 18:03:48,193 [DEBUG][       Thread-263460][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 18:03:48,193 [ INFO][       Thread-263460][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 18:03:48,200 [DEBUG][       Thread-263460][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 18:03:48,201 [DEBUG][       Thread-263460][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 18:03:48,201 [DEBUG][       Thread-263460][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 18:03:48,201 [DEBUG][       Thread-263460][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 18:03:48,201 [DEBUG][       Thread-263460][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 18:03:48,201 [DEBUG][       Thread-263460][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 18:03:48,201 [DEBUG][       Thread-263460][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 18:03:48,201 [DEBUG][       Thread-263460][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 18:03:48,201 [DEBUG][       Thread-263460][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 18:03:48,201 [DEBUG][       Thread-263460][   transport.py][1871] : client lang: <none>
2025-06-13 18:03:48,201 [DEBUG][       Thread-263460][   transport.py][1871] : server lang: <none>
2025-06-13 18:03:48,201 [DEBUG][       Thread-263460][   transport.py][1871] : kex follows: False
2025-06-13 18:03:48,201 [DEBUG][       Thread-263460][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 18:03:48,201 [DEBUG][       Thread-263460][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 18:03:48,201 [DEBUG][       Thread-263460][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 18:03:48,201 [DEBUG][       Thread-263460][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 18:03:48,201 [DEBUG][       Thread-263460][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 18:03:48,201 [DEBUG][       Thread-263460][   transport.py][1871] : Compression: none
2025-06-13 18:03:48,201 [DEBUG][       Thread-263460][   transport.py][1871] : === End of kex handshake ===
2025-06-13 18:03:48,261 [DEBUG][       Thread-263460][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 18:03:48,261 [DEBUG][       Thread-263460][   transport.py][1871] : Switch to new keys ...
2025-06-13 18:03:48,262 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 18:03:48,262 [DEBUG][       Thread-263460][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 18:03:48,263 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 18:03:48,320 [DEBUG][       Thread-263460][   transport.py][1871] : userauth is OK
2025-06-13 18:03:48,320 [DEBUG][       Thread-263460][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 18:03:48,320 [DEBUG][       Thread-263460][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 18:03:48,320 [DEBUG][       Thread-263460][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 18:03:48,321 [DEBUG][       Thread-263460][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 18:03:48,339 [ INFO][       Thread-263460][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 18:03:48,340 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 18:03:48,340 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 18:03:49,321 [DEBUG][       Thread-263460][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 18:03:49,321 [DEBUG][       Thread-263460][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 18:03:49,376 [DEBUG][       Thread-263460][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 18:03:49,376 [DEBUG][       Thread-263460][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 18:03:49,386 [DEBUG][       Thread-263460][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 18:03:49,395 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 18:03:49,395 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 18:03:49,404 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 18:03:49,413 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 18:03:49,414 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 18:03:49,414 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 18:03:49,422 [DEBUG][       Thread-263460][   transport.py][1871] : EOF in transport thread
2025-06-13 18:03:55,628 [DEBUG][Thread-263462 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 18:03:59,424 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 18:03:59,424 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 18:03:59,424 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 18:03:59,425 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 18:03:59,894 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 18, 3, 40), 15.83, 32.87, 0.0, 16.53, 11.57, 0, 0, 0, 2, 0, 0),)
2025-06-13 18:03:59,894 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 18:03:40
2025-06-13 18:03:59,980 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 18:03:59,984 [DEBUG][       Thread-263463][   transport.py][1871] : starting thread (client mode): 0x86391de0
2025-06-13 18:03:59,985 [DEBUG][       Thread-263463][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 18:04:00,005 [DEBUG][       Thread-263463][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 18:04:00,005 [ INFO][       Thread-263463][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 18:04:00,008 [DEBUG][       Thread-263463][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 18:04:00,008 [DEBUG][       Thread-263463][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 18:04:00,008 [DEBUG][       Thread-263463][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 18:04:00,008 [DEBUG][       Thread-263463][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 18:04:00,008 [DEBUG][       Thread-263463][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 18:04:00,008 [DEBUG][       Thread-263463][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 18:04:00,008 [DEBUG][       Thread-263463][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 18:04:00,008 [DEBUG][       Thread-263463][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 18:04:00,008 [DEBUG][       Thread-263463][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 18:04:00,008 [DEBUG][       Thread-263463][   transport.py][1871] : client lang: <none>
2025-06-13 18:04:00,008 [DEBUG][       Thread-263463][   transport.py][1871] : server lang: <none>
2025-06-13 18:04:00,008 [DEBUG][       Thread-263463][   transport.py][1871] : kex follows: False
2025-06-13 18:04:00,008 [DEBUG][       Thread-263463][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 18:04:00,008 [DEBUG][       Thread-263463][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 18:04:00,008 [DEBUG][       Thread-263463][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 18:04:00,008 [DEBUG][       Thread-263463][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 18:04:00,008 [DEBUG][       Thread-263463][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 18:04:00,008 [DEBUG][       Thread-263463][   transport.py][1871] : Compression: none
2025-06-13 18:04:00,008 [DEBUG][       Thread-263463][   transport.py][1871] : === End of kex handshake ===
2025-06-13 18:04:00,024 [DEBUG][       Thread-263463][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 18:04:00,024 [DEBUG][       Thread-263463][   transport.py][1871] : Switch to new keys ...
2025-06-13 18:04:00,024 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 18:04:00,024 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 18:04:00,024 [DEBUG][       Thread-263463][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 18:04:00,024 [DEBUG][       Thread-263463][   transport.py][1871] : userauth is OK
2025-06-13 18:04:00,037 [ INFO][       Thread-263463][   transport.py][1871] : Authentication (password) successful!
2025-06-13 18:04:00,037 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 18:04:00,665 [DEBUG][       Thread-263463][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 18:04:00,665 [DEBUG][       Thread-263463][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 18:04:00,708 [DEBUG][       Thread-263463][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 18:04:00,709 [DEBUG][       Thread-263463][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 18:04:00,711 [DEBUG][       Thread-263463][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 18:04:00,724 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 18:04:00,724 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 18:04:00,725 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 18:04:00,726 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 18:04:00,729 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 18:04:00,730 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 18:04:00,730 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 18:04:00,730 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 18:04:00,730 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.669031 -999.00  +11.50  19.08     37   -2.30 1 1 1 1 1   307    0 14.12 0.64 ----- 18.9 19.1 56.6 22.5 11.7 -29.4 11.6 -29.2 11.2 -28.4 11.6 -28.5
2025-06-13 18:04:00,730 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 18:04:00,730 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 18:04:00,730 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.669031
2025-06-13 18:04:00,730 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 18:04:00,730 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 18:04:00,730 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 18:04:00,730 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 18:04:00,730 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 18:04:00,730 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T18:03:40', tmtdew=15.83, humidity=32.87, cloud=0.0, wind=16.53, temperature=11.57, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T16:03:24.278', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 18:04:00,731 [DEBUG][       Thread-263463][   transport.py][1871] : EOF in transport thread
2025-06-13 18:04:00,804 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 18:04:00,814 [DEBUG][       Thread-263466][   transport.py][1871] : starting thread (client mode): 0x867fdfc0
2025-06-13 18:04:00,814 [DEBUG][       Thread-263466][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 18:04:00,829 [DEBUG][       Thread-263466][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 18:04:00,829 [ INFO][       Thread-263466][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 18:04:00,837 [DEBUG][       Thread-263466][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 18:04:00,837 [DEBUG][       Thread-263466][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 18:04:00,837 [DEBUG][       Thread-263466][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 18:04:00,837 [DEBUG][       Thread-263466][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 18:04:00,837 [DEBUG][       Thread-263466][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 18:04:00,837 [DEBUG][       Thread-263466][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 18:04:00,837 [DEBUG][       Thread-263466][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 18:04:00,837 [DEBUG][       Thread-263466][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 18:04:00,837 [DEBUG][       Thread-263466][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 18:04:00,837 [DEBUG][       Thread-263466][   transport.py][1871] : client lang: <none>
2025-06-13 18:04:00,837 [DEBUG][       Thread-263466][   transport.py][1871] : server lang: <none>
2025-06-13 18:04:00,837 [DEBUG][       Thread-263466][   transport.py][1871] : kex follows: False
2025-06-13 18:04:00,837 [DEBUG][       Thread-263466][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 18:04:00,837 [DEBUG][       Thread-263466][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 18:04:00,837 [DEBUG][       Thread-263466][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 18:04:00,837 [DEBUG][       Thread-263466][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 18:04:00,837 [DEBUG][       Thread-263466][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 18:04:00,837 [DEBUG][       Thread-263466][   transport.py][1871] : Compression: none
2025-06-13 18:04:00,837 [DEBUG][       Thread-263466][   transport.py][1871] : === End of kex handshake ===
2025-06-13 18:04:00,899 [DEBUG][       Thread-263466][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 18:04:00,899 [DEBUG][       Thread-263466][   transport.py][1871] : Switch to new keys ...
2025-06-13 18:04:00,899 [DEBUG][       Thread-263466][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 18:04:00,899 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 18:04:00,899 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 18:04:00,959 [DEBUG][       Thread-263466][   transport.py][1871] : userauth is OK
2025-06-13 18:04:00,959 [DEBUG][       Thread-263466][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 18:04:00,959 [DEBUG][       Thread-263466][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 18:04:00,959 [DEBUG][       Thread-263466][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 18:04:00,959 [DEBUG][       Thread-263466][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 18:04:00,973 [ INFO][       Thread-263466][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 18:04:00,973 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 18:04:00,973 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 18:04:01,991 [DEBUG][       Thread-263466][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 18:04:01,991 [DEBUG][       Thread-263466][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 18:04:02,039 [DEBUG][       Thread-263466][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 18:04:02,039 [DEBUG][       Thread-263466][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 18:04:02,048 [DEBUG][       Thread-263466][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 18:04:02,056 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 18:04:02,056 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 18:04:02,063 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 18:04:02,073 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 18:04:02,073 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 18:04:02,073 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 18:04:02,081 [DEBUG][       Thread-263466][   transport.py][1871] : EOF in transport thread
2025-06-13 18:04:04,662 [DEBUG][Thread-263468 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 18:04:07,676 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 18:04:07,677 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 18:04:12,075 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 18:04:12,076 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 18:04:12,076 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 18:04:12,079 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 18:04:12,532 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 18, 3, 40), 15.83, 32.87, 0.0, 16.53, 11.57, 0, 0, 0, 2, 0, 0),)
2025-06-13 18:04:12,532 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 18:03:40
2025-06-13 18:04:12,614 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 18:04:12,620 [DEBUG][       Thread-263469][   transport.py][1871] : starting thread (client mode): 0x86368d30
2025-06-13 18:04:12,620 [DEBUG][       Thread-263469][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 18:04:12,640 [DEBUG][       Thread-263469][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 18:04:12,641 [ INFO][       Thread-263469][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 18:04:12,644 [DEBUG][       Thread-263469][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 18:04:12,644 [DEBUG][       Thread-263469][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 18:04:12,644 [DEBUG][       Thread-263469][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 18:04:12,644 [DEBUG][       Thread-263469][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 18:04:12,644 [DEBUG][       Thread-263469][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 18:04:12,644 [DEBUG][       Thread-263469][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 18:04:12,644 [DEBUG][       Thread-263469][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 18:04:12,644 [DEBUG][       Thread-263469][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 18:04:12,644 [DEBUG][       Thread-263469][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 18:04:12,644 [DEBUG][       Thread-263469][   transport.py][1871] : client lang: <none>
2025-06-13 18:04:12,644 [DEBUG][       Thread-263469][   transport.py][1871] : server lang: <none>
2025-06-13 18:04:12,644 [DEBUG][       Thread-263469][   transport.py][1871] : kex follows: False
2025-06-13 18:04:12,644 [DEBUG][       Thread-263469][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 18:04:12,644 [DEBUG][       Thread-263469][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 18:04:12,644 [DEBUG][       Thread-263469][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 18:04:12,644 [DEBUG][       Thread-263469][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 18:04:12,644 [DEBUG][       Thread-263469][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 18:04:12,645 [DEBUG][       Thread-263469][   transport.py][1871] : Compression: none
2025-06-13 18:04:12,645 [DEBUG][       Thread-263469][   transport.py][1871] : === End of kex handshake ===
2025-06-13 18:04:12,660 [DEBUG][       Thread-263469][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 18:04:12,661 [DEBUG][       Thread-263469][   transport.py][1871] : Switch to new keys ...
2025-06-13 18:04:12,661 [DEBUG][       Thread-263469][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 18:04:12,662 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 18:04:12,662 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 18:04:12,663 [DEBUG][       Thread-263469][   transport.py][1871] : userauth is OK
2025-06-13 18:04:12,688 [ INFO][       Thread-263469][   transport.py][1871] : Authentication (password) successful!
2025-06-13 18:04:12,689 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 18:04:13,272 [DEBUG][       Thread-263469][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 18:04:13,272 [DEBUG][       Thread-263469][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 18:04:13,316 [DEBUG][       Thread-263469][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 18:04:13,316 [DEBUG][       Thread-263469][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 18:04:13,319 [DEBUG][       Thread-263469][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 18:04:13,331 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 18:04:13,331 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 18:04:13,332 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 18:04:13,333 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 18:04:13,337 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 18:04:13,337 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 18:04:13,337 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 18:04:13,338 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 18:04:13,338 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.669031 -999.00  +11.50  19.08     37   -2.30 1 1 1 1 1   307    0 14.12 0.64 ----- 18.9 19.1 56.6 22.5 11.7 -29.4 11.6 -29.2 11.2 -28.4 11.6 -28.5
2025-06-13 18:04:13,338 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 18:04:13,338 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 18:04:13,338 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.669031
2025-06-13 18:04:13,338 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 18:04:13,338 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 18:04:13,338 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 18:04:13,338 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 18:04:13,338 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 18:04:13,338 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T18:03:40', tmtdew=15.83, humidity=32.87, cloud=0.0, wind=16.53, temperature=11.57, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T16:03:24.278', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 18:04:13,339 [DEBUG][       Thread-263469][   transport.py][1871] : EOF in transport thread
2025-06-13 18:04:13,413 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 18:04:13,424 [DEBUG][       Thread-263472][   transport.py][1871] : starting thread (client mode): 0x867b54b0
2025-06-13 18:04:13,424 [DEBUG][       Thread-263472][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 18:04:13,438 [DEBUG][       Thread-263472][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 18:04:13,438 [ INFO][       Thread-263472][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 18:04:13,446 [DEBUG][       Thread-263472][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 18:04:13,446 [DEBUG][       Thread-263472][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 18:04:13,446 [DEBUG][       Thread-263472][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 18:04:13,446 [DEBUG][       Thread-263472][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 18:04:13,446 [DEBUG][       Thread-263472][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 18:04:13,446 [DEBUG][       Thread-263472][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 18:04:13,446 [DEBUG][       Thread-263472][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 18:04:13,446 [DEBUG][       Thread-263472][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 18:04:13,446 [DEBUG][       Thread-263472][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 18:04:13,446 [DEBUG][       Thread-263472][   transport.py][1871] : client lang: <none>
2025-06-13 18:04:13,446 [DEBUG][       Thread-263472][   transport.py][1871] : server lang: <none>
2025-06-13 18:04:13,446 [DEBUG][       Thread-263472][   transport.py][1871] : kex follows: False
2025-06-13 18:04:13,446 [DEBUG][       Thread-263472][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 18:04:13,446 [DEBUG][       Thread-263472][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 18:04:13,446 [DEBUG][       Thread-263472][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 18:04:13,446 [DEBUG][       Thread-263472][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 18:04:13,446 [DEBUG][       Thread-263472][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 18:04:13,446 [DEBUG][       Thread-263472][   transport.py][1871] : Compression: none
2025-06-13 18:04:13,446 [DEBUG][       Thread-263472][   transport.py][1871] : === End of kex handshake ===
2025-06-13 18:04:13,502 [DEBUG][       Thread-263472][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 18:04:13,502 [DEBUG][       Thread-263472][   transport.py][1871] : Switch to new keys ...
2025-06-13 18:04:13,502 [DEBUG][       Thread-263472][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 18:04:13,502 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 18:04:13,502 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 18:04:13,561 [DEBUG][       Thread-263472][   transport.py][1871] : userauth is OK
2025-06-13 18:04:13,561 [DEBUG][       Thread-263472][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 18:04:13,561 [DEBUG][       Thread-263472][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 18:04:13,561 [DEBUG][       Thread-263472][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 18:04:13,561 [DEBUG][       Thread-263472][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 18:04:13,581 [ INFO][       Thread-263472][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 18:04:13,581 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 18:04:13,581 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 18:04:13,683 [DEBUG][Thread-263474 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 18:04:14,595 [DEBUG][       Thread-263472][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 18:04:14,595 [DEBUG][       Thread-263472][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 18:04:14,647 [DEBUG][       Thread-263472][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 18:04:14,648 [DEBUG][       Thread-263472][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 18:04:14,657 [DEBUG][       Thread-263472][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 18:04:14,665 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 18:04:14,665 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 18:04:14,677 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 18:04:14,689 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 18:04:14,690 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 18:04:14,690 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 18:04:14,698 [DEBUG][       Thread-263472][   transport.py][1871] : EOF in transport thread
2025-06-13 18:04:22,703 [DEBUG][Thread-263475 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 18:04:24,701 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 18:04:24,701 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 18:04:24,701 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 18:04:24,704 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 18:04:25,153 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 18, 4, 12), 15.74, 32.91, 0.0, 19.23, 11.48, 0, 0, 0, 2, 0, 0),)
2025-06-13 18:04:25,153 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 18:04:12
2025-06-13 18:04:25,234 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 18:04:25,237 [DEBUG][       Thread-263476][   transport.py][1871] : starting thread (client mode): 0x86369e10
2025-06-13 18:04:25,237 [DEBUG][       Thread-263476][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 18:04:25,259 [DEBUG][       Thread-263476][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 18:04:25,259 [ INFO][       Thread-263476][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 18:04:25,263 [DEBUG][       Thread-263476][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 18:04:25,263 [DEBUG][       Thread-263476][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 18:04:25,263 [DEBUG][       Thread-263476][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 18:04:25,263 [DEBUG][       Thread-263476][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 18:04:25,263 [DEBUG][       Thread-263476][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 18:04:25,263 [DEBUG][       Thread-263476][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 18:04:25,263 [DEBUG][       Thread-263476][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 18:04:25,263 [DEBUG][       Thread-263476][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 18:04:25,263 [DEBUG][       Thread-263476][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 18:04:25,263 [DEBUG][       Thread-263476][   transport.py][1871] : client lang: <none>
2025-06-13 18:04:25,263 [DEBUG][       Thread-263476][   transport.py][1871] : server lang: <none>
2025-06-13 18:04:25,263 [DEBUG][       Thread-263476][   transport.py][1871] : kex follows: False
2025-06-13 18:04:25,263 [DEBUG][       Thread-263476][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 18:04:25,263 [DEBUG][       Thread-263476][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 18:04:25,263 [DEBUG][       Thread-263476][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 18:04:25,263 [DEBUG][       Thread-263476][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 18:04:25,263 [DEBUG][       Thread-263476][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 18:04:25,263 [DEBUG][       Thread-263476][   transport.py][1871] : Compression: none
2025-06-13 18:04:25,263 [DEBUG][       Thread-263476][   transport.py][1871] : === End of kex handshake ===
2025-06-13 18:04:25,280 [DEBUG][       Thread-263476][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 18:04:25,280 [DEBUG][       Thread-263476][   transport.py][1871] : Switch to new keys ...
2025-06-13 18:04:25,281 [DEBUG][       Thread-263476][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 18:04:25,281 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 18:04:25,281 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 18:04:25,282 [DEBUG][       Thread-263476][   transport.py][1871] : userauth is OK
2025-06-13 18:04:25,307 [ INFO][       Thread-263476][   transport.py][1871] : Authentication (password) successful!
2025-06-13 18:04:25,308 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 18:04:25,962 [DEBUG][       Thread-263476][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 18:04:25,962 [DEBUG][       Thread-263476][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 18:04:26,005 [DEBUG][       Thread-263476][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 18:04:26,005 [DEBUG][       Thread-263476][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 18:04:26,008 [DEBUG][       Thread-263476][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 18:04:26,019 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 18:04:26,020 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 18:04:26,022 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 18:04:26,023 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 18:04:26,029 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 18:04:26,031 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 18:04:26,032 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 18:04:26,033 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 18:04:26,033 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.669378 -999.00  +11.40  18.83     37   -2.30 1 1 1 1 1   288    0 13.89 -0.54 ----- 18.4 18.8 51.0 22.7 11.7 -29.3 11.5 -29.1 11.3 -28.1 11.6 -28.5
2025-06-13 18:04:26,033 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 18:04:26,033 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 18:04:26,033 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.669378
2025-06-13 18:04:26,034 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 18:04:26,034 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 18:04:26,034 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 18:04:26,034 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 18:04:26,034 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 18:04:26,035 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T18:04:12', tmtdew=15.74, humidity=32.91, cloud=0.0, wind=19.23, temperature=11.48, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T16:03:54.259', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 18:04:26,035 [DEBUG][       Thread-263476][   transport.py][1871] : EOF in transport thread
2025-06-13 18:04:26,120 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 18:04:26,130 [DEBUG][       Thread-263479][   transport.py][1871] : starting thread (client mode): 0x867b5f90
2025-06-13 18:04:26,130 [DEBUG][       Thread-263479][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 18:04:26,144 [DEBUG][       Thread-263479][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 18:04:26,144 [ INFO][       Thread-263479][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 18:04:26,152 [DEBUG][       Thread-263479][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 18:04:26,152 [DEBUG][       Thread-263479][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 18:04:26,152 [DEBUG][       Thread-263479][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 18:04:26,152 [DEBUG][       Thread-263479][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 18:04:26,152 [DEBUG][       Thread-263479][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 18:04:26,152 [DEBUG][       Thread-263479][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 18:04:26,153 [DEBUG][       Thread-263479][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 18:04:26,153 [DEBUG][       Thread-263479][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 18:04:26,153 [DEBUG][       Thread-263479][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 18:04:26,153 [DEBUG][       Thread-263479][   transport.py][1871] : client lang: <none>
2025-06-13 18:04:26,153 [DEBUG][       Thread-263479][   transport.py][1871] : server lang: <none>
2025-06-13 18:04:26,153 [DEBUG][       Thread-263479][   transport.py][1871] : kex follows: False
2025-06-13 18:04:26,153 [DEBUG][       Thread-263479][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 18:04:26,153 [DEBUG][       Thread-263479][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 18:04:26,153 [DEBUG][       Thread-263479][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 18:04:26,153 [DEBUG][       Thread-263479][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 18:04:26,154 [DEBUG][       Thread-263479][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 18:04:26,154 [DEBUG][       Thread-263479][   transport.py][1871] : Compression: none
2025-06-13 18:04:26,154 [DEBUG][       Thread-263479][   transport.py][1871] : === End of kex handshake ===
2025-06-13 18:04:26,213 [DEBUG][       Thread-263479][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 18:04:26,214 [DEBUG][       Thread-263479][   transport.py][1871] : Switch to new keys ...
2025-06-13 18:04:26,215 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 18:04:26,216 [DEBUG][       Thread-263479][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 18:04:26,217 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 18:04:26,274 [DEBUG][       Thread-263479][   transport.py][1871] : userauth is OK
2025-06-13 18:04:26,274 [DEBUG][       Thread-263479][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 18:04:26,274 [DEBUG][       Thread-263479][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 18:04:26,275 [DEBUG][       Thread-263479][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 18:04:26,275 [DEBUG][       Thread-263479][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 18:04:26,300 [ INFO][       Thread-263479][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 18:04:26,300 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 18:04:26,300 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 18:04:27,277 [DEBUG][       Thread-263479][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 18:04:27,278 [DEBUG][       Thread-263479][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 18:04:27,328 [DEBUG][       Thread-263479][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 18:04:27,328 [DEBUG][       Thread-263479][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 18:04:27,338 [DEBUG][       Thread-263479][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 18:04:27,347 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 18:04:27,347 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 18:04:27,356 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 18:04:27,366 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 18:04:27,366 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 18:04:27,366 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 18:04:27,375 [DEBUG][       Thread-263479][   transport.py][1871] : EOF in transport thread
2025-06-13 18:04:28,633 [DEBUG][Thread-263481 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 18:04:31,728 [DEBUG][Thread-263482 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 18:04:37,372 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 18:04:37,372 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 18:04:37,372 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 18:04:37,375 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 18:04:37,828 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 18, 4, 12), 15.74, 32.91, 0.0, 19.23, 11.48, 0, 0, 0, 2, 0, 0),)
2025-06-13 18:04:37,828 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 18:04:12
2025-06-13 18:04:37,909 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 18:04:37,914 [DEBUG][       Thread-263483][   transport.py][1871] : starting thread (client mode): 0x86368430
2025-06-13 18:04:37,914 [DEBUG][       Thread-263483][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 18:04:37,935 [DEBUG][       Thread-263483][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 18:04:37,935 [ INFO][       Thread-263483][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 18:04:37,939 [DEBUG][       Thread-263483][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 18:04:37,939 [DEBUG][       Thread-263483][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 18:04:37,939 [DEBUG][       Thread-263483][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 18:04:37,939 [DEBUG][       Thread-263483][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 18:04:37,939 [DEBUG][       Thread-263483][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 18:04:37,939 [DEBUG][       Thread-263483][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 18:04:37,939 [DEBUG][       Thread-263483][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 18:04:37,939 [DEBUG][       Thread-263483][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 18:04:37,939 [DEBUG][       Thread-263483][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 18:04:37,939 [DEBUG][       Thread-263483][   transport.py][1871] : client lang: <none>
2025-06-13 18:04:37,939 [DEBUG][       Thread-263483][   transport.py][1871] : server lang: <none>
2025-06-13 18:04:37,939 [DEBUG][       Thread-263483][   transport.py][1871] : kex follows: False
2025-06-13 18:04:37,939 [DEBUG][       Thread-263483][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 18:04:37,939 [DEBUG][       Thread-263483][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 18:04:37,939 [DEBUG][       Thread-263483][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 18:04:37,939 [DEBUG][       Thread-263483][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 18:04:37,939 [DEBUG][       Thread-263483][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 18:04:37,939 [DEBUG][       Thread-263483][   transport.py][1871] : Compression: none
2025-06-13 18:04:37,939 [DEBUG][       Thread-263483][   transport.py][1871] : === End of kex handshake ===
2025-06-13 18:04:37,955 [DEBUG][       Thread-263483][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 18:04:37,955 [DEBUG][       Thread-263483][   transport.py][1871] : Switch to new keys ...
2025-06-13 18:04:37,956 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 18:04:37,956 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 18:04:37,956 [DEBUG][       Thread-263483][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 18:04:37,957 [DEBUG][       Thread-263483][   transport.py][1871] : userauth is OK
2025-06-13 18:04:37,971 [ INFO][       Thread-263483][   transport.py][1871] : Authentication (password) successful!
2025-06-13 18:04:37,972 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 18:04:38,611 [DEBUG][       Thread-263483][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 18:04:38,611 [DEBUG][       Thread-263483][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 18:04:38,652 [DEBUG][       Thread-263483][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 18:04:38,652 [DEBUG][       Thread-263483][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 18:04:38,655 [DEBUG][       Thread-263483][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 18:04:38,668 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 18:04:38,668 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 18:04:38,669 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 18:04:38,670 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 18:04:38,673 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 18:04:38,674 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 18:04:38,674 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 18:04:38,674 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 18:04:38,674 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.669378 -999.00  +11.40  18.83     37   -2.30 1 1 1 1 1   288    0 13.89 -0.54 ----- 18.4 18.8 51.0 22.7 11.7 -29.3 11.5 -29.1 11.3 -28.1 11.6 -28.5
2025-06-13 18:04:38,674 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 18:04:38,674 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 18:04:38,674 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.669378
2025-06-13 18:04:38,675 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 18:04:38,675 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 18:04:38,675 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 18:04:38,675 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 18:04:38,675 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 18:04:38,675 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T18:04:12', tmtdew=15.74, humidity=32.91, cloud=0.0, wind=19.23, temperature=11.48, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T16:03:54.259', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 18:04:38,676 [DEBUG][       Thread-263483][   transport.py][1871] : EOF in transport thread
2025-06-13 18:04:38,747 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 18:04:38,759 [DEBUG][       Thread-263486][   transport.py][1871] : starting thread (client mode): 0x863ed8d0
2025-06-13 18:04:38,759 [DEBUG][       Thread-263486][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 18:04:38,775 [DEBUG][       Thread-263486][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 18:04:38,775 [ INFO][       Thread-263486][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 18:04:38,784 [DEBUG][       Thread-263486][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 18:04:38,784 [DEBUG][       Thread-263486][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 18:04:38,784 [DEBUG][       Thread-263486][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 18:04:38,784 [DEBUG][       Thread-263486][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 18:04:38,784 [DEBUG][       Thread-263486][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 18:04:38,784 [DEBUG][       Thread-263486][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 18:04:38,784 [DEBUG][       Thread-263486][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 18:04:38,784 [DEBUG][       Thread-263486][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 18:04:38,784 [DEBUG][       Thread-263486][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 18:04:38,784 [DEBUG][       Thread-263486][   transport.py][1871] : client lang: <none>
2025-06-13 18:04:38,784 [DEBUG][       Thread-263486][   transport.py][1871] : server lang: <none>
2025-06-13 18:04:38,784 [DEBUG][       Thread-263486][   transport.py][1871] : kex follows: False
2025-06-13 18:04:38,784 [DEBUG][       Thread-263486][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 18:04:38,784 [DEBUG][       Thread-263486][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 18:04:38,784 [DEBUG][       Thread-263486][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 18:04:38,784 [DEBUG][       Thread-263486][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 18:04:38,784 [DEBUG][       Thread-263486][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 18:04:38,784 [DEBUG][       Thread-263486][   transport.py][1871] : Compression: none
2025-06-13 18:04:38,784 [DEBUG][       Thread-263486][   transport.py][1871] : === End of kex handshake ===
2025-06-13 18:04:38,838 [DEBUG][       Thread-263486][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 18:04:38,838 [DEBUG][       Thread-263486][   transport.py][1871] : Switch to new keys ...
2025-06-13 18:04:38,838 [DEBUG][       Thread-263486][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 18:04:38,838 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 18:04:38,838 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 18:04:38,903 [DEBUG][       Thread-263486][   transport.py][1871] : userauth is OK
2025-06-13 18:04:38,903 [DEBUG][       Thread-263486][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 18:04:38,903 [DEBUG][       Thread-263486][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 18:04:38,903 [DEBUG][       Thread-263486][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 18:04:38,903 [DEBUG][       Thread-263486][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 18:04:38,917 [ INFO][       Thread-263486][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 18:04:38,917 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 18:04:38,917 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 18:04:39,910 [DEBUG][       Thread-263486][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 18:04:39,910 [DEBUG][       Thread-263486][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 18:04:39,959 [DEBUG][       Thread-263486][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 18:04:39,959 [DEBUG][       Thread-263486][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 18:04:39,968 [DEBUG][       Thread-263486][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 18:04:39,976 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 18:04:39,976 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 18:04:39,984 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 18:04:39,992 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 18:04:39,992 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 18:04:39,992 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 18:04:39,999 [DEBUG][       Thread-263486][   transport.py][1871] : EOF in transport thread
2025-06-13 18:04:40,760 [DEBUG][Thread-263488 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 18:04:43,077 [DEBUG][Thread-263489 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 18:04:44,206 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 18:04:44,207 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 18:04:49,780 [DEBUG][Thread-263490 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 18:04:49,998 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 18:04:49,998 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 18:04:49,998 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 18:04:50,001 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 18:04:50,466 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 18, 4, 44), 15.73, 32.94, 0.0, 17.38, 11.5, 0, 0, 0, 2, 0, 0),)
2025-06-13 18:04:50,467 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 18:04:44
2025-06-13 18:04:50,548 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 18:04:50,554 [DEBUG][       Thread-263491][   transport.py][1871] : starting thread (client mode): 0x8636b070
2025-06-13 18:04:50,554 [DEBUG][       Thread-263491][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 18:04:50,574 [DEBUG][       Thread-263491][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 18:04:50,574 [ INFO][       Thread-263491][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 18:04:50,578 [DEBUG][       Thread-263491][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 18:04:50,578 [DEBUG][       Thread-263491][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 18:04:50,578 [DEBUG][       Thread-263491][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 18:04:50,578 [DEBUG][       Thread-263491][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 18:04:50,578 [DEBUG][       Thread-263491][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 18:04:50,578 [DEBUG][       Thread-263491][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 18:04:50,578 [DEBUG][       Thread-263491][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 18:04:50,578 [DEBUG][       Thread-263491][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 18:04:50,578 [DEBUG][       Thread-263491][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 18:04:50,578 [DEBUG][       Thread-263491][   transport.py][1871] : client lang: <none>
2025-06-13 18:04:50,578 [DEBUG][       Thread-263491][   transport.py][1871] : server lang: <none>
2025-06-13 18:04:50,578 [DEBUG][       Thread-263491][   transport.py][1871] : kex follows: False
2025-06-13 18:04:50,578 [DEBUG][       Thread-263491][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 18:04:50,578 [DEBUG][       Thread-263491][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 18:04:50,579 [DEBUG][       Thread-263491][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 18:04:50,579 [DEBUG][       Thread-263491][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 18:04:50,579 [DEBUG][       Thread-263491][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 18:04:50,579 [DEBUG][       Thread-263491][   transport.py][1871] : Compression: none
2025-06-13 18:04:50,579 [DEBUG][       Thread-263491][   transport.py][1871] : === End of kex handshake ===
2025-06-13 18:04:50,596 [DEBUG][       Thread-263491][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 18:04:50,596 [DEBUG][       Thread-263491][   transport.py][1871] : Switch to new keys ...
2025-06-13 18:04:50,597 [DEBUG][       Thread-263491][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 18:04:50,597 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 18:04:50,597 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 18:04:50,598 [DEBUG][       Thread-263491][   transport.py][1871] : userauth is OK
2025-06-13 18:04:50,611 [ INFO][       Thread-263491][   transport.py][1871] : Authentication (password) successful!
2025-06-13 18:04:50,611 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 18:04:51,255 [DEBUG][       Thread-263491][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 18:04:51,255 [DEBUG][       Thread-263491][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 18:04:51,297 [DEBUG][       Thread-263491][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 18:04:51,297 [DEBUG][       Thread-263491][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 18:04:51,300 [DEBUG][       Thread-263491][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 18:04:51,312 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 18:04:51,312 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 18:04:51,314 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 18:04:51,316 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 18:04:51,322 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 18:04:51,325 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 18:04:51,325 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 18:04:51,325 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 18:04:51,326 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.669725 -999.00  +11.40  19.82     37   -2.40 1 1 1 1 1   270    0 14.03 -1.59 ----- 17.6 19.8 55.0 23.4 11.7 -29.4 11.5 -29.2 11.3 -28.2 11.6 -28.5
2025-06-13 18:04:51,326 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 18:04:51,326 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 18:04:51,326 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.669725
2025-06-13 18:04:51,326 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 18:04:51,327 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 18:04:51,327 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 18:04:51,327 [DEBUG][       Thread-263491][   transport.py][1871] : EOF in transport thread
2025-06-13 18:04:51,327 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 18:04:51,328 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 18:04:51,328 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T18:04:44', tmtdew=15.73, humidity=32.94, cloud=0.0, wind=17.38, temperature=11.5, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T16:04:24.240', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 18:04:51,412 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 18:04:51,423 [DEBUG][       Thread-263494][   transport.py][1871] : starting thread (client mode): 0x86350dc0
2025-06-13 18:04:51,423 [DEBUG][       Thread-263494][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 18:04:51,443 [DEBUG][       Thread-263494][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 18:04:51,443 [ INFO][       Thread-263494][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 18:04:51,451 [DEBUG][       Thread-263494][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 18:04:51,451 [DEBUG][       Thread-263494][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 18:04:51,451 [DEBUG][       Thread-263494][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 18:04:51,451 [DEBUG][       Thread-263494][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 18:04:51,451 [DEBUG][       Thread-263494][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 18:04:51,451 [DEBUG][       Thread-263494][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 18:04:51,451 [DEBUG][       Thread-263494][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 18:04:51,451 [DEBUG][       Thread-263494][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 18:04:51,451 [DEBUG][       Thread-263494][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 18:04:51,451 [DEBUG][       Thread-263494][   transport.py][1871] : client lang: <none>
2025-06-13 18:04:51,451 [DEBUG][       Thread-263494][   transport.py][1871] : server lang: <none>
2025-06-13 18:04:51,451 [DEBUG][       Thread-263494][   transport.py][1871] : kex follows: False
2025-06-13 18:04:51,451 [DEBUG][       Thread-263494][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 18:04:51,451 [DEBUG][       Thread-263494][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 18:04:51,451 [DEBUG][       Thread-263494][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 18:04:51,451 [DEBUG][       Thread-263494][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 18:04:51,451 [DEBUG][       Thread-263494][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 18:04:51,451 [DEBUG][       Thread-263494][   transport.py][1871] : Compression: none
2025-06-13 18:04:51,451 [DEBUG][       Thread-263494][   transport.py][1871] : === End of kex handshake ===
2025-06-13 18:04:51,512 [DEBUG][       Thread-263494][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 18:04:51,512 [DEBUG][       Thread-263494][   transport.py][1871] : Switch to new keys ...
2025-06-13 18:04:51,512 [DEBUG][       Thread-263494][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 18:04:51,512 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 18:04:51,512 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 18:04:51,572 [DEBUG][       Thread-263494][   transport.py][1871] : userauth is OK
2025-06-13 18:04:51,572 [DEBUG][       Thread-263494][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 18:04:51,572 [DEBUG][       Thread-263494][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 18:04:51,572 [DEBUG][       Thread-263494][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 18:04:51,572 [DEBUG][       Thread-263494][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 18:04:51,591 [ INFO][       Thread-263494][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 18:04:51,591 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 18:04:51,591 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 18:04:52,588 [DEBUG][       Thread-263494][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 18:04:52,588 [DEBUG][       Thread-263494][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 18:04:52,639 [DEBUG][       Thread-263494][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 18:04:52,640 [DEBUG][       Thread-263494][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 18:04:52,649 [DEBUG][       Thread-263494][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 18:04:52,658 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 18:04:52,658 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 18:04:52,667 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 18:04:52,676 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 18:04:52,677 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 18:04:52,677 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 18:04:52,685 [DEBUG][       Thread-263494][   transport.py][1871] : EOF in transport thread
2025-06-13 18:04:58,803 [DEBUG][Thread-263496 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 18:05:02,687 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 18:05:02,688 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 18:05:02,688 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 18:05:02,691 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 18:05:03,149 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 18, 4, 44), 15.73, 32.94, 0.0, 17.38, 11.5, 0, 0, 0, 2, 0, 0),)
2025-06-13 18:05:03,149 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 18:04:44
2025-06-13 18:05:03,230 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 18:05:03,233 [DEBUG][       Thread-263497][   transport.py][1871] : starting thread (client mode): 0x8636a020
2025-06-13 18:05:03,234 [DEBUG][       Thread-263497][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 18:05:03,255 [DEBUG][       Thread-263497][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 18:05:03,255 [ INFO][       Thread-263497][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 18:05:03,260 [DEBUG][       Thread-263497][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 18:05:03,260 [DEBUG][       Thread-263497][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 18:05:03,260 [DEBUG][       Thread-263497][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 18:05:03,260 [DEBUG][       Thread-263497][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 18:05:03,260 [DEBUG][       Thread-263497][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 18:05:03,260 [DEBUG][       Thread-263497][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 18:05:03,260 [DEBUG][       Thread-263497][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 18:05:03,260 [DEBUG][       Thread-263497][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 18:05:03,260 [DEBUG][       Thread-263497][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 18:05:03,260 [DEBUG][       Thread-263497][   transport.py][1871] : client lang: <none>
2025-06-13 18:05:03,260 [DEBUG][       Thread-263497][   transport.py][1871] : server lang: <none>
2025-06-13 18:05:03,260 [DEBUG][       Thread-263497][   transport.py][1871] : kex follows: False
2025-06-13 18:05:03,260 [DEBUG][       Thread-263497][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 18:05:03,261 [DEBUG][       Thread-263497][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 18:05:03,261 [DEBUG][       Thread-263497][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 18:05:03,261 [DEBUG][       Thread-263497][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 18:05:03,261 [DEBUG][       Thread-263497][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 18:05:03,261 [DEBUG][       Thread-263497][   transport.py][1871] : Compression: none
2025-06-13 18:05:03,261 [DEBUG][       Thread-263497][   transport.py][1871] : === End of kex handshake ===
2025-06-13 18:05:03,285 [DEBUG][       Thread-263497][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 18:05:03,286 [DEBUG][       Thread-263497][   transport.py][1871] : Switch to new keys ...
2025-06-13 18:05:03,286 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 18:05:03,286 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 18:05:03,287 [DEBUG][       Thread-263497][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 18:05:03,288 [DEBUG][       Thread-263497][   transport.py][1871] : userauth is OK
2025-06-13 18:05:03,313 [ INFO][       Thread-263497][   transport.py][1871] : Authentication (password) successful!
2025-06-13 18:05:03,313 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 18:05:06,898 [DEBUG][       Thread-263497][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 18:05:06,898 [DEBUG][       Thread-263497][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 18:05:06,941 [DEBUG][       Thread-263497][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 18:05:06,941 [DEBUG][       Thread-263497][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 18:05:06,945 [DEBUG][       Thread-263497][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 18:05:07,019 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 18:05:07,019 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 18:05:07,020 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 18:05:07,021 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 18:05:07,024 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 18:05:07,025 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 18:05:07,025 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 18:05:07,025 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 18:05:07,025 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.669725 -999.00  +11.40  19.82     37   -2.40 1 1 1 1 1   270    0 14.03 -1.59 ----- 17.6 19.8 55.0 23.4 11.7 -29.4 11.5 -29.2 11.3 -28.2 11.6 -28.5
2025-06-13 18:05:07,025 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 18:05:07,025 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 18:05:07,025 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.669725
2025-06-13 18:05:07,025 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 18:05:07,025 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 18:05:07,025 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 18:05:07,025 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 18:05:07,025 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 18:05:07,025 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T18:04:44', tmtdew=15.73, humidity=32.94, cloud=0.0, wind=17.38, temperature=11.5, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T16:04:24.240', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 18:05:07,026 [DEBUG][       Thread-263497][   transport.py][1871] : EOF in transport thread
2025-06-13 18:05:07,097 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 18:05:07,107 [DEBUG][       Thread-263500][   transport.py][1871] : starting thread (client mode): 0x863a5600
2025-06-13 18:05:07,107 [DEBUG][       Thread-263500][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 18:05:07,122 [DEBUG][       Thread-263500][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 18:05:07,122 [ INFO][       Thread-263500][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 18:05:07,130 [DEBUG][       Thread-263500][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 18:05:07,130 [DEBUG][       Thread-263500][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 18:05:07,130 [DEBUG][       Thread-263500][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 18:05:07,130 [DEBUG][       Thread-263500][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 18:05:07,130 [DEBUG][       Thread-263500][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 18:05:07,130 [DEBUG][       Thread-263500][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 18:05:07,130 [DEBUG][       Thread-263500][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 18:05:07,130 [DEBUG][       Thread-263500][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 18:05:07,130 [DEBUG][       Thread-263500][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 18:05:07,130 [DEBUG][       Thread-263500][   transport.py][1871] : client lang: <none>
2025-06-13 18:05:07,130 [DEBUG][       Thread-263500][   transport.py][1871] : server lang: <none>
2025-06-13 18:05:07,130 [DEBUG][       Thread-263500][   transport.py][1871] : kex follows: False
2025-06-13 18:05:07,130 [DEBUG][       Thread-263500][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 18:05:07,131 [DEBUG][       Thread-263500][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 18:05:07,131 [DEBUG][       Thread-263500][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 18:05:07,131 [DEBUG][       Thread-263500][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 18:05:07,131 [DEBUG][       Thread-263500][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 18:05:07,131 [DEBUG][       Thread-263500][   transport.py][1871] : Compression: none
2025-06-13 18:05:07,131 [DEBUG][       Thread-263500][   transport.py][1871] : === End of kex handshake ===
2025-06-13 18:05:07,190 [DEBUG][       Thread-263500][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 18:05:07,191 [DEBUG][       Thread-263500][   transport.py][1871] : Switch to new keys ...
2025-06-13 18:05:07,191 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 18:05:07,192 [DEBUG][       Thread-263500][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 18:05:07,192 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 18:05:07,253 [DEBUG][       Thread-263500][   transport.py][1871] : userauth is OK
2025-06-13 18:05:07,254 [DEBUG][       Thread-263500][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 18:05:07,254 [DEBUG][       Thread-263500][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 18:05:07,254 [DEBUG][       Thread-263500][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 18:05:07,254 [DEBUG][       Thread-263500][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 18:05:07,272 [ INFO][       Thread-263500][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 18:05:07,273 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 18:05:07,273 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 18:05:07,842 [DEBUG][Thread-263502 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 18:05:08,306 [DEBUG][       Thread-263500][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 18:05:08,306 [DEBUG][       Thread-263500][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 18:05:08,357 [DEBUG][       Thread-263500][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 18:05:08,357 [DEBUG][       Thread-263500][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 18:05:08,367 [DEBUG][       Thread-263500][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 18:05:08,376 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 18:05:08,376 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 18:05:08,385 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 18:05:08,395 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 18:05:08,395 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 18:05:08,396 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 18:05:08,404 [DEBUG][       Thread-263500][   transport.py][1871] : EOF in transport thread
2025-06-13 18:05:14,871 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 18:05:14,872 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 18:05:16,863 [DEBUG][Thread-263503 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 18:05:18,406 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 18:05:18,406 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 18:05:18,406 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 18:05:18,407 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 18:05:18,905 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 18, 5, 15), 15.6, 33.34, 0.0, 16.62, 11.5, 0, 0, 0, 2, 0, 0),)
2025-06-13 18:05:18,905 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 18:05:15
2025-06-13 18:05:18,991 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 18:05:18,996 [DEBUG][       Thread-263504][   transport.py][1871] : starting thread (client mode): 0x867fdba0
2025-06-13 18:05:18,996 [DEBUG][       Thread-263504][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 18:05:19,016 [DEBUG][       Thread-263504][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 18:05:19,016 [ INFO][       Thread-263504][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 18:05:19,020 [DEBUG][       Thread-263504][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 18:05:19,020 [DEBUG][       Thread-263504][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 18:05:19,020 [DEBUG][       Thread-263504][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 18:05:19,020 [DEBUG][       Thread-263504][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 18:05:19,020 [DEBUG][       Thread-263504][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 18:05:19,020 [DEBUG][       Thread-263504][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 18:05:19,020 [DEBUG][       Thread-263504][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 18:05:19,020 [DEBUG][       Thread-263504][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 18:05:19,020 [DEBUG][       Thread-263504][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 18:05:19,020 [DEBUG][       Thread-263504][   transport.py][1871] : client lang: <none>
2025-06-13 18:05:19,020 [DEBUG][       Thread-263504][   transport.py][1871] : server lang: <none>
2025-06-13 18:05:19,020 [DEBUG][       Thread-263504][   transport.py][1871] : kex follows: False
2025-06-13 18:05:19,020 [DEBUG][       Thread-263504][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 18:05:19,020 [DEBUG][       Thread-263504][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 18:05:19,020 [DEBUG][       Thread-263504][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 18:05:19,020 [DEBUG][       Thread-263504][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 18:05:19,020 [DEBUG][       Thread-263504][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 18:05:19,020 [DEBUG][       Thread-263504][   transport.py][1871] : Compression: none
2025-06-13 18:05:19,020 [DEBUG][       Thread-263504][   transport.py][1871] : === End of kex handshake ===
2025-06-13 18:05:19,034 [DEBUG][       Thread-263504][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 18:05:19,034 [DEBUG][       Thread-263504][   transport.py][1871] : Switch to new keys ...
2025-06-13 18:05:19,034 [DEBUG][       Thread-263504][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 18:05:19,034 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 18:05:19,034 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 18:05:19,034 [DEBUG][       Thread-263504][   transport.py][1871] : userauth is OK
2025-06-13 18:05:19,047 [ INFO][       Thread-263504][   transport.py][1871] : Authentication (password) successful!
2025-06-13 18:05:19,047 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 18:05:19,634 [DEBUG][       Thread-263504][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 18:05:19,634 [DEBUG][       Thread-263504][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 18:05:19,677 [DEBUG][       Thread-263504][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 18:05:19,677 [DEBUG][       Thread-263504][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 18:05:19,679 [DEBUG][       Thread-263504][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 18:05:19,692 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 18:05:19,692 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 18:05:19,693 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 18:05:19,694 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 18:05:19,697 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 18:05:19,698 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 18:05:19,698 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 18:05:19,698 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 18:05:19,698 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.669725 -999.00  +11.40  19.82     37   -2.40 1 1 1 1 1   270    0 14.03 -1.59 ----- 17.6 19.8 55.0 23.4 11.7 -29.4 11.5 -29.2 11.3 -28.2 11.6 -28.5
2025-06-13 18:05:19,698 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 18:05:19,698 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 18:05:19,698 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.669725
2025-06-13 18:05:19,698 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 18:05:19,698 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 18:05:19,698 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 18:05:19,698 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 18:05:19,698 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 18:05:19,698 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T18:05:15', tmtdew=15.6, humidity=33.34, cloud=0.0, wind=16.62, temperature=11.5, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T16:04:24.240', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 18:05:19,699 [DEBUG][       Thread-263504][   transport.py][1871] : EOF in transport thread
2025-06-13 18:05:19,770 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 18:05:19,781 [DEBUG][       Thread-263507][   transport.py][1871] : starting thread (client mode): 0x86893be0
2025-06-13 18:05:19,781 [DEBUG][       Thread-263507][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 18:05:19,797 [DEBUG][       Thread-263507][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 18:05:19,797 [ INFO][       Thread-263507][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 18:05:19,809 [DEBUG][       Thread-263507][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 18:05:19,809 [DEBUG][       Thread-263507][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 18:05:19,809 [DEBUG][       Thread-263507][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 18:05:19,809 [DEBUG][       Thread-263507][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 18:05:19,809 [DEBUG][       Thread-263507][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 18:05:19,809 [DEBUG][       Thread-263507][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 18:05:19,809 [DEBUG][       Thread-263507][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 18:05:19,809 [DEBUG][       Thread-263507][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 18:05:19,809 [DEBUG][       Thread-263507][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 18:05:19,809 [DEBUG][       Thread-263507][   transport.py][1871] : client lang: <none>
2025-06-13 18:05:19,809 [DEBUG][       Thread-263507][   transport.py][1871] : server lang: <none>
2025-06-13 18:05:19,809 [DEBUG][       Thread-263507][   transport.py][1871] : kex follows: False
2025-06-13 18:05:19,809 [DEBUG][       Thread-263507][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 18:05:19,809 [DEBUG][       Thread-263507][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 18:05:19,809 [DEBUG][       Thread-263507][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 18:05:19,809 [DEBUG][       Thread-263507][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 18:05:19,809 [DEBUG][       Thread-263507][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 18:05:19,809 [DEBUG][       Thread-263507][   transport.py][1871] : Compression: none
2025-06-13 18:05:19,809 [DEBUG][       Thread-263507][   transport.py][1871] : === End of kex handshake ===
2025-06-13 18:05:19,862 [DEBUG][       Thread-263507][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 18:05:19,862 [DEBUG][       Thread-263507][   transport.py][1871] : Switch to new keys ...
2025-06-13 18:05:19,862 [DEBUG][       Thread-263507][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 18:05:19,862 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 18:05:19,862 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 18:05:19,919 [DEBUG][       Thread-263507][   transport.py][1871] : userauth is OK
2025-06-13 18:05:19,919 [DEBUG][       Thread-263507][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 18:05:19,919 [DEBUG][       Thread-263507][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 18:05:19,919 [DEBUG][       Thread-263507][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 18:05:19,920 [DEBUG][       Thread-263507][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 18:05:19,934 [ INFO][       Thread-263507][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 18:05:19,935 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 18:05:19,935 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 18:05:20,929 [DEBUG][       Thread-263507][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 18:05:20,929 [DEBUG][       Thread-263507][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 18:05:20,980 [DEBUG][       Thread-263507][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 18:05:20,980 [DEBUG][       Thread-263507][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 18:05:20,988 [DEBUG][       Thread-263507][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 18:05:20,996 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 18:05:20,996 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 18:05:21,004 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 18:05:21,012 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 18:05:21,012 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 18:05:21,012 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 18:05:21,022 [DEBUG][       Thread-263507][   transport.py][1871] : EOF in transport thread
2025-06-13 18:05:25,879 [DEBUG][Thread-263509 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 18:05:28,708 [DEBUG][Thread-263510 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 18:05:31,013 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 18:05:31,013 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 18:05:31,022 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 18:05:31,025 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 18:05:31,491 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 18, 5, 15), 15.6, 33.34, 0.0, 16.62, 11.5, 0, 0, 0, 2, 0, 0),)
2025-06-13 18:05:31,491 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 18:05:15
2025-06-13 18:05:31,572 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 18:05:31,576 [DEBUG][       Thread-263511][   transport.py][1871] : starting thread (client mode): 0x86368880
2025-06-13 18:05:31,576 [DEBUG][       Thread-263511][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 18:05:31,597 [DEBUG][       Thread-263511][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 18:05:31,597 [ INFO][       Thread-263511][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 18:05:31,600 [DEBUG][       Thread-263511][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 18:05:31,601 [DEBUG][       Thread-263511][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 18:05:31,601 [DEBUG][       Thread-263511][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 18:05:31,601 [DEBUG][       Thread-263511][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 18:05:31,601 [DEBUG][       Thread-263511][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 18:05:31,601 [DEBUG][       Thread-263511][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 18:05:31,601 [DEBUG][       Thread-263511][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 18:05:31,601 [DEBUG][       Thread-263511][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 18:05:31,601 [DEBUG][       Thread-263511][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 18:05:31,601 [DEBUG][       Thread-263511][   transport.py][1871] : client lang: <none>
2025-06-13 18:05:31,601 [DEBUG][       Thread-263511][   transport.py][1871] : server lang: <none>
2025-06-13 18:05:31,601 [DEBUG][       Thread-263511][   transport.py][1871] : kex follows: False
2025-06-13 18:05:31,601 [DEBUG][       Thread-263511][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 18:05:31,601 [DEBUG][       Thread-263511][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 18:05:31,601 [DEBUG][       Thread-263511][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 18:05:31,601 [DEBUG][       Thread-263511][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 18:05:31,601 [DEBUG][       Thread-263511][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 18:05:31,601 [DEBUG][       Thread-263511][   transport.py][1871] : Compression: none
2025-06-13 18:05:31,601 [DEBUG][       Thread-263511][   transport.py][1871] : === End of kex handshake ===
2025-06-13 18:05:31,617 [DEBUG][       Thread-263511][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 18:05:31,617 [DEBUG][       Thread-263511][   transport.py][1871] : Switch to new keys ...
2025-06-13 18:05:31,618 [DEBUG][       Thread-263511][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 18:05:31,618 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 18:05:31,618 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 18:05:31,619 [DEBUG][       Thread-263511][   transport.py][1871] : userauth is OK
2025-06-13 18:05:31,644 [ INFO][       Thread-263511][   transport.py][1871] : Authentication (password) successful!
2025-06-13 18:05:31,645 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 18:05:32,269 [DEBUG][       Thread-263511][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 18:05:32,269 [DEBUG][       Thread-263511][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 18:05:32,313 [DEBUG][       Thread-263511][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 18:05:32,313 [DEBUG][       Thread-263511][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 18:05:32,316 [DEBUG][       Thread-263511][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 18:05:32,328 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 18:05:32,328 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 18:05:32,338 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 18:05:32,340 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 18:05:32,346 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 18:05:32,348 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 18:05:32,348 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 18:05:32,349 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 18:05:32,349 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.670072 -999.00  +11.40  19.49     37   -2.30 1 1 1 1 1   252    0 13.51 -3.02 ----- 18.1 19.5 54.6 22.4 11.7 -29.2 11.5 -29.1 11.2 -28.3 11.6 -28.4
2025-06-13 18:05:32,349 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 18:05:32,349 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 18:05:32,349 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.670072
2025-06-13 18:05:32,350 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 18:05:32,350 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 18:05:32,350 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 18:05:32,350 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 18:05:32,350 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 18:05:32,350 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T18:05:15', tmtdew=15.6, humidity=33.34, cloud=0.0, wind=16.62, temperature=11.5, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T16:04:54.221', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 18:05:32,352 [DEBUG][       Thread-263511][   transport.py][1871] : EOF in transport thread
2025-06-13 18:05:32,444 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 18:05:32,455 [DEBUG][       Thread-263514][   transport.py][1871] : starting thread (client mode): 0x863932e0
2025-06-13 18:05:32,455 [DEBUG][       Thread-263514][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 18:05:32,475 [DEBUG][       Thread-263514][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 18:05:32,476 [ INFO][       Thread-263514][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 18:05:32,483 [DEBUG][       Thread-263514][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 18:05:32,484 [DEBUG][       Thread-263514][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 18:05:32,484 [DEBUG][       Thread-263514][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 18:05:32,484 [DEBUG][       Thread-263514][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 18:05:32,484 [DEBUG][       Thread-263514][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 18:05:32,484 [DEBUG][       Thread-263514][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 18:05:32,484 [DEBUG][       Thread-263514][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 18:05:32,484 [DEBUG][       Thread-263514][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 18:05:32,484 [DEBUG][       Thread-263514][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 18:05:32,484 [DEBUG][       Thread-263514][   transport.py][1871] : client lang: <none>
2025-06-13 18:05:32,484 [DEBUG][       Thread-263514][   transport.py][1871] : server lang: <none>
2025-06-13 18:05:32,484 [DEBUG][       Thread-263514][   transport.py][1871] : kex follows: False
2025-06-13 18:05:32,484 [DEBUG][       Thread-263514][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 18:05:32,484 [DEBUG][       Thread-263514][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 18:05:32,484 [DEBUG][       Thread-263514][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 18:05:32,484 [DEBUG][       Thread-263514][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 18:05:32,485 [DEBUG][       Thread-263514][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 18:05:32,485 [DEBUG][       Thread-263514][   transport.py][1871] : Compression: none
2025-06-13 18:05:32,485 [DEBUG][       Thread-263514][   transport.py][1871] : === End of kex handshake ===
2025-06-13 18:05:32,547 [DEBUG][       Thread-263514][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 18:05:32,548 [DEBUG][       Thread-263514][   transport.py][1871] : Switch to new keys ...
2025-06-13 18:05:32,549 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 18:05:32,549 [DEBUG][       Thread-263514][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 18:05:32,550 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 18:05:32,604 [DEBUG][       Thread-263514][   transport.py][1871] : userauth is OK
2025-06-13 18:05:32,605 [DEBUG][       Thread-263514][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 18:05:32,605 [DEBUG][       Thread-263514][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 18:05:32,605 [DEBUG][       Thread-263514][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 18:05:32,605 [DEBUG][       Thread-263514][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 18:05:32,623 [ INFO][       Thread-263514][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 18:05:32,624 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 18:05:32,624 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 18:05:33,602 [DEBUG][       Thread-263514][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 18:05:33,602 [DEBUG][       Thread-263514][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 18:05:33,652 [DEBUG][       Thread-263514][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 18:05:33,652 [DEBUG][       Thread-263514][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 18:05:33,662 [DEBUG][       Thread-263514][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 18:05:33,671 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 18:05:33,671 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 18:05:33,680 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 18:05:33,689 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 18:05:33,689 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 18:05:33,690 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 18:05:33,698 [DEBUG][       Thread-263514][   transport.py][1871] : EOF in transport thread
2025-06-13 18:05:34,912 [DEBUG][Thread-263516 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 18:05:43,692 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 18:05:43,692 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 18:05:43,692 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 18:05:43,695 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 18:05:43,934 [DEBUG][Thread-263517 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 18:05:44,158 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 18, 5, 15), 15.6, 33.34, 0.0, 16.62, 11.5, 0, 0, 0, 2, 0, 0),)
2025-06-13 18:05:44,159 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 18:05:15
2025-06-13 18:05:44,239 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 18:05:44,245 [DEBUG][       Thread-263518][   transport.py][1871] : starting thread (client mode): 0x863923e0
2025-06-13 18:05:44,245 [DEBUG][       Thread-263518][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 18:05:44,266 [DEBUG][       Thread-263518][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 18:05:44,266 [ INFO][       Thread-263518][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 18:05:44,269 [DEBUG][       Thread-263518][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 18:05:44,270 [DEBUG][       Thread-263518][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 18:05:44,270 [DEBUG][       Thread-263518][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 18:05:44,270 [DEBUG][       Thread-263518][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 18:05:44,270 [DEBUG][       Thread-263518][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 18:05:44,270 [DEBUG][       Thread-263518][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 18:05:44,270 [DEBUG][       Thread-263518][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 18:05:44,270 [DEBUG][       Thread-263518][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 18:05:44,270 [DEBUG][       Thread-263518][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 18:05:44,270 [DEBUG][       Thread-263518][   transport.py][1871] : client lang: <none>
2025-06-13 18:05:44,270 [DEBUG][       Thread-263518][   transport.py][1871] : server lang: <none>
2025-06-13 18:05:44,270 [DEBUG][       Thread-263518][   transport.py][1871] : kex follows: False
2025-06-13 18:05:44,270 [DEBUG][       Thread-263518][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 18:05:44,270 [DEBUG][       Thread-263518][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 18:05:44,270 [DEBUG][       Thread-263518][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 18:05:44,270 [DEBUG][       Thread-263518][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 18:05:44,270 [DEBUG][       Thread-263518][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 18:05:44,270 [DEBUG][       Thread-263518][   transport.py][1871] : Compression: none
2025-06-13 18:05:44,270 [DEBUG][       Thread-263518][   transport.py][1871] : === End of kex handshake ===
2025-06-13 18:05:44,286 [DEBUG][       Thread-263518][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 18:05:44,286 [DEBUG][       Thread-263518][   transport.py][1871] : Switch to new keys ...
2025-06-13 18:05:44,287 [DEBUG][       Thread-263518][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 18:05:44,287 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 18:05:44,287 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 18:05:44,288 [DEBUG][       Thread-263518][   transport.py][1871] : userauth is OK
2025-06-13 18:05:44,301 [DEBUG][Thread-263520 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 18:05:44,312 [ INFO][       Thread-263518][   transport.py][1871] : Authentication (password) successful!
2025-06-13 18:05:44,313 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 18:05:44,984 [DEBUG][       Thread-263518][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 18:05:44,984 [DEBUG][       Thread-263518][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 18:05:45,025 [DEBUG][       Thread-263518][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 18:05:45,025 [DEBUG][       Thread-263518][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 18:05:45,028 [DEBUG][       Thread-263518][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 18:05:45,040 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 18:05:45,041 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 18:05:45,042 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 18:05:45,044 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 18:05:45,049 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 18:05:45,051 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 18:05:45,051 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 18:05:45,052 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 18:05:45,052 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.670072 -999.00  +11.40  19.49     37   -2.30 1 1 1 1 1   252    0 13.51 -3.02 ----- 18.1 19.5 54.6 22.4 11.7 -29.2 11.5 -29.1 11.2 -28.3 11.6 -28.4
2025-06-13 18:05:45,052 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 18:05:45,052 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 18:05:45,052 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.670072
2025-06-13 18:05:45,053 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 18:05:45,053 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 18:05:45,053 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 18:05:45,053 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 18:05:45,054 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 18:05:45,054 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T18:05:15', tmtdew=15.6, humidity=33.34, cloud=0.0, wind=16.62, temperature=11.5, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T16:04:54.221', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 18:05:45,055 [DEBUG][       Thread-263518][   transport.py][1871] : EOF in transport thread
2025-06-13 18:05:45,137 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 18:05:45,155 [DEBUG][       Thread-263522][   transport.py][1871] : starting thread (client mode): 0x867b5b10
2025-06-13 18:05:45,155 [DEBUG][       Thread-263522][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 18:05:45,171 [DEBUG][       Thread-263522][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 18:05:45,172 [ INFO][       Thread-263522][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 18:05:45,184 [DEBUG][       Thread-263522][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 18:05:45,184 [DEBUG][       Thread-263522][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 18:05:45,185 [DEBUG][       Thread-263522][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 18:05:45,185 [DEBUG][       Thread-263522][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 18:05:45,185 [DEBUG][       Thread-263522][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 18:05:45,185 [DEBUG][       Thread-263522][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 18:05:45,185 [DEBUG][       Thread-263522][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 18:05:45,185 [DEBUG][       Thread-263522][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 18:05:45,185 [DEBUG][       Thread-263522][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 18:05:45,185 [DEBUG][       Thread-263522][   transport.py][1871] : client lang: <none>
2025-06-13 18:05:45,185 [DEBUG][       Thread-263522][   transport.py][1871] : server lang: <none>
2025-06-13 18:05:45,185 [DEBUG][       Thread-263522][   transport.py][1871] : kex follows: False
2025-06-13 18:05:45,185 [DEBUG][       Thread-263522][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 18:05:45,185 [DEBUG][       Thread-263522][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 18:05:45,185 [DEBUG][       Thread-263522][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 18:05:45,185 [DEBUG][       Thread-263522][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 18:05:45,185 [DEBUG][       Thread-263522][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 18:05:45,186 [DEBUG][       Thread-263522][   transport.py][1871] : Compression: none
2025-06-13 18:05:45,186 [DEBUG][       Thread-263522][   transport.py][1871] : === End of kex handshake ===
2025-06-13 18:05:45,240 [DEBUG][       Thread-263522][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 18:05:45,240 [DEBUG][       Thread-263522][   transport.py][1871] : Switch to new keys ...
2025-06-13 18:05:45,241 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 18:05:45,242 [DEBUG][       Thread-263522][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 18:05:45,242 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 18:05:45,296 [DEBUG][       Thread-263522][   transport.py][1871] : userauth is OK
2025-06-13 18:05:45,296 [DEBUG][       Thread-263522][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 18:05:45,296 [DEBUG][       Thread-263522][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 18:05:45,296 [DEBUG][       Thread-263522][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 18:05:45,296 [DEBUG][       Thread-263522][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 18:05:45,315 [ INFO][       Thread-263522][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 18:05:45,315 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 18:05:45,316 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 18:05:45,394 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 18:05:45,396 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 18:05:46,330 [DEBUG][       Thread-263522][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 18:05:46,331 [DEBUG][       Thread-263522][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 18:05:46,380 [DEBUG][       Thread-263522][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 18:05:46,381 [DEBUG][       Thread-263522][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 18:05:46,390 [DEBUG][       Thread-263522][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 18:05:46,399 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 18:05:46,399 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 18:05:46,408 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 18:05:46,417 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 18:05:46,418 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 18:05:46,418 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 18:05:46,426 [DEBUG][       Thread-263522][   transport.py][1871] : EOF in transport thread
2025-06-13 18:05:52,953 [DEBUG][Thread-263524 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 18:05:56,428 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 18:05:56,429 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 18:05:56,429 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 18:05:56,432 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 18:05:56,901 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 18, 5, 47), 15.59, 33.34, 0.0, 17.57, 11.46, 0, 0, 0, 2, 0, 0),)
2025-06-13 18:05:56,901 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 18:05:47
2025-06-13 18:05:56,982 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 18:05:56,986 [DEBUG][       Thread-263525][   transport.py][1871] : starting thread (client mode): 0x863694b0
2025-06-13 18:05:56,986 [DEBUG][       Thread-263525][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 18:05:57,007 [DEBUG][       Thread-263525][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 18:05:57,007 [ INFO][       Thread-263525][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 18:05:57,010 [DEBUG][       Thread-263525][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 18:05:57,010 [DEBUG][       Thread-263525][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 18:05:57,010 [DEBUG][       Thread-263525][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 18:05:57,010 [DEBUG][       Thread-263525][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 18:05:57,010 [DEBUG][       Thread-263525][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 18:05:57,010 [DEBUG][       Thread-263525][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 18:05:57,010 [DEBUG][       Thread-263525][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 18:05:57,010 [DEBUG][       Thread-263525][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 18:05:57,010 [DEBUG][       Thread-263525][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 18:05:57,010 [DEBUG][       Thread-263525][   transport.py][1871] : client lang: <none>
2025-06-13 18:05:57,010 [DEBUG][       Thread-263525][   transport.py][1871] : server lang: <none>
2025-06-13 18:05:57,010 [DEBUG][       Thread-263525][   transport.py][1871] : kex follows: False
2025-06-13 18:05:57,010 [DEBUG][       Thread-263525][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 18:05:57,010 [DEBUG][       Thread-263525][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 18:05:57,010 [DEBUG][       Thread-263525][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 18:05:57,010 [DEBUG][       Thread-263525][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 18:05:57,011 [DEBUG][       Thread-263525][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 18:05:57,011 [DEBUG][       Thread-263525][   transport.py][1871] : Compression: none
2025-06-13 18:05:57,011 [DEBUG][       Thread-263525][   transport.py][1871] : === End of kex handshake ===
2025-06-13 18:05:57,032 [DEBUG][       Thread-263525][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 18:05:57,032 [DEBUG][       Thread-263525][   transport.py][1871] : Switch to new keys ...
2025-06-13 18:05:57,033 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 18:05:57,033 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 18:05:57,034 [DEBUG][       Thread-263525][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 18:05:57,034 [DEBUG][       Thread-263525][   transport.py][1871] : userauth is OK
2025-06-13 18:05:57,059 [ INFO][       Thread-263525][   transport.py][1871] : Authentication (password) successful!
2025-06-13 18:05:57,059 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 18:05:57,680 [DEBUG][       Thread-263525][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 18:05:57,681 [DEBUG][       Thread-263525][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 18:05:57,725 [DEBUG][       Thread-263525][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 18:05:57,725 [DEBUG][       Thread-263525][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 18:05:57,728 [DEBUG][       Thread-263525][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 18:05:57,740 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 18:05:57,740 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 18:05:57,742 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 18:05:57,744 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 18:05:57,749 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 18:05:57,751 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 18:05:57,751 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 18:05:57,752 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 18:05:57,752 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.670419 -999.00  +11.40  17.79     38   -2.30 1 1 1 1 1   235    0 13.55 -4.77 ----- 22.8 17.8 51.0 23.0 11.6 -29.3 11.5 -29.3 11.2 -28.5 11.5 -28.4
2025-06-13 18:05:57,752 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 18:05:57,752 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 18:05:57,752 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.670419
2025-06-13 18:05:57,753 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 18:05:57,753 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 18:05:57,753 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 18:05:57,753 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 18:05:57,754 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 18:05:57,754 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T18:05:47', tmtdew=15.59, humidity=33.34, cloud=0.0, wind=17.57, temperature=11.46, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T16:05:24.202', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 18:05:57,755 [DEBUG][       Thread-263525][   transport.py][1871] : EOF in transport thread
2025-06-13 18:05:57,837 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 18:05:57,847 [DEBUG][       Thread-263528][   transport.py][1871] : starting thread (client mode): 0x86893fd0
2025-06-13 18:05:57,847 [DEBUG][       Thread-263528][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 18:05:57,862 [DEBUG][       Thread-263528][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 18:05:57,862 [ INFO][       Thread-263528][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 18:05:57,870 [DEBUG][       Thread-263528][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 18:05:57,870 [DEBUG][       Thread-263528][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 18:05:57,870 [DEBUG][       Thread-263528][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 18:05:57,870 [DEBUG][       Thread-263528][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 18:05:57,870 [DEBUG][       Thread-263528][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 18:05:57,870 [DEBUG][       Thread-263528][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 18:05:57,870 [DEBUG][       Thread-263528][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 18:05:57,870 [DEBUG][       Thread-263528][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 18:05:57,870 [DEBUG][       Thread-263528][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 18:05:57,870 [DEBUG][       Thread-263528][   transport.py][1871] : client lang: <none>
2025-06-13 18:05:57,870 [DEBUG][       Thread-263528][   transport.py][1871] : server lang: <none>
2025-06-13 18:05:57,870 [DEBUG][       Thread-263528][   transport.py][1871] : kex follows: False
2025-06-13 18:05:57,870 [DEBUG][       Thread-263528][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 18:05:57,871 [DEBUG][       Thread-263528][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 18:05:57,871 [DEBUG][       Thread-263528][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 18:05:57,871 [DEBUG][       Thread-263528][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 18:05:57,871 [DEBUG][       Thread-263528][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 18:05:57,871 [DEBUG][       Thread-263528][   transport.py][1871] : Compression: none
2025-06-13 18:05:57,871 [DEBUG][       Thread-263528][   transport.py][1871] : === End of kex handshake ===
2025-06-13 18:05:57,928 [DEBUG][       Thread-263528][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 18:05:57,928 [DEBUG][       Thread-263528][   transport.py][1871] : Switch to new keys ...
2025-06-13 18:05:57,929 [DEBUG][       Thread-263528][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 18:05:57,929 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 18:05:57,930 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 18:05:57,984 [DEBUG][       Thread-263528][   transport.py][1871] : userauth is OK
2025-06-13 18:05:57,984 [DEBUG][       Thread-263528][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 18:05:57,984 [DEBUG][       Thread-263528][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 18:05:57,984 [DEBUG][       Thread-263528][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 18:05:57,985 [DEBUG][       Thread-263528][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 18:05:58,008 [ INFO][       Thread-263528][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 18:05:58,009 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 18:05:58,009 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 18:05:58,993 [DEBUG][       Thread-263528][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 18:05:58,993 [DEBUG][       Thread-263528][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 18:05:59,043 [DEBUG][       Thread-263528][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 18:05:59,043 [DEBUG][       Thread-263528][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 18:05:59,051 [DEBUG][       Thread-263528][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 18:05:59,060 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 18:05:59,060 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 18:05:59,068 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 18:05:59,075 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 18:05:59,076 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 18:05:59,076 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 18:05:59,083 [DEBUG][       Thread-263528][   transport.py][1871] : EOF in transport thread
2025-06-13 18:06:01,971 [DEBUG][Thread-263530 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 18:06:09,086 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 18:06:09,086 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 18:06:09,086 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 18:06:09,089 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 18:06:09,543 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 18, 5, 47), 15.59, 33.34, 0.0, 17.57, 11.46, 0, 0, 0, 2, 0, 0),)
2025-06-13 18:06:09,543 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 18:05:47
2025-06-13 18:06:09,625 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 18:06:09,631 [DEBUG][       Thread-263531][   transport.py][1871] : starting thread (client mode): 0x8636ab90
2025-06-13 18:06:09,631 [DEBUG][       Thread-263531][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 18:06:09,655 [DEBUG][       Thread-263531][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 18:06:09,655 [ INFO][       Thread-263531][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 18:06:09,658 [DEBUG][       Thread-263531][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 18:06:09,659 [DEBUG][       Thread-263531][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 18:06:09,659 [DEBUG][       Thread-263531][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 18:06:09,659 [DEBUG][       Thread-263531][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 18:06:09,659 [DEBUG][       Thread-263531][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 18:06:09,659 [DEBUG][       Thread-263531][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 18:06:09,659 [DEBUG][       Thread-263531][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 18:06:09,659 [DEBUG][       Thread-263531][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 18:06:09,659 [DEBUG][       Thread-263531][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 18:06:09,659 [DEBUG][       Thread-263531][   transport.py][1871] : client lang: <none>
2025-06-13 18:06:09,659 [DEBUG][       Thread-263531][   transport.py][1871] : server lang: <none>
2025-06-13 18:06:09,659 [DEBUG][       Thread-263531][   transport.py][1871] : kex follows: False
2025-06-13 18:06:09,659 [DEBUG][       Thread-263531][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 18:06:09,659 [DEBUG][       Thread-263531][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 18:06:09,659 [DEBUG][       Thread-263531][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 18:06:09,659 [DEBUG][       Thread-263531][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 18:06:09,659 [DEBUG][       Thread-263531][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 18:06:09,659 [DEBUG][       Thread-263531][   transport.py][1871] : Compression: none
2025-06-13 18:06:09,659 [DEBUG][       Thread-263531][   transport.py][1871] : === End of kex handshake ===
2025-06-13 18:06:09,676 [DEBUG][       Thread-263531][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 18:06:09,677 [DEBUG][       Thread-263531][   transport.py][1871] : Switch to new keys ...
2025-06-13 18:06:09,677 [DEBUG][       Thread-263531][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 18:06:09,678 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 18:06:09,678 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 18:06:09,679 [DEBUG][       Thread-263531][   transport.py][1871] : userauth is OK
2025-06-13 18:06:09,704 [ INFO][       Thread-263531][   transport.py][1871] : Authentication (password) successful!
2025-06-13 18:06:09,705 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 18:06:10,394 [DEBUG][       Thread-263531][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 18:06:10,395 [DEBUG][       Thread-263531][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 18:06:10,437 [DEBUG][       Thread-263531][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 18:06:10,437 [DEBUG][       Thread-263531][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 18:06:10,441 [DEBUG][       Thread-263531][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 18:06:10,454 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 18:06:10,455 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 18:06:10,457 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 18:06:10,459 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 18:06:10,465 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 18:06:10,467 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 18:06:10,467 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 18:06:10,468 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 18:06:10,468 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.670419 -999.00  +11.40  17.79     38   -2.30 1 1 1 1 1   235    0 13.55 -4.77 ----- 22.8 17.8 51.0 23.0 11.6 -29.3 11.5 -29.3 11.2 -28.5 11.5 -28.4
2025-06-13 18:06:10,468 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 18:06:10,468 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 18:06:10,468 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.670419
2025-06-13 18:06:10,469 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 18:06:10,469 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 18:06:10,469 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 18:06:10,470 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 18:06:10,470 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 18:06:10,470 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T18:05:47', tmtdew=15.59, humidity=33.34, cloud=0.0, wind=17.57, temperature=11.46, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T16:05:24.202', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 18:06:10,471 [DEBUG][       Thread-263531][   transport.py][1871] : EOF in transport thread
2025-06-13 18:06:10,553 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 18:06:10,565 [DEBUG][       Thread-263534][   transport.py][1871] : starting thread (client mode): 0x86893a60
2025-06-13 18:06:10,565 [DEBUG][       Thread-263534][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 18:06:10,583 [DEBUG][       Thread-263534][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 18:06:10,583 [ INFO][       Thread-263534][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 18:06:10,595 [DEBUG][       Thread-263534][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 18:06:10,595 [DEBUG][       Thread-263534][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 18:06:10,595 [DEBUG][       Thread-263534][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 18:06:10,596 [DEBUG][       Thread-263534][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 18:06:10,596 [DEBUG][       Thread-263534][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 18:06:10,596 [DEBUG][       Thread-263534][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 18:06:10,596 [DEBUG][       Thread-263534][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 18:06:10,596 [DEBUG][       Thread-263534][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 18:06:10,596 [DEBUG][       Thread-263534][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 18:06:10,596 [DEBUG][       Thread-263534][   transport.py][1871] : client lang: <none>
2025-06-13 18:06:10,596 [DEBUG][       Thread-263534][   transport.py][1871] : server lang: <none>
2025-06-13 18:06:10,596 [DEBUG][       Thread-263534][   transport.py][1871] : kex follows: False
2025-06-13 18:06:10,597 [DEBUG][       Thread-263534][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 18:06:10,597 [DEBUG][       Thread-263534][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 18:06:10,597 [DEBUG][       Thread-263534][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 18:06:10,597 [DEBUG][       Thread-263534][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 18:06:10,597 [DEBUG][       Thread-263534][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 18:06:10,597 [DEBUG][       Thread-263534][   transport.py][1871] : Compression: none
2025-06-13 18:06:10,597 [DEBUG][       Thread-263534][   transport.py][1871] : === End of kex handshake ===
2025-06-13 18:06:10,656 [DEBUG][       Thread-263534][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 18:06:10,657 [DEBUG][       Thread-263534][   transport.py][1871] : Switch to new keys ...
2025-06-13 18:06:10,658 [DEBUG][       Thread-263534][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 18:06:10,658 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 18:06:10,659 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 18:06:10,723 [DEBUG][       Thread-263534][   transport.py][1871] : userauth is OK
2025-06-13 18:06:10,724 [DEBUG][       Thread-263534][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 18:06:10,724 [DEBUG][       Thread-263534][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 18:06:10,724 [DEBUG][       Thread-263534][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 18:06:10,724 [DEBUG][       Thread-263534][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 18:06:10,747 [ INFO][       Thread-263534][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 18:06:10,747 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 18:06:10,748 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 18:06:10,999 [DEBUG][Thread-263536 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 18:06:11,781 [DEBUG][       Thread-263534][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 18:06:11,781 [DEBUG][       Thread-263534][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 18:06:11,836 [DEBUG][       Thread-263534][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 18:06:11,837 [DEBUG][       Thread-263534][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 18:06:11,846 [DEBUG][       Thread-263534][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 18:06:11,856 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 18:06:11,856 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 18:06:11,866 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 18:06:11,881 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 18:06:11,882 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 18:06:11,882 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 18:06:11,894 [DEBUG][       Thread-263534][   transport.py][1871] : EOF in transport thread
2025-06-13 18:06:20,018 [DEBUG][Thread-263537 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 18:06:20,657 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 18:06:20,658 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 18:06:21,893 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 18:06:21,893 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 18:06:21,893 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 18:06:21,896 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 18:06:22,348 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 18, 6, 19), 15.51, 33.38, 0.0, 17.57, 11.41, 0, 0, 0, 2, 0, 0),)
2025-06-13 18:06:22,348 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 18:06:19
2025-06-13 18:06:22,430 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 18:06:22,433 [DEBUG][       Thread-263538][   transport.py][1871] : starting thread (client mode): 0x8636a770
2025-06-13 18:06:22,433 [DEBUG][       Thread-263538][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 18:06:22,453 [DEBUG][       Thread-263538][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 18:06:22,453 [ INFO][       Thread-263538][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 18:06:22,457 [DEBUG][       Thread-263538][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 18:06:22,457 [DEBUG][       Thread-263538][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 18:06:22,457 [DEBUG][       Thread-263538][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 18:06:22,457 [DEBUG][       Thread-263538][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 18:06:22,457 [DEBUG][       Thread-263538][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 18:06:22,457 [DEBUG][       Thread-263538][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 18:06:22,457 [DEBUG][       Thread-263538][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 18:06:22,457 [DEBUG][       Thread-263538][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 18:06:22,457 [DEBUG][       Thread-263538][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 18:06:22,457 [DEBUG][       Thread-263538][   transport.py][1871] : client lang: <none>
2025-06-13 18:06:22,457 [DEBUG][       Thread-263538][   transport.py][1871] : server lang: <none>
2025-06-13 18:06:22,457 [DEBUG][       Thread-263538][   transport.py][1871] : kex follows: False
2025-06-13 18:06:22,457 [DEBUG][       Thread-263538][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 18:06:22,457 [DEBUG][       Thread-263538][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 18:06:22,457 [DEBUG][       Thread-263538][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 18:06:22,457 [DEBUG][       Thread-263538][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 18:06:22,458 [DEBUG][       Thread-263538][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 18:06:22,458 [DEBUG][       Thread-263538][   transport.py][1871] : Compression: none
2025-06-13 18:06:22,458 [DEBUG][       Thread-263538][   transport.py][1871] : === End of kex handshake ===
2025-06-13 18:06:22,473 [DEBUG][       Thread-263538][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 18:06:22,473 [DEBUG][       Thread-263538][   transport.py][1871] : Switch to new keys ...
2025-06-13 18:06:22,474 [DEBUG][       Thread-263538][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 18:06:22,474 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 18:06:22,474 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 18:06:22,475 [DEBUG][       Thread-263538][   transport.py][1871] : userauth is OK
2025-06-13 18:06:22,488 [ INFO][       Thread-263538][   transport.py][1871] : Authentication (password) successful!
2025-06-13 18:06:22,489 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 18:06:23,115 [DEBUG][       Thread-263538][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 18:06:23,115 [DEBUG][       Thread-263538][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 18:06:23,157 [DEBUG][       Thread-263538][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 18:06:23,157 [DEBUG][       Thread-263538][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 18:06:23,161 [DEBUG][       Thread-263538][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 18:06:23,172 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 18:06:23,172 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 18:06:23,174 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 18:06:23,176 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 18:06:23,182 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 18:06:23,184 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 18:06:23,184 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 18:06:23,185 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 18:06:23,185 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.670419 -999.00  +11.40  17.79     38   -2.30 1 1 1 1 1   235    0 13.55 -4.77 ----- 22.8 17.8 51.0 23.0 11.6 -29.3 11.5 -29.3 11.2 -28.5 11.5 -28.4
2025-06-13 18:06:23,185 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 18:06:23,185 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 18:06:23,185 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.670419
2025-06-13 18:06:23,186 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 18:06:23,187 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 18:06:23,187 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 18:06:23,187 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 18:06:23,187 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 18:06:23,187 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T18:06:19', tmtdew=15.51, humidity=33.38, cloud=0.0, wind=17.57, temperature=11.41, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T16:05:24.202', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 18:06:23,187 [DEBUG][       Thread-263538][   transport.py][1871] : EOF in transport thread
2025-06-13 18:06:23,270 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 18:06:23,280 [DEBUG][       Thread-263541][   transport.py][1871] : starting thread (client mode): 0x86893fd0
2025-06-13 18:06:23,280 [DEBUG][       Thread-263541][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 18:06:23,295 [DEBUG][       Thread-263541][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 18:06:23,295 [ INFO][       Thread-263541][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 18:06:23,303 [DEBUG][       Thread-263541][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 18:06:23,303 [DEBUG][       Thread-263541][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 18:06:23,303 [DEBUG][       Thread-263541][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 18:06:23,303 [DEBUG][       Thread-263541][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 18:06:23,303 [DEBUG][       Thread-263541][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 18:06:23,303 [DEBUG][       Thread-263541][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 18:06:23,303 [DEBUG][       Thread-263541][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 18:06:23,303 [DEBUG][       Thread-263541][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 18:06:23,303 [DEBUG][       Thread-263541][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 18:06:23,303 [DEBUG][       Thread-263541][   transport.py][1871] : client lang: <none>
2025-06-13 18:06:23,303 [DEBUG][       Thread-263541][   transport.py][1871] : server lang: <none>
2025-06-13 18:06:23,303 [DEBUG][       Thread-263541][   transport.py][1871] : kex follows: False
2025-06-13 18:06:23,303 [DEBUG][       Thread-263541][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 18:06:23,303 [DEBUG][       Thread-263541][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 18:06:23,304 [DEBUG][       Thread-263541][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 18:06:23,304 [DEBUG][       Thread-263541][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 18:06:23,304 [DEBUG][       Thread-263541][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 18:06:23,304 [DEBUG][       Thread-263541][   transport.py][1871] : Compression: none
2025-06-13 18:06:23,304 [DEBUG][       Thread-263541][   transport.py][1871] : === End of kex handshake ===
2025-06-13 18:06:23,359 [DEBUG][       Thread-263541][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 18:06:23,360 [DEBUG][       Thread-263541][   transport.py][1871] : Switch to new keys ...
2025-06-13 18:06:23,361 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 18:06:23,361 [DEBUG][       Thread-263541][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 18:06:23,362 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 18:06:23,416 [DEBUG][       Thread-263541][   transport.py][1871] : userauth is OK
2025-06-13 18:06:23,416 [DEBUG][       Thread-263541][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 18:06:23,416 [DEBUG][       Thread-263541][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 18:06:23,416 [DEBUG][       Thread-263541][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 18:06:23,416 [DEBUG][       Thread-263541][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 18:06:23,435 [ INFO][       Thread-263541][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 18:06:23,436 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 18:06:23,436 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 18:06:24,464 [DEBUG][       Thread-263541][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 18:06:24,464 [DEBUG][       Thread-263541][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 18:06:24,512 [DEBUG][       Thread-263541][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 18:06:24,512 [DEBUG][       Thread-263541][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 18:06:24,522 [DEBUG][       Thread-263541][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 18:06:24,534 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 18:06:24,535 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 18:06:24,544 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 18:06:24,553 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 18:06:24,553 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 18:06:24,554 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 18:06:24,562 [DEBUG][       Thread-263541][   transport.py][1871] : EOF in transport thread
2025-06-13 18:06:28,776 [DEBUG][Thread-263543 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 18:06:29,037 [DEBUG][Thread-263544 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 18:06:34,564 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 18:06:34,565 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 18:06:34,565 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 18:06:34,568 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 18:06:35,018 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 18, 6, 19), 15.51, 33.38, 0.0, 17.57, 11.41, 0, 0, 0, 2, 0, 0),)
2025-06-13 18:06:35,018 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 18:06:19
2025-06-13 18:06:35,099 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 18:06:35,105 [DEBUG][       Thread-263545][   transport.py][1871] : starting thread (client mode): 0x8636a710
2025-06-13 18:06:35,105 [DEBUG][       Thread-263545][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 18:06:35,126 [DEBUG][       Thread-263545][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 18:06:35,126 [ INFO][       Thread-263545][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 18:06:35,129 [DEBUG][       Thread-263545][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 18:06:35,129 [DEBUG][       Thread-263545][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 18:06:35,129 [DEBUG][       Thread-263545][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 18:06:35,129 [DEBUG][       Thread-263545][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 18:06:35,129 [DEBUG][       Thread-263545][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 18:06:35,129 [DEBUG][       Thread-263545][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 18:06:35,130 [DEBUG][       Thread-263545][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 18:06:35,130 [DEBUG][       Thread-263545][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 18:06:35,130 [DEBUG][       Thread-263545][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 18:06:35,130 [DEBUG][       Thread-263545][   transport.py][1871] : client lang: <none>
2025-06-13 18:06:35,130 [DEBUG][       Thread-263545][   transport.py][1871] : server lang: <none>
2025-06-13 18:06:35,130 [DEBUG][       Thread-263545][   transport.py][1871] : kex follows: False
2025-06-13 18:06:35,130 [DEBUG][       Thread-263545][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 18:06:35,130 [DEBUG][       Thread-263545][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 18:06:35,130 [DEBUG][       Thread-263545][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 18:06:35,130 [DEBUG][       Thread-263545][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 18:06:35,130 [DEBUG][       Thread-263545][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 18:06:35,130 [DEBUG][       Thread-263545][   transport.py][1871] : Compression: none
2025-06-13 18:06:35,130 [DEBUG][       Thread-263545][   transport.py][1871] : === End of kex handshake ===
2025-06-13 18:06:35,147 [DEBUG][       Thread-263545][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 18:06:35,147 [DEBUG][       Thread-263545][   transport.py][1871] : Switch to new keys ...
2025-06-13 18:06:35,148 [DEBUG][       Thread-263545][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 18:06:35,148 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 18:06:35,148 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 18:06:35,149 [DEBUG][       Thread-263545][   transport.py][1871] : userauth is OK
2025-06-13 18:06:35,162 [ INFO][       Thread-263545][   transport.py][1871] : Authentication (password) successful!
2025-06-13 18:06:35,162 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 18:06:35,788 [DEBUG][       Thread-263545][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 18:06:35,788 [DEBUG][       Thread-263545][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 18:06:35,829 [DEBUG][       Thread-263545][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 18:06:35,829 [DEBUG][       Thread-263545][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 18:06:35,832 [DEBUG][       Thread-263545][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 18:06:35,844 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 18:06:35,845 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 18:06:35,847 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 18:06:35,848 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 18:06:35,854 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 18:06:35,856 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 18:06:35,856 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 18:06:35,857 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 18:06:35,857 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.670767 -999.00  +11.40  18.35     38   -2.30 1 1 1 1 1   218    0 13.90 -6.21 ----- 18.5 18.4 57.6 20.6 11.7 -29.3 11.5 -29.2 11.3 -28.4 11.6 -28.5
2025-06-13 18:06:35,857 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 18:06:35,857 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 18:06:35,857 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.670767
2025-06-13 18:06:35,858 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 18:06:35,858 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 18:06:35,858 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 18:06:35,858 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 18:06:35,858 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 18:06:35,859 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T18:06:19', tmtdew=15.51, humidity=33.38, cloud=0.0, wind=17.57, temperature=11.41, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T16:05:54.269', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 18:06:35,860 [DEBUG][       Thread-263545][   transport.py][1871] : EOF in transport thread
2025-06-13 18:06:35,936 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 18:06:35,950 [DEBUG][       Thread-263548][   transport.py][1871] : starting thread (client mode): 0xc54b6c20
2025-06-13 18:06:35,950 [DEBUG][       Thread-263548][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 18:06:35,964 [DEBUG][       Thread-263548][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 18:06:35,964 [ INFO][       Thread-263548][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 18:06:35,972 [DEBUG][       Thread-263548][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 18:06:35,972 [DEBUG][       Thread-263548][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 18:06:35,972 [DEBUG][       Thread-263548][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 18:06:35,972 [DEBUG][       Thread-263548][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 18:06:35,972 [DEBUG][       Thread-263548][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 18:06:35,972 [DEBUG][       Thread-263548][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 18:06:35,972 [DEBUG][       Thread-263548][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 18:06:35,972 [DEBUG][       Thread-263548][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 18:06:35,972 [DEBUG][       Thread-263548][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 18:06:35,972 [DEBUG][       Thread-263548][   transport.py][1871] : client lang: <none>
2025-06-13 18:06:35,972 [DEBUG][       Thread-263548][   transport.py][1871] : server lang: <none>
2025-06-13 18:06:35,972 [DEBUG][       Thread-263548][   transport.py][1871] : kex follows: False
2025-06-13 18:06:35,973 [DEBUG][       Thread-263548][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 18:06:35,973 [DEBUG][       Thread-263548][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 18:06:35,973 [DEBUG][       Thread-263548][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 18:06:35,973 [DEBUG][       Thread-263548][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 18:06:35,973 [DEBUG][       Thread-263548][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 18:06:35,973 [DEBUG][       Thread-263548][   transport.py][1871] : Compression: none
2025-06-13 18:06:35,973 [DEBUG][       Thread-263548][   transport.py][1871] : === End of kex handshake ===
2025-06-13 18:06:36,032 [DEBUG][       Thread-263548][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 18:06:36,033 [DEBUG][       Thread-263548][   transport.py][1871] : Switch to new keys ...
2025-06-13 18:06:36,033 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 18:06:36,034 [DEBUG][       Thread-263548][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 18:06:36,035 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 18:06:36,096 [DEBUG][       Thread-263548][   transport.py][1871] : userauth is OK
2025-06-13 18:06:36,096 [DEBUG][       Thread-263548][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 18:06:36,096 [DEBUG][       Thread-263548][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 18:06:36,096 [DEBUG][       Thread-263548][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 18:06:36,096 [DEBUG][       Thread-263548][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 18:06:36,114 [ INFO][       Thread-263548][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 18:06:36,115 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 18:06:36,115 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 18:06:37,109 [DEBUG][       Thread-263548][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 18:06:37,109 [DEBUG][       Thread-263548][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 18:06:37,160 [DEBUG][       Thread-263548][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 18:06:37,160 [DEBUG][       Thread-263548][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 18:06:37,170 [DEBUG][       Thread-263548][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 18:06:37,178 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 18:06:37,178 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 18:06:37,187 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 18:06:37,195 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 18:06:37,195 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 18:06:37,195 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 18:06:37,203 [DEBUG][       Thread-263548][   transport.py][1871] : EOF in transport thread
2025-06-13 18:06:38,070 [DEBUG][Thread-263550 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 18:06:45,514 [DEBUG][Thread-263551 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 18:06:46,598 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 18:06:46,599 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 18:06:47,087 [DEBUG][Thread-263552 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 18:06:47,204 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 18:06:47,204 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 18:06:47,204 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 18:06:47,205 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 18:06:47,651 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 18, 6, 19), 15.51, 33.38, 0.0, 17.57, 11.41, 0, 0, 0, 2, 0, 0),)
2025-06-13 18:06:47,651 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 18:06:19
2025-06-13 18:06:47,733 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 18:06:47,739 [DEBUG][       Thread-263553][   transport.py][1871] : starting thread (client mode): 0x867fde40
2025-06-13 18:06:47,739 [DEBUG][       Thread-263553][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 18:06:47,759 [DEBUG][       Thread-263553][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 18:06:47,759 [ INFO][       Thread-263553][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 18:06:47,763 [DEBUG][       Thread-263553][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 18:06:47,763 [DEBUG][       Thread-263553][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 18:06:47,763 [DEBUG][       Thread-263553][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 18:06:47,763 [DEBUG][       Thread-263553][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 18:06:47,763 [DEBUG][       Thread-263553][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 18:06:47,763 [DEBUG][       Thread-263553][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 18:06:47,763 [DEBUG][       Thread-263553][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 18:06:47,763 [DEBUG][       Thread-263553][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 18:06:47,763 [DEBUG][       Thread-263553][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 18:06:47,763 [DEBUG][       Thread-263553][   transport.py][1871] : client lang: <none>
2025-06-13 18:06:47,763 [DEBUG][       Thread-263553][   transport.py][1871] : server lang: <none>
2025-06-13 18:06:47,763 [DEBUG][       Thread-263553][   transport.py][1871] : kex follows: False
2025-06-13 18:06:47,763 [DEBUG][       Thread-263553][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 18:06:47,763 [DEBUG][       Thread-263553][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 18:06:47,763 [DEBUG][       Thread-263553][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 18:06:47,763 [DEBUG][       Thread-263553][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 18:06:47,763 [DEBUG][       Thread-263553][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 18:06:47,763 [DEBUG][       Thread-263553][   transport.py][1871] : Compression: none
2025-06-13 18:06:47,763 [DEBUG][       Thread-263553][   transport.py][1871] : === End of kex handshake ===
2025-06-13 18:06:47,780 [DEBUG][       Thread-263553][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 18:06:47,781 [DEBUG][       Thread-263553][   transport.py][1871] : Switch to new keys ...
2025-06-13 18:06:47,781 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 18:06:47,781 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 18:06:47,782 [DEBUG][       Thread-263553][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 18:06:47,782 [DEBUG][       Thread-263553][   transport.py][1871] : userauth is OK
2025-06-13 18:06:47,795 [ INFO][       Thread-263553][   transport.py][1871] : Authentication (password) successful!
2025-06-13 18:06:47,795 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 18:06:48,429 [DEBUG][       Thread-263553][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 18:06:48,429 [DEBUG][       Thread-263553][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 18:06:48,473 [DEBUG][       Thread-263553][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 18:06:48,473 [DEBUG][       Thread-263553][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 18:06:48,477 [DEBUG][       Thread-263553][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 18:06:48,494 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 18:06:48,494 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 18:06:48,496 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 18:06:48,498 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 18:06:48,504 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 18:06:48,506 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 18:06:48,507 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 18:06:48,507 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 18:06:48,508 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.670767 -999.00  +11.40  18.35     38   -2.30 1 1 1 1 1   218    0 13.90 -6.21 ----- 18.5 18.4 57.6 20.6 11.7 -29.3 11.5 -29.2 11.3 -28.4 11.6 -28.5
2025-06-13 18:06:48,508 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 18:06:48,508 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 18:06:48,508 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.670767
2025-06-13 18:06:48,508 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 18:06:48,509 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 18:06:48,509 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 18:06:48,509 [DEBUG][       Thread-263553][   transport.py][1871] : EOF in transport thread
2025-06-13 18:06:48,509 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 18:06:48,510 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 18:06:48,510 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T18:06:19', tmtdew=15.51, humidity=33.38, cloud=0.0, wind=17.57, temperature=11.41, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T16:05:54.269', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 18:06:48,593 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 18:06:48,605 [DEBUG][       Thread-263556][   transport.py][1871] : starting thread (client mode): 0x86390f40
2025-06-13 18:06:48,605 [DEBUG][       Thread-263556][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 18:06:48,620 [DEBUG][       Thread-263556][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 18:06:48,620 [ INFO][       Thread-263556][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 18:06:48,628 [DEBUG][       Thread-263556][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 18:06:48,628 [DEBUG][       Thread-263556][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 18:06:48,628 [DEBUG][       Thread-263556][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 18:06:48,628 [DEBUG][       Thread-263556][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 18:06:48,628 [DEBUG][       Thread-263556][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 18:06:48,628 [DEBUG][       Thread-263556][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 18:06:48,628 [DEBUG][       Thread-263556][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 18:06:48,628 [DEBUG][       Thread-263556][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 18:06:48,628 [DEBUG][       Thread-263556][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 18:06:48,628 [DEBUG][       Thread-263556][   transport.py][1871] : client lang: <none>
2025-06-13 18:06:48,628 [DEBUG][       Thread-263556][   transport.py][1871] : server lang: <none>
2025-06-13 18:06:48,628 [DEBUG][       Thread-263556][   transport.py][1871] : kex follows: False
2025-06-13 18:06:48,629 [DEBUG][       Thread-263556][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 18:06:48,629 [DEBUG][       Thread-263556][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 18:06:48,629 [DEBUG][       Thread-263556][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 18:06:48,629 [DEBUG][       Thread-263556][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 18:06:48,629 [DEBUG][       Thread-263556][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 18:06:48,629 [DEBUG][       Thread-263556][   transport.py][1871] : Compression: none
2025-06-13 18:06:48,629 [DEBUG][       Thread-263556][   transport.py][1871] : === End of kex handshake ===
2025-06-13 18:06:48,692 [DEBUG][       Thread-263556][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 18:06:48,693 [DEBUG][       Thread-263556][   transport.py][1871] : Switch to new keys ...
2025-06-13 18:06:48,693 [DEBUG][       Thread-263556][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 18:06:48,694 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 18:06:48,694 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 18:06:48,755 [DEBUG][       Thread-263556][   transport.py][1871] : userauth is OK
2025-06-13 18:06:48,756 [DEBUG][       Thread-263556][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 18:06:48,756 [DEBUG][       Thread-263556][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 18:06:48,756 [DEBUG][       Thread-263556][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 18:06:48,756 [DEBUG][       Thread-263556][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 18:06:48,774 [ INFO][       Thread-263556][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 18:06:48,775 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 18:06:48,775 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 18:06:49,799 [DEBUG][       Thread-263556][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 18:06:49,799 [DEBUG][       Thread-263556][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 18:06:49,848 [DEBUG][       Thread-263556][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 18:06:49,848 [DEBUG][       Thread-263556][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 18:06:49,858 [DEBUG][       Thread-263556][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 18:06:49,866 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 18:06:49,867 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 18:06:49,876 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 18:06:49,884 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 18:06:49,884 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 18:06:49,885 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 18:06:49,892 [DEBUG][       Thread-263556][   transport.py][1871] : EOF in transport thread
2025-06-13 18:06:56,106 [DEBUG][Thread-263558 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 18:06:59,895 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 18:06:59,895 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 18:06:59,895 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 18:06:59,898 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 18:07:00,357 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 18, 6, 51), 15.5, 33.4, 0.0, 17.56, 11.41, 0, 0, 0, 2, 0, 0),)
2025-06-13 18:07:00,357 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 18:06:51
2025-06-13 18:07:00,439 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 18:07:00,443 [DEBUG][       Thread-263559][   transport.py][1871] : starting thread (client mode): 0x867ffd90
2025-06-13 18:07:00,443 [DEBUG][       Thread-263559][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 18:07:00,459 [DEBUG][       Thread-263559][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 18:07:00,459 [ INFO][       Thread-263559][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 18:07:00,462 [DEBUG][       Thread-263559][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 18:07:00,462 [DEBUG][       Thread-263559][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 18:07:00,462 [DEBUG][       Thread-263559][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 18:07:00,462 [DEBUG][       Thread-263559][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 18:07:00,462 [DEBUG][       Thread-263559][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 18:07:00,462 [DEBUG][       Thread-263559][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 18:07:00,462 [DEBUG][       Thread-263559][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 18:07:00,462 [DEBUG][       Thread-263559][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 18:07:00,463 [DEBUG][       Thread-263559][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 18:07:00,463 [DEBUG][       Thread-263559][   transport.py][1871] : client lang: <none>
2025-06-13 18:07:00,463 [DEBUG][       Thread-263559][   transport.py][1871] : server lang: <none>
2025-06-13 18:07:00,463 [DEBUG][       Thread-263559][   transport.py][1871] : kex follows: False
2025-06-13 18:07:00,463 [DEBUG][       Thread-263559][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 18:07:00,463 [DEBUG][       Thread-263559][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 18:07:00,463 [DEBUG][       Thread-263559][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 18:07:00,463 [DEBUG][       Thread-263559][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 18:07:00,463 [DEBUG][       Thread-263559][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 18:07:00,463 [DEBUG][       Thread-263559][   transport.py][1871] : Compression: none
2025-06-13 18:07:00,463 [DEBUG][       Thread-263559][   transport.py][1871] : === End of kex handshake ===
2025-06-13 18:07:00,475 [DEBUG][       Thread-263559][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 18:07:00,476 [DEBUG][       Thread-263559][   transport.py][1871] : Switch to new keys ...
2025-06-13 18:07:00,476 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 18:07:00,476 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 18:07:00,477 [DEBUG][       Thread-263559][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 18:07:00,477 [DEBUG][       Thread-263559][   transport.py][1871] : userauth is OK
2025-06-13 18:07:00,502 [ INFO][       Thread-263559][   transport.py][1871] : Authentication (password) successful!
2025-06-13 18:07:00,502 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 18:07:01,082 [DEBUG][       Thread-263559][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 18:07:01,082 [DEBUG][       Thread-263559][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 18:07:01,124 [DEBUG][       Thread-263559][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 18:07:01,125 [DEBUG][       Thread-263559][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 18:07:01,126 [DEBUG][       Thread-263559][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 18:07:01,132 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 18:07:01,134 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 18:07:01,135 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 18:07:01,136 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 18:07:01,140 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 18:07:01,141 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 18:07:01,142 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 18:07:01,142 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 18:07:01,142 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.671461 -999.00  +11.40  19.40     38   -2.20 1 1 1 1 1   188    0 13.70 -9.07 ----- 18.9 19.4 56.8 21.7 11.6 -29.3 11.5 -29.3 11.2 -28.3 11.6 -28.3
2025-06-13 18:07:01,142 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 18:07:01,143 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 18:07:01,143 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.671461
2025-06-13 18:07:01,143 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 18:07:01,143 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 18:07:01,144 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 18:07:01,144 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 18:07:01,144 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 18:07:01,144 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T18:06:51', tmtdew=15.5, humidity=33.4, cloud=0.0, wind=17.56, temperature=11.41, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T16:06:54.230', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 18:07:01,145 [DEBUG][       Thread-263559][   transport.py][1871] : EOF in transport thread
2025-06-13 18:07:01,227 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 18:07:01,239 [DEBUG][       Thread-263562][   transport.py][1871] : starting thread (client mode): 0x86353a30
2025-06-13 18:07:01,239 [DEBUG][       Thread-263562][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 18:07:01,258 [DEBUG][       Thread-263562][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 18:07:01,258 [ INFO][       Thread-263562][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 18:07:01,270 [DEBUG][       Thread-263562][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 18:07:01,270 [DEBUG][       Thread-263562][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 18:07:01,270 [DEBUG][       Thread-263562][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 18:07:01,270 [DEBUG][       Thread-263562][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 18:07:01,270 [DEBUG][       Thread-263562][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 18:07:01,270 [DEBUG][       Thread-263562][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 18:07:01,271 [DEBUG][       Thread-263562][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 18:07:01,271 [DEBUG][       Thread-263562][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 18:07:01,271 [DEBUG][       Thread-263562][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 18:07:01,271 [DEBUG][       Thread-263562][   transport.py][1871] : client lang: <none>
2025-06-13 18:07:01,271 [DEBUG][       Thread-263562][   transport.py][1871] : server lang: <none>
2025-06-13 18:07:01,271 [DEBUG][       Thread-263562][   transport.py][1871] : kex follows: False
2025-06-13 18:07:01,271 [DEBUG][       Thread-263562][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 18:07:01,271 [DEBUG][       Thread-263562][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 18:07:01,271 [DEBUG][       Thread-263562][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 18:07:01,271 [DEBUG][       Thread-263562][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 18:07:01,271 [DEBUG][       Thread-263562][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 18:07:01,271 [DEBUG][       Thread-263562][   transport.py][1871] : Compression: none
2025-06-13 18:07:01,271 [DEBUG][       Thread-263562][   transport.py][1871] : === End of kex handshake ===
2025-06-13 18:07:01,326 [DEBUG][       Thread-263562][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 18:07:01,327 [DEBUG][       Thread-263562][   transport.py][1871] : Switch to new keys ...
2025-06-13 18:07:01,327 [DEBUG][       Thread-263562][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 18:07:01,327 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 18:07:01,328 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 18:07:01,383 [DEBUG][       Thread-263562][   transport.py][1871] : userauth is OK
2025-06-13 18:07:01,383 [DEBUG][       Thread-263562][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 18:07:01,383 [DEBUG][       Thread-263562][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 18:07:01,383 [DEBUG][       Thread-263562][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 18:07:01,383 [DEBUG][       Thread-263562][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 18:07:01,407 [ INFO][       Thread-263562][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 18:07:01,407 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 18:07:01,407 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 18:07:02,420 [DEBUG][       Thread-263562][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 18:07:02,420 [DEBUG][       Thread-263562][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 18:07:02,468 [DEBUG][       Thread-263562][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 18:07:02,468 [DEBUG][       Thread-263562][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 18:07:02,478 [DEBUG][       Thread-263562][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 18:07:02,487 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 18:07:02,487 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 18:07:02,496 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 18:07:02,507 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 18:07:02,507 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 18:07:02,508 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 18:07:02,515 [DEBUG][       Thread-263562][   transport.py][1871] : EOF in transport thread
2025-06-13 18:07:05,126 [DEBUG][Thread-263564 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 18:07:12,518 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 18:07:12,518 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 18:07:12,518 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 18:07:12,519 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 18:07:12,959 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 18, 6, 51), 15.5, 33.4, 0.0, 17.56, 11.41, 0, 0, 0, 2, 0, 0),)
2025-06-13 18:07:12,960 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 18:06:51
2025-06-13 18:07:13,042 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 18:07:13,048 [DEBUG][       Thread-263565][   transport.py][1871] : starting thread (client mode): 0x86368e50
2025-06-13 18:07:13,048 [DEBUG][       Thread-263565][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 18:07:13,070 [DEBUG][       Thread-263565][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 18:07:13,070 [ INFO][       Thread-263565][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 18:07:13,074 [DEBUG][       Thread-263565][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 18:07:13,074 [DEBUG][       Thread-263565][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 18:07:13,074 [DEBUG][       Thread-263565][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 18:07:13,075 [DEBUG][       Thread-263565][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 18:07:13,075 [DEBUG][       Thread-263565][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 18:07:13,075 [DEBUG][       Thread-263565][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 18:07:13,075 [DEBUG][       Thread-263565][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 18:07:13,075 [DEBUG][       Thread-263565][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 18:07:13,075 [DEBUG][       Thread-263565][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 18:07:13,075 [DEBUG][       Thread-263565][   transport.py][1871] : client lang: <none>
2025-06-13 18:07:13,075 [DEBUG][       Thread-263565][   transport.py][1871] : server lang: <none>
2025-06-13 18:07:13,075 [DEBUG][       Thread-263565][   transport.py][1871] : kex follows: False
2025-06-13 18:07:13,075 [DEBUG][       Thread-263565][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 18:07:13,075 [DEBUG][       Thread-263565][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 18:07:13,075 [DEBUG][       Thread-263565][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 18:07:13,075 [DEBUG][       Thread-263565][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 18:07:13,075 [DEBUG][       Thread-263565][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 18:07:13,075 [DEBUG][       Thread-263565][   transport.py][1871] : Compression: none
2025-06-13 18:07:13,075 [DEBUG][       Thread-263565][   transport.py][1871] : === End of kex handshake ===
2025-06-13 18:07:13,091 [DEBUG][       Thread-263565][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 18:07:13,092 [DEBUG][       Thread-263565][   transport.py][1871] : Switch to new keys ...
2025-06-13 18:07:13,092 [DEBUG][       Thread-263565][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 18:07:13,093 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 18:07:13,093 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 18:07:13,094 [DEBUG][       Thread-263565][   transport.py][1871] : userauth is OK
2025-06-13 18:07:13,107 [ INFO][       Thread-263565][   transport.py][1871] : Authentication (password) successful!
2025-06-13 18:07:13,107 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 18:07:13,750 [DEBUG][       Thread-263565][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 18:07:13,750 [DEBUG][       Thread-263565][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 18:07:13,793 [DEBUG][       Thread-263565][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 18:07:13,793 [DEBUG][       Thread-263565][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 18:07:13,797 [DEBUG][       Thread-263565][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 18:07:13,808 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 18:07:13,808 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 18:07:13,810 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 18:07:13,813 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 18:07:13,819 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 18:07:13,821 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 18:07:13,821 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 18:07:13,822 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 18:07:13,822 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.671461 -999.00  +11.40  19.40     38   -2.20 1 1 1 1 1   188    0 13.70 -9.07 ----- 18.9 19.4 56.8 21.7 11.6 -29.3 11.5 -29.3 11.2 -28.3 11.6 -28.3
2025-06-13 18:07:13,822 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 18:07:13,822 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 18:07:13,822 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.671461
2025-06-13 18:07:13,823 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 18:07:13,823 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 18:07:13,823 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 18:07:13,824 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 18:07:13,824 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 18:07:13,824 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T18:06:51', tmtdew=15.5, humidity=33.4, cloud=0.0, wind=17.56, temperature=11.41, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T16:06:54.230', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 18:07:13,825 [DEBUG][       Thread-263565][   transport.py][1871] : EOF in transport thread
2025-06-13 18:07:13,908 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 18:07:13,921 [DEBUG][       Thread-263568][   transport.py][1871] : starting thread (client mode): 0x863beda0
2025-06-13 18:07:13,921 [DEBUG][       Thread-263568][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 18:07:13,937 [DEBUG][       Thread-263568][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 18:07:13,937 [ INFO][       Thread-263568][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 18:07:13,945 [DEBUG][       Thread-263568][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 18:07:13,945 [DEBUG][       Thread-263568][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 18:07:13,946 [DEBUG][       Thread-263568][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 18:07:13,946 [DEBUG][       Thread-263568][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 18:07:13,946 [DEBUG][       Thread-263568][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 18:07:13,946 [DEBUG][       Thread-263568][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 18:07:13,946 [DEBUG][       Thread-263568][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 18:07:13,946 [DEBUG][       Thread-263568][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 18:07:13,946 [DEBUG][       Thread-263568][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 18:07:13,946 [DEBUG][       Thread-263568][   transport.py][1871] : client lang: <none>
2025-06-13 18:07:13,946 [DEBUG][       Thread-263568][   transport.py][1871] : server lang: <none>
2025-06-13 18:07:13,946 [DEBUG][       Thread-263568][   transport.py][1871] : kex follows: False
2025-06-13 18:07:13,946 [DEBUG][       Thread-263568][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 18:07:13,946 [DEBUG][       Thread-263568][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 18:07:13,946 [DEBUG][       Thread-263568][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 18:07:13,946 [DEBUG][       Thread-263568][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 18:07:13,946 [DEBUG][       Thread-263568][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 18:07:13,946 [DEBUG][       Thread-263568][   transport.py][1871] : Compression: none
2025-06-13 18:07:13,946 [DEBUG][       Thread-263568][   transport.py][1871] : === End of kex handshake ===
2025-06-13 18:07:14,003 [DEBUG][       Thread-263568][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 18:07:14,003 [DEBUG][       Thread-263568][   transport.py][1871] : Switch to new keys ...
2025-06-13 18:07:14,003 [DEBUG][       Thread-263568][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 18:07:14,003 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 18:07:14,003 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 18:07:14,061 [DEBUG][       Thread-263568][   transport.py][1871] : userauth is OK
2025-06-13 18:07:14,062 [DEBUG][       Thread-263568][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 18:07:14,062 [DEBUG][       Thread-263568][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 18:07:14,062 [DEBUG][       Thread-263568][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 18:07:14,062 [DEBUG][       Thread-263568][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 18:07:14,081 [ INFO][       Thread-263568][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 18:07:14,082 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 18:07:14,082 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 18:07:14,162 [DEBUG][Thread-263570 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 18:07:15,095 [DEBUG][       Thread-263568][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 18:07:15,095 [DEBUG][       Thread-263568][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 18:07:15,144 [DEBUG][       Thread-263568][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 18:07:15,144 [DEBUG][       Thread-263568][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 18:07:15,154 [DEBUG][       Thread-263568][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 18:07:15,163 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 18:07:15,164 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 18:07:15,173 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 18:07:15,182 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 18:07:15,182 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 18:07:15,183 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 18:07:15,191 [DEBUG][       Thread-263568][   transport.py][1871] : EOF in transport thread
2025-06-13 18:07:23,182 [DEBUG][Thread-263571 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 18:07:25,184 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 18:07:25,184 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 18:07:25,184 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 18:07:25,187 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 18:07:25,643 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 18, 7, 22), 15.52, 33.44, 0.0, 17.75, 11.43, 0, 0, 0, 2, 0, 0),)
2025-06-13 18:07:25,643 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 18:07:22
2025-06-13 18:07:25,725 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 18:07:25,729 [DEBUG][       Thread-263572][   transport.py][1871] : starting thread (client mode): 0x867fc820
2025-06-13 18:07:25,729 [DEBUG][       Thread-263572][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 18:07:25,750 [DEBUG][       Thread-263572][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 18:07:25,750 [ INFO][       Thread-263572][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 18:07:25,753 [DEBUG][       Thread-263572][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 18:07:25,753 [DEBUG][       Thread-263572][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 18:07:25,753 [DEBUG][       Thread-263572][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 18:07:25,753 [DEBUG][       Thread-263572][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 18:07:25,753 [DEBUG][       Thread-263572][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 18:07:25,753 [DEBUG][       Thread-263572][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 18:07:25,753 [DEBUG][       Thread-263572][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 18:07:25,753 [DEBUG][       Thread-263572][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 18:07:25,753 [DEBUG][       Thread-263572][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 18:07:25,753 [DEBUG][       Thread-263572][   transport.py][1871] : client lang: <none>
2025-06-13 18:07:25,753 [DEBUG][       Thread-263572][   transport.py][1871] : server lang: <none>
2025-06-13 18:07:25,753 [DEBUG][       Thread-263572][   transport.py][1871] : kex follows: False
2025-06-13 18:07:25,753 [DEBUG][       Thread-263572][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 18:07:25,753 [DEBUG][       Thread-263572][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 18:07:25,753 [DEBUG][       Thread-263572][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 18:07:25,754 [DEBUG][       Thread-263572][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 18:07:25,754 [DEBUG][       Thread-263572][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 18:07:25,754 [DEBUG][       Thread-263572][   transport.py][1871] : Compression: none
2025-06-13 18:07:25,754 [DEBUG][       Thread-263572][   transport.py][1871] : === End of kex handshake ===
2025-06-13 18:07:25,773 [DEBUG][       Thread-263572][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 18:07:25,774 [DEBUG][       Thread-263572][   transport.py][1871] : Switch to new keys ...
2025-06-13 18:07:25,774 [DEBUG][       Thread-263572][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 18:07:25,774 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 18:07:25,775 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 18:07:25,776 [DEBUG][       Thread-263572][   transport.py][1871] : userauth is OK
2025-06-13 18:07:25,801 [ INFO][       Thread-263572][   transport.py][1871] : Authentication (password) successful!
2025-06-13 18:07:25,801 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 18:07:26,455 [DEBUG][       Thread-263572][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 18:07:26,455 [DEBUG][       Thread-263572][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 18:07:26,497 [DEBUG][       Thread-263572][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 18:07:26,497 [DEBUG][       Thread-263572][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 18:07:26,499 [DEBUG][       Thread-263572][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 18:07:26,512 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 18:07:26,512 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 18:07:26,514 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 18:07:26,515 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 18:07:26,521 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 18:07:26,522 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 18:07:26,523 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 18:07:26,523 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 18:07:26,523 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.671461 -999.00  +11.40  19.40     38   -2.20 1 1 1 1 1   188    0 13.70 -9.07 ----- 18.9 19.4 56.8 21.7 11.6 -29.3 11.5 -29.3 11.2 -28.3 11.6 -28.3
2025-06-13 18:07:26,523 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 18:07:26,524 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 18:07:26,524 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.671461
2025-06-13 18:07:26,524 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 18:07:26,525 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 18:07:26,525 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 18:07:26,525 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 18:07:26,525 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 18:07:26,525 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T18:07:22', tmtdew=15.52, humidity=33.44, cloud=0.0, wind=17.75, temperature=11.43, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T16:06:54.230', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 18:07:26,526 [DEBUG][       Thread-263572][   transport.py][1871] : EOF in transport thread
2025-06-13 18:07:26,609 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 18:07:26,618 [DEBUG][       Thread-263575][   transport.py][1871] : starting thread (client mode): 0x863efbe0
2025-06-13 18:07:26,618 [DEBUG][       Thread-263575][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 18:07:26,640 [DEBUG][       Thread-263575][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 18:07:26,640 [ INFO][       Thread-263575][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 18:07:26,652 [DEBUG][       Thread-263575][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 18:07:26,652 [DEBUG][       Thread-263575][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 18:07:26,653 [DEBUG][       Thread-263575][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 18:07:26,653 [DEBUG][       Thread-263575][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 18:07:26,653 [DEBUG][       Thread-263575][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 18:07:26,653 [DEBUG][       Thread-263575][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 18:07:26,653 [DEBUG][       Thread-263575][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 18:07:26,653 [DEBUG][       Thread-263575][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 18:07:26,653 [DEBUG][       Thread-263575][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 18:07:26,653 [DEBUG][       Thread-263575][   transport.py][1871] : client lang: <none>
2025-06-13 18:07:26,653 [DEBUG][       Thread-263575][   transport.py][1871] : server lang: <none>
2025-06-13 18:07:26,653 [DEBUG][       Thread-263575][   transport.py][1871] : kex follows: False
2025-06-13 18:07:26,653 [DEBUG][       Thread-263575][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 18:07:26,653 [DEBUG][       Thread-263575][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 18:07:26,653 [DEBUG][       Thread-263575][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 18:07:26,653 [DEBUG][       Thread-263575][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 18:07:26,653 [DEBUG][       Thread-263575][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 18:07:26,653 [DEBUG][       Thread-263575][   transport.py][1871] : Compression: none
2025-06-13 18:07:26,653 [DEBUG][       Thread-263575][   transport.py][1871] : === End of kex handshake ===
2025-06-13 18:07:26,711 [DEBUG][       Thread-263575][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 18:07:26,711 [DEBUG][       Thread-263575][   transport.py][1871] : Switch to new keys ...
2025-06-13 18:07:26,712 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 18:07:26,712 [DEBUG][       Thread-263575][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 18:07:26,713 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 18:07:26,767 [DEBUG][       Thread-263575][   transport.py][1871] : userauth is OK
2025-06-13 18:07:26,767 [DEBUG][       Thread-263575][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 18:07:26,767 [DEBUG][       Thread-263575][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 18:07:26,767 [DEBUG][       Thread-263575][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 18:07:26,767 [DEBUG][       Thread-263575][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 18:07:26,785 [ INFO][       Thread-263575][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 18:07:26,786 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 18:07:26,786 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 18:07:27,280 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 18:07:27,281 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 18:07:27,772 [DEBUG][       Thread-263575][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 18:07:27,773 [DEBUG][       Thread-263575][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 18:07:27,823 [DEBUG][       Thread-263575][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 18:07:27,824 [DEBUG][       Thread-263575][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 18:07:27,832 [DEBUG][       Thread-263575][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 18:07:27,841 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 18:07:27,841 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 18:07:27,850 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 18:07:27,859 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 18:07:27,859 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 18:07:27,859 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 18:07:27,867 [DEBUG][       Thread-263575][   transport.py][1871] : EOF in transport thread
2025-06-13 18:07:28,842 [DEBUG][Thread-263577 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 18:07:32,201 [DEBUG][Thread-263578 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 18:07:37,870 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 18:07:37,870 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 18:07:37,870 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 18:07:37,873 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 18:07:38,340 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 18, 7, 22), 15.52, 33.44, 0.0, 17.75, 11.43, 0, 0, 0, 2, 0, 0),)
2025-06-13 18:07:38,340 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 18:07:22
2025-06-13 18:07:38,422 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 18:07:38,428 [DEBUG][       Thread-263579][   transport.py][1871] : starting thread (client mode): 0x863c9cc0
2025-06-13 18:07:38,428 [DEBUG][       Thread-263579][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 18:07:38,448 [DEBUG][       Thread-263579][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 18:07:38,449 [ INFO][       Thread-263579][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 18:07:38,452 [DEBUG][       Thread-263579][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 18:07:38,452 [DEBUG][       Thread-263579][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 18:07:38,452 [DEBUG][       Thread-263579][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 18:07:38,452 [DEBUG][       Thread-263579][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 18:07:38,452 [DEBUG][       Thread-263579][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 18:07:38,452 [DEBUG][       Thread-263579][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 18:07:38,452 [DEBUG][       Thread-263579][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 18:07:38,452 [DEBUG][       Thread-263579][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 18:07:38,452 [DEBUG][       Thread-263579][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 18:07:38,452 [DEBUG][       Thread-263579][   transport.py][1871] : client lang: <none>
2025-06-13 18:07:38,452 [DEBUG][       Thread-263579][   transport.py][1871] : server lang: <none>
2025-06-13 18:07:38,452 [DEBUG][       Thread-263579][   transport.py][1871] : kex follows: False
2025-06-13 18:07:38,452 [DEBUG][       Thread-263579][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 18:07:38,452 [DEBUG][       Thread-263579][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 18:07:38,452 [DEBUG][       Thread-263579][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 18:07:38,452 [DEBUG][       Thread-263579][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 18:07:38,453 [DEBUG][       Thread-263579][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 18:07:38,453 [DEBUG][       Thread-263579][   transport.py][1871] : Compression: none
2025-06-13 18:07:38,453 [DEBUG][       Thread-263579][   transport.py][1871] : === End of kex handshake ===
2025-06-13 18:07:38,469 [DEBUG][       Thread-263579][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 18:07:38,470 [DEBUG][       Thread-263579][   transport.py][1871] : Switch to new keys ...
2025-06-13 18:07:38,470 [DEBUG][       Thread-263579][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 18:07:38,470 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 18:07:38,471 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 18:07:38,472 [DEBUG][       Thread-263579][   transport.py][1871] : userauth is OK
2025-06-13 18:07:38,496 [ INFO][       Thread-263579][   transport.py][1871] : Authentication (password) successful!
2025-06-13 18:07:38,497 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 18:07:39,068 [DEBUG][       Thread-263579][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 18:07:39,068 [DEBUG][       Thread-263579][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 18:07:39,109 [DEBUG][       Thread-263579][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 18:07:39,109 [DEBUG][       Thread-263579][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 18:07:39,112 [DEBUG][       Thread-263579][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 18:07:39,125 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 18:07:39,125 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 18:07:39,127 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 18:07:39,130 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 18:07:39,136 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 18:07:39,138 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 18:07:39,138 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 18:07:39,139 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 18:07:39,139 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.671808 -999.00  +11.50  22.28     37   -2.30 1 1 1 1 1   174    0 13.68 -11.42 ----- 21.4 22.3 60.2 26.1 11.6 -29.3 11.5 -29.2 11.2 -28.3 11.5 -28.4
2025-06-13 18:07:39,139 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 18:07:39,139 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 18:07:39,139 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.671808
2025-06-13 18:07:39,139 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 18:07:39,140 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 18:07:39,140 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 18:07:39,140 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 18:07:39,140 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 18:07:39,140 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T18:07:22', tmtdew=15.52, humidity=33.44, cloud=0.0, wind=17.75, temperature=11.43, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T16:07:24.211', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 18:07:39,142 [DEBUG][       Thread-263579][   transport.py][1871] : EOF in transport thread
2025-06-13 18:07:39,224 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 18:07:41,242 [DEBUG][Thread-263582 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 18:07:46,682 [DEBUG][Thread-263583 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 18:07:47,789 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 18:07:47,790 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 18:07:50,264 [DEBUG][Thread-263584 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 18:07:59,283 [DEBUG][Thread-263585 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 18:08:08,303 [DEBUG][Thread-263586 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 18:08:17,323 [DEBUG][Thread-263587 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 18:08:26,344 [DEBUG][Thread-263588 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 18:08:28,897 [DEBUG][Thread-263589 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 18:08:32,395 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 18:08:32,396 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 18:08:35,366 [DEBUG][Thread-263590 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 18:08:44,387 [DEBUG][Thread-263591 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 18:08:47,889 [DEBUG][Thread-263592 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 18:08:48,999 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 18:08:49,000 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 18:08:53,409 [DEBUG][Thread-263593 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 18:09:02,431 [DEBUG][Thread-263594 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 18:09:11,452 [DEBUG][Thread-263595 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 18:09:20,471 [DEBUG][Thread-263596 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 18:09:28,953 [DEBUG][Thread-263597 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 18:09:29,492 [DEBUG][Thread-263598 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 18:09:38,516 [DEBUG][Thread-263599 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 18:09:39,544 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 18:09:39,545 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 18:09:47,536 [DEBUG][Thread-263600 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 18:09:48,052 [WARNING][ poll_weather_worker][      driver.py][ 286] : Unable to open ssh connection for writing weather state to io.saao.ac.za: [Errno 110] Connection timed out
2025-06-13 18:09:49,043 [DEBUG][Thread-263601 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 18:09:50,128 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 18:09:50,128 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 18:09:56,558 [DEBUG][Thread-263602 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 18:09:58,063 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 18:09:58,063 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 18:09:58,063 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 18:09:58,066 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 18:09:58,570 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 18, 9, 29), 15.38, 33.68, 0.0, 18.23, 11.4, 0, 0, 0, 2, 0, 0),)
2025-06-13 18:09:58,570 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 18:09:29
2025-06-13 18:09:58,656 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 18:09:58,664 [DEBUG][       Thread-263603][   transport.py][1871] : starting thread (client mode): 0x863c99f0
2025-06-13 18:09:58,664 [DEBUG][       Thread-263603][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 18:09:58,676 [DEBUG][       Thread-263603][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 18:09:58,676 [ INFO][       Thread-263603][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 18:09:58,678 [DEBUG][       Thread-263603][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 18:09:58,678 [DEBUG][       Thread-263603][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 18:09:58,678 [DEBUG][       Thread-263603][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 18:09:58,678 [DEBUG][       Thread-263603][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 18:09:58,678 [DEBUG][       Thread-263603][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 18:09:58,678 [DEBUG][       Thread-263603][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 18:09:58,678 [DEBUG][       Thread-263603][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 18:09:58,678 [DEBUG][       Thread-263603][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 18:09:58,678 [DEBUG][       Thread-263603][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 18:09:58,678 [DEBUG][       Thread-263603][   transport.py][1871] : client lang: <none>
2025-06-13 18:09:58,678 [DEBUG][       Thread-263603][   transport.py][1871] : server lang: <none>
2025-06-13 18:09:58,678 [DEBUG][       Thread-263603][   transport.py][1871] : kex follows: False
2025-06-13 18:09:58,678 [DEBUG][       Thread-263603][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 18:09:58,678 [DEBUG][       Thread-263603][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 18:09:58,678 [DEBUG][       Thread-263603][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 18:09:58,678 [DEBUG][       Thread-263603][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 18:09:58,678 [DEBUG][       Thread-263603][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 18:09:58,678 [DEBUG][       Thread-263603][   transport.py][1871] : Compression: none
2025-06-13 18:09:58,678 [DEBUG][       Thread-263603][   transport.py][1871] : === End of kex handshake ===
2025-06-13 18:09:58,688 [DEBUG][       Thread-263603][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 18:09:58,689 [DEBUG][       Thread-263603][   transport.py][1871] : Switch to new keys ...
2025-06-13 18:09:58,689 [DEBUG][       Thread-263603][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 18:09:58,689 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 18:09:58,689 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 18:09:58,690 [DEBUG][       Thread-263603][   transport.py][1871] : userauth is OK
2025-06-13 18:09:58,713 [ INFO][       Thread-263603][   transport.py][1871] : Authentication (password) successful!
2025-06-13 18:09:58,713 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 18:09:59,322 [DEBUG][       Thread-263603][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 18:09:59,322 [DEBUG][       Thread-263603][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 18:09:59,365 [DEBUG][       Thread-263603][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 18:09:59,365 [DEBUG][       Thread-263603][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 18:09:59,367 [DEBUG][       Thread-263603][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 18:09:59,379 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 18:09:59,379 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 18:09:59,380 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 18:09:59,381 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 18:09:59,383 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 18:09:59,384 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 18:09:59,384 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 18:09:59,384 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 18:09:59,384 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.673197 -999.00  +11.50  20.84     38   -2.30 1 1 1 1 1   126    0 13.63 -13.09 ----- 17.9 20.8 44.6 23.2 11.6 -29.2 11.5 -29.3 11.2 -28.3 11.5 -28.3
2025-06-13 18:09:59,384 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 18:09:59,384 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 18:09:59,384 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.673197
2025-06-13 18:09:59,385 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 18:09:59,385 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 18:09:59,385 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 18:09:59,385 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 18:09:59,385 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 18:09:59,385 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T18:09:29', tmtdew=15.38, humidity=33.68, cloud=0.0, wind=18.23, temperature=11.4, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T16:09:24.221', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 18:09:59,386 [DEBUG][       Thread-263603][   transport.py][1871] : EOF in transport thread
2025-06-13 18:09:59,460 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 18:09:59,471 [DEBUG][       Thread-263606][   transport.py][1871] : starting thread (client mode): 0x86391d20
2025-06-13 18:09:59,471 [DEBUG][       Thread-263606][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 18:09:59,487 [DEBUG][       Thread-263606][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 18:09:59,487 [ INFO][       Thread-263606][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 18:09:59,496 [DEBUG][       Thread-263606][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 18:09:59,496 [DEBUG][       Thread-263606][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 18:09:59,496 [DEBUG][       Thread-263606][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 18:09:59,496 [DEBUG][       Thread-263606][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 18:09:59,496 [DEBUG][       Thread-263606][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 18:09:59,496 [DEBUG][       Thread-263606][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 18:09:59,496 [DEBUG][       Thread-263606][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 18:09:59,496 [DEBUG][       Thread-263606][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 18:09:59,496 [DEBUG][       Thread-263606][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 18:09:59,496 [DEBUG][       Thread-263606][   transport.py][1871] : client lang: <none>
2025-06-13 18:09:59,496 [DEBUG][       Thread-263606][   transport.py][1871] : server lang: <none>
2025-06-13 18:09:59,496 [DEBUG][       Thread-263606][   transport.py][1871] : kex follows: False
2025-06-13 18:09:59,496 [DEBUG][       Thread-263606][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 18:09:59,496 [DEBUG][       Thread-263606][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 18:09:59,496 [DEBUG][       Thread-263606][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 18:09:59,496 [DEBUG][       Thread-263606][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 18:09:59,496 [DEBUG][       Thread-263606][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 18:09:59,496 [DEBUG][       Thread-263606][   transport.py][1871] : Compression: none
2025-06-13 18:09:59,496 [DEBUG][       Thread-263606][   transport.py][1871] : === End of kex handshake ===
2025-06-13 18:09:59,560 [DEBUG][       Thread-263606][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 18:09:59,560 [DEBUG][       Thread-263606][   transport.py][1871] : Switch to new keys ...
2025-06-13 18:09:59,560 [DEBUG][       Thread-263606][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 18:09:59,560 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 18:09:59,561 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 18:09:59,620 [DEBUG][       Thread-263606][   transport.py][1871] : userauth is OK
2025-06-13 18:09:59,620 [DEBUG][       Thread-263606][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 18:09:59,620 [DEBUG][       Thread-263606][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 18:09:59,620 [DEBUG][       Thread-263606][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 18:09:59,620 [DEBUG][       Thread-263606][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 18:09:59,634 [ INFO][       Thread-263606][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 18:09:59,634 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 18:09:59,635 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 18:10:00,655 [DEBUG][       Thread-263606][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 18:10:00,655 [DEBUG][       Thread-263606][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 18:10:00,707 [DEBUG][       Thread-263606][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 18:10:00,707 [DEBUG][       Thread-263606][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 18:10:00,719 [DEBUG][       Thread-263606][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 18:10:00,729 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 18:10:00,729 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 18:10:00,738 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 18:10:00,751 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 18:10:00,751 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 18:10:00,751 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 18:10:00,764 [DEBUG][       Thread-263606][   transport.py][1871] : EOF in transport thread
2025-06-13 18:10:05,578 [DEBUG][Thread-263608 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 18:10:10,761 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 18:10:10,762 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 18:10:10,762 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 18:10:10,765 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 18:10:11,249 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 18, 10, 1), 15.39, 33.64, 0.0, 19.99, 11.37, 0, 0, 0, 2, 0, 0),)
2025-06-13 18:10:11,249 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 18:10:01
2025-06-13 18:10:11,329 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 18:10:11,332 [DEBUG][       Thread-263609][   transport.py][1871] : starting thread (client mode): 0x8636a9b0
2025-06-13 18:10:11,332 [DEBUG][       Thread-263609][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 18:10:11,348 [DEBUG][       Thread-263609][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 18:10:11,349 [ INFO][       Thread-263609][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 18:10:11,351 [DEBUG][       Thread-263609][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 18:10:11,351 [DEBUG][       Thread-263609][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 18:10:11,351 [DEBUG][       Thread-263609][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 18:10:11,351 [DEBUG][       Thread-263609][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 18:10:11,351 [DEBUG][       Thread-263609][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 18:10:11,351 [DEBUG][       Thread-263609][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 18:10:11,351 [DEBUG][       Thread-263609][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 18:10:11,351 [DEBUG][       Thread-263609][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 18:10:11,351 [DEBUG][       Thread-263609][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 18:10:11,351 [DEBUG][       Thread-263609][   transport.py][1871] : client lang: <none>
2025-06-13 18:10:11,351 [DEBUG][       Thread-263609][   transport.py][1871] : server lang: <none>
2025-06-13 18:10:11,351 [DEBUG][       Thread-263609][   transport.py][1871] : kex follows: False
2025-06-13 18:10:11,351 [DEBUG][       Thread-263609][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 18:10:11,351 [DEBUG][       Thread-263609][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 18:10:11,351 [DEBUG][       Thread-263609][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 18:10:11,351 [DEBUG][       Thread-263609][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 18:10:11,351 [DEBUG][       Thread-263609][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 18:10:11,351 [DEBUG][       Thread-263609][   transport.py][1871] : Compression: none
2025-06-13 18:10:11,351 [DEBUG][       Thread-263609][   transport.py][1871] : === End of kex handshake ===
2025-06-13 18:10:11,367 [DEBUG][       Thread-263609][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 18:10:11,368 [DEBUG][       Thread-263609][   transport.py][1871] : Switch to new keys ...
2025-06-13 18:10:11,368 [DEBUG][       Thread-263609][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 18:10:11,369 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 18:10:11,369 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 18:10:11,370 [DEBUG][       Thread-263609][   transport.py][1871] : userauth is OK
2025-06-13 18:10:11,382 [ INFO][       Thread-263609][   transport.py][1871] : Authentication (password) successful!
2025-06-13 18:10:11,383 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 18:10:14,614 [DEBUG][Thread-263611 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 18:10:21,791 [DEBUG][       Thread-263609][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 18:10:21,792 [DEBUG][       Thread-263609][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 18:10:21,833 [DEBUG][       Thread-263609][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 18:10:21,833 [DEBUG][       Thread-263609][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 18:10:21,836 [DEBUG][       Thread-263609][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 18:10:21,903 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 18:10:21,904 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 18:10:21,905 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 18:10:21,907 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 18:10:21,912 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 18:10:21,913 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 18:10:21,913 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 18:10:21,914 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 18:10:21,914 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.673197 -999.00  +11.50  20.84     38   -2.30 1 1 1 1 1   126    0 13.63 -13.09 ----- 17.9 20.8 44.6 23.2 11.6 -29.2 11.5 -29.3 11.2 -28.3 11.5 -28.3
2025-06-13 18:10:21,914 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 18:10:21,914 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 18:10:21,914 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.673197
2025-06-13 18:10:21,915 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 18:10:21,915 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 18:10:21,915 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 18:10:21,915 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 18:10:21,915 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 18:10:21,916 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T18:10:01', tmtdew=15.39, humidity=33.64, cloud=0.0, wind=19.99, temperature=11.37, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T16:09:24.221', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 18:10:21,916 [DEBUG][       Thread-263609][   transport.py][1871] : EOF in transport thread
2025-06-13 18:10:21,999 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 18:10:22,010 [DEBUG][       Thread-263613][   transport.py][1871] : starting thread (client mode): 0x863beda0
2025-06-13 18:10:22,010 [DEBUG][       Thread-263613][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 18:10:22,024 [DEBUG][       Thread-263613][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 18:10:22,024 [ INFO][       Thread-263613][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 18:10:22,032 [DEBUG][       Thread-263613][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 18:10:22,032 [DEBUG][       Thread-263613][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 18:10:22,032 [DEBUG][       Thread-263613][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 18:10:22,032 [DEBUG][       Thread-263613][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 18:10:22,032 [DEBUG][       Thread-263613][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 18:10:22,032 [DEBUG][       Thread-263613][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 18:10:22,032 [DEBUG][       Thread-263613][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 18:10:22,032 [DEBUG][       Thread-263613][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 18:10:22,032 [DEBUG][       Thread-263613][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 18:10:22,032 [DEBUG][       Thread-263613][   transport.py][1871] : client lang: <none>
2025-06-13 18:10:22,032 [DEBUG][       Thread-263613][   transport.py][1871] : server lang: <none>
2025-06-13 18:10:22,032 [DEBUG][       Thread-263613][   transport.py][1871] : kex follows: False
2025-06-13 18:10:22,032 [DEBUG][       Thread-263613][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 18:10:22,032 [DEBUG][       Thread-263613][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 18:10:22,032 [DEBUG][       Thread-263613][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 18:10:22,032 [DEBUG][       Thread-263613][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 18:10:22,033 [DEBUG][       Thread-263613][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 18:10:22,033 [DEBUG][       Thread-263613][   transport.py][1871] : Compression: none
2025-06-13 18:10:22,033 [DEBUG][       Thread-263613][   transport.py][1871] : === End of kex handshake ===
2025-06-13 18:10:22,094 [DEBUG][       Thread-263613][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 18:10:22,095 [DEBUG][       Thread-263613][   transport.py][1871] : Switch to new keys ...
2025-06-13 18:10:22,095 [DEBUG][       Thread-263613][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 18:10:22,096 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 18:10:22,096 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 18:10:22,150 [DEBUG][       Thread-263613][   transport.py][1871] : userauth is OK
2025-06-13 18:10:22,150 [DEBUG][       Thread-263613][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 18:10:22,150 [DEBUG][       Thread-263613][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 18:10:22,150 [DEBUG][       Thread-263613][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 18:10:22,151 [DEBUG][       Thread-263613][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 18:10:22,169 [ INFO][       Thread-263613][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 18:10:22,169 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 18:10:22,170 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 18:10:23,199 [DEBUG][       Thread-263613][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 18:10:23,199 [DEBUG][       Thread-263613][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 18:10:23,248 [DEBUG][       Thread-263613][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 18:10:23,248 [DEBUG][       Thread-263613][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 18:10:23,257 [DEBUG][       Thread-263613][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 18:10:23,269 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 18:10:23,270 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 18:10:23,282 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 18:10:23,295 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 18:10:23,295 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 18:10:23,296 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 18:10:23,304 [DEBUG][       Thread-263613][   transport.py][1871] : EOF in transport thread
2025-06-13 18:10:23,634 [DEBUG][Thread-263615 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 18:10:29,011 [DEBUG][Thread-263616 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 18:10:32,670 [DEBUG][Thread-263617 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 18:10:33,306 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 18:10:33,306 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 18:10:33,307 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 18:10:33,309 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 18:10:33,809 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 18, 10, 1), 15.39, 33.64, 0.0, 19.99, 11.37, 0, 0, 0, 2, 0, 0),)
2025-06-13 18:10:33,809 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 18:10:01
2025-06-13 18:10:33,895 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 18:10:33,901 [DEBUG][       Thread-263618][   transport.py][1871] : starting thread (client mode): 0x863694b0
2025-06-13 18:10:33,901 [DEBUG][       Thread-263618][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 18:10:33,923 [DEBUG][       Thread-263618][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 18:10:33,923 [ INFO][       Thread-263618][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 18:10:33,926 [DEBUG][       Thread-263618][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 18:10:33,926 [DEBUG][       Thread-263618][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 18:10:33,926 [DEBUG][       Thread-263618][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 18:10:33,926 [DEBUG][       Thread-263618][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 18:10:33,926 [DEBUG][       Thread-263618][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 18:10:33,926 [DEBUG][       Thread-263618][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 18:10:33,926 [DEBUG][       Thread-263618][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 18:10:33,926 [DEBUG][       Thread-263618][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 18:10:33,926 [DEBUG][       Thread-263618][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 18:10:33,926 [DEBUG][       Thread-263618][   transport.py][1871] : client lang: <none>
2025-06-13 18:10:33,926 [DEBUG][       Thread-263618][   transport.py][1871] : server lang: <none>
2025-06-13 18:10:33,926 [DEBUG][       Thread-263618][   transport.py][1871] : kex follows: False
2025-06-13 18:10:33,926 [DEBUG][       Thread-263618][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 18:10:33,926 [DEBUG][       Thread-263618][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 18:10:33,926 [DEBUG][       Thread-263618][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 18:10:33,926 [DEBUG][       Thread-263618][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 18:10:33,926 [DEBUG][       Thread-263618][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 18:10:33,926 [DEBUG][       Thread-263618][   transport.py][1871] : Compression: none
2025-06-13 18:10:33,927 [DEBUG][       Thread-263618][   transport.py][1871] : === End of kex handshake ===
2025-06-13 18:10:33,941 [DEBUG][       Thread-263618][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 18:10:33,941 [DEBUG][       Thread-263618][   transport.py][1871] : Switch to new keys ...
2025-06-13 18:10:33,941 [DEBUG][       Thread-263618][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 18:10:33,941 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 18:10:33,941 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 18:10:33,942 [DEBUG][       Thread-263618][   transport.py][1871] : userauth is OK
2025-06-13 18:10:33,954 [ INFO][       Thread-263618][   transport.py][1871] : Authentication (password) successful!
2025-06-13 18:10:33,954 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 18:10:34,554 [DEBUG][       Thread-263618][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 18:10:34,554 [DEBUG][       Thread-263618][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 18:10:34,597 [DEBUG][       Thread-263618][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 18:10:34,597 [DEBUG][       Thread-263618][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 18:10:34,598 [DEBUG][       Thread-263618][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 18:10:34,611 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 18:10:34,611 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 18:10:34,612 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 18:10:34,612 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 18:10:34,615 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 18:10:34,616 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 18:10:34,616 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 18:10:34,616 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 18:10:34,616 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.673544 -999.00  +11.50  20.10     38   -2.20 1 1 1 1 1   116    0 13.58 -13.48 ----- 23.7 20.1 51.6 27.9 11.6 -29.2 11.5 -29.3 11.2 -28.3 11.6 -28.4
2025-06-13 18:10:34,616 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 18:10:34,616 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 18:10:34,616 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.673544
2025-06-13 18:10:34,616 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 18:10:34,616 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 18:10:34,616 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 18:10:34,616 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 18:10:34,616 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 18:10:34,616 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T18:10:01', tmtdew=15.39, humidity=33.64, cloud=0.0, wind=19.99, temperature=11.37, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T16:09:54.202', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 18:10:34,617 [DEBUG][       Thread-263618][   transport.py][1871] : EOF in transport thread
2025-06-13 18:10:34,691 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 18:10:34,700 [DEBUG][       Thread-263621][   transport.py][1871] : starting thread (client mode): 0x867fd390
2025-06-13 18:10:34,700 [DEBUG][       Thread-263621][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 18:10:34,720 [DEBUG][       Thread-263621][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 18:10:34,720 [ INFO][       Thread-263621][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 18:10:34,729 [DEBUG][       Thread-263621][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 18:10:34,729 [DEBUG][       Thread-263621][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 18:10:34,729 [DEBUG][       Thread-263621][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 18:10:34,729 [DEBUG][       Thread-263621][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 18:10:34,729 [DEBUG][       Thread-263621][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 18:10:34,729 [DEBUG][       Thread-263621][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 18:10:34,729 [DEBUG][       Thread-263621][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 18:10:34,729 [DEBUG][       Thread-263621][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 18:10:34,729 [DEBUG][       Thread-263621][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 18:10:34,729 [DEBUG][       Thread-263621][   transport.py][1871] : client lang: <none>
2025-06-13 18:10:34,729 [DEBUG][       Thread-263621][   transport.py][1871] : server lang: <none>
2025-06-13 18:10:34,729 [DEBUG][       Thread-263621][   transport.py][1871] : kex follows: False
2025-06-13 18:10:34,729 [DEBUG][       Thread-263621][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 18:10:34,729 [DEBUG][       Thread-263621][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 18:10:34,729 [DEBUG][       Thread-263621][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 18:10:34,729 [DEBUG][       Thread-263621][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 18:10:34,729 [DEBUG][       Thread-263621][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 18:10:34,729 [DEBUG][       Thread-263621][   transport.py][1871] : Compression: none
2025-06-13 18:10:34,729 [DEBUG][       Thread-263621][   transport.py][1871] : === End of kex handshake ===
2025-06-13 18:10:34,785 [DEBUG][       Thread-263621][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 18:10:34,785 [DEBUG][       Thread-263621][   transport.py][1871] : Switch to new keys ...
2025-06-13 18:10:34,785 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 18:10:34,785 [DEBUG][       Thread-263621][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 18:10:34,785 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 18:10:34,842 [DEBUG][       Thread-263621][   transport.py][1871] : userauth is OK
2025-06-13 18:10:34,842 [DEBUG][       Thread-263621][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 18:10:34,842 [DEBUG][       Thread-263621][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 18:10:34,842 [DEBUG][       Thread-263621][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 18:10:34,842 [DEBUG][       Thread-263621][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 18:10:34,857 [ INFO][       Thread-263621][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 18:10:34,857 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 18:10:34,857 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 18:10:35,858 [DEBUG][       Thread-263621][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 18:10:35,858 [DEBUG][       Thread-263621][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 18:10:35,908 [DEBUG][       Thread-263621][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 18:10:35,908 [DEBUG][       Thread-263621][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 18:10:35,918 [DEBUG][       Thread-263621][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 18:10:35,926 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 18:10:35,927 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 18:10:35,935 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 18:10:35,945 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 18:10:35,945 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 18:10:35,946 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 18:10:35,955 [DEBUG][       Thread-263621][   transport.py][1871] : EOF in transport thread
2025-06-13 18:10:41,690 [DEBUG][Thread-263623 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 18:10:45,501 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 18:10:45,502 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 18:10:45,956 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 18:10:45,957 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 18:10:45,957 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 18:10:45,960 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 18:10:46,435 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 18, 10, 32), 15.32, 33.83, 0.0, 18.23, 11.38, 0, 0, 0, 2, 0, 0),)
2025-06-13 18:10:46,435 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 18:10:32
2025-06-13 18:10:46,517 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 18:10:46,531 [DEBUG][       Thread-263624][   transport.py][1871] : starting thread (client mode): 0x863edea0
2025-06-13 18:10:46,531 [DEBUG][       Thread-263624][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 18:10:46,552 [DEBUG][       Thread-263624][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 18:10:46,552 [ INFO][       Thread-263624][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 18:10:46,556 [DEBUG][       Thread-263624][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 18:10:46,556 [DEBUG][       Thread-263624][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 18:10:46,556 [DEBUG][       Thread-263624][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 18:10:46,556 [DEBUG][       Thread-263624][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 18:10:46,556 [DEBUG][       Thread-263624][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 18:10:46,556 [DEBUG][       Thread-263624][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 18:10:46,556 [DEBUG][       Thread-263624][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 18:10:46,556 [DEBUG][       Thread-263624][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 18:10:46,556 [DEBUG][       Thread-263624][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 18:10:46,556 [DEBUG][       Thread-263624][   transport.py][1871] : client lang: <none>
2025-06-13 18:10:46,556 [DEBUG][       Thread-263624][   transport.py][1871] : server lang: <none>
2025-06-13 18:10:46,557 [DEBUG][       Thread-263624][   transport.py][1871] : kex follows: False
2025-06-13 18:10:46,557 [DEBUG][       Thread-263624][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 18:10:46,557 [DEBUG][       Thread-263624][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 18:10:46,557 [DEBUG][       Thread-263624][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 18:10:46,557 [DEBUG][       Thread-263624][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 18:10:46,557 [DEBUG][       Thread-263624][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 18:10:46,557 [DEBUG][       Thread-263624][   transport.py][1871] : Compression: none
2025-06-13 18:10:46,557 [DEBUG][       Thread-263624][   transport.py][1871] : === End of kex handshake ===
2025-06-13 18:10:46,572 [DEBUG][       Thread-263624][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 18:10:46,573 [DEBUG][       Thread-263624][   transport.py][1871] : Switch to new keys ...
2025-06-13 18:10:46,573 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 18:10:46,574 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 18:10:46,574 [DEBUG][       Thread-263624][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 18:10:46,575 [DEBUG][       Thread-263624][   transport.py][1871] : userauth is OK
2025-06-13 18:10:46,588 [ INFO][       Thread-263624][   transport.py][1871] : Authentication (password) successful!
2025-06-13 18:10:46,589 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 18:10:47,193 [DEBUG][       Thread-263624][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 18:10:47,197 [DEBUG][       Thread-263624][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 18:10:47,236 [DEBUG][       Thread-263624][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 18:10:47,237 [DEBUG][       Thread-263624][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 18:10:47,239 [DEBUG][       Thread-263624][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 18:10:47,250 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 18:10:47,250 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 18:10:47,251 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 18:10:47,252 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 18:10:47,255 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 18:10:47,256 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 18:10:47,256 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 18:10:47,256 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 18:10:47,256 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.673544 -999.00  +11.50  20.10     38   -2.20 1 1 1 1 1   116    0 13.58 -13.48 ----- 23.7 20.1 51.6 27.9 11.6 -29.2 11.5 -29.3 11.2 -28.3 11.6 -28.4
2025-06-13 18:10:47,256 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 18:10:47,256 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 18:10:47,256 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.673544
2025-06-13 18:10:47,256 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 18:10:47,256 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 18:10:47,256 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 18:10:47,256 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 18:10:47,256 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 18:10:47,256 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T18:10:32', tmtdew=15.32, humidity=33.83, cloud=0.0, wind=18.23, temperature=11.38, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T16:09:54.202', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 18:10:47,257 [DEBUG][       Thread-263624][   transport.py][1871] : EOF in transport thread
2025-06-13 18:10:47,328 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 18:10:47,345 [DEBUG][       Thread-263627][   transport.py][1871] : starting thread (client mode): 0x86893880
2025-06-13 18:10:47,345 [DEBUG][       Thread-263627][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 18:10:47,363 [DEBUG][       Thread-263627][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 18:10:47,363 [ INFO][       Thread-263627][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 18:10:47,370 [DEBUG][       Thread-263627][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 18:10:47,371 [DEBUG][       Thread-263627][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 18:10:47,371 [DEBUG][       Thread-263627][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 18:10:47,371 [DEBUG][       Thread-263627][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 18:10:47,371 [DEBUG][       Thread-263627][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 18:10:47,371 [DEBUG][       Thread-263627][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 18:10:47,371 [DEBUG][       Thread-263627][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 18:10:47,371 [DEBUG][       Thread-263627][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 18:10:47,371 [DEBUG][       Thread-263627][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 18:10:47,371 [DEBUG][       Thread-263627][   transport.py][1871] : client lang: <none>
2025-06-13 18:10:47,372 [DEBUG][       Thread-263627][   transport.py][1871] : server lang: <none>
2025-06-13 18:10:47,372 [DEBUG][       Thread-263627][   transport.py][1871] : kex follows: False
2025-06-13 18:10:47,372 [DEBUG][       Thread-263627][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 18:10:47,372 [DEBUG][       Thread-263627][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 18:10:47,372 [DEBUG][       Thread-263627][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 18:10:47,372 [DEBUG][       Thread-263627][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 18:10:47,372 [DEBUG][       Thread-263627][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 18:10:47,372 [DEBUG][       Thread-263627][   transport.py][1871] : Compression: none
2025-06-13 18:10:47,372 [DEBUG][       Thread-263627][   transport.py][1871] : === End of kex handshake ===
2025-06-13 18:10:47,431 [DEBUG][       Thread-263627][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 18:10:47,431 [DEBUG][       Thread-263627][   transport.py][1871] : Switch to new keys ...
2025-06-13 18:10:47,432 [DEBUG][       Thread-263627][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 18:10:47,432 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 18:10:47,433 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 18:10:47,486 [DEBUG][       Thread-263627][   transport.py][1871] : userauth is OK
2025-06-13 18:10:47,486 [DEBUG][       Thread-263627][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 18:10:47,486 [DEBUG][       Thread-263627][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 18:10:47,486 [DEBUG][       Thread-263627][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 18:10:47,486 [DEBUG][       Thread-263627][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 18:10:47,505 [ INFO][       Thread-263627][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 18:10:47,505 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 18:10:47,506 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 18:10:48,508 [DEBUG][       Thread-263627][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 18:10:48,508 [DEBUG][       Thread-263627][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 18:10:48,556 [DEBUG][       Thread-263627][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 18:10:48,556 [DEBUG][       Thread-263627][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 18:10:48,565 [DEBUG][       Thread-263627][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 18:10:48,575 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 18:10:48,575 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 18:10:48,587 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 18:10:48,602 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 18:10:48,602 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 18:10:48,602 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 18:10:48,610 [DEBUG][       Thread-263627][   transport.py][1871] : EOF in transport thread
2025-06-13 18:10:50,194 [DEBUG][Thread-263629 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 18:10:50,709 [DEBUG][Thread-263630 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 18:10:51,307 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 18:10:51,309 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 18:10:58,613 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 18:10:58,613 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 18:10:58,613 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 18:10:58,614 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 18:10:59,085 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 18, 10, 32), 15.32, 33.83, 0.0, 18.23, 11.38, 0, 0, 0, 2, 0, 0),)
2025-06-13 18:10:59,085 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 18:10:32
2025-06-13 18:10:59,166 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 18:10:59,170 [DEBUG][       Thread-263631][   transport.py][1871] : starting thread (client mode): 0x863ecac0
2025-06-13 18:10:59,171 [DEBUG][       Thread-263631][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 18:10:59,192 [DEBUG][       Thread-263631][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 18:10:59,192 [ INFO][       Thread-263631][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 18:10:59,194 [DEBUG][       Thread-263631][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 18:10:59,194 [DEBUG][       Thread-263631][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 18:10:59,194 [DEBUG][       Thread-263631][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 18:10:59,194 [DEBUG][       Thread-263631][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 18:10:59,194 [DEBUG][       Thread-263631][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 18:10:59,194 [DEBUG][       Thread-263631][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 18:10:59,194 [DEBUG][       Thread-263631][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 18:10:59,194 [DEBUG][       Thread-263631][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 18:10:59,194 [DEBUG][       Thread-263631][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 18:10:59,194 [DEBUG][       Thread-263631][   transport.py][1871] : client lang: <none>
2025-06-13 18:10:59,194 [DEBUG][       Thread-263631][   transport.py][1871] : server lang: <none>
2025-06-13 18:10:59,194 [DEBUG][       Thread-263631][   transport.py][1871] : kex follows: False
2025-06-13 18:10:59,194 [DEBUG][       Thread-263631][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 18:10:59,194 [DEBUG][       Thread-263631][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 18:10:59,194 [DEBUG][       Thread-263631][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 18:10:59,194 [DEBUG][       Thread-263631][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 18:10:59,194 [DEBUG][       Thread-263631][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 18:10:59,194 [DEBUG][       Thread-263631][   transport.py][1871] : Compression: none
2025-06-13 18:10:59,194 [DEBUG][       Thread-263631][   transport.py][1871] : === End of kex handshake ===
2025-06-13 18:10:59,210 [DEBUG][       Thread-263631][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 18:10:59,211 [DEBUG][       Thread-263631][   transport.py][1871] : Switch to new keys ...
2025-06-13 18:10:59,211 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 18:10:59,211 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 18:10:59,212 [DEBUG][       Thread-263631][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 18:10:59,212 [DEBUG][       Thread-263631][   transport.py][1871] : userauth is OK
2025-06-13 18:10:59,237 [ INFO][       Thread-263631][   transport.py][1871] : Authentication (password) successful!
2025-06-13 18:10:59,237 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 18:10:59,744 [DEBUG][Thread-263633 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 18:10:59,881 [DEBUG][       Thread-263631][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 18:10:59,881 [DEBUG][       Thread-263631][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 18:10:59,925 [DEBUG][       Thread-263631][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 18:10:59,925 [DEBUG][       Thread-263631][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 18:10:59,928 [DEBUG][       Thread-263631][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 18:10:59,941 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 18:10:59,942 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 18:10:59,943 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 18:10:59,945 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 18:10:59,951 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 18:10:59,952 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 18:10:59,953 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 18:10:59,953 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 18:10:59,954 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.673892 -999.00  +11.50  22.15     38   -2.20 1 1 1 1 1   106    0 13.47 -16.35 ----- 27.3 22.1 52.8 26.4 11.7 -29.1 11.5 -28.6 11.2 -27.8 11.5 -28.2
2025-06-13 18:10:59,954 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 18:10:59,954 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 18:10:59,954 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.673892
2025-06-13 18:10:59,954 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 18:10:59,955 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 18:10:59,955 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 18:10:59,955 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 18:10:59,955 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 18:10:59,955 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T18:10:32', tmtdew=15.32, humidity=33.83, cloud=0.0, wind=18.23, temperature=11.38, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T16:10:24.269', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 18:10:59,956 [DEBUG][       Thread-263631][   transport.py][1871] : EOF in transport thread
2025-06-13 18:11:00,033 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 18:11:00,056 [DEBUG][       Thread-263635][   transport.py][1871] : starting thread (client mode): 0x868c80a0
2025-06-13 18:11:00,057 [DEBUG][       Thread-263635][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 18:11:00,072 [DEBUG][       Thread-263635][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 18:11:00,073 [ INFO][       Thread-263635][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 18:11:00,080 [DEBUG][       Thread-263635][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 18:11:00,080 [DEBUG][       Thread-263635][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 18:11:00,080 [DEBUG][       Thread-263635][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 18:11:00,080 [DEBUG][       Thread-263635][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 18:11:00,080 [DEBUG][       Thread-263635][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 18:11:00,081 [DEBUG][       Thread-263635][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 18:11:00,081 [DEBUG][       Thread-263635][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 18:11:00,081 [DEBUG][       Thread-263635][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 18:11:00,081 [DEBUG][       Thread-263635][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 18:11:00,081 [DEBUG][       Thread-263635][   transport.py][1871] : client lang: <none>
2025-06-13 18:11:00,081 [DEBUG][       Thread-263635][   transport.py][1871] : server lang: <none>
2025-06-13 18:11:00,081 [DEBUG][       Thread-263635][   transport.py][1871] : kex follows: False
2025-06-13 18:11:00,081 [DEBUG][       Thread-263635][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 18:11:00,081 [DEBUG][       Thread-263635][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 18:11:00,081 [DEBUG][       Thread-263635][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 18:11:00,082 [DEBUG][       Thread-263635][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 18:11:00,082 [DEBUG][       Thread-263635][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 18:11:00,082 [DEBUG][       Thread-263635][   transport.py][1871] : Compression: none
2025-06-13 18:11:00,082 [DEBUG][       Thread-263635][   transport.py][1871] : === End of kex handshake ===
2025-06-13 18:11:00,139 [DEBUG][       Thread-263635][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 18:11:00,140 [DEBUG][       Thread-263635][   transport.py][1871] : Switch to new keys ...
2025-06-13 18:11:00,140 [DEBUG][       Thread-263635][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 18:11:00,141 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 18:11:00,142 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 18:11:00,195 [DEBUG][       Thread-263635][   transport.py][1871] : userauth is OK
2025-06-13 18:11:00,195 [DEBUG][       Thread-263635][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 18:11:00,195 [DEBUG][       Thread-263635][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 18:11:00,195 [DEBUG][       Thread-263635][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 18:11:00,195 [DEBUG][       Thread-263635][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 18:11:00,221 [ INFO][       Thread-263635][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 18:11:00,222 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 18:11:00,222 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 18:11:01,202 [DEBUG][       Thread-263635][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 18:11:01,203 [DEBUG][       Thread-263635][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 18:11:01,252 [DEBUG][       Thread-263635][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 18:11:01,252 [DEBUG][       Thread-263635][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 18:11:01,261 [DEBUG][       Thread-263635][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 18:11:01,270 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 18:11:01,271 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 18:11:01,279 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 18:11:01,289 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 18:11:01,289 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 18:11:01,290 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 18:11:01,298 [DEBUG][       Thread-263635][   transport.py][1871] : EOF in transport thread
2025-06-13 18:11:08,765 [DEBUG][Thread-263637 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 18:11:11,296 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 18:11:11,296 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 18:11:11,296 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 18:11:11,299 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 18:11:11,784 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 18, 11, 4), 15.3, 33.86, 0.0, 18.79, 11.36, 0, 0, 0, 2, 0, 0),)
2025-06-13 18:11:11,784 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 18:11:04
2025-06-13 18:11:11,865 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 18:11:11,871 [DEBUG][       Thread-263638][   transport.py][1871] : starting thread (client mode): 0x863ecee0
2025-06-13 18:11:11,872 [DEBUG][       Thread-263638][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 18:11:11,892 [DEBUG][       Thread-263638][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 18:11:11,892 [ INFO][       Thread-263638][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 18:11:11,895 [DEBUG][       Thread-263638][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 18:11:11,895 [DEBUG][       Thread-263638][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 18:11:11,895 [DEBUG][       Thread-263638][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 18:11:11,895 [DEBUG][       Thread-263638][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 18:11:11,896 [DEBUG][       Thread-263638][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 18:11:11,896 [DEBUG][       Thread-263638][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 18:11:11,896 [DEBUG][       Thread-263638][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 18:11:11,896 [DEBUG][       Thread-263638][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 18:11:11,896 [DEBUG][       Thread-263638][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 18:11:11,896 [DEBUG][       Thread-263638][   transport.py][1871] : client lang: <none>
2025-06-13 18:11:11,896 [DEBUG][       Thread-263638][   transport.py][1871] : server lang: <none>
2025-06-13 18:11:11,896 [DEBUG][       Thread-263638][   transport.py][1871] : kex follows: False
2025-06-13 18:11:11,896 [DEBUG][       Thread-263638][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 18:11:11,896 [DEBUG][       Thread-263638][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 18:11:11,896 [DEBUG][       Thread-263638][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 18:11:11,896 [DEBUG][       Thread-263638][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 18:11:11,896 [DEBUG][       Thread-263638][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 18:11:11,896 [DEBUG][       Thread-263638][   transport.py][1871] : Compression: none
2025-06-13 18:11:11,896 [DEBUG][       Thread-263638][   transport.py][1871] : === End of kex handshake ===
2025-06-13 18:11:11,913 [DEBUG][       Thread-263638][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 18:11:11,914 [DEBUG][       Thread-263638][   transport.py][1871] : Switch to new keys ...
2025-06-13 18:11:11,914 [DEBUG][       Thread-263638][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 18:11:11,915 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 18:11:11,915 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 18:11:11,916 [DEBUG][       Thread-263638][   transport.py][1871] : userauth is OK
2025-06-13 18:11:11,929 [ INFO][       Thread-263638][   transport.py][1871] : Authentication (password) successful!
2025-06-13 18:11:11,929 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 18:11:12,590 [DEBUG][       Thread-263638][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 18:11:12,590 [DEBUG][       Thread-263638][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 18:11:12,633 [DEBUG][       Thread-263638][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 18:11:12,633 [DEBUG][       Thread-263638][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 18:11:12,636 [DEBUG][       Thread-263638][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 18:11:12,648 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 18:11:12,649 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 18:11:12,650 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 18:11:12,652 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 18:11:12,657 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 18:11:12,659 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 18:11:12,659 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 18:11:12,660 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 18:11:12,660 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.673892 -999.00  +11.50  22.15     38   -2.20 1 1 1 1 1   106    0 13.47 -16.35 ----- 27.3 22.1 52.8 26.4 11.7 -29.1 11.5 -28.6 11.2 -27.8 11.5 -28.2
2025-06-13 18:11:12,660 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 18:11:12,660 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 18:11:12,660 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.673892
2025-06-13 18:11:12,661 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 18:11:12,661 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 18:11:12,661 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 18:11:12,662 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 18:11:12,662 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 18:11:12,662 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T18:11:04', tmtdew=15.3, humidity=33.86, cloud=0.0, wind=18.79, temperature=11.36, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T16:10:24.269', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 18:11:12,663 [DEBUG][       Thread-263638][   transport.py][1871] : EOF in transport thread
2025-06-13 18:11:12,745 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 18:11:12,759 [DEBUG][       Thread-263641][   transport.py][1871] : starting thread (client mode): 0x863ed030
2025-06-13 18:11:12,759 [DEBUG][       Thread-263641][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 18:11:12,775 [DEBUG][       Thread-263641][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 18:11:12,775 [ INFO][       Thread-263641][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 18:11:12,784 [DEBUG][       Thread-263641][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 18:11:12,784 [DEBUG][       Thread-263641][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 18:11:12,784 [DEBUG][       Thread-263641][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 18:11:12,784 [DEBUG][       Thread-263641][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 18:11:12,784 [DEBUG][       Thread-263641][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 18:11:12,784 [DEBUG][       Thread-263641][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 18:11:12,784 [DEBUG][       Thread-263641][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 18:11:12,784 [DEBUG][       Thread-263641][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 18:11:12,785 [DEBUG][       Thread-263641][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 18:11:12,785 [DEBUG][       Thread-263641][   transport.py][1871] : client lang: <none>
2025-06-13 18:11:12,785 [DEBUG][       Thread-263641][   transport.py][1871] : server lang: <none>
2025-06-13 18:11:12,785 [DEBUG][       Thread-263641][   transport.py][1871] : kex follows: False
2025-06-13 18:11:12,785 [DEBUG][       Thread-263641][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 18:11:12,785 [DEBUG][       Thread-263641][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 18:11:12,785 [DEBUG][       Thread-263641][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 18:11:12,785 [DEBUG][       Thread-263641][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 18:11:12,785 [DEBUG][       Thread-263641][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 18:11:12,785 [DEBUG][       Thread-263641][   transport.py][1871] : Compression: none
2025-06-13 18:11:12,785 [DEBUG][       Thread-263641][   transport.py][1871] : === End of kex handshake ===
2025-06-13 18:11:12,842 [DEBUG][       Thread-263641][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 18:11:12,843 [DEBUG][       Thread-263641][   transport.py][1871] : Switch to new keys ...
2025-06-13 18:11:12,843 [DEBUG][       Thread-263641][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 18:11:12,843 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 18:11:12,844 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 18:11:12,899 [DEBUG][       Thread-263641][   transport.py][1871] : userauth is OK
2025-06-13 18:11:12,899 [DEBUG][       Thread-263641][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 18:11:12,900 [DEBUG][       Thread-263641][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 18:11:12,900 [DEBUG][       Thread-263641][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 18:11:12,900 [DEBUG][       Thread-263641][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 18:11:12,920 [ INFO][       Thread-263641][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 18:11:12,920 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 18:11:12,921 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 18:11:13,901 [DEBUG][       Thread-263641][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 18:11:13,901 [DEBUG][       Thread-263641][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 18:11:13,957 [DEBUG][       Thread-263641][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 18:11:13,957 [DEBUG][       Thread-263641][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 18:11:13,977 [DEBUG][       Thread-263641][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 18:11:13,992 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 18:11:13,992 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 18:11:14,005 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 18:11:14,014 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 18:11:14,014 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 18:11:14,015 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 18:11:14,023 [DEBUG][       Thread-263641][   transport.py][1871] : EOF in transport thread
2025-06-13 18:11:17,787 [DEBUG][Thread-263643 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 18:11:24,025 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 18:11:24,025 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 18:11:24,026 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 18:11:24,028 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 18:11:24,507 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 18, 11, 4), 15.3, 33.86, 0.0, 18.79, 11.36, 0, 0, 0, 2, 0, 0),)
2025-06-13 18:11:24,507 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 18:11:04
2025-06-13 18:11:24,588 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 18:11:24,592 [DEBUG][       Thread-263644][   transport.py][1871] : starting thread (client mode): 0x863c86a0
2025-06-13 18:11:24,593 [DEBUG][       Thread-263644][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 18:11:24,607 [DEBUG][       Thread-263644][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 18:11:24,607 [ INFO][       Thread-263644][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 18:11:24,610 [DEBUG][       Thread-263644][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 18:11:24,610 [DEBUG][       Thread-263644][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 18:11:24,610 [DEBUG][       Thread-263644][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 18:11:24,610 [DEBUG][       Thread-263644][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 18:11:24,610 [DEBUG][       Thread-263644][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 18:11:24,610 [DEBUG][       Thread-263644][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 18:11:24,610 [DEBUG][       Thread-263644][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 18:11:24,610 [DEBUG][       Thread-263644][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 18:11:24,610 [DEBUG][       Thread-263644][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 18:11:24,610 [DEBUG][       Thread-263644][   transport.py][1871] : client lang: <none>
2025-06-13 18:11:24,610 [DEBUG][       Thread-263644][   transport.py][1871] : server lang: <none>
2025-06-13 18:11:24,610 [DEBUG][       Thread-263644][   transport.py][1871] : kex follows: False
2025-06-13 18:11:24,610 [DEBUG][       Thread-263644][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 18:11:24,610 [DEBUG][       Thread-263644][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 18:11:24,610 [DEBUG][       Thread-263644][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 18:11:24,610 [DEBUG][       Thread-263644][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 18:11:24,610 [DEBUG][       Thread-263644][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 18:11:24,610 [DEBUG][       Thread-263644][   transport.py][1871] : Compression: none
2025-06-13 18:11:24,610 [DEBUG][       Thread-263644][   transport.py][1871] : === End of kex handshake ===
2025-06-13 18:11:24,626 [DEBUG][       Thread-263644][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 18:11:24,627 [DEBUG][       Thread-263644][   transport.py][1871] : Switch to new keys ...
2025-06-13 18:11:24,627 [DEBUG][       Thread-263644][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 18:11:24,628 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 18:11:24,628 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 18:11:24,629 [DEBUG][       Thread-263644][   transport.py][1871] : userauth is OK
2025-06-13 18:11:24,653 [ INFO][       Thread-263644][   transport.py][1871] : Authentication (password) successful!
2025-06-13 18:11:24,654 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 18:11:25,310 [DEBUG][       Thread-263644][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 18:11:25,311 [DEBUG][       Thread-263644][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 18:11:25,353 [DEBUG][       Thread-263644][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 18:11:25,353 [DEBUG][       Thread-263644][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 18:11:25,357 [DEBUG][       Thread-263644][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 18:11:25,368 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 18:11:25,368 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 18:11:25,370 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 18:11:25,372 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 18:11:25,378 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 18:11:25,380 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 18:11:25,380 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 18:11:25,381 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 18:11:25,381 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.673892 -999.00  +11.50  22.15     38   -2.20 1 1 1 1 1   106    0 13.47 -16.35 ----- 27.3 22.1 52.8 26.4 11.7 -29.1 11.5 -28.6 11.2 -27.8 11.5 -28.2
2025-06-13 18:11:25,381 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 18:11:25,381 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 18:11:25,381 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.673892
2025-06-13 18:11:25,381 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 18:11:25,382 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 18:11:25,382 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 18:11:25,382 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 18:11:25,382 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 18:11:25,382 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T18:11:04', tmtdew=15.3, humidity=33.86, cloud=0.0, wind=18.79, temperature=11.36, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T16:10:24.269', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 18:11:25,384 [DEBUG][       Thread-263644][   transport.py][1871] : EOF in transport thread
2025-06-13 18:11:25,466 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 18:11:25,476 [DEBUG][       Thread-263647][   transport.py][1871] : starting thread (client mode): 0x868c83a0
2025-06-13 18:11:25,476 [DEBUG][       Thread-263647][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 18:11:25,491 [DEBUG][       Thread-263647][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 18:11:25,491 [ INFO][       Thread-263647][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 18:11:25,499 [DEBUG][       Thread-263647][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 18:11:25,499 [DEBUG][       Thread-263647][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 18:11:25,499 [DEBUG][       Thread-263647][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 18:11:25,499 [DEBUG][       Thread-263647][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 18:11:25,499 [DEBUG][       Thread-263647][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 18:11:25,499 [DEBUG][       Thread-263647][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 18:11:25,499 [DEBUG][       Thread-263647][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 18:11:25,499 [DEBUG][       Thread-263647][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 18:11:25,499 [DEBUG][       Thread-263647][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 18:11:25,499 [DEBUG][       Thread-263647][   transport.py][1871] : client lang: <none>
2025-06-13 18:11:25,499 [DEBUG][       Thread-263647][   transport.py][1871] : server lang: <none>
2025-06-13 18:11:25,499 [DEBUG][       Thread-263647][   transport.py][1871] : kex follows: False
2025-06-13 18:11:25,499 [DEBUG][       Thread-263647][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 18:11:25,499 [DEBUG][       Thread-263647][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 18:11:25,499 [DEBUG][       Thread-263647][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 18:11:25,499 [DEBUG][       Thread-263647][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 18:11:25,499 [DEBUG][       Thread-263647][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 18:11:25,499 [DEBUG][       Thread-263647][   transport.py][1871] : Compression: none
2025-06-13 18:11:25,499 [DEBUG][       Thread-263647][   transport.py][1871] : === End of kex handshake ===
2025-06-13 18:11:25,558 [DEBUG][       Thread-263647][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 18:11:25,558 [DEBUG][       Thread-263647][   transport.py][1871] : Switch to new keys ...
2025-06-13 18:11:25,559 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 18:11:25,559 [DEBUG][       Thread-263647][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 18:11:25,560 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 18:11:25,614 [DEBUG][       Thread-263647][   transport.py][1871] : userauth is OK
2025-06-13 18:11:25,614 [DEBUG][       Thread-263647][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 18:11:25,614 [DEBUG][       Thread-263647][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 18:11:25,615 [DEBUG][       Thread-263647][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 18:11:25,615 [DEBUG][       Thread-263647][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 18:11:25,633 [ INFO][       Thread-263647][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 18:11:25,633 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 18:11:25,634 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 18:11:26,644 [DEBUG][       Thread-263647][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 18:11:26,644 [DEBUG][       Thread-263647][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 18:11:26,700 [DEBUG][       Thread-263647][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 18:11:26,700 [DEBUG][       Thread-263647][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 18:11:26,710 [DEBUG][       Thread-263647][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 18:11:26,719 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 18:11:26,719 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 18:11:26,728 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 18:11:26,737 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 18:11:26,737 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 18:11:26,738 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 18:11:26,746 [DEBUG][       Thread-263647][   transport.py][1871] : EOF in transport thread
2025-06-13 18:11:26,820 [DEBUG][Thread-263649 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 18:11:29,082 [DEBUG][Thread-263650 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 18:11:35,843 [DEBUG][Thread-263651 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 18:11:36,748 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 18:11:36,748 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 18:11:36,748 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 18:11:36,749 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 18:11:37,241 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 18, 11, 4), 15.3, 33.86, 0.0, 18.79, 11.36, 0, 0, 0, 2, 0, 0),)
2025-06-13 18:11:37,241 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 18:11:04
2025-06-13 18:11:37,326 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 18:11:37,331 [DEBUG][       Thread-263652][   transport.py][1871] : starting thread (client mode): 0x863c8dc0
2025-06-13 18:11:37,331 [DEBUG][       Thread-263652][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 18:11:37,351 [DEBUG][       Thread-263652][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 18:11:37,351 [ INFO][       Thread-263652][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 18:11:37,352 [DEBUG][       Thread-263652][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 18:11:37,353 [DEBUG][       Thread-263652][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 18:11:37,353 [DEBUG][       Thread-263652][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 18:11:37,353 [DEBUG][       Thread-263652][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 18:11:37,353 [DEBUG][       Thread-263652][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 18:11:37,353 [DEBUG][       Thread-263652][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 18:11:37,353 [DEBUG][       Thread-263652][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 18:11:37,353 [DEBUG][       Thread-263652][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 18:11:37,353 [DEBUG][       Thread-263652][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 18:11:37,353 [DEBUG][       Thread-263652][   transport.py][1871] : client lang: <none>
2025-06-13 18:11:37,353 [DEBUG][       Thread-263652][   transport.py][1871] : server lang: <none>
2025-06-13 18:11:37,353 [DEBUG][       Thread-263652][   transport.py][1871] : kex follows: False
2025-06-13 18:11:37,353 [DEBUG][       Thread-263652][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 18:11:37,353 [DEBUG][       Thread-263652][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 18:11:37,353 [DEBUG][       Thread-263652][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 18:11:37,353 [DEBUG][       Thread-263652][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 18:11:37,353 [DEBUG][       Thread-263652][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 18:11:37,353 [DEBUG][       Thread-263652][   transport.py][1871] : Compression: none
2025-06-13 18:11:37,353 [DEBUG][       Thread-263652][   transport.py][1871] : === End of kex handshake ===
2025-06-13 18:11:37,363 [DEBUG][       Thread-263652][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 18:11:37,363 [DEBUG][       Thread-263652][   transport.py][1871] : Switch to new keys ...
2025-06-13 18:11:37,364 [DEBUG][       Thread-263652][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 18:11:37,364 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 18:11:37,364 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 18:11:37,364 [DEBUG][       Thread-263652][   transport.py][1871] : userauth is OK
2025-06-13 18:11:37,388 [ INFO][       Thread-263652][   transport.py][1871] : Authentication (password) successful!
2025-06-13 18:11:37,388 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 18:11:38,017 [DEBUG][       Thread-263652][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 18:11:38,017 [DEBUG][       Thread-263652][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 18:11:38,060 [DEBUG][       Thread-263652][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 18:11:38,060 [DEBUG][       Thread-263652][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 18:11:38,063 [DEBUG][       Thread-263652][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 18:11:38,074 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 18:11:38,074 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 18:11:38,076 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 18:11:38,076 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 18:11:38,079 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 18:11:38,080 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 18:11:38,080 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 18:11:38,080 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 18:11:38,080 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.674586 -999.00  +11.60  21.83     37   -2.20 1 1 1 1 1    89    0 13.39 -16.94 ----- 20.0 21.8 50.2 27.0 11.7 -29.2 11.5 -29.2 11.2 -28.4 11.6 -28.4
2025-06-13 18:11:38,080 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 18:11:38,080 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 18:11:38,080 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.674586
2025-06-13 18:11:38,080 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 18:11:38,080 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 18:11:38,080 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 18:11:38,080 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 18:11:38,080 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 18:11:38,080 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T18:11:04', tmtdew=15.3, humidity=33.86, cloud=0.0, wind=18.79, temperature=11.36, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T16:11:24.230', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 18:11:38,081 [DEBUG][       Thread-263652][   transport.py][1871] : EOF in transport thread
2025-06-13 18:11:38,155 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 18:11:38,166 [DEBUG][       Thread-263655][   transport.py][1871] : starting thread (client mode): 0x868c85b0
2025-06-13 18:11:38,166 [DEBUG][       Thread-263655][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 18:11:38,181 [DEBUG][       Thread-263655][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 18:11:38,181 [ INFO][       Thread-263655][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 18:11:38,188 [DEBUG][       Thread-263655][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 18:11:38,188 [DEBUG][       Thread-263655][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 18:11:38,188 [DEBUG][       Thread-263655][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 18:11:38,188 [DEBUG][       Thread-263655][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 18:11:38,188 [DEBUG][       Thread-263655][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 18:11:38,188 [DEBUG][       Thread-263655][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 18:11:38,188 [DEBUG][       Thread-263655][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 18:11:38,188 [DEBUG][       Thread-263655][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 18:11:38,188 [DEBUG][       Thread-263655][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 18:11:38,188 [DEBUG][       Thread-263655][   transport.py][1871] : client lang: <none>
2025-06-13 18:11:38,188 [DEBUG][       Thread-263655][   transport.py][1871] : server lang: <none>
2025-06-13 18:11:38,188 [DEBUG][       Thread-263655][   transport.py][1871] : kex follows: False
2025-06-13 18:11:38,188 [DEBUG][       Thread-263655][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 18:11:38,188 [DEBUG][       Thread-263655][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 18:11:38,188 [DEBUG][       Thread-263655][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 18:11:38,188 [DEBUG][       Thread-263655][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 18:11:38,188 [DEBUG][       Thread-263655][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 18:11:38,188 [DEBUG][       Thread-263655][   transport.py][1871] : Compression: none
2025-06-13 18:11:38,188 [DEBUG][       Thread-263655][   transport.py][1871] : === End of kex handshake ===
2025-06-13 18:11:38,251 [DEBUG][       Thread-263655][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 18:11:38,251 [DEBUG][       Thread-263655][   transport.py][1871] : Switch to new keys ...
2025-06-13 18:11:38,251 [DEBUG][       Thread-263655][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 18:11:38,251 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 18:11:38,251 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 18:11:38,309 [DEBUG][       Thread-263655][   transport.py][1871] : userauth is OK
2025-06-13 18:11:38,309 [DEBUG][       Thread-263655][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 18:11:38,309 [DEBUG][       Thread-263655][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 18:11:38,309 [DEBUG][       Thread-263655][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 18:11:38,310 [DEBUG][       Thread-263655][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 18:11:38,323 [ INFO][       Thread-263655][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 18:11:38,323 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 18:11:38,323 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 18:11:39,349 [DEBUG][       Thread-263655][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 18:11:39,349 [DEBUG][       Thread-263655][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 18:11:39,400 [DEBUG][       Thread-263655][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 18:11:39,400 [DEBUG][       Thread-263655][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 18:11:39,409 [DEBUG][       Thread-263655][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 18:11:39,418 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 18:11:39,419 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 18:11:39,428 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 18:11:39,437 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 18:11:39,437 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 18:11:39,438 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 18:11:39,446 [DEBUG][       Thread-263655][   transport.py][1871] : EOF in transport thread
2025-06-13 18:11:44,865 [DEBUG][Thread-263657 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 18:11:49,448 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 18:11:49,448 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 18:11:49,448 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 18:11:49,451 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 18:11:49,916 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 18, 11, 36), 15.22, 34.07, 0.0, 14.2, 11.34, 0, 0, 0, 2, 0, 0),)
2025-06-13 18:11:49,917 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 18:11:36
2025-06-13 18:11:49,996 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 18:11:50,003 [DEBUG][       Thread-263658][   transport.py][1871] : starting thread (client mode): 0x863ca290
2025-06-13 18:11:50,003 [DEBUG][       Thread-263658][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 18:11:50,024 [DEBUG][       Thread-263658][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 18:11:50,025 [ INFO][       Thread-263658][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 18:11:50,028 [DEBUG][       Thread-263658][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 18:11:50,028 [DEBUG][       Thread-263658][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 18:11:50,028 [DEBUG][       Thread-263658][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 18:11:50,028 [DEBUG][       Thread-263658][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 18:11:50,028 [DEBUG][       Thread-263658][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 18:11:50,028 [DEBUG][       Thread-263658][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 18:11:50,028 [DEBUG][       Thread-263658][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 18:11:50,028 [DEBUG][       Thread-263658][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 18:11:50,028 [DEBUG][       Thread-263658][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 18:11:50,029 [DEBUG][       Thread-263658][   transport.py][1871] : client lang: <none>
2025-06-13 18:11:50,029 [DEBUG][       Thread-263658][   transport.py][1871] : server lang: <none>
2025-06-13 18:11:50,029 [DEBUG][       Thread-263658][   transport.py][1871] : kex follows: False
2025-06-13 18:11:50,029 [DEBUG][       Thread-263658][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 18:11:50,029 [DEBUG][       Thread-263658][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 18:11:50,029 [DEBUG][       Thread-263658][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 18:11:50,029 [DEBUG][       Thread-263658][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 18:11:50,029 [DEBUG][       Thread-263658][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 18:11:50,029 [DEBUG][       Thread-263658][   transport.py][1871] : Compression: none
2025-06-13 18:11:50,029 [DEBUG][       Thread-263658][   transport.py][1871] : === End of kex handshake ===
2025-06-13 18:11:50,044 [DEBUG][       Thread-263658][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 18:11:50,045 [DEBUG][       Thread-263658][   transport.py][1871] : Switch to new keys ...
2025-06-13 18:11:50,045 [DEBUG][       Thread-263658][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 18:11:50,045 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 18:11:50,045 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 18:11:50,046 [DEBUG][       Thread-263658][   transport.py][1871] : userauth is OK
2025-06-13 18:11:50,070 [ INFO][       Thread-263658][   transport.py][1871] : Authentication (password) successful!
2025-06-13 18:11:50,071 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 18:11:50,729 [DEBUG][       Thread-263658][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 18:11:50,729 [DEBUG][       Thread-263658][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 18:11:50,773 [DEBUG][       Thread-263658][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 18:11:50,773 [DEBUG][       Thread-263658][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 18:11:50,775 [DEBUG][       Thread-263658][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 18:11:50,788 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 18:11:50,788 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 18:11:50,790 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 18:11:50,791 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 18:11:50,796 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 18:11:50,797 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 18:11:50,797 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 18:11:50,798 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 18:11:50,798 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.674586 -999.00  +11.60  21.83     37   -2.20 1 1 1 1 1    89    0 13.39 -16.94 ----- 20.0 21.8 50.2 27.0 11.7 -29.2 11.5 -29.2 11.2 -28.4 11.6 -28.4
2025-06-13 18:11:50,798 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 18:11:50,798 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 18:11:50,798 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.674586
2025-06-13 18:11:50,799 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 18:11:50,799 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 18:11:50,799 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 18:11:50,799 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 18:11:50,799 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 18:11:50,800 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T18:11:36', tmtdew=15.22, humidity=34.07, cloud=0.0, wind=14.2, temperature=11.34, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T16:11:24.230', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 18:11:50,800 [DEBUG][       Thread-263658][   transport.py][1871] : EOF in transport thread
2025-06-13 18:11:50,883 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 18:11:50,895 [DEBUG][       Thread-263661][   transport.py][1871] : starting thread (client mode): 0x868c83a0
2025-06-13 18:11:50,895 [DEBUG][       Thread-263661][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 18:11:50,911 [DEBUG][       Thread-263661][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 18:11:50,911 [ INFO][       Thread-263661][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 18:11:50,919 [DEBUG][       Thread-263661][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 18:11:50,919 [DEBUG][       Thread-263661][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 18:11:50,919 [DEBUG][       Thread-263661][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 18:11:50,919 [DEBUG][       Thread-263661][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 18:11:50,919 [DEBUG][       Thread-263661][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 18:11:50,919 [DEBUG][       Thread-263661][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 18:11:50,919 [DEBUG][       Thread-263661][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 18:11:50,919 [DEBUG][       Thread-263661][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 18:11:50,919 [DEBUG][       Thread-263661][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 18:11:50,919 [DEBUG][       Thread-263661][   transport.py][1871] : client lang: <none>
2025-06-13 18:11:50,919 [DEBUG][       Thread-263661][   transport.py][1871] : server lang: <none>
2025-06-13 18:11:50,919 [DEBUG][       Thread-263661][   transport.py][1871] : kex follows: False
2025-06-13 18:11:50,919 [DEBUG][       Thread-263661][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 18:11:50,919 [DEBUG][       Thread-263661][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 18:11:50,919 [DEBUG][       Thread-263661][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 18:11:50,919 [DEBUG][       Thread-263661][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 18:11:50,920 [DEBUG][       Thread-263661][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 18:11:50,920 [DEBUG][       Thread-263661][   transport.py][1871] : Compression: none
2025-06-13 18:11:50,920 [DEBUG][       Thread-263661][   transport.py][1871] : === End of kex handshake ===
2025-06-13 18:11:50,978 [DEBUG][       Thread-263661][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 18:11:50,978 [DEBUG][       Thread-263661][   transport.py][1871] : Switch to new keys ...
2025-06-13 18:11:50,979 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 18:11:50,979 [DEBUG][       Thread-263661][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 18:11:50,980 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 18:11:51,035 [DEBUG][       Thread-263661][   transport.py][1871] : userauth is OK
2025-06-13 18:11:51,035 [DEBUG][       Thread-263661][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 18:11:51,035 [DEBUG][       Thread-263661][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 18:11:51,035 [DEBUG][       Thread-263661][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 18:11:51,035 [DEBUG][       Thread-263661][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 18:11:51,055 [ INFO][       Thread-263661][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 18:11:51,055 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 18:11:51,056 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 18:11:51,359 [DEBUG][Thread-263663 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 18:11:52,103 [DEBUG][       Thread-263661][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 18:11:52,104 [DEBUG][       Thread-263661][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 18:11:52,152 [DEBUG][       Thread-263661][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 18:11:52,152 [DEBUG][       Thread-263661][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 18:11:52,165 [DEBUG][       Thread-263661][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 18:11:52,174 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 18:11:52,175 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 18:11:52,183 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 18:11:52,196 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 18:11:52,196 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 18:11:52,197 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 18:11:52,205 [DEBUG][       Thread-263661][   transport.py][1871] : EOF in transport thread
2025-06-13 18:11:52,473 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 18:11:52,475 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 18:11:53,886 [DEBUG][Thread-263664 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 18:12:00,412 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 18:12:00,413 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 18:12:02,204 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 18:12:02,204 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 18:12:02,204 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 18:12:02,205 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 18:12:02,691 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 18, 11, 36), 15.22, 34.07, 0.0, 14.2, 11.34, 0, 0, 0, 2, 0, 0),)
2025-06-13 18:12:02,692 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 18:11:36
2025-06-13 18:12:02,776 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 18:12:02,780 [DEBUG][       Thread-263665][   transport.py][1871] : starting thread (client mode): 0x863cae30
2025-06-13 18:12:02,780 [DEBUG][       Thread-263665][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 18:12:02,804 [DEBUG][       Thread-263665][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 18:12:02,804 [ INFO][       Thread-263665][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 18:12:02,805 [DEBUG][       Thread-263665][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 18:12:02,805 [DEBUG][       Thread-263665][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 18:12:02,805 [DEBUG][       Thread-263665][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 18:12:02,805 [DEBUG][       Thread-263665][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 18:12:02,805 [DEBUG][       Thread-263665][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 18:12:02,805 [DEBUG][       Thread-263665][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 18:12:02,805 [DEBUG][       Thread-263665][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 18:12:02,805 [DEBUG][       Thread-263665][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 18:12:02,805 [DEBUG][       Thread-263665][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 18:12:02,805 [DEBUG][       Thread-263665][   transport.py][1871] : client lang: <none>
2025-06-13 18:12:02,805 [DEBUG][       Thread-263665][   transport.py][1871] : server lang: <none>
2025-06-13 18:12:02,805 [DEBUG][       Thread-263665][   transport.py][1871] : kex follows: False
2025-06-13 18:12:02,805 [DEBUG][       Thread-263665][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 18:12:02,805 [DEBUG][       Thread-263665][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 18:12:02,805 [DEBUG][       Thread-263665][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 18:12:02,805 [DEBUG][       Thread-263665][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 18:12:02,805 [DEBUG][       Thread-263665][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 18:12:02,805 [DEBUG][       Thread-263665][   transport.py][1871] : Compression: none
2025-06-13 18:12:02,805 [DEBUG][       Thread-263665][   transport.py][1871] : === End of kex handshake ===
2025-06-13 18:12:02,812 [DEBUG][       Thread-263665][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 18:12:02,812 [DEBUG][       Thread-263665][   transport.py][1871] : Switch to new keys ...
2025-06-13 18:12:02,812 [DEBUG][       Thread-263665][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 18:12:02,812 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 18:12:02,813 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 18:12:02,813 [DEBUG][       Thread-263665][   transport.py][1871] : userauth is OK
2025-06-13 18:12:02,825 [ INFO][       Thread-263665][   transport.py][1871] : Authentication (password) successful!
2025-06-13 18:12:02,825 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 18:12:02,916 [DEBUG][Thread-263667 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 18:12:03,388 [DEBUG][       Thread-263665][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 18:12:03,388 [DEBUG][       Thread-263665][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 18:12:03,432 [DEBUG][       Thread-263665][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 18:12:03,432 [DEBUG][       Thread-263665][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 18:12:03,435 [DEBUG][       Thread-263665][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 18:12:03,448 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 18:12:03,448 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 18:12:03,449 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 18:12:03,451 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 18:12:03,454 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 18:12:03,455 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 18:12:03,455 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 18:12:03,455 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 18:12:03,455 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.674933 -999.00  +11.60  25.34     37   -2.20 1 1 1 1 1    82    0 13.13 -16.21 ----- 18.7 25.3 58.8 26.6 11.6 -29.2 11.5 -29.2 11.3 -28.3 11.5 -28.1
2025-06-13 18:12:03,455 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 18:12:03,455 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 18:12:03,455 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.674933
2025-06-13 18:12:03,456 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 18:12:03,456 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 18:12:03,456 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 18:12:03,456 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 18:12:03,456 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 18:12:03,456 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T18:11:36', tmtdew=15.22, humidity=34.07, cloud=0.0, wind=14.2, temperature=11.34, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T16:11:54.211', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 18:12:03,457 [DEBUG][       Thread-263665][   transport.py][1871] : EOF in transport thread
2025-06-13 18:12:03,528 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 18:12:03,537 [DEBUG][       Thread-263669][   transport.py][1871] : starting thread (client mode): 0x868c8400
2025-06-13 18:12:03,537 [DEBUG][       Thread-263669][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 18:12:03,551 [DEBUG][       Thread-263669][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 18:12:03,551 [ INFO][       Thread-263669][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 18:12:03,558 [DEBUG][       Thread-263669][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 18:12:03,558 [DEBUG][       Thread-263669][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 18:12:03,558 [DEBUG][       Thread-263669][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 18:12:03,558 [DEBUG][       Thread-263669][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 18:12:03,558 [DEBUG][       Thread-263669][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 18:12:03,558 [DEBUG][       Thread-263669][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 18:12:03,558 [DEBUG][       Thread-263669][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 18:12:03,558 [DEBUG][       Thread-263669][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 18:12:03,558 [DEBUG][       Thread-263669][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 18:12:03,558 [DEBUG][       Thread-263669][   transport.py][1871] : client lang: <none>
2025-06-13 18:12:03,558 [DEBUG][       Thread-263669][   transport.py][1871] : server lang: <none>
2025-06-13 18:12:03,558 [DEBUG][       Thread-263669][   transport.py][1871] : kex follows: False
2025-06-13 18:12:03,558 [DEBUG][       Thread-263669][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 18:12:03,558 [DEBUG][       Thread-263669][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 18:12:03,558 [DEBUG][       Thread-263669][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 18:12:03,559 [DEBUG][       Thread-263669][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 18:12:03,559 [DEBUG][       Thread-263669][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 18:12:03,559 [DEBUG][       Thread-263669][   transport.py][1871] : Compression: none
2025-06-13 18:12:03,559 [DEBUG][       Thread-263669][   transport.py][1871] : === End of kex handshake ===
2025-06-13 18:12:03,618 [DEBUG][       Thread-263669][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 18:12:03,618 [DEBUG][       Thread-263669][   transport.py][1871] : Switch to new keys ...
2025-06-13 18:12:03,619 [DEBUG][       Thread-263669][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 18:12:03,619 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 18:12:03,619 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 18:12:03,677 [DEBUG][       Thread-263669][   transport.py][1871] : userauth is OK
2025-06-13 18:12:03,677 [DEBUG][       Thread-263669][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 18:12:03,677 [DEBUG][       Thread-263669][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 18:12:03,677 [DEBUG][       Thread-263669][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 18:12:03,677 [DEBUG][       Thread-263669][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 18:12:03,691 [ INFO][       Thread-263669][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 18:12:03,691 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 18:12:03,691 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 18:12:04,688 [DEBUG][       Thread-263669][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 18:12:04,688 [DEBUG][       Thread-263669][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 18:12:04,739 [DEBUG][       Thread-263669][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 18:12:04,739 [DEBUG][       Thread-263669][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 18:12:04,748 [DEBUG][       Thread-263669][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 18:12:04,756 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 18:12:04,756 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 18:12:04,774 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 18:12:04,782 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 18:12:04,782 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 18:12:04,782 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 18:12:04,790 [DEBUG][       Thread-263669][   transport.py][1871] : EOF in transport thread
2025-06-13 18:12:11,934 [DEBUG][Thread-263671 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 18:12:14,792 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 18:12:14,793 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 18:12:14,793 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 18:12:14,796 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 18:12:15,262 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 18, 12, 7), 15.25, 33.97, 0.0, 15.58, 11.3, 0, 0, 0, 2, 0, 0),)
2025-06-13 18:12:15,262 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 18:12:07
2025-06-13 18:12:15,341 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 18:12:15,348 [DEBUG][       Thread-263672][   transport.py][1871] : starting thread (client mode): 0x863ec610
2025-06-13 18:12:15,348 [DEBUG][       Thread-263672][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 18:12:15,368 [DEBUG][       Thread-263672][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 18:12:15,369 [ INFO][       Thread-263672][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 18:12:15,372 [DEBUG][       Thread-263672][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 18:12:15,372 [DEBUG][       Thread-263672][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 18:12:15,372 [DEBUG][       Thread-263672][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 18:12:15,372 [DEBUG][       Thread-263672][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 18:12:15,372 [DEBUG][       Thread-263672][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 18:12:15,372 [DEBUG][       Thread-263672][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 18:12:15,372 [DEBUG][       Thread-263672][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 18:12:15,372 [DEBUG][       Thread-263672][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 18:12:15,372 [DEBUG][       Thread-263672][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 18:12:15,372 [DEBUG][       Thread-263672][   transport.py][1871] : client lang: <none>
2025-06-13 18:12:15,372 [DEBUG][       Thread-263672][   transport.py][1871] : server lang: <none>
2025-06-13 18:12:15,372 [DEBUG][       Thread-263672][   transport.py][1871] : kex follows: False
2025-06-13 18:12:15,372 [DEBUG][       Thread-263672][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 18:12:15,372 [DEBUG][       Thread-263672][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 18:12:15,372 [DEBUG][       Thread-263672][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 18:12:15,372 [DEBUG][       Thread-263672][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 18:12:15,372 [DEBUG][       Thread-263672][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 18:12:15,372 [DEBUG][       Thread-263672][   transport.py][1871] : Compression: none
2025-06-13 18:12:15,372 [DEBUG][       Thread-263672][   transport.py][1871] : === End of kex handshake ===
2025-06-13 18:12:15,390 [DEBUG][       Thread-263672][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 18:12:15,391 [DEBUG][       Thread-263672][   transport.py][1871] : Switch to new keys ...
2025-06-13 18:12:15,391 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 18:12:15,392 [DEBUG][       Thread-263672][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 18:12:15,392 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 18:12:15,393 [DEBUG][       Thread-263672][   transport.py][1871] : userauth is OK
2025-06-13 18:12:15,407 [ INFO][       Thread-263672][   transport.py][1871] : Authentication (password) successful!
2025-06-13 18:12:15,408 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 18:12:16,046 [DEBUG][       Thread-263672][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 18:12:16,046 [DEBUG][       Thread-263672][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 18:12:16,089 [DEBUG][       Thread-263672][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 18:12:16,089 [DEBUG][       Thread-263672][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 18:12:16,092 [DEBUG][       Thread-263672][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 18:12:16,103 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 18:12:16,104 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 18:12:16,106 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 18:12:16,107 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 18:12:16,113 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 18:12:16,115 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 18:12:16,116 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 18:12:16,116 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 18:12:16,116 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.674933 -999.00  +11.60  25.34     37   -2.20 1 1 1 1 1    82    0 13.13 -16.21 ----- 18.7 25.3 58.8 26.6 11.6 -29.2 11.5 -29.2 11.3 -28.3 11.5 -28.1
2025-06-13 18:12:16,117 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 18:12:16,117 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 18:12:16,117 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.674933
2025-06-13 18:12:16,117 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 18:12:16,118 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 18:12:16,118 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 18:12:16,118 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 18:12:16,118 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 18:12:16,118 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T18:12:07', tmtdew=15.25, humidity=33.97, cloud=0.0, wind=15.58, temperature=11.3, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T16:11:54.211', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 18:12:16,118 [DEBUG][       Thread-263672][   transport.py][1871] : EOF in transport thread
2025-06-13 18:12:16,201 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 18:12:16,213 [DEBUG][       Thread-263675][   transport.py][1871] : starting thread (client mode): 0x863c9f30
2025-06-13 18:12:16,213 [DEBUG][       Thread-263675][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 18:12:16,228 [DEBUG][       Thread-263675][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 18:12:16,228 [ INFO][       Thread-263675][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 18:12:16,235 [DEBUG][       Thread-263675][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 18:12:16,236 [DEBUG][       Thread-263675][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 18:12:16,236 [DEBUG][       Thread-263675][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 18:12:16,236 [DEBUG][       Thread-263675][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 18:12:16,236 [DEBUG][       Thread-263675][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 18:12:16,236 [DEBUG][       Thread-263675][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 18:12:16,236 [DEBUG][       Thread-263675][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 18:12:16,236 [DEBUG][       Thread-263675][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 18:12:16,236 [DEBUG][       Thread-263675][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 18:12:16,236 [DEBUG][       Thread-263675][   transport.py][1871] : client lang: <none>
2025-06-13 18:12:16,236 [DEBUG][       Thread-263675][   transport.py][1871] : server lang: <none>
2025-06-13 18:12:16,236 [DEBUG][       Thread-263675][   transport.py][1871] : kex follows: False
2025-06-13 18:12:16,236 [DEBUG][       Thread-263675][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 18:12:16,236 [DEBUG][       Thread-263675][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 18:12:16,236 [DEBUG][       Thread-263675][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 18:12:16,236 [DEBUG][       Thread-263675][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 18:12:16,236 [DEBUG][       Thread-263675][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 18:12:16,236 [DEBUG][       Thread-263675][   transport.py][1871] : Compression: none
2025-06-13 18:12:16,236 [DEBUG][       Thread-263675][   transport.py][1871] : === End of kex handshake ===
2025-06-13 18:12:16,294 [DEBUG][       Thread-263675][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 18:12:16,295 [DEBUG][       Thread-263675][   transport.py][1871] : Switch to new keys ...
2025-06-13 18:12:16,295 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 18:12:16,296 [DEBUG][       Thread-263675][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 18:12:16,297 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 18:12:16,352 [DEBUG][       Thread-263675][   transport.py][1871] : userauth is OK
2025-06-13 18:12:16,352 [DEBUG][       Thread-263675][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 18:12:16,352 [DEBUG][       Thread-263675][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 18:12:16,352 [DEBUG][       Thread-263675][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 18:12:16,352 [DEBUG][       Thread-263675][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 18:12:16,367 [ INFO][       Thread-263675][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 18:12:16,367 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 18:12:16,368 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 18:12:17,403 [DEBUG][       Thread-263675][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 18:12:17,403 [DEBUG][       Thread-263675][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 18:12:17,452 [DEBUG][       Thread-263675][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 18:12:17,452 [DEBUG][       Thread-263675][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 18:12:17,461 [DEBUG][       Thread-263675][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 18:12:17,470 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 18:12:17,471 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 18:12:17,480 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 18:12:17,489 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 18:12:17,490 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 18:12:17,490 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 18:12:17,499 [DEBUG][       Thread-263675][   transport.py][1871] : EOF in transport thread
2025-06-13 18:12:20,955 [DEBUG][Thread-263677 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 18:12:27,501 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 18:12:27,501 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 18:12:27,501 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 18:12:27,504 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 18:12:27,979 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 18, 12, 7), 15.25, 33.97, 0.0, 15.58, 11.3, 0, 0, 0, 2, 0, 0),)
2025-06-13 18:12:27,979 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 18:12:07
2025-06-13 18:12:28,058 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 18:12:28,062 [DEBUG][       Thread-263678][   transport.py][1871] : starting thread (client mode): 0x863cb190
2025-06-13 18:12:28,062 [DEBUG][       Thread-263678][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 18:12:28,084 [DEBUG][       Thread-263678][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 18:12:28,084 [ INFO][       Thread-263678][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 18:12:28,087 [DEBUG][       Thread-263678][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 18:12:28,088 [DEBUG][       Thread-263678][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 18:12:28,088 [DEBUG][       Thread-263678][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 18:12:28,088 [DEBUG][       Thread-263678][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 18:12:28,088 [DEBUG][       Thread-263678][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 18:12:28,088 [DEBUG][       Thread-263678][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 18:12:28,088 [DEBUG][       Thread-263678][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 18:12:28,088 [DEBUG][       Thread-263678][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 18:12:28,088 [DEBUG][       Thread-263678][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 18:12:28,088 [DEBUG][       Thread-263678][   transport.py][1871] : client lang: <none>
2025-06-13 18:12:28,088 [DEBUG][       Thread-263678][   transport.py][1871] : server lang: <none>
2025-06-13 18:12:28,088 [DEBUG][       Thread-263678][   transport.py][1871] : kex follows: False
2025-06-13 18:12:28,088 [DEBUG][       Thread-263678][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 18:12:28,088 [DEBUG][       Thread-263678][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 18:12:28,088 [DEBUG][       Thread-263678][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 18:12:28,088 [DEBUG][       Thread-263678][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 18:12:28,088 [DEBUG][       Thread-263678][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 18:12:28,088 [DEBUG][       Thread-263678][   transport.py][1871] : Compression: none
2025-06-13 18:12:28,088 [DEBUG][       Thread-263678][   transport.py][1871] : === End of kex handshake ===
2025-06-13 18:12:28,104 [DEBUG][       Thread-263678][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 18:12:28,105 [DEBUG][       Thread-263678][   transport.py][1871] : Switch to new keys ...
2025-06-13 18:12:28,105 [DEBUG][       Thread-263678][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 18:12:28,106 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 18:12:28,106 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 18:12:28,107 [DEBUG][       Thread-263678][   transport.py][1871] : userauth is OK
2025-06-13 18:12:28,120 [ INFO][       Thread-263678][   transport.py][1871] : Authentication (password) successful!
2025-06-13 18:12:28,121 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 18:12:28,752 [DEBUG][       Thread-263678][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 18:12:28,752 [DEBUG][       Thread-263678][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 18:12:28,793 [DEBUG][       Thread-263678][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 18:12:28,793 [DEBUG][       Thread-263678][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 18:12:28,795 [DEBUG][       Thread-263678][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 18:12:28,806 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 18:12:28,806 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 18:12:28,807 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 18:12:28,809 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 18:12:28,811 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 18:12:28,812 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 18:12:28,812 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 18:12:28,813 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 18:12:28,813 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.674933 -999.00  +11.60  25.34     37   -2.20 1 1 1 1 1    82    0 13.13 -16.21 ----- 18.7 25.3 58.8 26.6 11.6 -29.2 11.5 -29.2 11.3 -28.3 11.5 -28.1
2025-06-13 18:12:28,813 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 18:12:28,813 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 18:12:28,813 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.674933
2025-06-13 18:12:28,813 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 18:12:28,813 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 18:12:28,813 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 18:12:28,813 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 18:12:28,813 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 18:12:28,813 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T18:12:07', tmtdew=15.25, humidity=33.97, cloud=0.0, wind=15.58, temperature=11.3, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T16:11:54.211', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 18:12:28,814 [DEBUG][       Thread-263678][   transport.py][1871] : EOF in transport thread
2025-06-13 18:12:28,884 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 18:12:28,895 [DEBUG][       Thread-263681][   transport.py][1871] : starting thread (client mode): 0x868c80a0
2025-06-13 18:12:28,895 [DEBUG][       Thread-263681][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 18:12:28,916 [DEBUG][       Thread-263681][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 18:12:28,916 [ INFO][       Thread-263681][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 18:12:28,924 [DEBUG][       Thread-263681][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 18:12:28,924 [DEBUG][       Thread-263681][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 18:12:28,924 [DEBUG][       Thread-263681][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 18:12:28,924 [DEBUG][       Thread-263681][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 18:12:28,925 [DEBUG][       Thread-263681][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 18:12:28,925 [DEBUG][       Thread-263681][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 18:12:28,925 [DEBUG][       Thread-263681][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 18:12:28,925 [DEBUG][       Thread-263681][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 18:12:28,925 [DEBUG][       Thread-263681][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 18:12:28,925 [DEBUG][       Thread-263681][   transport.py][1871] : client lang: <none>
2025-06-13 18:12:28,925 [DEBUG][       Thread-263681][   transport.py][1871] : server lang: <none>
2025-06-13 18:12:28,925 [DEBUG][       Thread-263681][   transport.py][1871] : kex follows: False
2025-06-13 18:12:28,925 [DEBUG][       Thread-263681][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 18:12:28,925 [DEBUG][       Thread-263681][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 18:12:28,925 [DEBUG][       Thread-263681][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 18:12:28,925 [DEBUG][       Thread-263681][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 18:12:28,925 [DEBUG][       Thread-263681][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 18:12:28,925 [DEBUG][       Thread-263681][   transport.py][1871] : Compression: none
2025-06-13 18:12:28,925 [DEBUG][       Thread-263681][   transport.py][1871] : === End of kex handshake ===
2025-06-13 18:12:28,983 [DEBUG][       Thread-263681][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 18:12:28,983 [DEBUG][       Thread-263681][   transport.py][1871] : Switch to new keys ...
2025-06-13 18:12:28,984 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 18:12:28,984 [DEBUG][       Thread-263681][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 18:12:28,985 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 18:12:29,044 [DEBUG][       Thread-263681][   transport.py][1871] : userauth is OK
2025-06-13 18:12:29,044 [DEBUG][       Thread-263681][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 18:12:29,044 [DEBUG][       Thread-263681][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 18:12:29,044 [DEBUG][       Thread-263681][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 18:12:29,044 [DEBUG][       Thread-263681][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 18:12:29,064 [ INFO][       Thread-263681][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 18:12:29,064 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 18:12:29,065 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 18:12:29,155 [DEBUG][Thread-263683 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 18:12:29,988 [DEBUG][Thread-263684 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 18:12:30,075 [DEBUG][       Thread-263681][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 18:12:30,076 [DEBUG][       Thread-263681][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 18:12:30,124 [DEBUG][       Thread-263681][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 18:12:30,124 [DEBUG][       Thread-263681][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 18:12:30,133 [DEBUG][       Thread-263681][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 18:12:30,147 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 18:12:30,147 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 18:12:30,156 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 18:12:30,166 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 18:12:30,166 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 18:12:30,166 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 18:12:30,174 [DEBUG][       Thread-263681][   transport.py][1871] : EOF in transport thread
2025-06-13 18:12:39,011 [DEBUG][Thread-263685 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 18:12:40,176 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 18:12:40,176 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 18:12:40,176 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 18:12:40,177 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 18:12:40,691 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 18, 12, 7), 15.25, 33.97, 0.0, 15.58, 11.3, 0, 0, 0, 2, 0, 0),)
2025-06-13 18:12:40,691 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 18:12:07
2025-06-13 18:12:40,776 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 18:12:40,781 [DEBUG][       Thread-263686][   transport.py][1871] : starting thread (client mode): 0x863cb0d0
2025-06-13 18:12:40,781 [DEBUG][       Thread-263686][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 18:12:40,802 [DEBUG][       Thread-263686][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 18:12:40,802 [ INFO][       Thread-263686][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 18:12:40,806 [DEBUG][       Thread-263686][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 18:12:40,806 [DEBUG][       Thread-263686][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 18:12:40,806 [DEBUG][       Thread-263686][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 18:12:40,806 [DEBUG][       Thread-263686][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 18:12:40,806 [DEBUG][       Thread-263686][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 18:12:40,806 [DEBUG][       Thread-263686][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 18:12:40,806 [DEBUG][       Thread-263686][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 18:12:40,806 [DEBUG][       Thread-263686][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 18:12:40,806 [DEBUG][       Thread-263686][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 18:12:40,806 [DEBUG][       Thread-263686][   transport.py][1871] : client lang: <none>
2025-06-13 18:12:40,806 [DEBUG][       Thread-263686][   transport.py][1871] : server lang: <none>
2025-06-13 18:12:40,806 [DEBUG][       Thread-263686][   transport.py][1871] : kex follows: False
2025-06-13 18:12:40,806 [DEBUG][       Thread-263686][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 18:12:40,806 [DEBUG][       Thread-263686][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 18:12:40,806 [DEBUG][       Thread-263686][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 18:12:40,806 [DEBUG][       Thread-263686][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 18:12:40,806 [DEBUG][       Thread-263686][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 18:12:40,806 [DEBUG][       Thread-263686][   transport.py][1871] : Compression: none
2025-06-13 18:12:40,806 [DEBUG][       Thread-263686][   transport.py][1871] : === End of kex handshake ===
2025-06-13 18:12:40,813 [DEBUG][       Thread-263686][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 18:12:40,813 [DEBUG][       Thread-263686][   transport.py][1871] : Switch to new keys ...
2025-06-13 18:12:40,814 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 18:12:40,814 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 18:12:40,814 [DEBUG][       Thread-263686][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 18:12:40,814 [DEBUG][       Thread-263686][   transport.py][1871] : userauth is OK
2025-06-13 18:12:40,827 [ INFO][       Thread-263686][   transport.py][1871] : Authentication (password) successful!
2025-06-13 18:12:40,827 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 18:12:41,413 [DEBUG][       Thread-263686][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 18:12:41,413 [DEBUG][       Thread-263686][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 18:12:41,456 [DEBUG][       Thread-263686][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 18:12:41,456 [DEBUG][       Thread-263686][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 18:12:41,459 [DEBUG][       Thread-263686][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 18:12:41,472 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 18:12:41,472 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 18:12:41,473 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 18:12:41,474 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 18:12:41,477 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 18:12:41,478 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 18:12:41,478 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 18:12:41,478 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 18:12:41,478 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.675280 -999.00  +11.60  20.76     38   -2.20 1 1 1 1 1    75    0 13.12 -17.57 ----- 22.3 20.8 55.8 24.3 11.6 -29.3 11.5 -29.0 11.2 -28.2 11.6 -28.2
2025-06-13 18:12:41,478 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 18:12:41,478 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 18:12:41,478 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.675280
2025-06-13 18:12:41,478 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 18:12:41,478 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 18:12:41,478 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 18:12:41,478 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 18:12:41,478 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 18:12:41,478 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T18:12:07', tmtdew=15.25, humidity=33.97, cloud=0.0, wind=15.58, temperature=11.3, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T16:12:24.192', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 18:12:41,478 [DEBUG][       Thread-263686][   transport.py][1871] : EOF in transport thread
2025-06-13 18:12:41,553 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 18:12:41,567 [DEBUG][       Thread-263689][   transport.py][1871] : starting thread (client mode): 0x863ec7f0
2025-06-13 18:12:41,567 [DEBUG][       Thread-263689][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 18:12:41,586 [DEBUG][       Thread-263689][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 18:12:41,586 [ INFO][       Thread-263689][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 18:12:41,593 [DEBUG][       Thread-263689][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 18:12:41,593 [DEBUG][       Thread-263689][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 18:12:41,593 [DEBUG][       Thread-263689][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 18:12:41,593 [DEBUG][       Thread-263689][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 18:12:41,593 [DEBUG][       Thread-263689][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 18:12:41,593 [DEBUG][       Thread-263689][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 18:12:41,593 [DEBUG][       Thread-263689][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 18:12:41,593 [DEBUG][       Thread-263689][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 18:12:41,593 [DEBUG][       Thread-263689][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 18:12:41,593 [DEBUG][       Thread-263689][   transport.py][1871] : client lang: <none>
2025-06-13 18:12:41,593 [DEBUG][       Thread-263689][   transport.py][1871] : server lang: <none>
2025-06-13 18:12:41,593 [DEBUG][       Thread-263689][   transport.py][1871] : kex follows: False
2025-06-13 18:12:41,593 [DEBUG][       Thread-263689][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 18:12:41,594 [DEBUG][       Thread-263689][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 18:12:41,594 [DEBUG][       Thread-263689][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 18:12:41,594 [DEBUG][       Thread-263689][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 18:12:41,594 [DEBUG][       Thread-263689][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 18:12:41,594 [DEBUG][       Thread-263689][   transport.py][1871] : Compression: none
2025-06-13 18:12:41,594 [DEBUG][       Thread-263689][   transport.py][1871] : === End of kex handshake ===
2025-06-13 18:12:41,650 [DEBUG][       Thread-263689][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 18:12:41,650 [DEBUG][       Thread-263689][   transport.py][1871] : Switch to new keys ...
2025-06-13 18:12:41,650 [DEBUG][       Thread-263689][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 18:12:41,650 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 18:12:41,651 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 18:12:41,705 [DEBUG][       Thread-263689][   transport.py][1871] : userauth is OK
2025-06-13 18:12:41,705 [DEBUG][       Thread-263689][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 18:12:41,705 [DEBUG][       Thread-263689][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 18:12:41,705 [DEBUG][       Thread-263689][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 18:12:41,705 [DEBUG][       Thread-263689][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 18:12:41,719 [ INFO][       Thread-263689][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 18:12:41,720 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 18:12:41,720 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 18:12:42,718 [DEBUG][       Thread-263689][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 18:12:42,718 [DEBUG][       Thread-263689][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 18:12:42,770 [DEBUG][       Thread-263689][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 18:12:42,770 [DEBUG][       Thread-263689][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 18:12:42,785 [DEBUG][       Thread-263689][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 18:12:42,792 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 18:12:42,792 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 18:12:42,800 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 18:12:42,808 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 18:12:42,808 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 18:12:42,808 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 18:12:42,816 [DEBUG][       Thread-263689][   transport.py][1871] : EOF in transport thread
2025-06-13 18:12:48,029 [DEBUG][Thread-263691 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 18:12:52,541 [DEBUG][Thread-263692 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 18:12:52,819 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 18:12:52,819 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 18:12:52,819 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 18:12:52,822 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 18:12:53,291 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 18, 12, 39), 15.22, 34.41, 0.0, 21.37, 11.34, 0, 0, 0, 2, 0, 0),)
2025-06-13 18:12:53,291 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 18:12:39
2025-06-13 18:12:53,372 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 18:12:53,378 [DEBUG][       Thread-263693][   transport.py][1871] : starting thread (client mode): 0x863ca8c0
2025-06-13 18:12:53,378 [DEBUG][       Thread-263693][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 18:12:53,397 [DEBUG][       Thread-263693][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 18:12:53,397 [ INFO][       Thread-263693][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 18:12:53,401 [DEBUG][       Thread-263693][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 18:12:53,401 [DEBUG][       Thread-263693][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 18:12:53,401 [DEBUG][       Thread-263693][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 18:12:53,401 [DEBUG][       Thread-263693][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 18:12:53,401 [DEBUG][       Thread-263693][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 18:12:53,401 [DEBUG][       Thread-263693][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 18:12:53,401 [DEBUG][       Thread-263693][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 18:12:53,401 [DEBUG][       Thread-263693][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 18:12:53,401 [DEBUG][       Thread-263693][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 18:12:53,401 [DEBUG][       Thread-263693][   transport.py][1871] : client lang: <none>
2025-06-13 18:12:53,401 [DEBUG][       Thread-263693][   transport.py][1871] : server lang: <none>
2025-06-13 18:12:53,401 [DEBUG][       Thread-263693][   transport.py][1871] : kex follows: False
2025-06-13 18:12:53,401 [DEBUG][       Thread-263693][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 18:12:53,401 [DEBUG][       Thread-263693][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 18:12:53,401 [DEBUG][       Thread-263693][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 18:12:53,401 [DEBUG][       Thread-263693][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 18:12:53,401 [DEBUG][       Thread-263693][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 18:12:53,401 [DEBUG][       Thread-263693][   transport.py][1871] : Compression: none
2025-06-13 18:12:53,401 [DEBUG][       Thread-263693][   transport.py][1871] : === End of kex handshake ===
2025-06-13 18:12:53,417 [DEBUG][       Thread-263693][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 18:12:53,418 [DEBUG][       Thread-263693][   transport.py][1871] : Switch to new keys ...
2025-06-13 18:12:53,418 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 18:12:53,418 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 18:12:53,419 [DEBUG][       Thread-263693][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 18:12:53,420 [DEBUG][       Thread-263693][   transport.py][1871] : userauth is OK
2025-06-13 18:12:53,445 [ INFO][       Thread-263693][   transport.py][1871] : Authentication (password) successful!
2025-06-13 18:12:53,446 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 18:12:53,645 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 18:12:53,646 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 18:12:54,079 [DEBUG][       Thread-263693][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 18:12:54,079 [DEBUG][       Thread-263693][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 18:12:54,121 [DEBUG][       Thread-263693][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 18:12:54,121 [DEBUG][       Thread-263693][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 18:12:54,124 [DEBUG][       Thread-263693][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 18:12:54,137 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 18:12:54,137 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 18:12:54,139 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 18:12:54,141 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 18:12:54,146 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 18:12:54,148 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 18:12:54,148 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 18:12:54,149 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 18:12:54,149 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.675280 -999.00  +11.60  20.76     38   -2.20 1 1 1 1 1    75    0 13.12 -17.57 ----- 22.3 20.8 55.8 24.3 11.6 -29.3 11.5 -29.0 11.2 -28.2 11.6 -28.2
2025-06-13 18:12:54,149 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 18:12:54,149 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 18:12:54,149 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.675280
2025-06-13 18:12:54,149 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 18:12:54,150 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 18:12:54,150 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 18:12:54,150 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 18:12:54,150 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 18:12:54,150 [DEBUG][       Thread-263693][   transport.py][1871] : EOF in transport thread
2025-06-13 18:12:54,151 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T18:12:39', tmtdew=15.22, humidity=34.41, cloud=0.0, wind=21.37, temperature=11.34, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T16:12:24.192', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 18:12:54,234 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 18:12:54,243 [DEBUG][       Thread-263696][   transport.py][1871] : starting thread (client mode): 0x863c90c0
2025-06-13 18:12:54,243 [DEBUG][       Thread-263696][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 18:12:54,260 [DEBUG][       Thread-263696][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 18:12:54,260 [ INFO][       Thread-263696][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 18:12:54,274 [DEBUG][       Thread-263696][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 18:12:54,274 [DEBUG][       Thread-263696][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 18:12:54,274 [DEBUG][       Thread-263696][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 18:12:54,274 [DEBUG][       Thread-263696][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 18:12:54,274 [DEBUG][       Thread-263696][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 18:12:54,274 [DEBUG][       Thread-263696][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 18:12:54,275 [DEBUG][       Thread-263696][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 18:12:54,275 [DEBUG][       Thread-263696][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 18:12:54,275 [DEBUG][       Thread-263696][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 18:12:54,275 [DEBUG][       Thread-263696][   transport.py][1871] : client lang: <none>
2025-06-13 18:12:54,275 [DEBUG][       Thread-263696][   transport.py][1871] : server lang: <none>
2025-06-13 18:12:54,275 [DEBUG][       Thread-263696][   transport.py][1871] : kex follows: False
2025-06-13 18:12:54,275 [DEBUG][       Thread-263696][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 18:12:54,275 [DEBUG][       Thread-263696][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 18:12:54,275 [DEBUG][       Thread-263696][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 18:12:54,275 [DEBUG][       Thread-263696][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 18:12:54,275 [DEBUG][       Thread-263696][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 18:12:54,275 [DEBUG][       Thread-263696][   transport.py][1871] : Compression: none
2025-06-13 18:12:54,275 [DEBUG][       Thread-263696][   transport.py][1871] : === End of kex handshake ===
2025-06-13 18:12:54,330 [DEBUG][       Thread-263696][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 18:12:54,330 [DEBUG][       Thread-263696][   transport.py][1871] : Switch to new keys ...
2025-06-13 18:12:54,331 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 18:12:54,332 [DEBUG][       Thread-263696][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 18:12:54,332 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 18:12:54,386 [DEBUG][       Thread-263696][   transport.py][1871] : userauth is OK
2025-06-13 18:12:54,386 [DEBUG][       Thread-263696][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 18:12:54,386 [DEBUG][       Thread-263696][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 18:12:54,386 [DEBUG][       Thread-263696][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 18:12:54,386 [DEBUG][       Thread-263696][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 18:12:54,407 [ INFO][       Thread-263696][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 18:12:54,407 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 18:12:54,407 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 18:12:55,436 [DEBUG][       Thread-263696][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 18:12:55,437 [DEBUG][       Thread-263696][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 18:12:55,489 [DEBUG][       Thread-263696][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 18:12:55,489 [DEBUG][       Thread-263696][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 18:12:55,504 [DEBUG][       Thread-263696][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 18:12:55,513 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 18:12:55,513 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 18:12:55,522 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 18:12:55,532 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 18:12:55,532 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 18:12:55,533 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 18:12:55,545 [DEBUG][       Thread-263696][   transport.py][1871] : EOF in transport thread
2025-06-13 18:12:57,051 [DEBUG][Thread-263698 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 18:13:05,543 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 18:13:05,543 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 18:13:05,544 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 18:13:05,547 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 18:13:06,030 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 18, 12, 39), 15.22, 34.41, 0.0, 21.37, 11.34, 0, 0, 0, 2, 0, 0),)
2025-06-13 18:13:06,030 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 18:12:39
2025-06-13 18:13:06,084 [DEBUG][Thread-263699 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 18:13:06,113 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 18:13:06,116 [DEBUG][       Thread-263700][   transport.py][1871] : starting thread (client mode): 0x863ede40
2025-06-13 18:13:06,116 [DEBUG][       Thread-263700][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 18:13:06,137 [DEBUG][       Thread-263700][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 18:13:06,137 [ INFO][       Thread-263700][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 18:13:06,138 [DEBUG][       Thread-263700][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 18:13:06,138 [DEBUG][       Thread-263700][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 18:13:06,138 [DEBUG][       Thread-263700][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 18:13:06,138 [DEBUG][       Thread-263700][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 18:13:06,138 [DEBUG][       Thread-263700][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 18:13:06,138 [DEBUG][       Thread-263700][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 18:13:06,138 [DEBUG][       Thread-263700][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 18:13:06,138 [DEBUG][       Thread-263700][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 18:13:06,138 [DEBUG][       Thread-263700][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 18:13:06,138 [DEBUG][       Thread-263700][   transport.py][1871] : client lang: <none>
2025-06-13 18:13:06,138 [DEBUG][       Thread-263700][   transport.py][1871] : server lang: <none>
2025-06-13 18:13:06,138 [DEBUG][       Thread-263700][   transport.py][1871] : kex follows: False
2025-06-13 18:13:06,138 [DEBUG][       Thread-263700][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 18:13:06,138 [DEBUG][       Thread-263700][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 18:13:06,138 [DEBUG][       Thread-263700][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 18:13:06,138 [DEBUG][       Thread-263700][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 18:13:06,138 [DEBUG][       Thread-263700][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 18:13:06,138 [DEBUG][       Thread-263700][   transport.py][1871] : Compression: none
2025-06-13 18:13:06,138 [DEBUG][       Thread-263700][   transport.py][1871] : === End of kex handshake ===
2025-06-13 18:13:06,145 [DEBUG][       Thread-263700][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 18:13:06,145 [DEBUG][       Thread-263700][   transport.py][1871] : Switch to new keys ...
2025-06-13 18:13:06,145 [DEBUG][       Thread-263700][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 18:13:06,145 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 18:13:06,145 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 18:13:06,146 [DEBUG][       Thread-263700][   transport.py][1871] : userauth is OK
2025-06-13 18:13:06,159 [ INFO][       Thread-263700][   transport.py][1871] : Authentication (password) successful!
2025-06-13 18:13:06,159 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 18:13:06,779 [DEBUG][       Thread-263700][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 18:13:06,780 [DEBUG][       Thread-263700][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 18:13:06,821 [DEBUG][       Thread-263700][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 18:13:06,821 [DEBUG][       Thread-263700][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 18:13:06,825 [DEBUG][       Thread-263700][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 18:13:06,836 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 18:13:06,837 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 18:13:06,839 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 18:13:06,841 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 18:13:06,847 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 18:13:06,849 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 18:13:06,850 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 18:13:06,850 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 18:13:06,850 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.675280 -999.00  +11.60  20.76     38   -2.20 1 1 1 1 1    75    0 13.12 -17.57 ----- 22.3 20.8 55.8 24.3 11.6 -29.3 11.5 -29.0 11.2 -28.2 11.6 -28.2
2025-06-13 18:13:06,851 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 18:13:06,851 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 18:13:06,851 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.675280
2025-06-13 18:13:06,851 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 18:13:06,852 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 18:13:06,852 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 18:13:06,852 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 18:13:06,852 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 18:13:06,852 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T18:12:39', tmtdew=15.22, humidity=34.41, cloud=0.0, wind=21.37, temperature=11.34, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T16:12:24.192', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 18:13:06,853 [DEBUG][       Thread-263700][   transport.py][1871] : EOF in transport thread
2025-06-13 18:13:06,936 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 18:13:06,947 [DEBUG][       Thread-263703][   transport.py][1871] : starting thread (client mode): 0x868c82e0
2025-06-13 18:13:06,947 [DEBUG][       Thread-263703][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 18:13:06,962 [DEBUG][       Thread-263703][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 18:13:06,962 [ INFO][       Thread-263703][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 18:13:06,970 [DEBUG][       Thread-263703][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 18:13:06,970 [DEBUG][       Thread-263703][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 18:13:06,970 [DEBUG][       Thread-263703][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 18:13:06,970 [DEBUG][       Thread-263703][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 18:13:06,970 [DEBUG][       Thread-263703][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 18:13:06,970 [DEBUG][       Thread-263703][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 18:13:06,970 [DEBUG][       Thread-263703][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 18:13:06,970 [DEBUG][       Thread-263703][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 18:13:06,970 [DEBUG][       Thread-263703][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 18:13:06,970 [DEBUG][       Thread-263703][   transport.py][1871] : client lang: <none>
2025-06-13 18:13:06,970 [DEBUG][       Thread-263703][   transport.py][1871] : server lang: <none>
2025-06-13 18:13:06,970 [DEBUG][       Thread-263703][   transport.py][1871] : kex follows: False
2025-06-13 18:13:06,971 [DEBUG][       Thread-263703][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 18:13:06,971 [DEBUG][       Thread-263703][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 18:13:06,971 [DEBUG][       Thread-263703][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 18:13:06,971 [DEBUG][       Thread-263703][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 18:13:06,971 [DEBUG][       Thread-263703][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 18:13:06,971 [DEBUG][       Thread-263703][   transport.py][1871] : Compression: none
2025-06-13 18:13:06,971 [DEBUG][       Thread-263703][   transport.py][1871] : === End of kex handshake ===
2025-06-13 18:13:07,030 [DEBUG][       Thread-263703][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 18:13:07,030 [DEBUG][       Thread-263703][   transport.py][1871] : Switch to new keys ...
2025-06-13 18:13:07,031 [DEBUG][       Thread-263703][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 18:13:07,031 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 18:13:07,032 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 18:13:07,090 [DEBUG][       Thread-263703][   transport.py][1871] : userauth is OK
2025-06-13 18:13:07,090 [DEBUG][       Thread-263703][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 18:13:07,090 [DEBUG][       Thread-263703][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 18:13:07,090 [DEBUG][       Thread-263703][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 18:13:07,091 [DEBUG][       Thread-263703][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 18:13:07,110 [ INFO][       Thread-263703][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 18:13:07,110 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 18:13:07,111 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 18:13:08,110 [DEBUG][       Thread-263703][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 18:13:08,111 [DEBUG][       Thread-263703][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 18:13:08,160 [DEBUG][       Thread-263703][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 18:13:08,160 [DEBUG][       Thread-263703][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 18:13:08,169 [DEBUG][       Thread-263703][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 18:13:08,178 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 18:13:08,179 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 18:13:08,187 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 18:13:08,205 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 18:13:08,206 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 18:13:08,206 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 18:13:08,214 [DEBUG][       Thread-263703][   transport.py][1871] : EOF in transport thread
2025-06-13 18:13:12,122 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 18:13:12,122 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 18:13:15,103 [DEBUG][Thread-263705 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 18:13:18,217 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 18:13:18,217 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 18:13:18,217 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 18:13:18,220 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 18:13:18,692 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 18, 13, 11), 15.21, 34.07, 0.0, 16.38, 11.29, 0, 0, 0, 2, 0, 0),)
2025-06-13 18:13:18,692 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 18:13:11
2025-06-13 18:13:18,774 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 18:13:18,779 [DEBUG][       Thread-263706][   transport.py][1871] : starting thread (client mode): 0x863ecaf0
2025-06-13 18:13:18,779 [DEBUG][       Thread-263706][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 18:13:18,799 [DEBUG][       Thread-263706][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 18:13:18,799 [ INFO][       Thread-263706][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 18:13:18,802 [DEBUG][       Thread-263706][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 18:13:18,802 [DEBUG][       Thread-263706][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 18:13:18,802 [DEBUG][       Thread-263706][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 18:13:18,803 [DEBUG][       Thread-263706][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 18:13:18,803 [DEBUG][       Thread-263706][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 18:13:18,803 [DEBUG][       Thread-263706][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 18:13:18,803 [DEBUG][       Thread-263706][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 18:13:18,803 [DEBUG][       Thread-263706][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 18:13:18,803 [DEBUG][       Thread-263706][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 18:13:18,803 [DEBUG][       Thread-263706][   transport.py][1871] : client lang: <none>
2025-06-13 18:13:18,803 [DEBUG][       Thread-263706][   transport.py][1871] : server lang: <none>
2025-06-13 18:13:18,803 [DEBUG][       Thread-263706][   transport.py][1871] : kex follows: False
2025-06-13 18:13:18,803 [DEBUG][       Thread-263706][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 18:13:18,803 [DEBUG][       Thread-263706][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 18:13:18,803 [DEBUG][       Thread-263706][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 18:13:18,803 [DEBUG][       Thread-263706][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 18:13:18,803 [DEBUG][       Thread-263706][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 18:13:18,803 [DEBUG][       Thread-263706][   transport.py][1871] : Compression: none
2025-06-13 18:13:18,803 [DEBUG][       Thread-263706][   transport.py][1871] : === End of kex handshake ===
2025-06-13 18:13:18,820 [DEBUG][       Thread-263706][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 18:13:18,821 [DEBUG][       Thread-263706][   transport.py][1871] : Switch to new keys ...
2025-06-13 18:13:18,821 [DEBUG][       Thread-263706][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 18:13:18,821 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 18:13:18,821 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 18:13:18,822 [DEBUG][       Thread-263706][   transport.py][1871] : userauth is OK
2025-06-13 18:13:18,835 [ INFO][       Thread-263706][   transport.py][1871] : Authentication (password) successful!
2025-06-13 18:13:18,836 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 18:13:19,475 [DEBUG][       Thread-263706][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 18:13:19,476 [DEBUG][       Thread-263706][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 18:13:19,517 [DEBUG][       Thread-263706][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 18:13:19,517 [DEBUG][       Thread-263706][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 18:13:19,520 [DEBUG][       Thread-263706][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 18:13:19,532 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 18:13:19,532 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 18:13:19,534 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 18:13:19,536 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 18:13:19,542 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 18:13:19,544 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 18:13:19,544 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 18:13:19,545 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 18:13:19,545 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.675628 -999.00  +11.60  24.59     38   -2.20 1 1 1 1 1    68    0 13.29 -17.08 ----- 22.0 24.6 60.4 26.8 11.7 -29.2 11.4 -29.1 11.2 -28.1 11.6 -28.2
2025-06-13 18:13:19,545 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 18:13:19,545 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 18:13:19,545 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.675628
2025-06-13 18:13:19,546 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 18:13:19,546 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 18:13:19,547 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 18:13:19,547 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 18:13:19,547 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 18:13:19,547 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T18:13:11', tmtdew=15.21, humidity=34.07, cloud=0.0, wind=16.38, temperature=11.29, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T16:12:54.259', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 18:13:19,547 [DEBUG][       Thread-263706][   transport.py][1871] : EOF in transport thread
2025-06-13 18:13:19,632 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 18:13:24,121 [DEBUG][Thread-263709 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 18:13:29,226 [DEBUG][Thread-263710 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 18:13:33,147 [DEBUG][Thread-263711 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 18:13:42,173 [DEBUG][Thread-263712 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 18:13:51,195 [DEBUG][Thread-263713 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 18:13:53,742 [DEBUG][Thread-263714 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 18:13:54,840 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 18:13:54,841 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 18:14:00,215 [DEBUG][Thread-263715 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 18:14:09,234 [DEBUG][Thread-263716 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 18:14:18,255 [DEBUG][Thread-263717 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 18:14:21,545 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 18:14:21,546 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 18:14:27,276 [DEBUG][Thread-263718 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 18:14:29,302 [DEBUG][Thread-263719 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 18:14:36,298 [DEBUG][Thread-263720 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 18:14:45,320 [DEBUG][Thread-263721 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 18:14:54,340 [DEBUG][Thread-263722 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 18:14:54,946 [DEBUG][Thread-263723 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 18:14:56,058 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 18:14:56,059 [DEBUG][Thread-223845 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 18:15:03,363 [DEBUG][Thread-263724 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 18:15:12,385 [DEBUG][Thread-263725 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 18:15:21,406 [DEBUG][Thread-263726 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 18:15:26,222 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 18:15:26,223 [DEBUG][Thread-220727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 18:15:28,020 [WARNING][ poll_weather_worker][      driver.py][ 286] : Unable to open ssh connection for writing weather state to io.saao.ac.za: [Errno 110] Connection timed out
2025-06-13 18:15:29,369 [DEBUG][Thread-263727 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 18:15:30,425 [DEBUG][Thread-263728 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 18:15:38,030 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 18:15:38,031 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 18:15:38,031 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 18:15:38,034 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 18:15:38,522 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 18, 15, 18), 14.98, 34.76, 0.0, 18.62, 11.24, 0, 0, 0, 2, 0, 0),)
2025-06-13 18:15:38,522 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 18:15:18
2025-06-13 18:15:38,605 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 18:15:38,611 [DEBUG][       Thread-263729][   transport.py][1871] : starting thread (client mode): 0x863ec2b0
2025-06-13 18:15:38,611 [DEBUG][       Thread-263729][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 18:15:38,632 [DEBUG][       Thread-263729][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 18:15:38,632 [ INFO][       Thread-263729][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 18:15:38,635 [DEBUG][       Thread-263729][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 18:15:38,635 [DEBUG][       Thread-263729][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 18:15:38,635 [DEBUG][       Thread-263729][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 18:15:38,635 [DEBUG][       Thread-263729][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 18:15:38,635 [DEBUG][       Thread-263729][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 18:15:38,635 [DEBUG][       Thread-263729][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 18:15:38,635 [DEBUG][       Thread-263729][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 18:15:38,635 [DEBUG][       Thread-263729][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 18:15:38,635 [DEBUG][       Thread-263729][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 18:15:38,635 [DEBUG][       Thread-263729][   transport.py][1871] : client lang: <none>
2025-06-13 18:15:38,635 [DEBUG][       Thread-263729][   transport.py][1871] : server lang: <none>
2025-06-13 18:15:38,635 [DEBUG][       Thread-263729][   transport.py][1871] : kex follows: False
2025-06-13 18:15:38,635 [DEBUG][       Thread-263729][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 18:15:38,635 [DEBUG][       Thread-263729][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 18:15:38,635 [DEBUG][       Thread-263729][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 18:15:38,635 [DEBUG][       Thread-263729][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 18:15:38,635 [DEBUG][       Thread-263729][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 18:15:38,635 [DEBUG][       Thread-263729][   transport.py][1871] : Compression: none
2025-06-13 18:15:38,635 [DEBUG][       Thread-263729][   transport.py][1871] : === End of kex handshake ===
2025-06-13 18:15:38,654 [DEBUG][       Thread-263729][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 18:15:38,654 [DEBUG][       Thread-263729][   transport.py][1871] : Switch to new keys ...
2025-06-13 18:15:38,655 [DEBUG][       Thread-263729][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 18:15:38,655 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 18:15:38,655 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 18:15:38,655 [DEBUG][       Thread-263729][   transport.py][1871] : userauth is OK
2025-06-13 18:15:38,679 [ INFO][       Thread-263729][   transport.py][1871] : Authentication (password) successful!
2025-06-13 18:15:38,679 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 18:15:39,357 [DEBUG][       Thread-263729][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 18:15:39,357 [DEBUG][       Thread-263729][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 18:15:39,401 [DEBUG][       Thread-263729][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 18:15:39,401 [DEBUG][       Thread-263729][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 18:15:39,404 [DEBUG][       Thread-263729][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 18:15:39,418 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 18:15:39,419 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 18:15:39,420 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 18:15:39,422 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 18:15:39,435 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 18:15:39,436 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 18:15:39,437 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 18:15:39,437 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 18:15:39,438 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.677017 -999.00  +11.60  22.40     37   -2.20 1 1 1 1 1    47    0 13.34 -17.66 ----- 22.1 22.4 54.4 24.1 11.6 -29.2 11.5 -29.0 11.2 -28.0 11.6 -28.3
2025-06-13 18:15:39,438 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 18:15:39,438 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 18:15:39,438 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.677017
2025-06-13 18:15:39,438 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 18:15:39,439 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 18:15:39,439 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 18:15:39,439 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 18:15:39,439 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 18:15:39,439 [DEBUG][ poll_weather_worker][      driver.py][ 269] : Returning weather state: WeatherState(timestamp='2025-06-13T18:15:18', tmtdew=14.98, humidity=34.76, cloud=0.0, wind=18.62, temperature=11.24, tmtdew_warn=0, humidity_warn=0, rain_warn=0, cloud_warn=2, wind_warn=0, temperature_warn=0, seeing_timestamp='2025-06-12T20:02:28', seeing=1.55, atlas_timestamp='2025-06-13T16:14:54.269', atlas_cloud=1, atlas_rain=1, zp_data=[0.048749999999998295, 0.1642500000000009, 0.04925000000000068, 0.019999999999999574, -0.06799999999999962, -0.033749999999997726, 0.07499999999999929, 0.09325000000000117, 0.14949999999999974, 0.10000000000000142, 0.035250000000001336, -0.0039999999999995595, -0.02200000000000024, 0.07724999999999937, 0.09549999999999947, 0.04899999999999949, 0.03924999999999912, 0.015000000000000568, 0.1379999999999999, -0.09375000000000178, -0.11900000000000155, -0.2162500000000005, -0.055749999999999744, 0.056750000000000966, 0.09999999999999964, 0.04550000000000054, 0.00575000000000081, -0.24249999999999972, -1.5715000000000003, -0.04649999999999821, 0.08650000000000091, -0.08299999999999841, 0.05024999999999835], zp_timestamp='2025-06-13T04:42:00')
2025-06-13 18:15:39,439 [DEBUG][       Thread-263729][   transport.py][1871] : EOF in transport thread
2025-06-13 18:15:39,447 [DEBUG][Thread-263732 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 18:15:39,529 [DEBUG][ poll_weather_worker][      driver.py][ 282] : Connecting to io.saao.ac.za as io using private key
2025-06-13 18:15:39,540 [DEBUG][       Thread-263733][   transport.py][1871] : starting thread (client mode): 0x868c83a0
2025-06-13 18:15:39,540 [DEBUG][       Thread-263733][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 18:15:39,555 [DEBUG][       Thread-263733][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
2025-06-13 18:15:39,555 [ INFO][       Thread-263733][   transport.py][1871] : Connected (version 2.0, client OpenSSH_7.6p1)
2025-06-13 18:15:39,563 [DEBUG][       Thread-263733][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 18:15:39,563 [DEBUG][       Thread-263733][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1
2025-06-13 18:15:39,563 [DEBUG][       Thread-263733][   transport.py][1871] : server key: ssh-rsa, rsa-sha2-512, rsa-sha2-256, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 18:15:39,563 [DEBUG][       Thread-263733][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 18:15:39,563 [DEBUG][       Thread-263733][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 18:15:39,563 [DEBUG][       Thread-263733][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 18:15:39,563 [DEBUG][       Thread-263733][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 18:15:39,564 [DEBUG][       Thread-263733][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 18:15:39,564 [DEBUG][       Thread-263733][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 18:15:39,564 [DEBUG][       Thread-263733][   transport.py][1871] : client lang: <none>
2025-06-13 18:15:39,564 [DEBUG][       Thread-263733][   transport.py][1871] : server lang: <none>
2025-06-13 18:15:39,564 [DEBUG][       Thread-263733][   transport.py][1871] : kex follows: False
2025-06-13 18:15:39,564 [DEBUG][       Thread-263733][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 18:15:39,564 [DEBUG][       Thread-263733][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 18:15:39,564 [DEBUG][       Thread-263733][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 18:15:39,564 [DEBUG][       Thread-263733][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 18:15:39,564 [DEBUG][       Thread-263733][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 18:15:39,564 [DEBUG][       Thread-263733][   transport.py][1871] : Compression: none
2025-06-13 18:15:39,564 [DEBUG][       Thread-263733][   transport.py][1871] : === End of kex handshake ===
2025-06-13 18:15:39,626 [DEBUG][       Thread-263733][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 18:15:39,626 [DEBUG][       Thread-263733][   transport.py][1871] : Switch to new keys ...
2025-06-13 18:15:39,627 [DEBUG][ poll_weather_worker][   transport.py][1871] : Adding ssh-ed25519 host key for io.saao.ac.za: b'00503ecc12de43871af86ff856296a9d'
2025-06-13 18:15:39,627 [DEBUG][       Thread-263733][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521'}
2025-06-13 18:15:39,628 [DEBUG][ poll_weather_worker][   transport.py][1871] : Trying SSH key b'ede500ba65c9d1f2496be9b8baf59e24'
2025-06-13 18:15:39,684 [DEBUG][       Thread-263733][   transport.py][1871] : userauth is OK
2025-06-13 18:15:39,684 [DEBUG][       Thread-263733][   transport.py][1871] : Finalizing pubkey algorithm for key of type 'ssh-rsa'
2025-06-13 18:15:39,684 [DEBUG][       Thread-263733][   transport.py][1871] : Our pubkey algorithm list: ['rsa-sha2-512', 'rsa-sha2-256', 'ssh-rsa']
2025-06-13 18:15:39,684 [DEBUG][       Thread-263733][   transport.py][1871] : Server-side algorithm list: ['ssh-ed25519', 'ssh-rsa', 'rsa-sha2-256', 'rsa-sha2-512', 'ssh-dss', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521']
2025-06-13 18:15:39,684 [DEBUG][       Thread-263733][   transport.py][1871] : Agreed upon 'rsa-sha2-512' pubkey algorithm
2025-06-13 18:15:39,703 [ INFO][       Thread-263733][   transport.py][1871] : Authentication (publickey) successful!
2025-06-13 18:15:39,703 [DEBUG][ poll_weather_worker][      driver.py][ 288] : Connected to io.saao.ac.za as io using private key
2025-06-13 18:15:39,704 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 18:15:40,704 [DEBUG][       Thread-263733][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 18:15:40,704 [DEBUG][       Thread-263733][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 18:15:40,756 [DEBUG][       Thread-263733][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 18:15:40,756 [DEBUG][       Thread-263733][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 18:15:40,769 [DEBUG][       Thread-263733][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 18:15:40,781 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 18:15:40,781 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w')
2025-06-13 18:15:40,790 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/docker_data/io.saao.ac.za/wp-app/IO/current_weather.json', 'w') -> 00000000
2025-06-13 18:15:40,799 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 18:15:40,800 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 18:15:40,800 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 18:15:40,808 [DEBUG][       Thread-263733][   transport.py][1871] : EOF in transport thread
2025-06-13 18:15:48,481 [DEBUG][Thread-263735 (handle)][      driver.py][ 110] : Getting weather_state
2025-06-13 18:15:50,811 [DEBUG][ poll_weather_worker][      driver.py][ 157] : Polling weather from database
2025-06-13 18:15:50,811 [ INFO][ poll_weather_worker][      driver.py][  88] : Connecting to database localhost as user suthweather
2025-06-13 18:15:50,811 [ INFO][ poll_weather_worker][      driver.py][  90] : Opening the connection with host=localhost  user=suthweather  passwd = Saaoweather   db=suthweatherdb
2025-06-13 18:15:50,811 [DEBUG][ poll_weather_worker][      driver.py][ 174] : Issuing SQL command SELECT timestamp, avg_t_min_tdew, avg_hum, avg_cloud, avg_wind, avg_temp, t_min_tdew_warn, hum_warn, rain_warn, cloud_warn, wind_warn, temp_warn FROM current_weather ORDER BY timestamp DESC LIMIT 1
2025-06-13 18:15:51,322 [DEBUG][ poll_weather_worker][      driver.py][ 177] : cw_data = ((datetime.datetime(2025, 6, 13, 18, 15, 18), 14.98, 34.76, 0.0, 18.62, 11.24, 0, 0, 0, 2, 0, 0),)
2025-06-13 18:15:51,322 [DEBUG][ poll_weather_worker][      driver.py][ 179] : Datetime = 2025-06-13 18:15:18
2025-06-13 18:15:51,409 [DEBUG][ poll_weather_worker][      driver.py][ 244] : Getting Atlas cloud sensor data
2025-06-13 18:15:51,414 [DEBUG][       Thread-263736][   transport.py][1871] : starting thread (client mode): 0x863ef040
2025-06-13 18:15:51,414 [DEBUG][       Thread-263736][   transport.py][1871] : Local version/idstring: SSH-2.0-paramiko_3.0.0
2025-06-13 18:15:51,436 [DEBUG][       Thread-263736][   transport.py][1871] : Remote version/idstring: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.13
2025-06-13 18:15:51,436 [ INFO][       Thread-263736][   transport.py][1871] : Connected (version 2.0, client OpenSSH_8.2p1)
2025-06-13 18:15:51,440 [DEBUG][       Thread-263736][   transport.py][1871] : === Key exchange possibilities ===
2025-06-13 18:15:51,440 [DEBUG][       Thread-263736][   transport.py][1871] : kex algos: curve25519-sha256, curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, kex-strict-s-v00@openssh.com
2025-06-13 18:15:51,440 [DEBUG][       Thread-263736][   transport.py][1871] : server key: rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256, ssh-ed25519
2025-06-13 18:15:51,440 [DEBUG][       Thread-263736][   transport.py][1871] : client encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 18:15:51,440 [DEBUG][       Thread-263736][   transport.py][1871] : server encrypt: chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com
2025-06-13 18:15:51,440 [DEBUG][       Thread-263736][   transport.py][1871] : client mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 18:15:51,440 [DEBUG][       Thread-263736][   transport.py][1871] : server mac: umac-64-etm@openssh.com, umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com, umac-128@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
2025-06-13 18:15:51,440 [DEBUG][       Thread-263736][   transport.py][1871] : client compress: none, zlib@openssh.com
2025-06-13 18:15:51,440 [DEBUG][       Thread-263736][   transport.py][1871] : server compress: none, zlib@openssh.com
2025-06-13 18:15:51,440 [DEBUG][       Thread-263736][   transport.py][1871] : client lang: <none>
2025-06-13 18:15:51,440 [DEBUG][       Thread-263736][   transport.py][1871] : server lang: <none>
2025-06-13 18:15:51,440 [DEBUG][       Thread-263736][   transport.py][1871] : kex follows: False
2025-06-13 18:15:51,440 [DEBUG][       Thread-263736][   transport.py][1871] : === Key exchange agreements ===
2025-06-13 18:15:51,440 [DEBUG][       Thread-263736][   transport.py][1871] : Kex: curve25519-sha256@libssh.org
2025-06-13 18:15:51,440 [DEBUG][       Thread-263736][   transport.py][1871] : HostKey: ssh-ed25519
2025-06-13 18:15:51,440 [DEBUG][       Thread-263736][   transport.py][1871] : Cipher: aes128-ctr
2025-06-13 18:15:51,440 [DEBUG][       Thread-263736][   transport.py][1871] : MAC: hmac-sha2-256
2025-06-13 18:15:51,440 [DEBUG][       Thread-263736][   transport.py][1871] : Compression: none
2025-06-13 18:15:51,440 [DEBUG][       Thread-263736][   transport.py][1871] : === End of kex handshake ===
2025-06-13 18:15:51,454 [DEBUG][       Thread-263736][   transport.py][1871] : kex engine KexCurve25519 specified hash_algo <built-in function openssl_sha256>
2025-06-13 18:15:51,454 [DEBUG][       Thread-263736][   transport.py][1871] : Switch to new keys ...
2025-06-13 18:15:51,454 [DEBUG][       Thread-263736][   transport.py][1871] : Got EXT_INFO: {'server-sig-algs': b'ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com'}
2025-06-13 18:15:51,454 [DEBUG][ poll_weather_worker][   transport.py][1871] : Host key verified (ssh-ed25519)
2025-06-13 18:15:51,454 [DEBUG][ poll_weather_worker][   transport.py][1871] : Attempting password auth...
2025-06-13 18:15:51,455 [DEBUG][       Thread-263736][   transport.py][1871] : userauth is OK
2025-06-13 18:15:51,479 [ INFO][       Thread-263736][   transport.py][1871] : Authentication (password) successful!
2025-06-13 18:15:51,479 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] Max packet in: 32768 bytes
2025-06-13 18:15:52,130 [DEBUG][       Thread-263736][   transport.py][1871] : Received global request "hostkeys-00@openssh.com"
2025-06-13 18:15:52,131 [DEBUG][       Thread-263736][   transport.py][1871] : Rejecting "hostkeys-00@openssh.com" global request from server.
2025-06-13 18:15:52,172 [DEBUG][       Thread-263736][     channel.py][1210] : [chan 0] Max packet out: 32768 bytes
2025-06-13 18:15:52,172 [DEBUG][       Thread-263736][   transport.py][1871] : Secsh channel 0 opened.
2025-06-13 18:15:52,175 [DEBUG][       Thread-263736][     channel.py][1210] : [chan 0] Sesch channel 0 request ok
2025-06-13 18:15:52,186 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] Opened sftp connection (server version 3)
2025-06-13 18:15:52,186 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] stat(b'/home/weather/weather.log')
2025-06-13 18:15:52,187 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb')
2025-06-13 18:15:52,188 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] open(b'/home/weather/weather.log', 'rb') -> 00000000
2025-06-13 18:15:52,191 [DEBUG][ poll_weather_worker][        sftp.py][ 169] : [chan 0] close(00000000)
2025-06-13 18:15:52,192 [ INFO][ poll_weather_worker][        sftp.py][ 169] : [chan 0] sftp session closed.
2025-06-13 18:15:52,192 [DEBUG][ poll_weather_worker][     channel.py][1210] : [chan 0] EOF sent (0)
2025-06-13 18:15:52,192 [DEBUG][ poll_weather_worker][      driver.py][ 246] : Got atlas file
2025-06-13 18:15:52,192 [DEBUG][ poll_weather_worker][      driver.py][ 248] : Got last line: 60839.677017 -999.00  +11.60  22.40     37   -2.20 1 1 1 1 1    47    0 13.34 -17.66 ----- 22.1 22.4 54.4 24.1 11.6 -29.2 11.5 -29.0 11.2 -28.0 11.6 -28.3
2025-06-13 18:15:52,192 [DEBUG][ poll_weather_worker][      driver.py][ 249] : Splitting last line
2025-06-13 18:15:52,192 [DEBUG][ poll_weather_worker][      driver.py][ 251] : Getting timestamp token
2025-06-13 18:15:52,192 [DEBUG][ poll_weather_worker][      driver.py][ 253] : Got cloud timestamp = 60839.677017
2025-06-13 18:15:52,192 [DEBUG][ poll_weather_worker][      driver.py][ 255] : Got timestamp in astropy Time
2025-06-13 18:15:52,192 [DEBUG][ poll_weather_worker][      driver.py][ 258] : Getting rain token
2025-06-13 18:15:52,193 [DEBUG][ poll_weather_worker][      driver.py][ 260] : Got rain token = 1
2025-06-13 18:15:52,193 [DEBUG][ poll_weather_worker][      driver.py][ 262] : Getting cloud token
2025-06-13 18:15:52,193 [DEBUG][ poll_weather_worker][      driver.py][ 264] : Got cloud token = 1
2025-06-13 18:15:52,193 [DEBUG][ poll_weather_worker][      driver.py
[file cut: first 33554432 bytes kept]
[document cut: first 32646911 of 33554432 characters kept]
